pax_global_header00006660000000000000000000000064122427463200014514gustar00rootroot0000000000000052 comment=3c6a906c59ff007fd1ee2664771bea937bcc2a75 uhd-3.5.5/000077500000000000000000000000001224274632000123065ustar00rootroot00000000000000uhd-3.5.5/README.txt000066400000000000000000000006711224274632000140100ustar00rootroot00000000000000######################################################################## ## Welcome to the USRP source code tree ######################################################################## host/ Description: source code for user-space driver firmware/ Description: source code for various micro processors fpga/ Description: source code for FPGA designs images/ Description: package builder for FPGA and firmware images uhd-3.5.5/firmware/000077500000000000000000000000001224274632000141225ustar00rootroot00000000000000uhd-3.5.5/firmware/README.txt000066400000000000000000000012451224274632000156220ustar00rootroot00000000000000######################################################################## # Firmware for USRP devices ######################################################################## fx2/ Description: firmware for FX2 device Devices: USRP1 and B100 Tools: sdcc, cmake Build Instructions: 1) mkdir 2) cd 3) cmake 4) make zpu/ Description: firmware for soft CPU in FPGA Devices: USRP2 and N Series Tools: zpu-gcc, cmake Build Instructions: 1) mkdir 2) cd 3) cmake 4) make uhd-3.5.5/firmware/fx2/000077500000000000000000000000001224274632000146215ustar00rootroot00000000000000uhd-3.5.5/firmware/fx2/.gitignore000066400000000000000000000000151224274632000166050ustar00rootroot00000000000000/build *.sym uhd-3.5.5/firmware/fx2/AUTHORS000066400000000000000000000001731224274632000156720ustar00rootroot00000000000000Eric Blossom Josh Blum Thomas Tsou Nick Foster uhd-3.5.5/firmware/fx2/CMakeLists.txt000066400000000000000000000041361224274632000173650ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # CMAKE_MINIMUM_REQUIRED(VERSION 2.6) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/config/Toolchain-sdcc.cmake) PROJECT(USRP1 C) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/config/") INCLUDE(FindPythonInterp) ######################################################################## # Set toolchain to use SDCC ######################################################################## # we're doing mixed ASM and C ENABLE_LANGUAGE(ASM_SDCC) ######################################################################## # C flags and linking flags ######################################################################## ADD_DEFINITIONS(-DHAVE_USRP2) set(CMAKE_C_LINK_FLAGS "--code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000'") set(CMAKE_C_FLAGS "--no-xinit-opt") ######################################################################## # Setup precompile tools ######################################################################## set(REG_GENERATOR ${CMAKE_SOURCE_DIR}/utils/generate_regs.py) set(EDIT_GPIF_USRP1 ${CMAKE_SOURCE_DIR}/utils/edit-gpif.py) set(EDIT_GPIF_B100 ${CMAKE_SOURCE_DIR}/utils/edit-gpif-b100.py) set(BUILD_EEPROM ${CMAKE_SOURCE_DIR}/utils/build_eeprom.py) ######################################################################## # Add the subdirectories ######################################################################## ADD_SUBDIRECTORY(usrp1) ADD_SUBDIRECTORY(b100) uhd-3.5.5/firmware/fx2/b100/000077500000000000000000000000001224274632000152635ustar00rootroot00000000000000uhd-3.5.5/firmware/fx2/b100/.gitignore000066400000000000000000000003251224274632000172530ustar00rootroot00000000000000/*.ihx /*.lnk /*.lst /*.map /*.mem /*.rel /*.rst /*.sym /blink_leds.asm /usrp_common.asm /command_loop.asm /fpga.asm /*.asm /Makefile /Makefile.in /usrp_gpif.c /usrp_gpif_inline.h /Makefile.in /burn-usrp1p-eeprom uhd-3.5.5/firmware/fx2/b100/CMakeLists.txt000066400000000000000000000055771224274632000200410ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # include_directories(${CMAKE_SOURCE_DIR}/common) #for usrp_common.h and the regs files... set(CMAKE_INCLUDE_CURRENT_DIR ON) #now make a lib to link against set(libb100_sources ${CMAKE_SOURCE_DIR}/common/delay.c ${CMAKE_SOURCE_DIR}/common/fx2utils.c ${CMAKE_SOURCE_DIR}/common/i2c.c ${CMAKE_SOURCE_DIR}/common/init_gpif.c ${CMAKE_SOURCE_DIR}/common/isr.c ${CMAKE_SOURCE_DIR}/common/timer.c ${CMAKE_SOURCE_DIR}/common/usb_common.c # ${CMAKE_SOURCE_DIR}/common/spi.c ) #file(GLOB libb100_c_sources ${CMAKE_SOURCE_DIR}/common/*.c) #file(GLOB libb100_a51_sources ${CMAKE_SOURCE_DIR}/common/*.a51) #list(APPEND libb100_sources ${libb100_c_sources} ${libb100_a51_sources}) add_library(libb100 STATIC ${libb100_sources}) # edit-gpif hacks up gpif.c for our purposes. no major surgery, just moving stuff around. set(GPIF_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/gpif.c) set(GPIF_SOURCE_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/usrp_gpif.c) set(GPIF_HEADER_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/usrp_gpif_inline.h) add_custom_command( OUTPUT ${GPIF_SOURCE_OUTPUT} DEPENDS ${EDIT_GPIF_B100} COMMAND ${PYTHON_EXECUTABLE} ${EDIT_GPIF_B100} ${GPIF_SOURCE} ${GPIF_SOURCE_OUTPUT} ${GPIF_HEADER_OUTPUT} COMMENT "Generating ${GPIF_SOURCE_OUTPUT}" ) #file(GLOB b100_sources *.c) set(b100_sources ${CMAKE_SOURCE_DIR}/common/vectors.a51 usrp_main.c usrp_common.c board_specific.c fpga_load.c fpga_rev2.c usrp_gpif.c usb_descriptors.a51 eeprom_io.c ${CMAKE_SOURCE_DIR}/common/_startup.a51 ) set_source_files_properties( ${CMAKE_CURRENT_SOURCE_DIR}/usrp_main.c PROPERTIES COMPILE_FLAGS "--std-sdcc99 --opt-code-speed --fommit-frame-pointer" ) add_executable(b100_fw ${b100_sources}) target_link_libraries(b100_fw libb100) set(eeprom1p_sources ${CMAKE_SOURCE_DIR}/common/eeprom_boot.a51 ${CMAKE_SOURCE_DIR}/common/eeprom_init.c ${CMAKE_SOURCE_DIR}/common/_startup.a51 ) add_custom_target(b100_eeprom ALL DEPENDS b100_boot COMMAND objcopy -I ihex -O binary b100_boot.ihx b100_boot.bin COMMAND ${PYTHON_EXECUTABLE} ${BUILD_EEPROM} -r2 b100_boot.bin b100_eeprom.bin ) add_executable(b100_boot ${eeprom1p_sources}) target_link_libraries(b100_boot libb100) uhd-3.5.5/firmware/fx2/b100/board_specific.c000066400000000000000000000026601224274632000203670ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "usrp_common.h" void set_led_0 (unsigned char on) { if (!on) // active low USRP_PC |= bmPC_LED0; else USRP_PC &= ~bmPC_LED0; } void set_led_1 (unsigned char on) { if (!on) // active low USRP_PC |= bmPC_LED1; else USRP_PC &= ~bmPC_LED1; } void toggle_led_0 (void) { USRP_PC ^= bmPC_LED0; } void toggle_led_1 (void) { USRP_PC ^= bmPC_LED1; } void set_sleep_bits (unsigned char bits, unsigned char mask) { // NOP on usrp1 } static xdata unsigned char xbuf[1]; void init_board (void) { //init_spi (); //USRP_PC &= ~bmPC_nRESET; // active low reset //USRP_PC |= bmPC_nRESET; } uhd-3.5.5/firmware/fx2/b100/eeprom_io.c000066400000000000000000000034231224274632000174070ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2006 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "eeprom_io.h" #include "i2c.h" #include "delay.h" // returns non-zero if successful, else 0 unsigned char eeprom_read (unsigned char i2c_addr, unsigned char eeprom_offset, xdata unsigned char *buf, unsigned char len) { // We setup a random read by first doing a "zero byte write". // Writes carry an address. Reads use an implicit address. static xdata unsigned char cmd[1]; cmd[0] = eeprom_offset; if (!i2c_write(i2c_addr, cmd, 1)) return 0; return i2c_read(i2c_addr, buf, len); } #if 0 // returns non-zero if successful, else 0 unsigned char eeprom_write (unsigned char i2c_addr, unsigned char eeprom_offset, const xdata unsigned char *buf, unsigned char len) { static xdata unsigned char cmd[2]; unsigned char ok; while (len-- > 0){ cmd[0] = eeprom_offset++; cmd[1] = *buf++; ok = i2c_write(i2c_addr, cmd, 2); mdelay(10); // delay 10ms worst case write time if (!ok) return 0; } return 1; } #endif uhd-3.5.5/firmware/fx2/b100/eeprom_io.h000066400000000000000000000023771224274632000174230ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2006 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_EEPROM_IO_H #define INCLUDED_EEPROM_IO_H // returns non-zero if successful, else 0 unsigned char eeprom_read (unsigned char i2c_addr, unsigned char eeprom_offset, xdata unsigned char *buf, unsigned char len); // returns non-zero if successful, else 0 unsigned char eeprom_write (unsigned char i2c_addr, unsigned char eeprom_offset, const xdata unsigned char *buf, unsigned char len); #endif /* INCLUDED_EEPROM_IO_H */ uhd-3.5.5/firmware/fx2/b100/fpga_load.c000066400000000000000000000066541224274632000173560ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #include "usrp_common.h" #include "fpga_load.h" #include "delay.h" /* * setup altera FPGA serial load (PS). * * On entry: * don't care * * On exit: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) */ unsigned char fpga_load_begin (void) { USRP_ALTERA_CONFIG &= ~bmALTERA_BITS; // clear all bits (NCONFIG low) udelay (40); // wait 40 us USRP_ALTERA_CONFIG |= bmALTERA_NCONFIG; // set NCONFIG high // ready to xfer now return 1; } /* * clock out the low bit of bits. * * On entry: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) * * On exit: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) */ #if 0 static void clock_out_config_byte (unsigned char bits) { unsigned char i; // clock out configuration byte, least significant bit first for (i = 0; i < 8; i++){ bitALTERA_DATA0 = bits & 1; bitALTERA_DCLK = 1; /* set DCLK to 1 */ bitALTERA_DCLK = 0; /* set DCLK to 0 */ bits = bits >> 1; } } #else static void clock_out_config_byte (unsigned char bits) _naked { _asm mov a, dpl rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rlc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK ret _endasm; } #endif static void clock_out_bytes (unsigned char bytecount, unsigned char xdata *p) { while (bytecount-- > 0) clock_out_config_byte (*p++); } /* * Transfer block of bytes from packet to FPGA serial configuration port * * On entry: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) * * On exit: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) */ unsigned char fpga_load_xfer (xdata unsigned char *p, unsigned char bytecount) { clock_out_bytes (bytecount, p); return 1; } /* * check for successful load... */ unsigned char fpga_load_end (void) { unsigned char status = USRP_ALTERA_CONFIG; if (!UC_BOARD_HAS_FPGA) // always true if we don't have FPGA return 1; if (bitALTERA_CONF_DONE) return 1; // everything's cool // I don't think this should happen. It indicates that // programming is still in progress. return 0; } uhd-3.5.5/firmware/fx2/b100/fpga_rev2.c000066400000000000000000000023741224274632000173100ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "fpga.h" #include "fpga_regs_common.h" #include "usrp_common.h" #include "usrp_globals.h" unsigned char g_tx_reset = 0; unsigned char g_rx_reset = 0; void fpga_write_reg (unsigned char regno, const xdata unsigned char *regval) { //nop } static xdata unsigned char regval[4] = {0, 0, 0, 0}; // Resets both AD9862's and the FPGA serial bus interface. void fpga_set_reset (unsigned char on) { on &= 0x1; if (on){ } else ; } uhd-3.5.5/firmware/fx2/b100/fpga_rev2.h000066400000000000000000000033131224274632000173070ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003,2004 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #ifndef INCLUDED_FPGA_REV1_H #define INCLUDED_FPGA_REV1_H /* * return TRUE if FPGA internal fifo has room for a single packet */ #define fpga_has_room_for_data_packet() (!(GPIFREADYSTAT & bmDATA_FIFO_FULL)) #define fpga_has_room_for_ctrl_packet() (!(GPIFREADYSTAT & bmCTRL_FIFO_FULL)) /* * return TRUE if FPGA internal fifo has at least one packet available */ #define fpga_has_data_packet_avail() (!(GPIFREADYSTAT & bmDATA_EMPTY)) #define fpga_has_ctrl_packet_avail() (!(GPIFREADYSTAT & bmCTRL_EMPTY)) #define fx2_has_ctrl_packet_avail() (!(EP24FIFOFLGS & EP4FIFOEMPTY)) #define fx2_has_data_packet_avail() (!(EP24FIFOFLGS & EP2FIFOEMPTY)) #define fx2_has_room_for_ctrl_packet() (!(EP8CS & bmEPFULL)) #define fx2_has_room_for_data_packet() (!(EP6CS & bmEPFULL)) #define fx2_gpif_is_idle() (GPIFTRIG & bmGPIF_IDLE) #endif /* INCLUDED_FPGA_REV1_H */ uhd-3.5.5/firmware/fx2/b100/gpif.c000066400000000000000000000411651224274632000163630ustar00rootroot00000000000000// This program configures the General Programmable Interface (GPIF) for FX2. // Please do not modify sections of text which are marked as "DO NOT EDIT ...". // // DO NOT EDIT ... // GPIF Initialization // Interface Timing Async // Internal Ready Init IntRdy=1 // CTL Out Tristate-able Binary // SingleWrite WF Select 1 // SingleRead WF Select 0 // FifoWrite WF Select 3 // FifoRead WF Select 2 // Data Bus Idle Drive Tristate // END DO NOT EDIT // DO NOT EDIT ... // GPIF Wave Names // Wave 0 = singlerd // Wave 1 = singlewr // Wave 2 = FIFORd // Wave 3 = FIFOWr // GPIF Ctrl Outputs Level // CTL 0 = WEN# CMOS // CTL 1 = REN# CMOS // CTL 2 = OE# CMOS // CTL 3 = EP CMOS // CTL 4 = unused CMOS // CTL 5 = unused CMOS // GPIF Rdy Inputs // RDY0 = EF# // RDY1 = FF# // RDY2 = DRDY // RDY3 = CRDY // RDY4 = unused // RDY5 = TCXpire // FIFOFlag = FIFOFlag // IntReady = IntReady // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 0: singlerd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data NO Data NO Data NO Data NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A // LFunc // Term B // Branch1 // Branch0 // Re-Exec // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 1: singlewr // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode Activate Activate Activate Activate Activate Activate Activate // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A EF# // LFunc AND // Term B EF# // Branch1 ThenIdle // Branch0 ElseIdle // Re-Exec No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 1 1 1 1 1 1 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 2: FIFORd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data Activate NO Data NO Data NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 IF Wait 1 Wait 1 Wait 1 // Term A TCXpire TCXpire // LFunc AND AND // Term B TCXpire TCXpire // Branch1 Then 2 ThenIdle // Branch0 Else 1 ElseIdle // Re-Exec No No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 1 0 0 0 0 0 0 0 // OE# 1 1 1 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 3: FIFOWr // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data Activate Activate Activate Activate Activate Activate // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A TCXpire // LFunc AND // Term B TCXpire // Branch1 ThenIdle // Branch0 Else 1 // Re-Exec No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // GPIF Program Code // DO NOT EDIT ... #include "fx2.h" #include "fx2regs.h" #include "fx2sdly.h" // SYNCDELAY macro // END DO NOT EDIT // DO NOT EDIT ... const char xdata WaveData[128] = { // Wave 0 /* LenBr */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Output*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, // Wave 1 /* LenBr */ 0x01, 0x3F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x22, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, /* Output*/ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, // Wave 2 /* LenBr */ 0x01, 0x11, 0x01, 0x3F, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, /* Output*/ 0x06, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x2D, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x3F, // Wave 3 /* LenBr */ 0x01, 0x39, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, /* Output*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, }; // END DO NOT EDIT // DO NOT EDIT ... const char xdata FlowStates[36] = { /* Wave 0 FlowStates */ 0x81,0x2D,0x0E,0x00,0x00,0x04,0x03,0x02,0x00, /* Wave 1 FlowStates */ 0x81,0x2D,0x09,0x00,0x00,0x04,0x03,0x02,0x00, /* Wave 2 FlowStates */ 0x81,0x2D,0x06,0x00,0x00,0x04,0x03,0x02,0x00, /* Wave 3 FlowStates */ 0x81,0x2D,0x01,0x00,0x00,0x04,0x03,0x02,0x00, }; // END DO NOT EDIT // DO NOT EDIT ... const char xdata InitData[7] = { /* Regs */ 0xA0,0x00,0x00,0x00,0xEE,0x4E,0x00 }; // END DO NOT EDIT // TO DO: You may add additional code below. void GpifInit( void ) { BYTE i; // Registers which require a synchronization delay, see section 15.14 // FIFORESET FIFOPINPOLAR // INPKTEND OUTPKTEND // EPxBCH:L REVCTL // GPIFTCB3 GPIFTCB2 // GPIFTCB1 GPIFTCB0 // EPxFIFOPFH:L EPxAUTOINLENH:L // EPxFIFOCFG EPxGPIFFLGSEL // PINFLAGSxx EPxFIFOIRQ // EPxFIFOIE GPIFIRQ // GPIFIE GPIFADRH:L // UDMACRCH:L EPxGPIFTRIG // GPIFTRIG // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well... // ...these have been replaced by GPIFTC[B3:B0] registers // 8051 doesn't have access to waveform memories 'til // the part is in GPIF mode. IFCONFIG = 0xEE; // IFCLKSRC=1 , FIFOs executes on internal clk source // xMHz=1 , 48MHz internal clk rate // IFCLKOE=0 , Don't drive IFCLK pin signal at 48MHz // IFCLKPOL=0 , Don't invert IFCLK pin signal from internal clk // ASYNC=1 , master samples asynchronous // GSTATE=1 , Drive GPIF states out on PORTE[2:0], debug WF // IFCFG[1:0]=10, FX2 in GPIF master mode GPIFABORT = 0xFF; // abort any waveforms pending GPIFREADYCFG = InitData[ 0 ]; GPIFCTLCFG = InitData[ 1 ]; GPIFIDLECS = InitData[ 2 ]; GPIFIDLECTL = InitData[ 3 ]; GPIFWFSELECT = InitData[ 5 ]; GPIFREADYSTAT = InitData[ 6 ]; // use dual autopointer feature... AUTOPTRSETUP = 0x07; // inc both pointers, // ...warning: this introduces pdata hole(s) // ...at E67B (XAUTODAT1) and E67C (XAUTODAT2) // source AUTOPTRH1 = MSB( &WaveData ); AUTOPTRL1 = LSB( &WaveData ); // destination AUTOPTRH2 = 0xE4; AUTOPTRL2 = 0x00; // transfer for ( i = 0x00; i < 128; i++ ) { EXTAUTODAT2 = EXTAUTODAT1; } // Configure GPIF Address pins, output initial value, PORTCCFG = 0xFF; // [7:0] as alt. func. GPIFADR[7:0] OEC = 0xFF; // and as outputs PORTECFG |= 0x80; // [8] as alt. func. GPIFADR[8] OEE |= 0x80; // and as output // ...OR... tri-state GPIFADR[8:0] pins // PORTCCFG = 0x00; // [7:0] as port I/O // OEC = 0x00; // and as inputs // PORTECFG &= 0x7F; // [8] as port I/O // OEE &= 0x7F; // and as input // GPIF address pins update when GPIFADRH/L written SYNCDELAY; // GPIFADRH = 0x00; // bits[7:1] always 0 SYNCDELAY; // GPIFADRL = 0x00; // point to PERIPHERAL address 0x0000 // Configure GPIF FlowStates registers for Wave 0 of WaveData FLOWSTATE = FlowStates[ 0 ]; FLOWLOGIC = FlowStates[ 1 ]; FLOWEQ0CTL = FlowStates[ 2 ]; FLOWEQ1CTL = FlowStates[ 3 ]; FLOWHOLDOFF = FlowStates[ 4 ]; FLOWSTB = FlowStates[ 5 ]; FLOWSTBEDGE = FlowStates[ 6 ]; FLOWSTBHPERIOD = FlowStates[ 7 ]; } uhd-3.5.5/firmware/fx2/b100/usb_descriptors.a51000066400000000000000000000277431224274632000210220ustar00rootroot00000000000000;;; -*- asm -*- ;;; ;;; Copyright 2003 Free Software Foundation, Inc. ;;; ;;; This file is part of GNU Radio ;;; ;;; GNU Radio is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; GNU Radio is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Radio; see the file COPYING. If not, write to ;;; the Free Software Foundation, Inc., 51 Franklin Street, ;;; Boston, MA 02110-1301, USA. ;;; ;;; USB Descriptor table for the B100 ;;; ;;; We're a high-speed only device (480 Mb/sec) with 1 configuration ;;; and 5 interfaces. ;;; ;;; interface 0: command and status (ep0 COMMAND) ;;; interface 1: Transmit path (ep2 OUT BULK) ;;; interface 2: Receive path (ep6 IN BULK) ;;; interface 3: Command transmit path (ep4 OUT BULK) for FPGA comms ;;; interface 4: Command receive path (ep8 IN BULK) for FPGA comms .module usb_descriptors VID_FREE = 0x2500 ; Ettus Research, LLC. PID_USRP = 0x0002 ; B100 ;; We distinguish configured from unconfigured USRPs using the Device ID. ;; If the MSB of the DID is 0, the device is unconfigured. ;; The LSB of the DID is reserved for hardware revs. DID_USRP = 0x0100 ; Device ID (bcd) DSCR_DEVICE = 1 ; Descriptor type: Device DSCR_CONFIG = 2 ; Descriptor type: Configuration DSCR_STRING = 3 ; Descriptor type: String DSCR_INTRFC = 4 ; Descriptor type: Interface DSCR_ENDPNT = 5 ; Descriptor type: Endpoint DSCR_DEVQUAL = 6 ; Descriptor type: Device Qualifier DSCR_DEVICE_LEN = 18 DSCR_CONFIG_LEN = 9 DSCR_INTRFC_LEN = 9 DSCR_ENDPNT_LEN = 7 DSCR_DEVQUAL_LEN = 10 ET_CONTROL = 0 ; Endpoint type: Control ET_ISO = 1 ; Endpoint type: Isochronous ET_BULK = 2 ; Endpoint type: Bulk ET_INT = 3 ; Endpoint type: Interrupt ;; configuration attributes bmSELF_POWERED = 1 << 6 ;;; -------------------------------------------------------- ;;; external ram data ;;;-------------------------------------------------------- .area USBDESCSEG (XDATA) ;;; ---------------------------------------------------------------- ;;; descriptors used when operating at high speed (480Mb/sec) ;;; ---------------------------------------------------------------- .even ; descriptors must be 2-byte aligned for SUDPTR{H,L} to work ;; The .even directive isn't really honored by the linker. Bummer! ;; (There's no way to specify an alignment requirement for a given area, ;; hence when they're concatenated together, even doesn't work.) ;; ;; We work around this by telling the linker to put USBDESCSEG ;; at 0xE000 absolute. This means that the maximimum length of this ;; segment is 480 bytes, leaving room for the two hash slots ;; at 0xE1EO to 0xE1FF. ;; ;; As of July 7, 2004, this segment is 326 bytes long ;; As of Sept 2, 2010, this segment is 416 bytes long _high_speed_device_descr:: .db DSCR_DEVICE_LEN .db DSCR_DEVICE .db <0x0200 ; Specification version (LSB) .db >0x0200 ; Specification version (MSB) .db 0xff ; device class (vendor specific) .db 0xff ; device subclass (vendor specific) .db 0xff ; device protocol (vendor specific) .db 64 ; bMaxPacketSize0 for endpoint 0 .db VID_FREE ; idVendor .db PID_USRP ; idProduct _usb_desc_hw_rev_binary_patch_location_0:: .db DID_USRP ; bcdDevice .db SI_VENDOR ; iManufacturer (string index) .db SI_PRODUCT ; iProduct (string index) .db SI_SERIAL ; iSerial number (string index) .db 1 ; bNumConfigurations ;;; describes the other speed (12Mb/sec) .even _high_speed_devqual_descr:: .db DSCR_DEVQUAL_LEN .db DSCR_DEVQUAL .db <0x0200 ; bcdUSB (LSB) .db >0x0200 ; bcdUSB (MSB) .db 0xff ; bDeviceClass .db 0xff ; bDeviceSubClass .db 0xff ; bDeviceProtocol .db 64 ; bMaxPacketSize0 .db 1 ; bNumConfigurations (one config at 12Mb/sec) .db 0 ; bReserved .even _high_speed_config_descr:: .db DSCR_CONFIG_LEN .db DSCR_CONFIG .db <(_high_speed_config_descr_end - _high_speed_config_descr) ; LSB .db >(_high_speed_config_descr_end - _high_speed_config_descr) ; MSB .db 5 ; bNumInterfaces .db 1 ; bConfigurationValue .db 0 ; iConfiguration .db 0x80 | bmSELF_POWERED ; bmAttributes .db 0 ; bMaxPower ;; interface descriptor 0 (command & status, ep0 COMMAND) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 0 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 0 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_COMMAND_AND_STATUS ; iInterface (description) ;; interface descriptor 1 (transmit path, ep2 OUT BULK) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 1 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 1 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_TX_PATH ; iInterface (description) ;; interface 1's end point .db DSCR_ENDPNT_LEN .db DSCR_ENDPNT .db 0x02 ; bEndpointAddress (ep 2 OUT) .db ET_BULK ; bmAttributes .db <512 ; wMaxPacketSize (LSB) .db >512 ; wMaxPacketSize (MSB) .db 0 ; bInterval (iso only) ;; interface descriptor 2 (receive path, ep6 IN BULK) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 2 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 1 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_RX_PATH ; iInterface (description) ;; interface 2's end point .db DSCR_ENDPNT_LEN .db DSCR_ENDPNT .db 0x86 ; bEndpointAddress (ep 6 IN) .db ET_BULK ; bmAttributes .db <512 ; wMaxPacketSize (LSB) .db >512 ; wMaxPacketSize (MSB) .db 0 ; bInterval (iso only) ;; interface descriptor 3 (FPGA command OUT path, ep4 OUT BULK) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 3 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 1 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_FPGA_COMMAND_OUT_PATH ; iInterface (description) ;; interface 3's end point .db DSCR_ENDPNT_LEN .db DSCR_ENDPNT .db 0x04 ; bEndpointAddress (ep 4 OUT) .db ET_BULK ; bmAttributes .db <512 ; wMaxPacketSize (LSB) .db >512 ; wMaxPacketSize (MSB) .db 0 ; bInterval (iso only) ;; interface descriptor 4 (FPGA command IN path, ep8 IN BULK) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 4 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 1 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_FPGA_COMMAND_IN_PATH ; iInterface (description) ;; interface 4's end point .db DSCR_ENDPNT_LEN .db DSCR_ENDPNT .db 0x88 ; bEndpointAddress (ep 8 IN) .db ET_BULK ; bmAttributes .db <512 ; wMaxPacketSize (LSB) .db >512 ; wMaxPacketSize (MSB) .db 0 ; bInterval (iso only) _high_speed_config_descr_end: ;;; ---------------------------------------------------------------- ;;; descriptors used when operating at full speed (12Mb/sec) ;;; ---------------------------------------------------------------- .even _full_speed_device_descr:: .db DSCR_DEVICE_LEN .db DSCR_DEVICE .db <0x0200 ; Specification version (LSB) .db >0x0200 ; Specification version (MSB) .db 0xff ; device class (vendor specific) .db 0xff ; device subclass (vendor specific) .db 0xff ; device protocol (vendor specific) .db 64 ; bMaxPacketSize0 for endpoint 0 .db VID_FREE ; idVendor .db PID_USRP ; idProduct _usb_desc_hw_rev_binary_patch_location_1:: .db DID_USRP ; bcdDevice .db SI_VENDOR ; iManufacturer (string index) .db SI_PRODUCT ; iProduct (string index) .db SI_NONE ; iSerial number (None) .db 1 ; bNumConfigurations ;;; describes the other speed (480Mb/sec) .even _full_speed_devqual_descr:: .db DSCR_DEVQUAL_LEN .db DSCR_DEVQUAL .db <0x0200 ; bcdUSB .db >0x0200 ; bcdUSB .db 0xff ; bDeviceClass .db 0xff ; bDeviceSubClass .db 0xff ; bDeviceProtocol .db 64 ; bMaxPacketSize0 .db 1 ; bNumConfigurations (one config at 480Mb/sec) .db 0 ; bReserved .even _full_speed_config_descr:: .db DSCR_CONFIG_LEN .db DSCR_CONFIG .db <(_full_speed_config_descr_end - _full_speed_config_descr) ; LSB .db >(_full_speed_config_descr_end - _full_speed_config_descr) ; MSB .db 1 ; bNumInterfaces .db 1 ; bConfigurationValue .db 0 ; iConfiguration .db 0x80 | bmSELF_POWERED ; bmAttributes .db 0 ; bMaxPower ;; interface descriptor 0 (command & status, ep0 COMMAND) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 0 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 0 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_COMMAND_AND_STATUS ; iInterface (description) _full_speed_config_descr_end: ;;; ---------------------------------------------------------------- ;;; string descriptors ;;; ---------------------------------------------------------------- _nstring_descriptors:: .db (_string_descriptors_end - _string_descriptors) / 2 _string_descriptors:: .db str0 .db str1 .db str2 .db str3 .db str4 .db str5 .db str6 .db str7 .db str8 _string_descriptors_end: SI_NONE = 0 ;; str0 contains the language ID's. .even str0: .db str0_end - str0 .db DSCR_STRING .db 0 .db 0 .db <0x0409 ; magic code for US English (LSB) .db >0x0409 ; magic code for US English (MSB) str0_end: SI_VENDOR = 1 .even str1: .db str1_end - str1 .db DSCR_STRING .db 'E, 0 ; 16-bit unicode .db 't, 0 .db 't, 0 .db 'u, 0 .db 's, 0 .db ' , 0 .db 'R, 0 .db 'e, 0 .db 's, 0 .db 'e, 0 .db 'a, 0 .db 'r, 0 .db 'c, 0 .db 'h, 0 .db ' , 0 .db 'L, 0 .db 'L, 0 .db 'C, 0 str1_end: SI_PRODUCT = 2 .even str2: .db str2_end - str2 .db DSCR_STRING .db 'U, 0 .db 'S, 0 .db 'R, 0 .db 'P, 0 .db ' , 0 .db 'B, 0 .db '1, 0 .db '0, 0 .db '0, 0 _usb_desc_hw_rev_ascii_patch_location_0:: .db '?, 0 str2_end: SI_COMMAND_AND_STATUS = 3 .even str3: .db str3_end - str3 .db DSCR_STRING .db 'C, 0 .db 'o, 0 .db 'm, 0 .db 'm, 0 .db 'a, 0 .db 'n, 0 .db 'd, 0 .db ' , 0 .db '&, 0 .db ' , 0 .db 'S, 0 .db 't, 0 .db 'a, 0 .db 't, 0 .db 'u, 0 .db 's, 0 str3_end: SI_TX_PATH = 4 .even str4: .db str4_end - str4 .db DSCR_STRING .db 'T, 0 .db 'r, 0 .db 'a, 0 .db 'n, 0 .db 's, 0 .db 'm, 0 .db 'i, 0 .db 't, 0 .db ' , 0 .db 'P, 0 .db 'a, 0 .db 't, 0 .db 'h, 0 str4_end: SI_RX_PATH = 5 .even str5: .db str5_end - str5 .db DSCR_STRING .db 'R, 0 .db 'e, 0 .db 'c, 0 .db 'e, 0 .db 'i, 0 .db 'v, 0 .db 'e, 0 .db ' , 0 .db 'P, 0 .db 'a, 0 .db 't, 0 .db 'h, 0 str5_end: SI_SERIAL = 6 .even str6: .db str6_end - str6 .db DSCR_STRING _usb_desc_serial_number_ascii:: .db '3, 0 .db '., 0 .db '1, 0 .db '4, 0 .db '1, 0 .db '5, 0 .db '9, 0 .db '2, 0 .db '7, 0 str6_end: SI_FPGA_COMMAND_OUT_PATH = 7 .even str7: .db str7_end - str7 .db DSCR_STRING .db 'F, 0 .db 'P, 0 .db 'G, 0 .db 'A, 0 .db ' , 0 .db 'C, 0 .db 'o, 0 .db 'm, 0 .db 'm, 0 .db 'a, 0 .db 'n, 0 .db 'd, 0 .db ' , 0 .db 'O, 0 .db 'u, 0 .db 't, 0 str7_end: SI_FPGA_COMMAND_IN_PATH = 8 .even str8: .db str8_end - str8 .db DSCR_STRING .db 'F, 0 .db 'P, 0 .db 'G, 0 .db 'A, 0 .db ' , 0 .db 'C, 0 .db 'o, 0 .db 'm, 0 .db 'm, 0 .db 'a, 0 .db 'n, 0 .db 'd, 0 .db ' , 0 .db 'I, 0 .db 'n, 0 str8_end: uhd-3.5.5/firmware/fx2/b100/usrp_common.c000066400000000000000000000076031224274632000177760ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * common code for USRP */ #include "usrp_common.h" void init_board (void); void init_usrp (void) { CPUCS = bmCLKSPD1; // CPU runs @ 48 MHz CKCON = 0; // MOVX takes 2 cycles // IFCLK is generated internally and runs at 48 MHz, external clk en IFCONFIG = bmIFCLKSRC | bm3048MHZ | bmIFCLKOE; SYNCDELAY; // configure IO ports (B and D are used by slave FIFO) IOA = bmPORT_A_INITIAL; // Port A initial state OEA = bmPORT_A_OUTPUTS; // Port A direction register IOC = bmPORT_C_INITIAL; // Port C initial state OEC = bmPORT_C_OUTPUTS; // Port C direction register IOE = bmPORT_E_INITIAL; // Port E initial state OEE = bmPORT_E_OUTPUTS; // Port E direction register //REVCTL = bmDYN_OUT | bmENH_PKT; // highly recommended by docs // SYNCDELAY; // configure end points EP1OUTCFG = bmVALID | bmBULK; SYNCDELAY; EP1INCFG = bmVALID | bmBULK | bmIN; SYNCDELAY; EP2CFG = bmVALID | bmBULK | bmDOUBLEBUF; SYNCDELAY; // 512 dbl bulk OUT EP4CFG = bmVALID | bmBULK | bmDOUBLEBUF; SYNCDELAY; // 512 dbl bulk OUT EP6CFG = bmVALID | bmBULK | bmDOUBLEBUF | bmIN; SYNCDELAY; // 512 dbl bulk IN EP8CFG = bmVALID | bmBULK | bmDOUBLEBUF | bmIN; SYNCDELAY; // 512 dbl bulk IN // reset FIFOs FIFORESET = bmNAKALL; SYNCDELAY; FIFORESET = 2; SYNCDELAY; FIFORESET = 4; SYNCDELAY; FIFORESET = 6; SYNCDELAY; FIFORESET = 8; SYNCDELAY; FIFORESET = 0; SYNCDELAY; // configure end point FIFOs // let core see 0 to 1 transistion of autoin/out bit EP2FIFOCFG = bmWORDWIDE; SYNCDELAY; EP2FIFOCFG = bmAUTOOUT | bmWORDWIDE; SYNCDELAY; EP6FIFOCFG = bmZEROLENIN | bmWORDWIDE; SYNCDELAY; EP6FIFOCFG = bmZEROLENIN | bmAUTOIN | bmWORDWIDE; SYNCDELAY; EP4FIFOCFG = bmWORDWIDE; SYNCDELAY; EP4FIFOCFG = bmAUTOOUT | bmWORDWIDE; SYNCDELAY; EP8FIFOCFG = bmZEROLENIN | bmWORDWIDE; SYNCDELAY; EP8FIFOCFG = bmZEROLENIN | bmAUTOIN | bmWORDWIDE; SYNCDELAY; EP0BCH = 0; SYNCDELAY; // arm EP1OUT so we can receive "out" packets (TRM pg 8-8) EP1OUTBC = 0; SYNCDELAY; // set autoin length for EP6/EP8 EP6AUTOINLENH = (512) >> 8; SYNCDELAY; // this is the length for high speed EP6AUTOINLENL = (512) & 0xff; SYNCDELAY; EP8AUTOINLENH = (512) >> 8; SYNCDELAY; EP8AUTOINLENL = (512) & 0xff; SYNCDELAY; //set FLAGA, FLAGB, FLAGC, FLAGD to be EP2EF, EP4EF, EP6PF, EP8PF PINFLAGSAB = (bmEP2EF) | (bmEP4EF << 4); PINFLAGSCD = (bmEP6PF) | (bmEP8PF << 4); //ok as far as i can tell, DECIS is reversed compared to the FX2 TRM. //p15.34 says DECIS high implements [assert when (fill > level)], observed opposite EP6FIFOPFH = 0x09; SYNCDELAY; EP6FIFOPFL = 0xFD; SYNCDELAY; EP8FIFOPFH = 0x09; SYNCDELAY; EP8FIFOPFL = 0xFD; SYNCDELAY; // EP2FIFOPFH = 0x08; // SYNCDELAY; // EP2FIFOPFL = 0x00; // SYNCDELAY; //assert FIFOEMPTY one cycle sooner so we get it in time at the FPGA EP2FIFOCFG |= bmBIT5; EP4FIFOCFG |= bmBIT5; //set FIFOPINPOLAR to normal (active low) mode FIFOPINPOLAR = 0x00; SYNCDELAY; PORTACFG = 0x80; init_board (); } uhd-3.5.5/firmware/fx2/b100/usrp_main.c000066400000000000000000000141241224274632000174260ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003,2004 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #include "usrp_common.h" #include "usrp_commands.h" #include "fpga.h" #include "timer.h" #include "i2c.h" #include "isr.h" #include "usb_common.h" #include "fx2utils.h" #include "usrp_globals.h" #include "usrp_i2c_addr.h" #include #include "eeprom_io.h" #include "usb_descriptors.h" /* * offsets into boot eeprom for configuration values */ #define HW_REV_OFFSET 5 #define SERIAL_NO_OFFSET 247 #define SERIAL_NO_LEN 9 #define bRequestType SETUPDAT[0] #define bRequest SETUPDAT[1] #define wValueL SETUPDAT[2] #define wValueH SETUPDAT[3] #define wIndexL SETUPDAT[4] #define wIndexH SETUPDAT[5] #define wLengthL SETUPDAT[6] #define wLengthH SETUPDAT[7] unsigned char g_tx_enable = 0; unsigned char g_rx_enable = 0; unsigned char g_rx_overrun = 0; unsigned char g_tx_underrun = 0; bit enable_gpif = 0; /* * the host side fpga loader code pushes an MD5 hash of the bitstream * into hash1. */ #define USRP_HASH_SIZE 16 xdata at USRP_HASH_SLOT_1_ADDR unsigned char hash1[USRP_HASH_SIZE]; //void clear_fpga_data_fifo(void); //use the B100 fpga_config_cclk/ext_reset line to reset the FPGA void fpga_reset(int level) { bitALTERA_DCLK = level; } static void get_ep0_data (void) { EP0BCL = 0; // arm EP0 for OUT xfer. This sets the busy bit while (EP0CS & bmEPBUSY) // wait for busy to clear ; } static void clear_fifo(int ep) { FIFORESET = 0x80; SYNCDELAY; //activate NAKALL FIFORESET = ep; SYNCDELAY; FIFORESET = 0x00; SYNCDELAY; } void enable_xfers(int enable) { if(enable) { IFCONFIG = bmIFCLKSRC | bm3048MHZ | bmIFCLKOE | bmIFSLAVE; } else { IFCONFIG = bmIFCLKSRC | bm3048MHZ | bmIFSLAVE; } set_led_0(enable); } /* * Handle our "Vendor Extension" commands on endpoint 0. * If we handle this one, return non-zero. */ unsigned char app_vendor_cmd (void) { if (bRequestType == VRT_VENDOR_IN){ ///////////////////////////////// // handle the IN requests ///////////////////////////////// switch (bRequest){ case VRQ_GET_STATUS: //this is no longer done via FX2 -- the FPGA will be queried instead return 0; break; case VRQ_I2C_READ: if (!i2c_read (wValueL, EP0BUF, wLengthL)) return 0; EP0BCH = 0; EP0BCL = wLengthL; break; case VRQ_SPI_READ: return 0; case VRQ_FW_COMPAT: EP0BCH = 0; EP0BCL = 4; break; default: return 0; } } else if (bRequestType == VRT_VENDOR_OUT){ ///////////////////////////////// // handle the OUT requests ///////////////////////////////// switch (bRequest){ case VRQ_SET_LED: switch (wIndexL){ case 0: set_led_0 (wValueL); break; case 1: set_led_1 (wValueL); break; default: return 0; } break; case VRQ_FPGA_LOAD: switch (wIndexL){ // sub-command case FL_BEGIN: return fpga_load_begin (); case FL_XFER: get_ep0_data (); return fpga_load_xfer (EP0BUF, EP0BCL); case FL_END: return fpga_load_end (); default: return 0; } break; case VRQ_FPGA_SET_RESET: fpga_reset(wValueL); break; case VRQ_I2C_WRITE: get_ep0_data (); if (!i2c_write (wValueL, EP0BUF, EP0BCL)) return 0; //USRP_LED_REG ^= bmLED1; break; case VRQ_RESET_GPIF: clear_fifo(wValueL); break; case VRQ_ENABLE_GPIF: enable_xfers(wValueL); break; case VRQ_CLEAR_FPGA_FIFO: //clear_fpga_data_fifo(); break; default: return 0; } } else return 0; // invalid bRequestType return 1; } static void main_loop (void) { while (1){ if (usb_setup_packet_avail ()) usb_handle_setup_packet (); } } /* * called at 100 Hz from timer2 interrupt * * Toggle led 0 */ void isr_tick (void) interrupt { static unsigned char count = 1; if (--count == 0){ count = 50; USRP_LED_REG ^= bmLED0; } clear_timer_irq (); } /* * Read h/w rev code and serial number out of boot eeprom and * patch the usb descriptors with the values. */ void patch_usb_descriptors(void) { static xdata unsigned char hw_rev; static xdata unsigned char serial_no[SERIAL_NO_LEN]; unsigned char i; eeprom_read(I2C_ADDR_BOOT, HW_REV_OFFSET, &hw_rev, 1); // LSB of device id usb_desc_hw_rev_binary_patch_location_0[0] = hw_rev; usb_desc_hw_rev_binary_patch_location_1[0] = hw_rev; usb_desc_hw_rev_ascii_patch_location_0[0] = hw_rev + '0'; // FIXME if we get > 9 eeprom_read(I2C_ADDR_BOOT, SERIAL_NO_OFFSET, serial_no, SERIAL_NO_LEN); for (i = 0; i < SERIAL_NO_LEN; i++){ unsigned char ch = serial_no[i]; if (ch == 0xff) // make unprogrammed EEPROM default to '0' ch = '0'; usb_desc_serial_number_ascii[i << 1] = ch; } } void main (void) { memset (hash1, 0, USRP_HASH_SIZE); // zero fpga bitstream hash. This forces reload init_usrp (); set_led_0 (0); set_led_1 (0); EA = 0; // disable all interrupts patch_usb_descriptors(); setup_autovectors (); usb_install_handlers (); //hook_timer_tick ((unsigned short) isr_tick); EIEX4 = 1; // disable INT4 FIXME EA = 1; // global interrupt enable fx2_renumerate (); // simulates disconnect / reconnect main_loop (); } uhd-3.5.5/firmware/fx2/b100/usrp_regs.h000066400000000000000000000050731224274632000174520ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * These are the register definitions for the Rev 1 USRP prototype * The Rev 1 is the version with the AD9862's and daughterboards */ #ifndef _B100_REGS_H_ #define _B100_REGS_H_ #include "fx2regs.h" /* * Port A (bit addressable): */ #define USRP_PA IOA // Port A #define USRP_PA_OE OEA // Port A direction register #define USRP_ALTERA_CONFIG USRP_PA // Now on port A, not C #define bmALTERA_DCLK bmBIT0 #define bmALTERA_NCONFIG bmBIT1 #define bmALTERA_DATA0 bmBIT3 #define bmALTERA_NSTATUS bmBIT4 #define bmALTERA_BITS (bmALTERA_DCLK \ | bmALTERA_NCONFIG \ | bmALTERA_DATA0 \ | bmALTERA_NSTATUS \ ) #define bmPORT_A_OUTPUTS (bmALTERA_DCLK \ | bmALTERA_NCONFIG \ | bmALTERA_DATA0 \ ) #define bmPORT_A_INITIAL 0 #define PORT_A_ADDR 0x80 #define PORT_C_ADDR 0xA0 sbit at PORT_A_ADDR+0 bitALTERA_DCLK; // 0x80 is the bit address of PORT A sbit at PORT_A_ADDR+1 bitALTERA_NCONFIG; sbit at PORT_A_ADDR+3 bitALTERA_DATA0; sbit at PORT_C_ADDR+7 bitALTERA_CONF_DONE; /* Port B: GPIF FD[7:0] */ /* * Port C (bit addressable): * 5:1 FPGA configuration */ #define USRP_PC IOC // Port C #define USRP_PC_OE OEC // Port C direction register #define bmPC_nRESET 0 //bmBIT0 // reset line to codecs (active low) #define bmPC_LED0 bmBIT0 // active low #define bmPC_LED1 bmBIT1 // active low #define bmPORT_C_OUTPUTS (bmPC_LED0 | bmPC_LED1) #define bmPORT_C_INITIAL (bmPC_LED0 | bmPC_LED1) #define USRP_LED_REG USRP_PC #define bmLED0 bmPC_LED0 #define bmLED1 bmPC_LED1 /* Port D: GPIF FD[15:8] */ /* Port E: not bit addressible */ #define USRP_PE IOE // Port E #define USRP_PE_OE OEE // Port E direction register #define bmPORT_E_OUTPUTS (0) #define bmPORT_E_INITIAL (0) #endif /* _USRP_REV1_REGS_H_ */ uhd-3.5.5/firmware/fx2/common/000077500000000000000000000000001224274632000161115ustar00rootroot00000000000000uhd-3.5.5/firmware/fx2/common/.gitignore000066400000000000000000000002731224274632000201030ustar00rootroot00000000000000/*.ihx /*.lnk /*.lst /*.map /*.mem /*.rel /*.rst /*.sym /blink_leds.asm /usrp_common.asm /command_loop.asm /fpga.asm /*.asm /usrp_gpif.c /usrp_gpif_inline.h /*.lib /Makefile /Makefile.in uhd-3.5.5/firmware/fx2/common/_startup.a51000066400000000000000000000045731224274632000202730ustar00rootroot00000000000000;;; -*- asm -*- ;;; ;;; Copyright 2003,2004 Free Software Foundation, Inc. ;;; ;;; This file is part of GNU Radio ;;; ;;; GNU Radio is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; GNU Radio is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Radio; see the file COPYING. If not, write to ;;; the Free Software Foundation, Inc., 51 Franklin Street, ;;; Boston, MA 02110-1301, USA. ;;; The default external memory initialization provided by sdcc is not ;;; appropriate to the FX2. This is derived from the sdcc code, but uses ;;; the FX2 specific _MPAGE sfr. ;; .area XISEG (XDATA) ; the initialized external data area ;; .area XINIT (CODE) ; the code space consts to init XISEG .area XSEG (XDATA) ; zero initialized xdata .area USBDESCSEG (XDATA) ; usb descriptors .area CSEG (CODE) ;; sfr that sets upper address byte of MOVX using @r0 or @r1 _MPAGE = 0x0092 __sdcc_external_startup:: ;; This system is now compiled with the --no-xinit-opt ;; which means that any initialized XDATA is handled ;; inline by code in the GSINIT segs emitted for each file. ;; ;; We zero XSEG and all of the internal ram to ensure ;; a known good state for uninitialized variables. ; _mcs51_genRAMCLEAR() start mov r0,#l_XSEG mov a,r0 orl a,#(l_XSEG >> 8) jz 00002$ mov r1,#((l_XSEG + 255) >> 8) mov dptr,#s_XSEG clr a 00001$: movx @dptr,a inc dptr djnz r0,00001$ djnz r1,00001$ ;; We're about to clear internal memory. This will overwrite ;; the stack which contains our return address. ;; Pop our return address into DPH, DPL 00002$: pop dph pop dpl ;; R0 and A contain 0. This loop will execute 256 times. ;; ;; FWIW the first iteration writes direct address 0x00, ;; which is the location of r0. We get lucky, we're ;; writing the correct value (0) 00003$: mov @r0,a djnz r0,00003$ push dpl ; restore our return address push dph mov dpl,#0 ; indicate that data init is still required ret uhd-3.5.5/firmware/fx2/common/_startup.a51.brittle000066400000000000000000000043131224274632000217270ustar00rootroot00000000000000;;; -*- asm -*- ;;; ;;; Copyright 2003 Free Software Foundation, Inc. ;;; ;;; This file is part of GNU Radio ;;; ;;; GNU Radio is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; GNU Radio is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Radio; see the file COPYING. If not, write to ;;; the Free Software Foundation, Inc., 51 Franklin Street, ;;; Boston, MA 02110-1301, USA. ;;; The default external memory initialization provided by sdcc is not ;;; appropriate to the FX2. This is derived from the sdcc code, but uses ;;; the FX2 specific _MPAGE sfr. .area XISEG (XDATA) ; the initialized external data area .area XINIT (CODE) ; the code space consts to init XISEG .area XSEG (XDATA) ; zero initialized xdata .area USBDESCSEG (XDATA); usb descriptors ;; BIG TIME KLUDGE! ;; Look at usrp_main.rst and count the bytes from our ;; "normal return location" to the first instruction following ;; the comment: "_mcs51_getRAMCLEAR () start" INSTRUCTION_BYTES_TO_SKIP = 0x29 ; valid for sdcc 2.4.0 .area CSEG (CODE) ;; sfr that sets upper address byte of MOVX using @r0 or @r1 _MPAGE = 0x0092 __sdcc_external_startup:: ; _mcs51_genXINIT() start mov r1,#l_XINIT mov a,r1 orl a,#(l_XINIT >> 8) jz 00003$ mov r2,#((l_XINIT+255) >> 8) mov dptr,#s_XINIT mov r0,#s_XISEG mov _MPAGE,#(s_XISEG >> 8) 00001$: clr a movc a,@a+dptr movx @r0,a inc dptr inc r0 cjne r0,#0,00002$ inc _MPAGE 00002$: djnz r1,00001$ djnz r2,00001$ mov _MPAGE,#0xFF 00003$: ;; Danger! Total KLUDGE! ;; We pop the return address, add a magic number to it ;; then jump to that address. Believe it or not, this ;; looks like the least kludgy way to handle this, ;; short of patching the compiler... pop dph pop dpl mov a,#INSTRUCTION_BYTES_TO_SKIP jmp @a+dptr uhd-3.5.5/firmware/fx2/common/delay.c000066400000000000000000000032341224274632000173550ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ /* * Delay approximately 1 microsecond (including overhead in udelay). */ static void udelay1 (void) _naked { _asm ; lcall that got us here took 4 bus cycles ret ; 4 bus cycles _endasm; } /* * delay for approximately usecs microseconds */ void udelay (unsigned char usecs) { do { udelay1 (); } while (--usecs != 0); } /* * Delay approximately 1 millisecond. * We're running at 48 MHz, so we need 48,000 clock cycles. * * Note however, that each bus cycle takes 4 clock cycles (not obvious, * but explains the factor of 4 problem below). */ static void mdelay1 (void) _naked { _asm mov dptr,#(-1200 & 0xffff) 002$: inc dptr ; 3 bus cycles mov a, dpl ; 2 bus cycles orl a, dph ; 2 bus cycles jnz 002$ ; 3 bus cycles ret _endasm; } void mdelay (unsigned int msecs) { do { mdelay1 (); } while (--msecs != 0); } uhd-3.5.5/firmware/fx2/common/delay.h000066400000000000000000000021061224274632000173570ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _DELAY_H_ #define _DELAY_H_ /* * delay for approximately usecs microseconds * Note limit of 255 usecs. */ void udelay (unsigned char usecs); /* * delay for approximately msecs milliseconds */ void mdelay (unsigned short msecs); #endif /* _DELAY_H_ */ uhd-3.5.5/firmware/fx2/common/eeprom_boot.a51000066400000000000000000000273071224274632000207440ustar00rootroot00000000000000;-------------------------------------------------------- ; Hand tweaked minimal eeprom boot code ;-------------------------------------------------------- .module eeprom_boot .optsdcc -mmcs51 --model-small ;-------------------------------------------------------- ; Public variables in this module ;-------------------------------------------------------- .globl _eeprom_init .globl _EP8FIFOBUF .globl _EP6FIFOBUF .globl _EP4FIFOBUF .globl _EP2FIFOBUF .globl _EP1INBUF .globl _EP1OUTBUF .globl _EP0BUF .globl _CT4 .globl _CT3 .globl _CT2 .globl _CT1 .globl _USBTEST .globl _TESTCFG .globl _DBUG .globl _UDMACRCQUAL .globl _UDMACRCL .globl _UDMACRCH .globl _GPIFHOLDAMOUNT .globl _FLOWSTBHPERIOD .globl _FLOWSTBEDGE .globl _FLOWSTB .globl _FLOWHOLDOFF .globl _FLOWEQ1CTL .globl _FLOWEQ0CTL .globl _FLOWLOGIC .globl _FLOWSTATE .globl _GPIFABORT .globl _GPIFREADYSTAT .globl _GPIFREADYCFG .globl _XGPIFSGLDATLNOX .globl _XGPIFSGLDATLX .globl _XGPIFSGLDATH .globl _EP8GPIFTRIG .globl _EP8GPIFPFSTOP .globl _EP8GPIFFLGSEL .globl _EP6GPIFTRIG .globl _EP6GPIFPFSTOP .globl _EP6GPIFFLGSEL .globl _EP4GPIFTRIG .globl _EP4GPIFPFSTOP .globl _EP4GPIFFLGSEL .globl _EP2GPIFTRIG .globl _EP2GPIFPFSTOP .globl _EP2GPIFFLGSEL .globl _GPIFTCB0 .globl _GPIFTCB1 .globl _GPIFTCB2 .globl _GPIFTCB3 .globl _GPIFADRL .globl _GPIFADRH .globl _GPIFCTLCFG .globl _GPIFIDLECTL .globl _GPIFIDLECS .globl _GPIFWFSELECT .globl _SETUPDAT .globl _SUDPTRCTL .globl _SUDPTRL .globl _SUDPTRH .globl _EP8FIFOBCL .globl _EP8FIFOBCH .globl _EP6FIFOBCL .globl _EP6FIFOBCH .globl _EP4FIFOBCL .globl _EP4FIFOBCH .globl _EP2FIFOBCL .globl _EP2FIFOBCH .globl _EP8FIFOFLGS .globl _EP6FIFOFLGS .globl _EP4FIFOFLGS .globl _EP2FIFOFLGS .globl _EP8CS .globl _EP6CS .globl _EP4CS .globl _EP2CS .globl _EP1INCS .globl _EP1OUTCS .globl _EP0CS .globl _EP8BCL .globl _EP8BCH .globl _EP6BCL .globl _EP6BCH .globl _EP4BCL .globl _EP4BCH .globl _EP2BCL .globl _EP2BCH .globl _EP1INBC .globl _EP1OUTBC .globl _EP0BCL .globl _EP0BCH .globl _FNADDR .globl _MICROFRAME .globl _USBFRAMEL .globl _USBFRAMEH .globl _TOGCTL .globl _WAKEUPCS .globl _SUSPEND .globl _USBCS .globl _XAUTODAT2 .globl _XAUTODAT1 .globl _I2CTL .globl _I2DAT .globl _I2CS .globl _PORTECFG .globl _PORTCCFG .globl _PORTACFG .globl _INTSETUP .globl _INT4IVEC .globl _INT2IVEC .globl _CLRERRCNT .globl _ERRCNTLIM .globl _USBERRIRQ .globl _USBERRIE .globl _GPIFIRQ .globl _GPIFIE .globl _EPIRQ .globl _EPIE .globl _USBIRQ .globl _USBIE .globl _NAKIRQ .globl _NAKIE .globl _IBNIRQ .globl _IBNIE .globl _EP8FIFOIRQ .globl _EP8FIFOIE .globl _EP6FIFOIRQ .globl _EP6FIFOIE .globl _EP4FIFOIRQ .globl _EP4FIFOIE .globl _EP2FIFOIRQ .globl _EP2FIFOIE .globl _OUTPKTEND .globl _INPKTEND .globl _EP8ISOINPKTS .globl _EP6ISOINPKTS .globl _EP4ISOINPKTS .globl _EP2ISOINPKTS .globl _EP8FIFOPFL .globl _EP8FIFOPFH .globl _EP6FIFOPFL .globl _EP6FIFOPFH .globl _EP4FIFOPFL .globl _EP4FIFOPFH .globl _EP2FIFOPFL .globl _EP2FIFOPFH .globl _EP8AUTOINLENL .globl _EP8AUTOINLENH .globl _EP6AUTOINLENL .globl _EP6AUTOINLENH .globl _EP4AUTOINLENL .globl _EP4AUTOINLENH .globl _EP2AUTOINLENL .globl _EP2AUTOINLENH .globl _EP8FIFOCFG .globl _EP6FIFOCFG .globl _EP4FIFOCFG .globl _EP2FIFOCFG .globl _EP8CFG .globl _EP6CFG .globl _EP4CFG .globl _EP2CFG .globl _EP1INCFG .globl _EP1OUTCFG .globl _REVCTL .globl _REVID .globl _FIFOPINPOLAR .globl _UART230 .globl _BPADDRL .globl _BPADDRH .globl _BREAKPT .globl _FIFORESET .globl _PINFLAGSCD .globl _PINFLAGSAB .globl _IFCONFIG .globl _CPUCS .globl _RES_WAVEDATA_END .globl _GPIF_WAVE_DATA ;-------------------------------------------------------- ; special function registers ;-------------------------------------------------------- _IOA = 0x0080 _SP = 0x0081 _DPL = 0x0082 _DPH = 0x0083 _DPL1 = 0x0084 _DPH1 = 0x0085 _DPS = 0x0086 _PCON = 0x0087 _TCON = 0x0088 _TMOD = 0x0089 _TL0 = 0x008a _TL1 = 0x008b _TH0 = 0x008c _TH1 = 0x008d _CKCON = 0x008e _IOB = 0x0090 _EXIF = 0x0091 _MPAGE = 0x0092 _SCON0 = 0x0098 _SBUF0 = 0x0099 _APTR1H = 0x009a _APTR1L = 0x009b _AUTODAT1 = 0x009c _AUTOPTRH2 = 0x009d _AUTOPTRL2 = 0x009e _AUTODAT2 = 0x009f _IOC = 0x00a0 _INT2CLR = 0x00a1 _INT4CLR = 0x00a2 _IE = 0x00a8 _EP2468STAT = 0x00aa _EP24FIFOFLGS = 0x00ab _EP68FIFOFLGS = 0x00ac _AUTOPTRSETUP = 0x00af _IOD = 0x00b0 _IOE = 0x00b1 _OEA = 0x00b2 _OEB = 0x00b3 _OEC = 0x00b4 _OED = 0x00b5 _OEE = 0x00b6 _IP = 0x00b8 _EP01STAT = 0x00ba _GPIFTRIG = 0x00bb _GPIFSGLDATH = 0x00bd _GPIFSGLDATLX = 0x00be _GPIFSGLDATLNOX = 0x00bf _SCON1 = 0x00c0 _SBUF1 = 0x00c1 _T2CON = 0x00c8 _RCAP2L = 0x00ca _RCAP2H = 0x00cb _TL2 = 0x00cc _TH2 = 0x00cd _PSW = 0x00d0 _EICON = 0x00d8 _ACC = 0x00e0 _EIE = 0x00e8 _B = 0x00f0 _EIP = 0x00f8 ;-------------------------------------------------------- ; special function bits ;-------------------------------------------------------- _SEL = 0x0086 _IT0 = 0x0088 _IE0 = 0x0089 _IT1 = 0x008a _IE1 = 0x008b _TR0 = 0x008c _TF0 = 0x008d _TR1 = 0x008e _TF1 = 0x008f _RI = 0x0098 _TI = 0x0099 _RB8 = 0x009a _TB8 = 0x009b _REN = 0x009c _SM2 = 0x009d _SM1 = 0x009e _SM0 = 0x009f _EX0 = 0x00a8 _ET0 = 0x00a9 _EX1 = 0x00aa _ET1 = 0x00ab _ES0 = 0x00ac _ET2 = 0x00ad _ES1 = 0x00ae _EA = 0x00af _PX0 = 0x00b8 _PT0 = 0x00b9 _PX1 = 0x00ba _PT1 = 0x00bb _PS0 = 0x00bc _PT2 = 0x00bd _PS1 = 0x00be _RI1 = 0x00c0 _TI1 = 0x00c1 _RB81 = 0x00c2 _TB81 = 0x00c3 _REN1 = 0x00c4 _SM21 = 0x00c5 _SM11 = 0x00c6 _SM01 = 0x00c7 _CP_RL2 = 0x00c8 _C_T2 = 0x00c9 _TR2 = 0x00ca _EXEN2 = 0x00cb _TCLK = 0x00cc _RCLK = 0x00cd _EXF2 = 0x00ce _TF2 = 0x00cf _P = 0x00d0 _FL = 0x00d1 _OV = 0x00d2 _RS0 = 0x00d3 _RS1 = 0x00d4 _F0 = 0x00d5 _AC = 0x00d6 _CY = 0x00d7 _INT6 = 0x00db _RESI = 0x00dc _ERESI = 0x00dd _SMOD1 = 0x00df _EIUSB = 0x00e8 _EI2C = 0x00e9 _EIEX4 = 0x00ea _EIEX5 = 0x00eb _EIEX6 = 0x00ec _PUSB = 0x00f8 _PI2C = 0x00f9 _EIPX4 = 0x00fa _EIPX5 = 0x00fb _EIPX6 = 0x00fc _bitS_CLK = 0x0080 _bitS_OUT = 0x0081 _bitS_IN = 0x0082 _bitALTERA_DATA0 = 0x00a1 _bitALTERA_DCLK = 0x00a3 ;-------------------------------------------------------- ; overlayable register banks ;-------------------------------------------------------- .area REG_BANK_0 (REL,OVR,DATA) .ds 8 ;-------------------------------------------------------- ; internal ram data ;-------------------------------------------------------- .area DSEG (DATA) ;-------------------------------------------------------- ; overlayable items in internal ram ;-------------------------------------------------------- .area OSEG (OVR,DATA) ;-------------------------------------------------------- ; Stack segment in internal ram ;-------------------------------------------------------- .area SSEG (DATA) __start__stack: .ds 1 ;-------------------------------------------------------- ; indirectly addressable internal ram data ;-------------------------------------------------------- .area ISEG (DATA) ;-------------------------------------------------------- ; bit data ;-------------------------------------------------------- .area BSEG (BIT) ;-------------------------------------------------------- ; external ram data ;-------------------------------------------------------- .area XSEG (XDATA) _GPIF_WAVE_DATA = 0xe400 _RES_WAVEDATA_END = 0xe480 _CPUCS = 0xe600 _IFCONFIG = 0xe601 _PINFLAGSAB = 0xe602 _PINFLAGSCD = 0xe603 _FIFORESET = 0xe604 _BREAKPT = 0xe605 _BPADDRH = 0xe606 _BPADDRL = 0xe607 _UART230 = 0xe608 _FIFOPINPOLAR = 0xe609 _REVID = 0xe60a _REVCTL = 0xe60b _EP1OUTCFG = 0xe610 _EP1INCFG = 0xe611 _EP2CFG = 0xe612 _EP4CFG = 0xe613 _EP6CFG = 0xe614 _EP8CFG = 0xe615 _EP2FIFOCFG = 0xe618 _EP4FIFOCFG = 0xe619 _EP6FIFOCFG = 0xe61a _EP8FIFOCFG = 0xe61b _EP2AUTOINLENH = 0xe620 _EP2AUTOINLENL = 0xe621 _EP4AUTOINLENH = 0xe622 _EP4AUTOINLENL = 0xe623 _EP6AUTOINLENH = 0xe624 _EP6AUTOINLENL = 0xe625 _EP8AUTOINLENH = 0xe626 _EP8AUTOINLENL = 0xe627 _EP2FIFOPFH = 0xe630 _EP2FIFOPFL = 0xe631 _EP4FIFOPFH = 0xe632 _EP4FIFOPFL = 0xe633 _EP6FIFOPFH = 0xe634 _EP6FIFOPFL = 0xe635 _EP8FIFOPFH = 0xe636 _EP8FIFOPFL = 0xe637 _EP2ISOINPKTS = 0xe640 _EP4ISOINPKTS = 0xe641 _EP6ISOINPKTS = 0xe642 _EP8ISOINPKTS = 0xe643 _INPKTEND = 0xe648 _OUTPKTEND = 0xe649 _EP2FIFOIE = 0xe650 _EP2FIFOIRQ = 0xe651 _EP4FIFOIE = 0xe652 _EP4FIFOIRQ = 0xe653 _EP6FIFOIE = 0xe654 _EP6FIFOIRQ = 0xe655 _EP8FIFOIE = 0xe656 _EP8FIFOIRQ = 0xe657 _IBNIE = 0xe658 _IBNIRQ = 0xe659 _NAKIE = 0xe65a _NAKIRQ = 0xe65b _USBIE = 0xe65c _USBIRQ = 0xe65d _EPIE = 0xe65e _EPIRQ = 0xe65f _GPIFIE = 0xe660 _GPIFIRQ = 0xe661 _USBERRIE = 0xe662 _USBERRIRQ = 0xe663 _ERRCNTLIM = 0xe664 _CLRERRCNT = 0xe665 _INT2IVEC = 0xe666 _INT4IVEC = 0xe667 _INTSETUP = 0xe668 _PORTACFG = 0xe670 _PORTCCFG = 0xe671 _PORTECFG = 0xe672 _I2CS = 0xe678 _I2DAT = 0xe679 _I2CTL = 0xe67a _XAUTODAT1 = 0xe67b _XAUTODAT2 = 0xe67c _USBCS = 0xe680 _SUSPEND = 0xe681 _WAKEUPCS = 0xe682 _TOGCTL = 0xe683 _USBFRAMEH = 0xe684 _USBFRAMEL = 0xe685 _MICROFRAME = 0xe686 _FNADDR = 0xe687 _EP0BCH = 0xe68a _EP0BCL = 0xe68b _EP1OUTBC = 0xe68d _EP1INBC = 0xe68f _EP2BCH = 0xe690 _EP2BCL = 0xe691 _EP4BCH = 0xe694 _EP4BCL = 0xe695 _EP6BCH = 0xe698 _EP6BCL = 0xe699 _EP8BCH = 0xe69c _EP8BCL = 0xe69d _EP0CS = 0xe6a0 _EP1OUTCS = 0xe6a1 _EP1INCS = 0xe6a2 _EP2CS = 0xe6a3 _EP4CS = 0xe6a4 _EP6CS = 0xe6a5 _EP8CS = 0xe6a6 _EP2FIFOFLGS = 0xe6a7 _EP4FIFOFLGS = 0xe6a8 _EP6FIFOFLGS = 0xe6a9 _EP8FIFOFLGS = 0xe6aa _EP2FIFOBCH = 0xe6ab _EP2FIFOBCL = 0xe6ac _EP4FIFOBCH = 0xe6ad _EP4FIFOBCL = 0xe6ae _EP6FIFOBCH = 0xe6af _EP6FIFOBCL = 0xe6b0 _EP8FIFOBCH = 0xe6b1 _EP8FIFOBCL = 0xe6b2 _SUDPTRH = 0xe6b3 _SUDPTRL = 0xe6b4 _SUDPTRCTL = 0xe6b5 _SETUPDAT = 0xe6b8 _GPIFWFSELECT = 0xe6c0 _GPIFIDLECS = 0xe6c1 _GPIFIDLECTL = 0xe6c2 _GPIFCTLCFG = 0xe6c3 _GPIFADRH = 0xe6c4 _GPIFADRL = 0xe6c5 _GPIFTCB3 = 0xe6ce _GPIFTCB2 = 0xe6cf _GPIFTCB1 = 0xe6d0 _GPIFTCB0 = 0xe6d1 _EP2GPIFFLGSEL = 0xe6d2 _EP2GPIFPFSTOP = 0xe6d3 _EP2GPIFTRIG = 0xe6d4 _EP4GPIFFLGSEL = 0xe6da _EP4GPIFPFSTOP = 0xe6db _EP4GPIFTRIG = 0xe6dc _EP6GPIFFLGSEL = 0xe6e2 _EP6GPIFPFSTOP = 0xe6e3 _EP6GPIFTRIG = 0xe6e4 _EP8GPIFFLGSEL = 0xe6ea _EP8GPIFPFSTOP = 0xe6eb _EP8GPIFTRIG = 0xe6ec _XGPIFSGLDATH = 0xe6f0 _XGPIFSGLDATLX = 0xe6f1 _XGPIFSGLDATLNOX = 0xe6f2 _GPIFREADYCFG = 0xe6f3 _GPIFREADYSTAT = 0xe6f4 _GPIFABORT = 0xe6f5 _FLOWSTATE = 0xe6c6 _FLOWLOGIC = 0xe6c7 _FLOWEQ0CTL = 0xe6c8 _FLOWEQ1CTL = 0xe6c9 _FLOWHOLDOFF = 0xe6ca _FLOWSTB = 0xe6cb _FLOWSTBEDGE = 0xe6cc _FLOWSTBHPERIOD = 0xe6cd _GPIFHOLDAMOUNT = 0xe60c _UDMACRCH = 0xe67d _UDMACRCL = 0xe67e _UDMACRCQUAL = 0xe67f _DBUG = 0xe6f8 _TESTCFG = 0xe6f9 _USBTEST = 0xe6fa _CT1 = 0xe6fb _CT2 = 0xe6fc _CT3 = 0xe6fd _CT4 = 0xe6fe _EP0BUF = 0xe740 _EP1OUTBUF = 0xe780 _EP1INBUF = 0xe7c0 _EP2FIFOBUF = 0xf000 _EP4FIFOBUF = 0xf400 _EP6FIFOBUF = 0xf800 _EP8FIFOBUF = 0xfc00 ;-------------------------------------------------------- ; external initialized ram data ;-------------------------------------------------------- ;-------------------------------------------------------- ; interrupt vector ;-------------------------------------------------------- .area CSEG (CODE) __interrupt_vect: ljmp __sdcc_gsinit_startup ;-------------------------------------------------------- ; global & static initialisations ;-------------------------------------------------------- .area GSINIT (CODE) .area GSFINAL (CODE) .area GSINIT (CODE) __sdcc_gsinit_startup: mov sp,#__start__stack - 1 lcall __sdcc_external_startup mov a,dpl jz __sdcc_init_data ljmp __sdcc_program_startup __sdcc_init_data: .area GSFINAL (CODE) ljmp __sdcc_program_startup ;-------------------------------------------------------- ; Home ;-------------------------------------------------------- .area HOME (CODE) .area CSEG (CODE) ;-------------------------------------------------------- ; code ;-------------------------------------------------------- .area CSEG (CODE) __sdcc_program_startup: lcall _eeprom_init ; return from _eeprom_init will spin here sjmp . .area CSEG (CODE) uhd-3.5.5/firmware/fx2/common/eeprom_init.c000066400000000000000000000037431224274632000205760ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "usrp_common.h" #include "usrp_commands.h" /* * the host side fpga loader code pushes an MD5 hash of the bitstream * into hash1. */ #define USRP_HASH_SIZE 16 xdata at USRP_HASH_SLOT_0_ADDR unsigned char hash0[USRP_HASH_SIZE]; #define REG_RX_PWR_DN 1 #define REG_TX_PWR_DN 8 #define REG_TX_MODULATOR 20 void eeprom_init (void) { unsigned short counter; unsigned char i; // configure IO ports (B and D are used by GPIF) IOA = bmPORT_A_INITIAL; // Port A initial state OEA = bmPORT_A_OUTPUTS; // Port A direction register IOC = bmPORT_C_INITIAL; // Port C initial state OEC = bmPORT_C_OUTPUTS; // Port C direction register IOE = bmPORT_E_INITIAL; // Port E initial state OEE = bmPORT_E_OUTPUTS; // Port E direction register EP0BCH = 0; SYNCDELAY; // USBCS &= ~bmRENUM; // chip firmware handles commands USBCS = 0; // chip firmware handles commands //USRP_PC &= ~bmPC_nRESET; // active low reset //USRP_PC |= bmPC_nRESET; // zero firmware hash slot i = 0; do { hash0[i] = 0; i++; } while (i != USRP_HASH_SIZE); counter = 0; while (1){ counter++; if (counter & 0x8000) IOC ^= bmPC_LED0; } } uhd-3.5.5/firmware/fx2/common/fpga.h000066400000000000000000000017261224274632000172050ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_FPGA_H #define INCLUDED_FPGA_H #include "fpga_load.h" #if defined(HAVE_USRP2) #include "fpga_rev2.h" #endif #endif /* INCLUDED_FPGA_H */ uhd-3.5.5/firmware/fx2/common/fpga_load.h000066400000000000000000000020451224274632000201770ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #ifndef INCLUDED_FPGA_LOAD_H #define INCLUDED_FPGA_LOAD_H unsigned char fpga_load_begin (void); unsigned char fpga_load_xfer (xdata unsigned char *p, unsigned char len); unsigned char fpga_load_end (void); #endif /* INCLUDED_FPGA_LOAD_H */ uhd-3.5.5/firmware/fx2/common/fpga_regs0.h000066400000000000000000000023511224274632000203000ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _FPGA_REGS0_H_ #define _FPGA_REGS0_H_ #define FR_RX_FREQ_0 0 #define FR_RX_FREQ_1 1 #define FR_RX_FREQ_2 2 #define FR_RX_FREQ_3 3 #define FR_TX_FREQ_0 4 #define FR_TX_FREQ_1 5 #define FR_TX_FREQ_2 6 #define FR_TX_FREQ_3 7 #define FR_COMBO 8 #define FR_ADC_CLK_DIV 128 // pseudo regs mapped to FR_COMBO by f/w #define FR_EXT_CLK_DIV 129 #define FR_INTERP 130 #define FR_DECIM 131 #endif uhd-3.5.5/firmware/fx2/common/fpga_regs_common.h000066400000000000000000000117711224274632000215760ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003,2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_FPGA_REGS_COMMON_H #define INCLUDED_FPGA_REGS_COMMON_H // This file defines registers common to all FPGA configurations. // Registers 0 to 31 are reserved for use in this file. // The FPGA needs to know the rate that samples are coming from and // going to the A/D's and D/A's. div = 128e6 / sample_rate #define FR_TX_SAMPLE_RATE_DIV 0 #define FR_RX_SAMPLE_RATE_DIV 1 // 2 and 3 are defined in the ATR section #define FR_MASTER_CTRL 4 // master enable and reset controls # define bmFR_MC_ENABLE_TX (1 << 0) # define bmFR_MC_ENABLE_RX (1 << 1) # define bmFR_MC_RESET_TX (1 << 2) # define bmFR_MC_RESET_RX (1 << 3) // i/o direction registers for pins that go to daughterboards. // Setting the bit makes it an output from the FPGA to the d'board. // top 16 is mask, low 16 is value #define FR_OE_0 5 // slot 0 #define FR_OE_1 6 #define FR_OE_2 7 #define FR_OE_3 8 // i/o registers for pins that go to daughterboards. // top 16 is a mask, low 16 is value #define FR_IO_0 9 // slot 0 #define FR_IO_1 10 #define FR_IO_2 11 #define FR_IO_3 12 #define FR_MODE 13 # define bmFR_MODE_NORMAL 0 # define bmFR_MODE_LOOPBACK (1 << 0) // enable digital loopback # define bmFR_MODE_RX_COUNTING (1 << 1) // Rx is counting # define bmFR_MODE_RX_COUNTING_32BIT (1 << 2) // Rx is counting with a 32 bit counter // low and high 16 bits are multiplexed across channel I and Q // If the corresponding bit is set, internal FPGA debug circuitry // controls the i/o pins for the associated bank of daughterboard // i/o pins. Typically used for debugging FPGA designs. #define FR_DEBUG_EN 14 # define bmFR_DEBUG_EN_TX_A (1 << 0) // debug controls TX_A i/o # define bmFR_DEBUG_EN_RX_A (1 << 1) // debug controls RX_A i/o # define bmFR_DEBUG_EN_TX_B (1 << 2) // debug controls TX_B i/o # define bmFR_DEBUG_EN_RX_B (1 << 3) // debug controls RX_B i/o // If the corresponding bit is set, enable the automatic DC // offset correction control loop. // // The 4 low bits are significant: // // ADC0 = (1 << 0) // ADC1 = (1 << 1) // ADC2 = (1 << 2) // ADC3 = (1 << 3) // // This control loop works if the attached daugherboard blocks DC. // Currently all daughterboards do block DC. This includes: // basic rx, dbs_rx, tv_rx, flex_xxx_rx. #define FR_DC_OFFSET_CL_EN 15 // DC Offset Control Loop Enable // offset corrections for ADC's and DAC's (2's complement) #define FR_ADC_OFFSET_0 16 #define FR_ADC_OFFSET_1 17 #define FR_ADC_OFFSET_2 18 #define FR_ADC_OFFSET_3 19 // ------------------------------------------------------------------------ // Automatic Transmit/Receive switching // // If automatic transmit/receive (ATR) switching is enabled in the // FR_ATR_CTL register, the presence or absence of data in the FPGA // transmit fifo selects between two sets of values for each of the 4 // banks of daughterboard i/o pins. // // Each daughterboard slot has 3 16-bit registers associated with it: // FR_ATR_MASK_*, FR_ATR_TXVAL_* and FR_ATR_RXVAL_* // // FR_ATR_MASK_{0,1,2,3}: // // These registers determine which of the daugherboard i/o pins are // affected by ATR switching. If a bit in the mask is set, the // corresponding i/o bit is controlled by ATR, else it's output // value comes from the normal i/o pin output register: // FR_IO_{0,1,2,3}. // // FR_ATR_TXVAL_{0,1,2,3}: // FR_ATR_RXVAL_{0,1,2,3}: // // If the Tx fifo contains data, then the bits from TXVAL that are // selected by MASK are output. Otherwise, the bits from RXVAL that // are selected by MASK are output. #define FR_ATR_MASK_0 20 // slot 0 #define FR_ATR_TXVAL_0 21 #define FR_ATR_RXVAL_0 22 #define FR_ATR_MASK_1 23 // slot 1 #define FR_ATR_TXVAL_1 24 #define FR_ATR_RXVAL_1 25 #define FR_ATR_MASK_2 26 // slot 2 #define FR_ATR_TXVAL_2 27 #define FR_ATR_RXVAL_2 28 #define FR_ATR_MASK_3 29 // slot 3 #define FR_ATR_TXVAL_3 30 #define FR_ATR_RXVAL_3 31 // Clock ticks to delay rising and falling edge of T/R signal #define FR_ATR_TX_DELAY 2 #define FR_ATR_RX_DELAY 3 #endif /* INCLUDED_FPGA_REGS_COMMON_H */ uhd-3.5.5/firmware/fx2/common/fpga_regs_common.v000066400000000000000000000074271224274632000216170ustar00rootroot00000000000000// // This file is machine generated from ./fpga_regs_common.h // Do not edit by hand; your edits will be overwritten. // // This file defines registers common to all FPGA configurations. // Registers 0 to 31 are reserved for use in this file. // The FPGA needs to know the rate that samples are coming from and // going to the A/D's and D/A's. div = 128e6 / sample_rate `define FR_TX_SAMPLE_RATE_DIV 7'd0 `define FR_RX_SAMPLE_RATE_DIV 7'd1 // 2 and 3 are defined in the ATR section `define FR_MASTER_CTRL 7'd4 // master enable and reset controls // i/o direction registers for pins that go to daughterboards. // Setting the bit makes it an output from the FPGA to the d'board. // top 16 is mask, low 16 is value `define FR_OE_0 7'd5 // slot 0 `define FR_OE_1 7'd6 `define FR_OE_2 7'd7 `define FR_OE_3 7'd8 // i/o registers for pins that go to daughterboards. // top 16 is a mask, low 16 is value `define FR_IO_0 7'd9 // slot 0 `define FR_IO_1 7'd10 `define FR_IO_2 7'd11 `define FR_IO_3 7'd12 `define FR_MODE 7'd13 // If the corresponding bit is set, internal FPGA debug circuitry // controls the i/o pins for the associated bank of daughterboard // i/o pins. Typically used for debugging FPGA designs. `define FR_DEBUG_EN 7'd14 // If the corresponding bit is set, enable the automatic DC // offset correction control loop. // // The 4 low bits are significant: // // ADC0 = (1 << 0) // ADC1 = (1 << 1) // ADC2 = (1 << 2) // ADC3 = (1 << 3) // // This control loop works if the attached daugherboard blocks DC. // Currently all daughterboards do block DC. This includes: // basic rx, dbs_rx, tv_rx, flex_xxx_rx. `define FR_DC_OFFSET_CL_EN 7'd15 // DC Offset Control Loop Enable // offset corrections for ADC's and DAC's (2's complement) `define FR_ADC_OFFSET_0 7'd16 `define FR_ADC_OFFSET_1 7'd17 `define FR_ADC_OFFSET_2 7'd18 `define FR_ADC_OFFSET_3 7'd19 // ------------------------------------------------------------------------ // Automatic Transmit/Receive switching // // If automatic transmit/receive (ATR) switching is enabled in the // FR_ATR_CTL register, the presence or absence of data in the FPGA // transmit fifo selects between two sets of values for each of the 4 // banks of daughterboard i/o pins. // // Each daughterboard slot has 3 16-bit registers associated with it: // FR_ATR_MASK_*, FR_ATR_TXVAL_* and FR_ATR_RXVAL_* // // FR_ATR_MASK_{0,1,2,3}: // // These registers determine which of the daugherboard i/o pins are // affected by ATR switching. If a bit in the mask is set, the // corresponding i/o bit is controlled by ATR, else it's output // value comes from the normal i/o pin output register: // FR_IO_{0,1,2,3}. // // FR_ATR_TXVAL_{0,1,2,3}: // FR_ATR_RXVAL_{0,1,2,3}: // // If the Tx fifo contains data, then the bits from TXVAL that are // selected by MASK are output. Otherwise, the bits from RXVAL that // are selected by MASK are output. `define FR_ATR_MASK_0 7'd20 // slot 0 `define FR_ATR_TXVAL_0 7'd21 `define FR_ATR_RXVAL_0 7'd22 `define FR_ATR_MASK_1 7'd23 // slot 1 `define FR_ATR_TXVAL_1 7'd24 `define FR_ATR_RXVAL_1 7'd25 `define FR_ATR_MASK_2 7'd26 // slot 2 `define FR_ATR_TXVAL_2 7'd27 `define FR_ATR_RXVAL_2 7'd28 `define FR_ATR_MASK_3 7'd29 // slot 3 `define FR_ATR_TXVAL_3 7'd30 `define FR_ATR_RXVAL_3 7'd31 // Clock ticks to delay rising and falling edge of T/R signal `define FR_ATR_TX_DELAY 7'd2 `define FR_ATR_RX_DELAY 7'd3 uhd-3.5.5/firmware/fx2/common/fpga_regs_standard.h000066400000000000000000000275411224274632000221100ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003,2004,2006 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_FPGA_REGS_STANDARD_H #define INCLUDED_FPGA_REGS_STANDARD_H // Register numbers 0 to 31 are reserved for use in fpga_regs_common.h. // Registers 64 to 79 are available for custom FPGA builds. // DDC / DUC #define FR_INTERP_RATE 32 // [1,1024] #define FR_DECIM_RATE 33 // [1,256] // DDC center freq #define FR_RX_FREQ_0 34 #define FR_RX_FREQ_1 35 #define FR_RX_FREQ_2 36 #define FR_RX_FREQ_3 37 // See below for DDC Starting Phase // ------------------------------------------------------------------------ // configure FPGA Rx mux // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------+-------+-------+-------+-------+-+-----+ // | must be zero | Q3| I3| Q2| I2| Q1| I1| Q0| I0|Z| NCH | // +-----------------------+-------+-------+-------+-------+-+-----+ // // There are a maximum of 4 digital downconverters in the the FPGA. // Each DDC has two 16-bit inputs, I and Q, and two 16-bit outputs, I & Q. // // DDC I inputs are specified by the two bit fields I3, I2, I1 & I0 // // 0 = DDC input is from ADC 0 // 1 = DDC input is from ADC 1 // 2 = DDC input is from ADC 2 // 3 = DDC input is from ADC 3 // // If Z == 1, all DDC Q inputs are set to zero // If Z == 0, DDC Q inputs are specified by the two bit fields Q3, Q2, Q1 & Q0 // // NCH specifies the number of complex channels that are sent across // the USB. The legal values are 1, 2 or 4, corresponding to 2, 4 or // 8 16-bit values. #define FR_RX_MUX 38 // ------------------------------------------------------------------------ // configure FPGA Tx Mux. // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------+-------+-------+-------+-------+-+-----+ // | | DAC3 | DAC2 | DAC1 | DAC0 |0| NCH | // +-----------------------------------------------+-------+-+-----+ // // NCH specifies the number of complex channels that are sent across // the USB. The legal values are 1 or 2, corresponding to 2 or 4 // 16-bit values. // // There are two interpolators with complex inputs and outputs. // There are four DACs. (We use the DUC in each AD9862.) // // Each 4-bit DACx field specifies the source for the DAC and // whether or not that DAC is enabled. Each subfield is coded // like this: // // 3 2 1 0 // +-+-----+ // |E| N | // +-+-----+ // // Where E is set if the DAC is enabled, and N specifies which // interpolator output is connected to this DAC. // // N which interp output // --- ------------------- // 0 chan 0 I // 1 chan 0 Q // 2 chan 1 I // 3 chan 1 Q #define FR_TX_MUX 39 // ------------------------------------------------------------------------ // REFCLK control // // Control whether a reference clock is sent to the daughterboards, // and what frequency. The refclk is sent on d'board i/o pin 0. // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------------------------------+-+------------+ // | Reserved (Must be zero) |E| DIVISOR | // +-----------------------------------------------+-+------------+ // // Bit 7 -- 1 turns on refclk, 0 allows IO use // Bits 6:0 Divider value #define FR_TX_A_REFCLK 40 #define FR_RX_A_REFCLK 41 #define FR_TX_B_REFCLK 42 #define FR_RX_B_REFCLK 43 # define bmFR_REFCLK_EN 0x80 # define bmFR_REFCLK_DIVISOR_MASK 0x7f // ------------------------------------------------------------------------ // DDC Starting Phase #define FR_RX_PHASE_0 44 #define FR_RX_PHASE_1 45 #define FR_RX_PHASE_2 46 #define FR_RX_PHASE_3 47 // ------------------------------------------------------------------------ // Tx data format control register // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-------------------------------------------------------+-------+ // | Reserved (Must be zero) | FMT | // +-------------------------------------------------------+-------+ // // FMT values: #define FR_TX_FORMAT 48 # define bmFR_TX_FORMAT_16_IQ 0 // 16-bit I, 16-bit Q // ------------------------------------------------------------------------ // Rx data format control register // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------------------------+-+-+---------+-------+ // | Reserved (Must be zero) |B|Q| WIDTH | SHIFT | // +-----------------------------------------+-+-+---------+-------+ // // FMT values: #define FR_RX_FORMAT 49 # define bmFR_RX_FORMAT_SHIFT_MASK (0x0f << 0) // arithmetic right shift [0, 15] # define bmFR_RX_FORMAT_SHIFT_SHIFT 0 # define bmFR_RX_FORMAT_WIDTH_MASK (0x1f << 4) // data width in bits [1, 16] (not all valid) # define bmFR_RX_FORMAT_WIDTH_SHIFT 4 # define bmFR_RX_FORMAT_WANT_Q (0x1 << 9) // deliver both I & Q, else just I # define bmFR_RX_FORMAT_BYPASS_HB (0x1 << 10) // bypass half-band filter // The valid combinations currently are: // // B Q WIDTH SHIFT // 0 1 16 0 // 0 1 8 8 // Possible future values of WIDTH = {4, 2, 1} // 12 takes a bit more work, since we need to know packet alignment. // ------------------------------------------------------------------------ // FIXME register numbers 50 to 63 are available // ------------------------------------------------------------------------ // Registers 64 to 95 are reserved for user custom FPGA builds. // The standard USRP software will not touch these. #define FR_USER_0 64 #define FR_USER_1 65 #define FR_USER_2 66 #define FR_USER_3 67 #define FR_USER_4 68 #define FR_USER_5 69 #define FR_USER_6 70 #define FR_USER_7 71 #define FR_USER_8 72 #define FR_USER_9 73 #define FR_USER_10 74 #define FR_USER_11 75 #define FR_USER_12 76 #define FR_USER_13 77 #define FR_USER_14 78 #define FR_USER_15 79 #define FR_USER_16 80 #define FR_USER_17 81 #define FR_USER_18 82 #define FR_USER_19 83 #define FR_USER_20 84 #define FR_USER_21 85 #define FR_USER_22 86 #define FR_USER_23 87 #define FR_USER_24 88 #define FR_USER_25 89 #define FR_USER_26 90 #define FR_USER_27 91 #define FR_USER_28 92 #define FR_USER_29 93 #define FR_USER_30 94 #define FR_USER_31 95 //Registers needed for multi usrp master/slave configuration // //Rx Master/slave control register (FR_RX_MASTER_SLAVE = FR_USER_0) // #define FR_RX_MASTER_SLAVE 64 #define bitnoFR_RX_SYNC 0 #define bitnoFR_RX_SYNC_MASTER 1 #define bitnoFR_RX_SYNC_SLAVE 2 # define bmFR_RX_SYNC (1 <> 3 | (ep & 0x0f)); TOGCTL |= bmRESETTOGGLE; } void fx2_renumerate (void) { USBCS |= bmDISCON | bmRENUM; // mdelay (1500); // FIXME why 1.5 seconds? mdelay (250); // FIXME why 1.5 seconds? USBIRQ = 0xff; // clear any pending USB irqs... EPIRQ = 0xff; // they're from before the renumeration EXIF &= ~bmEXIF_USBINT; USBCS &= ~bmDISCON; // reconnect USB } uhd-3.5.5/firmware/fx2/common/fx2utils.h000066400000000000000000000017451224274632000200510ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _FX2UTILS_H_ #define _FX2UTILS_H_ void fx2_stall_ep0 (void); void fx2_reset_data_toggle (unsigned char ep); void fx2_renumerate (void); #endif /* _FX2UTILS_H_ */ uhd-3.5.5/firmware/fx2/common/i2c.c000066400000000000000000000051071224274632000167350ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "i2c.h" #include "fx2regs.h" #include // issue a stop bus cycle and wait for completion // returns non-zero if successful, else 0 unsigned char i2c_read (unsigned char addr, xdata unsigned char *buf, unsigned char len) { volatile unsigned char junk; if (len == 0) // reading zero bytes always works return 1; while (I2CS & bmSTOP) // wait for stop to clear ; I2CS = bmSTART; I2DAT = (addr << 1) | 1; // write address and direction (1's the read bit) while ((I2CS & bmDONE) == 0) ; if ((I2CS & bmBERR) || (I2CS & bmACK) == 0) // no device answered... goto fail; if (len == 1) I2CS |= bmLASTRD; junk = I2DAT; // trigger the first read cycle while (--len != 0){ while ((I2CS & bmDONE) == 0) ; if (I2CS & bmBERR) goto fail; if (len == 1) I2CS |= bmLASTRD; *buf++ = I2DAT; // get data, trigger another read } // wait for final byte while ((I2CS & bmDONE) == 0) ; if (I2CS & bmBERR) goto fail; I2CS |= bmSTOP; *buf = I2DAT; return 1; fail: I2CS |= bmSTOP; return 0; } // returns non-zero if successful, else 0 unsigned char i2c_write (unsigned char addr, xdata const unsigned char *buf, unsigned char len) { while (I2CS & bmSTOP) // wait for stop to clear ; I2CS = bmSTART; I2DAT = (addr << 1) | 0; // write address and direction (0's the write bit) while ((I2CS & bmDONE) == 0) ; if ((I2CS & bmBERR) || (I2CS & bmACK) == 0) // no device answered... goto fail; while (len > 0){ I2DAT = *buf++; len--; while ((I2CS & bmDONE) == 0) ; if ((I2CS & bmBERR) || (I2CS & bmACK) == 0) // no device answered... goto fail; } I2CS |= bmSTOP; return 1; fail: I2CS |= bmSTOP; return 0; } uhd-3.5.5/firmware/fx2/common/i2c.h000066400000000000000000000022011224274632000167320ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _I2C_H_ #define _I2C_H_ // returns non-zero if successful, else 0 unsigned char i2c_read (unsigned char addr, xdata unsigned char *buf, unsigned char len); // returns non-zero if successful, else 0 unsigned char i2c_write (unsigned char addr, xdata const unsigned char *buf, unsigned char len); #endif /* _I2C_H_ */ uhd-3.5.5/firmware/fx2/common/init_gpif.c000066400000000000000000000034451224274632000202330ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #include "usrp_common.h" // These are the tables generated by the Cypress GPIF Designer extern const char WaveData[128]; extern const char FlowStates[36]; extern const char InitData[7]; // The tool is kind of screwed up, in that it doesn't configure some // of the ports correctly. We just use their tables and handle the // initialization ourselves. They also declare that their static // initialized data is in xdata, which screws us too. void init_gpif (void) { // we've already setup IFCONFIG before calling this... GPIFABORT = 0xFF; // abort any waveforms pending SYNCDELAY; GPIFREADYCFG = InitData[ 0 ]; GPIFCTLCFG = InitData[ 1 ]; GPIFIDLECS = InitData[ 2 ]; GPIFIDLECTL = InitData[ 3 ]; // Hmmm, what's InitData[ 4 ] ... GPIFWFSELECT = InitData[ 5 ]; // GPIFREADYSTAT = InitData[ 6 ]; // I think this register is read only... { BYTE i; for (i = 0; i < 128; i++){ GPIF_WAVE_DATA[i] = WaveData[i]; } } FLOWSTATE = 0; /* ensure it's off */ } uhd-3.5.5/firmware/fx2/common/isr.c000066400000000000000000000077131224274632000170620ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "isr.h" #include "fx2regs.h" #include "syncdelay.h" extern xdata unsigned char _standard_interrupt_vector[]; extern xdata unsigned char _usb_autovector[]; extern xdata unsigned char _fifo_gpif_autovector[]; #define LJMP_OPCODE 0x02 /* * Hook standard interrupt vector. * * vector_number is from the SV_ list. * addr is the address of the interrupt service routine. */ void hook_sv (unsigned char vector_number, unsigned short addr) { bit t; // sanity checks if (vector_number < SV_MIN || vector_number > SV_MAX) return; if ((vector_number & 0x0f) != 0x03 && (vector_number & 0x0f) != 0x0b) return; t = EA; EA = 0; _standard_interrupt_vector[vector_number] = LJMP_OPCODE; _standard_interrupt_vector[vector_number + 1] = addr >> 8; _standard_interrupt_vector[vector_number + 2] = addr & 0xff; EA = t; } /* * Hook usb interrupt vector. * * vector_number is from the UV_ list. * addr is the address of the interrupt service routine. */ void hook_uv (unsigned char vector_number, unsigned short addr) { bit t; // sanity checks if (vector_number < UV_MIN || vector_number > UV_MAX) return; if ((vector_number & 0x3) != 0) return; t = EA; EA = 0; _usb_autovector[vector_number] = LJMP_OPCODE; _usb_autovector[vector_number + 1] = addr >> 8; _usb_autovector[vector_number + 2] = addr & 0xff; EA = t; } /* * Hook fifo/gpif interrupt vector. * * vector_number is from the FGV_ list. * addr is the address of the interrupt service routine. */ void hook_fgv (unsigned char vector_number, unsigned short addr) { bit t; // sanity checks if (vector_number < FGV_MIN || vector_number > FGV_MAX) return; if ((vector_number & 0x3) != 0) return; t = EA; EA = 0; _fifo_gpif_autovector[vector_number] = LJMP_OPCODE; _fifo_gpif_autovector[vector_number + 1] = addr >> 8; _fifo_gpif_autovector[vector_number + 2] = addr & 0xff; EA = t; } /* * One time call to enable autovectoring for both USB and FIFO/GPIF. * * This disables all USB and FIFO/GPIF interrupts and clears * any pending interrupts too. It leaves the master USB and FIFO/GPIF * interrupts enabled. */ void setup_autovectors (void) { // disable master usb and fifo/gpif interrupt enables EIUSB = 0; EIEX4 = 0; hook_sv (SV_INT_2, (unsigned short) _usb_autovector); hook_sv (SV_INT_4, (unsigned short) _fifo_gpif_autovector); // disable all fifo interrupt enables SYNCDELAY; EP2FIFOIE = 0; SYNCDELAY; EP4FIFOIE = 0; SYNCDELAY; EP6FIFOIE = 0; SYNCDELAY; EP8FIFOIE = 0; SYNCDELAY; // clear all pending fifo irqs EP2FIFOIRQ = 0xff; SYNCDELAY; EP4FIFOIRQ = 0xff; SYNCDELAY; EP6FIFOIRQ = 0xff; SYNCDELAY; EP8FIFOIRQ = 0xff; SYNCDELAY; IBNIE = 0; IBNIRQ = 0xff; NAKIE = 0; NAKIRQ = 0xff; USBIE = 0; USBIRQ = 0xff; EPIE = 0; EPIRQ = 0xff; SYNCDELAY; GPIFIE = 0; SYNCDELAY; GPIFIRQ = 0xff; USBERRIE = 0; USBERRIRQ = 0xff; CLRERRCNT = 0; INTSETUP = bmAV2EN | bmAV4EN | bmINT4IN; // clear master irq's for usb and fifo/gpif EXIF &= ~bmEXIF_USBINT; EXIF &= ~bmEXIF_IE4; // enable master usb and fifo/gpif interrrupts EIUSB = 1; EIEX4 = 1; } uhd-3.5.5/firmware/fx2/common/isr.h000066400000000000000000000104711224274632000170620ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _ISR_H_ #define _ISR_H_ /* * ---------------------------------------------------------------- * routines for managing interrupt services routines * ---------------------------------------------------------------- */ /* * The FX2 has three discrete sets of interrupt vectors. * The first set is the standard 8051 vector (13 8-byte entries). * The second set is USB interrupt autovector (32 4-byte entries). * The third set is the FIFO/GPIF autovector (14 4-byte entries). * * Since all the code we're running in the FX2 is ram based, we * forego the typical "initialize the interrupt vectors at link time" * strategy, in favor of calls at run time that install the correct * pointers to functions. */ /* * Standard Vector numbers */ #define SV_INT_0 0x03 #define SV_TIMER_0 0x0b #define SV_INT_1 0x13 #define SV_TIMER_1 0x1b #define SV_SERIAL_0 0x23 #define SV_TIMER_2 0x2b #define SV_RESUME 0x33 #define SV_SERIAL_1 0x3b #define SV_INT_2 0x43 // (INT_2) points at USB autovector #define SV_I2C 0x4b #define SV_INT_4 0x53 // (INT_4) points at FIFO/GPIF autovector #define SV_INT_5 0x5b #define SV_INT_6 0x63 #define SV_MIN SV_INT_0 #define SV_MAX SV_INT_6 /* * USB Auto Vector numbers */ #define UV_SUDAV 0x00 #define UV_SOF 0x04 #define UV_SUTOK 0x08 #define UV_SUSPEND 0x0c #define UV_USBRESET 0x10 #define UV_HIGHSPEED 0x14 #define UV_EP0ACK 0x18 #define UV_SPARE_1C 0x1c #define UV_EP0IN 0x20 #define UV_EP0OUT 0x24 #define UV_EP1IN 0x28 #define UV_EP1OUT 0x2c #define UV_EP2 0x30 #define UV_EP4 0x34 #define UV_EP6 0x38 #define UV_EP8 0x3c #define UV_IBN 0x40 #define UV_SPARE_44 0x44 #define UV_EP0PINGNAK 0x48 #define UV_EP1PINGNAK 0x4c #define UV_EP2PINGNAK 0x50 #define UV_EP4PINGNAK 0x54 #define UV_EP6PINGNAK 0x58 #define UV_EP8PINGNAK 0x5c #define UV_ERRLIMIT 0x60 #define UV_SPARE_64 0x64 #define UV_SPARE_68 0x68 #define UV_SPARE_6C 0x6c #define UV_EP2ISOERR 0x70 #define UV_EP4ISOERR 0x74 #define UV_EP6ISOERR 0x78 #define UV_EP8ISOERR 0x7c #define UV_MIN UV_SUDAV #define UV_MAX UV_EP8ISOERR /* * FIFO/GPIF Auto Vector numbers */ #define FGV_EP2PF 0x00 #define FGV_EP4PF 0x04 #define FGV_EP6PF 0x08 #define FGV_EP8PF 0x0c #define FGV_EP2EF 0x10 #define FGV_EP4EF 0x14 #define FGV_EP6EF 0x18 #define FGV_EP8EF 0x1c #define FGV_EP2FF 0x20 #define FGV_EP4FF 0x24 #define FGV_EP6FF 0x28 #define FGV_EP8FF 0x2c #define FGV_GPIFDONE 0x30 #define FGV_GPIFWF 0x34 #define FGV_MIN FGV_EP2PF #define FGV_MAX FGV_GPIFWF /* * Hook standard interrupt vector. * * vector_number is from the SV_ list above. * addr is the address of the interrupt service routine. */ void hook_sv (unsigned char vector_number, unsigned short addr); /* * Hook usb interrupt vector. * * vector_number is from the UV_ list above. * addr is the address of the interrupt service routine. */ void hook_uv (unsigned char vector_number, unsigned short addr); /* * Hook fifo/gpif interrupt vector. * * vector_number is from the FGV_ list above. * addr is the address of the interrupt service routine. */ void hook_fgv (unsigned char vector_number, unsigned short addr); /* * One time call to enable autovectoring for both USB and FIFO/GPIF */ void setup_autovectors (void); /* * Must be called in each usb interrupt handler */ #define clear_usb_irq() \ EXIF &= ~bmEXIF_USBINT; \ INT2CLR = 0 /* * Must be calledin each fifo/gpif interrupt handler */ #define clear_fifo_gpif_irq() \ EXIF &= ~bmEXIF_IE4; \ INT4CLR = 0 #endif /* _ISR_H_ */ uhd-3.5.5/firmware/fx2/common/spi.c000066400000000000000000000165061224274632000170600ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004,2006 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "spi.h" #include "usrp_regs.h" static void setup_enables (unsigned char enables) { // Software eanbles are active high. // Hardware enables are active low. // Uhh, the CODECs are active low, but the FPGA is active high... enables ^= SPI_ENABLE_FPGA; // KLUDGE: This code is fragile, but reasonably fast... // low three bits of enables go into port A USRP_PA = USRP_PA | (0x7 << 3); // disable FPGA, CODEC_A, CODEC_B USRP_PA ^= (enables & 0x7) << 3; // enable specified devs // high four bits of enables go into port E USRP_PE = USRP_PE | (0xf << 4); // disable TX_A, RX_A, TX_B, RX_B USRP_PE ^= (enables & 0xf0); // enable specified devs } #define disable_all() setup_enables (0) void init_spi (void) { disable_all (); /* disable all devs */ bitS_OUT = 0; /* idle state has CLK = 0 */ } #if 0 static unsigned char count_bits8 (unsigned char v) { static unsigned char count4[16] = { 0, // 0 1, // 1 1, // 2 2, // 3 1, // 4 2, // 5 2, // 6 3, // 7 1, // 8 2, // 9 2, // a 3, // b 2, // c 3, // d 3, // e 4 // f }; return count4[v & 0xf] + count4[(v >> 4) & 0xf]; } #else static unsigned char count_bits8 (unsigned char v) { unsigned char count = 0; if (v & (1 << 0)) count++; if (v & (1 << 1)) count++; if (v & (1 << 2)) count++; if (v & (1 << 3)) count++; if (v & (1 << 4)) count++; if (v & (1 << 5)) count++; if (v & (1 << 6)) count++; if (v & (1 << 7)) count++; return count; } #endif static void write_byte_msb (unsigned char v); static void write_bytes_msb (const xdata unsigned char *buf, unsigned char len); static void read_bytes_msb (xdata unsigned char *buf, unsigned char len); // returns non-zero if successful, else 0 unsigned char spi_read (unsigned char header_hi, unsigned char header_lo, unsigned char enables, unsigned char format, xdata unsigned char *buf, unsigned char len) { if (count_bits8 (enables) > 1) return 0; // error, too many enables set setup_enables (enables); if (format & SPI_FMT_LSB){ // order: LSB #if 1 return 0; // error, not implemented #else switch (format & SPI_FMR_HDR_MASK){ case SPI_FMT_HDR_0: break; case SPI_FMT_HDR_1: write_byte_lsb (header_lo); break; case SPI_FMT_HDR_2: write_byte_lsb (header_lo); write_byte_lsb (header_hi); break; default: return 0; // error } if (len != 0) read_bytes_lsb (buf, len); #endif } else { // order: MSB switch (format & SPI_FMT_HDR_MASK){ case SPI_FMT_HDR_0: break; case SPI_FMT_HDR_1: write_byte_msb (header_lo); break; case SPI_FMT_HDR_2: write_byte_msb (header_hi); write_byte_msb (header_lo); break; default: return 0; // error } if (len != 0) read_bytes_msb (buf, len); } disable_all (); return 1; // success } // returns non-zero if successful, else 0 unsigned char spi_write (unsigned char header_hi, unsigned char header_lo, unsigned char enables, unsigned char format, const xdata unsigned char *buf, unsigned char len) { setup_enables (enables); if (format & SPI_FMT_LSB){ // order: LSB #if 1 return 0; // error, not implemented #else switch (format & SPI_FMR_HDR_MASK){ case SPI_FMT_HDR_0: break; case SPI_FMT_HDR_1: write_byte_lsb (header_lo); break; case SPI_FMT_HDR_2: write_byte_lsb (header_lo); write_byte_lsb (header_hi); break; default: return 0; // error } if (len != 0) write_bytes_lsb (buf, len); #endif } else { // order: MSB switch (format & SPI_FMT_HDR_MASK){ case SPI_FMT_HDR_0: break; case SPI_FMT_HDR_1: write_byte_msb (header_lo); break; case SPI_FMT_HDR_2: write_byte_msb (header_hi); write_byte_msb (header_lo); break; default: return 0; // error } if (len != 0) write_bytes_msb (buf, len); } disable_all (); return 1; // success } // ---------------------------------------------------------------- static void write_byte_msb (unsigned char v) { v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; v = (v << 1) | (v >> 7); // rotate left (MSB into bottom bit) bitS_OUT = v & 0x1; bitS_CLK = 1; bitS_CLK = 0; } static void write_bytes_msb (const xdata unsigned char *buf, unsigned char len) { while (len-- != 0){ write_byte_msb (*buf++); } } #if 0 /* * This is incorrectly compiled by SDCC 2.4.0 */ static unsigned char read_byte_msb (void) { unsigned char v = 0; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; v = v << 1; bitS_CLK = 1; v |= bitS_IN; bitS_CLK = 0; return v; } #else static unsigned char read_byte_msb (void) _naked { _asm clr a setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK setb _bitS_CLK mov c, _bitS_IN rlc a clr _bitS_CLK mov dpl,a ret _endasm; } #endif static void read_bytes_msb (xdata unsigned char *buf, unsigned char len) { while (len-- != 0){ *buf++ = read_byte_msb (); } } uhd-3.5.5/firmware/fx2/common/spi.h000066400000000000000000000026101224274632000170540ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_SPI_H #define INCLUDED_SPI_H #include "usrp_spi_defs.h" void init_spi (void); // one time call to init // returns non-zero if successful, else 0 unsigned char spi_read (unsigned char header_hi, unsigned char header_lo, unsigned char enables, unsigned char format, xdata unsigned char *buf, unsigned char len); // returns non-zero if successful, else 0 unsigned char spi_write (unsigned char header_hi, unsigned char header_lo, unsigned char enables, unsigned char format, const xdata unsigned char *buf, unsigned char len); #endif /* INCLUDED_SPI_H */ uhd-3.5.5/firmware/fx2/common/syncdelay.h000066400000000000000000000040631224274632000202600ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _SYNCDELAY_H_ #define _SYNCDELAY_H_ /* * Magic delay required between access to certain xdata registers (TRM page 15-106). * For our configuration, 48 MHz FX2 / 48 MHz IFCLK, we need three cycles. Each * NOP is a single cycle.... * * From TRM page 15-105: * * Under certain conditions, some read and write access to the FX2 registers must * be separated by a "synchronization delay". The delay is necessary only under the * following conditions: * * - between a write to any register in the 0xE600 - 0xE6FF range and a write to one * of the registers listed below. * * - between a write to one of the registers listed below and a read from any register * in the 0xE600 - 0xE6FF range. * * Registers which require a synchronization delay: * * FIFORESET FIFOPINPOLAR * INPKTEND EPxBCH:L * EPxFIFOPFH:L EPxAUTOINLENH:L * EPxFIFOCFG EPxGPIFFLGSEL * PINFLAGSAB PINFLAGSCD * EPxFIFOIE EPxFIFOIRQ * GPIFIE GPIFIRQ * UDMACRCH:L GPIFADRH:L * GPIFTRIG EPxGPIFTRIG * OUTPKTEND REVCTL * GPIFTCB3 GPIFTCB2 * GPIFTCB1 GPIFTCB0 */ /* * FIXME ensure that the peep hole optimizer isn't screwing us */ #define SYNCDELAY _asm nop; nop; nop; _endasm #define NOP _asm nop; _endasm #endif /* _SYNCDELAY_H_ */ uhd-3.5.5/firmware/fx2/common/timer.c000066400000000000000000000027171224274632000174040ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "timer.h" #include "fx2regs.h" #include "isr.h" /* * Arrange to have isr_tick_handler called at 100 Hz. * * The cpu clock is running at 48e6. The input to the timer * is 48e6 / 12 = 4e6. * * We arrange to have the timer overflow every 40000 clocks == 100 Hz */ #define RELOAD_VALUE ((unsigned short) -40000) void hook_timer_tick (unsigned short isr_tick_handler) { ET2 = 0; // disable timer 2 interrupts hook_sv (SV_TIMER_2, isr_tick_handler); RCAP2H = RELOAD_VALUE >> 8; // setup the auto reload value RCAP2L = RELOAD_VALUE; T2CON = 0x04; // interrupt on overflow; reload; run ET2 = 1; // enable timer 2 interrupts } uhd-3.5.5/firmware/fx2/common/timer.h000066400000000000000000000020621224274632000174020ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _TIMER_H_ #define _TIMER_H_ /* * Arrange to have isr_tick_handler called at 100 Hz */ void hook_timer_tick (unsigned short isr_tick_handler); #define clear_timer_irq() \ TF2 = 0 /* clear overflow flag */ #endif /* _TIMER_H_ */ uhd-3.5.5/firmware/fx2/common/usb_common.c000066400000000000000000000201731224274632000204210ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "usb_common.h" #include "fx2regs.h" #include "syncdelay.h" #include "fx2utils.h" #include "isr.h" #include "usb_descriptors.h" #include "usb_requests.h" extern xdata char str0[]; extern xdata char str1[]; extern xdata char str2[]; extern xdata char str3[]; extern xdata char str4[]; extern xdata char str5[]; #define bRequestType SETUPDAT[0] #define bRequest SETUPDAT[1] #define wValueL SETUPDAT[2] #define wValueH SETUPDAT[3] #define wIndexL SETUPDAT[4] #define wIndexH SETUPDAT[5] #define wLengthL SETUPDAT[6] #define wLengthH SETUPDAT[7] #define MSB(x) (((unsigned short) x) >> 8) #define LSB(x) (((unsigned short) x) & 0xff) volatile bit _usb_got_SUDAV; unsigned char _usb_config = 0; unsigned char _usb_alt_setting = 0; // FIXME really 1/interface xdata unsigned char *current_device_descr; xdata unsigned char *current_devqual_descr; xdata unsigned char *current_config_descr; xdata unsigned char *other_config_descr; static void setup_descriptors (void) { if (USBCS & bmHSM){ // high speed mode current_device_descr = high_speed_device_descr; current_devqual_descr = high_speed_devqual_descr; current_config_descr = high_speed_config_descr; other_config_descr = full_speed_config_descr; } else { current_device_descr = full_speed_device_descr; current_devqual_descr = full_speed_devqual_descr; current_config_descr = full_speed_config_descr; other_config_descr = high_speed_config_descr; } // whack the type fields // FIXME, may not be required. // current_config_descr[1] = DT_CONFIG; // other_config_descr[1] = DT_OTHER_SPEED; } static void isr_SUDAV (void) interrupt { clear_usb_irq (); _usb_got_SUDAV = 1; } static void isr_USBRESET (void) interrupt { clear_usb_irq (); setup_descriptors (); } static void isr_HIGHSPEED (void) interrupt { clear_usb_irq (); setup_descriptors (); } void usb_install_handlers (void) { setup_descriptors (); // ensure that they're set before use hook_uv (UV_SUDAV, (unsigned short) isr_SUDAV); hook_uv (UV_USBRESET, (unsigned short) isr_USBRESET); hook_uv (UV_HIGHSPEED, (unsigned short) isr_HIGHSPEED); USBIE = bmSUDAV | bmURES | bmHSGRANT; } // On the FX2 the only plausible endpoints are 0, 1, 2, 4, 6, 8 // This doesn't check to see that they're enabled unsigned char plausible_endpoint (unsigned char ep) { ep &= ~0x80; // ignore direction bit if (ep > 8) return 0; if (ep == 1) return 1; return (ep & 0x1) == 0; // must be even } // return pointer to control and status register for endpoint. // only called with plausible_endpoints xdata volatile unsigned char * epcs (unsigned char ep) { if (ep == 0x01) // ep1 has different in and out CS regs return EP1OUTCS; if (ep == 0x81) return EP1INCS; ep &= ~0x80; // ignore direction bit if (ep == 0x00) // ep0 return EP0CS; return EP2CS + (ep >> 1); // 2, 4, 6, 8 are consecutive } void usb_handle_setup_packet (void) { _usb_got_SUDAV = 0; // handle the standard requests... switch (bRequestType & bmRT_TYPE_MASK){ case bmRT_TYPE_CLASS: case bmRT_TYPE_RESERVED: fx2_stall_ep0 (); // we don't handle these. indicate error break; case bmRT_TYPE_VENDOR: // call the application code. // If it handles the command it returns non-zero if (!app_vendor_cmd ()) fx2_stall_ep0 (); break; case bmRT_TYPE_STD: // these are the standard requests... if ((bRequestType & bmRT_DIR_MASK) == bmRT_DIR_IN){ //////////////////////////////////// // handle the IN requests //////////////////////////////////// switch (bRequest){ case RQ_GET_CONFIG: EP0BUF[0] = _usb_config; // FIXME app should handle EP0BCH = 0; EP0BCL = 1; break; // -------------------------------- case RQ_GET_INTERFACE: EP0BUF[0] = _usb_alt_setting; // FIXME app should handle EP0BCH = 0; EP0BCL = 1; break; // -------------------------------- case RQ_GET_DESCR: switch (wValueH){ case DT_DEVICE: SUDPTRH = MSB (current_device_descr); SUDPTRL = LSB (current_device_descr); break; case DT_DEVQUAL: SUDPTRH = MSB (current_devqual_descr); SUDPTRL = LSB (current_devqual_descr); break; case DT_CONFIG: if (0 && wValueL != 1) // FIXME only a single configuration fx2_stall_ep0 (); else { SUDPTRH = MSB (current_config_descr); SUDPTRL = LSB (current_config_descr); } break; case DT_OTHER_SPEED: if (0 && wValueL != 1) // FIXME only a single configuration fx2_stall_ep0 (); else { SUDPTRH = MSB (other_config_descr); SUDPTRL = LSB (other_config_descr); } break; case DT_STRING: if (wValueL >= nstring_descriptors) fx2_stall_ep0 (); else { xdata char *p = string_descriptors[wValueL]; SUDPTRH = MSB (p); SUDPTRL = LSB (p); } break; default: fx2_stall_ep0 (); // invalid request break; } break; // -------------------------------- case RQ_GET_STATUS: switch (bRequestType & bmRT_RECIP_MASK){ case bmRT_RECIP_DEVICE: EP0BUF[0] = bmGSDA_SELF_POWERED; // FIXME app should handle EP0BUF[1] = 0; EP0BCH = 0; EP0BCL = 2; break; case bmRT_RECIP_INTERFACE: EP0BUF[0] = 0; EP0BUF[1] = 0; EP0BCH = 0; EP0BCL = 2; break; case bmRT_RECIP_ENDPOINT: if (plausible_endpoint (wIndexL)){ EP0BUF[0] = *epcs (wIndexL) & bmEPSTALL; EP0BUF[1] = 0; EP0BCH = 0; EP0BCL = 2; } else fx2_stall_ep0 (); break; default: fx2_stall_ep0 (); break; } break; // -------------------------------- case RQ_SYNCH_FRAME: // not implemented default: fx2_stall_ep0 (); break; } } else { //////////////////////////////////// // handle the OUT requests //////////////////////////////////// switch (bRequest){ case RQ_SET_CONFIG: _usb_config = wValueL; // FIXME app should handle break; case RQ_SET_INTERFACE: _usb_alt_setting = wValueL; // FIXME app should handle break; // -------------------------------- case RQ_CLEAR_FEATURE: switch (bRequestType & bmRT_RECIP_MASK){ case bmRT_RECIP_DEVICE: switch (wValueL){ case FS_DEV_REMOTE_WAKEUP: default: fx2_stall_ep0 (); } break; case bmRT_RECIP_ENDPOINT: if (wValueL == FS_ENDPOINT_HALT && plausible_endpoint (wIndexL)){ *epcs (wIndexL) &= ~bmEPSTALL; fx2_reset_data_toggle (wIndexL); } else fx2_stall_ep0 (); break; default: fx2_stall_ep0 (); break; } break; // -------------------------------- case RQ_SET_FEATURE: switch (bRequestType & bmRT_RECIP_MASK){ case bmRT_RECIP_DEVICE: switch (wValueL){ case FS_TEST_MODE: // hardware handles this after we complete SETUP phase handshake break; case FS_DEV_REMOTE_WAKEUP: default: fx2_stall_ep0 (); break; } } break; case bmRT_RECIP_ENDPOINT: switch (wValueL){ case FS_ENDPOINT_HALT: if (plausible_endpoint (wIndexL)) *epcs (wIndexL) |= bmEPSTALL; else fx2_stall_ep0 (); break; default: fx2_stall_ep0 (); break; } break; // -------------------------------- case RQ_SET_ADDRESS: // handled by fx2 hardware case RQ_SET_DESCR: // not implemented default: fx2_stall_ep0 (); } } break; } // bmRT_TYPE_MASK // ack handshake phase of device request EP0CS |= bmHSNAK; } uhd-3.5.5/firmware/fx2/common/usb_common.h000066400000000000000000000022611224274632000204240ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _USB_COMMON_H_ #define _USB_COMMON_H_ extern volatile bit _usb_got_SUDAV; // Provided by user application to handle VENDOR commands. // returns non-zero if it handled the command. unsigned char app_vendor_cmd (void); void usb_install_handlers (void); void usb_handle_setup_packet (void); #define usb_setup_packet_avail() _usb_got_SUDAV #endif /* _USB_COMMON_H_ */ uhd-3.5.5/firmware/fx2/common/usb_descriptors.h000066400000000000000000000030071224274632000214740ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ extern xdata const char high_speed_device_descr[]; extern xdata const char high_speed_devqual_descr[]; extern xdata const char high_speed_config_descr[]; extern xdata const char full_speed_device_descr[]; extern xdata const char full_speed_devqual_descr[]; extern xdata const char full_speed_config_descr[]; extern xdata unsigned char nstring_descriptors; extern xdata char * xdata string_descriptors[]; /* * We patch these locations with info read from the usrp config eeprom */ extern xdata char usb_desc_hw_rev_binary_patch_location_0[]; extern xdata char usb_desc_hw_rev_binary_patch_location_1[]; extern xdata char usb_desc_hw_rev_ascii_patch_location_0[]; extern xdata char usb_desc_serial_number_ascii[]; uhd-3.5.5/firmware/fx2/common/usb_requests.h000066400000000000000000000044531224274632000210140ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ // Standard USB requests. // These are contained in end point 0 setup packets #ifndef _USB_REQUESTS_H_ #define _USB_REQUESTS_H_ // format of bmRequestType byte #define bmRT_DIR_MASK (0x1 << 7) #define bmRT_DIR_IN (1 << 7) #define bmRT_DIR_OUT (0 << 7) #define bmRT_TYPE_MASK (0x3 << 5) #define bmRT_TYPE_STD (0 << 5) #define bmRT_TYPE_CLASS (1 << 5) #define bmRT_TYPE_VENDOR (2 << 5) #define bmRT_TYPE_RESERVED (3 << 5) #define bmRT_RECIP_MASK (0x1f << 0) #define bmRT_RECIP_DEVICE (0 << 0) #define bmRT_RECIP_INTERFACE (1 << 0) #define bmRT_RECIP_ENDPOINT (2 << 0) #define bmRT_RECIP_OTHER (3 << 0) // standard request codes (bRequest) #define RQ_GET_STATUS 0 #define RQ_CLEAR_FEATURE 1 #define RQ_RESERVED_2 2 #define RQ_SET_FEATURE 3 #define RQ_RESERVED_4 4 #define RQ_SET_ADDRESS 5 #define RQ_GET_DESCR 6 #define RQ_SET_DESCR 7 #define RQ_GET_CONFIG 8 #define RQ_SET_CONFIG 9 #define RQ_GET_INTERFACE 10 #define RQ_SET_INTERFACE 11 #define RQ_SYNCH_FRAME 12 // standard descriptor types #define DT_DEVICE 1 #define DT_CONFIG 2 #define DT_STRING 3 #define DT_INTERFACE 4 #define DT_ENDPOINT 5 #define DT_DEVQUAL 6 #define DT_OTHER_SPEED 7 #define DT_INTERFACE_POWER 8 // standard feature selectors #define FS_ENDPOINT_HALT 0 // recip: endpoint #define FS_DEV_REMOTE_WAKEUP 1 // recip: device #define FS_TEST_MODE 2 // recip: device // Get Status device attributes #define bmGSDA_SELF_POWERED 0x01 #define bmGSDA_REM_WAKEUP 0x02 #endif /* _USB_REQUESTS_H_ */ uhd-3.5.5/firmware/fx2/common/usrp_commands.h000066400000000000000000000066421224274632000211440ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003,2004 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #ifndef _USRP_COMMANDS_H_ #define _USRP_COMMANDS_H_ #include #include #define MAX_EP0_PKTSIZE 64 // max size of EP0 packet on FX2 // ---------------------------------------------------------------- // Vendor bmRequestType's // ---------------------------------------------------------------- #define VRT_VENDOR_IN 0xC0 #define VRT_VENDOR_OUT 0x40 // ---------------------------------------------------------------- // USRP Vendor Requests // // Note that Cypress reserves [0xA0,0xAF]. // 0xA0 is the firmware load function. // ---------------------------------------------------------------- // IN commands #define VRQ_GET_STATUS 0x80 #define GS_TX_UNDERRUN 0 // wIndexL // returns 1 byte #define GS_RX_OVERRUN 1 // wIndexL // returns 1 byte #define VRQ_I2C_READ 0x81 // wValueL: i2c address; length: how much to read #define VRQ_SPI_READ 0x82 // wValue: optional header bytes // wIndexH: enables // wIndexL: format // len: how much to read #define VRQ_FW_COMPAT 0x83 //low 16 bits // OUT commands #define VRQ_SET_LED 0x01 // wValueL off/on {0,1}; wIndexL: which {0,1} #define VRQ_FPGA_LOAD 0x02 # define FL_BEGIN 0 // wIndexL: begin fpga programming cycle. stalls if trouble. # define FL_XFER 1 // wIndexL: xfer up to 64 bytes of data # define FL_END 2 // wIndexL: end programming cycle, check for success. // stalls endpoint if trouble. #define VRQ_FPGA_WRITE_REG 0x03 // wIndexL: regno; data: 32-bit regval MSB first #define VRQ_FPGA_SET_RESET 0x04 // wValueL: {0,1} #define VRQ_FPGA_SET_TX_ENABLE 0x05 // wValueL: {0,1} #define VRQ_FPGA_SET_RX_ENABLE 0x06 // wValueL: {0,1} // see below VRQ_FPGA_SET_{TX,RX}_RESET #define VRQ_SET_SLEEP_BITS 0x07 // wValueH: mask; wValueL: bits. set bits given by mask to bits # define SLEEP_ADC0 0x01 # define SLEEP_ADC1 0x02 # define SLEEP_DAC0 0x04 # define SLEEP_DAC1 0x08 #define VRQ_I2C_WRITE 0x08 // wValueL: i2c address; data: data #define VRQ_SPI_WRITE 0x09 // wValue: optional header bytes // wIndexH: enables // wIndexL: format // len: how much to write #define VRQ_FPGA_SET_TX_RESET 0x0a // wValueL: {0, 1} #define VRQ_FPGA_SET_RX_RESET 0x0b // wValueL: {0, 1} #define VRQ_RESET_GPIF 0x0c #define VRQ_ENABLE_GPIF 0x0d #define VRQ_CLEAR_FPGA_FIFO 0x0e // ------------------------------------------------------------------- // we store the hashes at fixed addresses in the FX2 internal memory #define USRP_HASH_SLOT_0_ADDR 0xe1e0 #define USRP_HASH_SLOT_1_ADDR 0xe1f0 #endif /* _USRP_COMMANDS_H_ */ uhd-3.5.5/firmware/fx2/common/usrp_common.h000066400000000000000000000042121224274632000206220ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003,2006 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * common defines and prototypes for USRP * * In comments below "TRM" refers to the EZ-USB FX2 Technical Reference Manual */ #ifndef _USRPCOMMON_H_ #define _USRPCOMMON_H_ #include "usrp_config.h" #include "usrp_regs.h" #include "syncdelay.h" /* * From TRM page 15-105: * * Under certain conditions, some read and write access to the FX2 * registers must be separated by a "synchronization delay". The * delay is necessary only under the following conditions: * * - between a write to any register in the 0xE600 - 0xE6FF range * and a write to one of the registers listed below. * * - between a write to one of the registers listed below and a read * from any register in the 0xE600 - 0xE6FF range. * * Registers which require a synchronization delay: * * FIFORESET FIFOPINPOLAR * INPKTEND EPxBCH:L * EPxFIFOPFH:L EPxAUTOINLENH:L * EPxFIFOCFG EPxGPIFFLGSEL * PINFLAGSAB PINFLAGSCD * EPxFIFOIE EPxFIFOIRQ * GPIFIE GPIFIRQ * UDMACRCH:L GPIFADRH:L * GPIFTRIG EPxGPIFTRIG * OUTPKTEND REVCTL * GPIFTCB3 GPIFTCB2 * GPIFTCB1 GPIFTCB0 */ #define TRUE 1 #define FALSE 0 void init_usrp (void); void init_gpif (void); void set_led_0 (unsigned char on); void set_led_1 (unsigned char on); void toggle_led_0 (void); void toggle_led_1 (void); #define la_trace(v) #endif /* _USRPCOMMON_H_ */ uhd-3.5.5/firmware/fx2/common/usrp_config.h000066400000000000000000000026321224274632000206030ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * configuration stuff for debugging */ /* * Define to 0 for normal use of port A, i.e., FPGA control bus. * Define to 1 to write trace to port A for scoping with logic analyzer. */ #define UC_TRACE_USING_PORT_A 0 /* * Define to 0 for normal use of low 3 bits of port E, i.e., A/D, D/A SLEEP bits. * Define to 1 to enable by default driving the GPIF state to the * low three bits of port E. */ #define UC_START_WITH_GSTATE_OUTPUT_ENABLED 0 /* * Define to 1 for normal use (the board really has an FPGA on it). * Define to 0 for debug use on board without FPGA. */ #define UC_BOARD_HAS_FPGA 1 uhd-3.5.5/firmware/fx2/common/usrp_globals.h000066400000000000000000000020721224274632000207570ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _USRP_GLOBALS_H_ #define _USRP_GLOBALS_H_ extern unsigned char g_tx_enable; extern unsigned char g_rx_enable; extern unsigned char g_fpga_reset; extern unsigned char g_rx_overrun; extern unsigned char g_tx_underrun; #endif /* _USRP_GLOBALS_H_ */ uhd-3.5.5/firmware/fx2/common/usrp_i2c_addr.h000066400000000000000000000052661224274632000210130ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_USRP_I2C_ADDR_H #define INCLUDED_USRP_I2C_ADDR_H // I2C addresses #define I2C_DEV_EEPROM 0x50 // 24LC02[45]: 7-bits 1010xxx #define I2C_ADDR_BOOT (I2C_DEV_EEPROM | 0x0) #define I2C_ADDR_TX_A (I2C_DEV_EEPROM | 0x4) #define I2C_ADDR_RX_A (I2C_DEV_EEPROM | 0x5) #define I2C_ADDR_TX_B (I2C_DEV_EEPROM | 0x6) #define I2C_ADDR_RX_B (I2C_DEV_EEPROM | 0x7) // format of FX2 BOOT EEPROM // 00: 0xC0 code for ``Read IDs from EEPROM'' // 01: 0xFE USB Vendor ID (LSB) // 02: 0xFF USB Vendor ID (MSB) // 03: 0x02 USB Product ID (LSB) // 04: 0x00 USB Product ID (MSB) // 05: 0x01 USB Device ID (LSB) // rev1 // 06: 0x00 USB Device ID (MSB) // 0 = unconfig'd (no firmware) // 07: 0x00 option byte // format of daughterboard EEPROM // 00: 0xDB code for ``I'm a daughterboard'' // 01: .. Daughterboard ID (LSB) // 02: .. Daughterboard ID (MSB) // 03: .. io bits 7-0 direction (bit set if it's an output from m'board) // 04: .. io bits 15-8 direction (bit set if it's an output from m'board) // 05: .. ADC0 DC offset correction (LSB) // 06: .. ADC0 DC offset correction (MSB) // 07: .. ADC1 DC offset correction (LSB) // 08: .. ADC1 DC offset correction (MSB) // ... // 1f: .. negative of the sum of bytes [0x00, 0x1e] #define DB_EEPROM_MAGIC 0x00 #define DB_EEPROM_MAGIC_VALUE 0xDB #define DB_EEPROM_ID_LSB 0x01 #define DB_EEPROM_ID_MSB 0x02 #define DB_EEPROM_OE_LSB 0x03 #define DB_EEPROM_OE_MSB 0x04 #define DB_EEPROM_OFFSET_0_LSB 0x05 // offset correction for ADC or DAC 0 #define DB_EEPROM_OFFSET_0_MSB 0x06 #define DB_EEPROM_OFFSET_1_LSB 0x07 // offset correction for ADC or DAC 1 #define DB_EEPROM_OFFSET_1_MSB 0x08 #define DB_EEPROM_CHKSUM 0x1f #define DB_EEPROM_CLEN 0x20 // length of common portion of eeprom #define DB_EEPROM_CUSTOM_BASE DB_EEPROM_CLEN // first avail offset for // daughterboard specific use #endif /* INCLUDED_USRP_I2C_ADDR_H */ uhd-3.5.5/firmware/fx2/common/usrp_ids.h000066400000000000000000000060141224274632000201130ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003,2006,2007 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ /* * USB Vendor and Product IDs that we use * * (keep in sync with usb_descriptors.a51) */ #ifndef _USRP_IDS_H_ #define _USRP_IDS_H_ #define USB_VID_CYPRESS 0x04b4 #define USB_PID_CYPRESS_FX2 0x8613 #define USB_VID_FSF 0xfffe // Free Software Folks #define USB_PID_FSF_EXP_0 0x0000 // Experimental 0 #define USB_PID_FSF_EXP_1 0x0001 // Experimental 1 #define USB_PID_FSF_USRP 0x0002 // Universal Software Radio Peripheral #define USB_PID_FSF_USRP1P 0x0003 // USRP1P #define USB_PID_FSF_SSRP 0x0004 // Simple Software Radio Peripheral #define USB_PID_FSF_SSRP_reserved 0x0005 // Simple Software Radio Peripheral #define USB_PID_FSF_HPSDR 0x0006 // High Performance Software Defined Radio (Internal Boot) #define USB_PID_FSF_HPSDR_HA 0x0007 // High Performance Software Defined Radio (Host Assisted Boot) #define USB_PID_FSF_QS1R 0x0008 // QS1R HF receiver #define USB_PID_FSF_EZDOP 0x0009 // ezdop #define USB_PID_FSF_BDALE_0 0x000a // Bdale Garbee #define USB_PID_FSF_BDALE_1 0x000b // Bdale Garbee #define USB_PID_FSF_BDALE_2 0x000c // Bdale Garbee #define USB_PID_FSF_BDALE_3 0x000d // Bdale Garbee #define USB_PID_FSF_BDALE_4 0x000e // Bdale Garbee #define USB_PID_FSF_BDALE_5 0x000f // Bdale Garbee #define USB_PID_FSF_BDALE_6 0x0010 // Bdale Garbee #define USB_PID_FSF_BDALE_7 0x0011 // Bdale Garbee #define USB_PID_FSF_BDALE_8 0x0012 // Bdale Garbee #define USB_PID_FSF_BDALE_9 0x0013 // Bdale Garbee #define USB_PID_FSF_HPSDR_HERMES 0x0014 // HPSDR Hermes #define USB_PID_FSF_THINKRF 0x0015 // Catalin Patulea #define USB_PID_FSF_MSA 0x0016 // Hans de Bok Scotty's Modular Spectrum Analyzer #define USB_PID_FSF_LBNL_UXO 0x0018 // http://recycle.lbl.gov/~ldoolitt/uxo/ #define USB_DID_USRP_0 0x0000 // unconfigured rev 0 USRP #define USB_DID_USRP_1 0x0001 // unconfigured rev 1 USRP #define USB_DID_USRP_2 0x0002 // unconfigured rev 2 USRP #endif /* _USRP_IDS_H_ */ uhd-3.5.5/firmware/fx2/common/usrp_interfaces.h000066400000000000000000000027461224274632000214670ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2003 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef _USRP_INTERFACES_H_ #define _USRP_INTERFACES_H_ /* * We've now split the USRP into 3 separate interfaces. * * Interface 0 contains only ep0 and is used for command and status. * Interface 1 is the Tx path and it uses ep2 OUT BULK. * Interface 2 is the Rx path and it uses ep6 IN BULK. */ #define USRP_CMD_INTERFACE 0 #define USRP_CMD_ALTINTERFACE 0 #define USRP_CMD_ENDPOINT 0 #define USRP_TX_INTERFACE 1 #define USRP_TX_ALTINTERFACE 0 #define USRP_TX_ENDPOINT 2 // streaming data from host to FPGA #define USRP_RX_INTERFACE 2 #define USRP_RX_ALTINTERFACE 0 #define USRP_RX_ENDPOINT 6 // streaming data from FPGA to host #endif /* _USRP_INTERFACES_H_ */ uhd-3.5.5/firmware/fx2/common/usrp_spi_defs.h000066400000000000000000000063171224274632000211360ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_USRP_SPI_DEFS_H #define INCLUDED_USRP_SPI_DEFS_H /* * defines for the VRQ_SPI_READ and VRQ_SPI_WRITE commands * * SPI == "Serial Port Interface". SPI is a 3 wire bus plus a * separate enable for each peripheral. The common lines are SCLK, * SDI and SDO. The FX2 always drives SCLK and SDI, the clock and * data lines from the FX2 to the peripheral. When enabled, a * peripheral may drive SDO, the data line from the peripheral to the * FX2. * * The SPI_READ and SPI_WRITE commands are formatted identically. * Each specifies which peripherals to enable, whether the bits should * be transmistted Most Significant Bit first or Least Significant Bit * first, the number of bytes in the optional header, and the number * of bytes to read or write in the body. * * The body is limited to 64 bytes. The optional header may contain * 0, 1 or 2 bytes. For an SPI_WRITE, the header bytes are * transmitted to the peripheral followed by the the body bytes. For * an SPI_READ, the header bytes are transmitted to the peripheral, * then len bytes are read back from the peripheral. */ /* * SPI_FMT_* goes in wIndexL */ #define SPI_FMT_xSB_MASK (1 << 7) # define SPI_FMT_LSB (1 << 7) // least signficant bit first # define SPI_FMT_MSB (0 << 7) // most significant bit first #define SPI_FMT_HDR_MASK (3 << 5) # define SPI_FMT_HDR_0 (0 << 5) // 0 header bytes # define SPI_FMT_HDR_1 (1 << 5) // 1 header byte # define SPI_FMT_HDR_2 (2 << 5) // 2 header bytes /* * SPI_ENABLE_* goes in wIndexH * * For the software interface, the enables are active high. * For reads, it's an error to have more than one enable set. * * [FWIW, the hardware implements them as active low. Don't change the * definitions of these. They are related to usrp_rev1_regs.h] */ #define SPI_ENABLE_FPGA 0x01 // select FPGA #define SPI_ENABLE_CODEC_A 0x02 // select AD9862 A #define SPI_ENABLE_CODEC_B 0x04 // select AD9862 B #define SPI_ENABLE_reserved 0x08 #define SPI_ENABLE_TX_A 0x10 // select d'board TX A #define SPI_ENABLE_RX_A 0x20 // select d'board RX A #define SPI_ENABLE_TX_B 0x40 // select d'board TX B #define SPI_ENABLE_RX_B 0x80 // select d'board RX B /* * If there's one header byte, it goes in wValueL. * * If there are two header bytes, they go in wValueH | wValueL. * The transmit order of the bytes (and bits within them) is * determined by SPI_FMT_*SB */ #endif /* INCLUDED_USRP_SPI_DEFS_H */ uhd-3.5.5/firmware/fx2/common/vectors.a51000066400000000000000000000062131224274632000201100ustar00rootroot00000000000000;;; -*- asm -*- ;;; ;;; Copyright 2003 Free Software Foundation, Inc. ;;; ;;; This file is part of GNU Radio ;;; ;;; GNU Radio is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; GNU Radio is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Radio; see the file COPYING. If not, write to ;;; the Free Software Foundation, Inc., 51 Franklin Street, ;;; Boston, MA 02110-1301, USA. ;;; ;;; Interrupt vectors. ;;; N.B. This object module must come first in the list of modules .module vectors ;;; ---------------------------------------------------------------- ;;; standard FX2 interrupt vectors ;;; ---------------------------------------------------------------- .area CSEG (CODE) .area GSINIT (CODE) .area CSEG (CODE) __standard_interrupt_vector:: __reset_vector:: ljmp s_GSINIT ;; 13 8-byte entries. We point them all at __isr_nop ljmp __isr_nop ; 3 bytes .ds 5 ; + 5 = 8 bytes for vector slot ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 ljmp __isr_nop .ds 5 __isr_nop:: reti ;;; ---------------------------------------------------------------- ;;; the FIFO/GPIF autovector. 14 4-byte entries. ;;; must start on a 128 byte boundary. ;;; ---------------------------------------------------------------- . = __reset_vector + 0x0080 __fifo_gpif_autovector:: ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ;;; ---------------------------------------------------------------- ;;; the USB autovector. 32 4-byte entries. ;;; must start on a 256 byte boundary. ;;; ---------------------------------------------------------------- . = __reset_vector + 0x0100 __usb_autovector:: ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop ljmp __isr_nop nop uhd-3.5.5/firmware/fx2/config/000077500000000000000000000000001224274632000160665ustar00rootroot00000000000000uhd-3.5.5/firmware/fx2/config/CMakeASM_SDCCInformation.cmake000066400000000000000000000023761224274632000234230ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # support for the SDCC assembler, asx8051 SET( ASM_DIALECT "_SDCC" ) SET( CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS a51 ) #i don't want to talk about it. i had such high hopes for CMake. SET( CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT " -plosgff " "${CMAKE_COMMAND} -DFILE= -DSOURCE= -P ${CMAKE_SOURCE_DIR}/config/Rename.cmake") INCLUDE( CMakeASMInformation ) SET( CMAKE_ASM${ASM_DIALECT}_OUTPUT_EXTENSION ".rel" ) #must go here because the include appears to overwrite it, although it shouldn't # for future use SET( ASM_DIALECT ) uhd-3.5.5/firmware/fx2/config/CMakeDetermineASM_SDCCCompiler.cmake000066400000000000000000000014161224274632000245370ustar00rootroot00000000000000 #============================================================================= # Copyright 2008-2009 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) # Find the MS assembler (masm or masm64) SET(ASM_DIALECT "_SDCC") SET(CMAKE_ASM${ASM_DIALECT}_COMPILER_INIT asx8051) INCLUDE(CMakeDetermineASMCompiler) SET(ASM_DIALECT) uhd-3.5.5/firmware/fx2/config/CMakeTestASM_SDCCCompiler.cmake000066400000000000000000000017151224274632000235440ustar00rootroot00000000000000 #============================================================================= # Copyright 2007-2009 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) # This file is used by EnableLanguage in cmGlobalGenerator to # determine that that selected ASM-ATT compiler can actually compile # and link the most basic of programs. If not, a fatal error # is set and cmake stops processing commands and will not generate # any makefiles or projects. SET(ASM_DIALECT "_SDCC") INCLUDE(CMakeTestASMCompiler) SET(ASM_DIALECT) uhd-3.5.5/firmware/fx2/config/Rename.cmake000066400000000000000000000034071224274632000203030ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # #go and fetch the real compiler outputs because the compiler does things wrong and CMake is too damn brittle to cope #just incidentally, why the heck does aslink look for a .lst input? why should it care? #first the .rel get_filename_component(source_noext ${SOURCE} NAME_WE) get_filename_component(source_path ${SOURCE} PATH) set(compiled_ext .rel) list(APPEND compiled_filepath ${source_path}/${source_noext}${compiled_ext}) #EXECUTE_PROCESS(COMMAND echo Moving ${compiled_filepath} to ${FILE}) EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E rename ${compiled_filepath} ${FILE}) #now do the same for the .lst set(compiled_lst .lst) get_filename_component(src_ext ${SOURCE} EXT) get_filename_component(lst_noext ${FILE} NAME_WE) get_filename_component(lst_path ${FILE} PATH) list(APPEND compiled_lstpath ${source_path}/${source_noext}${compiled_lst}) list(APPEND compiled_outputlstpath ${lst_path}/${lst_noext}${src_ext}${compiled_lst}) #EXECUTE_PROCESS(COMMAND echo Moving ${compiled_lstpath} to ${compiled_outputlstpath}) EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E rename ${compiled_lstpath} ${compiled_outputlstpath}) uhd-3.5.5/firmware/fx2/config/Toolchain-sdcc.cmake000066400000000000000000000022761224274632000217310ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # the name of the target operating system SET(CMAKE_SYSTEM_NAME Generic) # which compilers to use for C and C++ SET(CMAKE_C_COMPILER sdcc) # here is where the target environment is located SET(CMAKE_FIND_ROOT_PATH /usr/bin /usr/share/sdcc) # adjust the default behaviour of the FIND_XXX() commands: # search headers and libraries in the target environment, search # programs in the host environment set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) uhd-3.5.5/firmware/fx2/usrp1/000077500000000000000000000000001224274632000156735ustar00rootroot00000000000000uhd-3.5.5/firmware/fx2/usrp1/CMakeLists.txt000066400000000000000000000055111224274632000204350ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # include_directories(${CMAKE_SOURCE_DIR}/common) #for usrp_common.h and the regs files... set(CMAKE_INCLUDE_CURRENT_DIR ON) #now make a lib to link against set(libusrp1_sources ${CMAKE_SOURCE_DIR}/common/delay.c ${CMAKE_SOURCE_DIR}/common/fx2utils.c ${CMAKE_SOURCE_DIR}/common/i2c.c ${CMAKE_SOURCE_DIR}/common/init_gpif.c ${CMAKE_SOURCE_DIR}/common/isr.c ${CMAKE_SOURCE_DIR}/common/timer.c ${CMAKE_SOURCE_DIR}/common/usb_common.c # ${CMAKE_SOURCE_DIR}/common/spi.c # ${CMAKE_SOURCE_DIR}/common/vectors.a51 ) #file(GLOB libusrp1_c_sources ${CMAKE_SOURCE_DIR}/common/*.c) #file(GLOB libusrp1_a51_sources ${CMAKE_SOURCE_DIR}/common/*.a51) #list(APPEND libusrp1_sources ${libusrp1_c_sources} ${libusrp1_a51_sources}) add_library(libusrp1 STATIC ${libusrp1_sources}) # edit-gpif hacks up gpif.c for our purposes. no major surgery, just moving stuff around. set(GPIF_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/gpif.c) set(GPIF_SOURCE_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/usrp_gpif.c) set(GPIF_HEADER_OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/usrp_gpif_inline.h) add_custom_command( OUTPUT ${GPIF_SOURCE_OUTPUT} DEPENDS ${EDIT_GPIF_USRP1} COMMAND ${PYTHON_EXECUTABLE} ${EDIT_GPIF_USRP1} ${GPIF_SOURCE} ${GPIF_SOURCE_OUTPUT} ${GPIF_HEADER_OUTPUT} COMMENT "Generating ${GPIF_SOURCE_OUTPUT}" ) #file(GLOB usrp1_sources *.c) set(usrp1_sources ${CMAKE_SOURCE_DIR}/common/vectors.a51 board_specific.c eeprom_io.c fpga_load.c fpga_rev2.c usrp_common.c usrp_gpif.c usrp_main.c usb_descriptors.a51 ${CMAKE_SOURCE_DIR}/common/spi.c ${CMAKE_SOURCE_DIR}/common/_startup.a51 ) add_executable(usrp1_fw ${usrp1_sources}) target_link_libraries(usrp1_fw libusrp1) set(eeprom1_sources ${CMAKE_SOURCE_DIR}/common/eeprom_boot.a51 ${CMAKE_SOURCE_DIR}/common/eeprom_init.c ${CMAKE_SOURCE_DIR}/common/_startup.a51 ) add_custom_target(usrp1_eeprom ALL DEPENDS usrp1_boot COMMAND objcopy -I ihex -O binary usrp1_boot.ihx usrp1_boot.bin COMMAND ${PYTHON_EXECUTABLE} ${BUILD_EEPROM} -r1 usrp1_boot.bin usrp1_eeprom.bin ) add_executable(usrp1_boot ${eeprom1_sources}) target_link_libraries(usrp1_boot libusrp1) uhd-3.5.5/firmware/fx2/usrp1/board_specific.c000066400000000000000000000044421224274632000207770ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "usrp_common.h" #include "spi.h" void set_led_0 (unsigned char on) { if (!on) // active low USRP_PC |= bmPC_LED0; else USRP_PC &= ~bmPC_LED0; } void set_led_1 (unsigned char on) { if (!on) // active low USRP_PC |= bmPC_LED1; else USRP_PC &= ~bmPC_LED1; } void toggle_led_0 (void) { USRP_PC ^= bmPC_LED0; } void toggle_led_1 (void) { USRP_PC ^= bmPC_LED1; } void la_trace_init (void) { } void set_sleep_bits (unsigned char bits, unsigned char mask) { // NOP on usrp1 } static xdata unsigned char xbuf[1]; void write_9862 (unsigned char which, unsigned char regno, unsigned char value) { xbuf[0] = value; spi_write (0, regno & 0x3f, which == 0 ? SPI_ENABLE_CODEC_A : SPI_ENABLE_CODEC_B, SPI_FMT_MSB | SPI_FMT_HDR_1, xbuf, 1); } void write_both_9862s (unsigned char regno, unsigned char value) { xbuf[0] = value; spi_write (0, regno & 0x3f, SPI_ENABLE_CODEC_A | SPI_ENABLE_CODEC_B, SPI_FMT_MSB | SPI_FMT_HDR_1, xbuf, 1); } #define REG_RX_PWR_DN 1 #define REG_TX_PWR_DN 8 #define REG_TX_MODULATOR 20 static void power_down_9862s (void) { write_both_9862s (REG_RX_PWR_DN, 0x01); write_both_9862s (REG_TX_PWR_DN, 0x0f); // pwr dn digital and analog_both write_both_9862s (REG_TX_MODULATOR, 0x00); // coarse & fine modulators disabled } void init_board (void) { la_trace_init (); init_spi (); USRP_PC &= ~bmPC_nRESET; // active low reset USRP_PC |= bmPC_nRESET; power_down_9862s (); } uhd-3.5.5/firmware/fx2/usrp1/eeprom_io.c000066400000000000000000000034231224274632000200170ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2006 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "eeprom_io.h" #include "i2c.h" #include "delay.h" // returns non-zero if successful, else 0 unsigned char eeprom_read (unsigned char i2c_addr, unsigned char eeprom_offset, xdata unsigned char *buf, unsigned char len) { // We setup a random read by first doing a "zero byte write". // Writes carry an address. Reads use an implicit address. static xdata unsigned char cmd[1]; cmd[0] = eeprom_offset; if (!i2c_write(i2c_addr, cmd, 1)) return 0; return i2c_read(i2c_addr, buf, len); } #if 0 // returns non-zero if successful, else 0 unsigned char eeprom_write (unsigned char i2c_addr, unsigned char eeprom_offset, const xdata unsigned char *buf, unsigned char len) { static xdata unsigned char cmd[2]; unsigned char ok; while (len-- > 0){ cmd[0] = eeprom_offset++; cmd[1] = *buf++; ok = i2c_write(i2c_addr, cmd, 2); mdelay(10); // delay 10ms worst case write time if (!ok) return 0; } return 1; } #endif uhd-3.5.5/firmware/fx2/usrp1/eeprom_io.h000066400000000000000000000023771224274632000200330ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2006 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #ifndef INCLUDED_EEPROM_IO_H #define INCLUDED_EEPROM_IO_H // returns non-zero if successful, else 0 unsigned char eeprom_read (unsigned char i2c_addr, unsigned char eeprom_offset, xdata unsigned char *buf, unsigned char len); // returns non-zero if successful, else 0 unsigned char eeprom_write (unsigned char i2c_addr, unsigned char eeprom_offset, const xdata unsigned char *buf, unsigned char len); #endif /* INCLUDED_EEPROM_IO_H */ uhd-3.5.5/firmware/fx2/usrp1/fpga_load.c000066400000000000000000000075631224274632000177660ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #include "usrp_common.h" #include "fpga_load.h" #include "delay.h" /* * setup altera FPGA serial load (PS). * * On entry: * don't care * * On exit: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) */ unsigned char fpga_load_begin (void) { USRP_ALTERA_CONFIG &= ~bmALTERA_BITS; // clear all bits (NCONFIG low) udelay (40); // wait 40 us USRP_ALTERA_CONFIG |= bmALTERA_NCONFIG; // set NCONFIG high if (UC_BOARD_HAS_FPGA){ // FIXME should really cap this loop with a counter so we // don't hang forever on a hardware failure. while ((USRP_ALTERA_CONFIG & bmALTERA_NSTATUS) == 0) // wait for NSTATUS to go high ; } // ready to xfer now return 1; } /* * clock out the low bit of bits. * * On entry: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) * * On exit: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) */ #if 0 static void clock_out_config_byte (unsigned char bits) { unsigned char i; // clock out configuration byte, least significant bit first for (i = 0; i < 8; i++){ USRP_ALTERA_CONFIG = ((USRP_ALTERA_CONFIG & ~bmALTERA_DATA0) | ((bits & 1) ? bmALTERA_DATA0 : 0)); USRP_ALTERA_CONFIG |= bmALTERA_DCLK; /* set DCLK to 1 */ USRP_ALTERA_CONFIG &= ~bmALTERA_DCLK; /* set DCLK to 0 */ bits = bits >> 1; } } #else static void clock_out_config_byte (unsigned char bits) _naked { _asm mov a, dpl rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK rrc a mov _bitALTERA_DATA0,c setb _bitALTERA_DCLK clr _bitALTERA_DCLK ret _endasm; } #endif static void clock_out_bytes (unsigned char bytecount, unsigned char xdata *p) { while (bytecount-- > 0) clock_out_config_byte (*p++); } /* * Transfer block of bytes from packet to FPGA serial configuration port * * On entry: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) * * On exit: * ALTERA_DCLK = 0 * ALTERA_NCONFIG = 1 * ALTERA_NSTATUS = 1 (input) */ unsigned char fpga_load_xfer (xdata unsigned char *p, unsigned char bytecount) { clock_out_bytes (bytecount, p); return 1; } /* * check for successful load... */ unsigned char fpga_load_end (void) { unsigned char status = USRP_ALTERA_CONFIG; if (!UC_BOARD_HAS_FPGA) // always true if we don't have FPGA return 1; if ((status & bmALTERA_NSTATUS) == 0) // failed to program return 0; if ((status & bmALTERA_CONF_DONE) == bmALTERA_CONF_DONE) return 1; // everything's cool // I don't think this should happen. It indicates that // programming is still in progress. return 0; } uhd-3.5.5/firmware/fx2/usrp1/fpga_rev2.c000066400000000000000000000046021224274632000177140ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2004 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Radio; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, * Boston, MA 02110-1301, USA. */ #include "fpga.h" #include "fpga_regs_common.h" #include "usrp_common.h" #include "usrp_globals.h" #include "spi.h" unsigned char g_tx_reset = 0; unsigned char g_rx_reset = 0; void fpga_write_reg (unsigned char regno, const xdata unsigned char *regval) { spi_write (0, 0x00 | (regno & 0x7f), SPI_ENABLE_FPGA, SPI_FMT_MSB | SPI_FMT_HDR_1, regval, 4); } static xdata unsigned char regval[4] = {0, 0, 0, 0}; static void write_fpga_master_ctrl (void) { unsigned char v = 0; if (g_tx_enable) v |= bmFR_MC_ENABLE_TX; if (g_rx_enable) v |= bmFR_MC_ENABLE_RX; if (g_tx_reset) v |= bmFR_MC_RESET_TX; if (g_rx_reset) v |= bmFR_MC_RESET_RX; regval[3] = v; fpga_write_reg (FR_MASTER_CTRL, regval); } // Resets both AD9862's and the FPGA serial bus interface. void fpga_set_reset (unsigned char on) { on &= 0x1; if (on){ USRP_PC &= ~bmPC_nRESET; // active low g_tx_enable = 0; g_rx_enable = 0; g_tx_reset = 0; g_rx_reset = 0; } else USRP_PC |= bmPC_nRESET; } void fpga_set_tx_enable (unsigned char on) { on &= 0x1; g_tx_enable = on; write_fpga_master_ctrl (); if (on){ g_tx_underrun = 0; fpga_clear_flags (); } } void fpga_set_rx_enable (unsigned char on) { on &= 0x1; g_rx_enable = on; write_fpga_master_ctrl (); if (on){ g_rx_overrun = 0; fpga_clear_flags (); } } void fpga_set_tx_reset (unsigned char on) { on &= 0x1; g_tx_reset = on; write_fpga_master_ctrl (); } void fpga_set_rx_reset (unsigned char on) { on &= 0x1; g_rx_reset = on; write_fpga_master_ctrl (); } uhd-3.5.5/firmware/fx2/usrp1/fpga_rev2.h000066400000000000000000000034151224274632000177220ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003,2004 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #ifndef INCLUDED_FPGA_REV1_H #define INCLUDED_FPGA_REV1_H void fpga_set_reset (unsigned char v); void fpga_set_tx_enable (unsigned char v); void fpga_set_rx_enable (unsigned char v); void fpga_set_tx_reset (unsigned char v); void fpga_set_rx_reset (unsigned char v); unsigned char fpga_has_room_for_packet (void); unsigned char fpga_has_packet_avail (void); #if (UC_BOARD_HAS_FPGA) /* * return TRUE iff FPGA internal fifo has room for 512 bytes. */ #define fpga_has_room_for_packet() (GPIFREADYSTAT & bmFPGA_HAS_SPACE) /* * return TRUE iff FPGA internal fifo has at least 512 bytes available. */ #define fpga_has_packet_avail() (GPIFREADYSTAT & bmFPGA_PKT_AVAIL) #else /* no FPGA on board. fake it. */ #define fpga_has_room_for_packet() TRUE #define fpga_has_packet_avail() TRUE #endif #define fpga_clear_flags() \ do { \ USRP_PE |= bmPE_FPGA_CLR_STATUS; \ USRP_PE &= ~bmPE_FPGA_CLR_STATUS; \ } while (0) #endif /* INCLUDED_FPGA_REV1_H */ uhd-3.5.5/firmware/fx2/usrp1/gpif.c000066400000000000000000000405251224274632000167720ustar00rootroot00000000000000// This program configures the General Programmable Interface (GPIF) for FX2. // Please do not modify sections of text which are marked as "DO NOT EDIT ...". // // DO NOT EDIT ... // GPIF Initialization // Interface Timing Async // Internal Ready Init IntRdy=1 // CTL Out Tristate-able Binary // SingleWrite WF Select 1 // SingleRead WF Select 0 // FifoWrite WF Select 3 // FifoRead WF Select 2 // Data Bus Idle Drive Tristate // END DO NOT EDIT // DO NOT EDIT ... // GPIF Wave Names // Wave 0 = singlerd // Wave 1 = singlewr // Wave 2 = FIFORd // Wave 3 = FIFOWr // GPIF Ctrl Outputs Level // CTL 0 = WEN# CMOS // CTL 1 = REN# CMOS // CTL 2 = OE# CMOS // CTL 3 = CLRST CMOS // CTL 4 = unused CMOS // CTL 5 = BOGUS CMOS // GPIF Rdy Inputs // RDY0 = EF# // RDY1 = FF# // RDY2 = unused // RDY3 = unused // RDY4 = unused // RDY5 = TCXpire // FIFOFlag = FIFOFlag // IntReady = IntReady // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 0: singlerd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data NO Data NO Data NO Data NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A // LFunc // Term B // Branch1 // Branch0 // Re-Exec // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 1: singlewr // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode Activate Activate Activate Activate Activate Activate Activate // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A EF# // LFunc AND // Term B EF# // Branch1 ThenIdle // Branch0 ElseIdle // Re-Exec No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 1 1 1 1 1 1 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 2: FIFORd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data Activate NO Data NO Data NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 IF Wait 1 Wait 1 Wait 1 // Term A TCXpire TCXpire // LFunc AND AND // Term B TCXpire TCXpire // Branch1 Then 2 ThenIdle // Branch0 Else 1 ElseIdle // Re-Exec No No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 1 0 0 0 0 0 0 0 // OE# 1 1 1 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 3: FIFOWr // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data Activate Activate Activate Activate Activate Activate // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A TCXpire // LFunc AND // Term B TCXpire // Branch1 ThenIdle // Branch0 Else 1 // Re-Exec No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // GPIF Program Code // DO NOT EDIT ... #include "fx2.h" #include "fx2regs.h" #include "fx2sdly.h" // SYNCDELAY macro // END DO NOT EDIT // DO NOT EDIT ... const char xdata WaveData[128] = { // Wave 0 /* LenBr */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Output*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, // Wave 1 /* LenBr */ 0x01, 0x3F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x22, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, /* Output*/ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, // Wave 2 /* LenBr */ 0x01, 0x11, 0x01, 0x3F, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, /* Output*/ 0x06, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x2D, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x3F, // Wave 3 /* LenBr */ 0x01, 0x39, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, /* Output*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, }; // END DO NOT EDIT // DO NOT EDIT ... const char xdata FlowStates[36] = { /* Wave 0 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* Wave 1 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* Wave 2 FlowStates */ 0x81,0x2D,0x26,0x00,0x04,0x04,0x03,0x02,0x00, /* Wave 3 FlowStates */ 0x81,0x2D,0x21,0x00,0x04,0x04,0x03,0x02,0x00, }; // END DO NOT EDIT // DO NOT EDIT ... const char xdata InitData[7] = { /* Regs */ 0xA0,0x00,0x00,0x00,0xEE,0x4E,0x00 }; // END DO NOT EDIT // TO DO: You may add additional code below. void GpifInit( void ) { BYTE i; // Registers which require a synchronization delay, see section 15.14 // FIFORESET FIFOPINPOLAR // INPKTEND OUTPKTEND // EPxBCH:L REVCTL // GPIFTCB3 GPIFTCB2 // GPIFTCB1 GPIFTCB0 // EPxFIFOPFH:L EPxAUTOINLENH:L // EPxFIFOCFG EPxGPIFFLGSEL // PINFLAGSxx EPxFIFOIRQ // EPxFIFOIE GPIFIRQ // GPIFIE GPIFADRH:L // UDMACRCH:L EPxGPIFTRIG // GPIFTRIG // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well... // ...these have been replaced by GPIFTC[B3:B0] registers // 8051 doesn't have access to waveform memories 'til // the part is in GPIF mode. IFCONFIG = 0xEE; // IFCLKSRC=1 , FIFOs executes on internal clk source // xMHz=1 , 48MHz internal clk rate // IFCLKOE=0 , Don't drive IFCLK pin signal at 48MHz // IFCLKPOL=0 , Don't invert IFCLK pin signal from internal clk // ASYNC=1 , master samples asynchronous // GSTATE=1 , Drive GPIF states out on PORTE[2:0], debug WF // IFCFG[1:0]=10, FX2 in GPIF master mode GPIFABORT = 0xFF; // abort any waveforms pending GPIFREADYCFG = InitData[ 0 ]; GPIFCTLCFG = InitData[ 1 ]; GPIFIDLECS = InitData[ 2 ]; GPIFIDLECTL = InitData[ 3 ]; GPIFWFSELECT = InitData[ 5 ]; GPIFREADYSTAT = InitData[ 6 ]; // use dual autopointer feature... AUTOPTRSETUP = 0x07; // inc both pointers, // ...warning: this introduces pdata hole(s) // ...at E67B (XAUTODAT1) and E67C (XAUTODAT2) // source AUTOPTRH1 = MSB( &WaveData ); AUTOPTRL1 = LSB( &WaveData ); // destination AUTOPTRH2 = 0xE4; AUTOPTRL2 = 0x00; // transfer for ( i = 0x00; i < 128; i++ ) { EXTAUTODAT2 = EXTAUTODAT1; } // Configure GPIF Address pins, output initial value, PORTCCFG = 0xFF; // [7:0] as alt. func. GPIFADR[7:0] OEC = 0xFF; // and as outputs PORTECFG |= 0x80; // [8] as alt. func. GPIFADR[8] OEE |= 0x80; // and as output // ...OR... tri-state GPIFADR[8:0] pins // PORTCCFG = 0x00; // [7:0] as port I/O // OEC = 0x00; // and as inputs // PORTECFG &= 0x7F; // [8] as port I/O // OEE &= 0x7F; // and as input // GPIF address pins update when GPIFADRH/L written SYNCDELAY; // GPIFADRH = 0x00; // bits[7:1] always 0 SYNCDELAY; // GPIFADRL = 0x00; // point to PERIPHERAL address 0x0000 // Configure GPIF FlowStates registers for Wave 0 of WaveData FLOWSTATE = FlowStates[ 0 ]; FLOWLOGIC = FlowStates[ 1 ]; FLOWEQ0CTL = FlowStates[ 2 ]; FLOWEQ1CTL = FlowStates[ 3 ]; FLOWHOLDOFF = FlowStates[ 4 ]; FLOWSTB = FlowStates[ 5 ]; FLOWSTBEDGE = FlowStates[ 6 ]; FLOWSTBHPERIOD = FlowStates[ 7 ]; } uhd-3.5.5/firmware/fx2/usrp1/gpif.gpf000077500000000000000000000123351224274632000173250ustar00rootroot00000000000000CY4265-15AC EF# FF# unused unused unused TCXpire FIFOFlag IntReady WEN# REN# OE# CLRST unused BOGUS singlerd VD”rRNA”rRNš”rRN¸”rRNÖ”rRNô”rRN”rRN0singlewr Vs ”rRNA”rRkA”rRˆA”rRk|”rRNš”rRkš”rRˆš”rRN¸”rRNÖ”rRNô”rRN”rRN0FIFORd Vs-&­ÊДrRNA”rRkA”rRˆA”rRk|”rR¥|”rRNš”rRN¸”rRk¸”rRNÖ”rRkÖ”rRˆÖ”rR¥Ö”rRNô”rRN”rRN0FIFOWr Vs-! ”rRNA”rRkA”rRˆA”rRk|”rRNš”rRkš”rRˆš”rRN¸”rRNÖ”rRNô”rRN”rRN0Single Read Single Write FIFO Read FIFO Write Single Read Single Write FIFO Read FIFO Write Single Read Single Write FIFO Read FIFO Write Single Read Single Write FIFO Read FIFO Write Single Read Single Write FIFO Read FIFO Write Single Read Single Write FIFO Read FIFO Write Single Read Single Write FIFO Read FIFO Write uhd-3.5.5/firmware/fx2/usrp1/usb_descriptors.a51000066400000000000000000000237651224274632000214320ustar00rootroot00000000000000;;; -*- asm -*- ;;; ;;; Copyright 2003 Free Software Foundation, Inc. ;;; ;;; This file is part of GNU Radio ;;; ;;; GNU Radio is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3, or (at your option) ;;; any later version. ;;; ;;; GNU Radio is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Radio; see the file COPYING. If not, write to ;;; the Free Software Foundation, Inc., 51 Franklin Street, ;;; Boston, MA 02110-1301, USA. ;;; ;;; USB Descriptor table for the USRP ;;; ;;; We're a high-speed only device (480 Mb/sec) with 1 configuration ;;; and 3 interfaces. ;;; ;;; interface 0: command and status (ep0 COMMAND) ;;; interface 1: Transmit path (ep2 OUT BULK) ;;; interface 2: Receive path (ep6 IN BULK) .module usb_descriptors VID_FREE = 0xfffe ; Free Software Folks PID_USRP = 0x0002 ; USRP ;; We distinguish configured from unconfigured USRPs using the Device ID. ;; If the MSB of the DID is 0, the device is unconfigured. ;; The LSB of the DID is reserved for hardware revs. DID_USRP = 0x0100 ; Device ID (bcd) DSCR_DEVICE = 1 ; Descriptor type: Device DSCR_CONFIG = 2 ; Descriptor type: Configuration DSCR_STRING = 3 ; Descriptor type: String DSCR_INTRFC = 4 ; Descriptor type: Interface DSCR_ENDPNT = 5 ; Descriptor type: Endpoint DSCR_DEVQUAL = 6 ; Descriptor type: Device Qualifier DSCR_DEVICE_LEN = 18 DSCR_CONFIG_LEN = 9 DSCR_INTRFC_LEN = 9 DSCR_ENDPNT_LEN = 7 DSCR_DEVQUAL_LEN = 10 ET_CONTROL = 0 ; Endpoint type: Control ET_ISO = 1 ; Endpoint type: Isochronous ET_BULK = 2 ; Endpoint type: Bulk ET_INT = 3 ; Endpoint type: Interrupt ;; configuration attributes bmSELF_POWERED = 1 << 6 ;;; -------------------------------------------------------- ;;; external ram data ;;;-------------------------------------------------------- .area USBDESCSEG (XDATA) ;;; ---------------------------------------------------------------- ;;; descriptors used when operating at high speed (480Mb/sec) ;;; ---------------------------------------------------------------- .even ; descriptors must be 2-byte aligned for SUDPTR{H,L} to work ;; The .even directive isn't really honored by the linker. Bummer! ;; (There's no way to specify an alignment requirement for a given area, ;; hence when they're concatenated together, even doesn't work.) ;; ;; We work around this by telling the linker to put USBDESCSEG ;; at 0xE000 absolute. This means that the maximimum length of this ;; segment is 480 bytes, leaving room for the two hash slots ;; at 0xE1EO to 0xE1FF. ;; ;; As of July 7, 2004, this segment is 326 bytes long _high_speed_device_descr:: .db DSCR_DEVICE_LEN .db DSCR_DEVICE .db <0x0200 ; Specification version (LSB) .db >0x0200 ; Specification version (MSB) .db 0xff ; device class (vendor specific) .db 0xff ; device subclass (vendor specific) .db 0xff ; device protocol (vendor specific) .db 64 ; bMaxPacketSize0 for endpoint 0 .db VID_FREE ; idVendor .db PID_USRP ; idProduct _usb_desc_hw_rev_binary_patch_location_0:: .db DID_USRP ; bcdDevice .db SI_VENDOR ; iManufacturer (string index) .db SI_PRODUCT ; iProduct (string index) .db SI_SERIAL ; iSerial number (string index) .db 1 ; bNumConfigurations ;;; describes the other speed (12Mb/sec) .even _high_speed_devqual_descr:: .db DSCR_DEVQUAL_LEN .db DSCR_DEVQUAL .db <0x0200 ; bcdUSB (LSB) .db >0x0200 ; bcdUSB (MSB) .db 0xff ; bDeviceClass .db 0xff ; bDeviceSubClass .db 0xff ; bDeviceProtocol .db 64 ; bMaxPacketSize0 .db 1 ; bNumConfigurations (one config at 12Mb/sec) .db 0 ; bReserved .even _high_speed_config_descr:: .db DSCR_CONFIG_LEN .db DSCR_CONFIG .db <(_high_speed_config_descr_end - _high_speed_config_descr) ; LSB .db >(_high_speed_config_descr_end - _high_speed_config_descr) ; MSB .db 3 ; bNumInterfaces .db 1 ; bConfigurationValue .db 0 ; iConfiguration .db 0x80 | bmSELF_POWERED ; bmAttributes .db 0 ; bMaxPower ;; interface descriptor 0 (command & status, ep0 COMMAND) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 0 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 0 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_COMMAND_AND_STATUS ; iInterface (description) ;; interface descriptor 1 (transmit path, ep2 OUT BULK) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 1 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 1 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_TX_PATH ; iInterface (description) ;; interface 1's end point .db DSCR_ENDPNT_LEN .db DSCR_ENDPNT .db 0x02 ; bEndpointAddress (ep 2 OUT) .db ET_BULK ; bmAttributes .db <512 ; wMaxPacketSize (LSB) .db >512 ; wMaxPacketSize (MSB) .db 0 ; bInterval (iso only) ;; interface descriptor 2 (receive path, ep6 IN BULK) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 2 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 1 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_RX_PATH ; iInterface (description) ;; interface 2's end point .db DSCR_ENDPNT_LEN .db DSCR_ENDPNT .db 0x86 ; bEndpointAddress (ep 6 IN) .db ET_BULK ; bmAttributes .db <512 ; wMaxPacketSize (LSB) .db >512 ; wMaxPacketSize (MSB) .db 0 ; bInterval (iso only) _high_speed_config_descr_end: ;;; ---------------------------------------------------------------- ;;; descriptors used when operating at full speed (12Mb/sec) ;;; ---------------------------------------------------------------- .even _full_speed_device_descr:: .db DSCR_DEVICE_LEN .db DSCR_DEVICE .db <0x0200 ; Specification version (LSB) .db >0x0200 ; Specification version (MSB) .db 0xff ; device class (vendor specific) .db 0xff ; device subclass (vendor specific) .db 0xff ; device protocol (vendor specific) .db 64 ; bMaxPacketSize0 for endpoint 0 .db VID_FREE ; idVendor .db PID_USRP ; idProduct _usb_desc_hw_rev_binary_patch_location_1:: .db DID_USRP ; bcdDevice .db SI_VENDOR ; iManufacturer (string index) .db SI_PRODUCT ; iProduct (string index) .db SI_NONE ; iSerial number (None) .db 1 ; bNumConfigurations ;;; describes the other speed (480Mb/sec) .even _full_speed_devqual_descr:: .db DSCR_DEVQUAL_LEN .db DSCR_DEVQUAL .db <0x0200 ; bcdUSB .db >0x0200 ; bcdUSB .db 0xff ; bDeviceClass .db 0xff ; bDeviceSubClass .db 0xff ; bDeviceProtocol .db 64 ; bMaxPacketSize0 .db 1 ; bNumConfigurations (one config at 480Mb/sec) .db 0 ; bReserved .even _full_speed_config_descr:: .db DSCR_CONFIG_LEN .db DSCR_CONFIG .db <(_full_speed_config_descr_end - _full_speed_config_descr) ; LSB .db >(_full_speed_config_descr_end - _full_speed_config_descr) ; MSB .db 1 ; bNumInterfaces .db 1 ; bConfigurationValue .db 0 ; iConfiguration .db 0x80 | bmSELF_POWERED ; bmAttributes .db 0 ; bMaxPower ;; interface descriptor 0 (command & status, ep0 COMMAND) .db DSCR_INTRFC_LEN .db DSCR_INTRFC .db 0 ; bInterfaceNumber (zero based) .db 0 ; bAlternateSetting .db 0 ; bNumEndpoints .db 0xff ; bInterfaceClass (vendor specific) .db 0xff ; bInterfaceSubClass (vendor specific) .db 0xff ; bInterfaceProtocol (vendor specific) .db SI_COMMAND_AND_STATUS ; iInterface (description) _full_speed_config_descr_end: ;;; ---------------------------------------------------------------- ;;; string descriptors ;;; ---------------------------------------------------------------- _nstring_descriptors:: .db (_string_descriptors_end - _string_descriptors) / 2 _string_descriptors:: .db str0 .db str1 .db str2 .db str3 .db str4 .db str5 .db str6 _string_descriptors_end: SI_NONE = 0 ;; str0 contains the language ID's. .even str0: .db str0_end - str0 .db DSCR_STRING .db 0 .db 0 .db <0x0409 ; magic code for US English (LSB) .db >0x0409 ; magic code for US English (MSB) str0_end: SI_VENDOR = 1 .even str1: .db str1_end - str1 .db DSCR_STRING .db 'F, 0 ; 16-bit unicode .db 'r, 0 .db 'e, 0 .db 'e, 0 .db ' , 0 .db 'S, 0 .db 'o, 0 .db 'f, 0 .db 't, 0 .db 'w, 0 .db 'a, 0 .db 'r, 0 .db 'e, 0 .db ' , 0 .db 'F, 0 .db 'o, 0 .db 'l, 0 .db 'k, 0 .db 's, 0 str1_end: SI_PRODUCT = 2 .even str2: .db str2_end - str2 .db DSCR_STRING .db 'U, 0 .db 'S, 0 .db 'R, 0 .db 'P, 0 .db ' , 0 .db 'R, 0 .db 'e, 0 .db 'v, 0 .db ' , 0 _usb_desc_hw_rev_ascii_patch_location_0:: .db '?, 0 str2_end: SI_COMMAND_AND_STATUS = 3 .even str3: .db str3_end - str3 .db DSCR_STRING .db 'C, 0 .db 'o, 0 .db 'm, 0 .db 'm, 0 .db 'a, 0 .db 'n, 0 .db 'd, 0 .db ' , 0 .db '&, 0 .db ' , 0 .db 'S, 0 .db 't, 0 .db 'a, 0 .db 't, 0 .db 'u, 0 .db 's, 0 str3_end: SI_TX_PATH = 4 .even str4: .db str4_end - str4 .db DSCR_STRING .db 'T, 0 .db 'r, 0 .db 'a, 0 .db 'n, 0 .db 's, 0 .db 'm, 0 .db 'i, 0 .db 't, 0 .db ' , 0 .db 'P, 0 .db 'a, 0 .db 't, 0 .db 'h, 0 str4_end: SI_RX_PATH = 5 .even str5: .db str5_end - str5 .db DSCR_STRING .db 'R, 0 .db 'e, 0 .db 'c, 0 .db 'e, 0 .db 'i, 0 .db 'v, 0 .db 'e, 0 .db ' , 0 .db 'P, 0 .db 'a, 0 .db 't, 0 .db 'h, 0 str5_end: SI_SERIAL = 6 .even str6: .db str6_end - str6 .db DSCR_STRING _usb_desc_serial_number_ascii:: .db '3, 0 .db '., 0 .db '1, 0 .db '4, 0 .db '1, 0 .db '5, 0 .db '9, 0 .db '3, 0 str6_end: uhd-3.5.5/firmware/fx2/usrp1/usrp_common.c000066400000000000000000000060301224274632000203770ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * common code for USRP */ #include "usrp_common.h" void init_board (void); void init_usrp (void) { CPUCS = bmCLKSPD1; // CPU runs @ 48 MHz CKCON = 0; // MOVX takes 2 cycles // IFCLK is generated internally and runs at 48 MHz; GPIF "master mode" IFCONFIG = bmIFCLKSRC | bm3048MHZ | bmIFCLKOE | bmIFCLKPOL | bmIFGPIF; SYNCDELAY; // configure IO ports (B and D are used by GPIF) IOA = bmPORT_A_INITIAL; // Port A initial state OEA = bmPORT_A_OUTPUTS; // Port A direction register IOC = bmPORT_C_INITIAL; // Port C initial state OEC = bmPORT_C_OUTPUTS; // Port C direction register IOE = bmPORT_E_INITIAL; // Port E initial state OEE = bmPORT_E_OUTPUTS; // Port E direction register // REVCTL = bmDYN_OUT | bmENH_PKT; // highly recommended by docs // SYNCDELAY; // configure end points EP1OUTCFG = bmVALID | bmBULK; SYNCDELAY; EP1INCFG = bmVALID | bmBULK | bmIN; SYNCDELAY; EP2CFG = bmVALID | bmBULK | bmQUADBUF; SYNCDELAY; // 512 quad bulk OUT EP4CFG = 0; SYNCDELAY; // disabled EP6CFG = bmVALID | bmBULK | bmQUADBUF | bmIN; SYNCDELAY; // 512 quad bulk IN EP8CFG = 0; SYNCDELAY; // disabled // reset FIFOs FIFORESET = bmNAKALL; SYNCDELAY; FIFORESET = 2; SYNCDELAY; // FIFORESET = 4; SYNCDELAY; FIFORESET = 6; SYNCDELAY; // FIFORESET = 8; SYNCDELAY; FIFORESET = 0; SYNCDELAY; // configure end point FIFOs // let core see 0 to 1 transistion of autoout bit EP2FIFOCFG = bmWORDWIDE; SYNCDELAY; EP2FIFOCFG = bmAUTOOUT | bmWORDWIDE; SYNCDELAY; EP6FIFOCFG = bmAUTOIN | bmWORDWIDE; SYNCDELAY; // prime the pump #if 0 EP2BCL = 0x80; SYNCDELAY; EP2BCL = 0x80; SYNCDELAY; EP2BCL = 0x80; SYNCDELAY; EP2BCL = 0x80; SYNCDELAY; #endif EP0BCH = 0; SYNCDELAY; // arm EP1OUT so we can receive "out" packets (TRM pg 8-8) EP1OUTBC = 0; SYNCDELAY; EP2GPIFFLGSEL = 0x01; SYNCDELAY; // For EP2OUT, GPIF uses EF flag EP6GPIFFLGSEL = 0x02; SYNCDELAY; // For EP6IN, GPIF uses FF flag // set autoin length for EP6 // FIXME should be f(enumeration) EP6AUTOINLENH = (512) >> 8; SYNCDELAY; // this is the length for high speed EP6AUTOINLENL = (512) & 0xff; SYNCDELAY; init_board (); } uhd-3.5.5/firmware/fx2/usrp1/usrp_gpif.c000066400000000000000000000215141224274632000200400ustar00rootroot00000000000000/* * Machine generated by "edit-gpif". Do not edit by hand. */ // This program configures the General Programmable Interface (GPIF) for FX2. // Please do not modify sections of text which are marked as "DO NOT EDIT ...". // // DO NOT EDIT ... // GPIF Initialization // Interface Timing Async // Internal Ready Init IntRdy=1 // CTL Out Tristate-able Binary // SingleWrite WF Select 1 // SingleRead WF Select 0 // FifoWrite WF Select 3 // FifoRead WF Select 2 // Data Bus Idle Drive Tristate // END DO NOT EDIT // DO NOT EDIT ... // GPIF Wave Names // Wave 0 = singlerd // Wave 1 = singlewr // Wave 2 = FIFORd // Wave 3 = FIFOWr // GPIF Ctrl Outputs Level // CTL 0 = WEN# CMOS // CTL 1 = REN# CMOS // CTL 2 = OE# CMOS // CTL 3 = CLRST CMOS // CTL 4 = unused CMOS // CTL 5 = BOGUS CMOS // GPIF Rdy Inputs // RDY0 = EF# // RDY1 = FF# // RDY2 = unused // RDY3 = unused // RDY4 = unused // RDY5 = TCXpire // FIFOFlag = FIFOFlag // IntReady = IntReady // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 0: singlerd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data NO Data NO Data NO Data NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A // LFunc // Term B // Branch1 // Branch0 // Re-Exec // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 1: singlewr // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode Activate Activate Activate Activate Activate Activate Activate // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A EF# // LFunc AND // Term B EF# // Branch1 ThenIdle // Branch0 ElseIdle // Re-Exec No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 1 1 1 1 1 1 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 2: FIFORd // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data Activate NO Data NO Data NO Data NO Data NO Data // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 IF Wait 1 Wait 1 Wait 1 // Term A TCXpire TCXpire // LFunc AND AND // Term B TCXpire TCXpire // Branch1 Then 2 ThenIdle // Branch0 Else 1 ElseIdle // Re-Exec No No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 1 0 0 0 0 0 0 0 // OE# 1 1 1 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // DO NOT EDIT ... // // GPIF Waveform 3: FIFOWr // // Interval 0 1 2 3 4 5 6 Idle (7) // _________ _________ _________ _________ _________ _________ _________ _________ // // AddrMode Same Val Same Val Same Val Same Val Same Val Same Val Same Val // DataMode NO Data Activate Activate Activate Activate Activate Activate // NextData SameData SameData SameData SameData SameData SameData SameData // Int Trig No Int No Int No Int No Int No Int No Int No Int // IF/Wait Wait 1 IF Wait 1 Wait 1 Wait 1 Wait 1 Wait 1 // Term A TCXpire // LFunc AND // Term B TCXpire // Branch1 ThenIdle // Branch0 Else 1 // Re-Exec No // Sngl/CRC Default Default Default Default Default Default Default // WEN# 0 0 0 0 0 0 0 0 // REN# 0 0 0 0 0 0 0 0 // OE# 0 0 0 0 0 0 0 0 // CLRST 0 0 0 0 0 0 0 0 // unused 0 0 0 0 0 0 0 0 // BOGUS 0 0 0 0 0 0 0 0 // // END DO NOT EDIT // GPIF Program Code // DO NOT EDIT ... // #include "fx2.h" // #include "fx2regs.h" // #include "fx2sdly.h" // SYNCDELAY macro // END DO NOT EDIT // DO NOT EDIT ... const char WaveData[128] = { // Wave 0 /* LenBr */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Output*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, // Wave 1 /* LenBr */ 0x01, 0x3F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x22, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, /* Output*/ 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, // Wave 2 /* LenBr */ 0x01, 0x11, 0x01, 0x3F, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, /* Output*/ 0x06, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x2D, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x3F, // Wave 3 /* LenBr */ 0x01, 0x39, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, /* Opcode*/ 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, /* Output*/ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* LFun */ 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, }; // END DO NOT EDIT // DO NOT EDIT ... const char FlowStates[36] = { /* Wave 0 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* Wave 1 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* Wave 2 FlowStates */ 0x81,0x2D,0x26,0x00,0x04,0x04,0x03,0x02,0x00, /* Wave 3 FlowStates */ 0x81,0x2D,0x21,0x00,0x04,0x04,0x03,0x02,0x00, }; // END DO NOT EDIT // DO NOT EDIT ... const char InitData[7] = { /* Regs */ 0xA0,0x00,0x00,0x00,0xEE,0x4E,0x00 }; // END DO NOT EDIT // TO DO: You may add additional code below. uhd-3.5.5/firmware/fx2/usrp1/usrp_gpif_inline.h000066400000000000000000000010321224274632000213740ustar00rootroot00000000000000/* * Machine generated by "edit-gpif". Do not edit by hand. */ #define setup_flowstate_common() \ do { \ FLOWSTATE = 0x81; \ FLOWLOGIC = 0x2d; \ FLOWEQ0CTL = 0x26; \ FLOWEQ1CTL = 0x00; \ FLOWHOLDOFF = 0x04; \ FLOWSTB = 0x04; \ FLOWSTBEDGE = 0x03; \ FLOWSTBHPERIOD = 0x02; \ GPIFHOLDAMOUNT = 0x00; \ } while (0) #define setup_flowstate_read() \ do { \ FLOWEQ0CTL = 0x26; \ } while (0) #define setup_flowstate_write() \ do { \ FLOWEQ0CTL = 0x21; \ } while (0) uhd-3.5.5/firmware/fx2/usrp1/usrp_main.c000066400000000000000000000177101224274632000200420ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003,2004 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ #include "usrp_common.h" #include "usrp_regs.h" #include "usrp_commands.h" #include "fpga.h" #include "usrp_gpif_inline.h" #include "timer.h" #include "i2c.h" #include "isr.h" #include "usb_common.h" #include "fx2utils.h" #include "usrp_globals.h" #include "usrp_i2c_addr.h" #include #include "spi.h" #include "eeprom_io.h" #include "usb_descriptors.h" /* * offsets into boot eeprom for configuration values */ #define HW_REV_OFFSET 5 #define SERIAL_NO_OFFSET 248 #define SERIAL_NO_LEN 8 #define bRequestType SETUPDAT[0] #define bRequest SETUPDAT[1] #define wValueL SETUPDAT[2] #define wValueH SETUPDAT[3] #define wIndexL SETUPDAT[4] #define wIndexH SETUPDAT[5] #define wLengthL SETUPDAT[6] #define wLengthH SETUPDAT[7] unsigned char g_tx_enable = 0; unsigned char g_rx_enable = 0; unsigned char g_rx_overrun = 0; unsigned char g_tx_underrun = 0; /* * the host side fpga loader code pushes an MD5 hash of the bitstream * into hash1. */ #define USRP_HASH_SIZE 16 xdata at USRP_HASH_SLOT_1_ADDR unsigned char hash1[USRP_HASH_SIZE]; static void get_ep0_data (void) { EP0BCL = 0; // arm EP0 for OUT xfer. This sets the busy bit while (EP0CS & bmEPBUSY) // wait for busy to clear ; } /* * Handle our "Vendor Extension" commands on endpoint 0. * If we handle this one, return non-zero. */ unsigned char app_vendor_cmd (void) { if (bRequestType == VRT_VENDOR_IN){ ///////////////////////////////// // handle the IN requests ///////////////////////////////// switch (bRequest){ case VRQ_GET_STATUS: switch (wIndexL){ case GS_TX_UNDERRUN: EP0BUF[0] = g_tx_underrun; g_tx_underrun = 0; EP0BCH = 0; EP0BCL = 1; break; case GS_RX_OVERRUN: EP0BUF[0] = g_rx_overrun; g_rx_overrun = 0; EP0BCH = 0; EP0BCL = 1; break; default: return 0; } break; case VRQ_I2C_READ: if (!i2c_read (wValueL, EP0BUF, wLengthL)) return 0; EP0BCH = 0; EP0BCL = wLengthL; break; case VRQ_SPI_READ: if (!spi_read (wValueH, wValueL, wIndexH, wIndexL, EP0BUF, wLengthL)) return 0; EP0BCH = 0; EP0BCL = wLengthL; break; default: return 0; } } else if (bRequestType == VRT_VENDOR_OUT){ ///////////////////////////////// // handle the OUT requests ///////////////////////////////// switch (bRequest){ case VRQ_SET_LED: switch (wIndexL){ case 0: set_led_0 (wValueL); break; case 1: set_led_1 (wValueL); break; default: return 0; } break; case VRQ_FPGA_LOAD: switch (wIndexL){ // sub-command case FL_BEGIN: return fpga_load_begin (); case FL_XFER: get_ep0_data (); return fpga_load_xfer (EP0BUF, EP0BCL); case FL_END: return fpga_load_end (); default: return 0; } break; case VRQ_FPGA_SET_RESET: fpga_set_reset (wValueL); break; case VRQ_FPGA_SET_TX_ENABLE: fpga_set_tx_enable (wValueL); break; case VRQ_FPGA_SET_RX_ENABLE: fpga_set_rx_enable (wValueL); break; case VRQ_FPGA_SET_TX_RESET: fpga_set_tx_reset (wValueL); break; case VRQ_FPGA_SET_RX_RESET: fpga_set_rx_reset (wValueL); break; case VRQ_I2C_WRITE: get_ep0_data (); if (!i2c_write (wValueL, EP0BUF, EP0BCL)) return 0; break; case VRQ_SPI_WRITE: get_ep0_data (); if (!spi_write (wValueH, wValueL, wIndexH, wIndexL, EP0BUF, EP0BCL)) return 0; break; default: return 0; } } else return 0; // invalid bRequestType return 1; } static void main_loop (void) { setup_flowstate_common (); while (1){ if (usb_setup_packet_avail ()) usb_handle_setup_packet (); if (GPIFTRIG & bmGPIF_IDLE){ // OK, GPIF is idle. Let's try to give it some work. // First check for underruns and overruns if (UC_BOARD_HAS_FPGA && (USRP_PA & (bmPA_TX_UNDERRUN | bmPA_RX_OVERRUN))){ // record the under/over run if (USRP_PA & bmPA_TX_UNDERRUN) g_tx_underrun = 1; if (USRP_PA & bmPA_RX_OVERRUN) g_rx_overrun = 1; // tell the FPGA to clear the flags fpga_clear_flags (); } // Next see if there are any "OUT" packets waiting for our attention, // and if so, if there's room in the FPGA's FIFO for them. if (g_tx_enable && !(EP24FIFOFLGS & 0x02)){ // USB end point fifo is not empty... if (fpga_has_room_for_packet ()){ // ... and FPGA has room for packet GPIFTCB1 = 0x01; SYNCDELAY; GPIFTCB0 = 0x00; SYNCDELAY; setup_flowstate_write (); SYNCDELAY; GPIFTRIG = bmGPIF_EP2_START | bmGPIF_WRITE; // start the xfer SYNCDELAY; while (!(GPIFTRIG & bmGPIF_IDLE)){ // wait for the transaction to complete } } } // See if there are any requests for "IN" packets, and if so // whether the FPGA's got any packets for us. if (g_rx_enable && !(EP6CS & bmEPFULL)){ // USB end point fifo is not full... if (fpga_has_packet_avail ()){ // ... and FPGA has packet available GPIFTCB1 = 0x01; SYNCDELAY; GPIFTCB0 = 0x00; SYNCDELAY; setup_flowstate_read (); SYNCDELAY; GPIFTRIG = bmGPIF_EP6_START | bmGPIF_READ; // start the xfer SYNCDELAY; while (!(GPIFTRIG & bmGPIF_IDLE)){ // wait for the transaction to complete } SYNCDELAY; INPKTEND = 6; // tell USB we filled buffer (6 is our endpoint num) } } } } } /* * called at 100 Hz from timer2 interrupt * * Toggle led 0 */ void isr_tick (void) interrupt { static unsigned char count = 1; if (--count == 0){ count = 50; USRP_LED_REG ^= bmLED0; } clear_timer_irq (); } /* * Read h/w rev code and serial number out of boot eeprom and * patch the usb descriptors with the values. */ void patch_usb_descriptors(void) { static xdata unsigned char hw_rev; static xdata unsigned char serial_no[8]; unsigned char i; eeprom_read(I2C_ADDR_BOOT, HW_REV_OFFSET, &hw_rev, 1); // LSB of device id usb_desc_hw_rev_binary_patch_location_0[0] = hw_rev; usb_desc_hw_rev_binary_patch_location_1[0] = hw_rev; usb_desc_hw_rev_ascii_patch_location_0[0] = hw_rev + '0'; // FIXME if we get > 9 eeprom_read(I2C_ADDR_BOOT, SERIAL_NO_OFFSET, serial_no, SERIAL_NO_LEN); for (i = 0; i < SERIAL_NO_LEN; i++){ unsigned char ch = serial_no[i]; if (ch == 0xff) // make unprogrammed EEPROM default to '0' ch = '0'; usb_desc_serial_number_ascii[i << 1] = ch; } } void main (void) { #if 0 g_rx_enable = 0; // FIXME (work around initialization bug) g_tx_enable = 0; g_rx_overrun = 0; g_tx_underrun = 0; #endif memset (hash1, 0, USRP_HASH_SIZE); // zero fpga bitstream hash. This forces reload init_usrp (); init_gpif (); // if (UC_START_WITH_GSTATE_OUTPUT_ENABLED) IFCONFIG |= bmGSTATE; // no conflict, start with it on set_led_0 (0); set_led_1 (0); EA = 0; // disable all interrupts patch_usb_descriptors(); setup_autovectors (); usb_install_handlers (); hook_timer_tick ((unsigned short) isr_tick); EIEX4 = 1; // disable INT4 FIXME EA = 1; // global interrupt enable fx2_renumerate (); // simulates disconnect / reconnect main_loop (); } uhd-3.5.5/firmware/fx2/usrp1/usrp_regs.h000066400000000000000000000115371224274632000200640ustar00rootroot00000000000000/* * USRP - Universal Software Radio Peripheral * * Copyright (C) 2003 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * These are the register definitions for the Rev 1 USRP prototype * The Rev 1 is the version with the AD9862's and daughterboards */ #ifndef _USRP_REV1_REGS_H_ #define _USRP_REV1_REGS_H_ #include "fx2regs.h" /* * Port A (bit addressable): */ #define USRP_PA IOA // Port A #define USRP_PA_OE OEA // Port A direction register #define bmPA_S_CLK bmBIT0 // SPI serial clock #define bmPA_S_DATA_TO_PERIPH bmBIT1 // SPI SDI (peripheral rel name) #define bmPA_S_DATA_FROM_PERIPH bmBIT2 // SPI SDO (peripheral rel name) #define bmPA_SEN_FPGA bmBIT3 // serial enable for FPGA (active low) #define bmPA_SEN_CODEC_A bmBIT4 // serial enable AD9862 A (active low) #define bmPA_SEN_CODEC_B bmBIT5 // serial enable AD9862 B (active low) //#define bmPA_FX2_2 bmBIT6 // misc pin to FPGA (overflow) //#define bmPA_FX2_3 bmBIT7 // misc pin to FPGA (underflow) #define bmPA_RX_OVERRUN bmBIT6 // misc pin to FPGA (overflow) #define bmPA_TX_UNDERRUN bmBIT7 // misc pin to FPGA (underflow) sbit at 0x80+0 bitS_CLK; // 0x80 is the bit address of PORT A sbit at 0x80+1 bitS_OUT; // out from FX2 point of view sbit at 0x80+2 bitS_IN; // in from FX2 point of view /* all outputs except S_DATA_FROM_PERIPH, FX2_2, FX2_3 */ #define bmPORT_A_OUTPUTS (bmPA_S_CLK \ | bmPA_S_DATA_TO_PERIPH \ | bmPA_SEN_FPGA \ | bmPA_SEN_CODEC_A \ | bmPA_SEN_CODEC_B \ ) #define bmPORT_A_INITIAL (bmPA_SEN_FPGA | bmPA_SEN_CODEC_A | bmPA_SEN_CODEC_B) /* Port B: GPIF FD[7:0] */ /* * Port C (bit addressable): * 5:1 FPGA configuration */ #define USRP_PC IOC // Port C #define USRP_PC_OE OEC // Port C direction register #define USRP_ALTERA_CONFIG USRP_PC #define bmPC_nRESET bmBIT0 // reset line to codecs (active low) #define bmALTERA_DATA0 bmBIT1 #define bmALTERA_NCONFIG bmBIT2 #define bmALTERA_DCLK bmBIT3 #define bmALTERA_CONF_DONE bmBIT4 #define bmALTERA_NSTATUS bmBIT5 #define bmPC_LED0 bmBIT6 // active low #define bmPC_LED1 bmBIT7 // active low sbit at 0xA0+1 bitALTERA_DATA0; // 0xA0 is the bit address of PORT C sbit at 0xA0+3 bitALTERA_DCLK; #define bmALTERA_BITS (bmALTERA_DATA0 \ | bmALTERA_NCONFIG \ | bmALTERA_DCLK \ | bmALTERA_CONF_DONE \ | bmALTERA_NSTATUS) #define bmPORT_C_OUTPUTS (bmPC_nRESET \ | bmALTERA_DATA0 \ | bmALTERA_NCONFIG \ | bmALTERA_DCLK \ | bmPC_LED0 \ | bmPC_LED1 \ ) #define bmPORT_C_INITIAL (bmPC_LED0 | bmPC_LED1) #define USRP_LED_REG USRP_PC #define bmLED0 bmPC_LED0 #define bmLED1 bmPC_LED1 /* Port D: GPIF FD[15:8] */ /* Port E: not bit addressible */ #define USRP_PE IOE // Port E #define USRP_PE_OE OEE // Port E direction register #define bmPE_PE0 bmBIT0 // GPIF debug output #define bmPE_PE1 bmBIT1 // GPIF debug output #define bmPE_PE2 bmBIT2 // GPIF debug output #define bmPE_FPGA_CLR_STATUS bmBIT3 // misc pin to FPGA (clear status) #define bmPE_SEN_TX_A bmBIT4 // serial enable d'board TX A (active low) #define bmPE_SEN_RX_A bmBIT5 // serial enable d'board RX A (active low) #define bmPE_SEN_TX_B bmBIT6 // serial enable d'board TX B (active low) #define bmPE_SEN_RX_B bmBIT7 // serial enable d'board RX B (active low) #define bmPORT_E_OUTPUTS (bmPE_FPGA_CLR_STATUS \ | bmPE_SEN_TX_A \ | bmPE_SEN_RX_A \ | bmPE_SEN_TX_B \ | bmPE_SEN_RX_B \ ) #define bmPORT_E_INITIAL (bmPE_SEN_TX_A \ | bmPE_SEN_RX_A \ | bmPE_SEN_TX_B \ | bmPE_SEN_RX_B \ ) /* * FPGA output lines that are tied to FX2 RDYx inputs. * These are readable using GPIFREADYSTAT. */ #define bmFPGA_HAS_SPACE bmBIT0 // usbrdy[0] has room for 512 byte packet #define bmFPGA_PKT_AVAIL bmBIT1 // usbrdy[1] has >= 512 bytes available // #define bmTX_UNDERRUN bmBIT2 // usbrdy[2] D/A ran out of data // #define bmRX_OVERRUN bmBIT3 // usbrdy[3] A/D ran out of buffer /* * FPGA input lines that are tied to the FX2 CTLx outputs. * * These are controlled by the GPIF microprogram... */ // WR bmBIT0 // usbctl[0] // RD bmBIT1 // usbctl[1] // OE bmBIT2 // usbctl[2] #endif /* _USRP_REV1_REGS_H_ */ uhd-3.5.5/firmware/fx2/utils/000077500000000000000000000000001224274632000157615ustar00rootroot00000000000000uhd-3.5.5/firmware/fx2/utils/build_eeprom.py000077500000000000000000000060771224274632000210160ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2004,2006 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # import re import sys import os, os.path from optparse import OptionParser # USB Vendor and Product ID's USRP1VID = 0xfffe # Free Software Folks USRP1PID = 0x0002 USRP1PVID= 0x2500 # Ettus Research USRP1PPID= 0x0002 def msb (x): return (x >> 8) & 0xff def lsb (x): return x & 0xff def build_eeprom_image (filename, rev): """Build a ``C2 Load'' EEPROM image. For details on this format, see section 3.4.3 of the EZ-USB FX2 Technical Reference Manual """ # get the code we want to run f = open(filename, 'rb') bytes = f.read() devid = 4 #for compatibility start_addr = 0 #prove me wrong if(rev == 1): VID = USRP1VID PID = USRP1PID else: VID = USRP1PVID PID = USRP1PPID rom_header = [ 0xC2, # boot from EEPROM lsb (VID), msb (VID), lsb (PID), msb (PID), lsb (devid), msb (devid), 0 # configuration byte ] # 4 byte header that indicates where to load # the immediately follow code bytes. code_header = [ msb (len (bytes)), lsb (len (bytes)), msb (start_addr), lsb (start_addr) ] # writes 0 to CPUCS reg (brings FX2 out of reset) trailer = [ 0x80, 0x01, 0xe6, 0x00, 0x00 ] image = rom_header + code_header + [ord(c) for c in bytes] + trailer assert (len (image) <= 256) return image if __name__ == '__main__': usage = "usage: %prog -r REV [options] bootfile.bin outfile.bin" parser = OptionParser (usage=usage) parser.add_option ("-r", "--rev", type="int", default=-1, help="Specify USRP revision, 1 for USRP1, 2 for USRP1P") (options, args) = parser.parse_args () if len (args) != 2: parser.print_help () sys.exit (1) if options.rev < 0: sys.stderr.write ( "You must specify the USRP revision number (2 or 4) with -r REV\n") sys.exit (1) infile = args[0] outfile = args[1] image = "".join(chr(c) for c in build_eeprom_image(infile, options.rev)) f = open(outfile, 'wb') f.write(str(image)) f.close() uhd-3.5.5/firmware/fx2/utils/edit-gpif-b100.py000077500000000000000000000074151224274632000206550ustar00rootroot00000000000000#!/usr/bin/env python # -*- Python -*- # # Copyright 2003 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # # Edit the gpif.c file generated by the Cypress GPIF Designer Tool and # produce usrp_gpif.c, and usrp_gpif_inline.h, files suitable for our # uses. import re import string import sys def check_flow_state (line, flow_state_dict): mo = re.match (r'/\* Wave (\d) FlowStates \*/ (.*),', line) if mo: wave = int (mo.group (1)) data = mo.group (2) split = data.split (',', 8) v = map (lambda x : int (x, 16), split) # print "%s, %s" % (wave, data) # print "split: ", split # print "v : ", v flow_state_dict[wave] = v def delta (xseq, yseq): # set subtraction z = [] for x in xseq: if x not in yseq: z.append (x) return z def write_define (output, name, pairs): output.write ('#define %s()\t\\\n' % name) output.write ('do {\t\t\t\t\t\\\n') for reg, val in pairs: output.write ('%14s = 0x%02x;\t\t\t\\\n' % (reg, val)) output.write ('} while (0)\n\n') def write_inlines (output, dict): regs = ['FLOWSTATE', 'FLOWLOGIC', 'FLOWEQ0CTL', 'FLOWEQ1CTL', 'FLOWHOLDOFF', 'FLOWSTB', 'FLOWSTBEDGE', 'FLOWSTBHPERIOD', 'GPIFHOLDAMOUNT'] READ_CTRL_FLOW_STATE = 0 WRITE_CTRL_FLOW_STATE = 1 READ_DATA_FLOW_STATE = 2 WRITE_DATA_FLOW_STATE = 3 read_data_info = zip (regs, dict[READ_DATA_FLOW_STATE]) write_data_info = zip (regs, dict[WRITE_DATA_FLOW_STATE]) read_ctrl_info = zip (regs, dict[READ_CTRL_FLOW_STATE]) write_ctrl_info = zip (regs, dict[WRITE_CTRL_FLOW_STATE]) output.write ('''/* * Machine generated by "edit-gpif". Do not edit by hand. */ ''') write_define (output, 'setup_flowstate_common', read_data_info) #assumes that the same registers will change, this isn't really good write_define (output, 'setup_flowstate_data_read', delta (read_data_info, write_data_info)) write_define (output, 'setup_flowstate_data_write', delta (write_data_info, read_data_info)) write_define (output, 'setup_flowstate_ctrl_read', delta (read_ctrl_info, write_ctrl_info)) write_define (output, 'setup_flowstate_ctrl_write', delta (write_ctrl_info, read_ctrl_info)) def edit_gpif (input_name, output_name, inline_name): input = open (input_name, 'r') output = open (output_name, 'w') inline = open (inline_name, 'w') flow_state_dict = {} output.write ('''/* * Machine generated by "edit-gpif". Do not edit by hand. */ ''') while 1: line = input.readline () line = string.replace (line, '\r','') line = re.sub (r' *$', r'', line) check_flow_state (line, flow_state_dict) line = re.sub (r'#include', r'// #include', line) line = re.sub (r'xdata ', r'', line) if re.search (r'GpifInit', line): break output.write (line) output.close () write_inlines (inline, flow_state_dict) inline.close () # gpif.c usrp_gpif.c usrp_gpif_inline.h edit_gpif (sys.argv[1], sys.argv[2], sys.argv[3]) uhd-3.5.5/firmware/fx2/utils/edit-gpif.py000077500000000000000000000064211224274632000202110ustar00rootroot00000000000000#!/usr/bin/env python # -*- Python -*- # # Copyright 2003 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # # Edit the gpif.c file generated by the Cypress GPIF Designer Tool and # produce usrp_gpif.c, and usrp_gpif_inline.h, files suitable for our # uses. import re import string import sys def check_flow_state (line, flow_state_dict): mo = re.match (r'/\* Wave (\d) FlowStates \*/ (.*),', line) if mo: wave = int (mo.group (1)) data = mo.group (2) split = data.split (',', 8) v = map (lambda x : int (x, 16), split) # print "%s, %s" % (wave, data) # print "split: ", split # print "v : ", v flow_state_dict[wave] = v def delta (xseq, yseq): # set subtraction z = [] for x in xseq: if x not in yseq: z.append (x) return z def write_define (output, name, pairs): output.write ('#define %s()\t\\\n' % name) output.write ('do {\t\t\t\t\t\\\n') for reg, val in pairs: output.write ('%14s = 0x%02x;\t\t\t\\\n' % (reg, val)) output.write ('} while (0)\n\n') def write_inlines (output, dict): regs = ['FLOWSTATE', 'FLOWLOGIC', 'FLOWEQ0CTL', 'FLOWEQ1CTL', 'FLOWHOLDOFF', 'FLOWSTB', 'FLOWSTBEDGE', 'FLOWSTBHPERIOD', 'GPIFHOLDAMOUNT'] READ_FLOW_STATE = 2 WRITE_FLOW_STATE = 3 read_info = zip (regs, dict[READ_FLOW_STATE]) write_info = zip (regs, dict[WRITE_FLOW_STATE]) output.write ('''/* * Machine generated by "edit-gpif". Do not edit by hand. */ ''') write_define (output, 'setup_flowstate_common', read_info) write_define (output, 'setup_flowstate_read', delta (read_info, write_info)) write_define (output, 'setup_flowstate_write', delta (write_info, read_info)) def edit_gpif (input_name, output_name, inline_name): input = open (input_name, 'r') output = open (output_name, 'w') inline = open (inline_name, 'w') flow_state_dict = {} output.write ('''/* * Machine generated by "edit-gpif". Do not edit by hand. */ ''') while 1: line = input.readline () line = string.replace (line, '\r','') line = re.sub (r' *$', r'', line) check_flow_state (line, flow_state_dict) line = re.sub (r'#include', r'// #include', line) line = re.sub (r'xdata ', r'', line) if re.search (r'GpifInit', line): break output.write (line) output.close () write_inlines (inline, flow_state_dict) inline.close () # gpif.c usrp_gpif.c usrp_gpif_inline.h edit_gpif (sys.argv[1], sys.argv[2], sys.argv[3]) uhd-3.5.5/firmware/fx2/utils/generate_regs.py000077500000000000000000000032761224274632000211600ustar00rootroot00000000000000#!/usr/bin/env python import os, os.path import re import sys # set srcdir to the directory that contains Makefile.am try: srcdir = os.environ['srcdir'] except KeyError, e: srcdir = "." srcdir = srcdir + '/' def open_src (name, mode): global srcdir return open (os.path.join (srcdir, name), mode) def generate_fpga_regs (h_filename, v_filename): const_width = 7 # bit width of constants h_file = open_src (h_filename, 'r') v_file = open (v_filename, 'w') v_file.write ( '''// // This file is machine generated from %s // Do not edit by hand; your edits will be overwritten. // ''' % (h_filename,)) pat = re.compile (r'^#define\s*(FR_\w*)\s*(\w*)(.*)$') pat_bitno = re.compile (r'^#define\s*(bitno\w*)\s*(\w*)(.*)$') pat_bm = re.compile (r'^#define\s*(bm\w*)\s*(\w*)(.*)$') for line in h_file: if re.match ('//|\s*$', line): # comment or blank line v_file.write (line) mo = pat.search (line) mo_bitno =pat_bitno.search (line) mo_bm =pat_bm.search (line) if mo: v_file.write ('`define %-25s %d\'d%s%s\n' % ( mo.group (1), const_width, mo.group (2), mo.group (3))) elif mo_bitno: v_file.write ('`define %-25s %s%s\n' % ( mo_bitno.group (1), mo_bitno.group (2), mo_bitno.group (3))) elif mo_bm: v_file.write ('`define %-25s %s%s\n' % ( mo_bm.group (1), mo_bm.group (2), mo_bm.group (3))) if __name__ == '__main__': if len (sys.argv) != 3: sys.stderr.write ('usage: %s file.h file.v\n' % (sys.argv[0])) sys.exit (1) generate_fpga_regs (sys.argv[1], sys.argv[2]) uhd-3.5.5/firmware/zpu/000077500000000000000000000000001224274632000147405ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/.gitignore000066400000000000000000000000071224274632000167250ustar00rootroot00000000000000/build uhd-3.5.5/firmware/zpu/AUTHORS000066400000000000000000000001611224274632000160060ustar00rootroot00000000000000Eric Blossom Matt Ettus Josh Blum Nick Foster uhd-3.5.5/firmware/zpu/CMakeLists.txt000066400000000000000000000110121224274632000174730ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # setup project and compiler ######################################################################## CMAKE_MINIMUM_REQUIRED(VERSION 2.6) #force the compiler because the check wont use the special flag below INCLUDE(CMakeForceCompiler) SET(CMAKE_SYSTEM_NAME Generic) CMAKE_FORCE_C_COMPILER(zpu-elf-gcc GNU) PROJECT(USRP_NXXX_FW C) ######################################################################## # lwIP header include dirs ######################################################################## SET(LWIPDIR ${CMAKE_SOURCE_DIR}/lwip/lwip-1.3.1) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/lwip ${CMAKE_SOURCE_DIR}/lwip_port ${LWIPDIR}/src/include ${LWIPDIR}/src/include/ipv4 ) ######################################################################## # misc flags for the gcc compiler ######################################################################## SET(CMAKE_C_FLAGS -phi) #always needed compile time and link time ADD_DEFINITIONS(-Os) ADD_DEFINITIONS(--std=gnu99) ADD_DEFINITIONS(-Wall) ADD_DEFINITIONS(-Werror-implicit-function-declaration) ADD_DEFINITIONS(-ffunction-sections) MACRO(ADD_LINKER_FLAGS flags) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${flags}") ENDMACRO(ADD_LINKER_FLAGS) ADD_LINKER_FLAGS("-Wl,--gc-sections") ADD_LINKER_FLAGS("-Wl,--relax") ######################################################################## # define for the hal io (FIXME move?) ######################################################################## #ADD_DEFINITIONS(-DHAL_IO_USES_DBOARD_PINS) ADD_DEFINITIONS(-DHAL_IO_USES_UART) ######################################################################## # common cflags and ldflags ######################################################################## INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/../../host/lib/usrp ${CMAKE_SOURCE_DIR}/lib ) ######################################################################## # setup programs for output files ######################################################################## FIND_PROGRAM(LINKER zpu-elf-ld) FIND_PROGRAM(OBJCOPY zpu-elf-objcopy) FIND_PROGRAM(OBJDUMP zpu-elf-objdump) FIND_PROGRAM(HEXDUMP hexdump) ######################################################################## # helper functions to build output formats ######################################################################## SET(GEN_OUTPUTS_BIN_SIZE "bin_size_not_set") #set before calling MACRO(GEN_OUTPUTS target) GET_FILENAME_COMPONENT(name ${target} NAME_WE) #command to create a map from elf ADD_CUSTOM_COMMAND( OUTPUT ${name}.map DEPENDS ${target} COMMAND ${LINKER} -Map ${name}.map ${target} ) #command to create a bin from elf ADD_CUSTOM_COMMAND( OUTPUT ${name}.bin DEPENDS ${target} COMMAND ${OBJCOPY} -O binary ${target} ${name}.bin --pad-to ${GEN_OUTPUTS_BIN_SIZE} ) #command to create a ihx from elf ADD_CUSTOM_COMMAND( OUTPUT ${name}.ihx DEPENDS ${target} COMMAND ${OBJCOPY} -O ihex ${target} ${name}.ihx --pad-to ${GEN_OUTPUTS_BIN_SIZE} ) #command to create a dump from elf ADD_CUSTOM_COMMAND( OUTPUT ${name}.dump DEPENDS ${target} COMMAND ${OBJDUMP} -DSC ${target} > ${name}.dump ) #command to create a rom from bin ADD_CUSTOM_COMMAND( OUTPUT ${name}.rom DEPENDS ${name}.bin COMMAND ${HEXDUMP} -v -e'1/1 \"%.2X\\n\"' ${name}.bin > ${name}.rom ) #add a top level target for output files ADD_CUSTOM_TARGET( ${name}_outputs ALL DEPENDS ${name}.map ${name}.bin ${name}.ihx ${name}.dump ${name}.rom ) ENDMACRO(GEN_OUTPUTS) ######################################################################## # Add the subdirectories ######################################################################## ADD_SUBDIRECTORY(usrp2) ADD_SUBDIRECTORY(usrp2p) uhd-3.5.5/firmware/zpu/README000066400000000000000000000010601224274632000156150ustar00rootroot00000000000000######################################################################## # ZPU firmware code for USRP2 and N Series ######################################################################## This code requires the gcc-zpu tool-chain which can be found here: http://opensource.zylin.com/zpudownload.html zpu-elf-gcc should be in your $PATH ######################################################################## # Run the following commands to build ######################################################################## mkdir build cd build cmake ../ make uhd-3.5.5/firmware/zpu/apps/000077500000000000000000000000001224274632000157035ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/apps/txrx_uhd.c000066400000000000000000000317161224274632000177240ustar00rootroot00000000000000/* * Copyright 2010-2012 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //peripheral headers #include "u2_init.h" #include "spi.h" #include "i2c.h" #include "hal_io.h" #include "pic.h" //printf headers #include "nonstdio.h" //network headers #include "arp_cache.h" #include "ethernet.h" #include "net_common.h" #include "usrp2/fw_common.h" #include "udp_fw_update.h" #include "pkt_ctrl.h" #include "udp_uart.h" //standard headers #include #include #include #include #ifdef BOOTLOADER #include #endif //virtual registers in the firmware to store persistent values static uint32_t fw_regs[8]; static void handle_udp_data_packet( struct socket_address src, struct socket_address dst, unsigned char *payload, int payload_len ){ //handle ICMP destination unreachable if (payload == NULL) switch(src.port){ case USRP2_UDP_RX_DSP0_PORT: //reset dsp to stop streaming sr_rx_ctrl0->clear = 1; fw_regs[U2_FW_REG_LOCK_TIME] = 0; //force an unlock return; case USRP2_UDP_RX_DSP1_PORT: //reset dsp to stop streaming sr_rx_ctrl1->clear = 1; fw_regs[U2_FW_REG_LOCK_TIME] = 0; //force an unlock return; case USRP2_UDP_TX_DSP0_PORT: //end async update packets per second sr_tx_ctrl->cyc_per_up = 0; fw_regs[U2_FW_REG_LOCK_TIME] = 0; //force an unlock return; default: return; } //handle an incoming UDP packet size_t which = 0; if (payload != 0) switch(dst.port){ case USRP2_UDP_RX_DSP0_PORT: which = 0; break; case USRP2_UDP_RX_DSP1_PORT: which = 2; break; case USRP2_UDP_TX_DSP0_PORT: which = 1; break; case USRP2_UDP_FIFO_CRTL_PORT: which = 3; break; default: return; } //assume the packet destination is the packet source //the arp cache lookup should never fail for this case const struct socket_address src_addr = dst; struct socket_address dst_addr = src; eth_mac_addr_t eth_mac_dst; arp_cache_lookup_mac(&dst_addr.addr, ð_mac_dst); //however, if this control packet has an alternative destination... if (payload_len >= sizeof(usrp2_stream_ctrl_t)){ //parse the destination ip addr and udp port from the payload const usrp2_stream_ctrl_t *stream_ctrl = (const usrp2_stream_ctrl_t *)payload; dst_addr.addr.addr = stream_ctrl->ip_addr; dst_addr.port = (uint16_t)stream_ctrl->udp_port; struct ip_addr ip_dest = dst_addr.addr; //are we in the subnet? if not use the gateway const uint32_t subnet_mask = get_subnet()->addr; const bool in_subnet = ((get_ip_addr()->addr & subnet_mask) == (ip_dest.addr & subnet_mask)); if (!in_subnet) ip_dest = *get_gateway(); //lookup the host ip address with ARP (this may fail) const bool ok = arp_cache_lookup_mac(&ip_dest, ð_mac_dst); if (!ok) net_common_send_arp_request(&ip_dest); const uint32_t result = (ok)? 0 : ~0; send_udp_pkt(dst.port, src, &result, sizeof(result)); } setup_framer(eth_mac_dst, *ethernet_mac_addr(), dst_addr, src_addr, which); } #define OTW_GPIO_BANK_TO_NUM(bank) \ (((bank) == USRP2_DIR_RX)? (GPIO_RX_BANK) : (GPIO_TX_BANK)) static void handle_udp_ctrl_packet( struct socket_address src, struct socket_address dst, unsigned char *payload, int payload_len ){ //printf("Got ctrl packet #words: %d\n", (int)payload_len); const usrp2_ctrl_data_t *ctrl_data_in = (usrp2_ctrl_data_t *)payload; uint32_t ctrl_data_in_id = ctrl_data_in->id; //ensure that the protocol versions match if (payload_len >= sizeof(uint32_t) && ctrl_data_in->proto_ver != USRP2_FW_COMPAT_NUM){ if (ctrl_data_in->proto_ver) printf("!Error in control packet handler: Expected compatibility number %d, but got %d\n", USRP2_FW_COMPAT_NUM, ctrl_data_in->proto_ver ); ctrl_data_in_id = USRP2_CTRL_ID_WAZZUP_BRO; } //ensure that this is not a short packet if (payload_len < sizeof(usrp2_ctrl_data_t)){ printf("!Error in control packet handler: Expected payload length %d, but got %d\n", (int)sizeof(usrp2_ctrl_data_t), payload_len ); ctrl_data_in_id = USRP2_CTRL_ID_HUH_WHAT; } //setup the output data usrp2_ctrl_data_t ctrl_data_out; ctrl_data_out.proto_ver = USRP2_FW_COMPAT_NUM; ctrl_data_out.id=USRP2_CTRL_ID_HUH_WHAT; ctrl_data_out.seq=ctrl_data_in->seq; //handle the data based on the id switch(ctrl_data_in_id){ /******************************************************************* * Addressing ******************************************************************/ case USRP2_CTRL_ID_WAZZUP_BRO: ctrl_data_out.id = USRP2_CTRL_ID_WAZZUP_DUDE; memcpy(&ctrl_data_out.data.ip_addr, get_ip_addr(), sizeof(struct ip_addr)); break; /******************************************************************* * SPI ******************************************************************/ case USRP2_CTRL_ID_TRANSACT_ME_SOME_SPI_BRO:{ //transact uint32_t result = spi_transact( (ctrl_data_in->data.spi_args.readback == 0)? SPI_TXONLY : SPI_TXRX, ctrl_data_in->data.spi_args.dev, //which device ctrl_data_in->data.spi_args.data, //32 bit data ctrl_data_in->data.spi_args.num_bits, //length in bits ((ctrl_data_in->data.spi_args.mosi_edge == USRP2_CLK_EDGE_RISE)? SPI_PUSH_FALL : SPI_PUSH_RISE) | ((ctrl_data_in->data.spi_args.miso_edge == USRP2_CLK_EDGE_RISE)? SPI_LATCH_RISE : SPI_LATCH_FALL) ); //load output ctrl_data_out.data.spi_args.data = result; ctrl_data_out.id = USRP2_CTRL_ID_OMG_TRANSACTED_SPI_DUDE; } break; /******************************************************************* * I2C ******************************************************************/ case USRP2_CTRL_ID_DO_AN_I2C_READ_FOR_ME_BRO:{ uint8_t num_bytes = ctrl_data_in->data.i2c_args.bytes; i2c_read( ctrl_data_in->data.i2c_args.addr, ctrl_data_out.data.i2c_args.data, num_bytes ); ctrl_data_out.id = USRP2_CTRL_ID_HERES_THE_I2C_DATA_DUDE; ctrl_data_out.data.i2c_args.bytes = num_bytes; } break; case USRP2_CTRL_ID_WRITE_THESE_I2C_VALUES_BRO:{ uint8_t num_bytes = ctrl_data_in->data.i2c_args.bytes; i2c_write( ctrl_data_in->data.i2c_args.addr, ctrl_data_in->data.i2c_args.data, num_bytes ); ctrl_data_out.id = USRP2_CTRL_ID_COOL_IM_DONE_I2C_WRITE_DUDE; ctrl_data_out.data.i2c_args.bytes = num_bytes; } break; /******************************************************************* * Peek and Poke Register ******************************************************************/ case USRP2_CTRL_ID_GET_THIS_REGISTER_FOR_ME_BRO: switch(ctrl_data_in->data.reg_args.action){ case USRP2_REG_ACTION_FPGA_PEEK32: ctrl_data_out.data.reg_args.data = *((uint32_t *) ctrl_data_in->data.reg_args.addr); break; case USRP2_REG_ACTION_FPGA_PEEK16: ctrl_data_out.data.reg_args.data = *((uint16_t *) ctrl_data_in->data.reg_args.addr); break; case USRP2_REG_ACTION_FPGA_POKE32: *((uint32_t *) ctrl_data_in->data.reg_args.addr) = (uint32_t)ctrl_data_in->data.reg_args.data; break; case USRP2_REG_ACTION_FPGA_POKE16: *((uint16_t *) ctrl_data_in->data.reg_args.addr) = (uint16_t)ctrl_data_in->data.reg_args.data; break; case USRP2_REG_ACTION_FW_PEEK32: ctrl_data_out.data.reg_args.data = fw_regs[(ctrl_data_in->data.reg_args.addr)]; break; case USRP2_REG_ACTION_FW_POKE32: fw_regs[(ctrl_data_in->data.reg_args.addr)] = ctrl_data_in->data.reg_args.data; break; } ctrl_data_out.id = USRP2_CTRL_ID_OMG_GOT_REGISTER_SO_BAD_DUDE; break; /******************************************************************* * Echo test ******************************************************************/ case USRP2_CTRL_ID_HOLLER_AT_ME_BRO: ctrl_data_out.data.echo_args.len = payload_len; ctrl_data_out.id = USRP2_CTRL_ID_HOLLER_BACK_DUDE; send_udp_pkt(USRP2_UDP_CTRL_PORT, src, &ctrl_data_out, ctrl_data_in->data.echo_args.len); return; default: ctrl_data_out.id = USRP2_CTRL_ID_HUH_WHAT; } send_udp_pkt(USRP2_UDP_CTRL_PORT, src, &ctrl_data_out, sizeof(ctrl_data_out)); } #include static void handle_inp_packet(uint32_t *buff, size_t num_lines){ //test if its an ip recovery packet typedef struct{ padded_eth_hdr_t eth_hdr; char code[4]; union { struct ip_addr ip_addr; } data; }recovery_packet_t; recovery_packet_t *recovery_packet = (recovery_packet_t *)buff; if (recovery_packet->eth_hdr.ethertype == 0xbeee && strncmp(recovery_packet->code, "addr", 4) == 0){ printf("Got ip recovery packet: "); print_ip_addr(&recovery_packet->data.ip_addr); newline(); set_ip_addr(&recovery_packet->data.ip_addr); return; } //pass it to the slow-path handler handle_eth_packet(buff, num_lines); } //------------------------------------------------------------------ /* * Called when eth phy state changes (w/ interrupts disabled) */ void link_changed_callback(int speed){ printf("\neth link changed: speed = %d\n", speed); if (speed != 0){ hal_set_leds(LED_RJ45, LED_RJ45); pkt_ctrl_set_routing_mode(PKT_CTRL_ROUTING_MODE_MASTER); send_gratuitous_arp(); } else{ hal_set_leds(0x0, LED_RJ45); pkt_ctrl_set_routing_mode(PKT_CTRL_ROUTING_MODE_SLAVE); } } int main(void) { u2_init(); arp_cache_init(); #ifdef BOOTLOADER putstr("\nUSRP N210 UDP bootloader\n"); #else putstr("\nTxRx-UHD-ZPU\n"); #endif printf("FPGA compatibility number: %d\n", USRP2_FPGA_COMPAT_NUM); printf("Firmware compatibility number: %d\n", USRP2_FW_COMPAT_NUM); //init readback for firmware minor version number fw_regs[U2_FW_REG_VER_MINOR] = USRP2_FW_VER_MINOR; #ifdef BOOTLOADER //load the production FPGA image or firmware if appropriate do_the_bootload_thing(); //if we get here we've fallen through to safe firmware eth_addrs_set_default(); #endif print_mac_addr(ethernet_mac_addr()); newline(); print_ip_addr(get_ip_addr()); newline(); //1) register the addresses into the network stack register_addrs(ethernet_mac_addr(), get_ip_addr()); pkt_ctrl_program_inspector(get_ip_addr(), USRP2_UDP_TX_DSP0_PORT); //2) register callbacks for udp ports we service init_udp_listeners(); register_udp_listener(USRP2_UDP_CTRL_PORT, handle_udp_ctrl_packet); register_udp_listener(USRP2_UDP_RX_DSP0_PORT, handle_udp_data_packet); register_udp_listener(USRP2_UDP_RX_DSP1_PORT, handle_udp_data_packet); register_udp_listener(USRP2_UDP_TX_DSP0_PORT, handle_udp_data_packet); register_udp_listener(USRP2_UDP_FIFO_CRTL_PORT, handle_udp_data_packet); #ifdef USRP2P register_udp_listener(USRP2_UDP_UPDATE_PORT, handle_udp_fw_update_packet); #endif udp_uart_init(USRP2_UDP_UART_BASE_PORT); //setup uart messaging //3) set the routing mode to slave to set defaults pkt_ctrl_set_routing_mode(PKT_CTRL_ROUTING_MODE_SLAVE); //4) setup ethernet hardware to bring the link up ethernet_register_link_changed_callback(link_changed_callback); ethernet_init(); while(true){ size_t num_lines; void *buff = pkt_ctrl_claim_incoming_buffer(&num_lines); if (buff != NULL){ handle_inp_packet((uint32_t *)buff, num_lines); pkt_ctrl_release_incoming_buffer(); } udp_uart_poll(); //uart message handling pic_interrupt_handler(); /* int pending = pic_regs->pending; // poll for under or overrun if (pending & PIC_UNDERRUN_INT){ pic_regs->pending = PIC_UNDERRUN_INT; // clear interrupt putchar('U'); } if (pending & PIC_OVERRUN_INT){ pic_regs->pending = PIC_OVERRUN_INT; // clear interrupt putchar('O'); } */ } } uhd-3.5.5/firmware/zpu/bin/000077500000000000000000000000001224274632000155105ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/bin/bin_to_mif.py000077500000000000000000000015111224274632000201700ustar00rootroot00000000000000#!/usr/bin/env python import struct import sys hextab = ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111') def w_to_binary_ascii(w): return ''.join([hextab[(w >> 4*i) & 0xf] for i in range(7,-1,-1)]) def bin_to_mif(bin_input_file, mif_output_file): ifile = open(bin_input_file, 'rb') ofile = open(mif_output_file, 'w') idata = ifile.read() fmt = ">%dI" % ((len(idata) / 4),) words = struct.unpack(fmt, idata) for w in words: ofile.write(w_to_binary_ascii(w)) ofile.write('\n') if __name__ == '__main__': if len(sys.argv) != 3: sys.stderr.write("usage: bin_to_mif bin_input_file mif_output_file\n") raise SystemExit, 1 bin_to_mif(sys.argv[1], sys.argv[2]) uhd-3.5.5/firmware/zpu/bin/bin_to_ram_macro_init.py000077500000000000000000000024421224274632000224040ustar00rootroot00000000000000#!/usr/bin/env python import struct import sys BOOTRAM_SIZE = 16384 def do_8_words(ofile, which_ram, row, words): ofile.write("defparam bootram.RAM%d.INIT_%02X=256'h" % (which_ram, row)) ofile.write("%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x;\n" % ( words[7], words[6], words[5], words[4], words[3], words[2], words[1], words[0])) def bin_to_ram_macro_init(bin_input_file, ram_init_output_file): ifile = open(bin_input_file, 'rb') ofile = open(ram_init_output_file, 'w') idata = ifile.read() idata_words = len(idata) / 4 fmt = ">%dI"%idata_words words = struct.unpack(fmt, idata[:idata_words*4]) # pad to a multiple of 8 words r = len(words) % 8 if r != 0: words += (8 - r) * (0,) if len(words) > (BOOTRAM_SIZE / 4): sys.stderr.write("bin_to_macro_init: error: input file %s is > %dKiB\n" % (bin_input_file,BOOTRAM_SIZE)) sys.exit(1) for q in range(0, BOOTRAM_SIZE/4, 512): for i in range(q, min(q+512, len(words)), 8): do_8_words(ofile, int(q / 512), (i/8) % 64, words[i:i+8]) if __name__ == '__main__': if len(sys.argv) != 3: sys.stderr.write("usage: bin_to_ram_macro_init bin_input_file ram_init_output_file\n") sys.exit(1) bin_to_ram_macro_init(sys.argv[1], sys.argv[2]) uhd-3.5.5/firmware/zpu/bin/divisors.py000077500000000000000000000014051224274632000177270ustar00rootroot00000000000000#!/usr/bin/env python speeds = (9600, 19200, 38400, 57600, 115200, 230400) master_clk = 100e6 wb_clk = master_clk / 2 def divisor(speed): div0 = wb_clk // (speed * 16) div1 = div0 + 1 actual0 = actual_speed(div0) actual1 = actual_speed(div1) if abs(actual0 - speed) < abs(actual1 - speed): return div0 else: return div1 def actual_speed(divisor): return (wb_clk // divisor) / 16 def doit(speed): div = divisor(speed) actual = actual_speed(div) rel_error = (actual - speed) / speed print "target: %6d divisor: %6d actual: %11.4f %6.3f%%" % (speed, div, actual, rel_error*100) def main(): print "wb_clk = %f" % (wb_clk,) for s in speeds: doit(s) if __name__ == '__main__': main() uhd-3.5.5/firmware/zpu/bin/elf_to_sbf000077500000000000000000000077611224274632000175530ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2009 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import sys import struct from optparse import OptionParser from pprint import pprint import sbf # see /usr/include/elf.h for the various magic values _ehdr_fmt = ">16sHH5I6H" _ehdr_fmt_size = struct.calcsize(_ehdr_fmt) _phdr_fmt = ">8I" _phdr_fmt_size = struct.calcsize(_phdr_fmt) class elf32_ehdr(object): def __init__(self, s): (self.ident, self.type, self.machine, self.version, self.entry, self.phoff, self.shoff, self.flags, self.ehsize, self.phentsize, self.phnum, self.shentsize, self.shnum, self.shstrndx) = struct.unpack(_ehdr_fmt, s) class elf32_phdr(object): def __init__(self, s): (self.type, self.offset, self.vaddr, self.paddr, self.filesz, self.memsz, self.flags, self.align) = struct.unpack(_phdr_fmt, s) def __repr__(self): return "" % ( p_type_str(self.type), self.offset, self.paddr, self.filesz) def p_type_str(t): if t <= 8: return ('NULL', 'LOAD', 'DYNAMIC', 'INTERP', 'NOTE', 'SHLIB', 'PHDR', 'TLS', 'NUM')[t] return "0x%x" % (t,) def _get_ehdr(f): if len(f) < _ehdr_fmt_size: return False ehdr = elf32_ehdr(f[0:_ehdr_fmt_size]) return ehdr def elf32_big_endian_exec_p(f): ehdr = _get_ehdr(f) if not ehdr: return False #pprint(ehdr, sys.stderr) e_ident = ehdr.ident if not e_ident.startswith('\177ELF'): return False if (ord(e_ident[4]) != 1 # EI_CLASS == CLASS32 or ord(e_ident[5]) != 2 # EI_DATA == DATA2MSB or ord(e_ident[6]) != 1 # EI_VERSION == EV_CURRENT ): return False if ehdr.type != 2: # e_type == ET_EXEC return False return True # return (entry, (phdr, ...)) def get_elf32_prog_headers(f): ehdr = _get_ehdr(f) entry = ehdr.entry phoff = ehdr.phoff phentsize = ehdr.phentsize phnum = ehdr.phnum def extract(i): start = phoff + i * phentsize end = start + phentsize return f[start:end] return (entry, [elf32_phdr(extract(i)) for i in range(phnum)]) def main(): usage = "%prog: [options] elf_file" parser = OptionParser() parser.add_option("-o", "--output", default=None, help="specify output filename [default=stdout]") (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() sys.exit(1) elf_file = open(args[0], 'rb') elf_contents = elf_file.read() if not elf32_big_endian_exec_p(elf_contents): sys.stderr.write("%s: not a big-endian 32-bit ELF executable\n" % (args[0],)) sys.exit(1) if options.output is None: sbf_file = sys.stdout else: sbf_file = open(options.output, 'wb') (entry, phdrs) = get_elf32_prog_headers(elf_contents) #pprint(phdrs, sys.stderr) def phdr_to_sec_desc(phdr): target_addr = phdr.paddr data = elf_contents[phdr.offset:phdr.offset+phdr.filesz] #print >>sys.stderr, "pdhr_to_sec_desc:", (target_addr, data) return sbf.sec_desc(target_addr, data) sections = map(phdr_to_sec_desc, phdrs) # pprint(sections, sys.stderr) sbf.write_sbf(sbf_file, sbf.header(entry, sections)) if __name__ == '__main__': main() uhd-3.5.5/firmware/zpu/bin/sbf.py000077500000000000000000000103671224274632000166460ustar00rootroot00000000000000# # Copyright 2009 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # _SBF_MAGIC = 'SBF!' _SBF_DONT_EXECUTE = 0x1 _SBF_MAX_SECTIONS = 14 _SBF_HEADER_LEN = 128 import struct import sys from pprint import pprint def dump_data(f, offset, data): L = len(data) // 4 for i in range(L): f.write('%08x: %08x\n' % (offset + 4 * i, struct.unpack('>I', data[4*i:4*(i+1)])[0])) remainder = len(data) - L * 4 if remainder != 0: f.write('%08x: ' % (offset + L*4,)) i = 0 while i < remainder: f.write('%02x' % ((ord(data[L*4 + i]),))) i += 1 f.write('\n') class sec_desc(object): def __init__(self, target_addr, data): self.target_addr = target_addr self.data = data def __repr__(self): #print >>sys.stderr, "target_addr:", self.target_addr #print >>sys.stderr, "data:", self.data return "" % ( self.target_addr, len(self.data)) class header(object): def __init__(self, entry, sections): self.entry = entry self.section = sections def dump(self, f): if self.entry == _SBF_DONT_EXECUTE: f.write("Entry: DONT_EXECUTE\n") else: f.write("Entry: 0x%x\n" % (self.entry,)) for i in range(len(self.section)): s = self.section[i] f.write("Section[%d]: target_addr = 0x%x length = %d\n" % (i, s.target_addr, len(s.data))) dump_data(f, s.target_addr, s.data) # # Returns an iterator. Each yield returns (target_addr, data) # def iterator(self, max_piece=512): for s in self.section: offset = 0 L = len(s.data) while offset < L: n = min(max_piece, L - offset) yield (s.target_addr + offset, s.data[offset:offset+n]) offset += n def read_sbf(input_file): """Parse an SBF file""" f = input_file.read(_SBF_HEADER_LEN) #if len(f) < _SBF_HEADER_LEN or not f.startswith(_SBF_MAGIC): #raise ValueError, '%s: not an SBF file' % (input_file.name,) def extract(i): start = 16+8*i stop = start+8 return struct.unpack('>2I', f[start:stop]) def get_data(ss): L = ss[1] s = input_file.read(L) #if len(s) != L: #raise ValueError, '%s: file is too short' % (input_file.name(),) return s (magic, entry, nsections, reserved) = struct.unpack('>4s3I', f[0:16]) assert nsections <= _SBF_MAX_SECTIONS descs = [extract(i) for i in range(nsections)] #pprint(descs, sys.stderr) data = map(get_data, descs) secs = map(lambda ss, data: sec_desc(ss[0], data), descs, data) return header(entry, secs) def write_sbf(output_file, sbf_header): assert(len(sbf_header.section) <= _SBF_MAX_SECTIONS) sbf_header.nsections = len(sbf_header.section) f = output_file # write the file header f.write(struct.pack('>4s3I', _SBF_MAGIC, sbf_header.entry, sbf_header.nsections, 0)) # write the section headers for i in range(sbf_header.nsections): f.write(struct.pack('>2I', sbf_header.section[i].target_addr, len(sbf_header.section[i].data))) for i in range(_SBF_MAX_SECTIONS - sbf_header.nsections): f.write(struct.pack('>2I', 0, 0)) # write the section data for i in range(sbf_header.nsections): f.write(sbf_header.section[i].data) return True uhd-3.5.5/firmware/zpu/bin/serial_loader000077500000000000000000000235431224274632000202520ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2009 Free Software Foundation, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import termios import tty import os import sys import threading import Queue from optparse import OptionParser import time import sbf GDB_ESCAPE = chr(0x7d) # Indexes for termios list. IFLAG = 0 OFLAG = 1 CFLAG = 2 LFLAG = 3 ISPEED = 4 OSPEED = 5 CC = 6 class terminal(object): def __init__(self, device, speed_bits): fd = os.open(device, os.O_RDWR) if not os.isatty(fd): raise ValueError(device + " is not a tty") self.read_file = os.fdopen(fd, "rb", 0) self.write_file = os.fdopen(os.dup(fd), "wb", 0) self.old_attrs = termios.tcgetattr(self.write_file.fileno()) #print "old_attrs: ", self.old_attrs attrs = list(self.old_attrs) # copy of attributes attrs[ISPEED] = speed_bits # set input and output speed attrs[OSPEED] = speed_bits termios.tcsetattr(self.write_file.fileno(), termios.TCSAFLUSH, attrs) tty.setraw(self.write_file.fileno()) # enable raw mode attrs = termios.tcgetattr(self.write_file.fileno()) attrs[CC][termios.VMIN] = 1 # minimim of 1 char attrs[CC][termios.VTIME] = 1 # wait no longer than 1/10 termios.tcsetattr(self.write_file.fileno(), termios.TCSAFLUSH, attrs) def __del__(self): termios.tcsetattr(self.write_file.fileno(), termios.TCSAFLUSH, self.old_attrs) self.read_file.close() self.write_file.close() def read(self, n): """Read at most n bytes from tty""" return self.read_file.read(n) def write(self, str): """Write str to tty.""" return self.write_file.write(str) def hexnibble(i): return "0123456789abcdef"[i & 0xf] def build_pkt(payload): s = ['$'] checksum = 0 for p in payload: if p in ('$', '#', GDB_ESCAPE): s.append(GDB_ESCAPE) s.append(p) checksum += ord(p) checksum &= 0xff s.append('#') s.append(hexnibble(checksum >> 4)) s.append(hexnibble(checksum)) return ''.join(s) def build_memory_read_pkt(addr, len): return build_pkt(('m%x,%x' % (addr, len))) def build_memory_write_hex_pkt(addr, s): hexdata = ''.join(["%02x" % (ord(c),) for c in s]) return build_pkt(('M%x,%x:' % (addr, len(s))) + hexdata) def build_memory_write_pkt(addr, s): return build_pkt(('X%x,%x:' % (addr, len(s))) + s) def build_goto_pkt(addr): return build_pkt(('c%x' % (addr,))) def get_packet(f): """Return a valid packet, or None on EOF or timeout""" LOOKING_FOR_DOLLAR = 0 LOOKING_FOR_HASH = 1 CSUM1 = 2 CSUM2 = 3 fd = f.fileno() state = LOOKING_FOR_DOLLAR buf = [] while True: ch = os.read(fd, 1) sys.stdout.write(ch) if len(ch) == 0: print("Returning None") return(None) if state == LOOKING_FOR_DOLLAR: if ch == '$': buf = [] state = LOOKING_FOR_HASH elif ch == '#': state = LOOKING_FOR_DOLLAR elif state == LOOKING_FOR_HASH: if ch == '$': state = LOOKING_FOR_DOLLAR elif ch == '#': state = CSUM1 else: if ch == GDB_ESCAPE: ch = getc() buf.append(ch) elif state == CSUM1: chksum1 = ch state = CSUM2 elif state == CSUM2: chksum2 = ch r = ''.join(buf) if chksum1 == '.' and chksum2 == '.': return r expected_checksum = int(chksum1 + chksum2, 16) checksum = 0 for c in buf: checksum += ord(c) checksum &= 0xff if checksum == expected_checksum: return r state = LOOKING_FOR_DOLLAR else: raise ValueError( "Invalid state") class packet_reader_thread(threading.Thread): def __init__(self, tty_in, q): threading.Thread.__init__(self) self.setDaemon(1) self.tty_in = tty_in self.q = q self._keep_running = True self.start() def run(self): while self._keep_running == True: p = get_packet(self.tty_in) if p is not None: self.q.put(('pkt', p)) def _make_tr_table(): table = [] for c in range(256): if c < ord(' ') or c > ord('~'): table.append('.') else: table.append(chr(c)) return ''.join(table) class controller(object): def __init__(self, tty): self.tty = tty self.q = Queue.Queue(0) self.timers = {} self.next_tid = 1 self.current_tid = 0 self.ntimeouts = 0 self.packet_reader = packet_reader_thread(tty.read_file, self.q) self.state = None self.debug = False self.tt = _make_tr_table() self.done = False self.addr = None self.bits = None def shutdown(self): self.packet_reader._keep_running = False def start_timeout(self, timeout_in_secs): def callback(tid): if self.timers.has_key(tid): del self.timers[tid] self.q.put(('timeout', tid)) self.next_tid += 1 tid = self.next_tid timer = threading.Timer(timeout_in_secs, callback, (tid,)) self.timers[tid] = timer timer.start() return tid def cancel_timeout(self, tid): if self.timers.has_key(tid): self.timers[tid].cancel() del self.timers[tid] def send_packet(self, pkt): if self.debug: if len(pkt) > 64: s = pkt[0:64] + '...' else: s = pkt sys.stdout.write('-> ' + s.translate(self.tt) + '\n') self.tty.write(pkt); def send_packet_start_timeout(self, pkt, secs): self.send_packet(pkt) self.current_tid = self.start_timeout(secs) def upload_code(self, sbf): MAX_PIECE = 512 # biggest piece to send MWRITE_TIMEOUT = 0.1 IDLE = 0 WAIT_FOR_ACK = 1 UPLOAD_DONE = 2 DONE = 3 FAILED = 4 self.done = False it = sbf.iterator(MAX_PIECE) entry_addr = sbf.entry def get_next_bits(): try: (self.addr, self.bits) = it.next() except StopIteration: self.done = True def is_done(): return self.done def send_piece(): pkt = build_memory_write_pkt(self.addr, self.bits) #pkt = build_memory_write_hex_pkt(self.addr, self.bits) self.send_packet_start_timeout(pkt, MWRITE_TIMEOUT) state = WAIT_FOR_ACK def advance(): get_next_bits() if is_done(): self.state = DONE self.send_packet(build_goto_pkt(entry_addr)) else: self.ntimeouts = 0 send_piece() get_next_bits() if is_done(): # empty file return True send_piece() # initial transition while 1: (event, value) = self.q.get() if event == 'timeout' and value == self.current_tid: self.ntimeouts += 1 if self.ntimeouts >= 5: return False # say we failed send_piece() # resend elif event == 'pkt': if value == 'OK': self.cancel_timeout(self.current_tid) advance() if self.state == DONE: return True else: print("Error returned from firmware: " + value) return False else: print("Unknown event:", (event, value)) def main(): usage="%prog: [options] filename" parser = OptionParser(usage=usage) parser.add_option("-t", "--tty", type="string", default="/dev/ttyS0", help="select serial port [default=%default]") (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() raise SystemExit(1) filename = args[0] f = open(filename, "rb") try: # Try to open the file as an SBF file sbf_header = sbf.read_sbf(f) except: # If that fails, build an SBF from the binary, assuming default # load address and entry point f.seek(0) t = f.read() if t.startswith('\177ELF'): sys.stderr.write("Can't load an ELF file. Please use an SBF file instead.\n") raise SystemExit( 1) sbf_header = sbf.header(0x8000, [sbf.sec_desc(0x8000, t)]) tty = terminal(options.tty, termios.B115200) ctrl = controller(tty) ok = ctrl.upload_code(sbf_header) if ok: print("OK") try: raw_input("Press Enter to exit: ") except KeyboardInterrupt: pass ctrl.shutdown() time.sleep(0.2) else: print("Upload failed") ctrl.shutdown() if __name__ == "__main__": main() uhd-3.5.5/firmware/zpu/bin/uart_ihex_flash_loader.py000077500000000000000000000123451224274632000225650ustar00rootroot00000000000000#!/usr/bin/python import serial from optparse import OptionParser import os, sys #TODO: pull everything but parser out of main() and put it in a separate function we can call from another script. lets us automate loading RAM+FLASH to produce a fully-loaded image. #TODO: make it fail gracefully -- if it gets a NOK or times out, do at least one retry. #TODO: put hooks in (eventually) to allow verifying a firmware image so the user can more safely update the "safe" image #TODO: how about a progress indicator? FPGA images take FOREVER. you can use wc -l to get the number of lines, or do it with file i/o. def main(): usage="%prog: [options] filename" parser = OptionParser(usage=usage) parser.add_option("-t", "--tty", type="string", default="/dev/ttyUSB0", help="select serial port [default=%default]") parser.add_option("-b", "--baudrate", type=int, default=115200, help="set baudrate [default=%default]") parser.add_option("-F", "--write-safe-firmware", action="store_const", const=1, dest="image", help="write to safe firmware image") parser.add_option("-f", "--write-production-firmware", action="store_const", const=2, dest="image", help="write to production firmware image") parser.add_option("-P", "--write-safe-fpga", action="store_const", const=3, dest="image", help="write to safe FPGA image") parser.add_option("-p", "--write-production-fpga", action="store_const", const=4, dest="image", help="write to production FPGA image") (options, args) = parser.parse_args() if(options.image is None): print("At least one of -f, -F, -p, -P must be specified.\n") parser.print_help() raise SystemExit(1) if len(args) != 1: parser.print_help() raise SystemExit(1) if(options.image == 3): print "Are you *really* sure you want to write to the failsafe FPGA image? If you mess this up your USRP2+ will become a brick. Press 'y' to continue, any other key to abort." if(raw_input().rstrip() is not "y"): print "Good choice." raise SystemExit(0) elif(options.image == 1): print "Are you *really* sure you want to write to the failsafe firmware image? If you mess this up your USRP2+ will only be able to be reprogrammed via the UART RAM loader.\nPress 'y' to continue, any other key to abort." if(raw_input().rstrip() is not "y"): print "Good choice." raise SystemExit(0) filename = args[0] f = open(filename, "r") #now we start doing things... if(os.path.exists(options.tty) is False): sys.stderr.write("No serial port found at %s\n" % options.tty) raise SystemExit(1) try: ser = serial.Serial(port=options.tty, timeout=1, baudrate=options.baudrate, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, rtscts=0, xonxoff=0) except serial.SerialException: sys.stderr.write("Unable to open serial port\n") raise SystemExit(1) ser.open() #test to see if a valid USRP2+ in flash load mode is connected ser.write("garbage\n") ser.readline() ser.write("!SECTORSIZE\n") reply = ser.readline().rstrip() if("NOK" in reply): sys.stderr.write("Error writing to USRP2+. Try again.\n") raise SystemExit(1) elif("OK" in reply): sectorsize = int(reply[3:5], 16) print("USRP2+ found with sector size %i. Erasing old image." % 2**sectorsize) else: sys.stderr.write("Invalid response or no USRP2+ connected.\n") raise SystemExit(1) if(options.image == 1): sectors = range(127, 128) runcmd = "!RUNSFD\n" elif(options.image == 2): sectors = range(64, 65) runcmd = "!RUNPFD\n" elif(options.image == 3): sectors = range(0,32) runcmd = "!RUNSFPGA\n" elif(options.image == 4): sectors = range(32,64) runcmd = "!RUNPFPGA\n" writeaddr = sectors[0] << sectorsize if(options.image < 3): writeaddr -= 0x8000 #i know this is awkward, but we subtract 0x8000 from the address for firmware loads. the reason we do this is that the IHX files are located at 0x8000 (RAM_BASE), and #doing this here allows us to use the same IHX files for RAM load as for Flash load, without relocating in objcopy or relinking with another ld script. #this limits us to writing above 32K for our firmware images. since the safe FPGA image located at 0x00000000 takes up 2MB of space this isn't really a worry. #FPGA images (.mcs) always start at 0x00000000 so they don't need this relocation. for sector in sectors: print "Erasing sector %i" % sector ser.write("!ERASE %i\n" % sector) reply = ser.readline() if("NOK" in reply): sys.stderr.write("Error erasing sector %i" % sector) raise SystemExit(1) print "Setting start address to %i" % writeaddr ser.write("!SETADDR %i\n" % writeaddr) if("NOK" in reply): sys.stderr.write("Error setting address\n") raise SystemExit(1) else: print reply for line in f: ser.write(line.rstrip()+'\n') reply = ser.readline() if("NOK" in reply): #TODO: simplify this logic, use (reply.rstrip() is "NOK") print("Received NOK reply during data write") raise SystemExit(1) elif("DONE" in reply): print("Finished writing program. Loading...\n") ser.write(runcmd) elif("OK" not in reply): print("Received invalid reply %s during data write" % reply) raise SystemExit(1) else: print reply.rstrip() + '\t' + line.rstrip() print ser.readline() if __name__ == '__main__': main() uhd-3.5.5/firmware/zpu/bin/uart_ihex_ram_loader.py000077500000000000000000000036701224274632000222500ustar00rootroot00000000000000#!/usr/bin/python import serial from optparse import OptionParser import os, sys def main(): usage="%prog: [options] filename" parser = OptionParser(usage=usage) parser.add_option("-t", "--tty", type="string", default="/dev/ttyUSB0", help="select serial port [default=%default]") parser.add_option("-b", "--baudrate", type=int, default=115200, help="set baudrate [default=%default]") (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() raise SystemExit(1) filename = args[0] f = open(filename, "r") #all we have to do is load the IHX file and attempt to spit it out to the serial port. if(os.path.exists(options.tty) is False): sys.stderr.write("No serial port found at %s\n" % options.tty) raise SystemExit(1) try: ser = serial.Serial(port=options.tty, timeout=1, baudrate=options.baudrate, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, rtscts=0, xonxoff=0) except serial.SerialException: sys.stderr.write("Unable to open serial port\n") raise SystemExit(1) ser.open() #test to see if a valid USRP2+ in RAM load mode is connected ser.write("WOOOOO\n"); reply = ser.readline() if("NOK" not in reply): sys.stderr.write("Valid USRP2+ not connected or no response received\n") raise SystemExit(1) else: print("USRP2+ found.") for line in f: ser.write(line.rstrip() + '\n') reply = ser.readline() if("NOK" in reply): #blocks to wait for response print("Received NOK reply from USRP2+") raise SystemExit(1) elif("OK" not in reply): print("Received invalid reply!") raise SystemExit(1) # else: # print("OK received") print "USRP2+ RAM programmed.\nLoading program." #at this point it should have sent the end line of the file, which starts the program! #we'll just act like a dumb terminal now # ser.timeout = 0 # try: # while 1: # print ser.readline() # except KeyboardInterrupt: # raise SystemExit(0) if __name__ == '__main__': main() uhd-3.5.5/firmware/zpu/lib/000077500000000000000000000000001224274632000155065ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lib/CMakeLists.txt000066400000000000000000000034521224274632000202520ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## SET(COMMON_SRCS ${CMAKE_SOURCE_DIR}/lib/u2_init.c ${CMAKE_SOURCE_DIR}/lib/abort.c ${CMAKE_SOURCE_DIR}/lib/ad9510.c ${CMAKE_SOURCE_DIR}/lib/clocks.c ${CMAKE_SOURCE_DIR}/lib/eeprom.c ${CMAKE_SOURCE_DIR}/lib/eth_addrs.c ${CMAKE_SOURCE_DIR}/lib/eth_mac.c ${CMAKE_SOURCE_DIR}/lib/_exit.c ${CMAKE_SOURCE_DIR}/lib/exit.c ${CMAKE_SOURCE_DIR}/lib/hal_io.c ${CMAKE_SOURCE_DIR}/lib/hal_uart.c ${CMAKE_SOURCE_DIR}/lib/i2c.c ${CMAKE_SOURCE_DIR}/lib/mdelay.c ${CMAKE_SOURCE_DIR}/lib/memcpy_wa.c ${CMAKE_SOURCE_DIR}/lib/memset_wa.c ${CMAKE_SOURCE_DIR}/lib/nonstdio.c ${CMAKE_SOURCE_DIR}/lib/pic.c ${CMAKE_SOURCE_DIR}/lib/pkt_ctrl.c ${CMAKE_SOURCE_DIR}/lib/print_addrs.c ${CMAKE_SOURCE_DIR}/lib/print_rmon_regs.c ${CMAKE_SOURCE_DIR}/lib/print_buffer.c ${CMAKE_SOURCE_DIR}/lib/printf.c ${CMAKE_SOURCE_DIR}/lib/ihex.c ${CMAKE_SOURCE_DIR}/lib/spi.c ${CMAKE_SOURCE_DIR}/lib/net_common.c ${CMAKE_SOURCE_DIR}/lib/arp_cache.c ${CMAKE_SOURCE_DIR}/lib/banal.c ${CMAKE_SOURCE_DIR}/lib/udp_uart.c ) uhd-3.5.5/firmware/zpu/lib/_exit.c000066400000000000000000000014721224274632000167660ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* * Stub so we can compile using 3.4 based mb-gcc */ void _exit(int status) { while (1) ; } uhd-3.5.5/firmware/zpu/lib/abort.c000066400000000000000000000017001224274632000167570ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include extern void _exit(int status); void abort(void) { putstr("\n\nabort\n"); // FIXME loop blinking leds _exit(-1); } uhd-3.5.5/firmware/zpu/lib/ad9510.c000066400000000000000000000023731224274632000165620ustar00rootroot00000000000000/* * Copyright 2012 Ettus Research LLC * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ad9510.h" #include "spi.h" #include #define RD (1 << 15) #define WR (0 << 15) void ad9510_write_reg(int regno, uint8_t value) { uint32_t inst = WR | (regno & 0xff); uint32_t v = (inst << 8) | (value & 0xff); spi_transact(SPI_TXONLY, SPI_SS_AD9510, v, 24, SPI_PUSH_FALL); } int ad9510_read_reg(int regno) { uint32_t inst = RD | (regno & 0xff); uint32_t v = (inst << 8) | 0; uint32_t r = spi_transact(SPI_TXRX, SPI_SS_AD9510, v, 24, SPI_PUSH_FALL | SPI_LATCH_FALL); return r & 0xff; } uhd-3.5.5/firmware/zpu/lib/ad9510.h000066400000000000000000000017241224274632000165660ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_AD9510_H #define INCLUDED_AD9510_H #include /* * Analog Device AD9510 1.2 GHz Clock Distribution IC w/ PLL */ void ad9510_write_reg(int regno, uint8_t value); int ad9510_read_reg(int regno); #endif /* INCLUDED_AD9510_H */ uhd-3.5.5/firmware/zpu/lib/arp_cache.c000066400000000000000000000035131224274632000175610ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include #endif #include "arp_cache.h" #include typedef struct { struct ip_addr ip; eth_mac_addr_t mac; } arp_cache_t; #define NENTRIES 8 // power-of-2 static size_t nentries; static size_t victim; static arp_cache_t cache[NENTRIES]; void arp_cache_init(void) { nentries = 0; victim = 0; } // returns non-negative index if found, else -1 static int arp_cache_lookup(const struct ip_addr *ip) { int i; for (i = 0; i < nentries; i++) if (cache[i].ip.addr == ip->addr) return i; return -1; } static int arp_cache_alloc(void) { if (nentries < NENTRIES) return nentries++; int i = victim; victim = (victim + 1) % NENTRIES; return i; } void arp_cache_update(const struct ip_addr *ip, const eth_mac_addr_t *mac) { int i = arp_cache_lookup(ip); if (i < 0){ i = arp_cache_alloc(); cache[i].ip = *ip; cache[i].mac = *mac; } else { cache[i].mac = *mac; } } bool arp_cache_lookup_mac(const struct ip_addr *ip, eth_mac_addr_t *mac) { int i = arp_cache_lookup(ip); if (i < 0) return false; *mac = cache[i].mac; return true; } uhd-3.5.5/firmware/zpu/lib/arp_cache.h000066400000000000000000000020701224274632000175630ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_ARP_CACHE_H #define INCLUDED_ARP_CACHE_H #include #include #include void arp_cache_init(void); void arp_cache_update(const struct ip_addr *ip, const eth_mac_addr_t *mac); bool arp_cache_lookup_mac(const struct ip_addr *ip, eth_mac_addr_t *mac); #endif /* INCLUDED_ARP_CACHE_H */ uhd-3.5.5/firmware/zpu/lib/banal.c000066400000000000000000000016731224274632000167360ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include uint32_t get_uint32(const unsigned char *s) { return (s[0] << 24) | (s[1] << 16) | (s[2] << 8) | s[3]; } uint64_t get_uint64(const unsigned char *s) { return (((uint64_t)get_uint32(s)) << 32) | get_uint32(s+4); } uhd-3.5.5/firmware/zpu/lib/banal.h000066400000000000000000000030631224274632000167360ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_BANAL_H #define INCLUDED_BANAL_H #include #define dimof(x) (sizeof(x)/sizeof(x[0])) //-------------- unsigned get_int 8, 16, 32, 64 --------------// static inline uint8_t get_uint8(const unsigned char *s) { return s[0]; } static inline uint16_t get_uint16(const unsigned char *s) { return (s[0] << 8) | s[1]; } uint32_t get_uint32(const unsigned char *s); uint64_t get_uint64(const unsigned char *s); //--------------- signed get_int 8, 16, 32, 64 --------------// static inline int8_t get_int8(const unsigned char *s) { return get_uint8(s); } static inline int16_t get_int16(const unsigned char *s) { return get_uint16(s); } static inline int32_t get_int32(const unsigned char *s) { return get_uint32(s); } static inline int64_t get_int64(const unsigned char *s) { return get_uint64(s); } #endif /* INCLUDED_BANAL_H */ uhd-3.5.5/firmware/zpu/lib/clocks.c000066400000000000000000000057651224274632000171450ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #include #include "memory_map.h" #include "ad9510.h" #include "spi.h" /*! * \brief Lock Detect -- Return True if our PLL is locked */ bool clocks_lock_detect(); /*! * \brief Enable or disable fpga clock. Disabling would wedge and require a power cycle. */ void clocks_enable_fpga_clk(bool enable, int divisor); void clocks_init(void) { // Set up basic clocking functions in AD9510 ad9510_write_reg(0x45, 0x01); //enable the 100MHz clock output to the FPGA for 50MHz CPU clock clocks_enable_fpga_clk(true, 1); //! Cannot SPI wait since SPI is on DSP clock //! because DSP clock goes away until DCM reset. //! However, spi is quick, the cpu is slow, its already ready... //spi_wait(); //wait for the clock to stabilize while(!clocks_lock_detect()); //issue a reset to the DCM so it locks up to the new freq output_regs->clk_ctrl |= CLK_RESET; } bool clocks_lock_detect() { return (pic_regs->pending & PIC_CLKSTATUS); } int inline clocks_gen_div(int divisor) { int L,H; L = (divisor>>1)-1; H = divisor-L-2; return (L<<4)|H; } #define CLOCK_OUT_EN 0x08 #define CLOCK_OUT_DIS_CMOS 0x01 #define CLOCK_OUT_DIS_PECL 0x02 #define CLOCK_DIV_DIS 0x80 #define CLOCK_DIV_EN 0x00 #define CLOCK_MODE_PECL 1 #define CLOCK_MODE_LVDS 2 #define CLOCK_MODE_CMOS 3 //CHANGED: set to PECL for default behavior void clocks_enable_XXX_clk(bool enable, int divisor, int reg_en, int reg_div, int mode) { int enable_word, div_word, div_en_word; switch(mode) { case CLOCK_MODE_LVDS : enable_word = enable ? 0x02 : 0x03; break; case CLOCK_MODE_CMOS : enable_word = enable ? 0x08 : 0x09; break; case CLOCK_MODE_PECL : default: enable_word = enable ? 0x08 : 0x0A; break; } if(enable && (divisor>1)) { div_word = clocks_gen_div(divisor); div_en_word = CLOCK_DIV_EN; } else { div_word = 0; div_en_word = CLOCK_DIV_DIS; } ad9510_write_reg(reg_en,enable_word); // Output en/dis ad9510_write_reg(reg_div,div_word); // Set divisor ad9510_write_reg(reg_div+1,div_en_word); // Enable or Bypass Divider ad9510_write_reg(0x5A, 0x01); // Update Regs } // Clock 1 void clocks_enable_fpga_clk(bool enable, int divisor) { clocks_enable_XXX_clk(enable,divisor,0x3D,0x4A,CLOCK_MODE_PECL); } uhd-3.5.5/firmware/zpu/lib/clocks.h000066400000000000000000000017571224274632000171470ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_CLOCKS_H #define INCLUDED_CLOCKS_H /*! * One time call to initialize the master clock to a reasonable state. * We come out of here using our free running 100MHz oscillator. */ void clocks_init(void); #endif /* INCLUDED_CLOCKS_H */ uhd-3.5.5/firmware/zpu/lib/compiler.h000066400000000000000000000016471224274632000175010ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009, 2010 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_COMPILER_H #define INCLUDED_COMPILER_H // FIXME gcc specific. #define _AL4 __attribute__((aligned (4))) #define FORCE_INLINE inline __attribute__((always_inline)) #endif /* INCLUDED_COMPILER_H */ uhd-3.5.5/firmware/zpu/lib/eeprom.c000066400000000000000000000044101224274632000171400ustar00rootroot00000000000000/* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "i2c.h" #include "mdelay.h" #include "usrp2/fw_common.h" static const int EEPROM_PAGESIZE = 16; bool find_safe_booted_flag(void) { unsigned char flag_byte; eeprom_read(USRP2_I2C_ADDR_MBOARD, USRP2_EE_MBOARD_BOOTLOADER_FLAGS, &flag_byte, 1); return (flag_byte == 0x5E); } void set_safe_booted_flag(bool flag) { unsigned char flag_byte = flag ? 0x5E : 0xDC; eeprom_write(USRP2_I2C_ADDR_MBOARD, USRP2_EE_MBOARD_BOOTLOADER_FLAGS, &flag_byte, 1); } bool eeprom_write (int i2c_addr, int eeprom_offset, const void *buf, int len) { unsigned char cmd[2]; const unsigned char *p = (unsigned char *) buf; // The simplest thing that could possibly work: // all writes are single byte writes. // // We could speed this up using the page write feature, // but we write so infrequently, why bother... while (len-- > 0){ cmd[0] = eeprom_offset++; cmd[1] = *p++; bool r = i2c_write (i2c_addr, cmd, sizeof (cmd)); mdelay (10); // delay 10ms worst case write time if (!r) return false; } return true; } bool eeprom_read (int i2c_addr, int eeprom_offset, void *buf, int len) { unsigned char *p = (unsigned char *) buf; // We setup a random read by first doing a "zero byte write". // Writes carry an address. Reads use an implicit address. unsigned char cmd[1]; cmd[0] = eeprom_offset; if (!i2c_write (i2c_addr, cmd, sizeof (cmd))) return false; while (len > 0){ // int n = std::min (len, MAX_EP0_PKTSIZE); int n = len; if (!i2c_read (i2c_addr, p, n)) return false; len -= n; p += n; } return true; } uhd-3.5.5/firmware/zpu/lib/eth_addrs.c000066400000000000000000000061631224274632000176150ustar00rootroot00000000000000/* * Copyright 2010-2012 Ettus Research LLC * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ethernet.h" #include "memory_map.h" #include "nonstdio.h" #include #include #include "i2c.h" #include "usrp2/fw_common.h" static bool unprogrammed(const void *t, size_t len) { int i; uint8_t *p = (uint8_t *)t; bool all_zeros = true; bool all_ones = true; for (i = 0; i < len; i++){ all_zeros &= p[i] == 0x00; all_ones &= p[i] == 0xff; } return all_ones | all_zeros; } typedef struct{ eth_mac_addr_t mac_addr; struct ip_addr ip_addr; struct ip_addr gateway; struct ip_addr subnet; } eth_addrs_t; static bool eth_addrs_initialized = false; static const eth_addrs_t default_eth_addrs = { .mac_addr = {{0x00, 0x50, 0xC2, 0x85, 0x3f, 0xff}}, .ip_addr = {(192 << 24 | 168 << 16 | 10 << 8 | 2 << 0)}, .gateway = {(192 << 24 | 168 << 16 | 10 << 8 | 1 << 0)}, .subnet = {(255 << 24 | 255 << 16 | 255 << 8 | 0 << 0)}, }; static eth_addrs_t current_eth_addrs; static void eth_addrs_init(void){ if (eth_addrs_initialized) return; eth_addrs_initialized = true; #define eth_addrs_init_x(addr, x){ \ const bool ok = eeprom_read(USRP2_I2C_ADDR_MBOARD, addr, ¤t_eth_addrs.x, sizeof(current_eth_addrs.x)); \ if (!ok || unprogrammed(¤t_eth_addrs.x, sizeof(current_eth_addrs.x))){ \ memcpy(¤t_eth_addrs.x, &default_eth_addrs.x, sizeof(current_eth_addrs.x)); \ } \ } eth_addrs_init_x(USRP2_EE_MBOARD_MAC_ADDR, mac_addr); eth_addrs_init_x(USRP2_EE_MBOARD_IP_ADDR, ip_addr); eth_addrs_init_x(USRP2_EE_MBOARD_GATEWAY, gateway); eth_addrs_init_x(USRP2_EE_MBOARD_SUBNET, subnet); } const eth_mac_addr_t *ethernet_mac_addr(void){ eth_addrs_init(); return ¤t_eth_addrs.mac_addr; } const struct ip_addr *get_ip_addr(void){ eth_addrs_init(); return ¤t_eth_addrs.ip_addr; } const struct ip_addr *get_subnet(void){ eth_addrs_init(); return ¤t_eth_addrs.subnet; } const struct ip_addr *get_gateway(void){ eth_addrs_init(); return ¤t_eth_addrs.gateway; } bool set_ip_addr(const struct ip_addr *t){ const bool ok = eeprom_write(USRP2_I2C_ADDR_MBOARD, USRP2_EE_MBOARD_IP_ADDR, t, sizeof(struct ip_addr)); if (ok) current_eth_addrs.ip_addr = *t; return ok; } void eth_addrs_set_default(void){ eth_addrs_initialized = true; memcpy(¤t_eth_addrs, &default_eth_addrs, sizeof(default_eth_addrs)); } uhd-3.5.5/firmware/zpu/lib/eth_mac.c000066400000000000000000000064001224274632000172520ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "eth_mac.h" #include "memory_map.h" #include #include "eth_phy.h" // for simulation constants #include "mdelay.h" #include "stdio.h" #define PHY_ADDR 1 void eth_mac_set_addr(const eth_mac_addr_t *src) { /* disable because MAC_SET_PASS_ALL is set below eth_mac->ucast_hi = (((unsigned int)src->addr[0])<<8) + ((unsigned int)src->addr[1]); eth_mac->ucast_lo = (((unsigned int)src->addr[2])<<24) + (((unsigned int)src->addr[3])<<16) + (((unsigned int)src->addr[4])<<8) + (((unsigned int)src->addr[5])); */ } void eth_mac_init(const eth_mac_addr_t *src) { eth_mac->miimoder = 25; // divider from CPU clock (50MHz/25 = 2MHz) eth_mac_set_addr(src); eth_mac->settings = MAC_SET_PAUSE_EN | MAC_SET_PASS_BCAST | MAC_SET_PASS_UCAST | MAC_SET_PAUSE_SEND_EN | MAC_SET_PASS_ALL; eth_mac->pause_time = 38; eth_mac->pause_thresh = 1200; // set rx flow control high and low water marks // unsigned int lwmark = (2*2048 + 64)/4; // 2 * 2048-byte frames + 1 * 64-byte pause frame // eth_mac->fc_hwmark = lwmark + 2048/4; // plus a 2048-byte frame // eth_mac->fc_lwmark = 600; // there are currently 2047 lines in the fifo // eth_mac->fc_hwmark = 1200; //eth_mac->fc_padtime = 1700; // how long before flow control runs out do we // request a re-pause. Units of 8ns (bytes) //eth_mac->tx_pause_en = 0; // pay attn to pause frames sent to us //eth_mac->pause_quanta_set = 38; // a bit more than 1 max frame 16kb/512 + fudge //eth_mac->pause_frame_send_en = 0; // enable sending pause frames } int eth_mac_read_rmon(int addr) { int t = 0; /* eth_mac->rmon_rd_addr = addr; eth_mac->rmon_rd_apply = 1; while(eth_mac->rmon_rd_grant == 0) ; t = eth_mac->rmon_rd_dout; eth_mac->rmon_rd_apply = 0; */ return t; } int eth_mac_miim_read(int addr) { int phy_addr = PHY_ADDR; eth_mac->miiaddress = ((addr & 0x1f) << 8) | phy_addr; eth_mac->miicommand = MIIC_RSTAT; while((eth_mac->miistatus & MIIS_BUSY) != 0) ; int r = eth_mac->miirx_data; //printf("MIIM-READ ADDR 0x%x DATA 0x%x\n",addr, r); return r; } void eth_mac_miim_write(int addr, int value) { int phy_addr = PHY_ADDR; eth_mac->miiaddress = ((addr & 0x1f) << 8) | phy_addr; eth_mac->miitx_data = value; eth_mac->miicommand = MIIC_WCTRLDATA; // printf("MIIM-WRITE ADDR 0x%x VAL 0x%x\n",addr,value); while((eth_mac->miistatus & MIIS_BUSY) != 0) ; } int eth_mac_miim_read_status(void) { if (hwconfig_simulation_p()) return 0; return eth_mac->miistatus; } uhd-3.5.5/firmware/zpu/lib/eth_mac.h000066400000000000000000000021011224274632000172510ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_ETH_MAC_H #define INCLUDED_ETH_MAC_H #include void eth_mac_init(const eth_mac_addr_t *src); void eth_mac_set_addr(const eth_mac_addr_t *src); int eth_mac_read_rmon(int addr); int eth_mac_miim_read(int addr); void eth_mac_miim_write(int addr, int value); int eth_mac_miim_read_status(void); #endif /* INCLUDED_ETH_MAC_H */ uhd-3.5.5/firmware/zpu/lib/ethernet.h000066400000000000000000000047541224274632000175070ustar00rootroot00000000000000/* * Copyright 2010-2012 Ettus Research LLC * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_ETHERNET_H #define INCLUDED_ETHERNET_H #include #include #include typedef void (*ethernet_link_changed_callback_t)(int speed); /*! * \brief one time call to initialize ethernet */ void ethernet_init(void); /*! * \brief Specify the function to call on link state changes. * * When the link comes up, speed is the link speed in Mbit/s. * When the link goes down, speed is 0. */ void ethernet_register_link_changed_callback(ethernet_link_changed_callback_t cb); /*! * \returns ethernet MAC address */ const eth_mac_addr_t *ethernet_mac_addr(void); /*! * \returns IP address */ const struct ip_addr *get_ip_addr(void); /*! * \returns gateway address */ const struct ip_addr *get_gateway(void); /*! * \returns subnet address */ const struct ip_addr *get_subnet(void); /*! * \brief write ip address to eeprom and begin using it */ bool set_ip_addr(const struct ip_addr *t); //! Apply default settings to eth addrs void eth_addrs_set_default(void); /* * \brief read RMON regs and return error mask */ int ethernet_check_errors(void); #define RME_RX_CRC 0x0001 #define RME_RX_FIFO_FULL 0x0002 #define RME_RX_2SHORT_2LONG 0x0004 #define RME_TX_JAM_DROP 0x0010 #define RME_TX_FIFO_UNDER 0x0020 #define RME_TX_FIFO_OVER 0x0040 typedef enum { LS_UNKNOWN, LS_DOWN, LS_UP } eth_link_state_t; // flow control bitmasks #define FC_NONE 0x0 #define FC_WE_TX 0x1 // we send PAUSE frames #define FC_WE_RX 0x2 // we honor received PAUSE frames #define FC_SYMM (FC_WE_TX | FC_WE_RX) #define S_UNKNOWN (-1) // unknown link speed typedef struct { eth_link_state_t link_state; int link_speed; // in Mb/s int flow_control; } ethernet_t; #endif /* INCLUDED_ETHERNET_H */ uhd-3.5.5/firmware/zpu/lib/ethertype.h000066400000000000000000000015741224274632000176770ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_ETHERTYPE_H #define INCLUDED_ETHERTYPE_H // all we care about #define ETHERTYPE_IPV4 0x0800 #define ETHERTYPE_ARP 0x0806 #endif /* INCLUDED_ETHERTYPE_H */ uhd-3.5.5/firmware/zpu/lib/exit.c000066400000000000000000000015731224274632000166310ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ extern void _exit(int status); void exit(int status) { _exit(status); } uhd-3.5.5/firmware/zpu/lib/hal_io.c000066400000000000000000000112221224274632000171030ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ // conditionalized on HAL_IO_USES_DBOARD_PINS && HAL_IO_USES_UART #include "memory_map.h" #include "hal_uart.h" #include "hal_io.h" #include #include #include /* * ======================================================================== * leds * ======================================================================== */ static unsigned long leds_shadow = 0; static unsigned long led_src_shadow = 0; void hal_set_leds(int value, int mask) { int ei = hal_disable_ints(); leds_shadow = (leds_shadow & ~mask) | (value & mask); output_regs->leds = leds_shadow; hal_restore_ints(ei); } // Allow hardware control over leds. 1 = hardware, 0 = software void hal_set_led_src(int value, int mask) { int ei = hal_disable_ints(); led_src_shadow = (led_src_shadow & ~mask) | (value & mask); output_regs->led_src = led_src_shadow; hal_restore_ints(ei); } void hal_toggle_leds(int mask) { int ei = hal_disable_ints(); leds_shadow ^= mask; output_regs->leds = leds_shadow; hal_restore_ints(ei); } // ================================================================ // primitives // ================================================================ #if defined(HAL_IO_USES_DBOARD_PINS) // // Does i/o using high 9-bits of rx daughterboard pins. // // 1 1 1 1 1 1 // 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | char |W| | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // // // Asserts W when writing char // #define W 0x0080 void hal_io_init(void) { // make high 9 bits of tx daughterboard outputs hal_gpio_set_rx_mode(15, 7, GPIOM_OUTPUT); // and set them to zero hal_gpio_set_rx(0x0000, 0xff80); } void hal_finish(void) { volatile unsigned long *p = (unsigned long *) 0xC2F0; *p = 0; } // %c inline int putchar(int ch) { hal_gpio_set_rx((s << 8) | W, 0xff80); hal_gpio_set_rx(0, 0xff80); return ch; } #elif defined(HAL_IO_USES_UART) void hal_io_init(void) { hal_uart_init(); } void hal_finish(void) { } // %c inline int fputchar(hal_uart_name_t u, int ch) { hal_uart_putc(u, ch); return ch; } inline int putchar(int ch) { hal_uart_putc(DEFAULT_UART, ch); return ch; } int fgetchar(hal_uart_name_t u) { return hal_uart_getc(u); } int getchar(void) { return fgetchar(DEFAULT_UART); } #else // nop all i/o void hal_io_init(void) { } void hal_finish(void) { } // %c inline int putchar(int ch) { return ch; } int getchar(void) { return EOF; } #endif // ================================================================ // (slightly) higher level functions // // These are here so we can inline the calls to putchar. // The rest of the stuff was moved to nonstdio.c // ================================================================ // \n inline void fnewline(hal_uart_name_t u) { fputchar(u, '\n'); } inline void newline(void) { fnewline(DEFAULT_UART); } int fputstr(hal_uart_name_t u, const char *s) { while (*s) fputchar(u, *s++); return 0; } int fnputstr(hal_uart_name_t u, const char *s, int len) { int x = 0; while (*s && (len > x++)) fputchar(u, *s++); return x; } int putstr(const char *s) { return fputstr(DEFAULT_UART, s); } int fputs(hal_uart_name_t u, const char *s) { fputstr(u, s); fputchar(u, '\n'); return 0; } int puts(const char *s) { return fputs(DEFAULT_UART, s); } char * fgets(hal_uart_name_t u, char * const s) { char *x = s; while((*x=(char)hal_uart_getc(u)) != '\n') x++; *x = 0; return s; } int fngets(hal_uart_name_t u, char * const s, int len) { char *x = s; while(((*x=(char)hal_uart_getc(u)) != '\n') && ((x-s) < len)) x++; *x = 0; return (x-s); } int fngets_noblock(hal_uart_name_t u, char * const s, int len) { int i; for(i=0; i < len; i++) { int ret = hal_uart_getc_noblock(u); s[i] = (char) ret; if((ret == -1) || (s[i] == '\n')) break; } s[i] = 0; return i; } char * gets(char * const s) { return fgets(DEFAULT_UART, s); } uhd-3.5.5/firmware/zpu/lib/hal_io.h000066400000000000000000000047601224274632000171210ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_HAL_IO_H #define INCLUDED_HAL_IO_H #include "memory_map.h" #include "hal_uart.h" void hal_io_init(void); void hal_finish(); char *gets(char * const s); int fputstr(hal_uart_name_t u, const char *s); int fnputstr(hal_uart_name_t u, const char *s, int len); int fngets(hal_uart_name_t u, char * const s, int len); int fngets_noblock(hal_uart_name_t u, char * const s, int len); /* * ------------------------------------------------------------------------ * control the leds * * Low 4-bits are the general purpose leds on the board * The next bit is the led on the ethernet connector * ------------------------------------------------------------------------ */ void hal_set_leds(int value, int mask); void hal_set_led_src(int value, int mask); void hal_toggle_leds(int mask); /* * ------------------------------------------------------------------------ * simple timeouts * ------------------------------------------------------------------------ */ static inline void hal_set_timeout(int delta_ticks) { sr_simple_timer->onetime = delta_ticks; } /* * ------------------------------------------------------------------------ * interrupt enable/disable * ------------------------------------------------------------------------ */ /*! * \brief Disable interrupts and return previous interrupt enable state. * [Microblaze specific] */ static inline int hal_disable_ints(void) { return 0; /* NOP */ } /*! * \brief Enable interrupts and return previous interrupt enable state. * [Microblaze specific] */ static inline int hal_enable_ints(void) { return 0; /* NOP */ } /*! * \brief Set interrupt enable state to \p prev_state. * [Microblaze specific] */ static inline void hal_restore_ints(int prev_state) { /* NOP */ } #endif /* INCLUDED_HAL_IO_H */ uhd-3.5.5/firmware/zpu/lib/hal_uart.c000066400000000000000000000057051224274632000174600ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "memory_map.h" #include "hal_uart.h" #include "hal_io.h" #include "mdelay.h" //just to save you from going insane, note that firmware/FPGA UARTs [0-2] correspond to serial ports [1-3]. //so in software, we refer to UART_DEBUG as UART0, but it transmits on pin TXD<1>. see the UART assignments in hal_uart.h. #define NSPEEDS 6 #define MAX_WB_DIV 4 //if you're going to recalculate the divisors, it's just uart_clock_rate / baud_rate. //uart_clock_rate is 50MHz for USRP2. static const uint16_t divisor_table[NSPEEDS] = { 5208, // 9600 2604, // 19200 1302, // 38400 868, // 57600 434, // 115200 217 // 230400 }; static char uart_mode[4] = { [UART_DEBUG] = UART_MODE_ONLCR, [UART_EXP] = UART_MODE_ONLCR, [UART_GPS] = UART_MODE_ONLCR }; static char uart_speeds[4] = { [UART_DEBUG] = US_230400, [UART_EXP] = US_230400, [UART_GPS] = US_115200 }; void hal_uart_set_mode(hal_uart_name_t uart, int mode) { uart_mode[uart] = mode; } void hal_uart_set_speed(hal_uart_name_t uart, hal_uart_speed_t speed) { uart_regs[uart].clkdiv = divisor_table[speed]; } void hal_uart_init(void) { for(int i = 0; i < 3; i++) { hal_uart_set_mode(i, uart_mode[i]); hal_uart_set_speed(i, uart_speeds[i]); } } void hal_uart_putc(hal_uart_name_t u, int ch) { if ((ch == '\n') && (uart_mode[u] == UART_MODE_ONLCR)) //map \n->\r\n if necessary hal_uart_putc(u, '\r'); while (uart_regs[u].txlevel == 0) // wait for fifo to have space ; uart_regs[u].txchar = ch; } void hal_uart_putc_nowait(hal_uart_name_t u, int ch) { if ((ch == '\n') && (uart_mode[u] == UART_MODE_ONLCR)) //map \n->\r\n if necessary hal_uart_putc(u, '\r'); if(uart_regs[u].txlevel) // If fifo has space uart_regs[u].txchar = ch; } int hal_uart_getc(hal_uart_name_t u) { while ((uart_regs[u].rxlevel) == 0) // wait for data to be ready ; return uart_regs[u].rxchar; } int hal_uart_getc_noblock(hal_uart_name_t u) { // int timeout = 0; // while (((uart_regs[u].rxlevel) == 0) && (timeout++ < HAL_UART_TIMEOUT_MS)) // mdelay(1); if(uart_regs[u].rxlevel == 0) return -1; return uart_regs[u].rxchar; } int hal_uart_rx_flush(hal_uart_name_t u) { char x = 0; while(uart_regs[u].rxlevel) x = uart_regs[u].rxchar; return x; } uhd-3.5.5/firmware/zpu/lib/hal_uart.h000066400000000000000000000043171224274632000174630ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_HAL_UART_H #define INCLUDED_HAL_UART_H /*! * \brief uart mode flags */ #define UART_MODE_RAW 0x0000 // no mapping on input or output #define UART_MODE_ONLCR 0x0001 // map \n to \r\n on output (default) #define DEFAULT_UART UART_DEBUG //which UART printf, gets, etc. use typedef enum { US_9600 = 0, US_19200 = 1, US_38400 = 2, US_57600 = 3, US_115200 = 4, US_230400 = 5 } hal_uart_speed_t; typedef struct { hal_uart_speed_t speed; } hal_uart_config_t; typedef enum { UART_DEBUG = 0, UART_EXP = 1, UART_GPS = 2 } hal_uart_name_t; /* * \brief Set uart mode */ void hal_uart_set_mode(hal_uart_name_t uart, int flags); /*! * \brief one-time call to init */ void hal_uart_init(void); /*! * \brief Set uart parameters * Default is 115,200 bps, 8N1. */ void hal_uart_set_config(const hal_uart_config_t *c); /*! * \brief Get uart configuation. */ void hal_uart_get_config(hal_uart_config_t *c); /*! * \brief Enqueue \p ch for output over serial port */ void hal_uart_putc(hal_uart_name_t u, int ch); /*! * \brief Enqueue \p ch for output over serial port, silent fail if queue is full */ void hal_uart_putc_nowait(hal_uart_name_t u, int ch); /* * \brief Blocking read of next char from serial port */ int hal_uart_getc(hal_uart_name_t u); /* * \brief Non-blocking read of next char from serial port, return -1 if nothing available */ int hal_uart_getc_noblock(hal_uart_name_t u); int hal_uart_rx_flush(hal_uart_name_t u); #endif /* INCLUDED_HAL_UART_H */ uhd-3.5.5/firmware/zpu/lib/i2c.c000066400000000000000000000065451224274632000163410ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "i2c.h" #include "memory_map.h" #include "stdint.h" #include #include "nonstdio.h" #define MAX_WB_DIV 4 // maximum wishbone divisor (from 100 MHz MASTER_CLK) // prescaler divisor values for 100 kHz I2C [uses 5 * SCLK internally] #define PRESCALER(wb_div) (((MASTER_CLK_RATE/(wb_div)) / (5 * 400000)) - 1) static uint16_t prescaler_values[MAX_WB_DIV+1] = { 0xffff, // 0: can't happen PRESCALER(1), // 1: 100 MHz PRESCALER(2), // 2: 50 MHz PRESCALER(3), // 3: 33.333 MHz PRESCALER(4), // 4: 25 MHz }; void i2c_init(void) { i2c_regs->ctrl = 0; // disable core // setup prescaler depending on wishbone divisor int wb_div = hwconfig_wishbone_divisor(); if (wb_div > MAX_WB_DIV) wb_div = MAX_WB_DIV; i2c_regs->prescaler_lo = prescaler_values[wb_div] & 0xff; i2c_regs->prescaler_hi = (prescaler_values[wb_div] >> 8) & 0xff; i2c_regs->ctrl = I2C_CTRL_EN; //| I2C_CTRL_IE; // enable core //now this is done separately to maintain common code for async and sync //pic_register_handler(IRQ_I2C, i2c_irq_handler); } static inline void wait_for_xfer(void) { while (i2c_regs->cmd_status & I2C_ST_TIP) // wait for xfer to complete ; } static inline bool wait_chk_ack(void) { wait_for_xfer(); if ((i2c_regs->cmd_status & I2C_ST_RXACK) != 0){ // target NAK'd return false; } return true; } bool i2c_read (unsigned char i2c_addr, unsigned char *buf, unsigned int len) { if (len == 0) // reading zero bytes always works return true; while (i2c_regs->cmd_status & I2C_ST_BUSY) ; i2c_regs->data = (i2c_addr << 1) | 1; // 7 bit address and read bit (1) // generate START and write addr i2c_regs->cmd_status = I2C_CMD_WR | I2C_CMD_START; if (!wait_chk_ack()) goto fail; for (; len > 0; buf++, len--){ i2c_regs->cmd_status = I2C_CMD_RD | (len == 1 ? (I2C_CMD_NACK | I2C_CMD_STOP) : 0); wait_for_xfer(); *buf = i2c_regs->data; } return true; fail: i2c_regs->cmd_status = I2C_CMD_STOP; // generate STOP return false; } bool i2c_write(unsigned char i2c_addr, const unsigned char *buf, unsigned int len) { while (i2c_regs->cmd_status & I2C_ST_BUSY) ; i2c_regs->data = (i2c_addr << 1) | 0; // 7 bit address and write bit (0) // generate START and write addr (and maybe STOP) i2c_regs->cmd_status = I2C_CMD_WR | I2C_CMD_START | (len == 0 ? I2C_CMD_STOP : 0); if (!wait_chk_ack()) goto fail; for (; len > 0; buf++, len--){ i2c_regs->data = *buf; i2c_regs->cmd_status = I2C_CMD_WR | (len == 1 ? I2C_CMD_STOP : 0); if (!wait_chk_ack()) goto fail; } return true; fail: i2c_regs->cmd_status = I2C_CMD_STOP; // generate STOP return false; } uhd-3.5.5/firmware/zpu/lib/i2c.h000066400000000000000000000025371224274632000163430ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_I2C_H #define INCLUDED_I2C_H #include #include "stdint.h" void i2c_init(void); bool i2c_read (unsigned char i2c_addr, unsigned char *buf, unsigned int len); bool i2c_write(unsigned char i2c_addr, const unsigned char *buf, unsigned int len); bool eeprom_write (int i2c_addr, int eeprom_offset, const void *buf, int len); // Read 24LC024 / 24LC025 EEPROM on motherboard or daughterboard. // Which EEPROM is determined by i2c_addr. See i2c_addr.h bool eeprom_read (int i2c_addr, int eeprom_offset, void *buf, int len); bool find_safe_booted_flag(void); void set_safe_booted_flag(bool flag); #endif /* INCLUDED_I2C_H */ uhd-3.5.5/firmware/zpu/lib/i2c_async.c000066400000000000000000000162221224274632000175270ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // /* * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //i2c_async.c: asynchronous (interrupt-driven) routines for I2C. //separated out here so we can have a small I2C lib for bootloader and //retain interrupt-driven I2C for the main app. #include "memory_map.h" #include "stdint.h" #include #include "pic.h" #include "nonstdio.h" #include "i2c_async.h" //asynchronous (interrupt-driven) i2c state variables volatile uint8_t i2c_buf[17]; //tx/rx data transfer buffer volatile uint8_t *volatile i2c_bufptr = i2c_buf; //ptr to current position volatile uint8_t i2c_len = 0; //length remaining in current transfer volatile i2c_state_t i2c_state = I2C_STATE_IDLE; //current I2C transfer state i2c_dir_t i2c_dir; //I2C transfer direction void (*volatile i2c_callback)(void); //function pointer to i2c callback to be called when transaction is complete static void i2c_irq_handler(unsigned irq); inline void i2c_async_err(void); void i2c_register_handler(void) { pic_register_handler(IRQ_I2C, i2c_irq_handler); } static void i2c_irq_handler(unsigned irq) { //i2c state machine. //printf("I2C irq handler\n"); //first let's make sure nothing is f'ed up //TODO: uncomment this error checking when we have some way to handle errors // if(((i2c_regs->cmd_status & I2C_ST_RXACK) != 0) && i2c_dir == I2C_DIR_WRITE) { //we got a NACK and we didn't send it // printf("\tNACK received\n"); // i2c_async_err(); // return; // }// else printf("\tACK received, proceeding\n"); if(i2c_regs->cmd_status & I2C_ST_AL) { printf("\tArbitration lost!\n"); i2c_async_err(); return; } if(i2c_regs->cmd_status & I2C_ST_TIP) { //printf("\tI2C still busy in interrupt\n"); return; } //now decide what to do switch(i2c_state) { case I2C_STATE_IDLE: //this is an error. in idle state, we shouldn't be transferring data, and the fact that the IRQ fired is terrible bad. printf("AAAAAHHHHH INTERRUPT IN THE IDLE STATE AAAHHHHHHHHH\n"); i2c_async_err(); break; case I2C_STATE_CONTROL_BYTE_SENT: //here we've sent the control byte, and we're either clocking data in or out now, but we haven't received a byte yet. case I2C_STATE_DATA: //here we're sending/receiving data and if we're receiving there's data in the data reg //if(i2c_state == I2C_STATE_DATA) printf("\tI2C in state DATA with dir=%d and len=%d\n", i2c_dir, i2c_len); //else printf("\tI2C in state CONTROL_BYTE_SENT with dir=%d and len=%d\n", i2c_dir, i2c_len); if(i2c_dir == I2C_DIR_READ) { if(i2c_state == I2C_STATE_DATA) *(i2c_bufptr++) = i2c_regs->data; //printf("\tRead %x\n", *(i2c_bufptr-1)); //set up another data byte if(i2c_len > 1) //only one more byte to transfer i2c_regs->cmd_status = I2C_CMD_RD; else i2c_regs->cmd_status = I2C_CMD_RD | I2C_CMD_NACK | I2C_CMD_STOP; } else if(i2c_dir == I2C_DIR_WRITE) { //write a byte //printf("\tWriting %x\n", *i2c_bufptr); i2c_regs->data = *(i2c_bufptr++); if(i2c_len > 1) i2c_regs->cmd_status = I2C_CMD_WR; else { //printf("\tGenerating STOP\n"); i2c_regs->cmd_status = I2C_CMD_WR | I2C_CMD_STOP; } }; i2c_len--; if(i2c_len == 0) i2c_state = I2C_STATE_LAST_BYTE; else i2c_state = I2C_STATE_DATA; //takes care of the addr_sent->data transition break; case I2C_STATE_LAST_BYTE: //here we've already sent the last read request and the last data is waiting for us. //printf("\tI2C in state LAST BYTE\n"); if(i2c_dir == I2C_DIR_READ) { *(i2c_bufptr++) = i2c_regs->data; //printf("\tRead %x\n", *(i2c_bufptr-1)); i2c_state = I2C_STATE_DATA_READY; } else { i2c_state = I2C_STATE_IDLE; } i2c_regs->ctrl &= ~I2C_CTRL_IE; //disable interrupts until next time if(i2c_callback) { i2c_callback(); //if we registered a callback, call it! } break; default: //terrible things have happened. break; } } void i2c_register_callback(void (*volatile callback)(void)) { i2c_callback = callback; } inline void i2c_async_err(void) { i2c_state = I2C_STATE_IDLE; i2c_regs->ctrl &= ~I2C_CTRL_IE; printf("I2C error\n"); //TODO: set an error flag instead of just dropping things on the floor i2c_regs->cmd_status = I2C_CMD_STOP; } bool i2c_async_read(uint8_t addr, unsigned int len) { //printf("Starting async read\n"); if(i2c_state != I2C_STATE_IDLE) return false; //sorry mario but your i2c is in another castle if(len == 0) return true; //just idiot-proofing if(len > sizeof(i2c_buf)) return false; //disable I2C interrupts and clear pending interrupts on the I2C device i2c_regs->ctrl &= ~I2C_CTRL_IE; i2c_regs->cmd_status |= I2C_CMD_IACK; i2c_len = len; i2c_dir = I2C_DIR_READ; i2c_bufptr = i2c_buf; //then set up the transfer by issuing the control byte i2c_regs->ctrl |= I2C_CTRL_IE; i2c_regs->data = (addr << 1) | 0x01; //7 bit addr and read bit i2c_regs->cmd_status = I2C_CMD_WR | I2C_CMD_START; //generate start & start writing addr //update the state so the irq handler knows what's going on i2c_state = I2C_STATE_CONTROL_BYTE_SENT; return true; } bool i2c_async_write(uint8_t addr, const uint8_t *buf, unsigned int len) { //printf("Starting async write\n"); if(i2c_state != I2C_STATE_IDLE) return false; //sorry mario but your i2c is in another castle if(len > sizeof(i2c_buf)) return false; //disable I2C interrupts and clear pending interrupts on the I2C device i2c_regs->ctrl &= ~I2C_CTRL_IE; i2c_regs->cmd_status |= I2C_CMD_IACK; //copy the buffer into our own if writing memcpy((void *)i2c_buf, buf, len); i2c_len = len; i2c_dir = I2C_DIR_WRITE; i2c_bufptr = i2c_buf; //then set up the transfer by issuing the control byte i2c_regs->ctrl |= I2C_CTRL_IE; i2c_regs->data = (addr << 1) | 0x00; //7 bit addr and read bit i2c_regs->cmd_status = I2C_CMD_WR | I2C_CMD_START; //generate start & start writing addr //update the state so the irq handler knows what's going on i2c_state = I2C_STATE_CONTROL_BYTE_SENT; return true; } //TODO: determine if it's better to read sequentially into the user's buffer, copy on transfer complete, or copy on request (shown below). probably best to copy on request. bool i2c_async_data_ready(void *buf) { if(i2c_state == I2C_STATE_DATA_READY) { i2c_state = I2C_STATE_IDLE; memcpy(buf, (void *)i2c_buf, (i2c_bufptr - i2c_buf)); //TODO: not really comfortable with this //printf("Copying %d bytes to user buffer\n", i2c_bufptr-i2c_buf); return true; } return false; } uhd-3.5.5/firmware/zpu/lib/i2c_async.h000066400000000000000000000034421224274632000175340ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // /* * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_I2C_ASYNC_H #define INCLUDED_I2C_ASYNC_H #include #include "stdint.h" typedef enum { I2C_STATE_IDLE, I2C_STATE_CONTROL_BYTE_SENT, I2C_STATE_DATA, I2C_STATE_LAST_BYTE, I2C_STATE_DATA_READY, I2C_STATE_ERROR } i2c_state_t; typedef enum { I2C_DIR_WRITE=0, I2C_DIR_READ=1 } i2c_dir_t; bool i2c_async_read(uint8_t addr, unsigned int len); bool i2c_async_write(uint8_t addr, const uint8_t *buf, unsigned int len); bool i2c_async_data_ready(void *); //static void i2c_irq_handler(unsigned irq); void i2c_register_callback(void (*callback)(void)); void i2c_register_handler(void); // Write 24LC024 / 24LC025 EEPROM on motherboard or daughterboard. // Which EEPROM is determined by i2c_addr. See i2c_addr.h bool eeprom_write_async (int i2c_addr, int eeprom_offset, const void *buf, int len, void (*callback)(void)); bool eeprom_read_async(int i2c_addr, int eeprom_offset, void *buf, int len, void (*callback)(void)); #endif /* INCLUDED_I2C_ASYNC_H */ uhd-3.5.5/firmware/zpu/lib/if_arp.h000066400000000000000000000135761224274632000171330ustar00rootroot00000000000000/* * INET An implementation of the TCP/IP protocol suite for the LINUX * operating system. INET is implemented using the BSD Socket * interface as the means of communication with the user level. * * Global definitions for the ARP (RFC 826) protocol. * * Version: @(#)if_arp.h 1.0.1 04/16/93 * * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 * Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source. * Ross Biro * Fred N. van Kempen, * Florian La Roche, * Jonathan Layes * Arnaldo Carvalho de Melo ARPHRD_HWX25 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _LINUX_IF_ARP_H #define _LINUX_IF_ARP_H /* ARP protocol HARDWARE identifiers. */ #define ARPHRD_NETROM 0 /* from KA9Q: NET/ROM pseudo */ #define ARPHRD_ETHER 1 /* Ethernet 10Mbps */ #define ARPHRD_EETHER 2 /* Experimental Ethernet */ #define ARPHRD_AX25 3 /* AX.25 Level 2 */ #define ARPHRD_PRONET 4 /* PROnet token ring */ #define ARPHRD_CHAOS 5 /* Chaosnet */ #define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB */ #define ARPHRD_ARCNET 7 /* ARCnet */ #define ARPHRD_APPLETLK 8 /* APPLEtalk */ #define ARPHRD_DLCI 15 /* Frame Relay DLCI */ #define ARPHRD_ATM 19 /* ATM */ #define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id) */ #define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734 */ #define ARPHRD_EUI64 27 /* EUI-64 */ #define ARPHRD_INFINIBAND 32 /* InfiniBand */ /* Dummy types for non ARP hardware */ #define ARPHRD_SLIP 256 #define ARPHRD_CSLIP 257 #define ARPHRD_SLIP6 258 #define ARPHRD_CSLIP6 259 #define ARPHRD_RSRVD 260 /* Notional KISS type */ #define ARPHRD_ADAPT 264 #define ARPHRD_ROSE 270 #define ARPHRD_X25 271 /* CCITT X.25 */ #define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */ #define ARPHRD_CAN 280 /* Controller Area Network */ #define ARPHRD_PPP 512 #define ARPHRD_CISCO 513 /* Cisco HDLC */ #define ARPHRD_HDLC ARPHRD_CISCO #define ARPHRD_LAPB 516 /* LAPB */ #define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */ #define ARPHRD_RAWHDLC 518 /* Raw HDLC */ #define ARPHRD_TUNNEL 768 /* IPIP tunnel */ #define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */ #define ARPHRD_FRAD 770 /* Frame Relay Access Device */ #define ARPHRD_SKIP 771 /* SKIP vif */ #define ARPHRD_LOOPBACK 772 /* Loopback device */ #define ARPHRD_LOCALTLK 773 /* Localtalk device */ #define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface */ #define ARPHRD_BIF 775 /* AP1000 BIF */ #define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4 */ #define ARPHRD_IPDDP 777 /* IP over DDP tunneller */ #define ARPHRD_IPGRE 778 /* GRE over IP */ #define ARPHRD_PIMREG 779 /* PIMSM register interface */ #define ARPHRD_HIPPI 780 /* High Performance Parallel Interface */ #define ARPHRD_ASH 781 /* Nexus 64Mbps Ash */ #define ARPHRD_ECONET 782 /* Acorn Econet */ #define ARPHRD_IRDA 783 /* Linux-IrDA */ /* ARP works differently on different FC media .. so */ #define ARPHRD_FCPP 784 /* Point to point fibrechannel */ #define ARPHRD_FCAL 785 /* Fibrechannel arbitrated loop */ #define ARPHRD_FCPL 786 /* Fibrechannel public loop */ #define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */ /* 787->799 reserved for fibrechannel media types */ #define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */ #define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ #define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ #define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */ #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ #define ARPHRD_NONE 0xFFFE /* zero header length */ /* ARP protocol opcodes. */ #define ARPOP_REQUEST 1 /* ARP request */ #define ARPOP_REPLY 2 /* ARP reply */ #define ARPOP_RREQUEST 3 /* RARP request */ #define ARPOP_RREPLY 4 /* RARP reply */ #define ARPOP_InREQUEST 8 /* InARP request */ #define ARPOP_InREPLY 9 /* InARP reply */ #define ARPOP_NAK 10 /* (ATM)ARP NAK */ /* ARP Flag values. */ #define ATF_COM 0x02 /* completed entry (ha valid) */ #define ATF_PERM 0x04 /* permanent entry */ #define ATF_PUBL 0x08 /* publish entry */ #define ATF_USETRAILERS 0x10 /* has requested trailers */ #define ATF_NETMASK 0x20 /* want to use a netmask (only for proxy entries) */ #define ATF_DONTPUB 0x40 /* don't answer this addresses */ typedef unsigned short __be16; /* * This structure defines an ethernet arp header. */ struct arphdr { __be16 ar_hrd; /* format of hardware address */ __be16 ar_pro; /* format of protocol address */ unsigned char ar_hln; /* length of hardware address */ unsigned char ar_pln; /* length of protocol address */ __be16 ar_op; /* ARP opcode (command) */ #if 0 /* * Ethernet looks like this : This bit is variable sized however... */ unsigned char ar_sha[ETH_ALEN]; /* sender hardware address */ unsigned char ar_sip[4]; /* sender IP address */ unsigned char ar_tha[ETH_ALEN]; /* target hardware address */ unsigned char ar_tip[4]; /* target IP address */ #endif }; /* * This structure defines an ethernet arp header. */ struct arp_eth_ipv4 { __be16 ar_hrd; /* format of hardware address */ __be16 ar_pro; /* format of protocol address */ unsigned char ar_hln; /* length of hardware address */ unsigned char ar_pln; /* length of protocol address */ __be16 ar_op; /* ARP opcode (command) */ unsigned char ar_sha[6]; /* sender hardware address */ unsigned char ar_sip[4]; /* sender IP address */ unsigned char ar_tha[6]; /* target hardware address */ unsigned char ar_tip[4]; /* target IP address */ }; #endif /* _LINUX_IF_ARP_H */ uhd-3.5.5/firmware/zpu/lib/ihex.c000066400000000000000000000037571224274632000166230ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2010 Ettus Research LLC * */ #include "ihex.h" #include //man that pulls in a lot of shit //this is not safe and you should run isxdigit beforehand uint8_t asc2nibble(char input) { if(input > 'Z') return input - 'W'; else if(input > '9') return input - '7'; else return input - '0'; } int ihex_parse(char input[], ihex_record_t *record) { //given a NULL-TERMINATED input string (use gets()) in I16HEX format, write the binary record in record. return 0 on success. uint8_t inputlen; uint8_t t, i, checksum_calc=0, checksum_read; //first check for ":" leading character if(input[0] != ':') return -1; //then check the string for only valid ASCII ['0'-'F'] inputlen=1; while(input[inputlen]) { if( !isxdigit(input[inputlen++]) ) return -2; } //then read the length. record->length = (asc2nibble(input[1]) << 4) + asc2nibble(input[2]); if(input[(record->length<<1) + 11] != 0) return -3; //if we're missing a null terminator in the right place //then read the address. record->addr = (asc2nibble(input[3]) << 12) + (asc2nibble(input[4]) << 8) + (asc2nibble(input[5]) << 4) + asc2nibble(input[6]); //then read the record type. record->type = (asc2nibble(input[7]) << 4) + asc2nibble(input[8]); // if(record->type > 4) return -4; //then read the data, which goes from input[9] to input[9+length*2]. for(i=0; i < record->length; i++) { t = 9 + (i<<1); record->data[i] = (asc2nibble(input[t]) << 4) + (asc2nibble(input[t + 1])); checksum_calc += record->data[i]; //might as well keep a running checksum as we read } checksum_calc += record->length + record->type + (record->addr >> 8) + (record->addr & 0xFF); //get the rest of the data into that checksum checksum_calc = ~checksum_calc + 1; //checksum is 2's complement //now read the checksum of the record checksum_read = (asc2nibble(input[9 + (record->length<<1)]) << 4) + asc2nibble(input[10 + (record->length<<1)]); if(checksum_calc != checksum_read) return -5; //compare 'em return 0; } uhd-3.5.5/firmware/zpu/lib/ihex.h000066400000000000000000000004031224274632000166110ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2010 Ettus Research LLC * */ #include #include typedef struct { uint8_t type; size_t length; uint32_t addr; uint8_t *data; } ihex_record_t; int ihex_parse(char input[], ihex_record_t *record); uhd-3.5.5/firmware/zpu/lib/mdelay.c000066400000000000000000000020701224274632000171240ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "mdelay.h" #include "memory_map.h" void mdelay(int ms){ if (hwconfig_simulation_p()) return; for(int i = 0; i < ms; i++){ static const uint32_t num_ticks = MASTER_CLK_RATE/1000; const uint32_t ticks_begin = router_status->time64_ticks_rb; while((router_status->time64_ticks_rb - ticks_begin) < num_ticks){ /*NOP*/ } } } uhd-3.5.5/firmware/zpu/lib/mdelay.h000066400000000000000000000016221224274632000171330ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_MDELAY_H #define INCLUDED_MDELAY_H /*! * \brief Delay about ms milliseconds * * If simulating, _very_ short delay */ void mdelay(int ms); #endif /* INCLUDED_MDELAY_H */ uhd-3.5.5/firmware/zpu/lib/memcpy_wa.c000066400000000000000000000023231224274632000176330ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "memcpy_wa.h" #include #include /* * For copying to/from non-byte-adressable memory, such as * the buffers. dst, src, and nbytes must all satisfy (x % 4 == 0) */ void memcpy_wa(void *dst, const void *src, size_t nbytes) { if (((intptr_t) dst & 0x3) || ((intptr_t) src & 0x3) || (nbytes & 0x3)) exit(1); /* die! */ int *dp = (int *) dst; int *sp = (int *) src; unsigned nw = nbytes/4; unsigned i; for (i = 0; i < nw; i++) dp[i] = sp[i]; } uhd-3.5.5/firmware/zpu/lib/memcpy_wa.h000066400000000000000000000020121224274632000176330ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_MEMCPY_WA_H #define INCLUDED_MEMCPY_WA_H #include /* * For copying to/from non-byte-adressable memory, such as * the buffers. dst, src, and nbytes must all satisfy (x % 4 == 0) */ void memcpy_wa(void *dst, const void *src, size_t nbytes); #endif /* INCLUDED_MEMCPY_WA_H */ uhd-3.5.5/firmware/zpu/lib/memory_map.h000066400000000000000000000344771224274632000200430ustar00rootroot00000000000000// Copyright 2010-2012 Ettus Research LLC /* * Copyright 2007,2008,2009 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_MEMORY_MAP_H #define INCLUDED_MEMORY_MAP_H #include #define MASTER_CLK_RATE 100000000 // 100 MHz //////////////////////////////////////////////////////////////////////// // Define slave bases //////////////////////////////////////////////////////////////////////// #define ROUTER_RAM_BASE 0x4000 #define SPI_BASE 0x5000 #define I2C_BASE 0x5400 #define GPIO_BASE 0x5800 #define READBACK_BASE 0x5C00 #define ETH_BASE 0x6000 #define SETTING_REGS_BASE 0x7000 #define PIC_BASE 0x8000 #define UART_BASE 0x8800 #define ATR_BASE 0x8C00 #ifdef USRP2 #define SDSPI_BASE 0xB000 #endif #ifdef USRP2P #define ICAP_BASE 0xA000 #define SPIF_BASE 0xB000 #define RAM_BASE 0xC000 #endif ///////////////////////////////////////////////////// // SPI Core, Slave 2. See core docs for more info ///////////////////////////////////////////////////// // Masks for controlling different peripherals #define SPI_SS_AD9510 1 #define SPI_SS_AD9777 2 #define SPI_SS_RX_DAC 4 #define SPI_SS_RX_ADC 8 #define SPI_SS_RX_DB 16 #define SPI_SS_TX_DAC 32 #define SPI_SS_TX_ADC 64 #define SPI_SS_TX_DB 128 #define SPI_SS_ADS62P44 256 // Masks for different parts of CTRL reg #define SPI_CTRL_ASS (1<<13) #define SPI_CTRL_IE (1<<12) #define SPI_CTRL_LSB (1<<11) #define SPI_CTRL_TXNEG (1<<10) #define SPI_CTRL_RXNEG (1<< 9) #define SPI_CTRL_GO_BSY (1<< 8) #define SPI_CTRL_CHAR_LEN_MASK 0x7F //////////////////////////////////////////////// // I2C, Slave 3 //////////////////////////////////////////////// typedef struct { volatile uint32_t prescaler_lo; // r/w volatile uint32_t prescaler_hi; // r/w volatile uint32_t ctrl; // r/w volatile uint32_t data; // wr = transmit reg; rd = receive reg volatile uint32_t cmd_status; // wr = command reg; rd = status reg } i2c_regs_t; #define i2c_regs ((i2c_regs_t *) I2C_BASE) #define I2C_CTRL_EN (1 << 7) // core enable #define I2C_CTRL_IE (1 << 6) // interrupt enable // // STA, STO, RD, WR, and IACK bits are cleared automatically // #define I2C_CMD_START (1 << 7) // generate (repeated) start condition #define I2C_CMD_STOP (1 << 6) // generate stop condition #define I2C_CMD_RD (1 << 5) // read from slave #define I2C_CMD_WR (1 << 4) // write to slave #define I2C_CMD_NACK (1 << 3) // when a rcvr, send ACK (ACK=0) or NACK (ACK=1) #define I2C_CMD_RSVD_2 (1 << 2) // reserved #define I2C_CMD_RSVD_1 (1 << 1) // reserved #define I2C_CMD_IACK (1 << 0) // set to clear pending interrupt #define I2C_ST_RXACK (1 << 7) // Received acknowledgement from slave (1 = NAK, 0 = ACK) #define I2C_ST_BUSY (1 << 6) // 1 after START signal detected; 0 after STOP signal detected #define I2C_ST_AL (1 << 5) // Arbitration lost. 1 when core lost arbitration #define I2C_ST_RSVD_4 (1 << 4) // reserved #define I2C_ST_RSVD_3 (1 << 3) // reserved #define I2C_ST_RSVD_2 (1 << 2) // reserved #define I2C_ST_TIP (1 << 1) // Transfer-in-progress #define I2C_ST_IP (1 << 0) // Interrupt pending /////////////////////////////////////////////////// // Packet Router Status, Slave 5 /////////////////////////////////////////////////// typedef struct { volatile uint32_t spi; volatile uint32_t _padding[7]; volatile uint32_t status; volatile uint32_t _unused; volatile uint32_t time64_secs_rb; volatile uint32_t time64_ticks_rb; volatile uint32_t compat_num; volatile uint32_t irqs; } router_status_t; #define SPI_READY_IRQ (1 << 12) #define router_status ((router_status_t *) READBACK_BASE) #define readback_mux ((router_status_t *) READBACK_BASE) //alias with a better name /*! * \brief return non-zero if we're running under the simulator */ inline static int hwconfig_simulation_p(void) { return 0; } /*! * \brief Return Wishbone Clock divisor. * The processor runs at the Wishbone Clock rate which is MASTER_CLK_RATE / divisor. */ inline static int hwconfig_wishbone_divisor(void) { return 2; } /////////////////////////////////////////////////// // Ethernet Core, Slave 6 /////////////////////////////////////////////////// typedef struct { volatile int settings; volatile int ucast_hi; volatile int ucast_lo; volatile int mcast_hi; volatile int mcast_lo; volatile int miimoder; volatile int miiaddress; volatile int miitx_data; volatile int miicommand; volatile int miistatus; volatile int miirx_data; volatile int pause_time; volatile int pause_thresh; } eth_mac_regs_t; // settings register #define MAC_SET_PAUSE_EN (1 << 0) // Makes us respect received pause frames (normally on) #define MAC_SET_PASS_ALL (1 << 1) // Enables promiscuous mode, currently broken #define MAC_SET_PASS_PAUSE (1 << 2) // Sends pause frames through (normally off) #define MAC_SET_PASS_BCAST (1 << 3) // Sends broadcast frames through (normally on) #define MAC_SET_PASS_MCAST (1 << 4) // Sends multicast frames that match mcast addr (normally off) #define MAC_SET_PASS_UCAST (1 << 5) // Sends unicast (normal) frames through if they hit in address filter (normally on) #define MAC_SET_PAUSE_SEND_EN (1 << 6) // Enables sending pause frames // miicommand register #define MIIC_SCANSSTAT (1 << 0) // Scan status #define MIIC_RSTAT (1 << 1) // Read status #define MIIC_WCTRLDATA (1 << 2) // Write control data // miistatus register #define MIIS_LINKFAIL (1 << 0) // The link failed #define MIIS_BUSY (1 << 1) // The MII is busy (operation in progress) #define MIIS_NVALID (1 << 2) // The data in the status register is invalid // This it is only valid when the scan status is active. #define eth_mac ((eth_mac_regs_t *) ETH_BASE) //////////////////////////////////////////////////// // Settings Bus, Slave #7, Not Byte Addressable! // // Output-only from processor point-of-view. // 1KB of address space (== 256 32-bit write-only regs) //////////////////////////////////////////////////// #define SR_MISC 0 // 7 regs #define SR_SIMTIMER 8 // 2 #define SR_TIME64 10 // 6 #define SR_BUF_POOL 16 // 4 #define SR_SPI_CORE 20 // 3 #define SR_RX_FRONT 24 // 5 #define SR_RX_CTRL0 32 // 9 #define SR_RX_DSP0 48 // 7 #define SR_RX_CTRL1 80 // 9 #define SR_RX_DSP1 96 // 7 #define SR_TX_FRONT 128 // ? #define SR_TX_CTRL 144 // 6 #define SR_TX_DSP 160 // 5 #define SR_UDP_SM 192 // 64 #define _SR_ADDR(sr) (SETTING_REGS_BASE + (sr) * sizeof(uint32_t)) #define SR_ADDR_BLDRDONE _SR_ADDR(5) // --- spi core control regs --- typedef struct { volatile uint32_t divider; volatile uint32_t control; volatile uint32_t data; } spi_core_t; #define SPI_CORE_SLAVE_SELECT_SHIFT 0 #define SPI_CORE_NUM_BITS_SHIFT 24 #define SPI_CORE_DATA_IN_EDGE_SHIFT 30 #define SPI_CORE_DATA_OUT_EDGE_SHIFT 31 #define spi_core ((spi_core_t *) _SR_ADDR(SR_SPI_CORE)) // --- packet router control regs --- typedef struct { volatile uint32_t mode_ctrl; volatile uint32_t ip_addr; volatile uint32_t data_ports; //dsp0 (low 16) dsp1 (high 16) volatile uint32_t iface_ctrl; } router_ctrl_t; #define router_ctrl ((router_ctrl_t *) _SR_ADDR(SR_BUF_POOL)) // --- misc outputs --- typedef struct { volatile uint32_t clk_ctrl; volatile uint32_t serdes_ctrl; volatile uint32_t adc_ctrl; volatile uint32_t leds; volatile uint32_t phy_ctrl; // LSB is reset line to eth phy volatile uint32_t debug_mux_ctrl; volatile uint32_t led_src; // HW or SW control for LEDs volatile uint32_t flush_icache; // Flush the icache } output_regs_t; #define CLK_RESET (1<<4) #define CLK_ENABLE (1<<3) | (1<<2) #define CLK_SEL (1<<1) | (1<<0) #define SERDES_ENABLE 8 #define SERDES_PRBSEN 4 #define SERDES_LOOPEN 2 #define SERDES_RXEN 1 #define ADC_CTRL_ON 0x0F #define ADC_CTRL_OFF 0x00 // crazy order that matches the labels on the case #define LED_A (1 << 4) #define LED_B (1 << 1) #define LED_E (1 << 2) #define LED_D (1 << 0) #define LED_C (1 << 3) // LED_F // controlled by CPLD #define LED_RJ45 (1 << 5) #define output_regs ((output_regs_t *) SETTING_REGS_BASE) // --- protocol framer regs --- typedef struct{ struct{ volatile uint32_t entry[16]; } table[4]; } sr_proto_framer_t; #define sr_proto_framer_regs ((sr_proto_framer_t *) _SR_ADDR(SR_UDP_SM)) // --- VITA TX CTRL regs --- typedef struct { volatile uint32_t _pad[4]; volatile uint32_t cyc_per_up; } sr_tx_ctrl_t; #define sr_tx_ctrl ((sr_tx_ctrl_t *) _SR_ADDR(SR_TX_CTRL)) // --- VITA RX CTRL regs --- typedef struct { volatile uint32_t _pad[8]; volatile uint32_t clear; } sr_rx_ctrl_t; #define sr_rx_ctrl0 ((sr_rx_ctrl_t *) _SR_ADDR(SR_RX_CTRL0)) #define sr_rx_ctrl1 ((sr_rx_ctrl_t *) _SR_ADDR(SR_RX_CTRL1)) // ---------------------------------------------------------------- // VITA49 64 bit time (write only) /*! * \brief Time 64 flags * *
   *
   *    3                   2                   1                       
   *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
   * +-----------------------------------------------------------+-+-+
   * |                                                           |S|P|
   * +-----------------------------------------------------------+-+-+
   *
   * P - PPS edge selection (0=negedge, 1=posedge, default=0)
   * S - Source (0=sma, 1=mimo, 0=default)
   *
   * 
*/ typedef struct { volatile uint32_t secs; // value to set absolute secs to on next PPS volatile uint32_t ticks; // value to set absolute ticks to on next PPS volatile uint32_t flags; // flags - see chart above volatile uint32_t imm; // set immediate (0=latch on next pps, 1=latch immediate, default=0) } sr_time64_t; #define sr_time64 ((sr_time64_t *) _SR_ADDR(SR_TIME64)) /////////////////////////////////////////////////////// // Simple Programmable Interrupt Controller, Slave 8 /////////////////////////////////////////////////////// // Interrupt request lines // Bit numbers (LSB == 0) that correpond to interrupts into PIC #define IRQ_BUFFER 0 // buffer manager #define IRQ_ONETIME 1 #define IRQ_SPI 2 #define IRQ_I2C 3 #define IRQ_PHY 4 // ethernet PHY #define IRQ_UNDERRUN 5 #define IRQ_OVERRUN 6 #define IRQ_PPS 7 // pulse per second #define IRQ_UART_RX 8 #define IRQ_UART_TX 9 #define IRQ_SERDES 10 #define IRQ_CLKSTATUS 11 #define IRQ_PERIODIC 12 #define IRQ_BUTTON 13 #define IRQ_TO_MASK(x) (1 << (x)) #define PIC_BUFFER_INT IRQ_TO_MASK(IRQ_BUFFER) #define PIC_ONETIME_INT IRQ_TO_MASK(IRQ_ONETIME) #define PIC_SPI_INT IRQ_TO_MASK(IRQ_SPI) #define PIC_I2C_INT IRQ_TO_MASK(IRQ_I2C) #define PIC_PHY_INT IRQ_TO_MASK(IRQ_PHY) #define PIC_UNDERRUN_INT IRQ_TO_MASK(IRQ_UNDERRUN) #define PIC_OVERRUN_INT IRQ_TO_MASK(IRQ_OVERRUN) #define PIC_PPS_INT IRQ_TO_MASK(IRQ_PPS) #define PIC_UART_RX_INT IRQ_TO_MASK(IRQ_UART_RX) #define PIC_UART_TX_INT IRQ_TO_MASK(IRQ_UART_TX) #define PIC_SERDES IRQ_TO_MASK(IRQ_SERDES) #define PIC_CLKSTATUS IRQ_TO_MASK(IRQ_CLKSTATUS) #define PIC_BUTTON IRQ_TO_MASK(IRQ_BUTTON) typedef struct { volatile uint32_t edge_enable; // mask: 1 -> edge triggered, 0 -> level volatile uint32_t polarity; // mask: 1 -> rising edge volatile uint32_t mask; // mask: 1 -> disabled volatile uint32_t pending; // mask: 1 -> pending; write 1's to clear pending ints } pic_regs_t; #define pic_regs ((pic_regs_t *) PIC_BASE) // ---------------------------------------------------------------- // WB_CLK_RATE is the time base for this typedef struct { volatile uint32_t onetime; // Number of wb clk cycles till the onetime interrupt volatile uint32_t periodic; // Repeat rate of periodic interrupt } sr_simple_timer_t; #define sr_simple_timer ((sr_simple_timer_t *) _SR_ADDR(SR_SIMTIMER)) /////////////////////////////////////////////////// // UART, Slave 10 /////////////////////////////////////////////////// typedef struct { // All elements are 8 bits except for clkdiv (16), but we use uint32 to make // the hardware for decoding easier volatile uint32_t clkdiv; // Set to 50e6 divided by baud rate (no x16 factor) volatile uint32_t txlevel; // Number of spaces in the FIFO for writes volatile uint32_t rxlevel; // Number of available elements in the FIFO for reads volatile uint32_t txchar; // Write characters to be sent here volatile uint32_t rxchar; // Read received characters here volatile uint32_t padding[3]; //what is this i don't even } uart_regs_t; #define uart_regs ((uart_regs_t *) UART_BASE) /////////////////////////////////////////////////// // SD Card SPI interface, Slave 13 // All regs are 8 bits wide, but are accessed as if they are 32 bits /////////////////////////////////////////////////// #ifdef USRP2 typedef struct { volatile uint32_t status; // Write a 1 or 0 for controlling CS volatile uint32_t clkdiv; volatile uint32_t send_dat; volatile uint32_t receive_dat; } sdspi_regs_t; #define sdspi_regs ((sdspi_regs_t *) SDSPI_BASE) #endif //USRP2 /////////////////////////////////////////////////// // ICAP, Slave 13 /////////////////////////////////////////////////// #ifdef USRP2P typedef struct { uint32_t icap; //only the lower 8 bits matter } icap_regs_t; #define icap_regs ((icap_regs_t *) ICAP_BASE) /////////////////////////////////////////////////// // SPI Flash interface, Slave 14 // Control register definitions are the same as SPI, so use SPI_CTRL_ASS, etc. // Peripheral mask not needed since bus is dedicated (CE held low) /////////////////////////////////////////////////// typedef struct { volatile uint32_t txrx0; volatile uint32_t txrx1; volatile uint32_t txrx2; volatile uint32_t txrx3; volatile uint32_t ctrl; volatile uint32_t div; volatile uint32_t ss; } spif_regs_t; #define spif_regs ((spif_regs_t *) SPIF_BASE) #endif //USRP2P #endif /* INCLUDED_MEMORY_MAP_H */ uhd-3.5.5/firmware/zpu/lib/memset_wa.c000066400000000000000000000023221224274632000176320ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "memset_wa.h" #include #include /* * For setting non-byte-adressable memory, such as * the buffers. dst and nbytes must all satisfy (x % 4 == 0) */ void * memset_wa(void *dst, int c, size_t nbytes) { if (((intptr_t) dst & 0x3) || (nbytes & 0x3)) exit(1); /* die! */ int *dp = (int *) dst; c &= 0xff; int v = (c << 24) | (c << 16) | (c << 8) | c; unsigned nw = nbytes/4; unsigned i; for (i = 0; i < nw; i++) dp[i] = v; return dst; } uhd-3.5.5/firmware/zpu/lib/memset_wa.h000066400000000000000000000015631224274632000176450ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_MEMSET_WA_H #define INCLUDED_MEMSET_WA_H #include void *memset_wa(void *s, int c, size_t n); #endif /* INCLUDED_MEMSET_WA_H */ uhd-3.5.5/firmware/zpu/lib/net/000077500000000000000000000000001224274632000162745ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lib/net/eth_mac_addr.h000066400000000000000000000016061224274632000210420ustar00rootroot00000000000000/* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_ETH_MAC_ADDR_H #define INCLUDED_ETH_MAC_ADDR_H #include // Ethernet MAC address typedef struct { uint8_t addr[6]; } eth_mac_addr_t; #endif /* INCLUDED_ETH_MAC_ADDR_H */ uhd-3.5.5/firmware/zpu/lib/net/padded_eth_hdr.h000066400000000000000000000022161224274632000213640ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009,2010 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_PADDED_ETH_HDR_H #define INCLUDED_PADDED_ETH_HDR_H #include #include /*! * \brief Standard 14-byte ethernet header plus two leading bytes of padding. * * This is what a buffer contains in line 1 when using the "slow mode" */ typedef struct { uint16_t pad; eth_mac_addr_t dst; eth_mac_addr_t src; uint16_t ethertype; } _AL4 padded_eth_hdr_t; #endif /* INCLUDED_PADDED_ETH_HDR_H */ uhd-3.5.5/firmware/zpu/lib/net/socket_address.h000066400000000000000000000022121224274632000214370ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2010 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_SOCKET_ADDRESS_H #define INCLUDED_SOCKET_ADDRESS_H #include // port and address are in network byte order typedef struct socket_address { unsigned short port; struct ip_addr addr; } socket_address_t; static inline struct socket_address make_socket_address(struct ip_addr addr, int port) { struct socket_address r; r.port = port; r.addr = addr; return r; } #endif /* INCLUDED_SOCKET_ADDRESS_H */ uhd-3.5.5/firmware/zpu/lib/net_common.c000066400000000000000000000352171224274632000200200ustar00rootroot00000000000000/* * Copyright 2009-2012 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include #endif #include "net_common.h" #include "banal.h" #include #include #include #include #include #include #include #include #include #include #include "arp_cache.h" #include "if_arp.h" #include #include #include "pkt_ctrl.h" /*********************************************************************** * Constants + Globals **********************************************************************/ static const bool debug = false; static const size_t out_buff_size = 2048; static const eth_mac_addr_t BCAST_MAC_ADDR = {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}; #define MAX_UDP_LISTENERS 10 /*********************************************************************** * 16-bit one's complement sum **********************************************************************/ static uint32_t chksum_buffer( uint16_t *buf, size_t nshorts, uint32_t initial_chksum ){ uint32_t chksum = initial_chksum; for (size_t i = 0; i < nshorts; i++) chksum += buf[i]; while (chksum >> 16) chksum = (chksum & 0xffff) + (chksum >> 16); return chksum; } /*********************************************************************** * Listener registry **********************************************************************/ static eth_mac_addr_t _local_mac_addr; static struct ip_addr _local_ip_addr; void register_addrs(const eth_mac_addr_t *mac_addr, const struct ip_addr *ip_addr){ _local_mac_addr = *mac_addr; _local_ip_addr = *ip_addr; } struct listener_entry { unsigned short port; udp_receiver_t rcvr; }; static struct listener_entry listeners[MAX_UDP_LISTENERS]; void init_udp_listeners(void){ for (int i = 0; i < MAX_UDP_LISTENERS; i++){ listeners[i].rcvr = NULL; } } static struct listener_entry * find_listener_by_port(unsigned short port) { for (int i = 0; i < MAX_UDP_LISTENERS; i++){ if (port == listeners[i].port) return &listeners[i]; } return 0; } static struct listener_entry * find_free_listener(void) { for (int i = 0; i < MAX_UDP_LISTENERS; i++){ if (listeners[i].rcvr == NULL) return &listeners[i]; } abort(); } void register_udp_listener(int port, udp_receiver_t rcvr) { struct listener_entry *lx = find_listener_by_port(port); if (lx) lx->rcvr = rcvr; else { lx = find_free_listener(); lx->port = port; lx->rcvr = rcvr; } } /*********************************************************************** * Protocol framer **********************************************************************/ void setup_framer( eth_mac_addr_t eth_dst, eth_mac_addr_t eth_src, struct socket_address sock_dst, struct socket_address sock_src, size_t which ){ struct { padded_eth_hdr_t eth; struct ip_hdr ip; struct udp_hdr udp; } frame; //-- load Ethernet header --// frame.eth.dst = eth_dst; frame.eth.src = eth_src; frame.eth.ethertype = ETHERTYPE_IPV4; //-- load IPv4 header --// IPH_VHLTOS_SET(&frame.ip, 4, 5, 0); IPH_LEN_SET(&frame.ip, 0); IPH_ID_SET(&frame.ip, 0); IPH_OFFSET_SET(&frame.ip, IP_DF); // don't fragment IPH_TTL_SET(&frame.ip, 32); IPH_PROTO_SET(&frame.ip, IP_PROTO_UDP); IPH_CHKSUM_SET(&frame.ip, 0); frame.ip.src = sock_src.addr; frame.ip.dest = sock_dst.addr; IPH_CHKSUM_SET(&frame.ip, chksum_buffer( (unsigned short *) &frame.ip, sizeof(frame.ip)/sizeof(short), 0 )); //-- load UDP header --// frame.udp.src = sock_src.port; frame.udp.dest = sock_dst.port; frame.udp.len = 0; frame.udp.chksum = 0; //copy into the framer table registers memcpy_wa((void *)(sr_proto_framer_regs->table[which].entry + 1), &frame, sizeof(frame)); } /*********************************************************************** * Slow-path packet framing and transmission **********************************************************************/ /*! * low level routine to assembly an ethernet frame and send it. * * \param dst destination mac address * \param ethertype ethertype field * \param buf0 first part of data * \param len0 length of first part of data * \param buf1 second part of data * \param len1 length of second part of data * \param buf2 third part of data * \param len2 length of third part of data */ static void send_pkt( eth_mac_addr_t dst, int ethertype, const void *buf0, size_t len0, const void *buf1, size_t len1, const void *buf2, size_t len2 ){ //control word for framed data uint32_t ctrl_word = 0x0; //assemble the ethernet header padded_eth_hdr_t ehdr; ehdr.pad = 0; ehdr.dst = dst; ehdr.src = _local_mac_addr; ehdr.ethertype = ethertype; //grab an out buffer and pointer uint8_t *buff = (uint8_t *)pkt_ctrl_claim_outgoing_buffer(); uint8_t *p = buff; size_t total_len = 0; //create a list of all buffers to copy const void *buffs[] = {&ctrl_word, &ehdr, buf0, buf1, buf2}; size_t lens[] = {sizeof(ctrl_word), sizeof(ehdr), len0, len1, (len2 + 3) & ~3}; //copy each buffer into the out buffer for (size_t i = 0; i < sizeof(buffs)/sizeof(buffs[0]); i++){ total_len += lens[i]; //use full length (not clipped) size_t bytes_remaining = out_buff_size - (size_t)(p - buff); if (lens[i] > bytes_remaining) lens[i] = bytes_remaining; if (lens[i] && ((lens[i] & 0x3) || (intptr_t) buffs[i] & 0x3)) printf("send_pkt: bad alignment of len and/or buf\n"); memcpy_wa(p, buffs[i], lens[i]); p += lens[i]; } //ensure that minimum length requirements are met if (total_len < 64) total_len = 64; //60 + ctrl word pkt_ctrl_commit_outgoing_buffer(total_len/sizeof(uint32_t)); if (debug) printf("sent %d bytes\n", (int)total_len); } void send_ip_pkt(struct ip_addr dst, int protocol, const void *buf0, size_t len0, const void *buf1, size_t len1) { struct ip_hdr ip; IPH_VHLTOS_SET(&ip, 4, 5, 0); IPH_LEN_SET(&ip, IP_HLEN + len0 + len1); IPH_ID_SET(&ip, 0); IPH_OFFSET_SET(&ip, IP_DF); /* don't fragment */ IPH_TTL_SET(&ip, 32); IPH_PROTO_SET(&ip, protocol); IPH_CHKSUM_SET(&ip, 0); ip.src = _local_ip_addr; ip.dest = dst; IPH_CHKSUM_SET(&ip, ~chksum_buffer( (unsigned short *) &ip, sizeof(ip)/sizeof(short), 0 )); eth_mac_addr_t dst_mac; bool found = arp_cache_lookup_mac(&ip.dest, &dst_mac); if (!found){ printf("net_common: failed to hit cache looking for "); print_ip_addr(&ip.dest); newline(); return; } send_pkt(dst_mac, ETHERTYPE_IPV4, &ip, sizeof(ip), buf0, len0, buf1, len1); } void send_udp_pkt(int src_port, struct socket_address dst, const void *buf, size_t len) { struct udp_hdr udp _AL4; udp.src = src_port; udp.dest = dst.port; udp.len = UDP_HLEN + len; udp.chksum = 0; send_ip_pkt(dst.addr, IP_PROTO_UDP, &udp, sizeof(udp), buf, len); } static void handle_udp_packet(struct ip_addr src_ip, struct ip_addr dst_ip, struct udp_hdr *udp, size_t len) { if (len != udp->len){ printf("UDP inconsistent lengths: %d %d\n", (int)len, udp->len); return; } unsigned char *payload = ((unsigned char *) udp) + UDP_HLEN; int payload_len = len - UDP_HLEN; if (0){ printf("\nUDP: src = %d dst = %d len = %d\n", udp->src, udp->dest, udp->len); //print_bytes(0, payload, payload_len); } struct listener_entry *lx = find_listener_by_port(udp->dest); if (lx){ struct socket_address src = make_socket_address(src_ip, udp->src); struct socket_address dst = make_socket_address(dst_ip, udp->dest); lx->rcvr(src, dst, payload, payload_len); } } static void handle_icmp_packet(struct ip_addr src, struct ip_addr dst, struct icmp_echo_hdr *icmp, size_t len) { switch (icmp->type){ case ICMP_DUR: // Destinatino Unreachable if (icmp->code == ICMP_DUR_PORT){ // port unreachable //handle destination port unreachable (the host ctrl+c'd the app): //filter out non udp data response struct ip_hdr *ip = (struct ip_hdr *)(((uint8_t*)icmp) + sizeof(struct icmp_echo_hdr)); struct udp_hdr *udp = (struct udp_hdr *)(((char *)ip) + IP_HLEN); if (IPH_PROTO(ip) != IP_PROTO_UDP) break; struct listener_entry *lx = find_listener_by_port(udp->src); if (lx){ struct socket_address src = make_socket_address(ip->src, udp->src); struct socket_address dst = make_socket_address(ip->dest, udp->dest); lx->rcvr(src, dst, NULL, 0); } putchar('i'); } else { //printf("icmp dst unr (code: %d)", icmp->code); putchar('i'); } break; case ICMP_ECHO:{ const void *icmp_data_buff = ((uint8_t*)icmp) + sizeof(struct icmp_echo_hdr); size_t icmp_data_len = len - sizeof(struct icmp_echo_hdr); struct icmp_echo_hdr echo_reply; echo_reply.type = 0; echo_reply.code = 0; echo_reply.chksum = 0; echo_reply.id = icmp->id; echo_reply.seqno = icmp->seqno; echo_reply.chksum = ~chksum_buffer( //data checksum (unsigned short *)icmp_data_buff, icmp_data_len/sizeof(short), chksum_buffer( //header checksum (unsigned short *)&echo_reply, sizeof(echo_reply)/sizeof(short), 0) ); send_ip_pkt( src, IP_PROTO_ICMP, &echo_reply, sizeof(echo_reply), icmp_data_buff, icmp_data_len ); break; } default: break; } } static void send_arp_reply(struct arp_eth_ipv4 *req, eth_mac_addr_t our_mac) { struct arp_eth_ipv4 reply _AL4; reply.ar_hrd = req->ar_hrd; reply.ar_pro = req->ar_pro; reply.ar_hln = req->ar_hln; reply.ar_pln = req->ar_pln; reply.ar_op = ARPOP_REPLY; memcpy(reply.ar_sha, &our_mac, 6); memcpy(reply.ar_sip, req->ar_tip, 4); memcpy(reply.ar_tha, req->ar_sha, 6); memcpy(reply.ar_tip, req->ar_sip, 4); eth_mac_addr_t t; memcpy(t.addr, reply.ar_tha, 6); send_pkt(t, ETHERTYPE_ARP, &reply, sizeof(reply), 0, 0, 0, 0); } void net_common_send_arp_request(const struct ip_addr *addr){ struct arp_eth_ipv4 req _AL4; req.ar_hrd = ARPHRD_ETHER; req.ar_pro = ETHERTYPE_IPV4; req.ar_hln = sizeof(eth_mac_addr_t); req.ar_pln = sizeof(struct ip_addr); req.ar_op = ARPOP_REQUEST; memcpy(req.ar_sha, ethernet_mac_addr(), sizeof(eth_mac_addr_t)); memcpy(req.ar_sip, get_ip_addr(), sizeof(struct ip_addr)); memset(req.ar_tha, 0x00, sizeof(eth_mac_addr_t)); memcpy(req.ar_tip, addr, sizeof(struct ip_addr)); //send the request with a broadcast ethernet mac address send_pkt(BCAST_MAC_ADDR, ETHERTYPE_ARP, &req, sizeof(req), 0, 0, 0, 0); } void send_gratuitous_arp(void){ struct arp_eth_ipv4 req _AL4; req.ar_hrd = ARPHRD_ETHER; req.ar_pro = ETHERTYPE_IPV4; req.ar_hln = sizeof(eth_mac_addr_t); req.ar_pln = sizeof(struct ip_addr); req.ar_op = ARPOP_REQUEST; memcpy(req.ar_sha, ethernet_mac_addr(), sizeof(eth_mac_addr_t)); memcpy(req.ar_sip, get_ip_addr(), sizeof(struct ip_addr)); memset(req.ar_tha, 0x00, sizeof(eth_mac_addr_t)); memcpy(req.ar_tip, get_ip_addr(), sizeof(struct ip_addr)); //send the request with a broadcast ethernet mac address send_pkt(BCAST_MAC_ADDR, ETHERTYPE_ARP, &req, sizeof(req), 0, 0, 0, 0); } static void handle_arp_packet(struct arp_eth_ipv4 *p, size_t size) { if (size < sizeof(struct arp_eth_ipv4)){ printf("\nhandle_arp: weird size = %d\n", (int)size); return; } if (0){ printf("ar_hrd = %d\n", p->ar_hrd); printf("ar_pro = %d\n", p->ar_pro); printf("ar_hln = %d\n", p->ar_hln); printf("ar_pln = %d\n", p->ar_pln); printf("ar_op = %d\n", p->ar_op); printf("ar_sha = "); print_mac_addr(p->ar_sha); newline(); printf("ar_sip = "); print_ip_addr (p->ar_sip); newline(); printf("ar_tha = "); print_mac_addr(p->ar_tha); newline(); printf("ar_tip = "); print_ip_addr (p->ar_tip); newline(); } if (p->ar_hrd != ARPHRD_ETHER || p->ar_pro != ETHERTYPE_IPV4 || p->ar_hln != 6 || p->ar_pln != 4) return; if (p->ar_op == ARPOP_REPLY){ struct ip_addr ip_addr; memcpy(&ip_addr, p->ar_sip, sizeof(ip_addr)); eth_mac_addr_t mac_addr; memcpy(&mac_addr, p->ar_sha, sizeof(mac_addr)); arp_cache_update(&ip_addr, &mac_addr); } if (p->ar_op != ARPOP_REQUEST) return; struct ip_addr sip; struct ip_addr tip; sip.addr = get_int32(p->ar_sip); tip.addr = get_int32(p->ar_tip); if (memcmp(&tip, &_local_ip_addr, sizeof(_local_ip_addr)) == 0){ // They're looking for us... send_arp_reply(p, _local_mac_addr); } } void handle_eth_packet(uint32_t *p, size_t nlines) { static size_t bcount = 0; if (debug) printf("===> %d\n", (int)bcount++); if (debug) print_buffer(p, nlines); padded_eth_hdr_t *eth_hdr = (padded_eth_hdr_t *)p; if (eth_hdr->ethertype == ETHERTYPE_ARP){ struct arp_eth_ipv4 *arp = (struct arp_eth_ipv4 *)(p + 4); handle_arp_packet(arp, nlines*sizeof(uint32_t) - 14); } else if (eth_hdr->ethertype == ETHERTYPE_IPV4){ struct ip_hdr *ip = (struct ip_hdr *)(p + 4); if (IPH_V(ip) != 4 || IPH_HL(ip) != 5) // ignore pkts w/ bad version or options return; if (IPH_OFFSET(ip) & (IP_MF | IP_OFFMASK)) // ignore fragmented packets return; // filter on dest ip addr (should be broadcast or for us) bool is_bcast = memcmp(ð_hdr->dst, &BCAST_MAC_ADDR, sizeof(BCAST_MAC_ADDR)) == 0; bool is_my_ip = memcmp(&ip->dest, &_local_ip_addr, sizeof(_local_ip_addr)) == 0; if (!is_bcast && !is_my_ip) return; arp_cache_update(&ip->src, (eth_mac_addr_t *)(((char *)p)+8)); int protocol = IPH_PROTO(ip); int len = IPH_LEN(ip) - IP_HLEN; switch (protocol){ case IP_PROTO_UDP: handle_udp_packet(ip->src, ip->dest, (struct udp_hdr *)(((char *)ip) + IP_HLEN), len); break; case IP_PROTO_ICMP: handle_icmp_packet(ip->src, ip->dest, (struct icmp_echo_hdr *)(((char *)ip) + IP_HLEN), len); break; default: // ignore break; } } else return; // Not ARP or IPV4, ignore } uhd-3.5.5/firmware/zpu/lib/net_common.h000066400000000000000000000036471224274632000200270ustar00rootroot00000000000000/* * Copyright 2009-2012 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_NET_COMMON_H #define INCLUDED_NET_COMMON_H #include #include #include #include /*! * Setup an entry in the protocol framer for a UDP socket. * * \param eth_dst ethernet destination mac addr * \param eth_src ethernet source mac addr * \param sock_dst udp/ip socket destination * \param sock_src udp/ip socket source * \param which the index into the table */ void setup_framer( eth_mac_addr_t eth_dst, eth_mac_addr_t eth_src, struct socket_address sock_dst, struct socket_address sock_src, size_t which ); typedef void (*udp_receiver_t)(struct socket_address src, struct socket_address dst, unsigned char *payload, int payload_len); void init_udp_listeners(void); void register_addrs(const eth_mac_addr_t *mac_addr, const struct ip_addr *ip_addr); void register_udp_listener(int port, udp_receiver_t rcvr); void send_udp_pkt(int src_port, struct socket_address dst, const void *buf, size_t len); void handle_eth_packet(uint32_t *p, size_t nlines); void send_gratuitous_arp(void); //! Send an ARP request for the given IP address void net_common_send_arp_request(const struct ip_addr *addr); #endif /* INCLUDED_NET_COMMON_H */ uhd-3.5.5/firmware/zpu/lib/nonstdio.c000066400000000000000000000042311224274632000175070ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include static const char hex[16] = "0123456789ABCDEF"; // %x void puthex4(unsigned long x) { putchar(hex[x & 0xf]); } // %02x void puthex8(unsigned long x) { putchar(hex[(x >> 4) & 0xf]); putchar(hex[x & 0xf]); } // %04x void puthex16(unsigned long x) { puthex8(x >> 8); puthex8(x); } // %08x void puthex32(unsigned long x) { puthex16(x >> 16); puthex16(x); } void puthex4_nl(unsigned long x) { puthex4(x); newline(); } void puthex8_nl(unsigned long x) { puthex8(x); newline(); } void puthex16_nl(unsigned long x) { puthex16(x); newline(); } void puthex32_nl(unsigned long x) { puthex32(x); newline(); } /* void reverse(char s[]) { int c, i, j; for (i = 0, j = strlen(s)-1; i= 0) ? value : 0-value; } //we'll keep the puthex functions above because they're way more lightweight. but sometimes you just want to print in decimal, you know? char *itoa(signed long value, char *result, int base) { // check that the base if valid if (base < 2 || base > 16) { *result = 0; return result; } char* out = result; signed long quotient = value; do { *out = hex[ abs(quotient % base) ]; ++out; quotient /= base; } while ( quotient ); // Only apply negative sign for base 10 if ( value < 0 && base == 10) *out++ = '-'; *out = 0; reverse( result ); return result; } */ uhd-3.5.5/firmware/zpu/lib/nonstdio.h000066400000000000000000000030331224274632000175130ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_NONSTDIO_H #define INCLUDED_NONSTDIO_H #include #include #include void putstr(const char *s); // cf puts, no added newline void puthex4(unsigned long x); // output 1 hex digit void puthex8(unsigned long x); // output 2 hex digits void puthex16(unsigned long x); // output 4 hex digits void puthex32(unsigned long x); // output 8 hex digits void puthex4_nl(unsigned long x); // ... followed by newline void puthex8_nl(unsigned long x); void puthex16_nl(unsigned long x); void puthex32_nl(unsigned long x); #define puthex puthex32 #define puthex_nl puthex32_nl void newline(); // putchar('\n') void print_mac_addr(const void *addr); void print_ip_addr(const void *addr); void print_buffer(uint32_t *buf, size_t n); #endif /* INCLUDED_NONSTDIO_H */ uhd-3.5.5/firmware/zpu/lib/pic.c000066400000000000000000000043441224274632000164320ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "pic.h" #include "hal_io.h" #include "memory_map.h" #define NVECTORS 8 /* * Our secondary interrupt vector. */ irq_handler_t pic_vector[NVECTORS]; void pic_init(void) { // uP is level triggered pic_regs->mask = ~0; // mask all interrupts pic_regs->edge_enable = PIC_ONETIME_INT | PIC_UNDERRUN_INT | PIC_OVERRUN_INT | PIC_PPS_INT; pic_regs->polarity = ~0 & ~PIC_PHY_INT; // rising edge pic_regs->pending = ~0; // clear all pending ints for (int i = 0; i < NVECTORS; i++){ pic_vector[i] = pic_nop_handler; } } /* * This magic gets pic_interrupt_handler wired into the * system interrupt handler with the appropriate prologue and * epilogue. */ //FIXME zpu-gcc does not install interrupt_handler like this //void pic_interrupt_handler() __attribute__ ((interrupt_handler)); void pic_interrupt_handler() { // pending and not masked interrupts int live = pic_regs->pending & ~pic_regs->mask; // FIXME loop while there are interrupts to service. // That will reduce our overhead. // handle the first one set int i; int mask; for (i=0, mask=1; i < NVECTORS; i++, mask <<= 1){ if (mask & live){ // handle this one // puthex_nl(i); (*pic_vector[i])(i); pic_regs->pending = mask; // clear pending interrupt return; } } } void pic_register_handler(unsigned irq, irq_handler_t handler) { if (irq >= NVECTORS) return; pic_vector[irq] = handler; pic_regs->mask &= ~IRQ_TO_MASK(irq); } void pic_nop_handler(unsigned irq) { // nop } uhd-3.5.5/firmware/zpu/lib/pic.h000066400000000000000000000022131224274632000164300ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_PIC_H #define INCLUDED_PIC_H typedef void (*irq_handler_t)(unsigned irq); void pic_init(void); void pic_register_handler(unsigned irq, irq_handler_t handler); void pic_nop_handler(unsigned irq); // default handler does nothing // FIXME inline assembler int pic_disable_interrupts(); int pic_enable_interrupts(); void pic_restore_interrupts(int prev_status); void pic_interrupt_handler(); #endif /* INCLUDED_PIC_H */ uhd-3.5.5/firmware/zpu/lib/pkt_ctrl.c000066400000000000000000000061031224274632000174740ustar00rootroot00000000000000/* * Copyright 2010-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "pkt_ctrl.h" #include "memory_map.h" #include //status signals from WB into PR #define CPU_STAT_RD_DONE (1 << 0) #define CPU_STAT_RD_EROR (1 << 1) #define CPU_STAT_RD_IDLE (1 << 2) //status signals from PR into WB #define CPU_STAT_WR_DONE (1 << 4) #define CPU_STAT_WR_EROR (1 << 5) #define CPU_STAT_WR_IDLE (1 << 6) //control signals from WB into PR #define CPU_CTRL_RD_CLEAR (1 << 0) #define CPU_CTRL_RD_START (1 << 1) //control signals from PR into WB #define CPU_CTRL_WR_CLEAR (1 << 2) #define CPU_CTRL_WR_START (1 << 3) void pkt_ctrl_program_inspector( const struct ip_addr *ip_addr, uint16_t data_port ){ router_ctrl->ip_addr = ip_addr->addr; router_ctrl->data_ports = data_port; } void pkt_ctrl_set_routing_mode(pkt_ctrl_routing_mode_t mode){ //About to change the mode; ensure that we are accepting packets. //The plumbing will not switch if it cannot pass an end of packet. pkt_ctrl_release_incoming_buffer(); //Change the mode; this switches the valves and crossbars. router_ctrl->mode_ctrl = mode; } static inline void cpu_stat_wait_for(int bm){ while((router_status->status & bm) == 0){ /* NOP */ } } void *pkt_ctrl_claim_incoming_buffer(size_t *num_lines){ uint32_t status = router_status->status; //if done: clear the read and return the buffer if (status & CPU_STAT_RD_DONE){ *num_lines = (router_status->status >> 16) & 0xffff; return ((uint32_t *) ROUTER_RAM_BASE); } //if error: drop the packet and start a new read if (status & CPU_STAT_RD_EROR){ putstr("E"); pkt_ctrl_release_incoming_buffer(); } //otherwise null for nothing ready return NULL; } void pkt_ctrl_release_incoming_buffer(void){ //clear, wait for idle, and start a new read router_ctrl->iface_ctrl = CPU_CTRL_RD_CLEAR; cpu_stat_wait_for(CPU_STAT_RD_IDLE); router_ctrl->iface_ctrl = CPU_CTRL_RD_START; } void *pkt_ctrl_claim_outgoing_buffer(void){ //wait for idle and return the buffer cpu_stat_wait_for(CPU_STAT_WR_IDLE); return ((uint32_t *) ROUTER_RAM_BASE); } void pkt_ctrl_commit_outgoing_buffer(size_t num_lines){ //start a new write with the given length router_ctrl->iface_ctrl = ((num_lines & 0xffff) << 16) | CPU_CTRL_WR_START; //wait for the write to become done cpu_stat_wait_for(CPU_STAT_WR_DONE); router_ctrl->iface_ctrl = CPU_CTRL_WR_CLEAR; } uhd-3.5.5/firmware/zpu/lib/pkt_ctrl.h000066400000000000000000000034171224274632000175060ustar00rootroot00000000000000/* * Copyright 2010-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_PKT_CTRL_H #define INCLUDED_PKT_CTRL_H #include #include #include #include typedef enum { PKT_CTRL_ROUTING_MODE_SLAVE = 0, PKT_CTRL_ROUTING_MODE_MASTER = 1 } pkt_ctrl_routing_mode_t; //! Program the decision values into the packet inspector void pkt_ctrl_program_inspector( const struct ip_addr *ip_addr, uint16_t data_port ); //! Set the routing mode for this device void pkt_ctrl_set_routing_mode(pkt_ctrl_routing_mode_t mode); /*! * Try to claim an incomming buffer. * \param num_lines filled with the buffer size * \return a pointer to the buffer memory or NULL */ void *pkt_ctrl_claim_incoming_buffer(size_t *num_lines); /*! * Release the incoming buffer. Call when done. */ void pkt_ctrl_release_incoming_buffer(void); /*! * Claim an outgoing buffer. * \return a pointer to the buffer */ void *pkt_ctrl_claim_outgoing_buffer(void); /*! * Commit the outgoing buffer. * \param num_lines how many lines written. */ void pkt_ctrl_commit_outgoing_buffer(size_t num_lines); #endif /* INCLUDED_PKT_CTRL_H */ uhd-3.5.5/firmware/zpu/lib/print_addrs.c000066400000000000000000000020021224274632000201550ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "nonstdio.h" void print_mac_addr(const void *addr) { uint8_t *p = (uint8_t *)addr; for(size_t i = 0; i < 6; i++){ if(i) putchar(':'); puthex8(p[i]); } } void print_ip_addr(const void *addr){ uint8_t *p = (uint8_t *)addr; printf("%d.%d.%d.%d", p[0], p[1], p[2], p[3]); } uhd-3.5.5/firmware/zpu/lib/print_buffer.c000066400000000000000000000017141224274632000203420ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include void print_buffer(uint32_t *buf, size_t n) { size_t i; for (i = 0; i < n; i++){ if (i % 4 == 0) puthex16(i * 4); putchar(' '); puthex32(buf[i]); if (i % 4 == 3) newline(); } newline(); } uhd-3.5.5/firmware/zpu/lib/print_rmon_regs.c000066400000000000000000000022061224274632000210610ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "print_rmon_regs.h" #include "eth_mac.h" #include "nonstdio.h" void print_rmon_regs(void) { int i; for (i=0; i <= 0x10; i++){ putstr("RMON[0x"); puthex8(i); putstr("] = "); printf("%d\n", eth_mac_read_rmon(i)); } for (i=0x20; i <= 0x30; i++){ putstr("RMON[0x"); puthex8(i); putstr("] = "); printf("%d\n", eth_mac_read_rmon(i)); } } uhd-3.5.5/firmware/zpu/lib/print_rmon_regs.h000066400000000000000000000015401224274632000210660ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_PRINT_RMON_REGS_H #define INCLUDED_PRINT_RMON_REGS_H void print_rmon_regs(void); #endif /* INCLUDED_PRINT_RMON_REGS_H */ uhd-3.5.5/firmware/zpu/lib/printf.c000066400000000000000000000051241224274632000171560ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* * Based on code from the SDCC z80 library ;) */ #include #include static void _printn(unsigned u, unsigned base, char issigned, void (*emitter)(char, void *), void *pData) { const char *_hex = "0123456789ABCDEF"; if (issigned && ((int)u < 0)) { (*emitter)('-', pData); u = (unsigned)-((int)u); } if (u >= base) _printn(u/base, base, 0, emitter, pData); (*emitter)(_hex[u%base], pData); } static void _printf(const char *format, void (*emitter)(char, void *), void *pData, va_list va) { while (*format) { if (*format != '%') (*emitter)(*format, pData); else { switch (*++format) { case 0: /* hit end of format string */ return; case 'c': { char c = (char)va_arg(va, int); (*emitter)(c, pData); break; } case 'u': { unsigned u = va_arg(va, unsigned); _printn(u, 10, 0, emitter, pData); break; } case 'd': { unsigned u = va_arg(va, unsigned); _printn(u, 10, 1, emitter, pData); break; } case 'x': case 'p': { unsigned u = va_arg(va, unsigned); _printn(u, 16, 0, emitter, pData); break; } case 's': { char *s = va_arg(va, char *); while (*s) { (*emitter)(*s, pData); s++; } break; } } } format++; } } static void _char_emitter(char c, void *pData __attribute__((unused))) { putchar(c); } int printf(const char *format, ...) { va_list va; va_start(va, format); _printf(format, _char_emitter, NULL, va); va_end(va); // wrong return value... return 0; } #if 0 // Totally dangerous. Don't use static void _buf_emitter(char c, void *pData) { *((*((char **)pData)))++ = c; } int sprintf(char *pInto, const char *format, ...) { va_list va; va_start(va, format); _printf(format, _buf_emitter, &pInto, va); *pInto++ = '\0'; va_end(va); // FIXME wrong return value return 0; } #endif uhd-3.5.5/firmware/zpu/lib/printf.c.smaller000066400000000000000000000046711224274632000206220ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* * Based on code from the SDCC z80 library ;) */ #include #include #include /* FIXME refactor into stdio */ #define PUTCHAR(x) hal_putc(x) static void _printn(unsigned u, unsigned base, char issigned) { const char *_hex = "0123456789ABCDEF"; if (issigned && ((int)u < 0)) { PUTCHAR('-'); u = (unsigned)-((int)u); } if (u >= base) _printn(u/base, base, 0); PUTCHAR(_hex[u%base]); } static void _printf(const char *format, va_list va) { while (*format) { if (*format != '%') PUTCHAR(*format); else { switch (*++format) { case 0: /* hit end of format string */ return; case 'c': { char c = (char)va_arg(va, int); PUTCHAR(c); break; } case 'u': { unsigned u = va_arg(va, unsigned); _printn(u, 10, 0); break; } case 'd': { unsigned u = va_arg(va, unsigned); _printn(u, 10, 1); break; } case 'x': case 'p': { unsigned u = va_arg(va, unsigned); _printn(u, 16, 0); break; } case 's': { char *s = va_arg(va, char *); while (*s) { PUTCHAR(*s); s++; } break; } } } format++; } } #if 0 static void _char_emitter(char c, void *pData __attribute__((unused))) { hal_putc(c); } #endif int printf(const char *format, ...) { va_list va; va_start(va, format); _printf(format, va); // wrong return value... return 0; } #if 0 // Totally dangerous. Don't use static void _buf_emitter(char c, void *pData) { *((*((char **)pData)))++ = c; } int sprintf(char *pInto, const char *format, ...) { va_list va; va_start(va, format); _printf(format, _buf_emitter, &pInto, va); *pInto++ = '\0'; // FIXME wrong return value return 0; } #endif uhd-3.5.5/firmware/zpu/lib/spi.c000066400000000000000000000033771224274632000164570ustar00rootroot00000000000000/* * Copyright 2012 Ettus Research LLC * Copyright 2007,2008 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "spi.h" #include "memory_map.h" #include "nonstdio.h" void spi_init(void) { spi_core->divider = 10; } void spi_wait(void) { while ((readback_mux->irqs & SPI_READY_IRQ) == 0){ //NOP } } uint32_t spi_transact(bool readback, int slave, uint32_t data, int length, uint32_t flags) { uint32_t control_word = 0; control_word |= (slave << SPI_CORE_SLAVE_SELECT_SHIFT); control_word |= (length << SPI_CORE_NUM_BITS_SHIFT); if ((flags & SPI_PUSH_RISE) != 0) control_word |= (1 << SPI_CORE_DATA_OUT_EDGE_SHIFT); if ((flags & SPI_PUSH_FALL) != 0) control_word |= (0 << SPI_CORE_DATA_OUT_EDGE_SHIFT); if ((flags & SPI_LATCH_RISE) != 0) control_word |= (1 << SPI_CORE_DATA_IN_EDGE_SHIFT); if ((flags & SPI_LATCH_FALL) != 0) control_word |= (0 << SPI_CORE_DATA_IN_EDGE_SHIFT); const uint32_t data_out = data << (32 - length); spi_wait(); spi_core->control = control_word; spi_core->data = data_out; if (!readback) return 0; spi_wait(); return readback_mux->spi; } uhd-3.5.5/firmware/zpu/lib/spi.h000066400000000000000000000031001224274632000164440ustar00rootroot00000000000000/* * Copyright 2012 Ettus Research LLC * Copyright 2006,2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_SPI_H #define INCLUDED_SPI_H #include #include /*! * \brief One time call to initialize SPI */ void spi_init(void); /*! * \brief Wait for last SPI transaction to complete. * Unless you need to know it completed, it's not necessary to call this. */ void spi_wait(void); #define SPI_TXONLY false // readback: no #define SPI_TXRX true // readback: yes /* * Flags for spi_transact */ #define SPI_PUSH_RISE (1 << 0) // push tx data on rising edge of SCLK #define SPI_PUSH_FALL (1 << 1) // push tx data on falling edge of SCLK #define SPI_LATCH_RISE (1 << 2) // latch rx data on rising edge of SCLK #define SPI_LATCH_FALL (1 << 3) // latch rx data on falling edge of SCLK uint32_t spi_transact(bool readback, int slave, uint32_t data, int length, uint32_t flags); #endif /* INCLUDED_SPI_H */ uhd-3.5.5/firmware/zpu/lib/stdint.h000066400000000000000000000021261224274632000171650ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007,2009 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_STDINT_H #define INCLUDED_STDINT_H typedef signed char int8_t; typedef unsigned char uint8_t; typedef short int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned int uint32_t; typedef long long int int64_t; typedef unsigned long long int uint64_t; typedef int intptr_t; typedef unsigned int uintptr_t; #endif /* INCLUDED_STDINT_H */ uhd-3.5.5/firmware/zpu/lib/stdio.h000066400000000000000000000020061224274632000167770ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_STDIO_H #define INCLUDED_STDIO_H // very trimmed down stdio.h See also nonstdio.h #ifndef NULL #define NULL 0 #endif #ifndef EOF #define EOF (-1) #endif int putchar(int c); int puts(const char *s); int printf(const char *format, ...); int getchar(void); #endif /* INCLUDED_STDIO_H */ uhd-3.5.5/firmware/zpu/lib/u2_init.c000066400000000000000000000044411224274632000172260ustar00rootroot00000000000000/* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "u2_init.h" #include "memory_map.h" #include "spi.h" #include "pic.h" #include "hal_io.h" #include "hal_uart.h" #include "i2c.h" #include "mdelay.h" #include "clocks.h" #include "usrp2/fw_common.h" #include "nonstdio.h" /* * We ought to arrange for this to be called before main, but for now, * we require that the user's main call u2_init as the first thing... */ bool u2_init(void) { hal_disable_ints(); hal_io_init(); // init spi, so that we can switch over to the high-speed clock spi_init(); // set up the default clocks clocks_init(); hal_uart_init(); // init i2c so we can read our rev pic_init(); // progammable interrupt controller i2c_init(); hal_enable_ints(); // flash all leds to let us know board is alive #ifndef BOOTLOADER hal_set_led_src(0x0, 0x1f); /* software ctrl */ hal_set_leds(0x0, 0x1f); mdelay(300); hal_set_leds(LED_E, LED_E); mdelay(300); hal_set_leds(LED_C, LED_C); mdelay(300); hal_set_leds(LED_A, LED_A); mdelay(300); for (int i = 0; i < 3; i++){ //blink all static const int blinks = LED_E | LED_C | LED_A; hal_set_leds(0x0, 0x1f); mdelay(100); hal_set_leds(blinks, 0x1f); mdelay(100); } #endif hal_set_led_src(0x1f & ~LED_D, 0x1f); /* hardware ctrl */ hal_set_leds(LED_D, 0x1f); // Leave one on #if 0 // test register readback int rr, vv; vv = ad9777_read_reg(0); printf("ad9777 reg[0] = 0x%x\n", vv); for (rr = 0x04; rr <= 0x0d; rr++){ vv = ad9510_read_reg(rr); printf("ad9510 reg[0x%x] = 0x%x\n", rr, vv); } #endif output_regs->serdes_ctrl = (SERDES_ENABLE | SERDES_RXEN); return true; } uhd-3.5.5/firmware/zpu/lib/u2_init.h000066400000000000000000000015561224274632000172370ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_U2_INIT_H #define INCLUDED_U2_INIT_H #include /*! * one-time init */ bool u2_init(void); #endif /* INCLUDED_U2_INIT_H */ uhd-3.5.5/firmware/zpu/lib/udp_fw_update.h000066400000000000000000000043261224274632000205120ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2010 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "net_common.h" #define USRP2_UDP_UPDATE_PORT 49154 typedef enum { USRP2_FW_UPDATE_ID_WAT = ' ', USRP2_FW_UPDATE_ID_OHAI_LOL = 'a', USRP2_FW_UPDATE_ID_OHAI_OMG = 'A', USRP2_FW_UPDATE_ID_WATS_TEH_FLASH_INFO_LOL = 'f', USRP2_FW_UPDATE_ID_HERES_TEH_FLASH_INFO_OMG = 'F', USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL = 'e', USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG = 'E', USRP2_FW_UPDATE_ID_R_U_DONE_ERASING_LOL = 'd', USRP2_FW_UPDATE_ID_IM_DONE_ERASING_OMG = 'D', USRP2_FW_UPDATE_ID_NOPE_NOT_DONE_ERASING_OMG = 'B', USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL = 'w', USRP2_FW_UPDATE_ID_WROTE_TEH_FLASHES_OMG = 'W', USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL = 'r', USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG = 'R', USRP2_FW_UPDATE_ID_RESET_MAH_COMPUTORZ_LOL = 's', USRP2_FW_UPDATE_ID_RESETTIN_TEH_COMPUTORZ_OMG = 'S', USRP2_FW_UPDATE_ID_I_CAN_HAS_HW_REV_LOL = 'v', USRP2_FW_UPDATE_ID_HERES_TEH_HW_REV_OMG = 'V', USRP2_FW_UPDATE_ID_KTHXBAI = '~' } usrp2_fw_update_id_t; typedef struct { uint32_t proto_ver; uint32_t id; uint32_t seq; union { uint32_t ip_addr; uint32_t hw_rev; struct { uint32_t flash_addr; uint32_t length; uint8_t data[256]; } flash_args; struct { uint32_t sector_size_bytes; uint32_t memory_size_bytes; } flash_info_args; } data; } usrp2_fw_update_data_t; void handle_udp_fw_update_packet(struct socket_address src, struct socket_address dst, unsigned char *payload, int payload_len); uhd-3.5.5/firmware/zpu/lib/udp_uart.c000066400000000000000000000077421224274632000175070ustar00rootroot00000000000000/* * Copyright 2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "udp_uart.h" #include "hal_uart.h" #include "net_common.h" #include "compiler.h" #include /*********************************************************************** * Constants **********************************************************************/ #define MAX_NUM_UARTS 4 #ifndef UDP_UART_MASK #error missing definition for UDP_UART_MASK enable mask #endif static const size_t num_idle_cyc_b4_flush = 11; //small but lucky number /*********************************************************************** * Globals **********************************************************************/ static uint16_t _base_port; typedef struct{ struct socket_address dst; _AL4 uint8_t buf[256]; size_t len; //length of buffer size_t cyc; //idle cycle count } udp_uart_state_t; static udp_uart_state_t _states[MAX_NUM_UARTS]; /*********************************************************************** * UDP handler for UARTs **********************************************************************/ static void handle_uart_data_packet( struct socket_address src, struct socket_address dst, unsigned char *payload, int payload_len ){ //handle ICMP destination unreachable if (payload == NULL){ const size_t which = src.port-_base_port; if (which >= MAX_NUM_UARTS) return; _states[which].dst.port = 0; } //handle a regular blocking UART write else{ const size_t which = dst.port-_base_port; if (which >= MAX_NUM_UARTS) return; _states[which].dst = src; for (size_t i = 0; i < payload_len; i++){ hal_uart_putc((hal_uart_name_t)which, (int)payload[i]); } } } /*********************************************************************** * Public init function **********************************************************************/ void udp_uart_init(const uint16_t base_port){ _base_port = base_port; for(size_t i = 0; i < MAX_NUM_UARTS; i++){ _states[i].dst.port = 0; //reset to null port _states[i].len = 0; _states[i].cyc = 0; register_udp_listener(_base_port+i, handle_uart_data_packet); } } /*********************************************************************** * Public poll function **********************************************************************/ void udp_uart_poll(void){ for (size_t i = 0; i < MAX_NUM_UARTS; i++){ if (((UDP_UART_MASK) & (1 << i)) == 0) continue; bool newline = false; udp_uart_state_t *state = &_states[i]; //read all characters we can without blocking for (size_t j = state->len; j < sizeof(_states[0].buf); j++){ int ret = hal_uart_getc_noblock((hal_uart_name_t)i); if (ret == -1) break; char ch = (char) ret; if (ch == '\n' || ch == '\r') newline = true; state->buf[j] = ch; state->len++; state->cyc = 0; //reset idle cycles } //nothing in buffer, continue to next uart if (state->len == 0) continue; //send out a message if newline or forced flush if (newline || state->cyc++ > num_idle_cyc_b4_flush){ if (state->dst.port != 0) send_udp_pkt(_base_port+i, state->dst, state->buf, state->len); state->len = 0; state->cyc = 0; } } } uhd-3.5.5/firmware/zpu/lib/udp_uart.h000066400000000000000000000020701224274632000175010ustar00rootroot00000000000000/* * Copyright 2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_UDP_UART_H #define INCLUDED_UDP_UART_H #include /*! * Initialize the UDP/UART module. * Registers handler into the network. * \param base_port the source port for UART0 */ void udp_uart_init(const uint16_t base_port); /*! * Polls the UART state machine, * and sends messages over UDP. */ void udp_uart_poll(void); #endif /* INCLUDED_UDP_UART_H */ uhd-3.5.5/firmware/zpu/lwip/000077500000000000000000000000001224274632000157135ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/000077500000000000000000000000001224274632000173245ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/CHANGELOG000066400000000000000000002725051224274632000205510ustar00rootroot00000000000000FUTURE * TODO: The lwIP source code makes some invalid assumptions on processor word-length, storage sizes and alignment. See the mailing lists for problems with exoteric (/DSP) architectures showing these problems. We still have to fix some of these issues neatly. * TODO: the PPP code is broken in a few ways. There are namespace collisions on BSD systems and many assumptions on word-length (sizeof(int)). In ppp.c an assumption is made on the availability of a thread subsystem. Either PPP needs to be moved to contrib/ports/??? or rearranged to be more generic. HISTORY (CVS HEAD) * [Enter new changes just after this line - do not remove this line] ++ New features: ++ Bugfixes: (STABLE-1.3.1) ++ New features: 2009-05-10 Simon Goldschmidt * opt.h, sockets.c, pbuf.c, netbuf.h, pbuf.h: task #7013: Added option LWIP_NETIF_TX_SINGLE_PBUF to try to create transmit packets from only one pbuf to help MACs that don't support scatter-gather DMA. 2009-05-09 Simon Goldschmidt * icmp.h, icmp.c: Shrinked ICMP code, added option to NOT check icoming ECHO pbuf for size (just use it): LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN 2009-05-05 Simon Goldschmidt, Jakob Stoklund Olesen * ip.h, ip.c: Added ip_current_netif() & ip_current_header() to receive extended info about the currently received packet. 2009-04-27 Simon Goldschmidt * sys.h: Made SYS_LIGHTWEIGHT_PROT and sys_now() work with NO_SYS=1 2009-04-25 Simon Goldschmidt * mem.c, opt.h: Added option MEM_USE_POOLS_TRY_BIGGER_POOL to try the next bigger malloc pool if one is empty (only usable with MEM_USE_POOLS). 2009-04-21 Simon Goldschmidt * dns.c, init.c, dns.h, opt.h: task #7507, patch #6786: DNS supports static hosts table. New configuration options DNS_LOCAL_HOSTLIST and DNS_LOCAL_HOSTLIST_IS_DYNAMIC. Also, DNS_LOOKUP_LOCAL_EXTERN() can be defined as an external function for lookup. 2009-04-15 Simon Goldschmidt * dhcp.c: patch #6763: Global DHCP XID can be redefined to something more unique 2009-03-31 Kieran Mansley * tcp.c, tcp_out.c, tcp_in.c, sys.h, tcp.h, opts.h: add support for TCP timestamp options, off by default. Rework tcp_enqueue() to take option flags rather than specified option data 2009-02-18 Simon Goldschmidt * cc.h: Added printf formatter for size_t: SZT_F 2009-02-16 Simon Goldschmidt (patch by Rishi Khan) * icmp.c, opt.h: patch #6539: (configurable) response to broadcast- and multicast pings 2009-02-12 Simon Goldschmidt * init.h: Added LWIP_VERSION to get the current version of the stack 2009-02-11 Simon Goldschmidt (suggested by Gottfried Spitaler) * opt.h, memp.h/.c: added MEMP_MEM_MALLOC to use mem_malloc/mem_free instead of the pool allocator (can save code size with MEM_LIBC_MALLOC if libc-malloc is otherwise used) 2009-01-28 Jonathan Larmour (suggested by Bill Bauerbach) * ipv4/inet_chksum.c, ipv4/lwip/inet_chksum.h: inet_chksum_pseudo_partial() is only used by UDPLITE at present, so conditionalise it. 2008-12-03 Simon Goldschmidt (base on patch from Luca Ceresoli) * autoip.c: checked in (slightly modified) patch #6683: Customizable AUTOIP "seed" address. This should reduce AUTOIP conflicts if LWIP_AUTOIP_CREATE_SEED_ADDR is overridden. 2008-10-02 Jonathan Larmour and Rishi Khan * sockets.c (lwip_accept): Return EWOULDBLOCK if would block on non-blocking socket. 2008-06-30 Simon Goldschmidt * mem.c, opt.h, stats.h: fixed bug #21433: Calling mem_free/pbuf_free from interrupt context isn't safe: LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT allows mem_free to run between mem_malloc iterations. Added illegal counter for mem stats. 2008-06-27 Simon Goldschmidt * stats.h/.c, some other files: patch #6483: stats module improvement: Added defines to display each module's statistic individually, added stats defines for MEM, MEMP and SYS modules, removed (unused) rexmit counter. 2008-06-17 Simon Goldschmidt * err.h: patch #6459: Made err_t overridable to use a more efficient type (define LWIP_ERR_T in cc.h) 2008-06-17 Simon Goldschmidt * slipif.c: patch #6480: Added a configuration option for slipif for symmetry to loopif 2008-06-17 Simon Goldschmidt (patch by Luca Ceresoli) * netif.c, loopif.c, ip.c, netif.h, loopif.h, opt.h: Checked in slightly modified version of patch # 6370: Moved loopif code to netif.c so that loopback traffic is supported on all netifs (all local IPs). Added option to limit loopback packets for each netifs. ++ Bugfixes: 2009-08-12 Kieran Mansley * tcp_in.c, tcp.c: Fix bug #27209: handle trimming of segments when out of window or out of order properly 2009-08-12 Kieran Mansley * tcp_in.c: Fix bug #27199: use snd_wl2 instead of snd_wl1 2009-07-28 Simon Goldschmidt * mem.h: Fixed bug #27105: "realloc() cannot replace mem_realloc()"s 2009-07-27 Kieran Mansley * api.h api_msg.h netdb.h sockets.h: add missing #include directives 2009-07-09 Kieran Mansley * api_msg.c, sockets.c, api.h: BUG23240 use signed counters for recv_avail and don't increment counters until message successfully sent to mbox 2009-06-25 Kieran Mansley * api_msg.c api.h: BUG26722: initialise netconn write variables in netconn_alloc 2009-06-25 Kieran Mansley * tcp.h: BUG26879: set ret value in TCP_EVENT macros when function is not set 2009-06-25 Kieran Mansley * tcp.c, tcp_in.c, tcp_out.c, tcp.h: BUG26301 and BUG26267: correct simultaneous close behaviour, and make snd_nxt have the same meaning as in the RFCs. 2009-05-12 Simon Goldschmidt * etharp.h, etharp.c, netif.c: fixed bug #26507: "Gratuitous ARP depends on arp_table / uses etharp_query" by adding etharp_gratuitous() 2009-05-12 Simon Goldschmidt * ip.h, ip.c, igmp.c: bug #26487: Added ip_output_if_opt that can add IP options to the IP header (used by igmp_ip_output_if) 2009-05-06 Simon Goldschmidt * inet_chksum.c: On little endian architectures, use LWIP_PLATFORM_HTONS (if defined) for SWAP_BYTES_IN_WORD to speed up checksumming. 2009-05-05 Simon Goldschmidt * sockets.c: bug #26405: Prematurely released semaphore causes lwip_select() to crash 2009-05-04 Simon Goldschmidt * init.c: snmp was not initialized in lwip_init() 2009-05-04 Frédéric Bernon * dhcp.c, netbios.c: Changes if IP_SOF_BROADCAST is enabled. 2009-05-03 Simon Goldschmidt * tcp.h: bug #26349: Nagle algorithm doesn't send although segment is full (and unsent->next == NULL) 2009-05-02 Simon Goldschmidt * tcpip.h, tcpip.c: fixed tcpip_untimeout (does not need the time, broken after 1.3.0 in CVS only) - fixes compilation of ppp_oe.c 2009-05-02 Simon Goldschmidt * msg_in.c: fixed bug #25636: SNMPSET value is ignored for integer fields 2009-05-01 Simon Goldschmidt * pap.c: bug #21680: PPP upap_rauthnak() drops legal NAK packets 2009-05-01 Simon Goldschmidt * ppp.c: bug #24228: Memory corruption with PPP and DHCP 2009-04-29 Frédéric Bernon * raw.c, udp.c, init.c, opt.h, ip.h, sockets.h: bug #26309: Implement the SO(F)_BROADCAST filter for all API layers. Avoid the unindented reception of broadcast packets even when this option wasn't set. Port maintainers which want to enable this filter have to set IP_SOF_BROADCAST=1 in opt.h. If you want this option also filter broadcast on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1 in opt.h. 2009-04-28 Simon Goldschmidt, Jakob Stoklund Olesen * dhcp.c: patch #6721, bugs #25575, #25576: Some small fixes to DHCP and DHCP/AUTOIP cooperation 2009-04-25 Simon Goldschmidt, Oleg Tyshev * tcp_out.c: bug #24212: Deadlocked tcp_retransmit due to exceeded pcb->cwnd Fixed by sorting the unsent and unacked queues (segments are inserted at the right place in tcp_output and tcp_rexmit). 2009-04-25 Simon Goldschmidt * memp.c, mem.c, memp.h, mem_std.h: bug #26213 "Problem with memory allocation when debugging": memp_sizes contained the wrong sizes (including sanity regions); memp pools for MEM_USE_POOLS were too small 2009-04-24 Simon Goldschmidt, Frédéric Bernon * inet.c: patch #6765: Fix a small problem with the last changes (incorrect behavior, with with ip address string not ended by a '\0', a space or a end of line) 2009-04-19 Simon Goldschmidt * rawapi.txt: Fixed bug #26069: Corrected documentation: if tcp_connect fails, pcb->err is called, not pcb->connected (with an error code). 2009-04-19 Simon Goldschmidt * tcp_out.c: Fixed bug #26236: "TCP options (timestamp) don't work with no-copy-tcpwrite": deallocate option data, only concat segments with same flags 2009-04-19 Simon Goldschmidt * tcp_out.c: Fixed bug #25094: "Zero-length pbuf" (options are now allocated in the header pbuf, not the data pbuf) 2009-04-18 Simon Goldschmidt * api_msg.c: fixed bug #25695: Segmentation fault in do_writemore() 2009-04-15 Simon Goldschmidt * sockets.c: tried to fix bug #23559: lwip_recvfrom problem with tcp 2009-04-15 Simon Goldschmidt * dhcp.c: task #9192: mem_free of dhcp->options_in and dhcp->msg_in 2009-04-15 Simon Goldschmidt * ip.c, ip6.c, tcp_out.c, ip.h: patch #6808: Add a utility function ip_hinted_output() (for smaller code mainly) 2009-04-15 Simon Goldschmidt * inet.c: patch #6765: Supporting new line characters in inet_aton() 2009-04-15 Simon Goldschmidt * dhcp.c: patch #6764: DHCP rebind and renew did not send hostnam option; Converted constant OPTION_MAX_MSG_SIZE to netif->mtu, check if netif->mtu is big enough in dhcp_start 2009-04-15 Simon Goldschmidt * netbuf.c: bug #26027: netbuf_chain resulted in pbuf memory leak 2009-04-15 Simon Goldschmidt * sockets.c, ppp.c: bug #25763: corrected 4 occurrences of SMEMCPY to MEMCPY 2009-04-15 Simon Goldschmidt * sockets.c: bug #26121: set_errno can be overridden 2009-04-09 Kieran Mansley (patch from Luca Ceresoli ) * init.c, opt.h: Patch#6774 TCP_QUEUE_OOSEQ breaks compilation when LWIP_TCP==0 2009-04-09 Kieran Mansley (patch from Roy Lee ) * tcp.h: Patch#6802 Add do-while-clauses to those function like macros in tcp.h 2009-03-31 Kieran Mansley * tcp.c, tcp_in.c, tcp_out.c, tcp.h, opt.h: Rework the way window updates are calculated and sent (BUG20515) * tcp_in.c: cope with SYN packets received during established states, and retransmission of initial SYN. * tcp_out.c: set push bit correctly when tcp segments are merged 2009-03-27 Kieran Mansley * tcp_out.c set window correctly on probes (correcting change made yesterday) 2009-03-26 Kieran Mansley * tcp.c, tcp_in.c, tcp.h: add tcp_abandon() to cope with dropping connections where no reset required (bug #25622) * tcp_out.c: set TCP_ACK flag on keepalive and zero window probes (bug #20779) 2009-02-18 Simon Goldschmidt (Jonathan Larmour and Bill Auerbach) * ip_frag.c: patch #6528: the buffer used for IP_FRAG_USES_STATIC_BUF could be too small depending on MEM_ALIGNMENT 2009-02-16 Simon Goldschmidt * sockets.h/.c, api_*.h/.c: fixed arguments of socket functions to match the standard; converted size argument of netconn_write to 'size_t' 2009-02-16 Simon Goldschmidt * tcp.h, tcp.c: fixed bug #24440: TCP connection close problem on 64-bit host by moving accept callback function pointer to TCP_PCB_COMMON 2009-02-12 Simon Goldschmidt * dhcp.c: fixed bug #25345 (DHCPDECLINE is sent with "Maximum message size" option) 2009-02-11 Simon Goldschmidt * dhcp.c: fixed bug #24480 (releasing old udp_pdb and pbuf in dhcp_start) 2009-02-11 Simon Goldschmidt * opt.h, api_msg.c: added configurable default valud for netconn->recv_bufsize: RECV_BUFSIZE_DEFAULT (fixes bug #23726: pbuf pool exhaustion on slow recv()) 2009-02-10 Simon Goldschmidt * tcp.c: fixed bug #25467: Listen backlog is not reset on timeout in SYN_RCVD: Accepts_pending is decrease on a corresponding listen pcb when a connection in state SYN_RCVD is close. 2009-01-28 Jonathan Larmour * pbuf.c: reclaim pbufs from TCP out-of-sequence segments if we run out of pool pbufs. 2008-12-19 Simon Goldschmidt * many files: patch #6699: fixed some warnings on platform where sizeof(int) == 2 2008-12-10 Tamas Somogyi, Frédéric Bernon * sockets.c: fixed bug #25051: lwip_recvfrom problem with udp: fromaddr and port uses deleted netbuf. 2008-10-18 Simon Goldschmidt * tcp_in.c: fixed bug ##24596: Vulnerability on faulty TCP options length in tcp_parseopt 2008-10-15 Simon Goldschmidt * ip_frag.c: fixed bug #24517: IP reassembly crashes on unaligned IP headers by packing the struct ip_reass_helper. 2008-10-03 David Woodhouse, Jonathan Larmour * etharp.c (etharp_arp_input): Fix type aliasing problem copying ip address. 2008-10-02 Jonathan Larmour * dns.c: Hard-code structure sizes, to avoid issues on some compilers where padding is included. 2008-09-30 Jonathan Larmour * sockets.c (lwip_accept): check addr isn't NULL. If it's valid, do an assertion check that addrlen isn't NULL. 2008-09-30 Jonathan Larmour * tcp.c: Fix bug #24227, wrong error message in tcp_bind. 2008-08-26 Simon Goldschmidt * inet.h, ip_addr.h: fixed bug #24132: Cross-dependency between ip_addr.h and inet.h -> moved declaration of struct in_addr from ip_addr.h to inet.h 2008-08-14 Simon Goldschmidt * api_msg.c: fixed bug #23847: do_close_internal references freed memory (when tcp_close returns != ERR_OK) 2008-07-08 Frédéric Bernon * stats.h: Fix some build bugs introduced with patch #6483 (missing some parameters in macros, mainly if MEM_STATS=0 and MEMP_STATS=0). 2008-06-24 Jonathan Larmour * tcp_in.c: Fix for bug #23693 as suggested by Art R. Ensure cseg is unused if tcp_seg_copy fails. 2008-06-17 Simon Goldschmidt * inet_chksum.c: Checked in some ideas of patch #6460 (loop optimizations) and created defines for swapping bytes and folding u32 to u16. 2008-05-30 Kieran Mansley * tcp_in.c Remove redundant "if" statement, and use real rcv_wnd rather than rcv_ann_wnd when deciding if packets are in-window. Contributed by 2008-05-30 Kieran Mansley * mem.h: Fix BUG#23254. Change macro definition of mem_* to allow passing as function pointers when MEM_LIBC_MALLOC is defined. 2008-05-09 Jonathan Larmour * err.h, err.c, sockets.c: Fix bug #23119: Reorder timeout error code to stop it being treated as a fatal error. 2008-04-15 Simon Goldschmidt * dhcp.c: fixed bug #22804: dhcp_stop doesn't clear NETIF_FLAG_DHCP (flag now cleared) 2008-03-27 Simon Goldschmidt * mem.c, tcpip.c, tcpip.h, opt.h: fixed bug #21433 (Calling mem_free/pbuf_free from interrupt context isn't safe): set LWIP_USE_HEAP_FROM_INTERRUPT to 1 in lwipopts.h or use pbuf_free_callback(p)/mem_free_callback(m) to free pbufs or heap memory from interrupt context 2008-03-26 Simon Goldschmidt * tcp_in.c, tcp.c: fixed bug #22249: division by zero could occur if a remote host sent a zero mss as TCP option. (STABLE-1.3.0) ++ New features: 2008-03-10 Jonathan Larmour * inet_chksum.c: Allow choice of one of the sample algorithms to be made from lwipopts.h. Fix comment on how to override LWIP_CHKSUM. 2008-01-22 Frédéric Bernon * tcp.c, tcp_in.c, tcp.h, opt.h: Rename LWIP_CALCULATE_EFF_SEND_MSS in TCP_CALCULATE_EFF_SEND_MSS to have coherent TCP options names. 2008-01-14 Frédéric Bernon * rawapi.txt, api_msg.c, tcp.c, tcp_in.c, tcp.h: changes for task #7675 "Enable to refuse data on a TCP_EVENT_RECV call". Important, behavior changes for the tcp_recv callback (see rawapi.txt). 2008-01-14 Frédéric Bernon, Marc Chaland * ip.c: Integrate patch #6369" ip_input : checking before realloc". 2008-01-12 Frédéric Bernon * tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::sem per netconn::op_completed like suggested for the task #7490 "Add return value to sys_mbox_post". 2008-01-12 Frédéric Bernon * api_msg.c, opt.h: replace DEFAULT_RECVMBOX_SIZE per DEFAULT_TCP_RECVMBOX_SIZE, DEFAULT_UDP_RECVMBOX_SIZE and DEFAULT_RAW_RECVMBOX_SIZE (to optimize queues sizes), like suggested for the task #7490 "Add return value to sys_mbox_post". 2008-01-10 Frédéric Bernon * tcpip.h, tcpip.c: add tcpip_callback_with_block function for the task #7490 "Add return value to sys_mbox_post". tcpip_callback is always defined as "blocking" ("block" parameter = 1). 2008-01-10 Frédéric Bernon * tcpip.h, tcpip.c, api.h, api_lib.c, api_msg.c, sockets.c: replace the field netconn::mbox (sys_mbox_t) per netconn::sem (sys_sem_t) for the task #7490 "Add return value to sys_mbox_post". 2008-01-05 Frédéric Bernon * sys_arch.txt, api.h, api_lib.c, api_msg.h, api_msg.c, tcpip.c, sys.h, opt.h: Introduce changes for task #7490 "Add return value to sys_mbox_post" with some modifications in the sys_mbox api: sys_mbox_new take a "size" parameters which indicate the number of pointers query by the mailbox. There is three defines in opt.h to indicate sizes for tcpip::mbox, netconn::recvmbox, and for the netconn::acceptmbox. Port maintainers, you can decide to just add this new parameter in your implementation, but to ignore it to keep the previous behavior. The new sys_mbox_trypost function return a value to know if the mailbox is full or if the message is posted. Take a look to sys_arch.txt for more details. This new function is used in tcpip_input (so, can be called in an interrupt context since the function is not blocking), and in recv_udp and recv_raw. 2008-01-04 Frédéric Bernon, Simon Goldschmidt, Jonathan Larmour * rawapi.txt, api.h, api_lib.c, api_msg.h, api_msg.c, sockets.c, tcp.h, tcp.c, tcp_in.c, init.c, opt.h: rename backlog options with TCP_ prefix, limit the "backlog" parameter in an u8_t, 0 is interpreted as "smallest queue", add documentation in the rawapi.txt file. 2007-12-31 Kieran Mansley (based on patch from Per-Henrik Lundbolm) * tcp.c, tcp_in.c, tcp_out.c, tcp.h: Add TCP persist timer 2007-12-31 Frédéric Bernon, Luca Ceresoli * autoip.c, etharp.c: ip_addr.h: Integrate patch #6348: "Broadcast ARP packets in autoip". The change in etharp_raw could be removed, since all calls to etharp_raw use ethbroadcast for the "ethdst_addr" parameter. But it could be wrong in the future. 2007-12-30 Frédéric Bernon, Tom Evans * ip.c: Fix bug #21846 "LwIP doesn't appear to perform any IP Source Address Filtering" reported by Tom Evans. 2007-12-21 Frédéric Bernon, Simon Goldschmidt, Jonathan Larmour * tcp.h, opt.h, api.h, api_msg.h, tcp.c, tcp_in.c, api_lib.c, api_msg.c, sockets.c, init.c: task #7252: Implement TCP listen backlog: Warning: raw API applications have to call 'tcp_accepted(pcb)' in their accept callback to keep accepting new connections. 2007-12-13 Frédéric Bernon * api_msg.c, err.h, err.c, sockets.c, dns.c, dns.h: replace "enum dns_result" by err_t type. Add a new err_t code "ERR_INPROGRESS". 2007-12-12 Frédéric Bernon * dns.h, dns.c, opt.h: move DNS options to the "right" place. Most visibles are the one which have ram usage. 2007-12-05 Frédéric Bernon * netdb.c: add a LWIP_DNS_API_HOSTENT_STORAGE option to decide to use a static set of variables (=0) or a local one (=1). In this last case, your port should provide a function "struct hostent* sys_thread_hostent( struct hostent* h)" which have to do a copy of "h" and return a pointer ont the "per-thread" copy. 2007-12-03 Simon Goldschmidt * ip.c: ip_input: check if a packet is for inp first before checking all other netifs on netif_list (speeds up packet receiving in most cases) 2007-11-30 Simon Goldschmidt * udp.c, raw.c: task #7497: Sort lists (pcb, netif, ...) for faster access UDP: move a (connected) pcb selected for input to the front of the list of pcbs so that it is found faster next time. Same for RAW pcbs that have eaten a packet. 2007-11-28 Simon Goldschmidt * etharp.c, stats.c, stats.h, opt.h: Introduced ETHARP_STATS 2007-11-25 Simon Goldschmidt * dhcp.c: dhcp_unfold_reply() uses pbuf_copy_partial instead of its own copy algorithm. 2007-11-24 Simon Goldschmidt * netdb.h, netdb.c, sockets.h/.c: Moved lwip_gethostbyname from sockets.c to the new file netdb.c; included lwip_getaddrinfo. 2007-11-21 Simon Goldschmidt * tcp.h, opt.h, tcp.c, tcp_in.c: implemented calculating the effective send-mss based on the MTU of the netif used to send. Enabled by default. Disable by setting LWIP_CALCULATE_EFF_SEND_MSS to 0. This fixes bug #21492. 2007-11-19 Frédéric Bernon * api_msg.c, dns.h, dns.c: Implement DNS_DOES_NAME_CHECK option (check if name received match the name query), implement DNS_USES_STATIC_BUF (the place where copy dns payload to parse the response), return an error if there is no place for a new query, and fix some minor problems. 2007-11-16 Simon Goldschmidt * new files: ipv4/inet.c, ipv4/inet_chksum.c, ipv6/inet6.c removed files: core/inet.c, core/inet6.c Moved inet files into ipv4/ipv6 directory; splitted inet.c/inet.h into inet and chksum part; changed includes in all lwIP files as appropriate 2007-11-16 Simon Goldschmidt * api.h, api_msg.h, api_lib.c, api_msg.c, socket.h, socket.c: Added sequential dns resolver function for netconn api (netconn_gethostbyname) and socket api (gethostbyname/gethostbyname_r). 2007-11-15 Jim Pettinato, Frédéric Bernon * opt.h, init.c, tcpip.c, dhcp.c, dns.h, dns.c: add DNS client for simple name requests with RAW api interface. Initialization is done in lwip_init() with build time options. DNS timer is added in tcpip_thread context. DHCP can set DNS server ip addresses when options are received. You need to set LWIP_DNS=1 in your lwipopts.h file (LWIP_DNS=0 in opt.h). DNS_DEBUG can be set to get some traces with LWIP_DEBUGF. Sanity check have been added. There is a "todo" list with points to improve. 2007-11-06 Simon Goldschmidt * opt.h, mib2.c: Patch #6215: added ifAdminStatus write support (if explicitly enabled by defining SNMP_SAFE_REQUESTS to 0); added code to check link status for ifOperStatus if LWIP_NETIF_LINK_CALLBACK is defined. 2007-11-06 Simon Goldschmidt * api.h, api_msg.h and dependent files: Task #7410: Removed the need to include core header files in api.h (ip/tcp/udp/raw.h) to hide the internal implementation from netconn api applications. 2007-11-03 Frédéric Bernon * api.h, api_lib.c, api_msg.c, sockets.c, opt.h: add SO_RCVBUF option for UDP & RAW netconn. You need to set LWIP_SO_RCVBUF=1 in your lwipopts.h (it's disabled by default). Netconn API users can use the netconn_recv_bufsize macro to access it. This is a first release which have to be improve for TCP. Note it used the netconn::recv_avail which need to be more "thread-safe" (note there is already the problem for FIONREAD with lwip_ioctl/ioctlsocket). 2007-11-01 Frédéric Bernon, Marc Chaland * sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, tcp.h, tcp_out.c: Integrate "patch #6250 : MSG_MORE flag for send". MSG_MORE is used at socket api layer, NETCONN_MORE at netconn api layer, and TCP_WRITE_FLAG_MORE at raw api layer. This option enable to delayed TCP PUSH flag on multiple "write" calls. Note that previous "copy" parameter for "write" APIs is now called "apiflags". 2007-10-24 Frédéric Bernon * api.h, api_lib.c, api_msg.c: Add macro API_EVENT in the same spirit than TCP_EVENT_xxx macros to get a code more readable. It could also help to remove some code (like we have talk in "patch #5919 : Create compile switch to remove select code"), but it could be done later. 2007-10-08 Simon Goldschmidt * many files: Changed initialization: many init functions are not needed any more since we now rely on the compiler initializing global and static variables to zero! 2007-10-06 Simon Goldschmidt * ip_frag.c, memp.c, mib2.c, ip_frag.h, memp_std.h, opt.h: Changed IP_REASSEMBLY to enqueue the received pbufs so that multiple packets can be reassembled simultaneously and no static reassembly buffer is needed. 2007-10-05 Simon Goldschmidt * tcpip.c, etharp.h, etharp.c: moved ethernet_input from tcpip.c to etharp.c so all netifs (or ports) can use it. 2007-10-05 Frédéric Bernon * netifapi.h, netifapi.c: add function netifapi_netif_set_default. Change the common function to reduce a little bit the footprint (for all functions using only the "netif" parameter). 2007-10-03 Frédéric Bernon * netifapi.h, netifapi.c: add functions netifapi_netif_set_up, netifapi_netif_set_down, netifapi_autoip_start and netifapi_autoip_stop. Use a common function to reduce a little bit the footprint (for all functions using only the "netif" parameter). 2007-09-15 Frédéric Bernon * udp.h, udp.c, sockets.c: Changes for "#20503 IGMP Improvement". Add IP_MULTICAST_IF option in socket API, and a new field "multicast_ip" in "struct udp_pcb" (for netconn and raw API users), only if LWIP_IGMP=1. Add getsockopt processing for IP_MULTICAST_TTL and IP_MULTICAST_IF. 2007-09-10 Frédéric Bernon * snmp.h, mib2.c: enable to remove SNMP timer (which consumne several cycles even when it's not necessary). snmp_agent.txt tell to call snmp_inc_sysuptime() each 10ms (but, it's intrusive if you use sys_timeout feature). Now, you can decide to call snmp_add_sysuptime(100) each 1000ms (which is bigger "step", but call to a lower frequency). Or, you can decide to not call snmp_inc_sysuptime() or snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro. This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only when it's queried (any direct call to "sysuptime" is changed by a call to snmp_get_sysuptime). 2007-09-09 Frédéric Bernon, Bill Florac * igmp.h, igmp.c, netif.h, netif.c, ip.c: To enable to have interfaces with IGMP, and others without it, there is a new NETIF_FLAG_IGMP flag to set in netif->flags if you want IGMP on an interface. igmp_stop() is now called inside netif_remove(). igmp_report_groups() is now called inside netif_set_link_up() (need to have LWIP_NETIF_LINK_CALLBACK=1) to resend reports once the link is up (avoid to wait the next query message to receive the matching multicast streams). 2007-09-08 Frédéric Bernon * sockets.c, ip.h, api.h, tcp.h: declare a "struct ip_pcb" which only contains IP_PCB. Add in the netconn's "pcb" union a "struct ip_pcb *ip;" (no size change). Use this new field to access to common pcb fields (ttl, tos, so_options, etc...). Enable to access to these fields with LWIP_TCP=0. 2007-09-05 Frédéric Bernon * udp.c, ipv4/icmp.c, ipv4/ip.c, ipv6/icmp.c, ipv6/ip6.c, ipv4/icmp.h, ipv6/icmp.h, opt.h: Integrate "task #7272 : LWIP_ICMP option". The new option LWIP_ICMP enable/disable ICMP module inside the IP stack (enable per default). Be careful, disabling ICMP make your product non-compliant to RFC1122, but help to reduce footprint, and to reduce "visibility" on the Internet. 2007-09-05 Frédéric Bernon, Bill Florac * opt.h, sys.h, tcpip.c, slipif.c, ppp.c, sys_arch.txt: Change parameters list for sys_thread_new (see "task #7252 : Create sys_thread_new_ex()"). Two new parameters have to be provided: a task name, and a task stack size. For this one, since it's platform dependant, you could define the best one for you in your lwipopts.h. For port maintainers, you can just add these new parameters in your sys_arch.c file, and but it's not mandatory, use them in your OS specific functions. 2007-09-05 Frédéric Bernon * inet.c, autoip.c, msg_in.c, msg_out.c, init.c: Move some build time checkings inside init.c for task #7142 "Sanity check user-configurable values". 2007-09-04 Frédéric Bernon, Bill Florac * igmp.h, igmp.c, memp_std.h, memp.c, init.c, opt.h: Replace mem_malloc call by memp_malloc, and use a new MEMP_NUM_IGMP_GROUP option (see opt.h to define the value). It will avoid potential fragmentation problems, use a counter to know how many times a group is used on an netif, and free it when all applications leave it. MEMP_NUM_IGMP_GROUP got 8 as default value (and init.c got a sanity check if LWIP_IGMP!=0). 2007-09-03 Frédéric Bernon * igmp.h, igmp.c, sockets.c, api_msg.c: Changes for "#20503 IGMP Improvement". Initialize igmp_mac_filter to NULL in netif_add (this field should be set in the netif's "init" function). Use the "imr_interface" field (for socket layer) and/or the "interface" field (for netconn layer), for join/leave operations. The igmp_join/leavegroup first parameter change from a netif to an ipaddr. This field could be a netif's ipaddr, or "any" (same meaning than ip_addr_isany). 2007-08-30 Frédéric Bernon * Add netbuf.h, netbuf.c, Change api.h, api_lib.c: #7249 "Split netbuf functions from api/api_lib". Now netbuf API is independant of netconn, and can be used with other API (application based on raw API, or future "socket2" API). Ports maintainers just have to add src/api/netbuf.c in their makefile/projects. 2007-08-30 Frédéric Bernon, Jonathan Larmour * init.c: Add first version of lwip_sanity_check for task #7142 "Sanity check user-configurable values". 2007-08-29 Frédéric Bernon * igmp.h, igmp.c, tcpip.c, init.c, netif.c: change igmp_init and add igmp_start. igmp_start is call inside netif_add. Now, igmp initialization is in the same spirit than the others modules. Modify some IGMP debug traces. 2007-08-29 Frédéric Bernon * Add init.h, init.c, Change opt.h, tcpip.c: Task #7213 "Add a lwip_init function" Add lwip_init function to regroup all modules initializations, and to provide a place to add code for task #7142 "Sanity check user-configurable values". Ports maintainers should remove direct initializations calls from their code, and add init.c in their makefiles. Note that lwip_init() function is called inside tcpip_init, but can also be used by raw api users since all calls are disabled when matching options are disabled. Also note that their is new options in opt.h, you should configure in your lwipopts.h (they are enabled per default). 2007-08-26 Marc Boucher * api_msg.c: do_close_internal(): Reset the callbacks and arg (conn) to NULL since they can under certain circumstances be called with an invalid conn pointer after the connection has been closed (and conn has been freed). 2007-08-25 Frédéric Bernon (Artem Migaev's Patch) * netif.h, netif.c: Integrate "patch #6163 : Function to check if link layer is up". Add a netif_is_link_up() function if LWIP_NETIF_LINK_CALLBACK option is set. 2007-08-22 Frédéric Bernon * netif.h, netif.c, opt.h: Rename LWIP_NETIF_CALLBACK in LWIP_NETIF_STATUS_CALLBACK to be coherent with new LWIP_NETIF_LINK_CALLBACK option before next release. 2007-08-22 Frédéric Bernon * tcpip.h, tcpip.c, ethernetif.c, opt.h: remove options ETHARP_TCPIP_INPUT & ETHARP_TCPIP_ETHINPUT, now, only "ethinput" code is supported, even if the name is tcpip_input (we keep the name of 1.2.0 function). 2007-08-17 Jared Grubb * memp_std.h, memp.h, memp.c, mem.c, stats.c: (Task #7136) Centralize mempool settings into new memp_std.h and optional user file lwippools.h. This adds more dynamic mempools, and allows the user to create an arbitrary number of mempools for mem_malloc. 2007-08-16 Marc Boucher * api_msg.c: Initialize newconn->state to NETCONN_NONE in accept_function; otherwise it was left to NETCONN_CLOSE and sent_tcp() could prematurely close the connection. 2007-08-16 Marc Boucher * sockets.c: lwip_accept(): check netconn_peer() error return. 2007-08-16 Marc Boucher * mem.c, mem.h: Added mem_calloc(). 2007-08-16 Marc Boucher * tcpip.c, tcpip.h memp.c, memp.h: Added distinct memp (MEMP_TCPIP_MSG_INPKT) for input packets to prevent floods from consuming all of MEMP_TCPIP_MSG and starving other message types. Renamed MEMP_TCPIP_MSG to MEMP_TCPIP_MSG_API 2007-08-16 Marc Boucher * pbuf.c, pbuf.h, etharp.c, tcp_in.c, sockets.c: Split pbuf flags in pbuf type and flgs (later renamed to flags). Use enum pbuf_flag as pbuf_type. Renumber PBUF_FLAG_*. Improved lwip_recvfrom(). TCP push now propagated. 2007-08-16 Marc Boucher * ethernetif.c, contrib/ports/various: ethbroadcast now a shared global provided by etharp. 2007-08-16 Marc Boucher * ppp_oe.c ppp_oe.h, auth.c chap.c fsm.c lcp.c ppp.c ppp.h, etharp.c ethernetif.c, etharp.h, opt.h tcpip.h, tcpip.c: Added PPPoE support and various PPP improvements. 2007-07-25 Simon Goldschmidt * api_lib.c, ip_frag.c, pbuf.c, api.h, pbuf.h: Introduced pbuf_copy_partial, making netbuf_copy_partial use this function. 2007-07-25 Simon Goldschmidt * tcp_in.c: Fix bug #20506: Slow start / initial congestion window starts with 2 * mss (instead of 1 * mss previously) to comply with some newer RFCs and other stacks. 2007-07-13 Jared Grubb (integrated by Frédéric Bernon) * opt.h, netif.h, netif.c, ethernetif.c: Add new configuration option to add a link callback in the netif struct, and functions to handle it. Be carefull for port maintainers to add the NETIF_FLAG_LINK_UP flag (like in ethernetif.c) if you want to be sure to be compatible with future changes... 2007-06-30 Frédéric Bernon * sockets.h, sockets.c: Implement MSG_PEEK flag for recv/recvfrom functions. 2007-06-21 Simon Goldschmidt * etharp.h, etharp.c: Combined etharp_request with etharp_raw for both LWIP_AUTOIP =0 and =1 to remove redundant code. 2007-06-21 Simon Goldschmidt * mem.c, memp.c, mem.h, memp.h, opt.h: task #6863: Introduced the option MEM_USE_POOLS to use 4 pools with different sized elements instead of a heap. This both prevents memory fragmentation and gives a higher speed at the cost of more memory consumption. Turned off by default. 2007-06-21 Simon Goldschmidt * api_lib.c, api_msg.c, api.h, api_msg.h: Converted the length argument of netconn_write (and therefore also api_msg_msg.msg.w.len) from u16_t into int to be able to send a bigger buffer than 64K with one time (mainly used from lwip_send). 2007-06-21 Simon Goldschmidt * tcp.h, api_msg.c: Moved the nagle algorithm from netconn_write/do_write into a define (tcp_output_nagle) in tcp.h to provide it to raw api users, too. 2007-06-21 Simon Goldschmidt * api.h, api_lib.c, api_msg.c: Fixed bug #20021: Moved sendbuf-processing in netconn_write from api_lib.c to api_msg.c to also prevent multiple context- changes on low memory or empty send-buffer. 2007-06-18 Simon Goldschmidt * etharp.c, etharp.h: Changed etharp to use a defined hardware address length of 6 to avoid loading netif->hwaddr_len every time (since this file is only used for ethernet and struct eth_addr already had a defined length of 6). 2007-06-17 Simon Goldschmidt * sockets.c, sockets.h: Implemented socket options SO_NO_CHECK for UDP sockets to disable UDP checksum generation on transmit. 2007-06-13 Frédéric Bernon, Simon Goldschmidt * debug.h, api_msg.c: change LWIP_ERROR to use it to check errors like invalid pointers or parameters, and let the possibility to redefined it in cc.h. Use this macro to check "conn" parameter in api_msg.c functions. 2007-06-11 Simon Goldschmidt * sockets.c, sockets.h: Added UDP lite support for sockets 2007-06-10 Simon Goldschmidt * udp.h, opt.h, api_msg.c, ip.c, udp.c: Included switch LWIP_UDPLITE (enabled by default) to switch off UDP-Lite support if not needed (reduces udp.c code size) 2007-06-09 Dominik Spies (integrated by Frédéric Bernon) * autoip.h, autoip.c, dhcp.h, dhcp.c, netif.h, netif.c, etharp.h, etharp.c, opt.h: AutoIP implementation available for IPv4, with new options LWIP_AUTOIP and LWIP_DHCP_AUTOIP_COOP if you want to cooperate with DHCP. Some tips to adapt (see TODO mark in the source code). 2007-06-09 Simon Goldschmidt * etharp.h, etharp.c, ethernetif.c: Modified order of parameters for etharp_output() to match netif->output so etharp_output() can be used directly as netif->output to save one function call. 2007-06-08 Simon Goldschmidt * netif.h, ethernetif.c, slipif.c, loopif.c: Added define NETIF_INIT_SNMP(netif, type, speed) to initialize per-netif snmp variables, added initialization of those to ethernetif, slipif and loopif. 2007-05-18 Simon Goldschmidt * opt.h, ip_frag.c, ip_frag.h, ip.c: Added option IP_FRAG_USES_STATIC_BUF (defaulting to off for now) that can be set to 0 to send fragmented packets by passing PBUF_REFs down the stack. 2007-05-23 Frédéric Bernon * api_lib.c: Implement SO_RCVTIMEO for accept and recv on TCP connections, such present in patch #5959. 2007-05-23 Frédéric Bernon * api.h, api_lib.c, api_msg.c, sockets.c: group the different NETCONN_UDPxxx code in only one part... 2007-05-18 Simon Goldschmidt * opt.h, memp.h, memp.c: Added option MEMP_OVERFLOW_CHECK to check for memp elements to overflow. This is achieved by adding some bytes before and after each pool element (increasing their size, of course), filling them with a prominent value and checking them on freeing the element. Set it to 2 to also check every element in every pool each time memp_malloc() or memp_free() is called (slower but more helpful). 2007-05-10 Simon Goldschmidt * opt.h, memp.h, memp.c, pbuf.c (see task #6831): use a new memp pool for PBUF_POOL pbufs instead of the old pool implementation in pbuf.c to reduce code size. 2007-05-11 Frédéric Bernon * sockets.c, api_lib.c, api_msg.h, api_msg.c, netifapi.h, netifapi.c, tcpip.c: Include a function pointer instead of a table index in the message to reduce footprint. Disable some part of lwip_send and lwip_sendto if some options are not set (LWIP_TCP, LWIP_UDP, LWIP_RAW). 2007-05-10 Simon Goldschmidt * *.h (except netif/ppp/*.h): Included patch #5448: include '#ifdef __cplusplus \ extern "C" {' in all header files. Now you can write your application using the lwIP stack in C++ and simply #include the core files. Note I have left out the netif/ppp/*h header files for now, since I don't know which files are included by applications and which are for internal use only. 2007-05-09 Simon Goldschmidt * opt.h, *.c/*.h: Included patch #5920: Create define to override C-library memcpy. 2 Defines are created: MEMCPY() for normal memcpy, SMEMCPY() for situations where some compilers might inline the copy and save a function call. Also replaced all calls to memcpy() with calls to (S)MEMCPY(). 2007-05-08 Simon Goldschmidt * mem.h: If MEM_LIBC_MALLOC==1, allow the defines (e.g. mem_malloc() -> malloc()) to be overriden in case the C-library malloc implementation is not protected against concurrent access. 2007-05-04 Simon Goldschmidt (Atte Kojo) * etharp.c: Introduced fast one-entry-cache to speed up ARP lookup when sending multiple packets to the same host. 2007-05-04 Frédéric Bernon, Jonathan Larmour * sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fix bug #19162 "lwip_sento: a possible to corrupt remote addr/port connection state". Reduce problems "not enought memory" with netbuf (if we receive lot of datagrams). Improve lwip_sendto (only one exchange between sockets api and api_msg which run in tcpip_thread context). Add netconn_sento function. Warning, if you directly access to "fromaddr" & "fromport" field from netbuf struct, these fields are now renamed "addr" & "port". 2007-04-11 Jonathan Larmour * sys.h, api_lib.c: Provide new sys_mbox_tryfetch function. Require ports to provide new sys_arch_mbox_tryfetch function to get a message if one is there, otherwise return with SYS_MBOX_EMPTY. sys_arch_mbox_tryfetch can be implemented as a function-like macro by the port in sys_arch.h if desired. 2007-04-06 Frédéric Bernon, Simon Goldschmidt * opt.h, tcpip.h, tcpip.c, netifapi.h, netifapi.c: New configuration option LWIP_NETIF_API allow to use thread-safe functions to add/remove netif in list, and to start/stop dhcp clients, using new functions from netifapi.h. Disable as default (no port change to do). 2007-04-05 Frédéric Bernon * sockets.c: remplace ENOBUFS errors on alloc_socket by ENFILE to be more BSD compliant. 2007-04-04 Simon Goldschmidt * arch.h, api_msg.c, dhcp.c, msg_in.c, sockets.c: Introduced #define LWIP_UNUSED_ARG(x) use this for and architecture-independent form to tell the compiler you intentionally are not using this variable. Can be overriden in cc.h. 2007-03-28 Frédéric Bernon * opt.h, netif.h, dhcp.h, dhcp.c: New configuration option LWIP_NETIF_HOSTNAME allow to define a hostname in netif struct (this is just a pointer, so, you can use a hardcoded string, point on one of your's ethernetif field, or alloc a string you will free yourself). It will be used by DHCP to register a client hostname, but can also be use when you call snmp_set_sysname. 2007-03-28 Frédéric Bernon * netif.h, netif.c: A new NETIF_FLAG_ETHARP flag is defined in netif.h, to allow to initialize a network interface's flag with. It tell this interface is an ethernet device, and we can use ARP with it to do a "gratuitous ARP" (RFC 3220 "IP Mobility Support for IPv4" section 4.6) when interface is "up" with netif_set_up(). 2007-03-26 Frédéric Bernon, Jonathan Larmour * opt.h, tcpip.c: New configuration option LWIP_ARP allow to disable ARP init at build time if you only use PPP or SLIP. The default is enable. Note we don't have to call etharp_init in your port's initilization sequence if you use tcpip.c, because this call is done in tcpip_init function. 2007-03-22 Frédéric Bernon * stats.h, stats.c, msg_in.c: Stats counters can be change to u32_t if necessary with the new option LWIP_STATS_LARGE. If you need this option, define LWIP_STATS_LARGE to 1 in your lwipopts.h. More, unused counters are not defined in the stats structs, and not display by stats_display(). Note that some options (SYS_STATS and RAW_STATS) are defined but never used. Fix msg_in.c with the correct #if test for a stat display. 2007-03-21 Kieran Mansley * netif.c, netif.h: Apply patch#4197 with some changes (originator: rireland@hmgsl.com). Provides callback on netif up/down state change. 2007-03-11 Frédéric Bernon, Mace Gael, Steve Reynolds * sockets.h, sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c, igmp.h, igmp.c, ip.c, netif.h, tcpip.c, opt.h: New configuration option LWIP_IGMP to enable IGMP processing. Based on only one filter per all network interfaces. Declare a new function in netif to enable to control the MAC filter (to reduce lwIP traffic processing). 2007-03-11 Frédéric Bernon * tcp.h, tcp.c, sockets.c, tcp_out.c, tcp_in.c, opt.h: Keepalive values can be configured at run time with LWIP_TCP_KEEPALIVE, but don't change this unless you know what you're doing (default are RFC1122 compliant). Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set in seconds. 2007-03-08 Frédéric Bernon * tcp.h: Keepalive values can be configured at compile time, but don't change this unless you know what you're doing (default are RFC1122 compliant). 2007-03-08 Frédéric Bernon * sockets.c, api.h, api_lib.c, tcpip.c, sys.h, sys.c, err.c, opt.h: Implement LWIP_SO_RCVTIMEO configuration option to enable/disable SO_RCVTIMEO on UDP sockets/netconn. 2007-03-08 Simon Goldschmidt * snmp_msg.h, msg_in.c: SNMP UDP ports can be configured at compile time. 2007-03-06 Frédéric Bernon * api.h, api_lib.c, sockets.h, sockets.c, tcpip.c, sys.h, sys.c, err.h: Implement SO_RCVTIMEO on UDP sockets/netconn. 2007-02-28 Kieran Mansley (based on patch from Simon Goldschmidt) * api_lib.c, tcpip.c, memp.c, memp.h: make API msg structs allocated on the stack and remove the API msg type from memp 2007-02-26 Jonathan Larmour (based on patch from Simon Goldschmidt) * sockets.h, sockets.c: Move socket initialization to new lwip_socket_init() function. NOTE: this changes the API with ports. Ports will have to be updated to call lwip_socket_init() now. 2007-02-26 Jonathan Larmour (based on patch from Simon Goldschmidt) * api_lib.c: Use memcpy in netbuf_copy_partial. ++ Bug fixes: 2008-03-17 Frédéric Bernon, Ed Kerekes * igmp.h, igmp.c: Fix bug #22613 "IGMP iphdr problem" (could have some problems to fill the IP header on some targets, use now the ip.h macros to do it). 2008-03-13 Frédéric Bernon * sockets.c: Fix bug #22435 "lwip_recvfrom with TCP break;". Using (lwip_)recvfrom with valid "from" and "fromlen" parameters, on a TCP connection caused a crash. Note that using (lwip_)recvfrom like this is a bit slow and that using (lwip)getpeername is the good lwip way to do it (so, using recv is faster on tcp sockets). 2008-03-12 Frédéric Bernon, Jonathan Larmour * api_msg.c, contrib/apps/ping.c: Fix bug #22530 "api_msg.c's recv_raw() does not consume data", and the ping sample (with LWIP_SOCKET=1, the code did the wrong supposition that lwip_recvfrom returned the IP payload, without the IP header). 2008-03-04 Jonathan Larmour * mem.c, stats.c, mem.h: apply patch #6414 to avoid compiler errors and/or warnings on some systems where mem_size_t and size_t differ. * pbuf.c, ppp.c: Fix warnings on some systems with mem_malloc. 2008-03-04 Kieran Mansley (contributions by others) * Numerous small compiler error/warning fixes from contributions to mailing list after 1.3.0 release candidate made. 2008-01-25 Cui hengbin (integrated by Frédéric Bernon) * dns.c: Fix bug #22108 "DNS problem" caused by unaligned structures. 2008-01-15 Kieran Mansley * tcp_out.c: BUG20511. Modify persist timer to start when we are prevented from sending by a small send window, not just a zero send window. 2008-01-09 Jonathan Larmour * opt.h, ip.c: Rename IP_OPTIONS define to IP_OPTIONS_ALLOWED to avoid conflict with Linux system headers. 2008-01-06 Jonathan Larmour * dhcp.c: fix bug #19927: "DHCP NACK problem" by clearing any existing set IP address entirely on receiving a DHCPNAK, and restarting discovery. 2007-12-21 Simon Goldschmidt * sys.h, api_lib.c, api_msg.c, sockets.c: fix bug #21698: "netconn->recv_avail is not protected" by using new macros for interlocked access to modify/test netconn->recv_avail. 2007-12-20 Kieran Mansley (based on patch from Oleg Tyshev) * tcp_in.c: fix bug# 21535 (nrtx not reset correctly in SYN_SENT state) 2007-12-20 Kieran Mansley (based on patch from Per-Henrik Lundbolm) * tcp.c, tcp_in.c, tcp_out.c, tcp.h: fix bug #20199 (better handling of silly window avoidance and prevent lwIP from shrinking the window) 2007-12-04 Simon Goldschmidt * tcp.c, tcp_in.c: fix bug #21699 (segment leak in ooseq processing when last data packet was lost): add assert that all segment lists are empty in tcp_pcb_remove before setting pcb to CLOSED state; don't directly set CLOSED state from LAST_ACK in tcp_process 2007-12-02 Simon Goldschmidt * sockets.h: fix bug #21654: exclude definition of struct timeval from #ifndef FD_SET If including for system-struct timeval, LWIP_TIMEVAL_PRIVATE now has to be set to 0 in lwipopts.h 2007-12-02 Simon Goldschmidt * api_msg.c, api_lib.c: fix bug #21656 (recvmbox problem in netconn API): always allocate a recvmbox in netconn_new_with_proto_and_callback. For a tcp-listen netconn, this recvmbox is later freed and a new mbox is allocated for acceptmbox. This is a fix for thread-safety and allocates all items needed for a netconn when the netconn is created. 2007-11-30 Simon Goldschmidt * udp.c: first attempt to fix bug #21655 (DHCP doesn't work reliably with multiple netifs): if LWIP_DHCP is enabled, UDP packets to DHCP_CLIENT_PORT are passed to netif->dhcp->pcb only (if that exists) and not to any other pcb for the same port (only solution to let UDP pcbs 'bind' to a netif instead of an IP address) 2007-11-27 Simon Goldschmidt * ip.c: fixed bug #21643 (udp_send/raw_send don't fail if netif is down) by letting ip_route only use netifs that are up. 2007-11-27 Simon Goldschmidt * err.h, api_lib.c, api_msg.c, sockets.c: Changed error handling: ERR_MEM, ERR_BUF and ERR_RTE are seen as non-fatal, all other errors are fatal. netconns and sockets block most operations once they have seen a fatal error. 2007-11-27 Simon Goldschmidt * udp.h, udp.c, dhcp.c: Implemented new function udp_sendto_if which takes the netif to send as an argument (to be able to send on netifs that are down). 2007-11-26 Simon Goldschmidt * tcp_in.c: Fixed bug #21582: pcb->acked accounting can be wrong when ACKs arrive out-of-order 2007-11-21 Simon Goldschmidt * tcp.h, tcp_out.c, api_msg.c: Fixed bug #20287: tcp_output_nagle sends too early Fixed the nagle algorithm; nagle now also works for all raw API applications and has to be explicitly disabled with 'tcp_pcb->flags |= TF_NODELAY' 2007-11-12 Frédéric Bernon * sockets.c, api.h, api_lib.c, api_msg.h, api_msg.c: Fixed bug #20900. Now, most of the netconn_peer and netconn_addr processing is done inside tcpip_thread context in do_getaddr. 2007-11-10 Simon Goldschmidt * etharp.c: Fixed bug: assert fired when MEMP_ARP_QUEUE was empty (which can happen any time). Now the packet simply isn't enqueued when out of memory. 2007-11-01 Simon Goldschmidt * tcp.c, tcp_in.c: Fixed bug #21494: The send mss (pcb->mss) is set to 536 (or TCP_MSS if that is smaller) as long as no MSS option is received from the remote host. 2007-11-01 Simon Goldschmidt * tcp.h, tcp.c, tcp_in.c: Fixed bug #21491: The MSS option sent (with SYN) is now based on TCP_MSS instead of pcb->mss (on passive open now effectively sending our configured TCP_MSS instead of the one received). 2007-11-01 Simon Goldschmidt * tcp_in.c: Fixed bug #21181: On active open, the initial congestion window was calculated based on the configured TCP_MSS, not on the MSS option received with SYN+ACK. 2007-10-09 Simon Goldschmidt * udp.c, inet.c, inet.h: Fixed UDPLite: send: Checksum was always generated too short and also was generated wrong if checksum coverage != tot_len; receive: checksum was calculated wrong if checksum coverage != tot_len 2007-10-08 Simon Goldschmidt * mem.c: lfree was not updated in mem_realloc! 2007-10-07 Frédéric Bernon * sockets.c, api.h, api_lib.c: First step to fix "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". VERY IMPORTANT: this change cause an API breakage for netconn_addr, since a parameter type change. Any compiler should cause an error without any changes in yours netconn_peer calls (so, it can't be a "silent change"). It also reduce a little bit the footprint for socket layer (lwip_getpeername & lwip_getsockname use now a common lwip_getaddrname function since netconn_peer & netconn_addr have the same parameters). 2007-09-20 Simon Goldschmidt * tcp.c: Fixed bug #21080 (tcp_bind without check pcbs in TIME_WAIT state) by checking tcp_tw_pcbs also 2007-09-19 Simon Goldschmidt * icmp.c: Fixed bug #21107 (didn't reset IP TTL in ICMP echo replies) 2007-09-15 Mike Kleshov * mem.c: Fixed bug #21077 (inaccuracy in calculation of lwip_stat.mem.used) 2007-09-06 Frédéric Bernon * several-files: replace some #include "arch/cc.h" by "lwip/arch.h", or simply remove it as long as "lwip/opt.h" is included before (this one include "lwip/debug.h" which already include "lwip/arch.h"). Like that, default defines are provided by "lwip/arch.h" if they are not defined in cc.h, in the same spirit than "lwip/opt.h" for lwipopts.h. 2007-08-30 Frédéric Bernon * igmp.h, igmp.c: Some changes to remove some redundant code, add some traces, and fix some coding style. 2007-08-28 Frédéric Bernon * tcpip.c: Fix TCPIP_MSG_INPKT processing: now, tcpip_input can be used for any kind of packets. These packets are considered like Ethernet packets (payload pointing to ethhdr) if the netif got the NETIF_FLAG_ETHARP flag. Else, packets are considered like IP packets (payload pointing to iphdr). 2007-08-27 Frédéric Bernon * api.h, api_lib.c, api_msg.c: First fix for "bug #20900 : Potential crash error problem with netconn_peer & netconn_addr". Introduce NETCONN_LISTEN netconn_state and remove obsolete ones (NETCONN_RECV & NETCONN_ACCEPT). 2007-08-24 Kieran Mansley * inet.c Modify (acc >> 16) test to ((acc >> 16) != 0) to help buggy compiler (Paradigm C++) 2007-08-09 Frédéric Bernon, Bill Florac * stats.h, stats.c, igmp.h, igmp.c, opt.h: Fix for bug #20503 : IGMP Improvement. Introduce IGMP_STATS to centralize statistics management. 2007-08-09 Frédéric Bernon, Bill Florac * udp.c: Fix for bug #20503 : IGMP Improvement. Enable to receive a multicast packet on a udp pcb binded on an netif's IP address, and not on "any". 2007-08-09 Frédéric Bernon, Bill Florac * igmp.h, igmp.c, ip.c: Fix minor changes from bug #20503 : IGMP Improvement. This is mainly on using lookup/lookfor, and some coding styles... 2007-07-26 Frédéric Bernon (and "thedoctor") * igmp.c: Fix bug #20595 to accept IGMPv3 "Query" messages. 2007-07-25 Simon Goldschmidt * api_msg.c, tcp.c: Another fix for bug #20021: by not returning an error if tcp_output fails in tcp_close, the code in do_close_internal gets simpler (tcp_output is called again later from tcp timers). 2007-07-25 Simon Goldschmidt * ip_frag.c: Fixed bug #20429: use the new pbuf_copy_partial instead of the old copy_from_pbuf, which illegally modified the given pbuf. 2007-07-25 Simon Goldschmidt * tcp_out.c: tcp_enqueue: pcb->snd_queuelen didn't work for chaine PBUF_RAMs: changed snd_queuelen++ to snd_queuelen += pbuf_clen(p). 2007-07-24 Simon Goldschmidt * api_msg.c, tcp.c: Fix bug #20480: Check the pcb passed to tcp_listen() for the correct state (must be CLOSED). 2007-07-13 Thomas Taranowski (commited by Jared Grubb) * memp.c: Fix bug #20478: memp_malloc returned NULL+MEMP_SIZE on failed allocation. It now returns NULL. 2007-07-13 Frédéric Bernon * api_msg.c: Fix bug #20318: api_msg "recv" callbacks don't call pbuf_free in all error cases. 2007-07-13 Frédéric Bernon * api_msg.c: Fix bug #20315: possible memory leak problem if tcp_listen failed, because current code doesn't follow rawapi.txt documentation. 2007-07-13 Kieran Mansley * src/core/tcp_in.c Apply patch#5741 from Oleg Tyshev to fix bug in out of sequence processing of received packets 2007-07-03 Simon Goldschmidt * nearly-all-files: Added assertions where PBUF_RAM pbufs are used and an assumption is made that this pbuf is in one piece (i.e. not chained). These assumptions clash with the possibility of converting to fully pool-based pbuf implementations, where PBUF_RAM pbufs might be chained. 2007-07-03 Simon Goldschmidt * api.h, api_lib.c, api_msg.c: Final fix for bug #20021 and some other problems when closing tcp netconns: removed conn->sem, less context switches when closing, both netconn_close and netconn_delete should safely close tcp connections. 2007-07-02 Simon Goldschmidt * ipv4/ip.h, ipv6/ip.h, opt.h, netif.h, etharp.h, ipv4/ip.c, netif.c, raw.c, tcp_out.c, udp.c, etharp.c: Added option LWIP_NETIF_HWADDRHINT (default=off) to cache ARP table indices with each pcb instead of single-entry cache for the complete stack. 2007-07-02 Simon Goldschmidt * tcp.h, tcp.c, tcp_in.c, tcp_out.c: Added some ASSERTS and casts to prevent warnings when assigning to smaller types. 2007-06-28 Simon Goldschmidt * tcp_out.c: Added check to prevent tcp_pcb->snd_queuelen from overflowing. 2007-06-28 Simon Goldschmidt * tcp.h: Fixed bug #20287: Fixed nagle algorithm (sending was done too early if a segment contained chained pbufs) 2007-06-28 Frédéric Bernon * autoip.c: replace most of rand() calls by a macro LWIP_AUTOIP_RAND which compute a "pseudo-random" value based on netif's MAC and some autoip fields. It's always possible to define this macro in your own lwipopts.h to always use C library's rand(). Note that autoip_create_rand_addr doesn't use this macro. 2007-06-28 Frédéric Bernon * netifapi.h, netifapi.c, tcpip.h, tcpip.c: Update code to handle the option LWIP_TCPIP_CORE_LOCKING, and do some changes to be coherent with last modifications in api_lib/api_msg (use pointers and not type with table, etc...) 2007-06-26 Simon Goldschmidt * udp.h: Fixed bug #20259: struct udp_hdr was lacking the packin defines. 2007-06-25 Simon Goldschmidt * udp.c: Fixed bug #20253: icmp_dest_unreach was called with a wrong p->payload for udp packets with no matching pcb. 2007-06-25 Simon Goldschmidt * udp.c: Fixed bug #20220: UDP PCB search in udp_input(): a non-local match could get udp input packets if the remote side matched. 2007-06-13 Simon Goldschmidt * netif.c: Fixed bug #20180 (TCP pcbs listening on IP_ADDR_ANY could get changed in netif_set_ipaddr if previous netif->ip_addr.addr was 0. 2007-06-13 Simon Goldschmidt * api_msg.c: pcb_new sets conn->err if protocol is not implemented -> netconn_new_..() does not allocate a new connection for unsupported protocols. 2007-06-13 Frédéric Bernon, Simon Goldschmidt * api_lib.c: change return expression in netconn_addr and netconn_peer, because conn->err was reset to ERR_OK without any reasons (and error was lost)... 2007-06-13 Frédéric Bernon, Matthias Weisser * opt.h, mem.h, mem.c, memp.c, pbuf.c, ip_frag.c, vj.c: Fix bug #20162. Rename MEM_ALIGN in LWIP_MEM_ALIGN and MEM_ALIGN_SIZE in LWIP_MEM_ALIGN_SIZE to avoid some macro names collision with some OS macros. 2007-06-11 Simon Goldschmidt * udp.c: UDP Lite: corrected the use of chksum_len (based on RFC3828: if it's 0, create checksum over the complete packet. On RX, if it's < 8 (and not 0), discard the packet. Also removed the duplicate 'udphdr->chksum = 0' for both UDP & UDP Lite. 2007-06-11 Srinivas Gollakota & Oleg Tyshev * tcp_out.c: Fix for bug #20075 : "A problem with keep-alive timer and TCP flags" where TCP flags wasn't initialized in tcp_keepalive. 2007-06-03 Simon Goldschmidt * udp.c: udp_input(): Input pbuf was not freed if pcb had no recv function registered, p->payload was modified without modifying p->len if sending icmp_dest_unreach() (had no negative effect but was definitively wrong). 2007-06-03 Simon Goldschmidt * icmp.c: Corrected bug #19937: For responding to an icmp echo request, icmp re-used the input pbuf even if that didn't have enough space to include the link headers. Now the space is tested and a new pbuf is allocated for the echo response packet if the echo request pbuf isn't big enough. 2007-06-01 Simon Goldschmidt * sockets.c: Checked in patch #5914: Moved sockopt processing into tcpip_thread. 2007-05-23 Frédéric Bernon * api_lib.c, sockets.c: Fixed bug #5958 for netconn_listen (acceptmbox only allocated by do_listen if success) and netconn_accept errors handling. In most of api_lib functions, we replace some errors checkings like "if (conn==NULL)" by ASSERT, except for netconn_delete. 2007-05-23 Frédéric Bernon * api_lib.c: Fixed bug #5957 "Safe-thread problem inside netconn_recv" to return an error code if it's impossible to fetch a pbuf on a TCP connection (and not directly close the recvmbox). 2007-05-22 Simon Goldschmidt * tcp.c: Fixed bug #1895 (tcp_bind not correct) by introducing a list of bound but unconnected (and non-listening) tcp_pcbs. 2007-05-22 Frédéric Bernon * sys.h, sys.c, api_lib.c, tcpip.c: remove sys_mbox_fetch_timeout() (was only used for LWIP_SO_RCVTIMEO option) and use sys_arch_mbox_fetch() instead of sys_mbox_fetch() in api files. Now, users SHOULD NOT use internal lwIP features like "sys_timeout" in their application threads. 2007-05-22 Frédéric Bernon * api.h, api_lib.c, api_msg.h, api_msg.c: change the struct api_msg_msg to see which parameters are used by which do_xxx function, and to avoid "misusing" parameters (patch #5938). 2007-05-22 Simon Goldschmidt * api_lib.c, api_msg.c, raw.c, api.h, api_msg.h, raw.h: Included patch #5938: changed raw_pcb.protocol from u16_t to u8_t since for IPv4 and IPv6, proto is only 8 bits wide. This affects the api, as there, the protocol was u16_t, too. 2007-05-18 Simon Goldschmidt * memp.c: addition to patch #5913: smaller pointer was returned but memp_memory was the same size -> did not save memory. 2007-05-16 Simon Goldschmidt * loopif.c, slipif.c: Fix bug #19729: free pbuf if netif->input() returns != ERR_OK. 2007-05-16 Simon Goldschmidt * api_msg.c, udp.c: If a udp_pcb has a local_ip set, check if it is the same as the one of the netif used for sending to prevent sending from old addresses after a netif address gets changed (partly fixes bug #3168). 2007-05-16 Frédéric Bernon * tcpip.c, igmp.h, igmp.c: Fixed bug "#19800 : IGMP: igmp_tick() will not work with NO_SYS=1". Note that igmp_init is always in tcpip_thread (and not in tcpip_init) because we have to be sure that network interfaces are already added (mac filter is updated only in igmp_init for the moment). 2007-05-16 Simon Goldschmidt * mem.c, memp.c: Removed semaphores from memp, changed sys_sem_wait calls into sys_arch_sem_wait calls to prevent timers from running while waiting for the heap. This fixes bug #19167. 2007-05-13 Simon Goldschmidt * tcp.h, sockets.h, sockets.c: Fixed bug from patch #5865 by moving the defines for socket options (lwip_set/-getsockopt) used with level IPPROTO_TCP from tcp.h to sockets.h. 2007-05-07 Simon Goldschmidt * mem.c: Another attempt to fix bug #17922. 2007-05-04 Simon Goldschmidt * pbuf.c, pbuf.h, etharp.c: Further update to ARP queueing: Changed pbuf_copy() implementation so that it can be reused (don't allocate the target pbuf inside pbuf_copy()). 2007-05-04 Simon Goldschmidt * memp.c: checked in patch #5913: in memp_malloc() we can return memp as mem to save a little RAM (next pointer of memp is not used while not in pool). 2007-05-03 "maq" * sockets.c: Fix ioctl FIONREAD when some data remains from last recv. (patch #3574). 2007-04-23 Simon Goldschmidt * loopif.c, loopif.h, opt.h, src/netif/FILES: fix bug #2595: "loopif results in NULL reference for incoming TCP packets". Loopif has to be configured (using LWIP_LOOPIF_MULTITHREADING) to directly call netif->input() (multithreading environments, e.g. netif->input() = tcpip_input()) or putting packets on a list that is fed to the stack by calling loopif_poll() (single-thread / NO_SYS / polling environment where e.g. netif->input() = ip_input). 2007-04-17 Jonathan Larmour * pbuf.c: Use s32_t in pbuf_realloc(), as an s16_t can't reliably hold the difference between two u16_t's. * sockets.h: FD_SETSIZE needs to match number of sockets, which is MEMP_NUM_NETCONN in sockets.c right now. 2007-04-12 Jonathan Larmour * icmp.c: Reset IP header TTL in ICMP ECHO responses (bug #19580). 2007-04-12 Kieran Mansley * tcp.c, tcp_in.c, tcp_out.c, tcp.h: Modify way the retransmission timer is reset to fix bug#19434, with help from Oleg Tyshev. 2007-04-11 Simon Goldschmidt * etharp.c, pbuf.c, pbuf.h: 3rd fix for bug #11400 (arp-queuing): More pbufs than previously thought need to be copied (everything but PBUF_ROM!). Cleaned up pbuf.c: removed functions no needed any more (by etharp). 2007-04-11 Kieran Mansley * inet.c, ip_addr.h, sockets.h, sys.h, tcp.h: Apply patch #5745: Fix "Constant is long" warnings with 16bit compilers. Contributed by avatar@mmlab.cse.yzu.edu.tw 2007-04-05 Frédéric Bernon, Jonathan Larmour * api_msg.c: Fix bug #16830: "err_tcp() posts to connection mailbox when no pend on the mailbox is active". Now, the post is only done during a connect, and do_send, do_write and do_join_leave_group don't do anything if a previous error was signaled. 2007-04-03 Frédéric Bernon * ip.c: Don't set the IP_DF ("Don't fragment") flag in the IP header in IP output packets. See patch #5834. 2007-03-30 Frédéric Bernon * api_msg.c: add a "pcb_new" helper function to avoid redundant code, and to add missing pcb allocations checking (in do_bind, and for each raw_new). Fix style. 2007-03-30 Frédéric Bernon * most of files: prefix all debug.h define with "LWIP_" to avoid any conflict with others environment defines (these were too "generic"). 2007-03-28 Frédéric Bernon * api.h, api_lib.c, sockets.c: netbuf_ref doesn't check its internal pbuf_alloc call result and can cause a crash. lwip_send now check netbuf_ref result. 2007-03-28 Simon Goldschmidt * sockets.c Remove "#include " from sockets.c to avoid multiple definition of macros (in errno.h and lwip/arch.h) if LWIP_PROVIDE_ERRNO is defined. This is the way it should have been already (looking at doc/sys_arch.txt) 2007-03-28 Kieran Mansley * opt.h Change default PBUF_POOL_BUFSIZE (again) to accomodate default MSS + IP and TCP headers *and* physical link headers 2007-03-26 Frédéric Bernon (based on patch from Dmitry Potapov) * api_lib.c: patch for netconn_write(), fixes a possible race condition which cause to send some garbage. It is not a definitive solution, but the patch does solve the problem for most cases. 2007-03-22 Frédéric Bernon * api_msg.h, api_msg.c: Remove obsolete API_MSG_ACCEPT and do_accept (never used). 2007-03-22 Frédéric Bernon * api_lib.c: somes resources couldn't be freed if there was errors during netconn_new_with_proto_and_callback. 2007-03-22 Frédéric Bernon * ethernetif.c: update netif->input calls to check return value. In older ports, it's a good idea to upgrade them, even if before, there could be another problem (access to an uninitialized mailbox). 2007-03-21 Simon Goldschmidt * sockets.c: fixed bug #5067 (essentialy a signed/unsigned warning fixed by casting to unsigned). 2007-03-21 Frédéric Bernon * api_lib.c, api_msg.c, tcpip.c: integrate sys_mbox_fetch(conn->mbox, NULL) calls from api_lib.c to tcpip.c's tcpip_apimsg(). Now, use a local variable and not a dynamic one from memp to send tcpip_msg to tcpip_thread in a synchrone call. Free tcpip_msg from tcpip_apimsg is not done in tcpip_thread. This give a faster and more reliable communication between api_lib and tcpip. 2007-03-21 Frédéric Bernon * opt.h: Add LWIP_NETIF_CALLBACK (to avoid compiler warning) and set it to 0. 2007-03-21 Frédéric Bernon * api_msg.c, igmp.c, igmp.h: Fix C++ style comments 2007-03-21 Kieran Mansley * opt.h Change default PBUF_POOL_BUFSIZE to accomodate default MSS + IP and TCP headers 2007-03-21 Kieran Mansley * Fix all uses of pbuf_header to check the return value. In some cases just assert if it fails as I'm not sure how to fix them, but this is no worse than before when they would carry on regardless of the failure. 2007-03-21 Kieran Mansley * sockets.c, igmp.c, igmp.h, memp.h: Fix C++ style comments and comment out missing header include in icmp.c 2007-03-20 Frédéric Bernon * memp.h, stats.c: Fix stats_display function where memp_names table wasn't synchronized with memp.h. 2007-03-20 Frédéric Bernon * tcpip.c: Initialize tcpip's mbox, and verify if initialized in tcpip_input, tcpip_ethinput, tcpip_callback, tcpip_apimsg, to fix a init problem with network interfaces. Also fix a compiler warning. 2007-03-20 Kieran Mansley * udp.c: Only try and use pbuf_header() to make space for headers if not a ROM or REF pbuf. 2007-03-19 Frédéric Bernon * api_msg.h, api_msg.c, tcpip.h, tcpip.c: Add return types to tcpip_apimsg() and api_msg_post(). 2007-03-19 Frédéric Bernon * Remove unimplemented "memp_realloc" function from memp.h. 2007-03-11 Simon Goldschmidt * pbuf.c: checked in patch #5796: pbuf_alloc: len field claculation caused memory corruption. 2007-03-11 Simon Goldschmidt (based on patch from Dmitry Potapov) * api_lib.c, sockets.c, api.h, api_msg.h, sockets.h: Fixed bug #19251 (missing `const' qualifier in socket functions), to get more compatible to standard POSIX sockets. 2007-03-11 Frédéric Bernon (based on patch from Dmitry Potapov) * sockets.c: Add asserts inside bind, connect and sendto to check input parameters. Remove excessive set_errno() calls after get_socket(), because errno is set inside of get_socket(). Move last sock_set_errno() inside lwip_close. 2007-03-09 Simon Goldschmidt * memp.c: Fixed bug #11400: New etharp queueing introduced bug: memp_memory was allocated too small. 2007-03-06 Simon Goldschmidt * tcpip.c: Initialize dhcp timers in tcpip_thread (if LWIP_DHCP) to protect the stack from concurrent access. 2007-03-06 Frédéric Bernon, Dmitry Potapov * tcpip.c, ip_frag.c, ethernetif.c: Fix some build problems, and a redundancy call to "lwip_stats.link.recv++;" in low_level_input() & ethernetif_input(). 2007-03-06 Simon Goldschmidt * ip_frag.c, ip_frag.h: Reduce code size: don't include code in those files if IP_FRAG == 0 and IP_REASSEMBLY == 0 2007-03-06 Frédéric Bernon, Simon Goldschmidt * opt.h, ip_frag.h, tcpip.h, tcpip.c, ethernetif.c: add new configuration option named ETHARP_TCPIP_ETHINPUT, which enable the new tcpip_ethinput. Allow to do ARP processing for incoming packets inside tcpip_thread (protecting ARP layer against concurrent access). You can also disable old code using tcp_input with new define ETHARP_TCPIP_INPUT set to 0. Older ports have to use tcpip_ethinput. 2007-03-06 Simon Goldschmidt (based on patch from Dmitry Potapov) * err.h, err.c: fixed compiler warning "initialization dircards qualifiers from pointer target type" 2007-03-05 Frédéric Bernon * opt.h, sockets.h: add new configuration options (LWIP_POSIX_SOCKETS_IO_NAMES, ETHARP_TRUST_IP_MAC, review SO_REUSE) 2007-03-04 Frédéric Bernon * api_msg.c: Remove some compiler warnings : parameter "pcb" was never referenced. 2007-03-04 Frédéric Bernon * api_lib.c: Fix "[patch #5764] api_lib.c cleanup: after patch #5687" (from Dmitry Potapov). The api_msg struct stay on the stack (not moved to netconn struct). 2007-03-04 Simon Goldschmidt (based on patch from Dmitry Potapov) * pbuf.c: Fix BUG#19168 - pbuf_free can cause deadlock (if SYS_LIGHTWEIGHT_PROT=1 & freeing PBUF_RAM when mem_sem is not available) Also fixed cast warning in pbuf_alloc() 2007-03-04 Simon Goldschmidt * etharp.c, etharp.h, memp.c, memp.h, opt.h: Fix BUG#11400 - don't corrupt existing pbuf chain when enqueuing multiple pbufs to a pending ARP request 2007-03-03 Frédéric Bernon * udp.c: remove obsolete line "static struct udp_pcb *pcb_cache = NULL;" It is static, and never used in udp.c except udp_init(). 2007-03-02 Simon Goldschmidt * tcpip.c: Moved call to ip_init(), udp_init() and tcp_init() from tcpip_thread() to tcpip_init(). This way, raw API connections can be initialized before tcpip_thread is running (e.g. before OS is started) 2007-03-02 Frédéric Bernon * rawapi.txt: Fix documentation mismatch with etharp.h about etharp_tmr's call interval. 2007-02-28 Kieran Mansley * pbuf.c: Fix BUG#17645 - ensure pbuf payload pointer is not moved outside the region of the pbuf by pbuf_header() 2007-02-28 Kieran Mansley * sockets.c: Fix BUG#19161 - ensure milliseconds timeout is non-zero when supplied timeout is also non-zero (STABLE-1.2.0) 2006-12-05 Leon Woestenberg * CHANGELOG: Mention STABLE-1.2.0 release. ++ New features: 2006-12-01 Christiaan Simons * mem.h, opt.h: Added MEM_LIBC_MALLOC option. Note this is a workaround. Currently I have no other options left. 2006-10-26 Christiaan Simons (accepted patch by Jonathan Larmour) * ipv4/ip_frag.c: rename MAX_MTU to IP_FRAG_MAX_MTU and move define to include/lwip/opt.h. * ipv4/lwip/ip_frag.h: Remove unused IP_REASS_INTERVAL. Move IP_REASS_MAXAGE and IP_REASS_BUFSIZE to include/lwip/opt.h. * opt.h: Add above new options. 2006-08-18 Christiaan Simons * tcp_{in,out}.c: added SNMP counters. * ipv4/ip.c: added SNMP counters. * ipv4/ip_frag.c: added SNMP counters. 2006-08-08 Christiaan Simons * etharp.{c,h}: added etharp_find_addr() to read (stable) ethernet/IP address pair from ARP table 2006-07-14 Christiaan Simons * mib_structs.c: added * include/lwip/snmp_structs.h: added * netif.{c,h}, netif/ethernetif.c: added SNMP statistics to netif struct 2006-07-06 Christiaan Simons * snmp/asn1_{enc,dec}.c added * snmp/mib2.c added * snmp/msg_{in,out}.c added * include/lwip/snmp_asn1.h added * include/lwip/snmp_msg.h added * doc/snmp_agent.txt added 2006-03-29 Christiaan Simons * inet.c, inet.h: Added platform byteswap support. Added LWIP_PLATFORM_BYTESWAP define (defaults to 0) and optional LWIP_PLATFORM_HTONS(), LWIP_PLATFORM_HTONL() macros. ++ Bug fixes: 2006-11-30 Christiaan Simons * dhcp.c: Fixed false triggers of request_timeout. 2006-11-28 Christiaan Simons * netif.c: In netif_add() fixed missing clear of ip_addr, netmask, gw and flags. 2006-10-11 Christiaan Simons * api_lib.c etharp.c, ip.c, memp.c, stats.c, sys.{c,h} tcp.h: Partially accepted patch #5449 for ANSI C compatibility / build fixes. * ipv4/lwip/ip.h ipv6/lwip/ip.h: Corrected UDP-Lite protocol identifier from 170 to 136 (bug #17574). 2006-10-10 Christiaan Simons * api_msg.c: Fixed Nagle algorithm as reported by Bob Grice. 2006-08-17 Christiaan Simons * udp.c: Fixed bug #17200, added check for broadcast destinations for PCBs bound to a unicast address. 2006-08-07 Christiaan Simons * api_msg.c: Flushing TCP output in do_close() (bug #15926). 2006-06-27 Christiaan Simons * api_msg.c: Applied patch for cold case (bug #11135). In accept_function() ensure newconn->callback is always initialized. 2006-06-15 Christiaan Simons * mem.h: added MEM_SIZE_F alias to fix an ancient cold case (bug #1748), facilitate printing of mem_size_t and u16_t statistics. 2006-06-14 Christiaan Simons * api_msg.c: Applied patch #5146 to handle allocation failures in accept() by Kevin Lawson. 2006-05-26 Christiaan Simons * api_lib.c: Removed conn->sem creation and destruction from netconn_write() and added sys_sem_new to netconn_new_*. (STABLE-1_1_1) 2006-03-03 Christiaan Simons * ipv4/ip_frag.c: Added bound-checking assertions on ip_reassbitmap access and added pbuf_alloc() return value checks. 2006-01-01 Leon Woestenberg * tcp_{in,out}.c, tcp_out.c: Removed 'even sndbuf' fix in TCP, which is now handled by the checksum routine properly. 2006-02-27 Leon Woestenberg * pbuf.c: Fix alignment; pbuf_init() would not work unless pbuf_pool_memory[] was properly aligned. (Patch by Curt McDowell.) 2005-12-20 Leon Woestenberg * tcp.c: Remove PCBs which stay in LAST_ACK state too long. Patch submitted by Mitrani Hiroshi. 2005-12-15 Christiaan Simons * inet.c: Disabled the added summing routine to preserve code space. 2005-12-14 Leon Woestenberg * tcp_in.c: Duplicate FIN ACK race condition fix by Kelvin Lawson. Added Curt McDowell's optimized checksumming routine for future inclusion. Need to create test case for unaliged, aligned, odd, even length combination of cases on various endianess machines. 2005-12-09 Christiaan Simons * inet.c: Rewrote standard checksum routine in proper portable C. 2005-11-25 Christiaan Simons * udp.c tcp.c: Removed SO_REUSE hack. Should reside in socket code only. * *.c: introduced cc.h LWIP_DEBUG formatters matching the u16_t, s16_t, u32_t, s32_t typedefs. This solves most debug word-length assumes. 2005-07-17 Leon Woestenberg * inet.c: Fixed unaligned 16-bit access in the standard checksum routine by Peter Jolasson. * slipif.c: Fixed implementation assumption of single-pbuf datagrams. 2005-02-04 Leon Woestenberg * tcp_out.c: Fixed uninitialized 'queue' referenced in memerr branch. * tcp_{out|in}.c: Applied patch fixing unaligned access. 2005-01-04 Leon Woestenberg * pbuf.c: Fixed missing semicolon after LWIP_DEBUG statement. 2005-01-03 Leon Woestenberg * udp.c: UDP pcb->recv() was called even when it was NULL. (STABLE-1_1_0) 2004-12-28 Leon Woestenberg * etharp.*: Disabled multiple packets on the ARP queue. This clashes with TCP queueing. 2004-11-28 Leon Woestenberg * etharp.*: Fixed race condition from ARP request to ARP timeout. Halved the ARP period, doubled the period counts. ETHARP_MAX_PENDING now should be at least 2. This prevents the counter from reaching 0 right away (which would allow too little time for ARP responses to be received). 2004-11-25 Leon Woestenberg * dhcp.c: Decline messages were not multicast but unicast. * etharp.c: ETHARP_CREATE is renamed to ETHARP_TRY_HARD. Do not try hard to insert arbitrary packet's source address, etharp_ip_input() now calls etharp_update() without ETHARP_TRY_HARD. etharp_query() now always DOES call ETHARP_TRY_HARD so that users querying an address will see it appear in the cache (DHCP could suffer from this when a server invalidly gave an in-use address.) * ipv4/ip_addr.h: Renamed ip_addr_maskcmp() to _netcmp() as we are comparing network addresses (identifiers), not the network masks themselves. * ipv4/ip_addr.c: ip_addr_isbroadcast() now checks that the given IP address actually belongs to the network of the given interface. 2004-11-24 Kieran Mansley * tcp.c: Increment pcb->snd_buf when ACK is received in SYN_SENT state. (STABLE-1_1_0-RC1) 2004-10-16 Kieran Mansley * tcp.c: Add code to tcp_recved() to send an ACK (window update) immediately, even if one is already pending, if the rcv_wnd is above a threshold (currently TCP_WND/2). This avoids waiting for a timer to expire to send a delayed ACK in order to open the window if the stack is only receiving data. 2004-09-12 Kieran Mansley * tcp*.*: Retransmit time-out handling improvement by Sam Jansen. 2004-08-20 Tony Mountifield * etharp.c: Make sure the first pbuf queued on an ARP entry is properly ref counted. 2004-07-27 Tony Mountifield * debug.h: Added (int) cast in LWIP_DEBUGF() to avoid compiler warnings about comparison. * pbuf.c: Stopped compiler complaining of empty if statement when LWIP_DEBUGF() empty. Closed an unclosed comment. * tcp.c: Stopped compiler complaining of empty if statement when LWIP_DEBUGF() empty. * ip.h Corrected IPH_TOS() macro: returns a byte, so doesn't need htons(). * inet.c: Added a couple of casts to quiet the compiler. No need to test isascii(c) before isdigit(c) or isxdigit(c). 2004-07-22 Tony Mountifield * inet.c: Made data types consistent in inet_ntoa(). Added casts for return values of checksum routines, to pacify compiler. * ip_frag.c, tcp_out.c, sockets.c, pbuf.c Small corrections to some debugging statements, to pacify compiler. 2004-07-21 Tony Mountifield * etharp.c: Removed spurious semicolon and added missing end-of-comment. * ethernetif.c Updated low_level_output() to match prototype for netif->linkoutput and changed low_level_input() similarly for consistency. * api_msg.c: Changed recv_raw() from int to u8_t, to match prototype of raw_recv() in raw.h and so avoid compiler error. * sockets.c: Added trivial (int) cast to keep compiler happier. * ip.c, netif.c Changed debug statements to use the tidier ip4_addrN() macros. (STABLE-1_0_0) ++ Changes: 2004-07-05 Leon Woestenberg * sockets.*: Restructured LWIP_PRIVATE_TIMEVAL. Make sure your cc.h file defines this either 1 or 0. If non-defined, defaults to 1. * .c: Added and includes where used. * etharp.c: Made some array indices unsigned. 2004-06-27 Leon Woestenberg * netif.*: Added netif_set_up()/down(). * dhcp.c: Changes to restart program flow. 2004-05-07 Leon Woestenberg * etharp.c: In find_entry(), instead of a list traversal per candidate, do a single-pass lookup for different candidates. Should exploit locality. 2004-04-29 Leon Woestenberg * tcp*.c: Cleaned up source comment documentation for Doxygen processing. * opt.h: ETHARP_ALWAYS_INSERT option removed to comply with ARP RFC. * etharp.c: update_arp_entry() only adds new ARP entries when adviced to by the caller. This deprecates the ETHARP_ALWAYS_INSERT overrule option. ++ Bug fixes: 2004-04-27 Leon Woestenberg * etharp.c: Applied patch of bug #8708 by Toni Mountifield with a solution suggested by Timmy Brolin. Fix for 32-bit processors that cannot access non-aligned 32-bit words, such as soms 32-bit TCP/IP header fields. Fix is to prefix the 14-bit Ethernet headers with two padding bytes. 2004-04-23 Leon Woestenberg * ip_addr.c: Fix in the ip_addr_isbroadcast() check. * etharp.c: Fixed the case where the packet that initiates the ARP request is not queued, and gets lost. Fixed the case where the packets destination address is already known; we now always queue the packet and perform an ARP request. (STABLE-0_7_0) ++ Bug fixes: * Fixed TCP bug for SYN_SENT to ESTABLISHED state transition. * Fixed TCP bug in dequeueing of FIN from out of order segment queue. * Fixed two possible NULL references in rare cases. (STABLE-0_6_6) ++ Bug fixes: * Fixed DHCP which did not include the IP address in DECLINE messages. ++ Changes: * etharp.c has been hauled over a bit. (STABLE-0_6_5) ++ Bug fixes: * Fixed TCP bug induced by bad window resizing with unidirectional TCP traffic. * Packets sent from ARP queue had invalid source hardware address. ++ Changes: * Pass-by ARP requests do now update the cache. ++ New features: * No longer dependent on ctype.h. * New socket options. * Raw IP pcb support. (STABLE-0_6_4) ++ Bug fixes: * Some debug formatters and casts fixed. * Numereous fixes in PPP. ++ Changes: * DEBUGF now is LWIP_DEBUGF * pbuf_dechain() has been re-enabled. * Mentioned the changed use of CVS branches in README. (STABLE-0_6_3) ++ Bug fixes: * Fixed pool pbuf memory leak in pbuf_alloc(). Occured if not enough PBUF_POOL pbufs for a packet pbuf chain. Reported by Savin Zlobec. * PBUF_POOL chains had their tot_len field not set for non-first pbufs. Fixed in pbuf_alloc(). ++ New features: * Added PPP stack contributed by Marc Boucher ++ Changes: * Now drops short packets for ICMP/UDP/TCP protocols. More robust. * ARP queueuing now queues the latest packet instead of the first. This is the RFC recommended behaviour, but can be overridden in lwipopts.h. (0.6.2) ++ Bugfixes: * TCP has been fixed to deal with the new use of the pbuf->ref counter. * DHCP dhcp_inform() crash bug fixed. ++ Changes: * Removed pbuf_pool_free_cache and pbuf_pool_alloc_cache. Also removed pbuf_refresh(). This has sped up pbuf pool operations considerably. Implemented by David Haas. (0.6.1) ++ New features: * The packet buffer implementation has been enhanced to support zero-copy and copy-on-demand for packet buffers which have their payloads in application-managed memory. Implemented by David Haas. Use PBUF_REF to make a pbuf refer to RAM. lwIP will use zero-copy if an outgoing packet can be directly sent on the link, or perform a copy-on-demand when necessary. The application can safely assume the packet is sent, and the RAM is available to the application directly after calling udp_send() or similar function. ++ Bugfixes: * ARP_QUEUEING should now correctly work for all cases, including PBUF_REF. Implemented by Leon Woestenberg. ++ Changes: * IP_ADDR_ANY is no longer a NULL pointer. Instead, it is a pointer to a '0.0.0.0' IP address. * The packet buffer implementation is changed. The pbuf->ref counter meaning has changed, and several pbuf functions have been adapted accordingly. * netif drivers have to be changed to set the hardware address length field that must be initialized correctly by the driver (hint: 6 for Ethernet MAC). See the contrib/ports/c16x cs8900 driver as a driver example. * netif's have a dhcp field that must be initialized to NULL by the driver. See the contrib/ports/c16x cs8900 driver as a driver example. (0.5.x) This file has been unmaintained up to 0.6.1. All changes are logged in CVS but have not been explained here. (0.5.3) Changes since version 0.5.2 ++ Bugfixes: * memp_malloc(MEMP_API_MSG) could fail with multiple application threads because it wasn't protected by semaphores. ++ Other changes: * struct ip_addr now packed. * The name of the time variable in arp.c has been changed to ctime to avoid conflicts with the time() function. (0.5.2) Changes since version 0.5.1 ++ New features: * A new TCP function, tcp_tmr(), now handles both TCP timers. ++ Bugfixes: * A bug in tcp_parseopt() could cause the stack to hang because of a malformed TCP option. * The address of new connections in the accept() function in the BSD socket library was not handled correctly. * pbuf_dechain() did not update the ->tot_len field of the tail. * Aborted TCP connections were not handled correctly in all situations. ++ Other changes: * All protocol header structs are now packed. * The ->len field in the tcp_seg structure now counts the actual amount of data, and does not add one for SYN and FIN segments. (0.5.1) Changes since version 0.5.0 ++ New features: * Possible to run as a user process under Linux. * Preliminary support for cross platform packed structs. * ARP timer now implemented. ++ Bugfixes: * TCP output queue length was badly initialized when opening connections. * TCP delayed ACKs were not sent correctly. * Explicit initialization of BSS segment variables. * read() in BSD socket library could drop data. * Problems with memory alignment. * Situations when all TCP buffers were used could lead to starvation. * TCP MSS option wasn't parsed correctly. * Problems with UDP checksum calculation. * IP multicast address tests had endianess problems. * ARP requests had wrong destination hardware address. ++ Other changes: * struct eth_addr changed from u16_t[3] array to u8_t[6]. * A ->linkoutput() member was added to struct netif. * TCP and UDP ->dest_* struct members where changed to ->remote_*. * ntoh* macros are now null definitions for big endian CPUs. (0.5.0) Changes since version 0.4.2 ++ New features: * Redesigned operating system emulation layer to make porting easier. * Better control over TCP output buffers. * Documenation added. ++ Bugfixes: * Locking issues in buffer management. * Bugfixes in the sequential API. * IP forwarding could cause memory leakage. This has been fixed. ++ Other changes: * Directory structure somewhat changed; the core/ tree has been collapsed. (0.4.2) Changes since version 0.4.1 ++ New features: * Experimental ARP implementation added. * Skeleton Ethernet driver added. * Experimental BSD socket API library added. ++ Bugfixes: * In very intense situations, memory leakage could occur. This has been fixed. ++ Other changes: * Variables named "data" and "code" have been renamed in order to avoid name conflicts in certain compilers. * Variable++ have in appliciable cases been translated to ++variable since some compilers generate better code in the latter case. (0.4.1) Changes since version 0.4 ++ New features: * TCP: Connection attempts time out earlier than data transmissions. Nagle algorithm implemented. Push flag set on the last segment in a burst. * UDP: experimental support for UDP-Lite extensions. ++ Bugfixes: * TCP: out of order segments were in some cases handled incorrectly, and this has now been fixed. Delayed acknowledgements was broken in 0.4, has now been fixed. Binding to an address that is in use now results in an error. Reset connections sometimes hung an application; this has been fixed. * Checksum calculation sometimes failed for chained pbufs with odd lengths. This has been fixed. * API: a lot of bug fixes in the API. The UDP API has been improved and tested. Error reporting and handling has been improved. Logical flaws and race conditions for incoming TCP connections has been found and removed. * Memory manager: alignment issues. Reallocating memory sometimes failed, this has been fixed. * Generic library: bcopy was flawed and has been fixed. ++ Other changes: * API: all datatypes has been changed from generic ones such as ints, to specified ones such as u16_t. Functions that return errors now have the correct type (err_t). * General: A lot of code cleaned up and debugging code removed. Many portability issues have been fixed. * The license was changed; the advertising clause was removed. * C64 port added. * Thanks: Huge thanks go to Dagan Galarneau, Horst Garnetzke, Petri Kosunen, Mikael Caleres, and Frits Wilmink for reporting and fixing bugs! (0.4) Changes since version 0.3.1 * Memory management has been radically changed; instead of allocating memory from a shared heap, memory for objects that are rapidly allocated and deallocated is now kept in pools. Allocation and deallocation from those memory pools is very fast. The shared heap is still present but is used less frequently. * The memory, memory pool, and packet buffer subsystems now support 4-, 2-, or 1-byte alignment. * "Out of memory" situations are handled in a more robust way. * Stack usage has been reduced. * Easier configuration of lwIP parameters such as memory usage, TTLs, statistics gathering, etc. All configuration parameters are now kept in a single header file "lwipopts.h". * The directory structure has been changed slightly so that all architecture specific files are kept under the src/arch hierarchy. * Error propagation has been improved, both in the protocol modules and in the API. * The code for the RTXC architecture has been implemented, tested and put to use. * Bugs have been found and corrected in the TCP, UDP, IP, API, and the Internet checksum modules. * Bugs related to porting between a 32-bit and a 16-bit architecture have been found and corrected. * The license has been changed slightly to conform more with the original BSD license, including the advertisement clause. (0.3.1) Changes since version 0.3 * Fix of a fatal bug in the buffer management. Pbufs with allocated RAM never returned the RAM when the pbuf was deallocated. * TCP congestion control, window updates and retransmissions did not work correctly. This has now been fixed. * Bugfixes in the API. (0.3) Changes since version 0.2 * New and improved directory structure. All include files are now kept in a dedicated include/ directory. * The API now has proper error handling. A new function, netconn_err(), now returns an error code for the connection in case of errors. * Improvements in the memory management subsystem. The system now keeps a pointer to the lowest free memory block. A new function, mem_malloc2() tries to allocate memory once, and if it fails tries to free some memory and retry the allocation. * Much testing has been done with limited memory configurations. lwIP now does a better job when overloaded. * Some bugfixes and improvements to the buffer (pbuf) subsystem. * Many bugfixes in the TCP code: - Fixed a bug in tcp_close(). - The TCP receive window was incorrectly closed when out of sequence segments was received. This has been fixed. - Connections are now timed-out of the FIN-WAIT-2 state. - The initial congestion window could in some cases be too large. This has been fixed. - The retransmission queue could in some cases be screwed up. This has been fixed. - TCP RST flag now handled correctly. - Out of sequence data was in some cases never delivered to the application. This has been fixed. - Retransmitted segments now contain the correct acknowledgment number and advertised window. - TCP retransmission timeout backoffs are not correctly computed (ala BSD). After a number of retransmissions, TCP now gives up the connection. * TCP connections now are kept on three lists, one for active connections, one for listening connections, and one for connections that are in TIME-WAIT. This greatly speeds up the fast timeout processing for sending delayed ACKs. * TCP now provides proper feedback to the application when a connection has been successfully set up. * More comments have been added to the code. The code has also been somewhat cleaned up. (0.2) Initial public release. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/COPYING000066400000000000000000000031131224274632000203550ustar00rootroot00000000000000/* * Copyright (c) 2001, 2002 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/FILES000066400000000000000000000002161224274632000201100ustar00rootroot00000000000000src/ - The source code for the lwIP TCP/IP stack. doc/ - The documentation for lwIP. See also the FILES file in each subdirectory. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/README000066400000000000000000000063511224274632000202110ustar00rootroot00000000000000INTRODUCTION lwIP is a small independent implementation of the TCP/IP protocol suite that has been developed by Adam Dunkels at the Computer and Networks Architectures (CNA) lab at the Swedish Institute of Computer Science (SICS). The focus of the lwIP TCP/IP implementation is to reduce the RAM usage while still having a full scale TCP. This making lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM. FEATURES * IP (Internet Protocol) including packet forwarding over multiple network interfaces * ICMP (Internet Control Message Protocol) for network maintenance and debugging * IGMP (Internet Group Management Protocol) for multicast traffic management * UDP (User Datagram Protocol) including experimental UDP-lite extensions * TCP (Transmission Control Protocol) with congestion control, RTT estimation and fast recovery/fast retransmit * Specialized raw/native API for enhanced performance * Optional Berkeley-like socket API * DNS (Domain names resolver) * SNMP (Simple Network Management Protocol) * DHCP (Dynamic Host Configuration Protocol) * AUTOIP (for IPv4, conform with RFC 3927) * PPP (Point-to-Point Protocol) * ARP (Address Resolution Protocol) for Ethernet LICENSE lwIP is freely available under a BSD license. DEVELOPMENT lwIP has grown into an excellent TCP/IP stack for embedded devices, and developers using the stack often submit bug fixes, improvements, and additions to the stack to further increase its usefulness. Development of lwIP is hosted on Savannah, a central point for software development, maintenance and distribution. Everyone can help improve lwIP by use of Savannah's interface, CVS and the mailing list. A core team of developers will commit changes to the CVS source tree. The lwIP TCP/IP stack is maintained in the 'lwip' CVS module and contributions (such as platform ports) are in the 'contrib' module. See doc/savannah.txt for details on CVS server access for users and developers. Last night's CVS tar ball can be downloaded from: http://savannah.gnu.org/cvs.backups/lwip.tar.gz [CHANGED - NEEDS FIXING] The current CVS trees are web-browsable: http://savannah.nongnu.org/cgi-bin/viewcvs/lwip/lwip/ http://savannah.nongnu.org/cgi-bin/viewcvs/lwip/contrib/ Submit patches and bugs via the lwIP project page: http://savannah.nongnu.org/projects/lwip/ DOCUMENTATION The original out-dated homepage of lwIP and Adam Dunkels' papers on lwIP are at the official lwIP home page: http://www.sics.se/~adam/lwip/ Self documentation of the source code is regularly extracted from the current CVS sources and is available from this web page: http://www.nongnu.org/lwip/ There is now a constantly growin wiki about lwIP at http://lwip.scribblewiki.com/ Also, there are mailing lists you can subscribe at http://savannah.nongnu.org/mail/?group=lwip plus searchable archives: http://lists.nongnu.org/archive/html/lwip-users/ http://lists.nongnu.org/archive/html/lwip-devel/ Reading Adam's papers, the files in docs/, browsing the source code documentation and browsing the mailing list archives is a good way to become familiar with the design of lwIP. Adam Dunkels Leon Woestenberg uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/000077500000000000000000000000001224274632000200715ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/FILES000066400000000000000000000006271224274632000206630ustar00rootroot00000000000000savannah.txt - How to obtain the current development source code. contrib.txt - How to contribute to lwIP as a developer. rawapi.txt - The documentation for the core API of lwIP. Also provides an overview about the other APIs and multithreading. snmp_agent.txt - The documentation for the lwIP SNMP agent. sys_arch.txt - The documentation for a system abstraction layer of lwIP. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/contrib.txt000066400000000000000000000064541224274632000223030ustar00rootroot000000000000001 Introduction This document describes some guidelines for people participating in lwIP development. 2 How to contribute to lwIP Here is a short list of suggestions to anybody working with lwIP and trying to contribute bug reports, fixes, enhancements, platform ports etc. First of all as you may already know lwIP is a volunteer project so feedback to fixes or questions might often come late. Hopefully the bug and patch tracking features of Savannah help us not lose users' input. 2.1 Source code style: 1. do not use tabs. 2. indentation is two spaces per level (i.e. per tab). 3. end debug messages with a trailing newline (\n). 4. one space between keyword and opening bracket. 5. no space between function and opening bracket. 6. one space and no newline before opening curly braces of a block. 7. closing curly brace on a single line. 8. spaces surrounding assignment and comparisons. 9. don't initialize static and/or global variables to zero, the compiler takes care of that. 10. use current source code style as further reference. 2.2 Source code documentation style: 1. JavaDoc compliant and Doxygen compatible. 2. Function documentation above functions in .c files, not .h files. (This forces you to synchronize documentation and implementation.) 3. Use current documentation style as further reference. 2.3 Bug reports and patches: 1. Make sure you are reporting bugs or send patches against the latest sources. (From the latest release and/or the current CVS sources.) 2. If you think you found a bug make sure it's not already filed in the bugtracker at Savannah. 3. If you have a fix put the patch on Savannah. If it is a patch that affects both core and arch specific stuff please separate them so that the core can be applied separately while leaving the other patch 'open'. The prefered way is to NOT touch archs you can't test and let maintainers take care of them. This is a good way to see if they are used at all - the same goes for unix netifs except tapif. 4. Do not file a bug and post a fix to it to the patch area. Either a bug report or a patch will be enough. If you correct an existing bug then attach the patch to the bug rather than creating a new entry in the patch area. 5. Trivial patches (compiler warning, indentation and spelling fixes or anything obvious which takes a line or two) can go to the lwip-users list. This is still the fastest way of interaction and the list is not so crowded as to allow for loss of fixes. Putting bugs on Savannah and subsequently closing them is too much an overhead for reporting a compiler warning fix. 6. Patches should be specific to a single change or to related changes.Do not mix bugfixes with spelling and other trivial fixes unless the bugfix is trivial too.Do not reorganize code and rename identifiers in the same patch you change behaviour if not necessary.A patch is easier to read and understand if it's to the point and short than if it's not to the point and long :) so the chances for it to be applied are greater. 2.4 Platform porters: 1. If you have ported lwIP to a platform (an OS, a uC/processor or a combination of these) and you think it could benefit others[1] you might want discuss this on the mailing list. You can also ask for CVS access to submit and maintain your port in the contrib CVS module. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/rawapi.txt000066400000000000000000000451211224274632000221200ustar00rootroot00000000000000Raw TCP/IP interface for lwIP Authors: Adam Dunkels, Leon Woestenberg, Christiaan Simons lwIP provides three Application Program's Interfaces (APIs) for programs to use for communication with the TCP/IP code: * low-level "core" / "callback" or "raw" API. * higher-level "sequential" API. * BSD-style socket API. The sequential API provides a way for ordinary, sequential, programs to use the lwIP stack. It is quite similar to the BSD socket API. The model of execution is based on the blocking open-read-write-close paradigm. Since the TCP/IP stack is event based by nature, the TCP/IP code and the application program must reside in different execution contexts (threads). The socket API is a compatibility API for existing applications, currently it is built on top of the sequential API. It is meant to provide all functions needed to run socket API applications running on other platforms (e.g. unix / windows etc.). However, due to limitations in the specification of this API, there might be incompatibilities that require small modifications of existing programs. ** Threading lwIP started targeting single-threaded environments. When adding multi- threading support, instead of making the core thread-safe, another approach was chosen: there is one main thread running the lwIP core (also known as the "tcpip_thread"). The raw API may only be used from this thread! Application threads using the sequential- or socket API communicate with this main thread through message passing. As such, the list of functions that may be called from other threads or an ISR is very limited! Only functions from these API header files are thread-safe: - api.h - netbuf.h - netdb.h - netifapi.h - sockets.h - sys.h Additionaly, memory (de-)allocation functions may be called from multiple threads (not ISR!) with NO_SYS=0 since they are protected by SYS_LIGHTWEIGHT_PROT and/or semaphores. Only since 1.3.0, if SYS_LIGHTWEIGHT_PROT is set to 1 and LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT is set to 1, pbuf_free() may also be called from another thread or an ISR (since only then, mem_free - for PBUF_RAM - may be called from an ISR: otherwise, the HEAP is only protected by semaphores). ** The remainder of this document discusses the "raw" API. ** The raw TCP/IP interface allows the application program to integrate better with the TCP/IP code. Program execution is event based by having callback functions being called from within the TCP/IP code. The TCP/IP code and the application program both run in the same thread. The sequential API has a much higher overhead and is not very well suited for small systems since it forces a multithreaded paradigm on the application. The raw TCP/IP interface is not only faster in terms of code execution time but is also less memory intensive. The drawback is that program development is somewhat harder and application programs written for the raw TCP/IP interface are more difficult to understand. Still, this is the preferred way of writing applications that should be small in code size and memory usage. Both APIs can be used simultaneously by different application programs. In fact, the sequential API is implemented as an application program using the raw TCP/IP interface. --- Callbacks Program execution is driven by callbacks. Each callback is an ordinary C function that is called from within the TCP/IP code. Every callback function is passed the current TCP or UDP connection state as an argument. Also, in order to be able to keep program specific state, the callback functions are called with a program specified argument that is independent of the TCP/IP state. The function for setting the application connection state is: - void tcp_arg(struct tcp_pcb *pcb, void *arg) Specifies the program specific state that should be passed to all other callback functions. The "pcb" argument is the current TCP connection control block, and the "arg" argument is the argument that will be passed to the callbacks. --- TCP connection setup The functions used for setting up connections is similar to that of the sequential API and of the BSD socket API. A new TCP connection identifier (i.e., a protocol control block - PCB) is created with the tcp_new() function. This PCB can then be either set to listen for new incoming connections or be explicitly connected to another host. - struct tcp_pcb *tcp_new(void) Creates a new connection identifier (PCB). If memory is not available for creating the new pcb, NULL is returned. - err_t tcp_bind(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port) Binds the pcb to a local IP address and port number. The IP address can be specified as IP_ADDR_ANY in order to bind the connection to all local IP addresses. If another connection is bound to the same port, the function will return ERR_USE, otherwise ERR_OK is returned. - struct tcp_pcb *tcp_listen(struct tcp_pcb *pcb) Commands a pcb to start listening for incoming connections. When an incoming connection is accepted, the function specified with the tcp_accept() function will be called. The pcb will have to be bound to a local port with the tcp_bind() function. The tcp_listen() function returns a new connection identifier, and the one passed as an argument to the function will be deallocated. The reason for this behavior is that less memory is needed for a connection that is listening, so tcp_listen() will reclaim the memory needed for the original connection and allocate a new smaller memory block for the listening connection. tcp_listen() may return NULL if no memory was available for the listening connection. If so, the memory associated with the pcb passed as an argument to tcp_listen() will not be deallocated. - struct tcp_pcb *tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog) Same as tcp_listen, but limits the number of outstanding connections in the listen queue to the value specified by the backlog argument. To use it, your need to set TCP_LISTEN_BACKLOG=1 in your lwipopts.h. - void tcp_accepted(struct tcp_pcb *pcb) Inform lwIP that an incoming connection has been accepted. This would usually be called from the accept callback. This allows lwIP to perform housekeeping tasks, such as allowing further incoming connections to be queued in the listen backlog. - void tcp_accept(struct tcp_pcb *pcb, err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err)) Specified the callback function that should be called when a new connection arrives on a listening connection. - err_t tcp_connect(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port, err_t (* connected)(void *arg, struct tcp_pcb *tpcb, err_t err)); Sets up the pcb to connect to the remote host and sends the initial SYN segment which opens the connection. The tcp_connect() function returns immediately; it does not wait for the connection to be properly setup. Instead, it will call the function specified as the fourth argument (the "connected" argument) when the connection is established. If the connection could not be properly established, either because the other host refused the connection or because the other host didn't answer, the "err" callback function of this pcb (registered with tcp_err, see below) will be called. The tcp_connect() function can return ERR_MEM if no memory is available for enqueueing the SYN segment. If the SYN indeed was enqueued successfully, the tcp_connect() function returns ERR_OK. --- Sending TCP data TCP data is sent by enqueueing the data with a call to tcp_write(). When the data is successfully transmitted to the remote host, the application will be notified with a call to a specified callback function. - err_t tcp_write(struct tcp_pcb *pcb, void *dataptr, u16_t len, u8_t copy) Enqueues the data pointed to by the argument dataptr. The length of the data is passed as the len parameter. The copy argument is either 0 or 1 and indicates whether the new memory should be allocated for the data to be copied into. If the argument is 0, no new memory should be allocated and the data should only be referenced by pointer. The tcp_write() function will fail and return ERR_MEM if the length of the data exceeds the current send buffer size or if the length of the queue of outgoing segment is larger than the upper limit defined in lwipopts.h. The number of bytes available in the output queue can be retrieved with the tcp_sndbuf() function. The proper way to use this function is to call the function with at most tcp_sndbuf() bytes of data. If the function returns ERR_MEM, the application should wait until some of the currently enqueued data has been successfully received by the other host and try again. - void tcp_sent(struct tcp_pcb *pcb, err_t (* sent)(void *arg, struct tcp_pcb *tpcb, u16_t len)) Specifies the callback function that should be called when data has successfully been received (i.e., acknowledged) by the remote host. The len argument passed to the callback function gives the amount bytes that was acknowledged by the last acknowledgment. --- Receiving TCP data TCP data reception is callback based - an application specified callback function is called when new data arrives. When the application has taken the data, it has to call the tcp_recved() function to indicate that TCP can advertise increase the receive window. - void tcp_recv(struct tcp_pcb *pcb, err_t (* recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)) Sets the callback function that will be called when new data arrives. The callback function will be passed a NULL pbuf to indicate that the remote host has closed the connection. If there are no errors and the callback function is to return ERR_OK, then it must free the pbuf. Otherwise, it must not free the pbuf so that lwIP core code can store it. - void tcp_recved(struct tcp_pcb *pcb, u16_t len) Must be called when the application has received the data. The len argument indicates the length of the received data. --- Application polling When a connection is idle (i.e., no data is either transmitted or received), lwIP will repeatedly poll the application by calling a specified callback function. This can be used either as a watchdog timer for killing connections that have stayed idle for too long, or as a method of waiting for memory to become available. For instance, if a call to tcp_write() has failed because memory wasn't available, the application may use the polling functionality to call tcp_write() again when the connection has been idle for a while. - void tcp_poll(struct tcp_pcb *pcb, u8_t interval, err_t (* poll)(void *arg, struct tcp_pcb *tpcb)) Specifies the polling interval and the callback function that should be called to poll the application. The interval is specified in number of TCP coarse grained timer shots, which typically occurs twice a second. An interval of 10 means that the application would be polled every 5 seconds. --- Closing and aborting connections - err_t tcp_close(struct tcp_pcb *pcb) Closes the connection. The function may return ERR_MEM if no memory was available for closing the connection. If so, the application should wait and try again either by using the acknowledgment callback or the polling functionality. If the close succeeds, the function returns ERR_OK. The pcb is deallocated by the TCP code after a call to tcp_close(). - void tcp_abort(struct tcp_pcb *pcb) Aborts the connection by sending a RST (reset) segment to the remote host. The pcb is deallocated. This function never fails. If a connection is aborted because of an error, the application is alerted of this event by the err callback. Errors that might abort a connection are when there is a shortage of memory. The callback function to be called is set using the tcp_err() function. - void tcp_err(struct tcp_pcb *pcb, void (* err)(void *arg, err_t err)) The error callback function does not get the pcb passed to it as a parameter since the pcb may already have been deallocated. --- Lower layer TCP interface TCP provides a simple interface to the lower layers of the system. During system initialization, the function tcp_init() has to be called before any other TCP function is called. When the system is running, the two timer functions tcp_fasttmr() and tcp_slowtmr() must be called with regular intervals. The tcp_fasttmr() should be called every TCP_FAST_INTERVAL milliseconds (defined in tcp.h) and tcp_slowtmr() should be called every TCP_SLOW_INTERVAL milliseconds. --- UDP interface The UDP interface is similar to that of TCP, but due to the lower level of complexity of UDP, the interface is significantly simpler. - struct udp_pcb *udp_new(void) Creates a new UDP pcb which can be used for UDP communication. The pcb is not active until it has either been bound to a local address or connected to a remote address. - void udp_remove(struct udp_pcb *pcb) Removes and deallocates the pcb. - err_t udp_bind(struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port) Binds the pcb to a local address. The IP-address argument "ipaddr" can be IP_ADDR_ANY to indicate that it should listen to any local IP address. The function currently always return ERR_OK. - err_t udp_connect(struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port) Sets the remote end of the pcb. This function does not generate any network traffic, but only set the remote address of the pcb. - err_t udp_disconnect(struct udp_pcb *pcb) Remove the remote end of the pcb. This function does not generate any network traffic, but only removes the remote address of the pcb. - err_t udp_send(struct udp_pcb *pcb, struct pbuf *p) Sends the pbuf p. The pbuf is not deallocated. - void udp_recv(struct udp_pcb *pcb, void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port), void *recv_arg) Specifies a callback function that should be called when a UDP datagram is received. --- System initalization A truly complete and generic sequence for initializing the lwip stack cannot be given because it depends on the build configuration (lwipopts.h) and additional initializations for your runtime environment (e.g. timers). We can give you some idea on how to proceed when using the raw API. We assume a configuration using a single Ethernet netif and the UDP and TCP transport layers, IPv4 and the DHCP client. Call these functions in the order of appearance: - stats_init() Clears the structure where runtime statistics are gathered. - sys_init() Not of much use since we set the NO_SYS 1 option in lwipopts.h, to be called for easy configuration changes. - mem_init() Initializes the dynamic memory heap defined by MEM_SIZE. - memp_init() Initializes the memory pools defined by MEMP_NUM_x. - pbuf_init() Initializes the pbuf memory pool defined by PBUF_POOL_SIZE. - etharp_init() Initializes the ARP table and queue. Note: you must call etharp_tmr at a ARP_TMR_INTERVAL (5 seconds) regular interval after this initialization. - ip_init() Doesn't do much, it should be called to handle future changes. - udp_init() Clears the UDP PCB list. - tcp_init() Clears the TCP PCB list and clears some internal TCP timers. Note: you must call tcp_fasttmr() and tcp_slowtmr() at the predefined regular intervals after this initialization. - netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, void *state, err_t (* init)(struct netif *netif), err_t (* input)(struct pbuf *p, struct netif *netif)) Adds your network interface to the netif_list. Allocate a struct netif and pass a pointer to this structure as the first argument. Give pointers to cleared ip_addr structures when using DHCP, or fill them with sane numbers otherwise. The state pointer may be NULL. The init function pointer must point to a initialization function for your ethernet netif interface. The following code illustrates it's use. err_t netif_if_init(struct netif *netif) { u8_t i; for(i = 0; i < ETHARP_HWADDR_LEN; i++) netif->hwaddr[i] = some_eth_addr[i]; init_my_eth_device(); return ERR_OK; } For ethernet drivers, the input function pointer must point to the lwip function ethernet_input() declared in "netif/etharp.h". Other drivers must use ip_input() declared in "lwip/ip.h". - netif_set_default(struct netif *netif) Registers the default network interface. - netif_set_up(struct netif *netif) When the netif is fully configured this function must be called. - dhcp_start(struct netif *netif) Creates a new DHCP client for this interface on the first call. Note: you must call dhcp_fine_tmr() and dhcp_coarse_tmr() at the predefined regular intervals after starting the client. You can peek in the netif->dhcp struct for the actual DHCP status. --- Optimalization hints The first thing you want to optimize is the lwip_standard_checksum() routine from src/core/inet.c. You can override this standard function with the #define LWIP_CHKSUM . There are C examples given in inet.c or you might want to craft an assembly function for this. RFC1071 is a good introduction to this subject. Other significant improvements can be made by supplying assembly or inline replacements for htons() and htonl() if you're using a little-endian architecture. #define LWIP_PLATFORM_BYTESWAP 1 #define LWIP_PLATFORM_HTONS(x) #define LWIP_PLATFORM_HTONL(x) Check your network interface driver if it reads at a higher speed than the maximum wire-speed. If the hardware isn't serviced frequently and fast enough buffer overflows are likely to occur. E.g. when using the cs8900 driver, call cs8900if_service(ethif) as frequently as possible. When using an RTOS let the cs8900 interrupt wake a high priority task that services your driver using a binary semaphore or event flag. Some drivers might allow additional tuning to match your application and network. For a production release it is recommended to set LWIP_STATS to 0. Note that speed performance isn't influenced much by simply setting high values to the memory options. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/savannah.txt000066400000000000000000000111351224274632000224320ustar00rootroot00000000000000Daily Use Guide for using Savannah for lwIP Table of Contents: 1 - Obtaining lwIP from the CVS repository 2 - Committers/developers CVS access using SSH (to be written) 3 - Merging from DEVEL branch to main trunk (stable branch) 4 - How to release lwIP 1 Obtaining lwIP from the CVS repository ---------------------------------------- To perform an anonymous CVS checkout of the main trunk (this is where bug fixes and incremental enhancements occur), do this: cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout lwip Or, obtain a stable branch (updated with bug fixes only) as follows: cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ -r STABLE-0_7 -d lwip-0.7 lwip Or, obtain a specific (fixed) release as follows: cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ -r STABLE-0_7_0 -d lwip-0.7.0 lwip 3 Committers/developers CVS access using SSH -------------------------------------------- The Savannah server uses SSH (Secure Shell) protocol 2 authentication and encryption. As such, CVS commits to the server occur through a SSH tunnel for project members. To create a SSH2 key pair in UNIX-like environments, do this: ssh-keygen -t dsa Under Windows, a recommended SSH client is "PuTTY", freely available with good documentation and a graphic user interface. Use its key generator. Now paste the id_dsa.pub contents into your Savannah account public key list. Wait a while so that Savannah can update its configuration (This can take minutes). Try to login using SSH: ssh -v your_login@cvs.sv.gnu.org If it tells you: Authenticating with public key "your_key_name"... Server refused to allocate pty then you could login; Savannah refuses to give you a shell - which is OK, as we are allowed to use SSH for CVS only. Now, you should be able to do this: export CVS_RSH=ssh cvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip after which you can edit your local files with bug fixes or new features and commit them. Make sure you know what you are doing when using CVS to make changes on the repository. If in doubt, ask on the lwip-members mailing list. (If SSH asks about authenticity of the host, you can check the key fingerprint against http://savannah.nongnu.org/cvs/?group=lwip) 3 Merging from DEVEL branch to main trunk (stable) -------------------------------------------------- Merging is a delicate process in CVS and requires the following disciplined steps in order to prevent conflicts in the future. Conflicts can be hard to solve! Merging from branch A to branch B requires that the A branch has a tag indicating the previous merger. This tag is called 'merged_from_A_to_B'. After merging, the tag is moved in the A branch to remember this merger for future merge actions. IMPORTANT: AFTER COMMITTING A SUCCESFUL MERGE IN THE REPOSITORY, THE TAG MUST BE SET ON THE SOURCE BRANCH OF THE MERGE ACTION (REPLACING EXISTING TAGS WITH THE SAME NAME). Merge all changes in DEVEL since our last merge to main: In the working copy of the main trunk: cvs update -P -jmerged_from_DEVEL_to_main -jDEVEL (This will apply the changes between 'merged_from_DEVEL_to_main' and 'DEVEL' to your work set of files) We can now commit the merge result. cvs commit -R -m "Merged from DEVEL to main." If this worked out OK, we now move the tag in the DEVEL branch to this merge point, so we can use this point for future merges: cvs rtag -F -r DEVEL merged_from_DEVEL_to_main lwip 4 How to release lwIP --------------------- First, checkout a clean copy of the branch to be released. Tag this set with tag name "STABLE-0_6_3". (I use release number 0.6.3 throughout this example). Login CVS using pserver authentication, then export a clean copy of the tagged tree. Export is similar to a checkout, except that the CVS metadata is not created locally. export CVS_RSH=ssh cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ -r STABLE-0_6_3 -d lwip-0.6.3 lwip Archive this directory using tar, gzip'd, bzip2'd and zip'd. tar czvf lwip-0.6.3.tar.gz lwip-0.6.3 tar cjvf lwip-0.6.3.tar.bz2 lwip-0.6.3 zip -r lwip-0.6.3.zip lwip-0.6.3 Now, sign the archives with a detached GPG binary signature as follows: gpg -b lwip-0.6.3.tar.gz gpg -b lwip-0.6.3.tar.bz2 gpg -b lwip-0.6.3.zip Upload these files using anonymous FTP: ncftp ftp://savannah.gnu.org/incoming/savannah/lwip ncftp>mput *0.6.3.* Additionally, you may post a news item on Savannah, like this: A new 0.6.3 release is now available here: http://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3 You will have to submit this via the user News interface, then approve this via the Administrator News interface.uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/snmp_agent.txt000066400000000000000000000143301224274632000227660ustar00rootroot00000000000000SNMPv1 agent for lwIP Author: Christiaan Simons This is a brief introduction how to use and configure the SNMP agent. Note the agent uses the raw-API UDP interface so you may also want to read rawapi.txt to gain a better understanding of the SNMP message handling. 0 Agent Capabilities ==================== SNMPv1 per RFC1157 This is an old(er) standard but is still widely supported. For SNMPv2c and v3 have a greater complexity and need many more lines of code. IMHO this breaks the idea of "lightweight IP". Note the S in SNMP stands for "Simple". Note that "Simple" is relative. SNMP is simple compared to the complex ISO network management protocols CMIP (Common Management Information Protocol) and CMOT (CMip Over Tcp). MIB II per RFC1213 The standard lwIP stack management information base. This is a required MIB, so this is always enabled. When builing lwIP without TCP, the mib-2.tcp group is omitted. The groups EGP, CMOT and transmission are disabled by default. Most mib-2 objects are not writable except: sysName, sysLocation, sysContact, snmpEnableAuthenTraps. Writing to or changing the ARP and IP address and route tables is not possible. Note lwIP has a very limited notion of IP routing. It currently doen't have a route table and doesn't have a notion of the U,G,H flags. Instead lwIP uses the interface list with only one default interface acting as a single gateway interface (G) for the default route. The agent returns a "virtual table" with the default route 0.0.0.0 for the default interface and network routes (no H) for each network interface in the netif_list. All routes are considered to be up (U). Loading additional MIBs MIBs can only be added in compile-time, not in run-time. There is no MIB compiler thus additional MIBs must be hand coded. Large SNMP message support The packet decoding and encoding routines are designed to use pbuf-chains. Larger payloads then the minimum SNMP requirement of 484 octets are supported if the PBUF_POOL_SIZE and IP_REASS_BUFSIZE are set to match your local requirement. 1 Building the Agent ==================== First of all you'll need to add the following define to your local lwipopts.h: #define LWIP_SNMP 1 and add the source files in lwip/src/core/snmp and some snmp headers in lwip/src/include/lwip to your makefile. Note you'll might need to adapt you network driver to update the mib2 variables for your interface. 2 Running the Agent =================== The following function calls must be made in your program to actually get the SNMP agent running. Before starting the agent you should supply pointers to non-volatile memory for sysContact, sysLocation, and snmpEnableAuthenTraps. You can do this by calling snmp_set_syscontact() snmp_set_syslocation() snmp_set_snmpenableauthentraps() Additionally you may want to set snmp_set_sysdescr() snmp_set_sysobjid() (if you have a private MIB) snmp_set_sysname() Also before starting the agent you need to setup one or more trap destinations using these calls: snmp_trap_dst_enable(); snmp_trap_dst_ip_set(); In the lwIP initialisation sequence call snmp_init() just after the call to udp_init(). Exactly every 10 msec the SNMP uptime timestamp must be updated with snmp_inc_sysuptime(). You should call this from a timer interrupt or a timer signal handler depending on your runtime environment. An alternative way to update the SNMP uptime timestamp is to do a call like snmp_add_sysuptime(100) each 1000ms (which is bigger "step", but call to a lower frequency). Another one is to not call snmp_inc_sysuptime() or snmp_add_sysuptime(), and to define the SNMP_GET_SYSUPTIME(sysuptime) macro. This one is undefined by default in mib2.c. SNMP_GET_SYSUPTIME is called inside snmp_get_sysuptime(u32_t *value), and enable to change "sysuptime" value only when it's queried (any function which need "sysuptime" have to call snmp_get_sysuptime). 3 Private MIBs ============== If want to extend the agent with your own private MIB you'll need to add the following define to your local lwipopts.h: #define SNMP_PRIVATE_MIB 1 You must provide the private_mib.h and associated files yourself. Note we don't have a "MIB compiler" that generates C source from a MIB, so you're required to do some serious coding if you enable this! Note the lwIP enterprise ID (26381) is assigned to the lwIP project, ALL OBJECT IDENTIFIERS LIVING UNDER THIS ID ARE ASSIGNED BY THE lwIP MAINTAINERS! If you need to create your own private MIB you'll need to apply for your own enterprise ID with IANA: http://www.iana.org/numbers.html You can set it by passing a struct snmp_obj_id to the agent using snmp_set_sysobjid(&my_object_id), just before snmp_init(). Note the object identifiers for thes MIB-2 and your private MIB tree must be kept in sorted ascending (lexicographical) order. This to ensure correct getnext operation. An example for a private MIB is part of the "minimal Unix" project: contrib/ports/unix/proj/minimal/lwip_prvmib.c The next chapter gives a more detailed description of the MIB-2 tree and the optional private MIB. 4 The Gory Details ================== 4.0 Object identifiers and the MIB tree. We have three distinct parts for all object identifiers: The prefix .iso.org.dod.internet the middle part .mgmt.mib-2.ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress and the index part .1.192.168.0.1 Objects located above the .internet hierarchy aren't supported. Currently only the .mgmt sub-tree is available and when the SNMP_PRIVATE_MIB is enabled the .private tree becomes available too. Object identifiers from incoming requests are checked for a matching prefix, middle part and index part or are expanded(*) for GetNext requests with short or inexisting names in the request. (* we call this "expansion" but this also resembles the "auto-completion" operation) The middle part is usually located in ROM (const) to preserve precious RAM on small microcontrollers. However RAM location is possible for an dynamically changing private tree. The index part is handled by functions which in turn use dynamically allocated index trees from RAM. These trees are updated by e.g. the etharp code when new entries are made or removed form the ARP cache. /** @todo more gory details */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/doc/sys_arch.txt000066400000000000000000000226301224274632000224500ustar00rootroot00000000000000sys_arch interface for lwIP 0.6++ Author: Adam Dunkels The operating system emulation layer provides a common interface between the lwIP code and the underlying operating system kernel. The general idea is that porting lwIP to new architectures requires only small changes to a few header files and a new sys_arch implementation. It is also possible to do a sys_arch implementation that does not rely on any underlying operating system. The sys_arch provides semaphores and mailboxes to lwIP. For the full lwIP functionality, multiple threads support can be implemented in the sys_arch, but this is not required for the basic lwIP functionality. Previous versions of lwIP required the sys_arch to implement timer scheduling as well but as of lwIP 0.5 this is implemented in a higher layer. In addition to the source file providing the functionality of sys_arch, the OS emulation layer must provide several header files defining macros used throughout lwip. The files required and the macros they must define are listed below the sys_arch description. Semaphores can be either counting or binary - lwIP works with both kinds. Mailboxes are used for message passing and can be implemented either as a queue which allows multiple messages to be posted to a mailbox, or as a rendez-vous point where only one message can be posted at a time. lwIP works with both kinds, but the former type will be more efficient. A message in a mailbox is just a pointer, nothing more. Semaphores are represented by the type "sys_sem_t" which is typedef'd in the sys_arch.h file. Mailboxes are equivalently represented by the type "sys_mbox_t". lwIP does not place any restrictions on how sys_sem_t or sys_mbox_t are represented internally. The following functions must be implemented by the sys_arch: - void sys_init(void) Is called to initialize the sys_arch layer. - sys_sem_t sys_sem_new(u8_t count) Creates and returns a new semaphore. The "count" argument specifies the initial state of the semaphore. - void sys_sem_free(sys_sem_t sem) Deallocates a semaphore. - void sys_sem_signal(sys_sem_t sem) Signals a semaphore. - u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout) Blocks the thread while waiting for the semaphore to be signaled. If the "timeout" argument is non-zero, the thread should only be blocked for the specified time (measured in milliseconds). If the "timeout" argument is zero, the thread should be blocked until the semaphore is signalled. If the timeout argument is non-zero, the return value is the number of milliseconds spent waiting for the semaphore to be signaled. If the semaphore wasn't signaled within the specified time, the return value is SYS_ARCH_TIMEOUT. If the thread didn't have to wait for the semaphore (i.e., it was already signaled), the function may return zero. Notice that lwIP implements a function with a similar name, sys_sem_wait(), that uses the sys_arch_sem_wait() function. - sys_mbox_t sys_mbox_new(int size) Creates an empty mailbox for maximum "size" elements. Elements stored in mailboxes are pointers. You have to define macros "_MBOX_SIZE" in your lwipopts.h, or ignore this parameter in your implementation and use a default size. - void sys_mbox_free(sys_mbox_t mbox) Deallocates a mailbox. If there are messages still present in the mailbox when the mailbox is deallocated, it is an indication of a programming error in lwIP and the developer should be notified. - void sys_mbox_post(sys_mbox_t mbox, void *msg) Posts the "msg" to the mailbox. This function have to block until the "msg" is really posted. - err_t sys_mbox_trypost(sys_mbox_t mbox, void *msg) Try to post the "msg" to the mailbox. Returns ERR_MEM if this one is full, else, ERR_OK if the "msg" is posted. - u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout) Blocks the thread until a message arrives in the mailbox, but does not block the thread longer than "timeout" milliseconds (similar to the sys_arch_sem_wait() function). If "timeout" is 0, the thread should be blocked until a message arrives. The "msg" argument is a result parameter that is set by the function (i.e., by doing "*msg = ptr"). The "msg" parameter maybe NULL to indicate that the message should be dropped. The return values are the same as for the sys_arch_sem_wait() function: Number of milliseconds spent waiting or SYS_ARCH_TIMEOUT if there was a timeout. Note that a function with a similar name, sys_mbox_fetch(), is implemented by lwIP. - u32_t sys_arch_mbox_tryfetch(sys_mbox_t mbox, void **msg) This is similar to sys_arch_mbox_fetch, however if a message is not present in the mailbox, it immediately returns with the code SYS_MBOX_EMPTY. On success 0 is returned. To allow for efficient implementations, this can be defined as a function-like macro in sys_arch.h instead of a normal function. For example, a naive implementation could be: #define sys_arch_mbox_tryfetch(mbox,msg) \ sys_arch_mbox_fetch(mbox,msg,1) although this would introduce unnecessary delays. - struct sys_timeouts *sys_arch_timeouts(void) Returns a pointer to the per-thread sys_timeouts structure. In lwIP, each thread has a list of timeouts which is repressented as a linked list of sys_timeout structures. The sys_timeouts structure holds a pointer to a linked list of timeouts. This function is called by the lwIP timeout scheduler and must not return a NULL value. In a single thread sys_arch implementation, this function will simply return a pointer to a global sys_timeouts variable stored in the sys_arch module. If threads are supported by the underlying operating system and if such functionality is needed in lwIP, the following function will have to be implemented as well: - sys_thread_t sys_thread_new(char *name, void (* thread)(void *arg), void *arg, int stacksize, int prio) Starts a new thread named "name" with priority "prio" that will begin its execution in the function "thread()". The "arg" argument will be passed as an argument to the thread() function. The stack size to used for this thread is the "stacksize" parameter. The id of the new thread is returned. Both the id and the priority are system dependent. - sys_prot_t sys_arch_protect(void) This optional function does a "fast" critical region protection and returns the previous protection level. This function is only called during very short critical regions. An embedded system which supports ISR-based drivers might want to implement this function by disabling interrupts. Task-based systems might want to implement this by using a mutex or disabling tasking. This function should support recursive calls from the same task or interrupt. In other words, sys_arch_protect() could be called while already protected. In that case the return value indicates that it is already protected. sys_arch_protect() is only required if your port is supporting an operating system. - void sys_arch_unprotect(sys_prot_t pval) This optional function does a "fast" set of critical region protection to the value specified by pval. See the documentation for sys_arch_protect() for more information. This function is only required if your port is supporting an operating system. Note: Be carefull with using mem_malloc() in sys_arch. When malloc() refers to mem_malloc() you can run into a circular function call problem. In mem.c mem_init() tries to allcate a semaphore using mem_malloc, which of course can't be performed when sys_arch uses mem_malloc. ------------------------------------------------------------------------------- Additional files required for the "OS support" emulation layer: ------------------------------------------------------------------------------- cc.h - Architecture environment, some compiler specific, some environment specific (probably should move env stuff to sys_arch.h.) Typedefs for the types used by lwip - u8_t, s8_t, u16_t, s16_t, u32_t, s32_t, mem_ptr_t Compiler hints for packing lwip's structures - PACK_STRUCT_FIELD(x) PACK_STRUCT_STRUCT PACK_STRUCT_BEGIN PACK_STRUCT_END Platform specific diagnostic output - LWIP_PLATFORM_DIAG(x) - non-fatal, print a message. LWIP_PLATFORM_ASSERT(x) - fatal, print message and abandon execution. Portability defines for printf formatters: U16_F, S16_F, X16_F, U32_F, S32_F, X32_F, SZT_F "lightweight" synchronization mechanisms - SYS_ARCH_DECL_PROTECT(x) - declare a protection state variable. SYS_ARCH_PROTECT(x) - enter protection mode. SYS_ARCH_UNPROTECT(x) - leave protection mode. If the compiler does not provide memset() this file must include a definition of it, or include a file which defines it. This file must either include a system-local which defines the standard *nix error codes, or it should #define LWIP_PROVIDE_ERRNO to make lwip/arch.h define the codes which are used throughout. perf.h - Architecture specific performance measurement. Measurement calls made throughout lwip, these can be defined to nothing. PERF_START - start measuring something. PERF_STOP(x) - stop measuring something, and record the result. sys_arch.h - Tied to sys_arch.c Arch dependent types for the following objects: sys_sem_t, sys_mbox_t, sys_thread_t, And, optionally: sys_prot_t Defines to set vars of sys_mbox_t and sys_sem_t to NULL. SYS_MBOX_NULL NULL SYS_SEM_NULL NULL uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/000077500000000000000000000000001224274632000201135ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/.hgignore000066400000000000000000000003261224274632000217170ustar00rootroot00000000000000syntax: glob *.pyc *.orig *.rej *~ TAGS Module.symvers *.ncb *.suo *.bak *.orig *.rej syntax: regexp \.\#.+ [\\/]CVS$ ^CVS$ ^build$ ^install$ ^logs.build_tree$ [\\/]bin$ ^bin$ [\\/]obj$ ^obj$ \.cvsignore uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/FILES000066400000000000000000000007561224274632000207100ustar00rootroot00000000000000api/ - The code for the high-level wrapper API. Not needed if you use the lowel-level call-back/raw API. core/ - The core of the TPC/IP stack; protocol implementations, memory and buffer management, and the low-level raw API. include/ - lwIP include files. netif/ - Generic network interface device drivers are kept here, as well as the ARP module. For more information on the various subdirectories, check the FILES file in each directory. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/000077500000000000000000000000001224274632000206645ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/api_lib.c000066400000000000000000000400151224274632000224270ustar00rootroot00000000000000/** * @file * Sequential API External module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ /* This is the part of the API that is linked with the application */ #include "lwip/opt.h" #if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ #include "lwip/api.h" #include "lwip/tcpip.h" #include "lwip/memp.h" #include "lwip/ip.h" #include "lwip/raw.h" #include "lwip/udp.h" #include "lwip/tcp.h" #include /** * Create a new netconn (of a specific type) that has a callback function. * The corresponding pcb is also created. * * @param t the type of 'connection' to create (@see enum netconn_type) * @param proto the IP protocol for RAW IP pcbs * @param callback a function to call on status changes (RX available, TX'ed) * @return a newly allocated struct netconn or * NULL on memory error */ struct netconn* netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, netconn_callback callback) { struct netconn *conn; struct api_msg msg; conn = netconn_alloc(t, callback); if (conn != NULL ) { msg.function = do_newconn; msg.msg.msg.n.proto = proto; msg.msg.conn = conn; TCPIP_APIMSG(&msg); if (conn->err != ERR_OK) { LWIP_ASSERT("freeing conn without freeing pcb", conn->pcb.tcp == NULL); LWIP_ASSERT("conn has no op_completed", conn->op_completed != SYS_SEM_NULL); LWIP_ASSERT("conn has no recvmbox", conn->recvmbox != SYS_MBOX_NULL); LWIP_ASSERT("conn->acceptmbox shouldn't exist", conn->acceptmbox == SYS_MBOX_NULL); sys_sem_free(conn->op_completed); sys_mbox_free(conn->recvmbox); memp_free(MEMP_NETCONN, conn); return NULL; } } return conn; } /** * Close a netconn 'connection' and free its resources. * UDP and RAW connection are completely closed, TCP pcbs might still be in a waitstate * after this returns. * * @param conn the netconn to delete * @return ERR_OK if the connection was deleted */ err_t netconn_delete(struct netconn *conn) { struct api_msg msg; /* No ASSERT here because possible to get a (conn == NULL) if we got an accept error */ if (conn == NULL) { return ERR_OK; } msg.function = do_delconn; msg.msg.conn = conn; tcpip_apimsg(&msg); conn->pcb.tcp = NULL; netconn_free(conn); return ERR_OK; } /** * Get the local or remote IP address and port of a netconn. * For RAW netconns, this returns the protocol instead of a port! * * @param conn the netconn to query * @param addr a pointer to which to save the IP address * @param port a pointer to which to save the port (or protocol for RAW) * @param local 1 to get the local IP address, 0 to get the remote one * @return ERR_CONN for invalid connections * ERR_OK if the information was retrieved */ err_t netconn_getaddr(struct netconn *conn, struct ip_addr *addr, u16_t *port, u8_t local) { struct api_msg msg; LWIP_ERROR("netconn_getaddr: invalid conn", (conn != NULL), return ERR_ARG;); LWIP_ERROR("netconn_getaddr: invalid addr", (addr != NULL), return ERR_ARG;); LWIP_ERROR("netconn_getaddr: invalid port", (port != NULL), return ERR_ARG;); msg.function = do_getaddr; msg.msg.conn = conn; msg.msg.msg.ad.ipaddr = addr; msg.msg.msg.ad.port = port; msg.msg.msg.ad.local = local; TCPIP_APIMSG(&msg); return conn->err; } /** * Bind a netconn to a specific local IP address and port. * Binding one netconn twice might not always be checked correctly! * * @param conn the netconn to bind * @param addr the local IP address to bind the netconn to (use IP_ADDR_ANY * to bind to all addresses) * @param port the local port to bind the netconn to (not used for RAW) * @return ERR_OK if bound, any other err_t on failure */ err_t netconn_bind(struct netconn *conn, struct ip_addr *addr, u16_t port) { struct api_msg msg; LWIP_ERROR("netconn_bind: invalid conn", (conn != NULL), return ERR_ARG;); msg.function = do_bind; msg.msg.conn = conn; msg.msg.msg.bc.ipaddr = addr; msg.msg.msg.bc.port = port; TCPIP_APIMSG(&msg); return conn->err; } /** * Connect a netconn to a specific remote IP address and port. * * @param conn the netconn to connect * @param addr the remote IP address to connect to * @param port the remote port to connect to (no used for RAW) * @return ERR_OK if connected, return value of tcp_/udp_/raw_connect otherwise */ err_t netconn_connect(struct netconn *conn, struct ip_addr *addr, u16_t port) { struct api_msg msg; LWIP_ERROR("netconn_connect: invalid conn", (conn != NULL), return ERR_ARG;); msg.function = do_connect; msg.msg.conn = conn; msg.msg.msg.bc.ipaddr = addr; msg.msg.msg.bc.port = port; /* This is the only function which need to not block tcpip_thread */ tcpip_apimsg(&msg); return conn->err; } /** * Disconnect a netconn from its current peer (only valid for UDP netconns). * * @param conn the netconn to disconnect * @return TODO: return value is not set here... */ err_t netconn_disconnect(struct netconn *conn) { struct api_msg msg; LWIP_ERROR("netconn_disconnect: invalid conn", (conn != NULL), return ERR_ARG;); msg.function = do_disconnect; msg.msg.conn = conn; TCPIP_APIMSG(&msg); return conn->err; } /** * Set a TCP netconn into listen mode * * @param conn the tcp netconn to set to listen mode * @param backlog the listen backlog, only used if TCP_LISTEN_BACKLOG==1 * @return ERR_OK if the netconn was set to listen (UDP and RAW netconns * don't return any error (yet?)) */ err_t netconn_listen_with_backlog(struct netconn *conn, u8_t backlog) { struct api_msg msg; /* This does no harm. If TCP_LISTEN_BACKLOG is off, backlog is unused. */ LWIP_UNUSED_ARG(backlog); LWIP_ERROR("netconn_listen: invalid conn", (conn != NULL), return ERR_ARG;); msg.function = do_listen; msg.msg.conn = conn; #if TCP_LISTEN_BACKLOG msg.msg.msg.lb.backlog = backlog; #endif /* TCP_LISTEN_BACKLOG */ TCPIP_APIMSG(&msg); return conn->err; } /** * Accept a new connection on a TCP listening netconn. * * @param conn the TCP listen netconn * @return the newly accepted netconn or NULL on timeout */ struct netconn * netconn_accept(struct netconn *conn) { struct netconn *newconn; LWIP_ERROR("netconn_accept: invalid conn", (conn != NULL), return NULL;); LWIP_ERROR("netconn_accept: invalid acceptmbox", (conn->acceptmbox != SYS_MBOX_NULL), return NULL;); #if LWIP_SO_RCVTIMEO if (sys_arch_mbox_fetch(conn->acceptmbox, (void *)&newconn, conn->recv_timeout) == SYS_ARCH_TIMEOUT) { newconn = NULL; } else #else sys_arch_mbox_fetch(conn->acceptmbox, (void *)&newconn, 0); #endif /* LWIP_SO_RCVTIMEO*/ { /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0); #if TCP_LISTEN_BACKLOG if (newconn != NULL) { /* Let the stack know that we have accepted the connection. */ struct api_msg msg; msg.function = do_recv; msg.msg.conn = conn; TCPIP_APIMSG(&msg); } #endif /* TCP_LISTEN_BACKLOG */ } return newconn; } /** * Receive data (in form of a netbuf containing a packet buffer) from a netconn * * @param conn the netconn from which to receive data * @return a new netbuf containing received data or NULL on memory error or timeout */ struct netbuf * netconn_recv(struct netconn *conn) { struct api_msg msg; struct netbuf *buf = NULL; struct pbuf *p; u16_t len; LWIP_ERROR("netconn_recv: invalid conn", (conn != NULL), return NULL;); if (conn->recvmbox == SYS_MBOX_NULL) { /* @todo: should calling netconn_recv on a TCP listen conn be fatal (ERR_CONN)?? */ /* TCP listen conns don't have a recvmbox! */ conn->err = ERR_CONN; return NULL; } if (ERR_IS_FATAL(conn->err)) { return NULL; } if (conn->type == NETCONN_TCP) { #if LWIP_TCP if (conn->state == NETCONN_LISTEN) { /* @todo: should calling netconn_recv on a TCP listen conn be fatal?? */ conn->err = ERR_CONN; return NULL; } buf = memp_malloc(MEMP_NETBUF); if (buf == NULL) { conn->err = ERR_MEM; return NULL; } #if LWIP_SO_RCVTIMEO if (sys_arch_mbox_fetch(conn->recvmbox, (void *)&p, conn->recv_timeout)==SYS_ARCH_TIMEOUT) { conn->err = ERR_TIMEOUT; p = NULL; } #else sys_arch_mbox_fetch(conn->recvmbox, (void *)&p, 0); #endif /* LWIP_SO_RCVTIMEO*/ if (p != NULL) { len = p->tot_len; SYS_ARCH_DEC(conn->recv_avail, len); } else { len = 0; } /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVMINUS, len); /* If we are closed, we indicate that we no longer wish to use the socket */ if (p == NULL) { memp_free(MEMP_NETBUF, buf); /* Avoid to lose any previous error code */ if (conn->err == ERR_OK) { conn->err = ERR_CLSD; } return NULL; } buf->p = p; buf->ptr = p; buf->port = 0; buf->addr = NULL; /* Let the stack know that we have taken the data. */ msg.function = do_recv; msg.msg.conn = conn; if (buf != NULL) { msg.msg.msg.r.len = buf->p->tot_len; } else { msg.msg.msg.r.len = 1; } TCPIP_APIMSG(&msg); #endif /* LWIP_TCP */ } else { #if (LWIP_UDP || LWIP_RAW) #if LWIP_SO_RCVTIMEO if (sys_arch_mbox_fetch(conn->recvmbox, (void *)&buf, conn->recv_timeout)==SYS_ARCH_TIMEOUT) { buf = NULL; } #else sys_arch_mbox_fetch(conn->recvmbox, (void *)&buf, 0); #endif /* LWIP_SO_RCVTIMEO*/ if (buf!=NULL) { SYS_ARCH_DEC(conn->recv_avail, buf->p->tot_len); /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVMINUS, buf->p->tot_len); } #endif /* (LWIP_UDP || LWIP_RAW) */ } LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_recv: received %p (err %d)\n", (void *)buf, conn->err)); return buf; } /** * Send data (in form of a netbuf) to a specific remote IP address and port. * Only to be used for UDP and RAW netconns (not TCP). * * @param conn the netconn over which to send data * @param buf a netbuf containing the data to send * @param addr the remote IP address to which to send the data * @param port the remote port to which to send the data * @return ERR_OK if data was sent, any other err_t on error */ err_t netconn_sendto(struct netconn *conn, struct netbuf *buf, struct ip_addr *addr, u16_t port) { if (buf != NULL) { buf->addr = addr; buf->port = port; return netconn_send(conn, buf); } return ERR_VAL; } /** * Send data over a UDP or RAW netconn (that is already connected). * * @param conn the UDP or RAW netconn over which to send data * @param buf a netbuf containing the data to send * @return ERR_OK if data was sent, any other err_t on error */ err_t netconn_send(struct netconn *conn, struct netbuf *buf) { struct api_msg msg; LWIP_ERROR("netconn_send: invalid conn", (conn != NULL), return ERR_ARG;); LWIP_DEBUGF(API_LIB_DEBUG, ("netconn_send: sending %"U16_F" bytes\n", buf->p->tot_len)); msg.function = do_send; msg.msg.conn = conn; msg.msg.msg.b = buf; TCPIP_APIMSG(&msg); return conn->err; } /** * Send data over a TCP netconn. * * @param conn the TCP netconn over which to send data * @param dataptr pointer to the application buffer that contains the data to send * @param size size of the application data to send * @param apiflags combination of following flags : * - NETCONN_COPY (0x01) data will be copied into memory belonging to the stack * - NETCONN_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent * @return ERR_OK if data was sent, any other err_t on error */ err_t netconn_write(struct netconn *conn, const void *dataptr, size_t size, u8_t apiflags) { struct api_msg msg; LWIP_ERROR("netconn_write: invalid conn", (conn != NULL), return ERR_ARG;); LWIP_ERROR("netconn_write: invalid conn->type", (conn->type == NETCONN_TCP), return ERR_VAL;); msg.function = do_write; msg.msg.conn = conn; msg.msg.msg.w.dataptr = dataptr; msg.msg.msg.w.apiflags = apiflags; msg.msg.msg.w.len = size; /* For locking the core: this _can_ be delayed on low memory/low send buffer, but if it is, this is done inside api_msg.c:do_write(), so we can use the non-blocking version here. */ TCPIP_APIMSG(&msg); return conn->err; } /** * Close a TCP netconn (doesn't delete it). * * @param conn the TCP netconn to close * @return ERR_OK if the netconn was closed, any other err_t on error */ err_t netconn_close(struct netconn *conn) { struct api_msg msg; LWIP_ERROR("netconn_close: invalid conn", (conn != NULL), return ERR_ARG;); msg.function = do_close; msg.msg.conn = conn; tcpip_apimsg(&msg); return conn->err; } #if LWIP_IGMP /** * Join multicast groups for UDP netconns. * * @param conn the UDP netconn for which to change multicast addresses * @param multiaddr IP address of the multicast group to join or leave * @param interface the IP address of the network interface on which to send * the igmp message * @param join_or_leave flag whether to send a join- or leave-message * @return ERR_OK if the action was taken, any err_t on error */ err_t netconn_join_leave_group(struct netconn *conn, struct ip_addr *multiaddr, struct ip_addr *interface, enum netconn_igmp join_or_leave) { struct api_msg msg; LWIP_ERROR("netconn_join_leave_group: invalid conn", (conn != NULL), return ERR_ARG;); msg.function = do_join_leave_group; msg.msg.conn = conn; msg.msg.msg.jl.multiaddr = multiaddr; msg.msg.msg.jl.interface = interface; msg.msg.msg.jl.join_or_leave = join_or_leave; TCPIP_APIMSG(&msg); return conn->err; } #endif /* LWIP_IGMP */ #if LWIP_DNS /** * Execute a DNS query, only one IP address is returned * * @param name a string representation of the DNS host name to query * @param addr a preallocated struct ip_addr where to store the resolved IP address * @return ERR_OK: resolving succeeded * ERR_MEM: memory error, try again later * ERR_ARG: dns client not initialized or invalid hostname * ERR_VAL: dns server response was invalid */ err_t netconn_gethostbyname(const char *name, struct ip_addr *addr) { struct dns_api_msg msg; err_t err; sys_sem_t sem; LWIP_ERROR("netconn_gethostbyname: invalid name", (name != NULL), return ERR_ARG;); LWIP_ERROR("netconn_gethostbyname: invalid addr", (addr != NULL), return ERR_ARG;); sem = sys_sem_new(0); if (sem == SYS_SEM_NULL) { return ERR_MEM; } msg.name = name; msg.addr = addr; msg.err = &err; msg.sem = sem; tcpip_callback(do_gethostbyname, &msg); sys_sem_wait(sem); sys_sem_free(sem); return err; } #endif /* LWIP_DNS*/ #endif /* LWIP_NETCONN */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/api_msg.c000066400000000000000000001020221224274632000224440ustar00rootroot00000000000000/** * @file * Sequential API Internal module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ #include "lwip/api_msg.h" #include "lwip/ip.h" #include "lwip/udp.h" #include "lwip/tcp.h" #include "lwip/raw.h" #include "lwip/memp.h" #include "lwip/tcpip.h" #include "lwip/igmp.h" #include "lwip/dns.h" #include /* forward declarations */ #if LWIP_TCP static err_t do_writemore(struct netconn *conn); static void do_close_internal(struct netconn *conn); #endif #if LWIP_RAW /** * Receive callback function for RAW netconns. * Doesn't 'eat' the packet, only references it and sends it to * conn->recvmbox * * @see raw.h (struct raw_pcb.recv) for parameters and return value */ static u8_t recv_raw(void *arg, struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *addr) { struct pbuf *q; struct netbuf *buf; struct netconn *conn; #if LWIP_SO_RCVBUF int recv_avail; #endif /* LWIP_SO_RCVBUF */ LWIP_UNUSED_ARG(addr); conn = arg; #if LWIP_SO_RCVBUF SYS_ARCH_GET(conn->recv_avail, recv_avail); if ((conn != NULL) && (conn->recvmbox != SYS_MBOX_NULL) && ((recv_avail + (int)(p->tot_len)) <= conn->recv_bufsize)) { #else /* LWIP_SO_RCVBUF */ if ((conn != NULL) && (conn->recvmbox != SYS_MBOX_NULL)) { #endif /* LWIP_SO_RCVBUF */ /* copy the whole packet into new pbufs */ q = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM); if(q != NULL) { if (pbuf_copy(q, p) != ERR_OK) { pbuf_free(q); q = NULL; } } if(q != NULL) { buf = memp_malloc(MEMP_NETBUF); if (buf == NULL) { pbuf_free(q); return 0; } buf->p = q; buf->ptr = q; buf->addr = &(((struct ip_hdr*)(q->payload))->src); buf->port = pcb->protocol; if (sys_mbox_trypost(conn->recvmbox, buf) != ERR_OK) { netbuf_delete(buf); return 0; } else { SYS_ARCH_INC(conn->recv_avail, q->tot_len); /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, q->tot_len); } } } return 0; /* do not eat the packet */ } #endif /* LWIP_RAW*/ #if LWIP_UDP /** * Receive callback function for UDP netconns. * Posts the packet to conn->recvmbox or deletes it on memory error. * * @see udp.h (struct udp_pcb.recv) for parameters */ static void recv_udp(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port) { struct netbuf *buf; struct netconn *conn; #if LWIP_SO_RCVBUF int recv_avail; #endif /* LWIP_SO_RCVBUF */ LWIP_UNUSED_ARG(pcb); /* only used for asserts... */ LWIP_ASSERT("recv_udp must have a pcb argument", pcb != NULL); LWIP_ASSERT("recv_udp must have an argument", arg != NULL); conn = arg; LWIP_ASSERT("recv_udp: recv for wrong pcb!", conn->pcb.udp == pcb); #if LWIP_SO_RCVBUF SYS_ARCH_GET(conn->recv_avail, recv_avail); if ((conn == NULL) || (conn->recvmbox == SYS_MBOX_NULL) || ((recv_avail + (int)(p->tot_len)) > conn->recv_bufsize)) { #else /* LWIP_SO_RCVBUF */ if ((conn == NULL) || (conn->recvmbox == SYS_MBOX_NULL)) { #endif /* LWIP_SO_RCVBUF */ pbuf_free(p); return; } buf = memp_malloc(MEMP_NETBUF); if (buf == NULL) { pbuf_free(p); return; } else { buf->p = p; buf->ptr = p; buf->addr = addr; buf->port = port; } if (sys_mbox_trypost(conn->recvmbox, buf) != ERR_OK) { netbuf_delete(buf); return; } else { SYS_ARCH_INC(conn->recv_avail, p->tot_len); /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, p->tot_len); } } #endif /* LWIP_UDP */ #if LWIP_TCP /** * Receive callback function for TCP netconns. * Posts the packet to conn->recvmbox, but doesn't delete it on errors. * * @see tcp.h (struct tcp_pcb.recv) for parameters and return value */ static err_t recv_tcp(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) { struct netconn *conn; u16_t len; LWIP_UNUSED_ARG(pcb); LWIP_ASSERT("recv_tcp must have a pcb argument", pcb != NULL); LWIP_ASSERT("recv_tcp must have an argument", arg != NULL); conn = arg; LWIP_ASSERT("recv_tcp: recv for wrong pcb!", conn->pcb.tcp == pcb); if ((conn == NULL) || (conn->recvmbox == SYS_MBOX_NULL)) { return ERR_VAL; } conn->err = err; if (p != NULL) { len = p->tot_len; SYS_ARCH_INC(conn->recv_avail, len); } else { len = 0; } if (sys_mbox_trypost(conn->recvmbox, p) != ERR_OK) { return ERR_MEM; } else { /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, len); } return ERR_OK; } /** * Poll callback function for TCP netconns. * Wakes up an application thread that waits for a connection to close * or data to be sent. The application thread then takes the * appropriate action to go on. * * Signals the conn->sem. * netconn_close waits for conn->sem if closing failed. * * @see tcp.h (struct tcp_pcb.poll) for parameters and return value */ static err_t poll_tcp(void *arg, struct tcp_pcb *pcb) { struct netconn *conn = arg; LWIP_UNUSED_ARG(pcb); LWIP_ASSERT("conn != NULL", (conn != NULL)); if (conn->state == NETCONN_WRITE) { do_writemore(conn); } else if (conn->state == NETCONN_CLOSE) { do_close_internal(conn); } return ERR_OK; } /** * Sent callback function for TCP netconns. * Signals the conn->sem and calls API_EVENT. * netconn_write waits for conn->sem if send buffer is low. * * @see tcp.h (struct tcp_pcb.sent) for parameters and return value */ static err_t sent_tcp(void *arg, struct tcp_pcb *pcb, u16_t len) { struct netconn *conn = arg; LWIP_UNUSED_ARG(pcb); LWIP_ASSERT("conn != NULL", (conn != NULL)); if (conn->state == NETCONN_WRITE) { LWIP_ASSERT("conn->pcb.tcp != NULL", conn->pcb.tcp != NULL); do_writemore(conn); } else if (conn->state == NETCONN_CLOSE) { do_close_internal(conn); } if (conn) { if ((conn->pcb.tcp != NULL) && (tcp_sndbuf(conn->pcb.tcp) > TCP_SNDLOWAT)) { API_EVENT(conn, NETCONN_EVT_SENDPLUS, len); } } return ERR_OK; } /** * Error callback function for TCP netconns. * Signals conn->sem, posts to all conn mboxes and calls API_EVENT. * The application thread has then to decide what to do. * * @see tcp.h (struct tcp_pcb.err) for parameters */ static void err_tcp(void *arg, err_t err) { struct netconn *conn; conn = arg; LWIP_ASSERT("conn != NULL", (conn != NULL)); conn->pcb.tcp = NULL; conn->err = err; if (conn->recvmbox != SYS_MBOX_NULL) { /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); sys_mbox_post(conn->recvmbox, NULL); } if (conn->op_completed != SYS_SEM_NULL && conn->state == NETCONN_CONNECT) { conn->state = NETCONN_NONE; sys_sem_signal(conn->op_completed); } if (conn->acceptmbox != SYS_MBOX_NULL) { /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); sys_mbox_post(conn->acceptmbox, NULL); } if ((conn->state == NETCONN_WRITE) || (conn->state == NETCONN_CLOSE)) { /* calling do_writemore/do_close_internal is not necessary since the pcb has already been deleted! */ conn->state = NETCONN_NONE; /* wake up the waiting task */ sys_sem_signal(conn->op_completed); } } /** * Setup a tcp_pcb with the correct callback function pointers * and their arguments. * * @param conn the TCP netconn to setup */ static void setup_tcp(struct netconn *conn) { struct tcp_pcb *pcb; pcb = conn->pcb.tcp; tcp_arg(pcb, conn); tcp_recv(pcb, recv_tcp); tcp_sent(pcb, sent_tcp); tcp_poll(pcb, poll_tcp, 4); tcp_err(pcb, err_tcp); } /** * Accept callback function for TCP netconns. * Allocates a new netconn and posts that to conn->acceptmbox. * * @see tcp.h (struct tcp_pcb_listen.accept) for parameters and return value */ static err_t accept_function(void *arg, struct tcp_pcb *newpcb, err_t err) { struct netconn *newconn; struct netconn *conn; #if API_MSG_DEBUG #if TCP_DEBUG tcp_debug_print_state(newpcb->state); #endif /* TCP_DEBUG */ #endif /* API_MSG_DEBUG */ conn = (struct netconn *)arg; LWIP_ERROR("accept_function: invalid conn->acceptmbox", conn->acceptmbox != SYS_MBOX_NULL, return ERR_VAL;); /* We have to set the callback here even though * the new socket is unknown. conn->socket is marked as -1. */ newconn = netconn_alloc(conn->type, conn->callback); if (newconn == NULL) { return ERR_MEM; } newconn->pcb.tcp = newpcb; setup_tcp(newconn); newconn->err = err; if (sys_mbox_trypost(conn->acceptmbox, newconn) != ERR_OK) { /* When returning != ERR_OK, the connection is aborted in tcp_process(), so do nothing here! */ newconn->pcb.tcp = NULL; netconn_free(newconn); return ERR_MEM; } else { /* Register event with callback */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); } return ERR_OK; } #endif /* LWIP_TCP */ /** * Create a new pcb of a specific type. * Called from do_newconn(). * * @param msg the api_msg_msg describing the connection type * @return msg->conn->err, but the return value is currently ignored */ static err_t pcb_new(struct api_msg_msg *msg) { msg->conn->err = ERR_OK; LWIP_ASSERT("pcb_new: pcb already allocated", msg->conn->pcb.tcp == NULL); /* Allocate a PCB for this connection */ switch(NETCONNTYPE_GROUP(msg->conn->type)) { #if LWIP_RAW case NETCONN_RAW: msg->conn->pcb.raw = raw_new(msg->msg.n.proto); if(msg->conn->pcb.raw == NULL) { msg->conn->err = ERR_MEM; break; } raw_recv(msg->conn->pcb.raw, recv_raw, msg->conn); break; #endif /* LWIP_RAW */ #if LWIP_UDP case NETCONN_UDP: msg->conn->pcb.udp = udp_new(); if(msg->conn->pcb.udp == NULL) { msg->conn->err = ERR_MEM; break; } #if LWIP_UDPLITE if (msg->conn->type==NETCONN_UDPLITE) { udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_UDPLITE); } #endif /* LWIP_UDPLITE */ if (msg->conn->type==NETCONN_UDPNOCHKSUM) { udp_setflags(msg->conn->pcb.udp, UDP_FLAGS_NOCHKSUM); } udp_recv(msg->conn->pcb.udp, recv_udp, msg->conn); break; #endif /* LWIP_UDP */ #if LWIP_TCP case NETCONN_TCP: msg->conn->pcb.tcp = tcp_new(); if(msg->conn->pcb.tcp == NULL) { msg->conn->err = ERR_MEM; break; } setup_tcp(msg->conn); break; #endif /* LWIP_TCP */ default: /* Unsupported netconn type, e.g. protocol disabled */ msg->conn->err = ERR_VAL; break; } return msg->conn->err; } /** * Create a new pcb of a specific type inside a netconn. * Called from netconn_new_with_proto_and_callback. * * @param msg the api_msg_msg describing the connection type */ void do_newconn(struct api_msg_msg *msg) { if(msg->conn->pcb.tcp == NULL) { pcb_new(msg); } /* Else? This "new" connection already has a PCB allocated. */ /* Is this an error condition? Should it be deleted? */ /* We currently just are happy and return. */ TCPIP_APIMSG_ACK(msg); } /** * Create a new netconn (of a specific type) that has a callback function. * The corresponding pcb is NOT created! * * @param t the type of 'connection' to create (@see enum netconn_type) * @param proto the IP protocol for RAW IP pcbs * @param callback a function to call on status changes (RX available, TX'ed) * @return a newly allocated struct netconn or * NULL on memory error */ struct netconn* netconn_alloc(enum netconn_type t, netconn_callback callback) { struct netconn *conn; int size; conn = memp_malloc(MEMP_NETCONN); if (conn == NULL) { return NULL; } conn->err = ERR_OK; conn->type = t; conn->pcb.tcp = NULL; #if (DEFAULT_RAW_RECVMBOX_SIZE == DEFAULT_UDP_RECVMBOX_SIZE) && \ (DEFAULT_RAW_RECVMBOX_SIZE == DEFAULT_TCP_RECVMBOX_SIZE) size = DEFAULT_RAW_RECVMBOX_SIZE; #else switch(NETCONNTYPE_GROUP(t)) { #if LWIP_RAW case NETCONN_RAW: size = DEFAULT_RAW_RECVMBOX_SIZE; break; #endif /* LWIP_RAW */ #if LWIP_UDP case NETCONN_UDP: size = DEFAULT_UDP_RECVMBOX_SIZE; break; #endif /* LWIP_UDP */ #if LWIP_TCP case NETCONN_TCP: size = DEFAULT_TCP_RECVMBOX_SIZE; break; #endif /* LWIP_TCP */ default: LWIP_ASSERT("netconn_alloc: undefined netconn_type", 0); break; } #endif if ((conn->op_completed = sys_sem_new(0)) == SYS_SEM_NULL) { memp_free(MEMP_NETCONN, conn); return NULL; } if ((conn->recvmbox = sys_mbox_new(size)) == SYS_MBOX_NULL) { sys_sem_free(conn->op_completed); memp_free(MEMP_NETCONN, conn); return NULL; } conn->acceptmbox = SYS_MBOX_NULL; conn->state = NETCONN_NONE; /* initialize socket to -1 since 0 is a valid socket */ conn->socket = -1; conn->callback = callback; conn->recv_avail = 0; #if LWIP_TCP conn->write_msg = NULL; conn->write_offset = 0; #if LWIP_TCPIP_CORE_LOCKING conn->write_delayed = 0; #endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_TCP */ #if LWIP_SO_RCVTIMEO conn->recv_timeout = 0; #endif /* LWIP_SO_RCVTIMEO */ #if LWIP_SO_RCVBUF conn->recv_bufsize = RECV_BUFSIZE_DEFAULT; #endif /* LWIP_SO_RCVBUF */ return conn; } /** * Delete a netconn and all its resources. * The pcb is NOT freed (since we might not be in the right thread context do this). * * @param conn the netconn to free */ void netconn_free(struct netconn *conn) { void *mem; LWIP_ASSERT("PCB must be deallocated outside this function", conn->pcb.tcp == NULL); /* Drain the recvmbox. */ if (conn->recvmbox != SYS_MBOX_NULL) { while (sys_mbox_tryfetch(conn->recvmbox, &mem) != SYS_MBOX_EMPTY) { if (conn->type == NETCONN_TCP) { if(mem != NULL) { pbuf_free((struct pbuf *)mem); } } else { netbuf_delete((struct netbuf *)mem); } } sys_mbox_free(conn->recvmbox); conn->recvmbox = SYS_MBOX_NULL; } /* Drain the acceptmbox. */ if (conn->acceptmbox != SYS_MBOX_NULL) { while (sys_mbox_tryfetch(conn->acceptmbox, &mem) != SYS_MBOX_EMPTY) { netconn_delete((struct netconn *)mem); } sys_mbox_free(conn->acceptmbox); conn->acceptmbox = SYS_MBOX_NULL; } sys_sem_free(conn->op_completed); conn->op_completed = SYS_SEM_NULL; memp_free(MEMP_NETCONN, conn); } #if LWIP_TCP /** * Internal helper function to close a TCP netconn: since this sometimes * doesn't work at the first attempt, this function is called from multiple * places. * * @param conn the TCP netconn to close */ static void do_close_internal(struct netconn *conn) { err_t err; LWIP_ASSERT("invalid conn", (conn != NULL)); LWIP_ASSERT("this is for tcp netconns only", (conn->type == NETCONN_TCP)); LWIP_ASSERT("conn must be in state NETCONN_CLOSE", (conn->state == NETCONN_CLOSE)); LWIP_ASSERT("pcb already closed", (conn->pcb.tcp != NULL)); /* Set back some callback pointers */ tcp_arg(conn->pcb.tcp, NULL); if (conn->pcb.tcp->state == LISTEN) { tcp_accept(conn->pcb.tcp, NULL); } else { tcp_recv(conn->pcb.tcp, NULL); tcp_accept(conn->pcb.tcp, NULL); /* some callbacks have to be reset if tcp_close is not successful */ tcp_sent(conn->pcb.tcp, NULL); tcp_poll(conn->pcb.tcp, NULL, 4); tcp_err(conn->pcb.tcp, NULL); } /* Try to close the connection */ err = tcp_close(conn->pcb.tcp); if (err == ERR_OK) { /* Closing succeeded */ conn->state = NETCONN_NONE; /* Set back some callback pointers as conn is going away */ conn->pcb.tcp = NULL; conn->err = ERR_OK; /* Trigger select() in socket layer. This send should something else so the errorfd is set, not the read and write fd! */ API_EVENT(conn, NETCONN_EVT_RCVPLUS, 0); API_EVENT(conn, NETCONN_EVT_SENDPLUS, 0); /* wake up the application task */ sys_sem_signal(conn->op_completed); } else { /* Closing failed, restore some of the callbacks */ /* Closing of listen pcb will never fail! */ LWIP_ASSERT("Closing a listen pcb may not fail!", (conn->pcb.tcp->state != LISTEN)); tcp_sent(conn->pcb.tcp, sent_tcp); tcp_poll(conn->pcb.tcp, poll_tcp, 4); tcp_err(conn->pcb.tcp, err_tcp); tcp_arg(conn->pcb.tcp, conn); } /* If closing didn't succeed, we get called again either from poll_tcp or from sent_tcp */ } #endif /* LWIP_TCP */ /** * Delete the pcb inside a netconn. * Called from netconn_delete. * * @param msg the api_msg_msg pointing to the connection */ void do_delconn(struct api_msg_msg *msg) { if (msg->conn->pcb.tcp != NULL) { switch (NETCONNTYPE_GROUP(msg->conn->type)) { #if LWIP_RAW case NETCONN_RAW: raw_remove(msg->conn->pcb.raw); break; #endif /* LWIP_RAW */ #if LWIP_UDP case NETCONN_UDP: msg->conn->pcb.udp->recv_arg = NULL; udp_remove(msg->conn->pcb.udp); break; #endif /* LWIP_UDP */ #if LWIP_TCP case NETCONN_TCP: msg->conn->state = NETCONN_CLOSE; do_close_internal(msg->conn); /* API_EVENT is called inside do_close_internal, before releasing the application thread, so we can return at this point! */ return; #endif /* LWIP_TCP */ default: break; } } /* tcp netconns don't come here! */ /* Trigger select() in socket layer. This send should something else so the errorfd is set, not the read and write fd! */ API_EVENT(msg->conn, NETCONN_EVT_RCVPLUS, 0); API_EVENT(msg->conn, NETCONN_EVT_SENDPLUS, 0); if (msg->conn->op_completed != SYS_SEM_NULL) { sys_sem_signal(msg->conn->op_completed); } } /** * Bind a pcb contained in a netconn * Called from netconn_bind. * * @param msg the api_msg_msg pointing to the connection and containing * the IP address and port to bind to */ void do_bind(struct api_msg_msg *msg) { if (!ERR_IS_FATAL(msg->conn->err)) { if (msg->conn->pcb.tcp != NULL) { switch (NETCONNTYPE_GROUP(msg->conn->type)) { #if LWIP_RAW case NETCONN_RAW: msg->conn->err = raw_bind(msg->conn->pcb.raw, msg->msg.bc.ipaddr); break; #endif /* LWIP_RAW */ #if LWIP_UDP case NETCONN_UDP: msg->conn->err = udp_bind(msg->conn->pcb.udp, msg->msg.bc.ipaddr, msg->msg.bc.port); break; #endif /* LWIP_UDP */ #if LWIP_TCP case NETCONN_TCP: msg->conn->err = tcp_bind(msg->conn->pcb.tcp, msg->msg.bc.ipaddr, msg->msg.bc.port); break; #endif /* LWIP_TCP */ default: break; } } else { /* msg->conn->pcb is NULL */ msg->conn->err = ERR_VAL; } } TCPIP_APIMSG_ACK(msg); } #if LWIP_TCP /** * TCP callback function if a connection (opened by tcp_connect/do_connect) has * been established (or reset by the remote host). * * @see tcp.h (struct tcp_pcb.connected) for parameters and return values */ static err_t do_connected(void *arg, struct tcp_pcb *pcb, err_t err) { struct netconn *conn; LWIP_UNUSED_ARG(pcb); conn = arg; if (conn == NULL) { return ERR_VAL; } conn->err = err; if ((conn->type == NETCONN_TCP) && (err == ERR_OK)) { setup_tcp(conn); } conn->state = NETCONN_NONE; sys_sem_signal(conn->op_completed); return ERR_OK; } #endif /* LWIP_TCP */ /** * Connect a pcb contained inside a netconn * Called from netconn_connect. * * @param msg the api_msg_msg pointing to the connection and containing * the IP address and port to connect to */ void do_connect(struct api_msg_msg *msg) { if (msg->conn->pcb.tcp == NULL) { sys_sem_signal(msg->conn->op_completed); return; } switch (NETCONNTYPE_GROUP(msg->conn->type)) { #if LWIP_RAW case NETCONN_RAW: msg->conn->err = raw_connect(msg->conn->pcb.raw, msg->msg.bc.ipaddr); sys_sem_signal(msg->conn->op_completed); break; #endif /* LWIP_RAW */ #if LWIP_UDP case NETCONN_UDP: msg->conn->err = udp_connect(msg->conn->pcb.udp, msg->msg.bc.ipaddr, msg->msg.bc.port); sys_sem_signal(msg->conn->op_completed); break; #endif /* LWIP_UDP */ #if LWIP_TCP case NETCONN_TCP: msg->conn->state = NETCONN_CONNECT; setup_tcp(msg->conn); msg->conn->err = tcp_connect(msg->conn->pcb.tcp, msg->msg.bc.ipaddr, msg->msg.bc.port, do_connected); /* sys_sem_signal() is called from do_connected (or err_tcp()), * when the connection is established! */ break; #endif /* LWIP_TCP */ default: break; } } /** * Connect a pcb contained inside a netconn * Only used for UDP netconns. * Called from netconn_disconnect. * * @param msg the api_msg_msg pointing to the connection to disconnect */ void do_disconnect(struct api_msg_msg *msg) { #if LWIP_UDP if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) { udp_disconnect(msg->conn->pcb.udp); } #endif /* LWIP_UDP */ TCPIP_APIMSG_ACK(msg); } /** * Set a TCP pcb contained in a netconn into listen mode * Called from netconn_listen. * * @param msg the api_msg_msg pointing to the connection */ void do_listen(struct api_msg_msg *msg) { #if LWIP_TCP if (!ERR_IS_FATAL(msg->conn->err)) { if (msg->conn->pcb.tcp != NULL) { if (msg->conn->type == NETCONN_TCP) { if (msg->conn->pcb.tcp->state == CLOSED) { #if TCP_LISTEN_BACKLOG struct tcp_pcb* lpcb = tcp_listen_with_backlog(msg->conn->pcb.tcp, msg->msg.lb.backlog); #else /* TCP_LISTEN_BACKLOG */ struct tcp_pcb* lpcb = tcp_listen(msg->conn->pcb.tcp); #endif /* TCP_LISTEN_BACKLOG */ if (lpcb == NULL) { msg->conn->err = ERR_MEM; } else { /* delete the recvmbox and allocate the acceptmbox */ if (msg->conn->recvmbox != SYS_MBOX_NULL) { /** @todo: should we drain the recvmbox here? */ sys_mbox_free(msg->conn->recvmbox); msg->conn->recvmbox = SYS_MBOX_NULL; } if (msg->conn->acceptmbox == SYS_MBOX_NULL) { if ((msg->conn->acceptmbox = sys_mbox_new(DEFAULT_ACCEPTMBOX_SIZE)) == SYS_MBOX_NULL) { msg->conn->err = ERR_MEM; } } if (msg->conn->err == ERR_OK) { msg->conn->state = NETCONN_LISTEN; msg->conn->pcb.tcp = lpcb; tcp_arg(msg->conn->pcb.tcp, msg->conn); tcp_accept(msg->conn->pcb.tcp, accept_function); } } } else { msg->conn->err = ERR_CONN; } } } } #endif /* LWIP_TCP */ TCPIP_APIMSG_ACK(msg); } /** * Send some data on a RAW or UDP pcb contained in a netconn * Called from netconn_send * * @param msg the api_msg_msg pointing to the connection */ void do_send(struct api_msg_msg *msg) { if (!ERR_IS_FATAL(msg->conn->err)) { if (msg->conn->pcb.tcp != NULL) { switch (NETCONNTYPE_GROUP(msg->conn->type)) { #if LWIP_RAW case NETCONN_RAW: if (msg->msg.b->addr == NULL) { msg->conn->err = raw_send(msg->conn->pcb.raw, msg->msg.b->p); } else { msg->conn->err = raw_sendto(msg->conn->pcb.raw, msg->msg.b->p, msg->msg.b->addr); } break; #endif #if LWIP_UDP case NETCONN_UDP: if (msg->msg.b->addr == NULL) { msg->conn->err = udp_send(msg->conn->pcb.udp, msg->msg.b->p); } else { msg->conn->err = udp_sendto(msg->conn->pcb.udp, msg->msg.b->p, msg->msg.b->addr, msg->msg.b->port); } break; #endif /* LWIP_UDP */ default: break; } } } TCPIP_APIMSG_ACK(msg); } /** * Indicate data has been received from a TCP pcb contained in a netconn * Called from netconn_recv * * @param msg the api_msg_msg pointing to the connection */ void do_recv(struct api_msg_msg *msg) { #if LWIP_TCP if (!ERR_IS_FATAL(msg->conn->err)) { if (msg->conn->pcb.tcp != NULL) { if (msg->conn->type == NETCONN_TCP) { #if TCP_LISTEN_BACKLOG if (msg->conn->pcb.tcp->state == LISTEN) { tcp_accepted(msg->conn->pcb.tcp); } else #endif /* TCP_LISTEN_BACKLOG */ { tcp_recved(msg->conn->pcb.tcp, msg->msg.r.len); } } } } #endif /* LWIP_TCP */ TCPIP_APIMSG_ACK(msg); } #if LWIP_TCP /** * See if more data needs to be written from a previous call to netconn_write. * Called initially from do_write. If the first call can't send all data * (because of low memory or empty send-buffer), this function is called again * from sent_tcp() or poll_tcp() to send more data. If all data is sent, the * blocking application thread (waiting in netconn_write) is released. * * @param conn netconn (that is currently in state NETCONN_WRITE) to process * @return ERR_OK * ERR_MEM if LWIP_TCPIP_CORE_LOCKING=1 and sending hasn't yet finished */ static err_t do_writemore(struct netconn *conn) { err_t err; void *dataptr; u16_t len, available; u8_t write_finished = 0; size_t diff; LWIP_ASSERT("conn->state == NETCONN_WRITE", (conn->state == NETCONN_WRITE)); dataptr = (u8_t*)conn->write_msg->msg.w.dataptr + conn->write_offset; diff = conn->write_msg->msg.w.len - conn->write_offset; if (diff > 0xffffUL) { /* max_u16_t */ len = 0xffff; #if LWIP_TCPIP_CORE_LOCKING conn->write_delayed = 1; #endif } else { len = (u16_t)diff; } available = tcp_sndbuf(conn->pcb.tcp); if (available < len) { /* don't try to write more than sendbuf */ len = available; #if LWIP_TCPIP_CORE_LOCKING conn->write_delayed = 1; #endif } err = tcp_write(conn->pcb.tcp, dataptr, len, conn->write_msg->msg.w.apiflags); LWIP_ASSERT("do_writemore: invalid length!", ((conn->write_offset + len) <= conn->write_msg->msg.w.len)); if (err == ERR_OK) { conn->write_offset += len; if (conn->write_offset == conn->write_msg->msg.w.len) { /* everything was written */ write_finished = 1; conn->write_msg = NULL; conn->write_offset = 0; /* API_EVENT might call tcp_tmr, so reset conn->state now */ conn->state = NETCONN_NONE; } err = tcp_output_nagle(conn->pcb.tcp); conn->err = err; if ((err == ERR_OK) && (tcp_sndbuf(conn->pcb.tcp) <= TCP_SNDLOWAT)) { API_EVENT(conn, NETCONN_EVT_SENDMINUS, len); } } else if (err == ERR_MEM) { /* If ERR_MEM, we wait for sent_tcp or poll_tcp to be called we do NOT return to the application thread, since ERR_MEM is only a temporary error! */ /* tcp_enqueue returned ERR_MEM, try tcp_output anyway */ err = tcp_output(conn->pcb.tcp); #if LWIP_TCPIP_CORE_LOCKING conn->write_delayed = 1; #endif } else { /* On errors != ERR_MEM, we don't try writing any more but return the error to the application thread. */ conn->err = err; write_finished = 1; } if (write_finished) { /* everything was written: set back connection state and back to application task */ conn->state = NETCONN_NONE; #if LWIP_TCPIP_CORE_LOCKING if (conn->write_delayed != 0) #endif { sys_sem_signal(conn->op_completed); } } #if LWIP_TCPIP_CORE_LOCKING else return ERR_MEM; #endif return ERR_OK; } #endif /* LWIP_TCP */ /** * Send some data on a TCP pcb contained in a netconn * Called from netconn_write * * @param msg the api_msg_msg pointing to the connection */ void do_write(struct api_msg_msg *msg) { if (!ERR_IS_FATAL(msg->conn->err)) { if ((msg->conn->pcb.tcp != NULL) && (msg->conn->type == NETCONN_TCP)) { #if LWIP_TCP msg->conn->state = NETCONN_WRITE; /* set all the variables used by do_writemore */ LWIP_ASSERT("already writing", msg->conn->write_msg == NULL && msg->conn->write_offset == 0); msg->conn->write_msg = msg; msg->conn->write_offset = 0; #if LWIP_TCPIP_CORE_LOCKING msg->conn->write_delayed = 0; if (do_writemore(msg->conn) != ERR_OK) { LWIP_ASSERT("state!", msg->conn->state == NETCONN_WRITE); UNLOCK_TCPIP_CORE(); sys_arch_sem_wait(msg->conn->op_completed, 0); LOCK_TCPIP_CORE(); LWIP_ASSERT("state!", msg->conn->state == NETCONN_NONE); } #else do_writemore(msg->conn); #endif /* for both cases: if do_writemore was called, don't ACK the APIMSG! */ return; #endif /* LWIP_TCP */ #if (LWIP_UDP || LWIP_RAW) } else { msg->conn->err = ERR_VAL; #endif /* (LWIP_UDP || LWIP_RAW) */ } } TCPIP_APIMSG_ACK(msg); } /** * Return a connection's local or remote address * Called from netconn_getaddr * * @param msg the api_msg_msg pointing to the connection */ void do_getaddr(struct api_msg_msg *msg) { if (msg->conn->pcb.ip != NULL) { *(msg->msg.ad.ipaddr) = (msg->msg.ad.local?msg->conn->pcb.ip->local_ip:msg->conn->pcb.ip->remote_ip); switch (NETCONNTYPE_GROUP(msg->conn->type)) { #if LWIP_RAW case NETCONN_RAW: if (msg->msg.ad.local) { *(msg->msg.ad.port) = msg->conn->pcb.raw->protocol; } else { /* return an error as connecting is only a helper for upper layers */ msg->conn->err = ERR_CONN; } break; #endif /* LWIP_RAW */ #if LWIP_UDP case NETCONN_UDP: if (msg->msg.ad.local) { *(msg->msg.ad.port) = msg->conn->pcb.udp->local_port; } else { if ((msg->conn->pcb.udp->flags & UDP_FLAGS_CONNECTED) == 0) { msg->conn->err = ERR_CONN; } else { *(msg->msg.ad.port) = msg->conn->pcb.udp->remote_port; } } break; #endif /* LWIP_UDP */ #if LWIP_TCP case NETCONN_TCP: *(msg->msg.ad.port) = (msg->msg.ad.local?msg->conn->pcb.tcp->local_port:msg->conn->pcb.tcp->remote_port); break; #endif /* LWIP_TCP */ } } else { msg->conn->err = ERR_CONN; } TCPIP_APIMSG_ACK(msg); } /** * Close a TCP pcb contained in a netconn * Called from netconn_close * * @param msg the api_msg_msg pointing to the connection */ void do_close(struct api_msg_msg *msg) { #if LWIP_TCP if ((msg->conn->pcb.tcp != NULL) && (msg->conn->type == NETCONN_TCP)) { msg->conn->state = NETCONN_CLOSE; do_close_internal(msg->conn); /* for tcp netconns, do_close_internal ACKs the message */ } else #endif /* LWIP_TCP */ { msg->conn->err = ERR_VAL; TCPIP_APIMSG_ACK(msg); } } #if LWIP_IGMP /** * Join multicast groups for UDP netconns. * Called from netconn_join_leave_group * * @param msg the api_msg_msg pointing to the connection */ void do_join_leave_group(struct api_msg_msg *msg) { if (!ERR_IS_FATAL(msg->conn->err)) { if (msg->conn->pcb.tcp != NULL) { if (NETCONNTYPE_GROUP(msg->conn->type) == NETCONN_UDP) { #if LWIP_UDP if (msg->msg.jl.join_or_leave == NETCONN_JOIN) { msg->conn->err = igmp_joingroup(msg->msg.jl.interface, msg->msg.jl.multiaddr); } else { msg->conn->err = igmp_leavegroup(msg->msg.jl.interface, msg->msg.jl.multiaddr); } #endif /* LWIP_UDP */ #if (LWIP_TCP || LWIP_RAW) } else { msg->conn->err = ERR_VAL; #endif /* (LWIP_TCP || LWIP_RAW) */ } } } TCPIP_APIMSG_ACK(msg); } #endif /* LWIP_IGMP */ #if LWIP_DNS /** * Callback function that is called when DNS name is resolved * (or on timeout). A waiting application thread is waked up by * signaling the semaphore. */ static void do_dns_found(const char *name, struct ip_addr *ipaddr, void *arg) { struct dns_api_msg *msg = (struct dns_api_msg*)arg; LWIP_ASSERT("DNS response for wrong host name", strcmp(msg->name, name) == 0); if (ipaddr == NULL) { /* timeout or memory error */ *msg->err = ERR_VAL; } else { /* address was resolved */ *msg->err = ERR_OK; *msg->addr = *ipaddr; } /* wake up the application task waiting in netconn_gethostbyname */ sys_sem_signal(msg->sem); } /** * Execute a DNS query * Called from netconn_gethostbyname * * @param arg the dns_api_msg pointing to the query */ void do_gethostbyname(void *arg) { struct dns_api_msg *msg = (struct dns_api_msg*)arg; *msg->err = dns_gethostbyname(msg->name, msg->addr, do_dns_found, msg); if (*msg->err != ERR_INPROGRESS) { /* on error or immediate success, wake up the application * task waiting in netconn_gethostbyname */ sys_sem_signal(msg->sem); } } #endif /* LWIP_DNS */ #endif /* LWIP_NETCONN */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/err.c000066400000000000000000000055421224274632000216260ustar00rootroot00000000000000/** * @file * Error Management module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/err.h" #ifdef LWIP_DEBUG static const char *err_strerr[] = { "Ok.", /* ERR_OK 0 */ "Out of memory error.", /* ERR_MEM -1 */ "Buffer error.", /* ERR_BUF -2 */ "Timeout.", /* ERR_TIMEOUT -3 */ "Routing problem.", /* ERR_RTE -4 */ "Connection aborted.", /* ERR_ABRT -5 */ "Connection reset.", /* ERR_RST -6 */ "Connection closed.", /* ERR_CLSD -7 */ "Not connected.", /* ERR_CONN -8 */ "Illegal value.", /* ERR_VAL -9 */ "Illegal argument.", /* ERR_ARG -10 */ "Address in use.", /* ERR_USE -11 */ "Low-level netif error.", /* ERR_IF -12 */ "Already connected.", /* ERR_ISCONN -13 */ "Operation in progress." /* ERR_INPROGRESS -14 */ }; /** * Convert an lwip internal error to a string representation. * * @param err an lwip internal err_t * @return a string representation for err */ const char * lwip_strerr(err_t err) { return err_strerr[-err]; } #endif /* LWIP_DEBUG */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/netbuf.c000066400000000000000000000147111224274632000223170ustar00rootroot00000000000000/** * @file * Network buffer management * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ #include "lwip/netbuf.h" #include "lwip/memp.h" #include /** * Create (allocate) and initialize a new netbuf. * The netbuf doesn't yet contain a packet buffer! * * @return a pointer to a new netbuf * NULL on lack of memory */ struct netbuf *netbuf_new(void) { struct netbuf *buf; buf = memp_malloc(MEMP_NETBUF); if (buf != NULL) { buf->p = NULL; buf->ptr = NULL; buf->addr = NULL; return buf; } else { return NULL; } } /** * Deallocate a netbuf allocated by netbuf_new(). * * @param buf pointer to a netbuf allocated by netbuf_new() */ void netbuf_delete(struct netbuf *buf) { if (buf != NULL) { if (buf->p != NULL) { pbuf_free(buf->p); buf->p = buf->ptr = NULL; } memp_free(MEMP_NETBUF, buf); } } /** * Allocate memory for a packet buffer for a given netbuf. * * @param buf the netbuf for which to allocate a packet buffer * @param size the size of the packet buffer to allocate * @return pointer to the allocated memory * NULL if no memory could be allocated */ void * netbuf_alloc(struct netbuf *buf, u16_t size) { LWIP_ERROR("netbuf_alloc: invalid buf", (buf != NULL), return NULL;); /* Deallocate any previously allocated memory. */ if (buf->p != NULL) { pbuf_free(buf->p); } buf->p = pbuf_alloc(PBUF_TRANSPORT, size, PBUF_RAM); if (buf->p == NULL) { return NULL; } LWIP_ASSERT("check that first pbuf can hold size", (buf->p->len >= size)); buf->ptr = buf->p; return buf->p->payload; } /** * Free the packet buffer included in a netbuf * * @param buf pointer to the netbuf which contains the packet buffer to free */ void netbuf_free(struct netbuf *buf) { LWIP_ERROR("netbuf_free: invalid buf", (buf != NULL), return;); if (buf->p != NULL) { pbuf_free(buf->p); } buf->p = buf->ptr = NULL; } /** * Let a netbuf reference existing (non-volatile) data. * * @param buf netbuf which should reference the data * @param dataptr pointer to the data to reference * @param size size of the data * @return ERR_OK if data is referenced * ERR_MEM if data couldn't be referenced due to lack of memory */ err_t netbuf_ref(struct netbuf *buf, const void *dataptr, u16_t size) { LWIP_ERROR("netbuf_ref: invalid buf", (buf != NULL), return ERR_ARG;); if (buf->p != NULL) { pbuf_free(buf->p); } buf->p = pbuf_alloc(PBUF_TRANSPORT, 0, PBUF_REF); if (buf->p == NULL) { buf->ptr = NULL; return ERR_MEM; } buf->p->payload = (void*)dataptr; buf->p->len = buf->p->tot_len = size; buf->ptr = buf->p; return ERR_OK; } /** * Chain one netbuf to another (@see pbuf_chain) * * @param head the first netbuf * @param tail netbuf to chain after head, freed by this function, may not be reference after returning */ void netbuf_chain(struct netbuf *head, struct netbuf *tail) { LWIP_ERROR("netbuf_ref: invalid head", (head != NULL), return;); LWIP_ERROR("netbuf_chain: invalid tail", (tail != NULL), return;); pbuf_cat(head->p, tail->p); head->ptr = head->p; memp_free(MEMP_NETBUF, tail); } /** * Get the data pointer and length of the data inside a netbuf. * * @param buf netbuf to get the data from * @param dataptr pointer to a void pointer where to store the data pointer * @param len pointer to an u16_t where the length of the data is stored * @return ERR_OK if the information was retreived, * ERR_BUF on error. */ err_t netbuf_data(struct netbuf *buf, void **dataptr, u16_t *len) { LWIP_ERROR("netbuf_data: invalid buf", (buf != NULL), return ERR_ARG;); LWIP_ERROR("netbuf_data: invalid dataptr", (dataptr != NULL), return ERR_ARG;); LWIP_ERROR("netbuf_data: invalid len", (len != NULL), return ERR_ARG;); if (buf->ptr == NULL) { return ERR_BUF; } *dataptr = buf->ptr->payload; *len = buf->ptr->len; return ERR_OK; } /** * Move the current data pointer of a packet buffer contained in a netbuf * to the next part. * The packet buffer itself is not modified. * * @param buf the netbuf to modify * @return -1 if there is no next part * 1 if moved to the next part but now there is no next part * 0 if moved to the next part and there are still more parts */ s8_t netbuf_next(struct netbuf *buf) { LWIP_ERROR("netbuf_free: invalid buf", (buf != NULL), return -1;); if (buf->ptr->next == NULL) { return -1; } buf->ptr = buf->ptr->next; if (buf->ptr->next == NULL) { return 1; } return 0; } /** * Move the current data pointer of a packet buffer contained in a netbuf * to the beginning of the packet. * The packet buffer itself is not modified. * * @param buf the netbuf to modify */ void netbuf_first(struct netbuf *buf) { LWIP_ERROR("netbuf_free: invalid buf", (buf != NULL), return;); buf->ptr = buf->p; } #endif /* LWIP_NETCONN */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/netdb.c000066400000000000000000000257021224274632000221320ustar00rootroot00000000000000/** * @file * API functions for name resolving * */ /* * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Simon Goldschmidt * */ #include "lwip/netdb.h" #if LWIP_DNS && LWIP_SOCKET #include "lwip/err.h" #include "lwip/mem.h" #include "lwip/ip_addr.h" #include "lwip/api.h" #include #include /** helper struct for gethostbyname_r to access the char* buffer */ struct gethostbyname_r_helper { struct ip_addr *addrs; struct ip_addr addr; char *aliases; }; /** h_errno is exported in netdb.h for access by applications. */ #if LWIP_DNS_API_DECLARE_H_ERRNO int h_errno; #endif /* LWIP_DNS_API_DECLARE_H_ERRNO */ /** define "hostent" variables storage: 0 if we use a static (but unprotected) * set of variables for lwip_gethostbyname, 1 if we use a local storage */ #ifndef LWIP_DNS_API_HOSTENT_STORAGE #define LWIP_DNS_API_HOSTENT_STORAGE 0 #endif /** define "hostent" variables storage */ #if LWIP_DNS_API_HOSTENT_STORAGE #define HOSTENT_STORAGE #else #define HOSTENT_STORAGE static #endif /* LWIP_DNS_API_STATIC_HOSTENT */ /** * Returns an entry containing addresses of address family AF_INET * for the host with name name. * Due to dns_gethostbyname limitations, only one address is returned. * * @param name the hostname to resolve * @return an entry containing addresses of address family AF_INET * for the host with name name */ struct hostent* lwip_gethostbyname(const char *name) { err_t err; struct ip_addr addr; /* buffer variables for lwip_gethostbyname() */ HOSTENT_STORAGE struct hostent s_hostent; HOSTENT_STORAGE char *s_aliases; HOSTENT_STORAGE struct ip_addr s_hostent_addr; HOSTENT_STORAGE struct ip_addr *s_phostent_addr; /* query host IP address */ err = netconn_gethostbyname(name, &addr); if (err != ERR_OK) { LWIP_DEBUGF(DNS_DEBUG, ("lwip_gethostbyname(%s) failed, err=%d\n", name, err)); h_errno = HOST_NOT_FOUND; return NULL; } /* fill hostent */ s_hostent_addr = addr; s_phostent_addr = &s_hostent_addr; s_hostent.h_name = (char*)name; s_hostent.h_aliases = &s_aliases; s_hostent.h_addrtype = AF_INET; s_hostent.h_length = sizeof(struct ip_addr); s_hostent.h_addr_list = (char**)&s_phostent_addr; #if DNS_DEBUG /* dump hostent */ LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_name == %s\n", s_hostent.h_name)); LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_aliases == %p\n", s_hostent.h_aliases)); if (s_hostent.h_aliases != NULL) { u8_t idx; for ( idx=0; s_hostent.h_aliases[idx]; idx++) { LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_aliases[%i]-> == %p\n", idx, s_hostent.h_aliases[idx])); LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_aliases[%i]-> == %s\n", idx, s_hostent.h_aliases[idx])); } } LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_addrtype == %d\n", s_hostent.h_addrtype)); LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_length == %d\n", s_hostent.h_length)); LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_addr_list == %p\n", s_hostent.h_addr_list)); if (s_hostent.h_addr_list != NULL) { u8_t idx; for ( idx=0; s_hostent.h_addr_list[idx]; idx++) { LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_addr_list[%i] == %p\n", idx, s_hostent.h_addr_list[idx])); LWIP_DEBUGF(DNS_DEBUG, ("hostent.h_addr_list[%i]-> == %s\n", idx, inet_ntoa(*((struct in_addr*)(s_hostent.h_addr_list[idx]))))); } } #endif /* DNS_DEBUG */ #if LWIP_DNS_API_HOSTENT_STORAGE /* this function should return the "per-thread" hostent after copy from s_hostent */ return sys_thread_hostent(&s_hostent); #else return &s_hostent; #endif /* LWIP_DNS_API_HOSTENT_STORAGE */ } /** * Thread-safe variant of lwip_gethostbyname: instead of using a static * buffer, this function takes buffer and errno pointers as arguments * and uses these for the result. * * @param name the hostname to resolve * @param ret pre-allocated struct where to store the result * @param buf pre-allocated buffer where to store additional data * @param buflen the size of buf * @param result pointer to a hostent pointer that is set to ret on success * and set to zero on error * @param h_errnop pointer to an int where to store errors (instead of modifying * the global h_errno) * @return 0 on success, non-zero on error, additional error information * is stored in *h_errnop instead of h_errno to be thread-safe */ int lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop) { err_t err; struct gethostbyname_r_helper *h; char *hostname; size_t namelen; int lh_errno; if (h_errnop == NULL) { /* ensure h_errnop is never NULL */ h_errnop = &lh_errno; } if (result == NULL) { /* not all arguments given */ *h_errnop = EINVAL; return -1; } /* first thing to do: set *result to nothing */ *result = NULL; if ((name == NULL) || (ret == NULL) || (buf == 0)) { /* not all arguments given */ *h_errnop = EINVAL; return -1; } namelen = strlen(name); if (buflen < (sizeof(struct gethostbyname_r_helper) + namelen + 1 + (MEM_ALIGNMENT - 1))) { /* buf can't hold the data needed + a copy of name */ *h_errnop = ERANGE; return -1; } h = (struct gethostbyname_r_helper*)LWIP_MEM_ALIGN(buf); hostname = ((char*)h) + sizeof(struct gethostbyname_r_helper); /* query host IP address */ err = netconn_gethostbyname(name, &(h->addr)); if (err != ERR_OK) { LWIP_DEBUGF(DNS_DEBUG, ("lwip_gethostbyname(%s) failed, err=%d\n", name, err)); *h_errnop = ENSRNOTFOUND; return -1; } /* copy the hostname into buf */ MEMCPY(hostname, name, namelen); hostname[namelen] = 0; /* fill hostent */ h->addrs = &(h->addr); h->aliases = NULL; ret->h_name = (char*)hostname; ret->h_aliases = &(h->aliases); ret->h_addrtype = AF_INET; ret->h_length = sizeof(struct ip_addr); ret->h_addr_list = (char**)&(h->addrs); /* set result != NULL */ *result = ret; /* return success */ return 0; } /** * Frees one or more addrinfo structures returned by getaddrinfo(), along with * any additional storage associated with those structures. If the ai_next field * of the structure is not null, the entire list of structures is freed. * * @param ai struct addrinfo to free */ void lwip_freeaddrinfo(struct addrinfo *ai) { struct addrinfo *next; while (ai != NULL) { if (ai->ai_addr != NULL) { mem_free(ai->ai_addr); } if (ai->ai_canonname != NULL) { mem_free(ai->ai_canonname); } next = ai->ai_next; mem_free(ai); ai = next; } } /** * Translates the name of a service location (for example, a host name) and/or * a service name and returns a set of socket addresses and associated * information to be used in creating a socket with which to address the * specified service. * Memory for the result is allocated internally and must be freed by calling * lwip_freeaddrinfo()! * * Due to a limitation in dns_gethostbyname, only the first address of a * host is returned. * Also, service names are not supported (only port numbers)! * * @param nodename descriptive name or address string of the host * (may be NULL -> local address) * @param servname port number as string of NULL * @param hints structure containing input values that set socktype and protocol * @param res pointer to a pointer where to store the result (set to NULL on failure) * @return 0 on success, non-zero on failure */ int lwip_getaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res) { err_t err; struct ip_addr addr; struct addrinfo *ai; struct sockaddr_in *sa = NULL; int port_nr = 0; if (res == NULL) { return EAI_FAIL; } *res = NULL; if ((nodename == NULL) && (servname == NULL)) { return EAI_NONAME; } if (servname != NULL) { /* service name specified: convert to port number * @todo?: currently, only ASCII integers (port numbers) are supported! */ port_nr = atoi(servname); if ((port_nr <= 0) || (port_nr > 0xffff)) { return EAI_SERVICE; } } if (nodename != NULL) { /* service location specified, try to resolve */ err = netconn_gethostbyname(nodename, &addr); if (err != ERR_OK) { return EAI_FAIL; } } else { /* service location specified, use loopback address */ addr.addr = INADDR_LOOPBACK; } ai = mem_malloc(sizeof(struct addrinfo)); if (ai == NULL) { goto memerr; } memset(ai, 0, sizeof(struct addrinfo)); sa = mem_malloc(sizeof(struct sockaddr_in)); if (sa == NULL) { goto memerr; } memset(sa, 0, sizeof(struct sockaddr_in)); /* set up sockaddr */ sa->sin_addr.s_addr = addr.addr; sa->sin_family = AF_INET; sa->sin_len = sizeof(struct sockaddr_in); sa->sin_port = htons(port_nr); /* set up addrinfo */ ai->ai_family = AF_INET; if (hints != NULL) { /* copy socktype & protocol from hints if specified */ ai->ai_socktype = hints->ai_socktype; ai->ai_protocol = hints->ai_protocol; } if (nodename != NULL) { /* copy nodename to canonname if specified */ size_t namelen = strlen(nodename); LWIP_ASSERT("namelen is too long", (namelen + 1) <= (mem_size_t)-1); ai->ai_canonname = mem_malloc((mem_size_t)(namelen + 1)); if (ai->ai_canonname == NULL) { goto memerr; } MEMCPY(ai->ai_canonname, nodename, namelen); ai->ai_canonname[namelen] = 0; } ai->ai_addrlen = sizeof(struct sockaddr_in); ai->ai_addr = (struct sockaddr*)sa; *res = ai; return 0; memerr: if (ai != NULL) { mem_free(ai); } if (sa != NULL) { mem_free(sa); } return EAI_MEMORY; } #endif /* LWIP_DNS && LWIP_SOCKET */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/netifapi.c000066400000000000000000000077111224274632000226350ustar00rootroot00000000000000/** * @file * Network Interface Sequential API module * */ /* * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * */ #include "lwip/opt.h" #if LWIP_NETIF_API /* don't build if not configured for use in lwipopts.h */ #include "lwip/netifapi.h" #include "lwip/tcpip.h" /** * Call netif_add() inside the tcpip_thread context. */ void do_netifapi_netif_add( struct netifapi_msg_msg *msg) { if (!netif_add( msg->netif, msg->msg.add.ipaddr, msg->msg.add.netmask, msg->msg.add.gw, msg->msg.add.state, msg->msg.add.init, msg->msg.add.input)) { msg->err = ERR_IF; } else { msg->err = ERR_OK; } TCPIP_NETIFAPI_ACK(msg); } /** * Call the "errtfunc" (or the "voidfunc" if "errtfunc" is NULL) inside the * tcpip_thread context. */ void do_netifapi_netif_common( struct netifapi_msg_msg *msg) { if (msg->msg.common.errtfunc!=NULL) { msg->err = msg->msg.common.errtfunc(msg->netif); } else { msg->err = ERR_OK; msg->msg.common.voidfunc(msg->netif); } TCPIP_NETIFAPI_ACK(msg); } /** * Call netif_add() in a thread-safe way by running that function inside the * tcpip_thread context. * * @note for params @see netif_add() */ err_t netifapi_netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, void *state, err_t (* init)(struct netif *netif), err_t (* input)(struct pbuf *p, struct netif *netif)) { struct netifapi_msg msg; msg.function = do_netifapi_netif_add; msg.msg.netif = netif; msg.msg.msg.add.ipaddr = ipaddr; msg.msg.msg.add.netmask = netmask; msg.msg.msg.add.gw = gw; msg.msg.msg.add.state = state; msg.msg.msg.add.init = init; msg.msg.msg.add.input = input; TCPIP_NETIFAPI(&msg); return msg.msg.err; } /** * call the "errtfunc" (or the "voidfunc" if "errtfunc" is NULL) in a thread-safe * way by running that function inside the tcpip_thread context. * * @note use only for functions where there is only "netif" parameter. */ err_t netifapi_netif_common( struct netif *netif, void (* voidfunc)(struct netif *netif), err_t (* errtfunc)(struct netif *netif) ) { struct netifapi_msg msg; msg.function = do_netifapi_netif_common; msg.msg.netif = netif; msg.msg.msg.common.voidfunc = voidfunc; msg.msg.msg.common.errtfunc = errtfunc; TCPIP_NETIFAPI(&msg); return msg.msg.err; } #endif /* LWIP_NETIF_API */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/sockets.c000066400000000000000000001570571224274632000225220ustar00rootroot00000000000000/** * @file * Sockets BSD-Like API module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * * Improved by Marc Boucher and David Haas * */ #include "lwip/opt.h" #if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ #include "lwip/sockets.h" #include "lwip/api.h" #include "lwip/sys.h" #include "lwip/igmp.h" #include "lwip/inet.h" #include "lwip/tcp.h" #include "lwip/raw.h" #include "lwip/udp.h" #include "lwip/tcpip.h" #include #define NUM_SOCKETS MEMP_NUM_NETCONN /** Contains all internal pointers and states used for a socket */ struct lwip_socket { /** sockets currently are built on netconns, each socket has one netconn */ struct netconn *conn; /** data that was left from the previous read */ struct netbuf *lastdata; /** offset in the data that was left from the previous read */ u16_t lastoffset; /** number of times data was received, set by event_callback(), tested by the receive and select functions */ s16_t rcvevent; /** number of times data was received, set by event_callback(), tested by select */ u16_t sendevent; /** socket flags (currently, only used for O_NONBLOCK) */ u16_t flags; /** last error that occurred on this socket */ int err; }; /** Description for a task waiting in select */ struct lwip_select_cb { /** Pointer to the next waiting task */ struct lwip_select_cb *next; /** readset passed to select */ fd_set *readset; /** writeset passed to select */ fd_set *writeset; /** unimplemented: exceptset passed to select */ fd_set *exceptset; /** don't signal the same semaphore twice: set to 1 when signalled */ int sem_signalled; /** semaphore to wake up a task waiting for select */ sys_sem_t sem; }; /** This struct is used to pass data to the set/getsockopt_internal * functions running in tcpip_thread context (only a void* is allowed) */ struct lwip_setgetsockopt_data { /** socket struct for which to change options */ struct lwip_socket *sock; /** socket index for which to change options */ int s; /** level of the option to process */ int level; /** name of the option to process */ int optname; /** set: value to set the option to * get: value of the option is stored here */ void *optval; /** size of *optval */ socklen_t *optlen; /** if an error occures, it is temporarily stored here */ err_t err; }; /** The global array of available sockets */ static struct lwip_socket sockets[NUM_SOCKETS]; /** The global list of tasks waiting for select */ static struct lwip_select_cb *select_cb_list; /** Semaphore protecting the sockets array */ static sys_sem_t socksem; /** Semaphore protecting select_cb_list */ static sys_sem_t selectsem; /** Table to quickly map an lwIP error (err_t) to a socket error * by using -err as an index */ static const int err_to_errno_table[] = { 0, /* ERR_OK 0 No error, everything OK. */ ENOMEM, /* ERR_MEM -1 Out of memory error. */ ENOBUFS, /* ERR_BUF -2 Buffer error. */ ETIMEDOUT, /* ERR_TIMEOUT -3 Timeout */ EHOSTUNREACH, /* ERR_RTE -4 Routing problem. */ ECONNABORTED, /* ERR_ABRT -5 Connection aborted. */ ECONNRESET, /* ERR_RST -6 Connection reset. */ ESHUTDOWN, /* ERR_CLSD -7 Connection closed. */ ENOTCONN, /* ERR_CONN -8 Not connected. */ EINVAL, /* ERR_VAL -9 Illegal value. */ EIO, /* ERR_ARG -10 Illegal argument. */ EADDRINUSE, /* ERR_USE -11 Address in use. */ -1, /* ERR_IF -12 Low-level netif error */ -1, /* ERR_ISCONN -13 Already connected. */ EINPROGRESS /* ERR_INPROGRESS -14 Operation in progress */ }; #define ERR_TO_ERRNO_TABLE_SIZE \ (sizeof(err_to_errno_table)/sizeof(err_to_errno_table[0])) #define err_to_errno(err) \ ((unsigned)(-(err)) < ERR_TO_ERRNO_TABLE_SIZE ? \ err_to_errno_table[-(err)] : EIO) #ifdef ERRNO #ifndef set_errno #define set_errno(err) errno = (err) #endif #else #define set_errno(err) #endif #define sock_set_errno(sk, e) do { \ sk->err = (e); \ set_errno(sk->err); \ } while (0) /* Forward delcaration of some functions */ static void event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len); static void lwip_getsockopt_internal(void *arg); static void lwip_setsockopt_internal(void *arg); /** * Initialize this module. This function has to be called before any other * functions in this module! */ void lwip_socket_init(void) { socksem = sys_sem_new(1); selectsem = sys_sem_new(1); } /** * Map a externally used socket index to the internal socket representation. * * @param s externally used socket index * @return struct lwip_socket for the socket or NULL if not found */ static struct lwip_socket * get_socket(int s) { struct lwip_socket *sock; if ((s < 0) || (s >= NUM_SOCKETS)) { LWIP_DEBUGF(SOCKETS_DEBUG, ("get_socket(%d): invalid\n", s)); set_errno(EBADF); return NULL; } sock = &sockets[s]; if (!sock->conn) { LWIP_DEBUGF(SOCKETS_DEBUG, ("get_socket(%d): not active\n", s)); set_errno(EBADF); return NULL; } return sock; } /** * Allocate a new socket for a given netconn. * * @param newconn the netconn for which to allocate a socket * @return the index of the new socket; -1 on error */ static int alloc_socket(struct netconn *newconn) { int i; /* Protect socket array */ sys_sem_wait(socksem); /* allocate a new socket identifier */ for (i = 0; i < NUM_SOCKETS; ++i) { if (!sockets[i].conn) { sockets[i].conn = newconn; sockets[i].lastdata = NULL; sockets[i].lastoffset = 0; sockets[i].rcvevent = 0; sockets[i].sendevent = 1; /* TCP send buf is empty */ sockets[i].flags = 0; sockets[i].err = 0; sys_sem_signal(socksem); return i; } } sys_sem_signal(socksem); return -1; } /* Below this, the well-known socket functions are implemented. * Use google.com or opengroup.org to get a good description :-) * * Exceptions are documented! */ int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen) { struct lwip_socket *sock, *nsock; struct netconn *newconn; struct ip_addr naddr; u16_t port; int newsock; struct sockaddr_in sin; err_t err; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d)...\n", s)); sock = get_socket(s); if (!sock) return -1; if ((sock->flags & O_NONBLOCK) && (sock->rcvevent <= 0)) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d): returning EWOULDBLOCK\n", s)); sock_set_errno(sock, EWOULDBLOCK); return -1; } newconn = netconn_accept(sock->conn); if (!newconn) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d) failed, err=%d\n", s, sock->conn->err)); sock_set_errno(sock, err_to_errno(sock->conn->err)); return -1; } /* get the IP address and port of the remote host */ err = netconn_peer(newconn, &naddr, &port); if (err != ERR_OK) { netconn_delete(newconn); sock_set_errno(sock, err_to_errno(err)); return -1; } /* Note that POSIX only requires us to check addr is non-NULL. addrlen must * not be NULL if addr is valid. */ if (NULL != addr) { LWIP_ASSERT("addr valid but addrlen NULL", addrlen != NULL); memset(&sin, 0, sizeof(sin)); sin.sin_len = sizeof(sin); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = naddr.addr; if (*addrlen > sizeof(sin)) *addrlen = sizeof(sin); MEMCPY(addr, &sin, *addrlen); } newsock = alloc_socket(newconn); if (newsock == -1) { netconn_delete(newconn); sock_set_errno(sock, ENFILE); return -1; } LWIP_ASSERT("invalid socket index", (newsock >= 0) && (newsock < NUM_SOCKETS)); newconn->callback = event_callback; nsock = &sockets[newsock]; LWIP_ASSERT("invalid socket pointer", nsock != NULL); sys_sem_wait(socksem); /* See event_callback: If data comes in right away after an accept, even * though the server task might not have created a new socket yet. * In that case, newconn->socket is counted down (newconn->socket--), * so nsock->rcvevent is >= 1 here! */ nsock->rcvevent += -1 - newconn->socket; newconn->socket = newsock; sys_sem_signal(socksem); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d) returning new sock=%d addr=", s, newsock)); ip_addr_debug_print(SOCKETS_DEBUG, &naddr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F"\n", port)); sock_set_errno(sock, 0); return newsock; } int lwip_bind(int s, const struct sockaddr *name, socklen_t namelen) { struct lwip_socket *sock; struct ip_addr local_addr; u16_t local_port; err_t err; sock = get_socket(s); if (!sock) return -1; LWIP_ERROR("lwip_bind: invalid address", ((namelen == sizeof(struct sockaddr_in)) && ((((const struct sockaddr_in *)name)->sin_family) == AF_INET)), sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;); local_addr.addr = ((const struct sockaddr_in *)name)->sin_addr.s_addr; local_port = ((const struct sockaddr_in *)name)->sin_port; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_bind(%d, addr=", s)); ip_addr_debug_print(SOCKETS_DEBUG, &local_addr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F")\n", ntohs(local_port))); err = netconn_bind(sock->conn, &local_addr, ntohs(local_port)); if (err != ERR_OK) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_bind(%d) failed, err=%d\n", s, err)); sock_set_errno(sock, err_to_errno(err)); return -1; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_bind(%d) succeeded\n", s)); sock_set_errno(sock, 0); return 0; } int lwip_close(int s) { struct lwip_socket *sock; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_close(%d)\n", s)); sock = get_socket(s); if (!sock) { return -1; } netconn_delete(sock->conn); sys_sem_wait(socksem); if (sock->lastdata) { netbuf_delete(sock->lastdata); } sock->lastdata = NULL; sock->lastoffset = 0; sock->conn = NULL; sock_set_errno(sock, 0); sys_sem_signal(socksem); return 0; } int lwip_connect(int s, const struct sockaddr *name, socklen_t namelen) { struct lwip_socket *sock; err_t err; sock = get_socket(s); if (!sock) return -1; LWIP_ERROR("lwip_connect: invalid address", ((namelen == sizeof(struct sockaddr_in)) && ((((const struct sockaddr_in *)name)->sin_family) == AF_INET)), sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;); if (((const struct sockaddr_in *)name)->sin_family == AF_UNSPEC) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_connect(%d, AF_UNSPEC)\n", s)); err = netconn_disconnect(sock->conn); } else { struct ip_addr remote_addr; u16_t remote_port; remote_addr.addr = ((const struct sockaddr_in *)name)->sin_addr.s_addr; remote_port = ((const struct sockaddr_in *)name)->sin_port; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_connect(%d, addr=", s)); ip_addr_debug_print(SOCKETS_DEBUG, &remote_addr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F")\n", ntohs(remote_port))); err = netconn_connect(sock->conn, &remote_addr, ntohs(remote_port)); } if (err != ERR_OK) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_connect(%d) failed, err=%d\n", s, err)); sock_set_errno(sock, err_to_errno(err)); return -1; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_connect(%d) succeeded\n", s)); sock_set_errno(sock, 0); return 0; } /** * Set a socket into listen mode. * The socket may not have been used for another connection previously. * * @param s the socket to set to listening mode * @param backlog (ATTENTION: need TCP_LISTEN_BACKLOG=1) * @return 0 on success, non-zero on failure */ int lwip_listen(int s, int backlog) { struct lwip_socket *sock; err_t err; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_listen(%d, backlog=%d)\n", s, backlog)); sock = get_socket(s); if (!sock) return -1; /* limit the "backlog" parameter to fit in an u8_t */ if (backlog < 0) { backlog = 0; } if (backlog > 0xff) { backlog = 0xff; } err = netconn_listen_with_backlog(sock->conn, backlog); if (err != ERR_OK) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_listen(%d) failed, err=%d\n", s, err)); sock_set_errno(sock, err_to_errno(err)); return -1; } sock_set_errno(sock, 0); return 0; } int lwip_recvfrom(int s, void *mem, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) { struct lwip_socket *sock; struct netbuf *buf; u16_t buflen, copylen, off = 0; struct ip_addr *addr; u16_t port; u8_t done = 0; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom(%d, %p, %"SZT_F", 0x%x, ..)\n", s, mem, len, flags)); sock = get_socket(s); if (!sock) return -1; do { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: top while sock->lastdata=%p\n", (void*)sock->lastdata)); /* Check if there is data left from the last recv operation. */ if (sock->lastdata) { buf = sock->lastdata; } else { /* If this is non-blocking call, then check first */ if (((flags & MSG_DONTWAIT) || (sock->flags & O_NONBLOCK)) && (sock->rcvevent <= 0)) { if (off > 0) { /* already received data, return that */ sock_set_errno(sock, 0); return off; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom(%d): returning EWOULDBLOCK\n", s)); sock_set_errno(sock, EWOULDBLOCK); return -1; } /* No data was left from the previous operation, so we try to get some from the network. */ sock->lastdata = buf = netconn_recv(sock->conn); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: netconn_recv netbuf=%p\n", (void*)buf)); if (!buf) { if (off > 0) { /* already received data, return that */ sock_set_errno(sock, 0); return off; } /* We should really do some error checking here. */ LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom(%d): buf == NULL!\n", s)); sock_set_errno(sock, (((sock->conn->pcb.ip != NULL) && (sock->conn->err == ERR_OK)) ? ETIMEDOUT : err_to_errno(sock->conn->err))); return 0; } } buflen = netbuf_len(buf); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: buflen=%"U16_F" len=%"SZT_F" off=%"U16_F" sock->lastoffset=%"U16_F"\n", buflen, len, off, sock->lastoffset)); buflen -= sock->lastoffset; if (len > buflen) { copylen = buflen; } else { copylen = (u16_t)len; } /* copy the contents of the received buffer into the supplied memory pointer mem */ netbuf_copy_partial(buf, (u8_t*)mem + off, copylen, sock->lastoffset); off += copylen; if (netconn_type(sock->conn) == NETCONN_TCP) { LWIP_ASSERT("invalid copylen, len would underflow", len >= copylen); len -= copylen; if ( (len <= 0) || (buf->p->flags & PBUF_FLAG_PUSH) || (sock->rcvevent <= 0) || ((flags & MSG_PEEK)!=0)) { done = 1; } } else { done = 1; } /* Check to see from where the data was.*/ if (done) { if (from && fromlen) { struct sockaddr_in sin; if (netconn_type(sock->conn) == NETCONN_TCP) { addr = (struct ip_addr*)&(sin.sin_addr.s_addr); netconn_getaddr(sock->conn, addr, &port, 0); } else { addr = netbuf_fromaddr(buf); port = netbuf_fromport(buf); } memset(&sin, 0, sizeof(sin)); sin.sin_len = sizeof(sin); sin.sin_family = AF_INET; sin.sin_port = htons(port); sin.sin_addr.s_addr = addr->addr; if (*fromlen > sizeof(sin)) { *fromlen = sizeof(sin); } MEMCPY(from, &sin, *fromlen); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom(%d): addr=", s)); ip_addr_debug_print(SOCKETS_DEBUG, addr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F" len=%"U16_F"\n", port, off)); } else { #if SOCKETS_DEBUG struct sockaddr_in sin; if (netconn_type(sock->conn) == NETCONN_TCP) { addr = (struct ip_addr*)&(sin.sin_addr.s_addr); netconn_getaddr(sock->conn, addr, &port, 0); } else { addr = netbuf_fromaddr(buf); port = netbuf_fromport(buf); } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom(%d): addr=", s)); ip_addr_debug_print(SOCKETS_DEBUG, addr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F" len=%"U16_F"\n", port, off)); #endif /* SOCKETS_DEBUG */ } } /* If we don't peek the incoming message... */ if ((flags & MSG_PEEK)==0) { /* If this is a TCP socket, check if there is data left in the buffer. If so, it should be saved in the sock structure for next time around. */ if ((netconn_type(sock->conn) == NETCONN_TCP) && (buflen - copylen > 0)) { sock->lastdata = buf; sock->lastoffset += copylen; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: lastdata now netbuf=%p\n", (void*)buf)); } else { sock->lastdata = NULL; sock->lastoffset = 0; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom: deleting netbuf=%p\n", (void*)buf)); netbuf_delete(buf); } } } while (!done); sock_set_errno(sock, 0); return off; } int lwip_read(int s, void *mem, size_t len) { return lwip_recvfrom(s, mem, len, 0, NULL, NULL); } int lwip_recv(int s, void *mem, size_t len, int flags) { return lwip_recvfrom(s, mem, len, flags, NULL, NULL); } int lwip_send(int s, const void *data, size_t size, int flags) { struct lwip_socket *sock; err_t err; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_send(%d, data=%p, size=%"SZT_F", flags=0x%x)\n", s, data, size, flags)); sock = get_socket(s); if (!sock) return -1; if (sock->conn->type != NETCONN_TCP) { #if (LWIP_UDP || LWIP_RAW) return lwip_sendto(s, data, size, flags, NULL, 0); #else sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1; #endif /* (LWIP_UDP || LWIP_RAW) */ } err = netconn_write(sock->conn, data, size, NETCONN_COPY | ((flags & MSG_MORE)?NETCONN_MORE:0)); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_send(%d) err=%d size=%"SZT_F"\n", s, err, size)); sock_set_errno(sock, err_to_errno(err)); return (err == ERR_OK ? (int)size : -1); } int lwip_sendto(int s, const void *data, size_t size, int flags, const struct sockaddr *to, socklen_t tolen) { struct lwip_socket *sock; struct ip_addr remote_addr; err_t err; u16_t short_size; #if !LWIP_TCPIP_CORE_LOCKING struct netbuf buf; u16_t remote_port; #endif sock = get_socket(s); if (!sock) return -1; if (sock->conn->type == NETCONN_TCP) { #if LWIP_TCP return lwip_send(s, data, size, flags); #else sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1; #endif /* LWIP_TCP */ } LWIP_ASSERT("lwip_sendto: size must fit in u16_t", size <= 0xffff); short_size = (u16_t)size; LWIP_ERROR("lwip_sendto: invalid address", (((to == NULL) && (tolen == 0)) || ((tolen == sizeof(struct sockaddr_in)) && ((((const struct sockaddr_in *)to)->sin_family) == AF_INET))), sock_set_errno(sock, err_to_errno(ERR_ARG)); return -1;); #if LWIP_TCPIP_CORE_LOCKING /* Should only be consider like a sample or a simple way to experiment this option (no check of "to" field...) */ { struct pbuf* p; p = pbuf_alloc(PBUF_TRANSPORT, 0, PBUF_REF); if (p == NULL) { err = ERR_MEM; } else { p->payload = (void*)data; p->len = p->tot_len = short_size; remote_addr.addr = ((const struct sockaddr_in *)to)->sin_addr.s_addr; LOCK_TCPIP_CORE(); if (sock->conn->type==NETCONN_RAW) { err = sock->conn->err = raw_sendto(sock->conn->pcb.raw, p, &remote_addr); } else { err = sock->conn->err = udp_sendto(sock->conn->pcb.udp, p, &remote_addr, ntohs(((const struct sockaddr_in *)to)->sin_port)); } UNLOCK_TCPIP_CORE(); pbuf_free(p); } } #else /* initialize a buffer */ buf.p = buf.ptr = NULL; if (to) { remote_addr.addr = ((const struct sockaddr_in *)to)->sin_addr.s_addr; remote_port = ntohs(((const struct sockaddr_in *)to)->sin_port); buf.addr = &remote_addr; buf.port = remote_port; } else { remote_addr.addr = 0; remote_port = 0; buf.addr = NULL; buf.port = 0; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_sendto(%d, data=%p, short_size=%d"U16_F", flags=0x%x to=", s, data, short_size, flags)); ip_addr_debug_print(SOCKETS_DEBUG, &remote_addr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F"\n", remote_port)); /* make the buffer point to the data that should be sent */ #if LWIP_NETIF_TX_SINGLE_PBUF /* Allocate a new netbuf and copy the data into it. */ if (netbuf_alloc(&buf, short_size) == NULL) { err = ERR_MEM; } else { err = netbuf_take(&buf, data, short_size); } #else /* LWIP_NETIF_TX_SINGLE_PBUF */ err = netbuf_ref(&buf, data, short_size); #endif /* LWIP_NETIF_TX_SINGLE_PBUF */ if (err == ERR_OK) { /* send the data */ err = netconn_send(sock->conn, &buf); } /* deallocated the buffer */ netbuf_free(&buf); #endif /* LWIP_TCPIP_CORE_LOCKING */ sock_set_errno(sock, err_to_errno(err)); return (err == ERR_OK ? short_size : -1); } int lwip_socket(int domain, int type, int protocol) { struct netconn *conn; int i; LWIP_UNUSED_ARG(domain); /* create a netconn */ switch (type) { case SOCK_RAW: conn = netconn_new_with_proto_and_callback(NETCONN_RAW, (u8_t)protocol, event_callback); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%s, SOCK_RAW, %d) = ", domain == PF_INET ? "PF_INET" : "UNKNOWN", protocol)); break; case SOCK_DGRAM: conn = netconn_new_with_callback( (protocol == IPPROTO_UDPLITE) ? NETCONN_UDPLITE : NETCONN_UDP, event_callback); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%s, SOCK_DGRAM, %d) = ", domain == PF_INET ? "PF_INET" : "UNKNOWN", protocol)); break; case SOCK_STREAM: conn = netconn_new_with_callback(NETCONN_TCP, event_callback); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%s, SOCK_STREAM, %d) = ", domain == PF_INET ? "PF_INET" : "UNKNOWN", protocol)); break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%d, %d/UNKNOWN, %d) = -1\n", domain, type, protocol)); set_errno(EINVAL); return -1; } if (!conn) { LWIP_DEBUGF(SOCKETS_DEBUG, ("-1 / ENOBUFS (could not create netconn)\n")); set_errno(ENOBUFS); return -1; } i = alloc_socket(conn); if (i == -1) { netconn_delete(conn); set_errno(ENFILE); return -1; } conn->socket = i; LWIP_DEBUGF(SOCKETS_DEBUG, ("%d\n", i)); set_errno(0); return i; } int lwip_write(int s, const void *data, size_t size) { return lwip_send(s, data, size, 0); } /** * Go through the readset and writeset lists and see which socket of the sockets * set in the sets has events. On return, readset, writeset and exceptset have * the sockets enabled that had events. * * exceptset is not used for now!!! * * @param maxfdp1 the highest socket index in the sets * @param readset in: set of sockets to check for read events; * out: set of sockets that had read events * @param writeset in: set of sockets to check for write events; * out: set of sockets that had write events * @param exceptset not yet implemented * @return number of sockets that had events (read+write) */ static int lwip_selscan(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset) { int i, nready = 0; fd_set lreadset, lwriteset, lexceptset; struct lwip_socket *p_sock; FD_ZERO(&lreadset); FD_ZERO(&lwriteset); FD_ZERO(&lexceptset); /* Go through each socket in each list to count number of sockets which currently match */ for(i = 0; i < maxfdp1; i++) { if (FD_ISSET(i, readset)) { /* See if netconn of this socket is ready for read */ p_sock = get_socket(i); if (p_sock && (p_sock->lastdata || (p_sock->rcvevent > 0))) { FD_SET(i, &lreadset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_selscan: fd=%d ready for reading\n", i)); nready++; } } if (FD_ISSET(i, writeset)) { /* See if netconn of this socket is ready for write */ p_sock = get_socket(i); if (p_sock && p_sock->sendevent) { FD_SET(i, &lwriteset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_selscan: fd=%d ready for writing\n", i)); nready++; } } } *readset = lreadset; *writeset = lwriteset; FD_ZERO(exceptset); return nready; } /** * Processing exceptset is not yet implemented. */ int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, struct timeval *timeout) { int i; int nready; fd_set lreadset, lwriteset, lexceptset; u32_t msectimeout; struct lwip_select_cb select_cb; struct lwip_select_cb *p_selcb; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_select(%d, %p, %p, %p, tvsec=%ld tvusec=%ld)\n", maxfdp1, (void *)readset, (void *) writeset, (void *) exceptset, timeout ? (long)timeout->tv_sec : (long)-1, timeout ? (long)timeout->tv_usec : (long)-1)); select_cb.next = 0; select_cb.readset = readset; select_cb.writeset = writeset; select_cb.exceptset = exceptset; select_cb.sem_signalled = 0; /* Protect ourselves searching through the list */ sys_sem_wait(selectsem); if (readset) lreadset = *readset; else FD_ZERO(&lreadset); if (writeset) lwriteset = *writeset; else FD_ZERO(&lwriteset); if (exceptset) lexceptset = *exceptset; else FD_ZERO(&lexceptset); /* Go through each socket in each list to count number of sockets which currently match */ nready = lwip_selscan(maxfdp1, &lreadset, &lwriteset, &lexceptset); /* If we don't have any current events, then suspend if we are supposed to */ if (!nready) { if (timeout && timeout->tv_sec == 0 && timeout->tv_usec == 0) { sys_sem_signal(selectsem); if (readset) FD_ZERO(readset); if (writeset) FD_ZERO(writeset); if (exceptset) FD_ZERO(exceptset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_select: no timeout, returning 0\n")); set_errno(0); return 0; } /* add our semaphore to list */ /* We don't actually need any dynamic memory. Our entry on the * list is only valid while we are in this function, so it's ok * to use local variables */ select_cb.sem = sys_sem_new(0); /* Note that we are still protected */ /* Put this select_cb on top of list */ select_cb.next = select_cb_list; select_cb_list = &select_cb; /* Now we can safely unprotect */ sys_sem_signal(selectsem); /* Now just wait to be woken */ if (timeout == 0) /* Wait forever */ msectimeout = 0; else { msectimeout = ((timeout->tv_sec * 1000) + ((timeout->tv_usec + 500)/1000)); if(msectimeout == 0) msectimeout = 1; } i = sys_sem_wait_timeout(select_cb.sem, msectimeout); /* Take us off the list */ sys_sem_wait(selectsem); if (select_cb_list == &select_cb) select_cb_list = select_cb.next; else for (p_selcb = select_cb_list; p_selcb; p_selcb = p_selcb->next) { if (p_selcb->next == &select_cb) { p_selcb->next = select_cb.next; break; } } sys_sem_signal(selectsem); sys_sem_free(select_cb.sem); if (i == 0) { /* Timeout */ if (readset) FD_ZERO(readset); if (writeset) FD_ZERO(writeset); if (exceptset) FD_ZERO(exceptset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_select: timeout expired\n")); set_errno(0); return 0; } if (readset) lreadset = *readset; else FD_ZERO(&lreadset); if (writeset) lwriteset = *writeset; else FD_ZERO(&lwriteset); if (exceptset) lexceptset = *exceptset; else FD_ZERO(&lexceptset); /* See what's set */ nready = lwip_selscan(maxfdp1, &lreadset, &lwriteset, &lexceptset); } else sys_sem_signal(selectsem); if (readset) *readset = lreadset; if (writeset) *writeset = lwriteset; if (exceptset) *exceptset = lexceptset; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_select: nready=%d\n", nready)); set_errno(0); return nready; } /** * Callback registered in the netconn layer for each socket-netconn. * Processes recvevent (data available) and wakes up tasks waiting for select. */ static void event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len) { int s; struct lwip_socket *sock; struct lwip_select_cb *scb; LWIP_UNUSED_ARG(len); /* Get socket */ if (conn) { s = conn->socket; if (s < 0) { /* Data comes in right away after an accept, even though * the server task might not have created a new socket yet. * Just count down (or up) if that's the case and we * will use the data later. Note that only receive events * can happen before the new socket is set up. */ sys_sem_wait(socksem); if (conn->socket < 0) { if (evt == NETCONN_EVT_RCVPLUS) { conn->socket--; } sys_sem_signal(socksem); return; } sys_sem_signal(socksem); } sock = get_socket(s); if (!sock) { return; } } else { return; } sys_sem_wait(selectsem); /* Set event as required */ switch (evt) { case NETCONN_EVT_RCVPLUS: sock->rcvevent++; break; case NETCONN_EVT_RCVMINUS: sock->rcvevent--; break; case NETCONN_EVT_SENDPLUS: sock->sendevent = 1; break; case NETCONN_EVT_SENDMINUS: sock->sendevent = 0; break; default: LWIP_ASSERT("unknown event", 0); break; } sys_sem_signal(selectsem); /* Now decide if anyone is waiting for this socket */ /* NOTE: This code is written this way to protect the select link list but to avoid a deadlock situation by releasing socksem before signalling for the select. This means we need to go through the list multiple times ONLY IF a select was actually waiting. We go through the list the number of waiting select calls + 1. This list is expected to be small. */ while (1) { sys_sem_wait(selectsem); for (scb = select_cb_list; scb; scb = scb->next) { if (scb->sem_signalled == 0) { /* Test this select call for our socket */ if (scb->readset && FD_ISSET(s, scb->readset)) if (sock->rcvevent > 0) break; if (scb->writeset && FD_ISSET(s, scb->writeset)) if (sock->sendevent) break; } } if (scb) { scb->sem_signalled = 1; sys_sem_signal(scb->sem); sys_sem_signal(selectsem); } else { sys_sem_signal(selectsem); break; } } } /** * Unimplemented: Close one end of a full-duplex connection. * Currently, the full connection is closed. */ int lwip_shutdown(int s, int how) { LWIP_UNUSED_ARG(how); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_shutdown(%d, how=%d)\n", s, how)); return lwip_close(s); /* XXX temporary hack until proper implementation */ } static int lwip_getaddrname(int s, struct sockaddr *name, socklen_t *namelen, u8_t local) { struct lwip_socket *sock; struct sockaddr_in sin; struct ip_addr naddr; sock = get_socket(s); if (!sock) return -1; memset(&sin, 0, sizeof(sin)); sin.sin_len = sizeof(sin); sin.sin_family = AF_INET; /* get the IP address and port */ netconn_getaddr(sock->conn, &naddr, &sin.sin_port, local); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getaddrname(%d, addr=", s)); ip_addr_debug_print(SOCKETS_DEBUG, &naddr); LWIP_DEBUGF(SOCKETS_DEBUG, (" port=%"U16_F")\n", sin.sin_port)); sin.sin_port = htons(sin.sin_port); sin.sin_addr.s_addr = naddr.addr; if (*namelen > sizeof(sin)) *namelen = sizeof(sin); MEMCPY(name, &sin, *namelen); sock_set_errno(sock, 0); return 0; } int lwip_getpeername(int s, struct sockaddr *name, socklen_t *namelen) { return lwip_getaddrname(s, name, namelen, 0); } int lwip_getsockname(int s, struct sockaddr *name, socklen_t *namelen) { return lwip_getaddrname(s, name, namelen, 1); } int lwip_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) { err_t err = ERR_OK; struct lwip_socket *sock = get_socket(s); struct lwip_setgetsockopt_data data; if (!sock) return -1; if ((NULL == optval) || (NULL == optlen)) { sock_set_errno(sock, EFAULT); return -1; } /* Do length and type checks for the various options first, to keep it readable. */ switch (level) { /* Level: SOL_SOCKET */ case SOL_SOCKET: switch (optname) { case SO_ACCEPTCONN: case SO_BROADCAST: /* UNIMPL case SO_DEBUG: */ /* UNIMPL case SO_DONTROUTE: */ case SO_ERROR: case SO_KEEPALIVE: /* UNIMPL case SO_CONTIMEO: */ /* UNIMPL case SO_SNDTIMEO: */ #if LWIP_SO_RCVTIMEO case SO_RCVTIMEO: #endif /* LWIP_SO_RCVTIMEO */ #if LWIP_SO_RCVBUF case SO_RCVBUF: #endif /* LWIP_SO_RCVBUF */ /* UNIMPL case SO_OOBINLINE: */ /* UNIMPL case SO_SNDBUF: */ /* UNIMPL case SO_RCVLOWAT: */ /* UNIMPL case SO_SNDLOWAT: */ #if SO_REUSE case SO_REUSEADDR: case SO_REUSEPORT: #endif /* SO_REUSE */ case SO_TYPE: /* UNIMPL case SO_USELOOPBACK: */ if (*optlen < sizeof(int)) { err = EINVAL; } break; case SO_NO_CHECK: if (*optlen < sizeof(int)) { err = EINVAL; } #if LWIP_UDP if ((sock->conn->type != NETCONN_UDP) || ((udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_UDPLITE) != 0)) { /* this flag is only available for UDP, not for UDP lite */ err = EAFNOSUPPORT; } #endif /* LWIP_UDP */ break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; /* Level: IPPROTO_IP */ case IPPROTO_IP: switch (optname) { /* UNIMPL case IP_HDRINCL: */ /* UNIMPL case IP_RCVDSTADDR: */ /* UNIMPL case IP_RCVIF: */ case IP_TTL: case IP_TOS: if (*optlen < sizeof(int)) { err = EINVAL; } break; #if LWIP_IGMP case IP_MULTICAST_TTL: if (*optlen < sizeof(u8_t)) { err = EINVAL; } break; case IP_MULTICAST_IF: if (*optlen < sizeof(struct in_addr)) { err = EINVAL; } break; #endif /* LWIP_IGMP */ default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; #if LWIP_TCP /* Level: IPPROTO_TCP */ case IPPROTO_TCP: if (*optlen < sizeof(int)) { err = EINVAL; break; } /* If this is no TCP socket, ignore any options. */ if (sock->conn->type != NETCONN_TCP) return 0; switch (optname) { case TCP_NODELAY: case TCP_KEEPALIVE: #if LWIP_TCP_KEEPALIVE case TCP_KEEPIDLE: case TCP_KEEPINTVL: case TCP_KEEPCNT: #endif /* LWIP_TCP_KEEPALIVE */ break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; #endif /* LWIP_TCP */ #if LWIP_UDP && LWIP_UDPLITE /* Level: IPPROTO_UDPLITE */ case IPPROTO_UDPLITE: if (*optlen < sizeof(int)) { err = EINVAL; break; } /* If this is no UDP lite socket, ignore any options. */ if (sock->conn->type != NETCONN_UDPLITE) return 0; switch (optname) { case UDPLITE_SEND_CSCOV: case UDPLITE_RECV_CSCOV: break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; #endif /* LWIP_UDP && LWIP_UDPLITE*/ /* UNDEFINED LEVEL */ default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, level=0x%x, UNIMPL: optname=0x%x, ..)\n", s, level, optname)); err = ENOPROTOOPT; } /* switch */ if (err != ERR_OK) { sock_set_errno(sock, err); return -1; } /* Now do the actual option processing */ data.sock = sock; data.level = level; data.optname = optname; data.optval = optval; data.optlen = optlen; data.err = err; tcpip_callback(lwip_getsockopt_internal, &data); sys_arch_sem_wait(sock->conn->op_completed, 0); /* maybe lwip_getsockopt_internal has changed err */ err = data.err; sock_set_errno(sock, err); return err ? -1 : 0; } static void lwip_getsockopt_internal(void *arg) { struct lwip_socket *sock; #ifdef LWIP_DEBUG int s; #endif /* LWIP_DEBUG */ int level, optname; void *optval; struct lwip_setgetsockopt_data *data; LWIP_ASSERT("arg != NULL", arg != NULL); data = (struct lwip_setgetsockopt_data*)arg; sock = data->sock; #ifdef LWIP_DEBUG s = data->s; #endif /* LWIP_DEBUG */ level = data->level; optname = data->optname; optval = data->optval; switch (level) { /* Level: SOL_SOCKET */ case SOL_SOCKET: switch (optname) { /* The option flags */ case SO_ACCEPTCONN: case SO_BROADCAST: /* UNIMPL case SO_DEBUG: */ /* UNIMPL case SO_DONTROUTE: */ case SO_KEEPALIVE: /* UNIMPL case SO_OOBINCLUDE: */ #if SO_REUSE case SO_REUSEADDR: case SO_REUSEPORT: #endif /* SO_REUSE */ /*case SO_USELOOPBACK: UNIMPL */ *(int*)optval = sock->conn->pcb.ip->so_options & optname; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, optname=0x%x, ..) = %s\n", s, optname, (*(int*)optval?"on":"off"))); break; case SO_TYPE: switch (NETCONNTYPE_GROUP(sock->conn->type)) { case NETCONN_RAW: *(int*)optval = SOCK_RAW; break; case NETCONN_TCP: *(int*)optval = SOCK_STREAM; break; case NETCONN_UDP: *(int*)optval = SOCK_DGRAM; break; default: /* unrecognized socket type */ *(int*)optval = sock->conn->type; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, SO_TYPE): unrecognized socket type %d\n", s, *(int *)optval)); } /* switch (sock->conn->type) */ LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, SO_TYPE) = %d\n", s, *(int *)optval)); break; case SO_ERROR: if (sock->err == 0) { sock_set_errno(sock, err_to_errno(sock->conn->err)); } *(int *)optval = sock->err; sock->err = 0; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, SO_ERROR) = %d\n", s, *(int *)optval)); break; #if LWIP_SO_RCVTIMEO case SO_RCVTIMEO: *(int *)optval = sock->conn->recv_timeout; break; #endif /* LWIP_SO_RCVTIMEO */ #if LWIP_SO_RCVBUF case SO_RCVBUF: *(int *)optval = sock->conn->recv_bufsize; break; #endif /* LWIP_SO_RCVBUF */ #if LWIP_UDP case SO_NO_CHECK: *(int*)optval = (udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_NOCHKSUM) ? 1 : 0; break; #endif /* LWIP_UDP*/ } /* switch (optname) */ break; /* Level: IPPROTO_IP */ case IPPROTO_IP: switch (optname) { case IP_TTL: *(int*)optval = sock->conn->pcb.ip->ttl; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_TTL) = %d\n", s, *(int *)optval)); break; case IP_TOS: *(int*)optval = sock->conn->pcb.ip->tos; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_TOS) = %d\n", s, *(int *)optval)); break; #if LWIP_IGMP case IP_MULTICAST_TTL: *(u8_t*)optval = sock->conn->pcb.ip->ttl; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_TTL) = %d\n", s, *(int *)optval)); break; case IP_MULTICAST_IF: ((struct in_addr*) optval)->s_addr = sock->conn->pcb.udp->multicast_ip.addr; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_IF) = 0x%"X32_F"\n", s, *(u32_t *)optval)); break; #endif /* LWIP_IGMP */ } /* switch (optname) */ break; #if LWIP_TCP /* Level: IPPROTO_TCP */ case IPPROTO_TCP: switch (optname) { case TCP_NODELAY: *(int*)optval = (sock->conn->pcb.tcp->flags & TF_NODELAY); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_NODELAY) = %s\n", s, (*(int*)optval)?"on":"off") ); break; case TCP_KEEPALIVE: *(int*)optval = (int)sock->conn->pcb.tcp->keep_idle; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, TCP_KEEPALIVE) = %d\n", s, *(int *)optval)); break; #if LWIP_TCP_KEEPALIVE case TCP_KEEPIDLE: *(int*)optval = (int)(sock->conn->pcb.tcp->keep_idle/1000); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, TCP_KEEPIDLE) = %d\n", s, *(int *)optval)); break; case TCP_KEEPINTVL: *(int*)optval = (int)(sock->conn->pcb.tcp->keep_intvl/1000); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, TCP_KEEPINTVL) = %d\n", s, *(int *)optval)); break; case TCP_KEEPCNT: *(int*)optval = (int)sock->conn->pcb.tcp->keep_cnt; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, TCP_KEEPCNT) = %d\n", s, *(int *)optval)); break; #endif /* LWIP_TCP_KEEPALIVE */ } /* switch (optname) */ break; #endif /* LWIP_TCP */ #if LWIP_UDP && LWIP_UDPLITE /* Level: IPPROTO_UDPLITE */ case IPPROTO_UDPLITE: switch (optname) { case UDPLITE_SEND_CSCOV: *(int*)optval = sock->conn->pcb.udp->chksum_len_tx; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV) = %d\n", s, (*(int*)optval)) ); break; case UDPLITE_RECV_CSCOV: *(int*)optval = sock->conn->pcb.udp->chksum_len_rx; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV) = %d\n", s, (*(int*)optval)) ); break; } /* switch (optname) */ break; #endif /* LWIP_UDP */ } /* switch (level) */ sys_sem_signal(sock->conn->op_completed); } int lwip_setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen) { struct lwip_socket *sock = get_socket(s); int err = ERR_OK; struct lwip_setgetsockopt_data data; if (!sock) return -1; if (NULL == optval) { sock_set_errno(sock, EFAULT); return -1; } /* Do length and type checks for the various options first, to keep it readable. */ switch (level) { /* Level: SOL_SOCKET */ case SOL_SOCKET: switch (optname) { case SO_BROADCAST: /* UNIMPL case SO_DEBUG: */ /* UNIMPL case SO_DONTROUTE: */ case SO_KEEPALIVE: /* UNIMPL case case SO_CONTIMEO: */ /* UNIMPL case case SO_SNDTIMEO: */ #if LWIP_SO_RCVTIMEO case SO_RCVTIMEO: #endif /* LWIP_SO_RCVTIMEO */ #if LWIP_SO_RCVBUF case SO_RCVBUF: #endif /* LWIP_SO_RCVBUF */ /* UNIMPL case SO_OOBINLINE: */ /* UNIMPL case SO_SNDBUF: */ /* UNIMPL case SO_RCVLOWAT: */ /* UNIMPL case SO_SNDLOWAT: */ #if SO_REUSE case SO_REUSEADDR: case SO_REUSEPORT: #endif /* SO_REUSE */ /* UNIMPL case SO_USELOOPBACK: */ if (optlen < sizeof(int)) { err = EINVAL; } break; case SO_NO_CHECK: if (optlen < sizeof(int)) { err = EINVAL; } #if LWIP_UDP if ((sock->conn->type != NETCONN_UDP) || ((udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_UDPLITE) != 0)) { /* this flag is only available for UDP, not for UDP lite */ err = EAFNOSUPPORT; } #endif /* LWIP_UDP */ break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, SOL_SOCKET, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; /* Level: IPPROTO_IP */ case IPPROTO_IP: switch (optname) { /* UNIMPL case IP_HDRINCL: */ /* UNIMPL case IP_RCVDSTADDR: */ /* UNIMPL case IP_RCVIF: */ case IP_TTL: case IP_TOS: if (optlen < sizeof(int)) { err = EINVAL; } break; #if LWIP_IGMP case IP_MULTICAST_TTL: if (optlen < sizeof(u8_t)) { err = EINVAL; } if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) { err = EAFNOSUPPORT; } break; case IP_MULTICAST_IF: if (optlen < sizeof(struct in_addr)) { err = EINVAL; } if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) { err = EAFNOSUPPORT; } break; case IP_ADD_MEMBERSHIP: case IP_DROP_MEMBERSHIP: if (optlen < sizeof(struct ip_mreq)) { err = EINVAL; } if (NETCONNTYPE_GROUP(sock->conn->type) != NETCONN_UDP) { err = EAFNOSUPPORT; } break; #endif /* LWIP_IGMP */ default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; #if LWIP_TCP /* Level: IPPROTO_TCP */ case IPPROTO_TCP: if (optlen < sizeof(int)) { err = EINVAL; break; } /* If this is no TCP socket, ignore any options. */ if (sock->conn->type != NETCONN_TCP) return 0; switch (optname) { case TCP_NODELAY: case TCP_KEEPALIVE: #if LWIP_TCP_KEEPALIVE case TCP_KEEPIDLE: case TCP_KEEPINTVL: case TCP_KEEPCNT: #endif /* LWIP_TCP_KEEPALIVE */ break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; #endif /* LWIP_TCP */ #if LWIP_UDP && LWIP_UDPLITE /* Level: IPPROTO_UDPLITE */ case IPPROTO_UDPLITE: if (optlen < sizeof(int)) { err = EINVAL; break; } /* If this is no UDP lite socket, ignore any options. */ if (sock->conn->type != NETCONN_UDPLITE) return 0; switch (optname) { case UDPLITE_SEND_CSCOV: case UDPLITE_RECV_CSCOV: break; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UNIMPL: optname=0x%x, ..)\n", s, optname)); err = ENOPROTOOPT; } /* switch (optname) */ break; #endif /* LWIP_UDP && LWIP_UDPLITE */ /* UNDEFINED LEVEL */ default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, level=0x%x, UNIMPL: optname=0x%x, ..)\n", s, level, optname)); err = ENOPROTOOPT; } /* switch (level) */ if (err != ERR_OK) { sock_set_errno(sock, err); return -1; } /* Now do the actual option processing */ data.sock = sock; data.level = level; data.optname = optname; data.optval = (void*)optval; data.optlen = &optlen; data.err = err; tcpip_callback(lwip_setsockopt_internal, &data); sys_arch_sem_wait(sock->conn->op_completed, 0); /* maybe lwip_setsockopt_internal has changed err */ err = data.err; sock_set_errno(sock, err); return err ? -1 : 0; } static void lwip_setsockopt_internal(void *arg) { struct lwip_socket *sock; #ifdef LWIP_DEBUG int s; #endif /* LWIP_DEBUG */ int level, optname; const void *optval; struct lwip_setgetsockopt_data *data; LWIP_ASSERT("arg != NULL", arg != NULL); data = (struct lwip_setgetsockopt_data*)arg; sock = data->sock; #ifdef LWIP_DEBUG s = data->s; #endif /* LWIP_DEBUG */ level = data->level; optname = data->optname; optval = data->optval; switch (level) { /* Level: SOL_SOCKET */ case SOL_SOCKET: switch (optname) { /* The option flags */ case SO_BROADCAST: /* UNIMPL case SO_DEBUG: */ /* UNIMPL case SO_DONTROUTE: */ case SO_KEEPALIVE: /* UNIMPL case SO_OOBINCLUDE: */ #if SO_REUSE case SO_REUSEADDR: case SO_REUSEPORT: #endif /* SO_REUSE */ /* UNIMPL case SO_USELOOPBACK: */ if (*(int*)optval) { sock->conn->pcb.ip->so_options |= optname; } else { sock->conn->pcb.ip->so_options &= ~optname; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, SOL_SOCKET, optname=0x%x, ..) -> %s\n", s, optname, (*(int*)optval?"on":"off"))); break; #if LWIP_SO_RCVTIMEO case SO_RCVTIMEO: sock->conn->recv_timeout = ( *(int*)optval ); break; #endif /* LWIP_SO_RCVTIMEO */ #if LWIP_SO_RCVBUF case SO_RCVBUF: sock->conn->recv_bufsize = ( *(int*)optval ); break; #endif /* LWIP_SO_RCVBUF */ #if LWIP_UDP case SO_NO_CHECK: if (*(int*)optval) { udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) | UDP_FLAGS_NOCHKSUM); } else { udp_setflags(sock->conn->pcb.udp, udp_flags(sock->conn->pcb.udp) & ~UDP_FLAGS_NOCHKSUM); } break; #endif /* LWIP_UDP */ } /* switch (optname) */ break; /* Level: IPPROTO_IP */ case IPPROTO_IP: switch (optname) { case IP_TTL: sock->conn->pcb.ip->ttl = (u8_t)(*(int*)optval); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, IP_TTL, ..) -> %d\n", s, sock->conn->pcb.ip->ttl)); break; case IP_TOS: sock->conn->pcb.ip->tos = (u8_t)(*(int*)optval); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, IP_TOS, ..)-> %d\n", s, sock->conn->pcb.ip->tos)); break; #if LWIP_IGMP case IP_MULTICAST_TTL: sock->conn->pcb.udp->ttl = (u8_t)(*(u8_t*)optval); break; case IP_MULTICAST_IF: sock->conn->pcb.udp->multicast_ip.addr = ((struct in_addr*) optval)->s_addr; break; case IP_ADD_MEMBERSHIP: case IP_DROP_MEMBERSHIP: { /* If this is a TCP or a RAW socket, ignore these options. */ struct ip_mreq *imr = (struct ip_mreq *)optval; if(optname == IP_ADD_MEMBERSHIP){ data->err = igmp_joingroup((struct ip_addr*)&(imr->imr_interface.s_addr), (struct ip_addr*)&(imr->imr_multiaddr.s_addr)); } else { data->err = igmp_leavegroup((struct ip_addr*)&(imr->imr_interface.s_addr), (struct ip_addr*)&(imr->imr_multiaddr.s_addr)); } if(data->err != ERR_OK) { data->err = EADDRNOTAVAIL; } } break; #endif /* LWIP_IGMP */ } /* switch (optname) */ break; #if LWIP_TCP /* Level: IPPROTO_TCP */ case IPPROTO_TCP: switch (optname) { case TCP_NODELAY: if (*(int*)optval) { sock->conn->pcb.tcp->flags |= TF_NODELAY; } else { sock->conn->pcb.tcp->flags &= ~TF_NODELAY; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_NODELAY) -> %s\n", s, (*(int *)optval)?"on":"off") ); break; case TCP_KEEPALIVE: sock->conn->pcb.tcp->keep_idle = (u32_t)(*(int*)optval); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPALIVE) -> %"U32_F"\n", s, sock->conn->pcb.tcp->keep_idle)); break; #if LWIP_TCP_KEEPALIVE case TCP_KEEPIDLE: sock->conn->pcb.tcp->keep_idle = 1000*(u32_t)(*(int*)optval); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPIDLE) -> %"U32_F"\n", s, sock->conn->pcb.tcp->keep_idle)); break; case TCP_KEEPINTVL: sock->conn->pcb.tcp->keep_intvl = 1000*(u32_t)(*(int*)optval); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPINTVL) -> %"U32_F"\n", s, sock->conn->pcb.tcp->keep_intvl)); break; case TCP_KEEPCNT: sock->conn->pcb.tcp->keep_cnt = (u32_t)(*(int*)optval); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPCNT) -> %"U32_F"\n", s, sock->conn->pcb.tcp->keep_cnt)); break; #endif /* LWIP_TCP_KEEPALIVE */ } /* switch (optname) */ break; #endif /* LWIP_TCP*/ #if LWIP_UDP && LWIP_UDPLITE /* Level: IPPROTO_UDPLITE */ case IPPROTO_UDPLITE: switch (optname) { case UDPLITE_SEND_CSCOV: if ((*(int*)optval != 0) && (*(int*)optval < 8)) { /* don't allow illegal values! */ sock->conn->pcb.udp->chksum_len_tx = 8; } else { sock->conn->pcb.udp->chksum_len_tx = *(int*)optval; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV) -> %d\n", s, (*(int*)optval)) ); break; case UDPLITE_RECV_CSCOV: if ((*(int*)optval != 0) && (*(int*)optval < 8)) { /* don't allow illegal values! */ sock->conn->pcb.udp->chksum_len_rx = 8; } else { sock->conn->pcb.udp->chksum_len_rx = *(int*)optval; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV) -> %d\n", s, (*(int*)optval)) ); break; } /* switch (optname) */ break; #endif /* LWIP_UDP */ } /* switch (level) */ sys_sem_signal(sock->conn->op_completed); } int lwip_ioctl(int s, long cmd, void *argp) { struct lwip_socket *sock = get_socket(s); u16_t buflen = 0; s16_t recv_avail; if (!sock) return -1; switch (cmd) { case FIONREAD: if (!argp) { sock_set_errno(sock, EINVAL); return -1; } SYS_ARCH_GET(sock->conn->recv_avail, recv_avail); if (recv_avail < 0) recv_avail = 0; *((u16_t*)argp) = (u16_t)recv_avail; /* Check if there is data left from the last recv operation. /maq 041215 */ if (sock->lastdata) { buflen = netbuf_len(sock->lastdata); buflen -= sock->lastoffset; *((u16_t*)argp) += buflen; } LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, FIONREAD, %p) = %"U16_F"\n", s, argp, *((u16_t*)argp))); sock_set_errno(sock, 0); return 0; case FIONBIO: if (argp && *(u32_t*)argp) sock->flags |= O_NONBLOCK; else sock->flags &= ~O_NONBLOCK; LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, FIONBIO, %d)\n", s, !!(sock->flags & O_NONBLOCK))); sock_set_errno(sock, 0); return 0; default: LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, UNIMPL: 0x%lx, %p)\n", s, cmd, argp)); sock_set_errno(sock, ENOSYS); /* not yet implemented */ return -1; } /* switch (cmd) */ } #endif /* LWIP_SOCKET */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/api/tcpip.c000066400000000000000000000365311224274632000221570ustar00rootroot00000000000000/** * @file * Sequential API Main thread module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if !NO_SYS /* don't build if not configured for use in lwipopts.h */ #include "lwip/sys.h" #include "lwip/memp.h" #include "lwip/pbuf.h" #include "lwip/ip_frag.h" #include "lwip/tcp.h" #include "lwip/autoip.h" #include "lwip/dhcp.h" #include "lwip/igmp.h" #include "lwip/dns.h" #include "lwip/tcpip.h" #include "lwip/init.h" #include "netif/etharp.h" #include "netif/ppp_oe.h" /* global variables */ static void (* tcpip_init_done)(void *arg); static void *tcpip_init_done_arg; static sys_mbox_t mbox = SYS_MBOX_NULL; #if LWIP_TCPIP_CORE_LOCKING /** The global semaphore to lock the stack. */ sys_sem_t lock_tcpip_core; #endif /* LWIP_TCPIP_CORE_LOCKING */ #if LWIP_TCP /* global variable that shows if the tcp timer is currently scheduled or not */ static int tcpip_tcp_timer_active; /** * Timer callback function that calls tcp_tmr() and reschedules itself. * * @param arg unused argument */ static void tcpip_tcp_timer(void *arg) { LWIP_UNUSED_ARG(arg); /* call TCP timer handler */ tcp_tmr(); /* timer still needed? */ if (tcp_active_pcbs || tcp_tw_pcbs) { /* restart timer */ sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL); } else { /* disable timer */ tcpip_tcp_timer_active = 0; } } #if !NO_SYS /** * Called from TCP_REG when registering a new PCB: * the reason is to have the TCP timer only running when * there are active (or time-wait) PCBs. */ void tcp_timer_needed(void) { /* timer is off but needed again? */ if (!tcpip_tcp_timer_active && (tcp_active_pcbs || tcp_tw_pcbs)) { /* enable and start timer */ tcpip_tcp_timer_active = 1; sys_timeout(TCP_TMR_INTERVAL, tcpip_tcp_timer, NULL); } } #endif /* !NO_SYS */ #endif /* LWIP_TCP */ #if IP_REASSEMBLY /** * Timer callback function that calls ip_reass_tmr() and reschedules itself. * * @param arg unused argument */ static void ip_reass_timer(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: ip_reass_tmr()\n")); ip_reass_tmr(); sys_timeout(IP_TMR_INTERVAL, ip_reass_timer, NULL); } #endif /* IP_REASSEMBLY */ #if LWIP_ARP /** * Timer callback function that calls etharp_tmr() and reschedules itself. * * @param arg unused argument */ static void arp_timer(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: etharp_tmr()\n")); etharp_tmr(); sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL); } #endif /* LWIP_ARP */ #if LWIP_DHCP /** * Timer callback function that calls dhcp_coarse_tmr() and reschedules itself. * * @param arg unused argument */ static void dhcp_timer_coarse(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: dhcp_coarse_tmr()\n")); dhcp_coarse_tmr(); sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcp_timer_coarse, NULL); } /** * Timer callback function that calls dhcp_fine_tmr() and reschedules itself. * * @param arg unused argument */ static void dhcp_timer_fine(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: dhcp_fine_tmr()\n")); dhcp_fine_tmr(); sys_timeout(DHCP_FINE_TIMER_MSECS, dhcp_timer_fine, NULL); } #endif /* LWIP_DHCP */ #if LWIP_AUTOIP /** * Timer callback function that calls autoip_tmr() and reschedules itself. * * @param arg unused argument */ static void autoip_timer(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: autoip_tmr()\n")); autoip_tmr(); sys_timeout(AUTOIP_TMR_INTERVAL, autoip_timer, NULL); } #endif /* LWIP_AUTOIP */ #if LWIP_IGMP /** * Timer callback function that calls igmp_tmr() and reschedules itself. * * @param arg unused argument */ static void igmp_timer(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: igmp_tmr()\n")); igmp_tmr(); sys_timeout(IGMP_TMR_INTERVAL, igmp_timer, NULL); } #endif /* LWIP_IGMP */ #if LWIP_DNS /** * Timer callback function that calls dns_tmr() and reschedules itself. * * @param arg unused argument */ static void dns_timer(void *arg) { LWIP_UNUSED_ARG(arg); LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip: dns_tmr()\n")); dns_tmr(); sys_timeout(DNS_TMR_INTERVAL, dns_timer, NULL); } #endif /* LWIP_DNS */ /** * The main lwIP thread. This thread has exclusive access to lwIP core functions * (unless access to them is not locked). Other threads communicate with this * thread using message boxes. * * It also starts all the timers to make sure they are running in the right * thread context. * * @param arg unused argument */ static void tcpip_thread(void *arg) { struct tcpip_msg *msg; LWIP_UNUSED_ARG(arg); #if IP_REASSEMBLY sys_timeout(IP_TMR_INTERVAL, ip_reass_timer, NULL); #endif /* IP_REASSEMBLY */ #if LWIP_ARP sys_timeout(ARP_TMR_INTERVAL, arp_timer, NULL); #endif /* LWIP_ARP */ #if LWIP_DHCP sys_timeout(DHCP_COARSE_TIMER_MSECS, dhcp_timer_coarse, NULL); sys_timeout(DHCP_FINE_TIMER_MSECS, dhcp_timer_fine, NULL); #endif /* LWIP_DHCP */ #if LWIP_AUTOIP sys_timeout(AUTOIP_TMR_INTERVAL, autoip_timer, NULL); #endif /* LWIP_AUTOIP */ #if LWIP_IGMP sys_timeout(IGMP_TMR_INTERVAL, igmp_timer, NULL); #endif /* LWIP_IGMP */ #if LWIP_DNS sys_timeout(DNS_TMR_INTERVAL, dns_timer, NULL); #endif /* LWIP_DNS */ if (tcpip_init_done != NULL) { tcpip_init_done(tcpip_init_done_arg); } LOCK_TCPIP_CORE(); while (1) { /* MAIN Loop */ sys_mbox_fetch(mbox, (void *)&msg); switch (msg->type) { #if LWIP_NETCONN case TCPIP_MSG_API: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: API message %p\n", (void *)msg)); msg->msg.apimsg->function(&(msg->msg.apimsg->msg)); break; #endif /* LWIP_NETCONN */ case TCPIP_MSG_INPKT: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: PACKET %p\n", (void *)msg)); #if LWIP_ARP if (msg->msg.inp.netif->flags & NETIF_FLAG_ETHARP) { ethernet_input(msg->msg.inp.p, msg->msg.inp.netif); } else #endif /* LWIP_ARP */ { ip_input(msg->msg.inp.p, msg->msg.inp.netif); } memp_free(MEMP_TCPIP_MSG_INPKT, msg); break; #if LWIP_NETIF_API case TCPIP_MSG_NETIFAPI: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: Netif API message %p\n", (void *)msg)); msg->msg.netifapimsg->function(&(msg->msg.netifapimsg->msg)); break; #endif /* LWIP_NETIF_API */ case TCPIP_MSG_CALLBACK: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: CALLBACK %p\n", (void *)msg)); msg->msg.cb.f(msg->msg.cb.ctx); memp_free(MEMP_TCPIP_MSG_API, msg); break; case TCPIP_MSG_TIMEOUT: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: TIMEOUT %p\n", (void *)msg)); sys_timeout(msg->msg.tmo.msecs, msg->msg.tmo.h, msg->msg.tmo.arg); memp_free(MEMP_TCPIP_MSG_API, msg); break; case TCPIP_MSG_UNTIMEOUT: LWIP_DEBUGF(TCPIP_DEBUG, ("tcpip_thread: UNTIMEOUT %p\n", (void *)msg)); sys_untimeout(msg->msg.tmo.h, msg->msg.tmo.arg); memp_free(MEMP_TCPIP_MSG_API, msg); break; default: break; } } } /** * Pass a received packet to tcpip_thread for input processing * * @param p the received packet, p->payload pointing to the Ethernet header or * to an IP header (if netif doesn't got NETIF_FLAG_ETHARP flag) * @param inp the network interface on which the packet was received */ err_t tcpip_input(struct pbuf *p, struct netif *inp) { struct tcpip_msg *msg; if (mbox != SYS_MBOX_NULL) { msg = memp_malloc(MEMP_TCPIP_MSG_INPKT); if (msg == NULL) { return ERR_MEM; } msg->type = TCPIP_MSG_INPKT; msg->msg.inp.p = p; msg->msg.inp.netif = inp; if (sys_mbox_trypost(mbox, msg) != ERR_OK) { memp_free(MEMP_TCPIP_MSG_INPKT, msg); return ERR_MEM; } return ERR_OK; } return ERR_VAL; } /** * Call a specific function in the thread context of * tcpip_thread for easy access synchronization. * A function called in that way may access lwIP core code * without fearing concurrent access. * * @param f the function to call * @param ctx parameter passed to f * @param block 1 to block until the request is posted, 0 to non-blocking mode * @return ERR_OK if the function was called, another err_t if not */ err_t tcpip_callback_with_block(void (*f)(void *ctx), void *ctx, u8_t block) { struct tcpip_msg *msg; if (mbox != SYS_MBOX_NULL) { msg = memp_malloc(MEMP_TCPIP_MSG_API); if (msg == NULL) { return ERR_MEM; } msg->type = TCPIP_MSG_CALLBACK; msg->msg.cb.f = f; msg->msg.cb.ctx = ctx; if (block) { sys_mbox_post(mbox, msg); } else { if (sys_mbox_trypost(mbox, msg) != ERR_OK) { memp_free(MEMP_TCPIP_MSG_API, msg); return ERR_MEM; } } return ERR_OK; } return ERR_VAL; } /** * call sys_timeout in tcpip_thread * * @param msec time in miliseconds for timeout * @param h function to be called on timeout * @param arg argument to pass to timeout function h * @return ERR_MEM on memory error, ERR_OK otherwise */ err_t tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg) { struct tcpip_msg *msg; if (mbox != SYS_MBOX_NULL) { msg = memp_malloc(MEMP_TCPIP_MSG_API); if (msg == NULL) { return ERR_MEM; } msg->type = TCPIP_MSG_TIMEOUT; msg->msg.tmo.msecs = msecs; msg->msg.tmo.h = h; msg->msg.tmo.arg = arg; sys_mbox_post(mbox, msg); return ERR_OK; } return ERR_VAL; } /** * call sys_untimeout in tcpip_thread * * @param msec time in miliseconds for timeout * @param h function to be called on timeout * @param arg argument to pass to timeout function h * @return ERR_MEM on memory error, ERR_OK otherwise */ err_t tcpip_untimeout(sys_timeout_handler h, void *arg) { struct tcpip_msg *msg; if (mbox != SYS_MBOX_NULL) { msg = memp_malloc(MEMP_TCPIP_MSG_API); if (msg == NULL) { return ERR_MEM; } msg->type = TCPIP_MSG_UNTIMEOUT; msg->msg.tmo.h = h; msg->msg.tmo.arg = arg; sys_mbox_post(mbox, msg); return ERR_OK; } return ERR_VAL; } #if LWIP_NETCONN /** * Call the lower part of a netconn_* function * This function is then running in the thread context * of tcpip_thread and has exclusive access to lwIP core code. * * @param apimsg a struct containing the function to call and its parameters * @return ERR_OK if the function was called, another err_t if not */ err_t tcpip_apimsg(struct api_msg *apimsg) { struct tcpip_msg msg; if (mbox != SYS_MBOX_NULL) { msg.type = TCPIP_MSG_API; msg.msg.apimsg = apimsg; sys_mbox_post(mbox, &msg); sys_arch_sem_wait(apimsg->msg.conn->op_completed, 0); return ERR_OK; } return ERR_VAL; } #if LWIP_TCPIP_CORE_LOCKING /** * Call the lower part of a netconn_* function * This function has exclusive access to lwIP core code by locking it * before the function is called. * * @param apimsg a struct containing the function to call and its parameters * @return ERR_OK (only for compatibility fo tcpip_apimsg()) */ err_t tcpip_apimsg_lock(struct api_msg *apimsg) { LOCK_TCPIP_CORE(); apimsg->function(&(apimsg->msg)); UNLOCK_TCPIP_CORE(); return ERR_OK; } #endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_NETCONN */ #if LWIP_NETIF_API #if !LWIP_TCPIP_CORE_LOCKING /** * Much like tcpip_apimsg, but calls the lower part of a netifapi_* * function. * * @param netifapimsg a struct containing the function to call and its parameters * @return error code given back by the function that was called */ err_t tcpip_netifapi(struct netifapi_msg* netifapimsg) { struct tcpip_msg msg; if (mbox != SYS_MBOX_NULL) { netifapimsg->msg.sem = sys_sem_new(0); if (netifapimsg->msg.sem == SYS_SEM_NULL) { netifapimsg->msg.err = ERR_MEM; return netifapimsg->msg.err; } msg.type = TCPIP_MSG_NETIFAPI; msg.msg.netifapimsg = netifapimsg; sys_mbox_post(mbox, &msg); sys_sem_wait(netifapimsg->msg.sem); sys_sem_free(netifapimsg->msg.sem); return netifapimsg->msg.err; } return ERR_VAL; } #else /* !LWIP_TCPIP_CORE_LOCKING */ /** * Call the lower part of a netifapi_* function * This function has exclusive access to lwIP core code by locking it * before the function is called. * * @param netifapimsg a struct containing the function to call and its parameters * @return ERR_OK (only for compatibility fo tcpip_netifapi()) */ err_t tcpip_netifapi_lock(struct netifapi_msg* netifapimsg) { LOCK_TCPIP_CORE(); netifapimsg->function(&(netifapimsg->msg)); UNLOCK_TCPIP_CORE(); return netifapimsg->msg.err; } #endif /* !LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_NETIF_API */ /** * Initialize this module: * - initialize all sub modules * - start the tcpip_thread * * @param initfunc a function to call when tcpip_thread is running and finished initializing * @param arg argument to pass to initfunc */ void tcpip_init(void (* initfunc)(void *), void *arg) { lwip_init(); tcpip_init_done = initfunc; tcpip_init_done_arg = arg; mbox = sys_mbox_new(TCPIP_MBOX_SIZE); #if LWIP_TCPIP_CORE_LOCKING lock_tcpip_core = sys_sem_new(1); #endif /* LWIP_TCPIP_CORE_LOCKING */ sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO); } /** * Simple callback function used with tcpip_callback to free a pbuf * (pbuf_free has a wrong signature for tcpip_callback) * * @param p The pbuf (chain) to be dereferenced. */ static void pbuf_free_int(void *p) { struct pbuf *q = p; pbuf_free(q); } /** * A simple wrapper function that allows you to free a pbuf from interrupt context. * * @param p The pbuf (chain) to be dereferenced. * @return ERR_OK if callback could be enqueued, an err_t if not */ err_t pbuf_free_callback(struct pbuf *p) { return tcpip_callback_with_block(pbuf_free_int, p, 0); } /** * A simple wrapper function that allows you to free heap memory from * interrupt context. * * @param m the heap memory to free * @return ERR_OK if callback could be enqueued, an err_t if not */ err_t mem_free_callback(void *m) { return tcpip_callback_with_block(mem_free, m, 0); } #endif /* !NO_SYS */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/000077500000000000000000000000001224274632000210435ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/dhcp.c000066400000000000000000001646011224274632000221350ustar00rootroot00000000000000/** * @file * Dynamic Host Configuration Protocol client * */ /* * * Copyright (c) 2001-2004 Leon Woestenberg * Copyright (c) 2001-2004 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is a contribution to the lwIP TCP/IP stack. * The Swedish Institute of Computer Science and Adam Dunkels * are specifically granted permission to redistribute this * source code. * * Author: Leon Woestenberg * * This is a DHCP client for the lwIP TCP/IP stack. It aims to conform * with RFC 2131 and RFC 2132. * * TODO: * - Proper parsing of DHCP messages exploiting file/sname field overloading. * - Add JavaDoc style documentation (API, internals). * - Support for interfaces other than Ethernet (SLIP, PPP, ...) * * Please coordinate changes and requests with Leon Woestenberg * * * Integration with your code: * * In lwip/dhcp.h * #define DHCP_COARSE_TIMER_SECS (recommended 60 which is a minute) * #define DHCP_FINE_TIMER_MSECS (recommended 500 which equals TCP coarse timer) * * Then have your application call dhcp_coarse_tmr() and * dhcp_fine_tmr() on the defined intervals. * * dhcp_start(struct netif *netif); * starts a DHCP client instance which configures the interface by * obtaining an IP address lease and maintaining it. * * Use dhcp_release(netif) to end the lease and use dhcp_stop(netif) * to remove the DHCP client. * */ #include "lwip/opt.h" #if LWIP_DHCP /* don't build if not configured for use in lwipopts.h */ #include "lwip/stats.h" #include "lwip/mem.h" #include "lwip/udp.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/inet.h" #include "lwip/sys.h" #include "lwip/dhcp.h" #include "lwip/autoip.h" #include "lwip/dns.h" #include "netif/etharp.h" #include /** Default for DHCP_GLOBAL_XID is 0xABCD0000 * This can be changed by defining DHCP_GLOBAL_XID and DHCP_GLOBAL_XID_HEADER, e.g. * #define DHCP_GLOBAL_XID_HEADER "stdlib.h" * #define DHCP_GLOBAL_XID rand() */ #ifdef DHCP_GLOBAL_XID_HEADER #include DHCP_GLOBAL_XID_HEADER /* include optional starting XID generation prototypes */ #endif /** DHCP_OPTION_MAX_MSG_SIZE is set to the MTU * MTU is checked to be big enough in dhcp_start */ #define DHCP_MAX_MSG_LEN(netif) (netif->mtu) #define DHCP_MAX_MSG_LEN_MIN_REQUIRED 576 /* DHCP client state machine functions */ static void dhcp_handle_ack(struct netif *netif); static void dhcp_handle_nak(struct netif *netif); static void dhcp_handle_offer(struct netif *netif); static err_t dhcp_discover(struct netif *netif); static err_t dhcp_select(struct netif *netif); static void dhcp_check(struct netif *netif); static void dhcp_bind(struct netif *netif); #if DHCP_DOES_ARP_CHECK static err_t dhcp_decline(struct netif *netif); #endif /* DHCP_DOES_ARP_CHECK */ static err_t dhcp_rebind(struct netif *netif); static void dhcp_set_state(struct dhcp *dhcp, u8_t new_state); /* receive, unfold, parse and free incoming messages */ static void dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port); static err_t dhcp_unfold_reply(struct dhcp *dhcp); static u8_t *dhcp_get_option_ptr(struct dhcp *dhcp, u8_t option_type); static u8_t dhcp_get_option_byte(u8_t *ptr); #if 0 static u16_t dhcp_get_option_short(u8_t *ptr); #endif static u32_t dhcp_get_option_long(u8_t *ptr); static void dhcp_free_reply(struct dhcp *dhcp); /* set the DHCP timers */ static void dhcp_timeout(struct netif *netif); static void dhcp_t1_timeout(struct netif *netif); static void dhcp_t2_timeout(struct netif *netif); /* build outgoing messages */ /* create a DHCP request, fill in common headers */ static err_t dhcp_create_request(struct netif *netif); /* free a DHCP request */ static void dhcp_delete_request(struct netif *netif); /* add a DHCP option (type, then length in bytes) */ static void dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len); /* add option values */ static void dhcp_option_byte(struct dhcp *dhcp, u8_t value); static void dhcp_option_short(struct dhcp *dhcp, u16_t value); static void dhcp_option_long(struct dhcp *dhcp, u32_t value); /* always add the DHCP options trailer to end and pad */ static void dhcp_option_trailer(struct dhcp *dhcp); /** * Back-off the DHCP client (because of a received NAK response). * * Back-off the DHCP client because of a received NAK. Receiving a * NAK means the client asked for something non-sensible, for * example when it tries to renew a lease obtained on another network. * * We clear any existing set IP address and restart DHCP negotiation * afresh (as per RFC2131 3.2.3). * * @param netif the netif under DHCP control */ static void dhcp_handle_nak(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_handle_nak(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); /* Set the interface down since the address must no longer be used, as per RFC2131 */ netif_set_down(netif); /* remove IP address from interface */ netif_set_ipaddr(netif, IP_ADDR_ANY); netif_set_gw(netif, IP_ADDR_ANY); netif_set_netmask(netif, IP_ADDR_ANY); /* Change to a defined state */ dhcp_set_state(dhcp, DHCP_BACKING_OFF); /* We can immediately restart discovery */ dhcp_discover(netif); } /** * Checks if the offered IP address is already in use. * * It does so by sending an ARP request for the offered address and * entering CHECKING state. If no ARP reply is received within a small * interval, the address is assumed to be free for use by us. * * @param netif the netif under DHCP control */ static void dhcp_check(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result; u16_t msecs; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_check(netif=%p) %c%c\n", (void *)netif, (s16_t)netif->name[0], (s16_t)netif->name[1])); dhcp_set_state(dhcp, DHCP_CHECKING); /* create an ARP query for the offered IP address, expecting that no host responds, as the IP address should not be in use. */ result = etharp_query(netif, &dhcp->offered_ip_addr, NULL); if (result != ERR_OK) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_check: could not perform ARP query\n")); } dhcp->tries++; msecs = 500; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_check(): set request timeout %"U16_F" msecs\n", msecs)); } /** * Remember the configuration offered by a DHCP server. * * @param netif the netif under DHCP control */ static void dhcp_handle_offer(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; /* obtain the server address */ u8_t *option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_SERVER_ID); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_handle_offer(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); if (option_ptr != NULL) { dhcp->server_ip_addr.addr = htonl(dhcp_get_option_long(&option_ptr[2])); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): server 0x%08"X32_F"\n", dhcp->server_ip_addr.addr)); /* remember offered address */ ip_addr_set(&dhcp->offered_ip_addr, (struct ip_addr *)&dhcp->msg_in->yiaddr); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_handle_offer(): offer for 0x%08"X32_F"\n", dhcp->offered_ip_addr.addr)); dhcp_select(netif); } } /** * Select a DHCP server offer out of all offers. * * Simply select the first offer received. * * @param netif the netif under DHCP control * @return lwIP specific error (see error.h) */ static err_t dhcp_select(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result; u16_t msecs; #if LWIP_NETIF_HOSTNAME const char *p; #endif /* LWIP_NETIF_HOSTNAME */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_select(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); dhcp_set_state(dhcp, DHCP_REQUESTING); /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_REQUEST); dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif)); /* MUST request the offered IP address */ dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4); dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr)); dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4); dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr)); dhcp_option(dhcp, DHCP_OPTION_PARAMETER_REQUEST_LIST, 4/*num options*/); dhcp_option_byte(dhcp, DHCP_OPTION_SUBNET_MASK); dhcp_option_byte(dhcp, DHCP_OPTION_ROUTER); dhcp_option_byte(dhcp, DHCP_OPTION_BROADCAST); dhcp_option_byte(dhcp, DHCP_OPTION_DNS_SERVER); #if LWIP_NETIF_HOSTNAME p = (const char*)netif->hostname; if (p != NULL) { dhcp_option(dhcp, DHCP_OPTION_HOSTNAME, strlen(p)); while (*p) { dhcp_option_byte(dhcp, *p++); } } #endif /* LWIP_NETIF_HOSTNAME */ dhcp_option_trailer(dhcp); /* shrink the pbuf to the actual content length */ pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); /* TODO: we really should bind to a specific local interface here but we cannot specify an unconfigured netif as it is addressless */ /* send broadcast to any DHCP server */ udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif); /* reconnect to any (or to server here?!) */ udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT); dhcp_delete_request(netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_select: REQUESTING\n")); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_select: could not allocate DHCP request\n")); } dhcp->tries++; msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_select(): set request timeout %"U16_F" msecs\n", msecs)); return result; } /** * The DHCP timer that checks for lease renewal/rebind timeouts. * */ void dhcp_coarse_tmr() { struct netif *netif = netif_list; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_coarse_tmr()\n")); /* iterate through all network interfaces */ while (netif != NULL) { /* only act on DHCP configured interfaces */ if (netif->dhcp != NULL) { /* timer is active (non zero), and triggers (zeroes) now? */ if (netif->dhcp->t2_timeout-- == 1) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t2 timeout\n")); /* this clients' rebind timeout triggered */ dhcp_t2_timeout(netif); /* timer is active (non zero), and triggers (zeroes) now */ } else if (netif->dhcp->t1_timeout-- == 1) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_coarse_tmr(): t1 timeout\n")); /* this clients' renewal timeout triggered */ dhcp_t1_timeout(netif); } } /* proceed to next netif */ netif = netif->next; } } /** * DHCP transaction timeout handling * * A DHCP server is expected to respond within a short period of time. * This timer checks whether an outstanding DHCP request is timed out. * */ void dhcp_fine_tmr() { struct netif *netif = netif_list; /* loop through netif's */ while (netif != NULL) { /* only act on DHCP configured interfaces */ if (netif->dhcp != NULL) { /* timer is active (non zero), and is about to trigger now */ if (netif->dhcp->request_timeout > 1) { netif->dhcp->request_timeout--; } else if (netif->dhcp->request_timeout == 1) { netif->dhcp->request_timeout--; /* { netif->dhcp->request_timeout == 0 } */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_fine_tmr(): request timeout\n")); /* this clients' request timeout triggered */ dhcp_timeout(netif); } } /* proceed to next network interface */ netif = netif->next; } } /** * A DHCP negotiation transaction, or ARP request, has timed out. * * The timer that was started with the DHCP or ARP request has * timed out, indicating no response was received in time. * * @param netif the netif under DHCP control */ static void dhcp_timeout(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_timeout()\n")); /* back-off period has passed, or server selection timed out */ if ((dhcp->state == DHCP_BACKING_OFF) || (dhcp->state == DHCP_SELECTING)) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_timeout(): restarting discovery\n")); dhcp_discover(netif); /* receiving the requested lease timed out */ } else if (dhcp->state == DHCP_REQUESTING) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, DHCP request timed out\n")); if (dhcp->tries <= 5) { dhcp_select(netif); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REQUESTING, releasing, restarting\n")); dhcp_release(netif); dhcp_discover(netif); } /* received no ARP reply for the offered address (which is good) */ } else if (dhcp->state == DHCP_CHECKING) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): CHECKING, ARP request timed out\n")); if (dhcp->tries <= 1) { dhcp_check(netif); /* no ARP replies on the offered address, looks like the IP address is indeed free */ } else { /* bind the interface to the offered address */ dhcp_bind(netif); } } /* did not get response to renew request? */ else if (dhcp->state == DHCP_RENEWING) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RENEWING, DHCP request timed out\n")); /* just retry renewal */ /* note that the rebind timer will eventually time-out if renew does not work */ dhcp_renew(netif); /* did not get response to rebind request? */ } else if (dhcp->state == DHCP_REBINDING) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): REBINDING, DHCP request timed out\n")); if (dhcp->tries <= 8) { dhcp_rebind(netif); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_timeout(): RELEASING, DISCOVERING\n")); dhcp_release(netif); dhcp_discover(netif); } } } /** * The renewal period has timed out. * * @param netif the netif under DHCP control */ static void dhcp_t1_timeout(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_t1_timeout()\n")); if ((dhcp->state == DHCP_REQUESTING) || (dhcp->state == DHCP_BOUND) || (dhcp->state == DHCP_RENEWING)) { /* just retry to renew - note that the rebind timer (t2) will * eventually time-out if renew tries fail. */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t1_timeout(): must renew\n")); dhcp_renew(netif); } } /** * The rebind period has timed out. * * @param netif the netif under DHCP control */ static void dhcp_t2_timeout(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t2_timeout()\n")); if ((dhcp->state == DHCP_REQUESTING) || (dhcp->state == DHCP_BOUND) || (dhcp->state == DHCP_RENEWING)) { /* just retry to rebind */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_t2_timeout(): must rebind\n")); dhcp_rebind(netif); } } /** * Handle a DHCP ACK packet * * @param netif the netif under DHCP control */ static void dhcp_handle_ack(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; u8_t *option_ptr; /* clear options we might not get from the ACK */ dhcp->offered_sn_mask.addr = 0; dhcp->offered_gw_addr.addr = 0; dhcp->offered_bc_addr.addr = 0; /* lease time given? */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_LEASE_TIME); if (option_ptr != NULL) { /* remember offered lease time */ dhcp->offered_t0_lease = dhcp_get_option_long(option_ptr + 2); } /* renewal period given? */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_T1); if (option_ptr != NULL) { /* remember given renewal period */ dhcp->offered_t1_renew = dhcp_get_option_long(option_ptr + 2); } else { /* calculate safe periods for renewal */ dhcp->offered_t1_renew = dhcp->offered_t0_lease / 2; } /* renewal period given? */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_T2); if (option_ptr != NULL) { /* remember given rebind period */ dhcp->offered_t2_rebind = dhcp_get_option_long(option_ptr + 2); } else { /* calculate safe periods for rebinding */ dhcp->offered_t2_rebind = dhcp->offered_t0_lease; } /* (y)our internet address */ ip_addr_set(&dhcp->offered_ip_addr, &dhcp->msg_in->yiaddr); /** * Patch #1308 * TODO: we must check if the file field is not overloaded by DHCP options! */ #if 0 /* boot server address */ ip_addr_set(&dhcp->offered_si_addr, &dhcp->msg_in->siaddr); /* boot file name */ if (dhcp->msg_in->file[0]) { dhcp->boot_file_name = mem_malloc(strlen(dhcp->msg_in->file) + 1); strcpy(dhcp->boot_file_name, dhcp->msg_in->file); } #endif /* subnet mask */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_SUBNET_MASK); /* subnet mask given? */ if (option_ptr != NULL) { dhcp->offered_sn_mask.addr = htonl(dhcp_get_option_long(&option_ptr[2])); } /* gateway router */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_ROUTER); if (option_ptr != NULL) { dhcp->offered_gw_addr.addr = htonl(dhcp_get_option_long(&option_ptr[2])); } /* broadcast address */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_BROADCAST); if (option_ptr != NULL) { dhcp->offered_bc_addr.addr = htonl(dhcp_get_option_long(&option_ptr[2])); } /* DNS servers */ option_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_DNS_SERVER); if (option_ptr != NULL) { u8_t n; dhcp->dns_count = dhcp_get_option_byte(&option_ptr[1]) / (u32_t)sizeof(struct ip_addr); /* limit to at most DHCP_MAX_DNS DNS servers */ if (dhcp->dns_count > DHCP_MAX_DNS) dhcp->dns_count = DHCP_MAX_DNS; for (n = 0; n < dhcp->dns_count; n++) { dhcp->offered_dns_addr[n].addr = htonl(dhcp_get_option_long(&option_ptr[2 + n * 4])); #if LWIP_DNS dns_setserver( n, (struct ip_addr *)(&(dhcp->offered_dns_addr[n].addr))); #endif /* LWIP_DNS */ } #if LWIP_DNS dns_setserver( n, (struct ip_addr *)(&ip_addr_any)); #endif /* LWIP_DNS */ } } /** * Start DHCP negotiation for a network interface. * * If no DHCP client instance was attached to this interface, * a new client is created first. If a DHCP client instance * was already present, it restarts negotiation. * * @param netif The lwIP network interface * @return lwIP error code * - ERR_OK - No error * - ERR_MEM - Out of memory */ err_t dhcp_start(struct netif *netif) { struct dhcp *dhcp; err_t result = ERR_OK; LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG;); dhcp = netif->dhcp; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); /* Remove the flag that says this netif is handled by DHCP, it is set when we succeeded starting. */ netif->flags &= ~NETIF_FLAG_DHCP; /* check MTU of the netif */ if (netif->mtu < DHCP_MAX_MSG_LEN_MIN_REQUIRED) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): Cannot use this netif with DHCP: MTU is too small\n")); return ERR_MEM; } /* no DHCP client attached yet? */ if (dhcp == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting new DHCP client\n")); dhcp = mem_malloc(sizeof(struct dhcp)); if (dhcp == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not allocate dhcp\n")); return ERR_MEM; } /* store this dhcp client in the netif */ netif->dhcp = dhcp; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): allocated dhcp")); /* already has DHCP client attached */ } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 3, ("dhcp_start(): restarting DHCP configuration\n")); if (dhcp->pcb != NULL) { udp_remove(dhcp->pcb); } if (dhcp->p != NULL) { pbuf_free(dhcp->p); } } /* clear data structure */ memset(dhcp, 0, sizeof(struct dhcp)); /* allocate UDP PCB */ dhcp->pcb = udp_new(); if (dhcp->pcb == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): could not obtain pcb\n")); mem_free((void *)dhcp); netif->dhcp = dhcp = NULL; return ERR_MEM; } #if IP_SOF_BROADCAST dhcp->pcb->so_options|=SOF_BROADCAST; #endif /* IP_SOF_BROADCAST */ /* set up local and remote port for the pcb */ udp_bind(dhcp->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT); udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT); /* set up the recv callback and argument */ udp_recv(dhcp->pcb, dhcp_recv, netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): starting DHCP configuration\n")); /* (re)start the DHCP negotiation */ result = dhcp_discover(netif); if (result != ERR_OK) { /* free resources allocated above */ dhcp_stop(netif); return ERR_MEM; } /* Set the flag that says this netif is handled by DHCP. */ netif->flags |= NETIF_FLAG_DHCP; return result; } /** * Inform a DHCP server of our manual configuration. * * This informs DHCP servers of our fixed IP address configuration * by sending an INFORM message. It does not involve DHCP address * configuration, it is just here to be nice to the network. * * @param netif The lwIP network interface */ void dhcp_inform(struct netif *netif) { struct dhcp *dhcp, *old_dhcp = netif->dhcp; err_t result = ERR_OK; dhcp = mem_malloc(sizeof(struct dhcp)); if (dhcp == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_inform(): could not allocate dhcp\n")); return; } netif->dhcp = dhcp; memset(dhcp, 0, sizeof(struct dhcp)); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_inform(): allocated dhcp\n")); dhcp->pcb = udp_new(); if (dhcp->pcb == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_inform(): could not obtain pcb")); mem_free((void *)dhcp); return; } LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_inform(): created new udp pcb\n")); /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_INFORM); dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif)); dhcp_option_trailer(dhcp); pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); #if IP_SOF_BROADCAST dhcp->pcb->so_options|=SOF_BROADCAST; #endif /* IP_SOF_BROADCAST */ udp_bind(dhcp->pcb, IP_ADDR_ANY, DHCP_CLIENT_PORT); udp_connect(dhcp->pcb, IP_ADDR_BROADCAST, DHCP_SERVER_PORT); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_inform: INFORMING\n")); udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif); udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT); dhcp_delete_request(netif); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_inform: could not allocate DHCP request\n")); } if (dhcp->pcb != NULL) { udp_remove(dhcp->pcb); } dhcp->pcb = NULL; mem_free((void *)dhcp); netif->dhcp = old_dhcp; } #if DHCP_DOES_ARP_CHECK /** * Match an ARP reply with the offered IP address. * * @param netif the network interface on which the reply was received * @param addr The IP address we received a reply from */ void dhcp_arp_reply(struct netif *netif, struct ip_addr *addr) { LWIP_ERROR("netif != NULL", (netif != NULL), return;); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_arp_reply()\n")); /* is a DHCP client doing an ARP check? */ if ((netif->dhcp != NULL) && (netif->dhcp->state == DHCP_CHECKING)) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_arp_reply(): CHECKING, arp reply for 0x%08"X32_F"\n", addr->addr)); /* did a host respond with the address we were offered by the DHCP server? */ if (ip_addr_cmp(addr, &netif->dhcp->offered_ip_addr)) { /* we will not accept the offered address */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("dhcp_arp_reply(): arp reply matched with offered address, declining\n")); dhcp_decline(netif); } } } /** * Decline an offered lease. * * Tell the DHCP server we do not accept the offered address. * One reason to decline the lease is when we find out the address * is already in use by another host (through ARP). * * @param netif the netif under DHCP control */ static err_t dhcp_decline(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result = ERR_OK; u16_t msecs; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_decline()\n")); dhcp_set_state(dhcp, DHCP_BACKING_OFF); /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_DECLINE); dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4); dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr)); dhcp_option_trailer(dhcp); /* resize pbuf to reflect true size of options */ pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); /* @todo: should we really connect here? we are performing sendto() */ udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT); /* per section 4.4.4, broadcast DECLINE messages */ udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif); dhcp_delete_request(netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_decline: BACKING OFF\n")); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_decline: could not allocate DHCP request\n")); } dhcp->tries++; msecs = 10*1000; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_decline(): set request timeout %"U16_F" msecs\n", msecs)); return result; } #endif /** * Start the DHCP process, discover a DHCP server. * * @param netif the netif under DHCP control */ static err_t dhcp_discover(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result = ERR_OK; u16_t msecs; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_discover()\n")); ip_addr_set(&dhcp->offered_ip_addr, IP_ADDR_ANY); dhcp_set_state(dhcp, DHCP_SELECTING); /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: making request\n")); dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_DISCOVER); dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif)); dhcp_option(dhcp, DHCP_OPTION_PARAMETER_REQUEST_LIST, 4/*num options*/); dhcp_option_byte(dhcp, DHCP_OPTION_SUBNET_MASK); dhcp_option_byte(dhcp, DHCP_OPTION_ROUTER); dhcp_option_byte(dhcp, DHCP_OPTION_BROADCAST); dhcp_option_byte(dhcp, DHCP_OPTION_DNS_SERVER); dhcp_option_trailer(dhcp); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: realloc()ing\n")); pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: sendto(DISCOVER, IP_ADDR_BROADCAST, DHCP_SERVER_PORT)\n")); udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_discover: deleting()ing\n")); dhcp_delete_request(netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover: SELECTING\n")); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_discover: could not allocate DHCP request\n")); } dhcp->tries++; #if LWIP_DHCP_AUTOIP_COOP if(dhcp->tries >= LWIP_DHCP_AUTOIP_COOP_TRIES && dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_OFF) { dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_ON; autoip_start(netif); } #endif /* LWIP_DHCP_AUTOIP_COOP */ msecs = (dhcp->tries < 6 ? 1 << dhcp->tries : 60) * 1000; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_discover(): set request timeout %"U16_F" msecs\n", msecs)); return result; } /** * Bind the interface to the offered IP address. * * @param netif network interface to bind to the offered address */ static void dhcp_bind(struct netif *netif) { u32_t timeout; struct dhcp *dhcp; struct ip_addr sn_mask, gw_addr; LWIP_ERROR("dhcp_bind: netif != NULL", (netif != NULL), return;); dhcp = netif->dhcp; LWIP_ERROR("dhcp_bind: dhcp != NULL", (dhcp != NULL), return;); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_bind(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); /* temporary DHCP lease? */ if (dhcp->offered_t1_renew != 0xffffffffUL) { /* set renewal period timer */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t1 renewal timer %"U32_F" secs\n", dhcp->offered_t1_renew)); timeout = (dhcp->offered_t1_renew + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; if(timeout > 0xffff) { timeout = 0xffff; } dhcp->t1_timeout = (u16_t)timeout; if (dhcp->t1_timeout == 0) { dhcp->t1_timeout = 1; } LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t1_renew*1000)); } /* set renewal period timer */ if (dhcp->offered_t2_rebind != 0xffffffffUL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_bind(): t2 rebind timer %"U32_F" secs\n", dhcp->offered_t2_rebind)); timeout = (dhcp->offered_t2_rebind + DHCP_COARSE_TIMER_SECS / 2) / DHCP_COARSE_TIMER_SECS; if(timeout > 0xffff) { timeout = 0xffff; } dhcp->t2_timeout = (u16_t)timeout; if (dhcp->t2_timeout == 0) { dhcp->t2_timeout = 1; } LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_bind(): set request timeout %"U32_F" msecs\n", dhcp->offered_t2_rebind*1000)); } /* copy offered network mask */ ip_addr_set(&sn_mask, &dhcp->offered_sn_mask); /* subnet mask not given? */ /* TODO: this is not a valid check. what if the network mask is 0? */ if (sn_mask.addr == 0) { /* choose a safe subnet mask given the network class */ u8_t first_octet = ip4_addr1(&sn_mask); if (first_octet <= 127) { sn_mask.addr = htonl(0xff000000); } else if (first_octet >= 192) { sn_mask.addr = htonl(0xffffff00); } else { sn_mask.addr = htonl(0xffff0000); } } ip_addr_set(&gw_addr, &dhcp->offered_gw_addr); /* gateway address not given? */ if (gw_addr.addr == 0) { /* copy network address */ gw_addr.addr = (dhcp->offered_ip_addr.addr & sn_mask.addr); /* use first host address on network as gateway */ gw_addr.addr |= htonl(0x00000001); } #if LWIP_DHCP_AUTOIP_COOP if(dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) { autoip_stop(netif); dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF; } #endif /* LWIP_DHCP_AUTOIP_COOP */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): IP: 0x%08"X32_F"\n", dhcp->offered_ip_addr.addr)); netif_set_ipaddr(netif, &dhcp->offered_ip_addr); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): SN: 0x%08"X32_F"\n", sn_mask.addr)); netif_set_netmask(netif, &sn_mask); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_STATE, ("dhcp_bind(): GW: 0x%08"X32_F"\n", gw_addr.addr)); netif_set_gw(netif, &gw_addr); /* bring the interface up */ netif_set_up(netif); /* netif is now bound to DHCP leased address */ dhcp_set_state(dhcp, DHCP_BOUND); } /** * Renew an existing DHCP lease at the involved DHCP server. * * @param netif network interface which must renew its lease */ err_t dhcp_renew(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result; u16_t msecs; #if LWIP_NETIF_HOSTNAME const char *p; #endif /* LWIP_NETIF_HOSTNAME */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_renew()\n")); dhcp_set_state(dhcp, DHCP_RENEWING); /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_REQUEST); dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif)); #if LWIP_NETIF_HOSTNAME p = (const char*)netif->hostname; if (p != NULL) { dhcp_option(dhcp, DHCP_OPTION_HOSTNAME, strlen(p)); while (*p) { dhcp_option_byte(dhcp, *p++); } } #endif /* LWIP_NETIF_HOSTNAME */ #if 0 dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4); dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr)); #endif #if 0 dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4); dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr)); #endif /* append DHCP message trailer */ dhcp_option_trailer(dhcp); pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); udp_connect(dhcp->pcb, &dhcp->server_ip_addr, DHCP_SERVER_PORT); udp_sendto_if(dhcp->pcb, dhcp->p_out, &dhcp->server_ip_addr, DHCP_SERVER_PORT, netif); dhcp_delete_request(netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew: RENEWING\n")); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_renew: could not allocate DHCP request\n")); } dhcp->tries++; /* back-off on retries, but to a maximum of 20 seconds */ msecs = dhcp->tries < 10 ? dhcp->tries * 2000 : 20 * 1000; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_renew(): set request timeout %"U16_F" msecs\n", msecs)); return result; } /** * Rebind with a DHCP server for an existing DHCP lease. * * @param netif network interface which must rebind with a DHCP server */ static err_t dhcp_rebind(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result; u16_t msecs; #if LWIP_NETIF_HOSTNAME const char *p; #endif /* LWIP_NETIF_HOSTNAME */ LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind()\n")); dhcp_set_state(dhcp, DHCP_REBINDING); /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_REQUEST); dhcp_option(dhcp, DHCP_OPTION_MAX_MSG_SIZE, DHCP_OPTION_MAX_MSG_SIZE_LEN); dhcp_option_short(dhcp, DHCP_MAX_MSG_LEN(netif)); #if LWIP_NETIF_HOSTNAME p = (const char*)netif->hostname; if (p != NULL) { dhcp_option(dhcp, DHCP_OPTION_HOSTNAME, strlen(p)); while (*p) { dhcp_option_byte(dhcp, *p++); } } #endif /* LWIP_NETIF_HOSTNAME */ #if 0 dhcp_option(dhcp, DHCP_OPTION_REQUESTED_IP, 4); dhcp_option_long(dhcp, ntohl(dhcp->offered_ip_addr.addr)); dhcp_option(dhcp, DHCP_OPTION_SERVER_ID, 4); dhcp_option_long(dhcp, ntohl(dhcp->server_ip_addr.addr)); #endif dhcp_option_trailer(dhcp); pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); /* broadcast to server */ udp_connect(dhcp->pcb, IP_ADDR_ANY, DHCP_SERVER_PORT); udp_sendto_if(dhcp->pcb, dhcp->p_out, IP_ADDR_BROADCAST, DHCP_SERVER_PORT, netif); dhcp_delete_request(netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind: REBINDING\n")); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_rebind: could not allocate DHCP request\n")); } dhcp->tries++; msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_rebind(): set request timeout %"U16_F" msecs\n", msecs)); return result; } /** * Release a DHCP lease. * * @param netif network interface which must release its lease */ err_t dhcp_release(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; err_t result; u16_t msecs; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_release()\n")); /* idle DHCP client */ dhcp_set_state(dhcp, DHCP_OFF); /* clean old DHCP offer */ dhcp->server_ip_addr.addr = 0; dhcp->offered_ip_addr.addr = dhcp->offered_sn_mask.addr = 0; dhcp->offered_gw_addr.addr = dhcp->offered_bc_addr.addr = 0; dhcp->offered_t0_lease = dhcp->offered_t1_renew = dhcp->offered_t2_rebind = 0; dhcp->dns_count = 0; /* create and initialize the DHCP message header */ result = dhcp_create_request(netif); if (result == ERR_OK) { dhcp_option(dhcp, DHCP_OPTION_MESSAGE_TYPE, DHCP_OPTION_MESSAGE_TYPE_LEN); dhcp_option_byte(dhcp, DHCP_RELEASE); dhcp_option_trailer(dhcp); pbuf_realloc(dhcp->p_out, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN + dhcp->options_out_len); udp_connect(dhcp->pcb, &dhcp->server_ip_addr, DHCP_SERVER_PORT); udp_sendto_if(dhcp->pcb, dhcp->p_out, &dhcp->server_ip_addr, DHCP_SERVER_PORT, netif); dhcp_delete_request(netif); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release: RELEASED, DHCP_OFF\n")); } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_release: could not allocate DHCP request\n")); } dhcp->tries++; msecs = dhcp->tries < 10 ? dhcp->tries * 1000 : 10 * 1000; dhcp->request_timeout = (msecs + DHCP_FINE_TIMER_MSECS - 1) / DHCP_FINE_TIMER_MSECS; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("dhcp_release(): set request timeout %"U16_F" msecs\n", msecs)); /* bring the interface down */ netif_set_down(netif); /* remove IP address from interface */ netif_set_ipaddr(netif, IP_ADDR_ANY); netif_set_gw(netif, IP_ADDR_ANY); netif_set_netmask(netif, IP_ADDR_ANY); /* TODO: netif_down(netif); */ return result; } /** * Remove the DHCP client from the interface. * * @param netif The network interface to stop DHCP on */ void dhcp_stop(struct netif *netif) { struct dhcp *dhcp = netif->dhcp; LWIP_ERROR("dhcp_stop: netif != NULL", (netif != NULL), return;); /* Remove the flag that says this netif is handled by DHCP. */ netif->flags &= ~NETIF_FLAG_DHCP; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_stop()\n")); /* netif is DHCP configured? */ if (dhcp != NULL) { #if LWIP_DHCP_AUTOIP_COOP if(dhcp->autoip_coop_state == DHCP_AUTOIP_COOP_STATE_ON) { autoip_stop(netif); dhcp->autoip_coop_state = DHCP_AUTOIP_COOP_STATE_OFF; } #endif /* LWIP_DHCP_AUTOIP_COOP */ if (dhcp->pcb != NULL) { udp_remove(dhcp->pcb); dhcp->pcb = NULL; } if (dhcp->p != NULL) { pbuf_free(dhcp->p); dhcp->p = NULL; } /* free unfolded reply */ dhcp_free_reply(dhcp); mem_free((void *)dhcp); netif->dhcp = NULL; } } /* * Set the DHCP state of a DHCP client. * * If the state changed, reset the number of tries. * * TODO: we might also want to reset the timeout here? */ static void dhcp_set_state(struct dhcp *dhcp, u8_t new_state) { if (new_state != dhcp->state) { dhcp->state = new_state; dhcp->tries = 0; } } /* * Concatenate an option type and length field to the outgoing * DHCP message. * */ static void dhcp_option(struct dhcp *dhcp, u8_t option_type, u8_t option_len) { LWIP_ASSERT("dhcp_option: dhcp->options_out_len + 2 + option_len <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U + option_len <= DHCP_OPTIONS_LEN); dhcp->msg_out->options[dhcp->options_out_len++] = option_type; dhcp->msg_out->options[dhcp->options_out_len++] = option_len; } /* * Concatenate a single byte to the outgoing DHCP message. * */ static void dhcp_option_byte(struct dhcp *dhcp, u8_t value) { LWIP_ASSERT("dhcp_option_byte: dhcp->options_out_len < DHCP_OPTIONS_LEN", dhcp->options_out_len < DHCP_OPTIONS_LEN); dhcp->msg_out->options[dhcp->options_out_len++] = value; } static void dhcp_option_short(struct dhcp *dhcp, u16_t value) { LWIP_ASSERT("dhcp_option_short: dhcp->options_out_len + 2 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 2U <= DHCP_OPTIONS_LEN); dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff00U) >> 8); dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t) (value & 0x00ffU); } static void dhcp_option_long(struct dhcp *dhcp, u32_t value) { LWIP_ASSERT("dhcp_option_long: dhcp->options_out_len + 4 <= DHCP_OPTIONS_LEN", dhcp->options_out_len + 4U <= DHCP_OPTIONS_LEN); dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0xff000000UL) >> 24); dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x00ff0000UL) >> 16); dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x0000ff00UL) >> 8); dhcp->msg_out->options[dhcp->options_out_len++] = (u8_t)((value & 0x000000ffUL)); } /** * Extract the DHCP message and the DHCP options. * * Extract the DHCP message and the DHCP options, each into a contiguous * piece of memory. As a DHCP message is variable sized by its options, * and also allows overriding some fields for options, the easy approach * is to first unfold the options into a conitguous piece of memory, and * use that further on. * */ static err_t dhcp_unfold_reply(struct dhcp *dhcp) { u16_t ret; LWIP_ERROR("dhcp != NULL", (dhcp != NULL), return ERR_ARG;); LWIP_ERROR("dhcp->p != NULL", (dhcp->p != NULL), return ERR_VAL;); /* free any left-overs from previous unfolds */ dhcp_free_reply(dhcp); /* options present? */ if (dhcp->p->tot_len > (sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN)) { dhcp->options_in_len = dhcp->p->tot_len - (sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN); dhcp->options_in = mem_malloc(dhcp->options_in_len); if (dhcp->options_in == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_unfold_reply(): could not allocate dhcp->options\n")); return ERR_MEM; } } dhcp->msg_in = mem_malloc(sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN); if (dhcp->msg_in == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_unfold_reply(): could not allocate dhcp->msg_in\n")); mem_free((void *)dhcp->options_in); dhcp->options_in = NULL; return ERR_MEM; } /** copy the DHCP message without options */ ret = pbuf_copy_partial(dhcp->p, dhcp->msg_in, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN, 0); LWIP_ASSERT("ret == sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN", ret == sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_unfold_reply(): copied %"U16_F" bytes into dhcp->msg_in[]\n", sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN)); if (dhcp->options_in != NULL) { /** copy the DHCP options */ ret = pbuf_copy_partial(dhcp->p, dhcp->options_in, dhcp->options_in_len, sizeof(struct dhcp_msg) - DHCP_OPTIONS_LEN); LWIP_ASSERT("ret == dhcp->options_in_len", ret == dhcp->options_in_len); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_unfold_reply(): copied %"U16_F" bytes to dhcp->options_in[]\n", dhcp->options_in_len)); } LWIP_UNUSED_ARG(ret); return ERR_OK; } /** * Free the incoming DHCP message including contiguous copy of * its DHCP options. * */ static void dhcp_free_reply(struct dhcp *dhcp) { if (dhcp->msg_in != NULL) { mem_free((void *)dhcp->msg_in); dhcp->msg_in = NULL; } if (dhcp->options_in) { mem_free((void *)dhcp->options_in); dhcp->options_in = NULL; dhcp->options_in_len = 0; } LWIP_DEBUGF(DHCP_DEBUG, ("dhcp_free_reply(): free'd\n")); } /** * If an incoming DHCP message is in response to us, then trigger the state machine */ static void dhcp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port) { struct netif *netif = (struct netif *)arg; struct dhcp *dhcp = netif->dhcp; struct dhcp_msg *reply_msg = (struct dhcp_msg *)p->payload; u8_t *options_ptr; u8_t msg_type; u8_t i; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 3, ("dhcp_recv(pbuf = %p) from DHCP server %"U16_F".%"U16_F".%"U16_F".%"U16_F" port %"U16_F"\n", (void*)p, (u16_t)(ntohl(addr->addr) >> 24 & 0xff), (u16_t)(ntohl(addr->addr) >> 16 & 0xff), (u16_t)(ntohl(addr->addr) >> 8 & 0xff), (u16_t)(ntohl(addr->addr) & 0xff), port)); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("pbuf->len = %"U16_F"\n", p->len)); LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("pbuf->tot_len = %"U16_F"\n", p->tot_len)); /* prevent warnings about unused arguments */ LWIP_UNUSED_ARG(pcb); LWIP_UNUSED_ARG(addr); LWIP_UNUSED_ARG(port); dhcp->p = p; /* TODO: check packet length before reading them */ if (reply_msg->op != DHCP_BOOTREPLY) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("not a DHCP reply message, but type %"U16_F"\n", (u16_t)reply_msg->op)); goto free_pbuf_and_return; } /* iterate through hardware address and match against DHCP message */ for (i = 0; i < netif->hwaddr_len; i++) { if (netif->hwaddr[i] != reply_msg->chaddr[i]) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("netif->hwaddr[%"U16_F"]==%02"X16_F" != reply_msg->chaddr[%"U16_F"]==%02"X16_F"\n", (u16_t)i, (u16_t)netif->hwaddr[i], (u16_t)i, (u16_t)reply_msg->chaddr[i])); goto free_pbuf_and_return; } } /* match transaction ID against what we expected */ if (ntohl(reply_msg->xid) != dhcp->xid) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("transaction id mismatch reply_msg->xid(%"X32_F")!=dhcp->xid(%"X32_F")\n",ntohl(reply_msg->xid),dhcp->xid)); goto free_pbuf_and_return; } /* option fields could be unfold? */ if (dhcp_unfold_reply(dhcp) != ERR_OK) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("problem unfolding DHCP message - too short on memory?\n")); goto free_pbuf_and_return; } LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("searching DHCP_OPTION_MESSAGE_TYPE\n")); /* obtain pointer to DHCP message type */ options_ptr = dhcp_get_option_ptr(dhcp, DHCP_OPTION_MESSAGE_TYPE); if (options_ptr == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("DHCP_OPTION_MESSAGE_TYPE option not found\n")); goto free_pbuf_and_return; } /* read DHCP message type */ msg_type = dhcp_get_option_byte(options_ptr + 2); /* message type is DHCP ACK? */ if (msg_type == DHCP_ACK) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("DHCP_ACK received\n")); /* in requesting state? */ if (dhcp->state == DHCP_REQUESTING) { dhcp_handle_ack(netif); dhcp->request_timeout = 0; #if DHCP_DOES_ARP_CHECK /* check if the acknowledged lease address is already in use */ dhcp_check(netif); #else /* bind interface to the acknowledged lease address */ dhcp_bind(netif); #endif } /* already bound to the given lease address? */ else if ((dhcp->state == DHCP_REBOOTING) || (dhcp->state == DHCP_REBINDING) || (dhcp->state == DHCP_RENEWING)) { dhcp->request_timeout = 0; dhcp_bind(netif); } } /* received a DHCP_NAK in appropriate state? */ else if ((msg_type == DHCP_NAK) && ((dhcp->state == DHCP_REBOOTING) || (dhcp->state == DHCP_REQUESTING) || (dhcp->state == DHCP_REBINDING) || (dhcp->state == DHCP_RENEWING ))) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("DHCP_NAK received\n")); dhcp->request_timeout = 0; dhcp_handle_nak(netif); } /* received a DHCP_OFFER in DHCP_SELECTING state? */ else if ((msg_type == DHCP_OFFER) && (dhcp->state == DHCP_SELECTING)) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("DHCP_OFFER received in DHCP_SELECTING state\n")); dhcp->request_timeout = 0; /* remember offered lease */ dhcp_handle_offer(netif); } free_pbuf_and_return: dhcp_free_reply(dhcp); pbuf_free(p); dhcp->p = NULL; } /** * Create a DHCP request, fill in common headers * * @param netif the netif under DHCP control */ static err_t dhcp_create_request(struct netif *netif) { struct dhcp *dhcp; u16_t i; #ifndef DHCP_GLOBAL_XID /** default global transaction identifier starting value (easy to match * with a packet analyser). We simply increment for each new request. * Predefine DHCP_GLOBAL_XID to a better value or a function call to generate one * at runtime, any supporting function prototypes can be defined in DHCP_GLOBAL_XID_HEADER */ static u32_t xid = 0xABCD0000; #else static u32_t xid; static u8_t xid_initialised = 0; if (!xid_initialised) { xid = DHCP_GLOBAL_XID; xid_initialised = !xid_initialised; } #endif LWIP_ERROR("dhcp_create_request: netif != NULL", (netif != NULL), return ERR_ARG;); dhcp = netif->dhcp; LWIP_ERROR("dhcp_create_request: dhcp != NULL", (dhcp != NULL), return ERR_VAL;); LWIP_ASSERT("dhcp_create_request: dhcp->p_out == NULL", dhcp->p_out == NULL); LWIP_ASSERT("dhcp_create_request: dhcp->msg_out == NULL", dhcp->msg_out == NULL); dhcp->p_out = pbuf_alloc(PBUF_TRANSPORT, sizeof(struct dhcp_msg), PBUF_RAM); if (dhcp->p_out == NULL) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("dhcp_create_request(): could not allocate pbuf\n")); return ERR_MEM; } LWIP_ASSERT("dhcp_create_request: check that first pbuf can hold struct dhcp_msg", (dhcp->p_out->len >= sizeof(struct dhcp_msg))); /* reuse transaction identifier in retransmissions */ if (dhcp->tries==0) xid++; dhcp->xid = xid; LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("transaction id xid(%"X32_F")\n", xid)); dhcp->msg_out = (struct dhcp_msg *)dhcp->p_out->payload; dhcp->msg_out->op = DHCP_BOOTREQUEST; /* TODO: make link layer independent */ dhcp->msg_out->htype = DHCP_HTYPE_ETH; /* TODO: make link layer independent */ dhcp->msg_out->hlen = DHCP_HLEN_ETH; dhcp->msg_out->hops = 0; dhcp->msg_out->xid = htonl(dhcp->xid); dhcp->msg_out->secs = 0; dhcp->msg_out->flags = 0; dhcp->msg_out->ciaddr.addr = 0; if (dhcp->state==DHCP_BOUND || dhcp->state==DHCP_RENEWING || dhcp->state==DHCP_REBINDING) { dhcp->msg_out->ciaddr.addr = netif->ip_addr.addr; } dhcp->msg_out->yiaddr.addr = 0; dhcp->msg_out->siaddr.addr = 0; dhcp->msg_out->giaddr.addr = 0; for (i = 0; i < DHCP_CHADDR_LEN; i++) { /* copy netif hardware address, pad with zeroes */ dhcp->msg_out->chaddr[i] = (i < netif->hwaddr_len) ? netif->hwaddr[i] : 0/* pad byte*/; } for (i = 0; i < DHCP_SNAME_LEN; i++) { dhcp->msg_out->sname[i] = 0; } for (i = 0; i < DHCP_FILE_LEN; i++) { dhcp->msg_out->file[i] = 0; } dhcp->msg_out->cookie = htonl(0x63825363UL); dhcp->options_out_len = 0; /* fill options field with an incrementing array (for debugging purposes) */ for (i = 0; i < DHCP_OPTIONS_LEN; i++) { dhcp->msg_out->options[i] = (u8_t)i; /* for debugging only, no matter if truncated */ } return ERR_OK; } /** * Free previously allocated memory used to send a DHCP request. * * @param netif the netif under DHCP control */ static void dhcp_delete_request(struct netif *netif) { struct dhcp *dhcp; LWIP_ERROR("dhcp_delete_request: netif != NULL", (netif != NULL), return;); dhcp = netif->dhcp; LWIP_ERROR("dhcp_delete_request: dhcp != NULL", (dhcp != NULL), return;); LWIP_ASSERT("dhcp_delete_request: dhcp->p_out != NULL", dhcp->p_out != NULL); LWIP_ASSERT("dhcp_delete_request: dhcp->msg_out != NULL", dhcp->msg_out != NULL); if (dhcp->p_out != NULL) { pbuf_free(dhcp->p_out); } dhcp->p_out = NULL; dhcp->msg_out = NULL; } /** * Add a DHCP message trailer * * Adds the END option to the DHCP message, and if * necessary, up to three padding bytes. * * @param dhcp DHCP state structure */ static void dhcp_option_trailer(struct dhcp *dhcp) { LWIP_ERROR("dhcp_option_trailer: dhcp != NULL", (dhcp != NULL), return;); LWIP_ASSERT("dhcp_option_trailer: dhcp->msg_out != NULL\n", dhcp->msg_out != NULL); LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN); dhcp->msg_out->options[dhcp->options_out_len++] = DHCP_OPTION_END; /* packet is too small, or not 4 byte aligned? */ while ((dhcp->options_out_len < DHCP_MIN_OPTIONS_LEN) || (dhcp->options_out_len & 3)) { /* LWIP_DEBUGF(DHCP_DEBUG,("dhcp_option_trailer:dhcp->options_out_len=%"U16_F", DHCP_OPTIONS_LEN=%"U16_F, dhcp->options_out_len, DHCP_OPTIONS_LEN)); */ LWIP_ASSERT("dhcp_option_trailer: dhcp->options_out_len < DHCP_OPTIONS_LEN\n", dhcp->options_out_len < DHCP_OPTIONS_LEN); /* add a fill/padding byte */ dhcp->msg_out->options[dhcp->options_out_len++] = 0; } } /** * Find the offset of a DHCP option inside the DHCP message. * * @param dhcp DHCP client * @param option_type * * @return a byte offset into the UDP message where the option was found, or * zero if the given option was not found. */ static u8_t *dhcp_get_option_ptr(struct dhcp *dhcp, u8_t option_type) { u8_t overload = DHCP_OVERLOAD_NONE; /* options available? */ if ((dhcp->options_in != NULL) && (dhcp->options_in_len > 0)) { /* start with options field */ u8_t *options = (u8_t *)dhcp->options_in; u16_t offset = 0; /* at least 1 byte to read and no end marker, then at least 3 bytes to read? */ while ((offset < dhcp->options_in_len) && (options[offset] != DHCP_OPTION_END)) { /* LWIP_DEBUGF(DHCP_DEBUG, ("msg_offset=%"U16_F", q->len=%"U16_F, msg_offset, q->len)); */ /* are the sname and/or file field overloaded with options? */ if (options[offset] == DHCP_OPTION_OVERLOAD) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 2, ("overloaded message detected\n")); /* skip option type and length */ offset += 2; overload = options[offset++]; } /* requested option found */ else if (options[offset] == option_type) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("option found at offset %"U16_F" in options\n", offset)); return &options[offset]; /* skip option */ } else { LWIP_DEBUGF(DHCP_DEBUG, ("skipping option %"U16_F" in options\n", options[offset])); /* skip option type */ offset++; /* skip option length, and then length bytes */ offset += 1 + options[offset]; } } /* is this an overloaded message? */ if (overload != DHCP_OVERLOAD_NONE) { u16_t field_len; if (overload == DHCP_OVERLOAD_FILE) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("overloaded file field\n")); options = (u8_t *)&dhcp->msg_in->file; field_len = DHCP_FILE_LEN; } else if (overload == DHCP_OVERLOAD_SNAME) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("overloaded sname field\n")); options = (u8_t *)&dhcp->msg_in->sname; field_len = DHCP_SNAME_LEN; /* TODO: check if else if () is necessary */ } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE | 1, ("overloaded sname and file field\n")); options = (u8_t *)&dhcp->msg_in->sname; field_len = DHCP_FILE_LEN + DHCP_SNAME_LEN; } offset = 0; /* at least 1 byte to read and no end marker */ while ((offset < field_len) && (options[offset] != DHCP_OPTION_END)) { if (options[offset] == option_type) { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("option found at offset=%"U16_F"\n", offset)); return &options[offset]; /* skip option */ } else { LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("skipping option %"U16_F"\n", options[offset])); /* skip option type */ offset++; offset += 1 + options[offset]; } } } } return NULL; } /** * Return the byte of DHCP option data. * * @param client DHCP client. * @param ptr pointer obtained by dhcp_get_option_ptr(). * * @return byte value at the given address. */ static u8_t dhcp_get_option_byte(u8_t *ptr) { LWIP_DEBUGF(DHCP_DEBUG, ("option byte value=%"U16_F"\n", (u16_t)(*ptr))); return *ptr; } #if 0 /* currently unused */ /** * Return the 16-bit value of DHCP option data. * * @param client DHCP client. * @param ptr pointer obtained by dhcp_get_option_ptr(). * * @return byte value at the given address. */ static u16_t dhcp_get_option_short(u8_t *ptr) { u16_t value; value = *ptr++ << 8; value |= *ptr; LWIP_DEBUGF(DHCP_DEBUG, ("option short value=%"U16_F"\n", value)); return value; } #endif /** * Return the 32-bit value of DHCP option data. * * @param client DHCP client. * @param ptr pointer obtained by dhcp_get_option_ptr(). * * @return byte value at the given address. */ static u32_t dhcp_get_option_long(u8_t *ptr) { u32_t value; value = (u32_t)(*ptr++) << 24; value |= (u32_t)(*ptr++) << 16; value |= (u32_t)(*ptr++) << 8; value |= (u32_t)(*ptr++); LWIP_DEBUGF(DHCP_DEBUG, ("option long value=%"U32_F"\n", value)); return value; } #endif /* LWIP_DHCP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/dns.c000066400000000000000000000734431224274632000220060ustar00rootroot00000000000000/** * @file * DNS - host name to IP address resolver. * */ /** * This file implements a DNS host name to IP address resolver. * Port to lwIP from uIP * by Jim Pettinato April 2007 * uIP version Copyright (c) 2002-2003, Adam Dunkels. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * DNS.C * * The lwIP DNS resolver functions are used to lookup a host name and * map it to a numerical IP address. It maintains a list of resolved * hostnames that can be queried with the dns_lookup() function. * New hostnames can be resolved using the dns_query() function. * * The lwIP version of the resolver also adds a non-blocking version of * gethostbyname() that will work with a raw API application. This function * checks for an IP address string first and converts it if it is valid. * gethostbyname() then does a dns_lookup() to see if the name is * already in the table. If so, the IP is returned. If not, a query is * issued and the function returns with a ERR_INPROGRESS status. The app * using the dns client must then go into a waiting state. * * Once a hostname has been resolved (or found to be non-existent), * the resolver code calls a specified callback function (which * must be implemented by the module that uses the resolver). */ /*----------------------------------------------------------------------------- * RFC 1035 - Domain names - implementation and specification * RFC 2181 - Clarifications to the DNS Specification *----------------------------------------------------------------------------*/ /** @todo: define good default values (rfc compliance) */ /** @todo: improve answer parsing, more checkings... */ /** @todo: check RFC1035 - 7.3. Processing responses */ /*----------------------------------------------------------------------------- * Includes *----------------------------------------------------------------------------*/ #include "lwip/opt.h" #if LWIP_DNS /* don't build if not configured for use in lwipopts.h */ #include "lwip/udp.h" #include "lwip/mem.h" #include "lwip/dns.h" #include /** DNS server IP address */ #ifndef DNS_SERVER_ADDRESS #define DNS_SERVER_ADDRESS inet_addr("208.67.222.222") /* resolver1.opendns.com */ #endif /** DNS server port address */ #ifndef DNS_SERVER_PORT #define DNS_SERVER_PORT 53 #endif /** DNS maximum number of retries when asking for a name, before "timeout". */ #ifndef DNS_MAX_RETRIES #define DNS_MAX_RETRIES 4 #endif /** DNS resource record max. TTL (one week as default) */ #ifndef DNS_MAX_TTL #define DNS_MAX_TTL 604800 #endif /* DNS protocol flags */ #define DNS_FLAG1_RESPONSE 0x80 #define DNS_FLAG1_OPCODE_STATUS 0x10 #define DNS_FLAG1_OPCODE_INVERSE 0x08 #define DNS_FLAG1_OPCODE_STANDARD 0x00 #define DNS_FLAG1_AUTHORATIVE 0x04 #define DNS_FLAG1_TRUNC 0x02 #define DNS_FLAG1_RD 0x01 #define DNS_FLAG2_RA 0x80 #define DNS_FLAG2_ERR_MASK 0x0f #define DNS_FLAG2_ERR_NONE 0x00 #define DNS_FLAG2_ERR_NAME 0x03 /* DNS protocol states */ #define DNS_STATE_UNUSED 0 #define DNS_STATE_NEW 1 #define DNS_STATE_ASKING 2 #define DNS_STATE_DONE 3 #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN /** DNS message header */ struct dns_hdr { PACK_STRUCT_FIELD(u16_t id); PACK_STRUCT_FIELD(u8_t flags1); PACK_STRUCT_FIELD(u8_t flags2); PACK_STRUCT_FIELD(u16_t numquestions); PACK_STRUCT_FIELD(u16_t numanswers); PACK_STRUCT_FIELD(u16_t numauthrr); PACK_STRUCT_FIELD(u16_t numextrarr); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define SIZEOF_DNS_HDR 12 #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN /** DNS query message structure */ struct dns_query { /* DNS query record starts with either a domain name or a pointer to a name already present somewhere in the packet. */ PACK_STRUCT_FIELD(u16_t type); PACK_STRUCT_FIELD(u16_t class); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define SIZEOF_DNS_QUERY 4 #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN /** DNS answer message structure */ struct dns_answer { /* DNS answer record starts with either a domain name or a pointer to a name already present somewhere in the packet. */ PACK_STRUCT_FIELD(u16_t type); PACK_STRUCT_FIELD(u16_t class); PACK_STRUCT_FIELD(u32_t ttl); PACK_STRUCT_FIELD(u16_t len); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define SIZEOF_DNS_ANSWER 10 /** DNS table entry */ struct dns_table_entry { u8_t state; u8_t numdns; u8_t tmr; u8_t retries; u8_t seqno; u8_t err; u32_t ttl; char name[DNS_MAX_NAME_LENGTH]; struct ip_addr ipaddr; /* pointer to callback on DNS query done */ dns_found_callback found; void *arg; }; #if DNS_LOCAL_HOSTLIST /** struct used for local host-list */ struct local_hostlist_entry { /** static hostname */ const char *name; /** static host address in network byteorder */ u32_t addr; struct local_hostlist_entry *next; }; #if DNS_LOCAL_HOSTLIST_IS_DYNAMIC /** Local host-list. For hostnames in this list, no * external name resolution is performed */ static struct local_hostlist_entry *local_hostlist_dynamic; #else /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ /** Defining this allows the local_hostlist_static to be placed in a different * linker section (e.g. FLASH) */ #ifndef DNS_LOCAL_HOSTLIST_STORAGE_PRE #define DNS_LOCAL_HOSTLIST_STORAGE_PRE static #endif /* DNS_LOCAL_HOSTLIST_STORAGE_PRE */ /** Defining this allows the local_hostlist_static to be placed in a different * linker section (e.g. FLASH) */ #ifndef DNS_LOCAL_HOSTLIST_STORAGE_POST #define DNS_LOCAL_HOSTLIST_STORAGE_POST #endif /* DNS_LOCAL_HOSTLIST_STORAGE_POST */ DNS_LOCAL_HOSTLIST_STORAGE_PRE struct local_hostlist_entry local_hostlist_static[] DNS_LOCAL_HOSTLIST_STORAGE_POST = DNS_LOCAL_HOSTLIST_INIT; #endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ static void dns_init_local(); #endif /* DNS_LOCAL_HOSTLIST */ /* forward declarations */ static void dns_recv(void *s, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port); static void dns_check_entries(void); /*----------------------------------------------------------------------------- * Globales *----------------------------------------------------------------------------*/ /* DNS variables */ static struct udp_pcb *dns_pcb; static u8_t dns_seqno; static struct dns_table_entry dns_table[DNS_TABLE_SIZE]; static struct ip_addr dns_servers[DNS_MAX_SERVERS]; #if (DNS_USES_STATIC_BUF == 1) static u8_t dns_payload[DNS_MSG_SIZE]; #endif /* (DNS_USES_STATIC_BUF == 1) */ /** * Initialize the resolver: set up the UDP pcb and configure the default server * (DNS_SERVER_ADDRESS). */ void dns_init() { struct ip_addr dnsserver; /* initialize default DNS server address */ dnsserver.addr = DNS_SERVER_ADDRESS; LWIP_DEBUGF(DNS_DEBUG, ("dns_init: initializing\n")); /* if dns client not yet initialized... */ if (dns_pcb == NULL) { dns_pcb = udp_new(); if (dns_pcb != NULL) { /* initialize DNS table not needed (initialized to zero since it is a * global variable) */ LWIP_ASSERT("For implicit initialization to work, DNS_STATE_UNUSED needs to be 0", DNS_STATE_UNUSED == 0); /* initialize DNS client */ udp_bind(dns_pcb, IP_ADDR_ANY, 0); udp_recv(dns_pcb, dns_recv, NULL); /* initialize default DNS primary server */ dns_setserver(0, &dnsserver); } } #if DNS_LOCAL_HOSTLIST dns_init_local(); #endif } /** * Initialize one of the DNS servers. * * @param numdns the index of the DNS server to set must be < DNS_MAX_SERVERS * @param dnsserver IP address of the DNS server to set */ void dns_setserver(u8_t numdns, struct ip_addr *dnsserver) { if ((numdns < DNS_MAX_SERVERS) && (dns_pcb != NULL) && (dnsserver != NULL) && (dnsserver->addr !=0 )) { dns_servers[numdns] = (*dnsserver); } } /** * Obtain one of the currently configured DNS server. * * @param numdns the index of the DNS server * @return IP address of the indexed DNS server or "ip_addr_any" if the DNS * server has not been configured. */ struct ip_addr dns_getserver(u8_t numdns) { if (numdns < DNS_MAX_SERVERS) { return dns_servers[numdns]; } else { return *IP_ADDR_ANY; } } /** * The DNS resolver client timer - handle retries and timeouts and should * be called every DNS_TMR_INTERVAL milliseconds (every second by default). */ void dns_tmr(void) { if (dns_pcb != NULL) { LWIP_DEBUGF(DNS_DEBUG, ("dns_tmr: dns_check_entries\n")); dns_check_entries(); } } #if DNS_LOCAL_HOSTLIST static void dns_init_local() { #if DNS_LOCAL_HOSTLIST_IS_DYNAMIC && defined(DNS_LOCAL_HOSTLIST_INIT) int i; struct local_hostlist_entry *entry; /* Dynamic: copy entries from DNS_LOCAL_HOSTLIST_INIT to list */ struct local_hostlist_entry local_hostlist_init[] = DNS_LOCAL_HOSTLIST_INIT; for (i = 0; i < sizeof(local_hostlist_init) / sizeof(struct local_hostlist_entry); i++) { entry = mem_malloc(sizeof(struct local_hostlist_entry)); LWIP_ASSERT("mem-error in dns_init_local", entry != NULL); if (entry != NULL) { struct local_hostlist_entry *init_entry = &local_hostlist_init[i]; entry->name = init_entry->name; entry->addr = init_entry->addr; entry->next = local_hostlist_dynamic; local_hostlist_dynamic = entry; } } #endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC && defined(DNS_LOCAL_HOSTLIST_INIT) */ } /** * Scans the local host-list for a hostname. * * @param hostname Hostname to look for in the local host-list * @return The first IP address for the hostname in the local host-list or * INADDR_NONE if not found. */ static u32_t dns_lookup_local(const char *hostname) { #if DNS_LOCAL_HOSTLIST_IS_DYNAMIC struct local_hostlist_entry *entry = local_hostlist_dynamic; while(entry != NULL) { if(strcmp(entry->name, hostname) == 0) { return entry->addr; } entry = entry->next; } #else /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ int i; for (i = 0; i < sizeof(local_hostlist_static) / sizeof(struct local_hostlist_entry); i++) { if(strcmp(local_hostlist_static[i].name, hostname) == 0) { return local_hostlist_static[i].addr; } } #endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ return INADDR_NONE; } #if DNS_LOCAL_HOSTLIST_IS_DYNAMIC /** Remove all entries from the local host-list for a specific hostname * and/or IP addess * * @param hostname hostname for which entries shall be removed from the local * host-list * @param addr address for which entries shall be removed from the local host-list * @return the number of removed entries */ int dns_local_removehost(const char *hostname, const struct ip_addr *addr) { int removed = 0; struct local_hostlist_entry *entry = local_hostlist_dynamic; struct local_hostlist_entry *last_entry = NULL; while (entry != NULL) { if (((hostname == NULL) || !strcmp(entry->name, hostname)) && ((addr == NULL) || (entry->addr == addr->addr))) { struct local_hostlist_entry *free_entry; if (last_entry != NULL) { last_entry->next = entry->next; } else { local_hostlist_dynamic = entry->next; } free_entry = entry; entry = entry->next; mem_free(free_entry); removed++; } else { last_entry = entry; entry = entry->next; } } return removed; } /** * Add a hostname/IP address pair to the local host-list. * Duplicates are not checked. * * @param hostname hostname of the new entry * @param addr IP address of the new entry * @return ERR_OK if succeeded or ERR_MEM on memory error */ err_t dns_local_addhost(const char *hostname, const struct ip_addr *addr) { struct local_hostlist_entry *entry; entry = mem_malloc(sizeof(struct local_hostlist_entry)); if (entry == NULL) { return ERR_MEM; } entry->name = hostname; entry->addr = addr->addr; entry->next = local_hostlist_dynamic; local_hostlist_dynamic = entry; return ERR_OK; } #endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC*/ #endif /* DNS_LOCAL_HOSTLIST */ /** * Look up a hostname in the array of known hostnames. * * @note This function only looks in the internal array of known * hostnames, it does not send out a query for the hostname if none * was found. The function dns_enqueue() can be used to send a query * for a hostname. * * @param name the hostname to look up * @return the hostname's IP address, as u32_t (instead of struct ip_addr to * better check for failure: != INADDR_NONE) or INADDR_NONE if the hostname * was not found in the cached dns_table. */ static u32_t dns_lookup(const char *name) { u8_t i; #if DNS_LOCAL_HOSTLIST || defined(DNS_LOOKUP_LOCAL_EXTERN) u32_t addr; #endif /* DNS_LOCAL_HOSTLIST || defined(DNS_LOOKUP_LOCAL_EXTERN) */ #if DNS_LOCAL_HOSTLIST if ((addr = dns_lookup_local(name)) != INADDR_NONE) { return addr; } #endif /* DNS_LOCAL_HOSTLIST */ #ifdef DNS_LOOKUP_LOCAL_EXTERN if((addr = DNS_LOOKUP_LOCAL_EXTERN(name)) != INADDR_NONE) { return addr; } #endif /* DNS_LOOKUP_LOCAL_EXTERN */ /* Walk through name list, return entry if found. If not, return NULL. */ for (i = 0; i < DNS_TABLE_SIZE; ++i) { if ((dns_table[i].state == DNS_STATE_DONE) && (strcmp(name, dns_table[i].name) == 0)) { LWIP_DEBUGF(DNS_DEBUG, ("dns_lookup: \"%s\": found = ", name)); ip_addr_debug_print(DNS_DEBUG, &(dns_table[i].ipaddr)); LWIP_DEBUGF(DNS_DEBUG, ("\n")); return dns_table[i].ipaddr.addr; } } return INADDR_NONE; } #if DNS_DOES_NAME_CHECK /** * Compare the "dotted" name "query" with the encoded name "response" * to make sure an answer from the DNS server matches the current dns_table * entry (otherwise, answers might arrive late for hostname not on the list * any more). * * @param query hostname (not encoded) from the dns_table * @param response encoded hostname in the DNS response * @return 0: names equal; 1: names differ */ static u8_t dns_compare_name(unsigned char *query, unsigned char *response) { unsigned char n; do { n = *response++; /** @see RFC 1035 - 4.1.4. Message compression */ if ((n & 0xc0) == 0xc0) { /* Compressed name */ break; } else { /* Not compressed name */ while (n > 0) { if ((*query) != (*response)) { return 1; } ++response; ++query; --n; }; ++query; } } while (*response != 0); return 0; } #endif /* DNS_DOES_NAME_CHECK */ /** * Walk through a compact encoded DNS name and return the end of the name. * * @param query encoded DNS name in the DNS server response * @return end of the name */ static unsigned char * dns_parse_name(unsigned char *query) { unsigned char n; do { n = *query++; /** @see RFC 1035 - 4.1.4. Message compression */ if ((n & 0xc0) == 0xc0) { /* Compressed name */ break; } else { /* Not compressed name */ while (n > 0) { ++query; --n; }; } } while (*query != 0); return query + 1; } /** * Send a DNS query packet. * * @param numdns index of the DNS server in the dns_servers table * @param name hostname to query * @param id index of the hostname in dns_table, used as transaction ID in the * DNS query packet * @return ERR_OK if packet is sent; an err_t indicating the problem otherwise */ static err_t dns_send(u8_t numdns, const char* name, u8_t id) { err_t err; struct dns_hdr *hdr; struct dns_query qry; struct pbuf *p; char *query, *nptr; const char *pHostname; u8_t n; LWIP_DEBUGF(DNS_DEBUG, ("dns_send: dns_servers[%"U16_F"] \"%s\": request\n", (u16_t)(numdns), name)); LWIP_ASSERT("dns server out of array", numdns < DNS_MAX_SERVERS); LWIP_ASSERT("dns server has no IP address set", dns_servers[numdns].addr != 0); /* if here, we have either a new query or a retry on a previous query to process */ p = pbuf_alloc(PBUF_TRANSPORT, SIZEOF_DNS_HDR + DNS_MAX_NAME_LENGTH + SIZEOF_DNS_QUERY, PBUF_RAM); if (p != NULL) { LWIP_ASSERT("pbuf must be in one piece", p->next == NULL); /* fill dns header */ hdr = (struct dns_hdr*)p->payload; memset(hdr, 0, SIZEOF_DNS_HDR); hdr->id = htons(id); hdr->flags1 = DNS_FLAG1_RD; hdr->numquestions = htons(1); query = (char*)hdr + SIZEOF_DNS_HDR; pHostname = name; --pHostname; /* convert hostname into suitable query format. */ do { ++pHostname; nptr = query; ++query; for(n = 0; *pHostname != '.' && *pHostname != 0; ++pHostname) { *query = *pHostname; ++query; ++n; } *nptr = n; } while(*pHostname != 0); *query++='\0'; /* fill dns query */ qry.type = htons(DNS_RRTYPE_A); qry.class = htons(DNS_RRCLASS_IN); MEMCPY( query, &qry, SIZEOF_DNS_QUERY); /* resize pbuf to the exact dns query */ pbuf_realloc(p, (query + SIZEOF_DNS_QUERY) - ((char*)(p->payload))); /* connect to the server for faster receiving */ udp_connect(dns_pcb, &dns_servers[numdns], DNS_SERVER_PORT); /* send dns packet */ err = udp_sendto(dns_pcb, p, &dns_servers[numdns], DNS_SERVER_PORT); /* free pbuf */ pbuf_free(p); } else { err = ERR_MEM; } return err; } /** * dns_check_entry() - see if pEntry has not yet been queried and, if so, sends out a query. * Check an entry in the dns_table: * - send out query for new entries * - retry old pending entries on timeout (also with different servers) * - remove completed entries from the table if their TTL has expired * * @param i index of the dns_table entry to check */ static void dns_check_entry(u8_t i) { struct dns_table_entry *pEntry = &dns_table[i]; LWIP_ASSERT("array index out of bounds", i < DNS_TABLE_SIZE); switch(pEntry->state) { case DNS_STATE_NEW: { /* initialize new entry */ pEntry->state = DNS_STATE_ASKING; pEntry->numdns = 0; pEntry->tmr = 1; pEntry->retries = 0; /* send DNS packet for this entry */ dns_send(pEntry->numdns, pEntry->name, i); break; } case DNS_STATE_ASKING: { if (--pEntry->tmr == 0) { if (++pEntry->retries == DNS_MAX_RETRIES) { if ((pEntry->numdns+1numdns+1].addr!=0)) { /* change of server */ pEntry->numdns++; pEntry->tmr = 1; pEntry->retries = 0; break; } else { LWIP_DEBUGF(DNS_DEBUG, ("dns_check_entry: \"%s\": timeout\n", pEntry->name)); /* call specified callback function if provided */ if (pEntry->found) (*pEntry->found)(pEntry->name, NULL, pEntry->arg); /* flush this entry */ pEntry->state = DNS_STATE_UNUSED; pEntry->found = NULL; break; } } /* wait longer for the next retry */ pEntry->tmr = pEntry->retries; /* send DNS packet for this entry */ dns_send(pEntry->numdns, pEntry->name, i); } break; } case DNS_STATE_DONE: { /* if the time to live is nul */ if (--pEntry->ttl == 0) { LWIP_DEBUGF(DNS_DEBUG, ("dns_check_entry: \"%s\": flush\n", pEntry->name)); /* flush this entry */ pEntry->state = DNS_STATE_UNUSED; pEntry->found = NULL; } break; } case DNS_STATE_UNUSED: /* nothing to do */ break; default: LWIP_ASSERT("unknown dns_table entry state:", 0); break; } } /** * Call dns_check_entry for each entry in dns_table - check all entries. */ static void dns_check_entries(void) { u8_t i; for (i = 0; i < DNS_TABLE_SIZE; ++i) { dns_check_entry(i); } } /** * Receive input function for DNS response packets arriving for the dns UDP pcb. * * @params see udp.h */ static void dns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port) { u8_t i; char *pHostname; struct dns_hdr *hdr; struct dns_answer ans; struct dns_table_entry *pEntry; u8_t nquestions, nanswers; #if (DNS_USES_STATIC_BUF == 0) u8_t dns_payload[DNS_MSG_SIZE]; #endif /* (DNS_USES_STATIC_BUF == 0) */ #if (DNS_USES_STATIC_BUF == 2) u8_t* dns_payload; #endif /* (DNS_USES_STATIC_BUF == 2) */ LWIP_UNUSED_ARG(arg); LWIP_UNUSED_ARG(pcb); LWIP_UNUSED_ARG(addr); LWIP_UNUSED_ARG(port); /* is the dns message too big ? */ if (p->tot_len > DNS_MSG_SIZE) { LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too big\n")); /* free pbuf and return */ goto memerr1; } /* is the dns message big enough ? */ if (p->tot_len < (SIZEOF_DNS_HDR + SIZEOF_DNS_QUERY + SIZEOF_DNS_ANSWER)) { LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: pbuf too small\n")); /* free pbuf and return */ goto memerr1; } #if (DNS_USES_STATIC_BUF == 2) dns_payload = mem_malloc(p->tot_len); if (dns_payload == NULL) { LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: mem_malloc error\n")); /* free pbuf and return */ goto memerr1; } #endif /* (DNS_USES_STATIC_BUF == 2) */ /* copy dns payload inside static buffer for processing */ if (pbuf_copy_partial(p, dns_payload, p->tot_len, 0) == p->tot_len) { /* The ID in the DNS header should be our entry into the name table. */ hdr = (struct dns_hdr*)dns_payload; i = htons(hdr->id); if (i < DNS_TABLE_SIZE) { pEntry = &dns_table[i]; if(pEntry->state == DNS_STATE_ASKING) { /* This entry is now completed. */ pEntry->state = DNS_STATE_DONE; pEntry->err = hdr->flags2 & DNS_FLAG2_ERR_MASK; /* We only care about the question(s) and the answers. The authrr and the extrarr are simply discarded. */ nquestions = htons(hdr->numquestions); nanswers = htons(hdr->numanswers); /* Check for error. If so, call callback to inform. */ if (((hdr->flags1 & DNS_FLAG1_RESPONSE) == 0) || (pEntry->err != 0) || (nquestions != 1)) { LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": error in flags\n", pEntry->name)); /* call callback to indicate error, clean up memory and return */ goto responseerr; } #if DNS_DOES_NAME_CHECK /* Check if the name in the "question" part match with the name in the entry. */ if (dns_compare_name((unsigned char *)(pEntry->name), (unsigned char *)dns_payload + SIZEOF_DNS_HDR) != 0) { LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": response not match to query\n", pEntry->name)); /* call callback to indicate error, clean up memory and return */ goto responseerr; } #endif /* DNS_DOES_NAME_CHECK */ /* Skip the name in the "question" part */ pHostname = (char *) dns_parse_name((unsigned char *)dns_payload + SIZEOF_DNS_HDR) + SIZEOF_DNS_QUERY; while(nanswers > 0) { /* skip answer resource record's host name */ pHostname = (char *) dns_parse_name((unsigned char *)pHostname); /* Check for IP address type and Internet class. Others are discarded. */ MEMCPY(&ans, pHostname, SIZEOF_DNS_ANSWER); if((ntohs(ans.type) == DNS_RRTYPE_A) && (ntohs(ans.class) == DNS_RRCLASS_IN) && (ntohs(ans.len) == sizeof(struct ip_addr)) ) { /* read the answer resource record's TTL, and maximize it if needed */ pEntry->ttl = ntohl(ans.ttl); if (pEntry->ttl > DNS_MAX_TTL) { pEntry->ttl = DNS_MAX_TTL; } /* read the IP address after answer resource record's header */ MEMCPY( &(pEntry->ipaddr), (pHostname+SIZEOF_DNS_ANSWER), sizeof(struct ip_addr)); LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": response = ", pEntry->name)); ip_addr_debug_print(DNS_DEBUG, (&(pEntry->ipaddr))); LWIP_DEBUGF(DNS_DEBUG, ("\n")); /* call specified callback function if provided */ if (pEntry->found) { (*pEntry->found)(pEntry->name, &pEntry->ipaddr, pEntry->arg); } /* deallocate memory and return */ goto memerr2; } else { pHostname = pHostname + SIZEOF_DNS_ANSWER + htons(ans.len); } --nanswers; } LWIP_DEBUGF(DNS_DEBUG, ("dns_recv: \"%s\": error in response\n", pEntry->name)); /* call callback to indicate error, clean up memory and return */ goto responseerr; } } } /* deallocate memory and return */ goto memerr2; responseerr: /* ERROR: call specified callback function with NULL as name to indicate an error */ if (pEntry->found) { (*pEntry->found)(pEntry->name, NULL, pEntry->arg); } /* flush this entry */ pEntry->state = DNS_STATE_UNUSED; pEntry->found = NULL; memerr2: #if (DNS_USES_STATIC_BUF == 2) /* free dns buffer */ mem_free(dns_payload); #endif /* (DNS_USES_STATIC_BUF == 2) */ memerr1: /* free pbuf */ pbuf_free(p); return; } /** * Queues a new hostname to resolve and sends out a DNS query for that hostname * * @param name the hostname that is to be queried * @param found a callback founction to be called on success, failure or timeout * @param callback_arg argument to pass to the callback function * @return @return a err_t return code. */ static err_t dns_enqueue(const char *name, dns_found_callback found, void *callback_arg) { u8_t i; u8_t lseq, lseqi; struct dns_table_entry *pEntry = NULL; /* search an unused entry, or the oldest one */ lseq = lseqi = 0; for (i = 0; i < DNS_TABLE_SIZE; ++i) { pEntry = &dns_table[i]; /* is it an unused entry ? */ if (pEntry->state == DNS_STATE_UNUSED) break; /* check if this is the oldest completed entry */ if (pEntry->state == DNS_STATE_DONE) { if ((dns_seqno - pEntry->seqno) > lseq) { lseq = dns_seqno - pEntry->seqno; lseqi = i; } } } /* if we don't have found an unused entry, use the oldest completed one */ if (i == DNS_TABLE_SIZE) { if ((lseqi >= DNS_TABLE_SIZE) || (dns_table[lseqi].state != DNS_STATE_DONE)) { /* no entry can't be used now, table is full */ LWIP_DEBUGF(DNS_DEBUG, ("dns_enqueue: \"%s\": DNS entries table is full\n", name)); return ERR_MEM; } else { /* use the oldest completed one */ i = lseqi; pEntry = &dns_table[i]; } } /* use this entry */ LWIP_DEBUGF(DNS_DEBUG, ("dns_enqueue: \"%s\": use DNS entry %"U16_F"\n", name, (u16_t)(i))); /* fill the entry */ pEntry->state = DNS_STATE_NEW; pEntry->seqno = dns_seqno++; pEntry->found = found; pEntry->arg = callback_arg; strcpy(pEntry->name, name); /* force to send query without waiting timer */ dns_check_entry(i); /* dns query is enqueued */ return ERR_INPROGRESS; } /** * Resolve a hostname (string) into an IP address. * NON-BLOCKING callback version for use with raw API!!! * * Returns immediately with one of err_t return codes: * - ERR_OK if hostname is a valid IP address string or the host * name is already in the local names table. * - ERR_INPROGRESS enqueue a request to be sent to the DNS server * for resolution if no errors are present. * * @param hostname the hostname that is to be queried * @param addr pointer to a struct ip_addr where to store the address if it is already * cached in the dns_table (only valid if ERR_OK is returned!) * @param found a callback function to be called on success, failure or timeout (only if * ERR_INPROGRESS is returned!) * @param callback_arg argument to pass to the callback function * @return a err_t return code. */ err_t dns_gethostbyname(const char *hostname, struct ip_addr *addr, dns_found_callback found, void *callback_arg) { /* not initialized or no valid server yet, or invalid addr pointer * or invalid hostname or invalid hostname length */ if ((dns_pcb == NULL) || (addr == NULL) || (!hostname) || (!hostname[0]) || (strlen(hostname) >= DNS_MAX_NAME_LENGTH)) { return ERR_VAL; } #if LWIP_HAVE_LOOPIF if (strcmp(hostname,"localhost")==0) { addr->addr = INADDR_LOOPBACK; return ERR_OK; } #endif /* LWIP_HAVE_LOOPIF */ /* host name already in octet notation? set ip addr and return ERR_OK * already have this address cached? */ if (((addr->addr = inet_addr(hostname)) != INADDR_NONE) || ((addr->addr = dns_lookup(hostname)) != INADDR_NONE)) { return ERR_OK; } /* queue query with specified callback */ return dns_enqueue(hostname, found, callback_arg); } #endif /* LWIP_DNS */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/init.c000066400000000000000000000254131224274632000221570ustar00rootroot00000000000000/** * @file * Modules initialization * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/init.h" #include "lwip/stats.h" #include "lwip/sys.h" #include "lwip/mem.h" #include "lwip/memp.h" #include "lwip/pbuf.h" #include "lwip/netif.h" #include "lwip/sockets.h" #include "lwip/ip.h" #include "lwip/raw.h" #include "lwip/udp.h" #include "lwip/tcp.h" #include "lwip/snmp_msg.h" #include "lwip/autoip.h" #include "lwip/igmp.h" #include "lwip/dns.h" #include "netif/etharp.h" /* Compile-time sanity checks for configuration errors. * These can be done independently of LWIP_DEBUG, without penalty. */ #ifndef BYTE_ORDER #error "BYTE_ORDER is not defined, you have to define it in your cc.h" #endif #if (!IP_SOF_BROADCAST && IP_SOF_BROADCAST_RECV) #error "If you want to use broadcast filter per pcb on recv operations, you have to define IP_SOF_BROADCAST=1 in your lwipopts.h" #endif #if (!LWIP_ARP && ARP_QUEUEING) #error "If you want to use ARP Queueing, you have to define LWIP_ARP=1 in your lwipopts.h" #endif #if (!LWIP_UDP && LWIP_UDPLITE) #error "If you want to use UDP Lite, you have to define LWIP_UDP=1 in your lwipopts.h" #endif #if (!LWIP_UDP && LWIP_SNMP) #error "If you want to use SNMP, you have to define LWIP_UDP=1 in your lwipopts.h" #endif #if (!LWIP_UDP && LWIP_DHCP) #error "If you want to use DHCP, you have to define LWIP_UDP=1 in your lwipopts.h" #endif #if (!LWIP_UDP && LWIP_IGMP) #error "If you want to use IGMP, you have to define LWIP_UDP=1 in your lwipopts.h" #endif #if (!LWIP_UDP && LWIP_DNS) #error "If you want to use DNS, you have to define LWIP_UDP=1 in your lwipopts.h" #endif #if (LWIP_ARP && (ARP_TABLE_SIZE > 0x7f)) #error "If you want to use ARP, ARP_TABLE_SIZE must fit in an s8_t, so, you have to reduce it in your lwipopts.h" #endif #if (LWIP_ARP && ARP_QUEUEING && (MEMP_NUM_ARP_QUEUE<=0)) #error "If you want to use ARP Queueing, you have to define MEMP_NUM_ARP_QUEUE>=1 in your lwipopts.h" #endif #if (LWIP_RAW && (MEMP_NUM_RAW_PCB<=0)) #error "If you want to use RAW, you have to define MEMP_NUM_RAW_PCB>=1 in your lwipopts.h" #endif #if (LWIP_UDP && (MEMP_NUM_UDP_PCB<=0)) #error "If you want to use UDP, you have to define MEMP_NUM_UDP_PCB>=1 in your lwipopts.h" #endif #if (LWIP_TCP && (MEMP_NUM_TCP_PCB<=0)) #error "If you want to use TCP, you have to define MEMP_NUM_TCP_PCB>=1 in your lwipopts.h" #endif #if (LWIP_TCP && (TCP_WND > 0xffff)) #error "If you want to use TCP, TCP_WND must fit in an u16_t, so, you have to reduce it in your lwipopts.h" #endif #if (LWIP_TCP && (TCP_SND_QUEUELEN > 0xffff)) #error "If you want to use TCP, TCP_SND_QUEUELEN must fit in an u16_t, so, you have to reduce it in your lwipopts.h" #endif #if (LWIP_TCP && ((TCP_MAXRTX > 12) || (TCP_SYNMAXRTX > 12))) #error "If you want to use TCP, TCP_MAXRTX and TCP_SYNMAXRTX must less or equal to 12 (due to tcp_backoff table), so, you have to reduce them in your lwipopts.h" #endif #if (LWIP_TCP && TCP_LISTEN_BACKLOG && (TCP_DEFAULT_LISTEN_BACKLOG < 0) || (TCP_DEFAULT_LISTEN_BACKLOG > 0xff)) #error "If you want to use TCP backlog, TCP_DEFAULT_LISTEN_BACKLOG must fit into an u8_t" #endif #if (LWIP_IGMP && (MEMP_NUM_IGMP_GROUP<=1)) #error "If you want to use IGMP, you have to define MEMP_NUM_IGMP_GROUP>1 in your lwipopts.h" #endif #if (PPP_SUPPORT && (NO_SYS==1)) #error "If you want to use PPP, you have to define NO_SYS=0 in your lwipopts.h" #endif #if (LWIP_NETIF_API && (NO_SYS==1)) #error "If you want to use NETIF API, you have to define NO_SYS=0 in your lwipopts.h" #endif #if ((LWIP_SOCKET || LWIP_NETCONN) && (NO_SYS==1)) #error "If you want to use Sequential API, you have to define NO_SYS=0 in your lwipopts.h" #endif #if ((LWIP_NETCONN || LWIP_SOCKET) && (MEMP_NUM_TCPIP_MSG_API<=0)) #error "If you want to use Sequential API, you have to define MEMP_NUM_TCPIP_MSG_API>=1 in your lwipopts.h" #endif #if (!LWIP_NETCONN && LWIP_SOCKET) #error "If you want to use Socket API, you have to define LWIP_NETCONN=1 in your lwipopts.h" #endif #if (((!LWIP_DHCP) || (!LWIP_AUTOIP)) && LWIP_DHCP_AUTOIP_COOP) #error "If you want to use DHCP/AUTOIP cooperation mode, you have to define LWIP_DHCP=1 and LWIP_AUTOIP=1 in your lwipopts.h" #endif #if (((!LWIP_DHCP) || (!LWIP_ARP)) && DHCP_DOES_ARP_CHECK) #error "If you want to use DHCP ARP checking, you have to define LWIP_DHCP=1 and LWIP_ARP=1 in your lwipopts.h" #endif #if (!LWIP_ARP && LWIP_AUTOIP) #error "If you want to use AUTOIP, you have to define LWIP_ARP=1 in your lwipopts.h" #endif #if (LWIP_SNMP && (SNMP_CONCURRENT_REQUESTS<=0)) #error "If you want to use SNMP, you have to define SNMP_CONCURRENT_REQUESTS>=1 in your lwipopts.h" #endif #if (LWIP_SNMP && (SNMP_TRAP_DESTINATIONS<=0)) #error "If you want to use SNMP, you have to define SNMP_TRAP_DESTINATIONS>=1 in your lwipopts.h" #endif #if (LWIP_TCP && ((LWIP_EVENT_API && LWIP_CALLBACK_API) || (!LWIP_EVENT_API && !LWIP_CALLBACK_API))) #error "One and exactly one of LWIP_EVENT_API and LWIP_CALLBACK_API has to be enabled in your lwipopts.h" #endif /* There must be sufficient timeouts, taking into account requirements of the subsystems. */ #if ((NO_SYS==0) && (MEMP_NUM_SYS_TIMEOUT < (LWIP_TCP + IP_REASSEMBLY + LWIP_ARP + (2*LWIP_DHCP) + LWIP_AUTOIP + LWIP_IGMP + LWIP_DNS + PPP_SUPPORT))) #error "MEMP_NUM_SYS_TIMEOUT is too low to accomodate all required timeouts" #endif #if (IP_REASSEMBLY && (MEMP_NUM_REASSDATA > IP_REASS_MAX_PBUFS)) #error "MEMP_NUM_REASSDATA > IP_REASS_MAX_PBUFS doesn't make sense since each struct ip_reassdata must hold 2 pbufs at least!" #endif #if (MEM_LIBC_MALLOC && MEM_USE_POOLS) #error "MEM_LIBC_MALLOC and MEM_USE_POOLS may not both be simultaneously enabled in your lwipopts.h" #endif #if (MEM_USE_POOLS && !MEMP_USE_CUSTOM_POOLS) #error "MEM_USE_POOLS requires custom pools (MEMP_USE_CUSTOM_POOLS) to be enabled in your lwipopts.h" #endif #if (PBUF_POOL_BUFSIZE <= MEM_ALIGNMENT) #error "PBUF_POOL_BUFSIZE must be greater than MEM_ALIGNMENT or the offset may take the full first pbuf" #endif #if (TCP_QUEUE_OOSEQ && !LWIP_TCP) #error "TCP_QUEUE_OOSEQ requires LWIP_TCP" #endif #if (DNS_LOCAL_HOSTLIST && !DNS_LOCAL_HOSTLIST_IS_DYNAMIC && !(defined(DNS_LOCAL_HOSTLIST_INIT))) #error "you have to define define DNS_LOCAL_HOSTLIST_INIT {{'host1', 0x123}, {'host2', 0x234}} to initialize DNS_LOCAL_HOSTLIST" #endif /* Compile-time checks for deprecated options. */ #ifdef MEMP_NUM_TCPIP_MSG #error "MEMP_NUM_TCPIP_MSG option is deprecated. Remove it from your lwipopts.h." #endif #ifdef MEMP_NUM_API_MSG #error "MEMP_NUM_API_MSG option is deprecated. Remove it from your lwipopts.h." #endif #ifdef TCP_REXMIT_DEBUG #error "TCP_REXMIT_DEBUG option is deprecated. Remove it from your lwipopts.h." #endif #ifdef RAW_STATS #error "RAW_STATS option is deprecated. Remove it from your lwipopts.h." #endif #ifdef ETHARP_QUEUE_FIRST #error "ETHARP_QUEUE_FIRST option is deprecated. Remove it from your lwipopts.h." #endif #ifdef ETHARP_ALWAYS_INSERT #error "ETHARP_ALWAYS_INSERT option is deprecated. Remove it from your lwipopts.h." #endif #if SO_REUSE /* I removed the lot since this was an ugly hack. It broke the raw-API. It also came with many ugly goto's, Christiaan Simons. */ #error "SO_REUSE currently unavailable, this was a hack" #endif #ifdef LWIP_DEBUG static void lwip_sanity_check(void) { /* Warnings */ #if LWIP_NETCONN if (MEMP_NUM_NETCONN > (MEMP_NUM_TCP_PCB+MEMP_NUM_TCP_PCB_LISTEN+MEMP_NUM_UDP_PCB+MEMP_NUM_RAW_PCB)) LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: MEMP_NUM_NETCONN should be less than the sum of MEMP_NUM_{TCP,RAW,UDP}_PCB+MEMP_NUM_TCP_PCB_LISTEN\n")); #endif /* LWIP_NETCONN */ #if LWIP_TCP if (MEMP_NUM_TCP_SEG < TCP_SND_QUEUELEN) LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: MEMP_NUM_TCP_SEG should be at least as big as TCP_SND_QUEUELEN\n")); if (TCP_SND_QUEUELEN < (2 * (TCP_SND_BUF/TCP_MSS))) LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_SND_QUEUELEN must be at least as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work\n")); if (TCP_SNDLOWAT > TCP_SND_BUF) LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_SNDLOWAT must be less than or equal to TCP_SND_BUF.\n")); if (TCP_WND > (PBUF_POOL_SIZE*PBUF_POOL_BUFSIZE)) LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_WND is larger than space provided by PBUF_POOL_SIZE*PBUF_POOL_BUFSIZE\n")); if (TCP_WND < TCP_MSS) LWIP_PLATFORM_DIAG(("lwip_sanity_check: WARNING: TCP_WND is smaller than MSS\n")); #endif /* LWIP_TCP */ } #else /* LWIP_DEBUG */ #define lwip_sanity_check() #endif /* LWIP_DEBUG */ /** * Perform Sanity check of user-configurable values, and initialize all modules. */ void lwip_init(void) { /* Sanity check user-configurable values */ lwip_sanity_check(); /* Modules initialization */ stats_init(); sys_init(); mem_init(); memp_init(); pbuf_init(); netif_init(); #if LWIP_SOCKET lwip_socket_init(); #endif /* LWIP_SOCKET */ ip_init(); #if LWIP_ARP etharp_init(); #endif /* LWIP_ARP */ #if LWIP_RAW raw_init(); #endif /* LWIP_RAW */ #if LWIP_UDP udp_init(); #endif /* LWIP_UDP */ #if LWIP_TCP tcp_init(); #endif /* LWIP_TCP */ #if LWIP_SNMP snmp_init(); #endif /* LWIP_SNMP */ #if LWIP_AUTOIP autoip_init(); #endif /* LWIP_AUTOIP */ #if LWIP_IGMP igmp_init(); #endif /* LWIP_IGMP */ #if LWIP_DNS dns_init(); #endif /* LWIP_DNS */ } uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/000077500000000000000000000000001224274632000217255ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/autoip.c000066400000000000000000000354461224274632000234060ustar00rootroot00000000000000/** * @file * AutoIP Automatic LinkLocal IP Configuration * */ /* * * Copyright (c) 2007 Dominik Spies * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Dominik Spies * * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform * with RFC 3927. * * * Please coordinate changes and requests with Dominik Spies * */ /******************************************************************************* * USAGE: * * define LWIP_AUTOIP 1 in your lwipopts.h * * If you don't use tcpip.c (so, don't call, you don't call tcpip_init): * - First, call autoip_init(). * - call autoip_tmr() all AUTOIP_TMR_INTERVAL msces, * that should be defined in autoip.h. * I recommend a value of 100. The value must divide 1000 with a remainder almost 0. * Possible values are 1000, 500, 333, 250, 200, 166, 142, 125, 111, 100 .... * * Without DHCP: * - Call autoip_start() after netif_add(). * * With DHCP: * - define LWIP_DHCP_AUTOIP_COOP 1 in your lwipopts.h. * - Configure your DHCP Client. * */ #include "lwip/opt.h" #if LWIP_AUTOIP /* don't build if not configured for use in lwipopts.h */ #include "lwip/mem.h" #include "lwip/udp.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/autoip.h" #include "netif/etharp.h" #include #include /* 169.254.0.0 */ #define AUTOIP_NET 0xA9FE0000 /* 169.254.1.0 */ #define AUTOIP_RANGE_START (AUTOIP_NET | 0x0100) /* 169.254.254.255 */ #define AUTOIP_RANGE_END (AUTOIP_NET | 0xFEFF) /** Pseudo random macro based on netif informations. * You could use "rand()" from the C Library if you define LWIP_AUTOIP_RAND in lwipopts.h */ #ifndef LWIP_AUTOIP_RAND #define LWIP_AUTOIP_RAND(netif) ( (((u32_t)((netif->hwaddr[5]) & 0xff) << 24) | \ ((u32_t)((netif->hwaddr[3]) & 0xff) << 16) | \ ((u32_t)((netif->hwaddr[2]) & 0xff) << 8) | \ ((u32_t)((netif->hwaddr[4]) & 0xff))) + \ (netif->autoip?netif->autoip->tried_llipaddr:0)) #endif /* LWIP_AUTOIP_RAND */ /** * Macro that generates the initial IP address to be tried by AUTOIP. * If you want to override this, define it to something else in lwipopts.h. */ #ifndef LWIP_AUTOIP_CREATE_SEED_ADDR #define LWIP_AUTOIP_CREATE_SEED_ADDR(netif) \ (AUTOIP_RANGE_START + ((u32_t)(((u8_t)(netif->hwaddr[4])) | \ ((u32_t)((u8_t)(netif->hwaddr[5]))) << 8))) #endif /* LWIP_AUTOIP_CREATE_SEED_ADDR */ /* static functions */ static void autoip_handle_arp_conflict(struct netif *netif); /* creates a pseudo random LL IP-Address for a network interface */ static void autoip_create_addr(struct netif *netif, struct ip_addr *IPAddr); /* sends an ARP announce */ static err_t autoip_arp_announce(struct netif *netif); /* configure interface for use with current LL IP-Address */ static err_t autoip_bind(struct netif *netif); /** * Initialize this module */ void autoip_init(void) { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | 3, ("autoip_init()\n")); } /** * Handle a IP address conflict after an ARP conflict detection */ static void autoip_handle_arp_conflict(struct netif *netif) { /* Somehow detect if we are defending or retreating */ unsigned char defend = 1; /* tbd */ if(defend) { if(netif->autoip->lastconflict > 0) { /* retreat, there was a conflicting ARP in the last * DEFEND_INTERVAL seconds */ LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("autoip_handle_arp_conflict(): we are defending, but in DEFEND_INTERVAL, retreating\n")); /* TODO: close all TCP sessions */ autoip_start(netif); } else { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("autoip_handle_arp_conflict(): we are defend, send ARP Announce\n")); autoip_arp_announce(netif); netif->autoip->lastconflict = DEFEND_INTERVAL * AUTOIP_TICKS_PER_SECOND; } } else { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("autoip_handle_arp_conflict(): we do not defend, retreating\n")); /* TODO: close all TCP sessions */ autoip_start(netif); } } /** * Create an IP-Address out of range 169.254.1.0 to 169.254.254.255 * * @param netif network interface on which create the IP-Address * @param IPAddr ip address to initialize */ static void autoip_create_addr(struct netif *netif, struct ip_addr *IPAddr) { /* Here we create an IP-Address out of range 169.254.1.0 to 169.254.254.255 * compliant to RFC 3927 Section 2.1 * We have 254 * 256 possibilities */ u32_t addr = ntohl(LWIP_AUTOIP_CREATE_SEED_ADDR(netif)); addr += netif->autoip->tried_llipaddr; addr = AUTOIP_NET | (addr & 0xffff); /* Now, 169.254.0.0 <= addr <= 169.254.255.255 */ if (addr < AUTOIP_RANGE_START) { addr += AUTOIP_RANGE_END - AUTOIP_RANGE_START + 1; } if (addr > AUTOIP_RANGE_END) { addr -= AUTOIP_RANGE_END - AUTOIP_RANGE_START + 1; } LWIP_ASSERT("AUTOIP address not in range", (addr >= AUTOIP_RANGE_START) && (addr <= AUTOIP_RANGE_END)); IPAddr->addr = htonl(addr); LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("autoip_create_addr(): tried_llipaddr=%"U16_F", 0x%08"X32_F"\n", (u16_t)(netif->autoip->tried_llipaddr), (u32_t)(IPAddr->addr))); } /** * Sends an ARP announce from a network interface * * @param netif network interface used to send the announce */ static err_t autoip_arp_announce(struct netif *netif) { return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, ðbroadcast, (struct eth_addr *)netif->hwaddr, &netif->autoip->llipaddr, ðzero, &netif->autoip->llipaddr, ARP_REQUEST); } /** * Configure interface for use with current LL IP-Address * * @param netif network interface to configure with current LL IP-Address */ static err_t autoip_bind(struct netif *netif) { struct autoip *autoip = netif->autoip; struct ip_addr sn_mask, gw_addr; LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | 3, ("autoip_bind(netif=%p) %c%c%"U16_F" 0x%08"X32_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num, autoip->llipaddr.addr)); IP4_ADDR(&sn_mask, 255, 255, 0, 0); IP4_ADDR(&gw_addr, 0, 0, 0, 0); netif_set_ipaddr(netif, &autoip->llipaddr); netif_set_netmask(netif, &sn_mask); netif_set_gw(netif, &gw_addr); /* bring the interface up */ netif_set_up(netif); return ERR_OK; } /** * Start AutoIP client * * @param netif network interface on which start the AutoIP client */ err_t autoip_start(struct netif *netif) { struct autoip *autoip = netif->autoip; err_t result = ERR_OK; if(netif_is_up(netif)) { netif_set_down(netif); } /* Set IP-Address, Netmask and Gateway to 0 to make sure that * ARP Packets are formed correctly */ netif->ip_addr.addr = 0; netif->netmask.addr = 0; netif->gw.addr = 0; LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("autoip_start(netif=%p) %c%c%"U16_F"\n", (void*)netif, netif->name[0], netif->name[1], (u16_t)netif->num)); if(autoip == NULL) { /* no AutoIP client attached yet? */ LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): starting new AUTOIP client\n")); autoip = mem_malloc(sizeof(struct autoip)); if(autoip == NULL) { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): could not allocate autoip\n")); return ERR_MEM; } memset( autoip, 0, sizeof(struct autoip)); /* store this AutoIP client in the netif */ netif->autoip = autoip; LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): allocated autoip")); } else { autoip->state = AUTOIP_STATE_OFF; autoip->ttw = 0; autoip->sent_num = 0; memset(&autoip->llipaddr, 0, sizeof(struct ip_addr)); autoip->lastconflict = 0; } autoip_create_addr(netif, &(autoip->llipaddr)); autoip->tried_llipaddr++; autoip->state = AUTOIP_STATE_PROBING; autoip->sent_num = 0; /* time to wait to first probe, this is randomly * choosen out of 0 to PROBE_WAIT seconds. * compliant to RFC 3927 Section 2.2.1 */ autoip->ttw = (u16_t)(LWIP_AUTOIP_RAND(netif) % (PROBE_WAIT * AUTOIP_TICKS_PER_SECOND)); /* * if we tried more then MAX_CONFLICTS we must limit our rate for * accquiring and probing address * compliant to RFC 3927 Section 2.2.1 */ if(autoip->tried_llipaddr > MAX_CONFLICTS) { autoip->ttw = RATE_LIMIT_INTERVAL * AUTOIP_TICKS_PER_SECOND; } return result; } /** * Stop AutoIP client * * @param netif network interface on which stop the AutoIP client */ err_t autoip_stop(struct netif *netif) { netif->autoip->state = AUTOIP_STATE_OFF; netif_set_down(netif); return ERR_OK; } /** * Has to be called in loop every AUTOIP_TMR_INTERVAL milliseconds */ void autoip_tmr() { struct netif *netif = netif_list; /* loop through netif's */ while (netif != NULL) { /* only act on AutoIP configured interfaces */ if (netif->autoip != NULL) { if(netif->autoip->lastconflict > 0) { netif->autoip->lastconflict--; } LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_tmr() AutoIP-State: %"U16_F", ttw=%"U16_F"\n", (u16_t)(netif->autoip->state), netif->autoip->ttw)); switch(netif->autoip->state) { case AUTOIP_STATE_PROBING: if(netif->autoip->ttw > 0) { netif->autoip->ttw--; } else { if(netif->autoip->sent_num == PROBE_NUM) { netif->autoip->state = AUTOIP_STATE_ANNOUNCING; netif->autoip->sent_num = 0; netif->autoip->ttw = ANNOUNCE_WAIT * AUTOIP_TICKS_PER_SECOND; } else { etharp_request(netif, &(netif->autoip->llipaddr)); LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | 3, ("autoip_tmr() PROBING Sent Probe\n")); netif->autoip->sent_num++; /* calculate time to wait to next probe */ netif->autoip->ttw = (u16_t)((LWIP_AUTOIP_RAND(netif) % ((PROBE_MAX - PROBE_MIN) * AUTOIP_TICKS_PER_SECOND) ) + PROBE_MIN * AUTOIP_TICKS_PER_SECOND); } } break; case AUTOIP_STATE_ANNOUNCING: if(netif->autoip->ttw > 0) { netif->autoip->ttw--; } else { if(netif->autoip->sent_num == 0) { /* We are here the first time, so we waited ANNOUNCE_WAIT seconds * Now we can bind to an IP address and use it */ autoip_bind(netif); } if(netif->autoip->sent_num == ANNOUNCE_NUM) { netif->autoip->state = AUTOIP_STATE_BOUND; netif->autoip->sent_num = 0; netif->autoip->ttw = 0; } else { autoip_arp_announce(netif); LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | 3, ("autoip_tmr() ANNOUNCING Sent Announce\n")); netif->autoip->sent_num++; netif->autoip->ttw = ANNOUNCE_INTERVAL * AUTOIP_TICKS_PER_SECOND; } } break; } } /* proceed to next network interface */ netif = netif->next; } } /** * Handles every incoming ARP Packet, called by etharp_arp_input. * * @param netif network interface to use for autoip processing * @param hdr Incoming ARP packet */ void autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr) { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | 3, ("autoip_arp_reply()\n")); if ((netif->autoip != NULL) && (netif->autoip->state != AUTOIP_STATE_OFF)) { /* when ip.src == llipaddr && hw.src != netif->hwaddr * * when probing ip.dst == llipaddr && hw.src != netif->hwaddr * we have a conflict and must solve it */ struct ip_addr sipaddr, dipaddr; struct eth_addr netifaddr; netifaddr.addr[0] = netif->hwaddr[0]; netifaddr.addr[1] = netif->hwaddr[1]; netifaddr.addr[2] = netif->hwaddr[2]; netifaddr.addr[3] = netif->hwaddr[3]; netifaddr.addr[4] = netif->hwaddr[4]; netifaddr.addr[5] = netif->hwaddr[5]; /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without * structure packing (not using structure copy which breaks strict-aliasing rules). */ SMEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr)); SMEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr)); if ((netif->autoip->state == AUTOIP_STATE_PROBING) || ((netif->autoip->state == AUTOIP_STATE_ANNOUNCING) && (netif->autoip->sent_num == 0))) { /* RFC 3927 Section 2.2.1: * from beginning to after ANNOUNCE_WAIT * seconds we have a conflict if * ip.src == llipaddr OR * ip.dst == llipaddr && hw.src != own hwaddr */ if ((ip_addr_cmp(&sipaddr, &netif->autoip->llipaddr)) || (ip_addr_cmp(&dipaddr, &netif->autoip->llipaddr) && !eth_addr_cmp(&netifaddr, &hdr->shwaddr))) { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("autoip_arp_reply(): Probe Conflict detected\n")); autoip_start(netif); } } else { /* RFC 3927 Section 2.5: * in any state we have a conflict if * ip.src == llipaddr && hw.src != own hwaddr */ if (ip_addr_cmp(&sipaddr, &netif->autoip->llipaddr) && !eth_addr_cmp(&netifaddr, &hdr->shwaddr)) { LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 1, ("autoip_arp_reply(): Conflicting ARP-Packet detected\n")); autoip_handle_arp_conflict(netif); } } } } #endif /* LWIP_AUTOIP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/icmp.c000066400000000000000000000255071224274632000230320ustar00rootroot00000000000000/** * @file * ICMP - Internet Control Message Protocol * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ /* Some ICMP messages should be passed to the transport protocols. This is not implemented. */ #include "lwip/opt.h" #if LWIP_ICMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/icmp.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/ip.h" #include "lwip/def.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include /** Small optimization: set to 0 if incoming PBUF_POOL pbuf always can be * used to modify and send a response packet (and to 1 if this is not the case, * e.g. when link header is stripped of when receiving) */ #ifndef LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN #define LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN 1 #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */ /* The amount of data from the original packet to return in a dest-unreachable */ #define ICMP_DEST_UNREACH_DATASIZE 8 static void icmp_send_response(struct pbuf *p, u8_t type, u8_t code); /** * Processes ICMP input packets, called from ip_input(). * * Currently only processes icmp echo requests and sends * out the echo response. * * @param p the icmp echo request packet, p->payload pointing to the ip header * @param inp the netif on which this packet was received */ void icmp_input(struct pbuf *p, struct netif *inp) { u8_t type; #ifdef LWIP_DEBUG u8_t code; #endif /* LWIP_DEBUG */ struct icmp_echo_hdr *iecho; struct ip_hdr *iphdr; struct ip_addr tmpaddr; s16_t hlen; ICMP_STATS_INC(icmp.recv); snmp_inc_icmpinmsgs(); iphdr = p->payload; hlen = IPH_HL(iphdr) * 4; if (pbuf_header(p, -hlen) || (p->tot_len < sizeof(u16_t)*2)) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: short ICMP (%"U16_F" bytes) received\n", p->tot_len)); goto lenerr; } type = *((u8_t *)p->payload); #ifdef LWIP_DEBUG code = *(((u8_t *)p->payload)+1); #endif /* LWIP_DEBUG */ switch (type) { case ICMP_ECHO: #if !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING { int accepted = 1; #if !LWIP_MULTICAST_PING /* multicast destination address? */ if (ip_addr_ismulticast(&iphdr->dest)) { accepted = 0; } #endif /* LWIP_MULTICAST_PING */ #if !LWIP_BROADCAST_PING /* broadcast destination address? */ if (ip_addr_isbroadcast(&iphdr->dest, inp)) { accepted = 0; } #endif /* LWIP_BROADCAST_PING */ /* broadcast or multicast destination address not acceptd? */ if (!accepted) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: Not echoing to multicast or broadcast pings\n")); ICMP_STATS_INC(icmp.err); pbuf_free(p); return; } } #endif /* !LWIP_MULTICAST_PING || !LWIP_BROADCAST_PING */ LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ping\n")); if (p->tot_len < sizeof(struct icmp_echo_hdr)) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: bad ICMP echo received\n")); goto lenerr; } if (inet_chksum_pbuf(p) != 0) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo\n")); pbuf_free(p); ICMP_STATS_INC(icmp.chkerr); snmp_inc_icmpinerrors(); return; } #if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN if (pbuf_header(p, (PBUF_IP_HLEN + PBUF_LINK_HLEN))) { /* p is not big enough to contain link headers * allocate a new one and copy p into it */ struct pbuf *r; /* switch p->payload to ip header */ if (pbuf_header(p, hlen)) { LWIP_ASSERT("icmp_input: moving p->payload to ip header failed\n", 0); goto memerr; } /* allocate new packet buffer with space for link headers */ r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM); if (r == NULL) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: allocating new pbuf failed\n")); goto memerr; } LWIP_ASSERT("check that first pbuf can hold struct the ICMP header", (r->len >= hlen + sizeof(struct icmp_echo_hdr))); /* copy the whole packet including ip header */ if (pbuf_copy(r, p) != ERR_OK) { LWIP_ASSERT("icmp_input: copying to new pbuf failed\n", 0); goto memerr; } iphdr = r->payload; /* switch r->payload back to icmp header */ if (pbuf_header(r, -hlen)) { LWIP_ASSERT("icmp_input: restoring original p->payload failed\n", 0); goto memerr; } /* free the original p */ pbuf_free(p); /* we now have an identical copy of p that has room for link headers */ p = r; } else { /* restore p->payload to point to icmp header */ if (pbuf_header(p, -(s16_t)(PBUF_IP_HLEN + PBUF_LINK_HLEN))) { LWIP_ASSERT("icmp_input: restoring original p->payload failed\n", 0); goto memerr; } } #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */ /* At this point, all checks are OK. */ /* We generate an answer by switching the dest and src ip addresses, * setting the icmp type to ECHO_RESPONSE and updating the checksum. */ iecho = p->payload; tmpaddr.addr = iphdr->src.addr; iphdr->src.addr = iphdr->dest.addr; iphdr->dest.addr = tmpaddr.addr; ICMPH_TYPE_SET(iecho, ICMP_ER); /* adjust the checksum */ if (iecho->chksum >= htons(0xffff - (ICMP_ECHO << 8))) { iecho->chksum += htons(ICMP_ECHO << 8) + 1; } else { iecho->chksum += htons(ICMP_ECHO << 8); } /* Set the correct TTL and recalculate the header checksum. */ IPH_TTL_SET(iphdr, ICMP_TTL); IPH_CHKSUM_SET(iphdr, 0); #if CHECKSUM_GEN_IP IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN)); #endif /* CHECKSUM_GEN_IP */ ICMP_STATS_INC(icmp.xmit); /* increase number of messages attempted to send */ snmp_inc_icmpoutmsgs(); /* increase number of echo replies attempted to send */ snmp_inc_icmpoutechoreps(); if(pbuf_header(p, hlen)) { LWIP_ASSERT("Can't move over header in packet", 0); } else { err_t ret; ret = ip_output_if(p, &(iphdr->src), IP_HDRINCL, ICMP_TTL, 0, IP_PROTO_ICMP, inp); if (ret != ERR_OK) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ip_output_if returned an error: %c.\n", ret)); } } break; default: LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\n", (s16_t)type, (s16_t)code)); ICMP_STATS_INC(icmp.proterr); ICMP_STATS_INC(icmp.drop); } pbuf_free(p); return; lenerr: pbuf_free(p); ICMP_STATS_INC(icmp.lenerr); snmp_inc_icmpinerrors(); return; #if LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN memerr: pbuf_free(p); ICMP_STATS_INC(icmp.err); snmp_inc_icmpinerrors(); return; #endif /* LWIP_ICMP_ECHO_CHECK_INPUT_PBUF_LEN */ } /** * Send an icmp 'destination unreachable' packet, called from ip_input() if * the transport layer protocol is unknown and from udp_input() if the local * port is not bound. * * @param p the input packet for which the 'unreachable' should be sent, * p->payload pointing to the IP header * @param t type of the 'unreachable' packet */ void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t) { icmp_send_response(p, ICMP_DUR, t); } #if IP_FORWARD || IP_REASSEMBLY /** * Send a 'time exceeded' packet, called from ip_forward() if TTL is 0. * * @param p the input packet for which the 'time exceeded' should be sent, * p->payload pointing to the IP header * @param t type of the 'time exceeded' packet */ void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t) { icmp_send_response(p, ICMP_TE, t); } #endif /* IP_FORWARD || IP_REASSEMBLY */ /** * Send an icmp packet in response to an incoming packet. * * @param p the input packet for which the 'unreachable' should be sent, * p->payload pointing to the IP header * @param type Type of the ICMP header * @param code Code of the ICMP header */ static void icmp_send_response(struct pbuf *p, u8_t type, u8_t code) { struct pbuf *q; struct ip_hdr *iphdr; /* we can use the echo header here */ struct icmp_echo_hdr *icmphdr; /* ICMP header + IP header + 8 bytes of data */ q = pbuf_alloc(PBUF_IP, sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE, PBUF_RAM); if (q == NULL) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded: failed to allocate pbuf for ICMP packet.\n")); return; } LWIP_ASSERT("check that first pbuf can hold icmp message", (q->len >= (sizeof(struct icmp_echo_hdr) + IP_HLEN + ICMP_DEST_UNREACH_DATASIZE))); iphdr = p->payload; LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded from ")); ip_addr_debug_print(ICMP_DEBUG, &(iphdr->src)); LWIP_DEBUGF(ICMP_DEBUG, (" to ")); ip_addr_debug_print(ICMP_DEBUG, &(iphdr->dest)); LWIP_DEBUGF(ICMP_DEBUG, ("\n")); icmphdr = q->payload; icmphdr->type = type; icmphdr->code = code; icmphdr->id = 0; icmphdr->seqno = 0; /* copy fields from original packet */ SMEMCPY((u8_t *)q->payload + sizeof(struct icmp_echo_hdr), (u8_t *)p->payload, IP_HLEN + ICMP_DEST_UNREACH_DATASIZE); /* calculate checksum */ icmphdr->chksum = 0; icmphdr->chksum = inet_chksum(icmphdr, q->len); ICMP_STATS_INC(icmp.xmit); /* increase number of messages attempted to send */ snmp_inc_icmpoutmsgs(); /* increase number of destination unreachable messages attempted to send */ snmp_inc_icmpouttimeexcds(); ip_output(q, NULL, &(iphdr->src), ICMP_TTL, 0, IP_PROTO_ICMP); pbuf_free(q); } #endif /* LWIP_ICMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/igmp.c000066400000000000000000000615521224274632000230360ustar00rootroot00000000000000/** * @file * IGMP - Internet Group Management Protocol * */ /* * Copyright (c) 2002 CITEL Technologies Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of CITEL Technologies Ltd nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY CITEL TECHNOLOGIES AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL CITEL TECHNOLOGIES OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * This file is a contribution to the lwIP TCP/IP stack. * The Swedish Institute of Computer Science and Adam Dunkels * are specifically granted permission to redistribute this * source code. */ /*------------------------------------------------------------- Note 1) Although the rfc requires V1 AND V2 capability we will only support v2 since now V1 is very old (August 1989) V1 can be added if required a debug print and statistic have been implemented to show this up. ------------------------------------------------------------- ------------------------------------------------------------- Note 2) A query for a specific group address (as opposed to ALLHOSTS) has now been implemented as I am unsure if it is required a debug print and statistic have been implemented to show this up. ------------------------------------------------------------- ------------------------------------------------------------- Note 3) The router alert rfc 2113 is implemented in outgoing packets but not checked rigorously incoming ------------------------------------------------------------- Steve Reynolds ------------------------------------------------------------*/ /*----------------------------------------------------------------------------- * RFC 988 - Host extensions for IP multicasting - V0 * RFC 1054 - Host extensions for IP multicasting - * RFC 1112 - Host extensions for IP multicasting - V1 * RFC 2236 - Internet Group Management Protocol, Version 2 - V2 <- this code is based on this RFC (it's the "de facto" standard) * RFC 3376 - Internet Group Management Protocol, Version 3 - V3 * RFC 4604 - Using Internet Group Management Protocol Version 3... - V3+ * RFC 2113 - IP Router Alert Option - *----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------- * Includes *----------------------------------------------------------------------------*/ #include "lwip/opt.h" #if LWIP_IGMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/igmp.h" #include "lwip/debug.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/ip.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/netif.h" #include "lwip/icmp.h" #include "lwip/udp.h" #include "lwip/tcp.h" #include "lwip/stats.h" #include "string.h" /*----------------------------------------------------------------------------- * Globales *----------------------------------------------------------------------------*/ static struct igmp_group* igmp_group_list; static struct ip_addr allsystems; static struct ip_addr allrouters; /** * Initialize the IGMP module */ void igmp_init(void) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_init: initializing\n")); IP4_ADDR(&allsystems, 224, 0, 0, 1); IP4_ADDR(&allrouters, 224, 0, 0, 2); } #ifdef LWIP_DEBUG /** * Dump global IGMP groups list */ void igmp_dump_group_list() { struct igmp_group *group = igmp_group_list; while (group != NULL) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_dump_group_list: [%"U32_F"] ", (u32_t)(group->group_state))); ip_addr_debug_print(IGMP_DEBUG, &group->group_address); LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", group->interface)); group = group->next; } LWIP_DEBUGF(IGMP_DEBUG, ("\n")); } #else #define igmp_dump_group_list() #endif /* LWIP_DEBUG */ /** * Start IGMP processing on interface * * @param netif network interface on which start IGMP processing */ err_t igmp_start(struct netif *netif) { struct igmp_group* group; LWIP_DEBUGF(IGMP_DEBUG, ("igmp_start: starting IGMP processing on if %p\n", netif)); group = igmp_lookup_group(netif, &allsystems); if (group != NULL) { group->group_state = IGMP_GROUP_IDLE_MEMBER; group->use++; /* Allow the igmp messages at the MAC level */ if (netif->igmp_mac_filter != NULL) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_start: igmp_mac_filter(ADD ")); ip_addr_debug_print(IGMP_DEBUG, &allsystems); LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif)); netif->igmp_mac_filter( netif, &allsystems, IGMP_ADD_MAC_FILTER); } return ERR_OK; } return ERR_MEM; } /** * Stop IGMP processing on interface * * @param netif network interface on which stop IGMP processing */ err_t igmp_stop(struct netif *netif) { struct igmp_group *group = igmp_group_list; struct igmp_group *prev = NULL; struct igmp_group *next; /* look for groups joined on this interface further down the list */ while (group != NULL) { next = group->next; /* is it a group joined on this interface? */ if (group->interface == netif) { /* is it the first group of the list? */ if (group == igmp_group_list) { igmp_group_list = next; } /* is there a "previous" group defined? */ if (prev != NULL) { prev->next = next; } /* disable the group at the MAC level */ if (netif->igmp_mac_filter != NULL) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_stop: igmp_mac_filter(DEL ")); ip_addr_debug_print(IGMP_DEBUG, &group->group_address); LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif)); netif->igmp_mac_filter(netif, &(group->group_address), IGMP_DEL_MAC_FILTER); } /* free group */ memp_free(MEMP_IGMP_GROUP, group); } else { /* change the "previous" */ prev = group; } /* move to "next" */ group = next; } return ERR_OK; } /** * Report IGMP memberships for this interface * * @param netif network interface on which report IGMP memberships */ void igmp_report_groups( struct netif *netif) { struct igmp_group *group = igmp_group_list; LWIP_DEBUGF(IGMP_DEBUG, ("igmp_report_groups: sending IGMP reports on if %p\n", netif)); while (group != NULL) { if (group->interface == netif) { igmp_delaying_member( group, IGMP_JOIN_DELAYING_MEMBER_TMR); } group = group->next; } } /** * Search for a group in the global igmp_group_list * * @param ifp the network interface for which to look * @param addr the group ip address to search for * @return a struct igmp_group* if the group has been found, * NULL if the group wasn't found. */ struct igmp_group * igmp_lookfor_group(struct netif *ifp, struct ip_addr *addr) { struct igmp_group *group = igmp_group_list; while (group != NULL) { if ((group->interface == ifp) && (ip_addr_cmp(&(group->group_address), addr))) { return group; } group = group->next; } /* to be clearer, we return NULL here instead of * 'group' (which is also NULL at this point). */ return NULL; } /** * Search for a specific igmp group and create a new one if not found- * * @param ifp the network interface for which to look * @param addr the group ip address to search * @return a struct igmp_group*, * NULL on memory error. */ struct igmp_group * igmp_lookup_group(struct netif *ifp, struct ip_addr *addr) { struct igmp_group *group = igmp_group_list; /* Search if the group already exists */ group = igmp_lookfor_group(ifp, addr); if (group != NULL) { /* Group already exists. */ return group; } /* Group doesn't exist yet, create a new one */ group = memp_malloc(MEMP_IGMP_GROUP); if (group != NULL) { group->interface = ifp; ip_addr_set(&(group->group_address), addr); group->timer = 0; /* Not running */ group->group_state = IGMP_GROUP_NON_MEMBER; group->last_reporter_flag = 0; group->use = 0; group->next = igmp_group_list; igmp_group_list = group; } LWIP_DEBUGF(IGMP_DEBUG, ("igmp_lookup_group: %sallocated a new group with address ", (group?"":"impossible to "))); ip_addr_debug_print(IGMP_DEBUG, addr); LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", ifp)); return group; } /** * Remove a group in the global igmp_group_list * * @param group the group to remove from the global igmp_group_list * @return ERR_OK if group was removed from the list, an err_t otherwise */ err_t igmp_remove_group(struct igmp_group *group) { err_t err = ERR_OK; /* Is it the first group? */ if (igmp_group_list == group) { igmp_group_list = group->next; } else { /* look for group further down the list */ struct igmp_group *tmpGroup; for (tmpGroup = igmp_group_list; tmpGroup != NULL; tmpGroup = tmpGroup->next) { if (tmpGroup->next == group) { tmpGroup->next = group->next; break; } } /* Group not found in the global igmp_group_list */ if (tmpGroup == NULL) err = ERR_ARG; } /* free group */ memp_free(MEMP_IGMP_GROUP, group); return err; } /** * Called from ip_input() if a new IGMP packet is received. * * @param p received igmp packet, p->payload pointing to the ip header * @param inp network interface on which the packet was received * @param dest destination ip address of the igmp packet */ void igmp_input(struct pbuf *p, struct netif *inp, struct ip_addr *dest) { struct ip_hdr * iphdr; struct igmp_msg* igmp; struct igmp_group* group; struct igmp_group* groupref; /* Note that the length CAN be greater than 8 but only 8 are used - All are included in the checksum */ iphdr = p->payload; if (pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4)) || (p->len < IGMP_MINLEN)) { pbuf_free(p); IGMP_STATS_INC(igmp.lenerr); LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: length error\n")); return; } LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: message from ")); ip_addr_debug_print(IGMP_DEBUG, &(iphdr->src)); LWIP_DEBUGF(IGMP_DEBUG, (" to address ")); ip_addr_debug_print(IGMP_DEBUG, &(iphdr->dest)); LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", inp)); /* Now calculate and check the checksum */ igmp = (struct igmp_msg *)p->payload; if (inet_chksum(igmp, p->len)) { pbuf_free(p); IGMP_STATS_INC(igmp.chkerr); LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: checksum error\n")); return; } /* Packet is ok so find an existing group */ group = igmp_lookfor_group(inp, dest); /* use the incoming IP address! */ /* If group can be found or create... */ if (!group) { pbuf_free(p); LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP frame not for us\n")); return; } /* NOW ACT ON THE INCOMING MESSAGE TYPE... */ switch (igmp->igmp_msgtype) { case IGMP_MEMB_QUERY: { /* IGMP_MEMB_QUERY to the "all systems" address ? */ if ((ip_addr_cmp(dest, &allsystems)) && (igmp->igmp_group_address.addr == 0)) { /* THIS IS THE GENERAL QUERY */ LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: General IGMP_MEMB_QUERY on \"ALL SYSTEMS\" address (224.0.0.1) [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp))); if (igmp->igmp_maxresp == 0) { IGMP_STATS_INC(igmp.v1_rxed); LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: got an all hosts query with time== 0 - this is V1 and not implemented - treat as v2\n")); igmp->igmp_maxresp = IGMP_V1_DELAYING_MEMBER_TMR; } IGMP_STATS_INC(igmp.group_query_rxed); groupref = igmp_group_list; while (groupref) { /* Do not send messages on the all systems group address! */ if ((groupref->interface == inp) && (!(ip_addr_cmp(&(groupref->group_address), &allsystems)))) { igmp_delaying_member( groupref, igmp->igmp_maxresp); } groupref = groupref->next; } } else { /* IGMP_MEMB_QUERY to a specific group ? */ if (group->group_address.addr != 0) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP_MEMB_QUERY to a specific group ")); ip_addr_debug_print(IGMP_DEBUG, &group->group_address); if (ip_addr_cmp (dest, &allsystems)) { LWIP_DEBUGF(IGMP_DEBUG, (" using \"ALL SYSTEMS\" address (224.0.0.1) [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp))); /* we first need to re-lookfor the group since we used dest last time */ group = igmp_lookfor_group(inp, &igmp->igmp_group_address); } else { LWIP_DEBUGF(IGMP_DEBUG, (" with the group address as destination [igmp_maxresp=%i]\n", (int)(igmp->igmp_maxresp))); } if (group != NULL) { IGMP_STATS_INC(igmp.unicast_query); igmp_delaying_member( group, igmp->igmp_maxresp); } } } break; } case IGMP_V2_MEMB_REPORT: { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: IGMP_V2_MEMB_REPORT\n")); IGMP_STATS_INC(igmp.report_rxed); if (group->group_state == IGMP_GROUP_DELAYING_MEMBER) { /* This is on a specific group we have already looked up */ group->timer = 0; /* stopped */ group->group_state = IGMP_GROUP_IDLE_MEMBER; group->last_reporter_flag = 0; } break; } default: { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_input: unexpected msg %d in state %d on group %p on if %p\n", igmp->igmp_msgtype, group->group_state, &group, group->interface)); break; } } pbuf_free(p); return; } /** * Join a group on one network interface. * * @param ifaddr ip address of the network interface which should join a new group * @param groupaddr the ip address of the group which to join * @return ERR_OK if group was joined on the netif(s), an err_t otherwise */ err_t igmp_joingroup(struct ip_addr *ifaddr, struct ip_addr *groupaddr) { err_t err = ERR_VAL; /* no matching interface */ struct igmp_group *group; struct netif *netif; /* make sure it is multicast address */ LWIP_ERROR("igmp_joingroup: attempt to join non-multicast address", ip_addr_ismulticast(groupaddr), return ERR_VAL;); LWIP_ERROR("igmp_joingroup: attempt to join allsystems address", (!ip_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;); /* loop through netif's */ netif = netif_list; while (netif != NULL) { /* Should we join this interface ? */ if ((netif->flags & NETIF_FLAG_IGMP) && ((ip_addr_isany(ifaddr) || ip_addr_cmp(&(netif->ip_addr), ifaddr)))) { /* find group or create a new one if not found */ group = igmp_lookup_group(netif, groupaddr); if (group != NULL) { /* This should create a new group, check the state to make sure */ if (group->group_state != IGMP_GROUP_NON_MEMBER) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: join to group not in state IGMP_GROUP_NON_MEMBER\n")); } else { /* OK - it was new group */ LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: join to new group: ")); ip_addr_debug_print(IGMP_DEBUG, groupaddr); LWIP_DEBUGF(IGMP_DEBUG, ("\n")); /* If first use of the group, allow the group at the MAC level */ if ((group->use==0) && (netif->igmp_mac_filter != NULL)) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: igmp_mac_filter(ADD ")); ip_addr_debug_print(IGMP_DEBUG, groupaddr); LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif)); netif->igmp_mac_filter(netif, groupaddr, IGMP_ADD_MAC_FILTER); } IGMP_STATS_INC(igmp.join_sent); igmp_send(group, IGMP_V2_MEMB_REPORT); igmp_start_timer(group, IGMP_JOIN_DELAYING_MEMBER_TMR); /* Need to work out where this timer comes from */ group->group_state = IGMP_GROUP_DELAYING_MEMBER; } /* Increment group use */ group->use++; /* Join on this interface */ err = ERR_OK; } else { /* Return an error even if some network interfaces are joined */ /** @todo undo any other netif already joined */ LWIP_DEBUGF(IGMP_DEBUG, ("igmp_joingroup: Not enought memory to join to group\n")); return ERR_MEM; } } /* proceed to next network interface */ netif = netif->next; } return err; } /** * Leave a group on one network interface. * * @param ifaddr ip address of the network interface which should leave a group * @param groupaddr the ip address of the group which to leave * @return ERR_OK if group was left on the netif(s), an err_t otherwise */ err_t igmp_leavegroup(struct ip_addr *ifaddr, struct ip_addr *groupaddr) { err_t err = ERR_VAL; /* no matching interface */ struct igmp_group *group; struct netif *netif; /* make sure it is multicast address */ LWIP_ERROR("igmp_leavegroup: attempt to leave non-multicast address", ip_addr_ismulticast(groupaddr), return ERR_VAL;); LWIP_ERROR("igmp_leavegroup: attempt to leave allsystems address", (!ip_addr_cmp(groupaddr, &allsystems)), return ERR_VAL;); /* loop through netif's */ netif = netif_list; while (netif != NULL) { /* Should we leave this interface ? */ if ((netif->flags & NETIF_FLAG_IGMP) && ((ip_addr_isany(ifaddr) || ip_addr_cmp(&(netif->ip_addr), ifaddr)))) { /* find group */ group = igmp_lookfor_group(netif, groupaddr); if (group != NULL) { /* Only send a leave if the flag is set according to the state diagram */ LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: Leaving group: ")); ip_addr_debug_print(IGMP_DEBUG, groupaddr); LWIP_DEBUGF(IGMP_DEBUG, ("\n")); /* If there is no other use of the group */ if (group->use <= 1) { /* If we are the last reporter for this group */ if (group->last_reporter_flag) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: sending leaving group\n")); IGMP_STATS_INC(igmp.leave_sent); igmp_send(group, IGMP_LEAVE_GROUP); } /* Disable the group at the MAC level */ if (netif->igmp_mac_filter != NULL) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: igmp_mac_filter(DEL ")); ip_addr_debug_print(IGMP_DEBUG, groupaddr); LWIP_DEBUGF(IGMP_DEBUG, (") on if %p\n", netif)); netif->igmp_mac_filter(netif, groupaddr, IGMP_DEL_MAC_FILTER); } LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: remove group: ")); ip_addr_debug_print(IGMP_DEBUG, groupaddr); LWIP_DEBUGF(IGMP_DEBUG, ("\n")); /* Free the group */ igmp_remove_group(group); } else { /* Decrement group use */ group->use--; } /* Leave on this interface */ err = ERR_OK; } else { /* It's not a fatal error on "leavegroup" */ LWIP_DEBUGF(IGMP_DEBUG, ("igmp_leavegroup: not member of group\n")); } } /* proceed to next network interface */ netif = netif->next; } return err; } /** * The igmp timer function (both for NO_SYS=1 and =0) * Should be called every IGMP_TMR_INTERVAL milliseconds (100 ms is default). */ void igmp_tmr(void) { struct igmp_group *group = igmp_group_list; while (group != NULL) { if (group->timer != 0) { group->timer -= 1; if (group->timer == 0) { igmp_timeout(group); } } group = group->next; } } /** * Called if a timeout for one group is reached. * Sends a report for this group. * * @param group an igmp_group for which a timeout is reached */ void igmp_timeout(struct igmp_group *group) { /* If the state is IGMP_GROUP_DELAYING_MEMBER then we send a report for this group */ if (group->group_state == IGMP_GROUP_DELAYING_MEMBER) { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_timeout: report membership for group with address ")); ip_addr_debug_print(IGMP_DEBUG, &(group->group_address)); LWIP_DEBUGF(IGMP_DEBUG, (" on if %p\n", group->interface)); igmp_send(group, IGMP_V2_MEMB_REPORT); } } /** * Start a timer for an igmp group * * @param group the igmp_group for which to start a timer * @param max_time the time in multiples of IGMP_TMR_INTERVAL (decrease with * every call to igmp_tmr()) */ void igmp_start_timer(struct igmp_group *group, u8_t max_time) { /** * @todo Important !! this should be random 0 -> max_time. Find out how to do this */ group->timer = max_time; } /** * Stop a timer for an igmp_group * * @param group the igmp_group for which to stop the timer */ void igmp_stop_timer(struct igmp_group *group) { group->timer = 0; } /** * Delaying membership report for a group if necessary * * @param group the igmp_group for which "delaying" membership report * @param maxresp query delay */ void igmp_delaying_member( struct igmp_group *group, u8_t maxresp) { if ((group->group_state == IGMP_GROUP_IDLE_MEMBER) || ((group->group_state == IGMP_GROUP_DELAYING_MEMBER) && (maxresp > group->timer))) { igmp_start_timer(group, (maxresp)/2); group->group_state = IGMP_GROUP_DELAYING_MEMBER; } } /** * Sends an IP packet on a network interface. This function constructs the IP header * and calculates the IP header checksum. If the source IP address is NULL, * the IP address of the outgoing network interface is filled in as source address. * * @param p the packet to send (p->payload points to the data, e.g. next protocol header; if dest == IP_HDRINCL, p already includes an IP header and p->payload points to that IP header) * @param src the source IP address to send from (if src == IP_ADDR_ANY, the * IP address of the netif used to send is used as source address) * @param dest the destination IP address to send the packet to * @param ttl the TTL value to be set in the IP header * @param proto the PROTOCOL to be set in the IP header * @param netif the netif on which to send this packet * @return ERR_OK if the packet was sent OK * ERR_BUF if p doesn't have enough space for IP/LINK headers * returns errors returned by netif->output */ err_t igmp_ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto, struct netif *netif) { /* This is the "router alert" option */ u16_t ra[2]; ra[0] = htons (ROUTER_ALERT); ra[1] = 0x0000; /* Router shall examine packet */ return ip_output_if_opt(p, src, dest, ttl, 0, proto, netif, ra, ROUTER_ALERTLEN); } /** * Send an igmp packet to a specific group. * * @param group the group to which to send the packet * @param type the type of igmp packet to send */ void igmp_send(struct igmp_group *group, u8_t type) { struct pbuf* p = NULL; struct igmp_msg* igmp = NULL; struct ip_addr src = {0}; struct ip_addr* dest = NULL; /* IP header + "router alert" option + IGMP header */ p = pbuf_alloc(PBUF_TRANSPORT, IGMP_MINLEN, PBUF_RAM); if (p) { igmp = p->payload; LWIP_ASSERT("igmp_send: check that first pbuf can hold struct igmp_msg", (p->len >= sizeof(struct igmp_msg))); ip_addr_set(&src, &((group->interface)->ip_addr)); if (type == IGMP_V2_MEMB_REPORT) { dest = &(group->group_address); IGMP_STATS_INC(igmp.report_sent); ip_addr_set(&(igmp->igmp_group_address), &(group->group_address)); group->last_reporter_flag = 1; /* Remember we were the last to report */ } else { if (type == IGMP_LEAVE_GROUP) { dest = &allrouters; ip_addr_set(&(igmp->igmp_group_address), &(group->group_address)); } } if ((type == IGMP_V2_MEMB_REPORT) || (type == IGMP_LEAVE_GROUP)) { igmp->igmp_msgtype = type; igmp->igmp_maxresp = 0; igmp->igmp_checksum = 0; igmp->igmp_checksum = inet_chksum( igmp, IGMP_MINLEN); igmp_ip_output_if(p, &src, dest, IGMP_TTL, IP_PROTO_IGMP, group->interface); } pbuf_free(p); } else { LWIP_DEBUGF(IGMP_DEBUG, ("igmp_send: not enough memory for igmp_send\n")); } } #endif /* LWIP_IGMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/inet.c000066400000000000000000000160231224274632000230320ustar00rootroot00000000000000/** * @file * Functions common to all TCP/IPv4 modules, such as the byte order functions. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/inet.h" /* Here for now until needed in other places in lwIP */ #ifndef isprint #define in_range(c, lo, up) ((u8_t)c >= lo && (u8_t)c <= up) #define isprint(c) in_range(c, 0x20, 0x7f) #define isdigit(c) in_range(c, '0', '9') #define isxdigit(c) (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F')) #define islower(c) in_range(c, 'a', 'z') #define isspace(c) (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v') #endif /** * Ascii internet address interpretation routine. * The value returned is in network order. * * @param cp IP address in ascii represenation (e.g. "127.0.0.1") * @return ip address in network order */ u32_t inet_addr(const char *cp) { struct in_addr val; if (inet_aton(cp, &val)) { return (val.s_addr); } return (INADDR_NONE); } /** * Check whether "cp" is a valid ascii representation * of an Internet address and convert to a binary address. * Returns 1 if the address is valid, 0 if not. * This replaces inet_addr, the return value from which * cannot distinguish between failure and a local broadcast address. * * @param cp IP address in ascii represenation (e.g. "127.0.0.1") * @param addr pointer to which to save the ip address in network order * @return 1 if cp could be converted to addr, 0 on failure */ int inet_aton(const char *cp, struct in_addr *addr) { u32_t val; u8_t base; char c; u32_t parts[4]; u32_t *pp = parts; c = *cp; for (;;) { /* * Collect number up to ``.''. * Values are specified as for C: * 0x=hex, 0=octal, 1-9=decimal. */ if (!isdigit(c)) return (0); val = 0; base = 10; if (c == '0') { c = *++cp; if (c == 'x' || c == 'X') { base = 16; c = *++cp; } else base = 8; } for (;;) { if (isdigit(c)) { val = (val * base) + (int)(c - '0'); c = *++cp; } else if (base == 16 && isxdigit(c)) { val = (val << 4) | (int)(c + 10 - (islower(c) ? 'a' : 'A')); c = *++cp; } else break; } if (c == '.') { /* * Internet format: * a.b.c.d * a.b.c (with c treated as 16 bits) * a.b (with b treated as 24 bits) */ if (pp >= parts + 3) return (0); *pp++ = val; c = *++cp; } else break; } /* * Check for trailing characters. */ if (c != '\0' && !isspace(c)) return (0); /* * Concoct the address according to * the number of parts specified. */ switch (pp - parts + 1) { case 0: return (0); /* initial nondigit */ case 1: /* a -- 32 bits */ break; case 2: /* a.b -- 8.24 bits */ if (val > 0xffffffUL) return (0); val |= parts[0] << 24; break; case 3: /* a.b.c -- 8.8.16 bits */ if (val > 0xffff) return (0); val |= (parts[0] << 24) | (parts[1] << 16); break; case 4: /* a.b.c.d -- 8.8.8.8 bits */ if (val > 0xff) return (0); val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); break; } if (addr) addr->s_addr = htonl(val); return (1); } /** * Convert numeric IP address into decimal dotted ASCII representation. * returns ptr to static buffer; not reentrant! * * @param addr ip address in network order to convert * @return pointer to a global static (!) buffer that holds the ASCII * represenation of addr */ char * inet_ntoa(struct in_addr addr) { static char str[16]; u32_t s_addr = addr.s_addr; char inv[3]; char *rp; u8_t *ap; u8_t rem; u8_t n; u8_t i; rp = str; ap = (u8_t *)&s_addr; for(n = 0; n < 4; n++) { i = 0; do { rem = *ap % (u8_t)10; *ap /= (u8_t)10; inv[i++] = '0' + rem; } while(*ap); while(i--) *rp++ = inv[i]; *rp++ = '.'; ap++; } *--rp = 0; return str; } /** * These are reference implementations of the byte swapping functions. * Again with the aim of being simple, correct and fully portable. * Byte swapping is the second thing you would want to optimize. You will * need to port it to your architecture and in your cc.h: * * #define LWIP_PLATFORM_BYTESWAP 1 * #define LWIP_PLATFORM_HTONS(x) * #define LWIP_PLATFORM_HTONL(x) * * Note ntohs() and ntohl() are merely references to the htonx counterparts. */ #if (LWIP_PLATFORM_BYTESWAP == 0) && (BYTE_ORDER == LITTLE_ENDIAN) /** * Convert an u16_t from host- to network byte order. * * @param n u16_t in host byte order * @return n in network byte order */ u16_t htons(u16_t n) { return ((n & 0xff) << 8) | ((n & 0xff00) >> 8); } /** * Convert an u16_t from network- to host byte order. * * @param n u16_t in network byte order * @return n in host byte order */ u16_t ntohs(u16_t n) { return htons(n); } /** * Convert an u32_t from host- to network byte order. * * @param n u32_t in host byte order * @return n in network byte order */ u32_t htonl(u32_t n) { return ((n & 0xff) << 24) | ((n & 0xff00) << 8) | ((n & 0xff0000UL) >> 8) | ((n & 0xff000000UL) >> 24); } /** * Convert an u32_t from network- to host byte order. * * @param n u32_t in network byte order * @return n in host byte order */ u32_t ntohl(u32_t n) { return htonl(n); } #endif /* (LWIP_PLATFORM_BYTESWAP == 0) && (BYTE_ORDER == LITTLE_ENDIAN) */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/inet_chksum.c000066400000000000000000000310621224274632000244040ustar00rootroot00000000000000/** * @file * Incluse internet checksum functions. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/inet_chksum.h" #include "lwip/inet.h" #include /* These are some reference implementations of the checksum algorithm, with the * aim of being simple, correct and fully portable. Checksumming is the * first thing you would want to optimize for your platform. If you create * your own version, link it in and in your cc.h put: * * #define LWIP_CHKSUM * * Or you can select from the implementations below by defining * LWIP_CHKSUM_ALGORITHM to 1, 2 or 3. */ #ifndef LWIP_CHKSUM # define LWIP_CHKSUM lwip_standard_chksum # ifndef LWIP_CHKSUM_ALGORITHM # define LWIP_CHKSUM_ALGORITHM 1 # endif #endif /* If none set: */ #ifndef LWIP_CHKSUM_ALGORITHM # define LWIP_CHKSUM_ALGORITHM 0 #endif /** Like the name says... */ #if LWIP_PLATFORM_BYTESWAP && (BYTE_ORDER == LITTLE_ENDIAN) /* little endian and PLATFORM_BYTESWAP defined */ #define SWAP_BYTES_IN_WORD(w) LWIP_PLATFORM_HTONS(w) #else /* can't use htons on big endian (or PLATFORM_BYTESWAP not defined)... */ #define SWAP_BYTES_IN_WORD(w) ((w & 0xff) << 8) | ((w & 0xff00) >> 8) #endif /** Split an u32_t in two u16_ts and add them up */ #define FOLD_U32T(u) ((u >> 16) + (u & 0x0000ffffUL)) #if (LWIP_CHKSUM_ALGORITHM == 1) /* Version #1 */ /** * lwip checksum * * @param dataptr points to start of data to be summed at any boundary * @param len length of data to be summed * @return host order (!) lwip checksum (non-inverted Internet sum) * * @note accumulator size limits summable length to 64k * @note host endianess is irrelevant (p3 RFC1071) */ static u16_t lwip_standard_chksum(void *dataptr, u16_t len) { u32_t acc; u16_t src; u8_t *octetptr; acc = 0; /* dataptr may be at odd or even addresses */ octetptr = (u8_t*)dataptr; while (len > 1) { /* declare first octet as most significant thus assume network order, ignoring host order */ src = (*octetptr) << 8; octetptr++; /* declare second octet as least significant */ src |= (*octetptr); octetptr++; acc += src; len -= 2; } if (len > 0) { /* accumulate remaining octet */ src = (*octetptr) << 8; acc += src; } /* add deferred carry bits */ acc = (acc >> 16) + (acc & 0x0000ffffUL); if ((acc & 0xffff0000UL) != 0) { acc = (acc >> 16) + (acc & 0x0000ffffUL); } /* This maybe a little confusing: reorder sum using htons() instead of ntohs() since it has a little less call overhead. The caller must invert bits for Internet sum ! */ return htons((u16_t)acc); } #endif #if (LWIP_CHKSUM_ALGORITHM == 2) /* Alternative version #2 */ /* * Curt McDowell * Broadcom Corp. * csm@broadcom.com * * IP checksum two bytes at a time with support for * unaligned buffer. * Works for len up to and including 0x20000. * by Curt McDowell, Broadcom Corp. 12/08/2005 * * @param dataptr points to start of data to be summed at any boundary * @param len length of data to be summed * @return host order (!) lwip checksum (non-inverted Internet sum) */ static u16_t lwip_standard_chksum(void *dataptr, int len) { u8_t *pb = dataptr; u16_t *ps, t = 0; u32_t sum = 0; int odd = ((u32_t)pb & 1); /* Get aligned to u16_t */ if (odd && len > 0) { ((u8_t *)&t)[1] = *pb++; len--; } /* Add the bulk of the data */ ps = (u16_t *)pb; while (len > 1) { sum += *ps++; len -= 2; } /* Consume left-over byte, if any */ if (len > 0) { ((u8_t *)&t)[0] = *(u8_t *)ps;; } /* Add end bytes */ sum += t; /* Fold 32-bit sum to 16 bits calling this twice is propably faster than if statements... */ sum = FOLD_U32T(sum); sum = FOLD_U32T(sum); /* Swap if alignment was odd */ if (odd) { sum = SWAP_BYTES_IN_WORD(sum); } return sum; } #endif #if (LWIP_CHKSUM_ALGORITHM == 3) /* Alternative version #3 */ /** * An optimized checksum routine. Basically, it uses loop-unrolling on * the checksum loop, treating the head and tail bytes specially, whereas * the inner loop acts on 8 bytes at a time. * * @arg start of buffer to be checksummed. May be an odd byte address. * @len number of bytes in the buffer to be checksummed. * @return host order (!) lwip checksum (non-inverted Internet sum) * * by Curt McDowell, Broadcom Corp. December 8th, 2005 */ static u16_t lwip_standard_chksum(void *dataptr, int len) { u8_t *pb = dataptr; u16_t *ps, t = 0; u32_t *pl; u32_t sum = 0, tmp; /* starts at odd byte address? */ int odd = ((u32_t)pb & 1); if (odd && len > 0) { ((u8_t *)&t)[1] = *pb++; len--; } ps = (u16_t *)pb; if (((u32_t)ps & 3) && len > 1) { sum += *ps++; len -= 2; } pl = (u32_t *)ps; while (len > 7) { tmp = sum + *pl++; /* ping */ if (tmp < sum) { tmp++; /* add back carry */ } sum = tmp + *pl++; /* pong */ if (sum < tmp) { sum++; /* add back carry */ } len -= 8; } /* make room in upper bits */ sum = FOLD_U32T(sum); ps = (u16_t *)pl; /* 16-bit aligned word remaining? */ while (len > 1) { sum += *ps++; len -= 2; } /* dangling tail byte remaining? */ if (len > 0) { /* include odd byte */ ((u8_t *)&t)[0] = *(u8_t *)ps; } sum += t; /* add end bytes */ /* Fold 32-bit sum to 16 bits calling this twice is propably faster than if statements... */ sum = FOLD_U32T(sum); sum = FOLD_U32T(sum); if (odd) { sum = SWAP_BYTES_IN_WORD(sum); } return sum; } #endif /* inet_chksum_pseudo: * * Calculates the pseudo Internet checksum used by TCP and UDP for a pbuf chain. * IP addresses are expected to be in network byte order. * * @param p chain of pbufs over that a checksum should be calculated (ip data part) * @param src source ip address (used for checksum of pseudo header) * @param dst destination ip address (used for checksum of pseudo header) * @param proto ip protocol (used for checksum of pseudo header) * @param proto_len length of the ip data part (used for checksum of pseudo header) * @return checksum (as u16_t) to be saved directly in the protocol header */ u16_t inet_chksum_pseudo(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u16_t proto_len) { u32_t acc; struct pbuf *q; u8_t swapped; acc = 0; swapped = 0; /* iterate through all pbuf in chain */ for(q = p; q != NULL; q = q->next) { LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): checksumming pbuf %p (has next %p) \n", (void *)q, (void *)q->next)); acc += LWIP_CHKSUM(q->payload, q->len); /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ /* just executing this next line is probably faster that the if statement needed to check whether we really need to execute it, and does no harm */ acc = FOLD_U32T(acc); if (q->len % 2 != 0) { swapped = 1 - swapped; acc = SWAP_BYTES_IN_WORD(acc); } /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/ } if (swapped) { acc = SWAP_BYTES_IN_WORD(acc); } acc += (src->addr & 0xffffUL); acc += ((src->addr >> 16) & 0xffffUL); acc += (dest->addr & 0xffffUL); acc += ((dest->addr >> 16) & 0xffffUL); acc += (u32_t)htons((u16_t)proto); acc += (u32_t)htons(proto_len); /* Fold 32-bit sum to 16 bits calling this twice is propably faster than if statements... */ acc = FOLD_U32T(acc); acc = FOLD_U32T(acc); LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc)); return (u16_t)~(acc & 0xffffUL); } /* inet_chksum_pseudo: * * Calculates the pseudo Internet checksum used by TCP and UDP for a pbuf chain. * IP addresses are expected to be in network byte order. * * @param p chain of pbufs over that a checksum should be calculated (ip data part) * @param src source ip address (used for checksum of pseudo header) * @param dst destination ip address (used for checksum of pseudo header) * @param proto ip protocol (used for checksum of pseudo header) * @param proto_len length of the ip data part (used for checksum of pseudo header) * @return checksum (as u16_t) to be saved directly in the protocol header */ /* Currently only used by UDPLITE, although this could change in the future. */ #if LWIP_UDPLITE u16_t inet_chksum_pseudo_partial(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u16_t proto_len, u16_t chksum_len) { u32_t acc; struct pbuf *q; u8_t swapped; u16_t chklen; acc = 0; swapped = 0; /* iterate through all pbuf in chain */ for(q = p; (q != NULL) && (chksum_len > 0); q = q->next) { LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): checksumming pbuf %p (has next %p) \n", (void *)q, (void *)q->next)); chklen = q->len; if (chklen > chksum_len) { chklen = chksum_len; } acc += LWIP_CHKSUM(q->payload, chklen); chksum_len -= chklen; LWIP_ASSERT("delete me", chksum_len < 0x7fff); /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): unwrapped lwip_chksum()=%"X32_F" \n", acc));*/ /* fold the upper bit down */ acc = FOLD_U32T(acc); if (q->len % 2 != 0) { swapped = 1 - swapped; acc = SWAP_BYTES_IN_WORD(acc); } /*LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): wrapped lwip_chksum()=%"X32_F" \n", acc));*/ } if (swapped) { acc = SWAP_BYTES_IN_WORD(acc); } acc += (src->addr & 0xffffUL); acc += ((src->addr >> 16) & 0xffffUL); acc += (dest->addr & 0xffffUL); acc += ((dest->addr >> 16) & 0xffffUL); acc += (u32_t)htons((u16_t)proto); acc += (u32_t)htons(proto_len); /* Fold 32-bit sum to 16 bits calling this twice is propably faster than if statements... */ acc = FOLD_U32T(acc); acc = FOLD_U32T(acc); LWIP_DEBUGF(INET_DEBUG, ("inet_chksum_pseudo(): pbuf chain lwip_chksum()=%"X32_F"\n", acc)); return (u16_t)~(acc & 0xffffUL); } #endif /* LWIP_UDPLITE */ /* inet_chksum: * * Calculates the Internet checksum over a portion of memory. Used primarily for IP * and ICMP. * * @param dataptr start of the buffer to calculate the checksum (no alignment needed) * @param len length of the buffer to calculate the checksum * @return checksum (as u16_t) to be saved directly in the protocol header */ u16_t inet_chksum(void *dataptr, u16_t len) { return ~LWIP_CHKSUM(dataptr, len); } /** * Calculate a checksum over a chain of pbufs (without pseudo-header, much like * inet_chksum only pbufs are used). * * @param p pbuf chain over that the checksum should be calculated * @return checksum (as u16_t) to be saved directly in the protocol header */ u16_t inet_chksum_pbuf(struct pbuf *p) { u32_t acc; struct pbuf *q; u8_t swapped; acc = 0; swapped = 0; for(q = p; q != NULL; q = q->next) { acc += LWIP_CHKSUM(q->payload, q->len); acc = FOLD_U32T(acc); if (q->len % 2 != 0) { swapped = 1 - swapped; acc = SWAP_BYTES_IN_WORD(acc); } } if (swapped) { acc = SWAP_BYTES_IN_WORD(acc); } return (u16_t)~(acc & 0xffffUL); } uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/ip.c000066400000000000000000000614651224274632000225150ustar00rootroot00000000000000/** * @file * This is the IPv4 layer implementation for incoming and outgoing IP traffic. * * @see ip_frag.c * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/ip.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/ip_frag.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/netif.h" #include "lwip/icmp.h" #include "lwip/igmp.h" #include "lwip/raw.h" #include "lwip/udp.h" #include "lwip/tcp.h" #include "lwip/snmp.h" #include "lwip/dhcp.h" #include "lwip/stats.h" #include "arch/perf.h" #include /** * The interface that provided the packet for the current callback * invocation. */ static struct netif *current_netif; /** * Header of the input packet currently being processed. */ static const struct ip_hdr *current_header; /** * Get the interface that received the current packet. * * This function must only be called from a receive callback (udp_recv, * raw_recv, tcp_accept). It will return NULL otherwise. * * @param pcb Pointer to the pcb receiving a packet. */ struct netif * ip_current_netif(void) { return current_netif; } /** * Get the IP header of the current packet. * * This function must only be called from a receive callback (udp_recv, * raw_recv, tcp_accept). It will return NULL otherwise. * * @param pcb Pointer to the pcb receiving a packet. */ const struct ip_hdr * ip_current_header(void) { return current_header; } /** * Finds the appropriate network interface for a given IP address. It * searches the list of network interfaces linearly. A match is found * if the masked IP address of the network interface equals the masked * IP address given to the function. * * @param dest the destination IP address for which to find the route * @return the netif on which to send to reach dest */ struct netif * ip_route(struct ip_addr *dest) { struct netif *netif; /* iterate through netifs */ for(netif = netif_list; netif != NULL; netif = netif->next) { /* network mask matches? */ if (netif_is_up(netif)) { if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) { /* return netif on which to forward IP packet */ return netif; } } } if ((netif_default == NULL) || (!netif_is_up(netif_default))) { LWIP_DEBUGF(IP_DEBUG | 2, ("ip_route: No route to 0x%"X32_F"\n", dest->addr)); IP_STATS_INC(ip.rterr); snmp_inc_ipoutnoroutes(); return NULL; } /* no matching netif found, use default netif */ return netif_default; } #if IP_FORWARD /** * Forwards an IP packet. It finds an appropriate route for the * packet, decrements the TTL value of the packet, adjusts the * checksum and outputs the packet on the appropriate interface. * * @param p the packet to forward (p->payload points to IP header) * @param iphdr the IP header of the input packet * @param inp the netif on which this packet was received * @return the netif on which the packet was sent (NULL if it wasn't sent) */ static struct netif * ip_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp) { struct netif *netif; PERF_START; /* Find network interface where to forward this IP packet to. */ netif = ip_route((struct ip_addr *)&(iphdr->dest)); if (netif == NULL) { LWIP_DEBUGF(IP_DEBUG, ("ip_forward: no forwarding route for 0x%"X32_F" found\n", iphdr->dest.addr)); snmp_inc_ipoutnoroutes(); return (struct netif *)NULL; } /* Do not forward packets onto the same network interface on which * they arrived. */ if (netif == inp) { LWIP_DEBUGF(IP_DEBUG, ("ip_forward: not bouncing packets back on incoming interface.\n")); snmp_inc_ipoutnoroutes(); return (struct netif *)NULL; } /* decrement TTL */ IPH_TTL_SET(iphdr, IPH_TTL(iphdr) - 1); /* send ICMP if TTL == 0 */ if (IPH_TTL(iphdr) == 0) { snmp_inc_ipinhdrerrors(); #if LWIP_ICMP /* Don't send ICMP messages in response to ICMP messages */ if (IPH_PROTO(iphdr) != IP_PROTO_ICMP) { icmp_time_exceeded(p, ICMP_TE_TTL); } #endif /* LWIP_ICMP */ return (struct netif *)NULL; } /* Incrementally update the IP checksum. */ if (IPH_CHKSUM(iphdr) >= htons(0xffff - 0x100)) { IPH_CHKSUM_SET(iphdr, IPH_CHKSUM(iphdr) + htons(0x100) + 1); } else { IPH_CHKSUM_SET(iphdr, IPH_CHKSUM(iphdr) + htons(0x100)); } LWIP_DEBUGF(IP_DEBUG, ("ip_forward: forwarding packet to 0x%"X32_F"\n", iphdr->dest.addr)); IP_STATS_INC(ip.fw); IP_STATS_INC(ip.xmit); snmp_inc_ipforwdatagrams(); PERF_STOP("ip_forward"); /* transmit pbuf on chosen interface */ netif->output(netif, p, (struct ip_addr *)&(iphdr->dest)); return netif; } #endif /* IP_FORWARD */ /** * This function is called by the network interface device driver when * an IP packet is received. The function does the basic checks of the * IP header such as packet size being at least larger than the header * size etc. If the packet was not destined for us, the packet is * forwarded (using ip_forward). The IP checksum is always checked. * * Finally, the packet is sent to the upper layer protocol input function. * * @param p the received IP packet (p->payload points to IP header) * @param inp the netif on which this packet was received * @return ERR_OK if the packet was processed (could return ERR_* if it wasn't * processed, but currently always returns ERR_OK) */ err_t ip_input(struct pbuf *p, struct netif *inp) { struct ip_hdr *iphdr; struct netif *netif; u16_t iphdr_hlen; u16_t iphdr_len; #if LWIP_DHCP int check_ip_src=1; #endif /* LWIP_DHCP */ IP_STATS_INC(ip.recv); snmp_inc_ipinreceives(); /* identify the IP header */ iphdr = p->payload; if (IPH_V(iphdr) != 4) { LWIP_DEBUGF(IP_DEBUG | 1, ("IP packet dropped due to bad version number %"U16_F"\n", IPH_V(iphdr))); ip_debug_print(p); pbuf_free(p); IP_STATS_INC(ip.err); IP_STATS_INC(ip.drop); snmp_inc_ipinhdrerrors(); return ERR_OK; } /* obtain IP header length in number of 32-bit words */ iphdr_hlen = IPH_HL(iphdr); /* calculate IP header length in bytes */ iphdr_hlen *= 4; /* obtain ip length in bytes */ iphdr_len = ntohs(IPH_LEN(iphdr)); /* header length exceeds first pbuf length, or ip length exceeds total pbuf length? */ if ((iphdr_hlen > p->len) || (iphdr_len > p->tot_len)) { if (iphdr_hlen > p->len) LWIP_DEBUGF(IP_DEBUG | 2, ("IP header (len %"U16_F") does not fit in first pbuf (len %"U16_F"), IP packet dropped.\n", iphdr_hlen, p->len)); if (iphdr_len > p->tot_len) LWIP_DEBUGF(IP_DEBUG | 2, ("IP (len %"U16_F") is longer than pbuf (len %"U16_F"), " "IP packet dropped.\n", iphdr_len, p->tot_len)); /* free (drop) packet pbufs */ pbuf_free(p); IP_STATS_INC(ip.lenerr); IP_STATS_INC(ip.drop); snmp_inc_ipindiscards(); return ERR_OK; } /* verify checksum */ #if CHECKSUM_CHECK_IP if (inet_chksum(iphdr, iphdr_hlen) != 0) { LWIP_DEBUGF(IP_DEBUG | 2, ("Checksum (0x%"X16_F") failed, IP packet dropped.\n", inet_chksum(iphdr, iphdr_hlen))); ip_debug_print(p); pbuf_free(p); IP_STATS_INC(ip.chkerr); IP_STATS_INC(ip.drop); snmp_inc_ipinhdrerrors(); return ERR_OK; } #endif /* Trim pbuf. This should have been done at the netif layer, * but we'll do it anyway just to be sure that its done. */ pbuf_realloc(p, iphdr_len); /* match packet against an interface, i.e. is this packet for us? */ #if LWIP_IGMP if (ip_addr_ismulticast(&(iphdr->dest))) { if ((inp->flags & NETIF_FLAG_IGMP) && (igmp_lookfor_group(inp, &(iphdr->dest)))) { netif = inp; } else { netif = NULL; } } else #endif /* LWIP_IGMP */ { /* start trying with inp. if that's not acceptable, start walking the list of configured netifs. 'first' is used as a boolean to mark whether we started walking the list */ int first = 1; netif = inp; do { LWIP_DEBUGF(IP_DEBUG, ("ip_input: iphdr->dest 0x%"X32_F" netif->ip_addr 0x%"X32_F" (0x%"X32_F", 0x%"X32_F", 0x%"X32_F")\n", iphdr->dest.addr, netif->ip_addr.addr, iphdr->dest.addr & netif->netmask.addr, netif->ip_addr.addr & netif->netmask.addr, iphdr->dest.addr & ~(netif->netmask.addr))); /* interface is up and configured? */ if ((netif_is_up(netif)) && (!ip_addr_isany(&(netif->ip_addr)))) { /* unicast to this interface address? */ if (ip_addr_cmp(&(iphdr->dest), &(netif->ip_addr)) || /* or broadcast on this interface network address? */ ip_addr_isbroadcast(&(iphdr->dest), netif)) { LWIP_DEBUGF(IP_DEBUG, ("ip_input: packet accepted on interface %c%c\n", netif->name[0], netif->name[1])); /* break out of for loop */ break; } } if (first) { first = 0; netif = netif_list; } else { netif = netif->next; } if (netif == inp) { netif = netif->next; } } while(netif != NULL); } #if LWIP_DHCP /* Pass DHCP messages regardless of destination address. DHCP traffic is addressed * using link layer addressing (such as Ethernet MAC) so we must not filter on IP. * According to RFC 1542 section 3.1.1, referred by RFC 2131). */ if (netif == NULL) { /* remote port is DHCP server? */ if (IPH_PROTO(iphdr) == IP_PROTO_UDP) { LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | 1, ("ip_input: UDP packet to DHCP client port %"U16_F"\n", ntohs(((struct udp_hdr *)((u8_t *)iphdr + iphdr_hlen))->dest))); if (ntohs(((struct udp_hdr *)((u8_t *)iphdr + iphdr_hlen))->dest) == DHCP_CLIENT_PORT) { LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | 1, ("ip_input: DHCP packet accepted.\n")); netif = inp; check_ip_src = 0; } } } #endif /* LWIP_DHCP */ /* broadcast or multicast packet source address? Compliant with RFC 1122: 3.2.1.3 */ #if LWIP_DHCP if (check_ip_src) #endif /* LWIP_DHCP */ { if ((ip_addr_isbroadcast(&(iphdr->src), inp)) || (ip_addr_ismulticast(&(iphdr->src)))) { /* packet source is not valid */ LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | 1, ("ip_input: packet source is not valid.\n")); /* free (drop) packet pbufs */ pbuf_free(p); IP_STATS_INC(ip.drop); snmp_inc_ipinaddrerrors(); snmp_inc_ipindiscards(); return ERR_OK; } } /* packet not for us? */ if (netif == NULL) { /* packet not for us, route or discard */ LWIP_DEBUGF(IP_DEBUG | LWIP_DBG_TRACE | 1, ("ip_input: packet not for us.\n")); #if IP_FORWARD /* non-broadcast packet? */ if (!ip_addr_isbroadcast(&(iphdr->dest), inp)) { /* try to forward IP packet on (other) interfaces */ ip_forward(p, iphdr, inp); } else #endif /* IP_FORWARD */ { snmp_inc_ipinaddrerrors(); snmp_inc_ipindiscards(); } pbuf_free(p); return ERR_OK; } /* packet consists of multiple fragments? */ if ((IPH_OFFSET(iphdr) & htons(IP_OFFMASK | IP_MF)) != 0) { #if IP_REASSEMBLY /* packet fragment reassembly code present? */ LWIP_DEBUGF(IP_DEBUG, ("IP packet is a fragment (id=0x%04"X16_F" tot_len=%"U16_F" len=%"U16_F" MF=%"U16_F" offset=%"U16_F"), calling ip_reass()\n", ntohs(IPH_ID(iphdr)), p->tot_len, ntohs(IPH_LEN(iphdr)), !!(IPH_OFFSET(iphdr) & htons(IP_MF)), (ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK)*8)); /* reassemble the packet*/ p = ip_reass(p); /* packet not fully reassembled yet? */ if (p == NULL) { return ERR_OK; } iphdr = p->payload; #else /* IP_REASSEMBLY == 0, no packet fragment reassembly code present */ pbuf_free(p); LWIP_DEBUGF(IP_DEBUG | 2, ("IP packet dropped since it was fragmented (0x%"X16_F") (while IP_REASSEMBLY == 0).\n", ntohs(IPH_OFFSET(iphdr)))); IP_STATS_INC(ip.opterr); IP_STATS_INC(ip.drop); /* unsupported protocol feature */ snmp_inc_ipinunknownprotos(); return ERR_OK; #endif /* IP_REASSEMBLY */ } #if IP_OPTIONS_ALLOWED == 0 /* no support for IP options in the IP header? */ #if LWIP_IGMP /* there is an extra "router alert" option in IGMP messages which we allow for but do not police */ if((iphdr_hlen > IP_HLEN && (IPH_PROTO(iphdr) != IP_PROTO_IGMP)) { #else if (iphdr_hlen > IP_HLEN) { #endif /* LWIP_IGMP */ LWIP_DEBUGF(IP_DEBUG | 2, ("IP packet dropped since there were IP options (while IP_OPTIONS_ALLOWED == 0).\n")); pbuf_free(p); IP_STATS_INC(ip.opterr); IP_STATS_INC(ip.drop); /* unsupported protocol feature */ snmp_inc_ipinunknownprotos(); return ERR_OK; } #endif /* IP_OPTIONS_ALLOWED == 0 */ /* send to upper layers */ LWIP_DEBUGF(IP_DEBUG, ("ip_input: \n")); ip_debug_print(p); LWIP_DEBUGF(IP_DEBUG, ("ip_input: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len)); current_netif = inp; current_header = iphdr; #if LWIP_RAW /* raw input did not eat the packet? */ if (raw_input(p, inp) == 0) #endif /* LWIP_RAW */ { switch (IPH_PROTO(iphdr)) { #if LWIP_UDP case IP_PROTO_UDP: #if LWIP_UDPLITE case IP_PROTO_UDPLITE: #endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break; #endif /* LWIP_UDP */ #if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break; #endif /* LWIP_TCP */ #if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break; #endif /* LWIP_ICMP */ #if LWIP_IGMP case IP_PROTO_IGMP: igmp_input(p,inp,&(iphdr->dest)); break; #endif /* LWIP_IGMP */ default: #if LWIP_ICMP /* send ICMP destination protocol unreachable unless is was a broadcast */ if (!ip_addr_isbroadcast(&(iphdr->dest), inp) && !ip_addr_ismulticast(&(iphdr->dest))) { p->payload = iphdr; icmp_dest_unreach(p, ICMP_DUR_PROTO); } #endif /* LWIP_ICMP */ pbuf_free(p); LWIP_DEBUGF(IP_DEBUG | 2, ("Unsupported transport protocol %"U16_F"\n", IPH_PROTO(iphdr))); IP_STATS_INC(ip.proterr); IP_STATS_INC(ip.drop); snmp_inc_ipinunknownprotos(); } } current_netif = NULL; current_header = NULL; return ERR_OK; } /** * Sends an IP packet on a network interface. This function constructs * the IP header and calculates the IP header checksum. If the source * IP address is NULL, the IP address of the outgoing network * interface is filled in as source address. * If the destination IP address is IP_HDRINCL, p is assumed to already * include an IP header and p->payload points to it instead of the data. * * @param p the packet to send (p->payload points to the data, e.g. next protocol header; if dest == IP_HDRINCL, p already includes an IP header and p->payload points to that IP header) * @param src the source IP address to send from (if src == IP_ADDR_ANY, the * IP address of the netif used to send is used as source address) * @param dest the destination IP address to send the packet to * @param ttl the TTL value to be set in the IP header * @param tos the TOS value to be set in the IP header * @param proto the PROTOCOL to be set in the IP header * @param netif the netif on which to send this packet * @return ERR_OK if the packet was sent OK * ERR_BUF if p doesn't have enough space for IP/LINK headers * returns errors returned by netif->output * * @note ip_id: RFC791 "some host may be able to simply use * unique identifiers independent of destination" */ err_t ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, struct netif *netif) { #if IP_OPTIONS_SEND return ip_output_if_opt(p, src, dest, ttl, tos, proto, netif, NULL, 0); } /** * Same as ip_output_if() but with the possibility to include IP options: * * @ param ip_options pointer to the IP options, copied into the IP header * @ param optlen length of ip_options */ err_t ip_output_if_opt(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options, u16_t optlen) { #endif /* IP_OPTIONS_SEND */ struct ip_hdr *iphdr; static u16_t ip_id = 0; snmp_inc_ipoutrequests(); /* Should the IP header be generated or is it already included in p? */ if (dest != IP_HDRINCL) { u16_t ip_hlen = IP_HLEN; #if IP_OPTIONS_SEND u16_t optlen_aligned = 0; if (optlen != 0) { /* round up to a multiple of 4 */ optlen_aligned = ((optlen + 3) & ~3); ip_hlen += optlen_aligned; /* First write in the IP options */ if (pbuf_header(p, optlen_aligned)) { LWIP_DEBUGF(IP_DEBUG | 2, ("ip_output_if_opt: not enough room for IP options in pbuf\n")); IP_STATS_INC(ip.err); snmp_inc_ipoutdiscards(); return ERR_BUF; } MEMCPY(p->payload, ip_options, optlen); if (optlen < optlen_aligned) { /* zero the remaining bytes */ memset(((char*)p->payload) + optlen, 0, optlen_aligned - optlen); } } #endif /* IP_OPTIONS_SEND */ /* generate IP header */ if (pbuf_header(p, IP_HLEN)) { LWIP_DEBUGF(IP_DEBUG | 2, ("ip_output: not enough room for IP header in pbuf\n")); IP_STATS_INC(ip.err); snmp_inc_ipoutdiscards(); return ERR_BUF; } iphdr = p->payload; LWIP_ASSERT("check that first pbuf can hold struct ip_hdr", (p->len >= sizeof(struct ip_hdr))); IPH_TTL_SET(iphdr, ttl); IPH_PROTO_SET(iphdr, proto); ip_addr_set(&(iphdr->dest), dest); IPH_VHLTOS_SET(iphdr, 4, ip_hlen / 4, tos); IPH_LEN_SET(iphdr, htons(p->tot_len)); IPH_OFFSET_SET(iphdr, 0); IPH_ID_SET(iphdr, htons(ip_id)); ++ip_id; if (ip_addr_isany(src)) { ip_addr_set(&(iphdr->src), &(netif->ip_addr)); } else { ip_addr_set(&(iphdr->src), src); } IPH_CHKSUM_SET(iphdr, 0); #if CHECKSUM_GEN_IP IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, ip_hlen)); #endif } else { /* IP header already included in p */ iphdr = p->payload; dest = &(iphdr->dest); } #if IP_FRAG /* don't fragment if interface has mtu set to 0 [loopif] */ if (netif->mtu && (p->tot_len > netif->mtu)) return ip_frag(p,netif,dest); #endif IP_STATS_INC(ip.xmit); LWIP_DEBUGF(IP_DEBUG, ("ip_output_if: %c%c%"U16_F"\n", netif->name[0], netif->name[1], netif->num)); ip_debug_print(p); #if (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) if (ip_addr_cmp(dest, &netif->ip_addr)) { /* Packet to self, enqueue it for loopback */ LWIP_DEBUGF(IP_DEBUG, ("netif_loop_output()")); return netif_loop_output(netif, p, dest); } else #endif /* (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) */ { LWIP_DEBUGF(IP_DEBUG, ("netif->output()")); return netif->output(netif, p, dest); } } /** * Simple interface to ip_output_if. It finds the outgoing network * interface and calls upon ip_output_if to do the actual work. * * @param p the packet to send (p->payload points to the data, e.g. next protocol header; if dest == IP_HDRINCL, p already includes an IP header and p->payload points to that IP header) * @param src the source IP address to send from (if src == IP_ADDR_ANY, the * IP address of the netif used to send is used as source address) * @param dest the destination IP address to send the packet to * @param ttl the TTL value to be set in the IP header * @param tos the TOS value to be set in the IP header * @param proto the PROTOCOL to be set in the IP header * * @return ERR_RTE if no route is found * see ip_output_if() for more return values */ err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto) { struct netif *netif; if ((netif = ip_route(dest)) == NULL) { LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to 0x%"X32_F"\n", dest->addr)); IP_STATS_INC(ip.rterr); return ERR_RTE; } return ip_output_if(p, src, dest, ttl, tos, proto, netif); } #if LWIP_NETIF_HWADDRHINT /** Like ip_output, but takes and addr_hint pointer that is passed on to netif->addr_hint * before calling ip_output_if. * * @param p the packet to send (p->payload points to the data, e.g. next protocol header; if dest == IP_HDRINCL, p already includes an IP header and p->payload points to that IP header) * @param src the source IP address to send from (if src == IP_ADDR_ANY, the * IP address of the netif used to send is used as source address) * @param dest the destination IP address to send the packet to * @param ttl the TTL value to be set in the IP header * @param tos the TOS value to be set in the IP header * @param proto the PROTOCOL to be set in the IP header * @param addr_hint address hint pointer set to netif->addr_hint before * calling ip_output_if() * * @return ERR_RTE if no route is found * see ip_output_if() for more return values */ err_t ip_output_hinted(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, u8_t *addr_hint) { struct netif *netif; err_t err; if ((netif = ip_route(dest)) == NULL) { LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to 0x%"X32_F"\n", dest->addr)); IP_STATS_INC(ip.rterr); return ERR_RTE; } netif->addr_hint = addr_hint; err = ip_output_if(p, src, dest, ttl, tos, proto, netif); netif->addr_hint = NULL; return err; } #endif /* LWIP_NETIF_HWADDRHINT*/ #if IP_DEBUG /* Print an IP header by using LWIP_DEBUGF * @param p an IP packet, p->payload pointing to the IP header */ void ip_debug_print(struct pbuf *p) { struct ip_hdr *iphdr = p->payload; u8_t *payload; payload = (u8_t *)iphdr + IP_HLEN; LWIP_DEBUGF(IP_DEBUG, ("IP header:\n")); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("|%2"S16_F" |%2"S16_F" | 0x%02"X16_F" | %5"U16_F" | (v, hl, tos, len)\n", IPH_V(iphdr), IPH_HL(iphdr), IPH_TOS(iphdr), ntohs(IPH_LEN(iphdr)))); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %5"U16_F" |%"U16_F"%"U16_F"%"U16_F"| %4"U16_F" | (id, flags, offset)\n", ntohs(IPH_ID(iphdr)), ntohs(IPH_OFFSET(iphdr)) >> 15 & 1, ntohs(IPH_OFFSET(iphdr)) >> 14 & 1, ntohs(IPH_OFFSET(iphdr)) >> 13 & 1, ntohs(IPH_OFFSET(iphdr)) & IP_OFFMASK)); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | 0x%04"X16_F" | (ttl, proto, chksum)\n", IPH_TTL(iphdr), IPH_PROTO(iphdr), ntohs(IPH_CHKSUM(iphdr)))); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | %3"U16_F" | %3"U16_F" | (src)\n", ip4_addr1(&iphdr->src), ip4_addr2(&iphdr->src), ip4_addr3(&iphdr->src), ip4_addr4(&iphdr->src))); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %3"U16_F" | %3"U16_F" | %3"U16_F" | %3"U16_F" | (dest)\n", ip4_addr1(&iphdr->dest), ip4_addr2(&iphdr->dest), ip4_addr3(&iphdr->dest), ip4_addr4(&iphdr->dest))); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); } #endif /* IP_DEBUG */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/ip_addr.c000066400000000000000000000063771224274632000235100ustar00rootroot00000000000000/** * @file * This is the IPv4 address tools implementation. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/ip_addr.h" #include "lwip/inet.h" #include "lwip/netif.h" #define IP_ADDR_ANY_VALUE 0x00000000UL #define IP_ADDR_BROADCAST_VALUE 0xffffffffUL /* used by IP_ADDR_ANY and IP_ADDR_BROADCAST in ip_addr.h */ const struct ip_addr ip_addr_any = { IP_ADDR_ANY_VALUE }; const struct ip_addr ip_addr_broadcast = { IP_ADDR_BROADCAST_VALUE }; /** * Determine if an address is a broadcast address on a network interface * * @param addr address to be checked * @param netif the network interface against which the address is checked * @return returns non-zero if the address is a broadcast address */ u8_t ip_addr_isbroadcast(struct ip_addr *addr, struct netif *netif) { u32_t addr2test; addr2test = addr->addr; /* all ones (broadcast) or all zeroes (old skool broadcast) */ if ((~addr2test == IP_ADDR_ANY_VALUE) || (addr2test == IP_ADDR_ANY_VALUE)) return 1; /* no broadcast support on this network interface? */ else if ((netif->flags & NETIF_FLAG_BROADCAST) == 0) /* the given address cannot be a broadcast address * nor can we check against any broadcast addresses */ return 0; /* address matches network interface address exactly? => no broadcast */ else if (addr2test == netif->ip_addr.addr) return 0; /* on the same (sub) network... */ else if (ip_addr_netcmp(addr, &(netif->ip_addr), &(netif->netmask)) /* ...and host identifier bits are all ones? =>... */ && ((addr2test & ~netif->netmask.addr) == (IP_ADDR_BROADCAST_VALUE & ~netif->netmask.addr))) /* => network broadcast address */ return 1; else return 0; } uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv4/ip_frag.c000066400000000000000000000636021224274632000235070ustar00rootroot00000000000000/** * @file * This is the IPv4 packet segmentation and reassembly implementation. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Jani Monoses * Simon Goldschmidt * original reassembly code by Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/ip_frag.h" #include "lwip/ip.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/netif.h" #include "lwip/snmp.h" #include "lwip/stats.h" #include "lwip/icmp.h" #include #if IP_REASSEMBLY /** * The IP reassembly code currently has the following limitations: * - IP header options are not supported * - fragments must not overlap (e.g. due to different routes), * currently, overlapping or duplicate fragments are thrown away * if IP_REASS_CHECK_OVERLAP=1 (the default)! * * @todo: work with IP header options */ /** Setting this to 0, you can turn off checking the fragments for overlapping * regions. The code gets a little smaller. Only use this if you know that * overlapping won't occur on your network! */ #ifndef IP_REASS_CHECK_OVERLAP #define IP_REASS_CHECK_OVERLAP 1 #endif /* IP_REASS_CHECK_OVERLAP */ /** Set to 0 to prevent freeing the oldest datagram when the reassembly buffer is * full (IP_REASS_MAX_PBUFS pbufs are enqueued). The code gets a little smaller. * Datagrams will be freed by timeout only. Especially useful when MEMP_NUM_REASSDATA * is set to 1, so one datagram can be reassembled at a time, only. */ #ifndef IP_REASS_FREE_OLDEST #define IP_REASS_FREE_OLDEST 1 #endif /* IP_REASS_FREE_OLDEST */ #define IP_REASS_FLAG_LASTFRAG 0x01 /** This is a helper struct which holds the starting * offset and the ending offset of this fragment to * easily chain the fragments. * It has to be packed since it has to fit inside the IP header. */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ip_reass_helper { PACK_STRUCT_FIELD(struct pbuf *next_pbuf); PACK_STRUCT_FIELD(u16_t start); PACK_STRUCT_FIELD(u16_t end); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define IP_ADDRESSES_AND_ID_MATCH(iphdrA, iphdrB) \ (ip_addr_cmp(&(iphdrA)->src, &(iphdrB)->src) && \ ip_addr_cmp(&(iphdrA)->dest, &(iphdrB)->dest) && \ IPH_ID(iphdrA) == IPH_ID(iphdrB)) ? 1 : 0 /* global variables */ static struct ip_reassdata *reassdatagrams; static u16_t ip_reass_pbufcount; /* function prototypes */ static void ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev); static int ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev); /** * Reassembly timer base function * for both NO_SYS == 0 and 1 (!). * * Should be called every 1000 msec (defined by IP_TMR_INTERVAL). */ void ip_reass_tmr(void) { struct ip_reassdata *r, *prev = NULL; r = reassdatagrams; while (r != NULL) { /* Decrement the timer. Once it reaches 0, * clean up the incomplete fragment assembly */ if (r->timer > 0) { r->timer--; LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_tmr: timer dec %"U16_F"\n",(u16_t)r->timer)); prev = r; r = r->next; } else { /* reassembly timed out */ struct ip_reassdata *tmp; LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass_tmr: timer timed out\n")); tmp = r; /* get the next pointer before freeing */ r = r->next; /* free the helper struct and all enqueued pbufs */ ip_reass_free_complete_datagram(tmp, prev); } } } /** * Free a datagram (struct ip_reassdata) and all its pbufs. * Updates the total count of enqueued pbufs (ip_reass_pbufcount), * SNMP counters and sends an ICMP time exceeded packet. * * @param ipr datagram to free * @param prev the previous datagram in the linked list * @return the number of pbufs freed */ static int ip_reass_free_complete_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev) { int pbufs_freed = 0; struct pbuf *p; struct ip_reass_helper *iprh; LWIP_ASSERT("prev != ipr", prev != ipr); if (prev != NULL) { LWIP_ASSERT("prev->next == ipr", prev->next == ipr); } snmp_inc_ipreasmfails(); #if LWIP_ICMP iprh = (struct ip_reass_helper *)ipr->p->payload; if (iprh->start == 0) { /* The first fragment was received, send ICMP time exceeded. */ /* First, de-queue the first pbuf from r->p. */ p = ipr->p; ipr->p = iprh->next_pbuf; /* Then, copy the original header into it. */ SMEMCPY(p->payload, &ipr->iphdr, IP_HLEN); icmp_time_exceeded(p, ICMP_TE_FRAG); pbufs_freed += pbuf_clen(p); pbuf_free(p); } #endif /* LWIP_ICMP */ /* First, free all received pbufs. The individual pbufs need to be released separately as they have not yet been chained */ p = ipr->p; while (p != NULL) { struct pbuf *pcur; iprh = (struct ip_reass_helper *)p->payload; pcur = p; /* get the next pointer before freeing */ p = iprh->next_pbuf; pbufs_freed += pbuf_clen(pcur); pbuf_free(pcur); } /* Then, unchain the struct ip_reassdata from the list and free it. */ ip_reass_dequeue_datagram(ipr, prev); LWIP_ASSERT("ip_reass_pbufcount >= clen", ip_reass_pbufcount >= pbufs_freed); ip_reass_pbufcount -= pbufs_freed; return pbufs_freed; } #if IP_REASS_FREE_OLDEST /** * Free the oldest datagram to make room for enqueueing new fragments. * The datagram 'fraghdr' belongs to is not freed! * * @param fraghdr IP header of the current fragment * @param pbufs_needed number of pbufs needed to enqueue * (used for freeing other datagrams if not enough space) * @return the number of pbufs freed */ static int ip_reass_remove_oldest_datagram(struct ip_hdr *fraghdr, int pbufs_needed) { /* @todo Can't we simply remove the last datagram in the * linked list behind reassdatagrams? */ struct ip_reassdata *r, *oldest, *prev; int pbufs_freed = 0, pbufs_freed_current; int other_datagrams; /* Free datagrams until being allowed to enqueue 'pbufs_needed' pbufs, * but don't free the datagram that 'fraghdr' belongs to! */ do { oldest = NULL; prev = NULL; other_datagrams = 0; r = reassdatagrams; while (r != NULL) { if (!IP_ADDRESSES_AND_ID_MATCH(&r->iphdr, fraghdr)) { /* Not the same datagram as fraghdr */ other_datagrams++; if (oldest == NULL) { oldest = r; } else if (r->timer <= oldest->timer) { /* older than the previous oldest */ oldest = r; } } if (r->next != NULL) { prev = r; } r = r->next; } if (oldest != NULL) { pbufs_freed_current = ip_reass_free_complete_datagram(oldest, prev); pbufs_freed += pbufs_freed_current; } } while ((pbufs_freed < pbufs_needed) && (other_datagrams > 1)); return pbufs_freed; } #endif /* IP_REASS_FREE_OLDEST */ /** * Enqueues a new fragment into the fragment queue * @param fraghdr points to the new fragments IP hdr * @param clen number of pbufs needed to enqueue (used for freeing other datagrams if not enough space) * @return A pointer to the queue location into which the fragment was enqueued */ static struct ip_reassdata* ip_reass_enqueue_new_datagram(struct ip_hdr *fraghdr, int clen) { struct ip_reassdata* ipr; /* No matching previous fragment found, allocate a new reassdata struct */ ipr = memp_malloc(MEMP_REASSDATA); if (ipr == NULL) { #if IP_REASS_FREE_OLDEST if (ip_reass_remove_oldest_datagram(fraghdr, clen) >= clen) { ipr = memp_malloc(MEMP_REASSDATA); } if (ipr == NULL) #endif /* IP_REASS_FREE_OLDEST */ { IPFRAG_STATS_INC(ip_frag.memerr); LWIP_DEBUGF(IP_REASS_DEBUG,("Failed to alloc reassdata struct\n")); return NULL; } } memset(ipr, 0, sizeof(struct ip_reassdata)); ipr->timer = IP_REASS_MAXAGE; /* enqueue the new structure to the front of the list */ ipr->next = reassdatagrams; reassdatagrams = ipr; /* copy the ip header for later tests and input */ /* @todo: no ip options supported? */ SMEMCPY(&(ipr->iphdr), fraghdr, IP_HLEN); return ipr; } /** * Dequeues a datagram from the datagram queue. Doesn't deallocate the pbufs. * @param ipr points to the queue entry to dequeue */ static void ip_reass_dequeue_datagram(struct ip_reassdata *ipr, struct ip_reassdata *prev) { /* dequeue the reass struct */ if (reassdatagrams == ipr) { /* it was the first in the list */ reassdatagrams = ipr->next; } else { /* it wasn't the first, so it must have a valid 'prev' */ LWIP_ASSERT("sanity check linked list", prev != NULL); prev->next = ipr->next; } /* now we can free the ip_reass struct */ memp_free(MEMP_REASSDATA, ipr); } /** * Chain a new pbuf into the pbuf list that composes the datagram. The pbuf list * will grow over time as new pbufs are rx. * Also checks that the datagram passes basic continuity checks (if the last * fragment was received at least once). * @param root_p points to the 'root' pbuf for the current datagram being assembled. * @param new_p points to the pbuf for the current fragment * @return 0 if invalid, >0 otherwise */ static int ip_reass_chain_frag_into_datagram_and_validate(struct ip_reassdata *ipr, struct pbuf *new_p) { struct ip_reass_helper *iprh, *iprh_tmp, *iprh_prev=NULL; struct pbuf *q; u16_t offset,len; struct ip_hdr *fraghdr; int valid = 1; /* Extract length and fragment offset from current fragment */ fraghdr = (struct ip_hdr*)new_p->payload; len = ntohs(IPH_LEN(fraghdr)) - IPH_HL(fraghdr) * 4; offset = (ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) * 8; /* overwrite the fragment's ip header from the pbuf with our helper struct, * and setup the embedded helper structure. */ /* make sure the struct ip_reass_helper fits into the IP header */ LWIP_ASSERT("sizeof(struct ip_reass_helper) <= IP_HLEN", sizeof(struct ip_reass_helper) <= IP_HLEN); iprh = (struct ip_reass_helper*)new_p->payload; iprh->next_pbuf = NULL; iprh->start = offset; iprh->end = offset + len; /* Iterate through until we either get to the end of the list (append), * or we find on with a larger offset (insert). */ for (q = ipr->p; q != NULL;) { iprh_tmp = (struct ip_reass_helper*)q->payload; if (iprh->start < iprh_tmp->start) { /* the new pbuf should be inserted before this */ iprh->next_pbuf = q; if (iprh_prev != NULL) { /* not the fragment with the lowest offset */ #if IP_REASS_CHECK_OVERLAP if ((iprh->start < iprh_prev->end) || (iprh->end > iprh_tmp->start)) { /* fragment overlaps with previous or following, throw away */ goto freepbuf; } #endif /* IP_REASS_CHECK_OVERLAP */ iprh_prev->next_pbuf = new_p; } else { /* fragment with the lowest offset */ ipr->p = new_p; } break; } else if(iprh->start == iprh_tmp->start) { /* received the same datagram twice: no need to keep the datagram */ goto freepbuf; #if IP_REASS_CHECK_OVERLAP } else if(iprh->start < iprh_tmp->end) { /* overlap: no need to keep the new datagram */ goto freepbuf; #endif /* IP_REASS_CHECK_OVERLAP */ } else { /* Check if the fragments received so far have no wholes. */ if (iprh_prev != NULL) { if (iprh_prev->end != iprh_tmp->start) { /* There is a fragment missing between the current * and the previous fragment */ valid = 0; } } } q = iprh_tmp->next_pbuf; iprh_prev = iprh_tmp; } /* If q is NULL, then we made it to the end of the list. Determine what to do now */ if (q == NULL) { if (iprh_prev != NULL) { /* this is (for now), the fragment with the highest offset: * chain it to the last fragment */ #if IP_REASS_CHECK_OVERLAP LWIP_ASSERT("check fragments don't overlap", iprh_prev->end <= iprh->start); #endif /* IP_REASS_CHECK_OVERLAP */ iprh_prev->next_pbuf = new_p; if (iprh_prev->end != iprh->start) { valid = 0; } } else { #if IP_REASS_CHECK_OVERLAP LWIP_ASSERT("no previous fragment, this must be the first fragment!", ipr->p == NULL); #endif /* IP_REASS_CHECK_OVERLAP */ /* this is the first fragment we ever received for this ip datagram */ ipr->p = new_p; } } /* At this point, the validation part begins: */ /* If we already received the last fragment */ if ((ipr->flags & IP_REASS_FLAG_LASTFRAG) != 0) { /* and had no wholes so far */ if (valid) { /* then check if the rest of the fragments is here */ /* Check if the queue starts with the first datagram */ if (((struct ip_reass_helper*)ipr->p->payload)->start != 0) { valid = 0; } else { /* and check that there are no wholes after this datagram */ iprh_prev = iprh; q = iprh->next_pbuf; while (q != NULL) { iprh = (struct ip_reass_helper*)q->payload; if (iprh_prev->end != iprh->start) { valid = 0; break; } iprh_prev = iprh; q = iprh->next_pbuf; } /* if still valid, all fragments are received * (because to the MF==0 already arrived */ if (valid) { LWIP_ASSERT("sanity check", ipr->p != NULL); LWIP_ASSERT("sanity check", ((struct ip_reass_helper*)ipr->p->payload) != iprh); LWIP_ASSERT("validate_datagram:next_pbuf!=NULL", iprh->next_pbuf == NULL); LWIP_ASSERT("validate_datagram:datagram end!=datagram len", iprh->end == ipr->datagram_len); } } } /* If valid is 0 here, there are some fragments missing in the middle * (since MF == 0 has already arrived). Such datagrams simply time out if * no more fragments are received... */ return valid; } /* If we come here, not all fragments were received, yet! */ return 0; /* not yet valid! */ #if IP_REASS_CHECK_OVERLAP freepbuf: ip_reass_pbufcount -= pbuf_clen(new_p); pbuf_free(new_p); return 0; #endif /* IP_REASS_CHECK_OVERLAP */ } /** * Reassembles incoming IP fragments into an IP datagram. * * @param p points to a pbuf chain of the fragment * @return NULL if reassembly is incomplete, ? otherwise */ struct pbuf * ip_reass(struct pbuf *p) { struct pbuf *r; struct ip_hdr *fraghdr; struct ip_reassdata *ipr; struct ip_reass_helper *iprh; u16_t offset, len; u8_t clen; struct ip_reassdata *ipr_prev = NULL; IPFRAG_STATS_INC(ip_frag.recv); snmp_inc_ipreasmreqds(); fraghdr = (struct ip_hdr*)p->payload; if ((IPH_HL(fraghdr) * 4) != IP_HLEN) { LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass: IP options currently not supported!\n")); IPFRAG_STATS_INC(ip_frag.err); goto nullreturn; } offset = (ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) * 8; len = ntohs(IPH_LEN(fraghdr)) - IPH_HL(fraghdr) * 4; /* Check if we are allowed to enqueue more datagrams. */ clen = pbuf_clen(p); if ((ip_reass_pbufcount + clen) > IP_REASS_MAX_PBUFS) { #if IP_REASS_FREE_OLDEST if (!ip_reass_remove_oldest_datagram(fraghdr, clen) || ((ip_reass_pbufcount + clen) > IP_REASS_MAX_PBUFS)) #endif /* IP_REASS_FREE_OLDEST */ { /* No datagram could be freed and still too many pbufs enqueued */ LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass: Overflow condition: pbufct=%d, clen=%d, MAX=%d\n", ip_reass_pbufcount, clen, IP_REASS_MAX_PBUFS)); IPFRAG_STATS_INC(ip_frag.memerr); /* @todo: send ICMP time exceeded here? */ /* drop this pbuf */ goto nullreturn; } } /* Look for the datagram the fragment belongs to in the current datagram queue, * remembering the previous in the queue for later dequeueing. */ for (ipr = reassdatagrams; ipr != NULL; ipr = ipr->next) { /* Check if the incoming fragment matches the one currently present in the reassembly buffer. If so, we proceed with copying the fragment into the buffer. */ if (IP_ADDRESSES_AND_ID_MATCH(&ipr->iphdr, fraghdr)) { LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass: matching previous fragment ID=%"X16_F"\n", ntohs(IPH_ID(fraghdr)))); IPFRAG_STATS_INC(ip_frag.cachehit); break; } ipr_prev = ipr; } if (ipr == NULL) { /* Enqueue a new datagram into the datagram queue */ ipr = ip_reass_enqueue_new_datagram(fraghdr, clen); /* Bail if unable to enqueue */ if(ipr == NULL) { goto nullreturn; } } else { if (((ntohs(IPH_OFFSET(fraghdr)) & IP_OFFMASK) == 0) && ((ntohs(IPH_OFFSET(&ipr->iphdr)) & IP_OFFMASK) != 0)) { /* ipr->iphdr is not the header from the first fragment, but fraghdr is * -> copy fraghdr into ipr->iphdr since we want to have the header * of the first fragment (for ICMP time exceeded and later, for copying * all options, if supported)*/ SMEMCPY(&ipr->iphdr, fraghdr, IP_HLEN); } } /* Track the current number of pbufs current 'in-flight', in order to limit the number of fragments that may be enqueued at any one time */ ip_reass_pbufcount += clen; /* At this point, we have either created a new entry or pointing * to an existing one */ /* check for 'no more fragments', and update queue entry*/ if ((ntohs(IPH_OFFSET(fraghdr)) & IP_MF) == 0) { ipr->flags |= IP_REASS_FLAG_LASTFRAG; ipr->datagram_len = offset + len; LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_reass: last fragment seen, total len %"S16_F"\n", ipr->datagram_len)); } /* find the right place to insert this pbuf */ /* @todo: trim pbufs if fragments are overlapping */ if (ip_reass_chain_frag_into_datagram_and_validate(ipr, p)) { /* the totally last fragment (flag more fragments = 0) was received at least * once AND all fragments are received */ ipr->datagram_len += IP_HLEN; /* save the second pbuf before copying the header over the pointer */ r = ((struct ip_reass_helper*)ipr->p->payload)->next_pbuf; /* copy the original ip header back to the first pbuf */ fraghdr = (struct ip_hdr*)(ipr->p->payload); SMEMCPY(fraghdr, &ipr->iphdr, IP_HLEN); IPH_LEN_SET(fraghdr, htons(ipr->datagram_len)); IPH_OFFSET_SET(fraghdr, 0); IPH_CHKSUM_SET(fraghdr, 0); /* @todo: do we need to set calculate the correct checksum? */ IPH_CHKSUM_SET(fraghdr, inet_chksum(fraghdr, IP_HLEN)); p = ipr->p; /* chain together the pbufs contained within the reass_data list. */ while(r != NULL) { iprh = (struct ip_reass_helper*)r->payload; /* hide the ip header for every succeding fragment */ pbuf_header(r, -IP_HLEN); pbuf_cat(p, r); r = iprh->next_pbuf; } /* release the sources allocate for the fragment queue entry */ ip_reass_dequeue_datagram(ipr, ipr_prev); /* and adjust the number of pbufs currently queued for reassembly. */ ip_reass_pbufcount -= pbuf_clen(p); /* Return the pbuf chain */ return p; } /* the datagram is not (yet?) reassembled completely */ LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass_pbufcount: %d out\n", ip_reass_pbufcount)); return NULL; nullreturn: LWIP_DEBUGF(IP_REASS_DEBUG,("ip_reass: nullreturn\n")); IPFRAG_STATS_INC(ip_frag.drop); pbuf_free(p); return NULL; } #endif /* IP_REASSEMBLY */ #if IP_FRAG #if IP_FRAG_USES_STATIC_BUF static u8_t buf[LWIP_MEM_ALIGN_SIZE(IP_FRAG_MAX_MTU + MEM_ALIGNMENT - 1)]; #endif /* IP_FRAG_USES_STATIC_BUF */ /** * Fragment an IP datagram if too large for the netif. * * Chop the datagram in MTU sized chunks and send them in order * by using a fixed size static memory buffer (PBUF_REF) or * point PBUF_REFs into p (depending on IP_FRAG_USES_STATIC_BUF). * * @param p ip packet to send * @param netif the netif on which to send * @param dest destination ip address to which to send * * @return ERR_OK if sent successfully, err_t otherwise */ err_t ip_frag(struct pbuf *p, struct netif *netif, struct ip_addr *dest) { struct pbuf *rambuf; #if IP_FRAG_USES_STATIC_BUF struct pbuf *header; #else struct pbuf *newpbuf; struct ip_hdr *original_iphdr; #endif struct ip_hdr *iphdr; u16_t nfb; u16_t left, cop; u16_t mtu = netif->mtu; u16_t ofo, omf; u16_t last; u16_t poff = IP_HLEN; u16_t tmp; #if !IP_FRAG_USES_STATIC_BUF u16_t newpbuflen = 0; u16_t left_to_copy; #endif /* Get a RAM based MTU sized pbuf */ #if IP_FRAG_USES_STATIC_BUF /* When using a static buffer, we use a PBUF_REF, which we will * use to reference the packet (without link header). * Layer and length is irrelevant. */ rambuf = pbuf_alloc(PBUF_LINK, 0, PBUF_REF); if (rambuf == NULL) { LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_frag: pbuf_alloc(PBUF_LINK, 0, PBUF_REF) failed\n")); return ERR_MEM; } rambuf->tot_len = rambuf->len = mtu; rambuf->payload = LWIP_MEM_ALIGN((void *)buf); /* Copy the IP header in it */ iphdr = rambuf->payload; SMEMCPY(iphdr, p->payload, IP_HLEN); #else /* IP_FRAG_USES_STATIC_BUF */ original_iphdr = p->payload; iphdr = original_iphdr; #endif /* IP_FRAG_USES_STATIC_BUF */ /* Save original offset */ tmp = ntohs(IPH_OFFSET(iphdr)); ofo = tmp & IP_OFFMASK; omf = tmp & IP_MF; left = p->tot_len - IP_HLEN; nfb = (mtu - IP_HLEN) / 8; while (left) { last = (left <= mtu - IP_HLEN); /* Set new offset and MF flag */ tmp = omf | (IP_OFFMASK & (ofo)); if (!last) tmp = tmp | IP_MF; /* Fill this fragment */ cop = last ? left : nfb * 8; #if IP_FRAG_USES_STATIC_BUF poff += pbuf_copy_partial(p, (u8_t*)iphdr + IP_HLEN, cop, poff); #else /* IP_FRAG_USES_STATIC_BUF */ /* When not using a static buffer, create a chain of pbufs. * The first will be a PBUF_RAM holding the link and IP header. * The rest will be PBUF_REFs mirroring the pbuf chain to be fragged, * but limited to the size of an mtu. */ rambuf = pbuf_alloc(PBUF_LINK, IP_HLEN, PBUF_RAM); if (rambuf == NULL) { return ERR_MEM; } LWIP_ASSERT("this needs a pbuf in one piece!", (p->len >= (IP_HLEN))); SMEMCPY(rambuf->payload, original_iphdr, IP_HLEN); iphdr = rambuf->payload; /* Can just adjust p directly for needed offset. */ p->payload = (u8_t *)p->payload + poff; p->len -= poff; left_to_copy = cop; while (left_to_copy) { newpbuflen = (left_to_copy < p->len) ? left_to_copy : p->len; /* Is this pbuf already empty? */ if (!newpbuflen) { p = p->next; continue; } newpbuf = pbuf_alloc(PBUF_RAW, 0, PBUF_REF); if (newpbuf == NULL) { pbuf_free(rambuf); return ERR_MEM; } /* Mirror this pbuf, although we might not need all of it. */ newpbuf->payload = p->payload; newpbuf->len = newpbuf->tot_len = newpbuflen; /* Add it to end of rambuf's chain, but using pbuf_cat, not pbuf_chain * so that it is removed when pbuf_dechain is later called on rambuf. */ pbuf_cat(rambuf, newpbuf); left_to_copy -= newpbuflen; if (left_to_copy) p = p->next; } poff = newpbuflen; #endif /* IP_FRAG_USES_STATIC_BUF */ /* Correct header */ IPH_OFFSET_SET(iphdr, htons(tmp)); IPH_LEN_SET(iphdr, htons(cop + IP_HLEN)); IPH_CHKSUM_SET(iphdr, 0); IPH_CHKSUM_SET(iphdr, inet_chksum(iphdr, IP_HLEN)); #if IP_FRAG_USES_STATIC_BUF if (last) pbuf_realloc(rambuf, left + IP_HLEN); /* This part is ugly: we alloc a RAM based pbuf for * the link level header for each chunk and then * free it.A PBUF_ROM style pbuf for which pbuf_header * worked would make things simpler. */ header = pbuf_alloc(PBUF_LINK, 0, PBUF_RAM); if (header != NULL) { pbuf_chain(header, rambuf); netif->output(netif, header, dest); IPFRAG_STATS_INC(ip_frag.xmit); snmp_inc_ipfragcreates(); pbuf_free(header); } else { LWIP_DEBUGF(IP_REASS_DEBUG, ("ip_frag: pbuf_alloc() for header failed\n")); pbuf_free(rambuf); return ERR_MEM; } #else /* IP_FRAG_USES_STATIC_BUF */ /* No need for separate header pbuf - we allowed room for it in rambuf * when allocated. */ netif->output(netif, rambuf, dest); IPFRAG_STATS_INC(ip_frag.xmit); /* Unfortunately we can't reuse rambuf - the hardware may still be * using the buffer. Instead we free it (and the ensuing chain) and * recreate it next time round the loop. If we're lucky the hardware * will have already sent the packet, the free will really free, and * there will be zero memory penalty. */ pbuf_free(rambuf); #endif /* IP_FRAG_USES_STATIC_BUF */ left -= cop; ofo += nfb; } #if IP_FRAG_USES_STATIC_BUF pbuf_free(rambuf); #endif /* IP_FRAG_USES_STATIC_BUF */ snmp_inc_ipfragoks(); return ERR_OK; } #endif /* IP_FRAG */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv6/000077500000000000000000000000001224274632000217275ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv6/README000066400000000000000000000000531224274632000226050ustar00rootroot00000000000000IPv6 support in lwIP is very experimental. uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv6/icmp6.c000066400000000000000000000134231224274632000231140ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ /* Some ICMP messages should be passed to the transport protocols. This is not implemented. */ #include "lwip/opt.h" #if LWIP_ICMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/icmp.h" #include "lwip/inet.h" #include "lwip/ip.h" #include "lwip/def.h" #include "lwip/stats.h" void icmp_input(struct pbuf *p, struct netif *inp) { u8_t type; struct icmp_echo_hdr *iecho; struct ip_hdr *iphdr; struct ip_addr tmpaddr; ICMP_STATS_INC(icmp.recv); /* TODO: check length before accessing payload! */ type = ((u8_t *)p->payload)[0]; switch (type) { case ICMP6_ECHO: LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ping\n")); if (p->tot_len < sizeof(struct icmp_echo_hdr)) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: bad ICMP echo received\n")); pbuf_free(p); ICMP_STATS_INC(icmp.lenerr); return; } iecho = p->payload; iphdr = (struct ip_hdr *)((u8_t *)p->payload - IP_HLEN); if (inet_chksum_pbuf(p) != 0) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo (%"X16_F")\n", inet_chksum_pseudo(p, &(iphdr->src), &(iphdr->dest), IP_PROTO_ICMP, p->tot_len))); ICMP_STATS_INC(icmp.chkerr); /* return;*/ } LWIP_DEBUGF(ICMP_DEBUG, ("icmp: p->len %"S16_F" p->tot_len %"S16_F"\n", p->len, p->tot_len)); ip_addr_set(&tmpaddr, &(iphdr->src)); ip_addr_set(&(iphdr->src), &(iphdr->dest)); ip_addr_set(&(iphdr->dest), &tmpaddr); iecho->type = ICMP6_ER; /* adjust the checksum */ if (iecho->chksum >= htons(0xffff - (ICMP6_ECHO << 8))) { iecho->chksum += htons(ICMP6_ECHO << 8) + 1; } else { iecho->chksum += htons(ICMP6_ECHO << 8); } LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo (%"X16_F")\n", inet_chksum_pseudo(p, &(iphdr->src), &(iphdr->dest), IP_PROTO_ICMP, p->tot_len))); ICMP_STATS_INC(icmp.xmit); /* LWIP_DEBUGF("icmp: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len);*/ ip_output_if (p, &(iphdr->src), IP_HDRINCL, iphdr->hoplim, IP_PROTO_ICMP, inp); break; default: LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" not supported.\n", (s16_t)type)); ICMP_STATS_INC(icmp.proterr); ICMP_STATS_INC(icmp.drop); } pbuf_free(p); } void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t) { struct pbuf *q; struct ip_hdr *iphdr; struct icmp_dur_hdr *idur; /* @todo: can this be PBUF_LINK instead of PBUF_IP? */ q = pbuf_alloc(PBUF_IP, 8 + IP_HLEN + 8, PBUF_RAM); /* ICMP header + IP header + 8 bytes of data */ if (q == NULL) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_dest_unreach: failed to allocate pbuf for ICMP packet.\n")); pbuf_free(p); return; } LWIP_ASSERT("check that first pbuf can hold icmp message", (q->len >= (8 + IP_HLEN + 8))); iphdr = p->payload; idur = q->payload; idur->type = (u8_t)ICMP6_DUR; idur->icode = (u8_t)t; SMEMCPY((u8_t *)q->payload + 8, p->payload, IP_HLEN + 8); /* calculate checksum */ idur->chksum = 0; idur->chksum = inet_chksum(idur, q->len); ICMP_STATS_INC(icmp.xmit); ip_output(q, NULL, (struct ip_addr *)&(iphdr->src), ICMP_TTL, IP_PROTO_ICMP); pbuf_free(q); } void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t) { struct pbuf *q; struct ip_hdr *iphdr; struct icmp_te_hdr *tehdr; LWIP_DEBUGF(ICMP_DEBUG, ("icmp_time_exceeded\n")); /* @todo: can this be PBUF_LINK instead of PBUF_IP? */ q = pbuf_alloc(PBUF_IP, 8 + IP_HLEN + 8, PBUF_RAM); /* ICMP header + IP header + 8 bytes of data */ if (q == NULL) { LWIP_DEBUGF(ICMP_DEBUG, ("icmp_dest_unreach: failed to allocate pbuf for ICMP packet.\n")); pbuf_free(p); return; } LWIP_ASSERT("check that first pbuf can hold icmp message", (q->len >= (8 + IP_HLEN + 8))); iphdr = p->payload; tehdr = q->payload; tehdr->type = (u8_t)ICMP6_TE; tehdr->icode = (u8_t)t; /* copy fields from original packet */ SMEMCPY((u8_t *)q->payload + 8, (u8_t *)p->payload, IP_HLEN + 8); /* calculate checksum */ tehdr->chksum = 0; tehdr->chksum = inet_chksum(tehdr, q->len); ICMP_STATS_INC(icmp.xmit); ip_output(q, NULL, (struct ip_addr *)&(iphdr->src), ICMP_TTL, IP_PROTO_ICMP); pbuf_free(q); } #endif /* LWIP_ICMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv6/inet6.c000066400000000000000000000102761224274632000231260ustar00rootroot00000000000000/** * @file * Functions common to all TCP/IPv6 modules, such as the Internet checksum and the * byte order functions. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/inet.h" /* chksum: * * Sums up all 16 bit words in a memory portion. Also includes any odd byte. * This function is used by the other checksum functions. * * For now, this is not optimized. Must be optimized for the particular processor * arcitecture on which it is to run. Preferebly coded in assembler. */ static u32_t chksum(void *dataptr, u16_t len) { u16_t *sdataptr = dataptr; u32_t acc; for(acc = 0; len > 1; len -= 2) { acc += *sdataptr++; } /* add up any odd byte */ if (len == 1) { acc += htons((u16_t)(*(u8_t *)dataptr) << 8); } return acc; } /* inet_chksum_pseudo: * * Calculates the pseudo Internet checksum used by TCP and UDP for a pbuf chain. */ u16_t inet_chksum_pseudo(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u32_t proto_len) { u32_t acc; struct pbuf *q; u8_t swapped, i; acc = 0; swapped = 0; for(q = p; q != NULL; q = q->next) { acc += chksum(q->payload, q->len); while (acc >> 16) { acc = (acc & 0xffff) + (acc >> 16); } if (q->len % 2 != 0) { swapped = 1 - swapped; acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8); } } if (swapped) { acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8); } for(i = 0; i < 8; i++) { acc += ((u16_t *)src->addr)[i] & 0xffff; acc += ((u16_t *)dest->addr)[i] & 0xffff; while (acc >> 16) { acc = (acc & 0xffff) + (acc >> 16); } } acc += (u16_t)htons((u16_t)proto); acc += ((u16_t *)&proto_len)[0] & 0xffff; acc += ((u16_t *)&proto_len)[1] & 0xffff; while (acc >> 16) { acc = (acc & 0xffff) + (acc >> 16); } return ~(acc & 0xffff); } /* inet_chksum: * * Calculates the Internet checksum over a portion of memory. Used primarely for IP * and ICMP. */ u16_t inet_chksum(void *dataptr, u16_t len) { u32_t acc, sum; acc = chksum(dataptr, len); sum = (acc & 0xffff) + (acc >> 16); sum += (sum >> 16); return ~(sum & 0xffff); } u16_t inet_chksum_pbuf(struct pbuf *p) { u32_t acc; struct pbuf *q; u8_t swapped; acc = 0; swapped = 0; for(q = p; q != NULL; q = q->next) { acc += chksum(q->payload, q->len); while (acc >> 16) { acc = (acc & 0xffff) + (acc >> 16); } if (q->len % 2 != 0) { swapped = 1 - swapped; acc = (acc & 0xff << 8) | (acc & 0xff00 >> 8); } } if (swapped) { acc = ((acc & 0xff) << 8) | ((acc & 0xff00) >> 8); } return ~(acc & 0xffff); } uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv6/ip6.c000066400000000000000000000262561224274632000226040ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ /* ip.c * * This is the code for the IP layer for IPv6. * */ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/ip.h" #include "lwip/inet.h" #include "lwip/netif.h" #include "lwip/icmp.h" #include "lwip/udp.h" #include "lwip/tcp.h" #include "lwip/stats.h" #include "arch/perf.h" /* ip_init: * * Initializes the IP layer. */ void ip_init(void) { } /* ip_route: * * Finds the appropriate network interface for a given IP address. It searches the * list of network interfaces linearly. A match is found if the masked IP address of * the network interface equals the masked IP address given to the function. */ struct netif * ip_route(struct ip_addr *dest) { struct netif *netif; for(netif = netif_list; netif != NULL; netif = netif->next) { if (ip_addr_netcmp(dest, &(netif->ip_addr), &(netif->netmask))) { return netif; } } return netif_default; } /* ip_forward: * * Forwards an IP packet. It finds an appropriate route for the packet, decrements * the TTL value of the packet, adjusts the checksum and outputs the packet on the * appropriate interface. */ static void ip_forward(struct pbuf *p, struct ip_hdr *iphdr) { struct netif *netif; PERF_START; if ((netif = ip_route((struct ip_addr *)&(iphdr->dest))) == NULL) { LWIP_DEBUGF(IP_DEBUG, ("ip_input: no forwarding route found for ")); #if IP_DEBUG ip_addr_debug_print(IP_DEBUG, ((struct ip_addr *)&(iphdr->dest))); #endif /* IP_DEBUG */ LWIP_DEBUGF(IP_DEBUG, ("\n")); pbuf_free(p); return; } /* Decrement TTL and send ICMP if ttl == 0. */ if (--iphdr->hoplim == 0) { #if LWIP_ICMP /* Don't send ICMP messages in response to ICMP messages */ if (iphdr->nexthdr != IP_PROTO_ICMP) { icmp_time_exceeded(p, ICMP_TE_TTL); } #endif /* LWIP_ICMP */ pbuf_free(p); return; } /* Incremental update of the IP checksum. */ /* if (iphdr->chksum >= htons(0xffff - 0x100)) { iphdr->chksum += htons(0x100) + 1; } else { iphdr->chksum += htons(0x100); }*/ LWIP_DEBUGF(IP_DEBUG, ("ip_forward: forwarding packet to ")); #if IP_DEBUG ip_addr_debug_print(IP_DEBUG, ((struct ip_addr *)&(iphdr->dest))); #endif /* IP_DEBUG */ LWIP_DEBUGF(IP_DEBUG, ("\n")); IP_STATS_INC(ip.fw); IP_STATS_INC(ip.xmit); PERF_STOP("ip_forward"); netif->output(netif, p, (struct ip_addr *)&(iphdr->dest)); } /* ip_input: * * This function is called by the network interface device driver when an IP packet is * received. The function does the basic checks of the IP header such as packet size * being at least larger than the header size etc. If the packet was not destined for * us, the packet is forwarded (using ip_forward). The IP checksum is always checked. * * Finally, the packet is sent to the upper layer protocol input function. */ void ip_input(struct pbuf *p, struct netif *inp) { struct ip_hdr *iphdr; struct netif *netif; PERF_START; #if IP_DEBUG ip_debug_print(p); #endif /* IP_DEBUG */ IP_STATS_INC(ip.recv); /* identify the IP header */ iphdr = p->payload; if (iphdr->v != 6) { LWIP_DEBUGF(IP_DEBUG, ("IP packet dropped due to bad version number\n")); #if IP_DEBUG ip_debug_print(p); #endif /* IP_DEBUG */ pbuf_free(p); IP_STATS_INC(ip.err); IP_STATS_INC(ip.drop); return; } /* is this packet for us? */ for(netif = netif_list; netif != NULL; netif = netif->next) { #if IP_DEBUG LWIP_DEBUGF(IP_DEBUG, ("ip_input: iphdr->dest ")); ip_addr_debug_print(IP_DEBUG, ((struct ip_addr *)&(iphdr->dest))); LWIP_DEBUGF(IP_DEBUG, ("netif->ip_addr ")); ip_addr_debug_print(IP_DEBUG, ((struct ip_addr *)&(iphdr->dest))); LWIP_DEBUGF(IP_DEBUG, ("\n")); #endif /* IP_DEBUG */ if (ip_addr_cmp(&(iphdr->dest), &(netif->ip_addr))) { break; } } if (netif == NULL) { /* packet not for us, route or discard */ #if IP_FORWARD ip_forward(p, iphdr); #endif pbuf_free(p); return; } pbuf_realloc(p, IP_HLEN + ntohs(iphdr->len)); /* send to upper layers */ #if IP_DEBUG /* LWIP_DEBUGF("ip_input: \n"); ip_debug_print(p); LWIP_DEBUGF("ip_input: p->len %"U16_F" p->tot_len %"U16_F"\n", p->len, p->tot_len);*/ #endif /* IP_DEBUG */ if(pbuf_header(p, -IP_HLEN)) { LWIP_ASSERT("Can't move over header in packet", 0); return; } switch (iphdr->nexthdr) { case IP_PROTO_UDP: udp_input(p, inp); break; case IP_PROTO_TCP: tcp_input(p, inp); break; #if LWIP_ICMP case IP_PROTO_ICMP: icmp_input(p, inp); break; #endif /* LWIP_ICMP */ default: #if LWIP_ICMP /* send ICMP destination protocol unreachable */ icmp_dest_unreach(p, ICMP_DUR_PROTO); #endif /* LWIP_ICMP */ pbuf_free(p); LWIP_DEBUGF(IP_DEBUG, ("Unsupported transport protocol %"U16_F"\n", iphdr->nexthdr)); IP_STATS_INC(ip.proterr); IP_STATS_INC(ip.drop); } PERF_STOP("ip_input"); } /* ip_output_if: * * Sends an IP packet on a network interface. This function constructs the IP header * and calculates the IP header checksum. If the source IP address is NULL, * the IP address of the outgoing network interface is filled in as source address. */ err_t ip_output_if (struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto, struct netif *netif) { struct ip_hdr *iphdr; PERF_START; LWIP_DEBUGF(IP_DEBUG, ("len %"U16_F" tot_len %"U16_F"\n", p->len, p->tot_len)); if (pbuf_header(p, IP_HLEN)) { LWIP_DEBUGF(IP_DEBUG, ("ip_output: not enough room for IP header in pbuf\n")); IP_STATS_INC(ip.err); return ERR_BUF; } LWIP_DEBUGF(IP_DEBUG, ("len %"U16_F" tot_len %"U16_F"\n", p->len, p->tot_len)); iphdr = p->payload; if (dest != IP_HDRINCL) { LWIP_DEBUGF(IP_DEBUG, ("!IP_HDRLINCL\n")); iphdr->hoplim = ttl; iphdr->nexthdr = proto; iphdr->len = htons(p->tot_len - IP_HLEN); ip_addr_set(&(iphdr->dest), dest); iphdr->v = 6; if (ip_addr_isany(src)) { ip_addr_set(&(iphdr->src), &(netif->ip_addr)); } else { ip_addr_set(&(iphdr->src), src); } } else { dest = &(iphdr->dest); } IP_STATS_INC(ip.xmit); LWIP_DEBUGF(IP_DEBUG, ("ip_output_if: %c%c (len %"U16_F")\n", netif->name[0], netif->name[1], p->tot_len)); #if IP_DEBUG ip_debug_print(p); #endif /* IP_DEBUG */ PERF_STOP("ip_output_if"); return netif->output(netif, p, dest); } /* ip_output: * * Simple interface to ip_output_if. It finds the outgoing network interface and * calls upon ip_output_if to do the actual work. */ err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto) { struct netif *netif; if ((netif = ip_route(dest)) == NULL) { LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to 0x%"X32_F"\n", dest->addr)); IP_STATS_INC(ip.rterr); return ERR_RTE; } return ip_output_if (p, src, dest, ttl, proto, netif); } #if LWIP_NETIF_HWADDRHINT err_t ip_output_hinted(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, u8_t *addr_hint) { struct netif *netif; err_t err; if ((netif = ip_route(dest)) == NULL) { LWIP_DEBUGF(IP_DEBUG, ("ip_output: No route to 0x%"X32_F"\n", dest->addr)); IP_STATS_INC(ip.rterr); return ERR_RTE; } netif->addr_hint = addr_hint; err = ip_output_if(p, src, dest, ttl, tos, proto, netif); netif->addr_hint = NULL; return err; } #endif /* LWIP_NETIF_HWADDRHINT*/ #if IP_DEBUG void ip_debug_print(struct pbuf *p) { struct ip_hdr *iphdr = p->payload; LWIP_DEBUGF(IP_DEBUG, ("IP header:\n")); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("|%2"S16_F" | %"X16_F"%"X16_F" | %"X16_F"%"X16_F" | (v, traffic class, flow label)\n", iphdr->v, iphdr->tclass1, iphdr->tclass2, iphdr->flow1, iphdr->flow2)); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %5"U16_F" | %2"U16_F" | %2"U16_F" | (len, nexthdr, hoplim)\n", ntohs(iphdr->len), iphdr->nexthdr, iphdr->hoplim)); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (src)\n", (ntohl(iphdr->src.addr[0]) >> 16) & 0xffff, ntohl(iphdr->src.addr[0]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (src)\n", (ntohl(iphdr->src.addr[1]) >> 16) & 0xffff, ntohl(iphdr->src.addr[1]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (src)\n", (ntohl(iphdr->src.addr[2]) >> 16) & 0xffff, ntohl(iphdr->src.addr[2]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (src)\n", (ntohl(iphdr->src.addr[3]) >> 16) & 0xffff, ntohl(iphdr->src.addr[3]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (dest)\n", (ntohl(iphdr->dest.addr[0]) >> 16) & 0xffff, ntohl(iphdr->dest.addr[0]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (dest)\n", (ntohl(iphdr->dest.addr[1]) >> 16) & 0xffff, ntohl(iphdr->dest.addr[1]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (dest)\n", (ntohl(iphdr->dest.addr[2]) >> 16) & 0xffff, ntohl(iphdr->dest.addr[2]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("| %4"X32_F" | %4"X32_F" | (dest)\n", (ntohl(iphdr->dest.addr[3]) >> 16) & 0xffff, ntohl(iphdr->dest.addr[3]) & 0xffff)); LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n")); } #endif /* IP_DEBUG */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/ipv6/ip6_addr.c000066400000000000000000000053211224274632000235640ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/ip_addr.h" #include "lwip/inet.h" u8_t ip_addr_netcmp(struct ip_addr *addr1, struct ip_addr *addr2, struct ip_addr *mask) { return((addr1->addr[0] & mask->addr[0]) == (addr2->addr[0] & mask->addr[0]) && (addr1->addr[1] & mask->addr[1]) == (addr2->addr[1] & mask->addr[1]) && (addr1->addr[2] & mask->addr[2]) == (addr2->addr[2] & mask->addr[2]) && (addr1->addr[3] & mask->addr[3]) == (addr2->addr[3] & mask->addr[3])); } u8_t ip_addr_cmp(struct ip_addr *addr1, struct ip_addr *addr2) { return(addr1->addr[0] == addr2->addr[0] && addr1->addr[1] == addr2->addr[1] && addr1->addr[2] == addr2->addr[2] && addr1->addr[3] == addr2->addr[3]); } void ip_addr_set(struct ip_addr *dest, struct ip_addr *src) { SMEMCPY(dest, src, sizeof(struct ip_addr)); /* dest->addr[0] = src->addr[0]; dest->addr[1] = src->addr[1]; dest->addr[2] = src->addr[2]; dest->addr[3] = src->addr[3];*/ } u8_t ip_addr_isany(struct ip_addr *addr) { if (addr == NULL) return 1; return((addr->addr[0] | addr->addr[1] | addr->addr[2] | addr->addr[3]) == 0); } uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/mem.c000066400000000000000000000526531224274632000220000ustar00rootroot00000000000000/** * @file * Dynamic memory manager * * This is a lightweight replacement for the standard C library malloc(). * * If you want to use the standard C library malloc() instead, define * MEM_LIBC_MALLOC to 1 in your lwipopts.h * * To let mem_malloc() use pools (prevents fragmentation and is much faster than * a heap but might waste some memory), define MEM_USE_POOLS to 1, define * MEM_USE_CUSTOM_POOLS to 1 and create a file "lwippools.h" that includes a list * of pools like this (more pools can be added between _START and _END): * * Define three pools with sizes 256, 512, and 1512 bytes * LWIP_MALLOC_MEMPOOL_START * LWIP_MALLOC_MEMPOOL(20, 256) * LWIP_MALLOC_MEMPOOL(10, 512) * LWIP_MALLOC_MEMPOOL(5, 1512) * LWIP_MALLOC_MEMPOOL_END */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * Simon Goldschmidt * */ #include "lwip/opt.h" #if !MEM_LIBC_MALLOC /* don't build if not configured for use in lwipopts.h */ #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/sys.h" #include "lwip/stats.h" #include #if MEM_USE_POOLS /* lwIP head implemented with different sized pools */ /** * Allocate memory: determine the smallest pool that is big enough * to contain an element of 'size' and get an element from that pool. * * @param size the size in bytes of the memory needed * @return a pointer to the allocated memory or NULL if the pool is empty */ void * mem_malloc(mem_size_t size) { struct memp_malloc_helper *element; memp_t poolnr; mem_size_t required_size = size + sizeof(struct memp_malloc_helper); for (poolnr = MEMP_POOL_FIRST; poolnr <= MEMP_POOL_LAST; poolnr++) { #if MEM_USE_POOLS_TRY_BIGGER_POOL again: #endif /* MEM_USE_POOLS_TRY_BIGGER_POOL */ /* is this pool big enough to hold an element of the required size plus a struct memp_malloc_helper that saves the pool this element came from? */ if (required_size <= memp_sizes[poolnr]) { break; } } if (poolnr > MEMP_POOL_LAST) { LWIP_ASSERT("mem_malloc(): no pool is that big!", 0); return NULL; } element = (struct memp_malloc_helper*)memp_malloc(poolnr); if (element == NULL) { /* No need to DEBUGF or ASSERT: This error is already taken care of in memp.c */ #if MEM_USE_POOLS_TRY_BIGGER_POOL /** Try a bigger pool if this one is empty! */ if (poolnr < MEMP_POOL_LAST) { poolnr++; goto again; } #endif /* MEM_USE_POOLS_TRY_BIGGER_POOL */ return NULL; } /* save the pool number this element came from */ element->poolnr = poolnr; /* and return a pointer to the memory directly after the struct memp_malloc_helper */ element++; return element; } /** * Free memory previously allocated by mem_malloc. Loads the pool number * and calls memp_free with that pool number to put the element back into * its pool * * @param rmem the memory element to free */ void mem_free(void *rmem) { struct memp_malloc_helper *hmem = (struct memp_malloc_helper*)rmem; LWIP_ASSERT("rmem != NULL", (rmem != NULL)); LWIP_ASSERT("rmem == MEM_ALIGN(rmem)", (rmem == LWIP_MEM_ALIGN(rmem))); /* get the original struct memp_malloc_helper */ hmem--; LWIP_ASSERT("hmem != NULL", (hmem != NULL)); LWIP_ASSERT("hmem == MEM_ALIGN(hmem)", (hmem == LWIP_MEM_ALIGN(hmem))); LWIP_ASSERT("hmem->poolnr < MEMP_MAX", (hmem->poolnr < MEMP_MAX)); /* and put it in the pool we saved earlier */ memp_free(hmem->poolnr, hmem); } #else /* MEM_USE_POOLS */ /* lwIP replacement for your libc malloc() */ /** * The heap is made up as a list of structs of this type. * This does not have to be aligned since for getting its size, * we only use the macro SIZEOF_STRUCT_MEM, which automatically alignes. */ struct mem { /** index (-> ram[next]) of the next struct */ mem_size_t next; /** index (-> ram[next]) of the next struct */ mem_size_t prev; /** 1: this area is used; 0: this area is unused */ u8_t used; }; /** All allocated blocks will be MIN_SIZE bytes big, at least! * MIN_SIZE can be overridden to suit your needs. Smaller values save space, * larger values could prevent too small blocks to fragment the RAM too much. */ #ifndef MIN_SIZE #define MIN_SIZE 12 #endif /* MIN_SIZE */ /* some alignment macros: we define them here for better source code layout */ #define MIN_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MIN_SIZE) #define SIZEOF_STRUCT_MEM LWIP_MEM_ALIGN_SIZE(sizeof(struct mem)) #define MEM_SIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEM_SIZE) /** the heap. we need one struct mem at the end and some room for alignment */ static u8_t ram_heap[MEM_SIZE_ALIGNED + (2*SIZEOF_STRUCT_MEM) + MEM_ALIGNMENT]; /** pointer to the heap (ram_heap): for alignment, ram is now a pointer instead of an array */ static u8_t *ram; /** the last entry, always unused! */ static struct mem *ram_end; /** pointer to the lowest free block, this is used for faster search */ static struct mem *lfree; /** concurrent access protection */ static sys_sem_t mem_sem; #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT static volatile u8_t mem_free_count; /* Allow mem_free from other (e.g. interrupt) context */ #define LWIP_MEM_FREE_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_free) #define LWIP_MEM_FREE_PROTECT() SYS_ARCH_PROTECT(lev_free) #define LWIP_MEM_FREE_UNPROTECT() SYS_ARCH_UNPROTECT(lev_free) #define LWIP_MEM_ALLOC_DECL_PROTECT() SYS_ARCH_DECL_PROTECT(lev_alloc) #define LWIP_MEM_ALLOC_PROTECT() SYS_ARCH_PROTECT(lev_alloc) #define LWIP_MEM_ALLOC_UNPROTECT() SYS_ARCH_UNPROTECT(lev_alloc) #else /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ /* Protect the heap only by using a semaphore */ #define LWIP_MEM_FREE_DECL_PROTECT() #define LWIP_MEM_FREE_PROTECT() sys_arch_sem_wait(mem_sem, 0) #define LWIP_MEM_FREE_UNPROTECT() sys_sem_signal(mem_sem) /* mem_malloc is protected using semaphore AND LWIP_MEM_ALLOC_PROTECT */ #define LWIP_MEM_ALLOC_DECL_PROTECT() #define LWIP_MEM_ALLOC_PROTECT() #define LWIP_MEM_ALLOC_UNPROTECT() #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ /** * "Plug holes" by combining adjacent empty struct mems. * After this function is through, there should not exist * one empty struct mem pointing to another empty struct mem. * * @param mem this points to a struct mem which just has been freed * @internal this function is only called by mem_free() and mem_realloc() * * This assumes access to the heap is protected by the calling function * already. */ static void plug_holes(struct mem *mem) { struct mem *nmem; struct mem *pmem; LWIP_ASSERT("plug_holes: mem >= ram", (u8_t *)mem >= ram); LWIP_ASSERT("plug_holes: mem < ram_end", (u8_t *)mem < (u8_t *)ram_end); LWIP_ASSERT("plug_holes: mem->used == 0", mem->used == 0); /* plug hole forward */ LWIP_ASSERT("plug_holes: mem->next <= MEM_SIZE_ALIGNED", mem->next <= MEM_SIZE_ALIGNED); nmem = (struct mem *)&ram[mem->next]; if (mem != nmem && nmem->used == 0 && (u8_t *)nmem != (u8_t *)ram_end) { /* if mem->next is unused and not end of ram, combine mem and mem->next */ if (lfree == nmem) { lfree = mem; } mem->next = nmem->next; ((struct mem *)&ram[nmem->next])->prev = (u8_t *)mem - ram; } /* plug hole backward */ pmem = (struct mem *)&ram[mem->prev]; if (pmem != mem && pmem->used == 0) { /* if mem->prev is unused, combine mem and mem->prev */ if (lfree == mem) { lfree = pmem; } pmem->next = mem->next; ((struct mem *)&ram[mem->next])->prev = (u8_t *)pmem - ram; } } /** * Zero the heap and initialize start, end and lowest-free */ void mem_init(void) { struct mem *mem; LWIP_ASSERT("Sanity check alignment", (SIZEOF_STRUCT_MEM & (MEM_ALIGNMENT-1)) == 0); /* align the heap */ ram = LWIP_MEM_ALIGN(ram_heap); /* initialize the start of the heap */ mem = (struct mem *)ram; mem->next = MEM_SIZE_ALIGNED; mem->prev = 0; mem->used = 0; /* initialize the end of the heap */ ram_end = (struct mem *)&ram[MEM_SIZE_ALIGNED]; ram_end->used = 1; ram_end->next = MEM_SIZE_ALIGNED; ram_end->prev = MEM_SIZE_ALIGNED; mem_sem = sys_sem_new(1); /* initialize the lowest-free pointer to the start of the heap */ lfree = (struct mem *)ram; MEM_STATS_AVAIL(avail, MEM_SIZE_ALIGNED); } /** * Put a struct mem back on the heap * * @param rmem is the data portion of a struct mem as returned by a previous * call to mem_malloc() */ void mem_free(void *rmem) { struct mem *mem; LWIP_MEM_FREE_DECL_PROTECT(); if (rmem == NULL) { LWIP_DEBUGF(MEM_DEBUG | LWIP_DBG_TRACE | 2, ("mem_free(p == NULL) was called.\n")); return; } LWIP_ASSERT("mem_free: sanity check alignment", (((mem_ptr_t)rmem) & (MEM_ALIGNMENT-1)) == 0); LWIP_ASSERT("mem_free: legal memory", (u8_t *)rmem >= (u8_t *)ram && (u8_t *)rmem < (u8_t *)ram_end); if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { SYS_ARCH_DECL_PROTECT(lev); LWIP_DEBUGF(MEM_DEBUG | 3, ("mem_free: illegal memory\n")); /* protect mem stats from concurrent access */ SYS_ARCH_PROTECT(lev); MEM_STATS_INC(illegal); SYS_ARCH_UNPROTECT(lev); return; } /* protect the heap from concurrent access */ LWIP_MEM_FREE_PROTECT(); /* Get the corresponding struct mem ... */ mem = (struct mem *)((u8_t *)rmem - SIZEOF_STRUCT_MEM); /* ... which has to be in a used state ... */ LWIP_ASSERT("mem_free: mem->used", mem->used); /* ... and is now unused. */ mem->used = 0; if (mem < lfree) { /* the newly freed struct is now the lowest */ lfree = mem; } MEM_STATS_DEC_USED(used, mem->next - ((u8_t *)mem - ram)); /* finally, see if prev or next are free also */ plug_holes(mem); #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT mem_free_count = 1; #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ LWIP_MEM_FREE_UNPROTECT(); } /** * In contrast to its name, mem_realloc can only shrink memory, not expand it. * Since the only use (for now) is in pbuf_realloc (which also can only shrink), * this shouldn't be a problem! * * @param rmem pointer to memory allocated by mem_malloc the is to be shrinked * @param newsize required size after shrinking (needs to be smaller than or * equal to the previous size) * @return for compatibility reasons: is always == rmem, at the moment * or NULL if newsize is > old size, in which case rmem is NOT touched * or freed! */ void * mem_realloc(void *rmem, mem_size_t newsize) { mem_size_t size; mem_size_t ptr, ptr2; struct mem *mem, *mem2; /* use the FREE_PROTECT here: it protects with sem OR SYS_ARCH_PROTECT */ LWIP_MEM_FREE_DECL_PROTECT(); /* Expand the size of the allocated memory region so that we can adjust for alignment. */ newsize = LWIP_MEM_ALIGN_SIZE(newsize); if(newsize < MIN_SIZE_ALIGNED) { /* every data block must be at least MIN_SIZE_ALIGNED long */ newsize = MIN_SIZE_ALIGNED; } if (newsize > MEM_SIZE_ALIGNED) { return NULL; } LWIP_ASSERT("mem_realloc: legal memory", (u8_t *)rmem >= (u8_t *)ram && (u8_t *)rmem < (u8_t *)ram_end); if ((u8_t *)rmem < (u8_t *)ram || (u8_t *)rmem >= (u8_t *)ram_end) { SYS_ARCH_DECL_PROTECT(lev); LWIP_DEBUGF(MEM_DEBUG | 3, ("mem_realloc: illegal memory\n")); /* protect mem stats from concurrent access */ SYS_ARCH_PROTECT(lev); MEM_STATS_INC(illegal); SYS_ARCH_UNPROTECT(lev); return rmem; } /* Get the corresponding struct mem ... */ mem = (struct mem *)((u8_t *)rmem - SIZEOF_STRUCT_MEM); /* ... and its offset pointer */ ptr = (u8_t *)mem - ram; size = mem->next - ptr - SIZEOF_STRUCT_MEM; LWIP_ASSERT("mem_realloc can only shrink memory", newsize <= size); if (newsize > size) { /* not supported */ return NULL; } if (newsize == size) { /* No change in size, simply return */ return rmem; } /* protect the heap from concurrent access */ LWIP_MEM_FREE_PROTECT(); MEM_STATS_DEC_USED(used, (size - newsize)); mem2 = (struct mem *)&ram[mem->next]; if(mem2->used == 0) { /* The next struct is unused, we can simply move it at little */ mem_size_t next; /* remember the old next pointer */ next = mem2->next; /* create new struct mem which is moved directly after the shrinked mem */ ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize; if (lfree == mem2) { lfree = (struct mem *)&ram[ptr2]; } mem2 = (struct mem *)&ram[ptr2]; mem2->used = 0; /* restore the next pointer */ mem2->next = next; /* link it back to mem */ mem2->prev = ptr; /* link mem to it */ mem->next = ptr2; /* last thing to restore linked list: as we have moved mem2, * let 'mem2->next->prev' point to mem2 again. but only if mem2->next is not * the end of the heap */ if (mem2->next != MEM_SIZE_ALIGNED) { ((struct mem *)&ram[mem2->next])->prev = ptr2; } /* no need to plug holes, we've already done that */ } else if (newsize + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED <= size) { /* Next struct is used but there's room for another struct mem with * at least MIN_SIZE_ALIGNED of data. * Old size ('size') must be big enough to contain at least 'newsize' plus a struct mem * ('SIZEOF_STRUCT_MEM') with some data ('MIN_SIZE_ALIGNED'). * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty * region that couldn't hold data, but when mem->next gets freed, * the 2 regions would be combined, resulting in more free memory */ ptr2 = ptr + SIZEOF_STRUCT_MEM + newsize; mem2 = (struct mem *)&ram[ptr2]; if (mem2 < lfree) { lfree = mem2; } mem2->used = 0; mem2->next = mem->next; mem2->prev = ptr; mem->next = ptr2; if (mem2->next != MEM_SIZE_ALIGNED) { ((struct mem *)&ram[mem2->next])->prev = ptr2; } /* the original mem->next is used, so no need to plug holes! */ } /* else { next struct mem is used but size between mem and mem2 is not big enough to create another struct mem -> don't do anyhting. -> the remaining space stays unused since it is too small } */ #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT mem_free_count = 1; #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ LWIP_MEM_FREE_UNPROTECT(); return rmem; } /** * Adam's mem_malloc() plus solution for bug #17922 * Allocate a block of memory with a minimum of 'size' bytes. * * @param size is the minimum size of the requested block in bytes. * @return pointer to allocated memory or NULL if no free memory was found. * * Note that the returned value will always be aligned (as defined by MEM_ALIGNMENT). */ void * mem_malloc(mem_size_t size) { mem_size_t ptr, ptr2; struct mem *mem, *mem2; #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT u8_t local_mem_free_count = 0; #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ LWIP_MEM_ALLOC_DECL_PROTECT(); if (size == 0) { return NULL; } /* Expand the size of the allocated memory region so that we can adjust for alignment. */ size = LWIP_MEM_ALIGN_SIZE(size); if(size < MIN_SIZE_ALIGNED) { /* every data block must be at least MIN_SIZE_ALIGNED long */ size = MIN_SIZE_ALIGNED; } if (size > MEM_SIZE_ALIGNED) { return NULL; } /* protect the heap from concurrent access */ sys_arch_sem_wait(mem_sem, 0); LWIP_MEM_ALLOC_PROTECT(); #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT /* run as long as a mem_free disturbed mem_malloc */ do { local_mem_free_count = 0; #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ /* Scan through the heap searching for a free block that is big enough, * beginning with the lowest free block. */ for (ptr = (u8_t *)lfree - ram; ptr < MEM_SIZE_ALIGNED - size; ptr = ((struct mem *)&ram[ptr])->next) { mem = (struct mem *)&ram[ptr]; #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT mem_free_count = 0; LWIP_MEM_ALLOC_UNPROTECT(); /* allow mem_free to run */ LWIP_MEM_ALLOC_PROTECT(); if (mem_free_count != 0) { local_mem_free_count = mem_free_count; } mem_free_count = 0; #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ if ((!mem->used) && (mem->next - (ptr + SIZEOF_STRUCT_MEM)) >= size) { /* mem is not used and at least perfect fit is possible: * mem->next - (ptr + SIZEOF_STRUCT_MEM) gives us the 'user data size' of mem */ if (mem->next - (ptr + SIZEOF_STRUCT_MEM) >= (size + SIZEOF_STRUCT_MEM + MIN_SIZE_ALIGNED)) { /* (in addition to the above, we test if another struct mem (SIZEOF_STRUCT_MEM) containing * at least MIN_SIZE_ALIGNED of data also fits in the 'user data space' of 'mem') * -> split large block, create empty remainder, * remainder must be large enough to contain MIN_SIZE_ALIGNED data: if * mem->next - (ptr + (2*SIZEOF_STRUCT_MEM)) == size, * struct mem would fit in but no data between mem2 and mem2->next * @todo we could leave out MIN_SIZE_ALIGNED. We would create an empty * region that couldn't hold data, but when mem->next gets freed, * the 2 regions would be combined, resulting in more free memory */ ptr2 = ptr + SIZEOF_STRUCT_MEM + size; /* create mem2 struct */ mem2 = (struct mem *)&ram[ptr2]; mem2->used = 0; mem2->next = mem->next; mem2->prev = ptr; /* and insert it between mem and mem->next */ mem->next = ptr2; mem->used = 1; if (mem2->next != MEM_SIZE_ALIGNED) { ((struct mem *)&ram[mem2->next])->prev = ptr2; } MEM_STATS_INC_USED(used, (size + SIZEOF_STRUCT_MEM)); } else { /* (a mem2 struct does no fit into the user data space of mem and mem->next will always * be used at this point: if not we have 2 unused structs in a row, plug_holes should have * take care of this). * -> near fit or excact fit: do not split, no mem2 creation * also can't move mem->next directly behind mem, since mem->next * will always be used at this point! */ mem->used = 1; MEM_STATS_INC_USED(used, mem->next - ((u8_t *)mem - ram)); } if (mem == lfree) { /* Find next free block after mem and update lowest free pointer */ while (lfree->used && lfree != ram_end) { LWIP_MEM_ALLOC_UNPROTECT(); /* prevent high interrupt latency... */ LWIP_MEM_ALLOC_PROTECT(); lfree = (struct mem *)&ram[lfree->next]; } LWIP_ASSERT("mem_malloc: !lfree->used", ((lfree == ram_end) || (!lfree->used))); } LWIP_MEM_ALLOC_UNPROTECT(); sys_sem_signal(mem_sem); LWIP_ASSERT("mem_malloc: allocated memory not above ram_end.", (mem_ptr_t)mem + SIZEOF_STRUCT_MEM + size <= (mem_ptr_t)ram_end); LWIP_ASSERT("mem_malloc: allocated memory properly aligned.", ((mem_ptr_t)mem + SIZEOF_STRUCT_MEM) % MEM_ALIGNMENT == 0); LWIP_ASSERT("mem_malloc: sanity check alignment", (((mem_ptr_t)mem) & (MEM_ALIGNMENT-1)) == 0); return (u8_t *)mem + SIZEOF_STRUCT_MEM; } } #if LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT /* if we got interrupted by a mem_free, try again */ } while(local_mem_free_count != 0); #endif /* LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT */ LWIP_DEBUGF(MEM_DEBUG | 2, ("mem_malloc: could not allocate %"S16_F" bytes\n", (s16_t)size)); MEM_STATS_INC(err); LWIP_MEM_ALLOC_UNPROTECT(); sys_sem_signal(mem_sem); return NULL; } #endif /* MEM_USE_POOLS */ /** * Contiguously allocates enough space for count objects that are size bytes * of memory each and returns a pointer to the allocated memory. * * The allocated memory is filled with bytes of value zero. * * @param count number of objects to allocate * @param size size of the objects to allocate * @return pointer to allocated memory / NULL pointer if there is an error */ void *mem_calloc(mem_size_t count, mem_size_t size) { void *p; /* allocate 'count' objects of size 'size' */ p = mem_malloc(count * size); if (p) { /* zero the memory */ memset(p, 0, count * size); } return p; } #endif /* !MEM_LIBC_MALLOC */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/memp.c000066400000000000000000000253461224274632000221570ustar00rootroot00000000000000/** * @file * Dynamic pool memory manager * * lwIP has dedicated pools for many structures (netconn, protocol control blocks, * packet buffers, ...). All these pools are managed here. */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/memp.h" #include "lwip/pbuf.h" #include "lwip/udp.h" #include "lwip/raw.h" #include "lwip/tcp.h" #include "lwip/igmp.h" #include "lwip/api.h" #include "lwip/api_msg.h" #include "lwip/tcpip.h" #include "lwip/sys.h" #include "lwip/stats.h" #include "netif/etharp.h" #include "lwip/ip_frag.h" #include #if !MEMP_MEM_MALLOC /* don't build if not configured for use in lwipopts.h */ struct memp { struct memp *next; #if MEMP_OVERFLOW_CHECK const char *file; int line; #endif /* MEMP_OVERFLOW_CHECK */ }; #if MEMP_OVERFLOW_CHECK /* if MEMP_OVERFLOW_CHECK is turned on, we reserve some bytes at the beginning * and at the end of each element, initialize them as 0xcd and check * them later. */ /* If MEMP_OVERFLOW_CHECK is >= 2, on every call to memp_malloc or memp_free, * every single element in each pool is checked! * This is VERY SLOW but also very helpful. */ /* MEMP_SANITY_REGION_BEFORE and MEMP_SANITY_REGION_AFTER can be overridden in * lwipopts.h to change the amount reserved for checking. */ #ifndef MEMP_SANITY_REGION_BEFORE #define MEMP_SANITY_REGION_BEFORE 16 #endif /* MEMP_SANITY_REGION_BEFORE*/ #if MEMP_SANITY_REGION_BEFORE > 0 #define MEMP_SANITY_REGION_BEFORE_ALIGNED LWIP_MEM_ALIGN_SIZE(MEMP_SANITY_REGION_BEFORE) #else #define MEMP_SANITY_REGION_BEFORE_ALIGNED 0 #endif /* MEMP_SANITY_REGION_BEFORE*/ #ifndef MEMP_SANITY_REGION_AFTER #define MEMP_SANITY_REGION_AFTER 16 #endif /* MEMP_SANITY_REGION_AFTER*/ #if MEMP_SANITY_REGION_AFTER > 0 #define MEMP_SANITY_REGION_AFTER_ALIGNED LWIP_MEM_ALIGN_SIZE(MEMP_SANITY_REGION_AFTER) #else #define MEMP_SANITY_REGION_AFTER_ALIGNED 0 #endif /* MEMP_SANITY_REGION_AFTER*/ /* MEMP_SIZE: save space for struct memp and for sanity check */ #define MEMP_SIZE (LWIP_MEM_ALIGN_SIZE(sizeof(struct memp)) + MEMP_SANITY_REGION_BEFORE_ALIGNED) #define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x) + MEMP_SANITY_REGION_AFTER_ALIGNED) #else /* MEMP_OVERFLOW_CHECK */ /* No sanity checks * We don't need to preserve the struct memp while not allocated, so we * can save a little space and set MEMP_SIZE to 0. */ #define MEMP_SIZE 0 #define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x)) #endif /* MEMP_OVERFLOW_CHECK */ /** This array holds the first free element of each pool. * Elements form a linked list. */ static struct memp *memp_tab[MEMP_MAX]; #else /* MEMP_MEM_MALLOC */ #define MEMP_ALIGN_SIZE(x) (LWIP_MEM_ALIGN_SIZE(x)) #endif /* MEMP_MEM_MALLOC */ /** This array holds the element sizes of each pool. */ #if !MEM_USE_POOLS && !MEMP_MEM_MALLOC static #endif const u16_t memp_sizes[MEMP_MAX] = { #define LWIP_MEMPOOL(name,num,size,desc) LWIP_MEM_ALIGN_SIZE(size), #include "lwip/memp_std.h" }; #if !MEMP_MEM_MALLOC /* don't build if not configured for use in lwipopts.h */ /** This array holds the number of elements in each pool. */ static const u16_t memp_num[MEMP_MAX] = { #define LWIP_MEMPOOL(name,num,size,desc) (num), #include "lwip/memp_std.h" }; /** This array holds a textual description of each pool. */ #ifdef LWIP_DEBUG static const char *memp_desc[MEMP_MAX] = { #define LWIP_MEMPOOL(name,num,size,desc) (desc), #include "lwip/memp_std.h" }; #endif /* LWIP_DEBUG */ /** This is the actual memory used by the pools. */ static u8_t memp_memory[MEM_ALIGNMENT - 1 #define LWIP_MEMPOOL(name,num,size,desc) + ( (num) * (MEMP_SIZE + MEMP_ALIGN_SIZE(size) ) ) #include "lwip/memp_std.h" ]; #if MEMP_SANITY_CHECK /** * Check that memp-lists don't form a circle */ static int memp_sanity(void) { s16_t i, c; struct memp *m, *n; for (i = 0; i < MEMP_MAX; i++) { for (m = memp_tab[i]; m != NULL; m = m->next) { c = 1; for (n = memp_tab[i]; n != NULL; n = n->next) { if (n == m && --c < 0) { return 0; } } } } return 1; } #endif /* MEMP_SANITY_CHECK*/ #if MEMP_OVERFLOW_CHECK /** * Check if a memp element was victim of an overflow * (e.g. the restricted area after it has been altered) * * @param p the memp element to check * @param memp_size the element size of the pool p comes from */ static void memp_overflow_check_element(struct memp *p, u16_t memp_size) { u16_t k; u8_t *m; #if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0 m = (u8_t*)p + MEMP_SIZE - MEMP_SANITY_REGION_BEFORE_ALIGNED; for (k = 0; k < MEMP_SANITY_REGION_BEFORE_ALIGNED; k++) { if (m[k] != 0xcd) { LWIP_ASSERT("detected memp underflow!", 0); } } #endif #if MEMP_SANITY_REGION_AFTER_ALIGNED > 0 m = (u8_t*)p + MEMP_SIZE + memp_size; for (k = 0; k < MEMP_SANITY_REGION_AFTER_ALIGNED; k++) { if (m[k] != 0xcd) { LWIP_ASSERT("detected memp overflow!", 0); } } #endif } /** * Do an overflow check for all elements in every pool. * * @see memp_overflow_check_element for a description of the check */ static void memp_overflow_check_all(void) { u16_t i, j; struct memp *p; p = LWIP_MEM_ALIGN(memp_memory); for (i = 0; i < MEMP_MAX; ++i) { p = p; for (j = 0; j < memp_num[i]; ++j) { memp_overflow_check_element(p, memp_sizes[i]); p = (struct memp*)((u8_t*)p + MEMP_SIZE + memp_sizes[i] + MEMP_SANITY_REGION_AFTER_ALIGNED); } } } /** * Initialize the restricted areas of all memp elements in every pool. */ static void memp_overflow_init(void) { u16_t i, j; struct memp *p; u8_t *m; p = LWIP_MEM_ALIGN(memp_memory); for (i = 0; i < MEMP_MAX; ++i) { p = p; for (j = 0; j < memp_num[i]; ++j) { #if MEMP_SANITY_REGION_BEFORE_ALIGNED > 0 m = (u8_t*)p + MEMP_SIZE - MEMP_SANITY_REGION_BEFORE_ALIGNED; memset(m, 0xcd, MEMP_SANITY_REGION_BEFORE_ALIGNED); #endif #if MEMP_SANITY_REGION_AFTER_ALIGNED > 0 m = (u8_t*)p + MEMP_SIZE + memp_sizes[i]; memset(m, 0xcd, MEMP_SANITY_REGION_AFTER_ALIGNED); #endif p = (struct memp*)((u8_t*)p + MEMP_SIZE + memp_sizes[i] + MEMP_SANITY_REGION_AFTER_ALIGNED); } } } #endif /* MEMP_OVERFLOW_CHECK */ /** * Initialize this module. * * Carves out memp_memory into linked lists for each pool-type. */ void memp_init(void) { struct memp *memp; u16_t i, j; for (i = 0; i < MEMP_MAX; ++i) { MEMP_STATS_AVAIL(used, i, 0); MEMP_STATS_AVAIL(max, i, 0); MEMP_STATS_AVAIL(err, i, 0); MEMP_STATS_AVAIL(avail, i, memp_num[i]); } memp = LWIP_MEM_ALIGN(memp_memory); /* for every pool: */ for (i = 0; i < MEMP_MAX; ++i) { memp_tab[i] = NULL; /* create a linked list of memp elements */ for (j = 0; j < memp_num[i]; ++j) { memp->next = memp_tab[i]; memp_tab[i] = memp; memp = (struct memp *)((u8_t *)memp + MEMP_SIZE + memp_sizes[i] #if MEMP_OVERFLOW_CHECK + MEMP_SANITY_REGION_AFTER_ALIGNED #endif ); } } #if MEMP_OVERFLOW_CHECK memp_overflow_init(); /* check everything a first time to see if it worked */ memp_overflow_check_all(); #endif /* MEMP_OVERFLOW_CHECK */ } /** * Get an element from a specific pool. * * @param type the pool to get an element from * * the debug version has two more parameters: * @param file file name calling this function * @param line number of line where this function is called * * @return a pointer to the allocated memory or a NULL pointer on error */ void * #if !MEMP_OVERFLOW_CHECK memp_malloc(memp_t type) #else memp_malloc_fn(memp_t type, const char* file, const int line) #endif { struct memp *memp; SYS_ARCH_DECL_PROTECT(old_level); LWIP_ERROR("memp_malloc: type < MEMP_MAX", (type < MEMP_MAX), return NULL;); SYS_ARCH_PROTECT(old_level); #if MEMP_OVERFLOW_CHECK >= 2 memp_overflow_check_all(); #endif /* MEMP_OVERFLOW_CHECK >= 2 */ memp = memp_tab[type]; if (memp != NULL) { memp_tab[type] = memp->next; #if MEMP_OVERFLOW_CHECK memp->next = NULL; memp->file = file; memp->line = line; #endif /* MEMP_OVERFLOW_CHECK */ MEMP_STATS_INC_USED(used, type); LWIP_ASSERT("memp_malloc: memp properly aligned", ((mem_ptr_t)memp % MEM_ALIGNMENT) == 0); memp = (struct memp*)((u8_t*)memp + MEMP_SIZE); } else { LWIP_DEBUGF(MEMP_DEBUG | 2, ("memp_malloc: out of memory in pool %s\n", memp_desc[type])); MEMP_STATS_INC(err, type); } SYS_ARCH_UNPROTECT(old_level); return memp; } /** * Put an element back into its pool. * * @param type the pool where to put mem * @param mem the memp element to free */ void memp_free(memp_t type, void *mem) { struct memp *memp; SYS_ARCH_DECL_PROTECT(old_level); if (mem == NULL) { return; } LWIP_ASSERT("memp_free: mem properly aligned", ((mem_ptr_t)mem % MEM_ALIGNMENT) == 0); memp = (struct memp *)((u8_t*)mem - MEMP_SIZE); SYS_ARCH_PROTECT(old_level); #if MEMP_OVERFLOW_CHECK #if MEMP_OVERFLOW_CHECK >= 2 memp_overflow_check_all(); #else memp_overflow_check_element(memp, memp_sizes[type]); #endif /* MEMP_OVERFLOW_CHECK >= 2 */ #endif /* MEMP_OVERFLOW_CHECK */ MEMP_STATS_DEC(used, type); memp->next = memp_tab[type]; memp_tab[type] = memp; #if MEMP_SANITY_CHECK LWIP_ASSERT("memp sanity", memp_sanity()); #endif /* MEMP_SANITY_CHECK */ SYS_ARCH_UNPROTECT(old_level); } #endif /* MEMP_MEM_MALLOC */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/netif.c000066400000000000000000000446471224274632000223330ustar00rootroot00000000000000/** * @file * lwIP network interface abstraction * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/tcp.h" #include "lwip/snmp.h" #include "lwip/igmp.h" #include "netif/etharp.h" #if ENABLE_LOOPBACK #include "lwip/sys.h" #if LWIP_NETIF_LOOPBACK_MULTITHREADING #include "lwip/tcpip.h" #endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ #endif /* ENABLE_LOOPBACK */ #if LWIP_NETIF_STATUS_CALLBACK #define NETIF_STATUS_CALLBACK(n) { if (n->status_callback) (n->status_callback)(n); } #else #define NETIF_STATUS_CALLBACK(n) { /* NOP */ } #endif /* LWIP_NETIF_STATUS_CALLBACK */ #if LWIP_NETIF_LINK_CALLBACK #define NETIF_LINK_CALLBACK(n) { if (n->link_callback) (n->link_callback)(n); } #else #define NETIF_LINK_CALLBACK(n) { /* NOP */ } #endif /* LWIP_NETIF_LINK_CALLBACK */ struct netif *netif_list; struct netif *netif_default; /** * Add a network interface to the list of lwIP netifs. * * @param netif a pre-allocated netif structure * @param ipaddr IP address for the new netif * @param netmask network mask for the new netif * @param gw default gateway IP address for the new netif * @param state opaque data passed to the new netif * @param init callback function that initializes the interface * @param input callback function that is called to pass * ingress packets up in the protocol layer stack. * * @return netif, or NULL if failed. */ struct netif * netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, void *state, err_t (* init)(struct netif *netif), err_t (* input)(struct pbuf *p, struct netif *netif)) { static u8_t netifnum = 0; /* reset new interface configuration state */ netif->ip_addr.addr = 0; netif->netmask.addr = 0; netif->gw.addr = 0; netif->flags = 0; #if LWIP_DHCP /* netif not under DHCP control by default */ netif->dhcp = NULL; #endif /* LWIP_DHCP */ #if LWIP_AUTOIP /* netif not under AutoIP control by default */ netif->autoip = NULL; #endif /* LWIP_AUTOIP */ #if LWIP_NETIF_STATUS_CALLBACK netif->status_callback = NULL; #endif /* LWIP_NETIF_STATUS_CALLBACK */ #if LWIP_NETIF_LINK_CALLBACK netif->link_callback = NULL; #endif /* LWIP_NETIF_LINK_CALLBACK */ #if LWIP_IGMP netif->igmp_mac_filter = NULL; #endif /* LWIP_IGMP */ #if ENABLE_LOOPBACK netif->loop_first = NULL; netif->loop_last = NULL; #endif /* ENABLE_LOOPBACK */ /* remember netif specific state information data */ netif->state = state; netif->num = netifnum++; netif->input = input; #if LWIP_NETIF_HWADDRHINT netif->addr_hint = NULL; #endif /* LWIP_NETIF_HWADDRHINT*/ #if ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS netif->loop_cnt_current = 0; #endif /* ENABLE_LOOPBACK && LWIP_LOOPBACK_MAX_PBUFS */ netif_set_addr(netif, ipaddr, netmask, gw); /* call user specified initialization function for netif */ if (init(netif) != ERR_OK) { return NULL; } /* add this netif to the list */ netif->next = netif_list; netif_list = netif; snmp_inc_iflist(); #if LWIP_IGMP /* start IGMP processing */ if (netif->flags & NETIF_FLAG_IGMP) { igmp_start( netif); } #endif /* LWIP_IGMP */ LWIP_DEBUGF(NETIF_DEBUG, ("netif: added interface %c%c IP addr ", netif->name[0], netif->name[1])); ip_addr_debug_print(NETIF_DEBUG, ipaddr); LWIP_DEBUGF(NETIF_DEBUG, (" netmask ")); ip_addr_debug_print(NETIF_DEBUG, netmask); LWIP_DEBUGF(NETIF_DEBUG, (" gw ")); ip_addr_debug_print(NETIF_DEBUG, gw); LWIP_DEBUGF(NETIF_DEBUG, ("\n")); return netif; } /** * Change IP address configuration for a network interface (including netmask * and default gateway). * * @param netif the network interface to change * @param ipaddr the new IP address * @param netmask the new netmask * @param gw the new default gateway */ void netif_set_addr(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw) { netif_set_ipaddr(netif, ipaddr); netif_set_netmask(netif, netmask); netif_set_gw(netif, gw); } /** * Remove a network interface from the list of lwIP netifs. * * @param netif the network interface to remove */ void netif_remove(struct netif * netif) { if ( netif == NULL ) return; #if LWIP_IGMP /* stop IGMP processing */ if (netif->flags & NETIF_FLAG_IGMP) { igmp_stop( netif); } #endif /* LWIP_IGMP */ snmp_delete_ipaddridx_tree(netif); /* is it the first netif? */ if (netif_list == netif) { netif_list = netif->next; snmp_dec_iflist(); } else { /* look for netif further down the list */ struct netif * tmpNetif; for (tmpNetif = netif_list; tmpNetif != NULL; tmpNetif = tmpNetif->next) { if (tmpNetif->next == netif) { tmpNetif->next = netif->next; snmp_dec_iflist(); break; } } if (tmpNetif == NULL) return; /* we didn't find any netif today */ } /* this netif is default? */ if (netif_default == netif) /* reset default netif */ netif_set_default(NULL); LWIP_DEBUGF( NETIF_DEBUG, ("netif_remove: removed netif\n") ); } /** * Find a network interface by searching for its name * * @param name the name of the netif (like netif->name) plus concatenated number * in ascii representation (e.g. 'en0') */ struct netif * netif_find(char *name) { struct netif *netif; u8_t num; if (name == NULL) { return NULL; } num = name[2] - '0'; for(netif = netif_list; netif != NULL; netif = netif->next) { if (num == netif->num && name[0] == netif->name[0] && name[1] == netif->name[1]) { LWIP_DEBUGF(NETIF_DEBUG, ("netif_find: found %c%c\n", name[0], name[1])); return netif; } } LWIP_DEBUGF(NETIF_DEBUG, ("netif_find: didn't find %c%c\n", name[0], name[1])); return NULL; } /** * Change the IP address of a network interface * * @param netif the network interface to change * @param ipaddr the new IP address * * @note call netif_set_addr() if you also want to change netmask and * default gateway */ void netif_set_ipaddr(struct netif *netif, struct ip_addr *ipaddr) { /* TODO: Handling of obsolete pcbs */ /* See: http://mail.gnu.org/archive/html/lwip-users/2003-03/msg00118.html */ #if LWIP_TCP struct tcp_pcb *pcb; struct tcp_pcb_listen *lpcb; /* address is actually being changed? */ if ((ip_addr_cmp(ipaddr, &(netif->ip_addr))) == 0) { /* extern struct tcp_pcb *tcp_active_pcbs; defined by tcp.h */ LWIP_DEBUGF(NETIF_DEBUG | 1, ("netif_set_ipaddr: netif address being changed\n")); pcb = tcp_active_pcbs; while (pcb != NULL) { /* PCB bound to current local interface address? */ if (ip_addr_cmp(&(pcb->local_ip), &(netif->ip_addr))) { /* this connection must be aborted */ struct tcp_pcb *next = pcb->next; LWIP_DEBUGF(NETIF_DEBUG | 1, ("netif_set_ipaddr: aborting TCP pcb %p\n", (void *)pcb)); tcp_abort(pcb); pcb = next; } else { pcb = pcb->next; } } for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { /* PCB bound to current local interface address? */ if ((!(ip_addr_isany(&(lpcb->local_ip)))) && (ip_addr_cmp(&(lpcb->local_ip), &(netif->ip_addr)))) { /* The PCB is listening to the old ipaddr and * is set to listen to the new one instead */ ip_addr_set(&(lpcb->local_ip), ipaddr); } } } #endif snmp_delete_ipaddridx_tree(netif); snmp_delete_iprteidx_tree(0,netif); /* set new IP address to netif */ ip_addr_set(&(netif->ip_addr), ipaddr); snmp_insert_ipaddridx_tree(netif); snmp_insert_iprteidx_tree(0,netif); LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 3, ("netif: IP address of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", netif->name[0], netif->name[1], ip4_addr1(&netif->ip_addr), ip4_addr2(&netif->ip_addr), ip4_addr3(&netif->ip_addr), ip4_addr4(&netif->ip_addr))); } /** * Change the default gateway for a network interface * * @param netif the network interface to change * @param gw the new default gateway * * @note call netif_set_addr() if you also want to change ip address and netmask */ void netif_set_gw(struct netif *netif, struct ip_addr *gw) { ip_addr_set(&(netif->gw), gw); LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 3, ("netif: GW address of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", netif->name[0], netif->name[1], ip4_addr1(&netif->gw), ip4_addr2(&netif->gw), ip4_addr3(&netif->gw), ip4_addr4(&netif->gw))); } /** * Change the netmask of a network interface * * @param netif the network interface to change * @param netmask the new netmask * * @note call netif_set_addr() if you also want to change ip address and * default gateway */ void netif_set_netmask(struct netif *netif, struct ip_addr *netmask) { snmp_delete_iprteidx_tree(0, netif); /* set new netmask to netif */ ip_addr_set(&(netif->netmask), netmask); snmp_insert_iprteidx_tree(0, netif); LWIP_DEBUGF(NETIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE | 3, ("netif: netmask of interface %c%c set to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", netif->name[0], netif->name[1], ip4_addr1(&netif->netmask), ip4_addr2(&netif->netmask), ip4_addr3(&netif->netmask), ip4_addr4(&netif->netmask))); } /** * Set a network interface as the default network interface * (used to output all packets for which no specific route is found) * * @param netif the default network interface */ void netif_set_default(struct netif *netif) { if (netif == NULL) { /* remove default route */ snmp_delete_iprteidx_tree(1, netif); } else { /* install default route */ snmp_insert_iprteidx_tree(1, netif); } netif_default = netif; LWIP_DEBUGF(NETIF_DEBUG, ("netif: setting default interface %c%c\n", netif ? netif->name[0] : '\'', netif ? netif->name[1] : '\'')); } /** * Bring an interface up, available for processing * traffic. * * @note: Enabling DHCP on a down interface will make it come * up once configured. * * @see dhcp_start() */ void netif_set_up(struct netif *netif) { if ( !(netif->flags & NETIF_FLAG_UP )) { netif->flags |= NETIF_FLAG_UP; #if LWIP_SNMP snmp_get_sysuptime(&netif->ts); #endif /* LWIP_SNMP */ NETIF_LINK_CALLBACK(netif); NETIF_STATUS_CALLBACK(netif); #if LWIP_ARP /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */ if (netif->flags & NETIF_FLAG_ETHARP) { etharp_gratuitous(netif); } #endif /* LWIP_ARP */ } } /** * Bring an interface down, disabling any traffic processing. * * @note: Enabling DHCP on a down interface will make it come * up once configured. * * @see dhcp_start() */ void netif_set_down(struct netif *netif) { if ( netif->flags & NETIF_FLAG_UP ) { netif->flags &= ~NETIF_FLAG_UP; #if LWIP_SNMP snmp_get_sysuptime(&netif->ts); #endif NETIF_LINK_CALLBACK(netif); NETIF_STATUS_CALLBACK(netif); } } /** * Ask if an interface is up */ u8_t netif_is_up(struct netif *netif) { return (netif->flags & NETIF_FLAG_UP)?1:0; } #if LWIP_NETIF_STATUS_CALLBACK /** * Set callback to be called when interface is brought up/down */ void netif_set_status_callback(struct netif *netif, void (* status_callback)(struct netif *netif )) { if ( netif ) netif->status_callback = status_callback; } #endif /* LWIP_NETIF_STATUS_CALLBACK */ #if LWIP_NETIF_LINK_CALLBACK /** * Called by a driver when its link goes up */ void netif_set_link_up(struct netif *netif ) { netif->flags |= NETIF_FLAG_LINK_UP; #if LWIP_ARP /* For Ethernet network interfaces, we would like to send a "gratuitous ARP" */ if (netif->flags & NETIF_FLAG_ETHARP) { etharp_gratuitous(netif); } #endif /* LWIP_ARP */ #if LWIP_IGMP /* resend IGMP memberships */ if (netif->flags & NETIF_FLAG_IGMP) { igmp_report_groups( netif); } #endif /* LWIP_IGMP */ NETIF_LINK_CALLBACK(netif); } /** * Called by a driver when its link goes down */ void netif_set_link_down(struct netif *netif ) { netif->flags &= ~NETIF_FLAG_LINK_UP; NETIF_LINK_CALLBACK(netif); } /** * Ask if a link is up */ u8_t netif_is_link_up(struct netif *netif) { return (netif->flags & NETIF_FLAG_LINK_UP) ? 1 : 0; } /** * Set callback to be called when link is brought up/down */ void netif_set_link_callback(struct netif *netif, void (* link_callback)(struct netif *netif )) { if (netif) { netif->link_callback = link_callback; } } #endif /* LWIP_NETIF_LINK_CALLBACK */ #if ENABLE_LOOPBACK /** * Send an IP packet to be received on the same netif (loopif-like). * The pbuf is simply copied and handed back to netif->input. * In multithreaded mode, this is done directly since netif->input must put * the packet on a queue. * In callback mode, the packet is put on an internal queue and is fed to * netif->input by netif_poll(). * * @param netif the lwip network interface structure * @param p the (IP) packet to 'send' * @param ipaddr the ip address to send the packet to (not used) * @return ERR_OK if the packet has been sent * ERR_MEM if the pbuf used to copy the packet couldn't be allocated */ err_t netif_loop_output(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr) { struct pbuf *r; err_t err; struct pbuf *last; #if LWIP_LOOPBACK_MAX_PBUFS u8_t clen = 0; #endif /* LWIP_LOOPBACK_MAX_PBUFS */ SYS_ARCH_DECL_PROTECT(lev); LWIP_UNUSED_ARG(ipaddr); /* Allocate a new pbuf */ r = pbuf_alloc(PBUF_LINK, p->tot_len, PBUF_RAM); if (r == NULL) { return ERR_MEM; } #if LWIP_LOOPBACK_MAX_PBUFS clen = pbuf_clen(r); /* check for overflow or too many pbuf on queue */ if(((netif->loop_cnt_current + clen) < netif->loop_cnt_current) || ((netif->loop_cnt_current + clen) > LWIP_LOOPBACK_MAX_PBUFS)) { pbuf_free(r); r = NULL; return ERR_MEM; } netif->loop_cnt_current += clen; #endif /* LWIP_LOOPBACK_MAX_PBUFS */ /* Copy the whole pbuf queue p into the single pbuf r */ if ((err = pbuf_copy(r, p)) != ERR_OK) { pbuf_free(r); r = NULL; return err; } /* Put the packet on a linked list which gets emptied through calling netif_poll(). */ /* let last point to the last pbuf in chain r */ for (last = r; last->next != NULL; last = last->next); SYS_ARCH_PROTECT(lev); if(netif->loop_first != NULL) { LWIP_ASSERT("if first != NULL, last must also be != NULL", netif->loop_last != NULL); netif->loop_last->next = r; netif->loop_last = last; } else { netif->loop_first = r; netif->loop_last = last; } SYS_ARCH_UNPROTECT(lev); #if LWIP_NETIF_LOOPBACK_MULTITHREADING /* For multithreading environment, schedule a call to netif_poll */ tcpip_callback((void (*)(void *))(netif_poll), netif); #endif /* LWIP_NETIF_LOOPBACK_MULTITHREADING */ return ERR_OK; } /** * Call netif_poll() in the main loop of your application. This is to prevent * reentering non-reentrant functions like tcp_input(). Packets passed to * netif_loop_output() are put on a list that is passed to netif->input() by * netif_poll(). */ void netif_poll(struct netif *netif) { struct pbuf *in; SYS_ARCH_DECL_PROTECT(lev); do { /* Get a packet from the list. With SYS_LIGHTWEIGHT_PROT=1, this is protected */ SYS_ARCH_PROTECT(lev); in = netif->loop_first; if(in != NULL) { struct pbuf *in_end = in; #if LWIP_LOOPBACK_MAX_PBUFS u8_t clen = pbuf_clen(in); /* adjust the number of pbufs on queue */ LWIP_ASSERT("netif->loop_cnt_current underflow", ((netif->loop_cnt_current - clen) < netif->loop_cnt_current)); netif->loop_cnt_current -= clen; #endif /* LWIP_LOOPBACK_MAX_PBUFS */ while(in_end->len != in_end->tot_len) { LWIP_ASSERT("bogus pbuf: len != tot_len but next == NULL!", in_end->next != NULL); in_end = in_end->next; } /* 'in_end' now points to the last pbuf from 'in' */ if(in_end == netif->loop_last) { /* this was the last pbuf in the list */ netif->loop_first = netif->loop_last = NULL; } else { /* pop the pbuf off the list */ netif->loop_first = in_end->next; LWIP_ASSERT("should not be null since first != last!", netif->loop_first != NULL); } /* De-queue the pbuf from its successors on the 'loop_' list. */ in_end->next = NULL; } SYS_ARCH_UNPROTECT(lev); if(in != NULL) { /* loopback packets are always IP packets! */ if(ip_input(in, netif) != ERR_OK) { pbuf_free(in); } /* Don't reference the packet any more! */ in = NULL; } /* go on while there is a packet on the list */ } while(netif->loop_first != NULL); } #if !LWIP_NETIF_LOOPBACK_MULTITHREADING /** * Calls netif_poll() for every netif on the netif_list. */ void netif_poll_all(void) { struct netif *netif = netif_list; /* loop through netifs */ while (netif != NULL) { netif_poll(netif); /* proceed to next network interface */ netif = netif->next; } } #endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ #endif /* ENABLE_LOOPBACK */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/pbuf.c000066400000000000000000000724071224274632000221550ustar00rootroot00000000000000/** * @file * Packet buffer management * * Packets are built from the pbuf data structure. It supports dynamic * memory allocation for packet contents or can reference externally * managed packet contents both in RAM and ROM. Quick allocation for * incoming packets is provided through pools with fixed sized pbufs. * * A packet may span over multiple pbufs, chained as a singly linked * list. This is called a "pbuf chain". * * Multiple packets may be queued, also using this singly linked list. * This is called a "packet queue". * * So, a packet queue consists of one or more pbuf chains, each of * which consist of one or more pbufs. CURRENTLY, PACKET QUEUES ARE * NOT SUPPORTED!!! Use helper structs to queue multiple packets. * * The differences between a pbuf chain and a packet queue are very * precise but subtle. * * The last pbuf of a packet has a ->tot_len field that equals the * ->len field. It can be found by traversing the list. If the last * pbuf of a packet has a ->next field other than NULL, more packets * are on the queue. * * Therefore, looping through a pbuf of a single packet, has an * loop end condition (tot_len == p->len), NOT (next == NULL). */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/stats.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/memp.h" #include "lwip/pbuf.h" #include "lwip/sys.h" #include "arch/perf.h" #if TCP_QUEUE_OOSEQ #include "lwip/tcp.h" #endif #include #define SIZEOF_STRUCT_PBUF LWIP_MEM_ALIGN_SIZE(sizeof(struct pbuf)) /* Since the pool is created in memp, PBUF_POOL_BUFSIZE will be automatically aligned there. Therefore, PBUF_POOL_BUFSIZE_ALIGNED can be used here. */ #define PBUF_POOL_BUFSIZE_ALIGNED LWIP_MEM_ALIGN_SIZE(PBUF_POOL_BUFSIZE) #if TCP_QUEUE_OOSEQ #define ALLOC_POOL_PBUF(p) do { (p) = alloc_pool_pbuf(); } while (0) #else #define ALLOC_POOL_PBUF(p) do { (p) = memp_malloc(MEMP_PBUF_POOL); } while (0) #endif #if TCP_QUEUE_OOSEQ /** * Attempt to reclaim some memory from queued out-of-sequence TCP segments * if we run out of pool pbufs. It's better to give priority to new packets * if we're running out. * * @return the allocated pbuf. */ static struct pbuf * alloc_pool_pbuf(void) { struct tcp_pcb *pcb; struct pbuf *p; retry: p = memp_malloc(MEMP_PBUF_POOL); if (NULL == p) { for (pcb=tcp_active_pcbs; NULL != pcb; pcb = pcb->next) { if (NULL != pcb->ooseq) { tcp_segs_free(pcb->ooseq); pcb->ooseq = NULL; goto retry; } } } return p; } #endif /* TCP_QUEUE_OOSEQ */ /** * Allocates a pbuf of the given type (possibly a chain for PBUF_POOL type). * * The actual memory allocated for the pbuf is determined by the * layer at which the pbuf is allocated and the requested size * (from the size parameter). * * @param layer flag to define header size * @param length size of the pbuf's payload * @param type this parameter decides how and where the pbuf * should be allocated as follows: * * - PBUF_RAM: buffer memory for pbuf is allocated as one large * chunk. This includes protocol headers as well. * - PBUF_ROM: no buffer memory is allocated for the pbuf, even for * protocol headers. Additional headers must be prepended * by allocating another pbuf and chain in to the front of * the ROM pbuf. It is assumed that the memory used is really * similar to ROM in that it is immutable and will not be * changed. Memory which is dynamic should generally not * be attached to PBUF_ROM pbufs. Use PBUF_REF instead. * - PBUF_REF: no buffer memory is allocated for the pbuf, even for * protocol headers. It is assumed that the pbuf is only * being used in a single thread. If the pbuf gets queued, * then pbuf_take should be called to copy the buffer. * - PBUF_POOL: the pbuf is allocated as a pbuf chain, with pbufs from * the pbuf pool that is allocated during pbuf_init(). * * @return the allocated pbuf. If multiple pbufs where allocated, this * is the first pbuf of a pbuf chain. */ struct pbuf * pbuf_alloc(pbuf_layer layer, u16_t length, pbuf_type type) { struct pbuf *p, *q, *r; u16_t offset; s32_t rem_len; /* remaining length */ LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 3, ("pbuf_alloc(length=%"U16_F")\n", length)); /* determine header offset */ offset = 0; switch (layer) { case PBUF_TRANSPORT: /* add room for transport (often TCP) layer header */ offset += PBUF_TRANSPORT_HLEN; /* FALLTHROUGH */ case PBUF_IP: /* add room for IP layer header */ offset += PBUF_IP_HLEN; /* FALLTHROUGH */ case PBUF_LINK: /* add room for link layer header */ offset += PBUF_LINK_HLEN; break; case PBUF_RAW: break; default: LWIP_ASSERT("pbuf_alloc: bad pbuf layer", 0); return NULL; } switch (type) { case PBUF_POOL: /* allocate head of pbuf chain into p */ ALLOC_POOL_PBUF(p); LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 3, ("pbuf_alloc: allocated pbuf %p\n", (void *)p)); if (p == NULL) { return NULL; } p->type = type; p->next = NULL; /* make the payload pointer point 'offset' bytes into pbuf data memory */ p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + (SIZEOF_STRUCT_PBUF + offset))); LWIP_ASSERT("pbuf_alloc: pbuf p->payload properly aligned", ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0); /* the total length of the pbuf chain is the requested size */ p->tot_len = length; /* set the length of the first pbuf in the chain */ p->len = LWIP_MIN(length, PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset)); LWIP_ASSERT("check p->payload + p->len does not overflow pbuf", ((u8_t*)p->payload + p->len <= (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED)); LWIP_ASSERT("PBUF_POOL_BUFSIZE must be bigger than MEM_ALIGNMENT", (PBUF_POOL_BUFSIZE_ALIGNED - LWIP_MEM_ALIGN_SIZE(offset)) > 0 ); /* set reference count (needed here in case we fail) */ p->ref = 1; /* now allocate the tail of the pbuf chain */ /* remember first pbuf for linkage in next iteration */ r = p; /* remaining length to be allocated */ rem_len = length - p->len; /* any remaining pbufs to be allocated? */ while (rem_len > 0) { ALLOC_POOL_PBUF(q); if (q == NULL) { /* free chain so far allocated */ pbuf_free(p); /* bail out unsuccesfully */ return NULL; } q->type = type; q->flags = 0; q->next = NULL; /* make previous pbuf point to this pbuf */ r->next = q; /* set total length of this pbuf and next in chain */ LWIP_ASSERT("rem_len < max_u16_t", rem_len < 0xffff); q->tot_len = (u16_t)rem_len; /* this pbuf length is pool size, unless smaller sized tail */ q->len = LWIP_MIN((u16_t)rem_len, PBUF_POOL_BUFSIZE_ALIGNED); q->payload = (void *)((u8_t *)q + SIZEOF_STRUCT_PBUF); LWIP_ASSERT("pbuf_alloc: pbuf q->payload properly aligned", ((mem_ptr_t)q->payload % MEM_ALIGNMENT) == 0); LWIP_ASSERT("check p->payload + p->len does not overflow pbuf", ((u8_t*)p->payload + p->len <= (u8_t*)p + SIZEOF_STRUCT_PBUF + PBUF_POOL_BUFSIZE_ALIGNED)); q->ref = 1; /* calculate remaining length to be allocated */ rem_len -= q->len; /* remember this pbuf for linkage in next iteration */ r = q; } /* end of chain */ /*r->next = NULL;*/ break; case PBUF_RAM: /* If pbuf is to be allocated in RAM, allocate memory for it. */ p = (struct pbuf*)mem_malloc(LWIP_MEM_ALIGN_SIZE(SIZEOF_STRUCT_PBUF + offset) + LWIP_MEM_ALIGN_SIZE(length)); if (p == NULL) { return NULL; } /* Set up internal structure of the pbuf. */ p->payload = LWIP_MEM_ALIGN((void *)((u8_t *)p + SIZEOF_STRUCT_PBUF + offset)); p->len = p->tot_len = length; p->next = NULL; p->type = type; LWIP_ASSERT("pbuf_alloc: pbuf->payload properly aligned", ((mem_ptr_t)p->payload % MEM_ALIGNMENT) == 0); break; /* pbuf references existing (non-volatile static constant) ROM payload? */ case PBUF_ROM: /* pbuf references existing (externally allocated) RAM payload? */ case PBUF_REF: /* only allocate memory for the pbuf structure */ p = memp_malloc(MEMP_PBUF); if (p == NULL) { LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 2, ("pbuf_alloc: Could not allocate MEMP_PBUF for PBUF_%s.\n", (type == PBUF_ROM) ? "ROM" : "REF")); return NULL; } /* caller must set this field properly, afterwards */ p->payload = NULL; p->len = p->tot_len = length; p->next = NULL; p->type = type; break; default: LWIP_ASSERT("pbuf_alloc: erroneous type", 0); return NULL; } /* set reference count */ p->ref = 1; /* set flags */ p->flags = 0; LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 3, ("pbuf_alloc(length=%"U16_F") == %p\n", length, (void *)p)); return p; } /** * Shrink a pbuf chain to a desired length. * * @param p pbuf to shrink. * @param new_len desired new length of pbuf chain * * Depending on the desired length, the first few pbufs in a chain might * be skipped and left unchanged. The new last pbuf in the chain will be * resized, and any remaining pbufs will be freed. * * @note If the pbuf is ROM/REF, only the ->tot_len and ->len fields are adjusted. * @note May not be called on a packet queue. * * @note Despite its name, pbuf_realloc cannot grow the size of a pbuf (chain). */ void pbuf_realloc(struct pbuf *p, u16_t new_len) { struct pbuf *q; u16_t rem_len; /* remaining length */ s32_t grow; LWIP_ASSERT("pbuf_realloc: p != NULL", p != NULL); LWIP_ASSERT("pbuf_realloc: sane p->type", p->type == PBUF_POOL || p->type == PBUF_ROM || p->type == PBUF_RAM || p->type == PBUF_REF); /* desired length larger than current length? */ if (new_len >= p->tot_len) { /* enlarging not yet supported */ return; } /* the pbuf chain grows by (new_len - p->tot_len) bytes * (which may be negative in case of shrinking) */ grow = new_len - p->tot_len; /* first, step over any pbufs that should remain in the chain */ rem_len = new_len; q = p; /* should this pbuf be kept? */ while (rem_len > q->len) { /* decrease remaining length by pbuf length */ rem_len -= q->len; /* decrease total length indicator */ LWIP_ASSERT("grow < max_u16_t", grow < 0xffff); q->tot_len += (u16_t)grow; /* proceed to next pbuf in chain */ q = q->next; LWIP_ASSERT("pbuf_realloc: q != NULL", q != NULL); } /* we have now reached the new last pbuf (in q) */ /* rem_len == desired length for pbuf q */ /* shrink allocated memory for PBUF_RAM */ /* (other types merely adjust their length fields */ if ((q->type == PBUF_RAM) && (rem_len != q->len)) { /* reallocate and adjust the length of the pbuf that will be split */ q = mem_realloc(q, (u8_t *)q->payload - (u8_t *)q + rem_len); LWIP_ASSERT("mem_realloc give q == NULL", q != NULL); } /* adjust length fields for new last pbuf */ q->len = rem_len; q->tot_len = q->len; /* any remaining pbufs in chain? */ if (q->next != NULL) { /* free remaining pbufs in chain */ pbuf_free(q->next); } /* q is last packet in chain */ q->next = NULL; } /** * Adjusts the payload pointer to hide or reveal headers in the payload. * * Adjusts the ->payload pointer so that space for a header * (dis)appears in the pbuf payload. * * The ->payload, ->tot_len and ->len fields are adjusted. * * @param p pbuf to change the header size. * @param header_size_increment Number of bytes to increment header size which * increases the size of the pbuf. New space is on the front. * (Using a negative value decreases the header size.) * If hdr_size_inc is 0, this function does nothing and returns succesful. * * PBUF_ROM and PBUF_REF type buffers cannot have their sizes increased, so * the call will fail. A check is made that the increase in header size does * not move the payload pointer in front of the start of the buffer. * @return non-zero on failure, zero on success. * */ u8_t pbuf_header(struct pbuf *p, s16_t header_size_increment) { u16_t type; void *payload; u16_t increment_magnitude; LWIP_ASSERT("p != NULL", p != NULL); if ((header_size_increment == 0) || (p == NULL)) return 0; if (header_size_increment < 0){ increment_magnitude = -header_size_increment; /* Check that we aren't going to move off the end of the pbuf */ LWIP_ERROR("increment_magnitude <= p->len", (increment_magnitude <= p->len), return 1;); } else { increment_magnitude = header_size_increment; #if 0 /* Can't assert these as some callers speculatively call pbuf_header() to see if it's OK. Will return 1 below instead. */ /* Check that we've got the correct type of pbuf to work with */ LWIP_ASSERT("p->type == PBUF_RAM || p->type == PBUF_POOL", p->type == PBUF_RAM || p->type == PBUF_POOL); /* Check that we aren't going to move off the beginning of the pbuf */ LWIP_ASSERT("p->payload - increment_magnitude >= p + SIZEOF_STRUCT_PBUF", (u8_t *)p->payload - increment_magnitude >= (u8_t *)p + SIZEOF_STRUCT_PBUF); #endif } type = p->type; /* remember current payload pointer */ payload = p->payload; /* pbuf types containing payloads? */ if (type == PBUF_RAM || type == PBUF_POOL) { /* set new payload pointer */ p->payload = (u8_t *)p->payload - header_size_increment; /* boundary check fails? */ if ((u8_t *)p->payload < (u8_t *)p + SIZEOF_STRUCT_PBUF) { LWIP_DEBUGF( PBUF_DEBUG | 2, ("pbuf_header: failed as %p < %p (not enough space for new header size)\n", (void *)p->payload, (void *)(p + 1)));\ /* restore old payload pointer */ p->payload = payload; /* bail out unsuccesfully */ return 1; } /* pbuf types refering to external payloads? */ } else if (type == PBUF_REF || type == PBUF_ROM) { /* hide a header in the payload? */ if ((header_size_increment < 0) && (increment_magnitude <= p->len)) { /* increase payload pointer */ p->payload = (u8_t *)p->payload - header_size_increment; } else { /* cannot expand payload to front (yet!) * bail out unsuccesfully */ return 1; } } else { /* Unknown type */ LWIP_ASSERT("bad pbuf type", 0); return 1; } /* modify pbuf length fields */ p->len += header_size_increment; p->tot_len += header_size_increment; LWIP_DEBUGF(PBUF_DEBUG, ("pbuf_header: old %p new %p (%"S16_F")\n", (void *)payload, (void *)p->payload, header_size_increment)); return 0; } /** * Dereference a pbuf chain or queue and deallocate any no-longer-used * pbufs at the head of this chain or queue. * * Decrements the pbuf reference count. If it reaches zero, the pbuf is * deallocated. * * For a pbuf chain, this is repeated for each pbuf in the chain, * up to the first pbuf which has a non-zero reference count after * decrementing. So, when all reference counts are one, the whole * chain is free'd. * * @param p The pbuf (chain) to be dereferenced. * * @return the number of pbufs that were de-allocated * from the head of the chain. * * @note MUST NOT be called on a packet queue (Not verified to work yet). * @note the reference counter of a pbuf equals the number of pointers * that refer to the pbuf (or into the pbuf). * * @internal examples: * * Assuming existing chains a->b->c with the following reference * counts, calling pbuf_free(a) results in: * * 1->2->3 becomes ...1->3 * 3->3->3 becomes 2->3->3 * 1->1->2 becomes ......1 * 2->1->1 becomes 1->1->1 * 1->1->1 becomes ....... * */ u8_t pbuf_free(struct pbuf *p) { u16_t type; struct pbuf *q; u8_t count; if (p == NULL) { LWIP_ASSERT("p != NULL", p != NULL); /* if assertions are disabled, proceed with debug output */ LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 2, ("pbuf_free(p == NULL) was called.\n")); return 0; } LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 3, ("pbuf_free(%p)\n", (void *)p)); PERF_START; LWIP_ASSERT("pbuf_free: sane type", p->type == PBUF_RAM || p->type == PBUF_ROM || p->type == PBUF_REF || p->type == PBUF_POOL); count = 0; /* de-allocate all consecutive pbufs from the head of the chain that * obtain a zero reference count after decrementing*/ while (p != NULL) { u16_t ref; SYS_ARCH_DECL_PROTECT(old_level); /* Since decrementing ref cannot be guaranteed to be a single machine operation * we must protect it. We put the new ref into a local variable to prevent * further protection. */ SYS_ARCH_PROTECT(old_level); /* all pbufs in a chain are referenced at least once */ LWIP_ASSERT("pbuf_free: p->ref > 0", p->ref > 0); /* decrease reference count (number of pointers to pbuf) */ ref = --(p->ref); SYS_ARCH_UNPROTECT(old_level); /* this pbuf is no longer referenced to? */ if (ref == 0) { /* remember next pbuf in chain for next iteration */ q = p->next; LWIP_DEBUGF( PBUF_DEBUG | 2, ("pbuf_free: deallocating %p\n", (void *)p)); type = p->type; /* is this a pbuf from the pool? */ if (type == PBUF_POOL) { memp_free(MEMP_PBUF_POOL, p); /* is this a ROM or RAM referencing pbuf? */ } else if (type == PBUF_ROM || type == PBUF_REF) { memp_free(MEMP_PBUF, p); /* type == PBUF_RAM */ } else { mem_free(p); } count++; /* proceed to next pbuf */ p = q; /* p->ref > 0, this pbuf is still referenced to */ /* (and so the remaining pbufs in chain as well) */ } else { LWIP_DEBUGF( PBUF_DEBUG | 2, ("pbuf_free: %p has ref %"U16_F", ending here.\n", (void *)p, ref)); /* stop walking through the chain */ p = NULL; } } PERF_STOP("pbuf_free"); /* return number of de-allocated pbufs */ return count; } /** * Count number of pbufs in a chain * * @param p first pbuf of chain * @return the number of pbufs in a chain */ u8_t pbuf_clen(struct pbuf *p) { u8_t len; len = 0; while (p != NULL) { ++len; p = p->next; } return len; } /** * Increment the reference count of the pbuf. * * @param p pbuf to increase reference counter of * */ void pbuf_ref(struct pbuf *p) { SYS_ARCH_DECL_PROTECT(old_level); /* pbuf given? */ if (p != NULL) { SYS_ARCH_PROTECT(old_level); ++(p->ref); SYS_ARCH_UNPROTECT(old_level); } } /** * Concatenate two pbufs (each may be a pbuf chain) and take over * the caller's reference of the tail pbuf. * * @note The caller MAY NOT reference the tail pbuf afterwards. * Use pbuf_chain() for that purpose. * * @see pbuf_chain() */ void pbuf_cat(struct pbuf *h, struct pbuf *t) { struct pbuf *p; LWIP_ERROR("(h != NULL) && (t != NULL) (programmer violates API)", ((h != NULL) && (t != NULL)), return;); /* proceed to last pbuf of chain */ for (p = h; p->next != NULL; p = p->next) { /* add total length of second chain to all totals of first chain */ p->tot_len += t->tot_len; } /* { p is last pbuf of first h chain, p->next == NULL } */ LWIP_ASSERT("p->tot_len == p->len (of last pbuf in chain)", p->tot_len == p->len); LWIP_ASSERT("p->next == NULL", p->next == NULL); /* add total length of second chain to last pbuf total of first chain */ p->tot_len += t->tot_len; /* chain last pbuf of head (p) with first of tail (t) */ p->next = t; /* p->next now references t, but the caller will drop its reference to t, * so netto there is no change to the reference count of t. */ } /** * Chain two pbufs (or pbuf chains) together. * * The caller MUST call pbuf_free(t) once it has stopped * using it. Use pbuf_cat() instead if you no longer use t. * * @param h head pbuf (chain) * @param t tail pbuf (chain) * @note The pbufs MUST belong to the same packet. * @note MAY NOT be called on a packet queue. * * The ->tot_len fields of all pbufs of the head chain are adjusted. * The ->next field of the last pbuf of the head chain is adjusted. * The ->ref field of the first pbuf of the tail chain is adjusted. * */ void pbuf_chain(struct pbuf *h, struct pbuf *t) { pbuf_cat(h, t); /* t is now referenced by h */ pbuf_ref(t); LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_FRESH | 2, ("pbuf_chain: %p references %p\n", (void *)h, (void *)t)); } /** * Dechains the first pbuf from its succeeding pbufs in the chain. * * Makes p->tot_len field equal to p->len. * @param p pbuf to dechain * @return remainder of the pbuf chain, or NULL if it was de-allocated. * @note May not be called on a packet queue. */ struct pbuf * pbuf_dechain(struct pbuf *p) { struct pbuf *q; u8_t tail_gone = 1; /* tail */ q = p->next; /* pbuf has successor in chain? */ if (q != NULL) { /* assert tot_len invariant: (p->tot_len == p->len + (p->next? p->next->tot_len: 0) */ LWIP_ASSERT("p->tot_len == p->len + q->tot_len", q->tot_len == p->tot_len - p->len); /* enforce invariant if assertion is disabled */ q->tot_len = p->tot_len - p->len; /* decouple pbuf from remainder */ p->next = NULL; /* total length of pbuf p is its own length only */ p->tot_len = p->len; /* q is no longer referenced by p, free it */ LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_STATE, ("pbuf_dechain: unreferencing %p\n", (void *)q)); tail_gone = pbuf_free(q); if (tail_gone > 0) { LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_STATE, ("pbuf_dechain: deallocated %p (as it is no longer referenced)\n", (void *)q)); } /* return remaining tail or NULL if deallocated */ } /* assert tot_len invariant: (p->tot_len == p->len + (p->next? p->next->tot_len: 0) */ LWIP_ASSERT("p->tot_len == p->len", p->tot_len == p->len); return ((tail_gone > 0) ? NULL : q); } /** * * Create PBUF_RAM copies of pbufs. * * Used to queue packets on behalf of the lwIP stack, such as * ARP based queueing. * * @note You MUST explicitly use p = pbuf_take(p); * * @note Only one packet is copied, no packet queue! * * @param p_to pbuf destination of the copy * @param p_from pbuf source of the copy * * @return ERR_OK if pbuf was copied * ERR_ARG if one of the pbufs is NULL or p_to is not big * enough to hold p_from */ err_t pbuf_copy(struct pbuf *p_to, struct pbuf *p_from) { u16_t offset_to=0, offset_from=0, len; LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 3, ("pbuf_copy(%p, %p)\n", (void*)p_to, (void*)p_from)); /* is the target big enough to hold the source? */ LWIP_ERROR("pbuf_copy: target not big enough to hold source", ((p_to != NULL) && (p_from != NULL) && (p_to->tot_len >= p_from->tot_len)), return ERR_ARG;); /* iterate through pbuf chain */ do { LWIP_ASSERT("p_to != NULL", p_to != NULL); /* copy one part of the original chain */ if ((p_to->len - offset_to) >= (p_from->len - offset_from)) { /* complete current p_from fits into current p_to */ len = p_from->len - offset_from; } else { /* current p_from does not fit into current p_to */ len = p_to->len - offset_to; } MEMCPY((u8_t*)p_to->payload + offset_to, (u8_t*)p_from->payload + offset_from, len); offset_to += len; offset_from += len; LWIP_ASSERT("offset_to <= p_to->len", offset_to <= p_to->len); if (offset_to == p_to->len) { /* on to next p_to (if any) */ offset_to = 0; p_to = p_to->next; } LWIP_ASSERT("offset_from <= p_from->len", offset_from <= p_from->len); if (offset_from >= p_from->len) { /* on to next p_from (if any) */ offset_from = 0; p_from = p_from->next; } if((p_from != NULL) && (p_from->len == p_from->tot_len)) { /* don't copy more than one packet! */ LWIP_ERROR("pbuf_copy() does not allow packet queues!\n", (p_from->next == NULL), return ERR_VAL;); } if((p_to != NULL) && (p_to->len == p_to->tot_len)) { /* don't copy more than one packet! */ LWIP_ERROR("pbuf_copy() does not allow packet queues!\n", (p_to->next == NULL), return ERR_VAL;); } } while (p_from); LWIP_DEBUGF(PBUF_DEBUG | LWIP_DBG_TRACE | 1, ("pbuf_copy: end of chain reached.\n")); return ERR_OK; } /** * Copy (part of) the contents of a packet buffer * to an application supplied buffer. * * @param buf the pbuf from which to copy data * @param dataptr the application supplied buffer * @param len length of data to copy (dataptr must be big enough). No more * than buf->tot_len will be copied, irrespective of len * @param offset offset into the packet buffer from where to begin copying len bytes * @return the number of bytes copied, or 0 on failure */ u16_t pbuf_copy_partial(struct pbuf *buf, void *dataptr, u16_t len, u16_t offset) { struct pbuf *p; u16_t left; u16_t buf_copy_len; u16_t copied_total = 0; LWIP_ERROR("pbuf_copy_partial: invalid buf", (buf != NULL), return 0;); LWIP_ERROR("pbuf_copy_partial: invalid dataptr", (dataptr != NULL), return 0;); left = 0; if((buf == NULL) || (dataptr == NULL)) { return 0; } /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */ for(p = buf; len != 0 && p != NULL; p = p->next) { if ((offset != 0) && (offset >= p->len)) { /* don't copy from this buffer -> on to the next */ offset -= p->len; } else { /* copy from this buffer. maybe only partially. */ buf_copy_len = p->len - offset; if (buf_copy_len > len) buf_copy_len = len; /* copy the necessary parts of the buffer */ MEMCPY(&((char*)dataptr)[left], &((char*)p->payload)[offset], buf_copy_len); copied_total += buf_copy_len; left += buf_copy_len; len -= buf_copy_len; offset = 0; } } return copied_total; } /** * Copy application supplied data into a pbuf. * This function can only be used to copy the equivalent of buf->tot_len data. * * @param buf pbuf to fill with data * @param dataptr application supplied data buffer * @param len length of the application supplied data buffer * * @return ERR_OK if successful, ERR_MEM if the pbuf is not big enough */ err_t pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len) { struct pbuf *p; u16_t buf_copy_len; u16_t total_copy_len = len; u16_t copied_total = 0; LWIP_ERROR("pbuf_take: invalid buf", (buf != NULL), return 0;); LWIP_ERROR("pbuf_take: invalid dataptr", (dataptr != NULL), return 0;); if ((buf == NULL) || (dataptr == NULL) || (buf->tot_len < len)) { return ERR_ARG; } /* Note some systems use byte copy if dataptr or one of the pbuf payload pointers are unaligned. */ for(p = buf; total_copy_len != 0; p = p->next) { LWIP_ASSERT("pbuf_take: invalid pbuf", p != NULL); buf_copy_len = total_copy_len; if (buf_copy_len > p->len) { /* this pbuf cannot hold all remaining data */ buf_copy_len = p->len; } /* copy the necessary parts of the buffer */ MEMCPY(p->payload, &((char*)dataptr)[copied_total], buf_copy_len); total_copy_len -= buf_copy_len; copied_total += buf_copy_len; } LWIP_ASSERT("did not copy all data", total_copy_len == 0 && copied_total == len); return ERR_OK; } /** * Creates a single pbuf out of a queue of pbufs. * * @remark: The source pbuf 'p' is not freed by this function because that can * be illegal in some places! * * @param p the source pbuf * @param layer pbuf_layer of the new pbuf * * @return a new, single pbuf (p->next is NULL) * or the old pbuf if allocation fails */ struct pbuf* pbuf_coalesce(struct pbuf *p, pbuf_layer layer) { struct pbuf *q; err_t err; if (p->next == NULL) { return p; } q = pbuf_alloc(layer, p->tot_len, PBUF_RAM); if (q == NULL) { /* @todo: what do we do now? */ return p; } err = pbuf_copy(q, p); LWIP_ASSERT("pbuf_copy failed", err == ERR_OK); pbuf_free(p); return q; } uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/raw.c000066400000000000000000000246051224274632000220070ustar00rootroot00000000000000/** * @file * Implementation of raw protocol PCBs for low-level handling of * different types of protocols besides (or overriding) those * already available in lwIP. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_RAW /* don't build if not configured for use in lwipopts.h */ #include "lwip/def.h" #include "lwip/memp.h" #include "lwip/inet.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/raw.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include "arch/perf.h" #include /** The list of RAW PCBs */ static struct raw_pcb *raw_pcbs; /** * Determine if in incoming IP packet is covered by a RAW PCB * and if so, pass it to a user-provided receive callback function. * * Given an incoming IP datagram (as a chain of pbufs) this function * finds a corresponding RAW PCB and calls the corresponding receive * callback function. * * @param p pbuf to be demultiplexed to a RAW PCB. * @param inp network interface on which the datagram was received. * @return - 1 if the packet has been eaten by a RAW PCB receive * callback function. The caller MAY NOT not reference the * packet any longer, and MAY NOT call pbuf_free(). * @return - 0 if packet is not eaten (pbuf is still referenced by the * caller). * */ u8_t raw_input(struct pbuf *p, struct netif *inp) { struct raw_pcb *pcb, *prev; struct ip_hdr *iphdr; s16_t proto; u8_t eaten = 0; LWIP_UNUSED_ARG(inp); iphdr = p->payload; proto = IPH_PROTO(iphdr); prev = NULL; pcb = raw_pcbs; /* loop through all raw pcbs until the packet is eaten by one */ /* this allows multiple pcbs to match against the packet by design */ while ((eaten == 0) && (pcb != NULL)) { if (pcb->protocol == proto) { #if IP_SOF_BROADCAST_RECV /* broadcast filter? */ if ((pcb->so_options & SOF_BROADCAST) || !ip_addr_isbroadcast(&(iphdr->dest), inp)) #endif /* IP_SOF_BROADCAST_RECV */ { /* receive callback function available? */ if (pcb->recv != NULL) { /* the receive callback function did not eat the packet? */ if (pcb->recv(pcb->recv_arg, pcb, p, &(iphdr->src)) != 0) { /* receive function ate the packet */ p = NULL; eaten = 1; if (prev != NULL) { /* move the pcb to the front of raw_pcbs so that is found faster next time */ prev->next = pcb->next; pcb->next = raw_pcbs; raw_pcbs = pcb; } } } /* no receive callback function was set for this raw PCB */ } /* drop the packet */ } prev = pcb; pcb = pcb->next; } return eaten; } /** * Bind a RAW PCB. * * @param pcb RAW PCB to be bound with a local address ipaddr. * @param ipaddr local IP address to bind with. Use IP_ADDR_ANY to * bind to all local interfaces. * * @return lwIP error code. * - ERR_OK. Successful. No error occured. * - ERR_USE. The specified IP address is already bound to by * another RAW PCB. * * @see raw_disconnect() */ err_t raw_bind(struct raw_pcb *pcb, struct ip_addr *ipaddr) { ip_addr_set(&pcb->local_ip, ipaddr); return ERR_OK; } /** * Connect an RAW PCB. This function is required by upper layers * of lwip. Using the raw api you could use raw_sendto() instead * * This will associate the RAW PCB with the remote address. * * @param pcb RAW PCB to be connected with remote address ipaddr and port. * @param ipaddr remote IP address to connect with. * * @return lwIP error code * * @see raw_disconnect() and raw_sendto() */ err_t raw_connect(struct raw_pcb *pcb, struct ip_addr *ipaddr) { ip_addr_set(&pcb->remote_ip, ipaddr); return ERR_OK; } /** * Set the callback function for received packets that match the * raw PCB's protocol and binding. * * The callback function MUST either * - eat the packet by calling pbuf_free() and returning non-zero. The * packet will not be passed to other raw PCBs or other protocol layers. * - not free the packet, and return zero. The packet will be matched * against further PCBs and/or forwarded to another protocol layers. * * @return non-zero if the packet was free()d, zero if the packet remains * available for others. */ void raw_recv(struct raw_pcb *pcb, u8_t (* recv)(void *arg, struct raw_pcb *upcb, struct pbuf *p, struct ip_addr *addr), void *recv_arg) { /* remember recv() callback and user data */ pcb->recv = recv; pcb->recv_arg = recv_arg; } /** * Send the raw IP packet to the given address. Note that actually you cannot * modify the IP headers (this is inconsistent with the receive callback where * you actually get the IP headers), you can only specify the IP payload here. * It requires some more changes in lwIP. (there will be a raw_send() function * then.) * * @param pcb the raw pcb which to send * @param p the IP payload to send * @param ipaddr the destination address of the IP packet * */ err_t raw_sendto(struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *ipaddr) { err_t err; struct netif *netif; struct ip_addr *src_ip; struct pbuf *q; /* q will be sent down the stack */ LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | 3, ("raw_sendto\n")); /* not enough space to add an IP header to first pbuf in given p chain? */ if (pbuf_header(p, IP_HLEN)) { /* allocate header in new pbuf */ q = pbuf_alloc(PBUF_IP, 0, PBUF_RAM); /* new header pbuf could not be allocated? */ if (q == NULL) { LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | 2, ("raw_sendto: could not allocate header\n")); return ERR_MEM; } /* chain header q in front of given pbuf p */ pbuf_chain(q, p); /* { first pbuf q points to header pbuf } */ LWIP_DEBUGF(RAW_DEBUG, ("raw_sendto: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p)); } else { /* first pbuf q equals given pbuf */ q = p; if(pbuf_header(q, -IP_HLEN)) { LWIP_ASSERT("Can't restore header we just removed!", 0); return ERR_MEM; } } if ((netif = ip_route(ipaddr)) == NULL) { LWIP_DEBUGF(RAW_DEBUG | 1, ("raw_sendto: No route to 0x%"X32_F"\n", ipaddr->addr)); /* free any temporary header pbuf allocated by pbuf_header() */ if (q != p) { pbuf_free(q); } return ERR_RTE; } #if IP_SOF_BROADCAST /* broadcast filter? */ if ( ((pcb->so_options & SOF_BROADCAST) == 0) && ip_addr_isbroadcast(ipaddr, netif) ) { LWIP_DEBUGF(RAW_DEBUG | 1, ("raw_sendto: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb)); /* free any temporary header pbuf allocated by pbuf_header() */ if (q != p) { pbuf_free(q); } return ERR_VAL; } #endif /* IP_SOF_BROADCAST */ if (ip_addr_isany(&pcb->local_ip)) { /* use outgoing network interface IP address as source address */ src_ip = &(netif->ip_addr); } else { /* use RAW PCB local IP address as source address */ src_ip = &(pcb->local_ip); } #if LWIP_NETIF_HWADDRHINT netif->addr_hint = &(pcb->addr_hint); #endif /* LWIP_NETIF_HWADDRHINT*/ err = ip_output_if (q, src_ip, ipaddr, pcb->ttl, pcb->tos, pcb->protocol, netif); #if LWIP_NETIF_HWADDRHINT netif->addr_hint = NULL; #endif /* LWIP_NETIF_HWADDRHINT*/ /* did we chain a header earlier? */ if (q != p) { /* free the header */ pbuf_free(q); } return err; } /** * Send the raw IP packet to the address given by raw_connect() * * @param pcb the raw pcb which to send * @param p the IP payload to send * */ err_t raw_send(struct raw_pcb *pcb, struct pbuf *p) { return raw_sendto(pcb, p, &pcb->remote_ip); } /** * Remove an RAW PCB. * * @param pcb RAW PCB to be removed. The PCB is removed from the list of * RAW PCB's and the data structure is freed from memory. * * @see raw_new() */ void raw_remove(struct raw_pcb *pcb) { struct raw_pcb *pcb2; /* pcb to be removed is first in list? */ if (raw_pcbs == pcb) { /* make list start at 2nd pcb */ raw_pcbs = raw_pcbs->next; /* pcb not 1st in list */ } else { for(pcb2 = raw_pcbs; pcb2 != NULL; pcb2 = pcb2->next) { /* find pcb in raw_pcbs list */ if (pcb2->next != NULL && pcb2->next == pcb) { /* remove pcb from list */ pcb2->next = pcb->next; } } } memp_free(MEMP_RAW_PCB, pcb); } /** * Create a RAW PCB. * * @return The RAW PCB which was created. NULL if the PCB data structure * could not be allocated. * * @param proto the protocol number of the IPs payload (e.g. IP_PROTO_ICMP) * * @see raw_remove() */ struct raw_pcb * raw_new(u8_t proto) { struct raw_pcb *pcb; LWIP_DEBUGF(RAW_DEBUG | LWIP_DBG_TRACE | 3, ("raw_new\n")); pcb = memp_malloc(MEMP_RAW_PCB); /* could allocate RAW PCB? */ if (pcb != NULL) { /* initialize PCB to all zeroes */ memset(pcb, 0, sizeof(struct raw_pcb)); pcb->protocol = proto; pcb->ttl = RAW_TTL; pcb->next = raw_pcbs; raw_pcbs = pcb; } return pcb; } #endif /* LWIP_RAW */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/000077500000000000000000000000001224274632000220205ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/asn1_dec.c000066400000000000000000000376671224274632000236640ustar00rootroot00000000000000/** * @file * Abstract Syntax Notation One (ISO 8824, 8825) decoding * * @todo not optimised (yet), favor correctness over speed, favor speed over size */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/snmp_asn1.h" /** * Retrieves type field from incoming pbuf chain. * * @param p points to a pbuf holding an ASN1 coded type field * @param ofs points to the offset within the pbuf chain of the ASN1 coded type field * @param type return ASN1 type * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode */ err_t snmp_asn1_dec_type(struct pbuf *p, u16_t ofs, u8_t *type) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; *type = *msg_ptr; return ERR_OK; } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Decodes length field from incoming pbuf chain into host length. * * @param p points to a pbuf holding an ASN1 coded length * @param ofs points to the offset within the pbuf chain of the ASN1 coded length * @param octets_used returns number of octets used by the length code * @param length return host order length, upto 64k * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode */ err_t snmp_asn1_dec_length(struct pbuf *p, u16_t ofs, u8_t *octets_used, u16_t *length) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if (*msg_ptr < 0x80) { /* primitive definite length format */ *octets_used = 1; *length = *msg_ptr; return ERR_OK; } else if (*msg_ptr == 0x80) { /* constructed indefinite length format, termination with two zero octets */ u8_t zeros; u8_t i; *length = 0; zeros = 0; while (zeros != 2) { i = 2; while (i > 0) { i--; (*length) += 1; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } if (*msg_ptr == 0) { zeros++; if (zeros == 2) { /* stop while (i > 0) */ i = 0; } } else { zeros = 0; } } } *octets_used = 1; return ERR_OK; } else if (*msg_ptr == 0x81) { /* constructed definite length format, one octet */ ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; } else { /* next octet in same pbuf */ msg_ptr++; } *length = *msg_ptr; *octets_used = 2; return ERR_OK; } else if (*msg_ptr == 0x82) { u8_t i; /* constructed definite length format, two octets */ i = 2; while (i > 0) { i--; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } if (i == 0) { /* least significant length octet */ *length |= *msg_ptr; } else { /* most significant length octet */ *length = (*msg_ptr) << 8; } } *octets_used = 3; return ERR_OK; } else { /* constructed definite length format 3..127 octets, this is too big (>64k) */ /** @todo: do we need to accept inefficient codings with many leading zero's? */ *octets_used = 1 + ((*msg_ptr) & 0x7f); return ERR_ARG; } } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Decodes positive integer (counter, gauge, timeticks) into u32_t. * * @param p points to a pbuf holding an ASN1 coded integer * @param ofs points to the offset within the pbuf chain of the ASN1 coded integer * @param len length of the coded integer field * @param value return host order integer * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode * * @note ASN coded integers are _always_ signed. E.g. +0xFFFF is coded * as 0x00,0xFF,0xFF. Note the leading sign octet. A positive value * of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!! */ err_t snmp_asn1_dec_u32t(struct pbuf *p, u16_t ofs, u16_t len, u32_t *value) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if ((len > 0) && (len < 6)) { /* start from zero */ *value = 0; if (*msg_ptr & 0x80) { /* negative, expecting zero sign bit! */ return ERR_ARG; } else { /* positive */ if ((len > 1) && (*msg_ptr == 0)) { /* skip leading "sign byte" octet 0x00 */ len--; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } } /* OR octets with value */ while (len > 1) { len--; *value |= *msg_ptr; *value <<= 8; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } *value |= *msg_ptr; return ERR_OK; } else { return ERR_ARG; } } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Decodes integer into s32_t. * * @param p points to a pbuf holding an ASN1 coded integer * @param ofs points to the offset within the pbuf chain of the ASN1 coded integer * @param len length of the coded integer field * @param value return host order integer * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode * * @note ASN coded integers are _always_ signed! */ err_t snmp_asn1_dec_s32t(struct pbuf *p, u16_t ofs, u16_t len, s32_t *value) { u16_t plen, base; u8_t *msg_ptr; #if BYTE_ORDER == LITTLE_ENDIAN u8_t *lsb_ptr = (u8_t*)value; #endif #if BYTE_ORDER == BIG_ENDIAN u8_t *lsb_ptr = (u8_t*)value + sizeof(s32_t) - 1; #endif u8_t sign; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if ((len > 0) && (len < 5)) { if (*msg_ptr & 0x80) { /* negative, start from -1 */ *value = -1; sign = 1; } else { /* positive, start from 0 */ *value = 0; sign = 0; } /* OR/AND octets with value */ while (len > 1) { len--; if (sign) { *lsb_ptr &= *msg_ptr; *value <<= 8; *lsb_ptr |= 255; } else { *lsb_ptr |= *msg_ptr; *value <<= 8; } ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } if (sign) { *lsb_ptr &= *msg_ptr; } else { *lsb_ptr |= *msg_ptr; } return ERR_OK; } else { return ERR_ARG; } } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Decodes object identifier from incoming message into array of s32_t. * * @param p points to a pbuf holding an ASN1 coded object identifier * @param ofs points to the offset within the pbuf chain of the ASN1 coded object identifier * @param len length of the coded object identifier * @param oid return object identifier struct * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode */ err_t snmp_asn1_dec_oid(struct pbuf *p, u16_t ofs, u16_t len, struct snmp_obj_id *oid) { u16_t plen, base; u8_t *msg_ptr; s32_t *oid_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; oid->len = 0; oid_ptr = &oid->id[0]; if (len > 0) { /* first compressed octet */ if (*msg_ptr == 0x2B) { /* (most) common case 1.3 (iso.org) */ *oid_ptr = 1; oid_ptr++; *oid_ptr = 3; oid_ptr++; } else if (*msg_ptr < 40) { *oid_ptr = 0; oid_ptr++; *oid_ptr = *msg_ptr; oid_ptr++; } else if (*msg_ptr < 80) { *oid_ptr = 1; oid_ptr++; *oid_ptr = (*msg_ptr) - 40; oid_ptr++; } else { *oid_ptr = 2; oid_ptr++; *oid_ptr = (*msg_ptr) - 80; oid_ptr++; } oid->len = 2; } else { /* accepting zero length identifiers e.g. for getnext operation. uncommon but valid */ return ERR_OK; } len--; if (len > 0) { ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } while ((len > 0) && (oid->len < LWIP_SNMP_OBJ_ID_LEN)) { /* sub-identifier uses multiple octets */ if (*msg_ptr & 0x80) { s32_t sub_id = 0; while ((*msg_ptr & 0x80) && (len > 1)) { len--; sub_id = (sub_id << 7) + (*msg_ptr & ~0x80); ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } if (!(*msg_ptr & 0x80) && (len > 0)) { /* last octet sub-identifier */ len--; sub_id = (sub_id << 7) + *msg_ptr; *oid_ptr = sub_id; } } else { /* !(*msg_ptr & 0x80) sub-identifier uses single octet */ len--; *oid_ptr = *msg_ptr; } if (len > 0) { /* remaining oid bytes available ... */ ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } oid_ptr++; oid->len++; } if (len == 0) { /* len == 0, end of oid */ return ERR_OK; } else { /* len > 0, oid->len == LWIP_SNMP_OBJ_ID_LEN or malformed encoding */ return ERR_ARG; } } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Decodes (copies) raw data (ip-addresses, octet strings, opaque encoding) * from incoming message into array. * * @param p points to a pbuf holding an ASN1 coded raw data * @param ofs points to the offset within the pbuf chain of the ASN1 coded raw data * @param len length of the coded raw data (zero is valid, e.g. empty string!) * @param raw_len length of the raw return value * @param raw return raw bytes * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) decode */ err_t snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw) { u16_t plen, base; u8_t *msg_ptr; if (len > 0) { plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if (raw_len >= len) { while (len > 1) { /* copy len - 1 octets */ len--; *raw = *msg_ptr; raw++; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } /* copy last octet */ *raw = *msg_ptr; return ERR_OK; } else { /* raw_len < len, not enough dst space */ return ERR_ARG; } } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } else { /* len == 0, empty string */ return ERR_OK; } } #endif /* LWIP_SNMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/asn1_enc.c000066400000000000000000000333251224274632000236610ustar00rootroot00000000000000/** * @file * Abstract Syntax Notation One (ISO 8824, 8825) encoding * * @todo not optimised (yet), favor correctness over speed, favor speed over size */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/snmp_asn1.h" /** * Returns octet count for length. * * @param length * @param octets_needed points to the return value */ void snmp_asn1_enc_length_cnt(u16_t length, u8_t *octets_needed) { if (length < 0x80U) { *octets_needed = 1; } else if (length < 0x100U) { *octets_needed = 2; } else { *octets_needed = 3; } } /** * Returns octet count for an u32_t. * * @param value * @param octets_needed points to the return value * * @note ASN coded integers are _always_ signed. E.g. +0xFFFF is coded * as 0x00,0xFF,0xFF. Note the leading sign octet. A positive value * of 0xFFFFFFFF is preceded with 0x00 and the length is 5 octets!! */ void snmp_asn1_enc_u32t_cnt(u32_t value, u16_t *octets_needed) { if (value < 0x80UL) { *octets_needed = 1; } else if (value < 0x8000UL) { *octets_needed = 2; } else if (value < 0x800000UL) { *octets_needed = 3; } else if (value < 0x80000000UL) { *octets_needed = 4; } else { *octets_needed = 5; } } /** * Returns octet count for an s32_t. * * @param value * @param octets_needed points to the return value * * @note ASN coded integers are _always_ signed. */ void snmp_asn1_enc_s32t_cnt(s32_t value, u16_t *octets_needed) { if (value < 0) { value = ~value; } if (value < 0x80L) { *octets_needed = 1; } else if (value < 0x8000L) { *octets_needed = 2; } else if (value < 0x800000L) { *octets_needed = 3; } else { *octets_needed = 4; } } /** * Returns octet count for an object identifier. * * @param ident_len object identifier array length * @param ident points to object identifier array * @param octets_needed points to the return value */ void snmp_asn1_enc_oid_cnt(u8_t ident_len, s32_t *ident, u16_t *octets_needed) { s32_t sub_id; u8_t cnt; cnt = 0; if (ident_len > 1) { /* compressed prefix in one octet */ cnt++; ident_len -= 2; ident += 2; } while(ident_len > 0) { ident_len--; sub_id = *ident; sub_id >>= 7; cnt++; while(sub_id > 0) { sub_id >>= 7; cnt++; } ident++; } *octets_needed = cnt; } /** * Encodes ASN type field into a pbuf chained ASN1 msg. * * @param p points to output pbuf to encode value into * @param ofs points to the offset within the pbuf chain * @param type input ASN1 type * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode */ err_t snmp_asn1_enc_type(struct pbuf *p, u16_t ofs, u8_t type) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; *msg_ptr = type; return ERR_OK; } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Encodes host order length field into a pbuf chained ASN1 msg. * * @param p points to output pbuf to encode length into * @param ofs points to the offset within the pbuf chain * @param length is the host order length to be encoded * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode */ err_t snmp_asn1_enc_length(struct pbuf *p, u16_t ofs, u16_t length) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if (length < 0x80) { *msg_ptr = length; return ERR_OK; } else if (length < 0x100) { *msg_ptr = 0x81; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; } else { /* next octet in same pbuf */ msg_ptr++; } *msg_ptr = length; return ERR_OK; } else { u8_t i; /* length >= 0x100 && length <= 0xFFFF */ *msg_ptr = 0x82; i = 2; while (i > 0) { i--; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } if (i == 0) { /* least significant length octet */ *msg_ptr = length; } else { /* most significant length octet */ *msg_ptr = length >> 8; } } return ERR_OK; } } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Encodes u32_t (counter, gauge, timeticks) into a pbuf chained ASN1 msg. * * @param p points to output pbuf to encode value into * @param ofs points to the offset within the pbuf chain * @param octets_needed encoding length (from snmp_asn1_enc_u32t_cnt()) * @param value is the host order u32_t value to be encoded * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode * * @see snmp_asn1_enc_u32t_cnt() */ err_t snmp_asn1_enc_u32t(struct pbuf *p, u16_t ofs, u8_t octets_needed, u32_t value) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if (octets_needed == 5) { /* not enough bits in 'value' add leading 0x00 */ octets_needed--; *msg_ptr = 0x00; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } while (octets_needed > 1) { octets_needed--; *msg_ptr = value >> (octets_needed << 3); ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } /* (only) one least significant octet */ *msg_ptr = value; return ERR_OK; } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Encodes s32_t integer into a pbuf chained ASN1 msg. * * @param p points to output pbuf to encode value into * @param ofs points to the offset within the pbuf chain * @param octets_needed encoding length (from snmp_asn1_enc_s32t_cnt()) * @param value is the host order s32_t value to be encoded * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode * * @see snmp_asn1_enc_s32t_cnt() */ err_t snmp_asn1_enc_s32t(struct pbuf *p, u16_t ofs, u8_t octets_needed, s32_t value) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; while (octets_needed > 1) { octets_needed--; *msg_ptr = value >> (octets_needed << 3); ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } /* (only) one least significant octet */ *msg_ptr = value; return ERR_OK; } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Encodes object identifier into a pbuf chained ASN1 msg. * * @param p points to output pbuf to encode oid into * @param ofs points to the offset within the pbuf chain * @param ident_len object identifier array length * @param ident points to object identifier array * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode */ err_t snmp_asn1_enc_oid(struct pbuf *p, u16_t ofs, u8_t ident_len, s32_t *ident) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; if (ident_len > 1) { if ((ident[0] == 1) && (ident[1] == 3)) { /* compressed (most common) prefix .iso.org */ *msg_ptr = 0x2b; } else { /* calculate prefix */ *msg_ptr = (ident[0] * 40) + ident[1]; } ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } ident_len -= 2; ident += 2; } else { /* @bug: allow empty varbinds for symmetry (we must decode them for getnext), allow partial compression?? */ /* ident_len <= 1, at least we need zeroDotZero (0.0) (ident_len == 2) */ return ERR_ARG; } while (ident_len > 0) { s32_t sub_id; u8_t shift, tail; ident_len--; sub_id = *ident; tail = 0; shift = 28; while(shift > 0) { u8_t code; code = sub_id >> shift; if ((code != 0) || (tail != 0)) { tail = 1; *msg_ptr = code | 0x80; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } shift -= 7; } *msg_ptr = (u8_t)sub_id & 0x7F; if (ident_len > 0) { ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } /* proceed to next sub-identifier */ ident++; } return ERR_OK; } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } /** * Encodes raw data (octet string, opaque) into a pbuf chained ASN1 msg. * * @param p points to output pbuf to encode raw data into * @param ofs points to the offset within the pbuf chain * @param raw_len raw data length * @param raw points raw data * @return ERR_OK if successfull, ERR_ARG if we can't (or won't) encode */ err_t snmp_asn1_enc_raw(struct pbuf *p, u16_t ofs, u8_t raw_len, u8_t *raw) { u16_t plen, base; u8_t *msg_ptr; plen = 0; while (p != NULL) { base = plen; plen += p->len; if (ofs < plen) { msg_ptr = p->payload; msg_ptr += ofs - base; while (raw_len > 1) { /* copy raw_len - 1 octets */ raw_len--; *msg_ptr = *raw; raw++; ofs += 1; if (ofs >= plen) { /* next octet in next pbuf */ p = p->next; if (p == NULL) { return ERR_ARG; } msg_ptr = p->payload; plen += p->len; } else { /* next octet in same pbuf */ msg_ptr++; } } if (raw_len > 0) { /* copy last or single octet */ *msg_ptr = *raw; } return ERR_OK; } p = p->next; } /* p == NULL, ofs >= plen */ return ERR_ARG; } #endif /* LWIP_SNMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/mib2.c000066400000000000000000003114531224274632000230240ustar00rootroot00000000000000/** * @file * Management Information Base II (RFC1213) objects and functions. * * @note the object identifiers for this MIB-2 and private MIB tree * must be kept in sorted ascending order. This to ensure correct getnext operation. */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/snmp.h" #include "lwip/netif.h" #include "lwip/ip.h" #include "lwip/ip_frag.h" #include "lwip/tcp.h" #include "lwip/udp.h" #include "lwip/snmp_asn1.h" #include "lwip/snmp_structs.h" #include "netif/etharp.h" /** * IANA assigned enterprise ID for lwIP is 26381 * @see http://www.iana.org/assignments/enterprise-numbers * * @note this enterprise ID is assigned to the lwIP project, * all object identifiers living under this ID are assigned * by the lwIP maintainers (contact Christiaan Simons)! * @note don't change this define, use snmp_set_sysobjid() * * If you need to create your own private MIB you'll need * to apply for your own enterprise ID with IANA: * http://www.iana.org/numbers.html */ #define SNMP_ENTERPRISE_ID 26381 #define SNMP_SYSOBJID_LEN 7 #define SNMP_SYSOBJID {1, 3, 6, 1, 4, 1, SNMP_ENTERPRISE_ID} #ifndef SNMP_SYSSERVICES #define SNMP_SYSSERVICES ((1 << 6) | (1 << 3) | ((IP_FORWARD) << 2)) #endif #ifndef SNMP_GET_SYSUPTIME #define SNMP_GET_SYSUPTIME(sysuptime) #endif static void system_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void system_get_value(struct obj_def *od, u16_t len, void *value); static u8_t system_set_test(struct obj_def *od, u16_t len, void *value); static void system_set_value(struct obj_def *od, u16_t len, void *value); static void interfaces_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void interfaces_get_value(struct obj_def *od, u16_t len, void *value); static void ifentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void ifentry_get_value(struct obj_def *od, u16_t len, void *value); #if !SNMP_SAFE_REQUESTS static u8_t ifentry_set_test (struct obj_def *od, u16_t len, void *value); static void ifentry_set_value (struct obj_def *od, u16_t len, void *value); #endif /* SNMP_SAFE_REQUESTS */ static void atentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void atentry_get_value(struct obj_def *od, u16_t len, void *value); static void ip_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void ip_get_value(struct obj_def *od, u16_t len, void *value); static u8_t ip_set_test(struct obj_def *od, u16_t len, void *value); static void ip_addrentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void ip_addrentry_get_value(struct obj_def *od, u16_t len, void *value); static void ip_rteentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void ip_rteentry_get_value(struct obj_def *od, u16_t len, void *value); static void ip_ntomentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void ip_ntomentry_get_value(struct obj_def *od, u16_t len, void *value); static void icmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void icmp_get_value(struct obj_def *od, u16_t len, void *value); #if LWIP_TCP static void tcp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void tcp_get_value(struct obj_def *od, u16_t len, void *value); #ifdef THIS_SEEMS_UNUSED static void tcpconnentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void tcpconnentry_get_value(struct obj_def *od, u16_t len, void *value); #endif #endif static void udp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void udp_get_value(struct obj_def *od, u16_t len, void *value); static void udpentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void udpentry_get_value(struct obj_def *od, u16_t len, void *value); static void snmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); static void snmp_get_value(struct obj_def *od, u16_t len, void *value); static u8_t snmp_set_test(struct obj_def *od, u16_t len, void *value); static void snmp_set_value(struct obj_def *od, u16_t len, void *value); /* snmp .1.3.6.1.2.1.11 */ const mib_scalar_node snmp_scalar = { &snmp_get_object_def, &snmp_get_value, &snmp_set_test, &snmp_set_value, MIB_NODE_SC, 0 }; const s32_t snmp_ids[28] = { 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30 }; struct mib_node* const snmp_nodes[28] = { (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar, (struct mib_node* const)&snmp_scalar }; const struct mib_array_node snmp = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 28, snmp_ids, snmp_nodes }; /* dot3 and EtherLike MIB not planned. (transmission .1.3.6.1.2.1.10) */ /* historical (some say hysterical). (cmot .1.3.6.1.2.1.9) */ /* lwIP has no EGP, thus may not implement it. (egp .1.3.6.1.2.1.8) */ /* udp .1.3.6.1.2.1.7 */ /** index root node for udpTable */ struct mib_list_rootnode udp_root = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t udpentry_ids[2] = { 1, 2 }; struct mib_node* const udpentry_nodes[2] = { (struct mib_node* const)&udp_root, (struct mib_node* const)&udp_root, }; const struct mib_array_node udpentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 2, udpentry_ids, udpentry_nodes }; s32_t udptable_id = 1; struct mib_node* udptable_node = (struct mib_node* const)&udpentry; struct mib_ram_array_node udptable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, 0, &udptable_id, &udptable_node }; const mib_scalar_node udp_scalar = { &udp_get_object_def, &udp_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_SC, 0 }; const s32_t udp_ids[5] = { 1, 2, 3, 4, 5 }; struct mib_node* const udp_nodes[5] = { (struct mib_node* const)&udp_scalar, (struct mib_node* const)&udp_scalar, (struct mib_node* const)&udp_scalar, (struct mib_node* const)&udp_scalar, (struct mib_node* const)&udptable }; const struct mib_array_node udp = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 5, udp_ids, udp_nodes }; /* tcp .1.3.6.1.2.1.6 */ #if LWIP_TCP /* only if the TCP protocol is available may implement this group */ /** index root node for tcpConnTable */ struct mib_list_rootnode tcpconntree_root = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t tcpconnentry_ids[5] = { 1, 2, 3, 4, 5 }; struct mib_node* const tcpconnentry_nodes[5] = { (struct mib_node* const)&tcpconntree_root, (struct mib_node* const)&tcpconntree_root, (struct mib_node* const)&tcpconntree_root, (struct mib_node* const)&tcpconntree_root, (struct mib_node* const)&tcpconntree_root }; const struct mib_array_node tcpconnentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 5, tcpconnentry_ids, tcpconnentry_nodes }; s32_t tcpconntable_id = 1; struct mib_node* tcpconntable_node = (struct mib_node* const)&tcpconnentry; struct mib_ram_array_node tcpconntable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, /** @todo update maxlength when inserting / deleting from table 0 when table is empty, 1 when more than one entry */ 0, &tcpconntable_id, &tcpconntable_node }; const mib_scalar_node tcp_scalar = { &tcp_get_object_def, &tcp_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_SC, 0 }; const s32_t tcp_ids[15] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; struct mib_node* const tcp_nodes[15] = { (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcpconntable, (struct mib_node* const)&tcp_scalar, (struct mib_node* const)&tcp_scalar }; const struct mib_array_node tcp = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 15, tcp_ids, tcp_nodes }; #endif /* icmp .1.3.6.1.2.1.5 */ const mib_scalar_node icmp_scalar = { &icmp_get_object_def, &icmp_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_SC, 0 }; const s32_t icmp_ids[26] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }; struct mib_node* const icmp_nodes[26] = { (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar, (struct mib_node* const)&icmp_scalar }; const struct mib_array_node icmp = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 26, icmp_ids, icmp_nodes }; /** index root node for ipNetToMediaTable */ struct mib_list_rootnode ipntomtree_root = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t ipntomentry_ids[4] = { 1, 2, 3, 4 }; struct mib_node* const ipntomentry_nodes[4] = { (struct mib_node* const)&ipntomtree_root, (struct mib_node* const)&ipntomtree_root, (struct mib_node* const)&ipntomtree_root, (struct mib_node* const)&ipntomtree_root }; const struct mib_array_node ipntomentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 4, ipntomentry_ids, ipntomentry_nodes }; s32_t ipntomtable_id = 1; struct mib_node* ipntomtable_node = (struct mib_node* const)&ipntomentry; struct mib_ram_array_node ipntomtable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, 0, &ipntomtable_id, &ipntomtable_node }; /** index root node for ipRouteTable */ struct mib_list_rootnode iprtetree_root = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t iprteentry_ids[13] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; struct mib_node* const iprteentry_nodes[13] = { (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root, (struct mib_node* const)&iprtetree_root }; const struct mib_array_node iprteentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 13, iprteentry_ids, iprteentry_nodes }; s32_t iprtetable_id = 1; struct mib_node* iprtetable_node = (struct mib_node* const)&iprteentry; struct mib_ram_array_node iprtetable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, 0, &iprtetable_id, &iprtetable_node }; /** index root node for ipAddrTable */ struct mib_list_rootnode ipaddrtree_root = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t ipaddrentry_ids[5] = { 1, 2, 3, 4, 5 }; struct mib_node* const ipaddrentry_nodes[5] = { (struct mib_node* const)&ipaddrtree_root, (struct mib_node* const)&ipaddrtree_root, (struct mib_node* const)&ipaddrtree_root, (struct mib_node* const)&ipaddrtree_root, (struct mib_node* const)&ipaddrtree_root }; const struct mib_array_node ipaddrentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 5, ipaddrentry_ids, ipaddrentry_nodes }; s32_t ipaddrtable_id = 1; struct mib_node* ipaddrtable_node = (struct mib_node* const)&ipaddrentry; struct mib_ram_array_node ipaddrtable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, 0, &ipaddrtable_id, &ipaddrtable_node }; /* ip .1.3.6.1.2.1.4 */ const mib_scalar_node ip_scalar = { &ip_get_object_def, &ip_get_value, &ip_set_test, &noleafs_set_value, MIB_NODE_SC, 0 }; const s32_t ip_ids[23] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; struct mib_node* const ip_nodes[23] = { (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ip_scalar, (struct mib_node* const)&ipaddrtable, (struct mib_node* const)&iprtetable, (struct mib_node* const)&ipntomtable, (struct mib_node* const)&ip_scalar }; const struct mib_array_node mib2_ip = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 23, ip_ids, ip_nodes }; /** index root node for atTable */ struct mib_list_rootnode arptree_root = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t atentry_ids[3] = { 1, 2, 3 }; struct mib_node* const atentry_nodes[3] = { (struct mib_node* const)&arptree_root, (struct mib_node* const)&arptree_root, (struct mib_node* const)&arptree_root }; const struct mib_array_node atentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 3, atentry_ids, atentry_nodes }; const s32_t attable_id = 1; struct mib_node* const attable_node = (struct mib_node* const)&atentry; const struct mib_array_node attable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 1, &attable_id, &attable_node }; /* at .1.3.6.1.2.1.3 */ s32_t at_id = 1; struct mib_node* mib2_at_node = (struct mib_node* const)&attable; struct mib_ram_array_node at = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, 0, &at_id, &mib2_at_node }; /** index root node for ifTable */ struct mib_list_rootnode iflist_root = { &ifentry_get_object_def, &ifentry_get_value, #if SNMP_SAFE_REQUESTS &noleafs_set_test, &noleafs_set_value, #else /* SNMP_SAFE_REQUESTS */ &ifentry_set_test, &ifentry_set_value, #endif /* SNMP_SAFE_REQUESTS */ MIB_NODE_LR, 0, NULL, NULL, 0 }; const s32_t ifentry_ids[22] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 }; struct mib_node* const ifentry_nodes[22] = { (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root, (struct mib_node* const)&iflist_root }; const struct mib_array_node ifentry = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 22, ifentry_ids, ifentry_nodes }; s32_t iftable_id = 1; struct mib_node* iftable_node = (struct mib_node* const)&ifentry; struct mib_ram_array_node iftable = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_RA, 0, &iftable_id, &iftable_node }; /* interfaces .1.3.6.1.2.1.2 */ const mib_scalar_node interfaces_scalar = { &interfaces_get_object_def, &interfaces_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_SC, 0 }; const s32_t interfaces_ids[2] = { 1, 2 }; struct mib_node* const interfaces_nodes[2] = { (struct mib_node* const)&interfaces_scalar, (struct mib_node* const)&iftable }; const struct mib_array_node interfaces = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 2, interfaces_ids, interfaces_nodes }; /* 0 1 2 3 4 5 6 */ /* system .1.3.6.1.2.1.1 */ const mib_scalar_node sys_tem_scalar = { &system_get_object_def, &system_get_value, &system_set_test, &system_set_value, MIB_NODE_SC, 0 }; const s32_t sys_tem_ids[7] = { 1, 2, 3, 4, 5, 6, 7 }; struct mib_node* const sys_tem_nodes[7] = { (struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar, (struct mib_node* const)&sys_tem_scalar }; /* work around name issue with 'sys_tem', some compiler(s?) seem to reserve 'system' */ const struct mib_array_node sys_tem = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 7, sys_tem_ids, sys_tem_nodes }; /* mib-2 .1.3.6.1.2.1 */ #if LWIP_TCP #define MIB2_GROUPS 8 #else #define MIB2_GROUPS 7 #endif const s32_t mib2_ids[MIB2_GROUPS] = { 1, 2, 3, 4, 5, #if LWIP_TCP 6, #endif 7, 11 }; struct mib_node* const mib2_nodes[MIB2_GROUPS] = { (struct mib_node* const)&sys_tem, (struct mib_node* const)&interfaces, (struct mib_node* const)&at, (struct mib_node* const)&mib2_ip, (struct mib_node* const)&icmp, #if LWIP_TCP (struct mib_node* const)&tcp, #endif (struct mib_node* const)&udp, (struct mib_node* const)&snmp }; const struct mib_array_node mib2 = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, MIB2_GROUPS, mib2_ids, mib2_nodes }; /* mgmt .1.3.6.1.2 */ const s32_t mgmt_ids[1] = { 1 }; struct mib_node* const mgmt_nodes[1] = { (struct mib_node* const)&mib2 }; const struct mib_array_node mgmt = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 1, mgmt_ids, mgmt_nodes }; /* internet .1.3.6.1 */ #if SNMP_PRIVATE_MIB s32_t internet_ids[2] = { 2, 4 }; struct mib_node* const internet_nodes[2] = { (struct mib_node* const)&mgmt, (struct mib_node* const)&private }; const struct mib_array_node internet = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 2, internet_ids, internet_nodes }; #else const s32_t internet_ids[1] = { 2 }; struct mib_node* const internet_nodes[1] = { (struct mib_node* const)&mgmt }; const struct mib_array_node internet = { &noleafs_get_object_def, &noleafs_get_value, &noleafs_set_test, &noleafs_set_value, MIB_NODE_AR, 1, internet_ids, internet_nodes }; #endif /** mib-2.system.sysObjectID */ static struct snmp_obj_id sysobjid = {SNMP_SYSOBJID_LEN, SNMP_SYSOBJID}; /** enterprise ID for generic TRAPs, .iso.org.dod.internet.mgmt.mib-2.snmp */ static struct snmp_obj_id snmpgrp_id = {7,{1,3,6,1,2,1,11}}; /** mib-2.system.sysServices */ static const s32_t sysservices = SNMP_SYSSERVICES; /** mib-2.system.sysDescr */ static const u8_t sysdescr_len_default = 4; static const u8_t sysdescr_default[] = "lwIP"; static u8_t* sysdescr_len_ptr = (u8_t*)&sysdescr_len_default; static u8_t* sysdescr_ptr = (u8_t*)&sysdescr_default[0]; /** mib-2.system.sysContact */ static const u8_t syscontact_len_default = 0; static const u8_t syscontact_default[] = ""; static u8_t* syscontact_len_ptr = (u8_t*)&syscontact_len_default; static u8_t* syscontact_ptr = (u8_t*)&syscontact_default[0]; /** mib-2.system.sysName */ static const u8_t sysname_len_default = 8; static const u8_t sysname_default[] = "FQDN-unk"; static u8_t* sysname_len_ptr = (u8_t*)&sysname_len_default; static u8_t* sysname_ptr = (u8_t*)&sysname_default[0]; /** mib-2.system.sysLocation */ static const u8_t syslocation_len_default = 0; static const u8_t syslocation_default[] = ""; static u8_t* syslocation_len_ptr = (u8_t*)&syslocation_len_default; static u8_t* syslocation_ptr = (u8_t*)&syslocation_default[0]; /** mib-2.snmp.snmpEnableAuthenTraps */ static const u8_t snmpenableauthentraps_default = 2; /* disabled */ static u8_t* snmpenableauthentraps_ptr = (u8_t*)&snmpenableauthentraps_default; /** mib-2.interfaces.ifTable.ifEntry.ifSpecific (zeroDotZero) */ static const struct snmp_obj_id ifspecific = {2, {0, 0}}; /** mib-2.ip.ipRouteTable.ipRouteEntry.ipRouteInfo (zeroDotZero) */ static const struct snmp_obj_id iprouteinfo = {2, {0, 0}}; /* mib-2.system counter(s) */ static u32_t sysuptime = 0; /* mib-2.ip counter(s) */ static u32_t ipinreceives = 0, ipinhdrerrors = 0, ipinaddrerrors = 0, ipforwdatagrams = 0, ipinunknownprotos = 0, ipindiscards = 0, ipindelivers = 0, ipoutrequests = 0, ipoutdiscards = 0, ipoutnoroutes = 0, ipreasmreqds = 0, ipreasmoks = 0, ipreasmfails = 0, ipfragoks = 0, ipfragfails = 0, ipfragcreates = 0, iproutingdiscards = 0; /* mib-2.icmp counter(s) */ static u32_t icmpinmsgs = 0, icmpinerrors = 0, icmpindestunreachs = 0, icmpintimeexcds = 0, icmpinparmprobs = 0, icmpinsrcquenchs = 0, icmpinredirects = 0, icmpinechos = 0, icmpinechoreps = 0, icmpintimestamps = 0, icmpintimestampreps = 0, icmpinaddrmasks = 0, icmpinaddrmaskreps = 0, icmpoutmsgs = 0, icmpouterrors = 0, icmpoutdestunreachs = 0, icmpouttimeexcds = 0, icmpoutparmprobs = 0, icmpoutsrcquenchs = 0, icmpoutredirects = 0, icmpoutechos = 0, icmpoutechoreps = 0, icmpouttimestamps = 0, icmpouttimestampreps = 0, icmpoutaddrmasks = 0, icmpoutaddrmaskreps = 0; /* mib-2.tcp counter(s) */ static u32_t tcpactiveopens = 0, tcppassiveopens = 0, tcpattemptfails = 0, tcpestabresets = 0, tcpinsegs = 0, tcpoutsegs = 0, tcpretranssegs = 0, tcpinerrs = 0, tcpoutrsts = 0; /* mib-2.udp counter(s) */ static u32_t udpindatagrams = 0, udpnoports = 0, udpinerrors = 0, udpoutdatagrams = 0; /* mib-2.snmp counter(s) */ static u32_t snmpinpkts = 0, snmpoutpkts = 0, snmpinbadversions = 0, snmpinbadcommunitynames = 0, snmpinbadcommunityuses = 0, snmpinasnparseerrs = 0, snmpintoobigs = 0, snmpinnosuchnames = 0, snmpinbadvalues = 0, snmpinreadonlys = 0, snmpingenerrs = 0, snmpintotalreqvars = 0, snmpintotalsetvars = 0, snmpingetrequests = 0, snmpingetnexts = 0, snmpinsetrequests = 0, snmpingetresponses = 0, snmpintraps = 0, snmpouttoobigs = 0, snmpoutnosuchnames = 0, snmpoutbadvalues = 0, snmpoutgenerrs = 0, snmpoutgetrequests = 0, snmpoutgetnexts = 0, snmpoutsetrequests = 0, snmpoutgetresponses = 0, snmpouttraps = 0; /* prototypes of the following functions are in lwip/src/include/lwip/snmp.h */ /** * Copy octet string. * * @param dst points to destination * @param src points to source * @param n number of octets to copy. */ void ocstrncpy(u8_t *dst, u8_t *src, u8_t n) { while (n > 0) { n--; *dst++ = *src++; } } /** * Copy object identifier (s32_t) array. * * @param dst points to destination * @param src points to source * @param n number of sub identifiers to copy. */ void objectidncpy(s32_t *dst, s32_t *src, u8_t n) { while(n > 0) { n--; *dst++ = *src++; } } /** * Initializes sysDescr pointers. * * @param str if non-NULL then copy str pointer * @param len points to string length, excluding zero terminator */ void snmp_set_sysdesr(u8_t *str, u8_t *len) { if (str != NULL) { sysdescr_ptr = str; sysdescr_len_ptr = len; } } void snmp_get_sysobjid_ptr(struct snmp_obj_id **oid) { *oid = &sysobjid; } /** * Initializes sysObjectID value. * * @param oid points to stuct snmp_obj_id to copy */ void snmp_set_sysobjid(struct snmp_obj_id *oid) { sysobjid = *oid; } /** * Must be called at regular 10 msec interval from a timer interrupt * or signal handler depending on your runtime environment. */ void snmp_inc_sysuptime(void) { sysuptime++; } void snmp_add_sysuptime(u32_t value) { sysuptime+=value; } void snmp_get_sysuptime(u32_t *value) { SNMP_GET_SYSUPTIME(sysuptime); *value = sysuptime; } /** * Initializes sysContact pointers, * e.g. ptrs to non-volatile memory external to lwIP. * * @param ocstr if non-NULL then copy str pointer * @param ocstrlen points to string length, excluding zero terminator */ void snmp_set_syscontact(u8_t *ocstr, u8_t *ocstrlen) { if (ocstr != NULL) { syscontact_ptr = ocstr; syscontact_len_ptr = ocstrlen; } } /** * Initializes sysName pointers, * e.g. ptrs to non-volatile memory external to lwIP. * * @param ocstr if non-NULL then copy str pointer * @param ocstrlen points to string length, excluding zero terminator */ void snmp_set_sysname(u8_t *ocstr, u8_t *ocstrlen) { if (ocstr != NULL) { sysname_ptr = ocstr; sysname_len_ptr = ocstrlen; } } /** * Initializes sysLocation pointers, * e.g. ptrs to non-volatile memory external to lwIP. * * @param ocstr if non-NULL then copy str pointer * @param ocstrlen points to string length, excluding zero terminator */ void snmp_set_syslocation(u8_t *ocstr, u8_t *ocstrlen) { if (ocstr != NULL) { syslocation_ptr = ocstr; syslocation_len_ptr = ocstrlen; } } void snmp_add_ifinoctets(struct netif *ni, u32_t value) { ni->ifinoctets += value; } void snmp_inc_ifinucastpkts(struct netif *ni) { (ni->ifinucastpkts)++; } void snmp_inc_ifinnucastpkts(struct netif *ni) { (ni->ifinnucastpkts)++; } void snmp_inc_ifindiscards(struct netif *ni) { (ni->ifindiscards)++; } void snmp_add_ifoutoctets(struct netif *ni, u32_t value) { ni->ifoutoctets += value; } void snmp_inc_ifoutucastpkts(struct netif *ni) { (ni->ifoutucastpkts)++; } void snmp_inc_ifoutnucastpkts(struct netif *ni) { (ni->ifoutnucastpkts)++; } void snmp_inc_ifoutdiscards(struct netif *ni) { (ni->ifoutdiscards)++; } void snmp_inc_iflist(void) { struct mib_list_node *if_node = NULL; snmp_mib_node_insert(&iflist_root, iflist_root.count + 1, &if_node); /* enable getnext traversal on filled table */ iftable.maxlength = 1; } void snmp_dec_iflist(void) { snmp_mib_node_delete(&iflist_root, iflist_root.tail); /* disable getnext traversal on empty table */ if(iflist_root.count == 0) iftable.maxlength = 0; } /** * Inserts ARP table indexes (.xIfIndex.xNetAddress) * into arp table index trees (both atTable and ipNetToMediaTable). */ void snmp_insert_arpidx_tree(struct netif *ni, struct ip_addr *ip) { struct mib_list_rootnode *at_rn; struct mib_list_node *at_node; struct ip_addr hip; s32_t arpidx[5]; u8_t level, tree; LWIP_ASSERT("ni != NULL", ni != NULL); snmp_netiftoifindex(ni, &arpidx[0]); hip.addr = ntohl(ip->addr); snmp_iptooid(&hip, &arpidx[1]); for (tree = 0; tree < 2; tree++) { if (tree == 0) { at_rn = &arptree_root; } else { at_rn = &ipntomtree_root; } for (level = 0; level < 5; level++) { at_node = NULL; snmp_mib_node_insert(at_rn, arpidx[level], &at_node); if ((level != 4) && (at_node != NULL)) { if (at_node->nptr == NULL) { at_rn = snmp_mib_lrn_alloc(); at_node->nptr = (struct mib_node*)at_rn; if (at_rn != NULL) { if (level == 3) { if (tree == 0) { at_rn->get_object_def = atentry_get_object_def; at_rn->get_value = atentry_get_value; } else { at_rn->get_object_def = ip_ntomentry_get_object_def; at_rn->get_value = ip_ntomentry_get_value; } at_rn->set_test = noleafs_set_test; at_rn->set_value = noleafs_set_value; } } else { /* at_rn == NULL, malloc failure */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_insert_arpidx_tree() insert failed, mem full")); break; } } else { at_rn = (struct mib_list_rootnode*)at_node->nptr; } } } } /* enable getnext traversal on filled tables */ at.maxlength = 1; ipntomtable.maxlength = 1; } /** * Removes ARP table indexes (.xIfIndex.xNetAddress) * from arp table index trees. */ void snmp_delete_arpidx_tree(struct netif *ni, struct ip_addr *ip) { struct mib_list_rootnode *at_rn, *next, *del_rn[5]; struct mib_list_node *at_n, *del_n[5]; struct ip_addr hip; s32_t arpidx[5]; u8_t fc, tree, level, del_cnt; snmp_netiftoifindex(ni, &arpidx[0]); hip.addr = ntohl(ip->addr); snmp_iptooid(&hip, &arpidx[1]); for (tree = 0; tree < 2; tree++) { /* mark nodes for deletion */ if (tree == 0) { at_rn = &arptree_root; } else { at_rn = &ipntomtree_root; } level = 0; del_cnt = 0; while ((level < 5) && (at_rn != NULL)) { fc = snmp_mib_node_find(at_rn, arpidx[level], &at_n); if (fc == 0) { /* arpidx[level] does not exist */ del_cnt = 0; at_rn = NULL; } else if (fc == 1) { del_rn[del_cnt] = at_rn; del_n[del_cnt] = at_n; del_cnt++; at_rn = (struct mib_list_rootnode*)(at_n->nptr); } else if (fc == 2) { /* reset delete (2 or more childs) */ del_cnt = 0; at_rn = (struct mib_list_rootnode*)(at_n->nptr); } level++; } /* delete marked index nodes */ while (del_cnt > 0) { del_cnt--; at_rn = del_rn[del_cnt]; at_n = del_n[del_cnt]; next = snmp_mib_node_delete(at_rn, at_n); if (next != NULL) { LWIP_ASSERT("next_count == 0",next->count == 0); snmp_mib_lrn_free(next); } } } /* disable getnext traversal on empty tables */ if(arptree_root.count == 0) at.maxlength = 0; if(ipntomtree_root.count == 0) ipntomtable.maxlength = 0; } void snmp_inc_ipinreceives(void) { ipinreceives++; } void snmp_inc_ipinhdrerrors(void) { ipinhdrerrors++; } void snmp_inc_ipinaddrerrors(void) { ipinaddrerrors++; } void snmp_inc_ipforwdatagrams(void) { ipforwdatagrams++; } void snmp_inc_ipinunknownprotos(void) { ipinunknownprotos++; } void snmp_inc_ipindiscards(void) { ipindiscards++; } void snmp_inc_ipindelivers(void) { ipindelivers++; } void snmp_inc_ipoutrequests(void) { ipoutrequests++; } void snmp_inc_ipoutdiscards(void) { ipoutdiscards++; } void snmp_inc_ipoutnoroutes(void) { ipoutnoroutes++; } void snmp_inc_ipreasmreqds(void) { ipreasmreqds++; } void snmp_inc_ipreasmoks(void) { ipreasmoks++; } void snmp_inc_ipreasmfails(void) { ipreasmfails++; } void snmp_inc_ipfragoks(void) { ipfragoks++; } void snmp_inc_ipfragfails(void) { ipfragfails++; } void snmp_inc_ipfragcreates(void) { ipfragcreates++; } void snmp_inc_iproutingdiscards(void) { iproutingdiscards++; } /** * Inserts ipAddrTable indexes (.ipAdEntAddr) * into index tree. */ void snmp_insert_ipaddridx_tree(struct netif *ni) { struct mib_list_rootnode *ipa_rn; struct mib_list_node *ipa_node; struct ip_addr ip; s32_t ipaddridx[4]; u8_t level; LWIP_ASSERT("ni != NULL", ni != NULL); ip.addr = ntohl(ni->ip_addr.addr); snmp_iptooid(&ip, &ipaddridx[0]); level = 0; ipa_rn = &ipaddrtree_root; while (level < 4) { ipa_node = NULL; snmp_mib_node_insert(ipa_rn, ipaddridx[level], &ipa_node); if ((level != 3) && (ipa_node != NULL)) { if (ipa_node->nptr == NULL) { ipa_rn = snmp_mib_lrn_alloc(); ipa_node->nptr = (struct mib_node*)ipa_rn; if (ipa_rn != NULL) { if (level == 2) { ipa_rn->get_object_def = ip_addrentry_get_object_def; ipa_rn->get_value = ip_addrentry_get_value; ipa_rn->set_test = noleafs_set_test; ipa_rn->set_value = noleafs_set_value; } } else { /* ipa_rn == NULL, malloc failure */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_insert_ipaddridx_tree() insert failed, mem full")); break; } } else { ipa_rn = (struct mib_list_rootnode*)ipa_node->nptr; } } level++; } /* enable getnext traversal on filled table */ ipaddrtable.maxlength = 1; } /** * Removes ipAddrTable indexes (.ipAdEntAddr) * from index tree. */ void snmp_delete_ipaddridx_tree(struct netif *ni) { struct mib_list_rootnode *ipa_rn, *next, *del_rn[4]; struct mib_list_node *ipa_n, *del_n[4]; struct ip_addr ip; s32_t ipaddridx[4]; u8_t fc, level, del_cnt; LWIP_ASSERT("ni != NULL", ni != NULL); ip.addr = ntohl(ni->ip_addr.addr); snmp_iptooid(&ip, &ipaddridx[0]); /* mark nodes for deletion */ level = 0; del_cnt = 0; ipa_rn = &ipaddrtree_root; while ((level < 4) && (ipa_rn != NULL)) { fc = snmp_mib_node_find(ipa_rn, ipaddridx[level], &ipa_n); if (fc == 0) { /* ipaddridx[level] does not exist */ del_cnt = 0; ipa_rn = NULL; } else if (fc == 1) { del_rn[del_cnt] = ipa_rn; del_n[del_cnt] = ipa_n; del_cnt++; ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr); } else if (fc == 2) { /* reset delete (2 or more childs) */ del_cnt = 0; ipa_rn = (struct mib_list_rootnode*)(ipa_n->nptr); } level++; } /* delete marked index nodes */ while (del_cnt > 0) { del_cnt--; ipa_rn = del_rn[del_cnt]; ipa_n = del_n[del_cnt]; next = snmp_mib_node_delete(ipa_rn, ipa_n); if (next != NULL) { LWIP_ASSERT("next_count == 0",next->count == 0); snmp_mib_lrn_free(next); } } /* disable getnext traversal on empty table */ if (ipaddrtree_root.count == 0) ipaddrtable.maxlength = 0; } /** * Inserts ipRouteTable indexes (.ipRouteDest) * into index tree. * * @param dflt non-zero for the default rte, zero for network rte * @param ni points to network interface for this rte * * @todo record sysuptime for _this_ route when it is installed * (needed for ipRouteAge) in the netif. */ void snmp_insert_iprteidx_tree(u8_t dflt, struct netif *ni) { u8_t insert = 0; struct ip_addr dst; if (dflt != 0) { /* the default route 0.0.0.0 */ dst.addr = 0; insert = 1; } else { /* route to the network address */ dst.addr = ntohl(ni->ip_addr.addr & ni->netmask.addr); /* exclude 0.0.0.0 network (reserved for default rte) */ if (dst.addr != 0) insert = 1; } if (insert) { struct mib_list_rootnode *iprte_rn; struct mib_list_node *iprte_node; s32_t iprteidx[4]; u8_t level; snmp_iptooid(&dst, &iprteidx[0]); level = 0; iprte_rn = &iprtetree_root; while (level < 4) { iprte_node = NULL; snmp_mib_node_insert(iprte_rn, iprteidx[level], &iprte_node); if ((level != 3) && (iprte_node != NULL)) { if (iprte_node->nptr == NULL) { iprte_rn = snmp_mib_lrn_alloc(); iprte_node->nptr = (struct mib_node*)iprte_rn; if (iprte_rn != NULL) { if (level == 2) { iprte_rn->get_object_def = ip_rteentry_get_object_def; iprte_rn->get_value = ip_rteentry_get_value; iprte_rn->set_test = noleafs_set_test; iprte_rn->set_value = noleafs_set_value; } } else { /* iprte_rn == NULL, malloc failure */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_insert_iprteidx_tree() insert failed, mem full")); break; } } else { iprte_rn = (struct mib_list_rootnode*)iprte_node->nptr; } } level++; } } /* enable getnext traversal on filled table */ iprtetable.maxlength = 1; } /** * Removes ipRouteTable indexes (.ipRouteDest) * from index tree. * * @param dflt non-zero for the default rte, zero for network rte * @param ni points to network interface for this rte or NULL * for default route to be removed. */ void snmp_delete_iprteidx_tree(u8_t dflt, struct netif *ni) { u8_t delete = 0; struct ip_addr dst; if (dflt != 0) { /* the default route 0.0.0.0 */ dst.addr = 0; delete = 1; } else { /* route to the network address */ dst.addr = ntohl(ni->ip_addr.addr & ni->netmask.addr); /* exclude 0.0.0.0 network (reserved for default rte) */ if (dst.addr != 0) delete = 1; } if (delete) { struct mib_list_rootnode *iprte_rn, *next, *del_rn[4]; struct mib_list_node *iprte_n, *del_n[4]; s32_t iprteidx[4]; u8_t fc, level, del_cnt; snmp_iptooid(&dst, &iprteidx[0]); /* mark nodes for deletion */ level = 0; del_cnt = 0; iprte_rn = &iprtetree_root; while ((level < 4) && (iprte_rn != NULL)) { fc = snmp_mib_node_find(iprte_rn, iprteidx[level], &iprte_n); if (fc == 0) { /* iprteidx[level] does not exist */ del_cnt = 0; iprte_rn = NULL; } else if (fc == 1) { del_rn[del_cnt] = iprte_rn; del_n[del_cnt] = iprte_n; del_cnt++; iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr); } else if (fc == 2) { /* reset delete (2 or more childs) */ del_cnt = 0; iprte_rn = (struct mib_list_rootnode*)(iprte_n->nptr); } level++; } /* delete marked index nodes */ while (del_cnt > 0) { del_cnt--; iprte_rn = del_rn[del_cnt]; iprte_n = del_n[del_cnt]; next = snmp_mib_node_delete(iprte_rn, iprte_n); if (next != NULL) { LWIP_ASSERT("next_count == 0",next->count == 0); snmp_mib_lrn_free(next); } } } /* disable getnext traversal on empty table */ if (iprtetree_root.count == 0) iprtetable.maxlength = 0; } void snmp_inc_icmpinmsgs(void) { icmpinmsgs++; } void snmp_inc_icmpinerrors(void) { icmpinerrors++; } void snmp_inc_icmpindestunreachs(void) { icmpindestunreachs++; } void snmp_inc_icmpintimeexcds(void) { icmpintimeexcds++; } void snmp_inc_icmpinparmprobs(void) { icmpinparmprobs++; } void snmp_inc_icmpinsrcquenchs(void) { icmpinsrcquenchs++; } void snmp_inc_icmpinredirects(void) { icmpinredirects++; } void snmp_inc_icmpinechos(void) { icmpinechos++; } void snmp_inc_icmpinechoreps(void) { icmpinechoreps++; } void snmp_inc_icmpintimestamps(void) { icmpintimestamps++; } void snmp_inc_icmpintimestampreps(void) { icmpintimestampreps++; } void snmp_inc_icmpinaddrmasks(void) { icmpinaddrmasks++; } void snmp_inc_icmpinaddrmaskreps(void) { icmpinaddrmaskreps++; } void snmp_inc_icmpoutmsgs(void) { icmpoutmsgs++; } void snmp_inc_icmpouterrors(void) { icmpouterrors++; } void snmp_inc_icmpoutdestunreachs(void) { icmpoutdestunreachs++; } void snmp_inc_icmpouttimeexcds(void) { icmpouttimeexcds++; } void snmp_inc_icmpoutparmprobs(void) { icmpoutparmprobs++; } void snmp_inc_icmpoutsrcquenchs(void) { icmpoutsrcquenchs++; } void snmp_inc_icmpoutredirects(void) { icmpoutredirects++; } void snmp_inc_icmpoutechos(void) { icmpoutechos++; } void snmp_inc_icmpoutechoreps(void) { icmpoutechoreps++; } void snmp_inc_icmpouttimestamps(void) { icmpouttimestamps++; } void snmp_inc_icmpouttimestampreps(void) { icmpouttimestampreps++; } void snmp_inc_icmpoutaddrmasks(void) { icmpoutaddrmasks++; } void snmp_inc_icmpoutaddrmaskreps(void) { icmpoutaddrmaskreps++; } void snmp_inc_tcpactiveopens(void) { tcpactiveopens++; } void snmp_inc_tcppassiveopens(void) { tcppassiveopens++; } void snmp_inc_tcpattemptfails(void) { tcpattemptfails++; } void snmp_inc_tcpestabresets(void) { tcpestabresets++; } void snmp_inc_tcpinsegs(void) { tcpinsegs++; } void snmp_inc_tcpoutsegs(void) { tcpoutsegs++; } void snmp_inc_tcpretranssegs(void) { tcpretranssegs++; } void snmp_inc_tcpinerrs(void) { tcpinerrs++; } void snmp_inc_tcpoutrsts(void) { tcpoutrsts++; } void snmp_inc_udpindatagrams(void) { udpindatagrams++; } void snmp_inc_udpnoports(void) { udpnoports++; } void snmp_inc_udpinerrors(void) { udpinerrors++; } void snmp_inc_udpoutdatagrams(void) { udpoutdatagrams++; } /** * Inserts udpTable indexes (.udpLocalAddress.udpLocalPort) * into index tree. */ void snmp_insert_udpidx_tree(struct udp_pcb *pcb) { struct mib_list_rootnode *udp_rn; struct mib_list_node *udp_node; struct ip_addr ip; s32_t udpidx[5]; u8_t level; LWIP_ASSERT("pcb != NULL", pcb != NULL); ip.addr = ntohl(pcb->local_ip.addr); snmp_iptooid(&ip, &udpidx[0]); udpidx[4] = pcb->local_port; udp_rn = &udp_root; for (level = 0; level < 5; level++) { udp_node = NULL; snmp_mib_node_insert(udp_rn, udpidx[level], &udp_node); if ((level != 4) && (udp_node != NULL)) { if (udp_node->nptr == NULL) { udp_rn = snmp_mib_lrn_alloc(); udp_node->nptr = (struct mib_node*)udp_rn; if (udp_rn != NULL) { if (level == 3) { udp_rn->get_object_def = udpentry_get_object_def; udp_rn->get_value = udpentry_get_value; udp_rn->set_test = noleafs_set_test; udp_rn->set_value = noleafs_set_value; } } else { /* udp_rn == NULL, malloc failure */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_insert_udpidx_tree() insert failed, mem full")); break; } } else { udp_rn = (struct mib_list_rootnode*)udp_node->nptr; } } } udptable.maxlength = 1; } /** * Removes udpTable indexes (.udpLocalAddress.udpLocalPort) * from index tree. */ void snmp_delete_udpidx_tree(struct udp_pcb *pcb) { struct mib_list_rootnode *udp_rn, *next, *del_rn[5]; struct mib_list_node *udp_n, *del_n[5]; struct ip_addr ip; s32_t udpidx[5]; u8_t bindings, fc, level, del_cnt; LWIP_ASSERT("pcb != NULL", pcb != NULL); ip.addr = ntohl(pcb->local_ip.addr); snmp_iptooid(&ip, &udpidx[0]); udpidx[4] = pcb->local_port; /* count PCBs for a given binding (e.g. when reusing ports or for temp output PCBs) */ bindings = 0; pcb = udp_pcbs; while ((pcb != NULL)) { if ((pcb->local_ip.addr == ip.addr) && (pcb->local_port == udpidx[4])) { bindings++; } pcb = pcb->next; } if (bindings == 1) { /* selectively remove */ /* mark nodes for deletion */ level = 0; del_cnt = 0; udp_rn = &udp_root; while ((level < 5) && (udp_rn != NULL)) { fc = snmp_mib_node_find(udp_rn, udpidx[level], &udp_n); if (fc == 0) { /* udpidx[level] does not exist */ del_cnt = 0; udp_rn = NULL; } else if (fc == 1) { del_rn[del_cnt] = udp_rn; del_n[del_cnt] = udp_n; del_cnt++; udp_rn = (struct mib_list_rootnode*)(udp_n->nptr); } else if (fc == 2) { /* reset delete (2 or more childs) */ del_cnt = 0; udp_rn = (struct mib_list_rootnode*)(udp_n->nptr); } level++; } /* delete marked index nodes */ while (del_cnt > 0) { del_cnt--; udp_rn = del_rn[del_cnt]; udp_n = del_n[del_cnt]; next = snmp_mib_node_delete(udp_rn, udp_n); if (next != NULL) { LWIP_ASSERT("next_count == 0",next->count == 0); snmp_mib_lrn_free(next); } } } /* disable getnext traversal on empty table */ if (udp_root.count == 0) udptable.maxlength = 0; } void snmp_inc_snmpinpkts(void) { snmpinpkts++; } void snmp_inc_snmpoutpkts(void) { snmpoutpkts++; } void snmp_inc_snmpinbadversions(void) { snmpinbadversions++; } void snmp_inc_snmpinbadcommunitynames(void) { snmpinbadcommunitynames++; } void snmp_inc_snmpinbadcommunityuses(void) { snmpinbadcommunityuses++; } void snmp_inc_snmpinasnparseerrs(void) { snmpinasnparseerrs++; } void snmp_inc_snmpintoobigs(void) { snmpintoobigs++; } void snmp_inc_snmpinnosuchnames(void) { snmpinnosuchnames++; } void snmp_inc_snmpinbadvalues(void) { snmpinbadvalues++; } void snmp_inc_snmpinreadonlys(void) { snmpinreadonlys++; } void snmp_inc_snmpingenerrs(void) { snmpingenerrs++; } void snmp_add_snmpintotalreqvars(u8_t value) { snmpintotalreqvars += value; } void snmp_add_snmpintotalsetvars(u8_t value) { snmpintotalsetvars += value; } void snmp_inc_snmpingetrequests(void) { snmpingetrequests++; } void snmp_inc_snmpingetnexts(void) { snmpingetnexts++; } void snmp_inc_snmpinsetrequests(void) { snmpinsetrequests++; } void snmp_inc_snmpingetresponses(void) { snmpingetresponses++; } void snmp_inc_snmpintraps(void) { snmpintraps++; } void snmp_inc_snmpouttoobigs(void) { snmpouttoobigs++; } void snmp_inc_snmpoutnosuchnames(void) { snmpoutnosuchnames++; } void snmp_inc_snmpoutbadvalues(void) { snmpoutbadvalues++; } void snmp_inc_snmpoutgenerrs(void) { snmpoutgenerrs++; } void snmp_inc_snmpoutgetrequests(void) { snmpoutgetrequests++; } void snmp_inc_snmpoutgetnexts(void) { snmpoutgetnexts++; } void snmp_inc_snmpoutsetrequests(void) { snmpoutsetrequests++; } void snmp_inc_snmpoutgetresponses(void) { snmpoutgetresponses++; } void snmp_inc_snmpouttraps(void) { snmpouttraps++; } void snmp_get_snmpgrpid_ptr(struct snmp_obj_id **oid) { *oid = &snmpgrp_id; } void snmp_set_snmpenableauthentraps(u8_t *value) { if (value != NULL) { snmpenableauthentraps_ptr = value; } } void snmp_get_snmpenableauthentraps(u8_t *value) { *value = *snmpenableauthentraps_ptr; } void noleafs_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { if (ident_len){} if (ident){} od->instance = MIB_OBJECT_NONE; } void noleafs_get_value(struct obj_def *od, u16_t len, void *value) { if (od){} if (len){} if (value){} } u8_t noleafs_set_test(struct obj_def *od, u16_t len, void *value) { if (od){} if (len){} if (value){} /* can't set */ return 0; } void noleafs_set_value(struct obj_def *od, u16_t len, void *value) { if (od){} if (len){} if (value){} } /** * Returns systems object definitions. * * @param ident_len the address length (2) * @param ident points to objectname.0 (object id trailer) * @param od points to object definition. */ static void system_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { u8_t id; /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if (ident_len == 2) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def system.%"U16_F".0\n",(u16_t)id)); switch (id) { case 1: /* sysDescr */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = *sysdescr_len_ptr; break; case 2: /* sysObjectID */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID); od->v_len = sysobjid.len * sizeof(s32_t); break; case 3: /* sysUpTime */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS); od->v_len = sizeof(u32_t); break; case 4: /* sysContact */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = *syscontact_len_ptr; break; case 5: /* sysName */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = *sysname_len_ptr; break; case 6: /* sysLocation */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = *syslocation_len_ptr; break; case 7: /* sysServices */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("system_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; }; } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("system_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } /** * Returns system object value. * * @param ident_len the address length (2) * @param ident points to objectname.0 (object id trailer) * @param len return value space (in bytes) * @param value points to (varbind) space to copy value into. */ static void system_get_value(struct obj_def *od, u16_t len, void *value) { u8_t id; id = od->id_inst_ptr[0]; switch (id) { case 1: /* sysDescr */ ocstrncpy(value,sysdescr_ptr, len); break; case 2: /* sysObjectID */ objectidncpy((s32_t*)value, (s32_t*)sysobjid.id, (u8_t)(len / sizeof(s32_t))); break; case 3: /* sysUpTime */ { snmp_get_sysuptime(value); } break; case 4: /* sysContact */ ocstrncpy(value,syscontact_ptr,len); break; case 5: /* sysName */ ocstrncpy(value,sysname_ptr,len); break; case 6: /* sysLocation */ ocstrncpy(value,syslocation_ptr,len); break; case 7: /* sysServices */ { s32_t *sint_ptr = value; *sint_ptr = sysservices; } break; }; } static u8_t system_set_test(struct obj_def *od, u16_t len, void *value) { u8_t id, set_ok; if (value) {} set_ok = 0; id = od->id_inst_ptr[0]; switch (id) { case 4: /* sysContact */ if ((syscontact_ptr != syscontact_default) && (len <= 255)) { set_ok = 1; } break; case 5: /* sysName */ if ((sysname_ptr != sysname_default) && (len <= 255)) { set_ok = 1; } break; case 6: /* sysLocation */ if ((syslocation_ptr != syslocation_default) && (len <= 255)) { set_ok = 1; } break; }; return set_ok; } static void system_set_value(struct obj_def *od, u16_t len, void *value) { u8_t id; id = od->id_inst_ptr[0]; switch (id) { case 4: /* sysContact */ ocstrncpy(syscontact_ptr,value,len); *syscontact_len_ptr = len; break; case 5: /* sysName */ ocstrncpy(sysname_ptr,value,len); *sysname_len_ptr = len; break; case 6: /* sysLocation */ ocstrncpy(syslocation_ptr,value,len); *syslocation_len_ptr = len; break; }; } /** * Returns interfaces.ifnumber object definition. * * @param ident_len the address length (2) * @param ident points to objectname.index * @param od points to object definition. */ static void interfaces_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if (ident_len == 2) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("interfaces_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } /** * Returns interfaces.ifnumber object value. * * @param ident_len the address length (2) * @param ident points to objectname.0 (object id trailer) * @param len return value space (in bytes) * @param value points to (varbind) space to copy value into. */ static void interfaces_get_value(struct obj_def *od, u16_t len, void *value) { if (len){} if (od->id_inst_ptr[0] == 1) { s32_t *sint_ptr = value; *sint_ptr = iflist_root.count; } } /** * Returns ifentry object definitions. * * @param ident_len the address length (2) * @param ident points to objectname.index * @param od points to object definition. */ static void ifentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { u8_t id; /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if (ident_len == 2) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def ifentry.%"U16_F"\n",(u16_t)id)); switch (id) { case 1: /* ifIndex */ case 3: /* ifType */ case 4: /* ifMtu */ case 8: /* ifOperStatus */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 2: /* ifDescr */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); /** @todo this should be some sort of sizeof(struct netif.name) */ od->v_len = 2; break; case 5: /* ifSpeed */ case 21: /* ifOutQLen */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE); od->v_len = sizeof(u32_t); break; case 6: /* ifPhysAddress */ { struct netif *netif; snmp_ifindextonetif(ident[1], &netif); od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = netif->hwaddr_len; } break; case 7: /* ifAdminStatus */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 9: /* ifLastChange */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS); od->v_len = sizeof(u32_t); break; case 10: /* ifInOctets */ case 11: /* ifInUcastPkts */ case 12: /* ifInNUcastPkts */ case 13: /* ifInDiscarts */ case 14: /* ifInErrors */ case 15: /* ifInUnkownProtos */ case 16: /* ifOutOctets */ case 17: /* ifOutUcastPkts */ case 18: /* ifOutNUcastPkts */ case 19: /* ifOutDiscarts */ case 20: /* ifOutErrors */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER); od->v_len = sizeof(u32_t); break; case 22: /* ifSpecific */ /** @note returning zeroDotZero (0.0) no media specific MIB support */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID); od->v_len = ifspecific.len * sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("ifentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; }; } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("ifentry_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } /** * Returns ifentry object value. * * @param ident_len the address length (2) * @param ident points to objectname.0 (object id trailer) * @param len return value space (in bytes) * @param value points to (varbind) space to copy value into. */ static void ifentry_get_value(struct obj_def *od, u16_t len, void *value) { struct netif *netif; u8_t id; snmp_ifindextonetif(od->id_inst_ptr[1], &netif); id = od->id_inst_ptr[0]; switch (id) { case 1: /* ifIndex */ { s32_t *sint_ptr = value; *sint_ptr = od->id_inst_ptr[1]; } break; case 2: /* ifDescr */ ocstrncpy(value,(u8_t*)netif->name,len); break; case 3: /* ifType */ { s32_t *sint_ptr = value; *sint_ptr = netif->link_type; } break; case 4: /* ifMtu */ { s32_t *sint_ptr = value; *sint_ptr = netif->mtu; } break; case 5: /* ifSpeed */ { u32_t *uint_ptr = value; *uint_ptr = netif->link_speed; } break; case 6: /* ifPhysAddress */ ocstrncpy(value,netif->hwaddr,len); break; case 7: /* ifAdminStatus */ #if LWIP_NETIF_LINK_CALLBACK { s32_t *sint_ptr = value; if (netif_is_up(netif)) { if (netif_is_link_up(netif)) { *sint_ptr = 1; /* up */ } else { *sint_ptr = 7; /* lowerLayerDown */ } } else { *sint_ptr = 2; /* down */ } } break; #endif case 8: /* ifOperStatus */ { s32_t *sint_ptr = value; if (netif_is_up(netif)) { *sint_ptr = 1; } else { *sint_ptr = 2; } } break; case 9: /* ifLastChange */ { u32_t *uint_ptr = value; *uint_ptr = netif->ts; } break; case 10: /* ifInOctets */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifinoctets; } break; case 11: /* ifInUcastPkts */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifinucastpkts; } break; case 12: /* ifInNUcastPkts */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifinnucastpkts; } break; case 13: /* ifInDiscarts */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifindiscards; } break; case 14: /* ifInErrors */ case 15: /* ifInUnkownProtos */ /** @todo add these counters! */ { u32_t *uint_ptr = value; *uint_ptr = 0; } break; case 16: /* ifOutOctets */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifoutoctets; } break; case 17: /* ifOutUcastPkts */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifoutucastpkts; } break; case 18: /* ifOutNUcastPkts */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifoutnucastpkts; } break; case 19: /* ifOutDiscarts */ { u32_t *uint_ptr = value; *uint_ptr = netif->ifoutdiscards; } break; case 20: /* ifOutErrors */ /** @todo add this counter! */ { u32_t *uint_ptr = value; *uint_ptr = 0; } break; case 21: /* ifOutQLen */ /** @todo figure out if this must be 0 (no queue) or 1? */ { u32_t *uint_ptr = value; *uint_ptr = 0; } break; case 22: /* ifSpecific */ objectidncpy((s32_t*)value, (s32_t*)ifspecific.id, (u8_t)(len / sizeof(s32_t))); break; }; } #if !SNMP_SAFE_REQUESTS static u8_t ifentry_set_test (struct obj_def *od, u16_t len, void *value) { struct netif *netif; u8_t id, set_ok; set_ok = 0; snmp_ifindextonetif(od->id_inst_ptr[1], &netif); id = od->id_inst_ptr[0]; switch (id) { case 7: /* ifAdminStatus */ { s32_t *sint_ptr = value; if (*sint_ptr == 1 || *sint_ptr == 2) set_ok = 1; } break; } return set_ok; } static void ifentry_set_value (struct obj_def *od, u16_t len, void *value) { struct netif *netif; u8_t id; snmp_ifindextonetif(od->id_inst_ptr[1], &netif); id = od->id_inst_ptr[0]; switch (id) { case 7: /* ifAdminStatus */ { s32_t *sint_ptr = value; if (*sint_ptr == 1) { netif_set_up(netif); } else if (*sint_ptr == 2) { netif_set_down(netif); } } break; } } #endif /* SNMP_SAFE_REQUESTS */ /** * Returns atentry object definitions. * * @param ident_len the address length (6) * @param ident points to objectname.atifindex.atnetaddress * @param od points to object definition. */ static void atentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (5) */ ident_len += 5; ident -= 5; if (ident_len == 6) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; switch (ident[0]) { case 1: /* atIfIndex */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 2: /* atPhysAddress */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = 6; /** @todo try to use netif::hwaddr_len */ break; case 3: /* atNetAddress */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR); od->v_len = 4; break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("atentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; } } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("atentry_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void atentry_get_value(struct obj_def *od, u16_t len, void *value) { #if LWIP_ARP u8_t id; struct eth_addr* ethaddr_ret; struct ip_addr* ipaddr_ret; #endif /* LWIP_ARP */ struct ip_addr ip; struct netif *netif; if (len) {} snmp_ifindextonetif(od->id_inst_ptr[1], &netif); snmp_oidtoip(&od->id_inst_ptr[2], &ip); ip.addr = htonl(ip.addr); #if LWIP_ARP /** @todo implement a netif_find_addr */ if (etharp_find_addr(netif, &ip, ðaddr_ret, &ipaddr_ret) > -1) { id = od->id_inst_ptr[0]; switch (id) { case 1: /* atIfIndex */ { s32_t *sint_ptr = value; *sint_ptr = od->id_inst_ptr[1]; } break; case 2: /* atPhysAddress */ { struct eth_addr *dst = value; *dst = *ethaddr_ret; } break; case 3: /* atNetAddress */ { struct ip_addr *dst = value; *dst = *ipaddr_ret; } break; } } #endif /* LWIP_ARP */ } static void ip_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { u8_t id; /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if (ident_len == 2) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def ip.%"U16_F".0\n",(u16_t)id)); switch (id) { case 1: /* ipForwarding */ case 2: /* ipDefaultTTL */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 3: /* ipInReceives */ case 4: /* ipInHdrErrors */ case 5: /* ipInAddrErrors */ case 6: /* ipForwDatagrams */ case 7: /* ipInUnknownProtos */ case 8: /* ipInDiscards */ case 9: /* ipInDelivers */ case 10: /* ipOutRequests */ case 11: /* ipOutDiscards */ case 12: /* ipOutNoRoutes */ case 14: /* ipReasmReqds */ case 15: /* ipReasmOKs */ case 16: /* ipReasmFails */ case 17: /* ipFragOKs */ case 18: /* ipFragFails */ case 19: /* ipFragCreates */ case 23: /* ipRoutingDiscards */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER); od->v_len = sizeof(u32_t); break; case 13: /* ipReasmTimeout */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; }; } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void ip_get_value(struct obj_def *od, u16_t len, void *value) { u8_t id; if (len) {} id = od->id_inst_ptr[0]; switch (id) { case 1: /* ipForwarding */ { s32_t *sint_ptr = value; #if IP_FORWARD /* forwarding */ *sint_ptr = 1; #else /* not-forwarding */ *sint_ptr = 2; #endif } break; case 2: /* ipDefaultTTL */ { s32_t *sint_ptr = value; *sint_ptr = IP_DEFAULT_TTL; } break; case 3: /* ipInReceives */ { u32_t *uint_ptr = value; *uint_ptr = ipinreceives; } break; case 4: /* ipInHdrErrors */ { u32_t *uint_ptr = value; *uint_ptr = ipinhdrerrors; } break; case 5: /* ipInAddrErrors */ { u32_t *uint_ptr = value; *uint_ptr = ipinaddrerrors; } break; case 6: /* ipForwDatagrams */ { u32_t *uint_ptr = value; *uint_ptr = ipforwdatagrams; } break; case 7: /* ipInUnknownProtos */ { u32_t *uint_ptr = value; *uint_ptr = ipinunknownprotos; } break; case 8: /* ipInDiscards */ { u32_t *uint_ptr = value; *uint_ptr = ipindiscards; } break; case 9: /* ipInDelivers */ { u32_t *uint_ptr = value; *uint_ptr = ipindelivers; } break; case 10: /* ipOutRequests */ { u32_t *uint_ptr = value; *uint_ptr = ipoutrequests; } break; case 11: /* ipOutDiscards */ { u32_t *uint_ptr = value; *uint_ptr = ipoutdiscards; } break; case 12: /* ipOutNoRoutes */ { u32_t *uint_ptr = value; *uint_ptr = ipoutnoroutes; } break; case 13: /* ipReasmTimeout */ { s32_t *sint_ptr = value; #if IP_REASSEMBLY *sint_ptr = IP_REASS_MAXAGE; #else *sint_ptr = 0; #endif } break; case 14: /* ipReasmReqds */ { u32_t *uint_ptr = value; *uint_ptr = ipreasmreqds; } break; case 15: /* ipReasmOKs */ { u32_t *uint_ptr = value; *uint_ptr = ipreasmoks; } break; case 16: /* ipReasmFails */ { u32_t *uint_ptr = value; *uint_ptr = ipreasmfails; } break; case 17: /* ipFragOKs */ { u32_t *uint_ptr = value; *uint_ptr = ipfragoks; } break; case 18: /* ipFragFails */ { u32_t *uint_ptr = value; *uint_ptr = ipfragfails; } break; case 19: /* ipFragCreates */ { u32_t *uint_ptr = value; *uint_ptr = ipfragcreates; } break; case 23: /* ipRoutingDiscards */ /** @todo can lwIP discard routes at all?? hardwire this to 0?? */ { u32_t *uint_ptr = value; *uint_ptr = iproutingdiscards; } break; }; } /** * Test ip object value before setting. * * @param od is the object definition * @param len return value space (in bytes) * @param value points to (varbind) space to copy value from. * * @note we allow set if the value matches the hardwired value, * otherwise return badvalue. */ static u8_t ip_set_test(struct obj_def *od, u16_t len, void *value) { u8_t id, set_ok; s32_t *sint_ptr = value; if (len) {} set_ok = 0; id = od->id_inst_ptr[0]; switch (id) { case 1: /* ipForwarding */ #if IP_FORWARD /* forwarding */ if (*sint_ptr == 1) #else /* not-forwarding */ if (*sint_ptr == 2) #endif { set_ok = 1; } break; case 2: /* ipDefaultTTL */ if (*sint_ptr == IP_DEFAULT_TTL) { set_ok = 1; } break; }; return set_ok; } static void ip_addrentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (4) */ ident_len += 4; ident -= 4; if (ident_len == 5) { u8_t id; od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; switch (id) { case 1: /* ipAdEntAddr */ case 3: /* ipAdEntNetMask */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR); od->v_len = 4; break; case 2: /* ipAdEntIfIndex */ case 4: /* ipAdEntBcastAddr */ case 5: /* ipAdEntReasmMaxSize */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_addrentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; } } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_addrentry_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void ip_addrentry_get_value(struct obj_def *od, u16_t len, void *value) { u8_t id; u16_t ifidx; struct ip_addr ip; struct netif *netif = netif_list; if (len) {} snmp_oidtoip(&od->id_inst_ptr[1], &ip); ip.addr = htonl(ip.addr); ifidx = 0; while ((netif != NULL) && !ip_addr_cmp(&ip, &netif->ip_addr)) { netif = netif->next; ifidx++; } if (netif != NULL) { id = od->id_inst_ptr[0]; switch (id) { case 1: /* ipAdEntAddr */ { struct ip_addr *dst = value; *dst = netif->ip_addr; } break; case 2: /* ipAdEntIfIndex */ { s32_t *sint_ptr = value; *sint_ptr = ifidx + 1; } break; case 3: /* ipAdEntNetMask */ { struct ip_addr *dst = value; *dst = netif->netmask; } break; case 4: /* ipAdEntBcastAddr */ { s32_t *sint_ptr = value; /* lwIP oddity, there's no broadcast address in the netif we can rely on */ *sint_ptr = ip_addr_broadcast.addr & 1; } break; case 5: /* ipAdEntReasmMaxSize */ { s32_t *sint_ptr = value; #if IP_REASSEMBLY /* @todo The theoretical maximum is IP_REASS_MAX_PBUFS * size of the pbufs, * but only if receiving one fragmented packet at a time. * The current solution is to calculate for 2 simultaneous packets... */ *sint_ptr = (IP_HLEN + ((IP_REASS_MAX_PBUFS/2) * (PBUF_POOL_BUFSIZE - PBUF_LINK_HLEN - IP_HLEN))); #else /** @todo returning MTU would be a bad thing and returning a wild guess like '576' isn't good either */ *sint_ptr = 0; #endif } break; } } } /** * @note * lwIP IP routing is currently using the network addresses in netif_list. * if no suitable network IP is found in netif_list, the default_netif is used. */ static void ip_rteentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { u8_t id; /* return to object name, adding index depth (4) */ ident_len += 4; ident -= 4; if (ident_len == 5) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; switch (id) { case 1: /* ipRouteDest */ case 7: /* ipRouteNextHop */ case 11: /* ipRouteMask */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR); od->v_len = 4; break; case 2: /* ipRouteIfIndex */ case 3: /* ipRouteMetric1 */ case 4: /* ipRouteMetric2 */ case 5: /* ipRouteMetric3 */ case 6: /* ipRouteMetric4 */ case 8: /* ipRouteType */ case 10: /* ipRouteAge */ case 12: /* ipRouteMetric5 */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 9: /* ipRouteProto */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 13: /* ipRouteInfo */ /** @note returning zeroDotZero (0.0) no routing protocol specific MIB */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID); od->v_len = iprouteinfo.len * sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_rteentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; } } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_rteentry_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void ip_rteentry_get_value(struct obj_def *od, u16_t len, void *value) { struct netif *netif; struct ip_addr dest; s32_t *ident; u8_t id; ident = od->id_inst_ptr; snmp_oidtoip(&ident[1], &dest); dest.addr = htonl(dest.addr); if (dest.addr == 0) { /* ip_route() uses default netif for default route */ netif = netif_default; } else { /* not using ip_route(), need exact match! */ netif = netif_list; while ((netif != NULL) && !ip_addr_netcmp(&dest, &(netif->ip_addr), &(netif->netmask)) ) { netif = netif->next; } } if (netif != NULL) { id = ident[0]; switch (id) { case 1: /* ipRouteDest */ { struct ip_addr *dst = value; if (dest.addr == 0) { /* default rte has 0.0.0.0 dest */ dst->addr = 0; } else { /* netifs have netaddress dest */ dst->addr = netif->ip_addr.addr & netif->netmask.addr; } } break; case 2: /* ipRouteIfIndex */ { s32_t *sint_ptr = value; snmp_netiftoifindex(netif, sint_ptr); } break; case 3: /* ipRouteMetric1 */ { s32_t *sint_ptr = value; if (dest.addr == 0) { /* default rte has metric 1 */ *sint_ptr = 1; } else { /* other rtes have metric 0 */ *sint_ptr = 0; } } break; case 4: /* ipRouteMetric2 */ case 5: /* ipRouteMetric3 */ case 6: /* ipRouteMetric4 */ case 12: /* ipRouteMetric5 */ { s32_t *sint_ptr = value; /* not used */ *sint_ptr = -1; } break; case 7: /* ipRouteNextHop */ { struct ip_addr *dst = value; if (dest.addr == 0) { /* default rte: gateway */ *dst = netif->gw; } else { /* other rtes: netif ip_addr */ *dst = netif->ip_addr; } } break; case 8: /* ipRouteType */ { s32_t *sint_ptr = value; if (dest.addr == 0) { /* default rte is indirect */ *sint_ptr = 4; } else { /* other rtes are direct */ *sint_ptr = 3; } } break; case 9: /* ipRouteProto */ { s32_t *sint_ptr = value; /* locally defined routes */ *sint_ptr = 2; } break; case 10: /* ipRouteAge */ { s32_t *sint_ptr = value; /** @todo (sysuptime - timestamp last change) / 100 @see snmp_insert_iprteidx_tree() */ *sint_ptr = 0; } break; case 11: /* ipRouteMask */ { struct ip_addr *dst = value; if (dest.addr == 0) { /* default rte use 0.0.0.0 mask */ dst->addr = 0; } else { /* other rtes use netmask */ *dst = netif->netmask; } } break; case 13: /* ipRouteInfo */ objectidncpy((s32_t*)value, (s32_t*)iprouteinfo.id, (u8_t)(len / sizeof(s32_t))); break; } } } static void ip_ntomentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (5) */ ident_len += 5; ident -= 5; if (ident_len == 6) { u8_t id; od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; switch (id) { case 1: /* ipNetToMediaIfIndex */ case 4: /* ipNetToMediaType */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 2: /* ipNetToMediaPhysAddress */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR); od->v_len = 6; /** @todo try to use netif::hwaddr_len */ break; case 3: /* ipNetToMediaNetAddress */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR); od->v_len = 4; break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_ntomentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; } } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("ip_ntomentry_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void ip_ntomentry_get_value(struct obj_def *od, u16_t len, void *value) { #if LWIP_ARP u8_t id; struct eth_addr* ethaddr_ret; struct ip_addr* ipaddr_ret; #endif /* LWIP_ARP */ struct ip_addr ip; struct netif *netif; if (len) {} snmp_ifindextonetif(od->id_inst_ptr[1], &netif); snmp_oidtoip(&od->id_inst_ptr[2], &ip); ip.addr = htonl(ip.addr); #if LWIP_ARP /** @todo implement a netif_find_addr */ if (etharp_find_addr(netif, &ip, ðaddr_ret, &ipaddr_ret) > -1) { id = od->id_inst_ptr[0]; switch (id) { case 1: /* ipNetToMediaIfIndex */ { s32_t *sint_ptr = value; *sint_ptr = od->id_inst_ptr[1]; } break; case 2: /* ipNetToMediaPhysAddress */ { struct eth_addr *dst = value; *dst = *ethaddr_ret; } break; case 3: /* ipNetToMediaNetAddress */ { struct ip_addr *dst = value; *dst = *ipaddr_ret; } break; case 4: /* ipNetToMediaType */ { s32_t *sint_ptr = value; /* dynamic (?) */ *sint_ptr = 3; } break; } } #endif /* LWIP_ARP */ } static void icmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if ((ident_len == 2) && (ident[0] > 0) && (ident[0] < 27)) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER); od->v_len = sizeof(u32_t); } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("icmp_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void icmp_get_value(struct obj_def *od, u16_t len, void *value) { u32_t *uint_ptr = value; u8_t id; if (len){} id = od->id_inst_ptr[0]; switch (id) { case 1: /* icmpInMsgs */ *uint_ptr = icmpinmsgs; break; case 2: /* icmpInErrors */ *uint_ptr = icmpinerrors; break; case 3: /* icmpInDestUnreachs */ *uint_ptr = icmpindestunreachs; break; case 4: /* icmpInTimeExcds */ *uint_ptr = icmpintimeexcds; break; case 5: /* icmpInParmProbs */ *uint_ptr = icmpinparmprobs; break; case 6: /* icmpInSrcQuenchs */ *uint_ptr = icmpinsrcquenchs; break; case 7: /* icmpInRedirects */ *uint_ptr = icmpinredirects; break; case 8: /* icmpInEchos */ *uint_ptr = icmpinechos; break; case 9: /* icmpInEchoReps */ *uint_ptr = icmpinechoreps; break; case 10: /* icmpInTimestamps */ *uint_ptr = icmpintimestamps; break; case 11: /* icmpInTimestampReps */ *uint_ptr = icmpintimestampreps; break; case 12: /* icmpInAddrMasks */ *uint_ptr = icmpinaddrmasks; break; case 13: /* icmpInAddrMaskReps */ *uint_ptr = icmpinaddrmaskreps; break; case 14: /* icmpOutMsgs */ *uint_ptr = icmpoutmsgs; break; case 15: /* icmpOutErrors */ *uint_ptr = icmpouterrors; break; case 16: /* icmpOutDestUnreachs */ *uint_ptr = icmpoutdestunreachs; break; case 17: /* icmpOutTimeExcds */ *uint_ptr = icmpouttimeexcds; break; case 18: /* icmpOutParmProbs */ *uint_ptr = icmpoutparmprobs; break; case 19: /* icmpOutSrcQuenchs */ *uint_ptr = icmpoutsrcquenchs; break; case 20: /* icmpOutRedirects */ *uint_ptr = icmpoutredirects; break; case 21: /* icmpOutEchos */ *uint_ptr = icmpoutechos; break; case 22: /* icmpOutEchoReps */ *uint_ptr = icmpoutechoreps; break; case 23: /* icmpOutTimestamps */ *uint_ptr = icmpouttimestamps; break; case 24: /* icmpOutTimestampReps */ *uint_ptr = icmpouttimestampreps; break; case 25: /* icmpOutAddrMasks */ *uint_ptr = icmpoutaddrmasks; break; case 26: /* icmpOutAddrMaskReps */ *uint_ptr = icmpoutaddrmaskreps; break; } } #if LWIP_TCP /** @todo tcp grp */ static void tcp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { u8_t id; /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if (ident_len == 2) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def tcp.%"U16_F".0\n",(u16_t)id)); switch (id) { case 1: /* tcpRtoAlgorithm */ case 2: /* tcpRtoMin */ case 3: /* tcpRtoMax */ case 4: /* tcpMaxConn */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 5: /* tcpActiveOpens */ case 6: /* tcpPassiveOpens */ case 7: /* tcpAttemptFails */ case 8: /* tcpEstabResets */ case 10: /* tcpInSegs */ case 11: /* tcpOutSegs */ case 12: /* tcpRetransSegs */ case 14: /* tcpInErrs */ case 15: /* tcpOutRsts */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER); od->v_len = sizeof(u32_t); break; case 9: /* tcpCurrEstab */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE); od->v_len = sizeof(u32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("tcp_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; }; } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("tcp_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void tcp_get_value(struct obj_def *od, u16_t len, void *value) { u32_t *uint_ptr = value; s32_t *sint_ptr = value; u8_t id; if (len){} id = od->id_inst_ptr[0]; switch (id) { case 1: /* tcpRtoAlgorithm, vanj(4) */ *sint_ptr = 4; break; case 2: /* tcpRtoMin */ /* @todo not the actual value, a guess, needs to be calculated */ *sint_ptr = 1000; break; case 3: /* tcpRtoMax */ /* @todo not the actual value, a guess, needs to be calculated */ *sint_ptr = 60000; break; case 4: /* tcpMaxConn */ *sint_ptr = MEMP_NUM_TCP_PCB; break; case 5: /* tcpActiveOpens */ *uint_ptr = tcpactiveopens; break; case 6: /* tcpPassiveOpens */ *uint_ptr = tcppassiveopens; break; case 7: /* tcpAttemptFails */ *uint_ptr = tcpattemptfails; break; case 8: /* tcpEstabResets */ *uint_ptr = tcpestabresets; break; case 9: /* tcpCurrEstab */ { u16_t tcpcurrestab = 0; struct tcp_pcb *pcb = tcp_active_pcbs; while (pcb != NULL) { if ((pcb->state == ESTABLISHED) || (pcb->state == CLOSE_WAIT)) { tcpcurrestab++; } pcb = pcb->next; } *uint_ptr = tcpcurrestab; } break; case 10: /* tcpInSegs */ *uint_ptr = tcpinsegs; break; case 11: /* tcpOutSegs */ *uint_ptr = tcpoutsegs; break; case 12: /* tcpRetransSegs */ *uint_ptr = tcpretranssegs; break; case 14: /* tcpInErrs */ *uint_ptr = tcpinerrs; break; case 15: /* tcpOutRsts */ *uint_ptr = tcpoutrsts; break; } } #ifdef THIS_SEEMS_UNUSED static void tcpconnentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (10) */ ident_len += 10; ident -= 10; if (ident_len == 11) { u8_t id; od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; LWIP_DEBUGF(SNMP_MIB_DEBUG,("get_object_def tcp.%"U16_F".0\n",(u16_t)id)); switch (id) { case 1: /* tcpConnState */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; case 2: /* tcpConnLocalAddress */ case 4: /* tcpConnRemAddress */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR); od->v_len = 4; break; case 3: /* tcpConnLocalPort */ case 5: /* tcpConnRemPort */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("tcpconnentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; }; } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("tcpconnentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; } } static void tcpconnentry_get_value(struct obj_def *od, u16_t len, void *value) { struct ip_addr lip, rip; u16_t lport, rport; s32_t *ident; ident = od->id_inst_ptr; snmp_oidtoip(&ident[1], &lip); lip.addr = htonl(lip.addr); lport = ident[5]; snmp_oidtoip(&ident[6], &rip); rip.addr = htonl(rip.addr); rport = ident[10]; /** @todo find matching PCB */ } #endif /* if 0 */ #endif static void udp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if ((ident_len == 2) && (ident[0] > 0) && (ident[0] < 6)) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER); od->v_len = sizeof(u32_t); } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("udp_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void udp_get_value(struct obj_def *od, u16_t len, void *value) { u32_t *uint_ptr = value; u8_t id; if (len){} id = od->id_inst_ptr[0]; switch (id) { case 1: /* udpInDatagrams */ *uint_ptr = udpindatagrams; break; case 2: /* udpNoPorts */ *uint_ptr = udpnoports; break; case 3: /* udpInErrors */ *uint_ptr = udpinerrors; break; case 4: /* udpOutDatagrams */ *uint_ptr = udpoutdatagrams; break; } } static void udpentry_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (5) */ ident_len += 5; ident -= 5; if (ident_len == 6) { od->id_inst_len = ident_len; od->id_inst_ptr = ident; switch (ident[0]) { case 1: /* udpLocalAddress */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR); od->v_len = 4; break; case 2: /* udpLocalPort */ od->instance = MIB_OBJECT_TAB; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("udpentry_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; } } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("udpentry_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void udpentry_get_value(struct obj_def *od, u16_t len, void *value) { u8_t id; struct udp_pcb *pcb; struct ip_addr ip; u16_t port; if (len){} snmp_oidtoip(&od->id_inst_ptr[1], &ip); ip.addr = htonl(ip.addr); port = od->id_inst_ptr[5]; pcb = udp_pcbs; while ((pcb != NULL) && !((pcb->local_ip.addr == ip.addr) && (pcb->local_port == port))) { pcb = pcb->next; } if (pcb != NULL) { id = od->id_inst_ptr[0]; switch (id) { case 1: /* udpLocalAddress */ { struct ip_addr *dst = value; *dst = pcb->local_ip; } break; case 2: /* udpLocalPort */ { s32_t *sint_ptr = value; *sint_ptr = pcb->local_port; } break; } } } static void snmp_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od) { /* return to object name, adding index depth (1) */ ident_len += 1; ident -= 1; if (ident_len == 2) { u8_t id; od->id_inst_len = ident_len; od->id_inst_ptr = ident; id = ident[0]; switch (id) { case 1: /* snmpInPkts */ case 2: /* snmpOutPkts */ case 3: /* snmpInBadVersions */ case 4: /* snmpInBadCommunityNames */ case 5: /* snmpInBadCommunityUses */ case 6: /* snmpInASNParseErrs */ case 8: /* snmpInTooBigs */ case 9: /* snmpInNoSuchNames */ case 10: /* snmpInBadValues */ case 11: /* snmpInReadOnlys */ case 12: /* snmpInGenErrs */ case 13: /* snmpInTotalReqVars */ case 14: /* snmpInTotalSetVars */ case 15: /* snmpInGetRequests */ case 16: /* snmpInGetNexts */ case 17: /* snmpInSetRequests */ case 18: /* snmpInGetResponses */ case 19: /* snmpInTraps */ case 20: /* snmpOutTooBigs */ case 21: /* snmpOutNoSuchNames */ case 22: /* snmpOutBadValues */ case 24: /* snmpOutGenErrs */ case 25: /* snmpOutGetRequests */ case 26: /* snmpOutGetNexts */ case 27: /* snmpOutSetRequests */ case 28: /* snmpOutGetResponses */ case 29: /* snmpOutTraps */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_ONLY; od->asn_type = (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER); od->v_len = sizeof(u32_t); break; case 30: /* snmpEnableAuthenTraps */ od->instance = MIB_OBJECT_SCALAR; od->access = MIB_OBJECT_READ_WRITE; od->asn_type = (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG); od->v_len = sizeof(s32_t); break; default: LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_get_object_def: no such object\n")); od->instance = MIB_OBJECT_NONE; break; }; } else { LWIP_DEBUGF(SNMP_MIB_DEBUG,("snmp_get_object_def: no scalar\n")); od->instance = MIB_OBJECT_NONE; } } static void snmp_get_value(struct obj_def *od, u16_t len, void *value) { u32_t *uint_ptr = value; u8_t id; if (len){} id = od->id_inst_ptr[0]; switch (id) { case 1: /* snmpInPkts */ *uint_ptr = snmpinpkts; break; case 2: /* snmpOutPkts */ *uint_ptr = snmpoutpkts; break; case 3: /* snmpInBadVersions */ *uint_ptr = snmpinbadversions; break; case 4: /* snmpInBadCommunityNames */ *uint_ptr = snmpinbadcommunitynames; break; case 5: /* snmpInBadCommunityUses */ *uint_ptr = snmpinbadcommunityuses; break; case 6: /* snmpInASNParseErrs */ *uint_ptr = snmpinasnparseerrs; break; case 8: /* snmpInTooBigs */ *uint_ptr = snmpintoobigs; break; case 9: /* snmpInNoSuchNames */ *uint_ptr = snmpinnosuchnames; break; case 10: /* snmpInBadValues */ *uint_ptr = snmpinbadvalues; break; case 11: /* snmpInReadOnlys */ *uint_ptr = snmpinreadonlys; break; case 12: /* snmpInGenErrs */ *uint_ptr = snmpingenerrs; break; case 13: /* snmpInTotalReqVars */ *uint_ptr = snmpintotalreqvars; break; case 14: /* snmpInTotalSetVars */ *uint_ptr = snmpintotalsetvars; break; case 15: /* snmpInGetRequests */ *uint_ptr = snmpingetrequests; break; case 16: /* snmpInGetNexts */ *uint_ptr = snmpingetnexts; break; case 17: /* snmpInSetRequests */ *uint_ptr = snmpinsetrequests; break; case 18: /* snmpInGetResponses */ *uint_ptr = snmpingetresponses; break; case 19: /* snmpInTraps */ *uint_ptr = snmpintraps; break; case 20: /* snmpOutTooBigs */ *uint_ptr = snmpouttoobigs; break; case 21: /* snmpOutNoSuchNames */ *uint_ptr = snmpoutnosuchnames; break; case 22: /* snmpOutBadValues */ *uint_ptr = snmpoutbadvalues; break; case 24: /* snmpOutGenErrs */ *uint_ptr = snmpoutgenerrs; break; case 25: /* snmpOutGetRequests */ *uint_ptr = snmpoutgetrequests; break; case 26: /* snmpOutGetNexts */ *uint_ptr = snmpoutgetnexts; break; case 27: /* snmpOutSetRequests */ *uint_ptr = snmpoutsetrequests; break; case 28: /* snmpOutGetResponses */ *uint_ptr = snmpoutgetresponses; break; case 29: /* snmpOutTraps */ *uint_ptr = snmpouttraps; break; case 30: /* snmpEnableAuthenTraps */ *uint_ptr = *snmpenableauthentraps_ptr; break; }; } /** * Test snmp object value before setting. * * @param od is the object definition * @param len return value space (in bytes) * @param value points to (varbind) space to copy value from. */ static u8_t snmp_set_test(struct obj_def *od, u16_t len, void *value) { u8_t id, set_ok; if (len) {} set_ok = 0; id = od->id_inst_ptr[0]; if (id == 30) { /* snmpEnableAuthenTraps */ s32_t *sint_ptr = value; if (snmpenableauthentraps_ptr != &snmpenableauthentraps_default) { /* we should have writable non-volatile mem here */ if ((*sint_ptr == 1) || (*sint_ptr == 2)) { set_ok = 1; } } else { /* const or hardwired value */ if (*sint_ptr == snmpenableauthentraps_default) { set_ok = 1; } } } return set_ok; } static void snmp_set_value(struct obj_def *od, u16_t len, void *value) { u8_t id; if (len) {} id = od->id_inst_ptr[0]; if (id == 30) { /* snmpEnableAuthenTraps */ s32_t *sint_ptr = value; *snmpenableauthentraps_ptr = *sint_ptr; } } #endif /* LWIP_SNMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/mib_structs.c000066400000000000000000000717761224274632000245440ustar00rootroot00000000000000/** * @file * MIB tree access/construction functions. */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/snmp_structs.h" #include "lwip/mem.h" /** .iso.org.dod.internet address prefix, @see snmp_iso_*() */ const s32_t prefix[4] = {1, 3, 6, 1}; #define NODE_STACK_SIZE (LWIP_SNMP_OBJ_ID_LEN) /** node stack entry (old news?) */ struct nse { /** right child */ struct mib_node* r_ptr; /** right child identifier */ s32_t r_id; /** right child next level */ u8_t r_nl; }; static u8_t node_stack_cnt; static struct nse node_stack[NODE_STACK_SIZE]; /** * Pushes nse struct onto stack. */ static void push_node(struct nse* node) { LWIP_ASSERT("node_stack_cnt < NODE_STACK_SIZE",node_stack_cnt < NODE_STACK_SIZE); LWIP_DEBUGF(SNMP_MIB_DEBUG,("push_node() node=%p id=%"S32_F"\n",(void*)(node->r_ptr),node->r_id)); if (node_stack_cnt < NODE_STACK_SIZE) { node_stack[node_stack_cnt] = *node; node_stack_cnt++; } } /** * Pops nse struct from stack. */ static void pop_node(struct nse* node) { if (node_stack_cnt > 0) { node_stack_cnt--; *node = node_stack[node_stack_cnt]; } LWIP_DEBUGF(SNMP_MIB_DEBUG,("pop_node() node=%p id=%"S32_F"\n",(void *)(node->r_ptr),node->r_id)); } /** * Conversion from ifIndex to lwIP netif * @param ifindex is a s32_t object sub-identifier * @param netif points to returned netif struct pointer */ void snmp_ifindextonetif(s32_t ifindex, struct netif **netif) { struct netif *nif = netif_list; u16_t i, ifidx; ifidx = ifindex - 1; i = 0; while ((nif != NULL) && (i < ifidx)) { nif = nif->next; i++; } *netif = nif; } /** * Conversion from lwIP netif to ifIndex * @param netif points to a netif struct * @param ifidx points to s32_t object sub-identifier */ void snmp_netiftoifindex(struct netif *netif, s32_t *ifidx) { struct netif *nif = netif_list; u16_t i; i = 0; while (nif != netif) { nif = nif->next; i++; } *ifidx = i+1; } /** * Conversion from oid to lwIP ip_addr * @param ident points to s32_t ident[4] input * @param ip points to output struct */ void snmp_oidtoip(s32_t *ident, struct ip_addr *ip) { u32_t ipa; ipa = ident[0]; ipa <<= 8; ipa |= ident[1]; ipa <<= 8; ipa |= ident[2]; ipa <<= 8; ipa |= ident[3]; ip->addr = ipa; } /** * Conversion from lwIP ip_addr to oid * @param ip points to input struct * @param ident points to s32_t ident[4] output */ void snmp_iptooid(struct ip_addr *ip, s32_t *ident) { u32_t ipa; ipa = ip->addr; ident[0] = (ipa >> 24) & 0xff; ident[1] = (ipa >> 16) & 0xff; ident[2] = (ipa >> 8) & 0xff; ident[3] = ipa & 0xff; } struct mib_list_node * snmp_mib_ln_alloc(s32_t id) { struct mib_list_node *ln; ln = (struct mib_list_node *)mem_malloc(sizeof(struct mib_list_node)); if (ln != NULL) { ln->prev = NULL; ln->next = NULL; ln->objid = id; ln->nptr = NULL; } return ln; } void snmp_mib_ln_free(struct mib_list_node *ln) { mem_free(ln); } struct mib_list_rootnode * snmp_mib_lrn_alloc(void) { struct mib_list_rootnode *lrn; lrn = (struct mib_list_rootnode*)mem_malloc(sizeof(struct mib_list_rootnode)); if (lrn != NULL) { lrn->get_object_def = noleafs_get_object_def; lrn->get_value = noleafs_get_value; lrn->set_test = noleafs_set_test; lrn->set_value = noleafs_set_value; lrn->node_type = MIB_NODE_LR; lrn->maxlength = 0; lrn->head = NULL; lrn->tail = NULL; lrn->count = 0; } return lrn; } void snmp_mib_lrn_free(struct mib_list_rootnode *lrn) { mem_free(lrn); } /** * Inserts node in idx list in a sorted * (ascending order) fashion and * allocates the node if needed. * * @param rn points to the root node * @param objid is the object sub identifier * @param insn points to a pointer to the inserted node * used for constructing the tree. * @return -1 if failed, 1 if inserted, 2 if present. */ s8_t snmp_mib_node_insert(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **insn) { struct mib_list_node *nn; s8_t insert; LWIP_ASSERT("rn != NULL",rn != NULL); /* -1 = malloc failure, 0 = not inserted, 1 = inserted, 2 = was present */ insert = 0; if (rn->head == NULL) { /* empty list, add first node */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc empty list objid==%"S32_F"\n",objid)); nn = snmp_mib_ln_alloc(objid); if (nn != NULL) { rn->head = nn; rn->tail = nn; *insn = nn; insert = 1; } else { insert = -1; } } else { struct mib_list_node *n; /* at least one node is present */ n = rn->head; while ((n != NULL) && (insert == 0)) { if (n->objid == objid) { /* node is already there */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("node already there objid==%"S32_F"\n",objid)); *insn = n; insert = 2; } else if (n->objid < objid) { if (n->next == NULL) { /* alloc and insert at the tail */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc ins tail objid==%"S32_F"\n",objid)); nn = snmp_mib_ln_alloc(objid); if (nn != NULL) { nn->next = NULL; nn->prev = n; n->next = nn; rn->tail = nn; *insn = nn; insert = 1; } else { /* insertion failure */ insert = -1; } } else { /* there's more to explore: traverse list */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("traverse list\n")); n = n->next; } } else { /* n->objid > objid */ /* alloc and insert between n->prev and n */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("alloc ins n->prev, objid==%"S32_F", n\n",objid)); nn = snmp_mib_ln_alloc(objid); if (nn != NULL) { if (n->prev == NULL) { /* insert at the head */ nn->next = n; nn->prev = NULL; rn->head = nn; n->prev = nn; } else { /* insert in the middle */ nn->next = n; nn->prev = n->prev; n->prev->next = nn; n->prev = nn; } *insn = nn; insert = 1; } else { /* insertion failure */ insert = -1; } } } } if (insert == 1) { rn->count += 1; } LWIP_ASSERT("insert != 0",insert != 0); return insert; } /** * Finds node in idx list and returns deletion mark. * * @param rn points to the root node * @param objid is the object sub identifier * @param fn returns pointer to found node * @return 0 if not found, 1 if deletable, * 2 can't delete (2 or more children), 3 not a list_node */ s8_t snmp_mib_node_find(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **fn) { s8_t fc; struct mib_list_node *n; LWIP_ASSERT("rn != NULL",rn != NULL); n = rn->head; while ((n != NULL) && (n->objid != objid)) { n = n->next; } if (n == NULL) { fc = 0; } else if (n->nptr == NULL) { /* leaf, can delete node */ fc = 1; } else { struct mib_list_rootnode *r; if (n->nptr->node_type == MIB_NODE_LR) { r = (struct mib_list_rootnode *)n->nptr; if (r->count > 1) { /* can't delete node */ fc = 2; } else { /* count <= 1, can delete node */ fc = 1; } } else { /* other node type */ fc = 3; } } *fn = n; return fc; } /** * Removes node from idx list * if it has a single child left. * * @param rn points to the root node * @param n points to the node to delete * @return the nptr to be freed by caller */ struct mib_list_rootnode * snmp_mib_node_delete(struct mib_list_rootnode *rn, struct mib_list_node *n) { struct mib_list_rootnode *next; LWIP_ASSERT("rn != NULL",rn != NULL); LWIP_ASSERT("n != NULL",n != NULL); /* caller must remove this sub-tree */ next = (struct mib_list_rootnode*)(n->nptr); rn->count -= 1; if (n == rn->head) { rn->head = n->next; if (n->next != NULL) { /* not last node, new list begin */ n->next->prev = NULL; } } else if (n == rn->tail) { rn->tail = n->prev; if (n->prev != NULL) { /* not last node, new list end */ n->prev->next = NULL; } } else { /* node must be in the middle */ n->prev->next = n->next; n->next->prev = n->prev; } LWIP_DEBUGF(SNMP_MIB_DEBUG,("free list objid==%"S32_F"\n",n->objid)); snmp_mib_ln_free(n); if (rn->count == 0) { rn->head = NULL; rn->tail = NULL; } return next; } /** * Searches tree for the supplied (scalar?) object identifier. * * @param node points to the root of the tree ('.internet') * @param ident_len the length of the supplied object identifier * @param ident points to the array of sub identifiers * @param np points to the found object instance (rerurn) * @return pointer to the requested parent (!) node if success, NULL otherwise */ struct mib_node * snmp_search_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_name_ptr *np) { u8_t node_type, ext_level; ext_level = 0; LWIP_DEBUGF(SNMP_MIB_DEBUG,("node==%p *ident==%"S32_F"\n",(void*)node,*ident)); while (node != NULL) { node_type = node->node_type; if ((node_type == MIB_NODE_AR) || (node_type == MIB_NODE_RA)) { struct mib_array_node *an; u16_t i; if (ident_len > 0) { /* array node (internal ROM or RAM, fixed length) */ an = (struct mib_array_node *)node; i = 0; while ((i < an->maxlength) && (an->objid[i] != *ident)) { i++; } if (i < an->maxlength) { /* found it, if available proceed to child, otherwise inspect leaf */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("an->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,an->objid[i],*ident)); if (an->nptr[i] == NULL) { /* a scalar leaf OR table, inspect remaining instance number / table index */ np->ident_len = ident_len; np->ident = ident; return (struct mib_node*)an; } else { /* follow next child pointer */ ident++; ident_len--; node = an->nptr[i]; } } else { /* search failed, identifier mismatch (nosuchname) */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("an search failed *ident==%"S32_F"\n",*ident)); return NULL; } } else { /* search failed, short object identifier (nosuchname) */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("an search failed, short object identifier\n")); return NULL; } } else if(node_type == MIB_NODE_LR) { struct mib_list_rootnode *lrn; struct mib_list_node *ln; if (ident_len > 0) { /* list root node (internal 'RAM', variable length) */ lrn = (struct mib_list_rootnode *)node; ln = lrn->head; /* iterate over list, head to tail */ while ((ln != NULL) && (ln->objid != *ident)) { ln = ln->next; } if (ln != NULL) { /* found it, proceed to child */; LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln->objid==%"S32_F" *ident==%"S32_F"\n",ln->objid,*ident)); if (ln->nptr == NULL) { np->ident_len = ident_len; np->ident = ident; return (struct mib_node*)lrn; } else { /* follow next child pointer */ ident_len--; ident++; node = ln->nptr; } } else { /* search failed */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln search failed *ident==%"S32_F"\n",*ident)); return NULL; } } else { /* search failed, short object identifier (nosuchname) */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln search failed, short object identifier\n")); return NULL; } } else if(node_type == MIB_NODE_EX) { struct mib_external_node *en; u16_t i, len; if (ident_len > 0) { /* external node (addressing and access via functions) */ en = (struct mib_external_node *)node; i = 0; len = en->level_length(en->addr_inf,ext_level); while ((i < len) && (en->ident_cmp(en->addr_inf,ext_level,i,*ident) != 0)) { i++; } if (i < len) { s32_t debug_id; en->get_objid(en->addr_inf,ext_level,i,&debug_id); LWIP_DEBUGF(SNMP_MIB_DEBUG,("en->objid==%"S32_F" *ident==%"S32_F"\n",debug_id,*ident)); if ((ext_level + 1) == en->tree_levels) { np->ident_len = ident_len; np->ident = ident; return (struct mib_node*)en; } else { /* found it, proceed to child */ ident_len--; ident++; ext_level++; } } else { /* search failed */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("en search failed *ident==%"S32_F"\n",*ident)); return NULL; } } else { /* search failed, short object identifier (nosuchname) */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("en search failed, short object identifier\n")); return NULL; } } else if (node_type == MIB_NODE_SC) { mib_scalar_node *sn; sn = (mib_scalar_node *)node; if ((ident_len == 1) && (*ident == 0)) { np->ident_len = ident_len; np->ident = ident; return (struct mib_node*)sn; } else { /* search failed, short object identifier (nosuchname) */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("search failed, invalid object identifier length\n")); return NULL; } } else { /* unknown node_type */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("search failed node_type %"U16_F" unkown\n",(u16_t)node_type)); return NULL; } } /* done, found nothing */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("search failed node==%p\n",(void*)node)); return NULL; } /** * Test table for presence of at least one table entry. */ static u8_t empty_table(struct mib_node *node) { u8_t node_type; u8_t empty = 0; if (node != NULL) { node_type = node->node_type; if (node_type == MIB_NODE_LR) { struct mib_list_rootnode *lrn; lrn = (struct mib_list_rootnode *)node; if ((lrn->count == 0) || (lrn->head == NULL)) { empty = 1; } } else if ((node_type == MIB_NODE_AR) || (node_type == MIB_NODE_RA)) { struct mib_array_node *an; an = (struct mib_array_node *)node; if ((an->maxlength == 0) || (an->nptr == NULL)) { empty = 1; } } else if (node_type == MIB_NODE_EX) { struct mib_external_node *en; en = (struct mib_external_node *)node; if (en->tree_levels == 0) { empty = 1; } } } return empty; } /** * Tree expansion. */ struct mib_node * snmp_expand_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret) { u8_t node_type, ext_level, climb_tree; ext_level = 0; /* reset node stack */ node_stack_cnt = 0; while (node != NULL) { climb_tree = 0; node_type = node->node_type; if ((node_type == MIB_NODE_AR) || (node_type == MIB_NODE_RA)) { struct mib_array_node *an; u16_t i; /* array node (internal ROM or RAM, fixed length) */ an = (struct mib_array_node *)node; if (ident_len > 0) { i = 0; while ((i < an->maxlength) && (an->objid[i] < *ident)) { i++; } if (i < an->maxlength) { LWIP_DEBUGF(SNMP_MIB_DEBUG,("an->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,an->objid[i],*ident)); /* add identifier to oidret */ oidret->id[oidret->len] = an->objid[i]; (oidret->len)++; if (an->nptr[i] == NULL) { LWIP_DEBUGF(SNMP_MIB_DEBUG,("leaf node\n")); /* leaf node (e.g. in a fixed size table) */ if (an->objid[i] > *ident) { return (struct mib_node*)an; } else if ((i + 1) < an->maxlength) { /* an->objid[i] == *ident */ (oidret->len)--; oidret->id[oidret->len] = an->objid[i + 1]; (oidret->len)++; return (struct mib_node*)an; } else { /* (i + 1) == an->maxlength */ (oidret->len)--; climb_tree = 1; } } else { u8_t j; struct nse cur_node; LWIP_DEBUGF(SNMP_MIB_DEBUG,("non-leaf node\n")); /* non-leaf, store right child ptr and id */ j = i + 1; while ((j < an->maxlength) && (empty_table(an->nptr[j]))) { j++; } if (j < an->maxlength) { cur_node.r_ptr = an->nptr[j]; cur_node.r_id = an->objid[j]; cur_node.r_nl = 0; } else { cur_node.r_ptr = NULL; } push_node(&cur_node); if (an->objid[i] == *ident) { ident_len--; ident++; } else { /* an->objid[i] < *ident */ ident_len = 0; } /* follow next child pointer */ node = an->nptr[i]; } } else { /* i == an->maxlength */ climb_tree = 1; } } else { u8_t j; /* ident_len == 0, complete with leftmost '.thing' */ j = 0; while ((j < an->maxlength) && empty_table(an->nptr[j])) { j++; } if (j < an->maxlength) { LWIP_DEBUGF(SNMP_MIB_DEBUG,("left an->objid[j]==%"S32_F"\n",an->objid[j])); oidret->id[oidret->len] = an->objid[j]; (oidret->len)++; if (an->nptr[j] == NULL) { /* leaf node */ return (struct mib_node*)an; } else { /* no leaf, continue */ node = an->nptr[j]; } } else { /* j == an->maxlength */ climb_tree = 1; } } } else if(node_type == MIB_NODE_LR) { struct mib_list_rootnode *lrn; struct mib_list_node *ln; /* list root node (internal 'RAM', variable length) */ lrn = (struct mib_list_rootnode *)node; if (ident_len > 0) { ln = lrn->head; /* iterate over list, head to tail */ while ((ln != NULL) && (ln->objid < *ident)) { ln = ln->next; } if (ln != NULL) { LWIP_DEBUGF(SNMP_MIB_DEBUG,("ln->objid==%"S32_F" *ident==%"S32_F"\n",ln->objid,*ident)); oidret->id[oidret->len] = ln->objid; (oidret->len)++; if (ln->nptr == NULL) { /* leaf node */ if (ln->objid > *ident) { return (struct mib_node*)lrn; } else if (ln->next != NULL) { /* ln->objid == *ident */ (oidret->len)--; oidret->id[oidret->len] = ln->next->objid; (oidret->len)++; return (struct mib_node*)lrn; } else { /* ln->next == NULL */ (oidret->len)--; climb_tree = 1; } } else { struct mib_list_node *jn; struct nse cur_node; /* non-leaf, store right child ptr and id */ jn = ln->next; while ((jn != NULL) && empty_table(jn->nptr)) { jn = jn->next; } if (jn != NULL) { cur_node.r_ptr = jn->nptr; cur_node.r_id = jn->objid; cur_node.r_nl = 0; } else { cur_node.r_ptr = NULL; } push_node(&cur_node); if (ln->objid == *ident) { ident_len--; ident++; } else { /* ln->objid < *ident */ ident_len = 0; } /* follow next child pointer */ node = ln->nptr; } } else { /* ln == NULL */ climb_tree = 1; } } else { struct mib_list_node *jn; /* ident_len == 0, complete with leftmost '.thing' */ jn = lrn->head; while ((jn != NULL) && empty_table(jn->nptr)) { jn = jn->next; } if (jn != NULL) { LWIP_DEBUGF(SNMP_MIB_DEBUG,("left jn->objid==%"S32_F"\n",jn->objid)); oidret->id[oidret->len] = jn->objid; (oidret->len)++; if (jn->nptr == NULL) { /* leaf node */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("jn->nptr == NULL\n")); return (struct mib_node*)lrn; } else { /* no leaf, continue */ node = jn->nptr; } } else { /* jn == NULL */ climb_tree = 1; } } } else if(node_type == MIB_NODE_EX) { struct mib_external_node *en; s32_t ex_id; /* external node (addressing and access via functions) */ en = (struct mib_external_node *)node; if (ident_len > 0) { u16_t i, len; i = 0; len = en->level_length(en->addr_inf,ext_level); while ((i < len) && (en->ident_cmp(en->addr_inf,ext_level,i,*ident) < 0)) { i++; } if (i < len) { /* add identifier to oidret */ en->get_objid(en->addr_inf,ext_level,i,&ex_id); LWIP_DEBUGF(SNMP_MIB_DEBUG,("en->objid[%"U16_F"]==%"S32_F" *ident==%"S32_F"\n",i,ex_id,*ident)); oidret->id[oidret->len] = ex_id; (oidret->len)++; if ((ext_level + 1) == en->tree_levels) { LWIP_DEBUGF(SNMP_MIB_DEBUG,("leaf node\n")); /* leaf node */ if (ex_id > *ident) { return (struct mib_node*)en; } else if ((i + 1) < len) { /* ex_id == *ident */ en->get_objid(en->addr_inf,ext_level,i + 1,&ex_id); (oidret->len)--; oidret->id[oidret->len] = ex_id; (oidret->len)++; return (struct mib_node*)en; } else { /* (i + 1) == len */ (oidret->len)--; climb_tree = 1; } } else { u8_t j; struct nse cur_node; LWIP_DEBUGF(SNMP_MIB_DEBUG,("non-leaf node\n")); /* non-leaf, store right child ptr and id */ j = i + 1; if (j < len) { /* right node is the current external node */ cur_node.r_ptr = node; en->get_objid(en->addr_inf,ext_level,j,&cur_node.r_id); cur_node.r_nl = ext_level + 1; } else { cur_node.r_ptr = NULL; } push_node(&cur_node); if (en->ident_cmp(en->addr_inf,ext_level,i,*ident) == 0) { ident_len--; ident++; } else { /* external id < *ident */ ident_len = 0; } /* proceed to child */ ext_level++; } } else { /* i == len (en->level_len()) */ climb_tree = 1; } } else { /* ident_len == 0, complete with leftmost '.thing' */ en->get_objid(en->addr_inf,ext_level,0,&ex_id); LWIP_DEBUGF(SNMP_MIB_DEBUG,("left en->objid==%"S32_F"\n",ex_id)); oidret->id[oidret->len] = ex_id; (oidret->len)++; if ((ext_level + 1) == en->tree_levels) { /* leaf node */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("(ext_level + 1) == en->tree_levels\n")); return (struct mib_node*)en; } else { /* no leaf, proceed to child */ ext_level++; } } } else if(node_type == MIB_NODE_SC) { mib_scalar_node *sn; /* scalar node */ sn = (mib_scalar_node *)node; if (ident_len > 0) { /* at .0 */ climb_tree = 1; } else { /* ident_len == 0, complete object identifier */ oidret->id[oidret->len] = 0; (oidret->len)++; /* leaf node */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("completed scalar leaf\n")); return (struct mib_node*)sn; } } else { /* unknown/unhandled node_type */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("expand failed node_type %"U16_F" unkown\n",(u16_t)node_type)); return NULL; } if (climb_tree) { struct nse child; /* find right child ptr */ child.r_ptr = NULL; child.r_id = 0; child.r_nl = 0; while ((node_stack_cnt > 0) && (child.r_ptr == NULL)) { pop_node(&child); /* trim returned oid */ (oidret->len)--; } if (child.r_ptr != NULL) { /* incoming ident is useless beyond this point */ ident_len = 0; oidret->id[oidret->len] = child.r_id; oidret->len++; node = child.r_ptr; ext_level = child.r_nl; } else { /* tree ends here ... */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("expand failed, tree ends here\n")); return NULL; } } } /* done, found nothing */ LWIP_DEBUGF(SNMP_MIB_DEBUG,("expand failed node==%p\n",(void*)node)); return NULL; } /** * Test object identifier for the iso.org.dod.internet prefix. * * @param ident_len the length of the supplied object identifier * @param ident points to the array of sub identifiers * @return 1 if it matches, 0 otherwise */ u8_t snmp_iso_prefix_tst(u8_t ident_len, s32_t *ident) { if ((ident_len > 3) && (ident[0] == 1) && (ident[1] == 3) && (ident[2] == 6) && (ident[3] == 1)) { return 1; } else { return 0; } } /** * Expands object identifier to the iso.org.dod.internet * prefix for use in getnext operation. * * @param ident_len the length of the supplied object identifier * @param ident points to the array of sub identifiers * @param oidret points to returned expanded object identifier * @return 1 if it matches, 0 otherwise * * @note ident_len 0 is allowed, expanding to the first known object id!! */ u8_t snmp_iso_prefix_expand(u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret) { const s32_t *prefix_ptr; s32_t *ret_ptr; u8_t i; i = 0; prefix_ptr = &prefix[0]; ret_ptr = &oidret->id[0]; ident_len = ((ident_len < 4)?ident_len:4); while ((i < ident_len) && ((*ident) <= (*prefix_ptr))) { *ret_ptr++ = *prefix_ptr++; ident++; i++; } if (i == ident_len) { /* match, complete missing bits */ while (i < 4) { *ret_ptr++ = *prefix_ptr++; i++; } oidret->len = i; return 1; } else { /* i != ident_len */ return 0; } } #endif /* LWIP_SNMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/msg_in.c000066400000000000000000001240111224274632000234370ustar00rootroot00000000000000/** * @file * SNMP input message processing (RFC1157). */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/ip_addr.h" #include "lwip/mem.h" #include "lwip/udp.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include "lwip/snmp_asn1.h" #include "lwip/snmp_msg.h" #include "lwip/snmp_structs.h" #include /* public (non-static) constants */ /** SNMP v1 == 0 */ const s32_t snmp_version = 0; /** default SNMP community string */ const char snmp_publiccommunity[7] = "public"; /* statically allocated buffers for SNMP_CONCURRENT_REQUESTS */ struct snmp_msg_pstat msg_input_list[SNMP_CONCURRENT_REQUESTS]; /* UDP Protocol Control Block */ struct udp_pcb *snmp1_pcb; static void snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port); static err_t snmp_pdu_header_check(struct pbuf *p, u16_t ofs, u16_t pdu_len, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat); static err_t snmp_pdu_dec_varbindlist(struct pbuf *p, u16_t ofs, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat); /** * Starts SNMP Agent. * Allocates UDP pcb and binds it to IP_ADDR_ANY port 161. */ void snmp_init(void) { struct snmp_msg_pstat *msg_ps; u8_t i; snmp1_pcb = udp_new(); if (snmp1_pcb != NULL) { udp_recv(snmp1_pcb, snmp_recv, (void *)SNMP_IN_PORT); udp_bind(snmp1_pcb, IP_ADDR_ANY, SNMP_IN_PORT); } msg_ps = &msg_input_list[0]; for (i=0; istate = SNMP_MSG_EMPTY; msg_ps->error_index = 0; msg_ps->error_status = SNMP_ES_NOERROR; msg_ps++; } trap_msg.pcb = snmp1_pcb; /* The coldstart trap will only be output if our outgoing interface is up & configured */ snmp_coldstart_trap(); } static void snmp_error_response(struct snmp_msg_pstat *msg_ps, u8_t error) { snmp_varbind_list_free(&msg_ps->outvb); msg_ps->outvb = msg_ps->invb; msg_ps->invb.head = NULL; msg_ps->invb.tail = NULL; msg_ps->invb.count = 0; msg_ps->error_status = error; msg_ps->error_index = 1 + msg_ps->vb_idx; snmp_send_response(msg_ps); snmp_varbind_list_free(&msg_ps->outvb); msg_ps->state = SNMP_MSG_EMPTY; } static void snmp_ok_response(struct snmp_msg_pstat *msg_ps) { err_t err_ret; err_ret = snmp_send_response(msg_ps); if (err_ret == ERR_MEM) { /* serious memory problem, can't return tooBig */ } else { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event = %"S32_F"\n",msg_ps->error_status)); } /* free varbinds (if available) */ snmp_varbind_list_free(&msg_ps->invb); snmp_varbind_list_free(&msg_ps->outvb); msg_ps->state = SNMP_MSG_EMPTY; } /** * Service an internal or external event for SNMP GET. * * @param request_id identifies requests from 0 to (SNMP_CONCURRENT_REQUESTS-1) * @param msg_ps points to the assosicated message process state */ static void snmp_msg_get_event(u8_t request_id, struct snmp_msg_pstat *msg_ps) { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_get_event: msg_ps->state==%"U16_F"\n",(u16_t)msg_ps->state)); if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF) { struct mib_external_node *en; struct snmp_name_ptr np; /* get_object_def() answer*/ en = msg_ps->ext_mib_node; np = msg_ps->ext_name_ptr; /* translate answer into a known lifeform */ en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def); if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE) { msg_ps->state = SNMP_MSG_EXTERNAL_GET_VALUE; en->get_value_q(request_id, &msg_ps->ext_object_def); } else { en->get_object_def_pc(request_id, np.ident_len, np.ident); /* search failed, object id points to unknown object (nosuchname) */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } else if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_VALUE) { struct mib_external_node *en; struct snmp_varbind *vb; /* get_value() answer */ en = msg_ps->ext_mib_node; /* allocate output varbind */ vb = (struct snmp_varbind *)mem_malloc(sizeof(struct snmp_varbind)); LWIP_ASSERT("vb != NULL",vb != NULL); if (vb != NULL) { vb->next = NULL; vb->prev = NULL; /* move name from invb to outvb */ vb->ident = msg_ps->vb_ptr->ident; vb->ident_len = msg_ps->vb_ptr->ident_len; /* ensure this memory is refereced once only */ msg_ps->vb_ptr->ident = NULL; msg_ps->vb_ptr->ident_len = 0; vb->value_type = msg_ps->ext_object_def.asn_type; vb->value_len = msg_ps->ext_object_def.v_len; if (vb->value_len > 0) { vb->value = mem_malloc(vb->value_len); LWIP_ASSERT("vb->value != NULL",vb->value != NULL); if (vb->value != NULL) { en->get_value_a(request_id, &msg_ps->ext_object_def, vb->value_len, vb->value); snmp_varbind_tail_add(&msg_ps->outvb, vb); /* search again (if vb_idx < msg_ps->invb.count) */ msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } else { en->get_value_pc(request_id, &msg_ps->ext_object_def); LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no variable space\n")); msg_ps->vb_ptr->ident = vb->ident; msg_ps->vb_ptr->ident_len = vb->ident_len; mem_free(vb); snmp_error_response(msg_ps,SNMP_ES_TOOBIG); } } else { /* vb->value_len == 0, empty value (e.g. empty string) */ en->get_value_a(request_id, &msg_ps->ext_object_def, 0, NULL); vb->value = NULL; snmp_varbind_tail_add(&msg_ps->outvb, vb); /* search again (if vb_idx < msg_ps->invb.count) */ msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } } else { en->get_value_pc(request_id, &msg_ps->ext_object_def); LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: no outvb space\n")); snmp_error_response(msg_ps,SNMP_ES_TOOBIG); } } while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) && (msg_ps->vb_idx < msg_ps->invb.count)) { struct mib_node *mn; struct snmp_name_ptr np; if (msg_ps->vb_idx == 0) { msg_ps->vb_ptr = msg_ps->invb.head; } else { msg_ps->vb_ptr = msg_ps->vb_ptr->next; } /** test object identifier for .iso.org.dod.internet prefix */ if (snmp_iso_prefix_tst(msg_ps->vb_ptr->ident_len, msg_ps->vb_ptr->ident)) { mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4, msg_ps->vb_ptr->ident + 4, &np); if (mn != NULL) { if (mn->node_type == MIB_NODE_EX) { /* external object */ struct mib_external_node *en = (struct mib_external_node*)mn; msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF; /* save en && args in msg_ps!! */ msg_ps->ext_mib_node = en; msg_ps->ext_name_ptr = np; en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident); } else { /* internal object */ struct obj_def object_def; msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF; mn->get_object_def(np.ident_len, np.ident, &object_def); if (object_def.instance != MIB_OBJECT_NONE) { mn = mn; } else { /* search failed, object id points to unknown object (nosuchname) */ mn = NULL; } if (mn != NULL) { struct snmp_varbind *vb; msg_ps->state = SNMP_MSG_INTERNAL_GET_VALUE; /* allocate output varbind */ vb = (struct snmp_varbind *)mem_malloc(sizeof(struct snmp_varbind)); LWIP_ASSERT("vb != NULL",vb != NULL); if (vb != NULL) { vb->next = NULL; vb->prev = NULL; /* move name from invb to outvb */ vb->ident = msg_ps->vb_ptr->ident; vb->ident_len = msg_ps->vb_ptr->ident_len; /* ensure this memory is refereced once only */ msg_ps->vb_ptr->ident = NULL; msg_ps->vb_ptr->ident_len = 0; vb->value_type = object_def.asn_type; vb->value_len = object_def.v_len; if (vb->value_len > 0) { vb->value = mem_malloc(vb->value_len); LWIP_ASSERT("vb->value != NULL",vb->value != NULL); if (vb->value != NULL) { mn->get_value(&object_def, vb->value_len, vb->value); snmp_varbind_tail_add(&msg_ps->outvb, vb); msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } else { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: couldn't allocate variable space\n")); msg_ps->vb_ptr->ident = vb->ident; msg_ps->vb_ptr->ident_len = vb->ident_len; mem_free(vb); snmp_error_response(msg_ps,SNMP_ES_TOOBIG); } } else { /* vb->value_len == 0, empty value (e.g. empty string) */ vb->value = NULL; snmp_varbind_tail_add(&msg_ps->outvb, vb); msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } } else { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_event: couldn't allocate outvb space\n")); snmp_error_response(msg_ps,SNMP_ES_TOOBIG); } } } } } else { mn = NULL; } if (mn == NULL) { /* mn == NULL, noSuchName */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) && (msg_ps->vb_idx == msg_ps->invb.count)) { snmp_ok_response(msg_ps); } } /** * Service an internal or external event for SNMP GETNEXT. * * @param request_id identifies requests from 0 to (SNMP_CONCURRENT_REQUESTS-1) * @param msg_ps points to the assosicated message process state */ static void snmp_msg_getnext_event(u8_t request_id, struct snmp_msg_pstat *msg_ps) { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_getnext_event: msg_ps->state==%"U16_F"\n",(u16_t)msg_ps->state)); if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF) { struct mib_external_node *en; /* get_object_def() answer*/ en = msg_ps->ext_mib_node; /* translate answer into a known lifeform */ en->get_object_def_a(request_id, 1, &msg_ps->ext_oid.id[msg_ps->ext_oid.len - 1], &msg_ps->ext_object_def); if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE) { msg_ps->state = SNMP_MSG_EXTERNAL_GET_VALUE; en->get_value_q(request_id, &msg_ps->ext_object_def); } else { en->get_object_def_pc(request_id, 1, &msg_ps->ext_oid.id[msg_ps->ext_oid.len - 1]); /* search failed, object id points to unknown object (nosuchname) */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } else if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_VALUE) { struct mib_external_node *en; struct snmp_varbind *vb; /* get_value() answer */ en = msg_ps->ext_mib_node; vb = snmp_varbind_alloc(&msg_ps->ext_oid, msg_ps->ext_object_def.asn_type, msg_ps->ext_object_def.v_len); if (vb != NULL) { en->get_value_a(request_id, &msg_ps->ext_object_def, vb->value_len, vb->value); snmp_varbind_tail_add(&msg_ps->outvb, vb); msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } else { en->get_value_pc(request_id, &msg_ps->ext_object_def); LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_getnext_event: couldn't allocate outvb space\n")); snmp_error_response(msg_ps,SNMP_ES_TOOBIG); } } while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) && (msg_ps->vb_idx < msg_ps->invb.count)) { struct mib_node *mn; struct snmp_obj_id oid; if (msg_ps->vb_idx == 0) { msg_ps->vb_ptr = msg_ps->invb.head; } else { msg_ps->vb_ptr = msg_ps->vb_ptr->next; } if (snmp_iso_prefix_expand(msg_ps->vb_ptr->ident_len, msg_ps->vb_ptr->ident, &oid)) { if (msg_ps->vb_ptr->ident_len > 3) { /* can offset ident_len and ident */ mn = snmp_expand_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4, msg_ps->vb_ptr->ident + 4, &oid); } else { /* can't offset ident_len -4, ident + 4 */ mn = snmp_expand_tree((struct mib_node*)&internet, 0, NULL, &oid); } } else { mn = NULL; } if (mn != NULL) { if (mn->node_type == MIB_NODE_EX) { /* external object */ struct mib_external_node *en = (struct mib_external_node*)mn; msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF; /* save en && args in msg_ps!! */ msg_ps->ext_mib_node = en; msg_ps->ext_oid = oid; en->get_object_def_q(en->addr_inf, request_id, 1, &oid.id[oid.len - 1]); } else { /* internal object */ struct obj_def object_def; struct snmp_varbind *vb; msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF; mn->get_object_def(1, &oid.id[oid.len - 1], &object_def); vb = snmp_varbind_alloc(&oid, object_def.asn_type, object_def.v_len); if (vb != NULL) { msg_ps->state = SNMP_MSG_INTERNAL_GET_VALUE; mn->get_value(&object_def, object_def.v_len, vb->value); snmp_varbind_tail_add(&msg_ps->outvb, vb); msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } else { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv couldn't allocate outvb space\n")); snmp_error_response(msg_ps,SNMP_ES_TOOBIG); } } } if (mn == NULL) { /* mn == NULL, noSuchName */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) && (msg_ps->vb_idx == msg_ps->invb.count)) { snmp_ok_response(msg_ps); } } /** * Service an internal or external event for SNMP SET. * * @param request_id identifies requests from 0 to (SNMP_CONCURRENT_REQUESTS-1) * @param msg_ps points to the assosicated message process state */ static void snmp_msg_set_event(u8_t request_id, struct snmp_msg_pstat *msg_ps) { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_msg_set_event: msg_ps->state==%"U16_F"\n",(u16_t)msg_ps->state)); if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF) { struct mib_external_node *en; struct snmp_name_ptr np; /* get_object_def() answer*/ en = msg_ps->ext_mib_node; np = msg_ps->ext_name_ptr; /* translate answer into a known lifeform */ en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def); if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE) { msg_ps->state = SNMP_MSG_EXTERNAL_SET_TEST; en->set_test_q(request_id, &msg_ps->ext_object_def); } else { en->get_object_def_pc(request_id, np.ident_len, np.ident); /* search failed, object id points to unknown object (nosuchname) */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } else if (msg_ps->state == SNMP_MSG_EXTERNAL_SET_TEST) { struct mib_external_node *en; /* set_test() answer*/ en = msg_ps->ext_mib_node; if (msg_ps->ext_object_def.access == MIB_OBJECT_READ_WRITE) { if ((msg_ps->ext_object_def.asn_type == msg_ps->vb_ptr->value_type) && (en->set_test_a(request_id,&msg_ps->ext_object_def, msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value) != 0)) { msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } else { en->set_test_pc(request_id,&msg_ps->ext_object_def); /* bad value */ snmp_error_response(msg_ps,SNMP_ES_BADVALUE); } } else { en->set_test_pc(request_id,&msg_ps->ext_object_def); /* object not available for set */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } else if (msg_ps->state == SNMP_MSG_EXTERNAL_GET_OBJDEF_S) { struct mib_external_node *en; struct snmp_name_ptr np; /* get_object_def() answer*/ en = msg_ps->ext_mib_node; np = msg_ps->ext_name_ptr; /* translate answer into a known lifeform */ en->get_object_def_a(request_id, np.ident_len, np.ident, &msg_ps->ext_object_def); if (msg_ps->ext_object_def.instance != MIB_OBJECT_NONE) { msg_ps->state = SNMP_MSG_EXTERNAL_SET_VALUE; en->set_value_q(request_id, &msg_ps->ext_object_def, msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value); } else { en->get_object_def_pc(request_id, np.ident_len, np.ident); /* set_value failed, object has disappeared for some odd reason?? */ snmp_error_response(msg_ps,SNMP_ES_GENERROR); } } else if (msg_ps->state == SNMP_MSG_EXTERNAL_SET_VALUE) { struct mib_external_node *en; /** set_value_a() */ en = msg_ps->ext_mib_node; en->set_value_a(request_id, &msg_ps->ext_object_def, msg_ps->vb_ptr->value_len, msg_ps->vb_ptr->value); /** @todo use set_value_pc() if toobig */ msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE; msg_ps->vb_idx += 1; } /* test all values before setting */ while ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) && (msg_ps->vb_idx < msg_ps->invb.count)) { struct mib_node *mn; struct snmp_name_ptr np; if (msg_ps->vb_idx == 0) { msg_ps->vb_ptr = msg_ps->invb.head; } else { msg_ps->vb_ptr = msg_ps->vb_ptr->next; } /** test object identifier for .iso.org.dod.internet prefix */ if (snmp_iso_prefix_tst(msg_ps->vb_ptr->ident_len, msg_ps->vb_ptr->ident)) { mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4, msg_ps->vb_ptr->ident + 4, &np); if (mn != NULL) { if (mn->node_type == MIB_NODE_EX) { /* external object */ struct mib_external_node *en = (struct mib_external_node*)mn; msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF; /* save en && args in msg_ps!! */ msg_ps->ext_mib_node = en; msg_ps->ext_name_ptr = np; en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident); } else { /* internal object */ struct obj_def object_def; msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF; mn->get_object_def(np.ident_len, np.ident, &object_def); if (object_def.instance != MIB_OBJECT_NONE) { mn = mn; } else { /* search failed, object id points to unknown object (nosuchname) */ mn = NULL; } if (mn != NULL) { msg_ps->state = SNMP_MSG_INTERNAL_SET_TEST; if (object_def.access == MIB_OBJECT_READ_WRITE) { if ((object_def.asn_type == msg_ps->vb_ptr->value_type) && (mn->set_test(&object_def,msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value) != 0)) { msg_ps->state = SNMP_MSG_SEARCH_OBJ; msg_ps->vb_idx += 1; } else { /* bad value */ snmp_error_response(msg_ps,SNMP_ES_BADVALUE); } } else { /* object not available for set */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } } } } else { mn = NULL; } if (mn == NULL) { /* mn == NULL, noSuchName */ snmp_error_response(msg_ps,SNMP_ES_NOSUCHNAME); } } if ((msg_ps->state == SNMP_MSG_SEARCH_OBJ) && (msg_ps->vb_idx == msg_ps->invb.count)) { msg_ps->vb_idx = 0; msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE; } /* set all values "atomically" (be as "atomic" as possible) */ while ((msg_ps->state == SNMP_MSG_INTERNAL_SET_VALUE) && (msg_ps->vb_idx < msg_ps->invb.count)) { struct mib_node *mn; struct snmp_name_ptr np; if (msg_ps->vb_idx == 0) { msg_ps->vb_ptr = msg_ps->invb.head; } else { msg_ps->vb_ptr = msg_ps->vb_ptr->next; } /* skip iso prefix test, was done previously while settesting() */ mn = snmp_search_tree((struct mib_node*)&internet, msg_ps->vb_ptr->ident_len - 4, msg_ps->vb_ptr->ident + 4, &np); /* check if object is still available (e.g. external hot-plug thingy present?) */ if (mn != NULL) { if (mn->node_type == MIB_NODE_EX) { /* external object */ struct mib_external_node *en = (struct mib_external_node*)mn; msg_ps->state = SNMP_MSG_EXTERNAL_GET_OBJDEF_S; /* save en && args in msg_ps!! */ msg_ps->ext_mib_node = en; msg_ps->ext_name_ptr = np; en->get_object_def_q(en->addr_inf, request_id, np.ident_len, np.ident); } else { /* internal object */ struct obj_def object_def; msg_ps->state = SNMP_MSG_INTERNAL_GET_OBJDEF_S; mn->get_object_def(np.ident_len, np.ident, &object_def); msg_ps->state = SNMP_MSG_INTERNAL_SET_VALUE; mn->set_value(&object_def,msg_ps->vb_ptr->value_len,msg_ps->vb_ptr->value); msg_ps->vb_idx += 1; } } } if ((msg_ps->state == SNMP_MSG_INTERNAL_SET_VALUE) && (msg_ps->vb_idx == msg_ps->invb.count)) { /* simply echo the input if we can set it @todo do we need to return the actual value? e.g. if value is silently modified or behaves sticky? */ msg_ps->outvb = msg_ps->invb; msg_ps->invb.head = NULL; msg_ps->invb.tail = NULL; msg_ps->invb.count = 0; snmp_ok_response(msg_ps); } } /** * Handle one internal or external event. * Called for one async event. (recv external/private answer) * * @param request_id identifies requests from 0 to (SNMP_CONCURRENT_REQUESTS-1) */ void snmp_msg_event(u8_t request_id) { struct snmp_msg_pstat *msg_ps; if (request_id < SNMP_CONCURRENT_REQUESTS) { msg_ps = &msg_input_list[request_id]; if (msg_ps->rt == SNMP_ASN1_PDU_GET_NEXT_REQ) { snmp_msg_getnext_event(request_id, msg_ps); } else if (msg_ps->rt == SNMP_ASN1_PDU_GET_REQ) { snmp_msg_get_event(request_id, msg_ps); } else if(msg_ps->rt == SNMP_ASN1_PDU_SET_REQ) { snmp_msg_set_event(request_id, msg_ps); } } } /* lwIP UDP receive callback function */ static void snmp_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port) { struct udp_hdr *udphdr; /* suppress unused argument warning */ LWIP_UNUSED_ARG(arg); /* peek in the UDP header (goto IP payload) */ if(pbuf_header(p, UDP_HLEN)){ LWIP_ASSERT("Can't move to UDP header", 0); pbuf_free(p); return; } udphdr = p->payload; /* check if datagram is really directed at us (including broadcast requests) */ if ((pcb == snmp1_pcb) && (ntohs(udphdr->dest) == SNMP_IN_PORT)) { struct snmp_msg_pstat *msg_ps; u8_t req_idx; /* traverse input message process list, look for SNMP_MSG_EMPTY */ msg_ps = &msg_input_list[0]; req_idx = 0; while ((req_idxstate != SNMP_MSG_EMPTY)) { req_idx++; msg_ps++; } if (req_idx != SNMP_CONCURRENT_REQUESTS) { err_t err_ret; u16_t payload_len; u16_t payload_ofs; u16_t varbind_ofs = 0; /* accepting request */ snmp_inc_snmpinpkts(); /* record used 'protocol control block' */ msg_ps->pcb = pcb; /* source address (network order) */ msg_ps->sip = *addr; /* source port (host order (lwIP oddity)) */ msg_ps->sp = port; /* read UDP payload length from UDP header */ payload_len = ntohs(udphdr->len) - UDP_HLEN; /* adjust to UDP payload */ payload_ofs = UDP_HLEN; /* check total length, version, community, pdu type */ err_ret = snmp_pdu_header_check(p, payload_ofs, payload_len, &varbind_ofs, msg_ps); if (((msg_ps->rt == SNMP_ASN1_PDU_GET_REQ) || (msg_ps->rt == SNMP_ASN1_PDU_GET_NEXT_REQ) || (msg_ps->rt == SNMP_ASN1_PDU_SET_REQ)) && ((msg_ps->error_status == SNMP_ES_NOERROR) && (msg_ps->error_index == 0)) ) { /* Only accept requests and requests without error (be robust) */ err_ret = err_ret; } else { /* Reject response and trap headers or error requests as input! */ err_ret = ERR_ARG; } if (err_ret == ERR_OK) { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv ok, community %s\n", msg_ps->community)); /* Builds a list of variable bindings. Copy the varbinds from the pbuf chain to glue them when these are divided over two or more pbuf's. */ err_ret = snmp_pdu_dec_varbindlist(p, varbind_ofs, &varbind_ofs, msg_ps); if ((err_ret == ERR_OK) && (msg_ps->invb.count > 0)) { /* we've decoded the incoming message, release input msg now */ pbuf_free(p); msg_ps->error_status = SNMP_ES_NOERROR; msg_ps->error_index = 0; /* find object for each variable binding */ msg_ps->state = SNMP_MSG_SEARCH_OBJ; /* first variable binding from list to inspect */ msg_ps->vb_idx = 0; LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_recv varbind cnt=%"U16_F"\n",(u16_t)msg_ps->invb.count)); /* handle input event and as much objects as possible in one go */ snmp_msg_event(req_idx); } else { /* varbind-list decode failed, or varbind list empty. drop request silently, do not return error! (errors are only returned for a specific varbind failure) */ pbuf_free(p); LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_pdu_dec_varbindlist() failed\n")); } } else { /* header check failed drop request silently, do not return error! */ pbuf_free(p); LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_pdu_header_check() failed\n")); } } else { /* exceeding number of concurrent requests */ pbuf_free(p); } } else { /* datagram not for us */ pbuf_free(p); } } /** * Checks and decodes incoming SNMP message header, logs header errors. * * @param p points to pbuf chain of SNMP message (UDP payload) * @param ofs points to first octet of SNMP message * @param pdu_len the length of the UDP payload * @param ofs_ret returns the ofset of the variable bindings * @param m_stat points to the current message request state return * @return * - ERR_OK SNMP header is sane and accepted * - ERR_ARG SNMP header is either malformed or rejected */ static err_t snmp_pdu_header_check(struct pbuf *p, u16_t ofs, u16_t pdu_len, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat) { err_t derr; u16_t len, ofs_base; u8_t len_octets; u8_t type; s32_t version; ofs_base = ofs; snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (pdu_len != (1 + len_octets + len)) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ))) { snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } ofs += (1 + len_octets); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG))) { /* can't decode or no integer (version) */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &version); if (derr != ERR_OK) { /* can't decode */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } if (version != 0) { /* not version 1 */ snmp_inc_snmpinbadversions(); return ERR_ARG; } ofs += (1 + len_octets + len); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR))) { /* can't decode or no octet string (community) */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } derr = snmp_asn1_dec_raw(p, ofs + 1 + len_octets, len, SNMP_COMMUNITY_STR_LEN, m_stat->community); if (derr != ERR_OK) { snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } /* add zero terminator */ len = ((len < (SNMP_COMMUNITY_STR_LEN))?(len):(SNMP_COMMUNITY_STR_LEN)); m_stat->community[len] = 0; m_stat->com_strlen = len; if (strncmp(snmp_publiccommunity, (const char*)m_stat->community, SNMP_COMMUNITY_STR_LEN) != 0) { /** @todo: move this if we need to check more names */ snmp_inc_snmpinbadcommunitynames(); snmp_authfail_trap(); return ERR_ARG; } ofs += (1 + len_octets + len); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if (derr != ERR_OK) { snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } switch(type) { case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_REQ): /* GetRequest PDU */ snmp_inc_snmpingetrequests(); derr = ERR_OK; break; case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_NEXT_REQ): /* GetNextRequest PDU */ snmp_inc_snmpingetnexts(); derr = ERR_OK; break; case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP): /* GetResponse PDU */ snmp_inc_snmpingetresponses(); derr = ERR_ARG; break; case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_SET_REQ): /* SetRequest PDU */ snmp_inc_snmpinsetrequests(); derr = ERR_OK; break; case (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP): /* Trap PDU */ snmp_inc_snmpintraps(); derr = ERR_ARG; break; default: snmp_inc_snmpinasnparseerrs(); derr = ERR_ARG; break; } if (derr != ERR_OK) { /* unsupported input PDU for this agent (no parse error) */ return ERR_ARG; } m_stat->rt = type & 0x1F; ofs += (1 + len_octets); if (len != (pdu_len - (ofs - ofs_base))) { /* decoded PDU length does not equal actual payload length */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG))) { /* can't decode or no integer (request ID) */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &m_stat->rid); if (derr != ERR_OK) { /* can't decode */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } ofs += (1 + len_octets + len); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG))) { /* can't decode or no integer (error-status) */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } /* must be noError (0) for incoming requests. log errors for mib-2 completeness and for debug purposes */ derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &m_stat->error_status); if (derr != ERR_OK) { /* can't decode */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } switch (m_stat->error_status) { case SNMP_ES_TOOBIG: snmp_inc_snmpintoobigs(); break; case SNMP_ES_NOSUCHNAME: snmp_inc_snmpinnosuchnames(); break; case SNMP_ES_BADVALUE: snmp_inc_snmpinbadvalues(); break; case SNMP_ES_READONLY: snmp_inc_snmpinreadonlys(); break; case SNMP_ES_GENERROR: snmp_inc_snmpingenerrs(); break; } ofs += (1 + len_octets + len); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG))) { /* can't decode or no integer (error-index) */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } /* must be 0 for incoming requests. decode anyway to catch bad integers (and dirty tricks) */ derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, &m_stat->error_index); if (derr != ERR_OK) { /* can't decode */ snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } ofs += (1 + len_octets + len); *ofs_ret = ofs; return ERR_OK; } static err_t snmp_pdu_dec_varbindlist(struct pbuf *p, u16_t ofs, u16_t *ofs_ret, struct snmp_msg_pstat *m_stat) { err_t derr; u16_t len, vb_len; u8_t len_octets; u8_t type; /* variable binding list */ snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &vb_len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ))) { snmp_inc_snmpinasnparseerrs(); return ERR_ARG; } ofs += (1 + len_octets); /* start with empty list */ m_stat->invb.count = 0; m_stat->invb.head = NULL; m_stat->invb.tail = NULL; while (vb_len > 0) { struct snmp_obj_id oid, oid_value; struct snmp_varbind *vb; snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)) || (len == 0) || (len > vb_len)) { snmp_inc_snmpinasnparseerrs(); /* free varbinds (if available) */ snmp_varbind_list_free(&m_stat->invb); return ERR_ARG; } ofs += (1 + len_octets); vb_len -= (1 + len_octets); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if ((derr != ERR_OK) || (type != (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID))) { /* can't decode object name length */ snmp_inc_snmpinasnparseerrs(); /* free varbinds (if available) */ snmp_varbind_list_free(&m_stat->invb); return ERR_ARG; } derr = snmp_asn1_dec_oid(p, ofs + 1 + len_octets, len, &oid); if (derr != ERR_OK) { /* can't decode object name */ snmp_inc_snmpinasnparseerrs(); /* free varbinds (if available) */ snmp_varbind_list_free(&m_stat->invb); return ERR_ARG; } ofs += (1 + len_octets + len); vb_len -= (1 + len_octets + len); snmp_asn1_dec_type(p, ofs, &type); derr = snmp_asn1_dec_length(p, ofs+1, &len_octets, &len); if (derr != ERR_OK) { /* can't decode object value length */ snmp_inc_snmpinasnparseerrs(); /* free varbinds (if available) */ snmp_varbind_list_free(&m_stat->invb); return ERR_ARG; } switch (type) { case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG): vb = snmp_varbind_alloc(&oid, type, sizeof(s32_t)); if (vb != NULL) { s32_t *vptr = vb->value; derr = snmp_asn1_dec_s32t(p, ofs + 1 + len_octets, len, vptr); snmp_varbind_tail_add(&m_stat->invb, vb); } else { derr = ERR_ARG; } break; case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS): vb = snmp_varbind_alloc(&oid, type, sizeof(u32_t)); if (vb != NULL) { u32_t *vptr = vb->value; derr = snmp_asn1_dec_u32t(p, ofs + 1 + len_octets, len, vptr); snmp_varbind_tail_add(&m_stat->invb, vb); } else { derr = ERR_ARG; } break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_OPAQUE): vb = snmp_varbind_alloc(&oid, type, len); if (vb != NULL) { derr = snmp_asn1_dec_raw(p, ofs + 1 + len_octets, len, vb->value_len, vb->value); snmp_varbind_tail_add(&m_stat->invb, vb); } else { derr = ERR_ARG; } break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_NUL): vb = snmp_varbind_alloc(&oid, type, 0); if (vb != NULL) { snmp_varbind_tail_add(&m_stat->invb, vb); derr = ERR_OK; } else { derr = ERR_ARG; } break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID): derr = snmp_asn1_dec_oid(p, ofs + 1 + len_octets, len, &oid_value); if (derr == ERR_OK) { vb = snmp_varbind_alloc(&oid, type, oid_value.len * sizeof(s32_t)); if (vb != NULL) { u8_t i = oid_value.len; s32_t *vptr = vb->value; while(i > 0) { i--; vptr[i] = oid_value.id[i]; } snmp_varbind_tail_add(&m_stat->invb, vb); derr = ERR_OK; } else { derr = ERR_ARG; } } break; case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR): if (len == 4) { /* must be exactly 4 octets! */ vb = snmp_varbind_alloc(&oid, type, 4); if (vb != NULL) { derr = snmp_asn1_dec_raw(p, ofs + 1 + len_octets, len, vb->value_len, vb->value); snmp_varbind_tail_add(&m_stat->invb, vb); } else { derr = ERR_ARG; } } else { derr = ERR_ARG; } break; default: derr = ERR_ARG; break; } if (derr != ERR_OK) { snmp_inc_snmpinasnparseerrs(); /* free varbinds (if available) */ snmp_varbind_list_free(&m_stat->invb); return ERR_ARG; } ofs += (1 + len_octets + len); vb_len -= (1 + len_octets + len); } if (m_stat->rt == SNMP_ASN1_PDU_SET_REQ) { snmp_add_snmpintotalsetvars(m_stat->invb.count); } else { snmp_add_snmpintotalreqvars(m_stat->invb.count); } *ofs_ret = ofs; return ERR_OK; } struct snmp_varbind* snmp_varbind_alloc(struct snmp_obj_id *oid, u8_t type, u8_t len) { struct snmp_varbind *vb; vb = (struct snmp_varbind *)mem_malloc(sizeof(struct snmp_varbind)); LWIP_ASSERT("vb != NULL",vb != NULL); if (vb != NULL) { u8_t i; vb->next = NULL; vb->prev = NULL; i = oid->len; vb->ident_len = i; if (i > 0) { /* allocate array of s32_t for our object identifier */ vb->ident = (s32_t*)mem_malloc(sizeof(s32_t) * i); LWIP_ASSERT("vb->ident != NULL",vb->ident != NULL); if (vb->ident == NULL) { mem_free(vb); return NULL; } while(i > 0) { i--; vb->ident[i] = oid->id[i]; } } else { /* i == 0, pass zero length object identifier */ vb->ident = NULL; } vb->value_type = type; vb->value_len = len; if (len > 0) { /* allocate raw bytes for our object value */ vb->value = mem_malloc(len); LWIP_ASSERT("vb->value != NULL",vb->value != NULL); if (vb->value == NULL) { if (vb->ident != NULL) { mem_free(vb->ident); } mem_free(vb); return NULL; } } else { /* ASN1_NUL type, or zero length ASN1_OC_STR */ vb->value = NULL; } } return vb; } void snmp_varbind_free(struct snmp_varbind *vb) { if (vb->value != NULL ) { mem_free(vb->value); } if (vb->ident != NULL ) { mem_free(vb->ident); } mem_free(vb); } void snmp_varbind_list_free(struct snmp_varbind_root *root) { struct snmp_varbind *vb, *prev; vb = root->tail; while ( vb != NULL ) { prev = vb->prev; snmp_varbind_free(vb); vb = prev; } root->count = 0; root->head = NULL; root->tail = NULL; } void snmp_varbind_tail_add(struct snmp_varbind_root *root, struct snmp_varbind *vb) { if (root->count == 0) { /* add first varbind to list */ root->head = vb; root->tail = vb; } else { /* add nth varbind to list tail */ root->tail->next = vb; vb->prev = root->tail; root->tail = vb; } root->count += 1; } struct snmp_varbind* snmp_varbind_tail_remove(struct snmp_varbind_root *root) { struct snmp_varbind* vb; if (root->count > 0) { /* remove tail varbind */ vb = root->tail; root->tail = vb->prev; vb->prev->next = NULL; root->count -= 1; } else { /* nothing to remove */ vb = NULL; } return vb; } #endif /* LWIP_SNMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/snmp/msg_out.c000066400000000000000000000530211224274632000236420ustar00rootroot00000000000000/** * @file * SNMP output message processing (RFC1157). * * Output responses and traps are build in two passes: * * Pass 0: iterate over the output message backwards to determine encoding lengths * Pass 1: the actual forward encoding of internal form into ASN1 * * The single-pass encoding method described by Comer & Stevens * requires extra buffer space and copying for reversal of the packet. * The buffer requirement can be prohibitively large for big payloads * (>= 484) therefore we use the two encoding passes. */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/udp.h" #include "lwip/netif.h" #include "lwip/snmp.h" #include "lwip/snmp_asn1.h" #include "lwip/snmp_msg.h" struct snmp_trap_dst { /* destination IP address in network order */ struct ip_addr dip; /* set to 0 when disabled, >0 when enabled */ u8_t enable; }; struct snmp_trap_dst trap_dst[SNMP_TRAP_DESTINATIONS]; /** TRAP message structure */ struct snmp_msg_trap trap_msg; static u16_t snmp_resp_header_sum(struct snmp_msg_pstat *m_stat, u16_t vb_len); static u16_t snmp_trap_header_sum(struct snmp_msg_trap *m_trap, u16_t vb_len); static u16_t snmp_varbind_list_sum(struct snmp_varbind_root *root); static u16_t snmp_resp_header_enc(struct snmp_msg_pstat *m_stat, struct pbuf *p); static u16_t snmp_trap_header_enc(struct snmp_msg_trap *m_trap, struct pbuf *p); static u16_t snmp_varbind_list_enc(struct snmp_varbind_root *root, struct pbuf *p, u16_t ofs); /** * Sets enable switch for this trap destination. * @param dst_idx index in 0 .. SNMP_TRAP_DESTINATIONS-1 * @param enable switch if 0 destination is disabled >0 enabled. */ void snmp_trap_dst_enable(u8_t dst_idx, u8_t enable) { if (dst_idx < SNMP_TRAP_DESTINATIONS) { trap_dst[dst_idx].enable = enable; } } /** * Sets IPv4 address for this trap destination. * @param dst_idx index in 0 .. SNMP_TRAP_DESTINATIONS-1 * @param dst IPv4 address in host order. */ void snmp_trap_dst_ip_set(u8_t dst_idx, struct ip_addr *dst) { if (dst_idx < SNMP_TRAP_DESTINATIONS) { trap_dst[dst_idx].dip.addr = htonl(dst->addr); } } /** * Sends a 'getresponse' message to the request originator. * * @param m_stat points to the current message request state source * @return ERR_OK when success, ERR_MEM if we're out of memory * * @note the caller is responsible for filling in outvb in the m_stat * and provide error-status and index (except for tooBig errors) ... */ err_t snmp_send_response(struct snmp_msg_pstat *m_stat) { struct snmp_varbind_root emptyvb = {NULL, NULL, 0, 0, 0}; struct pbuf *p; u16_t tot_len; err_t err; /* pass 0, calculate length fields */ tot_len = snmp_varbind_list_sum(&m_stat->outvb); tot_len = snmp_resp_header_sum(m_stat, tot_len); /* try allocating pbuf(s) for complete response */ p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL); if (p == NULL) { LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_snd_response() tooBig\n")); /* can't construct reply, return error-status tooBig */ m_stat->error_status = SNMP_ES_TOOBIG; m_stat->error_index = 0; /* pass 0, recalculate lengths, for empty varbind-list */ tot_len = snmp_varbind_list_sum(&emptyvb); tot_len = snmp_resp_header_sum(m_stat, tot_len); /* retry allocation once for header and empty varbind-list */ p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL); } if (p != NULL) { /* first pbuf alloc try or retry alloc success */ u16_t ofs; LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_snd_response() p != NULL\n")); /* pass 1, size error, encode packet ino the pbuf(s) */ ofs = snmp_resp_header_enc(m_stat, p); if (m_stat->error_status == SNMP_ES_TOOBIG) { snmp_varbind_list_enc(&emptyvb, p, ofs); } else { snmp_varbind_list_enc(&m_stat->outvb, p, ofs); } switch (m_stat->error_status) { case SNMP_ES_TOOBIG: snmp_inc_snmpouttoobigs(); break; case SNMP_ES_NOSUCHNAME: snmp_inc_snmpoutnosuchnames(); break; case SNMP_ES_BADVALUE: snmp_inc_snmpoutbadvalues(); break; case SNMP_ES_GENERROR: snmp_inc_snmpoutgenerrs(); break; } snmp_inc_snmpoutgetresponses(); snmp_inc_snmpoutpkts(); /** @todo do we need separate rx and tx pcbs for threaded case? */ /** connect to the originating source */ udp_connect(m_stat->pcb, &m_stat->sip, m_stat->sp); err = udp_send(m_stat->pcb, p); if (err == ERR_MEM) { /** @todo release some memory, retry and return tooBig? tooMuchHassle? */ err = ERR_MEM; } else { err = ERR_OK; } /** disassociate remote address and port with this pcb */ udp_disconnect(m_stat->pcb); pbuf_free(p); LWIP_DEBUGF(SNMP_MSG_DEBUG, ("snmp_snd_response() done\n")); return err; } else { /* first pbuf alloc try or retry alloc failed very low on memory, couldn't return tooBig */ return ERR_MEM; } } /** * Sends an generic or enterprise specific trap message. * * @param generic_trap is the trap code * @param eoid points to enterprise object identifier * @param specific_trap used for enterprise traps when generic_trap == 6 * @return ERR_OK when success, ERR_MEM if we're out of memory * * @note the caller is responsible for filling in outvb in the trap_msg * @note the use of the enterpise identifier field * is per RFC1215. * Use .iso.org.dod.internet.mgmt.mib-2.snmp for generic traps * and .iso.org.dod.internet.private.enterprises.yourenterprise * (sysObjectID) for specific traps. */ err_t snmp_send_trap(s8_t generic_trap, struct snmp_obj_id *eoid, s32_t specific_trap) { struct snmp_trap_dst *td; struct netif *dst_if; struct ip_addr dst_ip; struct pbuf *p; u16_t i,tot_len; for (i=0, td = &trap_dst[0]; ienable != 0) && (td->dip.addr != 0)) { /* network order trap destination */ trap_msg.dip.addr = td->dip.addr; /* lookup current source address for this dst */ dst_if = ip_route(&td->dip); dst_ip.addr = ntohl(dst_if->ip_addr.addr); trap_msg.sip_raw[0] = dst_ip.addr >> 24; trap_msg.sip_raw[1] = dst_ip.addr >> 16; trap_msg.sip_raw[2] = dst_ip.addr >> 8; trap_msg.sip_raw[3] = dst_ip.addr; trap_msg.gen_trap = generic_trap; trap_msg.spc_trap = specific_trap; if (generic_trap == SNMP_GENTRAP_ENTERPRISESPC) { /* enterprise-Specific trap */ trap_msg.enterprise = eoid; } else { /* generic (MIB-II) trap */ snmp_get_snmpgrpid_ptr(&trap_msg.enterprise); } snmp_get_sysuptime(&trap_msg.ts); /* pass 0, calculate length fields */ tot_len = snmp_varbind_list_sum(&trap_msg.outvb); tot_len = snmp_trap_header_sum(&trap_msg, tot_len); /* allocate pbuf(s) */ p = pbuf_alloc(PBUF_TRANSPORT, tot_len, PBUF_POOL); if (p != NULL) { u16_t ofs; /* pass 1, encode packet ino the pbuf(s) */ ofs = snmp_trap_header_enc(&trap_msg, p); snmp_varbind_list_enc(&trap_msg.outvb, p, ofs); snmp_inc_snmpouttraps(); snmp_inc_snmpoutpkts(); /** connect to the TRAP destination */ udp_connect(trap_msg.pcb, &trap_msg.dip, SNMP_TRAP_PORT); udp_send(trap_msg.pcb, p); /** disassociate remote address and port with this pcb */ udp_disconnect(trap_msg.pcb); pbuf_free(p); } else { return ERR_MEM; } } } return ERR_OK; } void snmp_coldstart_trap(void) { trap_msg.outvb.head = NULL; trap_msg.outvb.tail = NULL; trap_msg.outvb.count = 0; snmp_send_trap(SNMP_GENTRAP_COLDSTART, NULL, 0); } void snmp_authfail_trap(void) { u8_t enable; snmp_get_snmpenableauthentraps(&enable); if (enable == 1) { trap_msg.outvb.head = NULL; trap_msg.outvb.tail = NULL; trap_msg.outvb.count = 0; snmp_send_trap(SNMP_GENTRAP_AUTHFAIL, NULL, 0); } } /** * Sums response header field lengths from tail to head and * returns resp_header_lengths for second encoding pass. * * @param vb_len varbind-list length * @param rhl points to returned header lengths * @return the required lenght for encoding the response header */ static u16_t snmp_resp_header_sum(struct snmp_msg_pstat *m_stat, u16_t vb_len) { u16_t tot_len; struct snmp_resp_header_lengths *rhl; rhl = &m_stat->rhl; tot_len = vb_len; snmp_asn1_enc_s32t_cnt(m_stat->error_index, &rhl->erridxlen); snmp_asn1_enc_length_cnt(rhl->erridxlen, &rhl->erridxlenlen); tot_len += 1 + rhl->erridxlenlen + rhl->erridxlen; snmp_asn1_enc_s32t_cnt(m_stat->error_status, &rhl->errstatlen); snmp_asn1_enc_length_cnt(rhl->errstatlen, &rhl->errstatlenlen); tot_len += 1 + rhl->errstatlenlen + rhl->errstatlen; snmp_asn1_enc_s32t_cnt(m_stat->rid, &rhl->ridlen); snmp_asn1_enc_length_cnt(rhl->ridlen, &rhl->ridlenlen); tot_len += 1 + rhl->ridlenlen + rhl->ridlen; rhl->pdulen = tot_len; snmp_asn1_enc_length_cnt(rhl->pdulen, &rhl->pdulenlen); tot_len += 1 + rhl->pdulenlen; rhl->comlen = m_stat->com_strlen; snmp_asn1_enc_length_cnt(rhl->comlen, &rhl->comlenlen); tot_len += 1 + rhl->comlenlen + rhl->comlen; snmp_asn1_enc_s32t_cnt(snmp_version, &rhl->verlen); snmp_asn1_enc_length_cnt(rhl->verlen, &rhl->verlenlen); tot_len += 1 + rhl->verlen + rhl->verlenlen; rhl->seqlen = tot_len; snmp_asn1_enc_length_cnt(rhl->seqlen, &rhl->seqlenlen); tot_len += 1 + rhl->seqlenlen; return tot_len; } /** * Sums trap header field lengths from tail to head and * returns trap_header_lengths for second encoding pass. * * @param vb_len varbind-list length * @param thl points to returned header lengths * @return the required lenght for encoding the trap header */ static u16_t snmp_trap_header_sum(struct snmp_msg_trap *m_trap, u16_t vb_len) { u16_t tot_len; struct snmp_trap_header_lengths *thl; thl = &m_trap->thl; tot_len = vb_len; snmp_asn1_enc_u32t_cnt(m_trap->ts, &thl->tslen); snmp_asn1_enc_length_cnt(thl->tslen, &thl->tslenlen); tot_len += 1 + thl->tslen + thl->tslenlen; snmp_asn1_enc_s32t_cnt(m_trap->spc_trap, &thl->strplen); snmp_asn1_enc_length_cnt(thl->strplen, &thl->strplenlen); tot_len += 1 + thl->strplen + thl->strplenlen; snmp_asn1_enc_s32t_cnt(m_trap->gen_trap, &thl->gtrplen); snmp_asn1_enc_length_cnt(thl->gtrplen, &thl->gtrplenlen); tot_len += 1 + thl->gtrplen + thl->gtrplenlen; thl->aaddrlen = 4; snmp_asn1_enc_length_cnt(thl->aaddrlen, &thl->aaddrlenlen); tot_len += 1 + thl->aaddrlen + thl->aaddrlenlen; snmp_asn1_enc_oid_cnt(m_trap->enterprise->len, &m_trap->enterprise->id[0], &thl->eidlen); snmp_asn1_enc_length_cnt(thl->eidlen, &thl->eidlenlen); tot_len += 1 + thl->eidlen + thl->eidlenlen; thl->pdulen = tot_len; snmp_asn1_enc_length_cnt(thl->pdulen, &thl->pdulenlen); tot_len += 1 + thl->pdulenlen; thl->comlen = sizeof(snmp_publiccommunity) - 1; snmp_asn1_enc_length_cnt(thl->comlen, &thl->comlenlen); tot_len += 1 + thl->comlenlen + thl->comlen; snmp_asn1_enc_s32t_cnt(snmp_version, &thl->verlen); snmp_asn1_enc_length_cnt(thl->verlen, &thl->verlenlen); tot_len += 1 + thl->verlen + thl->verlenlen; thl->seqlen = tot_len; snmp_asn1_enc_length_cnt(thl->seqlen, &thl->seqlenlen); tot_len += 1 + thl->seqlenlen; return tot_len; } /** * Sums varbind lengths from tail to head and * annotates lengths in varbind for second encoding pass. * * @param root points to the root of the variable binding list * @return the required lenght for encoding the variable bindings */ static u16_t snmp_varbind_list_sum(struct snmp_varbind_root *root) { struct snmp_varbind *vb; u32_t *uint_ptr; s32_t *sint_ptr; u16_t tot_len; tot_len = 0; vb = root->tail; while ( vb != NULL ) { /* encoded value lenght depends on type */ switch (vb->value_type) { case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG): sint_ptr = vb->value; snmp_asn1_enc_s32t_cnt(*sint_ptr, &vb->vlen); break; case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS): uint_ptr = vb->value; snmp_asn1_enc_u32t_cnt(*uint_ptr, &vb->vlen); break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR): case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_NUL): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_OPAQUE): vb->vlen = vb->value_len; break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID): sint_ptr = vb->value; snmp_asn1_enc_oid_cnt(vb->value_len / sizeof(s32_t), sint_ptr, &vb->vlen); break; default: /* unsupported type */ vb->vlen = 0; break; }; /* encoding length of value length field */ snmp_asn1_enc_length_cnt(vb->vlen, &vb->vlenlen); snmp_asn1_enc_oid_cnt(vb->ident_len, vb->ident, &vb->olen); snmp_asn1_enc_length_cnt(vb->olen, &vb->olenlen); vb->seqlen = 1 + vb->vlenlen + vb->vlen; vb->seqlen += 1 + vb->olenlen + vb->olen; snmp_asn1_enc_length_cnt(vb->seqlen, &vb->seqlenlen); /* varbind seq */ tot_len += 1 + vb->seqlenlen + vb->seqlen; vb = vb->prev; } /* varbind-list seq */ root->seqlen = tot_len; snmp_asn1_enc_length_cnt(root->seqlen, &root->seqlenlen); tot_len += 1 + root->seqlenlen; return tot_len; } /** * Encodes response header from head to tail. */ static u16_t snmp_resp_header_enc(struct snmp_msg_pstat *m_stat, struct pbuf *p) { u16_t ofs; ofs = 0; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.seqlen); ofs += m_stat->rhl.seqlenlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.verlen); ofs += m_stat->rhl.verlenlen; snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.verlen, snmp_version); ofs += m_stat->rhl.verlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.comlen); ofs += m_stat->rhl.comlenlen; snmp_asn1_enc_raw(p, ofs, m_stat->rhl.comlen, m_stat->community); ofs += m_stat->rhl.comlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_GET_RESP)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.pdulen); ofs += m_stat->rhl.pdulenlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.ridlen); ofs += m_stat->rhl.ridlenlen; snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.ridlen, m_stat->rid); ofs += m_stat->rhl.ridlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.errstatlen); ofs += m_stat->rhl.errstatlenlen; snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.errstatlen, m_stat->error_status); ofs += m_stat->rhl.errstatlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_stat->rhl.erridxlen); ofs += m_stat->rhl.erridxlenlen; snmp_asn1_enc_s32t(p, ofs, m_stat->rhl.erridxlen, m_stat->error_index); ofs += m_stat->rhl.erridxlen; return ofs; } /** * Encodes trap header from head to tail. */ static u16_t snmp_trap_header_enc(struct snmp_msg_trap *m_trap, struct pbuf *p) { u16_t ofs; ofs = 0; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.seqlen); ofs += m_trap->thl.seqlenlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.verlen); ofs += m_trap->thl.verlenlen; snmp_asn1_enc_s32t(p, ofs, m_trap->thl.verlen, snmp_version); ofs += m_trap->thl.verlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.comlen); ofs += m_trap->thl.comlenlen; snmp_asn1_enc_raw(p, ofs, m_trap->thl.comlen, (u8_t *)&snmp_publiccommunity[0]); ofs += m_trap->thl.comlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_CONTXT | SNMP_ASN1_CONSTR | SNMP_ASN1_PDU_TRAP)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.pdulen); ofs += m_trap->thl.pdulenlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.eidlen); ofs += m_trap->thl.eidlenlen; snmp_asn1_enc_oid(p, ofs, m_trap->enterprise->len, &m_trap->enterprise->id[0]); ofs += m_trap->thl.eidlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.aaddrlen); ofs += m_trap->thl.aaddrlenlen; snmp_asn1_enc_raw(p, ofs, m_trap->thl.aaddrlen, &m_trap->sip_raw[0]); ofs += m_trap->thl.aaddrlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.gtrplen); ofs += m_trap->thl.gtrplenlen; snmp_asn1_enc_u32t(p, ofs, m_trap->thl.gtrplen, m_trap->gen_trap); ofs += m_trap->thl.gtrplen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.strplen); ofs += m_trap->thl.strplenlen; snmp_asn1_enc_u32t(p, ofs, m_trap->thl.strplen, m_trap->spc_trap); ofs += m_trap->thl.strplen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS)); ofs += 1; snmp_asn1_enc_length(p, ofs, m_trap->thl.tslen); ofs += m_trap->thl.tslenlen; snmp_asn1_enc_u32t(p, ofs, m_trap->thl.tslen, m_trap->ts); ofs += m_trap->thl.tslen; return ofs; } /** * Encodes varbind list from head to tail. */ static u16_t snmp_varbind_list_enc(struct snmp_varbind_root *root, struct pbuf *p, u16_t ofs) { struct snmp_varbind *vb; s32_t *sint_ptr; u32_t *uint_ptr; u8_t *raw_ptr; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)); ofs += 1; snmp_asn1_enc_length(p, ofs, root->seqlen); ofs += root->seqlenlen; vb = root->head; while ( vb != NULL ) { snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_CONSTR | SNMP_ASN1_SEQ)); ofs += 1; snmp_asn1_enc_length(p, ofs, vb->seqlen); ofs += vb->seqlenlen; snmp_asn1_enc_type(p, ofs, (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID)); ofs += 1; snmp_asn1_enc_length(p, ofs, vb->olen); ofs += vb->olenlen; snmp_asn1_enc_oid(p, ofs, vb->ident_len, &vb->ident[0]); ofs += vb->olen; snmp_asn1_enc_type(p, ofs, vb->value_type); ofs += 1; snmp_asn1_enc_length(p, ofs, vb->vlen); ofs += vb->vlenlen; switch (vb->value_type) { case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_INTEG): sint_ptr = vb->value; snmp_asn1_enc_s32t(p, ofs, vb->vlen, *sint_ptr); break; case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_COUNTER): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_GAUGE): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_TIMETICKS): uint_ptr = vb->value; snmp_asn1_enc_u32t(p, ofs, vb->vlen, *uint_ptr); break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OC_STR): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_IPADDR): case (SNMP_ASN1_APPLIC | SNMP_ASN1_PRIMIT | SNMP_ASN1_OPAQUE): raw_ptr = vb->value; snmp_asn1_enc_raw(p, ofs, vb->vlen, raw_ptr); break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_NUL): break; case (SNMP_ASN1_UNIV | SNMP_ASN1_PRIMIT | SNMP_ASN1_OBJ_ID): sint_ptr = vb->value; snmp_asn1_enc_oid(p, ofs, vb->value_len / sizeof(s32_t), sint_ptr); break; default: /* unsupported type */ break; }; ofs += vb->vlen; vb = vb->next; } return ofs; } #endif /* LWIP_SNMP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/stats.c000066400000000000000000000124011224274632000223430ustar00rootroot00000000000000/** * @file * Statistics module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_STATS /* don't build if not configured for use in lwipopts.h */ #include "lwip/def.h" #include "lwip/stats.h" #include "lwip/mem.h" #include struct stats_ lwip_stats; #if LWIP_STATS_DISPLAY void stats_display_proto(struct stats_proto *proto, char *name) { LWIP_PLATFORM_DIAG(("\n%s\n\t", name)); LWIP_PLATFORM_DIAG(("xmit: %"STAT_COUNTER_F"\n\t", proto->xmit)); LWIP_PLATFORM_DIAG(("recv: %"STAT_COUNTER_F"\n\t", proto->recv)); LWIP_PLATFORM_DIAG(("fw: %"STAT_COUNTER_F"\n\t", proto->fw)); LWIP_PLATFORM_DIAG(("drop: %"STAT_COUNTER_F"\n\t", proto->drop)); LWIP_PLATFORM_DIAG(("chkerr: %"STAT_COUNTER_F"\n\t", proto->chkerr)); LWIP_PLATFORM_DIAG(("lenerr: %"STAT_COUNTER_F"\n\t", proto->lenerr)); LWIP_PLATFORM_DIAG(("memerr: %"STAT_COUNTER_F"\n\t", proto->memerr)); LWIP_PLATFORM_DIAG(("rterr: %"STAT_COUNTER_F"\n\t", proto->rterr)); LWIP_PLATFORM_DIAG(("proterr: %"STAT_COUNTER_F"\n\t", proto->proterr)); LWIP_PLATFORM_DIAG(("opterr: %"STAT_COUNTER_F"\n\t", proto->opterr)); LWIP_PLATFORM_DIAG(("err: %"STAT_COUNTER_F"\n\t", proto->err)); LWIP_PLATFORM_DIAG(("cachehit: %"STAT_COUNTER_F"\n", proto->cachehit)); } #if IGMP_STATS void stats_display_igmp(struct stats_igmp *igmp) { LWIP_PLATFORM_DIAG(("\nIGMP\n\t")); LWIP_PLATFORM_DIAG(("lenerr: %"STAT_COUNTER_F"\n\t", igmp->lenerr)); LWIP_PLATFORM_DIAG(("chkerr: %"STAT_COUNTER_F"\n\t", igmp->chkerr)); LWIP_PLATFORM_DIAG(("v1_rxed: %"STAT_COUNTER_F"\n\t", igmp->v1_rxed)); LWIP_PLATFORM_DIAG(("join_sent: %"STAT_COUNTER_F"\n\t", igmp->join_sent)); LWIP_PLATFORM_DIAG(("leave_sent: %"STAT_COUNTER_F"\n\t", igmp->leave_sent)); LWIP_PLATFORM_DIAG(("unicast_query: %"STAT_COUNTER_F"\n\t", igmp->unicast_query)); LWIP_PLATFORM_DIAG(("report_sent: %"STAT_COUNTER_F"\n\t", igmp->report_sent)); LWIP_PLATFORM_DIAG(("report_rxed: %"STAT_COUNTER_F"\n\t", igmp->report_rxed)); LWIP_PLATFORM_DIAG(("group_query_rxed: %"STAT_COUNTER_F"\n", igmp->group_query_rxed)); } #endif /* IGMP_STATS */ #if MEM_STATS || MEMP_STATS void stats_display_mem(struct stats_mem *mem, char *name) { LWIP_PLATFORM_DIAG(("\nMEM %s\n\t", name)); LWIP_PLATFORM_DIAG(("avail: %"U32_F"\n\t", (u32_t)mem->avail)); LWIP_PLATFORM_DIAG(("used: %"U32_F"\n\t", (u32_t)mem->used)); LWIP_PLATFORM_DIAG(("max: %"U32_F"\n\t", (u32_t)mem->max)); LWIP_PLATFORM_DIAG(("err: %"U32_F"\n", (u32_t)mem->err)); } #if MEMP_STATS void stats_display_memp(struct stats_mem *mem, int index) { char * memp_names[] = { #define LWIP_MEMPOOL(name,num,size,desc) desc, #include "lwip/memp_std.h" }; if(index < MEMP_MAX) { stats_display_mem(mem, memp_names[index]); } } #endif /* MEMP_STATS */ #endif /* MEM_STATS || MEMP_STATS */ #if SYS_STATS void stats_display_sys(struct stats_sys *sys) { LWIP_PLATFORM_DIAG(("\nSYS\n\t")); LWIP_PLATFORM_DIAG(("sem.used: %"U32_F"\n\t", (u32_t)sys->sem.used)); LWIP_PLATFORM_DIAG(("sem.max: %"U32_F"\n\t", (u32_t)sys->sem.max)); LWIP_PLATFORM_DIAG(("sem.err: %"U32_F"\n\t", (u32_t)sys->sem.err)); LWIP_PLATFORM_DIAG(("mbox.used: %"U32_F"\n\t", (u32_t)sys->mbox.used)); LWIP_PLATFORM_DIAG(("mbox.max: %"U32_F"\n\t", (u32_t)sys->mbox.max)); LWIP_PLATFORM_DIAG(("mbox.err: %"U32_F"\n\t", (u32_t)sys->mbox.err)); } #endif /* SYS_STATS */ void stats_display(void) { s16_t i; LINK_STATS_DISPLAY(); ETHARP_STATS_DISPLAY(); IPFRAG_STATS_DISPLAY(); IP_STATS_DISPLAY(); IGMP_STATS_DISPLAY(); ICMP_STATS_DISPLAY(); UDP_STATS_DISPLAY(); TCP_STATS_DISPLAY(); MEM_STATS_DISPLAY(); for (i = 0; i < MEMP_MAX; i++) { MEMP_STATS_DISPLAY(i); } SYS_STATS_DISPLAY(); } #endif /* LWIP_STATS_DISPLAY */ #endif /* LWIP_STATS */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/sys.c000066400000000000000000000227201224274632000220300ustar00rootroot00000000000000/** * @file * lwIP Operating System abstraction * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if (NO_SYS == 0) /* don't build if not configured for use in lwipopts.h */ #include "lwip/sys.h" #include "lwip/def.h" #include "lwip/memp.h" #include "lwip/tcpip.h" /** * Struct used for sys_sem_wait_timeout() to tell wether the time * has run out or the semaphore has really become available. */ struct sswt_cb { s16_t timeflag; sys_sem_t *psem; }; /** * Wait (forever) for a message to arrive in an mbox. * While waiting, timeouts (for this thread) are processed. * * @param mbox the mbox to fetch the message from * @param msg the place to store the message */ void sys_mbox_fetch(sys_mbox_t mbox, void **msg) { u32_t time_needed; struct sys_timeouts *timeouts; struct sys_timeo *tmptimeout; sys_timeout_handler h; void *arg; again: timeouts = sys_arch_timeouts(); if (!timeouts || !timeouts->next) { UNLOCK_TCPIP_CORE(); time_needed = sys_arch_mbox_fetch(mbox, msg, 0); LOCK_TCPIP_CORE(); } else { if (timeouts->next->time > 0) { UNLOCK_TCPIP_CORE(); time_needed = sys_arch_mbox_fetch(mbox, msg, timeouts->next->time); LOCK_TCPIP_CORE(); } else { time_needed = SYS_ARCH_TIMEOUT; } if (time_needed == SYS_ARCH_TIMEOUT) { /* If time == SYS_ARCH_TIMEOUT, a timeout occured before a message could be fetched. We should now call the timeout handler and deallocate the memory allocated for the timeout. */ tmptimeout = timeouts->next; timeouts->next = tmptimeout->next; h = tmptimeout->h; arg = tmptimeout->arg; memp_free(MEMP_SYS_TIMEOUT, tmptimeout); if (h != NULL) { LWIP_DEBUGF(SYS_DEBUG, ("smf calling h=%p(%p)\n", (void*)&h, arg)); h(arg); } /* We try again to fetch a message from the mbox. */ goto again; } else { /* If time != SYS_ARCH_TIMEOUT, a message was received before the timeout occured. The time variable is set to the number of milliseconds we waited for the message. */ if (time_needed < timeouts->next->time) { timeouts->next->time -= time_needed; } else { timeouts->next->time = 0; } } } } /** * Wait (forever) for a semaphore to become available. * While waiting, timeouts (for this thread) are processed. * * @param sem semaphore to wait for */ void sys_sem_wait(sys_sem_t sem) { u32_t time_needed; struct sys_timeouts *timeouts; struct sys_timeo *tmptimeout; sys_timeout_handler h; void *arg; again: timeouts = sys_arch_timeouts(); if (!timeouts || !timeouts->next) { sys_arch_sem_wait(sem, 0); } else { if (timeouts->next->time > 0) { time_needed = sys_arch_sem_wait(sem, timeouts->next->time); } else { time_needed = SYS_ARCH_TIMEOUT; } if (time_needed == SYS_ARCH_TIMEOUT) { /* If time == SYS_ARCH_TIMEOUT, a timeout occured before a message could be fetched. We should now call the timeout handler and deallocate the memory allocated for the timeout. */ tmptimeout = timeouts->next; timeouts->next = tmptimeout->next; h = tmptimeout->h; arg = tmptimeout->arg; memp_free(MEMP_SYS_TIMEOUT, tmptimeout); if (h != NULL) { LWIP_DEBUGF(SYS_DEBUG, ("ssw h=%p(%p)\n", (void*)&h, (void *)arg)); h(arg); } /* We try again to fetch a message from the mbox. */ goto again; } else { /* If time != SYS_ARCH_TIMEOUT, a message was received before the timeout occured. The time variable is set to the number of milliseconds we waited for the message. */ if (time_needed < timeouts->next->time) { timeouts->next->time -= time_needed; } else { timeouts->next->time = 0; } } } } /** * Create a one-shot timer (aka timeout). Timeouts are processed in the * following cases: * - while waiting for a message using sys_mbox_fetch() * - while waiting for a semaphore using sys_sem_wait() or sys_sem_wait_timeout() * - while sleeping using the inbuilt sys_msleep() * * @param msecs time in milliseconds after that the timer should expire * @param h callback function to call when msecs have elapsed * @param arg argument to pass to the callback function */ void sys_timeout(u32_t msecs, sys_timeout_handler h, void *arg) { struct sys_timeouts *timeouts; struct sys_timeo *timeout, *t; timeout = memp_malloc(MEMP_SYS_TIMEOUT); if (timeout == NULL) { LWIP_ASSERT("sys_timeout: timeout != NULL", timeout != NULL); return; } timeout->next = NULL; timeout->h = h; timeout->arg = arg; timeout->time = msecs; timeouts = sys_arch_timeouts(); LWIP_DEBUGF(SYS_DEBUG, ("sys_timeout: %p msecs=%"U32_F" h=%p arg=%p\n", (void *)timeout, msecs, (void*)&h, (void *)arg)); if (timeouts == NULL) { LWIP_ASSERT("sys_timeout: timeouts != NULL", timeouts != NULL); return; } if (timeouts->next == NULL) { timeouts->next = timeout; return; } if (timeouts->next->time > msecs) { timeouts->next->time -= msecs; timeout->next = timeouts->next; timeouts->next = timeout; } else { for(t = timeouts->next; t != NULL; t = t->next) { timeout->time -= t->time; if (t->next == NULL || t->next->time > timeout->time) { if (t->next != NULL) { t->next->time -= timeout->time; } timeout->next = t->next; t->next = timeout; break; } } } } /** * Go through timeout list (for this task only) and remove the first matching * entry, even though the timeout has not triggered yet. * * @note This function only works as expected if there is only one timeout * calling 'h' in the list of timeouts. * * @param h callback function that would be called by the timeout * @param arg callback argument that would be passed to h */ void sys_untimeout(sys_timeout_handler h, void *arg) { struct sys_timeouts *timeouts; struct sys_timeo *prev_t, *t; timeouts = sys_arch_timeouts(); if (timeouts == NULL) { LWIP_ASSERT("sys_untimeout: timeouts != NULL", timeouts != NULL); return; } if (timeouts->next == NULL) { return; } for (t = timeouts->next, prev_t = NULL; t != NULL; prev_t = t, t = t->next) { if ((t->h == h) && (t->arg == arg)) { /* We have a match */ /* Unlink from previous in list */ if (prev_t == NULL) timeouts->next = t->next; else prev_t->next = t->next; /* If not the last one, add time of this one back to next */ if (t->next != NULL) t->next->time += t->time; memp_free(MEMP_SYS_TIMEOUT, t); return; } } return; } /** * Timeout handler function for sys_sem_wait_timeout() * * @param arg struct sswt_cb* used to signal a semaphore and end waiting. */ static void sswt_handler(void *arg) { struct sswt_cb *sswt_cb = (struct sswt_cb *) arg; /* Timeout. Set flag to TRUE and signal semaphore */ sswt_cb->timeflag = 1; sys_sem_signal(*(sswt_cb->psem)); } /** * Wait for a semaphore with timeout (specified in ms) * * @param sem semaphore to wait * @param timeout timeout in ms (0: wait forever) * @return 0 on timeout, 1 otherwise */ int sys_sem_wait_timeout(sys_sem_t sem, u32_t timeout) { struct sswt_cb sswt_cb; sswt_cb.psem = &sem; sswt_cb.timeflag = 0; /* If timeout is zero, then just wait forever */ if (timeout > 0) { /* Create a timer and pass it the address of our flag */ sys_timeout(timeout, sswt_handler, &sswt_cb); } sys_sem_wait(sem); /* Was it a timeout? */ if (sswt_cb.timeflag) { /* timeout */ return 0; } else { /* Not a timeout. Remove timeout entry */ sys_untimeout(sswt_handler, &sswt_cb); return 1; } } /** * Sleep for some ms. Timeouts are processed while sleeping. * * @param ms number of milliseconds to sleep */ void sys_msleep(u32_t ms) { sys_sem_t delaysem = sys_sem_new(0); sys_sem_wait_timeout(delaysem, ms); sys_sem_free(delaysem); } #endif /* NO_SYS */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/tcp.c000066400000000000000000001246641224274632000220120ustar00rootroot00000000000000/** * @file * Transmission Control Protocol for IP * * This file contains common functions for the TCP implementation, such as functinos * for manipulating the data structures and the TCP timer functions. TCP functions * related to input and output is found in tcp_in.c and tcp_out.c respectively. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/memp.h" #include "lwip/snmp.h" #include "lwip/tcp.h" #include "lwip/debug.h" #include /* Incremented every coarse grained timer shot (typically every 500 ms). */ u32_t tcp_ticks; const u8_t tcp_backoff[13] = { 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7}; /* Times per slowtmr hits */ const u8_t tcp_persist_backoff[7] = { 3, 6, 12, 24, 48, 96, 120 }; /* The TCP PCB lists. */ /** List of all TCP PCBs bound but not yet (connected || listening) */ struct tcp_pcb *tcp_bound_pcbs; /** List of all TCP PCBs in LISTEN state */ union tcp_listen_pcbs_t tcp_listen_pcbs; /** List of all TCP PCBs that are in a state in which * they accept or send data. */ struct tcp_pcb *tcp_active_pcbs; /** List of all TCP PCBs in TIME-WAIT state */ struct tcp_pcb *tcp_tw_pcbs; struct tcp_pcb *tcp_tmp_pcb; static u8_t tcp_timer; static u16_t tcp_new_port(void); /** * Called periodically to dispatch TCP timers. * */ void tcp_tmr(void) { /* Call tcp_fasttmr() every 250 ms */ tcp_fasttmr(); if (++tcp_timer & 1) { /* Call tcp_tmr() every 500 ms, i.e., every other timer tcp_tmr() is called. */ tcp_slowtmr(); } } /** * Closes the connection held by the PCB. * * Listening pcbs are freed and may not be referenced any more. * Connection pcbs are freed if not yet connected and may not be referenced * any more. If a connection is established (at least SYN received or in * a closing state), the connection is closed, and put in a closing state. * The pcb is then automatically freed in tcp_slowtmr(). It is therefore * unsafe to reference it. * * @param pcb the tcp_pcb to close * @return ERR_OK if connection has been closed * another err_t if closing failed and pcb is not freed */ err_t tcp_close(struct tcp_pcb *pcb) { err_t err; #if TCP_DEBUG LWIP_DEBUGF(TCP_DEBUG, ("tcp_close: closing in ")); tcp_debug_print_state(pcb->state); #endif /* TCP_DEBUG */ switch (pcb->state) { case CLOSED: /* Closing a pcb in the CLOSED state might seem erroneous, * however, it is in this state once allocated and as yet unused * and the user needs some way to free it should the need arise. * Calling tcp_close() with a pcb that has already been closed, (i.e. twice) * or for a pcb that has been used and then entered the CLOSED state * is erroneous, but this should never happen as the pcb has in those cases * been freed, and so any remaining handles are bogus. */ err = ERR_OK; TCP_RMV(&tcp_bound_pcbs, pcb); memp_free(MEMP_TCP_PCB, pcb); pcb = NULL; break; case LISTEN: err = ERR_OK; tcp_pcb_remove((struct tcp_pcb **)&tcp_listen_pcbs.pcbs, pcb); memp_free(MEMP_TCP_PCB_LISTEN, pcb); pcb = NULL; break; case SYN_SENT: err = ERR_OK; tcp_pcb_remove(&tcp_active_pcbs, pcb); memp_free(MEMP_TCP_PCB, pcb); pcb = NULL; snmp_inc_tcpattemptfails(); break; case SYN_RCVD: err = tcp_send_ctrl(pcb, TCP_FIN); if (err == ERR_OK) { snmp_inc_tcpattemptfails(); pcb->state = FIN_WAIT_1; } break; case ESTABLISHED: err = tcp_send_ctrl(pcb, TCP_FIN); if (err == ERR_OK) { snmp_inc_tcpestabresets(); pcb->state = FIN_WAIT_1; } break; case CLOSE_WAIT: err = tcp_send_ctrl(pcb, TCP_FIN); if (err == ERR_OK) { snmp_inc_tcpestabresets(); pcb->state = LAST_ACK; } break; default: /* Has already been closed, do nothing. */ err = ERR_OK; pcb = NULL; break; } if (pcb != NULL && err == ERR_OK) { /* To ensure all data has been sent when tcp_close returns, we have to make sure tcp_output doesn't fail. Since we don't really have to ensure all data has been sent when tcp_close returns (unsent data is sent from tcp timer functions, also), we don't care for the return value of tcp_output for now. */ /* @todo: When implementing SO_LINGER, this must be changed somehow: If SOF_LINGER is set, the data should be sent when tcp_close returns. */ tcp_output(pcb); } return err; } /** * Abandons a connection and optionally sends a RST to the remote * host. Deletes the local protocol control block. This is done when * a connection is killed because of shortage of memory. * * @param pcb the tcp_pcb to abort * @param reset boolean to indicate whether a reset should be sent */ void tcp_abandon(struct tcp_pcb *pcb, int reset) { u32_t seqno, ackno; u16_t remote_port, local_port; struct ip_addr remote_ip, local_ip; #if LWIP_CALLBACK_API void (* errf)(void *arg, err_t err); #endif /* LWIP_CALLBACK_API */ void *errf_arg; /* Figure out on which TCP PCB list we are, and remove us. If we are in an active state, call the receive function associated with the PCB with a NULL argument, and send an RST to the remote end. */ if (pcb->state == TIME_WAIT) { tcp_pcb_remove(&tcp_tw_pcbs, pcb); memp_free(MEMP_TCP_PCB, pcb); } else { seqno = pcb->snd_nxt; ackno = pcb->rcv_nxt; ip_addr_set(&local_ip, &(pcb->local_ip)); ip_addr_set(&remote_ip, &(pcb->remote_ip)); local_port = pcb->local_port; remote_port = pcb->remote_port; #if LWIP_CALLBACK_API errf = pcb->errf; #endif /* LWIP_CALLBACK_API */ errf_arg = pcb->callback_arg; tcp_pcb_remove(&tcp_active_pcbs, pcb); if (pcb->unacked != NULL) { tcp_segs_free(pcb->unacked); } if (pcb->unsent != NULL) { tcp_segs_free(pcb->unsent); } #if TCP_QUEUE_OOSEQ if (pcb->ooseq != NULL) { tcp_segs_free(pcb->ooseq); } #endif /* TCP_QUEUE_OOSEQ */ memp_free(MEMP_TCP_PCB, pcb); TCP_EVENT_ERR(errf, errf_arg, ERR_ABRT); if (reset) { LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_abandon: sending RST\n")); tcp_rst(seqno, ackno, &local_ip, &remote_ip, local_port, remote_port); } } } /** * Binds the connection to a local portnumber and IP address. If the * IP address is not given (i.e., ipaddr == NULL), the IP address of * the outgoing network interface is used instead. * * @param pcb the tcp_pcb to bind (no check is done whether this pcb is * already bound!) * @param ipaddr the local ip address to bind to (use IP_ADDR_ANY to bind * to any local address * @param port the local port to bind to * @return ERR_USE if the port is already in use * ERR_OK if bound */ err_t tcp_bind(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port) { struct tcp_pcb *cpcb; LWIP_ERROR("tcp_bind: can only bind in state CLOSED", pcb->state == CLOSED, return ERR_ISCONN); if (port == 0) { port = tcp_new_port(); } /* Check if the address already is in use. */ /* Check the listen pcbs. */ for(cpcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; cpcb != NULL; cpcb = cpcb->next) { if (cpcb->local_port == port) { if (ip_addr_isany(&(cpcb->local_ip)) || ip_addr_isany(ipaddr) || ip_addr_cmp(&(cpcb->local_ip), ipaddr)) { return ERR_USE; } } } /* Check the connected pcbs. */ for(cpcb = tcp_active_pcbs; cpcb != NULL; cpcb = cpcb->next) { if (cpcb->local_port == port) { if (ip_addr_isany(&(cpcb->local_ip)) || ip_addr_isany(ipaddr) || ip_addr_cmp(&(cpcb->local_ip), ipaddr)) { return ERR_USE; } } } /* Check the bound, not yet connected pcbs. */ for(cpcb = tcp_bound_pcbs; cpcb != NULL; cpcb = cpcb->next) { if (cpcb->local_port == port) { if (ip_addr_isany(&(cpcb->local_ip)) || ip_addr_isany(ipaddr) || ip_addr_cmp(&(cpcb->local_ip), ipaddr)) { return ERR_USE; } } } /* @todo: until SO_REUSEADDR is implemented (see task #6995 on savannah), * we have to check the pcbs in TIME-WAIT state, also: */ for(cpcb = tcp_tw_pcbs; cpcb != NULL; cpcb = cpcb->next) { if (cpcb->local_port == port) { if (ip_addr_cmp(&(cpcb->local_ip), ipaddr)) { return ERR_USE; } } } if (!ip_addr_isany(ipaddr)) { pcb->local_ip = *ipaddr; } pcb->local_port = port; TCP_REG(&tcp_bound_pcbs, pcb); LWIP_DEBUGF(TCP_DEBUG, ("tcp_bind: bind to port %"U16_F"\n", port)); return ERR_OK; } #if LWIP_CALLBACK_API /** * Default accept callback if no accept callback is specified by the user. */ static err_t tcp_accept_null(void *arg, struct tcp_pcb *pcb, err_t err) { LWIP_UNUSED_ARG(arg); LWIP_UNUSED_ARG(pcb); LWIP_UNUSED_ARG(err); return ERR_ABRT; } #endif /* LWIP_CALLBACK_API */ /** * Set the state of the connection to be LISTEN, which means that it * is able to accept incoming connections. The protocol control block * is reallocated in order to consume less memory. Setting the * connection to LISTEN is an irreversible process. * * @param pcb the original tcp_pcb * @param backlog the incoming connections queue limit * @return tcp_pcb used for listening, consumes less memory. * * @note The original tcp_pcb is freed. This function therefore has to be * called like this: * tpcb = tcp_listen(tpcb); */ struct tcp_pcb * tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog) { struct tcp_pcb_listen *lpcb; LWIP_UNUSED_ARG(backlog); LWIP_ERROR("tcp_listen: pcb already connected", pcb->state == CLOSED, return NULL); /* already listening? */ if (pcb->state == LISTEN) { return pcb; } lpcb = memp_malloc(MEMP_TCP_PCB_LISTEN); if (lpcb == NULL) { return NULL; } lpcb->callback_arg = pcb->callback_arg; lpcb->local_port = pcb->local_port; lpcb->state = LISTEN; lpcb->so_options = pcb->so_options; lpcb->so_options |= SOF_ACCEPTCONN; lpcb->ttl = pcb->ttl; lpcb->tos = pcb->tos; ip_addr_set(&lpcb->local_ip, &pcb->local_ip); TCP_RMV(&tcp_bound_pcbs, pcb); memp_free(MEMP_TCP_PCB, pcb); #if LWIP_CALLBACK_API lpcb->accept = tcp_accept_null; #endif /* LWIP_CALLBACK_API */ #if TCP_LISTEN_BACKLOG lpcb->accepts_pending = 0; lpcb->backlog = (backlog ? backlog : 1); #endif /* TCP_LISTEN_BACKLOG */ TCP_REG(&tcp_listen_pcbs.listen_pcbs, lpcb); return (struct tcp_pcb *)lpcb; } /** * Update the state that tracks the available window space to advertise. * * Returns how much extra window would be advertised if we sent an * update now. */ u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb) { u32_t new_right_edge = pcb->rcv_nxt + pcb->rcv_wnd; if (TCP_SEQ_GEQ(new_right_edge, pcb->rcv_ann_right_edge + pcb->mss)) { /* we can advertise more window */ pcb->rcv_ann_wnd = pcb->rcv_wnd; return new_right_edge - pcb->rcv_ann_right_edge; } else { if (TCP_SEQ_GT(pcb->rcv_nxt, pcb->rcv_ann_right_edge)) { /* Can happen due to other end sending out of advertised window, * but within actual available (but not yet advertised) window */ pcb->rcv_ann_wnd = 0; } else { /* keep the right edge of window constant */ pcb->rcv_ann_wnd = pcb->rcv_ann_right_edge - pcb->rcv_nxt; } return 0; } } /** * This function should be called by the application when it has * processed the data. The purpose is to advertise a larger window * when the data has been processed. * * @param pcb the tcp_pcb for which data is read * @param len the amount of bytes that have been read by the application */ void tcp_recved(struct tcp_pcb *pcb, u16_t len) { int wnd_inflation; LWIP_ASSERT("tcp_recved: len would wrap rcv_wnd\n", len <= 0xffff - pcb->rcv_wnd ); pcb->rcv_wnd += len; if (pcb->rcv_wnd > TCP_WND) pcb->rcv_wnd = TCP_WND; wnd_inflation = tcp_update_rcv_ann_wnd(pcb); /* If the change in the right edge of window is significant (default * watermark is TCP_WND/2), then send an explicit update now. * Otherwise wait for a packet to be sent in the normal course of * events (or more window to be available later) */ if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD) tcp_ack_now(pcb); LWIP_DEBUGF(TCP_DEBUG, ("tcp_recved: recveived %"U16_F" bytes, wnd %"U16_F" (%"U16_F").\n", len, pcb->rcv_wnd, TCP_WND - pcb->rcv_wnd)); } /** * A nastly hack featuring 'goto' statements that allocates a * new TCP local port. * * @return a new (free) local TCP port number */ static u16_t tcp_new_port(void) { struct tcp_pcb *pcb; #ifndef TCP_LOCAL_PORT_RANGE_START #define TCP_LOCAL_PORT_RANGE_START 4096 #define TCP_LOCAL_PORT_RANGE_END 0x7fff #endif static u16_t port = TCP_LOCAL_PORT_RANGE_START; again: if (++port > TCP_LOCAL_PORT_RANGE_END) { port = TCP_LOCAL_PORT_RANGE_START; } for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { if (pcb->local_port == port) { goto again; } } for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { if (pcb->local_port == port) { goto again; } } for(pcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; pcb != NULL; pcb = pcb->next) { if (pcb->local_port == port) { goto again; } } return port; } /** * Connects to another host. The function given as the "connected" * argument will be called when the connection has been established. * * @param pcb the tcp_pcb used to establish the connection * @param ipaddr the remote ip address to connect to * @param port the remote tcp port to connect to * @param connected callback function to call when connected (or on error) * @return ERR_VAL if invalid arguments are given * ERR_OK if connect request has been sent * other err_t values if connect request couldn't be sent */ err_t tcp_connect(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port, err_t (* connected)(void *arg, struct tcp_pcb *tpcb, err_t err)) { err_t ret; u32_t iss; LWIP_ERROR("tcp_connect: can only connected from state CLOSED", pcb->state == CLOSED, return ERR_ISCONN); LWIP_DEBUGF(TCP_DEBUG, ("tcp_connect to port %"U16_F"\n", port)); if (ipaddr != NULL) { pcb->remote_ip = *ipaddr; } else { return ERR_VAL; } pcb->remote_port = port; if (pcb->local_port == 0) { pcb->local_port = tcp_new_port(); } iss = tcp_next_iss(); pcb->rcv_nxt = 0; pcb->snd_nxt = iss; pcb->lastack = iss - 1; pcb->snd_lbb = iss - 1; pcb->rcv_wnd = TCP_WND; pcb->rcv_ann_wnd = TCP_WND; pcb->rcv_ann_right_edge = pcb->rcv_nxt; pcb->snd_wnd = TCP_WND; /* As initial send MSS, we use TCP_MSS but limit it to 536. The send MSS is updated when an MSS option is received. */ pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS; #if TCP_CALCULATE_EFF_SEND_MSS pcb->mss = tcp_eff_send_mss(pcb->mss, ipaddr); #endif /* TCP_CALCULATE_EFF_SEND_MSS */ pcb->cwnd = 1; pcb->ssthresh = pcb->mss * 10; pcb->state = SYN_SENT; #if LWIP_CALLBACK_API pcb->connected = connected; #endif /* LWIP_CALLBACK_API */ TCP_RMV(&tcp_bound_pcbs, pcb); TCP_REG(&tcp_active_pcbs, pcb); snmp_inc_tcpactiveopens(); ret = tcp_enqueue(pcb, NULL, 0, TCP_SYN, 0, TF_SEG_OPTS_MSS #if LWIP_TCP_TIMESTAMPS | TF_SEG_OPTS_TS #endif ); if (ret == ERR_OK) { tcp_output(pcb); } return ret; } /** * Called every 500 ms and implements the retransmission timer and the timer that * removes PCBs that have been in TIME-WAIT for enough time. It also increments * various timers such as the inactivity timer in each PCB. * * Automatically called from tcp_tmr(). */ void tcp_slowtmr(void) { struct tcp_pcb *pcb, *pcb2, *prev; u16_t eff_wnd; u8_t pcb_remove; /* flag if a PCB should be removed */ err_t err; err = ERR_OK; ++tcp_ticks; /* Steps through all of the active PCBs. */ prev = NULL; pcb = tcp_active_pcbs; if (pcb == NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbs\n")); } while (pcb != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcb\n")); LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSED\n", pcb->state != CLOSED); LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTEN\n", pcb->state != LISTEN); LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAIT\n", pcb->state != TIME_WAIT); pcb_remove = 0; if (pcb->state == SYN_SENT && pcb->nrtx == TCP_SYNMAXRTX) { ++pcb_remove; LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max SYN retries reached\n")); } else if (pcb->nrtx == TCP_MAXRTX) { ++pcb_remove; LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max DATA retries reached\n")); } else { if (pcb->persist_backoff > 0) { /* If snd_wnd is zero, use persist timer to send 1 byte probes * instead of using the standard retransmission mechanism. */ pcb->persist_cnt++; if (pcb->persist_cnt >= tcp_persist_backoff[pcb->persist_backoff-1]) { pcb->persist_cnt = 0; if (pcb->persist_backoff < sizeof(tcp_persist_backoff)) { pcb->persist_backoff++; } tcp_zero_window_probe(pcb); } } else { /* Increase the retransmission timer if it is running */ if(pcb->rtime >= 0) ++pcb->rtime; if (pcb->unacked != NULL && pcb->rtime >= pcb->rto) { /* Time for a retransmission. */ LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_slowtmr: rtime %"S16_F " pcb->rto %"S16_F"\n", pcb->rtime, pcb->rto)); /* Double retransmission time-out unless we are trying to * connect to somebody (i.e., we are in SYN_SENT). */ if (pcb->state != SYN_SENT) { pcb->rto = ((pcb->sa >> 3) + pcb->sv) << tcp_backoff[pcb->nrtx]; } /* Reset the retransmission timer. */ pcb->rtime = 0; /* Reduce congestion window and ssthresh. */ eff_wnd = LWIP_MIN(pcb->cwnd, pcb->snd_wnd); pcb->ssthresh = eff_wnd >> 1; if (pcb->ssthresh < pcb->mss) { pcb->ssthresh = pcb->mss * 2; } pcb->cwnd = pcb->mss; LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: cwnd %"U16_F " ssthresh %"U16_F"\n", pcb->cwnd, pcb->ssthresh)); /* The following needs to be called AFTER cwnd is set to one mss - STJ */ tcp_rexmit_rto(pcb); } } } /* Check if this PCB has stayed too long in FIN-WAIT-2 */ if (pcb->state == FIN_WAIT_2) { if ((u32_t)(tcp_ticks - pcb->tmr) > TCP_FIN_WAIT_TIMEOUT / TCP_SLOW_INTERVAL) { ++pcb_remove; LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in FIN-WAIT-2\n")); } } /* Check if KEEPALIVE should be sent */ if((pcb->so_options & SOF_KEEPALIVE) && ((pcb->state == ESTABLISHED) || (pcb->state == CLOSE_WAIT))) { #if LWIP_TCP_KEEPALIVE if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keep_idle + (pcb->keep_cnt*pcb->keep_intvl)) / TCP_SLOW_INTERVAL) #else if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keep_idle + TCP_MAXIDLE) / TCP_SLOW_INTERVAL) #endif /* LWIP_TCP_KEEPALIVE */ { LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: KEEPALIVE timeout. Aborting connection to %"U16_F".%"U16_F".%"U16_F".%"U16_F".\n", ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip), ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip))); tcp_abort(pcb); } #if LWIP_TCP_KEEPALIVE else if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keep_idle + pcb->keep_cnt_sent * pcb->keep_intvl) / TCP_SLOW_INTERVAL) #else else if((u32_t)(tcp_ticks - pcb->tmr) > (pcb->keep_idle + pcb->keep_cnt_sent * TCP_KEEPINTVL_DEFAULT) / TCP_SLOW_INTERVAL) #endif /* LWIP_TCP_KEEPALIVE */ { tcp_keepalive(pcb); pcb->keep_cnt_sent++; } } /* If this PCB has queued out of sequence data, but has been inactive for too long, will drop the data (it will eventually be retransmitted). */ #if TCP_QUEUE_OOSEQ if (pcb->ooseq != NULL && (u32_t)tcp_ticks - pcb->tmr >= pcb->rto * TCP_OOSEQ_TIMEOUT) { tcp_segs_free(pcb->ooseq); pcb->ooseq = NULL; LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_slowtmr: dropping OOSEQ queued data\n")); } #endif /* TCP_QUEUE_OOSEQ */ /* Check if this PCB has stayed too long in SYN-RCVD */ if (pcb->state == SYN_RCVD) { if ((u32_t)(tcp_ticks - pcb->tmr) > TCP_SYN_RCVD_TIMEOUT / TCP_SLOW_INTERVAL) { ++pcb_remove; LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in SYN-RCVD\n")); } } /* Check if this PCB has stayed too long in LAST-ACK */ if (pcb->state == LAST_ACK) { if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) { ++pcb_remove; LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: removing pcb stuck in LAST-ACK\n")); } } /* If the PCB should be removed, do it. */ if (pcb_remove) { tcp_pcb_purge(pcb); /* Remove PCB from tcp_active_pcbs list. */ if (prev != NULL) { LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_active_pcbs", pcb != tcp_active_pcbs); prev->next = pcb->next; } else { /* This PCB was the first. */ LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_active_pcbs", tcp_active_pcbs == pcb); tcp_active_pcbs = pcb->next; } TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_ABRT); pcb2 = pcb->next; memp_free(MEMP_TCP_PCB, pcb); pcb = pcb2; } else { /* We check if we should poll the connection. */ ++pcb->polltmr; if (pcb->polltmr >= pcb->pollinterval) { pcb->polltmr = 0; LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: polling application\n")); TCP_EVENT_POLL(pcb, err); if (err == ERR_OK) { tcp_output(pcb); } } prev = pcb; pcb = pcb->next; } } /* Steps through all of the TIME-WAIT PCBs. */ prev = NULL; pcb = tcp_tw_pcbs; while (pcb != NULL) { LWIP_ASSERT("tcp_slowtmr: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT); pcb_remove = 0; /* Check if this PCB has stayed long enough in TIME-WAIT */ if ((u32_t)(tcp_ticks - pcb->tmr) > 2 * TCP_MSL / TCP_SLOW_INTERVAL) { ++pcb_remove; } /* If the PCB should be removed, do it. */ if (pcb_remove) { tcp_pcb_purge(pcb); /* Remove PCB from tcp_tw_pcbs list. */ if (prev != NULL) { LWIP_ASSERT("tcp_slowtmr: middle tcp != tcp_tw_pcbs", pcb != tcp_tw_pcbs); prev->next = pcb->next; } else { /* This PCB was the first. */ LWIP_ASSERT("tcp_slowtmr: first pcb == tcp_tw_pcbs", tcp_tw_pcbs == pcb); tcp_tw_pcbs = pcb->next; } pcb2 = pcb->next; memp_free(MEMP_TCP_PCB, pcb); pcb = pcb2; } else { prev = pcb; pcb = pcb->next; } } } /** * Is called every TCP_FAST_INTERVAL (250 ms) and process data previously * "refused" by upper layer (application) and sends delayed ACKs. * * Automatically called from tcp_tmr(). */ void tcp_fasttmr(void) { struct tcp_pcb *pcb; for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { /* If there is data which was previously "refused" by upper layer */ if (pcb->refused_data != NULL) { /* Notify again application with data previously received. */ err_t err; LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_fasttmr: notify kept packet\n")); TCP_EVENT_RECV(pcb, pcb->refused_data, ERR_OK, err); if (err == ERR_OK) { pcb->refused_data = NULL; } } /* send delayed ACKs */ if (pcb->flags & TF_ACK_DELAY) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: delayed ACK\n")); tcp_ack_now(pcb); pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW); } } } /** * Deallocates a list of TCP segments (tcp_seg structures). * * @param seg tcp_seg list of TCP segments to free * @return the number of pbufs that were deallocated */ u8_t tcp_segs_free(struct tcp_seg *seg) { u8_t count = 0; struct tcp_seg *next; while (seg != NULL) { next = seg->next; count += tcp_seg_free(seg); seg = next; } return count; } /** * Frees a TCP segment (tcp_seg structure). * * @param seg single tcp_seg to free * @return the number of pbufs that were deallocated */ u8_t tcp_seg_free(struct tcp_seg *seg) { u8_t count = 0; if (seg != NULL) { if (seg->p != NULL) { count = pbuf_free(seg->p); #if TCP_DEBUG seg->p = NULL; #endif /* TCP_DEBUG */ } memp_free(MEMP_TCP_SEG, seg); } return count; } /** * Sets the priority of a connection. * * @param pcb the tcp_pcb to manipulate * @param prio new priority */ void tcp_setprio(struct tcp_pcb *pcb, u8_t prio) { pcb->prio = prio; } #if TCP_QUEUE_OOSEQ /** * Returns a copy of the given TCP segment. * The pbuf and data are not copied, only the pointers * * @param seg the old tcp_seg * @return a copy of seg */ struct tcp_seg * tcp_seg_copy(struct tcp_seg *seg) { struct tcp_seg *cseg; cseg = memp_malloc(MEMP_TCP_SEG); if (cseg == NULL) { return NULL; } SMEMCPY((u8_t *)cseg, (const u8_t *)seg, sizeof(struct tcp_seg)); pbuf_ref(cseg->p); return cseg; } #endif #if LWIP_CALLBACK_API /** * Default receive callback that is called if the user didn't register * a recv callback for the pcb. */ static err_t tcp_recv_null(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) { arg = arg; if (p != NULL) { pbuf_free(p); } else if (err == ERR_OK) { return tcp_close(pcb); } return ERR_OK; } #endif /* LWIP_CALLBACK_API */ /** * Kills the oldest active connection that has lower priority than prio. * * @param prio minimum priority */ static void tcp_kill_prio(u8_t prio) { struct tcp_pcb *pcb, *inactive; u32_t inactivity; u8_t mprio; mprio = TCP_PRIO_MAX; /* We kill the oldest active connection that has lower priority than prio. */ inactivity = 0; inactive = NULL; for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { if (pcb->prio <= prio && pcb->prio <= mprio && (u32_t)(tcp_ticks - pcb->tmr) >= inactivity) { inactivity = tcp_ticks - pcb->tmr; inactive = pcb; mprio = pcb->prio; } } if (inactive != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_prio: killing oldest PCB %p (%"S32_F")\n", (void *)inactive, inactivity)); tcp_abort(inactive); } } /** * Kills the oldest connection that is in TIME_WAIT state. * Called from tcp_alloc() if no more connections are available. */ static void tcp_kill_timewait(void) { struct tcp_pcb *pcb, *inactive; u32_t inactivity; inactivity = 0; inactive = NULL; /* Go through the list of TIME_WAIT pcbs and get the oldest pcb. */ for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { if ((u32_t)(tcp_ticks - pcb->tmr) >= inactivity) { inactivity = tcp_ticks - pcb->tmr; inactive = pcb; } } if (inactive != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_kill_timewait: killing oldest TIME-WAIT PCB %p (%"S32_F")\n", (void *)inactive, inactivity)); tcp_abort(inactive); } } /** * Allocate a new tcp_pcb structure. * * @param prio priority for the new pcb * @return a new tcp_pcb that initially is in state CLOSED */ struct tcp_pcb * tcp_alloc(u8_t prio) { struct tcp_pcb *pcb; u32_t iss; pcb = memp_malloc(MEMP_TCP_PCB); if (pcb == NULL) { /* Try killing oldest connection in TIME-WAIT. */ LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: killing off oldest TIME-WAIT connection\n")); tcp_kill_timewait(); /* Try to allocate a tcp_pcb again. */ pcb = memp_malloc(MEMP_TCP_PCB); if (pcb == NULL) { /* Try killing active connections with lower priority than the new one. */ tcp_kill_prio(prio); /* Try to allocate a tcp_pcb again. */ pcb = memp_malloc(MEMP_TCP_PCB); } } if (pcb != NULL) { memset(pcb, 0, sizeof(struct tcp_pcb)); pcb->prio = TCP_PRIO_NORMAL; pcb->snd_buf = TCP_SND_BUF; pcb->snd_queuelen = 0; pcb->rcv_wnd = TCP_WND; pcb->rcv_ann_wnd = TCP_WND; pcb->tos = 0; pcb->ttl = TCP_TTL; /* As initial send MSS, we use TCP_MSS but limit it to 536. The send MSS is updated when an MSS option is received. */ pcb->mss = (TCP_MSS > 536) ? 536 : TCP_MSS; pcb->rto = 3000 / TCP_SLOW_INTERVAL; pcb->sa = 0; pcb->sv = 3000 / TCP_SLOW_INTERVAL; pcb->rtime = -1; pcb->cwnd = 1; iss = tcp_next_iss(); pcb->snd_wl2 = iss; pcb->snd_nxt = iss; pcb->lastack = iss; pcb->snd_lbb = iss; pcb->tmr = tcp_ticks; pcb->polltmr = 0; #if LWIP_CALLBACK_API pcb->recv = tcp_recv_null; #endif /* LWIP_CALLBACK_API */ /* Init KEEPALIVE timer */ pcb->keep_idle = TCP_KEEPIDLE_DEFAULT; #if LWIP_TCP_KEEPALIVE pcb->keep_intvl = TCP_KEEPINTVL_DEFAULT; pcb->keep_cnt = TCP_KEEPCNT_DEFAULT; #endif /* LWIP_TCP_KEEPALIVE */ pcb->keep_cnt_sent = 0; } return pcb; } /** * Creates a new TCP protocol control block but doesn't place it on * any of the TCP PCB lists. * The pcb is not put on any list until binding using tcp_bind(). * * @internal: Maybe there should be a idle TCP PCB list where these * PCBs are put on. Port reservation using tcp_bind() is implemented but * allocated pcbs that are not bound can't be killed automatically if wanting * to allocate a pcb with higher prio (@see tcp_kill_prio()) * * @return a new tcp_pcb that initially is in state CLOSED */ struct tcp_pcb * tcp_new(void) { return tcp_alloc(TCP_PRIO_NORMAL); } /** * Used to specify the argument that should be passed callback * functions. * * @param pcb tcp_pcb to set the callback argument * @param arg void pointer argument to pass to callback functions */ void tcp_arg(struct tcp_pcb *pcb, void *arg) { pcb->callback_arg = arg; } #if LWIP_CALLBACK_API /** * Used to specify the function that should be called when a TCP * connection receives data. * * @param pcb tcp_pcb to set the recv callback * @param recv callback function to call for this pcb when data is received */ void tcp_recv(struct tcp_pcb *pcb, err_t (* recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)) { pcb->recv = recv; } /** * Used to specify the function that should be called when TCP data * has been successfully delivered to the remote host. * * @param pcb tcp_pcb to set the sent callback * @param sent callback function to call for this pcb when data is successfully sent */ void tcp_sent(struct tcp_pcb *pcb, err_t (* sent)(void *arg, struct tcp_pcb *tpcb, u16_t len)) { pcb->sent = sent; } /** * Used to specify the function that should be called when a fatal error * has occured on the connection. * * @param pcb tcp_pcb to set the err callback * @param errf callback function to call for this pcb when a fatal error * has occured on the connection */ void tcp_err(struct tcp_pcb *pcb, void (* errf)(void *arg, err_t err)) { pcb->errf = errf; } /** * Used for specifying the function that should be called when a * LISTENing connection has been connected to another host. * * @param pcb tcp_pcb to set the accept callback * @param accept callback function to call for this pcb when LISTENing * connection has been connected to another host */ void tcp_accept(struct tcp_pcb *pcb, err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err)) { pcb->accept = accept; } #endif /* LWIP_CALLBACK_API */ /** * Used to specify the function that should be called periodically * from TCP. The interval is specified in terms of the TCP coarse * timer interval, which is called twice a second. * */ void tcp_poll(struct tcp_pcb *pcb, err_t (* poll)(void *arg, struct tcp_pcb *tpcb), u8_t interval) { #if LWIP_CALLBACK_API pcb->poll = poll; #endif /* LWIP_CALLBACK_API */ pcb->pollinterval = interval; } /** * Purges a TCP PCB. Removes any buffered data and frees the buffer memory * (pcb->ooseq, pcb->unsent and pcb->unacked are freed). * * @param pcb tcp_pcb to purge. The pcb itself is not deallocated! */ void tcp_pcb_purge(struct tcp_pcb *pcb) { if (pcb->state != CLOSED && pcb->state != TIME_WAIT && pcb->state != LISTEN) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge\n")); #if TCP_LISTEN_BACKLOG if (pcb->state == SYN_RCVD) { /* Need to find the corresponding listen_pcb and decrease its accepts_pending */ struct tcp_pcb_listen *lpcb; LWIP_ASSERT("tcp_pcb_purge: pcb->state == SYN_RCVD but tcp_listen_pcbs is NULL", tcp_listen_pcbs.listen_pcbs != NULL); for (lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { if ((lpcb->local_port == pcb->local_port) && (ip_addr_isany(&lpcb->local_ip) || ip_addr_cmp(&pcb->local_ip, &lpcb->local_ip))) { /* port and address of the listen pcb match the timed-out pcb */ LWIP_ASSERT("tcp_pcb_purge: listen pcb does not have accepts pending", lpcb->accepts_pending > 0); lpcb->accepts_pending--; break; } } } #endif /* TCP_LISTEN_BACKLOG */ if (pcb->refused_data != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->refused_data\n")); pbuf_free(pcb->refused_data); pcb->refused_data = NULL; } if (pcb->unsent != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: not all data sent\n")); } if (pcb->unacked != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->unacked\n")); } #if TCP_QUEUE_OOSEQ /* LW */ if (pcb->ooseq != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_pcb_purge: data left on ->ooseq\n")); } /* Stop the retransmission timer as it will expect data on unacked queue if it fires */ pcb->rtime = -1; tcp_segs_free(pcb->ooseq); pcb->ooseq = NULL; #endif /* TCP_QUEUE_OOSEQ */ tcp_segs_free(pcb->unsent); tcp_segs_free(pcb->unacked); pcb->unacked = pcb->unsent = NULL; } } /** * Purges the PCB and removes it from a PCB list. Any delayed ACKs are sent first. * * @param pcblist PCB list to purge. * @param pcb tcp_pcb to purge. The pcb itself is also deallocated! */ void tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb) { TCP_RMV(pcblist, pcb); tcp_pcb_purge(pcb); /* if there is an outstanding delayed ACKs, send it */ if (pcb->state != TIME_WAIT && pcb->state != LISTEN && pcb->flags & TF_ACK_DELAY) { pcb->flags |= TF_ACK_NOW; tcp_output(pcb); } if (pcb->state != LISTEN) { LWIP_ASSERT("unsent segments leaking", pcb->unsent == NULL); LWIP_ASSERT("unacked segments leaking", pcb->unacked == NULL); #if TCP_QUEUE_OOSEQ LWIP_ASSERT("ooseq segments leaking", pcb->ooseq == NULL); #endif /* TCP_QUEUE_OOSEQ */ } pcb->state = CLOSED; LWIP_ASSERT("tcp_pcb_remove: tcp_pcbs_sane()", tcp_pcbs_sane()); } /** * Calculates a new initial sequence number for new connections. * * @return u32_t pseudo random sequence number */ u32_t tcp_next_iss(void) { static u32_t iss = 6510; iss += tcp_ticks; /* XXX */ return iss; } #if TCP_CALCULATE_EFF_SEND_MSS /** * Calcluates the effective send mss that can be used for a specific IP address * by using ip_route to determin the netif used to send to the address and * calculating the minimum of TCP_MSS and that netif's mtu (if set). */ u16_t tcp_eff_send_mss(u16_t sendmss, struct ip_addr *addr) { u16_t mss_s; struct netif *outif; outif = ip_route(addr); if ((outif != NULL) && (outif->mtu != 0)) { mss_s = outif->mtu - IP_HLEN - TCP_HLEN; /* RFC 1122, chap 4.2.2.6: * Eff.snd.MSS = min(SendMSS+20, MMS_S) - TCPhdrsize - IPoptionsize * We correct for TCP options in tcp_enqueue(), and don't support * IP options */ sendmss = LWIP_MIN(sendmss, mss_s); } return sendmss; } #endif /* TCP_CALCULATE_EFF_SEND_MSS */ #if TCP_DEBUG || TCP_INPUT_DEBUG || TCP_OUTPUT_DEBUG /** * Print a tcp header for debugging purposes. * * @param tcphdr pointer to a struct tcp_hdr */ void tcp_debug_print(struct tcp_hdr *tcphdr) { LWIP_DEBUGF(TCP_DEBUG, ("TCP header:\n")); LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(TCP_DEBUG, ("| %5"U16_F" | %5"U16_F" | (src port, dest port)\n", ntohs(tcphdr->src), ntohs(tcphdr->dest))); LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(TCP_DEBUG, ("| %010"U32_F" | (seq no)\n", ntohl(tcphdr->seqno))); LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(TCP_DEBUG, ("| %010"U32_F" | (ack no)\n", ntohl(tcphdr->ackno))); LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(TCP_DEBUG, ("| %2"U16_F" | |%"U16_F"%"U16_F"%"U16_F"%"U16_F"%"U16_F"%"U16_F"| %5"U16_F" | (hdrlen, flags (", TCPH_HDRLEN(tcphdr), TCPH_FLAGS(tcphdr) >> 5 & 1, TCPH_FLAGS(tcphdr) >> 4 & 1, TCPH_FLAGS(tcphdr) >> 3 & 1, TCPH_FLAGS(tcphdr) >> 2 & 1, TCPH_FLAGS(tcphdr) >> 1 & 1, TCPH_FLAGS(tcphdr) & 1, ntohs(tcphdr->wnd))); tcp_debug_print_flags(TCPH_FLAGS(tcphdr)); LWIP_DEBUGF(TCP_DEBUG, ("), win)\n")); LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(TCP_DEBUG, ("| 0x%04"X16_F" | %5"U16_F" | (chksum, urgp)\n", ntohs(tcphdr->chksum), ntohs(tcphdr->urgp))); LWIP_DEBUGF(TCP_DEBUG, ("+-------------------------------+\n")); } /** * Print a tcp state for debugging purposes. * * @param s enum tcp_state to print */ void tcp_debug_print_state(enum tcp_state s) { LWIP_DEBUGF(TCP_DEBUG, ("State: ")); switch (s) { case CLOSED: LWIP_DEBUGF(TCP_DEBUG, ("CLOSED\n")); break; case LISTEN: LWIP_DEBUGF(TCP_DEBUG, ("LISTEN\n")); break; case SYN_SENT: LWIP_DEBUGF(TCP_DEBUG, ("SYN_SENT\n")); break; case SYN_RCVD: LWIP_DEBUGF(TCP_DEBUG, ("SYN_RCVD\n")); break; case ESTABLISHED: LWIP_DEBUGF(TCP_DEBUG, ("ESTABLISHED\n")); break; case FIN_WAIT_1: LWIP_DEBUGF(TCP_DEBUG, ("FIN_WAIT_1\n")); break; case FIN_WAIT_2: LWIP_DEBUGF(TCP_DEBUG, ("FIN_WAIT_2\n")); break; case CLOSE_WAIT: LWIP_DEBUGF(TCP_DEBUG, ("CLOSE_WAIT\n")); break; case CLOSING: LWIP_DEBUGF(TCP_DEBUG, ("CLOSING\n")); break; case LAST_ACK: LWIP_DEBUGF(TCP_DEBUG, ("LAST_ACK\n")); break; case TIME_WAIT: LWIP_DEBUGF(TCP_DEBUG, ("TIME_WAIT\n")); break; } } /** * Print tcp flags for debugging purposes. * * @param flags tcp flags, all active flags are printed */ void tcp_debug_print_flags(u8_t flags) { if (flags & TCP_FIN) { LWIP_DEBUGF(TCP_DEBUG, ("FIN ")); } if (flags & TCP_SYN) { LWIP_DEBUGF(TCP_DEBUG, ("SYN ")); } if (flags & TCP_RST) { LWIP_DEBUGF(TCP_DEBUG, ("RST ")); } if (flags & TCP_PSH) { LWIP_DEBUGF(TCP_DEBUG, ("PSH ")); } if (flags & TCP_ACK) { LWIP_DEBUGF(TCP_DEBUG, ("ACK ")); } if (flags & TCP_URG) { LWIP_DEBUGF(TCP_DEBUG, ("URG ")); } if (flags & TCP_ECE) { LWIP_DEBUGF(TCP_DEBUG, ("ECE ")); } if (flags & TCP_CWR) { LWIP_DEBUGF(TCP_DEBUG, ("CWR ")); } LWIP_DEBUGF(TCP_DEBUG, ("\n")); } /** * Print all tcp_pcbs in every list for debugging purposes. */ void tcp_debug_print_pcbs(void) { struct tcp_pcb *pcb; LWIP_DEBUGF(TCP_DEBUG, ("Active PCB states:\n")); for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", pcb->local_port, pcb->remote_port, pcb->snd_nxt, pcb->rcv_nxt)); tcp_debug_print_state(pcb->state); } LWIP_DEBUGF(TCP_DEBUG, ("Listen PCB states:\n")); for(pcb = (struct tcp_pcb *)tcp_listen_pcbs.pcbs; pcb != NULL; pcb = pcb->next) { LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", pcb->local_port, pcb->remote_port, pcb->snd_nxt, pcb->rcv_nxt)); tcp_debug_print_state(pcb->state); } LWIP_DEBUGF(TCP_DEBUG, ("TIME-WAIT PCB states:\n")); for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_DEBUGF(TCP_DEBUG, ("Local port %"U16_F", foreign port %"U16_F" snd_nxt %"U32_F" rcv_nxt %"U32_F" ", pcb->local_port, pcb->remote_port, pcb->snd_nxt, pcb->rcv_nxt)); tcp_debug_print_state(pcb->state); } } /** * Check state consistency of the tcp_pcb lists. */ s16_t tcp_pcbs_sane(void) { struct tcp_pcb *pcb; for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != CLOSED", pcb->state != CLOSED); LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != LISTEN", pcb->state != LISTEN); LWIP_ASSERT("tcp_pcbs_sane: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT); } for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_ASSERT("tcp_pcbs_sane: tw pcb->state == TIME-WAIT", pcb->state == TIME_WAIT); } return 1; } #endif /* TCP_DEBUG */ #endif /* LWIP_TCP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/tcp_in.c000066400000000000000000001475721224274632000225030ustar00rootroot00000000000000/** * @file * Transmission Control Protocol, incoming traffic * * The input processing functions of the TCP layer. * * These functions are generally called in the order (ip_input() ->) * tcp_input() -> * tcp_process() -> tcp_receive() (-> application). * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ #include "lwip/tcp.h" #include "lwip/def.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/mem.h" #include "lwip/memp.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include "arch/perf.h" /* These variables are global to all functions involved in the input processing of TCP segments. They are set by the tcp_input() function. */ static struct tcp_seg inseg; static struct tcp_hdr *tcphdr; static struct ip_hdr *iphdr; static u32_t seqno, ackno; static u8_t flags; static u16_t tcplen; static u8_t recv_flags; static struct pbuf *recv_data; struct tcp_pcb *tcp_input_pcb; /* Forward declarations. */ static err_t tcp_process(struct tcp_pcb *pcb); static u8_t tcp_receive(struct tcp_pcb *pcb); static void tcp_parseopt(struct tcp_pcb *pcb); static err_t tcp_listen_input(struct tcp_pcb_listen *pcb); static err_t tcp_timewait_input(struct tcp_pcb *pcb); /** * The initial input processing of TCP. It verifies the TCP header, demultiplexes * the segment between the PCBs and passes it on to tcp_process(), which implements * the TCP finite state machine. This function is called by the IP layer (in * ip_input()). * * @param p received TCP segment to process (p->payload pointing to the IP header) * @param inp network interface on which this segment was received */ void tcp_input(struct pbuf *p, struct netif *inp) { struct tcp_pcb *pcb, *prev; struct tcp_pcb_listen *lpcb; u8_t hdrlen; err_t err; PERF_START; TCP_STATS_INC(tcp.recv); snmp_inc_tcpinsegs(); iphdr = p->payload; tcphdr = (struct tcp_hdr *)((u8_t *)p->payload + IPH_HL(iphdr) * 4); #if TCP_INPUT_DEBUG tcp_debug_print(tcphdr); #endif /* remove header from payload */ if (pbuf_header(p, -((s16_t)(IPH_HL(iphdr) * 4))) || (p->tot_len < sizeof(struct tcp_hdr))) { /* drop short packets */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: short packet (%"U16_F" bytes) discarded\n", p->tot_len)); TCP_STATS_INC(tcp.lenerr); TCP_STATS_INC(tcp.drop); snmp_inc_tcpinerrs(); pbuf_free(p); return; } /* Don't even process incoming broadcasts/multicasts. */ if (ip_addr_isbroadcast(&(iphdr->dest), inp) || ip_addr_ismulticast(&(iphdr->dest))) { TCP_STATS_INC(tcp.proterr); TCP_STATS_INC(tcp.drop); snmp_inc_tcpinerrs(); pbuf_free(p); return; } #if CHECKSUM_CHECK_TCP /* Verify TCP checksum. */ if (inet_chksum_pseudo(p, (struct ip_addr *)&(iphdr->src), (struct ip_addr *)&(iphdr->dest), IP_PROTO_TCP, p->tot_len) != 0) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packet discarded due to failing checksum 0x%04"X16_F"\n", inet_chksum_pseudo(p, (struct ip_addr *)&(iphdr->src), (struct ip_addr *)&(iphdr->dest), IP_PROTO_TCP, p->tot_len))); #if TCP_DEBUG tcp_debug_print(tcphdr); #endif /* TCP_DEBUG */ TCP_STATS_INC(tcp.chkerr); TCP_STATS_INC(tcp.drop); snmp_inc_tcpinerrs(); pbuf_free(p); return; } #endif /* Move the payload pointer in the pbuf so that it points to the TCP data instead of the TCP header. */ hdrlen = TCPH_HDRLEN(tcphdr); if(pbuf_header(p, -(hdrlen * 4))){ /* drop short packets */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: short packet\n")); TCP_STATS_INC(tcp.lenerr); TCP_STATS_INC(tcp.drop); snmp_inc_tcpinerrs(); pbuf_free(p); return; } /* Convert fields in TCP header to host byte order. */ tcphdr->src = ntohs(tcphdr->src); tcphdr->dest = ntohs(tcphdr->dest); seqno = tcphdr->seqno = ntohl(tcphdr->seqno); ackno = tcphdr->ackno = ntohl(tcphdr->ackno); tcphdr->wnd = ntohs(tcphdr->wnd); flags = TCPH_FLAGS(tcphdr); tcplen = p->tot_len + ((flags & (TCP_FIN | TCP_SYN)) ? 1 : 0); /* Demultiplex an incoming segment. First, we check if it is destined for an active connection. */ prev = NULL; for(pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_ASSERT("tcp_input: active pcb->state != CLOSED", pcb->state != CLOSED); LWIP_ASSERT("tcp_input: active pcb->state != TIME-WAIT", pcb->state != TIME_WAIT); LWIP_ASSERT("tcp_input: active pcb->state != LISTEN", pcb->state != LISTEN); if (pcb->remote_port == tcphdr->src && pcb->local_port == tcphdr->dest && ip_addr_cmp(&(pcb->remote_ip), &(iphdr->src)) && ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest))) { /* Move this PCB to the front of the list so that subsequent lookups will be faster (we exploit locality in TCP segment arrivals). */ LWIP_ASSERT("tcp_input: pcb->next != pcb (before cache)", pcb->next != pcb); if (prev != NULL) { prev->next = pcb->next; pcb->next = tcp_active_pcbs; tcp_active_pcbs = pcb; } LWIP_ASSERT("tcp_input: pcb->next != pcb (after cache)", pcb->next != pcb); break; } prev = pcb; } if (pcb == NULL) { /* If it did not go to an active connection, we check the connections in the TIME-WAIT state. */ for(pcb = tcp_tw_pcbs; pcb != NULL; pcb = pcb->next) { LWIP_ASSERT("tcp_input: TIME-WAIT pcb->state == TIME-WAIT", pcb->state == TIME_WAIT); if (pcb->remote_port == tcphdr->src && pcb->local_port == tcphdr->dest && ip_addr_cmp(&(pcb->remote_ip), &(iphdr->src)) && ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest))) { /* We don't really care enough to move this PCB to the front of the list since we are not very likely to receive that many segments for connections in TIME-WAIT. */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for TIME_WAITing connection.\n")); tcp_timewait_input(pcb); pbuf_free(p); return; } } /* Finally, if we still did not get a match, we check all PCBs that are LISTENing for incoming connections. */ prev = NULL; for(lpcb = tcp_listen_pcbs.listen_pcbs; lpcb != NULL; lpcb = lpcb->next) { if ((ip_addr_isany(&(lpcb->local_ip)) || ip_addr_cmp(&(lpcb->local_ip), &(iphdr->dest))) && lpcb->local_port == tcphdr->dest) { /* Move this PCB to the front of the list so that subsequent lookups will be faster (we exploit locality in TCP segment arrivals). */ if (prev != NULL) { ((struct tcp_pcb_listen *)prev)->next = lpcb->next; /* our successor is the remainder of the listening list */ lpcb->next = tcp_listen_pcbs.listen_pcbs; /* put this listening pcb at the head of the listening list */ tcp_listen_pcbs.listen_pcbs = lpcb; } LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: packed for LISTENing connection.\n")); tcp_listen_input(lpcb); pbuf_free(p); return; } prev = (struct tcp_pcb *)lpcb; } } #if TCP_INPUT_DEBUG LWIP_DEBUGF(TCP_INPUT_DEBUG, ("+-+-+-+-+-+-+-+-+-+-+-+-+-+- tcp_input: flags ")); tcp_debug_print_flags(TCPH_FLAGS(tcphdr)); LWIP_DEBUGF(TCP_INPUT_DEBUG, ("-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n")); #endif /* TCP_INPUT_DEBUG */ if (pcb != NULL) { /* The incoming segment belongs to a connection. */ #if TCP_INPUT_DEBUG #if TCP_DEBUG tcp_debug_print_state(pcb->state); #endif /* TCP_DEBUG */ #endif /* TCP_INPUT_DEBUG */ /* Set up a tcp_seg structure. */ inseg.next = NULL; inseg.len = p->tot_len; inseg.dataptr = p->payload; inseg.p = p; inseg.tcphdr = tcphdr; recv_data = NULL; recv_flags = 0; /* If there is data which was previously "refused" by upper layer */ if (pcb->refused_data != NULL) { /* Notify again application with data previously received. */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: notify kept packet\n")); TCP_EVENT_RECV(pcb, pcb->refused_data, ERR_OK, err); if (err == ERR_OK) { pcb->refused_data = NULL; } else { /* drop incoming packets, because pcb is "full" */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: drop incoming packets, because pcb is \"full\"\n")); TCP_STATS_INC(tcp.drop); snmp_inc_tcpinerrs(); pbuf_free(p); return; } } tcp_input_pcb = pcb; err = tcp_process(pcb); tcp_input_pcb = NULL; /* A return value of ERR_ABRT means that tcp_abort() was called and that the pcb has been freed. If so, we don't do anything. */ if (err != ERR_ABRT) { if (recv_flags & TF_RESET) { /* TF_RESET means that the connection was reset by the other end. We then call the error callback to inform the application that the connection is dead before we deallocate the PCB. */ TCP_EVENT_ERR(pcb->errf, pcb->callback_arg, ERR_RST); tcp_pcb_remove(&tcp_active_pcbs, pcb); memp_free(MEMP_TCP_PCB, pcb); } else if (recv_flags & TF_CLOSED) { /* The connection has been closed and we will deallocate the PCB. */ tcp_pcb_remove(&tcp_active_pcbs, pcb); memp_free(MEMP_TCP_PCB, pcb); } else { err = ERR_OK; /* If the application has registered a "sent" function to be called when new send buffer space is available, we call it now. */ if (pcb->acked > 0) { TCP_EVENT_SENT(pcb, pcb->acked, err); } if (recv_data != NULL) { if(flags & TCP_PSH) { recv_data->flags |= PBUF_FLAG_PUSH; } /* Notify application that data has been received. */ TCP_EVENT_RECV(pcb, recv_data, ERR_OK, err); /* If the upper layer can't receive this data, store it */ if (err != ERR_OK) { pcb->refused_data = recv_data; LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_input: keep incoming packet, because pcb is \"full\"\n")); } } /* If a FIN segment was received, we call the callback function with a NULL buffer to indicate EOF. */ if (recv_flags & TF_GOT_FIN) { TCP_EVENT_RECV(pcb, NULL, ERR_OK, err); } /* If there were no errors, we try to send something out. */ if (err == ERR_OK) { tcp_output(pcb); } } } /* give up our reference to inseg.p */ if (inseg.p != NULL) { pbuf_free(inseg.p); inseg.p = NULL; } #if TCP_INPUT_DEBUG #if TCP_DEBUG tcp_debug_print_state(pcb->state); #endif /* TCP_DEBUG */ #endif /* TCP_INPUT_DEBUG */ } else { /* If no matching PCB was found, send a TCP RST (reset) to the sender. */ LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_input: no PCB match found, resetting.\n")); if (!(TCPH_FLAGS(tcphdr) & TCP_RST)) { TCP_STATS_INC(tcp.proterr); TCP_STATS_INC(tcp.drop); tcp_rst(ackno, seqno + tcplen, &(iphdr->dest), &(iphdr->src), tcphdr->dest, tcphdr->src); } pbuf_free(p); } LWIP_ASSERT("tcp_input: tcp_pcbs_sane()", tcp_pcbs_sane()); PERF_STOP("tcp_input"); } /** * Called by tcp_input() when a segment arrives for a listening * connection (from tcp_input()). * * @param pcb the tcp_pcb_listen for which a segment arrived * @return ERR_OK if the segment was processed * another err_t on error * * @note the return value is not (yet?) used in tcp_input() * @note the segment which arrived is saved in global variables, therefore only the pcb * involved is passed as a parameter to this function */ static err_t tcp_listen_input(struct tcp_pcb_listen *pcb) { struct tcp_pcb *npcb; err_t rc; /* In the LISTEN state, we check for incoming SYN segments, creates a new PCB, and responds with a SYN|ACK. */ if (flags & TCP_ACK) { /* For incoming segments with the ACK flag set, respond with a RST. */ LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_listen_input: ACK in LISTEN, sending reset\n")); tcp_rst(ackno + 1, seqno + tcplen, &(iphdr->dest), &(iphdr->src), tcphdr->dest, tcphdr->src); } else if (flags & TCP_SYN) { LWIP_DEBUGF(TCP_DEBUG, ("TCP connection request %"U16_F" -> %"U16_F".\n", tcphdr->src, tcphdr->dest)); #if TCP_LISTEN_BACKLOG if (pcb->accepts_pending >= pcb->backlog) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: listen backlog exceeded for port %"U16_F"\n", tcphdr->dest)); return ERR_ABRT; } #endif /* TCP_LISTEN_BACKLOG */ npcb = tcp_alloc(pcb->prio); /* If a new PCB could not be created (probably due to lack of memory), we don't do anything, but rely on the sender will retransmit the SYN at a time when we have more memory available. */ if (npcb == NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_listen_input: could not allocate PCB\n")); TCP_STATS_INC(tcp.memerr); return ERR_MEM; } #if TCP_LISTEN_BACKLOG pcb->accepts_pending++; #endif /* TCP_LISTEN_BACKLOG */ /* Set up the new PCB. */ ip_addr_set(&(npcb->local_ip), &(iphdr->dest)); npcb->local_port = pcb->local_port; ip_addr_set(&(npcb->remote_ip), &(iphdr->src)); npcb->remote_port = tcphdr->src; npcb->state = SYN_RCVD; npcb->rcv_nxt = seqno + 1; npcb->rcv_ann_right_edge = npcb->rcv_nxt; npcb->snd_wnd = tcphdr->wnd; npcb->ssthresh = npcb->snd_wnd; npcb->snd_wl1 = seqno - 1;/* initialise to seqno-1 to force window update */ npcb->callback_arg = pcb->callback_arg; #if LWIP_CALLBACK_API npcb->accept = pcb->accept; #endif /* LWIP_CALLBACK_API */ /* inherit socket options */ npcb->so_options = pcb->so_options & (SOF_DEBUG|SOF_DONTROUTE|SOF_KEEPALIVE|SOF_OOBINLINE|SOF_LINGER); /* Register the new PCB so that we can begin receiving segments for it. */ TCP_REG(&tcp_active_pcbs, npcb); /* Parse any options in the SYN. */ tcp_parseopt(npcb); #if TCP_CALCULATE_EFF_SEND_MSS npcb->mss = tcp_eff_send_mss(npcb->mss, &(npcb->remote_ip)); #endif /* TCP_CALCULATE_EFF_SEND_MSS */ snmp_inc_tcppassiveopens(); /* Send a SYN|ACK together with the MSS option. */ rc = tcp_enqueue(npcb, NULL, 0, TCP_SYN | TCP_ACK, 0, TF_SEG_OPTS_MSS #if LWIP_TCP_TIMESTAMPS /* and maybe include the TIMESTAMP option */ | (npcb->flags & TF_TIMESTAMP ? TF_SEG_OPTS_TS : 0) #endif ); if (rc != ERR_OK) { tcp_abandon(npcb, 0); return rc; } return tcp_output(npcb); } return ERR_OK; } /** * Called by tcp_input() when a segment arrives for a connection in * TIME_WAIT. * * @param pcb the tcp_pcb for which a segment arrived * * @note the segment which arrived is saved in global variables, therefore only the pcb * involved is passed as a parameter to this function */ static err_t tcp_timewait_input(struct tcp_pcb *pcb) { if (TCP_SEQ_GT(seqno + tcplen, pcb->rcv_nxt)) { pcb->rcv_nxt = seqno + tcplen; } if (tcplen > 0) { tcp_ack_now(pcb); } return tcp_output(pcb); } /** * Implements the TCP state machine. Called by tcp_input. In some * states tcp_receive() is called to receive data. The tcp_seg * argument will be freed by the caller (tcp_input()) unless the * recv_data pointer in the pcb is set. * * @param pcb the tcp_pcb for which a segment arrived * * @note the segment which arrived is saved in global variables, therefore only the pcb * involved is passed as a parameter to this function */ static err_t tcp_process(struct tcp_pcb *pcb) { struct tcp_seg *rseg; u8_t acceptable = 0; err_t err; err = ERR_OK; /* Process incoming RST segments. */ if (flags & TCP_RST) { /* First, determine if the reset is acceptable. */ if (pcb->state == SYN_SENT) { if (ackno == pcb->snd_nxt) { acceptable = 1; } } else { if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt+pcb->rcv_wnd)) { acceptable = 1; } } if (acceptable) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: Connection RESET\n")); LWIP_ASSERT("tcp_input: pcb->state != CLOSED", pcb->state != CLOSED); recv_flags |= TF_RESET; pcb->flags &= ~TF_ACK_DELAY; return ERR_RST; } else { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_process: unacceptable reset seqno %"U32_F" rcv_nxt %"U32_F"\n", seqno, pcb->rcv_nxt)); LWIP_DEBUGF(TCP_DEBUG, ("tcp_process: unacceptable reset seqno %"U32_F" rcv_nxt %"U32_F"\n", seqno, pcb->rcv_nxt)); return ERR_OK; } } if ((flags & TCP_SYN) && (pcb->state != SYN_SENT && pcb->state != SYN_RCVD)) { /* Cope with new connection attempt after remote end crashed */ tcp_ack_now(pcb); return ERR_OK; } /* Update the PCB (in)activity timer. */ pcb->tmr = tcp_ticks; pcb->keep_cnt_sent = 0; tcp_parseopt(pcb); /* Do different things depending on the TCP state. */ switch (pcb->state) { case SYN_SENT: LWIP_DEBUGF(TCP_INPUT_DEBUG, ("SYN-SENT: ackno %"U32_F" pcb->snd_nxt %"U32_F" unacked %"U32_F"\n", ackno, pcb->snd_nxt, ntohl(pcb->unacked->tcphdr->seqno))); /* received SYN ACK with expected sequence number? */ if ((flags & TCP_ACK) && (flags & TCP_SYN) && ackno == ntohl(pcb->unacked->tcphdr->seqno) + 1) { pcb->snd_buf++; pcb->rcv_nxt = seqno + 1; pcb->rcv_ann_right_edge = pcb->rcv_nxt; pcb->lastack = ackno; pcb->snd_wnd = tcphdr->wnd; pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */ pcb->state = ESTABLISHED; #if TCP_CALCULATE_EFF_SEND_MSS pcb->mss = tcp_eff_send_mss(pcb->mss, &(pcb->remote_ip)); #endif /* TCP_CALCULATE_EFF_SEND_MSS */ /* Set ssthresh again after changing pcb->mss (already set in tcp_connect * but for the default value of pcb->mss) */ pcb->ssthresh = pcb->mss * 10; pcb->cwnd = ((pcb->cwnd == 1) ? (pcb->mss * 2) : pcb->mss); LWIP_ASSERT("pcb->snd_queuelen > 0", (pcb->snd_queuelen > 0)); --pcb->snd_queuelen; LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_process: SYN-SENT --queuelen %"U16_F"\n", (u16_t)pcb->snd_queuelen)); rseg = pcb->unacked; pcb->unacked = rseg->next; /* If there's nothing left to acknowledge, stop the retransmit timer, otherwise reset it to start again */ if(pcb->unacked == NULL) pcb->rtime = -1; else { pcb->rtime = 0; pcb->nrtx = 0; } tcp_seg_free(rseg); /* Call the user specified function to call when sucessfully * connected. */ TCP_EVENT_CONNECTED(pcb, ERR_OK, err); tcp_ack_now(pcb); } /* received ACK? possibly a half-open connection */ else if (flags & TCP_ACK) { /* send a RST to bring the other side in a non-synchronized state. */ tcp_rst(ackno, seqno + tcplen, &(iphdr->dest), &(iphdr->src), tcphdr->dest, tcphdr->src); } break; case SYN_RCVD: if (flags & TCP_ACK) { /* expected ACK number? */ if (TCP_SEQ_BETWEEN(ackno, pcb->lastack+1, pcb->snd_nxt)) { u16_t old_cwnd; pcb->state = ESTABLISHED; LWIP_DEBUGF(TCP_DEBUG, ("TCP connection established %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); #if LWIP_CALLBACK_API LWIP_ASSERT("pcb->accept != NULL", pcb->accept != NULL); #endif /* Call the accept function. */ TCP_EVENT_ACCEPT(pcb, ERR_OK, err); if (err != ERR_OK) { /* If the accept function returns with an error, we abort * the connection. */ tcp_abort(pcb); return ERR_ABRT; } old_cwnd = pcb->cwnd; /* If there was any data contained within this ACK, * we'd better pass it on to the application as well. */ tcp_receive(pcb); pcb->cwnd = ((old_cwnd == 1) ? (pcb->mss * 2) : pcb->mss); if (recv_flags & TF_GOT_FIN) { tcp_ack_now(pcb); pcb->state = CLOSE_WAIT; } } /* incorrect ACK number */ else { /* send RST */ tcp_rst(ackno, seqno + tcplen, &(iphdr->dest), &(iphdr->src), tcphdr->dest, tcphdr->src); } } else if ((flags & TCP_SYN) && (seqno == pcb->rcv_nxt - 1)) { /* Looks like another copy of the SYN - retransmit our SYN-ACK */ tcp_rexmit(pcb); } break; case CLOSE_WAIT: /* FALLTHROUGH */ case ESTABLISHED: tcp_receive(pcb); if (recv_flags & TF_GOT_FIN) { /* passive close */ tcp_ack_now(pcb); pcb->state = CLOSE_WAIT; } break; case FIN_WAIT_1: tcp_receive(pcb); if (recv_flags & TF_GOT_FIN) { if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) { LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); tcp_ack_now(pcb); tcp_pcb_purge(pcb); TCP_RMV(&tcp_active_pcbs, pcb); pcb->state = TIME_WAIT; TCP_REG(&tcp_tw_pcbs, pcb); } else { tcp_ack_now(pcb); pcb->state = CLOSING; } } else if ((flags & TCP_ACK) && (ackno == pcb->snd_nxt)) { pcb->state = FIN_WAIT_2; } break; case FIN_WAIT_2: tcp_receive(pcb); if (recv_flags & TF_GOT_FIN) { LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); tcp_ack_now(pcb); tcp_pcb_purge(pcb); TCP_RMV(&tcp_active_pcbs, pcb); pcb->state = TIME_WAIT; TCP_REG(&tcp_tw_pcbs, pcb); } break; case CLOSING: tcp_receive(pcb); if (flags & TCP_ACK && ackno == pcb->snd_nxt) { LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); tcp_pcb_purge(pcb); TCP_RMV(&tcp_active_pcbs, pcb); pcb->state = TIME_WAIT; TCP_REG(&tcp_tw_pcbs, pcb); } break; case LAST_ACK: tcp_receive(pcb); if (flags & TCP_ACK && ackno == pcb->snd_nxt) { LWIP_DEBUGF(TCP_DEBUG, ("TCP connection closed %"U16_F" -> %"U16_F".\n", inseg.tcphdr->src, inseg.tcphdr->dest)); /* bugfix #21699: don't set pcb->state to CLOSED here or we risk leaking segments */ recv_flags |= TF_CLOSED; } break; default: break; } return ERR_OK; } /** * Called by tcp_process. Checks if the given segment is an ACK for outstanding * data, and if so frees the memory of the buffered data. Next, is places the * segment on any of the receive queues (pcb->recved or pcb->ooseq). If the segment * is buffered, the pbuf is referenced by pbuf_ref so that it will not be freed until * i it has been removed from the buffer. * * If the incoming segment constitutes an ACK for a segment that was used for RTT * estimation, the RTT is estimated here as well. * * Called from tcp_process(). * * @return 1 if the incoming segment is the next in sequence, 0 if not */ static u8_t tcp_receive(struct tcp_pcb *pcb) { struct tcp_seg *next; #if TCP_QUEUE_OOSEQ struct tcp_seg *prev, *cseg; #endif struct pbuf *p; s32_t off; s16_t m; u32_t right_wnd_edge; u16_t new_tot_len; u8_t accepted_inseq = 0; if (flags & TCP_ACK) { right_wnd_edge = pcb->snd_wnd + pcb->snd_wl2; /* Update window. */ if (TCP_SEQ_LT(pcb->snd_wl1, seqno) || (pcb->snd_wl1 == seqno && TCP_SEQ_LT(pcb->snd_wl2, ackno)) || (pcb->snd_wl2 == ackno && tcphdr->wnd > pcb->snd_wnd)) { pcb->snd_wnd = tcphdr->wnd; pcb->snd_wl1 = seqno; pcb->snd_wl2 = ackno; if (pcb->snd_wnd > 0 && pcb->persist_backoff > 0) { pcb->persist_backoff = 0; } LWIP_DEBUGF(TCP_WND_DEBUG, ("tcp_receive: window update %"U16_F"\n", pcb->snd_wnd)); #if TCP_WND_DEBUG } else { if (pcb->snd_wnd != tcphdr->wnd) { LWIP_DEBUGF(TCP_WND_DEBUG, ("tcp_receive: no window update lastack %"U32_F" ackno %" U32_F" wl1 %"U32_F" seqno %"U32_F" wl2 %"U32_F"\n", pcb->lastack, ackno, pcb->snd_wl1, seqno, pcb->snd_wl2)); } #endif /* TCP_WND_DEBUG */ } if (pcb->lastack == ackno) { pcb->acked = 0; if (pcb->snd_wl2 + pcb->snd_wnd == right_wnd_edge){ ++pcb->dupacks; if (pcb->dupacks >= 3 && pcb->unacked != NULL) { if (!(pcb->flags & TF_INFR)) { /* This is fast retransmit. Retransmit the first unacked segment. */ LWIP_DEBUGF(TCP_FR_DEBUG, ("tcp_receive: dupacks %"U16_F" (%"U32_F"), fast retransmit %"U32_F"\n", (u16_t)pcb->dupacks, pcb->lastack, ntohl(pcb->unacked->tcphdr->seqno))); tcp_rexmit(pcb); /* Set ssthresh to max (FlightSize / 2, 2*SMSS) */ /*pcb->ssthresh = LWIP_MAX((pcb->snd_max - pcb->lastack) / 2, 2 * pcb->mss);*/ /* Set ssthresh to half of the minimum of the current cwnd and the advertised window */ if (pcb->cwnd > pcb->snd_wnd) pcb->ssthresh = pcb->snd_wnd / 2; else pcb->ssthresh = pcb->cwnd / 2; /* The minimum value for ssthresh should be 2 MSS */ if (pcb->ssthresh < 2*pcb->mss) { LWIP_DEBUGF(TCP_FR_DEBUG, ("tcp_receive: The minimum value for ssthresh %"U16_F" should be min 2 mss %"U16_F"...\n", pcb->ssthresh, 2*pcb->mss)); pcb->ssthresh = 2*pcb->mss; } pcb->cwnd = pcb->ssthresh + 3 * pcb->mss; pcb->flags |= TF_INFR; } else { /* Inflate the congestion window, but not if it means that the value overflows. */ if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) { pcb->cwnd += pcb->mss; } } } } else { LWIP_DEBUGF(TCP_FR_DEBUG, ("tcp_receive: dupack averted %"U32_F" %"U32_F"\n", pcb->snd_wl2 + pcb->snd_wnd, right_wnd_edge)); } } else if (TCP_SEQ_BETWEEN(ackno, pcb->lastack+1, pcb->snd_nxt)){ /* We come here when the ACK acknowledges new data. */ /* Reset the "IN Fast Retransmit" flag, since we are no longer in fast retransmit. Also reset the congestion window to the slow start threshold. */ if (pcb->flags & TF_INFR) { pcb->flags &= ~TF_INFR; pcb->cwnd = pcb->ssthresh; } /* Reset the number of retransmissions. */ pcb->nrtx = 0; /* Reset the retransmission time-out. */ pcb->rto = (pcb->sa >> 3) + pcb->sv; /* Update the send buffer space. Diff between the two can never exceed 64K? */ pcb->acked = (u16_t)(ackno - pcb->lastack); pcb->snd_buf += pcb->acked; /* Reset the fast retransmit variables. */ pcb->dupacks = 0; pcb->lastack = ackno; /* Update the congestion control variables (cwnd and ssthresh). */ if (pcb->state >= ESTABLISHED) { if (pcb->cwnd < pcb->ssthresh) { if ((u16_t)(pcb->cwnd + pcb->mss) > pcb->cwnd) { pcb->cwnd += pcb->mss; } LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: slow start cwnd %"U16_F"\n", pcb->cwnd)); } else { u16_t new_cwnd = (pcb->cwnd + pcb->mss * pcb->mss / pcb->cwnd); if (new_cwnd > pcb->cwnd) { pcb->cwnd = new_cwnd; } LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_receive: congestion avoidance cwnd %"U16_F"\n", pcb->cwnd)); } } LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: ACK for %"U32_F", unacked->seqno %"U32_F":%"U32_F"\n", ackno, pcb->unacked != NULL? ntohl(pcb->unacked->tcphdr->seqno): 0, pcb->unacked != NULL? ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked): 0)); /* Remove segment from the unacknowledged list if the incoming ACK acknowlegdes them. */ while (pcb->unacked != NULL && TCP_SEQ_LEQ(ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked), ackno)) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unacked\n", ntohl(pcb->unacked->tcphdr->seqno), ntohl(pcb->unacked->tcphdr->seqno) + TCP_TCPLEN(pcb->unacked))); next = pcb->unacked; pcb->unacked = pcb->unacked->next; LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen)); LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p))); pcb->snd_queuelen -= pbuf_clen(next->p); tcp_seg_free(next); LWIP_DEBUGF(TCP_QLEN_DEBUG, ("%"U16_F" (after freeing unacked)\n", (u16_t)pcb->snd_queuelen)); if (pcb->snd_queuelen != 0) { LWIP_ASSERT("tcp_receive: valid queue length", pcb->unacked != NULL || pcb->unsent != NULL); } } /* If there's nothing left to acknowledge, stop the retransmit timer, otherwise reset it to start again */ if(pcb->unacked == NULL) pcb->rtime = -1; else pcb->rtime = 0; pcb->polltmr = 0; } else { /* Fix bug bug #21582: out of sequence ACK, didn't really ack anything */ pcb->acked = 0; } /* We go through the ->unsent list to see if any of the segments on the list are acknowledged by the ACK. This may seem strange since an "unsent" segment shouldn't be acked. The rationale is that lwIP puts all outstanding segments on the ->unsent list after a retransmission, so these segments may in fact have been sent once. */ while (pcb->unsent != NULL && TCP_SEQ_BETWEEN(ackno, ntohl(pcb->unsent->tcphdr->seqno) + TCP_TCPLEN(pcb->unsent), pcb->snd_nxt)) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: removing %"U32_F":%"U32_F" from pcb->unsent\n", ntohl(pcb->unsent->tcphdr->seqno), ntohl(pcb->unsent->tcphdr->seqno) + TCP_TCPLEN(pcb->unsent))); next = pcb->unsent; pcb->unsent = pcb->unsent->next; LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_receive: queuelen %"U16_F" ... ", (u16_t)pcb->snd_queuelen)); LWIP_ASSERT("pcb->snd_queuelen >= pbuf_clen(next->p)", (pcb->snd_queuelen >= pbuf_clen(next->p))); pcb->snd_queuelen -= pbuf_clen(next->p); tcp_seg_free(next); LWIP_DEBUGF(TCP_QLEN_DEBUG, ("%"U16_F" (after freeing unsent)\n", (u16_t)pcb->snd_queuelen)); if (pcb->snd_queuelen != 0) { LWIP_ASSERT("tcp_receive: valid queue length", pcb->unacked != NULL || pcb->unsent != NULL); } } /* End of ACK for new data processing. */ LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: pcb->rttest %"U32_F" rtseq %"U32_F" ackno %"U32_F"\n", pcb->rttest, pcb->rtseq, ackno)); /* RTT estimation calculations. This is done by checking if the incoming segment acknowledges the segment we use to take a round-trip time measurement. */ if (pcb->rttest && TCP_SEQ_LT(pcb->rtseq, ackno)) { /* diff between this shouldn't exceed 32K since this are tcp timer ticks and a round-trip shouldn't be that long... */ m = (s16_t)(tcp_ticks - pcb->rttest); LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: experienced rtt %"U16_F" ticks (%"U16_F" msec).\n", m, m * TCP_SLOW_INTERVAL)); /* This is taken directly from VJs original code in his paper */ m = m - (pcb->sa >> 3); pcb->sa += m; if (m < 0) { m = -m; } m = m - (pcb->sv >> 2); pcb->sv += m; pcb->rto = (pcb->sa >> 3) + pcb->sv; LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_receive: RTO %"U16_F" (%"U16_F" milliseconds)\n", pcb->rto, pcb->rto * TCP_SLOW_INTERVAL)); pcb->rttest = 0; } } /* If the incoming segment contains data, we must process it further. */ if (tcplen > 0) { /* This code basically does three things: +) If the incoming segment contains data that is the next in-sequence data, this data is passed to the application. This might involve trimming the first edge of the data. The rcv_nxt variable and the advertised window are adjusted. +) If the incoming segment has data that is above the next sequence number expected (->rcv_nxt), the segment is placed on the ->ooseq queue. This is done by finding the appropriate place in the ->ooseq queue (which is ordered by sequence number) and trim the segment in both ends if needed. An immediate ACK is sent to indicate that we received an out-of-sequence segment. +) Finally, we check if the first segment on the ->ooseq queue now is in sequence (i.e., if rcv_nxt >= ooseq->seqno). If rcv_nxt > ooseq->seqno, we must trim the first edge of the segment on ->ooseq before we adjust rcv_nxt. The data in the segments that are now on sequence are chained onto the incoming segment so that we only need to call the application once. */ /* First, we check if we must trim the first edge. We have to do this if the sequence number of the incoming segment is less than rcv_nxt, and the sequence number plus the length of the segment is larger than rcv_nxt. */ /* if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)){ if (TCP_SEQ_LT(pcb->rcv_nxt, seqno + tcplen)) {*/ if (TCP_SEQ_BETWEEN(pcb->rcv_nxt, seqno + 1, seqno + tcplen - 1)){ /* Trimming the first edge is done by pushing the payload pointer in the pbuf downwards. This is somewhat tricky since we do not want to discard the full contents of the pbuf up to the new starting point of the data since we have to keep the TCP header which is present in the first pbuf in the chain. What is done is really quite a nasty hack: the first pbuf in the pbuf chain is pointed to by inseg.p. Since we need to be able to deallocate the whole pbuf, we cannot change this inseg.p pointer to point to any of the later pbufs in the chain. Instead, we point the ->payload pointer in the first pbuf to data in one of the later pbufs. We also set the inseg.data pointer to point to the right place. This way, the ->p pointer will still point to the first pbuf, but the ->p->payload pointer will point to data in another pbuf. After we are done with adjusting the pbuf pointers we must adjust the ->data pointer in the seg and the segment length.*/ off = pcb->rcv_nxt - seqno; p = inseg.p; LWIP_ASSERT("inseg.p != NULL", inseg.p); LWIP_ASSERT("insane offset!", (off < 0x7fff)); if (inseg.p->len < off) { LWIP_ASSERT("pbuf too short!", (((s32_t)inseg.p->tot_len) >= off)); new_tot_len = (u16_t)(inseg.p->tot_len - off); while (p->len < off) { off -= p->len; /* KJM following line changed (with addition of new_tot_len var) to fix bug #9076 inseg.p->tot_len -= p->len; */ p->tot_len = new_tot_len; p->len = 0; p = p->next; } if(pbuf_header(p, (s16_t)-off)) { /* Do we need to cope with this failing? Assert for now */ LWIP_ASSERT("pbuf_header failed", 0); } } else { if(pbuf_header(inseg.p, (s16_t)-off)) { /* Do we need to cope with this failing? Assert for now */ LWIP_ASSERT("pbuf_header failed", 0); } } /* KJM following line changed to use p->payload rather than inseg->p->payload to fix bug #9076 */ inseg.dataptr = p->payload; inseg.len -= (u16_t)(pcb->rcv_nxt - seqno); inseg.tcphdr->seqno = seqno = pcb->rcv_nxt; } else { if (TCP_SEQ_LT(seqno, pcb->rcv_nxt)){ /* the whole segment is < rcv_nxt */ /* must be a duplicate of a packet that has already been correctly handled */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: duplicate seqno %"U32_F"\n", seqno)); tcp_ack_now(pcb); } } /* The sequence number must be within the window (above rcv_nxt and below rcv_nxt + rcv_wnd) in order to be further processed. */ if (TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd - 1)){ if (pcb->rcv_nxt == seqno) { accepted_inseq = 1; /* The incoming segment is the next in sequence. We check if we have to trim the end of the segment and update rcv_nxt and pass the data to the application. */ tcplen = TCP_TCPLEN(&inseg); if (tcplen > pcb->rcv_wnd) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: other end overran receive window" "seqno %"U32_F" len %"U32_F" right edge %"U32_F"\n", seqno, tcplen, pcb->rcv_nxt + pcb->rcv_wnd)); if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { /* Must remove the FIN from the header as we're trimming * that byte of sequence-space from the packet */ TCPH_FLAGS_SET(inseg.tcphdr, TCPH_FLAGS(inseg.tcphdr) &~ TCP_FIN); } /* Adjust length of segment to fit in the window. */ inseg.len = pcb->rcv_wnd; if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) { inseg.len -= 1; } pbuf_realloc(inseg.p, inseg.len); tcplen = TCP_TCPLEN(&inseg); LWIP_ASSERT("tcp_receive: segment not trimmed correctly to rcv_wnd\n", (seqno + tcplen) == (pcb->rcv_nxt + pcb->rcv_wnd)); } #if TCP_QUEUE_OOSEQ if (pcb->ooseq != NULL) { if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: received in-order FIN, binning ooseq queue\n")); /* Received in-order FIN means anything that was received * out of order must now have been received in-order, so * bin the ooseq queue */ while (pcb->ooseq != NULL) { struct tcp_seg *old_ooseq = pcb->ooseq; pcb->ooseq = pcb->ooseq->next; memp_free(MEMP_TCP_SEG, old_ooseq); } } else if (TCP_SEQ_LEQ(pcb->ooseq->tcphdr->seqno, seqno + tcplen)) { if (pcb->ooseq->len > 0) { /* We have to trim the second edge of the incoming segment. */ LWIP_ASSERT("tcp_receive: trimmed segment would have zero length\n", TCP_SEQ_GT(pcb->ooseq->tcphdr->seqno, seqno)); /* FIN in inseg already handled by dropping whole ooseq queue */ inseg.len = (u16_t)(pcb->ooseq->tcphdr->seqno - seqno); if (TCPH_FLAGS(inseg.tcphdr) & TCP_SYN) { inseg.len -= 1; } pbuf_realloc(inseg.p, inseg.len); tcplen = TCP_TCPLEN(&inseg); LWIP_ASSERT("tcp_receive: segment not trimmed correctly to ooseq queue\n", (seqno + tcplen) == pcb->ooseq->tcphdr->seqno); } else { /* does the ooseq segment contain only flags that are in inseg also? */ if ((TCPH_FLAGS(inseg.tcphdr) & (TCP_FIN|TCP_SYN)) == (TCPH_FLAGS(pcb->ooseq->tcphdr) & (TCP_FIN|TCP_SYN))) { struct tcp_seg *old_ooseq = pcb->ooseq; pcb->ooseq = pcb->ooseq->next; memp_free(MEMP_TCP_SEG, old_ooseq); } } } } #endif /* TCP_QUEUE_OOSEQ */ pcb->rcv_nxt = seqno + tcplen; /* Update the receiver's (our) window. */ LWIP_ASSERT("tcp_receive: tcplen > rcv_wnd\n", pcb->rcv_wnd >= tcplen); pcb->rcv_wnd -= tcplen; tcp_update_rcv_ann_wnd(pcb); /* If there is data in the segment, we make preparations to pass this up to the application. The ->recv_data variable is used for holding the pbuf that goes to the application. The code for reassembling out-of-sequence data chains its data on this pbuf as well. If the segment was a FIN, we set the TF_GOT_FIN flag that will be used to indicate to the application that the remote side has closed its end of the connection. */ if (inseg.p->tot_len > 0) { recv_data = inseg.p; /* Since this pbuf now is the responsibility of the application, we delete our reference to it so that we won't (mistakingly) deallocate it. */ inseg.p = NULL; } if (TCPH_FLAGS(inseg.tcphdr) & TCP_FIN) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: received FIN.\n")); recv_flags |= TF_GOT_FIN; } #if TCP_QUEUE_OOSEQ /* We now check if we have segments on the ->ooseq queue that is now in sequence. */ while (pcb->ooseq != NULL && pcb->ooseq->tcphdr->seqno == pcb->rcv_nxt) { cseg = pcb->ooseq; seqno = pcb->ooseq->tcphdr->seqno; pcb->rcv_nxt += TCP_TCPLEN(cseg); LWIP_ASSERT("tcp_receive: ooseq tcplen > rcv_wnd\n", pcb->rcv_wnd >= TCP_TCPLEN(cseg)); pcb->rcv_wnd -= TCP_TCPLEN(cseg); tcp_update_rcv_ann_wnd(pcb); if (cseg->p->tot_len > 0) { /* Chain this pbuf onto the pbuf that we will pass to the application. */ if (recv_data) { pbuf_cat(recv_data, cseg->p); } else { recv_data = cseg->p; } cseg->p = NULL; } if (TCPH_FLAGS(cseg->tcphdr) & TCP_FIN) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_receive: dequeued FIN.\n")); recv_flags |= TF_GOT_FIN; if (pcb->state == ESTABLISHED) { /* force passive close or we can move to active close */ pcb->state = CLOSE_WAIT; } } pcb->ooseq = cseg->next; tcp_seg_free(cseg); } #endif /* TCP_QUEUE_OOSEQ */ /* Acknowledge the segment(s). */ tcp_ack(pcb); } else { /* We get here if the incoming segment is out-of-sequence. */ tcp_ack_now(pcb); #if TCP_QUEUE_OOSEQ /* We queue the segment on the ->ooseq queue. */ if (pcb->ooseq == NULL) { pcb->ooseq = tcp_seg_copy(&inseg); } else { /* If the queue is not empty, we walk through the queue and try to find a place where the sequence number of the incoming segment is between the sequence numbers of the previous and the next segment on the ->ooseq queue. That is the place where we put the incoming segment. If needed, we trim the second edges of the previous and the incoming segment so that it will fit into the sequence. If the incoming segment has the same sequence number as a segment on the ->ooseq queue, we discard the segment that contains less data. */ prev = NULL; for(next = pcb->ooseq; next != NULL; next = next->next) { if (seqno == next->tcphdr->seqno) { /* The sequence number of the incoming segment is the same as the sequence number of the segment on ->ooseq. We check the lengths to see which one to discard. */ if (inseg.len > next->len) { /* The incoming segment is larger than the old segment. We replace the old segment with the new one. */ cseg = tcp_seg_copy(&inseg); if (cseg != NULL) { cseg->next = next->next; if (prev != NULL) { prev->next = cseg; } else { pcb->ooseq = cseg; } tcp_seg_free(next); if (cseg->next != NULL) { next = cseg->next; if (TCP_SEQ_GT(seqno + cseg->len, next->tcphdr->seqno)) { /* We need to trim the incoming segment. */ cseg->len = (u16_t)(next->tcphdr->seqno - seqno); pbuf_realloc(cseg->p, cseg->len); } } } break; } else { /* Either the lenghts are the same or the incoming segment was smaller than the old one; in either case, we ditch the incoming segment. */ break; } } else { if (prev == NULL) { if (TCP_SEQ_LT(seqno, next->tcphdr->seqno)) { /* The sequence number of the incoming segment is lower than the sequence number of the first segment on the queue. We put the incoming segment first on the queue. */ if (TCP_SEQ_GT(seqno + inseg.len, next->tcphdr->seqno)) { /* We need to trim the incoming segment. */ inseg.len = (u16_t)(next->tcphdr->seqno - seqno); pbuf_realloc(inseg.p, inseg.len); } cseg = tcp_seg_copy(&inseg); if (cseg != NULL) { cseg->next = next; pcb->ooseq = cseg; } break; } } else /*if (TCP_SEQ_LT(prev->tcphdr->seqno, seqno) && TCP_SEQ_LT(seqno, next->tcphdr->seqno)) {*/ if(TCP_SEQ_BETWEEN(seqno, prev->tcphdr->seqno+1, next->tcphdr->seqno-1)){ /* The sequence number of the incoming segment is in between the sequence numbers of the previous and the next segment on ->ooseq. We trim and insert the incoming segment and trim the previous segment, if needed. */ if (TCP_SEQ_GT(seqno + inseg.len, next->tcphdr->seqno)) { /* We need to trim the incoming segment. */ inseg.len = (u16_t)(next->tcphdr->seqno - seqno); pbuf_realloc(inseg.p, inseg.len); } cseg = tcp_seg_copy(&inseg); if (cseg != NULL) { cseg->next = next; prev->next = cseg; if (TCP_SEQ_GT(prev->tcphdr->seqno + prev->len, seqno)) { /* We need to trim the prev segment. */ prev->len = (u16_t)(seqno - prev->tcphdr->seqno); pbuf_realloc(prev->p, prev->len); } } break; } /* If the "next" segment is the last segment on the ooseq queue, we add the incoming segment to the end of the list. */ if (next->next == NULL && TCP_SEQ_GT(seqno, next->tcphdr->seqno)) { next->next = tcp_seg_copy(&inseg); if (next->next != NULL) { if (TCP_SEQ_GT(next->tcphdr->seqno + next->len, seqno)) { /* We need to trim the last segment. */ next->len = (u16_t)(seqno - next->tcphdr->seqno); pbuf_realloc(next->p, next->len); } } break; } } prev = next; } } #endif /* TCP_QUEUE_OOSEQ */ } } else { tcp_ack_now(pcb); } } else { /* Segments with length 0 is taken care of here. Segments that fall out of the window are ACKed. */ /*if (TCP_SEQ_GT(pcb->rcv_nxt, seqno) || TCP_SEQ_GEQ(seqno, pcb->rcv_nxt + pcb->rcv_wnd)) {*/ if(!TCP_SEQ_BETWEEN(seqno, pcb->rcv_nxt, pcb->rcv_nxt + pcb->rcv_wnd-1)){ tcp_ack_now(pcb); } } return accepted_inseq; } /** * Parses the options contained in the incoming segment. * * Called from tcp_listen_input() and tcp_process(). * Currently, only the MSS option is supported! * * @param pcb the tcp_pcb for which a segment arrived */ static void tcp_parseopt(struct tcp_pcb *pcb) { u16_t c, max_c; u16_t mss; u8_t *opts, opt; #if LWIP_TCP_TIMESTAMPS u32_t tsval; #endif opts = (u8_t *)tcphdr + TCP_HLEN; /* Parse the TCP MSS option, if present. */ if(TCPH_HDRLEN(tcphdr) > 0x5) { max_c = (TCPH_HDRLEN(tcphdr) - 5) << 2; for (c = 0; c < max_c; ) { opt = opts[c]; switch (opt) { case 0x00: /* End of options. */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: EOL\n")); return; case 0x01: /* NOP option. */ ++c; LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: NOP\n")); break; case 0x02: LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: MSS\n")); if (opts[c + 1] != 0x04 || c + 0x04 > max_c) { /* Bad length */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); return; } /* An MSS option with the right option length. */ mss = (opts[c + 2] << 8) | opts[c + 3]; /* Limit the mss to the configured TCP_MSS and prevent division by zero */ pcb->mss = ((mss > TCP_MSS) || (mss == 0)) ? TCP_MSS : mss; /* Advance to next option */ c += 0x04; break; #if LWIP_TCP_TIMESTAMPS case 0x08: LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: TS\n")); if (opts[c + 1] != 0x0A || c + 0x0A > max_c) { /* Bad length */ LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); return; } /* TCP timestamp option with valid length */ tsval = (opts[c+2]) | (opts[c+3] << 8) | (opts[c+4] << 16) | (opts[c+5] << 24); if (flags & TCP_SYN) { pcb->ts_recent = ntohl(tsval); pcb->flags |= TF_TIMESTAMP; } else if (TCP_SEQ_BETWEEN(pcb->ts_lastacksent, seqno, seqno+tcplen)) { pcb->ts_recent = ntohl(tsval); } /* Advance to next option */ c += 0x0A; break; #endif default: LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: other\n")); if (opts[c + 1] == 0) { LWIP_DEBUGF(TCP_INPUT_DEBUG, ("tcp_parseopt: bad length\n")); /* If the length field is zero, the options are malformed and we don't process them further. */ return; } /* All other options have a length field, so that we easily can skip past them. */ c += opts[c + 1]; } } } } #endif /* LWIP_TCP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/tcp_out.c000066400000000000000000001001271224274632000226650ustar00rootroot00000000000000/** * @file * Transmission Control Protocol, outgoing traffic * * The output functions of TCP. * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ #include "lwip/tcp.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/memp.h" #include "lwip/sys.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include /* Forward declarations.*/ static void tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb); static struct tcp_hdr * tcp_output_set_header(struct tcp_pcb *pcb, struct pbuf *p, int optlen, u32_t seqno_be /* already in network byte order */) { struct tcp_hdr *tcphdr = p->payload; tcphdr->src = htons(pcb->local_port); tcphdr->dest = htons(pcb->remote_port); tcphdr->seqno = seqno_be; tcphdr->ackno = htonl(pcb->rcv_nxt); TCPH_FLAGS_SET(tcphdr, TCP_ACK); tcphdr->wnd = htons(pcb->rcv_ann_wnd); tcphdr->urgp = 0; TCPH_HDRLEN_SET(tcphdr, (5 + optlen / 4)); tcphdr->chksum = 0; /* If we're sending a packet, update the announced right window edge */ pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd; return tcphdr; } /** * Called by tcp_close() to send a segment including flags but not data. * * @param pcb the tcp_pcb over which to send a segment * @param flags the flags to set in the segment header * @return ERR_OK if sent, another err_t otherwise */ err_t tcp_send_ctrl(struct tcp_pcb *pcb, u8_t flags) { /* no data, no length, flags, copy=1, no optdata */ return tcp_enqueue(pcb, NULL, 0, flags, TCP_WRITE_FLAG_COPY, 0); } /** * Write data for sending (but does not send it immediately). * * It waits in the expectation of more data being sent soon (as * it can send them more efficiently by combining them together). * To prompt the system to send data now, call tcp_output() after * calling tcp_write(). * * @param pcb Protocol control block of the TCP connection to enqueue data for. * @param data pointer to the data to send * @param len length (in bytes) of the data to send * @param apiflags combination of following flags : * - TCP_WRITE_FLAG_COPY (0x01) data will be copied into memory belonging to the stack * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent, * @return ERR_OK if enqueued, another err_t on error * * @see tcp_write() */ err_t tcp_write(struct tcp_pcb *pcb, const void *data, u16_t len, u8_t apiflags) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_write(pcb=%p, data=%p, len=%"U16_F", apiflags=%"U16_F")\n", (void *)pcb, data, len, (u16_t)apiflags)); /* connection is in valid state for data transmission? */ if (pcb->state == ESTABLISHED || pcb->state == CLOSE_WAIT || pcb->state == SYN_SENT || pcb->state == SYN_RCVD) { if (len > 0) { #if LWIP_TCP_TIMESTAMPS return tcp_enqueue(pcb, (void *)data, len, 0, apiflags, pcb->flags & TF_TIMESTAMP ? TF_SEG_OPTS_TS : 0); #else return tcp_enqueue(pcb, (void *)data, len, 0, apiflags, 0); #endif } return ERR_OK; } else { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_STATE | 3, ("tcp_write() called in invalid state\n")); return ERR_CONN; } } /** * Enqueue data and/or TCP options for transmission * * Called by tcp_connect(), tcp_listen_input(), tcp_send_ctrl() and tcp_write(). * * @param pcb Protocol control block for the TCP connection to enqueue data for. * @param arg Pointer to the data to be enqueued for sending. * @param len Data length in bytes * @param flags tcp header flags to set in the outgoing segment * @param apiflags combination of following flags : * - TCP_WRITE_FLAG_COPY (0x01) data will be copied into memory belonging to the stack * - TCP_WRITE_FLAG_MORE (0x02) for TCP connection, PSH flag will be set on last segment sent, * @param optflags options to include in segment later on (see definition of struct tcp_seg) */ err_t tcp_enqueue(struct tcp_pcb *pcb, void *arg, u16_t len, u8_t flags, u8_t apiflags, u8_t optflags) { struct pbuf *p; struct tcp_seg *seg, *useg, *queue; u32_t seqno; u16_t left, seglen; void *ptr; u16_t queuelen; u8_t optlen; LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_enqueue(pcb=%p, arg=%p, len=%"U16_F", flags=%"X16_F", apiflags=%"U16_F")\n", (void *)pcb, arg, len, (u16_t)flags, (u16_t)apiflags)); LWIP_ERROR("tcp_enqueue: packet needs payload, options, or SYN/FIN (programmer violates API)", ((len != 0) || (optflags != 0) || ((flags & (TCP_SYN | TCP_FIN)) != 0)), return ERR_ARG;); LWIP_ERROR("tcp_enqueue: len != 0 || arg == NULL (programmer violates API)", ((len != 0) || (arg == NULL)), return ERR_ARG;); /* fail on too much data */ if (len > pcb->snd_buf) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue: too much data (len=%"U16_F" > snd_buf=%"U16_F")\n", len, pcb->snd_buf)); pcb->flags |= TF_NAGLEMEMERR; return ERR_MEM; } left = len; ptr = arg; optlen = LWIP_TCP_OPT_LENGTH(optflags); /* seqno will be the sequence number of the first segment enqueued * by the call to this function. */ seqno = pcb->snd_lbb; LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue: queuelen: %"U16_F"\n", (u16_t)pcb->snd_queuelen)); /* If total number of pbufs on the unsent/unacked queues exceeds the * configured maximum, return an error */ queuelen = pcb->snd_queuelen; /* check for configured max queuelen and possible overflow */ if ((queuelen >= TCP_SND_QUEUELEN) || (queuelen > TCP_SNDQUEUELEN_OVERFLOW)) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue: too long queue %"U16_F" (max %"U16_F")\n", queuelen, TCP_SND_QUEUELEN)); TCP_STATS_INC(tcp.memerr); pcb->flags |= TF_NAGLEMEMERR; return ERR_MEM; } if (queuelen != 0) { LWIP_ASSERT("tcp_enqueue: pbufs on queue => at least one queue non-empty", pcb->unacked != NULL || pcb->unsent != NULL); } else { LWIP_ASSERT("tcp_enqueue: no pbufs on queue => both queues empty", pcb->unacked == NULL && pcb->unsent == NULL); } /* First, break up the data into segments and tuck them together in * the local "queue" variable. */ useg = queue = seg = NULL; seglen = 0; while (queue == NULL || left > 0) { /* The segment length (including options) should be at most the MSS */ seglen = left > (pcb->mss - optlen) ? (pcb->mss - optlen) : left; /* Allocate memory for tcp_seg, and fill in fields. */ seg = memp_malloc(MEMP_TCP_SEG); if (seg == NULL) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_enqueue: could not allocate memory for tcp_seg\n")); goto memerr; } seg->next = NULL; seg->p = NULL; /* first segment of to-be-queued data? */ if (queue == NULL) { queue = seg; } /* subsequent segments of to-be-queued data */ else { /* Attach the segment to the end of the queued segments */ LWIP_ASSERT("useg != NULL", useg != NULL); useg->next = seg; } /* remember last segment of to-be-queued data for next iteration */ useg = seg; /* If copy is set, memory should be allocated * and data copied into pbuf, otherwise data comes from * ROM or other static memory, and need not be copied. */ if (apiflags & TCP_WRITE_FLAG_COPY) { if ((seg->p = pbuf_alloc(PBUF_TRANSPORT, seglen + optlen, PBUF_RAM)) == NULL) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_enqueue : could not allocate memory for pbuf copy size %"U16_F"\n", seglen)); goto memerr; } LWIP_ASSERT("check that first pbuf can hold the complete seglen", (seg->p->len >= seglen + optlen)); queuelen += pbuf_clen(seg->p); if (arg != NULL) { MEMCPY((char *)seg->p->payload + optlen, ptr, seglen); } seg->dataptr = seg->p->payload; } /* do not copy data */ else { /* First, allocate a pbuf for the headers. */ if ((seg->p = pbuf_alloc(PBUF_TRANSPORT, optlen, PBUF_RAM)) == NULL) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_enqueue: could not allocate memory for header pbuf\n")); goto memerr; } queuelen += pbuf_clen(seg->p); /* Second, allocate a pbuf for holding the data. * since the referenced data is available at least until it is sent out on the * link (as it has to be ACKed by the remote party) we can safely use PBUF_ROM * instead of PBUF_REF here. */ if (left > 0) { if ((p = pbuf_alloc(PBUF_RAW, seglen, PBUF_ROM)) == NULL) { /* If allocation fails, we have to deallocate the header pbuf as well. */ pbuf_free(seg->p); seg->p = NULL; LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_enqueue: could not allocate memory for zero-copy pbuf\n")); goto memerr; } ++queuelen; /* reference the non-volatile payload data */ p->payload = ptr; seg->dataptr = ptr; /* Concatenate the headers and data pbufs together. */ pbuf_cat(seg->p/*header*/, p/*data*/); p = NULL; } } /* Now that there are more segments queued, we check again if the length of the queue exceeds the configured maximum or overflows. */ if ((queuelen > TCP_SND_QUEUELEN) || (queuelen > TCP_SNDQUEUELEN_OVERFLOW)) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_enqueue: queue too long %"U16_F" (%"U16_F")\n", queuelen, TCP_SND_QUEUELEN)); goto memerr; } seg->len = seglen; /* build TCP header */ if (pbuf_header(seg->p, TCP_HLEN)) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 2, ("tcp_enqueue: no room for TCP header in pbuf.\n")); TCP_STATS_INC(tcp.err); goto memerr; } seg->tcphdr = seg->p->payload; seg->tcphdr->src = htons(pcb->local_port); seg->tcphdr->dest = htons(pcb->remote_port); seg->tcphdr->seqno = htonl(seqno); seg->tcphdr->urgp = 0; TCPH_FLAGS_SET(seg->tcphdr, flags); /* don't fill in tcphdr->ackno and tcphdr->wnd until later */ seg->flags = optflags; /* Set the length of the header */ TCPH_HDRLEN_SET(seg->tcphdr, (5 + optlen / 4)); LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE, ("tcp_enqueue: queueing %"U32_F":%"U32_F" (0x%"X16_F")\n", ntohl(seg->tcphdr->seqno), ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg), (u16_t)flags)); left -= seglen; seqno += seglen; ptr = (void *)((u8_t *)ptr + seglen); } /* Now that the data to be enqueued has been broken up into TCP segments in the queue variable, we add them to the end of the pcb->unsent queue. */ if (pcb->unsent == NULL) { useg = NULL; } else { for (useg = pcb->unsent; useg->next != NULL; useg = useg->next); } /* { useg is last segment on the unsent queue, NULL if list is empty } */ /* If there is room in the last pbuf on the unsent queue, chain the first pbuf on the queue together with that. */ if (useg != NULL && TCP_TCPLEN(useg) != 0 && !(TCPH_FLAGS(useg->tcphdr) & (TCP_SYN | TCP_FIN)) && !(flags & (TCP_SYN | TCP_FIN)) && /* fit within max seg size */ (useg->len + queue->len <= pcb->mss) && /* only concatenate segments with the same options */ (useg->flags == queue->flags)) { /* Remove TCP header from first segment of our to-be-queued list */ if(pbuf_header(queue->p, -(TCP_HLEN + optlen))) { /* Can we cope with this failing? Just assert for now */ LWIP_ASSERT("pbuf_header failed\n", 0); TCP_STATS_INC(tcp.err); goto memerr; } if (queue->p->len == 0) { /* free the first (header-only) pbuf if it is now empty (contained only headers) */ struct pbuf *old_q = queue->p; queue->p = queue->p->next; old_q->next = NULL; queuelen--; pbuf_free(old_q); } LWIP_ASSERT("zero-length pbuf", (queue->p != NULL) && (queue->p->len > 0)); pbuf_cat(useg->p, queue->p); useg->len += queue->len; useg->next = queue->next; LWIP_DEBUGF(TCP_OUTPUT_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("tcp_enqueue: chaining segments, new len %"U16_F"\n", useg->len)); if (seg == queue) { seg = useg; seglen = useg->len; } memp_free(MEMP_TCP_SEG, queue); } else { /* empty list */ if (useg == NULL) { /* initialize list with this segment */ pcb->unsent = queue; } /* enqueue segment */ else { useg->next = queue; } } if ((flags & TCP_SYN) || (flags & TCP_FIN)) { ++len; } if (flags & TCP_FIN) { pcb->flags |= TF_FIN; } pcb->snd_lbb += len; pcb->snd_buf -= len; /* update number of segments on the queues */ pcb->snd_queuelen = queuelen; LWIP_DEBUGF(TCP_QLEN_DEBUG, ("tcp_enqueue: %"S16_F" (after enqueued)\n", pcb->snd_queuelen)); if (pcb->snd_queuelen != 0) { LWIP_ASSERT("tcp_enqueue: valid queue length", pcb->unacked != NULL || pcb->unsent != NULL); } /* Set the PSH flag in the last segment that we enqueued, but only if the segment has data (indicated by seglen > 0). */ if (seg != NULL && seglen > 0 && seg->tcphdr != NULL && ((apiflags & TCP_WRITE_FLAG_MORE)==0)) { TCPH_SET_FLAG(seg->tcphdr, TCP_PSH); } return ERR_OK; memerr: pcb->flags |= TF_NAGLEMEMERR; TCP_STATS_INC(tcp.memerr); if (queue != NULL) { tcp_segs_free(queue); } if (pcb->snd_queuelen != 0) { LWIP_ASSERT("tcp_enqueue: valid queue length", pcb->unacked != NULL || pcb->unsent != NULL); } LWIP_DEBUGF(TCP_QLEN_DEBUG | LWIP_DBG_STATE, ("tcp_enqueue: %"S16_F" (with mem err)\n", pcb->snd_queuelen)); return ERR_MEM; } #if LWIP_TCP_TIMESTAMPS /* Build a timestamp option (12 bytes long) at the specified options pointer) * * @param pcb tcp_pcb * @param opts option pointer where to store the timestamp option */ static void tcp_build_timestamp_option(struct tcp_pcb *pcb, u32_t *opts) { /* Pad with two NOP options to make everything nicely aligned */ opts[0] = htonl(0x0101080A); opts[1] = htonl(sys_now()); opts[2] = htonl(pcb->ts_recent); } #endif /** * Find out what we can send and send it * * @param pcb Protocol control block for the TCP connection to send data * @return ERR_OK if data has been sent or nothing to send * another err_t on error */ err_t tcp_output(struct tcp_pcb *pcb) { struct pbuf *p; struct tcp_hdr *tcphdr; struct tcp_seg *seg, *useg; u32_t wnd, snd_nxt; #if TCP_CWND_DEBUG s16_t i = 0; #endif /* TCP_CWND_DEBUG */ u8_t optlen = 0; /* First, check if we are invoked by the TCP input processing code. If so, we do not output anything. Instead, we rely on the input processing code to call us when input processing is done with. */ if (tcp_input_pcb == pcb) { return ERR_OK; } wnd = LWIP_MIN(pcb->snd_wnd, pcb->cwnd); seg = pcb->unsent; /* useg should point to last segment on unacked queue */ useg = pcb->unacked; if (useg != NULL) { for (; useg->next != NULL; useg = useg->next); } /* If the TF_ACK_NOW flag is set and no data will be sent (either * because the ->unsent queue is empty or because the window does * not allow it), construct an empty ACK segment and send it. * * If data is to be sent, we will just piggyback the ACK (see below). */ if (pcb->flags & TF_ACK_NOW && (seg == NULL || ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > wnd)) { #if LWIP_TCP_TIMESTAMPS if (pcb->flags & TF_TIMESTAMP) optlen = LWIP_TCP_OPT_LENGTH(TF_SEG_OPTS_TS); #endif p = pbuf_alloc(PBUF_IP, TCP_HLEN + optlen, PBUF_RAM); if (p == NULL) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: (ACK) could not allocate pbuf\n")); return ERR_BUF; } LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: sending ACK for %"U32_F"\n", pcb->rcv_nxt)); /* remove ACK flags from the PCB, as we send an empty ACK now */ pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW); tcphdr = tcp_output_set_header(pcb, p, optlen, htonl(pcb->snd_nxt)); /* NB. MSS option is only sent on SYNs, so ignore it here */ #if LWIP_TCP_TIMESTAMPS pcb->ts_lastacksent = pcb->rcv_nxt; if (pcb->flags & TF_TIMESTAMP) tcp_build_timestamp_option(pcb, (u32_t *)(tcphdr + 1)); #endif #if CHECKSUM_GEN_TCP tcphdr->chksum = inet_chksum_pseudo(p, &(pcb->local_ip), &(pcb->remote_ip), IP_PROTO_TCP, p->tot_len); #endif #if LWIP_NETIF_HWADDRHINT ip_output_hinted(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos, IP_PROTO_TCP, &(pcb->addr_hint)); #else /* LWIP_NETIF_HWADDRHINT*/ ip_output(p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos, IP_PROTO_TCP); #endif /* LWIP_NETIF_HWADDRHINT*/ pbuf_free(p); return ERR_OK; } #if TCP_OUTPUT_DEBUG if (seg == NULL) { LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output: nothing to send (%p)\n", (void*)pcb->unsent)); } #endif /* TCP_OUTPUT_DEBUG */ #if TCP_CWND_DEBUG if (seg == NULL) { LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"U16_F ", cwnd %"U16_F", wnd %"U32_F ", seg == NULL, ack %"U32_F"\n", pcb->snd_wnd, pcb->cwnd, wnd, pcb->lastack)); } else { LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"U16_F", cwnd %"U16_F", wnd %"U32_F ", effwnd %"U32_F", seq %"U32_F", ack %"U32_F"\n", pcb->snd_wnd, pcb->cwnd, wnd, ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len, ntohl(seg->tcphdr->seqno), pcb->lastack)); } #endif /* TCP_CWND_DEBUG */ /* data available and window allows it to be sent? */ while (seg != NULL && ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len <= wnd) { LWIP_ASSERT("RST not expected here!", (TCPH_FLAGS(seg->tcphdr) & TCP_RST) == 0); /* Stop sending if the nagle algorithm would prevent it * Don't stop: * - if tcp_enqueue had a memory error before (prevent delayed ACK timeout) or * - if FIN was already enqueued for this PCB (SYN is always alone in a segment - * either seg->next != NULL or pcb->unacked == NULL; * RST is no sent using tcp_enqueue/tcp_output. */ if((tcp_do_output_nagle(pcb) == 0) && ((pcb->flags & (TF_NAGLEMEMERR | TF_FIN)) == 0)){ break; } #if TCP_CWND_DEBUG LWIP_DEBUGF(TCP_CWND_DEBUG, ("tcp_output: snd_wnd %"U16_F", cwnd %"U16_F", wnd %"U32_F", effwnd %"U32_F", seq %"U32_F", ack %"U32_F", i %"S16_F"\n", pcb->snd_wnd, pcb->cwnd, wnd, ntohl(seg->tcphdr->seqno) + seg->len - pcb->lastack, ntohl(seg->tcphdr->seqno), pcb->lastack, i)); ++i; #endif /* TCP_CWND_DEBUG */ pcb->unsent = seg->next; if (pcb->state != SYN_SENT) { TCPH_SET_FLAG(seg->tcphdr, TCP_ACK); pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW); } tcp_output_segment(seg, pcb); snd_nxt = ntohl(seg->tcphdr->seqno) + TCP_TCPLEN(seg); if (TCP_SEQ_LT(pcb->snd_nxt, snd_nxt)) { pcb->snd_nxt = snd_nxt; } /* put segment on unacknowledged list if length > 0 */ if (TCP_TCPLEN(seg) > 0) { seg->next = NULL; /* unacked list is empty? */ if (pcb->unacked == NULL) { pcb->unacked = seg; useg = seg; /* unacked list is not empty? */ } else { /* In the case of fast retransmit, the packet should not go to the tail * of the unacked queue, but rather somewhere before it. We need to check for * this case. -STJ Jul 27, 2004 */ if (TCP_SEQ_LT(ntohl(seg->tcphdr->seqno), ntohl(useg->tcphdr->seqno))){ /* add segment to before tail of unacked list, keeping the list sorted */ struct tcp_seg **cur_seg = &(pcb->unacked); while (*cur_seg && TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) { cur_seg = &((*cur_seg)->next ); } seg->next = (*cur_seg); (*cur_seg) = seg; } else { /* add segment to tail of unacked list */ useg->next = seg; useg = useg->next; } } /* do not queue empty segments on the unacked list */ } else { tcp_seg_free(seg); } seg = pcb->unsent; } if (seg != NULL && pcb->persist_backoff == 0 && ntohl(seg->tcphdr->seqno) - pcb->lastack + seg->len > pcb->snd_wnd) { /* prepare for persist timer */ pcb->persist_cnt = 0; pcb->persist_backoff = 1; } pcb->flags &= ~TF_NAGLEMEMERR; return ERR_OK; } /** * Called by tcp_output() to actually send a TCP segment over IP. * * @param seg the tcp_seg to send * @param pcb the tcp_pcb for the TCP connection used to send the segment */ static void tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb) { u16_t len; struct netif *netif; u32_t *opts; /** @bug Exclude retransmitted segments from this count. */ snmp_inc_tcpoutsegs(); /* The TCP header has already been constructed, but the ackno and wnd fields remain. */ seg->tcphdr->ackno = htonl(pcb->rcv_nxt); /* advertise our receive window size in this TCP segment */ seg->tcphdr->wnd = htons(pcb->rcv_ann_wnd); pcb->rcv_ann_right_edge = pcb->rcv_nxt + pcb->rcv_ann_wnd; /* Add any requested options. NB MSS option is only set on SYN packets, so ignore it here */ opts = (u32_t *)(seg->tcphdr + 1); if (seg->flags & TF_SEG_OPTS_MSS) { TCP_BUILD_MSS_OPTION(*opts); opts += 1; } #if LWIP_TCP_TIMESTAMPS pcb->ts_lastacksent = pcb->rcv_nxt; if (seg->flags & TF_SEG_OPTS_TS) { tcp_build_timestamp_option(pcb, opts); opts += 3; } #endif /* If we don't have a local IP address, we get one by calling ip_route(). */ if (ip_addr_isany(&(pcb->local_ip))) { netif = ip_route(&(pcb->remote_ip)); if (netif == NULL) { return; } ip_addr_set(&(pcb->local_ip), &(netif->ip_addr)); } /* Set retransmission timer running if it is not currently enabled */ if(pcb->rtime == -1) pcb->rtime = 0; if (pcb->rttest == 0) { pcb->rttest = tcp_ticks; pcb->rtseq = ntohl(seg->tcphdr->seqno); LWIP_DEBUGF(TCP_RTO_DEBUG, ("tcp_output_segment: rtseq %"U32_F"\n", pcb->rtseq)); } LWIP_DEBUGF(TCP_OUTPUT_DEBUG, ("tcp_output_segment: %"U32_F":%"U32_F"\n", htonl(seg->tcphdr->seqno), htonl(seg->tcphdr->seqno) + seg->len)); len = (u16_t)((u8_t *)seg->tcphdr - (u8_t *)seg->p->payload); seg->p->len -= len; seg->p->tot_len -= len; seg->p->payload = seg->tcphdr; seg->tcphdr->chksum = 0; #if CHECKSUM_GEN_TCP seg->tcphdr->chksum = inet_chksum_pseudo(seg->p, &(pcb->local_ip), &(pcb->remote_ip), IP_PROTO_TCP, seg->p->tot_len); #endif TCP_STATS_INC(tcp.xmit); #if LWIP_NETIF_HWADDRHINT ip_output_hinted(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos, IP_PROTO_TCP, &(pcb->addr_hint)); #else /* LWIP_NETIF_HWADDRHINT*/ ip_output(seg->p, &(pcb->local_ip), &(pcb->remote_ip), pcb->ttl, pcb->tos, IP_PROTO_TCP); #endif /* LWIP_NETIF_HWADDRHINT*/ } /** * Send a TCP RESET packet (empty segment with RST flag set) either to * abort a connection or to show that there is no matching local connection * for a received segment. * * Called by tcp_abort() (to abort a local connection), tcp_input() (if no * matching local pcb was found), tcp_listen_input() (if incoming segment * has ACK flag set) and tcp_process() (received segment in the wrong state) * * Since a RST segment is in most cases not sent for an active connection, * tcp_rst() has a number of arguments that are taken from a tcp_pcb for * most other segment output functions. * * @param seqno the sequence number to use for the outgoing segment * @param ackno the acknowledge number to use for the outgoing segment * @param local_ip the local IP address to send the segment from * @param remote_ip the remote IP address to send the segment to * @param local_port the local TCP port to send the segment from * @param remote_port the remote TCP port to send the segment to */ void tcp_rst(u32_t seqno, u32_t ackno, struct ip_addr *local_ip, struct ip_addr *remote_ip, u16_t local_port, u16_t remote_port) { struct pbuf *p; struct tcp_hdr *tcphdr; p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM); if (p == NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_rst: could not allocate memory for pbuf\n")); return; } LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr", (p->len >= sizeof(struct tcp_hdr))); tcphdr = p->payload; tcphdr->src = htons(local_port); tcphdr->dest = htons(remote_port); tcphdr->seqno = htonl(seqno); tcphdr->ackno = htonl(ackno); TCPH_FLAGS_SET(tcphdr, TCP_RST | TCP_ACK); tcphdr->wnd = htons(TCP_WND); tcphdr->urgp = 0; TCPH_HDRLEN_SET(tcphdr, 5); tcphdr->chksum = 0; #if CHECKSUM_GEN_TCP tcphdr->chksum = inet_chksum_pseudo(p, local_ip, remote_ip, IP_PROTO_TCP, p->tot_len); #endif TCP_STATS_INC(tcp.xmit); snmp_inc_tcpoutrsts(); /* Send output with hardcoded TTL since we have no access to the pcb */ ip_output(p, local_ip, remote_ip, TCP_TTL, 0, IP_PROTO_TCP); pbuf_free(p); LWIP_DEBUGF(TCP_RST_DEBUG, ("tcp_rst: seqno %"U32_F" ackno %"U32_F".\n", seqno, ackno)); } /** * Requeue all unacked segments for retransmission * * Called by tcp_slowtmr() for slow retransmission. * * @param pcb the tcp_pcb for which to re-enqueue all unacked segments */ void tcp_rexmit_rto(struct tcp_pcb *pcb) { struct tcp_seg *seg; if (pcb->unacked == NULL) { return; } /* Move all unacked segments to the head of the unsent queue */ for (seg = pcb->unacked; seg->next != NULL; seg = seg->next); /* concatenate unsent queue after unacked queue */ seg->next = pcb->unsent; /* unsent queue is the concatenated queue (of unacked, unsent) */ pcb->unsent = pcb->unacked; /* unacked queue is now empty */ pcb->unacked = NULL; /* increment number of retransmissions */ ++pcb->nrtx; /* Don't take any RTT measurements after retransmitting. */ pcb->rttest = 0; /* Do the actual retransmission */ tcp_output(pcb); } /** * Requeue the first unacked segment for retransmission * * Called by tcp_receive() for fast retramsmit. * * @param pcb the tcp_pcb for which to retransmit the first unacked segment */ void tcp_rexmit(struct tcp_pcb *pcb) { struct tcp_seg *seg; struct tcp_seg **cur_seg; if (pcb->unacked == NULL) { return; } /* Move the first unacked segment to the unsent queue */ /* Keep the unsent queue sorted. */ seg = pcb->unacked; pcb->unacked = seg->next; cur_seg = &(pcb->unsent); while (*cur_seg && TCP_SEQ_LT(ntohl((*cur_seg)->tcphdr->seqno), ntohl(seg->tcphdr->seqno))) { cur_seg = &((*cur_seg)->next ); } seg->next = *cur_seg; *cur_seg = seg; ++pcb->nrtx; /* Don't take any rtt measurements after retransmitting. */ pcb->rttest = 0; /* Do the actual retransmission. */ snmp_inc_tcpretranssegs(); tcp_output(pcb); } /** * Send keepalive packets to keep a connection active although * no data is sent over it. * * Called by tcp_slowtmr() * * @param pcb the tcp_pcb for which to send a keepalive packet */ void tcp_keepalive(struct tcp_pcb *pcb) { struct pbuf *p; struct tcp_hdr *tcphdr; LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: sending KEEPALIVE probe to %"U16_F".%"U16_F".%"U16_F".%"U16_F"\n", ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip), ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip))); LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: tcp_ticks %"U32_F" pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", tcp_ticks, pcb->tmr, pcb->keep_cnt_sent)); p = pbuf_alloc(PBUF_IP, TCP_HLEN, PBUF_RAM); if(p == NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: could not allocate memory for pbuf\n")); return; } LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr", (p->len >= sizeof(struct tcp_hdr))); tcphdr = tcp_output_set_header(pcb, p, 0, htonl(pcb->snd_nxt - 1)); #if CHECKSUM_GEN_TCP tcphdr->chksum = inet_chksum_pseudo(p, &pcb->local_ip, &pcb->remote_ip, IP_PROTO_TCP, p->tot_len); #endif TCP_STATS_INC(tcp.xmit); /* Send output to IP */ #if LWIP_NETIF_HWADDRHINT ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP, &(pcb->addr_hint)); #else /* LWIP_NETIF_HWADDRHINT*/ ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP); #endif /* LWIP_NETIF_HWADDRHINT*/ pbuf_free(p); LWIP_DEBUGF(TCP_DEBUG, ("tcp_keepalive: seqno %"U32_F" ackno %"U32_F".\n", pcb->snd_nxt - 1, pcb->rcv_nxt)); } /** * Send persist timer zero-window probes to keep a connection active * when a window update is lost. * * Called by tcp_slowtmr() * * @param pcb the tcp_pcb for which to send a zero-window probe packet */ void tcp_zero_window_probe(struct tcp_pcb *pcb) { struct pbuf *p; struct tcp_hdr *tcphdr; struct tcp_seg *seg; LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: sending ZERO WINDOW probe to %" U16_F".%"U16_F".%"U16_F".%"U16_F"\n", ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip), ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip))); LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: tcp_ticks %"U32_F " pcb->tmr %"U32_F" pcb->keep_cnt_sent %"U16_F"\n", tcp_ticks, pcb->tmr, pcb->keep_cnt_sent)); seg = pcb->unacked; if(seg == NULL) seg = pcb->unsent; if(seg == NULL) return; p = pbuf_alloc(PBUF_IP, TCP_HLEN + 1, PBUF_RAM); if(p == NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: no memory for pbuf\n")); return; } LWIP_ASSERT("check that first pbuf can hold struct tcp_hdr", (p->len >= sizeof(struct tcp_hdr))); tcphdr = tcp_output_set_header(pcb, p, 0, seg->tcphdr->seqno); /* Copy in one byte from the head of the unacked queue */ *((char *)p->payload + sizeof(struct tcp_hdr)) = *(char *)seg->dataptr; #if CHECKSUM_GEN_TCP tcphdr->chksum = inet_chksum_pseudo(p, &pcb->local_ip, &pcb->remote_ip, IP_PROTO_TCP, p->tot_len); #endif TCP_STATS_INC(tcp.xmit); /* Send output to IP */ #if LWIP_NETIF_HWADDRHINT ip_output_hinted(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP, &(pcb->addr_hint)); #else /* LWIP_NETIF_HWADDRHINT*/ ip_output(p, &pcb->local_ip, &pcb->remote_ip, pcb->ttl, 0, IP_PROTO_TCP); #endif /* LWIP_NETIF_HWADDRHINT*/ pbuf_free(p); LWIP_DEBUGF(TCP_DEBUG, ("tcp_zero_window_probe: seqno %"U32_F " ackno %"U32_F".\n", pcb->snd_nxt - 1, pcb->rcv_nxt)); } #endif /* LWIP_TCP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/core/udp.c000066400000000000000000000675771224274632000220250ustar00rootroot00000000000000/** * @file * User Datagram Protocol module * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ /* udp.c * * The code for the User Datagram Protocol UDP & UDPLite (RFC 3828). * */ /* @todo Check the use of '(struct udp_pcb).chksum_len_rx'! */ #include "lwip/opt.h" #if LWIP_UDP /* don't build if not configured for use in lwipopts.h */ #include "lwip/udp.h" #include "lwip/def.h" #include "lwip/memp.h" #include "lwip/inet.h" #include "lwip/inet_chksum.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/icmp.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include "arch/perf.h" #include "lwip/dhcp.h" #include /* The list of UDP PCBs */ /* exported in udp.h (was static) */ struct udp_pcb *udp_pcbs; /** * Process an incoming UDP datagram. * * Given an incoming UDP datagram (as a chain of pbufs) this function * finds a corresponding UDP PCB and hands over the pbuf to the pcbs * recv function. If no pcb is found or the datagram is incorrect, the * pbuf is freed. * * @param p pbuf to be demultiplexed to a UDP PCB. * @param inp network interface on which the datagram was received. * */ void udp_input(struct pbuf *p, struct netif *inp) { struct udp_hdr *udphdr; struct udp_pcb *pcb, *prev; struct udp_pcb *uncon_pcb; struct ip_hdr *iphdr; u16_t src, dest; u8_t local_match; u8_t broadcast; PERF_START; UDP_STATS_INC(udp.recv); iphdr = p->payload; /* Check minimum length (IP header + UDP header) * and move payload pointer to UDP header */ if (p->tot_len < (IPH_HL(iphdr) * 4 + UDP_HLEN) || pbuf_header(p, -(s16_t)(IPH_HL(iphdr) * 4))) { /* drop short packets */ LWIP_DEBUGF(UDP_DEBUG, ("udp_input: short UDP datagram (%"U16_F" bytes) discarded\n", p->tot_len)); UDP_STATS_INC(udp.lenerr); UDP_STATS_INC(udp.drop); snmp_inc_udpinerrors(); pbuf_free(p); goto end; } udphdr = (struct udp_hdr *)p->payload; /* is broadcast packet ? */ broadcast = ip_addr_isbroadcast(&(iphdr->dest), inp); LWIP_DEBUGF(UDP_DEBUG, ("udp_input: received datagram of length %"U16_F"\n", p->tot_len)); /* convert src and dest ports to host byte order */ src = ntohs(udphdr->src); dest = ntohs(udphdr->dest); udp_debug_print(udphdr); /* print the UDP source and destination */ LWIP_DEBUGF(UDP_DEBUG, ("udp (%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F") <-- " "(%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F")\n", ip4_addr1(&iphdr->dest), ip4_addr2(&iphdr->dest), ip4_addr3(&iphdr->dest), ip4_addr4(&iphdr->dest), ntohs(udphdr->dest), ip4_addr1(&iphdr->src), ip4_addr2(&iphdr->src), ip4_addr3(&iphdr->src), ip4_addr4(&iphdr->src), ntohs(udphdr->src))); #if LWIP_DHCP pcb = NULL; /* when LWIP_DHCP is active, packets to DHCP_CLIENT_PORT may only be processed by the dhcp module, no other UDP pcb may use the local UDP port DHCP_CLIENT_PORT */ if (dest == DHCP_CLIENT_PORT) { /* all packets for DHCP_CLIENT_PORT not coming from DHCP_SERVER_PORT are dropped! */ if (src == DHCP_SERVER_PORT) { if ((inp->dhcp != NULL) && (inp->dhcp->pcb != NULL)) { /* accept the packe if (- broadcast or directed to us) -> DHCP is link-layer-addressed, local ip is always ANY! - inp->dhcp->pcb->remote == ANY or iphdr->src */ if ((ip_addr_isany(&inp->dhcp->pcb->remote_ip) || ip_addr_cmp(&(inp->dhcp->pcb->remote_ip), &(iphdr->src)))) { pcb = inp->dhcp->pcb; } } } } else #endif /* LWIP_DHCP */ { prev = NULL; local_match = 0; uncon_pcb = NULL; /* Iterate through the UDP pcb list for a matching pcb. * 'Perfect match' pcbs (connected to the remote port & ip address) are * preferred. If no perfect match is found, the first unconnected pcb that * matches the local port and ip address gets the datagram. */ for (pcb = udp_pcbs; pcb != NULL; pcb = pcb->next) { local_match = 0; /* print the PCB local and remote address */ LWIP_DEBUGF(UDP_DEBUG, ("pcb (%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F") --- " "(%"U16_F".%"U16_F".%"U16_F".%"U16_F", %"U16_F")\n", ip4_addr1(&pcb->local_ip), ip4_addr2(&pcb->local_ip), ip4_addr3(&pcb->local_ip), ip4_addr4(&pcb->local_ip), pcb->local_port, ip4_addr1(&pcb->remote_ip), ip4_addr2(&pcb->remote_ip), ip4_addr3(&pcb->remote_ip), ip4_addr4(&pcb->remote_ip), pcb->remote_port)); /* compare PCB local addr+port to UDP destination addr+port */ if ((pcb->local_port == dest) && ((!broadcast && ip_addr_isany(&pcb->local_ip)) || ip_addr_cmp(&(pcb->local_ip), &(iphdr->dest)) || #if LWIP_IGMP ip_addr_ismulticast(&(iphdr->dest)) || #endif /* LWIP_IGMP */ #if IP_SOF_BROADCAST_RECV (broadcast && (pcb->so_options & SOF_BROADCAST)))) { #else /* IP_SOF_BROADCAST_RECV */ (broadcast))) { #endif /* IP_SOF_BROADCAST_RECV */ local_match = 1; if ((uncon_pcb == NULL) && ((pcb->flags & UDP_FLAGS_CONNECTED) == 0)) { /* the first unconnected matching PCB */ uncon_pcb = pcb; } } /* compare PCB remote addr+port to UDP source addr+port */ if ((local_match != 0) && (pcb->remote_port == src) && (ip_addr_isany(&pcb->remote_ip) || ip_addr_cmp(&(pcb->remote_ip), &(iphdr->src)))) { /* the first fully matching PCB */ if (prev != NULL) { /* move the pcb to the front of udp_pcbs so that is found faster next time */ prev->next = pcb->next; pcb->next = udp_pcbs; udp_pcbs = pcb; } else { UDP_STATS_INC(udp.cachehit); } break; } prev = pcb; } /* no fully matching pcb found? then look for an unconnected pcb */ if (pcb == NULL) { pcb = uncon_pcb; } } /* Check checksum if this is a match or if it was directed at us. */ if (pcb != NULL || ip_addr_cmp(&inp->ip_addr, &iphdr->dest)) { LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: calculating checksum\n")); #if LWIP_UDPLITE if (IPH_PROTO(iphdr) == IP_PROTO_UDPLITE) { /* Do the UDP Lite checksum */ #if CHECKSUM_CHECK_UDP u16_t chklen = ntohs(udphdr->len); if (chklen < sizeof(struct udp_hdr)) { if (chklen == 0) { /* For UDP-Lite, checksum length of 0 means checksum over the complete packet (See RFC 3828 chap. 3.1) */ chklen = p->tot_len; } else { /* At least the UDP-Lite header must be covered by the checksum! (Again, see RFC 3828 chap. 3.1) */ UDP_STATS_INC(udp.chkerr); UDP_STATS_INC(udp.drop); snmp_inc_udpinerrors(); pbuf_free(p); goto end; } } if (inet_chksum_pseudo_partial(p, (struct ip_addr *)&(iphdr->src), (struct ip_addr *)&(iphdr->dest), IP_PROTO_UDPLITE, p->tot_len, chklen) != 0) { LWIP_DEBUGF(UDP_DEBUG | 2, ("udp_input: UDP Lite datagram discarded due to failing checksum\n")); UDP_STATS_INC(udp.chkerr); UDP_STATS_INC(udp.drop); snmp_inc_udpinerrors(); pbuf_free(p); goto end; } #endif /* CHECKSUM_CHECK_UDP */ } else #endif /* LWIP_UDPLITE */ { #if CHECKSUM_CHECK_UDP if (udphdr->chksum != 0) { if (inet_chksum_pseudo(p, (struct ip_addr *)&(iphdr->src), (struct ip_addr *)&(iphdr->dest), IP_PROTO_UDP, p->tot_len) != 0) { LWIP_DEBUGF(UDP_DEBUG | 2, ("udp_input: UDP datagram discarded due to failing checksum\n")); UDP_STATS_INC(udp.chkerr); UDP_STATS_INC(udp.drop); snmp_inc_udpinerrors(); pbuf_free(p); goto end; } } #endif /* CHECKSUM_CHECK_UDP */ } if(pbuf_header(p, -UDP_HLEN)) { /* Can we cope with this failing? Just assert for now */ LWIP_ASSERT("pbuf_header failed\n", 0); UDP_STATS_INC(udp.drop); snmp_inc_udpinerrors(); pbuf_free(p); goto end; } if (pcb != NULL) { snmp_inc_udpindatagrams(); /* callback */ if (pcb->recv != NULL) { /* now the recv function is responsible for freeing p */ pcb->recv(pcb->recv_arg, pcb, p, &(iphdr->src), src); } else { /* no recv function registered? then we have to free the pbuf! */ pbuf_free(p); goto end; } } else { LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE, ("udp_input: not for us.\n")); #if LWIP_ICMP /* No match was found, send ICMP destination port unreachable unless destination address was broadcast/multicast. */ if (!broadcast && !ip_addr_ismulticast(&iphdr->dest)) { /* move payload pointer back to ip header */ pbuf_header(p, (IPH_HL(iphdr) * 4) + UDP_HLEN); LWIP_ASSERT("p->payload == iphdr", (p->payload == iphdr)); icmp_dest_unreach(p, ICMP_DUR_PORT); } #endif /* LWIP_ICMP */ UDP_STATS_INC(udp.proterr); UDP_STATS_INC(udp.drop); snmp_inc_udpnoports(); pbuf_free(p); } } else { pbuf_free(p); } end: PERF_STOP("udp_input"); } /** * Send data using UDP. * * @param pcb UDP PCB used to send the data. * @param p chain of pbuf's to be sent. * * The datagram will be sent to the current remote_ip & remote_port * stored in pcb. If the pcb is not bound to a port, it will * automatically be bound to a random port. * * @return lwIP error code. * - ERR_OK. Successful. No error occured. * - ERR_MEM. Out of memory. * - ERR_RTE. Could not find route to destination address. * - More errors could be returned by lower protocol layers. * * @see udp_disconnect() udp_sendto() */ err_t udp_send(struct udp_pcb *pcb, struct pbuf *p) { /* send to the packet using remote ip and port stored in the pcb */ return udp_sendto(pcb, p, &pcb->remote_ip, pcb->remote_port); } /** * Send data to a specified address using UDP. * * @param pcb UDP PCB used to send the data. * @param p chain of pbuf's to be sent. * @param dst_ip Destination IP address. * @param dst_port Destination UDP port. * * dst_ip & dst_port are expected to be in the same byte order as in the pcb. * * If the PCB already has a remote address association, it will * be restored after the data is sent. * * @return lwIP error code (@see udp_send for possible error codes) * * @see udp_disconnect() udp_send() */ err_t udp_sendto(struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *dst_ip, u16_t dst_port) { struct netif *netif; LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | 3, ("udp_send\n")); /* find the outgoing network interface for this packet */ #if LWIP_IGMP netif = ip_route((ip_addr_ismulticast(dst_ip))?(&(pcb->multicast_ip)):(dst_ip)); #else netif = ip_route(dst_ip); #endif /* LWIP_IGMP */ /* no outgoing network interface could be found? */ if (netif == NULL) { LWIP_DEBUGF(UDP_DEBUG | 1, ("udp_send: No route to 0x%"X32_F"\n", dst_ip->addr)); UDP_STATS_INC(udp.rterr); return ERR_RTE; } return udp_sendto_if(pcb, p, dst_ip, dst_port, netif); } /** * Send data to a specified address using UDP. * The netif used for sending can be specified. * * This function exists mainly for DHCP, to be able to send UDP packets * on a netif that is still down. * * @param pcb UDP PCB used to send the data. * @param p chain of pbuf's to be sent. * @param dst_ip Destination IP address. * @param dst_port Destination UDP port. * @param netif the netif used for sending. * * dst_ip & dst_port are expected to be in the same byte order as in the pcb. * * @return lwIP error code (@see udp_send for possible error codes) * * @see udp_disconnect() udp_send() */ err_t udp_sendto_if(struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *dst_ip, u16_t dst_port, struct netif *netif) { struct udp_hdr *udphdr; struct ip_addr *src_ip; err_t err; struct pbuf *q; /* q will be sent down the stack */ #if IP_SOF_BROADCAST /* broadcast filter? */ if ( ((pcb->so_options & SOF_BROADCAST) == 0) && ip_addr_isbroadcast(dst_ip, netif) ) { LWIP_DEBUGF(UDP_DEBUG | 1, ("udp_sendto_if: SOF_BROADCAST not enabled on pcb %p\n", (void *)pcb)); return ERR_VAL; } #endif /* IP_SOF_BROADCAST */ /* if the PCB is not yet bound to a port, bind it here */ if (pcb->local_port == 0) { LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | 2, ("udp_send: not yet bound to a port, binding now\n")); err = udp_bind(pcb, &pcb->local_ip, pcb->local_port); if (err != ERR_OK) { LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | 2, ("udp_send: forced port bind failed\n")); return err; } } /* not enough space to add an UDP header to first pbuf in given p chain? */ if (pbuf_header(p, UDP_HLEN)) { /* allocate header in a separate new pbuf */ q = pbuf_alloc(PBUF_IP, UDP_HLEN, PBUF_RAM); /* new header pbuf could not be allocated? */ if (q == NULL) { LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | 2, ("udp_send: could not allocate header\n")); return ERR_MEM; } /* chain header q in front of given pbuf p */ pbuf_chain(q, p); /* first pbuf q points to header pbuf */ LWIP_DEBUGF(UDP_DEBUG, ("udp_send: added header pbuf %p before given pbuf %p\n", (void *)q, (void *)p)); } else { /* adding space for header within p succeeded */ /* first pbuf q equals given pbuf */ q = p; LWIP_DEBUGF(UDP_DEBUG, ("udp_send: added header in given pbuf %p\n", (void *)p)); } LWIP_ASSERT("check that first pbuf can hold struct udp_hdr", (q->len >= sizeof(struct udp_hdr))); /* q now represents the packet to be sent */ udphdr = q->payload; udphdr->src = htons(pcb->local_port); udphdr->dest = htons(dst_port); /* in UDP, 0 checksum means 'no checksum' */ udphdr->chksum = 0x0000; /* PCB local address is IP_ANY_ADDR? */ if (ip_addr_isany(&pcb->local_ip)) { /* use outgoing network interface IP address as source address */ src_ip = &(netif->ip_addr); } else { /* check if UDP PCB local IP address is correct * this could be an old address if netif->ip_addr has changed */ if (!ip_addr_cmp(&(pcb->local_ip), &(netif->ip_addr))) { /* local_ip doesn't match, drop the packet */ if (q != p) { /* free the header pbuf */ pbuf_free(q); q = NULL; /* p is still referenced by the caller, and will live on */ } return ERR_VAL; } /* use UDP PCB local IP address as source address */ src_ip = &(pcb->local_ip); } LWIP_DEBUGF(UDP_DEBUG, ("udp_send: sending datagram of length %"U16_F"\n", q->tot_len)); #if LWIP_UDPLITE /* UDP Lite protocol? */ if (pcb->flags & UDP_FLAGS_UDPLITE) { u16_t chklen, chklen_hdr; LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP LITE packet length %"U16_F"\n", q->tot_len)); /* set UDP message length in UDP header */ chklen_hdr = chklen = pcb->chksum_len_tx; if ((chklen < sizeof(struct udp_hdr)) || (chklen > q->tot_len)) { if (chklen != 0) { LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP LITE pcb->chksum_len is illegal: %"U16_F"\n", chklen)); } /* For UDP-Lite, checksum length of 0 means checksum over the complete packet. (See RFC 3828 chap. 3.1) At least the UDP-Lite header must be covered by the checksum, therefore, if chksum_len has an illegal value, we generate the checksum over the complete packet to be safe. */ chklen_hdr = 0; chklen = q->tot_len; } udphdr->len = htons(chklen_hdr); /* calculate checksum */ #if CHECKSUM_GEN_UDP udphdr->chksum = inet_chksum_pseudo_partial(q, src_ip, dst_ip, IP_PROTO_UDPLITE, q->tot_len, chklen); /* chksum zero must become 0xffff, as zero means 'no checksum' */ if (udphdr->chksum == 0x0000) udphdr->chksum = 0xffff; #endif /* CHECKSUM_CHECK_UDP */ /* output to IP */ LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDPLITE,)\n")); #if LWIP_NETIF_HWADDRHINT netif->addr_hint = &(pcb->addr_hint); #endif /* LWIP_NETIF_HWADDRHINT*/ err = ip_output_if(q, src_ip, dst_ip, pcb->ttl, pcb->tos, IP_PROTO_UDPLITE, netif); #if LWIP_NETIF_HWADDRHINT netif->addr_hint = NULL; #endif /* LWIP_NETIF_HWADDRHINT*/ } else #endif /* LWIP_UDPLITE */ { /* UDP */ LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP packet length %"U16_F"\n", q->tot_len)); udphdr->len = htons(q->tot_len); /* calculate checksum */ #if CHECKSUM_GEN_UDP if ((pcb->flags & UDP_FLAGS_NOCHKSUM) == 0) { udphdr->chksum = inet_chksum_pseudo(q, src_ip, dst_ip, IP_PROTO_UDP, q->tot_len); /* chksum zero must become 0xffff, as zero means 'no checksum' */ if (udphdr->chksum == 0x0000) udphdr->chksum = 0xffff; } #endif /* CHECKSUM_CHECK_UDP */ LWIP_DEBUGF(UDP_DEBUG, ("udp_send: UDP checksum 0x%04"X16_F"\n", udphdr->chksum)); LWIP_DEBUGF(UDP_DEBUG, ("udp_send: ip_output_if (,,,,IP_PROTO_UDP,)\n")); /* output to IP */ #if LWIP_NETIF_HWADDRHINT netif->addr_hint = &(pcb->addr_hint); #endif /* LWIP_NETIF_HWADDRHINT*/ err = ip_output_if(q, src_ip, dst_ip, pcb->ttl, pcb->tos, IP_PROTO_UDP, netif); #if LWIP_NETIF_HWADDRHINT netif->addr_hint = NULL; #endif /* LWIP_NETIF_HWADDRHINT*/ } /* TODO: must this be increased even if error occured? */ snmp_inc_udpoutdatagrams(); /* did we chain a separate header pbuf earlier? */ if (q != p) { /* free the header pbuf */ pbuf_free(q); q = NULL; /* p is still referenced by the caller, and will live on */ } UDP_STATS_INC(udp.xmit); return err; } /** * Bind an UDP PCB. * * @param pcb UDP PCB to be bound with a local address ipaddr and port. * @param ipaddr local IP address to bind with. Use IP_ADDR_ANY to * bind to all local interfaces. * @param port local UDP port to bind with. Use 0 to automatically bind * to a random port between UDP_LOCAL_PORT_RANGE_START and * UDP_LOCAL_PORT_RANGE_END. * * ipaddr & port are expected to be in the same byte order as in the pcb. * * @return lwIP error code. * - ERR_OK. Successful. No error occured. * - ERR_USE. The specified ipaddr and port are already bound to by * another UDP PCB. * * @see udp_disconnect() */ err_t udp_bind(struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port) { struct udp_pcb *ipcb; u8_t rebind; LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | 3, ("udp_bind(ipaddr = ")); ip_addr_debug_print(UDP_DEBUG, ipaddr); LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | 3, (", port = %"U16_F")\n", port)); rebind = 0; /* Check for double bind and rebind of the same pcb */ for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) { /* is this UDP PCB already on active list? */ if (pcb == ipcb) { /* pcb may occur at most once in active list */ LWIP_ASSERT("rebind == 0", rebind == 0); /* pcb already in list, just rebind */ rebind = 1; } /* this code does not allow upper layer to share a UDP port for listening to broadcast or multicast traffic (See SO_REUSE_ADDR and SO_REUSE_PORT under *BSD). TODO: See where it fits instead, OR combine with implementation of UDP PCB flags. Leon Woestenberg. */ #ifdef LWIP_UDP_TODO /* port matches that of PCB in list? */ else if ((ipcb->local_port == port) && /* IP address matches, or one is IP_ADDR_ANY? */ (ip_addr_isany(&(ipcb->local_ip)) || ip_addr_isany(ipaddr) || ip_addr_cmp(&(ipcb->local_ip), ipaddr))) { /* other PCB already binds to this local IP and port */ LWIP_DEBUGF(UDP_DEBUG, ("udp_bind: local port %"U16_F" already bound by another pcb\n", port)); return ERR_USE; } #endif } ip_addr_set(&pcb->local_ip, ipaddr); /* no port specified? */ if (port == 0) { #ifndef UDP_LOCAL_PORT_RANGE_START #define UDP_LOCAL_PORT_RANGE_START 4096 #define UDP_LOCAL_PORT_RANGE_END 0x7fff #endif port = UDP_LOCAL_PORT_RANGE_START; ipcb = udp_pcbs; while ((ipcb != NULL) && (port != UDP_LOCAL_PORT_RANGE_END)) { if (ipcb->local_port == port) { /* port is already used by another udp_pcb */ port++; /* restart scanning all udp pcbs */ ipcb = udp_pcbs; } else /* go on with next udp pcb */ ipcb = ipcb->next; } if (ipcb != NULL) { /* no more ports available in local range */ LWIP_DEBUGF(UDP_DEBUG, ("udp_bind: out of free UDP ports\n")); return ERR_USE; } } pcb->local_port = port; snmp_insert_udpidx_tree(pcb); /* pcb not active yet? */ if (rebind == 0) { /* place the PCB on the active list if not already there */ pcb->next = udp_pcbs; udp_pcbs = pcb; } LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("udp_bind: bound to %"U16_F".%"U16_F".%"U16_F".%"U16_F", port %"U16_F"\n", (u16_t)((ntohl(pcb->local_ip.addr) >> 24) & 0xff), (u16_t)((ntohl(pcb->local_ip.addr) >> 16) & 0xff), (u16_t)((ntohl(pcb->local_ip.addr) >> 8) & 0xff), (u16_t)(ntohl(pcb->local_ip.addr) & 0xff), pcb->local_port)); return ERR_OK; } /** * Connect an UDP PCB. * * This will associate the UDP PCB with the remote address. * * @param pcb UDP PCB to be connected with remote address ipaddr and port. * @param ipaddr remote IP address to connect with. * @param port remote UDP port to connect with. * * @return lwIP error code * * ipaddr & port are expected to be in the same byte order as in the pcb. * * The udp pcb is bound to a random local port if not already bound. * * @see udp_disconnect() */ err_t udp_connect(struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port) { struct udp_pcb *ipcb; if (pcb->local_port == 0) { err_t err = udp_bind(pcb, &pcb->local_ip, pcb->local_port); if (err != ERR_OK) return err; } ip_addr_set(&pcb->remote_ip, ipaddr); pcb->remote_port = port; pcb->flags |= UDP_FLAGS_CONNECTED; /** TODO: this functionality belongs in upper layers */ #ifdef LWIP_UDP_TODO /* Nail down local IP for netconn_addr()/getsockname() */ if (ip_addr_isany(&pcb->local_ip) && !ip_addr_isany(&pcb->remote_ip)) { struct netif *netif; if ((netif = ip_route(&(pcb->remote_ip))) == NULL) { LWIP_DEBUGF(UDP_DEBUG, ("udp_connect: No route to 0x%lx\n", pcb->remote_ip.addr)); UDP_STATS_INC(udp.rterr); return ERR_RTE; } /** TODO: this will bind the udp pcb locally, to the interface which is used to route output packets to the remote address. However, we might want to accept incoming packets on any interface! */ pcb->local_ip = netif->ip_addr; } else if (ip_addr_isany(&pcb->remote_ip)) { pcb->local_ip.addr = 0; } #endif LWIP_DEBUGF(UDP_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_STATE, ("udp_connect: connected to %"U16_F".%"U16_F".%"U16_F".%"U16_F",port %"U16_F"\n", (u16_t)((ntohl(pcb->remote_ip.addr) >> 24) & 0xff), (u16_t)((ntohl(pcb->remote_ip.addr) >> 16) & 0xff), (u16_t)((ntohl(pcb->remote_ip.addr) >> 8) & 0xff), (u16_t)(ntohl(pcb->remote_ip.addr) & 0xff), pcb->remote_port)); /* Insert UDP PCB into the list of active UDP PCBs. */ for (ipcb = udp_pcbs; ipcb != NULL; ipcb = ipcb->next) { if (pcb == ipcb) { /* already on the list, just return */ return ERR_OK; } } /* PCB not yet on the list, add PCB now */ pcb->next = udp_pcbs; udp_pcbs = pcb; return ERR_OK; } /** * Disconnect a UDP PCB * * @param pcb the udp pcb to disconnect. */ void udp_disconnect(struct udp_pcb *pcb) { /* reset remote address association */ ip_addr_set(&pcb->remote_ip, IP_ADDR_ANY); pcb->remote_port = 0; /* mark PCB as unconnected */ pcb->flags &= ~UDP_FLAGS_CONNECTED; } /** * Set a receive callback for a UDP PCB * * This callback will be called when receiving a datagram for the pcb. * * @param pcb the pcb for wich to set the recv callback * @param recv function pointer of the callback function * @param recv_arg additional argument to pass to the callback function */ void udp_recv(struct udp_pcb *pcb, void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port), void *recv_arg) { /* remember recv() callback and user data */ pcb->recv = recv; pcb->recv_arg = recv_arg; } /** * Remove an UDP PCB. * * @param pcb UDP PCB to be removed. The PCB is removed from the list of * UDP PCB's and the data structure is freed from memory. * * @see udp_new() */ void udp_remove(struct udp_pcb *pcb) { struct udp_pcb *pcb2; snmp_delete_udpidx_tree(pcb); /* pcb to be removed is first in list? */ if (udp_pcbs == pcb) { /* make list start at 2nd pcb */ udp_pcbs = udp_pcbs->next; /* pcb not 1st in list */ } else for (pcb2 = udp_pcbs; pcb2 != NULL; pcb2 = pcb2->next) { /* find pcb in udp_pcbs list */ if (pcb2->next != NULL && pcb2->next == pcb) { /* remove pcb from list */ pcb2->next = pcb->next; } } memp_free(MEMP_UDP_PCB, pcb); } /** * Create a UDP PCB. * * @return The UDP PCB which was created. NULL if the PCB data structure * could not be allocated. * * @see udp_remove() */ struct udp_pcb * udp_new(void) { struct udp_pcb *pcb; pcb = memp_malloc(MEMP_UDP_PCB); /* could allocate UDP PCB? */ if (pcb != NULL) { /* UDP Lite: by initializing to all zeroes, chksum_len is set to 0 * which means checksum is generated over the whole datagram per default * (recommended as default by RFC 3828). */ /* initialize PCB to all zeroes */ memset(pcb, 0, sizeof(struct udp_pcb)); pcb->ttl = UDP_TTL; } return pcb; } #if UDP_DEBUG /** * Print UDP header information for debug purposes. * * @param udphdr pointer to the udp header in memory. */ void udp_debug_print(struct udp_hdr *udphdr) { LWIP_DEBUGF(UDP_DEBUG, ("UDP header:\n")); LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(UDP_DEBUG, ("| %5"U16_F" | %5"U16_F" | (src port, dest port)\n", ntohs(udphdr->src), ntohs(udphdr->dest))); LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n")); LWIP_DEBUGF(UDP_DEBUG, ("| %5"U16_F" | 0x%04"X16_F" | (len, chksum)\n", ntohs(udphdr->len), ntohs(udphdr->chksum))); LWIP_DEBUGF(UDP_DEBUG, ("+-------------------------------+\n")); } #endif /* UDP_DEBUG */ #endif /* LWIP_UDP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/000077500000000000000000000000001224274632000215365ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/000077500000000000000000000000001224274632000224205ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/000077500000000000000000000000001224274632000233735ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/autoip.h000066400000000000000000000103021224274632000250410ustar00rootroot00000000000000/** * @file * * AutoIP Automatic LinkLocal IP Configuration */ /* * * Copyright (c) 2007 Dominik Spies * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Dominik Spies * * This is a AutoIP implementation for the lwIP TCP/IP stack. It aims to conform * with RFC 3927. * * * Please coordinate changes and requests with Dominik Spies * */ #ifndef __LWIP_AUTOIP_H__ #define __LWIP_AUTOIP_H__ #include "lwip/opt.h" #if LWIP_AUTOIP /* don't build if not configured for use in lwipopts.h */ #include "lwip/netif.h" #include "lwip/udp.h" #include "netif/etharp.h" /* AutoIP Timing */ #define AUTOIP_TMR_INTERVAL 100 #define AUTOIP_TICKS_PER_SECOND (1000 / AUTOIP_TMR_INTERVAL) /* RFC 3927 Constants */ #define PROBE_WAIT 1 /* second (initial random delay) */ #define PROBE_MIN 1 /* second (minimum delay till repeated probe) */ #define PROBE_MAX 2 /* seconds (maximum delay till repeated probe) */ #define PROBE_NUM 3 /* (number of probe packets) */ #define ANNOUNCE_NUM 2 /* (number of announcement packets) */ #define ANNOUNCE_INTERVAL 2 /* seconds (time between announcement packets) */ #define ANNOUNCE_WAIT 2 /* seconds (delay before announcing) */ #define MAX_CONFLICTS 10 /* (max conflicts before rate limiting) */ #define RATE_LIMIT_INTERVAL 60 /* seconds (delay between successive attempts) */ #define DEFEND_INTERVAL 10 /* seconds (min. wait between defensive ARPs) */ /* AutoIP client states */ #define AUTOIP_STATE_OFF 0 #define AUTOIP_STATE_PROBING 1 #define AUTOIP_STATE_ANNOUNCING 2 #define AUTOIP_STATE_BOUND 3 struct autoip { struct ip_addr llipaddr; /* the currently selected, probed, announced or used LL IP-Address */ u8_t state; /* current AutoIP state machine state */ u8_t sent_num; /* sent number of probes or announces, dependent on state */ u16_t ttw; /* ticks to wait, tick is AUTOIP_TMR_INTERVAL long */ u8_t lastconflict; /* ticks until a conflict can be solved by defending */ u8_t tried_llipaddr; /* total number of probed/used Link Local IP-Addresses */ }; /** Init srand, has to be called before entering mainloop */ void autoip_init(void); /** Start AutoIP client */ err_t autoip_start(struct netif *netif); /** Stop AutoIP client */ err_t autoip_stop(struct netif *netif); /** Handles every incoming ARP Packet, called by etharp_arp_input */ void autoip_arp_reply(struct netif *netif, struct etharp_hdr *hdr); /** Has to be called in loop every AUTOIP_TMR_INTERVAL milliseconds */ void autoip_tmr(void); #endif /* LWIP_AUTOIP */ #endif /* __LWIP_AUTOIP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/icmp.h000066400000000000000000000074541224274632000245060ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_ICMP_H__ #define __LWIP_ICMP_H__ #include "lwip/opt.h" #if LWIP_ICMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/pbuf.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #ifdef __cplusplus extern "C" { #endif #define ICMP_ER 0 /* echo reply */ #define ICMP_DUR 3 /* destination unreachable */ #define ICMP_SQ 4 /* source quench */ #define ICMP_RD 5 /* redirect */ #define ICMP_ECHO 8 /* echo */ #define ICMP_TE 11 /* time exceeded */ #define ICMP_PP 12 /* parameter problem */ #define ICMP_TS 13 /* timestamp */ #define ICMP_TSR 14 /* timestamp reply */ #define ICMP_IRQ 15 /* information request */ #define ICMP_IR 16 /* information reply */ enum icmp_dur_type { ICMP_DUR_NET = 0, /* net unreachable */ ICMP_DUR_HOST = 1, /* host unreachable */ ICMP_DUR_PROTO = 2, /* protocol unreachable */ ICMP_DUR_PORT = 3, /* port unreachable */ ICMP_DUR_FRAG = 4, /* fragmentation needed and DF set */ ICMP_DUR_SR = 5 /* source route failed */ }; enum icmp_te_type { ICMP_TE_TTL = 0, /* time to live exceeded in transit */ ICMP_TE_FRAG = 1 /* fragment reassembly time exceeded */ }; void icmp_input(struct pbuf *p, struct netif *inp); void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t); void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t); #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif /** This is the standard ICMP header only that the u32_t data * is splitted to two u16_t like ICMP echo needs it. * This header is also used for other ICMP types that do not * use the data part. */ PACK_STRUCT_BEGIN struct icmp_echo_hdr { PACK_STRUCT_FIELD(u8_t type); PACK_STRUCT_FIELD(u8_t code); PACK_STRUCT_FIELD(u16_t chksum); PACK_STRUCT_FIELD(u16_t id); PACK_STRUCT_FIELD(u16_t seqno); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define ICMPH_TYPE(hdr) ((hdr)->type) #define ICMPH_CODE(hdr) ((hdr)->code) /** Combines type and code to an u16_t */ #define ICMPH_TYPE_SET(hdr, t) ((hdr)->type = (t)) #define ICMPH_CODE_SET(hdr, c) ((hdr)->code = (c)) #ifdef __cplusplus } #endif #endif /* LWIP_ICMP */ #endif /* __LWIP_ICMP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/igmp.h000066400000000000000000000125201224274632000245000ustar00rootroot00000000000000/* * Copyright (c) 2002 CITEL Technologies Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of CITEL Technologies Ltd nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY CITEL TECHNOLOGIES AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL CITEL TECHNOLOGIES OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * This file is a contribution to the lwIP TCP/IP stack. * The Swedish Institute of Computer Science and Adam Dunkels * are specifically granted permission to redistribute this * source code. */ #ifndef __LWIP_IGMP_H__ #define __LWIP_IGMP_H__ #include "lwip/opt.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/pbuf.h" #if LWIP_IGMP /* don't build if not configured for use in lwipopts.h */ #ifdef __cplusplus extern "C" { #endif /* * IGMP constants */ #define IP_PROTO_IGMP 2 #define IGMP_TTL 1 #define IGMP_MINLEN 8 #define ROUTER_ALERT 0x9404 #define ROUTER_ALERTLEN 4 /* * IGMP message types, including version number. */ #define IGMP_MEMB_QUERY 0x11 /* Membership query */ #define IGMP_V1_MEMB_REPORT 0x12 /* Ver. 1 membership report */ #define IGMP_V2_MEMB_REPORT 0x16 /* Ver. 2 membership report */ #define IGMP_LEAVE_GROUP 0x17 /* Leave-group message */ /* IGMP timer */ #define IGMP_TMR_INTERVAL 100 /* Milliseconds */ #define IGMP_V1_DELAYING_MEMBER_TMR (1000/IGMP_TMR_INTERVAL) #define IGMP_JOIN_DELAYING_MEMBER_TMR (500 /IGMP_TMR_INTERVAL) /* MAC Filter Actions */ #define IGMP_DEL_MAC_FILTER 0 #define IGMP_ADD_MAC_FILTER 1 /* Group membership states */ #define IGMP_GROUP_NON_MEMBER 0 #define IGMP_GROUP_DELAYING_MEMBER 1 #define IGMP_GROUP_IDLE_MEMBER 2 /* * IGMP packet format. */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct igmp_msg { PACK_STRUCT_FIELD(u8_t igmp_msgtype); PACK_STRUCT_FIELD(u8_t igmp_maxresp); PACK_STRUCT_FIELD(u16_t igmp_checksum); PACK_STRUCT_FIELD(struct ip_addr igmp_group_address); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif /* * now a group structure - there is * a list of groups for each interface * these should really be linked from the interface, but * if we keep them separate we will not affect the lwip original code * too much * * There will be a group for the all systems group address but this * will not run the state machine as it is used to kick off reports * from all the other groups */ struct igmp_group { struct igmp_group *next; struct netif *interface; struct ip_addr group_address; u8_t last_reporter_flag; /* signifies we were the last person to report */ u8_t group_state; u16_t timer; u8_t use; /* counter of simultaneous uses */ }; /* Prototypes */ void igmp_init(void); err_t igmp_start( struct netif *netif); err_t igmp_stop( struct netif *netif); void igmp_report_groups( struct netif *netif); struct igmp_group *igmp_lookfor_group( struct netif *ifp, struct ip_addr *addr); struct igmp_group *igmp_lookup_group( struct netif *ifp, struct ip_addr *addr); err_t igmp_remove_group( struct igmp_group *group); void igmp_input( struct pbuf *p, struct netif *inp, struct ip_addr *dest); err_t igmp_joingroup( struct ip_addr *ifaddr, struct ip_addr *groupaddr); err_t igmp_leavegroup( struct ip_addr *ifaddr, struct ip_addr *groupaddr); void igmp_tmr(void); void igmp_timeout( struct igmp_group *group); void igmp_start_timer( struct igmp_group *group, u8_t max_time); void igmp_stop_timer( struct igmp_group *group); void igmp_delaying_member( struct igmp_group *group, u8_t maxresp); err_t igmp_ip_output_if( struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto, struct netif *netif); void igmp_send( struct igmp_group *group, u8_t type); #ifdef __cplusplus } #endif #endif /* LWIP_IGMP */ #endif /* __LWIP_IGMP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/inet.h000066400000000000000000000064021224274632000245050ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_INET_H__ #define __LWIP_INET_H__ #include "lwip/opt.h" #ifdef __cplusplus extern "C" { #endif /* For compatibility with BSD code */ struct in_addr { u32_t s_addr; }; #define INADDR_NONE ((u32_t)0xffffffffUL) /* 255.255.255.255 */ #define INADDR_LOOPBACK ((u32_t)0x7f000001UL) /* 127.0.0.1 */ #define INADDR_ANY ((u32_t)0x00000000UL) /* 0.0.0.0 */ #define INADDR_BROADCAST ((u32_t)0xffffffffUL) /* 255.255.255.255 */ u32_t inet_addr(const char *cp); int inet_aton(const char *cp, struct in_addr *addr); char *inet_ntoa(struct in_addr addr); /* returns ptr to static buffer; not reentrant! */ #ifdef htons #undef htons #endif /* htons */ #ifdef htonl #undef htonl #endif /* htonl */ #ifdef ntohs #undef ntohs #endif /* ntohs */ #ifdef ntohl #undef ntohl #endif /* ntohl */ #ifndef LWIP_PLATFORM_BYTESWAP #define LWIP_PLATFORM_BYTESWAP 0 #endif #if BYTE_ORDER == BIG_ENDIAN #define htons(x) (x) #define ntohs(x) (x) #define htonl(x) (x) #define ntohl(x) (x) #else /* BYTE_ORDER != BIG_ENDIAN */ #ifdef LWIP_PREFIX_BYTEORDER_FUNCS /* workaround for naming collisions on some platforms */ #define htons lwip_htons #define ntohs lwip_ntohs #define htonl lwip_htonl #define ntohl lwip_ntohl #endif /* LWIP_PREFIX_BYTEORDER_FUNCS */ #if LWIP_PLATFORM_BYTESWAP #define htons(x) LWIP_PLATFORM_HTONS(x) #define ntohs(x) LWIP_PLATFORM_HTONS(x) #define htonl(x) LWIP_PLATFORM_HTONL(x) #define ntohl(x) LWIP_PLATFORM_HTONL(x) #else /* LWIP_PLATFORM_BYTESWAP */ u16_t htons(u16_t x); u16_t ntohs(u16_t x); u32_t htonl(u32_t x); u32_t ntohl(u32_t x); #endif /* LWIP_PLATFORM_BYTESWAP */ #endif /* BYTE_ORDER == BIG_ENDIAN */ #ifdef __cplusplus } #endif #endif /* __LWIP_INET_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/inet_chksum.h000066400000000000000000000042731224274632000260630ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_INET_CHKSUM_H__ #define __LWIP_INET_CHKSUM_H__ #include "lwip/opt.h" #include "lwip/pbuf.h" #include "lwip/ip_addr.h" #ifdef __cplusplus extern "C" { #endif u16_t inet_chksum(void *dataptr, u16_t len); u16_t inet_chksum_pbuf(struct pbuf *p); u16_t inet_chksum_pseudo(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u16_t proto_len); #if LWIP_UDPLITE u16_t inet_chksum_pseudo_partial(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u16_t proto_len, u16_t chksum_len); #endif #ifdef __cplusplus } #endif #endif /* __LWIP_INET_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/ip.h000066400000000000000000000155351224274632000241650ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_IP_H__ #define __LWIP_IP_H__ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/pbuf.h" #include "lwip/ip_addr.h" #include "lwip/err.h" #include "lwip/netif.h" #ifdef __cplusplus extern "C" { #endif /** Currently, the function ip_output_if_opt() is only used with IGMP */ #define IP_OPTIONS_SEND LWIP_IGMP #define IP_HLEN 20 #define IP_PROTO_ICMP 1 #define IP_PROTO_UDP 17 #define IP_PROTO_UDPLITE 136 #define IP_PROTO_TCP 6 /* This is passed as the destination address to ip_output_if (not to ip_output), meaning that an IP header already is constructed in the pbuf. This is used when TCP retransmits. */ #ifdef IP_HDRINCL #undef IP_HDRINCL #endif /* IP_HDRINCL */ #define IP_HDRINCL NULL #if LWIP_NETIF_HWADDRHINT #define IP_PCB_ADDRHINT ;u8_t addr_hint #else #define IP_PCB_ADDRHINT #endif /* LWIP_NETIF_HWADDRHINT */ /* This is the common part of all PCB types. It needs to be at the beginning of a PCB type definition. It is located here so that changes to this common part are made in one location instead of having to change all PCB structs. */ #define IP_PCB \ /* ip addresses in network byte order */ \ struct ip_addr local_ip; \ struct ip_addr remote_ip; \ /* Socket options */ \ u16_t so_options; \ /* Type Of Service */ \ u8_t tos; \ /* Time To Live */ \ u8_t ttl \ /* link layer address resolution hint */ \ IP_PCB_ADDRHINT struct ip_pcb { /* Common members of all PCB types */ IP_PCB; }; /* * Option flags per-socket. These are the same like SO_XXX. */ #define SOF_DEBUG (u16_t)0x0001U /* turn on debugging info recording */ #define SOF_ACCEPTCONN (u16_t)0x0002U /* socket has had listen() */ #define SOF_REUSEADDR (u16_t)0x0004U /* allow local address reuse */ #define SOF_KEEPALIVE (u16_t)0x0008U /* keep connections alive */ #define SOF_DONTROUTE (u16_t)0x0010U /* just use interface addresses */ #define SOF_BROADCAST (u16_t)0x0020U /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */ #define SOF_USELOOPBACK (u16_t)0x0040U /* bypass hardware when possible */ #define SOF_LINGER (u16_t)0x0080U /* linger on close if data present */ #define SOF_OOBINLINE (u16_t)0x0100U /* leave received OOB data in line */ #define SOF_REUSEPORT (u16_t)0x0200U /* allow local address & port reuse */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ip_hdr { /* version / header length / type of service */ PACK_STRUCT_FIELD(u16_t _v_hl_tos); /* total length */ PACK_STRUCT_FIELD(u16_t _len); /* identification */ PACK_STRUCT_FIELD(u16_t _id); /* fragment offset field */ PACK_STRUCT_FIELD(u16_t _offset); #define IP_RF 0x8000 /* reserved fragment flag */ #define IP_DF 0x4000 /* dont fragment flag */ #define IP_MF 0x2000 /* more fragments flag */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ /* time to live / protocol*/ PACK_STRUCT_FIELD(u16_t _ttl_proto); /* checksum */ PACK_STRUCT_FIELD(u16_t _chksum); /* source and destination IP addresses */ PACK_STRUCT_FIELD(struct ip_addr src); PACK_STRUCT_FIELD(struct ip_addr dest); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define IPH_V(hdr) (ntohs((hdr)->_v_hl_tos) >> 12) #define IPH_HL(hdr) ((ntohs((hdr)->_v_hl_tos) >> 8) & 0x0f) #define IPH_TOS(hdr) (ntohs((hdr)->_v_hl_tos) & 0xff) #define IPH_LEN(hdr) ((hdr)->_len) #define IPH_ID(hdr) ((hdr)->_id) #define IPH_OFFSET(hdr) ((hdr)->_offset) #define IPH_TTL(hdr) (ntohs((hdr)->_ttl_proto) >> 8) #define IPH_PROTO(hdr) (ntohs((hdr)->_ttl_proto) & 0xff) #define IPH_CHKSUM(hdr) ((hdr)->_chksum) #define IPH_VHLTOS_SET(hdr, v, hl, tos) (hdr)->_v_hl_tos = (htons(((v) << 12) | ((hl) << 8) | (tos))) #define IPH_LEN_SET(hdr, len) (hdr)->_len = (len) #define IPH_ID_SET(hdr, id) (hdr)->_id = (id) #define IPH_OFFSET_SET(hdr, off) (hdr)->_offset = (off) #define IPH_TTL_SET(hdr, ttl) (hdr)->_ttl_proto = (htons(IPH_PROTO(hdr) | ((u16_t)(ttl) << 8))) #define IPH_PROTO_SET(hdr, proto) (hdr)->_ttl_proto = (htons((proto) | (IPH_TTL(hdr) << 8))) #define IPH_CHKSUM_SET(hdr, chksum) (hdr)->_chksum = (chksum) #define ip_init() /* Compatibility define, not init needed. */ struct netif *ip_route(struct ip_addr *dest); err_t ip_input(struct pbuf *p, struct netif *inp); err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto); err_t ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, struct netif *netif); #if LWIP_NETIF_HWADDRHINT err_t ip_output_hinted(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, u8_t *addr_hint); #endif /* LWIP_NETIF_HWADDRHINT */ #if IP_OPTIONS_SEND err_t ip_output_if_opt(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t tos, u8_t proto, struct netif *netif, void *ip_options, u16_t optlen); #endif /* IP_OPTIONS_SEND */ struct netif *ip_current_netif(void); const struct ip_hdr *ip_current_header(void); #if IP_DEBUG void ip_debug_print(struct pbuf *p); #else #define ip_debug_print(p) #endif /* IP_DEBUG */ #ifdef __cplusplus } #endif #endif /* __LWIP_IP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/ip_addr.h000066400000000000000000000146401224274632000251530ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_IP_ADDR_H__ #define __LWIP_IP_ADDR_H__ #include "lwip/opt.h" #include "lwip/inet.h" #ifdef __cplusplus extern "C" { #endif #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ip_addr { PACK_STRUCT_FIELD(u32_t addr); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif /* * struct ipaddr2 is used in the definition of the ARP packet format in * order to support compilers that don't have structure packing. */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ip_addr2 { PACK_STRUCT_FIELD(u16_t addrw[2]); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif struct netif; extern const struct ip_addr ip_addr_any; extern const struct ip_addr ip_addr_broadcast; /** IP_ADDR_ can be used as a fixed IP address * for the wildcard and the broadcast address */ #define IP_ADDR_ANY ((struct ip_addr *)&ip_addr_any) #define IP_ADDR_BROADCAST ((struct ip_addr *)&ip_addr_broadcast) /* Definitions of the bits in an Internet address integer. On subnets, host and network parts are found according to the subnet mask, not these masks. */ #define IN_CLASSA(a) ((((u32_t)(a)) & 0x80000000UL) == 0) #define IN_CLASSA_NET 0xff000000 #define IN_CLASSA_NSHIFT 24 #define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET) #define IN_CLASSA_MAX 128 #define IN_CLASSB(a) ((((u32_t)(a)) & 0xc0000000UL) == 0x80000000UL) #define IN_CLASSB_NET 0xffff0000 #define IN_CLASSB_NSHIFT 16 #define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET) #define IN_CLASSB_MAX 65536 #define IN_CLASSC(a) ((((u32_t)(a)) & 0xe0000000UL) == 0xc0000000UL) #define IN_CLASSC_NET 0xffffff00 #define IN_CLASSC_NSHIFT 8 #define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET) #define IN_CLASSD(a) (((u32_t)(a) & 0xf0000000UL) == 0xe0000000UL) #define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */ #define IN_CLASSD_NSHIFT 28 /* net and host fields, but */ #define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */ #define IN_MULTICAST(a) IN_CLASSD(a) #define IN_EXPERIMENTAL(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL) #define IN_BADCLASS(a) (((u32_t)(a) & 0xf0000000UL) == 0xf0000000UL) #define IN_LOOPBACKNET 127 /* official! */ #define IP4_ADDR(ipaddr, a,b,c,d) \ (ipaddr)->addr = htonl(((u32_t)((a) & 0xff) << 24) | \ ((u32_t)((b) & 0xff) << 16) | \ ((u32_t)((c) & 0xff) << 8) | \ (u32_t)((d) & 0xff)) #define ip_addr_set(dest, src) (dest)->addr = \ ((src) == NULL? 0:\ (src)->addr) /** * Determine if two address are on the same network. * * @arg addr1 IP address 1 * @arg addr2 IP address 2 * @arg mask network identifier mask * @return !0 if the network identifiers of both address match */ #define ip_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \ (mask)->addr) == \ ((addr2)->addr & \ (mask)->addr)) #define ip_addr_cmp(addr1, addr2) ((addr1)->addr == (addr2)->addr) #define ip_addr_isany(addr1) ((addr1) == NULL || (addr1)->addr == 0) u8_t ip_addr_isbroadcast(struct ip_addr *, struct netif *); #define ip_addr_ismulticast(addr1) (((addr1)->addr & ntohl(0xf0000000UL)) == ntohl(0xe0000000UL)) #define ip_addr_islinklocal(addr1) (((addr1)->addr & ntohl(0xffff0000UL)) == ntohl(0xa9fe0000UL)) #define ip_addr_debug_print(debug, ipaddr) \ LWIP_DEBUGF(debug, ("%"U16_F".%"U16_F".%"U16_F".%"U16_F, \ ipaddr != NULL ? \ (u16_t)(ntohl((ipaddr)->addr) >> 24) & 0xff : 0, \ ipaddr != NULL ? \ (u16_t)(ntohl((ipaddr)->addr) >> 16) & 0xff : 0, \ ipaddr != NULL ? \ (u16_t)(ntohl((ipaddr)->addr) >> 8) & 0xff : 0, \ ipaddr != NULL ? \ (u16_t)ntohl((ipaddr)->addr) & 0xff : 0)) /* These are cast to u16_t, with the intent that they are often arguments * to printf using the U16_F format from cc.h. */ #define ip4_addr1(ipaddr) ((u16_t)(ntohl((ipaddr)->addr) >> 24) & 0xff) #define ip4_addr2(ipaddr) ((u16_t)(ntohl((ipaddr)->addr) >> 16) & 0xff) #define ip4_addr3(ipaddr) ((u16_t)(ntohl((ipaddr)->addr) >> 8) & 0xff) #define ip4_addr4(ipaddr) ((u16_t)(ntohl((ipaddr)->addr)) & 0xff) #ifdef __cplusplus } #endif #endif /* __LWIP_IP_ADDR_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv4/lwip/ip_frag.h000066400000000000000000000046501224274632000251600ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Jani Monoses * */ #ifndef __LWIP_IP_FRAG_H__ #define __LWIP_IP_FRAG_H__ #include "lwip/opt.h" #include "lwip/err.h" #include "lwip/pbuf.h" #include "lwip/netif.h" #include "lwip/ip_addr.h" #include "lwip/ip.h" #ifdef __cplusplus extern "C" { #endif #if IP_REASSEMBLY /* The IP reassembly timer interval in milliseconds. */ #define IP_TMR_INTERVAL 1000 /* IP reassembly helper struct. * This is exported because memp needs to know the size. */ struct ip_reassdata { struct ip_reassdata *next; struct pbuf *p; struct ip_hdr iphdr; u16_t datagram_len; u8_t flags; u8_t timer; }; void ip_reass_init(void); void ip_reass_tmr(void); struct pbuf * ip_reass(struct pbuf *p); #endif /* IP_REASSEMBLY */ #if IP_FRAG err_t ip_frag(struct pbuf *p, struct netif *netif, struct ip_addr *dest); #endif /* IP_FRAG */ #ifdef __cplusplus } #endif #endif /* __LWIP_IP_FRAG_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv6/000077500000000000000000000000001224274632000224225ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv6/lwip/000077500000000000000000000000001224274632000233755ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv6/lwip/icmp.h000066400000000000000000000056251224274632000245060ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_ICMP_H__ #define __LWIP_ICMP_H__ #include "lwip/opt.h" #if LWIP_ICMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/pbuf.h" #include "lwip/netif.h" #ifdef __cplusplus extern "C" { #endif #define ICMP6_DUR 1 #define ICMP6_TE 3 #define ICMP6_ECHO 128 /* echo */ #define ICMP6_ER 129 /* echo reply */ enum icmp_dur_type { ICMP_DUR_NET = 0, /* net unreachable */ ICMP_DUR_HOST = 1, /* host unreachable */ ICMP_DUR_PROTO = 2, /* protocol unreachable */ ICMP_DUR_PORT = 3, /* port unreachable */ ICMP_DUR_FRAG = 4, /* fragmentation needed and DF set */ ICMP_DUR_SR = 5 /* source route failed */ }; enum icmp_te_type { ICMP_TE_TTL = 0, /* time to live exceeded in transit */ ICMP_TE_FRAG = 1 /* fragment reassembly time exceeded */ }; void icmp_input(struct pbuf *p, struct netif *inp); void icmp_dest_unreach(struct pbuf *p, enum icmp_dur_type t); void icmp_time_exceeded(struct pbuf *p, enum icmp_te_type t); struct icmp_echo_hdr { u8_t type; u8_t icode; u16_t chksum; u16_t id; u16_t seqno; }; struct icmp_dur_hdr { u8_t type; u8_t icode; u16_t chksum; u32_t unused; }; struct icmp_te_hdr { u8_t type; u8_t icode; u16_t chksum; u32_t unused; }; #ifdef __cplusplus } #endif #endif /* LWIP_ICMP */ #endif /* __LWIP_ICMP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv6/lwip/inet.h000066400000000000000000000045371224274632000245160ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_INET_H__ #define __LWIP_INET_H__ #include "lwip/opt.h" #include "lwip/pbuf.h" #include "lwip/ip_addr.h" #ifdef __cplusplus extern "C" { #endif u16_t inet_chksum(void *data, u16_t len); u16_t inet_chksum_pbuf(struct pbuf *p); u16_t inet_chksum_pseudo(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t proto, u32_t proto_len); u32_t inet_addr(const char *cp); s8_t inet_aton(const char *cp, struct in_addr *addr); #ifndef _MACHINE_ENDIAN_H_ #ifndef _NETINET_IN_H #ifndef _LINUX_BYTEORDER_GENERIC_H u16_t htons(u16_t n); u16_t ntohs(u16_t n); u32_t htonl(u32_t n); u32_t ntohl(u32_t n); #endif /* _LINUX_BYTEORDER_GENERIC_H */ #endif /* _NETINET_IN_H */ #endif /* _MACHINE_ENDIAN_H_ */ #ifdef __cplusplus } #endif #endif /* __LWIP_INET_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv6/lwip/ip.h000066400000000000000000000076521224274632000241700ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_IP_H__ #define __LWIP_IP_H__ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/pbuf.h" #include "lwip/ip_addr.h" #include "lwip/err.h" #ifdef __cplusplus extern "C" { #endif #define IP_HLEN 40 #define IP_PROTO_ICMP 58 #define IP_PROTO_UDP 17 #define IP_PROTO_UDPLITE 136 #define IP_PROTO_TCP 6 /* This is passed as the destination address to ip_output_if (not to ip_output), meaning that an IP header already is constructed in the pbuf. This is used when TCP retransmits. */ #ifdef IP_HDRINCL #undef IP_HDRINCL #endif /* IP_HDRINCL */ #define IP_HDRINCL NULL #if LWIP_NETIF_HWADDRHINT #define IP_PCB_ADDRHINT ;u8_t addr_hint #else #define IP_PCB_ADDRHINT #endif /* LWIP_NETIF_HWADDRHINT */ /* This is the common part of all PCB types. It needs to be at the beginning of a PCB type definition. It is located here so that changes to this common part are made in one location instead of having to change all PCB structs. */ #define IP_PCB struct ip_addr local_ip; \ struct ip_addr remote_ip; \ /* Socket options */ \ u16_t so_options; \ /* Type Of Service */ \ u8_t tos; \ /* Time To Live */ \ u8_t ttl; \ /* link layer address resolution hint */ \ IP_PCB_ADDRHINT /* The IPv6 header. */ struct ip_hdr { #if BYTE_ORDER == LITTLE_ENDIAN u8_t tclass1:4, v:4; u8_t flow1:4, tclass2:4; #else u8_t v:4, tclass1:4; u8_t tclass2:8, flow1:4; #endif u16_t flow2; u16_t len; /* payload length */ u8_t nexthdr; /* next header */ u8_t hoplim; /* hop limit (TTL) */ struct ip_addr src, dest; /* source and destination IP addresses */ }; #define IPH_PROTO(hdr) (iphdr->nexthdr) void ip_init(void); #include "lwip/netif.h" struct netif *ip_route(struct ip_addr *dest); void ip_input(struct pbuf *p, struct netif *inp); /* source and destination addresses in network byte order, please */ err_t ip_output(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto); err_t ip_output_if(struct pbuf *p, struct ip_addr *src, struct ip_addr *dest, u8_t ttl, u8_t proto, struct netif *netif); #define ip_current_netif() NULL #define ip_current_header() NULL #if IP_DEBUG void ip_debug_print(struct pbuf *p); #endif /* IP_DEBUG */ #ifdef __cplusplus } #endif #endif /* __LWIP_IP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/ipv6/lwip/ip_addr.h000066400000000000000000000072101224274632000251500ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_IP_ADDR_H__ #define __LWIP_IP_ADDR_H__ #include "lwip/opt.h" #ifdef __cplusplus extern "C" { #endif #define IP_ADDR_ANY 0 #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ip_addr { PACK_STRUCT_FIELD(u32_t addr[4]); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif /* * struct ipaddr2 is used in the definition of the ARP packet format in * order to support compilers that don't have structure packing. */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ip_addr2 { PACK_STRUCT_FIELD(u16_t addrw[2]); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define IP6_ADDR(ipaddr, a,b,c,d,e,f,g,h) do { (ipaddr)->addr[0] = htonl((u32_t)((a & 0xffff) << 16) | (b & 0xffff)); \ (ipaddr)->addr[1] = htonl(((c & 0xffff) << 16) | (d & 0xffff)); \ (ipaddr)->addr[2] = htonl(((e & 0xffff) << 16) | (f & 0xffff)); \ (ipaddr)->addr[3] = htonl(((g & 0xffff) << 16) | (h & 0xffff)); } while(0) u8_t ip_addr_netcmp(struct ip_addr *addr1, struct ip_addr *addr2, struct ip_addr *mask); u8_t ip_addr_cmp(struct ip_addr *addr1, struct ip_addr *addr2); void ip_addr_set(struct ip_addr *dest, struct ip_addr *src); u8_t ip_addr_isany(struct ip_addr *addr); #define ip_addr_debug_print(debug, ipaddr) \ LWIP_DEBUGF(debug, ("%"X32_F":%"X32_F":%"X32_F":%"X32_F":%"X32_F":%"X32_F":%"X32_F":%"X32_F"\n", \ (ntohl(ipaddr->addr[0]) >> 16) & 0xffff, \ ntohl(ipaddr->addr[0]) & 0xffff, \ (ntohl(ipaddr->addr[1]) >> 16) & 0xffff, \ ntohl(ipaddr->addr[1]) & 0xffff, \ (ntohl(ipaddr->addr[2]) >> 16) & 0xffff, \ ntohl(ipaddr->addr[2]) & 0xffff, \ (ntohl(ipaddr->addr[3]) >> 16) & 0xffff, \ ntohl(ipaddr->addr[3]) & 0xffff)); #ifdef __cplusplus } #endif #endif /* __LWIP_IP_ADDR_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/000077500000000000000000000000001224274632000225115ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/api.h000066400000000000000000000175161224274632000234450ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_API_H__ #define __LWIP_API_H__ #include "lwip/opt.h" #if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ #include /* for size_t */ #include "lwip/netbuf.h" #include "lwip/sys.h" #include "lwip/ip_addr.h" #include "lwip/err.h" #ifdef __cplusplus extern "C" { #endif /* Throughout this file, IP addresses and port numbers are expected to be in * the same byte order as in the corresponding pcb. */ /* Flags for netconn_write */ #define NETCONN_NOFLAG 0x00 #define NETCONN_NOCOPY 0x00 /* Only for source code compatibility */ #define NETCONN_COPY 0x01 #define NETCONN_MORE 0x02 /* Helpers to process several netconn_types by the same code */ #define NETCONNTYPE_GROUP(t) (t&0xF0) #define NETCONNTYPE_DATAGRAM(t) (t&0xE0) enum netconn_type { NETCONN_INVALID = 0, /* NETCONN_TCP Group */ NETCONN_TCP = 0x10, /* NETCONN_UDP Group */ NETCONN_UDP = 0x20, NETCONN_UDPLITE = 0x21, NETCONN_UDPNOCHKSUM= 0x22, /* NETCONN_RAW Group */ NETCONN_RAW = 0x40 }; enum netconn_state { NETCONN_NONE, NETCONN_WRITE, NETCONN_LISTEN, NETCONN_CONNECT, NETCONN_CLOSE }; enum netconn_evt { NETCONN_EVT_RCVPLUS, NETCONN_EVT_RCVMINUS, NETCONN_EVT_SENDPLUS, NETCONN_EVT_SENDMINUS }; #if LWIP_IGMP enum netconn_igmp { NETCONN_JOIN, NETCONN_LEAVE }; #endif /* LWIP_IGMP */ /* forward-declare some structs to avoid to include their headers */ struct ip_pcb; struct tcp_pcb; struct udp_pcb; struct raw_pcb; struct netconn; /** A callback prototype to inform about events for a netconn */ typedef void (* netconn_callback)(struct netconn *, enum netconn_evt, u16_t len); /** A netconn descriptor */ struct netconn { /** type of the netconn (TCP, UDP or RAW) */ enum netconn_type type; /** current state of the netconn */ enum netconn_state state; /** the lwIP internal protocol control block */ union { struct ip_pcb *ip; struct tcp_pcb *tcp; struct udp_pcb *udp; struct raw_pcb *raw; } pcb; /** the last error this netconn had */ err_t err; /** sem that is used to synchroneously execute functions in the core context */ sys_sem_t op_completed; /** mbox where received packets are stored until they are fetched by the netconn application thread (can grow quite big) */ sys_mbox_t recvmbox; /** mbox where new connections are stored until processed by the application thread */ sys_mbox_t acceptmbox; /** only used for socket layer */ int socket; #if LWIP_SO_RCVTIMEO /** timeout to wait for new data to be received (or connections to arrive for listening netconns) */ int recv_timeout; #endif /* LWIP_SO_RCVTIMEO */ #if LWIP_SO_RCVBUF /** maximum amount of bytes queued in recvmbox */ int recv_bufsize; #endif /* LWIP_SO_RCVBUF */ s16_t recv_avail; #if LWIP_TCP /** TCP: when data passed to netconn_write doesn't fit into the send buffer, this temporarily stores the message. */ struct api_msg_msg *write_msg; /** TCP: when data passed to netconn_write doesn't fit into the send buffer, this temporarily stores how much is already sent. */ size_t write_offset; #if LWIP_TCPIP_CORE_LOCKING /** TCP: when data passed to netconn_write doesn't fit into the send buffer, this temporarily stores whether to wake up the original application task if data couldn't be sent in the first try. */ u8_t write_delayed; #endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_TCP */ /** A callback function that is informed about events for this netconn */ netconn_callback callback; }; /* Register an Network connection event */ #define API_EVENT(c,e,l) if (c->callback) { \ (*c->callback)(c, e, l); \ } /* Network connection functions: */ #define netconn_new(t) netconn_new_with_proto_and_callback(t, 0, NULL) #define netconn_new_with_callback(t, c) netconn_new_with_proto_and_callback(t, 0, c) struct netconn *netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, netconn_callback callback); err_t netconn_delete (struct netconn *conn); /** Get the type of a netconn (as enum netconn_type). */ #define netconn_type(conn) (conn->type) err_t netconn_getaddr (struct netconn *conn, struct ip_addr *addr, u16_t *port, u8_t local); #define netconn_peer(c,i,p) netconn_getaddr(c,i,p,0) #define netconn_addr(c,i,p) netconn_getaddr(c,i,p,1) err_t netconn_bind (struct netconn *conn, struct ip_addr *addr, u16_t port); err_t netconn_connect (struct netconn *conn, struct ip_addr *addr, u16_t port); err_t netconn_disconnect (struct netconn *conn); err_t netconn_listen_with_backlog(struct netconn *conn, u8_t backlog); #define netconn_listen(conn) netconn_listen_with_backlog(conn, TCP_DEFAULT_LISTEN_BACKLOG) struct netconn * netconn_accept (struct netconn *conn); struct netbuf * netconn_recv (struct netconn *conn); err_t netconn_sendto (struct netconn *conn, struct netbuf *buf, struct ip_addr *addr, u16_t port); err_t netconn_send (struct netconn *conn, struct netbuf *buf); err_t netconn_write (struct netconn *conn, const void *dataptr, size_t size, u8_t apiflags); err_t netconn_close (struct netconn *conn); #if LWIP_IGMP err_t netconn_join_leave_group (struct netconn *conn, struct ip_addr *multiaddr, struct ip_addr *interface, enum netconn_igmp join_or_leave); #endif /* LWIP_IGMP */ #if LWIP_DNS err_t netconn_gethostbyname(const char *name, struct ip_addr *addr); #endif /* LWIP_DNS */ #define netconn_err(conn) ((conn)->err) #define netconn_recv_bufsize(conn) ((conn)->recv_bufsize) #ifdef __cplusplus } #endif #endif /* LWIP_NETCONN */ #endif /* __LWIP_API_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/api_msg.h000066400000000000000000000125031224274632000243020ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_API_MSG_H__ #define __LWIP_API_MSG_H__ #include "lwip/opt.h" #if LWIP_NETCONN /* don't build if not configured for use in lwipopts.h */ #include /* for size_t */ #include "lwip/ip_addr.h" #include "lwip/err.h" #include "lwip/sys.h" #include "lwip/igmp.h" #include "lwip/api.h" #ifdef __cplusplus extern "C" { #endif /* IP addresses and port numbers are expected to be in * the same byte order as in the corresponding pcb. */ /** This struct includes everything that is necessary to execute a function for a netconn in another thread context (mainly used to process netconns in the tcpip_thread context to be thread safe). */ struct api_msg_msg { /** The netconn which to process - always needed: it includes the semaphore which is used to block the application thread until the function finished. */ struct netconn *conn; /** Depending on the executed function, one of these union members is used */ union { /** used for do_send */ struct netbuf *b; /** used for do_newconn */ struct { u8_t proto; } n; /** used for do_bind and do_connect */ struct { struct ip_addr *ipaddr; u16_t port; } bc; /** used for do_getaddr */ struct { struct ip_addr *ipaddr; u16_t *port; u8_t local; } ad; /** used for do_write */ struct { const void *dataptr; size_t len; u8_t apiflags; } w; /** used ofr do_recv */ struct { u16_t len; } r; #if LWIP_IGMP /** used for do_join_leave_group */ struct { struct ip_addr *multiaddr; struct ip_addr *interface; enum netconn_igmp join_or_leave; } jl; #endif /* LWIP_IGMP */ #if TCP_LISTEN_BACKLOG struct { u8_t backlog; } lb; #endif /* TCP_LISTEN_BACKLOG */ } msg; }; /** This struct contains a function to execute in another thread context and a struct api_msg_msg that serves as an argument for this function. This is passed to tcpip_apimsg to execute functions in tcpip_thread context. */ struct api_msg { /** function to execute in tcpip_thread context */ void (* function)(struct api_msg_msg *msg); /** arguments for this function */ struct api_msg_msg msg; }; #if LWIP_DNS /** As do_gethostbyname requires more arguments but doesn't require a netconn, it has its own struct (to avoid struct api_msg getting bigger than necessary). do_gethostbyname must be called using tcpip_callback instead of tcpip_apimsg (see netconn_gethostbyname). */ struct dns_api_msg { /** Hostname to query or dotted IP address string */ const char *name; /** Rhe resolved address is stored here */ struct ip_addr *addr; /** This semaphore is posted when the name is resolved, the application thread should wait on it. */ sys_sem_t sem; /** Errors are given back here */ err_t *err; }; #endif /* LWIP_DNS */ void do_newconn ( struct api_msg_msg *msg); void do_delconn ( struct api_msg_msg *msg); void do_bind ( struct api_msg_msg *msg); void do_connect ( struct api_msg_msg *msg); void do_disconnect ( struct api_msg_msg *msg); void do_listen ( struct api_msg_msg *msg); void do_send ( struct api_msg_msg *msg); void do_recv ( struct api_msg_msg *msg); void do_write ( struct api_msg_msg *msg); void do_getaddr ( struct api_msg_msg *msg); void do_close ( struct api_msg_msg *msg); #if LWIP_IGMP void do_join_leave_group( struct api_msg_msg *msg); #endif /* LWIP_IGMP */ #if LWIP_DNS void do_gethostbyname(void *arg); #endif /* LWIP_DNS */ struct netconn* netconn_alloc(enum netconn_type t, netconn_callback callback); void netconn_free(struct netconn *conn); #ifdef __cplusplus } #endif #endif /* LWIP_NETCONN */ #endif /* __LWIP_API_MSG_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/arch.h000066400000000000000000000236521224274632000236070ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_ARCH_H__ #define __LWIP_ARCH_H__ #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN 1234 #endif #ifndef BIG_ENDIAN #define BIG_ENDIAN 4321 #endif #include "arch/cc.h" /** Temporary: define format string for size_t if not defined in cc.h */ #ifndef SZT_F #define SZT_F U32_F #endif /* SZT_F */ #ifdef __cplusplus extern "C" { #endif #ifndef PACK_STRUCT_BEGIN #define PACK_STRUCT_BEGIN #endif /* PACK_STRUCT_BEGIN */ #ifndef PACK_STRUCT_END #define PACK_STRUCT_END #endif /* PACK_STRUCT_END */ #ifndef PACK_STRUCT_FIELD #define PACK_STRUCT_FIELD(x) x #endif /* PACK_STRUCT_FIELD */ #ifndef LWIP_UNUSED_ARG #define LWIP_UNUSED_ARG(x) (void)x #endif /* LWIP_UNUSED_ARG */ #ifdef LWIP_PROVIDE_ERRNO #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such process */ #define EINTR 4 /* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No child processes */ #define EAGAIN 11 /* Try again */ #define ENOMEM 12 /* Out of memory */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required */ #define EBUSY 16 /* Device or resource busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large */ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read-only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM 33 /* Math argument out of domain of func */ #define ERANGE 34 /* Math result not representable */ #define EDEADLK 35 /* Resource deadlock would occur */ #define ENAMETOOLONG 36 /* File name too long */ #define ENOLCK 37 /* No record locks available */ #define ENOSYS 38 /* Function not implemented */ #define ENOTEMPTY 39 /* Directory not empty */ #define ELOOP 40 /* Too many symbolic links encountered */ #define EWOULDBLOCK EAGAIN /* Operation would block */ #define ENOMSG 42 /* No message of desired type */ #define EIDRM 43 /* Identifier removed */ #define ECHRNG 44 /* Channel number out of range */ #define EL2NSYNC 45 /* Level 2 not synchronized */ #define EL3HLT 46 /* Level 3 halted */ #define EL3RST 47 /* Level 3 reset */ #define ELNRNG 48 /* Link number out of range */ #define EUNATCH 49 /* Protocol driver not attached */ #define ENOCSI 50 /* No CSI structure available */ #define EL2HLT 51 /* Level 2 halted */ #define EBADE 52 /* Invalid exchange */ #define EBADR 53 /* Invalid request descriptor */ #define EXFULL 54 /* Exchange full */ #define ENOANO 55 /* No anode */ #define EBADRQC 56 /* Invalid request code */ #define EBADSLT 57 /* Invalid slot */ #define EDEADLOCK EDEADLK #define EBFONT 59 /* Bad font file format */ #define ENOSTR 60 /* Device not a stream */ #define ENODATA 61 /* No data available */ #define ETIME 62 /* Timer expired */ #define ENOSR 63 /* Out of streams resources */ #define ENONET 64 /* Machine is not on the network */ #define ENOPKG 65 /* Package not installed */ #define EREMOTE 66 /* Object is remote */ #define ENOLINK 67 /* Link has been severed */ #define EADV 68 /* Advertise error */ #define ESRMNT 69 /* Srmount error */ #define ECOMM 70 /* Communication error on send */ #define EPROTO 71 /* Protocol error */ #define EMULTIHOP 72 /* Multihop attempted */ #define EDOTDOT 73 /* RFS specific error */ #define EBADMSG 74 /* Not a data message */ #define EOVERFLOW 75 /* Value too large for defined data type */ #define ENOTUNIQ 76 /* Name not unique on network */ #define EBADFD 77 /* File descriptor in bad state */ #define EREMCHG 78 /* Remote address changed */ #define ELIBACC 79 /* Can not access a needed shared library */ #define ELIBBAD 80 /* Accessing a corrupted shared library */ #define ELIBSCN 81 /* .lib section in a.out corrupted */ #define ELIBMAX 82 /* Attempting to link in too many shared libraries */ #define ELIBEXEC 83 /* Cannot exec a shared library directly */ #define EILSEQ 84 /* Illegal byte sequence */ #define ERESTART 85 /* Interrupted system call should be restarted */ #define ESTRPIPE 86 /* Streams pipe error */ #define EUSERS 87 /* Too many users */ #define ENOTSOCK 88 /* Socket operation on non-socket */ #define EDESTADDRREQ 89 /* Destination address required */ #define EMSGSIZE 90 /* Message too long */ #define EPROTOTYPE 91 /* Protocol wrong type for socket */ #define ENOPROTOOPT 92 /* Protocol not available */ #define EPROTONOSUPPORT 93 /* Protocol not supported */ #define ESOCKTNOSUPPORT 94 /* Socket type not supported */ #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ #define EPFNOSUPPORT 96 /* Protocol family not supported */ #define EAFNOSUPPORT 97 /* Address family not supported by protocol */ #define EADDRINUSE 98 /* Address already in use */ #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ #define ENETDOWN 100 /* Network is down */ #define ENETUNREACH 101 /* Network is unreachable */ #define ENETRESET 102 /* Network dropped connection because of reset */ #define ECONNABORTED 103 /* Software caused connection abort */ #define ECONNRESET 104 /* Connection reset by peer */ #define ENOBUFS 105 /* No buffer space available */ #define EISCONN 106 /* Transport endpoint is already connected */ #define ENOTCONN 107 /* Transport endpoint is not connected */ #define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ #define ETOOMANYREFS 109 /* Too many references: cannot splice */ #define ETIMEDOUT 110 /* Connection timed out */ #define ECONNREFUSED 111 /* Connection refused */ #define EHOSTDOWN 112 /* Host is down */ #define EHOSTUNREACH 113 /* No route to host */ #define EALREADY 114 /* Operation already in progress */ #define EINPROGRESS 115 /* Operation now in progress */ #define ESTALE 116 /* Stale NFS file handle */ #define EUCLEAN 117 /* Structure needs cleaning */ #define ENOTNAM 118 /* Not a XENIX named type file */ #define ENAVAIL 119 /* No XENIX semaphores available */ #define EISNAM 120 /* Is a named type file */ #define EREMOTEIO 121 /* Remote I/O error */ #define EDQUOT 122 /* Quota exceeded */ #define ENOMEDIUM 123 /* No medium found */ #define EMEDIUMTYPE 124 /* Wrong medium type */ #define ENSROK 0 /* DNS server returned answer with no data */ #define ENSRNODATA 160 /* DNS server returned answer with no data */ #define ENSRFORMERR 161 /* DNS server claims query was misformatted */ #define ENSRSERVFAIL 162 /* DNS server returned general failure */ #define ENSRNOTFOUND 163 /* Domain name not found */ #define ENSRNOTIMP 164 /* DNS server does not implement requested operation */ #define ENSRREFUSED 165 /* DNS server refused query */ #define ENSRBADQUERY 166 /* Misformatted DNS query */ #define ENSRBADNAME 167 /* Misformatted domain name */ #define ENSRBADFAMILY 168 /* Unsupported address family */ #define ENSRBADRESP 169 /* Misformatted DNS reply */ #define ENSRCONNREFUSED 170 /* Could not contact DNS servers */ #define ENSRTIMEOUT 171 /* Timeout while contacting DNS servers */ #define ENSROF 172 /* End of file */ #define ENSRFILE 173 /* Error reading file */ #define ENSRNOMEM 174 /* Out of memory */ #define ENSRDESTRUCTION 175 /* Application terminated lookup */ #define ENSRQUERYDOMAINTOOLONG 176 /* Domain name is too long */ #define ENSRCNAMELOOP 177 /* Domain name is too long */ #ifndef errno extern int errno; #endif #endif /* LWIP_PROVIDE_ERRNO */ #ifdef __cplusplus } #endif #endif /* __LWIP_ARCH_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/debug.h000066400000000000000000000077371224274632000237660ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_DEBUG_H__ #define __LWIP_DEBUG_H__ #include "lwip/arch.h" /** lower two bits indicate debug level * - 0 off * - 1 warning * - 2 serious * - 3 severe */ #define LWIP_DBG_LEVEL_OFF 0x00 #define LWIP_DBG_LEVEL_WARNING 0x01 /* bad checksums, dropped packets, ... */ #define LWIP_DBG_LEVEL_SERIOUS 0x02 /* memory allocation failures, ... */ #define LWIP_DBG_LEVEL_SEVERE 0x03 #define LWIP_DBG_MASK_LEVEL 0x03 /** flag for LWIP_DEBUGF to enable that debug message */ #define LWIP_DBG_ON 0x80U /** flag for LWIP_DEBUGF to disable that debug message */ #define LWIP_DBG_OFF 0x00U /** flag for LWIP_DEBUGF indicating a tracing message (to follow program flow) */ #define LWIP_DBG_TRACE 0x40U /** flag for LWIP_DEBUGF indicating a state debug message (to follow module states) */ #define LWIP_DBG_STATE 0x20U /** flag for LWIP_DEBUGF indicating newly added code, not thoroughly tested yet */ #define LWIP_DBG_FRESH 0x10U /** flag for LWIP_DEBUGF to halt after printing this debug message */ #define LWIP_DBG_HALT 0x08U #ifndef LWIP_NOASSERT #define LWIP_ASSERT(message, assertion) do { if(!(assertion)) \ LWIP_PLATFORM_ASSERT(message); } while(0) #else /* LWIP_NOASSERT */ #define LWIP_ASSERT(message, assertion) #endif /* LWIP_NOASSERT */ /** if "expression" isn't true, then print "message" and execute "handler" expression */ #ifndef LWIP_ERROR #define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \ LWIP_PLATFORM_ASSERT(message); handler;}} while(0) #endif /* LWIP_ERROR */ #ifdef LWIP_DEBUG /** print debug message only if debug message type is enabled... * AND is of correct type AND is at least LWIP_DBG_LEVEL */ #define LWIP_DEBUGF(debug, message) do { \ if ( \ ((debug) & LWIP_DBG_ON) && \ ((debug) & LWIP_DBG_TYPES_ON) && \ ((s16_t)((debug) & LWIP_DBG_MASK_LEVEL) >= LWIP_DBG_MIN_LEVEL)) { \ LWIP_PLATFORM_DIAG(message); \ if ((debug) & LWIP_DBG_HALT) { \ while(1); \ } \ } \ } while(0) #else /* LWIP_DEBUG */ #define LWIP_DEBUGF(debug, message) #endif /* LWIP_DEBUG */ #endif /* __LWIP_DEBUG_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/def.h000066400000000000000000000035471224274632000234310ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_DEF_H__ #define __LWIP_DEF_H__ /* this might define NULL already */ #include "lwip/arch.h" #define LWIP_MAX(x , y) (((x) > (y)) ? (x) : (y)) #define LWIP_MIN(x , y) (((x) < (y)) ? (x) : (y)) #ifndef NULL #define NULL ((void *)0) #endif #endif /* __LWIP_DEF_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/dhcp.h000066400000000000000000000171461224274632000236110ustar00rootroot00000000000000/** @file */ #ifndef __LWIP_DHCP_H__ #define __LWIP_DHCP_H__ #include "lwip/opt.h" #if LWIP_DHCP /* don't build if not configured for use in lwipopts.h */ #include "lwip/netif.h" #include "lwip/udp.h" #ifdef __cplusplus extern "C" { #endif /** period (in seconds) of the application calling dhcp_coarse_tmr() */ #define DHCP_COARSE_TIMER_SECS 60 /** period (in milliseconds) of the application calling dhcp_coarse_tmr() */ #define DHCP_COARSE_TIMER_MSECS (DHCP_COARSE_TIMER_SECS * 1000UL) /** period (in milliseconds) of the application calling dhcp_fine_tmr() */ #define DHCP_FINE_TIMER_MSECS 500 struct dhcp { /** current DHCP state machine state */ u8_t state; /** retries of current request */ u8_t tries; /** transaction identifier of last sent request */ u32_t xid; /** our connection to the DHCP server */ struct udp_pcb *pcb; /** (first) pbuf of incoming msg */ struct pbuf *p; /** incoming msg */ struct dhcp_msg *msg_in; /** incoming msg options */ struct dhcp_msg *options_in; /** ingoing msg options length */ u16_t options_in_len; struct pbuf *p_out; /* pbuf of outcoming msg */ struct dhcp_msg *msg_out; /* outgoing msg */ u16_t options_out_len; /* outgoing msg options length */ u16_t request_timeout; /* #ticks with period DHCP_FINE_TIMER_SECS for request timeout */ u16_t t1_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for renewal time */ u16_t t2_timeout; /* #ticks with period DHCP_COARSE_TIMER_SECS for rebind time */ struct ip_addr server_ip_addr; /* dhcp server address that offered this lease */ struct ip_addr offered_ip_addr; struct ip_addr offered_sn_mask; struct ip_addr offered_gw_addr; struct ip_addr offered_bc_addr; #define DHCP_MAX_DNS 2 u32_t dns_count; /* actual number of DNS servers obtained */ struct ip_addr offered_dns_addr[DHCP_MAX_DNS]; /* DNS server addresses */ u32_t offered_t0_lease; /* lease period (in seconds) */ u32_t offered_t1_renew; /* recommended renew time (usually 50% of lease period) */ u32_t offered_t2_rebind; /* recommended rebind time (usually 66% of lease period) */ #if LWIP_DHCP_AUTOIP_COOP u8_t autoip_coop_state; #endif /** Patch #1308 * TODO: See dhcp.c "TODO"s */ #if 0 struct ip_addr offered_si_addr; u8_t *boot_file_name; #endif }; /* MUST be compiled with "pack structs" or equivalent! */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN /** minimum set of fields of any DHCP message */ struct dhcp_msg { PACK_STRUCT_FIELD(u8_t op); PACK_STRUCT_FIELD(u8_t htype); PACK_STRUCT_FIELD(u8_t hlen); PACK_STRUCT_FIELD(u8_t hops); PACK_STRUCT_FIELD(u32_t xid); PACK_STRUCT_FIELD(u16_t secs); PACK_STRUCT_FIELD(u16_t flags); PACK_STRUCT_FIELD(struct ip_addr ciaddr); PACK_STRUCT_FIELD(struct ip_addr yiaddr); PACK_STRUCT_FIELD(struct ip_addr siaddr); PACK_STRUCT_FIELD(struct ip_addr giaddr); #define DHCP_CHADDR_LEN 16U PACK_STRUCT_FIELD(u8_t chaddr[DHCP_CHADDR_LEN]); #define DHCP_SNAME_LEN 64U PACK_STRUCT_FIELD(u8_t sname[DHCP_SNAME_LEN]); #define DHCP_FILE_LEN 128U PACK_STRUCT_FIELD(u8_t file[DHCP_FILE_LEN]); PACK_STRUCT_FIELD(u32_t cookie); #define DHCP_MIN_OPTIONS_LEN 68U /** make sure user does not configure this too small */ #if ((defined(DHCP_OPTIONS_LEN)) && (DHCP_OPTIONS_LEN < DHCP_MIN_OPTIONS_LEN)) # undef DHCP_OPTIONS_LEN #endif /** allow this to be configured in lwipopts.h, but not too small */ #if (!defined(DHCP_OPTIONS_LEN)) /** set this to be sufficient for your options in outgoing DHCP msgs */ # define DHCP_OPTIONS_LEN DHCP_MIN_OPTIONS_LEN #endif PACK_STRUCT_FIELD(u8_t options[DHCP_OPTIONS_LEN]); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif /** start DHCP configuration */ err_t dhcp_start(struct netif *netif); /** enforce early lease renewal (not needed normally)*/ err_t dhcp_renew(struct netif *netif); /** release the DHCP lease, usually called before dhcp_stop()*/ err_t dhcp_release(struct netif *netif); /** stop DHCP configuration */ void dhcp_stop(struct netif *netif); /** inform server of our manual IP address */ void dhcp_inform(struct netif *netif); /** if enabled, check whether the offered IP address is not in use, using ARP */ #if DHCP_DOES_ARP_CHECK void dhcp_arp_reply(struct netif *netif, struct ip_addr *addr); #endif /** to be called every minute */ void dhcp_coarse_tmr(void); /** to be called every half second */ void dhcp_fine_tmr(void); /** DHCP message item offsets and length */ #define DHCP_MSG_OFS (UDP_DATA_OFS) #define DHCP_OP_OFS (DHCP_MSG_OFS + 0) #define DHCP_HTYPE_OFS (DHCP_MSG_OFS + 1) #define DHCP_HLEN_OFS (DHCP_MSG_OFS + 2) #define DHCP_HOPS_OFS (DHCP_MSG_OFS + 3) #define DHCP_XID_OFS (DHCP_MSG_OFS + 4) #define DHCP_SECS_OFS (DHCP_MSG_OFS + 8) #define DHCP_FLAGS_OFS (DHCP_MSG_OFS + 10) #define DHCP_CIADDR_OFS (DHCP_MSG_OFS + 12) #define DHCP_YIADDR_OFS (DHCP_MSG_OFS + 16) #define DHCP_SIADDR_OFS (DHCP_MSG_OFS + 20) #define DHCP_GIADDR_OFS (DHCP_MSG_OFS + 24) #define DHCP_CHADDR_OFS (DHCP_MSG_OFS + 28) #define DHCP_SNAME_OFS (DHCP_MSG_OFS + 44) #define DHCP_FILE_OFS (DHCP_MSG_OFS + 108) #define DHCP_MSG_LEN 236 #define DHCP_COOKIE_OFS (DHCP_MSG_OFS + DHCP_MSG_LEN) #define DHCP_OPTIONS_OFS (DHCP_MSG_OFS + DHCP_MSG_LEN + 4) #define DHCP_CLIENT_PORT 68 #define DHCP_SERVER_PORT 67 /** DHCP client states */ #define DHCP_REQUESTING 1 #define DHCP_INIT 2 #define DHCP_REBOOTING 3 #define DHCP_REBINDING 4 #define DHCP_RENEWING 5 #define DHCP_SELECTING 6 #define DHCP_INFORMING 7 #define DHCP_CHECKING 8 #define DHCP_PERMANENT 9 #define DHCP_BOUND 10 /** not yet implemented #define DHCP_RELEASING 11 */ #define DHCP_BACKING_OFF 12 #define DHCP_OFF 13 /** AUTOIP cooperatation flags */ #define DHCP_AUTOIP_COOP_STATE_OFF 0 #define DHCP_AUTOIP_COOP_STATE_ON 1 #define DHCP_BOOTREQUEST 1 #define DHCP_BOOTREPLY 2 #define DHCP_DISCOVER 1 #define DHCP_OFFER 2 #define DHCP_REQUEST 3 #define DHCP_DECLINE 4 #define DHCP_ACK 5 #define DHCP_NAK 6 #define DHCP_RELEASE 7 #define DHCP_INFORM 8 #define DHCP_HTYPE_ETH 1 #define DHCP_HLEN_ETH 6 #define DHCP_BROADCAST_FLAG 15 #define DHCP_BROADCAST_MASK (1 << DHCP_FLAG_BROADCAST) /** BootP options */ #define DHCP_OPTION_PAD 0 #define DHCP_OPTION_SUBNET_MASK 1 /* RFC 2132 3.3 */ #define DHCP_OPTION_ROUTER 3 #define DHCP_OPTION_DNS_SERVER 6 #define DHCP_OPTION_HOSTNAME 12 #define DHCP_OPTION_IP_TTL 23 #define DHCP_OPTION_MTU 26 #define DHCP_OPTION_BROADCAST 28 #define DHCP_OPTION_TCP_TTL 37 #define DHCP_OPTION_END 255 /** DHCP options */ #define DHCP_OPTION_REQUESTED_IP 50 /* RFC 2132 9.1, requested IP address */ #define DHCP_OPTION_LEASE_TIME 51 /* RFC 2132 9.2, time in seconds, in 4 bytes */ #define DHCP_OPTION_OVERLOAD 52 /* RFC2132 9.3, use file and/or sname field for options */ #define DHCP_OPTION_MESSAGE_TYPE 53 /* RFC 2132 9.6, important for DHCP */ #define DHCP_OPTION_MESSAGE_TYPE_LEN 1 #define DHCP_OPTION_SERVER_ID 54 /* RFC 2132 9.7, server IP address */ #define DHCP_OPTION_PARAMETER_REQUEST_LIST 55 /* RFC 2132 9.8, requested option types */ #define DHCP_OPTION_MAX_MSG_SIZE 57 /* RFC 2132 9.10, message size accepted >= 576 */ #define DHCP_OPTION_MAX_MSG_SIZE_LEN 2 #define DHCP_OPTION_T1 58 /* T1 renewal time */ #define DHCP_OPTION_T2 59 /* T2 rebinding time */ #define DHCP_OPTION_US 60 #define DHCP_OPTION_CLIENT_ID 61 #define DHCP_OPTION_TFTP_SERVERNAME 66 #define DHCP_OPTION_BOOTFILE 67 /** possible combinations of overloading the file and sname fields with options */ #define DHCP_OVERLOAD_NONE 0 #define DHCP_OVERLOAD_FILE 1 #define DHCP_OVERLOAD_SNAME 2 #define DHCP_OVERLOAD_SNAME_FILE 3 #ifdef __cplusplus } #endif #endif /* LWIP_DHCP */ #endif /*__LWIP_DHCP_H__*/ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/dns.h000066400000000000000000000110701224274632000234450ustar00rootroot00000000000000/** * lwip DNS resolver header file. * Author: Jim Pettinato * April 2007 * ported from uIP resolv.c Copyright (c) 2002-2003, Adam Dunkels. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef __LWIP_DNS_H__ #define __LWIP_DNS_H__ #include "lwip/opt.h" #if LWIP_DNS /* don't build if not configured for use in lwipopts.h */ /** DNS timer period */ #define DNS_TMR_INTERVAL 1000 /** DNS field TYPE used for "Resource Records" */ #define DNS_RRTYPE_A 1 /* a host address */ #define DNS_RRTYPE_NS 2 /* an authoritative name server */ #define DNS_RRTYPE_MD 3 /* a mail destination (Obsolete - use MX) */ #define DNS_RRTYPE_MF 4 /* a mail forwarder (Obsolete - use MX) */ #define DNS_RRTYPE_CNAME 5 /* the canonical name for an alias */ #define DNS_RRTYPE_SOA 6 /* marks the start of a zone of authority */ #define DNS_RRTYPE_MB 7 /* a mailbox domain name (EXPERIMENTAL) */ #define DNS_RRTYPE_MG 8 /* a mail group member (EXPERIMENTAL) */ #define DNS_RRTYPE_MR 9 /* a mail rename domain name (EXPERIMENTAL) */ #define DNS_RRTYPE_NULL 10 /* a null RR (EXPERIMENTAL) */ #define DNS_RRTYPE_WKS 11 /* a well known service description */ #define DNS_RRTYPE_PTR 12 /* a domain name pointer */ #define DNS_RRTYPE_HINFO 13 /* host information */ #define DNS_RRTYPE_MINFO 14 /* mailbox or mail list information */ #define DNS_RRTYPE_MX 15 /* mail exchange */ #define DNS_RRTYPE_TXT 16 /* text strings */ /** DNS field CLASS used for "Resource Records" */ #define DNS_RRCLASS_IN 1 /* the Internet */ #define DNS_RRCLASS_CS 2 /* the CSNET class (Obsolete - used only for examples in some obsolete RFCs) */ #define DNS_RRCLASS_CH 3 /* the CHAOS class */ #define DNS_RRCLASS_HS 4 /* Hesiod [Dyer 87] */ #define DNS_RRCLASS_FLUSH 0x800 /* Flush bit */ /** Callback which is invoked when a hostname is found. * A function of this type must be implemented by the application using the DNS resolver. * @param name pointer to the name that was looked up. * @param ipaddr pointer to a struct ip_addr containing the IP address of the hostname, * or NULL if the name could not be found (or on any other error). * @param callback_arg a user-specified callback argument passed to dns_gethostbyname */ typedef void (*dns_found_callback)(const char *name, struct ip_addr *ipaddr, void *callback_arg); void dns_init(void); void dns_tmr(void); void dns_setserver(u8_t numdns, struct ip_addr *dnsserver); struct ip_addr dns_getserver(u8_t numdns); err_t dns_gethostbyname(const char *hostname, struct ip_addr *addr, dns_found_callback found, void *callback_arg); #if DNS_LOCAL_HOSTLIST && DNS_LOCAL_HOSTLIST_IS_DYNAMIC int dns_local_removehost(const char *hostname, const struct ip_addr *addr); err_t dns_local_addhost(const char *hostname, const struct ip_addr *addr); #endif /* DNS_LOCAL_HOSTLIST && DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ #endif /* LWIP_DNS */ #endif /* __LWIP_DNS_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/err.h000066400000000000000000000060661224274632000234620ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_ERR_H__ #define __LWIP_ERR_H__ #include "lwip/opt.h" #include "lwip/arch.h" #ifdef __cplusplus extern "C" { #endif /** Define LWIP_ERR_T in cc.h if you want to use * a different type for your platform (must be signed). */ #ifdef LWIP_ERR_T typedef LWIP_ERR_T err_t; #else /* LWIP_ERR_T */ typedef s8_t err_t; #endif /* LWIP_ERR_T*/ /* Definitions for error constants. */ #define ERR_OK 0 /* No error, everything OK. */ #define ERR_MEM -1 /* Out of memory error. */ #define ERR_BUF -2 /* Buffer error. */ #define ERR_TIMEOUT -3 /* Timeout. */ #define ERR_RTE -4 /* Routing problem. */ #define ERR_IS_FATAL(e) ((e) < ERR_RTE) #define ERR_ABRT -5 /* Connection aborted. */ #define ERR_RST -6 /* Connection reset. */ #define ERR_CLSD -7 /* Connection closed. */ #define ERR_CONN -8 /* Not connected. */ #define ERR_VAL -9 /* Illegal value. */ #define ERR_ARG -10 /* Illegal argument. */ #define ERR_USE -11 /* Address in use. */ #define ERR_IF -12 /* Low-level netif error */ #define ERR_ISCONN -13 /* Already connected. */ #define ERR_INPROGRESS -14 /* Operation in progress */ #ifdef LWIP_DEBUG extern const char *lwip_strerr(err_t err); #else #define lwip_strerr(x) "" #endif /* LWIP_DEBUG */ #ifdef __cplusplus } #endif #endif /* __LWIP_ERR_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/init.h000066400000000000000000000056211224274632000236310ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_INIT_H__ #define __LWIP_INIT_H__ #include "lwip/opt.h" #ifdef __cplusplus extern "C" { #endif /** X.x.x: Major version of the stack */ #define LWIP_VERSION_MAJOR 1U /** x.X.x: Minor version of the stack */ #define LWIP_VERSION_MINOR 3U /** x.x.X: Revision of the stack */ #define LWIP_VERSION_REVISION 1U /** For release candidates, this is set to 1..254 * For official releases, this is set to 255 (LWIP_RC_RELEASE) * For development versions (CVS), this is set to 0 (LWIP_RC_DEVELOPMENT) */ #define LWIP_VERSION_RC 255U /** LWIP_VERSION_RC is set to LWIP_RC_RELEASE for official releases */ #define LWIP_RC_RELEASE 255U /** LWIP_VERSION_RC is set to LWIP_RC_DEVELOPMENT for CVS versions */ #define LWIP_RC_DEVELOPMENT 0U #define LWIP_VERSION_IS_RELEASE (LWIP_VERSION_RC == LWIP_RC_RELEASE) #define LWIP_VERSION_IS_DEVELOPMENT (LWIP_VERSION_RC == LWIP_RC_DEVELOPMENT) #define LWIP_VERSION_IS_RC ((LWIP_VERSION_RC != LWIP_RC_RELEASE) && (LWIP_VERSION_RC != LWIP_RC_DEVELOPMENT)) /** Provides the version of the stack */ #define LWIP_VERSION (LWIP_VERSION_MAJOR << 24 | LWIP_VERSION_MINOR << 16 | \ LWIP_VERSION_REVISION << 8 | LWIP_VERSION_RC) /* Modules initialization */ void lwip_init(void); #ifdef __cplusplus } #endif #endif /* __LWIP_INIT_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/mem.h000066400000000000000000000064731224274632000234520ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_MEM_H__ #define __LWIP_MEM_H__ #include "lwip/opt.h" #ifdef __cplusplus extern "C" { #endif #if MEM_LIBC_MALLOC #include /* for size_t */ typedef size_t mem_size_t; /* aliases for C library malloc() */ #define mem_init() /* in case C library malloc() needs extra protection, * allow these defines to be overridden. */ #ifndef mem_free #define mem_free free #endif #ifndef mem_malloc #define mem_malloc malloc #endif #ifndef mem_calloc #define mem_calloc calloc #endif #ifndef mem_realloc static void *mem_realloc(void *mem, mem_size_t size) { LWIP_UNUSED_ARG(size); return mem; } #endif #else /* MEM_LIBC_MALLOC */ /* MEM_SIZE would have to be aligned, but using 64000 here instead of * 65535 leaves some room for alignment... */ #if MEM_SIZE > 64000l typedef u32_t mem_size_t; #else typedef u16_t mem_size_t; #endif /* MEM_SIZE > 64000 */ #if MEM_USE_POOLS /** mem_init is not used when using pools instead of a heap */ #define mem_init() /** mem_realloc is not used when using pools instead of a heap: we can't free part of a pool element and don't want to copy the rest */ #define mem_realloc(mem, size) (mem) #else /* MEM_USE_POOLS */ /* lwIP alternative malloc */ void mem_init(void); void *mem_realloc(void *mem, mem_size_t size); #endif /* MEM_USE_POOLS */ void *mem_malloc(mem_size_t size); void *mem_calloc(mem_size_t count, mem_size_t size); void mem_free(void *mem); #endif /* MEM_LIBC_MALLOC */ #ifndef LWIP_MEM_ALIGN_SIZE #define LWIP_MEM_ALIGN_SIZE(size) (((size) + MEM_ALIGNMENT - 1) & ~(MEM_ALIGNMENT-1)) #endif #ifndef LWIP_MEM_ALIGN #define LWIP_MEM_ALIGN(addr) ((void *)(((mem_ptr_t)(addr) + MEM_ALIGNMENT - 1) & ~(mem_ptr_t)(MEM_ALIGNMENT-1))) #endif #ifdef __cplusplus } #endif #endif /* __LWIP_MEM_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/memp.h000066400000000000000000000075471224274632000236350ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_MEMP_H__ #define __LWIP_MEMP_H__ #include "lwip/opt.h" #ifdef __cplusplus extern "C" { #endif /* Create the list of all memory pools managed by memp. MEMP_MAX represents a NULL pool at the end */ typedef enum { #define LWIP_MEMPOOL(name,num,size,desc) MEMP_##name, #include "lwip/memp_std.h" MEMP_MAX } memp_t; #if MEM_USE_POOLS /* Use a helper type to get the start and end of the user "memory pools" for mem_malloc */ typedef enum { /* Get the first (via: MEMP_POOL_HELPER_START = ((u8_t) 1*MEMP_POOL_A + 0*MEMP_POOL_B + 0*MEMP_POOL_C + 0)*/ MEMP_POOL_HELPER_FIRST = ((u8_t) #define LWIP_MEMPOOL(name,num,size,desc) #define LWIP_MALLOC_MEMPOOL_START 1 #define LWIP_MALLOC_MEMPOOL(num, size) * MEMP_POOL_##size + 0 #define LWIP_MALLOC_MEMPOOL_END #include "lwip/memp_std.h" ) , /* Get the last (via: MEMP_POOL_HELPER_END = ((u8_t) 0 + MEMP_POOL_A*0 + MEMP_POOL_B*0 + MEMP_POOL_C*1) */ MEMP_POOL_HELPER_LAST = ((u8_t) #define LWIP_MEMPOOL(name,num,size,desc) #define LWIP_MALLOC_MEMPOOL_START #define LWIP_MALLOC_MEMPOOL(num, size) 0 + MEMP_POOL_##size * #define LWIP_MALLOC_MEMPOOL_END 1 #include "lwip/memp_std.h" ) } memp_pool_helper_t; /* The actual start and stop values are here (cast them over) We use this helper type and these defines so we can avoid using const memp_t values */ #define MEMP_POOL_FIRST ((memp_t) MEMP_POOL_HELPER_FIRST) #define MEMP_POOL_LAST ((memp_t) MEMP_POOL_HELPER_LAST) #endif /* MEM_USE_POOLS */ #if MEMP_MEM_MALLOC || MEM_USE_POOLS extern const u16_t memp_sizes[MEMP_MAX]; #endif /* MEMP_MEM_MALLOC || MEM_USE_POOLS */ #if MEMP_MEM_MALLOC #include "mem.h" #define memp_init() #define memp_malloc(type) mem_malloc(memp_sizes[type]) #define memp_free(type, mem) mem_free(mem) #else /* MEMP_MEM_MALLOC */ #if MEM_USE_POOLS /** This structure is used to save the pool one element came from. */ struct memp_malloc_helper { memp_t poolnr; }; #endif /* MEM_USE_POOLS */ void memp_init(void); #if MEMP_OVERFLOW_CHECK void *memp_malloc_fn(memp_t type, const char* file, const int line); #define memp_malloc(t) memp_malloc_fn((t), __FILE__, __LINE__) #else void *memp_malloc(memp_t type); #endif void memp_free(memp_t type, void *mem); #endif /* MEMP_MEM_MALLOC */ #ifdef __cplusplus } #endif #endif /* __LWIP_MEMP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/memp_std.h000066400000000000000000000077241224274632000245040ustar00rootroot00000000000000/* * SETUP: Make sure we define everything we will need. * * We have create three types of pools: * 1) MEMPOOL - standard pools * 2) MALLOC_MEMPOOL - to be used by mem_malloc in mem.c * 3) PBUF_MEMPOOL - a mempool of pbuf's, so include space for the pbuf struct * * If the include'r doesn't require any special treatment of each of the types * above, then will declare #2 & #3 to be just standard mempools. */ #ifndef LWIP_MALLOC_MEMPOOL /* This treats "malloc pools" just like any other pool. The pools are a little bigger to provide 'size' as the amount of user data. */ #define LWIP_MALLOC_MEMPOOL(num, size) LWIP_MEMPOOL(POOL_##size, num, (size + sizeof(struct memp_malloc_helper)), "MALLOC_"#size) #define LWIP_MALLOC_MEMPOOL_START #define LWIP_MALLOC_MEMPOOL_END #endif /* LWIP_MALLOC_MEMPOOL */ #ifndef LWIP_PBUF_MEMPOOL /* This treats "pbuf pools" just like any other pool. * Allocates buffers for a pbuf struct AND a payload size */ #define LWIP_PBUF_MEMPOOL(name, num, payload, desc) LWIP_MEMPOOL(name, num, (MEMP_ALIGN_SIZE(sizeof(struct pbuf)) + MEMP_ALIGN_SIZE(payload)), desc) #endif /* LWIP_PBUF_MEMPOOL */ /* * A list of internal pools used by LWIP. * * LWIP_MEMPOOL(pool_name, number_elements, element_size, pool_description) * creates a pool name MEMP_pool_name. description is used in stats.c */ #if LWIP_RAW LWIP_MEMPOOL(RAW_PCB, MEMP_NUM_RAW_PCB, sizeof(struct raw_pcb), "RAW_PCB") #endif /* LWIP_RAW */ #if LWIP_UDP LWIP_MEMPOOL(UDP_PCB, MEMP_NUM_UDP_PCB, sizeof(struct udp_pcb), "UDP_PCB") #endif /* LWIP_UDP */ #if LWIP_TCP LWIP_MEMPOOL(TCP_PCB, MEMP_NUM_TCP_PCB, sizeof(struct tcp_pcb), "TCP_PCB") LWIP_MEMPOOL(TCP_PCB_LISTEN, MEMP_NUM_TCP_PCB_LISTEN, sizeof(struct tcp_pcb_listen), "TCP_PCB_LISTEN") LWIP_MEMPOOL(TCP_SEG, MEMP_NUM_TCP_SEG, sizeof(struct tcp_seg), "TCP_SEG") #endif /* LWIP_TCP */ #if IP_REASSEMBLY LWIP_MEMPOOL(REASSDATA, MEMP_NUM_REASSDATA, sizeof(struct ip_reassdata), "REASSDATA") #endif /* IP_REASSEMBLY */ #if LWIP_NETCONN LWIP_MEMPOOL(NETBUF, MEMP_NUM_NETBUF, sizeof(struct netbuf), "NETBUF") LWIP_MEMPOOL(NETCONN, MEMP_NUM_NETCONN, sizeof(struct netconn), "NETCONN") #endif /* LWIP_NETCONN */ #if NO_SYS==0 LWIP_MEMPOOL(TCPIP_MSG_API, MEMP_NUM_TCPIP_MSG_API, sizeof(struct tcpip_msg), "TCPIP_MSG_API") LWIP_MEMPOOL(TCPIP_MSG_INPKT,MEMP_NUM_TCPIP_MSG_INPKT, sizeof(struct tcpip_msg), "TCPIP_MSG_INPKT") #endif /* NO_SYS==0 */ #if ARP_QUEUEING LWIP_MEMPOOL(ARP_QUEUE, MEMP_NUM_ARP_QUEUE, sizeof(struct etharp_q_entry), "ARP_QUEUE") #endif /* ARP_QUEUEING */ #if LWIP_IGMP LWIP_MEMPOOL(IGMP_GROUP, MEMP_NUM_IGMP_GROUP, sizeof(struct igmp_group), "IGMP_GROUP") #endif /* LWIP_IGMP */ #if NO_SYS==0 LWIP_MEMPOOL(SYS_TIMEOUT, MEMP_NUM_SYS_TIMEOUT, sizeof(struct sys_timeo), "SYS_TIMEOUT") #endif /* NO_SYS==0 */ /* * A list of pools of pbuf's used by LWIP. * * LWIP_PBUF_MEMPOOL(pool_name, number_elements, pbuf_payload_size, pool_description) * creates a pool name MEMP_pool_name. description is used in stats.c * This allocates enough space for the pbuf struct and a payload. * (Example: pbuf_payload_size=0 allocates only size for the struct) */ LWIP_PBUF_MEMPOOL(PBUF, MEMP_NUM_PBUF, 0, "PBUF_REF/ROM") LWIP_PBUF_MEMPOOL(PBUF_POOL, PBUF_POOL_SIZE, PBUF_POOL_BUFSIZE, "PBUF_POOL") /* * Allow for user-defined pools; this must be explicitly set in lwipopts.h * since the default is to NOT look for lwippools.h */ #if MEMP_USE_CUSTOM_POOLS #include "lwippools.h" #endif /* MEMP_USE_CUSTOM_POOLS */ /* * REQUIRED CLEANUP: Clear up so we don't get "multiply defined" error later * (#undef is ignored for something that is not defined) */ #undef LWIP_MEMPOOL #undef LWIP_MALLOC_MEMPOOL #undef LWIP_MALLOC_MEMPOOL_START #undef LWIP_MALLOC_MEMPOOL_END #undef LWIP_PBUF_MEMPOOL uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/netbuf.h000066400000000000000000000057211224274632000241520ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_NETBUF_H__ #define __LWIP_NETBUF_H__ #include "lwip/opt.h" #include "lwip/pbuf.h" #ifdef __cplusplus extern "C" { #endif struct netbuf { struct pbuf *p, *ptr; struct ip_addr *addr; u16_t port; }; /* Network buffer functions: */ struct netbuf * netbuf_new (void); void netbuf_delete (struct netbuf *buf); void * netbuf_alloc (struct netbuf *buf, u16_t size); void netbuf_free (struct netbuf *buf); err_t netbuf_ref (struct netbuf *buf, const void *dataptr, u16_t size); void netbuf_chain (struct netbuf *head, struct netbuf *tail); u16_t netbuf_len (struct netbuf *buf); err_t netbuf_data (struct netbuf *buf, void **dataptr, u16_t *len); s8_t netbuf_next (struct netbuf *buf); void netbuf_first (struct netbuf *buf); #define netbuf_copy_partial(buf, dataptr, len, offset) \ pbuf_copy_partial((buf)->p, (dataptr), (len), (offset)) #define netbuf_copy(buf,dataptr,len) netbuf_copy_partial(buf, dataptr, len, 0) #define netbuf_take(buf, dataptr, len) pbuf_take((buf)->p, dataptr, len) #define netbuf_len(buf) ((buf)->p->tot_len) #define netbuf_fromaddr(buf) ((buf)->addr) #define netbuf_fromport(buf) ((buf)->port) #ifdef __cplusplus } #endif #endif /* __LWIP_NETBUF_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/netdb.h000066400000000000000000000105711224274632000237620ustar00rootroot00000000000000/* * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Simon Goldschmidt * */ #include "lwip/opt.h" #if LWIP_DNS && LWIP_SOCKET #include /* for size_t */ #include "lwip/sockets.h" /* some rarely used options */ #ifndef LWIP_DNS_API_DECLARE_H_ERRNO #define LWIP_DNS_API_DECLARE_H_ERRNO 1 #endif #ifndef LWIP_DNS_API_DEFINE_ERRORS #define LWIP_DNS_API_DEFINE_ERRORS 1 #endif #ifndef LWIP_DNS_API_DECLARE_STRUCTS #define LWIP_DNS_API_DECLARE_STRUCTS 1 #endif #if LWIP_DNS_API_DEFINE_ERRORS /** Errors used by the DNS API functions, h_errno can be one of them */ #define EAI_NONAME 200 #define EAI_SERVICE 201 #define EAI_FAIL 202 #define EAI_MEMORY 203 #define HOST_NOT_FOUND 210 #define NO_DATA 211 #define NO_RECOVERY 212 #define TRY_AGAIN 213 #endif /* LWIP_DNS_API_DEFINE_ERRORS */ #if LWIP_DNS_API_DECLARE_STRUCTS struct hostent { char *h_name; /* Official name of the host. */ char **h_aliases; /* A pointer to an array of pointers to alternative host names, terminated by a null pointer. */ int h_addrtype; /* Address type. */ int h_length; /* The length, in bytes, of the address. */ char **h_addr_list; /* A pointer to an array of pointers to network addresses (in network byte order) for the host, terminated by a null pointer. */ #define h_addr h_addr_list[0] /* for backward compatibility */ }; struct addrinfo { int ai_flags; /* Input flags. */ int ai_family; /* Address family of socket. */ int ai_socktype; /* Socket type. */ int ai_protocol; /* Protocol of socket. */ socklen_t ai_addrlen; /* Length of socket address. */ struct sockaddr *ai_addr; /* Socket address of socket. */ char *ai_canonname; /* Canonical name of service location. */ struct addrinfo *ai_next; /* Pointer to next in list. */ }; #endif /* LWIP_DNS_API_DECLARE_STRUCTS */ #if LWIP_DNS_API_DECLARE_H_ERRNO /* application accessable error code set by the DNS API functions */ extern int h_errno; #endif /* LWIP_DNS_API_DECLARE_H_ERRNO*/ struct hostent *lwip_gethostbyname(const char *name); int lwip_gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop); void lwip_freeaddrinfo(struct addrinfo *ai); int lwip_getaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res); #if LWIP_COMPAT_SOCKETS #define gethostbyname(name) lwip_gethostbyname(name) #define gethostbyname_r(name, ret, buf, buflen, result, h_errnop) \ lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop) #define freeaddrinfo(addrinfo) lwip_freeaddrinfo(a) #define getaddrinfo(nodname, servname, hints, res) \ lwip_getaddrinfo(nodname, servname, hints, res) #endif /* LWIP_COMPAT_SOCKETS */ #endif /* LWIP_DNS && LWIP_SOCKET */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/netif.h000066400000000000000000000217511224274632000237750ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_NETIF_H__ #define __LWIP_NETIF_H__ #include "lwip/opt.h" #define ENABLE_LOOPBACK (LWIP_NETIF_LOOPBACK || LWIP_HAVE_LOOPIF) #include "lwip/err.h" #include "lwip/ip_addr.h" #include "lwip/inet.h" #include "lwip/pbuf.h" #if LWIP_DHCP struct dhcp; #endif #if LWIP_AUTOIP struct autoip; #endif #ifdef __cplusplus extern "C" { #endif /* Throughout this file, IP addresses are expected to be in * the same byte order as in IP_PCB. */ /** must be the maximum of all used hardware address lengths across all types of interfaces in use */ #define NETIF_MAX_HWADDR_LEN 6U /** TODO: define the use (where, when, whom) of netif flags */ /** whether the network interface is 'up'. this is * a software flag used to control whether this network * interface is enabled and processes traffic. */ #define NETIF_FLAG_UP 0x01U /** if set, the netif has broadcast capability */ #define NETIF_FLAG_BROADCAST 0x02U /** if set, the netif is one end of a point-to-point connection */ #define NETIF_FLAG_POINTTOPOINT 0x04U /** if set, the interface is configured using DHCP */ #define NETIF_FLAG_DHCP 0x08U /** if set, the interface has an active link * (set by the network interface driver) */ #define NETIF_FLAG_LINK_UP 0x10U /** if set, the netif is an device using ARP */ #define NETIF_FLAG_ETHARP 0x20U /** if set, the netif has IGMP capability */ #define NETIF_FLAG_IGMP 0x40U /** Generic data structure used for all lwIP network interfaces. * The following fields should be filled in by the initialization * function for the device driver: hwaddr_len, hwaddr[], mtu, flags */ struct netif { /** pointer to next in linked list */ struct netif *next; /** IP address configuration in network byte order */ struct ip_addr ip_addr; struct ip_addr netmask; struct ip_addr gw; /** This function is called by the network device driver * to pass a packet up the TCP/IP stack. */ err_t (* input)(struct pbuf *p, struct netif *inp); /** This function is called by the IP module when it wants * to send a packet on the interface. This function typically * first resolves the hardware address, then sends the packet. */ err_t (* output)(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr); /** This function is called by the ARP module when it wants * to send a packet on the interface. This function outputs * the pbuf as-is on the link medium. */ err_t (* linkoutput)(struct netif *netif, struct pbuf *p); #if LWIP_NETIF_STATUS_CALLBACK /** This function is called when the netif state is set to up or down */ void (* status_callback)(struct netif *netif); #endif /* LWIP_NETIF_STATUS_CALLBACK */ #if LWIP_NETIF_LINK_CALLBACK /** This function is called when the netif link is set to up or down */ void (* link_callback)(struct netif *netif); #endif /* LWIP_NETIF_LINK_CALLBACK */ /** This field can be set by the device driver and could point * to state information for the device. */ void *state; #if LWIP_DHCP /** the DHCP client state information for this netif */ struct dhcp *dhcp; #endif /* LWIP_DHCP */ #if LWIP_AUTOIP /** the AutoIP client state information for this netif */ struct autoip *autoip; #endif #if LWIP_NETIF_HOSTNAME /* the hostname for this netif, NULL is a valid value */ char* hostname; #endif /* LWIP_NETIF_HOSTNAME */ /** number of bytes used in hwaddr */ u8_t hwaddr_len; /** link level hardware address of this interface */ u8_t hwaddr[NETIF_MAX_HWADDR_LEN]; /** maximum transfer unit (in bytes) */ u16_t mtu; /** flags (see NETIF_FLAG_ above) */ u8_t flags; /** descriptive abbreviation */ char name[2]; /** number of this interface */ u8_t num; #if LWIP_SNMP /** link type (from "snmp_ifType" enum from snmp.h) */ u8_t link_type; /** (estimate) link speed */ u32_t link_speed; /** timestamp at last change made (up/down) */ u32_t ts; /** counters */ u32_t ifinoctets; u32_t ifinucastpkts; u32_t ifinnucastpkts; u32_t ifindiscards; u32_t ifoutoctets; u32_t ifoutucastpkts; u32_t ifoutnucastpkts; u32_t ifoutdiscards; #endif /* LWIP_SNMP */ #if LWIP_IGMP /* This function could be called to add or delete a entry in the multicast filter table of the ethernet MAC.*/ err_t (*igmp_mac_filter)( struct netif *netif, struct ip_addr *group, u8_t action); #endif /* LWIP_IGMP */ #if LWIP_NETIF_HWADDRHINT u8_t *addr_hint; #endif /* LWIP_NETIF_HWADDRHINT */ #if ENABLE_LOOPBACK /* List of packets to be queued for ourselves. */ struct pbuf *loop_first; struct pbuf *loop_last; #if LWIP_LOOPBACK_MAX_PBUFS u16_t loop_cnt_current; #endif /* LWIP_LOOPBACK_MAX_PBUFS */ #endif /* ENABLE_LOOPBACK */ }; #if LWIP_SNMP #define NETIF_INIT_SNMP(netif, type, speed) \ /* use "snmp_ifType" enum from snmp.h for "type", snmp_ifType_ethernet_csmacd by example */ \ netif->link_type = type; \ /* your link speed here (units: bits per second) */ \ netif->link_speed = speed; \ netif->ts = 0; \ netif->ifinoctets = 0; \ netif->ifinucastpkts = 0; \ netif->ifinnucastpkts = 0; \ netif->ifindiscards = 0; \ netif->ifoutoctets = 0; \ netif->ifoutucastpkts = 0; \ netif->ifoutnucastpkts = 0; \ netif->ifoutdiscards = 0 #else /* LWIP_SNMP */ #define NETIF_INIT_SNMP(netif, type, speed) #endif /* LWIP_SNMP */ /** The list of network interfaces. */ extern struct netif *netif_list; /** The default network interface. */ extern struct netif *netif_default; #define netif_init() /* Compatibility define, not init needed. */ struct netif *netif_add(struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, void *state, err_t (* init)(struct netif *netif), err_t (* input)(struct pbuf *p, struct netif *netif)); void netif_set_addr(struct netif *netif,struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw); void netif_remove(struct netif * netif); /* Returns a network interface given its name. The name is of the form "et0", where the first two letters are the "name" field in the netif structure, and the digit is in the num field in the same structure. */ struct netif *netif_find(char *name); void netif_set_default(struct netif *netif); void netif_set_ipaddr(struct netif *netif, struct ip_addr *ipaddr); void netif_set_netmask(struct netif *netif, struct ip_addr *netmask); void netif_set_gw(struct netif *netif, struct ip_addr *gw); void netif_set_up(struct netif *netif); void netif_set_down(struct netif *netif); u8_t netif_is_up(struct netif *netif); #if LWIP_NETIF_STATUS_CALLBACK /* * Set callback to be called when interface is brought up/down */ void netif_set_status_callback(struct netif *netif, void (* status_callback)(struct netif *netif)); #endif /* LWIP_NETIF_STATUS_CALLBACK */ #if LWIP_NETIF_LINK_CALLBACK void netif_set_link_up(struct netif *netif); void netif_set_link_down(struct netif *netif); u8_t netif_is_link_up(struct netif *netif); /* * Set callback to be called when link is brought up/down */ void netif_set_link_callback(struct netif *netif, void (* link_callback)(struct netif *netif)); #endif /* LWIP_NETIF_LINK_CALLBACK */ #ifdef __cplusplus } #endif #if ENABLE_LOOPBACK err_t netif_loop_output(struct netif *netif, struct pbuf *p, struct ip_addr *dest_ip); void netif_poll(struct netif *netif); #if !LWIP_NETIF_LOOPBACK_MULTITHREADING void netif_poll_all(void); #endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ #endif /* ENABLE_LOOPBACK */ #endif /* __LWIP_NETIF_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/netifapi.h000066400000000000000000000073471224274632000244740ustar00rootroot00000000000000/* * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * */ #ifndef __LWIP_NETIFAPI_H__ #define __LWIP_NETIFAPI_H__ #include "lwip/opt.h" #if LWIP_NETIF_API /* don't build if not configured for use in lwipopts.h */ #include "lwip/sys.h" #include "lwip/netif.h" #include "lwip/dhcp.h" #include "lwip/autoip.h" #ifdef __cplusplus extern "C" { #endif struct netifapi_msg_msg { #if !LWIP_TCPIP_CORE_LOCKING sys_sem_t sem; #endif /* !LWIP_TCPIP_CORE_LOCKING */ err_t err; struct netif *netif; union { struct { struct ip_addr *ipaddr; struct ip_addr *netmask; struct ip_addr *gw; void *state; err_t (* init) (struct netif *netif); err_t (* input)(struct pbuf *p, struct netif *netif); } add; struct { void (* voidfunc)(struct netif *netif); err_t (* errtfunc)(struct netif *netif); } common; } msg; }; struct netifapi_msg { void (* function)(struct netifapi_msg_msg *msg); struct netifapi_msg_msg msg; }; /* API for application */ err_t netifapi_netif_add ( struct netif *netif, struct ip_addr *ipaddr, struct ip_addr *netmask, struct ip_addr *gw, void *state, err_t (* init)(struct netif *netif), err_t (* input)(struct pbuf *p, struct netif *netif) ); err_t netifapi_netif_common ( struct netif *netif, void (* voidfunc)(struct netif *netif), err_t (* errtfunc)(struct netif *netif) ); #define netifapi_netif_remove(n) netifapi_netif_common(n, netif_remove, NULL) #define netifapi_netif_set_up(n) netifapi_netif_common(n, netif_set_up, NULL) #define netifapi_netif_set_down(n) netifapi_netif_common(n, netif_set_down, NULL) #define netifapi_netif_set_default(n) netifapi_netif_common(n, netif_set_default, NULL) #define netifapi_dhcp_start(n) netifapi_netif_common(n, NULL, dhcp_start) #define netifapi_dhcp_stop(n) netifapi_netif_common(n, dhcp_stop, NULL) #define netifapi_autoip_start(n) netifapi_netif_common(n, NULL, autoip_start) #define netifapi_autoip_stop(n) netifapi_netif_common(n, NULL, autoip_stop) #ifdef __cplusplus } #endif #endif /* LWIP_NETIF_API */ #endif /* __LWIP_NETIFAPI_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/opt.h000066400000000000000000001356251224274632000235000ustar00rootroot00000000000000/** * @file * * lwIP Options Configuration */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_OPT_H__ #define __LWIP_OPT_H__ /* * Include user defined options first. Anything not defined in these files * will be set to standard values. Override anything you dont like! */ #include "lwipopts.h" #include "lwip/debug.h" /* ----------------------------------------------- ---------- Platform specific locking ---------- ----------------------------------------------- */ /** * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain * critical regions during buffer allocation, deallocation and memory * allocation and deallocation. */ #ifndef SYS_LIGHTWEIGHT_PROT #define SYS_LIGHTWEIGHT_PROT 0 #endif /** * NO_SYS==1: Provides VERY minimal functionality. Otherwise, * use lwIP facilities. */ #ifndef NO_SYS #define NO_SYS 0 #endif /** * MEMCPY: override this if you have a faster implementation at hand than the * one included in your C library */ #ifndef MEMCPY #define MEMCPY(dst,src,len) memcpy(dst,src,len) #endif /** * SMEMCPY: override this with care! Some compilers (e.g. gcc) can inline a * call to memcpy() if the length is known at compile time and is small. */ #ifndef SMEMCPY #define SMEMCPY(dst,src,len) memcpy(dst,src,len) #endif /* ------------------------------------ ---------- Memory options ---------- ------------------------------------ */ /** * MEM_LIBC_MALLOC==1: Use malloc/free/realloc provided by your C-library * instead of the lwip internal allocator. Can save code size if you * already use it. */ #ifndef MEM_LIBC_MALLOC #define MEM_LIBC_MALLOC 0 #endif /** * MEMP_MEM_MALLOC==1: Use mem_malloc/mem_free instead of the lwip pool allocator. * Especially useful with MEM_LIBC_MALLOC but handle with care regarding execution * speed and usage from interrupts! */ #ifndef MEMP_MEM_MALLOC #define MEMP_MEM_MALLOC 0 #endif /** * MEM_ALIGNMENT: should be set to the alignment of the CPU * 4 byte alignment -> #define MEM_ALIGNMENT 4 * 2 byte alignment -> #define MEM_ALIGNMENT 2 */ #ifndef MEM_ALIGNMENT #define MEM_ALIGNMENT 1 #endif /** * MEM_SIZE: the size of the heap memory. If the application will send * a lot of data that needs to be copied, this should be set high. */ #ifndef MEM_SIZE #define MEM_SIZE 1600 #endif /** * MEMP_OVERFLOW_CHECK: memp overflow protection reserves a configurable * amount of bytes before and after each memp element in every pool and fills * it with a prominent default value. * MEMP_OVERFLOW_CHECK == 0 no checking * MEMP_OVERFLOW_CHECK == 1 checks each element when it is freed * MEMP_OVERFLOW_CHECK >= 2 checks each element in every pool every time * memp_malloc() or memp_free() is called (useful but slow!) */ #ifndef MEMP_OVERFLOW_CHECK #define MEMP_OVERFLOW_CHECK 0 #endif /** * MEMP_SANITY_CHECK==1: run a sanity check after each memp_free() to make * sure that there are no cycles in the linked lists. */ #ifndef MEMP_SANITY_CHECK #define MEMP_SANITY_CHECK 0 #endif /** * MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set * of memory pools of various sizes. When mem_malloc is called, an element of * the smallest pool that can provide the length needed is returned. * To use this, MEMP_USE_CUSTOM_POOLS also has to be enabled. */ #ifndef MEM_USE_POOLS #define MEM_USE_POOLS 0 #endif /** * MEM_USE_POOLS_TRY_BIGGER_POOL==1: if one malloc-pool is empty, try the next * bigger pool - WARNING: THIS MIGHT WASTE MEMORY but it can make a system more * reliable. */ #ifndef MEM_USE_POOLS_TRY_BIGGER_POOL #define MEM_USE_POOLS_TRY_BIGGER_POOL 0 #endif /** * MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h * that defines additional pools beyond the "standard" ones required * by lwIP. If you set this to 1, you must have lwippools.h in your * inlude path somewhere. */ #ifndef MEMP_USE_CUSTOM_POOLS #define MEMP_USE_CUSTOM_POOLS 0 #endif /** * Set this to 1 if you want to free PBUF_RAM pbufs (or call mem_free()) from * interrupt context (or another context that doesn't allow waiting for a * semaphore). * If set to 1, mem_malloc will be protected by a semaphore and SYS_ARCH_PROTECT, * while mem_free will only use SYS_ARCH_PROTECT. mem_malloc SYS_ARCH_UNPROTECTs * with each loop so that mem_free can run. * * ATTENTION: As you can see from the above description, this leads to dis-/ * enabling interrupts often, which can be slow! Also, on low memory, mem_malloc * can need longer. * * If you don't want that, at least for NO_SYS=0, you can still use the following * functions to enqueue a deallocation call which then runs in the tcpip_thread * context: * - pbuf_free_callback(p); * - mem_free_callback(m); */ #ifndef LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT #define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 0 #endif /* ------------------------------------------------ ---------- Internal Memory Pool Sizes ---------- ------------------------------------------------ */ /** * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). * If the application sends a lot of data out of ROM (or other static memory), * this should be set high. */ #ifndef MEMP_NUM_PBUF #define MEMP_NUM_PBUF 16 #endif /** * MEMP_NUM_RAW_PCB: Number of raw connection PCBs * (requires the LWIP_RAW option) */ #ifndef MEMP_NUM_RAW_PCB #define MEMP_NUM_RAW_PCB 4 #endif /** * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One * per active UDP "connection". * (requires the LWIP_UDP option) */ #ifndef MEMP_NUM_UDP_PCB #define MEMP_NUM_UDP_PCB 4 #endif /** * MEMP_NUM_TCP_PCB: the number of simulatenously active TCP connections. * (requires the LWIP_TCP option) */ #ifndef MEMP_NUM_TCP_PCB #define MEMP_NUM_TCP_PCB 5 #endif /** * MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP connections. * (requires the LWIP_TCP option) */ #ifndef MEMP_NUM_TCP_PCB_LISTEN #define MEMP_NUM_TCP_PCB_LISTEN 8 #endif /** * MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP segments. * (requires the LWIP_TCP option) */ #ifndef MEMP_NUM_TCP_SEG #define MEMP_NUM_TCP_SEG 16 #endif /** * MEMP_NUM_REASSDATA: the number of simultaneously IP packets queued for * reassembly (whole packets, not fragments!) */ #ifndef MEMP_NUM_REASSDATA #define MEMP_NUM_REASSDATA 5 #endif /** * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing * packets (pbufs) that are waiting for an ARP request (to resolve * their destination address) to finish. * (requires the ARP_QUEUEING option) */ #ifndef MEMP_NUM_ARP_QUEUE #define MEMP_NUM_ARP_QUEUE 30 #endif /** * MEMP_NUM_IGMP_GROUP: The number of multicast groups whose network interfaces * can be members et the same time (one per netif - allsystems group -, plus one * per netif membership). * (requires the LWIP_IGMP option) */ #ifndef MEMP_NUM_IGMP_GROUP #define MEMP_NUM_IGMP_GROUP 8 #endif /** * MEMP_NUM_SYS_TIMEOUT: the number of simulateously active timeouts. * (requires NO_SYS==0) */ #ifndef MEMP_NUM_SYS_TIMEOUT #define MEMP_NUM_SYS_TIMEOUT 3 #endif /** * MEMP_NUM_NETBUF: the number of struct netbufs. * (only needed if you use the sequential API, like api_lib.c) */ #ifndef MEMP_NUM_NETBUF #define MEMP_NUM_NETBUF 2 #endif /** * MEMP_NUM_NETCONN: the number of struct netconns. * (only needed if you use the sequential API, like api_lib.c) */ #ifndef MEMP_NUM_NETCONN #define MEMP_NUM_NETCONN 4 #endif /** * MEMP_NUM_TCPIP_MSG_API: the number of struct tcpip_msg, which are used * for callback/timeout API communication. * (only needed if you use tcpip.c) */ #ifndef MEMP_NUM_TCPIP_MSG_API #define MEMP_NUM_TCPIP_MSG_API 8 #endif /** * MEMP_NUM_TCPIP_MSG_INPKT: the number of struct tcpip_msg, which are used * for incoming packets. * (only needed if you use tcpip.c) */ #ifndef MEMP_NUM_TCPIP_MSG_INPKT #define MEMP_NUM_TCPIP_MSG_INPKT 8 #endif /** * PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ #ifndef PBUF_POOL_SIZE #define PBUF_POOL_SIZE 16 #endif /* --------------------------------- ---------- ARP options ---------- --------------------------------- */ /** * LWIP_ARP==1: Enable ARP functionality. */ #ifndef LWIP_ARP #define LWIP_ARP 1 #endif /** * ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached. */ #ifndef ARP_TABLE_SIZE #define ARP_TABLE_SIZE 10 #endif /** * ARP_QUEUEING==1: Outgoing packets are queued during hardware address * resolution. */ #ifndef ARP_QUEUEING #define ARP_QUEUEING 1 #endif /** * ETHARP_TRUST_IP_MAC==1: Incoming IP packets cause the ARP table to be * updated with the source MAC and IP addresses supplied in the packet. * You may want to disable this if you do not trust LAN peers to have the * correct addresses, or as a limited approach to attempt to handle * spoofing. If disabled, lwIP will need to make a new ARP request if * the peer is not already in the ARP table, adding a little latency. */ #ifndef ETHARP_TRUST_IP_MAC #define ETHARP_TRUST_IP_MAC 1 #endif /* -------------------------------- ---------- IP options ---------- -------------------------------- */ /** * IP_FORWARD==1: Enables the ability to forward IP packets across network * interfaces. If you are going to run lwIP on a device with only one network * interface, define this to 0. */ #ifndef IP_FORWARD #define IP_FORWARD 0 #endif /** * IP_OPTIONS_ALLOWED: Defines the behavior for IP options. * IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. * IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed). */ #ifndef IP_OPTIONS_ALLOWED #define IP_OPTIONS_ALLOWED 1 #endif /** * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that * this option does not affect outgoing packet sizes, which can be controlled * via IP_FRAG. */ #ifndef IP_REASSEMBLY #define IP_REASSEMBLY 1 #endif /** * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note * that this option does not affect incoming packet sizes, which can be * controlled via IP_REASSEMBLY. */ #ifndef IP_FRAG #define IP_FRAG 1 #endif /** * IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally) * a fragmented IP packet waits for all fragments to arrive. If not all fragments arrived * in this time, the whole packet is discarded. */ #ifndef IP_REASS_MAXAGE #define IP_REASS_MAXAGE 3 #endif /** * IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled. * Since the received pbufs are enqueued, be sure to configure * PBUF_POOL_SIZE > IP_REASS_MAX_PBUFS so that the stack is still able to receive * packets even if the maximum amount of fragments is enqueued for reassembly! */ #ifndef IP_REASS_MAX_PBUFS #define IP_REASS_MAX_PBUFS 10 #endif /** * IP_FRAG_USES_STATIC_BUF==1: Use a static MTU-sized buffer for IP * fragmentation. Otherwise pbufs are allocated and reference the original * packet data to be fragmented. */ #ifndef IP_FRAG_USES_STATIC_BUF #define IP_FRAG_USES_STATIC_BUF 1 #endif /** * IP_FRAG_MAX_MTU: Assumed max MTU on any interface for IP frag buffer * (requires IP_FRAG_USES_STATIC_BUF==1) */ #if IP_FRAG_USES_STATIC_BUF && !defined(IP_FRAG_MAX_MTU) #define IP_FRAG_MAX_MTU 1500 #endif /** * IP_DEFAULT_TTL: Default value for Time-To-Live used by transport layers. */ #ifndef IP_DEFAULT_TTL #define IP_DEFAULT_TTL 255 #endif /** * IP_SOF_BROADCAST=1: Use the SOF_BROADCAST field to enable broadcast * filter per pcb on udp and raw send operations. To enable broadcast filter * on recv operations, you also have to set IP_SOF_BROADCAST_RECV=1. */ #ifndef IP_SOF_BROADCAST #define IP_SOF_BROADCAST 0 #endif /** * IP_SOF_BROADCAST_RECV (requires IP_SOF_BROADCAST=1) enable the broadcast * filter on recv operations. */ #ifndef IP_SOF_BROADCAST_RECV #define IP_SOF_BROADCAST_RECV 0 #endif /* ---------------------------------- ---------- ICMP options ---------- ---------------------------------- */ /** * LWIP_ICMP==1: Enable ICMP module inside the IP stack. * Be careful, disable that make your product non-compliant to RFC1122 */ #ifndef LWIP_ICMP #define LWIP_ICMP 1 #endif /** * ICMP_TTL: Default value for Time-To-Live used by ICMP packets. */ #ifndef ICMP_TTL #define ICMP_TTL (IP_DEFAULT_TTL) #endif /** * LWIP_BROADCAST_PING==1: respond to broadcast pings (default is unicast only) */ #ifndef LWIP_BROADCAST_PING #define LWIP_BROADCAST_PING 0 #endif /** * LWIP_MULTICAST_PING==1: respond to multicast pings (default is unicast only) */ #ifndef LWIP_MULTICAST_PING #define LWIP_MULTICAST_PING 0 #endif /* --------------------------------- ---------- RAW options ---------- --------------------------------- */ /** * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. */ #ifndef LWIP_RAW #define LWIP_RAW 1 #endif /** * LWIP_RAW==1: Enable application layer to hook into the IP layer itself. */ #ifndef RAW_TTL #define RAW_TTL (IP_DEFAULT_TTL) #endif /* ---------------------------------- ---------- DHCP options ---------- ---------------------------------- */ /** * LWIP_DHCP==1: Enable DHCP module. */ #ifndef LWIP_DHCP #define LWIP_DHCP 0 #endif /** * DHCP_DOES_ARP_CHECK==1: Do an ARP check on the offered address. */ #ifndef DHCP_DOES_ARP_CHECK #define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP)) #endif /* ------------------------------------ ---------- AUTOIP options ---------- ------------------------------------ */ /** * LWIP_AUTOIP==1: Enable AUTOIP module. */ #ifndef LWIP_AUTOIP #define LWIP_AUTOIP 0 #endif /** * LWIP_DHCP_AUTOIP_COOP==1: Allow DHCP and AUTOIP to be both enabled on * the same interface at the same time. */ #ifndef LWIP_DHCP_AUTOIP_COOP #define LWIP_DHCP_AUTOIP_COOP 0 #endif /** * LWIP_DHCP_AUTOIP_COOP_TRIES: Set to the number of DHCP DISCOVER probes * that should be sent before falling back on AUTOIP. This can be set * as low as 1 to get an AutoIP address very quickly, but you should * be prepared to handle a changing IP address when DHCP overrides * AutoIP. */ #ifndef LWIP_DHCP_AUTOIP_COOP_TRIES #define LWIP_DHCP_AUTOIP_COOP_TRIES 9 #endif /* ---------------------------------- ---------- SNMP options ---------- ---------------------------------- */ /** * LWIP_SNMP==1: Turn on SNMP module. UDP must be available for SNMP * transport. */ #ifndef LWIP_SNMP #define LWIP_SNMP 0 #endif /** * SNMP_CONCURRENT_REQUESTS: Number of concurrent requests the module will * allow. At least one request buffer is required. */ #ifndef SNMP_CONCURRENT_REQUESTS #define SNMP_CONCURRENT_REQUESTS 1 #endif /** * SNMP_TRAP_DESTINATIONS: Number of trap destinations. At least one trap * destination is required */ #ifndef SNMP_TRAP_DESTINATIONS #define SNMP_TRAP_DESTINATIONS 1 #endif /** * SNMP_PRIVATE_MIB: */ #ifndef SNMP_PRIVATE_MIB #define SNMP_PRIVATE_MIB 0 #endif /** * Only allow SNMP write actions that are 'safe' (e.g. disabeling netifs is not * a safe action and disabled when SNMP_SAFE_REQUESTS = 1). * Unsafe requests are disabled by default! */ #ifndef SNMP_SAFE_REQUESTS #define SNMP_SAFE_REQUESTS 1 #endif /* ---------------------------------- ---------- IGMP options ---------- ---------------------------------- */ /** * LWIP_IGMP==1: Turn on IGMP module. */ #ifndef LWIP_IGMP #define LWIP_IGMP 0 #endif /* ---------------------------------- ---------- DNS options ----------- ---------------------------------- */ /** * LWIP_DNS==1: Turn on DNS module. UDP must be available for DNS * transport. */ #ifndef LWIP_DNS #define LWIP_DNS 0 #endif /** DNS maximum number of entries to maintain locally. */ #ifndef DNS_TABLE_SIZE #define DNS_TABLE_SIZE 4 #endif /** DNS maximum host name length supported in the name table. */ #ifndef DNS_MAX_NAME_LENGTH #define DNS_MAX_NAME_LENGTH 256 #endif /** The maximum of DNS servers */ #ifndef DNS_MAX_SERVERS #define DNS_MAX_SERVERS 2 #endif /** DNS do a name checking between the query and the response. */ #ifndef DNS_DOES_NAME_CHECK #define DNS_DOES_NAME_CHECK 1 #endif /** DNS use a local buffer if DNS_USES_STATIC_BUF=0, a static one if DNS_USES_STATIC_BUF=1, or a dynamic one if DNS_USES_STATIC_BUF=2. The buffer will be of size DNS_MSG_SIZE */ #ifndef DNS_USES_STATIC_BUF #define DNS_USES_STATIC_BUF 1 #endif /** DNS message max. size. Default value is RFC compliant. */ #ifndef DNS_MSG_SIZE #define DNS_MSG_SIZE 512 #endif /** DNS_LOCAL_HOSTLIST: Implements a local host-to-address list. If enabled, * you have to define * #define DNS_LOCAL_HOSTLIST_INIT {{"host1", 0x123}, {"host2", 0x234}} * (an array of structs name/address, where address is an u32_t in network * byte order). * * Instead, you can also use an external function: * #define DNS_LOOKUP_LOCAL_EXTERN(x) extern u32_t my_lookup_function(const char *name) * that returns the IP address or INADDR_NONE if not found. */ #ifndef DNS_LOCAL_HOSTLIST #define DNS_LOCAL_HOSTLIST 0 #endif /* DNS_LOCAL_HOSTLIST */ /** If this is turned on, the local host-list can be dynamically changed * at runtime. */ #ifndef DNS_LOCAL_HOSTLIST_IS_DYNAMIC #define DNS_LOCAL_HOSTLIST_IS_DYNAMIC 0 #endif /* DNS_LOCAL_HOSTLIST_IS_DYNAMIC */ /* --------------------------------- ---------- UDP options ---------- --------------------------------- */ /** * LWIP_UDP==1: Turn on UDP. */ #ifndef LWIP_UDP #define LWIP_UDP 1 #endif /** * LWIP_UDPLITE==1: Turn on UDP-Lite. (Requires LWIP_UDP) */ #ifndef LWIP_UDPLITE #define LWIP_UDPLITE 0 #endif /** * UDP_TTL: Default Time-To-Live value. */ #ifndef UDP_TTL #define UDP_TTL (IP_DEFAULT_TTL) #endif /* --------------------------------- ---------- TCP options ---------- --------------------------------- */ /** * LWIP_TCP==1: Turn on TCP. */ #ifndef LWIP_TCP #define LWIP_TCP 1 #endif /** * TCP_TTL: Default Time-To-Live value. */ #ifndef TCP_TTL #define TCP_TTL (IP_DEFAULT_TTL) #endif /** * TCP_WND: The size of a TCP window. This must be at least * (2 * TCP_MSS) for things to work well */ #ifndef TCP_WND #define TCP_WND 2048 #endif /** * TCP_MAXRTX: Maximum number of retransmissions of data segments. */ #ifndef TCP_MAXRTX #define TCP_MAXRTX 12 #endif /** * TCP_SYNMAXRTX: Maximum number of retransmissions of SYN segments. */ #ifndef TCP_SYNMAXRTX #define TCP_SYNMAXRTX 6 #endif /** * TCP_QUEUE_OOSEQ==1: TCP will queue segments that arrive out of order. * Define to 0 if your device is low on memory. */ #ifndef TCP_QUEUE_OOSEQ #define TCP_QUEUE_OOSEQ (LWIP_TCP) #endif /** * TCP_MSS: TCP Maximum segment size. (default is 128, a *very* * conservative default.) * For the receive side, this MSS is advertised to the remote side * when opening a connection. For the transmit size, this MSS sets * an upper limit on the MSS advertised by the remote host. */ #ifndef TCP_MSS #define TCP_MSS 128 #endif /** * TCP_CALCULATE_EFF_SEND_MSS: "The maximum size of a segment that TCP really * sends, the 'effective send MSS,' MUST be the smaller of the send MSS (which * reflects the available reassembly buffer size at the remote host) and the * largest size permitted by the IP layer" (RFC 1122) * Setting this to 1 enables code that checks TCP_MSS against the MTU of the * netif used for a connection and limits the MSS if it would be too big otherwise. */ #ifndef TCP_CALCULATE_EFF_SEND_MSS #define TCP_CALCULATE_EFF_SEND_MSS 1 #endif /** * TCP_SND_BUF: TCP sender buffer space (bytes). */ #ifndef TCP_SND_BUF #define TCP_SND_BUF 256 #endif /** * TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least * as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work. */ #ifndef TCP_SND_QUEUELEN #define TCP_SND_QUEUELEN (4 * (TCP_SND_BUF/TCP_MSS)) #endif /** * TCP_SNDLOWAT: TCP writable space (bytes). This must be less than or equal * to TCP_SND_BUF. It is the amount of space which must be available in the * TCP snd_buf for select to return writable. */ #ifndef TCP_SNDLOWAT #define TCP_SNDLOWAT (TCP_SND_BUF/2) #endif /** * TCP_LISTEN_BACKLOG: Enable the backlog option for tcp listen pcb. */ #ifndef TCP_LISTEN_BACKLOG #define TCP_LISTEN_BACKLOG 0 #endif /** * The maximum allowed backlog for TCP listen netconns. * This backlog is used unless another is explicitly specified. * 0xff is the maximum (u8_t). */ #ifndef TCP_DEFAULT_LISTEN_BACKLOG #define TCP_DEFAULT_LISTEN_BACKLOG 0xff #endif /** * LWIP_TCP_TIMESTAMPS==1: support the TCP timestamp option. */ #ifndef LWIP_TCP_TIMESTAMPS #define LWIP_TCP_TIMESTAMPS 0 #endif /** * TCP_WND_UPDATE_THRESHOLD: difference in window to trigger an * explicit window update */ #ifndef TCP_WND_UPDATE_THRESHOLD #define TCP_WND_UPDATE_THRESHOLD (TCP_WND / 4) #endif /** * LWIP_EVENT_API and LWIP_CALLBACK_API: Only one of these should be set to 1. * LWIP_EVENT_API==1: The user defines lwip_tcp_event() to receive all * events (accept, sent, etc) that happen in the system. * LWIP_CALLBACK_API==1: The PCB callback function is called directly * for the event. */ #ifndef LWIP_EVENT_API #define LWIP_EVENT_API 0 #define LWIP_CALLBACK_API 1 #else #define LWIP_EVENT_API 1 #define LWIP_CALLBACK_API 0 #endif /* ---------------------------------- ---------- Pbuf options ---------- ---------------------------------- */ /** * PBUF_LINK_HLEN: the number of bytes that should be allocated for a * link level header. The default is 14, the standard value for * Ethernet. */ #ifndef PBUF_LINK_HLEN #define PBUF_LINK_HLEN 14 #endif /** * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is * designed to accomodate single full size TCP frame in one pbuf, including * TCP_MSS, IP header, and link header. */ #ifndef PBUF_POOL_BUFSIZE #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) #endif /* ------------------------------------------------ ---------- Network Interfaces options ---------- ------------------------------------------------ */ /** * LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname * field. */ #ifndef LWIP_NETIF_HOSTNAME #define LWIP_NETIF_HOSTNAME 0 #endif /** * LWIP_NETIF_API==1: Support netif api (in netifapi.c) */ #ifndef LWIP_NETIF_API #define LWIP_NETIF_API 0 #endif /** * LWIP_NETIF_STATUS_CALLBACK==1: Support a callback function whenever an interface * changes its up/down status (i.e., due to DHCP IP acquistion) */ #ifndef LWIP_NETIF_STATUS_CALLBACK #define LWIP_NETIF_STATUS_CALLBACK 0 #endif /** * LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface * whenever the link changes (i.e., link down) */ #ifndef LWIP_NETIF_LINK_CALLBACK #define LWIP_NETIF_LINK_CALLBACK 0 #endif /** * LWIP_NETIF_HWADDRHINT==1: Cache link-layer-address hints (e.g. table * indices) in struct netif. TCP and UDP can make use of this to prevent * scanning the ARP table for every sent packet. While this is faster for big * ARP tables or many concurrent connections, it might be counterproductive * if you have a tiny ARP table or if there never are concurrent connections. */ #ifndef LWIP_NETIF_HWADDRHINT #define LWIP_NETIF_HWADDRHINT 0 #endif /** * LWIP_NETIF_LOOPBACK==1: Support sending packets with a destination IP * address equal to the netif IP address, looping them back up the stack. */ #ifndef LWIP_NETIF_LOOPBACK #define LWIP_NETIF_LOOPBACK 0 #endif /** * LWIP_LOOPBACK_MAX_PBUFS: Maximum number of pbufs on queue for loopback * sending for each netif (0 = disabled) */ #ifndef LWIP_LOOPBACK_MAX_PBUFS #define LWIP_LOOPBACK_MAX_PBUFS 0 #endif /** * LWIP_NETIF_LOOPBACK_MULTITHREADING: Indicates whether threading is enabled in * the system, as netifs must change how they behave depending on this setting * for the LWIP_NETIF_LOOPBACK option to work. * Setting this is needed to avoid reentering non-reentrant functions like * tcp_input(). * LWIP_NETIF_LOOPBACK_MULTITHREADING==1: Indicates that the user is using a * multithreaded environment like tcpip.c. In this case, netif->input() * is called directly. * LWIP_NETIF_LOOPBACK_MULTITHREADING==0: Indicates a polling (or NO_SYS) setup. * The packets are put on a list and netif_poll() must be called in * the main application loop. */ #ifndef LWIP_NETIF_LOOPBACK_MULTITHREADING #define LWIP_NETIF_LOOPBACK_MULTITHREADING (!NO_SYS) #endif /** * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data * to be sent into one single pbuf. This is for compatibility with DMA-enabled * MACs that do not support scatter-gather. * Beware that this might involve CPU-memcpy before transmitting that would not * be needed without this flag! Use this only if you need to! * * @todo: TCP and IP-frag do not work with this, yet: */ #ifndef LWIP_NETIF_TX_SINGLE_PBUF #define LWIP_NETIF_TX_SINGLE_PBUF 0 #endif /* LWIP_NETIF_TX_SINGLE_PBUF */ /* ------------------------------------ ---------- LOOPIF options ---------- ------------------------------------ */ /** * LWIP_HAVE_LOOPIF==1: Support loop interface (127.0.0.1) and loopif.c */ #ifndef LWIP_HAVE_LOOPIF #define LWIP_HAVE_LOOPIF 0 #endif /* ------------------------------------ ---------- SLIPIF options ---------- ------------------------------------ */ /** * LWIP_HAVE_SLIPIF==1: Support slip interface and slipif.c */ #ifndef LWIP_HAVE_SLIPIF #define LWIP_HAVE_SLIPIF 0 #endif /* ------------------------------------ ---------- Thread options ---------- ------------------------------------ */ /** * TCPIP_THREAD_NAME: The name assigned to the main tcpip thread. */ #ifndef TCPIP_THREAD_NAME #define TCPIP_THREAD_NAME "tcpip_thread" #endif /** * TCPIP_THREAD_STACKSIZE: The stack size used by the main tcpip thread. * The stack size value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef TCPIP_THREAD_STACKSIZE #define TCPIP_THREAD_STACKSIZE 0 #endif /** * TCPIP_THREAD_PRIO: The priority assigned to the main tcpip thread. * The priority value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef TCPIP_THREAD_PRIO #define TCPIP_THREAD_PRIO 1 #endif /** * TCPIP_MBOX_SIZE: The mailbox size for the tcpip thread messages * The queue size value itself is platform-dependent, but is passed to * sys_mbox_new() when tcpip_init is called. */ #ifndef TCPIP_MBOX_SIZE #define TCPIP_MBOX_SIZE 0 #endif /** * SLIPIF_THREAD_NAME: The name assigned to the slipif_loop thread. */ #ifndef SLIPIF_THREAD_NAME #define SLIPIF_THREAD_NAME "slipif_loop" #endif /** * SLIP_THREAD_STACKSIZE: The stack size used by the slipif_loop thread. * The stack size value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef SLIPIF_THREAD_STACKSIZE #define SLIPIF_THREAD_STACKSIZE 0 #endif /** * SLIPIF_THREAD_PRIO: The priority assigned to the slipif_loop thread. * The priority value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef SLIPIF_THREAD_PRIO #define SLIPIF_THREAD_PRIO 1 #endif /** * PPP_THREAD_NAME: The name assigned to the pppMain thread. */ #ifndef PPP_THREAD_NAME #define PPP_THREAD_NAME "pppMain" #endif /** * PPP_THREAD_STACKSIZE: The stack size used by the pppMain thread. * The stack size value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef PPP_THREAD_STACKSIZE #define PPP_THREAD_STACKSIZE 0 #endif /** * PPP_THREAD_PRIO: The priority assigned to the pppMain thread. * The priority value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef PPP_THREAD_PRIO #define PPP_THREAD_PRIO 1 #endif /** * DEFAULT_THREAD_NAME: The name assigned to any other lwIP thread. */ #ifndef DEFAULT_THREAD_NAME #define DEFAULT_THREAD_NAME "lwIP" #endif /** * DEFAULT_THREAD_STACKSIZE: The stack size used by any other lwIP thread. * The stack size value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef DEFAULT_THREAD_STACKSIZE #define DEFAULT_THREAD_STACKSIZE 0 #endif /** * DEFAULT_THREAD_PRIO: The priority assigned to any other lwIP thread. * The priority value itself is platform-dependent, but is passed to * sys_thread_new() when the thread is created. */ #ifndef DEFAULT_THREAD_PRIO #define DEFAULT_THREAD_PRIO 1 #endif /** * DEFAULT_RAW_RECVMBOX_SIZE: The mailbox size for the incoming packets on a * NETCONN_RAW. The queue size value itself is platform-dependent, but is passed * to sys_mbox_new() when the recvmbox is created. */ #ifndef DEFAULT_RAW_RECVMBOX_SIZE #define DEFAULT_RAW_RECVMBOX_SIZE 0 #endif /** * DEFAULT_UDP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a * NETCONN_UDP. The queue size value itself is platform-dependent, but is passed * to sys_mbox_new() when the recvmbox is created. */ #ifndef DEFAULT_UDP_RECVMBOX_SIZE #define DEFAULT_UDP_RECVMBOX_SIZE 0 #endif /** * DEFAULT_TCP_RECVMBOX_SIZE: The mailbox size for the incoming packets on a * NETCONN_TCP. The queue size value itself is platform-dependent, but is passed * to sys_mbox_new() when the recvmbox is created. */ #ifndef DEFAULT_TCP_RECVMBOX_SIZE #define DEFAULT_TCP_RECVMBOX_SIZE 0 #endif /** * DEFAULT_ACCEPTMBOX_SIZE: The mailbox size for the incoming connections. * The queue size value itself is platform-dependent, but is passed to * sys_mbox_new() when the acceptmbox is created. */ #ifndef DEFAULT_ACCEPTMBOX_SIZE #define DEFAULT_ACCEPTMBOX_SIZE 0 #endif /* ---------------------------------------------- ---------- Sequential layer options ---------- ---------------------------------------------- */ /** * LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) * Don't use it if you're not an active lwIP project member */ #ifndef LWIP_TCPIP_CORE_LOCKING #define LWIP_TCPIP_CORE_LOCKING 0 #endif /** * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c) */ #ifndef LWIP_NETCONN #define LWIP_NETCONN 1 #endif /* ------------------------------------ ---------- Socket options ---------- ------------------------------------ */ /** * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c) */ #ifndef LWIP_SOCKET #define LWIP_SOCKET 1 #endif /** * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names. * (only used if you use sockets.c) */ #ifndef LWIP_COMPAT_SOCKETS #define LWIP_COMPAT_SOCKETS 1 #endif /** * LWIP_POSIX_SOCKETS_IO_NAMES==1: Enable POSIX-style sockets functions names. * Disable this option if you use a POSIX operating system that uses the same * names (read, write & close). (only used if you use sockets.c) */ #ifndef LWIP_POSIX_SOCKETS_IO_NAMES #define LWIP_POSIX_SOCKETS_IO_NAMES 1 #endif /** * LWIP_TCP_KEEPALIVE==1: Enable TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT * options processing. Note that TCP_KEEPIDLE and TCP_KEEPINTVL have to be set * in seconds. (does not require sockets.c, and will affect tcp.c) */ #ifndef LWIP_TCP_KEEPALIVE #define LWIP_TCP_KEEPALIVE 0 #endif /** * LWIP_SO_RCVTIMEO==1: Enable SO_RCVTIMEO processing. */ #ifndef LWIP_SO_RCVTIMEO #define LWIP_SO_RCVTIMEO 0 #endif /** * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. */ #ifndef LWIP_SO_RCVBUF #define LWIP_SO_RCVBUF 0 #endif /** * If LWIP_SO_RCVBUF is used, this is the default value for recv_bufsize. */ #ifndef RECV_BUFSIZE_DEFAULT #define RECV_BUFSIZE_DEFAULT INT_MAX #endif /** * SO_REUSE==1: Enable SO_REUSEADDR and SO_REUSEPORT options. DO NOT USE! */ #ifndef SO_REUSE #define SO_REUSE 0 #endif /* ---------------------------------------- ---------- Statistics options ---------- ---------------------------------------- */ /** * LWIP_STATS==1: Enable statistics collection in lwip_stats. */ #ifndef LWIP_STATS #define LWIP_STATS 1 #endif #if LWIP_STATS /** * LWIP_STATS_DISPLAY==1: Compile in the statistics output functions. */ #ifndef LWIP_STATS_DISPLAY #define LWIP_STATS_DISPLAY 0 #endif /** * LINK_STATS==1: Enable link stats. */ #ifndef LINK_STATS #define LINK_STATS 1 #endif /** * ETHARP_STATS==1: Enable etharp stats. */ #ifndef ETHARP_STATS #define ETHARP_STATS (LWIP_ARP) #endif /** * IP_STATS==1: Enable IP stats. */ #ifndef IP_STATS #define IP_STATS 1 #endif /** * IPFRAG_STATS==1: Enable IP fragmentation stats. Default is * on if using either frag or reass. */ #ifndef IPFRAG_STATS #define IPFRAG_STATS (IP_REASSEMBLY || IP_FRAG) #endif /** * ICMP_STATS==1: Enable ICMP stats. */ #ifndef ICMP_STATS #define ICMP_STATS 1 #endif /** * IGMP_STATS==1: Enable IGMP stats. */ #ifndef IGMP_STATS #define IGMP_STATS (LWIP_IGMP) #endif /** * UDP_STATS==1: Enable UDP stats. Default is on if * UDP enabled, otherwise off. */ #ifndef UDP_STATS #define UDP_STATS (LWIP_UDP) #endif /** * TCP_STATS==1: Enable TCP stats. Default is on if TCP * enabled, otherwise off. */ #ifndef TCP_STATS #define TCP_STATS (LWIP_TCP) #endif /** * MEM_STATS==1: Enable mem.c stats. */ #ifndef MEM_STATS #define MEM_STATS 1 #endif /** * MEMP_STATS==1: Enable memp.c pool stats. */ #ifndef MEMP_STATS #define MEMP_STATS 1 #endif /** * SYS_STATS==1: Enable system stats (sem and mbox counts, etc). */ #ifndef SYS_STATS #define SYS_STATS 1 #endif #else #define LINK_STATS 0 #define IP_STATS 0 #define IPFRAG_STATS 0 #define ICMP_STATS 0 #define IGMP_STATS 0 #define UDP_STATS 0 #define TCP_STATS 0 #define MEM_STATS 0 #define MEMP_STATS 0 #define SYS_STATS 0 #define LWIP_STATS_DISPLAY 0 #endif /* LWIP_STATS */ /* --------------------------------- ---------- PPP options ---------- --------------------------------- */ /** * PPP_SUPPORT==1: Enable PPP. */ #ifndef PPP_SUPPORT #define PPP_SUPPORT 0 #endif /** * PPPOE_SUPPORT==1: Enable PPP Over Ethernet */ #ifndef PPPOE_SUPPORT #define PPPOE_SUPPORT 0 #endif /** * PPPOS_SUPPORT==1: Enable PPP Over Serial */ #ifndef PPPOS_SUPPORT #define PPPOS_SUPPORT PPP_SUPPORT #endif #if PPP_SUPPORT /** * NUM_PPP: Max PPP sessions. */ #ifndef NUM_PPP #define NUM_PPP 1 #endif /** * PAP_SUPPORT==1: Support PAP. */ #ifndef PAP_SUPPORT #define PAP_SUPPORT 0 #endif /** * CHAP_SUPPORT==1: Support CHAP. */ #ifndef CHAP_SUPPORT #define CHAP_SUPPORT 0 #endif /** * MSCHAP_SUPPORT==1: Support MSCHAP. CURRENTLY NOT SUPPORTED! DO NOT SET! */ #ifndef MSCHAP_SUPPORT #define MSCHAP_SUPPORT 0 #endif /** * CBCP_SUPPORT==1: Support CBCP. CURRENTLY NOT SUPPORTED! DO NOT SET! */ #ifndef CBCP_SUPPORT #define CBCP_SUPPORT 0 #endif /** * CCP_SUPPORT==1: Support CCP. CURRENTLY NOT SUPPORTED! DO NOT SET! */ #ifndef CCP_SUPPORT #define CCP_SUPPORT 0 #endif /** * VJ_SUPPORT==1: Support VJ header compression. */ #ifndef VJ_SUPPORT #define VJ_SUPPORT 0 #endif /** * MD5_SUPPORT==1: Support MD5 (see also CHAP). */ #ifndef MD5_SUPPORT #define MD5_SUPPORT 0 #endif /* * Timeouts */ #ifndef FSM_DEFTIMEOUT #define FSM_DEFTIMEOUT 6 /* Timeout time in seconds */ #endif #ifndef FSM_DEFMAXTERMREQS #define FSM_DEFMAXTERMREQS 2 /* Maximum Terminate-Request transmissions */ #endif #ifndef FSM_DEFMAXCONFREQS #define FSM_DEFMAXCONFREQS 10 /* Maximum Configure-Request transmissions */ #endif #ifndef FSM_DEFMAXNAKLOOPS #define FSM_DEFMAXNAKLOOPS 5 /* Maximum number of nak loops */ #endif #ifndef UPAP_DEFTIMEOUT #define UPAP_DEFTIMEOUT 6 /* Timeout (seconds) for retransmitting req */ #endif #ifndef UPAP_DEFREQTIME #define UPAP_DEFREQTIME 30 /* Time to wait for auth-req from peer */ #endif #ifndef CHAP_DEFTIMEOUT #define CHAP_DEFTIMEOUT 6 /* Timeout time in seconds */ #endif #ifndef CHAP_DEFTRANSMITS #define CHAP_DEFTRANSMITS 10 /* max # times to send challenge */ #endif /* Interval in seconds between keepalive echo requests, 0 to disable. */ #ifndef LCP_ECHOINTERVAL #define LCP_ECHOINTERVAL 0 #endif /* Number of unanswered echo requests before failure. */ #ifndef LCP_MAXECHOFAILS #define LCP_MAXECHOFAILS 3 #endif /* Max Xmit idle time (in jiffies) before resend flag char. */ #ifndef PPP_MAXIDLEFLAG #define PPP_MAXIDLEFLAG 100 #endif /* * Packet sizes * * Note - lcp shouldn't be allowed to negotiate stuff outside these * limits. See lcp.h in the pppd directory. * (XXX - these constants should simply be shared by lcp.c instead * of living in lcp.h) */ #define PPP_MTU 1500 /* Default MTU (size of Info field) */ #ifndef PPP_MAXMTU /* #define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) */ #define PPP_MAXMTU 1500 /* Largest MTU we allow */ #endif #define PPP_MINMTU 64 #define PPP_MRU 1500 /* default MRU = max length of info field */ #define PPP_MAXMRU 1500 /* Largest MRU we allow */ #ifndef PPP_DEFMRU #define PPP_DEFMRU 296 /* Try for this */ #endif #define PPP_MINMRU 128 /* No MRUs below this */ #define MAXNAMELEN 256 /* max length of hostname or name for auth */ #define MAXSECRETLEN 256 /* max length of password or secret */ #endif /* PPP_SUPPORT */ /* -------------------------------------- ---------- Checksum options ---------- -------------------------------------- */ /** * CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets. */ #ifndef CHECKSUM_GEN_IP #define CHECKSUM_GEN_IP 1 #endif /** * CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets. */ #ifndef CHECKSUM_GEN_UDP #define CHECKSUM_GEN_UDP 1 #endif /** * CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets. */ #ifndef CHECKSUM_GEN_TCP #define CHECKSUM_GEN_TCP 1 #endif /** * CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets. */ #ifndef CHECKSUM_CHECK_IP #define CHECKSUM_CHECK_IP 1 #endif /** * CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets. */ #ifndef CHECKSUM_CHECK_UDP #define CHECKSUM_CHECK_UDP 1 #endif /** * CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets. */ #ifndef CHECKSUM_CHECK_TCP #define CHECKSUM_CHECK_TCP 1 #endif /* --------------------------------------- ---------- Debugging options ---------- --------------------------------------- */ /** * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is * compared against this value. If it is smaller, then debugging * messages are written. */ #ifndef LWIP_DBG_MIN_LEVEL #define LWIP_DBG_MIN_LEVEL LWIP_DBG_LEVEL_OFF #endif /** * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable * debug messages of certain types. */ #ifndef LWIP_DBG_TYPES_ON #define LWIP_DBG_TYPES_ON LWIP_DBG_ON #endif /** * ETHARP_DEBUG: Enable debugging in etharp.c. */ #ifndef ETHARP_DEBUG #define ETHARP_DEBUG LWIP_DBG_OFF #endif /** * NETIF_DEBUG: Enable debugging in netif.c. */ #ifndef NETIF_DEBUG #define NETIF_DEBUG LWIP_DBG_OFF #endif /** * PBUF_DEBUG: Enable debugging in pbuf.c. */ #ifndef PBUF_DEBUG #define PBUF_DEBUG LWIP_DBG_OFF #endif /** * API_LIB_DEBUG: Enable debugging in api_lib.c. */ #ifndef API_LIB_DEBUG #define API_LIB_DEBUG LWIP_DBG_OFF #endif /** * API_MSG_DEBUG: Enable debugging in api_msg.c. */ #ifndef API_MSG_DEBUG #define API_MSG_DEBUG LWIP_DBG_OFF #endif /** * SOCKETS_DEBUG: Enable debugging in sockets.c. */ #ifndef SOCKETS_DEBUG #define SOCKETS_DEBUG LWIP_DBG_OFF #endif /** * ICMP_DEBUG: Enable debugging in icmp.c. */ #ifndef ICMP_DEBUG #define ICMP_DEBUG LWIP_DBG_OFF #endif /** * IGMP_DEBUG: Enable debugging in igmp.c. */ #ifndef IGMP_DEBUG #define IGMP_DEBUG LWIP_DBG_OFF #endif /** * INET_DEBUG: Enable debugging in inet.c. */ #ifndef INET_DEBUG #define INET_DEBUG LWIP_DBG_OFF #endif /** * IP_DEBUG: Enable debugging for IP. */ #ifndef IP_DEBUG #define IP_DEBUG LWIP_DBG_OFF #endif /** * IP_REASS_DEBUG: Enable debugging in ip_frag.c for both frag & reass. */ #ifndef IP_REASS_DEBUG #define IP_REASS_DEBUG LWIP_DBG_OFF #endif /** * RAW_DEBUG: Enable debugging in raw.c. */ #ifndef RAW_DEBUG #define RAW_DEBUG LWIP_DBG_OFF #endif /** * MEM_DEBUG: Enable debugging in mem.c. */ #ifndef MEM_DEBUG #define MEM_DEBUG LWIP_DBG_OFF #endif /** * MEMP_DEBUG: Enable debugging in memp.c. */ #ifndef MEMP_DEBUG #define MEMP_DEBUG LWIP_DBG_OFF #endif /** * SYS_DEBUG: Enable debugging in sys.c. */ #ifndef SYS_DEBUG #define SYS_DEBUG LWIP_DBG_OFF #endif /** * TCP_DEBUG: Enable debugging for TCP. */ #ifndef TCP_DEBUG #define TCP_DEBUG LWIP_DBG_OFF #endif /** * TCP_INPUT_DEBUG: Enable debugging in tcp_in.c for incoming debug. */ #ifndef TCP_INPUT_DEBUG #define TCP_INPUT_DEBUG LWIP_DBG_OFF #endif /** * TCP_FR_DEBUG: Enable debugging in tcp_in.c for fast retransmit. */ #ifndef TCP_FR_DEBUG #define TCP_FR_DEBUG LWIP_DBG_OFF #endif /** * TCP_RTO_DEBUG: Enable debugging in TCP for retransmit * timeout. */ #ifndef TCP_RTO_DEBUG #define TCP_RTO_DEBUG LWIP_DBG_OFF #endif /** * TCP_CWND_DEBUG: Enable debugging for TCP congestion window. */ #ifndef TCP_CWND_DEBUG #define TCP_CWND_DEBUG LWIP_DBG_OFF #endif /** * TCP_WND_DEBUG: Enable debugging in tcp_in.c for window updating. */ #ifndef TCP_WND_DEBUG #define TCP_WND_DEBUG LWIP_DBG_OFF #endif /** * TCP_OUTPUT_DEBUG: Enable debugging in tcp_out.c output functions. */ #ifndef TCP_OUTPUT_DEBUG #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF #endif /** * TCP_RST_DEBUG: Enable debugging for TCP with the RST message. */ #ifndef TCP_RST_DEBUG #define TCP_RST_DEBUG LWIP_DBG_OFF #endif /** * TCP_QLEN_DEBUG: Enable debugging for TCP queue lengths. */ #ifndef TCP_QLEN_DEBUG #define TCP_QLEN_DEBUG LWIP_DBG_OFF #endif /** * UDP_DEBUG: Enable debugging in UDP. */ #ifndef UDP_DEBUG #define UDP_DEBUG LWIP_DBG_OFF #endif /** * TCPIP_DEBUG: Enable debugging in tcpip.c. */ #ifndef TCPIP_DEBUG #define TCPIP_DEBUG LWIP_DBG_OFF #endif /** * PPP_DEBUG: Enable debugging for PPP. */ #ifndef PPP_DEBUG #define PPP_DEBUG LWIP_DBG_OFF #endif /** * SLIP_DEBUG: Enable debugging in slipif.c. */ #ifndef SLIP_DEBUG #define SLIP_DEBUG LWIP_DBG_OFF #endif /** * DHCP_DEBUG: Enable debugging in dhcp.c. */ #ifndef DHCP_DEBUG #define DHCP_DEBUG LWIP_DBG_OFF #endif /** * AUTOIP_DEBUG: Enable debugging in autoip.c. */ #ifndef AUTOIP_DEBUG #define AUTOIP_DEBUG LWIP_DBG_OFF #endif /** * SNMP_MSG_DEBUG: Enable debugging for SNMP messages. */ #ifndef SNMP_MSG_DEBUG #define SNMP_MSG_DEBUG LWIP_DBG_OFF #endif /** * SNMP_MIB_DEBUG: Enable debugging for SNMP MIBs. */ #ifndef SNMP_MIB_DEBUG #define SNMP_MIB_DEBUG LWIP_DBG_OFF #endif /** * DNS_DEBUG: Enable debugging for DNS. */ #ifndef DNS_DEBUG #define DNS_DEBUG LWIP_DBG_OFF #endif #endif /* __LWIP_OPT_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/pbuf.h000066400000000000000000000074751224274632000236330ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_PBUF_H__ #define __LWIP_PBUF_H__ #include "lwip/opt.h" #include "lwip/err.h" #ifdef __cplusplus extern "C" { #endif #define PBUF_TRANSPORT_HLEN 20 #define PBUF_IP_HLEN 20 typedef enum { PBUF_TRANSPORT, PBUF_IP, PBUF_LINK, PBUF_RAW } pbuf_layer; typedef enum { PBUF_RAM, /* pbuf data is stored in RAM */ PBUF_ROM, /* pbuf data is stored in ROM */ PBUF_REF, /* pbuf comes from the pbuf pool */ PBUF_POOL /* pbuf payload refers to RAM */ } pbuf_type; /** indicates this packet's data should be immediately passed to the application */ #define PBUF_FLAG_PUSH 0x01U struct pbuf { /** next pbuf in singly linked pbuf chain */ struct pbuf *next; /** pointer to the actual data in the buffer */ void *payload; /** * total length of this buffer and all next buffers in chain * belonging to the same packet. * * For non-queue packet chains this is the invariant: * p->tot_len == p->len + (p->next? p->next->tot_len: 0) */ u16_t tot_len; /** length of this buffer */ u16_t len; /** pbuf_type as u8_t instead of enum to save space */ u8_t /*pbuf_type*/ type; /** misc flags */ u8_t flags; /** * the reference count always equals the number of pointers * that refer to this pbuf. This can be pointers from an application, * the stack itself, or pbuf->next pointers from a chain. */ u16_t ref; }; /* Initializes the pbuf module. This call is empty for now, but may not be in future. */ #define pbuf_init() struct pbuf *pbuf_alloc(pbuf_layer l, u16_t size, pbuf_type type); void pbuf_realloc(struct pbuf *p, u16_t size); u8_t pbuf_header(struct pbuf *p, s16_t header_size); void pbuf_ref(struct pbuf *p); void pbuf_ref_chain(struct pbuf *p); u8_t pbuf_free(struct pbuf *p); u8_t pbuf_clen(struct pbuf *p); void pbuf_cat(struct pbuf *head, struct pbuf *tail); void pbuf_chain(struct pbuf *head, struct pbuf *tail); struct pbuf *pbuf_dechain(struct pbuf *p); err_t pbuf_copy(struct pbuf *p_to, struct pbuf *p_from); u16_t pbuf_copy_partial(struct pbuf *p, void *dataptr, u16_t len, u16_t offset); err_t pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len); struct pbuf *pbuf_coalesce(struct pbuf *p, pbuf_layer layer); #ifdef __cplusplus } #endif #endif /* __LWIP_PBUF_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/raw.h000066400000000000000000000072051224274632000234570ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_RAW_H__ #define __LWIP_RAW_H__ #include "lwip/opt.h" #if LWIP_RAW /* don't build if not configured for use in lwipopts.h */ #include "lwip/pbuf.h" #include "lwip/inet.h" #include "lwip/ip.h" #include "lwip/ip_addr.h" #ifdef __cplusplus extern "C" { #endif struct raw_pcb { /* Common members of all PCB types */ IP_PCB; struct raw_pcb *next; u8_t protocol; /* receive callback function * @param arg user supplied argument (raw_pcb.recv_arg) * @param pcb the raw_pcb which received data * @param p the packet buffer that was received * @param addr the remote IP address from which the packet was received * @return 1 if the packet was 'eaten' (aka. deleted), * 0 if the packet lives on * If returning 1, the callback is responsible for freeing the pbuf * if it's not used any more. */ u8_t (* recv)(void *arg, struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *addr); /* user-supplied argument for the recv callback */ void *recv_arg; }; /* The following functions is the application layer interface to the RAW code. */ struct raw_pcb * raw_new (u8_t proto); void raw_remove (struct raw_pcb *pcb); err_t raw_bind (struct raw_pcb *pcb, struct ip_addr *ipaddr); err_t raw_connect (struct raw_pcb *pcb, struct ip_addr *ipaddr); void raw_recv (struct raw_pcb *pcb, u8_t (* recv)(void *arg, struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *addr), void *recv_arg); err_t raw_sendto (struct raw_pcb *pcb, struct pbuf *p, struct ip_addr *ipaddr); err_t raw_send (struct raw_pcb *pcb, struct pbuf *p); /* The following functions are the lower layer interface to RAW. */ u8_t raw_input (struct pbuf *p, struct netif *inp); #define raw_init() /* Compatibility define, not init needed. */ #ifdef __cplusplus } #endif #endif /* LWIP_RAW */ #endif /* __LWIP_RAW_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/sio.h000066400000000000000000000047061224274632000234630ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. */ /* * This is the interface to the platform specific serial IO module * It needs to be implemented by those platforms which need SLIP or PPP */ #ifndef __SIO_H__ #define __SIO_H__ #include "lwip/arch.h" #ifdef __cplusplus extern "C" { #endif /* If you want to define sio_fd_t elsewhere or differently, define this in your cc.h file. */ #ifndef __sio_fd_t_defined typedef void * sio_fd_t; #endif /* The following functions can be defined to something else in your cc.h file or be implemented in your custom sio.c file. */ #ifndef sio_open sio_fd_t sio_open(u8_t); #endif #ifndef sio_send void sio_send(u8_t, sio_fd_t); #endif #ifndef sio_recv u8_t sio_recv(sio_fd_t); #endif #ifndef sio_read u32_t sio_read(sio_fd_t, u8_t *, u32_t); #endif #ifndef sio_write u32_t sio_write(sio_fd_t, u8_t *, u32_t); #endif #ifndef sio_read_abort void sio_read_abort(sio_fd_t); #endif #ifdef __cplusplus } #endif #endif /* __SIO_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/snmp.h000066400000000000000000000302101224274632000236330ustar00rootroot00000000000000/* * Copyright (c) 2001, 2002 Leon Woestenberg * Copyright (c) 2001, 2002 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Leon Woestenberg * */ #ifndef __LWIP_SNMP_H__ #define __LWIP_SNMP_H__ #include "lwip/opt.h" #include "lwip/netif.h" #include "lwip/udp.h" #ifdef __cplusplus extern "C" { #endif /** * @see RFC1213, "MIB-II, 6. Definitions" */ enum snmp_ifType { snmp_ifType_other=1, /* none of the following */ snmp_ifType_regular1822, snmp_ifType_hdh1822, snmp_ifType_ddn_x25, snmp_ifType_rfc877_x25, snmp_ifType_ethernet_csmacd, snmp_ifType_iso88023_csmacd, snmp_ifType_iso88024_tokenBus, snmp_ifType_iso88025_tokenRing, snmp_ifType_iso88026_man, snmp_ifType_starLan, snmp_ifType_proteon_10Mbit, snmp_ifType_proteon_80Mbit, snmp_ifType_hyperchannel, snmp_ifType_fddi, snmp_ifType_lapb, snmp_ifType_sdlc, snmp_ifType_ds1, /* T-1 */ snmp_ifType_e1, /* european equiv. of T-1 */ snmp_ifType_basicISDN, snmp_ifType_primaryISDN, /* proprietary serial */ snmp_ifType_propPointToPointSerial, snmp_ifType_ppp, snmp_ifType_softwareLoopback, snmp_ifType_eon, /* CLNP over IP [11] */ snmp_ifType_ethernet_3Mbit, snmp_ifType_nsip, /* XNS over IP */ snmp_ifType_slip, /* generic SLIP */ snmp_ifType_ultra, /* ULTRA technologies */ snmp_ifType_ds3, /* T-3 */ snmp_ifType_sip, /* SMDS */ snmp_ifType_frame_relay }; #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ /** SNMP "sysuptime" Interval */ #define SNMP_SYSUPTIME_INTERVAL 10 /** fixed maximum length for object identifier type */ #define LWIP_SNMP_OBJ_ID_LEN 32 /** internal object identifier representation */ struct snmp_obj_id { u8_t len; s32_t id[LWIP_SNMP_OBJ_ID_LEN]; }; /* system */ void snmp_set_sysdesr(u8_t* str, u8_t* len); void snmp_set_sysobjid(struct snmp_obj_id *oid); void snmp_get_sysobjid_ptr(struct snmp_obj_id **oid); void snmp_inc_sysuptime(void); void snmp_add_sysuptime(u32_t value); void snmp_get_sysuptime(u32_t *value); void snmp_set_syscontact(u8_t *ocstr, u8_t *ocstrlen); void snmp_set_sysname(u8_t *ocstr, u8_t *ocstrlen); void snmp_set_syslocation(u8_t *ocstr, u8_t *ocstrlen); /* network interface */ void snmp_add_ifinoctets(struct netif *ni, u32_t value); void snmp_inc_ifinucastpkts(struct netif *ni); void snmp_inc_ifinnucastpkts(struct netif *ni); void snmp_inc_ifindiscards(struct netif *ni); void snmp_add_ifoutoctets(struct netif *ni, u32_t value); void snmp_inc_ifoutucastpkts(struct netif *ni); void snmp_inc_ifoutnucastpkts(struct netif *ni); void snmp_inc_ifoutdiscards(struct netif *ni); void snmp_inc_iflist(void); void snmp_dec_iflist(void); /* ARP (for atTable and ipNetToMediaTable) */ void snmp_insert_arpidx_tree(struct netif *ni, struct ip_addr *ip); void snmp_delete_arpidx_tree(struct netif *ni, struct ip_addr *ip); /* IP */ void snmp_inc_ipinreceives(void); void snmp_inc_ipinhdrerrors(void); void snmp_inc_ipinaddrerrors(void); void snmp_inc_ipforwdatagrams(void); void snmp_inc_ipinunknownprotos(void); void snmp_inc_ipindiscards(void); void snmp_inc_ipindelivers(void); void snmp_inc_ipoutrequests(void); void snmp_inc_ipoutdiscards(void); void snmp_inc_ipoutnoroutes(void); void snmp_inc_ipreasmreqds(void); void snmp_inc_ipreasmoks(void); void snmp_inc_ipreasmfails(void); void snmp_inc_ipfragoks(void); void snmp_inc_ipfragfails(void); void snmp_inc_ipfragcreates(void); void snmp_inc_iproutingdiscards(void); void snmp_insert_ipaddridx_tree(struct netif *ni); void snmp_delete_ipaddridx_tree(struct netif *ni); void snmp_insert_iprteidx_tree(u8_t dflt, struct netif *ni); void snmp_delete_iprteidx_tree(u8_t dflt, struct netif *ni); /* ICMP */ void snmp_inc_icmpinmsgs(void); void snmp_inc_icmpinerrors(void); void snmp_inc_icmpindestunreachs(void); void snmp_inc_icmpintimeexcds(void); void snmp_inc_icmpinparmprobs(void); void snmp_inc_icmpinsrcquenchs(void); void snmp_inc_icmpinredirects(void); void snmp_inc_icmpinechos(void); void snmp_inc_icmpinechoreps(void); void snmp_inc_icmpintimestamps(void); void snmp_inc_icmpintimestampreps(void); void snmp_inc_icmpinaddrmasks(void); void snmp_inc_icmpinaddrmaskreps(void); void snmp_inc_icmpoutmsgs(void); void snmp_inc_icmpouterrors(void); void snmp_inc_icmpoutdestunreachs(void); void snmp_inc_icmpouttimeexcds(void); void snmp_inc_icmpoutparmprobs(void); void snmp_inc_icmpoutsrcquenchs(void); void snmp_inc_icmpoutredirects(void); void snmp_inc_icmpoutechos(void); void snmp_inc_icmpoutechoreps(void); void snmp_inc_icmpouttimestamps(void); void snmp_inc_icmpouttimestampreps(void); void snmp_inc_icmpoutaddrmasks(void); void snmp_inc_icmpoutaddrmaskreps(void); /* TCP */ void snmp_inc_tcpactiveopens(void); void snmp_inc_tcppassiveopens(void); void snmp_inc_tcpattemptfails(void); void snmp_inc_tcpestabresets(void); void snmp_inc_tcpinsegs(void); void snmp_inc_tcpoutsegs(void); void snmp_inc_tcpretranssegs(void); void snmp_inc_tcpinerrs(void); void snmp_inc_tcpoutrsts(void); /* UDP */ void snmp_inc_udpindatagrams(void); void snmp_inc_udpnoports(void); void snmp_inc_udpinerrors(void); void snmp_inc_udpoutdatagrams(void); void snmp_insert_udpidx_tree(struct udp_pcb *pcb); void snmp_delete_udpidx_tree(struct udp_pcb *pcb); /* SNMP */ void snmp_inc_snmpinpkts(void); void snmp_inc_snmpoutpkts(void); void snmp_inc_snmpinbadversions(void); void snmp_inc_snmpinbadcommunitynames(void); void snmp_inc_snmpinbadcommunityuses(void); void snmp_inc_snmpinasnparseerrs(void); void snmp_inc_snmpintoobigs(void); void snmp_inc_snmpinnosuchnames(void); void snmp_inc_snmpinbadvalues(void); void snmp_inc_snmpinreadonlys(void); void snmp_inc_snmpingenerrs(void); void snmp_add_snmpintotalreqvars(u8_t value); void snmp_add_snmpintotalsetvars(u8_t value); void snmp_inc_snmpingetrequests(void); void snmp_inc_snmpingetnexts(void); void snmp_inc_snmpinsetrequests(void); void snmp_inc_snmpingetresponses(void); void snmp_inc_snmpintraps(void); void snmp_inc_snmpouttoobigs(void); void snmp_inc_snmpoutnosuchnames(void); void snmp_inc_snmpoutbadvalues(void); void snmp_inc_snmpoutgenerrs(void); void snmp_inc_snmpoutgetrequests(void); void snmp_inc_snmpoutgetnexts(void); void snmp_inc_snmpoutsetrequests(void); void snmp_inc_snmpoutgetresponses(void); void snmp_inc_snmpouttraps(void); void snmp_get_snmpgrpid_ptr(struct snmp_obj_id **oid); void snmp_set_snmpenableauthentraps(u8_t *value); void snmp_get_snmpenableauthentraps(u8_t *value); /* LWIP_SNMP support not available */ /* define everything to be empty */ #else /* system */ #define snmp_set_sysdesr(str, len) #define snmp_set_sysobjid(oid); #define snmp_get_sysobjid_ptr(oid) #define snmp_inc_sysuptime() #define snmp_add_sysuptime(value) #define snmp_get_sysuptime(value) #define snmp_set_syscontact(ocstr, ocstrlen); #define snmp_set_sysname(ocstr, ocstrlen); #define snmp_set_syslocation(ocstr, ocstrlen); /* network interface */ #define snmp_add_ifinoctets(ni,value) #define snmp_inc_ifinucastpkts(ni) #define snmp_inc_ifinnucastpkts(ni) #define snmp_inc_ifindiscards(ni) #define snmp_add_ifoutoctets(ni,value) #define snmp_inc_ifoutucastpkts(ni) #define snmp_inc_ifoutnucastpkts(ni) #define snmp_inc_ifoutdiscards(ni) #define snmp_inc_iflist() #define snmp_dec_iflist() /* ARP */ #define snmp_insert_arpidx_tree(ni,ip) #define snmp_delete_arpidx_tree(ni,ip) /* IP */ #define snmp_inc_ipinreceives() #define snmp_inc_ipinhdrerrors() #define snmp_inc_ipinaddrerrors() #define snmp_inc_ipforwdatagrams() #define snmp_inc_ipinunknownprotos() #define snmp_inc_ipindiscards() #define snmp_inc_ipindelivers() #define snmp_inc_ipoutrequests() #define snmp_inc_ipoutdiscards() #define snmp_inc_ipoutnoroutes() #define snmp_inc_ipreasmreqds() #define snmp_inc_ipreasmoks() #define snmp_inc_ipreasmfails() #define snmp_inc_ipfragoks() #define snmp_inc_ipfragfails() #define snmp_inc_ipfragcreates() #define snmp_inc_iproutingdiscards() #define snmp_insert_ipaddridx_tree(ni) #define snmp_delete_ipaddridx_tree(ni) #define snmp_insert_iprteidx_tree(dflt, ni) #define snmp_delete_iprteidx_tree(dflt, ni) /* ICMP */ #define snmp_inc_icmpinmsgs() #define snmp_inc_icmpinerrors() #define snmp_inc_icmpindestunreachs() #define snmp_inc_icmpintimeexcds() #define snmp_inc_icmpinparmprobs() #define snmp_inc_icmpinsrcquenchs() #define snmp_inc_icmpinredirects() #define snmp_inc_icmpinechos() #define snmp_inc_icmpinechoreps() #define snmp_inc_icmpintimestamps() #define snmp_inc_icmpintimestampreps() #define snmp_inc_icmpinaddrmasks() #define snmp_inc_icmpinaddrmaskreps() #define snmp_inc_icmpoutmsgs() #define snmp_inc_icmpouterrors() #define snmp_inc_icmpoutdestunreachs() #define snmp_inc_icmpouttimeexcds() #define snmp_inc_icmpoutparmprobs() #define snmp_inc_icmpoutsrcquenchs() #define snmp_inc_icmpoutredirects() #define snmp_inc_icmpoutechos() #define snmp_inc_icmpoutechoreps() #define snmp_inc_icmpouttimestamps() #define snmp_inc_icmpouttimestampreps() #define snmp_inc_icmpoutaddrmasks() #define snmp_inc_icmpoutaddrmaskreps() /* TCP */ #define snmp_inc_tcpactiveopens() #define snmp_inc_tcppassiveopens() #define snmp_inc_tcpattemptfails() #define snmp_inc_tcpestabresets() #define snmp_inc_tcpinsegs() #define snmp_inc_tcpoutsegs() #define snmp_inc_tcpretranssegs() #define snmp_inc_tcpinerrs() #define snmp_inc_tcpoutrsts() /* UDP */ #define snmp_inc_udpindatagrams() #define snmp_inc_udpnoports() #define snmp_inc_udpinerrors() #define snmp_inc_udpoutdatagrams() #define snmp_insert_udpidx_tree(pcb) #define snmp_delete_udpidx_tree(pcb) /* SNMP */ #define snmp_inc_snmpinpkts() #define snmp_inc_snmpoutpkts() #define snmp_inc_snmpinbadversions() #define snmp_inc_snmpinbadcommunitynames() #define snmp_inc_snmpinbadcommunityuses() #define snmp_inc_snmpinasnparseerrs() #define snmp_inc_snmpintoobigs() #define snmp_inc_snmpinnosuchnames() #define snmp_inc_snmpinbadvalues() #define snmp_inc_snmpinreadonlys() #define snmp_inc_snmpingenerrs() #define snmp_add_snmpintotalreqvars(value) #define snmp_add_snmpintotalsetvars(value) #define snmp_inc_snmpingetrequests() #define snmp_inc_snmpingetnexts() #define snmp_inc_snmpinsetrequests() #define snmp_inc_snmpingetresponses() #define snmp_inc_snmpintraps() #define snmp_inc_snmpouttoobigs() #define snmp_inc_snmpoutnosuchnames() #define snmp_inc_snmpoutbadvalues() #define snmp_inc_snmpoutgenerrs() #define snmp_inc_snmpoutgetrequests() #define snmp_inc_snmpoutgetnexts() #define snmp_inc_snmpoutsetrequests() #define snmp_inc_snmpoutgetresponses() #define snmp_inc_snmpouttraps() #define snmp_get_snmpgrpid_ptr(oid) #define snmp_set_snmpenableauthentraps(value) #define snmp_get_snmpenableauthentraps(value) #endif /* LWIP_SNMP */ #ifdef __cplusplus } #endif #endif /* __LWIP_SNMP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/snmp_asn1.h000066400000000000000000000076041224274632000245700ustar00rootroot00000000000000/** * @file * Abstract Syntax Notation One (ISO 8824, 8825) codec. */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #ifndef __LWIP_SNMP_ASN1_H__ #define __LWIP_SNMP_ASN1_H__ #include "lwip/opt.h" #include "lwip/err.h" #include "lwip/pbuf.h" #include "lwip/snmp.h" #if LWIP_SNMP #ifdef __cplusplus extern "C" { #endif #define SNMP_ASN1_UNIV (!0x80 | !0x40) #define SNMP_ASN1_APPLIC (!0x80 | 0x40) #define SNMP_ASN1_CONTXT ( 0x80 | !0x40) #define SNMP_ASN1_CONSTR (0x20) #define SNMP_ASN1_PRIMIT (!0x20) /* universal tags */ #define SNMP_ASN1_INTEG 2 #define SNMP_ASN1_OC_STR 4 #define SNMP_ASN1_NUL 5 #define SNMP_ASN1_OBJ_ID 6 #define SNMP_ASN1_SEQ 16 /* application specific (SNMP) tags */ #define SNMP_ASN1_IPADDR 0 /* octet string size(4) */ #define SNMP_ASN1_COUNTER 1 /* u32_t */ #define SNMP_ASN1_GAUGE 2 /* u32_t */ #define SNMP_ASN1_TIMETICKS 3 /* u32_t */ #define SNMP_ASN1_OPAQUE 4 /* octet string */ /* context specific (SNMP) tags */ #define SNMP_ASN1_PDU_GET_REQ 0 #define SNMP_ASN1_PDU_GET_NEXT_REQ 1 #define SNMP_ASN1_PDU_GET_RESP 2 #define SNMP_ASN1_PDU_SET_REQ 3 #define SNMP_ASN1_PDU_TRAP 4 err_t snmp_asn1_dec_type(struct pbuf *p, u16_t ofs, u8_t *type); err_t snmp_asn1_dec_length(struct pbuf *p, u16_t ofs, u8_t *octets_used, u16_t *length); err_t snmp_asn1_dec_u32t(struct pbuf *p, u16_t ofs, u16_t len, u32_t *value); err_t snmp_asn1_dec_s32t(struct pbuf *p, u16_t ofs, u16_t len, s32_t *value); err_t snmp_asn1_dec_oid(struct pbuf *p, u16_t ofs, u16_t len, struct snmp_obj_id *oid); err_t snmp_asn1_dec_raw(struct pbuf *p, u16_t ofs, u16_t len, u16_t raw_len, u8_t *raw); void snmp_asn1_enc_length_cnt(u16_t length, u8_t *octets_needed); void snmp_asn1_enc_u32t_cnt(u32_t value, u16_t *octets_needed); void snmp_asn1_enc_s32t_cnt(s32_t value, u16_t *octets_needed); void snmp_asn1_enc_oid_cnt(u8_t ident_len, s32_t *ident, u16_t *octets_needed); err_t snmp_asn1_enc_type(struct pbuf *p, u16_t ofs, u8_t type); err_t snmp_asn1_enc_length(struct pbuf *p, u16_t ofs, u16_t length); err_t snmp_asn1_enc_u32t(struct pbuf *p, u16_t ofs, u8_t octets_needed, u32_t value); err_t snmp_asn1_enc_s32t(struct pbuf *p, u16_t ofs, u8_t octets_needed, s32_t value); err_t snmp_asn1_enc_oid(struct pbuf *p, u16_t ofs, u8_t ident_len, s32_t *ident); err_t snmp_asn1_enc_raw(struct pbuf *p, u16_t ofs, u8_t raw_len, u8_t *raw); #ifdef __cplusplus } #endif #endif /* LWIP_SNMP */ #endif /* __LWIP_SNMP_ASN1_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/snmp_msg.h000066400000000000000000000221651224274632000245130ustar00rootroot00000000000000/** * @file * SNMP Agent message handling structures. */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #ifndef __LWIP_SNMP_MSG_H__ #define __LWIP_SNMP_MSG_H__ #include "lwip/opt.h" #include "lwip/snmp.h" #include "lwip/snmp_structs.h" #if LWIP_SNMP #if SNMP_PRIVATE_MIB #include "private_mib.h" #endif #ifdef __cplusplus extern "C" { #endif /* The listen port of the SNMP agent. Clients have to make their requests to this port. Most standard clients won't work if you change this! */ #ifndef SNMP_IN_PORT #define SNMP_IN_PORT 161 #endif /* The remote port the SNMP agent sends traps to. Most standard trap sinks won't work if you change this! */ #ifndef SNMP_TRAP_PORT #define SNMP_TRAP_PORT 162 #endif #define SNMP_ES_NOERROR 0 #define SNMP_ES_TOOBIG 1 #define SNMP_ES_NOSUCHNAME 2 #define SNMP_ES_BADVALUE 3 #define SNMP_ES_READONLY 4 #define SNMP_ES_GENERROR 5 #define SNMP_GENTRAP_COLDSTART 0 #define SNMP_GENTRAP_WARMSTART 1 #define SNMP_GENTRAP_AUTHFAIL 4 #define SNMP_GENTRAP_ENTERPRISESPC 6 struct snmp_varbind { /* next pointer, NULL for last in list */ struct snmp_varbind *next; /* previous pointer, NULL for first in list */ struct snmp_varbind *prev; /* object identifier length (in s32_t) */ u8_t ident_len; /* object identifier array */ s32_t *ident; /* object value ASN1 type */ u8_t value_type; /* object value length (in u8_t) */ u8_t value_len; /* object value */ void *value; /* encoding varbind seq length length */ u8_t seqlenlen; /* encoding object identifier length length */ u8_t olenlen; /* encoding object value length length */ u8_t vlenlen; /* encoding varbind seq length */ u16_t seqlen; /* encoding object identifier length */ u16_t olen; /* encoding object value length */ u16_t vlen; }; struct snmp_varbind_root { struct snmp_varbind *head; struct snmp_varbind *tail; /* number of variable bindings in list */ u8_t count; /* encoding varbind-list seq length length */ u8_t seqlenlen; /* encoding varbind-list seq length */ u16_t seqlen; }; /** output response message header length fields */ struct snmp_resp_header_lengths { /* encoding error-index length length */ u8_t erridxlenlen; /* encoding error-status length length */ u8_t errstatlenlen; /* encoding request id length length */ u8_t ridlenlen; /* encoding pdu length length */ u8_t pdulenlen; /* encoding community length length */ u8_t comlenlen; /* encoding version length length */ u8_t verlenlen; /* encoding sequence length length */ u8_t seqlenlen; /* encoding error-index length */ u16_t erridxlen; /* encoding error-status length */ u16_t errstatlen; /* encoding request id length */ u16_t ridlen; /* encoding pdu length */ u16_t pdulen; /* encoding community length */ u16_t comlen; /* encoding version length */ u16_t verlen; /* encoding sequence length */ u16_t seqlen; }; /** output response message header length fields */ struct snmp_trap_header_lengths { /* encoding timestamp length length */ u8_t tslenlen; /* encoding specific-trap length length */ u8_t strplenlen; /* encoding generic-trap length length */ u8_t gtrplenlen; /* encoding agent-addr length length */ u8_t aaddrlenlen; /* encoding enterprise-id length length */ u8_t eidlenlen; /* encoding pdu length length */ u8_t pdulenlen; /* encoding community length length */ u8_t comlenlen; /* encoding version length length */ u8_t verlenlen; /* encoding sequence length length */ u8_t seqlenlen; /* encoding timestamp length */ u16_t tslen; /* encoding specific-trap length */ u16_t strplen; /* encoding generic-trap length */ u16_t gtrplen; /* encoding agent-addr length */ u16_t aaddrlen; /* encoding enterprise-id length */ u16_t eidlen; /* encoding pdu length */ u16_t pdulen; /* encoding community length */ u16_t comlen; /* encoding version length */ u16_t verlen; /* encoding sequence length */ u16_t seqlen; }; /* Accepting new SNMP messages. */ #define SNMP_MSG_EMPTY 0 /* Search for matching object for variable binding. */ #define SNMP_MSG_SEARCH_OBJ 1 /* Perform SNMP operation on in-memory object. Pass-through states, for symmetry only. */ #define SNMP_MSG_INTERNAL_GET_OBJDEF 2 #define SNMP_MSG_INTERNAL_GET_VALUE 3 #define SNMP_MSG_INTERNAL_SET_TEST 4 #define SNMP_MSG_INTERNAL_GET_OBJDEF_S 5 #define SNMP_MSG_INTERNAL_SET_VALUE 6 /* Perform SNMP operation on object located externally. In theory this could be used for building a proxy agent. Practical use is for an enterprise spc. app. gateway. */ #define SNMP_MSG_EXTERNAL_GET_OBJDEF 7 #define SNMP_MSG_EXTERNAL_GET_VALUE 8 #define SNMP_MSG_EXTERNAL_SET_TEST 9 #define SNMP_MSG_EXTERNAL_GET_OBJDEF_S 10 #define SNMP_MSG_EXTERNAL_SET_VALUE 11 #define SNMP_COMMUNITY_STR_LEN 64 struct snmp_msg_pstat { /* lwIP local port (161) binding */ struct udp_pcb *pcb; /* source IP address */ struct ip_addr sip; /* source UDP port */ u16_t sp; /* request type */ u8_t rt; /* request ID */ s32_t rid; /* error status */ s32_t error_status; /* error index */ s32_t error_index; /* community name (zero terminated) */ u8_t community[SNMP_COMMUNITY_STR_LEN + 1]; /* community string length (exclusive zero term) */ u8_t com_strlen; /* one out of MSG_EMPTY, MSG_DEMUX, MSG_INTERNAL, MSG_EXTERNAL_x */ u8_t state; /* saved arguments for MSG_EXTERNAL_x */ struct mib_external_node *ext_mib_node; struct snmp_name_ptr ext_name_ptr; struct obj_def ext_object_def; struct snmp_obj_id ext_oid; /* index into input variable binding list */ u8_t vb_idx; /* ptr into input variable binding list */ struct snmp_varbind *vb_ptr; /* list of variable bindings from input */ struct snmp_varbind_root invb; /* list of variable bindings to output */ struct snmp_varbind_root outvb; /* output response lengths used in ASN encoding */ struct snmp_resp_header_lengths rhl; }; struct snmp_msg_trap { /* lwIP local port (161) binding */ struct udp_pcb *pcb; /* destination IP address in network order */ struct ip_addr dip; /* source enterprise ID (sysObjectID) */ struct snmp_obj_id *enterprise; /* source IP address, raw network order format */ u8_t sip_raw[4]; /* generic trap code */ u32_t gen_trap; /* specific trap code */ u32_t spc_trap; /* timestamp */ u32_t ts; /* list of variable bindings to output */ struct snmp_varbind_root outvb; /* output trap lengths used in ASN encoding */ struct snmp_trap_header_lengths thl; }; /** Agent Version constant, 0 = v1 oddity */ extern const s32_t snmp_version; /** Agent default "public" community string */ extern const char snmp_publiccommunity[7]; extern struct snmp_msg_trap trap_msg; /** Agent setup, start listening to port 161. */ void snmp_init(void); void snmp_trap_dst_enable(u8_t dst_idx, u8_t enable); void snmp_trap_dst_ip_set(u8_t dst_idx, struct ip_addr *dst); /** Varbind-list functions. */ struct snmp_varbind* snmp_varbind_alloc(struct snmp_obj_id *oid, u8_t type, u8_t len); void snmp_varbind_free(struct snmp_varbind *vb); void snmp_varbind_list_free(struct snmp_varbind_root *root); void snmp_varbind_tail_add(struct snmp_varbind_root *root, struct snmp_varbind *vb); struct snmp_varbind* snmp_varbind_tail_remove(struct snmp_varbind_root *root); /** Handle an internal (recv) or external (private response) event. */ void snmp_msg_event(u8_t request_id); err_t snmp_send_response(struct snmp_msg_pstat *m_stat); err_t snmp_send_trap(s8_t generic_trap, struct snmp_obj_id *eoid, s32_t specific_trap); void snmp_coldstart_trap(void); void snmp_authfail_trap(void); #ifdef __cplusplus } #endif #endif /* LWIP_SNMP */ #endif /* __LWIP_SNMP_MSG_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/snmp_structs.h000066400000000000000000000226061224274632000254340ustar00rootroot00000000000000/** * @file * Generic MIB tree structures. * * @todo namespace prefixes */ /* * Copyright (c) 2006 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * Author: Christiaan Simons */ #ifndef __LWIP_SNMP_STRUCTS_H__ #define __LWIP_SNMP_STRUCTS_H__ #include "lwip/opt.h" #if LWIP_SNMP /* don't build if not configured for use in lwipopts.h */ #include "lwip/snmp.h" #if SNMP_PRIVATE_MIB #include "private_mib.h" #endif #ifdef __cplusplus extern "C" { #endif /* MIB object instance */ #define MIB_OBJECT_NONE 0 #define MIB_OBJECT_SCALAR 1 #define MIB_OBJECT_TAB 2 /* MIB object access */ #define MIB_OBJECT_READ_ONLY 0 #define MIB_OBJECT_READ_WRITE 1 #define MIB_OBJECT_WRITE_ONLY 2 #define MIB_OBJECT_NOT_ACCESSIBLE 3 /** object definition returned by (get_object_def)() */ struct obj_def { /* MIB_OBJECT_NONE (0), MIB_OBJECT_SCALAR (1), MIB_OBJECT_TAB (2) */ u8_t instance; /* 0 read-only, 1 read-write, 2 write-only, 3 not-accessible */ u8_t access; /* ASN type for this object */ u8_t asn_type; /* value length (host length) */ u16_t v_len; /* length of instance part of supplied object identifier */ u8_t id_inst_len; /* instance part of supplied object identifier */ s32_t *id_inst_ptr; }; struct snmp_name_ptr { u8_t ident_len; s32_t *ident; }; /** MIB const scalar (.0) node */ #define MIB_NODE_SC 0x01 /** MIB const array node */ #define MIB_NODE_AR 0x02 /** MIB array node (mem_malloced from RAM) */ #define MIB_NODE_RA 0x03 /** MIB list root node (mem_malloced from RAM) */ #define MIB_NODE_LR 0x04 /** MIB node for external objects */ #define MIB_NODE_EX 0x05 /** node "base class" layout, the mandatory fields for a node */ struct mib_node { /** returns struct obj_def for the given object identifier */ void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od); /** returns object value for the given object identifier, @note the caller must allocate at least len bytes for the value */ void (*get_value)(struct obj_def *od, u16_t len, void *value); /** tests length and/or range BEFORE setting */ u8_t (*set_test)(struct obj_def *od, u16_t len, void *value); /** sets object value, only to be called when set_test() */ void (*set_value)(struct obj_def *od, u16_t len, void *value); /** One out of MIB_NODE_AR, MIB_NODE_LR or MIB_NODE_EX */ const u8_t node_type; /* array or max list length */ const u16_t maxlength; }; /** derived node for scalars .0 index */ typedef struct mib_node mib_scalar_node; /** derived node, points to a fixed size const array of sub-identifiers plus a 'child' pointer */ struct mib_array_node { /* inherited "base class" members */ void (* const get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od); void (* const get_value)(struct obj_def *od, u16_t len, void *value); u8_t (*set_test)(struct obj_def *od, u16_t len, void *value); void (*set_value)(struct obj_def *od, u16_t len, void *value); const u8_t node_type; const u16_t maxlength; /* aditional struct members */ const s32_t *objid; struct mib_node* const *nptr; }; /** derived node, points to a fixed size mem_malloced array of sub-identifiers plus a 'child' pointer */ struct mib_ram_array_node { /* inherited "base class" members */ void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od); void (*get_value)(struct obj_def *od, u16_t len, void *value); u8_t (*set_test)(struct obj_def *od, u16_t len, void *value); void (*set_value)(struct obj_def *od, u16_t len, void *value); u8_t node_type; u16_t maxlength; /* aditional struct members */ s32_t *objid; struct mib_node **nptr; }; struct mib_list_node { struct mib_list_node *prev; struct mib_list_node *next; s32_t objid; struct mib_node *nptr; }; /** derived node, points to a doubly linked list of sub-identifiers plus a 'child' pointer */ struct mib_list_rootnode { /* inherited "base class" members */ void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od); void (*get_value)(struct obj_def *od, u16_t len, void *value); u8_t (*set_test)(struct obj_def *od, u16_t len, void *value); void (*set_value)(struct obj_def *od, u16_t len, void *value); u8_t node_type; u16_t maxlength; /* aditional struct members */ struct mib_list_node *head; struct mib_list_node *tail; /* counts list nodes in list */ u16_t count; }; /** derived node, has access functions for mib object in external memory or device using 'tree_level' and 'idx', with a range 0 .. (level_length() - 1) */ struct mib_external_node { /* inherited "base class" members */ void (*get_object_def)(u8_t ident_len, s32_t *ident, struct obj_def *od); void (*get_value)(struct obj_def *od, u16_t len, void *value); u8_t (*set_test)(struct obj_def *od, u16_t len, void *value); void (*set_value)(struct obj_def *od, u16_t len, void *value); u8_t node_type; u16_t maxlength; /* aditional struct members */ /** points to an extenal (in memory) record of some sort of addressing information, passed to and interpreted by the funtions below */ void* addr_inf; /** tree levels under this node */ u8_t tree_levels; /** number of objects at this level */ u16_t (*level_length)(void* addr_inf, u8_t level); /** compares object sub identifier with external id return zero when equal, nonzero when unequal */ s32_t (*ident_cmp)(void* addr_inf, u8_t level, u16_t idx, s32_t sub_id); void (*get_objid)(void* addr_inf, u8_t level, u16_t idx, s32_t *sub_id); /** async Questions */ void (*get_object_def_q)(void* addr_inf, u8_t rid, u8_t ident_len, s32_t *ident); void (*get_value_q)(u8_t rid, struct obj_def *od); void (*set_test_q)(u8_t rid, struct obj_def *od); void (*set_value_q)(u8_t rid, struct obj_def *od, u16_t len, void *value); /** async Answers */ void (*get_object_def_a)(u8_t rid, u8_t ident_len, s32_t *ident, struct obj_def *od); void (*get_value_a)(u8_t rid, struct obj_def *od, u16_t len, void *value); u8_t (*set_test_a)(u8_t rid, struct obj_def *od, u16_t len, void *value); void (*set_value_a)(u8_t rid, struct obj_def *od, u16_t len, void *value); /** async Panic Close (agent returns error reply, e.g. used for external transaction cleanup) */ void (*get_object_def_pc)(u8_t rid, u8_t ident_len, s32_t *ident); void (*get_value_pc)(u8_t rid, struct obj_def *od); void (*set_test_pc)(u8_t rid, struct obj_def *od); void (*set_value_pc)(u8_t rid, struct obj_def *od); }; /** export MIB tree from mib2.c */ extern const struct mib_array_node internet; /** dummy function pointers for non-leaf MIB nodes from mib2.c */ void noleafs_get_object_def(u8_t ident_len, s32_t *ident, struct obj_def *od); void noleafs_get_value(struct obj_def *od, u16_t len, void *value); u8_t noleafs_set_test(struct obj_def *od, u16_t len, void *value); void noleafs_set_value(struct obj_def *od, u16_t len, void *value); void snmp_oidtoip(s32_t *ident, struct ip_addr *ip); void snmp_iptooid(struct ip_addr *ip, s32_t *ident); void snmp_ifindextonetif(s32_t ifindex, struct netif **netif); void snmp_netiftoifindex(struct netif *netif, s32_t *ifidx); struct mib_list_node* snmp_mib_ln_alloc(s32_t id); void snmp_mib_ln_free(struct mib_list_node *ln); struct mib_list_rootnode* snmp_mib_lrn_alloc(void); void snmp_mib_lrn_free(struct mib_list_rootnode *lrn); s8_t snmp_mib_node_insert(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **insn); s8_t snmp_mib_node_find(struct mib_list_rootnode *rn, s32_t objid, struct mib_list_node **fn); struct mib_list_rootnode *snmp_mib_node_delete(struct mib_list_rootnode *rn, struct mib_list_node *n); struct mib_node* snmp_search_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_name_ptr *np); struct mib_node* snmp_expand_tree(struct mib_node *node, u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret); u8_t snmp_iso_prefix_tst(u8_t ident_len, s32_t *ident); u8_t snmp_iso_prefix_expand(u8_t ident_len, s32_t *ident, struct snmp_obj_id *oidret); #ifdef __cplusplus } #endif #endif /* LWIP_SNMP */ #endif /* __LWIP_SNMP_STRUCTS_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/sockets.h000066400000000000000000000330571224274632000243450ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_SOCKETS_H__ #define __LWIP_SOCKETS_H__ #include "lwip/opt.h" #if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */ #include /* for size_t */ #include "lwip/ip_addr.h" #include "lwip/inet.h" #ifdef __cplusplus extern "C" { #endif /* members are in network byte order */ struct sockaddr_in { u8_t sin_len; u8_t sin_family; u16_t sin_port; struct in_addr sin_addr; char sin_zero[8]; }; struct sockaddr { u8_t sa_len; u8_t sa_family; char sa_data[14]; }; #ifndef socklen_t # define socklen_t u32_t #endif /* Socket protocol types (TCP/UDP/RAW) */ #define SOCK_STREAM 1 #define SOCK_DGRAM 2 #define SOCK_RAW 3 /* * Option flags per-socket. These must match the SOF_ flags in ip.h! */ #define SO_DEBUG 0x0001 /* Unimplemented: turn on debugging info recording */ #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ #define SO_REUSEADDR 0x0004 /* Unimplemented: allow local address reuse */ #define SO_KEEPALIVE 0x0008 /* keep connections alive */ #define SO_DONTROUTE 0x0010 /* Unimplemented: just use interface addresses */ #define SO_BROADCAST 0x0020 /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */ #define SO_USELOOPBACK 0x0040 /* Unimplemented: bypass hardware when possible */ #define SO_LINGER 0x0080 /* linger on close if data present */ #define SO_OOBINLINE 0x0100 /* Unimplemented: leave received OOB data in line */ #define SO_REUSEPORT 0x0200 /* Unimplemented: allow local address & port reuse */ #define SO_DONTLINGER ((int)(~SO_LINGER)) /* * Additional options, not kept in so_options. */ #define SO_SNDBUF 0x1001 /* Unimplemented: send buffer size */ #define SO_RCVBUF 0x1002 /* receive buffer size */ #define SO_SNDLOWAT 0x1003 /* Unimplemented: send low-water mark */ #define SO_RCVLOWAT 0x1004 /* Unimplemented: receive low-water mark */ #define SO_SNDTIMEO 0x1005 /* Unimplemented: send timeout */ #define SO_RCVTIMEO 0x1006 /* receive timeout */ #define SO_ERROR 0x1007 /* get error status and clear */ #define SO_TYPE 0x1008 /* get socket type */ #define SO_CONTIMEO 0x1009 /* Unimplemented: connect timeout */ #define SO_NO_CHECK 0x100a /* don't create UDP checksum */ /* * Structure used for manipulating linger option. */ struct linger { int l_onoff; /* option on/off */ int l_linger; /* linger time */ }; /* * Level number for (get/set)sockopt() to apply to socket itself. */ #define SOL_SOCKET 0xfff /* options for socket level */ #define AF_UNSPEC 0 #define AF_INET 2 #define PF_INET AF_INET #define PF_UNSPEC AF_UNSPEC #define IPPROTO_IP 0 #define IPPROTO_TCP 6 #define IPPROTO_UDP 17 #define IPPROTO_UDPLITE 136 /* Flags we can use with send and recv. */ #define MSG_PEEK 0x01 /* Peeks at an incoming message */ #define MSG_WAITALL 0x02 /* Unimplemented: Requests that the function block until the full amount of data requested can be returned */ #define MSG_OOB 0x04 /* Unimplemented: Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific */ #define MSG_DONTWAIT 0x08 /* Nonblocking i/o for this operation only */ #define MSG_MORE 0x10 /* Sender will send more */ /* * Options for level IPPROTO_IP */ #define IP_TOS 1 #define IP_TTL 2 #if LWIP_TCP /* * Options for level IPPROTO_TCP */ #define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */ #define TCP_KEEPALIVE 0x02 /* send KEEPALIVE probes when idle for pcb->keep_idle milliseconds */ #define TCP_KEEPIDLE 0x03 /* set pcb->keep_idle - Same as TCP_KEEPALIVE, but use seconds for get/setsockopt */ #define TCP_KEEPINTVL 0x04 /* set pcb->keep_intvl - Use seconds for get/setsockopt */ #define TCP_KEEPCNT 0x05 /* set pcb->keep_cnt - Use number of probes sent for get/setsockopt */ #endif /* LWIP_TCP */ #if LWIP_UDP && LWIP_UDPLITE /* * Options for level IPPROTO_UDPLITE */ #define UDPLITE_SEND_CSCOV 0x01 /* sender checksum coverage */ #define UDPLITE_RECV_CSCOV 0x02 /* minimal receiver checksum coverage */ #endif /* LWIP_UDP && LWIP_UDPLITE*/ #if LWIP_IGMP /* * Options and types for UDP multicast traffic handling */ #define IP_ADD_MEMBERSHIP 3 #define IP_DROP_MEMBERSHIP 4 #define IP_MULTICAST_TTL 5 #define IP_MULTICAST_IF 6 #define IP_MULTICAST_LOOP 7 typedef struct ip_mreq { struct in_addr imr_multiaddr; /* IP multicast address of group */ struct in_addr imr_interface; /* local IP address of interface */ } ip_mreq; #endif /* LWIP_IGMP */ /* * The Type of Service provides an indication of the abstract * parameters of the quality of service desired. These parameters are * to be used to guide the selection of the actual service parameters * when transmitting a datagram through a particular network. Several * networks offer service precedence, which somehow treats high * precedence traffic as more important than other traffic (generally * by accepting only traffic above a certain precedence at time of high * load). The major choice is a three way tradeoff between low-delay, * high-reliability, and high-throughput. * The use of the Delay, Throughput, and Reliability indications may * increase the cost (in some sense) of the service. In many networks * better performance for one of these parameters is coupled with worse * performance on another. Except for very unusual cases at most two * of these three indications should be set. */ #define IPTOS_TOS_MASK 0x1E #define IPTOS_TOS(tos) ((tos) & IPTOS_TOS_MASK) #define IPTOS_LOWDELAY 0x10 #define IPTOS_THROUGHPUT 0x08 #define IPTOS_RELIABILITY 0x04 #define IPTOS_LOWCOST 0x02 #define IPTOS_MINCOST IPTOS_LOWCOST /* * The Network Control precedence designation is intended to be used * within a network only. The actual use and control of that * designation is up to each network. The Internetwork Control * designation is intended for use by gateway control originators only. * If the actual use of these precedence designations is of concern to * a particular network, it is the responsibility of that network to * control the access to, and use of, those precedence designations. */ #define IPTOS_PREC_MASK 0xe0 #define IPTOS_PREC(tos) ((tos) & IPTOS_PREC_MASK) #define IPTOS_PREC_NETCONTROL 0xe0 #define IPTOS_PREC_INTERNETCONTROL 0xc0 #define IPTOS_PREC_CRITIC_ECP 0xa0 #define IPTOS_PREC_FLASHOVERRIDE 0x80 #define IPTOS_PREC_FLASH 0x60 #define IPTOS_PREC_IMMEDIATE 0x40 #define IPTOS_PREC_PRIORITY 0x20 #define IPTOS_PREC_ROUTINE 0x00 /* * Commands for ioctlsocket(), taken from the BSD file fcntl.h. * lwip_ioctl only supports FIONREAD and FIONBIO, for now * * Ioctl's have the command encoded in the lower word, * and the size of any in or out parameters in the upper * word. The high 2 bits of the upper word are used * to encode the in/out status of the parameter; for now * we restrict parameters to at most 128 bytes. */ #if !defined(FIONREAD) || !defined(FIONBIO) #define IOCPARM_MASK 0x7fU /* parameters must be < 128 bytes */ #define IOC_VOID 0x20000000UL /* no parameters */ #define IOC_OUT 0x40000000UL /* copy out parameters */ #define IOC_IN 0x80000000UL /* copy in parameters */ #define IOC_INOUT (IOC_IN|IOC_OUT) /* 0x20000000 distinguishes new & old ioctl's */ #define _IO(x,y) (IOC_VOID|((x)<<8)|(y)) #define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) #define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y)) #endif /* !defined(FIONREAD) || !defined(FIONBIO) */ #ifndef FIONREAD #define FIONREAD _IOR('f', 127, unsigned long) /* get # bytes to read */ #endif #ifndef FIONBIO #define FIONBIO _IOW('f', 126, unsigned long) /* set/clear non-blocking i/o */ #endif /* Socket I/O Controls: unimplemented */ #ifndef SIOCSHIWAT #define SIOCSHIWAT _IOW('s', 0, unsigned long) /* set high watermark */ #define SIOCGHIWAT _IOR('s', 1, unsigned long) /* get high watermark */ #define SIOCSLOWAT _IOW('s', 2, unsigned long) /* set low watermark */ #define SIOCGLOWAT _IOR('s', 3, unsigned long) /* get low watermark */ #define SIOCATMARK _IOR('s', 7, unsigned long) /* at oob mark? */ #endif /* Socket flags: */ #ifndef O_NONBLOCK #define O_NONBLOCK 04000U #endif /* FD_SET used for lwip_select */ #ifndef FD_SET #undef FD_SETSIZE /* Make FD_SETSIZE match NUM_SOCKETS in socket.c */ #define FD_SETSIZE MEMP_NUM_NETCONN #define FD_SET(n, p) ((p)->fd_bits[(n)/8] |= (1 << ((n) & 7))) #define FD_CLR(n, p) ((p)->fd_bits[(n)/8] &= ~(1 << ((n) & 7))) #define FD_ISSET(n,p) ((p)->fd_bits[(n)/8] & (1 << ((n) & 7))) #define FD_ZERO(p) memset((void*)(p),0,sizeof(*(p))) typedef struct fd_set { unsigned char fd_bits [(FD_SETSIZE+7)/8]; } fd_set; #endif /* FD_SET */ /** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided * by your system, set this to 0 and include in cc.h */ #ifndef LWIP_TIMEVAL_PRIVATE #define LWIP_TIMEVAL_PRIVATE 1 #endif #if LWIP_TIMEVAL_PRIVATE struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; #endif /* LWIP_TIMEVAL_PRIVATE */ void lwip_socket_init(void); int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen); int lwip_bind(int s, const struct sockaddr *name, socklen_t namelen); int lwip_shutdown(int s, int how); int lwip_getpeername (int s, struct sockaddr *name, socklen_t *namelen); int lwip_getsockname (int s, struct sockaddr *name, socklen_t *namelen); int lwip_getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen); int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen); int lwip_close(int s); int lwip_connect(int s, const struct sockaddr *name, socklen_t namelen); int lwip_listen(int s, int backlog); int lwip_recv(int s, void *mem, size_t len, int flags); int lwip_read(int s, void *mem, size_t len); int lwip_recvfrom(int s, void *mem, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); int lwip_send(int s, const void *dataptr, size_t size, int flags); int lwip_sendto(int s, const void *dataptr, size_t size, int flags, const struct sockaddr *to, socklen_t tolen); int lwip_socket(int domain, int type, int protocol); int lwip_write(int s, const void *dataptr, size_t size); int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset, struct timeval *timeout); int lwip_ioctl(int s, long cmd, void *argp); #if LWIP_COMPAT_SOCKETS #define accept(a,b,c) lwip_accept(a,b,c) #define bind(a,b,c) lwip_bind(a,b,c) #define shutdown(a,b) lwip_shutdown(a,b) #define closesocket(s) lwip_close(s) #define connect(a,b,c) lwip_connect(a,b,c) #define getsockname(a,b,c) lwip_getsockname(a,b,c) #define getpeername(a,b,c) lwip_getpeername(a,b,c) #define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e) #define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e) #define listen(a,b) lwip_listen(a,b) #define recv(a,b,c,d) lwip_recv(a,b,c,d) #define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f) #define send(a,b,c,d) lwip_send(a,b,c,d) #define sendto(a,b,c,d,e,f) lwip_sendto(a,b,c,d,e,f) #define socket(a,b,c) lwip_socket(a,b,c) #define select(a,b,c,d,e) lwip_select(a,b,c,d,e) #define ioctlsocket(a,b,c) lwip_ioctl(a,b,c) #if LWIP_POSIX_SOCKETS_IO_NAMES #define read(a,b,c) lwip_read(a,b,c) #define write(a,b,c) lwip_write(a,b,c) #define close(s) lwip_close(s) #endif /* LWIP_POSIX_SOCKETS_IO_NAMES */ #endif /* LWIP_COMPAT_SOCKETS */ #ifdef __cplusplus } #endif #endif /* LWIP_SOCKET */ #endif /* __LWIP_SOCKETS_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/stats.h000066400000000000000000000177521224274632000240340ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_STATS_H__ #define __LWIP_STATS_H__ #include "lwip/opt.h" #include "lwip/mem.h" #include "lwip/memp.h" #ifdef __cplusplus extern "C" { #endif #if LWIP_STATS #ifndef LWIP_STATS_LARGE #define LWIP_STATS_LARGE 0 #endif #if LWIP_STATS_LARGE #define STAT_COUNTER u32_t #define STAT_COUNTER_F U32_F #else #define STAT_COUNTER u16_t #define STAT_COUNTER_F U16_F #endif struct stats_proto { STAT_COUNTER xmit; /* Transmitted packets. */ STAT_COUNTER recv; /* Received packets. */ STAT_COUNTER fw; /* Forwarded packets. */ STAT_COUNTER drop; /* Dropped packets. */ STAT_COUNTER chkerr; /* Checksum error. */ STAT_COUNTER lenerr; /* Invalid length error. */ STAT_COUNTER memerr; /* Out of memory error. */ STAT_COUNTER rterr; /* Routing error. */ STAT_COUNTER proterr; /* Protocol error. */ STAT_COUNTER opterr; /* Error in options. */ STAT_COUNTER err; /* Misc error. */ STAT_COUNTER cachehit; }; struct stats_igmp { STAT_COUNTER lenerr; /* Invalid length error. */ STAT_COUNTER chkerr; /* Checksum error. */ STAT_COUNTER v1_rxed; /* */ STAT_COUNTER join_sent; /* */ STAT_COUNTER leave_sent; /* */ STAT_COUNTER unicast_query; /* */ STAT_COUNTER report_sent; /* */ STAT_COUNTER report_rxed; /* */ STAT_COUNTER group_query_rxed; /* */ }; struct stats_mem { mem_size_t avail; mem_size_t used; mem_size_t max; STAT_COUNTER err; STAT_COUNTER illegal; }; struct stats_syselem { STAT_COUNTER used; STAT_COUNTER max; STAT_COUNTER err; }; struct stats_sys { struct stats_syselem sem; struct stats_syselem mbox; }; struct stats_ { #if LINK_STATS struct stats_proto link; #endif #if ETHARP_STATS struct stats_proto etharp; #endif #if IPFRAG_STATS struct stats_proto ip_frag; #endif #if IP_STATS struct stats_proto ip; #endif #if ICMP_STATS struct stats_proto icmp; #endif #if IGMP_STATS struct stats_igmp igmp; #endif #if UDP_STATS struct stats_proto udp; #endif #if TCP_STATS struct stats_proto tcp; #endif #if MEM_STATS struct stats_mem mem; #endif #if MEMP_STATS struct stats_mem memp[MEMP_MAX]; #endif #if SYS_STATS struct stats_sys sys; #endif }; extern struct stats_ lwip_stats; #define stats_init() /* Compatibility define, not init needed. */ #define STATS_INC(x) ++lwip_stats.x #define STATS_DEC(x) --lwip_stats.x #else #define stats_init() #define STATS_INC(x) #define STATS_DEC(x) #endif /* LWIP_STATS */ #if TCP_STATS #define TCP_STATS_INC(x) STATS_INC(x) #define TCP_STATS_DISPLAY() stats_display_proto(&lwip_stats.tcp, "TCP") #else #define TCP_STATS_INC(x) #define TCP_STATS_DISPLAY() #endif #if UDP_STATS #define UDP_STATS_INC(x) STATS_INC(x) #define UDP_STATS_DISPLAY() stats_display_proto(&lwip_stats.udp, "UDP") #else #define UDP_STATS_INC(x) #define UDP_STATS_DISPLAY() #endif #if ICMP_STATS #define ICMP_STATS_INC(x) STATS_INC(x) #define ICMP_STATS_DISPLAY() stats_display_proto(&lwip_stats.icmp, "ICMP") #else #define ICMP_STATS_INC(x) #define ICMP_STATS_DISPLAY() #endif #if IGMP_STATS #define IGMP_STATS_INC(x) STATS_INC(x) #define IGMP_STATS_DISPLAY() stats_display_igmp(&lwip_stats.igmp) #else #define IGMP_STATS_INC(x) #define IGMP_STATS_DISPLAY() #endif #if IP_STATS #define IP_STATS_INC(x) STATS_INC(x) #define IP_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip, "IP") #else #define IP_STATS_INC(x) #define IP_STATS_DISPLAY() #endif #if IPFRAG_STATS #define IPFRAG_STATS_INC(x) STATS_INC(x) #define IPFRAG_STATS_DISPLAY() stats_display_proto(&lwip_stats.ip_frag, "IP_FRAG") #else #define IPFRAG_STATS_INC(x) #define IPFRAG_STATS_DISPLAY() #endif #if ETHARP_STATS #define ETHARP_STATS_INC(x) STATS_INC(x) #define ETHARP_STATS_DISPLAY() stats_display_proto(&lwip_stats.etharp, "ETHARP") #else #define ETHARP_STATS_INC(x) #define ETHARP_STATS_DISPLAY() #endif #if LINK_STATS #define LINK_STATS_INC(x) STATS_INC(x) #define LINK_STATS_DISPLAY() stats_display_proto(&lwip_stats.link, "LINK") #else #define LINK_STATS_INC(x) #define LINK_STATS_DISPLAY() #endif #if MEM_STATS #define MEM_STATS_AVAIL(x, y) lwip_stats.mem.x = y #define MEM_STATS_INC(x) STATS_INC(mem.x) #define MEM_STATS_INC_USED(x, y) do { lwip_stats.mem.used += y; \ if (lwip_stats.mem.max < lwip_stats.mem.used) { \ lwip_stats.mem.max = lwip_stats.mem.used; \ } \ } while(0) #define MEM_STATS_DEC_USED(x, y) lwip_stats.mem.x -= y #define MEM_STATS_DISPLAY() stats_display_mem(&lwip_stats.mem, "HEAP") #else #define MEM_STATS_AVAIL(x, y) #define MEM_STATS_INC(x) #define MEM_STATS_INC_USED(x, y) #define MEM_STATS_DEC_USED(x, y) #define MEM_STATS_DISPLAY() #endif #if MEMP_STATS #define MEMP_STATS_AVAIL(x, i, y) lwip_stats.memp[i].x = y #define MEMP_STATS_INC(x, i) STATS_INC(memp[i].x) #define MEMP_STATS_DEC(x, i) STATS_DEC(memp[i].x) #define MEMP_STATS_INC_USED(x, i) do { ++lwip_stats.memp[i].used; \ if (lwip_stats.memp[i].max < lwip_stats.memp[i].used) { \ lwip_stats.memp[i].max = lwip_stats.memp[i].used; \ } \ } while(0) #define MEMP_STATS_DISPLAY(i) stats_display_memp(&lwip_stats.memp[i], i) #else #define MEMP_STATS_AVAIL(x, i, y) #define MEMP_STATS_INC(x, i) #define MEMP_STATS_DEC(x, i) #define MEMP_STATS_INC_USED(x, i) #define MEMP_STATS_DISPLAY(i) #endif #if SYS_STATS #define SYS_STATS_INC(x) STATS_INC(sys.x) #define SYS_STATS_DEC(x) STATS_DEC(sys.x) #define SYS_STATS_DISPLAY() stats_display_sys(&lwip_stats.sys) #else #define SYS_STATS_INC(x) #define SYS_STATS_DEC(x) #define SYS_STATS_DISPLAY() #endif /* Display of statistics */ #if LWIP_STATS_DISPLAY void stats_display(void); void stats_display_proto(struct stats_proto *proto, char *name); void stats_display_igmp(struct stats_igmp *igmp); void stats_display_mem(struct stats_mem *mem, char *name); void stats_display_memp(struct stats_mem *mem, int index); void stats_display_sys(struct stats_sys *sys); #else #define stats_display() #define stats_display_proto(proto, name) #define stats_display_igmp(igmp) #define stats_display_mem(mem, name) #define stats_display_memp(mem, index) #define stats_display_sys(sys) #endif /* LWIP_STATS_DISPLAY */ #ifdef __cplusplus } #endif #endif /* __LWIP_STATS_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/sys.h000066400000000000000000000205341224274632000235040ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_SYS_H__ #define __LWIP_SYS_H__ #include "lwip/opt.h" #ifdef __cplusplus extern "C" { #endif #if NO_SYS /* For a totally minimal and standalone system, we provide null definitions of the sys_ functions. */ typedef u8_t sys_sem_t; typedef u8_t sys_mbox_t; struct sys_timeo {u8_t dummy;}; #define sys_init() #define sys_timeout(m,h,a) #define sys_untimeout(m,a) #define sys_sem_new(c) c #define sys_sem_signal(s) #define sys_sem_wait(s) #define sys_sem_wait_timeout(s,t) #define sys_arch_sem_wait(s,t) #define sys_sem_free(s) #define sys_mbox_new(s) 0 #define sys_mbox_fetch(m,d) #define sys_mbox_tryfetch(m,d) #define sys_mbox_post(m,d) #define sys_mbox_trypost(m,d) #define sys_mbox_free(m) #define sys_thread_new(n,t,a,s,p) #else /* NO_SYS */ /** Return code for timeouts from sys_arch_mbox_fetch and sys_arch_sem_wait */ #define SYS_ARCH_TIMEOUT 0xffffffffUL /* sys_mbox_tryfetch returns SYS_MBOX_EMPTY if appropriate. * For now we use the same magic value, but we allow this to change in future. */ #define SYS_MBOX_EMPTY SYS_ARCH_TIMEOUT #include "lwip/err.h" #include "arch/sys_arch.h" typedef void (* sys_timeout_handler)(void *arg); struct sys_timeo { struct sys_timeo *next; u32_t time; sys_timeout_handler h; void *arg; }; struct sys_timeouts { struct sys_timeo *next; }; /* sys_init() must be called before anthing else. */ void sys_init(void); /* * sys_timeout(): * * Schedule a timeout a specified amount of milliseconds in the * future. When the timeout occurs, the specified timeout handler will * be called. The handler will be passed the "arg" argument when * called. * */ void sys_timeout(u32_t msecs, sys_timeout_handler h, void *arg); void sys_untimeout(sys_timeout_handler h, void *arg); struct sys_timeouts *sys_arch_timeouts(void); /* Semaphore functions. */ sys_sem_t sys_sem_new(u8_t count); void sys_sem_signal(sys_sem_t sem); u32_t sys_arch_sem_wait(sys_sem_t sem, u32_t timeout); void sys_sem_free(sys_sem_t sem); void sys_sem_wait(sys_sem_t sem); int sys_sem_wait_timeout(sys_sem_t sem, u32_t timeout); /* Time functions. */ #ifndef sys_msleep void sys_msleep(u32_t ms); /* only has a (close to) 1 jiffy resolution. */ #endif #ifndef sys_jiffies u32_t sys_jiffies(void); /* since power up. */ #endif /* Mailbox functions. */ sys_mbox_t sys_mbox_new(int size); void sys_mbox_post(sys_mbox_t mbox, void *msg); err_t sys_mbox_trypost(sys_mbox_t mbox, void *msg); u32_t sys_arch_mbox_fetch(sys_mbox_t mbox, void **msg, u32_t timeout); #ifndef sys_arch_mbox_tryfetch /* Allow port to override with a macro */ u32_t sys_arch_mbox_tryfetch(sys_mbox_t mbox, void **msg); #endif /* For now, we map straight to sys_arch implementation. */ #define sys_mbox_tryfetch(mbox, msg) sys_arch_mbox_tryfetch(mbox, msg) void sys_mbox_free(sys_mbox_t mbox); void sys_mbox_fetch(sys_mbox_t mbox, void **msg); /* Thread functions. */ sys_thread_t sys_thread_new(char *name, void (* thread)(void *arg), void *arg, int stacksize, int prio); #endif /* NO_SYS */ /** Returns the current time in milliseconds. */ u32_t sys_now(void); /* Critical Region Protection */ /* These functions must be implemented in the sys_arch.c file. In some implementations they can provide a more light-weight protection mechanism than using semaphores. Otherwise semaphores can be used for implementation */ #ifndef SYS_ARCH_PROTECT /** SYS_LIGHTWEIGHT_PROT * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection * for certain critical regions during buffer allocation, deallocation and memory * allocation and deallocation. */ #if SYS_LIGHTWEIGHT_PROT /** SYS_ARCH_DECL_PROTECT * declare a protection variable. This macro will default to defining a variable of * type sys_prot_t. If a particular port needs a different implementation, then * this macro may be defined in sys_arch.h. */ #define SYS_ARCH_DECL_PROTECT(lev) sys_prot_t lev /** SYS_ARCH_PROTECT * Perform a "fast" protect. This could be implemented by * disabling interrupts for an embedded system or by using a semaphore or * mutex. The implementation should allow calling SYS_ARCH_PROTECT when * already protected. The old protection level is returned in the variable * "lev". This macro will default to calling the sys_arch_protect() function * which should be implemented in sys_arch.c. If a particular port needs a * different implementation, then this macro may be defined in sys_arch.h */ #define SYS_ARCH_PROTECT(lev) lev = sys_arch_protect() /** SYS_ARCH_UNPROTECT * Perform a "fast" set of the protection level to "lev". This could be * implemented by setting the interrupt level to "lev" within the MACRO or by * using a semaphore or mutex. This macro will default to calling the * sys_arch_unprotect() function which should be implemented in * sys_arch.c. If a particular port needs a different implementation, then * this macro may be defined in sys_arch.h */ #define SYS_ARCH_UNPROTECT(lev) sys_arch_unprotect(lev) sys_prot_t sys_arch_protect(void); void sys_arch_unprotect(sys_prot_t pval); #else #define SYS_ARCH_DECL_PROTECT(lev) #define SYS_ARCH_PROTECT(lev) #define SYS_ARCH_UNPROTECT(lev) #endif /* SYS_LIGHTWEIGHT_PROT */ #endif /* SYS_ARCH_PROTECT */ /* * Macros to set/get and increase/decrease variables in a thread-safe way. * Use these for accessing variable that are used from more than one thread. */ #ifndef SYS_ARCH_INC #define SYS_ARCH_INC(var, val) do { \ SYS_ARCH_DECL_PROTECT(old_level); \ SYS_ARCH_PROTECT(old_level); \ var += val; \ SYS_ARCH_UNPROTECT(old_level); \ } while(0) #endif /* SYS_ARCH_INC */ #ifndef SYS_ARCH_DEC #define SYS_ARCH_DEC(var, val) do { \ SYS_ARCH_DECL_PROTECT(old_level); \ SYS_ARCH_PROTECT(old_level); \ var -= val; \ SYS_ARCH_UNPROTECT(old_level); \ } while(0) #endif /* SYS_ARCH_DEC */ #ifndef SYS_ARCH_GET #define SYS_ARCH_GET(var, ret) do { \ SYS_ARCH_DECL_PROTECT(old_level); \ SYS_ARCH_PROTECT(old_level); \ ret = var; \ SYS_ARCH_UNPROTECT(old_level); \ } while(0) #endif /* SYS_ARCH_GET */ #ifndef SYS_ARCH_SET #define SYS_ARCH_SET(var, val) do { \ SYS_ARCH_DECL_PROTECT(old_level); \ SYS_ARCH_PROTECT(old_level); \ var = val; \ SYS_ARCH_UNPROTECT(old_level); \ } while(0) #endif /* SYS_ARCH_SET */ #ifdef __cplusplus } #endif #endif /* __LWIP_SYS_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/tcp.h000066400000000000000000000657441224274632000234700ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_TCP_H__ #define __LWIP_TCP_H__ #include "lwip/opt.h" #if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ #include "lwip/sys.h" #include "lwip/mem.h" #include "lwip/pbuf.h" #include "lwip/ip.h" #include "lwip/icmp.h" #include "lwip/err.h" #ifdef __cplusplus extern "C" { #endif struct tcp_pcb; /* Functions for interfacing with TCP: */ /* Lower layer interface to TCP: */ #define tcp_init() /* Compatibility define, not init needed. */ void tcp_tmr (void); /* Must be called every TCP_TMR_INTERVAL ms. (Typically 250 ms). */ /* Application program's interface: */ struct tcp_pcb * tcp_new (void); struct tcp_pcb * tcp_alloc (u8_t prio); void tcp_arg (struct tcp_pcb *pcb, void *arg); void tcp_accept (struct tcp_pcb *pcb, err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err)); void tcp_recv (struct tcp_pcb *pcb, err_t (* recv)(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err)); void tcp_sent (struct tcp_pcb *pcb, err_t (* sent)(void *arg, struct tcp_pcb *tpcb, u16_t len)); void tcp_poll (struct tcp_pcb *pcb, err_t (* poll)(void *arg, struct tcp_pcb *tpcb), u8_t interval); void tcp_err (struct tcp_pcb *pcb, void (* err)(void *arg, err_t err)); #define tcp_mss(pcb) ((pcb)->mss) #define tcp_sndbuf(pcb) ((pcb)->snd_buf) #if TCP_LISTEN_BACKLOG #define tcp_accepted(pcb) (((struct tcp_pcb_listen *)(pcb))->accepts_pending--) #else /* TCP_LISTEN_BACKLOG */ #define tcp_accepted(pcb) #endif /* TCP_LISTEN_BACKLOG */ void tcp_recved (struct tcp_pcb *pcb, u16_t len); err_t tcp_bind (struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port); err_t tcp_connect (struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port, err_t (* connected)(void *arg, struct tcp_pcb *tpcb, err_t err)); struct tcp_pcb * tcp_listen_with_backlog(struct tcp_pcb *pcb, u8_t backlog); #define tcp_listen(pcb) tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG) void tcp_abandon (struct tcp_pcb *pcb, int reset); #define tcp_abort(pcb) tcp_abandon((pcb), 1) err_t tcp_close (struct tcp_pcb *pcb); /* Flags for "apiflags" parameter in tcp_write and tcp_enqueue */ #define TCP_WRITE_FLAG_COPY 0x01 #define TCP_WRITE_FLAG_MORE 0x02 err_t tcp_write (struct tcp_pcb *pcb, const void *dataptr, u16_t len, u8_t apiflags); void tcp_setprio (struct tcp_pcb *pcb, u8_t prio); #define TCP_PRIO_MIN 1 #define TCP_PRIO_NORMAL 64 #define TCP_PRIO_MAX 127 /* It is also possible to call these two functions at the right intervals (instead of calling tcp_tmr()). */ void tcp_slowtmr (void); void tcp_fasttmr (void); /* Only used by IP to pass a TCP segment to TCP: */ void tcp_input (struct pbuf *p, struct netif *inp); /* Used within the TCP code only: */ err_t tcp_output (struct tcp_pcb *pcb); void tcp_rexmit (struct tcp_pcb *pcb); void tcp_rexmit_rto (struct tcp_pcb *pcb); u32_t tcp_update_rcv_ann_wnd(struct tcp_pcb *pcb); /** * This is the Nagle algorithm: try to combine user data to send as few TCP * segments as possible. Only send if * - no previously transmitted data on the connection remains unacknowledged or * - the TF_NODELAY flag is set (nagle algorithm turned off for this pcb) or * - the only unsent segment is at least pcb->mss bytes long (or there is more * than one unsent segment - with lwIP, this can happen although unsent->len < mss) */ #define tcp_do_output_nagle(tpcb) ((((tpcb)->unacked == NULL) || \ ((tpcb)->flags & TF_NODELAY) || \ (((tpcb)->unsent != NULL) && (((tpcb)->unsent->next != NULL) || \ ((tpcb)->unsent->len >= (tpcb)->mss))) \ ) ? 1 : 0) #define tcp_output_nagle(tpcb) (tcp_do_output_nagle(tpcb) ? tcp_output(tpcb) : ERR_OK) #define TCP_SEQ_LT(a,b) ((s32_t)((a)-(b)) < 0) #define TCP_SEQ_LEQ(a,b) ((s32_t)((a)-(b)) <= 0) #define TCP_SEQ_GT(a,b) ((s32_t)((a)-(b)) > 0) #define TCP_SEQ_GEQ(a,b) ((s32_t)((a)-(b)) >= 0) /* is b<=a<=c? */ #if 0 /* see bug #10548 */ #define TCP_SEQ_BETWEEN(a,b,c) ((c)-(b) >= (a)-(b)) #endif #define TCP_SEQ_BETWEEN(a,b,c) (TCP_SEQ_GEQ(a,b) && TCP_SEQ_LEQ(a,c)) #define TCP_FIN 0x01U #define TCP_SYN 0x02U #define TCP_RST 0x04U #define TCP_PSH 0x08U #define TCP_ACK 0x10U #define TCP_URG 0x20U #define TCP_ECE 0x40U #define TCP_CWR 0x80U #define TCP_FLAGS 0x3fU /* Length of the TCP header, excluding options. */ #define TCP_HLEN 20 #ifndef TCP_TMR_INTERVAL #define TCP_TMR_INTERVAL 250 /* The TCP timer interval in milliseconds. */ #endif /* TCP_TMR_INTERVAL */ #ifndef TCP_FAST_INTERVAL #define TCP_FAST_INTERVAL TCP_TMR_INTERVAL /* the fine grained timeout in milliseconds */ #endif /* TCP_FAST_INTERVAL */ #ifndef TCP_SLOW_INTERVAL #define TCP_SLOW_INTERVAL (2*TCP_TMR_INTERVAL) /* the coarse grained timeout in milliseconds */ #endif /* TCP_SLOW_INTERVAL */ #define TCP_FIN_WAIT_TIMEOUT 20000 /* milliseconds */ #define TCP_SYN_RCVD_TIMEOUT 20000 /* milliseconds */ #define TCP_OOSEQ_TIMEOUT 6U /* x RTO */ #ifndef TCP_MSL #define TCP_MSL 60000UL /* The maximum segment lifetime in milliseconds */ #endif /* Keepalive values, compliant with RFC 1122. Don't change this unless you know what you're doing */ #ifndef TCP_KEEPIDLE_DEFAULT #define TCP_KEEPIDLE_DEFAULT 7200000UL /* Default KEEPALIVE timer in milliseconds */ #endif #ifndef TCP_KEEPINTVL_DEFAULT #define TCP_KEEPINTVL_DEFAULT 75000UL /* Default Time between KEEPALIVE probes in milliseconds */ #endif #ifndef TCP_KEEPCNT_DEFAULT #define TCP_KEEPCNT_DEFAULT 9U /* Default Counter for KEEPALIVE probes */ #endif #define TCP_MAXIDLE TCP_KEEPCNT_DEFAULT * TCP_KEEPINTVL_DEFAULT /* Maximum KEEPALIVE probe time */ /* Fields are (of course) in network byte order. * Some fields are converted to host byte order in tcp_input(). */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct tcp_hdr { PACK_STRUCT_FIELD(u16_t src); PACK_STRUCT_FIELD(u16_t dest); PACK_STRUCT_FIELD(u32_t seqno); PACK_STRUCT_FIELD(u32_t ackno); PACK_STRUCT_FIELD(u16_t _hdrlen_rsvd_flags); PACK_STRUCT_FIELD(u16_t wnd); PACK_STRUCT_FIELD(u16_t chksum); PACK_STRUCT_FIELD(u16_t urgp); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define TCPH_OFFSET(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) >> 8) #define TCPH_HDRLEN(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) >> 12) #define TCPH_FLAGS(phdr) (ntohs((phdr)->_hdrlen_rsvd_flags) & TCP_FLAGS) #define TCPH_OFFSET_SET(phdr, offset) (phdr)->_hdrlen_rsvd_flags = htons(((offset) << 8) | TCPH_FLAGS(phdr)) #define TCPH_HDRLEN_SET(phdr, len) (phdr)->_hdrlen_rsvd_flags = htons(((len) << 12) | TCPH_FLAGS(phdr)) #define TCPH_FLAGS_SET(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons((ntohs((phdr)->_hdrlen_rsvd_flags) & ~TCP_FLAGS) | (flags)) #define TCPH_SET_FLAG(phdr, flags ) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (flags)) #define TCPH_UNSET_FLAG(phdr, flags) (phdr)->_hdrlen_rsvd_flags = htons(ntohs((phdr)->_hdrlen_rsvd_flags) | (TCPH_FLAGS(phdr) & ~(flags)) ) #define TCP_TCPLEN(seg) ((seg)->len + ((TCPH_FLAGS((seg)->tcphdr) & TCP_FIN || \ TCPH_FLAGS((seg)->tcphdr) & TCP_SYN)? 1: 0)) enum tcp_state { CLOSED = 0, LISTEN = 1, SYN_SENT = 2, SYN_RCVD = 3, ESTABLISHED = 4, FIN_WAIT_1 = 5, FIN_WAIT_2 = 6, CLOSE_WAIT = 7, CLOSING = 8, LAST_ACK = 9, TIME_WAIT = 10 }; /** Flags used on input processing, not on pcb->flags */ #define TF_RESET (u8_t)0x08U /* Connection was reset. */ #define TF_CLOSED (u8_t)0x10U /* Connection was sucessfully closed. */ #define TF_GOT_FIN (u8_t)0x20U /* Connection was closed by the remote end. */ #if LWIP_CALLBACK_API /* Function to call when a listener has been connected. * @param arg user-supplied argument (tcp_pcb.callback_arg) * @param pcb a new tcp_pcb that now is connected * @param err an error argument (TODO: that is current always ERR_OK?) * @return ERR_OK: accept the new connection, * any other err_t abortsthe new connection */ #define DEF_ACCEPT_CALLBACK err_t (* accept)(void *arg, struct tcp_pcb *newpcb, err_t err) #else /* LWIP_CALLBACK_API */ #define DEF_ACCEPT_CALLBACK #endif /* LWIP_CALLBACK_API */ /** * members common to struct tcp_pcb and struct tcp_listen_pcb */ #define TCP_PCB_COMMON(type) \ type *next; /* for the linked list */ \ enum tcp_state state; /* TCP state */ \ u8_t prio; \ void *callback_arg; \ /* ports are in host byte order */ \ u16_t local_port; \ /* the accept callback for listen- and normal pcbs, if LWIP_CALLBACK_API */ \ DEF_ACCEPT_CALLBACK /* the TCP protocol control block */ struct tcp_pcb { /** common PCB members */ IP_PCB; /** protocol specific PCB members */ TCP_PCB_COMMON(struct tcp_pcb); /* ports are in host byte order */ u16_t remote_port; u8_t flags; #define TF_ACK_DELAY ((u8_t)0x01U) /* Delayed ACK. */ #define TF_ACK_NOW ((u8_t)0x02U) /* Immediate ACK. */ #define TF_INFR ((u8_t)0x04U) /* In fast recovery. */ #define TF_TIMESTAMP ((u8_t)0x08U) /* Timestamp option enabled */ #define TF_FIN ((u8_t)0x20U) /* Connection was closed locally (FIN segment enqueued). */ #define TF_NODELAY ((u8_t)0x40U) /* Disable Nagle algorithm */ #define TF_NAGLEMEMERR ((u8_t)0x80U) /* nagle enabled, memerr, try to output to prevent delayed ACK to happen */ /* the rest of the fields are in host byte order as we have to do some math with them */ /* receiver variables */ u32_t rcv_nxt; /* next seqno expected */ u16_t rcv_wnd; /* receiver window available */ u16_t rcv_ann_wnd; /* receiver window to announce */ u32_t rcv_ann_right_edge; /* announced right edge of window */ /* Timers */ u32_t tmr; u8_t polltmr, pollinterval; /* Retransmission timer. */ s16_t rtime; u16_t mss; /* maximum segment size */ /* RTT (round trip time) estimation variables */ u32_t rttest; /* RTT estimate in 500ms ticks */ u32_t rtseq; /* sequence number being timed */ s16_t sa, sv; /* @todo document this */ s16_t rto; /* retransmission time-out */ u8_t nrtx; /* number of retransmissions */ /* fast retransmit/recovery */ u32_t lastack; /* Highest acknowledged seqno. */ u8_t dupacks; /* congestion avoidance/control variables */ u16_t cwnd; u16_t ssthresh; /* sender variables */ u32_t snd_nxt; /* next new seqno to be sent */ u16_t snd_wnd; /* sender window */ u32_t snd_wl1, snd_wl2; /* Sequence and acknowledgement numbers of last window update. */ u32_t snd_lbb; /* Sequence number of next byte to be buffered. */ u16_t acked; u16_t snd_buf; /* Available buffer space for sending (in bytes). */ #define TCP_SNDQUEUELEN_OVERFLOW (0xffff-3) u16_t snd_queuelen; /* Available buffer space for sending (in tcp_segs). */ /* These are ordered by sequence number: */ struct tcp_seg *unsent; /* Unsent (queued) segments. */ struct tcp_seg *unacked; /* Sent but unacknowledged segments. */ #if TCP_QUEUE_OOSEQ struct tcp_seg *ooseq; /* Received out of sequence segments. */ #endif /* TCP_QUEUE_OOSEQ */ struct pbuf *refused_data; /* Data previously received but not yet taken by upper layer */ #if LWIP_CALLBACK_API /* Function to be called when more send buffer space is available. * @param arg user-supplied argument (tcp_pcb.callback_arg) * @param pcb the tcp_pcb which has send buffer space available * @param space the amount of bytes available * @return ERR_OK: try to send some data by calling tcp_output */ err_t (* sent)(void *arg, struct tcp_pcb *pcb, u16_t space); /* Function to be called when (in-sequence) data has arrived. * @param arg user-supplied argument (tcp_pcb.callback_arg) * @param pcb the tcp_pcb for which data has arrived * @param p the packet buffer which arrived * @param err an error argument (TODO: that is current always ERR_OK?) * @return ERR_OK: try to send some data by calling tcp_output */ err_t (* recv)(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err); /* Function to be called when a connection has been set up. * @param arg user-supplied argument (tcp_pcb.callback_arg) * @param pcb the tcp_pcb that now is connected * @param err an error argument (TODO: that is current always ERR_OK?) * @return value is currently ignored */ err_t (* connected)(void *arg, struct tcp_pcb *pcb, err_t err); /* Function which is called periodically. * The period can be adjusted in multiples of the TCP slow timer interval * by changing tcp_pcb.polltmr. * @param arg user-supplied argument (tcp_pcb.callback_arg) * @param pcb the tcp_pcb to poll for * @return ERR_OK: try to send some data by calling tcp_output */ err_t (* poll)(void *arg, struct tcp_pcb *pcb); /* Function to be called whenever a fatal error occurs. * There is no pcb parameter since most of the times, the pcb is * already deallocated (or there is no pcb) when this function is called. * @param arg user-supplied argument (tcp_pcb.callback_arg) * @param err an indication why the error callback is called: * ERR_ABRT: aborted through tcp_abort or by a TCP timer * ERR_RST: the connection was reset by the remote host */ void (* errf)(void *arg, err_t err); #endif /* LWIP_CALLBACK_API */ #if LWIP_TCP_TIMESTAMPS u32_t ts_lastacksent; u32_t ts_recent; #endif /* LWIP_TCP_TIMESTAMPS */ /* idle time before KEEPALIVE is sent */ u32_t keep_idle; #if LWIP_TCP_KEEPALIVE u32_t keep_intvl; u32_t keep_cnt; #endif /* LWIP_TCP_KEEPALIVE */ /* Persist timer counter */ u32_t persist_cnt; /* Persist timer back-off */ u8_t persist_backoff; /* KEEPALIVE counter */ u8_t keep_cnt_sent; }; struct tcp_pcb_listen { /* Common members of all PCB types */ IP_PCB; /* Protocol specific PCB members */ TCP_PCB_COMMON(struct tcp_pcb_listen); #if TCP_LISTEN_BACKLOG u8_t backlog; u8_t accepts_pending; #endif /* TCP_LISTEN_BACKLOG */ }; #if LWIP_EVENT_API enum lwip_event { LWIP_EVENT_ACCEPT, LWIP_EVENT_SENT, LWIP_EVENT_RECV, LWIP_EVENT_CONNECTED, LWIP_EVENT_POLL, LWIP_EVENT_ERR }; err_t lwip_tcp_event(void *arg, struct tcp_pcb *pcb, enum lwip_event, struct pbuf *p, u16_t size, err_t err); #define TCP_EVENT_ACCEPT(pcb,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ LWIP_EVENT_ACCEPT, NULL, 0, err) #define TCP_EVENT_SENT(pcb,space,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ LWIP_EVENT_SENT, NULL, space, ERR_OK) #define TCP_EVENT_RECV(pcb,p,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ LWIP_EVENT_RECV, (p), 0, (err)) #define TCP_EVENT_CONNECTED(pcb,err,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ LWIP_EVENT_CONNECTED, NULL, 0, (err)) #define TCP_EVENT_POLL(pcb,ret) ret = lwip_tcp_event((pcb)->callback_arg, (pcb),\ LWIP_EVENT_POLL, NULL, 0, ERR_OK) #define TCP_EVENT_ERR(errf,arg,err) lwip_tcp_event((arg), NULL, \ LWIP_EVENT_ERR, NULL, 0, (err)) #else /* LWIP_EVENT_API */ #define TCP_EVENT_ACCEPT(pcb,err,ret) \ do { \ if((pcb)->accept != NULL) \ (ret) = (pcb)->accept((pcb)->callback_arg,(pcb),(err)); \ else (ret) = ERR_OK; \ } while (0) #define TCP_EVENT_SENT(pcb,space,ret) \ do { \ if((pcb)->sent != NULL) \ (ret) = (pcb)->sent((pcb)->callback_arg,(pcb),(space)); \ else (ret) = ERR_OK; \ } while (0) #define TCP_EVENT_RECV(pcb,p,err,ret) \ do { \ if((pcb)->recv != NULL) { \ (ret) = (pcb)->recv((pcb)->callback_arg,(pcb),(p),(err)); \ } else { \ (ret) = ERR_OK; \ if (p != NULL) \ pbuf_free(p); \ } \ } while (0) #define TCP_EVENT_CONNECTED(pcb,err,ret) \ do { \ if((pcb)->connected != NULL) \ (ret) = (pcb)->connected((pcb)->callback_arg,(pcb),(err)); \ else (ret) = ERR_OK; \ } while (0) #define TCP_EVENT_POLL(pcb,ret) \ do { \ if((pcb)->poll != NULL) \ (ret) = (pcb)->poll((pcb)->callback_arg,(pcb)); \ else (ret) = ERR_OK; \ } while (0) #define TCP_EVENT_ERR(errf,arg,err) \ do { \ if((errf) != NULL) \ (errf)((arg),(err)); \ } while (0) #endif /* LWIP_EVENT_API */ /* This structure represents a TCP segment on the unsent and unacked queues */ struct tcp_seg { struct tcp_seg *next; /* used when putting segements on a queue */ struct pbuf *p; /* buffer containing data + TCP header */ void *dataptr; /* pointer to the TCP data in the pbuf */ u16_t len; /* the TCP length of this segment */ u8_t flags; #define TF_SEG_OPTS_MSS (u8_t)0x01U /* Include MSS option. */ #define TF_SEG_OPTS_TS (u8_t)0x02U /* Include timestamp option. */ struct tcp_hdr *tcphdr; /* the TCP header */ }; #define LWIP_TCP_OPT_LENGTH(flags) \ (flags & TF_SEG_OPTS_MSS ? 4 : 0) + \ (flags & TF_SEG_OPTS_TS ? 12 : 0) /** This returns a TCP header option for MSS in an u32_t */ #define TCP_BUILD_MSS_OPTION(x) (x) = htonl(((u32_t)2 << 24) | \ ((u32_t)4 << 16) | \ (((u32_t)TCP_MSS / 256) << 8) | \ (TCP_MSS & 255)) /* Internal functions and global variables: */ struct tcp_pcb *tcp_pcb_copy(struct tcp_pcb *pcb); void tcp_pcb_purge(struct tcp_pcb *pcb); void tcp_pcb_remove(struct tcp_pcb **pcblist, struct tcp_pcb *pcb); u8_t tcp_segs_free(struct tcp_seg *seg); u8_t tcp_seg_free(struct tcp_seg *seg); struct tcp_seg *tcp_seg_copy(struct tcp_seg *seg); #define tcp_ack(pcb) \ do { \ if((pcb)->flags & TF_ACK_DELAY) { \ (pcb)->flags &= ~TF_ACK_DELAY; \ (pcb)->flags |= TF_ACK_NOW; \ tcp_output(pcb); \ } \ else { \ (pcb)->flags |= TF_ACK_DELAY; \ } \ } while (0) #define tcp_ack_now(pcb) \ do { \ (pcb)->flags |= TF_ACK_NOW; \ tcp_output(pcb); \ } while (0) err_t tcp_send_ctrl(struct tcp_pcb *pcb, u8_t flags); err_t tcp_enqueue(struct tcp_pcb *pcb, void *dataptr, u16_t len, u8_t flags, u8_t apiflags, u8_t optflags); void tcp_rexmit_seg(struct tcp_pcb *pcb, struct tcp_seg *seg); void tcp_rst(u32_t seqno, u32_t ackno, struct ip_addr *local_ip, struct ip_addr *remote_ip, u16_t local_port, u16_t remote_port); u32_t tcp_next_iss(void); void tcp_keepalive(struct tcp_pcb *pcb); void tcp_zero_window_probe(struct tcp_pcb *pcb); #if TCP_CALCULATE_EFF_SEND_MSS u16_t tcp_eff_send_mss(u16_t sendmss, struct ip_addr *addr); #endif /* TCP_CALCULATE_EFF_SEND_MSS */ extern struct tcp_pcb *tcp_input_pcb; extern u32_t tcp_ticks; #if TCP_DEBUG || TCP_INPUT_DEBUG || TCP_OUTPUT_DEBUG void tcp_debug_print(struct tcp_hdr *tcphdr); void tcp_debug_print_flags(u8_t flags); void tcp_debug_print_state(enum tcp_state s); void tcp_debug_print_pcbs(void); s16_t tcp_pcbs_sane(void); #else # define tcp_debug_print(tcphdr) # define tcp_debug_print_flags(flags) # define tcp_debug_print_state(s) # define tcp_debug_print_pcbs() # define tcp_pcbs_sane() 1 #endif /* TCP_DEBUG */ #if NO_SYS #define tcp_timer_needed() #else void tcp_timer_needed(void); #endif /* The TCP PCB lists. */ union tcp_listen_pcbs_t { /* List of all TCP PCBs in LISTEN state. */ struct tcp_pcb_listen *listen_pcbs; struct tcp_pcb *pcbs; }; extern union tcp_listen_pcbs_t tcp_listen_pcbs; extern struct tcp_pcb *tcp_active_pcbs; /* List of all TCP PCBs that are in a state in which they accept or send data. */ extern struct tcp_pcb *tcp_tw_pcbs; /* List of all TCP PCBs in TIME-WAIT. */ extern struct tcp_pcb *tcp_tmp_pcb; /* Only used for temporary storage. */ /* Axioms about the above lists: 1) Every TCP PCB that is not CLOSED is in one of the lists. 2) A PCB is only in one of the lists. 3) All PCBs in the tcp_listen_pcbs list is in LISTEN state. 4) All PCBs in the tcp_tw_pcbs list is in TIME-WAIT state. */ /* Define two macros, TCP_REG and TCP_RMV that registers a TCP PCB with a PCB list or removes a PCB from a list, respectively. */ #if 0 #define TCP_REG(pcbs, npcb) do {\ LWIP_DEBUGF(TCP_DEBUG, ("TCP_REG %p local port %d\n", npcb, npcb->local_port)); \ for(tcp_tmp_pcb = *pcbs; \ tcp_tmp_pcb != NULL; \ tcp_tmp_pcb = tcp_tmp_pcb->next) { \ LWIP_ASSERT("TCP_REG: already registered\n", tcp_tmp_pcb != npcb); \ } \ LWIP_ASSERT("TCP_REG: pcb->state != CLOSED", npcb->state != CLOSED); \ npcb->next = *pcbs; \ LWIP_ASSERT("TCP_REG: npcb->next != npcb", npcb->next != npcb); \ *(pcbs) = npcb; \ LWIP_ASSERT("TCP_RMV: tcp_pcbs sane", tcp_pcbs_sane()); \ tcp_timer_needed(); \ } while(0) #define TCP_RMV(pcbs, npcb) do { \ LWIP_ASSERT("TCP_RMV: pcbs != NULL", *pcbs != NULL); \ LWIP_DEBUGF(TCP_DEBUG, ("TCP_RMV: removing %p from %p\n", npcb, *pcbs)); \ if(*pcbs == npcb) { \ *pcbs = (*pcbs)->next; \ } else for(tcp_tmp_pcb = *pcbs; tcp_tmp_pcb != NULL; tcp_tmp_pcb = tcp_tmp_pcb->next) { \ if(tcp_tmp_pcb->next != NULL && tcp_tmp_pcb->next == npcb) { \ tcp_tmp_pcb->next = npcb->next; \ break; \ } \ } \ npcb->next = NULL; \ LWIP_ASSERT("TCP_RMV: tcp_pcbs sane", tcp_pcbs_sane()); \ LWIP_DEBUGF(TCP_DEBUG, ("TCP_RMV: removed %p from %p\n", npcb, *pcbs)); \ } while(0) #else /* LWIP_DEBUG */ #define TCP_REG(pcbs, npcb) \ do { \ npcb->next = *pcbs; \ *(pcbs) = npcb; \ tcp_timer_needed(); \ } while (0) #define TCP_RMV(pcbs, npcb) \ do { \ if(*(pcbs) == npcb) { \ (*(pcbs)) = (*pcbs)->next; \ } \ else { \ for(tcp_tmp_pcb = *pcbs; \ tcp_tmp_pcb != NULL; \ tcp_tmp_pcb = tcp_tmp_pcb->next) { \ if(tcp_tmp_pcb->next != NULL && tcp_tmp_pcb->next == npcb) { \ tcp_tmp_pcb->next = npcb->next; \ break; \ } \ } \ } \ npcb->next = NULL; \ } while(0) #endif /* LWIP_DEBUG */ #ifdef __cplusplus } #endif #endif /* LWIP_TCP */ #endif /* __LWIP_TCP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/tcpip.h000066400000000000000000000105051224274632000240020ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_TCPIP_H__ #define __LWIP_TCPIP_H__ #include "lwip/opt.h" #if !NO_SYS /* don't build if not configured for use in lwipopts.h */ #include "lwip/api_msg.h" #include "lwip/netifapi.h" #include "lwip/pbuf.h" #include "lwip/api.h" #include "lwip/sys.h" #include "lwip/netif.h" #ifdef __cplusplus extern "C" { #endif #if LWIP_TCPIP_CORE_LOCKING /** The global semaphore to lock the stack. */ extern sys_sem_t lock_tcpip_core; #define LOCK_TCPIP_CORE() sys_sem_wait(lock_tcpip_core) #define UNLOCK_TCPIP_CORE() sys_sem_signal(lock_tcpip_core) #define TCPIP_APIMSG(m) tcpip_apimsg_lock(m) #define TCPIP_APIMSG_ACK(m) #define TCPIP_NETIFAPI(m) tcpip_netifapi_lock(m) #define TCPIP_NETIFAPI_ACK(m) #else #define LOCK_TCPIP_CORE() #define UNLOCK_TCPIP_CORE() #define TCPIP_APIMSG(m) tcpip_apimsg(m) #define TCPIP_APIMSG_ACK(m) sys_sem_signal(m->conn->op_completed) #define TCPIP_NETIFAPI(m) tcpip_netifapi(m) #define TCPIP_NETIFAPI_ACK(m) sys_sem_signal(m->sem) #endif /* LWIP_TCPIP_CORE_LOCKING */ void tcpip_init(void (* tcpip_init_done)(void *), void *arg); #if LWIP_NETCONN err_t tcpip_apimsg(struct api_msg *apimsg); #if LWIP_TCPIP_CORE_LOCKING err_t tcpip_apimsg_lock(struct api_msg *apimsg); #endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_NETCONN */ err_t tcpip_input(struct pbuf *p, struct netif *inp); #if LWIP_NETIF_API err_t tcpip_netifapi(struct netifapi_msg *netifapimsg); #if LWIP_TCPIP_CORE_LOCKING err_t tcpip_netifapi_lock(struct netifapi_msg *netifapimsg); #endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_NETIF_API */ err_t tcpip_callback_with_block(void (*f)(void *ctx), void *ctx, u8_t block); #define tcpip_callback(f, ctx) tcpip_callback_with_block(f, ctx, 1) /* free pbufs or heap memory from another context without blocking */ err_t pbuf_free_callback(struct pbuf *p); err_t mem_free_callback(void *m); err_t tcpip_timeout(u32_t msecs, sys_timeout_handler h, void *arg); err_t tcpip_untimeout(sys_timeout_handler h, void *arg); enum tcpip_msg_type { #if LWIP_NETCONN TCPIP_MSG_API, #endif /* LWIP_NETCONN */ TCPIP_MSG_INPKT, #if LWIP_NETIF_API TCPIP_MSG_NETIFAPI, #endif /* LWIP_NETIF_API */ TCPIP_MSG_CALLBACK, TCPIP_MSG_TIMEOUT, TCPIP_MSG_UNTIMEOUT }; struct tcpip_msg { enum tcpip_msg_type type; sys_sem_t *sem; union { #if LWIP_NETCONN struct api_msg *apimsg; #endif /* LWIP_NETCONN */ #if LWIP_NETIF_API struct netifapi_msg *netifapimsg; #endif /* LWIP_NETIF_API */ struct { struct pbuf *p; struct netif *netif; } inp; struct { void (*f)(void *ctx); void *ctx; } cb; struct { u32_t msecs; sys_timeout_handler h; void *arg; } tmo; } msg; }; #ifdef __cplusplus } #endif #endif /* !NO_SYS */ #endif /* __LWIP_TCPIP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/lwip/udp.h000066400000000000000000000120251224274632000234520ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __LWIP_UDP_H__ #define __LWIP_UDP_H__ #include "lwip/opt.h" #if LWIP_UDP /* don't build if not configured for use in lwipopts.h */ #include "lwip/pbuf.h" #include "lwip/netif.h" #include "lwip/ip_addr.h" #include "lwip/ip.h" #ifdef __cplusplus extern "C" { #endif #define UDP_HLEN 8 /* Fields are (of course) in network byte order. */ #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct udp_hdr { PACK_STRUCT_FIELD(u16_t src); PACK_STRUCT_FIELD(u16_t dest); /* src/dest UDP ports */ PACK_STRUCT_FIELD(u16_t len); PACK_STRUCT_FIELD(u16_t chksum); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define UDP_FLAGS_NOCHKSUM 0x01U #define UDP_FLAGS_UDPLITE 0x02U #define UDP_FLAGS_CONNECTED 0x04U struct udp_pcb { /* Common members of all PCB types */ IP_PCB; /* Protocol specific PCB members */ struct udp_pcb *next; u8_t flags; /* ports are in host byte order */ u16_t local_port, remote_port; #if LWIP_IGMP /* outgoing network interface for multicast packets */ struct ip_addr multicast_ip; #endif /* LWIP_IGMP */ #if LWIP_UDPLITE /* used for UDP_LITE only */ u16_t chksum_len_rx, chksum_len_tx; #endif /* LWIP_UDPLITE */ /* receive callback function * addr and port are in same byte order as in the pcb * The callback is responsible for freeing the pbuf * if it's not used any more. * * @param arg user supplied argument (udp_pcb.recv_arg) * @param pcb the udp_pcb which received data * @param p the packet buffer that was received * @param addr the remote IP address from which the packet was received * @param port the remote port from which the packet was received */ void (* recv)(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr, u16_t port); /* user-supplied argument for the recv callback */ void *recv_arg; }; /* udp_pcbs export for exernal reference (e.g. SNMP agent) */ extern struct udp_pcb *udp_pcbs; /* The following functions is the application layer interface to the UDP code. */ struct udp_pcb * udp_new (void); void udp_remove (struct udp_pcb *pcb); err_t udp_bind (struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port); err_t udp_connect (struct udp_pcb *pcb, struct ip_addr *ipaddr, u16_t port); void udp_disconnect (struct udp_pcb *pcb); void udp_recv (struct udp_pcb *pcb, void (* recv)(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port), void *recv_arg); err_t udp_sendto_if (struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *dst_ip, u16_t dst_port, struct netif *netif); err_t udp_sendto (struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *dst_ip, u16_t dst_port); err_t udp_send (struct udp_pcb *pcb, struct pbuf *p); #define udp_flags(pcb) ((pcb)->flags) #define udp_setflags(pcb, f) ((pcb)->flags = (f)) /* The following functions are the lower layer interface to UDP. */ void udp_input (struct pbuf *p, struct netif *inp); #define udp_init() /* Compatibility define, not init needed. */ #if UDP_DEBUG void udp_debug_print(struct udp_hdr *udphdr); #else #define udp_debug_print(udphdr) #endif #ifdef __cplusplus } #endif #endif /* LWIP_UDP */ #endif /* __LWIP_UDP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/netif/000077500000000000000000000000001224274632000226435ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/netif/etharp.h000066400000000000000000000134471224274632000243100ustar00rootroot00000000000000/* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. * Copyright (c) 2003-2004 Leon Woestenberg * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __NETIF_ETHARP_H__ #define __NETIF_ETHARP_H__ #include "lwip/opt.h" #if LWIP_ARP /* don't build if not configured for use in lwipopts.h */ #include "lwip/pbuf.h" #include "lwip/ip_addr.h" #include "lwip/netif.h" #include "lwip/ip.h" #ifdef __cplusplus extern "C" { #endif #ifndef ETH_PAD_SIZE #define ETH_PAD_SIZE 0 #endif #ifndef ETHARP_HWADDR_LEN #define ETHARP_HWADDR_LEN 6 #endif #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct eth_addr { PACK_STRUCT_FIELD(u8_t addr[ETHARP_HWADDR_LEN]); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct eth_hdr { #if ETH_PAD_SIZE PACK_STRUCT_FIELD(u8_t padding[ETH_PAD_SIZE]); #endif PACK_STRUCT_FIELD(struct eth_addr dest); PACK_STRUCT_FIELD(struct eth_addr src); PACK_STRUCT_FIELD(u16_t type); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN /** the ARP message */ struct etharp_hdr { PACK_STRUCT_FIELD(struct eth_hdr ethhdr); PACK_STRUCT_FIELD(u16_t hwtype); PACK_STRUCT_FIELD(u16_t proto); PACK_STRUCT_FIELD(u16_t _hwlen_protolen); PACK_STRUCT_FIELD(u16_t opcode); PACK_STRUCT_FIELD(struct eth_addr shwaddr); PACK_STRUCT_FIELD(struct ip_addr2 sipaddr); PACK_STRUCT_FIELD(struct eth_addr dhwaddr); PACK_STRUCT_FIELD(struct ip_addr2 dipaddr); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct ethip_hdr { PACK_STRUCT_FIELD(struct eth_hdr eth); PACK_STRUCT_FIELD(struct ip_hdr ip); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif /** 5 seconds period */ #define ARP_TMR_INTERVAL 5000 #define ETHTYPE_ARP 0x0806 #define ETHTYPE_IP 0x0800 #define ETHTYPE_PPPOEDISC 0x8863 /* PPP Over Ethernet Discovery Stage */ #define ETHTYPE_PPPOE 0x8864 /* PPP Over Ethernet Session Stage */ /** ARP message types (opcodes) */ #define ARP_REQUEST 1 #define ARP_REPLY 2 #if ARP_QUEUEING /** struct for queueing outgoing packets for unknown address * defined here to be accessed by memp.h */ struct etharp_q_entry { struct etharp_q_entry *next; struct pbuf *p; }; #endif /* ARP_QUEUEING */ #define etharp_init() /* Compatibility define, not init needed. */ void etharp_tmr(void); s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr **eth_ret, struct ip_addr **ip_ret); void etharp_ip_input(struct netif *netif, struct pbuf *p); void etharp_arp_input(struct netif *netif, struct eth_addr *ethaddr, struct pbuf *p); err_t etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr); err_t etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q); err_t etharp_request(struct netif *netif, struct ip_addr *ipaddr); /** For Ethernet network interfaces, we might want to send "gratuitous ARP"; * this is an ARP packet sent by a node in order to spontaneously cause other * nodes to update an entry in their ARP cache. * From RFC 3220 "IP Mobility Support for IPv4" section 4.6. */ #define etharp_gratuitous(netif) etharp_request((netif), &(netif)->ip_addr) err_t ethernet_input(struct pbuf *p, struct netif *netif); #if LWIP_AUTOIP err_t etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr, const struct eth_addr *ethdst_addr, const struct eth_addr *hwsrc_addr, const struct ip_addr *ipsrc_addr, const struct eth_addr *hwdst_addr, const struct ip_addr *ipdst_addr, const u16_t opcode); #endif /* LWIP_AUTOIP */ #define eth_addr_cmp(addr1, addr2) (memcmp((addr1)->addr, (addr2)->addr, ETHARP_HWADDR_LEN) == 0) extern const struct eth_addr ethbroadcast, ethzero; #ifdef __cplusplus } #endif #endif /* LWIP_ARP */ #endif /* __NETIF_ARP_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/netif/loopif.h000066400000000000000000000037131224274632000243100ustar00rootroot00000000000000/* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __NETIF_LOOPIF_H__ #define __NETIF_LOOPIF_H__ #include "lwip/opt.h" #include "lwip/netif.h" #include "lwip/err.h" #ifdef __cplusplus extern "C" { #endif #if !LWIP_NETIF_LOOPBACK_MULTITHREADING #define loopif_poll netif_poll #endif /* !LWIP_NETIF_LOOPBACK_MULTITHREADING */ err_t loopif_init(struct netif *netif); #ifdef __cplusplus } #endif #endif /* __NETIF_LOOPIF_H__ */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/netif/ppp_oe.h000066400000000000000000000141031224274632000242750ustar00rootroot00000000000000/***************************************************************************** * ppp_oe.h - PPP Over Ethernet implementation for lwIP. * * Copyright (c) 2006 by Marc Boucher, Services Informatiques (MBSI) inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 06-01-01 Marc Boucher * Ported to lwIP. *****************************************************************************/ /* based on NetBSD: if_pppoe.c,v 1.64 2006/01/31 23:50:15 martin Exp */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Martin Husemann . * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef PPP_OE_H #define PPP_OE_H #include "lwip/opt.h" #if PPPOE_SUPPORT > 0 #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct pppoehdr { PACK_STRUCT_FIELD(u8_t vertype); PACK_STRUCT_FIELD(u8_t code); PACK_STRUCT_FIELD(u16_t session); PACK_STRUCT_FIELD(u16_t plen); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/bpstruct.h" #endif PACK_STRUCT_BEGIN struct pppoetag { PACK_STRUCT_FIELD(u16_t tag); PACK_STRUCT_FIELD(u16_t len); } PACK_STRUCT_STRUCT; PACK_STRUCT_END #ifdef PACK_STRUCT_USE_INCLUDES # include "arch/epstruct.h" #endif #define PPPOE_STATE_INITIAL 0 #define PPPOE_STATE_PADI_SENT 1 #define PPPOE_STATE_PADR_SENT 2 #define PPPOE_STATE_SESSION 3 #define PPPOE_STATE_CLOSING 4 /* passive */ #define PPPOE_STATE_PADO_SENT 1 #define PPPOE_HEADERLEN sizeof(struct pppoehdr) #define PPPOE_VERTYPE 0x11 /* VER=1, TYPE = 1 */ #define PPPOE_TAG_EOL 0x0000 /* end of list */ #define PPPOE_TAG_SNAME 0x0101 /* service name */ #define PPPOE_TAG_ACNAME 0x0102 /* access concentrator name */ #define PPPOE_TAG_HUNIQUE 0x0103 /* host unique */ #define PPPOE_TAG_ACCOOKIE 0x0104 /* AC cookie */ #define PPPOE_TAG_VENDOR 0x0105 /* vendor specific */ #define PPPOE_TAG_RELAYSID 0x0110 /* relay session id */ #define PPPOE_TAG_SNAME_ERR 0x0201 /* service name error */ #define PPPOE_TAG_ACSYS_ERR 0x0202 /* AC system error */ #define PPPOE_TAG_GENERIC_ERR 0x0203 /* gerneric error */ #define PPPOE_CODE_PADI 0x09 /* Active Discovery Initiation */ #define PPPOE_CODE_PADO 0x07 /* Active Discovery Offer */ #define PPPOE_CODE_PADR 0x19 /* Active Discovery Request */ #define PPPOE_CODE_PADS 0x65 /* Active Discovery Session confirmation */ #define PPPOE_CODE_PADT 0xA7 /* Active Discovery Terminate */ #ifndef ETHERMTU #define ETHERMTU 1500 #endif /* two byte PPP protocol discriminator, then IP data */ #define PPPOE_MAXMTU (ETHERMTU-PPPOE_HEADERLEN-2) struct pppoe_softc; void pppoe_init(void); err_t pppoe_create(struct netif *ethif, int pd, void (*linkStatusCB)(int pd, int up), struct pppoe_softc **scptr); err_t pppoe_destroy(struct netif *ifp); int pppoe_connect(struct pppoe_softc *sc); void pppoe_disconnect(struct pppoe_softc *sc); void pppoe_disc_input(struct netif *netif, struct pbuf *p); void pppoe_data_input(struct netif *netif, struct pbuf *p); err_t pppoe_xmit(struct pppoe_softc *sc, struct pbuf *pb); extern int pppoe_hdrlen; #endif /* PPPOE_SUPPORT */ #endif /* PPP_OE_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/include/netif/slipif.h000066400000000000000000000035611224274632000243070ustar00rootroot00000000000000/* * Copyright (c) 2001, Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #ifndef __NETIF_SLIPIF_H__ #define __NETIF_SLIPIF_H__ #include "lwip/netif.h" #ifdef __cplusplus extern "C" { #endif err_t slipif_init(struct netif * netif); #ifdef __cplusplus } #endif #endif uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/000077500000000000000000000000001224274632000212205ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/FILES000066400000000000000000000020241224274632000220030ustar00rootroot00000000000000This directory contains generic network interface device drivers that do not contain any hardware or architecture specific code. The files are: etharp.c Implements the ARP (Address Resolution Protocol) over Ethernet. The code in this file should be used together with Ethernet device drivers. Note that this module has been largely made Ethernet independent so you should be able to adapt this for other link layers (such as Firewire). ethernetif.c An example of how an Ethernet device driver could look. This file can be used as a "skeleton" for developing new Ethernet network device drivers. It uses the etharp.c ARP code. loopif.c A "loopback" network interface driver. It requires configuration through the define LWIP_LOOPIF_MULTITHREADING (see opt.h). slipif.c A generic implementation of the SLIP (Serial Line IP) protocol. It requires a sio (serial I/O) module to work. ppp/ Point-to-Point Protocol stack uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/etharp.c000066400000000000000000001255371224274632000226640ustar00rootroot00000000000000/** * @file * Address Resolution Protocol module for IP over Ethernet * * Functionally, ARP is divided into two parts. The first maps an IP address * to a physical address when sending a packet, and the second part answers * requests from other machines for our physical address. * * This implementation complies with RFC 826 (Ethernet ARP). It supports * Gratuitious ARP from RFC3220 (IP Mobility Support for IPv4) section 4.6 * if an interface calls etharp_gratuitous(our_netif) upon address change. */ /* * Copyright (c) 2001-2003 Swedish Institute of Computer Science. * Copyright (c) 2003-2004 Leon Woestenberg * Copyright (c) 2003-2004 Axon Digital Design B.V., The Netherlands. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * */ #include "lwip/opt.h" #if LWIP_ARP /* don't build if not configured for use in lwipopts.h */ #include "lwip/inet.h" #include "lwip/ip.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include "lwip/dhcp.h" #include "lwip/autoip.h" #include "netif/etharp.h" #if PPPOE_SUPPORT #include "netif/ppp_oe.h" #endif /* PPPOE_SUPPORT */ #include /** the time an ARP entry stays valid after its last update, * for ARP_TMR_INTERVAL = 5000, this is * (240 * 5) seconds = 20 minutes. */ #define ARP_MAXAGE 240 /** the time an ARP entry stays pending after first request, * for ARP_TMR_INTERVAL = 5000, this is * (2 * 5) seconds = 10 seconds. * * @internal Keep this number at least 2, otherwise it might * run out instantly if the timeout occurs directly after a request. */ #define ARP_MAXPENDING 2 #define HWTYPE_ETHERNET 1 #define ARPH_HWLEN(hdr) (ntohs((hdr)->_hwlen_protolen) >> 8) #define ARPH_PROTOLEN(hdr) (ntohs((hdr)->_hwlen_protolen) & 0xff) #define ARPH_HWLEN_SET(hdr, len) (hdr)->_hwlen_protolen = htons(ARPH_PROTOLEN(hdr) | ((len) << 8)) #define ARPH_PROTOLEN_SET(hdr, len) (hdr)->_hwlen_protolen = htons((len) | (ARPH_HWLEN(hdr) << 8)) enum etharp_state { ETHARP_STATE_EMPTY = 0, ETHARP_STATE_PENDING, ETHARP_STATE_STABLE }; struct etharp_entry { #if ARP_QUEUEING /** * Pointer to queue of pending outgoing packets on this ARP entry. */ struct etharp_q_entry *q; #endif struct ip_addr ipaddr; struct eth_addr ethaddr; enum etharp_state state; u8_t ctime; struct netif *netif; }; const struct eth_addr ethbroadcast = {{0xff,0xff,0xff,0xff,0xff,0xff}}; const struct eth_addr ethzero = {{0,0,0,0,0,0}}; static struct etharp_entry arp_table[ARP_TABLE_SIZE]; #if !LWIP_NETIF_HWADDRHINT static u8_t etharp_cached_entry; #endif /** * Try hard to create a new entry - we want the IP address to appear in * the cache (even if this means removing an active entry or so). */ #define ETHARP_TRY_HARD 1 #define ETHARP_FIND_ONLY 2 #if LWIP_NETIF_HWADDRHINT #define NETIF_SET_HINT(netif, hint) if (((netif) != NULL) && ((netif)->addr_hint != NULL)) \ *((netif)->addr_hint) = (hint); static s8_t find_entry(struct ip_addr *ipaddr, u8_t flags, struct netif *netif); #else /* LWIP_NETIF_HWADDRHINT */ static s8_t find_entry(struct ip_addr *ipaddr, u8_t flags); #endif /* LWIP_NETIF_HWADDRHINT */ static err_t update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags); /* Some checks, instead of etharp_init(): */ #if (LWIP_ARP && (ARP_TABLE_SIZE > 0x7f)) #error "If you want to use ARP, ARP_TABLE_SIZE must fit in an s8_t, so, you have to reduce it in your lwipopts.h" #endif #if ARP_QUEUEING /** * Free a complete queue of etharp entries * * @param q a qeueue of etharp_q_entry's to free */ static void free_etharp_q(struct etharp_q_entry *q) { struct etharp_q_entry *r; LWIP_ASSERT("q != NULL", q != NULL); LWIP_ASSERT("q->p != NULL", q->p != NULL); while (q) { r = q; q = q->next; LWIP_ASSERT("r->p != NULL", (r->p != NULL)); pbuf_free(r->p); memp_free(MEMP_ARP_QUEUE, r); } } #endif /** * Clears expired entries in the ARP table. * * This function should be called every ETHARP_TMR_INTERVAL microseconds (5 seconds), * in order to expire entries in the ARP table. */ void etharp_tmr(void) { u8_t i; LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer\n")); /* remove expired entries from the ARP table */ for (i = 0; i < ARP_TABLE_SIZE; ++i) { arp_table[i].ctime++; if (((arp_table[i].state == ETHARP_STATE_STABLE) && (arp_table[i].ctime >= ARP_MAXAGE)) || ((arp_table[i].state == ETHARP_STATE_PENDING) && (arp_table[i].ctime >= ARP_MAXPENDING))) { /* pending or stable entry has become old! */ LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer: expired %s entry %"U16_F".\n", arp_table[i].state == ETHARP_STATE_STABLE ? "stable" : "pending", (u16_t)i)); /* clean up entries that have just been expired */ /* remove from SNMP ARP index tree */ snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr); #if ARP_QUEUEING /* and empty packet queue */ if (arp_table[i].q != NULL) { /* remove all queued packets */ LWIP_DEBUGF(ETHARP_DEBUG, ("etharp_timer: freeing entry %"U16_F", packet queue %p.\n", (u16_t)i, (void *)(arp_table[i].q))); free_etharp_q(arp_table[i].q); arp_table[i].q = NULL; } #endif /* recycle entry for re-use */ arp_table[i].state = ETHARP_STATE_EMPTY; } #if ARP_QUEUEING /* still pending entry? (not expired) */ if (arp_table[i].state == ETHARP_STATE_PENDING) { /* resend an ARP query here? */ } #endif } } /** * Search the ARP table for a matching or new entry. * * If an IP address is given, return a pending or stable ARP entry that matches * the address. If no match is found, create a new entry with this address set, * but in state ETHARP_EMPTY. The caller must check and possibly change the * state of the returned entry. * * If ipaddr is NULL, return a initialized new entry in state ETHARP_EMPTY. * * In all cases, attempt to create new entries from an empty entry. If no * empty entries are available and ETHARP_TRY_HARD flag is set, recycle * old entries. Heuristic choose the least important entry for recycling. * * @param ipaddr IP address to find in ARP cache, or to add if not found. * @param flags * - ETHARP_TRY_HARD: Try hard to create a entry by allowing recycling of * active (stable or pending) entries. * * @return The ARP entry index that matched or is created, ERR_MEM if no * entry is found or could be recycled. */ static s8_t #if LWIP_NETIF_HWADDRHINT find_entry(struct ip_addr *ipaddr, u8_t flags, struct netif *netif) #else /* LWIP_NETIF_HWADDRHINT */ find_entry(struct ip_addr *ipaddr, u8_t flags) #endif /* LWIP_NETIF_HWADDRHINT */ { s8_t old_pending = ARP_TABLE_SIZE, old_stable = ARP_TABLE_SIZE; s8_t empty = ARP_TABLE_SIZE; u8_t i = 0, age_pending = 0, age_stable = 0; #if ARP_QUEUEING /* oldest entry with packets on queue */ s8_t old_queue = ARP_TABLE_SIZE; /* its age */ u8_t age_queue = 0; #endif /* First, test if the last call to this function asked for the * same address. If so, we're really fast! */ if (ipaddr) { /* ipaddr to search for was given */ #if LWIP_NETIF_HWADDRHINT if ((netif != NULL) && (netif->addr_hint != NULL)) { /* per-pcb cached entry was given */ u8_t per_pcb_cache = *(netif->addr_hint); if ((per_pcb_cache < ARP_TABLE_SIZE) && arp_table[per_pcb_cache].state == ETHARP_STATE_STABLE) { /* the per-pcb-cached entry is stable */ if (ip_addr_cmp(ipaddr, &arp_table[per_pcb_cache].ipaddr)) { /* per-pcb cached entry was the right one! */ ETHARP_STATS_INC(etharp.cachehit); return per_pcb_cache; } } } #else /* #if LWIP_NETIF_HWADDRHINT */ if (arp_table[etharp_cached_entry].state == ETHARP_STATE_STABLE) { /* the cached entry is stable */ if (ip_addr_cmp(ipaddr, &arp_table[etharp_cached_entry].ipaddr)) { /* cached entry was the right one! */ ETHARP_STATS_INC(etharp.cachehit); return etharp_cached_entry; } } #endif /* #if LWIP_NETIF_HWADDRHINT */ } /** * a) do a search through the cache, remember candidates * b) select candidate entry * c) create new entry */ /* a) in a single search sweep, do all of this * 1) remember the first empty entry (if any) * 2) remember the oldest stable entry (if any) * 3) remember the oldest pending entry without queued packets (if any) * 4) remember the oldest pending entry with queued packets (if any) * 5) search for a matching IP entry, either pending or stable * until 5 matches, or all entries are searched for. */ for (i = 0; i < ARP_TABLE_SIZE; ++i) { /* no empty entry found yet and now we do find one? */ if ((empty == ARP_TABLE_SIZE) && (arp_table[i].state == ETHARP_STATE_EMPTY)) { LWIP_DEBUGF(ETHARP_DEBUG, ("find_entry: found empty entry %"U16_F"\n", (u16_t)i)); /* remember first empty entry */ empty = i; } /* pending entry? */ else if (arp_table[i].state == ETHARP_STATE_PENDING) { /* if given, does IP address match IP address in ARP entry? */ if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: found matching pending entry %"U16_F"\n", (u16_t)i)); /* found exact IP address match, simply bail out */ #if LWIP_NETIF_HWADDRHINT NETIF_SET_HINT(netif, i); #else /* #if LWIP_NETIF_HWADDRHINT */ etharp_cached_entry = i; #endif /* #if LWIP_NETIF_HWADDRHINT */ return i; #if ARP_QUEUEING /* pending with queued packets? */ } else if (arp_table[i].q != NULL) { if (arp_table[i].ctime >= age_queue) { old_queue = i; age_queue = arp_table[i].ctime; } #endif /* pending without queued packets? */ } else { if (arp_table[i].ctime >= age_pending) { old_pending = i; age_pending = arp_table[i].ctime; } } } /* stable entry? */ else if (arp_table[i].state == ETHARP_STATE_STABLE) { /* if given, does IP address match IP address in ARP entry? */ if (ipaddr && ip_addr_cmp(ipaddr, &arp_table[i].ipaddr)) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: found matching stable entry %"U16_F"\n", (u16_t)i)); /* found exact IP address match, simply bail out */ #if LWIP_NETIF_HWADDRHINT NETIF_SET_HINT(netif, i); #else /* #if LWIP_NETIF_HWADDRHINT */ etharp_cached_entry = i; #endif /* #if LWIP_NETIF_HWADDRHINT */ return i; /* remember entry with oldest stable entry in oldest, its age in maxtime */ } else if (arp_table[i].ctime >= age_stable) { old_stable = i; age_stable = arp_table[i].ctime; } } } /* { we have no match } => try to create a new entry */ /* no empty entry found and not allowed to recycle? */ if (((empty == ARP_TABLE_SIZE) && ((flags & ETHARP_TRY_HARD) == 0)) /* or don't create new entry, only search? */ || ((flags & ETHARP_FIND_ONLY) != 0)) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: no empty entry found and not allowed to recycle\n")); return (s8_t)ERR_MEM; } /* b) choose the least destructive entry to recycle: * 1) empty entry * 2) oldest stable entry * 3) oldest pending entry without queued packets * 4) oldest pending entry with queued packets * * { ETHARP_TRY_HARD is set at this point } */ /* 1) empty entry available? */ if (empty < ARP_TABLE_SIZE) { i = empty; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting empty entry %"U16_F"\n", (u16_t)i)); } /* 2) found recyclable stable entry? */ else if (old_stable < ARP_TABLE_SIZE) { /* recycle oldest stable*/ i = old_stable; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting oldest stable entry %"U16_F"\n", (u16_t)i)); #if ARP_QUEUEING /* no queued packets should exist on stable entries */ LWIP_ASSERT("arp_table[i].q == NULL", arp_table[i].q == NULL); #endif /* 3) found recyclable pending entry without queued packets? */ } else if (old_pending < ARP_TABLE_SIZE) { /* recycle oldest pending */ i = old_pending; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting oldest pending entry %"U16_F" (without queue)\n", (u16_t)i)); #if ARP_QUEUEING /* 4) found recyclable pending entry with queued packets? */ } else if (old_queue < ARP_TABLE_SIZE) { /* recycle oldest pending */ i = old_queue; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("find_entry: selecting oldest pending entry %"U16_F", freeing packet queue %p\n", (u16_t)i, (void *)(arp_table[i].q))); free_etharp_q(arp_table[i].q); arp_table[i].q = NULL; #endif /* no empty or recyclable entries found */ } else { return (s8_t)ERR_MEM; } /* { empty or recyclable entry found } */ LWIP_ASSERT("i < ARP_TABLE_SIZE", i < ARP_TABLE_SIZE); if (arp_table[i].state != ETHARP_STATE_EMPTY) { snmp_delete_arpidx_tree(arp_table[i].netif, &arp_table[i].ipaddr); } /* recycle entry (no-op for an already empty entry) */ arp_table[i].state = ETHARP_STATE_EMPTY; /* IP address given? */ if (ipaddr != NULL) { /* set IP address */ ip_addr_set(&arp_table[i].ipaddr, ipaddr); } arp_table[i].ctime = 0; #if LWIP_NETIF_HWADDRHINT NETIF_SET_HINT(netif, i); #else /* #if LWIP_NETIF_HWADDRHINT */ etharp_cached_entry = i; #endif /* #if LWIP_NETIF_HWADDRHINT */ return (err_t)i; } /** * Send an IP packet on the network using netif->linkoutput * The ethernet header is filled in before sending. * * @params netif the lwIP network interface on which to send the packet * @params p the packet to send, p->payload pointing to the (uninitialized) ethernet header * @params src the source MAC address to be copied into the ethernet header * @params dst the destination MAC address to be copied into the ethernet header * @return ERR_OK if the packet was sent, any other err_t on failure */ static err_t etharp_send_ip(struct netif *netif, struct pbuf *p, struct eth_addr *src, struct eth_addr *dst) { struct eth_hdr *ethhdr = p->payload; u8_t k; LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!", (netif->hwaddr_len == ETHARP_HWADDR_LEN)); k = ETHARP_HWADDR_LEN; while(k > 0) { k--; ethhdr->dest.addr[k] = dst->addr[k]; ethhdr->src.addr[k] = src->addr[k]; } ethhdr->type = htons(ETHTYPE_IP); LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_send_ip: sending packet %p\n", (void *)p)); /* send the packet */ return netif->linkoutput(netif, p); } /** * Update (or insert) a IP/MAC address pair in the ARP cache. * * If a pending entry is resolved, any queued packets will be sent * at this point. * * @param ipaddr IP address of the inserted ARP entry. * @param ethaddr Ethernet address of the inserted ARP entry. * @param flags Defines behaviour: * - ETHARP_TRY_HARD Allows ARP to insert this as a new item. If not specified, * only existing ARP entries will be updated. * * @return * - ERR_OK Succesfully updated ARP cache. * - ERR_MEM If we could not add a new ARP entry when ETHARP_TRY_HARD was set. * - ERR_ARG Non-unicast address given, those will not appear in ARP cache. * * @see pbuf_free() */ static err_t update_arp_entry(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr *ethaddr, u8_t flags) { s8_t i; u8_t k; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | 3, ("update_arp_entry()\n")); LWIP_ASSERT("netif->hwaddr_len == ETHARP_HWADDR_LEN", netif->hwaddr_len == ETHARP_HWADDR_LEN); LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry: %"U16_F".%"U16_F".%"U16_F".%"U16_F" - %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F"\n", ip4_addr1(ipaddr), ip4_addr2(ipaddr), ip4_addr3(ipaddr), ip4_addr4(ipaddr), ethaddr->addr[0], ethaddr->addr[1], ethaddr->addr[2], ethaddr->addr[3], ethaddr->addr[4], ethaddr->addr[5])); /* non-unicast address? */ if (ip_addr_isany(ipaddr) || ip_addr_isbroadcast(ipaddr, netif) || ip_addr_ismulticast(ipaddr)) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry: will not add non-unicast IP address to ARP cache\n")); return ERR_ARG; } /* find or create ARP entry */ #if LWIP_NETIF_HWADDRHINT i = find_entry(ipaddr, flags, netif); #else /* LWIP_NETIF_HWADDRHINT */ i = find_entry(ipaddr, flags); #endif /* LWIP_NETIF_HWADDRHINT */ /* bail out if no entry could be found */ if (i < 0) return (err_t)i; /* mark it stable */ arp_table[i].state = ETHARP_STATE_STABLE; /* record network interface */ arp_table[i].netif = netif; /* insert in SNMP ARP index tree */ snmp_insert_arpidx_tree(netif, &arp_table[i].ipaddr); LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("update_arp_entry: updating stable entry %"S16_F"\n", (s16_t)i)); /* update address */ k = ETHARP_HWADDR_LEN; while (k > 0) { k--; arp_table[i].ethaddr.addr[k] = ethaddr->addr[k]; } /* reset time stamp */ arp_table[i].ctime = 0; #if ARP_QUEUEING /* this is where we will send out queued packets! */ while (arp_table[i].q != NULL) { struct pbuf *p; /* remember remainder of queue */ struct etharp_q_entry *q = arp_table[i].q; /* pop first item off the queue */ arp_table[i].q = q->next; /* get the packet pointer */ p = q->p; /* now queue entry can be freed */ memp_free(MEMP_ARP_QUEUE, q); /* send the queued IP packet */ etharp_send_ip(netif, p, (struct eth_addr*)(netif->hwaddr), ethaddr); /* free the queued IP packet */ pbuf_free(p); } #endif return ERR_OK; } /** * Finds (stable) ethernet/IP address pair from ARP table * using interface and IP address index. * @note the addresses in the ARP table are in network order! * * @param netif points to interface index * @param ipaddr points to the (network order) IP address index * @param eth_ret points to return pointer * @param ip_ret points to return pointer * @return table index if found, -1 otherwise */ s8_t etharp_find_addr(struct netif *netif, struct ip_addr *ipaddr, struct eth_addr **eth_ret, struct ip_addr **ip_ret) { s8_t i; LWIP_UNUSED_ARG(netif); #if LWIP_NETIF_HWADDRHINT i = find_entry(ipaddr, ETHARP_FIND_ONLY, NULL); #else /* LWIP_NETIF_HWADDRHINT */ i = find_entry(ipaddr, ETHARP_FIND_ONLY); #endif /* LWIP_NETIF_HWADDRHINT */ if((i >= 0) && arp_table[i].state == ETHARP_STATE_STABLE) { *eth_ret = &arp_table[i].ethaddr; *ip_ret = &arp_table[i].ipaddr; return i; } return -1; } /** * Updates the ARP table using the given IP packet. * * Uses the incoming IP packet's source address to update the * ARP cache for the local network. The function does not alter * or free the packet. This function must be called before the * packet p is passed to the IP layer. * * @param netif The lwIP network interface on which the IP packet pbuf arrived. * @param p The IP packet that arrived on netif. * * @return NULL * * @see pbuf_free() */ void etharp_ip_input(struct netif *netif, struct pbuf *p) { struct ethip_hdr *hdr; LWIP_ERROR("netif != NULL", (netif != NULL), return;); /* Only insert an entry if the source IP address of the incoming IP packet comes from a host on the local network. */ hdr = p->payload; /* source is not on the local network? */ if (!ip_addr_netcmp(&(hdr->ip.src), &(netif->ip_addr), &(netif->netmask))) { /* do nothing */ return; } LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_ip_input: updating ETHARP table.\n")); /* update ARP table */ /* @todo We could use ETHARP_TRY_HARD if we think we are going to talk * back soon (for example, if the destination IP address is ours. */ update_arp_entry(netif, &(hdr->ip.src), &(hdr->eth.src), 0); } /** * Responds to ARP requests to us. Upon ARP replies to us, add entry to cache * send out queued IP packets. Updates cache with snooped address pairs. * * Should be called for incoming ARP packets. The pbuf in the argument * is freed by this function. * * @param netif The lwIP network interface on which the ARP packet pbuf arrived. * @param ethaddr Ethernet address of netif. * @param p The ARP packet that arrived on netif. Is freed by this function. * * @return NULL * * @see pbuf_free() */ void etharp_arp_input(struct netif *netif, struct eth_addr *ethaddr, struct pbuf *p) { struct etharp_hdr *hdr; /* these are aligned properly, whereas the ARP header fields might not be */ struct ip_addr sipaddr, dipaddr; u8_t i; u8_t for_us; #if LWIP_AUTOIP const u8_t * ethdst_hwaddr; #endif /* LWIP_AUTOIP */ LWIP_ERROR("netif != NULL", (netif != NULL), return;); /* drop short ARP packets: we have to check for p->len instead of p->tot_len here since a struct etharp_hdr is pointed to p->payload, so it musn't be chained! */ if (p->len < sizeof(struct etharp_hdr)) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | 1, ("etharp_arp_input: packet dropped, too short (%"S16_F"/%"S16_F")\n", p->tot_len, (s16_t)sizeof(struct etharp_hdr))); ETHARP_STATS_INC(etharp.lenerr); ETHARP_STATS_INC(etharp.drop); pbuf_free(p); return; } hdr = p->payload; /* RFC 826 "Packet Reception": */ if ((hdr->hwtype != htons(HWTYPE_ETHERNET)) || (hdr->_hwlen_protolen != htons((ETHARP_HWADDR_LEN << 8) | sizeof(struct ip_addr))) || (hdr->proto != htons(ETHTYPE_IP)) || (hdr->ethhdr.type != htons(ETHTYPE_ARP))) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | 1, ("etharp_arp_input: packet dropped, wrong hw type, hwlen, proto, protolen or ethernet type (%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F")\n", hdr->hwtype, ARPH_HWLEN(hdr), hdr->proto, ARPH_PROTOLEN(hdr), hdr->ethhdr.type)); ETHARP_STATS_INC(etharp.proterr); ETHARP_STATS_INC(etharp.drop); pbuf_free(p); return; } ETHARP_STATS_INC(etharp.recv); #if LWIP_AUTOIP /* We have to check if a host already has configured our random * created link local address and continously check if there is * a host with this IP-address so we can detect collisions */ autoip_arp_reply(netif, hdr); #endif /* LWIP_AUTOIP */ /* Copy struct ip_addr2 to aligned ip_addr, to support compilers without * structure packing (not using structure copy which breaks strict-aliasing rules). */ SMEMCPY(&sipaddr, &hdr->sipaddr, sizeof(sipaddr)); SMEMCPY(&dipaddr, &hdr->dipaddr, sizeof(dipaddr)); /* this interface is not configured? */ if (netif->ip_addr.addr == 0) { for_us = 0; } else { /* ARP packet directed to us? */ for_us = ip_addr_cmp(&dipaddr, &(netif->ip_addr)); } /* ARP message directed to us? */ if (for_us) { /* add IP address in ARP cache; assume requester wants to talk to us. * can result in directly sending the queued packets for this host. */ update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), ETHARP_TRY_HARD); /* ARP message not directed to us? */ } else { /* update the source IP address in the cache, if present */ update_arp_entry(netif, &sipaddr, &(hdr->shwaddr), 0); } /* now act on the message itself */ switch (htons(hdr->opcode)) { /* ARP request? */ case ARP_REQUEST: /* ARP request. If it asked for our address, we send out a * reply. In any case, we time-stamp any existing ARP entry, * and possiby send out an IP packet that was queued on it. */ LWIP_DEBUGF (ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: incoming ARP request\n")); /* ARP request for our address? */ if (for_us) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: replying to ARP request for our IP address\n")); /* Re-use pbuf to send ARP reply. Since we are re-using an existing pbuf, we can't call etharp_raw since that would allocate a new pbuf. */ hdr->opcode = htons(ARP_REPLY); hdr->dipaddr = hdr->sipaddr; SMEMCPY(&hdr->sipaddr, &netif->ip_addr, sizeof(hdr->sipaddr)); LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!", (netif->hwaddr_len == ETHARP_HWADDR_LEN)); i = ETHARP_HWADDR_LEN; #if LWIP_AUTOIP /* If we are using Link-Local, ARP packets must be broadcast on the * link layer. (See RFC3927 Section 2.5) */ ethdst_hwaddr = ((netif->autoip != NULL) && (netif->autoip->state != AUTOIP_STATE_OFF)) ? (u8_t*)(ethbroadcast.addr) : hdr->shwaddr.addr; #endif /* LWIP_AUTOIP */ while(i > 0) { i--; hdr->dhwaddr.addr[i] = hdr->shwaddr.addr[i]; #if LWIP_AUTOIP hdr->ethhdr.dest.addr[i] = ethdst_hwaddr[i]; #else /* LWIP_AUTOIP */ hdr->ethhdr.dest.addr[i] = hdr->shwaddr.addr[i]; #endif /* LWIP_AUTOIP */ hdr->shwaddr.addr[i] = ethaddr->addr[i]; hdr->ethhdr.src.addr[i] = ethaddr->addr[i]; } /* hwtype, hwaddr_len, proto, protolen and the type in the ethernet header are already correct, we tested that before */ /* return ARP reply */ netif->linkoutput(netif, p); /* we are not configured? */ } else if (netif->ip_addr.addr == 0) { /* { for_us == 0 and netif->ip_addr.addr == 0 } */ LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: we are unconfigured, ARP request ignored.\n")); /* request was not directed to us */ } else { /* { for_us == 0 and netif->ip_addr.addr != 0 } */ LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: ARP request was not for us.\n")); } break; case ARP_REPLY: /* ARP reply. We already updated the ARP cache earlier. */ LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: incoming ARP reply\n")); #if (LWIP_DHCP && DHCP_DOES_ARP_CHECK) /* DHCP wants to know about ARP replies from any host with an * IP address also offered to us by the DHCP server. We do not * want to take a duplicate IP address on a single network. * @todo How should we handle redundant (fail-over) interfaces? */ dhcp_arp_reply(netif, &sipaddr); #endif break; default: LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_arp_input: ARP unknown opcode type %"S16_F"\n", htons(hdr->opcode))); ETHARP_STATS_INC(etharp.err); break; } /* free ARP packet */ pbuf_free(p); } /** * Resolve and fill-in Ethernet address header for outgoing IP packet. * * For IP multicast and broadcast, corresponding Ethernet addresses * are selected and the packet is transmitted on the link. * * For unicast addresses, the packet is submitted to etharp_query(). In * case the IP address is outside the local network, the IP address of * the gateway is used. * * @param netif The lwIP network interface which the IP packet will be sent on. * @param q The pbuf(s) containing the IP packet to be sent. * @param ipaddr The IP address of the packet destination. * * @return * - ERR_RTE No route to destination (no gateway to external networks), * or the return type of either etharp_query() or etharp_send_ip(). */ err_t etharp_output(struct netif *netif, struct pbuf *q, struct ip_addr *ipaddr) { struct eth_addr *dest, mcastaddr; /* make room for Ethernet header - should not fail */ if (pbuf_header(q, sizeof(struct eth_hdr)) != 0) { /* bail out */ LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | 2, ("etharp_output: could not allocate room for header.\n")); LINK_STATS_INC(link.lenerr); return ERR_BUF; } /* assume unresolved Ethernet address */ dest = NULL; /* Determine on destination hardware address. Broadcasts and multicasts * are special, other IP addresses are looked up in the ARP table. */ /* broadcast destination IP address? */ if (ip_addr_isbroadcast(ipaddr, netif)) { /* broadcast on Ethernet also */ dest = (struct eth_addr *)ðbroadcast; /* multicast destination IP address? */ } else if (ip_addr_ismulticast(ipaddr)) { /* Hash IP multicast address to MAC address.*/ mcastaddr.addr[0] = 0x01; mcastaddr.addr[1] = 0x00; mcastaddr.addr[2] = 0x5e; mcastaddr.addr[3] = ip4_addr2(ipaddr) & 0x7f; mcastaddr.addr[4] = ip4_addr3(ipaddr); mcastaddr.addr[5] = ip4_addr4(ipaddr); /* destination Ethernet address is multicast */ dest = &mcastaddr; /* unicast destination IP address? */ } else { /* outside local network? */ if (!ip_addr_netcmp(ipaddr, &(netif->ip_addr), &(netif->netmask))) { /* interface has default gateway? */ if (netif->gw.addr != 0) { /* send to hardware address of default gateway IP address */ ipaddr = &(netif->gw); /* no default gateway available */ } else { /* no route to destination error (default gateway missing) */ return ERR_RTE; } } /* queue on destination Ethernet address belonging to ipaddr */ return etharp_query(netif, ipaddr, q); } /* continuation for multicast/broadcast destinations */ /* obtain source Ethernet address of the given interface */ /* send packet directly on the link */ return etharp_send_ip(netif, q, (struct eth_addr*)(netif->hwaddr), dest); } /** * Send an ARP request for the given IP address and/or queue a packet. * * If the IP address was not yet in the cache, a pending ARP cache entry * is added and an ARP request is sent for the given address. The packet * is queued on this entry. * * If the IP address was already pending in the cache, a new ARP request * is sent for the given address. The packet is queued on this entry. * * If the IP address was already stable in the cache, and a packet is * given, it is directly sent and no ARP request is sent out. * * If the IP address was already stable in the cache, and no packet is * given, an ARP request is sent out. * * @param netif The lwIP network interface on which ipaddr * must be queried for. * @param ipaddr The IP address to be resolved. * @param q If non-NULL, a pbuf that must be delivered to the IP address. * q is not freed by this function. * * @note q must only be ONE packet, not a packet queue! * * @return * - ERR_BUF Could not make room for Ethernet header. * - ERR_MEM Hardware address unknown, and no more ARP entries available * to query for address or queue the packet. * - ERR_MEM Could not queue packet due to memory shortage. * - ERR_RTE No route to destination (no gateway to external networks). * - ERR_ARG Non-unicast address given, those will not appear in ARP cache. * */ err_t etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q) { struct eth_addr * srcaddr = (struct eth_addr *)netif->hwaddr; err_t result = ERR_MEM; s8_t i; /* ARP entry index */ /* non-unicast address? */ if (ip_addr_isbroadcast(ipaddr, netif) || ip_addr_ismulticast(ipaddr) || ip_addr_isany(ipaddr)) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: will not add non-unicast IP address to ARP cache\n")); return ERR_ARG; } /* find entry in ARP cache, ask to create entry if queueing packet */ #if LWIP_NETIF_HWADDRHINT i = find_entry(ipaddr, ETHARP_TRY_HARD, netif); #else /* LWIP_NETIF_HWADDRHINT */ i = find_entry(ipaddr, ETHARP_TRY_HARD); #endif /* LWIP_NETIF_HWADDRHINT */ /* could not find or create entry? */ if (i < 0) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not create ARP entry\n")); if (q) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: packet dropped\n")); ETHARP_STATS_INC(etharp.memerr); } return (err_t)i; } /* mark a fresh entry as pending (we just sent a request) */ if (arp_table[i].state == ETHARP_STATE_EMPTY) { arp_table[i].state = ETHARP_STATE_PENDING; } /* { i is either a STABLE or (new or existing) PENDING entry } */ LWIP_ASSERT("arp_table[i].state == PENDING or STABLE", ((arp_table[i].state == ETHARP_STATE_PENDING) || (arp_table[i].state == ETHARP_STATE_STABLE))); /* do we have a pending entry? or an implicit query request? */ if ((arp_table[i].state == ETHARP_STATE_PENDING) || (q == NULL)) { /* try to resolve it; send out ARP request */ result = etharp_request(netif, ipaddr); if (result != ERR_OK) { /* ARP request couldn't be sent */ /* We don't re-send arp request in etharp_tmr, but we still queue packets, since this failure could be temporary, and the next packet calling etharp_query again could lead to sending the queued packets. */ } } /* packet given? */ if (q != NULL) { /* stable entry? */ if (arp_table[i].state == ETHARP_STATE_STABLE) { /* we have a valid IP->Ethernet address mapping */ /* send the packet */ result = etharp_send_ip(netif, q, srcaddr, &(arp_table[i].ethaddr)); /* pending entry? (either just created or already pending */ } else if (arp_table[i].state == ETHARP_STATE_PENDING) { #if ARP_QUEUEING /* queue the given q packet */ struct pbuf *p; int copy_needed = 0; /* IF q includes a PBUF_REF, PBUF_POOL or PBUF_RAM, we have no choice but * to copy the whole queue into a new PBUF_RAM (see bug #11400) * PBUF_ROMs can be left as they are, since ROM must not get changed. */ p = q; while (p) { LWIP_ASSERT("no packet queues allowed!", (p->len != p->tot_len) || (p->next == 0)); if(p->type != PBUF_ROM) { copy_needed = 1; break; } p = p->next; } if(copy_needed) { /* copy the whole packet into new pbufs */ p = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM); if(p != NULL) { if (pbuf_copy(p, q) != ERR_OK) { pbuf_free(p); p = NULL; } } } else { /* referencing the old pbuf is enough */ p = q; pbuf_ref(p); } /* packet could be taken over? */ if (p != NULL) { /* queue packet ... */ struct etharp_q_entry *new_entry; /* allocate a new arp queue entry */ new_entry = memp_malloc(MEMP_ARP_QUEUE); if (new_entry != NULL) { new_entry->next = 0; new_entry->p = p; if(arp_table[i].q != NULL) { /* queue was already existent, append the new entry to the end */ struct etharp_q_entry *r; r = arp_table[i].q; while (r->next != NULL) { r = r->next; } r->next = new_entry; } else { /* queue did not exist, first item in queue */ arp_table[i].q = new_entry; } LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: queued packet %p on ARP entry %"S16_F"\n", (void *)q, (s16_t)i)); result = ERR_OK; } else { /* the pool MEMP_ARP_QUEUE is empty */ pbuf_free(p); LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q)); /* { result == ERR_MEM } through initialization */ } } else { ETHARP_STATS_INC(etharp.memerr); LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: could not queue a copy of PBUF_REF packet %p (out of memory)\n", (void *)q)); /* { result == ERR_MEM } through initialization */ } #else /* ARP_QUEUEING == 0 */ /* q && state == PENDING && ARP_QUEUEING == 0 => result = ERR_MEM */ /* { result == ERR_MEM } through initialization */ LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_query: Ethernet destination address unknown, queueing disabled, packet %p dropped\n", (void *)q)); #endif } } return result; } /** * Send a raw ARP packet (opcode and all addresses can be modified) * * @param netif the lwip network interface on which to send the ARP packet * @param ethsrc_addr the source MAC address for the ethernet header * @param ethdst_addr the destination MAC address for the ethernet header * @param hwsrc_addr the source MAC address for the ARP protocol header * @param ipsrc_addr the source IP address for the ARP protocol header * @param hwdst_addr the destination MAC address for the ARP protocol header * @param ipdst_addr the destination IP address for the ARP protocol header * @param opcode the type of the ARP packet * @return ERR_OK if the ARP packet has been sent * ERR_MEM if the ARP packet couldn't be allocated * any other err_t on failure */ #if !LWIP_AUTOIP static #endif /* LWIP_AUTOIP */ err_t etharp_raw(struct netif *netif, const struct eth_addr *ethsrc_addr, const struct eth_addr *ethdst_addr, const struct eth_addr *hwsrc_addr, const struct ip_addr *ipsrc_addr, const struct eth_addr *hwdst_addr, const struct ip_addr *ipdst_addr, const u16_t opcode) { struct pbuf *p; err_t result = ERR_OK; u8_t k; /* ARP entry index */ struct etharp_hdr *hdr; #if LWIP_AUTOIP const u8_t * ethdst_hwaddr; #endif /* LWIP_AUTOIP */ /* allocate a pbuf for the outgoing ARP request packet */ p = pbuf_alloc(PBUF_RAW, sizeof(struct etharp_hdr), PBUF_RAM); /* could allocate a pbuf for an ARP request? */ if (p == NULL) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE | 2, ("etharp_raw: could not allocate pbuf for ARP request.\n")); ETHARP_STATS_INC(etharp.memerr); return ERR_MEM; } LWIP_ASSERT("check that first pbuf can hold struct etharp_hdr", (p->len >= sizeof(struct etharp_hdr))); hdr = p->payload; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_raw: sending raw ARP packet.\n")); hdr->opcode = htons(opcode); LWIP_ASSERT("netif->hwaddr_len must be the same as ETHARP_HWADDR_LEN for etharp!", (netif->hwaddr_len == ETHARP_HWADDR_LEN)); k = ETHARP_HWADDR_LEN; #if LWIP_AUTOIP /* If we are using Link-Local, ARP packets must be broadcast on the * link layer. (See RFC3927 Section 2.5) */ ethdst_hwaddr = ((netif->autoip != NULL) && (netif->autoip->state != AUTOIP_STATE_OFF)) ? (u8_t*)(ethbroadcast.addr) : ethdst_addr->addr; #endif /* LWIP_AUTOIP */ /* Write MAC-Addresses (combined loop for both headers) */ while(k > 0) { k--; /* Write the ARP MAC-Addresses */ hdr->shwaddr.addr[k] = hwsrc_addr->addr[k]; hdr->dhwaddr.addr[k] = hwdst_addr->addr[k]; /* Write the Ethernet MAC-Addresses */ #if LWIP_AUTOIP hdr->ethhdr.dest.addr[k] = ethdst_hwaddr[k]; #else /* LWIP_AUTOIP */ hdr->ethhdr.dest.addr[k] = ethdst_addr->addr[k]; #endif /* LWIP_AUTOIP */ hdr->ethhdr.src.addr[k] = ethsrc_addr->addr[k]; } hdr->sipaddr = *(struct ip_addr2 *)ipsrc_addr; hdr->dipaddr = *(struct ip_addr2 *)ipdst_addr; hdr->hwtype = htons(HWTYPE_ETHERNET); hdr->proto = htons(ETHTYPE_IP); /* set hwlen and protolen together */ hdr->_hwlen_protolen = htons((ETHARP_HWADDR_LEN << 8) | sizeof(struct ip_addr)); hdr->ethhdr.type = htons(ETHTYPE_ARP); /* send ARP query */ result = netif->linkoutput(netif, p); ETHARP_STATS_INC(etharp.xmit); /* free ARP query packet */ pbuf_free(p); p = NULL; /* could not allocate pbuf for ARP request */ return result; } /** * Send an ARP request packet asking for ipaddr. * * @param netif the lwip network interface on which to send the request * @param ipaddr the IP address for which to ask * @return ERR_OK if the request has been sent * ERR_MEM if the ARP packet couldn't be allocated * any other err_t on failure */ err_t etharp_request(struct netif *netif, struct ip_addr *ipaddr) { LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("etharp_request: sending ARP request.\n")); return etharp_raw(netif, (struct eth_addr *)netif->hwaddr, ðbroadcast, (struct eth_addr *)netif->hwaddr, &netif->ip_addr, ðzero, ipaddr, ARP_REQUEST); } /** * Process received ethernet frames. Using this function instead of directly * calling ip_input and passing ARP frames through etharp in ethernetif_input, * the ARP cache is protected from concurrent access. * * @param p the recevied packet, p->payload pointing to the ethernet header * @param netif the network interface on which the packet was received */ err_t ethernet_input(struct pbuf *p, struct netif *netif) { struct eth_hdr* ethhdr; /* points to packet payload, which starts with an Ethernet header */ ethhdr = p->payload; LWIP_DEBUGF(ETHARP_DEBUG | LWIP_DBG_TRACE, ("ethernet_input: dest:%02x:%02x:%02x:%02x:%02x:%02x, src:%02x:%02x:%02x:%02x:%02x:%02x, type:%2hx\n", (unsigned)ethhdr->dest.addr[0], (unsigned)ethhdr->dest.addr[1], (unsigned)ethhdr->dest.addr[2], (unsigned)ethhdr->dest.addr[3], (unsigned)ethhdr->dest.addr[4], (unsigned)ethhdr->dest.addr[5], (unsigned)ethhdr->src.addr[0], (unsigned)ethhdr->src.addr[1], (unsigned)ethhdr->src.addr[2], (unsigned)ethhdr->src.addr[3], (unsigned)ethhdr->src.addr[4], (unsigned)ethhdr->src.addr[5], (unsigned)htons(ethhdr->type))); switch (htons(ethhdr->type)) { /* IP packet? */ case ETHTYPE_IP: #if ETHARP_TRUST_IP_MAC /* update ARP table */ etharp_ip_input(netif, p); #endif /* ETHARP_TRUST_IP_MAC */ /* skip Ethernet header */ if(pbuf_header(p, -(s16_t)sizeof(struct eth_hdr))) { LWIP_ASSERT("Can't move over header in packet", 0); pbuf_free(p); p = NULL; } else { /* pass to IP layer */ ip_input(p, netif); } break; case ETHTYPE_ARP: /* pass p to ARP module */ etharp_arp_input(netif, (struct eth_addr*)(netif->hwaddr), p); break; #if PPPOE_SUPPORT case ETHTYPE_PPPOEDISC: /* PPP Over Ethernet Discovery Stage */ pppoe_disc_input(netif, p); break; case ETHTYPE_PPPOE: /* PPP Over Ethernet Session Stage */ pppoe_data_input(netif, p); break; #endif /* PPPOE_SUPPORT */ default: ETHARP_STATS_INC(etharp.proterr); ETHARP_STATS_INC(etharp.drop); pbuf_free(p); p = NULL; break; } /* This means the pbuf is freed or consumed, so the caller doesn't have to free it again */ return ERR_OK; } #endif /* LWIP_ARP */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ethernetif.c000066400000000000000000000223231224274632000235230ustar00rootroot00000000000000/** * @file * Ethernet Interface Skeleton * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ /* * This file is a skeleton for developing Ethernet network interface * drivers for lwIP. Add code to the low_level functions and do a * search-and-replace for the word "ethernetif" to replace it with * something that better describes your network interface. */ #include "lwip/opt.h" #if 0 /* don't build, this is only a skeleton, see previous comment */ #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/pbuf.h" #include "lwip/sys.h" #include #include #include "netif/etharp.h" #include "netif/ppp_oe.h" /* Define those to better describe your network interface. */ #define IFNAME0 'e' #define IFNAME1 'n' /** * Helper struct to hold private data used to operate your ethernet interface. * Keeping the ethernet address of the MAC in this struct is not necessary * as it is already kept in the struct netif. * But this is only an example, anyway... */ struct ethernetif { struct eth_addr *ethaddr; /* Add whatever per-interface state that is needed here. */ }; /* Forward declarations. */ static void ethernetif_input(struct netif *netif); /** * In this function, the hardware should be initialized. * Called from ethernetif_init(). * * @param netif the already initialized lwip network interface structure * for this ethernetif */ static void low_level_init(struct netif *netif) { struct ethernetif *ethernetif = netif->state; /* set MAC hardware address length */ netif->hwaddr_len = ETHARP_HWADDR_LEN; /* set MAC hardware address */ netif->hwaddr[0] = ; ... netif->hwaddr[5] = ; /* maximum transfer unit */ netif->mtu = 1500; /* device capabilities */ /* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */ netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP; /* Do whatever else is needed to initialize interface. */ } /** * This function should do the actual transmission of the packet. The packet is * contained in the pbuf that is passed to the function. This pbuf * might be chained. * * @param netif the lwip network interface structure for this ethernetif * @param p the MAC packet to send (e.g. IP packet including MAC addresses and type) * @return ERR_OK if the packet could be sent * an err_t value if the packet couldn't be sent * * @note Returning ERR_MEM here if a DMA queue of your MAC is full can lead to * strange results. You might consider waiting for space in the DMA queue * to become availale since the stack doesn't retry to send a packet * dropped because of memory failure (except for the TCP timers). */ static err_t low_level_output(struct netif *netif, struct pbuf *p) { struct ethernetif *ethernetif = netif->state; struct pbuf *q; initiate transfer(); #if ETH_PAD_SIZE pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */ #endif for(q = p; q != NULL; q = q->next) { /* Send the data from the pbuf to the interface, one pbuf at a time. The size of the data in each pbuf is kept in the ->len variable. */ send data from(q->payload, q->len); } signal that packet should be sent(); #if ETH_PAD_SIZE pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ #endif LINK_STATS_INC(link.xmit); return ERR_OK; } /** * Should allocate a pbuf and transfer the bytes of the incoming * packet from the interface into the pbuf. * * @param netif the lwip network interface structure for this ethernetif * @return a pbuf filled with the received packet (including MAC header) * NULL on memory error */ static struct pbuf * low_level_input(struct netif *netif) { struct ethernetif *ethernetif = netif->state; struct pbuf *p, *q; u16_t len; /* Obtain the size of the packet and put it into the "len" variable. */ len = ; #if ETH_PAD_SIZE len += ETH_PAD_SIZE; /* allow room for Ethernet padding */ #endif /* We allocate a pbuf chain of pbufs from the pool. */ p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL); if (p != NULL) { #if ETH_PAD_SIZE pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */ #endif /* We iterate over the pbuf chain until we have read the entire * packet into the pbuf. */ for(q = p; q != NULL; q = q->next) { /* Read enough bytes to fill this pbuf in the chain. The * available data in the pbuf is given by the q->len * variable. */ read data into(q->payload, q->len); } acknowledge that packet has been read(); #if ETH_PAD_SIZE pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ #endif LINK_STATS_INC(link.recv); } else { drop packet(); LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.drop); } return p; } /** * This function should be called when a packet is ready to be read * from the interface. It uses the function low_level_input() that * should handle the actual reception of bytes from the network * interface. Then the type of the received packet is determined and * the appropriate input function is called. * * @param netif the lwip network interface structure for this ethernetif */ static void ethernetif_input(struct netif *netif) { struct ethernetif *ethernetif; struct eth_hdr *ethhdr; struct pbuf *p; ethernetif = netif->state; /* move received packet into a new pbuf */ p = low_level_input(netif); /* no packet could be read, silently ignore this */ if (p == NULL) return; /* points to packet payload, which starts with an Ethernet header */ ethhdr = p->payload; switch (htons(ethhdr->type)) { /* IP or ARP packet? */ case ETHTYPE_IP: case ETHTYPE_ARP: #if PPPOE_SUPPORT /* PPPoE packet? */ case ETHTYPE_PPPOEDISC: case ETHTYPE_PPPOE: #endif /* PPPOE_SUPPORT */ /* full packet send to tcpip_thread to process */ if (netif->input(p, netif)!=ERR_OK) { LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_input: IP input error\n")); pbuf_free(p); p = NULL; } break; default: pbuf_free(p); p = NULL; break; } } /** * Should be called at the beginning of the program to set up the * network interface. It calls the function low_level_init() to do the * actual setup of the hardware. * * This function should be passed as a parameter to netif_add(). * * @param netif the lwip network interface structure for this ethernetif * @return ERR_OK if the loopif is initialized * ERR_MEM if private data couldn't be allocated * any other err_t on error */ err_t ethernetif_init(struct netif *netif) { struct ethernetif *ethernetif; LWIP_ASSERT("netif != NULL", (netif != NULL)); ethernetif = mem_malloc(sizeof(struct ethernetif)); if (ethernetif == NULL) { LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_init: out of memory\n")); return ERR_MEM; } #if LWIP_NETIF_HOSTNAME /* Initialize interface hostname */ netif->hostname = "lwip"; #endif /* LWIP_NETIF_HOSTNAME */ /* * Initialize the snmp variables and counters inside the struct netif. * The last argument should be replaced with your link speed, in units * of bits per second. */ NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS); netif->state = ethernetif; netif->name[0] = IFNAME0; netif->name[1] = IFNAME1; /* We directly use etharp_output() here to save a function call. * You can instead declare your own function an call etharp_output() * from it if you have to do some checks before sending (e.g. if link * is available...) */ netif->output = etharp_output; netif->linkoutput = low_level_output; ethernetif->ethaddr = (struct eth_addr *)&(netif->hwaddr[0]); /* initialize the hardware */ low_level_init(netif); return ERR_OK; } #endif /* 0 */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/loopif.c000066400000000000000000000044631224274632000226630ustar00rootroot00000000000000/** * @file * Loop Interface * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #if LWIP_HAVE_LOOPIF #include "netif/loopif.h" #include "lwip/snmp.h" /** * Initialize a lwip network interface structure for a loopback interface * * @param netif the lwip network interface structure for this loopif * @return ERR_OK if the loopif is initialized * ERR_MEM if private data couldn't be allocated */ err_t loopif_init(struct netif *netif) { /* initialize the snmp variables and counters inside the struct netif * ifSpeed: no assumption can be made! */ NETIF_INIT_SNMP(netif, snmp_ifType_softwareLoopback, 0); netif->name[0] = 'l'; netif->name[1] = 'o'; netif->output = netif_loop_output; return ERR_OK; } #endif /* LWIP_HAVE_LOOPIF */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/000077500000000000000000000000001224274632000220175ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/auth.c000066400000000000000000000625011224274632000231300ustar00rootroot00000000000000/***************************************************************************** * auth.c - Network Authentication and Phase Control program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * Copyright (c) 1997 by Global Election Systems Inc. All rights reserved. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-08 Guy Lancaster , Global Election Systems Inc. * Ported from public pppd code. *****************************************************************************/ /* * auth.c - PPP authentication and phase control. * * Copyright (c) 1993 The Australian National University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the Australian National University. The name of the University * may not be used to endorse or promote products derived from this * software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "fsm.h" #include "lcp.h" #include "pap.h" #include "chap.h" #include "auth.h" #include "ipcp.h" #if CBCP_SUPPORT #include "cbcp.h" #endif /* CBCP_SUPPORT */ /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ /* Bits in auth_pending[] */ #define PAP_WITHPEER 1 #define PAP_PEER 2 #define CHAP_WITHPEER 4 #define CHAP_PEER 8 /************************/ /*** LOCAL DATA TYPES ***/ /************************/ /* Used for storing a sequence of words. Usually malloced. */ struct wordlist { struct wordlist *next; char word[1]; }; /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ extern char *crypt (const char *, const char *); /* Prototypes for procedures local to this file. */ static void network_phase (int); static void check_idle (void *); static void connect_time_expired (void *); #if 0 static int login (char *, char *, char **, int *); #endif static void logout (void); static int null_login (int); static int get_pap_passwd (int, char *, char *); static int have_pap_secret (void); static int have_chap_secret (char *, char *, u32_t); static int ip_addr_check (u32_t, struct wordlist *); #if 0 /* PAP_SUPPORT || CHAP_SUPPORT */ static void set_allowed_addrs(int unit, struct wordlist *addrs); static void free_wordlist (struct wordlist *); #endif /* 0 */ /* PAP_SUPPORT || CHAP_SUPPORT */ #if CBCP_SUPPORT static void callback_phase (int); #endif /* CBCP_SUPPORT */ /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ #if PAP_SUPPORT || CHAP_SUPPORT /* The name by which the peer authenticated itself to us. */ static char peer_authname[MAXNAMELEN]; #endif /* PAP_SUPPORT || CHAP_SUPPORT */ /* Records which authentication operations haven't completed yet. */ static int auth_pending[NUM_PPP]; /* Set if we have successfully called login() */ static int logged_in; /* Set if we have run the /etc/ppp/auth-up script. */ static int did_authup; /* List of addresses which the peer may use. */ static struct wordlist *addresses[NUM_PPP]; /* Number of network protocols which we have opened. */ static int num_np_open; /* Number of network protocols which have come up. */ static int num_np_up; #if PAP_SUPPORT || CHAP_SUPPORT /* Set if we got the contents of passwd[] from the pap-secrets file. */ static int passwd_from_file; #endif /* PAP_SUPPORT || CHAP_SUPPORT */ /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * An Open on LCP has requested a change from Dead to Establish phase. * Do what's necessary to bring the physical layer up. */ void link_required(int unit) { LWIP_UNUSED_ARG(unit); AUTHDEBUG((LOG_INFO, "link_required: %d\n", unit)); } /* * LCP has terminated the link; go to the Dead phase and take the * physical layer down. */ void link_terminated(int unit) { AUTHDEBUG((LOG_INFO, "link_terminated: %d\n", unit)); if (lcp_phase[unit] == PHASE_DEAD) { return; } if (logged_in) { logout(); } lcp_phase[unit] = PHASE_DEAD; AUTHDEBUG((LOG_NOTICE, "Connection terminated.\n")); pppLinkTerminated(unit); } /* * LCP has gone down; it will either die or try to re-establish. */ void link_down(int unit) { int i; struct protent *protp; AUTHDEBUG((LOG_INFO, "link_down: %d\n", unit)); if (did_authup) { /* XXX Do link down processing. */ did_authup = 0; } for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) { if (!protp->enabled_flag) { continue; } if (protp->protocol != PPP_LCP && protp->lowerdown != NULL) { (*protp->lowerdown)(unit); } if (protp->protocol < 0xC000 && protp->close != NULL) { (*protp->close)(unit, "LCP down"); } } num_np_open = 0; num_np_up = 0; if (lcp_phase[unit] != PHASE_DEAD) { lcp_phase[unit] = PHASE_TERMINATE; } pppLinkDown(unit); } /* * The link is established. * Proceed to the Dead, Authenticate or Network phase as appropriate. */ void link_established(int unit) { int auth; int i; struct protent *protp; lcp_options *wo = &lcp_wantoptions[unit]; lcp_options *go = &lcp_gotoptions[unit]; #if PAP_SUPPORT || CHAP_SUPPORT lcp_options *ho = &lcp_hisoptions[unit]; #endif /* PAP_SUPPORT || CHAP_SUPPORT */ AUTHDEBUG((LOG_INFO, "link_established: %d\n", unit)); /* * Tell higher-level protocols that LCP is up. */ for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) { if (protp->protocol != PPP_LCP && protp->enabled_flag && protp->lowerup != NULL) { (*protp->lowerup)(unit); } } if (ppp_settings.auth_required && !(go->neg_chap || go->neg_upap)) { /* * We wanted the peer to authenticate itself, and it refused: * treat it as though it authenticated with PAP using a username * of "" and a password of "". If that's not OK, boot it out. */ if (!wo->neg_upap || !null_login(unit)) { AUTHDEBUG((LOG_WARNING, "peer refused to authenticate\n")); lcp_close(unit, "peer refused to authenticate"); return; } } lcp_phase[unit] = PHASE_AUTHENTICATE; auth = 0; #if CHAP_SUPPORT if (go->neg_chap) { ChapAuthPeer(unit, ppp_settings.our_name, go->chap_mdtype); auth |= CHAP_PEER; } #endif /* CHAP_SUPPORT */ #if PAP_SUPPORT && CHAP_SUPPORT else #endif /* PAP_SUPPORT && CHAP_SUPPORT */ #if PAP_SUPPORT if (go->neg_upap) { upap_authpeer(unit); auth |= PAP_PEER; } #endif /* PAP_SUPPORT */ #if CHAP_SUPPORT if (ho->neg_chap) { ChapAuthWithPeer(unit, ppp_settings.user, ho->chap_mdtype); auth |= CHAP_WITHPEER; } #endif /* CHAP_SUPPORT */ #if PAP_SUPPORT && CHAP_SUPPORT else #endif /* PAP_SUPPORT && CHAP_SUPPORT */ #if PAP_SUPPORT if (ho->neg_upap) { if (ppp_settings.passwd[0] == 0) { passwd_from_file = 1; if (!get_pap_passwd(unit, ppp_settings.user, ppp_settings.passwd)) { AUTHDEBUG((LOG_ERR, "No secret found for PAP login\n")); } } upap_authwithpeer(unit, ppp_settings.user, ppp_settings.passwd); auth |= PAP_WITHPEER; } #endif /* PAP_SUPPORT */ auth_pending[unit] = auth; if (!auth) { network_phase(unit); } } /* * The peer has failed to authenticate himself using `protocol'. */ void auth_peer_fail(int unit, u16_t protocol) { LWIP_UNUSED_ARG(protocol); AUTHDEBUG((LOG_INFO, "auth_peer_fail: %d proto=%X\n", unit, protocol)); /* * Authentication failure: take the link down */ lcp_close(unit, "Authentication failed"); } #if PAP_SUPPORT || CHAP_SUPPORT /* * The peer has been successfully authenticated using `protocol'. */ void auth_peer_success(int unit, u16_t protocol, char *name, int namelen) { int pbit; AUTHDEBUG((LOG_INFO, "auth_peer_success: %d proto=%X\n", unit, protocol)); switch (protocol) { case PPP_CHAP: pbit = CHAP_PEER; break; case PPP_PAP: pbit = PAP_PEER; break; default: AUTHDEBUG((LOG_WARNING, "auth_peer_success: unknown protocol %x\n", protocol)); return; } /* * Save the authenticated name of the peer for later. */ if (namelen > sizeof(peer_authname) - 1) { namelen = sizeof(peer_authname) - 1; } BCOPY(name, peer_authname, namelen); peer_authname[namelen] = 0; /* * If there is no more authentication still to be done, * proceed to the network (or callback) phase. */ if ((auth_pending[unit] &= ~pbit) == 0) { network_phase(unit); } } /* * We have failed to authenticate ourselves to the peer using `protocol'. */ void auth_withpeer_fail(int unit, u16_t protocol) { int errCode = PPPERR_AUTHFAIL; LWIP_UNUSED_ARG(protocol); AUTHDEBUG((LOG_INFO, "auth_withpeer_fail: %d proto=%X\n", unit, protocol)); if (passwd_from_file) { BZERO(ppp_settings.passwd, MAXSECRETLEN); } /* * XXX Warning: the unit number indicates the interface which is * not necessarily the PPP connection. It works here as long * as we are only supporting PPP interfaces. */ pppIOCtl(unit, PPPCTLS_ERRCODE, &errCode); /* * We've failed to authenticate ourselves to our peer. * He'll probably take the link down, and there's not much * we can do except wait for that. */ } /* * We have successfully authenticated ourselves with the peer using `protocol'. */ void auth_withpeer_success(int unit, u16_t protocol) { int pbit; AUTHDEBUG((LOG_INFO, "auth_withpeer_success: %d proto=%X\n", unit, protocol)); switch (protocol) { case PPP_CHAP: pbit = CHAP_WITHPEER; break; case PPP_PAP: if (passwd_from_file) { BZERO(ppp_settings.passwd, MAXSECRETLEN); } pbit = PAP_WITHPEER; break; default: AUTHDEBUG((LOG_WARNING, "auth_peer_success: unknown protocol %x\n", protocol)); pbit = 0; } /* * If there is no more authentication still being done, * proceed to the network (or callback) phase. */ if ((auth_pending[unit] &= ~pbit) == 0) { network_phase(unit); } } #endif /* PAP_SUPPORT || CHAP_SUPPORT */ /* * np_up - a network protocol has come up. */ void np_up(int unit, u16_t proto) { LWIP_UNUSED_ARG(unit); LWIP_UNUSED_ARG(proto); AUTHDEBUG((LOG_INFO, "np_up: %d proto=%X\n", unit, proto)); if (num_np_up == 0) { AUTHDEBUG((LOG_INFO, "np_up: maxconnect=%d idle_time_limit=%d\n",ppp_settings.maxconnect,ppp_settings.idle_time_limit)); /* * At this point we consider that the link has come up successfully. */ if (ppp_settings.idle_time_limit > 0) { TIMEOUT(check_idle, NULL, ppp_settings.idle_time_limit); } /* * Set a timeout to close the connection once the maximum * connect time has expired. */ if (ppp_settings.maxconnect > 0) { TIMEOUT(connect_time_expired, 0, ppp_settings.maxconnect); } } ++num_np_up; } /* * np_down - a network protocol has gone down. */ void np_down(int unit, u16_t proto) { LWIP_UNUSED_ARG(unit); LWIP_UNUSED_ARG(proto); AUTHDEBUG((LOG_INFO, "np_down: %d proto=%X\n", unit, proto)); if (--num_np_up == 0 && ppp_settings.idle_time_limit > 0) { UNTIMEOUT(check_idle, NULL); } } /* * np_finished - a network protocol has finished using the link. */ void np_finished(int unit, u16_t proto) { LWIP_UNUSED_ARG(unit); LWIP_UNUSED_ARG(proto); AUTHDEBUG((LOG_INFO, "np_finished: %d proto=%X\n", unit, proto)); if (--num_np_open <= 0) { /* no further use for the link: shut up shop. */ lcp_close(0, "No network protocols running"); } } /* * auth_reset - called when LCP is starting negotiations to recheck * authentication options, i.e. whether we have appropriate secrets * to use for authenticating ourselves and/or the peer. */ void auth_reset(int unit) { lcp_options *go = &lcp_gotoptions[unit]; lcp_options *ao = &lcp_allowoptions[0]; ipcp_options *ipwo = &ipcp_wantoptions[0]; u32_t remote; AUTHDEBUG((LOG_INFO, "auth_reset: %d\n", unit)); ao->neg_upap = !ppp_settings.refuse_pap && (ppp_settings.passwd[0] != 0 || get_pap_passwd(unit, NULL, NULL)); ao->neg_chap = !ppp_settings.refuse_chap && ppp_settings.passwd[0] != 0 /*have_chap_secret(ppp_settings.user, ppp_settings.remote_name, (u32_t)0)*/; if (go->neg_upap && !have_pap_secret()) { go->neg_upap = 0; } if (go->neg_chap) { remote = ipwo->accept_remote? 0: ipwo->hisaddr; if (!have_chap_secret(ppp_settings.remote_name, ppp_settings.our_name, remote)) { go->neg_chap = 0; } } } #if PAP_SUPPORT /* * check_passwd - Check the user name and passwd against the PAP secrets * file. If requested, also check against the system password database, * and login the user if OK. * * returns: * UPAP_AUTHNAK: Authentication failed. * UPAP_AUTHACK: Authentication succeeded. * In either case, msg points to an appropriate message. */ int check_passwd( int unit, char *auser, int userlen, char *apasswd, int passwdlen, char **msg, int *msglen) { #if 1 LWIP_UNUSED_ARG(unit); LWIP_UNUSED_ARG(auser); LWIP_UNUSED_ARG(userlen); LWIP_UNUSED_ARG(apasswd); LWIP_UNUSED_ARG(passwdlen); LWIP_UNUSED_ARG(msglen); *msg = (char *) 0; return UPAP_AUTHACK; /* XXX Assume all entries OK. */ #else int ret = 0; struct wordlist *addrs = NULL; char passwd[256], user[256]; char secret[MAXWORDLEN]; static u_short attempts = 0; /* * Make copies of apasswd and auser, then null-terminate them. */ BCOPY(apasswd, passwd, passwdlen); passwd[passwdlen] = '\0'; BCOPY(auser, user, userlen); user[userlen] = '\0'; *msg = (char *) 0; /* XXX Validate user name and password. */ ret = UPAP_AUTHACK; /* XXX Assume all entries OK. */ if (ret == UPAP_AUTHNAK) { if (*msg == (char *) 0) { *msg = "Login incorrect"; } *msglen = strlen(*msg); /* * Frustrate passwd stealer programs. * Allow 10 tries, but start backing off after 3 (stolen from login). * On 10'th, drop the connection. */ if (attempts++ >= 10) { AUTHDEBUG((LOG_WARNING, "%d LOGIN FAILURES BY %s\n", attempts, user)); /*ppp_panic("Excess Bad Logins");*/ } if (attempts > 3) { sys_msleep((attempts - 3) * 5); } if (addrs != NULL) { free_wordlist(addrs); } } else { attempts = 0; /* Reset count */ if (*msg == (char *) 0) { *msg = "Login ok"; } *msglen = strlen(*msg); set_allowed_addrs(unit, addrs); } BZERO(passwd, sizeof(passwd)); BZERO(secret, sizeof(secret)); return ret; #endif } #endif /* PAP_SUPPORT */ /* * auth_ip_addr - check whether the peer is authorized to use * a given IP address. Returns 1 if authorized, 0 otherwise. */ int auth_ip_addr(int unit, u32_t addr) { return ip_addr_check(addr, addresses[unit]); } /* * bad_ip_adrs - return 1 if the IP address is one we don't want * to use, such as an address in the loopback net or a multicast address. * addr is in network byte order. */ int bad_ip_adrs(u32_t addr) { addr = ntohl(addr); return (addr >> IN_CLASSA_NSHIFT) == IN_LOOPBACKNET || IN_MULTICAST(addr) || IN_BADCLASS(addr); } #if CHAP_SUPPORT /* * get_secret - open the CHAP secret file and return the secret * for authenticating the given client on the given server. * (We could be either client or server). */ int get_secret( int unit, char *client, char *server, char *secret, int *secret_len, int save_addrs) { #if 1 int len; struct wordlist *addrs; LWIP_UNUSED_ARG(unit); LWIP_UNUSED_ARG(server); LWIP_UNUSED_ARG(save_addrs); addrs = NULL; if(!client || !client[0] || strcmp(client, ppp_settings.user)) { return 0; } len = strlen(ppp_settings.passwd); if (len > MAXSECRETLEN) { AUTHDEBUG((LOG_ERR, "Secret for %s on %s is too long\n", client, server)); len = MAXSECRETLEN; } BCOPY(ppp_settings.passwd, secret, len); *secret_len = len; return 1; #else int ret = 0, len; struct wordlist *addrs; char secbuf[MAXWORDLEN]; addrs = NULL; secbuf[0] = 0; /* XXX Find secret. */ if (ret < 0) { return 0; } if (save_addrs) { set_allowed_addrs(unit, addrs); } len = strlen(secbuf); if (len > MAXSECRETLEN) { AUTHDEBUG((LOG_ERR, "Secret for %s on %s is too long\n", client, server)); len = MAXSECRETLEN; } BCOPY(secbuf, secret, len); BZERO(secbuf, sizeof(secbuf)); *secret_len = len; return 1; #endif } #endif /* CHAP_SUPPORT */ #if 0 /* UNUSED */ /* * auth_check_options - called to check authentication options. */ void auth_check_options(void) { lcp_options *wo = &lcp_wantoptions[0]; int can_auth; ipcp_options *ipwo = &ipcp_wantoptions[0]; u32_t remote; /* Default our_name to hostname, and user to our_name */ if (ppp_settings.our_name[0] == 0 || ppp_settings.usehostname) { strcpy(ppp_settings.our_name, ppp_settings.hostname); } if (ppp_settings.user[0] == 0) { strcpy(ppp_settings.user, ppp_settings.our_name); } /* If authentication is required, ask peer for CHAP or PAP. */ if (ppp_settings.auth_required && !wo->neg_chap && !wo->neg_upap) { wo->neg_chap = 1; wo->neg_upap = 1; } /* * Check whether we have appropriate secrets to use * to authenticate the peer. */ can_auth = wo->neg_upap && have_pap_secret(); if (!can_auth && wo->neg_chap) { remote = ipwo->accept_remote? 0: ipwo->hisaddr; can_auth = have_chap_secret(ppp_settings.remote_name, ppp_settings.our_name, remote); } if (ppp_settings.auth_required && !can_auth) { ppp_panic("No auth secret"); } } #endif /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ /* * Proceed to the network phase. */ static void network_phase(int unit) { int i; struct protent *protp; lcp_options *go = &lcp_gotoptions[unit]; /* * If the peer had to authenticate, run the auth-up script now. */ if ((go->neg_chap || go->neg_upap) && !did_authup) { /* XXX Do setup for peer authentication. */ did_authup = 1; } #if CBCP_SUPPORT /* * If we negotiated callback, do it now. */ if (go->neg_cbcp) { lcp_phase[unit] = PHASE_CALLBACK; (*cbcp_protent.open)(unit); return; } #endif /* CBCP_SUPPORT */ lcp_phase[unit] = PHASE_NETWORK; for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) { if (protp->protocol < 0xC000 && protp->enabled_flag && protp->open != NULL) { (*protp->open)(unit); if (protp->protocol != PPP_CCP) { ++num_np_open; } } } if (num_np_open == 0) { /* nothing to do */ lcp_close(0, "No network protocols running"); } } /* * check_idle - check whether the link has been idle for long * enough that we can shut it down. */ static void check_idle(void *arg) { struct ppp_idle idle; u_short itime; LWIP_UNUSED_ARG(arg); if (!get_idle_time(0, &idle)) { return; } itime = LWIP_MIN(idle.xmit_idle, idle.recv_idle); if (itime >= ppp_settings.idle_time_limit) { /* link is idle: shut it down. */ AUTHDEBUG((LOG_INFO, "Terminating connection due to lack of activity.\n")); lcp_close(0, "Link inactive"); } else { TIMEOUT(check_idle, NULL, ppp_settings.idle_time_limit - itime); } } /* * connect_time_expired - log a message and close the connection. */ static void connect_time_expired(void *arg) { LWIP_UNUSED_ARG(arg); AUTHDEBUG((LOG_INFO, "Connect time expired\n")); lcp_close(0, "Connect time expired"); /* Close connection */ } #if 0 /* * login - Check the user name and password against the system * password database, and login the user if OK. * * returns: * UPAP_AUTHNAK: Login failed. * UPAP_AUTHACK: Login succeeded. * In either case, msg points to an appropriate message. */ static int login(char *user, char *passwd, char **msg, int *msglen) { /* XXX Fail until we decide that we want to support logins. */ return (UPAP_AUTHNAK); } #endif /* * logout - Logout the user. */ static void logout(void) { logged_in = 0; } /* * null_login - Check if a username of "" and a password of "" are * acceptable, and iff so, set the list of acceptable IP addresses * and return 1. */ static int null_login(int unit) { LWIP_UNUSED_ARG(unit); /* XXX Fail until we decide that we want to support logins. */ return 0; } /* * get_pap_passwd - get a password for authenticating ourselves with * our peer using PAP. Returns 1 on success, 0 if no suitable password * could be found. */ static int get_pap_passwd(int unit, char *user, char *passwd) { LWIP_UNUSED_ARG(unit); /* normally we would reject PAP if no password is provided, but this causes problems with some providers (like CHT in Taiwan) who incorrectly request PAP and expect a bogus/empty password, so always provide a default user/passwd of "none"/"none" */ if(user) { strcpy(user, "none"); } if(passwd) { strcpy(passwd, "none"); } return 1; } /* * have_pap_secret - check whether we have a PAP file with any * secrets that we could possibly use for authenticating the peer. */ static int have_pap_secret(void) { /* XXX Fail until we set up our passwords. */ return 0; } /* * have_chap_secret - check whether we have a CHAP file with a * secret that we could possibly use for authenticating `client' * on `server'. Either can be the null string, meaning we don't * know the identity yet. */ static int have_chap_secret(char *client, char *server, u32_t remote) { LWIP_UNUSED_ARG(client); LWIP_UNUSED_ARG(server); LWIP_UNUSED_ARG(remote); /* XXX Fail until we set up our passwords. */ return 0; } #if 0 /* PAP_SUPPORT || CHAP_SUPPORT */ /* * set_allowed_addrs() - set the list of allowed addresses. */ static void set_allowed_addrs(int unit, struct wordlist *addrs) { if (addresses[unit] != NULL) { free_wordlist(addresses[unit]); } addresses[unit] = addrs; #if 0 /* * If there's only one authorized address we might as well * ask our peer for that one right away */ if (addrs != NULL && addrs->next == NULL) { char *p = addrs->word; struct ipcp_options *wo = &ipcp_wantoptions[unit]; u32_t a; struct hostent *hp; if (wo->hisaddr == 0 && *p != '!' && *p != '-' && strchr(p, '/') == NULL) { hp = gethostbyname(p); if (hp != NULL && hp->h_addrtype == AF_INET) { a = *(u32_t *)hp->h_addr; } else { a = inet_addr(p); } if (a != (u32_t) -1) { wo->hisaddr = a; } } } #endif } #endif /* 0 */ /* PAP_SUPPORT || CHAP_SUPPORT */ static int ip_addr_check(u32_t addr, struct wordlist *addrs) { /* don't allow loopback or multicast address */ if (bad_ip_adrs(addr)) { return 0; } if (addrs == NULL) { return !ppp_settings.auth_required; /* no addresses authorized */ } /* XXX All other addresses allowed. */ return 1; } #if 0 /* PAP_SUPPORT || CHAP_SUPPORT */ /* * free_wordlist - release memory allocated for a wordlist. */ static void free_wordlist(struct wordlist *wp) { struct wordlist *next; while (wp != NULL) { next = wp->next; free(wp); wp = next; } } #endif /* 0 */ /* PAP_SUPPORT || CHAP_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/auth.h000066400000000000000000000077031224274632000231400ustar00rootroot00000000000000/***************************************************************************** * auth.h - PPP Authentication and phase control header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1998 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-04 Guy Lancaster , Global Election Systems Inc. * Original derived from BSD pppd.h. *****************************************************************************/ /* * pppd.h - PPP daemon global declarations. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * */ #ifndef AUTH_H #define AUTH_H /*********************** *** PUBLIC FUNCTIONS *** ***********************/ /* we are starting to use the link */ void link_required (int); /* we are finished with the link */ void link_terminated (int); /* the LCP layer has left the Opened state */ void link_down (int); /* the link is up; authenticate now */ void link_established (int); /* a network protocol has come up */ void np_up (int, u16_t); /* a network protocol has gone down */ void np_down (int, u16_t); /* a network protocol no longer needs link */ void np_finished (int, u16_t); /* peer failed to authenticate itself */ void auth_peer_fail (int, u16_t); /* peer successfully authenticated itself */ void auth_peer_success (int, u16_t, char *, int); /* we failed to authenticate ourselves */ void auth_withpeer_fail (int, u16_t); /* we successfully authenticated ourselves */ void auth_withpeer_success (int, u16_t); /* check authentication options supplied */ void auth_check_options (void); /* check what secrets we have */ void auth_reset (int); /* Check peer-supplied username/password */ int check_passwd (int, char *, int, char *, int, char **, int *); /* get "secret" for chap */ int get_secret (int, char *, char *, char *, int *, int); /* check if IP address is authorized */ int auth_ip_addr (int, u32_t); /* check if IP address is unreasonable */ int bad_ip_adrs (u32_t); #endif /* AUTH_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/chap.c000066400000000000000000000576271224274632000231170ustar00rootroot00000000000000/*** WARNING - THIS HAS NEVER BEEN FINISHED ***/ /***************************************************************************** * chap.c - Network Challenge Handshake Authentication Protocol program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-04 Guy Lancaster , Global Election Systems Inc. * Original based on BSD chap.c. *****************************************************************************/ /* * chap.c - Challenge Handshake Authentication Protocol. * * Copyright (c) 1993 The Australian National University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the Australian National University. The name of the University * may not be used to endorse or promote products derived from this * software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * Copyright (c) 1991 Gregory M. Christy. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Gregory M. Christy. The name of the author may not be used to * endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #if CHAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "magic.h" #include "randm.h" #include "auth.h" #include "md5.h" #include "chap.h" #include "chpms.h" /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ /************************/ /*** LOCAL DATA TYPES ***/ /************************/ /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ /* * Protocol entry points. */ static void ChapInit (int); static void ChapLowerUp (int); static void ChapLowerDown (int); static void ChapInput (int, u_char *, int); static void ChapProtocolReject (int); #if 0 static int ChapPrintPkt (u_char *, int, void (*) (void *, char *, ...), void *); #endif static void ChapChallengeTimeout (void *); static void ChapResponseTimeout (void *); static void ChapReceiveChallenge (chap_state *, u_char *, int, int); static void ChapRechallenge (void *); static void ChapReceiveResponse (chap_state *, u_char *, int, int); static void ChapReceiveSuccess(chap_state *cstate, u_char *inp, u_char id, int len); static void ChapReceiveFailure(chap_state *cstate, u_char *inp, u_char id, int len); static void ChapSendStatus (chap_state *, int); static void ChapSendChallenge (chap_state *); static void ChapSendResponse (chap_state *); static void ChapGenChallenge (chap_state *); /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ chap_state chap[NUM_PPP]; /* CHAP state; one for each unit */ struct protent chap_protent = { PPP_CHAP, ChapInit, ChapInput, ChapProtocolReject, ChapLowerUp, ChapLowerDown, NULL, NULL, #if 0 ChapPrintPkt, NULL, #endif 1, "CHAP", #if 0 NULL, NULL, NULL #endif }; /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * ChapAuthWithPeer - Authenticate us with our peer (start client). * */ void ChapAuthWithPeer(int unit, char *our_name, int digest) { chap_state *cstate = &chap[unit]; cstate->resp_name = our_name; cstate->resp_type = digest; if (cstate->clientstate == CHAPCS_INITIAL || cstate->clientstate == CHAPCS_PENDING) { /* lower layer isn't up - wait until later */ cstate->clientstate = CHAPCS_PENDING; return; } /* * We get here as a result of LCP coming up. * So even if CHAP was open before, we will * have to re-authenticate ourselves. */ cstate->clientstate = CHAPCS_LISTEN; } /* * ChapAuthPeer - Authenticate our peer (start server). */ void ChapAuthPeer(int unit, char *our_name, int digest) { chap_state *cstate = &chap[unit]; cstate->chal_name = our_name; cstate->chal_type = digest; if (cstate->serverstate == CHAPSS_INITIAL || cstate->serverstate == CHAPSS_PENDING) { /* lower layer isn't up - wait until later */ cstate->serverstate = CHAPSS_PENDING; return; } ChapGenChallenge(cstate); ChapSendChallenge(cstate); /* crank it up dude! */ cstate->serverstate = CHAPSS_INITIAL_CHAL; } /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ /* * ChapInit - Initialize a CHAP unit. */ static void ChapInit(int unit) { chap_state *cstate = &chap[unit]; BZERO(cstate, sizeof(*cstate)); cstate->unit = unit; cstate->clientstate = CHAPCS_INITIAL; cstate->serverstate = CHAPSS_INITIAL; cstate->timeouttime = CHAP_DEFTIMEOUT; cstate->max_transmits = CHAP_DEFTRANSMITS; /* random number generator is initialized in magic_init */ } /* * ChapChallengeTimeout - Timeout expired on sending challenge. */ static void ChapChallengeTimeout(void *arg) { chap_state *cstate = (chap_state *) arg; /* if we aren't sending challenges, don't worry. then again we */ /* probably shouldn't be here either */ if (cstate->serverstate != CHAPSS_INITIAL_CHAL && cstate->serverstate != CHAPSS_RECHALLENGE) { return; } if (cstate->chal_transmits >= cstate->max_transmits) { /* give up on peer */ CHAPDEBUG((LOG_ERR, "Peer failed to respond to CHAP challenge\n")); cstate->serverstate = CHAPSS_BADAUTH; auth_peer_fail(cstate->unit, PPP_CHAP); return; } ChapSendChallenge(cstate); /* Re-send challenge */ } /* * ChapResponseTimeout - Timeout expired on sending response. */ static void ChapResponseTimeout(void *arg) { chap_state *cstate = (chap_state *) arg; /* if we aren't sending a response, don't worry. */ if (cstate->clientstate != CHAPCS_RESPONSE) { return; } ChapSendResponse(cstate); /* re-send response */ } /* * ChapRechallenge - Time to challenge the peer again. */ static void ChapRechallenge(void *arg) { chap_state *cstate = (chap_state *) arg; /* if we aren't sending a response, don't worry. */ if (cstate->serverstate != CHAPSS_OPEN) { return; } ChapGenChallenge(cstate); ChapSendChallenge(cstate); cstate->serverstate = CHAPSS_RECHALLENGE; } /* * ChapLowerUp - The lower layer is up. * * Start up if we have pending requests. */ static void ChapLowerUp(int unit) { chap_state *cstate = &chap[unit]; if (cstate->clientstate == CHAPCS_INITIAL) { cstate->clientstate = CHAPCS_CLOSED; } else if (cstate->clientstate == CHAPCS_PENDING) { cstate->clientstate = CHAPCS_LISTEN; } if (cstate->serverstate == CHAPSS_INITIAL) { cstate->serverstate = CHAPSS_CLOSED; } else if (cstate->serverstate == CHAPSS_PENDING) { ChapGenChallenge(cstate); ChapSendChallenge(cstate); cstate->serverstate = CHAPSS_INITIAL_CHAL; } } /* * ChapLowerDown - The lower layer is down. * * Cancel all timeouts. */ static void ChapLowerDown(int unit) { chap_state *cstate = &chap[unit]; /* Timeout(s) pending? Cancel if so. */ if (cstate->serverstate == CHAPSS_INITIAL_CHAL || cstate->serverstate == CHAPSS_RECHALLENGE) { UNTIMEOUT(ChapChallengeTimeout, cstate); } else if (cstate->serverstate == CHAPSS_OPEN && cstate->chal_interval != 0) { UNTIMEOUT(ChapRechallenge, cstate); } if (cstate->clientstate == CHAPCS_RESPONSE) { UNTIMEOUT(ChapResponseTimeout, cstate); } cstate->clientstate = CHAPCS_INITIAL; cstate->serverstate = CHAPSS_INITIAL; } /* * ChapProtocolReject - Peer doesn't grok CHAP. */ static void ChapProtocolReject(int unit) { chap_state *cstate = &chap[unit]; if (cstate->serverstate != CHAPSS_INITIAL && cstate->serverstate != CHAPSS_CLOSED) { auth_peer_fail(unit, PPP_CHAP); } if (cstate->clientstate != CHAPCS_INITIAL && cstate->clientstate != CHAPCS_CLOSED) { auth_withpeer_fail(unit, PPP_CHAP); } ChapLowerDown(unit); /* shutdown chap */ } /* * ChapInput - Input CHAP packet. */ static void ChapInput(int unit, u_char *inpacket, int packet_len) { chap_state *cstate = &chap[unit]; u_char *inp; u_char code, id; int len; /* * Parse header (code, id and length). * If packet too short, drop it. */ inp = inpacket; if (packet_len < CHAP_HEADERLEN) { CHAPDEBUG((LOG_INFO, "ChapInput: rcvd short header.\n")); return; } GETCHAR(code, inp); GETCHAR(id, inp); GETSHORT(len, inp); if (len < CHAP_HEADERLEN) { CHAPDEBUG((LOG_INFO, "ChapInput: rcvd illegal length.\n")); return; } if (len > packet_len) { CHAPDEBUG((LOG_INFO, "ChapInput: rcvd short packet.\n")); return; } len -= CHAP_HEADERLEN; /* * Action depends on code (as in fact it usually does :-). */ switch (code) { case CHAP_CHALLENGE: ChapReceiveChallenge(cstate, inp, id, len); break; case CHAP_RESPONSE: ChapReceiveResponse(cstate, inp, id, len); break; case CHAP_FAILURE: ChapReceiveFailure(cstate, inp, id, len); break; case CHAP_SUCCESS: ChapReceiveSuccess(cstate, inp, id, len); break; default: /* Need code reject? */ CHAPDEBUG((LOG_WARNING, "Unknown CHAP code (%d) received.\n", code)); break; } } /* * ChapReceiveChallenge - Receive Challenge and send Response. */ static void ChapReceiveChallenge(chap_state *cstate, u_char *inp, int id, int len) { int rchallenge_len; u_char *rchallenge; int secret_len; char secret[MAXSECRETLEN]; char rhostname[256]; MD5_CTX mdContext; u_char hash[MD5_SIGNATURE_SIZE]; CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: Rcvd id %d.\n", id)); if (cstate->clientstate == CHAPCS_CLOSED || cstate->clientstate == CHAPCS_PENDING) { CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: in state %d\n", cstate->clientstate)); return; } if (len < 2) { CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: rcvd short packet.\n")); return; } GETCHAR(rchallenge_len, inp); len -= sizeof (u_char) + rchallenge_len; /* now name field length */ if (len < 0) { CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: rcvd short packet.\n")); return; } rchallenge = inp; INCPTR(rchallenge_len, inp); if (len >= sizeof(rhostname)) { len = sizeof(rhostname) - 1; } BCOPY(inp, rhostname, len); rhostname[len] = '\000'; CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: received name field '%s'\n", rhostname)); /* Microsoft doesn't send their name back in the PPP packet */ if (ppp_settings.remote_name[0] != 0 && (ppp_settings.explicit_remote || rhostname[0] == 0)) { strncpy(rhostname, ppp_settings.remote_name, sizeof(rhostname)); rhostname[sizeof(rhostname) - 1] = 0; CHAPDEBUG((LOG_INFO, "ChapReceiveChallenge: using '%s' as remote name\n", rhostname)); } /* get secret for authenticating ourselves with the specified host */ if (!get_secret(cstate->unit, cstate->resp_name, rhostname, secret, &secret_len, 0)) { secret_len = 0; /* assume null secret if can't find one */ CHAPDEBUG((LOG_WARNING, "No CHAP secret found for authenticating us to %s\n", rhostname)); } /* cancel response send timeout if necessary */ if (cstate->clientstate == CHAPCS_RESPONSE) { UNTIMEOUT(ChapResponseTimeout, cstate); } cstate->resp_id = id; cstate->resp_transmits = 0; /* generate MD based on negotiated type */ switch (cstate->resp_type) { case CHAP_DIGEST_MD5: MD5Init(&mdContext); MD5Update(&mdContext, &cstate->resp_id, 1); MD5Update(&mdContext, (u_char*)secret, secret_len); MD5Update(&mdContext, rchallenge, rchallenge_len); MD5Final(hash, &mdContext); BCOPY(hash, cstate->response, MD5_SIGNATURE_SIZE); cstate->resp_length = MD5_SIGNATURE_SIZE; break; #ifdef CHAPMS case CHAP_MICROSOFT: ChapMS(cstate, rchallenge, rchallenge_len, secret, secret_len); break; #endif default: CHAPDEBUG((LOG_INFO, "unknown digest type %d\n", cstate->resp_type)); return; } BZERO(secret, sizeof(secret)); ChapSendResponse(cstate); } /* * ChapReceiveResponse - Receive and process response. */ static void ChapReceiveResponse(chap_state *cstate, u_char *inp, int id, int len) { u_char *remmd, remmd_len; int secret_len, old_state; int code; char rhostname[256]; MD5_CTX mdContext; char secret[MAXSECRETLEN]; u_char hash[MD5_SIGNATURE_SIZE]; CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: Rcvd id %d.\n", id)); if (cstate->serverstate == CHAPSS_CLOSED || cstate->serverstate == CHAPSS_PENDING) { CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: in state %d\n", cstate->serverstate)); return; } if (id != cstate->chal_id) { return; /* doesn't match ID of last challenge */ } /* * If we have received a duplicate or bogus Response, * we have to send the same answer (Success/Failure) * as we did for the first Response we saw. */ if (cstate->serverstate == CHAPSS_OPEN) { ChapSendStatus(cstate, CHAP_SUCCESS); return; } if (cstate->serverstate == CHAPSS_BADAUTH) { ChapSendStatus(cstate, CHAP_FAILURE); return; } if (len < 2) { CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: rcvd short packet.\n")); return; } GETCHAR(remmd_len, inp); /* get length of MD */ remmd = inp; /* get pointer to MD */ INCPTR(remmd_len, inp); len -= sizeof (u_char) + remmd_len; if (len < 0) { CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: rcvd short packet.\n")); return; } UNTIMEOUT(ChapChallengeTimeout, cstate); if (len >= sizeof(rhostname)) { len = sizeof(rhostname) - 1; } BCOPY(inp, rhostname, len); rhostname[len] = '\000'; CHAPDEBUG((LOG_INFO, "ChapReceiveResponse: received name field: %s\n", rhostname)); /* * Get secret for authenticating them with us, * do the hash ourselves, and compare the result. */ code = CHAP_FAILURE; if (!get_secret(cstate->unit, rhostname, cstate->chal_name, secret, &secret_len, 1)) { /* CHAPDEBUG((LOG_WARNING, TL_CHAP, "No CHAP secret found for authenticating %s\n", rhostname)); */ CHAPDEBUG((LOG_WARNING, "No CHAP secret found for authenticating %s\n", rhostname)); } else { /* generate MD based on negotiated type */ switch (cstate->chal_type) { case CHAP_DIGEST_MD5: /* only MD5 is defined for now */ if (remmd_len != MD5_SIGNATURE_SIZE) { break; /* it's not even the right length */ } MD5Init(&mdContext); MD5Update(&mdContext, &cstate->chal_id, 1); MD5Update(&mdContext, (u_char*)secret, secret_len); MD5Update(&mdContext, cstate->challenge, cstate->chal_len); MD5Final(hash, &mdContext); /* compare local and remote MDs and send the appropriate status */ if (memcmp (hash, remmd, MD5_SIGNATURE_SIZE) == 0) { code = CHAP_SUCCESS; /* they are the same! */ } break; default: CHAPDEBUG((LOG_INFO, "unknown digest type %d\n", cstate->chal_type)); } } BZERO(secret, sizeof(secret)); ChapSendStatus(cstate, code); if (code == CHAP_SUCCESS) { old_state = cstate->serverstate; cstate->serverstate = CHAPSS_OPEN; if (old_state == CHAPSS_INITIAL_CHAL) { auth_peer_success(cstate->unit, PPP_CHAP, rhostname, len); } if (cstate->chal_interval != 0) { TIMEOUT(ChapRechallenge, cstate, cstate->chal_interval); } } else { CHAPDEBUG((LOG_ERR, "CHAP peer authentication failed\n")); cstate->serverstate = CHAPSS_BADAUTH; auth_peer_fail(cstate->unit, PPP_CHAP); } } /* * ChapReceiveSuccess - Receive Success */ static void ChapReceiveSuccess(chap_state *cstate, u_char *inp, u_char id, int len) { LWIP_UNUSED_ARG(id); LWIP_UNUSED_ARG(inp); CHAPDEBUG((LOG_INFO, "ChapReceiveSuccess: Rcvd id %d.\n", id)); if (cstate->clientstate == CHAPCS_OPEN) { /* presumably an answer to a duplicate response */ return; } if (cstate->clientstate != CHAPCS_RESPONSE) { /* don't know what this is */ CHAPDEBUG((LOG_INFO, "ChapReceiveSuccess: in state %d\n", cstate->clientstate)); return; } UNTIMEOUT(ChapResponseTimeout, cstate); /* * Print message. */ if (len > 0) { PRINTMSG(inp, len); } cstate->clientstate = CHAPCS_OPEN; auth_withpeer_success(cstate->unit, PPP_CHAP); } /* * ChapReceiveFailure - Receive failure. */ static void ChapReceiveFailure(chap_state *cstate, u_char *inp, u_char id, int len) { LWIP_UNUSED_ARG(id); LWIP_UNUSED_ARG(inp); CHAPDEBUG((LOG_INFO, "ChapReceiveFailure: Rcvd id %d.\n", id)); if (cstate->clientstate != CHAPCS_RESPONSE) { /* don't know what this is */ CHAPDEBUG((LOG_INFO, "ChapReceiveFailure: in state %d\n", cstate->clientstate)); return; } UNTIMEOUT(ChapResponseTimeout, cstate); /* * Print message. */ if (len > 0) { PRINTMSG(inp, len); } CHAPDEBUG((LOG_ERR, "CHAP authentication failed\n")); auth_withpeer_fail(cstate->unit, PPP_CHAP); } /* * ChapSendChallenge - Send an Authenticate challenge. */ static void ChapSendChallenge(chap_state *cstate) { u_char *outp; int chal_len, name_len; int outlen; chal_len = cstate->chal_len; name_len = strlen(cstate->chal_name); outlen = CHAP_HEADERLEN + sizeof (u_char) + chal_len + name_len; outp = outpacket_buf[cstate->unit]; MAKEHEADER(outp, PPP_CHAP); /* paste in a CHAP header */ PUTCHAR(CHAP_CHALLENGE, outp); PUTCHAR(cstate->chal_id, outp); PUTSHORT(outlen, outp); PUTCHAR(chal_len, outp); /* put length of challenge */ BCOPY(cstate->challenge, outp, chal_len); INCPTR(chal_len, outp); BCOPY(cstate->chal_name, outp, name_len); /* append hostname */ pppWrite(cstate->unit, outpacket_buf[cstate->unit], outlen + PPP_HDRLEN); CHAPDEBUG((LOG_INFO, "ChapSendChallenge: Sent id %d.\n", cstate->chal_id)); TIMEOUT(ChapChallengeTimeout, cstate, cstate->timeouttime); ++cstate->chal_transmits; } /* * ChapSendStatus - Send a status response (ack or nak). */ static void ChapSendStatus(chap_state *cstate, int code) { u_char *outp; int outlen, msglen; char msg[256]; if (code == CHAP_SUCCESS) { strcpy(msg, "Welcome!"); } else { strcpy(msg, "I don't like you. Go 'way."); } msglen = strlen(msg); outlen = CHAP_HEADERLEN + msglen; outp = outpacket_buf[cstate->unit]; MAKEHEADER(outp, PPP_CHAP); /* paste in a header */ PUTCHAR(code, outp); PUTCHAR(cstate->chal_id, outp); PUTSHORT(outlen, outp); BCOPY(msg, outp, msglen); pppWrite(cstate->unit, outpacket_buf[cstate->unit], outlen + PPP_HDRLEN); CHAPDEBUG((LOG_INFO, "ChapSendStatus: Sent code %d, id %d.\n", code, cstate->chal_id)); } /* * ChapGenChallenge is used to generate a pseudo-random challenge string of * a pseudo-random length between min_len and max_len. The challenge * string and its length are stored in *cstate, and various other fields of * *cstate are initialized. */ static void ChapGenChallenge(chap_state *cstate) { int chal_len; u_char *ptr = cstate->challenge; int i; /* pick a random challenge length between MIN_CHALLENGE_LENGTH and MAX_CHALLENGE_LENGTH */ chal_len = (unsigned) ((((magic() >> 16) * (MAX_CHALLENGE_LENGTH - MIN_CHALLENGE_LENGTH)) >> 16) + MIN_CHALLENGE_LENGTH); cstate->chal_len = chal_len; cstate->chal_id = ++cstate->id; cstate->chal_transmits = 0; /* generate a random string */ for (i = 0; i < chal_len; i++ ) { *ptr++ = (char) (magic() & 0xff); } } /* * ChapSendResponse - send a response packet with values as specified * in *cstate. */ /* ARGSUSED */ static void ChapSendResponse(chap_state *cstate) { u_char *outp; int outlen, md_len, name_len; md_len = cstate->resp_length; name_len = strlen(cstate->resp_name); outlen = CHAP_HEADERLEN + sizeof (u_char) + md_len + name_len; outp = outpacket_buf[cstate->unit]; MAKEHEADER(outp, PPP_CHAP); PUTCHAR(CHAP_RESPONSE, outp); /* we are a response */ PUTCHAR(cstate->resp_id, outp); /* copy id from challenge packet */ PUTSHORT(outlen, outp); /* packet length */ PUTCHAR(md_len, outp); /* length of MD */ BCOPY(cstate->response, outp, md_len); /* copy MD to buffer */ INCPTR(md_len, outp); BCOPY(cstate->resp_name, outp, name_len); /* append our name */ /* send the packet */ pppWrite(cstate->unit, outpacket_buf[cstate->unit], outlen + PPP_HDRLEN); cstate->clientstate = CHAPCS_RESPONSE; TIMEOUT(ChapResponseTimeout, cstate, cstate->timeouttime); ++cstate->resp_transmits; } #if 0 static char *ChapCodenames[] = { "Challenge", "Response", "Success", "Failure" }; /* * ChapPrintPkt - print the contents of a CHAP packet. */ static int ChapPrintPkt( u_char *p, int plen, void (*printer) (void *, char *, ...), void *arg) { int code, id, len; int clen, nlen; u_char x; if (plen < CHAP_HEADERLEN) { return 0; } GETCHAR(code, p); GETCHAR(id, p); GETSHORT(len, p); if (len < CHAP_HEADERLEN || len > plen) { return 0; } if (code >= 1 && code <= sizeof(ChapCodenames) / sizeof(char *)) { printer(arg, " %s", ChapCodenames[code-1]); } else { printer(arg, " code=0x%x", code); } printer(arg, " id=0x%x", id); len -= CHAP_HEADERLEN; switch (code) { case CHAP_CHALLENGE: case CHAP_RESPONSE: if (len < 1) { break; } clen = p[0]; if (len < clen + 1) { break; } ++p; nlen = len - clen - 1; printer(arg, " <"); for (; clen > 0; --clen) { GETCHAR(x, p); printer(arg, "%.2x", x); } printer(arg, ">, name = %.*Z", nlen, p); break; case CHAP_FAILURE: case CHAP_SUCCESS: printer(arg, " %.*Z", len, p); break; default: for (clen = len; clen > 0; --clen) { GETCHAR(x, p); printer(arg, " %.2x", x); } } return len + CHAP_HEADERLEN; } #endif #endif /* CHAP_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/chap.h000066400000000000000000000154131224274632000231070ustar00rootroot00000000000000/***************************************************************************** * chap.h - Network Challenge Handshake Authentication Protocol header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1998 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-03 Guy Lancaster , Global Election Systems Inc. * Original built from BSD network code. ******************************************************************************/ /* * chap.h - Challenge Handshake Authentication Protocol definitions. * * Copyright (c) 1993 The Australian National University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the Australian National University. The name of the University * may not be used to endorse or promote products derived from this * software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * Copyright (c) 1991 Gregory M. Christy * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the author. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id: chap.h,v 1.4 2007/12/19 20:47:22 fbernon Exp $ */ #ifndef CHAP_H #define CHAP_H /************************* *** PUBLIC DEFINITIONS *** *************************/ /* Code + ID + length */ #define CHAP_HEADERLEN 4 /* * CHAP codes. */ #define CHAP_DIGEST_MD5 5 /* use MD5 algorithm */ #define MD5_SIGNATURE_SIZE 16 /* 16 bytes in a MD5 message digest */ #define CHAP_MICROSOFT 0x80 /* use Microsoft-compatible alg. */ #define MS_CHAP_RESPONSE_LEN 49 /* Response length for MS-CHAP */ #define CHAP_CHALLENGE 1 #define CHAP_RESPONSE 2 #define CHAP_SUCCESS 3 #define CHAP_FAILURE 4 /* * Challenge lengths (for challenges we send) and other limits. */ #define MIN_CHALLENGE_LENGTH 32 #define MAX_CHALLENGE_LENGTH 64 #define MAX_RESPONSE_LENGTH 64 /* sufficient for MD5 or MS-CHAP */ /* * Client (peer) states. */ #define CHAPCS_INITIAL 0 /* Lower layer down, not opened */ #define CHAPCS_CLOSED 1 /* Lower layer up, not opened */ #define CHAPCS_PENDING 2 /* Auth us to peer when lower up */ #define CHAPCS_LISTEN 3 /* Listening for a challenge */ #define CHAPCS_RESPONSE 4 /* Sent response, waiting for status */ #define CHAPCS_OPEN 5 /* We've received Success */ /* * Server (authenticator) states. */ #define CHAPSS_INITIAL 0 /* Lower layer down, not opened */ #define CHAPSS_CLOSED 1 /* Lower layer up, not opened */ #define CHAPSS_PENDING 2 /* Auth peer when lower up */ #define CHAPSS_INITIAL_CHAL 3 /* We've sent the first challenge */ #define CHAPSS_OPEN 4 /* We've sent a Success msg */ #define CHAPSS_RECHALLENGE 5 /* We've sent another challenge */ #define CHAPSS_BADAUTH 6 /* We've sent a Failure msg */ /************************ *** PUBLIC DATA TYPES *** ************************/ /* * Each interface is described by a chap structure. */ typedef struct chap_state { int unit; /* Interface unit number */ int clientstate; /* Client state */ int serverstate; /* Server state */ u_char challenge[MAX_CHALLENGE_LENGTH]; /* last challenge string sent */ u_char chal_len; /* challenge length */ u_char chal_id; /* ID of last challenge */ u_char chal_type; /* hash algorithm for challenges */ u_char id; /* Current id */ char *chal_name; /* Our name to use with challenge */ int chal_interval; /* Time until we challenge peer again */ int timeouttime; /* Timeout time in seconds */ int max_transmits; /* Maximum # of challenge transmissions */ int chal_transmits; /* Number of transmissions of challenge */ int resp_transmits; /* Number of transmissions of response */ u_char response[MAX_RESPONSE_LENGTH]; /* Response to send */ u_char resp_length; /* length of response */ u_char resp_id; /* ID for response messages */ u_char resp_type; /* hash algorithm for responses */ char *resp_name; /* Our name to send with response */ } chap_state; /****************** *** PUBLIC DATA *** ******************/ extern chap_state chap[]; extern struct protent chap_protent; /*********************** *** PUBLIC FUNCTIONS *** ***********************/ void ChapAuthWithPeer (int, char *, int); void ChapAuthPeer (int, char *, int); #endif /* CHAP_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/chpms.c000066400000000000000000000265271224274632000233110ustar00rootroot00000000000000/*** WARNING - THIS CODE HAS NOT BEEN FINISHED! ***/ /***************************************************************************** * chpms.c - Network MicroSoft Challenge Handshake Authentication Protocol program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * Copyright (c) 1997 by Global Election Systems Inc. All rights reserved. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-08 Guy Lancaster , Global Election Systems Inc. * Original based on BSD chap_ms.c. *****************************************************************************/ /* * chap_ms.c - Microsoft MS-CHAP compatible implementation. * * Copyright (c) 1995 Eric Rosenquist, Strata Software Limited. * http://www.strataware.com/ * * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Eric Rosenquist. The name of the author may not be used to * endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ /* * Modifications by Lauri Pesonen / lpesonen@clinet.fi, april 1997 * * Implemented LANManager type password response to MS-CHAP challenges. * Now pppd provides both NT style and LANMan style blocks, and the * prefered is set by option "ms-lanman". Default is to use NT. * The hash text (StdText) was taken from Win95 RASAPI32.DLL. * * You should also use DOMAIN\\USERNAME as described in README.MSCHAP80 */ #define USE_CRYPT #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #if MSCHAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "md4.h" #ifndef USE_CRYPT #include "des.h" #endif #include "chap.h" #include "chpms.h" /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ /************************/ /*** LOCAL DATA TYPES ***/ /************************/ typedef struct { u_char LANManResp[24]; u_char NTResp[24]; u_char UseNT; /* If 1, ignore the LANMan response field */ } MS_ChapResponse; /* We use MS_CHAP_RESPONSE_LEN, rather than sizeof(MS_ChapResponse), in case this struct gets padded. */ /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ /* XXX Don't know what to do with these. */ extern void setkey(const char *); extern void encrypt(char *, int); static void DesEncrypt (u_char *, u_char *, u_char *); static void MakeKey (u_char *, u_char *); #ifdef USE_CRYPT static void Expand (u_char *, u_char *); static void Collapse (u_char *, u_char *); #endif static void ChallengeResponse( u_char *challenge, /* IN 8 octets */ u_char *pwHash, /* IN 16 octets */ u_char *response /* OUT 24 octets */ ); static void ChapMS_NT( char *rchallenge, int rchallenge_len, char *secret, int secret_len, MS_ChapResponse *response ); static u_char Get7Bits( u_char *input, int startBit ); /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ void ChapMS( chap_state *cstate, char *rchallenge, int rchallenge_len, char *secret, int secret_len) { MS_ChapResponse response; #ifdef MSLANMAN extern int ms_lanman; #endif #if 0 CHAPDEBUG((LOG_INFO, "ChapMS: secret is '%.*s'\n", secret_len, secret)); #endif BZERO(&response, sizeof(response)); /* Calculate both always */ ChapMS_NT(rchallenge, rchallenge_len, secret, secret_len, &response); #ifdef MSLANMAN ChapMS_LANMan(rchallenge, rchallenge_len, secret, secret_len, &response); /* prefered method is set by option */ response.UseNT = !ms_lanman; #else response.UseNT = 1; #endif BCOPY(&response, cstate->response, MS_CHAP_RESPONSE_LEN); cstate->resp_length = MS_CHAP_RESPONSE_LEN; } /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ static void ChallengeResponse( u_char *challenge, /* IN 8 octets */ u_char *pwHash, /* IN 16 octets */ u_char *response /* OUT 24 octets */) { char ZPasswordHash[21]; BZERO(ZPasswordHash, sizeof(ZPasswordHash)); BCOPY(pwHash, ZPasswordHash, 16); #if 0 log_packet(ZPasswordHash, sizeof(ZPasswordHash), "ChallengeResponse - ZPasswordHash", LOG_DEBUG); #endif DesEncrypt(challenge, ZPasswordHash + 0, response + 0); DesEncrypt(challenge, ZPasswordHash + 7, response + 8); DesEncrypt(challenge, ZPasswordHash + 14, response + 16); #if 0 log_packet(response, 24, "ChallengeResponse - response", LOG_DEBUG); #endif } #ifdef USE_CRYPT static void DesEncrypt( u_char *clear, /* IN 8 octets */ u_char *key, /* IN 7 octets */ u_char *cipher /* OUT 8 octets */) { u_char des_key[8]; u_char crypt_key[66]; u_char des_input[66]; MakeKey(key, des_key); Expand(des_key, crypt_key); setkey(crypt_key); #if 0 CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet input : %02X%02X%02X%02X%02X%02X%02X%02X\n", clear[0], clear[1], clear[2], clear[3], clear[4], clear[5], clear[6], clear[7])); #endif Expand(clear, des_input); encrypt(des_input, 0); Collapse(des_input, cipher); #if 0 CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet output: %02X%02X%02X%02X%02X%02X%02X%02X\n", cipher[0], cipher[1], cipher[2], cipher[3], cipher[4], cipher[5], cipher[6], cipher[7])); #endif } #else /* USE_CRYPT */ static void DesEncrypt( u_char *clear, /* IN 8 octets */ u_char *key, /* IN 7 octets */ u_char *cipher /* OUT 8 octets */) { des_cblock des_key; des_key_schedule key_schedule; MakeKey(key, des_key); des_set_key(&des_key, key_schedule); #if 0 CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet input : %02X%02X%02X%02X%02X%02X%02X%02X\n", clear[0], clear[1], clear[2], clear[3], clear[4], clear[5], clear[6], clear[7])); #endif des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher, key_schedule, 1); #if 0 CHAPDEBUG((LOG_INFO, "DesEncrypt: 8 octet output: %02X%02X%02X%02X%02X%02X%02X%02X\n", cipher[0], cipher[1], cipher[2], cipher[3], cipher[4], cipher[5], cipher[6], cipher[7])); #endif } #endif /* USE_CRYPT */ static u_char Get7Bits( u_char *input, int startBit) { register unsigned int word; word = (unsigned)input[startBit / 8] << 8; word |= (unsigned)input[startBit / 8 + 1]; word >>= 15 - (startBit % 8 + 7); return word & 0xFE; } #ifdef USE_CRYPT /* in == 8-byte string (expanded version of the 56-bit key) * out == 64-byte string where each byte is either 1 or 0 * Note that the low-order "bit" is always ignored by by setkey() */ static void Expand(u_char *in, u_char *out) { int j, c; int i; for(i = 0; i < 64; in++){ c = *in; for(j = 7; j >= 0; j--) { *out++ = (c >> j) & 01; } i += 8; } } /* The inverse of Expand */ static void Collapse(u_char *in, u_char *out) { int j; int i; unsigned int c; for (i = 0; i < 64; i += 8, out++) { c = 0; for (j = 7; j >= 0; j--, in++) { c |= *in << j; } *out = c & 0xff; } } #endif static void MakeKey( u_char *key, /* IN 56 bit DES key missing parity bits */ u_char *des_key /* OUT 64 bit DES key with parity bits added */) { des_key[0] = Get7Bits(key, 0); des_key[1] = Get7Bits(key, 7); des_key[2] = Get7Bits(key, 14); des_key[3] = Get7Bits(key, 21); des_key[4] = Get7Bits(key, 28); des_key[5] = Get7Bits(key, 35); des_key[6] = Get7Bits(key, 42); des_key[7] = Get7Bits(key, 49); #ifndef USE_CRYPT des_set_odd_parity((des_cblock *)des_key); #endif #if 0 CHAPDEBUG((LOG_INFO, "MakeKey: 56-bit input : %02X%02X%02X%02X%02X%02X%02X\n", key[0], key[1], key[2], key[3], key[4], key[5], key[6])); CHAPDEBUG((LOG_INFO, "MakeKey: 64-bit output: %02X%02X%02X%02X%02X%02X%02X%02X\n", des_key[0], des_key[1], des_key[2], des_key[3], des_key[4], des_key[5], des_key[6], des_key[7])); #endif } static void ChapMS_NT( char *rchallenge, int rchallenge_len, char *secret, int secret_len, MS_ChapResponse *response) { int i; MDstruct md4Context; u_char unicodePassword[MAX_NT_PASSWORD * 2]; static int low_byte_first = -1; /* Initialize the Unicode version of the secret (== password). */ /* This implicitly supports 8-bit ISO8859/1 characters. */ BZERO(unicodePassword, sizeof(unicodePassword)); for (i = 0; i < secret_len; i++) { unicodePassword[i * 2] = (u_char)secret[i]; } MDbegin(&md4Context); MDupdate(&md4Context, unicodePassword, secret_len * 2 * 8); /* Unicode is 2 bytes/char, *8 for bit count */ if (low_byte_first == -1) { low_byte_first = (htons((unsigned short int)1) != 1); } if (low_byte_first == 0) { MDreverse((u_long *)&md4Context); /* sfb 961105 */ } MDupdate(&md4Context, NULL, 0); /* Tell MD4 we're done */ ChallengeResponse(rchallenge, (char *)md4Context.buffer, response->NTResp); } #ifdef MSLANMAN static u_char *StdText = (u_char *)"KGS!@#$%"; /* key from rasapi32.dll */ static void ChapMS_LANMan( char *rchallenge, int rchallenge_len, char *secret, int secret_len, MS_ChapResponse *response) { int i; u_char UcasePassword[MAX_NT_PASSWORD]; /* max is actually 14 */ u_char PasswordHash[16]; /* LANMan password is case insensitive */ BZERO(UcasePassword, sizeof(UcasePassword)); for (i = 0; i < secret_len; i++) { UcasePassword[i] = (u_char)toupper(secret[i]); } DesEncrypt( StdText, UcasePassword + 0, PasswordHash + 0 ); DesEncrypt( StdText, UcasePassword + 7, PasswordHash + 8 ); ChallengeResponse(rchallenge, PasswordHash, response->LANManResp); } #endif #endif /* MSCHAP_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/chpms.h000066400000000000000000000055761224274632000233170ustar00rootroot00000000000000/***************************************************************************** * chpms.h - Network Microsoft Challenge Handshake Protocol header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1998 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 98-01-30 Guy Lancaster , Global Election Systems Inc. * Original built from BSD network code. ******************************************************************************/ /* * chap.h - Challenge Handshake Authentication Protocol definitions. * * Copyright (c) 1995 Eric Rosenquist, Strata Software Limited. * http://www.strataware.com/ * * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Eric Rosenquist. The name of the author may not be used to * endorse or promote products derived from this software without * specific prior written permission. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id: chpms.h,v 1.5 2007/12/19 20:47:23 fbernon Exp $ */ #ifndef CHPMS_H #define CHPMS_H #define MAX_NT_PASSWORD 256 /* Maximum number of (Unicode) chars in an NT password */ void ChapMS (chap_state *, char *, int, char *, int); #endif /* CHPMS_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/fsm.c000066400000000000000000000564521224274632000227640ustar00rootroot00000000000000/***************************************************************************** * fsm.c - Network Control Protocol Finite State Machine program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-01 Guy Lancaster , Global Election Systems Inc. * Original based on BSD fsm.c. *****************************************************************************/ /* * fsm.c - {Link, IP} Control Protocol Finite State Machine. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ /* * TODO: * Randomize fsm id on link/init. * Deal with variable outgoing MTU. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "fsm.h" /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ #if PPP_DEBUG static const char *ppperr_strerr[] = { "LS_INITIAL", /* LS_INITIAL 0 */ "LS_STARTING", /* LS_STARTING 1 */ "LS_CLOSED", /* LS_CLOSED 2 */ "LS_STOPPED", /* LS_STOPPED 3 */ "LS_CLOSING", /* LS_CLOSING 4 */ "LS_STOPPING", /* LS_STOPPING 5 */ "LS_REQSENT", /* LS_REQSENT 6 */ "LS_ACKRCVD", /* LS_ACKRCVD 7 */ "LS_ACKSENT", /* LS_ACKSENT 8 */ "LS_OPENED" /* LS_OPENED 9 */ }; #endif /* PPP_DEBUG */ /************************/ /*** LOCAL DATA TYPES ***/ /************************/ /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ static void fsm_timeout (void *); static void fsm_rconfreq (fsm *, u_char, u_char *, int); static void fsm_rconfack (fsm *, int, u_char *, int); static void fsm_rconfnakrej (fsm *, int, int, u_char *, int); static void fsm_rtermreq (fsm *, int, u_char *, int); static void fsm_rtermack (fsm *); static void fsm_rcoderej (fsm *, u_char *, int); static void fsm_sconfreq (fsm *, int); #define PROTO_NAME(f) ((f)->callbacks->proto_name) /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ int peer_mru[NUM_PPP]; /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * fsm_init - Initialize fsm. * * Initialize fsm state. */ void fsm_init(fsm *f) { f->state = LS_INITIAL; f->flags = 0; f->id = 0; /* XXX Start with random id? */ f->timeouttime = FSM_DEFTIMEOUT; f->maxconfreqtransmits = FSM_DEFMAXCONFREQS; f->maxtermtransmits = FSM_DEFMAXTERMREQS; f->maxnakloops = FSM_DEFMAXNAKLOOPS; f->term_reason_len = 0; } /* * fsm_lowerup - The lower layer is up. */ void fsm_lowerup(fsm *f) { int oldState = f->state; LWIP_UNUSED_ARG(oldState); switch( f->state ) { case LS_INITIAL: f->state = LS_CLOSED; break; case LS_STARTING: if( f->flags & OPT_SILENT ) { f->state = LS_STOPPED; } else { /* Send an initial configure-request */ fsm_sconfreq(f, 0); f->state = LS_REQSENT; } break; default: FSMDEBUG((LOG_INFO, "%s: Up event in state %d (%s)!\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); } FSMDEBUG((LOG_INFO, "%s: lowerup state %d (%s) -> %d (%s)\n", PROTO_NAME(f), oldState, ppperr_strerr[oldState], f->state, ppperr_strerr[f->state])); } /* * fsm_lowerdown - The lower layer is down. * * Cancel all timeouts and inform upper layers. */ void fsm_lowerdown(fsm *f) { int oldState = f->state; LWIP_UNUSED_ARG(oldState); switch( f->state ) { case LS_CLOSED: f->state = LS_INITIAL; break; case LS_STOPPED: f->state = LS_STARTING; if( f->callbacks->starting ) { (*f->callbacks->starting)(f); } break; case LS_CLOSING: f->state = LS_INITIAL; UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ break; case LS_STOPPING: case LS_REQSENT: case LS_ACKRCVD: case LS_ACKSENT: f->state = LS_STARTING; UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ break; case LS_OPENED: if( f->callbacks->down ) { (*f->callbacks->down)(f); } f->state = LS_STARTING; break; default: FSMDEBUG((LOG_INFO, "%s: Down event in state %d (%s)!\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); } FSMDEBUG((LOG_INFO, "%s: lowerdown state %d (%s) -> %d (%s)\n", PROTO_NAME(f), oldState, ppperr_strerr[oldState], f->state, ppperr_strerr[f->state])); } /* * fsm_open - Link is allowed to come up. */ void fsm_open(fsm *f) { int oldState = f->state; LWIP_UNUSED_ARG(oldState); switch( f->state ) { case LS_INITIAL: f->state = LS_STARTING; if( f->callbacks->starting ) { (*f->callbacks->starting)(f); } break; case LS_CLOSED: if( f->flags & OPT_SILENT ) { f->state = LS_STOPPED; } else { /* Send an initial configure-request */ fsm_sconfreq(f, 0); f->state = LS_REQSENT; } break; case LS_CLOSING: f->state = LS_STOPPING; /* fall through */ case LS_STOPPED: case LS_OPENED: if( f->flags & OPT_RESTART ) { fsm_lowerdown(f); fsm_lowerup(f); } break; } FSMDEBUG((LOG_INFO, "%s: open state %d (%s) -> %d (%s)\n", PROTO_NAME(f), oldState, ppperr_strerr[oldState], f->state, ppperr_strerr[f->state])); } /* * fsm_close - Start closing connection. * * Cancel timeouts and either initiate close or possibly go directly to * the LS_CLOSED state. */ void fsm_close(fsm *f, char *reason) { int oldState = f->state; LWIP_UNUSED_ARG(oldState); f->term_reason = reason; f->term_reason_len = (reason == NULL? 0: strlen(reason)); switch( f->state ) { case LS_STARTING: f->state = LS_INITIAL; break; case LS_STOPPED: f->state = LS_CLOSED; break; case LS_STOPPING: f->state = LS_CLOSING; break; case LS_REQSENT: case LS_ACKRCVD: case LS_ACKSENT: case LS_OPENED: if( f->state != LS_OPENED ) { UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ } else if( f->callbacks->down ) { (*f->callbacks->down)(f); /* Inform upper layers we're down */ } /* Init restart counter, send Terminate-Request */ f->retransmits = f->maxtermtransmits; fsm_sdata(f, TERMREQ, f->reqid = ++f->id, (u_char *) f->term_reason, f->term_reason_len); TIMEOUT(fsm_timeout, f, f->timeouttime); --f->retransmits; f->state = LS_CLOSING; break; } FSMDEBUG((LOG_INFO, "%s: close reason=%s state %d (%s) -> %d (%s)\n", PROTO_NAME(f), reason, oldState, ppperr_strerr[oldState], f->state, ppperr_strerr[f->state])); } /* * fsm_sdata - Send some data. * * Used for all packets sent to our peer by this module. */ void fsm_sdata( fsm *f, u_char code, u_char id, u_char *data, int datalen) { u_char *outp; int outlen; /* Adjust length to be smaller than MTU */ outp = outpacket_buf[f->unit]; if (datalen > peer_mru[f->unit] - (int)HEADERLEN) { datalen = peer_mru[f->unit] - HEADERLEN; } if (datalen && data != outp + PPP_HDRLEN + HEADERLEN) { BCOPY(data, outp + PPP_HDRLEN + HEADERLEN, datalen); } outlen = datalen + HEADERLEN; MAKEHEADER(outp, f->protocol); PUTCHAR(code, outp); PUTCHAR(id, outp); PUTSHORT(outlen, outp); pppWrite(f->unit, outpacket_buf[f->unit], outlen + PPP_HDRLEN); FSMDEBUG((LOG_INFO, "fsm_sdata(%s): Sent code %d,%d,%d.\n", PROTO_NAME(f), code, id, outlen)); } /* * fsm_input - Input packet. */ void fsm_input(fsm *f, u_char *inpacket, int l) { u_char *inp = inpacket; u_char code, id; int len; /* * Parse header (code, id and length). * If packet too short, drop it. */ if (l < HEADERLEN) { FSMDEBUG((LOG_WARNING, "fsm_input(%x): Rcvd short header.\n", f->protocol)); return; } GETCHAR(code, inp); GETCHAR(id, inp); GETSHORT(len, inp); if (len < HEADERLEN) { FSMDEBUG((LOG_INFO, "fsm_input(%x): Rcvd illegal length.\n", f->protocol)); return; } if (len > l) { FSMDEBUG((LOG_INFO, "fsm_input(%x): Rcvd short packet.\n", f->protocol)); return; } len -= HEADERLEN; /* subtract header length */ if( f->state == LS_INITIAL || f->state == LS_STARTING ) { FSMDEBUG((LOG_INFO, "fsm_input(%x): Rcvd packet in state %d (%s).\n", f->protocol, f->state, ppperr_strerr[f->state])); return; } FSMDEBUG((LOG_INFO, "fsm_input(%s):%d,%d,%d\n", PROTO_NAME(f), code, id, l)); /* * Action depends on code. */ switch (code) { case CONFREQ: fsm_rconfreq(f, id, inp, len); break; case CONFACK: fsm_rconfack(f, id, inp, len); break; case CONFNAK: case CONFREJ: fsm_rconfnakrej(f, code, id, inp, len); break; case TERMREQ: fsm_rtermreq(f, id, inp, len); break; case TERMACK: fsm_rtermack(f); break; case CODEREJ: fsm_rcoderej(f, inp, len); break; default: if( !f->callbacks->extcode || !(*f->callbacks->extcode)(f, code, id, inp, len) ) { fsm_sdata(f, CODEREJ, ++f->id, inpacket, len + HEADERLEN); } break; } } /* * fsm_protreject - Peer doesn't speak this protocol. * * Treat this as a catastrophic error (RXJ-). */ void fsm_protreject(fsm *f) { switch( f->state ) { case LS_CLOSING: UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ /* fall through */ case LS_CLOSED: f->state = LS_CLOSED; if( f->callbacks->finished ) { (*f->callbacks->finished)(f); } break; case LS_STOPPING: case LS_REQSENT: case LS_ACKRCVD: case LS_ACKSENT: UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ /* fall through */ case LS_STOPPED: f->state = LS_STOPPED; if( f->callbacks->finished ) { (*f->callbacks->finished)(f); } break; case LS_OPENED: if( f->callbacks->down ) { (*f->callbacks->down)(f); } /* Init restart counter, send Terminate-Request */ f->retransmits = f->maxtermtransmits; fsm_sdata(f, TERMREQ, f->reqid = ++f->id, (u_char *) f->term_reason, f->term_reason_len); TIMEOUT(fsm_timeout, f, f->timeouttime); --f->retransmits; f->state = LS_STOPPING; break; default: FSMDEBUG((LOG_INFO, "%s: Protocol-reject event in state %d (%s)!\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); } } /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ /* * fsm_timeout - Timeout expired. */ static void fsm_timeout(void *arg) { fsm *f = (fsm *) arg; switch (f->state) { case LS_CLOSING: case LS_STOPPING: if( f->retransmits <= 0 ) { FSMDEBUG((LOG_WARNING, "%s: timeout sending Terminate-Request state=%d (%s)\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); /* * We've waited for an ack long enough. Peer probably heard us. */ f->state = (f->state == LS_CLOSING)? LS_CLOSED: LS_STOPPED; if( f->callbacks->finished ) { (*f->callbacks->finished)(f); } } else { FSMDEBUG((LOG_WARNING, "%s: timeout resending Terminate-Requests state=%d (%s)\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); /* Send Terminate-Request */ fsm_sdata(f, TERMREQ, f->reqid = ++f->id, (u_char *) f->term_reason, f->term_reason_len); TIMEOUT(fsm_timeout, f, f->timeouttime); --f->retransmits; } break; case LS_REQSENT: case LS_ACKRCVD: case LS_ACKSENT: if (f->retransmits <= 0) { FSMDEBUG((LOG_WARNING, "%s: timeout sending Config-Requests state=%d (%s)\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); f->state = LS_STOPPED; if( (f->flags & OPT_PASSIVE) == 0 && f->callbacks->finished ) { (*f->callbacks->finished)(f); } } else { FSMDEBUG((LOG_WARNING, "%s: timeout resending Config-Request state=%d (%s)\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); /* Retransmit the configure-request */ if (f->callbacks->retransmit) { (*f->callbacks->retransmit)(f); } fsm_sconfreq(f, 1); /* Re-send Configure-Request */ if( f->state == LS_ACKRCVD ) { f->state = LS_REQSENT; } } break; default: FSMDEBUG((LOG_INFO, "%s: Timeout event in state %d (%s)!\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); } } /* * fsm_rconfreq - Receive Configure-Request. */ static void fsm_rconfreq(fsm *f, u_char id, u_char *inp, int len) { int code, reject_if_disagree; FSMDEBUG((LOG_INFO, "fsm_rconfreq(%s): Rcvd id %d state=%d (%s)\n", PROTO_NAME(f), id, f->state, ppperr_strerr[f->state])); switch( f->state ) { case LS_CLOSED: /* Go away, we're closed */ fsm_sdata(f, TERMACK, id, NULL, 0); return; case LS_CLOSING: case LS_STOPPING: return; case LS_OPENED: /* Go down and restart negotiation */ if( f->callbacks->down ) { (*f->callbacks->down)(f); /* Inform upper layers */ } fsm_sconfreq(f, 0); /* Send initial Configure-Request */ break; case LS_STOPPED: /* Negotiation started by our peer */ fsm_sconfreq(f, 0); /* Send initial Configure-Request */ f->state = LS_REQSENT; break; } /* * Pass the requested configuration options * to protocol-specific code for checking. */ if (f->callbacks->reqci) { /* Check CI */ reject_if_disagree = (f->nakloops >= f->maxnakloops); code = (*f->callbacks->reqci)(f, inp, &len, reject_if_disagree); } else if (len) { code = CONFREJ; /* Reject all CI */ } else { code = CONFACK; } /* send the Ack, Nak or Rej to the peer */ fsm_sdata(f, (u_char)code, id, inp, len); if (code == CONFACK) { if (f->state == LS_ACKRCVD) { UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ f->state = LS_OPENED; if (f->callbacks->up) { (*f->callbacks->up)(f); /* Inform upper layers */ } } else { f->state = LS_ACKSENT; } f->nakloops = 0; } else { /* we sent CONFACK or CONFREJ */ if (f->state != LS_ACKRCVD) { f->state = LS_REQSENT; } if( code == CONFNAK ) { ++f->nakloops; } } } /* * fsm_rconfack - Receive Configure-Ack. */ static void fsm_rconfack(fsm *f, int id, u_char *inp, int len) { FSMDEBUG((LOG_INFO, "fsm_rconfack(%s): Rcvd id %d state=%d (%s)\n", PROTO_NAME(f), id, f->state, ppperr_strerr[f->state])); if (id != f->reqid || f->seen_ack) { /* Expected id? */ return; /* Nope, toss... */ } if( !(f->callbacks->ackci? (*f->callbacks->ackci)(f, inp, len): (len == 0)) ) { /* Ack is bad - ignore it */ FSMDEBUG((LOG_INFO, "%s: received bad Ack (length %d)\n", PROTO_NAME(f), len)); return; } f->seen_ack = 1; switch (f->state) { case LS_CLOSED: case LS_STOPPED: fsm_sdata(f, TERMACK, (u_char)id, NULL, 0); break; case LS_REQSENT: f->state = LS_ACKRCVD; f->retransmits = f->maxconfreqtransmits; break; case LS_ACKRCVD: /* Huh? an extra valid Ack? oh well... */ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ fsm_sconfreq(f, 0); f->state = LS_REQSENT; break; case LS_ACKSENT: UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ f->state = LS_OPENED; f->retransmits = f->maxconfreqtransmits; if (f->callbacks->up) { (*f->callbacks->up)(f); /* Inform upper layers */ } break; case LS_OPENED: /* Go down and restart negotiation */ if (f->callbacks->down) { (*f->callbacks->down)(f); /* Inform upper layers */ } fsm_sconfreq(f, 0); /* Send initial Configure-Request */ f->state = LS_REQSENT; break; } } /* * fsm_rconfnakrej - Receive Configure-Nak or Configure-Reject. */ static void fsm_rconfnakrej(fsm *f, int code, int id, u_char *inp, int len) { int (*proc) (fsm *, u_char *, int); int ret; FSMDEBUG((LOG_INFO, "fsm_rconfnakrej(%s): Rcvd id %d state=%d (%s)\n", PROTO_NAME(f), id, f->state, ppperr_strerr[f->state])); if (id != f->reqid || f->seen_ack) { /* Expected id? */ return; /* Nope, toss... */ } proc = (code == CONFNAK)? f->callbacks->nakci: f->callbacks->rejci; if (!proc || !((ret = proc(f, inp, len)))) { /* Nak/reject is bad - ignore it */ FSMDEBUG((LOG_INFO, "%s: received bad %s (length %d)\n", PROTO_NAME(f), (code==CONFNAK? "Nak": "reject"), len)); return; } f->seen_ack = 1; switch (f->state) { case LS_CLOSED: case LS_STOPPED: fsm_sdata(f, TERMACK, (u_char)id, NULL, 0); break; case LS_REQSENT: case LS_ACKSENT: /* They didn't agree to what we wanted - try another request */ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ if (ret < 0) { f->state = LS_STOPPED; /* kludge for stopping CCP */ } else { fsm_sconfreq(f, 0); /* Send Configure-Request */ } break; case LS_ACKRCVD: /* Got a Nak/reject when we had already had an Ack?? oh well... */ UNTIMEOUT(fsm_timeout, f); /* Cancel timeout */ fsm_sconfreq(f, 0); f->state = LS_REQSENT; break; case LS_OPENED: /* Go down and restart negotiation */ if (f->callbacks->down) { (*f->callbacks->down)(f); /* Inform upper layers */ } fsm_sconfreq(f, 0); /* Send initial Configure-Request */ f->state = LS_REQSENT; break; } } /* * fsm_rtermreq - Receive Terminate-Req. */ static void fsm_rtermreq(fsm *f, int id, u_char *p, int len) { LWIP_UNUSED_ARG(p); FSMDEBUG((LOG_INFO, "fsm_rtermreq(%s): Rcvd id %d state=%d (%s)\n", PROTO_NAME(f), id, f->state, ppperr_strerr[f->state])); switch (f->state) { case LS_ACKRCVD: case LS_ACKSENT: f->state = LS_REQSENT; /* Start over but keep trying */ break; case LS_OPENED: if (len > 0) { FSMDEBUG((LOG_INFO, "%s terminated by peer (%x)\n", PROTO_NAME(f), p)); } else { FSMDEBUG((LOG_INFO, "%s terminated by peer\n", PROTO_NAME(f))); } if (f->callbacks->down) { (*f->callbacks->down)(f); /* Inform upper layers */ } f->retransmits = 0; f->state = LS_STOPPING; TIMEOUT(fsm_timeout, f, f->timeouttime); break; } fsm_sdata(f, TERMACK, (u_char)id, NULL, 0); } /* * fsm_rtermack - Receive Terminate-Ack. */ static void fsm_rtermack(fsm *f) { FSMDEBUG((LOG_INFO, "fsm_rtermack(%s): state=%d (%s)\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); switch (f->state) { case LS_CLOSING: UNTIMEOUT(fsm_timeout, f); f->state = LS_CLOSED; if( f->callbacks->finished ) { (*f->callbacks->finished)(f); } break; case LS_STOPPING: UNTIMEOUT(fsm_timeout, f); f->state = LS_STOPPED; if( f->callbacks->finished ) { (*f->callbacks->finished)(f); } break; case LS_ACKRCVD: f->state = LS_REQSENT; break; case LS_OPENED: if (f->callbacks->down) { (*f->callbacks->down)(f); /* Inform upper layers */ } fsm_sconfreq(f, 0); break; } } /* * fsm_rcoderej - Receive an Code-Reject. */ static void fsm_rcoderej(fsm *f, u_char *inp, int len) { u_char code, id; FSMDEBUG((LOG_INFO, "fsm_rcoderej(%s): state=%d (%s)\n", PROTO_NAME(f), f->state, ppperr_strerr[f->state])); if (len < HEADERLEN) { FSMDEBUG((LOG_INFO, "fsm_rcoderej: Rcvd short Code-Reject packet!\n")); return; } GETCHAR(code, inp); GETCHAR(id, inp); FSMDEBUG((LOG_WARNING, "%s: Rcvd Code-Reject for code %d, id %d\n", PROTO_NAME(f), code, id)); if( f->state == LS_ACKRCVD ) { f->state = LS_REQSENT; } } /* * fsm_sconfreq - Send a Configure-Request. */ static void fsm_sconfreq(fsm *f, int retransmit) { u_char *outp; int cilen; if( f->state != LS_REQSENT && f->state != LS_ACKRCVD && f->state != LS_ACKSENT ) { /* Not currently negotiating - reset options */ if( f->callbacks->resetci ) { (*f->callbacks->resetci)(f); } f->nakloops = 0; } if( !retransmit ) { /* New request - reset retransmission counter, use new ID */ f->retransmits = f->maxconfreqtransmits; f->reqid = ++f->id; } f->seen_ack = 0; /* * Make up the request packet */ outp = outpacket_buf[f->unit] + PPP_HDRLEN + HEADERLEN; if( f->callbacks->cilen && f->callbacks->addci ) { cilen = (*f->callbacks->cilen)(f); if( cilen > peer_mru[f->unit] - (int)HEADERLEN ) { cilen = peer_mru[f->unit] - HEADERLEN; } if (f->callbacks->addci) { (*f->callbacks->addci)(f, outp, &cilen); } } else { cilen = 0; } /* send the request to our peer */ fsm_sdata(f, CONFREQ, f->reqid, outp, cilen); /* start the retransmit timer */ --f->retransmits; TIMEOUT(fsm_timeout, f, f->timeouttime); FSMDEBUG((LOG_INFO, "%s: sending Configure-Request, id %d\n", PROTO_NAME(f), f->reqid)); } #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/fsm.h000066400000000000000000000174701224274632000227660ustar00rootroot00000000000000/***************************************************************************** * fsm.h - Network Control Protocol Finite State Machine header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * Copyright (c) 1997 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-11-05 Guy Lancaster , Global Election Systems Inc. * Original based on BSD code. *****************************************************************************/ /* * fsm.h - {Link, IP} Control Protocol Finite State Machine definitions. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id: fsm.h,v 1.4 2007/12/19 20:47:23 fbernon Exp $ */ #ifndef FSM_H #define FSM_H /***************************************************************************** ************************* PUBLIC DEFINITIONS ********************************* *****************************************************************************/ /* * LCP Packet header = Code, id, length. */ #define HEADERLEN (sizeof (u_char) + sizeof (u_char) + sizeof (u_short)) /* * CP (LCP, IPCP, etc.) codes. */ #define CONFREQ 1 /* Configuration Request */ #define CONFACK 2 /* Configuration Ack */ #define CONFNAK 3 /* Configuration Nak */ #define CONFREJ 4 /* Configuration Reject */ #define TERMREQ 5 /* Termination Request */ #define TERMACK 6 /* Termination Ack */ #define CODEREJ 7 /* Code Reject */ /* * Link states. */ #define LS_INITIAL 0 /* Down, hasn't been opened */ #define LS_STARTING 1 /* Down, been opened */ #define LS_CLOSED 2 /* Up, hasn't been opened */ #define LS_STOPPED 3 /* Open, waiting for down event */ #define LS_CLOSING 4 /* Terminating the connection, not open */ #define LS_STOPPING 5 /* Terminating, but open */ #define LS_REQSENT 6 /* We've sent a Config Request */ #define LS_ACKRCVD 7 /* We've received a Config Ack */ #define LS_ACKSENT 8 /* We've sent a Config Ack */ #define LS_OPENED 9 /* Connection available */ /* * Flags - indicate options controlling FSM operation */ #define OPT_PASSIVE 1 /* Don't die if we don't get a response */ #define OPT_RESTART 2 /* Treat 2nd OPEN as DOWN, UP */ #define OPT_SILENT 4 /* Wait for peer to speak first */ /***************************************************************************** ************************* PUBLIC DATA TYPES ********************************** *****************************************************************************/ /* * Each FSM is described by an fsm structure and fsm callbacks. */ typedef struct fsm { int unit; /* Interface unit number */ u_short protocol; /* Data Link Layer Protocol field value */ int state; /* State */ int flags; /* Contains option bits */ u_char id; /* Current id */ u_char reqid; /* Current request id */ u_char seen_ack; /* Have received valid Ack/Nak/Rej to Req */ int timeouttime; /* Timeout time in milliseconds */ int maxconfreqtransmits; /* Maximum Configure-Request transmissions */ int retransmits; /* Number of retransmissions left */ int maxtermtransmits; /* Maximum Terminate-Request transmissions */ int nakloops; /* Number of nak loops since last ack */ int maxnakloops; /* Maximum number of nak loops tolerated */ struct fsm_callbacks* callbacks; /* Callback routines */ char* term_reason; /* Reason for closing protocol */ int term_reason_len; /* Length of term_reason */ } fsm; typedef struct fsm_callbacks { void (*resetci)(fsm*); /* Reset our Configuration Information */ int (*cilen)(fsm*); /* Length of our Configuration Information */ void (*addci)(fsm*, u_char*, int*); /* Add our Configuration Information */ int (*ackci)(fsm*, u_char*, int); /* ACK our Configuration Information */ int (*nakci)(fsm*, u_char*, int); /* NAK our Configuration Information */ int (*rejci)(fsm*, u_char*, int); /* Reject our Configuration Information */ int (*reqci)(fsm*, u_char*, int*, int); /* Request peer's Configuration Information */ void (*up)(fsm*); /* Called when fsm reaches LS_OPENED state */ void (*down)(fsm*); /* Called when fsm leaves LS_OPENED state */ void (*starting)(fsm*); /* Called when we want the lower layer */ void (*finished)(fsm*); /* Called when we don't want the lower layer */ void (*protreject)(int); /* Called when Protocol-Reject received */ void (*retransmit)(fsm*); /* Retransmission is necessary */ int (*extcode)(fsm*, int, u_char, u_char*, int); /* Called when unknown code received */ char *proto_name; /* String name for protocol (for messages) */ } fsm_callbacks; /***************************************************************************** *********************** PUBLIC DATA STRUCTURES ******************************* *****************************************************************************/ /* * Variables */ extern int peer_mru[]; /* currently negotiated peer MRU (per unit) */ /***************************************************************************** ************************** PUBLIC FUNCTIONS ********************************** *****************************************************************************/ /* * Prototypes */ void fsm_init (fsm*); void fsm_lowerup (fsm*); void fsm_lowerdown (fsm*); void fsm_open (fsm*); void fsm_close (fsm*, char*); void fsm_input (fsm*, u_char*, int); void fsm_protreject (fsm*); void fsm_sdata (fsm*, u_char, u_char, u_char*, int); #endif /* FSM_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/ipcp.c000066400000000000000000001147171224274632000231310ustar00rootroot00000000000000/***************************************************************************** * ipcp.c - Network PPP IP Control Protocol program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-08 Guy Lancaster , Global Election Systems Inc. * Original. *****************************************************************************/ /* * ipcp.c - PPP IP Control Protocol. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "auth.h" #include "fsm.h" #include "vj.h" #include "ipcp.h" #include /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ /* #define OLD_CI_ADDRS 1 */ /* Support deprecated address negotiation. */ /* * Lengths of configuration options. */ #define CILEN_VOID 2 #define CILEN_COMPRESS 4 /* min length for compression protocol opt. */ #define CILEN_VJ 6 /* length for RFC1332 Van-Jacobson opt. */ #define CILEN_ADDR 6 /* new-style single address option */ #define CILEN_ADDRS 10 /* old-style dual address option */ /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ /* * Callbacks for fsm code. (CI = Configuration Information) */ static void ipcp_resetci (fsm *); /* Reset our CI */ static int ipcp_cilen (fsm *); /* Return length of our CI */ static void ipcp_addci (fsm *, u_char *, int *); /* Add our CI */ static int ipcp_ackci (fsm *, u_char *, int); /* Peer ack'd our CI */ static int ipcp_nakci (fsm *, u_char *, int); /* Peer nak'd our CI */ static int ipcp_rejci (fsm *, u_char *, int); /* Peer rej'd our CI */ static int ipcp_reqci (fsm *, u_char *, int *, int); /* Rcv CI */ static void ipcp_up (fsm *); /* We're UP */ static void ipcp_down (fsm *); /* We're DOWN */ #if 0 static void ipcp_script (fsm *, char *); /* Run an up/down script */ #endif static void ipcp_finished (fsm *); /* Don't need lower layer */ /* * Protocol entry points from main code. */ static void ipcp_init (int); static void ipcp_open (int); static void ipcp_close (int, char *); static void ipcp_lowerup (int); static void ipcp_lowerdown (int); static void ipcp_input (int, u_char *, int); static void ipcp_protrej (int); static void ipcp_clear_addrs (int); #define CODENAME(x) ((x) == CONFACK ? "ACK" : \ (x) == CONFNAK ? "NAK" : "REJ") /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ /* global vars */ ipcp_options ipcp_wantoptions[NUM_PPP]; /* Options that we want to request */ ipcp_options ipcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */ ipcp_options ipcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */ ipcp_options ipcp_hisoptions[NUM_PPP]; /* Options that we ack'd */ fsm ipcp_fsm[NUM_PPP]; /* IPCP fsm structure */ struct protent ipcp_protent = { PPP_IPCP, ipcp_init, ipcp_input, ipcp_protrej, ipcp_lowerup, ipcp_lowerdown, ipcp_open, ipcp_close, #if 0 ipcp_printpkt, NULL, #endif 1, "IPCP", #if 0 ip_check_options, NULL, ip_active_pkt #endif }; /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ /* local vars */ static int cis_received[NUM_PPP]; /* # Conf-Reqs received */ static int default_route_set[NUM_PPP]; /* Have set up a default route */ static fsm_callbacks ipcp_callbacks = { /* IPCP callback routines */ ipcp_resetci, /* Reset our Configuration Information */ ipcp_cilen, /* Length of our Configuration Information */ ipcp_addci, /* Add our Configuration Information */ ipcp_ackci, /* ACK our Configuration Information */ ipcp_nakci, /* NAK our Configuration Information */ ipcp_rejci, /* Reject our Configuration Information */ ipcp_reqci, /* Request peer's Configuration Information */ ipcp_up, /* Called when fsm reaches LS_OPENED state */ ipcp_down, /* Called when fsm leaves LS_OPENED state */ NULL, /* Called when we want the lower layer up */ ipcp_finished, /* Called when we want the lower layer down */ NULL, /* Called when Protocol-Reject received */ NULL, /* Retransmission is necessary */ NULL, /* Called to handle protocol-specific codes */ "IPCP" /* String name of protocol */ }; /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ /* * Non-standard inet_ntoa left here for compat with original ppp * sources. Assumes u32_t instead of struct in_addr. */ char * _inet_ntoa(u32_t n) { struct in_addr ia; ia.s_addr = n; return inet_ntoa(ia); } #define inet_ntoa _inet_ntoa /* * ipcp_init - Initialize IPCP. */ static void ipcp_init(int unit) { fsm *f = &ipcp_fsm[unit]; ipcp_options *wo = &ipcp_wantoptions[unit]; ipcp_options *ao = &ipcp_allowoptions[unit]; f->unit = unit; f->protocol = PPP_IPCP; f->callbacks = &ipcp_callbacks; fsm_init(&ipcp_fsm[unit]); memset(wo, 0, sizeof(*wo)); memset(ao, 0, sizeof(*ao)); wo->neg_addr = 1; wo->ouraddr = 0; #if VJ_SUPPORT wo->neg_vj = 1; #else /* VJ_SUPPORT */ wo->neg_vj = 0; #endif /* VJ_SUPPORT */ wo->vj_protocol = IPCP_VJ_COMP; wo->maxslotindex = MAX_SLOTS - 1; wo->cflag = 0; wo->default_route = 1; ao->neg_addr = 1; #if VJ_SUPPORT ao->neg_vj = 1; #else /* VJ_SUPPORT */ ao->neg_vj = 0; #endif /* VJ_SUPPORT */ ao->maxslotindex = MAX_SLOTS - 1; ao->cflag = 1; ao->default_route = 1; } /* * ipcp_open - IPCP is allowed to come up. */ static void ipcp_open(int unit) { fsm_open(&ipcp_fsm[unit]); } /* * ipcp_close - Take IPCP down. */ static void ipcp_close(int unit, char *reason) { fsm_close(&ipcp_fsm[unit], reason); } /* * ipcp_lowerup - The lower layer is up. */ static void ipcp_lowerup(int unit) { fsm_lowerup(&ipcp_fsm[unit]); } /* * ipcp_lowerdown - The lower layer is down. */ static void ipcp_lowerdown(int unit) { fsm_lowerdown(&ipcp_fsm[unit]); } /* * ipcp_input - Input IPCP packet. */ static void ipcp_input(int unit, u_char *p, int len) { fsm_input(&ipcp_fsm[unit], p, len); } /* * ipcp_protrej - A Protocol-Reject was received for IPCP. * * Pretend the lower layer went down, so we shut up. */ static void ipcp_protrej(int unit) { fsm_lowerdown(&ipcp_fsm[unit]); } /* * ipcp_resetci - Reset our CI. */ static void ipcp_resetci(fsm *f) { ipcp_options *wo = &ipcp_wantoptions[f->unit]; wo->req_addr = wo->neg_addr && ipcp_allowoptions[f->unit].neg_addr; if (wo->ouraddr == 0) { wo->accept_local = 1; } if (wo->hisaddr == 0) { wo->accept_remote = 1; } /* Request DNS addresses from the peer */ wo->req_dns1 = ppp_settings.usepeerdns; wo->req_dns2 = ppp_settings.usepeerdns; ipcp_gotoptions[f->unit] = *wo; cis_received[f->unit] = 0; } /* * ipcp_cilen - Return length of our CI. */ static int ipcp_cilen(fsm *f) { ipcp_options *go = &ipcp_gotoptions[f->unit]; ipcp_options *wo = &ipcp_wantoptions[f->unit]; ipcp_options *ho = &ipcp_hisoptions[f->unit]; #define LENCIVJ(neg, old) (neg ? (old? CILEN_COMPRESS : CILEN_VJ) : 0) #define LENCIADDR(neg, old) (neg ? (old? CILEN_ADDRS : CILEN_ADDR) : 0) #define LENCIDNS(neg) (neg ? (CILEN_ADDR) : 0) /* * First see if we want to change our options to the old * forms because we have received old forms from the peer. */ if (wo->neg_addr && !go->neg_addr && !go->old_addrs) { /* use the old style of address negotiation */ go->neg_addr = 1; go->old_addrs = 1; } if (wo->neg_vj && !go->neg_vj && !go->old_vj) { /* try an older style of VJ negotiation */ if (cis_received[f->unit] == 0) { /* keep trying the new style until we see some CI from the peer */ go->neg_vj = 1; } else { /* use the old style only if the peer did */ if (ho->neg_vj && ho->old_vj) { go->neg_vj = 1; go->old_vj = 1; go->vj_protocol = ho->vj_protocol; } } } return (LENCIADDR(go->neg_addr, go->old_addrs) + LENCIVJ(go->neg_vj, go->old_vj) + LENCIDNS(go->req_dns1) + LENCIDNS(go->req_dns2)); } /* * ipcp_addci - Add our desired CIs to a packet. */ static void ipcp_addci(fsm *f, u_char *ucp, int *lenp) { ipcp_options *go = &ipcp_gotoptions[f->unit]; int len = *lenp; #define ADDCIVJ(opt, neg, val, old, maxslotindex, cflag) \ if (neg) { \ int vjlen = old? CILEN_COMPRESS : CILEN_VJ; \ if (len >= vjlen) { \ PUTCHAR(opt, ucp); \ PUTCHAR(vjlen, ucp); \ PUTSHORT(val, ucp); \ if (!old) { \ PUTCHAR(maxslotindex, ucp); \ PUTCHAR(cflag, ucp); \ } \ len -= vjlen; \ } else { \ neg = 0; \ } \ } #define ADDCIADDR(opt, neg, old, val1, val2) \ if (neg) { \ int addrlen = (old? CILEN_ADDRS: CILEN_ADDR); \ if (len >= addrlen) { \ u32_t l; \ PUTCHAR(opt, ucp); \ PUTCHAR(addrlen, ucp); \ l = ntohl(val1); \ PUTLONG(l, ucp); \ if (old) { \ l = ntohl(val2); \ PUTLONG(l, ucp); \ } \ len -= addrlen; \ } else { \ neg = 0; \ } \ } #define ADDCIDNS(opt, neg, addr) \ if (neg) { \ if (len >= CILEN_ADDR) { \ u32_t l; \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_ADDR, ucp); \ l = ntohl(addr); \ PUTLONG(l, ucp); \ len -= CILEN_ADDR; \ } else { \ neg = 0; \ } \ } ADDCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), go->neg_addr, go->old_addrs, go->ouraddr, go->hisaddr); ADDCIVJ(CI_COMPRESSTYPE, go->neg_vj, go->vj_protocol, go->old_vj, go->maxslotindex, go->cflag); ADDCIDNS(CI_MS_DNS1, go->req_dns1, go->dnsaddr[0]); ADDCIDNS(CI_MS_DNS2, go->req_dns2, go->dnsaddr[1]); *lenp -= len; } /* * ipcp_ackci - Ack our CIs. * * Returns: * 0 - Ack was bad. * 1 - Ack was good. */ static int ipcp_ackci(fsm *f, u_char *p, int len) { ipcp_options *go = &ipcp_gotoptions[f->unit]; u_short cilen, citype, cishort; u32_t cilong; u_char cimaxslotindex, cicflag; /* * CIs must be in exactly the same order that we sent... * Check packet length and CI length at each step. * If we find any deviations, then this packet is bad. */ #define ACKCIVJ(opt, neg, val, old, maxslotindex, cflag) \ if (neg) { \ int vjlen = old? CILEN_COMPRESS : CILEN_VJ; \ if ((len -= vjlen) < 0) { \ goto bad; \ } \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != vjlen || \ citype != opt) { \ goto bad; \ } \ GETSHORT(cishort, p); \ if (cishort != val) { \ goto bad; \ } \ if (!old) { \ GETCHAR(cimaxslotindex, p); \ if (cimaxslotindex != maxslotindex) { \ goto bad; \ } \ GETCHAR(cicflag, p); \ if (cicflag != cflag) { \ goto bad; \ } \ } \ } #define ACKCIADDR(opt, neg, old, val1, val2) \ if (neg) { \ int addrlen = (old? CILEN_ADDRS: CILEN_ADDR); \ u32_t l; \ if ((len -= addrlen) < 0) { \ goto bad; \ } \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != addrlen || \ citype != opt) { \ goto bad; \ } \ GETLONG(l, p); \ cilong = htonl(l); \ if (val1 != cilong) { \ goto bad; \ } \ if (old) { \ GETLONG(l, p); \ cilong = htonl(l); \ if (val2 != cilong) { \ goto bad; \ } \ } \ } #define ACKCIDNS(opt, neg, addr) \ if (neg) { \ u32_t l; \ if ((len -= CILEN_ADDR) < 0) { \ goto bad; \ } \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_ADDR || \ citype != opt) { \ goto bad; \ } \ GETLONG(l, p); \ cilong = htonl(l); \ if (addr != cilong) { \ goto bad; \ } \ } ACKCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), go->neg_addr, go->old_addrs, go->ouraddr, go->hisaddr); ACKCIVJ(CI_COMPRESSTYPE, go->neg_vj, go->vj_protocol, go->old_vj, go->maxslotindex, go->cflag); ACKCIDNS(CI_MS_DNS1, go->req_dns1, go->dnsaddr[0]); ACKCIDNS(CI_MS_DNS2, go->req_dns2, go->dnsaddr[1]); /* * If there are any remaining CIs, then this packet is bad. */ if (len != 0) { goto bad; } return (1); bad: IPCPDEBUG((LOG_INFO, "ipcp_ackci: received bad Ack!\n")); return (0); } /* * ipcp_nakci - Peer has sent a NAK for some of our CIs. * This should not modify any state if the Nak is bad * or if IPCP is in the LS_OPENED state. * * Returns: * 0 - Nak was bad. * 1 - Nak was good. */ static int ipcp_nakci(fsm *f, u_char *p, int len) { ipcp_options *go = &ipcp_gotoptions[f->unit]; u_char cimaxslotindex, cicflag; u_char citype, cilen, *next; u_short cishort; u32_t ciaddr1, ciaddr2, l, cidnsaddr; ipcp_options no; /* options we've seen Naks for */ ipcp_options try; /* options to request next time */ BZERO(&no, sizeof(no)); try = *go; /* * Any Nak'd CIs must be in exactly the same order that we sent. * Check packet length and CI length at each step. * If we find any deviations, then this packet is bad. */ #define NAKCIADDR(opt, neg, old, code) \ if (go->neg && \ len >= (cilen = (old? CILEN_ADDRS: CILEN_ADDR)) && \ p[1] == cilen && \ p[0] == opt) { \ len -= cilen; \ INCPTR(2, p); \ GETLONG(l, p); \ ciaddr1 = htonl(l); \ if (old) { \ GETLONG(l, p); \ ciaddr2 = htonl(l); \ no.old_addrs = 1; \ } else { \ ciaddr2 = 0; \ } \ no.neg = 1; \ code \ } #define NAKCIVJ(opt, neg, code) \ if (go->neg && \ ((cilen = p[1]) == CILEN_COMPRESS || cilen == CILEN_VJ) && \ len >= cilen && \ p[0] == opt) { \ len -= cilen; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ no.neg = 1; \ code \ } #define NAKCIDNS(opt, neg, code) \ if (go->neg && \ ((cilen = p[1]) == CILEN_ADDR) && \ len >= cilen && \ p[0] == opt) { \ len -= cilen; \ INCPTR(2, p); \ GETLONG(l, p); \ cidnsaddr = htonl(l); \ no.neg = 1; \ code \ } /* * Accept the peer's idea of {our,his} address, if different * from our idea, only if the accept_{local,remote} flag is set. */ NAKCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), neg_addr, go->old_addrs, if (go->accept_local && ciaddr1) { /* Do we know our address? */ try.ouraddr = ciaddr1; IPCPDEBUG((LOG_INFO, "local IP address %s\n", inet_ntoa(ciaddr1))); } if (go->accept_remote && ciaddr2) { /* Does he know his? */ try.hisaddr = ciaddr2; IPCPDEBUG((LOG_INFO, "remote IP address %s\n", inet_ntoa(ciaddr2))); } ); /* * Accept the peer's value of maxslotindex provided that it * is less than what we asked for. Turn off slot-ID compression * if the peer wants. Send old-style compress-type option if * the peer wants. */ NAKCIVJ(CI_COMPRESSTYPE, neg_vj, if (cilen == CILEN_VJ) { GETCHAR(cimaxslotindex, p); GETCHAR(cicflag, p); if (cishort == IPCP_VJ_COMP) { try.old_vj = 0; if (cimaxslotindex < go->maxslotindex) { try.maxslotindex = cimaxslotindex; } if (!cicflag) { try.cflag = 0; } } else { try.neg_vj = 0; } } else { if (cishort == IPCP_VJ_COMP || cishort == IPCP_VJ_COMP_OLD) { try.old_vj = 1; try.vj_protocol = cishort; } else { try.neg_vj = 0; } } ); NAKCIDNS(CI_MS_DNS1, req_dns1, try.dnsaddr[0] = cidnsaddr; IPCPDEBUG((LOG_INFO, "primary DNS address %s\n", inet_ntoa(cidnsaddr))); ); NAKCIDNS(CI_MS_DNS2, req_dns2, try.dnsaddr[1] = cidnsaddr; IPCPDEBUG((LOG_INFO, "secondary DNS address %s\n", inet_ntoa(cidnsaddr))); ); /* * There may be remaining CIs, if the peer is requesting negotiation * on an option that we didn't include in our request packet. * If they want to negotiate about IP addresses, we comply. * If they want us to ask for compression, we refuse. */ while (len > CILEN_VOID) { GETCHAR(citype, p); GETCHAR(cilen, p); if( (len -= cilen) < 0 ) { goto bad; } next = p + cilen - 2; switch (citype) { case CI_COMPRESSTYPE: if (go->neg_vj || no.neg_vj || (cilen != CILEN_VJ && cilen != CILEN_COMPRESS)) { goto bad; } no.neg_vj = 1; break; case CI_ADDRS: if ((go->neg_addr && go->old_addrs) || no.old_addrs || cilen != CILEN_ADDRS) { goto bad; } try.neg_addr = 1; try.old_addrs = 1; GETLONG(l, p); ciaddr1 = htonl(l); if (ciaddr1 && go->accept_local) { try.ouraddr = ciaddr1; } GETLONG(l, p); ciaddr2 = htonl(l); if (ciaddr2 && go->accept_remote) { try.hisaddr = ciaddr2; } no.old_addrs = 1; break; case CI_ADDR: if (go->neg_addr || no.neg_addr || cilen != CILEN_ADDR) { goto bad; } try.old_addrs = 0; GETLONG(l, p); ciaddr1 = htonl(l); if (ciaddr1 && go->accept_local) { try.ouraddr = ciaddr1; } if (try.ouraddr != 0) { try.neg_addr = 1; } no.neg_addr = 1; break; } p = next; } /* If there is still anything left, this packet is bad. */ if (len != 0) { goto bad; } /* * OK, the Nak is good. Now we can update state. */ if (f->state != LS_OPENED) { *go = try; } return 1; bad: IPCPDEBUG((LOG_INFO, "ipcp_nakci: received bad Nak!\n")); return 0; } /* * ipcp_rejci - Reject some of our CIs. */ static int ipcp_rejci(fsm *f, u_char *p, int len) { ipcp_options *go = &ipcp_gotoptions[f->unit]; u_char cimaxslotindex, ciflag, cilen; u_short cishort; u32_t cilong; ipcp_options try; /* options to request next time */ try = *go; /* * Any Rejected CIs must be in exactly the same order that we sent. * Check packet length and CI length at each step. * If we find any deviations, then this packet is bad. */ #define REJCIADDR(opt, neg, old, val1, val2) \ if (go->neg && \ len >= (cilen = old? CILEN_ADDRS: CILEN_ADDR) && \ p[1] == cilen && \ p[0] == opt) { \ u32_t l; \ len -= cilen; \ INCPTR(2, p); \ GETLONG(l, p); \ cilong = htonl(l); \ /* Check rejected value. */ \ if (cilong != val1) { \ goto bad; \ } \ if (old) { \ GETLONG(l, p); \ cilong = htonl(l); \ /* Check rejected value. */ \ if (cilong != val2) { \ goto bad; \ } \ } \ try.neg = 0; \ } #define REJCIVJ(opt, neg, val, old, maxslot, cflag) \ if (go->neg && \ p[1] == (old? CILEN_COMPRESS : CILEN_VJ) && \ len >= p[1] && \ p[0] == opt) { \ len -= p[1]; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ /* Check rejected value. */ \ if (cishort != val) { \ goto bad; \ } \ if (!old) { \ GETCHAR(cimaxslotindex, p); \ if (cimaxslotindex != maxslot) { \ goto bad; \ } \ GETCHAR(ciflag, p); \ if (ciflag != cflag) { \ goto bad; \ } \ } \ try.neg = 0; \ } #define REJCIDNS(opt, neg, dnsaddr) \ if (go->neg && \ ((cilen = p[1]) == CILEN_ADDR) && \ len >= cilen && \ p[0] == opt) { \ u32_t l; \ len -= cilen; \ INCPTR(2, p); \ GETLONG(l, p); \ cilong = htonl(l); \ /* Check rejected value. */ \ if (cilong != dnsaddr) { \ goto bad; \ } \ try.neg = 0; \ } REJCIADDR((go->old_addrs? CI_ADDRS: CI_ADDR), neg_addr, go->old_addrs, go->ouraddr, go->hisaddr); REJCIVJ(CI_COMPRESSTYPE, neg_vj, go->vj_protocol, go->old_vj, go->maxslotindex, go->cflag); REJCIDNS(CI_MS_DNS1, req_dns1, go->dnsaddr[0]); REJCIDNS(CI_MS_DNS2, req_dns2, go->dnsaddr[1]); /* * If there are any remaining CIs, then this packet is bad. */ if (len != 0) { goto bad; } /* * Now we can update state. */ if (f->state != LS_OPENED) { *go = try; } return 1; bad: IPCPDEBUG((LOG_INFO, "ipcp_rejci: received bad Reject!\n")); return 0; } /* * ipcp_reqci - Check the peer's requested CIs and send appropriate response. * * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified * appropriately. If reject_if_disagree is non-zero, doesn't return * CONFNAK; returns CONFREJ if it can't return CONFACK. */ static int ipcp_reqci(fsm *f, u_char *inp/* Requested CIs */,int *len/* Length of requested CIs */,int reject_if_disagree) { ipcp_options *wo = &ipcp_wantoptions[f->unit]; ipcp_options *ho = &ipcp_hisoptions[f->unit]; ipcp_options *ao = &ipcp_allowoptions[f->unit]; #ifdef OLD_CI_ADDRS ipcp_options *go = &ipcp_gotoptions[f->unit]; #endif u_char *cip, *next; /* Pointer to current and next CIs */ u_short cilen, citype; /* Parsed len, type */ u_short cishort; /* Parsed short value */ u32_t tl, ciaddr1; /* Parsed address values */ #ifdef OLD_CI_ADDRS u32_t ciaddr2; /* Parsed address values */ #endif int rc = CONFACK; /* Final packet return code */ int orc; /* Individual option return code */ u_char *p; /* Pointer to next char to parse */ u_char *ucp = inp; /* Pointer to current output char */ int l = *len; /* Length left */ u_char maxslotindex, cflag; int d; cis_received[f->unit] = 1; /* * Reset all his options. */ BZERO(ho, sizeof(*ho)); /* * Process all his options. */ next = inp; while (l) { orc = CONFACK; /* Assume success */ cip = p = next; /* Remember begining of CI */ if (l < 2 || /* Not enough data for CI header or */ p[1] < 2 || /* CI length too small or */ p[1] > l) { /* CI length too big? */ IPCPDEBUG((LOG_INFO, "ipcp_reqci: bad CI length!\n")); orc = CONFREJ; /* Reject bad CI */ cilen = l; /* Reject till end of packet */ l = 0; /* Don't loop again */ goto endswitch; } GETCHAR(citype, p); /* Parse CI type */ GETCHAR(cilen, p); /* Parse CI length */ l -= cilen; /* Adjust remaining length */ next += cilen; /* Step to next CI */ switch (citype) { /* Check CI type */ #ifdef OLD_CI_ADDRS /* Need to save space... */ case CI_ADDRS: IPCPDEBUG((LOG_INFO, "ipcp_reqci: received ADDRS\n")); if (!ao->neg_addr || cilen != CILEN_ADDRS) { /* Check CI length */ orc = CONFREJ; /* Reject CI */ break; } /* * If he has no address, or if we both have his address but * disagree about it, then NAK it with our idea. * In particular, if we don't know his address, but he does, * then accept it. */ GETLONG(tl, p); /* Parse source address (his) */ ciaddr1 = htonl(tl); IPCPDEBUG((LOG_INFO, "his addr %s\n", inet_ntoa(ciaddr1))); if (ciaddr1 != wo->hisaddr && (ciaddr1 == 0 || !wo->accept_remote)) { orc = CONFNAK; if (!reject_if_disagree) { DECPTR(sizeof(u32_t), p); tl = ntohl(wo->hisaddr); PUTLONG(tl, p); } } else if (ciaddr1 == 0 && wo->hisaddr == 0) { /* * If neither we nor he knows his address, reject the option. */ orc = CONFREJ; wo->req_addr = 0; /* don't NAK with 0.0.0.0 later */ break; } /* * If he doesn't know our address, or if we both have our address * but disagree about it, then NAK it with our idea. */ GETLONG(tl, p); /* Parse desination address (ours) */ ciaddr2 = htonl(tl); IPCPDEBUG((LOG_INFO, "our addr %s\n", inet_ntoa(ciaddr2))); if (ciaddr2 != wo->ouraddr) { if (ciaddr2 == 0 || !wo->accept_local) { orc = CONFNAK; if (!reject_if_disagree) { DECPTR(sizeof(u32_t), p); tl = ntohl(wo->ouraddr); PUTLONG(tl, p); } } else { go->ouraddr = ciaddr2; /* accept peer's idea */ } } ho->neg_addr = 1; ho->old_addrs = 1; ho->hisaddr = ciaddr1; ho->ouraddr = ciaddr2; break; #endif case CI_ADDR: if (!ao->neg_addr) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Reject ADDR not allowed\n")); orc = CONFREJ; /* Reject CI */ break; } else if (cilen != CILEN_ADDR) { /* Check CI length */ IPCPDEBUG((LOG_INFO, "ipcp_reqci: Reject ADDR bad len\n")); orc = CONFREJ; /* Reject CI */ break; } /* * If he has no address, or if we both have his address but * disagree about it, then NAK it with our idea. * In particular, if we don't know his address, but he does, * then accept it. */ GETLONG(tl, p); /* Parse source address (his) */ ciaddr1 = htonl(tl); if (ciaddr1 != wo->hisaddr && (ciaddr1 == 0 || !wo->accept_remote)) { orc = CONFNAK; if (!reject_if_disagree) { DECPTR(sizeof(u32_t), p); tl = ntohl(wo->hisaddr); PUTLONG(tl, p); } IPCPDEBUG((LOG_INFO, "ipcp_reqci: Nak ADDR %s\n", inet_ntoa(ciaddr1))); } else if (ciaddr1 == 0 && wo->hisaddr == 0) { /* * Don't ACK an address of 0.0.0.0 - reject it instead. */ IPCPDEBUG((LOG_INFO, "ipcp_reqci: Reject ADDR %s\n", inet_ntoa(ciaddr1))); orc = CONFREJ; wo->req_addr = 0; /* don't NAK with 0.0.0.0 later */ break; } ho->neg_addr = 1; ho->hisaddr = ciaddr1; IPCPDEBUG((LOG_INFO, "ipcp_reqci: ADDR %s\n", inet_ntoa(ciaddr1))); break; case CI_MS_DNS1: case CI_MS_DNS2: /* Microsoft primary or secondary DNS request */ d = citype == CI_MS_DNS2; /* If we do not have a DNS address then we cannot send it */ if (ao->dnsaddr[d] == 0 || cilen != CILEN_ADDR) { /* Check CI length */ IPCPDEBUG((LOG_INFO, "ipcp_reqci: Rejecting DNS%d Request\n", d+1)); orc = CONFREJ; /* Reject CI */ break; } GETLONG(tl, p); if (htonl(tl) != ao->dnsaddr[d]) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Naking DNS%d Request %d\n", d+1, inet_ntoa(tl))); DECPTR(sizeof(u32_t), p); tl = ntohl(ao->dnsaddr[d]); PUTLONG(tl, p); orc = CONFNAK; } IPCPDEBUG((LOG_INFO, "ipcp_reqci: received DNS%d Request\n", d+1)); break; case CI_MS_WINS1: case CI_MS_WINS2: /* Microsoft primary or secondary WINS request */ d = citype == CI_MS_WINS2; IPCPDEBUG((LOG_INFO, "ipcp_reqci: received WINS%d Request\n", d+1)); /* If we do not have a DNS address then we cannot send it */ if (ao->winsaddr[d] == 0 || cilen != CILEN_ADDR) { /* Check CI length */ orc = CONFREJ; /* Reject CI */ break; } GETLONG(tl, p); if (htonl(tl) != ao->winsaddr[d]) { DECPTR(sizeof(u32_t), p); tl = ntohl(ao->winsaddr[d]); PUTLONG(tl, p); orc = CONFNAK; } break; case CI_COMPRESSTYPE: if (!ao->neg_vj) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Rejecting COMPRESSTYPE not allowed\n")); orc = CONFREJ; break; } else if (cilen != CILEN_VJ && cilen != CILEN_COMPRESS) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Rejecting COMPRESSTYPE len=%d\n", cilen)); orc = CONFREJ; break; } GETSHORT(cishort, p); if (!(cishort == IPCP_VJ_COMP || (cishort == IPCP_VJ_COMP_OLD && cilen == CILEN_COMPRESS))) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Rejecting COMPRESSTYPE %d\n", cishort)); orc = CONFREJ; break; } ho->neg_vj = 1; ho->vj_protocol = cishort; if (cilen == CILEN_VJ) { GETCHAR(maxslotindex, p); if (maxslotindex > ao->maxslotindex) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Naking VJ max slot %d\n", maxslotindex)); orc = CONFNAK; if (!reject_if_disagree) { DECPTR(1, p); PUTCHAR(ao->maxslotindex, p); } } GETCHAR(cflag, p); if (cflag && !ao->cflag) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Naking VJ cflag %d\n", cflag)); orc = CONFNAK; if (!reject_if_disagree) { DECPTR(1, p); PUTCHAR(wo->cflag, p); } } ho->maxslotindex = maxslotindex; ho->cflag = cflag; } else { ho->old_vj = 1; ho->maxslotindex = MAX_SLOTS - 1; ho->cflag = 1; } IPCPDEBUG((LOG_INFO, "ipcp_reqci: received COMPRESSTYPE p=%d old=%d maxslot=%d cflag=%d\n", ho->vj_protocol, ho->old_vj, ho->maxslotindex, ho->cflag)); break; default: IPCPDEBUG((LOG_INFO, "ipcp_reqci: Rejecting unknown CI type %d\n", citype)); orc = CONFREJ; break; } endswitch: if (orc == CONFACK && /* Good CI */ rc != CONFACK) { /* but prior CI wasnt? */ continue; /* Don't send this one */ } if (orc == CONFNAK) { /* Nak this CI? */ if (reject_if_disagree) { /* Getting fed up with sending NAKs? */ IPCPDEBUG((LOG_INFO, "ipcp_reqci: Rejecting too many naks\n")); orc = CONFREJ; /* Get tough if so */ } else { if (rc == CONFREJ) { /* Rejecting prior CI? */ continue; /* Don't send this one */ } if (rc == CONFACK) { /* Ack'd all prior CIs? */ rc = CONFNAK; /* Not anymore... */ ucp = inp; /* Backup */ } } } if (orc == CONFREJ && /* Reject this CI */ rc != CONFREJ) { /* but no prior ones? */ rc = CONFREJ; ucp = inp; /* Backup */ } /* Need to move CI? */ if (ucp != cip) { BCOPY(cip, ucp, cilen); /* Move it */ } /* Update output pointer */ INCPTR(cilen, ucp); } /* * If we aren't rejecting this packet, and we want to negotiate * their address, and they didn't send their address, then we * send a NAK with a CI_ADDR option appended. We assume the * input buffer is long enough that we can append the extra * option safely. */ if (rc != CONFREJ && !ho->neg_addr && wo->req_addr && !reject_if_disagree) { IPCPDEBUG((LOG_INFO, "ipcp_reqci: Requesting peer address\n")); if (rc == CONFACK) { rc = CONFNAK; ucp = inp; /* reset pointer */ wo->req_addr = 0; /* don't ask again */ } PUTCHAR(CI_ADDR, ucp); PUTCHAR(CILEN_ADDR, ucp); tl = ntohl(wo->hisaddr); PUTLONG(tl, ucp); } *len = (int)(ucp - inp); /* Compute output length */ IPCPDEBUG((LOG_INFO, "ipcp_reqci: returning Configure-%s\n", CODENAME(rc))); return (rc); /* Return final code */ } #if 0 /* * ip_check_options - check that any IP-related options are OK, * and assign appropriate defaults. */ static void ip_check_options(u_long localAddr) { ipcp_options *wo = &ipcp_wantoptions[0]; /* * Load our default IP address but allow the remote host to give us * a new address. */ if (wo->ouraddr == 0 && !ppp_settings.disable_defaultip) { wo->accept_local = 1; /* don't insist on this default value */ wo->ouraddr = htonl(localAddr); } } #endif /* * ipcp_up - IPCP has come UP. * * Configure the IP network interface appropriately and bring it up. */ static void ipcp_up(fsm *f) { u32_t mask; ipcp_options *ho = &ipcp_hisoptions[f->unit]; ipcp_options *go = &ipcp_gotoptions[f->unit]; ipcp_options *wo = &ipcp_wantoptions[f->unit]; np_up(f->unit, PPP_IP); IPCPDEBUG((LOG_INFO, "ipcp: up\n")); /* * We must have a non-zero IP address for both ends of the link. */ if (!ho->neg_addr) { ho->hisaddr = wo->hisaddr; } if (ho->hisaddr == 0) { IPCPDEBUG((LOG_ERR, "Could not determine remote IP address\n")); ipcp_close(f->unit, "Could not determine remote IP address"); return; } if (go->ouraddr == 0) { IPCPDEBUG((LOG_ERR, "Could not determine local IP address\n")); ipcp_close(f->unit, "Could not determine local IP address"); return; } if (ppp_settings.usepeerdns && (go->dnsaddr[0] || go->dnsaddr[1])) { /*pppGotDNSAddrs(go->dnsaddr[0], go->dnsaddr[1]);*/ } /* * Check that the peer is allowed to use the IP address it wants. */ if (!auth_ip_addr(f->unit, ho->hisaddr)) { IPCPDEBUG((LOG_ERR, "Peer is not authorized to use remote address %s\n", inet_ntoa(ho->hisaddr))); ipcp_close(f->unit, "Unauthorized remote IP address"); return; } /* set tcp compression */ sifvjcomp(f->unit, ho->neg_vj, ho->cflag, ho->maxslotindex); /* * Set IP addresses and (if specified) netmask. */ mask = GetMask(go->ouraddr); if (!sifaddr(f->unit, go->ouraddr, ho->hisaddr, mask, go->dnsaddr[0], go->dnsaddr[1])) { IPCPDEBUG((LOG_WARNING, "sifaddr failed\n")); ipcp_close(f->unit, "Interface configuration failed"); return; } /* bring the interface up for IP */ if (!sifup(f->unit)) { IPCPDEBUG((LOG_WARNING, "sifup failed\n")); ipcp_close(f->unit, "Interface configuration failed"); return; } sifnpmode(f->unit, PPP_IP, NPMODE_PASS); /* assign a default route through the interface if required */ if (ipcp_wantoptions[f->unit].default_route) { if (sifdefaultroute(f->unit, go->ouraddr, ho->hisaddr)) { default_route_set[f->unit] = 1; } } IPCPDEBUG((LOG_NOTICE, "local IP address %s\n", inet_ntoa(go->ouraddr))); IPCPDEBUG((LOG_NOTICE, "remote IP address %s\n", inet_ntoa(ho->hisaddr))); if (go->dnsaddr[0]) { IPCPDEBUG((LOG_NOTICE, "primary DNS address %s\n", inet_ntoa(go->dnsaddr[0]))); } if (go->dnsaddr[1]) { IPCPDEBUG((LOG_NOTICE, "secondary DNS address %s\n", inet_ntoa(go->dnsaddr[1]))); } } /* * ipcp_down - IPCP has gone DOWN. * * Take the IP network interface down, clear its addresses * and delete routes through it. */ static void ipcp_down(fsm *f) { IPCPDEBUG((LOG_INFO, "ipcp: down\n")); np_down(f->unit, PPP_IP); sifvjcomp(f->unit, 0, 0, 0); sifdown(f->unit); ipcp_clear_addrs(f->unit); } /* * ipcp_clear_addrs() - clear the interface addresses, routes, etc. */ static void ipcp_clear_addrs(int unit) { u32_t ouraddr, hisaddr; ouraddr = ipcp_gotoptions[unit].ouraddr; hisaddr = ipcp_hisoptions[unit].hisaddr; if (default_route_set[unit]) { cifdefaultroute(unit, ouraddr, hisaddr); default_route_set[unit] = 0; } cifaddr(unit, ouraddr, hisaddr); } /* * ipcp_finished - possibly shut down the lower layers. */ static void ipcp_finished(fsm *f) { np_finished(f->unit, PPP_IP); } #if 0 static int ipcp_printpkt(u_char *p, int plen, void (*printer) (void *, char *, ...), void *arg) { LWIP_UNUSED_ARG(p); LWIP_UNUSED_ARG(plen); LWIP_UNUSED_ARG(printer); LWIP_UNUSED_ARG(arg); return 0; } /* * ip_active_pkt - see if this IP packet is worth bringing the link up for. * We don't bring the link up for IP fragments or for TCP FIN packets * with no data. */ #define IP_HDRLEN 20 /* bytes */ #define IP_OFFMASK 0x1fff #define IPPROTO_TCP 6 #define TCP_HDRLEN 20 #define TH_FIN 0x01 /* * We use these macros because the IP header may be at an odd address, * and some compilers might use word loads to get th_off or ip_hl. */ #define net_short(x) (((x)[0] << 8) + (x)[1]) #define get_iphl(x) (((unsigned char *)(x))[0] & 0xF) #define get_ipoff(x) net_short((unsigned char *)(x) + 6) #define get_ipproto(x) (((unsigned char *)(x))[9]) #define get_tcpoff(x) (((unsigned char *)(x))[12] >> 4) #define get_tcpflags(x) (((unsigned char *)(x))[13]) static int ip_active_pkt(u_char *pkt, int len) { u_char *tcp; int hlen; len -= PPP_HDRLEN; pkt += PPP_HDRLEN; if (len < IP_HDRLEN) { return 0; } if ((get_ipoff(pkt) & IP_OFFMASK) != 0) { return 0; } if (get_ipproto(pkt) != IPPROTO_TCP) { return 1; } hlen = get_iphl(pkt) * 4; if (len < hlen + TCP_HDRLEN) { return 0; } tcp = pkt + hlen; if ((get_tcpflags(tcp) & TH_FIN) != 0 && len == hlen + get_tcpoff(tcp) * 4) { return 0; } return 1; } #endif #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/ipcp.h000066400000000000000000000124211224274632000231230ustar00rootroot00000000000000/***************************************************************************** * ipcp.h - PPP IP NCP: Internet Protocol Network Control Protocol header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-04 Guy Lancaster , Global Election Systems Inc. * Original derived from BSD codes. *****************************************************************************/ /* * ipcp.h - IP Control Protocol definitions. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id: ipcp.h,v 1.3 2007/12/19 20:47:23 fbernon Exp $ */ #ifndef IPCP_H #define IPCP_H /************************* *** PUBLIC DEFINITIONS *** *************************/ /* * Options. */ #define CI_ADDRS 1 /* IP Addresses */ #define CI_COMPRESSTYPE 2 /* Compression Type */ #define CI_ADDR 3 #define CI_MS_WINS1 128 /* Primary WINS value */ #define CI_MS_DNS1 129 /* Primary DNS value */ #define CI_MS_WINS2 130 /* Secondary WINS value */ #define CI_MS_DNS2 131 /* Secondary DNS value */ #define IPCP_VJMODE_OLD 1 /* "old" mode (option # = 0x0037) */ #define IPCP_VJMODE_RFC1172 2 /* "old-rfc"mode (option # = 0x002d) */ #define IPCP_VJMODE_RFC1332 3 /* "new-rfc"mode (option # = 0x002d, */ /* maxslot and slot number compression) */ #define IPCP_VJ_COMP 0x002d /* current value for VJ compression option */ #define IPCP_VJ_COMP_OLD 0x0037 /* "old" (i.e, broken) value for VJ */ /* compression option */ /************************ *** PUBLIC DATA TYPES *** ************************/ typedef struct ipcp_options { u_int neg_addr : 1; /* Negotiate IP Address? */ u_int old_addrs : 1; /* Use old (IP-Addresses) option? */ u_int req_addr : 1; /* Ask peer to send IP address? */ u_int default_route : 1; /* Assign default route through interface? */ u_int proxy_arp : 1; /* Make proxy ARP entry for peer? */ u_int neg_vj : 1; /* Van Jacobson Compression? */ u_int old_vj : 1; /* use old (short) form of VJ option? */ u_int accept_local : 1; /* accept peer's value for ouraddr */ u_int accept_remote : 1; /* accept peer's value for hisaddr */ u_int req_dns1 : 1; /* Ask peer to send primary DNS address? */ u_int req_dns2 : 1; /* Ask peer to send secondary DNS address? */ u_short vj_protocol; /* protocol value to use in VJ option */ u_char maxslotindex; /* VJ slots - 1. */ u_char cflag; /* VJ slot compression flag. */ u32_t ouraddr, hisaddr; /* Addresses in NETWORK BYTE ORDER */ u32_t dnsaddr[2]; /* Primary and secondary MS DNS entries */ u32_t winsaddr[2]; /* Primary and secondary MS WINS entries */ } ipcp_options; /***************************** *** PUBLIC DATA STRUCTURES *** *****************************/ extern fsm ipcp_fsm[]; extern ipcp_options ipcp_wantoptions[]; extern ipcp_options ipcp_gotoptions[]; extern ipcp_options ipcp_allowoptions[]; extern ipcp_options ipcp_hisoptions[]; extern struct protent ipcp_protent; /*********************** *** PUBLIC FUNCTIONS *** ***********************/ #endif /* IPCP_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/lcp.c000066400000000000000000001567711224274632000227620ustar00rootroot00000000000000/***************************************************************************** * lcp.c - Network Link Control Protocol program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-01 Guy Lancaster , Global Election Systems Inc. * Original. *****************************************************************************/ /* * lcp.c - PPP Link Control Protocol. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "fsm.h" #include "chap.h" #include "magic.h" #include "auth.h" #include "lcp.h" #include #if PPPOE_SUPPORT #include "netif/ppp_oe.h" #else #define PPPOE_MAXMTU PPP_MAXMRU #endif /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ /* * Length of each type of configuration option (in octets) */ #define CILEN_VOID 2 #define CILEN_CHAR 3 #define CILEN_SHORT 4 /* CILEN_VOID + sizeof(short) */ #define CILEN_CHAP 5 /* CILEN_VOID + sizeof(short) + 1 */ #define CILEN_LONG 6 /* CILEN_VOID + sizeof(long) */ #define CILEN_LQR 8 /* CILEN_VOID + sizeof(short) + sizeof(long) */ #define CILEN_CBCP 3 /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ /* * Callbacks for fsm code. (CI = Configuration Information) */ static void lcp_resetci (fsm*); /* Reset our CI */ static int lcp_cilen (fsm*); /* Return length of our CI */ static void lcp_addci (fsm*, u_char*, int*); /* Add our CI to pkt */ static int lcp_ackci (fsm*, u_char*, int); /* Peer ack'd our CI */ static int lcp_nakci (fsm*, u_char*, int); /* Peer nak'd our CI */ static int lcp_rejci (fsm*, u_char*, int); /* Peer rej'd our CI */ static int lcp_reqci (fsm*, u_char*, int*, int); /* Rcv peer CI */ static void lcp_up (fsm*); /* We're UP */ static void lcp_down (fsm*); /* We're DOWN */ static void lcp_starting (fsm*); /* We need lower layer up */ static void lcp_finished (fsm*); /* We need lower layer down */ static int lcp_extcode (fsm*, int, u_char, u_char*, int); static void lcp_rprotrej (fsm*, u_char*, int); /* * routines to send LCP echos to peer */ static void lcp_echo_lowerup (int); static void lcp_echo_lowerdown (int); static void LcpEchoTimeout (void*); static void lcp_received_echo_reply (fsm*, int, u_char*, int); static void LcpSendEchoRequest (fsm*); static void LcpLinkFailure (fsm*); static void LcpEchoCheck (fsm*); /* * Protocol entry points. * Some of these are called directly. */ static void lcp_input (int, u_char *, int); static void lcp_protrej (int); #define CODENAME(x) ((x) == CONFACK ? "ACK" : (x) == CONFNAK ? "NAK" : "REJ") /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ /* global vars */ LinkPhase lcp_phase[NUM_PPP]; /* Phase of link session (RFC 1661) */ lcp_options lcp_wantoptions[NUM_PPP]; /* Options that we want to request */ lcp_options lcp_gotoptions[NUM_PPP]; /* Options that peer ack'd */ lcp_options lcp_allowoptions[NUM_PPP]; /* Options we allow peer to request */ lcp_options lcp_hisoptions[NUM_PPP]; /* Options that we ack'd */ ext_accm xmit_accm[NUM_PPP]; /* extended transmit ACCM */ /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ static fsm lcp_fsm[NUM_PPP]; /* LCP fsm structure (global)*/ static u_int lcp_echo_interval = LCP_ECHOINTERVAL; /* Interval between LCP echo-requests */ static u_int lcp_echo_fails = LCP_MAXECHOFAILS; /* Tolerance to unanswered echo-requests */ static u32_t lcp_echos_pending = 0; /* Number of outstanding echo msgs */ static u32_t lcp_echo_number = 0; /* ID number of next echo frame */ static u32_t lcp_echo_timer_running = 0; /* TRUE if a timer is running */ static u_char nak_buffer[PPP_MRU]; /* where we construct a nak packet */ static fsm_callbacks lcp_callbacks = { /* LCP callback routines */ lcp_resetci, /* Reset our Configuration Information */ lcp_cilen, /* Length of our Configuration Information */ lcp_addci, /* Add our Configuration Information */ lcp_ackci, /* ACK our Configuration Information */ lcp_nakci, /* NAK our Configuration Information */ lcp_rejci, /* Reject our Configuration Information */ lcp_reqci, /* Request peer's Configuration Information */ lcp_up, /* Called when fsm reaches LS_OPENED state */ lcp_down, /* Called when fsm leaves LS_OPENED state */ lcp_starting, /* Called when we want the lower layer up */ lcp_finished, /* Called when we want the lower layer down */ NULL, /* Called when Protocol-Reject received */ NULL, /* Retransmission is necessary */ lcp_extcode, /* Called to handle LCP-specific codes */ "LCP" /* String name of protocol */ }; struct protent lcp_protent = { PPP_LCP, lcp_init, lcp_input, lcp_protrej, lcp_lowerup, lcp_lowerdown, lcp_open, lcp_close, #if 0 lcp_printpkt, NULL, #endif 1, "LCP", #if 0 NULL, NULL, NULL #endif }; int lcp_loopbackfail = DEFLOOPBACKFAIL; /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * lcp_init - Initialize LCP. */ void lcp_init(int unit) { fsm *f = &lcp_fsm[unit]; lcp_options *wo = &lcp_wantoptions[unit]; lcp_options *ao = &lcp_allowoptions[unit]; f->unit = unit; f->protocol = PPP_LCP; f->callbacks = &lcp_callbacks; fsm_init(f); wo->passive = 0; wo->silent = 0; wo->restart = 0; /* Set to 1 in kernels or multi-line implementations */ wo->neg_mru = 1; wo->mru = PPP_DEFMRU; wo->neg_asyncmap = 1; wo->asyncmap = 0x00000000l; /* Assume don't need to escape any ctl chars. */ wo->neg_chap = 0; /* Set to 1 on server */ wo->neg_upap = 0; /* Set to 1 on server */ wo->chap_mdtype = CHAP_DIGEST_MD5; wo->neg_magicnumber = 1; wo->neg_pcompression = 1; wo->neg_accompression = 1; wo->neg_lqr = 0; /* no LQR implementation yet */ wo->neg_cbcp = 0; ao->neg_mru = 1; ao->mru = PPP_MAXMRU; ao->neg_asyncmap = 1; ao->asyncmap = 0x00000000l; /* Assume don't need to escape any ctl chars. */ ao->neg_chap = (CHAP_SUPPORT != 0); ao->chap_mdtype = CHAP_DIGEST_MD5; ao->neg_upap = (PAP_SUPPORT != 0); ao->neg_magicnumber = 1; ao->neg_pcompression = 1; ao->neg_accompression = 1; ao->neg_lqr = 0; /* no LQR implementation yet */ ao->neg_cbcp = (CBCP_SUPPORT != 0); /* * Set transmit escape for the flag and escape characters plus anything * set for the allowable options. */ memset(xmit_accm[unit], 0, sizeof(xmit_accm[0])); xmit_accm[unit][15] = 0x60; xmit_accm[unit][0] = (u_char)((ao->asyncmap & 0xFF)); xmit_accm[unit][1] = (u_char)((ao->asyncmap >> 8) & 0xFF); xmit_accm[unit][2] = (u_char)((ao->asyncmap >> 16) & 0xFF); xmit_accm[unit][3] = (u_char)((ao->asyncmap >> 24) & 0xFF); LCPDEBUG((LOG_INFO, "lcp_init: xmit_accm=%X %X %X %X\n", xmit_accm[unit][0], xmit_accm[unit][1], xmit_accm[unit][2], xmit_accm[unit][3])); lcp_phase[unit] = PHASE_INITIALIZE; } /* * lcp_open - LCP is allowed to come up. */ void lcp_open(int unit) { fsm *f = &lcp_fsm[unit]; lcp_options *wo = &lcp_wantoptions[unit]; f->flags = 0; if (wo->passive) { f->flags |= OPT_PASSIVE; } if (wo->silent) { f->flags |= OPT_SILENT; } fsm_open(f); lcp_phase[unit] = PHASE_ESTABLISH; } /* * lcp_close - Take LCP down. */ void lcp_close(int unit, char *reason) { fsm *f = &lcp_fsm[unit]; if (lcp_phase[unit] != PHASE_DEAD) { lcp_phase[unit] = PHASE_TERMINATE; } if (f->state == LS_STOPPED && f->flags & (OPT_PASSIVE|OPT_SILENT)) { /* * This action is not strictly according to the FSM in RFC1548, * but it does mean that the program terminates if you do an * lcp_close() in passive/silent mode when a connection hasn't * been established. */ f->state = LS_CLOSED; lcp_finished(f); } else { fsm_close(&lcp_fsm[unit], reason); } } /* * lcp_lowerup - The lower layer is up. */ void lcp_lowerup(int unit) { lcp_options *wo = &lcp_wantoptions[unit]; /* * Don't use A/C or protocol compression on transmission, * but accept A/C and protocol compressed packets * if we are going to ask for A/C and protocol compression. */ ppp_set_xaccm(unit, &xmit_accm[unit]); ppp_send_config(unit, PPP_MRU, 0xffffffffl, 0, 0); ppp_recv_config(unit, PPP_MRU, 0x00000000l, wo->neg_pcompression, wo->neg_accompression); peer_mru[unit] = PPP_MRU; lcp_allowoptions[unit].asyncmap = (u_long)xmit_accm[unit][0] | ((u_long)xmit_accm[unit][1] << 8) | ((u_long)xmit_accm[unit][2] << 16) | ((u_long)xmit_accm[unit][3] << 24); LCPDEBUG((LOG_INFO, "lcp_lowerup: asyncmap=%X %X %X %X\n", xmit_accm[unit][3], xmit_accm[unit][2], xmit_accm[unit][1], xmit_accm[unit][0])); fsm_lowerup(&lcp_fsm[unit]); } /* * lcp_lowerdown - The lower layer is down. */ void lcp_lowerdown(int unit) { fsm_lowerdown(&lcp_fsm[unit]); } /* * lcp_sprotrej - Send a Protocol-Reject for some protocol. */ void lcp_sprotrej(int unit, u_char *p, int len) { /* * Send back the protocol and the information field of the * rejected packet. We only get here if LCP is in the LS_OPENED state. */ fsm_sdata(&lcp_fsm[unit], PROTREJ, ++lcp_fsm[unit].id, p, len); } /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ /* * lcp_input - Input LCP packet. */ static void lcp_input(int unit, u_char *p, int len) { fsm *f = &lcp_fsm[unit]; fsm_input(f, p, len); } /* * lcp_extcode - Handle a LCP-specific code. */ static int lcp_extcode(fsm *f, int code, u_char id, u_char *inp, int len) { u_char *magp; switch( code ){ case PROTREJ: lcp_rprotrej(f, inp, len); break; case ECHOREQ: if (f->state != LS_OPENED) { break; } LCPDEBUG((LOG_INFO, "lcp: Echo-Request, Rcvd id %d\n", id)); magp = inp; PUTLONG(lcp_gotoptions[f->unit].magicnumber, magp); fsm_sdata(f, ECHOREP, id, inp, len); break; case ECHOREP: lcp_received_echo_reply(f, id, inp, len); break; case DISCREQ: break; default: return 0; } return 1; } /* * lcp_rprotrej - Receive an Protocol-Reject. * * Figure out which protocol is rejected and inform it. */ static void lcp_rprotrej(fsm *f, u_char *inp, int len) { int i; struct protent *protp; u_short prot; if (len < sizeof (u_short)) { LCPDEBUG((LOG_INFO, "lcp_rprotrej: Rcvd short Protocol-Reject packet!\n")); return; } GETSHORT(prot, inp); LCPDEBUG((LOG_INFO, "lcp_rprotrej: Rcvd Protocol-Reject packet for %x!\n", prot)); /* * Protocol-Reject packets received in any state other than the LCP * LS_OPENED state SHOULD be silently discarded. */ if( f->state != LS_OPENED ) { LCPDEBUG((LOG_INFO, "Protocol-Reject discarded: LCP in state %d\n", f->state)); return; } /* * Upcall the proper Protocol-Reject routine. */ for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) { if (protp->protocol == prot && protp->enabled_flag) { (*protp->protrej)(f->unit); return; } } LCPDEBUG((LOG_WARNING, "Protocol-Reject for unsupported protocol 0x%x\n", prot)); } /* * lcp_protrej - A Protocol-Reject was received. */ static void lcp_protrej(int unit) { LWIP_UNUSED_ARG(unit); /* * Can't reject LCP! */ LCPDEBUG((LOG_WARNING, "lcp_protrej: Received Protocol-Reject for LCP!\n")); fsm_protreject(&lcp_fsm[unit]); } /* * lcp_resetci - Reset our CI. */ static void lcp_resetci(fsm *f) { lcp_wantoptions[f->unit].magicnumber = magic(); lcp_wantoptions[f->unit].numloops = 0; lcp_gotoptions[f->unit] = lcp_wantoptions[f->unit]; peer_mru[f->unit] = PPP_MRU; auth_reset(f->unit); } /* * lcp_cilen - Return length of our CI. */ static int lcp_cilen(fsm *f) { lcp_options *go = &lcp_gotoptions[f->unit]; #define LENCIVOID(neg) ((neg) ? CILEN_VOID : 0) #define LENCICHAP(neg) ((neg) ? CILEN_CHAP : 0) #define LENCISHORT(neg) ((neg) ? CILEN_SHORT : 0) #define LENCILONG(neg) ((neg) ? CILEN_LONG : 0) #define LENCILQR(neg) ((neg) ? CILEN_LQR: 0) #define LENCICBCP(neg) ((neg) ? CILEN_CBCP: 0) /* * NB: we only ask for one of CHAP and UPAP, even if we will * accept either. */ return (LENCISHORT(go->neg_mru && go->mru != PPP_DEFMRU) + LENCILONG(go->neg_asyncmap && go->asyncmap != 0xFFFFFFFFl) + LENCICHAP(go->neg_chap) + LENCISHORT(!go->neg_chap && go->neg_upap) + LENCILQR(go->neg_lqr) + LENCICBCP(go->neg_cbcp) + LENCILONG(go->neg_magicnumber) + LENCIVOID(go->neg_pcompression) + LENCIVOID(go->neg_accompression)); } /* * lcp_addci - Add our desired CIs to a packet. */ static void lcp_addci(fsm *f, u_char *ucp, int *lenp) { lcp_options *go = &lcp_gotoptions[f->unit]; u_char *start_ucp = ucp; #define ADDCIVOID(opt, neg) \ if (neg) { \ LCPDEBUG((LOG_INFO, "lcp_addci: opt=%d\n", opt)); \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_VOID, ucp); \ } #define ADDCISHORT(opt, neg, val) \ if (neg) { \ LCPDEBUG((LOG_INFO, "lcp_addci: INT opt=%d %X\n", opt, val)); \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_SHORT, ucp); \ PUTSHORT(val, ucp); \ } #define ADDCICHAP(opt, neg, val, digest) \ if (neg) { \ LCPDEBUG((LOG_INFO, "lcp_addci: CHAP opt=%d %X\n", opt, val)); \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_CHAP, ucp); \ PUTSHORT(val, ucp); \ PUTCHAR(digest, ucp); \ } #define ADDCILONG(opt, neg, val) \ if (neg) { \ LCPDEBUG((LOG_INFO, "lcp_addci: L opt=%d %lX\n", opt, val)); \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_LONG, ucp); \ PUTLONG(val, ucp); \ } #define ADDCILQR(opt, neg, val) \ if (neg) { \ LCPDEBUG((LOG_INFO, "lcp_addci: LQR opt=%d %lX\n", opt, val)); \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_LQR, ucp); \ PUTSHORT(PPP_LQR, ucp); \ PUTLONG(val, ucp); \ } #define ADDCICHAR(opt, neg, val) \ if (neg) { \ LCPDEBUG((LOG_INFO, "lcp_addci: CHAR opt=%d %X '%z'\n", opt, val, val)); \ PUTCHAR(opt, ucp); \ PUTCHAR(CILEN_CHAR, ucp); \ PUTCHAR(val, ucp); \ } ADDCISHORT(CI_MRU, go->neg_mru && go->mru != PPP_DEFMRU, go->mru); ADDCILONG(CI_ASYNCMAP, go->neg_asyncmap && go->asyncmap != 0xFFFFFFFFl, go->asyncmap); ADDCICHAP(CI_AUTHTYPE, go->neg_chap, PPP_CHAP, go->chap_mdtype); ADDCISHORT(CI_AUTHTYPE, !go->neg_chap && go->neg_upap, PPP_PAP); ADDCILQR(CI_QUALITY, go->neg_lqr, go->lqr_period); ADDCICHAR(CI_CALLBACK, go->neg_cbcp, CBCP_OPT); ADDCILONG(CI_MAGICNUMBER, go->neg_magicnumber, go->magicnumber); ADDCIVOID(CI_PCOMPRESSION, go->neg_pcompression); ADDCIVOID(CI_ACCOMPRESSION, go->neg_accompression); if (ucp - start_ucp != *lenp) { /* this should never happen, because peer_mtu should be 1500 */ LCPDEBUG((LOG_ERR, "Bug in lcp_addci: wrong length\n")); } } /* * lcp_ackci - Ack our CIs. * This should not modify any state if the Ack is bad. * * Returns: * 0 - Ack was bad. * 1 - Ack was good. */ static int lcp_ackci(fsm *f, u_char *p, int len) { lcp_options *go = &lcp_gotoptions[f->unit]; u_char cilen, citype, cichar; u_short cishort; u32_t cilong; /* * CIs must be in exactly the same order that we sent. * Check packet length and CI length at each step. * If we find any deviations, then this packet is bad. */ #define ACKCIVOID(opt, neg) \ if (neg) { \ if ((len -= CILEN_VOID) < 0) \ goto bad; \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_VOID || citype != opt) \ goto bad; \ } #define ACKCISHORT(opt, neg, val) \ if (neg) { \ if ((len -= CILEN_SHORT) < 0) \ goto bad; \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_SHORT || citype != opt) \ goto bad; \ GETSHORT(cishort, p); \ if (cishort != val) \ goto bad; \ } #define ACKCICHAR(opt, neg, val) \ if (neg) { \ if ((len -= CILEN_CHAR) < 0) \ goto bad; \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_CHAR || citype != opt) \ goto bad; \ GETCHAR(cichar, p); \ if (cichar != val) \ goto bad; \ } #define ACKCICHAP(opt, neg, val, digest) \ if (neg) { \ if ((len -= CILEN_CHAP) < 0) \ goto bad; \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_CHAP || citype != opt) \ goto bad; \ GETSHORT(cishort, p); \ if (cishort != val) \ goto bad; \ GETCHAR(cichar, p); \ if (cichar != digest) \ goto bad; \ } #define ACKCILONG(opt, neg, val) \ if (neg) { \ if ((len -= CILEN_LONG) < 0) \ goto bad; \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_LONG || citype != opt) \ goto bad; \ GETLONG(cilong, p); \ if (cilong != val) \ goto bad; \ } #define ACKCILQR(opt, neg, val) \ if (neg) { \ if ((len -= CILEN_LQR) < 0) \ goto bad; \ GETCHAR(citype, p); \ GETCHAR(cilen, p); \ if (cilen != CILEN_LQR || citype != opt) \ goto bad; \ GETSHORT(cishort, p); \ if (cishort != PPP_LQR) \ goto bad; \ GETLONG(cilong, p); \ if (cilong != val) \ goto bad; \ } ACKCISHORT(CI_MRU, go->neg_mru && go->mru != PPP_DEFMRU, go->mru); ACKCILONG(CI_ASYNCMAP, go->neg_asyncmap && go->asyncmap != 0xFFFFFFFFl, go->asyncmap); ACKCICHAP(CI_AUTHTYPE, go->neg_chap, PPP_CHAP, go->chap_mdtype); ACKCISHORT(CI_AUTHTYPE, !go->neg_chap && go->neg_upap, PPP_PAP); ACKCILQR(CI_QUALITY, go->neg_lqr, go->lqr_period); ACKCICHAR(CI_CALLBACK, go->neg_cbcp, CBCP_OPT); ACKCILONG(CI_MAGICNUMBER, go->neg_magicnumber, go->magicnumber); ACKCIVOID(CI_PCOMPRESSION, go->neg_pcompression); ACKCIVOID(CI_ACCOMPRESSION, go->neg_accompression); /* * If there are any remaining CIs, then this packet is bad. */ if (len != 0) { goto bad; } LCPDEBUG((LOG_INFO, "lcp_acki: Ack\n")); return (1); bad: LCPDEBUG((LOG_WARNING, "lcp_acki: received bad Ack!\n")); return (0); } /* * lcp_nakci - Peer has sent a NAK for some of our CIs. * This should not modify any state if the Nak is bad * or if LCP is in the LS_OPENED state. * * Returns: * 0 - Nak was bad. * 1 - Nak was good. */ static int lcp_nakci(fsm *f, u_char *p, int len) { lcp_options *go = &lcp_gotoptions[f->unit]; lcp_options *wo = &lcp_wantoptions[f->unit]; u_char citype, cichar, *next; u_short cishort; u32_t cilong; lcp_options no; /* options we've seen Naks for */ lcp_options try; /* options to request next time */ int looped_back = 0; int cilen; BZERO(&no, sizeof(no)); try = *go; /* * Any Nak'd CIs must be in exactly the same order that we sent. * Check packet length and CI length at each step. * If we find any deviations, then this packet is bad. */ #define NAKCIVOID(opt, neg, code) \ if (go->neg && \ len >= CILEN_VOID && \ p[1] == CILEN_VOID && \ p[0] == opt) { \ len -= CILEN_VOID; \ INCPTR(CILEN_VOID, p); \ no.neg = 1; \ code \ } #define NAKCICHAP(opt, neg, code) \ if (go->neg && \ len >= CILEN_CHAP && \ p[1] == CILEN_CHAP && \ p[0] == opt) { \ len -= CILEN_CHAP; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ GETCHAR(cichar, p); \ no.neg = 1; \ code \ } #define NAKCICHAR(opt, neg, code) \ if (go->neg && \ len >= CILEN_CHAR && \ p[1] == CILEN_CHAR && \ p[0] == opt) { \ len -= CILEN_CHAR; \ INCPTR(2, p); \ GETCHAR(cichar, p); \ no.neg = 1; \ code \ } #define NAKCISHORT(opt, neg, code) \ if (go->neg && \ len >= CILEN_SHORT && \ p[1] == CILEN_SHORT && \ p[0] == opt) { \ len -= CILEN_SHORT; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ no.neg = 1; \ code \ } #define NAKCILONG(opt, neg, code) \ if (go->neg && \ len >= CILEN_LONG && \ p[1] == CILEN_LONG && \ p[0] == opt) { \ len -= CILEN_LONG; \ INCPTR(2, p); \ GETLONG(cilong, p); \ no.neg = 1; \ code \ } #define NAKCILQR(opt, neg, code) \ if (go->neg && \ len >= CILEN_LQR && \ p[1] == CILEN_LQR && \ p[0] == opt) { \ len -= CILEN_LQR; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ GETLONG(cilong, p); \ no.neg = 1; \ code \ } /* * We don't care if they want to send us smaller packets than * we want. Therefore, accept any MRU less than what we asked for, * but then ignore the new value when setting the MRU in the kernel. * If they send us a bigger MRU than what we asked, accept it, up to * the limit of the default MRU we'd get if we didn't negotiate. */ if (go->neg_mru && go->mru != PPP_DEFMRU) { NAKCISHORT(CI_MRU, neg_mru, if (cishort <= wo->mru || cishort < PPP_DEFMRU) { try.mru = cishort; } ); } /* * Add any characters they want to our (receive-side) asyncmap. */ if (go->neg_asyncmap && go->asyncmap != 0xFFFFFFFFl) { NAKCILONG(CI_ASYNCMAP, neg_asyncmap, try.asyncmap = go->asyncmap | cilong; ); } /* * If they've nak'd our authentication-protocol, check whether * they are proposing a different protocol, or a different * hash algorithm for CHAP. */ if ((go->neg_chap || go->neg_upap) && len >= CILEN_SHORT && p[0] == CI_AUTHTYPE && p[1] >= CILEN_SHORT && p[1] <= len) { cilen = p[1]; len -= cilen; no.neg_chap = go->neg_chap; no.neg_upap = go->neg_upap; INCPTR(2, p); GETSHORT(cishort, p); if (cishort == PPP_PAP && cilen == CILEN_SHORT) { /* * If we were asking for CHAP, they obviously don't want to do it. * If we weren't asking for CHAP, then we were asking for PAP, * in which case this Nak is bad. */ if (!go->neg_chap) { goto bad; } try.neg_chap = 0; } else if (cishort == PPP_CHAP && cilen == CILEN_CHAP) { GETCHAR(cichar, p); if (go->neg_chap) { /* * We were asking for CHAP/MD5; they must want a different * algorithm. If they can't do MD5, we'll have to stop * asking for CHAP. */ if (cichar != go->chap_mdtype) { try.neg_chap = 0; } } else { /* * Stop asking for PAP if we were asking for it. */ try.neg_upap = 0; } } else { /* * We don't recognize what they're suggesting. * Stop asking for what we were asking for. */ if (go->neg_chap) { try.neg_chap = 0; } else { try.neg_upap = 0; } p += cilen - CILEN_SHORT; } } /* * If they can't cope with our link quality protocol, we'll have * to stop asking for LQR. We haven't got any other protocol. * If they Nak the reporting period, take their value XXX ? */ NAKCILQR(CI_QUALITY, neg_lqr, if (cishort != PPP_LQR) { try.neg_lqr = 0; } else { try.lqr_period = cilong; } ); /* * Only implementing CBCP...not the rest of the callback options */ NAKCICHAR(CI_CALLBACK, neg_cbcp, try.neg_cbcp = 0; ); /* * Check for a looped-back line. */ NAKCILONG(CI_MAGICNUMBER, neg_magicnumber, try.magicnumber = magic(); looped_back = 1; ); /* * Peer shouldn't send Nak for protocol compression or * address/control compression requests; they should send * a Reject instead. If they send a Nak, treat it as a Reject. */ NAKCIVOID(CI_PCOMPRESSION, neg_pcompression, try.neg_pcompression = 0; ); NAKCIVOID(CI_ACCOMPRESSION, neg_accompression, try.neg_accompression = 0; ); /* * There may be remaining CIs, if the peer is requesting negotiation * on an option that we didn't include in our request packet. * If we see an option that we requested, or one we've already seen * in this packet, then this packet is bad. * If we wanted to respond by starting to negotiate on the requested * option(s), we could, but we don't, because except for the * authentication type and quality protocol, if we are not negotiating * an option, it is because we were told not to. * For the authentication type, the Nak from the peer means * `let me authenticate myself with you' which is a bit pointless. * For the quality protocol, the Nak means `ask me to send you quality * reports', but if we didn't ask for them, we don't want them. * An option we don't recognize represents the peer asking to * negotiate some option we don't support, so ignore it. */ while (len > CILEN_VOID) { GETCHAR(citype, p); GETCHAR(cilen, p); if (cilen < CILEN_VOID || (len -= cilen) < 0) { goto bad; } next = p + cilen - 2; switch (citype) { case CI_MRU: if ((go->neg_mru && go->mru != PPP_DEFMRU) || no.neg_mru || cilen != CILEN_SHORT) { goto bad; } GETSHORT(cishort, p); if (cishort < PPP_DEFMRU) { try.mru = cishort; } break; case CI_ASYNCMAP: if ((go->neg_asyncmap && go->asyncmap != 0xFFFFFFFFl) || no.neg_asyncmap || cilen != CILEN_LONG) { goto bad; } break; case CI_AUTHTYPE: if (go->neg_chap || no.neg_chap || go->neg_upap || no.neg_upap) { goto bad; } break; case CI_MAGICNUMBER: if (go->neg_magicnumber || no.neg_magicnumber || cilen != CILEN_LONG) { goto bad; } break; case CI_PCOMPRESSION: if (go->neg_pcompression || no.neg_pcompression || cilen != CILEN_VOID) { goto bad; } break; case CI_ACCOMPRESSION: if (go->neg_accompression || no.neg_accompression || cilen != CILEN_VOID) { goto bad; } break; case CI_QUALITY: if (go->neg_lqr || no.neg_lqr || cilen != CILEN_LQR) { goto bad; } break; } p = next; } /* If there is still anything left, this packet is bad. */ if (len != 0) { goto bad; } /* * OK, the Nak is good. Now we can update state. */ if (f->state != LS_OPENED) { if (looped_back) { if (++try.numloops >= lcp_loopbackfail) { LCPDEBUG((LOG_NOTICE, "Serial line is looped back.\n")); lcp_close(f->unit, "Loopback detected"); } } else { try.numloops = 0; } *go = try; } return 1; bad: LCPDEBUG((LOG_WARNING, "lcp_nakci: received bad Nak!\n")); return 0; } /* * lcp_rejci - Peer has Rejected some of our CIs. * This should not modify any state if the Reject is bad * or if LCP is in the LS_OPENED state. * * Returns: * 0 - Reject was bad. * 1 - Reject was good. */ static int lcp_rejci(fsm *f, u_char *p, int len) { lcp_options *go = &lcp_gotoptions[f->unit]; u_char cichar; u_short cishort; u32_t cilong; lcp_options try; /* options to request next time */ try = *go; /* * Any Rejected CIs must be in exactly the same order that we sent. * Check packet length and CI length at each step. * If we find any deviations, then this packet is bad. */ #define REJCIVOID(opt, neg) \ if (go->neg && \ len >= CILEN_VOID && \ p[1] == CILEN_VOID && \ p[0] == opt) { \ len -= CILEN_VOID; \ INCPTR(CILEN_VOID, p); \ try.neg = 0; \ LCPDEBUG((LOG_INFO, "lcp_rejci: void opt %d rejected\n", opt)); \ } #define REJCISHORT(opt, neg, val) \ if (go->neg && \ len >= CILEN_SHORT && \ p[1] == CILEN_SHORT && \ p[0] == opt) { \ len -= CILEN_SHORT; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ /* Check rejected value. */ \ if (cishort != val) { \ goto bad; \ } \ try.neg = 0; \ LCPDEBUG((LOG_INFO,"lcp_rejci: short opt %d rejected\n", opt)); \ } #define REJCICHAP(opt, neg, val, digest) \ if (go->neg && \ len >= CILEN_CHAP && \ p[1] == CILEN_CHAP && \ p[0] == opt) { \ len -= CILEN_CHAP; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ GETCHAR(cichar, p); \ /* Check rejected value. */ \ if (cishort != val || cichar != digest) { \ goto bad; \ } \ try.neg = 0; \ try.neg_upap = 0; \ LCPDEBUG((LOG_INFO,"lcp_rejci: chap opt %d rejected\n", opt)); \ } #define REJCILONG(opt, neg, val) \ if (go->neg && \ len >= CILEN_LONG && \ p[1] == CILEN_LONG && \ p[0] == opt) { \ len -= CILEN_LONG; \ INCPTR(2, p); \ GETLONG(cilong, p); \ /* Check rejected value. */ \ if (cilong != val) { \ goto bad; \ } \ try.neg = 0; \ LCPDEBUG((LOG_INFO,"lcp_rejci: long opt %d rejected\n", opt)); \ } #define REJCILQR(opt, neg, val) \ if (go->neg && \ len >= CILEN_LQR && \ p[1] == CILEN_LQR && \ p[0] == opt) { \ len -= CILEN_LQR; \ INCPTR(2, p); \ GETSHORT(cishort, p); \ GETLONG(cilong, p); \ /* Check rejected value. */ \ if (cishort != PPP_LQR || cilong != val) { \ goto bad; \ } \ try.neg = 0; \ LCPDEBUG((LOG_INFO,"lcp_rejci: LQR opt %d rejected\n", opt)); \ } #define REJCICBCP(opt, neg, val) \ if (go->neg && \ len >= CILEN_CBCP && \ p[1] == CILEN_CBCP && \ p[0] == opt) { \ len -= CILEN_CBCP; \ INCPTR(2, p); \ GETCHAR(cichar, p); \ /* Check rejected value. */ \ if (cichar != val) { \ goto bad; \ } \ try.neg = 0; \ LCPDEBUG((LOG_INFO,"lcp_rejci: Callback opt %d rejected\n", opt)); \ } REJCISHORT(CI_MRU, neg_mru, go->mru); REJCILONG(CI_ASYNCMAP, neg_asyncmap, go->asyncmap); REJCICHAP(CI_AUTHTYPE, neg_chap, PPP_CHAP, go->chap_mdtype); if (!go->neg_chap) { REJCISHORT(CI_AUTHTYPE, neg_upap, PPP_PAP); } REJCILQR(CI_QUALITY, neg_lqr, go->lqr_period); REJCICBCP(CI_CALLBACK, neg_cbcp, CBCP_OPT); REJCILONG(CI_MAGICNUMBER, neg_magicnumber, go->magicnumber); REJCIVOID(CI_PCOMPRESSION, neg_pcompression); REJCIVOID(CI_ACCOMPRESSION, neg_accompression); /* * If there are any remaining CIs, then this packet is bad. */ if (len != 0) { goto bad; } /* * Now we can update state. */ if (f->state != LS_OPENED) { *go = try; } return 1; bad: LCPDEBUG((LOG_WARNING, "lcp_rejci: received bad Reject!\n")); return 0; } /* * lcp_reqci - Check the peer's requested CIs and send appropriate response. * * Returns: CONFACK, CONFNAK or CONFREJ and input packet modified * appropriately. If reject_if_disagree is non-zero, doesn't return * CONFNAK; returns CONFREJ if it can't return CONFACK. */ static int lcp_reqci(fsm *f, u_char *inp, /* Requested CIs */ int *lenp, /* Length of requested CIs */ int reject_if_disagree) { lcp_options *go = &lcp_gotoptions[f->unit]; lcp_options *ho = &lcp_hisoptions[f->unit]; lcp_options *ao = &lcp_allowoptions[f->unit]; u_char *cip, *next; /* Pointer to current and next CIs */ int cilen, citype, cichar; /* Parsed len, type, char value */ u_short cishort; /* Parsed short value */ u32_t cilong; /* Parse long value */ int rc = CONFACK; /* Final packet return code */ int orc; /* Individual option return code */ u_char *p; /* Pointer to next char to parse */ u_char *rejp; /* Pointer to next char in reject frame */ u_char *nakp; /* Pointer to next char in Nak frame */ int l = *lenp; /* Length left */ #if TRACELCP > 0 char traceBuf[80]; int traceNdx = 0; #endif /* * Reset all his options. */ BZERO(ho, sizeof(*ho)); /* * Process all his options. */ next = inp; nakp = nak_buffer; rejp = inp; while (l) { orc = CONFACK; /* Assume success */ cip = p = next; /* Remember begining of CI */ if (l < 2 || /* Not enough data for CI header or */ p[1] < 2 || /* CI length too small or */ p[1] > l) { /* CI length too big? */ LCPDEBUG((LOG_WARNING, "lcp_reqci: bad CI length!\n")); orc = CONFREJ; /* Reject bad CI */ cilen = l; /* Reject till end of packet */ l = 0; /* Don't loop again */ citype = 0; goto endswitch; } GETCHAR(citype, p); /* Parse CI type */ GETCHAR(cilen, p); /* Parse CI length */ l -= cilen; /* Adjust remaining length */ next += cilen; /* Step to next CI */ switch (citype) { /* Check CI type */ case CI_MRU: if (!ao->neg_mru) { /* Allow option? */ LCPDEBUG((LOG_INFO, "lcp_reqci: Reject MRU - not allowed\n")); orc = CONFREJ; /* Reject CI */ break; } else if (cilen != CILEN_SHORT) { /* Check CI length */ LCPDEBUG((LOG_INFO, "lcp_reqci: Reject MRU - bad length\n")); orc = CONFREJ; /* Reject CI */ break; } GETSHORT(cishort, p); /* Parse MRU */ /* * He must be able to receive at least our minimum. * No need to check a maximum. If he sends a large number, * we'll just ignore it. */ if (cishort < PPP_MINMRU) { LCPDEBUG((LOG_INFO, "lcp_reqci: Nak - MRU too small\n")); orc = CONFNAK; /* Nak CI */ PUTCHAR(CI_MRU, nakp); PUTCHAR(CILEN_SHORT, nakp); PUTSHORT(PPP_MINMRU, nakp); /* Give him a hint */ break; } ho->neg_mru = 1; /* Remember he sent MRU */ ho->mru = cishort; /* And remember value */ #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " MRU %d", cishort); traceNdx = strlen(traceBuf); #endif break; case CI_ASYNCMAP: if (!ao->neg_asyncmap) { LCPDEBUG((LOG_INFO, "lcp_reqci: Reject ASYNCMAP not allowed\n")); orc = CONFREJ; break; } else if (cilen != CILEN_LONG) { LCPDEBUG((LOG_INFO, "lcp_reqci: Reject ASYNCMAP bad length\n")); orc = CONFREJ; break; } GETLONG(cilong, p); /* * Asyncmap must have set at least the bits * which are set in lcp_allowoptions[unit].asyncmap. */ if ((ao->asyncmap & ~cilong) != 0) { LCPDEBUG((LOG_INFO, "lcp_reqci: Nak ASYNCMAP %lX missing %lX\n", cilong, ao->asyncmap)); orc = CONFNAK; PUTCHAR(CI_ASYNCMAP, nakp); PUTCHAR(CILEN_LONG, nakp); PUTLONG(ao->asyncmap | cilong, nakp); break; } ho->neg_asyncmap = 1; ho->asyncmap = cilong; #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " ASYNCMAP=%lX", cilong); traceNdx = strlen(traceBuf); #endif break; case CI_AUTHTYPE: if (cilen < CILEN_SHORT) { LCPDEBUG((LOG_INFO, "lcp_reqci: Reject AUTHTYPE missing arg\n")); orc = CONFREJ; break; } else if (!(ao->neg_upap || ao->neg_chap)) { /* * Reject the option if we're not willing to authenticate. */ LCPDEBUG((LOG_INFO, "lcp_reqci: Reject AUTHTYPE not allowed\n")); orc = CONFREJ; break; } GETSHORT(cishort, p); /* * Authtype must be UPAP or CHAP. * * Note: if both ao->neg_upap and ao->neg_chap are set, * and the peer sends a Configure-Request with two * authenticate-protocol requests, one for CHAP and one * for UPAP, then we will reject the second request. * Whether we end up doing CHAP or UPAP depends then on * the ordering of the CIs in the peer's Configure-Request. */ if (cishort == PPP_PAP) { if (ho->neg_chap) { /* we've already accepted CHAP */ LCPDEBUG((LOG_WARNING, "lcp_reqci: Reject AUTHTYPE PAP already accepted\n")); orc = CONFREJ; break; } else if (cilen != CILEN_SHORT) { LCPDEBUG((LOG_WARNING, "lcp_reqci: Reject AUTHTYPE PAP bad len\n")); orc = CONFREJ; break; } if (!ao->neg_upap) { /* we don't want to do PAP */ LCPDEBUG((LOG_WARNING, "lcp_reqci: Nak AUTHTYPE PAP not allowed\n")); orc = CONFNAK; /* NAK it and suggest CHAP */ PUTCHAR(CI_AUTHTYPE, nakp); PUTCHAR(CILEN_CHAP, nakp); PUTSHORT(PPP_CHAP, nakp); PUTCHAR(ao->chap_mdtype, nakp); break; } ho->neg_upap = 1; #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " PAP (%X)", cishort); traceNdx = strlen(traceBuf); #endif break; } if (cishort == PPP_CHAP) { if (ho->neg_upap) { /* we've already accepted PAP */ LCPDEBUG((LOG_WARNING, "lcp_reqci: Reject AUTHTYPE CHAP accepted PAP\n")); orc = CONFREJ; break; } else if (cilen != CILEN_CHAP) { LCPDEBUG((LOG_WARNING, "lcp_reqci: Reject AUTHTYPE CHAP bad len\n")); orc = CONFREJ; break; } if (!ao->neg_chap) { /* we don't want to do CHAP */ LCPDEBUG((LOG_WARNING, "lcp_reqci: Nak AUTHTYPE CHAP not allowed\n")); orc = CONFNAK; /* NAK it and suggest PAP */ PUTCHAR(CI_AUTHTYPE, nakp); PUTCHAR(CILEN_SHORT, nakp); PUTSHORT(PPP_PAP, nakp); break; } GETCHAR(cichar, p); /* get digest type*/ if (cichar != CHAP_DIGEST_MD5 #ifdef CHAPMS && cichar != CHAP_MICROSOFT #endif ) { LCPDEBUG((LOG_WARNING, "lcp_reqci: Nak AUTHTYPE CHAP digest=%d\n", cichar)); orc = CONFNAK; PUTCHAR(CI_AUTHTYPE, nakp); PUTCHAR(CILEN_CHAP, nakp); PUTSHORT(PPP_CHAP, nakp); PUTCHAR(ao->chap_mdtype, nakp); break; } #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " CHAP %X,%d", cishort, cichar); traceNdx = strlen(traceBuf); #endif ho->chap_mdtype = cichar; /* save md type */ ho->neg_chap = 1; break; } /* * We don't recognize the protocol they're asking for. * Nak it with something we're willing to do. * (At this point we know ao->neg_upap || ao->neg_chap.) */ orc = CONFNAK; PUTCHAR(CI_AUTHTYPE, nakp); if (ao->neg_chap) { LCPDEBUG((LOG_WARNING, "lcp_reqci: Nak AUTHTYPE %d req CHAP\n", cishort)); PUTCHAR(CILEN_CHAP, nakp); PUTSHORT(PPP_CHAP, nakp); PUTCHAR(ao->chap_mdtype, nakp); } else { LCPDEBUG((LOG_WARNING, "lcp_reqci: Nak AUTHTYPE %d req PAP\n", cishort)); PUTCHAR(CILEN_SHORT, nakp); PUTSHORT(PPP_PAP, nakp); } break; case CI_QUALITY: GETSHORT(cishort, p); GETLONG(cilong, p); #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " QUALITY (%x %x)", cishort, (unsigned int) cilong); traceNdx = strlen(traceBuf); #endif if (!ao->neg_lqr || cilen != CILEN_LQR) { orc = CONFREJ; break; } /* * Check the protocol and the reporting period. * XXX When should we Nak this, and what with? */ if (cishort != PPP_LQR) { orc = CONFNAK; PUTCHAR(CI_QUALITY, nakp); PUTCHAR(CILEN_LQR, nakp); PUTSHORT(PPP_LQR, nakp); PUTLONG(ao->lqr_period, nakp); break; } break; case CI_MAGICNUMBER: if (!(ao->neg_magicnumber || go->neg_magicnumber) || cilen != CILEN_LONG) { orc = CONFREJ; break; } GETLONG(cilong, p); #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " MAGICNUMBER (%lX)", cilong); traceNdx = strlen(traceBuf); #endif /* * He must have a different magic number. */ if (go->neg_magicnumber && cilong == go->magicnumber) { cilong = magic(); /* Don't put magic() inside macro! */ orc = CONFNAK; PUTCHAR(CI_MAGICNUMBER, nakp); PUTCHAR(CILEN_LONG, nakp); PUTLONG(cilong, nakp); break; } ho->neg_magicnumber = 1; ho->magicnumber = cilong; break; case CI_PCOMPRESSION: #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " PCOMPRESSION"); traceNdx = strlen(traceBuf); #endif if (!ao->neg_pcompression || cilen != CILEN_VOID) { orc = CONFREJ; break; } ho->neg_pcompression = 1; break; case CI_ACCOMPRESSION: #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " ACCOMPRESSION"); traceNdx = strlen(traceBuf); #endif if (!ao->neg_accompression || cilen != CILEN_VOID) { orc = CONFREJ; break; } ho->neg_accompression = 1; break; case CI_MRRU: #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " CI_MRRU"); traceNdx = strlen(traceBuf); #endif orc = CONFREJ; break; case CI_SSNHF: #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " CI_SSNHF"); traceNdx = strlen(traceBuf); #endif orc = CONFREJ; break; case CI_EPDISC: #if TRACELCP > 0 snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " CI_EPDISC"); traceNdx = strlen(traceBuf); #endif orc = CONFREJ; break; default: #if TRACELCP snprintf(&traceBuf[traceNdx], sizeof(traceBuf), " unknown %d", citype); traceNdx = strlen(traceBuf); #endif orc = CONFREJ; break; } endswitch: #if TRACELCP if (traceNdx >= 80 - 32) { LCPDEBUG((LOG_INFO, "lcp_reqci: rcvd%s\n", traceBuf)); traceNdx = 0; } #endif if (orc == CONFACK && /* Good CI */ rc != CONFACK) { /* but prior CI wasnt? */ continue; /* Don't send this one */ } if (orc == CONFNAK) { /* Nak this CI? */ if (reject_if_disagree /* Getting fed up with sending NAKs? */ && citype != CI_MAGICNUMBER) { orc = CONFREJ; /* Get tough if so */ } else { if (rc == CONFREJ) { /* Rejecting prior CI? */ continue; /* Don't send this one */ } rc = CONFNAK; } } if (orc == CONFREJ) { /* Reject this CI */ rc = CONFREJ; if (cip != rejp) { /* Need to move rejected CI? */ BCOPY(cip, rejp, cilen); /* Move it */ } INCPTR(cilen, rejp); /* Update output pointer */ } } /* * If we wanted to send additional NAKs (for unsent CIs), the * code would go here. The extra NAKs would go at *nakp. * At present there are no cases where we want to ask the * peer to negotiate an option. */ switch (rc) { case CONFACK: *lenp = (int)(next - inp); break; case CONFNAK: /* * Copy the Nak'd options from the nak_buffer to the caller's buffer. */ *lenp = (int)(nakp - nak_buffer); BCOPY(nak_buffer, inp, *lenp); break; case CONFREJ: *lenp = (int)(rejp - inp); break; } #if TRACELCP > 0 if (traceNdx > 0) { LCPDEBUG((LOG_INFO, "lcp_reqci: %s\n", traceBuf)); } #endif LCPDEBUG((LOG_INFO, "lcp_reqci: returning CONF%s.\n", CODENAME(rc))); return (rc); /* Return final code */ } /* * lcp_up - LCP has come UP. */ static void lcp_up(fsm *f) { lcp_options *wo = &lcp_wantoptions[f->unit]; lcp_options *ho = &lcp_hisoptions[f->unit]; lcp_options *go = &lcp_gotoptions[f->unit]; lcp_options *ao = &lcp_allowoptions[f->unit]; if (!go->neg_magicnumber) { go->magicnumber = 0; } if (!ho->neg_magicnumber) { ho->magicnumber = 0; } /* * Set our MTU to the smaller of the MTU we wanted and * the MRU our peer wanted. If we negotiated an MRU, * set our MRU to the larger of value we wanted and * the value we got in the negotiation. */ ppp_send_config(f->unit, LWIP_MIN(ao->mru, (ho->neg_mru? ho->mru: PPP_MRU)), (ho->neg_asyncmap? ho->asyncmap: 0xffffffffl), ho->neg_pcompression, ho->neg_accompression); /* * If the asyncmap hasn't been negotiated, we really should * set the receive asyncmap to ffffffff, but we set it to 0 * for backwards contemptibility. */ ppp_recv_config(f->unit, (go->neg_mru? LWIP_MAX(wo->mru, go->mru): PPP_MRU), (go->neg_asyncmap? go->asyncmap: 0x00000000), go->neg_pcompression, go->neg_accompression); if (ho->neg_mru) { peer_mru[f->unit] = ho->mru; } lcp_echo_lowerup(f->unit); /* Enable echo messages */ link_established(f->unit); } /* * lcp_down - LCP has gone DOWN. * * Alert other protocols. */ static void lcp_down(fsm *f) { lcp_options *go = &lcp_gotoptions[f->unit]; lcp_echo_lowerdown(f->unit); link_down(f->unit); ppp_send_config(f->unit, PPP_MRU, 0xffffffffl, 0, 0); ppp_recv_config(f->unit, PPP_MRU, (go->neg_asyncmap? go->asyncmap: 0x00000000), go->neg_pcompression, go->neg_accompression); peer_mru[f->unit] = PPP_MRU; } /* * lcp_starting - LCP needs the lower layer up. */ static void lcp_starting(fsm *f) { link_required(f->unit); } /* * lcp_finished - LCP has finished with the lower layer. */ static void lcp_finished(fsm *f) { link_terminated(f->unit); } #if 0 /* * print_string - print a readable representation of a string using * printer. */ static void print_string( char *p, int len, void (*printer) (void *, char *, ...), void *arg) { int c; printer(arg, "\""); for (; len > 0; --len) { c = *p++; if (' ' <= c && c <= '~') { if (c == '\\' || c == '"') { printer(arg, "\\"); } printer(arg, "%c", c); } else { switch (c) { case '\n': printer(arg, "\\n"); break; case '\r': printer(arg, "\\r"); break; case '\t': printer(arg, "\\t"); break; default: printer(arg, "\\%.3o", c); } } } printer(arg, "\""); } /* * lcp_printpkt - print the contents of an LCP packet. */ static char *lcp_codenames[] = { "ConfReq", "ConfAck", "ConfNak", "ConfRej", "TermReq", "TermAck", "CodeRej", "ProtRej", "EchoReq", "EchoRep", "DiscReq" }; static int lcp_printpkt( u_char *p, int plen, void (*printer) (void *, char *, ...), void *arg) { int code, id, len, olen; u_char *pstart, *optend; u_short cishort; u32_t cilong; if (plen < HEADERLEN) { return 0; } pstart = p; GETCHAR(code, p); GETCHAR(id, p); GETSHORT(len, p); if (len < HEADERLEN || len > plen) { return 0; } if (code >= 1 && code <= sizeof(lcp_codenames) / sizeof(char *)) { printer(arg, " %s", lcp_codenames[code-1]); } else { printer(arg, " code=0x%x", code); } printer(arg, " id=0x%x", id); len -= HEADERLEN; switch (code) { case CONFREQ: case CONFACK: case CONFNAK: case CONFREJ: /* print option list */ while (len >= 2) { GETCHAR(code, p); GETCHAR(olen, p); p -= 2; if (olen < 2 || olen > len) { break; } printer(arg, " <"); len -= olen; optend = p + olen; switch (code) { case CI_MRU: if (olen == CILEN_SHORT) { p += 2; GETSHORT(cishort, p); printer(arg, "mru %d", cishort); } break; case CI_ASYNCMAP: if (olen == CILEN_LONG) { p += 2; GETLONG(cilong, p); printer(arg, "asyncmap 0x%lx", cilong); } break; case CI_AUTHTYPE: if (olen >= CILEN_SHORT) { p += 2; printer(arg, "auth "); GETSHORT(cishort, p); switch (cishort) { case PPP_PAP: printer(arg, "pap"); break; case PPP_CHAP: printer(arg, "chap"); break; default: printer(arg, "0x%x", cishort); } } break; case CI_QUALITY: if (olen >= CILEN_SHORT) { p += 2; printer(arg, "quality "); GETSHORT(cishort, p); switch (cishort) { case PPP_LQR: printer(arg, "lqr"); break; default: printer(arg, "0x%x", cishort); } } break; case CI_CALLBACK: if (olen >= CILEN_CHAR) { p += 2; printer(arg, "callback "); GETSHORT(cishort, p); switch (cishort) { case CBCP_OPT: printer(arg, "CBCP"); break; default: printer(arg, "0x%x", cishort); } } break; case CI_MAGICNUMBER: if (olen == CILEN_LONG) { p += 2; GETLONG(cilong, p); printer(arg, "magic 0x%x", cilong); } break; case CI_PCOMPRESSION: if (olen == CILEN_VOID) { p += 2; printer(arg, "pcomp"); } break; case CI_ACCOMPRESSION: if (olen == CILEN_VOID) { p += 2; printer(arg, "accomp"); } break; } while (p < optend) { GETCHAR(code, p); printer(arg, " %.2x", code); } printer(arg, ">"); } break; case TERMACK: case TERMREQ: if (len > 0 && *p >= ' ' && *p < 0x7f) { printer(arg, " "); print_string((char*)p, len, printer, arg); p += len; len = 0; } break; case ECHOREQ: case ECHOREP: case DISCREQ: if (len >= 4) { GETLONG(cilong, p); printer(arg, " magic=0x%x", cilong); p += 4; len -= 4; } break; } /* print the rest of the bytes in the packet */ for (; len > 0; --len) { GETCHAR(code, p); printer(arg, " %.2x", code); } return (int)(p - pstart); } #endif /* * Time to shut down the link because there is nothing out there. */ static void LcpLinkFailure (fsm *f) { if (f->state == LS_OPENED) { LCPDEBUG((LOG_INFO, "No response to %d echo-requests\n", lcp_echos_pending)); LCPDEBUG((LOG_NOTICE, "Serial link appears to be disconnected.\n")); lcp_close(f->unit, "Peer not responding"); } } /* * Timer expired for the LCP echo requests from this process. */ static void LcpEchoCheck (fsm *f) { LcpSendEchoRequest (f); /* * Start the timer for the next interval. */ LWIP_ASSERT("lcp_echo_timer_running == 0", lcp_echo_timer_running == 0); TIMEOUT (LcpEchoTimeout, f, lcp_echo_interval); lcp_echo_timer_running = 1; } /* * LcpEchoTimeout - Timer expired on the LCP echo */ static void LcpEchoTimeout (void *arg) { if (lcp_echo_timer_running != 0) { lcp_echo_timer_running = 0; LcpEchoCheck ((fsm *) arg); } } /* * LcpEchoReply - LCP has received a reply to the echo */ static void lcp_received_echo_reply (fsm *f, int id, u_char *inp, int len) { u32_t magic; LWIP_UNUSED_ARG(id); /* Check the magic number - don't count replies from ourselves. */ if (len < 4) { LCPDEBUG((LOG_WARNING, "lcp: received short Echo-Reply, length %d\n", len)); return; } GETLONG(magic, inp); if (lcp_gotoptions[f->unit].neg_magicnumber && magic == lcp_gotoptions[f->unit].magicnumber) { LCPDEBUG((LOG_WARNING, "appear to have received our own echo-reply!\n")); return; } /* Reset the number of outstanding echo frames */ lcp_echos_pending = 0; } /* * LcpSendEchoRequest - Send an echo request frame to the peer */ static void LcpSendEchoRequest (fsm *f) { u32_t lcp_magic; u_char pkt[4], *pktp; /* * Detect the failure of the peer at this point. */ if (lcp_echo_fails != 0) { if (lcp_echos_pending++ >= lcp_echo_fails) { LcpLinkFailure(f); lcp_echos_pending = 0; } } /* * Make and send the echo request frame. */ if (f->state == LS_OPENED) { lcp_magic = lcp_gotoptions[f->unit].magicnumber; pktp = pkt; PUTLONG(lcp_magic, pktp); fsm_sdata(f, ECHOREQ, (u_char)(lcp_echo_number++ & 0xFF), pkt, (int)(pktp - pkt)); } } /* * lcp_echo_lowerup - Start the timer for the LCP frame */ static void lcp_echo_lowerup (int unit) { fsm *f = &lcp_fsm[unit]; /* Clear the parameters for generating echo frames */ lcp_echos_pending = 0; lcp_echo_number = 0; lcp_echo_timer_running = 0; /* If a timeout interval is specified then start the timer */ if (lcp_echo_interval != 0) { LcpEchoCheck (f); } } /* * lcp_echo_lowerdown - Stop the timer for the LCP frame */ static void lcp_echo_lowerdown (int unit) { fsm *f = &lcp_fsm[unit]; if (lcp_echo_timer_running != 0) { UNTIMEOUT (LcpEchoTimeout, f); lcp_echo_timer_running = 0; } } #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/lcp.h000066400000000000000000000147111224274632000227520ustar00rootroot00000000000000/***************************************************************************** * lcp.h - Network Link Control Protocol header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-11-05 Guy Lancaster , Global Election Systems Inc. * Original derived from BSD codes. *****************************************************************************/ /* * lcp.h - Link Control Protocol definitions. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id: lcp.h,v 1.3 2007/12/19 20:47:23 fbernon Exp $ */ #ifndef LCP_H #define LCP_H /************************* *** PUBLIC DEFINITIONS *** *************************/ /* * Options. */ #define CI_MRU 1 /* Maximum Receive Unit */ #define CI_ASYNCMAP 2 /* Async Control Character Map */ #define CI_AUTHTYPE 3 /* Authentication Type */ #define CI_QUALITY 4 /* Quality Protocol */ #define CI_MAGICNUMBER 5 /* Magic Number */ #define CI_PCOMPRESSION 7 /* Protocol Field Compression */ #define CI_ACCOMPRESSION 8 /* Address/Control Field Compression */ #define CI_CALLBACK 13 /* callback */ #define CI_MRRU 17 /* max reconstructed receive unit; multilink */ #define CI_SSNHF 18 /* short sequence numbers for multilink */ #define CI_EPDISC 19 /* endpoint discriminator */ /* * LCP-specific packet types. */ #define PROTREJ 8 /* Protocol Reject */ #define ECHOREQ 9 /* Echo Request */ #define ECHOREP 10 /* Echo Reply */ #define DISCREQ 11 /* Discard Request */ #define CBCP_OPT 6 /* Use callback control protocol */ /************************ *** PUBLIC DATA TYPES *** ************************/ /* * The state of options is described by an lcp_options structure. */ typedef struct lcp_options { u_int passive : 1; /* Don't die if we don't get a response */ u_int silent : 1; /* Wait for the other end to start first */ u_int restart : 1; /* Restart vs. exit after close */ u_int neg_mru : 1; /* Negotiate the MRU? */ u_int neg_asyncmap : 1; /* Negotiate the async map? */ u_int neg_upap : 1; /* Ask for UPAP authentication? */ u_int neg_chap : 1; /* Ask for CHAP authentication? */ u_int neg_magicnumber : 1; /* Ask for magic number? */ u_int neg_pcompression : 1; /* HDLC Protocol Field Compression? */ u_int neg_accompression : 1; /* HDLC Address/Control Field Compression? */ u_int neg_lqr : 1; /* Negotiate use of Link Quality Reports */ u_int neg_cbcp : 1; /* Negotiate use of CBCP */ #ifdef PPP_MULTILINK u_int neg_mrru : 1; /* Negotiate multilink MRRU */ u_int neg_ssnhf : 1; /* Negotiate short sequence numbers */ u_int neg_endpoint : 1; /* Negotiate endpoint discriminator */ #endif u_short mru; /* Value of MRU */ #ifdef PPP_MULTILINK u_short mrru; /* Value of MRRU, and multilink enable */ #endif u_char chap_mdtype; /* which MD type (hashing algorithm) */ u32_t asyncmap; /* Value of async map */ u32_t magicnumber; int numloops; /* Number of loops during magic number neg. */ u32_t lqr_period; /* Reporting period for LQR 1/100ths second */ #ifdef PPP_MULTILINK struct epdisc endpoint; /* endpoint discriminator */ #endif } lcp_options; /* * Values for phase from BSD pppd.h based on RFC 1661. */ typedef enum { PHASE_DEAD = 0, PHASE_INITIALIZE, PHASE_ESTABLISH, PHASE_AUTHENTICATE, PHASE_CALLBACK, PHASE_NETWORK, PHASE_TERMINATE } LinkPhase; /***************************** *** PUBLIC DATA STRUCTURES *** *****************************/ extern LinkPhase lcp_phase[NUM_PPP]; /* Phase of link session (RFC 1661) */ extern lcp_options lcp_wantoptions[]; extern lcp_options lcp_gotoptions[]; extern lcp_options lcp_allowoptions[]; extern lcp_options lcp_hisoptions[]; extern ext_accm xmit_accm[]; /*********************** *** PUBLIC FUNCTIONS *** ***********************/ void lcp_init (int); void lcp_open (int); void lcp_close (int, char *); void lcp_lowerup (int); void lcp_lowerdown(int); void lcp_sprotrej (int, u_char *, int); /* send protocol reject */ extern struct protent lcp_protent; /* Default number of times we receive our magic number from the peer before deciding the link is looped-back. */ #define DEFLOOPBACKFAIL 10 #endif /* LCP_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/magic.c000066400000000000000000000060701224274632000232460ustar00rootroot00000000000000/***************************************************************************** * magic.c - Network Random Number Generator program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-04 Guy Lancaster , Global Election Systems Inc. * Original based on BSD magic.c. *****************************************************************************/ /* * magic.c - PPP Magic Number routines. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT #include "ppp.h" #include "randm.h" #include "magic.h" /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * magicInit - Initialize the magic number generator. * * Since we use another random number generator that has its own * initialization, we do nothing here. */ void magicInit() { return; } /* * magic - Returns the next magic number. */ u32_t magic() { return avRandom(); } #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/magic.h000066400000000000000000000060051224274632000232510ustar00rootroot00000000000000/***************************************************************************** * magic.h - Network Random Number Generator header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-04 Guy Lancaster , Global Election Systems Inc. * Original derived from BSD codes. *****************************************************************************/ /* * magic.h - PPP Magic Number definitions. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * $Id: magic.h,v 1.2 2007/12/02 22:35:55 fbernon Exp $ */ #ifndef MAGIC_H #define MAGIC_H /***************************************************************************** ************************** PUBLIC FUNCTIONS ********************************** *****************************************************************************/ /* Initialize the magic number generator */ void magicInit(void); /* Returns the next magic number */ u32_t magic(void); #endif /* MAGIC_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/md5.c000066400000000000000000000267331224274632000226630ustar00rootroot00000000000000/* *********************************************************************** ** md5.c -- the source code for MD5 routines ** ** RSA Data Security, Inc. MD5 Message-Digest Algorithm ** ** Created: 2/17/90 RLR ** ** Revised: 1/91 SRD,AJ,BSK,JT Reference C ver., 7/10 constant corr. ** *********************************************************************** */ /* *********************************************************************** ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. ** ** ** ** License to copy and use this software is granted provided that ** ** it is identified as the "RSA Data Security, Inc. MD5 Message- ** ** Digest Algorithm" in all material mentioning or referencing this ** ** software or this function. ** ** ** ** License is also granted to make and use derivative works ** ** provided that such works are identified as "derived from the RSA ** ** Data Security, Inc. MD5 Message-Digest Algorithm" in all ** ** material mentioning or referencing the derived work. ** ** ** ** RSA Data Security, Inc. makes no representations concerning ** ** either the merchantability of this software or the suitability ** ** of this software for any particular purpose. It is provided "as ** ** is" without express or implied warranty of any kind. ** ** ** ** These notices must be retained in any copies of any part of this ** ** documentation and/or software. ** *********************************************************************** */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #if CHAP_SUPPORT || MD5_SUPPORT #include "ppp.h" #include "pppdebug.h" #include "md5.h" /* *********************************************************************** ** Message-digest routines: ** ** To form the message digest for a message M ** ** (1) Initialize a context buffer mdContext using MD5Init ** ** (2) Call MD5Update on mdContext and M ** ** (3) Call MD5Final on mdContext ** ** The message digest is now in mdContext->digest[0...15] ** *********************************************************************** */ /* forward declaration */ static void Transform (u32_t *buf, u32_t *in); static unsigned char PADDING[64] = { 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; /* F, G, H and I are basic MD5 functions */ #define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z)) | ((y) & (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) /* ROTATE_LEFT rotates x left n bits */ #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) /* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4 */ /* Rotation is separate from addition to prevent recomputation */ #define FF(a, b, c, d, x, s, ac) \ {(a) += F ((b), (c), (d)) + (x) + (u32_t)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define GG(a, b, c, d, x, s, ac) \ {(a) += G ((b), (c), (d)) + (x) + (u32_t)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define HH(a, b, c, d, x, s, ac) \ {(a) += H ((b), (c), (d)) + (x) + (u32_t)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #define II(a, b, c, d, x, s, ac) \ {(a) += I ((b), (c), (d)) + (x) + (u32_t)(ac); \ (a) = ROTATE_LEFT ((a), (s)); \ (a) += (b); \ } #ifdef __STDC__ #define UL(x) x##UL #else #ifdef WIN32 #define UL(x) x##UL #else #define UL(x) x #endif #endif /* The routine MD5Init initializes the message-digest context mdContext. All fields are set to zero. */ void MD5Init (MD5_CTX *mdContext) { mdContext->i[0] = mdContext->i[1] = (u32_t)0; /* Load magic initialization constants. */ mdContext->buf[0] = (u32_t)0x67452301UL; mdContext->buf[1] = (u32_t)0xefcdab89UL; mdContext->buf[2] = (u32_t)0x98badcfeUL; mdContext->buf[3] = (u32_t)0x10325476UL; } /* The routine MD5Update updates the message-digest context to account for the presence of each of the characters inBuf[0..inLen-1] in the message whose digest is being computed. */ void MD5Update(MD5_CTX *mdContext, unsigned char *inBuf, unsigned int inLen) { u32_t in[16]; int mdi; unsigned int i, ii; #if 0 ppp_trace(LOG_INFO, "MD5Update: %u:%.*H\n", inLen, MIN(inLen, 20) * 2, inBuf); ppp_trace(LOG_INFO, "MD5Update: %u:%s\n", inLen, inBuf); #endif /* compute number of bytes mod 64 */ mdi = (int)((mdContext->i[0] >> 3) & 0x3F); /* update number of bits */ if ((mdContext->i[0] + ((u32_t)inLen << 3)) < mdContext->i[0]) { mdContext->i[1]++; } mdContext->i[0] += ((u32_t)inLen << 3); mdContext->i[1] += ((u32_t)inLen >> 29); while (inLen--) { /* add new character to buffer, increment mdi */ mdContext->in[mdi++] = *inBuf++; /* transform if necessary */ if (mdi == 0x40) { for (i = 0, ii = 0; i < 16; i++, ii += 4) { in[i] = (((u32_t)mdContext->in[ii+3]) << 24) | (((u32_t)mdContext->in[ii+2]) << 16) | (((u32_t)mdContext->in[ii+1]) << 8) | ((u32_t)mdContext->in[ii]); } Transform (mdContext->buf, in); mdi = 0; } } } /* The routine MD5Final terminates the message-digest computation and ends with the desired message digest in mdContext->digest[0...15]. */ void MD5Final (unsigned char hash[], MD5_CTX *mdContext) { u32_t in[16]; int mdi; unsigned int i, ii; unsigned int padLen; /* save number of bits */ in[14] = mdContext->i[0]; in[15] = mdContext->i[1]; /* compute number of bytes mod 64 */ mdi = (int)((mdContext->i[0] >> 3) & 0x3F); /* pad out to 56 mod 64 */ padLen = (mdi < 56) ? (56 - mdi) : (120 - mdi); MD5Update (mdContext, PADDING, padLen); /* append length in bits and transform */ for (i = 0, ii = 0; i < 14; i++, ii += 4) { in[i] = (((u32_t)mdContext->in[ii+3]) << 24) | (((u32_t)mdContext->in[ii+2]) << 16) | (((u32_t)mdContext->in[ii+1]) << 8) | ((u32_t)mdContext->in[ii]); } Transform (mdContext->buf, in); /* store buffer in digest */ for (i = 0, ii = 0; i < 4; i++, ii += 4) { mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & 0xFF); mdContext->digest[ii+1] = (unsigned char)((mdContext->buf[i] >> 8) & 0xFF); mdContext->digest[ii+2] = (unsigned char)((mdContext->buf[i] >> 16) & 0xFF); mdContext->digest[ii+3] = (unsigned char)((mdContext->buf[i] >> 24) & 0xFF); } SMEMCPY(hash, mdContext->digest, 16); } /* Basic MD5 step. Transforms buf based on in. */ static void Transform (u32_t *buf, u32_t *in) { u32_t a = buf[0], b = buf[1], c = buf[2], d = buf[3]; /* Round 1 */ #define S11 7 #define S12 12 #define S13 17 #define S14 22 FF ( a, b, c, d, in[ 0], S11, UL(3614090360)); /* 1 */ FF ( d, a, b, c, in[ 1], S12, UL(3905402710)); /* 2 */ FF ( c, d, a, b, in[ 2], S13, UL( 606105819)); /* 3 */ FF ( b, c, d, a, in[ 3], S14, UL(3250441966)); /* 4 */ FF ( a, b, c, d, in[ 4], S11, UL(4118548399)); /* 5 */ FF ( d, a, b, c, in[ 5], S12, UL(1200080426)); /* 6 */ FF ( c, d, a, b, in[ 6], S13, UL(2821735955)); /* 7 */ FF ( b, c, d, a, in[ 7], S14, UL(4249261313)); /* 8 */ FF ( a, b, c, d, in[ 8], S11, UL(1770035416)); /* 9 */ FF ( d, a, b, c, in[ 9], S12, UL(2336552879)); /* 10 */ FF ( c, d, a, b, in[10], S13, UL(4294925233)); /* 11 */ FF ( b, c, d, a, in[11], S14, UL(2304563134)); /* 12 */ FF ( a, b, c, d, in[12], S11, UL(1804603682)); /* 13 */ FF ( d, a, b, c, in[13], S12, UL(4254626195)); /* 14 */ FF ( c, d, a, b, in[14], S13, UL(2792965006)); /* 15 */ FF ( b, c, d, a, in[15], S14, UL(1236535329)); /* 16 */ /* Round 2 */ #define S21 5 #define S22 9 #define S23 14 #define S24 20 GG ( a, b, c, d, in[ 1], S21, UL(4129170786)); /* 17 */ GG ( d, a, b, c, in[ 6], S22, UL(3225465664)); /* 18 */ GG ( c, d, a, b, in[11], S23, UL( 643717713)); /* 19 */ GG ( b, c, d, a, in[ 0], S24, UL(3921069994)); /* 20 */ GG ( a, b, c, d, in[ 5], S21, UL(3593408605)); /* 21 */ GG ( d, a, b, c, in[10], S22, UL( 38016083)); /* 22 */ GG ( c, d, a, b, in[15], S23, UL(3634488961)); /* 23 */ GG ( b, c, d, a, in[ 4], S24, UL(3889429448)); /* 24 */ GG ( a, b, c, d, in[ 9], S21, UL( 568446438)); /* 25 */ GG ( d, a, b, c, in[14], S22, UL(3275163606)); /* 26 */ GG ( c, d, a, b, in[ 3], S23, UL(4107603335)); /* 27 */ GG ( b, c, d, a, in[ 8], S24, UL(1163531501)); /* 28 */ GG ( a, b, c, d, in[13], S21, UL(2850285829)); /* 29 */ GG ( d, a, b, c, in[ 2], S22, UL(4243563512)); /* 30 */ GG ( c, d, a, b, in[ 7], S23, UL(1735328473)); /* 31 */ GG ( b, c, d, a, in[12], S24, UL(2368359562)); /* 32 */ /* Round 3 */ #define S31 4 #define S32 11 #define S33 16 #define S34 23 HH ( a, b, c, d, in[ 5], S31, UL(4294588738)); /* 33 */ HH ( d, a, b, c, in[ 8], S32, UL(2272392833)); /* 34 */ HH ( c, d, a, b, in[11], S33, UL(1839030562)); /* 35 */ HH ( b, c, d, a, in[14], S34, UL(4259657740)); /* 36 */ HH ( a, b, c, d, in[ 1], S31, UL(2763975236)); /* 37 */ HH ( d, a, b, c, in[ 4], S32, UL(1272893353)); /* 38 */ HH ( c, d, a, b, in[ 7], S33, UL(4139469664)); /* 39 */ HH ( b, c, d, a, in[10], S34, UL(3200236656)); /* 40 */ HH ( a, b, c, d, in[13], S31, UL( 681279174)); /* 41 */ HH ( d, a, b, c, in[ 0], S32, UL(3936430074)); /* 42 */ HH ( c, d, a, b, in[ 3], S33, UL(3572445317)); /* 43 */ HH ( b, c, d, a, in[ 6], S34, UL( 76029189)); /* 44 */ HH ( a, b, c, d, in[ 9], S31, UL(3654602809)); /* 45 */ HH ( d, a, b, c, in[12], S32, UL(3873151461)); /* 46 */ HH ( c, d, a, b, in[15], S33, UL( 530742520)); /* 47 */ HH ( b, c, d, a, in[ 2], S34, UL(3299628645)); /* 48 */ /* Round 4 */ #define S41 6 #define S42 10 #define S43 15 #define S44 21 II ( a, b, c, d, in[ 0], S41, UL(4096336452)); /* 49 */ II ( d, a, b, c, in[ 7], S42, UL(1126891415)); /* 50 */ II ( c, d, a, b, in[14], S43, UL(2878612391)); /* 51 */ II ( b, c, d, a, in[ 5], S44, UL(4237533241)); /* 52 */ II ( a, b, c, d, in[12], S41, UL(1700485571)); /* 53 */ II ( d, a, b, c, in[ 3], S42, UL(2399980690)); /* 54 */ II ( c, d, a, b, in[10], S43, UL(4293915773)); /* 55 */ II ( b, c, d, a, in[ 1], S44, UL(2240044497)); /* 56 */ II ( a, b, c, d, in[ 8], S41, UL(1873313359)); /* 57 */ II ( d, a, b, c, in[15], S42, UL(4264355552)); /* 58 */ II ( c, d, a, b, in[ 6], S43, UL(2734768916)); /* 59 */ II ( b, c, d, a, in[13], S44, UL(1309151649)); /* 60 */ II ( a, b, c, d, in[ 4], S41, UL(4149444226)); /* 61 */ II ( d, a, b, c, in[11], S42, UL(3174756917)); /* 62 */ II ( c, d, a, b, in[ 2], S43, UL( 718787259)); /* 63 */ II ( b, c, d, a, in[ 9], S44, UL(3951481745)); /* 64 */ buf[0] += a; buf[1] += b; buf[2] += c; buf[3] += d; } #endif /* CHAP_SUPPORT || MD5_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/md5.h000066400000000000000000000056301224274632000226610ustar00rootroot00000000000000/* *********************************************************************** ** md5.h -- header file for implementation of MD5 ** ** RSA Data Security, Inc. MD5 Message-Digest Algorithm ** ** Created: 2/17/90 RLR ** ** Revised: 12/27/90 SRD,AJ,BSK,JT Reference C version ** ** Revised (for MD5): RLR 4/27/91 ** ** -- G modified to have y&~z instead of y&z ** ** -- FF, GG, HH modified to add in last register done ** ** -- Access pattern: round 2 works mod 5, round 3 works mod 3 ** ** -- distinct additive constant for each step ** ** -- round 4 added, working mod 7 ** *********************************************************************** */ /* *********************************************************************** ** Copyright (C) 1990, RSA Data Security, Inc. All rights reserved. ** ** ** ** License to copy and use this software is granted provided that ** ** it is identified as the "RSA Data Security, Inc. MD5 Message- ** ** Digest Algorithm" in all material mentioning or referencing this ** ** software or this function. ** ** ** ** License is also granted to make and use derivative works ** ** provided that such works are identified as "derived from the RSA ** ** Data Security, Inc. MD5 Message-Digest Algorithm" in all ** ** material mentioning or referencing the derived work. ** ** ** ** RSA Data Security, Inc. makes no representations concerning ** ** either the merchantability of this software or the suitability ** ** of this software for any particular purpose. It is provided "as ** ** is" without express or implied warranty of any kind. ** ** ** ** These notices must be retained in any copies of any part of this ** ** documentation and/or software. ** *********************************************************************** */ #ifndef MD5_H #define MD5_H /* Data structure for MD5 (Message-Digest) computation */ typedef struct { u32_t i[2]; /* number of _bits_ handled mod 2^64 */ u32_t buf[4]; /* scratch buffer */ unsigned char in[64]; /* input buffer */ unsigned char digest[16]; /* actual digest after MD5Final call */ } MD5_CTX; void MD5Init ( MD5_CTX *mdContext); void MD5Update( MD5_CTX *mdContext, unsigned char *inBuf, unsigned int inLen); void MD5Final ( unsigned char hash[], MD5_CTX *mdContext); #endif /* MD5_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/pap.c000066400000000000000000000354331224274632000227530ustar00rootroot00000000000000/***************************************************************************** * pap.c - Network Password Authentication Protocol program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-12 Guy Lancaster , Global Election Systems Inc. * Original. *****************************************************************************/ /* * upap.c - User/Password Authentication Protocol. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #if PAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "auth.h" #include "pap.h" /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ /* * Protocol entry points. */ static void upap_init (int); static void upap_lowerup (int); static void upap_lowerdown (int); static void upap_input (int, u_char *, int); static void upap_protrej (int); static void upap_timeout (void *); static void upap_reqtimeout(void *); static void upap_rauthreq (upap_state *, u_char *, int, int); static void upap_rauthack (upap_state *, u_char *, int, int); static void upap_rauthnak (upap_state *, u_char *, int, int); static void upap_sauthreq (upap_state *); static void upap_sresp (upap_state *, u_char, u_char, char *, int); /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ struct protent pap_protent = { PPP_PAP, upap_init, upap_input, upap_protrej, upap_lowerup, upap_lowerdown, NULL, NULL, #if 0 upap_printpkt, NULL, #endif 1, "PAP", #if 0 NULL, NULL, NULL #endif }; upap_state upap[NUM_PPP]; /* UPAP state; one for each unit */ /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * Set the default login name and password for the pap sessions */ void upap_setloginpasswd(int unit, const char *luser, const char *lpassword) { upap_state *u = &upap[unit]; /* Save the username and password we're given */ u->us_user = luser; u->us_userlen = strlen(luser); u->us_passwd = lpassword; u->us_passwdlen = strlen(lpassword); } /* * upap_authwithpeer - Authenticate us with our peer (start client). * * Set new state and send authenticate's. */ void upap_authwithpeer(int unit, char *user, char *password) { upap_state *u = &upap[unit]; UPAPDEBUG((LOG_INFO, "upap_authwithpeer: %d user=%s password=%s s=%d\n", unit, user, password, u->us_clientstate)); upap_setloginpasswd(unit, user, password); u->us_transmits = 0; /* Lower layer up yet? */ if (u->us_clientstate == UPAPCS_INITIAL || u->us_clientstate == UPAPCS_PENDING) { u->us_clientstate = UPAPCS_PENDING; return; } upap_sauthreq(u); /* Start protocol */ } /* * upap_authpeer - Authenticate our peer (start server). * * Set new state. */ void upap_authpeer(int unit) { upap_state *u = &upap[unit]; /* Lower layer up yet? */ if (u->us_serverstate == UPAPSS_INITIAL || u->us_serverstate == UPAPSS_PENDING) { u->us_serverstate = UPAPSS_PENDING; return; } u->us_serverstate = UPAPSS_LISTEN; if (u->us_reqtimeout > 0) { TIMEOUT(upap_reqtimeout, u, u->us_reqtimeout); } } /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ /* * upap_init - Initialize a UPAP unit. */ static void upap_init(int unit) { upap_state *u = &upap[unit]; UPAPDEBUG((LOG_INFO, "upap_init: %d\n", unit)); u->us_unit = unit; u->us_user = NULL; u->us_userlen = 0; u->us_passwd = NULL; u->us_passwdlen = 0; u->us_clientstate = UPAPCS_INITIAL; u->us_serverstate = UPAPSS_INITIAL; u->us_id = 0; u->us_timeouttime = UPAP_DEFTIMEOUT; u->us_maxtransmits = 10; u->us_reqtimeout = UPAP_DEFREQTIME; } /* * upap_timeout - Retransmission timer for sending auth-reqs expired. */ static void upap_timeout(void *arg) { upap_state *u = (upap_state *) arg; UPAPDEBUG((LOG_INFO, "upap_timeout: %d timeout %d expired s=%d\n", u->us_unit, u->us_timeouttime, u->us_clientstate)); if (u->us_clientstate != UPAPCS_AUTHREQ) { return; } if (u->us_transmits >= u->us_maxtransmits) { /* give up in disgust */ UPAPDEBUG((LOG_ERR, "No response to PAP authenticate-requests\n")); u->us_clientstate = UPAPCS_BADAUTH; auth_withpeer_fail(u->us_unit, PPP_PAP); return; } upap_sauthreq(u); /* Send Authenticate-Request */ } /* * upap_reqtimeout - Give up waiting for the peer to send an auth-req. */ static void upap_reqtimeout(void *arg) { upap_state *u = (upap_state *) arg; if (u->us_serverstate != UPAPSS_LISTEN) { return; /* huh?? */ } auth_peer_fail(u->us_unit, PPP_PAP); u->us_serverstate = UPAPSS_BADAUTH; } /* * upap_lowerup - The lower layer is up. * * Start authenticating if pending. */ static void upap_lowerup(int unit) { upap_state *u = &upap[unit]; UPAPDEBUG((LOG_INFO, "upap_lowerup: %d s=%d\n", unit, u->us_clientstate)); if (u->us_clientstate == UPAPCS_INITIAL) { u->us_clientstate = UPAPCS_CLOSED; } else if (u->us_clientstate == UPAPCS_PENDING) { upap_sauthreq(u); /* send an auth-request */ } if (u->us_serverstate == UPAPSS_INITIAL) { u->us_serverstate = UPAPSS_CLOSED; } else if (u->us_serverstate == UPAPSS_PENDING) { u->us_serverstate = UPAPSS_LISTEN; if (u->us_reqtimeout > 0) { TIMEOUT(upap_reqtimeout, u, u->us_reqtimeout); } } } /* * upap_lowerdown - The lower layer is down. * * Cancel all timeouts. */ static void upap_lowerdown(int unit) { upap_state *u = &upap[unit]; UPAPDEBUG((LOG_INFO, "upap_lowerdown: %d s=%d\n", unit, u->us_clientstate)); if (u->us_clientstate == UPAPCS_AUTHREQ) { /* Timeout pending? */ UNTIMEOUT(upap_timeout, u); /* Cancel timeout */ } if (u->us_serverstate == UPAPSS_LISTEN && u->us_reqtimeout > 0) { UNTIMEOUT(upap_reqtimeout, u); } u->us_clientstate = UPAPCS_INITIAL; u->us_serverstate = UPAPSS_INITIAL; } /* * upap_protrej - Peer doesn't speak this protocol. * * This shouldn't happen. In any case, pretend lower layer went down. */ static void upap_protrej(int unit) { upap_state *u = &upap[unit]; if (u->us_clientstate == UPAPCS_AUTHREQ) { UPAPDEBUG((LOG_ERR, "PAP authentication failed due to protocol-reject\n")); auth_withpeer_fail(unit, PPP_PAP); } if (u->us_serverstate == UPAPSS_LISTEN) { UPAPDEBUG((LOG_ERR, "PAP authentication of peer failed (protocol-reject)\n")); auth_peer_fail(unit, PPP_PAP); } upap_lowerdown(unit); } /* * upap_input - Input UPAP packet. */ static void upap_input(int unit, u_char *inpacket, int l) { upap_state *u = &upap[unit]; u_char *inp; u_char code, id; int len; /* * Parse header (code, id and length). * If packet too short, drop it. */ inp = inpacket; if (l < UPAP_HEADERLEN) { UPAPDEBUG((LOG_INFO, "pap_input: rcvd short header.\n")); return; } GETCHAR(code, inp); GETCHAR(id, inp); GETSHORT(len, inp); if (len < UPAP_HEADERLEN) { UPAPDEBUG((LOG_INFO, "pap_input: rcvd illegal length.\n")); return; } if (len > l) { UPAPDEBUG((LOG_INFO, "pap_input: rcvd short packet.\n")); return; } len -= UPAP_HEADERLEN; /* * Action depends on code. */ switch (code) { case UPAP_AUTHREQ: upap_rauthreq(u, inp, id, len); break; case UPAP_AUTHACK: upap_rauthack(u, inp, id, len); break; case UPAP_AUTHNAK: upap_rauthnak(u, inp, id, len); break; default: /* XXX Need code reject */ break; } } /* * upap_rauth - Receive Authenticate. */ static void upap_rauthreq(upap_state *u, u_char *inp, int id, int len) { u_char ruserlen, rpasswdlen; char *ruser, *rpasswd; int retcode; char *msg; int msglen; UPAPDEBUG((LOG_INFO, "pap_rauth: Rcvd id %d.\n", id)); if (u->us_serverstate < UPAPSS_LISTEN) { return; } /* * If we receive a duplicate authenticate-request, we are * supposed to return the same status as for the first request. */ if (u->us_serverstate == UPAPSS_OPEN) { upap_sresp(u, UPAP_AUTHACK, id, "", 0); /* return auth-ack */ return; } if (u->us_serverstate == UPAPSS_BADAUTH) { upap_sresp(u, UPAP_AUTHNAK, id, "", 0); /* return auth-nak */ return; } /* * Parse user/passwd. */ if (len < sizeof (u_char)) { UPAPDEBUG((LOG_INFO, "pap_rauth: rcvd short packet.\n")); return; } GETCHAR(ruserlen, inp); len -= sizeof (u_char) + ruserlen + sizeof (u_char); if (len < 0) { UPAPDEBUG((LOG_INFO, "pap_rauth: rcvd short packet.\n")); return; } ruser = (char *) inp; INCPTR(ruserlen, inp); GETCHAR(rpasswdlen, inp); if (len < rpasswdlen) { UPAPDEBUG((LOG_INFO, "pap_rauth: rcvd short packet.\n")); return; } rpasswd = (char *) inp; /* * Check the username and password given. */ retcode = check_passwd(u->us_unit, ruser, ruserlen, rpasswd, rpasswdlen, &msg, &msglen); BZERO(rpasswd, rpasswdlen); upap_sresp(u, retcode, id, msg, msglen); if (retcode == UPAP_AUTHACK) { u->us_serverstate = UPAPSS_OPEN; auth_peer_success(u->us_unit, PPP_PAP, ruser, ruserlen); } else { u->us_serverstate = UPAPSS_BADAUTH; auth_peer_fail(u->us_unit, PPP_PAP); } if (u->us_reqtimeout > 0) { UNTIMEOUT(upap_reqtimeout, u); } } /* * upap_rauthack - Receive Authenticate-Ack. */ static void upap_rauthack(upap_state *u, u_char *inp, int id, int len) { u_char msglen; char *msg; LWIP_UNUSED_ARG(id); UPAPDEBUG((LOG_INFO, "pap_rauthack: Rcvd id %d s=%d\n", id, u->us_clientstate)); if (u->us_clientstate != UPAPCS_AUTHREQ) { /* XXX */ return; } /* * Parse message. */ if (len < sizeof (u_char)) { UPAPDEBUG((LOG_INFO, "pap_rauthack: rcvd short packet.\n")); return; } GETCHAR(msglen, inp); len -= sizeof (u_char); if (len < msglen) { UPAPDEBUG((LOG_INFO, "pap_rauthack: rcvd short packet.\n")); return; } msg = (char *) inp; PRINTMSG(msg, msglen); u->us_clientstate = UPAPCS_OPEN; auth_withpeer_success(u->us_unit, PPP_PAP); } /* * upap_rauthnak - Receive Authenticate-Nakk. */ static void upap_rauthnak(upap_state *u, u_char *inp, int id, int len) { u_char msglen; char *msg; LWIP_UNUSED_ARG(id); UPAPDEBUG((LOG_INFO, "pap_rauthnak: Rcvd id %d s=%d\n", id, u->us_clientstate)); if (u->us_clientstate != UPAPCS_AUTHREQ) { /* XXX */ return; } /* * Parse message. */ if (len < sizeof (u_char)) { UPAPDEBUG((LOG_INFO, "pap_rauthnak: rcvd short packet.\n")); } else { GETCHAR(msglen, inp); if(msglen > 0) { len -= sizeof (u_char); if (len < msglen) { UPAPDEBUG((LOG_INFO, "pap_rauthnak: rcvd short packet.\n")); return; } msg = (char *) inp; PRINTMSG(msg, msglen); } } u->us_clientstate = UPAPCS_BADAUTH; UPAPDEBUG((LOG_ERR, "PAP authentication failed\n")); auth_withpeer_fail(u->us_unit, PPP_PAP); } /* * upap_sauthreq - Send an Authenticate-Request. */ static void upap_sauthreq(upap_state *u) { u_char *outp; int outlen; outlen = UPAP_HEADERLEN + 2 * sizeof (u_char) + u->us_userlen + u->us_passwdlen; outp = outpacket_buf[u->us_unit]; MAKEHEADER(outp, PPP_PAP); PUTCHAR(UPAP_AUTHREQ, outp); PUTCHAR(++u->us_id, outp); PUTSHORT(outlen, outp); PUTCHAR(u->us_userlen, outp); BCOPY(u->us_user, outp, u->us_userlen); INCPTR(u->us_userlen, outp); PUTCHAR(u->us_passwdlen, outp); BCOPY(u->us_passwd, outp, u->us_passwdlen); pppWrite(u->us_unit, outpacket_buf[u->us_unit], outlen + PPP_HDRLEN); UPAPDEBUG((LOG_INFO, "pap_sauth: Sent id %d\n", u->us_id)); TIMEOUT(upap_timeout, u, u->us_timeouttime); ++u->us_transmits; u->us_clientstate = UPAPCS_AUTHREQ; } /* * upap_sresp - Send a response (ack or nak). */ static void upap_sresp(upap_state *u, u_char code, u_char id, char *msg, int msglen) { u_char *outp; int outlen; outlen = UPAP_HEADERLEN + sizeof (u_char) + msglen; outp = outpacket_buf[u->us_unit]; MAKEHEADER(outp, PPP_PAP); PUTCHAR(code, outp); PUTCHAR(id, outp); PUTSHORT(outlen, outp); PUTCHAR(msglen, outp); BCOPY(msg, outp, msglen); pppWrite(u->us_unit, outpacket_buf[u->us_unit], outlen + PPP_HDRLEN); UPAPDEBUG((LOG_INFO, "pap_sresp: Sent code %d, id %d s=%d\n", code, id, u->us_clientstate)); } #if 0 /* * upap_printpkt - print the contents of a PAP packet. */ static int upap_printpkt( u_char *p, int plen, void (*printer) (void *, char *, ...), void *arg ) { LWIP_UNUSED_ARG(p); LWIP_UNUSED_ARG(plen); LWIP_UNUSED_ARG(printer); LWIP_UNUSED_ARG(arg); return 0; } #endif /* 0 */ #endif /* PAP_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/pap.h000066400000000000000000000115651224274632000227600ustar00rootroot00000000000000/***************************************************************************** * pap.h - PPP Password Authentication Protocol header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-12-04 Guy Lancaster , Global Election Systems Inc. * Original derived from BSD codes. *****************************************************************************/ /* * upap.h - User/Password Authentication Protocol definitions. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef PAP_H #define PAP_H #if PAP_SUPPORT /* don't build if not configured for use in lwipopts.h */ /************************* *** PUBLIC DEFINITIONS *** *************************/ /* * Packet header = Code, id, length. */ #define UPAP_HEADERLEN (sizeof (u_char) + sizeof (u_char) + sizeof (u_short)) /* * UPAP codes. */ #define UPAP_AUTHREQ 1 /* Authenticate-Request */ #define UPAP_AUTHACK 2 /* Authenticate-Ack */ #define UPAP_AUTHNAK 3 /* Authenticate-Nak */ /* * Client states. */ #define UPAPCS_INITIAL 0 /* Connection down */ #define UPAPCS_CLOSED 1 /* Connection up, haven't requested auth */ #define UPAPCS_PENDING 2 /* Connection down, have requested auth */ #define UPAPCS_AUTHREQ 3 /* We've sent an Authenticate-Request */ #define UPAPCS_OPEN 4 /* We've received an Ack */ #define UPAPCS_BADAUTH 5 /* We've received a Nak */ /* * Server states. */ #define UPAPSS_INITIAL 0 /* Connection down */ #define UPAPSS_CLOSED 1 /* Connection up, haven't requested auth */ #define UPAPSS_PENDING 2 /* Connection down, have requested auth */ #define UPAPSS_LISTEN 3 /* Listening for an Authenticate */ #define UPAPSS_OPEN 4 /* We've sent an Ack */ #define UPAPSS_BADAUTH 5 /* We've sent a Nak */ /************************ *** PUBLIC DATA TYPES *** ************************/ /* * Each interface is described by upap structure. */ typedef struct upap_state { int us_unit; /* Interface unit number */ const char *us_user; /* User */ int us_userlen; /* User length */ const char *us_passwd; /* Password */ int us_passwdlen; /* Password length */ int us_clientstate; /* Client state */ int us_serverstate; /* Server state */ u_char us_id; /* Current id */ int us_timeouttime; /* Timeout (seconds) for auth-req retrans. */ int us_transmits; /* Number of auth-reqs sent */ int us_maxtransmits; /* Maximum number of auth-reqs to send */ int us_reqtimeout; /* Time to wait for auth-req from peer */ } upap_state; /*********************** *** PUBLIC FUNCTIONS *** ***********************/ extern upap_state upap[]; void upap_setloginpasswd(int unit, const char *luser, const char *lpassword); void upap_authwithpeer (int, char *, char *); void upap_authpeer (int); extern struct protent pap_protent; #endif /* PAP_SUPPORT */ #endif /* PAP_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/ppp.c000066400000000000000000001532711224274632000227730ustar00rootroot00000000000000/***************************************************************************** * ppp.c - Network Point to Point Protocol program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-11-05 Guy Lancaster , Global Election Systems Inc. * Original. *****************************************************************************/ /* * ppp_defs.h - PPP definitions. * * if_pppvar.h - private structures and declarations for PPP. * * Copyright (c) 1994 The Australian National University. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation is hereby granted, provided that the above copyright * notice appears in all copies. This software is provided without any * warranty, express or implied. The Australian National University * makes no representations about the suitability of this software for * any purpose. * * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. */ /* * if_ppp.h - Point-to-Point Protocol definitions. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "lwip/ip.h" /* for ip_input() */ #include "ppp.h" #include "pppdebug.h" #include "randm.h" #include "fsm.h" #if PAP_SUPPORT #include "pap.h" #endif /* PAP_SUPPORT */ #if CHAP_SUPPORT #include "chap.h" #endif /* CHAP_SUPPORT */ #include "ipcp.h" #include "lcp.h" #include "magic.h" #include "auth.h" #if VJ_SUPPORT #include "vj.h" #endif /* VJ_SUPPORT */ #if PPPOE_SUPPORT #include "netif/ppp_oe.h" #endif /* PPPOE_SUPPORT */ #include /*************************/ /*** LOCAL DEFINITIONS ***/ /*************************/ /* * The basic PPP frame. */ #define PPP_ADDRESS(p) (((u_char *)(p))[0]) #define PPP_CONTROL(p) (((u_char *)(p))[1]) #define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3]) /* PPP packet parser states. Current state indicates operation yet to be * completed. */ typedef enum { PDIDLE = 0, /* Idle state - waiting. */ PDSTART, /* Process start flag. */ PDADDRESS, /* Process address field. */ PDCONTROL, /* Process control field. */ PDPROTOCOL1, /* Process protocol field 1. */ PDPROTOCOL2, /* Process protocol field 2. */ PDDATA /* Process data byte. */ } PPPDevStates; #define ESCAPE_P(accm, c) ((accm)[(c) >> 3] & pppACCMMask[c & 0x07]) /************************/ /*** LOCAL DATA TYPES ***/ /************************/ /* * PPP interface control block. */ typedef struct PPPControl_s { char openFlag; /* True when in use. */ #if PPPOE_SUPPORT struct netif *ethif; struct pppoe_softc *pppoe_sc; #endif /* PPPOE_SUPPORT */ int if_up; /* True when the interface is up. */ int errCode; /* Code indicating why interface is down. */ #if PPPOS_SUPPORT sio_fd_t fd; /* File device ID of port. */ int kill_link; /* Shut the link down. */ int sig_hup; /* Carrier lost. */ struct pbuf *inHead, *inTail; /* The input packet. */ PPPDevStates inState; /* The input process state. */ char inEscaped; /* Escape next character. */ u16_t inProtocol; /* The input protocol code. */ u16_t inFCS; /* Input Frame Check Sequence value. */ #endif /* PPPOS_SUPPORT */ int mtu; /* Peer's mru */ int pcomp; /* Does peer accept protocol compression? */ int accomp; /* Does peer accept addr/ctl compression? */ u_long lastXMit; /* Time of last transmission. */ ext_accm inACCM; /* Async-Ctl-Char-Map for input. */ ext_accm outACCM; /* Async-Ctl-Char-Map for output. */ #if PPPOS_SUPPORT && VJ_SUPPORT int vjEnabled; /* Flag indicating VJ compression enabled. */ struct vjcompress vjComp; /* Van Jabobsen compression header. */ #endif /* PPPOS_SUPPORT && VJ_SUPPORT */ struct netif netif; struct ppp_addrs addrs; void (*linkStatusCB)(void *ctx, int errCode, void *arg); void *linkStatusCtx; } PPPControl; /* * Ioctl definitions. */ struct npioctl { int protocol; /* PPP procotol, e.g. PPP_IP */ enum NPmode mode; }; /***********************************/ /*** LOCAL FUNCTION DECLARATIONS ***/ /***********************************/ #if PPPOS_SUPPORT static void pppMain(void *pd); static void pppDrop(PPPControl *pc); static void pppInProc(int pd, u_char *s, int l); #endif /* PPPOS_SUPPORT */ /******************************/ /*** PUBLIC DATA STRUCTURES ***/ /******************************/ u_long subnetMask; static PPPControl pppControl[NUM_PPP]; /* The PPP interface control blocks. */ /* * PPP Data Link Layer "protocol" table. * One entry per supported protocol. * The last entry must be NULL. */ struct protent *ppp_protocols[] = { &lcp_protent, #if PAP_SUPPORT &pap_protent, #endif /* PAP_SUPPORT */ #if CHAP_SUPPORT &chap_protent, #endif /* CHAP_SUPPORT */ #if CBCP_SUPPORT &cbcp_protent, #endif /* CBCP_SUPPORT */ &ipcp_protent, #if CCP_SUPPORT &ccp_protent, #endif /* CCP_SUPPORT */ NULL }; /* * Buffers for outgoing packets. This must be accessed only from the appropriate * PPP task so that it doesn't need to be protected to avoid collisions. */ u_char *outpacket_buf[NUM_PPP]; /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ #if PPPOS_SUPPORT /* * FCS lookup table as calculated by genfcstab. */ static const u_short fcstab[256] = { 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78 }; /* PPP's Asynchronous-Control-Character-Map. The mask array is used * to select the specific bit for a character. */ static u_char pppACCMMask[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 }; void pppMainWakeup(int pd) { PPPDEBUG((LOG_DEBUG, "pppMainWakeup: unit %d\n", pd)); sio_read_abort(pppControl[pd].fd); } #endif /* PPPOS_SUPPORT */ void pppLinkTerminated(int pd) { PPPControl *pc = &pppControl[pd]; PPPDEBUG((LOG_DEBUG, "pppLinkTerminated: unit %d\n", pd)); #if PPPOE_SUPPORT if(pc->ethif) { pppoe_disconnect(pc->pppoe_sc); } else #endif /* PPPOE_SUPPORT */ { #if PPPOS_SUPPORT pppMainWakeup(pd); #endif /* PPPOS_SUPPORT */ } } void pppLinkDown(int pd) { PPPControl *pc = &pppControl[pd]; PPPDEBUG((LOG_DEBUG, "pppLinkDown: unit %d\n", pd)); #if PPPOE_SUPPORT if(pc->ethif) { pppoe_disconnect(pc->pppoe_sc); } else #endif /* PPPOE_SUPPORT */ { #if PPPOS_SUPPORT pppMainWakeup(pd); #endif /* PPPOS_SUPPORT */ } } /* these callbacks are necessary because lcp_* functions must be called in the same context as pppInput(), namely the tcpip_thread(), essentially because they manipulate timeouts which are thread-private */ static void pppStartCB(void *arg) { int pd = (int)arg; PPPDEBUG((LOG_DEBUG, "pppStartCB: unit %d\n", pd)); lcp_lowerup(pd); lcp_open(pd); /* Start protocol */ } static void pppStopCB(void *arg) { int pd = (int)arg; PPPDEBUG((LOG_DEBUG, "pppStopCB: unit %d\n", pd)); lcp_close(pd, "User request"); } static void pppHupCB(void *arg) { int pd = (int)arg; PPPDEBUG((LOG_DEBUG, "pppHupCB: unit %d\n", pd)); lcp_lowerdown(pd); link_terminated(pd); } /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* Initialize the PPP subsystem. */ struct ppp_settings ppp_settings; err_t pppInit(void) { struct protent *protp; int i, j; memset(&ppp_settings, 0, sizeof(ppp_settings)); ppp_settings.usepeerdns = 1; pppSetAuth(PPPAUTHTYPE_NONE, NULL, NULL); magicInit(); for (i = 0; i < NUM_PPP; i++) { pppControl[i].openFlag = 0; subnetMask = htonl(0xffffff00); outpacket_buf[i] = (u_char *)mem_malloc(PPP_MRU+PPP_HDRLEN); if(!outpacket_buf[i]) { return ERR_MEM; } /* * Initialize to the standard option set. */ for (j = 0; (protp = ppp_protocols[j]) != NULL; ++j) { (*protp->init)(i); } } #if LINK_STATS /** @todo already done in stats_init (in fact, zeroed at boot). So, remove it? */ /* Clear the statistics. */ memset(&lwip_stats.link, 0, sizeof(lwip_stats.link)); #endif /* LINK_STATS */ #if PPPOE_SUPPORT pppoe_init(); #endif /* PPPOE_SUPPORT */ return ERR_OK; } void pppSetAuth(enum pppAuthType authType, const char *user, const char *passwd) { switch(authType) { case PPPAUTHTYPE_NONE: default: #ifdef LWIP_PPP_STRICT_PAP_REJECT ppp_settings.refuse_pap = 1; #else /* LWIP_PPP_STRICT_PAP_REJECT */ /* some providers request pap and accept an empty login/pw */ ppp_settings.refuse_pap = 0; #endif /* LWIP_PPP_STRICT_PAP_REJECT */ ppp_settings.refuse_chap = 1; break; case PPPAUTHTYPE_ANY: /* Warning: Using PPPAUTHTYPE_ANY might have security consequences. * RFC 1994 says: * * In practice, within or associated with each PPP server, there is a * database which associates "user" names with authentication * information ("secrets"). It is not anticipated that a particular * named user would be authenticated by multiple methods. This would * make the user vulnerable to attacks which negotiate the least secure * method from among a set (such as PAP rather than CHAP). If the same * secret was used, PAP would reveal the secret to be used later with * CHAP. * * Instead, for each user name there should be an indication of exactly * one method used to authenticate that user name. If a user needs to * make use of different authentication methods under different * circumstances, then distinct user names SHOULD be employed, each of * which identifies exactly one authentication method. * */ ppp_settings.refuse_pap = 0; ppp_settings.refuse_chap = 0; break; case PPPAUTHTYPE_PAP: ppp_settings.refuse_pap = 0; ppp_settings.refuse_chap = 1; break; case PPPAUTHTYPE_CHAP: ppp_settings.refuse_pap = 1; ppp_settings.refuse_chap = 0; break; } if(user) { strncpy(ppp_settings.user, user, sizeof(ppp_settings.user)-1); ppp_settings.user[sizeof(ppp_settings.user)-1] = '\0'; } else { ppp_settings.user[0] = '\0'; } if(passwd) { strncpy(ppp_settings.passwd, passwd, sizeof(ppp_settings.passwd)-1); ppp_settings.passwd[sizeof(ppp_settings.passwd)-1] = '\0'; } else { ppp_settings.passwd[0] = '\0'; } } #if PPPOS_SUPPORT /* Open a new PPP connection using the given I/O device. * This initializes the PPP control block but does not * attempt to negotiate the LCP session. If this port * connects to a modem, the modem connection must be * established before calling this. * Return a new PPP connection descriptor on success or * an error code (negative) on failure. */ int pppOverSerialOpen(sio_fd_t fd, void (*linkStatusCB)(void *ctx, int errCode, void *arg), void *linkStatusCtx) { PPPControl *pc; int pd; /* Find a free PPP session descriptor. Critical region? */ for (pd = 0; pd < NUM_PPP && pppControl[pd].openFlag != 0; pd++); if (pd >= NUM_PPP) { pd = PPPERR_OPEN; } else { pppControl[pd].openFlag = !0; } /* Launch a deamon thread. */ if (pd >= 0) { pppControl[pd].openFlag = 1; lcp_init(pd); pc = &pppControl[pd]; pc->fd = fd; #if PPPOE_SUPPORT pc->ethif= NULL; #endif /* PPPOE_SUPPORT */ pc->kill_link = 0; pc->sig_hup = 0; pc->if_up = 0; pc->errCode = 0; pc->inState = PDIDLE; pc->inHead = NULL; pc->inTail = NULL; pc->inEscaped = 0; pc->lastXMit = 0; #if VJ_SUPPORT pc->vjEnabled = 0; vj_compress_init(&pc->vjComp); #endif /* VJ_SUPPORT */ /* * Default the in and out accm so that escape and flag characters * are always escaped. */ memset(pc->inACCM, 0, sizeof(ext_accm)); pc->inACCM[15] = 0x60; memset(pc->outACCM, 0, sizeof(ext_accm)); pc->outACCM[15] = 0x60; pc->linkStatusCB = linkStatusCB; pc->linkStatusCtx = linkStatusCtx; sys_thread_new(PPP_THREAD_NAME, pppMain, (void*)pd, PPP_THREAD_STACKSIZE, PPP_THREAD_PRIO); if(!linkStatusCB) { while(pd >= 0 && !pc->if_up) { sys_msleep(500); if (lcp_phase[pd] == PHASE_DEAD) { pppClose(pd); if (pc->errCode) { pd = pc->errCode; } else { pd = PPPERR_CONNECT; } } } } } return pd; } #endif /* PPPOS_SUPPORT */ #if PPPOE_SUPPORT static void pppOverEthernetLinkStatusCB(int pd, int up); void pppOverEthernetClose(int pd) { PPPControl* pc = &pppControl[pd]; /* *TJL* There's no lcp_deinit */ lcp_close(pd, NULL); pppoe_destroy(&pc->netif); } int pppOverEthernetOpen(struct netif *ethif, const char *service_name, const char *concentrator_name, void (*linkStatusCB)(void *ctx, int errCode, void *arg), void *linkStatusCtx) { PPPControl *pc; int pd; LWIP_UNUSED_ARG(service_name); LWIP_UNUSED_ARG(concentrator_name); /* Find a free PPP session descriptor. Critical region? */ for (pd = 0; pd < NUM_PPP && pppControl[pd].openFlag != 0; pd++); if (pd >= NUM_PPP) { pd = PPPERR_OPEN; } else { pppControl[pd].openFlag = !0; } /* Launch a deamon thread. */ if (pd >= 0) { pppControl[pd].openFlag = 1; lcp_init(pd); lcp_wantoptions[pd].mru = PPPOE_MAXMTU; lcp_wantoptions[pd].neg_asyncmap = 0; lcp_wantoptions[pd].neg_pcompression = 0; lcp_wantoptions[pd].neg_accompression = 0; lcp_allowoptions[pd].mru = PPPOE_MAXMTU; lcp_allowoptions[pd].neg_asyncmap = 0; lcp_allowoptions[pd].neg_pcompression = 0; lcp_allowoptions[pd].neg_accompression = 0; pc = &pppControl[pd]; pc->if_up = 0; pc->errCode = 0; pc->lastXMit = 0; #if PPPOS_SUPPORT pc->kill_link = 0; pc->sig_hup = 0; pc->inState = PDIDLE; pc->inHead = NULL; pc->inTail = NULL; pc->inEscaped = 0; #if VJ_SUPPORT pc->vjEnabled = 0; #endif /* VJ_SUPPORT */ #endif /* PPPOS_SUPPORT */ pc->ethif= ethif; memset(pc->inACCM, 0, sizeof(ext_accm)); memset(pc->outACCM, 0, sizeof(ext_accm)); pc->linkStatusCB = linkStatusCB; pc->linkStatusCtx = linkStatusCtx; if(pppoe_create(ethif, pd, pppOverEthernetLinkStatusCB, &pc->pppoe_sc) != ERR_OK) { pc->openFlag = 0; return PPPERR_OPEN; } pppoe_connect(pc->pppoe_sc); if(!linkStatusCB) { while(pd >= 0 && !pc->if_up) { sys_msleep(500); if (lcp_phase[pd] == PHASE_DEAD) { pppClose(pd); if (pc->errCode) { pd = pc->errCode; } else { pd = PPPERR_CONNECT; } } } } } return pd; } #endif /* PPPOE_SUPPORT */ /* Close a PPP connection and release the descriptor. * Any outstanding packets in the queues are dropped. * Return 0 on success, an error code on failure. */ int pppClose(int pd) { PPPControl *pc = &pppControl[pd]; int st = 0; /* Disconnect */ #if PPPOE_SUPPORT if(pc->ethif) { PPPDEBUG((LOG_DEBUG, "pppClose: unit %d kill_link -> pppStopCB\n", pd)); pc->errCode = PPPERR_USER; /* This will leave us at PHASE_DEAD. */ tcpip_callback(pppStopCB, (void*)pd); } else #endif /* PPPOE_SUPPORT */ { #if PPPOS_SUPPORT pc->kill_link = !0; pppMainWakeup(pd); #endif /* PPPOS_SUPPORT */ } if(!pc->linkStatusCB) { while(st >= 0 && lcp_phase[pd] != PHASE_DEAD) { sys_msleep(500); break; } } return st; } /* This function is called when carrier is lost on the PPP channel. */ void pppSigHUP(int pd) { PPPControl *pc = &pppControl[pd]; #if PPPOE_SUPPORT if(pc->ethif) { PPPDEBUG((LOG_DEBUG, "pppSigHUP: unit %d sig_hup -> pppHupCB\n", pd)); tcpip_callback(pppHupCB, (void*)pd); } else #endif /* PPPOE_SUPPORT */ { #if PPPOS_SUPPORT pc->sig_hup = 1; pppMainWakeup(pd); #endif /* PPPOS_SUPPORT */ } } #if PPPOS_SUPPORT static void nPut(PPPControl *pc, struct pbuf *nb) { struct pbuf *b; int c; for(b = nb; b != NULL; b = b->next) { if((c = sio_write(pc->fd, b->payload, b->len)) != b->len) { PPPDEBUG((LOG_WARNING, "PPP nPut: incomplete sio_write(%d,, %u) = %d\n", pc->fd, b->len, c)); LINK_STATS_INC(link.err); pc->lastXMit = 0; /* prepend PPP_FLAG to next packet */ break; } } pbuf_free(nb); LINK_STATS_INC(link.xmit); } /* * pppAppend - append given character to end of given pbuf. If outACCM * is not NULL and the character needs to be escaped, do so. * If pbuf is full, append another. * Return the current pbuf. */ static struct pbuf * pppAppend(u_char c, struct pbuf *nb, ext_accm *outACCM) { struct pbuf *tb = nb; /* Make sure there is room for the character and an escape code. * Sure we don't quite fill the buffer if the character doesn't * get escaped but is one character worth complicating this? */ /* Note: We assume no packet header. */ if (nb && (PBUF_POOL_BUFSIZE - nb->len) < 2) { tb = pbuf_alloc(PBUF_RAW, 0, PBUF_POOL); if (tb) { nb->next = tb; } else { LINK_STATS_INC(link.memerr); } nb = tb; } if (nb) { if (outACCM && ESCAPE_P(*outACCM, c)) { *((u_char*)nb->payload + nb->len++) = PPP_ESCAPE; *((u_char*)nb->payload + nb->len++) = c ^ PPP_TRANS; } else { *((u_char*)nb->payload + nb->len++) = c; } } return tb; } #endif /* PPPOS_SUPPORT */ #if PPPOE_SUPPORT static err_t pppifOutputOverEthernet(int pd, struct pbuf *p) { PPPControl *pc = &pppControl[pd]; struct pbuf *pb; u_short protocol = PPP_IP; int i=0; pb = pbuf_alloc(PBUF_LINK, pppoe_hdrlen + sizeof(protocol), PBUF_RAM); if(!pb) { LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.proterr); return ERR_MEM; } pbuf_header(pb, -pppoe_hdrlen); pc->lastXMit = sys_jiffies(); if (!pc->pcomp || protocol > 0xFF) { *((u_char*)pb->payload + i++) = (protocol >> 8) & 0xFF; } *((u_char*)pb->payload + i) = protocol & 0xFF; pbuf_chain(pb, p); if(pppoe_xmit(pc->pppoe_sc, pb) != ERR_OK) { LINK_STATS_INC(link.err); return PPPERR_DEVICE; } LINK_STATS_INC(link.xmit); return ERR_OK; } #endif /* PPPOE_SUPPORT */ /* Send a packet on the given connection. */ static err_t pppifOutput(struct netif *netif, struct pbuf *pb, struct ip_addr *ipaddr) { int pd = (int)netif->state; u_short protocol = PPP_IP; PPPControl *pc = &pppControl[pd]; #if PPPOS_SUPPORT u_int fcsOut = PPP_INITFCS; struct pbuf *headMB = NULL, *tailMB = NULL, *p; u_char c; #endif /* PPPOS_SUPPORT */ LWIP_UNUSED_ARG(ipaddr); /* Validate parameters. */ /* We let any protocol value go through - it can't hurt us * and the peer will just drop it if it's not accepting it. */ if (pd < 0 || pd >= NUM_PPP || !pc->openFlag || !pb) { PPPDEBUG((LOG_WARNING, "pppifOutput[%d]: bad parms prot=%d pb=%p\n", pd, protocol, pb)); LINK_STATS_INC(link.opterr); LINK_STATS_INC(link.drop); return ERR_ARG; } /* Check that the link is up. */ if (lcp_phase[pd] == PHASE_DEAD) { PPPDEBUG((LOG_ERR, "pppifOutput[%d]: link not up\n", pd)); LINK_STATS_INC(link.rterr); LINK_STATS_INC(link.drop); return ERR_RTE; } #if PPPOE_SUPPORT if(pc->ethif) { return pppifOutputOverEthernet(pd, pb); } #endif /* PPPOE_SUPPORT */ #if PPPOS_SUPPORT /* Grab an output buffer. */ headMB = pbuf_alloc(PBUF_RAW, 0, PBUF_POOL); if (headMB == NULL) { PPPDEBUG((LOG_WARNING, "pppifOutput[%d]: first alloc fail\n", pd)); LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.drop); return ERR_MEM; } #if VJ_SUPPORT /* * Attempt Van Jacobson header compression if VJ is configured and * this is an IP packet. */ if (protocol == PPP_IP && pc->vjEnabled) { switch (vj_compress_tcp(&pc->vjComp, pb)) { case TYPE_IP: /* No change... protocol = PPP_IP_PROTOCOL; */ break; case TYPE_COMPRESSED_TCP: protocol = PPP_VJC_COMP; break; case TYPE_UNCOMPRESSED_TCP: protocol = PPP_VJC_UNCOMP; break; default: PPPDEBUG((LOG_WARNING, "pppifOutput[%d]: bad IP packet\n", pd)); LINK_STATS_INC(link.proterr); LINK_STATS_INC(link.drop); pbuf_free(headMB); return ERR_VAL; } } #endif /* VJ_SUPPORT */ tailMB = headMB; /* Build the PPP header. */ if ((sys_jiffies() - pc->lastXMit) >= PPP_MAXIDLEFLAG) { tailMB = pppAppend(PPP_FLAG, tailMB, NULL); } pc->lastXMit = sys_jiffies(); if (!pc->accomp) { fcsOut = PPP_FCS(fcsOut, PPP_ALLSTATIONS); tailMB = pppAppend(PPP_ALLSTATIONS, tailMB, &pc->outACCM); fcsOut = PPP_FCS(fcsOut, PPP_UI); tailMB = pppAppend(PPP_UI, tailMB, &pc->outACCM); } if (!pc->pcomp || protocol > 0xFF) { c = (protocol >> 8) & 0xFF; fcsOut = PPP_FCS(fcsOut, c); tailMB = pppAppend(c, tailMB, &pc->outACCM); } c = protocol & 0xFF; fcsOut = PPP_FCS(fcsOut, c); tailMB = pppAppend(c, tailMB, &pc->outACCM); /* Load packet. */ for(p = pb; p; p = p->next) { int n; u_char *sPtr; sPtr = (u_char*)p->payload; n = p->len; while (n-- > 0) { c = *sPtr++; /* Update FCS before checking for special characters. */ fcsOut = PPP_FCS(fcsOut, c); /* Copy to output buffer escaping special characters. */ tailMB = pppAppend(c, tailMB, &pc->outACCM); } } /* Add FCS and trailing flag. */ c = ~fcsOut & 0xFF; tailMB = pppAppend(c, tailMB, &pc->outACCM); c = (~fcsOut >> 8) & 0xFF; tailMB = pppAppend(c, tailMB, &pc->outACCM); tailMB = pppAppend(PPP_FLAG, tailMB, NULL); /* If we failed to complete the packet, throw it away. */ if (!tailMB) { PPPDEBUG((LOG_WARNING, "pppifOutput[%d]: Alloc err - dropping proto=%d\n", pd, protocol)); pbuf_free(headMB); LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.drop); return ERR_MEM; } /* Send it. */ PPPDEBUG((LOG_INFO, "pppifOutput[%d]: proto=0x%04X\n", pd, protocol)); nPut(pc, headMB); #endif /* PPPOS_SUPPORT */ return ERR_OK; } /* Get and set parameters for the given connection. * Return 0 on success, an error code on failure. */ int pppIOCtl(int pd, int cmd, void *arg) { PPPControl *pc = &pppControl[pd]; int st = 0; if (pd < 0 || pd >= NUM_PPP) { st = PPPERR_PARAM; } else { switch(cmd) { case PPPCTLG_UPSTATUS: /* Get the PPP up status. */ if (arg) { *(int *)arg = (int)(pc->if_up); } else { st = PPPERR_PARAM; } break; case PPPCTLS_ERRCODE: /* Set the PPP error code. */ if (arg) { pc->errCode = *(int *)arg; } else { st = PPPERR_PARAM; } break; case PPPCTLG_ERRCODE: /* Get the PPP error code. */ if (arg) { *(int *)arg = (int)(pc->errCode); } else { st = PPPERR_PARAM; } break; #if PPPOS_SUPPORT case PPPCTLG_FD: if (arg) { *(sio_fd_t *)arg = pc->fd; } else { st = PPPERR_PARAM; } break; #endif /* PPPOS_SUPPORT */ default: st = PPPERR_PARAM; break; } } return st; } /* * Return the Maximum Transmission Unit for the given PPP connection. */ u_int pppMTU(int pd) { PPPControl *pc = &pppControl[pd]; u_int st; /* Validate parameters. */ if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; } else { st = pc->mtu; } return st; } #if PPPOE_SUPPORT int pppWriteOverEthernet(int pd, const u_char *s, int n) { PPPControl *pc = &pppControl[pd]; struct pbuf *pb; /* skip address & flags */ s += 2; n -= 2; pb = pbuf_alloc(PBUF_LINK, pppoe_hdrlen + n, PBUF_RAM); if(!pb) { LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.proterr); return PPPERR_ALLOC; } pbuf_header(pb, -pppoe_hdrlen); pc->lastXMit = sys_jiffies(); MEMCPY(pb->payload, s, n); if(pppoe_xmit(pc->pppoe_sc, pb) != ERR_OK) { LINK_STATS_INC(link.err); return PPPERR_DEVICE; } LINK_STATS_INC(link.xmit); return PPPERR_NONE; } #endif /* PPPOE_SUPPORT */ /* * Write n characters to a ppp link. * RETURN: >= 0 Number of characters written * -1 Failed to write to device */ int pppWrite(int pd, const u_char *s, int n) { PPPControl *pc = &pppControl[pd]; #if PPPOS_SUPPORT u_char c; u_int fcsOut; struct pbuf *headMB, *tailMB; #endif /* PPPOS_SUPPORT */ #if PPPOE_SUPPORT if(pc->ethif) { return pppWriteOverEthernet(pd, s, n); } #endif /* PPPOE_SUPPORT */ #if PPPOS_SUPPORT headMB = pbuf_alloc(PBUF_RAW, 0, PBUF_POOL); if (headMB == NULL) { LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.proterr); return PPPERR_ALLOC; } tailMB = headMB; /* If the link has been idle, we'll send a fresh flag character to * flush any noise. */ if ((sys_jiffies() - pc->lastXMit) >= PPP_MAXIDLEFLAG) { tailMB = pppAppend(PPP_FLAG, tailMB, NULL); } pc->lastXMit = sys_jiffies(); fcsOut = PPP_INITFCS; /* Load output buffer. */ while (n-- > 0) { c = *s++; /* Update FCS before checking for special characters. */ fcsOut = PPP_FCS(fcsOut, c); /* Copy to output buffer escaping special characters. */ tailMB = pppAppend(c, tailMB, &pc->outACCM); } /* Add FCS and trailing flag. */ c = ~fcsOut & 0xFF; tailMB = pppAppend(c, tailMB, &pc->outACCM); c = (~fcsOut >> 8) & 0xFF; tailMB = pppAppend(c, tailMB, &pc->outACCM); tailMB = pppAppend(PPP_FLAG, tailMB, NULL); /* If we failed to complete the packet, throw it away. * Otherwise send it. */ if (!tailMB) { PPPDEBUG((LOG_WARNING, "pppWrite[%d]: Alloc err - dropping pbuf len=%d\n", pd, headMB->len)); /*"pppWrite[%d]: Alloc err - dropping %d:%.*H", pd, headMB->len, LWIP_MIN(headMB->len * 2, 40), headMB->payload)); */ pbuf_free(headMB); LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.proterr); return PPPERR_ALLOC; } PPPDEBUG((LOG_INFO, "pppWrite[%d]: len=%d\n", pd, headMB->len)); /* "pppWrite[%d]: %d:%.*H", pd, headMB->len, LWIP_MIN(headMB->len * 2, 40), headMB->payload)); */ nPut(pc, headMB); #endif /* PPPOS_SUPPORT */ return PPPERR_NONE; } /* * ppp_send_config - configure the transmit characteristics of * the ppp interface. */ void ppp_send_config( int unit, int mtu, u32_t asyncmap, int pcomp, int accomp) { PPPControl *pc = &pppControl[unit]; int i; pc->mtu = mtu; pc->pcomp = pcomp; pc->accomp = accomp; /* Load the ACCM bits for the 32 control codes. */ for (i = 0; i < 32/8; i++) { pc->outACCM[i] = (u_char)((asyncmap >> (8 * i)) & 0xFF); } PPPDEBUG((LOG_INFO, "ppp_send_config[%d]: outACCM=%X %X %X %X\n", unit, pc->outACCM[0], pc->outACCM[1], pc->outACCM[2], pc->outACCM[3])); } /* * ppp_set_xaccm - set the extended transmit ACCM for the interface. */ void ppp_set_xaccm(int unit, ext_accm *accm) { SMEMCPY(pppControl[unit].outACCM, accm, sizeof(ext_accm)); PPPDEBUG((LOG_INFO, "ppp_set_xaccm[%d]: outACCM=%X %X %X %X\n", unit, pppControl[unit].outACCM[0], pppControl[unit].outACCM[1], pppControl[unit].outACCM[2], pppControl[unit].outACCM[3])); } /* * ppp_recv_config - configure the receive-side characteristics of * the ppp interface. */ void ppp_recv_config( int unit, int mru, u32_t asyncmap, int pcomp, int accomp) { PPPControl *pc = &pppControl[unit]; int i; LWIP_UNUSED_ARG(accomp); LWIP_UNUSED_ARG(pcomp); LWIP_UNUSED_ARG(mru); /* Load the ACCM bits for the 32 control codes. */ for (i = 0; i < 32 / 8; i++) { pc->inACCM[i] = (u_char)(asyncmap >> (i * 8)); } PPPDEBUG((LOG_INFO, "ppp_recv_config[%d]: inACCM=%X %X %X %X\n", unit, pc->inACCM[0], pc->inACCM[1], pc->inACCM[2], pc->inACCM[3])); } #if 0 /* * ccp_test - ask kernel whether a given compression method * is acceptable for use. Returns 1 if the method and parameters * are OK, 0 if the method is known but the parameters are not OK * (e.g. code size should be reduced), or -1 if the method is unknown. */ int ccp_test( int unit, int opt_len, int for_transmit, u_char *opt_ptr) { return 0; /* XXX Currently no compression. */ } /* * ccp_flags_set - inform kernel about the current state of CCP. */ void ccp_flags_set(int unit, int isopen, int isup) { /* XXX */ } /* * ccp_fatal_error - returns 1 if decompression was disabled as a * result of an error detected after decompression of a packet, * 0 otherwise. This is necessary because of patent nonsense. */ int ccp_fatal_error(int unit) { /* XXX */ return 0; } #endif /* * get_idle_time - return how long the link has been idle. */ int get_idle_time(int u, struct ppp_idle *ip) { /* XXX */ LWIP_UNUSED_ARG(u); LWIP_UNUSED_ARG(ip); return 0; } /* * Return user specified netmask, modified by any mask we might determine * for address `addr' (in network byte order). * Here we scan through the system's list of interfaces, looking for * any non-point-to-point interfaces which might appear to be on the same * network as `addr'. If we find any, we OR in their netmask to the * user-specified netmask. */ u32_t GetMask(u32_t addr) { u32_t mask, nmask; htonl(addr); if (IN_CLASSA(addr)) { /* determine network mask for address class */ nmask = IN_CLASSA_NET; } else if (IN_CLASSB(addr)) { nmask = IN_CLASSB_NET; } else { nmask = IN_CLASSC_NET; } /* class D nets are disallowed by bad_ip_adrs */ mask = subnetMask | htonl(nmask); /* XXX * Scan through the system's network interfaces. * Get each netmask and OR them into our mask. */ return mask; } /* * sifvjcomp - config tcp header compression */ int sifvjcomp( int pd, int vjcomp, int cidcomp, int maxcid) { #if PPPOS_SUPPORT && VJ_SUPPORT PPPControl *pc = &pppControl[pd]; pc->vjEnabled = vjcomp; pc->vjComp.compressSlot = cidcomp; pc->vjComp.maxSlotIndex = maxcid; PPPDEBUG((LOG_INFO, "sifvjcomp: VJ compress enable=%d slot=%d max slot=%d\n", vjcomp, cidcomp, maxcid)); #endif /* PPPOS_SUPPORT && VJ_SUPPORT */ return 0; } /* * pppifNetifInit - netif init callback */ static err_t pppifNetifInit(struct netif *netif) { netif->name[0] = 'p'; netif->name[1] = 'p'; netif->output = pppifOutput; netif->mtu = pppMTU((int)netif->state); return ERR_OK; } /* * sifup - Config the interface up and enable IP packets to pass. */ int sifup(int pd) { PPPControl *pc = &pppControl[pd]; int st = 1; if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; PPPDEBUG((LOG_WARNING, "sifup[%d]: bad parms\n", pd)); } else { netif_remove(&pc->netif); if (netif_add(&pc->netif, &pc->addrs.our_ipaddr, &pc->addrs.netmask, &pc->addrs.his_ipaddr, (void *)pd, pppifNetifInit, ip_input)) { netif_set_up(&pc->netif); pc->if_up = 1; pc->errCode = PPPERR_NONE; PPPDEBUG((LOG_DEBUG, "sifup: unit %d: linkStatusCB=%lx errCode=%d\n", pd, pc->linkStatusCB, pc->errCode)); if(pc->linkStatusCB) { pc->linkStatusCB(pc->linkStatusCtx, pc->errCode, &pc->addrs); } } else { st = 0; PPPDEBUG((LOG_ERR, "sifup[%d]: netif_add failed\n", pd)); } } return st; } /* * sifnpmode - Set the mode for handling packets for a given NP. */ int sifnpmode(int u, int proto, enum NPmode mode) { LWIP_UNUSED_ARG(u); LWIP_UNUSED_ARG(proto); LWIP_UNUSED_ARG(mode); return 0; } /* * sifdown - Config the interface down and disable IP. */ int sifdown(int pd) { PPPControl *pc = &pppControl[pd]; int st = 1; if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; PPPDEBUG((LOG_WARNING, "sifdown[%d]: bad parms\n", pd)); } else { pc->if_up = 0; netif_remove(&pc->netif); PPPDEBUG((LOG_DEBUG, "sifdown: unit %d: linkStatusCB=%lx errCode=%d\n", pd, pc->linkStatusCB, pc->errCode)); if(pc->linkStatusCB) { pc->linkStatusCB(pc->linkStatusCtx, PPPERR_CONNECT, NULL); } } return st; } /** * sifaddr - Config the interface IP addresses and netmask. * @param pd Interface unit ??? * @param o Our IP address ??? * @param h His IP address ??? * @param m IP subnet mask ??? * @param ns1 Primary DNS * @param ns2 Secondary DNS */ int sifaddr( int pd, u32_t o, u32_t h, u32_t m, u32_t ns1, u32_t ns2) { PPPControl *pc = &pppControl[pd]; int st = 1; if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; PPPDEBUG((LOG_WARNING, "sifup[%d]: bad parms\n", pd)); } else { SMEMCPY(&pc->addrs.our_ipaddr, &o, sizeof(o)); SMEMCPY(&pc->addrs.his_ipaddr, &h, sizeof(h)); SMEMCPY(&pc->addrs.netmask, &m, sizeof(m)); SMEMCPY(&pc->addrs.dns1, &ns1, sizeof(ns1)); SMEMCPY(&pc->addrs.dns2, &ns2, sizeof(ns2)); } return st; } /** * cifaddr - Clear the interface IP addresses, and delete routes * through the interface if possible. * @param pd Interface unit ??? * @param o Our IP address ??? * @param h IP broadcast address ??? */ int cifaddr( int pd, u32_t o, u32_t h) { PPPControl *pc = &pppControl[pd]; int st = 1; LWIP_UNUSED_ARG(o); LWIP_UNUSED_ARG(h); if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; PPPDEBUG((LOG_WARNING, "sifup[%d]: bad parms\n", pd)); } else { IP4_ADDR(&pc->addrs.our_ipaddr, 0,0,0,0); IP4_ADDR(&pc->addrs.his_ipaddr, 0,0,0,0); IP4_ADDR(&pc->addrs.netmask, 255,255,255,0); IP4_ADDR(&pc->addrs.dns1, 0,0,0,0); IP4_ADDR(&pc->addrs.dns2, 0,0,0,0); } return st; } /* * sifdefaultroute - assign a default route through the address given. */ int sifdefaultroute(int pd, u32_t l, u32_t g) { PPPControl *pc = &pppControl[pd]; int st = 1; LWIP_UNUSED_ARG(l); LWIP_UNUSED_ARG(g); if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; PPPDEBUG((LOG_WARNING, "sifup[%d]: bad parms\n", pd)); } else { netif_set_default(&pc->netif); } /* TODO: check how PPP handled the netMask, previously not set by ipSetDefault */ return st; } /* * cifdefaultroute - delete a default route through the address given. */ int cifdefaultroute(int pd, u32_t l, u32_t g) { PPPControl *pc = &pppControl[pd]; int st = 1; LWIP_UNUSED_ARG(l); LWIP_UNUSED_ARG(g); if (pd < 0 || pd >= NUM_PPP || !pc->openFlag) { st = 0; PPPDEBUG((LOG_WARNING, "sifup[%d]: bad parms\n", pd)); } else { netif_set_default(NULL); } return st; } /**********************************/ /*** LOCAL FUNCTION DEFINITIONS ***/ /**********************************/ #if PPPOS_SUPPORT /* The main PPP process function. This implements the state machine according * to section 4 of RFC 1661: The Point-To-Point Protocol. */ static void pppMain(void *arg) { int pd = (int)arg; struct pbuf *p; PPPControl* pc; int c; pc = &pppControl[pd]; p = pbuf_alloc(PBUF_RAW, PPP_MRU+PPP_HDRLEN, PBUF_RAM); if (!p) { LWIP_ASSERT("p != NULL", p); pc->errCode = PPPERR_ALLOC; goto out; } /* * Start the connection and handle incoming events (packet or timeout). */ PPPDEBUG((LOG_INFO, "pppMain: unit %d: Connecting\n", pd)); tcpip_callback(pppStartCB, arg); while (lcp_phase[pd] != PHASE_DEAD) { if (pc->kill_link) { PPPDEBUG((LOG_DEBUG, "pppMain: unit %d kill_link -> pppStopCB\n", pd)); pc->errCode = PPPERR_USER; /* This will leave us at PHASE_DEAD. */ tcpip_callback(pppStopCB, arg); pc->kill_link = 0; } else if (pc->sig_hup) { PPPDEBUG((LOG_DEBUG, "pppMain: unit %d sig_hup -> pppHupCB\n", pd)); pc->sig_hup = 0; tcpip_callback(pppHupCB, arg); } else { c = sio_read(pc->fd, p->payload, p->len); if(c > 0) { pppInProc(pd, p->payload, c); } else { PPPDEBUG((LOG_DEBUG, "pppMain: unit %d sio_read len=%d returned %d\n", pd, p->len, c)); sys_msleep(1); /* give other tasks a chance to run */ } } } PPPDEBUG((LOG_INFO, "pppMain: unit %d: PHASE_DEAD\n", pd)); pppDrop(pc); /* bug fix #17726 */ pbuf_free(p); out: PPPDEBUG((LOG_DEBUG, "pppMain: unit %d: linkStatusCB=%lx errCode=%d\n", pd, pc->linkStatusCB, pc->errCode)); if(pc->linkStatusCB) { pc->linkStatusCB(pc->linkStatusCtx, pc->errCode ? pc->errCode : PPPERR_PROTOCOL, NULL); } pc->openFlag = 0; } #endif /* PPPOS_SUPPORT */ #if PPPOE_SUPPORT void pppOverEthernetInitFailed(void* arg) { PPPControl* pc; int pd = (int)arg; pppHupCB(arg); pppStopCB(arg); pc = &pppControl[pd]; pppoe_destroy(&pc->netif); pc->openFlag = 0; if(pc->linkStatusCB) { pc->linkStatusCB(pc->linkStatusCtx, pc->errCode ? pc->errCode : PPPERR_PROTOCOL, NULL); } } static void pppOverEthernetLinkStatusCB(int pd, int up) { if(up) { PPPDEBUG((LOG_INFO, "pppMain: unit %d: Connecting\n", pd)); tcpip_callback(pppStartCB, (void*)pd); } else { PPPControl* pc; pc = &pppControl[pd]; tcpip_callback(pppOverEthernetInitFailed, (void*)pd); } } #endif /* PPPOE_SUPPORT */ struct pbuf * pppSingleBuf(struct pbuf *p) { struct pbuf *q, *b; u_char *pl; if(p->tot_len == p->len) { return p; } q = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM); if(!q) { PPPDEBUG((LOG_ERR, "pppSingleBuf: unable to alloc new buf (%d)\n", p->tot_len)); return p; /* live dangerously */ } for(b = p, pl = q->payload; b != NULL; b = b->next) { MEMCPY(pl, b->payload, b->len); pl += b->len; } pbuf_free(p); return q; } struct pppInputHeader { int unit; u16_t proto; }; /* * Pass the processed input packet to the appropriate handler. * This function and all handlers run in the context of the tcpip_thread */ static void pppInput(void *arg) { struct pbuf *nb = (struct pbuf *)arg; u16_t protocol; int pd; pd = ((struct pppInputHeader *)nb->payload)->unit; protocol = ((struct pppInputHeader *)nb->payload)->proto; if(pbuf_header(nb, -(int)sizeof(struct pppInputHeader))) { LWIP_ASSERT("pbuf_header failed\n", 0); goto drop; } LINK_STATS_INC(link.recv); /* * Toss all non-LCP packets unless LCP is OPEN. * Until we get past the authentication phase, toss all packets * except LCP, LQR and authentication packets. */ if((lcp_phase[pd] <= PHASE_AUTHENTICATE) && (protocol != PPP_LCP)) { if(!((protocol == PPP_LQR) || (protocol == PPP_PAP) || (protocol == PPP_CHAP)) || (lcp_phase[pd] != PHASE_AUTHENTICATE)) { PPPDEBUG((LOG_INFO, "pppInput: discarding proto 0x%04X in phase %d\n", protocol, lcp_phase[pd])); goto drop; } } switch(protocol) { case PPP_VJC_COMP: /* VJ compressed TCP */ #if VJ_SUPPORT PPPDEBUG((LOG_INFO, "pppInput[%d]: vj_comp in pbuf len=%d\n", pd, nb->len)); /* * Clip off the VJ header and prepend the rebuilt TCP/IP header and * pass the result to IP. */ if ((vj_uncompress_tcp(&nb, &pppControl[pd].vjComp) >= 0) && (pppControl[pd].netif.input)) { pppControl[pd].netif.input(nb, &pppControl[pd].netif); return; } /* Something's wrong so drop it. */ PPPDEBUG((LOG_WARNING, "pppInput[%d]: Dropping VJ compressed\n", pd)); #else /* VJ_SUPPORT */ /* No handler for this protocol so drop the packet. */ PPPDEBUG((LOG_INFO, "pppInput[%d]: drop VJ Comp in %d:%s\n", pd, nb->len, nb->payload)); #endif /* VJ_SUPPORT */ break; case PPP_VJC_UNCOMP: /* VJ uncompressed TCP */ #if VJ_SUPPORT PPPDEBUG((LOG_INFO, "pppInput[%d]: vj_un in pbuf len=%d\n", pd, nb->len)); /* * Process the TCP/IP header for VJ header compression and then pass * the packet to IP. */ if ((vj_uncompress_uncomp(nb, &pppControl[pd].vjComp) >= 0) && pppControl[pd].netif.input) { pppControl[pd].netif.input(nb, &pppControl[pd].netif); return; } /* Something's wrong so drop it. */ PPPDEBUG((LOG_WARNING, "pppInput[%d]: Dropping VJ uncompressed\n", pd)); #else /* VJ_SUPPORT */ /* No handler for this protocol so drop the packet. */ PPPDEBUG((LOG_INFO, "pppInput[%d]: drop VJ UnComp in %d:.*H\n", pd, nb->len, LWIP_MIN(nb->len * 2, 40), nb->payload)); #endif /* VJ_SUPPORT */ break; case PPP_IP: /* Internet Protocol */ PPPDEBUG((LOG_INFO, "pppInput[%d]: ip in pbuf len=%d\n", pd, nb->len)); if (pppControl[pd].netif.input) { pppControl[pd].netif.input(nb, &pppControl[pd].netif); return; } break; default: { struct protent *protp; int i; /* * Upcall the proper protocol input routine. */ for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) { if (protp->protocol == protocol && protp->enabled_flag) { PPPDEBUG((LOG_INFO, "pppInput[%d]: %s len=%d\n", pd, protp->name, nb->len)); nb = pppSingleBuf(nb); (*protp->input)(pd, nb->payload, nb->len); goto out; } } /* No handler for this protocol so reject the packet. */ PPPDEBUG((LOG_INFO, "pppInput[%d]: rejecting unsupported proto 0x%04X len=%d\n", pd, protocol, nb->len)); if (pbuf_header(nb, sizeof(protocol))) { LWIP_ASSERT("pbuf_header failed\n", 0); goto drop; } #if BYTE_ORDER == LITTLE_ENDIAN protocol = htons(protocol); SMEMCPY(nb->payload, &protocol, sizeof(protocol)); #endif /* BYTE_ORDER == LITTLE_ENDIAN */ lcp_sprotrej(pd, nb->payload, nb->len); } break; } drop: LINK_STATS_INC(link.drop); out: pbuf_free(nb); return; } #if PPPOS_SUPPORT /* * Drop the input packet. */ static void pppDrop(PPPControl *pc) { if (pc->inHead != NULL) { #if 0 PPPDEBUG((LOG_INFO, "pppDrop: %d:%.*H\n", pc->inHead->len, min(60, pc->inHead->len * 2), pc->inHead->payload)); #endif PPPDEBUG((LOG_INFO, "pppDrop: pbuf len=%d\n", pc->inHead->len)); if (pc->inTail && (pc->inTail != pc->inHead)) { pbuf_free(pc->inTail); } pbuf_free(pc->inHead); pc->inHead = NULL; pc->inTail = NULL; } #if VJ_SUPPORT vj_uncompress_err(&pc->vjComp); #endif /* VJ_SUPPORT */ LINK_STATS_INC(link.drop); } /** * Process a received octet string. */ static void pppInProc(int pd, u_char *s, int l) { PPPControl *pc = &pppControl[pd]; struct pbuf *nextNBuf; u_char curChar; PPPDEBUG((LOG_DEBUG, "pppInProc[%d]: got %d bytes\n", pd, l)); while (l-- > 0) { curChar = *s++; /* Handle special characters. */ if (ESCAPE_P(pc->inACCM, curChar)) { /* Check for escape sequences. */ /* XXX Note that this does not handle an escaped 0x5d character which * would appear as an escape character. Since this is an ASCII ']' * and there is no reason that I know of to escape it, I won't complicate * the code to handle this case. GLL */ if (curChar == PPP_ESCAPE) { pc->inEscaped = 1; /* Check for the flag character. */ } else if (curChar == PPP_FLAG) { /* If this is just an extra flag character, ignore it. */ if (pc->inState <= PDADDRESS) { /* ignore it */; /* If we haven't received the packet header, drop what has come in. */ } else if (pc->inState < PDDATA) { PPPDEBUG((LOG_WARNING, "pppInProc[%d]: Dropping incomplete packet %d\n", pd, pc->inState)); LINK_STATS_INC(link.lenerr); pppDrop(pc); /* If the fcs is invalid, drop the packet. */ } else if (pc->inFCS != PPP_GOODFCS) { PPPDEBUG((LOG_INFO, "pppInProc[%d]: Dropping bad fcs 0x%04X proto=0x%04X\n", pd, pc->inFCS, pc->inProtocol)); LINK_STATS_INC(link.chkerr); pppDrop(pc); /* Otherwise it's a good packet so pass it on. */ } else { /* Trim off the checksum. */ if(pc->inTail->len >= 2) { pc->inTail->len -= 2; pc->inTail->tot_len = pc->inTail->len; if (pc->inTail != pc->inHead) { pbuf_cat(pc->inHead, pc->inTail); } } else { pc->inTail->tot_len = pc->inTail->len; if (pc->inTail != pc->inHead) { pbuf_cat(pc->inHead, pc->inTail); } pbuf_realloc(pc->inHead, pc->inHead->tot_len - 2); } /* Dispatch the packet thereby consuming it. */ if(tcpip_callback(pppInput, pc->inHead) != ERR_OK) { PPPDEBUG((LOG_ERR, "pppInProc[%d]: tcpip_callback() failed, dropping packet\n", pd)); pbuf_free(pc->inHead); LINK_STATS_INC(link.drop); } pc->inHead = NULL; pc->inTail = NULL; } /* Prepare for a new packet. */ pc->inFCS = PPP_INITFCS; pc->inState = PDADDRESS; pc->inEscaped = 0; /* Other characters are usually control characters that may have * been inserted by the physical layer so here we just drop them. */ } else { PPPDEBUG((LOG_WARNING, "pppInProc[%d]: Dropping ACCM char <%d>\n", pd, curChar)); } /* Process other characters. */ } else { /* Unencode escaped characters. */ if (pc->inEscaped) { pc->inEscaped = 0; curChar ^= PPP_TRANS; } /* Process character relative to current state. */ switch(pc->inState) { case PDIDLE: /* Idle state - waiting. */ /* Drop the character if it's not 0xff * we would have processed a flag character above. */ if (curChar != PPP_ALLSTATIONS) { break; } /* Fall through */ case PDSTART: /* Process start flag. */ /* Prepare for a new packet. */ pc->inFCS = PPP_INITFCS; /* Fall through */ case PDADDRESS: /* Process address field. */ if (curChar == PPP_ALLSTATIONS) { pc->inState = PDCONTROL; break; } /* Else assume compressed address and control fields so * fall through to get the protocol... */ case PDCONTROL: /* Process control field. */ /* If we don't get a valid control code, restart. */ if (curChar == PPP_UI) { pc->inState = PDPROTOCOL1; break; } #if 0 else { PPPDEBUG((LOG_WARNING, "pppInProc[%d]: Invalid control <%d>\n", pd, curChar)); pc->inState = PDSTART; } #endif case PDPROTOCOL1: /* Process protocol field 1. */ /* If the lower bit is set, this is the end of the protocol * field. */ if (curChar & 1) { pc->inProtocol = curChar; pc->inState = PDDATA; } else { pc->inProtocol = (u_int)curChar << 8; pc->inState = PDPROTOCOL2; } break; case PDPROTOCOL2: /* Process protocol field 2. */ pc->inProtocol |= curChar; pc->inState = PDDATA; break; case PDDATA: /* Process data byte. */ /* Make space to receive processed data. */ if (pc->inTail == NULL || pc->inTail->len == PBUF_POOL_BUFSIZE) { if(pc->inTail) { pc->inTail->tot_len = pc->inTail->len; if (pc->inTail != pc->inHead) { pbuf_cat(pc->inHead, pc->inTail); } } /* If we haven't started a packet, we need a packet header. */ nextNBuf = pbuf_alloc(PBUF_RAW, 0, PBUF_POOL); if (nextNBuf == NULL) { /* No free buffers. Drop the input packet and let the * higher layers deal with it. Continue processing * the received pbuf chain in case a new packet starts. */ PPPDEBUG((LOG_ERR, "pppInProc[%d]: NO FREE MBUFS!\n", pd)); LINK_STATS_INC(link.memerr); pppDrop(pc); pc->inState = PDSTART; /* Wait for flag sequence. */ break; } if (pc->inHead == NULL) { struct pppInputHeader *pih = nextNBuf->payload; pih->unit = pd; pih->proto = pc->inProtocol; nextNBuf->len += sizeof(*pih); pc->inHead = nextNBuf; } pc->inTail = nextNBuf; } /* Load character into buffer. */ ((u_char*)pc->inTail->payload)[pc->inTail->len++] = curChar; break; } /* update the frame check sequence number. */ pc->inFCS = PPP_FCS(pc->inFCS, curChar); } } avRandomize(); } #endif /* PPPOS_SUPPORT */ #if PPPOE_SUPPORT void pppInProcOverEthernet(int pd, struct pbuf *pb) { struct pppInputHeader *pih; u16_t inProtocol; if(pb->len < sizeof(inProtocol)) { PPPDEBUG((LOG_ERR, "pppInProcOverEthernet: too small for protocol field\n")); goto drop; } inProtocol = (((u8_t *)pb->payload)[0] << 8) | ((u8_t*)pb->payload)[1]; /* make room for pppInputHeader - should not fail */ if (pbuf_header(pb, sizeof(*pih) - sizeof(inProtocol)) != 0) { PPPDEBUG((LOG_ERR, "pppInProcOverEthernet: could not allocate room for header\n")); goto drop; } pih = pb->payload; pih->unit = pd; pih->proto = inProtocol; /* Dispatch the packet thereby consuming it. */ if(tcpip_callback(pppInput, pb) != ERR_OK) { PPPDEBUG((LOG_ERR, "pppInProcOverEthernet[%d]: tcpip_callback() failed, dropping packet\n", pd)); goto drop; } return; drop: LINK_STATS_INC(link.drop); pbuf_free(pb); return; } #endif /* PPPOE_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/ppp.h000066400000000000000000000371371224274632000230020ustar00rootroot00000000000000/***************************************************************************** * ppp.h - Network Point to Point Protocol header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1997 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 97-11-05 Guy Lancaster , Global Election Systems Inc. * Original derived from BSD codes. *****************************************************************************/ #ifndef PPP_H #define PPP_H #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "lwip/def.h" #include "lwip/sio.h" #include "lwip/api.h" #include "lwip/sockets.h" #include "lwip/stats.h" #include "lwip/mem.h" #include "lwip/tcpip.h" #include "lwip/netif.h" /* * pppd.h - PPP daemon global declarations. * * Copyright (c) 1989 Carnegie Mellon University. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by Carnegie Mellon University. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * */ /* * ppp_defs.h - PPP definitions. * * Copyright (c) 1994 The Australian National University. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation is hereby granted, provided that the above copyright * notice appears in all copies. This software is provided without any * warranty, express or implied. The Australian National University * makes no representations about the suitability of this software for * any purpose. * * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. */ #define TIMEOUT(f, a, t) sys_untimeout((f), (a)), sys_timeout((t)*1000, (f), (a)) #define UNTIMEOUT(f, a) sys_untimeout((f), (a)) #ifndef __u_char_defined /* Type definitions for BSD code. */ typedef unsigned long u_long; typedef unsigned int u_int; typedef unsigned short u_short; typedef unsigned char u_char; #endif /* * Constants and structures defined by the internet system, * Per RFC 790, September 1981, and numerous additions. */ /* * The basic PPP frame. */ #define PPP_HDRLEN 4 /* octets for standard ppp header */ #define PPP_FCSLEN 2 /* octets for FCS */ /* * Significant octet values. */ #define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ #define PPP_UI 0x03 /* Unnumbered Information */ #define PPP_FLAG 0x7e /* Flag Sequence */ #define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ #define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ /* * Protocol field values. */ #define PPP_IP 0x21 /* Internet Protocol */ #define PPP_AT 0x29 /* AppleTalk Protocol */ #define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ #define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ #define PPP_COMP 0xfd /* compressed packet */ #define PPP_IPCP 0x8021 /* IP Control Protocol */ #define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ #define PPP_CCP 0x80fd /* Compression Control Protocol */ #define PPP_LCP 0xc021 /* Link Control Protocol */ #define PPP_PAP 0xc023 /* Password Authentication Protocol */ #define PPP_LQR 0xc025 /* Link Quality Report protocol */ #define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ #define PPP_CBCP 0xc029 /* Callback Control Protocol */ /* * Values for FCS calculations. */ #define PPP_INITFCS 0xffff /* Initial FCS value */ #define PPP_GOODFCS 0xf0b8 /* Good final FCS value */ #define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff]) /* * Extended asyncmap - allows any character to be escaped. */ typedef u_char ext_accm[32]; /* * What to do with network protocol (NP) packets. */ enum NPmode { NPMODE_PASS, /* pass the packet through */ NPMODE_DROP, /* silently drop the packet */ NPMODE_ERROR, /* return an error */ NPMODE_QUEUE /* save it up for later. */ }; /* * Inline versions of get/put char/short/long. * Pointer is advanced; we assume that both arguments * are lvalues and will already be in registers. * cp MUST be u_char *. */ #define GETCHAR(c, cp) { \ (c) = *(cp)++; \ } #define PUTCHAR(c, cp) { \ *(cp)++ = (u_char) (c); \ } #define GETSHORT(s, cp) { \ (s) = *(cp); (cp)++; (s) <<= 8; \ (s) |= *(cp); (cp)++; \ } #define PUTSHORT(s, cp) { \ *(cp)++ = (u_char) ((s) >> 8); \ *(cp)++ = (u_char) (s & 0xff); \ } #define GETLONG(l, cp) { \ (l) = *(cp); (cp)++; (l) <<= 8; \ (l) |= *(cp); (cp)++; (l) <<= 8; \ (l) |= *(cp); (cp)++; (l) <<= 8; \ (l) |= *(cp); (cp)++; \ } #define PUTLONG(l, cp) { \ *(cp)++ = (u_char) ((l) >> 24); \ *(cp)++ = (u_char) ((l) >> 16); \ *(cp)++ = (u_char) ((l) >> 8); \ *(cp)++ = (u_char) (l); \ } #define INCPTR(n, cp) ((cp) += (n)) #define DECPTR(n, cp) ((cp) -= (n)) #define BCMP(s0, s1, l) memcmp((u_char *)(s0), (u_char *)(s1), (l)) #define BCOPY(s, d, l) MEMCPY((d), (s), (l)) #define BZERO(s, n) memset(s, 0, n) #if PPP_DEBUG #define PRINTMSG(m, l) { m[l] = '\0'; ppp_trace(LOG_INFO, "Remote message: %s\n", m); } #else /* PPP_DEBUG */ #define PRINTMSG(m, l) #endif /* PPP_DEBUG */ /* * MAKEHEADER - Add PPP Header fields to a packet. */ #define MAKEHEADER(p, t) { \ PUTCHAR(PPP_ALLSTATIONS, p); \ PUTCHAR(PPP_UI, p); \ PUTSHORT(t, p); } /************************* *** PUBLIC DEFINITIONS *** *************************/ /* Error codes. */ #define PPPERR_NONE 0 /* No error. */ #define PPPERR_PARAM -1 /* Invalid parameter. */ #define PPPERR_OPEN -2 /* Unable to open PPP session. */ #define PPPERR_DEVICE -3 /* Invalid I/O device for PPP. */ #define PPPERR_ALLOC -4 /* Unable to allocate resources. */ #define PPPERR_USER -5 /* User interrupt. */ #define PPPERR_CONNECT -6 /* Connection lost. */ #define PPPERR_AUTHFAIL -7 /* Failed authentication challenge. */ #define PPPERR_PROTOCOL -8 /* Failed to meet protocol. */ /* * PPP IOCTL commands. */ /* * Get the up status - 0 for down, non-zero for up. The argument must * point to an int. */ #define PPPCTLG_UPSTATUS 100 /* Get the up status - 0 down else up */ #define PPPCTLS_ERRCODE 101 /* Set the error code */ #define PPPCTLG_ERRCODE 102 /* Get the error code */ #define PPPCTLG_FD 103 /* Get the fd associated with the ppp */ /************************ *** PUBLIC DATA TYPES *** ************************/ /* * The following struct gives the addresses of procedures to call * for a particular protocol. */ struct protent { u_short protocol; /* PPP protocol number */ /* Initialization procedure */ void (*init) (int unit); /* Process a received packet */ void (*input) (int unit, u_char *pkt, int len); /* Process a received protocol-reject */ void (*protrej) (int unit); /* Lower layer has come up */ void (*lowerup) (int unit); /* Lower layer has gone down */ void (*lowerdown) (int unit); /* Open the protocol */ void (*open) (int unit); /* Close the protocol */ void (*close) (int unit, char *reason); #if 0 /* Print a packet in readable form */ int (*printpkt) (u_char *pkt, int len, void (*printer) (void *, char *, ...), void *arg); /* Process a received data packet */ void (*datainput) (int unit, u_char *pkt, int len); #endif int enabled_flag; /* 0 iff protocol is disabled */ char *name; /* Text name of protocol */ #if 0 /* Check requested options, assign defaults */ void (*check_options) (u_long); /* Configure interface for demand-dial */ int (*demand_conf) (int unit); /* Say whether to bring up link for this pkt */ int (*active_pkt) (u_char *pkt, int len); #endif }; /* * The following structure records the time in seconds since * the last NP packet was sent or received. */ struct ppp_idle { u_short xmit_idle; /* seconds since last NP packet sent */ u_short recv_idle; /* seconds since last NP packet received */ }; struct ppp_settings { u_int disable_defaultip : 1; /* Don't use hostname for default IP addrs */ u_int auth_required : 1; /* Peer is required to authenticate */ u_int explicit_remote : 1; /* remote_name specified with remotename opt */ u_int refuse_pap : 1; /* Don't wanna auth. ourselves with PAP */ u_int refuse_chap : 1; /* Don't wanna auth. ourselves with CHAP */ u_int usehostname : 1; /* Use hostname for our_name */ u_int usepeerdns : 1; /* Ask peer for DNS adds */ u_short idle_time_limit; /* Shut down link if idle for this long */ int maxconnect; /* Maximum connect time (seconds) */ char user [MAXNAMELEN + 1]; /* Username for PAP */ char passwd [MAXSECRETLEN + 1]; /* Password for PAP, secret for CHAP */ char our_name [MAXNAMELEN + 1]; /* Our name for authentication purposes */ char remote_name[MAXNAMELEN + 1]; /* Peer's name for authentication */ }; struct ppp_addrs { struct ip_addr our_ipaddr, his_ipaddr, netmask, dns1, dns2; }; /***************************** *** PUBLIC DATA STRUCTURES *** *****************************/ /* Buffers for outgoing packets. */ extern u_char *outpacket_buf[NUM_PPP]; extern struct ppp_settings ppp_settings; extern struct protent *ppp_protocols[]; /* Table of pointers to supported protocols */ /*********************** *** PUBLIC FUNCTIONS *** ***********************/ /* Initialize the PPP subsystem. */ err_t pppInit(void); /* Warning: Using PPPAUTHTYPE_ANY might have security consequences. * RFC 1994 says: * * In practice, within or associated with each PPP server, there is a * database which associates "user" names with authentication * information ("secrets"). It is not anticipated that a particular * named user would be authenticated by multiple methods. This would * make the user vulnerable to attacks which negotiate the least secure * method from among a set (such as PAP rather than CHAP). If the same * secret was used, PAP would reveal the secret to be used later with * CHAP. * * Instead, for each user name there should be an indication of exactly * one method used to authenticate that user name. If a user needs to * make use of different authentication methods under different * circumstances, then distinct user names SHOULD be employed, each of * which identifies exactly one authentication method. * */ enum pppAuthType { PPPAUTHTYPE_NONE, PPPAUTHTYPE_ANY, PPPAUTHTYPE_PAP, PPPAUTHTYPE_CHAP }; void pppSetAuth(enum pppAuthType authType, const char *user, const char *passwd); /* * Open a new PPP connection using the given serial I/O device. * This initializes the PPP control block but does not * attempt to negotiate the LCP session. * Return a new PPP connection descriptor on success or * an error code (negative) on failure. */ int pppOverSerialOpen(sio_fd_t fd, void (*linkStatusCB)(void *ctx, int errCode, void *arg), void *linkStatusCtx); /* * Open a new PPP Over Ethernet (PPPOE) connection. */ int pppOverEthernetOpen(struct netif *ethif, const char *service_name, const char *concentrator_name, void (*linkStatusCB)(void *ctx, int errCode, void *arg), void *linkStatusCtx); /* for source code compatibility */ #define pppOpen(fd,cb,ls) pppOverSerialOpen(fd,cb,ls) /* * Close a PPP connection and release the descriptor. * Any outstanding packets in the queues are dropped. * Return 0 on success, an error code on failure. */ int pppClose(int pd); /* * Indicate to the PPP process that the line has disconnected. */ void pppSigHUP(int pd); /* * Get and set parameters for the given connection. * Return 0 on success, an error code on failure. */ int pppIOCtl(int pd, int cmd, void *arg); /* * Return the Maximum Transmission Unit for the given PPP connection. */ u_int pppMTU(int pd); /* * Write n characters to a ppp link. * RETURN: >= 0 Number of characters written, -1 Failed to write to device. */ int pppWrite(int pd, const u_char *s, int n); void pppInProcOverEthernet(int pd, struct pbuf *pb); struct pbuf *pppSingleBuf(struct pbuf *p); void pppLinkTerminated(int pd); void pppLinkDown(int pd); void pppMainWakeup(int pd); /* Configure i/f transmit parameters */ void ppp_send_config (int, int, u32_t, int, int); /* Set extended transmit ACCM */ void ppp_set_xaccm (int, ext_accm *); /* Configure i/f receive parameters */ void ppp_recv_config (int, int, u32_t, int, int); /* Find out how long link has been idle */ int get_idle_time (int, struct ppp_idle *); /* Configure VJ TCP header compression */ int sifvjcomp (int, int, int, int); /* Configure i/f down (for IP) */ int sifup (int); /* Set mode for handling packets for proto */ int sifnpmode (int u, int proto, enum NPmode mode); /* Configure i/f down (for IP) */ int sifdown (int); /* Configure IP addresses for i/f */ int sifaddr (int, u32_t, u32_t, u32_t, u32_t, u32_t); /* Reset i/f IP addresses */ int cifaddr (int, u32_t, u32_t); /* Create default route through i/f */ int sifdefaultroute (int, u32_t, u32_t); /* Delete default route through i/f */ int cifdefaultroute (int, u32_t, u32_t); /* Get appropriate netmask for address */ u32_t GetMask (u32_t); #endif /* PPP_SUPPORT */ #endif /* PPP_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/ppp_oe.c000066400000000000000000001112301224274632000234430ustar00rootroot00000000000000/***************************************************************************** * ppp_oe.c - PPP Over Ethernet implementation for lwIP. * * Copyright (c) 2006 by Marc Boucher, Services Informatiques (MBSI) inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 06-01-01 Marc Boucher * Ported to lwIP. *****************************************************************************/ /* based on NetBSD: if_pppoe.c,v 1.64 2006/01/31 23:50:15 martin Exp */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Martin Husemann . * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include "lwip/opt.h" #if PPPOE_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "lwip/sys.h" #include "netif/ppp_oe.h" #include "netif/etharp.h" #include #include /** @todo Replace this part with a simple list like other lwIP lists */ #ifndef _SYS_QUEUE_H_ #define _SYS_QUEUE_H_ /* * A list is headed by a single forward pointer (or an array of forward * pointers for a hash table header). The elements are doubly linked * so that an arbitrary element can be removed without a need to * traverse the list. New elements can be added to the list before * or after an existing element or at the head of the list. A list * may only be traversed in the forward direction. * * For details on the use of these macros, see the queue(3) manual page. */ /* * List declarations. */ #define LIST_HEAD(name, type) \ struct name { \ struct type *lh_first; /* first element */ \ } #define LIST_HEAD_INITIALIZER(head) \ { NULL } #define LIST_ENTRY(type) \ struct { \ struct type *le_next; /* next element */ \ struct type **le_prev; /* address of previous next element */ \ } /* * List functions. */ #define LIST_EMPTY(head) ((head)->lh_first == NULL) #define LIST_FIRST(head) ((head)->lh_first) #define LIST_FOREACH(var, head, field) \ for ((var) = LIST_FIRST((head)); \ (var); \ (var) = LIST_NEXT((var), field)) #define LIST_INIT(head) do { \ LIST_FIRST((head)) = NULL; \ } while (0) #define LIST_INSERT_AFTER(listelm, elm, field) do { \ if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL) \ LIST_NEXT((listelm), field)->field.le_prev = \ &LIST_NEXT((elm), field); \ LIST_NEXT((listelm), field) = (elm); \ (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ } while (0) #define LIST_INSERT_BEFORE(listelm, elm, field) do { \ (elm)->field.le_prev = (listelm)->field.le_prev; \ LIST_NEXT((elm), field) = (listelm); \ *(listelm)->field.le_prev = (elm); \ (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ } while (0) #define LIST_INSERT_HEAD(head, elm, field) do { \ if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field); \ LIST_FIRST((head)) = (elm); \ (elm)->field.le_prev = &LIST_FIRST((head)); \ } while (0) #define LIST_NEXT(elm, field) ((elm)->field.le_next) #define LIST_REMOVE(elm, field) do { \ if (LIST_NEXT((elm), field) != NULL) \ LIST_NEXT((elm), field)->field.le_prev = \ (elm)->field.le_prev; \ *(elm)->field.le_prev = LIST_NEXT((elm), field); \ } while (0) #endif /* !_SYS_QUEUE_H_ */ /* Add a 16 bit unsigned value to a buffer pointed to by PTR */ #define PPPOE_ADD_16(PTR, VAL) \ *(PTR)++ = (VAL) / 256; \ *(PTR)++ = (VAL) % 256 /* Add a complete PPPoE header to the buffer pointed to by PTR */ #define PPPOE_ADD_HEADER(PTR, CODE, SESS, LEN) \ *(PTR)++ = PPPOE_VERTYPE; \ *(PTR)++ = (CODE); \ PPPOE_ADD_16(PTR, SESS); \ PPPOE_ADD_16(PTR, LEN) #define PPPOE_DISC_TIMEOUT (5*1000) /* base for quick timeout calculation */ #define PPPOE_SLOW_RETRY (60*1000) /* persistent retry interval */ #define PPPOE_DISC_MAXPADI 4 /* retry PADI four times (quickly) */ #define PPPOE_DISC_MAXPADR 2 /* retry PADR twice */ #ifdef PPPOE_SERVER /* from if_spppsubr.c */ #define IFF_PASSIVE IFF_LINK0 /* wait passively for connection */ #endif struct pppoe_softc { LIST_ENTRY(pppoe_softc) sc_list; struct netif *sc_ethif; /* ethernet interface we are using */ int sc_pd; /* ppp unit number */ void (*sc_linkStatusCB)(int pd, int up); int sc_state; /* discovery phase or session connected */ struct eth_addr sc_dest; /* hardware address of concentrator */ u16_t sc_session; /* PPPoE session id */ char *sc_service_name; /* if != NULL: requested name of service */ char *sc_concentrator_name; /* if != NULL: requested concentrator id */ u8_t *sc_ac_cookie; /* content of AC cookie we must echo back */ size_t sc_ac_cookie_len; /* length of cookie data */ #ifdef PPPOE_SERVER u8_t *sc_hunique; /* content of host unique we must echo back */ size_t sc_hunique_len; /* length of host unique */ #endif int sc_padi_retried; /* number of PADI retries already done */ int sc_padr_retried; /* number of PADR retries already done */ }; /* input routines */ static void pppoe_dispatch_disc_pkt(struct netif *, struct pbuf *); /* management routines */ static int pppoe_do_disconnect(struct pppoe_softc *); static void pppoe_abort_connect(struct pppoe_softc *); static void pppoe_clear_softc(struct pppoe_softc *, const char *); /* internal timeout handling */ static void pppoe_timeout(void *); /* sending actual protocol controll packets */ static err_t pppoe_send_padi(struct pppoe_softc *); static err_t pppoe_send_padr(struct pppoe_softc *); #ifdef PPPOE_SERVER static err_t pppoe_send_pado(struct pppoe_softc *); static err_t pppoe_send_pads(struct pppoe_softc *); #endif static err_t pppoe_send_padt(struct netif *, u_int, const u8_t *); /* internal helper functions */ static struct pppoe_softc * pppoe_find_softc_by_session(u_int, struct netif *); static struct pppoe_softc * pppoe_find_softc_by_hunique(u8_t *, size_t, struct netif *); static LIST_HEAD(pppoe_softc_head, pppoe_softc) pppoe_softc_list; int pppoe_hdrlen; void pppoe_init(void) { pppoe_hdrlen = sizeof(struct eth_hdr) + PPPOE_HEADERLEN; LIST_INIT(&pppoe_softc_list); } err_t pppoe_create(struct netif *ethif, int pd, void (*linkStatusCB)(int pd, int up), struct pppoe_softc **scptr) { struct pppoe_softc *sc; sc = mem_malloc(sizeof(struct pppoe_softc)); if(!sc) { *scptr = NULL; return ERR_MEM; } memset(sc, 0, sizeof(struct pppoe_softc)); /* changed to real address later */ MEMCPY(&sc->sc_dest, ethbroadcast.addr, sizeof(sc->sc_dest)); sc->sc_pd = pd; sc->sc_linkStatusCB = linkStatusCB; sc->sc_ethif = ethif; LIST_INSERT_HEAD(&pppoe_softc_list, sc, sc_list); *scptr = sc; return ERR_OK; } err_t pppoe_destroy(struct netif *ifp) { struct pppoe_softc * sc; LIST_FOREACH(sc, &pppoe_softc_list, sc_list) { if (sc->sc_ethif == ifp) { break; } } if(!(sc && (sc->sc_ethif == ifp))) { return ERR_IF; } tcpip_untimeout(pppoe_timeout, sc); LIST_REMOVE(sc, sc_list); if (sc->sc_concentrator_name) { mem_free(sc->sc_concentrator_name); } if (sc->sc_service_name) { mem_free(sc->sc_service_name); } if (sc->sc_ac_cookie) { mem_free(sc->sc_ac_cookie); } mem_free(sc); return ERR_OK; } /* * Find the interface handling the specified session. * Note: O(number of sessions open), this is a client-side only, mean * and lean implementation, so number of open sessions typically should * be 1. */ static struct pppoe_softc * pppoe_find_softc_by_session(u_int session, struct netif *rcvif) { struct pppoe_softc *sc; if (session == 0) { return NULL; } LIST_FOREACH(sc, &pppoe_softc_list, sc_list) { if (sc->sc_state == PPPOE_STATE_SESSION && sc->sc_session == session) { if (sc->sc_ethif == rcvif) { return sc; } else { return NULL; } } } return NULL; } /* Check host unique token passed and return appropriate softc pointer, * or NULL if token is bogus. */ static struct pppoe_softc * pppoe_find_softc_by_hunique(u8_t *token, size_t len, struct netif *rcvif) { struct pppoe_softc *sc, *t; if (LIST_EMPTY(&pppoe_softc_list)) { return NULL; } if (len != sizeof sc) { return NULL; } MEMCPY(&t, token, len); LIST_FOREACH(sc, &pppoe_softc_list, sc_list) { if (sc == t) { break; } } if (sc == NULL) { PPPDEBUG((LOG_DEBUG, "pppoe: alien host unique tag, no session found\n")); return NULL; } /* should be safe to access *sc now */ if (sc->sc_state < PPPOE_STATE_PADI_SENT || sc->sc_state >= PPPOE_STATE_SESSION) { printf("%c%c%"U16_F": host unique tag found, but it belongs to a connection in state %d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, sc->sc_state); return NULL; } if (sc->sc_ethif != rcvif) { printf("%c%c%"U16_F": wrong interface, not accepting host unique\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num); return NULL; } return sc; } static void pppoe_linkstatus_up(void *arg) { struct pppoe_softc *sc = (struct pppoe_softc*)arg; sc->sc_linkStatusCB(sc->sc_pd, 1); } /* analyze and handle a single received packet while not in session state */ static void pppoe_dispatch_disc_pkt(struct netif *netif, struct pbuf *pb) { u16_t tag, len; u16_t session, plen; struct pppoe_softc *sc; const char *err_msg; char devname[6]; char *error; u8_t *ac_cookie; size_t ac_cookie_len; #ifdef PPPOE_SERVER u8_t *hunique; size_t hunique_len; #endif struct pppoehdr *ph; struct pppoetag pt; int off = 0, err, errortag; struct eth_hdr *ethhdr; pb = pppSingleBuf(pb); strcpy(devname, "pppoe"); /* as long as we don't know which instance */ err_msg = NULL; errortag = 0; if (pb->len < sizeof(*ethhdr)) { goto done; } ethhdr = (struct eth_hdr *)pb->payload; off += sizeof(*ethhdr); ac_cookie = NULL; ac_cookie_len = 0; #ifdef PPPOE_SERVER hunique = NULL; hunique_len = 0; #endif session = 0; if (pb->len - off <= PPPOE_HEADERLEN) { printf("pppoe: packet too short: %d\n", pb->len); goto done; } ph = (struct pppoehdr *) (ethhdr + 1); if (ph->vertype != PPPOE_VERTYPE) { printf("pppoe: unknown version/type packet: 0x%x\n", ph->vertype); goto done; } session = ntohs(ph->session); plen = ntohs(ph->plen); off += sizeof(*ph); if (plen + off > pb->len) { printf("pppoe: packet content does not fit: data available = %d, packet size = %u\n", pb->len - off, plen); goto done; } if(pb->tot_len == pb->len) { pb->tot_len = pb->len = off + plen; /* ignore trailing garbage */ } tag = 0; len = 0; sc = NULL; while (off + sizeof(pt) <= pb->len) { MEMCPY(&pt, (u8_t*)pb->payload + off, sizeof(pt)); tag = ntohs(pt.tag); len = ntohs(pt.len); if (off + sizeof(pt) + len > pb->len) { printf("pppoe: tag 0x%x len 0x%x is too long\n", tag, len); goto done; } switch (tag) { case PPPOE_TAG_EOL: goto breakbreak; case PPPOE_TAG_SNAME: break; /* ignored */ case PPPOE_TAG_ACNAME: break; /* ignored */ case PPPOE_TAG_HUNIQUE: if (sc != NULL) { break; } #ifdef PPPOE_SERVER hunique = (u8_t*)pb->payload + off + sizeof(pt); hunique_len = len; #endif sc = pppoe_find_softc_by_hunique((u8_t*)pb->payload + off + sizeof(pt), len, netif); if (sc != NULL) { snprintf(devname, sizeof(devname), "%c%c%"U16_F, sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num); } break; case PPPOE_TAG_ACCOOKIE: if (ac_cookie == NULL) { ac_cookie = (u8_t*)pb->payload + off + sizeof(pt); ac_cookie_len = len; } break; case PPPOE_TAG_SNAME_ERR: err_msg = "SERVICE NAME ERROR"; errortag = 1; break; case PPPOE_TAG_ACSYS_ERR: err_msg = "AC SYSTEM ERROR"; errortag = 1; break; case PPPOE_TAG_GENERIC_ERR: err_msg = "GENERIC ERROR"; errortag = 1; break; } if (err_msg) { error = NULL; if (errortag && len) { error = mem_malloc(len+1); if (error) { strncpy(error, (char*)pb->payload + off + sizeof(pt), len); error[len-1] = '\0'; } } if (error) { printf("%s: %s: %s\n", devname, err_msg, error); mem_free(error); } else { printf("%s: %s\n", devname, err_msg); } if (errortag) { goto done; } } off += sizeof(pt) + len; } breakbreak:; switch (ph->code) { case PPPOE_CODE_PADI: #ifdef PPPOE_SERVER /* * got service name, concentrator name, and/or host unique. * ignore if we have no interfaces with IFF_PASSIVE|IFF_UP. */ if (LIST_EMPTY(&pppoe_softc_list)) { goto done; } LIST_FOREACH(sc, &pppoe_softc_list, sc_list) { if (!(sc->sc_sppp.pp_if.if_flags & IFF_UP)) { continue; } if (!(sc->sc_sppp.pp_if.if_flags & IFF_PASSIVE)) { continue; } if (sc->sc_state == PPPOE_STATE_INITIAL) { break; } } if (sc == NULL) { /* printf("pppoe: free passive interface is not found\n"); */ goto done; } if (hunique) { if (sc->sc_hunique) { mem_free(sc->sc_hunique); } sc->sc_hunique = mem_malloc(hunique_len); if (sc->sc_hunique == NULL) { goto done; } sc->sc_hunique_len = hunique_len; MEMCPY(sc->sc_hunique, hunique, hunique_len); } MEMCPY(&sc->sc_dest, eh->ether_shost, sizeof sc->sc_dest); sc->sc_state = PPPOE_STATE_PADO_SENT; pppoe_send_pado(sc); break; #endif /* PPPOE_SERVER */ case PPPOE_CODE_PADR: #ifdef PPPOE_SERVER /* * get sc from ac_cookie if IFF_PASSIVE */ if (ac_cookie == NULL) { /* be quiet if there is not a single pppoe instance */ printf("pppoe: received PADR but not includes ac_cookie\n"); goto done; } sc = pppoe_find_softc_by_hunique(ac_cookie, ac_cookie_len, netif); if (sc == NULL) { /* be quiet if there is not a single pppoe instance */ if (!LIST_EMPTY(&pppoe_softc_list)) { printf("pppoe: received PADR but could not find request for it\n"); } goto done; } if (sc->sc_state != PPPOE_STATE_PADO_SENT) { printf("%c%c%"U16_F": received unexpected PADR\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num); goto done; } if (hunique) { if (sc->sc_hunique) { mem_free(sc->sc_hunique); } sc->sc_hunique = mem_malloc(hunique_len); if (sc->sc_hunique == NULL) { goto done; } sc->sc_hunique_len = hunique_len; MEMCPY(sc->sc_hunique, hunique, hunique_len); } pppoe_send_pads(sc); sc->sc_state = PPPOE_STATE_SESSION; tcpip_timeout (100, pppoe_linkstatus_up, sc); /* notify upper layers */ break; #else /* ignore, we are no access concentrator */ goto done; #endif /* PPPOE_SERVER */ case PPPOE_CODE_PADO: if (sc == NULL) { /* be quiet if there is not a single pppoe instance */ if (!LIST_EMPTY(&pppoe_softc_list)) { printf("pppoe: received PADO but could not find request for it\n"); } goto done; } if (sc->sc_state != PPPOE_STATE_PADI_SENT) { printf("%c%c%"U16_F": received unexpected PADO\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num); goto done; } if (ac_cookie) { if (sc->sc_ac_cookie) { mem_free(sc->sc_ac_cookie); } sc->sc_ac_cookie = mem_malloc(ac_cookie_len); if (sc->sc_ac_cookie == NULL) { goto done; } sc->sc_ac_cookie_len = ac_cookie_len; MEMCPY(sc->sc_ac_cookie, ac_cookie, ac_cookie_len); } MEMCPY(&sc->sc_dest, ethhdr->src.addr, sizeof(sc->sc_dest.addr)); tcpip_untimeout(pppoe_timeout, sc); sc->sc_padr_retried = 0; sc->sc_state = PPPOE_STATE_PADR_SENT; if ((err = pppoe_send_padr(sc)) != 0) { PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": failed to send PADR, error=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, err)); } tcpip_timeout(PPPOE_DISC_TIMEOUT * (1 + sc->sc_padr_retried), pppoe_timeout, sc); break; case PPPOE_CODE_PADS: if (sc == NULL) { goto done; } sc->sc_session = session; tcpip_untimeout(pppoe_timeout, sc); PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": session 0x%x connected\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, session)); sc->sc_state = PPPOE_STATE_SESSION; tcpip_timeout (100, pppoe_linkstatus_up, sc); /* notify upper layers */ break; case PPPOE_CODE_PADT: if (sc == NULL) { goto done; } pppoe_clear_softc(sc, "received PADT"); break; default: if(sc) { printf("%c%c%"U16_F": unknown code (0x%04x) session = 0x%04x\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, ph->code, session); } else { printf("pppoe: unknown code (0x%04x) session = 0x%04x\n", ph->code, session); } break; } done: pbuf_free(pb); return; } void pppoe_disc_input(struct netif *netif, struct pbuf *p) { /* avoid error messages if there is not a single pppoe instance */ if (!LIST_EMPTY(&pppoe_softc_list)) { pppoe_dispatch_disc_pkt(netif, p); } else { pbuf_free(p); } } void pppoe_data_input(struct netif *netif, struct pbuf *pb) { u16_t session, plen; struct pppoe_softc *sc; struct pppoehdr *ph; #ifdef PPPOE_TERM_UNKNOWN_SESSIONS u8_t shost[ETHER_ADDR_LEN]; #endif #ifdef PPPOE_TERM_UNKNOWN_SESSIONS MEMCPY(shost, ((struct eth_hdr *)pb->payload)->src.addr, sizeof(shost)); #endif if (pbuf_header(pb, -(int)sizeof(struct eth_hdr)) != 0) { /* bail out */ PPPDEBUG((LOG_ERR, "pppoe_data_input: pbuf_header failed\n")); LINK_STATS_INC(link.lenerr); goto drop; } pb = pppSingleBuf (pb); if (pb->len <= PPPOE_HEADERLEN) { printf("pppoe (data): dropping too short packet: %d bytes\n", pb->len); goto drop; } if (pb->len < sizeof(*ph)) { printf("pppoe_data_input: could not get PPPoE header\n"); goto drop; } ph = (struct pppoehdr *)pb->payload; if (ph->vertype != PPPOE_VERTYPE) { printf("pppoe (data): unknown version/type packet: 0x%x\n", ph->vertype); goto drop; } if (ph->code != 0) { goto drop; } session = ntohs(ph->session); sc = pppoe_find_softc_by_session(session, netif); if (sc == NULL) { #ifdef PPPOE_TERM_UNKNOWN_SESSIONS printf("pppoe: input for unknown session 0x%x, sending PADT\n", session); pppoe_send_padt(netif, session, shost); #endif goto drop; } plen = ntohs(ph->plen); if (pbuf_header(pb, -(int)(PPPOE_HEADERLEN)) != 0) { /* bail out */ PPPDEBUG((LOG_ERR, "pppoe_data_input: pbuf_header PPPOE_HEADERLEN failed\n")); LINK_STATS_INC(link.lenerr); goto drop; } PPPDEBUG((LOG_DEBUG, "pppoe_data_input: %c%c%"U16_F": pkthdr.len=%d, pppoe.len=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, pb->len, plen)); if (pb->len < plen) { goto drop; } pppInProcOverEthernet(sc->sc_pd, pb); return; drop: pbuf_free(pb); } static err_t pppoe_output(struct pppoe_softc *sc, struct pbuf *pb) { struct eth_hdr *ethhdr; u16_t etype; err_t res; if (!sc->sc_ethif) { pbuf_free(pb); return ERR_IF; } ethhdr = (struct eth_hdr *)pb->payload; etype = sc->sc_state == PPPOE_STATE_SESSION ? ETHTYPE_PPPOE : ETHTYPE_PPPOEDISC; ethhdr->type = htons(etype); MEMCPY(ethhdr->dest.addr, sc->sc_dest.addr, sizeof(ethhdr->dest.addr)); MEMCPY(ethhdr->src.addr, ((struct eth_addr *)sc->sc_ethif->hwaddr)->addr, sizeof(ethhdr->src.addr)); PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F" (%x) state=%d, session=0x%x output -> %02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F":%02"X16_F", len=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, etype, sc->sc_state, sc->sc_session, sc->sc_dest.addr[0], sc->sc_dest.addr[1], sc->sc_dest.addr[2], sc->sc_dest.addr[3], sc->sc_dest.addr[4], sc->sc_dest.addr[5], pb->tot_len)); res = sc->sc_ethif->linkoutput(sc->sc_ethif, pb); pbuf_free(pb); return res; } static err_t pppoe_send_padi(struct pppoe_softc *sc) { struct pbuf *pb; u8_t *p; int len, l1 = 0, l2 = 0; /* XXX: gcc */ if (sc->sc_state >PPPOE_STATE_PADI_SENT) { PPPDEBUG((LOG_ERR, "ERROR: pppoe_send_padi in state %d", sc->sc_state)); } /* calculate length of frame (excluding ethernet header + pppoe header) */ len = 2 + 2 + 2 + 2 + sizeof sc; /* service name tag is required, host unique is send too */ if (sc->sc_service_name != NULL) { l1 = strlen(sc->sc_service_name); len += l1; } if (sc->sc_concentrator_name != NULL) { l2 = strlen(sc->sc_concentrator_name); len += 2 + 2 + l2; } /* allocate a buffer */ pb = pbuf_alloc(PBUF_LINK, sizeof(struct eth_hdr) + PPPOE_HEADERLEN + len, PBUF_RAM); if (!pb) { return ERR_MEM; } p = (u8_t*)pb->payload + sizeof (struct eth_hdr); /* fill in pkt */ PPPOE_ADD_HEADER(p, PPPOE_CODE_PADI, 0, len); PPPOE_ADD_16(p, PPPOE_TAG_SNAME); if (sc->sc_service_name != NULL) { PPPOE_ADD_16(p, l1); MEMCPY(p, sc->sc_service_name, l1); p += l1; } else { PPPOE_ADD_16(p, 0); } if (sc->sc_concentrator_name != NULL) { PPPOE_ADD_16(p, PPPOE_TAG_ACNAME); PPPOE_ADD_16(p, l2); MEMCPY(p, sc->sc_concentrator_name, l2); p += l2; } PPPOE_ADD_16(p, PPPOE_TAG_HUNIQUE); PPPOE_ADD_16(p, sizeof(sc)); MEMCPY(p, &sc, sizeof sc); /* send pkt */ return pppoe_output(sc, pb); } static void pppoe_timeout(void *arg) { int retry_wait, err; struct pppoe_softc *sc = (struct pppoe_softc*)arg; PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": timeout\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num)); switch (sc->sc_state) { case PPPOE_STATE_PADI_SENT: /* * We have two basic ways of retrying: * - Quick retry mode: try a few times in short sequence * - Slow retry mode: we already had a connection successfully * established and will try infinitely (without user * intervention) * We only enter slow retry mode if IFF_LINK1 (aka autodial) * is not set. */ /* initialize for quick retry mode */ retry_wait = PPPOE_DISC_TIMEOUT * (1 + sc->sc_padi_retried); sc->sc_padi_retried++; if (sc->sc_padi_retried >= PPPOE_DISC_MAXPADI) { #if 0 if ((sc->sc_sppp.pp_if.if_flags & IFF_LINK1) == 0) { /* slow retry mode */ retry_wait = PPPOE_SLOW_RETRY; } else #endif { pppoe_abort_connect(sc); return; } } if ((err = pppoe_send_padi(sc)) != 0) { sc->sc_padi_retried--; PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": failed to transmit PADI, error=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, err)); } tcpip_timeout(retry_wait, pppoe_timeout, sc); break; case PPPOE_STATE_PADR_SENT: sc->sc_padr_retried++; if (sc->sc_padr_retried >= PPPOE_DISC_MAXPADR) { MEMCPY(&sc->sc_dest, ethbroadcast.addr, sizeof(sc->sc_dest)); sc->sc_state = PPPOE_STATE_PADI_SENT; sc->sc_padr_retried = 0; if ((err = pppoe_send_padi(sc)) != 0) { PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": failed to send PADI, error=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, err)); } tcpip_timeout(PPPOE_DISC_TIMEOUT * (1 + sc->sc_padi_retried), pppoe_timeout, sc); return; } if ((err = pppoe_send_padr(sc)) != 0) { sc->sc_padr_retried--; PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": failed to send PADR, error=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, err)); } tcpip_timeout(PPPOE_DISC_TIMEOUT * (1 + sc->sc_padr_retried), pppoe_timeout, sc); break; case PPPOE_STATE_CLOSING: pppoe_do_disconnect(sc); break; default: return; /* all done, work in peace */ } } /* Start a connection (i.e. initiate discovery phase) */ int pppoe_connect(struct pppoe_softc *sc) { int err; if (sc->sc_state != PPPOE_STATE_INITIAL) { return EBUSY; } #ifdef PPPOE_SERVER /* wait PADI if IFF_PASSIVE */ if ((sc->sc_sppp.pp_if.if_flags & IFF_PASSIVE)) { return 0; } #endif /* save state, in case we fail to send PADI */ sc->sc_state = PPPOE_STATE_PADI_SENT; sc->sc_padr_retried = 0; err = pppoe_send_padi(sc); PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": failed to send PADI, error=%d\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, err)); tcpip_timeout(PPPOE_DISC_TIMEOUT, pppoe_timeout, sc); return err; } /* disconnect */ void pppoe_disconnect(struct pppoe_softc *sc) { if (sc->sc_state < PPPOE_STATE_SESSION) { return; } /* * Do not call pppoe_disconnect here, the upper layer state * machine gets confused by this. We must return from this * function and defer disconnecting to the timeout handler. */ sc->sc_state = PPPOE_STATE_CLOSING; tcpip_timeout(20, pppoe_timeout, sc); } static int pppoe_do_disconnect(struct pppoe_softc *sc) { int err; if (sc->sc_state < PPPOE_STATE_SESSION) { err = EBUSY; } else { PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": disconnecting\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num)); err = pppoe_send_padt(sc->sc_ethif, sc->sc_session, (const u8_t *)&sc->sc_dest); } /* cleanup softc */ sc->sc_state = PPPOE_STATE_INITIAL; MEMCPY(&sc->sc_dest, ethbroadcast.addr, sizeof(sc->sc_dest)); if (sc->sc_ac_cookie) { mem_free(sc->sc_ac_cookie); sc->sc_ac_cookie = NULL; } sc->sc_ac_cookie_len = 0; #ifdef PPPOE_SERVER if (sc->sc_hunique) { mem_free(sc->sc_hunique); sc->sc_hunique = NULL; } sc->sc_hunique_len = 0; #endif sc->sc_session = 0; sc->sc_linkStatusCB(sc->sc_pd, 0); /* notify upper layers */ return err; } /* Connection attempt aborted */ static void pppoe_abort_connect(struct pppoe_softc *sc) { printf("%c%c%"U16_F": could not establish connection\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num); sc->sc_state = PPPOE_STATE_CLOSING; sc->sc_linkStatusCB(sc->sc_pd, 0); /* notify upper layers */ /* clear connection state */ MEMCPY(&sc->sc_dest, ethbroadcast.addr, sizeof(sc->sc_dest)); sc->sc_state = PPPOE_STATE_INITIAL; } /* Send a PADR packet */ static err_t pppoe_send_padr(struct pppoe_softc *sc) { struct pbuf *pb; u8_t *p; size_t len, l1 = 0; /* XXX: gcc */ if (sc->sc_state != PPPOE_STATE_PADR_SENT) { return ERR_CONN; } len = 2 + 2 + 2 + 2 + sizeof(sc); /* service name, host unique */ if (sc->sc_service_name != NULL) { /* service name tag maybe empty */ l1 = strlen(sc->sc_service_name); len += l1; } if (sc->sc_ac_cookie_len > 0) { len += 2 + 2 + sc->sc_ac_cookie_len; /* AC cookie */ } pb = pbuf_alloc(PBUF_LINK, sizeof(struct eth_hdr) + PPPOE_HEADERLEN + len, PBUF_RAM); if (!pb) { return ERR_MEM; } p = (u8_t*)pb->payload + sizeof (struct eth_hdr); PPPOE_ADD_HEADER(p, PPPOE_CODE_PADR, 0, len); PPPOE_ADD_16(p, PPPOE_TAG_SNAME); if (sc->sc_service_name != NULL) { PPPOE_ADD_16(p, l1); MEMCPY(p, sc->sc_service_name, l1); p += l1; } else { PPPOE_ADD_16(p, 0); } if (sc->sc_ac_cookie_len > 0) { PPPOE_ADD_16(p, PPPOE_TAG_ACCOOKIE); PPPOE_ADD_16(p, sc->sc_ac_cookie_len); MEMCPY(p, sc->sc_ac_cookie, sc->sc_ac_cookie_len); p += sc->sc_ac_cookie_len; } PPPOE_ADD_16(p, PPPOE_TAG_HUNIQUE); PPPOE_ADD_16(p, sizeof(sc)); MEMCPY(p, &sc, sizeof sc); return pppoe_output(sc, pb); } /* send a PADT packet */ static err_t pppoe_send_padt(struct netif *outgoing_if, u_int session, const u8_t *dest) { struct pbuf *pb; struct eth_hdr *ethhdr; err_t res; u8_t *p; pb = pbuf_alloc(PBUF_LINK, sizeof(struct eth_hdr) + PPPOE_HEADERLEN, PBUF_RAM); if (!pb) { return ERR_MEM; } ethhdr = (struct eth_hdr *)pb->payload; ethhdr->type = htons(ETHTYPE_PPPOEDISC); MEMCPY(ethhdr->dest.addr, dest, sizeof(ethhdr->dest.addr)); MEMCPY(ethhdr->src.addr, ((struct eth_addr *)outgoing_if->hwaddr)->addr, sizeof(ethhdr->src.addr)); p = (u8_t*)(ethhdr + 1); PPPOE_ADD_HEADER(p, PPPOE_CODE_PADT, session, 0); res = outgoing_if->linkoutput(outgoing_if, pb); pbuf_free(pb); return res; } #ifdef PPPOE_SERVER static err_t pppoe_send_pado(struct pppoe_softc *sc) { struct pbuf *pb; u8_t *p; size_t len; if (sc->sc_state != PPPOE_STATE_PADO_SENT) { return ERR_CONN; } /* calc length */ len = 0; /* include ac_cookie */ len += 2 + 2 + sizeof(sc); /* include hunique */ len += 2 + 2 + sc->sc_hunique_len; pb = pbuf_alloc(PBUF_LINK, sizeof(struct eth_hdr) + PPPOE_HEADERLEN + len, PBUF_RAM); if (!pb) { return ERR_MEM; } p = (u8_t*)pb->payload + sizeof (struct eth_hdr); PPPOE_ADD_HEADER(p, PPPOE_CODE_PADO, 0, len); PPPOE_ADD_16(p, PPPOE_TAG_ACCOOKIE); PPPOE_ADD_16(p, sizeof(sc)); MEMCPY(p, &sc, sizeof(sc)); p += sizeof(sc); PPPOE_ADD_16(p, PPPOE_TAG_HUNIQUE); PPPOE_ADD_16(p, sc->sc_hunique_len); MEMCPY(p, sc->sc_hunique, sc->sc_hunique_len); return pppoe_output(sc, pb); } static err_t pppoe_send_pads(struct pppoe_softc *sc) { struct pbuf *pb; u8_t *p; size_t len, l1 = 0; /* XXX: gcc */ if (sc->sc_state != PPPOE_STATE_PADO_SENT) { return ERR_CONN; } sc->sc_session = mono_time.tv_sec % 0xff + 1; /* calc length */ len = 0; /* include hunique */ len += 2 + 2 + 2 + 2 + sc->sc_hunique_len; /* service name, host unique*/ if (sc->sc_service_name != NULL) { /* service name tag maybe empty */ l1 = strlen(sc->sc_service_name); len += l1; } pb = pbuf_alloc(PBUF_LINK, sizeof(struct eth_hdr) + PPPOE_HEADERLEN + len, PBUF_RAM); if (!pb) { return ERR_MEM; } p = (u8_t*)pb->payload + sizeof (struct eth_hdr); PPPOE_ADD_HEADER(p, PPPOE_CODE_PADS, sc->sc_session, len); PPPOE_ADD_16(p, PPPOE_TAG_SNAME); if (sc->sc_service_name != NULL) { PPPOE_ADD_16(p, l1); MEMCPY(p, sc->sc_service_name, l1); p += l1; } else { PPPOE_ADD_16(p, 0); } PPPOE_ADD_16(p, PPPOE_TAG_HUNIQUE); PPPOE_ADD_16(p, sc->sc_hunique_len); MEMCPY(p, sc->sc_hunique, sc->sc_hunique_len); return pppoe_output(sc, pb); } #endif err_t pppoe_xmit(struct pppoe_softc *sc, struct pbuf *pb) { u8_t *p; size_t len; /* are we ready to process data yet? */ if (sc->sc_state < PPPOE_STATE_SESSION) { /*sppp_flush(&sc->sc_sppp.pp_if);*/ pbuf_free(pb); return ERR_CONN; } len = pb->tot_len; /* make room for Ethernet header - should not fail */ if (pbuf_header(pb, sizeof(struct eth_hdr) + PPPOE_HEADERLEN) != 0) { /* bail out */ PPPDEBUG((LOG_ERR, "pppoe: %c%c%"U16_F": pppoe_xmit: could not allocate room for header\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num)); LINK_STATS_INC(link.lenerr); pbuf_free(pb); return ERR_BUF; } p = (u8_t*)pb->payload + sizeof(struct eth_hdr); PPPOE_ADD_HEADER(p, 0, sc->sc_session, len); return pppoe_output(sc, pb); } #if 0 /*def PFIL_HOOKS*/ static int pppoe_ifattach_hook(void *arg, struct pbuf **mp, struct netif *ifp, int dir) { struct pppoe_softc *sc; int s; if (mp != (struct pbuf **)PFIL_IFNET_DETACH) { return 0; } LIST_FOREACH(sc, &pppoe_softc_list, sc_list) { if (sc->sc_ethif != ifp) { continue; } if (sc->sc_sppp.pp_if.if_flags & IFF_UP) { sc->sc_sppp.pp_if.if_flags &= ~(IFF_UP|IFF_RUNNING); printf("%c%c%"U16_F": ethernet interface detached, going down\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num); } sc->sc_ethif = NULL; pppoe_clear_softc(sc, "ethernet interface detached"); } return 0; } #endif static void pppoe_clear_softc(struct pppoe_softc *sc, const char *message) { LWIP_UNUSED_ARG(message); /* stop timer */ tcpip_untimeout(pppoe_timeout, sc); PPPDEBUG((LOG_DEBUG, "pppoe: %c%c%"U16_F": session 0x%x terminated, %s\n", sc->sc_ethif->name[0], sc->sc_ethif->name[1], sc->sc_ethif->num, sc->sc_session, message)); /* fix our state */ sc->sc_state = PPPOE_STATE_INITIAL; /* notify upper layers */ sc->sc_linkStatusCB(sc->sc_pd, 0); /* clean up softc */ MEMCPY(&sc->sc_dest, ethbroadcast.addr, sizeof(sc->sc_dest)); if (sc->sc_ac_cookie) { mem_free(sc->sc_ac_cookie); sc->sc_ac_cookie = NULL; } sc->sc_ac_cookie_len = 0; sc->sc_session = 0; } #endif /* PPPOE_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/pppdebug.h000066400000000000000000000053501224274632000240010ustar00rootroot00000000000000/***************************************************************************** * pppdebug.h - System debugging utilities. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * portions Copyright (c) 1998 Global Election Systems Inc. * portions Copyright (c) 2001 by Cognizant Pty Ltd. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY (please don't use tabs!) * * 03-01-01 Marc Boucher * Ported to lwIP. * 98-07-29 Guy Lancaster , Global Election Systems Inc. * Original. * ***************************************************************************** */ #ifndef PPPDEBUG_H #define PPPDEBUG_H /************************ *** PUBLIC DATA TYPES *** ************************/ /* Trace levels. */ typedef enum { LOG_CRITICAL = 0, LOG_ERR = 1, LOG_NOTICE = 2, LOG_WARNING = 3, LOG_INFO = 5, LOG_DETAIL = 6, LOG_DEBUG = 7 } LogCodes; /*********************** *** PUBLIC FUNCTIONS *** ***********************/ /* * ppp_trace - a form of printf to send tracing information to stderr */ void ppp_trace(int level, const char *format,...); #define TRACELCP PPP_DEBUG #if PPP_DEBUG #define AUTHDEBUG(a) ppp_trace a #define IPCPDEBUG(a) ppp_trace a #define UPAPDEBUG(a) ppp_trace a #define LCPDEBUG(a) ppp_trace a #define FSMDEBUG(a) ppp_trace a #define CHAPDEBUG(a) ppp_trace a #define PPPDEBUG(a) ppp_trace a #else /* PPP_DEBUG */ #define AUTHDEBUG(a) #define IPCPDEBUG(a) #define UPAPDEBUG(a) #define LCPDEBUG(a) #define FSMDEBUG(a) #define CHAPDEBUG(a) #define PPPDEBUG(a) #endif /* PPP_DEBUG */ #endif /* PPPDEBUG_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/randm.c000066400000000000000000000174431224274632000232750ustar00rootroot00000000000000/***************************************************************************** * randm.c - Random number generator program file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * Copyright (c) 1998 by Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 98-06-03 Guy Lancaster , Global Election Systems Inc. * Extracted from avos. *****************************************************************************/ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "md5.h" #include "randm.h" #include "ppp.h" #include "pppdebug.h" #if MD5_SUPPORT /* this module depends on MD5 */ #define RANDPOOLSZ 16 /* Bytes stored in the pool of randomness. */ /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ static char randPool[RANDPOOLSZ]; /* Pool of randomness. */ static long randCount = 0; /* Pseudo-random incrementer */ /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * Initialize the random number generator. * * Since this is to be called on power up, we don't have much * system randomess to work with. Here all we use is the * real-time clock. We'll accumulate more randomness as soon * as things start happening. */ void avRandomInit() { avChurnRand(NULL, 0); } /* * Churn the randomness pool on a random event. Call this early and often * on random and semi-random system events to build randomness in time for * usage. For randomly timed events, pass a null pointer and a zero length * and this will use the system timer and other sources to add randomness. * If new random data is available, pass a pointer to that and it will be * included. * * Ref: Applied Cryptography 2nd Ed. by Bruce Schneier p. 427 */ void avChurnRand(char *randData, u32_t randLen) { MD5_CTX md5; /* ppp_trace(LOG_INFO, "churnRand: %u@%P\n", randLen, randData); */ MD5Init(&md5); MD5Update(&md5, (u_char *)randPool, sizeof(randPool)); if (randData) { MD5Update(&md5, (u_char *)randData, randLen); } else { struct { /* INCLUDE fields for any system sources of randomness */ char foobar; } sysData; /* Load sysData fields here. */ MD5Update(&md5, (u_char *)&sysData, sizeof(sysData)); } MD5Final((u_char *)randPool, &md5); /* ppp_trace(LOG_INFO, "churnRand: -> 0\n"); */ } /* * Use the random pool to generate random data. This degrades to pseudo * random when used faster than randomness is supplied using churnRand(). * Note: It's important that there be sufficient randomness in randPool * before this is called for otherwise the range of the result may be * narrow enough to make a search feasible. * * Ref: Applied Cryptography 2nd Ed. by Bruce Schneier p. 427 * * XXX Why does he not just call churnRand() for each block? Probably * so that you don't ever publish the seed which could possibly help * predict future values. * XXX Why don't we preserve md5 between blocks and just update it with * randCount each time? Probably there is a weakness but I wish that * it was documented. */ void avGenRand(char *buf, u32_t bufLen) { MD5_CTX md5; u_char tmp[16]; u32_t n; while (bufLen > 0) { n = LWIP_MIN(bufLen, RANDPOOLSZ); MD5Init(&md5); MD5Update(&md5, (u_char *)randPool, sizeof(randPool)); MD5Update(&md5, (u_char *)&randCount, sizeof(randCount)); MD5Final(tmp, &md5); randCount++; MEMCPY(buf, tmp, n); buf += n; bufLen -= n; } } /* * Return a new random number. */ u32_t avRandom() { u32_t newRand; avGenRand((char *)&newRand, sizeof(newRand)); return newRand; } #else /* MD5_SUPPORT */ /*****************************/ /*** LOCAL DATA STRUCTURES ***/ /*****************************/ static int avRandomized = 0; /* Set when truely randomized. */ static u32_t avRandomSeed = 0; /* Seed used for random number generation. */ /***********************************/ /*** PUBLIC FUNCTION DEFINITIONS ***/ /***********************************/ /* * Initialize the random number generator. * * Here we attempt to compute a random number seed but even if * it isn't random, we'll randomize it later. * * The current method uses the fields from the real time clock, * the idle process counter, the millisecond counter, and the * hardware timer tick counter. When this is invoked * in startup(), then the idle counter and timer values may * repeat after each boot and the real time clock may not be * operational. Thus we call it again on the first random * event. */ void avRandomInit() { #if 0 /* Get a pointer into the last 4 bytes of clockBuf. */ u32_t *lptr1 = (u32_t *)((char *)&clockBuf[3]); /* * Initialize our seed using the real-time clock, the idle * counter, the millisecond timer, and the hardware timer * tick counter. The real-time clock and the hardware * tick counter are the best sources of randomness but * since the tick counter is only 16 bit (and truncated * at that), the idle counter and millisecond timer * (which may be small values) are added to help * randomize the lower 16 bits of the seed. */ readClk(); avRandomSeed += *(u32_t *)clockBuf + *lptr1 + OSIdleCtr + ppp_mtime() + ((u32_t)TM1 << 16) + TM1; #else avRandomSeed += sys_jiffies(); /* XXX */ #endif /* Initialize the Borland random number generator. */ srand((unsigned)avRandomSeed); } /* * Randomize our random seed value. Here we use the fact that * this function is called at *truely random* times by the polling * and network functions. Here we only get 16 bits of new random * value but we use the previous value to randomize the other 16 * bits. */ void avRandomize(void) { static u32_t last_jiffies; if (!avRandomized) { avRandomized = !0; avRandomInit(); /* The initialization function also updates the seed. */ } else { /* avRandomSeed += (avRandomSeed << 16) + TM1; */ avRandomSeed += (sys_jiffies() - last_jiffies); /* XXX */ } last_jiffies = sys_jiffies(); } /* * Return a new random number. * Here we use the Borland rand() function to supply a pseudo random * number which we make truely random by combining it with our own * seed which is randomized by truely random events. * Thus the numbers will be truely random unless there have been no * operator or network events in which case it will be pseudo random * seeded by the real time clock. */ u32_t avRandom() { return ((((u32_t)rand() << 16) + rand()) + avRandomSeed); } #endif /* MD5_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/randm.h000066400000000000000000000060721224274632000232760ustar00rootroot00000000000000/***************************************************************************** * randm.h - Random number generator header file. * * Copyright (c) 2003 by Marc Boucher, Services Informatiques (MBSI) inc. * Copyright (c) 1998 Global Election Systems Inc. * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice and the following disclaimer are included verbatim in any * distributions. No written agreement, license, or royalty fee is required * for any of the authorized uses. * * THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS *AS IS* AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** * REVISION HISTORY * * 03-01-01 Marc Boucher * Ported to lwIP. * 98-05-29 Guy Lancaster , Global Election Systems Inc. * Extracted from avos. *****************************************************************************/ #ifndef RANDM_H #define RANDM_H /*********************** *** PUBLIC FUNCTIONS *** ***********************/ /* * Initialize the random number generator. */ void avRandomInit(void); /* * Churn the randomness pool on a random event. Call this early and often * on random and semi-random system events to build randomness in time for * usage. For randomly timed events, pass a null pointer and a zero length * and this will use the system timer and other sources to add randomness. * If new random data is available, pass a pointer to that and it will be * included. */ void avChurnRand(char *randData, u32_t randLen); /* * Randomize our random seed value. To be called for truely random events * such as user operations and network traffic. */ #if MD5_SUPPORT #define avRandomize() avChurnRand(NULL, 0) #else /* MD5_SUPPORT */ void avRandomize(void); #endif /* MD5_SUPPORT */ /* * Use the random pool to generate random data. This degrades to pseudo * random when used faster than randomness is supplied using churnRand(). * Thus it's important to make sure that the results of this are not * published directly because one could predict the next result to at * least some degree. Also, it's important to get a good seed before * the first use. */ void avGenRand(char *buf, u32_t bufLen); /* * Return a new random number. */ u32_t avRandom(void); #endif /* RANDM_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/vj.c000066400000000000000000000444331224274632000226120ustar00rootroot00000000000000/* * Routines to compress and uncompess tcp packets (for transmission * over low speed serial lines. * * Copyright (c) 1989 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989: * Initial distribution. * * Modified June 1993 by Paul Mackerras, paulus@cs.anu.edu.au, * so that the entire packet being decompressed doesn't have * to be in contiguous memory (just the compressed header). * * Modified March 1998 by Guy Lancaster, glanca@gesn.com, * for a 16 bit processor. */ #include "lwip/opt.h" #if PPP_SUPPORT /* don't build if not configured for use in lwipopts.h */ #include "ppp.h" #include "pppdebug.h" #include "vj.h" #include #if VJ_SUPPORT #if LINK_STATS #define INCR(counter) ++comp->stats.counter #else #define INCR(counter) #endif #if defined(NO_CHAR_BITFIELDS) #define getip_hl(base) ((base).ip_hl_v&0xf) #define getth_off(base) (((base).th_x2_off&0xf0)>>4) #else #define getip_hl(base) ((base).ip_hl) #define getth_off(base) ((base).th_off) #endif void vj_compress_init(struct vjcompress *comp) { register u_int i; register struct cstate *tstate = comp->tstate; #if MAX_SLOTS == 0 memset((char *)comp, 0, sizeof(*comp)); #endif comp->maxSlotIndex = MAX_SLOTS - 1; comp->compressSlot = 0; /* Disable slot ID compression by default. */ for (i = MAX_SLOTS - 1; i > 0; --i) { tstate[i].cs_id = i; tstate[i].cs_next = &tstate[i - 1]; } tstate[0].cs_next = &tstate[MAX_SLOTS - 1]; tstate[0].cs_id = 0; comp->last_cs = &tstate[0]; comp->last_recv = 255; comp->last_xmit = 255; comp->flags = VJF_TOSS; } /* ENCODE encodes a number that is known to be non-zero. ENCODEZ * checks for zero (since zero has to be encoded in the long, 3 byte * form). */ #define ENCODE(n) { \ if ((u_short)(n) >= 256) { \ *cp++ = 0; \ cp[1] = (n); \ cp[0] = (n) >> 8; \ cp += 2; \ } else { \ *cp++ = (n); \ } \ } #define ENCODEZ(n) { \ if ((u_short)(n) >= 256 || (u_short)(n) == 0) { \ *cp++ = 0; \ cp[1] = (n); \ cp[0] = (n) >> 8; \ cp += 2; \ } else { \ *cp++ = (n); \ } \ } #define DECODEL(f) { \ if (*cp == 0) {\ u32_t tmp = ntohl(f) + ((cp[1] << 8) | cp[2]); \ (f) = htonl(tmp); \ cp += 3; \ } else { \ u32_t tmp = ntohl(f) + (u32_t)*cp++; \ (f) = htonl(tmp); \ } \ } #define DECODES(f) { \ if (*cp == 0) {\ u_short tmp = ntohs(f) + (((u_short)cp[1] << 8) | cp[2]); \ (f) = htons(tmp); \ cp += 3; \ } else { \ u_short tmp = ntohs(f) + (u_short)*cp++; \ (f) = htons(tmp); \ } \ } #define DECODEU(f) { \ if (*cp == 0) {\ (f) = htons(((u_short)cp[1] << 8) | cp[2]); \ cp += 3; \ } else { \ (f) = htons((u_short)*cp++); \ } \ } /* * vj_compress_tcp - Attempt to do Van Jacobsen header compression on a * packet. This assumes that nb and comp are not null and that the first * buffer of the chain contains a valid IP header. * Return the VJ type code indicating whether or not the packet was * compressed. */ u_int vj_compress_tcp(struct vjcompress *comp, struct pbuf *pb) { register struct ip *ip = (struct ip *)pb->payload; register struct cstate *cs = comp->last_cs->cs_next; register u_short hlen = getip_hl(*ip); register struct tcphdr *oth; register struct tcphdr *th; register u_short deltaS, deltaA; register u_long deltaL; register u_int changes = 0; u_char new_seq[16]; register u_char *cp = new_seq; /* * Check that the packet is IP proto TCP. */ if (ip->ip_p != IPPROTO_TCP) { return (TYPE_IP); } /* * Bail if this is an IP fragment or if the TCP packet isn't * `compressible' (i.e., ACK isn't set or some other control bit is * set). */ if ((ip->ip_off & htons(0x3fff)) || pb->tot_len < 40) { return (TYPE_IP); } th = (struct tcphdr *)&((long *)ip)[hlen]; if ((th->th_flags & (TCP_SYN|TCP_FIN|TCP_RST|TCP_ACK)) != TCP_ACK) { return (TYPE_IP); } /* * Packet is compressible -- we're going to send either a * COMPRESSED_TCP or UNCOMPRESSED_TCP packet. Either way we need * to locate (or create) the connection state. Special case the * most recently used connection since it's most likely to be used * again & we don't have to do any reordering if it's used. */ INCR(vjs_packets); if (ip->ip_src.s_addr != cs->cs_ip.ip_src.s_addr || ip->ip_dst.s_addr != cs->cs_ip.ip_dst.s_addr || *(long *)th != ((long *)&cs->cs_ip)[getip_hl(cs->cs_ip)]) { /* * Wasn't the first -- search for it. * * States are kept in a circularly linked list with * last_cs pointing to the end of the list. The * list is kept in lru order by moving a state to the * head of the list whenever it is referenced. Since * the list is short and, empirically, the connection * we want is almost always near the front, we locate * states via linear search. If we don't find a state * for the datagram, the oldest state is (re-)used. */ register struct cstate *lcs; register struct cstate *lastcs = comp->last_cs; do { lcs = cs; cs = cs->cs_next; INCR(vjs_searches); if (ip->ip_src.s_addr == cs->cs_ip.ip_src.s_addr && ip->ip_dst.s_addr == cs->cs_ip.ip_dst.s_addr && *(long *)th == ((long *)&cs->cs_ip)[getip_hl(cs->cs_ip)]) { goto found; } } while (cs != lastcs); /* * Didn't find it -- re-use oldest cstate. Send an * uncompressed packet that tells the other side what * connection number we're using for this conversation. * Note that since the state list is circular, the oldest * state points to the newest and we only need to set * last_cs to update the lru linkage. */ INCR(vjs_misses); comp->last_cs = lcs; hlen += getth_off(*th); hlen <<= 2; /* Check that the IP/TCP headers are contained in the first buffer. */ if (hlen > pb->len) { return (TYPE_IP); } goto uncompressed; found: /* * Found it -- move to the front on the connection list. */ if (cs == lastcs) { comp->last_cs = lcs; } else { lcs->cs_next = cs->cs_next; cs->cs_next = lastcs->cs_next; lastcs->cs_next = cs; } } oth = (struct tcphdr *)&((long *)&cs->cs_ip)[hlen]; deltaS = hlen; hlen += getth_off(*th); hlen <<= 2; /* Check that the IP/TCP headers are contained in the first buffer. */ if (hlen > pb->len) { PPPDEBUG((LOG_INFO, "vj_compress_tcp: header len %d spans buffers\n", hlen)); return (TYPE_IP); } /* * Make sure that only what we expect to change changed. The first * line of the `if' checks the IP protocol version, header length & * type of service. The 2nd line checks the "Don't fragment" bit. * The 3rd line checks the time-to-live and protocol (the protocol * check is unnecessary but costless). The 4th line checks the TCP * header length. The 5th line checks IP options, if any. The 6th * line checks TCP options, if any. If any of these things are * different between the previous & current datagram, we send the * current datagram `uncompressed'. */ if (((u_short *)ip)[0] != ((u_short *)&cs->cs_ip)[0] || ((u_short *)ip)[3] != ((u_short *)&cs->cs_ip)[3] || ((u_short *)ip)[4] != ((u_short *)&cs->cs_ip)[4] || getth_off(*th) != getth_off(*oth) || (deltaS > 5 && BCMP(ip + 1, &cs->cs_ip + 1, (deltaS - 5) << 2)) || (getth_off(*th) > 5 && BCMP(th + 1, oth + 1, (getth_off(*th) - 5) << 2))) { goto uncompressed; } /* * Figure out which of the changing fields changed. The * receiver expects changes in the order: urgent, window, * ack, seq (the order minimizes the number of temporaries * needed in this section of code). */ if (th->th_flags & TCP_URG) { deltaS = ntohs(th->th_urp); ENCODEZ(deltaS); changes |= NEW_U; } else if (th->th_urp != oth->th_urp) { /* argh! URG not set but urp changed -- a sensible * implementation should never do this but RFC793 * doesn't prohibit the change so we have to deal * with it. */ goto uncompressed; } if ((deltaS = (u_short)(ntohs(th->th_win) - ntohs(oth->th_win))) != 0) { ENCODE(deltaS); changes |= NEW_W; } if ((deltaL = ntohl(th->th_ack) - ntohl(oth->th_ack)) != 0) { if (deltaL > 0xffff) { goto uncompressed; } deltaA = (u_short)deltaL; ENCODE(deltaA); changes |= NEW_A; } if ((deltaL = ntohl(th->th_seq) - ntohl(oth->th_seq)) != 0) { if (deltaL > 0xffff) { goto uncompressed; } deltaS = (u_short)deltaL; ENCODE(deltaS); changes |= NEW_S; } switch(changes) { case 0: /* * Nothing changed. If this packet contains data and the * last one didn't, this is probably a data packet following * an ack (normal on an interactive connection) and we send * it compressed. Otherwise it's probably a retransmit, * retransmitted ack or window probe. Send it uncompressed * in case the other side missed the compressed version. */ if (ip->ip_len != cs->cs_ip.ip_len && ntohs(cs->cs_ip.ip_len) == hlen) { break; } /* (fall through) */ case SPECIAL_I: case SPECIAL_D: /* * actual changes match one of our special case encodings -- * send packet uncompressed. */ goto uncompressed; case NEW_S|NEW_A: if (deltaS == deltaA && deltaS == ntohs(cs->cs_ip.ip_len) - hlen) { /* special case for echoed terminal traffic */ changes = SPECIAL_I; cp = new_seq; } break; case NEW_S: if (deltaS == ntohs(cs->cs_ip.ip_len) - hlen) { /* special case for data xfer */ changes = SPECIAL_D; cp = new_seq; } break; } deltaS = (u_short)(ntohs(ip->ip_id) - ntohs(cs->cs_ip.ip_id)); if (deltaS != 1) { ENCODEZ(deltaS); changes |= NEW_I; } if (th->th_flags & TCP_PSH) { changes |= TCP_PUSH_BIT; } /* * Grab the cksum before we overwrite it below. Then update our * state with this packet's header. */ deltaA = ntohs(th->th_sum); BCOPY(ip, &cs->cs_ip, hlen); /* * We want to use the original packet as our compressed packet. * (cp - new_seq) is the number of bytes we need for compressed * sequence numbers. In addition we need one byte for the change * mask, one for the connection id and two for the tcp checksum. * So, (cp - new_seq) + 4 bytes of header are needed. hlen is how * many bytes of the original packet to toss so subtract the two to * get the new packet size. */ deltaS = (u_short)(cp - new_seq); if (!comp->compressSlot || comp->last_xmit != cs->cs_id) { comp->last_xmit = cs->cs_id; hlen -= deltaS + 4; if(pbuf_header(pb, -hlen)){ /* Can we cope with this failing? Just assert for now */ LWIP_ASSERT("pbuf_header failed\n", 0); } cp = (u_char *)pb->payload; *cp++ = changes | NEW_C; *cp++ = cs->cs_id; } else { hlen -= deltaS + 3; if(pbuf_header(pb, -hlen)) { /* Can we cope with this failing? Just assert for now */ LWIP_ASSERT("pbuf_header failed\n", 0); } cp = (u_char *)pb->payload; *cp++ = changes; } *cp++ = deltaA >> 8; *cp++ = deltaA; BCOPY(new_seq, cp, deltaS); INCR(vjs_compressed); return (TYPE_COMPRESSED_TCP); /* * Update connection state cs & send uncompressed packet (that is, * a regular ip/tcp packet but with the 'conversation id' we hope * to use on future compressed packets in the protocol field). */ uncompressed: BCOPY(ip, &cs->cs_ip, hlen); ip->ip_p = cs->cs_id; comp->last_xmit = cs->cs_id; return (TYPE_UNCOMPRESSED_TCP); } /* * Called when we may have missed a packet. */ void vj_uncompress_err(struct vjcompress *comp) { comp->flags |= VJF_TOSS; INCR(vjs_errorin); } /* * "Uncompress" a packet of type TYPE_UNCOMPRESSED_TCP. * Return 0 on success, -1 on failure. */ int vj_uncompress_uncomp(struct pbuf *nb, struct vjcompress *comp) { register u_int hlen; register struct cstate *cs; register struct ip *ip; ip = (struct ip *)nb->payload; hlen = getip_hl(*ip) << 2; if (ip->ip_p >= MAX_SLOTS || hlen + sizeof(struct tcphdr) > nb->len || (hlen += getth_off(*((struct tcphdr *)&((char *)ip)[hlen])) << 2) > nb->len || hlen > MAX_HDR) { PPPDEBUG((LOG_INFO, "vj_uncompress_uncomp: bad cid=%d, hlen=%d buflen=%d\n", ip->ip_p, hlen, nb->len)); comp->flags |= VJF_TOSS; INCR(vjs_errorin); return -1; } cs = &comp->rstate[comp->last_recv = ip->ip_p]; comp->flags &=~ VJF_TOSS; ip->ip_p = IPPROTO_TCP; BCOPY(ip, &cs->cs_ip, hlen); cs->cs_hlen = hlen; INCR(vjs_uncompressedin); return 0; } /* * Uncompress a packet of type TYPE_COMPRESSED_TCP. * The packet is composed of a buffer chain and the first buffer * must contain an accurate chain length. * The first buffer must include the entire compressed TCP/IP header. * This procedure replaces the compressed header with the uncompressed * header and returns the length of the VJ header. */ int vj_uncompress_tcp(struct pbuf **nb, struct vjcompress *comp) { u_char *cp; struct tcphdr *th; struct cstate *cs; u_short *bp; struct pbuf *n0 = *nb; u32_t tmp; u_int vjlen, hlen, changes; INCR(vjs_compressedin); cp = (u_char *)n0->payload; changes = *cp++; if (changes & NEW_C) { /* * Make sure the state index is in range, then grab the state. * If we have a good state index, clear the 'discard' flag. */ if (*cp >= MAX_SLOTS) { PPPDEBUG((LOG_INFO, "vj_uncompress_tcp: bad cid=%d\n", *cp)); goto bad; } comp->flags &=~ VJF_TOSS; comp->last_recv = *cp++; } else { /* * this packet has an implicit state index. If we've * had a line error since the last time we got an * explicit state index, we have to toss the packet. */ if (comp->flags & VJF_TOSS) { PPPDEBUG((LOG_INFO, "vj_uncompress_tcp: tossing\n")); INCR(vjs_tossed); return (-1); } } cs = &comp->rstate[comp->last_recv]; hlen = getip_hl(cs->cs_ip) << 2; th = (struct tcphdr *)&((u_char *)&cs->cs_ip)[hlen]; th->th_sum = htons((*cp << 8) | cp[1]); cp += 2; if (changes & TCP_PUSH_BIT) { th->th_flags |= TCP_PSH; } else { th->th_flags &=~ TCP_PSH; } switch (changes & SPECIALS_MASK) { case SPECIAL_I: { register u32_t i = ntohs(cs->cs_ip.ip_len) - cs->cs_hlen; /* some compilers can't nest inline assembler.. */ tmp = ntohl(th->th_ack) + i; th->th_ack = htonl(tmp); tmp = ntohl(th->th_seq) + i; th->th_seq = htonl(tmp); } break; case SPECIAL_D: /* some compilers can't nest inline assembler.. */ tmp = ntohl(th->th_seq) + ntohs(cs->cs_ip.ip_len) - cs->cs_hlen; th->th_seq = htonl(tmp); break; default: if (changes & NEW_U) { th->th_flags |= TCP_URG; DECODEU(th->th_urp); } else { th->th_flags &=~ TCP_URG; } if (changes & NEW_W) { DECODES(th->th_win); } if (changes & NEW_A) { DECODEL(th->th_ack); } if (changes & NEW_S) { DECODEL(th->th_seq); } break; } if (changes & NEW_I) { DECODES(cs->cs_ip.ip_id); } else { cs->cs_ip.ip_id = ntohs(cs->cs_ip.ip_id) + 1; cs->cs_ip.ip_id = htons(cs->cs_ip.ip_id); } /* * At this point, cp points to the first byte of data in the * packet. Fill in the IP total length and update the IP * header checksum. */ vjlen = (u_short)(cp - (u_char*)n0->payload); if (n0->len < vjlen) { /* * We must have dropped some characters (crc should detect * this but the old slip framing won't) */ PPPDEBUG((LOG_INFO, "vj_uncompress_tcp: head buffer %d too short %d\n", n0->len, vjlen)); goto bad; } #if BYTE_ORDER == LITTLE_ENDIAN tmp = n0->tot_len - vjlen + cs->cs_hlen; cs->cs_ip.ip_len = htons(tmp); #else cs->cs_ip.ip_len = htons(n0->tot_len - vjlen + cs->cs_hlen); #endif /* recompute the ip header checksum */ bp = (u_short *) &cs->cs_ip; cs->cs_ip.ip_sum = 0; for (tmp = 0; hlen > 0; hlen -= 2) { tmp += *bp++; } tmp = (tmp & 0xffff) + (tmp >> 16); tmp = (tmp & 0xffff) + (tmp >> 16); cs->cs_ip.ip_sum = (u_short)(~tmp); /* Remove the compressed header and prepend the uncompressed header. */ if(pbuf_header(n0, -((s16_t)(vjlen)))) { /* Can we cope with this failing? Just assert for now */ LWIP_ASSERT("pbuf_header failed\n", 0); goto bad; } if(LWIP_MEM_ALIGN(n0->payload) != n0->payload) { struct pbuf *np, *q; u8_t *bufptr; np = pbuf_alloc(PBUF_RAW, n0->len + cs->cs_hlen, PBUF_POOL); if(!np) { PPPDEBUG((LOG_WARNING, "vj_uncompress_tcp: realign failed\n")); goto bad; } if(pbuf_header(np, -cs->cs_hlen)) { /* Can we cope with this failing? Just assert for now */ LWIP_ASSERT("pbuf_header failed\n", 0); goto bad; } bufptr = n0->payload; for(q = np; q != NULL; q = q->next) { MEMCPY(q->payload, bufptr, q->len); bufptr += q->len; } if(n0->next) { pbuf_chain(np, n0->next); pbuf_dechain(n0); } pbuf_free(n0); n0 = np; } if(pbuf_header(n0, cs->cs_hlen)) { struct pbuf *np; LWIP_ASSERT("vj_uncompress_tcp: cs->cs_hlen <= PBUF_POOL_BUFSIZE", cs->cs_hlen <= PBUF_POOL_BUFSIZE); np = pbuf_alloc(PBUF_RAW, cs->cs_hlen, PBUF_POOL); if(!np) { PPPDEBUG((LOG_WARNING, "vj_uncompress_tcp: prepend failed\n")); goto bad; } pbuf_cat(np, n0); n0 = np; } LWIP_ASSERT("n0->len >= cs->cs_hlen", n0->len >= cs->cs_hlen); MEMCPY(n0->payload, &cs->cs_ip, cs->cs_hlen); *nb = n0; return vjlen; bad: comp->flags |= VJF_TOSS; INCR(vjs_errorin); return (-1); } #endif /* VJ_SUPPORT */ #endif /* PPP_SUPPORT */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/vj.h000066400000000000000000000140331224274632000226100ustar00rootroot00000000000000/* * Definitions for tcp compression routines. * * $Id: vj.h,v 1.5 2007/12/19 20:47:23 fbernon Exp $ * * Copyright (c) 1989 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Berkeley. The name of the * University may not be used to endorse or promote products derived * from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * Van Jacobson (van@helios.ee.lbl.gov), Dec 31, 1989: * - Initial distribution. */ #ifndef VJ_H #define VJ_H #include "vjbsdhdr.h" #define MAX_SLOTS 16 /* must be > 2 and < 256 */ #define MAX_HDR 128 /* * Compressed packet format: * * The first octet contains the packet type (top 3 bits), TCP * 'push' bit, and flags that indicate which of the 4 TCP sequence * numbers have changed (bottom 5 bits). The next octet is a * conversation number that associates a saved IP/TCP header with * the compressed packet. The next two octets are the TCP checksum * from the original datagram. The next 0 to 15 octets are * sequence number changes, one change per bit set in the header * (there may be no changes and there are two special cases where * the receiver implicitly knows what changed -- see below). * * There are 5 numbers which can change (they are always inserted * in the following order): TCP urgent pointer, window, * acknowlegement, sequence number and IP ID. (The urgent pointer * is different from the others in that its value is sent, not the * change in value.) Since typical use of SLIP links is biased * toward small packets (see comments on MTU/MSS below), changes * use a variable length coding with one octet for numbers in the * range 1 - 255 and 3 octets (0, MSB, LSB) for numbers in the * range 256 - 65535 or 0. (If the change in sequence number or * ack is more than 65535, an uncompressed packet is sent.) */ /* * Packet types (must not conflict with IP protocol version) * * The top nibble of the first octet is the packet type. There are * three possible types: IP (not proto TCP or tcp with one of the * control flags set); uncompressed TCP (a normal IP/TCP packet but * with the 8-bit protocol field replaced by an 8-bit connection id -- * this type of packet syncs the sender & receiver); and compressed * TCP (described above). * * LSB of 4-bit field is TCP "PUSH" bit (a worthless anachronism) and * is logically part of the 4-bit "changes" field that follows. Top * three bits are actual packet type. For backward compatibility * and in the interest of conserving bits, numbers are chosen so the * IP protocol version number (4) which normally appears in this nibble * means "IP packet". */ /* packet types */ #define TYPE_IP 0x40 #define TYPE_UNCOMPRESSED_TCP 0x70 #define TYPE_COMPRESSED_TCP 0x80 #define TYPE_ERROR 0x00 /* Bits in first octet of compressed packet */ #define NEW_C 0x40 /* flag bits for what changed in a packet */ #define NEW_I 0x20 #define NEW_S 0x08 #define NEW_A 0x04 #define NEW_W 0x02 #define NEW_U 0x01 /* reserved, special-case values of above */ #define SPECIAL_I (NEW_S|NEW_W|NEW_U) /* echoed interactive traffic */ #define SPECIAL_D (NEW_S|NEW_A|NEW_W|NEW_U) /* unidirectional data */ #define SPECIALS_MASK (NEW_S|NEW_A|NEW_W|NEW_U) #define TCP_PUSH_BIT 0x10 /* * "state" data for each active tcp conversation on the wire. This is * basically a copy of the entire IP/TCP header from the last packet * we saw from the conversation together with a small identifier * the transmit & receive ends of the line use to locate saved header. */ struct cstate { struct cstate *cs_next; /* next most recently used state (xmit only) */ u_short cs_hlen; /* size of hdr (receive only) */ u_char cs_id; /* connection # associated with this state */ u_char cs_filler; union { char csu_hdr[MAX_HDR]; struct ip csu_ip; /* ip/tcp hdr from most recent packet */ } vjcs_u; }; #define cs_ip vjcs_u.csu_ip #define cs_hdr vjcs_u.csu_hdr struct vjstat { unsigned long vjs_packets; /* outbound packets */ unsigned long vjs_compressed; /* outbound compressed packets */ unsigned long vjs_searches; /* searches for connection state */ unsigned long vjs_misses; /* times couldn't find conn. state */ unsigned long vjs_uncompressedin; /* inbound uncompressed packets */ unsigned long vjs_compressedin; /* inbound compressed packets */ unsigned long vjs_errorin; /* inbound unknown type packets */ unsigned long vjs_tossed; /* inbound packets tossed because of error */ }; /* * all the state data for one serial line (we need one of these per line). */ struct vjcompress { struct cstate *last_cs; /* most recently used tstate */ u_char last_recv; /* last rcvd conn. id */ u_char last_xmit; /* last sent conn. id */ u_short flags; u_char maxSlotIndex; u_char compressSlot; /* Flag indicating OK to compress slot ID. */ #if LINK_STATS struct vjstat stats; #endif struct cstate tstate[MAX_SLOTS]; /* xmit connection states */ struct cstate rstate[MAX_SLOTS]; /* receive connection states */ }; /* flag values */ #define VJF_TOSS 1U /* tossing rcvd frames because of input err */ extern void vj_compress_init (struct vjcompress *comp); extern u_int vj_compress_tcp (struct vjcompress *comp, struct pbuf *pb); extern void vj_uncompress_err (struct vjcompress *comp); extern int vj_uncompress_uncomp(struct pbuf *nb, struct vjcompress *comp); extern int vj_uncompress_tcp (struct pbuf **nb, struct vjcompress *comp); #endif /* VJ_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/ppp/vjbsdhdr.h000066400000000000000000000043761224274632000240100ustar00rootroot00000000000000#ifndef VJBSDHDR_H #define VJBSDHDR_H #include "lwip/tcp.h" /* * Structure of an internet header, naked of options. * * We declare ip_len and ip_off to be short, rather than u_short * pragmatically since otherwise unsigned comparisons can result * against negative integers quite easily, and fail in subtle ways. */ PACK_STRUCT_BEGIN struct ip { #if defined(NO_CHAR_BITFIELDS) u_char ip_hl_v; /* bug in GCC for mips means the bitfield stuff will sometimes break - so we use a char for both and get round it with macro's instead... */ #else #if BYTE_ORDER == LITTLE_ENDIAN unsigned ip_hl:4, /* header length */ ip_v :4; /* version */ #elif BYTE_ORDER == BIG_ENDIAN unsigned ip_v :4, /* version */ ip_hl:4; /* header length */ #else COMPLAIN - NO BYTE ORDER SELECTED! #endif #endif u_char ip_tos; /* type of service */ u_short ip_len; /* total length */ u_short ip_id; /* identification */ u_short ip_off; /* fragment offset field */ #define IP_DF 0x4000 /* dont fragment flag */ #define IP_MF 0x2000 /* more fragments flag */ #define IP_OFFMASK 0x1fff /* mask for fragmenting bits */ u_char ip_ttl; /* time to live */ u_char ip_p; /* protocol */ u_short ip_sum; /* checksum */ struct in_addr ip_src,ip_dst; /* source and dest address */ }; PACK_STRUCT_END typedef u32_t tcp_seq; /* * TCP header. * Per RFC 793, September, 1981. */ PACK_STRUCT_BEGIN struct tcphdr { u_short th_sport; /* source port */ u_short th_dport; /* destination port */ tcp_seq th_seq; /* sequence number */ tcp_seq th_ack; /* acknowledgement number */ #if defined(NO_CHAR_BITFIELDS) u_char th_x2_off; #else #if BYTE_ORDER == LITTLE_ENDIAN unsigned th_x2 :4, /* (unused) */ th_off:4; /* data offset */ #endif #if BYTE_ORDER == BIG_ENDIAN unsigned th_off:4, /* data offset */ th_x2 :4; /* (unused) */ #endif #endif u_char th_flags; u_short th_win; /* window */ u_short th_sum; /* checksum */ u_short th_urp; /* urgent pointer */ }; PACK_STRUCT_END #endif /* VJBSDHDR_H */ uhd-3.5.5/firmware/zpu/lwip/lwip-1.3.1/src/netif/slipif.c000066400000000000000000000173461224274632000226650ustar00rootroot00000000000000/** * @file * SLIP Interface * */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the Institute nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * This file is built upon the file: src/arch/rtxc/netif/sioslip.c * * Author: Magnus Ivarsson */ /* * This is an arch independent SLIP netif. The specific serial hooks must be * provided by another file. They are sio_open, sio_recv and sio_send */ #include "netif/slipif.h" #include "lwip/opt.h" #if LWIP_HAVE_SLIPIF #include "lwip/def.h" #include "lwip/pbuf.h" #include "lwip/sys.h" #include "lwip/stats.h" #include "lwip/snmp.h" #include "lwip/sio.h" #define SLIP_END 0300 /* 0xC0 */ #define SLIP_ESC 0333 /* 0xDB */ #define SLIP_ESC_END 0334 /* 0xDC */ #define SLIP_ESC_ESC 0335 /* 0xDD */ #define MAX_SIZE 1500 /** * Send a pbuf doing the necessary SLIP encapsulation * * Uses the serial layer's sio_send() * * @param netif the lwip network interface structure for this slipif * @param p the pbuf chaing packet to send * @param ipaddr the ip address to send the packet to (not used for slipif) * @return always returns ERR_OK since the serial layer does not provide return values */ err_t slipif_output(struct netif *netif, struct pbuf *p, struct ip_addr *ipaddr) { struct pbuf *q; u16_t i; u8_t c; LWIP_ASSERT("netif != NULL", (netif != NULL)); LWIP_ASSERT("netif->state != NULL", (netif->state != NULL)); LWIP_ASSERT("p != NULL", (p != NULL)); LWIP_UNUSED_ARG(ipaddr); /* Send pbuf out on the serial I/O device. */ sio_send(SLIP_END, netif->state); for (q = p; q != NULL; q = q->next) { for (i = 0; i < q->len; i++) { c = ((u8_t *)q->payload)[i]; switch (c) { case SLIP_END: sio_send(SLIP_ESC, netif->state); sio_send(SLIP_ESC_END, netif->state); break; case SLIP_ESC: sio_send(SLIP_ESC, netif->state); sio_send(SLIP_ESC_ESC, netif->state); break; default: sio_send(c, netif->state); break; } } } sio_send(SLIP_END, netif->state); return ERR_OK; } /** * Handle the incoming SLIP stream character by character * * Poll the serial layer by calling sio_recv() * * @param netif the lwip network interface structure for this slipif * @return The IP packet when SLIP_END is received */ static struct pbuf * slipif_input(struct netif *netif) { u8_t c; /* q is the whole pbuf chain for a packet, p is the current pbuf in the chain */ struct pbuf *p, *q; u16_t recved; u16_t i; LWIP_ASSERT("netif != NULL", (netif != NULL)); LWIP_ASSERT("netif->state != NULL", (netif->state != NULL)); q = p = NULL; recved = i = 0; c = 0; while (1) { c = sio_recv(netif->state); switch (c) { case SLIP_END: if (recved > 0) { /* Received whole packet. */ /* Trim the pbuf to the size of the received packet. */ pbuf_realloc(q, recved); LINK_STATS_INC(link.recv); LWIP_DEBUGF(SLIP_DEBUG, ("slipif: Got packet\n")); return q; } break; case SLIP_ESC: c = sio_recv(netif->state); switch (c) { case SLIP_ESC_END: c = SLIP_END; break; case SLIP_ESC_ESC: c = SLIP_ESC; break; } /* FALLTHROUGH */ default: /* byte received, packet not yet completely received */ if (p == NULL) { /* allocate a new pbuf */ LWIP_DEBUGF(SLIP_DEBUG, ("slipif_input: alloc\n")); p = pbuf_alloc(PBUF_LINK, PBUF_POOL_BUFSIZE, PBUF_POOL); if (p == NULL) { LINK_STATS_INC(link.drop); LWIP_DEBUGF(SLIP_DEBUG, ("slipif_input: no new pbuf! (DROP)\n")); /* don't process any further since we got no pbuf to receive to */ break; } if (q != NULL) { /* 'chain' the pbuf to the existing chain */ pbuf_cat(q, p); } else { /* p is the first pbuf in the chain */ q = p; } } /* this automatically drops bytes if > MAX_SIZE */ if ((p != NULL) && (recved <= MAX_SIZE)) { ((u8_t *)p->payload)[i] = c; recved++; i++; if (i >= p->len) { /* on to the next pbuf */ i = 0; if (p->next != NULL && p->next->len > 0) { /* p is a chain, on to the next in the chain */ p = p->next; } else { /* p is a single pbuf, set it to NULL so next time a new * pbuf is allocated */ p = NULL; } } } break; } } return NULL; } #if !NO_SYS /** * The SLIP input thread. * * Feed the IP layer with incoming packets * * @param nf the lwip network interface structure for this slipif */ static void slipif_loop(void *nf) { struct pbuf *p; struct netif *netif = (struct netif *)nf; while (1) { p = slipif_input(netif); if (p != NULL) { if (netif->input(p, netif) != ERR_OK) { pbuf_free(p); p = NULL; } } } } #endif /* !NO_SYS */ /** * SLIP netif initialization * * Call the arch specific sio_open and remember * the opened device in the state field of the netif. * * @param netif the lwip network interface structure for this slipif * @return ERR_OK if serial line could be opened, * ERR_IF is serial line couldn't be opened * * @note netif->num must contain the number of the serial port to open * (0 by default) */ err_t slipif_init(struct netif *netif) { LWIP_DEBUGF(SLIP_DEBUG, ("slipif_init: netif->num=%"U16_F"\n", (u16_t)netif->num)); netif->name[0] = 's'; netif->name[1] = 'l'; netif->output = slipif_output; netif->mtu = MAX_SIZE; netif->flags = NETIF_FLAG_POINTTOPOINT; /* Try to open the serial port (netif->num contains the port number). */ netif->state = sio_open(netif->num); if (!netif->state) { /* Opening the serial port failed. */ return ERR_IF; } /* initialize the snmp variables and counters inside the struct netif * ifSpeed: no assumption can be made without knowing more about the * serial line! */ NETIF_INIT_SNMP(netif, snmp_ifType_slip, 0); /* Create a thread to poll the serial line. */ sys_thread_new(SLIPIF_THREAD_NAME, slipif_loop, netif, SLIPIF_THREAD_STACKSIZE, SLIPIF_THREAD_PRIO); return ERR_OK; } #endif /* LWIP_HAVE_SLIPIF */ uhd-3.5.5/firmware/zpu/lwip/lwipopts.h000066400000000000000000000131211224274632000177430ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009 Free Software Foundation, Inc. * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ /* * Our lwip options */ #define NO_SYS 1 // ---------- Memory options ---------- /** * MEM_ALIGNMENT: should be set to the alignment of the CPU * 4 byte alignment -> #define MEM_ALIGNMENT 4 * 2 byte alignment -> #define MEM_ALIGNMENT 2 */ #define MEM_ALIGNMENT 4 /** * MEM_SIZE: the size of the heap memory. If the application will send * a lot of data that needs to be copied, this should be set high. */ #define MEM_SIZE 256 /** * MEM_USE_POOLS==1: Use an alternative to malloc() by allocating from a set * of memory pools of various sizes. When mem_malloc is called, an element of * the smallest pool that can provide the lenght needed is returned. */ #define MEM_USE_POOLS 0 /** * MEMP_USE_CUSTOM_POOLS==1: whether to include a user file lwippools.h * that defines additional pools beyond the "standard" ones required * by lwIP. If you set this to 1, you must have lwippools.h in your * inlude path somewhere. */ #define MEMP_USE_CUSTOM_POOLS 0 // ---------- Internal Memory Pool Sizes ---------- /** * MEMP_NUM_PBUF: the number of memp struct pbufs (used for PBUF_ROM and PBUF_REF). * If the application sends a lot of data out of ROM (or other static memory), * this should be set high. */ #define MEMP_NUM_PBUF 8 /** * MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One * per active UDP "connection". * (requires the LWIP_UDP option) */ #define MEMP_NUM_UDP_PCB 4 /** * PBUF_LINK_HLEN: the number of bytes that should be allocated for a * link level header. The default is 14, the standard value for * Ethernet. */ #define PBUF_LINK_HLEN 16 #define ETH_PAD_SIZE 2 /** * PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ #define PBUF_POOL_SIZE 8 /** * PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. The default is * designed to accomodate single full size TCP frame in one pbuf, including * TCP_MSS, IP header, and link header. */ //#define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(TCP_MSS+40+PBUF_LINK_HLEN) #define PBUF_POOL_BUFSIZE LWIP_MEM_ALIGN_SIZE(128+28+PBUF_LINK_HLEN) // ---------- ARP options ---------- /** * ARP_TABLE_SIZE: Number of active MAC-IP address pairs cached. */ #define ARP_TABLE_SIZE 5 /** * ARP_QUEUEING==1: Outgoing packets are queued during hardware address * resolution. */ #define ARP_QUEUEING 0 /** * MEMP_NUM_ARP_QUEUE: the number of simulateously queued outgoing * packets (pbufs) that are waiting for an ARP request (to resolve * their destination address) to finish. * (requires the ARP_QUEUEING option) */ #define MEMP_NUM_ARP_QUEUE 5 // ---------- IP options ---------- /** * IP_OPTIONS_ALLOWED: Defines the behavior for IP options. * IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped. * IP_OPTIONS_ALLOWED==1: IP options are allowed (but not parsed). */ #define IP_OPTIONS_ALLOWED 0 /** * IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that * this option does not affect outgoing packet sizes, which can be controlled * via IP_FRAG. */ #define IP_REASSEMBLY 0 /** * IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note * that this option does not affect incoming packet sizes, which can be * controlled via IP_REASSEMBLY. */ #define IP_FRAG 0 /** * LWIP_DHCP==1: Enable DHCP module. */ #define LWIP_DHCP 0 /** * LWIP_IGMP==1: Turn on IGMP module. */ #define LWIP_IGMP 0 /** * LWIP_UDP==1: Turn on UDP. */ #define LWIP_UDP 1 /** * LWIP_TCP==1: Turn on TCP. */ #define LWIP_TCP 0 /** * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c) */ #define LWIP_NETCONN 0 /** * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c) */ #define LWIP_SOCKET 0 /** * LWIP_STATS==1: Enable statistics collection in lwip_stats. */ #define LWIP_STATS 0 /** * CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets. */ #define CHECKSUM_GEN_IP 0 /** * CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets. */ #define CHECKSUM_GEN_UDP 0 /** * CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets. */ #define CHECKSUM_CHECK_IP 0 /** * CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets. */ #define CHECKSUM_CHECK_UDP 0 /** * LWIP_NETIF_LINK_CALLBACK==1: Support a callback function from an interface * whenever the link changes (i.e., link down) */ #define LWIP_NETIF_LINK_CALLBACK 1 uhd-3.5.5/firmware/zpu/lwip/lwippools.h000066400000000000000000000013431224274632000201150ustar00rootroot00000000000000#ifndef INCLUDED_LWIPPOOLS_H #define INCLUDED_LWIPPOOLS_H /* * from comment at top of mem.c: * * To let mem_malloc() use pools (prevents fragmentation and is much faster than * a heap but might waste some memory), define MEM_USE_POOLS to 1, define * MEM_USE_CUSTOM_POOLS to 1 and create a file "lwippools.h" that includes a list * of pools like this (more pools can be added between _START and _END): * * Define three pools with sizes 256, 512, and 1512 bytes * LWIP_MALLOC_MEMPOOL_START * LWIP_MALLOC_MEMPOOL(20, 256) * LWIP_MALLOC_MEMPOOL(10, 512) * LWIP_MALLOC_MEMPOOL(5, 1512) * LWIP_MALLOC_MEMPOOL_END */ LWIP_MALLOC_MEMPOOL_START LWIP_MALLOC_MEMPOOL(2, 256) LWIP_MALLOC_MEMPOOL_END #endif /* INCLUDED_LWIPPOOLS_H */ uhd-3.5.5/firmware/zpu/lwip_port/000077500000000000000000000000001224274632000167575ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip_port/arch/000077500000000000000000000000001224274632000176745ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip_port/arch/cc.h000066400000000000000000000022771224274632000204420ustar00rootroot00000000000000#ifndef INCLUDED_ARCH_CC_H #define INCLUDED_ARCH_CC_H #define BYTE_ORDER BIG_ENDIAN #if 1 #include typedef uint8_t u8_t; typedef int8_t s8_t; typedef uint16_t u16_t; typedef int16_t s16_t; typedef uint32_t u32_t; typedef int32_t s32_t; #else typedef unsigned char u8_t; typedef signed char s8_t; typedef unsigned short u16_t; typedef signed short s16_t; typedef unsigned long u32_t; typedef signed long s32_t; #endif typedef u32_t mem_ptr_t; #if 1 /* minimal printf */ #define U16_F "u" #define S16_F "d" #define X16_F "x" #define U32_F "u" #define S32_F "d" #define X32_F "x" #else #define U16_F "hu" #define S16_F "hd" #define X16_F "hx" #define U32_F "lu" #define S32_F "ld" #define X32_F "lx" #endif #if 1 // gcc: don't pack #define PACK_STRUCT_FIELD(x) x #define PACK_STRUCT_STRUCT #define PACK_STRUCT_BEGIN #define PACK_STRUCT_END #else // gcc: do pack #define PACK_STRUCT_FIELD(x) x #define PACK_STRUCT_STRUCT __attribute__((packed)) #define PACK_STRUCT_BEGIN #define PACK_STRUCT_END #endif //#define LWIP_PLATFORM_ASSERT(msg) ((void)0) void abort(void); #define LWIP_PLATFORM_ASSERT(msg) abort() #endif /* INCLUDED_ARCH_CC_H */ uhd-3.5.5/firmware/zpu/lwip_port/arch/perf.h000066400000000000000000000001041224274632000207740ustar00rootroot00000000000000#define PERF_START ((void) 0) #define PERF_STOP(msg) ((void) 0) uhd-3.5.5/firmware/zpu/lwip_port/netif/000077500000000000000000000000001224274632000200645ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/lwip_port/netif/eth_driver.c000066400000000000000000000214031224274632000223630ustar00rootroot00000000000000/** * @file * Ethernet Interface for quadradio */ /* * Copyright (c) 2001-2004 Swedish Institute of Computer Science. * Copyright (c) 2010 Ettus Research LLC * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the lwIP TCP/IP stack. * * Author: Adam Dunkels * */ #include "lwip/opt.h" #include "lwip/def.h" #include "lwip/mem.h" #include "lwip/pbuf.h" #include "lwip/sys.h" #include #include #include "netif/etharp.h" #include "netif/ppp_oe.h" #include "eth_driver.h" #if 0 // don't build /* Define those to better describe your network interface. */ #define IFNAME0 'e' #define IFNAME1 'n' /** * Helper struct to hold private data used to operate your ethernet interface. */ struct quadradioif { int ethno; }; /* Forward declarations. */ static void quadradioif_input(struct netif *netif); /** * In this function, the hardware should be initialized. * Called from quadradioif_init(). * * @param netif the already initialized lwip network interface structure * for this quadradioif */ static void low_level_init(struct netif *netif) { struct quadradioif *quadradioif = netif->state; /* set MAC hardware address length */ netif->hwaddr_len = ETHARP_HWADDR_LEN; /* set MAC hardware address */ netif->hwaddr[0] = ; ... netif->hwaddr[5] = ; /* maximum transfer unit */ netif->mtu = 1500; /* device capabilities */ /* don't set NETIF_FLAG_ETHARP if this device is not an ethernet one */ netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP; /* Do whatever else is needed to initialize interface. */ } /** * This function should do the actual transmission of the packet. The packet is * contained in the pbuf that is passed to the function. This pbuf * might be chained. * * @param netif the lwip network interface structure for this quadradioif * @param p the MAC packet to send (e.g. IP packet including MAC addresses and type) * @return ERR_OK if the packet could be sent * an err_t value if the packet couldn't be sent * * @note Returning ERR_MEM here if a DMA queue of your MAC is full can lead to * strange results. You might consider waiting for space in the DMA queue * to become availale since the stack doesn't retry to send a packet * dropped because of memory failure (except for the TCP timers). */ static err_t low_level_output(struct netif *netif, struct pbuf *p) { struct quadradioif *quadradioif = netif->state; struct pbuf *q; initiate transfer(); #if ETH_PAD_SIZE pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */ #endif for(q = p; q != NULL; q = q->next) { /* Send the data from the pbuf to the interface, one pbuf at a time. The size of the data in each pbuf is kept in the ->len variable. */ send data from(q->payload, q->len); } signal that packet should be sent(); #if ETH_PAD_SIZE pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ #endif LINK_STATS_INC(link.xmit); return ERR_OK; } /** * Should allocate a pbuf and transfer the bytes of the incoming * packet from the interface into the pbuf. * * @param netif the lwip network interface structure for this quadradioif * @return a pbuf filled with the received packet (including MAC header) * NULL on memory error */ static struct pbuf * low_level_input(struct netif *netif) { struct quadradioif *quadradioif = netif->state; struct pbuf *p, *q; u16_t len; /* Obtain the size of the packet and put it into the "len" variable. */ len = ; #if ETH_PAD_SIZE len += ETH_PAD_SIZE; /* allow room for Ethernet padding */ #endif /* We allocate a pbuf chain of pbufs from the pool. */ p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL); if (p != NULL) { #if ETH_PAD_SIZE pbuf_header(p, -ETH_PAD_SIZE); /* drop the padding word */ #endif /* We iterate over the pbuf chain until we have read the entire * packet into the pbuf. */ for(q = p; q != NULL; q = q->next) { /* Read enough bytes to fill this pbuf in the chain. The * available data in the pbuf is given by the q->len * variable. */ read data into(q->payload, q->len); } acknowledge that packet has been read(); #if ETH_PAD_SIZE pbuf_header(p, ETH_PAD_SIZE); /* reclaim the padding word */ #endif LINK_STATS_INC(link.recv); } else { drop packet(); LINK_STATS_INC(link.memerr); LINK_STATS_INC(link.drop); } return p; } /** * This function should be called when a packet is ready to be read * from the interface. It uses the function low_level_input() that * should handle the actual reception of bytes from the network * interface. Then the type of the received packet is determined and * the appropriate input function is called. * * @param netif the lwip network interface structure for this quadradioif */ static void quadradioif_input(struct netif *netif) { struct quadradioif *quadradioif; struct eth_hdr *ethhdr; struct pbuf *p; quadradioif = netif->state; /* move received packet into a new pbuf */ p = low_level_input(netif); /* no packet could be read, silently ignore this */ if (p == NULL) return; /* points to packet payload, which starts with an Ethernet header */ ethhdr = p->payload; switch (htons(ethhdr->type)) { /* IP or ARP packet? */ case ETHTYPE_IP: case ETHTYPE_ARP: #if PPPOE_SUPPORT /* PPPoE packet? */ case ETHTYPE_PPPOEDISC: case ETHTYPE_PPPOE: #endif /* PPPOE_SUPPORT */ /* full packet send to tcpip_thread to process */ if (netif->input(p, netif)!=ERR_OK) { LWIP_DEBUGF(NETIF_DEBUG, ("quadradioif_input: IP input error\n")); pbuf_free(p); p = NULL; } break; default: pbuf_free(p); p = NULL; break; } } /** * Should be called at the beginning of the program to set up the * network interface. It calls the function low_level_init() to do the * actual setup of the hardware. * * This function should be passed as a parameter to netif_add(). * * @param netif the lwip network interface structure for this quadradioif * @return ERR_OK if the loopif is initialized * ERR_MEM if private data couldn't be allocated * any other err_t on error */ err_t quadradioif_init(struct netif *netif) { struct quadradioif *quadradioif; LWIP_ASSERT("netif != NULL", (netif != NULL)); quadradioif = mem_malloc(sizeof(struct quadradioif)); if (quadradioif == NULL) { LWIP_DEBUGF(NETIF_DEBUG, ("quadradioif_init: out of memory\n")); return ERR_MEM; } #if LWIP_NETIF_HOSTNAME /* Initialize interface hostname */ netif->hostname = "lwip"; #endif /* LWIP_NETIF_HOSTNAME */ /* * Initialize the snmp variables and counters inside the struct netif. * The last argument should be replaced with your link speed, in units * of bits per second. */ NETIF_INIT_SNMP(netif, snmp_ifType_ethernet_csmacd, LINK_SPEED_OF_YOUR_NETIF_IN_BPS); netif->state = quadradioif; netif->name[0] = IFNAME0; netif->name[1] = IFNAME1; /* We directly use etharp_output() here to save a function call. * You can instead declare your own function an call etharp_output() * from it if you have to do some checks before sending (e.g. if link * is available...) */ netif->output = etharp_output; netif->linkoutput = low_level_output; quadradioif->ethaddr = (struct eth_addr *)&(netif->hwaddr[0]); /* initialize the hardware */ low_level_init(netif); return ERR_OK; } #endif /* 0 */ uhd-3.5.5/firmware/zpu/lwip_port/netif/eth_driver.h000066400000000000000000000015501224274632000223710ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2010 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "qpn_port.h" void eth_driver_init(QActive *); void eth_driver_handle_input(int ethno, int bufno, size_t nbytes); void eth_driver_buffer_sig(int bufno); uhd-3.5.5/firmware/zpu/usrp2/000077500000000000000000000000001224274632000160135ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/usrp2/CMakeLists.txt000066400000000000000000000023461224274632000205600ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## INCLUDE(${CMAKE_SOURCE_DIR}/lib/CMakeLists.txt) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ADD_DEFINITIONS(-DUSRP2) ADD_DEFINITIONS(-DUDP_UART_MASK=0) ADD_LIBRARY(libusrp2fw STATIC ${COMMON_SRCS} sd.c ethernet.c ) ######################################################################## SET(GEN_OUTPUTS_BIN_SIZE 0x3fff) ADD_EXECUTABLE(usrp2_txrx_uhd.elf ${CMAKE_SOURCE_DIR}/apps/txrx_uhd.c) TARGET_LINK_LIBRARIES(usrp2_txrx_uhd.elf libusrp2fw) GEN_OUTPUTS(usrp2_txrx_uhd.elf) uhd-3.5.5/firmware/zpu/usrp2/eth_phy.h000066400000000000000000000301501224274632000176230ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* Much of this was extracted from the Linux e1000_hw.h file */ #ifndef INCLUDED_ETH_PHY_H #define INCLUDED_ETH_PHY_H /* PHY 1000 MII Register/Bit Definitions */ /* PHY Registers defined by IEEE */ #define PHY_CTRL 0x00 /* Control Register */ #define PHY_STATUS 0x01 /* Status Regiser */ #define PHY_ID1 0x02 /* Phy Id Reg (word 1) */ #define PHY_ID2 0x03 /* Phy Id Reg (word 2) */ #define PHY_AUTONEG_ADV 0x04 /* Autoneg Advertisement */ #define PHY_LP_ABILITY 0x05 /* Link Partner Ability (Base Page) */ #define PHY_AUTONEG_EXP 0x06 /* Autoneg Expansion Reg */ #define PHY_NEXT_PAGE_TX 0x07 /* Next Page TX */ #define PHY_LP_NEXT_PAGE 0x08 /* Link Partner Next Page */ #define PHY_1000T_CTRL 0x09 /* 1000Base-T Control Reg */ #define PHY_1000T_STATUS 0x0A /* 1000Base-T Status Reg */ #define PHY_EXT_STATUS 0x0F /* Extended Status Reg */ /* PHY 1000 MII Register additions in DP83856 */ /* The part implements 0x00 thru 0x1f; we use these. */ #define PHY_LINK_AN 0x11 /* Link and Auto Negotiation Status Reg */ #define PHY_INT_STATUS 0x14 /* Interupt Status Reg (RO) */ #define PHY_INT_MASK 0x15 /* Interrupt Mask Reg (RW) */ #define PHY_INT_CLEAR 0x17 /* Interrupt Clear Reg (RW) */ /* Bit definitions for some of the registers above */ /* PHY Control Register (PHY_CTRL) */ #define MII_CR_SPEED_SELECT_MSB 0x0040 /* bits 6,13: 10=1000, 01=100, 00=10 */ #define MII_CR_COLL_TEST_ENABLE 0x0080 /* Collision test enable */ #define MII_CR_FULL_DUPLEX 0x0100 /* FDX =1, half duplex =0 */ #define MII_CR_RESTART_AUTO_NEG 0x0200 /* Restart auto negotiation */ #define MII_CR_ISOLATE 0x0400 /* Isolate PHY from MII */ #define MII_CR_POWER_DOWN 0x0800 /* Power down */ #define MII_CR_AUTO_NEG_EN 0x1000 /* Auto Neg Enable */ #define MII_CR_SPEED_SELECT_LSB 0x2000 /* bits 6,13: 10=1000, 01=100, 00=10 */ #define MII_CR_LOOPBACK 0x4000 /* 0 = normal, 1 = loopback */ #define MII_CR_RESET 0x8000 /* 0 = normal, 1 = PHY reset */ /* PHY Status Register (PHY_STATUS) */ #define MII_SR_EXTENDED_CAPS 0x0001 /* Extended register capabilities */ #define MII_SR_JABBER_DETECT 0x0002 /* Jabber Detected */ #define MII_SR_LINK_STATUS 0x0004 /* Link Status 1 = link */ #define MII_SR_AUTONEG_CAPS 0x0008 /* Auto Neg Capable */ #define MII_SR_REMOTE_FAULT 0x0010 /* Remote Fault Detect */ #define MII_SR_AUTONEG_COMPLETE 0x0020 /* Auto Neg Complete */ #define MII_SR_PREAMBLE_SUPPRESS 0x0040 /* Preamble may be suppressed */ #define MII_SR_EXTENDED_STATUS 0x0100 /* Ext. status info in Reg 0x0F */ #define MII_SR_100T2_HD_CAPS 0x0200 /* 100T2 Half Duplex Capable */ #define MII_SR_100T2_FD_CAPS 0x0400 /* 100T2 Full Duplex Capable */ #define MII_SR_10T_HD_CAPS 0x0800 /* 10T Half Duplex Capable */ #define MII_SR_10T_FD_CAPS 0x1000 /* 10T Full Duplex Capable */ #define MII_SR_100X_HD_CAPS 0x2000 /* 100X Half Duplex Capable */ #define MII_SR_100X_FD_CAPS 0x4000 /* 100X Full Duplex Capable */ #define MII_SR_100T4_CAPS 0x8000 /* 100T4 Capable */ /* Autoneg Advertisement Register (PHY_AUTONEG_ADV) */ #define NWAY_AR_SELECTOR_FIELD 0x0001 /* indicates IEEE 802.3 CSMA/CD */ #define NWAY_AR_10T_HD_CAPS 0x0020 /* 10T Half Duplex Capable */ #define NWAY_AR_10T_FD_CAPS 0x0040 /* 10T Full Duplex Capable */ #define NWAY_AR_100TX_HD_CAPS 0x0080 /* 100TX Half Duplex Capable */ #define NWAY_AR_100TX_FD_CAPS 0x0100 /* 100TX Full Duplex Capable */ #define NWAY_AR_100T4_CAPS 0x0200 /* 100T4 Capable */ #define NWAY_AR_PAUSE 0x0400 /* Pause operation desired */ #define NWAY_AR_ASM_DIR 0x0800 /* Asymmetric Pause Direction bit */ #define NWAY_AR_REMOTE_FAULT 0x2000 /* Remote Fault detected */ #define NWAY_AR_NEXT_PAGE 0x8000 /* Next Page ability supported */ /* Link Partner Ability Register (Base Page) (PHY_LP_ABILITY) */ #define NWAY_LPAR_SELECTOR_FIELD 0x0000 /* LP protocol selector field */ #define NWAY_LPAR_10T_HD_CAPS 0x0020 /* LP is 10T Half Duplex Capable */ #define NWAY_LPAR_10T_FD_CAPS 0x0040 /* LP is 10T Full Duplex Capable */ #define NWAY_LPAR_100TX_HD_CAPS 0x0080 /* LP is 100TX Half Duplex Capable */ #define NWAY_LPAR_100TX_FD_CAPS 0x0100 /* LP is 100TX Full Duplex Capable */ #define NWAY_LPAR_100T4_CAPS 0x0200 /* LP is 100T4 Capable */ #define NWAY_LPAR_PAUSE 0x0400 /* LP Pause operation desired */ #define NWAY_LPAR_ASM_DIR 0x0800 /* LP Asymmetric Pause Direction bit */ #define NWAY_LPAR_REMOTE_FAULT 0x2000 /* LP has detected Remote Fault */ #define NWAY_LPAR_ACKNOWLEDGE 0x4000 /* LP has rx'd link code word */ #define NWAY_LPAR_NEXT_PAGE 0x8000 /* Next Page ability supported */ /* Autoneg Expansion Register (PHY_AUTONEG_EXP) */ #define NWAY_ER_LP_NWAY_CAPS 0x0001 /* LP has Auto Neg Capability */ #define NWAY_ER_PAGE_RXD 0x0002 /* LP is 10T Half Duplex Capable */ #define NWAY_ER_NEXT_PAGE_CAPS 0x0004 /* LP is 10T Full Duplex Capable */ #define NWAY_ER_LP_NEXT_PAGE_CAPS 0x0008 /* LP is 100TX Half Duplex Capable */ #define NWAY_ER_PAR_DETECT_FAULT 0x0010 /* LP is 100TX Full Duplex Capable */ /* Next Page TX Register (PHY_NEXT_PAGE_TX) */ #define NPTX_MSG_CODE_FIELD 0x0001 /* NP msg code or unformatted data */ #define NPTX_TOGGLE 0x0800 /* Toggles between exchanges * of different NP */ #define NPTX_ACKNOWLDGE2 0x1000 /* 1 = will comply with msg * 0 = cannot comply with msg */ #define NPTX_MSG_PAGE 0x2000 /* formatted(1)/unformatted(0) pg */ #define NPTX_NEXT_PAGE 0x8000 /* 1 = addition NP will follow * 0 = sending last NP */ /* Link Partner Next Page Register (PHY_LP_NEXT_PAGE) */ #define LP_RNPR_MSG_CODE_FIELD 0x0001 /* NP msg code or unformatted data */ #define LP_RNPR_TOGGLE 0x0800 /* Toggles between exchanges * of different NP */ #define LP_RNPR_ACKNOWLDGE2 0x1000 /* 1 = will comply with msg * 0 = cannot comply with msg */ #define LP_RNPR_MSG_PAGE 0x2000 /* formatted(1)/unformatted(0) pg */ #define LP_RNPR_ACKNOWLDGE 0x4000 /* 1 = ACK / 0 = NO ACK */ #define LP_RNPR_NEXT_PAGE 0x8000 /* 1 = addition NP will follow * 0 = sending last NP */ /* 1000BASE-T Control Register (PHY_1000T_CTRL) */ #define CR_1000T_ASYM_PAUSE 0x0080 /* Advertise asymmetric pause bit */ #define CR_1000T_HD_CAPS 0x0100 /* Advertise 1000T HD capability */ #define CR_1000T_FD_CAPS 0x0200 /* Advertise 1000T FD capability */ #define CR_1000T_REPEATER_DTE 0x0400 /* 1=Repeater/switch device port */ /* 0=DTE device */ #define CR_1000T_MS_VALUE 0x0800 /* 1=Configure PHY as Master */ /* 0=Configure PHY as Slave */ #define CR_1000T_MS_ENABLE 0x1000 /* 1=Master/Slave manual config value */ /* 0=Automatic Master/Slave config */ #define CR_1000T_TEST_MODE_NORMAL 0x0000 /* Normal Operation */ #define CR_1000T_TEST_MODE_1 0x2000 /* Transmit Waveform test */ #define CR_1000T_TEST_MODE_2 0x4000 /* Master Transmit Jitter test */ #define CR_1000T_TEST_MODE_3 0x6000 /* Slave Transmit Jitter test */ #define CR_1000T_TEST_MODE_4 0x8000 /* Transmitter Distortion test */ /* 1000BASE-T Status Register (PHY_1000T_STATUS) */ #define SR_1000T_IDLE_ERROR_CNT 0x00FF /* Num idle errors since last read */ #define SR_1000T_ASYM_PAUSE_DIR 0x0100 /* LP asymmetric pause direction bit */ #define SR_1000T_LP_HD_CAPS 0x0400 /* LP is 1000T HD capable */ #define SR_1000T_LP_FD_CAPS 0x0800 /* LP is 1000T FD capable */ #define SR_1000T_REMOTE_RX_STATUS 0x1000 /* Remote receiver OK */ #define SR_1000T_LOCAL_RX_STATUS 0x2000 /* Local receiver OK */ #define SR_1000T_MS_CONFIG_RES 0x4000 /* 1=Local TX is Master, 0=Slave */ #define SR_1000T_MS_CONFIG_FAULT 0x8000 /* Master/Slave config fault */ #define SR_1000T_REMOTE_RX_STATUS_SHIFT 12 #define SR_1000T_LOCAL_RX_STATUS_SHIFT 13 #define SR_1000T_PHY_EXCESSIVE_IDLE_ERR_COUNT 5 #define FFE_IDLE_ERR_COUNT_TIMEOUT_20 20 #define FFE_IDLE_ERR_COUNT_TIMEOUT_100 100 /* Extended Status Register (PHY_EXT_STATUS) */ #define IEEE_ESR_1000T_HD_CAPS 0x1000 /* 1000T HD capable */ #define IEEE_ESR_1000T_FD_CAPS 0x2000 /* 1000T FD capable */ #define IEEE_ESR_1000X_HD_CAPS 0x4000 /* 1000X HD capable */ #define IEEE_ESR_1000X_FD_CAPS 0x8000 /* 1000X FD capable */ #define PHY_TX_POLARITY_MASK 0x0100 /* register 10h bit 8 (polarity bit) */ #define PHY_TX_NORMAL_POLARITY 0 /* register 10h bit 8 (normal polarity) */ #define AUTO_POLARITY_DISABLE 0x0010 /* register 11h bit 4 */ /* (0=enable, 1=disable) */ /* Link and Auto Negotiation Status Reg (PHY_LINK_AN) [READ-ONLY] */ #define LANSR_MASTER 0x0001 /* 1=PHY is currently in master mode */ #define LANSR_FULL_DUPLEX 0x0002 /* 1=PHY is currently full duplex */ #define LANSR_LINK_GOOD 0x0004 /* 1=a good link is established */ #define LANSR_SPEED_MASK 0x0018 #define LANSR_SPEED_10 0x0000 /* 10Mb/s */ #define LANSR_SPEED_100 0x0008 /* 100Mb/s */ #define LANSR_SPEED_1000 0x0010 /* 1000Mb/s */ #define LANSR_SPEED_RSRVD 0x0018 /* reserved */ #define LANSR_NON_COMP_MODE 0x0020 /* 1=detects only in non-compliant mode */ #define LANSR_DEEP_LOOPBACK 0x0040 /* 1=the PHY operates in deep loopback mode */ #define LANSR_SHALLOW_LOOPBACK 0x0080 /* 1=the PHY operates in shallow loopback mode */ #define LANSR_RSRVD_8 0x0100 /* reserved */ #define LANSR_FIFO_ERR 0x0200 /* 1=FIFO error occurred */ #define LANSR_MDIX_XOVER 0x0400 /* 1=PHY's MDI is in cross-over mode */ #define LANSR_RSRVD_11 0x0800 /* resevered */ #define LANSR_TP_POLARITY_REV 0xf000 /* Twisted pair polarity status A:D([15:12]) 1=reversed */ /* Interrupt status, mask and clear regs (PHY_INT_{STATUS,MASK,CLEAR}) */ #define PHY_INT_RSRVD_0 0x0001 /* reserved */ #define PHY_INT_RSRVD_1 0x0002 /* reserved */ #define PHY_INT_RSRVD_2 0x0004 /* reserved */ #define PHY_INT_REM_FLT_CNG 0x0008 /* Remote Fault Changed */ #define PHY_INT_AN_CMPL 0x0010 /* Auto-negotiation completion */ #define PHY_INT_NXT_PG_RCVD 0x0020 /* Next Page Received */ #define PHY_INT_JABBER_CNG 0x0040 /* Jabber Changed */ #define PHY_INT_NO_LINK 0x0080 /* No link after auto-negotiation */ #define PHY_INT_NO_HCD 0x0100 /* AN couldn't determine highest common denominator */ #define PHY_INT_MAS_SLA_ERR 0x0200 /* Master / Slave Error: couldn't resolve */ #define PHY_INT_PRL_DET_FLT 0x0400 /* Parallel detection fault */ #define PHY_INT_POL_CNG 0x0800 /* Polarity of any channel changed */ #define PHY_INT_MDIX_CNG 0x1000 /* MDIX changed. A pair swap occurred. */ #define PHY_INT_DPLX_CNG 0x2000 /* Duplex changed */ #define PHY_INT_LNK_CNG 0x4000 /* Link changed (asserted when a link is established or broken) */ #define PHY_INT_SPD_CNG 0x8000 /* Speed changed */ #endif /* INCLUDED_ETH_PHY_H */ uhd-3.5.5/firmware/zpu/usrp2/ethernet.c000066400000000000000000000164321224274632000200030ustar00rootroot00000000000000/* * Copyright 2011 Ettus Research LLC * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "ethernet.h" #include "eth_phy.h" #include "eth_mac.h" #include "pic.h" #include "hal_io.h" #include "nonstdio.h" #define VERBOSE 1 static ethernet_t ed_state; static ethernet_link_changed_callback_t ed_callback = 0; void ethernet_register_link_changed_callback(ethernet_link_changed_callback_t new_callback) { ed_callback = new_callback; } static void ed_set_mac_speed(int speed) { printf("Speed set to %d\n",speed); /* switch(speed){ case 10: eth_mac->speed = 1; break; case 100: eth_mac->speed = 2; break; case 1000: eth_mac->speed = 4; break; default: break; } */ } static void ed_link_up(int speed) { // putstr("ed_link_up: "); puthex16_nl(speed); ed_set_mac_speed(speed); if (ed_callback) // fire link changed callback (*ed_callback)(speed); } static void ed_link_down(void) { // putstr("ed_link_down\n"); if (ed_callback) // fire link changed callback (*ed_callback)(0); } static void ed_link_speed_change(int speed) { ed_link_down(); ed_link_up(speed); } static void print_flow_control(int flow_control) { static const char *flow_control_msg[4] = { "NONE", "WE_TX", "WE_RX", "SYMMETRIC" }; putstr("ethernet flow control: "); puts(flow_control_msg[flow_control & 0x3]); } static void check_flow_control_resolution(void) { static const unsigned char table[16] = { // index = {local_asm, local_pause, partner_asm, partner_pause} FC_NONE, FC_NONE, FC_NONE, FC_NONE, FC_NONE, FC_SYMM, FC_NONE, FC_SYMM, FC_NONE, FC_NONE, FC_NONE, FC_WE_TX, FC_NONE, FC_SYMM, FC_WE_RX, FC_SYMM }; int us = eth_mac_miim_read(PHY_AUTONEG_ADV); int lp = eth_mac_miim_read(PHY_LP_ABILITY); int index = (((us >> 10) & 0x3) << 2) | ((lp >> 10) & 0x3); ed_state.flow_control = table[index]; if (1) print_flow_control(ed_state.flow_control); } /* * Read the PHY state register to determine link state and speed */ static void ed_check_phy_state(void) { int lansr = eth_mac_miim_read(PHY_LINK_AN); eth_link_state_t new_state = LS_UNKNOWN; int new_speed = S_UNKNOWN; if (VERBOSE){ putstr("LANSR: "); puthex16_nl(lansr); } if (lansr & LANSR_LINK_GOOD){ // link's up if (VERBOSE) puts(" LINK_GOOD"); new_state = LS_UP; switch (lansr & LANSR_SPEED_MASK){ case LANSR_SPEED_10: new_speed = 10; break; case LANSR_SPEED_100: new_speed = 100; break; case LANSR_SPEED_1000: new_speed = 1000; break; default: new_speed = S_UNKNOWN; break; } check_flow_control_resolution(); } else { // link's down if (VERBOSE) puts(" NOT LINK_GOOD"); new_state = LS_DOWN; new_speed = S_UNKNOWN; } if (new_state != ed_state.link_state){ ed_state.link_state = new_state; // remember new state if (new_state == LS_UP) ed_link_up(new_speed); else if (new_state == LS_DOWN) ed_link_down(); } else if (new_state == LS_UP && new_speed != ed_state.link_speed){ ed_state.link_speed = new_speed; // remember new speed ed_link_speed_change(new_speed); } } /* * This is fired when the ethernet PHY state changes */ static void eth_phy_irq_handler(unsigned irq) { ed_check_phy_state(); eth_mac_miim_write(PHY_INT_CLEAR, ~0); // clear all ints } void ethernet_init(void) { eth_mac_init(ethernet_mac_addr()); ed_state.link_state = LS_UNKNOWN; ed_state.link_speed = S_UNKNOWN; // initialize MAC registers // eth_mac->tx_hwmark = 0x1e; //eth_mac->tx_lwmark = 0x19; //eth_mac->crc_chk_en = 1; //eth_mac->rx_max_length = 2048; // configure PAUSE frame stuff //eth_mac->tx_pause_en = 1; // pay attn to pause frames sent to us //eth_mac->pause_quanta_set = 38; // a bit more than 1 max frame 16kb/512 + fudge //eth_mac->pause_frame_send_en = 1; // enable sending pause frames // setup PHY to interrupt on changes unsigned mask = (PHY_INT_AN_CMPL // auto-neg completed | PHY_INT_NO_LINK // no link after auto-neg | PHY_INT_NO_HCD // no highest common denominator | PHY_INT_MAS_SLA_ERR // couldn't resolve master/slave | PHY_INT_PRL_DET_FLT // parallel detection fault | PHY_INT_LNK_CNG // link established or broken | PHY_INT_SPD_CNG // speed changed ); eth_mac_miim_write(PHY_INT_CLEAR, ~0); // clear all pending interrupts eth_mac_miim_write(PHY_INT_MASK, mask); // enable the ones we want pic_register_handler(IRQ_PHY, eth_phy_irq_handler); // Advertise our flow control configuation. // // We and the link partner each specify two bits in the base page // related to autoconfiguration: NWAY_AR_PAUSE and NWAY_AR_ASM_DIR. // The bits say what a device is "willing" to do, not what may actually // happen as a result of the negotiation. There are 4 cases: // // PAUSE ASM_DIR // // 0 0 I have no flow control capability. // // 1 0 I both assert and respond to flow control. // // 0 1 I assert flow control, but cannot respond. That is, // I want to be able to send PAUSE frames, but will ignore any // you send to me. (This is our configuration.) // // 1 1 I can both assert and respond to flow control AND I am willing // to operate symmetrically OR asymmetrically in EITHER direction. // (We hope the link partner advertises this, otherwise we don't // get what we want.) int t = eth_mac_miim_read(PHY_AUTONEG_ADV); t &= ~(NWAY_AR_PAUSE | NWAY_AR_ASM_DIR); t |= NWAY_AR_ASM_DIR; // Say we can't to 10BASE-T or 100BASE-TX, half or full duplex t &= ~(NWAY_AR_10T_HD_CAPS | NWAY_AR_10T_FD_CAPS | NWAY_AR_100TX_HD_CAPS | NWAY_AR_100TX_FD_CAPS); eth_mac_miim_write(PHY_AUTONEG_ADV, t); int r = eth_mac_miim_read(PHY_AUTONEG_ADV); // DEBUG, read back if (t != r){ printf("PHY_AUTONEG_ADV: wrote 0x%x, got 0x%x\n", t, r); } // Restart autonegotation. // We want to ensure that we're advertising our PAUSE capabilities. t = eth_mac_miim_read(PHY_CTRL); eth_mac_miim_write(PHY_CTRL, t | MII_CR_RESTART_AUTO_NEG); } int ethernet_check_errors(void) { // these registers are reset when read int r = 0; /* if (eth_mac_read_rmon(0x05) != 0) r |= RME_RX_CRC; if (eth_mac_read_rmon(0x06) != 0) r |= RME_RX_FIFO_FULL; if (eth_mac_read_rmon(0x07) != 0) r |= RME_RX_2SHORT_2LONG; if (eth_mac_read_rmon(0x25) != 0) r |= RME_TX_JAM_DROP; if (eth_mac_read_rmon(0x26) != 0) r |= RME_TX_FIFO_UNDER; if (eth_mac_read_rmon(0x27) != 0) r |= RME_TX_FIFO_OVER; */ return r; } uhd-3.5.5/firmware/zpu/usrp2/sd.c000066400000000000000000000110121224274632000165600ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2008-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "sd.h" #include "memory_map.h" #include "stdint.h" #include "stdio.h" static inline void sd_packarg(unsigned char *argument,unsigned int value) { argument[3] = (unsigned char)(value >> 24); argument[2] = (unsigned char)(value >> 16); argument[1] = (unsigned char)(value >> 8); argument[0] = (unsigned char)(value); } int sd_init(void) { unsigned char response[5]; unsigned char argument[4]; int i,j; for(i=0;i<4;i++) argument[i] = 0; // Set clock to less than 400 kHz to start out sdspi_regs->clkdiv = 128; // Delay at least 74 cycles sd_assert_cs(); for(i = 0; i < 100; i++) sd_send_byte(SD_IDLE); sd_deassert_cs(); // Initialization Sequence -- CMD0 CMD55 ACMD41 CMD58 // Put card in idle state if(sd_send_command(SD_CMD0,SD_CMD0_R,response,argument)==0) return 0; // Something went wrong in command j = 0; do { j++; if(sd_send_command(SD_CMD55,SD_CMD55_R,response,argument)==1) sd_send_command(SD_ACMD41,SD_ACMD41_R,response,argument); else j = SD_IDLE_WAIT_MAX; } while(((response[0] & SD_MSK_IDLE) == SD_MSK_IDLE) && (j < SD_IDLE_WAIT_MAX)); if(j>= SD_IDLE_WAIT_MAX) // IDLE timeout exceeded, card asleep return 0; // CMD58 reads the SD card capabilities if(sd_send_command(SD_CMD58,SD_CMD58_R,response,argument)==0) return 0; // CMD58 FAIL if((response[2] & SD_MSK_OCR_33) != SD_MSK_OCR_33) return 0; // Card doesn't do 3.3V //printf("OCR = %x %x %x %x\n",response[0],response[1],response[2],response[3]); // Set blocklen here sd_packarg(argument,SD_BLOCKLEN); if(sd_send_command(SD_CMD16,SD_CMD16_R,response,argument)==0) return 0; // Set Blocklen failed // Reset back to high speed sdspi_regs->clkdiv = 4; //puts("finished init\n"); return 1; } int sd_send_command(unsigned char cmd,unsigned char response_type, unsigned char *response,unsigned char *argument) { int i; char response_length; unsigned char tmp; sd_assert_cs(); sd_send_byte((cmd & 0x3F) | 0x40); for(i=3;i>=0;i--) sd_send_byte(argument[i]); sd_send_byte(SD_CRC); // Always the same response_length = 0; switch(response_type) { case SD_R1: case SD_R1B: response_length = 1; break; case SD_R2: response_length = 2; break; case SD_R3: response_length = 5; break; default: break; } // Wait for a response, which will have a 0 start bit i = 0; do { tmp = sd_rcv_byte(); i++; } while(((tmp & 0x80) != 0) && i < SD_CMD_TIMEOUT); if(i>= SD_CMD_TIMEOUT) { sd_deassert_cs(); //puts("cmd send timeout\n"); return 0; } for(i=response_length-1; i>=0; i--) { response[i] = tmp; tmp = sd_rcv_byte(); } i = 0; if(response_type == SD_R1B) { do { i++; tmp = sd_rcv_byte(); } while(tmp != SD_IDLE); sd_send_byte(SD_IDLE); } //puts("send cmd success\n"); sd_deassert_cs(); return 1; } int sd_read_block (unsigned int blockaddr, unsigned char *buf) { unsigned char response[5]; unsigned char argument[4]; unsigned int i = 0; unsigned char tmp; blockaddr <<= SD_BLOCKLEN_NBITS; sd_packarg(argument,blockaddr); if(sd_send_command(SD_CMD17,SD_CMD17_R,response,argument)==0) return 0; //Failed READ; if(response[0] != 0) return 0; //Misaligned READ sd_assert_cs(); i = 0; do { tmp = sd_rcv_byte(); i++; } while((tmp == 0xFF) && (i < SD_RD_TIMEOUT)); if((i>= SD_RD_TIMEOUT) ||((tmp & SD_MSK_TOK_DATAERROR) == 0)) { sd_send_byte(SD_IDLE); // Send a dummy before quitting return 0; // Data ERROR } for(i=0;i. */ #ifndef INCLUDED_SD_H #define INCLUDED_SD_H #include "memory_map.h" #define SD_READY 1 #define SD_IDLE_WAIT_MAX 100 #define SD_CMD_TIMEOUT 100 #define SD_RD_TIMEOUT 1000 #define SD_CMD0 0 #define SD_CMD1 1 #define SD_CMD9 9 #define SD_CMD10 10 #define SD_CMD12 12 #define SD_CMD13 13 #define SD_CMD16 16 #define SD_CMD17 17 #define SD_CMD18 18 #define SD_CMD24 24 #define SD_CMD25 25 #define SD_CMD27 27 #define SD_CMD28 28 #define SD_CMD29 29 #define SD_CMD30 30 #define SD_CMD32 32 #define SD_CMD33 33 #define SD_CMD38 38 #define SD_CMD55 55 #define SD_CMD58 58 #define SD_CMD59 59 #define SD_ACMD41 41 #define SD_IDLE 0xFF #define SD_CRC 0x95 #define SD_R1 1 #define SD_R1B 2 #define SD_R2 3 #define SD_R3 4 #define SD_CMD0_R SD_R1 #define SD_CMD16_R SD_R1 #define SD_CMD17_R SD_R1 #define SD_CMD55_R SD_R1 #define SD_ACMD41_R SD_R1 #define SD_CMD58_R SD_R3 #define SD_BLOCKLEN 512 #define SD_BLOCKLEN_NBITS 9 #define SD_MSK_IDLE 0x01 #define SD_MSK_OCR_33 0xC0 #define SD_MSK_TOK_DATAERROR 0xE0 int sd_init(void); static inline void sd_assert_cs(void) { // Wait for idle before doing anything while(sdspi_regs->status != SD_READY) ; sdspi_regs->status = 1; } static inline void sd_deassert_cs(void) { // Wait for idle before doing anything while(sdspi_regs->status != SD_READY) ; sdspi_regs->status = 0; } static inline char sd_rcv_byte(void) { // Wait for idle before doing anything while(sdspi_regs->status != SD_READY) ; sdspi_regs->send_dat = SD_IDLE; while(sdspi_regs->status != SD_READY) ; return sdspi_regs-> receive_dat; } static inline void sd_send_byte(char dat) { // Wait for idle before doing anything while(sdspi_regs->status != SD_READY) ; // Wait for status = 1 (ready) sdspi_regs->send_dat = dat; } int sd_send_command(unsigned char cmd,unsigned char response_type, unsigned char *response,unsigned char *argument); int sd_read_block (unsigned int blockaddr, unsigned char *buf); int sd_write_block(unsigned int blockaddr, const unsigned char *buf); #endif /* INCLUDED_SD_H */ uhd-3.5.5/firmware/zpu/usrp2p/000077500000000000000000000000001224274632000161735ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/usrp2p/CMakeLists.txt000066400000000000000000000026351224274632000207410ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## INCLUDE(${CMAKE_SOURCE_DIR}/lib/CMakeLists.txt) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ADD_DEFINITIONS(-DUSRP2P) ADD_DEFINITIONS(-DUDP_UART_MASK=4) #GPS=UART2 streaming enabled ADD_LIBRARY(libusrp2pfw STATIC ${COMMON_SRCS} spif.c spi_flash.c spi_flash_read.c bootloader_utils.c ethernet.c xilinx_s3_icap.c udp_fw_update.c u2p_init.c ) ADD_SUBDIRECTORY(bootloader) ######################################################################## SET(GEN_OUTPUTS_BIN_SIZE 0x3fff) ADD_EXECUTABLE(usrp2p_txrx_uhd.elf ${CMAKE_SOURCE_DIR}/apps/txrx_uhd.c) TARGET_LINK_LIBRARIES(usrp2p_txrx_uhd.elf libusrp2pfw) GEN_OUTPUTS(usrp2p_txrx_uhd.elf) uhd-3.5.5/firmware/zpu/usrp2p/bootconfig.h000066400000000000000000000033031224274632000204740ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This file is part of GNU Radio * * GNU Radio is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * GNU Radio is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef INCLUDED_BOOTCONFIG_H #define INCLUDED_BOOTCONFIG_H #include typedef struct { unsigned char fpga_image_number; unsigned char firmware_image_number; } bootconfig_t; static inline bootconfig_t make_bootconfig(unsigned char fpga_image_number, unsigned char firmware_image_number) { bootconfig_t r; r.fpga_image_number = fpga_image_number; r.firmware_image_number = firmware_image_number; return r; } void bootconfig_init(void); /* One time call to initialize */ /*! * \return default boot configuration */ bootconfig_t bootconfig_get_default(void); /*! * \brief Set the default boot configuration. */ bool bootconfig_set_default(bootconfig_t bc); /*! * \brief attempt to boot the given fpga and software image. * * If successful, this routine does not return. * If it fail for some reason, it returns. */ void bootconfig_boot(bootconfig_t bc); #endif /* INCLUDED_BOOTCONFIG_H */ uhd-3.5.5/firmware/zpu/usrp2p/bootloader/000077500000000000000000000000001224274632000203255ustar00rootroot00000000000000uhd-3.5.5/firmware/zpu/usrp2p/bootloader/CMakeLists.txt000066400000000000000000000030241224274632000230640ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## INCLUDE(FindPythonInterp) MACRO(GEN_RMI target) GET_FILENAME_COMPONENT(name ${target} NAME_WE) #command to create a rmi from elf ADD_CUSTOM_COMMAND( OUTPUT ${name}.rmi DEPENDS ${name}.bin COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/bin/bin_to_ram_macro_init.py ${name}.bin ${name}.rmi ) #add a top level target for output files ADD_CUSTOM_TARGET( ${name}_rmi ALL DEPENDS ${name}.rmi ) ENDMACRO(GEN_RMI) ######################################################################## ADD_EXECUTABLE(bootloader.elf ${CMAKE_SOURCE_DIR}/apps/txrx_uhd.c) ADD_DEFINITIONS(-DUSRP2P) ADD_DEFINITIONS(-DBOOTLOADER) TARGET_LINK_LIBRARIES(bootloader.elf libusrp2pfw) SET(GEN_OUTPUTS_BIN_SIZE 0x3fff) GEN_OUTPUTS(bootloader.elf) GEN_RMI(bootloader.bin) uhd-3.5.5/firmware/zpu/usrp2p/bootloader_utils.c000066400000000000000000000064611224274632000217200ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2010 Ettus Research LLC * */ //contains routines for loading programs from Flash. depends on Flash libraries. //also contains routines for reading / writing EEPROM flags for the bootloader #include #include #include #include #include #include #include #include #include #include "spi.h" #define BUTTON_PUSHED ((router_status->irqs & PIC_BUTTON) ? 0 : 1) int is_valid_fpga_image(uint32_t addr) { // printf("is_valid_fpga_image(): starting with addr=%x...\n", addr); uint8_t imgbuf[64]; spi_flash_read(addr, 64, imgbuf); //we're just looking for leading 0xFF padding, followed by the sync bytes 0xAA 0x99 for(size_t i = 0; i<63; i++) { if(imgbuf[i] == 0xFF) continue; if(imgbuf[i] == 0xAA && imgbuf[i+1] == 0x99) { //printf("is_valid_fpga_image(): found valid FPGA image\n"); return 1; } } return 0; } int is_valid_fw_image(uint32_t addr) { static const uint8_t fwheader[] = {0x0b, 0x0b, 0x0b, 0x0b}; //just lookin for a jump to anywhere located at the reset vector //printf("is_valid_fw_image(): starting with addr=%x...\n", addr); uint8_t buf[12]; spi_flash_read(addr, 4, buf); //printf("is_valid_fw_image(): read "); //for(int i = 0; i < 5; i++) printf("%x ", buf[i]); //printf("\n"); return memcmp(buf, fwheader, 4) == 0; } void start_program(void) { //ignoring the addr now //all this does is tap that register *((volatile uint32_t *) SR_ADDR_BLDRDONE) = 1; } void do_the_bootload_thing(void) { spif_init(); //initialize SPI flash clock bool production_image = find_safe_booted_flag(); set_safe_booted_flag(0); //haven't booted yet if(BUTTON_PUSHED) { //see memory_map.h puts("Starting USRP2+ in safe mode. Loading safe firmware."); return; } if(!production_image) { puts("Checking for valid production FPGA image..."); if(is_valid_fpga_image(PROD_FPGA_IMAGE_LOCATION_ADDR)) { puts("Valid production FPGA image found. Attempting to boot."); set_safe_booted_flag(1); mdelay(300); //so serial output can finish icap_reload_fpga(PROD_FPGA_IMAGE_LOCATION_ADDR); } puts("No valid production FPGA image found.\nFalling through to built-in firmware."); return; } if(is_valid_fw_image(PROD_FW_IMAGE_LOCATION_ADDR)) { puts("Valid production firmware found. Loading..."); spi_flash_read(PROD_FW_IMAGE_LOCATION_ADDR, FW_IMAGE_SIZE_BYTES, (void *)RAM_BASE); puts("Finished loading. Starting image."); mdelay(300); start_program(); puts("ERROR: Return from main program! This should never happen!"); //if this happens, though, the safest thing to do is reboot the whole FPGA and start over. mdelay(300); icap_reload_fpga(SAFE_FPGA_IMAGE_LOCATION_ADDR); return; } puts("No valid production firmware found. Falling through to built-in firmware."); /* if(is_valid_fw_image(SAFE_FW_IMAGE_LOCATION_ADDR)) { spi_flash_read(SAFE_FW_IMAGE_LOCATION_ADDR, FW_IMAGE_SIZE_BYTES, (void *)RAM_BASE); puts("Finished loading. Starting image."); mdelay(300); start_program(); puts("ERROR: return from main program! This should never happen!"); mdelay(300); icap_reload_fpga(SAFE_FPGA_IMAGE_LOCATION_ADDR); return; } puts("ERROR: no safe firmware image available. Falling through to built-in firmware."); */ } uhd-3.5.5/firmware/zpu/usrp2p/bootloader_utils.h000066400000000000000000000012251224274632000217160ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2010 Ettus Research LLC * */ #include //we're working in bytes and byte addresses so we can run the same code with Flash chips of different sector sizes. //it's really 1463736, but rounded up to 1.5MB #define FPGA_IMAGE_SIZE_BYTES 1572864 //16K #define FW_IMAGE_SIZE_BYTES 0x3fff #define SAFE_FPGA_IMAGE_LOCATION_ADDR 0x00000000 #define SAFE_FW_IMAGE_LOCATION_ADDR 0x003F0000 #define PROD_FPGA_IMAGE_LOCATION_ADDR 0x00180000 #define PROD_FW_IMAGE_LOCATION_ADDR 0x00300000 int is_valid_fpga_image(uint32_t addr); int is_valid_fw_image(uint32_t addr); void start_program(void); void do_the_bootload_thing(void); uhd-3.5.5/firmware/zpu/usrp2p/eth_phy.h000066400000000000000000000271701224274632000200130ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2007 Free Software Foundation, Inc. * Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* Much of this was extracted from the Linux e1000_hw.h file */ #ifndef INCLUDED_ETH_PHY_H #define INCLUDED_ETH_PHY_H /* PHY 1000 MII Register/Bit Definitions */ /* PHY Registers defined by IEEE */ #define PHY_CTRL 0x00 /* Control Register */ #define PHY_STATUS 0x01 /* Status Regiser */ #define PHY_ID1 0x02 /* Phy Id Reg (word 1) */ #define PHY_ID2 0x03 /* Phy Id Reg (word 2) */ #define PHY_AUTONEG_ADV 0x04 /* Autoneg Advertisement */ #define PHY_LP_ABILITY 0x05 /* Link Partner Ability (Base Page) */ #define PHY_AUTONEG_EXP 0x06 /* Autoneg Expansion Reg */ #define PHY_NEXT_PAGE_TX 0x07 /* Next Page TX */ #define PHY_LP_NEXT_PAGE 0x08 /* Link Partner Next Page */ #define PHY_1000T_CTRL 0x09 /* 1000Base-T Control Reg */ #define PHY_1000T_STATUS 0x0A /* 1000Base-T Status Reg */ #define PHY_EXT_STATUS 0x0F /* Extended Status Reg */ /* PHY 1000 MII Register additions in ET1011C */ #define PHY_INT_MASK 24 #define PHY_INT_STATUS 25 #define PHY_PHY_STATUS 26 #define PHY_LED2 28 /* Bit definitions for some of the registers above */ /* PHY Control Register (PHY_CTRL) */ #define MII_CR_SPEED_SELECT_MSB 0x0040 /* bits 6,13: 10=1000, 01=100, 00=10 */ #define MII_CR_COLL_TEST_ENABLE 0x0080 /* Collision test enable */ #define MII_CR_FULL_DUPLEX 0x0100 /* FDX =1, half duplex =0 */ #define MII_CR_RESTART_AUTO_NEG 0x0200 /* Restart auto negotiation */ #define MII_CR_ISOLATE 0x0400 /* Isolate PHY from MII */ #define MII_CR_POWER_DOWN 0x0800 /* Power down */ #define MII_CR_AUTO_NEG_EN 0x1000 /* Auto Neg Enable */ #define MII_CR_SPEED_SELECT_LSB 0x2000 /* bits 6,13: 10=1000, 01=100, 00=10 */ #define MII_CR_LOOPBACK 0x4000 /* 0 = normal, 1 = loopback */ #define MII_CR_RESET 0x8000 /* 0 = normal, 1 = PHY reset */ /* PHY Status Register (PHY_STATUS) */ #define MII_SR_EXTENDED_CAPS 0x0001 /* Extended register capabilities */ #define MII_SR_JABBER_DETECT 0x0002 /* Jabber Detected */ #define MII_SR_LINK_STATUS 0x0004 /* Link Status 1 = link */ #define MII_SR_AUTONEG_CAPS 0x0008 /* Auto Neg Capable */ #define MII_SR_REMOTE_FAULT 0x0010 /* Remote Fault Detect */ #define MII_SR_AUTONEG_COMPLETE 0x0020 /* Auto Neg Complete */ #define MII_SR_PREAMBLE_SUPPRESS 0x0040 /* Preamble may be suppressed */ #define MII_SR_EXTENDED_STATUS 0x0100 /* Ext. status info in Reg 0x0F */ #define MII_SR_100T2_HD_CAPS 0x0200 /* 100T2 Half Duplex Capable */ #define MII_SR_100T2_FD_CAPS 0x0400 /* 100T2 Full Duplex Capable */ #define MII_SR_10T_HD_CAPS 0x0800 /* 10T Half Duplex Capable */ #define MII_SR_10T_FD_CAPS 0x1000 /* 10T Full Duplex Capable */ #define MII_SR_100X_HD_CAPS 0x2000 /* 100X Half Duplex Capable */ #define MII_SR_100X_FD_CAPS 0x4000 /* 100X Full Duplex Capable */ #define MII_SR_100T4_CAPS 0x8000 /* 100T4 Capable */ /* Autoneg Advertisement Register (PHY_AUTONEG_ADV) */ #define NWAY_AR_SELECTOR_FIELD 0x0001 /* indicates IEEE 802.3 CSMA/CD */ #define NWAY_AR_10T_HD_CAPS 0x0020 /* 10T Half Duplex Capable */ #define NWAY_AR_10T_FD_CAPS 0x0040 /* 10T Full Duplex Capable */ #define NWAY_AR_100TX_HD_CAPS 0x0080 /* 100TX Half Duplex Capable */ #define NWAY_AR_100TX_FD_CAPS 0x0100 /* 100TX Full Duplex Capable */ #define NWAY_AR_100T4_CAPS 0x0200 /* 100T4 Capable */ #define NWAY_AR_PAUSE 0x0400 /* Pause operation desired */ #define NWAY_AR_ASM_DIR 0x0800 /* Asymmetric Pause Direction bit */ #define NWAY_AR_REMOTE_FAULT 0x2000 /* Remote Fault detected */ #define NWAY_AR_NEXT_PAGE 0x8000 /* Next Page ability supported */ /* Link Partner Ability Register (Base Page) (PHY_LP_ABILITY) */ #define NWAY_LPAR_SELECTOR_FIELD 0x0000 /* LP protocol selector field */ #define NWAY_LPAR_10T_HD_CAPS 0x0020 /* LP is 10T Half Duplex Capable */ #define NWAY_LPAR_10T_FD_CAPS 0x0040 /* LP is 10T Full Duplex Capable */ #define NWAY_LPAR_100TX_HD_CAPS 0x0080 /* LP is 100TX Half Duplex Capable */ #define NWAY_LPAR_100TX_FD_CAPS 0x0100 /* LP is 100TX Full Duplex Capable */ #define NWAY_LPAR_100T4_CAPS 0x0200 /* LP is 100T4 Capable */ #define NWAY_LPAR_PAUSE 0x0400 /* LP Pause operation desired */ #define NWAY_LPAR_ASM_DIR 0x0800 /* LP Asymmetric Pause Direction bit */ #define NWAY_LPAR_REMOTE_FAULT 0x2000 /* LP has detected Remote Fault */ #define NWAY_LPAR_ACKNOWLEDGE 0x4000 /* LP has rx'd link code word */ #define NWAY_LPAR_NEXT_PAGE 0x8000 /* Next Page ability supported */ /* Autoneg Expansion Register (PHY_AUTONEG_EXP) */ #define NWAY_ER_LP_NWAY_CAPS 0x0001 /* LP has Auto Neg Capability */ #define NWAY_ER_PAGE_RXD 0x0002 /* LP is 10T Half Duplex Capable */ #define NWAY_ER_NEXT_PAGE_CAPS 0x0004 /* LP is 10T Full Duplex Capable */ #define NWAY_ER_LP_NEXT_PAGE_CAPS 0x0008 /* LP is 100TX Half Duplex Capable */ #define NWAY_ER_PAR_DETECT_FAULT 0x0010 /* LP is 100TX Full Duplex Capable */ /* Next Page TX Register (PHY_NEXT_PAGE_TX) */ #define NPTX_MSG_CODE_FIELD 0x0001 /* NP msg code or unformatted data */ #define NPTX_TOGGLE 0x0800 /* Toggles between exchanges * of different NP */ #define NPTX_ACKNOWLDGE2 0x1000 /* 1 = will comply with msg * 0 = cannot comply with msg */ #define NPTX_MSG_PAGE 0x2000 /* formatted(1)/unformatted(0) pg */ #define NPTX_NEXT_PAGE 0x8000 /* 1 = addition NP will follow * 0 = sending last NP */ /* Link Partner Next Page Register (PHY_LP_NEXT_PAGE) */ #define LP_RNPR_MSG_CODE_FIELD 0x0001 /* NP msg code or unformatted data */ #define LP_RNPR_TOGGLE 0x0800 /* Toggles between exchanges * of different NP */ #define LP_RNPR_ACKNOWLDGE2 0x1000 /* 1 = will comply with msg * 0 = cannot comply with msg */ #define LP_RNPR_MSG_PAGE 0x2000 /* formatted(1)/unformatted(0) pg */ #define LP_RNPR_ACKNOWLDGE 0x4000 /* 1 = ACK / 0 = NO ACK */ #define LP_RNPR_NEXT_PAGE 0x8000 /* 1 = addition NP will follow * 0 = sending last NP */ /* 1000BASE-T Control Register (PHY_1000T_CTRL) */ #define CR_1000T_ASYM_PAUSE 0x0080 /* Advertise asymmetric pause bit */ #define CR_1000T_HD_CAPS 0x0100 /* Advertise 1000T HD capability */ #define CR_1000T_FD_CAPS 0x0200 /* Advertise 1000T FD capability */ #define CR_1000T_REPEATER_DTE 0x0400 /* 1=Repeater/switch device port */ /* 0=DTE device */ #define CR_1000T_MS_VALUE 0x0800 /* 1=Configure PHY as Master */ /* 0=Configure PHY as Slave */ #define CR_1000T_MS_ENABLE 0x1000 /* 1=Master/Slave manual config value */ /* 0=Automatic Master/Slave config */ #define CR_1000T_TEST_MODE_NORMAL 0x0000 /* Normal Operation */ #define CR_1000T_TEST_MODE_1 0x2000 /* Transmit Waveform test */ #define CR_1000T_TEST_MODE_2 0x4000 /* Master Transmit Jitter test */ #define CR_1000T_TEST_MODE_3 0x6000 /* Slave Transmit Jitter test */ #define CR_1000T_TEST_MODE_4 0x8000 /* Transmitter Distortion test */ /* 1000BASE-T Status Register (PHY_1000T_STATUS) */ #define SR_1000T_IDLE_ERROR_CNT 0x00FF /* Num idle errors since last read */ #define SR_1000T_ASYM_PAUSE_DIR 0x0100 /* LP asymmetric pause direction bit */ #define SR_1000T_LP_HD_CAPS 0x0400 /* LP is 1000T HD capable */ #define SR_1000T_LP_FD_CAPS 0x0800 /* LP is 1000T FD capable */ #define SR_1000T_REMOTE_RX_STATUS 0x1000 /* Remote receiver OK */ #define SR_1000T_LOCAL_RX_STATUS 0x2000 /* Local receiver OK */ #define SR_1000T_MS_CONFIG_RES 0x4000 /* 1=Local TX is Master, 0=Slave */ #define SR_1000T_MS_CONFIG_FAULT 0x8000 /* Master/Slave config fault */ #define SR_1000T_REMOTE_RX_STATUS_SHIFT 12 #define SR_1000T_LOCAL_RX_STATUS_SHIFT 13 #define SR_1000T_PHY_EXCESSIVE_IDLE_ERR_COUNT 5 #define FFE_IDLE_ERR_COUNT_TIMEOUT_20 20 #define FFE_IDLE_ERR_COUNT_TIMEOUT_100 100 /* Extended Status Register (PHY_EXT_STATUS) */ #define IEEE_ESR_1000T_HD_CAPS 0x1000 /* 1000T HD capable */ #define IEEE_ESR_1000T_FD_CAPS 0x2000 /* 1000T FD capable */ #define IEEE_ESR_1000X_HD_CAPS 0x4000 /* 1000X HD capable */ #define IEEE_ESR_1000X_FD_CAPS 0x8000 /* 1000X FD capable */ #define PHY_TX_POLARITY_MASK 0x0100 /* register 10h bit 8 (polarity bit) */ #define PHY_TX_NORMAL_POLARITY 0 /* register 10h bit 8 (normal polarity) */ #define AUTO_POLARITY_DISABLE 0x0010 /* register 11h bit 4 */ /* (0=enable, 1=disable) */ /* PHY Status Register (PHY_PHY_STATUS) */ #define PHYSTAT_ASYMMETRIC (1 << 0) #define PHYSTAT_PAUSE (1 << 1) #define PHYSTAT_AUTONEG_EN (1 << 2) #define PHYSTAT_COLLISION (1 << 3) #define PHYSTAT_RXSTAT (1 << 4) #define PHYSTAT_TXSTAT (1 << 5) #define PHYSTAT_LINK (1 << 6) #define PHYSTAT_DUPLEX (1 << 7) #define PHYSTAT_SPEED_MASK ((1 << 8) | (1 << 9)) #define PHYSTAT_SPEED_1000 (1 << 9) #define PHYSTAT_SPEED_100 (1 << 8) #define PHYSTAT_SPEED_10 0 #define PHYSTAT_POLARITY (1 << 10) #define PHYSTAT_MDIX (1 << 11) #define PHYSTAT_AUTONEG_STAT (1 << 12) #define PHYSTAT_STANDBY (1 << 13) /* Interrupt status, mask and clear regs (PHY_INT_{STATUS,MASK,CLEAR}) */ #define PHY_INT_ENABLE (1 << 0) #define PHY_INT_DOWNSHIFT (1 << 1) #define PHY_INT_LINK_STATUS_CHANGE (1 << 2) #define PHY_INT_RX_STATUS_CHANGE (1 << 3) #define PHY_INT_FIFO_ERROR (1 << 4) #define PHY_INT_ERR_CTR_FULL (1 << 5) #define PHY_INT_NEXT_PAGE_RX (1 << 6) #define PHY_INT_CRC_ERROR (1 << 7) #define PHY_INT_AUTONEG_STATUS_CHANGE (1 << 8) #define PHY_INT_MDIO_SYNC_LOST (1 << 9) #define PHY_INT_TDR_IP_PHONE (1 << 10) /* PHY LED status register 2 (used for controlling link LED for activity light) */ #define PHY_LED_TXRX_LSB 12 #define PHY_LED_LINK_LSB 8 #define PHY_LED_100_LSB 4 #define PHY_LED_1000_LSB 0 #define LED_1000 0 #define LED_100_TX 1 #define LED_10 2 #define LED_1000_ON_100_BLINK 3 #define LED_LINK 4 #define LED_TX 5 #define LED_RX 6 #define LED_ACTIVITY 7 #define LED_FULLDUPLEX 8 #define LED_COLLISION 9 #define LED_LINK_ON_ACTIVITY_BLINK 10 #define LED_LINK_ON_RX_BLINK 11 #define LED_FULL_DUPLEX_ON_COLLISION_BLINK 12 #define LED_BLINK 13 #define LED_ON 14 #define LED_OFF 15 #endif /* INCLUDED_ETH_PHY_H */ uhd-3.5.5/firmware/zpu/usrp2p/ethernet.c000066400000000000000000000170261224274632000201630ustar00rootroot00000000000000/* * Copyright 2011 Ettus Research LLC * Copyright 2007 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //Changes for USRP2P: status registers different (ethernet.h) #include "ethernet.h" #include "memory_map.h" #include "eth_phy.h" #include #include #include #include #include #include #include "usrp2/fw_common.h" #define VERBOSE 0 static ethernet_t ed_state; static ethernet_link_changed_callback_t ed_callback = 0; void ethernet_register_link_changed_callback(ethernet_link_changed_callback_t new_callback) { ed_callback = new_callback; } static void ed_set_mac_speed(int speed) { printf("Speed set to %d\n",speed); /* switch(speed){ case 10: eth_mac->speed = 1; break; case 100: eth_mac->speed = 2; break; case 1000: eth_mac->speed = 4; break; default: break; } */ } static void ed_link_up(int speed) { // putstr("ed_link_up: "); puthex16_nl(speed); ed_set_mac_speed(speed); //turn on link LED for USRP2P hal_set_leds(LED_RJ45, LED_RJ45); if (ed_callback) // fire link changed callback (*ed_callback)(speed); } static void ed_link_down(void) { // putstr("ed_link_down\n"); //turn off link LED for USRP2P hal_set_leds(0, LED_RJ45); if (ed_callback) // fire link changed callback (*ed_callback)(0); } static void ed_link_speed_change(int speed) { ed_link_down(); ed_link_up(speed); } static void print_flow_control(int flow_control) { static const char *flow_control_msg[4] = { "NONE", "WE_TX", "WE_RX", "SYMMETRIC" }; putstr("ethernet flow control: "); puts(flow_control_msg[flow_control & 0x3]); } static void check_flow_control_resolution(void) { static const unsigned char table[16] = { // index = {local_asm, local_pause, partner_asm, partner_pause} FC_NONE, FC_NONE, FC_NONE, FC_NONE, FC_NONE, FC_SYMM, FC_NONE, FC_SYMM, FC_NONE, FC_NONE, FC_NONE, FC_WE_TX, FC_NONE, FC_SYMM, FC_WE_RX, FC_SYMM }; int us = eth_mac_miim_read(PHY_AUTONEG_ADV); int lp = eth_mac_miim_read(PHY_LP_ABILITY); int index = (((us >> 10) & 0x3) << 2) | ((lp >> 10) & 0x3); ed_state.flow_control = table[index]; if (1) print_flow_control(ed_state.flow_control); } /* * Read the PHY state register to determine link state and speed */ static void ed_check_phy_state(void) { int phystat = eth_mac_miim_read(PHY_PHY_STATUS); eth_link_state_t new_state = LS_UNKNOWN; int new_speed = S_UNKNOWN; if (VERBOSE){ putstr("PHYSTAT: "); puthex16_nl(phystat); } if (phystat & PHYSTAT_LINK){ // link's up if (VERBOSE) puts(" LINK_GOOD"); new_state = LS_UP; switch (phystat & PHYSTAT_SPEED_MASK){ case PHYSTAT_SPEED_10: new_speed = 10; break; case PHYSTAT_SPEED_100: new_speed = 100; break; case PHYSTAT_SPEED_1000: new_speed = 1000; break; default: new_speed = S_UNKNOWN; break; } check_flow_control_resolution(); } else { // link's down if (VERBOSE) puts(" NOT LINK_GOOD"); new_state = LS_DOWN; new_speed = S_UNKNOWN; } if (new_state != ed_state.link_state){ ed_state.link_state = new_state; // remember new state if (new_state == LS_UP) ed_link_up(new_speed); else if (new_state == LS_DOWN) ed_link_down(); } else if (new_state == LS_UP && new_speed != ed_state.link_speed){ ed_state.link_speed = new_speed; // remember new speed ed_link_speed_change(new_speed); } } /* * This is fired when the ethernet PHY state changes */ static void eth_phy_irq_handler(unsigned irq) { ed_check_phy_state(); eth_mac_miim_read(PHY_INT_STATUS); // eth_mac_miim_write(PHY_INT_CLEAR, ~0); // clear all ints } void ethernet_init(void) { eth_mac_init(ethernet_mac_addr()); ed_state.link_state = LS_UNKNOWN; ed_state.link_speed = S_UNKNOWN; // initialize MAC registers // eth_mac->tx_hwmark = 0x1e; //eth_mac->tx_lwmark = 0x19; //eth_mac->crc_chk_en = 1; //eth_mac->rx_max_length = 2048; // configure PAUSE frame stuff //eth_mac->tx_pause_en = 1; // pay attn to pause frames sent to us //eth_mac->pause_quanta_set = 38; // a bit more than 1 max frame 16kb/512 + fudge //eth_mac->pause_frame_send_en = 1; // enable sending pause frames // setup PHY to interrupt on changes unsigned mask = (PHY_INT_ENABLE //master interrupt enable | PHY_INT_LINK_STATUS_CHANGE | PHY_INT_RX_STATUS_CHANGE ); eth_mac_miim_read(PHY_INT_STATUS); //clear interrupts eth_mac_miim_write(PHY_INT_MASK, mask); // enable the ones we want //set the LED behavior to activity instead of link unsigned led = (LED_ACTIVITY << PHY_LED_LINK_LSB) | (LED_TX << PHY_LED_TXRX_LSB); eth_mac_miim_write(PHY_LED2, led); pic_register_handler(IRQ_PHY, eth_phy_irq_handler); // Advertise our flow control configuation. // // We and the link partner each specify two bits in the base page // related to autoconfiguration: NWAY_AR_PAUSE and NWAY_AR_ASM_DIR. // The bits say what a device is "willing" to do, not what may actually // happen as a result of the negotiation. There are 4 cases: // // PAUSE ASM_DIR // // 0 0 I have no flow control capability. // // 1 0 I both assert and respond to flow control. // // 0 1 I assert flow control, but cannot respond. That is, // I want to be able to send PAUSE frames, but will ignore any // you send to me. (This is our configuration.) // // 1 1 I can both assert and respond to flow control AND I am willing // to operate symmetrically OR asymmetrically in EITHER direction. // (We hope the link partner advertises this, otherwise we don't // get what we want.) int t = eth_mac_miim_read(PHY_AUTONEG_ADV); t &= ~(NWAY_AR_PAUSE | NWAY_AR_ASM_DIR); t |= NWAY_AR_ASM_DIR; // Say we can't to 10BASE-T or 100BASE-TX, half or full duplex t &= ~(NWAY_AR_10T_HD_CAPS | NWAY_AR_10T_FD_CAPS | NWAY_AR_100TX_HD_CAPS | NWAY_AR_100TX_FD_CAPS); eth_mac_miim_write(PHY_AUTONEG_ADV, t); int r = eth_mac_miim_read(PHY_AUTONEG_ADV); // DEBUG, read back if (t != r){ printf("PHY_AUTONEG_ADV: wrote 0x%x, got 0x%x\n", t, r); } // Restart autonegotation. // We want to ensure that we're advertising our PAUSE capabilities. t = eth_mac_miim_read(PHY_CTRL); eth_mac_miim_write(PHY_CTRL, t | MII_CR_RESTART_AUTO_NEG); } int ethernet_check_errors(void) { // these registers are reset when read int r = 0; /* if (eth_mac_read_rmon(0x05) != 0) r |= RME_RX_CRC; if (eth_mac_read_rmon(0x06) != 0) r |= RME_RX_FIFO_FULL; if (eth_mac_read_rmon(0x07) != 0) r |= RME_RX_2SHORT_2LONG; if (eth_mac_read_rmon(0x25) != 0) r |= RME_TX_JAM_DROP; if (eth_mac_read_rmon(0x26) != 0) r |= RME_TX_FIFO_UNDER; if (eth_mac_read_rmon(0x27) != 0) r |= RME_TX_FIFO_OVER; */ return r; } uhd-3.5.5/firmware/zpu/usrp2p/spi_flash.c000066400000000000000000000125601224274632000203130ustar00rootroot00000000000000/* * Copyright 2009 Free Software Foundation, Inc. * Copyright 2009-2012 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "spi_flash.h" #include "spi_flash_private.h" //#include #include uint32_t spi_flash_rdsr(void) { return spif_transact(SPI_TXRX, SPI_SS_FLASH, RDSR_CMD << 8, 16, FLAGS) & 0xff; } static void spi_flash_write_enable(void) { // spif_transact(SPI_TXONLY, SPI_SS_FLASH, (WRSR_CMD << 8) | 0x00, 16, FLAGS); //disable write protection bits spif_transact(SPI_TXONLY, SPI_SS_FLASH, WREN_CMD, 8, FLAGS); } bool spi_flash_done_p(void) { return (spi_flash_rdsr() & SR_WIP) == 0; } void spi_flash_wait(void) { while (!spi_flash_done_p()) ; } void spi_flash_erase_sector_start(uint32_t flash_addr) { //printf("spi_flash_erase_sector_start: addr = 0x%x\n", flash_addr); if(flash_addr > spi_flash_memory_size()) return; spi_flash_wait(); spi_flash_write_enable(); spif_transact(SPI_TXONLY, SPI_SS_FLASH, (SE_CMD << 24) | (flash_addr & 0x00ffffff), 32, FLAGS); } bool spi_flash_page_program_start(uint32_t flash_addr, size_t nbytes, const void *buf) { if (nbytes == 0 || nbytes > SPI_FLASH_PAGE_SIZE) return false; //please to not be writing past the end of the device if ((flash_addr + nbytes) > spi_flash_memory_size()) return false; uint32_t local_buf[SPI_FLASH_PAGE_SIZE / sizeof(uint32_t)]; memset(local_buf, 0xff, sizeof(local_buf)); // init to 0xff (nops when programming) memcpy(local_buf, buf, nbytes); spi_flash_wait(); spi_flash_write_enable(); /* * We explicitly control the slave select here (/S), so that we can * do the entire write operation as a single transaction from * device's point of view. (The most our SPI peripheral can transfer * in a single shot is 16 bytes.) */ spif_wait(); spif_regs->ss = 0; spif_regs->ctrl = FLAGS; // ASS is now clear and no chip select is enabled. /* write PP_CMD, ADDR2, ADDR1, ADDR0 */ spif_regs->txrx0 = (PP_CMD << 24) | (flash_addr & 0x00ffffff); spif_regs->ss = SPI_SS_FLASH; // assert chip select spif_regs->ctrl = FLAGS | LEN(4 * 8); spif_regs->ctrl = FLAGS | LEN(4 * 8) | SPI_CTRL_GO_BSY; spif_wait(); /* send 256 bytes total, 16 at a time */ for (size_t i = 0; i < 16; i++){ spif_regs->txrx3 = local_buf[i * 4 + 0]; spif_regs->txrx2 = local_buf[i * 4 + 1]; spif_regs->txrx1 = local_buf[i * 4 + 2]; spif_regs->txrx0 = local_buf[i * 4 + 3]; spif_regs->ctrl = FLAGS | LEN(16 * 8); // xfer 16 bytes spif_regs->ctrl = FLAGS | LEN(16 * 8) | SPI_CTRL_GO_BSY; spif_wait(); } spif_regs->ss = 0; // desassert chip select return true; } void spi_flash_erase(uint32_t flash_addr, size_t nbytes) { if (nbytes == 0) return; uint32_t first = round_down(flash_addr, spi_flash_sector_size()); uint32_t last = round_down(flash_addr + nbytes - 1, spi_flash_sector_size()); for (uint32_t s = first; s <= last; s += spi_flash_sector_size()){ spi_flash_erase_sector_start(s); } spi_flash_wait(); } bool spi_flash_program(uint32_t flash_addr, size_t nbytes, const void *buf) { //uprintf(UART_DEBUG, "\nspi_flash_program: addr = 0x%x, nbytes = %d\n", flash_addr, nbytes); const unsigned char *p = (const unsigned char *) buf; size_t n; if ((nbytes + flash_addr) > spi_flash_memory_size()) return false; if (nbytes == 0) return true; uint32_t r = flash_addr % SPI_FLASH_PAGE_SIZE; if (r){ /* do initial non-aligned page */ n = min(SPI_FLASH_PAGE_SIZE - r, nbytes); spi_flash_page_program_start(flash_addr, n, p); flash_addr += n; p += n; nbytes -= n; } while (nbytes > 0){ n = min(SPI_FLASH_PAGE_SIZE, nbytes); spi_flash_page_program_start(flash_addr, n, p); flash_addr += n; p += n; nbytes -= n; } spi_flash_wait(); return true; } void spi_flash_async_erase_start(spi_flash_async_state_t *s, uint32_t flash_addr, size_t nbytes) { //printf("got command to erase %d bytes at 0x%x\n", nbytes, flash_addr); if ((nbytes == 0) || ((flash_addr + nbytes) > spi_flash_memory_size())){ s->first = s->last = s->current = 0; return; } uint32_t first = round_down(flash_addr, spi_flash_sector_size()); uint32_t last = round_down(flash_addr + nbytes - 1, spi_flash_sector_size()); s->first = first; s->last = last; s->current = first; spi_flash_erase_sector_start(s->current); } bool spi_flash_async_erase_poll(spi_flash_async_state_t *s) { if (!spi_flash_done_p()) return false; //printf("%d/%d\n", s->current, s->last); // The current sector erase has completed. See if we're finished or // if there's more to do. if (s->current == s->last) // we're done! return true; s->current += spi_flash_sector_size(); spi_flash_erase_sector_start(s->current); return false; } uhd-3.5.5/firmware/zpu/usrp2p/spi_flash.h000066400000000000000000000067161224274632000203260ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2009 Free Software Foundation, Inc. * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_SPI_FLASH_H #define INCLUDED_SPI_FLASH_H #include #include #include #define SPI_FLASH_PAGE_SIZE 256 #define SPI_SS_FLASH 1 #define SPIF_PUSH_RISE 0 // push tx data on rising edge of SCLK #define SPIF_PUSH_FALL SPI_CTRL_TXNEG // push tx data on falling edge of SCLK #define SPIF_LATCH_RISE 0 // latch rx data on rising edge of SCLK #define SPIF_LATCH_FALL SPI_CTRL_RXNEG // latch rx data on falling edge of SCLK void spif_init(void); void spif_wait(void); uint32_t spif_transact(bool readback, int slave, uint32_t data, int length, uint32_t flags); uint32_t spi_flash_rdid(void); /* Read ID */ uint32_t spi_flash_rdsr(void); /* Read Status Register */ size_t spi_flash_log2_memory_size(void); size_t spi_flash_log2_sector_size(void); size_t spi_flash_sector_size(void); size_t spi_flash_memory_size(void); void spi_flash_read(uint32_t flash_addr, size_t nbytes, void *buf); /* * Erase all sectors that fall within the interval [flash_addr, flash_addr + nbytes). * Erasing sets the memory to ones. */ void spi_flash_erase(uint32_t flash_addr, size_t nbytes); /* * Program the flash. * The area must have been erased prior to programming. */ bool spi_flash_program(uint32_t flash_addr, size_t nbytes, const void *buf); /* * --- asynchronous routines --- */ /* * Is the erasing or programming done? */ bool spi_flash_done_p(void); /* * Wait for erasing or programming to complete */ void spi_flash_wait(void); /* * Start the erase process on a single sector. * (It takes between 1 and 3 seconds to erase a 64KB sector) */ void spi_flash_erase_sector_start(uint32_t flash_addr); /* * Start the programming process within a single page. * nbytes must be between 1 and 256. * (It takes between 1.4 and 5 ms to program a page -> 640 ms for 64KB) */ bool spi_flash_page_program_start(uint32_t flash_addr, size_t nbytes, const void *buf); /* * --- high-level async erase --- */ typedef struct { uint32_t first; uint32_t last; uint32_t current; } spi_flash_async_state_t; /* * Start to erase all sectors that fall within the interval [flash_addr, flash_addr + nbytes). * Erasing sets the memory to ones. * * Initializes s and begins the process. Call spi_flash_async_erase_poll * to test for completion and advance state machine. */ void spi_flash_async_erase_start(spi_flash_async_state_t *s, uint32_t flash_addr, size_t nbytes); /* * Poll for aysnc flash erase completion. * Returns true when the erase has completed. * (This should be called at something >= 4 Hz. It takes 1 to 3 seconds to * erase each 64KB sector). */ bool spi_flash_async_erase_poll(spi_flash_async_state_t *s); #endif /* INCLUDED_SPI_FLASH_H */ uhd-3.5.5/firmware/zpu/usrp2p/spi_flash_private.h000066400000000000000000000037611224274632000220550ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009 Free Software Foundation, Inc. * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_SPI_FLASH_PRIVATE_H #define INCLUDED_SPI_FLASH_PRIVATE_H #include "spi_flash.h" #include "spi.h" #include "memory_map.h" #include /* M25P64 et al. */ #define WREN_CMD 0x06 // write enable #define WRDI_CMD 0x04 // write disable #define RDID_CMD 0x9f // read identification #define RDSR_CMD 0x05 // read status register #define WRSR_CMD 0x01 // write status register #define READ_CMD 0x03 #define FAST_READ_CMD 0x0b #define PP_CMD 0x02 // page program (256 bytes) #define SE_CMD 0xd8 // sector erase (64KB) #define BE_CMD 0xc7 // bulk erase (all) #define RES_CMD 0xab // read electronic sig (deprecated) /* Status register bits */ #define SR_SRWD 0x80 #define SR_BP2 0x10 // block protect bit 2 #define SR_BP1 0x08 // block protect bit 1 #define SR_BP0 0x04 // block protect bit 0 #define SR_WEL 0x02 // Write Enable Latch #define SR_WIP 0x01 // Write in Progress. Set if busy w/ program or erase cycle. #define FLAGS (SPIF_PUSH_FALL | SPIF_LATCH_RISE) #define LEN(x) ((x) & SPI_CTRL_CHAR_LEN_MASK) static inline uint32_t min(uint32_t a, uint32_t b) { return a < b ? a : b; } static inline uint32_t round_down(uint32_t x, uint32_t power_of_2) { return x & -power_of_2; } #endif /* INCLUDED_SPI_FLASH_PRIVATE_H */ uhd-3.5.5/firmware/zpu/usrp2p/spi_flash_read.c000066400000000000000000000064301224274632000213050ustar00rootroot00000000000000/* -*- c++ -*- */ /* * Copyright 2009 Free Software Foundation, Inc. * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "spi_flash_private.h" #include // abort #include uint32_t spi_flash_rdid(void) { return spif_transact(SPI_TXRX, SPI_SS_FLASH, RDID_CMD << 24, 32, FLAGS) & 0xffffff; } size_t spi_flash_log2_memory_size(void) { static size_t _spi_flash_log2_memory_size = 0; if (_spi_flash_log2_memory_size == 0){ uint32_t id = spi_flash_rdid(); uint8_t type = (id >> 8) & 0xff; uint8_t size = (id >> 0) & 0xff; if (type != 0x20) abort(); _spi_flash_log2_memory_size = size; } if (_spi_flash_log2_memory_size < 22 || _spi_flash_log2_memory_size > 24 ) abort(); return _spi_flash_log2_memory_size; } size_t spi_flash_log2_sector_size(void) { static unsigned char log2_sector_size[3] = { 16, /* M25P32 */ 16, /* M25P64 */ 18, /* M25P128 */ }; return log2_sector_size[spi_flash_log2_memory_size() - 22]; } size_t spi_flash_sector_size(void) { return ((size_t) 1) << spi_flash_log2_sector_size(); } size_t spi_flash_memory_size(void) { return ((size_t) 1) << spi_flash_log2_memory_size(); } void spi_flash_read(uint32_t flash_addr, size_t nbytes, void *buf) { /* * We explicitly control the slave select here (/S), so that we can * do the entire read operation as a single transaction from * device's point of view. (The most our SPI peripheral can transfer * in a single shot is 16 bytes.) */ spif_wait(); spif_regs->ss = 0; spif_regs->ctrl = FLAGS; // ASS is now clear and no chip select is enabled. /* * Do the 5 byte instruction tranfer: * FAST_READ_CMD, ADDR2, ADDR1, ADDR0, DUMMY */ spif_regs->txrx1 = FAST_READ_CMD; spif_regs->txrx0 = ((flash_addr & 0x00ffffff) << 8); spif_regs->ss = SPI_SS_FLASH; // assert chip select spif_regs->ctrl = FLAGS | LEN(5 * 8); spif_regs->ctrl = FLAGS | LEN(5 * 8) | SPI_CTRL_GO_BSY; spif_wait(); /* * Read up to 16 bytes at a time until done */ unsigned char *dst = (unsigned char *) buf; size_t m; for (size_t n = 0; n < nbytes; n += m){ spif_regs->ctrl = FLAGS | LEN(16 * 8); // xfer 16 bytes spif_regs->ctrl = FLAGS | LEN(16 * 8) | SPI_CTRL_GO_BSY; spif_wait(); uint32_t w[4]; w[0] = spif_regs->txrx3; // txrx3 has first bits in it w[1] = spif_regs->txrx2; w[2] = spif_regs->txrx1; w[3] = spif_regs->txrx0; unsigned char *src = (unsigned char *) &w[0]; m = min(nbytes - n, 16); for (size_t i = 0; i < m; i++) *(dst++) = src[i]; } spif_regs->ss = 0; // deassert chip select } uhd-3.5.5/firmware/zpu/usrp2p/spif.c000066400000000000000000000034241224274632000173030ustar00rootroot00000000000000/* * Copyright 2007,2008,2009 Free Software Foundation, Inc. * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* * Code for the Flash SPI bus */ #include "spi.h" #include "spi_flash.h" #include "memory_map.h" void spif_init(void) { /* * f_sclk = f_wb / ((div + 1) * 2) */ spif_regs->div = 1; // 0 = Div by 2 (31.25 MHz); 1 = Div-by-4 (15.625 MHz) // run dummy transaction to work around invalid initial clock state spif_transact(SPI_TXONLY, 0, 0, 8, SPIF_PUSH_FALL | SPIF_LATCH_RISE); } inline void spif_wait(void) { while (spif_regs->ctrl & SPI_CTRL_GO_BSY) ; } uint32_t spif_transact(bool readback_, int slave, uint32_t data, int length, uint32_t flags) { flags &= (SPI_CTRL_TXNEG | SPI_CTRL_RXNEG); int ctrl = SPI_CTRL_ASS | (SPI_CTRL_CHAR_LEN_MASK & length) | flags; spif_wait(); // Data we will send spif_regs->txrx0 = data; // Run it -- write once and rewrite with GO set spif_regs->ctrl = ctrl; // Tell it which SPI slave device to access spif_regs->ss = slave & 0xff; spif_regs->ctrl = ctrl | SPI_CTRL_GO_BSY; if(readback_) { spif_wait(); return spif_regs->txrx0; } else return 0; } uhd-3.5.5/firmware/zpu/usrp2p/u2p_init.c000066400000000000000000000017201224274632000200700ustar00rootroot00000000000000/* * Copyright 2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "u2p_init.h" #include "i2c.h" #include "ethernet.h" void u2p_init(void){ //we do this to see if we should set a default ip addr or not bool safe_fw = find_safe_booted_flag(); set_safe_booted_flag(0); if (safe_fw) { eth_addrs_set_default(); } } uhd-3.5.5/firmware/zpu/usrp2p/u2p_init.h000066400000000000000000000013131224274632000200730ustar00rootroot00000000000000/* * Copyright 2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ void u2p_init(void); uhd-3.5.5/firmware/zpu/usrp2p/udp_fw_update.c000066400000000000000000000125511224274632000211710ustar00rootroot00000000000000/* * Copyright 2010-2012 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ //Routines to handle updating the SPI Flash firmware via UDP #include #include "memory_map.h" #include "usrp2/fw_common.h" #include "spi.h" #include "spi_flash.h" #include #include #include "ethernet.h" #include "udp_fw_update.h" #include "xilinx_s3_icap.h" #include "i2c.h" uint16_t get_hw_rev(void) { uint16_t tmp; eeprom_read(USRP2_I2C_ADDR_MBOARD, USRP2_EE_MBOARD_REV, &tmp, sizeof(tmp)); return tmp; } spi_flash_async_state_t spi_flash_async_state; //Firmware update packet handler void handle_udp_fw_update_packet(struct socket_address src, struct socket_address dst, unsigned char *payload, int payload_len) { const usrp2_fw_update_data_t *update_data_in = (usrp2_fw_update_data_t *) payload; usrp2_fw_update_data_t update_data_out; usrp2_fw_update_id_t update_data_in_id = update_data_in->id; //ensure that the protocol versions match /* if (payload_len >= sizeof(uint32_t) && update_data_in->proto_ver != USRP2_FW_COMPAT_NUM){ printf("!Error in update packet handler: Expected compatibility number %d, but got %d\n", USRP2_FW_COMPAT_NUM, update_data_in->proto_ver ); update_data_in_id = USRP2_FW_UPDATE_ID_OHAI_LOL; //so we can respond } */ //ensure that this is not a short packet if (payload_len < sizeof(usrp2_fw_update_data_t)){ printf("!Error in update packet handler: Expected payload length %d, but got %d\n", (int)sizeof(usrp2_fw_update_data_t), payload_len ); update_data_in_id = USRP2_FW_UPDATE_ID_WAT; } switch(update_data_in_id) { case USRP2_FW_UPDATE_ID_OHAI_LOL: //why hello there you handsome devil update_data_out.id = USRP2_FW_UPDATE_ID_OHAI_OMG; memcpy(&update_data_out.data.ip_addr, (void *)get_ip_addr(), sizeof(struct ip_addr)); //this is to stop streaming for the folks who think updating while streaming is a good idea sr_rx_ctrl0->clear = 1; sr_rx_ctrl1->clear = 1; sr_tx_ctrl->cyc_per_up = 0; break; case USRP2_FW_UPDATE_ID_WATS_TEH_FLASH_INFO_LOL: //query sector size, memory size so the host can mind the boundaries update_data_out.data.flash_info_args.sector_size_bytes = spi_flash_sector_size(); update_data_out.data.flash_info_args.memory_size_bytes = spi_flash_memory_size(); update_data_out.id = USRP2_FW_UPDATE_ID_HERES_TEH_FLASH_INFO_OMG; break; case USRP2_FW_UPDATE_ID_I_CAN_HAS_HW_REV_LOL: //get the hardware revision of the platform for validation checking update_data_out.data.hw_rev = (uint32_t) get_hw_rev(); update_data_out.id = USRP2_FW_UPDATE_ID_HERES_TEH_HW_REV_OMG; break; case USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL: //out with the old spi_flash_async_erase_start(&spi_flash_async_state, update_data_in->data.flash_args.flash_addr, update_data_in->data.flash_args.length); update_data_out.id = USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG; break; case USRP2_FW_UPDATE_ID_R_U_DONE_ERASING_LOL: //poll for done, set something in the reply packet //spi_flash_async_erase_poll() also advances the state machine, so you should call it reasonably often to get things done quicker if(spi_flash_async_erase_poll(&spi_flash_async_state)) update_data_out.id = USRP2_FW_UPDATE_ID_IM_DONE_ERASING_OMG; else update_data_out.id = USRP2_FW_UPDATE_ID_NOPE_NOT_DONE_ERASING_OMG; break; case USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL: //and in with the new //spi_flash_program() goes pretty quick compared to page erases, so we don't bother polling -- it'll come back in some milliseconds //if it doesn't come back fast enough, we'll just write smaller packets at a time until it does spi_flash_program(update_data_in->data.flash_args.flash_addr, update_data_in->data.flash_args.length, update_data_in->data.flash_args.data); update_data_out.id = USRP2_FW_UPDATE_ID_WROTE_TEH_FLASHES_OMG; break; case USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL: //for verify spi_flash_read(update_data_in->data.flash_args.flash_addr, update_data_in->data.flash_args.length, update_data_out.data.flash_args.data); update_data_out.id = USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG; break; case USRP2_FW_UPDATE_ID_RESET_MAH_COMPUTORZ_LOL: //for if we ever get the ICAP working //should reset via icap_reload_fpga(uint32_t flash_address); update_data_out.id = USRP2_FW_UPDATE_ID_RESETTIN_TEH_COMPUTORZ_OMG; //you should note that if you get a reply packet to this the reset has obviously failed icap_reload_fpga(0); break; // case USRP2_FW_UPDATE_ID_KTHXBAI: //see ya // break; default: //uhhhh update_data_out.id = USRP2_FW_UPDATE_ID_WAT; } send_udp_pkt(USRP2_UDP_UPDATE_PORT, src, &update_data_out, sizeof(update_data_out)); } uhd-3.5.5/firmware/zpu/usrp2p/xilinx_s3_icap.c000066400000000000000000000050451224274632000212570ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* Changes required to work for the Spartan-3A series: * The ICAP interface on the 3A is 8 bits wide, instead of 32. * Everything is Xilinx standard LSBit-first. * The operations are all different. * Commands are 16 bits long, presented to the ICAP interface 8 bits at a time. */ #include #include #include //for READ_CMD /* bit swap end-for-end */ static inline unsigned char swap8(unsigned char x) { unsigned char r = 0; r |= (x >> 7) & 0x01; r |= (x >> 5) & 0x02; r |= (x >> 3) & 0x04; r |= (x >> 1) & 0x08; r |= (x << 1) & 0x10; r |= (x << 3) & 0x20; r |= (x << 5) & 0x40; r |= (x << 7) & 0x80; return r; } void wr_icap(uint8_t x) { icap_regs->icap = swap8(x); } uint8_t rd_icap(void) { return swap8(icap_regs->icap); } void icap_reload_fpga(uint32_t flash_address) { union { uint32_t i; uint8_t c[4]; } t; t.i = flash_address; //note! t.c[0] MUST contain the byte-wide read command for the flash device used. //for the 25P64, and most other flash devices, this is 0x03. t.c[0] = FAST_READ_CMD; //TODO: look up the watchdog timer, ensure it won't fire too soon //UG332 p279 wr_icap(0xff); wr_icap(0xff); //dummy word, probably unnecessary wr_icap(0xAA); wr_icap(0x99); //sync word wr_icap(0x32); wr_icap(0x61); //Type 1 write General 1 (1 word) wr_icap(t.c[2]); //bits 15-8 wr_icap(t.c[3]); //bits 7-0 wr_icap(0x32); wr_icap(0x81); //Type 1 write General 2 (1 word) wr_icap(t.c[0]); //C0-C8, the byte-wide read command wr_icap(t.c[1]); //Upper 8 bits of 24-bit address wr_icap(0x30); wr_icap(0xA1); //Type 1 write CMD (1 word) wr_icap(0x00); wr_icap(0x0E); //REBOOT command wr_icap(0x20); wr_icap(0x00); //Type 1 NOP wr_icap(0x20); wr_icap(0x00); } uhd-3.5.5/firmware/zpu/usrp2p/xilinx_s3_icap.h000066400000000000000000000020631224274632000212610ustar00rootroot00000000000000/* -*- c -*- */ /* * Copyright 2009-2011 Ettus Research LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef INCLUDED_XILINX_S3_ICAP_H #define INCLUDED_XILINX_S3_ICAP_H #include void wr_icap(uint8_t x); uint8_t rd_icap(void); //int icap_read_config_reg(int regno); /* * Attempt to reload the fpga from \p flash_address. * Shouldn't return, but might. */ void icap_reload_fpga(uint32_t flash_address); #endif /* INCLUDED_XILINX_S3_ICAP_H */ uhd-3.5.5/fpga/000077500000000000000000000000001224274632000132235ustar00rootroot00000000000000uhd-3.5.5/fpga/README.txt000066400000000000000000000047761224274632000147370ustar00rootroot00000000000000######################################################################## ## Welcome to the USRP FPGA source code tree ######################################################################## usrp1/ Description: generation 1 products Devices: USRP classic only Tools: Quartus from Altera Project file: usrp1/toplevel/usrp_std/ usrp2/ Description: generation 2 products Devices: USRP2, N2XX, B100, E1XX Tools: ISE from Xilinx, GNU make Build Instructions: 1) ensure that xtclsh is in the $PATH 2) cd usrp2/top/ 3) make -f Makefile. bin 4) bin file in build-/*.bin ######################################################################## ## Customizing the DSP ######################################################################## As part of the USRP FPGA build-framework, there are several convenient places for users to insert custom DSP modules into the transmit and receive chains. * before the DDC module * after the DDC module * replace the DDC module * before the DUC module * after the DUC module * replace of the DUC module * as an RX packet engine * as an TX packet engine ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Customizing the top level makefile ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Each USRP device has a makefile associated with it. This makefile contains all of the necessary build rules. When making a customized FPGA design, start by copying the current makefile for your device. Makefiles can be found in the usrp2/top//Makefile.* Edit your new makefile: * set BUILD_DIR to a unique directory name * set CUSTOM_SRCS for your verilog sources * set CUSTOM_DEFS (see section below) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Inserting custom modules ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ CUSTOM_DEFS is a string of space-separate key-value pairs. Set the CUSTOM_DEFS variable so the FPGA fabric glue will substitute your custom modules into the DSP chain. Example: CUSTOM_DEFS = "TX_ENG0_MODULE=my_tx_engine RX_ENG0_MODULE=my_rx_engine" Where my_tx_engine and my_rx_engine are the names of custom verilog modules. The following module definition keys are possible (X is a DSP number): * TX_ENG_MODULE: set the module for the transmit chain engine. * RX_ENG_MODULE: set the module for the receive chain engine. * RX_DSP_MODULE: set the module for the transmit dsp chain. * TX_DSP_MODULE: set the module for the receive dsp chain. Examples of custom modules can be found in usrp2/custom/*.v uhd-3.5.5/fpga/usrp1/000077500000000000000000000000001224274632000142755ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/Makefile.am000066400000000000000000000015041224274632000163310ustar00rootroot00000000000000# # Copyright 2004,2005,2006 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # SUBDIRS = rbf include Makefile.extra uhd-3.5.5/fpga/usrp1/Makefile.extra000066400000000000000000000207451224274632000170670ustar00rootroot00000000000000EXTRA_DIST = \ gen_makefile_extra.py \ inband_lib/chan_fifo_reader.v \ inband_lib/channel_demux.v \ inband_lib/channel_ram.v \ inband_lib/cmd_reader.v \ inband_lib/packet_builder.v \ inband_lib/register_io.v \ inband_lib/rx_buffer_inband.v \ inband_lib/tx_buffer_inband.v \ inband_lib/tx_packer.v \ inband_lib/usb_packet_fifo.v \ megacells/accum32.bsf \ megacells/accum32.cmp \ megacells/accum32.inc \ megacells/accum32.v \ megacells/accum32_bb.v \ megacells/accum32_inst.v \ megacells/add32.bsf \ megacells/add32.cmp \ megacells/add32.inc \ megacells/add32.v \ megacells/add32_bb.v \ megacells/add32_inst.v \ megacells/addsub16.bsf \ megacells/addsub16.cmp \ megacells/addsub16.inc \ megacells/addsub16.v \ megacells/addsub16_bb.v \ megacells/addsub16_inst.v \ megacells/bustri.bsf \ megacells/bustri.cmp \ megacells/bustri.inc \ megacells/bustri.v \ megacells/bustri_bb.v \ megacells/bustri_inst.v \ megacells/clk_doubler.v \ megacells/clk_doubler_bb.v \ megacells/dspclkpll.v \ megacells/dspclkpll_bb.v \ megacells/fifo_1kx16.bsf \ megacells/fifo_1kx16.cmp \ megacells/fifo_1kx16.inc \ megacells/fifo_1kx16.v \ megacells/fifo_1kx16_bb.v \ megacells/fifo_1kx16_inst.v \ megacells/fifo_2k.v \ megacells/fifo_2k_bb.v \ megacells/fifo_4k.v \ megacells/fifo_4k_18.v \ megacells/fifo_4k_bb.v \ megacells/fifo_4kx16_dc.bsf \ megacells/fifo_4kx16_dc.cmp \ megacells/fifo_4kx16_dc.inc \ megacells/fifo_4kx16_dc.v \ megacells/fifo_4kx16_dc_bb.v \ megacells/fifo_4kx16_dc_inst.v \ megacells/mylpm_addsub.bsf \ megacells/mylpm_addsub.cmp \ megacells/mylpm_addsub.inc \ megacells/mylpm_addsub.v \ megacells/mylpm_addsub_bb.v \ megacells/mylpm_addsub_inst.v \ megacells/pll.v \ megacells/pll_bb.v \ megacells/pll_inst.v \ megacells/sub32.bsf \ megacells/sub32.cmp \ megacells/sub32.inc \ megacells/sub32.v \ megacells/sub32_bb.v \ megacells/sub32_inst.v \ models/bustri.v \ models/fifo.v \ models/fifo_1c_1k.v \ models/fifo_1c_2k.v \ models/fifo_1c_4k.v \ models/fifo_1k.v \ models/fifo_2k.v \ models/fifo_4k.v \ models/fifo_4k_18.v \ models/pll.v \ models/ssram.v \ sdr_lib/adc_interface.v \ sdr_lib/atr_delay.v \ sdr_lib/bidir_reg.v \ sdr_lib/cic_dec_shifter.v \ sdr_lib/cic_decim.v \ sdr_lib/cic_int_shifter.v \ sdr_lib/cic_interp.v \ sdr_lib/clk_divider.v \ sdr_lib/cordic.v \ sdr_lib/cordic_stage.v \ sdr_lib/ddc.v \ sdr_lib/dpram.v \ sdr_lib/duc.v \ sdr_lib/ext_fifo.v \ sdr_lib/gen_cordic_consts.py \ sdr_lib/gen_sync.v \ sdr_lib/hb/acc.v \ sdr_lib/hb/coeff_rom.v \ sdr_lib/hb/halfband_decim.v \ sdr_lib/hb/halfband_interp.v \ sdr_lib/hb/hbd_tb/test_hbd.v \ sdr_lib/hb/mac.v \ sdr_lib/hb/mult.v \ sdr_lib/hb/ram16_2port.v \ sdr_lib/hb/ram16_2sum.v \ sdr_lib/hb/ram32_2sum.v \ sdr_lib/io_pins.v \ sdr_lib/master_control.v \ sdr_lib/master_control_multi.v \ sdr_lib/phase_acc.v \ sdr_lib/ram.v \ sdr_lib/ram16.v \ sdr_lib/ram32.v \ sdr_lib/ram64.v \ sdr_lib/rssi.v \ sdr_lib/rx_buffer.v \ sdr_lib/rx_chain.v \ sdr_lib/rx_chain_dual.v \ sdr_lib/rx_dcoffset.v \ sdr_lib/serial_io.v \ sdr_lib/setting_reg.v \ sdr_lib/setting_reg_masked.v \ sdr_lib/sign_extend.v \ sdr_lib/strobe_gen.v \ sdr_lib/tx_buffer.v \ sdr_lib/tx_chain.v \ sdr_lib/tx_chain_hb.v \ tb/cbus_tb.v \ tb/cordic_tb.v \ tb/decim_tb.v \ tb/fullchip_tb.v \ tb/interp_tb.v \ tb/justinterp_tb.v \ tb/usrp_tasks.v \ toplevel/include/common_config_1rxhb_1tx.vh \ toplevel/include/common_config_2rx_0tx.vh \ toplevel/include/common_config_2rxhb_0tx.vh \ toplevel/include/common_config_2rxhb_2tx.vh \ toplevel/include/common_config_4rx_0tx.vh \ toplevel/include/common_config_bottom.vh \ toplevel/mrfm/biquad_2stage.v \ toplevel/mrfm/biquad_6stage.v \ toplevel/mrfm/mrfm.csf \ toplevel/mrfm/mrfm.esf \ toplevel/mrfm/mrfm.psf \ toplevel/mrfm/mrfm.py \ toplevel/mrfm/mrfm.qpf \ toplevel/mrfm/mrfm.qsf \ toplevel/mrfm/mrfm.v \ toplevel/mrfm/mrfm.vh \ toplevel/mrfm/mrfm_compensator.v \ toplevel/mrfm/mrfm_fft.py \ toplevel/mrfm/mrfm_proc.v \ toplevel/mrfm/shifter.v \ toplevel/sizetest/sizetest.csf \ toplevel/sizetest/sizetest.psf \ toplevel/sizetest/sizetest.v \ toplevel/usrp_inband_usb/config.vh \ toplevel/usrp_inband_usb/usrp_inband_usb.csf \ toplevel/usrp_inband_usb/usrp_inband_usb.esf \ toplevel/usrp_inband_usb/usrp_inband_usb.psf \ toplevel/usrp_inband_usb/usrp_inband_usb.qpf \ toplevel/usrp_inband_usb/usrp_inband_usb.qsf \ toplevel/usrp_inband_usb/usrp_inband_usb.v \ toplevel/usrp_multi/config.vh \ toplevel/usrp_multi/usrp_multi.csf \ toplevel/usrp_multi/usrp_multi.esf \ toplevel/usrp_multi/usrp_multi.psf \ toplevel/usrp_multi/usrp_multi.qpf \ toplevel/usrp_multi/usrp_multi.qsf \ toplevel/usrp_multi/usrp_multi.v \ toplevel/usrp_std/config.vh \ toplevel/usrp_std/usrp_std.csf \ toplevel/usrp_std/usrp_std.esf \ toplevel/usrp_std/usrp_std.psf \ toplevel/usrp_std/usrp_std.qpf \ toplevel/usrp_std/usrp_std.qsf \ toplevel/usrp_std/usrp_std.v uhd-3.5.5/fpga/usrp1/TODO000066400000000000000000000007351224274632000147720ustar00rootroot00000000000000 Area Reduction ============== Reduce one or both stages of dec/interp to max rate of 8 instead of 16 Optimize CICs to minimize registers Reduce width of RX CORDIC Fix CORDIC wasted logic cells from bad synthesis Progressively narrow x,y,z on CORDIC 16-bit wide FIFOs, split IQ/channels on other side (?) Enhancements ============ Halfband filter in Spartan 3 Muxing of inputs Switch over to newfc RAM interface? Other ===== Capture/Transmit straight samples (no DUC/DDC) uhd-3.5.5/fpga/usrp1/common/000077500000000000000000000000001224274632000155655ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/common/fpga_regs_common.v000066400000000000000000000074271224274632000212730ustar00rootroot00000000000000// // This file is machine generated from ./fpga_regs_common.h // Do not edit by hand; your edits will be overwritten. // // This file defines registers common to all FPGA configurations. // Registers 0 to 31 are reserved for use in this file. // The FPGA needs to know the rate that samples are coming from and // going to the A/D's and D/A's. div = 128e6 / sample_rate `define FR_TX_SAMPLE_RATE_DIV 7'd0 `define FR_RX_SAMPLE_RATE_DIV 7'd1 // 2 and 3 are defined in the ATR section `define FR_MASTER_CTRL 7'd4 // master enable and reset controls // i/o direction registers for pins that go to daughterboards. // Setting the bit makes it an output from the FPGA to the d'board. // top 16 is mask, low 16 is value `define FR_OE_0 7'd5 // slot 0 `define FR_OE_1 7'd6 `define FR_OE_2 7'd7 `define FR_OE_3 7'd8 // i/o registers for pins that go to daughterboards. // top 16 is a mask, low 16 is value `define FR_IO_0 7'd9 // slot 0 `define FR_IO_1 7'd10 `define FR_IO_2 7'd11 `define FR_IO_3 7'd12 `define FR_MODE 7'd13 // If the corresponding bit is set, internal FPGA debug circuitry // controls the i/o pins for the associated bank of daughterboard // i/o pins. Typically used for debugging FPGA designs. `define FR_DEBUG_EN 7'd14 // If the corresponding bit is set, enable the automatic DC // offset correction control loop. // // The 4 low bits are significant: // // ADC0 = (1 << 0) // ADC1 = (1 << 1) // ADC2 = (1 << 2) // ADC3 = (1 << 3) // // This control loop works if the attached daugherboard blocks DC. // Currently all daughterboards do block DC. This includes: // basic rx, dbs_rx, tv_rx, flex_xxx_rx. `define FR_DC_OFFSET_CL_EN 7'd15 // DC Offset Control Loop Enable // offset corrections for ADC's and DAC's (2's complement) `define FR_ADC_OFFSET_0 7'd16 `define FR_ADC_OFFSET_1 7'd17 `define FR_ADC_OFFSET_2 7'd18 `define FR_ADC_OFFSET_3 7'd19 // ------------------------------------------------------------------------ // Automatic Transmit/Receive switching // // If automatic transmit/receive (ATR) switching is enabled in the // FR_ATR_CTL register, the presence or absence of data in the FPGA // transmit fifo selects between two sets of values for each of the 4 // banks of daughterboard i/o pins. // // Each daughterboard slot has 3 16-bit registers associated with it: // FR_ATR_MASK_*, FR_ATR_TXVAL_* and FR_ATR_RXVAL_* // // FR_ATR_MASK_{0,1,2,3}: // // These registers determine which of the daugherboard i/o pins are // affected by ATR switching. If a bit in the mask is set, the // corresponding i/o bit is controlled by ATR, else it's output // value comes from the normal i/o pin output register: // FR_IO_{0,1,2,3}. // // FR_ATR_TXVAL_{0,1,2,3}: // FR_ATR_RXVAL_{0,1,2,3}: // // If the Tx fifo contains data, then the bits from TXVAL that are // selected by MASK are output. Otherwise, the bits from RXVAL that // are selected by MASK are output. `define FR_ATR_MASK_0 7'd20 // slot 0 `define FR_ATR_TXVAL_0 7'd21 `define FR_ATR_RXVAL_0 7'd22 `define FR_ATR_MASK_1 7'd23 // slot 1 `define FR_ATR_TXVAL_1 7'd24 `define FR_ATR_RXVAL_1 7'd25 `define FR_ATR_MASK_2 7'd26 // slot 2 `define FR_ATR_TXVAL_2 7'd27 `define FR_ATR_RXVAL_2 7'd28 `define FR_ATR_MASK_3 7'd29 // slot 3 `define FR_ATR_TXVAL_3 7'd30 `define FR_ATR_RXVAL_3 7'd31 // Clock ticks to delay rising and falling edge of T/R signal `define FR_ATR_TX_DELAY 7'd2 `define FR_ATR_RX_DELAY 7'd3 uhd-3.5.5/fpga/usrp1/common/fpga_regs_standard.v000066400000000000000000000237711224274632000216030ustar00rootroot00000000000000// // This file is machine generated from ./fpga_regs_standard.h // Do not edit by hand; your edits will be overwritten. // // Register numbers 0 to 31 are reserved for use in fpga_regs_common.h. // Registers 64 to 79 are available for custom FPGA builds. // DDC / DUC `define FR_INTERP_RATE 7'd32 // [1,1024] `define FR_DECIM_RATE 7'd33 // [1,256] // DDC center freq `define FR_RX_FREQ_0 7'd34 `define FR_RX_FREQ_1 7'd35 `define FR_RX_FREQ_2 7'd36 `define FR_RX_FREQ_3 7'd37 // See below for DDC Starting Phase // ------------------------------------------------------------------------ // configure FPGA Rx mux // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------+-------+-------+-------+-------+-+-----+ // | must be zero | Q3| I3| Q2| I2| Q1| I1| Q0| I0|Z| NCH | // +-----------------------+-------+-------+-------+-------+-+-----+ // // There are a maximum of 4 digital downconverters in the the FPGA. // Each DDC has two 16-bit inputs, I and Q, and two 16-bit outputs, I & Q. // // DDC I inputs are specified by the two bit fields I3, I2, I1 & I0 // // 0 = DDC input is from ADC 0 // 1 = DDC input is from ADC 1 // 2 = DDC input is from ADC 2 // 3 = DDC input is from ADC 3 // // If Z == 1, all DDC Q inputs are set to zero // If Z == 0, DDC Q inputs are specified by the two bit fields Q3, Q2, Q1 & Q0 // // NCH specifies the number of complex channels that are sent across // the USB. The legal values are 1, 2 or 4, corresponding to 2, 4 or // 8 16-bit values. `define FR_RX_MUX 7'd38 // ------------------------------------------------------------------------ // configure FPGA Tx Mux. // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------+-------+-------+-------+-------+-+-----+ // | | DAC3 | DAC2 | DAC1 | DAC0 |0| NCH | // +-----------------------------------------------+-------+-+-----+ // // NCH specifies the number of complex channels that are sent across // the USB. The legal values are 1 or 2, corresponding to 2 or 4 // 16-bit values. // // There are two interpolators with complex inputs and outputs. // There are four DACs. (We use the DUC in each AD9862.) // // Each 4-bit DACx field specifies the source for the DAC and // whether or not that DAC is enabled. Each subfield is coded // like this: // // 3 2 1 0 // +-+-----+ // |E| N | // +-+-----+ // // Where E is set if the DAC is enabled, and N specifies which // interpolator output is connected to this DAC. // // N which interp output // --- ------------------- // 0 chan 0 I // 1 chan 0 Q // 2 chan 1 I // 3 chan 1 Q `define FR_TX_MUX 7'd39 // ------------------------------------------------------------------------ // REFCLK control // // Control whether a reference clock is sent to the daughterboards, // and what frequency. The refclk is sent on d'board i/o pin 0. // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------------------------------+-+------------+ // | Reserved (Must be zero) |E| DIVISOR | // +-----------------------------------------------+-+------------+ // // Bit 7 -- 1 turns on refclk, 0 allows IO use // Bits 6:0 Divider value `define FR_TX_A_REFCLK 7'd40 `define FR_RX_A_REFCLK 7'd41 `define FR_TX_B_REFCLK 7'd42 `define FR_RX_B_REFCLK 7'd43 // ------------------------------------------------------------------------ // DDC Starting Phase `define FR_RX_PHASE_0 7'd44 `define FR_RX_PHASE_1 7'd45 `define FR_RX_PHASE_2 7'd46 `define FR_RX_PHASE_3 7'd47 // ------------------------------------------------------------------------ // Tx data format control register // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-------------------------------------------------------+-------+ // | Reserved (Must be zero) | FMT | // +-------------------------------------------------------+-------+ // // FMT values: `define FR_TX_FORMAT 7'd48 // ------------------------------------------------------------------------ // Rx data format control register // // 3 2 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-----------------------------------------+-+-+---------+-------+ // | Reserved (Must be zero) |B|Q| WIDTH | SHIFT | // +-----------------------------------------+-+-+---------+-------+ // // FMT values: `define FR_RX_FORMAT 7'd49 // The valid combinations currently are: // // B Q WIDTH SHIFT // 0 1 16 0 // 0 1 8 8 // Possible future values of WIDTH = {4, 2, 1} // 12 takes a bit more work, since we need to know packet alignment. // ------------------------------------------------------------------------ // FIXME register numbers 50 to 63 are available // ------------------------------------------------------------------------ // Registers 64 to 95 are reserved for user custom FPGA builds. // The standard USRP software will not touch these. `define FR_USER_0 7'd64 `define FR_USER_1 7'd65 `define FR_USER_2 7'd66 `define FR_USER_3 7'd67 `define FR_USER_4 7'd68 `define FR_USER_5 7'd69 `define FR_USER_6 7'd70 `define FR_USER_7 7'd71 `define FR_USER_8 7'd72 `define FR_USER_9 7'd73 `define FR_USER_10 7'd74 `define FR_USER_11 7'd75 `define FR_USER_12 7'd76 `define FR_USER_13 7'd77 `define FR_USER_14 7'd78 `define FR_USER_15 7'd79 `define FR_USER_16 7'd80 `define FR_USER_17 7'd81 `define FR_USER_18 7'd82 `define FR_USER_19 7'd83 `define FR_USER_20 7'd84 `define FR_USER_21 7'd85 `define FR_USER_22 7'd86 `define FR_USER_23 7'd87 `define FR_USER_24 7'd88 `define FR_USER_25 7'd89 `define FR_USER_26 7'd90 `define FR_USER_27 7'd91 `define FR_USER_28 7'd92 `define FR_USER_29 7'd93 `define FR_USER_30 7'd94 `define FR_USER_31 7'd95 //Registers needed for multi usrp master/slave configuration // //Rx Master/slave control register (FR_RX_MASTER_SLAVE = FR_USER_0) // `define FR_RX_MASTER_SLAVE 7'd64 `define bitnoFR_RX_SYNC 0 `define bitnoFR_RX_SYNC_MASTER 1 `define bitnoFR_RX_SYNC_SLAVE 2 //Caution The master settings will output values on the io lines. //They inheritely enable these lines as output. If you have a daughtercard which uses these lines also as output then you will burn your usrp and daughtercard. //If you set the slave bits then your usrp won't do anything if you don't connect a master. // Rx Master/slave control register // // The way this is supposed to be used is connecting a (short) 16pin flatcable from an rx daughterboard in RXA master io_rx[8..15] to slave io_rx[8..15] on RXA of slave usrp // This can be done with basic_rx boards or dbsrx boards //dbsrx: connect master-J25 to slave-J25 //basic rx: connect J25 to slave-J25 //CAUTION: pay attention to the lineup of your connector. //The red line (pin1) should be at the same side of the daughterboards on master and slave. //If you turnaround the cable on one end you will burn your usrp. //You cannot use a 16pin flatcable if you are using FLEX400 or FLEX2400 daughterboards, since these use a lot of the io pins. //You can still link them but you must use only a 2pin or 1pin cable //You can also use a 2-wire link. put a 2pin header on io[15],gnd of the master RXA daughterboard and connect it to io15,gnd of the slave RXA db. //You can use a cable like the ones found with the leds on the mainbord of a PC. //Make sure you don't twist the cable, otherwise you connect the sync output to ground. //To be save you could also just use a single wire from master io[15] to slave io[15], but this is not optimal for signal integrity. // Since rx_io[0] can normally be used as a refclk and is not exported on all daughterboards this line // still has the refclk function if you use the master/slave setup (it is not touched by the master/slave settings). // The master/slave circuitry will only use io pin 15 and does not touch any of the other io pins. `define bitnoFR_RX_SYNC_INPUT_IOPIN 15 `define bmFR_RX_SYNC_INPUT_IOPIN (1<= rssi_wait && rssi_wait != 0 && rssi_flag)) begin trash <= 1; reader_state <= IDLE; skip <= 1; end // Let's send it else if (timestamp == timestamp_clock || timestamp == 32'hFFFFFFFF) begin if (rssi <= threshhold || rssi_flag == 0) begin trash <= 0; reader_state <= WAITSTROBE; end else reader_state <= WAIT; end else reader_state <= WAIT; end // Wait for the transmit chain to be ready WAITSTROBE: begin // If end of payload... if (read_len == payload_len) begin reader_state <= IDLE; skip <= 1; if (tx_strobe == 1) tx_empty <= 1 ; end else if (tx_strobe == 1) begin reader_state <= SEND; rdreq <= 1; end end // Send the samples to the tx_chain SEND: begin reader_state <= WAITSTROBE; read_len <= read_len + 7'd1; tx_empty <= 0; rdreq <= 0; case(samples_format) `QI16: begin tx_i <= fifodata[15:0]; tx_q <= fifodata[31:16]; end // Assume 16 bits complex samples by default default: begin tx_i <= fifodata[15:0]; tx_q <= fifodata[31:16]; end endcase end default: begin //error handling reader_state <= IDLE; end endcase end end endmodule uhd-3.5.5/fpga/usrp1/inband_lib/channel_demux.v000066400000000000000000000035771224274632000213730ustar00rootroot00000000000000module channel_demux #(parameter NUM_CHAN = 2) ( //usb Side input [31:0]usbdata_final, input WR_final, // TX Side input reset, input txclk, output reg [NUM_CHAN:0] WR_channel, output reg [31:0] ram_data, output reg [NUM_CHAN:0] WR_done_channel ); /* Parse header and forward to ram */ reg [2:0]reader_state; reg [4:0]channel ; reg [6:0]read_length ; // States parameter IDLE = 3'd0; parameter HEADER = 3'd1; parameter WAIT = 3'd2; parameter FORWARD = 3'd3; `define CHANNEL 20:16 `define PKT_SIZE 127 wire [4:0] true_channel; assign true_channel = (usbdata_final[`CHANNEL] == 5'h1f) ? NUM_CHAN : (usbdata_final[`CHANNEL]); always @(posedge txclk) begin if (reset) begin reader_state <= IDLE; WR_channel <= 0; WR_done_channel <= 0; end else case (reader_state) IDLE: begin if (WR_final) reader_state <= HEADER; end // Store channel and forware header HEADER: begin channel <= true_channel; WR_channel[true_channel] <= 1; ram_data <= usbdata_final; read_length <= 7'd0 ; reader_state <= WAIT; end WAIT: begin WR_channel[channel] <= 0; if (read_length == `PKT_SIZE) reader_state <= IDLE; else if (WR_final) reader_state <= FORWARD; end FORWARD: begin WR_channel[channel] <= 1; ram_data <= usbdata_final; read_length <= read_length + 7'd1; reader_state <= WAIT; end default: begin //error handling reader_state <= IDLE; end endcase end endmodule uhd-3.5.5/fpga/usrp1/inband_lib/channel_ram.v000077500000000000000000000063241224274632000210240ustar00rootroot00000000000000module channel_ram ( // System input txclk, input reset, // USB side input [31:0] datain, input WR, input WR_done, output have_space, // Reader side output [31:0] dataout, input RD, input RD_done, output packet_waiting); reg [6:0] wr_addr, rd_addr; reg [1:0] which_ram_wr, which_ram_rd; reg [2:0] nb_packets; reg [31:0] ram0 [0:127]; reg [31:0] ram1 [0:127]; reg [31:0] ram2 [0:127]; reg [31:0] ram3 [0:127]; reg [31:0] dataout0; reg [31:0] dataout1; reg [31:0] dataout2; reg [31:0] dataout3; wire wr_done_int; wire rd_done_int; wire [6:0] rd_addr_final; wire [1:0] which_ram_rd_final; // USB side always @(posedge txclk) if(WR & (which_ram_wr == 2'd0)) ram0[wr_addr] <= datain; always @(posedge txclk) if(WR & (which_ram_wr == 2'd1)) ram1[wr_addr] <= datain; always @(posedge txclk) if(WR & (which_ram_wr == 2'd2)) ram2[wr_addr] <= datain; always @(posedge txclk) if(WR & (which_ram_wr == 2'd3)) ram3[wr_addr] <= datain; assign wr_done_int = ((WR && (wr_addr == 7'd127)) || WR_done); always @(posedge txclk) if(reset) wr_addr <= 0; else if (WR_done) wr_addr <= 0; else if (WR) wr_addr <= wr_addr + 7'd1; always @(posedge txclk) if(reset) which_ram_wr <= 0; else if (wr_done_int) which_ram_wr <= which_ram_wr + 2'd1; assign have_space = (nb_packets < 3'd3); // Reader side // short hand fifo // rd_addr_final is what rd_addr is going to be next clock cycle // which_ram_rd_final is what which_ram_rd is going to be next clock cycle always @(posedge txclk) dataout0 <= ram0[rd_addr_final]; always @(posedge txclk) dataout1 <= ram1[rd_addr_final]; always @(posedge txclk) dataout2 <= ram2[rd_addr_final]; always @(posedge txclk) dataout3 <= ram3[rd_addr_final]; assign dataout = (which_ram_rd_final[1]) ? (which_ram_rd_final[0] ? dataout3 : dataout2) : (which_ram_rd_final[0] ? dataout1 : dataout0); //RD_done is the only way to signal the end of one packet assign rd_done_int = RD_done; always @(posedge txclk) if (reset) rd_addr <= 0; else if (RD_done) rd_addr <= 0; else if (RD) rd_addr <= rd_addr + 7'd1; assign rd_addr_final = (reset|RD_done) ? (6'd0) : ((RD)?(rd_addr+7'd1):rd_addr); always @(posedge txclk) if (reset) which_ram_rd <= 0; else if (rd_done_int) which_ram_rd <= which_ram_rd + 2'd1; assign which_ram_rd_final = (reset) ? (2'd0): ((rd_done_int) ? (which_ram_rd + 2'd1) : which_ram_rd); //packet_waiting is set to zero if rd_done_int is high //because there is no guarantee that nb_packets will be pos. assign packet_waiting = (nb_packets > 1) | ((nb_packets == 1)&(~rd_done_int)); always @(posedge txclk) if (reset) nb_packets <= 0; else if (wr_done_int & ~rd_done_int) nb_packets <= nb_packets + 3'd1; else if (rd_done_int & ~wr_done_int) nb_packets <= nb_packets - 3'd1; endmodule uhd-3.5.5/fpga/usrp1/inband_lib/cmd_reader.v000077500000000000000000000225131224274632000206400ustar00rootroot00000000000000module cmd_reader (//System input reset, input txclk, input [31:0] timestamp_clock, //FX2 Side output reg skip, output reg rdreq, input [31:0] fifodata, input pkt_waiting, //Rx side input rx_WR_enabled, output reg [15:0] rx_databus, output reg rx_WR, output reg rx_WR_done, //register io input wire [31:0] reg_data_out, output reg [31:0] reg_data_in, output reg [6:0] reg_addr, output reg [1:0] reg_io_enable, output wire [14:0] debug, output reg stop, output reg [15:0] stop_time); // States parameter IDLE = 4'd0; parameter HEADER = 4'd1; parameter TIMESTAMP = 4'd2; parameter WAIT = 4'd3; parameter TEST = 4'd4; parameter SEND = 4'd5; parameter PING = 4'd6; parameter WRITE_REG = 4'd7; parameter WRITE_REG_MASKED = 4'd8; parameter READ_REG = 4'd9; parameter DELAY = 4'd14; `define OP_PING_FIXED 8'd0 `define OP_PING_FIXED_REPLY 8'd1 `define OP_WRITE_REG 8'd2 `define OP_WRITE_REG_MASKED 8'd3 `define OP_READ_REG 8'd4 `define OP_READ_REG_REPLY 8'd5 `define OP_DELAY 8'd12 reg [6:0] payload; reg [6:0] payload_read; reg [3:0] state; reg [15:0] high; reg [15:0] low; reg pending; reg [31:0] value0; reg [31:0] value1; reg [31:0] value2; reg [1:0] lines_in; reg [1:0] lines_out; reg [1:0] lines_out_total; `define JITTER 5 `define OP_CODE 31:24 `define PAYLOAD 8:2 wire [7:0] ops; assign ops = value0[`OP_CODE]; assign debug = {state[3:0], lines_out[1:0], pending, rx_WR, rx_WR_enabled, value0[2:0], ops[2:0]}; always @(posedge txclk) if (reset) begin pending <= 0; state <= IDLE; skip <= 0; rdreq <= 0; rx_WR <= 0; reg_io_enable <= 0; reg_data_in <= 0; reg_addr <= 0; stop <= 0; end else case (state) IDLE : begin payload_read <= 0; skip <= 0; lines_in <= 0; if(pkt_waiting) begin state <= HEADER; rdreq <= 1; end end HEADER : begin payload <= fifodata[`PAYLOAD]; state <= TIMESTAMP; end TIMESTAMP : begin value0 <= fifodata; state <= WAIT; rdreq <= 0; end WAIT : begin // Let's send it if ((value0 <= timestamp_clock + `JITTER && value0 > timestamp_clock) || value0 == 32'hFFFFFFFF) state <= TEST; // Wait a little bit more else if (value0 > timestamp_clock + `JITTER) state <= WAIT; // Outdated else if (value0 < timestamp_clock) begin state <= IDLE; skip <= 1; end end TEST : begin reg_io_enable <= 0; rx_WR <= 0; rx_WR_done <= 1; stop <= 0; if (payload_read == payload) begin skip <= 1; state <= IDLE; rdreq <= 0; end else begin value0 <= fifodata; lines_in <= 2'd1; rdreq <= 1; payload_read <= payload_read + 7'd1; lines_out <= 0; case (fifodata[`OP_CODE]) `OP_PING_FIXED: begin state <= PING; end `OP_WRITE_REG: begin state <= WRITE_REG; pending <= 1; end `OP_WRITE_REG_MASKED: begin state <= WRITE_REG_MASKED; pending <= 1; end `OP_READ_REG: begin state <= READ_REG; end `OP_DELAY: begin state <= DELAY; end default: begin //error, skip this packet skip <= 1; state <= IDLE; end endcase end end SEND: begin rdreq <= 0; rx_WR_done <= 0; if (pending) begin rx_WR <= 1; rx_databus <= high; pending <= 0; if (lines_out == lines_out_total) state <= TEST; else case (ops) `OP_READ_REG: begin state <= READ_REG; end default: begin state <= TEST; end endcase end else begin if (rx_WR_enabled) begin rx_WR <= 1; rx_databus <= low; pending <= 1; lines_out <= lines_out + 2'd1; end else rx_WR <= 0; end end PING: begin rx_WR <= 0; rdreq <= 0; rx_WR_done <= 0; lines_out_total <= 2'd1; pending <= 0; state <= SEND; high <= {`OP_PING_FIXED_REPLY, 8'd2}; low <= value0[15:0]; end READ_REG: begin rx_WR <= 0; rx_WR_done <= 0; rdreq <= 0; lines_out_total <= 2'd2; pending <= 0; state <= SEND; if (lines_out == 0) begin high <= {`OP_READ_REG_REPLY, 8'd6}; low <= value0[15:0]; reg_io_enable <= 2'd3; reg_addr <= value0[6:0]; end else begin high <= reg_data_out[31:16]; low <= reg_data_out[15:0]; end end WRITE_REG: begin rx_WR <= 0; if (pending) pending <= 0; else begin if (lines_in == 2'd1) begin payload_read <= payload_read + 7'd1; lines_in <= lines_in + 2'd1; value1 <= fifodata; rdreq <= 0; end else begin reg_io_enable <= 2'd2; reg_data_in <= value1; reg_addr <= value0[6:0]; state <= TEST; end end end WRITE_REG_MASKED: begin rx_WR <= 0; if (pending) pending <= 0; else begin if (lines_in == 2'd1) begin rdreq <= 1; payload_read <= payload_read + 7'd1; lines_in <= lines_in + 2'd1; value1 <= fifodata; end else if (lines_in == 2'd2) begin rdreq <= 0; payload_read <= payload_read + 7'd1; lines_in <= lines_in + 2'd1; value2 <= fifodata; end else begin reg_io_enable <= 2'd2; reg_data_in <= (value1 & value2); reg_addr <= value0[6:0]; state <= TEST; end end end DELAY : begin rdreq <= 0; stop <= 1; stop_time <= value0[15:0]; state <= TEST; end default : begin //error state handling state <= IDLE; end endcase endmodule uhd-3.5.5/fpga/usrp1/inband_lib/packet_builder.v000077500000000000000000000113631224274632000215310ustar00rootroot00000000000000module packet_builder #(parameter NUM_CHAN = 2)( // System input rxclk, input reset, input [31:0] timestamp_clock, input [3:0] channels, // ADC side input [15:0]chan_fifodata, input [NUM_CHAN:0]chan_empty, input [9:0]chan_usedw, output reg [3:0]rd_select, output reg chan_rdreq, // FX2 side output reg WR, output reg [15:0]fifodata, input have_space, input wire [31:0]rssi_0, input wire [31:0]rssi_1, input wire [31:0]rssi_2, input wire [31:0]rssi_3, output wire [7:0] debugbus, input [NUM_CHAN:0] underrun); // States `define IDLE 3'd0 `define HEADER1 3'd1 `define HEADER2 3'd2 `define TIMESTAMP 3'd3 `define FORWARD 3'd4 `define MAXPAYLOAD 504 `define PAYLOAD_LEN 8:0 `define TAG 12:9 `define MBZ 15:13 `define CHAN 4:0 `define RSSI 10:5 `define BURST 12:11 `define DROPPED 13 `define UNDERRUN 14 `define OVERRUN 15 reg [NUM_CHAN:0] overrun; reg [2:0] state; reg [8:0] read_length; reg [8:0] payload_len; reg timestamp_complete; reg [3:0] check_next; wire [31:0] true_rssi; wire [4:0] true_channel; wire ready_to_send; assign debugbus = {chan_empty[0], rd_select[0], have_space, (chan_usedw >= 10'd504), (chan_usedw ==0), ready_to_send, state[1:0]}; assign true_rssi = (rd_select[1]) ? ((rd_select[0]) ? rssi_3:rssi_2) : ((rd_select[0]) ? rssi_1:rssi_0); assign true_channel = (check_next == 4'd0 ? 5'h1f : {1'd0, check_next - 4'd1}); assign ready_to_send = (chan_usedw >= 10'd504) || (chan_usedw == 0) || ((rd_select == NUM_CHAN)&&(chan_usedw > 0)); always @(posedge rxclk) begin if (reset) begin overrun <= 0; WR <= 0; rd_select <= 0; chan_rdreq <= 0; timestamp_complete <= 0; check_next <= 0; state <= `IDLE; end else case (state) `IDLE: begin chan_rdreq <= #1 0; //check if the channel is full if(~chan_empty[check_next]) begin if (have_space) begin //transmit if the usb buffer have space //check if we should send if (ready_to_send) state <= #1 `HEADER1; overrun[check_next] <= 0; end else begin state <= #1 `IDLE; overrun[check_next] <= 1; end rd_select <= #1 check_next; end check_next <= #1 (check_next == channels ? 4'd0 : check_next + 4'd1); end `HEADER1: begin fifodata[`PAYLOAD_LEN] <= #1 9'd504; payload_len <= #1 9'd504; fifodata[`TAG] <= #1 0; fifodata[`MBZ] <= #1 0; WR <= #1 1; state <= #1 `HEADER2; read_length <= #1 0; end `HEADER2: begin fifodata[`CHAN] <= #1 true_channel; fifodata[`RSSI] <= #1 true_rssi[5:0]; fifodata[`BURST] <= #1 0; fifodata[`DROPPED] <= #1 0; fifodata[`UNDERRUN] <= #1 (check_next == 0) ? 1'b0 : underrun[true_channel]; fifodata[`OVERRUN] <= #1 (check_next == 0) ? 1'b0 : overrun[true_channel]; state <= #1 `TIMESTAMP; end `TIMESTAMP: begin fifodata <= #1 (timestamp_complete ? timestamp_clock[31:16] : timestamp_clock[15:0]); timestamp_complete <= #1 ~timestamp_complete; if (~timestamp_complete) chan_rdreq <= #1 1; state <= #1 (timestamp_complete ? `FORWARD : `TIMESTAMP); end `FORWARD: begin read_length <= #1 read_length + 9'd2; fifodata <= #1 (read_length >= payload_len ? 16'hDEAD : chan_fifodata); if (read_length >= `MAXPAYLOAD) begin WR <= #1 0; state <= #1 `IDLE; chan_rdreq <= #1 0; end else if (read_length == payload_len - 4) chan_rdreq <= #1 0; end default: begin //handling error state state <= `IDLE; end endcase end endmodule uhd-3.5.5/fpga/usrp1/inband_lib/register_io.v000077500000000000000000000051361224274632000210700ustar00rootroot00000000000000module register_io (clk, reset, enable, addr, datain, dataout, debugbus, addr_wr, data_wr, strobe_wr, rssi_0, rssi_1, rssi_2, rssi_3, threshhold, rssi_wait, reg_0, reg_1, reg_2, reg_3, debug_en, misc, txmux); input clk; input reset; input wire [1:0] enable; input wire [6:0] addr; input wire [31:0] datain; output reg [31:0] dataout; output wire [15:0] debugbus; output reg [6:0] addr_wr; output reg [31:0] data_wr; output wire strobe_wr; input wire [31:0] rssi_0; input wire [31:0] rssi_1; input wire [31:0] rssi_2; input wire [31:0] rssi_3; output wire [31:0] threshhold; output wire [31:0] rssi_wait; input wire [15:0] reg_0; input wire [15:0] reg_1; input wire [15:0] reg_2; input wire [15:0] reg_3; input wire [3:0] debug_en; input wire [7:0] misc; input wire [31:0] txmux; reg strobe; wire [31:0] out[2:1]; assign debugbus = {clk, enable, addr[2:0], datain[4:0], dataout[4:0]}; assign threshhold = out[1]; assign rssi_wait = out[2]; assign strobe_wr = strobe; always @(*) if (reset | ~enable[1]) begin strobe <= 0; dataout <= 0; end else begin if (enable[0]) begin //read if (addr <= 7'd52 && addr > 7'd50) dataout <= out[addr-7'd50]; else dataout <= 32'hFFFFFFFF; strobe <= 0; end else begin //write dataout <= dataout; strobe <= 1; data_wr <= datain; addr_wr <= addr; end end //register declarations /*setting_reg #(50) setting_reg0(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[0]));*/ setting_reg #(51) setting_reg1(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[1])); setting_reg #(52) setting_reg2(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[2])); /*setting_reg #(53) setting_reg3(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[3])); setting_reg #(54) setting_reg4(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[4])); setting_reg #(55) setting_reg5(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[5])); setting_reg #(56) setting_reg6(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[6])); setting_reg #(57) setting_reg7(.clock(clk),.reset(reset), .strobe(strobe_wr),.addr(addr_wr),.in(data_wr),.out(out[7]));*/ endmodule uhd-3.5.5/fpga/usrp1/inband_lib/rx_buffer_inband.v000077500000000000000000000123651224274632000220540ustar00rootroot00000000000000//`include "../common/fpga_regs_common.v" //`include "../common/fpga_regs_standard.v" module rx_buffer_inband ( input usbclk, input bus_reset, input reset, // DSP side reset (used here), do not reset registers input reset_regs, //Only reset registers output [15:0] usbdata, input RD, output wire have_pkt_rdy, output reg rx_overrun, input wire [3:0] channels, input wire [15:0] ch_0, input wire [15:0] ch_1, input wire [15:0] ch_2, input wire [15:0] ch_3, input wire [15:0] ch_4, input wire [15:0] ch_5, input wire [15:0] ch_6, input wire [15:0] ch_7, input rxclk, input rxstrobe, input clear_status, input [6:0] serial_addr, input [31:0] serial_data, input serial_strobe, output wire [15:0] debugbus, //Connection with tx_inband input rx_WR, input [15:0] rx_databus, input rx_WR_done, output reg rx_WR_enabled, //signal strength input wire [31:0] rssi_0, input wire [31:0] rssi_1, input wire [31:0] rssi_2, input wire [31:0] rssi_3, input wire [1:0] tx_underrun ); parameter NUM_CHAN = 1; genvar i ; // FX2 Bug Fix reg [8:0] read_count; always @(negedge usbclk) if(bus_reset) read_count <= #1 9'd0; else if(RD & ~read_count[8]) read_count <= #1 read_count + 9'd1; else read_count <= #1 RD ? read_count : 9'b0; // Time counter reg [31:0] timestamp_clock; always @(posedge rxclk) if (reset) timestamp_clock <= 0; else timestamp_clock <= timestamp_clock + 1; // USB side fifo wire [11:0] rdusedw; wire [11:0] wrusedw; wire [15:0] fifodata; wire [15:0] fifodata_il[0:NUM_CHAN]; wire WR; wire have_space; reg sel; reg wr; always@(posedge rxclk) begin if(reset) begin sel<=1; wr<=0; end else if(rxstrobe) begin sel<=0; wr<=1; end else if(wr&~sel) sel<=1; else if(wr&sel) wr<=0; else wr<=0; end assign fifodata_il[0] = (sel)?ch_1:ch_0; assign fifodata_il[1] = (sel)?ch_3:ch_2; fifo_4kx16_dc rx_usb_fifo ( .aclr ( reset ), .data ( fifodata ), .rdclk ( ~usbclk ), .rdreq ( RD & ~read_count[8] ), .wrclk ( rxclk ), .wrreq ( WR ), .q ( usbdata ), .rdempty ( ), .rdusedw ( rdusedw ), .wrfull ( ), .wrusedw ( wrusedw ) ); assign have_pkt_rdy = (rdusedw >= 12'd256); assign have_space = (wrusedw < 12'd760); // Rx side fifos // These are of size [NUM_CHAN:0] because the extra channel is used for the // RX command channel. If there were no command channel, they would be // NUM_CHAN-1. wire chan_rdreq; wire [15:0] chan_fifodata; wire [9:0] chan_usedw; wire [NUM_CHAN:0] chan_empty; wire [3:0] rd_select; wire [NUM_CHAN:0] rx_full; packet_builder #(NUM_CHAN) rx_pkt_builer ( .rxclk ( rxclk ), .reset ( reset ), .timestamp_clock ( timestamp_clock ), .channels ( NUM_CHAN ), .chan_rdreq ( chan_rdreq ), .chan_fifodata ( chan_fifodata ), .chan_empty ( chan_empty ), .rd_select ( rd_select ), .chan_usedw ( chan_usedw ), .WR ( WR ), .fifodata ( fifodata ), .have_space ( have_space ), .rssi_0(rssi_0), .rssi_1(rssi_1), .rssi_2(rssi_2),.rssi_3(rssi_3), .debugbus(debug), .underrun(tx_underrun)); // Detect overrun always @(posedge rxclk) if(reset) rx_overrun <= 1'b0; else if(rx_full[0]) rx_overrun <= 1'b1; else if(clear_status) rx_overrun <= 1'b0; // FIXME: what is the purpose of these two lines? wire [15:0]ch[NUM_CHAN:0]; assign ch[0] = ch_0; wire cmd_empty; always @(posedge rxclk) if(reset) rx_WR_enabled <= 1; else if(cmd_empty) rx_WR_enabled <= 1; else if(rx_WR_done) rx_WR_enabled <= 0; // Of Size 0:NUM_CHAN due to extra command channel. wire [15:0] dataout [0:NUM_CHAN]; wire [9:0] usedw [0:NUM_CHAN]; wire empty[0:NUM_CHAN]; generate for (i = 0 ; i < NUM_CHAN; i = i + 1) begin : generate_channel_fifos wire rdreq; assign rdreq = (rd_select == i) & chan_rdreq; fifo_1kx16 rx_chan_fifo ( .aclr ( reset ), .clock ( rxclk ), .data ( fifodata_il[i] ), .rdreq ( rdreq ), .wrreq ( ~rx_full[i] & wr), .empty (empty[i]), .full (rx_full[i]), .q ( dataout[i]), .usedw ( usedw[i]), .almost_empty(chan_empty[i]) ); end endgenerate wire [7:0] debug; fifo_1kx16 rx_cmd_fifo ( .aclr ( reset ), .clock ( rxclk ), .data ( rx_databus ), .rdreq ( (rd_select == NUM_CHAN) & chan_rdreq ), .wrreq ( rx_WR & rx_WR_enabled), .empty ( cmd_empty), .full ( rx_full[NUM_CHAN] ), .q ( dataout[NUM_CHAN]), .usedw ( usedw[NUM_CHAN] ) ); assign chan_empty[NUM_CHAN] = cmd_empty | rx_WR_enabled; assign chan_fifodata = dataout[rd_select]; assign chan_usedw = usedw[rd_select]; assign debugbus = {4'd0, rxclk, rxstrobe, rx_full[0], rx_full[1], sel, wr}; endmodule uhd-3.5.5/fpga/usrp1/inband_lib/tx_buffer_inband.v000077500000000000000000000133301224274632000220470ustar00rootroot00000000000000module tx_buffer_inband ( //System input wire usbclk, input wire bus_reset, input wire reset, input wire [15:0] usbdata, output wire have_space, input wire [3:0] channels, //output transmit signals output wire [15:0] tx_i_0, output wire [15:0] tx_q_0, output wire [15:0] tx_i_1, output wire [15:0] tx_q_1, output wire [15:0] tx_i_2, output wire [15:0] tx_q_2, output wire [15:0] tx_i_3, output wire [15:0] tx_q_3, input wire txclk, input wire txstrobe, input wire WR, input wire clear_status, output wire tx_empty, output wire [15:0] debugbus, //command reader io output wire [15:0] rx_databus, output wire rx_WR, output wire rx_WR_done, input wire rx_WR_enabled, //register io output wire [1:0] reg_io_enable, output wire [31:0] reg_data_in, output wire [6:0] reg_addr, input wire [31:0] reg_data_out, //input characteristic signals input wire [31:0] rssi_0, input wire [31:0] rssi_1, input wire [31:0] rssi_2, input wire [31:0] rssi_3, input wire [31:0] rssi_wait, input wire [31:0] threshhold, output wire [1:0] tx_underrun, //system stop output wire stop, output wire [15:0] stop_time); parameter NUM_CHAN = 1 ; /* To generate channel readers */ genvar i ; /* These will eventually be external register */ reg [31:0] timestamp_clock ; wire [7:0] txstrobe_rate [NUM_CHAN-1:0] ; wire [31:0] rssi [3:0]; assign rssi[0] = rssi_0; assign rssi[1] = rssi_1; assign rssi[2] = rssi_2; assign rssi[3] = rssi_3; always @(posedge txclk) if (reset) timestamp_clock <= 0; else timestamp_clock <= timestamp_clock + 1; /* Connections between tx_usb_fifo_reader and cnannel/command processing blocks */ wire [31:0] tx_data_bus ; wire [NUM_CHAN:0] chan_WR ; wire [NUM_CHAN:0] chan_done ; /* Connections between data block and the FX2/TX chains */ wire [NUM_CHAN:0] chan_underrun; wire [NUM_CHAN:0] chan_txempty; /* Conections between tx_data_packet_fifo and its reader + strobe generator */ wire [31:0] chan_fifodata [NUM_CHAN:0] ; wire chan_pkt_waiting [NUM_CHAN:0] ; wire chan_rdreq [NUM_CHAN:0] ; wire chan_skip [NUM_CHAN:0] ; wire chan_have_space [NUM_CHAN:0] ; wire [14:0] debug [NUM_CHAN:0]; /* Outputs to transmit chains */ wire [15:0] tx_i [NUM_CHAN:0] ; wire [15:0] tx_q [NUM_CHAN:0] ; assign tx_i[NUM_CHAN] = 0; assign tx_q[NUM_CHAN] = 0; assign have_space = chan_have_space[0] & chan_have_space[1]; assign tx_empty = chan_txempty[0] & chan_txempty[1] ; assign tx_i_0 = chan_txempty[0] ? 16'b0 : tx_i[0] ; assign tx_q_0 = chan_txempty[0] ? 16'b0 : tx_q[0] ; assign tx_i_1 = chan_txempty[1] ? 16'b0 : tx_i[1] ; assign tx_q_1 = chan_txempty[1] ? 16'b0 : tx_q[1] ; assign tx_q_2 = 16'b0 ; assign tx_i_2 = 16'b0 ; assign tx_q_3 = 16'b0 ; assign tx_i_3 = 16'b0 ; assign tx_i_3 = 16'b0 ; assign debugbus = {have_space, txclk, WR, WR_final, chan_WR, chan_done, chan_pkt_waiting[0], chan_pkt_waiting[1], chan_rdreq[0], chan_rdreq[1], chan_txempty[0], chan_txempty[1]}; wire [31:0] usbdata_final; wire WR_final; tx_packer tx_usb_packer (.bus_reset(bus_reset), .usbclk(usbclk), .WR_fx2(WR), .usbdata(usbdata), .reset(reset), .txclk(txclk), .usbdata_final(usbdata_final), .WR_final(WR_final)); channel_demux #(NUM_CHAN) channel_demuxer (.usbdata_final(usbdata_final), .WR_final(WR_final), .reset(reset), .txclk(txclk), .WR_channel(chan_WR), .WR_done_channel(chan_done), .ram_data(tx_data_bus)); generate for (i = 0 ; i < NUM_CHAN; i = i + 1) begin : generate_channel_readers assign tx_underrun[i] = chan_underrun[i]; channel_ram tx_data_packet_fifo (.reset(reset), .txclk(txclk), .datain(tx_data_bus), .WR(chan_WR[i]), .WR_done(chan_done[i]), .have_space(chan_have_space[i]), .dataout(chan_fifodata[i]), .packet_waiting(chan_pkt_waiting[i]), .RD(chan_rdreq[i]), .RD_done(chan_skip[i])); chan_fifo_reader tx_chan_reader (.reset(reset), .tx_clock(txclk), .tx_strobe(txstrobe), .timestamp_clock(timestamp_clock), .samples_format(4'b0), .tx_q(tx_q[i]), .tx_i(tx_i[i]), .underrun(chan_underrun[i]), .skip(chan_skip[i]), .rdreq(chan_rdreq[i]), .fifodata(chan_fifodata[i]), .pkt_waiting(chan_pkt_waiting[i]), .tx_empty(chan_txempty[i]), .rssi(rssi[i]), .debug(debug[i]), .threshhold(threshhold), .rssi_wait(rssi_wait)); end endgenerate channel_ram tx_cmd_packet_fifo (.reset(reset), .txclk(txclk), .datain(tx_data_bus), .WR(chan_WR[NUM_CHAN]), .WR_done(chan_done[NUM_CHAN]), .have_space(chan_have_space[NUM_CHAN]), .dataout(chan_fifodata[NUM_CHAN]), .packet_waiting(chan_pkt_waiting[NUM_CHAN]), .RD(chan_rdreq[NUM_CHAN]), .RD_done(chan_skip[NUM_CHAN])); cmd_reader tx_cmd_reader (.reset(reset), .txclk(txclk), .timestamp_clock(timestamp_clock), .skip(chan_skip[NUM_CHAN]), .rdreq(chan_rdreq[NUM_CHAN]), .fifodata(chan_fifodata[NUM_CHAN]), .pkt_waiting(chan_pkt_waiting[NUM_CHAN]), .rx_databus(rx_databus), .rx_WR(rx_WR), .rx_WR_done(rx_WR_done), .rx_WR_enabled(rx_WR_enabled), .reg_data_in(reg_data_in), .reg_data_out(reg_data_out), .reg_addr(reg_addr), .reg_io_enable(reg_io_enable), .debug(debug[NUM_CHAN]), .stop(stop), .stop_time(stop_time)); endmodule // tx_buffer uhd-3.5.5/fpga/usrp1/inband_lib/tx_packer.v000066400000000000000000000046761224274632000205420ustar00rootroot00000000000000module tx_packer ( //FX2 Side input bus_reset, input usbclk, input WR_fx2, input [15:0]usbdata, // TX Side input reset, input txclk, output reg [31:0] usbdata_final, output reg WR_final); reg [8:0] write_count; /* Fix FX2 bug */ always @(posedge usbclk) begin if(bus_reset) // Use bus reset because this is on usbclk write_count <= #1 0; else if(WR_fx2 & ~write_count[8]) write_count <= #1 write_count + 9'd1; else write_count <= #1 WR_fx2 ? write_count : 9'b0; end reg WR_fx2_fixed; reg [15:0]usbdata_fixed; always @(posedge usbclk) begin WR_fx2_fixed <= WR_fx2 & ~write_count[8]; usbdata_fixed <= usbdata; end /* Used to convert 16 bits bus_data to the 32 bits wide fifo */ reg word_complete ; reg [15:0] usbdata_delayed ; reg writing ; wire [31:0] usbdata_packed ; wire WR_packed ; always @(posedge usbclk) begin if (bus_reset) begin word_complete <= 0 ; writing <= 0 ; end else if (WR_fx2_fixed) begin writing <= 1 ; if (word_complete) word_complete <= 0 ; else begin usbdata_delayed <= usbdata_fixed ; word_complete <= 1 ; end end else writing <= 0 ; end assign usbdata_packed = {usbdata_fixed, usbdata_delayed} ; assign WR_packed = word_complete & writing ; /* Make sure data are sync with usbclk */ reg [31:0]usbdata_usbclk; reg WR_usbclk; always @(posedge usbclk) begin if (WR_packed) usbdata_usbclk <= usbdata_packed; WR_usbclk <= WR_packed; end /* Cross clock boundaries */ reg [31:0] usbdata_tx ; reg WR_tx; reg WR_1; reg WR_2; always @(posedge txclk) usbdata_tx <= usbdata_usbclk; always @(posedge txclk) if (reset) WR_1 <= 0; else WR_1 <= WR_usbclk; always @(posedge txclk) if (reset) WR_2 <= 0; else WR_2 <= WR_1; always @(posedge txclk) begin if (reset) WR_tx <= 0; else WR_tx <= WR_1 & ~WR_2; end always @(posedge txclk) begin if (reset) WR_final <= 0; else begin WR_final <= WR_tx; if (WR_tx) usbdata_final <= usbdata_tx; end end endmodule uhd-3.5.5/fpga/usrp1/inband_lib/usb_packet_fifo.v000077500000000000000000000061301224274632000216730ustar00rootroot00000000000000module usb_packet_fifo ( input reset, input clock_in, input clock_out, input [15:0]ram_data_in, input write_enable, output reg [15:0]ram_data_out, output reg pkt_waiting, output reg have_space, input read_enable, input skip_packet ) ; /* Some parameters for usage later on */ parameter DATA_WIDTH = 16 ; parameter NUM_PACKETS = 4 ; /* Create the RAM here */ reg [DATA_WIDTH-1:0] usb_ram [256*NUM_PACKETS-1:0] ; /* Create the address signals */ reg [7-2+NUM_PACKETS:0] usb_ram_ain ; reg [7:0] usb_ram_offset ; reg [1:0] usb_ram_packet ; wire [7-2+NUM_PACKETS:0] usb_ram_aout ; reg isfull; assign usb_ram_aout = {usb_ram_packet,usb_ram_offset} ; // Check if there is one full packet to process always @(usb_ram_ain, usb_ram_aout) begin if (reset) pkt_waiting <= 0; else if (usb_ram_ain == usb_ram_aout) pkt_waiting <= isfull; else if (usb_ram_ain > usb_ram_aout) pkt_waiting <= (usb_ram_ain - usb_ram_aout) >= 256; else pkt_waiting <= (usb_ram_ain + 10'b1111111111 - usb_ram_aout) >= 256; end // Check if there is room always @(usb_ram_ain, usb_ram_aout) begin if (reset) have_space <= 1; else if (usb_ram_ain == usb_ram_aout) have_space <= ~isfull; else if (usb_ram_ain > usb_ram_aout) have_space <= (usb_ram_ain - usb_ram_aout) <= 256 * (NUM_PACKETS - 1); else have_space <= (usb_ram_aout - usb_ram_ain) >= 256; end /* RAM Write Address process */ always @(posedge clock_in) begin if( reset ) usb_ram_ain <= 0 ; else if( write_enable ) begin usb_ram_ain <= usb_ram_ain + 1 ; if (usb_ram_ain + 1 == usb_ram_aout) isfull <= 1; end end /* RAM Writing process */ always @(posedge clock_in) begin if( write_enable ) begin usb_ram[usb_ram_ain] <= ram_data_in ; end end /* RAM Read Address process */ always @(posedge clock_out) begin if( reset ) begin usb_ram_packet <= 0 ; usb_ram_offset <= 0 ; isfull <= 0; end else if( skip_packet ) begin usb_ram_packet <= usb_ram_packet + 1 ; usb_ram_offset <= 0 ; end else if(read_enable) if( usb_ram_offset == 8'b11111111 ) begin usb_ram_offset <= 0 ; usb_ram_packet <= usb_ram_packet + 1 ; end else usb_ram_offset <= usb_ram_offset + 1 ; if (usb_ram_ain == usb_ram_aout) isfull <= 0; end /* RAM Reading Process */ always @(posedge clock_out) begin ram_data_out <= usb_ram[usb_ram_aout] ; end endmoduleuhd-3.5.5/fpga/usrp1/megacells/000077500000000000000000000000001224274632000162315ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/megacells/.gitignore000066400000000000000000000000041224274632000202130ustar00rootroot00000000000000/db uhd-3.5.5/fpga/usrp1/megacells/accum32.bsf000077500000000000000000000070531224274632000201720ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2003 Altera Corporation Any megafunction design, and related netlist (encrypted or decrypted), support information, device programming or simulation file, and any other associated documentation or information provided by Altera or a partner under Altera's Megafunction Partnership Program may be used only to program PLD devices (but not masked PLD devices) from Altera. Any other use of such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information is prohibited for any other purpose, including, but not limited to modification, reverse engineering, de-compiling, or use with any other silicon devices, unless such use is explicitly licensed under a separate agreement with Altera or a megafunction partner. Title to the intellectual property, including patents, copyrights, trademarks, trade secrets, or maskworks, embodied in any such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information provided by Altera or a megafunction partner, remains with Altera, the megafunction partner, or their respective licensors. No other licenses, including any licenses needed under any third party's intellectual property, are provided herein. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 240 120) (text "accum32" (rect 87 2 166 21)(font "Arial" (font_size 10))) (text "inst" (rect 8 101 31 116)(font "Arial" )) (port (pt 0 40) (input) (text "data[31..0]" (rect 0 0 73 16)(font "Arial" (font_size 8))) (text "data[31..0]" (rect 20 24 82 40)(font "Arial" (font_size 8))) (line (pt 0 40)(pt 16 40)(line_width 3)) ) (port (pt 0 56) (input) (text "clock" (rect 0 0 36 16)(font "Arial" (font_size 8))) (text "clock" (rect 20 40 51 56)(font "Arial" (font_size 8))) (line (pt 0 56)(pt 16 56)(line_width 1)) ) (port (pt 0 72) (input) (text "clken" (rect 0 0 36 16)(font "Arial" (font_size 8))) (text "clken" (rect 20 56 51 72)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 16 72)(line_width 1)) ) (port (pt 0 96) (input) (text "aclr" (rect 0 0 24 16)(font "Arial" (font_size 8))) (text "aclr" (rect 20 80 41 96)(font "Arial" (font_size 8))) (line (pt 0 96)(pt 16 96)(line_width 1)) ) (port (pt 240 56) (output) (text "result[31..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "result[31..0]" (rect 152 40 221 56)(font "Arial" (font_size 8))) (line (pt 240 56)(pt 224 56)(line_width 3)) ) (drawing (text "acc" (rect 102 48 123 64)(font "Arial" (font_size 8))) (text "SIGNED" (rect 177 18 214 32)(font "Arial" )) (line (pt 16 16)(pt 224 16)(line_width 1)) (line (pt 16 16)(pt 16 104)(line_width 1)) (line (pt 16 104)(pt 224 104)(line_width 1)) (line (pt 224 16)(pt 224 104)(line_width 1)) (line (pt 88 24)(pt 136 48)(line_width 1)) (line (pt 136 64)(pt 136 48)(line_width 1)) (line (pt 88 88)(pt 136 64)(line_width 1)) (line (pt 88 24)(pt 88 88)(line_width 1)) (line (pt 16 40)(pt 88 40)(line_width 1)) (line (pt 16 56)(pt 88 56)(line_width 1)) (line (pt 136 56)(pt 224 56)(line_width 1)) (line (pt 16 72)(pt 88 72)(line_width 1)) (line (pt 16 72)(pt 88 72)(line_width 1)) (line (pt 16 96)(pt 104 96)(line_width 1)) (line (pt 104 96)(pt 104 80)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/accum32.cmp000077500000000000000000000031771224274632000202020ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. component accum32 PORT ( data : IN STD_LOGIC_VECTOR (31 DOWNTO 0); clock : IN STD_LOGIC := '0'; clken : IN STD_LOGIC := '1'; aclr : IN STD_LOGIC := '0'; result : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/accum32.inc000077500000000000000000000027521224274632000201720ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. FUNCTION accum32 ( data[31..0], clock, clken, aclr ) RETURNS ( result[31..0] ); uhd-3.5.5/fpga/usrp1/megacells/accum32.v000077500000000000000000000563771224274632000177020ustar00rootroot00000000000000// megafunction wizard: %ALTACCUMULATE%CBX% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altaccumulate // ============================================================ // File Name: accum32.v // Megafunction Name(s): // altaccumulate // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // ************************************************************ //Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. //altaccumulate DEVICE_FAMILY=Cyclone LPM_REPRESENTATION=SIGNED WIDTH_IN=32 WIDTH_OUT=32 aclr clken clock data result //VERSION_BEGIN 3.0 cbx_altaccumulate 2003:04:08:16:04:48:SJ cbx_mgl 2003:06:11:11:00:44:SJ cbx_stratix 2003:05:16:10:26:50:SJ VERSION_END //synthesis_resources = lut 32 module accum32_accum_nta ( aclr, clken, clock, data, result) /* synthesis synthesis_clearbox=1 */; input aclr; input clken; input clock; input [31:0] data; output [31:0] result; wire [0:0] wire_acc_cella_0cout; wire [0:0] wire_acc_cella_1cout; wire [0:0] wire_acc_cella_2cout; wire [0:0] wire_acc_cella_3cout; wire [0:0] wire_acc_cella_4cout; wire [0:0] wire_acc_cella_5cout; wire [0:0] wire_acc_cella_6cout; wire [0:0] wire_acc_cella_7cout; wire [0:0] wire_acc_cella_8cout; wire [0:0] wire_acc_cella_9cout; wire [0:0] wire_acc_cella_10cout; wire [0:0] wire_acc_cella_11cout; wire [0:0] wire_acc_cella_12cout; wire [0:0] wire_acc_cella_13cout; wire [0:0] wire_acc_cella_14cout; wire [0:0] wire_acc_cella_15cout; wire [0:0] wire_acc_cella_16cout; wire [0:0] wire_acc_cella_17cout; wire [0:0] wire_acc_cella_18cout; wire [0:0] wire_acc_cella_19cout; wire [0:0] wire_acc_cella_20cout; wire [0:0] wire_acc_cella_21cout; wire [0:0] wire_acc_cella_22cout; wire [0:0] wire_acc_cella_23cout; wire [0:0] wire_acc_cella_24cout; wire [0:0] wire_acc_cella_25cout; wire [0:0] wire_acc_cella_26cout; wire [0:0] wire_acc_cella_27cout; wire [0:0] wire_acc_cella_28cout; wire [0:0] wire_acc_cella_29cout; wire [0:0] wire_acc_cella_30cout; wire [31:0] wire_acc_cella_dataa; wire [31:0] wire_acc_cella_datab; wire [31:0] wire_acc_cella_datac; wire [31:0] wire_acc_cella_regout; wire sload; stratix_lcell acc_cella_0 ( .aclr(aclr), .cin(1'b0), .clk(clock), .cout(wire_acc_cella_0cout[0:0]), .dataa(wire_acc_cella_dataa[0:0]), .datab(wire_acc_cella_datab[0:0]), .datac(wire_acc_cella_datac[0:0]), .ena(clken), .regout(wire_acc_cella_regout[0:0]), .sload(sload)); defparam acc_cella_0.cin_used = "true", acc_cella_0.lut_mask = "96e8", acc_cella_0.operation_mode = "arithmetic", acc_cella_0.sum_lutc_input = "cin", acc_cella_0.synch_mode = "on", acc_cella_0.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_1 ( .aclr(aclr), .cin(wire_acc_cella_0cout[0:0]), .clk(clock), .cout(wire_acc_cella_1cout[0:0]), .dataa(wire_acc_cella_dataa[1:1]), .datab(wire_acc_cella_datab[1:1]), .datac(wire_acc_cella_datac[1:1]), .ena(clken), .regout(wire_acc_cella_regout[1:1]), .sload(sload)); defparam acc_cella_1.cin_used = "true", acc_cella_1.lut_mask = "96e8", acc_cella_1.operation_mode = "arithmetic", acc_cella_1.sum_lutc_input = "cin", acc_cella_1.synch_mode = "on", acc_cella_1.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_2 ( .aclr(aclr), .cin(wire_acc_cella_1cout[0:0]), .clk(clock), .cout(wire_acc_cella_2cout[0:0]), .dataa(wire_acc_cella_dataa[2:2]), .datab(wire_acc_cella_datab[2:2]), .datac(wire_acc_cella_datac[2:2]), .ena(clken), .regout(wire_acc_cella_regout[2:2]), .sload(sload)); defparam acc_cella_2.cin_used = "true", acc_cella_2.lut_mask = "96e8", acc_cella_2.operation_mode = "arithmetic", acc_cella_2.sum_lutc_input = "cin", acc_cella_2.synch_mode = "on", acc_cella_2.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_3 ( .aclr(aclr), .cin(wire_acc_cella_2cout[0:0]), .clk(clock), .cout(wire_acc_cella_3cout[0:0]), .dataa(wire_acc_cella_dataa[3:3]), .datab(wire_acc_cella_datab[3:3]), .datac(wire_acc_cella_datac[3:3]), .ena(clken), .regout(wire_acc_cella_regout[3:3]), .sload(sload)); defparam acc_cella_3.cin_used = "true", acc_cella_3.lut_mask = "96e8", acc_cella_3.operation_mode = "arithmetic", acc_cella_3.sum_lutc_input = "cin", acc_cella_3.synch_mode = "on", acc_cella_3.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_4 ( .aclr(aclr), .cin(wire_acc_cella_3cout[0:0]), .clk(clock), .cout(wire_acc_cella_4cout[0:0]), .dataa(wire_acc_cella_dataa[4:4]), .datab(wire_acc_cella_datab[4:4]), .datac(wire_acc_cella_datac[4:4]), .ena(clken), .regout(wire_acc_cella_regout[4:4]), .sload(sload)); defparam acc_cella_4.cin_used = "true", acc_cella_4.lut_mask = "96e8", acc_cella_4.operation_mode = "arithmetic", acc_cella_4.sum_lutc_input = "cin", acc_cella_4.synch_mode = "on", acc_cella_4.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_5 ( .aclr(aclr), .cin(wire_acc_cella_4cout[0:0]), .clk(clock), .cout(wire_acc_cella_5cout[0:0]), .dataa(wire_acc_cella_dataa[5:5]), .datab(wire_acc_cella_datab[5:5]), .datac(wire_acc_cella_datac[5:5]), .ena(clken), .regout(wire_acc_cella_regout[5:5]), .sload(sload)); defparam acc_cella_5.cin_used = "true", acc_cella_5.lut_mask = "96e8", acc_cella_5.operation_mode = "arithmetic", acc_cella_5.sum_lutc_input = "cin", acc_cella_5.synch_mode = "on", acc_cella_5.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_6 ( .aclr(aclr), .cin(wire_acc_cella_5cout[0:0]), .clk(clock), .cout(wire_acc_cella_6cout[0:0]), .dataa(wire_acc_cella_dataa[6:6]), .datab(wire_acc_cella_datab[6:6]), .datac(wire_acc_cella_datac[6:6]), .ena(clken), .regout(wire_acc_cella_regout[6:6]), .sload(sload)); defparam acc_cella_6.cin_used = "true", acc_cella_6.lut_mask = "96e8", acc_cella_6.operation_mode = "arithmetic", acc_cella_6.sum_lutc_input = "cin", acc_cella_6.synch_mode = "on", acc_cella_6.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_7 ( .aclr(aclr), .cin(wire_acc_cella_6cout[0:0]), .clk(clock), .cout(wire_acc_cella_7cout[0:0]), .dataa(wire_acc_cella_dataa[7:7]), .datab(wire_acc_cella_datab[7:7]), .datac(wire_acc_cella_datac[7:7]), .ena(clken), .regout(wire_acc_cella_regout[7:7]), .sload(sload)); defparam acc_cella_7.cin_used = "true", acc_cella_7.lut_mask = "96e8", acc_cella_7.operation_mode = "arithmetic", acc_cella_7.sum_lutc_input = "cin", acc_cella_7.synch_mode = "on", acc_cella_7.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_8 ( .aclr(aclr), .cin(wire_acc_cella_7cout[0:0]), .clk(clock), .cout(wire_acc_cella_8cout[0:0]), .dataa(wire_acc_cella_dataa[8:8]), .datab(wire_acc_cella_datab[8:8]), .datac(wire_acc_cella_datac[8:8]), .ena(clken), .regout(wire_acc_cella_regout[8:8]), .sload(sload)); defparam acc_cella_8.cin_used = "true", acc_cella_8.lut_mask = "96e8", acc_cella_8.operation_mode = "arithmetic", acc_cella_8.sum_lutc_input = "cin", acc_cella_8.synch_mode = "on", acc_cella_8.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_9 ( .aclr(aclr), .cin(wire_acc_cella_8cout[0:0]), .clk(clock), .cout(wire_acc_cella_9cout[0:0]), .dataa(wire_acc_cella_dataa[9:9]), .datab(wire_acc_cella_datab[9:9]), .datac(wire_acc_cella_datac[9:9]), .ena(clken), .regout(wire_acc_cella_regout[9:9]), .sload(sload)); defparam acc_cella_9.cin_used = "true", acc_cella_9.lut_mask = "96e8", acc_cella_9.operation_mode = "arithmetic", acc_cella_9.sum_lutc_input = "cin", acc_cella_9.synch_mode = "on", acc_cella_9.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_10 ( .aclr(aclr), .cin(wire_acc_cella_9cout[0:0]), .clk(clock), .cout(wire_acc_cella_10cout[0:0]), .dataa(wire_acc_cella_dataa[10:10]), .datab(wire_acc_cella_datab[10:10]), .datac(wire_acc_cella_datac[10:10]), .ena(clken), .regout(wire_acc_cella_regout[10:10]), .sload(sload)); defparam acc_cella_10.cin_used = "true", acc_cella_10.lut_mask = "96e8", acc_cella_10.operation_mode = "arithmetic", acc_cella_10.sum_lutc_input = "cin", acc_cella_10.synch_mode = "on", acc_cella_10.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_11 ( .aclr(aclr), .cin(wire_acc_cella_10cout[0:0]), .clk(clock), .cout(wire_acc_cella_11cout[0:0]), .dataa(wire_acc_cella_dataa[11:11]), .datab(wire_acc_cella_datab[11:11]), .datac(wire_acc_cella_datac[11:11]), .ena(clken), .regout(wire_acc_cella_regout[11:11]), .sload(sload)); defparam acc_cella_11.cin_used = "true", acc_cella_11.lut_mask = "96e8", acc_cella_11.operation_mode = "arithmetic", acc_cella_11.sum_lutc_input = "cin", acc_cella_11.synch_mode = "on", acc_cella_11.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_12 ( .aclr(aclr), .cin(wire_acc_cella_11cout[0:0]), .clk(clock), .cout(wire_acc_cella_12cout[0:0]), .dataa(wire_acc_cella_dataa[12:12]), .datab(wire_acc_cella_datab[12:12]), .datac(wire_acc_cella_datac[12:12]), .ena(clken), .regout(wire_acc_cella_regout[12:12]), .sload(sload)); defparam acc_cella_12.cin_used = "true", acc_cella_12.lut_mask = "96e8", acc_cella_12.operation_mode = "arithmetic", acc_cella_12.sum_lutc_input = "cin", acc_cella_12.synch_mode = "on", acc_cella_12.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_13 ( .aclr(aclr), .cin(wire_acc_cella_12cout[0:0]), .clk(clock), .cout(wire_acc_cella_13cout[0:0]), .dataa(wire_acc_cella_dataa[13:13]), .datab(wire_acc_cella_datab[13:13]), .datac(wire_acc_cella_datac[13:13]), .ena(clken), .regout(wire_acc_cella_regout[13:13]), .sload(sload)); defparam acc_cella_13.cin_used = "true", acc_cella_13.lut_mask = "96e8", acc_cella_13.operation_mode = "arithmetic", acc_cella_13.sum_lutc_input = "cin", acc_cella_13.synch_mode = "on", acc_cella_13.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_14 ( .aclr(aclr), .cin(wire_acc_cella_13cout[0:0]), .clk(clock), .cout(wire_acc_cella_14cout[0:0]), .dataa(wire_acc_cella_dataa[14:14]), .datab(wire_acc_cella_datab[14:14]), .datac(wire_acc_cella_datac[14:14]), .ena(clken), .regout(wire_acc_cella_regout[14:14]), .sload(sload)); defparam acc_cella_14.cin_used = "true", acc_cella_14.lut_mask = "96e8", acc_cella_14.operation_mode = "arithmetic", acc_cella_14.sum_lutc_input = "cin", acc_cella_14.synch_mode = "on", acc_cella_14.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_15 ( .aclr(aclr), .cin(wire_acc_cella_14cout[0:0]), .clk(clock), .cout(wire_acc_cella_15cout[0:0]), .dataa(wire_acc_cella_dataa[15:15]), .datab(wire_acc_cella_datab[15:15]), .datac(wire_acc_cella_datac[15:15]), .ena(clken), .regout(wire_acc_cella_regout[15:15]), .sload(sload)); defparam acc_cella_15.cin_used = "true", acc_cella_15.lut_mask = "96e8", acc_cella_15.operation_mode = "arithmetic", acc_cella_15.sum_lutc_input = "cin", acc_cella_15.synch_mode = "on", acc_cella_15.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_16 ( .aclr(aclr), .cin(wire_acc_cella_15cout[0:0]), .clk(clock), .cout(wire_acc_cella_16cout[0:0]), .dataa(wire_acc_cella_dataa[16:16]), .datab(wire_acc_cella_datab[16:16]), .datac(wire_acc_cella_datac[16:16]), .ena(clken), .regout(wire_acc_cella_regout[16:16]), .sload(sload)); defparam acc_cella_16.cin_used = "true", acc_cella_16.lut_mask = "96e8", acc_cella_16.operation_mode = "arithmetic", acc_cella_16.sum_lutc_input = "cin", acc_cella_16.synch_mode = "on", acc_cella_16.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_17 ( .aclr(aclr), .cin(wire_acc_cella_16cout[0:0]), .clk(clock), .cout(wire_acc_cella_17cout[0:0]), .dataa(wire_acc_cella_dataa[17:17]), .datab(wire_acc_cella_datab[17:17]), .datac(wire_acc_cella_datac[17:17]), .ena(clken), .regout(wire_acc_cella_regout[17:17]), .sload(sload)); defparam acc_cella_17.cin_used = "true", acc_cella_17.lut_mask = "96e8", acc_cella_17.operation_mode = "arithmetic", acc_cella_17.sum_lutc_input = "cin", acc_cella_17.synch_mode = "on", acc_cella_17.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_18 ( .aclr(aclr), .cin(wire_acc_cella_17cout[0:0]), .clk(clock), .cout(wire_acc_cella_18cout[0:0]), .dataa(wire_acc_cella_dataa[18:18]), .datab(wire_acc_cella_datab[18:18]), .datac(wire_acc_cella_datac[18:18]), .ena(clken), .regout(wire_acc_cella_regout[18:18]), .sload(sload)); defparam acc_cella_18.cin_used = "true", acc_cella_18.lut_mask = "96e8", acc_cella_18.operation_mode = "arithmetic", acc_cella_18.sum_lutc_input = "cin", acc_cella_18.synch_mode = "on", acc_cella_18.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_19 ( .aclr(aclr), .cin(wire_acc_cella_18cout[0:0]), .clk(clock), .cout(wire_acc_cella_19cout[0:0]), .dataa(wire_acc_cella_dataa[19:19]), .datab(wire_acc_cella_datab[19:19]), .datac(wire_acc_cella_datac[19:19]), .ena(clken), .regout(wire_acc_cella_regout[19:19]), .sload(sload)); defparam acc_cella_19.cin_used = "true", acc_cella_19.lut_mask = "96e8", acc_cella_19.operation_mode = "arithmetic", acc_cella_19.sum_lutc_input = "cin", acc_cella_19.synch_mode = "on", acc_cella_19.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_20 ( .aclr(aclr), .cin(wire_acc_cella_19cout[0:0]), .clk(clock), .cout(wire_acc_cella_20cout[0:0]), .dataa(wire_acc_cella_dataa[20:20]), .datab(wire_acc_cella_datab[20:20]), .datac(wire_acc_cella_datac[20:20]), .ena(clken), .regout(wire_acc_cella_regout[20:20]), .sload(sload)); defparam acc_cella_20.cin_used = "true", acc_cella_20.lut_mask = "96e8", acc_cella_20.operation_mode = "arithmetic", acc_cella_20.sum_lutc_input = "cin", acc_cella_20.synch_mode = "on", acc_cella_20.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_21 ( .aclr(aclr), .cin(wire_acc_cella_20cout[0:0]), .clk(clock), .cout(wire_acc_cella_21cout[0:0]), .dataa(wire_acc_cella_dataa[21:21]), .datab(wire_acc_cella_datab[21:21]), .datac(wire_acc_cella_datac[21:21]), .ena(clken), .regout(wire_acc_cella_regout[21:21]), .sload(sload)); defparam acc_cella_21.cin_used = "true", acc_cella_21.lut_mask = "96e8", acc_cella_21.operation_mode = "arithmetic", acc_cella_21.sum_lutc_input = "cin", acc_cella_21.synch_mode = "on", acc_cella_21.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_22 ( .aclr(aclr), .cin(wire_acc_cella_21cout[0:0]), .clk(clock), .cout(wire_acc_cella_22cout[0:0]), .dataa(wire_acc_cella_dataa[22:22]), .datab(wire_acc_cella_datab[22:22]), .datac(wire_acc_cella_datac[22:22]), .ena(clken), .regout(wire_acc_cella_regout[22:22]), .sload(sload)); defparam acc_cella_22.cin_used = "true", acc_cella_22.lut_mask = "96e8", acc_cella_22.operation_mode = "arithmetic", acc_cella_22.sum_lutc_input = "cin", acc_cella_22.synch_mode = "on", acc_cella_22.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_23 ( .aclr(aclr), .cin(wire_acc_cella_22cout[0:0]), .clk(clock), .cout(wire_acc_cella_23cout[0:0]), .dataa(wire_acc_cella_dataa[23:23]), .datab(wire_acc_cella_datab[23:23]), .datac(wire_acc_cella_datac[23:23]), .ena(clken), .regout(wire_acc_cella_regout[23:23]), .sload(sload)); defparam acc_cella_23.cin_used = "true", acc_cella_23.lut_mask = "96e8", acc_cella_23.operation_mode = "arithmetic", acc_cella_23.sum_lutc_input = "cin", acc_cella_23.synch_mode = "on", acc_cella_23.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_24 ( .aclr(aclr), .cin(wire_acc_cella_23cout[0:0]), .clk(clock), .cout(wire_acc_cella_24cout[0:0]), .dataa(wire_acc_cella_dataa[24:24]), .datab(wire_acc_cella_datab[24:24]), .datac(wire_acc_cella_datac[24:24]), .ena(clken), .regout(wire_acc_cella_regout[24:24]), .sload(sload)); defparam acc_cella_24.cin_used = "true", acc_cella_24.lut_mask = "96e8", acc_cella_24.operation_mode = "arithmetic", acc_cella_24.sum_lutc_input = "cin", acc_cella_24.synch_mode = "on", acc_cella_24.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_25 ( .aclr(aclr), .cin(wire_acc_cella_24cout[0:0]), .clk(clock), .cout(wire_acc_cella_25cout[0:0]), .dataa(wire_acc_cella_dataa[25:25]), .datab(wire_acc_cella_datab[25:25]), .datac(wire_acc_cella_datac[25:25]), .ena(clken), .regout(wire_acc_cella_regout[25:25]), .sload(sload)); defparam acc_cella_25.cin_used = "true", acc_cella_25.lut_mask = "96e8", acc_cella_25.operation_mode = "arithmetic", acc_cella_25.sum_lutc_input = "cin", acc_cella_25.synch_mode = "on", acc_cella_25.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_26 ( .aclr(aclr), .cin(wire_acc_cella_25cout[0:0]), .clk(clock), .cout(wire_acc_cella_26cout[0:0]), .dataa(wire_acc_cella_dataa[26:26]), .datab(wire_acc_cella_datab[26:26]), .datac(wire_acc_cella_datac[26:26]), .ena(clken), .regout(wire_acc_cella_regout[26:26]), .sload(sload)); defparam acc_cella_26.cin_used = "true", acc_cella_26.lut_mask = "96e8", acc_cella_26.operation_mode = "arithmetic", acc_cella_26.sum_lutc_input = "cin", acc_cella_26.synch_mode = "on", acc_cella_26.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_27 ( .aclr(aclr), .cin(wire_acc_cella_26cout[0:0]), .clk(clock), .cout(wire_acc_cella_27cout[0:0]), .dataa(wire_acc_cella_dataa[27:27]), .datab(wire_acc_cella_datab[27:27]), .datac(wire_acc_cella_datac[27:27]), .ena(clken), .regout(wire_acc_cella_regout[27:27]), .sload(sload)); defparam acc_cella_27.cin_used = "true", acc_cella_27.lut_mask = "96e8", acc_cella_27.operation_mode = "arithmetic", acc_cella_27.sum_lutc_input = "cin", acc_cella_27.synch_mode = "on", acc_cella_27.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_28 ( .aclr(aclr), .cin(wire_acc_cella_27cout[0:0]), .clk(clock), .cout(wire_acc_cella_28cout[0:0]), .dataa(wire_acc_cella_dataa[28:28]), .datab(wire_acc_cella_datab[28:28]), .datac(wire_acc_cella_datac[28:28]), .ena(clken), .regout(wire_acc_cella_regout[28:28]), .sload(sload)); defparam acc_cella_28.cin_used = "true", acc_cella_28.lut_mask = "96e8", acc_cella_28.operation_mode = "arithmetic", acc_cella_28.sum_lutc_input = "cin", acc_cella_28.synch_mode = "on", acc_cella_28.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_29 ( .aclr(aclr), .cin(wire_acc_cella_28cout[0:0]), .clk(clock), .cout(wire_acc_cella_29cout[0:0]), .dataa(wire_acc_cella_dataa[29:29]), .datab(wire_acc_cella_datab[29:29]), .datac(wire_acc_cella_datac[29:29]), .ena(clken), .regout(wire_acc_cella_regout[29:29]), .sload(sload)); defparam acc_cella_29.cin_used = "true", acc_cella_29.lut_mask = "96e8", acc_cella_29.operation_mode = "arithmetic", acc_cella_29.sum_lutc_input = "cin", acc_cella_29.synch_mode = "on", acc_cella_29.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_30 ( .aclr(aclr), .cin(wire_acc_cella_29cout[0:0]), .clk(clock), .cout(wire_acc_cella_30cout[0:0]), .dataa(wire_acc_cella_dataa[30:30]), .datab(wire_acc_cella_datab[30:30]), .datac(wire_acc_cella_datac[30:30]), .ena(clken), .regout(wire_acc_cella_regout[30:30]), .sload(sload)); defparam acc_cella_30.cin_used = "true", acc_cella_30.lut_mask = "96e8", acc_cella_30.operation_mode = "arithmetic", acc_cella_30.sum_lutc_input = "cin", acc_cella_30.synch_mode = "on", acc_cella_30.lpm_type = "stratix_lcell"; stratix_lcell acc_cella_31 ( .aclr(aclr), .cin(wire_acc_cella_30cout[0:0]), .clk(clock), .dataa(wire_acc_cella_dataa[31:31]), .datab(wire_acc_cella_datab[31:31]), .datac(wire_acc_cella_datac[31:31]), .ena(clken), .regout(wire_acc_cella_regout[31:31]), .sload(sload)); defparam acc_cella_31.cin_used = "true", acc_cella_31.lut_mask = "9696", acc_cella_31.operation_mode = "normal", acc_cella_31.sum_lutc_input = "cin", acc_cella_31.synch_mode = "on", acc_cella_31.lpm_type = "stratix_lcell"; assign wire_acc_cella_dataa = data, wire_acc_cella_datab = wire_acc_cella_regout, wire_acc_cella_datac = data; assign result = wire_acc_cella_regout, sload = 1'b0; endmodule //accum32_accum_nta //VALID FILE module accum32 ( data, clock, clken, aclr, result)/* synthesis synthesis_clearbox = 1 */; input [31:0] data; input clock; input clken; input aclr; output [31:0] result; wire [31:0] sub_wire0; wire [31:0] result = sub_wire0[31:0]; accum32_accum_nta accum32_accum_nta_component ( .clken (clken), .aclr (aclr), .clock (clock), .data (data), .result (sub_wire0)); endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: WIDTH_IN NUMERIC "32" // Retrieval info: PRIVATE: WIDTH_OUT NUMERIC "32" // Retrieval info: PRIVATE: LPM_REPRESENTATION NUMERIC "0" // Retrieval info: PRIVATE: SLOAD NUMERIC "0" // Retrieval info: PRIVATE: ADD_SUB NUMERIC "0" // Retrieval info: PRIVATE: CIN NUMERIC "0" // Retrieval info: PRIVATE: CLKEN NUMERIC "1" // Retrieval info: PRIVATE: ACLR NUMERIC "1" // Retrieval info: PRIVATE: COUT NUMERIC "0" // Retrieval info: PRIVATE: OVERFLOW NUMERIC "0" // Retrieval info: PRIVATE: LATENCY NUMERIC "0" // Retrieval info: PRIVATE: EXTRA_LATENCY NUMERIC "0" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: WIDTH_IN NUMERIC "32" // Retrieval info: CONSTANT: WIDTH_OUT NUMERIC "32" // Retrieval info: CONSTANT: LPM_REPRESENTATION STRING "SIGNED" // Retrieval info: CONSTANT: LPM_TYPE STRING "altaccumulate" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: data 0 0 32 0 INPUT NODEFVAL data[31..0] // Retrieval info: USED_PORT: result 0 0 32 0 OUTPUT NODEFVAL result[31..0] // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT GND clock // Retrieval info: USED_PORT: clken 0 0 0 0 INPUT VCC clken // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: CONNECT: @data 0 0 32 0 data 0 0 32 0 // Retrieval info: CONNECT: result 0 0 32 0 @result 0 0 32 0 // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: @clken 0 0 0 0 clken 0 0 0 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all uhd-3.5.5/fpga/usrp1/megacells/accum32_bb.v000077500000000000000000000031321224274632000203220ustar00rootroot00000000000000//Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module accum32 ( data, clock, clken, aclr, result)/* synthesis synthesis_clearbox = 1 */; input [31:0] data; input clock; input clken; input aclr; output [31:0] result; endmodule uhd-3.5.5/fpga/usrp1/megacells/accum32_inst.v000077500000000000000000000002131224274632000207110ustar00rootroot00000000000000accum32 accum32_inst ( .data ( data_sig ), .clock ( clock_sig ), .clken ( clken_sig ), .aclr ( aclr_sig ), .result ( result_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/add32.bsf000077500000000000000000000053471224274632000176360ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2003 Altera Corporation Any megafunction design, and related netlist (encrypted or decrypted), support information, device programming or simulation file, and any other associated documentation or information provided by Altera or a partner under Altera's Megafunction Partnership Program may be used only to program PLD devices (but not masked PLD devices) from Altera. Any other use of such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information is prohibited for any other purpose, including, but not limited to modification, reverse engineering, de-compiling, or use with any other silicon devices, unless such use is explicitly licensed under a separate agreement with Altera or a megafunction partner. Title to the intellectual property, including patents, copyrights, trademarks, trade secrets, or maskworks, embodied in any such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information provided by Altera or a megafunction partner, remains with Altera, the megafunction partner, or their respective licensors. No other licenses, including any licenses needed under any third party's intellectual property, are provided herein. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 160 96) (text "add32" (rect 58 2 111 21)(font "Arial" (font_size 10))) (text "inst" (rect 8 77 31 92)(font "Arial" )) (port (pt 0 40) (input) (text "dataa[7..0]" (rect 0 0 73 16)(font "Arial" (font_size 8))) (text "dataa[7..0]" (rect 4 24 66 40)(font "Arial" (font_size 8))) (line (pt 0 40)(pt 64 40)(line_width 3)) ) (port (pt 0 72) (input) (text "datab[7..0]" (rect 0 0 73 16)(font "Arial" (font_size 8))) (text "datab[7..0]" (rect 4 56 66 72)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 64 72)(line_width 3)) ) (port (pt 160 56) (output) (text "result[7..0]" (rect 0 0 73 16)(font "Arial" (font_size 8))) (text "result[7..0]" (rect 95 40 157 56)(font "Arial" (font_size 8))) (line (pt 160 56)(pt 96 56)(line_width 3)) ) (drawing (text "A" (rect 66 32 75 48)(font "Arial" (font_size 8))) (text "B" (rect 66 64 75 80)(font "Arial" (font_size 8))) (text "A+B" (rect 68 48 94 64)(font "Arial" (font_size 8))) (line (pt 64 32)(pt 96 40)(line_width 1)) (line (pt 96 40)(pt 96 72)(line_width 1)) (line (pt 96 72)(pt 64 80)(line_width 1)) (line (pt 64 80)(pt 64 32)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/add32.cmp000077500000000000000000000031071224274632000176330ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. component add32 PORT ( dataa : IN STD_LOGIC_VECTOR (7 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (7 DOWNTO 0); result : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/add32.inc000077500000000000000000000027361224274632000176340ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. FUNCTION add32 ( dataa[7..0], datab[7..0] ) RETURNS ( result[7..0] ); uhd-3.5.5/fpga/usrp1/megacells/add32.v000077500000000000000000000205171224274632000173250ustar00rootroot00000000000000// megafunction wizard: %LPM_ADD_SUB%CBX% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: lpm_add_sub // ============================================================ // File Name: add32.v // Megafunction Name(s): // lpm_add_sub // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // ************************************************************ //Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. //lpm_add_sub DEVICE_FAMILY=Cyclone LPM_DIRECTION=ADD LPM_WIDTH=8 dataa datab result //VERSION_BEGIN 3.0 cbx_lpm_add_sub 2003:04:10:18:28:42:SJ cbx_mgl 2003:06:11:11:00:44:SJ cbx_stratix 2003:05:16:10:26:50:SJ VERSION_END //synthesis_resources = lut 8 module add32_add_sub_nq7 ( dataa, datab, result) /* synthesis synthesis_clearbox=1 */; input [7:0] dataa; input [7:0] datab; output [7:0] result; wire [7:0] wire_add_sub_cella_combout; wire [0:0] wire_add_sub_cella_0cout; wire [0:0] wire_add_sub_cella_1cout; wire [0:0] wire_add_sub_cella_2cout; wire [0:0] wire_add_sub_cella_3cout; wire [0:0] wire_add_sub_cella_4cout; wire [0:0] wire_add_sub_cella_5cout; wire [0:0] wire_add_sub_cella_6cout; wire [7:0] wire_add_sub_cella_dataa; wire [7:0] wire_add_sub_cella_datab; stratix_lcell add_sub_cella_0 ( .cin(1'b0), .combout(wire_add_sub_cella_combout[0:0]), .cout(wire_add_sub_cella_0cout[0:0]), .dataa(wire_add_sub_cella_dataa[0:0]), .datab(wire_add_sub_cella_datab[0:0])); defparam add_sub_cella_0.cin_used = "true", add_sub_cella_0.lut_mask = "96e8", add_sub_cella_0.operation_mode = "arithmetic", add_sub_cella_0.sum_lutc_input = "cin", add_sub_cella_0.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_1 ( .cin(wire_add_sub_cella_0cout[0:0]), .combout(wire_add_sub_cella_combout[1:1]), .cout(wire_add_sub_cella_1cout[0:0]), .dataa(wire_add_sub_cella_dataa[1:1]), .datab(wire_add_sub_cella_datab[1:1])); defparam add_sub_cella_1.cin_used = "true", add_sub_cella_1.lut_mask = "96e8", add_sub_cella_1.operation_mode = "arithmetic", add_sub_cella_1.sum_lutc_input = "cin", add_sub_cella_1.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_2 ( .cin(wire_add_sub_cella_1cout[0:0]), .combout(wire_add_sub_cella_combout[2:2]), .cout(wire_add_sub_cella_2cout[0:0]), .dataa(wire_add_sub_cella_dataa[2:2]), .datab(wire_add_sub_cella_datab[2:2])); defparam add_sub_cella_2.cin_used = "true", add_sub_cella_2.lut_mask = "96e8", add_sub_cella_2.operation_mode = "arithmetic", add_sub_cella_2.sum_lutc_input = "cin", add_sub_cella_2.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_3 ( .cin(wire_add_sub_cella_2cout[0:0]), .combout(wire_add_sub_cella_combout[3:3]), .cout(wire_add_sub_cella_3cout[0:0]), .dataa(wire_add_sub_cella_dataa[3:3]), .datab(wire_add_sub_cella_datab[3:3])); defparam add_sub_cella_3.cin_used = "true", add_sub_cella_3.lut_mask = "96e8", add_sub_cella_3.operation_mode = "arithmetic", add_sub_cella_3.sum_lutc_input = "cin", add_sub_cella_3.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_4 ( .cin(wire_add_sub_cella_3cout[0:0]), .combout(wire_add_sub_cella_combout[4:4]), .cout(wire_add_sub_cella_4cout[0:0]), .dataa(wire_add_sub_cella_dataa[4:4]), .datab(wire_add_sub_cella_datab[4:4])); defparam add_sub_cella_4.cin_used = "true", add_sub_cella_4.lut_mask = "96e8", add_sub_cella_4.operation_mode = "arithmetic", add_sub_cella_4.sum_lutc_input = "cin", add_sub_cella_4.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_5 ( .cin(wire_add_sub_cella_4cout[0:0]), .combout(wire_add_sub_cella_combout[5:5]), .cout(wire_add_sub_cella_5cout[0:0]), .dataa(wire_add_sub_cella_dataa[5:5]), .datab(wire_add_sub_cella_datab[5:5])); defparam add_sub_cella_5.cin_used = "true", add_sub_cella_5.lut_mask = "96e8", add_sub_cella_5.operation_mode = "arithmetic", add_sub_cella_5.sum_lutc_input = "cin", add_sub_cella_5.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_6 ( .cin(wire_add_sub_cella_5cout[0:0]), .combout(wire_add_sub_cella_combout[6:6]), .cout(wire_add_sub_cella_6cout[0:0]), .dataa(wire_add_sub_cella_dataa[6:6]), .datab(wire_add_sub_cella_datab[6:6])); defparam add_sub_cella_6.cin_used = "true", add_sub_cella_6.lut_mask = "96e8", add_sub_cella_6.operation_mode = "arithmetic", add_sub_cella_6.sum_lutc_input = "cin", add_sub_cella_6.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_7 ( .cin(wire_add_sub_cella_6cout[0:0]), .combout(wire_add_sub_cella_combout[7:7]), .dataa(wire_add_sub_cella_dataa[7:7]), .datab(wire_add_sub_cella_datab[7:7])); defparam add_sub_cella_7.cin_used = "true", add_sub_cella_7.lut_mask = "9696", add_sub_cella_7.operation_mode = "normal", add_sub_cella_7.sum_lutc_input = "cin", add_sub_cella_7.lpm_type = "stratix_lcell"; assign wire_add_sub_cella_dataa = dataa, wire_add_sub_cella_datab = datab; assign result = wire_add_sub_cella_combout; endmodule //add32_add_sub_nq7 //VALID FILE module add32 ( dataa, datab, result)/* synthesis synthesis_clearbox = 1 */; input [7:0] dataa; input [7:0] datab; output [7:0] result; wire [7:0] sub_wire0; wire [7:0] result = sub_wire0[7:0]; add32_add_sub_nq7 add32_add_sub_nq7_component ( .dataa (dataa), .datab (datab), .result (sub_wire0)); endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: nBit NUMERIC "8" // Retrieval info: PRIVATE: Function NUMERIC "0" // Retrieval info: PRIVATE: WhichConstant NUMERIC "0" // Retrieval info: PRIVATE: ConstantA NUMERIC "0" // Retrieval info: PRIVATE: ConstantB NUMERIC "0" // Retrieval info: PRIVATE: ValidCtA NUMERIC "0" // Retrieval info: PRIVATE: ValidCtB NUMERIC "0" // Retrieval info: PRIVATE: CarryIn NUMERIC "0" // Retrieval info: PRIVATE: CarryOut NUMERIC "0" // Retrieval info: PRIVATE: Overflow NUMERIC "0" // Retrieval info: PRIVATE: Latency NUMERIC "0" // Retrieval info: PRIVATE: aclr NUMERIC "0" // Retrieval info: PRIVATE: clken NUMERIC "0" // Retrieval info: PRIVATE: LPM_PIPELINE NUMERIC "0" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "8" // Retrieval info: CONSTANT: LPM_DIRECTION STRING "ADD" // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_ADD_SUB" // Retrieval info: CONSTANT: LPM_HINT STRING "ONE_INPUT_IS_CONSTANT=NO" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: result 0 0 8 0 OUTPUT NODEFVAL result[7..0] // Retrieval info: USED_PORT: dataa 0 0 8 0 INPUT NODEFVAL dataa[7..0] // Retrieval info: USED_PORT: datab 0 0 8 0 INPUT NODEFVAL datab[7..0] // Retrieval info: CONNECT: result 0 0 8 0 @result 0 0 8 0 // Retrieval info: CONNECT: @dataa 0 0 8 0 dataa 0 0 8 0 // Retrieval info: CONNECT: @datab 0 0 8 0 datab 0 0 8 0 // Retrieval info: LIBRARY: lpm lpm.lpm_components.all uhd-3.5.5/fpga/usrp1/megacells/add32_bb.v000077500000000000000000000030571224274632000177700ustar00rootroot00000000000000//Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module add32 ( dataa, datab, result)/* synthesis synthesis_clearbox = 1 */; input [7:0] dataa; input [7:0] datab; output [7:0] result; endmodule uhd-3.5.5/fpga/usrp1/megacells/add32_inst.v000077500000000000000000000001351224274632000203540ustar00rootroot00000000000000add32 add32_inst ( .dataa ( dataa_sig ), .datab ( datab_sig ), .result ( result_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/addsub16.bsf000077500000000000000000000074571224274632000203560ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2003 Altera Corporation Any megafunction design, and related netlist (encrypted or decrypted), support information, device programming or simulation file, and any other associated documentation or information provided by Altera or a partner under Altera's Megafunction Partnership Program may be used only to program PLD devices (but not masked PLD devices) from Altera. Any other use of such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information is prohibited for any other purpose, including, but not limited to modification, reverse engineering, de-compiling, or use with any other silicon devices, unless such use is explicitly licensed under a separate agreement with Altera or a megafunction partner. Title to the intellectual property, including patents, copyrights, trademarks, trade secrets, or maskworks, embodied in any such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information provided by Altera or a megafunction partner, remains with Altera, the megafunction partner, or their respective licensors. No other licenses, including any licenses needed under any third party's intellectual property, are provided herein. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 160 144) (text "addsub16" (rect 45 2 128 21)(font "Arial" (font_size 10))) (text "inst" (rect 8 125 31 140)(font "Arial" )) (port (pt 0 56) (input) (text "dataa[15..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "dataa[15..0]" (rect 4 40 73 56)(font "Arial" (font_size 8))) (line (pt 0 56)(pt 64 56)(line_width 3)) ) (port (pt 0 88) (input) (text "datab[15..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "datab[15..0]" (rect 4 72 73 88)(font "Arial" (font_size 8))) (line (pt 0 88)(pt 64 88)(line_width 3)) ) (port (pt 0 72) (input) (text "clock" (rect 0 0 36 16)(font "Arial" (font_size 8))) (text "clock" (rect 4 56 35 72)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 64 72)(line_width 1)) ) (port (pt 0 32) (input) (text "add_sub" (rect 0 0 57 16)(font "Arial" (font_size 8))) (text "add_sub" (rect 4 16 53 32)(font "Arial" (font_size 8))) (line (pt 0 32)(pt 80 32)(line_width 1)) ) (port (pt 0 112) (input) (text "clken" (rect 0 0 36 16)(font "Arial" (font_size 8))) (text "clken" (rect 4 96 35 112)(font "Arial" (font_size 8))) (line (pt 0 112)(pt 74 112)(line_width 1)) ) (port (pt 0 128) (input) (text "aclr" (rect 0 0 24 16)(font "Arial" (font_size 8))) (text "aclr" (rect 4 112 25 128)(font "Arial" (font_size 8))) (line (pt 0 128)(pt 85 128)(line_width 1)) ) (port (pt 160 72) (output) (text "result[15..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "result[15..0]" (rect 88 56 157 72)(font "Arial" (font_size 8))) (line (pt 160 72)(pt 96 72)(line_width 3)) ) (drawing (text "A" (rect 66 48 75 64)(font "Arial" (font_size 8))) (text "B" (rect 66 80 75 96)(font "Arial" (font_size 8))) (text "A+B/A-B" (rect 82 37 134 53)(font "Arial" (font_size 8))) (line (pt 64 48)(pt 96 56)(line_width 1)) (line (pt 96 56)(pt 96 88)(line_width 1)) (line (pt 96 88)(pt 64 96)(line_width 1)) (line (pt 64 96)(pt 64 48)(line_width 1)) (line (pt 80 32)(pt 80 52)(line_width 1)) (line (pt 106 40)(pt 125 40)(line_width 1)) (line (pt 74 112)(pt 74 93)(line_width 1)) (line (pt 85 128)(pt 85 90)(line_width 1)) (line (pt 64 66)(pt 70 72)(line_width 1)) (line (pt 70 72)(pt 64 78)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/addsub16.cmp000077500000000000000000000032661224274632000203550ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. component addsub16 PORT ( add_sub : IN STD_LOGIC ; dataa : IN STD_LOGIC_VECTOR (15 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (15 DOWNTO 0); clock : IN STD_LOGIC ; aclr : IN STD_LOGIC ; clken : IN STD_LOGIC ; result : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/addsub16.inc000077500000000000000000000030051224274632000203360ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. FUNCTION addsub16 ( add_sub, dataa[15..0], datab[15..0], clock, aclr, clken ) RETURNS ( result[15..0] ); uhd-3.5.5/fpga/usrp1/megacells/addsub16.v000077500000000000000000000350341224274632000200410ustar00rootroot00000000000000// megafunction wizard: %LPM_ADD_SUB%CBX% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: lpm_add_sub // ============================================================ // File Name: addsub16.v // Megafunction Name(s): // lpm_add_sub // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // ************************************************************ //Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. //lpm_add_sub DEVICE_FAMILY=Cyclone LPM_PIPELINE=1 LPM_WIDTH=16 aclr add_sub clken clock dataa datab result //VERSION_BEGIN 3.0 cbx_lpm_add_sub 2003:04:10:18:28:42:SJ cbx_mgl 2003:06:11:11:00:44:SJ cbx_stratix 2003:05:16:10:26:50:SJ VERSION_END //synthesis_resources = lut 17 module addsub16_add_sub_gp9 ( aclr, add_sub, clken, clock, dataa, datab, result) /* synthesis synthesis_clearbox=1 */; input aclr; input add_sub; input clken; input clock; input [15:0] dataa; input [15:0] datab; output [15:0] result; wire [0:0] wire_add_sub_cella_0cout; wire [0:0] wire_add_sub_cella_1cout; wire [0:0] wire_add_sub_cella_2cout; wire [0:0] wire_add_sub_cella_3cout; wire [0:0] wire_add_sub_cella_4cout; wire [0:0] wire_add_sub_cella_5cout; wire [0:0] wire_add_sub_cella_6cout; wire [0:0] wire_add_sub_cella_7cout; wire [0:0] wire_add_sub_cella_8cout; wire [0:0] wire_add_sub_cella_9cout; wire [0:0] wire_add_sub_cella_10cout; wire [0:0] wire_add_sub_cella_11cout; wire [0:0] wire_add_sub_cella_12cout; wire [0:0] wire_add_sub_cella_13cout; wire [0:0] wire_add_sub_cella_14cout; wire [15:0] wire_add_sub_cella_dataa; wire [15:0] wire_add_sub_cella_datab; wire [15:0] wire_add_sub_cella_regout; wire wire_strx_lcell1_cout; stratix_lcell add_sub_cella_0 ( .aclr(aclr), .cin(wire_strx_lcell1_cout), .clk(clock), .cout(wire_add_sub_cella_0cout[0:0]), .dataa(wire_add_sub_cella_dataa[0:0]), .datab(wire_add_sub_cella_datab[0:0]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[0:0])); defparam add_sub_cella_0.cin_used = "true", add_sub_cella_0.lut_mask = "96e8", add_sub_cella_0.operation_mode = "arithmetic", add_sub_cella_0.sum_lutc_input = "cin", add_sub_cella_0.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_1 ( .aclr(aclr), .cin(wire_add_sub_cella_0cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_1cout[0:0]), .dataa(wire_add_sub_cella_dataa[1:1]), .datab(wire_add_sub_cella_datab[1:1]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[1:1])); defparam add_sub_cella_1.cin_used = "true", add_sub_cella_1.lut_mask = "96e8", add_sub_cella_1.operation_mode = "arithmetic", add_sub_cella_1.sum_lutc_input = "cin", add_sub_cella_1.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_2 ( .aclr(aclr), .cin(wire_add_sub_cella_1cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_2cout[0:0]), .dataa(wire_add_sub_cella_dataa[2:2]), .datab(wire_add_sub_cella_datab[2:2]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[2:2])); defparam add_sub_cella_2.cin_used = "true", add_sub_cella_2.lut_mask = "96e8", add_sub_cella_2.operation_mode = "arithmetic", add_sub_cella_2.sum_lutc_input = "cin", add_sub_cella_2.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_3 ( .aclr(aclr), .cin(wire_add_sub_cella_2cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_3cout[0:0]), .dataa(wire_add_sub_cella_dataa[3:3]), .datab(wire_add_sub_cella_datab[3:3]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[3:3])); defparam add_sub_cella_3.cin_used = "true", add_sub_cella_3.lut_mask = "96e8", add_sub_cella_3.operation_mode = "arithmetic", add_sub_cella_3.sum_lutc_input = "cin", add_sub_cella_3.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_4 ( .aclr(aclr), .cin(wire_add_sub_cella_3cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_4cout[0:0]), .dataa(wire_add_sub_cella_dataa[4:4]), .datab(wire_add_sub_cella_datab[4:4]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[4:4])); defparam add_sub_cella_4.cin_used = "true", add_sub_cella_4.lut_mask = "96e8", add_sub_cella_4.operation_mode = "arithmetic", add_sub_cella_4.sum_lutc_input = "cin", add_sub_cella_4.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_5 ( .aclr(aclr), .cin(wire_add_sub_cella_4cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_5cout[0:0]), .dataa(wire_add_sub_cella_dataa[5:5]), .datab(wire_add_sub_cella_datab[5:5]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[5:5])); defparam add_sub_cella_5.cin_used = "true", add_sub_cella_5.lut_mask = "96e8", add_sub_cella_5.operation_mode = "arithmetic", add_sub_cella_5.sum_lutc_input = "cin", add_sub_cella_5.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_6 ( .aclr(aclr), .cin(wire_add_sub_cella_5cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_6cout[0:0]), .dataa(wire_add_sub_cella_dataa[6:6]), .datab(wire_add_sub_cella_datab[6:6]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[6:6])); defparam add_sub_cella_6.cin_used = "true", add_sub_cella_6.lut_mask = "96e8", add_sub_cella_6.operation_mode = "arithmetic", add_sub_cella_6.sum_lutc_input = "cin", add_sub_cella_6.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_7 ( .aclr(aclr), .cin(wire_add_sub_cella_6cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_7cout[0:0]), .dataa(wire_add_sub_cella_dataa[7:7]), .datab(wire_add_sub_cella_datab[7:7]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[7:7])); defparam add_sub_cella_7.cin_used = "true", add_sub_cella_7.lut_mask = "96e8", add_sub_cella_7.operation_mode = "arithmetic", add_sub_cella_7.sum_lutc_input = "cin", add_sub_cella_7.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_8 ( .aclr(aclr), .cin(wire_add_sub_cella_7cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_8cout[0:0]), .dataa(wire_add_sub_cella_dataa[8:8]), .datab(wire_add_sub_cella_datab[8:8]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[8:8])); defparam add_sub_cella_8.cin_used = "true", add_sub_cella_8.lut_mask = "96e8", add_sub_cella_8.operation_mode = "arithmetic", add_sub_cella_8.sum_lutc_input = "cin", add_sub_cella_8.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_9 ( .aclr(aclr), .cin(wire_add_sub_cella_8cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_9cout[0:0]), .dataa(wire_add_sub_cella_dataa[9:9]), .datab(wire_add_sub_cella_datab[9:9]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[9:9])); defparam add_sub_cella_9.cin_used = "true", add_sub_cella_9.lut_mask = "96e8", add_sub_cella_9.operation_mode = "arithmetic", add_sub_cella_9.sum_lutc_input = "cin", add_sub_cella_9.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_10 ( .aclr(aclr), .cin(wire_add_sub_cella_9cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_10cout[0:0]), .dataa(wire_add_sub_cella_dataa[10:10]), .datab(wire_add_sub_cella_datab[10:10]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[10:10])); defparam add_sub_cella_10.cin_used = "true", add_sub_cella_10.lut_mask = "96e8", add_sub_cella_10.operation_mode = "arithmetic", add_sub_cella_10.sum_lutc_input = "cin", add_sub_cella_10.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_11 ( .aclr(aclr), .cin(wire_add_sub_cella_10cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_11cout[0:0]), .dataa(wire_add_sub_cella_dataa[11:11]), .datab(wire_add_sub_cella_datab[11:11]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[11:11])); defparam add_sub_cella_11.cin_used = "true", add_sub_cella_11.lut_mask = "96e8", add_sub_cella_11.operation_mode = "arithmetic", add_sub_cella_11.sum_lutc_input = "cin", add_sub_cella_11.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_12 ( .aclr(aclr), .cin(wire_add_sub_cella_11cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_12cout[0:0]), .dataa(wire_add_sub_cella_dataa[12:12]), .datab(wire_add_sub_cella_datab[12:12]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[12:12])); defparam add_sub_cella_12.cin_used = "true", add_sub_cella_12.lut_mask = "96e8", add_sub_cella_12.operation_mode = "arithmetic", add_sub_cella_12.sum_lutc_input = "cin", add_sub_cella_12.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_13 ( .aclr(aclr), .cin(wire_add_sub_cella_12cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_13cout[0:0]), .dataa(wire_add_sub_cella_dataa[13:13]), .datab(wire_add_sub_cella_datab[13:13]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[13:13])); defparam add_sub_cella_13.cin_used = "true", add_sub_cella_13.lut_mask = "96e8", add_sub_cella_13.operation_mode = "arithmetic", add_sub_cella_13.sum_lutc_input = "cin", add_sub_cella_13.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_14 ( .aclr(aclr), .cin(wire_add_sub_cella_13cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_14cout[0:0]), .dataa(wire_add_sub_cella_dataa[14:14]), .datab(wire_add_sub_cella_datab[14:14]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[14:14])); defparam add_sub_cella_14.cin_used = "true", add_sub_cella_14.lut_mask = "96e8", add_sub_cella_14.operation_mode = "arithmetic", add_sub_cella_14.sum_lutc_input = "cin", add_sub_cella_14.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_15 ( .aclr(aclr), .cin(wire_add_sub_cella_14cout[0:0]), .clk(clock), .dataa(wire_add_sub_cella_dataa[15:15]), .datab(wire_add_sub_cella_datab[15:15]), .ena(clken), .inverta((~ add_sub)), .regout(wire_add_sub_cella_regout[15:15])); defparam add_sub_cella_15.cin_used = "true", add_sub_cella_15.lut_mask = "9696", add_sub_cella_15.operation_mode = "normal", add_sub_cella_15.sum_lutc_input = "cin", add_sub_cella_15.lpm_type = "stratix_lcell"; assign wire_add_sub_cella_dataa = datab, wire_add_sub_cella_datab = dataa; stratix_lcell strx_lcell1 ( .cout(wire_strx_lcell1_cout), .dataa(1'b0), .datab((~ add_sub)), .inverta((~ add_sub))); defparam strx_lcell1.cin_used = "false", strx_lcell1.lut_mask = "00cc", strx_lcell1.operation_mode = "arithmetic", strx_lcell1.lpm_type = "stratix_lcell"; assign result = wire_add_sub_cella_regout; endmodule //addsub16_add_sub_gp9 //VALID FILE module addsub16 ( add_sub, dataa, datab, clock, aclr, clken, result)/* synthesis synthesis_clearbox = 1 */; input add_sub; input [15:0] dataa; input [15:0] datab; input clock; input aclr; input clken; output [15:0] result; wire [15:0] sub_wire0; wire [15:0] result = sub_wire0[15:0]; addsub16_add_sub_gp9 addsub16_add_sub_gp9_component ( .dataa (dataa), .add_sub (add_sub), .datab (datab), .clken (clken), .aclr (aclr), .clock (clock), .result (sub_wire0)); endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: nBit NUMERIC "16" // Retrieval info: PRIVATE: Function NUMERIC "2" // Retrieval info: PRIVATE: WhichConstant NUMERIC "0" // Retrieval info: PRIVATE: ConstantA NUMERIC "0" // Retrieval info: PRIVATE: ConstantB NUMERIC "0" // Retrieval info: PRIVATE: ValidCtA NUMERIC "0" // Retrieval info: PRIVATE: ValidCtB NUMERIC "0" // Retrieval info: PRIVATE: CarryIn NUMERIC "0" // Retrieval info: PRIVATE: CarryOut NUMERIC "0" // Retrieval info: PRIVATE: Overflow NUMERIC "0" // Retrieval info: PRIVATE: Latency NUMERIC "1" // Retrieval info: PRIVATE: aclr NUMERIC "1" // Retrieval info: PRIVATE: clken NUMERIC "1" // Retrieval info: PRIVATE: LPM_PIPELINE NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_DIRECTION STRING "UNUSED" // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_ADD_SUB" // Retrieval info: CONSTANT: LPM_HINT STRING "ONE_INPUT_IS_CONSTANT=NO" // Retrieval info: CONSTANT: LPM_PIPELINE NUMERIC "1" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: add_sub 0 0 0 0 INPUT NODEFVAL add_sub // Retrieval info: USED_PORT: result 0 0 16 0 OUTPUT NODEFVAL result[15..0] // Retrieval info: USED_PORT: dataa 0 0 16 0 INPUT NODEFVAL dataa[15..0] // Retrieval info: USED_PORT: datab 0 0 16 0 INPUT NODEFVAL datab[15..0] // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL aclr // Retrieval info: USED_PORT: clken 0 0 0 0 INPUT NODEFVAL clken // Retrieval info: CONNECT: @add_sub 0 0 0 0 add_sub 0 0 0 0 // Retrieval info: CONNECT: result 0 0 16 0 @result 0 0 16 0 // Retrieval info: CONNECT: @dataa 0 0 16 0 dataa 0 0 16 0 // Retrieval info: CONNECT: @datab 0 0 16 0 datab 0 0 16 0 // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: CONNECT: @clken 0 0 0 0 clken 0 0 0 0 // Retrieval info: LIBRARY: lpm lpm.lpm_components.all uhd-3.5.5/fpga/usrp1/megacells/addsub16_bb.v000077500000000000000000000032271224274632000205030ustar00rootroot00000000000000//Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module addsub16 ( add_sub, dataa, datab, clock, aclr, clken, result)/* synthesis synthesis_clearbox = 1 */; input add_sub; input [15:0] dataa; input [15:0] datab; input clock; input aclr; input clken; output [15:0] result; endmodule uhd-3.5.5/fpga/usrp1/megacells/addsub16_inst.v000077500000000000000000000003011224274632000210630ustar00rootroot00000000000000addsub16 addsub16_inst ( .add_sub ( add_sub_sig ), .dataa ( dataa_sig ), .datab ( datab_sig ), .clock ( clock_sig ), .aclr ( aclr_sig ), .clken ( clken_sig ), .result ( result_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/bustri.bsf000077500000000000000000000053341224274632000202450ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2003 Altera Corporation Any megafunction design, and related netlist (encrypted or decrypted), support information, device programming or simulation file, and any other associated documentation or information provided by Altera or a partner under Altera's Megafunction Partnership Program may be used only to program PLD devices (but not masked PLD devices) from Altera. Any other use of such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information is prohibited for any other purpose, including, but not limited to modification, reverse engineering, de-compiling, or use with any other silicon devices, unless such use is explicitly licensed under a separate agreement with Altera or a megafunction partner. Title to the intellectual property, including patents, copyrights, trademarks, trade secrets, or maskworks, embodied in any such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information provided by Altera or a megafunction partner, remains with Altera, the megafunction partner, or their respective licensors. No other licenses, including any licenses needed under any third party's intellectual property, are provided herein. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 80 40) (text "bustri" (rect 24 1 61 17)(font "Arial" (font_size 10))) (text "inst" (rect 8 24 25 36)(font "Arial" )) (port (pt 40 40) (input) (text "enabledt" (rect 0 0 48 14)(font "Arial" (font_size 8))) (text "enabledt" (rect 40 -6 53 36)(font "Arial" (font_size 8))(invisible)) (line (pt 40 40)(pt 40 28)(line_width 1)) ) (port (pt 0 24) (input) (text "data[15..0]" (rect 0 0 60 14)(font "Arial" (font_size 8))) (text "data[15..0]" (rect -3 -27 10 24)(font "Arial" (font_size 8))(invisible)) (line (pt 0 24)(pt 32 24)(line_width 3)) ) (port (pt 80 24) (bidir) (text "tridata[15..0]" (rect 0 0 70 14)(font "Arial" (font_size 8))) (text "tridata[15..0]" (rect 84 -36 97 24)(font "Arial" (font_size 8))(invisible)) (line (pt 80 24)(pt 48 24)(line_width 3)) ) (drawing (text "16" (rect 61 25 71 37)(font "Arial" )) (text "16" (rect 13 25 23 37)(font "Arial" )) (line (pt 32 16)(pt 48 24)(line_width 1)) (line (pt 48 24)(pt 32 32)(line_width 1)) (line (pt 32 32)(pt 32 16)(line_width 1)) (line (pt 56 28)(pt 64 20)(line_width 1)) (line (pt 8 28)(pt 16 20)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/bustri.cmp000077500000000000000000000030741224274632000202510ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. component bustri PORT ( data : IN STD_LOGIC_VECTOR (15 DOWNTO 0); enabledt : IN STD_LOGIC ; tridata : INOUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/bustri.inc000077500000000000000000000027361224274632000202470ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. FUNCTION bustri ( data[15..0], enabledt ) RETURNS ( tridata[15..0] ); uhd-3.5.5/fpga/usrp1/megacells/bustri.v000077500000000000000000000057541224274632000177460ustar00rootroot00000000000000// megafunction wizard: %LPM_BUSTRI% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: lpm_bustri // ============================================================ // File Name: bustri.v // Megafunction Name(s): // lpm_bustri // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // ************************************************************ //Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module bustri ( data, enabledt, tridata); input [15:0] data; input enabledt; inout [15:0] tridata; lpm_bustri lpm_bustri_component ( .tridata (tridata), .enabledt (enabledt), .data (data)); defparam lpm_bustri_component.lpm_width = 16, lpm_bustri_component.lpm_type = "LPM_BUSTRI"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: nBit NUMERIC "16" // Retrieval info: PRIVATE: BiDir NUMERIC "0" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_BUSTRI" // Retrieval info: USED_PORT: tridata 0 0 16 0 BIDIR NODEFVAL tridata[15..0] // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: enabledt 0 0 0 0 INPUT NODEFVAL enabledt // Retrieval info: CONNECT: tridata 0 0 16 0 @tridata 0 0 16 0 // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: @enabledt 0 0 0 0 enabledt 0 0 0 0 // Retrieval info: LIBRARY: lpm lpm.lpm_components.all uhd-3.5.5/fpga/usrp1/megacells/bustri_bb.v000077500000000000000000000030141224274632000203740ustar00rootroot00000000000000//Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module bustri ( data, enabledt, tridata); input [15:0] data; input enabledt; inout [15:0] tridata; endmodule uhd-3.5.5/fpga/usrp1/megacells/bustri_inst.v000077500000000000000000000001451224274632000207700ustar00rootroot00000000000000bustri bustri_inst ( .data ( data_sig ), .enabledt ( enabledt_sig ), .tridata ( tridata_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/clk_doubler.v000066400000000000000000000216441224274632000207140ustar00rootroot00000000000000// megafunction wizard: %ALTPLL% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altpll // ============================================================ // File Name: clk_doubler.v // Megafunction Name(s): // altpll // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 4.2 Build 156 11/29/2004 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2004 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module clk_doubler ( inclk0, c0); input inclk0; output c0; wire [5:0] sub_wire0; wire [0:0] sub_wire4 = 1'h0; wire [0:0] sub_wire1 = sub_wire0[0:0]; wire c0 = sub_wire1; wire sub_wire2 = inclk0; wire [1:0] sub_wire3 = {sub_wire4, sub_wire2}; altpll altpll_component ( .inclk (sub_wire3), .clk (sub_wire0) // synopsys translate_off , .activeclock (), .areset (), .clkbad (), .clkena (), .clkloss (), .clkswitch (), .enable0 (), .enable1 (), .extclk (), .extclkena (), .fbin (), .locked (), .pfdena (), .pllena (), .scanaclr (), .scanclk (), .scandata (), .scandataout (), .scandone (), .scanread (), .scanwrite (), .sclkout0 (), .sclkout1 () // synopsys translate_on ); defparam altpll_component.clk0_duty_cycle = 50, altpll_component.lpm_type = "altpll", altpll_component.clk0_multiply_by = 2, altpll_component.inclk0_input_frequency = 15625, altpll_component.clk0_divide_by = 1, altpll_component.pll_type = "AUTO", altpll_component.intended_device_family = "Cyclone", altpll_component.operation_mode = "NORMAL", altpll_component.compensate_clock = "CLK0", altpll_component.clk0_phase_shift = "0"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: SPREAD_USE STRING "0" // Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" // Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" // Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" // Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "2" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" // Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" // Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "0" // Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0" // Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" // Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" // Retrieval info: PRIVATE: BANDWIDTH_USE_CUSTOM STRING "0" // Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" // Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" // Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" // Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" // Retrieval info: PRIVATE: USE_CLK0 STRING "1" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" // Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" // Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" // Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" // Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" // Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" // Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "e0" // Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "1" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" // Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" // Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" // Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" // Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "512.000" // Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" // Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" // Retrieval info: PRIVATE: PLL_ENA_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "64.000" // Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" // Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" // Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "100.000" // Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" // Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" // Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" // Retrieval info: PRIVATE: DEV_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LOCK_LOSS_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" // Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" // Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" // Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: DEVICE_FAMILY NUMERIC "11" // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" // Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "2" // Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "15625" // Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "1" // Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" // Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" // Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" // Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT VCC "c0" // Retrieval info: USED_PORT: @clk 0 0 6 0 OUTPUT VCC "@clk[5..0]" // Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT GND "inclk0" // Retrieval info: USED_PORT: @extclk 0 0 4 0 OUTPUT VCC "@extclk[3..0]" // Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 // Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 // Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.v TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.inc FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.cmp FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.bsf FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler_inst.v FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler_bb.v TRUE FALSE uhd-3.5.5/fpga/usrp1/megacells/clk_doubler_bb.v000066400000000000000000000172701224274632000213570ustar00rootroot00000000000000// megafunction wizard: %ALTPLL%VBB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altpll // ============================================================ // File Name: clk_doubler.v // Megafunction Name(s): // altpll // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 4.2 Build 156 11/29/2004 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2004 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module clk_doubler ( inclk0, c0); input inclk0; output c0; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: SPREAD_USE STRING "0" // Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" // Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" // Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" // Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "2" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" // Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" // Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "0" // Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0" // Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" // Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" // Retrieval info: PRIVATE: BANDWIDTH_USE_CUSTOM STRING "0" // Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" // Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" // Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" // Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" // Retrieval info: PRIVATE: USE_CLK0 STRING "1" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" // Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" // Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" // Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" // Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" // Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" // Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "e0" // Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "1" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" // Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" // Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" // Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" // Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "512.000" // Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" // Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" // Retrieval info: PRIVATE: PLL_ENA_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "64.000" // Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" // Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" // Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "100.000" // Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" // Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" // Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" // Retrieval info: PRIVATE: DEV_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LOCK_LOSS_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" // Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" // Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" // Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: DEVICE_FAMILY NUMERIC "11" // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" // Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "2" // Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "15625" // Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "1" // Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" // Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" // Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" // Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT VCC "c0" // Retrieval info: USED_PORT: @clk 0 0 6 0 OUTPUT VCC "@clk[5..0]" // Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT GND "inclk0" // Retrieval info: USED_PORT: @extclk 0 0 4 0 OUTPUT VCC "@extclk[3..0]" // Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 // Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 // Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.v TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.inc FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.cmp FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler.bsf FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler_inst.v FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL clk_doubler_bb.v TRUE FALSE uhd-3.5.5/fpga/usrp1/megacells/dspclkpll.v000066400000000000000000000257161224274632000204230ustar00rootroot00000000000000// megafunction wizard: %ALTPLL% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altpll // ============================================================ // File Name: dspclkpll.v // Megafunction Name(s): // altpll // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 4.0 Build 214 3/25/2004 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2004 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module dspclkpll ( inclk0, c0, c1); input inclk0; output c0; output c1; wire [5:0] sub_wire0; wire [0:0] sub_wire5 = 1'h0; wire [1:1] sub_wire2 = sub_wire0[1:1]; wire [0:0] sub_wire1 = sub_wire0[0:0]; wire c0 = sub_wire1; wire c1 = sub_wire2; wire sub_wire3 = inclk0; wire [1:0] sub_wire4 = {sub_wire5, sub_wire3}; altpll altpll_component ( .inclk (sub_wire4), .clk (sub_wire0) // synopsys translate_off , .fbin (), .pllena (), .clkswitch (), .areset (), .pfdena (), .clkena (), .extclkena (), .scanclk (), .scanaclr (), .scandata (), .scanread (), .scanwrite (), .extclk (), .clkbad (), .activeclock (), .locked (), .clkloss (), .scandataout (), .scandone (), .sclkout1 (), .sclkout0 (), .enable0 (), .enable1 () // synopsys translate_on ); defparam altpll_component.clk1_divide_by = 1, altpll_component.clk1_phase_shift = "0", altpll_component.clk0_duty_cycle = 50, altpll_component.lpm_type = "altpll", altpll_component.clk0_multiply_by = 1, altpll_component.inclk0_input_frequency = 15625, altpll_component.clk0_divide_by = 1, altpll_component.clk1_duty_cycle = 50, altpll_component.pll_type = "AUTO", altpll_component.clk1_multiply_by = 2, altpll_component.clk0_time_delay = "0", altpll_component.intended_device_family = "Cyclone", altpll_component.operation_mode = "NORMAL", altpll_component.compensate_clock = "CLK0", altpll_component.clk1_time_delay = "0", altpll_component.clk0_phase_shift = "0"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: SPREAD_USE STRING "0" // Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" // Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" // Retrieval info: PRIVATE: MIRROR_CLK1 STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT1 STRING "deg" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT1 STRING "MHz" // Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "0.00000000" // Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "1" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" // Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" // Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "0" // Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0" // Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT1 STRING "0.00000000" // Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "2" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "0" // Retrieval info: PRIVATE: TIME_SHIFT0 STRING "0.00000000" // Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" // Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" // Retrieval info: PRIVATE: BANDWIDTH_USE_CUSTOM STRING "0" // Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" // Retrieval info: PRIVATE: TIME_SHIFT1 STRING "0.00000000" // Retrieval info: PRIVATE: STICKY_CLK1 STRING "1" // Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" // Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" // Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" // Retrieval info: PRIVATE: USE_CLK0 STRING "1" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" // Retrieval info: PRIVATE: USE_CLK1 STRING "1" // Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" // Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" // Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" // Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_0 STRING "inclk;fbin;pllena;clkswitch;areset" // Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" // Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" // Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "e0" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_1 STRING "pfdena;clkena;extclkena;scanclk;scanaclr" // Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "1" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" // Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" // Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_2 STRING "scandata;scanread;scanwrite;clk;extclk" // Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "1" // Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" // Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "512.000" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_3 STRING "clkbad;activeclock;locked;clkloss;scandataout" // Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" // Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" // Retrieval info: PRIVATE: PLL_ENA_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "64.000" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_4 STRING "scandone;sclkout1;sclkout0;enable0;enable1" // Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" // Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" // Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "100.000" // Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" // Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" // Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" // Retrieval info: PRIVATE: DEV_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "100.000" // Retrieval info: PRIVATE: LOCK_LOSS_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" // Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" // Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: USE_CLKENA1 STRING "0" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT1 STRING "deg" // Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" // Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: DEVICE_FAMILY NUMERIC "11" // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "1" // Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" // Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" // Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "1" // Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "15625" // Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "1" // Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" // Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "2" // Retrieval info: CONSTANT: CLK0_TIME_DELAY STRING "0" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" // Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" // Retrieval info: CONSTANT: CLK1_TIME_DELAY STRING "0" // Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" // Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT VCC "c0" // Retrieval info: USED_PORT: @clk 0 0 6 0 OUTPUT VCC "@clk[5..0]" // Retrieval info: USED_PORT: c1 0 0 0 0 OUTPUT VCC "c1" // Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT GND "inclk0" // Retrieval info: USED_PORT: @extclk 0 0 4 0 OUTPUT VCC "@extclk[3..0]" // Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 // Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 // Retrieval info: CONNECT: c1 0 0 0 0 @clk 0 0 1 1 // Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 // Retrieval info: GEN_FILE: TYPE_NORMAL dspclkpll.v TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL dspclkpll.inc FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL dspclkpll.cmp FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL dspclkpll.bsf FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL dspclkpll_inst.v FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL dspclkpll_bb.v TRUE FALSE uhd-3.5.5/fpga/usrp1/megacells/dspclkpll_bb.v000066400000000000000000000027631224274632000210630ustar00rootroot00000000000000//Copyright (C) 1991-2004 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module dspclkpll ( inclk0, c0, c1); input inclk0; output c0; output c1; endmodule uhd-3.5.5/fpga/usrp1/megacells/fifo_1kx16.bsf000077500000000000000000000073531224274632000206150ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2006 Altera Corporation Your use of Altera Corporation's design tools, logic functions and other software and tools, and its AMPP partner logic functions, and any output files any of the foregoing (including device programming or simulation files), and any associated documentation or information are expressly subject to the terms and conditions of the Altera Program License Subscription Agreement, Altera MegaCore Function License Agreement, or other applicable license agreement, including, without limitation, that your use is for the sole purpose of programming logic devices manufactured by Altera and sold by Altera or its authorized distributors. Please refer to the applicable agreement for further details. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 160 160) (text "fifo_1kx16" (rect 51 1 119 17)(font "Arial" (font_size 10))) (text "inst" (rect 8 144 25 156)(font "Arial" )) (port (pt 0 32) (input) (text "data[15..0]" (rect 0 0 60 14)(font "Arial" (font_size 8))) (text "data[15..0]" (rect 20 26 71 39)(font "Arial" (font_size 8))) (line (pt 0 32)(pt 16 32)(line_width 3)) ) (port (pt 0 56) (input) (text "wrreq" (rect 0 0 35 14)(font "Arial" (font_size 8))) (text "wrreq" (rect 20 50 45 63)(font "Arial" (font_size 8))) (line (pt 0 56)(pt 16 56)(line_width 1)) ) (port (pt 0 72) (input) (text "rdreq" (rect 0 0 30 14)(font "Arial" (font_size 8))) (text "rdreq" (rect 20 66 44 79)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 16 72)(line_width 1)) ) (port (pt 0 96) (input) (text "clock" (rect 0 0 29 14)(font "Arial" (font_size 8))) (text "clock" (rect 26 90 49 103)(font "Arial" (font_size 8))) (line (pt 0 96)(pt 16 96)(line_width 1)) ) (port (pt 0 128) (input) (text "aclr" (rect 0 0 21 14)(font "Arial" (font_size 8))) (text "aclr" (rect 20 122 37 135)(font "Arial" (font_size 8))) (line (pt 0 128)(pt 16 128)(line_width 1)) ) (port (pt 160 32) (output) (text "q[15..0]" (rect 0 0 42 14)(font "Arial" (font_size 8))) (text "q[15..0]" (rect 105 26 141 39)(font "Arial" (font_size 8))) (line (pt 160 32)(pt 144 32)(line_width 3)) ) (port (pt 160 56) (output) (text "full" (rect 0 0 16 14)(font "Arial" (font_size 8))) (text "full" (rect 127 50 142 63)(font "Arial" (font_size 8))) (line (pt 160 56)(pt 144 56)(line_width 1)) ) (port (pt 160 72) (output) (text "empty" (rect 0 0 34 14)(font "Arial" (font_size 8))) (text "empty" (rect 112 66 141 79)(font "Arial" (font_size 8))) (line (pt 160 72)(pt 144 72)(line_width 1)) ) (port (pt 160 88) (output) (text "almost_empty" (rect 0 0 77 14)(font "Arial" (font_size 8))) (text "almost_empty" (rect 75 82 141 95)(font "Arial" (font_size 8))) (line (pt 160 88)(pt 144 88)(line_width 1)) ) (port (pt 160 104) (output) (text "usedw[9..0]" (rect 0 0 68 14)(font "Arial" (font_size 8))) (text "usedw[9..0]" (rect 83 98 136 111)(font "Arial" (font_size 8))) (line (pt 160 104)(pt 144 104)(line_width 3)) ) (drawing (text "16 bits x 1024 words" (rect 58 132 144 144)(font "Arial" )) (text "almost_empty < 504" (rect 58 122 144 134)(font "Arial" )) (line (pt 16 16)(pt 144 16)(line_width 1)) (line (pt 144 16)(pt 144 144)(line_width 1)) (line (pt 144 144)(pt 16 144)(line_width 1)) (line (pt 16 144)(pt 16 16)(line_width 1)) (line (pt 16 116)(pt 144 116)(line_width 1)) (line (pt 16 90)(pt 22 96)(line_width 1)) (line (pt 22 96)(pt 16 102)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/fifo_1kx16.cmp000077500000000000000000000022331224274632000206120ustar00rootroot00000000000000--Copyright (C) 1991-2006 Altera Corporation --Your use of Altera Corporation's design tools, logic functions --and other software and tools, and its AMPP partner logic --functions, and any output files any of the foregoing --(including device programming or simulation files), and any --associated documentation or information are expressly subject --to the terms and conditions of the Altera Program License --Subscription Agreement, Altera MegaCore Function License --Agreement, or other applicable license agreement, including, --without limitation, that your use is for the sole purpose of --programming logic devices manufactured by Altera and sold by --Altera or its authorized distributors. Please refer to the --applicable agreement for further details. component fifo_1kx16 PORT ( aclr : IN STD_LOGIC ; clock : IN STD_LOGIC ; data : IN STD_LOGIC_VECTOR (15 DOWNTO 0); rdreq : IN STD_LOGIC ; wrreq : IN STD_LOGIC ; almost_empty : OUT STD_LOGIC ; empty : OUT STD_LOGIC ; full : OUT STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (15 DOWNTO 0); usedw : OUT STD_LOGIC_VECTOR (9 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/fifo_1kx16.inc000077500000000000000000000016611224274632000206100ustar00rootroot00000000000000--Copyright (C) 1991-2006 Altera Corporation --Your use of Altera Corporation's design tools, logic functions --and other software and tools, and its AMPP partner logic --functions, and any output files any of the foregoing --(including device programming or simulation files), and any --associated documentation or information are expressly subject --to the terms and conditions of the Altera Program License --Subscription Agreement, Altera MegaCore Function License --Agreement, or other applicable license agreement, including, --without limitation, that your use is for the sole purpose of --programming logic devices manufactured by Altera and sold by --Altera or its authorized distributors. Please refer to the --applicable agreement for further details. FUNCTION fifo_1kx16 ( aclr, clock, data[15..0], rdreq, wrreq ) RETURNS ( almost_empty, empty, full, q[15..0], usedw[9..0] ); uhd-3.5.5/fpga/usrp1/megacells/fifo_1kx16.v000077500000000000000000000157251224274632000203120ustar00rootroot00000000000000// megafunction wizard: %FIFO% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: scfifo // ============================================================ // File Name: fifo_1kx16.v // Megafunction Name(s): // scfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.1 Build 213 01/19/2006 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2006 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module fifo_1kx16 ( aclr, clock, data, rdreq, wrreq, almost_empty, empty, full, q, usedw); input aclr; input clock; input [15:0] data; input rdreq; input wrreq; output almost_empty; output empty; output full; output [15:0] q; output [9:0] usedw; wire [9:0] sub_wire0; wire sub_wire1; wire sub_wire2; wire [15:0] sub_wire3; wire sub_wire4; wire [9:0] usedw = sub_wire0[9:0]; wire empty = sub_wire1; wire almost_empty = sub_wire2; wire [15:0] q = sub_wire3[15:0]; wire full = sub_wire4; scfifo scfifo_component ( .rdreq (rdreq), .aclr (aclr), .clock (clock), .wrreq (wrreq), .data (data), .usedw (sub_wire0), .empty (sub_wire1), .almost_empty (sub_wire2), .q (sub_wire3), .full (sub_wire4) // synopsys translate_off , .sclr (), .almost_full () // synopsys translate_on ); defparam scfifo_component.add_ram_output_register = "OFF", scfifo_component.almost_empty_value = 504, scfifo_component.intended_device_family = "Cyclone", scfifo_component.lpm_hint = "RAM_BLOCK_TYPE=M4K", scfifo_component.lpm_numwords = 1024, scfifo_component.lpm_showahead = "OFF", scfifo_component.lpm_type = "scfifo", scfifo_component.lpm_width = 16, scfifo_component.lpm_widthu = 10, scfifo_component.overflow_checking = "ON", scfifo_component.underflow_checking = "ON", scfifo_component.use_eab = "ON"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "1" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "504" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Clock NUMERIC "0" // Retrieval info: PRIVATE: Depth NUMERIC "1024" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "2" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: dc_aclr NUMERIC "0" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsUsedW NUMERIC "0" // Retrieval info: PRIVATE: sc_aclr NUMERIC "1" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsUsedW NUMERIC "0" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: ALMOST_EMPTY_VALUE NUMERIC "504" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_HINT STRING "RAM_BLOCK_TYPE=M4K" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "1024" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF" // Retrieval info: CONSTANT: LPM_TYPE STRING "scfifo" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "10" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL aclr // Retrieval info: USED_PORT: almost_empty 0 0 0 0 OUTPUT NODEFVAL almost_empty // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: empty 0 0 0 0 OUTPUT NODEFVAL empty // Retrieval info: USED_PORT: full 0 0 0 0 OUTPUT NODEFVAL full // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: usedw 0 0 10 0 OUTPUT NODEFVAL usedw[9..0] // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: full 0 0 0 0 @full 0 0 0 0 // Retrieval info: CONNECT: empty 0 0 0 0 @empty 0 0 0 0 // Retrieval info: CONNECT: usedw 0 0 10 0 @usedw 0 0 10 0 // Retrieval info: CONNECT: almost_empty 0 0 0 0 @almost_empty 0 0 0 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.inc TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.cmp TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.bsf TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_inst.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_waveforms.html FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_1kx16_bb.v000077500000000000000000000133501224274632000207450ustar00rootroot00000000000000// megafunction wizard: %FIFO%VBB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: scfifo // ============================================================ // File Name: fifo_1kx16.v // Megafunction Name(s): // scfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.1 Build 213 01/19/2006 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2006 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. module fifo_1kx16 ( aclr, clock, data, rdreq, wrreq, almost_empty, empty, full, q, usedw); input aclr; input clock; input [15:0] data; input rdreq; input wrreq; output almost_empty; output empty; output full; output [15:0] q; output [9:0] usedw; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "1" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "504" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Clock NUMERIC "0" // Retrieval info: PRIVATE: Depth NUMERIC "1024" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "2" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: dc_aclr NUMERIC "0" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsUsedW NUMERIC "0" // Retrieval info: PRIVATE: sc_aclr NUMERIC "1" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsUsedW NUMERIC "0" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: ALMOST_EMPTY_VALUE NUMERIC "504" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_HINT STRING "RAM_BLOCK_TYPE=M4K" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "1024" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF" // Retrieval info: CONSTANT: LPM_TYPE STRING "scfifo" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "10" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL aclr // Retrieval info: USED_PORT: almost_empty 0 0 0 0 OUTPUT NODEFVAL almost_empty // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: empty 0 0 0 0 OUTPUT NODEFVAL empty // Retrieval info: USED_PORT: full 0 0 0 0 OUTPUT NODEFVAL full // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: usedw 0 0 10 0 OUTPUT NODEFVAL usedw[9..0] // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: full 0 0 0 0 @full 0 0 0 0 // Retrieval info: CONNECT: empty 0 0 0 0 @empty 0 0 0 0 // Retrieval info: CONNECT: usedw 0 0 10 0 @usedw 0 0 10 0 // Retrieval info: CONNECT: almost_empty 0 0 0 0 @almost_empty 0 0 0 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.inc TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.cmp TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16.bsf TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_inst.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_waveforms.html FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_1kx16_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_1kx16_inst.v000077500000000000000000000004221224274632000213330ustar00rootroot00000000000000fifo_1kx16 fifo_1kx16_inst ( .aclr ( aclr_sig ), .clock ( clock_sig ), .data ( data_sig ), .rdreq ( rdreq_sig ), .wrreq ( wrreq_sig ), .almost_empty ( almost_empty_sig ), .empty ( empty_sig ), .full ( full_sig ), .q ( q_sig ), .usedw ( usedw_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/fifo_2k.v000066400000000000000000002574271224274632000177600ustar00rootroot00000000000000// megafunction wizard: %FIFO%CBX% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_2k.v // Megafunction Name(s): // dcfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.0 Build 168 06/22/2005 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2005 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. //dcfifo ADD_RAM_OUTPUT_REGISTER="OFF" CLOCKS_ARE_SYNCHRONIZED="FALSE" DEVICE_FAMILY="Cyclone" LPM_NUMWORDS=2048 LPM_SHOWAHEAD="ON" LPM_WIDTH=16 LPM_WIDTHU=11 OVERFLOW_CHECKING="OFF" UNDERFLOW_CHECKING="OFF" USE_EAB="ON" aclr data q rdclk rdempty rdreq rdusedw wrclk wrfull wrreq wrusedw //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_altdpram 2004:11:30:11:29:56:SJ cbx_altsyncram 2005:03:24:13:58:56:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_dcfifo 2005:03:07:17:11:14:SJ cbx_fifo_common 2004:12:13:14:26:24:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_lpm_counter 2005:02:02:04:37:10:SJ cbx_lpm_decode 2004:12:13:14:19:12:SJ cbx_lpm_mux 2004:12:13:14:16:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_scfifo 2005:03:10:10:52:20:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //a_gray2bin device_family="Cyclone" WIDTH=11 bin gray //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_mgl 2005:05:19:13:51:58:SJ VERSION_END //synthesis_resources = //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_a_gray2bin_8m4 ( bin, gray) /* synthesis synthesis_clearbox=1 */; output [10:0] bin; input [10:0] gray; wire xor0; wire xor1; wire xor2; wire xor3; wire xor4; wire xor5; wire xor6; wire xor7; wire xor8; wire xor9; assign bin = {gray[10], xor9, xor8, xor7, xor6, xor5, xor4, xor3, xor2, xor1, xor0}, xor0 = (gray[0] ^ xor1), xor1 = (gray[1] ^ xor2), xor2 = (gray[2] ^ xor3), xor3 = (gray[3] ^ xor4), xor4 = (gray[4] ^ xor5), xor5 = (gray[5] ^ xor6), xor6 = (gray[6] ^ xor7), xor7 = (gray[7] ^ xor8), xor8 = (gray[8] ^ xor9), xor9 = (gray[10] ^ gray[9]); endmodule //fifo_2k_a_gray2bin_8m4 //a_graycounter DEVICE_FAMILY="Cyclone" WIDTH=11 aclr clock cnt_en q //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 12 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_a_graycounter_726 ( aclr, clock, cnt_en, q) /* synthesis synthesis_clearbox=1 */; input aclr; input clock; input cnt_en; output [10:0] q; wire [0:0] wire_countera_0cout; wire [0:0] wire_countera_1cout; wire [0:0] wire_countera_2cout; wire [0:0] wire_countera_3cout; wire [0:0] wire_countera_4cout; wire [0:0] wire_countera_5cout; wire [0:0] wire_countera_6cout; wire [0:0] wire_countera_7cout; wire [0:0] wire_countera_8cout; wire [0:0] wire_countera_9cout; wire [10:0] wire_countera_regout; wire wire_parity_cout; wire wire_parity_regout; wire [10:0] power_modified_counter_values; wire sclr; wire updown; cyclone_lcell countera_0 ( .aclr(aclr), .cin(wire_parity_cout), .clk(clock), .combout(), .cout(wire_countera_0cout[0:0]), .dataa(cnt_en), .datab(wire_countera_regout[0:0]), .ena(1'b1), .regout(wire_countera_regout[0:0]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_0.cin_used = "true", countera_0.lut_mask = "c6a0", countera_0.operation_mode = "arithmetic", countera_0.sum_lutc_input = "cin", countera_0.synch_mode = "on", countera_0.lpm_type = "cyclone_lcell"; cyclone_lcell countera_1 ( .aclr(aclr), .cin(wire_countera_0cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_1cout[0:0]), .dataa(power_modified_counter_values[0]), .datab(power_modified_counter_values[1]), .ena(1'b1), .regout(wire_countera_regout[1:1]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_1.cin_used = "true", countera_1.lut_mask = "6c50", countera_1.operation_mode = "arithmetic", countera_1.sum_lutc_input = "cin", countera_1.synch_mode = "on", countera_1.lpm_type = "cyclone_lcell"; cyclone_lcell countera_2 ( .aclr(aclr), .cin(wire_countera_1cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_2cout[0:0]), .dataa(power_modified_counter_values[1]), .datab(power_modified_counter_values[2]), .ena(1'b1), .regout(wire_countera_regout[2:2]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_2.cin_used = "true", countera_2.lut_mask = "6c50", countera_2.operation_mode = "arithmetic", countera_2.sum_lutc_input = "cin", countera_2.synch_mode = "on", countera_2.lpm_type = "cyclone_lcell"; cyclone_lcell countera_3 ( .aclr(aclr), .cin(wire_countera_2cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_3cout[0:0]), .dataa(power_modified_counter_values[2]), .datab(power_modified_counter_values[3]), .ena(1'b1), .regout(wire_countera_regout[3:3]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_3.cin_used = "true", countera_3.lut_mask = "6c50", countera_3.operation_mode = "arithmetic", countera_3.sum_lutc_input = "cin", countera_3.synch_mode = "on", countera_3.lpm_type = "cyclone_lcell"; cyclone_lcell countera_4 ( .aclr(aclr), .cin(wire_countera_3cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_4cout[0:0]), .dataa(power_modified_counter_values[3]), .datab(power_modified_counter_values[4]), .ena(1'b1), .regout(wire_countera_regout[4:4]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_4.cin_used = "true", countera_4.lut_mask = "6c50", countera_4.operation_mode = "arithmetic", countera_4.sum_lutc_input = "cin", countera_4.synch_mode = "on", countera_4.lpm_type = "cyclone_lcell"; cyclone_lcell countera_5 ( .aclr(aclr), .cin(wire_countera_4cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_5cout[0:0]), .dataa(power_modified_counter_values[4]), .datab(power_modified_counter_values[5]), .ena(1'b1), .regout(wire_countera_regout[5:5]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_5.cin_used = "true", countera_5.lut_mask = "6c50", countera_5.operation_mode = "arithmetic", countera_5.sum_lutc_input = "cin", countera_5.synch_mode = "on", countera_5.lpm_type = "cyclone_lcell"; cyclone_lcell countera_6 ( .aclr(aclr), .cin(wire_countera_5cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_6cout[0:0]), .dataa(power_modified_counter_values[5]), .datab(power_modified_counter_values[6]), .ena(1'b1), .regout(wire_countera_regout[6:6]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_6.cin_used = "true", countera_6.lut_mask = "6c50", countera_6.operation_mode = "arithmetic", countera_6.sum_lutc_input = "cin", countera_6.synch_mode = "on", countera_6.lpm_type = "cyclone_lcell"; cyclone_lcell countera_7 ( .aclr(aclr), .cin(wire_countera_6cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_7cout[0:0]), .dataa(power_modified_counter_values[6]), .datab(power_modified_counter_values[7]), .ena(1'b1), .regout(wire_countera_regout[7:7]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_7.cin_used = "true", countera_7.lut_mask = "6c50", countera_7.operation_mode = "arithmetic", countera_7.sum_lutc_input = "cin", countera_7.synch_mode = "on", countera_7.lpm_type = "cyclone_lcell"; cyclone_lcell countera_8 ( .aclr(aclr), .cin(wire_countera_7cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_8cout[0:0]), .dataa(power_modified_counter_values[7]), .datab(power_modified_counter_values[8]), .ena(1'b1), .regout(wire_countera_regout[8:8]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_8.cin_used = "true", countera_8.lut_mask = "6c50", countera_8.operation_mode = "arithmetic", countera_8.sum_lutc_input = "cin", countera_8.synch_mode = "on", countera_8.lpm_type = "cyclone_lcell"; cyclone_lcell countera_9 ( .aclr(aclr), .cin(wire_countera_8cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_9cout[0:0]), .dataa(power_modified_counter_values[8]), .datab(power_modified_counter_values[9]), .ena(1'b1), .regout(wire_countera_regout[9:9]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_9.cin_used = "true", countera_9.lut_mask = "6c50", countera_9.operation_mode = "arithmetic", countera_9.sum_lutc_input = "cin", countera_9.synch_mode = "on", countera_9.lpm_type = "cyclone_lcell"; cyclone_lcell countera_10 ( .aclr(aclr), .cin(wire_countera_9cout[0:0]), .clk(clock), .combout(), .cout(), .dataa(power_modified_counter_values[10]), .ena(1'b1), .regout(wire_countera_regout[10:10]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datab(1'b1), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_10.cin_used = "true", countera_10.lut_mask = "5a5a", countera_10.operation_mode = "normal", countera_10.sum_lutc_input = "cin", countera_10.synch_mode = "on", countera_10.lpm_type = "cyclone_lcell"; cyclone_lcell parity ( .aclr(aclr), .cin(updown), .clk(clock), .combout(), .cout(wire_parity_cout), .dataa(cnt_en), .datab(wire_parity_regout), .ena(1'b1), .regout(wire_parity_regout), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam parity.cin_used = "true", parity.lut_mask = "6682", parity.operation_mode = "arithmetic", parity.synch_mode = "on", parity.lpm_type = "cyclone_lcell"; assign power_modified_counter_values = {wire_countera_regout[10:0]}, q = power_modified_counter_values, sclr = 1'b0, updown = 1'b1; endmodule //fifo_2k_a_graycounter_726 //a_graycounter DEVICE_FAMILY="Cyclone" PVALUE=1 WIDTH=11 aclr clock cnt_en q //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 12 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_a_graycounter_2r6 ( aclr, clock, cnt_en, q) /* synthesis synthesis_clearbox=1 */; input aclr; input clock; input cnt_en; output [10:0] q; wire [0:0] wire_countera_0cout; wire [0:0] wire_countera_1cout; wire [0:0] wire_countera_2cout; wire [0:0] wire_countera_3cout; wire [0:0] wire_countera_4cout; wire [0:0] wire_countera_5cout; wire [0:0] wire_countera_6cout; wire [0:0] wire_countera_7cout; wire [0:0] wire_countera_8cout; wire [0:0] wire_countera_9cout; wire [10:0] wire_countera_regout; wire wire_parity_cout; wire wire_parity_regout; wire [10:0] power_modified_counter_values; wire sclr; wire updown; cyclone_lcell countera_0 ( .aclr(aclr), .cin(wire_parity_cout), .clk(clock), .combout(), .cout(wire_countera_0cout[0:0]), .dataa(cnt_en), .datab(wire_countera_regout[0:0]), .ena(1'b1), .regout(wire_countera_regout[0:0]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_0.cin_used = "true", countera_0.lut_mask = "c6a0", countera_0.operation_mode = "arithmetic", countera_0.sum_lutc_input = "cin", countera_0.synch_mode = "on", countera_0.lpm_type = "cyclone_lcell"; cyclone_lcell countera_1 ( .aclr(aclr), .cin(wire_countera_0cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_1cout[0:0]), .dataa(power_modified_counter_values[0]), .datab(power_modified_counter_values[1]), .ena(1'b1), .regout(wire_countera_regout[1:1]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_1.cin_used = "true", countera_1.lut_mask = "6c50", countera_1.operation_mode = "arithmetic", countera_1.sum_lutc_input = "cin", countera_1.synch_mode = "on", countera_1.lpm_type = "cyclone_lcell"; cyclone_lcell countera_2 ( .aclr(aclr), .cin(wire_countera_1cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_2cout[0:0]), .dataa(power_modified_counter_values[1]), .datab(power_modified_counter_values[2]), .ena(1'b1), .regout(wire_countera_regout[2:2]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_2.cin_used = "true", countera_2.lut_mask = "6c50", countera_2.operation_mode = "arithmetic", countera_2.sum_lutc_input = "cin", countera_2.synch_mode = "on", countera_2.lpm_type = "cyclone_lcell"; cyclone_lcell countera_3 ( .aclr(aclr), .cin(wire_countera_2cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_3cout[0:0]), .dataa(power_modified_counter_values[2]), .datab(power_modified_counter_values[3]), .ena(1'b1), .regout(wire_countera_regout[3:3]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_3.cin_used = "true", countera_3.lut_mask = "6c50", countera_3.operation_mode = "arithmetic", countera_3.sum_lutc_input = "cin", countera_3.synch_mode = "on", countera_3.lpm_type = "cyclone_lcell"; cyclone_lcell countera_4 ( .aclr(aclr), .cin(wire_countera_3cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_4cout[0:0]), .dataa(power_modified_counter_values[3]), .datab(power_modified_counter_values[4]), .ena(1'b1), .regout(wire_countera_regout[4:4]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_4.cin_used = "true", countera_4.lut_mask = "6c50", countera_4.operation_mode = "arithmetic", countera_4.sum_lutc_input = "cin", countera_4.synch_mode = "on", countera_4.lpm_type = "cyclone_lcell"; cyclone_lcell countera_5 ( .aclr(aclr), .cin(wire_countera_4cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_5cout[0:0]), .dataa(power_modified_counter_values[4]), .datab(power_modified_counter_values[5]), .ena(1'b1), .regout(wire_countera_regout[5:5]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_5.cin_used = "true", countera_5.lut_mask = "6c50", countera_5.operation_mode = "arithmetic", countera_5.sum_lutc_input = "cin", countera_5.synch_mode = "on", countera_5.lpm_type = "cyclone_lcell"; cyclone_lcell countera_6 ( .aclr(aclr), .cin(wire_countera_5cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_6cout[0:0]), .dataa(power_modified_counter_values[5]), .datab(power_modified_counter_values[6]), .ena(1'b1), .regout(wire_countera_regout[6:6]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_6.cin_used = "true", countera_6.lut_mask = "6c50", countera_6.operation_mode = "arithmetic", countera_6.sum_lutc_input = "cin", countera_6.synch_mode = "on", countera_6.lpm_type = "cyclone_lcell"; cyclone_lcell countera_7 ( .aclr(aclr), .cin(wire_countera_6cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_7cout[0:0]), .dataa(power_modified_counter_values[6]), .datab(power_modified_counter_values[7]), .ena(1'b1), .regout(wire_countera_regout[7:7]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_7.cin_used = "true", countera_7.lut_mask = "6c50", countera_7.operation_mode = "arithmetic", countera_7.sum_lutc_input = "cin", countera_7.synch_mode = "on", countera_7.lpm_type = "cyclone_lcell"; cyclone_lcell countera_8 ( .aclr(aclr), .cin(wire_countera_7cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_8cout[0:0]), .dataa(power_modified_counter_values[7]), .datab(power_modified_counter_values[8]), .ena(1'b1), .regout(wire_countera_regout[8:8]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_8.cin_used = "true", countera_8.lut_mask = "6c50", countera_8.operation_mode = "arithmetic", countera_8.sum_lutc_input = "cin", countera_8.synch_mode = "on", countera_8.lpm_type = "cyclone_lcell"; cyclone_lcell countera_9 ( .aclr(aclr), .cin(wire_countera_8cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_9cout[0:0]), .dataa(power_modified_counter_values[8]), .datab(power_modified_counter_values[9]), .ena(1'b1), .regout(wire_countera_regout[9:9]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_9.cin_used = "true", countera_9.lut_mask = "6c50", countera_9.operation_mode = "arithmetic", countera_9.sum_lutc_input = "cin", countera_9.synch_mode = "on", countera_9.lpm_type = "cyclone_lcell"; cyclone_lcell countera_10 ( .aclr(aclr), .cin(wire_countera_9cout[0:0]), .clk(clock), .combout(), .cout(), .dataa(power_modified_counter_values[10]), .ena(1'b1), .regout(wire_countera_regout[10:10]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datab(1'b1), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_10.cin_used = "true", countera_10.lut_mask = "5a5a", countera_10.operation_mode = "normal", countera_10.sum_lutc_input = "cin", countera_10.synch_mode = "on", countera_10.lpm_type = "cyclone_lcell"; cyclone_lcell parity ( .aclr(aclr), .cin(updown), .clk(clock), .combout(), .cout(wire_parity_cout), .dataa(cnt_en), .datab((~ wire_parity_regout)), .ena(1'b1), .regout(wire_parity_regout), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam parity.cin_used = "true", parity.lut_mask = "9982", parity.operation_mode = "arithmetic", parity.synch_mode = "on", parity.lpm_type = "cyclone_lcell"; assign power_modified_counter_values = {wire_countera_regout[10:1], (~ wire_countera_regout[0])}, q = power_modified_counter_values, sclr = 1'b0, updown = 1'b1; endmodule //fifo_2k_a_graycounter_2r6 //altsyncram ADDRESS_REG_B="CLOCK1" DEVICE_FAMILY="Cyclone" OPERATION_MODE="DUAL_PORT" OUTDATA_REG_B="UNREGISTERED" WIDTH_A=16 WIDTH_B=16 WIDTH_BYTEENA_A=1 WIDTHAD_A=11 WIDTHAD_B=11 address_a address_b clock0 clock1 clocken1 data_a q_b wren_a //VERSION_BEGIN 5.0 cbx_altsyncram 2005:03:24:13:58:56:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_lpm_decode 2004:12:13:14:19:12:SJ cbx_lpm_mux 2004:12:13:14:16:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //synthesis_resources = M4K 8 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_altsyncram_6pl ( address_a, address_b, clock0, clock1, clocken1, data_a, q_b, wren_a) /* synthesis synthesis_clearbox=1 */; input [10:0] address_a; input [10:0] address_b; input clock0; input clock1; input clocken1; input [15:0] data_a; output [15:0] q_b; input wren_a; wire [0:0] wire_ram_block3a_0portbdataout; wire [0:0] wire_ram_block3a_1portbdataout; wire [0:0] wire_ram_block3a_2portbdataout; wire [0:0] wire_ram_block3a_3portbdataout; wire [0:0] wire_ram_block3a_4portbdataout; wire [0:0] wire_ram_block3a_5portbdataout; wire [0:0] wire_ram_block3a_6portbdataout; wire [0:0] wire_ram_block3a_7portbdataout; wire [0:0] wire_ram_block3a_8portbdataout; wire [0:0] wire_ram_block3a_9portbdataout; wire [0:0] wire_ram_block3a_10portbdataout; wire [0:0] wire_ram_block3a_11portbdataout; wire [0:0] wire_ram_block3a_12portbdataout; wire [0:0] wire_ram_block3a_13portbdataout; wire [0:0] wire_ram_block3a_14portbdataout; wire [0:0] wire_ram_block3a_15portbdataout; wire [10:0] address_a_wire; wire [10:0] address_b_wire; cyclone_ram_block ram_block3a_0 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[0]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_0portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_0.connectivity_checking = "OFF", ram_block3a_0.logical_ram_name = "ALTSYNCRAM", ram_block3a_0.mixed_port_feed_through_mode = "dont_care", ram_block3a_0.operation_mode = "dual_port", ram_block3a_0.port_a_address_width = 11, ram_block3a_0.port_a_data_width = 1, ram_block3a_0.port_a_first_address = 0, ram_block3a_0.port_a_first_bit_number = 0, ram_block3a_0.port_a_last_address = 2047, ram_block3a_0.port_a_logical_ram_depth = 2048, ram_block3a_0.port_a_logical_ram_width = 16, ram_block3a_0.port_b_address_clear = "none", ram_block3a_0.port_b_address_clock = "clock1", ram_block3a_0.port_b_address_width = 11, ram_block3a_0.port_b_data_out_clear = "none", ram_block3a_0.port_b_data_out_clock = "none", ram_block3a_0.port_b_data_width = 1, ram_block3a_0.port_b_first_address = 0, ram_block3a_0.port_b_first_bit_number = 0, ram_block3a_0.port_b_last_address = 2047, ram_block3a_0.port_b_logical_ram_depth = 2048, ram_block3a_0.port_b_logical_ram_width = 16, ram_block3a_0.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_0.ram_block_type = "auto", ram_block3a_0.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_1 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[1]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_1portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_1.connectivity_checking = "OFF", ram_block3a_1.logical_ram_name = "ALTSYNCRAM", ram_block3a_1.mixed_port_feed_through_mode = "dont_care", ram_block3a_1.operation_mode = "dual_port", ram_block3a_1.port_a_address_width = 11, ram_block3a_1.port_a_data_width = 1, ram_block3a_1.port_a_first_address = 0, ram_block3a_1.port_a_first_bit_number = 1, ram_block3a_1.port_a_last_address = 2047, ram_block3a_1.port_a_logical_ram_depth = 2048, ram_block3a_1.port_a_logical_ram_width = 16, ram_block3a_1.port_b_address_clear = "none", ram_block3a_1.port_b_address_clock = "clock1", ram_block3a_1.port_b_address_width = 11, ram_block3a_1.port_b_data_out_clear = "none", ram_block3a_1.port_b_data_out_clock = "none", ram_block3a_1.port_b_data_width = 1, ram_block3a_1.port_b_first_address = 0, ram_block3a_1.port_b_first_bit_number = 1, ram_block3a_1.port_b_last_address = 2047, ram_block3a_1.port_b_logical_ram_depth = 2048, ram_block3a_1.port_b_logical_ram_width = 16, ram_block3a_1.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_1.ram_block_type = "auto", ram_block3a_1.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_2 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[2]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_2portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_2.connectivity_checking = "OFF", ram_block3a_2.logical_ram_name = "ALTSYNCRAM", ram_block3a_2.mixed_port_feed_through_mode = "dont_care", ram_block3a_2.operation_mode = "dual_port", ram_block3a_2.port_a_address_width = 11, ram_block3a_2.port_a_data_width = 1, ram_block3a_2.port_a_first_address = 0, ram_block3a_2.port_a_first_bit_number = 2, ram_block3a_2.port_a_last_address = 2047, ram_block3a_2.port_a_logical_ram_depth = 2048, ram_block3a_2.port_a_logical_ram_width = 16, ram_block3a_2.port_b_address_clear = "none", ram_block3a_2.port_b_address_clock = "clock1", ram_block3a_2.port_b_address_width = 11, ram_block3a_2.port_b_data_out_clear = "none", ram_block3a_2.port_b_data_out_clock = "none", ram_block3a_2.port_b_data_width = 1, ram_block3a_2.port_b_first_address = 0, ram_block3a_2.port_b_first_bit_number = 2, ram_block3a_2.port_b_last_address = 2047, ram_block3a_2.port_b_logical_ram_depth = 2048, ram_block3a_2.port_b_logical_ram_width = 16, ram_block3a_2.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_2.ram_block_type = "auto", ram_block3a_2.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_3 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[3]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_3portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_3.connectivity_checking = "OFF", ram_block3a_3.logical_ram_name = "ALTSYNCRAM", ram_block3a_3.mixed_port_feed_through_mode = "dont_care", ram_block3a_3.operation_mode = "dual_port", ram_block3a_3.port_a_address_width = 11, ram_block3a_3.port_a_data_width = 1, ram_block3a_3.port_a_first_address = 0, ram_block3a_3.port_a_first_bit_number = 3, ram_block3a_3.port_a_last_address = 2047, ram_block3a_3.port_a_logical_ram_depth = 2048, ram_block3a_3.port_a_logical_ram_width = 16, ram_block3a_3.port_b_address_clear = "none", ram_block3a_3.port_b_address_clock = "clock1", ram_block3a_3.port_b_address_width = 11, ram_block3a_3.port_b_data_out_clear = "none", ram_block3a_3.port_b_data_out_clock = "none", ram_block3a_3.port_b_data_width = 1, ram_block3a_3.port_b_first_address = 0, ram_block3a_3.port_b_first_bit_number = 3, ram_block3a_3.port_b_last_address = 2047, ram_block3a_3.port_b_logical_ram_depth = 2048, ram_block3a_3.port_b_logical_ram_width = 16, ram_block3a_3.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_3.ram_block_type = "auto", ram_block3a_3.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_4 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[4]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_4portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_4.connectivity_checking = "OFF", ram_block3a_4.logical_ram_name = "ALTSYNCRAM", ram_block3a_4.mixed_port_feed_through_mode = "dont_care", ram_block3a_4.operation_mode = "dual_port", ram_block3a_4.port_a_address_width = 11, ram_block3a_4.port_a_data_width = 1, ram_block3a_4.port_a_first_address = 0, ram_block3a_4.port_a_first_bit_number = 4, ram_block3a_4.port_a_last_address = 2047, ram_block3a_4.port_a_logical_ram_depth = 2048, ram_block3a_4.port_a_logical_ram_width = 16, ram_block3a_4.port_b_address_clear = "none", ram_block3a_4.port_b_address_clock = "clock1", ram_block3a_4.port_b_address_width = 11, ram_block3a_4.port_b_data_out_clear = "none", ram_block3a_4.port_b_data_out_clock = "none", ram_block3a_4.port_b_data_width = 1, ram_block3a_4.port_b_first_address = 0, ram_block3a_4.port_b_first_bit_number = 4, ram_block3a_4.port_b_last_address = 2047, ram_block3a_4.port_b_logical_ram_depth = 2048, ram_block3a_4.port_b_logical_ram_width = 16, ram_block3a_4.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_4.ram_block_type = "auto", ram_block3a_4.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_5 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[5]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_5portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_5.connectivity_checking = "OFF", ram_block3a_5.logical_ram_name = "ALTSYNCRAM", ram_block3a_5.mixed_port_feed_through_mode = "dont_care", ram_block3a_5.operation_mode = "dual_port", ram_block3a_5.port_a_address_width = 11, ram_block3a_5.port_a_data_width = 1, ram_block3a_5.port_a_first_address = 0, ram_block3a_5.port_a_first_bit_number = 5, ram_block3a_5.port_a_last_address = 2047, ram_block3a_5.port_a_logical_ram_depth = 2048, ram_block3a_5.port_a_logical_ram_width = 16, ram_block3a_5.port_b_address_clear = "none", ram_block3a_5.port_b_address_clock = "clock1", ram_block3a_5.port_b_address_width = 11, ram_block3a_5.port_b_data_out_clear = "none", ram_block3a_5.port_b_data_out_clock = "none", ram_block3a_5.port_b_data_width = 1, ram_block3a_5.port_b_first_address = 0, ram_block3a_5.port_b_first_bit_number = 5, ram_block3a_5.port_b_last_address = 2047, ram_block3a_5.port_b_logical_ram_depth = 2048, ram_block3a_5.port_b_logical_ram_width = 16, ram_block3a_5.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_5.ram_block_type = "auto", ram_block3a_5.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_6 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[6]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_6portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_6.connectivity_checking = "OFF", ram_block3a_6.logical_ram_name = "ALTSYNCRAM", ram_block3a_6.mixed_port_feed_through_mode = "dont_care", ram_block3a_6.operation_mode = "dual_port", ram_block3a_6.port_a_address_width = 11, ram_block3a_6.port_a_data_width = 1, ram_block3a_6.port_a_first_address = 0, ram_block3a_6.port_a_first_bit_number = 6, ram_block3a_6.port_a_last_address = 2047, ram_block3a_6.port_a_logical_ram_depth = 2048, ram_block3a_6.port_a_logical_ram_width = 16, ram_block3a_6.port_b_address_clear = "none", ram_block3a_6.port_b_address_clock = "clock1", ram_block3a_6.port_b_address_width = 11, ram_block3a_6.port_b_data_out_clear = "none", ram_block3a_6.port_b_data_out_clock = "none", ram_block3a_6.port_b_data_width = 1, ram_block3a_6.port_b_first_address = 0, ram_block3a_6.port_b_first_bit_number = 6, ram_block3a_6.port_b_last_address = 2047, ram_block3a_6.port_b_logical_ram_depth = 2048, ram_block3a_6.port_b_logical_ram_width = 16, ram_block3a_6.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_6.ram_block_type = "auto", ram_block3a_6.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_7 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[7]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_7portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_7.connectivity_checking = "OFF", ram_block3a_7.logical_ram_name = "ALTSYNCRAM", ram_block3a_7.mixed_port_feed_through_mode = "dont_care", ram_block3a_7.operation_mode = "dual_port", ram_block3a_7.port_a_address_width = 11, ram_block3a_7.port_a_data_width = 1, ram_block3a_7.port_a_first_address = 0, ram_block3a_7.port_a_first_bit_number = 7, ram_block3a_7.port_a_last_address = 2047, ram_block3a_7.port_a_logical_ram_depth = 2048, ram_block3a_7.port_a_logical_ram_width = 16, ram_block3a_7.port_b_address_clear = "none", ram_block3a_7.port_b_address_clock = "clock1", ram_block3a_7.port_b_address_width = 11, ram_block3a_7.port_b_data_out_clear = "none", ram_block3a_7.port_b_data_out_clock = "none", ram_block3a_7.port_b_data_width = 1, ram_block3a_7.port_b_first_address = 0, ram_block3a_7.port_b_first_bit_number = 7, ram_block3a_7.port_b_last_address = 2047, ram_block3a_7.port_b_logical_ram_depth = 2048, ram_block3a_7.port_b_logical_ram_width = 16, ram_block3a_7.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_7.ram_block_type = "auto", ram_block3a_7.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_8 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[8]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_8portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_8.connectivity_checking = "OFF", ram_block3a_8.logical_ram_name = "ALTSYNCRAM", ram_block3a_8.mixed_port_feed_through_mode = "dont_care", ram_block3a_8.operation_mode = "dual_port", ram_block3a_8.port_a_address_width = 11, ram_block3a_8.port_a_data_width = 1, ram_block3a_8.port_a_first_address = 0, ram_block3a_8.port_a_first_bit_number = 8, ram_block3a_8.port_a_last_address = 2047, ram_block3a_8.port_a_logical_ram_depth = 2048, ram_block3a_8.port_a_logical_ram_width = 16, ram_block3a_8.port_b_address_clear = "none", ram_block3a_8.port_b_address_clock = "clock1", ram_block3a_8.port_b_address_width = 11, ram_block3a_8.port_b_data_out_clear = "none", ram_block3a_8.port_b_data_out_clock = "none", ram_block3a_8.port_b_data_width = 1, ram_block3a_8.port_b_first_address = 0, ram_block3a_8.port_b_first_bit_number = 8, ram_block3a_8.port_b_last_address = 2047, ram_block3a_8.port_b_logical_ram_depth = 2048, ram_block3a_8.port_b_logical_ram_width = 16, ram_block3a_8.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_8.ram_block_type = "auto", ram_block3a_8.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_9 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[9]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_9portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_9.connectivity_checking = "OFF", ram_block3a_9.logical_ram_name = "ALTSYNCRAM", ram_block3a_9.mixed_port_feed_through_mode = "dont_care", ram_block3a_9.operation_mode = "dual_port", ram_block3a_9.port_a_address_width = 11, ram_block3a_9.port_a_data_width = 1, ram_block3a_9.port_a_first_address = 0, ram_block3a_9.port_a_first_bit_number = 9, ram_block3a_9.port_a_last_address = 2047, ram_block3a_9.port_a_logical_ram_depth = 2048, ram_block3a_9.port_a_logical_ram_width = 16, ram_block3a_9.port_b_address_clear = "none", ram_block3a_9.port_b_address_clock = "clock1", ram_block3a_9.port_b_address_width = 11, ram_block3a_9.port_b_data_out_clear = "none", ram_block3a_9.port_b_data_out_clock = "none", ram_block3a_9.port_b_data_width = 1, ram_block3a_9.port_b_first_address = 0, ram_block3a_9.port_b_first_bit_number = 9, ram_block3a_9.port_b_last_address = 2047, ram_block3a_9.port_b_logical_ram_depth = 2048, ram_block3a_9.port_b_logical_ram_width = 16, ram_block3a_9.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_9.ram_block_type = "auto", ram_block3a_9.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_10 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[10]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_10portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_10.connectivity_checking = "OFF", ram_block3a_10.logical_ram_name = "ALTSYNCRAM", ram_block3a_10.mixed_port_feed_through_mode = "dont_care", ram_block3a_10.operation_mode = "dual_port", ram_block3a_10.port_a_address_width = 11, ram_block3a_10.port_a_data_width = 1, ram_block3a_10.port_a_first_address = 0, ram_block3a_10.port_a_first_bit_number = 10, ram_block3a_10.port_a_last_address = 2047, ram_block3a_10.port_a_logical_ram_depth = 2048, ram_block3a_10.port_a_logical_ram_width = 16, ram_block3a_10.port_b_address_clear = "none", ram_block3a_10.port_b_address_clock = "clock1", ram_block3a_10.port_b_address_width = 11, ram_block3a_10.port_b_data_out_clear = "none", ram_block3a_10.port_b_data_out_clock = "none", ram_block3a_10.port_b_data_width = 1, ram_block3a_10.port_b_first_address = 0, ram_block3a_10.port_b_first_bit_number = 10, ram_block3a_10.port_b_last_address = 2047, ram_block3a_10.port_b_logical_ram_depth = 2048, ram_block3a_10.port_b_logical_ram_width = 16, ram_block3a_10.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_10.ram_block_type = "auto", ram_block3a_10.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_11 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[11]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_11portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_11.connectivity_checking = "OFF", ram_block3a_11.logical_ram_name = "ALTSYNCRAM", ram_block3a_11.mixed_port_feed_through_mode = "dont_care", ram_block3a_11.operation_mode = "dual_port", ram_block3a_11.port_a_address_width = 11, ram_block3a_11.port_a_data_width = 1, ram_block3a_11.port_a_first_address = 0, ram_block3a_11.port_a_first_bit_number = 11, ram_block3a_11.port_a_last_address = 2047, ram_block3a_11.port_a_logical_ram_depth = 2048, ram_block3a_11.port_a_logical_ram_width = 16, ram_block3a_11.port_b_address_clear = "none", ram_block3a_11.port_b_address_clock = "clock1", ram_block3a_11.port_b_address_width = 11, ram_block3a_11.port_b_data_out_clear = "none", ram_block3a_11.port_b_data_out_clock = "none", ram_block3a_11.port_b_data_width = 1, ram_block3a_11.port_b_first_address = 0, ram_block3a_11.port_b_first_bit_number = 11, ram_block3a_11.port_b_last_address = 2047, ram_block3a_11.port_b_logical_ram_depth = 2048, ram_block3a_11.port_b_logical_ram_width = 16, ram_block3a_11.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_11.ram_block_type = "auto", ram_block3a_11.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_12 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[12]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_12portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_12.connectivity_checking = "OFF", ram_block3a_12.logical_ram_name = "ALTSYNCRAM", ram_block3a_12.mixed_port_feed_through_mode = "dont_care", ram_block3a_12.operation_mode = "dual_port", ram_block3a_12.port_a_address_width = 11, ram_block3a_12.port_a_data_width = 1, ram_block3a_12.port_a_first_address = 0, ram_block3a_12.port_a_first_bit_number = 12, ram_block3a_12.port_a_last_address = 2047, ram_block3a_12.port_a_logical_ram_depth = 2048, ram_block3a_12.port_a_logical_ram_width = 16, ram_block3a_12.port_b_address_clear = "none", ram_block3a_12.port_b_address_clock = "clock1", ram_block3a_12.port_b_address_width = 11, ram_block3a_12.port_b_data_out_clear = "none", ram_block3a_12.port_b_data_out_clock = "none", ram_block3a_12.port_b_data_width = 1, ram_block3a_12.port_b_first_address = 0, ram_block3a_12.port_b_first_bit_number = 12, ram_block3a_12.port_b_last_address = 2047, ram_block3a_12.port_b_logical_ram_depth = 2048, ram_block3a_12.port_b_logical_ram_width = 16, ram_block3a_12.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_12.ram_block_type = "auto", ram_block3a_12.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_13 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[13]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_13portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_13.connectivity_checking = "OFF", ram_block3a_13.logical_ram_name = "ALTSYNCRAM", ram_block3a_13.mixed_port_feed_through_mode = "dont_care", ram_block3a_13.operation_mode = "dual_port", ram_block3a_13.port_a_address_width = 11, ram_block3a_13.port_a_data_width = 1, ram_block3a_13.port_a_first_address = 0, ram_block3a_13.port_a_first_bit_number = 13, ram_block3a_13.port_a_last_address = 2047, ram_block3a_13.port_a_logical_ram_depth = 2048, ram_block3a_13.port_a_logical_ram_width = 16, ram_block3a_13.port_b_address_clear = "none", ram_block3a_13.port_b_address_clock = "clock1", ram_block3a_13.port_b_address_width = 11, ram_block3a_13.port_b_data_out_clear = "none", ram_block3a_13.port_b_data_out_clock = "none", ram_block3a_13.port_b_data_width = 1, ram_block3a_13.port_b_first_address = 0, ram_block3a_13.port_b_first_bit_number = 13, ram_block3a_13.port_b_last_address = 2047, ram_block3a_13.port_b_logical_ram_depth = 2048, ram_block3a_13.port_b_logical_ram_width = 16, ram_block3a_13.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_13.ram_block_type = "auto", ram_block3a_13.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_14 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[14]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_14portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_14.connectivity_checking = "OFF", ram_block3a_14.logical_ram_name = "ALTSYNCRAM", ram_block3a_14.mixed_port_feed_through_mode = "dont_care", ram_block3a_14.operation_mode = "dual_port", ram_block3a_14.port_a_address_width = 11, ram_block3a_14.port_a_data_width = 1, ram_block3a_14.port_a_first_address = 0, ram_block3a_14.port_a_first_bit_number = 14, ram_block3a_14.port_a_last_address = 2047, ram_block3a_14.port_a_logical_ram_depth = 2048, ram_block3a_14.port_a_logical_ram_width = 16, ram_block3a_14.port_b_address_clear = "none", ram_block3a_14.port_b_address_clock = "clock1", ram_block3a_14.port_b_address_width = 11, ram_block3a_14.port_b_data_out_clear = "none", ram_block3a_14.port_b_data_out_clock = "none", ram_block3a_14.port_b_data_width = 1, ram_block3a_14.port_b_first_address = 0, ram_block3a_14.port_b_first_bit_number = 14, ram_block3a_14.port_b_last_address = 2047, ram_block3a_14.port_b_logical_ram_depth = 2048, ram_block3a_14.port_b_logical_ram_width = 16, ram_block3a_14.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_14.ram_block_type = "auto", ram_block3a_14.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_15 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[10:0]}), .portadatain({data_a[15]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[10:0]}), .portbdataout(wire_ram_block3a_15portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_15.connectivity_checking = "OFF", ram_block3a_15.logical_ram_name = "ALTSYNCRAM", ram_block3a_15.mixed_port_feed_through_mode = "dont_care", ram_block3a_15.operation_mode = "dual_port", ram_block3a_15.port_a_address_width = 11, ram_block3a_15.port_a_data_width = 1, ram_block3a_15.port_a_first_address = 0, ram_block3a_15.port_a_first_bit_number = 15, ram_block3a_15.port_a_last_address = 2047, ram_block3a_15.port_a_logical_ram_depth = 2048, ram_block3a_15.port_a_logical_ram_width = 16, ram_block3a_15.port_b_address_clear = "none", ram_block3a_15.port_b_address_clock = "clock1", ram_block3a_15.port_b_address_width = 11, ram_block3a_15.port_b_data_out_clear = "none", ram_block3a_15.port_b_data_out_clock = "none", ram_block3a_15.port_b_data_width = 1, ram_block3a_15.port_b_first_address = 0, ram_block3a_15.port_b_first_bit_number = 15, ram_block3a_15.port_b_last_address = 2047, ram_block3a_15.port_b_logical_ram_depth = 2048, ram_block3a_15.port_b_logical_ram_width = 16, ram_block3a_15.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_15.ram_block_type = "auto", ram_block3a_15.lpm_type = "cyclone_ram_block"; assign address_a_wire = address_a, address_b_wire = address_b, q_b = {wire_ram_block3a_15portbdataout[0], wire_ram_block3a_14portbdataout[0], wire_ram_block3a_13portbdataout[0], wire_ram_block3a_12portbdataout[0], wire_ram_block3a_11portbdataout[0], wire_ram_block3a_10portbdataout[0], wire_ram_block3a_9portbdataout[0], wire_ram_block3a_8portbdataout[0], wire_ram_block3a_7portbdataout[0], wire_ram_block3a_6portbdataout[0], wire_ram_block3a_5portbdataout[0], wire_ram_block3a_4portbdataout[0], wire_ram_block3a_3portbdataout[0], wire_ram_block3a_2portbdataout[0], wire_ram_block3a_1portbdataout[0], wire_ram_block3a_0portbdataout[0]}; endmodule //fifo_2k_altsyncram_6pl //dffpipe DELAY=1 WIDTH=11 clock clrn d q //VERSION_BEGIN 5.0 cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //synthesis_resources = lut 11 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_dffpipe_ab3 ( clock, clrn, d, q) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="AUTO_SHIFT_REGISTER_RECOGNITION=OFF" */; input clock; input clrn; input [10:0] d; output [10:0] q; wire [10:0] wire_dffe4a_D; reg [10:0] dffe4a; wire ena; wire prn; wire sclr; // synopsys translate_off initial dffe4a[0:0] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[0:0] <= 1'b1; else if (clrn == 1'b0) dffe4a[0:0] <= 1'b0; else if (ena == 1'b1) dffe4a[0:0] <= wire_dffe4a_D[0:0]; // synopsys translate_off initial dffe4a[1:1] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[1:1] <= 1'b1; else if (clrn == 1'b0) dffe4a[1:1] <= 1'b0; else if (ena == 1'b1) dffe4a[1:1] <= wire_dffe4a_D[1:1]; // synopsys translate_off initial dffe4a[2:2] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[2:2] <= 1'b1; else if (clrn == 1'b0) dffe4a[2:2] <= 1'b0; else if (ena == 1'b1) dffe4a[2:2] <= wire_dffe4a_D[2:2]; // synopsys translate_off initial dffe4a[3:3] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[3:3] <= 1'b1; else if (clrn == 1'b0) dffe4a[3:3] <= 1'b0; else if (ena == 1'b1) dffe4a[3:3] <= wire_dffe4a_D[3:3]; // synopsys translate_off initial dffe4a[4:4] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[4:4] <= 1'b1; else if (clrn == 1'b0) dffe4a[4:4] <= 1'b0; else if (ena == 1'b1) dffe4a[4:4] <= wire_dffe4a_D[4:4]; // synopsys translate_off initial dffe4a[5:5] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[5:5] <= 1'b1; else if (clrn == 1'b0) dffe4a[5:5] <= 1'b0; else if (ena == 1'b1) dffe4a[5:5] <= wire_dffe4a_D[5:5]; // synopsys translate_off initial dffe4a[6:6] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[6:6] <= 1'b1; else if (clrn == 1'b0) dffe4a[6:6] <= 1'b0; else if (ena == 1'b1) dffe4a[6:6] <= wire_dffe4a_D[6:6]; // synopsys translate_off initial dffe4a[7:7] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[7:7] <= 1'b1; else if (clrn == 1'b0) dffe4a[7:7] <= 1'b0; else if (ena == 1'b1) dffe4a[7:7] <= wire_dffe4a_D[7:7]; // synopsys translate_off initial dffe4a[8:8] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[8:8] <= 1'b1; else if (clrn == 1'b0) dffe4a[8:8] <= 1'b0; else if (ena == 1'b1) dffe4a[8:8] <= wire_dffe4a_D[8:8]; // synopsys translate_off initial dffe4a[9:9] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[9:9] <= 1'b1; else if (clrn == 1'b0) dffe4a[9:9] <= 1'b0; else if (ena == 1'b1) dffe4a[9:9] <= wire_dffe4a_D[9:9]; // synopsys translate_off initial dffe4a[10:10] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[10:10] <= 1'b1; else if (clrn == 1'b0) dffe4a[10:10] <= 1'b0; else if (ena == 1'b1) dffe4a[10:10] <= wire_dffe4a_D[10:10]; assign wire_dffe4a_D = (d & {11{(~ sclr)}}); assign ena = 1'b1, prn = 1'b1, q = dffe4a, sclr = 1'b0; endmodule //fifo_2k_dffpipe_ab3 //dffpipe WIDTH=11 clock clrn d q //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_altdpram 2004:11:30:11:29:56:SJ cbx_altsyncram 2005:03:24:13:58:56:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_dcfifo 2005:03:07:17:11:14:SJ cbx_fifo_common 2004:12:13:14:26:24:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_lpm_counter 2005:02:02:04:37:10:SJ cbx_lpm_decode 2004:12:13:14:19:12:SJ cbx_lpm_mux 2004:12:13:14:16:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_scfifo 2005:03:10:10:52:20:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //dffpipe WIDTH=11 clock clrn d q //VERSION_BEGIN 5.0 cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //synthesis_resources = lut 11 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_dffpipe_dm2 ( clock, clrn, d, q) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="AUTO_SHIFT_REGISTER_RECOGNITION=OFF" */; input clock; input clrn; input [10:0] d; output [10:0] q; wire [10:0] wire_dffe6a_D; reg [10:0] dffe6a; wire ena; wire prn; wire sclr; // synopsys translate_off initial dffe6a[0:0] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[0:0] <= 1'b1; else if (clrn == 1'b0) dffe6a[0:0] <= 1'b0; else if (ena == 1'b1) dffe6a[0:0] <= wire_dffe6a_D[0:0]; // synopsys translate_off initial dffe6a[1:1] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[1:1] <= 1'b1; else if (clrn == 1'b0) dffe6a[1:1] <= 1'b0; else if (ena == 1'b1) dffe6a[1:1] <= wire_dffe6a_D[1:1]; // synopsys translate_off initial dffe6a[2:2] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[2:2] <= 1'b1; else if (clrn == 1'b0) dffe6a[2:2] <= 1'b0; else if (ena == 1'b1) dffe6a[2:2] <= wire_dffe6a_D[2:2]; // synopsys translate_off initial dffe6a[3:3] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[3:3] <= 1'b1; else if (clrn == 1'b0) dffe6a[3:3] <= 1'b0; else if (ena == 1'b1) dffe6a[3:3] <= wire_dffe6a_D[3:3]; // synopsys translate_off initial dffe6a[4:4] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[4:4] <= 1'b1; else if (clrn == 1'b0) dffe6a[4:4] <= 1'b0; else if (ena == 1'b1) dffe6a[4:4] <= wire_dffe6a_D[4:4]; // synopsys translate_off initial dffe6a[5:5] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[5:5] <= 1'b1; else if (clrn == 1'b0) dffe6a[5:5] <= 1'b0; else if (ena == 1'b1) dffe6a[5:5] <= wire_dffe6a_D[5:5]; // synopsys translate_off initial dffe6a[6:6] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[6:6] <= 1'b1; else if (clrn == 1'b0) dffe6a[6:6] <= 1'b0; else if (ena == 1'b1) dffe6a[6:6] <= wire_dffe6a_D[6:6]; // synopsys translate_off initial dffe6a[7:7] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[7:7] <= 1'b1; else if (clrn == 1'b0) dffe6a[7:7] <= 1'b0; else if (ena == 1'b1) dffe6a[7:7] <= wire_dffe6a_D[7:7]; // synopsys translate_off initial dffe6a[8:8] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[8:8] <= 1'b1; else if (clrn == 1'b0) dffe6a[8:8] <= 1'b0; else if (ena == 1'b1) dffe6a[8:8] <= wire_dffe6a_D[8:8]; // synopsys translate_off initial dffe6a[9:9] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[9:9] <= 1'b1; else if (clrn == 1'b0) dffe6a[9:9] <= 1'b0; else if (ena == 1'b1) dffe6a[9:9] <= wire_dffe6a_D[9:9]; // synopsys translate_off initial dffe6a[10:10] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[10:10] <= 1'b1; else if (clrn == 1'b0) dffe6a[10:10] <= 1'b0; else if (ena == 1'b1) dffe6a[10:10] <= wire_dffe6a_D[10:10]; assign wire_dffe6a_D = (d & {11{(~ sclr)}}); assign ena = 1'b1, prn = 1'b1, q = dffe6a, sclr = 1'b0; endmodule //fifo_2k_dffpipe_dm2 //synthesis_resources = lut 11 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_alt_synch_pipe_dm2 ( clock, clrn, d, q) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="X_ON_VIOLATION_OPTION=OFF" */; input clock; input clrn; input [10:0] d; output [10:0] q; wire [10:0] wire_dffpipe5_q; fifo_2k_dffpipe_dm2 dffpipe5 ( .clock(clock), .clrn(clrn), .d(d), .q(wire_dffpipe5_q)); assign q = wire_dffpipe5_q; endmodule //fifo_2k_alt_synch_pipe_dm2 //lpm_add_sub DEVICE_FAMILY="Cyclone" LPM_DIRECTION="SUB" LPM_WIDTH=11 dataa datab result //VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 11 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_add_sub_a18 ( dataa, datab, result) /* synthesis synthesis_clearbox=1 */; input [10:0] dataa; input [10:0] datab; output [10:0] result; wire [10:0] wire_add_sub_cella_combout; wire [0:0] wire_add_sub_cella_0cout; wire [0:0] wire_add_sub_cella_1cout; wire [0:0] wire_add_sub_cella_2cout; wire [0:0] wire_add_sub_cella_3cout; wire [0:0] wire_add_sub_cella_4cout; wire [0:0] wire_add_sub_cella_5cout; wire [0:0] wire_add_sub_cella_6cout; wire [0:0] wire_add_sub_cella_7cout; wire [0:0] wire_add_sub_cella_8cout; wire [0:0] wire_add_sub_cella_9cout; wire [10:0] wire_add_sub_cella_dataa; wire [10:0] wire_add_sub_cella_datab; cyclone_lcell add_sub_cella_0 ( .cin(1'b1), .combout(wire_add_sub_cella_combout[0:0]), .cout(wire_add_sub_cella_0cout[0:0]), .dataa(wire_add_sub_cella_dataa[0:0]), .datab(wire_add_sub_cella_datab[0:0]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_0.cin_used = "true", add_sub_cella_0.lut_mask = "69b2", add_sub_cella_0.operation_mode = "arithmetic", add_sub_cella_0.sum_lutc_input = "cin", add_sub_cella_0.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_1 ( .cin(wire_add_sub_cella_0cout[0:0]), .combout(wire_add_sub_cella_combout[1:1]), .cout(wire_add_sub_cella_1cout[0:0]), .dataa(wire_add_sub_cella_dataa[1:1]), .datab(wire_add_sub_cella_datab[1:1]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_1.cin_used = "true", add_sub_cella_1.lut_mask = "69b2", add_sub_cella_1.operation_mode = "arithmetic", add_sub_cella_1.sum_lutc_input = "cin", add_sub_cella_1.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_2 ( .cin(wire_add_sub_cella_1cout[0:0]), .combout(wire_add_sub_cella_combout[2:2]), .cout(wire_add_sub_cella_2cout[0:0]), .dataa(wire_add_sub_cella_dataa[2:2]), .datab(wire_add_sub_cella_datab[2:2]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_2.cin_used = "true", add_sub_cella_2.lut_mask = "69b2", add_sub_cella_2.operation_mode = "arithmetic", add_sub_cella_2.sum_lutc_input = "cin", add_sub_cella_2.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_3 ( .cin(wire_add_sub_cella_2cout[0:0]), .combout(wire_add_sub_cella_combout[3:3]), .cout(wire_add_sub_cella_3cout[0:0]), .dataa(wire_add_sub_cella_dataa[3:3]), .datab(wire_add_sub_cella_datab[3:3]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_3.cin_used = "true", add_sub_cella_3.lut_mask = "69b2", add_sub_cella_3.operation_mode = "arithmetic", add_sub_cella_3.sum_lutc_input = "cin", add_sub_cella_3.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_4 ( .cin(wire_add_sub_cella_3cout[0:0]), .combout(wire_add_sub_cella_combout[4:4]), .cout(wire_add_sub_cella_4cout[0:0]), .dataa(wire_add_sub_cella_dataa[4:4]), .datab(wire_add_sub_cella_datab[4:4]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_4.cin_used = "true", add_sub_cella_4.lut_mask = "69b2", add_sub_cella_4.operation_mode = "arithmetic", add_sub_cella_4.sum_lutc_input = "cin", add_sub_cella_4.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_5 ( .cin(wire_add_sub_cella_4cout[0:0]), .combout(wire_add_sub_cella_combout[5:5]), .cout(wire_add_sub_cella_5cout[0:0]), .dataa(wire_add_sub_cella_dataa[5:5]), .datab(wire_add_sub_cella_datab[5:5]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_5.cin_used = "true", add_sub_cella_5.lut_mask = "69b2", add_sub_cella_5.operation_mode = "arithmetic", add_sub_cella_5.sum_lutc_input = "cin", add_sub_cella_5.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_6 ( .cin(wire_add_sub_cella_5cout[0:0]), .combout(wire_add_sub_cella_combout[6:6]), .cout(wire_add_sub_cella_6cout[0:0]), .dataa(wire_add_sub_cella_dataa[6:6]), .datab(wire_add_sub_cella_datab[6:6]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_6.cin_used = "true", add_sub_cella_6.lut_mask = "69b2", add_sub_cella_6.operation_mode = "arithmetic", add_sub_cella_6.sum_lutc_input = "cin", add_sub_cella_6.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_7 ( .cin(wire_add_sub_cella_6cout[0:0]), .combout(wire_add_sub_cella_combout[7:7]), .cout(wire_add_sub_cella_7cout[0:0]), .dataa(wire_add_sub_cella_dataa[7:7]), .datab(wire_add_sub_cella_datab[7:7]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_7.cin_used = "true", add_sub_cella_7.lut_mask = "69b2", add_sub_cella_7.operation_mode = "arithmetic", add_sub_cella_7.sum_lutc_input = "cin", add_sub_cella_7.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_8 ( .cin(wire_add_sub_cella_7cout[0:0]), .combout(wire_add_sub_cella_combout[8:8]), .cout(wire_add_sub_cella_8cout[0:0]), .dataa(wire_add_sub_cella_dataa[8:8]), .datab(wire_add_sub_cella_datab[8:8]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_8.cin_used = "true", add_sub_cella_8.lut_mask = "69b2", add_sub_cella_8.operation_mode = "arithmetic", add_sub_cella_8.sum_lutc_input = "cin", add_sub_cella_8.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_9 ( .cin(wire_add_sub_cella_8cout[0:0]), .combout(wire_add_sub_cella_combout[9:9]), .cout(wire_add_sub_cella_9cout[0:0]), .dataa(wire_add_sub_cella_dataa[9:9]), .datab(wire_add_sub_cella_datab[9:9]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_9.cin_used = "true", add_sub_cella_9.lut_mask = "69b2", add_sub_cella_9.operation_mode = "arithmetic", add_sub_cella_9.sum_lutc_input = "cin", add_sub_cella_9.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_10 ( .cin(wire_add_sub_cella_9cout[0:0]), .combout(wire_add_sub_cella_combout[10:10]), .cout(), .dataa(wire_add_sub_cella_dataa[10:10]), .datab(wire_add_sub_cella_datab[10:10]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_10.cin_used = "true", add_sub_cella_10.lut_mask = "6969", add_sub_cella_10.operation_mode = "normal", add_sub_cella_10.sum_lutc_input = "cin", add_sub_cella_10.lpm_type = "cyclone_lcell"; assign wire_add_sub_cella_dataa = dataa, wire_add_sub_cella_datab = datab; assign result = wire_add_sub_cella_combout; endmodule //fifo_2k_add_sub_a18 //lpm_compare DEVICE_FAMILY="Cyclone" LPM_WIDTH=11 aeb dataa datab //VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //lpm_compare DEVICE_FAMILY="Cyclone" LPM_WIDTH=11 aeb dataa datab //VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 97 M4K 8 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_2k_dcfifo_0cq ( aclr, data, q, rdclk, rdempty, rdreq, rdusedw, wrclk, wrfull, wrreq, wrusedw) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="AUTO_SHIFT_REGISTER_RECOGNITION=OFF;{ -from \"rdptr_g|power_modified_counter_values\" -to \"ws_dgrp|dffpipe5|dffe6a\" }CUT=ON;{ -from \"delayed_wrptr_g\" -to \"rs_dgwp|dffpipe5|dffe6a\" }CUT=ON" */; input aclr; input [15:0] data; output [15:0] q; input rdclk; output rdempty; input rdreq; output [10:0] rdusedw; input wrclk; output wrfull; input wrreq; output [10:0] wrusedw; wire [10:0] wire_rdptr_g_gray2bin_bin; wire [10:0] wire_rs_dgwp_gray2bin_bin; wire [10:0] wire_wrptr_g_gray2bin_bin; wire [10:0] wire_ws_dgrp_gray2bin_bin; wire [10:0] wire_rdptr_g_q; wire [10:0] wire_rdptr_g1p_q; wire [10:0] wire_wrptr_g1p_q; wire [15:0] wire_fifo_ram_q_b; reg [10:0] delayed_wrptr_g; reg [10:0] wrptr_g; wire [10:0] wire_rs_brp_q; wire [10:0] wire_rs_bwp_q; wire [10:0] wire_rs_dgwp_q; wire [10:0] wire_ws_brp_q; wire [10:0] wire_ws_bwp_q; wire [10:0] wire_ws_dgrp_q; wire [10:0] wire_rdusedw_sub_result; wire [10:0] wire_wrusedw_sub_result; reg wire_rdempty_eq_comp_aeb_int; wire wire_rdempty_eq_comp_aeb; wire [10:0] wire_rdempty_eq_comp_dataa; wire [10:0] wire_rdempty_eq_comp_datab; reg wire_wrfull_eq_comp_aeb_int; wire wire_wrfull_eq_comp_aeb; wire [10:0] wire_wrfull_eq_comp_dataa; wire [10:0] wire_wrfull_eq_comp_datab; wire int_rdempty; wire int_wrfull; wire valid_rdreq; wire valid_wrreq; fifo_2k_a_gray2bin_8m4 rdptr_g_gray2bin ( .bin(wire_rdptr_g_gray2bin_bin), .gray(wire_rdptr_g_q)); fifo_2k_a_gray2bin_8m4 rs_dgwp_gray2bin ( .bin(wire_rs_dgwp_gray2bin_bin), .gray(wire_rs_dgwp_q)); fifo_2k_a_gray2bin_8m4 wrptr_g_gray2bin ( .bin(wire_wrptr_g_gray2bin_bin), .gray(wrptr_g)); fifo_2k_a_gray2bin_8m4 ws_dgrp_gray2bin ( .bin(wire_ws_dgrp_gray2bin_bin), .gray(wire_ws_dgrp_q)); fifo_2k_a_graycounter_726 rdptr_g ( .aclr(aclr), .clock(rdclk), .cnt_en(valid_rdreq), .q(wire_rdptr_g_q)); fifo_2k_a_graycounter_2r6 rdptr_g1p ( .aclr(aclr), .clock(rdclk), .cnt_en(valid_rdreq), .q(wire_rdptr_g1p_q)); fifo_2k_a_graycounter_2r6 wrptr_g1p ( .aclr(aclr), .clock(wrclk), .cnt_en(valid_wrreq), .q(wire_wrptr_g1p_q)); fifo_2k_altsyncram_6pl fifo_ram ( .address_a(wrptr_g), .address_b(((wire_rdptr_g_q & {11{int_rdempty}}) | (wire_rdptr_g1p_q & {11{(~ int_rdempty)}}))), .clock0(wrclk), .clock1(rdclk), .clocken1((valid_rdreq | int_rdempty)), .data_a(data), .q_b(wire_fifo_ram_q_b), .wren_a(valid_wrreq)); // synopsys translate_off initial delayed_wrptr_g = 0; // synopsys translate_on always @ ( posedge wrclk or posedge aclr) if (aclr == 1'b1) delayed_wrptr_g <= 11'b0; else delayed_wrptr_g <= wrptr_g; // synopsys translate_off initial wrptr_g = 0; // synopsys translate_on always @ ( posedge wrclk or posedge aclr) if (aclr == 1'b1) wrptr_g <= 11'b0; else if (valid_wrreq == 1'b1) wrptr_g <= wire_wrptr_g1p_q; fifo_2k_dffpipe_ab3 rs_brp ( .clock(rdclk), .clrn((~ aclr)), .d(wire_rdptr_g_gray2bin_bin), .q(wire_rs_brp_q)); fifo_2k_dffpipe_ab3 rs_bwp ( .clock(rdclk), .clrn((~ aclr)), .d(wire_rs_dgwp_gray2bin_bin), .q(wire_rs_bwp_q)); fifo_2k_alt_synch_pipe_dm2 rs_dgwp ( .clock(rdclk), .clrn((~ aclr)), .d(delayed_wrptr_g), .q(wire_rs_dgwp_q)); fifo_2k_dffpipe_ab3 ws_brp ( .clock(wrclk), .clrn((~ aclr)), .d(wire_ws_dgrp_gray2bin_bin), .q(wire_ws_brp_q)); fifo_2k_dffpipe_ab3 ws_bwp ( .clock(wrclk), .clrn((~ aclr)), .d(wire_wrptr_g_gray2bin_bin), .q(wire_ws_bwp_q)); fifo_2k_alt_synch_pipe_dm2 ws_dgrp ( .clock(wrclk), .clrn((~ aclr)), .d(wire_rdptr_g_q), .q(wire_ws_dgrp_q)); fifo_2k_add_sub_a18 rdusedw_sub ( .dataa(wire_rs_bwp_q), .datab(wire_rs_brp_q), .result(wire_rdusedw_sub_result)); fifo_2k_add_sub_a18 wrusedw_sub ( .dataa(wire_ws_bwp_q), .datab(wire_ws_brp_q), .result(wire_wrusedw_sub_result)); always @(wire_rdempty_eq_comp_dataa or wire_rdempty_eq_comp_datab) if (wire_rdempty_eq_comp_dataa == wire_rdempty_eq_comp_datab) begin wire_rdempty_eq_comp_aeb_int = 1'b1; end else begin wire_rdempty_eq_comp_aeb_int = 1'b0; end assign wire_rdempty_eq_comp_aeb = wire_rdempty_eq_comp_aeb_int; assign wire_rdempty_eq_comp_dataa = wire_rs_dgwp_q, wire_rdempty_eq_comp_datab = wire_rdptr_g_q; always @(wire_wrfull_eq_comp_dataa or wire_wrfull_eq_comp_datab) if (wire_wrfull_eq_comp_dataa == wire_wrfull_eq_comp_datab) begin wire_wrfull_eq_comp_aeb_int = 1'b1; end else begin wire_wrfull_eq_comp_aeb_int = 1'b0; end assign wire_wrfull_eq_comp_aeb = wire_wrfull_eq_comp_aeb_int; assign wire_wrfull_eq_comp_dataa = wire_ws_dgrp_q, wire_wrfull_eq_comp_datab = wire_wrptr_g1p_q; assign int_rdempty = wire_rdempty_eq_comp_aeb, int_wrfull = wire_wrfull_eq_comp_aeb, q = wire_fifo_ram_q_b, rdempty = int_rdempty, rdusedw = wire_rdusedw_sub_result, valid_rdreq = rdreq, valid_wrreq = wrreq, wrfull = int_wrfull, wrusedw = wire_wrusedw_sub_result; endmodule //fifo_2k_dcfifo_0cq //VALID FILE // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module fifo_2k ( data, wrreq, rdreq, rdclk, wrclk, aclr, q, rdempty, rdusedw, wrfull, wrusedw)/* synthesis synthesis_clearbox = 1 */; input [15:0] data; input wrreq; input rdreq; input rdclk; input wrclk; input aclr; output [15:0] q; output rdempty; output [10:0] rdusedw; output wrfull; output [10:0] wrusedw; wire sub_wire0; wire [10:0] sub_wire1; wire sub_wire2; wire [15:0] sub_wire3; wire [10:0] sub_wire4; wire rdempty = sub_wire0; wire [10:0] wrusedw = sub_wire1[10:0]; wire wrfull = sub_wire2; wire [15:0] q = sub_wire3[15:0]; wire [10:0] rdusedw = sub_wire4[10:0]; fifo_2k_dcfifo_0cq fifo_2k_dcfifo_0cq_component ( .wrclk (wrclk), .rdreq (rdreq), .aclr (aclr), .rdclk (rdclk), .wrreq (wrreq), .data (data), .rdempty (sub_wire0), .wrusedw (sub_wire1), .wrfull (sub_wire2), .q (sub_wire3), .rdusedw (sub_wire4)); endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: Depth NUMERIC "2048" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "2048" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "11" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdusedw 0 0 11 0 OUTPUT NODEFVAL rdusedw[10..0] // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrusedw 0 0 11 0 OUTPUT NODEFVAL wrusedw[10..0] // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 11 0 @rdusedw 0 0 11 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 11 0 @wrusedw 0 0 11 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.cmp FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.bsf FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_inst.v FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_waveforms.html TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_2k_bb.v000066400000000000000000000135041224274632000204050ustar00rootroot00000000000000// megafunction wizard: %FIFO%VBB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_2k.v // Megafunction Name(s): // dcfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.0 Build 168 06/22/2005 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2005 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. module fifo_2k ( data, wrreq, rdreq, rdclk, wrclk, aclr, q, rdempty, rdusedw, wrfull, wrusedw)/* synthesis synthesis_clearbox = 1 */; input [15:0] data; input wrreq; input rdreq; input rdclk; input wrclk; input aclr; output [15:0] q; output rdempty; output [10:0] rdusedw; output wrfull; output [10:0] wrusedw; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: Depth NUMERIC "2048" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "2048" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "11" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdusedw 0 0 11 0 OUTPUT NODEFVAL rdusedw[10..0] // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrusedw 0 0 11 0 OUTPUT NODEFVAL wrusedw[10..0] // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 11 0 @rdusedw 0 0 11 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 11 0 @wrusedw 0 0 11 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.cmp FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k.bsf FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_inst.v FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_waveforms.html TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_2k_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_4k.v000066400000000000000000002662241224274632000177550ustar00rootroot00000000000000// megafunction wizard: %FIFO%CBX% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_4k.v // Megafunction Name(s): // dcfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.0 Build 168 06/22/2005 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2005 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. //dcfifo ADD_RAM_OUTPUT_REGISTER="OFF" CLOCKS_ARE_SYNCHRONIZED="FALSE" DEVICE_FAMILY="Cyclone" LPM_NUMWORDS=4096 LPM_SHOWAHEAD="ON" LPM_WIDTH=16 LPM_WIDTHU=12 OVERFLOW_CHECKING="OFF" UNDERFLOW_CHECKING="OFF" USE_EAB="ON" aclr data q rdclk rdempty rdreq rdusedw wrclk wrfull wrreq wrusedw //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_altdpram 2004:11:30:11:29:56:SJ cbx_altsyncram 2005:03:24:13:58:56:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_dcfifo 2005:03:07:17:11:14:SJ cbx_fifo_common 2004:12:13:14:26:24:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_lpm_counter 2005:02:02:04:37:10:SJ cbx_lpm_decode 2004:12:13:14:19:12:SJ cbx_lpm_mux 2004:12:13:14:16:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_scfifo 2005:03:10:10:52:20:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //a_gray2bin device_family="Cyclone" WIDTH=12 bin gray //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_mgl 2005:05:19:13:51:58:SJ VERSION_END //synthesis_resources = //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_a_gray2bin_9m4 ( bin, gray) /* synthesis synthesis_clearbox=1 */; output [11:0] bin; input [11:0] gray; wire xor0; wire xor1; wire xor10; wire xor2; wire xor3; wire xor4; wire xor5; wire xor6; wire xor7; wire xor8; wire xor9; assign bin = {gray[11], xor10, xor9, xor8, xor7, xor6, xor5, xor4, xor3, xor2, xor1, xor0}, xor0 = (gray[0] ^ xor1), xor1 = (gray[1] ^ xor2), xor10 = (gray[11] ^ gray[10]), xor2 = (gray[2] ^ xor3), xor3 = (gray[3] ^ xor4), xor4 = (gray[4] ^ xor5), xor5 = (gray[5] ^ xor6), xor6 = (gray[6] ^ xor7), xor7 = (gray[7] ^ xor8), xor8 = (gray[8] ^ xor9), xor9 = (gray[9] ^ xor10); endmodule //fifo_4k_a_gray2bin_9m4 //a_graycounter DEVICE_FAMILY="Cyclone" WIDTH=12 aclr clock cnt_en q //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 13 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_a_graycounter_826 ( aclr, clock, cnt_en, q) /* synthesis synthesis_clearbox=1 */; input aclr; input clock; input cnt_en; output [11:0] q; wire [0:0] wire_countera_0cout; wire [0:0] wire_countera_1cout; wire [0:0] wire_countera_2cout; wire [0:0] wire_countera_3cout; wire [0:0] wire_countera_4cout; wire [0:0] wire_countera_5cout; wire [0:0] wire_countera_6cout; wire [0:0] wire_countera_7cout; wire [0:0] wire_countera_8cout; wire [0:0] wire_countera_9cout; wire [0:0] wire_countera_10cout; wire [11:0] wire_countera_regout; wire wire_parity_cout; wire wire_parity_regout; wire [11:0] power_modified_counter_values; wire sclr; wire updown; cyclone_lcell countera_0 ( .aclr(aclr), .cin(wire_parity_cout), .clk(clock), .combout(), .cout(wire_countera_0cout[0:0]), .dataa(cnt_en), .datab(wire_countera_regout[0:0]), .ena(1'b1), .regout(wire_countera_regout[0:0]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_0.cin_used = "true", countera_0.lut_mask = "c6a0", countera_0.operation_mode = "arithmetic", countera_0.sum_lutc_input = "cin", countera_0.synch_mode = "on", countera_0.lpm_type = "cyclone_lcell"; cyclone_lcell countera_1 ( .aclr(aclr), .cin(wire_countera_0cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_1cout[0:0]), .dataa(power_modified_counter_values[0]), .datab(power_modified_counter_values[1]), .ena(1'b1), .regout(wire_countera_regout[1:1]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_1.cin_used = "true", countera_1.lut_mask = "6c50", countera_1.operation_mode = "arithmetic", countera_1.sum_lutc_input = "cin", countera_1.synch_mode = "on", countera_1.lpm_type = "cyclone_lcell"; cyclone_lcell countera_2 ( .aclr(aclr), .cin(wire_countera_1cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_2cout[0:0]), .dataa(power_modified_counter_values[1]), .datab(power_modified_counter_values[2]), .ena(1'b1), .regout(wire_countera_regout[2:2]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_2.cin_used = "true", countera_2.lut_mask = "6c50", countera_2.operation_mode = "arithmetic", countera_2.sum_lutc_input = "cin", countera_2.synch_mode = "on", countera_2.lpm_type = "cyclone_lcell"; cyclone_lcell countera_3 ( .aclr(aclr), .cin(wire_countera_2cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_3cout[0:0]), .dataa(power_modified_counter_values[2]), .datab(power_modified_counter_values[3]), .ena(1'b1), .regout(wire_countera_regout[3:3]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_3.cin_used = "true", countera_3.lut_mask = "6c50", countera_3.operation_mode = "arithmetic", countera_3.sum_lutc_input = "cin", countera_3.synch_mode = "on", countera_3.lpm_type = "cyclone_lcell"; cyclone_lcell countera_4 ( .aclr(aclr), .cin(wire_countera_3cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_4cout[0:0]), .dataa(power_modified_counter_values[3]), .datab(power_modified_counter_values[4]), .ena(1'b1), .regout(wire_countera_regout[4:4]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_4.cin_used = "true", countera_4.lut_mask = "6c50", countera_4.operation_mode = "arithmetic", countera_4.sum_lutc_input = "cin", countera_4.synch_mode = "on", countera_4.lpm_type = "cyclone_lcell"; cyclone_lcell countera_5 ( .aclr(aclr), .cin(wire_countera_4cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_5cout[0:0]), .dataa(power_modified_counter_values[4]), .datab(power_modified_counter_values[5]), .ena(1'b1), .regout(wire_countera_regout[5:5]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_5.cin_used = "true", countera_5.lut_mask = "6c50", countera_5.operation_mode = "arithmetic", countera_5.sum_lutc_input = "cin", countera_5.synch_mode = "on", countera_5.lpm_type = "cyclone_lcell"; cyclone_lcell countera_6 ( .aclr(aclr), .cin(wire_countera_5cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_6cout[0:0]), .dataa(power_modified_counter_values[5]), .datab(power_modified_counter_values[6]), .ena(1'b1), .regout(wire_countera_regout[6:6]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_6.cin_used = "true", countera_6.lut_mask = "6c50", countera_6.operation_mode = "arithmetic", countera_6.sum_lutc_input = "cin", countera_6.synch_mode = "on", countera_6.lpm_type = "cyclone_lcell"; cyclone_lcell countera_7 ( .aclr(aclr), .cin(wire_countera_6cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_7cout[0:0]), .dataa(power_modified_counter_values[6]), .datab(power_modified_counter_values[7]), .ena(1'b1), .regout(wire_countera_regout[7:7]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_7.cin_used = "true", countera_7.lut_mask = "6c50", countera_7.operation_mode = "arithmetic", countera_7.sum_lutc_input = "cin", countera_7.synch_mode = "on", countera_7.lpm_type = "cyclone_lcell"; cyclone_lcell countera_8 ( .aclr(aclr), .cin(wire_countera_7cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_8cout[0:0]), .dataa(power_modified_counter_values[7]), .datab(power_modified_counter_values[8]), .ena(1'b1), .regout(wire_countera_regout[8:8]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_8.cin_used = "true", countera_8.lut_mask = "6c50", countera_8.operation_mode = "arithmetic", countera_8.sum_lutc_input = "cin", countera_8.synch_mode = "on", countera_8.lpm_type = "cyclone_lcell"; cyclone_lcell countera_9 ( .aclr(aclr), .cin(wire_countera_8cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_9cout[0:0]), .dataa(power_modified_counter_values[8]), .datab(power_modified_counter_values[9]), .ena(1'b1), .regout(wire_countera_regout[9:9]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_9.cin_used = "true", countera_9.lut_mask = "6c50", countera_9.operation_mode = "arithmetic", countera_9.sum_lutc_input = "cin", countera_9.synch_mode = "on", countera_9.lpm_type = "cyclone_lcell"; cyclone_lcell countera_10 ( .aclr(aclr), .cin(wire_countera_9cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_10cout[0:0]), .dataa(power_modified_counter_values[9]), .datab(power_modified_counter_values[10]), .ena(1'b1), .regout(wire_countera_regout[10:10]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_10.cin_used = "true", countera_10.lut_mask = "6c50", countera_10.operation_mode = "arithmetic", countera_10.sum_lutc_input = "cin", countera_10.synch_mode = "on", countera_10.lpm_type = "cyclone_lcell"; cyclone_lcell countera_11 ( .aclr(aclr), .cin(wire_countera_10cout[0:0]), .clk(clock), .combout(), .cout(), .dataa(power_modified_counter_values[11]), .ena(1'b1), .regout(wire_countera_regout[11:11]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datab(1'b1), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_11.cin_used = "true", countera_11.lut_mask = "5a5a", countera_11.operation_mode = "normal", countera_11.sum_lutc_input = "cin", countera_11.synch_mode = "on", countera_11.lpm_type = "cyclone_lcell"; cyclone_lcell parity ( .aclr(aclr), .cin(updown), .clk(clock), .combout(), .cout(wire_parity_cout), .dataa(cnt_en), .datab(wire_parity_regout), .ena(1'b1), .regout(wire_parity_regout), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam parity.cin_used = "true", parity.lut_mask = "6682", parity.operation_mode = "arithmetic", parity.synch_mode = "on", parity.lpm_type = "cyclone_lcell"; assign power_modified_counter_values = {wire_countera_regout[11:0]}, q = power_modified_counter_values, sclr = 1'b0, updown = 1'b1; endmodule //fifo_4k_a_graycounter_826 //a_graycounter DEVICE_FAMILY="Cyclone" PVALUE=1 WIDTH=12 aclr clock cnt_en q //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 13 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_a_graycounter_3r6 ( aclr, clock, cnt_en, q) /* synthesis synthesis_clearbox=1 */; input aclr; input clock; input cnt_en; output [11:0] q; wire [0:0] wire_countera_0cout; wire [0:0] wire_countera_1cout; wire [0:0] wire_countera_2cout; wire [0:0] wire_countera_3cout; wire [0:0] wire_countera_4cout; wire [0:0] wire_countera_5cout; wire [0:0] wire_countera_6cout; wire [0:0] wire_countera_7cout; wire [0:0] wire_countera_8cout; wire [0:0] wire_countera_9cout; wire [0:0] wire_countera_10cout; wire [11:0] wire_countera_regout; wire wire_parity_cout; wire wire_parity_regout; wire [11:0] power_modified_counter_values; wire sclr; wire updown; cyclone_lcell countera_0 ( .aclr(aclr), .cin(wire_parity_cout), .clk(clock), .combout(), .cout(wire_countera_0cout[0:0]), .dataa(cnt_en), .datab(wire_countera_regout[0:0]), .ena(1'b1), .regout(wire_countera_regout[0:0]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_0.cin_used = "true", countera_0.lut_mask = "c6a0", countera_0.operation_mode = "arithmetic", countera_0.sum_lutc_input = "cin", countera_0.synch_mode = "on", countera_0.lpm_type = "cyclone_lcell"; cyclone_lcell countera_1 ( .aclr(aclr), .cin(wire_countera_0cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_1cout[0:0]), .dataa(power_modified_counter_values[0]), .datab(power_modified_counter_values[1]), .ena(1'b1), .regout(wire_countera_regout[1:1]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_1.cin_used = "true", countera_1.lut_mask = "6c50", countera_1.operation_mode = "arithmetic", countera_1.sum_lutc_input = "cin", countera_1.synch_mode = "on", countera_1.lpm_type = "cyclone_lcell"; cyclone_lcell countera_2 ( .aclr(aclr), .cin(wire_countera_1cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_2cout[0:0]), .dataa(power_modified_counter_values[1]), .datab(power_modified_counter_values[2]), .ena(1'b1), .regout(wire_countera_regout[2:2]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_2.cin_used = "true", countera_2.lut_mask = "6c50", countera_2.operation_mode = "arithmetic", countera_2.sum_lutc_input = "cin", countera_2.synch_mode = "on", countera_2.lpm_type = "cyclone_lcell"; cyclone_lcell countera_3 ( .aclr(aclr), .cin(wire_countera_2cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_3cout[0:0]), .dataa(power_modified_counter_values[2]), .datab(power_modified_counter_values[3]), .ena(1'b1), .regout(wire_countera_regout[3:3]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_3.cin_used = "true", countera_3.lut_mask = "6c50", countera_3.operation_mode = "arithmetic", countera_3.sum_lutc_input = "cin", countera_3.synch_mode = "on", countera_3.lpm_type = "cyclone_lcell"; cyclone_lcell countera_4 ( .aclr(aclr), .cin(wire_countera_3cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_4cout[0:0]), .dataa(power_modified_counter_values[3]), .datab(power_modified_counter_values[4]), .ena(1'b1), .regout(wire_countera_regout[4:4]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_4.cin_used = "true", countera_4.lut_mask = "6c50", countera_4.operation_mode = "arithmetic", countera_4.sum_lutc_input = "cin", countera_4.synch_mode = "on", countera_4.lpm_type = "cyclone_lcell"; cyclone_lcell countera_5 ( .aclr(aclr), .cin(wire_countera_4cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_5cout[0:0]), .dataa(power_modified_counter_values[4]), .datab(power_modified_counter_values[5]), .ena(1'b1), .regout(wire_countera_regout[5:5]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_5.cin_used = "true", countera_5.lut_mask = "6c50", countera_5.operation_mode = "arithmetic", countera_5.sum_lutc_input = "cin", countera_5.synch_mode = "on", countera_5.lpm_type = "cyclone_lcell"; cyclone_lcell countera_6 ( .aclr(aclr), .cin(wire_countera_5cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_6cout[0:0]), .dataa(power_modified_counter_values[5]), .datab(power_modified_counter_values[6]), .ena(1'b1), .regout(wire_countera_regout[6:6]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_6.cin_used = "true", countera_6.lut_mask = "6c50", countera_6.operation_mode = "arithmetic", countera_6.sum_lutc_input = "cin", countera_6.synch_mode = "on", countera_6.lpm_type = "cyclone_lcell"; cyclone_lcell countera_7 ( .aclr(aclr), .cin(wire_countera_6cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_7cout[0:0]), .dataa(power_modified_counter_values[6]), .datab(power_modified_counter_values[7]), .ena(1'b1), .regout(wire_countera_regout[7:7]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_7.cin_used = "true", countera_7.lut_mask = "6c50", countera_7.operation_mode = "arithmetic", countera_7.sum_lutc_input = "cin", countera_7.synch_mode = "on", countera_7.lpm_type = "cyclone_lcell"; cyclone_lcell countera_8 ( .aclr(aclr), .cin(wire_countera_7cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_8cout[0:0]), .dataa(power_modified_counter_values[7]), .datab(power_modified_counter_values[8]), .ena(1'b1), .regout(wire_countera_regout[8:8]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_8.cin_used = "true", countera_8.lut_mask = "6c50", countera_8.operation_mode = "arithmetic", countera_8.sum_lutc_input = "cin", countera_8.synch_mode = "on", countera_8.lpm_type = "cyclone_lcell"; cyclone_lcell countera_9 ( .aclr(aclr), .cin(wire_countera_8cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_9cout[0:0]), .dataa(power_modified_counter_values[8]), .datab(power_modified_counter_values[9]), .ena(1'b1), .regout(wire_countera_regout[9:9]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_9.cin_used = "true", countera_9.lut_mask = "6c50", countera_9.operation_mode = "arithmetic", countera_9.sum_lutc_input = "cin", countera_9.synch_mode = "on", countera_9.lpm_type = "cyclone_lcell"; cyclone_lcell countera_10 ( .aclr(aclr), .cin(wire_countera_9cout[0:0]), .clk(clock), .combout(), .cout(wire_countera_10cout[0:0]), .dataa(power_modified_counter_values[9]), .datab(power_modified_counter_values[10]), .ena(1'b1), .regout(wire_countera_regout[10:10]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_10.cin_used = "true", countera_10.lut_mask = "6c50", countera_10.operation_mode = "arithmetic", countera_10.sum_lutc_input = "cin", countera_10.synch_mode = "on", countera_10.lpm_type = "cyclone_lcell"; cyclone_lcell countera_11 ( .aclr(aclr), .cin(wire_countera_10cout[0:0]), .clk(clock), .combout(), .cout(), .dataa(power_modified_counter_values[11]), .ena(1'b1), .regout(wire_countera_regout[11:11]), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datab(1'b1), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam countera_11.cin_used = "true", countera_11.lut_mask = "5a5a", countera_11.operation_mode = "normal", countera_11.sum_lutc_input = "cin", countera_11.synch_mode = "on", countera_11.lpm_type = "cyclone_lcell"; cyclone_lcell parity ( .aclr(aclr), .cin(updown), .clk(clock), .combout(), .cout(wire_parity_cout), .dataa(cnt_en), .datab((~ wire_parity_regout)), .ena(1'b1), .regout(wire_parity_regout), .sclr(sclr) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aload(1'b0), .datac(1'b1), .datad(1'b1), .inverta(1'b0), .regcascin(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam parity.cin_used = "true", parity.lut_mask = "9982", parity.operation_mode = "arithmetic", parity.synch_mode = "on", parity.lpm_type = "cyclone_lcell"; assign power_modified_counter_values = {wire_countera_regout[11:1], (~ wire_countera_regout[0])}, q = power_modified_counter_values, sclr = 1'b0, updown = 1'b1; endmodule //fifo_4k_a_graycounter_3r6 //altsyncram ADDRESS_REG_B="CLOCK1" DEVICE_FAMILY="Cyclone" OPERATION_MODE="DUAL_PORT" OUTDATA_REG_B="UNREGISTERED" WIDTH_A=16 WIDTH_B=16 WIDTH_BYTEENA_A=1 WIDTHAD_A=12 WIDTHAD_B=12 address_a address_b clock0 clock1 clocken1 data_a q_b wren_a //VERSION_BEGIN 5.0 cbx_altsyncram 2005:03:24:13:58:56:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_lpm_decode 2004:12:13:14:19:12:SJ cbx_lpm_mux 2004:12:13:14:16:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //synthesis_resources = M4K 16 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_altsyncram_8pl ( address_a, address_b, clock0, clock1, clocken1, data_a, q_b, wren_a) /* synthesis synthesis_clearbox=1 */; input [11:0] address_a; input [11:0] address_b; input clock0; input clock1; input clocken1; input [15:0] data_a; output [15:0] q_b; input wren_a; wire [0:0] wire_ram_block3a_0portbdataout; wire [0:0] wire_ram_block3a_1portbdataout; wire [0:0] wire_ram_block3a_2portbdataout; wire [0:0] wire_ram_block3a_3portbdataout; wire [0:0] wire_ram_block3a_4portbdataout; wire [0:0] wire_ram_block3a_5portbdataout; wire [0:0] wire_ram_block3a_6portbdataout; wire [0:0] wire_ram_block3a_7portbdataout; wire [0:0] wire_ram_block3a_8portbdataout; wire [0:0] wire_ram_block3a_9portbdataout; wire [0:0] wire_ram_block3a_10portbdataout; wire [0:0] wire_ram_block3a_11portbdataout; wire [0:0] wire_ram_block3a_12portbdataout; wire [0:0] wire_ram_block3a_13portbdataout; wire [0:0] wire_ram_block3a_14portbdataout; wire [0:0] wire_ram_block3a_15portbdataout; wire [11:0] address_a_wire; wire [11:0] address_b_wire; cyclone_ram_block ram_block3a_0 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[0]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_0portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_0.connectivity_checking = "OFF", ram_block3a_0.logical_ram_name = "ALTSYNCRAM", ram_block3a_0.mixed_port_feed_through_mode = "dont_care", ram_block3a_0.operation_mode = "dual_port", ram_block3a_0.port_a_address_width = 12, ram_block3a_0.port_a_data_width = 1, ram_block3a_0.port_a_first_address = 0, ram_block3a_0.port_a_first_bit_number = 0, ram_block3a_0.port_a_last_address = 4095, ram_block3a_0.port_a_logical_ram_depth = 4096, ram_block3a_0.port_a_logical_ram_width = 16, ram_block3a_0.port_b_address_clear = "none", ram_block3a_0.port_b_address_clock = "clock1", ram_block3a_0.port_b_address_width = 12, ram_block3a_0.port_b_data_out_clear = "none", ram_block3a_0.port_b_data_out_clock = "none", ram_block3a_0.port_b_data_width = 1, ram_block3a_0.port_b_first_address = 0, ram_block3a_0.port_b_first_bit_number = 0, ram_block3a_0.port_b_last_address = 4095, ram_block3a_0.port_b_logical_ram_depth = 4096, ram_block3a_0.port_b_logical_ram_width = 16, ram_block3a_0.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_0.ram_block_type = "auto", ram_block3a_0.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_1 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[1]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_1portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_1.connectivity_checking = "OFF", ram_block3a_1.logical_ram_name = "ALTSYNCRAM", ram_block3a_1.mixed_port_feed_through_mode = "dont_care", ram_block3a_1.operation_mode = "dual_port", ram_block3a_1.port_a_address_width = 12, ram_block3a_1.port_a_data_width = 1, ram_block3a_1.port_a_first_address = 0, ram_block3a_1.port_a_first_bit_number = 1, ram_block3a_1.port_a_last_address = 4095, ram_block3a_1.port_a_logical_ram_depth = 4096, ram_block3a_1.port_a_logical_ram_width = 16, ram_block3a_1.port_b_address_clear = "none", ram_block3a_1.port_b_address_clock = "clock1", ram_block3a_1.port_b_address_width = 12, ram_block3a_1.port_b_data_out_clear = "none", ram_block3a_1.port_b_data_out_clock = "none", ram_block3a_1.port_b_data_width = 1, ram_block3a_1.port_b_first_address = 0, ram_block3a_1.port_b_first_bit_number = 1, ram_block3a_1.port_b_last_address = 4095, ram_block3a_1.port_b_logical_ram_depth = 4096, ram_block3a_1.port_b_logical_ram_width = 16, ram_block3a_1.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_1.ram_block_type = "auto", ram_block3a_1.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_2 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[2]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_2portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_2.connectivity_checking = "OFF", ram_block3a_2.logical_ram_name = "ALTSYNCRAM", ram_block3a_2.mixed_port_feed_through_mode = "dont_care", ram_block3a_2.operation_mode = "dual_port", ram_block3a_2.port_a_address_width = 12, ram_block3a_2.port_a_data_width = 1, ram_block3a_2.port_a_first_address = 0, ram_block3a_2.port_a_first_bit_number = 2, ram_block3a_2.port_a_last_address = 4095, ram_block3a_2.port_a_logical_ram_depth = 4096, ram_block3a_2.port_a_logical_ram_width = 16, ram_block3a_2.port_b_address_clear = "none", ram_block3a_2.port_b_address_clock = "clock1", ram_block3a_2.port_b_address_width = 12, ram_block3a_2.port_b_data_out_clear = "none", ram_block3a_2.port_b_data_out_clock = "none", ram_block3a_2.port_b_data_width = 1, ram_block3a_2.port_b_first_address = 0, ram_block3a_2.port_b_first_bit_number = 2, ram_block3a_2.port_b_last_address = 4095, ram_block3a_2.port_b_logical_ram_depth = 4096, ram_block3a_2.port_b_logical_ram_width = 16, ram_block3a_2.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_2.ram_block_type = "auto", ram_block3a_2.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_3 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[3]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_3portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_3.connectivity_checking = "OFF", ram_block3a_3.logical_ram_name = "ALTSYNCRAM", ram_block3a_3.mixed_port_feed_through_mode = "dont_care", ram_block3a_3.operation_mode = "dual_port", ram_block3a_3.port_a_address_width = 12, ram_block3a_3.port_a_data_width = 1, ram_block3a_3.port_a_first_address = 0, ram_block3a_3.port_a_first_bit_number = 3, ram_block3a_3.port_a_last_address = 4095, ram_block3a_3.port_a_logical_ram_depth = 4096, ram_block3a_3.port_a_logical_ram_width = 16, ram_block3a_3.port_b_address_clear = "none", ram_block3a_3.port_b_address_clock = "clock1", ram_block3a_3.port_b_address_width = 12, ram_block3a_3.port_b_data_out_clear = "none", ram_block3a_3.port_b_data_out_clock = "none", ram_block3a_3.port_b_data_width = 1, ram_block3a_3.port_b_first_address = 0, ram_block3a_3.port_b_first_bit_number = 3, ram_block3a_3.port_b_last_address = 4095, ram_block3a_3.port_b_logical_ram_depth = 4096, ram_block3a_3.port_b_logical_ram_width = 16, ram_block3a_3.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_3.ram_block_type = "auto", ram_block3a_3.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_4 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[4]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_4portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_4.connectivity_checking = "OFF", ram_block3a_4.logical_ram_name = "ALTSYNCRAM", ram_block3a_4.mixed_port_feed_through_mode = "dont_care", ram_block3a_4.operation_mode = "dual_port", ram_block3a_4.port_a_address_width = 12, ram_block3a_4.port_a_data_width = 1, ram_block3a_4.port_a_first_address = 0, ram_block3a_4.port_a_first_bit_number = 4, ram_block3a_4.port_a_last_address = 4095, ram_block3a_4.port_a_logical_ram_depth = 4096, ram_block3a_4.port_a_logical_ram_width = 16, ram_block3a_4.port_b_address_clear = "none", ram_block3a_4.port_b_address_clock = "clock1", ram_block3a_4.port_b_address_width = 12, ram_block3a_4.port_b_data_out_clear = "none", ram_block3a_4.port_b_data_out_clock = "none", ram_block3a_4.port_b_data_width = 1, ram_block3a_4.port_b_first_address = 0, ram_block3a_4.port_b_first_bit_number = 4, ram_block3a_4.port_b_last_address = 4095, ram_block3a_4.port_b_logical_ram_depth = 4096, ram_block3a_4.port_b_logical_ram_width = 16, ram_block3a_4.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_4.ram_block_type = "auto", ram_block3a_4.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_5 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[5]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_5portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_5.connectivity_checking = "OFF", ram_block3a_5.logical_ram_name = "ALTSYNCRAM", ram_block3a_5.mixed_port_feed_through_mode = "dont_care", ram_block3a_5.operation_mode = "dual_port", ram_block3a_5.port_a_address_width = 12, ram_block3a_5.port_a_data_width = 1, ram_block3a_5.port_a_first_address = 0, ram_block3a_5.port_a_first_bit_number = 5, ram_block3a_5.port_a_last_address = 4095, ram_block3a_5.port_a_logical_ram_depth = 4096, ram_block3a_5.port_a_logical_ram_width = 16, ram_block3a_5.port_b_address_clear = "none", ram_block3a_5.port_b_address_clock = "clock1", ram_block3a_5.port_b_address_width = 12, ram_block3a_5.port_b_data_out_clear = "none", ram_block3a_5.port_b_data_out_clock = "none", ram_block3a_5.port_b_data_width = 1, ram_block3a_5.port_b_first_address = 0, ram_block3a_5.port_b_first_bit_number = 5, ram_block3a_5.port_b_last_address = 4095, ram_block3a_5.port_b_logical_ram_depth = 4096, ram_block3a_5.port_b_logical_ram_width = 16, ram_block3a_5.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_5.ram_block_type = "auto", ram_block3a_5.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_6 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[6]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_6portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_6.connectivity_checking = "OFF", ram_block3a_6.logical_ram_name = "ALTSYNCRAM", ram_block3a_6.mixed_port_feed_through_mode = "dont_care", ram_block3a_6.operation_mode = "dual_port", ram_block3a_6.port_a_address_width = 12, ram_block3a_6.port_a_data_width = 1, ram_block3a_6.port_a_first_address = 0, ram_block3a_6.port_a_first_bit_number = 6, ram_block3a_6.port_a_last_address = 4095, ram_block3a_6.port_a_logical_ram_depth = 4096, ram_block3a_6.port_a_logical_ram_width = 16, ram_block3a_6.port_b_address_clear = "none", ram_block3a_6.port_b_address_clock = "clock1", ram_block3a_6.port_b_address_width = 12, ram_block3a_6.port_b_data_out_clear = "none", ram_block3a_6.port_b_data_out_clock = "none", ram_block3a_6.port_b_data_width = 1, ram_block3a_6.port_b_first_address = 0, ram_block3a_6.port_b_first_bit_number = 6, ram_block3a_6.port_b_last_address = 4095, ram_block3a_6.port_b_logical_ram_depth = 4096, ram_block3a_6.port_b_logical_ram_width = 16, ram_block3a_6.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_6.ram_block_type = "auto", ram_block3a_6.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_7 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[7]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_7portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_7.connectivity_checking = "OFF", ram_block3a_7.logical_ram_name = "ALTSYNCRAM", ram_block3a_7.mixed_port_feed_through_mode = "dont_care", ram_block3a_7.operation_mode = "dual_port", ram_block3a_7.port_a_address_width = 12, ram_block3a_7.port_a_data_width = 1, ram_block3a_7.port_a_first_address = 0, ram_block3a_7.port_a_first_bit_number = 7, ram_block3a_7.port_a_last_address = 4095, ram_block3a_7.port_a_logical_ram_depth = 4096, ram_block3a_7.port_a_logical_ram_width = 16, ram_block3a_7.port_b_address_clear = "none", ram_block3a_7.port_b_address_clock = "clock1", ram_block3a_7.port_b_address_width = 12, ram_block3a_7.port_b_data_out_clear = "none", ram_block3a_7.port_b_data_out_clock = "none", ram_block3a_7.port_b_data_width = 1, ram_block3a_7.port_b_first_address = 0, ram_block3a_7.port_b_first_bit_number = 7, ram_block3a_7.port_b_last_address = 4095, ram_block3a_7.port_b_logical_ram_depth = 4096, ram_block3a_7.port_b_logical_ram_width = 16, ram_block3a_7.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_7.ram_block_type = "auto", ram_block3a_7.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_8 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[8]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_8portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_8.connectivity_checking = "OFF", ram_block3a_8.logical_ram_name = "ALTSYNCRAM", ram_block3a_8.mixed_port_feed_through_mode = "dont_care", ram_block3a_8.operation_mode = "dual_port", ram_block3a_8.port_a_address_width = 12, ram_block3a_8.port_a_data_width = 1, ram_block3a_8.port_a_first_address = 0, ram_block3a_8.port_a_first_bit_number = 8, ram_block3a_8.port_a_last_address = 4095, ram_block3a_8.port_a_logical_ram_depth = 4096, ram_block3a_8.port_a_logical_ram_width = 16, ram_block3a_8.port_b_address_clear = "none", ram_block3a_8.port_b_address_clock = "clock1", ram_block3a_8.port_b_address_width = 12, ram_block3a_8.port_b_data_out_clear = "none", ram_block3a_8.port_b_data_out_clock = "none", ram_block3a_8.port_b_data_width = 1, ram_block3a_8.port_b_first_address = 0, ram_block3a_8.port_b_first_bit_number = 8, ram_block3a_8.port_b_last_address = 4095, ram_block3a_8.port_b_logical_ram_depth = 4096, ram_block3a_8.port_b_logical_ram_width = 16, ram_block3a_8.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_8.ram_block_type = "auto", ram_block3a_8.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_9 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[9]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_9portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_9.connectivity_checking = "OFF", ram_block3a_9.logical_ram_name = "ALTSYNCRAM", ram_block3a_9.mixed_port_feed_through_mode = "dont_care", ram_block3a_9.operation_mode = "dual_port", ram_block3a_9.port_a_address_width = 12, ram_block3a_9.port_a_data_width = 1, ram_block3a_9.port_a_first_address = 0, ram_block3a_9.port_a_first_bit_number = 9, ram_block3a_9.port_a_last_address = 4095, ram_block3a_9.port_a_logical_ram_depth = 4096, ram_block3a_9.port_a_logical_ram_width = 16, ram_block3a_9.port_b_address_clear = "none", ram_block3a_9.port_b_address_clock = "clock1", ram_block3a_9.port_b_address_width = 12, ram_block3a_9.port_b_data_out_clear = "none", ram_block3a_9.port_b_data_out_clock = "none", ram_block3a_9.port_b_data_width = 1, ram_block3a_9.port_b_first_address = 0, ram_block3a_9.port_b_first_bit_number = 9, ram_block3a_9.port_b_last_address = 4095, ram_block3a_9.port_b_logical_ram_depth = 4096, ram_block3a_9.port_b_logical_ram_width = 16, ram_block3a_9.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_9.ram_block_type = "auto", ram_block3a_9.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_10 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[10]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_10portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_10.connectivity_checking = "OFF", ram_block3a_10.logical_ram_name = "ALTSYNCRAM", ram_block3a_10.mixed_port_feed_through_mode = "dont_care", ram_block3a_10.operation_mode = "dual_port", ram_block3a_10.port_a_address_width = 12, ram_block3a_10.port_a_data_width = 1, ram_block3a_10.port_a_first_address = 0, ram_block3a_10.port_a_first_bit_number = 10, ram_block3a_10.port_a_last_address = 4095, ram_block3a_10.port_a_logical_ram_depth = 4096, ram_block3a_10.port_a_logical_ram_width = 16, ram_block3a_10.port_b_address_clear = "none", ram_block3a_10.port_b_address_clock = "clock1", ram_block3a_10.port_b_address_width = 12, ram_block3a_10.port_b_data_out_clear = "none", ram_block3a_10.port_b_data_out_clock = "none", ram_block3a_10.port_b_data_width = 1, ram_block3a_10.port_b_first_address = 0, ram_block3a_10.port_b_first_bit_number = 10, ram_block3a_10.port_b_last_address = 4095, ram_block3a_10.port_b_logical_ram_depth = 4096, ram_block3a_10.port_b_logical_ram_width = 16, ram_block3a_10.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_10.ram_block_type = "auto", ram_block3a_10.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_11 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[11]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_11portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_11.connectivity_checking = "OFF", ram_block3a_11.logical_ram_name = "ALTSYNCRAM", ram_block3a_11.mixed_port_feed_through_mode = "dont_care", ram_block3a_11.operation_mode = "dual_port", ram_block3a_11.port_a_address_width = 12, ram_block3a_11.port_a_data_width = 1, ram_block3a_11.port_a_first_address = 0, ram_block3a_11.port_a_first_bit_number = 11, ram_block3a_11.port_a_last_address = 4095, ram_block3a_11.port_a_logical_ram_depth = 4096, ram_block3a_11.port_a_logical_ram_width = 16, ram_block3a_11.port_b_address_clear = "none", ram_block3a_11.port_b_address_clock = "clock1", ram_block3a_11.port_b_address_width = 12, ram_block3a_11.port_b_data_out_clear = "none", ram_block3a_11.port_b_data_out_clock = "none", ram_block3a_11.port_b_data_width = 1, ram_block3a_11.port_b_first_address = 0, ram_block3a_11.port_b_first_bit_number = 11, ram_block3a_11.port_b_last_address = 4095, ram_block3a_11.port_b_logical_ram_depth = 4096, ram_block3a_11.port_b_logical_ram_width = 16, ram_block3a_11.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_11.ram_block_type = "auto", ram_block3a_11.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_12 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[12]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_12portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_12.connectivity_checking = "OFF", ram_block3a_12.logical_ram_name = "ALTSYNCRAM", ram_block3a_12.mixed_port_feed_through_mode = "dont_care", ram_block3a_12.operation_mode = "dual_port", ram_block3a_12.port_a_address_width = 12, ram_block3a_12.port_a_data_width = 1, ram_block3a_12.port_a_first_address = 0, ram_block3a_12.port_a_first_bit_number = 12, ram_block3a_12.port_a_last_address = 4095, ram_block3a_12.port_a_logical_ram_depth = 4096, ram_block3a_12.port_a_logical_ram_width = 16, ram_block3a_12.port_b_address_clear = "none", ram_block3a_12.port_b_address_clock = "clock1", ram_block3a_12.port_b_address_width = 12, ram_block3a_12.port_b_data_out_clear = "none", ram_block3a_12.port_b_data_out_clock = "none", ram_block3a_12.port_b_data_width = 1, ram_block3a_12.port_b_first_address = 0, ram_block3a_12.port_b_first_bit_number = 12, ram_block3a_12.port_b_last_address = 4095, ram_block3a_12.port_b_logical_ram_depth = 4096, ram_block3a_12.port_b_logical_ram_width = 16, ram_block3a_12.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_12.ram_block_type = "auto", ram_block3a_12.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_13 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[13]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_13portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_13.connectivity_checking = "OFF", ram_block3a_13.logical_ram_name = "ALTSYNCRAM", ram_block3a_13.mixed_port_feed_through_mode = "dont_care", ram_block3a_13.operation_mode = "dual_port", ram_block3a_13.port_a_address_width = 12, ram_block3a_13.port_a_data_width = 1, ram_block3a_13.port_a_first_address = 0, ram_block3a_13.port_a_first_bit_number = 13, ram_block3a_13.port_a_last_address = 4095, ram_block3a_13.port_a_logical_ram_depth = 4096, ram_block3a_13.port_a_logical_ram_width = 16, ram_block3a_13.port_b_address_clear = "none", ram_block3a_13.port_b_address_clock = "clock1", ram_block3a_13.port_b_address_width = 12, ram_block3a_13.port_b_data_out_clear = "none", ram_block3a_13.port_b_data_out_clock = "none", ram_block3a_13.port_b_data_width = 1, ram_block3a_13.port_b_first_address = 0, ram_block3a_13.port_b_first_bit_number = 13, ram_block3a_13.port_b_last_address = 4095, ram_block3a_13.port_b_logical_ram_depth = 4096, ram_block3a_13.port_b_logical_ram_width = 16, ram_block3a_13.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_13.ram_block_type = "auto", ram_block3a_13.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_14 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[14]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_14portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_14.connectivity_checking = "OFF", ram_block3a_14.logical_ram_name = "ALTSYNCRAM", ram_block3a_14.mixed_port_feed_through_mode = "dont_care", ram_block3a_14.operation_mode = "dual_port", ram_block3a_14.port_a_address_width = 12, ram_block3a_14.port_a_data_width = 1, ram_block3a_14.port_a_first_address = 0, ram_block3a_14.port_a_first_bit_number = 14, ram_block3a_14.port_a_last_address = 4095, ram_block3a_14.port_a_logical_ram_depth = 4096, ram_block3a_14.port_a_logical_ram_width = 16, ram_block3a_14.port_b_address_clear = "none", ram_block3a_14.port_b_address_clock = "clock1", ram_block3a_14.port_b_address_width = 12, ram_block3a_14.port_b_data_out_clear = "none", ram_block3a_14.port_b_data_out_clock = "none", ram_block3a_14.port_b_data_width = 1, ram_block3a_14.port_b_first_address = 0, ram_block3a_14.port_b_first_bit_number = 14, ram_block3a_14.port_b_last_address = 4095, ram_block3a_14.port_b_logical_ram_depth = 4096, ram_block3a_14.port_b_logical_ram_width = 16, ram_block3a_14.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_14.ram_block_type = "auto", ram_block3a_14.lpm_type = "cyclone_ram_block"; cyclone_ram_block ram_block3a_15 ( .clk0(clock0), .clk1(clock1), .ena0(wren_a), .ena1(clocken1), .portaaddr({address_a_wire[11:0]}), .portadatain({data_a[15]}), .portadataout(), .portawe(1'b1), .portbaddr({address_b_wire[11:0]}), .portbdataout(wire_ram_block3a_15portbdataout[0:0]), .portbrewe(1'b1) `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .clr0(1'b0), .clr1(1'b0), .portabyteenamasks(1'b1), .portbbyteenamasks(1'b1), .portbdatain(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .devclrn(), .devpor() // synopsys translate_on ); defparam ram_block3a_15.connectivity_checking = "OFF", ram_block3a_15.logical_ram_name = "ALTSYNCRAM", ram_block3a_15.mixed_port_feed_through_mode = "dont_care", ram_block3a_15.operation_mode = "dual_port", ram_block3a_15.port_a_address_width = 12, ram_block3a_15.port_a_data_width = 1, ram_block3a_15.port_a_first_address = 0, ram_block3a_15.port_a_first_bit_number = 15, ram_block3a_15.port_a_last_address = 4095, ram_block3a_15.port_a_logical_ram_depth = 4096, ram_block3a_15.port_a_logical_ram_width = 16, ram_block3a_15.port_b_address_clear = "none", ram_block3a_15.port_b_address_clock = "clock1", ram_block3a_15.port_b_address_width = 12, ram_block3a_15.port_b_data_out_clear = "none", ram_block3a_15.port_b_data_out_clock = "none", ram_block3a_15.port_b_data_width = 1, ram_block3a_15.port_b_first_address = 0, ram_block3a_15.port_b_first_bit_number = 15, ram_block3a_15.port_b_last_address = 4095, ram_block3a_15.port_b_logical_ram_depth = 4096, ram_block3a_15.port_b_logical_ram_width = 16, ram_block3a_15.port_b_read_enable_write_enable_clock = "clock1", ram_block3a_15.ram_block_type = "auto", ram_block3a_15.lpm_type = "cyclone_ram_block"; assign address_a_wire = address_a, address_b_wire = address_b, q_b = {wire_ram_block3a_15portbdataout[0], wire_ram_block3a_14portbdataout[0], wire_ram_block3a_13portbdataout[0], wire_ram_block3a_12portbdataout[0], wire_ram_block3a_11portbdataout[0], wire_ram_block3a_10portbdataout[0], wire_ram_block3a_9portbdataout[0], wire_ram_block3a_8portbdataout[0], wire_ram_block3a_7portbdataout[0], wire_ram_block3a_6portbdataout[0], wire_ram_block3a_5portbdataout[0], wire_ram_block3a_4portbdataout[0], wire_ram_block3a_3portbdataout[0], wire_ram_block3a_2portbdataout[0], wire_ram_block3a_1portbdataout[0], wire_ram_block3a_0portbdataout[0]}; endmodule //fifo_4k_altsyncram_8pl //dffpipe DELAY=1 WIDTH=12 clock clrn d q //VERSION_BEGIN 5.0 cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //synthesis_resources = lut 12 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_dffpipe_bb3 ( clock, clrn, d, q) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="AUTO_SHIFT_REGISTER_RECOGNITION=OFF" */; input clock; input clrn; input [11:0] d; output [11:0] q; wire [11:0] wire_dffe4a_D; reg [11:0] dffe4a; wire ena; wire prn; wire sclr; // synopsys translate_off initial dffe4a[0:0] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[0:0] <= 1'b1; else if (clrn == 1'b0) dffe4a[0:0] <= 1'b0; else if (ena == 1'b1) dffe4a[0:0] <= wire_dffe4a_D[0:0]; // synopsys translate_off initial dffe4a[1:1] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[1:1] <= 1'b1; else if (clrn == 1'b0) dffe4a[1:1] <= 1'b0; else if (ena == 1'b1) dffe4a[1:1] <= wire_dffe4a_D[1:1]; // synopsys translate_off initial dffe4a[2:2] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[2:2] <= 1'b1; else if (clrn == 1'b0) dffe4a[2:2] <= 1'b0; else if (ena == 1'b1) dffe4a[2:2] <= wire_dffe4a_D[2:2]; // synopsys translate_off initial dffe4a[3:3] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[3:3] <= 1'b1; else if (clrn == 1'b0) dffe4a[3:3] <= 1'b0; else if (ena == 1'b1) dffe4a[3:3] <= wire_dffe4a_D[3:3]; // synopsys translate_off initial dffe4a[4:4] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[4:4] <= 1'b1; else if (clrn == 1'b0) dffe4a[4:4] <= 1'b0; else if (ena == 1'b1) dffe4a[4:4] <= wire_dffe4a_D[4:4]; // synopsys translate_off initial dffe4a[5:5] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[5:5] <= 1'b1; else if (clrn == 1'b0) dffe4a[5:5] <= 1'b0; else if (ena == 1'b1) dffe4a[5:5] <= wire_dffe4a_D[5:5]; // synopsys translate_off initial dffe4a[6:6] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[6:6] <= 1'b1; else if (clrn == 1'b0) dffe4a[6:6] <= 1'b0; else if (ena == 1'b1) dffe4a[6:6] <= wire_dffe4a_D[6:6]; // synopsys translate_off initial dffe4a[7:7] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[7:7] <= 1'b1; else if (clrn == 1'b0) dffe4a[7:7] <= 1'b0; else if (ena == 1'b1) dffe4a[7:7] <= wire_dffe4a_D[7:7]; // synopsys translate_off initial dffe4a[8:8] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[8:8] <= 1'b1; else if (clrn == 1'b0) dffe4a[8:8] <= 1'b0; else if (ena == 1'b1) dffe4a[8:8] <= wire_dffe4a_D[8:8]; // synopsys translate_off initial dffe4a[9:9] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[9:9] <= 1'b1; else if (clrn == 1'b0) dffe4a[9:9] <= 1'b0; else if (ena == 1'b1) dffe4a[9:9] <= wire_dffe4a_D[9:9]; // synopsys translate_off initial dffe4a[10:10] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[10:10] <= 1'b1; else if (clrn == 1'b0) dffe4a[10:10] <= 1'b0; else if (ena == 1'b1) dffe4a[10:10] <= wire_dffe4a_D[10:10]; // synopsys translate_off initial dffe4a[11:11] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe4a[11:11] <= 1'b1; else if (clrn == 1'b0) dffe4a[11:11] <= 1'b0; else if (ena == 1'b1) dffe4a[11:11] <= wire_dffe4a_D[11:11]; assign wire_dffe4a_D = (d & {12{(~ sclr)}}); assign ena = 1'b1, prn = 1'b1, q = dffe4a, sclr = 1'b0; endmodule //fifo_4k_dffpipe_bb3 //dffpipe WIDTH=12 clock clrn d q //VERSION_BEGIN 5.0 cbx_a_gray2bin 2004:03:06:00:52:20:SJ cbx_a_graycounter 2004:10:01:12:13:16:SJ cbx_altdpram 2004:11:30:11:29:56:SJ cbx_altsyncram 2005:03:24:13:58:56:SJ cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_dcfifo 2005:03:07:17:11:14:SJ cbx_fifo_common 2004:12:13:14:26:24:SJ cbx_flex10ke 2002:10:18:16:54:38:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_lpm_counter 2005:02:02:04:37:10:SJ cbx_lpm_decode 2004:12:13:14:19:12:SJ cbx_lpm_mux 2004:12:13:14:16:38:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_scfifo 2005:03:10:10:52:20:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //dffpipe WIDTH=12 clock clrn d q //VERSION_BEGIN 5.0 cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratixii 2004:12:22:13:27:12:SJ cbx_util_mgl 2005:04:04:13:50:06:SJ VERSION_END //synthesis_resources = lut 12 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_dffpipe_em2 ( clock, clrn, d, q) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="AUTO_SHIFT_REGISTER_RECOGNITION=OFF" */; input clock; input clrn; input [11:0] d; output [11:0] q; wire [11:0] wire_dffe6a_D; reg [11:0] dffe6a; wire ena; wire prn; wire sclr; // synopsys translate_off initial dffe6a[0:0] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[0:0] <= 1'b1; else if (clrn == 1'b0) dffe6a[0:0] <= 1'b0; else if (ena == 1'b1) dffe6a[0:0] <= wire_dffe6a_D[0:0]; // synopsys translate_off initial dffe6a[1:1] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[1:1] <= 1'b1; else if (clrn == 1'b0) dffe6a[1:1] <= 1'b0; else if (ena == 1'b1) dffe6a[1:1] <= wire_dffe6a_D[1:1]; // synopsys translate_off initial dffe6a[2:2] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[2:2] <= 1'b1; else if (clrn == 1'b0) dffe6a[2:2] <= 1'b0; else if (ena == 1'b1) dffe6a[2:2] <= wire_dffe6a_D[2:2]; // synopsys translate_off initial dffe6a[3:3] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[3:3] <= 1'b1; else if (clrn == 1'b0) dffe6a[3:3] <= 1'b0; else if (ena == 1'b1) dffe6a[3:3] <= wire_dffe6a_D[3:3]; // synopsys translate_off initial dffe6a[4:4] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[4:4] <= 1'b1; else if (clrn == 1'b0) dffe6a[4:4] <= 1'b0; else if (ena == 1'b1) dffe6a[4:4] <= wire_dffe6a_D[4:4]; // synopsys translate_off initial dffe6a[5:5] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[5:5] <= 1'b1; else if (clrn == 1'b0) dffe6a[5:5] <= 1'b0; else if (ena == 1'b1) dffe6a[5:5] <= wire_dffe6a_D[5:5]; // synopsys translate_off initial dffe6a[6:6] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[6:6] <= 1'b1; else if (clrn == 1'b0) dffe6a[6:6] <= 1'b0; else if (ena == 1'b1) dffe6a[6:6] <= wire_dffe6a_D[6:6]; // synopsys translate_off initial dffe6a[7:7] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[7:7] <= 1'b1; else if (clrn == 1'b0) dffe6a[7:7] <= 1'b0; else if (ena == 1'b1) dffe6a[7:7] <= wire_dffe6a_D[7:7]; // synopsys translate_off initial dffe6a[8:8] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[8:8] <= 1'b1; else if (clrn == 1'b0) dffe6a[8:8] <= 1'b0; else if (ena == 1'b1) dffe6a[8:8] <= wire_dffe6a_D[8:8]; // synopsys translate_off initial dffe6a[9:9] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[9:9] <= 1'b1; else if (clrn == 1'b0) dffe6a[9:9] <= 1'b0; else if (ena == 1'b1) dffe6a[9:9] <= wire_dffe6a_D[9:9]; // synopsys translate_off initial dffe6a[10:10] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[10:10] <= 1'b1; else if (clrn == 1'b0) dffe6a[10:10] <= 1'b0; else if (ena == 1'b1) dffe6a[10:10] <= wire_dffe6a_D[10:10]; // synopsys translate_off initial dffe6a[11:11] = 0; // synopsys translate_on always @ ( posedge clock or negedge prn or negedge clrn) if (prn == 1'b0) dffe6a[11:11] <= 1'b1; else if (clrn == 1'b0) dffe6a[11:11] <= 1'b0; else if (ena == 1'b1) dffe6a[11:11] <= wire_dffe6a_D[11:11]; assign wire_dffe6a_D = (d & {12{(~ sclr)}}); assign ena = 1'b1, prn = 1'b1, q = dffe6a, sclr = 1'b0; endmodule //fifo_4k_dffpipe_em2 //synthesis_resources = lut 12 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_alt_synch_pipe_em2 ( clock, clrn, d, q) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="X_ON_VIOLATION_OPTION=OFF" */; input clock; input clrn; input [11:0] d; output [11:0] q; wire [11:0] wire_dffpipe5_q; fifo_4k_dffpipe_em2 dffpipe5 ( .clock(clock), .clrn(clrn), .d(d), .q(wire_dffpipe5_q)); assign q = wire_dffpipe5_q; endmodule //fifo_4k_alt_synch_pipe_em2 //lpm_add_sub DEVICE_FAMILY="Cyclone" LPM_DIRECTION="SUB" LPM_WIDTH=12 dataa datab result //VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 12 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_add_sub_b18 ( dataa, datab, result) /* synthesis synthesis_clearbox=1 */; input [11:0] dataa; input [11:0] datab; output [11:0] result; wire [11:0] wire_add_sub_cella_combout; wire [0:0] wire_add_sub_cella_0cout; wire [0:0] wire_add_sub_cella_1cout; wire [0:0] wire_add_sub_cella_2cout; wire [0:0] wire_add_sub_cella_3cout; wire [0:0] wire_add_sub_cella_4cout; wire [0:0] wire_add_sub_cella_5cout; wire [0:0] wire_add_sub_cella_6cout; wire [0:0] wire_add_sub_cella_7cout; wire [0:0] wire_add_sub_cella_8cout; wire [0:0] wire_add_sub_cella_9cout; wire [0:0] wire_add_sub_cella_10cout; wire [11:0] wire_add_sub_cella_dataa; wire [11:0] wire_add_sub_cella_datab; cyclone_lcell add_sub_cella_0 ( .cin(1'b1), .combout(wire_add_sub_cella_combout[0:0]), .cout(wire_add_sub_cella_0cout[0:0]), .dataa(wire_add_sub_cella_dataa[0:0]), .datab(wire_add_sub_cella_datab[0:0]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_0.cin_used = "true", add_sub_cella_0.lut_mask = "69b2", add_sub_cella_0.operation_mode = "arithmetic", add_sub_cella_0.sum_lutc_input = "cin", add_sub_cella_0.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_1 ( .cin(wire_add_sub_cella_0cout[0:0]), .combout(wire_add_sub_cella_combout[1:1]), .cout(wire_add_sub_cella_1cout[0:0]), .dataa(wire_add_sub_cella_dataa[1:1]), .datab(wire_add_sub_cella_datab[1:1]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_1.cin_used = "true", add_sub_cella_1.lut_mask = "69b2", add_sub_cella_1.operation_mode = "arithmetic", add_sub_cella_1.sum_lutc_input = "cin", add_sub_cella_1.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_2 ( .cin(wire_add_sub_cella_1cout[0:0]), .combout(wire_add_sub_cella_combout[2:2]), .cout(wire_add_sub_cella_2cout[0:0]), .dataa(wire_add_sub_cella_dataa[2:2]), .datab(wire_add_sub_cella_datab[2:2]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_2.cin_used = "true", add_sub_cella_2.lut_mask = "69b2", add_sub_cella_2.operation_mode = "arithmetic", add_sub_cella_2.sum_lutc_input = "cin", add_sub_cella_2.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_3 ( .cin(wire_add_sub_cella_2cout[0:0]), .combout(wire_add_sub_cella_combout[3:3]), .cout(wire_add_sub_cella_3cout[0:0]), .dataa(wire_add_sub_cella_dataa[3:3]), .datab(wire_add_sub_cella_datab[3:3]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_3.cin_used = "true", add_sub_cella_3.lut_mask = "69b2", add_sub_cella_3.operation_mode = "arithmetic", add_sub_cella_3.sum_lutc_input = "cin", add_sub_cella_3.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_4 ( .cin(wire_add_sub_cella_3cout[0:0]), .combout(wire_add_sub_cella_combout[4:4]), .cout(wire_add_sub_cella_4cout[0:0]), .dataa(wire_add_sub_cella_dataa[4:4]), .datab(wire_add_sub_cella_datab[4:4]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_4.cin_used = "true", add_sub_cella_4.lut_mask = "69b2", add_sub_cella_4.operation_mode = "arithmetic", add_sub_cella_4.sum_lutc_input = "cin", add_sub_cella_4.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_5 ( .cin(wire_add_sub_cella_4cout[0:0]), .combout(wire_add_sub_cella_combout[5:5]), .cout(wire_add_sub_cella_5cout[0:0]), .dataa(wire_add_sub_cella_dataa[5:5]), .datab(wire_add_sub_cella_datab[5:5]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_5.cin_used = "true", add_sub_cella_5.lut_mask = "69b2", add_sub_cella_5.operation_mode = "arithmetic", add_sub_cella_5.sum_lutc_input = "cin", add_sub_cella_5.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_6 ( .cin(wire_add_sub_cella_5cout[0:0]), .combout(wire_add_sub_cella_combout[6:6]), .cout(wire_add_sub_cella_6cout[0:0]), .dataa(wire_add_sub_cella_dataa[6:6]), .datab(wire_add_sub_cella_datab[6:6]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_6.cin_used = "true", add_sub_cella_6.lut_mask = "69b2", add_sub_cella_6.operation_mode = "arithmetic", add_sub_cella_6.sum_lutc_input = "cin", add_sub_cella_6.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_7 ( .cin(wire_add_sub_cella_6cout[0:0]), .combout(wire_add_sub_cella_combout[7:7]), .cout(wire_add_sub_cella_7cout[0:0]), .dataa(wire_add_sub_cella_dataa[7:7]), .datab(wire_add_sub_cella_datab[7:7]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_7.cin_used = "true", add_sub_cella_7.lut_mask = "69b2", add_sub_cella_7.operation_mode = "arithmetic", add_sub_cella_7.sum_lutc_input = "cin", add_sub_cella_7.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_8 ( .cin(wire_add_sub_cella_7cout[0:0]), .combout(wire_add_sub_cella_combout[8:8]), .cout(wire_add_sub_cella_8cout[0:0]), .dataa(wire_add_sub_cella_dataa[8:8]), .datab(wire_add_sub_cella_datab[8:8]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_8.cin_used = "true", add_sub_cella_8.lut_mask = "69b2", add_sub_cella_8.operation_mode = "arithmetic", add_sub_cella_8.sum_lutc_input = "cin", add_sub_cella_8.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_9 ( .cin(wire_add_sub_cella_8cout[0:0]), .combout(wire_add_sub_cella_combout[9:9]), .cout(wire_add_sub_cella_9cout[0:0]), .dataa(wire_add_sub_cella_dataa[9:9]), .datab(wire_add_sub_cella_datab[9:9]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_9.cin_used = "true", add_sub_cella_9.lut_mask = "69b2", add_sub_cella_9.operation_mode = "arithmetic", add_sub_cella_9.sum_lutc_input = "cin", add_sub_cella_9.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_10 ( .cin(wire_add_sub_cella_9cout[0:0]), .combout(wire_add_sub_cella_combout[10:10]), .cout(wire_add_sub_cella_10cout[0:0]), .dataa(wire_add_sub_cella_dataa[10:10]), .datab(wire_add_sub_cella_datab[10:10]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_10.cin_used = "true", add_sub_cella_10.lut_mask = "69b2", add_sub_cella_10.operation_mode = "arithmetic", add_sub_cella_10.sum_lutc_input = "cin", add_sub_cella_10.lpm_type = "cyclone_lcell"; cyclone_lcell add_sub_cella_11 ( .cin(wire_add_sub_cella_10cout[0:0]), .combout(wire_add_sub_cella_combout[11:11]), .cout(), .dataa(wire_add_sub_cella_dataa[11:11]), .datab(wire_add_sub_cella_datab[11:11]), .regout() `ifdef FORMAL_VERIFICATION `else // synopsys translate_off `endif , .aclr(1'b0), .aload(1'b0), .clk(1'b1), .datac(1'b1), .datad(1'b1), .ena(1'b1), .inverta(1'b0), .regcascin(1'b0), .sclr(1'b0), .sload(1'b0) `ifdef FORMAL_VERIFICATION `else // synopsys translate_on `endif // synopsys translate_off , .cin0(), .cin1(), .cout0(), .cout1(), .devclrn(), .devpor() // synopsys translate_on ); defparam add_sub_cella_11.cin_used = "true", add_sub_cella_11.lut_mask = "6969", add_sub_cella_11.operation_mode = "normal", add_sub_cella_11.sum_lutc_input = "cin", add_sub_cella_11.lpm_type = "cyclone_lcell"; assign wire_add_sub_cella_dataa = dataa, wire_add_sub_cella_datab = datab; assign result = wire_add_sub_cella_combout; endmodule //fifo_4k_add_sub_b18 //lpm_compare DEVICE_FAMILY="Cyclone" LPM_WIDTH=12 aeb dataa datab //VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //lpm_compare DEVICE_FAMILY="Cyclone" LPM_WIDTH=12 aeb dataa datab //VERSION_BEGIN 5.0 cbx_cycloneii 2004:12:20:14:28:52:SJ cbx_lpm_add_sub 2005:04:12:13:30:42:SJ cbx_lpm_compare 2004:11:30:11:30:40:SJ cbx_mgl 2005:05:19:13:51:58:SJ cbx_stratix 2005:06:02:09:53:04:SJ cbx_stratixii 2004:12:22:13:27:12:SJ VERSION_END //synthesis_resources = lut 104 M4K 16 //synopsys translate_off `timescale 1 ps / 1 ps //synopsys translate_on module fifo_4k_dcfifo_6cq ( aclr, data, q, rdclk, rdempty, rdreq, rdusedw, wrclk, wrfull, wrreq, wrusedw) /* synthesis synthesis_clearbox=1 */ /* synthesis ALTERA_ATTRIBUTE="AUTO_SHIFT_REGISTER_RECOGNITION=OFF;{ -from \"rdptr_g|power_modified_counter_values\" -to \"ws_dgrp|dffpipe5|dffe6a\" }CUT=ON;{ -from \"delayed_wrptr_g\" -to \"rs_dgwp|dffpipe5|dffe6a\" }CUT=ON" */; input aclr; input [15:0] data; output [15:0] q; input rdclk; output rdempty; input rdreq; output [11:0] rdusedw; input wrclk; output wrfull; input wrreq; output [11:0] wrusedw; wire [11:0] wire_rdptr_g_gray2bin_bin; wire [11:0] wire_rs_dgwp_gray2bin_bin; wire [11:0] wire_wrptr_g_gray2bin_bin; wire [11:0] wire_ws_dgrp_gray2bin_bin; wire [11:0] wire_rdptr_g_q; wire [11:0] wire_rdptr_g1p_q; wire [11:0] wire_wrptr_g1p_q; wire [15:0] wire_fifo_ram_q_b; reg [11:0] delayed_wrptr_g; reg [11:0] wrptr_g; wire [11:0] wire_rs_brp_q; wire [11:0] wire_rs_bwp_q; wire [11:0] wire_rs_dgwp_q; wire [11:0] wire_ws_brp_q; wire [11:0] wire_ws_bwp_q; wire [11:0] wire_ws_dgrp_q; wire [11:0] wire_rdusedw_sub_result; wire [11:0] wire_wrusedw_sub_result; reg wire_rdempty_eq_comp_aeb_int; wire wire_rdempty_eq_comp_aeb; wire [11:0] wire_rdempty_eq_comp_dataa; wire [11:0] wire_rdempty_eq_comp_datab; reg wire_wrfull_eq_comp_aeb_int; wire wire_wrfull_eq_comp_aeb; wire [11:0] wire_wrfull_eq_comp_dataa; wire [11:0] wire_wrfull_eq_comp_datab; wire int_rdempty; wire int_wrfull; wire valid_rdreq; wire valid_wrreq; fifo_4k_a_gray2bin_9m4 rdptr_g_gray2bin ( .bin(wire_rdptr_g_gray2bin_bin), .gray(wire_rdptr_g_q)); fifo_4k_a_gray2bin_9m4 rs_dgwp_gray2bin ( .bin(wire_rs_dgwp_gray2bin_bin), .gray(wire_rs_dgwp_q)); fifo_4k_a_gray2bin_9m4 wrptr_g_gray2bin ( .bin(wire_wrptr_g_gray2bin_bin), .gray(wrptr_g)); fifo_4k_a_gray2bin_9m4 ws_dgrp_gray2bin ( .bin(wire_ws_dgrp_gray2bin_bin), .gray(wire_ws_dgrp_q)); fifo_4k_a_graycounter_826 rdptr_g ( .aclr(aclr), .clock(rdclk), .cnt_en(valid_rdreq), .q(wire_rdptr_g_q)); fifo_4k_a_graycounter_3r6 rdptr_g1p ( .aclr(aclr), .clock(rdclk), .cnt_en(valid_rdreq), .q(wire_rdptr_g1p_q)); fifo_4k_a_graycounter_3r6 wrptr_g1p ( .aclr(aclr), .clock(wrclk), .cnt_en(valid_wrreq), .q(wire_wrptr_g1p_q)); fifo_4k_altsyncram_8pl fifo_ram ( .address_a(wrptr_g), .address_b(((wire_rdptr_g_q & {12{int_rdempty}}) | (wire_rdptr_g1p_q & {12{(~ int_rdempty)}}))), .clock0(wrclk), .clock1(rdclk), .clocken1((valid_rdreq | int_rdempty)), .data_a(data), .q_b(wire_fifo_ram_q_b), .wren_a(valid_wrreq)); // synopsys translate_off initial delayed_wrptr_g = 0; // synopsys translate_on always @ ( posedge wrclk or posedge aclr) if (aclr == 1'b1) delayed_wrptr_g <= 12'b0; else delayed_wrptr_g <= wrptr_g; // synopsys translate_off initial wrptr_g = 0; // synopsys translate_on always @ ( posedge wrclk or posedge aclr) if (aclr == 1'b1) wrptr_g <= 12'b0; else if (valid_wrreq == 1'b1) wrptr_g <= wire_wrptr_g1p_q; fifo_4k_dffpipe_bb3 rs_brp ( .clock(rdclk), .clrn((~ aclr)), .d(wire_rdptr_g_gray2bin_bin), .q(wire_rs_brp_q)); fifo_4k_dffpipe_bb3 rs_bwp ( .clock(rdclk), .clrn((~ aclr)), .d(wire_rs_dgwp_gray2bin_bin), .q(wire_rs_bwp_q)); fifo_4k_alt_synch_pipe_em2 rs_dgwp ( .clock(rdclk), .clrn((~ aclr)), .d(delayed_wrptr_g), .q(wire_rs_dgwp_q)); fifo_4k_dffpipe_bb3 ws_brp ( .clock(wrclk), .clrn((~ aclr)), .d(wire_ws_dgrp_gray2bin_bin), .q(wire_ws_brp_q)); fifo_4k_dffpipe_bb3 ws_bwp ( .clock(wrclk), .clrn((~ aclr)), .d(wire_wrptr_g_gray2bin_bin), .q(wire_ws_bwp_q)); fifo_4k_alt_synch_pipe_em2 ws_dgrp ( .clock(wrclk), .clrn((~ aclr)), .d(wire_rdptr_g_q), .q(wire_ws_dgrp_q)); fifo_4k_add_sub_b18 rdusedw_sub ( .dataa(wire_rs_bwp_q), .datab(wire_rs_brp_q), .result(wire_rdusedw_sub_result)); fifo_4k_add_sub_b18 wrusedw_sub ( .dataa(wire_ws_bwp_q), .datab(wire_ws_brp_q), .result(wire_wrusedw_sub_result)); always @(wire_rdempty_eq_comp_dataa or wire_rdempty_eq_comp_datab) if (wire_rdempty_eq_comp_dataa == wire_rdempty_eq_comp_datab) begin wire_rdempty_eq_comp_aeb_int = 1'b1; end else begin wire_rdempty_eq_comp_aeb_int = 1'b0; end assign wire_rdempty_eq_comp_aeb = wire_rdempty_eq_comp_aeb_int; assign wire_rdempty_eq_comp_dataa = wire_rs_dgwp_q, wire_rdempty_eq_comp_datab = wire_rdptr_g_q; always @(wire_wrfull_eq_comp_dataa or wire_wrfull_eq_comp_datab) if (wire_wrfull_eq_comp_dataa == wire_wrfull_eq_comp_datab) begin wire_wrfull_eq_comp_aeb_int = 1'b1; end else begin wire_wrfull_eq_comp_aeb_int = 1'b0; end assign wire_wrfull_eq_comp_aeb = wire_wrfull_eq_comp_aeb_int; assign wire_wrfull_eq_comp_dataa = wire_ws_dgrp_q, wire_wrfull_eq_comp_datab = wire_wrptr_g1p_q; assign int_rdempty = wire_rdempty_eq_comp_aeb, int_wrfull = wire_wrfull_eq_comp_aeb, q = wire_fifo_ram_q_b, rdempty = int_rdempty, rdusedw = wire_rdusedw_sub_result, valid_rdreq = rdreq, valid_wrreq = wrreq, wrfull = int_wrfull, wrusedw = wire_wrusedw_sub_result; endmodule //fifo_4k_dcfifo_6cq //VALID FILE // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module fifo_4k ( data, wrreq, rdreq, rdclk, wrclk, aclr, q, rdempty, rdusedw, wrfull, wrusedw)/* synthesis synthesis_clearbox = 1 */; input [15:0] data; input wrreq; input rdreq; input rdclk; input wrclk; input aclr; output [15:0] q; output rdempty; output [11:0] rdusedw; output wrfull; output [11:0] wrusedw; wire sub_wire0; wire [11:0] sub_wire1; wire sub_wire2; wire [15:0] sub_wire3; wire [11:0] sub_wire4; wire rdempty = sub_wire0; wire [11:0] wrusedw = sub_wire1[11:0]; wire wrfull = sub_wire2; wire [15:0] q = sub_wire3[15:0]; wire [11:0] rdusedw = sub_wire4[11:0]; fifo_4k_dcfifo_6cq fifo_4k_dcfifo_6cq_component ( .wrclk (wrclk), .rdreq (rdreq), .aclr (aclr), .rdclk (rdclk), .wrreq (wrreq), .data (data), .rdempty (sub_wire0), .wrusedw (sub_wire1), .wrfull (sub_wire2), .q (sub_wire3), .rdusedw (sub_wire4)); endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: Depth NUMERIC "4096" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "4096" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "12" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdusedw 0 0 12 0 OUTPUT NODEFVAL rdusedw[11..0] // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrusedw 0 0 12 0 OUTPUT NODEFVAL wrusedw[11..0] // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 12 0 @rdusedw 0 0 12 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 12 0 @wrusedw 0 0 12 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.cmp FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.bsf FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_inst.v FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_waveforms.html TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_4k_18.v000077500000000000000000000166031224274632000202620ustar00rootroot00000000000000// megafunction wizard: %FIFO% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_4k_18.v // Megafunction Name(s): // dcfifo // // Simulation Library Files(s): // altera_mf // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 7.1 Build 178 06/25/2007 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2007 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files from any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module fifo_4k_18 ( aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw); input aclr; input [17:0] data; input rdclk; input rdreq; input wrclk; input wrreq; output [17:0] q; output rdempty; output [11:0] rdusedw; output wrfull; output [11:0] wrusedw; wire sub_wire0; wire [11:0] sub_wire1; wire sub_wire2; wire [17:0] sub_wire3; wire [11:0] sub_wire4; wire rdempty = sub_wire0; wire [11:0] wrusedw = sub_wire1[11:0]; wire wrfull = sub_wire2; wire [17:0] q = sub_wire3[17:0]; wire [11:0] rdusedw = sub_wire4[11:0]; dcfifo dcfifo_component ( .wrclk (wrclk), .rdreq (rdreq), .aclr (aclr), .rdclk (rdclk), .wrreq (wrreq), .data (data), .rdempty (sub_wire0), .wrusedw (sub_wire1), .wrfull (sub_wire2), .q (sub_wire3), .rdusedw (sub_wire4) // synopsys translate_off , .rdfull (), .wrempty () // synopsys translate_on ); defparam dcfifo_component.add_ram_output_register = "OFF", dcfifo_component.clocks_are_synchronized = "FALSE", dcfifo_component.intended_device_family = "Cyclone", dcfifo_component.lpm_numwords = 4096, dcfifo_component.lpm_showahead = "ON", dcfifo_component.lpm_type = "dcfifo", dcfifo_component.lpm_width = 18, dcfifo_component.lpm_widthu = 12, dcfifo_component.overflow_checking = "OFF", dcfifo_component.underflow_checking = "OFF", dcfifo_component.use_eab = "ON"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: Depth NUMERIC "4096" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: Width NUMERIC "18" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: diff_widths NUMERIC "0" // Retrieval info: PRIVATE: msb_usedw NUMERIC "0" // Retrieval info: PRIVATE: output_width NUMERIC "18" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "4096" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "18" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "12" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: USED_PORT: data 0 0 18 0 INPUT NODEFVAL data[17..0] // Retrieval info: USED_PORT: q 0 0 18 0 OUTPUT NODEFVAL q[17..0] // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdusedw 0 0 12 0 OUTPUT NODEFVAL rdusedw[11..0] // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: wrusedw 0 0 12 0 OUTPUT NODEFVAL wrusedw[11..0] // Retrieval info: CONNECT: @data 0 0 18 0 data 0 0 18 0 // Retrieval info: CONNECT: q 0 0 18 0 @q 0 0 18 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 12 0 @rdusedw 0 0 12 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 12 0 @wrusedw 0 0 12 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18.cmp FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18.bsf FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18_inst.v FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18_bb.v FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18_waveforms.html FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_18_wave*.jpg FALSE // Retrieval info: LIB_FILE: altera_mf uhd-3.5.5/fpga/usrp1/megacells/fifo_4k_bb.v000066400000000000000000000135041224274632000204070ustar00rootroot00000000000000// megafunction wizard: %FIFO%VBB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_4k.v // Megafunction Name(s): // dcfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.0 Build 168 06/22/2005 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2005 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. module fifo_4k ( data, wrreq, rdreq, rdclk, wrclk, aclr, q, rdempty, rdusedw, wrfull, wrusedw)/* synthesis synthesis_clearbox = 1 */; input [15:0] data; input wrreq; input rdreq; input rdclk; input wrclk; input aclr; output [15:0] q; output rdempty; output [11:0] rdusedw; output wrfull; output [11:0] wrusedw; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: Depth NUMERIC "4096" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "4096" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "12" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdusedw 0 0 12 0 OUTPUT NODEFVAL rdusedw[11..0] // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrusedw 0 0 12 0 OUTPUT NODEFVAL wrusedw[11..0] // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 12 0 @rdusedw 0 0 12 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 12 0 @wrusedw 0 0 12 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.inc FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.cmp FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k.bsf FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_inst.v FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_waveforms.html TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4k_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_4kx16_dc.bsf000077500000000000000000000101331224274632000212540ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2006 Altera Corporation Your use of Altera Corporation's design tools, logic functions and other software and tools, and its AMPP partner logic functions, and any output files any of the foregoing (including device programming or simulation files), and any associated documentation or information are expressly subject to the terms and conditions of the Altera Program License Subscription Agreement, Altera MegaCore Function License Agreement, or other applicable license agreement, including, without limitation, that your use is for the sole purpose of programming logic devices manufactured by Altera and sold by Altera or its authorized distributors. Please refer to the applicable agreement for further details. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 160 184) (text "fifo_4kx16_dc" (rect 41 1 134 17)(font "Arial" (font_size 10))) (text "inst" (rect 8 168 25 180)(font "Arial" )) (port (pt 0 32) (input) (text "data[15..0]" (rect 0 0 60 14)(font "Arial" (font_size 8))) (text "data[15..0]" (rect 20 26 71 39)(font "Arial" (font_size 8))) (line (pt 0 32)(pt 16 32)(line_width 3)) ) (port (pt 0 56) (input) (text "wrreq" (rect 0 0 35 14)(font "Arial" (font_size 8))) (text "wrreq" (rect 20 50 45 63)(font "Arial" (font_size 8))) (line (pt 0 56)(pt 16 56)(line_width 1)) ) (port (pt 0 72) (input) (text "wrclk" (rect 0 0 31 14)(font "Arial" (font_size 8))) (text "wrclk" (rect 26 66 48 79)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 16 72)(line_width 1)) ) (port (pt 0 104) (input) (text "rdreq" (rect 0 0 30 14)(font "Arial" (font_size 8))) (text "rdreq" (rect 20 98 44 111)(font "Arial" (font_size 8))) (line (pt 0 104)(pt 16 104)(line_width 1)) ) (port (pt 0 120) (input) (text "rdclk" (rect 0 0 27 14)(font "Arial" (font_size 8))) (text "rdclk" (rect 26 114 47 127)(font "Arial" (font_size 8))) (line (pt 0 120)(pt 16 120)(line_width 1)) ) (port (pt 0 160) (input) (text "aclr" (rect 0 0 21 14)(font "Arial" (font_size 8))) (text "aclr" (rect 20 154 37 167)(font "Arial" (font_size 8))) (line (pt 0 160)(pt 16 160)(line_width 1)) ) (port (pt 160 40) (output) (text "wrfull" (rect 0 0 33 14)(font "Arial" (font_size 8))) (text "wrfull" (rect 113 34 138 47)(font "Arial" (font_size 8))) (line (pt 160 40)(pt 144 40)(line_width 1)) ) (port (pt 160 72) (output) (text "wrusedw[11..0]" (rect 0 0 92 14)(font "Arial" (font_size 8))) (text "wrusedw[11..0]" (rect 63 66 132 79)(font "Arial" (font_size 8))) (line (pt 160 72)(pt 144 72)(line_width 3)) ) (port (pt 160 96) (output) (text "q[15..0]" (rect 0 0 42 14)(font "Arial" (font_size 8))) (text "q[15..0]" (rect 105 90 141 103)(font "Arial" (font_size 8))) (line (pt 160 96)(pt 144 96)(line_width 3)) ) (port (pt 160 120) (output) (text "rdempty" (rect 0 0 46 14)(font "Arial" (font_size 8))) (text "rdempty" (rect 102 114 140 127)(font "Arial" (font_size 8))) (line (pt 160 120)(pt 144 120)(line_width 1)) ) (port (pt 160 136) (output) (text "rdusedw[11..0]" (rect 0 0 87 14)(font "Arial" (font_size 8))) (text "rdusedw[11..0]" (rect 67 130 135 143)(font "Arial" (font_size 8))) (line (pt 160 136)(pt 144 136)(line_width 3)) ) (drawing (text "(ack)" (rect 51 99 72 111)(font "Arial" )) (text "16 bits x 4096 words" (rect 58 156 144 168)(font "Arial" )) (line (pt 16 16)(pt 144 16)(line_width 1)) (line (pt 144 16)(pt 144 168)(line_width 1)) (line (pt 144 168)(pt 16 168)(line_width 1)) (line (pt 16 168)(pt 16 16)(line_width 1)) (line (pt 16 84)(pt 144 84)(line_width 1)) (line (pt 16 148)(pt 144 148)(line_width 1)) (line (pt 16 66)(pt 22 72)(line_width 1)) (line (pt 22 72)(pt 16 78)(line_width 1)) (line (pt 16 114)(pt 22 120)(line_width 1)) (line (pt 22 120)(pt 16 126)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/fifo_4kx16_dc.cmp000077500000000000000000000023261224274632000212660ustar00rootroot00000000000000--Copyright (C) 1991-2006 Altera Corporation --Your use of Altera Corporation's design tools, logic functions --and other software and tools, and its AMPP partner logic --functions, and any output files any of the foregoing --(including device programming or simulation files), and any --associated documentation or information are expressly subject --to the terms and conditions of the Altera Program License --Subscription Agreement, Altera MegaCore Function License --Agreement, or other applicable license agreement, including, --without limitation, that your use is for the sole purpose of --programming logic devices manufactured by Altera and sold by --Altera or its authorized distributors. Please refer to the --applicable agreement for further details. component fifo_4kx16_dc PORT ( aclr : IN STD_LOGIC := '0'; data : IN STD_LOGIC_VECTOR (15 DOWNTO 0); rdclk : IN STD_LOGIC ; rdreq : IN STD_LOGIC ; wrclk : IN STD_LOGIC ; wrreq : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (15 DOWNTO 0); rdempty : OUT STD_LOGIC ; rdusedw : OUT STD_LOGIC_VECTOR (11 DOWNTO 0); wrfull : OUT STD_LOGIC ; wrusedw : OUT STD_LOGIC_VECTOR (11 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/fifo_4kx16_dc.inc000077500000000000000000000017061224274632000212610ustar00rootroot00000000000000--Copyright (C) 1991-2006 Altera Corporation --Your use of Altera Corporation's design tools, logic functions --and other software and tools, and its AMPP partner logic --functions, and any output files any of the foregoing --(including device programming or simulation files), and any --associated documentation or information are expressly subject --to the terms and conditions of the Altera Program License --Subscription Agreement, Altera MegaCore Function License --Agreement, or other applicable license agreement, including, --without limitation, that your use is for the sole purpose of --programming logic devices manufactured by Altera and sold by --Altera or its authorized distributors. Please refer to the --applicable agreement for further details. FUNCTION fifo_4kx16_dc ( aclr, data[15..0], rdclk, rdreq, wrclk, wrreq ) RETURNS ( q[15..0], rdempty, rdusedw[11..0], wrfull, wrusedw[11..0] ); uhd-3.5.5/fpga/usrp1/megacells/fifo_4kx16_dc.v000077500000000000000000000161301224274632000207520ustar00rootroot00000000000000// megafunction wizard: %FIFO% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_4kx16_dc.v // Megafunction Name(s): // dcfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.1 Build 213 01/19/2006 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2006 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module fifo_4kx16_dc ( aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw); input aclr; input [15:0] data; input rdclk; input rdreq; input wrclk; input wrreq; output [15:0] q; output rdempty; output [11:0] rdusedw; output wrfull; output [11:0] wrusedw; wire sub_wire0; wire [11:0] sub_wire1; wire sub_wire2; wire [15:0] sub_wire3; wire [11:0] sub_wire4; wire rdempty = sub_wire0; wire [11:0] wrusedw = sub_wire1[11:0]; wire wrfull = sub_wire2; wire [15:0] q = sub_wire3[15:0]; wire [11:0] rdusedw = sub_wire4[11:0]; dcfifo dcfifo_component ( .wrclk (wrclk), .rdreq (rdreq), .aclr (aclr), .rdclk (rdclk), .wrreq (wrreq), .data (data), .rdempty (sub_wire0), .wrusedw (sub_wire1), .wrfull (sub_wire2), .q (sub_wire3), .rdusedw (sub_wire4) // synopsys translate_off , .wrempty (), .rdfull () // synopsys translate_on ); defparam dcfifo_component.add_ram_output_register = "OFF", dcfifo_component.clocks_are_synchronized = "FALSE", dcfifo_component.intended_device_family = "Cyclone", dcfifo_component.lpm_numwords = 4096, dcfifo_component.lpm_showahead = "ON", dcfifo_component.lpm_type = "dcfifo", dcfifo_component.lpm_width = 16, dcfifo_component.lpm_widthu = 12, dcfifo_component.overflow_checking = "OFF", dcfifo_component.underflow_checking = "OFF", dcfifo_component.use_eab = "ON"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: Depth NUMERIC "4096" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "4096" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "12" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdusedw 0 0 12 0 OUTPUT NODEFVAL rdusedw[11..0] // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: wrusedw 0 0 12 0 OUTPUT NODEFVAL wrusedw[11..0] // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 12 0 @rdusedw 0 0 12 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 12 0 @wrusedw 0 0 12 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.inc TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.cmp TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.bsf TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_inst.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_waveforms.html FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_4kx16_dc_bb.v000077500000000000000000000135541224274632000214240ustar00rootroot00000000000000// megafunction wizard: %FIFO%VBB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: dcfifo // ============================================================ // File Name: fifo_4kx16_dc.v // Megafunction Name(s): // dcfifo // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 5.1 Build 213 01/19/2006 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2006 Altera Corporation //Your use of Altera Corporation's design tools, logic functions //and other software and tools, and its AMPP partner logic //functions, and any output files any of the foregoing //(including device programming or simulation files), and any //associated documentation or information are expressly subject //to the terms and conditions of the Altera Program License //Subscription Agreement, Altera MegaCore Function License //Agreement, or other applicable license agreement, including, //without limitation, that your use is for the sole purpose of //programming logic devices manufactured by Altera and sold by //Altera or its authorized distributors. Please refer to the //applicable agreement for further details. module fifo_4kx16_dc ( aclr, data, rdclk, rdreq, wrclk, wrreq, q, rdempty, rdusedw, wrfull, wrusedw); input aclr; input [15:0] data; input rdclk; input rdreq; input wrclk; input wrreq; output [15:0] q; output rdempty; output [11:0] rdusedw; output wrfull; output [11:0] wrusedw; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" // Retrieval info: PRIVATE: Clock NUMERIC "4" // Retrieval info: PRIVATE: Depth NUMERIC "4096" // Retrieval info: PRIVATE: Empty NUMERIC "1" // Retrieval info: PRIVATE: Full NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0" // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: Optimize NUMERIC "2" // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "1" // Retrieval info: PRIVATE: UsedW NUMERIC "1" // Retrieval info: PRIVATE: Width NUMERIC "16" // Retrieval info: PRIVATE: dc_aclr NUMERIC "1" // Retrieval info: PRIVATE: rsEmpty NUMERIC "1" // Retrieval info: PRIVATE: rsFull NUMERIC "0" // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" // Retrieval info: PRIVATE: wsFull NUMERIC "1" // Retrieval info: PRIVATE: wsUsedW NUMERIC "1" // Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "OFF" // Retrieval info: CONSTANT: CLOCKS_ARE_SYNCHRONIZED STRING "FALSE" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "4096" // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON" // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "12" // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "OFF" // Retrieval info: CONSTANT: USE_EAB STRING "ON" // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT GND aclr // Retrieval info: USED_PORT: data 0 0 16 0 INPUT NODEFVAL data[15..0] // Retrieval info: USED_PORT: q 0 0 16 0 OUTPUT NODEFVAL q[15..0] // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL rdclk // Retrieval info: USED_PORT: rdempty 0 0 0 0 OUTPUT NODEFVAL rdempty // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL rdreq // Retrieval info: USED_PORT: rdusedw 0 0 12 0 OUTPUT NODEFVAL rdusedw[11..0] // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL wrclk // Retrieval info: USED_PORT: wrfull 0 0 0 0 OUTPUT NODEFVAL wrfull // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL wrreq // Retrieval info: USED_PORT: wrusedw 0 0 12 0 OUTPUT NODEFVAL wrusedw[11..0] // Retrieval info: CONNECT: @data 0 0 16 0 data 0 0 16 0 // Retrieval info: CONNECT: q 0 0 16 0 @q 0 0 16 0 // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 // Retrieval info: CONNECT: rdempty 0 0 0 0 @rdempty 0 0 0 0 // Retrieval info: CONNECT: rdusedw 0 0 12 0 @rdusedw 0 0 12 0 // Retrieval info: CONNECT: wrfull 0 0 0 0 @wrfull 0 0 0 0 // Retrieval info: CONNECT: wrusedw 0 0 12 0 @wrusedw 0 0 12 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.inc TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.cmp TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc.bsf TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_inst.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_bb.v TRUE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_waveforms.html FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL fifo_4kx16_dc_wave*.jpg FALSE uhd-3.5.5/fpga/usrp1/megacells/fifo_4kx16_dc_inst.v000077500000000000000000000004621224274632000220100ustar00rootroot00000000000000fifo_4kx16_dc fifo_4kx16_dc_inst ( .aclr ( aclr_sig ), .data ( data_sig ), .rdclk ( rdclk_sig ), .rdreq ( rdreq_sig ), .wrclk ( wrclk_sig ), .wrreq ( wrreq_sig ), .q ( q_sig ), .rdempty ( rdempty_sig ), .rdusedw ( rdusedw_sig ), .wrfull ( wrfull_sig ), .wrusedw ( wrusedw_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/mylpm_addsub.bsf000077500000000000000000000065011224274632000214120ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2003 Altera Corporation Any megafunction design, and related netlist (encrypted or decrypted), support information, device programming or simulation file, and any other associated documentation or information provided by Altera or a partner under Altera's Megafunction Partnership Program may be used only to program PLD devices (but not masked PLD devices) from Altera. Any other use of such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information is prohibited for any other purpose, including, but not limited to modification, reverse engineering, de-compiling, or use with any other silicon devices, unless such use is explicitly licensed under a separate agreement with Altera or a megafunction partner. Title to the intellectual property, including patents, copyrights, trademarks, trade secrets, or maskworks, embodied in any such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information provided by Altera or a megafunction partner, remains with Altera, the megafunction partner, or their respective licensors. No other licenses, including any licenses needed under any third party's intellectual property, are provided herein. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 160 112) (text "mylpm_addsub" (rect 26 2 145 21)(font "Arial" (font_size 10))) (text "inst" (rect 8 93 30 108)(font "Arial" )) (port (pt 0 56) (input) (text "dataa[15..0]" (rect 0 0 75 16)(font "Arial" (font_size 8))) (text "dataa[15..0]" (rect 4 40 73 56)(font "Arial" (font_size 8))) (line (pt 0 56)(pt 64 56)(line_width 3)) ) (port (pt 0 88) (input) (text "datab[15..0]" (rect 0 0 75 16)(font "Arial" (font_size 8))) (text "datab[15..0]" (rect 4 72 73 88)(font "Arial" (font_size 8))) (line (pt 0 88)(pt 64 88)(line_width 3)) ) (port (pt 0 72) (input) (text "clock" (rect 0 0 34 16)(font "Arial" (font_size 8))) (text "clock" (rect 4 56 35 72)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 64 72)(line_width 1)) ) (port (pt 0 32) (input) (text "add_sub" (rect 0 0 53 16)(font "Arial" (font_size 8))) (text "add_sub" (rect 4 16 53 32)(font "Arial" (font_size 8))) (line (pt 0 32)(pt 80 32)(line_width 1)) ) (port (pt 160 72) (output) (text "result[15..0]" (rect 0 0 75 16)(font "Arial" (font_size 8))) (text "result[15..0]" (rect 88 56 157 72)(font "Arial" (font_size 8))) (line (pt 160 72)(pt 96 72)(line_width 3)) ) (drawing (text "A" (rect 66 48 75 64)(font "Arial" (font_size 8))) (text "B" (rect 66 80 75 96)(font "Arial" (font_size 8))) (text "A+B/A-B" (rect 82 37 134 53)(font "Arial" (font_size 8))) (line (pt 64 48)(pt 96 56)(line_width 1)) (line (pt 96 56)(pt 96 88)(line_width 1)) (line (pt 96 88)(pt 64 96)(line_width 1)) (line (pt 64 96)(pt 64 48)(line_width 1)) (line (pt 80 32)(pt 80 52)(line_width 1)) (line (pt 106 40)(pt 125 40)(line_width 1)) (line (pt 64 66)(pt 70 72)(line_width 1)) (line (pt 70 72)(pt 64 78)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/mylpm_addsub.cmp000077500000000000000000000032071224274632000214170ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. component mylpm_addsub PORT ( add_sub : IN STD_LOGIC ; dataa : IN STD_LOGIC_VECTOR (15 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (15 DOWNTO 0); clock : IN STD_LOGIC ; result : OUT STD_LOGIC_VECTOR (15 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/mylpm_addsub.inc000077500000000000000000000027721224274632000214170ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. FUNCTION mylpm_addsub ( add_sub, dataa[15..0], datab[15..0], clock ) RETURNS ( result[15..0] ); uhd-3.5.5/fpga/usrp1/megacells/mylpm_addsub.v000077500000000000000000000106021224274632000211020ustar00rootroot00000000000000// megafunction wizard: %LPM_ADD_SUB% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: lpm_add_sub // ============================================================ // File Name: mylpm_addsub.v // Megafunction Name(s): // lpm_add_sub // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // ************************************************************ //Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module mylpm_addsub ( add_sub, dataa, datab, clock, result); input add_sub; input [15:0] dataa; input [15:0] datab; input clock; output [15:0] result; wire [15:0] sub_wire0; wire [15:0] result = sub_wire0[15:0]; lpm_add_sub lpm_add_sub_component ( .dataa (dataa), .add_sub (add_sub), .datab (datab), .clock (clock), .result (sub_wire0)); defparam lpm_add_sub_component.lpm_width = 16, lpm_add_sub_component.lpm_direction = "UNUSED", lpm_add_sub_component.lpm_type = "LPM_ADD_SUB", lpm_add_sub_component.lpm_hint = "ONE_INPUT_IS_CONSTANT=NO", lpm_add_sub_component.lpm_pipeline = 1; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: nBit NUMERIC "16" // Retrieval info: PRIVATE: Function NUMERIC "2" // Retrieval info: PRIVATE: WhichConstant NUMERIC "0" // Retrieval info: PRIVATE: ConstantA NUMERIC "0" // Retrieval info: PRIVATE: ConstantB NUMERIC "0" // Retrieval info: PRIVATE: ValidCtA NUMERIC "0" // Retrieval info: PRIVATE: ValidCtB NUMERIC "0" // Retrieval info: PRIVATE: CarryIn NUMERIC "0" // Retrieval info: PRIVATE: CarryOut NUMERIC "0" // Retrieval info: PRIVATE: Overflow NUMERIC "0" // Retrieval info: PRIVATE: Latency NUMERIC "1" // Retrieval info: PRIVATE: aclr NUMERIC "0" // Retrieval info: PRIVATE: clken NUMERIC "0" // Retrieval info: PRIVATE: LPM_PIPELINE NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "16" // Retrieval info: CONSTANT: LPM_DIRECTION STRING "UNUSED" // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_ADD_SUB" // Retrieval info: CONSTANT: LPM_HINT STRING "ONE_INPUT_IS_CONSTANT=NO" // Retrieval info: CONSTANT: LPM_PIPELINE NUMERIC "1" // Retrieval info: USED_PORT: add_sub 0 0 0 0 INPUT NODEFVAL add_sub // Retrieval info: USED_PORT: result 0 0 16 0 OUTPUT NODEFVAL result[15..0] // Retrieval info: USED_PORT: dataa 0 0 16 0 INPUT NODEFVAL dataa[15..0] // Retrieval info: USED_PORT: datab 0 0 16 0 INPUT NODEFVAL datab[15..0] // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock // Retrieval info: CONNECT: @add_sub 0 0 0 0 add_sub 0 0 0 0 // Retrieval info: CONNECT: result 0 0 16 0 @result 0 0 16 0 // Retrieval info: CONNECT: @dataa 0 0 16 0 dataa 0 0 16 0 // Retrieval info: CONNECT: @datab 0 0 16 0 datab 0 0 16 0 // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: LIBRARY: lpm lpm.lpm_components.all uhd-3.5.5/fpga/usrp1/megacells/mylpm_addsub_bb.v000077500000000000000000000031071224274632000215470ustar00rootroot00000000000000//Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module mylpm_addsub ( add_sub, dataa, datab, clock, result); input add_sub; input [15:0] dataa; input [15:0] datab; input clock; output [15:0] result; endmodule uhd-3.5.5/fpga/usrp1/megacells/mylpm_addsub_inst.v000077500000000000000000000002351224274632000221400ustar00rootroot00000000000000mylpm_addsub mylpm_addsub_inst ( .add_sub ( add_sub_sig ), .dataa ( dataa_sig ), .datab ( datab_sig ), .clock ( clock_sig ), .result ( result_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/pll.v000066400000000000000000000227521224274632000172170ustar00rootroot00000000000000// megafunction wizard: %ALTPLL% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: altpll // ============================================================ // File Name: pll.v // Megafunction Name(s): // altpll // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // // 4.0 Build 214 3/25/2004 SP 1 SJ Web Edition // ************************************************************ //Copyright (C) 1991-2004 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. // synopsys translate_off `timescale 1 ps / 1 ps // synopsys translate_on module pll ( inclk0, c0); input inclk0; output c0; wire [5:0] sub_wire0; wire [0:0] sub_wire4 = 1'h0; wire [0:0] sub_wire1 = sub_wire0[0:0]; wire c0 = sub_wire1; wire sub_wire2 = inclk0; wire [1:0] sub_wire3 = {sub_wire4, sub_wire2}; altpll altpll_component ( .inclk (sub_wire3), .clk (sub_wire0) // synopsys translate_off , .fbin (), .pllena (), .clkswitch (), .areset (), .pfdena (), .clkena (), .extclkena (), .scanclk (), .scanaclr (), .scandata (), .scanread (), .scanwrite (), .extclk (), .clkbad (), .activeclock (), .locked (), .clkloss (), .scandataout (), .scandone (), .sclkout1 (), .sclkout0 (), .enable0 (), .enable1 () // synopsys translate_on ); defparam altpll_component.clk0_duty_cycle = 50, altpll_component.lpm_type = "altpll", altpll_component.clk0_multiply_by = 1, altpll_component.inclk0_input_frequency = 20833, altpll_component.clk0_divide_by = 1, altpll_component.pll_type = "AUTO", altpll_component.clk0_time_delay = "0", altpll_component.intended_device_family = "Cyclone", altpll_component.operation_mode = "NORMAL", altpll_component.compensate_clock = "CLK0", altpll_component.clk0_phase_shift = "-3000"; endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: MIRROR_CLK0 STRING "0" // Retrieval info: PRIVATE: PHASE_SHIFT_UNIT0 STRING "ns" // Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: SPREAD_USE STRING "0" // Retrieval info: PRIVATE: SPREAD_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: GLOCK_COUNTER_EDIT NUMERIC "1048575" // Retrieval info: PRIVATE: SRC_SYNCH_COMP_RADIO STRING "0" // Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" // Retrieval info: PRIVATE: PHASE_SHIFT0 STRING "-3.00000000" // Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "1" // Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "0" // Retrieval info: PRIVATE: SPREAD_PERCENT STRING "0.500" // Retrieval info: PRIVATE: LOCKED_OUTPUT_CHECK STRING "0" // Retrieval info: PRIVATE: PLL_ARESET_CHECK STRING "0" // Retrieval info: PRIVATE: TIME_SHIFT0 STRING "0.00000000" // Retrieval info: PRIVATE: STICKY_CLK0 STRING "1" // Retrieval info: PRIVATE: BANDWIDTH STRING "1.000" // Retrieval info: PRIVATE: BANDWIDTH_USE_CUSTOM STRING "0" // Retrieval info: PRIVATE: DEVICE_SPEED_GRADE STRING "8" // Retrieval info: PRIVATE: SPREAD_FREQ STRING "50.000" // Retrieval info: PRIVATE: BANDWIDTH_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: LONG_SCAN_RADIO STRING "1" // Retrieval info: PRIVATE: PLL_ENHPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE_DIRTY NUMERIC "0" // Retrieval info: PRIVATE: USE_CLK0 STRING "1" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT_CHANGED STRING "1" // Retrieval info: PRIVATE: SCAN_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_PFDENA_CHECK STRING "0" // Retrieval info: PRIVATE: CREATE_CLKBAD_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK1_FREQ_EDIT STRING "100.000" // Retrieval info: PRIVATE: CUR_DEDICATED_CLK STRING "c0" // Retrieval info: PRIVATE: PLL_FASTPLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: ACTIVECLK_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_FREQ_UNIT STRING "MHz" // Retrieval info: PRIVATE: INCLK0_FREQ_UNIT_COMBO STRING "MHz" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_0 STRING "inclk;fbin;pllena;clkswitch;areset" // Retrieval info: PRIVATE: GLOCKED_MODE_CHECK STRING "0" // Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "1" // Retrieval info: PRIVATE: CUR_FBIN_CLK STRING "e0" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_1 STRING "pfdena;clkena;extclkena;scanclk;scanaclr" // Retrieval info: PRIVATE: DIV_FACTOR0 NUMERIC "1" // Retrieval info: PRIVATE: INCLK1_FREQ_UNIT_CHANGED STRING "1" // Retrieval info: PRIVATE: HAS_MANUAL_SWITCHOVER STRING "1" // Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" // Retrieval info: PRIVATE: PLL_AUTOPLL_CHECK NUMERIC "1" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_2 STRING "scandata;scanread;scanwrite;clk;extclk" // Retrieval info: PRIVATE: CLKLOSS_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_AUTO STRING "1" // Retrieval info: PRIVATE: SHORT_SCAN_RADIO STRING "0" // Retrieval info: PRIVATE: LVDS_MODE_DATA_RATE STRING "528.000" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_3 STRING "clkbad;activeclock;locked;clkloss;scandataout" // Retrieval info: PRIVATE: CLKSWITCH_CHECK STRING "0" // Retrieval info: PRIVATE: SPREAD_FREQ_UNIT STRING "KHz" // Retrieval info: PRIVATE: PLL_ENA_CHECK STRING "0" // Retrieval info: PRIVATE: INCLK0_FREQ_EDIT STRING "48.000" // Retrieval info: PRIVATE: MEGAFN_PORT_INFO_4 STRING "scandone;sclkout1;sclkout0;enable0;enable1" // Retrieval info: PRIVATE: CNX_NO_COMPENSATE_RADIO STRING "0" // Retrieval info: PRIVATE: INT_FEEDBACK__MODE_RADIO STRING "1" // Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "100.000" // Retrieval info: PRIVATE: PRIMARY_CLK_COMBO STRING "inclk0" // Retrieval info: PRIVATE: CREATE_INCLK1_CHECK STRING "0" // Retrieval info: PRIVATE: SACN_INPUTS_CHECK STRING "0" // Retrieval info: PRIVATE: DEV_FAMILY STRING "Cyclone" // Retrieval info: PRIVATE: LOCK_LOSS_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: SWITCHOVER_COUNT_EDIT NUMERIC "1" // Retrieval info: PRIVATE: SWITCHOVER_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_PRESET STRING "Low" // Retrieval info: PRIVATE: GLOCKED_FEATURE_ENABLED STRING "0" // Retrieval info: PRIVATE: USE_CLKENA0 STRING "0" // Retrieval info: PRIVATE: LVDS_PHASE_SHIFT_UNIT0 STRING "deg" // Retrieval info: PRIVATE: CLKBAD_SWITCHOVER_CHECK STRING "0" // Retrieval info: PRIVATE: BANDWIDTH_USE_PRESET STRING "0" // Retrieval info: PRIVATE: PLL_LVDS_PLL_CHECK NUMERIC "0" // Retrieval info: PRIVATE: DEVICE_FAMILY NUMERIC "11" // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all // Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" // Retrieval info: CONSTANT: LPM_TYPE STRING "altpll" // Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "1" // Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "20833" // Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "1" // Retrieval info: CONSTANT: PLL_TYPE STRING "AUTO" // Retrieval info: CONSTANT: CLK0_TIME_DELAY STRING "0" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: OPERATION_MODE STRING "NORMAL" // Retrieval info: CONSTANT: COMPENSATE_CLOCK STRING "CLK0" // Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "-3000" // Retrieval info: USED_PORT: c0 0 0 0 0 OUTPUT VCC "c0" // Retrieval info: USED_PORT: @clk 0 0 6 0 OUTPUT VCC "@clk[5..0]" // Retrieval info: USED_PORT: inclk0 0 0 0 0 INPUT GND "inclk0" // Retrieval info: USED_PORT: @extclk 0 0 4 0 OUTPUT VCC "@extclk[3..0]" // Retrieval info: CONNECT: @inclk 0 0 1 0 inclk0 0 0 0 0 // Retrieval info: CONNECT: c0 0 0 0 0 @clk 0 0 1 0 // Retrieval info: CONNECT: @inclk 0 0 1 1 GND 0 0 0 0 // Retrieval info: GEN_FILE: TYPE_NORMAL pll.v TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL pll.inc FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL pll.cmp FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL pll.bsf FALSE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL pll_inst.v TRUE FALSE // Retrieval info: GEN_FILE: TYPE_NORMAL pll_bb.v TRUE FALSE uhd-3.5.5/fpga/usrp1/megacells/pll_bb.v000066400000000000000000000027321224274632000176560ustar00rootroot00000000000000//Copyright (C) 1991-2004 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module pll ( inclk0, c0); input inclk0; output c0; endmodule uhd-3.5.5/fpga/usrp1/megacells/pll_inst.v000066400000000000000000000000741224274632000202450ustar00rootroot00000000000000pll pll_inst ( .inclk0 ( inclk0_sig ), .c0 ( c0_sig ) ); uhd-3.5.5/fpga/usrp1/megacells/sub32.bsf000077500000000000000000000067731224274632000177030ustar00rootroot00000000000000/* WARNING: Do NOT edit the input and output ports in this file in a text editor if you plan to continue editing the block that represents it in the Block Editor! File corruption is VERY likely to occur. */ /* Copyright (C) 1991-2003 Altera Corporation Any megafunction design, and related netlist (encrypted or decrypted), support information, device programming or simulation file, and any other associated documentation or information provided by Altera or a partner under Altera's Megafunction Partnership Program may be used only to program PLD devices (but not masked PLD devices) from Altera. Any other use of such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information is prohibited for any other purpose, including, but not limited to modification, reverse engineering, de-compiling, or use with any other silicon devices, unless such use is explicitly licensed under a separate agreement with Altera or a megafunction partner. Title to the intellectual property, including patents, copyrights, trademarks, trade secrets, or maskworks, embodied in any such megafunction design, netlist, support information, device programming or simulation file, or any other related documentation or information provided by Altera or a megafunction partner, remains with Altera, the megafunction partner, or their respective licensors. No other licenses, including any licenses needed under any third party's intellectual property, are provided herein. */ (header "symbol" (version "1.1")) (symbol (rect 0 0 160 128) (text "sub32" (rect 58 2 109 21)(font "Arial" (font_size 10))) (text "inst" (rect 8 109 31 124)(font "Arial" )) (port (pt 0 40) (input) (text "dataa[31..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "dataa[31..0]" (rect 4 24 73 40)(font "Arial" (font_size 8))) (line (pt 0 40)(pt 64 40)(line_width 3)) ) (port (pt 0 72) (input) (text "datab[31..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "datab[31..0]" (rect 4 56 73 72)(font "Arial" (font_size 8))) (line (pt 0 72)(pt 64 72)(line_width 3)) ) (port (pt 0 56) (input) (text "clock" (rect 0 0 36 16)(font "Arial" (font_size 8))) (text "clock" (rect 4 40 35 56)(font "Arial" (font_size 8))) (line (pt 0 56)(pt 64 56)(line_width 1)) ) (port (pt 0 96) (input) (text "clken" (rect 0 0 36 16)(font "Arial" (font_size 8))) (text "clken" (rect 4 80 35 96)(font "Arial" (font_size 8))) (line (pt 0 96)(pt 74 96)(line_width 1)) ) (port (pt 0 112) (input) (text "aclr" (rect 0 0 24 16)(font "Arial" (font_size 8))) (text "aclr" (rect 4 96 25 112)(font "Arial" (font_size 8))) (line (pt 0 112)(pt 85 112)(line_width 1)) ) (port (pt 160 56) (output) (text "result[31..0]" (rect 0 0 81 16)(font "Arial" (font_size 8))) (text "result[31..0]" (rect 88 40 157 56)(font "Arial" (font_size 8))) (line (pt 160 56)(pt 96 56)(line_width 3)) ) (drawing (text "A" (rect 66 32 75 48)(font "Arial" (font_size 8))) (text "B" (rect 66 64 75 80)(font "Arial" (font_size 8))) (text "A-B" (rect 72 48 94 64)(font "Arial" (font_size 8))) (line (pt 64 32)(pt 96 40)(line_width 1)) (line (pt 96 40)(pt 96 72)(line_width 1)) (line (pt 96 72)(pt 64 80)(line_width 1)) (line (pt 64 80)(pt 64 32)(line_width 1)) (line (pt 74 96)(pt 74 77)(line_width 1)) (line (pt 85 112)(pt 85 74)(line_width 1)) (line (pt 64 50)(pt 70 56)(line_width 1)) (line (pt 70 56)(pt 64 62)(line_width 1)) ) ) uhd-3.5.5/fpga/usrp1/megacells/sub32.cmp000077500000000000000000000032271224274632000176770ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. component sub32 PORT ( dataa : IN STD_LOGIC_VECTOR (31 DOWNTO 0); datab : IN STD_LOGIC_VECTOR (31 DOWNTO 0); clock : IN STD_LOGIC ; aclr : IN STD_LOGIC ; clken : IN STD_LOGIC ; result : OUT STD_LOGIC_VECTOR (31 DOWNTO 0) ); end component; uhd-3.5.5/fpga/usrp1/megacells/sub32.inc000077500000000000000000000027701224274632000176730ustar00rootroot00000000000000--Copyright (C) 1991-2003 Altera Corporation --Any megafunction design, and related netlist (encrypted or decrypted), --support information, device programming or simulation file, and any other --associated documentation or information provided by Altera or a partner --under Altera's Megafunction Partnership Program may be used only --to program PLD devices (but not masked PLD devices) from Altera. Any --other use of such megafunction design, netlist, support information, --device programming or simulation file, or any other related documentation --or information is prohibited for any other purpose, including, but not --limited to modification, reverse engineering, de-compiling, or use with --any other silicon devices, unless such use is explicitly licensed under --a separate agreement with Altera or a megafunction partner. Title to the --intellectual property, including patents, copyrights, trademarks, trade --secrets, or maskworks, embodied in any such megafunction design, netlist, --support information, device programming or simulation file, or any other --related documentation or information provided by Altera or a megafunction --partner, remains with Altera, the megafunction partner, or their respective --licensors. No other licenses, including any licenses needed under any third --party's intellectual property, are provided herein. FUNCTION sub32 ( dataa[31..0], datab[31..0], clock, aclr, clken ) RETURNS ( result[31..0] ); uhd-3.5.5/fpga/usrp1/megacells/sub32.v000077500000000000000000000544561224274632000173770ustar00rootroot00000000000000// megafunction wizard: %LPM_ADD_SUB%CBX% // GENERATION: STANDARD // VERSION: WM1.0 // MODULE: lpm_add_sub // ============================================================ // File Name: sub32.v // Megafunction Name(s): // lpm_add_sub // ============================================================ // ************************************************************ // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! // ************************************************************ //Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. //lpm_add_sub DEVICE_FAMILY=Cyclone LPM_DIRECTION=SUB LPM_PIPELINE=1 LPM_WIDTH=32 aclr clken clock dataa datab result //VERSION_BEGIN 3.0 cbx_lpm_add_sub 2003:04:10:18:28:42:SJ cbx_mgl 2003:06:11:11:00:44:SJ cbx_stratix 2003:05:16:10:26:50:SJ VERSION_END //synthesis_resources = lut 32 module sub32_add_sub_cqa ( aclr, clken, clock, dataa, datab, result) /* synthesis synthesis_clearbox=1 */; input aclr; input clken; input clock; input [31:0] dataa; input [31:0] datab; output [31:0] result; wire [0:0] wire_add_sub_cella_0cout; wire [0:0] wire_add_sub_cella_1cout; wire [0:0] wire_add_sub_cella_2cout; wire [0:0] wire_add_sub_cella_3cout; wire [0:0] wire_add_sub_cella_4cout; wire [0:0] wire_add_sub_cella_5cout; wire [0:0] wire_add_sub_cella_6cout; wire [0:0] wire_add_sub_cella_7cout; wire [0:0] wire_add_sub_cella_8cout; wire [0:0] wire_add_sub_cella_9cout; wire [0:0] wire_add_sub_cella_10cout; wire [0:0] wire_add_sub_cella_11cout; wire [0:0] wire_add_sub_cella_12cout; wire [0:0] wire_add_sub_cella_13cout; wire [0:0] wire_add_sub_cella_14cout; wire [0:0] wire_add_sub_cella_15cout; wire [0:0] wire_add_sub_cella_16cout; wire [0:0] wire_add_sub_cella_17cout; wire [0:0] wire_add_sub_cella_18cout; wire [0:0] wire_add_sub_cella_19cout; wire [0:0] wire_add_sub_cella_20cout; wire [0:0] wire_add_sub_cella_21cout; wire [0:0] wire_add_sub_cella_22cout; wire [0:0] wire_add_sub_cella_23cout; wire [0:0] wire_add_sub_cella_24cout; wire [0:0] wire_add_sub_cella_25cout; wire [0:0] wire_add_sub_cella_26cout; wire [0:0] wire_add_sub_cella_27cout; wire [0:0] wire_add_sub_cella_28cout; wire [0:0] wire_add_sub_cella_29cout; wire [0:0] wire_add_sub_cella_30cout; wire [31:0] wire_add_sub_cella_dataa; wire [31:0] wire_add_sub_cella_datab; wire [31:0] wire_add_sub_cella_regout; stratix_lcell add_sub_cella_0 ( .aclr(aclr), .cin(1'b1), .clk(clock), .cout(wire_add_sub_cella_0cout[0:0]), .dataa(wire_add_sub_cella_dataa[0:0]), .datab(wire_add_sub_cella_datab[0:0]), .ena(clken), .regout(wire_add_sub_cella_regout[0:0])); defparam add_sub_cella_0.cin_used = "true", add_sub_cella_0.lut_mask = "69b2", add_sub_cella_0.operation_mode = "arithmetic", add_sub_cella_0.sum_lutc_input = "cin", add_sub_cella_0.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_1 ( .aclr(aclr), .cin(wire_add_sub_cella_0cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_1cout[0:0]), .dataa(wire_add_sub_cella_dataa[1:1]), .datab(wire_add_sub_cella_datab[1:1]), .ena(clken), .regout(wire_add_sub_cella_regout[1:1])); defparam add_sub_cella_1.cin_used = "true", add_sub_cella_1.lut_mask = "69b2", add_sub_cella_1.operation_mode = "arithmetic", add_sub_cella_1.sum_lutc_input = "cin", add_sub_cella_1.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_2 ( .aclr(aclr), .cin(wire_add_sub_cella_1cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_2cout[0:0]), .dataa(wire_add_sub_cella_dataa[2:2]), .datab(wire_add_sub_cella_datab[2:2]), .ena(clken), .regout(wire_add_sub_cella_regout[2:2])); defparam add_sub_cella_2.cin_used = "true", add_sub_cella_2.lut_mask = "69b2", add_sub_cella_2.operation_mode = "arithmetic", add_sub_cella_2.sum_lutc_input = "cin", add_sub_cella_2.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_3 ( .aclr(aclr), .cin(wire_add_sub_cella_2cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_3cout[0:0]), .dataa(wire_add_sub_cella_dataa[3:3]), .datab(wire_add_sub_cella_datab[3:3]), .ena(clken), .regout(wire_add_sub_cella_regout[3:3])); defparam add_sub_cella_3.cin_used = "true", add_sub_cella_3.lut_mask = "69b2", add_sub_cella_3.operation_mode = "arithmetic", add_sub_cella_3.sum_lutc_input = "cin", add_sub_cella_3.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_4 ( .aclr(aclr), .cin(wire_add_sub_cella_3cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_4cout[0:0]), .dataa(wire_add_sub_cella_dataa[4:4]), .datab(wire_add_sub_cella_datab[4:4]), .ena(clken), .regout(wire_add_sub_cella_regout[4:4])); defparam add_sub_cella_4.cin_used = "true", add_sub_cella_4.lut_mask = "69b2", add_sub_cella_4.operation_mode = "arithmetic", add_sub_cella_4.sum_lutc_input = "cin", add_sub_cella_4.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_5 ( .aclr(aclr), .cin(wire_add_sub_cella_4cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_5cout[0:0]), .dataa(wire_add_sub_cella_dataa[5:5]), .datab(wire_add_sub_cella_datab[5:5]), .ena(clken), .regout(wire_add_sub_cella_regout[5:5])); defparam add_sub_cella_5.cin_used = "true", add_sub_cella_5.lut_mask = "69b2", add_sub_cella_5.operation_mode = "arithmetic", add_sub_cella_5.sum_lutc_input = "cin", add_sub_cella_5.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_6 ( .aclr(aclr), .cin(wire_add_sub_cella_5cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_6cout[0:0]), .dataa(wire_add_sub_cella_dataa[6:6]), .datab(wire_add_sub_cella_datab[6:6]), .ena(clken), .regout(wire_add_sub_cella_regout[6:6])); defparam add_sub_cella_6.cin_used = "true", add_sub_cella_6.lut_mask = "69b2", add_sub_cella_6.operation_mode = "arithmetic", add_sub_cella_6.sum_lutc_input = "cin", add_sub_cella_6.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_7 ( .aclr(aclr), .cin(wire_add_sub_cella_6cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_7cout[0:0]), .dataa(wire_add_sub_cella_dataa[7:7]), .datab(wire_add_sub_cella_datab[7:7]), .ena(clken), .regout(wire_add_sub_cella_regout[7:7])); defparam add_sub_cella_7.cin_used = "true", add_sub_cella_7.lut_mask = "69b2", add_sub_cella_7.operation_mode = "arithmetic", add_sub_cella_7.sum_lutc_input = "cin", add_sub_cella_7.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_8 ( .aclr(aclr), .cin(wire_add_sub_cella_7cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_8cout[0:0]), .dataa(wire_add_sub_cella_dataa[8:8]), .datab(wire_add_sub_cella_datab[8:8]), .ena(clken), .regout(wire_add_sub_cella_regout[8:8])); defparam add_sub_cella_8.cin_used = "true", add_sub_cella_8.lut_mask = "69b2", add_sub_cella_8.operation_mode = "arithmetic", add_sub_cella_8.sum_lutc_input = "cin", add_sub_cella_8.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_9 ( .aclr(aclr), .cin(wire_add_sub_cella_8cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_9cout[0:0]), .dataa(wire_add_sub_cella_dataa[9:9]), .datab(wire_add_sub_cella_datab[9:9]), .ena(clken), .regout(wire_add_sub_cella_regout[9:9])); defparam add_sub_cella_9.cin_used = "true", add_sub_cella_9.lut_mask = "69b2", add_sub_cella_9.operation_mode = "arithmetic", add_sub_cella_9.sum_lutc_input = "cin", add_sub_cella_9.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_10 ( .aclr(aclr), .cin(wire_add_sub_cella_9cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_10cout[0:0]), .dataa(wire_add_sub_cella_dataa[10:10]), .datab(wire_add_sub_cella_datab[10:10]), .ena(clken), .regout(wire_add_sub_cella_regout[10:10])); defparam add_sub_cella_10.cin_used = "true", add_sub_cella_10.lut_mask = "69b2", add_sub_cella_10.operation_mode = "arithmetic", add_sub_cella_10.sum_lutc_input = "cin", add_sub_cella_10.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_11 ( .aclr(aclr), .cin(wire_add_sub_cella_10cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_11cout[0:0]), .dataa(wire_add_sub_cella_dataa[11:11]), .datab(wire_add_sub_cella_datab[11:11]), .ena(clken), .regout(wire_add_sub_cella_regout[11:11])); defparam add_sub_cella_11.cin_used = "true", add_sub_cella_11.lut_mask = "69b2", add_sub_cella_11.operation_mode = "arithmetic", add_sub_cella_11.sum_lutc_input = "cin", add_sub_cella_11.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_12 ( .aclr(aclr), .cin(wire_add_sub_cella_11cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_12cout[0:0]), .dataa(wire_add_sub_cella_dataa[12:12]), .datab(wire_add_sub_cella_datab[12:12]), .ena(clken), .regout(wire_add_sub_cella_regout[12:12])); defparam add_sub_cella_12.cin_used = "true", add_sub_cella_12.lut_mask = "69b2", add_sub_cella_12.operation_mode = "arithmetic", add_sub_cella_12.sum_lutc_input = "cin", add_sub_cella_12.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_13 ( .aclr(aclr), .cin(wire_add_sub_cella_12cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_13cout[0:0]), .dataa(wire_add_sub_cella_dataa[13:13]), .datab(wire_add_sub_cella_datab[13:13]), .ena(clken), .regout(wire_add_sub_cella_regout[13:13])); defparam add_sub_cella_13.cin_used = "true", add_sub_cella_13.lut_mask = "69b2", add_sub_cella_13.operation_mode = "arithmetic", add_sub_cella_13.sum_lutc_input = "cin", add_sub_cella_13.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_14 ( .aclr(aclr), .cin(wire_add_sub_cella_13cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_14cout[0:0]), .dataa(wire_add_sub_cella_dataa[14:14]), .datab(wire_add_sub_cella_datab[14:14]), .ena(clken), .regout(wire_add_sub_cella_regout[14:14])); defparam add_sub_cella_14.cin_used = "true", add_sub_cella_14.lut_mask = "69b2", add_sub_cella_14.operation_mode = "arithmetic", add_sub_cella_14.sum_lutc_input = "cin", add_sub_cella_14.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_15 ( .aclr(aclr), .cin(wire_add_sub_cella_14cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_15cout[0:0]), .dataa(wire_add_sub_cella_dataa[15:15]), .datab(wire_add_sub_cella_datab[15:15]), .ena(clken), .regout(wire_add_sub_cella_regout[15:15])); defparam add_sub_cella_15.cin_used = "true", add_sub_cella_15.lut_mask = "69b2", add_sub_cella_15.operation_mode = "arithmetic", add_sub_cella_15.sum_lutc_input = "cin", add_sub_cella_15.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_16 ( .aclr(aclr), .cin(wire_add_sub_cella_15cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_16cout[0:0]), .dataa(wire_add_sub_cella_dataa[16:16]), .datab(wire_add_sub_cella_datab[16:16]), .ena(clken), .regout(wire_add_sub_cella_regout[16:16])); defparam add_sub_cella_16.cin_used = "true", add_sub_cella_16.lut_mask = "69b2", add_sub_cella_16.operation_mode = "arithmetic", add_sub_cella_16.sum_lutc_input = "cin", add_sub_cella_16.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_17 ( .aclr(aclr), .cin(wire_add_sub_cella_16cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_17cout[0:0]), .dataa(wire_add_sub_cella_dataa[17:17]), .datab(wire_add_sub_cella_datab[17:17]), .ena(clken), .regout(wire_add_sub_cella_regout[17:17])); defparam add_sub_cella_17.cin_used = "true", add_sub_cella_17.lut_mask = "69b2", add_sub_cella_17.operation_mode = "arithmetic", add_sub_cella_17.sum_lutc_input = "cin", add_sub_cella_17.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_18 ( .aclr(aclr), .cin(wire_add_sub_cella_17cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_18cout[0:0]), .dataa(wire_add_sub_cella_dataa[18:18]), .datab(wire_add_sub_cella_datab[18:18]), .ena(clken), .regout(wire_add_sub_cella_regout[18:18])); defparam add_sub_cella_18.cin_used = "true", add_sub_cella_18.lut_mask = "69b2", add_sub_cella_18.operation_mode = "arithmetic", add_sub_cella_18.sum_lutc_input = "cin", add_sub_cella_18.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_19 ( .aclr(aclr), .cin(wire_add_sub_cella_18cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_19cout[0:0]), .dataa(wire_add_sub_cella_dataa[19:19]), .datab(wire_add_sub_cella_datab[19:19]), .ena(clken), .regout(wire_add_sub_cella_regout[19:19])); defparam add_sub_cella_19.cin_used = "true", add_sub_cella_19.lut_mask = "69b2", add_sub_cella_19.operation_mode = "arithmetic", add_sub_cella_19.sum_lutc_input = "cin", add_sub_cella_19.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_20 ( .aclr(aclr), .cin(wire_add_sub_cella_19cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_20cout[0:0]), .dataa(wire_add_sub_cella_dataa[20:20]), .datab(wire_add_sub_cella_datab[20:20]), .ena(clken), .regout(wire_add_sub_cella_regout[20:20])); defparam add_sub_cella_20.cin_used = "true", add_sub_cella_20.lut_mask = "69b2", add_sub_cella_20.operation_mode = "arithmetic", add_sub_cella_20.sum_lutc_input = "cin", add_sub_cella_20.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_21 ( .aclr(aclr), .cin(wire_add_sub_cella_20cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_21cout[0:0]), .dataa(wire_add_sub_cella_dataa[21:21]), .datab(wire_add_sub_cella_datab[21:21]), .ena(clken), .regout(wire_add_sub_cella_regout[21:21])); defparam add_sub_cella_21.cin_used = "true", add_sub_cella_21.lut_mask = "69b2", add_sub_cella_21.operation_mode = "arithmetic", add_sub_cella_21.sum_lutc_input = "cin", add_sub_cella_21.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_22 ( .aclr(aclr), .cin(wire_add_sub_cella_21cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_22cout[0:0]), .dataa(wire_add_sub_cella_dataa[22:22]), .datab(wire_add_sub_cella_datab[22:22]), .ena(clken), .regout(wire_add_sub_cella_regout[22:22])); defparam add_sub_cella_22.cin_used = "true", add_sub_cella_22.lut_mask = "69b2", add_sub_cella_22.operation_mode = "arithmetic", add_sub_cella_22.sum_lutc_input = "cin", add_sub_cella_22.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_23 ( .aclr(aclr), .cin(wire_add_sub_cella_22cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_23cout[0:0]), .dataa(wire_add_sub_cella_dataa[23:23]), .datab(wire_add_sub_cella_datab[23:23]), .ena(clken), .regout(wire_add_sub_cella_regout[23:23])); defparam add_sub_cella_23.cin_used = "true", add_sub_cella_23.lut_mask = "69b2", add_sub_cella_23.operation_mode = "arithmetic", add_sub_cella_23.sum_lutc_input = "cin", add_sub_cella_23.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_24 ( .aclr(aclr), .cin(wire_add_sub_cella_23cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_24cout[0:0]), .dataa(wire_add_sub_cella_dataa[24:24]), .datab(wire_add_sub_cella_datab[24:24]), .ena(clken), .regout(wire_add_sub_cella_regout[24:24])); defparam add_sub_cella_24.cin_used = "true", add_sub_cella_24.lut_mask = "69b2", add_sub_cella_24.operation_mode = "arithmetic", add_sub_cella_24.sum_lutc_input = "cin", add_sub_cella_24.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_25 ( .aclr(aclr), .cin(wire_add_sub_cella_24cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_25cout[0:0]), .dataa(wire_add_sub_cella_dataa[25:25]), .datab(wire_add_sub_cella_datab[25:25]), .ena(clken), .regout(wire_add_sub_cella_regout[25:25])); defparam add_sub_cella_25.cin_used = "true", add_sub_cella_25.lut_mask = "69b2", add_sub_cella_25.operation_mode = "arithmetic", add_sub_cella_25.sum_lutc_input = "cin", add_sub_cella_25.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_26 ( .aclr(aclr), .cin(wire_add_sub_cella_25cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_26cout[0:0]), .dataa(wire_add_sub_cella_dataa[26:26]), .datab(wire_add_sub_cella_datab[26:26]), .ena(clken), .regout(wire_add_sub_cella_regout[26:26])); defparam add_sub_cella_26.cin_used = "true", add_sub_cella_26.lut_mask = "69b2", add_sub_cella_26.operation_mode = "arithmetic", add_sub_cella_26.sum_lutc_input = "cin", add_sub_cella_26.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_27 ( .aclr(aclr), .cin(wire_add_sub_cella_26cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_27cout[0:0]), .dataa(wire_add_sub_cella_dataa[27:27]), .datab(wire_add_sub_cella_datab[27:27]), .ena(clken), .regout(wire_add_sub_cella_regout[27:27])); defparam add_sub_cella_27.cin_used = "true", add_sub_cella_27.lut_mask = "69b2", add_sub_cella_27.operation_mode = "arithmetic", add_sub_cella_27.sum_lutc_input = "cin", add_sub_cella_27.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_28 ( .aclr(aclr), .cin(wire_add_sub_cella_27cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_28cout[0:0]), .dataa(wire_add_sub_cella_dataa[28:28]), .datab(wire_add_sub_cella_datab[28:28]), .ena(clken), .regout(wire_add_sub_cella_regout[28:28])); defparam add_sub_cella_28.cin_used = "true", add_sub_cella_28.lut_mask = "69b2", add_sub_cella_28.operation_mode = "arithmetic", add_sub_cella_28.sum_lutc_input = "cin", add_sub_cella_28.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_29 ( .aclr(aclr), .cin(wire_add_sub_cella_28cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_29cout[0:0]), .dataa(wire_add_sub_cella_dataa[29:29]), .datab(wire_add_sub_cella_datab[29:29]), .ena(clken), .regout(wire_add_sub_cella_regout[29:29])); defparam add_sub_cella_29.cin_used = "true", add_sub_cella_29.lut_mask = "69b2", add_sub_cella_29.operation_mode = "arithmetic", add_sub_cella_29.sum_lutc_input = "cin", add_sub_cella_29.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_30 ( .aclr(aclr), .cin(wire_add_sub_cella_29cout[0:0]), .clk(clock), .cout(wire_add_sub_cella_30cout[0:0]), .dataa(wire_add_sub_cella_dataa[30:30]), .datab(wire_add_sub_cella_datab[30:30]), .ena(clken), .regout(wire_add_sub_cella_regout[30:30])); defparam add_sub_cella_30.cin_used = "true", add_sub_cella_30.lut_mask = "69b2", add_sub_cella_30.operation_mode = "arithmetic", add_sub_cella_30.sum_lutc_input = "cin", add_sub_cella_30.lpm_type = "stratix_lcell"; stratix_lcell add_sub_cella_31 ( .aclr(aclr), .cin(wire_add_sub_cella_30cout[0:0]), .clk(clock), .dataa(wire_add_sub_cella_dataa[31:31]), .datab(wire_add_sub_cella_datab[31:31]), .ena(clken), .regout(wire_add_sub_cella_regout[31:31])); defparam add_sub_cella_31.cin_used = "true", add_sub_cella_31.lut_mask = "6969", add_sub_cella_31.operation_mode = "normal", add_sub_cella_31.sum_lutc_input = "cin", add_sub_cella_31.lpm_type = "stratix_lcell"; assign wire_add_sub_cella_dataa = dataa, wire_add_sub_cella_datab = datab; assign result = wire_add_sub_cella_regout; endmodule //sub32_add_sub_cqa //VALID FILE module sub32 ( dataa, datab, clock, aclr, clken, result)/* synthesis synthesis_clearbox = 1 */; input [31:0] dataa; input [31:0] datab; input clock; input aclr; input clken; output [31:0] result; wire [31:0] sub_wire0; wire [31:0] result = sub_wire0[31:0]; sub32_add_sub_cqa sub32_add_sub_cqa_component ( .dataa (dataa), .datab (datab), .clken (clken), .aclr (aclr), .clock (clock), .result (sub_wire0)); endmodule // ============================================================ // CNX file retrieval info // ============================================================ // Retrieval info: PRIVATE: nBit NUMERIC "32" // Retrieval info: PRIVATE: Function NUMERIC "1" // Retrieval info: PRIVATE: WhichConstant NUMERIC "0" // Retrieval info: PRIVATE: ConstantA NUMERIC "0" // Retrieval info: PRIVATE: ConstantB NUMERIC "0" // Retrieval info: PRIVATE: ValidCtA NUMERIC "0" // Retrieval info: PRIVATE: ValidCtB NUMERIC "0" // Retrieval info: PRIVATE: CarryIn NUMERIC "0" // Retrieval info: PRIVATE: CarryOut NUMERIC "0" // Retrieval info: PRIVATE: Overflow NUMERIC "0" // Retrieval info: PRIVATE: Latency NUMERIC "1" // Retrieval info: PRIVATE: aclr NUMERIC "1" // Retrieval info: PRIVATE: clken NUMERIC "1" // Retrieval info: PRIVATE: LPM_PIPELINE NUMERIC "1" // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "32" // Retrieval info: CONSTANT: LPM_DIRECTION STRING "SUB" // Retrieval info: CONSTANT: LPM_TYPE STRING "LPM_ADD_SUB" // Retrieval info: CONSTANT: LPM_HINT STRING "ONE_INPUT_IS_CONSTANT=NO" // Retrieval info: CONSTANT: LPM_PIPELINE NUMERIC "1" // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone" // Retrieval info: USED_PORT: result 0 0 32 0 OUTPUT NODEFVAL result[31..0] // Retrieval info: USED_PORT: dataa 0 0 32 0 INPUT NODEFVAL dataa[31..0] // Retrieval info: USED_PORT: datab 0 0 32 0 INPUT NODEFVAL datab[31..0] // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL clock // Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL aclr // Retrieval info: USED_PORT: clken 0 0 0 0 INPUT NODEFVAL clken // Retrieval info: CONNECT: result 0 0 32 0 @result 0 0 32 0 // Retrieval info: CONNECT: @dataa 0 0 32 0 dataa 0 0 32 0 // Retrieval info: CONNECT: @datab 0 0 32 0 datab 0 0 32 0 // Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0 // Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0 // Retrieval info: CONNECT: @clken 0 0 0 0 clken 0 0 0 0 // Retrieval info: LIBRARY: lpm lpm.lpm_components.all uhd-3.5.5/fpga/usrp1/megacells/sub32_bb.v000077500000000000000000000031701224274632000200250ustar00rootroot00000000000000//Copyright (C) 1991-2003 Altera Corporation //Any megafunction design, and related netlist (encrypted or decrypted), //support information, device programming or simulation file, and any other //associated documentation or information provided by Altera or a partner //under Altera's Megafunction Partnership Program may be used only //to program PLD devices (but not masked PLD devices) from Altera. Any //other use of such megafunction design, netlist, support information, //device programming or simulation file, or any other related documentation //or information is prohibited for any other purpose, including, but not //limited to modification, reverse engineering, de-compiling, or use with //any other silicon devices, unless such use is explicitly licensed under //a separate agreement with Altera or a megafunction partner. Title to the //intellectual property, including patents, copyrights, trademarks, trade //secrets, or maskworks, embodied in any such megafunction design, netlist, //support information, device programming or simulation file, or any other //related documentation or information provided by Altera or a megafunction //partner, remains with Altera, the megafunction partner, or their respective //licensors. No other licenses, including any licenses needed under any third //party's intellectual property, are provided herein. module sub32 ( dataa, datab, clock, aclr, clken, result)/* synthesis synthesis_clearbox = 1 */; input [31:0] dataa; input [31:0] datab; input clock; input aclr; input clken; output [31:0] result; endmodule uhd-3.5.5/fpga/usrp1/megacells/sub32_inst.v000077500000000000000000000002401224274632000204120ustar00rootroot00000000000000sub32 sub32_inst ( .dataa ( dataa_sig ), .datab ( datab_sig ), .clock ( clock_sig ), .aclr ( aclr_sig ), .clken ( clken_sig ), .result ( result_sig ) ); uhd-3.5.5/fpga/usrp1/models/000077500000000000000000000000001224274632000155605ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/models/bustri.v000066400000000000000000000004541224274632000172620ustar00rootroot00000000000000 // Model for tristate bus on altera // FIXME do we really need to use a megacell for this? module bustri (data, enabledt, tridata); input [15:0] data; input enabledt; inout [15:0] tridata; assign tridata = enabledt ? data :16'bz; endmodule // bustri uhd-3.5.5/fpga/usrp1/models/fifo.v000066400000000000000000000031231224274632000166710ustar00rootroot00000000000000// Model of FIFO in Altera module fifo( data, wrreq, rdreq, rdclk, wrclk, aclr, q, rdfull, rdempty, rdusedw, wrfull, wrempty, wrusedw); parameter width = 16; parameter depth = 1024; parameter addr_bits = 10; //`define rd_req 0; // Set this to 0 for rd_ack, 1 for rd_req input [width-1:0] data; input wrreq; input rdreq; input rdclk; input wrclk; input aclr; output [width-1:0] q; output rdfull; output rdempty; output reg [addr_bits-1:0] rdusedw; output wrfull; output wrempty; output reg [addr_bits-1:0] wrusedw; reg [width-1:0] mem [0:depth-1]; reg [addr_bits-1:0] rdptr; reg [addr_bits-1:0] wrptr; `ifdef rd_req reg [width-1:0] q; `else wire [width-1:0] q; `endif integer i; always @( aclr) begin wrptr <= #1 0; rdptr <= #1 0; for(i=0;iÒ€?[ˆÀ®3ˆ Ϲ €ˆ€8(A€8(A„ˆ!(A¼8Ã@ñŸl€(ˆ0Aˆ#€0Aˆ#€pA€€XáðÏä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáŒ;¨D/dB/dB/–$o„ò„S(O8…òÅ$O(1A®äj±Aø2„3åBøA.„/äBøaIúA(O8…ò„S(_,±Aò„äj1A®„/C8S.„/ô(„/ô(„/–¬o”(O8”(O8”(W¬„r„rAhj„¦öAˆ/BxCèB˜BB˜BB˜bÉšFŽÎ €dB0Aˆ#á((A&ÄA€8Ž€dBpAÈAˆ!†(A&ƒƒ ˆ‚‚ðNv ˆó ‚( È € [Ó "€Ï8 ‚À˜“ŒÎc „ H€ €" ( €(L5ªˆ€€ B H€ˆ €ß+€ ÀÃ(POñ ü<<ˆ@qY ü<<ðÏ<ÀÏÃÿɈ‚¬4æðÏ<ÀψŸSˆ€>ÒˆE ˆ(I0Aˆ#€0Aˆ#€pA€€À­3 ÿÌ(A€8(A€8(A„ˆ!(AÀÕCð˜Ép2ÄA/CÒ46ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáŒ;¨LøA&ôA&ôaIòA(O8…ò„S(_,±Aò„äj1A®„/C8S.„/äBøA.„/–¤o„ò„S(O8…òÅ$O(1A®äj±Aø2„3åBøABøABøaÉúA‰ò„C‰ò„C‰rÅúA(G(„¦vAhj„ø"„7„.„)ô(„)ô(„)–¬mAo±€dB0Aˆ#á((A&ÄA€8Ž€dBpAÈAˆ!†(A&\1­ˆ‚‚€ˆPÏS €€4ëˆP"@€@ˆ0D@ñ*] )ˆ B$!€ˆDAH% BÀ+³!Hˆ@A"B€‚A€HD@$BŸŸ!$€@ @!‚<2œ!@APH@@@ñ¡ê€*B€„¨BHHD‚B€(H@‚EB@!À„ˆHD‚$ð‚Ö @€B@A DA HD!€öl<€ B € ‚ !ˆH@‚ „ÀáÃA€@$ AŸ8  A€DAD@@|6#€A €AD°÷D€@ @DAŒ3;@€@@„€€A`AADA"AðÑî‚ @A@„ÀdÈ%  CDA(ð뀀! @„€@ €€A(€6qAD ADA@D@ð“üB‚ˆAPDD`AADAD@ADÀ.£ "(€€E4@AMAALEC@DCbB(ð,ÅP"!!@AAGADADA@D@DÀó $ @@  ±€@$1 DCn,P"+9IX"€¡„¡ÐDq„8EôME„ÑDq4EÔDqU$ôM„gA 1DM8AEtA ò$$OBXFEE(A(".âá™R")á!1 !! ! ÐDqôOAq¤t´QDADOAQDE„aAÑD„DA@A€Â$ETDOB²$DA*‚òN[ ñ2eò!!!¡¤!8PDMGAKOAñ4I!¡WEOA!!¡MM”gAEI!ñ$IPDpAL(M$*ØFò$$*r$PD(AÂçS‡!AÒ"ñ#¡!ÁEDEôMMIaAGAKETDAAàAÁ”DA&´$âBD@€"ò^p2äô2$o14ccá–Žs[Ž2IñÁ2IñÁIñá–#qa”„7G82Å/Câ<ácáQ†ñ„s[Ž6IñÁ2A,ÑDñá–cqa„xs¤'COQü:$Á£ÁáãÁeÁŽcׄŽ"A¬tÁ*òáŽcra¼$xcŒx"ÄįB‚Šž.ì3:D/dc/dc/1¶òAó„S8O8…óÅ4O(±Añ¤Säj±Aø2„såCøA>„/äCøaOAúEó„WLó„S8_,±Aó”®Sô¤[„/C8SOCøACøABøaͤoQ”(O8”(Ox”(W¬„r„rax¤vax¤öeˆoBxGèB˜BB˜BB˜bÉšfÏa‚,db0AA€8O(@€dB@DA„#á(A€dB@„„!G(€dBPÉ€ Š @$€A„€D 0€€(€"ðI¤ ˆDD  A€@ÑÁ5;‚@ D! @! $aA„(@"Ð| ‚‚€A %@A€@Ða6}ˆ@ $@@$!A€%HD „(@‘/A  !L@ADA&41ñ6ô",“4M$gC213+Ba?4!]4M"oCó46/C’4K1OCaC&„ò$ô"6?1Ó7ó='1-+1oCó&>&M6:ò":ó#?1ò&WCR%.?#ñ;3%ñ=Ÿññ!{"wb."G"AeGRµÝ)ïÂò/,.,Ï‚ò,,ÏÂò".o¦T,­BƒÄHF"òÔup"ÄA/CÒ46ä87EŽ2IñÁ2A,n9Fˆ7Gˆ'SÁ/SòÁ'>aAŽsSä(ôÁ2YqÁñá–1F„7F'Sý:%MÁ¥ÁáçVŽcׄO(ôÁ*Q¬BîXBƈ7ÆLx"ÄÄ­$IŠÎFYBoqu"ôA&ôaOBòcObò”sobò”sobòÅ2Fò„2WF¾6WF®6_Fø2¦wG/rú6E/rúA/røaobúaobò”sobò„s/"òÅ2?&ò…27f_kscô¥6Fø7¦3÷#·¯ô*¯¯õ*¯÷.«oQö.#Oxö."OxÔ.rÅþO*Wè÷äê·Ä¦þIŒoâxKü"έd¯æœJÆœjÏ„ú.DY ‚A(IfB`B!&raÔdBàB„’†+!O(¡!E‚R$(M"Cab`b!&òa-A"!*‚’‚+!Ž($ŒÂŒÂ"Ehb`"!"%xaؘ‚£b(ƒBrHHb„,rDhB„ì1 ‘†ˆ!!€(€„"EBd0 #'B°"%„DÄD@#A A#0""A$(LD,BJ ˆ#q‚`A€* "AA"A!À!.$$!L$AàBT`A4! @&@"$D "DHCH@Ñ!1m H$$!A9@$$D4,DEDA!!%R,BTƒBD@H BÀ"ÿO¢A‚@!&"€H$@B,K!!p!A@H @A@”(`„!„Ð:÷0“@D 1!a(€€‚A&”d! I‚a‚0(A„PH@(R‚(!oŠJ"@BBâB$ ! A@4@d!DBAHBT@BTaPAA”(pBÐÑ=©@`A@$„" "%A(@$D(@"AA@R@Hø¢)!€DT@4D$! @D€$ˆH²F$„p+D`D%ÄF`ˆ!$Mºƒ %D!&$„BBA&D 9%D„‚$$@DDD!„ HT!(CDP„P!(EAˆD„!É!üãcDAHD‚" (A aB„@ ÀŸƒZ!@ A€Á@A€'! %!a "€!€¤!A( "E@$EDï‹P@Ð!!TÀ(A2!@!"À  "$A@A!DÄ#!! ` `RD!" ‚‘"2!€‘"À!‚€‚"!$ADÐÇG$$!A"$#QA!1D( "@EAEA1!€…(AB@BD$AAAÂró!4$"D”&D@AÀ4À$àB"bA&".R"Aa@D@!!à‹IA$!D@’ADaA *!„*"&A$!$@À¿cA@À@Â&!°!‚²!’1(2¡("I"’$°4Y!2$Á!€#!DDPA@o¸ $€‘PÂ1(À2I*ƒ*!AA³!"‘2€D$tPa¤AAAÀó (DD#L  ¢"€"€ ,BP"@Ÿý`ÀD(‚( D@$" A"!$$@D5,%)a`!"*K2/rR2DdA2(A "1$2C¡p!"!bS(!M FR%¡%BABD!ð^¯Ð!@‚1#aLb ’$.*RA 2*ãRÑ1$"K"E±4C2(±’!*QBL2"DDDAA$@ü+A†Q%AQ$D,Bâa1DS"2Ko2S48(E³£1K4I¢ À4‚#AA"D’$R!PD%BTÈD!aOu $49EBÓÑd±Cñ+oÑrñ!¤oBr$õ5bWBLò&A(GS²ò1%.$[4:ÑAr!´ò41&ÑA8&G>Aµs4µ1M1SÓSÂ&g¤$5FU7ER"ÌXURBAERd)R$EÒv5R!%R!)ñ'aKñ?!ñ%/#²ò%%OSÒ$ñ&2_a³ñ5'k1R’$MS£32OCãS²!òO³4ò$$â’4OA³1³ñ%5“R³4SD5µ"Ò"RF%W3%W&eT˜5Q5eT"$E%BBô¶Þ441="UCS#CsñG'!,1%ñ&sxÅ!r%CÇ!4"WÑQÂ%GWDL2ORáQRA_ø!EÕAROÓTÒAò!$UÁ!EWWäDdEQTDdIX†UDT$EVB-&EBR"8ƒÈƒ%Q#R1%Q#Ò1ArvÂ7-?!ñ%1OR"÷Oã±5’ar%TQK2GBLãA±4ÑUâSÓAñORWBRM!Oñ2Q2WAô&$-$DeQu%DTBÅXUUAeR$eT"$$!%Rtžœp2Õô2%mA'6V$ŽsW$Ž2A,S$,Aòá–3qa”7E9x2ÅÁ/SÒ|ÁácÁAAO87EŽ2A,õÁôá†'AFˆ7Gˆ'S\ü:%MÁ£ÁáïÒVO8vMø„"A¬tÅJôáŽ!ÆLxcœ'BLü*$iŠÞö7Ó=…/t"õA'/1ÖòC-#_8Å&O8Å"-ñA#_(qA÷¡ô¡[„?C:WRùC.¥oåRùaM¡ô$!_8•$O8•$_n±Eò…WDksAõ¡Tø7”7U_RøERúARùaÍ¡oÔ<ò„CÉò¤CésÅþG9G(wĦvC|¬÷AŒ/BxCü&„-D¯B˜B¯B˜béÚäJ€dB€€.I8O(!$IäB€4A„ˆ#ã(!2 dR$!„-Aƒ1!‚!†!(a&ì/ʆB‚d#'D#Ð&Ô!C–$ Ñ!‚!2&‘$p$DAhDD-$ RaQAA$DÑO%\"D+2€B"!‚ #E( ’h0-M"TA`@Àù¡ˆ"!Ð#(LPDAD‰€ð„bB@@"!APDA‡D j!A%¤LP‘H -8%ñOy$…4p$D€B‚LBt(¤!…AT`J`³"F"‡DM((”BàBDÄH„!€!d"­(À(CM@„‚Ì:ÆP(BB2D&B]!A&¨U8 ¡JÁ)",&BhB„($MDD™$AÔ)!)2(!cFÑHb„lD„&èa¸³ !0!€DBA„ "PÈ‚1 ÀH@A„H ä"D‚D„ ,!?ì„‹ˆ RR14P"”$EЂaB€$!‚%1AÀ!$ DBNÐaB„’A()…ADB%$„@ÒDðˆ$%13%€DrAI$ÁD‹$hI‚Ai8F†!!‚!D>$T†H €8H,Â8D!IR$!§.‚^X0D"V¢IIUÉ93K£CVP‚%$AÁD!#Q4Eˆ3(D(DXB"'DP) ƒ’(Ñ„UB8„L"‘ƒ,$b¡’G$K$A°)E$RJHD0(`A!’pxýG4!A1‚`` Fˆ‚@BFA’„ˆ(”Bp$$#ELBC‚H‚ì=-@(ap#(¡ ‚1( â20°q!"!-2d„#I‚1(%BA bɤ (.HH¤8 D“!jC$X!nQ !CB"€(P‚°"B˜!D")`BŒEBŠ$A"b!H Á"„b!‚„1B"ì8RÀPx"À2‰A(<ƒ!"ƒQ‚9Ab¡! ¡!H'!$,r"”)qBB”"’(*ä‚/"EA¨1#"ÂBA,Ä$2&P(À!)$D$#Ñ$(‚LCgƒA‡@ˆ"dD*RB@tHK$°D'„$‚…BÄ5³B™Sb‚Q¬‘!@q¸B!H¸(d!/„; 1"((M"4((ÁD&¨a$ b>.H"#"‚!j„ƒI„hAwã0t $„"€*¡Œq"‚‘!!H`BâB¢ Ç%J¨!0"'„P©%h%"Fd"N5“ÈEÁ)q‚œ"'0,+$Ab!,A¡„‰,‘2"DR"ZS‚5”&‡Â!+"IŒdAI˜"OA†BpA %gD"ƒH@öE(ÐQ˜2(%,1+D%Ø‚/BB(Â"$"%(@‚2"á#(H!ÀB! !cB06"R(@‚ÄJLBÄdDð"d%â!’"iâq3Ã`A@00)”„8@BR"  @rA ! !1@„bD,ðJe…ˆaˆ@„“"h‰BB$(*‚2", (À!H*‚@XˆƒBA€"‹"LQ„%ADظ?ïrb³¡¼a¡+©BH¸HÖ„±(Ò¨²â‚ò8)¸2(>i,´1"¡1ñ2(?"¢#&"2a‹#(A/‚BÄ"b:…DÚ’`Ò,áFvdd#à$!U)$Sr(tDxDQ=$KR©5%Dö~ð"—M%LHÙQ˜!rø-!Ò",™â!²!BBèA’.‡!ŒÄ-.$`l3T‚‘8 áƒ,a""&,AbB…BXd‡+g‚$DFèb3ÃE”»‰qª1,³Ó²!1…ña…"¬‘.…’X!±."ÃQ9Á""„‡"/$d¤*/$r,áÓHÕHäá¬"¯±*#’/†±D!5A/¢òh24$,å1Dò$bOôš#çóÿÓrõ9!÷±¿ò7·r­*¿1ó*gg/!Q£­'ᯢó+™z!É(/#s2úZ;¯³ñ‹UKDö#3/¡ò;-9sfê!ñA1¯7ñŸÆôLd­ÇÁ‹f-BV÷4eôyüX‡ßA±\ôZ?$ô?dR"?4äUåóv7OR|üH,ÿáñ~ïqõ:R—±×"T*ïär>2´~/ÿ-=W‘?±ñ)³ñ=qs?ú27Áoqqûïò:;¿“ÒÒÒ)ó::­R¿£óYZá!ãñ13¿±ñ);·!»/#ó2"/2÷1j7±¯‘ò.,kbOVÒŸò):+wC÷58:+Tyß‘ô)}OÇã¢÷3{/çó6"o¢ò"c9õwó~6ïÒö,,Ãôlu÷>vo£ñ2:K,Ô¢Ôòó>[Z4oóSf]-õÙ3qó3?Ý+moârgþ"eVví%Ö"ñг…X*-"=b?¶ñhaÏ”U-"/¡2*·"7¤/!"âò!H’%?6üXh];FaöAŸ•öb}K”Ÿä”ôlI½Z¯¢tK~"r"Ò2´AqAùsçý|)ÇÄÍFgöÿ'óV/§¶ç„tJÚbÔîô~´ãÕ"ñ6k1O±ñ%Û«ñ=¿Sr7ÒŠâbqô7Q!±&R"/2(.)Ÿ"ó*(‡3/6V‰H¿”µQå'òŸ¢Ò¸ñ2(--"*ñ;#¯´õ[H_&vJù)Iß„ôh{'7oãö)K;Q„ñXI&ŸÂ÷q!§óz(O"2",R3/õy|cs^ýHLÏÄÔìöG5g±^õ8HE²Jäæõ|µ 'cME¯CÒ2tÒvÂaÁŽsß„ñ„2A¬ôÅðáž#qaŒxsŒxÄÁ¯AÒ|ÁáãáV.¯8wGè(“aEùˆsÓä(ôÁ:uòÃðåž×Ĉ÷ÆŒx6”ȯC’È£þ,zálò6AŸâòS—¢/÷-"oQö-(Oy·/ò„SéòÅ„ò„·”®7„®Ÿ„ø2†?…árýAVÿKVýcÏ$ú6A›"O8•+O8•*¬õa)ÿ,uCøáVW”ŸnõE©?güS+VüAvüAVüaÏVþAö„S¯Çò”S©òÅZ?„òÇR7•nuOùèVß„úzÆ…ãf¼÷lÔ¯!ôhÆ«aÏd¿ôÔÿ°‘”",dB""‘†ÔˆA.82Ž„ B(CdBƒ3C„ÃA)„‘DÄ#ã(MBR0bM"ÃdBBD‡„0HÄÂA)DŠ„<:ŽR“‚$B(CdB‡„*#Î)‹Šr!&äh"°$"p&˜!‚+"BŒ¡¤@±Ba’,X$BÁH&ŒDe"'…#a…"t"ôHŒ2D(Hñd.D(H(D3(4Bb…"¯£™0ˆ!À$D(€Á¡ŒÂ)/’ ¤@¢!‘6`2‰É)%8!¤'‚DR…€!•d"AàPƒ„"!8»SRB”DÂ!"@P"\H&ÀD$!TŒQ’@Â$,AˆˆPB&„! D¤^$@ò1ú0†¬,PH&‚A„Aá„EAH44ƒ&Fˆ!"%X„@ÁB A(%$"A‰T¤4„(a(L‚#ÒA4· 0˜4Á" ERD,AA,–D%BBaA1P„EÒA#!ƒh¡LEB$@DH& !D¡Ÿ¬GaH$Ä $#ADe!"BA‘@È2„adA0$ !(`D)€(PB,5‚<ǘЂDP‚@AP‚D "A‰ A„r$B@‡BÐ…M@$0$&DD…Ñ?KSQX)ñ$@DY3FtTIEB%iL!ÒC$á!‚s2A$DDB˜&DFe«A2H2Mb,†A"Gð$!(B ™CØB„)Âk£Ù! TA”$A‡A!At’„d…4!T!Ä.D!$=8IRIBR4.D"T$•ŒAhDð1`TŽ$AA¡BH$QD©ˆð)'´$`¡`„`!"@$AH¡BA*!()I&ŒRA$)-…( ‚t$À"ƒ$@B;舊"$A "!08 ‚„R8`’„(p!aA!l!F”(%e‚&HDO‚QA ¡(2!C“£B¦! A€Wƒ€2$b.ç€BD(2CrABˆ@”(5 (@!0$F2((+!$D"`"À!0BY$Ð2•-’#!A„LB`*!"2D…‘5HŠ!$ebA.A$$C‚RL& ceX2N‰‘"($2/AAbA…BhC>D…„¢…" ¬A‚rñJ&„¤ €A*D"F!#N!@I@‚VH‚HA"qD!¡ƒAd„„J„â‚XH&T„6R( ÂÁã@€Lp˜,°" AÐ("Qˆ„JB¹ŒA%R‚¥x!|$Ñ£á"Dè‚BÂH*-"-D(Á$CBXˆ%2‚"4"„)QH$ðl$)b€!L„„!D$ "Da“fAˆ¡!8$$2(0$™B„"ò)$F¬!B%"†¡„D ƒ¡BTH()*¤%K.B0BN"oQ2g„„Á€!€p$$RD@¢" "A"…ÁEb8/òV PGdJa!M$lqhBШшrk%4b(NpJHRˆ—&pBÂ&O!qBRB&ô‡{0p8"€(BJ„"£(0(A ²$Â"À‹(€Tœ$P!'A A„ !."C¥Á,"((eDp1Ñ(37Dg" !A‚ A„…@HHA„‰ ’(& À(‰„.S"!BÐ#1(€ˆDˆHðI/ ¢„ „@AH‰(%h0”PTEA(@¨1ƒ&@ÈiäEØ„ I8‘KD‡B&8(‡B"R(°$#RPMƒ‰£()Á!"qT14D!ï¢b&…æ‚Ѧ"a!S™ÒÁò8"aAOC‚ÑŠ£¹2%‹¢$Eñ4(e¢REò#ÊGAI@DdBPD%”(‹ÀN»Œ‘H‡Oâ‚‚ÑHRdÑ’¬ÑˆòJ(̲!Ô…á"bƒ/„rT„1B«/ÁcM‰ã#s4â±²"Ã:/!ˆ´(R)òf8‡ƒo”Á¥UB-8KÁ#ò(ƒ‚¸ !­((„‰Ò„B 2‡‚(‰a‚(RˆSA-"ƒã"rRØ«£2(!])œ-_‘´ÂA-ZŒVŒ¥t&?"„AFVh$ÄGÄQJ"2H'BCÔb„‘QHH(ŒvKAñ>ïAs4¤!C¡!OAó%ú2çb§ä‚è‚ú(‡‚­GC_S…özR‹NhÏSr<å’Â!‹3$‚óAsƒÕ¢ÑÌr/ÞÙ~=ý%-óÑHôuÏAò&T—Ô„Ñ‘òrQÓn÷G;¯bòc>ga5›7‹¿1ö(ö*C/4òB¿Âñ*T/$sJQ"Mxït==ïáó<KáBÒDò$§#§ágccaAD,ÏÂò,(Ç‚o‚ò(:/Có$ß„ñx;=)IÄñ=,ß‚r)ØÁáCó28.Q¿‡óZC¿×ôm/õùmlßTöm?ÿ3óm>ïÅñdw_q{Køh&—âo÷õ;ocñ66o2÷r9^X/¢÷:<ÿ“â†ÖˆT¡5òcï§ñx~O!qj$/&÷:_ÆOCq.ô$4C!±aB*ò:wäg"ETD„OBhƒE܈R*OCòU5”ö##Ÿ”¤DPDÕ„óÄr’2/!vbørBKdÿtúQ!ŸVôMC/eá$âA÷V:vòECŸôB"¯#ᦴfs"zKxbBCñqXJòcѯæ´iòCB.go¡ôj.Ï$óDHBN$vüL=“ØBcãÍA€¢*Ò(Óêñ6k!QD…ø($Ï‚RHÅx(ú4MEßôaz#ÅH—”4OSñ(>‡aO"s"â2ñcj­R7V.W}Aöe-]No¢Õº÷_¿góV?¥Ô²ôcj«­n6ú22Ga+M6¯‡÷YŸWòys߃ö!h”nc+bb÷Z§ÆcõHH)ä&óZ¯ó'Cô:$46V.Žsß„ñ†2IñÁ:A¬î)qAŒxsŽxÄÁ¯cÂÁ§<–ŽS÷¤/(S&?¬öÃñážqaŒxsÞ"x2æ1ü:fmç!¯1~Ò6ì8÷MŽ2A¬S¤¬î9Æ*xsŒx2Œü:$I<è§ÍÃÊ„o3v(üQƒòqÍ$o–(O:׊ò¤S©òÅÄò„—„OjqIø¤„ø:†?…âBüVAbþRQŸBüRaͤ•(_9•(Ok•*_¬ñcio,ñKHîÿ„änóEè¯gøWynÇoµô)çoõ)Ç/÷-âoô(dO½ÕJò¤R­$_¼ñSh_=ñAH_~ñSH~ñAÈ?wøSHOfýRhÏâ¼Võ,Î+eÍöoôÝ“4#(A&$!!„€82ŽA(Á&HˆzAÙÔˆ‚’„3á(AX$@"Ñ$2&&AHÔÒÔH„!&˜‚'ƒŽ&M"A&FÈq#’‚'I„ AB(è„+!€‚‚a" b‚À4À‡C_¤s"æB²q4ø88ŒÃ3$/!áB“&Or7–1Qr%±$Á27'q¦‘2%7a_"±%¡#L84Cò1-g¢ÿ#ò?2S*-"ç'RÏqÓur,ôOAñ5Ù!R!¥ÓÉú2%C2§ÁgÄlñZh/¤´B×$ó]#±ˆXd-ƒ&ô4Í…Tª/#ÒFÁ­8‡ƒO"Ñ&ñ$0"O"ÑFc2_sÒQq1µ5ÑTÓRR#'#m6-6%s3ñ'}oA"O2ÑeS#73ÿóÓ+Qªår*~-×ùÒmò*gc%LVº59+¥ò#!ý-%ÍmMNoÂò&jï%AR‚6ÿ;ïõÅTÈ>o.§Aï!óo-/Bò62OCÂ4Ár8>6CÒDâBr&ò43oAÓ#r³ññ%>%o3ÑDÃ6/Bò6oqÓcÓCr266CÒDâbr'ò7ÿñÓò¥Z*¥Ünò)=ßcñ(/BñoaqY;+‚¥ñ)$Õù$.Åô¯E÷<:/䥴ZõHoáòõ6p2ÔXô:$mA£ÁaãÁaáO8wOú„2a?¬ôÁ%öãž|aÌ„7ç-‚'C|ü:&mãÁáã‘dÁo8wOø„2Ao¬öÁðãžÆLxs̆'C-ǯCÒ&<­ãç!MaÉñˆrׄŽ2Iá¬ôÁàîytaŒxw¬gC>įC²<~ô7ÓǯQô8¯‘ô8¯‘¶<ómË3ϸ·>ó„së3ìów8ÏèóuêssìjóaŒ/c{sü4¶/Sô8¶/ô8”/¶<ûaÛ3O8·?ó†së3_¼ów8ohówOjssü¤6Æø2·7ç>¶¯Óô8¶/‘ô)Ž/ö,ªo‘ö(/£=|õ!tNú/!ñ:.í,³ò;+·Ám";":¶ÔˆÒŠò>mDÇÔÝ)Ý>oEô^ÿ1s;öMHŸ±Õ#åRöM-ßÓö2i?åÑfr&ô4A?ñÕçòF'uó/I…øD%_tówGoqÕ=s-÷G½R¿±ô#7eò"WSuWö&kõI½5óR|_‘TYUõ%?wQÝïEñ\o¡qòR/gó(Ž1ðVO…ñ^jï¥ô¯!ñ6*Áò<,¿³óC(/!ó2"/ƒ“j/¡ó.ïÆü\d_ÒÒìòl\ïaöt7¿…õ~­Z4ñBO×÷M|‚·3v}ü6OBãv}üvob÷Fý¿…rhñ$dtòF6OæñtEÏC¶IuH¹ÕvôtTOGó4WÄ/c¡Q„/µÓM÷zØ?ö$-ÇBÏÑQÎGÅoDô6‹U¥åÁñ,4¯Á?|ùWAÝ­Z¯¤õRB¯äó*ÏÂÓüñ?g#/"Ó"ñ8~B¯¦õnnï†ÂEÛFÏæö~>oDñwKUý[?´ñSB/Eó$U_6óJv|4ò24M2'ÃÏgôwS?bòM)„æô!fo5óB4÷ôOíR•¨T¿õ÷7D.5O%sWô$GAA…ñCY~NïSó|iÔOÂÒ}qÜåõ\Ïäµ\ñX/…ñ6çÿ‚ 7ÃE¯ÃÒ4vØVï8wFâ(öÁ:eòÉ%òížxmÌ÷Ç/!x:Þ:ü:,-ãÑ">ü†s÷dŽ2a¬“&¬Q"_îiA‡ÆˆwÇ)x6æü>&Á§!áçAbÅä8wMì(OíS„_¬Q„OÏY‚ÆŒxsÜø2‰ü:$‰<èëôcÆÆ?QõyN/õxN/‘÷\"o÷8o;—?O;—:¯÷K8Ï/÷k8þVÿ†â~õm©¯gü(gü6qçüYçüqßEþ6y›uO»÷K4O;×Jó÷{¿ÄóÞs?†ãoõo(~õa¨/Güw:~Æï“öyÆïõhƯ‘öLæo3öId_:÷X$O:õ$_üõQ(Oìõq(Oþõw(®_†ú2žw….Þï…ô(Ôï%ô(į…×lû>a?†FqAFÈ"Cdb„#tAؘB…˜BÈ£á8Ø$tHHc„,2D&6AD3tAؘB…ÔÈ£á(‚4A Ä!CeBB$R$tAÚTHMADÂ#ñ„E8a&l3ŽˆS(Ü„hBD¤dB$H$h$H€‰ÔD(EB(1Bƒt!2d)A‚T%I…’CI™3$rB8Fh!BQ/¤BI’D‰â!©AItH1U”%XϬŠAÈ"!$!&ˆCB!<#!PC!CAa"7B`!$`!"b!A&B!QpB!!À'CŒXC¥äB‚5#$EQu‚h!‰BFIRD%f ,DAC…†ÁBÔ¡„BTI!Ä<D°T…T¯ &Ô „!JS$,!@ÈBPŒ‚Dl”+B%á„DˆÃD`’L‚’$ha-`‚AG…#D¤„Àb %„“D…B„”$&‡Bp‰áAÒò2Y1„%aÁ„…BDA“(…$y)QL„kŒT’(K4Åa’!M$0b)mGB”"W¤bHÝ$©ñ!%PB-Ð+œA9R„@x(˜NÜ‚òS1 1B."! @’D$p!’DD,M‚ÀB¡!ÂITADÄ`„Ã`B@(PBI$„HB<R!ˈ0(m€HHACX‚&dE„ (MB$ˆDDŒBBqFH"D‚EDX!@DxD…"QHD,@ä!”ˆ#Ÿ˜ Ô“Ð!Ä4Er&X!)²„T˜Y”&,ÑT˜#2ˆ2BD„ŠQ,ÑBE2#"ñb„lT‚(LD’,LA$ÁXáÂd/†!dAk",qF‘ŒBDB<„¤C´ˆAØa©SJQhV„4RÅ#BNÐ$QD!D›$ˆ<Ô„HŒhQ‚À"4$E„b!„‡T"P‚GB@hL’8”A+!M!AAAt($–8B‚ÏBa&4)©…!‚0H+%D@Õ_ÿÿ‚âbRB|uJýEVï„ôH§JôJLNåldçdïìüŽŠ…zRzBRª¯ÂòJ\­.o"ó&&/ruFòBB¯‚ö(*§”Ô‰Äg!'dG¤NNeR"'$¯¦FÒÈñRT¯áÓfñ/!õZ/ÄÕêõoATÄÍDÏdõTBG¥m^oçÒ.±ñ¶\ô;ðs6_–´òEIDxV‡õý>ÿ&ò2eÖ¢uJòBZ¯¤ôH‰·NH‹Do¤qJòZ/äøÚºï,´tBò«DN,¯"óa,*ãBâ"¤QFºZüHI“ôZB-DmJF¼LòDHHƒd$NhÏCõx×äM$>8ÃõX¤òhŒ/f‹$¦åòt\/‘(Éññ\T‡ÆasöI[75X½wQ…ß½ñ+(.6!M¯×ö%vï'ò*j¿“¶!vHÌFíLl´ôÎŽï­è$õB/$tZÚˆô.>>$o"³6ò&7ÿÔ#õj(¯¤„ÔˆtIé¤õB-DíB‡äç¤NB­Jb'$„×fñ8DmÃÑ>-aÅô‚sß„ò¢2Iòç:EøÃ#òážƈ7Ç)x2ÆÁ¯cÒ|Âáç!ì8wMè(ôÁ:EôÁðåž#q%ŒxwŒø&DÈïF–Ä£¾^ÄMcÆæ/Uô=N?ô9N/ö*oQô8oxõ-8OxÕJóÇ¿–÷ä¿„÷â7¿„änóIÈ/gø_HOGüVCëüAÏÃüRcËáoô|O>õ*HbøHFøhÍ´ï‘öøŒ (A&P!†-Aa*’(8O(EO(dB¡ÆMAƒˆ#á(AADIdBÀðA”€8RŽ€!„dBB<6-%(1‚¬iùA’,ATEtˆQ„¯A8G´$‚R*ABAü"@,DD"D„.ƒD2(AÉV"Eb„.H#(Eh"D&bA!‘,„ô¯~à˜˜$€Q¥-€QB<‰‘&A„IQ…ÂX#Ñ!€Â!AB”bÄAIDh"AB"D‡D"©AB…‚ÂH,G‚À"a2a„FM!ÙóP2D„…“!E„a"W‚R”åÁPJ!†Â„P‚(eJDDbA88¡ÅuaAŒb%"¡,R2!@rDP(I…(óB$‚‡B¡BMAcL!DrHô#!Ð(Ä4$D…BÄ$!‡ÂäA`!!`D "'A$$Av%(a‚@Ä()ALD˜!ð*E£ LB%³ÄQEÒ…C²Ô2„b’A"Ľ#Ay ¤‘©‘,ETbD)t\8OÁQ(„ÅTDµÍ&%A8àQâÙƒÑ&±g!ÑÂ!BD”:aHH8ƒr(ôuÑ'ˆ$¥adÀ,A&$PAEØ!@„8R&B!"!*€ADB"@@$A…D@"ÑQ=‚ˆ%D€\DHD„%'D@xX„pB’D@DX(@6D„`¤DD$`!Xd@$RD„Å$&ôJ%HñQûÀAD„Ä)Ô)ed1+B[,AQa„j1$QHM!(CD4""Q(‚…VŠG…’"drb‚ QP¥d"%AÛ„–6©Ñ8Á`t²Fq&–F.$AO‚Ú$’Ì !dïñ4Ö\B‘X¡€ÂBA!D! 4áDB„"BÁ0€H’8A&Ô(Q„"%!TD‰t-<,Á$*',E„RA"ÅH„qB$BL¸4„‡Q»¼$Ð)EB¡!”dT!L”%DL#SH"¤DÂHäPhd!ÐB@D2E dc…"D’CDP$Œ’DÌ2…*l¤‚¡#Â3Þ!hDb¤À&ƒD(A(gB "Ô$‘1£T$R`R$ !%Ä"4$BáDAD‚Jrb„>Q¤oäõOSlôQ_”üJHL¯gôFoåÕ¾ò8‘ó/!ó6eR"¤¯!ñRñCLåxEQS̲(ú.$*òq)Ãó.,ÿ"b‚¡Q˜hïÂò*õãÎROuõU{¿±ñ¿µñsO—ôÝ_ÿñõ_.eV'-G÷t}G?4tcWßßÖôMA_tñUgôDB´öKK¿¤ôIK?ööGGÔõ_YÿåsÒcóïqñO»Doõ_DÏÆô\HäôNVowõW_õó·¡/!ñ2Oa1¡¯áñoañWçáå{S'ï‡ò(,OFò$5ßÂó<6Ïâö$6ï¡õ*%ú*.Ï¢öË»ðtRËuxåñR\'rJvdôTtWDL"Â$7"kDDÖx^ôlD_ÄöuMD_fôIao$öGK›D?´ôEFýgOFõg/dñ"m}#¯"qVÛ)´tùJDnHÄönZ¯%ô#?¡ò8K¥Â".P‚…ñAT_TK¤+"OF¢2Ö÷((ã¢b&˜L…øjhÏbââ>—\û_ÿeñ[%õS“Õ7ôIi-VïÇRfm"-FoäöNNBorÖô,mWÔÏRu÷feo´ôIBNC¿´ôCC¿vôCOÿD÷VWßç²ñ"6Oqñ*/AõCMov÷SHOF¶LôhNoÅõbq?5ñÿ¡qÚ"‘2/!±ñga'amAÑ7ñS}V+'B¶dò$%߇ò(8¯£öl6ï¡d¤­JÂò&cÏA ?ãÁM¯£ÒtÒvÒVL?87Lo(S"_¼S.Ÿ¼Aôãž}iÝHx{ïDx3ÞØ¼;Ò<ã·‘mi•ñ…sÇ$ž&EòÅ:EòÕI…ùíœ1WÆLøk©x?Ô‘ü>$ÍÁ©Ñ~ÄaÃá9w\î(SDœó_­¡_ïÙ‚raŒxw̨oC‘ØgÃI<‰>>l=ãlýsIßâõRAŸâõRaÝbo•ÖIò„{¿…ò„w©òÅ?¿„öÌ7?†ôä¿–ôôŸ†ü~—7‡.†/ômŒ/1ôi†/1¶MúoŸ„ò„¿Äò†w‹!ìóI)ï8wyéjuø¨V߆ø:Ô÷§BüvCŸâùAÏBùcͦo”(O¹õ$o9õ$_½ñS-OÏaé-n$M$Ô$t&v$t%ô$´E´$ø¢*¯ŠØnÜ$¦“ž2%˜"oañ´Çèïèz¬tEôJì¡õ:ƒ{¬ÜÌüL,‹¦'ÊïIÝfþ,d«†#ØÄbOFô„õã[cïþúOñ[?ôaoý)ŸÂ÷~9¿¡ñ2k/õ[Ïõ÷c='õÝôMlÏ´óO5ñq7_ýù—’/¡ôJJ/æ÷?÷ö{Úbr'ö&GåöF&m&m'í$GBoAò„¦íЧèoNòDï¡ñšŠ¨ø(oAû>®ïâú>.eö––o)ýÚïÅõúú¯çsøHH‚æ*ûšOmñæ,O¦V¨¨ûÊŠ¯öÓgØœLòb&¿–ô35õSS¿4ô%m½kÏFö31_Dò4"?³÷L.?בöeÅ?òeaOD÷wODòg&ßVìX»Ó¤DNLOs×ÇþädïcóA$M&&ò)aMeM&M$_rú%OB‚âŠØˆúì&ª¬9IøŠ‚Šø&”Oãú,®ÏËñM¬Okù„„Фoÿèh¦xJüLlÏB÷æŠÏDøÔ$OÎþ¦FÈ‹îäOCùD)CÚbÔ¾ôI[¿µñ?‘ôI#÷ö?¦Òvq9ü&k#-3ŸÇô.[—¿vò/m_Ttaô,y?£ÖÜõ_ßmüß›…Ò"ôH4wwÏNÚæ1<'bk"-'wÆ×ÆGBorr'ü-,Cò$¤Ë*¯èœ†Odñ–ŠˆX¢èò–6çÈÏÈùŒŒobSFo(ùZÚ/aüx,ïâ÷HHÆòdô¯éô„Öïãþn&oŒøÈÊ/¡ôèjgíßF§C-A¯ÃÓštÙ¸vÈcÁ¯8wLô‚6A?¬S†_¬QˆÿîaÆM„7§ˆ·ãͯ£Âȧ!~Ñ2VŒ¯¸7H/h“$?¬Sÿ¬!ò㞇‘—ƈw爯cÄÁïcÂɧ!œ¾Ò2¶ñ’sÛ5/)“?¬søÃIñçžpaœ„7çLø2¬:Ô¢üŒÿ:OQ>‚Lô6cßFõCŸæõaÏäö6gŸÄö¤w¿Åò¤w«!_¾÷S(o>÷{(îWÿ†âõi¨¯wý(nÖ/öéÞ?‘ôhÎ/‘öLúoÓöÈhO:ÿZ,Oz—*_¼÷K)Ïjscèzño)¾_†ú²†ÿ‡ú¨Æoþ¨–oü¨Ž/þŒ¾oüˆ,O:ýš,O8ýš$_¬ùÓhOmùÛHOnû_HOnñIÈooû_ØîÖ/%ý¨î+Åê½Rÿ¬úoż¡ £ —„8g„&wAH2\0XÄA+AÀA…è|ü„R€uIŒa„Š3D&4H,yXCtAÜÈAAˆO8Ž (ŠdJàhiL(ñAŒÔˆ)”˜ˆ«!O(!!ˆâ(Aä(äJô*CGˆ‘‚…AÅSH$C‡!pØ(ÀH#QJR!(–X!'Bð$„d„@QH-,"!!ƒR$Oˆ)‘D&ˆMH@Â!A5a„%t(ÂJž„P$ITH%Q(CÂ#„L1!(R‡$D!À#$A`…i.%H!…DQH%ÒJ!!$(ÄA£ d!JR „$$„@Bb„6Ñá5é%BØT$@òAD‘B¡‚Ñ$ÅæV˜._G¢ÔDÑ*d˜‚Ñ(ÄÏBD!($UtRH/„ÇTÐH ­CÉHÔ!'EcX$)Ax$A60DÄt¬LœÂ‰Ñ‰øÎ4†D6B1ˆF|ARHdG"(ËAX$hD ‘E‡‚ ’@XÂd ,E$"áƒÅƒ4‚0:†4,E’ˆÂ)Á(D"SY‰Dà(…¡Aò>kD%ÉX=BÐa¸³tbcl2H>¤Å"Ì!C6/tˆÂA¡qìt$ÌC$$"M"¤Ac­2ÁC”$ƒE§¡ç©Hˆ˜2!eQJ$G(ñŸ3,Á$$HÁt8½‚ðD„%"4JØäñ¯í HrCÀBÀ%HDIÌA%ˆTÈ`Dˆ%5HDI`„A…8„‚Á†%Á”!D!ŒDÀ„ChÁ¨0HÒ8­ÈAe„À„IAAT$N)‚#d€EÔA`‘ÀR(d(L…„"‚B"1$@´AˆTDHˆH(A„'J„Å"0(p(„”ˆÀ!ÏíSZH˜BÑLA8!aIRR„dP„!ÉB29ƒQÚ,rHR„M‡!,²¤%u‚™&DB(rT8!¯Ñ,="2,áD3ca*ªD$Ò! Cqr´.“D,qBx2ˆ8Â\‰2HA©FTB ÁD4ÍBTHBD,äB1H$R!H.¤"02 ’!dI]D„)(1T$‹…ŠrDr†”À&fˆA"ˆ( T(ÈŒBñK2@HQ!¤P„DL‚Dt!"H-(CX@*ãA2IÒ(Ä‚ƒr)!.HIÀH4\A‚2*B”R6¨ÉTH´F„e‚D#¥A…‚òWS“†Àa#$a":Ha)IÒdRH:A±DV(Q+D#*A$ƒ‘$H&,¤!‰Dì"D¡HUX$ÄP$‡HÒhF¡BÌ‘B@È„H!+„„pB˜HØòV€BƒAŠB(‡!4XBA…$4Ba¤( €D”)GÈdPB(I4B(¤€rA„0DˆH"<8Jˆ@ª! Dà$á"ÃDFB8DIBZwEßåsÚºñŸóqüœŽ¿øXÂETFMGÿÈùœ…owò&&ïÖò,,ÏÂò¤¦ojú&¦ojú$¶ë™¯¡’B.&oâòŸI4/3õZZ1÷[=C?´ôjB?´²HôS;‡„/!#òQ{Ÿ±SôM-_×ùZ$WOcÑŠò5TŸ”ü”õÏœôAA‡„_rôCa}Gt¶wñ2OCñJrgFuמòs–…òeEN!ws¡ñ'F-/!ó?1Ñs2Ã?Hx‚zA$)ô„„ò&%fú6%OÆö($onþ¢¢+ªOFþ¤†NH…ÒBö&$OF86Ò¿µõ[{¿µõ[K½IŸ¤ôJK¿†öH[¿‡Â+!-S¿•ö[Ôôo_ÿ…th]ŸÂsú,]•ô‰þÿ­Ü™ôAHTôGBŸ6÷WWÿeó/AóS?urOWïßòôNIVôEH—fåû+?oUñ¡ñ/ñ:q¹ø„†¥TDDe÷‰…_ýa&_bön%OBòd,Ïjúæ¦/jú$äOB»–\ˆ-Bn&oòöé£ð2Uô:6mC§!cãÑþ3焎2A?¬3D?¬?þ!qaxsÌ‚gSü:'üAœºÄkÑŽ{çÄ/(ôÁ2ñ?¬Ñ'ñãŽWAÆ]„7æ!x2Åɯ3Â˧~ÑV\Žs×ÄŽ2EôÁ:[ìñáž3qa 7ÇLz2„~:”È£>MÔ±lù6AbñA—b/1Ö­òa(o<÷(o8·òÅ;¿…ò„37‡®÷‡O{ñeˆocywêRù6AzùARøaÍ®1Ö‰ò…w½,o8×JòÅ:¿Äò—27†_jqoø¡߆ø3†w‡rüvAÏòùCòøaÍ£o‘ÔØò„[­$o8ÕHòÅ¿ÄòÏ„nsOøè6ß„ø~¦7Of¾ô(ökQâ¼ö,âoÑôŽ_,ÈrÑ&$##qAè(a„C!¤'ŽÄ,XŠlB$1X!„ÁA‹!Ì&”„#õ„X$À"A&4(xAØÄ4AŒ’†+!ŽL(M‚,dbà¢>Ê\¸Â<ŒÄˆŠFÒ‚D‚"’%B$C¤$A=4F²KÑ!„fQ­"„IaB(t(ÒFf‘@%bã’H`!LèîH2„?‚4`H!G!.N„0BÂÐô7âBÁBˆH‡#Dª$ÂdB(IB$„bA%abFÑ(5B2ÇD."‰A„¢9™nPARBÓ$’H#I‡HHI `H„C!hDD!K‚ƒaHˆB%è42ˆ„X),ˆM"p-„SÂ1PPH!ˆ'ˆA$„±@†•„M&E "$D˜4D‰HA„E+BBÈ@R(Ïô±èÂP;A„ÐA !CA"v"ìB"DM(bD,š&tQAŒd"D##„RC´BBDˆHr¡–B'$pT"#¸$’©†&#XŒ‘H£áÊÁ¿óœ"|A B$FBq2H p†Ò¢rDi"&r1LÐD1"J8RˆÁ!h‰r4H$A€¡†YEd‚B,x%¡„ …O‘l!2‚cR„eäƒE!R„DØ"Ø((Q%”ˆ«¿PHP$•ˆ1‚1!aBDÀ(ÈEBD`B#!¤%ADA#‚AH$A$„(ƒ†%4„ƒB£á²8=,A-A%AÈ0d#aBP„ˆ¡„CíB£%"EÄ(ƒ‚A¤AL$CH‚("„òAE…ät$%ñá)À±[)‡A‰1Z,Bh#ÄG"…”H8ÉÅ3…èBhAø¤_¤ÒB‘ˆLB´(q"Bñ"It"ÔXBF62—‚à¡øa(Œ¢!^„!, m(-‚%”PˆH(ŽR+(I4GˆŒ5½$Á…"$Ô±B1ADj”`BL2$4‚PB’PB‰AI$‘.J`‚A…„",$Ä¡h’40‚dˆh€IJTH†2HC„Q(@ø‹vP¡2DŒÁ0"€Ê"D#“D±dƒFL$ä"l…Ü`Â,(!Ø4áCa†¡d¡…Q(‚M(R@¢9A2!‚iALa„XŒÂ‚Gƒ A)‰øDiQ t!=. d%!(%M1R('BNH¨B°!‘B,2DH/"AtÈ"b$20"Iá&$gC"ÊA˜„€tÂH¢(%„K :¨A©‚¸TDQ„‡HNŽH8,(„lA«A¿mFIÁH"DÀ!M(ðL`ÂB&2CÀ$ á¢2F@’LB¶.$(D$’„#2A‰(ABDéDa()šÀçSB<ÄHl¢BFh#A2]AŒ4bRŒÆhH)f4B”!'Aƒ$¤(4hA µ"1*I–$ꑘ†$‚’[Š$x¢TB(¤(¨K¢£3,HAÙ¸H9‚à&šdD?ÿl’DSLD(!¤A$`¤PAAƒ!#D´!RÁ(RB$!<ÂD4TFADQL‘0!F•D1LXAH'A0ÈHÀ² A"‚DJÂ(H7!`AÄB R".`H$%ŠÂG)¡!ŒD!%2"D„BDrMA!ODÑAh)%1(K"‚‚PÄ D‚!Ä„XC‘ˆŒt“ B…!t!D&DɈÑÍF‘#‘1‰‡„$GB")A¤DD%¢(,A2´$„w!‰¨ƒƒ!ÀXÀCQL0BJ0ABL;·¤$¬XA”(T…<’"'”`„Dƒ¤‚!!X€„‚DAIóA"X4!‰!$’‚(ƒKÀ!PBð„4²Jb„I!Dˆ‘„IÌZ $($PEEL8H¡"".AˆTHH'A(H€2B!@D„8B"&`BIáTDÂ!$J!<¡ƒ €1’è+B›#AÑ¡ÄGè(1$'H(,áè:o@R„A"ÕÇAAQ0DBD@PbAC¢!!!„##D%H…’$à!Á@˜ˆ@!d%P4P„A@ DdHAAH#Eâ‚‘"DÄ$ADx‘ ÀKá‚’=HD(_(ÁOAâ!"xXD£aENja"¬DB’IÂ/XT&CÁ(%"qFvs(xitBdFÄ‹CÀ-šGACñ¤Ž/¡"É"„'¢«#'([w„AEØ"Ô¨Ñfa!-"‰X.K?r¡qI !9BEIEQ% S"R%¡9–l]"4A‰!aFQTF4"$" ¡N!^$'K‰BÓ"÷4A]2?ˆ‘²!¸…QbŒH¶ÒHª*œ,„{A…ô L,,¤B\;Hb"¬Ø­DqˆÈj*)U¦w„$‡WÅPŒ‘ƒñ(Q‰Ø‘R$I‚ä(’ÂO$ñ$S”1`ABI”AI ˜-šÏD‘‚",ˆƒ6³$¡"K-$[à„QˆFXA´ùC„Ÿ„y´Lø”/ÉVß÷BSÕÝ-¿‘ñy­‹½cçbM¿QñV3ñR6_õ?õñßÑ„xIYIO‡qô4Íd1Q3_SÁ䞆G,-=lÑ4eeôSV_‡ôLÁED,ôFÑ^Å÷‹‘/±x%DÄ5_³(óá4/bÓó÷;2¿1ÑÿùGM„ÇD…|ƒöça¯áü-B?!ѨüïÑ3þ5÷Íߢó—¡µ{+[ÿ½;!õW/¡ñSïõó¿Ññ9§•×’Õ݈ñÍGÑÏ¢óR/1ñB/s„Ø"üG&'a/!óQ_UãAõRV;•´$tDôá‚/4õ4SÏqågû±B£"]+;_ÃãCâ"ò¢w?·òª2'eoøyT\cñ„Ÿÿuñ–ç!mm-šï!ñ¿áõrl7¢ýGoaóVR¥ûHHCòLhïAñ6ŸG‘&OCñ7o%õoWYÊËFÝ8OGõ<ÏTô5_õ-FK_ö¶–-$E±Sd/ERcô3ÖyQô%AO4ôu?Ey§Ø´ü3M›¿)áû”Oò%Éòa¼K)o"ó»./²rãÛ*ñ^Ç…üDHÍç$­Š-/åüš2¯¤Ü¢áåüŠïq<¼ÒÚôE6o±uÚ‹TJïâó¯åsÒFóV¿Óóï•ñ?rWÕŸÂrLù,ÇÅσñMÝ?o1¥/1´cáÔesöb6o!ñ64\ågÒ'õEo#ô]LŸFÖ´ä÷UVg[·üû?!Xëñ54Iù8$O+³&âz¿2ò¡û·ŸayOXćDÏxu_ÿ…ŽoÕ¤¸õˆš/¡õšïÁõѺ$'C<ô:$MC§!<6-aåú˜{Û/(ôÓ:eòÑ$n ƈ7Çx2Õ˜ü:7MÁ¯Áãûvžó‚cåè(ôÁ8q?¬1CÎ8Æ|c¼Cx2ÇçsMç<>÷,#:wOº’ôá:Q®õõžGAWÆM„7ÇM„oC|:„<è§Aì<5lô2IŸbõAßbôaÝloÖÍö„sÿÁò”sí$_¼óW,O(_ƒf&JAZ$n',15’X‰¤$D§$BBÄNd(N,D(1'"U$¤!–q2ƒrR$".©A‚„4!/‘*‡A¡+!'ð2òéÐc$ô2Ó?$R#%rJóGf_E÷W[åö-?$µIä…õVwov÷eÄGÂMoùùµ4c÷ôo_=ƒ(ïs3!WAõò,$uVf?¤ôMD/$öDaO’ö!ŒƒáRâ±!ògfMÄ®L¡dowÔgôGD}AM&eFòCR5ó!!cãbúqm_VògURò4$."&b‘"Ï£².B$ôIso%tJR#=Godô.T_uuB~öV/1õ[J?5õrWogövl_TRVOhù¶´_cóW4ß}ÿÔ‚!ñ3wkgEõUWoÇò$&eÞ6ôKD_4ô&G/b¶nvmÝÒdó6"?bvwô¥ço-øBbw$?vvFVF}U/Fò&6g„-C=AN?ò!'k#ORö/mOòõwebò$&OÂ2%Z¬.,ÏÂò“©4o4öcf¿'÷CC¥Sã½B?4ô8qoµuG^f%òFRFóBYÿdòGïOVr$ÝMù•½Ï[ó6[ñ¿mÿÁAÁòov?4T~moâr&ÖftBÚ~T2òC‡Sö##.%g3?$º‘úÅAd?csgCóF_ÄÂà5EÓó!#oSú6$_–ò-%_Vö%'Ocó&$g#$-(/có$'#ÜrxBóm7%·´%ÓkôGB½y~V/eñg!mF¿ôRCçôgWï×öd%Uü…—oûû67oU÷ùÚ{Í—´%ó)f'ö[odô6&obRFIT±o4´Cr!÷BiM!ò%/2ò$w'5?j»—\1/1´!öu$ÃT/G’#Á7-#/bò%$ORòmmORó'fObò>,ïbsZ(#Ñjò4'Ÿ|CrrÖ4ô~546MaÍQ/8W/hSD?í÷ÃðçreÌ„?ÇÂocÁůSá48-áïaòBcÅô‚s×ä®2EôÁzUöÁ%öãxAìBøs.m‚'Cx:Ô<-áï1ô&%ÁO8wMèhôÁ:A¬î¹reŒøs,*x2ÜÄ~>ÜŠ<‰~Ô9†¿1ölïth÷aÍ'ÿÔXò¼W­$OxÕJòÕ?…ò‡?”ö¡>w„êñE‰ëySû!¿ÿöè·ï1ôh•¿×|ûQTóŸS¯Fò„S­$¬õC,_hqCù¡V¿”ò¥6”ø3¦?•ò1§o5öü¥?ô8…/ö<§oôX3_<õh4O:•:_¬ñC8O8ñC8®6w”Oz÷MȯSxWø2¤oô:¬kA¯Ã¸ö¬oÓôK$FÔ$$ÄbA&ÄBAòA-AD‚¦I8ŽLò„"à(2&$ÀdpaÌA…Fb„ˆ#á(R$D!ŠæR&$aÄ-A‘!(!(i8O(±bÔ‚DˆfB\?ˆÈ’%¨œˆDi%M.B¤A$I‘ˆ!‰–‰ÔA(t$ÖBÁh@8føAœÂD¤"5]lðA(DBYƒ²BèBD‚)Ó!d"F$A$1$#D$WAF(J‘ÐB‰’h]Mk$#HBFH6ap$È")tQBDq4F,-TIÂa@bA!%å”$BEAB&(bD!")†`B”F.$I°A$AH òHiãŠhGÀ`à$C¢$,ˆ#ÂV$ÀB 4$O"¨„MDâBƒE%a$"I"Q–*“BÓÂ1ˆAtB²8DMa8€ÒBÄ!ðAFE!‘RC(„Fõ=I#„!˜cdœ"A#¡B‘D(YÈ$ŽNd@ÁF4(/-$H.BT,aF°$B‚"‚0A"gˆ)$baA¢#a(DhL´hB$:B„°$>b*õ$D‘i@ÁJˆO,Á! !"XA! !)L’A&!PB¢@ÉHEHLÂ""H(A„"@R…F!(%ˆr$"k)€ÔA$ $@ä""â"25B¤¢I„„*²%L"€`B€22Bða¤.DDHäD’EFBTD4,dT%B¡„BhƒÂ‚!€ü<Ò(›2D((D@è‚„H„%! ‡ˆFˆ”„(@H ˆ! I"¡C„Zôø "AH„„€ H"2(‚DŒÁK!€A"€$€€(˜C‚ !‚C‚A@ !J¡0H,6ç@´$!ã!ÙD’B"Á A¤0$‚.hK""G4J>R("J"‘†„ÀÌBnDjz(ƒ¤)nDæ„ÄOA´$®BLH¢6E$&Â$(„N¥Nd!%$r(R¢HA.L^(ÿ´.A"7‚‘AÁAeèÊaDHÀ$*"bb°‘6òaJZ¡Y¤"?…äÌÂ"I’A‚Bb&ñ$adOr‚RTLñ(䣢dBBBEâ"r2r$dB…h%:bx…ôA($=ÂMDphHHˆÂ×#Ç&yAG’aÑQÑh×Á1*$âBÂ!¬Dä’3E5˜ ”T!VdQ´AÂ,E&HDIAôEB‚ÄAG!lQBFát1D"-Š#’1DsD6Að$a"Ýh ¨!&¬!H¿V ÿw÷nfïçôxq/5õAQoæ÷CÇ/müô]ÍŦ–özr¯§õt|_FĹÏGö$¤_õgdßCñ?–ïÚ´uòQboóòeä_þ—¯"ø‚‚OHøÁÉ_HxÈñDCþe$GRM…/-ý£Ò«þ®G¹ÁQŸ§÷rz¯G÷|eK$dçÄÏÚÿwwOÅñûþDRRŸ¥õy^ÿWñô¤øýw&ohøƒ„Oüéä_šîVäNþddWTM%O(ÿö‚{ÿ[¼ŸþºF¤ü[QGDþ¦Yþö¦kˆ/jû¶µß©ù‹É-s/+ú.)Ï’öMmOþÿ·áoCÕŒã(®Ì„ñÃöLh.bðv^öönv„ôJKÄô_GïfþÜüÿm÷#8/"Ò"õcc¯§õRzÏG÷}Ü“ñDLÍŽÏÌõtN/±ñÿhòQJ¥ùIKýÿaø˜œçl?¤ú‚‚OH¸Áþ¬…Ÿ´!ê|4U"ø‚“/9è™ûíÝÿkñEÈý±±ø´å+™_Ìú””ºù“˜Ž‘¿µ5ù…,oò(LÛŠÏh9µOAÅØþØŒô‹ÏÁôXÚ“Ìwÿ'öj{¿…ä4´SõHOå÷æßNüt"$%ò2S?¦÷ZR¯†ç—çò(lÏ„¢ÚW÷_3ò»¾ÿÑá4ñ9oõõ¶¸O{þg&ojø†„KˆØþ¤‰ò¡….%Eñ‡/ý¢µÏÛþ®yõÙ™ÞÁTë,íoû–†Oj¸†ûžËeòäÏRò$,ÏÔò„îo_ÿDÏ…²øøŠØ…õXHN|φõ4p6õDE¯CÃA£±A¶ÁaÉáxWŽ2A¬ôÃ:ðáWƈ?פ‚'AÁ¯BÄÁ¡><–L/8÷M(Ž2EôÁ:M„¬øáÄ*xSŒx²äüº$MÁ«IºÄaÉä8÷mˆŽ2IøÁ8A¬ôåcqeÜDx÷ÜEz„~ºœÈ§èãÁ<ÀžïöhïuhþaߦóqæòŽ÷¦ò†s"òÇ[Ÿ„ò”Z¿„âëwMéêõMˆ/Ûü_/Òúc¿ÚùC¿ÖøcݯïÔÉóÓ¯‡ò„×­$_¼ùi,_:ýAH_zýAh_zóAˆ{ùS(_[ùAßûùIŸ[ùaßûEŸó†×ŸGó¤×‹1_¾ù[88ýQXzy]ø¤6ß”ü²–…âCÿhOÿBÇýhÏÅûAô ‡†Eâ…‚rUhBG….‚G„&U…†´(“B‰‚”8:ŽH…„8EèBT‚ljP†„ÈA‹„ 'CŽBŽ X€äJ¸ˆ„øA‰(C¡"k#ñ„BO(!„a„ŠsDèBCÈ“A¡H6€”""À$HL"4$J(A¢$BCÀ$"H Ò¤BD(LéDÎ$H …4ÂŽ"ô$B"TÂH(°%¤!!ÐCH*-D±„HACô(D)4E1!(C$¤‚DX@"‚´!!B(AàDÈD°äÄA EA¢ÈCÂ"E„CA’H(%$1"D@ˆ„BÑÁ=Hpt„Œ„($‚,ò$@´I*ÑiF³BXHNˆX‚T!‹D€AQ&¬„FÌPEÖÆaHCq!ˆ”O"„´rA4I!…ä±J«Ÿ¦LS‚0C€²"& Gˆ&d’ BBI!€$2bT( ’D(#²,$âÂF‚eˆB$J1()È"#‚„(Dˆ„‚$(†!äJH‰Æ-s Mj>DЂJ&Â"G*M$.d*Y…ìUHB(.‰'‚L葈V)A|"‘HbF((8K$FêBñA(ÌÂHDJâÒHÁÖa0L6˜6,Á"MBñDH0YÄh°*ÈD!ËaŒ¸HqBHh†OÂ’,B(RHBIH$„BD€DJD…Db„0<ˆ "¢H€taH‚HÐ8u@#€‚(Ah*¡$M„(LÀXA‚°$"(GB ‚‚ÈH€B”bƒAE,„("H†‚ˆ‚Jˆq‰Ab€”¨ÀaŒ–TFôB‹ëA+:§ƒòB€ä"Á$/„¨AbJ!ñH2JáT’ÌjèŽhDŒÑáƒ:"¨HdDäŒã$¬)FæBdDK…¨‚*1$<ä‚R†„ƒÑ„¢4BðBˆ"R¨äA2¨ŒTC")„„Ad"‹!Æ2&(A¤$X)B„"†,!$"”I¢`Š d‚08 ‚–HI¢Á HÌ2Â(L¢$Š4(”R„DBòˆB„H*4ˆ/iBÁ"Dâ"!4#ŒÅ" „âÂBK4 „„a$‹DX‚B&ˆ(fA´(&QB‡R BKÂ0‰$„œJB„8$Š"ŦF1„'‚€(äĤB€®ì9Ø ¤   J²„‚B(DxªHH8(H b€$"”("DBHB"ƒ€,(¢D(B "$€òÍíJ F"N.À$€¡B(I€„(XBŠ"„‹"H€b"€*3H $ „€€‚4H" ‚ B€ÁH®I! (6„ÒD‚Á(‰4(„¡$fE/)Á„+A8„¨$&„2BxA(,"A/(¡„#ƒFˆ¤!(&„–$È€DøUAƒrAˆ(bB¯(8H(ŠŒr$„$ò¨6€¦%JaB´(ì‚!ã‚ÁQ‰âA,´$¦*ä,±D¢.,J"´„dFB"È(à‚ÂA‹(J¨AH(èBŽ2‰ˆ"4D&¤(H""‡„O”(J H*¦„Fè(¡$( ÂŒf„4(Š7T(I!„!d„HDŸ„‚*‚ìH¸€è‚JqI("ˆ"àH¹("Œ$"„’D JðA(‹š+A€H€‚2D(Ïi€’4(K€„i(%hˆ#³’8rJhIâA¤aFðA(ôiH ‚8r+ˆ+!‰¤$IÂ$AhAðÁ(tA°h"”ˆ#³‚¸hhI’$IŒ>2B"XA.$CH !“AŸ„H"(°Â¹ ‚>$I„B"tIBI$‚"±‚9(H àB$"„YôI(BR+˜# $"KbA(/WJH„„&¤%82H:¤BB "‚2„b€%Œ6TF(¤" "‚Dj‚**‚DÈ€$&I©"(@Š´H‚¤bBh(((J‚„$*Ä™C  €‚@„& BJ!"H€ Bh D2H€„D „„$H€B(ïB8BH.BèDb*.Ä"hH‰‚Ä((XAJ£XÀjBˆ""‰¤B‹‚IH&bH"Ia„ÊA¨´@$!L‰¬c‰¨A€ˆB(ÊJJÊSS J"$!Õ(…6¤.HN(I&$B¨"I„•J¨BHÁbÀH* "&ˆÂDƒHh‰ÃLHJÁxŠ mH( aC*(‰‰¤$0("R*,J„*ø¤'BHHD"€‚! C„"Fˆ‚Š4D$( "$’HH*"HR‚A"€‚@ˆJ‚¤"B âä<áH $¡B €H B…" DA° "ÊB€„$2H(Dƒ€„$ˆ"€BNHR€"8H"H"B€¨! "*ŒbB€B(€€dB€( "€$" ÈB¬?½"ZBD(hÂBB*‚ !!R2( B"`„H€B(ˆJH((€H€ €ˆBЮC!dH("(‰€„!*À$D "$ˆ€ÀD‚H" (ˆ ü  *„@€‚HHJ‚ ¨ÄH(J€‚DB€$‚(„ $$"BJ°Œ* €€¡!H(ˆ€B ‚€À(HB€B@”(("HJ(ÀムB RDA ‚4d8B€Œ"*aƒ*$¤„Br°Š( 2dBB j¤& B ˆ¬"HK&"€"Bd„"„HJ¢"Pˆ"*"‚„$ˆ%‚ôù‚€“8Z!%TD ,J‚¢"Gƒ’H bnh„# ÒKThOD*@¨"j$`„.èƒ'‚€¤…ND°„!$*¢&"B€J¢æ"â(š¥Àòc‰ D„¡DXz‚‚¢2¢AXI!H®hJ¢$¤X’8I* "L„¤bbŒˆ@J„(eE€”$""Á(‰$„$$„%$ ¤D‚J&ôAØðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀA#Ž(A`B„ÀA€8à(€&pAˆ#Ž(A`B„€ˆOß`BHŠ&€ `BHŽ‚r( ( €Bð²V‰(ÀŠ&dB(”HBŽŠ`B&„ÀA‰(à(¡&$‚ÀA‰(à¸?jPÀˆ!`BÀAŽˆ#&AXà(8`BÀA„à(Ql…/!a(D(GBDðAI…€ø’ŽD(GBDðAI…€ø’ŽD(GBD”€x’:ùPÀˆ!`BDXà(8`BDXŽˆ#&AHà(ñN¯@#a(€DxAH‚ˆ#á((AD„ ˆ#á((ADpA ˆ/q:Ž &ÀAà(Š&ÀAŽ `BHïÚü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<@ÈH0Hƒ$…!!¹¤éAÁ„"K!(I"DDHƒȈH‚Œ¡Œˆ€(!Á"D"EŒ²("âFÄHˆ DNH˜ƒ¬˜Š9²*Â$E„(H*F‡…xHH(É5³J $a„ D¸0AAPHÉb‚*´HÄH„‡ˆB„Œˆ©ˆ¤‘C!B4$"(AEhB‹B„H˜„8HŠˆ àAI‚"Hˆ&"Š!ˆ,á…!ˆy‚ B‡„ŒÄˆ ˆš"2$D€’LKBK$@`„‹LŒ¥‚ˆŠ˜„ŠèJ±4@”DMDFÈŒ!(슈ɔš1(E"‹"HHFŒ¤\HЍ˜ü7ìÈHHB  ±„Šˆ€@˜ˆˆ ˆÁ„‚AC‰R„„ˆ$!€€‘„ ""(*”HŠÁˆ…H‹¯ÆƒD(ˆ D(A€A(‹B"H„€ƒ!ˆ`CAhƒ‚ƒ%(€(¢AÀ$@ˆ„ˆ€ˆ¨Ž^3NH D ""A("DÌ‚€tX¸Hˆ¨‰‚hAL"À$AI‚ 4ˆ‚šA„ˆ‚RD"€"rHH0HJø˜oØ €€(¡‚@TDA.DÀHƒtHB€¨„ˆ !ƒB„Eˆƒ„ˆTˆ‡ˆBŒ‰!K„‰"! 2(  €à16@(B€È„(IXÄ0$" xHˆ ˆ ˆA"J→DB€ „ˆ‚Š(A@„@Š,ðrt"Rƒ‚ÆM&#Â"I‚AHA”DCa$Ÿ!$BÀ’@ÀI!‚J‰1$@‚ÂHE˜&bB@ÁH„°!„‚Á“F4"…‚„‘H((ÉÁ"Ð$Ã($&ÄHDÄÄ'pR('`"„F(N!ÀÉ0$ŒD’dbH+! (ðÎ^@„H@ˆ€THADADCˆÁ@(¦€DHIDDŒ0…„ˆ@È„„„ˆ€Ȉ@($81.Œ„Fˆ8X„OB9èL#x„dCrÊôˆ‚.Hh„Œ¥H‹Ã*¤[X†è„¨eгL¨\J¡‚I¨–Șæ8h"À¤˜*¨‚ÂË r¸„*ø$DŠáBä(¸X„¢d Nªä‰¡t ‰!„ô%ù€H,AˆA¨’&È…èD‰l„Š‚.„Fh"@$¸H„H,AŒR„(Á(CB‰ ˆ":ÈD˜L$ÂHŒŒ‚äˆ!ĈJ!(èY8â„"J@ØD¡„ƒ‚AàEÈÈ`‚Æ(%âEˆ(èH¢D*8ˆˆ„˜ŒD„L…"ˆB€¡(AA" ˜‚&(„ƒ©$àŒ! }7 h@ˆ!`J CHl‚`D ¡H&¨ ˆFˆRHŠ&Däˆ"!$J”(„L(…8D`… ¡‚K*DV€„ „(j˜B£‡@ˆ„(–AÈK„@H„EH„ˆ„¸(Dd‚*A††(&”"$(!ˆ$Œ‰”H€"¢0H ˆðtU Ä`I"0$€äŠ"aDˆ"„J D ‚Œ$‘„À"Ž$€‰‚˜D0(AH Iƒ(¡(C  $H‚"ˆHàé:ö`B@‚Be1A,¢,”1EBÄD@!²rD2E ¡D1¤F0ADdB/’D$A8Zd!&!M4C+b!(N!ðH$'‘B„€„dAßæ&äT‚C„14 A*1HBFD("´Ø(!$‘J€HÀ$ˆ€¬0!H**¢HAÀDˆÂ0L¸"6‚"ŒŒ†!¤-XHÍH,5»!‰"3L@r1Cj!(’aMHE‚F ‡BÅ.Hk‘c$D+B‘d‰8$#)”!!TJâ–ŠD'…"!ª´O(ŽN"‹‚¨$"dRV(¥1H„£!„Õ„ôÞõA!XBD&*n(ÁH(„4€H!!D€’D"pHˆH„DR  ‚D€…)ƒ@ˆ\9RÈDŒ6,KA IOa„€B‚„€B„€ J¤Jd(!‚hÂ$¨G*U$ Cè"(J„ˆÊ4((TÏ_.4„#XDj±(¢AdK˜,!áAúDM(ȉäVšJ‚¡r§ÄÍR㇒*¡ËJË*Á4‰IHdÈÊbÄB^$ˆ*¤A*$àB†$¬."J¹$tD²Bb¥Ž*´( jj#±‚¤H(H:fHCG„dD*äA:Ä)È"„RAAIH8À˜4B G2‚AIG!:TBH( ‚Œ‚„Œ€b„’"©D¤H£R"€„"¬(ÂH„H„HŸ JC8HBt„à‚•”"€±„…”(BItè*â„A"¥FhbŒ#DÒH¨#‚†(ƒH˜‚b ‰D(šRD !@’„! Àà!rD˜ƒ„bK!C(XB&„(ðD.)AD"Bp"¡J(&"„€2ÿØ@Á"„(D$" ‘aœ$ÄAè„ÁH(‰D(‘A(DFÀD„J€3DH“b(BF"\4©€Ä!„H„Œ E$C$‹$!*”)LUH"‘"GAÀAÁ‚$A‰ÁHI‡4$ €ÁD!HŒ(b$hBðØ; )"€¡*$!" B(‚ˆ’DƒN‚‰!6DX€.H"$Dˆ¬B(@QBB!B"¢ "2A 2B F2"(BF"ä(òAÌÓ„8„2 "â¢"A@Ù"H’‹A/”8!„H…ˆ*£b A"d‚A".HB(fE!¡$€¡BÀ"$r$h „J"‚òÞ» b‚Œ"a‡hƒƒ£að8HL$™Èd„H0B$8Á…dTJv„M!HNED$B`@”4CB$Š$Š‚"€ “ ¸A‰I’0$€"‚D("”HB•DP„D‰ÂB)‘Aˆ4H‰‚4J€(b$$¤B„„ÄhHB$P(HBðC7ЄÂU`BÀ@ j!äB¢!àBB€z4ˆ†DÐ(BHI4$ŒdJ¤$8Á&„(A¸DK"D0Á&ôH%‚A``!0(ˆn("€2BH/d?>`BA(!QÀH•„@EB`B €‰Â„(€V$B&DtH ‚BA.D#Â(EX"!€¦2"H°*”sA‘8¢8DDŒ@˜„ @$…„@*)0„ D˜ˆp""$ÄŒ€Ä(¢2$B)‚‰HÈFJ Ào󆢇92K"àƒó(ˆ&!¡T#ÏÆCó!Õ܈êRÂYK†‘*D+D•TB+T^(KLX¢ĤAFTDø„J.&*EôB"…¡$ä">$%TDK‚!O‚”äC2b0âzÖ‚†ä"$„4HH!Z GAD&HèÔAr)eH.ð!4 A$ryˆ"ˆi†Jd"!qIN˜AHB'Œm(À…Q¤öŒ!­a:ÂâU䄤D%HŠÄ(AGNJˆ"H"C”LƒzH3hBˆ!Š(nHF-H.H.±3 ‰’°A‰Q(ZÑ!³dRœ."‚¤àÂ1Cò(H‡„NIÀH$‡…(*âÆ’D‰¤"É¢q‡ˆÍdƒ2A†Å5G\¤hárD4D:Z!O&”#Ò!T!b(+æ%¨j¢$†²B‚6".BÙ†ôhh‡ôIIßµHölmŸÆô‰_ÿ²ê£"…÷5NL’ñeMŸòfLMŒÞÚ¯Ž´1ñþÏ[yˆX)Ÿ$]EoAýÒòOI«;û‘‘ìüÂKÏÕùôT:--–¬]Gù±4ßGÿúß/)¹Á¸Áä‘óttcû´UOCû”œojøçoÛ‚œü¢ë/<ö"A‰‚º’½š¿¨þˆâ¯¯­A/$æ¤òb•cÅaDöL}_…å…õXX~lßÔôh&[þù¸/Kû34OQ´|ód‡–ŸÃ÷})LÇDψýêÞG÷u<ßýýÆÚ¯…tIúIAŸÄôL^ï­ùšžk»Có”µ_éüÏ˯’µ¼ÿTlßÖúNeÉô”S߆ú”2,øÁzIúÁ$ì‘"ƈ7Lj'C*þ:$KÄ£¾„>k%oQôi%oôi/öM%o‘ôm'O9ý}&_8ý&_¾õE,O:uYèjõE(®v_„ø²Äw…ïRùa¿ÚúA¿VøaÝ­oÔÉò„Ó¯Çò¤Ó«!_¼ýY(_8}Aø¡×—…{õA¨?[ÿS(ZùAŸÞûAŸÞøaݽïôI+Ï:ý;(O8­!_üýi(_¸ùI(úûI(/ê÷Iˆ/ë}[ø¢†«A¯ê»ôjŽ«aíªëAï¶D1A°y‚rEäB2I(ˆ•xaÈA…HA‰xè(!¡HDIŠìB 8„O”ˆA¤f´xì(!‚Á$%¤8A®DÀc"ñAˆA‰JB)8RŽbŽ"ŽBBŽ2A.FÀÒ£‡¨"‰X.‚.XDH€p¨$ƒqHAŒ4ˆ¶È"“„q$HòT, dB2‰Q$X€b¨a02C"hH#¶A(Â"Ê‚DHHñ·¢xBN!)ŒiÄJB A”8B‘H‘@¨AY¤Š,"ÈU@2(O„*Dd"$H"©%Š2D‚ˆB&â"*¢È 4bHHdsÏ$ÐA "…!Q¡ 6ˆHT¡,v„M„T"(QBd2àAd‚d‚AO¸!Ê“DQI’%8A#ÄAˆ-Q„PE%¡@(±B †\Bb@ˆ"!x$pt!‚Á€VIðH$0A’àKÔ$‚8*`A¢4 ÒXd‚*‘„ „"&$*#M4(L4I"R RHXƒ(”ˆH@d²Ed„„ $.Š&$B¤b°ÍHETI…æ*ÔÑXá$æ1-(*)"#ÒB(rY&HEñÌ˪,H(‘Irx$ „؃2L$Bq2(D8D„X‚X„¿g " À!BI0B! ±HÀaALD!aD "€BAD!Ä!@<d0!!j„PI %(…޹s `„"G„ `AFHÄA(ƒB(¸X "X(C"À¨„EBJ€¨!"$C‚ÕDˆ" A@„6H¨A€È("Š5(FBðzEÀTL!JÁ(ABªuظ4”<‚h[iäD±2Nx$™Ä„ŒÃ„O„iR\¼HˆÔ±,6HŒ‰¢˜v˜…è肱¥!„v”舂܂%*¤AJâX§„Aj„n(ŠcŒ"ˆÈ*‚ŠU„*$>AxX¢"ˆH(ƒì†?ñ B‘ˆF$XD&xÂ(HI†¨C!,DÒ„"K&‚V ‚&”!ˆŽj2H F¢" 1¢ Á)ˆ*„dˆá¢ƒB ö3BÀh0HŒ¤B4ähBCª!lƒ#fqˆ¸4„LjF-ˆd…&Äæˆ‚2Á´ˆ†CHK†M*D¸$ BI8xKHƒƒ ˆ.èY†1ˆF„‹Â*¡A ê„!䈂œxsÀ"’A"€Ð@á„L B˜L DaAB‰dAŒFQIHH„ÆL"Z¡E„€JHŒ‡ƒA„ R€’„D!h0A@"S 1IB†AK(@!¡Aà Ä %ÀtÃÀQ„DŒˆ"@A’#¤DˆCA`’„AIa„ˆ‚™A€ P…‚ʲ$_Dt¡ƒ¤DBZHX‰„dðýûXƒÁ!"%(ÒB!!1Qˆ!HG„С0AD@ÄDÈER@DDHAL@ .s @xD !D!…ÈDäd!D¡D…‚ÁP!”œÔ‚A*TDHCrIœ(ƒ@( $"ô-Õ@iÀA…‡„P0AATA•ÈAKD%!AÁŽH…$–H"Aƒ!DAD€¢`ˆ ¡…(„Ü5¬€T(Ð!H"8!°¸ ADDDJD¬dJT…AAA€D$‚hT@1DI‚¡D‘H艢B€Ôi€äƒ‰BA4ˆ‚Ej$$ƒ!$@$!ÃôDƒT@DL¤,AŒ"èAÄH(€¤DAj$±A£B@”DF¤Aà$@¡F2 Ä!ƒ(A„°¡$bCD("‰â‚‚$€Â(@ €@HD¤B E€H„ !$ð‡š„(E4($!GaB¨((€R‚*B!­„…ˆY¨Pˆ "‚Rˆ@Tˆ&AIˆD@J¡€(ˆÀùÃ(…ÈU"‘Da!$‰Ý(XŒH R,›jŽF%âÒuôa1OĤ$–~H¸˜HPD„‡D‚Ìh$°QAEéBaD`VAyD$¡‚f¨ÁHƒ ÀXVHHïÿ”.AR"!IÑ‚%R)ÒR0Dä‚4$&ÊH‹„p!aAÅHN!Œ²L•lȈ(ˆÍDBBJ2ABeQfdDG\O’žQÀH€H¡Ò‰é‚qH¨FJ„Ä¡³ „N(…HX„(Ç‚„Ù‚±XцAÂH¹a(â‘L@r*é’u^ÂZP(‘‘Á(,Œr,ÈH”-Ô„QMTˆÅåD”LHFáDrD$q$dQXE¼E„“A„4HB‚"¢ðâ߀òaIZå„¥D”æÃó}ÕˆùÙÙË™iù‚‚¬Ô‰ùÙùÏHøÏO„ôOm†þíìŸÎþºwoóÿ»ÖþèˆüËÃïkû‰‰ÏHøµOH¸˜!òa©ÏÞþñxßCûô>¬6äLúAÆòI‡F/öL8Ñ´Hò„Ó…ò”Û‰òÅÚ”ò„Ò7—jmèJ÷m‰/K~Wù¤•oô­•oôé…/öí¼ö(,_8ÿ8,O8¿8òÅ[ŸÄò…“…ò¡÷—…zóMˆ?[yWø!•/ôíµoôi…/ö-µoÔYò„Ó›'O:½òÅŸ†ò­Ó„z{Aø©„ø³…?…ñ¡´+AλôèŒ+a˪oä,( †2L&˜ˆIøAˆT¨¸A(ȯ!â(UÈKH#“T‹!ŠnJAª¤‚„—†]A‹¢A„DI8O(Qˆ‚DAB8A.DÀ„CÁTA„]AAˆ€8Ž h…Šd„xÁ&9] $RB`„‹$"u&(¢!*´öHÄ@h$¤N”4ŒÅC,2Í„A€ T„G0ÁMXB"!dC*HHŠ¡!Bƒ€„ñùî ˆH"… $S$"Ì„1AÁH VL!ĉfiAA(€ÈA`P„*D!dƒDA B„DH°"@qQ:{€q!4„„RC"A@$DJDA!Q‰Bá„TR„QÄ!QT!1ˆ¥AbQF1$$A$ЂR@aCP‚-J„…ô½rx$è„J2DC¢„8œ(PŒÐ%8a€ **€©!ˆ(DTA‘B2¾ÄЂA.‚",%ÀAH–(ÂD€˜n3ÃDx4éBáD°&@”F‚RhPL@³‘!àø‚A(U‰A©Ì)BaÄFb4X†1˜-ìäY!HlC’‹Lqaq2Z(`D!DIb„Œ„ôVv0A@a„& ‚p!H€¢H•€" @D$D*E!!‡"€ # ð¡¥Â¨À"KTIF ˆ0„/D„F¤ILÈ(C qA ˆ’0$DÁ$B`L(H"hCH,x‚Lˆ(Bñ‹Ÿ°¤"Z’*t¨©-èDŠM(Fª„.È*ƒfÁF˜>A‡ŠL”6ˆH‹Bâ‹2ŽàƒÖ‚)Tnˆ!dR‹°(‘H"ˆƒAH!¤-C! „Jˆ6B ,F:¤œ*±8¢B€$Á.² €(ðŒQPH" à‚`¢H òDƒèDb@ˆA(B(IFP€”)@ `Ah!B8A€(!Ä"‚ÂÐj #E(òJNÀ*,‚" ¡i²Œ„‚4HKR…„Ù¤‚H˜Œ&˜HÈ2…"‹âˆ$4ˆ2ŒÉä‚ÑH$¡B„ƒ<„°T„" ‹¤ bBê‚!ˆƒ¨ABx,-ˆhÈ!„…"€AØA¨Ap†&†A(B €Q!@A4’EA-@?ôEáB@"„(…#"PAˆ”D€k8À!àd B#\2b(Q@"A8P@ˆ(Cä‘I BÁˆˆ"0…@a0@$‚#2,(!@$°8ž‚PŠ ¡(Ð)! HBBAHBCFXÁA$‚D™„B„„4@AB#ADD0R@$å(¡ÓS &ˆ2(„$E ‡…!•A8"ÙA’(œBAH !"H°€@A@„BM"T!#‚ AAA! 1Dd `‚‘P!D„e„@D"‡„&•A(„!@(ƒ˜!"ÆA1Dˆˆ VA&0A!'Š!Œ!˜ |1ûP@AQ‚FȈ"ˆ‰ £²Ô @DŒ`"U$C€A±Tc!, @„ƒ!‚'D)Õy(%0BN"A´A‰bÈ(¡¤CHH„ŠAA  #QR$EDdÀ@R$¬7Û!B"DN"(©¢"(€¤"6&"* € """( !–$„J´ˆKE TAJ„ш$ð—K€B@4ˆ!22 (F"$ "(@ ‚XˆŠ (CDD$”„FDBRˆÐÄ:Ú„$(%JZ2&GDÈ‘„B B’‰*B88‰¼ˆ’%~(G„”A*0A&¤‚²"ȉ´„™‚a!N!BC‚‚MA<é!1¡!DOA1AQ§ˆc9)D?éGÁ*‡‚‚:A˜8´‡()aD,!°!Q!h‡‚a#A""!fˆÂ8ÐD”M$K‚TA01°"„$(!ª>GÂg`DNNFbA ¤$ J?Šb&:(£'„…SŒFHÌ%A(ñ"8½X2…KA.X%x(È! !aA*+p!¸!Á„QÁh@H¤BKAhb!ER%*"‚xQ”FT…”šñ‚k¯ô ?†öjh§’/¶T§¯´ôhi¯4üÃØ޵ø’"*òcãÿ?¯þÌÅÿï×òGd_ÖþîÌ÷Ø×ÃÏe~¬³ñ2]6Gr:úÁaOB¨ˆš»Ñý™¸úþ„…Ž)âè÷¤ªOLÿ¤…왚é[³±Cüñ÷O(þÔŠ/Jù±4_bºäýÂÁ–¡DNÁO|µSýÔœ¨ùœ+±KÝÎÂOMõBÒ#Ö¡ôik¶Ò*tJØ«ôJe¦ôÊÚŸÿy>oKú/äŽÿñú¯ÝþôÆãö)ÅÏÖöå×ßíÙÌÓÍõçåÚˆ±q3õ&${ŽáF³•éèþÁ˜Ÿï¨‰Cò-%O¢È~[ª[Ê_»”­ˆûdõÓñOoù±”šù²—có¥÷O}üÄ„eÔUôDEOlüVTMý–žÏɼVµÒù’’žÔkUmGñbi¶ö+*4T:?4ôCB?6î<¿Òöw¾okó22nÁþóéßÎþýUgQOÔöíÍÏO}½ÿDOÿÄü¿6±qó4Bò%&¯~_Ç«›ŠèŒþøù½áü¥-ïSr$õ…¤_^ödõþá[«¿_鹑¹‘ñ15O4ÿÖ£Îø²¶O(èkó"¡îÃ,ø‘“'NA|Ñá5ý‚دˆ¼ÊöDÂ+˜+‰/Låõ2ˆ¼þhi?¤Ò»tBÛ2ôBB?´öêÁ/.ýq4Oi™B¯ì.ÿéìßO~MÝÌômmßÜÿݼíEïôôí¾{¿‘ñsò$5o¶ñîG²¤«¹ºýùùŸÿÑä_[˜.%Uô¥åOæ_ÿäµ_J¿•üŽØu_wåoíKû–²O)ékù3/9¿Óü‡…%ÁESôÁÓ<å-¹ÒùÚŠ-RÎÒ+Ý/-ý_ 'C.A¯CÒ4NaãÑìÞ–ÌŽsß„ø„2A¬ôÅLøá'AÆLxsìDx²ÄįB’Ä£‰>M•³Xq/tiõA—V/‘öm!o‘öi#O¸ÿk&O8ÿ*"_¼õS(ß8}Aø©÷ß„ò¡T_„øºÖw…¯røA¿~ùA¿òøaý¦´(ó…ÓEó„Ó‹1_¼ýq(ß8}aü¡——ÇzñaŒ?[}Sø±µoôùµoôù•/ö¡oSöM#Ozß/ò¤óï!òåŸ?§ò¥“?¥ô¡—7…zñAÈ?{øS?j¼ôêÞ+A¯.¼ö΢kAÏ7 b**nBc¤‚B"paè´(ŠÄ’IÄK'¡O(±„!(CaB@$"ñA¨”ˆ€ "82Ž"I!´„!¤8A®R˜B„؈ˆ#á(!R‚B(VdJL4›,x„a$A$‰D JˆD(d„"B`B@T(MA $C (UBB˜@ÕT"L‘aqe$pT$@ìX¯gFHA8"`AA ÄA B&D$Q@!è1ADA" BA€1$@!D `HAâBD€È[ƒA2!$„"*!BDAD@’E„!D( Ä!@D…DR€Ñ"#%"‰B-¡rè‰ÆA€h‚AA@’Iè!A "2HdB€*ˆ$AŒ”A"$ˆDH¨HˆÅ0„8‰„à‚‚0€Ÿ±:Ó¤G4$€D&d‚T&2c;h!`IG!”$I±AAÙ¤$"(JL&!BEl‚$FÔA*AbŒˆÄ©TÀ$(‰RH# ¡!îÏ $@ADA…„B„L !EˆDD!@Fˆà"$p!‹€‚.ù³ ˆB‚€ÁH"0ˆ ’À(Œ™(JpA `((àˆN*D(d„$`(0’&‚(OïCåF‚Ôa”"(ƒ,¥‚(A.LDAi"ƒ´)‚Tˆ.ôJ"ÈÁ ´"‹(H–$ñ„x8XV¤‰…È…I&¡A§‚Aˆ‰"dD'Š ˆXŒ¥"‘J‚¨R2xŠ„„‹[EHˆ ˆ CÑ$‰D¨Aˆ&ÀA"†ˆbD@„¡‚JAI²Ø‹HЄ„(À!¤ B"0#ëo `BB‰t¸¤$¡((A0HI¢H„ BK$‰ .‹AX†È"ƒ‚‚R6ˆ($AÈHA ¬†É!(ˆ:H(¢‰€1DfˆHª¢” RJ(¡*ÃÌ)„p!Hj!€!+!AX„D,P !%ˆ4 4D  ‰a@ØBXA$D!ŠÄB€,a%…" T*@‚HT!@DDSˆ(ˆˆA)D”„A@ A$ !Àvò …a`‚¡%b(cBRA…ÄA…„$Ð X„D„ˆ†RA$D-B`(DB¤!0BB !ág&R$$@A„@A AÆQÀA8À„BP£AHA@ `A`pX!q A0ÄHC‘‰Ả„H‘H%XER„A°a"ŒQB“DƒA–B¡QC¡!µ5TACÔAÁQADA0DD†A!LXBD1BÀ‚‚t®C’)LR)"X(5À(-„à‚@Z‚ B0AD@h hAVAa¨@T„D”˜@…a!ƒDT„!ÄDLB2ST!Ä„(Q!‡$@Á*„@!„¸T˜HPAHÄ‚((@!l!ðDEHÁHŒ‘ABB¤ð>#VH ,Ea$a4+,Ð$U" „‚TA€@!‚A€ˆ\B„L!B„H8ðT(Có2tRRJD˜d„€P@ˆB ”H„„‰H@H„H€D‚‰‚œ‚H€²*„(††R(*â($"$Ï‹HM¦Q€ a…(` &´H"¤b BÈX‚t((˜( XH„H‰”‚… …˜!‰r(±$©(àBÂH "Ì1VñDA(K!J%R$ƒá!I%¥B‹e™‘AŒ‚!a‰aÐŒH$¸å¨Q-HŽ“œ‹8‡DY˜‘IHÂAEA)ÁI£b„(ŠA†¢È DBø™|€ñ|™Õˆq9ÒåaôH‡D!A˜*œc2#Cè$"¢&ð!($J´Iㄲ1hA";…$hCF\IÔHTH‰Äˆ„DH…Æ…ÒDAÄH†Dt!ÊAÁ¢S„/BSB.$-H>Œm$)RH¯Ò5aL6*LQB”('¤#"±!Õ©T¦#Y¨…ºKáuHâ¸NHPR0A‘BÝCu8ÄŒ!”D…Ô!„Dt‘œH%ÄN¯Aq(èB„)˜C¢(@‚Ô›OT÷}v¿çµxôLQŸ¤÷=:ϧõHRQõG…ñQ5Oòól5_‡÷xBNå'Ò›D„öjk>YÕ?)íŽwù(ßÃóx˜˜øÌeË¢Ë›Ž”Üéœí¹ÅüÜäÔ•ø„Û™ŒüÉɯlýÃûˈ¸Áät„ô—“ŽÂWìeòGÃKØر,òc*¯z,Üø—–ž%/æ¦æONìŒTŽ¡o¤ölNcÉUOÆõV\ߥõSYNH¯ÇÒËôKI7%ï¥ñ9¡Q_ó*z/c÷{y'K"ÏôAK¶ò*1‹7þ²¿­üSZ¥7ŸÃ÷ݘüi,®´‰žÄŸ¼ØìIüÁÝOôLŒwT_Xø„™žÌÏœüÉÊo½üÛˆŽØüHL_DØ|¹“ù’”cÑTôÍŽo½ø,.#¯ÂR•ü¬#+;_"².ænùžÚ/%ôHJnf/ÄÔÜGóU~ÿ×÷rsýŸ%Ô›÷zyŸgõIGK_ÅáAaA_Ñåó=e×õXýûG_TôDEOÔ´I¶!ö9™žùߌµõQqn)ßÃýŒŒöm¼®„KˆŸI¼ÁüÉÑÏœíÜô[H“Ôø…ŒOYøÉÉÈüÉùψü‰ŠøÅDÄx(øCˆO)Q"/$üÃÃoéÓûò,éïWò,,ßòú¸‘/9²döjê/¯÷ÎJ«D¤„öj·â=Dÿá÷}g•™uCúyk”õ_HïÕÕÉñKOA!ñ+;/¶÷~yßÇòAEÏTôDMÿ†¶aòAXŸë=ü[Ÿ…õYI–÷ÙˆŸØül,K™K™Ž”ÚüÑÙÞÍý]HTTœŸ˜¹˜ùÍ›ŒÏœýÙˆ¸è|Hé|ùŸ˜âHyÄDÏÜü͜ϱò/,Ÿ†VÑß‚òˆ_#û#$.j«¾ب$ô*hNB¿- /Cò(a¯CÒ46Ö,ñ„sפO(ôÁ:A¬áÂñ¡'AÆÌxs¬‚'CNÁ¯CÒ¼Zä¾ÔüÌsÕø„2IñÅ:IøÁNî!qaìDxsØAx²ÄÁ¯[Ò6<~ÁaÁ8wÉø„2ðÁ:A¬î±ta¬‚7Çx2¤Â¯C²„<Jº^âÔ:ã-·oôk7o•tk÷qÿ2òMßò„[Û$O9•,_ýõe(ÿxuAü£WÄzóAŒ?S|Sú!•¯ô齯5ô)¯öM¹oÔò„ÓÛ$O»,_¼ùIh_¹yIø¡ŸŸ„ô¡Ÿ„ü²Œ¿…áJøSInøRQÎøi˨oÕ´Hò‡Ó‹!o8½òÅZ?´öŒ’·Õ/jwMý¢6ßÔø²„wµ.„¯!ô蔯)´(øjÏDúVC‡d€‚äB4XB„ÁAHŒŒ‚8Ž„À(À(ŠrDhB€…øAˆ”ˆˆˆ8Ž‚‚DŽ"A¦ tAØ”ˆ!€<Ž&…¤(‡D&L4@„AŒAÁF"AÂB" Q€1!4‰qABxAŠˆÄB D(@¢AB B„€„ß/Ž@„‰(Aq#H&ÂD…!R!”!3`€€ˆ‘@(H„°@€Q!B$@H@Ù1^Q[‘âæ´A¶q¥3.záµQ¡>!v_Bxô%…ª¾!g>±ºù‰)ߥ1HŸ®ù{¿”û—:Ogó%ÏÅó##Kd7¶ƒöwEODþç…gLoeõµoi¥So$qAñV2_·bæd÷4†’"_öuÖQ²"ö#(ªBh¿7•rzä%+CÅbj÷"Ê“ÙöAanAZ$U&¡FJôaa5:³á´A´ñ1%OCötDWTM%_X»”ûK_KÿÔÉŸ„åñ14ÏÔµñíÿ÷´¾–+gQÿÇ÷<'Bâ2ö+lÏ’á:üáæOfó_i¹Vá%õAbô2uw+WO&âb²$ñ21ZG4Yñrq¯…tA¨A27Q+'/!¥D#´BòRR:³"ö´zq~a"WA1!!.az÷q8:ƒ#ã±³!ò1ñoSr$õ!¡ž‘ž²aþññË]¡e’ò(ˆÿxùô„?ï+ùGá?1¥U='KÔSôDD¾¢ü•7_SóVÆOOóVRA/dòqq/gçeõRwÆM62/#ñGQN7ñRÙ¯•öH(‚öhr5¶r·bµR$+U+u#aÂSÈÙ~q'DAñAAnaj·a£3>aNA2CóuEOBR˜™_QtDñ¤µ_‰­QWòmlüø—ôO.»¶éañí;cFäòI,Eõ¥æO\ø'u_g³¶þR'$ô"Q'÷vbOfáEó6'bObsýZmctKX‰‚ö(xNS&³2vRòR+E'&/1²R'Cô:$O46ì8uMè(ôÁ*A¬ÁîqtaÌ„7‡LxÄůSòÁ£ÁáçMAÍŽsׄO(’$¬Ò%òÅîqxaœ7Ïø2%\¾:Ò<áãÑ–LŽsׄŽ2A¬S„¬îy2xaŒxs¼!x„ü:$I<èãÁ…3WQ/õ)%/tiõqÝ!oôi!O<µò¤S‰òÅ[„ò…„zuAø¡„ù¢„?…áBýSAJüIBüaÉúI‹&o8½Hò†Ó‰òÇ„òÌÄ/nóEMî_Äþ²Ä¥áBüRSJþRAÏBüScͤôL6O8õ~6O8õ6_¬ñW?O,ñS;î?•dn„ú:Ö?…ô2–+a¯c¹Rô:–+aï'»ôv) ‚(A.$„"x2ä(!(‚¡#Š6.d€¤‚ðAMA‹€I82O(‚*$IäB"Á$@ÄÂA‡D`Dˆ+Ž€$‚dBÀnã‡èÁ È@€!ÈA’EDCœ(0HDBDB$AA„!&„…X"A"DÀ"@B(€B‚%pñ›†"AFHV‚‰4QŒ!*!„ P$*„š$„@D!"!@ ‚!$ŒãZ‰Qˆ" !‘bS‚!A„Œ‘‰!Q¢ƒ*ˆ"4%’"„@‚Å(‹4!#„¤%¢!,AÌ Ò(„$Ò‚`…,Ñ(ôÖÉ$SH„8A "(À" (P (ÑB"DЂ! B"HCá‚Aƒ1AƒA"%%„"­A"„P„ …„9-H€Ò¡2™(G@¶! ‚ÁT1ÁB1Ä!Í„žI¤$G‚ð"ˆ(D¡ƒq’¡)ÀR(xdX‚^’V¢LDBHL‰òXB ÉCª”Œ¡TR¤'B/)A‘*€€ "B!À( ’D„"„$¨€@X(@ˆ$Bˆ„|=4O‡ò=55ßá1.¡·—’áñ(.8:±(²ñ8>(8+!2?¥¡#/£ó8(¯£ñ>Ïãó(ˆ§/¡ãƒó88¯'ö2‡‚/!¡uOÇô:¯CÅ9.<Í.uÚ›ãaÁ×Á߃ò99Ãó44K!*Ò1Áó1‡ÑË"Bò)5‘ÑX±4âBsø‹Ârü)’q=ø4$:¡_“³ñ4$]²(Â!9‹›Œ£2ȃ¡2.&º(s:È+1.2¯ƒã"ó.M<ãø((¢³:ò(:¯ƒæ&÷ZH¤ñHæ·VóOÉßÁó%=¯ñS§Ÿñ1Ï‘ò-—›3×ÅOB£2‚›!Óó,‰ÿCÒÝÒñ8-›2Ÿ‚ó-9Yñ16ÙÁñÁßÇbC>4]_ƒÒÑó<%ÏSú;(’Ÿrñ(9ŒÑˆòŒ±шñ28+!?§¡"/#£"¯#³(ò,ïC¸ò((.(‚Ñ"óhx¯§×ˆò‹T/¤õ4,¥ÆŸCr5Ó>±1ORr5éãÃáA²$¢#Ÿñ(9ÏR²r!ý,)ÏR³!ò18ŸÁqi‘“ù99…‘%_Rñ"+26ú"8ãñ$6O‚Bú:b¯‡öxx¥ÔŠôXJ¯å¶ft 'Cô:$MA£Ñ4>.aÁ8÷MŽ2IñÁ:EøÁŒñáž'ÆŒxsìx2Ôü$Ï<áãÁAÉá8÷MŽA¬“¬ñáž'ƒÆ*xsìx2ôÁ¯CòÁ£á>V,8wMê(Ó$ñÁ:M2¬Áî9ƈ7Ç+'C+Á¯A’Ê#‘êëA|8"\ùIßsñiŸSñaßóM!O9•)Ox•(_¾ñA(_8qQü¡WÄ{óEŒ?SxWø!…¯õ)¥oô)/ö-µoô-%O8ÕMò„SÏBòÕ_Äò„ò­„êñAˆ¯ÃxSéÂøABúIBøiÉú>A‹"Ï9•(O9•(_¬ñA(O(qaèjseèjóaˆ/CzSø(„+aF¸Rõ(„+qÏFú{ÿ)€!Â2A. €„ÂA*‚8Ž"àB((D&¨"„4(ˆ#á( "€‚dB "ðA(TˆÀ(AŒ‚ø(Ž(hÁ&.8Z‚‘@T„2°)*A Q„„Á"(`‚ƒ ‡"„" @$à$8H$/> ŠHD”A1€1!‰‚“„p(HA`@ ‰!’!0(€  „€-HP]D²”L A&’"!AItH`"HAƒÄ&(„0$‘$ @%h!`#@$äB*t"¨A£ôŠDA(AˆA„€"(€„€!„d@ˆ  Ãa³ChÅD("Q!"„D2! A…H€ 5HAAB&bH0H$!B„*!"C$dB ²d‚H#1Cñýó €@@ !(@„0 Á1@$ @b3£ˆ‚‚‚ˆ€@ñ­®Çß$á‚ÄôH:QM{,ù(SC8$Ž’7Ç„oOt¤êèÒ~ÈÁgO<±(ôˆôÉ:à¸×dø*UŠaB+˜Ç%xñÆUÇ*.AO~Øü:EÆcÃ(aŸ¨3DŽ{Mš/R%hB+˜Ç%xñæRw„ÊI(MÁ©Óü:DÆâÂñˆB¨2TOØ=:_”2ZA'‹D'S‰t3üÒ"_ˆÒ$èW,¾òE¬#qAÈ$®Aôá_”:ZIx±H|2•È?ÃøR²UˆÒ$éÖ,á¶xe¼rAÈ$®AôÁ:_”¸Z’„'‹Ä'S‰ü3Œ/%[…(M’ŽaÍŽaë¡_Ä2„LòáD¬óDˆ«%I8‹Ä'C‰üVú ˆˆˆ ‚­ã @@A@!`ŒLBA@$€ PH‚€‚‚@$(‚ðõÈI€IŒFš"H& #"Qp¡!!#  Dd„0( ˆc`$‚`‚ˆ„ÀXB„t(=ØD@A!@Œ"ÀD""! F(!ÀH@H*Ï(pA ""&˜b (A‰Bbˆ@ˆ",@D@ˆbˆ€‚D)ˆ"(¨„†ÄCG˜”@A`AÄA@„@¥0$'¡@0(AB!@(Á6(‚ò¯·@h„@„A  @CÁ$`!€„!„"@‚ì9/H!AA„@DXE"ƒ…E±4eHB@Œ-#À""($°ƒòeè„„Á€* A1(A’€!!"¹!q ÀÑóHLQH@„A Aˆ&D ƒ²Á!"@Á-@˜(„*!……"B$"$@("@8€°òô=@È…„’â"0("I!b‚(0h…%€€ *!! "(,$àÂ9ï A !1HQ„0!„ A %šD!M(#„$ƒA $…b¡@*€&À"€2#!*"²:ÄQ‘@!¡áAAœ˜TP`H%B"Q!pP(@!…(!,€a"$„ƒ‘Q8@„A€A€(DD€B*"°""( "( *" #€(*"¢"@(„_½ÀD@€€AŒ!‚ " "(€""(" ‚¡„‰b‚€ "$L3uq”@„AI€ÁEBÁ(`B(DDH(²2(ƒ‚‘""(O"…ØÂ(…(r˜ … …*󤄠*"À1!*!B(“2'‰Ã8_®Gˆ±ÁÄ„‘A™‚RˆŒ‘Cå‚E4 á"2&2""â‚’"$*B(Â@(¢"+"!#’"‚‚Bè"¡"ƒAÈ">QA! ÀPˆKK0OƒÃ($äB‚B„¢!ƒQ(ƒ‘-11+""-gÒÐ’r(i„‡!2Šb!¤B ‹(,&‰‚„)#‚a#âmÕô1Yáaчё}ôDœ±ñAó!¤óS1\²ò,¹GÊ1Ò„ÒQÓEñ'ÏCòc**s3{Tw‰ó+;‚ú(Ÿ’ò3*±*ñ¨§*ŒÓ.1¥Òˆó(b"„²"c!"")ó!*ø8(.(/#±³8a!++2Oñ:‹3¯Ã3'TÕ\±!±áQÑDQÈ•\‰[×AOó<$ŸBÑ•ñ<$Ÿ²(ó¥´œQÅñ14M’S(¿Âò4"+3.#?Br»3ó(3¿ƒÂ!Ÿ‚â2ò;8.".*«›…RСӂs(x2ú(:>2:3"$>".1³Á(‹""£#«2/!¡2+'¡‚ó2(?åGñÇÑŸsyٙщñÛ×ÅOAÑÄqy¸ó…ï‘r$})UÏ“ñ5<Áú©5Ç‘ÁÁò3*3æ¡!/#¢=‡Á?1²(ú;!‹"•¹ò;+¯ƒÓ(«:g¡Ñ*шñ*ê¢ñ{ò:¯‚ó8*¡ò(ª¿“b‚‹"¢Á­¯Óªò­-¯‚ã’6Fœøß‘ñ…yüÏQ±qìAaAGQMMÝ—BÕù$(ÕUIÝ_“r4í›;ÁÒsô8+/“ò86k2>"+#3yñ#»3.)y!Hø(+¿#Óˆ±¢k!/Á)qr2â¡ÒŠò"'!ò88¯¢s:ø:8¥¹)Òˆâ‚b!‡!¥ø:8§¡…:/!r:sö'Cô:$Ï4aãá–O8÷MŽ2A_¬S„¬Aôáž'AÆLxsìCx2äSü:%Ï<áïòaÍO8÷MŽ2M¬Ó¤ñÁî92Æxs¼3x2Ôü:$o<-áë!-aÉá8÷MŽ2IñÁ:M¬á‚ñá¾#qä7Ç*x2¤Â¯C’Ì£>¬=!…¯‘t)õA—R¯ÖòEÝ1O8•-Ox•,_¼ñE(_øqEü©ÄŸêñAŒ¯ÃxSü8Œ¿Ñö¸„¯ô„¿‘¶úI‹3߸ÕHó†S‰óÅ–ó„„ñ¨6”®„ø:„?…âCøQKúAÃøqË¡oõ8"O¸õ*2O8Õ*óå?¤ó„?¤áêqCù¨>„ú2Ž7…¯bøH¯b¸ô*†+aí¢oôûX`A@„2&„”€*82Ž€2$&(ðA(@ˆ8Ž&"((A&"paÈA‰(ˆ#á(! !(CaBƒÁÓÓ•OØ‚DG„DDHDÑI8"](Y˜D(‰AJ„bB&,a‚)ƒ‚à"…*,…‚"!)'P‚Ñ7‡ÄD‚ŒAAD‘1@"8p‘À"„#"À€a‚Œ€A‚bˆ#Â( ƒA „"(P($+!._c̉$‚$Q€Y!H„1A@$E8„È8$ D´!'BAŒ$Š5!‰R"‚&&’A ®BŒÄ‚¨HR$N!«ƒTE "dA(L„’PHHp(4!H%A("Q…,’($ŒX„+TH!B‰d*BJBÁ,A(ˆA˜ÈÚƒÄj”E@G$ ‹FJQIT"¸M5`‰D#”)bŒ1"%DBHÁÏEb#D"r‘8H$& -T1 BÁŒR†ŒTH†c¡aˆÀH¼Á"ðùqH!$ÁD "(@Aˆ*T`B  ’D„ ( B1H ‚"Hü3O ŠF'†@‰„ 8((D@€(`ˆ"B(€H$C  B @ù“†$A"CÓBgD°$ƒÈDDA0DHB¢B„†â…‚2D"((2‰HÊH‚è4!P‚@ˆ±A"§„&"¥Šä‚¬#E€•"¤!°‚˜¢-èb!Q‰É4$ôD(0HD@2Œt$ƒ`A‰"+A@ð(0‚"$B$ AŒÐ"TH°(A2ˆ$ƒ‚$Á‚`!,O¶‰ !J¨BE(¢ „fˆ$ƒ\‚IFˆ(@ b„V@ÀBƒ‚ƒ  „"*H g!"‚#,3Ø8”@A1Dœ‚$HHA˜DD‰DE …QHÄh$ƒ8p"ƒ€D€H(FˆŒÏ€BƒA(bAI”D€…A‘@$T„‘€ÄH" *I„B"€‚ƒÀÕÁD”a”`¨!CaA”Dƒ$DAXŒ@X±XÃ" #ÂX „LB¸ˆ¢!ApD „( àˆA›`¶ "€D„À$Á€G@Â.!€ÑA4A`Ab A(ƒ¨„ˆ1,(H##!220(VŠJ‚B$@BN TÀA"ÅÁ`‚A"(d‚@„dL8M4ЂÁ$€@(„T„IËH€D$¢áD¤'DLD¨T¥‡„à„R("1ð¿v°AaÁ°0%DE@‰APH!ÄEGAAC!FA‰ÉH`†BHA!"$2‚v‚ä"‚D˜H…ˆ=‚°b˜Ú3…ÓˆòR7!(1h""ŒDœDPDU,DUx$ÇAy"‚„aQ(F4R$ƒ¥BCÃ$Ž".”@„*„ˆ„„d(‹B(HˆD‡!„ÓA@¨! AaE…TADAÄYAÈ`B Hd0$ƒ(*¥$Œ‘HD"IdÁA`BB"d"‰¢hŒA !"ì5ƒHBBFB@„ $ $HHDHD’„#¤D„JH *@€„$  @JôÎÄ`BH„ÄH€€hJB $B""ÐH$B „€AÈH€D €Ü2×L“DE$!hGA…ü(HÅ”PDDDQDEhF|”‰ˆ(á„âŒ"äÁDAU8d„fCv´däAÔD(DÂ5(m$M$(Ì2F‚†AÈH6ÈDOBrFR(0,Ïe!Ä$IRFMH"XB‰‚…Xˆ2ˆŒd’(Ï8ÏÒñQ_D¤1E±Q÷%$†ÔÜóuDÇAFüD_”Õ\ôLA—ÄOBâRüE•ø44OõL×ÁHMQŸ…öe,*ÓTñAÏAúæ*MÔ™ô^–<Õá(Q$¬S„_¬Aúáž#qaŒxsLx2”¯Aš†£‘ÂëA-îSÏE¯ôiE¯uiõZaÝ!oÕÔóÄ_™ó”‰óÕ_„óÕ_†ñå†ßþ÷aˆÿ×þsß×þ:QßWþAŸUüqßþuŸ÷Œw›6O9»(óÅÿ†ó•„ñ¡„ŸâñAȯËúSHÏÃøAOøAGøqË¥ïQµxóŽW‹6ox8_íõA8o©õA8¾Ö„.V„ø²Ä?¥áKøxKøRXCøxÉú6Hò ‚(A.$€„ÄAˆ#á((CbBðAHBˆ#é(! ¢(A.$BHB„„ˆ'‰Ž€dBÜÓGd‡H‰HG"A@—FD€”E„Ia„UËBŒ‘¤CrAŒ‚B¨B#á„B8T„B¡( ¡ƒ…„šTD/„²Œ* ‹1„"(BÏk ªÙIˆhA`’D@”!H…4AAH•LXBD8ˆ`A˜D"„ "H…²Ha@¡8ˆ(ƒ¥!IèBp¢ˆ" „2„Ò¹8ü-J°1aP$ˆ,J¹,AÄ`BD±H(TI+A(pˆ¸­&ƒAbR „%¥XA5(ÌЇÒ$ÑAÂ($OE‘ƒ•„!rD F&Áˆ!°D˜h_š§Z DQ(@aLBЄÔ$A±A#1)0#‰‘hŒ%€A¡ÄAJ$á(4#(Ä()ˆ”#D¬&BxÒA!ˆA!XÄ!:O0SW$€¸c(,¶ `B!2HZ‡D)„Ã…¤'B"cBdIÜ"…1JB‹†‘(Í(O!Á&DFô*“¬Ñ„1!„AV‚!xX"H‹A‹1,µ{ †ÄB@!A"@& $„HD„‚TIP¡@h,ÀAŠt„‚Ia.’D! Ñ!D %DˆF„G„çãd„LM ‘ÈI4("hA%ˆBXˆE‘h(„$ŒTh‚DŒ2(AhL¢XÀÀM`A„A($†Š„´Á$¯üH‰’A/H("LA$Li„A%1ÀH0‰ä‚±(CÄ‚ ÉF+AB…(QˆI–2ª"é¦ÁDJ„Œ0H ƒ±Rì%F4H‘$„±$‘DÔ4!  HÐ8…!ùHA)…"ƒ†8‚AE(„4BX(Q, !x‹’I†"D‡!„`! AôiðLB ¨°ˆ8@¤ACŒdÄŽ,¨ƒd (#A„1H‰‚”(C N8I4ˆ‰« s4-d¤„D‚I1ˆJ‰!(%ÈÑÓHJ¤A@„4$!D°RH$H@ÁYBa@b,”D I˜$—C‚3)/1 ‚$€H´AAÈ0)ˆ'‚Jqƒ’HºFD`„$‹@F 0Q… $@‰A4 Q8pƒ˜’€Q£(`‰€¬;ˆ!)ÔD$!#‚B*À‹D„8ABÀ‘FÑ€T!C@H(#:‘@'(’`„à!)8"(˜’‚HOCD„„HÈHAAEHHÀIƒÄ@”„„ˆ‚1XÄA•ˆaAN‰!FFÂI„†),™4HÐñH,ƒÚ¨A!¼DZ¨A‰!ñXHd)AÄC¤@ #@ €z!%"1B…‚$$ŒTDqC‘ˆ+‚HDDCÄ@DtR‚0A@ 0Â%b(>) Á(BƒÄX•˜…QD'A!EDâ$1 )‘+AR‚)ÁF)!B§`,…A!…ŽŠ„$‚(A‰ -À€ì2h%,d¢9A…DAAÀHa@‘@ˆA Q!ˆ„)Hd£1Š…$$ŒA†ADBGÄŠXF0„ ÁŠïG•O”ZYHXJ$M‘F2I ,’A$°H)A` ƒA‚FQ¡€AP‚#È-TÃADA”…DB„"‚‚MqxH€‚B $€!¢A „¡#‘ x(€ˆŠŒB(! "€Š H!ˆ „$°"((B(O2AKE"&A€‚€ *(JB((,(‚€€("€I‚h(€B@@82JÇ"XÁ³AÄLtÜJAvòT-#ñ#AfAh%É/qAa4qƒa€Áˆ$Šk„ a‚˜†+ÁG˜(!ÐZ²h$†¢‹D¢(„GIE4bv’8ƒ#á-BòÍxIô\(#…$aÄK.DI4%FtBT:£”c0HB(-"B %*AòRÊ'‚/™BâTñ1BAÒ„,!x:Á†V¡-„©½ØäA…„ÔAâ(JÄ¢†*(¨˜MÉcN=ƒsRxTñHFa…¨!Àa@.X/$”AX¬%qH²J!qBˆŒ"¨(Œä!.„$IxX”)84D‚…Â"‚L‚Ñaa¢LèH'A‹LÉøI³àçDv:ü);ÏõHhÏÇä‡ÖŒæEÑnsišFÕõ^ß'õkZ?6¦†»EH¶BuJójƒ±B÷FC¿¤ö#H~")ûÉÁ)j¯+Q•ù˜C7õ{Øþr.ôÉÈOhò‚‘ÍŸ¡úc+¸MAŸ¡þg\+#-!…ñ"§ñõXSñ;œ/kãR|YuÍùc+ÑÅüÄjoC±*³ŽôÚjo¨ù$G3ÎßWôq~Oô[Yôy}ß÷yM_uY|ò2&o÷Q\ï1÷Rs/µ–Käâ–öiR5ô*2+¡õAK¯$õrb=*?Ÿø;B­¨™*ó2²µµˆï%öÁù§‰´böá?ïÑZõjòJô‘=¯$áFöU8?’qºó‚.4o#wQÛ(çEöG½çQÏDô$e²;i¯Lñ&þÞ„Oˆø’,uâö¼d]Ýa9EúAY”×öI%×õem?§ÑdãCód,=/_å÷Hq«Æ¿‘ö!h²htkùc*—1ÿ„ôCJ•ô:c¿¡±ë'þã˜/)ã"òa*?…ûÃë=öxÿòaiVö¨…ߢøç|?žýšóß¡üÃ?”ýº'ߥö1¾"?†ñ’2.¦êò¨½ö\ç¯Wø_(Öö-eÇfŸ²übü+“¯é{”úˆŠ-ZƒûªE3ÒÁxøt›E«DƒµX·dôl<ÏÅòHO#ó"4OAd2_²õ~B¿&ö*i”ƒ´)öHyj=JùQŸ¤ôCZ”÷*A¿£â¹¿Ëø²¢>"$+Ž?¶õøÑ¯÷k(Iôl#ßáû®‰õC™¯4ùIÊ?õC¹ïrõi*¸ú²¢>"O(´fõã[¯6ñ,qŸ‚ÖtHõídϱóÑjg)Ñ.ñˆ/¡øÒ88óSp2åô:%OtZá6!ÇŽsÝŽ"AŒôÅñáž;AÆJxq¼Cx"ÄÁCòFÁ£á>–ŽsÝŽ2K¬“D¬ñá^#ñaLˆ7Çx2äü:$MÁ£á>–Žsß„á(“¬ôÁðáž#qaŒxsŒx2„ü:$I¼„>'“Hô^E‡âo•t(ôiË&·(ò„{‹&O8³(òÇ:Ÿ–ö„z—†®~—†®>Ÿ–ø2¬¿‡åÒú:QŸÖúAŸÖøqß–úaŸ¾óœs¿¦ó„³¯"óÅ{¿¦ö•û·¦úkø!Ÿ†ø3¯ÿ‡ø3ïïü;ï¯ý;ϯþ?ïïÿ«;Ï9÷«:O8÷ª6_¼óëj_½óëJ_ÿókH_æóiÈ/çúY/ë¾6õú®ëQ¯Ë¸÷¼¬ëYoÄA(M$CdBA*4D*U„Ÿ†Ô´("ƒôH"È«!Ž‹$ЈŒ‚rDhB'"„ªIøiX4(H‹"H‰‚¸šâ((ˆ(ˆŒ‚R„&D(B(BxiÈAƒ‹"(ˆ«)މ„((EhB%èò:ˆƒB8BB§À@ÄBGB7H€DˆAȃB…‚‚V @ÈŠQ€Á‹!0"¤à‚I"È‚#Øq‡D‘-HP‚HÁJ$Dd„!I5$HH„!`„¬D$)9ZX€X$‚!A@*Qà‚$)$@<$‰ƒÁ@ò!*B‚!„Ù$ÒD¬…d(Ò!%A5l…(A'Rd2ä% ÅDáDCÊFŠÑ$Å.BD!”%ÄbTA"†ÇHšh„$Œ%b%u£HER-(TBp$X)Z„!‰!AŒ#ä,ŒÄI(D#‰‚3¤AëШ¡$FÔ„x2(Dˆ?T?",R!Œ2âRq"ˆ/!A”"(%ä A%ä"‘H’Á,1!$ËD> oBõ"H«A¨¡ÁÀT8%DHâMƒbaNDÀMŒÃjVL"¦Ø#´8ƒN©h%ò›×p@D€\"@™@„EÈ„1ÄA•8„DB@H¢HA*,ˆ@4@˜D„‚D€hRÌ;Ç%H$'DB‰4¤h&’Œ(°H(ˆ$€¤ÆHİB¸•(€(H0HD„†HD#A$ð__Ÿ„ø¶œ¿…ø´œ¯ü¸œ¯ü¸œ¯þ¼¸ïü˜8ï8ý˜8o¸¹¸óÅšŸó„šŸáêýY,OâñIŒ/Ëy[ìËùdÏϹô茫aψºµ#'A„(A&B&DôAJ‰È£á(ˆtZ¨(G…&D„„ÄA……‚ˆ8šŽPˆP‚(EhB„@ðAHT(…‚<šŽƒ…(HˆZ„.$EØ=*„$C£˜HaƒØB-$tBHB,`¤`A@ÊBƒHÂ\PH%„„A-X`B&†âƒÈ$%T,(G¡,Ò$„#M„@b-H@8¤Ãøˆàh†D8HRXeàaI‡¤J`A%ˆHAA¥$D…ˆäBˆÃ‚"D‡D$‰“&…bA!!ƒÑ„Q‚€AB"Ôˆ"qµ2nFr8EÂC\"ÔBBÐR"fĄтFFD9b< BXŽBCò)Q@hK*¡&QBn‚ƒBÔAAo"ˆ,8!‡b$˜‚$"T„.‰¤BÅ,afŠ×„ˆ0ü¿ˆ ‚ˆ…$áDA&’RH!ɈTƒB@j„$ˆŒd„) B2Œˆä$CB4‰Á‚…(ÁB‡!€T(€@R0LÐTˆ@ˆCØa „‡d¨$E"tŒT"$(M"ST"XK%èBh!&ÄHZ(Já¤äH6ˆ$ÂH„*¢((!ì!*âDÑD¢FL¢!C(d!2)±)A*Ñ"Á‚"E¡.REèˆÂ4hƒsÈ*Q„ä 'KE!BBBA‚²rH‘‰4A$!!BˆB*A’B…HR‚ˆ%ˆa„ˆ@2D‚0ˆA…„ˆ¥˜„€ò:ø¬RH'DTB$NH$ˆ@F-C‰rH A`B€òxˆ"”„`ˆ H!@‘ˆ!ˆDBC„%0 ‰`ˆoKH(H$k!!mQð"ÀH"a!JÂ(/DòaD&Á%¸"z#X(Š!HŒ$&BXƒ†(5ƒa!°Š’8‰a!@"ÍŠ–‡ŽŒR„HðˆHŒˆÁ˜2â9sÈ!@ˆ!Tb‰Q,H%d„!„`¢`¤pI“ƈ‹/$á!"À((5‚„Ђu‚ÈB¬$‚ø"ˆHA’‹Ô†DèD8(Є`„ƒð(Þî˜" bN$L!Œ–BŒHbE‚bAP¡@˜"†ˆˆ!AIŒ4(Bˆ…ˆ!A2 ‘ˆÀ2a‚ˆ” ¨‡ˆŽ(0/”‡H!A8X5Œ!CD˜FJ(rÁJÁ( Q*á„!";$$¡D°Dd!E8!ŒA!$ØHB“H&¡(Ec(Á‚$„>ŸI @$„L„$€hD1D&RH€@ÈAAÁ‚@@A"ÄF!”EÈ$BIAhC¡ƒ—’AˆA™‘€DI,2LE˜1Ñ"Ç!Ù‚BB‚A‚B!BIHB¹H”S!E‚!#HØÌ‚Ò(xÀ!!‰&ñçµ4N%ˆAbTFH2ABP…H,1T„BL8A…$aAVBd!pD1B‡ˆ §Hˆ%DLÁÄ äE4! ‘„#:d3ÁA'E4¡EBœAb3AD`E#QL‰¢a`Iä1@MŒÔA@D8+Pˆdˆ$%D¢Ä R„†A‡¢0…rø'A`!'ACá!CBpD‡!H”L‡BG"vŒ‚BH1* ãA`5 D‘!,„$ÀEriA$T$p*"*1„BD&)BÒ437$P(Á$ƒNBD¨J‘#…Q‘E!Ñ‘B‰p’$"(@tANAŽˆ$8ƒ‚sÄј€Q-AM˜]œFÄ$ƒr¶D$EH¡!EòÑЄ8ˆ„@jD!€Db€@AŒA‚Q!#D#!ˆÀS‰4H0D0H€tD F $ED,4*ˆQHE2"ÀM‚8„]5œ1 D! €B`„¢B€€! a!‚@†$$ (Iˆ€ˆA(!@o? ” DHA„ApdCB#D(€A ”‚D$!D!,„(€’‚("ü4„!¤EO%!1JˆF’N…”EôM3¤N(QK%ÔBt<4€…Ô6T„(,ƒ‚¢„‘D$ADÌÄ‚0•£T)ˆ]‚ˆ%‚DJø$/Ev$$bH/+h#‡’4§D¯¡òuF0U.qA(S‡H6CÁA€Q8-RAEáRñYqQÚÁ(ÌÑ!áEáAâX¢!ÄñB€DñDÇIE ”ŽˆTTg:CQ$ASá1¨¨ª±!bÂ(³Ra*ÑBq"2*)’"M>ƒRS)AZ20JeDÒ$4AàÑ!¢h„F8D'ÁJ’)¬a-q'*C"T-DÄ„ŽÌ‚±‚¤L‚‚H«¡åe’”E–Bod-ŒDÌ(ÁM$DOHr(t›±ôW¯4?ÁõT/1øZh}Š%ñÂCï„T…E9o¥Ñ"Ñ·ôZ/$ñB1‹È#qDUMÝb—ƒOCu&÷Z_µòrAôZŸÕÕj{Æø2?´Q§^D½VŸÄ8V]Á¿ôšOñUÑGl­jM‰/ø†µýˆøéùÑŽohx‡ûFÌW){‹Ÿµlü:$K*_Sø²‚ojø¥”oj9še’:Ë2ï3:™=?…ÕôõQ^B7¤¼ôJEGt%ûòG¯¤ô¿ñz2;AxIqLòFRßcó;--Í,õ[>=ÏuñT¿Áq[è+ú$"/1qÚÃñAÏ%uôAI•ñMÓ_MÁ[͸Jä(X¡Èý\GDž¿añ‚†/hø‚Ç·å/øøª³ïR¾u6LÍ$Ž—cò¶¶ëºhøŽ‚­…~*öTa4Ç4÷´_ä÷VK¯4ôIK¤ôBKçTÅõY-/5ñKrÿÂöwÞçU×DÝH_”òd!ÏSò|{w¢O”ôX³ö3zOtJ½]òE¼/hò4MUEU/ÿ¥Õ×ýAÇDŸÔøˆßÕ}ñJN-îOˆ<‰‹?üôBLÝ•¯Ixßþ–OHøÒD}‡¿iù,½OŒýwaÅ”„cø%·Ž”o+ú–ºÏ¨‘‡¡K¶3Å×ï1ÕÌõWI?”ôHA¯„ôCIw„µÒ#ñaLÔ”ñH¿Ç÷7?÷UÏTôMLL?6ò~7ïsö9.K=¯5õi|³×ñ\gc/Jú"4OBqÙ<ôO=^ßÔÔÝÔÁùÃÿñT¥ä¨\²«ˆ¿ØXåÜñ”ž†Gaž‚o(ùKß<øœˆ_ÃþTA×DM$D/9¹¡û”†/I¹ˆ™+ïòqF 'CE¯CR£Ñ6íaÅòˆsÕê(Ó$ñÅ*EòÁ(î9ÆLxcü"„'C¯|*Ô¼Ô>>MaÍBŽS_¤â*ôå:Eú…ðá'ƈ7ÇŠx2ÕZüzdíÁ£Ñ~ñaÍ8WŽ2IøÁ:]ˆ¬ÙAñá7ÁÆŒxsœ'CȯK’Ä£>\?ÜýCŸRñZA—R¯1ÖòAŸtòŽS"oxÑ(òÇ„òÍÄÿþsAüí„ø{?¥ñků1ô+ů±õ+ů±ö/áïµÔ=ö†_ß"ò–—Ï"òÇ_„ò•[WÄÿúõAL_âõAŒïË|Óÿ.Œ¯qôꄯ1ôê„¿1¶ŽúG‹4ï98O9™8_¬ýA8O¨ùA˜¯êAèbóAˆoKúSOKºõ¼¬/!õ8„/!÷<¨oqõŽ›(A.DBHðAH4H  ˆ#å(!"`B(a&$ðaH´(ˆ#é(1‚ „dBAôAÊMA…„€<’Ž!‚ (Á&ü4ˆƒ9F#œB‹3HB!!B‰š!AFÄ*& ¤F†U(DÂA„!D1!MAƒ1BdH$4„ƒAr"Q(€Q$E´HA4(`Ä–4+&RHXˆ!5ýø»P¤L%!1B¡œ!@BH%‘(IDTˆ&X$B™D…DPBqHPH!@H!ƒA8$Ð$AÕˆ$‘$ÐHD´˜SJD‹,A-½á9Ø<¤!'$FÁ¢Ž!'a¢BbDòÆ(fAØT2Hò^Ad:DøÂ"2H/a!È„ÐB5¢N"C1EL4!¦t±’Ò,xAH"éŒÑ'¥*¨( AÛ®‘I”$bð$!E2‚‡!B)âñµ¨ aÐH’H(Á á"4(l!T!H€á"<F2BpH‰)­$„aX!‰ D,T‚XH¦"Å2@æŠÂD8B„H²$Ø„ÁH’QÈ•CDê„—$!BFøAT(/‘*ó¢ÐsÂ/8–D&Ñ„„Ñ/ä2TBeâˆá´'B¥$å!(‘FÀ¬3ÔævÁHAŠS솘(IT¡*1dJòAZŒâ#¨Ø‚oB褊Æ$H‡'!D)xÄ,5¡ÂitoNbA…H‚""D2LBHBPˆB &$rH!(FH$Áˆà(†A,(Ñ8B,(…†#ÁP!CáDBÀ$A6È'‚‚€b|=„0( â#MB'"„"Pb%HˆR‚!pD³H†X(”lF„B(%NAà!DDˆL@`!@˜(Hù?‘$\(XBƒR$"¡ÂI)Ô$JR$‘( „=HkRL!·B‘ÂB€ÈX@""‘X‰d,H€4Lƒ…A¤H ¢‡”!+"ƒf‚°Ä*J!(B&6{œ"œA""Ñ¢O$%Â(D(-„ „pBH(#'„Mr‚I¥"ƒD”H#!°ÚC(X@)$rJB %(!(4(‡BÏ%@$(ˆ BP$`"N‚A`!‚°HÑ$ˆÕÈ$JŠ ‚°ˆD’AF%hD0€4HB¡€‚ÄJCˆ&(%² Áœ6Z@!A%AR$‡@%D!TA(DDC„at"ABDá•$…‘bB04BM"LÁ!()dC0""ADdCAB*Aöh"DXH€!HlD$$$A$A!A9d‚IB$AD(Aà!’@$À!$@D3\ A$4œ!HH)Ô„4"I1EQpaB$B4!M¬Á"&e‚Td !RT€´2‘IR! 2A%D!#RF/u@!Dr!ÀAID…A4$A,„BÑ”(A€!±!€6(À!& DU@D“B Á¼ÃBR!4€‘AA…ÅIT!”@A°!ÄA`!PA&ƒ&%D`r!$LCÂ$%A!!$€5dð’•@$ƒHqŠ!APP1&˜"A`AC”HQ"A4!!!@°$$#W'DOa2R$!$DBEBDR@Æéƒ‘Ah%0%BCÁ€¼H$PADBDA(„Z#Á‚’A(( #p"E1"I#fbA`FDUAqOAfD>Þ£ ˆBŒä"H$%²D’D@ÔH*ADÍ!‰"²(M!€!’!(DA"LDÇ!$EIIb$@$°"s¿§ò:k»2¿÷r!.%ß”ÔýõwTov÷L^OF’U¿´ó‡ƒßÃuCsú>)ûVwq¯áóio"ñ?äôINÕÓòhíÅv%Ý”ò$¿Ãò_6õ!_%ôõVE?et7ôRTw¦OañEõc6v÷eoü$f]aO"qu¥sKV/AÒ&¥Jô!cmÜ#ƒ§q-Y¯„Ñ‹ñSŸ÷bQ§”>{«7#ñ""/ó1i?ö1f_rwtÔA"ôDDï·õarÿ‡÷cgÏ´ñ¿ñ+;²÷E¿ã²òF¯ÄtOù&+ÏôAhÖO’r$ù?>{eWÁS$±ôASO÷E2=SoesÂ$OBã!ö1cOu÷"';fTôDeböRw9óTDO'¶B±B¡EN&o&ô+­p2äv:ôFA§6>VÎsÕè(ôÁzUòÁZfòáÞ+!Æ|sœ'Cü:$Ï<œ>>Oü„{ÑO(ôÅzÁ_¬SHî{øa,Løs,„/Aâ|:ôDÁ£ÁáãÁaÅâ8×â(S$ŒôáZðáÞ'AÆ„øsLˆ6¤Ä¯C²D<+äãñDÂóÁ4?3ôx4?‘ôX/1¶|óK&ó„[¯'ó„¯#óÅZ?‡ó„RÕñ¬V•®f„ø2Ö7…/sûA¿÷ûA¿wùaÿ³ûIÿ4ó„[ÿ£ó„ï!óÅ[ÿ¥ò…÷¤zwCü¥7Äø;··Å?sÿEÿwÿAŸWùaßû6CŸó¤S›5O8±óå[‡óÅS‡ñåw‡n÷aˆoGsùtô/#ô|ô+AD¼¶l¾ö¹Ë (CbBB„ÄA‡‚`‚ˆ/Åá(EŒdD@„RŒ&„ÄAH‰*‚¼2â(‹" ‚fBCAôAHMA‰d"@‚8Ž!(CcBÐáQ‚‘ŠB !TA"H%AXÁ"#‚BDB.CˆS$fä!¡.Œ$ÒAbH#ETJƒ1’°ô9I0’PQ‚@.D!‚0!!‡" "€A,A‚€pH ($€,¨€*"‚1h°!>]@¤A0/B((©Â‚ @”B@P‚"ˆ$ŒH`£@¤ ‚ðéÙÀ„h€"á$A´FÂ#ÒÈ)a‚J3H,3€s‚(4‹HN2È!ŒAŽ(B|Bô"H,aÁ!*Hb…*1Ä€A¸fƒÅRèBˆÈ˜2°(j2ŽüS0‰82 $#1D€¢!&Ì(B $ëR(ƒJ „ˆ„E²HA¤€…‚C$&ÈD(L\ ‚E(!É(0ŒZ B…€5%„$!‰$Bà`!„तŒh$! ’B"Ь„L$$Á$…à„aƒ€"(B²(£¡B‡ˆ ˆ8އóˆD„(„0€ˆˆ¨$„ˆ„@"0H( „𢥀$ …„"ˆ(@¢€„B@PˆÀH„(„…B€ ‚|3(HGB(Á„„Y„@F¯(¸ˆ"„GB(Ih@I„@ˆ¯(8B GB(ÁB`I„ b‚/(Á¨+‘(p$„„øBF„f€$(ÄA(ðˆ„ˆ(‰Rˆ&$Á(¹HÈAH"˜ˆ(1HJx(xh‰$ÁA‰B(…Ș2(1(…"€.„€ÈM#`„‹"K„ƒÀh„8ˆŒ²ˆ8€€(¸8„H„ƒA(ˆ¤ˆ#H¨"A€ŒtA ˆ#€hˆ€Hðº/€´,R„(B„H„„Àˆ#ó‚ˆ#AŠ´,Ÿ„ÑtÁ€<+˜£A(€’DËbC BxAØtIˆ'+š#Cˆ€´$L (K"A`„@A—„ Bˆ¸‚9„@‰K"GˆAŸ„!„°Š96„°$2„ ”A—„°‚9(K"C Xˆ‰$"€XˆH‚„ "PˆH°(ƒ…ˆd‚"„…HB"… (@€€@„@H¨„ˆB@Œ„€„„  ‚p÷„@$€*ŒÂAÀ(„„€ &( 0„è„„AŒˆ„P(ÁBHŒB"Z;µ„„„„!€°"‚B‰¨!„ˆ((!'‡BDPˆˆ‚À!A ‹AH  ôž…„ `„H „„((@Hˆ€…ˆ"JŒ€.ÿC R€! Tˆ„„ D€@„ €èˆHÈHN!„ „" ˆ€„€"@€Høã €@Š ˆ„H„ d„ „*„@(O„€B„ŒÀˆ‚(„„À( „€((;š€("„@@(„ „( H@€ B@€ŠOœ @@„„ƒ0H !8@‹AÀ|3 BPˆƒ€€BÈH…(8„Š(Qˆ*‚B„…HHƒDˆŠÈˆˆ(„€@8H„Ÿy „‹!„…€"B…B†‰H"Ž€b„ „Fx¨‰ˆ(8(„„€‚"„HBB‹ˆˆš"¼#†!„(ˆ B… ´HAH(ˆŒ1(@„B‚BXˆƒ„(…HH˜ˆBˆ r×”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ0à(€&pAˆ#Ž(A`B„ÀA€8à(€&pAH€øô=€"HŠ"HŠ"HŽ5#„„„àñJ‘H„,¡&$”H„ŽŠ`B"ÀA‰Hà(¡&$”HޤÓ,8`B(A8Aà(8`B(A8Aà(8`B(Ah„à(ÑkIÑ€/!á((GB&”Ô€ø’Ž€r$dBðAIAˆ/)á((GB&””H€ø’q0AÀˆ#`B(A8Aà(8&„ÀAŽˆ#`B(A"ÀAFŽé 0Ž"(A&HpAÈA‚ˆ#á( ‚dB€„ ˆ8Ž"(A&HpAˆ‚ˆ/?zˆŽ &"ˆŽ &"ˆŽ &€ˆîSÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌ„B‰Eˆ (¨ƒ2 &B b„J„„„$¥H„’˜(Š¡ˆˆ"(*†"¢B ¤DRNH‹D†8Š(#¨#*‚ ‰$"BHHJ¤ˆš(È´ €¤DH˜¢ŠŠ(! &„@H‹H`„H€(¡8¡!""(*$F( ˆ A’ Š(*‚¢(€$…¨Dƒ¤HÈB ?4‹Dd€$Š£ ¨#*¢" ‚jF舡ŠÝˆ)ˆ¨ˆ( ª "B"(F¸HÄHŒˆ¤‚HŠ)  Š© *¦b*¢DH(¡è¸:ÿ€  !"("*BH‹A€)€¢‚((BH „…$ "€‚ˆ(€€‚ !„!ø¯XHÀŠ‚!!¢) ¢BJ ÄÀHŠˆ* "€b€’(ˆHH‚‚ ¡€€€H  à74ŒX‰‹ˆ ( "‚Bˆ–€Š €"H„J Ĉ0H ˆ:" 2BbH„¤ˆŸÛ HHJ !Š(ˆ B€B DZ4ˆ‚ ‚€‚‚"à„  J!¡‚ˆ€ "„BJ„$ˆ!È¿ã@„ ¨( (( ‚@H „!J)‰( !!‚H( $BˆŽˆ‚‚€ˆ¨8€H€Â(HNH „J ñ7uâB$A!AA$P$&ƒ"$BIÄH)$0"((@2"","Dè„•BC1€Ô†!$@•¦B€˜BBEÂHÀH…¢$O3?ÿDD4‚R$($R$B$ DB#1()!(!@ƒb(($(,L"FBH´!°MB@,AvA(0Bƒ‚t(”B A‰’F¿EBPˆH "€„€‚$€H"*" B BHƒ!( 4  ˆR<6ŒŒƒ‚䤃‹)R’ˆ2¨ª¡\Šì"¶h"؈ÒÞH˜nHHŒˆ¨…’š‚¨‰¾"4Xb‰bŽ(‚‹¡NÈŒŒ¡Dà„®!’Š¢(¨X‰¢(J²X"$´ˆ£B£D˜ˆJ¡N¨ŸˆJ !@bˆˆ¤*ˆ*(8H‚à„ *%¢(:*F¨!HŠ¡$8‚˜B æˆˆ ¡Hˆˆ*„€„¡( ¤„€á¾7é(B2€¨ B€(ƒ ¡–(N(HJ‰$" ’¨"2H((€ˆ!Dˆ(Êb(‚ A‹B"‚ Xxˆ€€‰òæí` H(˜*Œ‚H*!ˆ`„R@ˆŠˆ"(¤ ‚4( ¢Hb0H‚H€ *Šb°($‚(€Œ$ŠˆÄ‡c 4 ˆ€ ¨V€JH ) â Bˆ"ˆŒ¡$€$‚¤‚’ )Hª”ˆ" (È€‚" H¨Cà•`"F( €¢¤B !Š$2ˆ€3Hˆ"F(!(`… „B Jˆˆ(ˆZ"(ƒh@62DRH%$P$"DY&Á$¹D@ñˆ$%!&$A`B,B„1 ˆÐ$A!A"‚DD(8‹DAÿÖ „)Bé€H"#f@)€(TŠ"((€$IƒÄD‡‚ª¤DJaAB"€rˆ$žˆD€ 8D¼:¦DÑHb-H%ƒq$$M"(•òD!LAƒR"'B)Ô)Da%ØR8EAD]D€Á&@¡)!‚MŠ"‚At‚dƒØDธ$?±Ib‚„„"Hˆ€!„( "! DHƒ‰‚Tˆ`‚0H dBBL !‚À#S"(8("€AD@€ÀDœ#@ˆA‰"€@&D(`€’("ð½×$D*ÔˆÄ*a D$Â"„ñ)!JB¥¼B©"§…¨ƒ¡©‚$" ‚Ãd‚…˜¡L%*ƒ$1B-FÄ6ƒ @ªY‚A‚$ C†„!$¡H€D8z@‚‡$…$$„#H41#„Ä$FÈ.„JA HŒ‚H’HEX‚I0˜^…bF „ `AÀt"„AL¡BŒ4ÀX BOâDB"a "„!(d(‡ˆ@„$À„„ŒB…‰!D-8Â(‚ƒ€ˆ.rãÌB”$)b$AB‚BE‚¡B1fG&„V.D"”!¤(IM2ÐA&DFˆB&!¨0"d*‰aBL $E$³H!)$_nÄA%HH!AP¡FA!$Bˆ$b„¤"$E@¤B00$‚¡!„ApLA#„D…$AA)0ƒÂîCIEzA Â$…£!%ŒtB‘BEC2D&O†l$ƒ¤I’$ ’$!'B"0"@¤FDp"2$A*&Ä(!*$ÐBŒEJ‚’BÉvÂB)òí„@(ÁH@dAD…A(VrHQ()!”@xDèˆDAX)@l‚‰0*†¤!Ä„„’ŠB(ÁhA‰A„¬1ÃC‘DÁ (ñFR(`”FÈH+A£åD¢DB©$±Œ¤,¨‚o"²ñr‚‚*lˆh&„æN¤—(!(‚K"*±¤‚aH.¤„ˆ-„B„!â‘ HUÈ$€BDA„!…Y"1Hh`„M!$JD²RdB`RLND"$(HC!HZ„„–È„0+ŠC±‚cŠ˜„¸DM‚€‚AÈ9ÊDt(/$„6H"Ã$Æ(A,¤RbD,VAf"`" ’‚C)#Â(aFRŒ(†D"#ƒ"2(ÅBD$$E‚""€ÔD6JH#Réô¡Úp(¢DŒ"6Af ETƒr!±$’!C´A˜$€!„:„ˆ"#¨„¥’ª‹"¤‚„#8"††4‚ˆÀ¦Âˆª`$И!D¢TPd€(€@„%@D¢#(À‚‚ "ÐbF @$DB€‚$0B %„Ê€‚I! A€¢L‚,Á@Ä" ($l<„¤"…¡$ƒ”*RBNqƒ„Ó$ÂBEá”DèÁ$&!Ba„“Ò"´„ÊBKMˆ*¦!%ò¤"mRO1øÄˆˆ/ù"H"bn„®ü(LB”‚(0i˜¨ˆ.¤ˆLȘˆLh* ‚¾$i’hM²†´RBåMò$R¬T$F(´ARÁ$D%dB)¢!H‡hnA!FÁAKD1LG$O„¤B,â$¤bNÂL(¸‚R!,6HNf!«C”HH‡(*HJÂ*"Œó„%”„°J”‚á ˆ¡ØI"NF¢…8¯”Åt±‚r,h"EQ!MUÇfFÉ\œbB)""eB%²b&‰Ñ"²8¦C𤠢ŠR"Ž|&Ä$ŒÂhŠ'aB!£(#‚‚ñˆ2MO*Ò$cHIAŠi")hJk‚a üL…4£²òdAµñK;aWBâáô÷f«#Æbbw‚/•TQtóCÏ–ÜæBò=3ë2Ÿ·ö1'/bñJoÁboeõXL·´Ã¢ÎŽŽ¶½sãébìiýÿSÏ„?Lü>ÒÏ…æÃ&&ôEš"M$£bá-ŒïHûUˆO*z‚\ÆO#ø¨6‰8"/#ò4†Nª/FõH^BO$´Bódz4;Ìóe\oæöMBNX/¦öMf7æ—ò=4/Bò"2qßÁõBM½F7³cvEù=$÷3bßó%â’^NR^JNoÇ·ú¦ÿOgò¢†;"/9ý­î¯NùÊó;eO†rlôèr+ýO„s6îêúŒ‚'£cr4âÃò4cò¢¦KЇÁeØ*óŒ¢#ˆ¢¸/kú´tOÊ÷ffMBZ¥T/&Öäö}çð?6Í?çÕ—ôRŸ¶w4ûwHÿAò:6Ÿä³&ó64/sÁíQç—OÆü{EÏö,)OÂs÷qß²ã§Ô¤õZR¤ô$(g¢obø‚–?ìÒ$ú¦¶?Xþã‡ëŽï÷w߯C’LÏ‚~üÊFãò8:eø¡a¢oÁ¸®ñš†Ÿåò¶4-„gad¯AóмOÂy6ô,$M„oB¸†óÂVÏåþX¾ïŒõJZ¡ô|:o„1|=¶ß'ô8oo”ñSŸ%ôy{/”÷'<¿Vór&O#ò6$/RsSò_x¶ömdDr-Ø•òu½uß7ô=l/„ñB§!…º:ÒlöÂF/O¸¦ø$&ž…ÞþâïªñtùßEr(ÔŒòäÏföj&éq>þ‚˜/¡qÒ¨S‚/‰û*´'#O#ò¶¤oHù’ŠÍ‚ïÃø².$Í$GBOHº”ù&Ö-ôüR­Ø¯¤õXJ¥÷"Yk$p2õ(A¯SÒtÁ!çíaÅó„s׆O(s$òÅ:G„_¬Cüá¾'ÅĬ7Ç?Æx2Ôþ:DÍÁ«Áãñ,aÁŽ3Ï„ò„2Ióá:M(_¬Ãîy|aÌ„?ÇúBŒ'C¯R|:Ô<­áë!íaÏ(óˆS׬®2G(¬s„úÁŽîy|aÌ„7Ç+ƒ'C«Å¯CžÎ£±Z¾Ôr<~=¯5ô:¯ô:¯±ö>1ïô3Ϻõ<2o8õ<2_¬ñU:o¨ñU/êóQ,®>Äü2¼?Åô2´¯qô=´¯ô(”¯¶,ú>AÍ¢oy•,O8µ,òÅ_„þ¤WÄúsAìêñAŒ¯ÃøS/ÂûE¯CùA¯Cùaë±ïÔ.ûŒW"ó´S2_¬ñA:O¨ñaêsaìjóaŒ/CzÓø2„«a¯G¸õz„«aë§oA÷Ï5@DhA.D€HpAÈA‘°A‚8ŽH!(a.D#!HpÁÊA‡*N"à.¡#ç(¡" ‚ 8A.€ta؈#á( ˆDˆD(A&|*ÉÆHÔD‘Jð$&’A(MXE(Ä:AB#òB‚i" !EÈ"K(‡A( h"D"Dˆˆ‰‚hC0$,1¤ˆ6’&""#hC-x0‚@Ò—ò¼4CTIFAŸ$BÄ)%$AbCXH4$A%8*!bA$(++‚I‚6(†´(ƒbb@$ "ŽˆI¡"D éb¦))(„"8G(Œä" $!"£^BB(@"(¥ÐBA,4%h(bT(4Jb4!D"¦D!BDQD ""XÀ ‚À‚)‚8D‚DBЈ¢Di ƒˆLò;1`Jm‰ABR†P‚TA.ÀUX$A F2T!“‘B–,(AÄ"DBLA D‰R„'D-"A#ˆL¨ƒòˆ`HAA‹(-@ÐHÄ#Ñ„(˜B„¢_;8,B@ˆRâÐEr"2!…Gt*ÄALt(a$ƒÂEDKòA,òHCAC!2¦Yfp„XADˆ]Bƒ’*h(†!hŠ*èEˆ‰TD£ EM‰-°ó¤-ˆ‚ƒDxÌô·¿PI,%Â!,Pƒ !$D" 2€8!¨@D ‰4HAÐ$L*†l¤( DHÀB€,â’?B„"HM$X‚'Ð"x‹@A¤@*ÂLr $68B#ˆäA…Ä"`!LA(ƒ4$(ð ¢$ÎHL‚(o_`‚&,4ˆ€‘D!Lj*T…F.H+„¡C,†‘H  ""ň„E¨HB‰9(ˆÑ(&H¢H…ì(D‚aH,5GˆPˆHCˆC"1H(ˆNÓ (X@BHªA)AÆ€Ü"!XAH„!Ð’‚4@XB$D$$L&ÈD„‚Cb¡Œ‚R„Š”$¤I©A,<LLˆ"VH.ˆNB b‰oß"ŒÁ( 2B&hˆD›$B¡–K‰d!H„#$‰ Â"(DÂ"…‚©AÂ(@!Š0 AÈ(Fˆ8À™sA‹D!°B‘HA%"”"@RHA¡H$DJ’B"H9t$„dH$:+d`‚(H""€È(E(ƒI(ÂÆ€„„AªC$ ˆHð&rA!B!`B±"As!fQH€!HX(I A(‰Åd)„"Bˆ(A!C!F„°‚%MÆ“P",hBB-$@’H!A4"B,¢B D!FAÁH(!E„ †ã!h"‡F‰""ä$(,Hâ‚!""¤ˆI2"a‚$‚IÎ,„ˆ$€ô>@”E1™$QH"$!DA#A4EAçD°%C¤ˆAˆ"$ABAAEq4G(pDFE…4"AÂA#! $&Fh¡¤$ŒA©ÓF!”J„'¤`"MA&€rDJ–(HJEHÊ$<=B”$%|„¡ ÁCO(˜LÒA‚vA¨b¨&)M"CÈ" "Fd(@Àˆˆ*ˆ„ˆð†é…$JDFBBê$tLBBa‚H„D’B,ä!´RÔôBh,ÔR¸äXB"(BJ J(½D"@"$&Ž$ ®%A%N‚ "¨‚ HÔD7·DN"Fá$â$„rH¹F)",„jDDD‚l‚!hJè$²""M(ÊL!B$rˆÄD!+D ¦E"+„J(% ‚±D$(¤AHJ#D!'BJ#ÔúA$BP%J&bä%H4"!$Â%&H!r$1%Ð!"A’8BJÃ4((%àB€$T„!¤(,EB ²„0²’BDØ ¹$ÈBÁÎ"¤ˆ\9rH6à!ŒP‰@B$‹Eˆ(H  B"„ˆÈ„*… aB€¨ ˆòï› rHT„H(B AHN!"  HˆH‰€ ™ ˆ‚‚„"€|<(%D4LI„Ä+).+Fª"(,Ÿ‚†R+"'D‚Ôñ"Ñ!‚¶A!Q‰+fNBs¤¤z»)aCì4DÊìDFä„´ˆµˆiŠH'ÆHk4!J2&ªã!ª2¨Jñ˜$AL-‘Hf¤HZÚBˆÖBÄÔšdˆ(+H[Š$;TB1­B«b™BNBÌF‡!%FTB„«e9J‡‚O”t$(t#Â2'6¦!!"ñÂ$^…¨LB$VAª("”AKh¬ô„¢CÂB€Ä"(bLõ‚DÈä-”-D˜ØKXŒ"”BCˆI²„ä(J"á(Ôô)ÁJÏ‚ÖtQ"+ENBËD-Q$Aƒ’BF2GLdDHD(ôILDdt'B,ä'ñbQ…Rša9$$,B¢Â¢BæB2!JRA?ц‚Aβ ø‚*ŠœÔ,a*€q‚¤"‚‚"¡„«Q„‰x£Fñ*c¿‚ñkJHoôS8ÿgörd/÷ônk"òa&6_¶æ–÷b5ç÷>O„úrIÜölKeV|õ2=CoµõiCu"õÖo»¢øa<%ÔªªJNåSž…;AŸÄ|Ÿò]r¬øêDFä$ô+eODädbikÜ+9È–o„´ÚäH÷TÒO,Ä„/DæBöæÂO"ï®òbÄFìfÿÔÒ+ÄONêÝ?Œ-knj¥÷W¿µä$ôj:D÷ayN#ÿæó6'ƒ+bÿòöRf/Çôc{¿´mvDí6ö[S6öfd÷Q%÷[Ÿ¶óVv?7ªþ_Oû’¤#Ó2öåänåîäîöDaOÔôÈÙ¯¼½üþ¬ì/dÔ$¤õbbOdä.ˆÿÔ„/Kú²¢ŠÿÜ\/LýòÒO,¼r²$vD¤Ì/,²äþ¬ä/äöÄÚ,ýÂîOjõÑÅ$¿£ö1#ÿ¡ñ[X+Ï7÷grFõ"4?Çó4oBòq~?gö={ïö%§?×ò-(Oò'n?ö÷B]27õDB$ô+{w_&öçt?göa.k#Gblò#'o2ôFãfüReSÒ”ñ‡D/VtfúlBnbkD/%å%õdBkboOýBf.aoCwBþˆÆcµö対~ödDKDoEý2Do,øLb-¿FõRR^BFòv+ƒÝ³+÷c´CôKZ¿“óR!cöQgã’6OAó2&n4Ý;o³õ|qGò(,O–ö,+ÿBöxoo6õde;D/¤T¿æ6öfå/^ÿr6O#ó&&lÖrôç",üçCoFvaÔøÌì¿fö,jOd¶BôBR^R~b+doFöÂt/gñ4²oKû‚t¥þÄRkõo%öHLndKfKöOMóRÆO¨ôdÎ+\/!å,ÍB+xü 'S.A¯SÒôH­açV,Žs×&Ž2EòÁ:SöÁJòá–'ƒƈ7Çjø2d.Á¯CôÁ¯ä>>aÅã8wmê(ôá:G*¬Q!î;Fˆ?DzSø2$|ôDÁ«A/>/¶Œâ:µMâ*2„®3D¬%øáž'…ŸÆ„xsœ’'CH¯B²F<+äëÁ-÷“ÞQûIÏSñASñaÏÓóVIÏQóå[ÏCó„SÏAóå_Çó‡_Õñ£6WÕjóE­/CûW.>”qô(¤1ô(„/1ö,¤5ô,¦O>õ<¦O8õ<&®ñe/O(ñEN®_ÄäkóM/CxWü"¤oyöj¬o1ôj„/ö.¤oôn¦o<õ,¦o8õ,&¬ñM.o)ueú¢6ׯ®v_Æø2ôÅò"„ïeöjŒkY¯F¸¶nûaÔ !XMtÅèBÂDÄA…,A<BK#õ„˜(IM$A&H$A$qAÌA‡F@¤*I8rO(‰„M$A&&.ðáô¨àH„“„«!O()‘„„A(M$A.„Á.ÌEa!KDÂH%Ába(DFÒAbD3Â!BBQHH¡‰ñ$HÀL‚DC¢-$L"$’D&ˆ$9%>B ‚2¤`H(a†bD,@"-ȈŒ„ˆD?ò Š—BB(BDàBÕl„E‚4„JBdCTH†K‚%¤C0$C*˜C2B(!‚cH$ˆÒ$L0‚A ÀÂ0X‚…_X5(A$0AH#‰Ø$,,Žf€2$`B…a"A%0A)2I(D!QAƒó$AAAHaˆ$0„Ð!1TAD!2HIa$ $ðÃmP†€Ä!URAŒh‚G@AD)aƒA@Œ‚ABèAL$dÄ""d0H"DX$ƒ‰‚)È$ƒˆ‰‘B0HAƒÈHð$¦BTH¤D(=*Ý$†‚S"(d.„†‚T(Ä&Ç2"E)Q(+BÔ("PBR¤(a@ÙDcB‰N‘€h†xˆ’‚,¸ÁAFQKDЂ”H$ aB¿9¢A"HD€ƒV‡B$„H@#„ DABPA€‚X4D!D"!HƒAÄŠ$„F£#ÔH’BDA@X$ @BHb@XH8$FÈ$)oˆC $0A,"@TD!ˆDpˆHƒGB(DÀ$¿ÇG‚:T¤NL`„Œ„aˆFÄ,†¢A’”*€"ô(LjD&ˆB,áB)(Qˆ,„"â#ŒˆÂ4H"„p(ŒÈ*)˜„*ØJ £)ÑDBØ1H!EB„‡!F(B¬!)‘I#²ŒA) 6&D€‚Ñ…)'(P(J‘$°„‚”Ä(D„(B 6È`-EèÈ FDBHD$ÁH $D…dÁ6ˆ… hŒH€Bˆ’$0PˆBPH"'`‚R‰„(‚(ˆ1H>cƒUÔ8B*4<$rpb„TJsH„DXè”E ÀhA«($W„-$HEÈaƒDÔ$Œ$‘È¢ˆ<Œ EMH ‚RH6ƒ&ˆ¡D‚&,ñÏ´€œXA@H$ÌD„(+AŸ„@BÀ$‚œD$‚*N»L(I„€ƒd €ñˆ ³(‘QHŒEASÔD¡D…XÄP…ˆÁ!‹Ç40A&¢$N™RD qDX€Fe„K$IÇ‚(.´ø‰„A€ˆˆ1„E4H‚°A!‚¤(‰!ÈÈOšÄD6"A@H4A&ÄABHBDD€AˆDÁ H¤2F¤”ØLBŒ±‚L$(¡$HИ(ƒì"?³ e‘J &xHˆb!bÅ&ˆAxHD„NA!Dà”Ô(´È"Ht±„!ˆb†(Ät(h1 Ac$E!䆄¨€¨ˆÊ„ЍF"„b„š …¨,ª!‘F¨)"ëp$a*D@ÑBB)![D„‘DHÑŒà$aBpA¤!‚€8DˆOÁ¢\‡Dƒ„¤œ‰–”Ú2 4BB Ó¨"("‚H`†ˆŠ&8 ¬6,@à…Ä$ÑI ‚1¡F1*„”IGDDA‡ƒIä…±H„CĘ˜*¨ʘI “"uˆäD1…HL(¡HBŠ(Ȉ±”0!°a„ˆ€H4H…øóæ ÔÈ'„8Œ¤TGCZ¤B(€"QI(GB8ƒ‚2"ƒ¤"YÂ,Ó‚Ú¤! !'©æ IGBH!ÖTH†¸H8HEäHd€Œ±Xá„q!‚‚0H„H „ Â<5Ù„H„€’DC DJ02„$p†&Ј0¨‚ˆ0ÄA‚$‚H興(€¿F„@DB`„AEHÈJd¦€ˆDD@BE1D$I ‚TDHˆ$¢$‰ „„Œ‚l3LÖˆ$´HbÑŒ3T‰‚¡!"/TLiáôdLFä„rHô¥ô8AA¯ÁGBŽH,¨‹Š±!1ÍO¹±ˆò$LL1‰ÊöÆ„ƒ©ƒh†ø„¢IáQ‘ âˆiˆ*r("4A* J ‰(õˆˆÛÎàô$Ç‚ðD!NH‰Sf¥DaEøRh‹t‰Œ2HB‡#b‡FIH”1dSâBó‚ˆL$1¤Š"x$\E²H”H1™òÄDC´ƒtŠ´ÄœaˆDHOHèH¸hj¡U‹ˆÂ…n8„ŠØˆè„Š àb?æ AÔ¡TD‘aND~Ó¤AOÄYÍ$…¥$…‘+ÅåtHè!¤j´XÔŠô(HK\NOˆQ%KCO¬äÁµéäDå‡4A“ÔD¼ÈBNè¡ABh\¤„Ê,I„è,´iºµh³öa(FèˆÈ(*:¨Î˜ðˆ‹¨bÿ†:ÕÑwjÖ³´Xô9ßCó8uÂö=A)ñS,.w´¯%õC/¯g÷/3φþqhVv-±\÷2¿Bõ!¯%d¿%ö-,fÆ~_¸·ªáÅó¢&_â—ñÚß¿IñÖO–xxyIü\ˆg¿/2üùÜ?ïüZâ/4œÁ}F/dÄEÞEÊ¢²šôèÁúÉxêçþ:aŸ–¼áæ¼HüÈ趨1JüXÈ.(ÎxÇ÷EŸçvFóKHÏõyQÇGŸ¦òz;gãc£"SåõR_¿ä÷R+?ÖœöLL²ö[Zï7÷\nEòX£Q†ÖÍôë‘»—ïïêI©³šýõç¯Ìüø®Ÿ6þ2aφöNDŸ<üªùO?ûþôΖ(õÛK+ÌîbnþÑÞÕM¨‘™:ÿaé‹ÿúüaù¶Höaaœ´è:É‹ÊêïŒí…¹˜­,®è>ð%!O‚r#sNòAQJ²%òmhróz&æ³&ò$$/cõCWmb6ö6¦?×ö$!Oò$d¿÷ö'"ß¶ò"cWUö&!ûfRöb>îò$"OJû1$¿gòg[O3ÒtÜTOXu~‡úuy¯4÷GJ·(o2òGBYèDýј‚•øAHÙõ·øIqô(iNÈÎh‹ôÏ„ìŒì´È¶H?¡\¾=÷l'?¤ÔšôAXâ÷lEá÷jv,â8÷E(Ž"IòÁ:G„¬j)qaœ7Ɔ'C/ü"dMÁ#ѾÔÖ$ä8÷Í*Ž2K,óÄ"¬a&n)wAŒxcü"ˆ/BÄÁ¯AÚ<¾ÆaÉä8wMx„’$¬2D¬!øáž#q!¬„7Åx¤Ä¯C¦A«Z¼D4‰DoQô(.ot,üiÏBòAÏbò…SÍ.o8õ$_¬ñG-Ï(ñWM®6÷Ô®6_Äø2´wå/RøE¿RùCÿÒøRaÿRúAý§O»Õmò”SÏbòÇ_äò…WäzqMü±_Äü3•Åô!‡ïQö)ïô-/Ö}úAÝ%O8•©O¸•(_¼ñY(_ºñYHúqYø±Ÿ„ø2Œ·….¬«Iƺô(Œ«aφºt.DÀ"CaBLLÄTH!ÄaBI8O(AI(A.D@èHxAÌAÀAª‘„#ñ„’„IIDÈbA.ä@†„Aƒ(1ˆƒ†8Ž’ƒ…ˆh(EèBHÈOc•‚Ê(”AH™ƒA„%’I4)DAMHT¡AHÐX$KL¸ÑòDˆO!ˆF©B†x5âÒ$ `,rHaRˆ‚ ¤b€’‘‚Œ–¨‚Î ”Ba„C •²$A„DEQ(à¤AÑHDA‰Cä†9!±(±âH³E(4a&$!Š8a  ‚Š$‚ÙˆŠÑÔ9|€BP1L02 B%9"M!*–A4A$…¡42€"%Ê!ˆR"AQB7Q •H!ŠJf=Ô0ˆBA)pD(€!ĉ$QA"°A„P‰…”(€ˆ"‡A@ "RH„ KD€†(’H.H(D„ RH‹ˆô%ÇqBp!D¡8H.$L$q"*ÔHQ$F¹Ñ¥BK1 #‚È"L´‘À,Á*edQ!BÁ„+!¡‘@4H@Ê,Œ…A¨R*ñ¨Ö$"A"@„@$AÀA•"`BH(À*(B"8H€ ‚€ì €†ÀDAÀ@˜@"A€à†ÁA"`$AÒH‚EAEB H‰è^E1…„qH‘B$ÈŠÈ$)r›$$(°Lƒ¡RH‚(ABLˆÂJ1Hƒ*D!¤„D‚°‚I¨¨8L8Ñ„*$"Hh„àR 0B"qHä)²€A!$ $1HTHˆB DèD!A°!AB((Dä(0Š ’D@!$Bˆ°ˆBøUcÁ"ˆDˆ@BhÂ"A„"@H$"$¡„$$DÀHˆÄ(€ADêA‹’A2"ÁB…(ÈŒ„|1á@)”BðQHˆ!„B°AhŒ$…A¸C„Q*¡€Bˆœ„(›Ä"„ƒXBŠ‚‚ ¡Ž( ƒF!B‹a¸„€(_HbÀ9B‰¢!ƒ2$-°BA¤,Ì‚2A`!˜„"€*!(( (ˆ€ $Âõ3HŒ„1H˜")„ÀA‰H•¡A=AH»!B’€bˆƒ„H.I*Š4ˆ$‘˜*(‚†ˆ+¨„)ÄŒä„ (_£BHƒ‚4()$ƒ!˜"N((Â"(!ƒ$H"#¨‚`‚b€Ú‚R‘ h!JBH$BbB2(€ˆ bˆ"àB¡ŒJN¬£†ÁA6ÁHJ±XBñH1)Ä‚Fˆe‚H#F¸Baà‚R„J$øBI°‚‚B‡ˆ‰”ˆ"Bfˆ%h"  T„Š4ˆ‰âÉ*‚¨ˆ‡ŠRÎØ(„„’¢ˆŠ¥H‚Xˆ¿½ ¢D"H‘BJу¤D$€¡BFá†Sh„‡„¸A’„BHJá"$ŸÁƒˆqb„ŽBJÂBFá‚$„´A¤Œ!„¨ˆAbCÈ(Z$.ˆ d0ˆ ˆJJˆø!2„‰‚HŒ$A˜(@Ñ‚á„0!H1!ZDÁJB…HâƒX(ˆ ˆ(yq`ˆ&ȈÊB„‹”#§”Œ,‚!¢BÈh6hƒƒ‚‚¤(:‚¨$‚ò¼€jH°( à!$…X‚ðB1P‚H(0‰ ¡"‚¨"($„(‚‚˜Æ’ˆˆ" Rˆ$ˆR‚‚Šá²2’ÀpH‚ƒH@H"+! ¢A€è‰A°È祈  "((H€‚€ð×&€À"…`¤(H„ðR E€!!‚¨! ¢ Bø8‚€HBˆ%ˆ…(( "€Ì6Ó€¡DfªF©d‹!Jш!„Œ¤J´"шµH´I4)JÄRnH‰¡A%È!BCÓ²ªˆ‹¨, +˜Žˆ˜øBH†©HÎˆŽŠÎbڨŎH‹\‹MJÒˆêH" :¦^ŒŽuHh‚‡„‚©AX‚(ð¡£°(Q¤ nR&h#‚!Á"BÂB#„B˜!JÔ‚Á³‘YjÉ“¥‘8'nˆ.a.š+Bh‚Êó¸BRƒ¨)%™(Ç‚ÚÉ8ƒ)!ˆž‹(b„"Š(¢Jª‰Š(¬ Ï£ÃQNh>9THFY¸D’"h—…3f‚„„—‚·…^C&á§DH‹DŒ¡TJb…#¡’px²Bõ˜ÈF´a±b3I#²X²8Á‚)8‚j%¤!ª¡ˆ‹!¢xV!b‚¦¨¢‚"C¡’–ôž$Ÿ‡f†¯·tjó]XNH~Aô[zH‰qbÚ"óB{›D¯£õbK?¤óAˆ~HnA/¤òYB¯6vXsZ¸õI¯³ô8É¿,·Yÿ¨/‡ã*â¶ÿûrŽi·?óI¨Ÿ‡ôiéû"«/(öú¯'¬è/¥œØïáû>„N¸‹öÏIñA(>¸>¸”ª,ç‚þ(*¨‘ªkº¨ªÑüÄ´KøcÞ‚÷yqµ÷JZ/…óYI–óhX…÷Qx„ã#Ñ"òc¿…õ1Z¿·õjZ¯Öô)A¦ô[x¿‡õ1X—÷ZK‡$¤õx9§ôÊèûñˆ/+©»/þûØãý*òzô)iöéû¯«vëòâ’¯¯·Âí-õÊXÞÜÏç¿Ìþøøþ¼K!ªªúÿøÙŸ‹í“¶qvh¸(ò¨š¡ú:¯¹Z­ÈŠáK÷´”»ˆ$.1.)?"S·A™1!&?¤ƒ‚±8ó(!?¡ñ1Á/²!ù!R§“.1—="Ç4-C—5½b?´Òè‚òkˆ'"+(/#ó(9?³´KØüR!ëtZ‹Å(/!“„%‚ñ––çA¸ðe¬ŠHˆŸ”ª·„‹‚ "RhšžDʨEMtMOÓÝãò9"?1qá5yç·ò2B¿§³¢#>Q^i<’;2Ÿ“d’(Ÿ’ös.c-k-:¿‘uóB/£ñS1³ó²B½:¦râ:ûk«»Ÿ¢¼±Ót(xAÑ©óÛò;‚ý¸’#á(¸‚ñ8üOçw$(û˜¼C«2š¹x¤<ÞÙ›œr)؈¢¨Š£“ʤ֚$¤\>¤GGŸa 'Cô:dÍA£Áaãáì8vMè(’¬“¬!ôáž#qaŒxcŒx2ÄÁ¯CÒœBáãѶŒä8wMè(ôÁ:CøÁBn9RFˆ7ÇZØBäü:dÊÁãÁAIä8wMÈ"K¬“4¬f9RÄ*øSŒ*x2„ü:$È©ˆ¾È23Â¥/ô)'/u)õqßòiŸ2ò„s¿"ò„{«#_¼ók(_8scø¹7?†ô£7Ÿ†ü3§7‡?rúrA¿rúI¿røyÿ2úVi¿2ò”s¿"ò”S¯"úÅ?¦ö?¤þ©¿„ò£„ü2„?•äbøQâøAbø’aÏbúA(O8ÕHú”S‰ò埄ò„”êkqIéjñAˆ/CøS.Ä+qF¼ôhÄ+yÏDþ6A¿qK"‹!,ìB4*¢B¡†´h*Œƒ¸â(ñH($($ÂbA&è"*záØ”!!ˆ#ç()‚(‚(‚2.ÄLøA(´HN€8Ž€(†(‡2D.$B|"¯µQ­«dôxÂ;i‘·ºéŽã"ó3ù?ë†ùÈ#£÷aˆ—…I¿¼ô¨">2'"û–¿1تú1žŸ˜¢(£8˜Œ:Šò™‚ø2(.ˆ>ˆŒªÊª¨¾”­èêêè4oxŸ„å—òHY…uYøx}Ï×ôH=ïåv]¶4ñ"/1÷Zh‡tx©SöIH¯´(ôJz—¿·å•wXÑŠñYY/7å³õȸ?$÷y˜+‹?+ê¯ÿ¿‹öÛËnr«gIIüËêªûš¹¿©ûš™Ÿ©ù?ªóº9Ÿù˜™›š:©“¾‘›"ȱ›ú))Ÿò‰1Ÿ±¹¦Êªó؈¥‰ª¦Š‡àòii"OÄ•”}‘Òtô8#?†Ó"‚áÖò1„’/“òaa‘?’ñ*!/òBi="Ç´%ãµõ!"¯â8ô9"¦+#)ùb#³c´#ûQ/ÂA±Bx+ùƒ!‡¢?8ÒŒx“[*=ƒð‘„+£˜Ð:š¸ù!9‘B*†ÿTH‹J„Æ®ƒÇ±ni‹3ŸuAéuhüQ9ŸbóuZ=$oa³4¢S>)J÷YhŸòqAƒÖ‰ö!hŸ–õ2­y»U?5T9%ñy¿²ê®ùÊ*.’+Š+i¯¶ùˆ+¿ˆú»ZŸb‚Ÿ””AŽi½ƒŠû“?‰Ø8y‹ú¢³7‰’ª¢²:ò8©—šŒú)‚Šøˆ8ƒªDj­H˜Z„hO+'Bô"$MA«A¶Ôüˆs_„ñ„2A¬ôÁn9ƈ7ÆZx"ÄÁ¯CÒÊákAaÁ<÷MŽ2CøÁ2IqAªf)uA,tsì„x2äü$MÁ§>aÍŽC_„â(³„òÁ*CøÁ‚î93F‚7Çø2„ȯC’Ì«èëü47\òRAŸRòI—R/‘ö-1oö)#Oy÷+"O9÷*"_½óchß9óaHzsiø¡7†ø3§7‡¿rú2I¿rúRQ¿røyÿ2úi¿2ú”{¿"ú”S¯"òÕ?¦ö…?¤ö©?„ò©„ø:†?…ò"†?ô(†?™ô(†/™×,ú—I‰ú„[‰ú„S‰òÅ•ò¤”jñA(kñAˆ¯CøÓ(B¼ôhÄ+YF¼·L¾6´†(hA&(¨Rða´(.8 $ˆ+%Ž(€‰‚äB$¡B BðaTˆˆ#á(Q 8(A.&‚pAèôˆ( ˆ#á(!B †2T.¤BŒ9gh*!TN A iC,hQA&ˆxH1"1(‰E‘XaŒ‘(ˆ(áŒD `„Bƒ8H"2ˆ!‚"€ˆ²È(@1(†18x‚€…r‘ù)ÓÀ$QÀH„…R‰„f$(AB°J1Œ‚İI" V¢ƒd„J9"š„*€Aˆ‚‘(¨‚Œ2B"J*áÈ?5$@€b(!(("@Á!"€BP"("$@JBH ˆd"À$D@bH€‚$ˆÿ燈@H$ÀD%1HD dD(HD0ApHq¨„A˜0H pDˆ¡±B  HB(H¨Nˆ€ø!&óGP((E”!$(Td€$B`pB‰a„) ‘HM5‚ b$BBˆ˜AD9a(Œ$"lˆBŠöq.PˆA!A0!A€¤$IP@,DH$0B@H‚È ˆ@‘‚ (Àž¢HL`Å0D (IDŒD"HDALBH@ˆB"@ÃÀ(@A ’`ƒ4„¢„@PH„‰øÚ`BDH@$uh”F B…ŠH‚†A‚ŒeBC/ˆ IBȈL!((ˆ¢ˆ„„(€$´(Š ‰ÀÍ3I PAÀ(œ„€D„ÂC %C Cà„„H hH ‚ˆ€((‚ „ å°BB‰¡BDB ‘D…ÄA„ „I$‘H@¨Nˆ‚Š!”¤ƒA€8X(„ˆ ”D˜…ˆ ‚À(à„„‚ÀÜ#‚ƒDÁ”$DB€1$ÐÄBÐbB@ìâAF‰œĬ €xd DƒBAHÄDB€HÀEĘ€THŒÔLˆD„„‚‚‰²m ,DDD"€AFT„-QIˆHAHT„$†àAHQ‘‰àˆ†ˆ4ã2ND%!!RBADp$äBDK$pdŒòAGAHØ‚Q*4…ˆLhH†ä’D„HEDÄAAŒTE„À!@TDDFMÜIHI„8̉8ˆ*ˆòœ$@(HHpˆ$%AF¤X$8B"R‚!$@1‚€ˆ (F!¸ÓÂ%B“¤F‰!5!‡$$€AFDƒ„„vRÈd'•Ü5BpBq(a„,¨„‰ˆ†¢ˆJøDH‚H…„ôÈ„ŽDŽ…pˆaH‚†ˆ ˆ‚E„AL…´Xˆˆ OÄNAA„”!'”@AD"%R%™[TáA•è$TAHˆ'"BJCD…À„AHAA¨DÈoóФ-dH„CDAŒ¤DhD((N,8(J4$¡KJ"¦2$*"HD8AP#‚HˆEÐ@hˆ„Š(( ((´NI"©$$Ô„âB¡$©"(L”(L„HŒDh$Ab&@2À„#d!†D)„X‰D#H"ˆ8ˆ`H…‘H‰H$HQHŠÒ(d‚B D†¨ÂŽù3„Hˆ„”ˆ„ˆ@ˆ€ ˆ(ˆ(ˆPA`ˆÀH _ä $ („H0(B„HŠˆDˆ„„ˆˆ ˆ(0„‚„(L1ú(A‹E‰1HW…‡!t)ˆHG’G”N)NArHò%Àu”Ç$-tXЈkB‰$:!GI¨ŠUò,(ÆLdD„Fl„DAQJH„À°„Ð8….$.D@„$L4ˆ‰$„üt¨`$A/‚”ÌT#aFZB! b„DA‹B f„O¢EÂRÑ!ÔñEBFúIHˆ?H2Š!!)Ì%ôÂNA ´„è̈¢I„¬Ä‘$LØH³‰tJøˆ„Šhˆ‹ˆŽˆC(X„°8„‚Œ(È(@DÁŒN„J„©¸Œ˜ˆÊúÕJ$&ÿF+ï£ôYY/$ôKK'aÝ!£òAoÏ"reX&?tf†×”O„òaENäF”m¿vñR,6÷hÛ©ô[?s+”F+H%Ç"OŒú$‚7؇´Ïœ8'èNµEhä--}‚ÛÄ蔕ØIX„ŽÁC˜„X‡˜EÕEúèLOÔ|ÙUx‰ùDLÌÜD¾ü´XþÈÈJü¤$Ïî<ç-r¿%õ>ï‘tIòJK¿f÷vi_‡ÒVôi*$O"ò"g;&ÍIW„Ï’öIL’Öšô,kŸÁõ:qRïÇwWøC9Ï…õzlׄÿ–úçîîª,ø¥¢ŽÄ>þìêψüÇÁ¯T”H„ôK¯Xüʆø„ÄWŒ—ˆøˆŒSØø„…ŸˆˆøDˆLø‰‰OÈø¤¬ßnTE\QßXôÁÄG„ÆüätËÝÊì„ôȤBþå™$Bó2o?2“D5Ó*ò#sGò%#o¦òg,.&OB²dò-!ndŸÒò$¬ÿò%dRòd.ß3ò'&Ÿòò"9Õò±ó*#Ÿâò¥ãO¦òo,.&oBò'"{"rôHmÅsÕUtH]ÔÕò‡†µÿÈéW„X™XÁÙx„øMŒDM„S8…Õ}$ýDÍÿETÉÕMüMEÏDþlìŽ÷Tȋ̋ÄÌôĺSÞròrv¿2óH‡4·¤/rò;|no_&¶,Rf+"KbOÖò-ln%ŸBò(i_RâÆö!d¶÷5vçöycïµõQRŸ%õqm/ööi¦O>ö¯¨ojº"º&öæ¤ÿöúBO…õIHÕíÔôˆÇŸ¬|Et‰ÔôÌA›ˆŸˆØÙhXŒUÑŒx„KˆÅô…ÏØú„MÄÕUÔ]ÌOÜüMDN¶l[„‹ˆƒØˆæÆüxöð2Dô:dO´Äagä8wMè(ôÁ2A,îY‚ƈ7Æ„/CÄÁ¯CòÁ#ÁáãÑ–LŽsׄŽ2A,sDøÁBî9ƈ7ÇJø2„ü:$MÁ«¾ÈaÃè87ÍŽ2CøÁ:CøÁ"î9ƈ7Lj'CȯC‚¼ˆ¼È/ÓÛBúUbòA‡b?ö,&o•ô,&_¼õ.&O8õ.&_¬ñgmÏ(ñEM®6_ÔäjóEͯcúW/rúE¿rúVA¿rùRiÿrúVAÿrú„[ÿbú„SïbúÅæúäø¡Äô©_Äü;‡wÍ¿røEŸÒøžAŸÖøaÝ­oÔÝò„SÝ,O8ÕLòÅß„ò…ßÄø¡_—ÄêñIŒ/Ã|[ìÂøšdƸõhŒ«aÏ„úA/ (A.FxAÈA €8Ž„ˆäBˆˆ„†FˆxRè(ˆ€¨EhBpAÈAˆ#á(ˆ"¨A.$ÀÙ o”¡ÇhtŒbDÀ&ì±AÂ(JT„HEEAx$¡AQ%!$ÒDІFŒÂ…AIÈŒX-ˆÔBT`H@$aHñH„"À(UˆTDH‰ C(hÂðÂ?°ƒº4AHÉ(@ qa2(#E(„™!3°L‹B€0H‚E0ˆ‚3ˆÀA@ ‰CPˆÀ„„*H‚Ⓢ!H"9$b(2„@QP€R!!$$ ”"CRBT@b!j°AD4$!B!`$ðœì ‰5!@ˆ$#a„`DÀH(€ÖĨ(ÀHQ@"D"! @€D‚BÈH „$’‚€:Ó °A)†q„40P„ Q%@9¤B!0a'H((IBqH"0""H@a$@‚AÂB#„ƒôBD!ˆ$ƒØ ¢ „(.!!HH"$9B!@a\4A Ð4ÀQ!B !Hб6ÉÄDB‰C D"L‚„DB$(M HD‚D†d A(,AŒ¤‚„$„ 1€„HTK€áŒD!ÔH”B „!„FH„•ˆˆ ˆChBCˆTHH‚H2Rˆ$‚`(‘MB‰BˆñŠ.! !C“ BBDA@HB@@b@D „@!x‚(2B„6 …„JAˆ$Eˆˆ!HHŒ„H‚!À$H´ „(HC (L†¼DNŒHˆ „‹C0„! ‰!ƒ"(…"òŒ@€!è‚#ËÁ‹(HA¨PA„!$"1$""ˆ`AD@¡A! D‚#Ð!‘ˆ˜$Rá®"Fˆ‚Â(H"D(@"H‚€( @)! € Aœ2. BÜB`„1`M p%!¡(D€A"H 3 ŠEÁ„Œ AC‚Á((!h’XŒA’"ô+Ç HHÀ1€""#2"%,"„‚‚Bd.Q!""R"ˆP@$€! !$ BС?¿„°HJdQ€B’,°AÄX"ÀBCb111†‚A,ÁBÁP%CHL "HA€!ÿcMAˆ@ÁH}H08D ‚"Á!D€Ò¤$ D&BH/˜DH#")‘B,DÄD‚H(ˆ" !@‚@†$N· Rf@‘(HH@D"Ä(" HB22€"‘!Dˆ 0,AD$@$ˆ"‘b"B„懠`D  "…ˆDAX!LAÀA. *‚k!"€LN’ Cä.¢A!HÀD B+‚Ø" ((‰Ñ¸4ÅH  4H!€”A”ABHH€H€ˆ„ CB $¨D€H€ B B ðÑ/„B"HÁ€ „€!$ $.´ò6±h!±X„"QƒD„‚ÆJä‚¡‘!`!A´"É($"D,Â,ACؘFšÈHàAAÀL¡bA‹$#!+D(„š„+aHÿìFшHFøDHBI‘A2"#A&¡BB((J%Ä"(4JÁFR$FCB32Â!2!)H€„˜QˆDÀ`!0“"‚"$ÈN‚F$.²#„tq²HT(NtÐñAHŒñEHJ$4$ËFZ´R4*´!Jø$NH8JA2DJ4D‚B$$DŽÄˆ!B#BŽÚ"¤Iø(KAÄ!Ÿg×ÃÏBw|½rY¸Hu,½8ô,ÝMOFñ&mGÝ‚õtMZ¯%ñRHïáôxGCÆÍÏÕr]ô]Y•ñXIŸCõ]yŸö÷l^OÄò6oBó$UÏWò9Äó-m×—.EßÔö-\϶õike?u´U;E/qµW÷bwOnÕeò4/bó$woCòWR/tUUcõADOTTEO\ñGÏ…ôÌKQ”±QäQµõH_$aDo!ÑbÑ$aQ%±rõ"D熇†j¦òn3F³vöúno)}H¸Rô:\ï³Õh 'C.A¯CB1¶ÂaÉâ87MŽ2IòÁ:K$¬!òáž#saŒxs¬‚/Säü:eüA¾ÂaÃè8÷M(Ž2A¬ôÁî9SÆøsŒJx2ÄÁ¯CÊÁ¯ÄáçVŽsÓä(ôÁ:A¬î9ƈ?ǸAø2DȧCI¼„>l6½ïô9ïô9¯ö5ïö7Ï<÷6O:÷6_¼óS<_¸óqXzq}ø¡߆þ2–ÿ‡ô2Öoô:Öoô:Ö/ö¶öZ6_:÷Z6O8õ:6_¬ñsO,ñSîw…î_„ür–w•/gýVAÃýVAÃýaÏAÿVAá÷ÄS¯aó„S¯aóÅ?õ÷Ä?§ånóHî6„ür¶7…/g¿ô:þkM¯ã½ö>îkeϸ D€dB€DpAÌA…$„8O( (A&DpAÈA…BA€8O(A„(A&„€¸â(((A&DÈ‹SÍÁƒ @±ÒdAfÁ`apX…âÕRPJÑ¢G)!ÄT@„âAD$A,bA$CÈB€!H4dDbA$„2( M$›X…¢8MB`Â=o¼Náщ¢4H`$â„RB D¡B#A $€!%!‚ÀA€€A@! ”LBÈB#\4ñ(!@@9"*TCH("€‚‘% $BN#BB T"HA+d!,$#E"€H# Dˆ$OŸC1D1B@(†˜B€‚!@%# $ H@ÀDƒA$ ‚‘!TD”Ba(FR!@‚ˆ„"!1B!!`@‚…’B$PB!!0B0R +AH$BŸUE3!À!(!"°(‚$¢X€¢x$B$ H@!€,ˆÀ¾ÓŒ@ ’(V„H5HCˆ ØD‚%„¨¥„$ˆ€ €‰‚ ‚D‚ €XR€(ƒ’B (AŠ’„ÐD`‚ð¦'D’H ÄÀ"B*™2$À"À !6,€$CCcA)H(!A$($H, „AF)-¹Ó$ “! AT0@‚Ð!H"h%!B€AA"ˆ%#B€P"ðÊJ@$¡ *±BFÄ"Ž @!B„AÀA2‚€!AŠ L)(D( B¤L‚‚ƒ‚‘†Dˆ*)b‡H8$°„"8‰…"޼£ØB¤$@A8$€XD((`A‘"E‚ÑH„2¡"ˆMˆD(" RPALp4€”ˆD$ˆGˆŠQ!@‚ÈH%DJ„,8d€D”FD!Â4ˆFD0KBI`A‚`BH$LC0†‚@$LB 4!A!Ä+HàˆÜ=±(h]!pI‘(AE%ˆ²‚ MAˆˆLÒAB&4[‚aI"I4„r4¤‚D"PQH A]„@!EØ%CÈ„…(Ñ¥B‘BÁ…!ÄH‚!xD!@!PB0#AÀAÐLd@"H’a!1AHI@"!A‚pˆ`D†"%ć£LDƒÄ!h`ˆ0‚((‰XD AAq#T@@0$‚(`!CDD%…D„Dˆdˆ!‚`„pE$(BÄFHH¯i !Aˆ!ƒD1DŒ"€(˜$À(”%ðD°#ÄD!&DBC1ADBB$HĈXˆHAiAC"T’(Cd„l1³"@$„TQ"…%Ä0"ˆ‚€¤!AAABˆÁˆEE„”-X%9ˆ ðùX$pHBA„"1hB"@dHL“D )($A$‚JÈ$(ÐA(DˆA‚Aˆ–LÀ…‘‚p‚((/¸3œ€H‚€`BB"ˆÈ€H€ 0„B B‚Bˆ„@ 0„„ˆˆ@‚ô%ÍBB ȈhA B¢Â"ˆˆHˆH€HAH„‚‚€ˆˆ&(‚‚„,8F)TÁDÀHAeB‚K!JÒx4†&¤‚ˆ&"‚EH!"†" K"Dˆ„È„‰ADÁˆ”ˆ`˜EAx#(iˆUhALBÜAJÊ„ŒÈH…†ŠœH˜Câa Â"BAhF/¡†D$HÄ.AÆA(MM"Q,S9ÁpAâ%´CÁáP"TÍ„âTD¢Ax…hˆA‚DˆLH‘ˆ€T(!(>„Hâ$=oD)B`(H$0„M(Šö(PƒD‡™)ĬȤI¢(AKHC$L"E D4AL”B…ÌUÈHIDžBAC4AB„Òd„#tAadN!‰Ñ!ÜÒ$˜B‚_ÚKñc/Í*íC?¤rKÒ¢ò+go$úS×·Œú²KÇñÈ©Ë1Yô1XŸJ´#’…£ù;^1_)ó•ÔH^,OÿÒ/'õ15O*øºo!óU/ù‘yüÒFURYüR’^^_)µÍ(•ñ‰HŸIý˜¯áÕñœ’O%¹ñQ]œøT™[ñKáÜraÙü/ÅáÅó¤bÏ+J^/)÷´ôÏ24[5òH*ÏæV7¥{FòjNm"iùtÕ—‰,³VéSýY©ÏŒ÷a]ÓÄ…ò„•¯óé[¡}o#÷‚?#ýbt[µ_ÿuÔú’k—>Ô?³tóTÂ_8q%¤D_xù•/ñÒoAõÈqÜØÈµý›OUýÙ+éA}™ñDKÑßcÕn,ô“eéáò&tï!¸ˆáñ8u›£o©Mò&N‡æ¿$òGK­C7¤§&?v¶´ÿûÿæèKó´µO‘Ûœü8TFòq¼ïv!äRò1<Ï9ñ³Ô?SýÖ3,´“ýCÞQOóÕÑo#ûg¬/kó´´#û5ò?_a|o]½tEeT/Uµ—õ—ÔŸõýØ9ÛH‰ýIÉñ‘\ß)ý˜ÿÅéiñ””[ÑÙüÙ]Ýóô{aŸÖtIýTß9õœö¯Æþú:O,´˜½Xÿúì87MŽ2A¬ôÁðáž#taŒxs¬„'CȧCÈ«AèëA¬<©=GoSôiOoôiO/öMooöÍgo8ÿÝ._8ÿœ$_¾ÿÝ,O<uìnu}ìjñe­/Kù¯/ZývÇ¿ZýÁ¿ZýRãÿXû6áÿ|ò¤Óßoò„ÓÏkòÇ›_ïòÇ“_íôã—WÅ~ñEŒ?_ùWÎ?^ýÅŸÚý^ÁŸÚýRáߨÿVÁßøöÄÓÿéò„ÓïIòÅ›ßÍöÅ›ßÍôá¿×Å?îóMÌ/ïù_Œ/îý^įê¿^üªÞ«áïê¿ü|hŒ0A,2E&6A,8QˆB„蔈ˆ„ˆ<Ž   (A¦Š)„蔈ˆ€ˆ8Ž   (EhJ ˜#8„蔈€(ˆ8ŽŽ(†Ž"A®ð¡#‹t4T$Àa†Da(L $‘HA…1d°%E!†¥‚@´"CS„„‘ŒAœTH\–LB…DbA™BÁ,)‘ŠiÄ!Ìb(”È!‚"‚D@ $b‚ˆ.¢@(†!DŽ$@Å%ØAB*(BÂ32A(("`(D`„(`J€H*$"BF"”AÀB‚€²(”ˆ!†"‘`$PBpA!ÄD6ÁD$2H$âQEaˆÈ@D D &%Q’A„!P" A€HÁD 1!$  D@r8*€&@D(P(B„ᄈÂB¤‚‚Q(B(T8L$†‚$‚¸(Ñ(Lˆ(RÀDÄAHLaDL"·­¦ÈABB( $"JB1!$H B( D2A0A!$@"A$ #!,Ð1B BL"„D@1H€$"$1$A@TƒD‚$‘€A@I$$ˆDƒÈÁ¤ xLB,ïW„$‘LRRdLRHAH°"#B™ˆ‹$l(8”LHA§€BDDQ‰BAŒ0DB@€„! €CC$H 5{:2H ˆ„HKAH”€I€$$H€€ $ AÀB€D,!ጃD .ÀH$„A !AB¤J0„„ °Dd! $ " D€ðD\ãP@€„0MB„@D€…$$ !%!X¡PB!!B€!Dh!Œb¡$$(ðoOPAF„#"HA QHÀE„\‘ !„€„€LB$CÀHHB€€ÀS°„‚BJB€@BJ @„ ¤ €Ïø ( „ HHBB „H€B @€„* d.Çc ‹AKBÀD‹!(€„F¬„AH¨A@LÁ $”4L¤A$À-Z)"´J±"2F"(BF‚ÂBb¡H$(ð¿"ðA$„‚Œ1F22GDÁEÀQ¤0AB$$R0”ID„€$TH€B $„d!D€!Œ4BDBJ±" #OH!±48HR$LV€AH¨B0LeEHOäd‘D H $ƒ$€dAD„€  $ŒЄ¤Aô¾Ä$_ÅÒDó$E‡—•1ífçeÇÁOÂñ,TOBqôDßÄÁô\›„5ØÜô\ÇUWEMÏÑôX(“ÅÝL‡…×ÅŸ„ÔLÕDqtEýLÕýA_ÑõHˆåÜÌô\ÇEGÅÍÏA¤%RMDGEGå¤ÕLÑgqtBúLí&ô6Vjš"*ö2Z…rzÒÄó>N‡…§µÏBöTlãQÂ_ÔólEÃáòEfò^fgCGÃMGBGDOQôM_„Ôtt¸AÔØÔÜQÜGE_DñLMÅy¸AñHL×—Áß•ÕÉQDGDOAõMÏÄÕŒdQ×ÄÔÌÔÌQÌGEÏÄñLLAJáDttô^H­EVFO!õJÏä•f¶¢F*æ"SЧòBÏæVއ¡¯„ñhlOAòz$ÏSu|õ},_”µuXx^þfÏBóp2ÄA¯CÂA£ÁaãÁaÁŽsÓä(ôÁ:A¬î9ƈ7Lj'Cü:$<>ì87MŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÂÁ£ÁáãÁaÅâ8wMâ(S$¬S$¬Aòáž#qaŒxsœ‚'C)|:”£‘âãÁÜcÉýïôy}ïôy]¯ö}~ïöx<Ï8÷8fO·1’%üD(‹V‡F¨v›q“cƒÄOC±$ÂQã—÷TÏS³âÔöDÏRSÅOÇòU=ÏTváòEFƒ28/‡ô(>A.,oqôm>_ÄÔô§ÁßÄôMÍå|WôEÏÔT§‘o$átyùRSET…/ôHŸ¤”A?#ó:(j†Ä+"+'¯¦óhlǧ¡¥ñjnoBò\4ÏB<蟗ñDH‰thøY>Q‹2sU¬#*²1óQƒ÷}=OÇÿ;aÏÂöm-OÆ÷%uÏSö|%ßÇòDY‹Q…òx8j÷(r¯#÷w,/#ó$6Ocó6eÿãµIñKËïÑÔÍtMüM]ÍWoquWý_6O´µuSqSúH[R,uWü,ñ¯‘ôRN3nè«c*$¤t.r/ƒ÷z(ïçòLZ¡ôZ*ßWófŽcÑC¶,ôH…‹D‰ôH1~XŸƒ“8L±$¡".1zµç×óu|O“ö)dOÖòelÏÒ÷-uÏSö}<_•±I´´xâ‡óhz"ãÂò62.6Oróneïs÷E»DŸÑÔÜtMüMNÝ_MEoQt^üWŸ¤´´Sñ[Ÿ¤Õ1qôM,ñHI¯±õBf¯ƒ¦bBNB.r.b¯ƒöz<ï¥ñHX¯¡ôz,Ogóúçp2ÄA¯SÂA£Áaçì8wMø„2CòÁ:SòÁîsaœ7Çx2ÄÁ¯CÂÁ£ÁáãÁaÁŽsÓä(ôÁ:A¬î9ƈ7Lj'Cü:$<>ì87MŽ2A¬ôÁðáž#qaŒxsŒx2„|:„<èãÁ?óÊlïôh|¯ôhL¯ölxïöh8Ï8÷88Oxµ8òÅZŸ‡òÄZ—…î~×…î~ß„ørü÷…~ýïôyýïôyݯö}øïôxzÏ8õz>O8õ:6_¼õ{>_¼õ[~u[øáWß„øs×÷…?wýA¿÷ýA¿÷ýaÿ5ÿA¿µ÷„S¿eó„S¯!óÅ[¿¥óÅS?¥ánw[èn÷Aˆ/g}Sørö+A¯ç¿ôzÜ+aÏÇÿBïÏM¢, $(CdBB*"CtaÈAKA€<O(I$$„2D&$B tAÈA…„D„I<O(˜DBAB(CdBFB tAÌAHH(È#á(…‚ä„FˆrDhBB‚“á„B„B„fFDˆ"ƒ¤IDø!HÌ¡0D!Zh%M#“H8MB€„#!¨)1B `$@¢Ai3bB„D¨AAJñGÿ ®€$„HÀ*2DH‰BH,„XB(Œ´B)!6”BH)(˜HB$H# A"2'Ä$€¤„BL$'ZBHP!`*AÄ"€ 2D!B!#´!‘B$IM!$A(E"!€T"HHK!HP$$†tAPQ…)Ÿl Љ@ŠDq(&"’!aŒ0!(EH*€"H‹‚$ÀX$Œ@ˆ…B¤)€B!pBÈÐQ" É‚„D,'‡:p&„BÂ$1€„bB#R!d…TJ‘C(G""AQ$”(B´!4(#©DŒ¤E‡!ŒAÂ$$Fâ$T8@œA!4!!B!à™ "@A@D0A "0HÀ(@ˆ`… $BÀCB A%ˆZóBÍ$Ä!p±HhA`!ˆÐ$(AŠÑL„@ƒD@€ @€A$@MƒP(PHŒØ,‰,,„D„ðlºŒB(FJÂd€˜D(Dƒ"$"F¨"€+ðdÀdLˆáT™ˆC5HƒF$ Š€ÔH„Ôˆ(AD„ÈNVb!F¢%ˆàD8àC€‚ÄsG„­$A(D)’$ "H… D(€R$C$„B„ h„B€PHC ôa`„„RAH€/-FHL$6” áH¨AF4H"DŒ¤Aàa!pDA $ Î(DH@„!ˆE(䄎A 1‚C‘ŠI4J(ƒd,‡ˆ$@&È«ƒ ”,&È‚°$H !a‚@„Ô(%!JúD0„$DHˆB H ˆA†"A!GŒ%BHÉxArDH!”Èï=„'‚DHDDÌ!6„H€D”‚…„AD$ÉDh!!‚`ÀÏ“D"D8"AU±DAÄ„( Be,ÃňâDT¨L†„P„BKX@$ب… HŒXBˆAlŽ%¢AAÃDñˆD¤$˜„BŒaˆHïdA!¨(àHb\ÀP”GE!BcI€aHD‚DAABAIÈÁ’p‚D $”DHH¤ À!³†.E`*‚Œ$0ŒCq"(hB‘LEáBDL„‚ F!†tD„„ÁD€`(H†$‚@BbˆD‚‚€L‹Aú0AB! „D€ (Ð$JAI2AA0ÈBDHJˆŒˆSAƒ4J’„ˆDA,,pD NÃ!D(„EI2(!A$D‚ „ˆ€ˆACABAB „@HHÈPHABXDBNˆPB0)˜A_\M!B5$"NÄÀH.D”8AB0‚€2Â`K*ˆ&D HHE‰Ô(Q„ŽA‚„ p˜„AÄ#%„•BHR$Štˆ2¤Â¤@âÈ5Ö@ˆ(‚J" ‚Hˆ(‚ ‚JH$!B@HANˆ)„øT÷€BB B&H) " Dˆ€D(„D‚ @‰H€’Ü1-D.I(@Â#ŒBá$ A(C\Dƒsa”A1˜™HƒäÂÈIÈ(M8A‚Gˆ€BSt‰V„‰E‰DÁˆIÑäd¨EBrArQH8-„`TN„ˆ)´«‘ˆ!a·;°A!p!4A „fD¦ð(„éMˆ0”K$%K,( Œ" FÑHIň t„AAÑ4ÁWˆB‚‹Œ'D!HHLH„ÈÄGK…’Lƒ<ŠÔFHè,9Ü%DQBÄH„HEÄ(°„¶(J2A!b"D"L,-‚„J´TK,C‚`AB’‡DƒD„Ø\DˆAG(‚†X$DFhF‚!D´H”ÊH;Øð{:N']*ÿ"d„§´½*½nÏ„xHùz_ËûK‘A×ñø¹ï±óX¯áõ¨eNa]Áù)$?%ó„)ï;ýr˜òœüÏ…¹Xåǵ¼¹4©ÕñɈßÙœü˜X—L5ÜœüÜ—DÅñ”ÛÙ^8Ÿ…ñ˜ŸÉý\˜ß%ñS\ë™K‘O!ñSÿù™]ÿÙeÄÕüÖFn¥kÏHýH"¥1’OIýLh£X2/$òlNq•{Jújný(ß’ølß¿‰¡1K‡.ÔŸ•ùÜzï÷;¯ÓÄDò…±Óèh±Óòl_o1ù’!ŸÆóXøÏƒýtÔ¡K•OQ}ØøMXÏ‘üŒ—ÁDIψùŒñTTß¹‘ñÝÅõ˜ß¡ùQÕŸ‰±ñšÕñSXkÁï8qä”Ô‘´ùŽÎÎo%Ô,¨Þ¯dõ‚¿;Nò'Dö¯6òEH½J·´§´ŸÆô­èï¡ÿ=œ¾OJú¸ßƒý;_×ó^¿ûaFôae_ÁóŒ!/{ýa¿/óÖSŠì„øØϱüÿTøßÁéK±”ù™ÍÉŸÙuÉüÙÜïÔÕtIü]\Ïô”ÕŸÕùØ9Û]žÙŸ•ùØŸÍõŽÅmÊßäx‚ô†„mƒMÇ¿ØtËý×ÝëAÝMÔoŵ†ôŠÖåùÜ*oõšÒ$ùØ'ìÃÖaö#F—´gŸ¤Ô«ôK/§ÖŸÎö»ïƒù4”º²„ûü\ßûõz÷óh]eOVôaµ‰ò…÷oSüÈ=±ÓŒüÈxËõ¸ì<7MŽ2A¬ôÁðáž!ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsÃä(ôÁ:A¬î9ƈ7Lj'CȯBƒ=èãÁÿßsþ6EŸööAŸöôaßööaßÞö„óÿÏò„óÏKòÅûßÏòÅó÷Ç~wü¡v_Æø²´ÿÇèzÿ6ÅŸþÿÁŸ^üáßÎÿáÏÎò„óÏÏò„ÓÏIòÅÛßÍòÅÓ×Í~}]üáWßÄøóÕÿÅøáÕïQüéÝïüéÝ/þÍýoüÍoO8ýß.O8ýž&_¼ýß._¼}ßîþ}_ìþõMŒ/ïý_Œ/îüįî½üêΫáïìÿÁ¯ú JJ‚rDhbF¨‚F¨‚R†ÈA‹‚´(¢A‰Š¼â(‘!‚J"¨$Ž2CdJF¨š*(õaˆA‰ˆ”ˆH‰ˆ<ŽRŠ$¤BŠsDèJa„Š)„(ôAˆ”ˆHˆHˆ<ŽS HR‚BŠ3D¦$äÈ)Šj8N$„B F$”C–„",(’WD-xÀ(°ˆÂHŽ$L( âc¤SI(‚ØAøAKÁЂ(ØH!h‚ƒlF‚xD’„€ÈAMÚ€ŽHA‚Œ!j#Üá5D@aDA…„HPH‰AD`!F”DD2DQ@˜„€H‰ED"A$a¡AE…"Q„’"ˆ$""By4€$H$!D2Q 1H!@!(JQ!™$B10"BB!…„ŽB T"FóT7 @ AP,$DÂ"0B U#‡!$„$D BJ0EV$!`R°BQH@A,A™…(&Q„A%(‰5(M"#BD!pA¦B3±B‘!@Ñ„„Ò,aB$#D!„3aLh&8ðAAI"B%BJÑB!(HA)„HlDŽC$CA"Dh%|„„P‚D!D„@@(!"0H@4FH$@"ABQ)H!$ÀHS¢ˆBL@€H&à"M$!`ÐB„(!$(Ð" AE„ÄL„!ƒD Ø$H„@H„$ÐÝEG¤!‡¢Ct"ÄAHAˆÀ‡ÍB(LD’-$à ¤ ®MA"0AAˆTAð„(†!†Ô(!–dDdˆ‡!D‚´ÚŒÄ")A4E°„tBt”C*r‘õHo³)MBA@D"@A¡@É€„C@H‚$ƒBH%’”%Š¥FXB@X"Á?‰K’D@Rˆ0D#’!ÆD„ˆA!KBD@¨!CK!ŠÄ®DàJA„ˆ™„ñJDAŒ¡H$˜‚ 8X†À„‰„¡C‡hÀEÀKH°„1‚‚JŽóÓD”!ABC$(B„òDÁAITB &0dDBA'"ˆ(Jd(I! $bH%ˆXf@ÄÈ…„‰a$Œ#ßt D$P!D&Ä$B!€A@H@bBL@„/‚B'‚&R„!ÀD$A„<NC5iA!Š‚ÂdhŠDBCEA$AˆOF„D”"-d !„!AD'(H¤L„'È‚!i‚1ˆFhhKD$Q†„„Lò»3ÈD€LT‚DCAˆ€‚L"HT` „ˆE˜ˆBäI!@TAˆ‚!ÀûsØBH$H‚I$„"‚ D$0„ÊAG( `dD@¤‚"G(¤A†BÆD@‘Bò2  0‚jH$b"LH`HA!A"ˆ!&„TBÈ!+BA$"0!‘A(‰ˆ’"(ЂÂDˆ!)„ QŒ<ßp"„h"DEh DAPDND&„ B ‚"€ @2D$H(à"B$LD)‚‘ˆ©„'MBH€ÄB -AˆEAC!FD€B,”$ˆ!I2ƒ‚BA dHˆB„†"Ñ4„†2D$"P(B†D%D–H‡(†)D@(äx> ˆ„‚Š"$$""ˆHH€Ä¢( ‚BC„ „ˆHH€„‚A ($@  „ˆ‰”B€„øÓƒ$(B D B@h(€ .  ‚DˆHH@@(", D"B€ˆ‰HHP$ÂÂü;•ÐA´"T!…ô…a‚!(EñD!JH"ÈFADdBÐ!”Ä($ACl, RÐD" ôR$ˆN$/D’(”ÀIE"cè$"bŒ"FDbè@$ĈBFH”‚B©X&ÊðD"A(!°A(F"BÀ„,”dC¨HI(( " Œ#bB%-!)™Â°&@Bqb!FÒb(FB6ÈB-„JØB%‘‚‰ƒxˆ$Gˆ0D`HBàü8%!è H,”$I´„¢LŠ‚("fBô!†HÈ Â"€œ$ !AÊæ"2„K(CT!`HÂ"F„ˆÄÄ(È!ˆÈb"CHD2„Ch$E(dDB„FÔˆ”¹\€ø„àdÒ5ò&B74'$!-gOh/vô¢â}‚A7vêÚ&Ò&ÔbäB¦%KÄ?døcfN$K(z|brB¢(ohÞ&¼ágõ¤‚[¢#òq5O?¹5™ç+J\”Å-Æ?TòrO)ó´Õ·„'„‡¨ŸÈüN¨§äö¨Â]¢#rAôÌ‹M‚iüŠFF Iܨ|B|B}„òŽÄ«$'„'(/HüNãT"/<úeFeÓ#rBñafy²%øeÆ7(m"k‚.Ç;„O,Ö&Ö&ò"DL„öÄã/r|ÂñÁ!_6Ô'ø‚"#ìfÖ"¾&ù2ÔÖb"K¦m÷/óQsOü¦$%äìö¤¢Løâ5½±}÷‰¯rÉûimï‚ú.¨Tü¨*AK¢mLJ¬„Ô„<Ž%ìÄÄHÏhØBxÂh¬KDÉxŠb¬¯dÔ,xëIó'Eföc#o$Ô3$tCâV´¥Þ6þ'‚'jOJÚ&ú%Á/bôb&odºæBäFÖgöÆc_Züa…o.òÇC/(¬„'l/jôôöo%ÿG„®&O*ø4³Cý±wî'?^¼ÔUæVòegO*ö³÷¿Wûÿ8_¼ôƒË¿”úê)þö­âo¢þo¨/jò¤¢O2ØVüŠNÆþÆÌiÔÈdÄNLÏ(ôŽÆ¯ÄøÎ*O,ôˆÂ¯$xË©¼ÓÓqö#FFsGòBC9ätrbôáeO(ú'†ob¸¢ò„¢o^ô¥F'f/f’bM$OFävúÂbLîR|ÁrÂóÃÂ)ì,òâF/*÷ÔòK…obø¢&O(ûwñoqÿó&FÖÔUôa$Fî:ö¥ôïSÿû;§=›Ì­É¿îòë.Ÿþö¤¢ÏÂú&¦®&O*ºOÜo|ÈîÄÔˆÔLtLìäü„JÏHÜJ<Ê'¬ŒÜ*|ÊnÌßß 'Sô2$MA'6VŽsSä(ôÁ2A,n)ñaDˆ?G”'Sü2%MÁ#ÁácÁaAŽsSä(ôÁ2A,ñá–1Fxs”'Sü:%MÁ§~ÁaÅá86MŽ"A¬uÁ îraŒxcŒx"„ü*$È¡èáü;ö-foSäföAnF/ödföädO8ÿæ$O8ÿ¦$_,ÿç%O,gänwgäj÷e„/kþw„®åoSì~þÁîÆ/þäæoþä&O8ÿö&O8ý¦&_,ý÷'_,}×öáöwDnõE„?oþW„?~ÿůþÿÁ¯þüáïþþÁïþö„Ãïîò„ÃïjòÅÊÿìòÄÊ÷ìîÎ÷ÄîNßÄøâÎÿÄøâÎíįîœÎ¯ÎœêÏÌÞ.ü2t , $,2D&$¤‚B*8B†¤‚H*’B¨È+!Ž(†¢$‚Jâ(2D¦$ä*(¡‚B†„¨AˆHˆÈ#á(Š$¤BŠrDhJF¨ˆBˆB„ÈA‰ˆ„ˆ„ˆâ(Š$$(¤(CdJBÈ3ê€"$B"D*(äBH¤‚àdHI"ØD‚($4‚ (–j¤‚°$ˆÔ$‚„˜DDD"ˆG„#4‚B°FB´HBDB†ˆTJ,”ˆHDHAˆF*H(h$†8B¿F¡ª( "DbD!(ˆf!(DHB.40d%$‚$ÀD€(V‚! „BÄBBƒ!`¤A$‰d$@”D„ˆFH0H$¶cE"$(€¡BP "EÄ!€$FB"H"B‚"D"AB"ŒT!!0!H"(`$ XH…H!Š)ô!^ H…BH(%!"€D(@2!@‚aB€(@B! $ˆ!€Â@€FD„B”³KTA*H@’"€""!*!D‚4D`&†¢&&B¢$$B(E$$"H¤F¨!@‚„)Â@èDЄDJ DB? ‚0A"!6A$H!@À! "@„A!ˆÐÑš‘@Â$$('D@'$$,"À$DTBA@‚€A‚C2‚L€„H±H$ÈAÐ(H‚ PD„ÀDOú-$@‚0"€„…šD "#(¤C)d($,2BI ($J"CB%ø„R‚„H$…FD"$B„$T„€„$DHØd(ÔBŠ`"$!@”!! €hBB„’B@„B°B BBÐB)$*`D!FBÀHB@ó‹Á@d!@b$2AÀ4Lˆ„‚@$¢€È!`$D‚DCˆ @‚°„Š‚ˆ¤ˆa-„@ÈBPH‚D‚ÄHÁü<(˜!&!(A¨"(B!F""”‚‚D€hR !€B! Bˆ"N#AHˆH(B‚„D€JÀ„FB`ˆ!ñrD(†ˆ(I@"€D$"$K¢PA€B(%B"A‚!"H„DH@e„$€,4´ˆ(À(&aC$"ŠâR rA¡B(Ž"àBDB1‚(M!"ˆ!!C(T€h`‚*dò4†B(B@dh"d$ HÌAŠ$MDÐ($8BPï ‘A0‚ ˆ!"ˆ€‚"À!((`"ˆ€È"Ð! ( Jˆl>2<$ÂAà$È$ "¢ A"$2A$„$$($2A)¢B‚H€T$H""„”HP!Ž"†R!ƒ†€„€ô( ”![Œ‚((ˆ0B(Dˆ"P$ˆ€ (((0C(@€0$*JˆˆBBBACÄŽó Š¦(D(‚BBˆ"€(À$!((HQHÀHIHˆD((FA`B#)‚„!¯A@„"! Bá"ÀAO$ ´B‚L2¤BD2A&a&%– 8‚(!+$1 Hƒ$â(‚‚@ÌBL ‚•á(>ô$€D0ƒ(BAA€È‚"€!‚H0$"B,˜ˆD‚!Bˆˆ„‚øi®€Bb€„@H@H!‚‚B"€ˆÄ@`L‚ é!‚@$Hd@2ˆ†$î3Q!*”DÀaEÂ!dŽaŠF$¤$3IÄÃ*l"bBB¢„ „¢,%²ÁŽa(*4¡È¢HM‚.Á"&‚ÄIÎ&Fa(H†R!F"†1NFI¸B˜BR„!XBH„’#‚„b@"¢‚A,ØÆ!H`$(@d ‚!°ÄI¨‚@b,¨„!B(ÆuHd!‚#‚B#"…HÑ„œ‚@!H†6A†Æðˆº Hà„ŒBŽA€’"C$²a8!PˆG"‚NDÀ¢(H!€RR‚%%s4A*T!4ˆ&‚ÊfÀ¬F8„Ž".$‚(ƒd$ˆC$ÀˆH )ÄÈ!vBqf÷%$}Fb'4="bôf¦otòBcohü&¦M$tòƇgr_BÔfæôTEøgçEt'÷ädohøaA%ò‚"ojü$äM$eö„„/"ØDòCb_HøbÂ?2øÄeUtvôd…otñ'OÏÊòÏŽ…Ø;äˆöì…‚üMf?”ö®ÄOBú$&ÂôÍ„øH‚gÜAEôD„m†,Ôäô‹HÏÌØ¨Ò8t‚øÌŒ‰>JtgFOfW1'$/ft'ÖwøFã7hgbDØdþG‡onô&DWrma.DWxüG¤GhoJôd&mÁ,ôÆB'foFøDÄOdþÆ$G"-¤Mã'\O"´bèjôG%MÄOBô¥Æêhô®LÏòòNȨ4†Âô%ôþDá—ÎgBæú$åÏÞö/(­ˆ'lÝHtFôÄ„o$ìHtŒXêϤüˆHŠTêϤøa"ð'fWTot²EÔ#tCóf'dö§Æ/"þg¦ohò¤„bú'æ}gGTov¸3ôedöfF_^öææODüÇgKL/,üBÂonöÄdonüdädª(oh¨æov®l/,ôåÅoWöde_DôeE/>öä¬íÎÏØöŽK‹Œ/¤ü­d˜öÎÅ/¶þmŽoJò¦¥oòúm¯¯Ž´ŠôÇÍ£tDÔDtF4ÂoìøHÊÏèöŽH¯,ÈÊÏètÊ9ÈÆ}d_trFñAB=B7totòÇf:ØbÚfú†$OjøÆfxöF%Ov²'ô!eOöaÆo^ôåÇTþÅg{LÎÂ/$üÂFoLöÄfoNüd¦iêj²¦ìdþGáöagFôeD_Tödå_.ôã…ßôþÏlߨôˉ4|‹ýÄ!ŸÎ²§Øëú$†gHoHü/¯ß¦úÊJtׄNDODÔD<Ä/løLÊèôŽH¯¬è$üÈNï˜ô›…p2ÄA/CÂA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/CÂÁ#ÁácÁaAŽsW$Ž2EòÁ2A,Aòá–#qa„xs”‚'Cü:$<-áãÁaÁŽcÓä(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB‚ŠÎëÑqþ6AvöAvôa_vöa^ö„ó?Nò„ó/JòÅó?NòÅó3öáwsö¡v[†/k¾wèzú6Á~úÁnøáOnúáî$o8ïNò…ó®$_<ÿá$8?áz?ez·eø³å'ø¡åo3üéío1üéÍ/þííoþé/O8þë._8üª&_¬üë.O,|Ëê~|OènôEˆ/nüGˆ/nœÆ¯îœÆ¯îœâïìÞ|³J¤$(CdbB.†#¤‚#ôa„äB˜B.$I„мâ(‘!C˜!C˜!ŠdjàJ.„°aÈA*H¡¢¨M+!O8b„2„„¢(SdJ¤Š*(ôaŒÔHˆ”ˆHˆÈ!O(Šd„‚F¨(CdJF¨¨cˆx„£$,(Fd&ÒhN`BÈ"‚¤hA($Ä!BŠ&¦ n"ˆ"C(F2A¨À$Bb@é#ÌI'Z Äé`B"L‘HÁM‚ƒ”DA„‚`˜Â3Ü1ôo"@… h‚DH`!B@!,$‚IF…$’A‚@BѨBA"P„E%$‚ˆ¡ÀM³‚@$@¡1ˆB*$ (!B ‚R"(` @H @‚@ D€ Ïä E@¢„ˆd€"H`D$bDBB"#"!(@BDB,D@"$ADP$$0„$D ¬¤3LaFDL€¨"hDjB`D(#¥$(,¢"@"B H…H&$B!PL˜BH¡ID†ï¤€!!B$B*‚ €,A@@D€ ŠM$D@tBdHM‚AA‚C2ƒA‚L@%„H%D ¤I A‚GB#DÒD(GÁ@6H‡hÍ‚,XD'ˆ HD%)ï+AB!$!("AHH€„$‚DBDÂ$$p"LAP‚„D)0H€„UÁ|C!!HT@b€¢DGA!°"%A`"E! D!@,@0H!!Hð)þA€$@„A"HDIABA0„ ˆ!LD@¤¢A$AA0„0„¡@ÀDD@DPHAA…˜D ‚„‚ÅÈæCˆTb@C,1$Š!BÁÂ)!(€Iáh¡dIè"ˆTDÐ")’$ˆa(& (I¡ÇD)"!(ô Ä$€ †iH„€X(0†ˆˆHï/D!€L„D ”…Ld$€„ˆH$‚ALÀ‚A-„@ÂAˆ$„@(H;þdDDBAÄ„0IJL¨(TO(!((DÔA!ÈDlŠ$šd*¤H‚C1‚ŽL$˜‚B…RDL,I¤A&˜„ˆIˆCe†$d˜ˆˆAApˆbˆL’†Hxˆ "3!@ €!@D(IÂ#@@&#a!L %%$D$@Â!‚Tð"$&Á! („"˜$0"BAJ(äH€xâAÄ$„ pD"(¤#$ÄD‚h $B|"N`gBBC‚Cb„HD ÄH€DH$„ˆȾ!BI1Aˆ$œLD€0„ H ABCRAŠ$„¨$ÈDL("R4¢CòB!-”Q(—H)ÒAŠ‚Z)JD! @!d„AÀ½á@ÂAH††$(‚±$ŠQ˜D"`BD(b !ˆ:$""2$+*0ƒDL¡ˆ(0B`*P$@†aˆ@H‚H4B¡!ˆ!A?èNa"B`%VD€EAgª1eŠ¢Â‚D À%BA ¤H ¨8‰¢€…DF„‰C4ˆH¤„,t„l8€ˆA")€$!I‘B"@……$À‚@Dˆ?DI(,ˆD(!€(@(0H$H‚¸³ßÒBä"ÆAP$,†„iŠ2„cUFJ2AD„ÚAÆ$ˆˆ D¢BA:á"!ª2$ᵆÂ$D4¨|X"&!zD("2¤†²!DÁDÈT‚ˆ„%tHˆЬ„)ü…›B$(% X‚‚‚$MA;±D±A£Ê„¡HFÄD@NcÀAMNƒ(Ô‚äáˆÕ¡Bà!´‰ØB„RBNŒÀa‰XHC„ „$(x„ŠDH Ì8µ-DÀ!‚p„1„O$ú†AK0!j™!TB.àB,HáFâ!H¢0„#ˆ±&¤+I2&*RBFl|1BD¦$,xXÌŠzX$CE#h($$IT$hȆDÄ%„2BÁŸîFá2Ö%rg¢H-C="7fKb¾A/~þ&Ro"2´?zÿ¤qo3ºåú¢beÒòãr?kòc§Ow÷ÒB/%øBr/f´´â/æjª2o*¢+/~Þ÷Gb_~òòÁe?FôeA//÷±å?óøDñ÷rŸÕ“øZù·Òïw©óCìã²…b*?DþoI{L_øHHܤDA§lÆîô¼F|LôÈâNŠ+ćDÏ<4Á-g/*ü$&sÔ1Ô"ô"&{$_ö7?&û‚2{.f?æ+»æúåç/Vô!änA_~ÿò'/3¾3ýdc8ôRâmÒ/f¾Ö¶ôövt+¶O"³æò4w?ùáRoòuö?Q´aîöÅö?^òq#=ØO6ò—X5ùÚ÷óKϾò…EŸ†òæ*OXôié?„tÆùÅTôAÌF¸Œü‚NŒì„üFBÏ(´HÄÈ/dôŒBOLòc$g/2¶EtCÒ3ö"CF¾eùæ2wo/jû$”+ñU¤?êZôB§öaeTöcæo6ýW']þ÷³o4ýS?=þrÂ.”kôO*ñ×¢®”m²K^{ôÁõ?rÿ!äö%%Vöaô2ÿõu¿ÿþýéµýCIŸ½ÿëé÷ÿoao®öí®/Jº&òæ"_zþëÍÔäÄØôHLNLoļFüNFèøÌªkħ,¬üÉ‹/4;‡&fôacmAòCB?vÖRö!´_<ó¶"oi»2û„rk˜_v÷âå|ôgA_BödE~÷fò|ý³E~ã?1ýÃÃ?9ôóö/Eïd½äwÖö¶4–o÷Ô#MýQ—7T_öe$Röáe_4ùGÅŸözñŸ%ýÛÓŸõzÿŸ×þkí{îÿ®ò¤&/Bº¦þ¯#ßNöKÍÔ\•ßDôLLÎL„üÎÆ‡lÂ-ȯ¤üˆBdܼ±'Cô2$MA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/CÒ<>V$ŽsW$Ž2EòÁ2M",Aòá–#qa„xs„x2ÄÁ¯CÒ<>/ì86MŽ"A¬tÁ îraŒxcŒx"„ü*$È¡èá|5L=goQôagoôaG/öegoôåuO8ý÷4O8ý¶4_<ý÷4_<}WôáöwDj÷E„/kÿW„¾·oQìûÁþ—/þõ¶oüô4O8ýô4O8ý´4_,ýÕ4_*ýÕjUô¡v_Dø³ôeø±µïqüø­ï1üø/1þì­oüì/O8üî.O8ü®&_¬üï._¨|Ïü¡Î×Ä®NßÄø¢ÎÿÄø¢Žíįî˜Î¯î˜êïìšÎß Â „2D&&„(„8B„„ˆHˆÈ#á(a( Ž"A¦Šˆ°AÈAˆ€ˆˆ#á(‚ ŠR„¦dŠˆðAˆ”ˆ€ˆˆ!†‚ ŠdJð³óÔG-B`BF¡J,1$ˆ*ØEŒÂB¤0E$HšB(MŠ"H$2„lhb˜*¤”A‚C„ƒ£„Iaˆ'ÌàEÄ&ŒHbH ÄŒC(ÈD‚‘#$dˆˆ!çE¡¬,$ÈRdK$h$„D”„H8B,B!A$8€A‚Iˆ.$‰! 0 H–Ä"PHHD e€†ÑA=n)E$@%0BCQL#H8G¤!@4@!D%!C%T @„1DBB@‚d(.2 ‚+$!èHIcÐ$HDB$", DH!"!bD@SBbÁ+‚H'ÐQ3èd(-!P&@B1"… D#aL2HJ–¢I”$IC„DD#£B$@‚”D$AÒ$T$!EDHBðÖl‚HB@$ D8!",@!@&" $A$€ƒ$˜"A!'á<LB&ˆ&¡„" M‚BA(AaLÀAB@%$‚bBÐ$°BÂ$‚`¤ˆD‹„AhaÐlAPH†È$B@Dñ¾„0Dh$)$AAL%DB%†&†¥AP$€'BB$P!LQ$JÁbDJ‚1E"(AfDÈ„!‚ŒD,T((D,ÈD†è$ÂB€8E)˜D)”D!‡ˆ'„-(o$2=ÅPP"@$€DÐA€F#‚2"KD!HPAÀAL‚$@$A€dH(HB%2DHP"@È!ÏW #"¤B$E"†¦.DA&!XBA"B.&AD€B&$>D`B`C($ä„2€B‡ŒD$ÆH$h"D!†ôD"‡„pDÄIA†˜DF(hˆHeÈS†¨(€â(‚$Y"ˆB¡$€2D@„ÄA"!I„€"F„ (€"2BDN‚ $È„A()D€BH‚N(0AXÈá͈2‚"‚hDHÀ„"$B"H ’"A""! HH(€‚$Hpˆ€˜B€‰Âöˆ€"1"‚E1"€"‚B&ÄAE„ÄB("AG(BJ„"‚1!"$*$"`€B"Àˆ€D@¢¤„!!H°LhŒB$È„ˆÒW "!  ˆ€B@  A"I B"‚F $„$€  B Èu#  BÀ€‚ˆˆ€(a""AF4Â#$ B\À"Š$ˆ$â(**$B€„‚$( ¤„$B(BI‚DH/ÝD€ C‚(@„)ÄA"AB(D " ËH #ˆ"˜b‚ h(€, ˆBˆ„À‘C Šè¡FA¤$$J B€„„„H€‚ "((@‚D(‚€-ÈHˆˆ HH,ˆD"A( ”ˆK"HH ‚Ÿ-H(D&A& J@"ád"¢ˆ€(p"¡$@!,"ˆb$ °"”ˆ"€€L„FRH¨B¼9â@@H@DD!!3A!%@‘B@Da$P!"@BD‚B@(¡!Àˆ!%ôÝ8!! QB@$(P$0!‚0‚ ‚!‚( „À„€lH’ˆ&iHP‚„@BƒBÂbN!N#CèT‚"D¡$(%”Bˆ¤†94!*J”GB0&!iH‘‚!*ˆ„$²(â8¸$"‚-Aª²‚¢È„‚!/D⌬(Lh$ˆBL¨„M‚I"4ˆ!+ÈŒ$!((ò[ÿ@2!3Å¢!I d8 (Ä&)@†ÈÁ"ƲD2$ g!B`,$BDŠrH$¤" $"&¸$Ò‚¢h!/‚†¤‚†Ä($DF"$¦$JòDšãIaHˆH,B((L’!0$0"%a.A#"TB@B‚ÂC,â((HC°$"ŒTB!!ÌJÂ"$F"$FBJ2D)HR†)_\GófG?&öwVJôBÃôgF/"üÄç/RfOBÒfòCãO\üâƒnüÆfNAGSFodæ4ôdGBòeD.BNÃ;L_Fì*üÄ'oT~†ô$¤OhòÇ¥o\ôäÅîC_~öDD_UôaAtþÅÇOâü®¬ÏÆøˆÊʯˆölŒÏêüÌn¯Œ~®ô%¤OhÒ‚þ®ÄOÌúì®ÇîÍdG„øN®Ïêþ,ÎïÈøL¨øˆË¯ˆúl„O¨>ç-Go&ôBv{E44Bnfw&?|þÄáDGbuÖ&öÃÅO.ü¢Æ~üFaNÄKFVôFcNEOFôFfW$®Ì/nþå‚|þ„å_Lø¦„lØDþ…ÅoFüæÃNÇDödE_ôáÅ|þÅDÏÊüŽ.ϬøˆhψøªÎÏêøÌîÏ„þèŒoJø¦ŽKÊÎþ†„ïêúì®íLOBzNxÈü®îÏÊöŒÌçèϬüˆÈˆüª.Olø¯ž$fÖ3òVw[?$tAñFg?$úÇD/"òe$m&gb?"úåd=ão|ô&‡g_Rât&µcögf]'Ot6G?$|óDç;¬wLofþä&m¤oZø'æ_nÞGúÂá_RøvD_RòAARøçeoîúŒnÏèþÎH¯¬øÈJÏâþŽìïÌø*ê×îoBú¦$/¢úì&oÆþŽLÏÆþn$GÆHïÌ~ÎüîŽÏèôŒîïˆôJЍö¬æo:Ì=F$ÒsõV!´Cô!Go4ö£äôB&m$M&g"/HþE#/|þf'{BVôDan%[B?fôEf_tôFA?(üÁ‚züÆá?Jþ§Åolú„¦oHz¦ôÆæ_lò†á'~_Bôd%]a^ú¥ÅføÌîÏäüŽÈ­Š¬üˆŽïÌúîì犯ìú¤†oJº¦þª®OfòîÌí.ÏÆòddÏ„ÔÈøìŒïäúÌÎÏäüŽÈ§¤¬ühîoZþ:Úp2ÄA/CÂA#ÁacÁaAŽsSä(ôÃ2A?,?n)qa„xs„x2ÄÁ/CÂÁ#ÁácÁaAŽsCä(ôÁ2A,~9Vˆ7Wˆ'Cü:$<>ì86MŽ"A¬tÁ îraŒxcŒx"„ü*$È¡èá|5ܧoôa7ota÷a_vòavò„ó?fò„s/BòÅs?Fò…ó3ö¡÷sö¡w[†?s>w?rú6A?vúA?~øa~úa?vò„ó?fò„ó/bòÅó?fò…ó7&®÷sæz·eø²çs÷¢æoôêîoôêÎ/öîîoöj.O8þj.O8ü*&_¬ük.O,|Kên~OènöMˆ/n|OøâæiôêÎiôêÎ)öîîmAo6A‚B‚‚dB`" F-A" "a(ˆ+!Ž(€„‚dB &FdBàB(I¸â8RN(AN((G„&d„&D("taÌAHDI˜Ä!ŽBItHd„(G„&$Ä'ã‡8ƒ((!0£Cr‚$B$B,BBÂaˆ$($¡‚,¤‚q"#(‚"H±‚B!BH‚ÈB(F$`, $"‚"B#’D'ˆBD‰X¡D²AH*T1ï“10ƒC’„$@€T!„8a$!#Œˆ$!€(R(@#ˆ(D2B$+H(€„ˆ‚’DFR‚‚H…Eh(!Àˆ$!Œ… @"@„@A(@D@RT¯Û DD8Q(A'BP@ÁDa$H°AA‚@P&B$*,$€B#C0B@@A‚ÄATAF  &MDDBB0R @(BP!„€‚@,DBA@B—ëB$Aa(!@H( !"!€A€ÄÓ3 ðABM$B@€xB¡„DDÒ `"DB€Æ$†%JØB"ˆÀ‚H@D(L@!pB·H"‚TbˆM‚ ‚DD4')†‚$'BP$(Bdà"…Ac€$*$2‚$)TADB"BF‘#KˆÀE#D(¤"AÅ¢€ƒ bDAD)ˆ!€„øBc P",(ÀDA`$0G@ Y1ˆ!ˆƒ !¢ ”$Hˆ!ˆ_XLDÓB!$DŠdbI"Dˆâ$¢%A(A1 ‚0„"i(‚H&”„"(D+$XBAb `B£D¤"`,Dƒ´„A„DB@ 4B¬4¦@0!0$ FH ”B"B ¢„ N!À"H B$*€ˆ!$ðÁÃHB€  H€D„€BH,€„" `„‚ˆÀ3 €$‚BAJ2F€„B!"$AH"ˆB"BJ¡d!BB#Ö¢D (†"H °l D!D!J"$(€„„B@ @B,(Bˆ 8ƒ,6ó‚BD*&"`B BG$E„$(ˆJ‚" f¦H"H.B†e"‚"†‚¢„ˆ$€B „hD t‘F#"B$BHH!A‘"0A€¤B€"HB Q!(ŒŠ$!‚àÈ6¤HD"H&B0aHH@ BBH!‚"‚€ˆB!ðX!D ( ÀAE*")$b" 2a $C„"¨$Â,(Eˆˆˆì86MŽ"A¬tÁ îraŒxcŒx"„ü*$È¡èá=IeoôagoôaE/öeeoôaeO8õc$O8åBòÅSFòÅSôáwSôáw[„?w>WVþAvþAVüa_VþAvö„Ó?fò„Ó/BòÅSFòÅSôáwSôáw[„?>W?vþA¿~þA¿vüaÿ~þA¿~ö„ÿnò„ïjòÅË¿îòÅÃ7¤îÆ÷„®F_„ø¢Æ?„ø¢†)üêŽiüêŽ)þΪiüõÖ $Ä"CdBB0B tAÄADHDH€<ŽRÐ$$$Ä"CdBB D$tAÄA€D”DÄ#ñ„R€$B(CdBBL(Ä„BÄÈA‰ˆTHHˆIj( ‚ (A¦è?s R%!DDH!F‘DCDb"S$”A`H3„ÂD@”ÁMAÀAA&,8D"¸AHrABhDˆ?D#H•B,Å%$Æ!\†$ÆÈC‚$ð•å ˆA"  DABB€ ¤$Ab0AŽ$@”ÁA( „ )‚`LEBD 4AP‚ˆ€ˆDÑA;8PD  @B"H"$E" D0DA€ „‰DPB¯Ì‚H&!H!Ib D0BÀ„"I  „(*(€@DŒ Hˆ€„Øñ>8 A!B(LD"! ÂAAD Ñ!„ÂD($D@8(JT$0DCBAD‰6DA„“ÂH‚€ÄH‚öíŽ$@&€ € @D Bˆ@@ðã Dd$JH ”@&‚E‚L`LE¡„D „€È 8$BÀ$‚àH„‹„€XDˆáÀ†L"ŽDð=C„ÁAEB%DDB–BTA$$Ô¤„,"(4$DAABP$@@D&DD#„A„@Ä„%DHJˆÈÛÓ  ADdDB€!E0A€!I(ABA@A"BP(H(€BD$dHD„ŠŸ8F‚`FDˆd Ä!dEQ!PAp‚I$  HW( IAÀD‚Æ$ˆˆqI†BT†A@BT‚Ђ†ÈÃãOŠ€A @P!B"HD !%&„ÀBD„!ˆ„@PBÀï @$B0R€€B„ B`BHˆ‚À¹ó €aIA @F<!bH $À1ADN"!bH@‚`ˆ$ÀB, @$@íƒ@$B"!@a@„AA(@P!AÀ"A$ !\4fT@A‚"`B$@@‚„B(€&""BÀE DBA’$@$&@þH-$ ÅB F€¢ABB`EJ"„!B(Q€"#‚ &XB‚`Œ‚A€€$"cDARAB @RA "#B €€ B )Ëç4@DH)@@CB<PA`B !D@AABÀ$@!F (A(À"$„@ ÂÎb1g#Ô$ÀQB„D3q$Ô$ Q& .D3q@’&A,aB&RB„€òr~@Ð!‘PA€t4!@q$1D9PAB`c2 À!M!AxA@R!ÐA¦‚"I‚(A`¢$œ5ÅA!!4,AT$,QD"`BA#!AAf!„râ!Ã!M"AJ’%DÀ&1#Aaà¦$ABFsD‚H‚”!ÑD,„Dt"!˜"A/QEÁRXlÑA„4D#/bAf]RMRB!i‘A°!tA„$a1DB^!RN!Cä4JâÒ%H"7B"‚H&4"H/2‚Š’„€‚ŠÒ$’$¬$.ýsBD1pa,HQÐ$IÑaTA!@d`HA,(A8CAB0!`BB'B'!H%(M#EEAB0(@Ä„!ÐJ'Â!?µIóDWETE,Ã3QElátõVA#AÄw'TbóDrOìôADo!Ñ4á4õQF?dôBR/4µQögF/båvwqbB.4W^AnEF·D÷DÁFñado%÷DSNS?FõaDNBNC9öeDnFngo”‚¦äbR—¯”t(årúÄjÏ„èBÒ&R$$¯ÂèÂX(´­(ÇB.&ÁEODôV]/!ÑeÑ1åtEtôRPU'A/cÑ1õrAKdODtAñMAOdäeÑ'õCckD^rfñCSNaWF6¶ö%E~D~Tå¶Dö4DôRsOödT/föEB$ôBb_fôACNaWF/JX#hßÖtj|"ç(üJhÏ„z$¤ˆ/(š$ÇB/jr„ÒˆRŒ­*GbŸµ eÕuÑt3?!ÑqÑ41Eôd1gA?aÑañ!oò$…Gt%ñDAgQ7A{U]/4÷WB?%ÕóFs%òwD/cña4o!r4ô1TF÷!Oö$…?GÖöDagS?GöWb]Ncq?$ôA#O4–'Fô"†r&t#þinùú†¡OÊøjlÉ’¤oJø¢$m*MŠ(z†Xª*Í"mBcÔcõE]g?!Ñ!Ñ1qñD7U/aÑ$qtô]oò3]dTÒtDQE?AõE]/1ôSR;S/5ö7D?Wôr6is4dC~t_óaOó%DVòDaOò%D?göE2_rtBÑ#ôABC/ò'D7V/jú„¢gB/Bôjnߤò†¡o(ú,LÆ’$K¨OJø"&M*OêøŠˆ%R¨…Ú¢Üp6ÄAoCÂA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/cÒ|Âág!ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì86MŽ"A¬tÁ îraŒxcŒx"„ü*$IÊèá¼=—oôsoô3/ö7oô7O8õW6O8õ6_<ñW6_8ñwzwwô¡w_Dø3—wE?sùEwùAwùa_wûa_wó„sgó„soCóÅs_Gó…s_Gñ¡wWGz÷e„?swô3·oSôk§oôk‡/öo§oöo'O8öo&O8þ.&_¼öo._8rgîj~oìjòeŒ/jzgü"¦ïBôª®éô*Ž)ö.®ma&(A&ÄA€8ŽÀ"A&$0Aˆ#á((A&„ˆ¡†(EhBÀ΃φD$%QBP@C1D,$DD9ALEEEAP!P!áD1D!D!DP%AA¤$$À‚ý/N$%D$! ADB"ADbDA)DDAL„!BDADA ÁDAD@ PAA$†ÈRˆ$ €   (`_ßFB@DAÁ€D€&AD@$‚@„€H`B…!AÀ$PHA¤‡"¼9÷AD@dD(A€@DDA@H€RH`B…Á„@„À$8KA€*€( ‚!$€BÈvãOHˆA )€@$"E$Ä$$@!$AA¡à!@$GBÀ$H@($À"DÀ$ðسaPL€ !8 ±D!D€L€QH@4,A@L`‚B\6Ú(A!A0PDJ(€A$€E „ A@D BD„ð¸E‚@E!! €ÃQ@!BAÐ$T‚A„$„(A@‘(@„J$„L1Ë@A@ADB@$EA@QHA!Ed„@%H@¯|A A@@A€@D…@$Àš“ @ATD D€$@D@@B$!„@DðßAI!1 "a€Â€!‘*At$A¡2K2W!"(.! "(LÁ$ƒA "à"5$¤( "„.(€I%(ÂòsD@€"D@d DAB ‚%"D$D`RB@@ B"BD$"v( Q!H# (<EÄ!-!Ê",E $H$,=º AAPA ¢! (A€(AÀ(AÉ(A@„„@")ÞÖ@’A@T A€€`B`B„(DD""@aB@A.#³r@AAA€APAIR$IAD0!!'@‘"IR$$XD&úÖçA@DÀ!E„BA`B`bd@Ñ„(AP!•"`BD,Á(A„@Ä3sC@a DAA±„HB`BD7BÀ%(iR$($@*UH@fBD'Â!%þ>×Ð%”L‘qt$ AåQâÂ!A&PI‘DY‘A€q3'C$":>%K!JD<Â2ERQ!B &4"ð"%!‰‰(Í"A$„À{# ! QAALH„B4AxAAAAÀB#!…q(@Ô$R…@Fh‚@x(ÚX((oåLÃa„ÃQELÁGFÄWAõ!4Ió$%QAKMNQAD„Å!WB..7g'!&äBóUAA&õ!4K4OLñ!$o!Ó4Á¿Âq!\(49r%db.'ebF.&uY‡RòÒ$’„ÂÒ&R$…s*lÒ$$­(GÂ.U£Hñ„†YQ ]UdAUeA>±$RDáÑôDD^T[ 1_BÑ1Á!WB6¶RveeG>QaK$GBñ3M!ÏBñ"&UR™A-"WbÃ!WB'B%‚r%}*t"Gš*Ér&DØ*’,ÇB/bR¤„Á-"Gâçç°Ñ5Á1S±ÑÑ1WAD1GAAÑAñ!Oò$…?Ar%QGQA[U]NqSµÑÓ³r7ô2Fó"GCGõ!t_ò!ORüsd]!M!gS?Cò*]#uX+#M#yr't"öa.ir&t#þ!.}(í!ÏBø*,M(Ér.ô*,m*EÚ(RŽ%Ê*Ý#é;i=]]±‘qtåA‘GAäAÑñ!Oó%$UEQEAµEõEU^AÑár5t3õ26is4äCäGóE1Oò1_Fôa%M!M!WB?cÒ¥s%_š5R!Ór't#õ"&M"gB'B/bÒ¥ÒÒ.r,ìÂ’,Ér,ü".M*Gâ¡¥JJš*ï«'Cô2$MA#ÁacÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ îraŒxcŒx"„ü*$IŠθƒÚsñESñASña_QóA_Qó„S_Aó„SOAóÅ_Eó…_Gñ¡7WGzóE„?SyWô1•oQôq•oôq•/ö5µoö57O8÷76O8÷64_<÷u4_8óuzwuô¡7_Fø3·wG?sû>E¿òúA¿òøaÿrúaÿrò„cÿbò„cïbòÅ+ÿæò…+÷æ®.÷Æ®.߯ø"®÷Æ/âú.D¯âšN¯â˜jïâšn?ü‚(A&ÄA€8Ž€dB0Aˆ#á((A&„€b(€dBÐ18˜€$!@DAH2@AA(D(D‘A@D$%ÄA„A„„(_} K˜!‚D@@H€AAD`B2@A€DD!HD@E@h*°ÀA)4A,a)D B!0‚€4$AI!"‚0B’I48$DB„D'„&…@ÖÁ !@"$A&’!€DDAC†4A@AELR‚Ÿ|D BD€B "€@H€ ¤!€H„ƒ‚ JˆaÈ"FB$ˆ¯Y00B@!"HD$`C!!€"0‚" B"`"`Aƒ$F "N( ª"B&Äa/Ø,ü(‚.¢.‚.†¬ÈŠOH˜%["…âN8D+HC8„ƒ¢ˆŠ¤ªŽBoáMóSb/e·fôQs5ôSqoqÓuÕñ4/có?'õgrJsC÷AEKâ-$ñVW_#÷Bem%G<ôA+e^?w¶5÷5qkAA³4óu1/7ãBñ!f?Bôd!'BÄ/hüă/]ûªµß«ýò‘Oè(ò5v/òî¥ßLö¬¢;.m¤_ÞòL'áBö#GOVò*(OÂþ¦ÄkŒ‡L͆J&øÆ‚‰ú¬ìo<1y=Q/$÷vWU/%õBR/g÷Vc7g/s±SáAcG>S/uôVtOa–bv±EäEöDr?WñRMfKVôB^S~u_Cå6ór3'áAá'ó2SoótÔA÷32!KæD(ûƒo<ëïëÏ¿ù’“¼øèüßKû>©/ü+®ªêÊø¦åçöOÆÜÍþ//M%O†ö(dÏjú†„/¬øÄŽOŒDâ(xÂèÎþ¬†ŸCKòbW&ôac_4ôBR/$Ô2q"ò66?a35/cñ2rZçõrBK"}ç=%OBôd41×s'òaCoVS?!á1õ3_ó6'/wuuö2ocò27[s#öf1_Wþ3d_BôD_lüƒÄéÿÅ»¯?ûÍÓŸ¨üÊ©ï~ñuï_jþªè?Îø¢‚OjøŽ%ÿÂÔçtHûiË/’ÔÄöH¤ÏÎô„ÊO¨|ÂøÎ$O¤üˆÈ/¬zÎöÌ#Sß"ú7G+/tCóC?dövGFó3#ñ">2+qvô5Ww_ròC$\òaARóW&avcÑrtÃ?ñs4>S{3]V;5kk3Obñrvõu#OF÷1dRvAñÄÅ=Fhý;Qï¿{Të­Üôã£4òèî_jú¯¨k¨/hêhøflýE÷´JÖÖHtløäìíÆh¼ŠüJŒÇ¤ÊüˆÂ¯îøBŒ¿5Ks2ä2ô2$MA#ÁccÑ4–$ŽsW$O(ôÁ2a,UBnIôaDLxs„x2ÔTü248>MaEâ8·Eâ(S$_,sDòÅdnytaÄ„7G/Eø2D­Å¯CÒ¼Ô¾Ôü„cׄŽ"EòÅ.G$WìðaŠGÄÆŒxcüBŒ/BÔNü*$)œJèá-ÝCÆ—/sôe/1ôa/öE27Ö$ò‡wO!ò¤w">·Qò·s7F?zõc$_zõa„?Sýs"Rü2c?RùC?VùcûG6ò„W_%ò†WO#òÅ_'úÅWesAôá7Dúó…7E?^ýE¿ZÿZA¿Züqÿþ]ÿ²öÆËߢò†ËbòÅ‹ærÍûAÊÿþrAèîòEÈ/ÎzCøâÌ©ô*Äï„ô¨Ä­hÏjþNINÁ8q.À€4AÔe-A*ÁÁ#á8%ÂA4Q8SäB2A0A0AÄA@!D¡„8RŽ@1!!(Q&T‚xAÈA‡B.$(M!†B„((a&.¢ã‘¡Â7C˜9ÄI”!i4%$Ñ"aT%%a`VFB¤ANN,‘!i‘c‚Xi8%HŽ"A†º!1ÈÄ‘OªÕ!œ$(a(%gJX’ $HH†‚b¨JÆŠ‚ÂRŸÇJ"Ä2%„¢AJ‚T$!D",DÐ$`D*D&$a$)„!A"Ò$2„‚,‚ p4 „($%äˆbˆH)¤‹BM’B”"!I$!K„$H€ $!‚ƒLÒ(ð"ÌCŽ ˆA€D€!$OCD0BR!‚BP#Z‚A$'XÄ!)a"  !IAÀ„‚ ‚@H(…!¨$ „Òøñ£2d$)$Ä,$dIBBÁB,¡BB*e2†"ÁBÀD<†‚$$B.$–’b@¦I/„B<’-HLD"Á"+J„N)N(kˆ#”$ ˆ#„X„Œ=HhG"AM!$B"„ÒBCá!Æ$*T!J$±1Ab($JEB"òC„,ˆ‘ Cä!‚D“F‚D"r„DH*̪HÈ!„‹Bá,¢(!ÀBLhHïE!!D!F"PA€B$À‘@È!.a@#¤( ¢ˆ®%(&€" BH#"xB4… (¤(„Ôó]!Ž„-R R€E,€F‚B"$""20" (#BH–&2A2 ‚¤‚$0d€„b$ÀF…†&b„D 2APB.AÚã(H"8$)„"$af€! „#B†ÂI"Á"Id‚Bštá’-ˆ0‹H…¨(D.& (BF(F¡DDŽÈ ØÔ7ø,C"¡DÂ$F-"@Æ!.@¢"BC2-" A)+p‚D02@Ä!)‚8B"Ä""šÔâ’dhˆ'®A,C"ȈBG†H„4I"¬”ŒH&ú‘΀F‚d!€,@ €RB$€  H€(a$ƒHÄ$€d„Ä ‚€(Â"ˆ!CP"pDR&‚C)„:b)b(°bE4À‚,C)#c!³"I"H‚$((%‰a/"!$ˆ2¢@„‚h"DÁÀ¡ÁD‚@J”„_2 B`$"(0M2‚ÀRÀd@(A<(BD" ˆ€4V˜’BH¢†Db„H(D"E‘‚‚l=H€bDH)!I$"ã(ÁD („’$ðdB("HA!p‚(@bBl¢" ‚""Fqâ¹B¢AHˆ+(ˆ¢a*„Bƒ" (€˜ˆ!)H¿¹#‘)!d!Až"à34#qdÔE'AQJ8”DôA"D4D<aGÐ!D %ÔBA2$¨TÐÄ@Å!h(DCD€,¬sI!&Rà!DÁ‚€N€„(bB0B6…D„ªAIáÂ"""."AB$@""B&DA‰„%Aˆ¢(@8‚Â"Ä"Œ$&"F†€†ø;ü ’(88F1‚#aAB!:”$B Ä"AK†¡8H "*D B‚À!Kc",v”¨G#’39.`FPˆp$äB€TdEQHLB(Æbˆ->Ñ%„#³$IO"²!˜$L#4N$Bˆ(¨!)""2bð„BX‚AG(!H$aB2)Hø"ƒ(Èž$„H‚TA@XCB€„,‡$ðôf" Ä$BT¨-$ˆDh‚M¡‚@’B",`"D,lBJ**¡!%t!d€a"$@Dƒˆˆ(ˆÀ!€†p$„¤HH„H<7¸"€€! Â€h ˆ( DD(€”"!IADÂ$@ÂD$Bdˆ!%ð[( "€¡‚*ˆ!‚B€ aA!ˆ(" ƒt$BB!!b(„@ ÂeÓ‡"“BªÄA'Á18*r$"ˆ(âl»!!²‚B„¸qÄ„DR+g𦰄Ö$r¤²„¡.&¶‚":¡Á*ºØ‚ÔHˉ­‘O‘Z)’Hcøˆ$/H"È$!R"HEæb˜ˆJ4HMBBà$òØ9°!r!NN„)B„8‚†¤!BO„BQ$G*,²!³e†‚$-$.„+$"BOTOÔ$ñ$#6ú(C‘!*¨K„ˆ""Dð,C!‚…‘HAZA‰Db(†b(%îœ6ELÄD¤‚"¨!S±1Ô%|²D¤(M’[8MÂAˆ(nDJ¦B #œ‚ˆ+!¨£I¸DÁCjC¢"’CH"ÒB"*hTD‚Û’Ô"‚ñˆ*ÔEL8BP#‚G,&$$b„†.ÈDg$ïbX$ƒT(‹¤Ð]FqdÑ6Ñu5rCÔ1Ó$ÿWÖãtü‚_!â)òÁ'|¿Öþöb/'eXkeK¦~‚^Gmao÷åÕR/õÇÑO!î3v!ö‚Ô[¡>"VôÂÕO%út‚/ñ!Äcò$/3øaVƒñ–OY©¿¡á¨òÜ¡ŒõöoOËê=‚EôgJîþF¦o4øŠCÒþGa_TüKÃßÒÒæòÂbonüJjo¤´Â¶ÆþNH3›1_DV"áñcDw"_câ_¾1»"zdæ[¼ñý£Ã_þÕòmDáö…Òoa¼Ñ³ÁóG$-‚š±ƒõcDO$øT†W®%òd†>Ç=A]Ã_+SFæôä²Oa¹¡÷ñxõ÷š‰µßõ{}OÁú8Ì_ÖxŒÌ"/Âø$Ç·Ì]mÍå‹(.AMLdÏ(¾bì¬ôÂj/†ôJÂ/,ôÂJ/ööKæ?³LÓE}ÑõR_4Õ1µRòrNv/Bý–Â_oò6/JùcCôSwR÷gò{#_Ròa%[b{:nûqç/KñÇQ;Ü3ú²2?^ó£ôo#úu¦¾6/Jû4£_cúóW?X÷å‘oòDEF÷ESoóÖןåÿ“tß9å=ýqØHõ©EO^Þ\úcŽ¢ojÚDú$…Ï^ô©l_ŒÚv,ô((OÄöŠ&ï*øjÎo®öÆJ¯,üJÊ/¬tâ6=SoqôS;/õB~3Tñãõ}_ajk>4o(ýõçG?eñâ¥Oô$!]d.‡Oñ¦ñoqüñs;/8ýRƒó‡t/XóæÒOgêaú²4o(ýwç^çOóBEmAOvEô!µOõæ±ïsþá?­ñѓѿMsõüñ'o¨ú"‚k‚®&oHþeÏï6|ëúg.­e%ß–ô!­ß8ò‹¦ÏbxŽþ†J/¬Ø*üÊj/®ô:‚'C.A/CÖ´Äacá¶$ô„sSÄ2CòÅ2A,ƒòá¶'AF¤?EâAø2d>å/CüÁ+Aácñ4AK*O:7EO*3¤_.3Ä_.!üá–'GF*øs„n„/CÄÁ¯CּܾÄaíbŽcÇ„Ž"O(òÁ*ctÁzBøáŽBÆœøcŒx"Ôhü*¤M¡âéØÊA¡Â‹iÒá&ˆD(Î(pb‰CFhBJHˆN$P"à„Úôa{B B#"ÂD"D"„HD`B(A$ G$‚†"d(ˆB :f˜Œ( "‚H&"rÈ&A0H&-H€Ä´³È–†A%•P!"$ÂÀ$CAHLAà2A‚"!C+(2à,$D3ˆ*h‹¡„>Á0,@$‚RB¤(E €’,ˆÀ‚"ï$,T!(@$Âài Á"DH(A b$("AD€JL8!Œ¡„@!èB‚H)ˆBˆ\(„è’;ªLH‘D5F"ÑBƒ‘FD"DäA‚4!$0%"Rà(ˆA!(!1€"4*I„H¹ȨÀ(è„‚2$IÂ$’*€êˆ"¨‚$„ˆ.v0A#$D.$°È¢ˆ„ +"BAY4°$"4DB€bA*‚È"àBBÔAH H€L"49ÊÂ"Ä€LÁH`BÐH$D À¨ ˆ (à²?Y!@B!DBQD‚ADE‚²dQ%QI„¸$”&KÁ@âÔ(AÆ(LLp"!(hŒ(QHfˆ‹ÉÐ(‚ƒˆ"„HAB`„`Â! ?”( $$8$S4‚AA$bb‚$C$!!$#A´"ŠA"C49C¢ B‰ !@’#@H˜E²¡4„"ƒFÆ“a È*$ATDAHÀ&$ÐA(L‚B4A*fD "%„A‚‚UaB‚L1$RB 'BJI¤†A„¢„0$"fA FD©ˆXˆÈ…¨N)Yü¨9`$P!4$DÄAE‚Ä¢R’A$( BB…QBHM‚A¬"*´$$‚ãHDâH!a!ƒ(H$"‹‚‚¦ÁHEUhB&‚¢(E"HŒ9±I‚€€H@$ˆp$ ˆ‚! !* HíÅ0$ˆB$JAÀ!€)8ADBHALB*(@!HŠ"a„@@A‚„B„B $¸1ƒTa)”‚M!-AtM$E‚a$b‚sBÄDz'DIˆfA.ZH±Dt”ÃC³„Á4/"AbD>„‚JsbäA“!ˆI5ð2ɵ´(R(Ž(À(WЉBbDTàÒ$¬+‚ˆ!¡KD¨GB"Dñ!„J1A#s†ÔDq$$AdRDHfÄ"Jr„laDII4$ALÕ$M‚$"#‚ÁdDÆ4D‰øxˆ‹…‚ˆ‰HÄ(‚ˆr„˜I8„&¨&C$‚d‚Žªò¦"#¢AidQ\TB†”dL2„DRdCÒ¥&x&¡c$aIô[2ña$Š2'-4BDB¸äѱ£‰¨¡H#kˆ,t$$®Fs%Qñ©DŸDÔôaŒ‚Œ:"„)ĨŒ\‚8$B)ôb;Á+AG\_aÕ%öaƒk3$M‚N7C*Ôtu6ÕTùGDOTü÷WOmñ4d+#nŽÖ/!üC#~a¦ñÄV_yû&&_Gñ¤$ok¿”ç$ñF²/.TFODú憞R_‘ÕÙòø¯¨øœX»üÙ,æ*öìÆ-&S¦ˆ_ÔtCÿEÉÜôK/UøCENe?¾téòDÌÇ‚ÏâtêÜŒøHêÇb/Š3»·ñ3!NB•?Ròf&Ohý•ÑOM2&MO9ÿUttbtOgwFõ$eOEöÅ÷_eþÄôkú'"o$é(óÓC?Aµqú…Aý÷$OBó¤ObÿvFkoI¨'DI(å.»2÷¶÷ÿ¹ü/8ÏôˆÚ¯©õº¼Ö´¢¶"²bz„ÄŠ/(ôKIÕý©®?v)ÙüILŸþþËm&Úêø*¬ÏŒÔªüHŠÂâH¦ê/ñQr?!öA/5ñARA÷cÅ/]ù’3n/+ù²4^rO4å6µWÒAxñDEOTç,üGáoMë*¿2þDÒ/,ñÃ¥²nÁoDüƒ'-okÛfëKâDøòâ¾TKÅgDOD¢bnR/DøÖ»¿:ý^Oˆ}Êú*r+ó/F¿bzâòÅ$/jØ"xKÓÝôBgo"ú¥Ä§ÂOÖ¶lôAÆïÆ\æ/êúJ®O¤üHJ/Šøª¦O4<-³/5´!—S?ñRCa”WSòæ²Ogû¢OHú&wsOqöSTBvFåBÖEöeÔO]÷ó–o'æ/ö‚RŽÒ?!ì¡kmñ„Ãogú&´GkkûOJøD2o'ö+&NDOFö¤¤o/øä·¿—öETÏ)ôÊŠ¯„ôhz¾bM†Gloj²†x„ô¤gxøgaß„ôå¥N$eŸ‚öÅEo¤þéæëLÏ®Þ,üÈŠ«H¯¤ê"üÏ4p2ÅA'SOtáö6AaOõ„s[O(³¤ñÅ2[_,1An9FÈ?G¨Â'CÁ'CO|ѾVæö„Žs_(â(sòÑ2CòÅ'&n+öa$Jzs´Bø2D-ͯCÔ¼Ô¾>Ôö,b8V­Ž"O(òáªG,®È‚î!Æj|c¼Bü"„jü*$kÄ¡+äéÒr1*=Ç/õ2G/ôG/ö6goö²wO<÷¢6O8÷¢6_,ócv_,ñCro±GâkµEþ2Æý2Æoü6Æ/ÝDýÒñIû—ÅÎ&_<åhò„Sž¦_-ññäo,ñÁÄîwEî6_Dþr¤{í/FýÓé¯ÂýÒA¯ÂýRaïÊÿ6Iïjþ„KÏhú¤CÏjzÅúm®O>ømîî‡ßÆâzômŒ/RüϬ/Bþ†Æ¯Æ¾†þjÌ+èïÄú†éÊK¢"$"M"Cbb@BrAÔDÂ$!(+;!ŽR(,$"M"CâB!¤€$A"Àa¨I¸ò„`B¤A&†D…xAÌAŸBB˜„¡O(”(I”(A(IdBB,3Z,¨HW)B‚èbI—A!-1‚'Qf$X" ²Sˆ@±d‘""Ò"¨!Â1ª4YGB$*¤iQ)ŽòˆdH›A‚%Ä"LÈ!-Ì(-‚bAXF³„Ò(ôH‚AFb„lxiñã+0$N $(±d"I"eA !$#áH6„!‚’B&”€9áBˆ)t‚¦"I"¤+ˆ‰–‘‰„ˆd" („*Œ*T‚H†ˆ"‚F‚&$¸B¢#a`J ‚IÃBˆBɤL†âRtQQATå`&+)"gO²51AK—šYÔB¨9´BC³Ä4*‹@¡¥1ˆ‰*ø„¢ˆˆ¤„Ê„¤‚=FÆÈŒ+h*ª,ƒ$4‚‚)ö«J±!ùA2B˜Ê< #m¶´4H‚‚,"è.®¤,…¨LŽ’Î!^Ò+<)K˜,ßBøÄk†‘DJ$”tj”iŠ%á)Œ¥XÈ©‚ˆøbDæII&.aA¬è$â$@"¤øsš!+B#´B#$ôFAnOöd¢MO(ôá‚Cî$d$j4ANDˆ/J6b¨!Šœ,õA3Ž¢`K¸(Iò$ÔLªg+ÎÆ¢ ´?H¨´:ûÄ$’*8بOˆA Å$Hââ¨DÄ\ØQœb"B„H«ˆ‰2Ì_ÌMáæsr5ÒõT^C_!øFÑ/ñÁD7G)ñÁež'k.{/1áTÿ×?4æ,ú„µ,ä<³Óõò•õW×Wï/ø’„†oÿ´ÇOhüÄoaýWa*¤%O"ôÕ÷þuOÌöäyw,÷ȈÊuïÛäüÌ]ˆ+ªEÖTüÍë?ŒúlJß®ÜF†ôiiß¼üåcŽêŽú欯(¤Œ-ˆ/ÚþçÂgª$_cúç1/3sUó?ñua¸FñÇ”-†m1Nû#V¾§_!þ6!OBÄ$Oþ$2O{÷#$?ZýEƒñqq>óWñ17÷ç¢'c.$-"®£#Sd}å/ò$dIòQÕO‘õQXÿ1óU[‘øYX¿añuÛoHøÇï_®z¦RFodþÏKo¶þÉÎߺô/!_ÖöéÍ߬þâèojúì*/‚zF8Š…ºBöBãÖ!ó3u/2f1VòSQ/2ötG¾æ_%õ74/Jy’öÒoG÷#µ?qæ_øeaKFEäNufó5r]¹²b1œ/<ñ±²]÷5;¹5âiû‚¤O+ýrd_t÷a![ûwD_vaõ![¹?kû_g¯ïûšÉ?%ñ“Ó/=øu¿Wú§êfêhèBò&b®ÌdöKm/Nºfô,IßÔôáåÏN¶ïújf*/ˆôBŠ¥ò¨ÊïÄöQ–p2ÄE'CO4¶òaIÑ4·Eó„2M_,“_,ãBó¶%ôa$Lús$5ô2%.¥'SMÁ#Áñcñ6QGO:·Eñ´K2/õñ2o¹Bra„rs”'C}zÔµZôñã×÷lAŽcׂO(2$¬òdȬ†üáŽ7„Æ.È?Æâ‚ü"$‰|*”Ì¡‰žNW5õW7S/1t3õsòC7ó¦Ó_&ó†ÓM2_<õE28ñE?zAäjóA¤/CþS/[úW/WúRC®•?1·¤ûA_"ú´So&ò„Ó/#òÅ;'iùq„_jsqô¥vVø·æ3õ'—¿ô.—¿õÊ—¿ön³oU÷n#Oøþn"O8þ.¢_ìög+_è|gþ¥Ž?Æò¤NÖø¦Ï7ÄoêúJdïnºJôꆩöŽ¢ïFö¸´ˆ4!hSdB*8A*8AÆAŠÂAÊJÊ+#Ž( &(A.T R#¤#5a/¤ŠC!&‘)8Žb(*ÂÒb,3d.B<1BrAؘBBˆ)8BŽBJÂBJB"ä(djðZ£×’$‚qˆ3$"t’d¦, \¤<$"äY"±…Fä(„¨A!HDâI")bKA(IdT"„ƒÈhH8‹BA%x˜„aòH‚&±ˆ"4("…ñˆF'„$B‚„ð]õà $ÆBA‚-Æ!ˆ(#ÄMr0A ±aJ$˜ÂBˆH‚"8!A8PA"A(€„Ò€XBlˆDž‚Dà$"˜"B‚"(‚,À‚%Ña8‰$0+D bIp‚"‘"DáDN!"C¬$?!„HJ(qbaA„Šd!8Y€¢ˆ#‚—T ´tbB‡$Š"ˆÂBŒHÄ"hL$8&‰T"N"³Ф‚)‚BA´‚X!êÁ!,!JC8A"R=Š!&"´"b"DtXhB,„Ì1„$ ’¢¨ S((&(Aƒ"¢H¥¸!2ŠrÀ–B€…"Aä(B&f!6">CDH"ætfH&ò$€¨U(/QD$#r$¤(Eâä(!H*x„Å$Zb$° &XH,¶ˆÂ‚ (‰H²Œ&˜HAf´B2,C)ÄH‰h"„?ä ŠÀB,€8B ˆ „,DÁB B!(!# $A@3!`AŠ4IÈCÁ"!* BH‚€¤"ˆ!$à‚:“H`C((HP"°A°”‘#A"D LhDP" ˜A$h`+ "B Aä"H’(,ih@´AH‚(" ÂL?8 "%Á(€E¡!‚IæB¡2!LáD(„„´BsòT!)äÁ"%!*ゃñb” [H”1†‘((è4‘±ƒ‘B'j¸(¤$B"(àªN(°-ä‚4D,´¤…¤j!²Hâx3µˆPC!"(²BÂ!+aA0$B4D£Bu4ˆ1p‚Â!ŠbA"È)R(I6aàb$ƒ‰c,„Abª‰„b*F’¨$F8d$ ÃB„Ô"$Žaÿ• H ‚!Ñ$¤ACC‚V/B€‘B@2#‚!(!B@!"ˆ%a;Á ÄJ"D(†$‰‚’HÀB"(„‚@NŽƒŠ(H„A!J”`)ˆ)ÁB‚@bJ¨&¢F"‚8B<¬A-!.‘#$‚CB†“A`D@„Q.˜#)´ú„D ,8$F¢(LIÂ!F$ ˆ!#(rñz¶$CH)@$” #CÉB†bHD‚€Dš„¡H@J2”ˆ$4HðD!–Œ, B#¤A@Ð D"Œ„‰ÂÍCˆˆBqAâ!X!²'!ª4‚$)"$B,"¢Jà%‰Ý!(J9ƒa!)Ò4`$K'(ðaTÉ‚ˆ-"AJ¤HD'H-„¨#BB‚H!Ô”„+(E$:B,(HцA”$K$ˆ%ÄDf„H„hCÀD,CC–ÄC"8I”‚BÀ\D„¤«D)"„F”d‚à‚X‚”BŒ(1%( "bT""(„„„àˆ.‘"Aô2APJˆ$$HSF‚"áH´Q-„'LØ¡´+"J¦ŠJ´a‰”¡&4ÀĨ(%a!$†¨†Æ(D@†7"°#„"†*’#‰‚:†‚‚‰njÐ!"¡B’J‚D"!N„ (J¥&(T@³±D$è&h)JB¢0L¨‚K%*l+1@…B"O: ‚„@°$N¨ˆ1ð¡"((F$„F¢(fÊbó‹dHBXCO!¨1E¢ˆ,ÁB˜A(¤dhjÂ$ªÁA‚ŠKAð¤B$A€4„,h(¨K(LárDÕ˜&ˆˆ64„†K‚‹„ChHA=ÌC"ØAÂ((HEt„¨ŠA‰„„H‘!ŽÖ „ª¥F´!B$˜‚&TˆJ±„ jˆ„² ŽÒ ‘A*áHTéNäBò(ÍÆ–̉>Œm䳋÷A$TwF‚±Aôcd~v'5[ÜK½ocá!ùÁ[T|ì}ë'¶BÖæTæ*î-·õQôÃÕo%©ù3ýÃõ~&nÂ_üä„oiéjéY¼eüÃÓn§O+|VåRöE%_>ÿÕÓ_O>yúß›,øŠ‰[þýíÏÇØÎüæŒAONø„‡ÿfôŽ…]¦/îÖöl!Bö¤ã?œø‹‚¯*²&òÄÈ/(þŠB/JþÈÌ/oCò4Aóv_1á1±Sõ&7ñ-&_.ñ4iñBfoò6CW(_qù%OTõUW/QQv_!±“ý/ø!"?hówaoúbg_/êcó2´/"æ6ê>·cþõÄ/U–EBOl¼³‚ýë/•ñM[õsêŸö)5+d/æö,o"Ò"îR²öjE¤œündÏV’a_þüOÄçè/¢2îï„|Êú"J¯®üH´ƒÛsýVc#5W7/5ñS;OKÿ¶¦î¦O!ó¶´okúA×O8µÇú'u/QbVö¥µž5/SÿÒC]Ò{?9õRS‹;sRû¶6>6M6+#o(ó£.c;§?CwBáR¢dBâTô§#?õñíR/!ôØI5ýËy–ò±âîê¯&º¦ê*ú"!2úã©ëÿæôi).-ß’ö)lï¦äìüfhÏfþˆÂ,øBH‹"4®ð2Q/Cѱáw6ÁaOá87e,³¤ñÁ"SòÁ3g¹"ra´!ús²'CÁ/CñD‘#á¿6ÂqAþsSä+3„_/—4.Aôá–/Fra„úsT¨/CÁá¯CѼݾ÷HaÇ$:Ö­â"ôá*Erá*ôáŽ#ra¬†7Æ)|"¤F§BkÄ¡J¾B9õ=·Qô"õB?ö&7o÷&'O8÷f&O8ÿ&&_,÷g&_)uGö¡öwUjóE„?kWô#§Qô"—ôb—?ö¦·õ&·_:õv6O:ý22_.õs#_(uCó¡V7®'¤o{¿Sò2ö¯öûþ¯ô9ܯö¼ôh&O:ôh"O8ü(&¾ôilO¾üI,/þöMlîOßÄú¢Íÿ„ö"Ì­BïΜJ¯ÆÜ*öî¬ïô¬¹$(MbMCâbl5BL8BD-AD!Lº„š†+%O(¡!M’Ð$(Õ$äb.V#äB8BF-A"#!:ª›‚+4Ž(†âÄBBÌ"EèBHB*\„†´¨ˆ´(’D‹ˆI<*O(4(Š\È@˜$EhB„.£Ó¨X Ñh$Á„ø2D$†d(XBA(eH"†¢Á%A47F‚6$˜2ø1LAA,<%œD$@8ŠÂBÙJ’$‚(H&X¡$RA„¢xB”ˆH1ráqQ *1ABE4Ä.ˆ-„#A¤"DV’%ÈB‚,¡#xÁ$ID£&¤)N"9èAADŠt!ÂDG`$Œ¢(°$T,’„((‰D¡E,nˆd‚#$DâHB4øè"!¢†AJ4$@²ƒKA$*$dž"C„1E#¢$š"‘4df„‰*4fDKŒ¬BH‰I¦‚¤B‚-$"Àd¤`„©TAJò,‚BB…Bbˆ…ÑC±ƒÀA&$bAÀ($1R*$‚D$b",„!B!‘Ch"8d!"XAXf€Â$†2)B¸’ÄX@„˜(,D$8$$4(,4(A&'BÇ„C(A¼?… V"$A0>ä1ã&%BáD"&ãB¨$'D%ˆÄLˆ“!>+(E’$L¡BOH"dR€5$A,d‚B+•‰ÄD¨#Æ$l#¢$Y&‹dO„’ä…¤‚d…B%Èd¯¢ ”D€äB.DAlB €$!, `(€N2À$„„á(ˆ‚a‚B¸EAÈ€ÄH…R!-$Pˆpb!ˆÀ=CR®„0$,„È@‚¢àf<Hh$4A$ ($QDJô(„(D" †¢Hˆª”(†E„2$ PH0(H@±/D#D¡!B'UG"8&:ØA5"IA$àB²Ä,•T88CrdBF%“4 ¤Bž$(NK$#h¤,Ñ(sH"´AÓ(RI/ÄXB+"È#‚´B¸$´(F,¤JI„èD2B ˆòH$Ã^a8+!c‘"'A,"qa"É@B¡D\!#ñD,á1ÂDL-D*ABD¥T$""JD„dA”¢Ä#Q(`„J¢)!GÆ,(Ø$/BèBH¡BE(‰I„rD)ÄHˆ"àÄ IRÀd‚†€,„2(@$Iäb¡I8H%DÄ! ¡€$!’$C$808$ƒ*|(dªAbD!€$„IÀD‚HÌ)ÄLBÔ%¢H-%A.AcB§$a(+HÀB$' !#‚8Š¢)Ä$"†vò„Ž"„J-¤-ÎAP‚†âH¨¤_BHxB5(ƒ"2d£Ì$B‡(*XHÿ6@$2Â)ŒD€‘$R"Œ"„b!0‚H€ „(‘"#ˆ"æD‚$(A4‹%(H`h¢ ¤T„.A‚$(d!H\5<$6ô!ÄB`fÐE‘+ #s!ÄA,i:„„b&€ˆ„´‚£A N‚!#ë(""/I´2dB",â$È"GCyA⡬±(J47LD-¢È’Cø‚BU¤FƒQ"L8"E’„°Jtª]5@!@B*$AF†D"DÀ "!!8!I$Ȉ€h‚,a¡‚ ‘`‚…ÄDƒ&(ÂAƒ‚N=£^&4H’=%‚DšÄ2IAf$$B"J"0bF(H`$h$€ä,AaF”„BM˜IˆŠ(aBФ(A,r¤T(CèFH2,‹"ÐhnÈnb«ˆ¬Dè(DúATÀ$Z(£,„$¡R?ABãB‘ "€$ä)¢£C"r¡Q°a¥‘ˆð+$ &&"&Q"Œa(Í"G‰Ÿb¹¡‚–"I¢D£’"H†T*XˆC*dz$‚ÂH*âè9¶H0BB!+B"*T$^!EDHWBT,„¤B $ €˜Â0".B"""‚ ¨BI!ò6¹†r‚)q"t¢%DÈ,„¼(±ˆAT „3.X‚©‰ø¾±$$C"t"1dNB%*h/!""BÄBBB`$"b-„K!(B"LÔBÂAEnBDœˆ’HR¥H4¢\ȃ&‘A(Dd ŒRD€,Ä‹Ó!‚ X@„@LGC0D K…)B$„( ‰’$É€JBŒ„B„@(F&ŠòÉj„AAh0CAD„HIBGD„(D! "HDDÄa$F¤(B€H$’„(AA("À@HÈŠ(Ü5*5tñBq)„5t´ñEMB&&ùO!2qCô"N2 DQJùAñ/TaH*52:tbwO(#&òA"*.$B*Š"³!"WEý¤Š Šø2l++”DêJRDFìB¦¢&¤…¤($æLÓ$òH(H'˜#ô*(J¸´FòD$H Bä3ôCM64)2Tk'c‚²D¢"*–CÂjò´F„‘A&¤ÁrJ…”´#£%B~BoôDdL1Ô$aR(OÆÑ(I¢ôTÔk¢ƒØHª¨%¤B†•BŠš*hÌèaÄ&ò̦†bˆ.ˆ‹ÌŽŒ¢8. 6¤‘#ö2AŠÆ"~JäB¤ajÔA¤%J+BgCFñÁ#ÄÑ+$"8",¤!C!uD²%TAMdB}tr%X¡ÅÙØœ¸*Ø4VlL²Hê*xzˆü…h‘](Õl’Œø*‰îƃNvÄÂÃ$$/"ô'`UOUôCA+Ä4Å8nQOI4ÅòaCOT¡TLórV]…+E.Äþv_Uò7DOIÿ&Å´¤y_SäIî²a¤_d)Ø!ú4Odü¤…oZö!ÄoBÒxÒ·ñù夞M…›ˆ›ˆ¸m¡ÌþÅdŸšTLWBEÔeöM$OÈÒÔö¢%…Ñ”É=ªÏÆú¦‡ªúæA-Šëˆ¨oLþ"ÖÓËTH½E§áñq_TqÅõ5f_Gù–OS÷uD_1tQ±5·vâöA!_$÷ÖÔOC×EýåuK]Z³Aýa4kÔOFô%GK¿ºêCò$e[_ÄeOh¾FöEeOVænÿDô[uÃó½ùïŒôȈ?ˆñ¹fülL_þøè¬Ojú¤¬OXøíÌßrøŒÏ®þnmVÚ™ôˆÃŸžþ­"¯ªòînG,¯¨xˆúêΧ.¯žyò!!o"T5£#/2s!¤*}ºab*Ðrò%$s_ó•#WUUÑQø„¤m—_Bú—&_Ü2=A/KEñ5”OmùÕ´'(OAûÖvOZy—%Á-!NAÔ_4ìù†ÕYÿE÷]Y/´Aô»õlŇ´™hhè§è.ÁÆ÷I¬„üBEGÄü‚+†òDl/Fö$hG„¯¤¤DRtJ#É/Wõ55;UN;QndU÷TôOwý§$²oCò46_S÷Ts?DäC÷Te_òad."ME_ö–u[ž{‘/ña£Iá\ÿ4R+2¾–OKû$î;µáþá/Tr$‘!Zó´1>'/•óù¾¿‰ôÙ[/•ýÙ¨Ç÷iîί‚j*+¢¦Ò™òè㿈ü-h¯”ò,$Ýi‰ôjiÛê¢öì®+ÌJ¯ˆüÈ*nÊ®÷ð%>Q/Q/Áak1.AOâ:7Å®Còá2Q.ÑAòá–?Aòa$‚?GØEú2¥ORü2…¼Èágv´ñ„sSç)34,3µ-(nÙCra„ús´“/Séÿ:EÍÙ­ÿ>AO”÷,ÁÏ8>­Ž¢IòÁ*׆¬ÌráþK,Æ›†7Έ'F.ħFK„£œâëNNÃÖRóA/RóA/VñaoBóA/jò„Sþ"O8åcòåRgò…RekwAô¡6Dø3ô;…?RûVÁ/RûÁ/ùáoû–Áozò„SOoú”WO+þ…V_/ò•-j3EjóA?C¿Sø'õ/•ôªý/ôªÝ/•÷®¹o‘ôj+O8üh.O8ÜhúÅÊŸæòÅBŸôôá&—„î&Ÿ„øªÄ¿„ö$„-bƸBôèŒ)öì¨mBÏ7Š‚aD(A.D BB"C4a$"H€¼Râ(A„$„äB„$ÅRDA !Jˆ8ŽL‚AˆaÁŠS„®FˆAˆ„ÈAHƒˆ4ˆˆ¡†ˆB"ˆHP$!&O&Eq‚*1D4HD”%Ø!1,áABF¡BÁ!`Bá„@ŠD B"…¥#ˆ$‚€ÂÜs×”&Å$IxJ$¤( €*¨†H'i/¤À-ò&!ñ„R˜C*õ„$@„-!…B d4Cì"2")2H)&d"B0!L:(%|*ÄB!$*ŒDòé÷ $,AtQàA!1A‚=$ "D%dB"AI$âBb!8pf$h‚Ä”)²’„+$ŠŠN%GTD&ä!í.Dµ"!q9"q(QB"JÆ))²(t„ò¤A"0B@,,Ð85L¡1D##Á"&ÄCM($€SD‚( ”!&4D(6,ÁB$bQ*8nÄH†a‚…8‹(ˆŠB8"A$¢]HˆE˜c\œˆ„ ˆB„"Jú?¤$A`$"„r22&æ"¢Râ,Ä¢"hOD¶e´œá,’(IBYñ"‡*´æT†'"g&'‚F¢¦…2!‹$ƒ\ILØÈd$$$B‚#ô((b?, (¶EFB纑$¾'IIÔB¢C±AAäBIÑD¡"v5Ô! [T^"J,õ‚$A/¤Jò$!hM!(Џ$ö$¢82]"Ù2(•¨.‡‚.(ˆ"DfR8\ô(JÆ1HCr(x"‚ò¤HË$G*#D1Bðj7–c!¤m5'A¤"$*ñO"r4td¢!n„D`FKaÊ´£”ZI¡aoHçÔD²”ÓDø&f¥LPDK;¬á!‘!Q"–ú†g8´Î#AŽ(†²­–L.DìRBB.¢+¢­HŒøB(ˆ)œŒÿØMñW4GGLÜqA¡äøÅ%ORäAø"(F_D±õ1AoR”eoBôA…ou9uOSå^z§äÄAŽqOCü•ñ_Jve·„ØeXD_tXTODþ¥¤/Næö'dBî"âò21./¿#Q˜Ï‘Ѳò¿´šú,«?"t¨Ó#Ú$øA)­‹7(?†zâÁ)7ÒŒúêÆ%øÂB#ØîúÎH/¨ò.¦-´ƒÝQót4Oµá±Sá•]_g÷5K™>O3÷tOe¥q6QäBö$$On÷•uuoGþ$4[Ù^kÕ~5DõdEOVô5¤OJòô$ORöôeOföed_.þgeOF¶töåò?æ6ó(:ï¢ÓƒÑºÑ*ñ*¾Ÿ*û*ã6úé*c¢¢-㯾úNb/&ö«ïZŸªþbâN¶êò*(ÍŠ/ŒtÈò*./"úvð"GDw)ôae/F3dOB÷¦_Jr&‚÷d".qOf¤$_Vø2aBGDWvOö‡Ä/<þÕA;Èø§u_ò4uor»Qù’2šÙr7hæVºáþcd_æó·t?#ñ!)ÏsSŸ!Ñ‘ò2·—’ßJêªúE‚𤄯¸|­XN‰hü")Uõ(¨ïDäˆø‚ÌFøÌhïŒì¨l„LdÌÓÝAþ'a~6/ñAR/õa&oU³Õî{ù§¤O!ãCò46oGÖuöG!_WñdR_Tòee_BúeÖáýRQN’?ádò¶•_NÿÕ’[;®’:ë+µ4úaƒz$±#’!Tò¤÷s¿1ò;?ÏÒò¥ø2ò²®b[®¿âº&¨*O(þj.ÿ,þcA¯ØüG!‡F(â¬NnºLþªh¨´Êè$üŠB/¸öÎbð24\ö´ÁakOR´4âzõ´6Còñ6A/òñ¶#òeDM¤G¡¤'CN±/CÁÁ+¾ñ$aOAòô7_Gá)s4ôÑ2GB,%òá–#ra¤‚?G¥’'C>Á§CO‘<¾ÂaÍ"8í(ôÁjÉrÁŠòá®#öa,xc¬‚'FJxjÔ„&_~õq"_"‰ÆD.($AdòD(N¤KAF´A2XG†Obfä*±(¦IEˆTnGcMr8$D‘‰ÔA•*,á‚„C$ˆò•L,Al(ND=!é8t£tò(„†£AÍ6¤„e焃bAìb”4£êD´¸J)‰1&‚HG"ÄFĹ`ćD(‹N"â‹I ¡A¬&aË"Q¡løB$IC9bK!F†$¢O8"$C’+M$$ ¾¢'AN‚¸„$‘(-Eô¢IÐlrB˜a`"‚ÔAÂDà„*TH,¤(€¤„ HÌ&Ñ‚áD$ˆ-"ÃBrä!"–(ia„KBƒR$„BàE4%‚¸M°H.CÔ(t¬Á BÅ„t8”…´A!ÁXHÑ’–(D‘B…ÒA–X!ÌT&E,¢RIxH¢!Iä. €„ÁL(€")  G#€„KH„FAHŒ˜IAB)˜(!¨•‡d(0LbB0DÄA€iT(NÀ탂!RÄà„ê!!2$‹­4 aMˆà"!´Hr$H”I±J(Ã!AJ¤D:Á€AèI!¢dEÈN¤(GC‡D“™¬ÅL²AèD²rÊ&HIxeÔälÂF*TB´ëaH@"‘"…ABG$@ ÄABE1b$‚D„tXˆHÄPHÐ$b„A‡$!BD‰B$@!‚!ƒ"DHBPA(AR$È!Ü>#$,ƒ)ñˆMŠÒbØ(!Ô(bA.(C4(ðD$H>ïÄÙñ³+O/R¼%ôzª/Fúvª/2ö»b¿Úò.»ï­¹VÔœò/)d}ÌüE6߯óM^Ç;ןöõZ¯Ùù¹ê¯îè(ù†/:ÿúŒ_üý{¿‘û<)Ÿ–ö,mߺó'%ÿîûì.Ëþψøˆº§¬¯Ö÷¹¸Ô3ôaI¬ôIŸ´ñaíïòò½=¯‰ûE”okñ44¯Ñ÷}<Ÿ·õyÿ•y^üMMIÛ»½”?•ôŒæ}É?5øCAOzÝVôõ•Oɱٙšù˜Õ—D?õ¸y_Uúh(_Vô!ñ±¿Ã½³ýÁEJqQÑõsm¯4ö2›ÿ;¯µŽªƒKª/ú¬e_W¤$?SBV¤O³õد©üØZï'ëùšÒ/mµÖùÒbÈ7ïõ_ÿ5HµÕëò=¿Êóœºáù¶ocóß‘ñv?¿ç÷=R¯Õòi-_Äö¨Ï¿âèµÿ¯÷¿ýØ’/5ýôCþÕ6onóüïOsö>}ßVsWòBX/1ôi>_#÷ß¾ãû¨¬o(ó$O*ùùì?hÿU"¯fõhÂöM(nl¿¡÷¸þï÷ò¬­ùÚÊ+Q^žO-ûyõ$'c­S¯ÃÑ’tØ’·Ñ>üŒs“ô„2O"óÁ:OÂóŬñáž%xaÌŒ7ÇŒ6ôÕ¯CÂÑ«¾ÑVvò’w×%ž2G!_íôÁ:bóɶDÆò(¤¿åãaù2&>ç§aç!<~ô8GÏB÷¨w×D®OBòá>A_îÑ„òåœyreŒús‹±¯C‘ø¯C±½>D9w/õi}/‘ôi]/‘÷m;oÑö©!O9¿©ò–׋*_½ýa,ß=uAøõw„_~÷Aˆ?_þSš^ÿÁŸÞÿÙŸÞýáß^ÿÁŸ^ö”ß»/Oyýº$_½ýû(ÿ}}Ëøñ÷÷„Ÿ~÷Mˆ?ÿ_ŠŸ~ÿKŸöÿKŸöý{ßöÿCŸöò„Ó¿Ãò–×Cò×ߟÇòÜÒŸ•øövׄÏn÷M‰ïgßùîökQïn¿ôêÞ/÷îöoAõf74—È,QÁ(UèBAAñAO4(.À'AŽ5ˆQ8q&A4DqAøTA…FѨBÑh¯Aâ8ÑHÂ$,QA,åbåb1&4ÆA‡BaBA‚i8Ž’D,QH,AÌ2A.ÐA?Ñ„*‰€úˆt%’(Mˆ¸!.BMˆdf¨$Á\dŠfÈHA$ƒØ!Ø(¤A-˜HIˆðX‚N#"t$ˆ2Db%x’èHÒ!ŠÐ†Œ€K¢X¬_‚q!F1¤‡JN$ƒÈ†Ñ‚%H|rˈ˜"ÀB„K!‡$p(F¢#’Hd,ô(LAb&BX‚H%‰1JЂE$B)¸dÁb„LF$Ä*#ÈT#Á‚ƒG¤A‰$2ƒÕ"\A‚ô%(A(FTˆHR3A)„q(20B‘eXÒZ¡‚!Š•&ÔƒáD*´,ÄBƒ¨mI^´â)4!OáâáŠQB, AoŽEö((ËD„*t¤òZO«D’HK)-(!DâB:ÈH)8¬‹$E´htˆ&ëA$JR!‚‹!½,0Œ2D,1HŒèa´4$M"K„&Ø„1A`‚f/ƒ$r‰“Ž&JQ(Câ!"a$#8\*ÁFÁ&á‚x:A2D„Œ˜ò!M¸ÄhA2Cä!h„G("ðh,N,#aE(…&!<p!KBA„Œ”$Ë-FÌ´ÂàJÁ˜MV…Ôj%‚d‡.Õ¢¨S!'‹„?¤MÃ&X(Ÿaá"©cèEé(Õ…·„Äh‰²Dò„(9~ô›†©)µ’±&8ÄNx-:.‚,‚éˆÑ4鍸(GB‰–ˆ+ëM†2†¨8És’£ÇÀ"ƒD5"!†$¡$H“"a‚@N(@„hÁ,(!Dc¥b@.*)bbA„FÄ‚"@„H¨h„,3DADF”B$ƒT6Œ¤$I$#…gÅŠ€.D°B„¢¨H‰Ú"à#¨!Ð!HIÈZ`‚D&*h*‰ÈÍ`AB§) A"‚'!p$ŒBàƒøˆÍ Jr„¶A„…TÁ+A"dpòÔòä>l3aB#1#Q<¬Ô$á$‘DM2mXG&‡„.‚O³$bD‡ˆYôF¦ÄrC¯ñ‚X&Ä‚MD)á)²ÂÈ-ˆ.MÁ9”Œt´™ïŠô$ÈÔöÈ,Aô8£‹!MBN¨!†øf1Eƒ²YÒH²A"æô((ÂɘHü=ª¨B£#1HðZD8-~È$/A‘"‡D)68$‡LF!t†­#$h'„LVH¡¢-6‚Œ¡D­4ˆ1Bƒx"¤a% Œä¡ˆB¨’IA„ˆñ,CèˆeBD„DŒfCˆq"Œ„ÈX!„‡O'&`$,±""‰ÑB´N$( ‚P$fH‰ñˆB±"#‰2‘#bAŽÂ£"‘$ÄÀ$Ÿ(ø$JVt‰’F´(”"´„B¸!A2at"2HFÈL"„B,‰ølšC‡8„/¦0A*œŒE(8†° ÁjD(’hŽb„Ë„DðQ!FŒ„ gá‚2HË!–„‚4"F!ä‚5"°˜†B˜ìLÑ("(Ü”¢!VB"aBвHD‚rñé½”A‡!`BILÈ"DHX3¬‚Á!”Ë"D„”¶€Ú‚ !؆d„&!áHÁƒ‚‰AB’¤I&ƒ" ÀXA’ÀÒcÌ‚IÄ!) ×Dhˆ‚aL6K„‹)–(Ùb„M¸£ŒªBD“9BIÄEˆ$x´Ô"¨1‹BKˆH-Dœb‡Â*ÑBd"‘†ª(A(AÂ2b¬„Ù"GAƒ¤‘,ÔHÆŒ ßÌ1X‘„4$S„,a"Ä!@AÂQƒ4R‚B„€dP#á!‚‚DA*¸”R;DÈRˆ,ˆH8DŽˆ(‰ÔˆBt D–#ˆb)|5ltDòAƒâ‘a$-`Š1"$ „‰ˆ’0$ÀÓÀHLLÃH¢!™"(ŠaƒòbC!²!X‚C‚¡$¢<Ñ*áa" ©(ˆ˜q¬„R$0(),"¶ш"‰ô(â„V2AÐ%ˆ£‘‚Ó8±Á8<õˆ(H–ÄsLQ'CbIqT¸´$"DBÈ2D.BE LH(Ê$Ftâ„á(š…E¢„Ul(ÁF‰‚tx¢HàA$âAÄDCBCAŒ5…„@$àŠE`ŒU(tbŠ"2A.(`8D$!FbB(LDÂlÑCj4%Ä"%!aŠ&4D!IËBHNB€„ÔÈâ„„„!…8@˜DˆDD`!AƒA¢Œh!-I"¦"a,bH#¨"«ˆbˆˆG© éÈe!bR"Cb8I¸”ØHàNRˆIƒ“$„â5a"($‚¤"Cò‰*ŽBp!ÁQ8‡"((aòD"I1B€8%ˆ(BD€rd!¡"2€€bˆ@à!¤QHHðb€€D„RˆŒ¨$AjÀ(AH²(á!["$-Œ†`B6‚ˆ"*RH¢"DA/„A A((!.2`!À"‰€rB„T‚H„ C26"€‘‰RH$€BDa„Vˆ²DÔä'Z1èCC‘…’$OQôDA/„á!ñ‚ºx‚úQ(#”$*xH´ñ!!ÍhhI‘\‘AáSIä)22/#t"Ê/AÓÁòR$ƒò$„$³fâdÕR"oŒÄ!žBŽ1aoUáAåBq¤C/ÃóCâ'F¯…~R8BK"Jׄ´BòD”!KH•èB¸röRÊð4(wA£„±!T(È.fˆè¬âb©\âÌR¢h/b¤8}†8ˆHv²øJˆN"J¨ƒI¸$ˆÞ¨†ún’DŽQtáxò!8/Dña(¨EŸñBÊωªDl±"XD"E„8¨ ‚Éâ(ó$4¬ãBcŽD†bƇ³‘B)Ö*”2Ô†ñn%â8ñRm4A/†2QBZ²¤a‡ÂÒ¤“‚V)ù*/1ô&-‰”$>\A†£/ƒR!’Ž,O…r-Î(.ŒlNœJÁ…”Š'FG"ð$#°6⃕>Ä‹õ¤Iô¶CòdlïBö¬¶ßÃúl>OÂó¤¾ÇŽÒgµ/îýj/b÷\cû¶6oCãs÷¿Z/ÃüžR¯'ô$èÏGò¬6OO÷tlOÂò$üíè¾xÿ£”ð,t¯ÖâçòGI‡!/öôZ'vî$[­_‚jKH©ªHŸüH(_ÜôdÝA‡Œ刼Œõȉn(_œ¼ŠõÙngŸ‡óRNZ¯µÑ#ôw?hö´Òk¢ž+">3~H)ÿk¨þ^ûcÏBôI(nn;[éôšq¿ïûÖ/¬ôšQŽúô??Î÷¾ºŒo)áBú$ƒ/Äÿ¼R¿òtûaÏBöM(OÞö—vÏÂò^wÏÊþVˆü¿èþ4?Êþ쬯Êó´–/+ú¶•÷¸6Ïåë³JrhôH(.<ËÕI¸Þÿ¸¼oì¼ÊýØXoÔÿ§h$/cÑ2ô:6mC‹-aëNcåòÒsÕê)ôÑ:IøÑŠúñ(ÆLús-¢/cÑ2þ:Mç!Óë1%ta̤7ÇL~"Ää§CÈ«èçCÃØqýEöõaÏÖõaÏöóVaÏ^òÄóïOò„û«+¬ÿ{¨¬}[øãþ÷…î÷MˆïÿSˆ_~ÿÁÏþÿÃÏþýãÏüÿÃÞö„Ó¯Oò–Û¯KòÅÚ¿ÏòÅÚ·î_øá~ß„øóþ…ùá·¯ô迯õ¨Ÿ¯ö¬¿ïôè¯O;õè¤O¸õª¤_¬õk,O¨}Iø´¾ß„âêóI˜/Âÿߨ/¾žýjüëٯƼšþn¼ï]ô¶($‡‚Eâ‚Â"EhBB&6B&ÆNA""T(I8Ž…DBLBÜ$R„.„d!&4ÄNA…&QhP(ˆ£á(ÈFLBì(S„®Fh(B*òA-A‰ˆ´H˜D‹$)8Z†RHX‡Ä`Å8G„&d¼ÃŒŽ!„)F“ˆ9äy"‘„!E"Ù„4‘MJ2HAŒdB6-(ÂH!ÆI'BH+)`H,=,.à ‚0)a´„!Ò$´8j!0$@˜"(ÈD„7ÁfÑ(‘$F ‚RSC,ƒ´I‘¢Q#‘‚A–DÒI-dƒ$I„b„A%,‡#d¤0!HL’C‚"CH¸$tÑ’›*Љ£(V‚…A‚A„)‘""ƒ´TBËD‡„À04“… F˜T¬d$´êD´$( Vრ‹Á¡INk¸Oˆ…:!˜'Œ£…jGF˜ ó$H) -ø%à„Ç#ÎB!Õ„h(X./DØH&q¢c9$/B8á…6bŒ„,‘ÈG‚NŠdœ_“AÂ8°D±Ø‚E„dÓA$%¤„LÁ"L„B”!Ja‚/D2„)+4†¼B!"A¤‚)¢AbÅ"F”!#Ü„c„ª9D'Jòˆ4¬ˆÖ¤9$:²ÌÃH˜`„JRC¸<($1¡+Fá¢A¼?aIsˆñTƒöRO–4(e’„ „#õ$Œ$ÓDÄ!ä¦K4FB9šRJø²JÍ4¸$éC)"å)ä’¤‘Lf‚ÄFBŒë„!MXŒ¡-4«]ªD×B¸$84‰1H‹n‚Ô(’‹(‰!t¢L'JJñW®$&˜D„H§„A0ŠLòA¤`Œ`¨H&ˆ8"IØ$88ƒ„1Bh@ÌR*ta F:²„‘"I8XŽ‚%ˆ ŽBCè"â,ta‰ȃ””(ŠlC`˜A."ãI2$x2È`ÀH€C¡$‹#DÄ(H"'(`¢D+B(,^‰$ƒ‚l!p„fÔ±B0$ HˆNX!‚H„(GH…¤d""¢!"DRðùà…¸Âa$(BÀhTŽ"-4O$rö"$d­!3Ñ,q4"–HMbB/‘W…,â„¡I‚N$‡At24†kCÞ,-¬M‹‚(N4HK%M8lHò,HL˜V“ϲi¥†Edh-AƒÒC1dŸ(ôH("ÁÌ8Ãä¬"d¨2´ø3½0RŒ’JBŒÄ$Œr‚Q$L‚cô$œ2R*É4xH.-BЕ‚‡BHŠÁCEâAO*THŠS!MèD¡$‰tˆ’†‰DÈ‚àÁ³Jˆ˜Xa*q„ô¤Q,DF(ÆŒJÑRÄ"d¡ŽHèö¤ÑB@QBŒ’C1"Iá*’ñ"$0Lb…"â)xD"…¸hR%„Á6HkŒALF%òF1(ä€!•„!ŠTM‚ÄX.HÒÈD¡"„C„›Bˆ#„„ÒˆÔ21mćD!‹A!ô1D‰„ѤÂ/D‘a$2TCRIΜ’DˆÁ!(Dc‚K§$B‚%’T‡"‘,„I0)ÂF‹8ƒdÐ(eŒõ#’F#Ñ$¢1b‹$Qƒ´„õ+àÄ–1D"o® D„IH‘c(A2¤pCX”*ܤ(@d„¨3äB¨A„ 8„Dƒ$2‚(“p€„Ø‚‘& !&Á$Œˆc”šƒÒä(‚ÔıH”A)ÕAAAi„^¨%f(2$B"VñLE਑†$ñAšB…â(“DIÒ8Ä‚*ØFh^h$™ÁÄAƒâ‚Õ‚8‚KaƒÈ†rVÎACrÁa•:Ñb"’$„,ÁCA’AŽ^À4HIü„,‰˜"A:%…ˆ.DA!CV”!dà‚ÂA&DŒj"“$(dQ‰ ‚“ÄÄ"ABáH¡!PŒ,$ÑȈB(0$„ƒa"SD¡A„­Œd2Œ ŒAÆ`A„Ç(BV $% €Â6`!ñ"$"($“ôb$ ’(J*qhAIQˆŽH%8(K$‡ˆE¤M"qEd“YòH£”(˜(18)€¹"‹ï4Ä«Ä=ˆÇ…ˆa#+,tX,-Tl„……´A1H#CAˆ!£MX‘„ŒAb;àBCÁ¡ƒcHIÒA™bXÒCQBAH\!jD‹OA!ÉÂ3sEÚJA‚¤!¡d´„ñL‚ \Dh!*щ(q‰é‚¤’Á„ô„H<¨xD††8„Ä’‡$‡˜]$kAË¢mÔÐŒÈA:'b*¦t¢`HÄTáB(q(¤! ±Dù¿Æ¡$!eDË"!,„H„hÀ!À=ŒÄ"ÞB+$†ŠbH"1R"O-¡„IÊ!(.£­(LÔñ$T…‰æ™xQ(TaˆHX!%Á„!EˆH!‚ÅA W!¤‚‚‡dŽJÁ;3¡"@,"(‰±B‚ u$!! ÅEA\‚‘ ÔÁrD$(DEˆ@I„ÈH€DØ©D"‚@FTB €a!!!%‚¡ABB B”$„HIC("DA("!‘HXA…„BÁ$@H(Øô9öÏÑX’œtÒHe‡‘96š•CØGaˆ7ƒ[”#²Da‚Š.’.Úoñ$ÁG!)ÈÁ-¨<îä1åBA21Eø9!šñ(CòH„(kB¨ˆA‰VBÆ4ØhU%EF¤"Ì!ä¤qH(TÁœ±5¸"1<*ùˆ&¨‘mH‹‡O/ðhFrI8:ð7„g%0k‚£ô˜­[KC/¡QÒŒDè¤atYá(²rRBKI!Ñ$)b!"<-I*Ái/’ô$I_r8úd&ß!rÔ8˜ŒƒÔ˜ºIòr‰Ê¤g¤¸¹"ñœGBÔWÊ’!jS$6Tˆ)(Eô׃Ù2T".‚®Q¼’N(MŽ(!Lò"JR$‰(j…ˆ±+8HJ-ÁAK1“-$‚ð²$Æø³2oÌq"yÄIý$’„‡T_“¹Ô–“19'X®!A¦;#×e×Ý,QÂpDTRäÌüdX%UˆÙBôv»$/÷^¯Gñ¯¡õJ)ç‡ï#êáü9[ïhÓeébúBKOéõ§úÇäohÒDôELnè?©ûNN¯IôþïFXBŠôÂ)ïfø&„oBý'GOJÒfû–_÷õŽvò}iäÊÁJ-HN¤ûø!mOKõÑMñ‘™­AŸú^9ß[ãÞ>( ˆ†ÞÌö%lOÎØgò$LÔöiÅyr¡õö.dÏReˆ¯¼HôV,Ïž4T-~ÏûÙ®óT/¤uÚèól¯Äü.Þ¿­ò&o%ù³¿ot¾öš>ïgýlÍ,ËC,ýX®ï(÷¦ÏâóV‘Þr/)ñ>owùVæOaÿ·M6oCùµïov×ûÌqÏÃö$%ÇÁOþÿ/ù_[÷¿=_Ós×ùÁI]ŸÚñyßßö)kGÊ‚þ$.#Ÿ×ü%‡ßÓúÅEÿÓV]ßCöM—_Kò54ÏGú¼|ï‰Õˆ÷\ÈÝñý,ï²~:•×,tLùBŸ•Ö(÷D)Úíø&$®’êøl._ü(Ú_BìGòEa$þ!úþIJ¯”ô„Fo¨?ÖöŽf/=òÄ”*þF¬#ñ²•_¾ùH¶o§´‰ÔDtjøDDHÝUõé‰o]øyÜoQ÷Ù'<ÎL¯{¤^½Ï)ñÑœM’ùÄOOùTÞ‹ñkÓ+$KFÄÿ$².¤o*çζöŠü‚Ž$/nÉ>“ØÂñvŸÇÔtIòXDôu›-ïÌÿ8¸/cy¶ò²“/ãúÖv¿ªôºw÷‡OÆÒ¶H¾óáJê5ûé\o9õÁ’/ùÈ^o9wã´Ôÿ¶M²ž2OIú3ªïeü¢yRö](Fö-i_òþÜ_}ùG¹ßw÷—YŸøCŸ”ÿ'ÑŸ•ùMÛ;;O+»2û4—¯Ùóá×ïÙõµuÇÔ߯ÒÅôl4Cú´t/Kö¼¾¯…­#ù¸¼oE|q 'CQv:ôA£ñqëüšsÛO(ôÕ:EøÑ†øñ„ÆŒøsNDù2\ü:MÁ«-áë-cÍžsËž2CòÁ:O"ñÑ:.þÑ“òa-?ÇÑ‘z2Ô~:ÄÁ«‰¾¾Øö<žw_Åákó4ís4øÕ>>8_ï›"_ÆÂ¨7Ç*x2´(|:”Ì£¡áçC¦/ßqöiÏvöIvõiÏ6÷mö„û¯Oò„ó‹+_¬ÿñ,_lyøáöW‡nóeˆ?kÿ{˜Ÿzÿ2ÉþÿÁÏ^ýéÏ~ÿá~ö„ÓOò¤Ó¯KòåÚ¿ÏòîÓ—~Møäwß„úþõ¿…ùæô/üîü/‘ôêÌ/‘öîøoôêfO¸ýø&O:ý¸&_üýù.O=}Ùê~ÿ](~óM¨/[ûS¸/J½ÿêÔ+ѯNýèïN»v}‘HD(A.A0äT(ÀŽA…’„#á(X… $A&dD#qaÜt($ñ)$PH-¯Aâ8QHQHDdZA†1TCqaìTHL"‚¸â(A„aBD8Á.ƒô!t“!<‘¬qA”’—HPI.à”$‡yJ‘.hÕ!D‘¤¤$3ñ‚8H1KÒ;(‡E2#hC°T!Ä\*Tሤ„'A›„$…$Œ…ò\!!K8)f‰HS{"Q„hÉè!fèGJÁÂÐ!8Dá Š$)ˆA¸ˆB"A¤¢LQ(FØCW„ $¡(VÄ‚'‚BŽ"ÙBO…"(!2¢Y,BYB±,¡‰Ï$4Œ$U‹$I´‰!âH!”ˆ2ŽAK!D‰ôâ,V$ „†ÑõFHùRRÐ(…´,((¢) I'A„ÏD˜$JŠè²ìˆDù"[…‰ât(;¨¯*%ÌØH†$B¤ÁŽ8!fبU‰(8hà˜ˆ!AŽ%ŒŒÒ„hDA\¢BŒˆ´8ˆ†!¨„HAÌ(/ÄJ"ô¨X1NˆÀD+!Ç$Œq4‚„BN$dÕBƒ|(ĈidEƒ‚²„ƒÂ’N,MA‹&Ь²AaEŒ"A(ĈÖJxD(IH‚•,^ˆ#JR„ˆ”$„M1Š„”ŽAƒø9­ÃÏ(MI…!U‚NX91†É²‚"¢HOaè¹±HÖrL4hOD”¡J•£vøb´xø)Exf ü$£X,ÈCŒ6GHh¢¼É±B#f˜BNH$Ë…F4I,ØD"ùaXIØÃÈYâÔÆA‰r$š‚ˆè‡)ÔmH²ÒT‚X'…HƒÁ$‡„*$Á &‚À(A€b(BÈ!Vèj‚!.*ŽEa¨A‡BADÂ&ˆÈA„¨„¢„¢Aˆ!†˜B„A„I¨$ˆ‹$KHVˆ$$X„Ú>ÎŒ[D+EA.LЉâS‚Jòˆ/„H$ñ(„(A#B¤ E•HB!G( Ã"àµèŠ(,Ôhh($„h„†’€š$bŒ A…ñZK`„‡S¡A"I8D(Ly´fÁhK$}˜!DÄ!Œ4UFÒtX1X‰ÑJþL#'Á/6ƒ'JK8KDñ…oÕybl†G„Bæn("ˆÑ‚a(+BN!«%ÍZŽ."L2Šá„Bô$HŸa2…´.)¡A(”®šcŒK²LdÀBFœÃ$Ž"HÇCH›(&bÄ„4ø3´(Q£„ñH‚L·(˜¥ä(b"KHLbCSH‰äR5"Á)´2B,FêFè‚Ò$ ¤¨A‰3HBH›$p˜$$9R‰j‘O;D@TX"%Ä Â$V  B–A,BaÁ*TH‰‹Foc©$ˆG$H"ƒT‚.a„ˆ$‚It#Ø‚"E"˜jM‰HAp4)6ôˆ)$$éd2Ý,8言¢”-(B¦$$(b„Nˆ°Hqˆ´CT‚¤¡Oˆ 8¦HW!¡‚‹DA¤¤-$¥Zˆ„ˆA0ˆ˜( D„ŽA&„TÁ*HñD(Lë„L˜B-\"B(¤!H°"áh H(‚ B8–$ Bˆ0‚&D $…B,€xA(8A„B!@$T Œ”!FĈKàB£ M´Ê‚hÈ !((,´#šD%‰BH(ÂH‚ˆ>AŒèˆô‡1>„`„˜D¦Â&Ž4†ŠQãD$Ò´ªA¸,(hH8’"d„ŒhBWF‹BL($!³h¸D´…ñE™$‚$H!ˆ!…h$HF¨„„D,„$!BˆpH'Œ0HJ8(@„‚Hƒ(B€“t)¨ˆ&„˜ˆ„†"ÊÞÓaBXÉÁ&LbDFBt„´ˆÔD*„$È d¥²)È##8ƒ!‚/"ÂD%(©‚„cBÀAH€T0TˆDFÔ‰ ‹‘H‰ŒøY2@èA¡Qˆ)BHR"4"‚‰ %T„$g‰!¤l4†Rˆ$H , ‚ CB¡"C8FÁ!V±ˆ$Á!AYȈAAÈ„€âd4JΈP‚„‚ (’H#H@Š‚„ˆé!ðX’"J²D ´.BZô(AdH AˆÂ¨Ç†éŠ‹˜‹"‹‡Jª¨… `„HD ôVüÀ"Bà$„™H"^"B*4D‹B„BF’DB°Œ!™°ᲈ©6D #”ˆ…‚D¡$aRàI!*ˆB†ÄH@$@„AÒˆˆ˜"ˆ‹¤—’\5G`‡A (PP``à„$(Wˆ1H#1„1Àˆ,GBPp4ÀH*½AD\€„”€ˆAˆ‚…1HÀD! aC0J@sˆà4Á@#qX!€€Há$ÁÀ„¬<¬ FdŒ1Ñ(A(ŒâÂA†ò¡H‰¤*„DJE¨„Á¤DFòTJ4‰Â²KÄHÐ."Ò¢±’R‡'Ža%ëÖT’‚#C̈‡‚˜Èi”Ù‡&ÈŽ™ST„Td„À«EL­É¥ˆ*X† RLtA*ôDHÒ׃V$ˆAÄ$L\‹Dƒ4h!NB)4ˆçAˆ’66,ÒüHàa˜!©¤„%ÓŠvDb‚Š!Ôt‘ñA•ÈFñ(Ò¸šÁA@ø!è/Aò'ˆøHI˜D‰ÈˆHˆ9HJê?×%ô«k'D¨!Vr6ÂFÒ$R"ŽdD*€ñ)ˆLÒ¡øÏ¸«…Z_ãôq8!ä5uùQ?ïCtÔׯöb„/BxÃô$gÿÆÚ•üÌÉ´DÂi¿Wò-öolѧõŽì5žNS±øáÏ)rÄõNëµ*ø§&or÷¨?¶|ïóŽÃòIA=%_t–ñRR»×ÚŸµ÷‹›¿Úñ}¹ßö_ÿ‹ƒx„ö‡¿½×˜ú­ïÞÝDyøÍ[ÿÁü“ZšÇÈ„øØz­š¯Êó|˜Ü$ßdW›/„W±ŸñK+OÔ×öúmÍçêßÎÚfº$jZ_Lþ)…ÏœÔÕºZt-õMÝáùMÄßLqÙéŒûU‰¿žMaÃè¸7MO(ôÅ:CøÅ‡ÂîqtaÌ„?ÇÈ„'CL|:”ħèçÍÚ³ØSû>QÿÖóZCŸÖñZqßÖó^qŸÞò„ó¿Nò„û¯HòÅÛ¿Îö…Û—Îúiü±ŸÄø³ß¿…ø¡Ÿïü韯þ韯þí»ïþí;Ï8ÿÿ8o¸¿¼óÇûßò„û÷ÎOúÿkL¾wÆø²ö?Çø²ö/Süúþ/þzÞ/öÞêoôNzOúý^ºO:ý²_¼ý:O<ý_Žî÷·ÄþWŸÄøò×·Å/oý’D¯ï½’ôúÞ+iï¯þ¶A_ìCqAˆqAˆsGèBqCˆ1AqAÈA‰ÂA‹"”(Á£á8ØuIˆqAŒsEèBqA¨7…"qaè4(´(‚”()¼â(…ÂR(FŒ×ZñFO±ä„…áfÓ¦õj~oiøï(/!ù¶6/qüò:¯!Ýcö‚ò¿ÃòLÈN$ËxÁëíúnJïéöš¯¨zJûªN¯Óý(Ú‡ŠŸ¬qÖ"ù‚AŸ¨ñÞ.¯è×ê{øLˆL‹˜¯áúlˆÞ]¯ã×¶ÝŠùÒX¯ãÔòÞªyÆsÇr–ö2¢o8ôï8Ï]ñÍ‘—•_ô9l>ü‘ÓäÈäı­-ΘîœÃõ%Žð^‡tïäuûX—–%÷+OÌòœß$»&Ødú:…Oeÿ}¼hö7ØÍlßÒâ$õ­e‹YO"ÿ™i/móÅQ­Â¯<ôÒ¯zç*õ¹êçù’Šñ’âOá÷ÓwO¬óãÖ­l_FôD_TöœþoÃýý¯îóžÛ¯ý˯ïñ¾YËXΔCñ–K9ŸËÙŒöüYßù\½LMdÏ®÷$LHýÖÞMˆ«}˯­èŠ÷zÖO92ã-noñÕÅñCŸ„ôYâò]ÏæöŽÚ¯ëò’/kó–RO.ó’?'ô®¿—…nd[$BøM¨îÎ/3õjšo5ì©ý[¿¡ùRëÿÏòÖ´ïÄø¤2oKò´·ïâü®’ÿ§ø~§ÿÇFµaòì4Ÿô¢öϳÿ]ŠïõÉÚ‘ýZº¯½÷ßNOIø”O(ù¶6oyý;ìϘùÝÏÅõYMôihO~bÜŸE˜ÚÏ¥ù–HNˆ«Üˆ»2õ”×ð:D\ô:DMA£Ñ¶>ÄiÏ‚ñ†sÛ*O)³$ñÕ:CôÁ†øå„WÆnˆwç~ˆ'c|:öÁƒñãïAÂcÍ4ŽsÇäŽ2M$¬ÓDòÁ„î9"ÆŒxs¬ƒ'C/’|:Ô–¼ñéãá‘Ö,á8ì(“¬³òÁ‹îraí‚øsMZø2DZü:dËÅ£¡äë^‚ãÝsûI¯öñIVñZaÏó6OÏ–ûäÓï‡ò”ÓË£_®ý}¨ßëýilëýmlêõMŒ?kßø±÷oôù÷oôù×/öý÷o™÷ýwo¸ÿý6O;ÿ¼6½ÿõ<ß=ÿõø+ë¿ñsHqCùaé?õòˆÛXO—ôŠŠËDŠòlÄ®ê“ÚÒÉôy<)õHI•ñYtOÂñL˜g‡NG+”Mg×Ê_?ôýý,Ôv}ý…ÆÏÁûE$_Îñ%lMÈœûÑQŸÁö(˜ÏùÙ=ÏÏq´Â”OqwµüeŸÓý•œïAòL%ÿWôï…úM²nñ/îýøñÃÛ¿èö¦H™ñS¸/¯ñ6‚,ùó¯¯ñc‹?’ýŠŸ”òImŸ’ôÉR½©¿m÷:š/ÊóÈ­ñÒ¯Íëƒõ:ð_~ßÒñJ\ב¿5ña9o$ó]-KøôÒ߯ó”&OKèûý-|ŸùòÙiÿšü>hÝ-Ÿ”ö=Jß‹þŸæ_TýÆ&Ü;ÜQþÒ6ßÜöµTooùm,Oi£‹O:ü=ì}÷É)?ô6d_ÔòÁ%wÎßJþötýW68ô“ÓŸ8ÿR*¿¹þ?Õ~’_#û²ocñ²‘ÏòÿKû¥óí;ceŸ„ö¥_¿Š÷Â&¯¬ô‚:ÏôÂJ¯¨óJ䝸?„ÜÛVõa3{A…ÕÕÑõdG›Ïkôr¼Oh{¶t´ò½O<ÿ_¨kVVöM(Ž%‡ÞOWÞÿ-ŒôÈÈ-ÉŸ¹×ö¤A®žÏGú„²/Kñ´ÿSþ„7_Í¢´Ï–ô!aŸÄòLwïßõ´÷ï±þ»‹¯<õSÚ/™ü[Ÿ¿Œ÷èJOŠñº&O(ó2‚o*õ»j¹ò[£¿ìökIŸRòMiŸDú{‹ŸgûF¨‹ÇÏ¥ÙªùØ­ù{†'C.A§CÍA£ÁaëAÖôŒsÕè(ôÁ:EøÁðáž'ÄW†N„7ÇN„gCü:%Á£Ñ¿ñqÅä8wMü„2ðÁ:A¬ñá#qaÜÁxsŒx2äü:$ÍÁ§!áï)øa˸—Ž2KŒÓ-ñÁñá'ƉøsLŒø2„+Á/C’Ä«JþHN•sÔSûWI¯×óSA¯×ñSiïói¯?ó„ó+ó„ókóÅúŸÿ÷…òŸ¿õ©ö——j÷m‰¿Kÿ{‰¿[ÿ7Á¯^þÁ¯^ýñï^ÿé¯~÷•÷nó”ójòÅþ¿òÅòÿ_naùáv_†øóä?—ùñç“üøçýxÇ?öüëö|s8ÿl¸O8¿,óÇú߆ûÌò߯ùèöÆî6ŸÖø²ä¿ïõ¢ä/Côêä/©ôê”/%öî¸o9ö{§ $`DI2D&$A„ˆHÄ#á(ID…„äBLDÄTÈ@„I8Ž„IR„&¨ˆ…ˆ„ÈA‰‰•‚xè(Q‰Š(8ŠrDhJFèø9iŒx˜’•,œ‘!™bd´‚2±%$QRrLÔ"ÕXb„ÊL!ŽXCš!øD:[’!M„'*LåDØb„M!Hœb!ËBŽ)²‚´Œ‘K¥%xB-bH+‚µ"(´ÒCÄ(BÍ"‚Ç$›$J–HòAò ƒÓ‚hd‚Ò,†¢‚PB$FT†X$MHDHpH8‚I´ˆAB#ؤ¤©G!/I(A‚äLX¤B„CDˆQ(&æ1BÎE¡F8‡Lˆ(ŠáAY”HLXˆHIhV(ÈŒÌ"Ò˜$ë„#‘A„JR‘ˆE‚(ÃÁGa>ˆ$Äšh‹<ÍbE¡´˜DžH'‰ö5/ˆ„ÚFâ(ÁH/úDÈ(‘™®B©$“ƒ$˜/4$J뇨&¢(%„Ô…¹Cz¤B‘FèbL,‘øT˜/Œ$1‚nOÉ>LS<‰áRÂt&È&i!’ÈD2DEÈH`F–Û%‚qHòBŠ8X$]R&ˆ´&!d‘M"…E©BID„t¤‘)£dˆÉ‘‚Ÿ!4,0„O!è‚Ø$xH5RA‰¢„CMèla„à8¡5–$ÏDÁ(?‘A&ñhD=B‘O¤CdB-!OŠÄg”IÂD°hÔ,Ö4•¼ÙñD¡JÔ#øQˆ'†^R.Xˆ1hKeâHw*÷XATI§SJVIŽCž$™zúH¢“a-^æ‚´2ÕÃxrˆøŠÔ†1„·o—]B(ƒöÄ"ÇAˆñDj¸‚¬ÁB.8Ÿ.ÂADBˆ®Aª!¡A(`ì0(ˆ(ˆBCÀ‘!†&Š2Ž&0ÁˆHJB!D…È….À¢°!ÒHÄH ¤H0„%Œ Ši„hÎDhV ‰=G†„h‚ˆª±BÈRaˆh ÖHØa"E“H’(Lìdh0PDA0%¢°¶…¸dÔ(HáBáÈ(‡*Ž*È*AJ1(ÎDŠ”(ß± LþÈ2-TœqFøBíAVò˜JÌ¢¤/A2&µ&tqXµCQ!…uAt(‘EÌBz”ƒøHK„Ÿ(ø(LÞ‰:rD2$D«Br„˜„™òHASü)ÂÈ¡cái”B,õX*TJŸ‚è¤a"D+†…âJäqˆöD`B)é…²„¹D˜ I·/•:c„ñ'B­QT*BG©JBTb:hd(^„H‚ĤH9VHŠŒšÂD‰:I’„F¶&bÈÐÁDA¦$´ˆøBX'‚ËA-d,É*˜(ˆjH6C*„°(ˆڒ'„‹…0xOIÄG$Ñ!DâÖQ‚.Ž„(Då¬a(A†h½ˆK-HÆÒ1…+ÉËI!*aBÀ(DQH„ôH„Ñ‚Ba,!NˆVñ"(¸ÄB"”B¨ä‚7$‘I<:(G(JiE€œˆZÒ’:Æ9Œ‚)BÒD!"x¤HCNÆà‘”ˆ!JhˆŒTB,˜HA…d!I’Hð4T!.DD-HA$^ŠB$I!¤‰$b!I¡(E˜„AŒHŒÑ(ad„3dˆÂÏ»L ÄH‚€-$pB PÈ0&F@8!+ƒL@¢H…I(Œ(!DÈ’DŠqIE( ‚„CÀb“„0'"A”‚!A%Aýtœó-„.4_ýô”O_bü%rϨó]AðfìïIûJÑïtñ¤ÕÿóüН¥õÚú߯ø,̯ÇÒÿtŽó3’:òYïýñsžÿÂÿ–>×TgDOBöž®oxNÿª“Ÿ’ý̭ʯ¬ó/Þïëü+(ºäù9n<ç¼úw¯ÃöMaso¶¯ÿü¿‘ìóÍY¿<ùÓeoõûÊy÷~ªø-¶/(ó$V/3èûöW²¨÷/_¿ÃÖòIm×¢¿ÿÒ²¥ý‚jψüJ’/dòÆä/19ìÜ÷"_ßv±WôZ­YŸäõlßÏt¾ú:º+¸¶t´ô5µoüÿ¬Ÿelý%aŸÄÒüvêõ4ímûßÒùÉJ…Ø2ØËüd_*ôºÞOâû–¢/J¡Úß³ÿŽ»¿­òKvÏô%-Ÿ„òÈgoþäóþû¿–¹ÙôН=ùËžÿ¥ö»kßãú–"'co#õ+rÿxÿ+¿ýz}ñmeŸò}¿¿ñ1¦k´¯‡yØúÊÊ+Áhؤÿ£Gp2ÄE§C4vÔVLO8W‰Ž2A?¬ôÃðãÞcñeHˆ?Ç„x2ÄÁ¯CÒ|Âáï!ôDaÁÎsÕìHôÑ:EôÑî!qaŒxsÌ„gCœü:$ÍÁ£Ñ>žüˆsÑŽ2A¬óŒˆ¬ÁˆîuxhüIˆ·ÇNŒ'Cü:$KÁ£Ñˆ¾ÁªãÚq÷aŸ÷÷AŸ÷õaß÷÷aŸ_÷„û»?Oøÿ¸4_¼ÿû<_¼ÿûúÿ{Hû÷mÈ?ûÿ{È[ÿ6ÁŸ^ÿÉŸýáß>úáŸóÄ÷ŸOó†ó‹+_üÿñ,ÿ<ñøñ÷W†Ÿ÷mˆ?ÿˆ_ÿ6ÁŸßÿÁß×ýcß_ÿiŸ÷„ó¿Oó„óKóÇûŸÇóÎòŸ‡ù¢öß—äk÷mˆ/kþˆ/jþ2ȯnþÈïî¸Rþî¾kå‡Å4ÈBR,R…&EET‰¤-A…T…TmÁ£á8UH 1IåB1I$“——ÄHAX$M#ñ„¡?‡ú„B¨8o·|þþfŽªÿÍ<‡Æ,ÏÂô¸Ïlñd¾ÏëÔ¨ìøñN’¯)ö¢Jïªùn6—%ïaø¢‚obûϧ¥ïªø*úý?—”õù)dmûIŸ”ñ¡Ñ?íuBø˜x¯Cý,ŒŸ×òMÏHñ¥„OCóÕS×ÜO'ìCÿß5]AgÄ‚þغtRø©ØÏFlÁÇ•‹x‹†Ï8Q-.g´/!Õ²Å*'¤>vmOâóÆË߯ø¦k7/x|+òôŽ?K½„yèFòGLÏŠúyOLzNýºú-Z¯¨zBù’toÚÕbùÆmÿÎx6ö–mççN¯çøxÖ­ŸÿÕòM-ß×ôŒŽÿûI©¿ñ!qŸ‘ù¸CÍôÏÓÜÝøÝmߎñ$MœOQwµýýTOCÝôÝßòMíSòÄVéºX¾¤ñh$+Á…¼Š±Hþ:„¯KòR¯ôµJóIõIYË4ï—ü–fcùaO+¨)ï#ÿŽVÿçöX*ßV¼öa(‡F?¥úžnÏÿäU/„û•K¯!ýÊó/¤óžokô¸˜nó¢Gcÿ{ébÿTª¥òî‹?öI-›$×ô±è¿¾IýÊ+ŸýÒ^ôåóœ}Ïõ¿—_Çú„6OJø§Ç_BöÞ~OÈþ%Í¿ƒÖ‰Ö˜ö¨X‹ú¯¥ûXˆïÍöŒ˜¯…ùX¨oEòÌÉSÓbÝ>Õ+ñXAŸ¥Õõ(4Ïuô=në‰Åë(³2ò’‡/a÷¨—;%^4ÆÖ\tMøäçÿæô¾ÜÍQªûZK¯­Ý’ÕcùÜoô¶ŒŸçó†¶ocø¶B+÷†v/åúÚ?ô-eŸ”òÈ+_Žô¹ë=ù’ùÒQŸ‰ýØÙùÞ}ßßõ¥Ÿ_Æú”6gKGz_Rþ…¾ÏM×\rùa!DòE&OÎñìäká>ž¯‰õÈ«ÁžÞ¯YwAgC-AçC4ö$–,ŽsŸŒò‚2M&¬ó„"¬aHî!qa¬‚‡Øªx2ô(ïcØü‚œ~ÂaAŽsÃä(ôÁ:CøÁ$î%taÌ„wLj'CȯCã½Áá«aÅä¸WŽ2A_ìôÑðáž#qaŒxs¼Hø2DȯC–Ä«AèëAì4íýïô|_ïôx_¯ö|ïQôxùÏ8ýz8oxý:´_¬ý{<_ìý{?nwsøév„øûöÿ…òõ÷/ôü÷/ôø×/öüûoÙöøso¸ÿø8O8¿8ûÇþ‡óÌòŸ‡ùìöW—îw߆øúôÿ‡øòô¯üêü¿üêܯþîøQþêvO8ÿø:O8ÿ¸6_¬ÿù.OìùêêÿyH®~ß–ü²ô¿‡ø²´/ƒüþ¼/üú”/þþ¸oÑþŠAÀ"A&.†a.‚!†Øô(„a&ˆ+!O(b((†O(R„¦‚EA¤ÈA‰ÄŠPˆˆ#á8QˆPˆ„8EhB@U„„THPHPII<ŽR…„dÄ0HIrDhBG„ü;z-˜¯H¤X9ب„db#ª)²”š«$ÉÂ)K”#ô!‚IÁKØ…Á1lÜHˆt2&òT¬-F™jA$,ByzB„<¨‚Fcä¢!G"AKcQH$B™ÂD¨‰”ƒŸ!Ää‰3Ò¬N T‚D­AŠIÈAC’C*È‚A&R(Aƒô!dcxADŠôˆ¡D6È0$N"Œ1ÁE˜BDQi”B‚A†‚HSÂEG(D,4‚MAŒBY4‚JÈ…$]8ˆðTLcÆ„j‘J˜ qH²Qú¤MB+¡‚*ñ"ˆFÔølQ)ÒHd‚CÈ‹Fž+†ä¡„%ú1Œ+,D£x"„¸&E<3™ô‚e&ÈDªÄ{BŽ4•Á˜NQŒÈ‚Ì¥(MB"’'C°cxDÕ8¨%Œ¢LëB©©JE¨A¬‰eZhF’\‡Itj„ò%,‘Ì!A&„”<#ˆbÅ"à‚´tˆ¢H&sHqˆB8B¦a‡¨FR$‚XÁŠd„!ÖX‘ŠIÄ!R‚…²HØ„BT$!8N„Å‚¹Hò(DDHtó”h3ƨN…âÔ<ôKË!‹EA©FyxeùäHë!)¢/„Ó2ž8OÌ,ÌòˆÃôóŽ*Î7Êô‚X-B.?ÔºBþ$,ª‚Oô2DAïøÈ'T¢Bß(T¡±ÄÒº”aˆ…Þ.È-)Œ!+!K!>….‚ܸ*|zeÌ(NH]:,òáG$‰òÄH‰ý¡Åto "A2ŒÈ2#ä"ˆàH.„ITHà$‚$„$"8H…„0B@!Dàˆ(FF2EHFÈARH@D‚ANKAB H€I¢ÈP‚ ä89ˆ)DA&%¼„º$h*ÐdD±‚Q‚E¤(!0ÁA¦Bd"À0D‰4‚`CNIeGhr4¤E”AàKB¨LUŽ(ÁJ8‚`HJŒ!bDðÒœÐ$úX;BF9TƒT¨.u†ÌS$¶6;HfQ,¦r(e2n(BMOÚ¨½&S(Ž1}Y´eR„+‡AÃâè$ÁžÅ^‰.Aƒ›¦‰Uhr%hD‰1SyIh,õèŠFä(ò‚öH¤t‡AFôH%Nª¬ËFeh¡k×¶æ?ä)bAfB©„bA‰’ƒGä(DÁ)Q„5jAŒfòEŽ(‹/D @a„FD«"0ˆaNQNƒGA‹d`‚ËJ1F‘«A¡†ÈF(ˆGA+Fˆ‚dB¤$¬Ô„8!-¤‰A˜HˆÏÓBB9b܂ԂAsH4¤3e"Š1„#òD#(H%”!ÄhG˜*±‚–‘Á4†êEîad‚c¬a$.qÁ n$LÔÁQ¡"LEhà‘Ä%h"ˆP$‚‡Â-A‡T(´D’†8RG)D"qXø"3OÊ!`˜H {¤2A°†’DBÓ„‚D4^ˆ†‘DE¨„H¿hJ‚!GÓ„¸!¤H!ˆ˜‚AÈX!NˆˆC‚0žC,H‰Ä$ƒ$H®KPb‹„$A2Ȥðˆ!@D !DIb,‘ PH(@ˆCÔ!Q’‚((‚H˜@†`H‰A B¡`…ˆPH¢+A@(M^Ã’M(@h$DÄ-¢I¢$Ñ1HD„ÒaL*ÈDŒ¼…d©x˜b„!’#XE¡„+H%„ˆT#ˆ 8˜‘)”ˆH„O„è¤AB$ˆ´ˆ±H‰xCd‚N(‰x( ŠÔ$Ä¡ˆôf2PB@l1.!„$aDp„̈'B"ÁD“d$4@D¤XI‚Œ!‘b„‚!A!Š,X!D‚'BH)˜ ‚.H.„ a’$AƒHZêA¢"ˆ‚BBÕD)ÒHd‘À%Ù$ìXD,Bò„$ˆI"Ô(!Z™HP˜ ¡ÁB†¢,h¡‚Ð($ÂOŠ\ˆ²ˆ‚HLˆñHSÀ8LD€a‚$ˆˆDV°„„TÀHQÐD1!¸$˜FA,\‚GAH‘AB ǤO$©ƒ!‚)˜H€‘bL‚”¤Ðd‚èA#¨ƒJ*œA„HE™HAH´\K,©¡(%ä&2…'äˆb‚I²CÊA.ˆÁ„IL!A#- „ˆ¡LĈHeœH‹H‰Ø‚l(ˆµÃqD(aD°B²ŠD¨‚pôê0APŒBD„@Dd"$È!$DLA¨2†qHxŠt‚8B\Š$CLHB| [¢…±R¸ˆÀ2PˆF‚!)QˆŒ!†!")ñ¨ˆŠ‘HÐ\HVHR¨À‚B$|4™0$!„‚pL€’AЈ(!#¨!(‰A€†aB` "%ÄP’$Q€À$.@´HaZAD)„rö$@²ƒQ¢‚$ƒ2HC!d$&A$$ ‚‘$DR22@BI$LB4P('BD DH@AA@Ä!ƒÁA%ÅH‰ÄD%ùií>f%”!jqad„ï"xBxløB$Ÿ‚rxÁH.¨Bª¯ÑÒÒú‚LEÒ$ÂBIclM,StHX¡„…z(œA‹+ÁEÔȸž8SQ‚ž‚F‚(ÍŠ"…²‰éDaÂAÏDñ†ÄA‹ˆà˜ŠÄ4'H¿®J‚lä&„Ø!ØHô8‚o"ˆè!HÄ"KÁd!ĆøHC2F“XA%W$BxL2,XbÈSÃH´a°HÂ8†Áž…hŒ'B!Hø¢H‰Á­`ˆÍ¡™”$,aEÍ‹…„€Á(óÇAÇ£‚/áBøF‡hMƒˆ”$Ðaò‚Ñ‘ÅøD„/&¢¤o^ñÆRMoÿæø2‚/mÑ6ònÌÏCøµ?,ýmM%ÿ–ôAÊÉóDe/Âù¤=ŸñAÑŽ™Ž9ÿ×øÉ^ñ_Kñ4”OáhûñQÏãy<øÉÁ-eM$ǒϼõñyï‚ù¸(Ï„¸È„èXòw”, ¯%ûÂS)w[ùR/4×â÷[£¯'øõ?Žû¢/!úòoNùwæþ%ÊGGßFÆäaþr‚Þ:\÷ŽÞ¯5¸ÒñèyïhÿV£OGø¼êû¢ocü÷ÏÎûUéŸaö#FFòE%ì>ÂÏCþÒ%O\õƒ÷ßøB“÷“qν_ùw“_Fû¶Kgùt©_eÿ|?Sür%_ÄÖÜö­GóÂ4‹]o¨vÌxÊ¢loI÷Ô?sÜ¢óJ=ŸfõA«N¿¤õko§ü6Ưkã(û6‚/3ú’6o<¿—ö”q¿„âÔö-L.A¿¤è¯óâ/nýÿ­áñËÞoQþw„~Èû;k¸/C¸6ø¿<Ï\ÿâÿ9woñim]mßÄòlŒO/òÏ<ßÎÝ’|ÉøÛ‘´½þå]{ô¡$O)£¾–/KóÉïQö”á—ÆßÆÖÖ\þa‘gûR¨~Ä­ÈNˆ+„NÖoAï­‡Ct:ÄA£ÁaçAV,O8wMì(öÃ:IòÁD_®iAÆLzsœ¢6Äå§CÁ§!ããÑì8ï(öÁ:ÅøÁòåxeœÇ„x2ÄÁ¯CòÁ/ÁéïIÁaÇYŽs×Dž2GI,3Œ¬ñîriœ÷ǘoCÈ̯C’È£>_3Ûq÷2IW÷IwõaÏ÷÷m_÷„ó¯Oó„÷«9¬ýó<lýó?nwøáv_„úûö¿…úñ÷/1þø÷/üø×/þüóo1þøsoøÿø4oxÿº4ìÿû8O,ÿñîöW×î6_Æø²ôÿ‡ü²õüêåo‘üjÝ/‘öîü‘öofO9ÿ}¦O9ÿ<&_­ÿy.ß-aúáö—†Ÿn÷iˆ¯_ÿ÷/Nþ6Xïξ’ôêÌ+iëþoIö*Ô0ˆ@„R„&!DåxAÚbÂa„I¸â(B’($,fb!$!Ä-A…DIxø„„HM!A.„Ž„LÄèÔɈxô„…´„A$H¨(A¦ôÝÑDø$A…‚‹h5$•,†`C‹)+%‡FDƒØµ¨TÁ#ˆ„¨)Ôó"CÃ!8‚&$:RCxAŠ"!D"´˜Âˆ)…ÈR…b‚ˆ,¢ˆ7ABch„0E¨,Áˆg*ô‚©l´F²¸HÂE$ƒÄd…ƒ”Ë!,„;™‚±IBÓÄ2¡„Id(.CÌÁF˜0`J/E˜Áª$B`$`­!¡N‚H¬"²ˆ"¢$<è&CÖ–ˆ²Ht$˜D¨ª<&ƒ¨Œ„ňMhX7‚Ä@X+‚(Î$2†G‡cnAHÄ‚#dFŒ˜$Bx!2ˆ›B#ÊC¸"2˜Fvx‚H±HxI¶‚b§ÄHž*„H-°$Á)Hm!‹%†WSGßÑö©ÿÑ{u¼öåAߌý˜ˆ/Œø¨lM¨ßµAòr7^J½¯…uÿZRo2˲JÿqŒ*‰»2ñTdrõ$ô_ÊúNLÓòd|ßRþ„\¯/qñ¹ôö”Jü“®ˆ¯·÷¸4/ÿY˜ªãKó’ù}©¹hþå¬íl׆õ-?ÏMý8ÖoSÿØ&ÏýÂ?m-·”ÿ…ø_çñ²O)ó£·O#õÔO/ùwfAôeEW^_^ö•ôoI®ñod¡Y©üÈDglîÚSÒBü4CÁóS'$¯±tsêsõã4oè÷ß(o+ñ´6o÷d$ÏáñuO~ü_,ÏÒviü¬ždónìOîAûÙ-ùS­ù:K¿ìó˜ò߯û´/i³’»|úä\ßOx$ùIhÒ4eÊöÍ>o«þ4ÝÛ•oõ›Ú/±ýz’þS/kóÒ4eû¶‚O+ó²ö?cÿ–Öïîñ|'Tö%%ÇVn/_ßõ=ÒkÓþ„oõØÂ/ˆìÂøfÉŸ½'CA§C-A«A-aãÑìWMŽ2AŒ3d_ìa„îqBxe”ˆ7ÇJø6D-Á¯CÒüÂþRV,ŽsÑŽ2EòÁ8G„_­qHôážF|aÜHxqüH„'Cü:,MÉ£Ñ><ü„sǤO(S$¬Ó$òÁd_îsaÌ…wÇLx2¤â§C‰<èãÉÈsÜQûvCwóRIwñiÏ÷óViûÆû¯Cû„÷‹±¬ýs<ÿ(õq˜jwuø¥v߆ü³ôw_{û¶A_úÒAøiϾû–yóÄÿ¯Šó„ó‹:_ìÿó(_)ùü¡öÆj÷iÌ¿kþ{Š_[þ6ÉÏÿþÃßüáÏ?þãÏ?÷†óË>O8¿ŒóÅÚÌóÄÖŸŽñèöW†O~÷i‰¯Oþw‰oO¿üúô+Á¯Æ¼¶îþmÏ™ BpHÄ"g„&6H,Ä‚A„ØÔ¨‚dÂH¤i|è(¸„$$xH¤(Ç„¦&á(QˆtAÈA…¨A„HÈ'ŽR…ˆ„(A&LPˆ„MAA€8O8A(D8A.„ŽÑÓÊ”¨Òܘb¡Ž#ƒ±‚¢)d'DVu2DfÁ-H[R³ˆ]…!Ã]"FÄ2A$CÂQéb6‡Aƒ6$‘M‚E ˆ±´Aè!3H(#¨à8)B˜$™„Ö†5*,'„"øx·@Ä#…d4%É"ŒLø")‚d2+HLô)DDbDFq"Ô(L9C‚‰¡ÁE*Æ"LaB;$cqH‰2‚*Ô‰†AR$$a¡†a`‚N¨$ n'!„ÐA‡h+A0¨$%¨„#ÔÔ*Ý<m¡,!4I(—E)Ɔ"†$¢'"‹(^B(ÑèLâ’ÄD,Ûô‚ŒÔ’¨Qß"èB̘D+a‡k$›a†±>ME.ˆ.A#xD¹²qE -‘N˜d‚{JÑD1¢à2øT2ˆR†‡EApˆÒTäâ‚MòTˆN‚‰ó‚IÏaB‚qjDÃH1‰T…FÂ'HD+àBh”G#4O’HÄ*ÔÃÆRSBè)ÄA(„/2N‚A2"„x4’A„N:E!D±A3‚ŸD‘"Fâˆá(Ôa$¦ü‚Hã‚I˜BDFD¤BMB$C+H£á„H¢q³“2-n1c$FòH%+Ag‚{lÙú”"C¢(o„w©óX&ÂaL²Aô,DœRx~ŒòH‹Ä(Q­¥+NØ$ˆôSh¯c$ñ˜w&e’EéBÄv¡mN˜M?„ñAC4'†O‚ô‚bk#ó–D—C-ŠÓá²^Öü…Qo(4ˆAG‚§-F8Z+'(Ÿs ‡DÄ@Ha„@‘!Dà¤Ôˆ‚Ñ$,‚|Ä!<¢€(áBªXˆ-A„HBÈ1‚ZB1bŠX‚Šè(\„È„À‚HD€D:‚L„Á¼6­¤CÂ2p"9¨-C‰Xb&Â!dž+$GB¨A)TDŠ2D"à„hX‰h‚h†$d*H4A"J„è”_"'dlèHT%DQ,Q(Fxˆ¶AQHPH#CÒB8Bˆ_%L²aøŠAC4H‡$ƒÄ7ctÈ´EdB¢'A-Ü"‹¯d"œ¤$.Dƒ‡¢VwAè4xMxÂåzÑá.®#ø8Boñ(gŸ)t$è‚Ø!¸rö¤B+¼ˆŒ’aÞˆm!­(#Ë‚LD²”¸FOÂèB(ÉöÂŽJÊØ,W7CÓRŠ'„ƒÔ3„’$ˆÇ$(CÒBˆv1ˆ)2Kd‘LÂBŽ$¯T¢AŠA8DŽMAŒ(b"˜XO"¨„I%rh$¤J"£1…/-‰ …òL¢À˜Ä,øÁIGF¬¡Hx¤øRBCHH⌄ñ{þP!JRÂRR‚K…%ÁDIJ‚sB´!Ùh#t!$4)†T%’¨A¯T‰ÄçвTJÈ"È/|ŽBrH 8ƒVÊ%)T(™Ò$Df˜&D‚RÂT,Ø4hDvˆqb”HŽ„„+„H#Á|-¥sRK$c!$)Œ²2‘‚†ÇŠ´S8DHMI”‚…„i<`ˆI!ä¢AH¸x!"T€2…!uß_òO¿´û—ß÷×ßÒÜTòÍ]çÙÌùœ|ïåÒ¦ýBØ©ñxNM¼”Iñq?÷ô\+ýZ¯1õB/µòiY˜ÿ»›ŸÇø"/*éù“bÿ¦ýcšo÷¾ôhHbïÎòˆØ‹ËŸGüü*ˆýˆÃ?}Äÿ«hï›þš»¿æñ¦2ž¢o9ë"õè_Ëýdí×Á‡ÂOFô®ÿéüuÕoRû_G9øÓ’?–ùrJïÊó¼¯ß=kþ¶ž¤_ËùKáŸ÷'§ÿEô%AÏ’ö­=ÏmþzÔ¯ÂûÖv/(¸RéäùôO®5É=Gÿ±ô32o5õKJ¯¡ôz;¿µõ«}ß8ñÂ(oiã!³‚ïCö”Ÿ¿ñé"¿ÔæÂ2d‹v¯¬÷(ù/±þ¸o-õHÛŸ‘ý9ŒÿžôÈkÿùó[®¾‚/kò’w/Aþ·ÈÏ_ô-tßÕ²$vdô,&ÿýóì½{ÓŸüù†YŸ´ýÛ?(ùªVÏœò›y?…û´†ojò¶wo·û•E¾òý_%_ÒrlýmMßÍó¦žOcýD¦kXýÒÌü¦Tß*'s/t:ÖtÓ¶Òì8÷M(O(3„?¬3„?¬Aüç'ƈwLj'Sü:$MÁ§>aÅóŽsÕø‚2ðÃ:Q/¬QAîiEÆN„7ç-Œ'S=Á§S}Á¯Ô¾ÄiÉä¸WŒŽ6A_üs%øÁôáž#ueÜXx¼Hø>DÄïC–È«AèïAÔ<6ÑlÿIg÷KŸgõaß'÷M÷¤ÛÏó„Ó«3_¾ýs=Oîýs˜îþw‡î~†øööÿ‡øøô¯3üùþ¯1üøÌ¯þìèoQþè|O8ÿú8o8ÿº4ìÿû8o¼ÿû®¾ß‡äêömˆ/kÿwɾ¶oüý¶/•üùœ/1þý¶o‘þè:_¸ÿº>Oxÿš6_¼ýó|O8ýûX¯juù¬gß–üºöÿ—ø¾¶kïï»üú–/þü¶oþ'²4($D,db&d2ðaŠô(ˆ°!ˆ'ÁŽ!@Ä(ehB!!P†„-A!ˆ¸á(ÈBB$ƒÔ$2G&4Jd!rAØ”()dBIiüO8MBBE"Ä"CdbBÜ8ïD%HCc'HC-4#áH)¡$'H™ÑRDFrD±İ–”!<ºD,1d‚%QD-!*¨BBàdRNˆ'B¨Ð’\$Œê„ ˆ€xAˆ8,B—B„Hdm&( Fˆöâ~Øà"$ÁQ!1r+h&2QBD1ÜTBÀHOˆÄ°”†[ÚH!Ž„%„)Š4H(H´„Úâ$X…$@SŽD‚r‰"(ÈHHˆâHq(T‚…ñBޤ€HÍA«ƒÇBÉ»A-ˆ>Aô‚L"“’–(ŽT?(ÒXaˆ^F"Á‘nN£„ϸRøBˆQ)Gò„x¡(Iã(„óFˆ,ìÒèt$ì(”Eʤ“ÁÊI¡G")3DŸ"1„Šäj1I‚ñD‚Ì–OÅ8":|‚†á$!Ü(t´øx'ð:(P„$!HO4Â(BÉh"(NŒA'(+Q"N¥,BT-d$†Qˆt%âŒBø…"#¢O!zBtÁ6(Aàâ‰Ta˜]B& ‚,vˆrH±ŒDD2t!L\,Hd’-DA‹……bbˆƒ”A-¶CÆ&aÕHòA‰Õ"ÌÍBüÃãÅ’)âh¡(Ï=ᆕ26H–ßdÈÕ%ü*‚H©è„—m¢Žu-¨O"I”‚/…÷(Ey²4QQ’J“‰[ÅocÙHøH+H¯)´ˆt>–è݃bM’KMÑ*t‚vQë6Q„B”O‚8[¯F¸ÿ$ )è„rVô½r‹(@H(B&e„¸ taBbäA$A)*ÂA†Qƒjhµ!ˆ.„aÊÄ*pH„xBDI!BÈ!`À¡bÂAˆA‚ABDAFÈ‚„,d„˜Ð¡=F%)hUXDœTL(%¤D2šDJ @x’Ä`$‡A ¤„`¨AJ'$"$!-Aˆ* hÃHl¡„à,XE4CP‚ðD¿BÇ$.W‘"…’\Ÿ(ò©¶‚I’#aŽO7CC|Cèø$ÂI˜otf±#üA”jEã1ÒšÈd†b(_¤A¾òx*uè´!TÉ5ÕHõÌ>An‰cä^Â-dí8ŠDrÒ%Æêcdˆ/t©ÔARÈ38(ÉvXÔÂä‰<„²’ØR3š%ÈKDB7b‡Uø"¥G"D(„òG(L˜BDƈ‰D%Ü‚Ò$ÒÅ(ab%¢ÂˆA­´!H/ÂÈhAFX”k"‡g„"©EñD‚‹"Ix$Lô˜M"HO8C4`‚oÔ6*ü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<hd„$àhºHba"A(Fü,$Lö(D•X‰„^BB‡„Ιšé!)¨1!ªø¢DD`(h`„BBˆZ´™U(F #ˆh(++ƒ+1.$AA ÔDÔDd„ `…‚9’$ü9ÖHBDH%‚(ЍbA*BÄd"FˆÄDÂùH#uBH†¢‚Šò‚i±$¢"&Ä$HPA.,‘HHˆ…i­'(¡‰*¡*¸ZF "D UJ+H°$(Y’"ƒtAAÈ!Lñ2J‘$i8²^…©¤a·R…aDŸFÑÔ‘ÈÑ8ùHC$N‘ÍAMÈH–„ñ¢,xAä…™Œ„fÍ,MªN6nQ‚‹KO1¡H‰œª-$hŒÈGH¶Ä’ƸQ<ßATAFE¸H8Gˆ+I#qøÊN„ˆßâÇ$FBHBø!‚!¢+A†H$ ÔÀhHÈØÀBŒ#,2ˆC!aB-DOB1DHT((•Œ&2A2Á$‚ŽbAš#‰(Ad€T„H0DH‡)ˆ@8ã,‘(G„Fd‚(‚K -HÇ(‚ÂAÀb)ℸDL -‰ (4B€j‚h#1䑈â!X-’@„¨­THD$ˆV¨ƒ‚ŒøŠ¤€€D @1’"P$ªAj‘iEJ„4(CÁBH† R.„€5ŠhBHE#"DBù"ŒB"¤©&‰ # B…•B'Œ,‹H‚ˆLÄÎóH¢B@$‰#(haHD†ˆŒĈB0$ÀÁ#(1(jA )%B%,QH<²(hm ‚t<)Â=@Šà4”ˆTAÀDBFh­@(F!$Œ„(ˆÁA,ˆCb‚‚$3Á²$‰†HHŒèFDR(QˆB&!$È"Šl„B±‚Ad„D#($¬!#òAHQ‚—$Sâ$òDƒá"áHÂÊӖĪI%Bd†´Jù!D%áæ!8ˆôƒ8D¯"¸DQIºaj‡ØeŒYÂb.Il(69t<¢…؇ZB‡xƒ¦!˜a*‰ô$/ˆ¤cÔIrh”/Ä8!*|’´˜"O|Jl1nÀZQ&ÒHÂB#BìÜ!âAü2HE1!A>B‘3AèHA‚Á‚hÄGƒ$’„)KÎDn˜4&DqHD±>’D‡(hI‰õˆ#OŒA2¢’Œ"ˆŒ4DG,”I.ˆ+4ÐÈ$èID"L8Æ.>2T‡B/'4H‹Q"Í$$r¤3(/BÁ"د8óD(/ÆÄ²KFE|AÜAsCrxu'r’³¸Ô‚ÞBúIqm´NM‚²o(”)‹Æù„ORDìd²Aæ!ªÁ×B'‹\HŽ"RÿH’)N(oH1¢Š§Éa„/&±A‚òaI8?¤rôÄLj!4šŽ$¯gÜ¢B,4±$BL$ADð#H¡"ˆ„„Ø€q„<bB.CÁ&AƒD‘(X$Ÿ„‚B„,QŒªâ8)!B†EaÈA…„XHŠ|h#¤È€?é-¡D%&RpD \HdÀK!D¤AFŒ.BDŒGQˆM‰t¢Da"a(2(†KB@(ND…ÁaAP"p‚†#ƒR‚ÃB$WyÀtƒqhÄhFsJñ:ê2S©)£/š³QꕸdØ8tAú$AdÝ*J³D8#t˜™G2«‚+4B‚C!1fHuÔâÂñc¿‚¤ÌÔRô#D>BÈqCØ=™Ó(´*äô„+–²%X$-85ÉÇK.3dÔÄ'U[Œ,ô²Ä‹4Ï)8JÊóšÒ3Má„ÑB"D¢ŒÄ<5z)²‚Á"eŽqB…1H4ITÃÄ&H0A/£qHt塯€Jq&(Ô„NcÃBäˆÅA›à”Áj&„äƒH2´Aá‡$G:”(AN«A.ÒA$HèHÒ‚õÃÂ@4£2H¬DArAtAâCâaH¸%±4«HS!tQVH*öˆX!«"xC”(Bd&-±IÔ“d‘"Fœ#Œb$ˆ'"#ä„X!"DD'.CŽILšB"YÔ‹#è„8šBÂx̉†¨‹DQ'nB#"¡ÂA´ÁüAAƒbH‡BD/ˆB"D¹¸HŠ1cKX3ZB€Ï+‚GAN‘`D‡D‚…2ƒQ$ÐÕ$Æud* †ñHaKă ´ˆÁ$#:Lˆ„¨B5õt´`aˆÁC(AÀA,2Šr„"Dd„" иR˜H„(œä*"©BAÇ0’À$¨B9I‚ia+AÂG‹„A$,ŒJäR>G Q…Á-BÀ%nE,øh$,º$ÈAŠ!<¢F `B‹¢ed„ƒxB8Rƒ®!*ÔŒ8$-‚{$ÅÈ#DdÔ…â(èT,CFÒI¸ÆE‚Ž”‚‘BÃ(•ÌNDˆ˜l‚²l<+AFÔB䞆RCÁRÄ!AäB!qB¤BW„È“Ds–‘„†QBT,3ŠBd„/H%ˆ G!0Q¡‚P„)&XB& "aLÁÇ‘)@ˆà(#ñ!Ç# DH"Lbˆ-†‚#x(±ˆhDXˆD¡!”LK¬tŒa¢#JÂLC(NIq‚HáD‚Ô:H2²2ÄH‚$#H$%X!‡P aÈBl<ŒòJ@âDèT\ˆÄÁÍH…z‚ÚÊr¨²„³¬¡G‚G†­Aét:ö:‚‡‚è"ÈB§‚©ªAlöDOˆ¢)M$OX’8O˜a7CrIÔ9I©xc«ÏñH$-B‚-ˆÉñÁTðF·³ÏbÄ?±³4ô#Ñös[ÿž‚&ò$4«ôÙ)¿>²Œõ'?ÏÒL’á?=ûB+6;ԶܳõA¿ÞSü#ñJñó#ç)KŠ-6?¯vÝôçÊòo4÷AHW”ÏBö“»/„ÍS?²OØÁZÞ¸~ˆ’ùÝaÉòsÑK8EôÃ:Á?ìAäîsaÌŒ7‡„x2ÄÁ¯ÃÒ<=áëüsÓô‚4A?ìS„?ìîy|iŒxwÜ‚x>„|>´<èãÑXÁv/ôx|/ôyF/1¶m÷aŸN÷„ó»?O8ÿ´_üýs9O,ý[î÷ÿ…òèv_„øòõ?…êoÿáOÿÉŸoýéßÏÿ6ÛO8ýù4o:ýº4_þýûDƒa¤bdØ<Â"†I‚ø)B®R„FaÂ>BMA£8$Kˆ‰b¨MÂÌòÀ‚CãXH&²IhFèˆ'`)‰8!A’Mc‚)R$DäŠãBX"h„K7$ŒŠÈRˆHxöët$8BEèôB€dc¦•Š`bD.(cHhOLÑ„$²V"ø*A7Dˆaˆi ɶ’z('͆aÔ(#±H"xx1Hh))!8Xã6¨d$D"‡ˆ2„R‰HN‚„0ò %øB¸ì;^(\FÈT‚B¶ba„IÉ,Þè!âxHÔZ"TOt84‚/ÄZ(T‚²¬±Át$bˆ6bB)-ø"È.L(˜$‹D-(‹–o8(ôAŠõ(‡&‚xA¸"¸´‘Be!|8æ ŸFÔhxrX„Ĉ‰)´ULãHñH%H,‘hCAêAB¸B¢™‚G—X"NˆOVÂ'„.)q‡1B*LØ‘"C1¤ØÉAÁÄ"M(±Gƒ‚Û4Â#¸Jqh(0ýA'HjŠQnˆB‰ÒA˜D6BôH"Öœ‚BŠòAîc JÒ,c¤„Jd6ÒD#ÖBb!O!b•j â„x" FŒrÃ8„ c¢$ŠbB”AD†L‚2p‚‘HEŠáp¤2H`!‹‚¸td‰âÄH!D $"t‚‚H"â¬"L¯ÁMqATidBh1.Xô#4s¸#¢!IûBN¦…ñ‚oòQ"W„ࢬè¡x2h!'…2ÈÄ/ˆr‘ô"”#!rÑv+´)´%²ÈÑštd‘­ŸaÚ!¤YöŸ„2O!2/Rl"?HÂK!vTYƒáF²Ü814O"öbÈi!ô¼êŒ9òfRcÄ$‡"OÆ‘)¦\l‚ºât!a‚La˜$Db¨0H*±DÂŽLXBÐ’Ù¸E2!Éè"4ªŒ¼™&Xa‹C%$)RF-a€64%ÄH"ÂEé!É&ÁB (‰ôˆÔpADHÔ($TY¦!‚Y¢†^B{B&”A„I‘¢›„B­8(‚9Ö(‚lÃI'TŽ(K%„D&¸†ä1Dr!$„N„&*ÒR–Š8AÕ"¼C!2H&hHN;K…¬²B‘ˆBkƒÜ7¿ %£…‚¢,ÒbH+&‘*'^¡`„“¢Är%¡„% H'("E,óA†„y$b4*,Q'E((ñ„Ba-$X+„Š¢AŠW‚,/xh24B(Yä1BLâ„Y$@"Lø¤£$ 2BFR" Ä!,‚*ˆ‚"‚!°$ÈH% ”A„¢ˆKB€!Bb !€V¡”$„*A®BŠD˜&¢#5ˆ+!€8Ô`B)Á…1b(@r¡n(*28NZ(“”ª…ˆr$e4‚Q)Ä2hIrLâL!¨‚#£D)„(¢K!%á±Ä!Ü2) nD•’"/)Âr"Ÿ$EaFŽCð’"FÂ’$D%ô-º0FQ¡(´ˆ* (Ȉ#!H8A"1,ƒ, È!,dF`(ˆ,BŒF"pˆ‚PÁA˜"dB”‚"pHŒŽ‚àÂ5RD#1P‰2§¬$IÜ$ƒrÁBˆ!,8ˆ#9›†R:Ž‚2)³ˆˆ±4bQCh(G„(„B¨$Œ2’N‰CÉa‚$‚ HAF$VAF‘',¤‚ˆHâ!ÿiP@IÖ(¤Bæ,!PIH‹H(ƒ‰ŒBb$†ƒ¤®„#´¤4Œ"Ž$àH(ªá1\"®„¢=ih!ˆ%Ò‚¢„ÀÄT‘ÀSH°D¡( +„E<:4H&H'!J”è ¢,R&J¢E@…ŒèHÄA Q1‚*D"àBˆñ!F‘A‹Q,|ˆ±V:8*ª**bBØa‚”#JŒTBB‹H"+ˆ$O…EÁ"A*”BJÄCòƒ!ˆˆ"(A‚(!0Å‘#¡†eA‚ØBaˆÏ"Ò(8‚$!Ñ4ÈaŽB8J¢¤ŠA"˜"@)X,EXDÀ‚]†‡äoCñB†+‚*Á‚Îò!I‚€ˆX„„T TA‚,r!CIˆD$†I”‚‰b’Ž‚‹H’ B)‰H…dBÀAB"MAA$(„„@H$(H‚@ AL8‚„$L"(ÐA‹!(0 HHàÒ1ǤA"@2K­*EqÄxȸØ¢œIꌓ4I"2!'TFóaŠ>ƒqÁA/È"oZ?(xt”ô¢„A†´äª&ˆbD2ØñaÇ-oq¹‘¨(B!›Œ¢*'N¨3êÄØ…r…tƒsq#äȆ=¦()?‚£¸þ„¢ð¾«Ð‡Ò&Ñ”WH;,ôbrFò)‚"%‚\+‰ô™BÉ”)‰š˜]ϤX¤o˜Á(Fñ‚’'”/ÄQ¢.ˆO"¶ˆˆÒ˜‰$S,ÒDxU²Òx¢7$Ì’‚8p‘‘IÆO–dŠÒâ1ÂDa™-)±¢Bø¢3s 5QTh—=Ò<Û,A¬]F&aH!„!#ô!ªô‚‚(oä”+¨xG(*])*˜„„g(/Ô2AŒÂ!'ˆÞ¢C¨Á‹Her´¸¨¤›ššÝ(¡Co*áù™fHÈjˆÆ©H"}Œ”ÔHA«A+HÇQðC1¯ÁÂMñB¿‘ôd'­}/Tñö‹9RB/Hñ¶ê»-¯tÒûý‡W‹"Í_)ñe»<¿Ñò"ÍS/5ùÛ_Ã÷%~…¯~u>ö¦m&oªôN¦Ï.ò.Ê/,"ÖÒÜôw¦_Dñn—ÝÛmÎõS‚Ÿ™òÎ_â$ñèv§(/+SDîô_¶¿?ù©j_asATMŸ‚þ23ö^¶ÏÃô†^ðR‚¯ú"J/R6Í4ÿtö24_Õ¹V¡§×þó˾øG®/aú:®ÃüøÙ&?q÷£š£÷M_Tv¡ûúÏ.øÏfiÿ‡?¹ºËñ²soù÷!š¯vøûœObøò¬MÆ/æú΄/hü¢«µõm¥ô»—*ÿ=ûÍO8ý[?¸ùÞC?:ý„?‹¹Zûþžoa3·Žã?ÒûX—;Ãm‰ÿEòM!/ä˜ñÙƒï.ûܾæo¨ô‚Š«L/(ö¢Èýßð6[O‚õH1W…¯¡ï$ñ~"OGêQÿÁK#oAò>?ÊõvKÿ7øí¥ŸÑvd¸møü$ŸÑü4X‚÷H³ß…å‘í…õÞσö4Ê/OòWŽ'#m¦'¢mî/ŽvêöKçÏÃôD-$òJóxËNXï$òHZ?‘´iù)Mo¢üvoîy6ö&‡oòôú/¯ÿË"¯7ù9lN)‹$Ñ‹æƒï†üX­H¬ý2n‹,­…ÃÊt_‚õE|ôQ=R²õ9K_IòÚîŸã»¦ñ´¦žç?aÿ$š÷7ÿÿMm.M×Ï&þÏo¾þ_ºõÄž«]Ÿ™üƒZ>š¿õLùÚñ‰´Ojñ¢¤Ohô&æe¾L¸lòMI.l×FÏNøÿH¾Í©õ„«ÝŸœí™ôÁ©¯=÷ßþ/éóš´K1ž"/8ú"ôOùñO¦ïl÷LO’¶IòIñïþ†Þo©õ¶¬‹L¬í©õRŠ«ì'p2„ô:$MA¯1”jãÑ:ÖôˆsÕˆôÂ:A?´qñã5qaøsˆ'Sü:„MÁ¯ˆþ–Žsß„ó†2K(¬“$?¬?î1"ƈ7Ç:x2¥Á§SO<?>6Œ/8÷M(-2K(?¬“4?¬±ñcqe˜Çx2„þ:„)¼Áòë<2ûlÿ?GŸÇ÷AçñaßgóVaÏGó„óßGû„óïCóÅzÿÇûÄ{ÿ×áþwíþ÷mŒ/ÿîÏÿ>EŸïþAÏüaßÎÿžsÏÆþŽÓ¯‡ú„Ó«#_¬ýk(OìõK¬î÷Ôî~ßÔúòü÷OîÿšA߯ýAæýšaßÎÿ¾A߯ö¬ÓïÆú„ÓïBòÅÚ¿†úÔÛ·†îþ·†Oþ÷mˆ/ï~{øäü«iî¿ôèÞ¯!öìêï1ÖÇ@(CdBB<(¤ˆ¤ˆ#á8Ž!‚!ŠfJ ˜(ñaˆ4¨ *A(I¸ò„9¢!Ž‘!M4A.”!®”àB ÆÉAB¤‚8Ž’1Šˆ"x"¤¨A®–!Ž©ó‚q!ŽTH.D)žA+8(AÎ2î B`Bðft‘Bt‚|‘H´È6¤˜(M+$ˆBèDB!†ŸƒÔd(H#‘ao"¸"a"¸‘"G‚[„"BpDè2ÈDƒºĊȰôçH«ˆ‡A§#ÖÚC$¡†âA‚´2¨¤xD‚*¸TR”3¡ˆaØ2(Î.T#ˆ!èI‚T®ð(BD‘b1â,˜Ea$H,qb$‘B(HB‚ñ%(BD(0H%t„¡Cgˆ#:HŠDHqA7ü1ÉñF!)ÔT‚(FÕR졊ó†"CäŠu„ñb(AÔ(ø%$¼(ÁÇ!JÔ)¸Hr„ô!'$*™¤'A4‹,ƒd2â„ÔáŽs„Ñ‚ât”ˆƒN̬H‡+aŽ"M"Äh!ÞL0!SdšCô"ŠA~\ˆ%è(”H˜okBó’—$IÔ8ã!Ä„2)BÂG…,BÒE¸eÓè¢!Ñ ‰!Ñx“(Ä‹Ð$/ÂŒ()±HBHT+"†éæ1‚J±A¸˜T*"œc²’’DÁ‚X¢‚䔂ˆ²t¬H$0ˆR#ô(ï±DAX.$-‹DIâ-Ñ„º†Á2Ohá‚ø†NvŒqfôA(Í%ŒyKñ"ˆ;AÏ"8˜ˆ‰ô¡Ë$òŒ6“x†Â$˜¿âˆrJb‚7ÅœR”,/ˆr-BÄ«„/5É„/ô$ˆ¢‘M†˱Fn¤O¤dÁA&üA(†tÁÌ&‹N†ƒ¡Ä)ìɱHô¶º0‚XÂQ7„Âa.A&bDD! „Ä$ŠÁ$D5dL"L"‚¤$IÈ$C8BMÑ£'4X*1A,<"al"¡¸à,ÀA«"؃E2($r!2\˜"V&lG…à2X$ H$ %È"*¨! „Bpƒ‘Ȇ†r”†‚b(”Cá4!b!AG#`H(c¨B…ÑB¨H&ÆAç)X‰¢‚BK‚ABO=Br*Q´2§‘øIf‘((ò…B“!*ËKܶƒqˆñ¡J"þHœÆWA#Ñ©zöj1‡Nb„ˆö(¶LH´&â4$KŽ›¤’Ø‹-˜öJäJ±´È‹¡(sÕ!zá…‚òC(EáB4Im¤iøJÈÏ!¼HºÂjc9bQ#ÁÌÁ*†E”"ˆòA(QFH!Ô”²"$t‚˜‡"´"™¶,hBÀªžbÐLB(M‰Z‹!‚Èa­LÈŠ¢Lh˜r"ôHN(d‚Od!à"¸„”H†˜rA?t òH©A‘&–ØF ¢$C‰q¤òD©‘(B‡)ŠáÔ(ÓÄX%ñ‚4„‰Ö)hB`AŠ4$G†‚°$F±|")Í%,1‚N[X&‚{D8²,iT,¨Ab™ô$ApX˜H¥´‚´Š•ˆN6Ì8æ){Â("ÄàF$ñ*U,8MD"‹D&ÃAàhRAºAñB†H$‚Jä1’H°‚"ŠC²A¤$$qA/J4Fh"I’ˆ'*°’‚‚Kd²THŒÄ$F¬h2,£¿3 „‘‰J¢,[†"!ôd(ˆ*ÈNƒB)1( Ä)%ˆ;$Ê)´%ˆ ’ŠH8A"A(Š"¢BG‚HA!*Ø‚„ ‰ÒÄ6Ë0Ƀå!a"I‚–ÔDƒÙ$±HÙÅ(C™š’Cádx¢F(”B‰Ò$¨BpÅ¡*d!’LáäJ±‚”H…±HI‚Œº¤¡‚-‚*¤H¢B*èFD¢IFòTˆ,͈lÈ$«‰ *Hi„HÈ£!aÀ%(&‚tD²"RBH!Ž2&±AÈ"ª¢ÁDƒ”D3(8¢A€!&$ „¨ÌqATˆ‚$ !Ðá>ËŒt(2‰$Ô+¢HD£˜L˜‚"‚!&"@DF’˜+A$‹H€á2àHá´"QHO!…´D"4ˆCˆ HYLe$A,˜Ä!€„˯à’aF',a$G1BG`8’Ž&[AEp†TLODBh!bˆ‰¨âˆÙHB¤$JQ‰Â$-D#$D1‚Q$LH"B‘Ä…È4IÔ‚4BƒB˜RïˆäŠÔ?Ãd"%(I)Ã!ABDJÑA!D @¬4‚ŒB@X`†ÀB@H‰d„F„"B„EpIFá$ƒDÁ„(¤DØa¤D$)ÐÈD”„B&ˆ"abÄF9‚`„"ÀIB4A‚ŒQE(ÂA !Ò!AA(Œ<¯lr–"%²"˜Am$L„¦(IÔCÃ$N7„GJ&‘…Ux!å…øE‚W„ôQ)i9Î%‚òBóÒ*M(>\äR|$eaG‘w!GS'RJ¸JøB-\r†ÑBÕDáHs†Ü†ÔCt&x&ÑAÔÇT4Ccx"\äíB^*§¤FìaøûæpHÈ-Ì$B#òBìH)AD„¸ô<„ƒqˆ”AMD¦$Oâ„4C'Šñ£'¤Vi2EÍÇ›DJEƒ$(øAA#h”-H®FµbÔÔìX:È‚¯"„#›ñDh„-hÆÈB„ñBƒHdˆH‹C’aF4W!£18%ò‚4‹ˆ;˜)‚xbóCG„n&Ñ¢Øt2üHBïaÑK(”Q’!)4ˆ#¸ˆr‚‘)oÂq'è„1Co’ôaF.Œ‰ô]‚Oä1ä4hM¡!ëT‡DIEÑ7ÁC|AtIØiôDÃAI¨‚ˆä!šL_DNòj"½.L71'%½{o£öãg%¿vôŽ6'hga¾öK3ÏLòÎ?aqaôm%ÝHhùw¿w÷Žÿ?äÜ3ôCSŸ¸â–þƒ/$õ{b¯)ò†mo¦õÛw¿uÿOËyua±iÒÝüÖ–?2ýk3ÿ©ö#Ï-R}¿©öcëtÝfõM¸CÈ|¯1ôy|¯1ôy^¯1ö}zïqöù|Ï8ÿû8Oxÿ:´_üÿ{(ÆBè…HƒèÁ2H‡#C¨!ŠHÂ,^B„F˜J’‚O$‰8‹HL’AÓC¡A>5R¡A'’Mkƒ³4hF(K!(¯Bè81H’ÇGF‰òLf¥ZoŒ3ʼnñÁ(_KA˜¥'§0¤GG¯aøA¸ÇDÑ–L¦õHD‹!qŽH†h„ŽS,èÈ"ú1'b*h‹†-+D‡ƒ¥$Ž4¯$Æ”'.Ž£øZ‚B‹,ËBßMòB(ABHFD„l rÁDA6(0HGŒ‚‚T‚,Aˆf\ä(b.HÆ„B‘*,Xƒ‚„ t]ÈÂAŠ!a(AŠj†‡DHCH˜„Š‚1x0`BÀBiA')Ç#âIDFH è»E´’‰$ƒDäpºB)Á!J’ˆ#èŠF‘(.ðAH¡‚°”Ñ&È(‡*Œ$K‚(ÁŒ4(V‚H„xCLA™%‡%)e…CâÖ†šD7Á â)2\¯˜HÔ‰vD±"טö„Š„N<ĈFñ"DÃ$¢¨8$#ñ³Œ/ƒx:#ŽAY„¤ÂËA˜°ôQ‚%ŒØ¡h"Á¬d!6„$6“CçY”*¤¢ƒ‘Ã!bk+ˆŒa$/ŠåÓ:{qB˜€äaÅ(CÒ*†’D&,Áš"ÔÅD! „'„‹„3‘DŒŠ!’4d.Èa6)Ô6$T¡Ì©”‹˜K")¸$±I,Ò¨!„(”©,C("|’’8‹„O#La8BpRhb$¶„”’,!âÖ‘ƒBσdRF¨!'ÔȤ¬Ø!„iG&‚(‚˜ð2A/ŠÑx’APL¬bJHè4ÁJñˆ!N"™‚àC”æÁ”*dbi!ø&ÈD¢#¥F‚úŸóU!I„&“´*(*HÓh¨tGbC2ˆT§$ª”IK'¨HL¦à‚¸ÂG#"J‘B™ˆ$Œd‚/H!á„ô‚ª˜…2$ЇD„´dÔHÒ!˜ð$ˆG!J„¡HD'ñ€`D "(‚)“„‰ˆÂMpD¡‚0$‚"€( ÈA‰”B(F!.„)!H`H†Hˆ!Bi 2†€1ˆ"¼3—$J4qH¡"˜#¢‚‚Õ”ˆ+hD›$ɲÁ¢„”"O¤Ĉ©èE B°J‚(“$+C+‚JÔÖÆè!"’Uˆ­ƒv-dŠ"(‘B›AŒ ÄaK4Åâ!!âJ¸BÁÈ„h/Ï!D3(Ahà&"´A˜‚EXƒˆ@¡H€*B±ˆˆFÁ„@!ŒHHB€Ã„b\@„X@ !,4~TH*d€tá,’€Ìˆ$(!RAÐAH1!/H¤Âƒ›Aˆ¨HLˆ $@aBÐ!¢ˆ(ŽB‡!´ˆf!D’(†‚ˆb(@SA@E2‚DŽØ"”ˆ«Hß)M8B@ˆX‚³‚܈¡!‘ĈJ(h,΄!EÒ)‚RBØ$Fƒˆ"ÂX$FáLîT‚¢‚0‚LTD„AÔDaDM‚BBB.[#F¨$Œ”H8‚1A ˜@!$fˆÀˆ@RŽ#è(V(€Ä1Af¨(F´$9b„IrEø„…NH@„hˆˆ%ÔAÑDeÔ$!TT€a–0C&)èDd*H$aHAcB‘àôAFÒ.Ä"!„@48H‰‚ð‚)Ò*B5R‚%EbFŽ„àH¤HDITŠÓB<ŒGD†$„*Bâ‚1„5¢HcHô"H…b8H,ÔKˆ#©’!˜#iñ^‚! ”€x„M*”F„†tRa!‘" Ñ™…H%ÁˆD@!ˆ"ƒ˜1„”b€h‚ ˆš(?SL"T$À,`A6 1‚‚É @DÁŒˆˆE¬HD(D"ÀŽÌ ãÈA„ (™‚Š@hˆŒ7G%‘H@h1O…ö“(($€ñ„»X„†ôBb´áhS‰—.ÂŽ‚=¡»/(þBKAH‹‚!ËM…/\HØT8ÄeIRDBr5ó”DI¢ˆ’,’ˆD…ÖfôFÅd8mEòE-OäR$< GG‚Qˆ”ŒK+Á"¹¨a¯(þ5Áà¤ñDMB"$DüRDƒ¤ƒ.š´3¶²£(û”OQ´„˜‚FÑ!è¢x’~aA†2"¢A_):[aŽAB)8(‹N5øBˆJñ!ƒæâ„q±X1#¡ˆ/¨ø"ƒÁcÑ€æHÓ$ž´/$ùBŒ, J=sFd")t15I^)1JȱKˆIùDªO<"Ø%hÄhˆF|Ã:B-B¥!¡AE3!8GHH!Ò„2¦B.ˆôd„O˜èDè$òˆ…ÏB–…¨Hƒ±”*˜´ŠÚD‡Â¤-‚hfæuaø/øŠD„HŽ’Cñü4n2¿Ñò!MSS/…ô-%ì×[ý6ášêHèhñöè»-ŸTÒøýÅW¯ÒÙüu_6¹Ió./ÂÜ1­”¡ô§o-/fùz&ç+ohÒ"ù²nÿux®ò«û}7OÒ\Òœüó7o6ùK·ïñü#Ï=S4ù+Oêô$RofóÚAçagjobó—O÷=ãö+û?sET]ßÂöS·dùNïâý4^%òV’¡÷6Þ.TóñMe?q×%Õ™òEA¿·×u÷I™;ÊWd/iú’²*ü„¯]òwºy:ñM]e¨ø;“×>ïlþöoˆùŠ·4;ÿ‡}ºûêÇ¿æò–†/ƒáh~fÿߦoWý…žÿUòI%ô/ÿ)ñï£÷F_9ß·ñƒ‹»Liÿ¦/èùN§ÿîø4‚?mÙþcÿoø6S?¸ù!ßúgD_¸ø2ÿ,òî’o*÷–Ê/¨;Ú/(¶ü%ï£õ%{Ÿ4óH¿1å$Õ5ñ~(ÓöÙ>¯fñ6"oQò~êõwIïølå¿ÑöeHßòýg¿ñô¶YO²÷H²ÿµä¹ýCÛÏ$ñ>jo¡ô²6¦qô2‚?»ñ'ß—ò_'¿nø?mN(ˤÏö>JùÿGzŸ\ù_K?±ý#úÏDóXl/£üu/æû&/sø3ª÷QoïeúíÇÏ’öD)ßòzÇÿ³ö–jo¤µÞÓ®Õ¢ì¤ö^²ÏTøNïÓÿ¦Ú_ìñÚ©ݳõ¡˜«Oï‡nËo»†¹â9þ“÷Ø÷]!Ÿ=ÿoHl×VÏFøÍJoûÿ'YOÊùXB¯¹ýƒYΘ¯-ö¼Î'»ÿ+û„2o+ø¶C_3ÿƒ¿ÿeòÞ·ïÖô!mòÍ¥¯þô3ìŽþ/âùÚ¯¬ü’X/¨¹Úö¼ôp2Ôô:$]A£ÑöA½aÍA¸W¬Ž2EòÁ:W(¤qòá#qaœ?ǘ/CÈA¯SؼÈáëaÁŽsß„â(¬ôÁðá'AÖLzsͤ'CRþ:„]Á«áëvŒñ†sÇ„/(ôÂ:Q¬a?îaQÆxsÎ'cȯc“Ä«)¾Ù4-ôÿSô{|ÿ1ô{?µö4oö´o8ÿ}>O8÷<6_¼÷}>O¼÷}î××î߯øòý÷ÇþüïSôøüïôøÜ¯öüüïö}üß8õZ8O8µ:ûå_¿‡óä[¿‡ñ䷇úòÿ¿âïÿšAŸïÿAŸïýaßÿg‡÷Œó¯‡ó„÷«³_ìÿ{¹O¼ÿ{Oþw{èþ÷iˆ/ÿûèï¿:ôèþ«Iî¼÷ìúïöÜO2E&4AˆpÁÈA@8Ž“!†b (a®…1‚@uÁÈAƒ¢ ˆ¸â8‰âˆ"ŠdJ ˆÀðÁˆ”ˆ8ŽäH¤ˆDŠäjŽÃÎH‹ Y!…ÁB‘*A°„f+$Ä9"4(feH'…ªR!À‚‰äX‚¹*”†Æ‚($$ODZ‚0ABጂ4¢•¤„H±4ˆg)‹I!¸„B‘æqD*(b„T”L´´ˆ”Jˆ(t- ªŒq((ÁbqÁ0‚n$Ž£i”xü,X%d$‚’‚$ŒáD˜&JY(„`&âä(rEBHˆFè(dF‚1’gŒ¶D’ˆI f„š+H…¨$ÐÔ$ÁDJ ‡¤ˆX–Ñq?8L&²1I%ÁHH°5ØIa.A:¨IXƒNµ"FD¸AsDr¨Ô‚3C1ȯ‹Fkƒ˜)è3„ñ¨AM¨$(DŒñh„¨¯$,q¡T!jÉB2Iˆ‚èa$è„I"2L"C¤Á#¢Æ&qH¢Á¬*á91‰-YB)‰eBŠŒ4†F”YÄHF†ŒJˆQ'‹\k"LÈš#$ôˆ(A‰5ˆN„‡1"¬‰U!bެ‹€ˆc„]˜R/‚(ÈLD¨Š „‚,SBY7ÎXm*W‰ÕƒDXÃz_û"O(Ñ$"kÇd%DfÄD,ñŒOBAÁhO](‡!‹†œ‰;=Ç$OHr2r1x„á©ñˆSŒ‚òAH‰úAˆOÁØ¡šˆÃ‘ˆÖ¢G8,â+”(G(š#¨T¤O¾T(„F´D<‹„L¤„B˜BôÛ¤0H"H"„$€2ÁI¤—„ƒ†xB˜„€(„W„$€ ΄)4HH"A@!$‡ÂR1f(„˜€$*¡ & "‚b˜%ˆ¢(!˜7:ˆ&”!àƒ˜A5œ„¨€¡$D‚PHJü*D¬¬DL°”ˆŽ‰DŒl!„‚Œ¨Iˆ,#Š ABˆ€r„€E”2"H"Bˆ@ÑtKòL¢$,t¤ó‚u2LØ$¸eÁŠ{9¤ŸÂtadfÁA–´Š¤I-‚'™hÏ(áSô!"‚0hqD[Œƒ&ÒHÒA8B.EèBøH¯…òK)Dò‰d(†"k…VtQê"´ÈRŠf¬ÂbêȈäƒÁŒäjÓ>8ˆi2ƒDˆ˜‚a’+aŒaV!kDT& CÖ$Ñ(˜T!‰H3AèÊõ"‚`!X„ÅÂD€ƒ4RJyŒ"a¤!“ÔBˆ"ÈB`ƒ#TH*Dèa(K‰ÂD€Hz$ñÕÁ‡Sa„FsQ²(hb›Aˆ2K(”+AAÌa„B•¨MjØ<“álAøáˆ"Dˆ§JØ…„Aƒò¡MA8MŒˆÈ&N9N‚*h!‚t™ÄK°¤Ä(LF¸†%¢)Œ¤B!ŒçDÈ{£Èš‚…DB"qª„#ÂAˆ\¨’A9‘%‚ÑÈ‚Ä&”™#r’¤‚,t1áBA˜)€,H‚Á()˜"†!Ø(bA(Ĩ%á"1¡„@„5ñrV0"„#„Œ’+*/‚DC2‚ R„Œ‰Aá‰QBˆ'A„ ##&„ÈHJÈ(D(„h#šB$’$™fD"Ch!(°„‚ÉJ"M«s…8…B˜/„ed†È¤±ŠÑS¤*ÈaT"G"‚%t"D(˜˜L(BÈ8k8¸i±aÔ‘‘˜.œ‚˜"M$ Œôˆ2KBƒøˆˆÀ*„AÊ’(’D"9©(6´ˆ²A‘T¿¢(JBd%`$2@ȃ"0$*%²‚Å$H‰"¡$!F1F1"N$S¤Œ@†,‚ÄIHÈHŠBLjBƒ¨$#(F¢‚.D€,¡BIÔˆ–„LD"$"\‚£è¦<‘Œud‚”‰¡'„œf¼ƒ„ÁÄ‚D¸AB&\&ôD¯ˆÔ$ò(DM’ˆ*4‚OHq‚’T!-‚AgH#ø 1"ИZ&Œ„Ø$$Ñ*ÄH¤ˆI—ˆ#‚$ (A""„$ èB$âI)ä*ÆOÑ8„X„‚QŒkC8¤@„eÁÁ‚Dè‚ø–22§‘9JÈ#üB‚E½’D)B5–‡±-Ì’ˆ$+$/(x„¢,QˆN*8&rX¸XB†‚¦ˆ"*"‚"²$2¤(K'‚)!(F6劘9Zƒœ”!A!’”BC"!TAA!D'ExØ!aY™å3X‹("-"ƒ²Ar$¹jb¨FL2áƒc#¢8¥"*‚£"E"DÂBF„B$F˜(!ЍƒC¨Ô$M(p!R)…q!HqaÔaA*yèXX”ƒØØE"DâˆÓÂŒ‰b‡AOHèŠÚH„-Hâô$HQŽDI!ˆB‚#²†$,b+hAHI„˜R‰¸"8ƒ ¨#õ!Ø“MĉB(  8…B&B"0ˆ@(¨ˆD\ ˆ Mˆ‚`B€‚$ð”a $B@$„!"‡‚HD(P( „&‚€D(!‰"9ˆD :HD0†Q „Ð>¡ŒµqÈ&X‚/„É)O(èxòDDOa(¡ò¤!—ÁFó,‡^×B,øj…ƒ\]ˆMÂúƒ-íßQØFÜ™ë¢È!M¦†Ô‘áødñR«3Q„Cò)¢C|Òxæ"’Æ'2ƒá2´+´!5.ª¸ƒ3DI2¥K(FDHˆ‚b$~Hö8¤³ñ²!*ŒôË›Ib„R,ôÁJñ!DOAqˆñ¤²L!"‘BhDH–”LÃ2nϤa!–f”:H&T´&Ò&JÒá‚Ü¢˜"ö,)YÜQ×+ŒN’Œ)ˆèŒ¹ˆñƒz¢|8D8‚ƒXXI²(†Ö$† ɘ¤J¸B¸+•.,¾qSS¥mR·‹A‹™´ôIi‹TƒiΦ\ùÌ„ŸÅñ$"_ÂQ˜Ñ¥ÓâÅÏ2q¸‰æˆa)-2©ñ¢BGHKÊ„_"êlÚá‘:‰N$„RÄ=ˆD.¡E$¡Á%š"Ž*#èˆU""+º++4/&úbL²Bô!†+ª,š¢ÈH‹‰–òd4ß´ò1_ÓñASß1ÔŠñ½)vQñ³yË©O‰ã)ñ¶Õ?Ýòé=ß3õy?—–ÿ×ò)E¿­òe“ŸÍó7-Ÿ›õƒ¿¤Ù1ò­lÿ"óÿ(^4Žaeô‡ioù›½¿ºÿê:FÿÕÒþ}•o$ùK4&MÄ-’_œñ«ßØÞ"ñNïöº"®,-6O»ô[‚nÂUËÏ„rqÑQ¾vñf"«¶½¯r]¨o¥é!ÚDü*Òc“Ÿ…×ÿwQó9•ôk_ñöÉMï_ø]žm¶wiO[üÝ­ÿÖó?jW±ÿÃâTø-l_úù¾->ù~cÿøÿ—CŸ¸ùRY?ûý7w¿Úøþ»?äø††wloxü릿|ù[[?+ºòl%ßÒäzúš§|o.þ²÷8õƒ¢¯,üºÿ2÷ªº/Æøâ®'a/+±¢þo§¯Gøt1òe¨OBä*â¨ûþ¢Oìõ¢þëY/)ùÒH/ªõ¾ö_ÏBñ/Os÷Io‘ѳըÑññj=?›ú]'o§ñ¢&k«?áòóÿWöw)ßþ?eŸöeV÷?Óÿš÷?÷´ó[™üÛ×ó)?òÿã§ëIñ¶—Ññ»÷ŸUò]'ïTÿ?DßvmõÛÁ_qüž{ïòõO¹ß±ôšØr?”û5Ooáüv?î¹4ò†/CÑú½÷ö](_Öþ;Eß”vmùÌn/ã÷êmz¯¥úZ­Ò¡õô˜k"ÃÔ#ÿ5_4ñH¿´ñYCvõ7M¿ÔÿÊqݨ®k1oX÷£ïß3ó{8vñal&ým(_nûû}ßÚþ3cßýøßJ½ýIŸœùssßÔ÷/;»3ž–k³žsÿ‘÷-V/Öù÷Ô¶(rHèVúOKÏIÝÏõ뼯½ôYY=SŸœù{O߯~¾òœ¶m2oiò²Æ>öºñ\)O—ómD$džφúîÎ/Èü®rïîûÒH/¬¼šôZº/¿ÿã;p2ÕZt:ÔôA­aëA}aÍBŸ8÷ŒŽ2M¼S¤´Aöá7AÖˆ7ÇÌø2„\|:ä<áëOì8·Íò„2IóÁ:M_¬Aüá'‘ƈ7ÇŒx2ôÁ§CÍÁ£Ù¾žÒöŒ2o8wÍØ&s„òÇ:OˆòÇ„îaAÆ.Œ7ç/Áx2ö(įC˜Ì£‘èë!­¤#ÓB÷2U¿FöQ¿Fñqû6o•·kò”sŸ&ò„s"òÅ{¦úÔs¦weøèw†øþå?ŸáFþ6YŸNþ–IŸNü’iÛîo±öi|oùõI89•8üõA,o>õA,/~õI(îvŸ”úzÄ¿¥áWücŸ_üšSŸ_üqÛío1µ|÷„Óë4o;>_¿ýg8½ýG<_ÿõA,ŸþõAŒ/ïüS,þίiõèÆ¯!ôèÆ¯!öìâïIôaH€2E.BC$tAؤ"A(¸â(™"G)¢(a¦D(JhJpAÈAƒ†ŠÃ§AŽ’•„XIˆ¤(Q&È¡*X„Ø”ˆ%!B8Ž“à(†"á(:¦&áº?—Œhˆ-E8Š©D™$;†"‚h#à(r…RCf‚DªUAŽH&䈄¸/qˆ",Q$ÛBˆa„A0)v”†8DÖHˆ-$H#‹Bt¤âBá$ˆBLˆ±!è"Dä$¸Ø‘ò8£d'„`!ÍH²C,¨¢À2,H|‚…iB‰xtä‚"ü„H`Êòˆ!(+8 ^†5¸4Di‰FDÁ(Ð5¨‡Ä’ „#¤!B.‚8d ‚Eâ$2(DIh¨$I.Â’`‚–:±1ª¤N‰d1‰‘!çVˆÑB*H´¸CÑ„ä(Y‚t…ÁR&´"F /Tìé$[IÊÒBêÕQÌŠI_â‚ÄJR†ø¸Q„‚øRehE„3"¸¢’ƒô$¯DL‰2È-A‹O¤„8˜@¸8øƒ÷`íD†ˆÁC¦REhH#AtA²(X„#dKBHž(Lî¡(Dé!XA°*,‘ˆD!6T•"x4$/A²‰e‚L$‘¬ÆCè„êAÈ$$2/DXB‹BŠqlb„O„âIˆâ¡ä!XèHñ<"$‹}ôHŠ”q‰“ŒÒÄêAY"GHÆ´(y.rÈ–d<•dÏC¸RÔCêœa„=Y-šSx$øˆ³™”)²_³Í…‹_1qDÅ(O’Ôd⢱(øY4ˆ‡uúQ˜ã2AG‡U8"%Ã×ÒáÄiÔ‹!‡D„³Hròh„‹¥KƒëϾ L‚$„á,&ÄQ!$BI‚„IJ"„,¤B@BB0ˆ0A D$HàHÈÒÀ$#¡ŠI¤*`. ”D!ŠdA$À‚ ¨.‘“" Єh%"„A!h„ FˆhŒâ‰€h¸H.P(Hƒ‚ hˆ"$‹(¦‚ÂB!%‚<:B$Œ8¢#$BH$­‚‚"Ò€„x»J±*qIj5„/GÂêAa!–ÄD,/™„vœ‚òA((G(g,áF“ôé”ï†q2áNB$I”EN¡§7Å-FtlɨøFtBxÈÉ)Dˆ±„ÕCeA‰!y‘´$!âHø(K-³!”LO%؈BÜ‚æ$1‚Fêˆa«oô2v%Q,b„ˆ&"‘4E"䂱Jƒh DˆY‚R„‰èC8F¹–ŒPB,E‹¢Ä'ĈČhƒ´)9Bˆƒg-82ˆE‚#h„ªaÄ!&ÔHã„H’¤…¢ÊdŽBOš…Áh4ƒ©ád’b˜al%ü(•%!B1hACF2C>Xƒ¨ÂGªˆ9$0d8¬B$4!ƒ¸„X(AÈHðB8A!’Ž&2hK‰¬"dDŒU¤bƒê(!ƒ˜Â*3…Œ’8B "(È,(ò¦„D‰êÌq(Á„€!HØB(£µªÂ¦Œ1(@´ˆD‘BO ƒ¡H%&82¬)‚Á'"B64A‚ƨ A%¨)!ϱ`Bà´!&Á(d"MH‚!‰4A¡æ¢H!A $†‚#TÒÂa…! Ò4’ˆˆBƒ¸"H”I ˆB‚$€8D,qHÈ"À‹“Ã$&!‚$B‚¤:X$ˆ+B‰Á‚¨„A”„F¨(M!Ȉ‚Æx*$!¢NŒ&$Q"‡¡’! ’DQ)„a„¤Œä!Â)ŽA"‚‚è*D8ÒDHp‚K,ÅHŽ8#â’a„G¤„a$Hr!\Á;2ÂŽKfpH…Åp)tA"1A#xADT!"Џ$˜HΈÀ,d‚ŠˆÂIâ( Ž)D`ĈDLAÔaQXN‰ˆ„Ô„„˜D‚DŒ8dŽ@BÄ#s)xH0BCôˆ"¤$Cè#%´‘Ô!¤QÂ$Hˆp2D-¶Hh„ˆ„$Œ™„)XD+ȈM$†äDD(F"Ö„ò!¡$Ð!‘Ž*'˜"ˆ&"XK‚EAˆTQ^‰‚4˜#”H*oä$`„FÂ$ðB%˜‚D/ô(˜kCƒb”Ë(4Ë(„‡Œ0H "x5¦¨-ª´"ÄB„Œ6)*¹ÁÌq+D,ÈA!ˆ%åÒ(Ša#JÁBƒE’˜)C$d¨KB+„ŒEBè(åT;fJbA+A` a1È‚HI"SŒL¨%(…¼IÒˆ²B¾bˆ‰Ô’t(2"«($."LôF‰t"TÁ /ê(„‘‚!&‘ƒi¡h°Ò„»bTCFqÂ+Âb&d*LLBb!bƒøÌ$â$µ1a6¸¡¨À!D@èH˜(†AHˆJ¤A‘ŽH$?¨¤$ŠL"D´LÒbø"(Ç@X´!«ˆÂQÊ,ABè"H ޤ‘!ŽF¡j²(„2¤ˆ‹B "¨H¨Œò"¢3"€!"€D*ÀHB"hB‚J"(H*ABˆ€€$  ˆI"È‚ˆ†b„†"€€’‚€øOd ‚€.H ¢(€ „ˆˆA‚¨L*‚ÆQ*b "H ‚€„2„‚J€!|4‡/Re*¡A‰³2s2¢dŠŠ¢"h&ÂJKHŽŠJòAHbŒ$´ˆ²Âä¶È¸Ò$è.ô¡>o‚¸$±¡è"²ÄœghˆFl”¢ª.A/!«ª+X¸"‘²ŠòÄ8+³#+[X†¾D?C/Å!DâwèËv¸²H¢ˆNÂ…â"¢âŸ^O±Hbƒ$¬AÚ!ÅLÎ-LDH+©/ˆÉDñ¶AO”Á(Eq(¡Çƒø%è$Ÿˆ4‰Ÿ‚èÉšˆ!'"G˜ˆo‚æ<8Є”HM˜Œ|HºQá.´ä8¨®!'RP)D$À§‹T7º"ÛBO„ô¤&â(Û¢‘*å¤é„Ôr6%õDZ¢TNAJÁAHË(Ë‚®¦/Jú4ã¯w×jüäŸ?ÿKAÍIß„öó¿÷«³?·òéó/5øÃ7:û¿,—º?šüOž/Iù²²/÷·ß¿Yûóå¿ÿz!Ýa_Dö!k¿ÿ­¢ïNæmûÄZ/¬<ÊþòoÎßqGq'ús³Ö—Q«±Ñ,ôÑñvï³6ó–„/cóY6ÿƒößÂý3$ÝiÇÿÔö3lÿ¢ñ|#¯±ûF[¿ñ“³v÷Š¿Ió{Ž/Bó÷%ŸiÕ>ñïœ'QÕùI%Ý•ÿtóÏw×Ïó]›Ÿ¸ñ™ß²ñ2ÿñùÒu¿ïÑ&ù¶?Äý³ŸªûþƒÿyÿY-])Ïòÿf·ño£ûFºrï¥øÒš/¬ÿÎRïï<->_µwd÷JQ¯¥Õ±äµ5kïÓñ“¼¯eû’oAó"e¯æý­+ÿ”üîc_ÁriüeaOˆ}môÓö_1öu¯•YŸ½ýØ3¯·´yó£¶/Áò´†oaó¦Öo‡v•ý_yï´þGMMßÔö©×¿Õõ/ßMÝßýÞ[¿‘ñ‹©7ïóó³ÞŸçú¦"oiø"'Þç}ûÿ;õÏãÿÖò!MÛFÕóîï?áù¦:oÊùÚB¯­ù‚š/¨µzúH¸pôE§CO4´ä’\Ï8÷,“$_¬óD"_¤Aþáž'AÆÌxSü„/Cø2ůCÔ<¯>M!ÍÏ8÷Ž2M¬óä¬á&ñáž#uaŒxsüRˆ'CůSÔ¼Øþ!]aÇ(O87Œ/(3„¬S„?¸1¡?î!wa}AtsîAx2öįC¸üBºþOãÔÒûRe¿VòZK·R¯1Öò>Oý2ï8Õ-ó†WÍ"¼õe*ß9õENzqAü¡Äø3Å?Åô3…/Ñô{…/õû…/ö¡o•õ1O8µ)ó†S‹2_¼õa8ßzõAßzuAü¬WÄø>Å?Íò$„¯}ôi„¯ôI„¯1–­o1”=O=Õò„Wéúç_†þ„_Äü¬_7ÄÏú÷A¬¯óüÓlãødkúBgøšhÏ!úžGýÅ$X(Q.$(„ÂA‰ÁAâäŽÁ#å8i†4aÈ„åBƒ!uAØ4ˆ$ÆA‚HO¨%b)ðÈ*KAO¼6gftSX'‰t2µHô3Ì)z¨!Iá8–œ/8öœ"„2W„ðá(_®±dxSØ…x|:å„ü3̨w+!Iá8–œ/¶žòE(cqAìƒòÅ>NŒ?…’'ȧSNÈ¿Cœ¨s±Ò$áÖ,é6ž„²rE(òÁ"_¬óDˆ/…’„#|:ä„üÛ ˆˆˆ ‚­ãJ1(-A`Cð gTHFA†¸AF’D"ˆH‘HIDâ„J„bHH¡JbB„¢h"„P‚"€Û2 dQ‡C©¶HÒB–LO2ƒ3ꡈäܪ$öÁ„IÆ„K©ù‰BfÔŠátëÔxt³‚·Œ¡¬ˆ^$jZŒŽƒbB‹‚A¯ÅêÁÒ!x8”J£%”Yk…‡$Tòˆ¢I£©D£\Jó„HF„ò‚Eζ¢–Oä(ÌègOqÊmH&”BJl+!G"Lˆñ(A‹Ape¢…â˜0Ê,qA˜A‰œˆ‚I!È$!ì(„ BƒQ"C’H$HÄV‘Œ+4-„(L‰èD‡òHCФ"!‚£„XJ?ëP…*ÁHh"Kd!*8‚!‰˜Dy$ÑHLõP(2VCqDdˆI(ø6†NL‘‹È4hFd,h!ðIƒBˆ‘ˆT„‡)R$,ÛdãFDˆX2MH„R(%$ÂÂ#ˆÐ)褲$ØD¹"¸*T#±¢ôAðHD‹8$"aH¡£üHB"ñ˜i0KBAH!$A"B‚HЄAO†K2AA‚#a!RAš4²0–Š(•DD‚LQ7MˆVxATA‘€FäH!Â!P’ŠA‚àˆ¢(L>eЂ1x°„B‘V!€„M@'£D$lDR‚†r„8"B+¢KLŠÊˆȈ5BLH‚!È„„#!à#È$¨‚CцT!€ÄhL¨¡AÃ1œ°]"!ùDc "C‚Á`N&ƒÁ¤H²"Œ‚ÆÇ’I„™Á˜BqˆÆbH/xHA”!)Ê!#á²H4Hˆ$Ž`$I‘ØD„®„)RDOø†ÅR*pHÃ"J¤ÉàŒãLÆíSÍJÔAÑáQ‹QAÕ* A&B¡‰ô8VÁr(‘‚¨ƒL`1Jâ8x\È…ˆ˜‡($'hBH$d„ˆL#AøˆA`‘‡®(…±ˆB)ÈBHŠé$²„iFH&)tQ‚C(ø"„H!€OoÃDº(RˆHÒˆM8â@DñØh-$íÈ(‚hŠŒòŒ"„,”b@¢&/R"D‹‚!’‰IqÄYؤHŒ²AR¥*ù(hJ´”R‚A2‹b(C1($(ªtD¨BG‚+a!‚6h! 4" ˆB(€IB¢ŠÀHHH(' ˆ„$ˆ€" ""H@(HiL„ „$B"bH‚‚BH¯ýˆ$K$€"#b"HBH„¢€‘„‡Œ‚‚(A„ÀB0+(€€$ƒ‚ˆ"€ˆÈÕS“/––‘Í8VqH˜G®™Åˆ(€T”žSŠ1ÖIbFâBôKHš2˜*Ê‚f<|L³¹I¡˜à¢i*U‚t$ôaœ„¤DjdDXtˆ”J­H«$‡Ï¢òŒEáj£‚Iñ$fÎ’Š& „Â(¤ÌØDøÔTéÄ2›ˆ(%ø˜à†‘$Q,E«1:aÚôŠ¡*ÒB"¢â>%‹Y"©„HO„¸ˆá¨Õ‡8‚ʺ"Ú(ÔHú¢((JlBâ#]2N"E!Ô(á,˜M‚‰¡XBú$BŠ&9†‚oøˆ%…õAÃ4b”ˆJâD˜J¢JŽˆF²BÆh/;KÄñC(«HŒ”C/–´ò„!Ç$GFr$Ò)‚o5ݪúvþ/u>4óMM¿÷ѽõYŸ•õ{{Oõöá«ÞÙ_Ìú‚$?"âömí¿Zÿ»ÏŸ?~[ÑüMmŸ˜þ{;ßþDÏÞž¸õÂï„ôø»ïäñkzœø¥¬/Cú±²<ò--aôÚòÝÚ/•–lïFô‰ê½ùŒGX¯ÉÙ¥õHI¯ôú´ßxýìw®zÁ´–ú16Ozüe­ïoü‘Ò_¾÷zA!-A¼þ™SßNþŽojûšŽÚ¯)ùòòoÏýê<ÿ²Õ<ñ;ÿõ[3ߢ÷'9ÿÚÙó÷ÙžkoAñŸu¹Ÿô©ßÉý{%ÕÙ•ò=d—óÿ‰Ý´áûVKŸ)ñAOšó+ÙôŸæy–r¶äañ!45òVƒ¿úú_(_Vôdáßëös¬#ó$;¯2{W±å4ñ&7/ö¤Ÿ#óa:'#oAè¡õ%:_ëòšeÝ¥ïÕÒÔôM¥ÍfÿÒóV¨O¦÷š´Ï¤ýRH/¥ÿ~2ïÔ;Ø=¯W%ßõòY?5ñQŸ7ór)ÿÒóC¿çù´2oAñ2U¿õô½“oõg{ÇÔ•ÕôeáÏÞò;´_¼ñ—™ôSØ?ùâò¿‡ö}­¿ýüYO(ù4¤/yú2>ÿ‚÷]kÏ)õkDŸBöMiÏòmd¿Kû/;_ZûA/%Ñ3ñ!=oQôS(«üR’Ž2>$oyþr6_¾ù_ůGÿkMGÂÝE×\ßœôwÎo¨õd®¯,ô˜ZNJ/®öjCŸs'Cô:dmA£áö!aË:׌Á2M¬sDúÁ†øá'…ÆÄˆ?Ç”‚'Cü:äÍÁ£ùáãùaÉñˆ3Ùá(³„ñA:EøÁ"îyRxä?Ç̈'C.Á¯CؼÄáëÁaÉá8×ó„2IñÁ:Iñ&ôaž'Aˆ7Ç*xr¤Ä§CI¼„¾ÄbãÙBù_¿BñY¿Bñký4o1õ/6o8Õmó¦SÏbóÅ[_æò”S_äô²wWÄ®W_Äø2ÅÅó:…ïñõ¹…ï1õ¹…¯‘ö½¥oô=¾O<õ/>O8õ.6_¼ñg>_¹õGØŸûõg,Ÿúõeì?óüwU¿óøVQ¿søqÿ3úA¿1ó„_½2O:Õ*óå[¿¤÷…[¿äý±¿Ääú÷Iìoóü[X/ã¸÷j®«Aê¸Zö¬ªïWôϲ ‘T:ÒDäBÁTàBÌtH„dHI$”Ä#ó„’"I8!I4!OHçBT‹D%HsAÜTH%aDMAÐ<O8MƒX$M&Q.&Ñ."±ŠTƒ—ŒmA‹,mA‰Ò”(-Á£ã(=H,üH,,hÁ,vèBd.̳“£ŽRƒäÁJæÃV""Ї´‚Ñ„zRÄ(DÌR!*´*Ô44ˆ$N"8”‹$ˆ"K‚,Áy%áÌDðEˆ/QHžBJÁ)”H9É&b(*ñ„"0Ä—#K†A†A ´„–ÊÁCc°Bò×GB‹H"‡”@èBFÔôÔˆA.2YhLf*ò„H8A0Ѝ$%¤−AO!dYpA‡e†5ˆBƒ„è4xÁB#á‚ø"#Ø„>\¨aA]HbâŒ"$9,Œ‚Òì5*¨Fq4ÈXDn&9F‡A Ë…MÉfDƒÂH´„Sgˆ2iÁI’…a.2tˆ2$¤4:4",A)4(IúYA‡A#Bz1H'2Æäè’‚)âAh­‚vñ„RO‚Ä)E!t,Òä!˜Cf(8’‰IíèCrB›†a©4$Å"‚R¥A>J"‚´LR”H/’B„”)QB¦µ$‚âH¢E˜$H#¤$ƒDÈ8BN¨$Œ+HhBŽ8à‰¤M"pT(²‚Ä.D€æDbAÄŠHJq*ô¬¨cÅ(Ÿ%U]R¤B*u'yDlÄ—$GB$&d¤.…ƒ•ÊçOÄÖYäˆÕ8â)bU/ÃQ!‚ñ¨Ja&“ú„&ª¡ÂEèB´ò&‹ƒ%”Iƒº]±Hôša-6êœáŽaˆÊâ–h¡¸&Á„Nx.ÊCó†sM,‰ÜÅLi„ž:Nˆ‹-ÌÙHòÁÅÀ$A2`,â"AG‰‚€DHDP‚ŠqXˆ®!€A2H(( @æR!Á" A"Aˆ!H/B!,DB†"äØ=V,è|2 H‘È-@HÁ(DLDB@:(D"ˆfŽHðDŒäB@H"H ‘('hˆ€Ø"”ˆHÁÐb¡DÎHDB).Aòþö$Û‚W¨$Á"ÌÃ$1-,Ð$u(º±vB±†Ã(Ä(gŒô„èG$0K…òÅ(JcA¨N°„ø$jOˆµ&”…ô($I$f4ÁBDш1ìÄJÄmKˆZjAîÇ!ƒµ(ò$!D‹†O(v”¨¯NÁ˜$Þ‚,ÁÇÓ1Ç1!2‰QD(A‡"Ä’$&a„ABÑ’& J„؃2IÉ-‚C¡HÍbÀ,!Fì„B€,A8Â0Æ”‚MBŒI:,ÁH".2H„bO! Éé$c„0’XLòXLà‘F4Y)&Ä8$)(‚–HG+iÁ(DfÔŠlB)„8.PŠH®L(Nðˆ".„BLc‰U‚D"Ј˜"MaPŒ$ƒiÉ&Ø”¦I¨A¬•DM8BCÔ„˜$ȉãhA˜‚J3‚…:!)¤A…‚a!ÄB-‚$CDØT¨ ¬¨H!…) c!PD,‰á.‚ÈAA¢%(Áˆ‰b!¤A„a!˜aF¤)HLHDè$¨ÀL $* e!HD D$†ÁH'GŒ`'Œ$”d!‰H‚QHD(K‚Œ¡„¡AŠ HZA(ˆ$€’ˆØÄ6 AX°1B'AA"‘er„ p’¤AE(Ô$X#¢D5â‘2!IÑ$ì(x"RXÄDJ"¡!$–‚‘ŠA†”#”‚M’‚VBDAh‚ê%¨(PÉ(a§™$aDAH@C„dDHƒBIßRöfeOö»ŸøÞ¶ÏOòæ6Oˆù‚Ú«TþçÊû–k$ÿ“ûÿ9ÕÙ‘Tß“÷]1ÿóñ9w§çM2ocò3-?õÒ=óW#ßRýS-ß–ö%)ßòô3ŸÏ³r7³ƒûKõCÓ{:ÿ!rµõ1Ÿæ±ò4$~wÜóUcß…ö-¯Qò%!ß‚ú½M¯÷øôy’ñ‹²ïüš4õ¥ï“òCNÖŒá¸7MŽ2iñÁ:]¬ÑñáÞñaLˆÇô‚'C^Á¯CòÁ£ñãç1Ö<á8÷M8Ž28?¬—5?¤•?î}ôaLðsLˆ'C/!ü:$m£Ñ">iÎ$oSô)$o1t-ôaßBòqßBó–sßBò†sÏBòÇ;_ÆòŽ3ׯ¯zóeŒz÷eŒ¯S~wî[ú?G[úKÏ[øiÏ[úWcÏÃóÆûßÂó”sÏBóÅ:Æóz_Æñ£~_Æø©~_Æø³îwÇŸ[þ?EßúAÏÿøaÏúAÏUò¤S«4o¸•:_ìõK8_¬õK8_îõK(îõI‰o÷üÛ*Oæ¼ôhΫAî¼öÌúëAo(B±š’D‚dBàB.DpaÌA‡FàF”8I¸ò„(A(I„‚äBDèJDhBBæ-A‡fàB„’Ä+!O(•"O(ä„2„Œ¢(a¦bj`HÃtÁÈAHƒˆ4ˆ<ŽRƒƒtHÈ‚vÌ"G….&FØq>E”)TH,„l!†a$$EŠl„‘AL¸HÔAÁH-„ñBˆJ8Oˆb4‰ñD„7ƒQT„AäØ'8˜X) »€q„²sBh.ÁDhT‰Âš$ˆ/aBþr8ðÄ‚…AÄBH‚D„„ÊB ÔF¸DQA+$yˆ84IÈÀB-ÑR—jPAÐHµHHµÄ‚–ªI„˜ˆA=X)#8jWˆD(ô†D‰˜EÑ1vðD(ƒ!d8‰b„KŒTD"ˆ$´´„AÍL"B_ò""Tƒ¤G$2#ïHòˆ‚f–hŒ‚äÊ¢žlLÒˆô‰ŒH¸ÜJCôB8’K4C©6Lã¢aR+†E™$†‹Á-D(!AÄÒC´IȈ]˜ÀŠ[ˆŠöÄ„h ?TBIt"´QªI´zb"Vô‚$D[l1¤E§óóËÿùþ‹ÏwSŸDÄiøS¡Ÿ™ñëóßÒóÁŸ½ñËùu—y×ÿ¤qvòQÿøýc7ñO_Óò-M˜¿öy©~º«V‹³o„õRʯŒx/…1›-÷_wô]{?”uAyûC7;V¿Ÿþ×ìÿÅù¤¶ocÓVýé_ßµû_ú/7{DrHY•Lø>½ß<õÉ=oüÑY+ŸÔó¶N?ûôß…_eù†Oaò–ƒÿóý_¿÷ô7?TöMEndŸ:ôÁG_«ýHÖïÄýÞŠùCÛ¿¶ûqãuøß‡¿!ó&6g#/qô_ÿxusóws”òIm×Ô_ôôoK¿Cõ®ÞÏnÔ"ñŠ’ò¿õ9op2õm«c‘4œ6MiÉá8—,“¸óL¬1HîyztaøsŒAx2äU|:ä</>OÖ.á×/ã(Ó$ñÁzM_¬å"ñáÞÆäÂøsHˆ6ä5ü:$O<^ã£ñHa˘<×­á(ƒñÇzIñÃn?î!wä7Ç^‚'CįKº<-âãÁêQb¯u;þA·ç¯õ?*o•÷+:O¸÷+:O8ó*6_üók?OøõK:OûqKèúõI¨oó|[ø2ίöy̯1ôÙŒ¯öݨï5ôÙ8Ï<ý«8OxùŠ4_þýë„(md‰°H"á?IRA!%„<Åa‰QˆDMH‡ÈF2†eXB%J(Dä¬á$A1\'(&n„,(d†„&LÁ&S„X†"´H¥H´ˆzÑ(4Œˆ„$ˆ„k‚Žus¢"JJ$ƒ„(J(K&F€‚¸2*`$.b &A´$"I€B$I"€’„ˆI‚D¸d!ˆˆB?…(BBHH C‚˜‚HJ(´D&4$*¢" "NA‚ƒÈb"jÔDˆ+"„+&Œ"‚"(AˆH\(ORŒ¢" ‚ (‚HÄ‚ ÄÁcÏ"7'&‚4A#ýAb4.;($Oª$ø¦Q‰5¸k"ÏÂÕJu„ÜÄòDÈM¬ë…)òL†aȉ´Rø&H/#Cä"(²a¡Rö$­$*BE™,D¯‘²XH¼ÊêAšLV4h¢ê"±CôD´¬ñ„KÎlT„GTM„þ(C¥.k$Û‰Ü(ì%ì$òknÔaˆ%!D¼!|RØAŠaC*‘BòbˆYñ"E‚ÄJØ#‘!\‹4„1R!G”†ÝÄxáutt†TA!Êr’yDFq„è&áXñdƒN‘ŒHaj'Nc:")8“#´$&•h‰|H”$n8‚,…&ô„ZÃÙÂÔH2F²T(£a"²d´ZS+ôD^X#dæ"Ä$&Ä&.†=h%xBĈ—¢^&NÈnƒ,ŽæŽ˜,ŒÔdü*h«gÌt¤èJTØKN«Œ¾Ct²ô©XCü„„OB˜$¦øÅÁä|ñ„v„D‘Â?ÈØHøˆD;D†&XHƒùc5ÐòIogõÉ1넟“òw{6ö11¿xø¸$M*-"?}øâD¿vöz$76ó1%‹ÂÝ÷ÊøÿÔ÷q-¿–ü‰‘Y¿ö¯í?ÿ©óÏ•2>¬ò¤’½þ¿«Ÿœþ‹»ÿü÷MíßÕö%¡¿ÿÝyó+YUòaA»_ýÓ?þÅ?_òùñ–„Î(ObõqÕþåAtýÏwßøûUeú¹óŸþûâü+o/&ôHº=šZòFB"6-3?´ógDNYZ¯4õcG–ñµ­Ÿxó;+!nø¢W¿§ôhG¿¬ýÜÏÿVöe¡Õü¬ëÿ‡ýDâožþ?}Y¿„þ†ËŸÿ÷K¿þÿ­.ŸÆvô4¶®åßÖò¹Ë¿¯û®¹ÿ“ômIÿÆò¨ïß¿ó­dOÒò÷=ýSüƒ?ßý¥—nÿ¤§ßÎø¶‚–MGßÎüöëŸ7÷ÍñEâÒôo!ŸvöóvOŽú¤ìo¯÷Ì’ÆòÆHþûZï–Oñ%žîU¿÷וôI¿%õJÏÊú´WÆ/jú‚„_:ôoy¿ýþ£¯¿*èQö%)Òÿ=þ[…ß¿ÿ«ñŸ²³^üÙÙ¿<ûm¿¯~ûñý:æó2"/Kò22ŸÖõsC¿÷üæÂ¿•öaIŸ–ö\ê?—öŸ´ógyoø›Ñ.ú?:ÿ2h¿ú՛߬é)r2ô1Ó_<ÿøb÷•=Éÿò(DßÔôUMÿþšÏèóÆþO©üš­Z->/U2å=IoçõcQŸñYK?µõCkïFõyo«þ¯„¶v"ö„ñÿ¾üÉw·µsôfhßVò))_xôãI_Íÿj?ßVÿß‚©ýH¿–_ôø¥ÿõøz:Oj³4zö<{ÿýYJïoÛ˜ôIE_„æÆôäi¿Çûn3ŸöóH/½ýƒÒÚÿ·ä/ƒòz/?mû„–#ñC?íÿìò¯ÕþóyßD’hÍM_ôô­d«»¯jÿlü/­ì¡ñJR¯ìÿöŠÿø/CâVv:öA§!^aç#OÖ,ô¤sÕø„2A_¬ôÅZðãÞraŒxsÌ‚'C|:ôBÁƒõHãã÷HaÁd?«Aòˆ(`„,vdèbT‚&b"„—¤ˆÄA*£‘'OŽ„,aDD8cäb#äB9D#qAüA…4D†´}’ä(,ŽÒ&Ä2A.À#cñAHo4(kAb#¸9ŽÒb,-ÄBŽ2CäB˜’ˆ½‚‰§Duˆ’„$IrDùD!+”%ÅD…DÁB"±E¸Ôd!…Bä!EŒ‚AIØhÑ!1,&Ôd(Åa"ƒ$2‚äEÒ!¸Ji"$DðDX¸EB‘(„INô¨\‚HŽ‚‹aÏBŸ‰JD*ÍBÐÈ´‚Ñ$&ôC`BÆÄMH€„‚‘„°„ÄIBì†Ä˜!AM(,äĆRB($Š„"’Tˆœ)’@îA„ä¢p‹,Á…aŠâ„ÁAŸ²:&ƒÄY!‰˜FØH¶˜e„¶¦('AÌ´UhD"F‘v•¤IÏÈR‘„ð"AO¡´!Y„K‚/!!’ÄHC1KB8!GJ’_(´,Ø‚ä!1‰(W„Ž"ÓÅ$$–ô"J²‚Á¥ƒÕ‚TA$R$G¡èC1H‚±Hü<`(ƒ¡I!Œ¤aáÔH!Ê$TÆ*ÄD v“¸"„8RX-!‹Hi…¸(Î&M$HF&A‰bAHh'†ˆÅˆ#ÃDƒÅ¬AIè%ڄшdDL’H,¡,ƒ±¤<#$±t+?õMY!¯xBŠ–~í$‰”¥L#ÒD½)XF›AAb&ôA(Jt=ñ8NH"MñÁ„ãBça‘`*MÑLIX1‰’aK(g„6‰þ9–¬¥F¸òÄx$ÞH[“I)¸CašgD„·Bœ.«'ŒKM8MX„%¢Dëÿµ#ƒ„$4 8†&¢ABDI¢ÈD$ÄŠ$A2HŠì*!a„)$Ì‚™’„B‚¡HHȶCÁ´HŒ‰´hD„Ђ’ h…²5y)ˆÒBèA(‹$-@BH†„HDC‚ÈA KpD¡$C‚(ª.F(‚TDR ‘$H èG8H‰…¤D(,!()""a C­ëð8"OT-€”B"iü(˜·,¸TbHo’×AòdÎgFh‚.„Ï¢ÈÔCr˜x´,ôHUHmAÇ!«:AÞ‚AG^ŽO„ºD‘"FÔ„j‰òLîˆ6Ò\(„ˆÁ*ã–Tk2-$Eh"Ë#C´)&d„)Ó„8R«¸É1‡,‡a§’)ú$ƒÿH‚‘H(O(dQ¯$Š¡H„.„J1„ƒ´$dˆF<N¡Z„ò$„HƒÂB´"ƒDÈtDª1HHP(ÄžT&á(5$$K!&ì,„âAd(„FB(’4,aˆ‚)‘(cš0‡T#FXBŒåa¢-¤"Iô!AÆu"‘d„"†ô"HAƒd¬X4AFIÒB LšAmˆ†$#´$„¸$Õ’TÁîˆ8J‚ƒƒ2X"G!&ä¸TB„Bˆ`¡.BŽ‚£ÁB°v,ˈ†"2H!€A¢(B€#…´!Š$–¢p$T!ÊðH„K¡t‚JÖ AD%xi`(J²"¨–$A&1E(E$EâBF!Bøü0B‚©A€”(‚! A"–AÐHA'„$‘(@ÈAàH14!à(QA†¢†ÂCDˆd!E€ˆ!’E$E BÀZ‹$$„Ø"hˆB€Èbð"B`D&ˆ!B”!ca¤˜„) 6ôÆD@XADÈP"Ad, ’(k!fèDa(E"1ˆ.DPD`kDˆˆ !ñ÷ÛB8$0ˆ„DFLl6¤6„!2A8LdB$LH()¸%tA8IH#à)¨ÄB‡„ ùEˆBˆPAF¸ 8AÁƒ1!ÅèBÑ„$lJÁÈÀi3]a„)*‚!‘¥DR‹"DB"IaCyd‚„OÌA‚NA‡(˜&¢ˆDQA„ ‘E¡‘ˆˆŠT"LR(D$Ch(‰õ”FŠ”1,*¢#’ˆ!E”‚K(/²Gm($£HˆD¨‰"ˆ!¸VRˆ2!(D(BBJ±XA¨HB4DŸA‰„A„H1B¢’‚PAA"¸ˆH¼A¸¥ˆ!IˆÁ$Nà’‘$‚$À‚¨¤À! A@1B%-BOÂ!‚LÁ¨]‚!w"%!”A°AD¨‚ ±Á"BPDDx$Ôˆ8„ „qÄhBÄ„ƒº¤qÃD¡¨D„B@ˆDƒ¤ˆ`A놰a(šD17&­4JT‚„Ј\VtDÁL1„_Ôñ[bÍ´‘ñ9rioùø²6_Žû‚6g"iGº5ù¦»Ê'Q’ôIt[GVñr/4õ‡6ü’Ó/¸ý‹ROô2¥¯©óa>¶ò’¤/§ÑXûsk¿+þ¡ÅѲaö)Ú_ì[ú’[?ô¿+ó\ƒ½ñIÑ?j÷+Gw/#ûãœO)â#ú6qoZý“jÿkö­ÍïUöah÷8Š¿ôrú/ˆ¹Šû˜‚¯¥ýŠ˜«úϱ?ô-Ûg‘~j¿Q™-/ÁõwÿÛþôÊÿ-ú’¤&+ˆN%%ºø¯‡WOBöMHvôCGosûJQŸÄûC¯½ñ‘ŸÎýO·³Oá¶_ù†”o#òGï±õæôß¼µûemÏôalßhøÃÃo}ùîñÏÎ÷QK™ùHYN6ô|/O¥²™ñ¦¶/#ò”D¯ýý¬û¿¡ü³|_RöLI—”.(8¾Y»ªýÊš/©è‰±‚ýÊþ/ûô'„ð2nA¯CñDA£á¶^ôBaÉä8wè(“¬W$_¬Á_îtt%LtsÌ„'C\ü:$Á£Ñþ^DMaÃòÄsׂŽ2CòÁ:CøÅðáž#qaȈ7Lj'CNůCòDÁ£ñBáç!Oì%½ïQôy=ïôI¯1ö-?ïöM?Ï8÷>O¸ó:"_ü÷Kè_¸óiÈ?zueø1_†ü;×7sý2I¿ý’A¿ù²AÿuûI¿uûÄ[¿eó„¯aóÅ_?çóÍS?§ñéw7‡Ÿ÷aˆwSøw÷¯ö߯ôyݯö}ûo‘öyóO¸÷{2O8ó:2_¼ÿ{8_¸÷{˜ú÷HóómÈ/óûø²þ«C¯ã»šôºž«iïïûa/ùGÓ‰5ˆr%èbsQè"s¨(ñAH4¨X‡„MÁ#é8AÈQ¢8Q®”ÄSE4ÌôA‡HG&d‚xä8‰Â‘$¸Q.”ssñÁHox!hÐ<ÒŽÓÀÀRÀ²A®À’“̘‡,*M‰”’m((‹AI I™‰ÈHLa„"LbˆDƒxq¤ '/¤(„iX4‰S$ðŒ3”‰ÒH„B˜!†ôI¡#•„hD¢F±(aHàH¡!D8(„L"‰ÂeA"_ôV@‚4*ÂH!Ç"CCQ„!„ÑHÂHx$-$ÄBN%$‘G(‰baD!Ì"LR¡+(0Ì©!‚ñ"Ó3DHb$)aD1HJb!‚ !.HH‰2DDL¤R„•ÈŒA!1HW‚Î" X&G*Œd(&(‰<**D‚Ä)„d"– ˆ$* Š"B™D"HŠ´EA‚Ò+hA©!Rñ‚HHÀA ›BÈ@!1D@KAN”@BAxA€`,ˆ$ ˆ€aAC+!€#Mf£BJ1%$‘)Ha(0(BV(sDá„‘D‰ƒD5hŒ˜AI-!ÉX‚#HX„ŒŠ‚$¢D‹#(B(Ȉ(:ˆ†ˆVC"dD…!Gˆ°Á#ß.A"R!#”Ñ€$!ˆÂ"N‚BDtX9•Dž‚aTHN`1Fd`r•"”D;°I"t!1ŒD‘…$F¢ˆG!Œ1K0BN!£Ä@a¤‚B†‚Jj„)Ñ LU‡D!4!EÔB6B&*¨Dà!h­‚H‹aˆ¼‰ ‚JL-"#(¡‰‚J„¨)Ï}@‚19HˆHN!ÀDJ@$"´B¤! ‹Ap…(ð$@ „/ˆ¸B1B!20J8˜A‰ƒ¨T“àM"¬=éHA0‚P‚„RI„qA„AHGDJ‘HC*Õ$À$*‘!A$UÁÂ%r1þBA$A!°FˆÓ$AI²èFÁHSb2† Ò"‚¡0JgDÏo!1H5B¡d'A0Â/FAT<ÁJÈA…OhB$HADN%€B@Ò‚E¢„†‚8Á!!&âB(-A‚&Ô2–$)Ä$€È"¬$EÌí3"8$E‚$M "")4b€$$)"A!"FƒH‚Ž‚$(ÀH„H Dˆ€š¸ÙDQ„ „*Hƒ¢‚LhBB„B„â#B‚Ê"(€H€„RMH…B@„DD€TJŒD7¦%Ø(æ6«¤IR¶E:(ä(5TNDD„4EJ±2¹S±D´B4R!Fñ!et 2%Bb$I~Q"$á1ä!‚ò†áhœ‚ÂС‚¨’ˆEâB4!jxR²™„¡«©ÃÔLV$)a!&š‰>„Œ©ˆ'*ùb¡e”(\´„â"¬$Ž2Œ3‘AO)1T’Od!Â*4TuÑÒˆæ$Æ[œ²"øD‚3|ƒR!Œè,uAX‚Š8’!€,èsôLg±DÄD›„Š«$¸„,JÔ$Ù42q'"AR2$ࡃÂ2É„R„J4!`‚@xA\T È„(u(Äuc$I±Brf4b&aD‚dàDüXƒ±šÔ(XÏ(¨O8´„™%O(“_„d(ŽL&Ø…B¨JF:“¾ChÏELñ(a/õ#J×6è‚ò-†><ϲ󅋫fd"Ž‹¯\õi4DD&ùD¢//ë=ùU¯ñiˆÎ¢/ôzA߯ù¤Bo1ö)o+/%r&òfKïòö;*…1AÏþ(“tøDžÃ6/kÅž‚’ø®7ŸÅòÎ/yá6ö-‰1ô¸â‹(«´¯†å)8B+üŒ÷„×Ò<ój^ÏäöOQ/4á1ñ8.rñ˜¯Kñ/CáÉú¦e÷”oÃõت¿ê~f±DôLhŸ¨ýC7M‹O¯ÎhŸ4å1ý”ʾx¿sñd''Åÿ'Gò".mc¿ñö"&¯DòM4OüJ,_äó^io³áèý†Ž}‹S-®®ôê{ô<ÌßÑbêbx´÷\húÊâ¿qgUÝ!ó?¯´ØýBx/Šä¤¨yدÎòF¾­ŸÂu?ý8#͵ÚSROû§”7ê_äã(ú¦„'jߦõ‘ϯþú­É³ñe-)ŸªôcˆìûÑ‹¯÷ZÁ¿¬ýÑë¯Qý¬c¿æ±ôS(/#q"¶ôG&•ñ,aßÕ¿Qrmõ,c_t²Ió…_Ñü1ïõK^I¯õhÑÿÆû¦_çè#ñ¦4ž'ßÃøó¯vûÏú/‘r%ø(á©=1¯†é¯ü:²o„õŠÞŠ¿ø.éCß!óW#ñöF=¿±q!ó.?ŸÃò§–««/Jñ6$ozü¬¿Jö[).f{&ßÄöIi®q¿-ú©ö½cÛÞÛ¬xó(«n_¤õ/6Vâ#ò&m‡¡ÿÆôyYOÃòE$Ûd–ô$fDZgù“˯õÙ¶Õ¡ñSKŸùÿ&ß_ÂûG¶§ècø6´mö/«x;ôy^Ò]öL%‡‚Ÿ2úYñ½2/¯üدˆµBùÊéö¦¿J'C-A§CMA«-aãÑüˆsׄŽ2A¬ôÁD_î9Wƈ7Lj'CNÁ§C<~ä6,/8w-ø‚2K"¬³dòÃðážÆNˆ7Ç#q2ÄÁ¯CòÁ£Ááãá–ŒŽs݈Ž2IøA:IùÁJôå#qe¬„?ǨŒ'K*üº$È«IJ~žÄM1'ïQõy/ï1õI¯ö-?o1ö­'O8ÿ¯&O<ÿ®f_¸ûï._¹ëú¡ÿ÷†_Ò÷mˆ?ûþ{˜?úþ:Á¿þúZÁ¿øøñÿúúEŸ–óœS¿†ó”¯BóÅ[¿ÆóÅ¿Æóñ߯úáW_Æús‡ÇöyÇïqõyÏïô9˯1÷ïï3ö]Ï;ßïó´³m6_¿ûO>_ºÿk¸_ûõo(Oòñm¨/ûü{8/k¼:õúΫQ¯ï¸÷Þ®ïC÷ì4HÁ"WB&AñAHMAÐ|’â8tQ„4(SâBA„ÄA‡BdFB8ŽSÀƒDÁ"Uäb4AŽB1ŠóÁH­A%MAÐ8’Ž’à($À"CdbÐ1:$ÔˆE¡A,™D“€x„LAEÑ‚E¡ˆÁÁ0,´‚Q$I“A(B(B9-!!&±ÄÂCª"*8E&ŒrATA")RA!.)ˆô–ºð‚Œ%$dG!=H &€ÑHA …QFØA ”AM`H3±BÑAD"’AH@a$ˆ!4@a…ˆF’„*©„dLHrD!bR!T"&RB†brGSHBhãa$H2(A‚±EWˆlIHDäi†%Q‚.„B+(á†1#ËHL¢†ôH¢ÁDš%H”Ë)MT!‹„/’ˆ‰×D‚ˆqN2‘Œ}!RLŒ$ÊŒ-Œƒ²˜„2ØÛâp†(#E’À$Ö”B(Š!áÂFt’H.)ˆŒ$1"ƒ¤X!„,ÄD2ÍB‰s‚L”$ÀF(ª¤!ˆÆ-ˆÈ(L6…(Š“‚K$‹*4C$DÊá‚¡$¤ˆ¨6tA7-&Œ#va¤&"óN‚ŸH,Ñ)¹ÌGf‚L¢Õ„MH!šÆH…á"1hK%kHŒâH#8„ÉâD;BD³b†ƒ²ˆ±nˆlA‡E­ƒŠÔ"¸Èô‚1‘IŸ¨8ŠÑD»ÉÄ6‚á.4-BE¬LŒáD<Ì8‰¸¹ˆ²Øò}­0ˆ$£ÄƒDd "aBÀ‰„‚˜!pbH2X<8$@qXH4J`De‚ a@È$@4$ƒ”A(‚.(BŠHPaóÂR&¤1ÀBÀB(„h.BE„q(„ˆOaˆOC‚Áˆ„FˆQD¤.„„D(Šˆ"F"ÈhK‚(OF’þæd.¸$á2âAØJÁFO*Aô,è¤"I¢*EAx’øQ(ä"5¨£„ÉQገD²,4"A‚.tAKH¥j‰‚äBqrhBx2ä‚ÁqÊaІ¤"ÄA&´á8LÐAqqäˆbD‰dBê8'EH+©‘B‹$K1“dÂGBX"B)Ò„A¤B#!°¨Lr‚È$d+"A¨‚Ä‚j(‚$–"IÖH6ˆFÄ(+$Ž$E„¸h’ˆ.\‹( %ÈAŒr¨H€&ÈÂ$+ƒ”B4x?*!2A©Á„p5":!KŠQ‡l*T„!0$È2‹HC$3H‚!uT‚0..†@Ä!pH”„Æ0$°Ò„"‘T(ƒ•!ŠL*H¤G–L(K$²HDôø"€h!FˆÈ*"-B$$€ D(*%$   "€!‚‚"A’BC‚‚Aˆ‚ˆ"* !€²$  €! (ˆ ‚„Â$  „C!† „ƒ„‚*(à‚)Š„¨$ %2A €äQ=Ù `C8A€"U‰xAH(RžˆcC&ˆbBJš$ ”ˆ„‹/)86"h¶„2$ ²ÒxA(£E¤ð’ˆ+‰‚((6Œ„ôt€„%aBà(Jñ$ÁLÁ– K#â¨aB.2D Af„„"54 ¨!‰’ˆ‰â(aBX˜8 dF(K(ð¨2ƒäµ8„*‹hBް(!Ã4 1&,äFáq<Ý "M„°tEˆ€¢ˆ+%€‘¢I¨ B„‚„ ‰£("( ‘¤K €uAH‚ÈHš8"R(Aðé4$(A$AH$qA˜Q„ ƒ8ž’#%!$’$$I ñAtAˆ#±²;€!ˆŠ²Â$ɂĒA„ #±’|"hIÂ$IŸC(CáB atI€!Ž’#Cð(4AŒ’QŸ„$À+˜#!"À.$I€"aB—„+˜+‘€(.$Iâö-€!‘‰  ‚B„$¥#M2R‰#€hÀ( ’¨(€‹„#áBL!!(€dB* >ßC `A€„H"@€(2  €Š „("€ˆ €Nð¶;$$Ä$„$FìBxhB!ˆ'ÐC’D@AÒ$d$€B$ãBD…4¨ç€"Ô4tQHb…˜Fè(AÌ„L*”.A6(Ò2H‚!F’,(å"á$3ㄤpD:†™’c’`¨Ð•$L)”‡@À‚m„* DfRB0„-D‘b…+D`(ψaC$¡"ÄÈ$.!€”IŒ²‚A"„t”òþu€A@€!" &",ˆ‚A €!J¦!" †€!1( ‚‰!€!ÄÃs$"À„€"Pˆ+‚RˆC!’$ ¤ B@ ˆ!D€¢#(H€"8jˆ‚(ðO䀀" !"A I‚!"("(B(2€<5'$„‘ A(‚@B ±"C€À(A(!€H44€"R D"°F 0" (F„((€Љ"€@€‚À8“ !€A"DJ$€¡ H"ˆ€ƒ"„€(†ˆ¨! 8€DI ðG4° €$€"¡"$  €€€"H (€(!aA3B¨€„€$ôˆ*8"!"¡˜/B!¡£(ÒŒ"ÄA*†‚"B(š $„A"£!.D.8B…(*8 " (²ñ›$ðB‘2 a†‰äaA "*‚t"‚12€TD2A(6"BH‹! 2 )¤!""(D !¡! dnh8€¥) C„£PBI*cB! h"Z!¡ˆ$(A€‚#*¥ ¢"Bƒª!„ 8€¡ƒ!#†ˆŠB( /K ”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ0à(€&pAˆ#Ž(A`B„ÀA€8à(€&pAH€øô=À`BHŽ`BHŠ&€ XC  €( ¿OE‘HÀŽ `B&„ÀA‰ŽŠ&dB(”Hà(¡ `B&„ÀA‰ŽQpA,&AxAŽˆ!`BÀA„à(&Ah„à(ñW>A@/!a(D(GBD”Ô$ˆ/)a(D(GBD”Ô€ø’†@„r$DøAI‰€ø’Ä,B`BDxAà(&ADÀA„Žˆ!`BDh„ŽçñÀA0† ‚DHpAÈA ˆ8†(AD€„‚ˆ#a(€DHpAˆ‚ˆ/8ßˆŽ &ÀAHà(‚`BˆŽ &€ˆÔÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌB¡NJH…B²(˜"OKØBH&„b„F ÉBƒ„”$$Dè((!È”D‚C‚F<(IÒL4HHPˆŠá„؈Ѝˆ*(H(BB‹BDj‚D¨DˆÂŠ¡DNˆàA?Ñ€„ÂH…"!ŠY"ˆ¸2GB:`FÐÄr$脤H$ˆ‡…„$Š(èHÁ„ 2E4$PH¤d‰Hƒé„”ˆBˆLˆ8MD"@dDÄ&xD€$1HŒÈˆ€øZè D„Œ”$’„,a"%2$PDô(D(NHH„ÀȆX(ÎÂ/(AR"‚‚¢DL"„–D…„‚JŒ$Œ¨‰ˆŠ(CaH8"LQD„ÌB„T„F¸H”ˆŒøHHŒ¨ŠÈHHƒ’J‚$A2II"„$(4ˆ„B ¢‚ (B"A(Dˆ„„(ˆ!È DKB O„D˜Hˆ…h„“ H$'!!%&ŒLƒ”H©Ôˆ‚ˆ HDADCDˆNXB`ˆ  ( "„BHI‚TˆNHH@ˆÈù’HÀB„l¸"‚!(…DXDBBˆˆ#‘€A’A&`„F¨dA`Œˆ‚ˆÀ ¨E$ÐL‹BHBJdˆ„È_$„J€¨‚&bI( "ÐHbB ¤„ $¤ˆ…B2‚D€C”(ƒDˆ„؈@ ˆ†D8$H„‚B„JŽNÓFB„B@²‚¡D(:RDEH&@ˆ$‚Ä‚†‚À”¨ˆ°$ CŒ¤Dȇ„  ˆ”"@„‚B ¡ˆ€ñ­·à„0HA"!hBC˜„ƒ1x'CD&$Ú,ñ„.$ƒ”Œâ(Hž&DbHV8T'…Eˆ"¼‡ÁBAŽ,AÓü4F¬Á‘†#èA¸1$ÂHMAIò(AKB†*òŠD.Ô$)4ƒÃ’sE¤Aƒa@‘8G(0”Œ3„B¶&FaB„>„+!„-)”ˆ#2C™(K0”NER–vA$LX‚.„-a‡A-A‹-QÐø„Q–®K„®fHôA(DB*¸2Ä„)ƒ‘v?Ö L„H!àˆ„„pB((Fˆ,$ˆ( Pˆ@ˆ8(ˆ€ BA‚ „@BHì)Ctr¸''!'‚O„ž¶ˆšò&D/b¨I!nˆ+$ODÆhÃJd­Eø‚+T%è!A˜Ä…Ä”°4ˆ<NDI²dä„dŠDNDŒL‹è„a„ŽD‰ª,Cx”¸"ÙDº˜„t˜´HòDHIƒDdŒVè„h‚‚DƒôìÚ$,‚!T(0BB/B8"La‚%4˜°LˆD ŒÄ‚ËB,˜D ĆâDHDKƒ Á„H¨(CÈ H¨Œ(¤ €H¤ŒC”HȰ„`Œ„BÊÁžÓ’&p&ÈH%„˜( # D"°ˆD(l$XÀ(C„ „A(0DD„B‰¨„C4ˆ ‰b„ˆŽ„BÀÌ"H€Œˆ€ ðêÞÐB‚4Œd$FŽ!ª’®D&H‚”D*8H$‹H$H‚ÄD€‚áD(Â(ŒD„ ’ˆ"D‚ˆ‚ˆA˜L1„àAĨ@dD…ˆ0H0Xƒ@ÈÆó#&&„’„0‚$Œ¨…EH&Ĉ,dBÄ!RƒÒB„ˆAA‚‚’AH‚&„aH‚€ˆ ‚ˆÀXH@B LȈA[`‚$)"E‰($ˆDâB2‚Œ€J$HÀ„Iˆ@(¡„24HD†¨AIˆBƒÁ$Æ€JL4”€ƒˆƒÄHˆ äŠ;xD!K¤ A8#Èm#ñ$À4B<è!Ad†ÐD”!#Ô.Ä%±HHaˆ'BEá4¢†"FñD"„N(FD©„4HeDá!’D‹Á´À"p„òQ$!.IŽ)DDhD%Á&‚F €i¦ðjŠðHP$‰‚a$I!±"Ä"K"X„¾BpBD,…ô‚¾D8$HKˆx`D–”(BBˆJA(¢†„Õ(„(±LÉ(LˆaH2‹a(‹ÁL2Hø„(RJIbI‹„àÂÈ-´c‡ÂBÃÁXpRÒLäô‚*O!´#ì¦XALÕÂ₤$k”Ä.„œÊƒú2HÉö,CÄ’AOˆrD&øˆHD„ЂŠXDƒÔ‡+4ëBÖÑ„b#˜O(ñA$Na/‚åh‡D„T)áDÞBøRL‰)¨N('ªe…Ô$,,x#(#‘B€(H"uBˆ$C¤€"¡¢`$ KAN$ ‚$„5HF(ŠXˆ, D`B‰´(BA‰"„B<85H.B(&NH#L‚ „AC E•hD(„B"†("HÀHˆŽX x¤4`" "d"BDJ1( ‚IHð^³p"4V.Gl2J#qÒ$¹ˆ’C1)Ò$ñ"'CBB*è"ÅRÇ"«A*dAÊ©CtF™t§ŒŽ/L +ˆJø$‡H§IF´%Fè¤á(lcØ(!E˜"Í‚‰%·’(ŠãÁˆÔ(øˆMMHI´(rKdŠˆK!„D`žˆOa?l8EBnHð&‹¡,aB€‰CÂ*„hŠQ‚JŒD¦ÂGˆ&$ºÈ´,8‰–DÐ(0(„N"FôD¨‹!–äBˆ´â‚„¸–HA‹h0(Cz$ÈHàHñLÐ$”(a„¬„bÁH&bAA,ÁA,²BX0æ&ôBŒ#†‘èH²Ä„Bài(A†Ø$1ˆG!IbD©a†cØY‚T‚À†(ƒÄ4 !À(%H´ƒQHFˆÒ4 ! 1ˆ^'ƒ_N&(•FÑ‚¢2dI(çõŸÏ"¹6r2ô24Mö?×ö|¿¤x¥]ÏRôI(_ÚüR<ù~E¿åÿÅZÓ/ü›>_&õMOl½Rø6$/có$ÿ×övE¿§õ©eO”Öœr)ø%-¯·åúñZAÿéüE¸øBA;¤ß*ôi?Oìwz86/+ú„òÿ÷ü¬Ï×ã§öVaiŸ–ô¡é?uשóöįé٤ᨹÒôš¾OúýBíp2t8q:öA§!1ì8÷ÍŽ2K_¬ó$¬Aòaž'Aƈ7Ç-ˆ/CÔZü:$¯</¾ôaÍBŽsÝ,ÓdñÁ:G$_¬á"ñáž'‡Æ*øsL¯Âx2ÔRü:dm«A-áëaï‘–<Ž{Û8O(“$_¬³„òA._®yRta¬‚?Ç(÷2„>įC‚´¨áë!,ƒQÑïQt9÷A—r¯µÖ}óCÝ7ï¹õ-6O>õ(2_¼ña>ßøqAú©_„ŸúõAˆ¿ÓüS?SøRQ¿ÓøA¿_øRaÿúA¿5óôW2O8õ(6_¼õa>ß9õiZzñiÈ_zñiˆ¿Sü{8SøQ¿ÛøQ¿Úøaÿ˜úa;O¼×«ó„s­2_¼óK:_¸ók˜úõo(®Ÿ†ü2Ï·‡/ã¸:ô:Ž«Q¯ã¸öªëa_–N1#H1,çbÁBŠqaÈAƒHaD¦Ä#ã8iB|!Œ8ihSäB2IuÁØTHDÌA‡Lxì8QÈ ŠåJT‚u(wAØ4He!TB-Á#á(,DÄBÀ"A.FÀ.2-„ž"G”…‚DÊ"F­á¤,KŠ”œ!ɉ4I"ËZ5ôÈ"O +AƒHᢨŒ#+MHO(ÂÊIRH0hÖV¯TèX(0ˆ(†!9N‚C‚(ÁB†˜dG‰fHÁ„°l˜T€™J˜?ô¡¢$$$Jð(L,ÂJ,AdH)1Ä AN¡kC-˜K$Â'Œ$(è3˜H$:"aä)bÈ)ô”($‰B/rrÄt†Á$\ÔØÔ"éRÓC˜!šÆ‚ô‰‚"UÚ„x†¤XCÓFt2ÑÈјÑÄÂB„øLƒ(ËŒä…è¤å%i‚ÍRÃR‚«!‡dFyZtBÂR‰3F-O2Q2‚o"éD¶láJ©DK$HGFIÖDþãŒ+)‹É/˜´JŒ>,/jáù(k¢‚/H¸(a,/Œ¡D„ÔbäÈødFÌòx¦ÏEBûèÂ!FâŒü„4O8tB(©ÄÇIa+ØCtCñDŽBÇCÌ¨Š¹‚؈¤„¯¨ ÿAtø&õ‡„-9_Bv±ô‰#ÏRá!ò”&_ŒòÍ´ÏHñè)΂CòH©OQü3„ÿJü(ØoÚ±Qš‡ø/Ú±qö³¢÷8ïzá)b#?¬²+yœòX‰O}“ƒõHVµò/†ªý&_¹‡ÜŠ~¦¿a¶‡÷]AÏi²¦³‚òˆßl¶nTz¯¸rHuAá¸Vßù„¢Ï"Ø‚™œ­þlÂ/^1=6ßf÷ecO¤ñBûUwõ4^oîø=‡¯ãq"ôg¤o9üs<ßé^öäÈÏCöMAOVö¤úï-ü½òß.ñ£§O¤ôÒÚ»Ø?~òÄ.oçú¿‡¯Ëû¦"/êò–ÇëÿÏÇ/Vþ´üïBôMEOVò¤þïIþ]öÿ,ùå§O¬í¬º‹ôáçN.OÎùïAïäù„„KoZø—Ìÿ<ä?þ®æï—Ô\´möåçÿ_yƒö¬&ÏÉÙ„ñŠÊNBÏûD8õCñ_8ßaòO=H—a¿”ò¤™/ru¼á*óHþ)œ1ißQ|YÔ›¬×T­üuQø²ÝY¼ñQˆŸ)ñIYM/rSú޶ï¡ô–¯/±ói´ÿ}8ù$i›&ßZÔØó"™?§òŸfݼtCø/¦)¾oóâ-2&÷2h'šo”¶#ú)Їâ2«C7ø´2/‚ñ‚²G¡)•ojçq9¼ñri?ÅôKR/µõqxÿ#÷É?Oâñ"g#>´mÒ?ò”Ý›jŸ\ølinmÛDŸzôz{OÒ÷òÃûËR¿¼õÉ?…ûïV¿ÚѦûš¦Ocø2´o*ñsgO·´Yý)!ÔæÔ6M—8•ÿäY/½ô·(¿$}ÉÛ’üÁèÿ.ô)ëO­²ø2¤okò„²tüd«hô-äïÔÖTVE_^òGgaûŠïèi¡ž’+¯èûtJž®ðô:-A«A´ÔÖ,Ó2×­ñ†2M2?¬ôJñÁžtAŒxs®ƒ/Cèø:dMÁ«A¾ÄaÉá8×Ã2IñÁ:EòÁJòáž^$ÆLzs<'C|:öÁ§!>>-aÃÂsׂŽ2K¨3$¤Á$?îñ$ÖĬ?ׄú2„‰þ:„I<š‰>¾ÍAcÛÑùZCß×ñZAŸÖñcß”óUŸÖóŒS¿‚ó¤[«2_üõkx_»uIø¥_Ÿ„ü¡_Ÿ„ü3Ï¿¥ô5¯5ôý¯1õù¯1÷Ý«ïqõY9Ï8Õ‰ó„_‹2_üõix_¹õi?ûwiø¡Ÿ†ü3í¿…ò1­¯÷y¯¯ôé¯5öí«ïQö);Ï<÷;:O¸÷:"_üókj_øskø±w?†ô¸w†ø6÷7‡ok»2ô¾¾+A¯k¹ö¾²oUöÜc—„H†hW….4„uhJ1†-AƒÚ4¨4ˆB£XBo!^(o8Z,78-M(¡„Æ nDAmú†ˆ*v(ôÈ$-Âhõœ¤…ÑLq…²QD“ñ”˜JAtqq"Ô¸FxŠ4 A%ˆìA”ŒßTßDó*/²´A‘¯ô")Y·…ñ¹a¯)Ò¦’”«¶]ºèò¨ÙOR³eø|$ÒüÒµ?Fñ˶¯£ú¦O=’{¯þ¦m2_&ûÿC¯!xŽÚDñH³ýÈ‚ØÅ5$«'’ör³?.ùožŽG›¡¿$Ùªý”K_J±ÓûÍA‡+ïŠÑF»õá"¬ø¢ïoxbÔ_EÒüWoT¹Hé!øŒF©¿Dé)ú¤N/r:ôMb1óBZ-J·$?w÷F”/SüÛ®ß~ø¬ÁÏhøN)ÏÔÒö¥‡ÿÁùÏ‚$ô˜ÜψñŠŠNBžô‚õœœO“õ#z¿$s]ù„Ñ)ñ)>-/óá˜K#>¦/ãÒÿòiŸ/òo¥¯“æ–6iŸö:É>}‚ÿM4ß‘ä™õCXŸnû=i>ï/ñÁc!ñ-[/µvÙöM¯‘æ–4Ißuþ8M/‘Õ#õÙ8]Y¹üAX›Y.Koór(g!6³"ÓÚÿÜk?$ósŠ>i”tiûýeóö8r/‚ÿæ6O%ä)•rodkÑ£Êù.[?„õBŸ±õBYÂõFŸ±öîÏEû¤+©oiö÷o²³}úùW¯–v$ýi$Ÿ~ònë¾ùo²÷Á»MŸµÝ²Ý¡±{ö[ëo«ò–m'AOaô‘SŽ››¥¿Wÿhiœ2Iß|øêkoÛÿ&ÿ?D±ÝüÙË-[=¼ÛgŸü÷4ޝJù¶”/iû´ÖÿÒô.ŸÅòIro×ô,$×–ßžúkêßk¿®ÿj:Ï-ô˜Ú)õ–O=öL.`Ct:ÄA£á6aÁO8W,ôÁ:IñÅðážƈ7Ç„'C/|:Ô</>o–ŽsׄŽ2EòÁ:A¬a*Æ1"Æ"7Çxäü$Á£á>ž-aÁŽsßÄÂ2IòÁ:IòÁ„?îqxaxs82‰ü:$I<šè㙈“ÕÑö:SŸ×öQ—ׯö}-ïuöy=ï=÷ieŸô÷¬w¿åò´s­"_¿÷Cªß|õc¨~õc(îWŸ†úò×?òrÖ+cïç½ôúÖ+aï-ÿ6dŸ•ˆrGhB„D„dxÉÌA‡hjBñˆ$ø$Ž­$؉‚XÁ(UhBè"X…¦R…—¬HHQH8Ž“¡µˆXÁ(uhJwDuxÉÜ4ˆ%AÁ/yä(Iè(IÌ’À2Á.@8³ÌihN8HŒä‚Q”$K8&È‚CÃÄ>‚Éd#Œ$‘iÌ]xÀ|‚-‹H,Iá„Ò$è‡H$ÉD–Ò„$‘J™4$†De„‡Cæˆ!dI¯1ŒÂ0¾D,›HˆH"ÙdB™5‚Cˆ2”„#eˆrtç…$a$„Uˆ’#HD²ŒCHxDÈDL8B€ÈI†BD¤ˆD@jÈC"FDéÁBÑA4ˆˆ%”ˆ_AI(ã¨!(D…ÑH"˜D+Œ H/ñ1-R(2D)‘A()¡ÄeÁ$Lj!JXX+„éIÄ!E#„´˜Ä$†ŠÒ‡Ø„hAˆI4!‡9AÉbðD,8J¬(AÒ=( !")œ#&†H¹DÈc…d`¨ b$ß<‚F!’Z©d!LÆ!$Ò„º4D€FÄh‚CD:†Š”cäˆ!44ˆ±„âH´TA¢„*ÑH4b8GŠÈH`ƒL’B‚¤"ˆLÒ$ÄX‚,L”( )Iˆˆ÷S£ËZ"xF¸B‘JñDQ\bBÀÆ‹H)ª„iÄE*ÔTâLFÊJM‚OˆU¢B:Cèä^†L‰‘Ä›‚M‰YMmH\”xвFsO’È–:HÒHÑ¡"ÔƒCäIB•24‚ÞÆL¼ìA#H’ˆ‰‘‚$ÍF_Š H"„,BR„Š28A*1“T‚(€$FH›(H" "0„ !¢‚ "`†)dB)´(€ˆ€ˆ®8ÃF&¸¦G”ÈGABL`¼B ða°d„àB†‡¬HÁH$‚"ŠD4A€C ‰‰jHAB‹N‰$‚ÀAD‚C"œˆ#Òðû-MN…rYr(¦-Œ!*yRÑI8s‰’_CDñ)n¨EÔHAvˆ¢¬MC;„Þ( ƒBrÁVÇ¢oDÄD‰ô¡ƒáæùe(%,Ñ(x¨N dŽÁDNè†b¡Â/LF¨«„(†¤CÒ$!„Ú‰‚¸ÂÁ‚Ãh$‹Ä¶¸ô$Hˆ#54GJ"* :dÆ"Nˆ‚6F¤H‰ÈX‡(Ì¡B¯Ä D”TPA!á"9F‘AQFAÂ$%A‘p!$Ft B‘AF•%‡Ñ@3”…2!!$/œΊDf…–€ Ü2®ðG°JTJdA‹TM!$Lä#hH¬qDD$ȈGY‡B/4‚xˆ´Š”D‚Aˆ%"‚BG(>”%däÁÁT‰ø„)$…EÂ(˜%"Ì(GDƒòD,Œ2(Œ¤‰…ølEðEM(„H%Ø#D42Be1E„¤‹BŠX$‡HÁŠR…Ja$¢ˆCô!%"¨‹‚€f#HDˆÈxd$9 ,‹NˆÏ…8"¶dH¸"ÁLéA&"„˜ðH„,;˜)T(! )$$H`$Ì$&8A!DŠ A°ˆâIARDCXR†vDÄ"E,rCHé„R+ŽhMRC¡ˆŒŠº”¨L"xLFØ!B(ФHD#)¤áC$LQB`$Cd‚,Læ(hh%b#!lR€ÒÄ$)]¯H∘Ð"1‚CĈBD`I@T!‰FÕJ$q˜Q„Z‘ˆP‚¯*A$XDBDaH‚mI‰\AŒþ!‚®ØIáä"‚H²H¸„Á!b !Q$ˆƒÈ†Ak„"D I……qDDˆ(…ŒBbˆ‚¤HH!#èTˆ%äú!@1€U„"†@$A!P„DÂB€È!(GÁTA`H°$AD¢H‰($ˆÄ‚„ÀÚÃ2!£ñR'­B/q‚öˆfÇDC¸„rD”„œ;K’W‚g„`Â*øã„+ǃ±*¼ü(ƒ,ÄÃ!AaA€9!Ut$R£Ç„ƒFœ9û.2Ž~/ƒ±˜åEØ•ˆC†´â8È$hyDhˆˆ/%BqHñH/AÚŒJ´¼”œÈšHXŠÏˆBQaWDuD¨TäÄÑaÕ!xbb(†BÂÆ/Bä8T.gIT\˜-…½¦?DQ‡)É‚ŠLù#_C8BCh!OI˜BKB'3EQDEG‘¤íQÉBt#T(aJ›†lH£ÂDIØ‚ô(ˆ/á©aQMdªÒL؈šáM:‡ŒEˆY¨‚KNk3ÒâT(ƒÃC'd˜ÑhÓqÁ2lì"¨Œ"S:DB„DLG)´èAÒH¼‚ÜX:ˆ?H<…Dm"NK#Ò8HOŒ8\üHÌ‹ˆ‹Ù†þ’­þމXt(Iô$ÇdGd‡‚•œ&.$G„+AŠò¤(%‚4OHøè§$ÿEÒªÓò´AÑ#ñhoò²CñÅV—Ï!ú„(M–_Ï´ÝúÎ"Øõæö$ÍÍ?&ñO´¯áú&ÏñC’¯ø&i3÷·7ï(Ñ¢±‚ñb·…g"ÏRÕXóa,^$.aÏÒùA&Ÿå‰Þ\Ô+>ÍøÏÑw-|_øÍIÏjr¢ØBúHׯš/¹ôB?‡4WSŸþ79¿TóD”aþ(Æ©ûLª.Bm¡Ó[aÿD÷%3O¤ÅJÝB?wñDzμ·v¯Äú¢?Añ¦Ã=¬ÿ5ú’óoèy>ôi…OTv¤úú’ÿ.øÍbq÷†ØŽª»L{÷„þoâøùÇïäø’†oeù„Ç7æ×w/U×Ls^|mù,mjûü2ÿgûÿª?û÷ŽŠ/ˆ±Ññ©_OÉü¸ŒWûÊ®Eô%„oRüK®Ÿú\Çï¡xéVòMißúòÿ½ÿ.ê.ò¸üIuŠê¬ü¸|OÈí…Eáóõ1LÛ4ו/±ñAŸBñ;iOÝþ3Äù¶":ú’zÜõöKŸ'òëá¯Ñtd9iß?òI>Ù‚÷ɲߑä‘݃õÉŸ“ö²M/2qÓ®#ù/õ~+õI‰/‘ölA—„ßuú:UïþqX_NòOËžQT“üQ.÷oóòœo!ñ’+;/Yä5ûù,[ç/Ñæ„òA%Oò1Gò/†õê²O!ä)•R/,££cÍko“ôU~¿!ôY-Y„ñFߟúTn¯Cû¤+!Oiú3õošqyôy‘Ï”ö$m—FßþÊíOûÿ¦]„ñß¿½ý‚YÆùûÂÿµþ´Žï$ù†”Oaø”Æ?q÷$_3÷yqOÖÖXrIøÉÕ¯½ô¨yo¹ü=¦?-ÝíÕÉûñè}僧º¹2ó2¶Oi÷3Áï{ÿu¸_oóxiÏBvdùMį|ü½ò/HõŽ¾Ï¥ôXÚ/ˆýJžOïþï*p2ÄE¯CÒ4aëAmaÉÄ3߈ñ„2CøÅ:EøÁ†þáxaÌ„7‡ˆ'C\ô:„<>VLO8wMü„2CøÁ:EüÁ&øá'CÆLxq<"'Cü:¤Á£Ñ¾ÂaË(Žsß„Â2IóÁ:M(¬a"æqta͈7×L82Lü:$KÁ£±>±?Sí¯³õye¯‘uyõZqßòyŸWûœûŸFó„ó‹2½÷a¼_½÷aÿwaøá†øûí?¯ñùí¯»õù寱õùů¹÷ýãï±÷yåϹýK´O9ÝJóÕß?Æóõ_?†ó÷W†~õa¨?_üÓ_^ü’aß~üQŸ^ü’aßþ–mŸ4÷”ó¿$û”÷­¶_¼ÿC®_|ýcˆŸ~ýA(~õAˆ/üS/oü’X¯o¼’ôúÆ+aï-þ¶eïC(sdB3„8ElqAÎAEAF8ŽàXA‚ŠåJå(Å„QÄÈA…DaB&È'ƒŽĆ1‚•¤¨SaJ³¡ˆñˆ±„ØÔHXÌIÁ-#á(i‚Ž‚"†"â(ìjŽƒÃÄ4%˜R„#ÄHÒ„èäb)"šBò"LhC+„*(ŒÑÒŠÔJ¨‰ŒØ(…u¡†A4‚&”¢CñA‚&tHÆH"(Ï$ÉI&ç‚Y$Nˆ4‹„'D‰$áHb!I¡(+OH2HB$D‰s‚xD‚¼˜!Šx¨bEí¬°²D¢B$”ÂF´"Ò(ˆbH!&†ÒB¤$¦X%nˆiaˆB„.‡HAB¤(†„u¦Iˆ´F‰’LÎ(„ø!†ÄHJØF°AhHàaèda‚HJFȈAG¤J(Š”ˆGéÃN¡!D!-‰"1'ƂұBÈÌJ²ƒ¤‚P&ˆXR*T*$†…„òQ\2"T«†’A,ˆdŠGƒ/8$E"OR$BŽ}ŒBd„”ƒ‹!¥¥‚ó…ÐJƒD‚ƒDƒ¦)ä!(DF8D¨”Âl,¬$$…ÈEA$#È„`AŒ–"LIbÈ!ɈÄŒˆVBŽHK©A ñ$bÃÈD‚Aƒ„-(F’„ ªI!Ž#s2#’F+5øXC’„˜%„´ËÑ"YÁ¨ :ÂM¢d$‡)(QI§2$‡JRFž$4A"ÎPGB=„¥bˆ'ŒÁÈOÒø’(OV$MGIú4ŠŒ¨G„ÇB“äDqƒê¢a$Åbˆ‹$‹/ˆÑfM!ÌBâb,.HDH™‚ƒDB$B‚BâH(QA!"ID(ˆ"EH%ˆ¨ €dDI€ˆ#¤ÐÑ:»1"7A‚èAªhH&eaf8D$A%‚A#ˆ¨D TˆŽH€8‚ˆ@h!Ætƒ¨T¨¤¨C4H#‚2‚ˆ­‚à¨4“D‚GB†è„‹‚°D‘,‡!B$B#òDbÓô4"‚’Â>B‹HʳˆuaŒ¢I„B8\£6A«‡‘®$-!Ó˜Tò¢ÃI·\r^ˆ7ÂCÂHK‚xX´ã˜Ê¥¨ACœ:‡É_‹Ê„DKŠH.ŽÄbÁL–dFh„ÆäCxhˆ5‰blÎC㤑$„àabl:”8$DŽDF8Z–fH£lA0B‹J¢DIÙ!ˆƒ„òH”H‰&D„â%xD(8B„ŽH#2¦t˜"ˆ„câB8°D‡c<(I”‚‚B‰„øú¬€â‘tÄA-X/Dá‚c0„c(VBªšRAH¤.BËH,2M†Z‚IB[ŠƒbÅA¾‚!CÇœ.B>ˆ#Ì$xQŒqÂ8DŽ#8HŽD¬(í"˜(ž¦LÔ8\,„H&ä‚TBŽhÄFäˆøÂcWx£ °ALT’ŽDp¦¡Lˆâè!BÂC1Bmˆ(Bˆ)xFq¸b„$ˆM‚`QN"†GXH0A,ŠÄL'Bˆ$‚†Ø4ÓHa‚34$p„bF,hD%㈴!¸D|È‚˜X.Dø}.$(D`IHˆÓ$ dHˆB¤$‰8D‚FR‚@Jh(pD#ƒ¤B(J`”"ƒ„4¤À„FB@‚RH‰$B°d1ˆ‚ZÌ>r!M%À°h`$ƆÁ$+(ƒ´„!Hà„ĈZ%¤BŒÌ‚ØHŒ&˜Š+‚R3BHB„ÂD!‰Ò‚HÎBQŠ‘ˆ&:‡O$µÒD"ø†D\@‚TNH˜¢Hˆ‹X‰‰Œ’$_ú "H2)0&TÑŠ#ájdH$!KAITBŠH$2\DˆD†”DŠ(†Šˆ,DD.ˆ¬)&A‰($ð!DÐH‚8!°tJBƒÁü3Ãq°@1¨+JŠÁ"lr¢a„‚DDJa¤±ØH¤‘`AhDp„Ä„ERA`†E"ƒƆ„AÝDBÈB„a“È",RI‚Q*i’ÄÁ‡a"‡Â(ÀˆIÄ(Œøý}$%Â@N!ˆG”<&’"tBDU$XÐæ¡œÞR4+E2$–$8„ƒhH†ˆ"JTŒ”0†˜XâEˆÂƒˆ"(ý$¬ƒôDFÀDEÒ\dF-"CN"ŒOÜ3µLD’$/A…I‰8$˜EÄ$pL F…˜‚LD8%8…³ƒxˆ¶dÁ¢(Î9WH§B”ÄÐÁŠ˜Í!©R† BO>8žJ#!@ÈH‰ˆ†(h„…’HÙ FdB2Œam"")ò$„I‚ˆâB|ˆ’A„KBˆˆJ(qyAþˆ@J™„­F(ÑÑLÄD1’NbÁ‹,‚tŠ4$K!M/f °!2ˆJb§Dªƒ„‡ˆ‚à‚Âø³T‚!Œ‰$ˆ$‚H†HX„ŠAˆÁ@ˆD0L#‘B A¢AI¸d$0$‚@"$D„"(bJtBRbB$o2A¤$(„&dA H)HTH´ˆ$@‚`BˆBˆBE‚F"HbD…„H!„& HÒ"ÀBè3ÛASIKQò3D}A¯c±¡y¨t‚dj-“&É„&éLxLáÄrDÑqÖÅA«˜BŽX§¡ŽÈOHy”øh‡(K$8ޏ+“4VÅ4d‡R«ÙÜXÙ‡øHXIŒQ‰-†ÚˆR/Hb"%焱¶²õXH‹AÎH>lFýˆƒôlˆ/E~ÈBÅúJBÍH¿{Lbd7% !Vb:RD&2$/HbA*âBt&ö*LgÈ!……t„ÈÎ…Õ´xˆ!È$%["±8‘†_H…xÔ†¸BDÓ¹HtxDw‚èŠ$ìIdvFÒD:"ˆãA¸dôhïBE\B¤Œ"òŒfX*ŽZ‡(I’(MâsF(AôB±‹Að2ŠÜ,”%<†x„bX’D‡(…tÉÈšcüÖHI1ŽÑ­4ŸÄTÏhQD!M$O(QiÃ䈩x‰\„#ô4†#á'´!±qòD1xôÄC…t$óD$K(—#…5/ró!(.!KâMF{cdCâ$„¢Ä¨^¢gEr|óADG¥5ÁaÏñb弊Þ&?œµFºÍú¥NôN$—W]Å·±N_}qÕÜ9÷U›­‰ß“ÖµùY3ÿóŠ4†xöãXwßFò[O©qiõu-ßü–ªöýQc¯ÿ}Õ±ý]S«9›çŸ2ûmcﶪâˆz$öGYïöÅùNïß±ñLeñdMïéùEû.&Ϩ½(­ÁHŽhÏAì¶3Ã4ßÄñ^ÍSã•õ3nßbô±†O×úi¤oCø÷6OZü=,¯^øŠÏϸXÏOVÚßô•ÿ%øÈß]ôß_¹ñ‰™ô›ŸûÜýùU]WÏgK/héQÿ?Ýú®Ûßqù_)_ÔÚôÿµýUUßMñ;_µùYŸõ;ÿõýÏ—DŸÎRBbù´EŸËökUÿáÿáó·…ŸÒþg,ߨýoŸ_B÷ä6Ϥ҈üXJŽHnªïäý¹+ðOŸ´õM;}Y½SŸ±ôQ;?‘õ;Áÿ4ùÙ.+ióSŸ1ÿßY?•ûyñ¿ôIM—4ÿœÑSÝ;å¡õ]³kT=Ã!õÁ+r?ý–ª汦²ûSŸ:öBA?©§¿¦F4²òñÓÑ?=ýQÒ_|÷ÖÈ¿<í!þqR?™÷÷ñ?/ùqº+;#ú“Ã^çöÞQ_RøRIUå¶ÔFó÷ÅoHûX¢š÷Ęš©‘KO[3ë-Ïqõ•õS[Ÿ1ôi/ÖôÓéÿ[ò#¶O*±¶ò¶•¿ó÷½—?—óÛß—V‰Ç„\ýQÙ¿ùü•BýùÛX¯¸ý‘C^›ÿÖEû;¯§ú„&+šoJÑÿþ¥‚¿œúß_×ô%,Ï–òMMßßöïß7þ8ÿ?Õ2ýYÓŸüüþeÿ]õ߯áû”6oIó¶•ÿ"ÿõ¿÷góWEß4IßXtíý;ü~⃹ˆõHØýøê/ŸòXp2ÄA§CO4¶Òì8wMØ$“$_¬³„òÅ*ñá#saŒøsŒˆ'Cü:$MÁ£Ñ¾â–,8×ã(²„òÁ:IrÁ*úá#saÌ„7Ç.„'C\|:Ô<¾Ò–,ŽsÝ(O(“$¬“$_¬î9bFnˆ7ÇJx2”È£³<èëA­ècÖâôY¿fôI¿fôiÿ&öY¿&öœÛ¿&û´×¯"ûÕ[?¦óÜS?¦é~ucøæW„øöÇ?…ñæÆ/õëÆ/‘õëÆ/÷ÏâoÙöËbOxÿË"Oxß*òÅû?¤úÔó7¦}cøêW†úòÇ?‡ùâÆ/ÿëÆ/üëÆ/ÿÏâo‘þËrO9ýË2O9ýª"_½ýó*Ï<ýÃ.zGü¢W_„ø²Ç?…û²†+ñÏOúRÊÏOøúÏIú6Òç7$@BÄ"Cab.¢aªvaØ4(a&BŒxè(Ah(à(XHŽ¢Á®†`(!òAˆmAˆaˆ!Dˆ'ÁŽ„,$DrXÄ"ÃdbƒE2FzAøAƒ’F*“FŒ‘Ä#á(EÄBJÂBB(A.DÀ法ÁøH=Hpb¥hiÁº.œìrÖÈH€TžDŽJD ÌAŠÑ$ŒÑ(H‡zƒV.HA™V/‰$â(4#„#á”È)Ó¥H„Z$èINhÑ€–ªTHÎ!ŽX !ñâáNÁb$±.d0Ö)¢)`%”G+‰&DH˜ÄF(ÁFˈ€¤„ˆL”‘%(U$‚CÁ"`iËBJÌ!Èc¯‚¡H)¬1M$MD)˜LPI¨,Ša$‚6˜"/Dªˆ#‰µ¢‚T’Eø&HG$p¨’ÆÂ$„£ @AAˆ@E$D ‚€"TˆÅ€‘¤!„€³H€„ˆïù€ ˆD€2!„!ˆ€@ @DÁ¨À,’HŒ‚‚ â>}5õ"A!)ƒaQ)ôkÇh”†$|„â$3F4-p_Ä(ñ‰O‘ä‘ܘ¢)”ªAOAJ„ŽGdKFâbó%ÙAtAxD¨„/Hx(ýeKÁÇ)x’è’¢íF¨d!‚ÖÊ‚Odzz”8³ŸGBdR‹†%¸3Q‚­X'©õˆ)µ"òdðH$]ÁqQj!…ƒq8„ŒChXCú„…‰ÜÞ1ª1,AÅÈÏH¤„OˆØ„Ȉ˜‰Ù›WL(EÄA0"iä‚RIØÁGΈ„Ó±Ah‰oɳñxD¤™I±Ü„6ƒÑŠr¨8(ǃŠôÈ(ŠcŠB $‚ñ˜LÓÆ§…DˆD˜BM,+Œs„R$&*ò(„*‰áå1lB 8F†æä‘ÔÂL-Ì­ZKŽ]"‰ë(ØÉQŒƒd„Õ8„‹"Ñ„"è‚¢˜‘†Öä8dTÅØQI1‰K2úH„pA#D¡7˜¨‹IôL,4n'í,ßCôǵ+qÛs·~ƒÿžÝø„¤M†/ZþÖ…ÏÎúÖŸ)qD}RøÈ¿åùÄŸN—oIøD8ñD+áÛhŽÏ<ñwåcô„’oSôR)_Fò%^]n%oŲ%üB2^‹O|ó.´ßCì‘ñ\ƒ¬÷Úï“ùLß$•šša!_ùþæ-/‡ñƒ^o±ñl#—_’öòŽ´¹R³‚ö8Èšë/‰ú<ü‡3ÁO”Öê÷Z^¯âõ~ÏûøôŒŸÌø†„ojèXþé¯Mû»Ê_iù~-φÚIô‰„ïùùÌÏÜü–Þ_¨]˜‡”/ëý©ÞMŸOLúE„/Cú“Må×ÔçEï¡Õmñ^!ÏÆØMtø»›‡Oœõ&~¨ý’™Îêÿ¡ZŸO]ñÙŒo!ñ•’ÕÕûV´ÿãþ›‹¿—òl)ÿö­³Ÿ²»AñØ8¯ƒß¢ÍÊõ*xïãûaÏð/J.kµòQ¿¡ôX[~¿ÿ¯Ü¿¯ùÑž+™/Kù²’Ÿ«´ûõz)ßÕû3h߆ôH‰ÿü›Ì)íøí<ûŸA?!å¾í|ù³I?KöW²î32/Kò–2âõSA'•º¶atLµÃô#ØkÔ¸÷ò£ý[9ýhS/vù%S;Y/¬yÙê!±ÙöøV;Tç½eùmKFŸÔòdVÿØý–æOçýv4kØ/)Ý(¿æñÖßÓÒãõ9C_tñRI/%õKŸ±ñv]¯M¿¯ù‚’O)¹’û–õ¯éþ³¿•ójF_ÄT]”LøÍÈÿéýÛß|ùÖɯ¥Õ¹ý‰“ïÝþZäKø2¶O(ñ–$o[ôZß"ó{)ïg÷eLßÒòe-Ï–úÉè¿aþ¥{Wto½Èý‘[Ÿ›úöM¯Íô—†ÝOh¸†ø‚VÏ£ü…%¿—ùÄÑ_Vö($OVòé5ŸßõÔïâþ¤–k]¯„üʧúâho9'CQt:Ô4aãÑV,Žs×$O(Ó$óÁ:IòÁðá'†ˆ7ÇŒx2ÄůCòÁ£ùšáãávŒâ87M,Ó$ñÁ:EøÁ¬ñá'ƈ?‡ØBø2„-A¯CÚ<¾ÈaÉá87MO(¬ó„¤aBì1ÆLxsÌŒ'AL|:´<>·ãÚSþ2C¿VöK¿Vôcÿ÷q¿6÷”ÛŸ$ó”Ó"óÅߦòÏÓ¦øëw†_~÷Iˆ¿_ü[_ü[¿ßük¿ßüaÿŸþk¿·÷”÷Ÿ&û–÷"ûÅÿŸ¦ó×sŸ¦ñáw—†~÷iˆÿ_þ{¿_þ2Y¿^þk¿^ücßþEŸ<ö„Û¿,ò”Ó­"_ýýc*_<ýCŒ}CüäWÄøúÇ¿ÅûâÆ/AýêÆ+Á¯nüèï,þÍŸìD2&„4(E¡288Ž…DQ‰P¨UhJU¨‚*ñaˆ4(E±(BÑH«!Ž“‰b™"x¤¨SáJ8¢ñûAˆ-AˆXŒHAØ82Ž@H2(,dbÀb¡‹$‘Jƒ”4$´,h#ˆ&‚e"l"ÌlAh°ˆ/ÈBñê0ƒñâD«DM!*q„c¡‚7„‚‹dÁhx†4+œ¹FâˆqB‘ˆ'®g¨BK‚‚I„š\ˆHGBH¬HÄ‚BÁšƒ¹$ñàˆLb&8F$€B‚!Ä@V!Á"!,…ØC2AD,IÒA±HÈB†Ȉvr„(Y‚,HqŒ¸#B$"ȬD0&XEH8X&÷¿ÁE)ARRAB"!Ø¢\G"8AN$!OÂDŠCZ/B3ä†C˜4‚(iHŠrB˜%Z8¨e¨DÁib$²D) Ô‚äB‘"pDJ²!„ \"òÕ«`$…â!FÈA2*ªAALÁH@„Â(BN6ˆ$…‚¦„D…8†„Á‚RJ@¼D¢$bIf(H(h…‚„ŽˆKb,B†ŠQH„hHB†¡!OX1U1Jq!ÔBäQ "ô¸TÝAáb”AdH)è…sÃbˆb$Œö’%…b¹ŒxÄ"Iñ*GÁ$hB„*„ü#Š´´(b„ƒ©‚çKA&¡-’0‚y˜(G„."„ÀŒ‹H§A($H"K¯% ‚$ÌB%È@"DL!&„A( ’DD`C,„(AH (!¦HB ’„b‚Ä‚B,L*$&A$0HPB HˆÂ!ÆsˆdGðA…$DÄH/B‚HbB ¢$…Ô‚>ðò Z`Ò‰$ˆpˆ§"ŠbB$DHEÔ"“$‚ˆz„ò„††JœJH"8$‚°dBŒdB+DØÍ BIóHDÂDVèâ1ö*s„²$ò‡j#8ˆëIBÃgG!Ø$Þ˜H1B¤4×$+)Iñ–ˆG&šBhGFÌH(ž§†®ˆrƒø2A,Á-š”(3¬(c¼,"1„o„ñ"D&ˆrY¬âÌÁˆ¬OÔ\2‚ÀT)!,¨A02ÃÂ(0$‹Ž(0FˆAJ"‘JCã¡ZD˜I‚ˆÉbD"‚Í&ÂZR‚G!‚*4˜I(b‰"°4²„¤AACBh$b„&–H`!BÉøª´ÀD«BX‚VÄñDÁ#D+„&óB„‚ºDAbD BoCÜ‚üHZX!'É*4…&aA¦bH.š.T„)’t„F®iŠ”ˆ$‘‚…V.‚]%ƒ1„à,ÒJ‰G©Iä‚MAŠóˆ0DƒaÊxdÈAƒ‰(ˆ¢A@yB¤A’!E¤a&R”L!’D„M"‹BÁ…Å+Ô*!ØÒ"bL¤ˆ¸$ÄŒ$ ƒÃB„¨(aB# ¢H°!È"F…A¨L$Œ¤ƒ£ˆ4’+&Ô±ôö˜€OHÀI,âABÄHF‚’H!†ÉH`B„Hކ!ÄBâD„4ˆ(€‰4Á! "Ñ$#"ˆ„,ƒtA”„ˆƒ(|2uL"â2BBCáDé$¡AiáDÂI ²VH‹D,A(JR)›4H/–Lƒø‚¶”‚D,i‚YR„‰V„L "+Ä9-²"„Ä2Lˆš¢&<È(I„”£|‚‚4(‚˜‚D(­ X„H„¡ˆ-8I˜"ˆ'ÂH$)p¡¢pȤ†C€XBÀ&pˆŒ$„¡,B™`!#Ñ$‚T…ACøHH#„–=lJ2)„)$AC$A&À8-©‘˜tˆ]! Á©Åè5i„ÆQ‚/È‘I)7ˆ)‚Í"(KˆQŒ4&x%D°dBÀBH„':ôY"$C FB!ñR„.QƒR‚AHU…Y¤¡&"ñÄ‹&áL˜#(%‘€•(ŒMºH´B6 VóŒG#T”/D9…7H‰˜!-²s)’$#D:ò&D¥b"§!ˆ½qAhQJb5b.N(˜+"/B˜ãB¹™ý„H@ñ¾"Ãd…ž‡)•hRB£B¢˜%$! HI–JKh„"„ƒBRˆGÁBàB³†šeÄžŒ‚#Ûˆâ¢"Š—H'"J¡ì1ˆ…Ê$B?‹ÐH5#‰É‚â<òD8`"…jÒ£tHìxbñßCñz¿iþ¸ƒ·×ßÖö¡¹¿!ùì1_]ñ;_¡õŒõ#[_ñó™+—üý/BùS¢.Ñßßñk•¿±Ö=ñ!ßÒÝö‰¿³ùýßÝò»ß±ü‰9…ü‹sØÝúÏm߯ø–4có´Õ‡ÛÿVû_kŸûû^!ßVòDaŸ¸ø{»Ÿ&ê,â#ÇÒ*/¬ä¡õ.ÞïœDñ3__2ôM;ýY½KµõYÿ×ÿ—É;qñ¾¶ù6„?úõ9Wÿ–}ÿñ}ý¿QvmqEùßý¿RýŸkϯýÑ}Ø?¹õ¡Úß¿øöøÿÑþ–盦oAò’ŽŸsÿNHÿòxÍÿöLD_òîd?Yý/CO¯õÉoˆõƒ[Ÿ(÷Í3/L÷—QOëùs˜ocø–4/òý1ËïÇzûù|µ?d'å»þ8þ¤ÿê6Ï©ü’Ò¬ýÎ:o¹Ôòÿ1__uòWA¿µõK²¿Wõ?m›ù_¦O#û–4/[ú‹ïß:ø÷‰¯óTl.LÇ„O”øÍM¿{ߥü,/¿œüÚÛ±ýH?†ô®m?Éóú.O(ó6´/H÷ªß(óv¦ñaMÒrmùm‘ßÕþ+÷ß»Ôýú[ȯµüË5øWä/[õ›¸íâ)³6²¢ùŸ«÷v-¯ýqaBòÅDÏœö·þíúï»ÖôZØŒ½JùøIß¼'Ct:Ô46üŒsׄŽ2IòÅ:M8¬Aôáž'AÆLxs̤'CR~:ôÁ£ÁáãÁaÉñˆsÛŽ2A¬Ó„ñÁDîqtaŒxsÌŒ/CÈÁ§Cϼè>–/8wmø‚2K"?¬³¤òÃðã'F*xSŒx2´|:´</¼ÂF2-n/“ôkv¯ôkV¯‘÷orïÑ÷ïâÏ9õï¢O{õ®¢_½õç*O|ugîcì~÷aŒ/wþÓ¼/fþ’Õ¿fþ’É¿fü’ùÿ&þ–}ÿ&þ„÷ÿ¦ú„÷ï"úÕÿ¦úÄ÷w¦wcüèwŸÆøþç¿Ïñâæ/Sõïæ/ôëÆ/öïâo¶ë÷„Ó¿.ò¤Ó¯"úÅÛ?¦òÌÓ?äè~}GøäW„øúÅ?…éO¼þüÄ/üøÌ/þÜîkÑ^¢$D$Ä2Cáb,!†-AƒbŠ!„-‚'ŽŒB‚B,dbÀ‚%ˆòAˆ-A‰!Ð"8ކh(Ž"A¦l(aþa˜mA‹’a.˜a*Ñ"8Ž%'B@ØDR„&Ì9ÈgpD“”"ÉÁ"!)QD*ÂQ#’L%¼!DØ$thBhLÁBHlhQ©K”"yyH4"‡©IDì$S„+„>H–JᤨA¨MM¢ÐB†B;‚I”G†AbIØ‚ƒfÂ,A¨HÔñº¡`$6!BÒF8!")1$((BdRE(QX"HCB"4D‚ŒA…Ë$DO¨‰BN,G!)¨áB+„„²„’ÂDD")vD/…JèB⡘bA`!ˆxc‚rAxU ¤˜&8B!¨!!œ!*4A‹R…ÂÁ€aG#*H‚84"*\(N)«‚4(D„à(¡$ˆÐ‚3#"1”-Á4Œ¤ƒ)„]"ž!KL(¥d¨‚p‚bCßËX1­D‰¡„&&B)"G!O‚&É‚œCDB±"!èô$†±¨4°„!‘"0\IG‚Fˆ‚•¬,ªF‚x"‘Œò#˜"oAér”ˆCA(2JÂH‡cÄ¢O$úH"K‚˜*Ü‚ñD|$‚ †€Rˆ !"‰‚(Hp„‡,AˆT$B˜L@„T‘$&ƒ¢H&%„‚ 8 -AŠ™‚(a(ˆ„$CÁäÓÂX@.D.Š”(Ô‰4„‚8ªŒœ‚ "$Br+Q(‘(%‘H+(‚J ˆ-ÊÈ(D,„ˆƒBhÉ`(p¤‰4ˆHAJ‚ÌŠ‰XC"%¢àø¬RP„g…O"ÄH,‘B|d‡64Ö>¨)Ã$ÖèÂôDA+2Œ¦$IÒ†µødšMržB„N’FXÂF¸¤èÅâH"¨ˆ+Aƒb1¯Á´trxDAô–A„šׇŽBÈB#÷h.t‹AAO*Ã4¨I¨ƒ‹2C18Є’2J¢„Ÿ–!"Lä”>†FX /„²IúDL*h„̤"F(B…¡$¯D‹„ÁBˆ>H(ú(ˆ"‚Î8O%$BXL t„xH$c„@ø$Jñh„#ˆ’LŠ¢ ‰D4ˆV*ÈHP(¤×c$*ÖHA˜BB,ÑŒ±"ä‚Ü$á!¤k¦Õò´B‰"Œ44F6xŽ‚ƒ2Z8B¬”4G,G**1‚N˜"Æì&C”(Ì,rQÔ%¸xHR¨šæHÑ(æ„‘„8iCáŒq$ÂÜ"F¨B âèa†D$Š5RŠø˜A‰Òhˆ‰Ö(A"v©bA$hÍ¡-Ai2A…Î!.L¨ë„ „¡ò‚Lö¡ è$˜jš’DÃBXQ$…Êb!€¹B‹ô„R(ŠBÆ"kD)ÔBMA€ò‚"JÑ‚G¢…‰Èd²€BlFA(ÔH#8!Œ’!¢A$HƒAHˆ9$‚b”ˆ’e4$‚!(ˆBNA€„‚8F"H, &,"Òä1!T'„†1HN:&$4A¦Ä”'jHظø2EØ$â…á(ƒÔTAb¨(äˆ1"°Mœ1L¨!¨Ĉè--&ÄLŒIij‚†Ò!¤A(JA†x‚"‘AˆJx‚TBT"£a-D‰3B7Œ,´(ôc€"8€Rˆ<”."HBÀ„‚D0(!ÀdˆA.‚@$!L”!%D‚!!•!ÐA(*n2A< "¤Â ¨!‚RˆA.VSAhG#!'lƒ’ˆb$6DH(xÔ’±ˆ4–ää²BR(F,8„Œ²$GBAD¢†ÄAcÓt HDä(ÁÅ‚Ed*D_h‘¤!("„H„"Џ"8ˆ+ˆÞ[Є5A„˜F¢Ct94„wBJgCL1ƒN$,ZÁ%:A‚1Udˆ¤B’­$cDTˆ¨STAN‚3„1fDAB–ÒB@Ä!Aˆ*Ø$Ä%…DJ¡À©“PXLÒˆa(˱‚I¨ˆ,èÈAREj1DQ&„´! )€˜ˆIxDè(“$Ć&xE$a„„BS !I’¢@˜ †DD(F1B‚!HW%¨xŒ±ô’RàA"ÄŒ„šD!H†!ƒ¡ABF1BN!O4Iæ!±D!˜„Øè"Ô(±bH¡‚%„y$EÑL‚"¬ˆ#ˆò‚‚$;3BCˆ„+Cð"C"D$x$¨P!„D^qCAFHDGB@4ˆ@ DB!"@%„‚„P¤Pˆ0(B‚À(*b‚ï @@‚P‚(DPB HMA„DRˆPˆPˆPˆPˆH†Qˆ@ B.¬<øXJZXN%õ'Ï©ÑHñ…"AáHêó‘ª:µ1tŒÄDKØOŠ¥\¡Ñø"(õ’‘LôF…òL(ŽM„M"„3*AL¬4Á#ódDEIBx’Bè(Ò„œ^4,è"h‚‘N$&€bŠB§Ã©ˆ™x‹iW·`A.MNN18‚"EHdTD(ÅÁ$ISA<òTެH2Q!,¸B$ €H´„ô¶Í1-tLÔH†RDE‘!M„N„3´AÈAMS2AETÔCú‚-!0"*‚„Ô%:DDÍ’à$AÆá3ÕRdƒöBdCµHaDM‚Ý$ê!ÁÆNTGä,ÄLa†7AG”:|$%1˜ŠåDòÌ1ISÔŽƒMeŽ*D–RG$KH„E¸Áhˆ«É'Ò©È(­ÃœôŠƒ-ÊÇ(Œù„Ê"KBOΑ%4AFë⚸Ò„º„¦‚ÙÌù+!Žˆ.Ü4Ot×BsEÌ[´ü8ßGÖ¨éµôïø«!Ž”,ñ²•/U¶ÉòBG¤ÏR”+„ü6?ôÔ7/ûHŽÛOµñšèßÇòˆÚÏ<ô'‰¯ÚDÊ‚×ýÆ5Ý$J_dqlñN$DOåùê^¯ÏùÖïüšYï´xŠø/äž¾Ïöñí–/QáèÈ2Oúÿ~-רýB?7á´ò)!á?3ñåŸoGòšDHå¨5Ô¯ˆý.DÛ:Ñœör~ß!áñI¯æÑõ÷ÌwOÖ}ÕÜFûÒ.ORýÙ-oÁÿ&ßçu7õdÈ‹$ßHõw‹ÚñÜhoë÷Ê÷‰¯îÕµûH?Ï‹ýY¸-¤dø$ÕÏQ²ÞûZvßbq6ýh„ÛaŸÊy7÷üO$ó¨îõè8ùRQëÞv¬ÿtÁMm„WlOSþý?OÆøjzqRn!¿”ö‰µøõ8ÏÆûŽhï¨ñˆ'¯‹÷Þïž çô,O5s_ùKBO6õ.µû¡oaúqš/Cºû¦_¥ü7U¯“ô=ø¿t%áVö¯8?Mý#J{õÄ3ÿ˜õËÞûÛx?!ûIkº/Có‚ã¨ucqnõyíÿÁ´atdõmøßiô3Ô_>õT³<ôÒ/¹õX“oúþ;̯ãùIŠoa¹ú2¾ßâÿI/õóKïïSvd|mýÌ6™ô¶zÏ,}Z¼ÎÝŠå®õï+oy)Ýcò1GŸuÖ’ô1tA÷2Y?Žó‡4?iò´/Kó†u/îò½7—/wóY$ßFviù$Í›¥ÿãÿµKÏôûRÉ-Ê1üÃoÓý/,Hÿv®Gk+±k)/¢ö½Ö?—ñj2ÛeŸRrmýè¥uÿŠÿ1GÙúJY¯‰ýA?~øn[}ÿªñÝG)Šñ¦w‹ö»HWrhüeeÏÂvlýeäÏWßÃý2îOc¸ÂÕªýšB¹zÿ„*ð2D­A¯CÒ´ÄaãÑö„RO¸wâ(³„ñÅ:GŒ¬á„ñá'„†NŒ?ÇèÅø2„¯Qü:¤ï¼Ô¾Øô˜s‘O)3„­“¬îQ‚ÆÌøsŒø2-ůCѼÁáëì9wÍø”2K(_­3„­aBï“"ƈ?ljø2*ü”I¼ˆ¼èQ6‡=5¯“ôo%¯µõk¯±÷o1ou÷k+O8ÿ9.Oyÿ(&¼ÿa*ùaú«†ßú÷aˆ?Û~sú£å¯“ôëõ¯‘ôë…¯™÷ï±o÷k»o<ÿy²o8ÿ82¼ÿqªÿ¼qúÿ‡_þ÷aˆ¿ßóú÷õ/ôùý/ôùÝ/öýùoYöyûOxý[:O8ý:2_¼ýs:ß~ý[þ÷[,Oþ÷I¬oÿ}[øòÖ/‰ôúö/ôêÖ/÷ÎòoÁô¨“1A(SäBqQˆ9ˆÄÈA„<ŽSà!¡8SdJ„Š9Eˆ„ÈA‰x8Ž`‚1ŠgJ1ŠƒXƒ„Ø´(X*B‘(-£á(h($†Bä(äjˆ;–=DH¤-HA6x„¡!)1„ŽDŒi&GB$0H(K„‡%ô¨Ð8…h…‘ˆ+(‹Aˆ)²²’T$™ò$Hr!a„N²‚ UžBŠT4BŠBŠqDáHÁZ‚[B`DˆòÄ),‚#¡x/çêX„Fâ²HQ‚6˜”A)ã…Øa"TBHÍÁ*U´*Œñ!Dhðˆƒ(N8iˆbH%´)Á,ДAŽ:"X!JÁB‚GÀC) L‰äÈLˆ,á„”‚•’ɤ„)(ñ"ßX5|H'Œ4$¡¤’G$.ˆ(O(.Žð•(ƒ¢D„¸£ô„!£ƒX$Ò%!¼k|<‚˜&:X$Fq" މÐQú(BH(½Ñ€4’BA„!ÂdŒÒa8A¤h…!’H%¶(A†i¤J+AïíAbˆ(F‰"Î"M"š’H$–¤4•L(†„"•Ær(dO„Z„ˆD°$!$QHƒ2DjX…¤‰¡…¢¨‡„LáHC8¢‚M’ R(‹8G„„*,£B£´ˆ¨#ÓÙ8µ.H“RÔh²xô!,hdL£Ž6<òL†³èU”‰Â(‰’8k$ŒNÊA%¡F³8EOâì‚Ø$ØDãB8"DñˆR0d*$šFEB¸Yê‰1‚'+Ža‚(ŒHdc°Az„¢<‹ƒvdƒ6b^B¨KM¡(ô:$¢`…,DHdE¨²ƒ!ä„(A$N(Kˆ„q¤Ø„˜¨€„Ô¨‘pA¨ƒ"ŽAG„L\"á"(A,1!H†™„Ђ¢¥ˆ‚h9ýŒDDø1‰b)_‘H2ŒB¤$*¡HD(‰¸!B*/‘H’ )¡„Ž(ÀQ*ˆ‚‰ªàE„x‚GH‡HÀ M†F–ˆ(!"‘ˆ"ðGr 3Zf¤$,ÔˆÆN(è/„8flùbA/DaˆldÄC¨#tbt:ôL8DN¸˜ºDóA†´ÄS$†²$álÑ$ùHK*ᦌtAX$Jq‚´4j-)œ(«8D1(ƒ™š‚¹'œhÂCô¢HRF¤¢K$‹,FÈh#‰œH)¥)ì8Ì€qBŒá„„(‹AË‚!8Ed!„K‹HL”(ÌD#sˆ2ă˜f8J’pÄ‚!$ÁJžLhJ¤‚’Dè8BÈJ¤IÈàB ¸àD˜H€¢„:dˆ‰¤ è!”(O§‹ƒ4$‡40Z'„K’vÊ¡À’O"41E‚4&N$€–bƒØ$´¨‘D”J˜1Ž„/B*˜–L³BJÒ„ƒu‚¬BB„IÔ!‘†N(ŽBˆ¡J±|&È4Î(ˆI¡(qLœhp‚dD‰dB+h„(‹H,h…‚J‚ÈÈÃC"$BN$ŽJ( ‚+)AƒSBŽ(LC2(DBŽ$+B†ŠÁBà%" ",ø"„(DD‚0D‚ÂK!+X¢„0ˆEB$1¤È‹„”$ƒÄD$‚THR‚°aH?¦€b!$R(AJ˜"A*1…€Â!B„"†’A,H$Ä Ö°‚D•A*4€ A0A*%BÂDB&J!ÈhCK!ðR$hœ"$²¤ƒR% Â"2($œ¢hHX‚‰Èˆ4A’‚,aH&ˆ(ÂAD‹D dAÀ„J‘JÜ$hÈÀ$#8Ê䡉ÈDHMIL5‚$HŒ¡D˜ˆ-Œ°y0Ab—$#)QAðBà*äZœBÅHDMH&%”&Q!#‘aÐ!&¡¡`1A4!TEÈ!M‰Ž‚A!›ˆ!™1.(%TPRàB`hƒI*!Á´qXB‰¤AŠ"H±ˆ‚,"ˆ"8ACIJDÑLÄ"A§%bt$GLÉ‘"m6Cè$”DF2FHA^Â@‘Œ!4¥#ÁG…‚RD,qD„2’N " !DLˆ O\G¤P!„BŒ!²B˜D"YˆÈ!ADb†¨BAbˆ%2!Žˆ%Ò\JP""/ACD$OV¢K#1Áª„O„(TA-ˆ#ÁDE‚äHBhLÆ$Ì3*!"(!$H@²Dx%nDAETÁ"OHÂH¥Beá$ˆ!-„$D`xPBÈD,TGB®Ä„e”AD!O! „µ‚D‚(†Ô!„XBJˆ4&°*¤A)x!‰`†`d„!QPDPH­aŠDQA4K‘‚h€$d!ˆ`DX(Ï…!+ƒ$&2A¦TAJÄDH‹"…AHÐ!‘Eb(N$@äŽ3ù„!‹AAI€Œa""$b…2H‹!(8!ŽC"G6„"(€@T#B" b„(¿NA€Q!"@D#!",À`‚22 ((A€G‚!!2"€ „’((€ÀÁóV!‡CIÆ!ka-R†’(]RMXIq„h„ÔaqD„B8aIø¤ANa,âtbECœ"¡oHÑD䍯,S’EOBäátÖr„Á|ÒTbLSD^,p”Ú…UA &/E¨E°(ˆšƒòãiðL8UrAR!NŒHŒ8E±$˜fOBød«ÁLT2ÅeHA‚1!J¨Šu'¢'ÈGC%8"ø‚ÃñF!É¢X%†æÒÈó…;;;„M˜Ã)ø„Lˆˆ´$è"—Èžs`‰$È"Í_´ód_¯ôZ´á´õaï‡øsÌ¿+ó„²oCø6¤/)óÅûÿYöšrŸ„òEmŸRthõiŒÏõ¡[®ßÏü˜?˜õŸï1þxˆ?ãø¹2޶>„o#¨?¼û_¥ï}sküe)ŸòLe¿Æø³.?üóäϯüXùÂÛïq÷xˆ?ãüù2Oiº&ø"’ojò×ýŸyöšw·ÖOÆÖ]Ömöl‰ïóÆ:îÞëÁ¯­ñÂÎÚ¯þªÔp2ÄA§CMA£Ñ6-aÅâ8WO(S$¬ó$"¬Aöáž#qaìBúsL/Bú2D.å¯CÔ¼ÄáëAü„sÕè(ôÁ:G$¬!ôá%taìDxsÌ„'C\ü:4MÁ«áë™-aÁŽsׄŽ2A­ôÅî9ƈ7Lj'CȯC’Ä£>3¼=ýïsô{}ï1ô{]¯ö}ïöÿÏ8ÿù:o8ÿ˜2_üýù:_üýùþyøå?Ÿ„ø³ý¿…ø³½¯1üù½¯üù¯þý¹ïQþù9ï8ÿ¹8ox¿¸óÇÿŸó…ÿŸñ§ÿŸ‡ô¡Ÿ†ø³ý¿§ü±ý¯3üéý¯1ýiݯ1öíùïQ÷é{Ïxÿû:Oxÿº"_üÿû*_½ëüåÿ·ÆOþ÷iŒoÿÿ{ˆ/ï¿:üúþ«Á¯ï½þþúïQþôeB„H!B¸â8¡$´A3„2G&4C„ÈAÀAÀÁ#á88Q.Š1„-A%Ð8Ž@BDBÄ"A&ü%ÁKXœrDB¨%8¤–D¬8‚8“¼="—DpI§LÈR&„DèD¨AeèHdˆà"±‰—D"…!4I"‡FôÔP’N’ŒŒG© !ðŒbAÆ:D‰F‘F*1‚O‚=X)ÈØ÷ëã$à1A$F‚‘`A#ˆ¢©('TŠa1F„I”ƒDN2AB0QXaD 8!&!lQB¤‚HDb”‚#Ä"À$Bˆ!L‚èB’Ä Ä$HB,¦Ò$`,È-˜óŨj8ÐB,áH¢Èˆ/–(„4$¨ÂI‚,ÈJ"­”*!(|"LŠÔÁ7‚€¢D"I„ˆ$’H¬¨$‹L&( (@¤Ÿ$$ˆ2D*$2Lb(‚¯$BñEx€46(„)‘2 ð4‚„jÂD „"„D(¢A AƒÂ4C´H”ˆD($ŒD‹JM8¬Ž!1Xt†ˆ¥‚L¡‚^*\"„a„Df1L%Ȭ`0+$Ϩ5è9¡I"±‚²(QB/Š4"I¤XŽ®AKq¦˜"(ICù„(((KJLèÄ‘"¾LŽ$ÔB¢HL‚±FHI"$²Äì&y(R(¼¸æ‰ô"NˆŒ D"›„'¦£FÀhE4!ËD'‚Iª‚’‚$J2hÿÒ .(H (ƒ8„0AI$„(€ ‚ &4H (ÑÁBÂ(ˆH„È€%… L"D(DI„‚dX!£á=¢Œ¥ˆ,ìâxR‚²¤‘H#ÃÂH§A(iáˆt$DÈ*‰ÈB Rl¨`‰ô°,a„N‰+†H„-2IÉj‰ˆE|8@ÈMŽH€IÀHC¢U`VL&”E"†*•HI²Ñ´äÃ$†²¦ˆj¸H¡B dE.ÔHN¤J h‚N!ÃäÈ4 Š)‘„#fHf„8d°¤¡–hHŽB$ô¤2©lÂ+XÉâ$+,‹¡^‚Á§>$̨$ÒB‰ž¢)H²HÒh54D‰$2XbGˆ(bI!˜d"ŒeJ‰Œ"O”$ˆƒ”D@(5Š‘D€‚K%ŒA¬”À(@¤C!Œ¨¤ƒaˆ(-È„A(€ŒMˆ"Ä(”2Hˆ è…Ä‚Hòk:$TZ6Hà$+Mñ()È4)HÄŠ.TƒúBD ´Fj, Ï‚ Ïx(bKFx¤"ŽpФBK/F„„²ThBÆÑ,á8B£¬ƒFÖ$ªƒ˜&¦HúH„)áÄ‹BÈ­†â„3Ä$NŒNÏqpH"!¤àDÂ""(Ê„BS2HL(ô$‹ÂÀX†!h"R¦"„ˆÉ"H"éD0H†"„2‚FH¢H!Š‚„“„¢Àˆ$F8HLD„b„HK¡"ƒA!¤)Lä„ B¤HBAŠ‚)E! B$ €´(A‚ (PA*($!ˆ€’‚"Cˆ€&$‚2Bˆ$‰Ò„9ö a‰$!$`D€ˆ¢!K$ˆF(bbG„‚Á.„hƒ"±‚ÁA)"¢d‰h$ˆ (#‚Ô‚Dà„òB ‚Ð(!ÁÈ"*$‚ª¡àB9HðBˆ„"”(j!¬(`žJ(HoXKEi™VAÐ!@1Q@qAh0%I‘ˆ#"¡"àÐRAA$˜&HA™XE8ƒ$!ERL0C`T„$@vJ¢A.±£Ì!T«A,tÃ"ÂA‰¢x0$@" BHT‰ØR˜‚‡Š‘D…"8$  b@4"(­".A‰HÒ8„Â"ŽA…Ib!AM‚AEÆAÉTA(ˆ…ïU(„á„S$f(A!"@#HM"P…A@(¶AA(¢´8¡‘+áB‚A ,ôE¢9¨•$ì2Të‚D+’KA(CXAYQAIÂ(@‚.ÓÓA‚ô"R"‚@bDÅôA,L!2R„"]Œ#1%*”„H A!ŽFŠA¨ Qˆ„äEЍA0°B2†„¢LI¡`H"5(B¨‚)äF*´2)RD¿µN8"Vb F„AôrâcW"‚‰‚¤´XB‚qA(*XBˆ(À!)Ü@T‚£$H"Ѝ„¢ADˆLeCÐHVHÈ$,±ˆa$GŠA"ˆÄì’„$€ÃAIa†"!(Ñ…„€%$"P!]FD‚P!„D@Q(€$XBB8A©¸V,dˆˆ"ˆÀÁ‚D‚L!Hd(¢`h@h‰ A !„‚!A@ƒ( ¤`D¼>%"RJƒQFÓ$‘šöYÓD±aÄ?¤¢?%@xD·D½ÑþÑt‚÷L!Š2ª~8,Q!À„BˆáFhab†ó˜bŽCŽ$‡XDÂäq,!"¢ÄzøDE”ÊH(D/DøÆ¶ׄS!Òƒ!ñ!ˆÄ<=J.„"<3ˆ#HROÒ©ò…2C(h*Ša#«XÁ)IÔC¹ˆáØ›ØAIDQ$zX(x•xÂ"U¡Tá5XB'A.Åq"ÄD/QÑHfL ™äDÒ¨ƒB ކ*ÂÏCrÂr-C‹qé‘b«A(Ir’†bh?!ñ”Eb‚Vx¡Hô!ˆ>X'AHQ‰”HH‹A†¡Bƒ""tDd‚6x!hHF^â?1Ò62%18)¨!¯(êI×…b(dC¨)ŠbD†^ÆôGAEYÆ)ˆ|´x!‚¸òúw$Ÿ$ó(]=R%zOÒ÷„FûIEë8M’oBú|¿Móˆ&­ÉÞ6*Öþ–—fôÍ&¯‰ö$ÍW,¯ˆåÒþ¶;§¿Rt¸÷$‚¢?†µÏò(´±ä?qa´^ò,éî±dß.rŒø¦O;[„¯ˆò$Ék¿Cñ}%yÓBø24ÈuÙò,¶íM/:rDUß–¶ÒÛWýHÏ«ô$Ê)µDõØênÊ/":¶"ÿmü3wm-¿$ñ#CoáׂùYµÍÒdó”/qþÓß|òRa®š£òIÁnAOÌý~‚ßJñÝ4q÷ÚŽ“ý#wMîÌ¿Qùø+¦ËÑŠrKõBçOéq>tiáö¤ºïcùÉ"¿/õw/¨å¨ú[B?x&Μÿ^tÎþ„4OÁØV÷÷ß~ñÔgMŽïTòLåôÅÏÿQûO&ÇnOC߄٢üÈB^5_Â}BDói¢µ[ñM[œõcZó÷?koºýâ§}œk#/Jø²º/³õâ‰÷nÿWÿmOÒ²Mþ/%ïý¦Ï_çöÙÿ™ü‚˦uÉò¿y/Ûþ¤ãÅx"ö†´oêÝôÿvÿOòmeï‘ôdMŸDø_cϸþ†í=î—dÿ¹Õ’ü£j¿dúÙO»ö’µ7‚okã+ù¶Œo“fýû.¿nø.iÌòMuËCß»îéÿFܯ$ñÜÊš-¸¯l÷œ½òü×–ôu,¿%Õ¹ôY¿&õíK/êù:¶ob9¢ojÝSÿ¶O¿Nù'ïÕö$MßDöIáÝò²û>˨ûL¿½í±}±¾ûtßýÖ˜Ïeëcø²$oIù'ãO±=ï·wÏ”ö$)×DŸtùþ[Oºý&݇›]¿œÝ²ôÁŽÿeö‰kOéúZ´k‹'jO*õ3ñoøÿy‚ßfüjIOÂöHaß\rïûuþ-ø/êùÜB©Ù‚Ùâùœfïu 'Cö:o´Áaë–ŽsÕè(ôÅ:A¬îQBƈ?Ç„x2ä|:Ô<>maÁŽsצO(³$òÅ:G"_¬Aöá#qaŒxs̤'C~:Ô¼šÈáë‰MaÁŽsÕè(“­“­îraÌ„?Ç„x2ÄħCI<èëANV#ÕÑ÷gŸÖ÷AŸÖõsßÖ÷sßþöŽóŸŽò†÷‹*_¼ÿé(_¼ÿiŒ_þiüá?Ÿ†ø³í¿§ü£í¯3üëí¯1ýëͯ1ÿïùïÿïiïxýý*O:ý¼"½ýí*_¾}íþñÿ—Æ_þ÷iŒßÿ[¬ÞÿåßÞÿCŸÞýcßžÿaŸ¾÷Œó¿¯ó„ó¯+òÅû¿¯òÅû·_þkøä?Ÿ†ø²ÿ¿‡ø¶þ«Ã¯ï¿üúÞ«áï¯ûä¯úO±8Q.ñAÔ(Q,Iá(Á#á8aATAPA(Q&4qaÈAƒB¡À#á8‘"9(Q¦#q„oxÐ8ŽB,$À"A&&Ôñ?+E(„IE8FÈ"G„rD<’(-D‰’ƒxRTHhDä&¡B%ˆdØ%ø„B¤ŠBH‚Â…ò4Â8!ƒnˆCá ,Dé(D™‚ÂĈC¤8ÇBбHƒ6„Bµ‚Ña´©ŽÀX†ô–— ˆ¦À$$I¡‚#`bO"!¤aDBÔ4ê‚…8BŠT$0¢$À²I(€Š3D‘Â*Bâ;!ABAN”*‚aHB*$2V&ÅJ"Dà4ØÝ9Mpà CÅ&„D±$ *(A„2(LÔ)ˆ!‹dG("ˆ¤N(AðbÁ "‚%8¢HŽ$Ê”‰‘FH*h( ˜Dh(fD8A $fhaˆÐ( i¿µ „HŒ…á"¤B5"‚Í!)H@T$$Ø¡aH"@2B@ $†R¢@D!!@@RhA"„ÄH%”H‰¸^FZ¡p!B!(˜"`¤ Ubˆ4ÁÁ¤€LQBÅ I"ÌœHœ1Þ aHÈAi²’‚‚³â¤DÒ²bFBJFDô7ˆD”†‰D‘2/AC8,Âd©t¤DHZÈF„´C(²h¨ˆO‘Q$K! (Iòˆx¡!…9R!v„dÒ>ˆ"#’ˆˆ&?7AÓ¥U¡8á‚qAøSŒN„!ˆ*$xŠñšD%`1TÀcŸ¨3A„F¨Jˆ¾„ÜÃIx"$ñHGB¯’J2NÎ!¥qHóDÔ¡%d(?Lá(qx<2)¨*‘Â&ÔRÒqH±D"8QŠ%Ô¤±„á,1D,å¨ä„ÅG³Åhp:ÄA¡kA£A<È‚ÉJŽ’¤Ž¦è‚ŒJønF1B!#¤„|£gG‰ŽI¡(OIacp!ŠäÂéB¡¯AȧAR(‰j(†\1C4„I¥hX'J&ØñDjÒ)˜BH…«!Y¤¡ˆ­°IÒèÇO31Q:OóöÄ7EŸVñˆ²)9’†ýI2«¨¯ÑtÒwa²HòHÍ/S¹s´ióˆ~î‹94E¨ä¾ºüŸRóœ¦i{ôa8ßiŸúï‘üÒb´LÒœüR?BõY4ÏéöÄR7%¯¨õ¶«}²9ñ9%i’¶!Îñ‰fÏ$Û¾uÂãRôM!ÝÉ?ù#UË4Ï©ÒäÜB¥©üdêml³Ô#ò]6eOô*Ÿ$õ!AM,/ú{ů¬ƒ‚ò²Á?¨óI±Îeo£¹<øiÁeOì½nø›RŸióEeMˆ/¬t‰òaq¸/Äû;…§©LóU”/S|—þIuOþ¶JÏCøiA/òäÚïCøëVŸiòeuO¡é¬÷?vÓ¦ÛÆy«õŠŠòœ/Sô“:Ÿ=ö”#o§}>õhA=!_¾ô?•¿&øÈbOCÏØ-ʇ(~4MøûIók…ô{"Ý[[?ôß¶÷„û/Qûˆ/+ò/‰ÿÉ/¶ùi’ß6öI.I›fßRóÈ{þ‹ÆûË&׼΋?„xËòù+ž¯-±?‡ù¶"Okúè/“}òû¹Fß;ÿIOÒô)Dß÷œ[ùË$Ÿ¼ñ™之ñ©?¾/oûf/jãjú–èmM¾O¿jµ­Þœô$LŸR´¼öËOãý"ܯdóœÊ^š/„ùÊR{=âü÷iãñYRŸ´ôI7¥Ÿ'õ­{޾«¦+“/*Ë2?ö²Y¿oñé%•æ’²iôiÁ¯¼ãºý2Ùèô‰BŸ¸Ü’ü£ZŸ+õ©+O雪/Cù–2O)ûC¡oÖùÿFŸSóL)O–rmôiµï½óäï/Óü“xß)õ‰ËÙ7ªßKñ‹/O©ú¤/Kø’6O)ógµ/ÿùi†¿Gû\)O†rlõi$ï¼òõúoÂýº-ô˜Ú-Ø/¢ù¼GÏ¿'Ct:Ô46ì8WŽ2A¬³„øÁˆîraŒøsLˆ/CÄÁ¯CÖ¼ÄáëA–ŽsŽ2IñÁ:K¬!ôáž!ƈ7ÇZø2Dü>$OüBáç!aÁŽsÕè(ôÑ:A­?ï9BÖˆ7׈'CȯC’Ä«AèãA=~=ÿïQö{ïô{_¯öïöÿÏ8ÿû:O8ÿº2_¼ÿ{:_¼ÿ{š_þ{øá?Ÿ†ø·ÿ¿‡ø³¿¯üﯯüë¯þï»ïÿë+Ïxÿ«*Oxÿª"_¼ÿû*_¸ûþ±ÿÿÇô¡߯ü³ïÿÇø£¯ïýë¿ïü韯þí¿ïþ­?Ï8ÿ¿>O8ÿ¾&_½ÿÿn_¹ÿÿLûìú÷mÌ/ûÿÌ/ëÿ>įï¿üúž«áïïû^áO¦M“!$,eb$1sAØ”ˆ%Xиè8!ÄCD2A,2E&6A,1„/øAðAмø„SÐ44A$Ô$3E.LCsAüA…ôADOmÁ#ñ„RÐ$EM"CdbB>Ü‘‚°’LÅ‚*á(è HI‚Ä$B(Ä$È(Œ‚ÕhCBª”„K,)"84Š„âLL¤C:H‚#³Axž‘$˜(M"I)Ä8`BÄ"'ŠY8A2ƒ<Š„òAÏN@!)#!äA¤(°’J‚¢HBA‚I$ðD€d¡ 4Šñ$I¤"†d(2ˆ6$$(´$ÂDN¡H"J˜!Ö•"Ø¡DG&‚‰Fa‚D&ø„# †€2 H"db¸èDˆ!¢à"à(D¡,M"F£‚-„Hˆ(,¢#ªF"r!VOÂ!N%(D’L›H$˜D¦Q$ Ä!BN"œ8l€t„HD0$( ""0A„"H@„œ‚+"+.A@$‚(0BPR&‘HDˆ)’ˆ€¢H‚"…D¢(b"Î"BhB`F(ˆ€”B!€ò]’ E"a&  "‘#!HDHa‚HA  J(ÀÁL"ÂC‚Œ0%$fH!"Hd¦†Ä „  4(FCH Hèú$€$EQ„D€%T$$QDD€D!#’HT$@H$€„) ©øl½$!DD‚‚E"d(%ÕB4AA$HJ "RJ!‚€†Z¡ü=äB¤AMIQI‚¢(,$t„¤ŒŠB„1B)ØB´XH.!I8‚2$2Äk(3,„B…rB D9(’Lƒ’Æg"Š$‚bf*è¢*ìDhfÄJHlB-¬'€˜Bˆò[Ý$]"AÑ!RVrC4B'B(®aŽA'(CX(K¢S2D΂BÐC2A)˜" ÁÒA°"¶„a*Er„cŠEa(†åb’FDQB‹ˆ"DIÛ$2!BHd*†RÄ‚FfˆŽ$n¬s—A’H/„r±„A1„O84¤¢ELèb¢$DJ:A'DÂ>!*ˆ$B‘‚/3´¤d(K"KROb(A8DL“¢7nBNA‰¶(„”J)¨("A¦“Œ$¬ˆâˆJbâBŒH™”H©Š’ˆ„{'M2oS´ƒ5CRO–w3þá‡K1#ø¡ædO.Úôâ!FK!MÁþ3?L¹wúbmE;˜?%è!Ö6ô§;<^Ëk#+NýQ&k"Oý#Fõ5!]Á?òã•_”Z$_rô‹”Ø1ô…ãÿzKqaåhú"¤gH_Ò~Eÿ§¥}A¿*rIÿa%]A¿zKmÆOhÌÆ¥xAè(äbü.¡c‘$öu°sQò!uiò¶?Wå%h(WN/XváòA¡OÔ&ÚFøa¡/ô„2gK;5$ÛU®H/!óA’rü†boKòSE/'¨9GN/Q¶3{ÃóÄAO+ûf…N¡?ô…3wX?7òaË]íŸÔ3òA‹ÚÞü/…?\öc¢†t!ü†á·þ_ÔúíAý§fõA)¿ô§?FøB®ÆÞ„”Ì-‚ÆêÒ¼-ø‡54orý£t?dóES-C;U;vïsý¶wLކ&ö¦‚oRübçdúEaoôD%LòÅñO1þ–w?Lýs¦_1ü’S,½sø1Ççoqöô²–>†k[oX÷âµ7g$úa_DâT²Åÿ$Ó_xöŠì?ôÊÊŸ8ôÊL?´âjô©GkŠ„ú"†GjoBø#ÁïfúI¯N¯ýaÏDöI-ÔòãÆïÄüÆ*O¨Ü(üJè'¤î^SÎAoS4S?%ôQ/t#òwFqþ¤OMñ’–/aú„b_Xö‚'n^oô$aWFvO7ý$ÑoY¶³ùCÒý’C)ûEô?vÿ„oMó‚´/aû„2{æyüQ–?fþfAOtdtaõVÂ_3þ¯E¿¾øAÊNË»H¯ºòÅN|ö…¢k.'H-&O(þ‚i¿HvîÿáLßt-thýáMÿ.ô¬Æ­ÄíŽÎJÎÊ©üŠ®îN_¥'CA'Co46-aMŽsSä(ôÁ2K¨,¡Šn12F*xs¤ƒ'C>Á'Co<ácá–4Žs[Ž2IòÁ2IñÁ*ñã–#sa…xs¥ƒ'C|:Ô<¾ÂaÁŽcß„â(r„ôÁ*GH¬†tá^BÆ*xcÌ„'BȧBIŠεØS÷6G?V÷A?VõsV÷q~÷„Ó_ló–ÓOjòçÓ_fòÇÓWd?~Eôáw_DøóåeøóåoqüóåoüóÅ/1þõçoüõwO8ýç6O:ý¦6_=ýç6_>ýÇ~Gä~÷E¤/þW„/nþå¿îþÁ¿îüáÿîþÁÿîö¤Ãÿnò„ïbòåË¿æòäË¿äâþþK,îoŸÄøæï¿Äúâî©üêÎéüêΩþîêïBülæ˜IåBÁDDäBHáBZ(M+¡O8R‘$Q&aB1&saÔdB%áBR(m+¡O(R$ŒR$„M"Ehb„&bB%øaŒ-A‹‚!‹¢!‰’‚©b(‰BRˆ$„,R„&Fø!N“ÆA8!B$X4N$bF‚&f(&„ä(5„)"D±DH±d(„B)Ì&ˆ/D"È$¢DBŽ"Bâ°!œF„ HŒ„Èl)Ä.‚&'JJhBJh®ÐÊD‚H¤`ªoF /Mh „„1$…F4¢(ŽÆ)4Š‚MAŠFÁ„K$H"ôD"‚#bLI àH¨$9H ‚²!DŒ„$H8AI¶‚RˆN†A"#J,4!"…(„„šJ(…èH H-HÐÚQ:d(b,!‚.ˆ(‚(B*"A°BˆòÁH†¢a%&ä¬HÐ (C2A`z¨†">€:‰I"†iŒR€…ÁˆŠ†ˆÆ"!/qF2â!ÂB#„QPnˆ"(dHF‘0!BI(R!2‚,„ $A&†.$Ê‘$F¤RH!ˆ"H!(ˆhA¤æFCB™’DBA¤"ÄÈ!#Úq?MJ•"°BAá!„‘!"®`JH‚°4B(I8ÂÅ$ˆB,¡(T#zˆ1"M„”k$K&„2$0¥#‹Â’‚H)¦) ‚™’$EBÄ*JØ’&QƒrHT¢„+lpÂ⤈´‚ônå$ŠB$$@1BL(!( ÄA(H@"‘„R$˜@&D ! Š4AŠH!(LŠ (ÈD Hð!os™Â B"ð¤B`H¦€n(ÈÆŽBEô‚BˆPD"pa„RE`È&„ˆ€ä"¡Hà(fB¤((DP„ˆ”ÈH°AP"†B&dˆ ¡ϩA1*¢S1B$!”$ØBáA˜b4JR.$ctDbSB!üB!„!†"ôB#èB¢ˆ!n$)¦¬DLRf(+ACÌBb‹„djbª4K¢(#H¡‚itŠ$êB‚tH¬âŠ4D(2Ì,,4ˆÄ›¢D$ND†bd(€r„¢dD"¤D!(MBH%bF$/( ‚J"JH„’!C$qÄH‚`D"‚Œ‚‚4B(A,XD‚D8„(CdH€hL!ËH€ƒ¡(F¢!#$¨$A+Ž2J(rA2$B@ô„Bâ(hDÈ#ÅÄ,.&A΂àf¤,°DB!d*K%†2B‚“„èät¨‚"(¢„‚h…"h‰ÈÊB#¤ˆ£¨$ŽÔc…¨HB€D¤8D¨%J2HI’A" Â0†F‘D^¤`$(A@"ÂAŠ#(F¤(bp$<Á@"Ä-ŒI¤¤"L(HD¤„b0èY1BH€tùŽRƒ%ÁBDJ(Á„"D1DH"$ˆN‚)"ÀAIˆ!Â#0A ¦¡„€aˆˆ"D„# &…,$ø³8N+#¬D#’D¤„è!”$I‚4GTJ„„ +‚aF„´E¢‡ALF‚IÃ!C$¨„‚B@* AbAŠ.˜A†Œ(IRD äHÛH,!䄜B)HñõÕ €!Aˆ ´D(„ ((D*€"d ˆ¡B€È"€"A4AL 28I#(„Á¨ ‹ˆ!(L$&„ƒŒ5Ÿ dABbJ(A¢(‚(H0"ˆ&ÄA@ˆHD„()”aˆ I$Š‚"D&`D€DÀHÀH(‘† ‚ L&D†ÄÈÈD‰ HÉ‚ô$¶F" Hˆ¡†C$°T¢($CBC$D*„¡ˆX1I A$0Ä"B†H’„ƒ†hŒˆ€$’¢QŠD€]ˆB¢à81ÅC%E$4T‚Eh’A$¢!,’€K8DE","(& (襄r(˜2À’„($K$  d &h0‚‚3KˆÙA‚¨„$#'&„nD)@aB!(P!Ä!’‚Ž!JÔQ˜‚`B áC’AIØ”A&A†hŽŠ\aH'*D$H)’($B(`ˆCNQãŠT@Q$†2EhD BD!!!P$`$A$@4B+‚@!ФP!A$B„D!! ¡ÇE€ Â)QB(@$A$$@RB$DA@‚!'B !AAFR(A@F ÀÄ£ÃA@qD1D,D¢(‚,b)’DGBt!ô"H!)2/B¸ˆº!k‘$Š#Dâ(aEq$qÄaATjhX(HLœB„E˜ka,ŒDè(D’$°„äD"f¥È#îˆ ­„¹ˆˆöùª$E‚ra+„zõFDÔBAáB¸B(T+$JöÄ"GBCedFaDL!ÔB‚¼"’FŽ"G4A&8„N*Šh’Ž„Ô¢#‚¨Š!¢+¢yÂAé‰JÒ¤²D"äD(dLJhÓñDAaB)g(Šâ4‘$HA(C´2B/H¨DôRBäBE¢-h/R!K8вE2Î2à*dDäD¢…¨3R¹ÂAH†ø(¤ÙØDqEbJH#‡@E#‚¥´ƒ’*(OÓ [n2Ot\!Ä-"o?ô';ï…dk+ªDØa4fOîÂEW_þ“!?]´Äø%_rõ“EÊØ1÷%Sôó¡Åc²²û!Åföw1kI?9afK&Kâ?òÒ_Z5_òôƒ…Ÿœè¸ò=ó™xÃñilò†¨)ø!Ätú‡A7¦vß–òEÉ+&¿XÜŒöÅ"G|§ˆŒì,räò®$ÕcòQ"WMBFÒ#ôC7kBOMÑSöb‚*yÔÔR¶#øcÃO2øÆBm%NaòDÓLÓ"â6üµeQ#NƒYöµXÕSòc‚*ø„$/Röc’~[xo:yud?ö%³KñR#6ü…eŸ˜T»¬ü©Íß‘ÖßòãÅ?,‚úE„/R|âóa_ö‡ƒÇR”ÔöÍC}¥¿,ƪOÊ2È/,\¤Ž,GŽÓMóT#}tDV1NA=&?$×sëv}¶ñö´-¦.‡kJoZÞRÞcþ'ÂOÖUÖqþ%_6ÿ…w?YôÓ—_4ýS?öÓ³tÿ!×ôç¤/a˦ò—Õ?wýa_6ûa_VôA•_þó_xö‚d?|ؤüË;H?·ù¸æŸø–®ÿÄø"¦.&o˜ø/í¯äøé/϶ޟö$LŸVö¬H_:vÌöêÌ-NÆúH‚¯ÎÞ¢æ,=¹|ûbEwC]B4-C7$Aöq‡O#ýæ4/Iú"†O"øç'ΧlòÃ&gOòE$Ne&ø´cY÷ã’^žC?õƒ’Oeîcøt’oNó’¤/bù4óYö£•?wøñe_v%qEõA7ýµCJôâƒ$üHK?˜üÊ›_fôhoߨúæ$'J-¦O(ö¯m¿ÈvjÿéŒß”6-ÏÖôa6øm¢ïFøJêŽJΊ£ôJÊÏxö)Mp2ÄAoCÒtÂao!á–DŽsQŽ2A,3D,?n9RVJxs¥„'C|2Ô<>ä87EŽ2A,³$òÁðá#qa„xs¤¢'C.á§CÍÁ§>6ŒŽcÓè(2„¬2„¬‚î!ÆŒxcŒx"„|*”Ä¡èéÈOãÝsûvA?vòVAv/öe7oöå7O8ÿ÷6O8ÿ¶&_<ÿç&_8ÿçDzgä{÷e„/{ÿw„/kÿ6Å?oÿÁ?oýáoÿáo÷„óoó„óoióÅÓoóÄÓoá~wä÷e„/þW„/nþÅ¿nþÁ¿füaÿîÿaÿfö„ëÿfò„ãïbòÅëæòÌëwæþ~güè/_Æø¢ïwίjþ®D¯î¾ŽôêΫhïîÞvCO3A$Ô$2E&4AL1SD3qAÔDÔDÔmÁ#ñ„RÐ$MÐ$äbl1D#qAôAD#aBci8O(R$(EM"EèbèhÊ„!ÄØÔH„a†!G(BO(Dx„Bø„"Ehj„ŽrãÏ‚è(4‚ Ae´‚F´" ‚2+Y$b‚G1nA:˜F‚D*Á„#C4"˜!ŽD2(’D"C„x‚|‚øBà!ÜH$ò‚D!D#Š"<"hD"AƒtÄ2$ŽBŒÔHÂLó˜UÂD,7€a"‚2,x"¡!$D±!Š#„Òˆ".‚#!„#è‚€4‚ŽB#¤‰ŒÅ"B)$¦2" „&2D*B!âJ$L"($Hâ„>sˆJADA¢„ˆ"$%!‡„‚Ò!A! ²qB„ a" @(¡¬ð1d‡HÀa ("B"Id‚@ˆ$ÂÄâ„Ä%ëÂÐa&¡B€àK(H(‚fHÀ…‚(2BJ2„+B&$†(Bb!$"#$IÀƒB«¢!J*„hD†¢Bˆ('„BG( HqH²‚RäÓ˜Q20#ãA¢(.„2¢O6ÄaH‘„+‚ЂB¡ÊµB±B%d#@!&’"$‚AX!Ä/—ˆÜ "¨L”!˜ˆKF+B*T"ŠVdÎ"‚FBèÄbÂ_ž"HB0A" "0! äHQ*&ˆ0!#Ab ,ˆ ˆ@„$B‚D DŽB“R!Šˆ.ÐNàdAh€¨ÎBA„HDjÆ'L(F…„ „:І¤\DŒBÎD`H€r„†(‚V((b(D!ˆH.„$ˆ¾ÝàDCEå$Q$J‘2ŠšK"ˆ¨H†‚áBt! H[&Ž„`(+Œ #q!"¨‚)Ò!BŠVC""""&º¡6„+Â,¸H!è©Bx‚H"´‚+ÂÉ (I$4aÈ ²ªrD¨ˆJÒä”'‚ÂD.A,X"(2ˆ"„!"2AAH%ˆ „B;$JY"d" !!C‚Š"rH) ŒH¢ph"(*â\N"L„(‚„($ˆû¬%´B„D’QH#QŠ…C$Œ‚’DÒD€¤ÂL‚¤ˆ,Œ‚”$”$‚!¢®¢ „‚Ä$!‚n(8$Dá,ZRŽŠŒ‚„#ÂÄ(H"L+BH¨()¨„‰bÜ>a B"ÈD°!ŠñAADF$̇`(À¢P!ˆŠ!!Á(B‚…q‚+,‘$¢PH#JlĉgŠ-"ˆƒŠ¿Ö)„Ø!…bH€„&D€8H0Rˆ! ¢#* (¢$D ˆCÁB’"F˜A(!‚H#Œ‚$ˆ|=Å ‘Q$H#ײD„„¨‚EB¡‘ŠÑAL ‚0B@‚r"A+"H0ˆ‚bBBDbA™”‚°(‚RB1D‚¦ÁL$„‚QJ4,‚¡,(%aˆˆ€ôTŒh0$A ‚!$„"$$„†‰ÒBÒÉ¡ŒB"Ò$Š92*HŠJNÒFÁˆJˆˆ‚„ˆb†H… „`$ „À>ƒLid"R q‚1„H‚A"B‚ˆ.…-…€(!Hã$ÄbI‚!Â"$"„Ì(ˆ‰Ø$(ˆvˆ’$$(A("‡$""‰ È`BH€„üJÇa,,"!¢A.DV(€ƒ¨N„Jˆ©°Hd`àA" à1H bŠQ…DHÈDD‚„(ÂWDB*¨„=á€DD$”D(X!ø(ˆ)&¤aB)„äBá,„„$$ˆ&ˆ…Â!‚ ((BBÕaa*€TB)Â8˜„0H†8ˆxHTH€$¡£‚OœE AG!DXÀ‚°"(Bb4@BB,ÔÙ"*”Rb"*ˆ(LƒL‚‚HEB ¦)xIăbœˆ$‚Qˆ;‚‰˜CHER8 ÄŒ7G!!‚IQdAA$r!@AA$QD‚`Q!¡€€aE‚Ä@HD%ˆ¡O±H(€ HFDQA„0!PB%DAA(€2D$$@QˆPB'B"A(AÉBAM(@J "<;¨1€ÑD!$–+„ÊѲBš$iA”&fD&21A†!)q„!á1´„!Ä"K"CÒBá&8!N…D#†¬"…Xˆ ‰žŒCXˆD²„b¨A‡Vƒ>(‡D‡BŒ”Š…8("D¡èk(D]BDH”V’QEB(ä¨,(„ÁA£dAJ"$¬„{ASœKŒ!Š˜7C"#³2(¨Á-ÄHI¡UúDæâ!øx…á±ÑHÈ!#Èȳ’AQ“؈4…hErDrD+äÄø“"/AâDÑ"bX,¢(È1m‚kt¶&D”CqdH#¦B'"+H&â¤(H#è8t„aCT!C”CF2#‚T#æYAù.D¥‘-h,Ö!–,Ž!K(F²EGˆä„'"".L9œ‰˜A-A)’HŸÉ EñrGwh5Q-roñ'Ò?'óƒ×/aù&‚/"zCöFg'o3öB3DCô$á-3?m}Wò¶ÒoSô“’7%/)ÿ6C+¹sóUžk‹+3N÷Ñk®oõRfµEò%á?úS5_•òµÝÏ¿‘ùI8ñ-ã‘{KùéMhò†¨!ÊôÁ'œÚ—üC+—T])_üЍ¿ÔÜ„öÄ"OfØÊÈÈ΂O&ò޾³Þcö!&TU$^R5òSwO"ñÆV?qºbé#ÙgØr~#òsCo3ñFBoAòAa'O,õV´)²cùµg,ý’"$ù“gkÒOAý%/.!ÓEû2e;?5Ó4÷´‚gSfáö¥3UûS¢Î[_ÓÿÙ?±óÍZÒÿéý·Ö?¬‚òE„/RôÊ#Ÿ”Òþ¯ƒÝ-ŸöKaß¾ôO­½bŽ*M¬‹„/,ô„Š®-Û¤N4^·{DóAN?$óQ"?tûr—Oùw6/hû2K[osÆu?aö5ÁoÖTÖAv§óösoy÷ÓVmñ—SžQ?-÷Ó2?yç{ý¶ÑoGû’6ž·kÛoSýâU?Gù÷âOôdEtK,_9ý5÷?Ó}CÿœÒ9¼#}Có¸vú¾ÎÚÇø¢&®æo˜Ú_üâFþO¦ü'aEôiECúåãOløjì-NÆúÈ‚¯Îô‚JîžsÁg-E?BöB1ôC;Aa÷£Wk[OBëió2–k_wòR5dóC5GOòE$tÿf‘O3þõƒ?%ýSÁÓ?!øWôñôoFû’$/kñ´2}÷ž7oùq&o¶$rEõADo=÷µÂoÑýû³Ÿ­õXÃ?ýê›_ïä|ö*ïBz¢ô‚&O(ö/í7J§~ŸFúlAÛbOÖôie÷>_¢ún„¯¬ì¨ä¤¸ÊøjÊOâüÖÇp2ÄAoCÓôöaAŽsQŽ2CøÁ2CôÁðá#ta„xs¤„'C|2Ô<>ä87EŽ2A,3$,?nra…xs…z2ä~:Ô<áãÁaÁ8V…Ž"A¬tÁ î!ƈ?Æ„x"„|*”Ä¡èá|?¯=7oôc7oõa/÷e7oöeµO<ÿg´O8ÿ&4_<ÿw$_9÷wD{wwô¡w_Fü³çwO{þ¶Eþ–Aü’a_þ–a_÷„ónó„óohóÅÓnóÅÓNñá÷wFîw_FøòçEúòöoQüûöo‘üëÖ/þïöoÿïfO8þï&O8þ®&_¼þç.O<~çî~~gì~òeŒ¯zþg̯jþ.įîžÎ¯æœjïîžn/æH3Á$Ô$3E.ĔĄDÈADADOMÁ#ñ„Sð„AC±„eJ†CsAÔÄ$%aBEm#ñ„(E‚Ò$M2A.lBrAÜTÈ!Äa„ir„MB„EBØ$R„.†„x7(ÀMˆ@Ä–`dˆ)"$N²D$4%*˜Ä'A”‚€x!”"Ɔ"È$¨”M2ðD!"I¨BC‘ŠIˆ”J;"‡DJ&"ˆ.‚DJŒË$(O„Ô‚˜dŒ˜Cˆ"Fü¼^àHØ$FBl"Š”9´"LÖàBØd"„ˆR4Š(db,Ž„Gc! L$(u"4„§„‚)5AB†Š†(ID`D‡„*XÂI"TˆŠÔÔñ!Š;a)(Á.B T!‚+!AB2 B#ALÂ"JQ4N!B$"$E"#ˆYBtA’D*h#q)A!P‚YÀ-(F\FDÈ$'„(CÄA€ô h‚„!qABá(¢ÁCð‚B(KA$a @B¤X),~„‚L$AÒ$6A "A(L´ˆ°DL‚À$HÂAªDBÂ%ˆ$èD˜€tHÒ!;ÑÀJ•B$’A/Bq"(™a(HKBDÀ&JDd1"X@#aGbˆ!&„&†dB$/”XH«QT-ˆ"@„è>$zDáÄRFR„-(ÂL",´HBo˜L±ò"3„1B,,Jˆ„b"€ÂA#’DB†h#ÄbB( "°‚”!H$B & $€„„ B ¤HDI–³‹$dF(F…„!(‚0"ÂD*(4ˆè" ¢ä2À€)((‚ˆ)&4ˆ¨D…"hBÂÁ$@hB„`ˆSIp2±Ò¡%D)dH,²$L¢)NBBìB4!F1A#‚D/„$Œ”TCähˆAHRD"b$ Š‡„‚/‚ì„ÁI!IŽJØ$Z„D ‚A*&XAÖˆ¢„F È+¤ÈBH+†M#— ¡1°Â.€a.BHDh+((+Aˆ2D£!A)("”$JD †‚8H$H„ˆæ"aˆ $F…d‚\Ĥ€(„DÂÁNFI6Bà!$ÂTc*H†hA"DJXA*DdH`D‚ÄHŠ ŠˆâA‚!(¤A °a"8Á‰9A¡ÊŠ˜,L"¨†€Ò˜$bH*TŠÊHª„„JX‚nš3›¢¢C;!D~RD$"D("p"h %Q$:2hYK"L w¤1$À6Á"ƒ‚ÁÂ8TK$€b„ÃAM!*ÈH"„Fˆ†x)ñ:÷0&‚( „€„‚€B4$€HÐB! d!‰”$ˆ(@À(B.„#H‰ø‰hC&%BH+!(a ¢dà"ˆÈ-!$±Bq!¤A2D"™$IæA±á"dD‚$%‘(9(˜F¤!\B°„‚TÁˆBðAa„AÎ! Â$›Bƒh„„LJñbß`B€$¡A!€†‚R$(A`B(F(0D*L,& ( !aD@1 ¡Aƒ!(C… @DAD €$ˆH&4˜HDHH$Ž"IÅAÀ2(D$LD€DÁB" ˆ¦8!ŠPA¢5¤FD((D‘ H†"!XÁ¢D‚dB!"!&”J(!(!oÈCIAn„!0!0B"AC`D4%‘"Jè!$(9$Á‚R4ZÈaJ4C%ˆ"´" "*"È.aA(hE(G(PÄ`„@?šàˆÁ!-CAˆp!¡$&ƒB¡0„0€$µ$P!HD’ȨLÔ"ÒE‰FH‘$°Db$ D„ðAHH*XÙô˜ƒ$,F a!"D0‚D€„„"ƒ"ŽbŽ"F"h"HBÔ!¢¡D" BLJD®+8„JDH”BPJPDÈB‚‡¨`$@Fâ˜?ª(H(@$BB€Lª…!„H!†"$HàAˆ €E(H HLˆ€ø)ƒ0!F!!4L(ŠÄAA€!¨€B€„HÄ!€€A"‚Cˆ@€H‚d(A ("9B5ÁEDáÕÃEáá8Õ$ƒ¸E_fs!´!SaC5ôa¤3ò!L¤aCᔄK!C£X#a(I¢$ŽD-D*¡„:ª%ð$ÐV…“Ej8$$FR„(F'JÂb°a˜‚+B%ñ*Ä!)–B)’.O$‚b!,"n†#„XA2)¦B$*$HO,!r1‚#„â,hG`C‚LêAü!AEBF±†2$3ÌŠˆH„H"ƒ\ÚBДIOˆG„†IΣp„4"š”Æ)’$@‚  „bL ¥ð$!L<"á2LAq"´¢”j1„%"2B"ÀDVaôÃðÃÐ*ŒÎb!ŒöD(Ž!è(cÜ„b„„BèÆ„&Dˆ ™H¤‚Èð¶vðTO'qd÷AN2Gvo±³ÞQì8ñ&”+«O^Öeõ&toÑ#ò!DIöD;:?K´…þdGu–öƒÂ/4ñV#o+²‘ü#öLñ&/)úbÇv_"ö”A'-B´$òdá?+óñD¨þdguƒù“È/ñf#ωñƒÈŸæÚhô‚‚nånMbg<§ªÂÔôd¡·8?Úô†ÈW&GF§H/˜ì$²dòŽ´SÜ#v!ó$1CõBrãQ#·Æôt?&ñ¤„OHú¶µfÕERo&÷D¢O$¿–ô7f!éZrÄã%ö’/zrÆñôDq¶cÉ¢onò;ö9ù†aO+}7´Aôq!O"Æô1b?ù¬'§%Õ¡ù¸7oòÌ$¿ÖÔ©È¢_Èbr¿„܃ú‡+ï,ü'D’x#ùLÃ_Úô#H.ŠÏJ2Ê«DMЇJë,ÇÁ4OuóRU}B5á4ñbu=fuûd“{{§oiÃ2oFqrñwvbôóg_DÖAÞþd“O=ò÷EIÿD“ÖñÓC?)ÿb—/vù¶kø2–-öo.ñÖ§?vù#V"þaWBDÜ7ûfÓo}òûG¿éýF“¯<ñÛS¿¨ür¿N¯ï,òç„.¦LúÎ"o~økÎ?Âö%êç߯Æí_¢þDƒïnòÊD¯ÈüD‚§,«L¯Šìf:|òB%?&õCFsRñSRqævùdÒoKú4obñ$7oòRu}VCvEñda_Bô!Tté~sÒñòä_1ýÁÖóòâQýA·o$ÿ‡&/iû"´M‘O{òÒ–?cý£'òdAWDF4ù¦3ç}¯¯þÛ·¼¯=ñúÚÿsükçÍê_Hò¢†/bÚúŒ'¯~ü+ÎÚôG)ÏÖÝÆmϤºíòÎ$¯®Ü¢|È8ʯ¬ü&Ï?Ë 'Ct2Ô4¶ÁaAŽsSä(ôÁ2GB,!òá#qa¤‚7G*x2ä|2Ô<>ä8—%Ž2A,ôÁðáÖ!F„øsD*z2ä~:Ô<>ì¸vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȧBIŠÎj3Òsÿ6E?v÷Q?võqv÷q~÷„ó/ó„óo!ûÅÓ?góÅS?eñáwEòáw_Døó÷Eøó÷oüó÷oüñ×/þõ÷oüõuO:ý÷4O8ý¶4_>ý÷4_>ý÷zÿwDz÷eÄ?{ÿWÄ{ÿÅŸÿÿÁŸÿüáßþÿáßþö„ãÿîò„ãïjòÅëÿÎòÅë÷Îþ~oüáo߯øâïÿÆøâîïBüêîéüêΩþîîíám4$,åbÁ1³AØ„R*R(m+!O8R4BÑ$eB&aBFdB&TÐ<O8…Ò”!AIeBÁ1D1Ä-A…DATÐr„EEM"A&<=t‚‚G$h$ ¤I‚9Bš"$L²B‚†T,´ƒ`n ^„Eô¡F„¸8HÃAAttRG¦Q„†qBèAbLR’DˆD¨(‰˜$=ˆAFta8d,Š4„tÁùEÏ`B„@„!‚¡!&’!N$€ !B€a812€)”18…AH!Ä‘*a"(@Bph ÂH€„"HÀ…B3 !! !-$'BŠQ!€’$@!¢P!¨((ȨB)@Á# $"$P&¢C@˜"2„A, Dñœç€&H†DA ¶‚2BH "B †’”R€¡I* ()$˜D*$"(CÔ‚ ±B…D"D¤Š$Eˆ)‚T$” èªÄ|ó b00Ah96$’CŽ6hd"B\€¡ ’¢$ˆäA„2"*Ä!NAHÀB¤€Aâ„"’Bƒ‚²&H#@ŒÄ&4`ŠO-G!BH(AD"*‚41 " !¨B¦!€Š’B‚€"†"$À!4@€dHHÀB H#Äés`B I4HNA"È*a("( AˆA$‚(N@d!DÄ$B,¡lC¢L !(F”ˆ! „HˆbbˆA($l ,hƒ&„Hðñÿ ¦Žt4hBh<¡$C”D˜L‚³D˜5"D d,*Â& ¨…BHT&´‚#„"á"ƒ’"€"Aäƒ$"È‚HhR+J‰€ˆ àˆ@!DˆA)‰RQ0¦Àb!$”BM!*AB.Q C„(è ¡„!¤`"À($Jh(€ÄDÐ*ˆ/„£ BâHŒH¡D„$H& H ¤µ$H(!HH(VH&„ "R#1ŠÆB b†BDˆJ"Ä$`A(ŠÅ„`BHbŠ¡Š(„(‚N$ˆ€"ˆ.$`‚H.(‚DI€H.™CLÔ¢AP"$GÂ$!(0T"D*Ä„`)H (F„#ô$‚LDˆ(DVDD$¡L"!ˆŠ‘CDD¦‚B(IDHHA‚ðxŸ(;’( H#Ea(@$„(!$S4!EE!)A,’HJHD”BH ÒäKä‚R#J’"'JR%,Á"Š¢BT!ƒ’EC2¡JAB!‚¡DHŠà!r´Â"(AC'BBFG!"6‚˜œLr$DÆ$hG¨B(0DQ)("?…KHŠ@!!D!DDA,c!(Q$AÀ1GLD!!‘A*8ˆ1‚!‚%!-)dTd@Òä$ˆÄ‚@ÂØÃIDDehHLB#D4¡†DD¨D€$H!†±"Ä!‚0„D‚(€D‘ŒDa*b(I"HTB‚bP‡D)„RÈH„ÀHaÿA B( „#"!2Š12KPC!C$(1L²BA$H$ˆ$O"B‚ItBÁBc±„áŒQBKHD%Ȩƒ’&Œœ$HEAP,$NÖÃM!ÒB‚TL$á"‚!&8a)±!R‚H‚h"A*"1$G""0!"D‚”A@ØxˆƒV$($A4a@JB4!‚QR*Ž%$]"$.Àa€ÁA&ACBá(4AP$$2‘D€A$Âa.A`T y(1!( H$„^BŒÄ$”!A`*Â($F("ŽˆcP€($BB€¨…AH â(!5DH€¨Á¨‚€ˆ€ˆ¯Ï $BBb‚D!*„ B"Ê¡BÀèAÀ„€B`L‚B0A€ˆH"È€D@ (Àœ³‘D–BA\Â$tŽg†Ä$!áFyQÒ$È&VºA¸¸!‚„ ,Ä&1GO´"B²â±T2f%t‚ÔBbB,8BÁ΋Q<·(ÈCCAyˆaŒ h"Á›$…rÂìdb„‰ÒH8J%èBTȉÄhmÈ-Hðe-$J‚2AB"òA‚B0";H`¨.AA@ƒG>BÎK!F2UH!(;j¸ @èC,#Da,Cd%5d(òÁ„"À$#TJÄ„|¨"@0$†b"†B&(BäØ63%FÒ”BAV$‚¡2!n¤%$bD-¡e¸‚å! °"tQ$¢‚G'2Q¤L$Ä„NÁHÌAŒ›BG"M"I"(h"F1)|hRF‘nDˆ”€˜j.—4.aoDreDÃA+$_Gsö„Ç_rþ–4Eô6nÅ/þ5foñƒ¤MABöA„?+ò”G/~Vugæyñ‚ÃZñG&®4/8ý'óo1ab/)ûdÁ-s>f?kõ“Ot!ôAÄùÆS/ýØzñJ¯¨õʉ¯±ó?L¯jõÈËß²¸.Â$O(Ú”~nÙéò‰L—ÜÏ´riÝÙüÉ*×¼¯ŒØJò.H(ôˆ­H­lº;Ÿ\ô†¥m$w$NA%q"ôG7O|÷4T_Eñ–¦_bò$3__v–ô†&ÿ2AIbBdï:ÅuOBù†&W,NC-®&7\þCo!öw‚-¤?*R66þ”?hôƒÒ/’dVÔa}Âó¯äüš^w8¯±ñT¯ê÷‰/'¹IöM¨/bxáâ2ôM‹ÆúêN?8ø*)G¿Òö)¯§ºWDÆþ‚LǨ…øHˆ¯Úö­.?s 3ödg-Aw3ä6ô2QoWºSû—6&ø´oAãføQ"~ÿ6Q_XþS$_Tö„áç;´móÅwoyÿEƒ7,/<ô’ço7øw‚Kñ§†k“mâæô×¢{—mC_QûSDWROÜQùCÖ_ÈõSιï´ý‰J¿¹õè¿ï´ý'¨¿ìöíŽO"ú&„®&_êþm‹ï¶òOï¯Òöld_–úhÍ¿ÒüªnϪôªëÄ/¨ôèB/¬ún»ÃQcwv_4ÔtBrCóAC/RµgúCöO)êbñ6$o2ó¶&_eý…AoBsôaDô$D_F¸÷qóãÜ2í-ñÓ??ß2ýG¶Dï)ó–¢Obû—/kóÇ“_3ÿ¶dFdMFeø“DŸ¹ôÞ‰O5ü›X?9ôÊ©¯·üäfø¨*O(º&Úv¾¢öÈÿ´zæöKM.$Fñm.ßÔþƒdï¨´ÌøNȯˆôŠJ®¤¯†¾ 'Ct2Ô46ä8·Eá(“,3$,n9"Fˆ7Gx2ä|2ôÁ#á>–$ŽsYã(“$,“,n=BF„øsDˆ'Cü:$MÁ£Ááãáì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáL5W=goôcgoôcG/ögwoöãwO9ÿã6O8ßbòÅS?gòÕÓ?mòñ÷Eøáw_Dúó÷Eúó÷oþó÷oüñ×/þõ÷oýõuO9ý÷4O8ý¶4_=ý÷4_>ý÷{wô¡w_Dü³×Eý¡×oQýéßoÿéß/ÿíÿoþíoO8þï.O8þ®&_¼þï._<~ïüáç÷Æîg߯øâçÿÆøâæoBüêîiþêÎ)þÎîiüR_4HÁ"Q&A1ôA¨'*zÒ¸ò„(MÂM2Q..aBqaädBáBrÒ<O8MQI‘4Q..1&saÜt(T.$EÒ˜"G((E‚R$Ð$dbÐá96&QbB#¡$A!M¡BLš2D9™$1*§BQ,<%,‘E®'$ÎD(-$N$˜D:XA!J’ÁAI"Ô%X„ùLxR8ŒÕEòAˆD)ˆ‚ˆ‹‚I4(MD"„+ÂE:MBƒŠDüG4ð¤%„`!-$ •$>$H°’A(aÀ#!B""%¡$(H(Ð!)(Ä#”BG(™(°"Ld‚hB"aJh$B¤FÓ…8j b@D‘! 1!2A$DRP!P)@¤—BA!!Bò$m°‚ $A&$#aB€5†”4"(H"!"&#)a*! dAH&2Cd†$„,A(DA&ˆ„„AЂVáó—&#x”!C!'CF!€¢! 3‚‘$:í”D(NH@H$‚,r%ØD!4")£öZ“,!D A&L€€€$B0A&1!*bB@€",$@"A!AT@0H€@±ƒAð"°'H²#$Áa+Ž"Cà)¤DªD`DˆhÀAÀ"Ê‚"Žb d$(ä‰jH…€ ŒD"8$Î*AH"Ž"& ßKLaB!(B$$q$‘DDKB DHH†!"´!BŠ3#21K„D(,1$$#QB ÀH†#$áBDA"6D!$XˆÂFÆv1)aB,F U&!ˆ$!‚aBH"#¢X*C!(K c‘"Db I¤@B’H€(A AŒB¨$ƒ„ß_ @,!Ä'"p2A°$b.D1„hŽ€)ROHä"À¤&B v„‚$,HI,2$.„@"ä$„†B¨ˆ",æ26Õ=F`(`#A$€JÂLApA'$H D+D"AÀ!Ié#’$A$.‘cŒRA $LA\‡R((‚AˆŠ(_Z(€A"!B‚"(A (AP! !A1$ˆ"((„DB'BB„ (Ф6ï%"„tBÁ)“"h(LÂDLBD$ ‚CEˆL‚„ÂÁ`cLbBp6AˆC1˜@CE…V„AAC!‚ÂL!‚‚&·€)" ‚ !H)¡Á‚B1´.!$(A2 &”¨C¡$`‚"‚H B"*‚„DC¤‚#(â¶9˜HA/CT!HDA‚IÄÐdL¢&D$@D„âQF@â"ˆÆ‚ M`HD"PBV$r8ˆrÁŽ!‘à(a„ÄèBd‚ЮO!„"" ±APB!!0@aD@D;„AÀ$M"("A0EÉB1L(ƒ$Ô(8(Àˆ!G‚P„ˆE„A" à„ÂQ€“")AB‚‚F$"8a#!ˆAA€”QI(".AHH€<Œ„˜BM!HA€BAB DadN$…$¨!€˜BAŸ­OB’`!€a"$ƒ8BÂA”$(E‘",ö2 F‚¤‚6"":ÄD%!a(A(†¢¤`B‚D!*LDH\‚Äh€ŽBÊÅ àˆ2Á@ ![$¨„!€„HA($ 8Aˆ))HA`(Pd„" ‚)‚ˆ)òÂÖD „‚8Á0A€ØCXBˆA@`h‚˜‚!H€" BA†"(ì=»%±"M’8-$Šæ(Ò$¡$,±A¢$VA ¡†9’BLDÁáEÁ"ŠŽ3°EñAg"ŠQA#?œÂQD¡3Ha,"èŒÒ$f¨A ”$Â&L¸CD%‚”*òM÷àD¡S%d„7DAA-a(h$Mc4h J%$”î„D:ø„&2*ÈÁA((!Dà(“8C”Ž‘"HHˆDŒ˜¢e)BÈ"ŒDè‚ä,2HƒNlhBDâ¬7”#2-4\&AÃ(,O"E¤†DBAO8)<¸N¢4ItÄ"˜$7FÐAaR`C+BȈÜÔÈ9Èa5ÈcQ†‘$4—,Ea„t‹$/VèTÂ!D/B‚ È-()Ø‘A’qk4gW9´Rñt%6_iü!åoÓdã!òedyõ$V~'-7YÄDn¥/8ó•BH¼Fsvw‘²üB2gw7k;ë]Á,ñ"+«[Ô]R/Bå[æYSõ!¥?ó—A\ø(Vß3t“ýÙs_rt¢ýë¡MÉÅr"´¢úeÈ—4/Äò£M?¸òM!Ôò)Å?ŒrÏáÎz(Þ¬t‚øÈ‰"ìôªqCÛAÕGÓSsD¢USñ#5o$òÔF_3õD/Hz%ö47_FÕSò$J´ÖbRNÖžfaC{ƒwÄâ%ô’?xrâ¶Òôqo&ù$„‚o²gý#‡®G/)ø!M¡7S×;)o5òqŸÚö…A¿±ñMšŸÙö¡D¿˜”'ÿ¦èB¸Áò&aí‹_Tø‰E¿zúI)_ÒÙô!§§š$òHÎʶŒTª¤ü¨LÏÈö£Ç'_&×gõG'4'ÕGõcµoVëxóq†ok±"ódv÷vwy÷'Õ/WòDeYþ!Ç/VûÒ%_/ô—ö_4i?-ö‘ô4ûd“/Z±¶ú²O"ýòo_úV±}rcèSÒUÒ5ú!Årÿ•oïôÛ»ÍÚŸ¸õÛx¿üÚ­þ-Ë¿Êôï¬m¢M¢/ÚôÉï¤~mûH®½MÏÆöm‰ÔÞùþŒnëJ/¬Ú¤üˆJ«H/®ø,®#ÓròvD´ôS'5f´7ôWµo$ÿ–¢OcÑDó&61òTwYöevåV–a]uOùæ3g}OþÒK S&A-5,Ä3€I,cB@D$Dd(+AtA‘T#2„)4"Š‘‚@BBb#&R$‡0Ž*$‚‰BbŠ&DÔ„*„€O$„8B$2"¢c)iAdBA)#”#%„HÄDˆ„ìAÂÂIICˆ2…ÜÂH*TBƒB%B$B,BÈbgˆP„À(A@aBF5ˆD!(D@D@dA0Q1 ‚€(€a"$°"!ÈÂL)Èx€( F!b&$D̈%ˆÄˆ-(ÅØK#DD$$"2@%!"(ÂB&!j$$€Êã!‚‚¤!*‚B€AQ‚`‚@ˆ„È€ÁŒÔ ŒˆT(‚,",2„C$È¢“ (/‚ @4A€JÈ!ˆ€ÈAˆ (‚tAD@LˆH%A†Ap„ˆ)€Ÿ< 4A0‚ÄAC¢A0ÁÀB"!!„4B@BÀ>\#äQ„BÂ8M” (Z¨A±2%!Á! 49#"ˆ"HŒÈI¢$(H$yAHd¤„ƒÂŒ#Ò‚„„AŒô²xÀ$D@[†O’$+aMA#Ò$B²$RM!Q(J!4Ã%‚ è–$’„(IÂM1‚M(5è(A˜C&r"¤‚&”ˆ'ò‰Ò4’®A‰Ùò„"ÁEÒH"8H$T?ƒ!/#‘"/ÄdBŽClâ(‚M"D$&ôÁ$´A˜"+¤)ž‚Lì!Þ4è"8$K+O´¦²¤µ†Ñ$2¦AkHÒARa,Hç±ìaÈÈGcœÌ8Il(G¸†x…!X$Ê,>‰B—$FT‹„ƒ„ø"ˆÈ­A)˜"¨õIÒC5rGVµRsdu!ò¥ö1ü%ªò$2[G{aKbN/3ò%BLæTø²7_(µ§Vtf÷?(ýR"'t?jóƒÒ3~bb/(ûuâ!ô"F/z÷‚7QàRú’7(ñƒÒ¯çrN󋻨¯¥s~÷¡V{ªÝ‰…r"¼¦úEÈJ/Âôê/Ž/ÍKŒôh¬?ØòIŽÅf~l7Š‹ÈN*Çf«*óša[Š?SóFJ´ñ%g&ÎV]aæô6¢.'Fvgs^t)ô%¡&å$î+•e_Bø—7O,á$Ô#ø³olóâR}co&ø¤?/S&ü§/{õ‚’+!]¥6Å‚/)ÓgÖëú»ï¬ñJjß¡ù›'J#Ý›ò.ŠOB8Á-!ÿ†ü/‡ú¯ŒÜšÖÌz*üHË¿˜Ö¯æbø¨(GŒ/¤Æ‚ÈbÎ/NñV7_dÕGuWqRñqr}dTúv…o{ñå6Okò6$OgñD7Ow¶öå'WOT–å_qþR¥o=óÅv?(ÿUƒÞ?,µ¡ýwƒo7è[ñç–kƒo!úòo~ùt¡!ö%…/SÂ%Yú5…/sê]óÏz›øÿµxØóÛz¿hß5ÿ$‡§ÚÿŽÚ&ú$†'ÎïžúFéýjÂüj-NdMèOÂüi¯OìòÎHï¨þLЇ¬¯Œö‹ïÏ=Ù-5otóeV{A?5ñBeÔGög…ogü4¶Ob{ô6&sóDW{SRuDåV¶!ô%En…/ñæ[Þ?!üÑÎ?LÿâuúVäž2o(û4¦oaø‘3oûâYcR.%YÒUârø²5O>ñïØ_!üÛ/<ñÛŠ;¥7ø$†¯Ê²†ú&‚Obø«/O<Þ­þ‡f‡ÖndÍhÍl¯öøá&¯ŒòîÊʇ¬§Œ¯¬Ü¨þˆjp2ÄA'CMA#ÁacÁaAŽsSä(ôÁ2CòÁðá–#qa„xs¤‚'C.Á'CMÁ#Áák!ä87EŽ2A,“$,nra„xs„x2ÄÁ¯CÒ<áãáì8vMè(ôÁ*ExÁJøáŽ%xaŒxcŒx"„ü*$IŠÎB£Òs÷6A?w÷A?wôavöa?~÷„ó?mó„ó/aóÅS?góåS?eóáwEòáw_Dúó÷Eøó÷oüó÷oüñ×/þõ÷oüõuO:ý÷4O:ý¶4_>ý÷4_<ý÷z{wô¡7_Fø³·Gø±÷oÓüù÷oüùÇ/þí÷oþí'O¸þ¯&O8þ®&_¼þç._<~çüáçwÆîf_ÆøêçÆøêæoBüêîiüêÎ)þîîiþÖô4HÁ"Q&A1Ô%¡"eÒ¸ò„(E“!$M"Q&aB&qaÄA&DaBEM#ñ„PAIeBLCsAÜTH%ATÐr„EEM"A&"#ÑB%!"•$Ib!(,‘$BA" Bä!¤‚+Hˆ82ˆ8(#A’$±X A8P@DÂ,LF CÒBD‰ÔBÔƒIô ê%d1 B¤(C!24"€D"KR&#‰4‚"š*A¢("`!!Jƒ‚"A8Ä&#äÂIb„!-DD‚FˆH×!?l@@ð±ÿ h!€ ÁDAa *&B (!A¢‚"#D"¢$D€…4£„8"ˆ0$(ŒAa(„€Ä$F˜Á„Ðå12€AD€(À$PÀ 0„A BH„#A0ƒ„D@$$D'“$€ D($#" "#A((IB@( "`B Da(H(„‚Ð59@„#%H2@"€À "‚€QDŠ!ÀC„"`ˆD,Н©Oab "ˆJ)‚…€%'"AF‚2AE"Ã"@$‚H(0†€…1I!!‹¢À"@DÄŠICMI ¢BB)BÀËc D!€%D $I""0"*À !"€A@Œ¤  ‚5(!(„D(,ÀBð¾7`""€8B‚)0±H" (#HCÀ€B€ H¤šB%Q,B¢ LC0E†(†b$È„¸Ó„De $@@$PDЂ@@@@$!Ф@Œ3ß!$@@@APðRø!@!!$!A$¼3H$@@$@@/S@@@8³@A$籠$A|=w$@@P!A@@ðã¢!„!@Dl9IðÏ<ÄaA€"4<rA‚B(Al“„/Sˆ0AB–„„#Á!,„(A.&Iø2E€(1A&Œ¶Œ „#AzÁ °AˆdbIØRˆpAHq(„’„ˆ!ü=*F$Ã"‚dBŽ2A6$ÈApa¤(AŽdBŽ2A&¤fŒŽJÈa`B††ÈA&¤(†²H$rAÂA!"(ˆ!†2AÀA0Ad(ˆ!,‚ˆ#á(1AÀA0AHNˆHŽˆ#qÁÂÑ!‚D„%d(SAD†‚ØRùäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuhd-3.5.5/fpga/usrp1/rbf/rev2/multi_2rxhb_2tx.rbf000077500000000000000000005411111224274632000214610ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÖÿ@8jÖÿ@8jÖÿ@8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDUTDUUtuWwuWvuWwuWweVfeV65R"%Òãx×QQQQQQQQQQQQQQQQQQQQQQQQQQQQ(*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*â"ôBB#Œó88#ôBB/$ôBB/$ôBB/$ôBB/$ôBB#,ôBB/Dò$$CLò$$OBò$$OBöddOFöddOFò$$O2øƒƒ3Œó883ôCC?tôGGtôGG4ôCC?4ôCC3<ôCC?Dó44CLó44OCó44OC÷ttOG÷ttOGó44O3øƒƒ3Œò(("ôBB/dõVVoeõVVo%ôBB/$ôBB#,ôBB/Dó44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<Ïù‘‘iò&&cÌó<<ÏÃó<<ÏÓ÷}}ß×÷}}ßÇó<<Ï#ø‚‚#Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ló44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,Ã,öbb+!Ìò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,Ïø8:ã#üÂÂ/ìüÎÎïìüÎÎï,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâþîîïîþîîïÎò,,ÇLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Œò((ƒŒò((‚ò((¢ò**¯¢ò**¯‚ò((üÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏbôFFgÄÅ Ìò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ'ÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñËÁʬÌʬÌʬÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñÏüÁÁüÁÁüÁÁüÁÁüÁÁ üÁÁ Ì÷||ϧøŠŠ£Æa$BÂA!$!Žˆ#0AÄA†8ŽrÁˆ!†‚XÄA „d(€8ŽzÑ ˆ#!†‚pAÉADP$€b(ÿbÀaAD0$B(A€x2”!I2AdB€8,B(A€x"„’„!€dB€8¬Â(A€x"Ä(A!„(A"„!¼7õhAF!@Á ÅA!@AbB¨GCŽ2E†ÂA dAFŽˆÒ†bB¨GBŽ"Q`(JäFà(h ‡(&„z$ä(HÂA$`B!@d(ˆßgü<<BˆÂ€(ðÿ2  ‚ „€‚ ˆ‚Bˆ€ ˆ€‚à43×(  H _aB €‚ˆ€0ˆ <>ÙB „‚H  ‚@¿« €€€$Óˆ€B‚ H€ €@OlB€BÀac €‚ „€ „ €Hˆ‚ˆ<‚€($ ‚B B HŠ(@€‚‚¼:þH  € (€  ð®8 ì<â€!P#!€1B4H$Y!ˆ¥!@$ŸJ€ˆÈC€„J ‚Â" $"X@€h" € B€€$Ä%C ,$,$@„D%¡DJ€AC"!(  !Bˆ2‚B¤$„!HÐã "@ˆB (@,È0B‚@$ "@€ B<# €‚ " €H$(B  ‚€(($Að‚ÁÀ! „ @,H(!ˆ€$(DR " C$€¨$ˆB0„€H äª>â@!¢A€„ !H‚‚,©$€B" „ˆ(AŠ‚JØ B ¦)"($ˆ†0ÂDˆB@H(È»nÀÏÃFÒ:H$A²D!€#,B(ÂA €bÂX$€.(‚B‚„‘‚+!" H L‚$¢HˆB€x4€J¡(€ˆHà( $@ „)"€"ˆ ,¨$‚"* ($ †"hS ¤!"€è("¨I„˜Ra¡D€ B`&@!$à¨$("ˆ€„*¨J4"$â†"ˆ‚B‚)„ˆNBWÈ ƒ$R J€0$H"Àa€¢$€€12‚" "€(A€$H ˆÀS„”¨x¢O""&¡$&¡N!€"húˆ ˆ¤„"Ž4@‚HÂ*¤$@á#¦$J!ˆJˆF"²"H(!€„,NBˆFâ$Œ$¤„J´Xð"$ *¡”#«ˆ†È."$X¸ƒ¡Á;+ÁŠ#!Á€¥Ñ0A(€!(°"ˆˆH*H!Š"‚&ÂJÂMA0‡¤"t! B(*"D€$¡"^ª’‚¢²#¬")¨)@‚i(*¬+M†V¢€$‚"â l*Œ2(jH"!&ˆ€ïR JJC„I£ˆ¢Š¡ªh€ŠŒB!b`«+‰¦#¬¢(Šˆ:¡œ!#!4ˆ#Jä)Jƒ$ˆˆ$B(*„‚b)Â"ŽÃc""€‚€("(ˆŠ  A‚#b  HˆX ˆ(B€‚B„ï„  D(`B H (H ˆ€"B €$†ŠŠ „‚ "b Xˆ(„Œ9ô rAŽÀD–¢Bªñ$&+¡(*)²(¢"€"¤,N">Â.CJ¨h$ú¢ƒâ+!8)é"²B­C)f#¤"hF¢a"Žòš¨V"ø’2NZ„&2¢ ª$ª¤bˆ¦D, ‚¨„ˆŒ,¤„h¯^!¡Ja¢ƒ2‚$(ÈB²1<¢"€‚±‘¤R€!È1ÂJh!¢(I ŠŠŒŽ¦$b((ФÁ’JŠ"„(’‚@"¢¤NB.B(ª†‚†²¢†´B«F#€Ä_1PDcàB¦#Y¼èA¢‰‚†¢™â!$$¤²)º¡ˆ)¥H\ŠÃ’JöQŠ9’(šÑÒë1©FÁAŽƒ*$ç&´’ˆ­UJ¨ë ž" ˆHHJ€¢‚)&BÈ*ö(ˆOodsSãÍ!C¤%OCõ11ê£Skš_dª¨¬tOòá"/&÷RM$kŠ&±Aé4º£oB*„¤ªx¾ó?ôas?´ÁíõÁÂ+¨ªöaB?Hú$&o(áú‚QN#;º^C;FF±af4;º~"+è^"˜/)¼Âì%µè"®&+¢Ž"#¨bÂ,2‚ü)I•(â$¸"ê$tˆøªj¯„ˆ$¨j„ø\sð#c/&¶AsD¥D£/!ÿ2wFoA¨ªêø£ÃZþñ±ús¡fj®¿ºýqñ??÷qq5ýQÁš¥Š/,òCânánò¤„+›;T/6¬á?;¡Ú?¦d¤ó?;«/&î+ú”’Êý‚šùÂ2+Ì+j?®¢ª¨êü"‚‚˜üKi‰„Šö¢‚®¢N"îhלּˆ¨$êdŠƒÆó=2/¢TTàV³U¤Wø†Ob¸´ª*®Ã;Ⱦ±-~!fJ¢¾ª¥óþÂ+žB/¸Ñ¡n’/2¶Røñ†oKú”¾CÂ3çÿ±²/´Aæ¶aã2¿³å,¶b»ÂùRÒ+Äêé'ù²bNÂî"+ª*¨jn‚+ÄèþIIŸ„†®b+*+‚¯ŽþÈJ§ˆJ¨êêö|xðE.E/CÖ4vñaIá8wEò„2A$sÅòÁl8sFb7GZø2E/ÜBöÁ+Á>-aM#Ž_$Â2G((R%,ñ!d8SBb?D¨‚'C/ÜJúÁ£Ñ¾øAË(Ž#Ç,†’$¬R$¬"î8Bƈ?Ƹ"ØB¸*ü*䈩ˆžÎ£CÂÄ/äBôQ.D/–do„öæS(O8…úå$O,±Aèn1Aî„/G8Ó.„/äBøA.„?–¤o„òÄS¨O8…òÕdO(±Aèj1A®ø2„?5ãBøRABøCBøRaÉúA‹(o<´ˆò¤C‹¨W¬Œ~„òÁˆ¦vAhj„ø"„?„èB˜ÂBØ"ü(„)ž¬oüë& A(CaB (A„€8Ž€(‚ (CaBpAÄA( „8Ž"èA&(pAÈA À£f(B(Á&<3ÖÈC)’DŠ„´$ÁTD`H2$†–RB Š#‚a",%,4!,â(+H+`(@"‚Jˆ¢‚ "„„(„ˆ’Bˆ€ØÔ¢„BX°$„¡AŠ2B"H6!B€($(„1"+B)!+A"B‚. ˜,%(!†ˆÈ( ( B „ †‚#$ˆN\Sƒ*€ D""¨*€B’€Y!‚0`B€"T‚$,AF`„@CB[ƒ !$‚(„!F""(‘! 1a(3$™$4B$ˆB€ (E b(D†"À„ „ÐB*À$B Bd$"‚ 4DŽG3Œ„ !fb$&Ñ¡A€,4"(4šA !ˆ":X$p„’/8„AÀ‚I€"ÁB(‚H $ܪN"Â" B˜!(A82†!1 1(A`$H$$(  ˆABHˆHBA)$À‚SÉA‚2B H($(#ˆAˆ0A‚#$€)$€4AC$!LA ˆòW¡ ’‚B A# ",$(HÂBb"2$(†pA$¨B*J "j,B " BDAHÀD B(€BBA¬8†4 ÄT%"$¨„"˜2À#†b"'%€…‚BB`kbdB Ä".„J$€ˆâh„(D(‚(D"FÎ" ’DHh»¡0‚€(€€ˆ$(€BD€ÂÜ=¾(P(#‰"Á² 1‚Bh!Š‚8A!A!2()HD0! ‘q'R°A‘B`$€Ä"°a((D1AHD%$!)„Bö&f(,$(‚˜B!B""†A"°A##R(‘,”1 „@bH„$„D$ˆ#$À­â` !0"("*¡‚ˆ#a("¡”"8"AL-A(Gà,B"(˜„#‚¼$„(ÒA G$$‚#È+‘T2"!HA@"ˆè(B"B"ˆ#C¡‚ˆ%!ÁA$@€á!¢!A!2$aÂQÑ! H†$Š("$D"F$*ˆ‚‰ˆô«€ÂBJAB¢0’š˜)($¥4F ©€B"(ä!¨A)("‚1B02H%#A†ÂDÀfDŽ…1%V2dˆaIDF!’&ÀA"*ID¢"‚ „‚bäóÐDDˆ‚H€$  B H€$€@(À!)„˜RAD€:Š(    €@(€‚C"Ü?«Lq2´4-1/)ÁBŠ¡aK q"*1¡++“:ô¡È8 ŠùB(@‚r"4DBb*aKB)˜‚HØêF¢H,Ò$B&²ÁbDbbF$¢Â&”"ˆ¡Ð¢ÈèßDT^!TŠÁ$\!äh+"+ˆL8R„Á™L¡ˆ!3##¢#/D±âQCD(\áaqAd!Z)14$I8dmaaIèŒRÔá(T$(F$$èˆ<;|)\¡)•RH€²¢ƒ‚M‚Ž$Ž‚n‚îb€à„¨H)(¡„‚T€¢!#%„qa2aBJ˜‚„+ÁIÁQ#äAEB‚¢(‚ÂÄ&D."(¨/T‚‚žˆ%„„„4&ÙBóDwVOCá*óÂ?ód‘Mƒ®Ò?[ö¶4‡ž‚=•oAøÕ5ŽbN2Jx!ò£’*â1¿S³Áé)ó†Ó?%ò³¢á+ù3oQ·Qa#?õa·QÒfñ$Ã/QöE¤'(¾SOx>S_Gá(ó”Ã;$_Fb)Ozü"ÁmD†Ž‚Tü&E.Anò„"O2Þôa¥8ò„BŽÊ#vDôˆ.o(üJ*gF¨;´$O^ø7w5´AÅ5öa&-ì¼åó2$o(é1•/ý“rS?v!1!ø¢ƒA¨/!úÁ’NB-29Ó18±&”6%¢´ò2?Uõ4E(IòAÅo;åQ–¤/ksÕòQQù’&_,òÑGOôA¤k‚'jCòAÅk‚'h<ü"aAEõAÁ?*¶$ö,„g(ƺHÄŠ¯*rÄü[ì?4ÓdôUwõC^Rr/VúÃ…g"_eù6”/Iù–’_yùÖ?ÿ1Ñ?¤"¡;º/òó7ï9¿×qCòC#ñ3²?û_g±2³2óC'ñcQosç¿WòEAORþ2ñEûÃ_~ä9¿WùÓ=ç8ýg¤;¦ohòÁªm¤+¢nòÁ‚VÜÔT~côeA]Ámä?VzÆòÌnŽêo„xÊúÂj_:þdLCÓ3òA6Ob±õR%á5”RwGôO!»‚ÙFQ2)ùrQ?$ªFjÂ!Šûƒ"'ñQc/½ÓõR?á;±³ñ’!?cs4²2‘"/"óqS/RÕ4÷C$VæÄu_Dû÷2n_>ýÁ7,,=ý"Å{†?Tþ¦"ަoBš¦'(~Üþ†c_FòadMaYöd¥?nrÄúÈæé|ÊxȲêžÂ_Å/SÄA/SòA'aoÄaOä8·Eá(2„$uÁ2!n9Fòs„x2äô"¤MÁ#Áácá¶„á87EŽ2A,ôÁ"n92F*xc¤ƒ'C.Á¯CÒ<áë!MaË(Žcß„ò„"IòÅ*IrÁ îrAŒøcŒˆ'BȯBšÄ¡èéÊÂ%ô2AoBôRA/BôRe)öambO8Õ$ò„SM"_,ñE¢O)ñaB¾âj±aø2„;'/Rü2Q/RüQ/RüaM¡oæ8ò¤s,ò´s,òõ2$òõ2&_n1a_n±aøw„;Vü²ÁïRü’ѯRü’áíáoþŠcOxöˆ¢O8öˆ¢_¬òÁªWlìxáöA,nÄøb„?ÔúbįHþ*Ä©ü*Ä«èɞƑKâIB‚â"db&¢"!Ô„!Â)8Ž$D2A,2E.„1;DÔ-AЄÑ<ŽSÀCD2A,2E&6Q$3;D„-A-AÐmÁ!O($Ò$$T$BM"CdB#ÔQ&#ñTƒà$è5j"*bB#*QJ!"$€d(ÀBˆHä# ¨ ðA‚J‚ˆHŠÖ’D(BàSBL¨‚$ˆ,D,ÒA‘D°…Q¨AP‚!„DïGB²‚˜fa!#äFB"‘"B( 0‚BH$`ŽE(#% qA‚"$"H„$AâDH(#8E(DQ@…&DB¶sA€(%€(P@â„°A$Ò"$HS$D‰A`@!$„3T„E(Dá„H@¿ä Š$H"Š„²B‘D)"À$ñ„(F&DA"d  ò„#€† Â&À&A&DPBÀ¤a`ˆ€ +sA‚˜(+$H€ áHŽ(à@âD$@$B&´D´A‚ra’MA„†AÈg QB B& 0H`$A,4ˆ€D$øœ Bb!‚ „@‚Áa@a$!BA`B A$@FDT€BÀC(B$PD(†D€((,‚('b1`$"$„(!„‚ˆ'*!D Ø !H΄H."ÀJAb()$4dD*b(!€Ä#$šD!@" "`B*ˆü$€¡)(ŽÊAŠ$Œ’&BD‰`DADÈcDD‚˜"ÀÄsŽ 9ÂH($$L&"”…!N%B"CÄ"’" (-*Ä",($8AB$‚„Ãä)D( ‚ã6ˆ†"pŠ"¤BDDˆ'd`(B@ñû€C¨$A„XB!H H€"€! h"@ˆ(!‚€0.€@DB äR<¤ù„!Æ‚a$ ”$B $ˆ€G4#ÂAN"(ˆIB Fa)IZ‚&æ(aDŒ‚,ˆd%4ˆ‚A r„Ȥ!(D†"$$N‚B†Ôt— !HL#‘!D(@!!$,B"aÐCȈH,$ˆ!HC¢„($„AÌ=FLÈA8HB(I„„„"ˆB%V$q‚%!HÁ‚B‚#Q0‚–À“¦ÒA4!",¨it¨ÁÈ`ˆb„Gˆ@„Œx¢†6$€FäB!È)mAOÃL"1`A B+"¡@0$@$$AD,(„TAˆÁ‚!(A(H (B(†-ˆÀŒ£NA#ã•REÁ‘È)„âD¨„!ABCfHF0„6€¡aAtŠAÅdNâBj¢BB+AJt„ „b**"â&"$¦$„"Œâ„ÈD*‚®BK"ïÝAâ$‚eABÈ¥„"*áB±‰¡ÁQJ‚NžD(@ƒ¨A !!4$á#AáAHBá)aÑZàBLD„‘B+B"E²$"Â$ˆ-ïCA „$ì!¢ ˆÁ‚p!8‚NÁ ‰!D!!$‚ ˆ5À„D* €±"áŽ"„A†R`B`D!"…„ˆD€¸¨ hI$,!2ä$'HˆÆ£B%„vÄH%„2“,¹“¥A#ñBj)˜òDÑ#iaJ"ÄABHCÊ"ŽPh¤)"2$(A ˆ$ê$rDñHÔóH  !D€HJ#‚@ "„p„@D€ÿY „ˆ$A$B€‚$€HB€(€B" "€`( ÂzCÃA/E¤AB°µ‚ªXY¨i!©è/L8b"dF+ÚKÄžALøR±Ä2KE4$Öb!†Bä$õA%´BäD‚ÔQ‰µ"ƒ¡‚¯A(ø!(&X…‚WŠŽ"A@Â"M$t*‚âB„#”".„‹BÈiŒ¼‚ž$?EädÆJ51€ñ¡!"‚ŽCcq´„HCÂ%²+°Q!XSC©ˆ ‡ž",¡MêaA`b1-!¡)(LÔHŠ˜!•D‰I$(4„"ÒCbNFQ-BN!Ze$Ž1ˆž"I7¼1¥ÔKAF”DØC5K’'IäÔ¡E(ž‚\!È,4D´aæb‚dFjäV¨Ä#ÒC‚²¸ºš’$‰ä*r„¢*B¦ÂF8b $.¨.D) â(ôˆS$]6/ódÕN"!ýsŽuo%¹Ãõô‡/3²Aø–îÕo§ØO]õ“R[¦/AöDÁ/Iý!2_DÛ&öòÕÎryå4öD/cô×TÜtùA‚môÑBŽ"/{¾dôeÂ+eRúG3kJ/†{i·´ñ‚<둟±ó¤4·Ú¯Jò-¢äò¢$O„è¦ÚAòƒäÿölˆ#âBÞ,´îòJ(¦ÖB´B2Ä/(ú&ÆnRÓÄDYó2GG4ñQ/7ò%>Ãjøƒ”Oi»6è{üÄ_iú7ñî¦gB]eβ[‹?dô‡¥~SOýBBD/wvbñ„T$üA–CÁ”o8ä,±õqõ¾r3÷EA_VòÁÃ,k)O4úU4§‰+››#oÚr›ø"«]ŽL¢*/"üL†täXô¢+=(ËdMDŽŠ'Šo†øÌ&ÎDLj¥zÂòâbgJ¯Iñ67ñarmA'4?51/sùfe/þ÷–OKø¶2žä/;µñú÷vû!S¶eþ•òOyãùæC_/òTNS4taôb‡<øUF;gh†ò”Ç/ü“²[“gýReIòeaObÿ!g:·æú–¸Í·¸/‰û‡±O"ú%§&þãŒo(ú$¦&ö‚Äß(þL+OÎÞ[´,tLøDÌ.æíâ넯¬úÌÊH¯¬²ÌúæÞÃÖsê7áaôGQ?ÅC/!ós_/öÑæ_Gñ´+;7/á7õÓR?OßUÆeFôá5?Yß6ö"ÕHü“Q?ôBQ/&óg_4èi½ÖÑbx„âhøV‘/=õñbsEåTöe![ÆOtÿáåÿÊóê>/!ù˜‰³xŠó#’M§jzªÔ&ø$¦®¦/Nô&Ëo¦ºmö.MÂöD(Ï$ÞlîÈþ&èoÌøB‚¤ôŠJ¯„ê.úÛ—p"äô2dE16MaIä8sEò„2IóÁ2G,(Ányt!Ä„7G"'C\ü2dMÁ#ÁákA-!AŽs[Ž"A,ôÁ*ñá–#ua„xS¤/SÄÁ¯CòÁ§¾è4ŒŽcׄŽ"A¬tÁñÁŽ3raŒxcŒø"D*ÜJ–Ä¡èáì8ý-…/v&õA'R/×ò6qM¡o:—¤O;—¤l³Aòµ6Æ?j1aj±aü3„?/ñ%…/?æRøS.…/1ÖúEŽ£Oxå(ú„WŽ¢_lñÁâ_)ñÁæjqAô¡Dú2„?]ú"į]þ*„¯ü*„¯Ÿ®üŽ"_:ôŒ¢O8ôŒ¢×._¬~ÄúÅîæþALæþAÌ/ÆøÃÌ/FüŠÌ¯B¼Šü*Ä«lÉþFKoHAÁ"Q&QÄA@BÂ+!Ž@1°¢"SáB4"1H1Ô„QP"m#õ„BE"Q$Ð$db@JúA,-A$!Da†!G("EEM"Á.¤#ê(#h$ÀA.'A*1Ä*È""$ÑA„2A(HQÂd¶G¡„*XªA3$a á&9!'DdB0Ä#TAƒ6d!ŠqA¦$aL¤!c,¨‚%Ä$€"h"IHúd‚ d,…r…ñºà!!ÂA#A5ŠÄ‚#„Da@d!/EØA"h,Á)8‚H.hMB"DB7DÐÂ1Cb!#Ä!A’K„C„$$(àh b"'H„K‚ˆ#OØ=ŸˆPEBŠ‚²4±ÕÁ!AABBAIp"$€b!"ˆA„ AØÁD"€’H”0(€à„Dñ-¦$O!  t"(0¢xÀ!L)BÁdB†B‚8&BLi°&$)¥"HD0BÀ! 1&š4AbB@´*dXB(ABCÂHf„$‹„ŽÚÆÂ"†È ƒ„1""C‚A”b"œ%„‘DIAJA"@‘X(#! (aA((‚‰<²4„I2$dÆF&HhŒ„J8H/OD€3AHa°!H!¡EAJBB† äx"DB$ˆÄ4H"I$ÀBƒeH¡!„HÔ‚D$„,Š=I!`)!È!"0‚!E„JA”2(`1a((€r"""!IH,!„AB!„"„D /µ˜æB*&á(,˜XpA$¥B"".bI’ÂÈB€$4H9$€„Ae$C!‚bD ‚Fd"l"D‡L(%4¤*F¤Bˆ &ŠBa()HDBØB;x4`B`! $HÁ„!@²$ˆáˆAbD(&¤Dˆ!Ià%B€‚˜"A¢$C‚$A&Â$HŒ”"F¨$A†„"„"¨$p!$!"ÐW  A B‚$*‚1"D""#$³B¢%!#D$€@¢°†‚Â$,Ä„B ‚)D‚!ü>éPB:!°Dƒ)#“$ ’B#"„"Àâ’#!Ô$ˆ„)1"à"k$,&À!,9$âP„†šT…! RD€ YD„"$B XHhX B(€A"r@B@&1<(*H¢0HA(D$‚p‘BDH$Cb(„€ÄD@ÆÀõ³„3"†2-/$‚¨!-(ÂÂ(€ŠE‚ù"DT-BŽQ@„`"(+ƒ(#Q$`"0eM$¦R!Ž$À$€aˆXBÁ"À‚D"È2D‰”DJ¤H‚`Bð3*C!'V@%AAt""$Ñ!N!À"€ŠK’Dƒ„A"A „È‘£MA$b@A!±DÂIˆ‘„І¸$ÃB€$h+„ˆÅ%„È!$E,á!"N:((L¢A“”Q´µÒ„ra"„r$ÁABFÁ(FAH(dD‚…‚‰Éô†y Q!ˆY"$D&&(D@„HÄdDDS‚1%DiIq’¤"˜†!‚’„$ÈK%HBEâ22 b"`BHF‘AB" BÂC„Bè<ë08 D!NbÀ‚$Ž!$‚$ª±Aj”…!H"0¢B(R Y€‚Ä‚LB$òA„”Ãà)¸J ˆ°Aˆ H¨H &L.ˆL„ЍÐdL‚•DJá($¡B-T°‚9Âj„d†E¢hRX("¨UˆO%#¨"¦¤D!Êdc‚²D$¤DŠÚ„„,ȈxŒæH"Ä#@.B„”("Á(É¢Fé2"«"&2D#„"ÄÉs†„„ ˆ$ €BDB D !$%ˆ!F"‰(€!B(°""€ˆˆˆ ¢„D(Hˆ ‚ ¢™€"¤ˆ Š€„‚ !¤˜B$ˆ‚($L)H€(a("‚€¨ÄDHˆˆ(‚ ˆ $‚‚Œl7ØD.V„$ì$´T¢Eá!»„é)è)‰Â"ù‚KC;FI´D¼‡ÙCµ¤¸4¤ÁŠÝRÌŽFžãOH˜L¨‘OlùÁ’K¢G©"Ft!¤.IºÂ¬µ+u/¹È¨•iK](nBsJbC¦ŠHLÎHnDNL,ä"æ,ŒØh­‚‰¸ˆšL.,1a$$)¨Ê†DA*¹‚B@¡4R!(è-¤A©Cê11:1"+JJè†$²„²Q£N(ˆl¡N"+)+ꊨBàBèJ(2hHЍ(&䄨ŒB!BŽËãÚÁT#ÕmHÂQO!ä!7A"8HDHb~DF&*¦ŒZ^!†1B'I+„B"è)¢H‚vÁF¢DBHH!Lr+ô„™„9H‘I”…ˆkˆøDhOÖj’n!Œ¢"ÌbÄÄ®bˆD H"ªòž\!O$õ2E/A³GØ"öf‡OÿÃtÞÅŽ–O+9^ó(¼!ü¦jòE„;Gfñ•¦{QNí'òä…+m[…^‚O[½²²Ó÷U—O+úQ”!Gq/ñ%¦oó³vfüd_Òcú“”®8_¼øt‘¯ׄý+oeýå9ëÎx&úGªªòÁíÏŽ¾„ºLú‰%n¬/D”L¯lìÈò¢nO‚ºdøŠfo¨Dø¤DÏ$8Î)ñ³ÓOTçÑ"ôAC/v±võTÅ-æ,êj¨8/÷ÑÂ"®—Z¹òADOäfôFt;A6Ä%o¼RñCÓþug/HµWó‘–,ó´”oø[»vûrd.!]Ã^Õ/Oþ‚+_‰»ßôSB/´ücÞ¯—ø5bî¥;*O"²¦ú$%ŸŠîžú­!ßú!$nh‹&Ï"öâä.j/‚þ$.ëŒ,Ô‚ÌM™úQI$g/Wõ3"O5á4ôBC[g=÷O~üä£{¤Ž&’/&ûâá8þ•²_:ý6%öEDñtsoöFå;üO<ôÒQ/µ“ûÔ7~Ófÿó”¾¶®¢ocö‘sÿ‘¶UþVaM%Rúµ–O?ý#•¯Îú_øO¹õÁA­êŸßýºö\¾æögŠLº¤øä¨_^þ)íŸÚø„äÿòllÂüD¤ï.ôÌ$¯âüˆèo¬$ܪtèì;†<÷e;571Ô2”C_qÓbþõÂ{//iú2">ƒÎá/,òƒä?K}#áBÔEöår~áõÂ5}’?<|ÁóRQ?#ù“§_uötªø¦okú”ã\ñ6Âiû±”AOFö!eZï,ÿU§ÿLûªÛo¥ü[¿$õêùoýúK_,ød&oBêJšäOšþídÈèÊÞò-dÄäÎú¨ÂïDòÈF¯®ö†È„,tJhÎÿc /CÄA/CöA#Áacá¶„ä87ÅŽ2A,3„$!üá–#qaÄ„7F^„/CDõ2$MÁ+AákO–O8³ÅÑ$ôÅ2IñÅ"‚j9D*xc¤‡'S.Á§COüA¾ÄaÍAŽcׄ†Ô¡uÁ*úáŽ3ra 7Æ+‚'BH¯BšÆ¡èéÂYƒ[R/Sw"õA'R/ÖòvaM#O:×$ò¤s,òõ2$ö¥2&úµf_j±aþ3„;'?Rø2a/RøÒA/Røam¡oÖ2òäs,ò¤s,úÅ2$ò…dkñAdjñA„/CxÓõ"„¯Yô*„¿ô*„¯–¬ÿ•¬o8”,o8”¬W®_„~„zEmêĦþAì/ÂøÃL.̯dö(Ä«DBüJbɾNôÂê$X$M"Q&CÃ1LÑ%%!Ø8Ž“Àƒ$!."Q&A1Ô$RêR*Ñ8O(EBØ$LØ$~hB'LLBxAÌA$pˆ4ÈIz„TˆA„IR„.„„©cIb.B(#ÄÁMŠ¢ C2**D‘â0V0G$Aò$a*LÂ(G(JC&‚‘dD.AIˆ$r¤xHB‘‚Lh%D*DDÄBìH&dJB,FÄH0ˆD«J›ž( H!ŽD'¨ ˆLL…bÂ!.R1BIâ"Y,ƒkH,Ã$ AD"BŽD*˜!PˆF‚‚V‚R’`D„pD˜B¨A*†ÆD¨ˆI?‚>a# ‘A!€BÈ$(J&ÁB2ABa" D"WAˆ*T€4˜ˆHAR`BBœD @"„DôÍkàH¤ÀƒXP!D`À&`$ŠB"t" „"$D&HH@ä!‚BD$`F "A(BQHB@hB ‚DbÁ"ä‚A &ˆ Ú1-H-HHDaE*Œj$JBÒ$Á D‚4!G!4`B$D!&ÔAÂÁL‚ ¤°JhB4„"(C2D‡BB&H(#B)M¨sª"4À!@‚†$"†£$I À" À$AbH€A!B1A`D€€AAÀKcÏ¢ R&@Â@„–"(",2$+H(A(D´Ar$&2#4$(€+(IÆŒBˆ2""Èá0$1@„0„@DñâîÀ.DC¥–$Á#O(…."kXL$DhF!‰ˆÄTaH€ÔB†2$´¤%”)MB(°D(aB#ÙH+@1DCdÈ(€äHFl*0$‡ÄA"jÒH†˜Bh©Æx3Î.$H(D,!Â$0B(†à(´b!„"+AMD db D§8*DJB„%([BD€‚BdD¨ƒA2H$nˆA€„ÂAÿÉNÓ$$A¤B0$3¤H#Á‚L2‚I…àBŠCÈB†DBàh’€¸4àc.$€£ˆ)G(ˆ-XÀHKˆA¡ "¨BE‚Ï"DÐH¤B€8J„àö;­È¢+"EöA‘&¢#$’$ÐADpD¶VBˆH$Ad>„CO2„´B"…D¤(…‘Ä`D A(„Gˆœƒ”BÁ„E]‘"D$$@¡D&AD‚&D¤!H@D„ ¸AH¶HÁˆ$„DD(H†BƒˆÒ„9¦¸C"d!,‘A%!<‰â!ÙDbA@TD$•"i„H€QA#ãD2ÁPDFä„hC)IÖ„!ŠRIˆÀÈED.„DPAhH(Exd1ˆF„DßÈB4"‚$‚¨"ˆ@AD0BA áIE!ˆ• $àD $ì"4%¤!1GH-AK!,Ž"ˆI¨(+„M‘jhNDpv¡„¤I¨VXȆ„‚[°$!(„¤D""†áŽDT å$Ô$C(\ˆKD „$"¤Dˆ°( „HŒ ¿ÌtAA"áD)âD¤"ˆHDBcA(B‚I¡ˆ"ˆ–ÑAˆˆJB H¤L)BBB‚"D†ñHa""CÄA"F‚ Œ DlF´Â¨BR IˆIn#H4@!„HF&lD „´Cˆƒ*FJ8ChHƒ‘ˆ‚„’„(€q8(D„…äRLD"(‚Ÿ† &AB€BBBÆ¢Bä!ˆÄ‚A!‚g$#hH3„äD$(JlHG‚HIDÑ ˆDŠˆH(8IŽ„D€¤ˆCHKˆI‚ä„4$Œ„á|1h€bD „‚ " #$B„$"„€ÀDD€H‚B**¢b"D“‚‚  ßm$BL(Za(*„0! HBH Db*(" „ˆ@ DB„BD‡ˆ˜Œ È„(""*ˆ²!ˆB‚h.™³†µVôTTND+#‘Q+’+2S˜2K‚m*•ND+B*ädDÎ"DŽ!FBCa4VñB#CíôD!ACY$¤ŒDQAKMO¸4hÅM^ȃøX(–Aˆ"(¸¤8ÌŽMèB*Ö‰¦$ƒâZ&èFúèFÄÂJˆ¬&O_G8G!€ˆ¢EàB¤H.¤+ˆ2LŒnl‚‚J”„!KäI»…„¨”ˆˆÂÖÄš(aHBŠhA„$dÎÑN!˜ÈJøÁˆŠˆôÁ„(bDD(€B¼HÚ„¢BEØ4e`ˆB¢„†XH|<å!.a+$1¤¤o2Ô˜’ª’£M!†cJQ0!Èèî$œ"žÄK…)Œ<(Š €£˜ÊÕA¥žFDBf„ˆ¸DQ$PHO„üÌ‹ˆ’¤Hè0AH$†„¨„nD†ƒØD´‰„¢Èo8Bòbeg~”qóFQ/sdóÁÚüóG¾†_&ª˜?bã^ù7CC¿!×A¸õÓrGú¤ñ[^nìAþ†Ñ;ü{îkoáEèX±e¢¡Qè\q$ññÄ.tOøRAFäGïÔT½!óÇÆ¯lóLÁ›èßJïNóÄáÏ<¨κ¤ú%)˜þ(ÌúHlÏ–|+ña­—ZK®.¨Î¤o2܈òDH‹„OÆêš=”(]d;5o5µQ´Aõsf{"Oî¼c²2ó¦´†·"wAóÇ2o4ö6ENAnaO6övåþ£/.ÿFv3ôՃΒîö_,|õt1¥˜Šr´dC©,OEöQ1ÑDäDÒQîìUÔŒû(N­Ù“éŒéÎú‰œŸ’d–_ˆx$¤**öeIÏÂò¨„—”iÏÄÂ%Ÿžš!OLnÈ®îã¨HÊXÈNê&"óDc²VõSR^sãvü£7KWDÁ–/kú´1owäC÷C·"y6ñe$ne[oo4÷w¶?æR÷G;•=ôBÑhó!”[³_MêIâB¹5ÿ•¤]öDqORø$RÖî_øåT;_UøÒ㩼ÑýÑ‘…[8_FäBþňK*OBøalß‚ö-ÁOòÄ­¿Æö)mß’ú¬DZêBúì¨/¢zĸHÄèÎúäáSÙRßbö!7;T/ôRR3Õdô¡7{ÂOeëBù²¦k_búsä>ES¾TöEaGDEO.µç÷%¤ã=õƒRü³sOSûcµOòô„>”>´Iö´„SíýdõBVQGO^ö´[8B_5ýÒû]üù!n1߆þE­L¸$¸$ú„äÆþ-éOú„ÅdŸÆö,)ßÊîZú¡¤Ë¤ÏªÒ†èŒüHÈÊòèá¯|/CÄA/CÒ”BakAö„Žs[Ž2O(Ñ!S$,Áj9RFˆ7Gø2Ä>Á/CòÁ+Aácá–Žs[,ôÁ2ABn)qa$ôs„ˆ'Cü:äϸÄáãÁaÉä8rMÈ"A¬tÁbŒb8BÆ"7ƈ%„ü*$IœŠˆéÜ8…/1äSø’cOúÖcOó„sIû„sIóÕ2[´_)óekqaô¡Fø3„;W_Sø2AÏSøASø’yÏú–yÍ!O¸–¬O8”,W®_„v¥rE|¡öA,—jÄø"„?ÜâBØJö(„«HB¸J–¬o´¼E$MbAGb@LDD†$˜„#õ„’BAI‘$QGBDLqAÄAFDAT‚M#ñ„@M"QGBDDÄtˆLAT&Ør„"–„„ID˜$Ex$LÔBl(CÂÂP‚l¢(ŽŠhaEC AB'AŽT!'A0 ¡(I$‘EAhD(S¤JdLhlHGH†„HLD›JD…$‚•IC²äÈ”ˆ^_)4$ÀBANšK‚8‚àx%A&F‘*”#)4A`(’I„AdLQÈ.dAS(¥AèLA1D‚ˆDD€D¥,AA"dDE¡JI"ÈHˆ‰øD(Ü8WÈ(Š#B˜Ø D1B/$$”$IG/4ðBA(6¤!*H„ÑA‚”!B0‹”A`#B"”À""@˜¡H €"„B`ŸÎH!R%!ââ¢#ƒT#2„*eD …‚DBâHV‘$„BtTá"’D(H``D‹A!!âA–Œ%L"D¬¨Àh(h†ˆ’„B!\7ÿh(F±„ˆ2q2‚Zd"/!ÄD)’$)ÐA"å%ád($NA*Ä%*á‘"bBŠ2%(!A4D$B#!8HVa!rh¤…7(2"‚ÈÈ)FX„ÐJ" $øf{)B3d "D±!(áDRDÀ$A0ŠÀäD±¤"1E€(@È$HL(Š„$@Ü5m4(€Haa(!€# AàF!²AB„’!€B„BDˆŒ„2‚@Ä(€2,J*B‘„€H‘!®ÉL+8$++"ˆD.jB4$.DJÂ¥lÁÄFÄS!Â@‘K‚2&6*$zÂdÒA¶D„I´2ÈT(C¡HhÀ1'DnŒ"(‚BN„Fä‚Fh„BL„$"$6È„(Î%£*((@‚"SR(FbCaD(&TFÄAP!J&„B‚r$„Ä2DbF"C²C`$*ä)„2$‚†$[$`ŽG‚H@BˆÈ0ˆ„ˆ(o¡ Da DiC*‚D0dŠd!.Æ h! hÀ„p2”4ˆ"A $"DK„*„hBCˆƒá‚”$@$ÂH‚"hDÃÃN$H(H@*Ä+bAàBL@t„¡)V!!‚â6 ”C(D%Á"ˆ#G&"`H") ˆ„9¨DÁI!‚(Cè"AðDh…‚ H-„ýÀABˆCH(šD!hQ$2€$ÌAIH°"B<$’Á€HˆD±Â$% H€D"ˆEaˆˆ#l2ÇH $(º$`BFA!*AaÂHA2&dEƒ‚²’â!ˆFB,°ˆt‚¤C"d$&¤‚Ð" (B D‚&ÔBDHˆ„dH!ÿ% B D‚(C$%¤!ÂAhAJ+$)B !(A)¡ˆ"@ˆ„a8""‚`b(ˆ H`(À˜Á&ÄC#Aä‚Ô˜BQ+˜I(ˆyC„C$B¤ˆd(ÈCB!˜dÀ#($ˆ,¡,‚jd(F„B5ŽT©áF5Bš#øFHCA"‚$$X$\äˆäLD˜BÁŠÈdÄÏoBBŠè"(bHHH‚ŠŒ¡J¹!¨B2A0"6„(‘B€FÒ,$$Äe)¨¨ (²H¤$H`$ŒDd$,@"Ò’8 A`A€Ó8DA0&F!$!±"$" H`‚XI(¸„4°¥""ŽJ¢(‰!ˆ¢‚І$ Š(ŠHBH ‹ˆÐ‚ÈH†HXLPDGDb "ChAACOB(Á¡$B(‚‚B‚ ˆ)x$ª´‚¨(MA4(*„X$KJ"ŽBGFa(D‡J‰#2#Š£B„Ž„‚FÆâd3Ô†‚(‚‚LˆB"€€B*„„!ð¡°$L@CA(A@D`A‚DA€ŠJ*"!À¸ƒLt±ÄDM%ÐR’´-aAqGtA´CaB"&$f(p4ÁA$Hð”áCáø„“I²„’K(S¬"N?DbBÀ…LiARHˆ•ÎJ”!GŒJZ4$Kª…B$jì$ HNHF‰dH[H@Xˆ†ØŠÂ(÷í0AK$ABJ)$æDhNVQA0„DA>"â(DQ$xJˆˆ¡”!32r’‚#òÅO¸"‚Ä!",‘A~‚Ej#À‚Š¢(Ê’¢Š"È„±¢¢†ˆÙ4HQ ÌJÆ2ˆ”ŠH(HøDF3À#+‚!éA¡ˆ#¨¨ŠãH«¬‚Kˆ†!$äH¸qøÄŠè#èQŒˆè Š„¦ˆ˜°A‰Š(B’!F$®.+Šòz´Ñ8+L92‡ò„($*¨(&áˆX1P4BE!x‘ëÈkH)ŒÄF$_»÷E',“Ua.eK”_Nùòƒ!wl.”_ü‘ä,úı,ñ!Ä+%OºWñ£T[xü⃎µ[Øšòd¥Iý³DwŽÃ[†/Héuô1ÂK†oÛ$õa†;!_Ò7ÜBÿ¢Ø_?ïGø›¡Ë„CoÊòÏ©­%./jza6‚y¨²ÁüÇh¿úôDÊ=E‰ø‹‹íÈÌøHŠoܘâ߈ôŠ*ïbôh’s‚ô¡„Oqã•BqãXyd²çø”¦k.Aêü"/ûDoC”!!G,O+ÝEÖê;»B…ôÁ5OÛDü³Ä$ã#ñ´”/RôB#_;»ds7ôAA.aUó%ô+c8òµô/œñƒH/<øADϘø/Œ?Jø©*®$®¨%Ó!ظîRþÂýD‡Q<üÉL¯ˆøÎІtÄø‚ʯ¨Ôò6/OwJót_Võ%vO1äñAq~áo{þÔ•nù´$:êùâü³f_^þV![DBþ÷eO=òÔnÑx9ìé·…åWþô'(óS4¶Okò¶r/TùqækôåÆoöDaVöä&_3ý§³¯LúkùO©ùˉ¯Œü‹ìø­&gºÿŽú"††Â‚?’øIêÏ:ôƈÿÔŒÔxÈúÍËïˆüÎ̯¨öÌÊ„ø‚j‹$o¤6ç=1OT—tôSNQLqqõñF{¡_oó¢OCèAæ{ûb”oü´_òd!_FÔaúE¥/W㵡ýÃ/á½Áõ5EsO-úd¤-¶/kú”£OQùb?Mü³õ}AIöe%NMS_÷÷œ/¼ø[’±ü‹È¯šøïŽúú¤"݈-¦®"$'?:ôÂFŸÆöHMÄ´‰üHŸìôŠŒëĭ‚¯¬|Jèdò‰p2äS´2öA+AakaaMŽs4O(“,“$ñá–#sa¤‚?G¸rø2D>Á/CþA#Áák!aKXŽs[4Ž2CøA2IñÁ‚f9RFˆ7Dˆ/SÈÁ¯SÒøA~ÁaÍ!ŽcÛ$Ž"CøA*Q¬þ¡Ž!ƈ?ÆøA„/BÜHü"äÉœJ‰žnÌ1Õ\ôrA>E/äSôaOöañO~‡ó†s8_.³Aÿç2FÿãFôáFüs„7GWü2A>Å/äSüÒqOþVaO1ö¤sM2O8×$óõ2_$÷å_d÷ñDnñA¤/GøS4/Bøm¯BøZI¯BøšiéúÖAí¢O8Ô,ò„C"W¬¤zŒzaz¬þAIÇê”ø*„7„/BœB¯BœB¯B¼‚–ìmd¿– (Q&1ÁEEM#ñ„ÐIeBD1D;DD-AD%ATÐ8O(Ñ$M‚M"A.&„d!D!Ä-A‰!‚!†$$À"A&ÒBÀŽAÀ"‚A'C¸€‰ÒE:#3Q®D‚(EáÈ"B€‘BI‘%*äA(4! Ca1CòB…ˆ#—(i#$#f¢0H b‚4F¸$8B‘FC¢$ŸsÊ@D&!kš‚²ˆzÁ!.°A3E’„,B0AM*dCJH0Ð!sf„À!$Î8'D(P$¢aH&rH Â(O‚d,Ø!dB:¡!)Ñ"š,$ a@"$BÀR$„’BQ$$J²RBFJÁHH° "F"À"H „"B$"¢#ôünà(ÅÀ1¡,K#¢0!#‚F¤!0„;!B`J!@$úAJ€,*‚€‹!$¡À$ÀF0!F€ˆ„’BFD‚((;Õ,#£!€Â"ðb¨`T%"LB$„!)„”A’BIEƒÈP"JªO±B¡F D°ÄD¤A£ä¤b!$""’¤,DB„„ NHE‘Dˆ‚ðæô0¡! "#…,aB€*(@"#¢q*&$@ !€B‚@‚!, d!€!€ ÀC!H€ö¡c€$ H`"0„(‚€ ‚A†„B‚4#HA‚(aˆ!@A„B „&$FhB=(C‚”,!‚â' I‚„„dU+$Ž6¢!!!bq䢒.DB"õ!JšFÆ’B)ˆd+!Š2(’rÀ$D*¢‰Hшá8ô(Šá‚¤.‰!AA(N$@ŒˆL(&ä¨;D €€´ƒ¡$)‚q†Â!($K&q¢KF#tJ‚¨'* L$(41=(’=hp( B‚€ÆHAƒ’(3˜d`„!$ˆ"¿jKb •B0t*Æ"€¨aÊ$"H*!”‚B$B"$0$TxA "(Â@(ˆª h„"D1$4„„C"‰bHŒ€Ò˜2D)€‚E‚4BI‚C!A X(ÀB!D#TM!BHD‚ÔBb!X„­Â8ÒB(‚ƒT2ŽAP„(# ‚(H‚£€”CBb$" "5!D+!&*"A¤ˆ$A`„†4"@H$ŠD €ƒˆì;¿DX,AT`$B0dJ”$EŠE!³BQDX°bA@„d0aJB´A™б‚NECD$hÄ‘B•!F"„$ˆˆðýc)H¶$IDDb(€Â88˜0!$`%P!0aPA,!ˆ1$ ˆ)(E(ˆb(@Œ("ˆàˆFnùƒCBÀB(¨G((E‚C,¨„ª1"$b"ܨ„'paˆO(IAE"b"‚!"­ANL$DQG`"C‚"b‚*$@(‚l„ˆ‰$$P(pQP@¤‚B""@+ƒL €„„’€Z!$è$¡„'&±"ä$‘"$$h€D8àÁ†FB’&BW,A)D§,PBŠ!Т:ÏDHH`!A ˆcDEÄàDD2àA$èD¤A $)Ä‚J„Ab(tH,ØA4AðQD`H +D‰2‚HÁŠ‚Œ²‚ô!ˆB*T„$A€€‚èj J£JAq$ØB(!²‘#I•M¢HIN ˆÀD,aC‚L-„À„0D DBÆ!‚YAe(`„!ÆXHˆ*Ä!$‰(Lˆ†`ˆ`ˆ."Ó $@B$ŠI‚€H"Š‚ˆ‚‚@Dˆ:(Š€BB€”AAL$QDˆ@ôŒ)€ !‚ˆ  €ˆ 8 ((†KĈˆBˆˆ F!„Ä®CˆTA"AÑ!„–%²]B(†Â"O(BQ$.—@uBeRâ'VNÁ'\´Öd+E-¡Š²„¨L_(‘K(ЏDT%K†’DD$ªFæq˜äDœ‚%äó”H4" fÈl$jtAQ„O„$‰üL‚‰@†ø£÷BEB€Ht‚$*y‘¤‰]Dˆ„ ˜¸hN’‚U¢ŒŠèd$dC3¸8"#+‰F1FBJ£DHŽ‘G,òA˜Œ˜EŠLh„È„„‹‚!ˆ*ø$Á<¤„‚B $ŠtˆB(‚&ȘÃ$A,$1â!ô”A¸Š1„à,¢´‚n…#BTˆ%bˆ@!e/%„ƒˆM2(JƒaL&*ÔAÒB(t"¡F‰ÔÈ‚+dA#4Äs’$#’G#b‚u8$O†4aDCO„HBDÒ(X)‰È&/v o$qQÕfŒ³F±RÒ&ÖQ±Æécì+:Á/HñqG~¢ö†Ò.ä?Q’„?9õ"ô/XóÕ"NüB´oõQâ?HºÆñÂÑGø´£W$+˜SüôãM{/(ávú%[„ÎR/[îÿò_Âøâ,oœüÃ"?Eý<ÒͯôÞ$rE*x§ÿäå­Ã‚ò„dÜ^ô!ÍJ8IçlHÔâè‚r†²ˆò&Ž.¼3LrBõW=44c×Vóa?VôÁ†ž¦ºù¢…lO}º×tósD”aOxú1Ô/̦:µGñƒÁNÂþô[¸{RwvŽ‚²4q&öÃ^"K»V{2%„òÅç/Wñ‚…¯,ûäHwˆ=CÎʯb³}ýWÁü´k8¢gHObòÏmÏ$rªòCoÒHò-A_¶Ø6øJFãxÄÚ†H2ŠŽ.o‚ø’*4_QõFRTsWóQ4õAg'_sö³Fñ´†O+òÒ¶íoôq%/dúW!OFôaåÞ¦_9þ·–?^ñbu_!üÓÒ?ñ‚“o_'öòNq²ö4"_%ûçT{î{ú¢å{!_RäRê\ö…ò?ÏôãoúÍŠŸ$üËC¾ô!^ÿìüÄHÎâjØ"úåÄ?¦þ…eïxòêËÿƶAöMÁ¿âôŽŽÈmJŽ$ï¨øˆˆ-*ŠòŽ1SÔÝ%±Fá%ôRR/óuBo'þâOKù&o+êiê[õ§ÖosøsôOòEdfõá¤Mã_I»ãù‡So=´Ñ“?Tûò‡sþTãkŸojécúâkß~ý’‡¾õYÒUfR®ç_,þÕæÆý‹‹¯<øÈ¿,ø«m/ÒôÛBýÁÏ,ò¤¤-†oJô$Ê?ÖØÜÞþiD_–öHmŸtŒt…èäøÊˆÇ('ˆ¬øŠˆxòèoð2E\ô2emA/ÄaoÔÖâ87EO(“$,3Å,ñá–3qa´!øs„ø2„ü2$M+¾ÈaIâ83Å,ô2CøA‚n9Fˆ?Gˆø2Ä.Á¯CÒ´Ø:aÇ(8vÍj(Cø*C|Áj(îxBtaìÄøcŒ-Œ'B­Ä¯B’Ä¡‰Þz<ÏLüG>D/äCôcKaoSörO|×$û¤sM²_lóA2O.óavîFænñaÄ/Gøsd/Sø²e/SøRA/SøRaoú¶ao1óÄsM2O:×$óå2_$÷¥2_fù¡Fjña„?Cøsd?SøºM¯RøšI¯RøZaÍ¡ïôŒ!Ï<´Œò„CË(w®Œr~ñx­~ax©þaˆ/ÂøCˆ.Ì«ÌBøŠÊBøŠâÉúŽåŸÿ €8A.€1‚#1A/cc!¸9O(M’M’M2Q.–l1D3qAôAD'Lr¡,o¹Rò„Ð4Ñ$‘!O"eB3áBÁ$Äh((˜"†2A€¢"A&.²ÃÉ‚H’DH)ÈFH†ˆAL(Á'DN!iÉ$BB(²B†¦!+ à"•„.A‚"0¤3d!K’-$@u$Â(† ,Ù(hÇAˆD".BE4(Ç$NHE؄ԅÀˆà„ÔSòLÚBH1B)D¦ˆI(á$ÈEi¢!BI‚J£l¢@´26Hˆ*CÌ0*AD0QC§Š)‰xd‰H¨#$Ap)Ø$DÈAB H ˆR$NƒÉœBÄ!Hpˆ @82”BD(EL&!…X "I!$$ˆM40CAA@á‚5„!Ë ŠAˆ(BA‚HA %R¿H1(Ä)4 –!&0#-(Œ‰‚’AN‚ÀàH©7ˆH (,ÊA‘Â*H„"Â-H"€Õ‰ˆ*¡+"‰LB’B*Õ¨/B¢AŒ”!B‚)¤!+Ž›Ã1!ÔH+D"‚&Dƒò"CL!ÄH(‰ÒäAb‰B!ñAX"‰C#œlŽb ŽŠÄ&,A!Ä‹KRŒõ$ˆ‹((.„,”H8J¤C@,$BHâ&ñõ­@Œ@¡3!‰‚DDHB$€ª8C¢€L(HLBa…`Ä B!Œ2((A$ˆN(`D‚R2ŽNC—‹ˆX`0„`A(I‚2BL‘""N"°%Â(C(KH0¤B"('"ˆ" 2"€‚¨"„"Ò`B;a dBŠ„Hˆ„hò}倢%##åB2$š"¨A]‚4‚:G€•ˆ‹AB#D1H#4B“ áT‘DIÅxXL‚¤BªÜC¥§Rƒ„ä„‚ácæ„H üDH6¨HH rÄ"""|JHb„ðH胎q$0S s "k(Ð!JJàŠ1(NC†è!E‘èC¡D(V"FhA"â¨A+8AbðƒH$Š‚„S"‚CFÒŒcD("IªDP‚ˆ&ôŠí€¤€$HŽ%`I8H‚k!N$JÂBÈX€,€.„âH¡4 B*(†$BH.(HÁ¨ HC&JHK¤Œˆƒ©¤Bì6)8$„¥ÁÀb0¸!‰!(H2’8!jÄ!j”$€e(h!`"“#q‚‚†B8B°a`†B#„$ÉrÀ"DA‚’BGC$I!4"Rƒ(ñ”xÀA…â!„2ˆAFA(B‚bQHh"(’‰È*(H0’¨0$@È4€"@’1!@HF¼#L4‡ðRš8)"rAX" HMA,(#µA¡1#B‹%’A(£‚¢H‰‚¤0bJˆ¢!B„Ò„BEˆ&"P"AŒ0!à%eˆH®þ !h$ Dœª.!A‚A‰1Ș(!ˆ+(‚HÀ*"a"È$!BpȈ!(ˆ,‘Œ.4Iˆ“„)¡JCB!,! BÂõSÂIKXD@”ˆ†„èˆz…„ˆà"âˆ#(ˆ´¢´i((€ˆ‚!9‚`ˆ(B…„"HJèŒB,$"$b$Jâ"€a„+4ˆ+*T‚à"òÞ”@bQpA’ˆ$(ñHˆ#‚"HHLŠD2ˆ—!pˆb‚«„B‚ˆÐ8ÌA²ƒ4(b,„$KA´B’HZ!(ÆrI‚B ÁŽs3p"/$ر„‚ü„3$IzTHN¢ b(B T‚‚HhȈŠ(,‚‘ˆ*~$„‚‰Š(¸ÁŠ‚D‹–H¨A„$T"&„.(LYy¨ŒõÒÅ$#ä$€áı(˜IATBˆ&™*!€D¸sé„h„Fކá’8b ¡ˆ‘Jñ(‚„Úш¡HHÊ"´(1F‰’"8#†!”$…‚„%Ä(I@2H(ƒÄÅCN… @P„Pˆ@ ˆŒ8„+0‚xBˆŒ"&"a#@‚T(HF"¤6€‚Á(‹tŒ„–( Á( ñŸ®D„"DI„Œ‚€`! !H((ˆ(€" !&h Ä(Á`Œ(Al>ýà/±ô5/Ülæ(ZDŽ‚AŽˆ—dŽ‚#n®%¡ˆ|¸؈᩺á ŠÁ!%ñˆ›œò„!+b×’„6ዲ¸¤4ƒæˆh,‰ÄDÌæ"áÏ M$.6>Dx*Öˆ‡ô(bH̦Ã>*:ž‚Xˆ)"s"2ðjŒTƒ21gHƒØ‚ùfÁ4ÏuÒòLN2O5ø8‚ýd¢O|óÞa¯Q¹e¦?”xÎu¬õ©BbN7_Rô·÷NÓ/ƒö¡É¬óÆš¿±ú¢ÊŸ–ãŒóÛC‹ë„¨?5ø8JŸ2²ˆùfŸÖú+%Œú³;Œñª’‹%ªìŒóÆÚ‡oÄôJøÏä±ú´òe(M6+E¯…–HN>”óm󝄯ìï'ýd¬÷º,όبÓ-õ’(OÊþh)#D±HóBv_¡ñ‹/&t!ú•ŸÏTv‰¸"q’‚öÅ­ïFô¦B—2­!JäSTU!#öh?%÷ˆ›‡´?/õª˜Nëµú"+›®C;ᛏáò·ô,)Sãºú"¶*â#ûŠ’-B¯„äc÷lzîñ,ÈF|ô26KbJôZ(/CѲõ9iYtDô¨è/'ý„HÏŠö¤ýˆH‹H/3÷-¾oþ ?ãôe+Ïuó_X=Zµñh7¿„þ·Ìok÷aª+1/Bø+ª_èþƒm/øhÁ;cöE%oGô3A??ã¤ÿA»ëM¿±õJ’ŸžûÚâ¿»¼¸÷k/#ú²¢¾ø=Ù+ò?'ŒþwiBò)‘ž(?¹²óbš/*{–ê…õJR¯„÷4.¯ôþ~ߦó2$#ñvnZ£±òGí¿WölhÏ„÷~D¯MöÖºÏ"ÿ¬zëI¯-ÉúO¬óþ>3Ö£ö%N_õr^ñ[Z¡uQÿJ1¿Ìþ7ïaëa’¢'B/.Þ±þF!¯6¾!´!äTòåDOô³r¼÷Á’¯øÛYŸ¨õJ™Ÿ­úÚë³û8˜*é+ºþXÛŸŠù§ÿûiL†Rª²ú³8Î-8ÞˆÚõȯ¦÷8$ï‡úzÌïçã"3/Cö>Z¤õbO1õmmŸÂ´lö,èÏLôÒ¶ÏæïîõšH/­é¤í.ñú(ïs+Cõ:dMA«A¶ÄaËHa­sÏz×(û¤{"_®óAª_îóaŠnqaøù†úr„?—òrÄ/ö:Ä/‘ô:Ä/‘¶þk‹qoº—8O:—¸¬óA9ï(ñA˜ojqAù¸”ø2„?­âCøCCøCCøcË¡o•ô˜2OþÕ(ó„W2_îñAzÏ(ñA®ÄkñAÌ/CøSÌ/Cü̯CüȯC¼R¾þvÈke4—‰,Q,R…&vHrw„mA%X/8O(,)ÄJâ"3D.€!ZtAè4($"!¤#á(Aˆ X8A.€10„/´H2Bco8O(!Ô$MÐ$ìb#]HLŠu"ÅB.‚D$Dp&h”+(Œp!h+„(XF²б(Š‚Áˆ#“!B(„N(€òˆN"ƒ$!9B‡,2€(‚.ЄŒÂD"H!1HH Cøæ² ŽE P‚!SFÁBˆad4+«HŒ‰ÂB‘‘ #˜Bœ . ()ˆ>"F„*ÂHÁˆKc$‰„™‚£$a"*()c‰!ƒL&©"1HB†ó'"A"Á*H&È "‘H¢h°L‚9$ŠEAIH¡„c‰HBHÄ‚8ñ$œAD.„B’^$€¨N$*dDŠ"R‹Âl.A€¡„!'˜DB* –ÄC ÁB"¡¢!*ˆ1*%Ã2$BD…‚A‚B‚‚$KB* $!d"ˆb§ˆ c„#ˆ¡"! i$‚¤$A`E(A‚ø‘j£BxAaB0R¤Hƒc2))"‚*Ž"T(K(IÒÈA”“è!¤!/!T†Â$‚ȘӢQn„Z¨CŠ$1A‹(K‚^„+x8K‚ RŒ²ˆ„D¦D $,R+! E*$úÆ È€,C("!Œ!XJD @!" Ò!#!&€‚$&(H"…B€*0!I,I,B(Ø!5f-Â"I5‚â"1AC‚b!(„Hð‚XCƒ’`$(†‚„a„ˆFJ (eœ”(nH@8A*¥"$L"¢$DŠ((A ò-}À(EŒÁXO#&á"ÁIA*ACrA”f¨BEq+D!¢.Q^„È)ÂEk&/E"I¡2Aš‚$!ª"B"â+n8H"˜‰‰1”ÚŽI.¡©ä#d‹.*H‰è$:$‹£È.Dηト3HD#1!prŠÁ"0(G"@Ä$H²B!âAƒÒ2dFâ!€#$¸"”˜N" B C9ô(0)‘ðhGCB¢*F¸#„Â’&”H(ˆ&$‰LÈa/S#1$`a„6ä„’ #5¤,)„(ô!fAÌ!€…I!Ò¤ÂI¦$!‚€„‚Œƒ"©Á؈rŒâˆ”!€”"©(¤"„n(àŒ‚‘´¸H„RHõ3ÏŒ)Z"Ð"$(`I(‚!h¨H‚…‹!#"D"¤b(„IÄXŒX 0rHAð”d`È ˆA£1D& DÔ‘ôdùCBJA*B°$(Á"KA„ ¨A)"’€$ƒƒH„"B@ˆÄ„@ HA„'BšDˆDL(Ž BAL2ý¨GC$òH"B`ˆ6Ä&ÄH%$¢$HŽ"‚`DÑq"’$(Ĉ" F@ÈDŠ)‚‚J…€¨”"I¨QHŒ((H(D„‘0ƒ†¨A˜B}Ñ$! ! Ä"€‰$H€$¨"ˆ‡‚˜ˆ(„H`"€‚”@FCa(DH)4ÌDA(A„Fƒˆ‚¦$‚0”,1¨%˜"@"*"D#B¤"!C"¤DHABB*”„@ÑHá"A„.(!"%8ˆ‰±H ƒ¡!ÁA‰„‘DŒ$8D"„H DHBJ(Š‚¡"B#b+(B`"¡2ˆp(„!¦Ä!…ÈH‹Œø(‰(šR…‰KBI$±a¡X‚Ä@H¤DPÈZ(¤E)’,)”‚N/DÈÆc„&HH…˜ŠœˆŠ ,éÊ’š(’(„(Œô’',"™¤É8XJä8â„4š!bFÕŠÁEFaTŒXCxHTˆŒ¨TNˆŠ‚’ )€SˆŠÁEB…ºØH„áBÄD ˆ¯©D"DR„N…ƒ$Ë‘‰¡’€ÄHbHRTÎB¡D3¡!Jè‘„ˆAÈC-ARD‘H‚Š„J$$¡HˆHˆˆB( CB ø‰QN¿C,á‘"$$$! ‚G(%XH%HD€h($€i(PB†ÄBA€’A@"„"„*ĈHP‚B„( …$H„@ „FJŒôe2@ˆ$ #Qˆ/¢DdB $ *$Â%/1!"Q‰bB 4(ò&(‚$DBH€H€$ €À.s .d‹A¡É±(‡‘¨Ž²«‘ºáKÑbÒ¢ù„‘ˆ®‚oÄä„ä„òb(k‰¿3øq1‘?ø…‚¿Ì3Hà´²éâI#š´huAì’ÔTaC˜ªHK…Ctˆ’œ„‚°”ƒ¡YàDdB&ÁH…²(äá(£‘ˆ¡R|Y FH2hB#8(K1IB"êH¢A*Ñ*i2(ƒˆ+)#qHˆ8Ú!‹1+Œï•a‡IÂÐá"´Ѥ±ñ„HHÃôHI²±#!%a%RHNÄLÈ„ND*aD‰!„$4ÄC”B­Q'ND¬3Z-('CR‚ŒtHü(B,Ô‚äÈ,"8¯Bâ$rRŒ²H”,ÂËA‹DÊÓ†,Õˆ´ZDñ1'Ž[E‚£ƒ+R“rBj£DJøÉ‹åNH„Zˆ¯¬„‹…H‹lÅØˆ„ÏŒñˆ‹\Æ\H'‚‡„^ˆ‹ÄLÅÜJ´DD؂ۈñµe$J'‡‹:R¯¥ñÖ‹“oj÷ªJïiÿSºKOƒüÎ’ÿ¹´œ÷bv„þ>d‡†oäû¾>ÿúóM%ÿwùÃ;?4ý»oîùêb­é§ŸO†‚û¢j„u;ùsß3÷mÁ?ÔÙú¿kߺ³ºÿjXGB¯­ò”˜„÷t^þ>LÚ„<ÆâH»Dìq(ôø_òåɃÅÌK}GŽ/)ý#>Už8ïýXxÇBþøÑÌ÷,åþDJõ/có~mý&ê§äo!ò²¶/hñúî/úú‹^>joÆôl,K&NÆïìûo}_óÿßÃ?4ôKÓ?oú†ê¿³2÷zž.„ªé2òjh¶Òqó[;?tEYÕ¶û»)ÿ¦ótæKm‚R¯¥¼ê÷Þt§‹‹BÏÄéA«*ôDÜÅëHãÛ‘ôMHOF₯MO¡õ¶¯Êµ”ñH„ýøhÏÌv‘oçñL~Ïa¶F±RñBrOÃõjª¯Žz¼|þ¢oJëŠù.ìÿüòøï¥û:hÏB¦¦oïþ¶>ßúóe„ÿÿ‡7=?±ÿf~ïnþZø¯¾÷Ì®>¢/:¢g¯„ö)kÿ±óoÇ¿Uö%iß’ø÷¿Ñûþ2Oo÷¢²K„/¬ôšZï‹þúÏÆüè,ŸÍ›´OBèÏòØüËñK1_×ù-ËbÏ&þtÔAÿ¶"o­ñ˜¸Ï…ùÚBžOŽß<>Þ-6GeÏåÖ†õBVúr|Ï£ô¨Îþ<žm’/jû&’§ëo}ú?\>Ž+#‚¶(ö¨vïkûT¦‚ãJ X‚$zˆâDÄaÉ‘Ȉd)$LqbôfÃÀ(„aa"à(paL!‰*@"!`|D( bŠ )DA‰‚‘(@ˆ10H@0.A„„€)"˜ˆÀZãÖ‚²„¨‰²T)40ˆ†âbAØD!„Á*@(Â(ɘBaðBD°‚b(PD Ñ‚BD„€„²D€8D(~ˆ&$`BH€r($5()Câ(þ:`&.DJí6¨jIA"‰2B"r„a"(+/T©C$aDˆ84‡jQ(D2š4Rjá‚–$*Â(9šd;$†Ã„‰‰Å8,ÓÈ”‚ɸh2’h¤Â(J¨A(‚„ã¨:g-D©’H+AÍ+…("Œ‘FY2Œ"Ò4)'!OăÔ"(B?‚,†l†áB&¬B4&D¨B-A€ jA¡(ƒ¶‚!‚:#" ’AA"f|‰B€ˆâlDŒ!€$ÒH#(•‚KA*R¤H¢A"(`a*¨A AÀIpaF±( (Œ¤!H°!„BTŠ$:JØ P(Kc‰˜$D#‰2(Fª–H‚fF¨(Â-ãGHHa%!h‘ie"&d)"pAx‚A¤"Á„$Û$’DBªFéBäh‚Ad!À1MD"ƒU*D1$£Ì›AÀ&.‚€±†„˜!ƒ|HSbHaH†a„‚LÔ©$‘(B) L2„A$8$%ˆ@„€A A‡FˆFAPB2¸H° Ä(A€(Ä%¨!À73‚,Q(À&²A¥(M‚26d”ŽH1\U…”A`I(IQ!%"2(]A(IxB"Ѥ.T”PH„8€5ˆ”(A‘‚б„6°È¡@4!M– ‘DDÆ”‚$E(òÚÑ %‰H"‚ qˆ²"ÁH(ƒ„$F J’D#‚•„D `B$<F€4( Œ˜“N8 ‰FÁP*)"ˆ†ØACRJ(M„ƒ…xÈ!ñH&`4‚.(%‚’BM(íA¤A(A"‰8h%XA!QB68ê‰!J¨ÊRa†.ILDØDÈȈHôÆ*I,Q€±Gˆ"B<ÈB«ƒ""ŠL±AèˆÁ5ìD2„ RE[#!P„hIR°DAq(AŽFKA"ÒC(¢‚A8Á(l‚áˆ$ÂX è(Äsœ!2Â!…Ò¢8¨-"ŠŽÒ"‹V¬1èAB¸Q´ô&ˆD+Bñ!t!(øOHôáR.ÁNAK„˜LNŒ­DY˜JH)Æ$ÿZ5"v(8‚Mˆ-(±˜â(R*"!(h‚ƒÙô(ÏHQB“$ªH«?D’H(Ô„Ø(R+"%D14„âRˆAbBBNrL²d1HD¡DAïAº&¸hƒ„„6#U¼F–EØ„bdMB†ÎTRX,ô„FNõÒH„¯3Ĉ§‘’'¤ð‚I‰‚9"/(ÈF.B*È(ƒÒ£øƒ‚Gñïkx"¸Ø$ø&/3DÁ"8*ÑAâB÷bJ[4/DÔDâÂr$"gÅEt"õˆ')øBL²?>œT4ˆK"dK2O"– ܈t!x!H½qdCA*Úˆ„ˆ(á˜â$ÿçrZz>×+óJ¯¥òF/âû+ò¿:ö´¤?¤ã*ûa¢ßËüjò.›';ݼ&ù³?*qÏþ6$/2ýÑh;Ì'„oöÝ‹÷“¨3GcFª8OÒ·X²zw#õ-¥è‚úö4/‹öáõ?ŸòôÛ)ŸýA;Íb?òÿá_ú,+$k«^ÉÍrw’ÿÏôÎ~MÄ?‘ôaÁÙõÿ-ÏÈÿHRÇ6«x[Œ,ôdënC×còÏŠ¿óöNRNBõz÷vï¦÷‹Ó/Frò"2-S?Núi/ó‚ž'CUaìùªºŸâô_Îß·¾Êì%µKuA÷NúN†ßÛRÎk1-mc?v×¾ôcc?²ó3%U˜(â¾öôrKrÿ­=ט¿±ôAÓŸŠçò³e?Wò#¶K¢ºò2A¿òÏ…—߯ÿíEv$õeAvx¿yþ,ÚOÌòœX¯$á$é^ö©\O1Hó\??"÷Wv?µäµñK^ÿãö}…?ø¢_Æ£6òb˜oüÿúóßkþ§‡%EÑMú…·¯Ûòük¿‚ÿóòœõRS?åõñJ½ñÏòë³ñkGCoõóxmÿ7³Lö5µ·ŒÒˆºxüLÒ_mõóMÿ¨Û¹ùÙR?Ýö®¾n¾ßæýÓy¿Mú6¢Obùó<ïIþSêÏäõlŽïGômmü=©Í¿Ïï5þ/oþT‚Þ+oíÞì7­-'ï5ó#&!tSûZ¿dõ?Lßê-ïÁ›¶¨/!ÿû½ï¼µiú×§ÏR\‘_Xò®«Ïñ÷º_ßê÷ǘ<ñÒImô/^ßÞñ®(¯áñ&GAOsñkaÏõò34ïgRUÏBr$ü,,ïdùÄWoôÛ›µùÉ['¿éù<¾ÏöÿLË·‹oIù–M§ÿßöÖѯåÿì<ÏÆôl-ÝhŸÖÖïÿ~ïÈöž¾Ï%ì­±Òô²†ÍþÿÖgCô>d4agQ/1öŒqŽsßÄã(“$,óE>¤1¥ì9W†A?Çø$ˆoQô(A¯3ÎÁ«A¾ÔÔDóˆwß„±„“l“4_¬‘î9W„K‚wÇK/Cäü:$<¡ïâÑöŒøóÍO(S$ìSD_ìñdîy;|)øH„·Ç+ƒ'Ã)ü:d)<)¾Òv7õSCSôQSôSkÏöVI÷„[‰ó„S‰óÕ„û…„ñ±”jñA‰¿CøSSøQÏSøQSøaÏúE8û„S‰ó„S‰óÅ”÷Œ„åjñA(®„ø:„?ü2„/9þ>„/9ý:„/¾ú—ɯ)óÄW(ó„S(ûÕ¬ÿ¶®éjqaèjña¨¯CøóˆoC¸òÿ>„/‰ý:„+ùë¡ký® ‚‚dB!dpÁÊA…BA„K‘'CO(A€îB‚DóA(mA…ea‚ixô„%D„(a&T†LBÈ$„ÒTHDE1Hˆ£á(…€dB„•ó .ãÌ‘BÙA‰)•´DFT $AN†¬¸H9ƒ‘¢¦q,$, A—†˜A€DdJh˜-Dƒqˆ!q„:Æ„ˆkCÔ˜!C„&(cL¢1ˆ„–r$ØO˜ÊDáIzˆ2¶ a@…†æTá1TˆŽÀ’‡S!ZBt(,q„HÁ˜ÄABIˆQ„&:MJ¸’$DA ±Ä”*TAb &CÔ(`ˆ8]3MK„ˆ„,D!2!CÁ"À!¥„€+!+ˆH!$Ó,¤!Fh!Ž$à!2$-ÀD(Ä$JAÈ3´KA.D(Là1”4†”AŒr",$G$‚¤R+*Ä”¿ùD3©Jqh$¡@ø$!CÔ(‚!8K$‡ˆ!P°Dˆrh:$‚N%ˆÐ$A’$FšAA*‚¢$ ÃJ+(¢ƒ°D‚ب2$IQ„ŠÂ‰8‚Ø$Òa%ƒ„ÁD¤ˆ'ˆ’C4j !#‘¡ƒX*K$âv2X"H!^H²d’Jñl)l28+a¿DBL²XÁ(=<-X2KX-$d#âAÈBii¾˜F)”$pBbˆ1B‰¨Odôãþ0‹01…ˆ‚|$d,Db(ÄBŠ$AÀ"AdH‰(€b(B4‘ @™‡‚`DA$‚‰’„X!(ð!X#‚Zch"(MÄB€Ix „HANˆOHA¤DNH*¸ÜhHBˆBH†B‘HCD„"  EÒl#fB&IŒá(›LLAÄ2IÂÒ,µ!”*DÄ"ƒâX•bFäS2‹Æ«R+R‹B á(Uò!2¬„A„ž()aƒˆ…A´ˆä‘ä”Ê8+!4Áæ)M4(.ÄŒ¦Œ…8$,œ‚„MIsÏÄ"Q«”4p¨D¸djàEAqBâ”$Œ…†dFU(£N2„`H9rDJ¨áDˆ4Ž(c2XHH“è#ô!HMA,âÈÒ!A&AØAF„2*4,È!t$ñ%wÀB($(`HŠAˆ#sD@Äh€Ô$äQ’‰ÈB £Œ"€hD3$ŠÁ(4(Žˆ“dH„J")ApaD‡T(ŠÄ¤)¡ÈBxÊèb„BBI"qB¦BÄAK(!(‰DH"VQVBÈHØ;‚$‡(€aB‚™T„`B†¡hŒˆ4ˆ¡Lh"T*8h$$R‚Q¬( DqȘ …X}Š@‘HHHB°(H"!ÈHˆ$ „! †Ø!„‚#ˆ Aa(€BäȉBDˆÔ$!ª(+A€B ‚ŠAÀ‚)Ød6"ˆ¬h„¤D,Ä‚(&ÄÁH„€2*"ƒDD*¨Q ‚#Aˆ!D¢C!x’UH âÈh‚脘¦„’DKH–D‘¢$‚""¢DFˆH¤„Ž+„TZ “fŒH˜$A"„D2²—ˆ$"Fh!ž‚! rRH€¨E8‚„‚¡ŒB¸+¢A’D@‚UÂ-@b$$@ÂO¢€Q‹ðR(«Ðb$H$ˆQÂp3DCB$¢E‡¢^D(…TÈs¡ÏˆaD$Ð$²H$œIbF™A‡%…øÊA2HÒÄ’X$8iChE˜)&l‹‡DàAÄŠ$B.ˆ¯ã%âÄqB1„'"IøQ‚$"DŽB%(LH'¨D‰tˆ¢H¡%ZH.Hi,f¤c’(!ƒF\$›8h%¤…â(xH*8pH‘ITFB…TD)ÔD¡HE”OH%$8HEäZ;¯¶¤ˆÂBPHðF*,$&!C1DD Ô$ј(E’’!Äd°„"D‚„G"ÐT$„0%ð)D/A£!HUa\ÁB'FSÂJTHG‚*”†„G$0‰Lø$ï̓!"A(!dÄ-!#˜#Iœ"KIfA„cHXAVNBê,èDhBDbØÈŒú¥6Žjqaéjñaˆ/Cøs˜>„/ü8„/ý8„/·úVq‹¹O¾·ˆû¤s‹¸_¬ñÁ¸O(ñÁØOkqAø¬„ø2„?ø4„+éCøÒØC¸Ò¾úÖÍÏÜd(G&4DdxIÎA……Œ8ŽpƒdBHpAÈA@„ˆ3ñ„A!hEèBAD!„-A‰)8ZŽBPˆ,DÈ"Ehb„\55ˆX…(%ÈÁƒáA&8D…‚ˆ“‚J‚˜!,¸ABˆ6„V˜‚¼)b#l*C4¢A"ò!XcèB’Œ‚8()X@\²Èq%¨¢€Aù4‚"Œ†„$i)4“)XêaÄB’!<(L- $*#DA²!b„B`cNˆÐƒa$#õ,!!†Ä†*CŽAŠÒh±$Ä!É‚˜¢…AM!ˆ…ì‚ (i"THDR-NÀ‚!l5Έ‡%Ô(£D‚T„#‚BÂ’P”CÌJ"D(BÏ"„q,¢H„“%á"Tî 8M""E’JQA`‘E8j•¨VŽ0Ba*Y$„B‘X(ÁAÐH(LhD“!¤(OôÚ.$!T!’)VpD2€S$"B(‘”D"4BQŠF±±(!„JbApDš–@aÂÄ($J´H‘ƒ¸DÂO„$LA‚%ú$(„„#äBBhaÔˆ¨$Rí²ðC$I1BP%òH!Bk(-Ž"GÃE¨B)R…‹D.RÉö1‚O$èi„?±¬$#üY†#ÒFÁ$_3D!&Ñ„‘„C6^H¾'&C´A8Bg""GH?B¥B—#”©B †øVD„F¬F¸hJxæO2BI£„,2AA€&T@pB!$`H@¢Aƒ‚€‚¤!£Da8AŽÁ.#Á˜A„(€d„$Fˆ4Hì=°¨˜DA(FvAè($‚TDDÄQPP$ ¤(0IÀ!AÈã’A#ACBXHB@%‚UE‚„Aˆ0R"$€THB@‘!¯ëdK4V6R!H\u"$1:ha`R´\ô‘(B„BŽ,ÎŒâ¤bˆN)ñDSô„ˆ54&4”Ž5(†fJ—dD"‹J.Á'„!XÈW†’Nˆ%e*(dÁbÅ(DD(Ž1Ms…bŒ,qŠ˜B…ÈÅLQH-"NqA£"”¢R„ô†%fD$ô„b"0•bF4AÐ( I#Št˜1_H‚T‚CÂ.BhI4Á"Ç((O)DÂ$ÄÀJb„"A(A'âRËA%(?\AO"”R`$”$aQH-¤äQ”HÐÔ„ÈQ‹B‚HVI¸C"1†#˜hG‰HF”$ B%hˆ!HÅሔ†˜ˆ@J2‚C‚LˆL œ2ßÀh„$0$(!!°˜ˆ0B„!Œ) !IÄ‚0’„‚…DDpJ˜U€Hx$(ÔBÁ¡N9!(ˆ8¯É"‚”"Š#Jˆ”Œ"(ÈB8‚Á"@4@$@B(K9!B‚ˆ,.Ó“"!à$!!À‚"‚‚(À‚$ ,(hˆd€”‰$P"¤„d"„A0!N”J&Aˆ€‚Á&D`RX $X0²!/z1„@LB†‹b´AR’(!B!ò ˜@‰Ä)2M!I‚C”$‚@ æKAB±1C"‚ (¡²“ÌK‰b!`!!—$)¢ƒ"Šá"B(#¹!ˆ/…A#A¡)-ˆ(´‹(€2Ær$@Ä%¤$t‘DH,¨A(šž”(ˆL¹„‚¸D˜Q¦E„˜DÂKŒˆC%ˆhHŠø¹´@b&1$!4%È.($&¸¢ˆ‚ 8¡„52D¼"(h&'Š`*ˆ b( ADÔBÒAJ#ˆ[È"IG¢°!H…(CdAAL’$k(NTAJ”p‚”ă”""‰A"( ¡‚²ªP"‚()ˆˆyˆHƒˆ ˜¡!"$B!BA”1ÑaXÁPâÁFA!bb B„$ÃB I€ò§ù0Œa(¡!Š¢‚„(k@ÁA€T(Š‚ˆŠ„d¥8ˆ‚!PŠIŠò„’Jñ„BLÈBŠ´BÁDH>Ä‚$TDO4ÈF „) ˆŠ„‚Æ<3PPXAI„DhDDƒ„@!$„†(MDJ„ä„"‚R`Á!‚AHP„@$B„CA4ˆ€Ø8 $€¤BHŠFD†AA-”@‘‚‚ €ÊFD! DÊP$ ¨D€NA‹D‚@@H(¤NÃM¨cƒ#q’2vš¨682+(±‚²uq‘ø#(#D$™iEZé8ö†¡i׈‘:ˆ@B(èJ8ƒi!ÖB”„O‚$cD)T3±Hô"HžÄy’-QÔZTBàF般ÈZ¤Ãʬȋ„†²äòþ/p$87AГƈ#æRi„,(˜¢€(º‚HQÀAŠXC¹…˜ކÂ(²ƒ("¢‚R#¡OB4D(Kò‡1#ô…LNBK)è(Ñq% –8$¦ÄDL•ÄAN$`Dh!IÈ„Œ‘’J¡M9ƒÙ2Ò"š2«‰¨Œ“”-"_ƒ Bl#qJ(¨ÁŽqˆh…xˆX2ЏСˆ)ºÒ"2BG"FDxdq‚ú†KHO8}š(¨ˆ/TtD²ÄáXcLŠ8„ޤŠçHw¦´BÁ}fÄHGAG'_BxHT$B`BÈÏ|Cò8AƒõW^/!ó¿¤ôWO?wýåáßôš2åù’²NÓ–þÑ”¿nZkMÅ3ñ“˜Ïåìô_Æ/!û„ލÿŽü¨„.¹=tšriè"ûQ˛ȗ¶_Þò…fÌý]E_Vö×5_TõŽÇGßθȧ\?5~§ýf_FÿÎïixîþ&2?­ôY…¿²þ‡¾olñdÝßSôdäoi÷†–ïdùüDïîøÊro,©åoäüdXƒÖñhO$ѳñ¿1ôbw·÷ÇÝŸ^òÉ/!ò‚†o[öW©‹ñKé÷*e¡DND_døŒŸ'Fu\Ú3éüÈAíú­/õȨª##ùq¿žè†´¨Ü\˜dMeß–ôMM_ÿEk’ø5¿8½CôLË¿íÿ-–XõM/?fø2†/añ†ãçÞGó¿yûOWQÖUò-LÏìø6oìzæüt>o,ýB‚­ÈïÿŽVÇOÕ÷3ï´õSZ?ñ{'ÿ·ÿÅí_ôwž˜oiû¦”[3ßœÿ†ãß\8S_TôDÅ_ýü›ŸÄñLEž1o5½AíΧ¯|þóÈ?+ña¸¢ƒ?#üê©?¼¾ŽþêCöEmÝk¿ÿôqkOÉóD,ÿÖHñIùïh»Ýò|ȯgýç¾/!ò6†/õlø/á~Ÿöîî¯EöemÏÄþ¾JoëúV¾OÈýNòo©ôÚš„ÿnöÏŸ,Û¢ôIµ÷ZŸ±uRû"{ÿsöùí_—öm/Aø””MsîÔÏôá…¯FÔE”ELñÚ{]ߘôÁQN˜ýÉEoôr+ú»Š/#Ó"»2é2ñâê¿8öË«?¬²'ô(iŸ”òAcÿ>ô{6¿<ó/¿½üQR/8õËš?•êÃüqC?/û†2'co#üw½ÏdóžêoñýgEÏÒòMlOlú®ÂïkÿNôÏêýÞÊ/)µÂõÈ~oÅþbp2äô:%O4-aë!/”lŽsϤa(M¤ôÁòáž3qa 7Æ)x2ÅÁ¯BòÁ§>-aéâ8÷F(+8iòÃ:a¤òáž2ƈ7ÇN‚'CE¯cÒ7<þ‚cÁ8÷M(Ž2A_¼ôņôaŸ2ÂD7Ç.„/C¤Â¯C’Ä«A¨ëAœ2ƒÜüGRôCRôcÉò^AÉúÌSÉò„SÉúå_”úÕ_ÖúáÔnñA?GøÓVüERüARüiÍáÖÿ…{‰ó„s‰óÇ:”úå:–úᆮ†þ2Œ?‡âÃø:cCøÚACøZcË¡ï¶óìs‰û„s‰ûå:„÷¤:„ãêñaHOêñaè/Ãxóèø:ô<„«IC¸¶ú¾Eÿ¾…d‚IrhBHTD„—ÄTHPHAI8O(AD˜„¤A&D#'¬/R(!…¦‘£á8YJO8‚ŽÄ,x4á)9EMA¶ÅŒÚ(áHþ„ŒˆŠñ’‚%äHâ32h'ì‡4ú!)!(&"Ú†ú"3O舒‡BB¤pÁˆ™Ô("˜‰‚(Žh!ˆ¨©²Ah„*TBbÇ(Šdb&õ(FO$q‰c1‡Y,ܱÑÂØ$õ‚d-„Fr‚³!QÇdN$òæXõb,¥AKHRŽ4M‡$¯!özj/¤ôBvM‡¤/æöf?>óJV‹;¯$ø¢²_æõÿBÙþÏê?1‡¸tlüòÒ®t¯az~ÿÆÞ?|óVѯ¤ÿ±<=á^}z·˜ûB‚/*ø£Ê‹¨¿(þÉä¯hô!”]dODö–Ö.”/xo]¯n¬4o<ñãïþòE]ÏÎù|Lï!¸æø„_ùôúÈ¿2¸åõ%}”I_„þ½yOÆû&~gOOV¬‚uþ{>o(û6¢/yþWœO&éKü|ú)ÖÌòddÎÇÿâü2¸Oæûä~k©õÊZ¯æûv¡oVBq3ô"C¿AÖ6tÑ1´Æ#ÕñrÇ„ŽK(´sEñ6öy3qaLñsŒN7Cô;ä]¯¤áë–m8sLè(3„?¬ó„!?¸a?îyt!ìÔxs΄'ƒÁ/cÖ¸Ô¾Ò–f83O+8!_¬“$8Qâ?v9—ÒD7ÇMŠ'COBü:f,¸Äâï!ÈˆÃÆŒ¯t8ôA‡C¯¶òCË1Ï<•„/ö8„/ô8„/¶ú–i‹1O¸—¸o:—¸_®óAxo(ñaØ®†OkñaÈ/CøÓ(OCøBC¸šô8„«aË¡oö"£•HSM#uhbHVŽd„ätHDQHEQ(M³õ„±EQ‰EQIR„&DHthXxÁØ4É“H¨3á8 „˜…„äb„5‚ãqAøA…"A8°8Ž!M’„IQ‚,[†.a,7²)¸¹rj#Ø2(ÐB“¡8BŒB‘(B’(,#Iqd^! *IöÁ(`ÂBB1$&RFH¥†8‡H"#‰C¤‚ƒÔ„ÔBÓ"Hw‚"A°„4ù±ö…#ArHBBQˆ,!(lqƒHŒT€T!,T(BH’E#"6€ȘT†LB!M!(EBˆ”‘jx$(±CÂX0„VL1$B,ñ:$`!B„èAÄrãˆX¤R!‹„#ÑÁ2X!cÄ+!Ò!ÂÜŒ‚2E"JQ„°BèA!V‚Cv¢¨pµ:x%Cd’H.ŒáQ$P‡ðBqhLAd"b5äAZ!ƒ‘G´²éæAQ¡¸Tÿ•EâµÄŠ!¹V‚IE®!IA4(.Df8(!“Gr(Áœ!ÊCÔC!äHa")³²ˆQ‡&4‘ƒD$F*“!˜°”(LMØ!¸”*Y„Æä"bÑ$HBrDÊQH‡lÈ©˜(OÈaÔ±ô)‚”U84ŒñN4+_B¸2ÐOâ‚|6¸ÕBÄi"ðr(‰rDòEHÁ.#>,u¥–'B)ó".’ß•¶¼Ò„Ô]2hÊÑ¥Ã.! ù+$‡OE’;)y$¤“Eô!Ä¥ROáºIV„YÄ\OȲ1,H8˜¦lH]Å€Ò$$8Àb@H2(@…Aˆ ÄRR,˜AŒ„E0" %BHf.4!ŒD !H'Á,$è’3IŒ¤ˆ”Ih%gA(FÈDèAÁˆ!LH+†ˆ2“Tb ¡$‰Á!P" 2‚AAlXDðAˆA(ˆ:BDް„‘ß6$Ã"e…CªH,µÖÒh8(%ˆÓ4â$â!Ò$ÂAEшÂAŒžDcD”ˆÒ¤tBd>DªQBTiY|È#BAg‚A-iSAt9¡$8¸-(¡!'A<ÄBІCJ¢"С+dM$˜,á#Âk "DÁA…Á@ö8D%/AB8$ÃF$BXAŽMŠÓH4"B‚$Ì’*F‚AÄ‚Iá„‚å„CÂ&Ñ"I7(IÒa$Ä)!‡B€ø2@šD‰X‚‹!$ƒÔ!4"ZhaN($HBT‚)S‚"ƒ$C$Q(AH4’HYÁ"‚&2aØH!b’bD!„A'[@”’!Ã"¨2E2A(˜"$aŽRC"Q‚ âÒ6÷Àd€„"DD¤ÁD‚¢”&LŒ AÀ$,áD‹†i&"Ì,AÄ„*ä1"¨A“Á%¸ÄÁiL‰’«F5DÔ(($Q$I’(!ÄÊAq$TLN‚ÄŒ¥ÄÈÏ $†DÈAA(@††"TAb"‡HCb„ˆŒ‘B@H§J@v@!ÔH€Ò$AˆÈB"D„ÀCˆR„‚8D@´„‘HÐÔ8JLâB@"aDDŒBED¤8oD$&CdBN8K„Ž-d(BŠÅƒ‡A0,,¸HØD"šBW‹H±©ÇdFjH.D„H†b&"†˜D$M($FÈ…SDAB‘Lƒ1ŒHô$+„B4A¤1A )!è¨)…A(„Pˆ(G„)A+€‘‚ >J,(ÁLä(4L"‰HBH‰H„dA0BAÜ>zðAA)D-B#ìH""…Á¢CB”)*RCø8Š#ø‚˜V‚ú‚HJ±hKÈÂÂ$–DÐ"ˆÁ#ÈÄVS(BŠñ†L´B`$ÀB‰QF‘‰%ä¤ÄŽÂÀLÀBOVKA!$ðBFˆ°&‚hB‚M(!ª¦ŒURHAI‚ŽáL„¢„‹˜nfŽˆ®"œ(Â’$ÒG"XÆÔD(¦¡ŽGD†¤ˆ„ȃÁ…¸‚Š1ˆ,ƒDâ$T„ކ„àHH²ÅÈFJ„”HH‹ÁÎ*8‚AB DÔ„‚Œô„!‚„¢(ÐD+‚qÑrÈBC¤Há!*’2k<£²IÒ&ôA!*"Ñ!øb."Èq.¢SUô*$* ""…‘EÈ„‘Š­ŸzŒV…B#$!èCIá„ $ Z>À+Qe4B%ä‚Z¹„$FÌRÕ±ÁG8Š£.I3A"Å~„AHÔˆ¡$Eˆ;9„IF!€d" ‚aD""0Bb@,‚$$D‚”AB€Ñ(TŒAˆF1B"#bÀÀAŽ*H€V!„B¬Ø(H4‚ð;Š*B€0DDEDRB€†D@hFdƒA@"‚”A#B$5I@d$ ‚0&" ä„@5 8Às‘HÍcR"%¤H"ô„",ò&DL¬«2èƒò¦„/²(´$"æb'‚±Ñ(joDÚØÈùž¶Jò‚JrH•!¯‚ql²D¤"?F2#Fó¡Í$'‚NB1ä$¡hƒþ4”‰£¢>"/$¢£!TIƒˆØ(ØhèA(¤…–¨ÆøŽÏ¯S’§T,„Òv8EÊ´ÄèAj‚ZHõÄBKJ+‚A‚áI²´¡á/ͤ¸â¡ØÏ„ª+N’ïwýb!,˯"Ûdë*±‡ý$‘8AD²OGôBÑž‹‰<¸ˆS-ñC{O'›G‘V²"â¡ÔT¡OEÕIáaA6Â'¡Ë%˜Hшü’[ƒGôBa ÄH$)ä*RBcŠªAOCÁ"W(HErG,¤dC”äA9þÉJÐ%Ù"ô™A&L¡„M“µèÑÜ‘*GTd4‹/AزTe‡=ˆOQÔyŽx„’Å dHM(Lt\…LèˆAüÎHAŸ„ÍQIÌ-DOØHÓ:vdwGÔ3‚üB"g¸†ö"FOHö¤ºùQxÏ*ô"Âêú!%M䤤/ió¦ök÷í—ÿnñ³Á=¿?yõ,ýŸü¤„OI²¤úñaˆö?ÏONú2*Bþ1AN!?8û¤d‘ÿX5Ÿ‹9XZóá±Çÿªÿ,ÎOJ¥!:óqYÏ‚õYïñÕîQØ‘oéñ–oøý­V/(ò˜˜„ó>Ïm9-D_Br%FñABeâbòE"Lþ¤boL‘$OŽû1ßïv#ö†¦o4ö+dCr"ä,ý6vohýž=_húÖ¿5ô‹ƒ?ññS5_õ9{íÙfò&4/Xøåq—òÿHûDbï‚ö,-BOtô§ækQߣù57?=ù[I?¹1òm.Ÿ]õ'i·DK¨.:'1¿äÔúóZ¯±tÙ]X[]–ï©ñB-œO©t†úXø¨~gIOÏDûáaOb6EB/$ö"fn¦î¤#úaˆêKòä9Ïäºhî*ö¤á?G¢Fèoiöò’OgúÕÔ/£ÿÛ’ùÉI3õQ=¯õ»&yåü’¢+ÊooòA¢/ü¥j¯‹þ\$nAMæm÷Sþò"ßgÿ"âñد%õ"r_fêÄz¾ôeŒOHâ#ñaOgñTï!õ–gAñ‰ÏAÙ‚i©Þï¨ûFŠ‹Î8ß{ùH¿sEüv#dÖ$d$ne}c_Nødâ#ò„ªêXÚÉòmè®ä/*üc!ODÖDæhüæ¢/eúîß§öŠÛ?½ñË‹Ÿ<õ¯Yÿçû~vïIø4‚/*ò’¦k"/5þ©ì¯ë~hüLI]dOXüå´î&?öóîú|YúË?mö«o†úcëIx4´4ó#¿Áñnÿ¡õ7QÅYÝÝËÏi±’ñÔ†-š«Úñ¸¾k…¿æ'CU¯QÂAƒÑ¶ÂGÃø†sß„ñ„2ŠñA:Q?¬?æy|aXD7ÇxöÁoBúA'¡~┟87Æ-cøÁ;a¼q"òCžGA–ðwxô'G¯£òáã#ÑuôƒsGDŽ2IñÃ*EôÃðáŸG…†Lxsîx"æA|:Œ<‹áç¡O¡6ùLôqÏBôCBôaÉöA‰ö¤S‰òÄS‰òå„òä„ênñA(î„ør„?âFüaBüABü’aÉþE‰ö¤S‰òÆW‰òõ„òÆ„ènñA(î„ør„?¥âFüqBü’ABüqÉþ6E‹hOºµˆòÄS‰òå„òÔ„¾„ø¤„ø2„?…éB¸ü(„+ÁB¸Rž¬oü‘Z0ƒ„2F&4DdB tA؈H€<O(EÄÂFB,rEèB2I0B$côAmA*iÄ)ÄI<ŽR€$T$§†,2F.¦£Ä†B˜B„Ôˆ‚D˜B˜Ixì8aA‚DŠTˆŽbÁ¦TŒ>‚$ˆ$ ”‚LD„Ò"ä$dÄpAÄDF„\Bƒ„tB)Ú$†±BÓ…1"h„`"A'‘ÀI@ˆ¢Å(C(‘„M(&èDÁAG‚LÌ1AAH„€ø÷U°…b(B0Ä(I’B#hA‹CD%C„ØBDŒ„‘I,„2$‚ äXRŒ2H„$A"…H*QBdH8‰hD‰²Ô”BCÔI!„H,%ѱÔ”$%AcG¤A¤!&2„+!F(XH×D(#TîˆH%8“*Qcl5É–"O(á"TA‚€‚TMÀ†¨%Dhˆ£Ñ1„‰{A¬(lA’ô"&D¡AQ*˜X#2"ðHˆ2ÿò §Xƒ#!4ˆƒeÉÔ$’9†Ä„IŽ“ä*DALè"ô1F‚Q„²td„K!À"MCA"³LBH4E‡"l8(N…²Œõ…B€1$D"FøL#dÂ(´–BØB‘RŠ8Bƒ!ö…ac]»NEÁZA!Ïô,‰£Lr"‚|²˜45)„¬ö,ŽD>C\”š‹„«"¼O‘]ÁO)ÓDÃ!6FQJ(Lâ„F7ÈO!êLR(…xá¡Ô”r˜öD‘O*A›QM5/ÔÄshTðÁ:lÂbˆ(cñBX‰ÙHjŸZ ‚$%ˆ0BÀ†A ¡A…‚TÉE,›”ƒBŽ#!Æ&ÑH„Œr„BXB, (B8D#ád8@d„ŠX!BŠ$Bª9‹Èƒ²(X‰HtAh(…dLI B H`!(KX0)‘)@AHä„âA˜ÀD’I‚ PD„.Ph€˜!@Dd¡(AŒEñnFMXD'pB8…t4i1Cƒ±Fr"O‚‚òÉ&cÉ.ea‘F‹!$’RL2T…a!.—bk2‰È"Â,($(‹!‡pˆ˜C,Áœ.—$6!1‚"äV%N"Çh0Dˆ‡$‡!P„Ʋ‚KŠ‹‚³‡,‘(B(MRbÓIÑ$HÈBd&D¨)hBt*R˜HO"C‚"‚Á-jBp!ƒ‚áBAà!4ˆ[!˜Á!"-‘N*šBH˜g„ A,4ˆ(äYC$$A›DF!2hR`ÂF1‚a¸„8¡$BJQ†!`!¼“„*AƒÒR¡‚àƒ±(D2h%Á$(mAÄ1.0!Hr„”‚$„K¡Ý£•Ã(„E‘BM"L"ä"AAf&$2d$‡a¤ˆP"†1LÒii†BÄ¢‚â#8A‘AR‹\r‚„‡Y%È3`¤P‰¤!FdADOÁ$"DØô“N$Uˆ"Ad"D#DB"D!(A!(A„42¶(IBˆRB4Á&DAE FI”°DAˆ”€1)ÊDƒR$(àp$t„R$`cÀDh*Q‚ˆ6d*A–ÙIÂ!M(ƒXB'"('(Ð"Ȇ‚DB„„h.ˆð˜C’)ŒIb!hY(ÉðL!AÙlALÄNH #TŸ5`%6$Ah!bD0$&DRBB@"!ÄŽ„.RŒ*UH°'DfBD$ƒ„J,$A”„ B Áœ>zH‘gB"%D*«"„,ÄEIñDDADCl$d¿J€0ˆ/b¡ˆ$£X$Œ8R)ÂAŽ#’‚2„)8¢PBRÄ!‰"DEÞ(BˆAO„$ôwˆ cdFH†2LD“„G%2‚AAIL?HˆåÁX"*ÁÇH<ô$"M&šQ(ƒM4ŠÒ‚ÒŠô¨G!AE`A•òHHQDKTNT‰˜D€°D>ÿŽ‚’AH0DBE¥:%HF1¤0á!Œ$è"˜$WˆÐ!X3‹˜2‚)Ñ´"/†jUÙ(!0'%©8AX‘AD 3Q„¤‘‡AD"HN4ñ§­ D¤€4&hG`P"àA$B2(‚,jä1E€@"B7HA 8ŠFÖD˜„pòHD—"‹D‚B¡"B„$¡DIA…H(Ñ‚‘"A&È.Ó M$$DŽ„O(˜Ä($ "D1"@‘¡ŠÐD!¡(w„!bÈ "ìH9„ £!E8m!d…E¡€Hø=ÊÀ"ÀƒXa1ðˆ‚j(B#ÈB€‚€Â"Ài!:!¢CD’!D„€°‘@Á8("@”@@RB0ü3;LÄBÍDJ6ÆÒ–¦$YˆÑ"²ä‘Ž„/ä²FÌ„'Æ%lDnDNFo~2†R.’‹1‚(2²0LØ‚hALüxK¡LXmHD&t."ê!t„ÊDa†3)›1*YLgÒFd„^ƒæÑ$Ì!¤D…"‹a…„ÿgEÒAØ!B£BpAÒ34ŠÇˆ'ÏJB„Ò!rCõ$FdL.$à$Â".!4ÓAƒQGc4¾2F,ô5¦lDŽ0CÑ☡Ÿ%£ˆU‘“Á%væ‚eAGI¥QÔA×”/ÑqtøTl£5Á:Ïrq‰´Dr'æEæZ6-$'(-bŽQŽ"$Ѝ4.à˜XGuž…&¢ˆ™Á‘Í#o!ø¨–=2OjS,O(Ã…*-#¾Yb²œ²ø*ë‚/Tô&˜%Œø%¸˜3>D'ÏÃHE8BFvD‘\ŨEC1öXd_ ö(B¯æ¼ñ?±v¨ãõ§þÏÌurhò&"?´øÝÕÿ:äzïmæDqHäFúÓµ/AùŽïZø®ž?2©ˆ¨oûù+ƒªû„ž‹‘þOJûšŸ)ù¹“O[û‘2“X]OBú–¨ÏÁùŽÍ‡žÏÇu::žs²“Æ{_÷õskw4=q?4õKh?&ôAÇÿýú?/bØBñó¿×ø§Í¿¦üšž)æÄözHøýÓfoìû³œ_ëúŽ?y‰ù‰¿;ñ…‘ŸÙûµºéÁù”ñÏÛø²‰¿‹øœÙÒ2/OHù˜8‰þ©ˆŸÚó[¿œù™™û¹‘1ñ;wcoaqþ¿õôïóXST•“ñl{ÿÁõBåþ†’ï¥ñRZ¯ñ(>o…±¤Oã…ñw„Ÿ‘ñk5O!óA¥¾ÂOËñi>-4/cñ1Õÿúú–»©ú¨ˆ/‡Âh„ú¨É/Êú’º?鹜ºùˆˆŸ˜ú˜µ/¨ú*œç;?†ú"'B/;ø8¸/¸ÚŠûº‹#!M¦/"ñ4¶N"?¼ô3o…Ü*ñºOXƒÒfq>óCo!ÑbõWïäñZz‰ö2Ò3÷da[Bïq5I§$¯$üŽng$'¤…Õªå•68Lÿ'·æÿ´õSS—±EôG5KÛ?~ù=(oar6ô&Q_×ûŸçŸì¿‚ú,D‹fÍ,ޱßkýÿ³¿ò¬/¸ùƒˆŽŸˆùœªO*ñ·—?"ò–6/"ñ6’›ò™³¿¨ò’¶gBÏR’%_(r"ú¢¢?|únL?5ñ‰‹·¨«˜8‡!/£qÚfqò5öFR+C>r/ÅòHabÍ_¿…áäqNúÂÞ¯¡uRòJ¦÷:yot GC]EïCRƒÁaãÑUü‰7ÇÌŽ6GHìôÅð¡ž#qaŒxs82ůCÒ<>a¡8wNêhS&¼3F¼òážÖLxsØbx2Ôqü8¦}ç‘<>aA8·Dâ(ôÁ:EñÁÄ~)qaÕ„xsÍ„§ÃÌ/C‚<èçÍ}ƒË„¯t8ôa‡C¯¶òa‹1Ox—8Ox—8_ìóA8O¨óa®†®†ø2Œ7‡>Œ¯ô8„¯ö(„¯–¬ï–(Ïx—(O8—(_¬óA(o¨saø¢–®†ø2„7‡OBü2KBüiBøiÉúa‰ò„[‰òÄS‰òÅ„òĆî†î†ør„7…nÄ/ô(Ä+AB¼–ìo¶l-(IÁ(8uèBäB1&d…æA‡bñ("ÔH¢¯Aâ(±H‚ÑÊ‚Á,8W&u(R†.‚%øaœmA‹!‹2!DŠø(Ž(†¢$$‹$,rhjC!¦ctAØT‰mA(HŒƒü$O(eAH‡Å$N$,r\hBVèâ7ÜØ†³ˆE²ˆÁB!Ô$¶˜B&1´N!cM䈉‘‚‰‘ƒ‰“‚¤!ˆ‚Ñ„h#´A„"T¤¦4¡#Hƒ˜ƒÈRÌ.()Q!(Ä((D!…QD‰a!"—ÿÝ 3D¨„…b„DÔBF˜„."C¨¢H—(TG,Ô@(X()H *b‚ .(3X(LB‘ˆAYBb'ˆ0«ÐH©!â‚AC(D‰E„FD"a\9|ê$E’ŒÝ"!ˆAL¨%±ËhAhR@wH$²A2H,4"ACÂ*CE!R&Ñ«AYHX!N¯H*‚ØBÁ‘Ç"8"ÁG0H<8D”JAŠÒñ´üÐHÁJŒ‰‘H0!Û©ŠQB°rÉ"1$G’PA„–„BÈI’AšR,¨°¢…²ŽQbÄ(G”B™ÑBH¸‚¥X…aA®j(¡!A†$áaŽ"R¨Bƒ"”‘,•%B˜¹,X„³ÆÅqF„èQ„œsB,9¦L!¸h˜g%qQTPI"Eœ²h‘DÔ‚ñA(€ô‚4°(8+uÁA”RH„_¡–ˆM¤šáÄÜ⼈r"ä!ÒDèA˜+Oq¨¡+¡+F²hd8ÔdƒÑ†„ÁoÈñ¬Åbˆ!„hA$D(HªƒF¡¥„ŠQˆ¨`H1.’ r!4(!D&”D"Ba„†qAà"€‘BÄPI0HH („4Ž"€62ŠÔ(PCˆ2 H¨‚„D‘ˆ(À“¤P( BD!D„AQ˜B„¢pˆOB"1BD,ˆ#ˆˆ„øå½p*ì"F^AHNGùa,Sa#áBQBVöB!Ã5É–!!K8c™*iEjBOŒû„:Žéêqaèjñaˆ/Cøó¸>„/ÿ8„/ý8„/¿ú–勹O½·ˆó”S‹8_­ñÁ8O(ñá8¾†®†ü2„?‡éCø2øC¸ý8„+ñË¡kã/"ÈAŒR…&À¢„„ÈA‚‚„8Ž“¡§‚HÄèEèBX„@G„„!ƒ„xè(AŒˆvDhBÁ0L„F Bˆ7ÁŽ„(åhbÁ<ÒÄJŒ¡H„#A(ÒÄ‚A™ø…"D"JétƒÄ)+Aˆ¯H FùS&˜„AA0zLjD„(A;á…„öA’#¸HR(MÆ*‰1¤B®T‚"ˆ-D…1ŠC±È‘/A(÷.¨à*)Tˆ$Ôˆa( AT'C _‚àu¢4‚ƒ49…¹”$V¸„D*UŠ!Ca„I‚ÈD‹2‰D¥I…2ˆcíˆ%€áA¨b)aHÈC",ˆ|B¤Iƒ˜-¡—Á£‘&4P”Jh1ÇH,Á¨B·( ÐÁdh)X‰”ˆ!LÈBà"&tÈ"H.R@Da"Sv”"ЉM; @FrDÈFiÀD%tBHÄÂ+„./yH‘+¬¤9!4"K(L¡¼(Ôa‘ÄC`A‡|hBR‹%‚0H(²‚ËJ°–ˆÁDCb„DƒØB1(‚±‰áA"ø),ŠJ‹†,AjCBÂh-H&Fô#HH°"Ü1?l"·C'Œ$1EqTx„×HÉ$±"Ô"Y4‚N$HlBƵ˜Òc"á…±‰•HGˆ‰Aª´,ª-2Z!M.BDT`†Dž(Ãr2bˆ'ƒI:5ÿ1#ˆÃ„#âdEbB/¸á†"Ä;eªB†¦”-BHŽD‹ÿh ˆ Ä&"Ž" TH!‚@A$ "!ˆALªA‹„€ƒA'A‚@„@¡‚À‚0)€DT$…ˆ(!Ò=.„‰2#„0A‰AŒ”’„àˆ„(!(H$(C*1I$ ˆ/2((ˆ0ˆ„°ˆñA(L€ˆ*8B B ðïs°FQ‚{§`!ÌBRàQHL$èD2È'MhH(Ê–)MXX!‹R!&äF.0(ÑHŠUŒ²˜‹,YAH’(†ÔÔ‚(†„%’†8d‰R( ¢,A„ (ÐX‰NƒÄ*ÄLˆ‚"Iá¸&8LÜEÎE&ÆKÈR*ÈBG¸BLAä”(D#²THLrIqBÈD†¨„K‚£"¼„Ä,€T„ƒâDÑB‡L ,)ÁXˆí*‘B)Ô!`„,áH$"p‚˜!°H’0Ä!…b„AA0D.A&A!ƒ A Ch¢°„’(À˜C‚:Á)"B¨D«AŒd¢²Hô„I"OA(¸¤4$JȈ†QI"OD\š’FCxŠQ‰2NH(UDPTfY$€“)L”h&PBHE§B!ð$HX©A¤()AH*³$„Ì"ŠÁ„àD¨„"ߺ ! Á@ˆ€A!ŒB RHÀá!€8HF”D„ˆ@Q„A‚ˆ€8aˆBˆFH`E€4È ˜,7¦àD8S BJdH‰ Œ$ˆV$EE!À¨H!€3ÍE$‚0LñA‚"$´D…Bk$ˆ’Ày…PˆK…6blH‚ƒÜŒ´‹ Kb D O".DHBB4ËHó(¼H‘DBC+„D8B£JÔ‚˜$T˜Œˆ˜d,’DDD\„F$ðH„‚>„PHâDŽHƒ!(é(‰æ„A´ŒÃ„†ˆèR7¶„!H 4"#œ!rD’!G„À„JꢄàˆD)ˆ5„¤X¤„‚(°H5QÊhAŠ€8Ì`B ÂL&(D$’H„ÈàŸÕ‡¢@‚Aá„(Q\9B%bm"DÀHJXHh8GTt‚T‰A$H©$N‚À(QT`$"Ôˆ"¤H BhH&!¡ˆ ‚IòDHDéF€Hä„5¡ 2A3‚’"!0$E1"B#ÀH@AB HD@‚PDpB„TJ@ˆ(Š B ô‹þ$„E"%A€,ˆ@H H!D’ÁÔA!‘A@@JÂFĉˆˆDŠ…D‚¼<Å-LJ4Fƒ=J—+BGDg.r‘2B!CXáOƺBXb_ÁF%Ô„lJ‰rFØœ‰üCŠ5±á$¨D±(ôI-AX´AhA‹dEhDÄB™¤H„hˆŒ²H):„Ž”…ØB誤DÊ´”äF¬C†´„8R„´ˆ|b &‰adJ1aFX$„X$L‘&d"è:ˆØB<É\$ Aƒ´HôLCÆ!¡BH¯ÒÅtDÜ”À‚EEäTD¸D²EÔŠ•‡ÑB„GÄ^AÈ@(âDDfU¦D$áI|QhC(G‰„ÔˆÔÄXÈx‰„‰©’?]ð2$‡B’!‹bD-B†Q$ŽBOd!Mm`ŒÔĤ4ˆˆ½‚EÏÃÀYDI$X‚KB%aˆSb\–D(1C&d’dE´A,h„$‹˜J2ˆŽŠ’d…h„‡‚`‚D&8(&*ádX$HJ¨È0D_×Aò%M_R×ݻՄäÖ$ô,j/ˆöÖŸ!ᥡ™_å÷4X5÷á#ßO÷((wVMdŸõÉ¡3ýw¯ÇõšØË‘Z÷4?Þò¦f¯"þ:B/%ó¢"/îúlHï$²ÈùÊROÂúH(JüÑÙ¸ŸüE½C¿4ú‡KŸú…-ݯ)ü냪{”7¶RæÁº˜xšú,,^(JøÒJ/'ú‚f­þoî©íO¼ˆÿ„´Ï-<-{ò÷eMÝQ?$d¤.lÍbîBn^ë‘/iñ3²¾tïëÿ”™ÿ3þkò:æÖv]ôìõ›2¿áý{ÿÿ½ñX•çÿÿjß>öëc¿&û‚?kò"&ïÒþÌN/œòêoStHØ’öÈõß‹vXùMM_|øOC¿<üKIZþMißîüòÏ;‘¨_ÊèzüÛ‰̪¨O)z>Œœbè~þ–o¨÷îÊëÈÚåŒñè¤ÏŒú·/Ð;u{ÿk_”Ñ+T»'‚¬ø-ÄßYñØ+¹>‘?qåSùŸ3¿öòµ¹¯Sò)AÍ,“ùA¡‹Yû<³ÿ…ù‘Ÿ™»8û!á/bòçc'¯/)û"§ºö©8ø%¥}§=)_Rô-µOѳ©ùI—”=#1üƒC‰ôi‰oj÷'WÇ:ñ$¤ùö¥Cù¤´oiú(GFÏÂÒîòB²¯*ñ2†¯«»Äá…¨™::º<û;a·±[K·¿ÂÖäôDíÿ~³•¡™/kó”·ÿ7¿óþç½ßömeׄOš÷Q›ò/=õñþ•¹ýÑQŸ«û~ï¿âú¦¯*ó‚’/#ú¦'¿Úæ=ücÅ~7ÿ”öL!_R´ìóYÉþ¡Ÿ˜øÁƒ=[¿<|Kù‰¡_Òôéöo¼û7„¶äCò„óÿx¡ìÃñ¨¦ï’dOFô,j¯%Ó¢ÿòBïí™Z˜š´˜ÿl]å#óa§Ao4!ãÓ6-8sHø„2ðá»G’¨i¨ÞQ“ÆÌxsˆx1Õ|;Õøˆ~ÑV8·Dá(ô:G­a˜niÂ\øsx2ÌÁ+3O=N¡k%ÍaÉóÌ3Éó„2IòÁzA¬!òážFȿnjx2äBü:dËÁ#¾ÂÔÓÞÂøI§C¯‘t*ôcéòA‹¨ßøµˆú„S‹¨_¬ñA©O¨qAèêqAèêñAˆ/ÃøÓˆBø’ÁBø’ÁBøáÉú–Á‹¨O8µˆú„S‹¨_¬ñÁ¨Ï)ñá,Okqaü¬Æú2„?ù(„/ü(„/ô(„/‘–¬o–„+SC¸ô8„+uË¡oQ÷-vPAH„2E&Q$R¬âô(‚A¨Ä$8ŽRÀA1D8ÕèR!2O"£tAØ4)OA±AÁ3á8EHQH•Ä2Q&4AŠ„ÈA‰HAˆˆ'…ŽR…DBä((Á¦¼;ãL¨HÃ#%8RfÄ"Lx‚2ˆk$†T‚`D`Î"Æ9‚$ƒ ©ÔB(áBi˜IK‚B‚&D¨Bˆ&‰âÈX‚dŠ 8¨,Ñ„!ØTÜ(ƒâ„$t%Ȉ€”h8ñjŠ@´–HBèB”T#º¢%¹f‡(AFÄH(N$Á… #…BÂdDÄ"DF"ŒÒAd‚JA¡"%”-(ŽH2"¸'Aˆ…4‡l"‹$D*D,N(R/x1Kˆ†AB@†”!I!#Â(dIØA„Badˆ¨N*‚'†X""‚$$ÒBdH”A $F±8H<ÆHˆ"È„"'I,h°!È!JV(ˆDÒô%SãGƒ‡d0Q(#1EÈ$†r.Bœ!Dˆ²T”/DA1ˆ)”0,W!NˆL1".‚BR6!d‚EA '‹LäB;IƒœG¬ˆ2X,ƒÈ"Ä!˜?‚¤B‰t!¢…‰6 ™‚…èY4LH£Ñ„„ÈFbB9T%,#ÑfÊa&HQN!MŽ®RO"8Iïr(ÈÌ„1AAšâa6Fñ2QÐAÒHF”H¬“x&ñÔ?$ÑÑìaÄ”%Èè¢!"#ÙAˆx2á6"‹$&ñdNJ"*µiˆŒqBâˆÕ7J@@H$"„PH1ˆA‡Bˆ †1C<"R‚ˆ!Dà"ƒBH0„„‚B$ˆ(…ŠdB+Aˆa§Ä‚Aœ8ï„B(CH•(7($ÈAF “!ÀHàˆ„¢Aˆš1I‚€AÈp(@˜"(-XlqAH‚AŒÌ„!À%B$  AðWÕàB¸ÑAac£%rB™‚-A)hqŠxiÆ&&u2œDÏ"Ò¬w†Q¸!‹G5Ìä¶2DÁ'CIñt"Õò£´K$àB–H/„ã)èB¨Haˆ‡‡­>h)1L‡*!ÊACa,’‹&Á(‚KrCØ(r’Œ!¤¬•½¤?öD`9”8§!EbHNd‚„(A](FdcHk„¡„”IäIC8C(CéB‘8=„%$"$â!8(˜'¢Èhð%Ä*˜‚,‚‚ÌBÄ"À+¡Dˆ¨mCñ#MЄè$”F)a(ÀÁ,2O$‚laFƒô"…#˜J@4Z^(€QB’ÄÌriA $èBiSˆ#ø1Œ€Ä,9H*DÈ€2‚Äd„R&ŒŠSH,(Ò$(¨JM¤³S![$AB„¤¬Lñ,$‚!b†ïAbÂ(\E¢H'Kp’b(GFˆ5H"$C¢Â}ÀAò¨GH3¨D,‚„-‹$‡/BèX&edƒ”"iì5ˆˆðrž"R‚4$€DÒ$$D"iFƒ(ð†Iˆ"Bð(‚I"X$B.DB.„) ‚E‘‚#„–€z’D8$,#\‚H(Mg3 )UxBh…5äADxÄc‡M$!‚TÆ2l$*Ô„ñ‚*4„J8B0"@b‹-$‚L&"T)Ô‚ÖA"”‚#Ã$C‘X½0(‚ÙD2¢I2E¦aBŸBÔC’D„%"8Hƒx"ôW©À$Tb"àæ…â‚0(DR#µ;F(!c‚d(HA@XB2#¤¨!D„ #ᨗ¤!FVFÄ‚hGŠtÂBDÌ$Fo"T)ÜHa‚AðB¢@Ê&CÒ„¨ÄQ` ŠRbA¤EdSLf€LDt4!$¨$1€¹B”¨,Ä&È‚ˆ†¤$D“$Aˆƒ50¢ïé(H$!%ø!AÀ$Y"Dt‚!‚ABhft"ò(ŽAÀBG.GDHz!rA4FAtDÄ…äA!¸„Q#ØTƒ,’„MŒŒbM"Pd±!ˆ¸¨Ò¤¸‚‘Ä‹HHÕ8¿L{$AT"A&ˆLâDÔÄ(K%¢Œ$DH%)BŠdB!,¤K#a!"„fä$Ñ#„±±Œ)E4¤ÊKˆiaiÉ)NƒEƒô$H‰h”DŒ"²$¨„†*üÌ_fIALbNLhBN&HO„@˜…4è€è$4D‰$…$$4"‡DHJ‚IÊDEÂT‹&LdbÉ^DJä†^(F(Ñ!xÒD4‚LeäA,ÄAÀBNÈHD dˆb„NñƒDB€(h$P"0"(5Btf $r#H@ÔŠC€C*D"#ñBˆ` ”bIB"@Ä""®H"#‘B†ÄB€)òö "$)H8!*!ÂB(H((€$$‚#6"1€‚‚À"ÀB$ˆ"EC#3"Z$1B‰‚F L@B"Ì=B(G"?"tH±AÂdKL‹$-!#<a;d;¥*´FtRxBè‚ÄDą$-A$J”(=$'Fpdò…* $AEaA,d".LF”’'„(-„,²ÁžI¨¯Fò„¢‰Iß$Kç³Áâ”$xر´,ÂA/üK„%âBˆ¬‚!ø(oöUªð!(%ø!DVB-eò%&@oL˜! ˆ$j¢*´ˆöhdN"'ET@2HtBò2Fñ247D%+F/%èD§BHLâA¶$Ã3U‘Ø;‘åj/b¨ˆM¥Zx†¶Nò&D;,KB<ˆ‰Ë"ÒJN‹„ÊÔ67‰%üGA)ˆÖT/húC…ä"Ò!²!B~„þD,.„ˆpB4&d%QAB±jœ#Nb-D.[DO83Ž$ÔBcáOñ1$_¦AUÅI’BBMTÏt½$µRœ)òÃTMÂ9ÄvGLjC˜"I¤’K˜7BÎCGBF8*eR„ßH|:R(#´¨ø~’$?Æö$forô)HHJÖÖ©ô\÷ý.%^/!ù÷o—»ÒwÄôÞ‚¢dODxÎôQÿ]7ÏãùëAOåµ÷\wõƒQ__í#óV)ñu™Ÿ3ó_u?ýGòþXlOÄøÖÔ/޶ög¶¾ÚõTQóOáÿ[QoMxìü¤6cý†„_Öü,®¯…òSw<.º\¢„?üòèODÚhïn½r´Dì,ÿHRo÷8„=jÆò'/ï$ä$tGú#/ëd/nýõ™çiIó6o{ý[/Å»þLökGF˜hlþfÄï8õÑ{_ÓqUñÃÒ-ù9<_ûsÑWy–Â4OKù¶Õ·íOÕ÷\©¯½vu5EéöÈöoCô†ÒÏøÿm/-ñZŸÏûÔ5OøvL¯máHú¡„oZô[ŽKèÏ\þÏ÷WGÏDôN!Îó¿ÃôšÖM>ÏŽ8D/%óÈšî¨OÊüÏ·4Ïrrmü#j”­C—ÂNÖø¼÷ysíîkù²3Oq÷t—¯Kñjªžø«!ƒòh*ŽèN¢ß»õ³™¯+Ó¤ø™Û¿ù“O#ù1óYóó/kù¤¦+hçŽ/ªø(*ßñþ!G‚fò8¢Oúýëˆÿ3ó•¡ñ{¯)ù4Zª³rvø6®#+agB/§õ(¢á¿Rr)õ!#(:Oâõ:Do§ÿLRNÒ/‡ôúZO66ø|öj%ÕX¡´tHÑër'øe}ë½oC¸&ù¶²/Qóu›ÏKñ:J/Ž¿²Hò(LnèohòŒò«—¯±õÝÊÎÓ¿•ñ“6_+å?÷Ñ·?C¹6ù6&O8úcÌ«‚¿þô4tN$,‚ôäè/múŒ®?SÕ®õÙ[%/õ[»Ÿÿõ¡¶$7ò/Kø²¦<ó{Éÿžø»_“úA%Ýaná?½ó‰¶¯øÒÖ¤å(½Òôºz.Þ×”p2Ôò>$A£Á!ãÑXVL8sMì(#øÇ:Eø„îY‚ˆ7ÇŒ82\ø:%MÁ£Á¡ëVŽ3‡„Ž2IñÁ:IñÁðáž#q!ŒxsŒx3ÔQ¼;Ú<áóÑ–¤9‚2G&cB3!2A†A‹‚áBŠ„š‚+!Ž($N,,Á(,R„.A.1"'„†-Aƒ¶hÒH’¯Aâ(ÑHBÒ‰ÂC(<^„.†W„.ƒ'„"g„†Ø4()´(’BLÚø[,ŽN(,¨$$(Ž"A¦Fèb9Ÿ TÂ!„a˜(G!Œ–$#Ø$…"nƒÄaă2DD‹F0)H²ž„B2$‚&†È".Z`‚CD9d/JÅA-„ƒb¡’ˆgLöˆ"D2‚Mh†òQŠŒDD¤¦(ĉĂqˆéómîO(8DA[#A+„£„â!*tCƘ!AKBJÍJ!ñ&‹$ hd2K(ŒÒ(¤N,4,)¡Êæ‚”!r¨’$…tÁˆ8&¦´BaªFq"Ø„.DàŠ$A8Ä$¤ŠbQ†s…B#ÆA€ "v˜R`"E”"Ì…:‚."Bd"„XX"‘-#H$„9FM‚d!NFA‚h1L6z„"˜l1 )A2N„°ˆDCñjë$‡A¡Œ€ €ÁŽrd”D"&,hD.N˜8D‰j!C"QBˆ…²BAEoˆ!‚Òh!˜XH#q¨ÔH²ˆD,aBŒ•AãbÂ@x6„G#‹,Òø4ã§D3S!ƒ#Bè!…RD#"áäˆ%Ô‘jFfhB¬†ˆØZ¢A/ƒ£÷$<M"$‚_(‚Ô!AQA8±­-$'d‡‚ƒeA¦ù&ˆ4M‚K¤sviDHD‚Q‚§AÉAŠD´ûwS4¢H€FˆFA,L#A1A‘D @#A$P(HA%„Aˆ!¡X!$!`"@rA†´€…(ÈÀ‚„Ð!/ˆ°2,è„(Hš…Ĉ( x‚²(D0¤6dàC´²(èK°"G(K(,€"À(€C¤!A2¨ÿ.OÒ’f¥p(Ù$ôHÀ¦=DBi}x„rTiÎ#bŠ1„\Ø!aD‰qVq!8G‹a…uJ…ó(ÒC¡4Z!Ï(5$Žx'„NŒH’‚"*›Œ—…+ˆƒÒÂaˆ,ô’(IòB$KódH,ò8'E*ԃє£’X§Ò$¼Hñ1Eäô"$ÁHeˆÈS„B¦RA‹AŠA(rH8AŠ´D1/D²ˆØA´(QdB†f…&„”ˆ–º !h!‹‚x$²â¡„f…K`H+Jp(!AXÆ6ƒ>D’_ø ,„˜‰”…È&¸FÈ!D%H´N"™lC‘*„+„fQ$ŒR!.„€²b$"L²!RH(QŠjˆJaœ,¨ƒ±ÌH¢&b&Y&K&à’(L±THR%(i¢ãƒ„!‰`"$@I@ A€ 2 ÂB"‚€8"(‰" "‚ #@$„,‡H ¬B0 €ˆ‚Àd3((‚L 1" ¡b)(°H8  ä€$aBŒD(„œ´(qA¨Bƒ!!â)xÈàB¡(EŽà’xÑ $àk¡„+H!ŒbCèI†ˆ‚òA¤(A(à+8’"à!bBŒ$óíb`A„.EX‚IqÁAƒAÉ$XˆŽ‘‡ É&¤˜!= ä ®G^"!>Hn”(X £’.a¡L¨&¢à(F(¡!#áB¥2óŒHLrN „2"¨€(.‚'"A@ÑD’E1A€¶,8R€L! rH,(‚# ‚DL2„…H„R„(IqAˆqA`!ˆ'Áˆ#‘H€„’ 4AŒqA(B¤!€8ˆ'‚D8A(K! !æXA„*ˆ"8*8A:€„2)7D„„(Iò$4U FøII—…¸ø’’'„€’$Ob` ”tA€+ƒ/)9"„ƒ’$OBÓ„"VøaH—„" "±ù’²#(¢!A(Iò$$K!ðñ$Ð(1Á€„€‘Bˆ)!„¡) "2‚"2f"C2¡*ƒB¢!€!±(©"C¢"8$‚+œ6¯€'„@„D”€Œ€( €`J ƒ("@H€€ò”y¼R$A’&*eB“¥D4Œr‘(H0ˆ˜¨B$BDVhA„!:X‰¢a‰ÒE²(b…†¢ðB01†CâA¢!I4(h$Ã"Œq„â„!hà¢7ÿÐAB*¡„"N%‰å„iB4&d%8!Œ„x¡”G„B,$Q ¡!Ž!ŒÒ†!Eá"Cd¨‰„'u(B¢4`!K"D2Œ"”Db"—!&.±H‰hƒò¨€Œ±a( ( „@ˆ(C ((ˆ‚a" "D `„ˆX+ÄŸ`!„AAŒ@% "A€¢B ˆ‚ˆ"Dƒ¢" ( ù… „`‚ „„@  (€"( „"  ¡(ÀM“‡H(BDT@€0A`)$‚2B$ˆ8(.€‚€"$¡"€!!ðÃ= BD„„  L¢€$ˆÀ"" D $(ˆ,8W !€¡"tA" 1A€"H€D L$ ˆ$ߦ€AHB"„‰$€(P""`!((€ ¢"ƒ !‡#އ¬Q‚§‚‰!š¡*@Aá(A˜á)1’A$Bä( %p¢"¨!bB.:¡3€"„.8""(¡¡‰!pçQ‚0$]‰AhB‡„NI„H ˜€¢"2 ââ¤"":ˆ9† ¢:a„""fè†  c"(ˆ›ãáAAˆ"C‘ÀH…ˆ$#ˆ!€AôD BF!"!‚¡€(èA!£"""$A b$@Ò"áA#q’”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ0à(€&pAˆ#Ž(A`B„ÀA€8à(€&pAH€øô=,&ÀAŽ`BŽ`BHŽ’„  €ð̯A„,á(&dBÀAAŽŽ `B&„ÀA‰ŽŽ `B&„ÀA‰ŽÆC„Àˆ#&„ÀA„à(8`B(AxAŽˆ#&„ÀAFŽ/ZMÑ/!á((GB&”Ô€ø’Ž€r$dBðAIAˆ/)á((GB&””Hˆ+Éã,&„ÀA„à(&AxAŽˆ!`BÀAFŽ-ƒÀA$0†`B(A&„†‚8†`B(ADÀApAÈA`(ˆ#a(D(AD€xAˆ†‚ø±’ÈAà(†&&ÀAŽ`(`B@ÀAHŽ`(`B@€ˆðêÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌJ•HF‘$!oAAT"""‹&(.Af¸HJÄ‘¨L,$ˆ”’.„.&("(”DMDHSBAȈŒè(œ˜,$O+è)H¤! $GDDhB$4(H¡/¨äˆ˜ˆ$|3!HHH©Q")Ñ"èJˆ²‚¢(GAA*âBdD$2AA•Q!Fr!ñA’%"H¢‚/B„È$LdK"ÅAH‚N‚)|˜ˆÀ’$‚l’¤`AAEdBPHBMD…¸H8ˆƒÉˆ+A+„â(ùºRA!%Û!‘A),*x‚¢)(GBETAME‡BÅTEHˆäDƒˆ(x’b()h('(+DM$GB`IâT„¤BJ4J‹DŒ$t2‚,(‚Ñ"x‚&’4DÄhƒ €4HJ´Hd„'!‚£ˆe’(EbDQB†!ñCAˆ‚D(ˆAIÂDDI"„$FŠƒ˜‚-$$‚xDd„ ‰ä„È‚$p„RˆtA €¸‚@$(ÒDPH6DF¡„Ê %Ž"cá"èb`BA D€(&VB(„€TLH&ÈHˆ†‚‰Ø";QHH$ B%B-‚†&r$$ !$d4ˆ$€,("°$TABpAˆØ‚4J/$!ˆˆ’‚šâAC""D*ä„TˆH†ƒaB‘F¢°A($ˆ‚Ë$(…4!0A@,ä ˆŠlXB‚K"@FD BB„H)H‚8$aˆC„+T¡‚FB"È­3G1A !D*ƒb(#‘$àBÄ(L”‘$’‚'*Š(@"AàF`ŒŠ$aˆ€‰È‚AA ’D(AIH)xˆ)¹ D#A-!C€¢Aƒ‘"D¸!9,€#!±I@0‰AGBPAp¸19$‚pAD"„ˆ"ÅR4(ÌA!2B  1„5£ATDA”(,”a(a"(’DD‰ˆ‘(#ÂC A(ÁhBDLh€cØ48$p¤²A`bHT0CD%”Bˆˆ°eKÁ$„H@ Ä„€",$’„"$B¡¨`(Aˆ@(D$€.¤ƒ $À$ …€A„(„м/^2°2E1I5átâ&¸¬ô"+‚‚°WòF¡CÑDö(AÄ*Dñ6A/AòrAOjaÊÁÂ+ADá86„6„¸’VVŽJÔD¡d&d4MÄ-¢D&$*ýšÁFòD‚-¤ˆÃ}D¸XÌJËBC‚¨OĤB)xæ©Dhè‹Ä¯Å JR!$!TAƒ:F(LR-DÈ!A&„l"|”A†ÂBLø!‚#‚ˆB”‚"Ht$HQ¨Fã„AÆJ*$ô„‚`B0%«„LX‚AHÁC„b¨K„mP‚,Dh‚l5º²!!D&“Dˆ‰4¢A"²A2„A(ÄC2 –FaŠ"CBD(ÈA)$¡H$PD!` ”˜°BHdÈ ’È „L$'!Bˆ$ÃüøL‚!!ÁB!¢@4hAphA"!DæÁ!„$&ä( 0‚"TH,4$‚4"H‰d¡%ˆ,ÂCh"…Ä’AD¬äB4ˆ°DD¨„D$¥AŠ7r0$9NHð…$ 4"ÀBA§(Àh‚KB)Ć’Hp‚$r¡D,!‚˜‚(D4$H()ÈD@‚\B ŒRD2H‰f(ÁH(„*¸‚ÔFa¨"°L"B•H„k%E,"H„A¢8FA#%)B$äH’F¤ˆ"@‚ÂFŽ@IL(CˆDÂÈM"@8ÂbDÈ(HA!"LD‰¨Ahà CA!Lc8p$B„!4¨„FDA1Hàt!ÄD„S!@´òaB3R¬Xb"(($ Hq„…`ÄB HŒôHÆp&H¨BB‘…2RHH B ÈD‡8!X‚)˜e)¡‚‚ùC”2ƒ„†öAŽ„*ErH"hhL±"˜:°„¡B:"A&ˆFÂ"F„B á(1×Ô&hEH„HÂaO9Á2EKjrEz!©DN(X…TÏÁ‰ô‚c>ˆBf!ŽJGA?#…E$”9¡‚‹…/Y"J8!-ƒ¶2HM¢&‚h†rDx!f(SHhE¸B´(ÜH¸ÂIÜä ‚A@ƒ8D"A“B,‚@(H( ±„AF,HH4"ƒ&,€$ƒ<2ֈБ(AÀ@‚„d‹àAA(Q‚DAè”´B D¨K“`c0„Bˆ#„"„E(‘(/AA„$(B©8DŠA$‘„HP„`Bò±pÆRDfôHRsôÉA‡EáA'LB§ˆ(w„((‰ºI⥲ØAËB-¬DbC3s*üBMˆ¦ÄB‹Ÿ¨µ"rܘ$L´h²ƒµœ¢AŠfEE²*”D*qø;$‹8cèAf„ì•"Ãõ$*FŒ R.4­ƒNŠŒÑv&2ÄNQˆ)’Á‚Kp„"¬1l`IŒ2B)BÄb‰ h„D/è$BFˆ+’K„ŒÀZÐBæÃD€tB˜&¤R„LB„ô„8H…"[J’W„ÀXBÁ;‰ØAÈ–ÆHh!ƒárƒRHªÄ/FQ…#š#¬!JÑ”š3dH"1F‰xv‰ø$Fd†ˆ'ƒ¡ƒô!„À8B)‚Ùa”,ŠaCJ+ò(DÄ.H`C†„CL’ 4ˆ.áóÇ‚Ž1 4"‡48&‚D¨A3RC„Æ$Hð!)2AJ)cH)8(€F& BÄQ)Àˆ@H¢E…¤‚$SÑ8B0)I$_+„²L(ÈäñÒk BÀ4À!B´$d"˜ Œ€€F!VBCB‚\! €8(I2¤#IADˆ`D+I(À¬ÓDb( JÂ&¤&è$!äq¤B`(&â„¢D"¦Bd¨F€bB€!Ôt(K„B%ȃ‚:‚ô‚Da%aBD‡#aJ´ˆ"ňJhHH?â‚$ B SbHF„aAD!A(Bdh(0"(0"`‚HãšC""Â’!„A€$!H€,Ò2é7!FV(A4*Á$H°"1A("`$&"‚ÆADhL˜R(Ž‚% "ˆ„¤˜ˆHÀ†hpÈ„ˆCA*$BDO¤ˆN$Ê|]`$B,ÁaJ"Òa!2!NAÀFL’$DA,‘‘!€$²Bd”*!"…BÑœ¦‹!‚!è„b’ (ahL %¤ð†‚AˆL("MÍ3Š(EJ¢A/!¢DÀB)ÄAE$!@𢄀Jª‚D$bB@raa*‚`‚(G$Ž$!!Ê(ô¡„@ ($,A2‚Eúì¾Ð"¡TAB"@Á"( A˜A BB@A, Bª,ÌDD€00È5AØA(AØB("Ȉ%ƒH’A( $!#¡HˆÀš£O£$A4E0)(BPHB$$!AFP"P$†‰1!)ĈP&‚@I))$ðiŽ€@HHA'’€ a!`dAHd%’DAp˜˜)AÔBÁ)A@ P($B$ ™,„BA$ƒ$‚‚Ü=H DZR¯4t3q"ä&”a."&”h=1+D+BG%˜f(')$Dæ»Ñ©"-((±GáK8–B0K.‘žA:HÁ…‚”/(æ˜õ‚â%²9”ƒ˜‘³¨&äBÔáè!2Äb΂š¡LJ²ÄøÂ‹Qa%h$#ôb5邆2."3A±Are1E„òDdA8ƒ4CY!„ÔV”„– 'R"DŠèbDÑFFÔB/‘ä$™8B„p¤TD¦˜‹"†bˆ!+(D3èÈ$ADĈFò¦Â‡aƒÁ‚AË–CÍ"/"‚tWSIJöƒDnB"`H‡W0`AG!$€Ö2,#Jâ!X!b†tib2ÀšŠÄ˜)ÄÃ+HàHQF¡$# 3<‚'0"*|!ÔDM„Ć)È‚%âcEó$DOd÷'W¯1´HÔó&?Uöb?2ö&6çå#ñC#rTôW†ú[%WDGÏCÒgö&>ïvÁuuóAa}amAoÁý©I‹»?mñ?3ý£æ/lòÖ“oíñ­î«!FqRø:á‰ÿú¯¶Øˆþ‰È­ªßlz„þ™Z¿¿1¨î(øÃK¯½ñ˜sŽEwøÏÂúLh…ø]ÝÏÙû.¬/‚ú*Ž(ƒ¹RßæúLaÓÕRóGU_VòOB;Uï”ñ)/ßvòwAŸ—ôyc?7÷Cc?DöTwÿ†ÔØôEeOdó.oCõ%uÏò²FÁC7röAfný<ÙŸ­¹ó4OSõTB?hú·/eó?LÕüA!N3²…õ™¹¯›øH‹­H_ü¨¬?Dö«È?*ýÛŠ/*øˆ-¿œôŠ˜;-_|~oÜÌôX(ýßÏú‰ÎÏ&þèþï„üÈšo(íoúŽlß-FÒTqôr¿¤ÁY—ïqÑlñ*¯¥ôY(OAñ"2/!t3òRSbÃñ;%OBôe$m.í6/´ó:KßaöGQJT"%¶!ô1;í<ÿ/ñ6OCó5g6?fô³r?¥ÿ^-“ö!b^yŸ¥óx›¯õ³úïµõH‰I­A¢ôx¹Ÿ©³Ix¢B2Áµ[å~Ú†ú-ÏÆô,,•ÿ<åî„ö,nX+O¨üláCÙBýw%O#Ó:±BñSAåõD~o”³!a!'ao!ã"µbc±&ÖÂ$GROBò<OñxiŸÅÔ7,ôB"gîñ?i÷ô”&ö"6o!÷2ƒ/ñóÖóS!O¶aô!1Ÿ…ó[)¯¾üÒ¿‘uûÂÿôþ¤A¿–¢4§Å&’‚+H‚¿¼­GjöH-ÝlÇÆÏŠwÙü¬¬íÂÎúNÊŠ/-åiòjM_E?CÒ2t>ôA³Ñ22>cÏá8÷lŽ2Iñá;M"¼abîy2qa¬†7Ç*¸2ô(Á¯AöÁ«A-áë!MaÍ!Ž{ß„Â2A¬3T¬a&Æybta¨†7Ç‹/Cô(ɯCÆA«Aœ¾ÆaÉâ¸7OOhS$¬3L?¬qbôážCÆ"7Ç.„/cäÂü:d,cÈ+C¢AC€O(À4B€1(b„R-A@!L‡À‚ˆ"B ,‘Dƒb8ŒH"ÈHˆXŠÂpT #Aˆ1hhSrÊ+„`,p¥ñý.I$F¡APA*$C!Â!$&d’„FÃB.HrI@‚b ¤Hƒ?ˆHBˆ$“BŒ$IHƒ2SH b¼‚Œ‚,l$(GØsÉHDB7dN(ˆGH$bHLˆDÉD‚l!BS„!¤†Hqr„8"AA&bˆÀAübP)JxJ!áD”!-ˆ‚"=‚ŒIö!BÔˆ(ÃqÂØ$!RôÚj Ø!%*Q¨EQBJ1b…%är1H&Hè‚$ƒÒ¤R!,hD‹(¹›@²DÁ„6J4aˆE†èCƒ©A"‡HQ«CIH’² AG#F,b‚0`BŒ?b6Æ^A#qDj$´VT£MVÌ1BHÒ$ /…ô3‹(ðLA`¨ÒhFÕ"q„ˆN.L'¸K‰’‘I"¢©1¦ Hä($‘(NÄ‚–8^At¨t!xKQ":‘¢=ˆ7äÔFÄ)(„Ä)’$F „d"NÃÀ!A Á(AN,€DX€Qˆ! c(@4DH!‰EA$Ø‚‚ !H.„Ž„€Œ„ˆDI80Hl&D)‚ÒH(„"J˜#DBA)4$ÐbQ`#‘F„ˆ#d$A,G GˆE\C Ç!°(‰øAÁ(A,¤(DˆD°%IaeqÒš…‘A.V‰¼DøB8k!"f„c1’‡©¹$øaò#ñˆ„-QŸÆi!89-Ø_¢;CŒ'CCˆ[²EèaÖA„thÄH3»‡óÈ[š´t’hˆ'TÎ+’R*h".„"¢A¯K˜äë%Y&ø‚qÈ„F’–ÚH¯Šá68êH‡!l‚QFÎH@ª!À…¢Aˆ¼ã„ÂDD !†B™ƒDâ1´$Ñ(˜!‹!N[(΄„BJÈ[D²…%8ØÀÉ…t’T(I„"àÆq¬!0%ƒ £8Š&ú§É A¹Ò!a„°IáFâ(”4é&¤$I˜„R‰bdƒ’+‚ü$Á#øA"GŽ5#äH$ãÈCáB$LdB’bÈb“ÁÃÈ’‰„u†¨x® 8eá¢aˆ®MH°%FÈÄ;.D!K‚/‹I,ú\gÓ@B$ƒQ"DBLxa„L!(°¢¤ID( !$D@!ˆ0"(Cˆ1"LJ*FhB( Æ‚(%x! R$!BD Á"A!A$€A‚# `$AB…!(@À¡c@@€ `B@Ì3ñDEa $DPBPE"ÒHQP!@$©A‚EˆL`DBiˆ)©Ž$"$6xˆˆBbAˆ !ß¼($ÀB!0H„`„#A" 0A0A°A*„â"ÂQAHH€2ApA2A!(ÄA£H&D4jÀ$Pˆ@ˆì4Í'LqB„D$áFH‚‚‚ÁAÀ(E Âb@&!pAÒD LH…L(BD„.$ÀŒÐD OBŒ”DI$Ö!!†D!€D±"¤B$LT!Ä"@2dB(‚‘4ÀD)„†HRƒ!!!G$#"t§„ ¨E‚„R$(DŠ""l'[AXX”H€DòA0BBB)‚¤!A"@$*HB$D""J‚"h-A‚R$(‚24GAš"„!(A‚AP‚(!ðÓã!$ A$A¬AjH($"Bƒ"E"(°"!‚Ò‚¤B'.(EH<"„0D`B€È( "‚hÐ! Pˆ$`ˆ$„Œ‚6‡@@!„ L) (€* "ˆ#²‚¢#‚L&€((‚€ôYe$#RB`€’(D8@  2*b  )!Dš1Œ’3ˆAÀ% HDHD‚AAdžV_3¬Q2-KEQ²4'CQ$I4BDƒã±S2B"[(J”b%¨hD'B"-v."4($,²(Ò!b&]2J¤":òBA©„DQ2pw$f,"ÓdˆAb!BÓÆBx$4m„ÐF˜¡˜!)òa$Ð$‘NiA$šÄ'.R„t!´%Â"‘b$BF²$ˆ¡"aÀAH‘dM)M(.AÊ!*3!’¤7„fêâ9"ƒʴ8CªJ®ÉÂ$C¸ŒB²„Â$† ‚„GÈOù4vXHLÁA¬„”DI…RH°xB’(G‚„"VA*…TB(€¤‚ :¸8cÃ"¢!C±CJ8B ˆ"’HÉ,(â„d’tƒŠU¸¢(‰È‚¨(ÀM8‰ÑB‚ˆŠ!ò¼"$¿¥qþN/äsKZª½F/ä²ñEKÇadñ'´×åÍ“õ/^Ÿø%ORô6FVrEd¢ÏSµrqASMDN"oE¡um¥_MÓdòw=»ó$wOáuMtäü¢Â-sqò"¯²ä%ûD•ò:O/õxÂá·uŒ÷Ù´o+ùÖŸ+õ¹_ÑñGbí,OÂø–oAó>4Ïiá˹³ñ˜2O‹ù6³Öãñ[¯¥Õ/Q«·´¯äTg¿‚²CõDo1tKü_Lÿƒ÷9/ï“âÖö%dOBó&2n$4òH}oqqEñcfO"âJûöâ>4oKû6OS÷|(;G/qô6÷Ã_FÔ¦¨?(»ñûë±/6V’8ñÚ/7V¦o“òâÑŸãú$²Oaó–×û×»“/Iù”žoAÒLrô¤¾OÃûžÏk±<ñ˜+¯)ñ/Ãû¢Y4­]ç´ï•òWJ­I§4'¤ö/êø6”ïK󜯈¸ùŽ$Ï‹<-OÏ‘õO‡¿µÔ˜tCgÿ¶wÖˆÑfAÔTñ\M[o'òK_ýM_ÒvE±AåAõ&gíI¿æsWóAB,äfrFôÆÖO)ùOkû4oCó^K£õCuõ=M϶eòÁAñ/9í˜|[òK¿­ý“Ê¿FrIñÖꟲñ¸¨/"ñ2¾ñO5ç‰ø">«»OÃâ‚ò$,‰ù¼>žˆm¼ïëñš)Ø‚ùº*ïhñÇšp2ÄA¯CÖ”´Ô˜6–LŽsÓä(ôÁ:CôÁ„ñåž«%ÆJxs¬¤/CÔþ>$¼ÄáãÃaÍDŽs×ÄŽ2EôÁ:Á¬!ôឣqa¨†?Ũ„/CÄÁ¯CÖ<>MaÁŽsׄ,ôÅ:CôÑ&òáž!Æ*xSŒø2”*ü:$I¼¼C4yÅ/Uô(E/‘õ(E/ÖöVAÍcO9Õ,ò„S"_­ñA(_,qAènqAøè„ør„7…/VüA¯RüRA¯RüaéþVA­bO8Õ(ò„S"_¬ñAj_,qAúá„ôõ„øs„7…?VüaSüASüZaÏþ^E8öÄS"O8Õ(òÅ„ò§„®„®„ø2Œ?…ú"Œ«á¯B¸šü*„«áéú>Á?hMQAImB‘D1LóA-A%шQŒ’‚#á(¡#$B²Â"Q&."!1Ä-A$'P&Ô8Ž@s1Hr˜$W.$(1¨5øA¬/”¨‰h‰˜‚£á(ȇ‚$„,[„.†„Œ?ÇHDFB4B…H!I4!)2A’H´`$",$1A(TH(‚&‚‚"”eDð‚AEH‚ŽJ@”"‡!AÀ‰.X„BˆÓt‚¨‚ !O+Š "„D H%Ba0)H¢B,dɤ$ â(‚`*XI†Ô¡TB€Ô‚(DÄ*@À©+A€XŠD4¢ˆŽ4ÑÃX!FTH'P&D8iÈ$ !ŒøT1A„@d“‚RBá´„´ò„°B6/ÄHT™=ˆA”‹ŠTH…ñ„MAA#hGE&(ÑAt!ˆ5˜XˆH-’‰„˜(nE҈Ą”HA*tˆ¼"M„€á¤F,òˆCr8h8Vˆx0)!A8A)4(‡C0H‚&*1D†¶DAˆ¡(AB$V(BH¬„„ˆD'B!‰ƒQ‚ŽŸSK…T˜-Ag†LtÒ…z¤Â4L²˜ñHB!(àdÂŒ†¡'…Y4AM‚Ò(yAȉ!PN(¿(ÂDD‡I!“ØX4ƒÕt„Cfn‡ÀL‘N!%¨á‰˜J!‹Aƒz‚þõHi `(‡fLƒ‚ìˆ"pB2É(’ ‡XHXE¦Ñ"äHÁˆF‡-‚B¢Hµ‚ à!ÅaˆH€8"J A*˜E¢"P2ˆ*Ò…H5!0¢o×aBHˆ@ÄHBA‚¸B„%f@(ˆ#„AHˆA!A„ B‚@.‹£ DŒ!!,AÁ(BB¨!DÔˆaÁFá$8‚!ŒÈHjˆ)dˆ HÂDÀ€ˆD0¢H -QD`‚ˆqAˆQE¥$(P"8ð™`)H`„€ ˆÀH @ ƒTAˆƒD*<H8`$(ABˆ„‚€…l"A‚ &#H!ˆð!¢sM`ŒD)A˜„L¨‚P(A HHˆ"ˆ$؆$D„ˆÄBÀd…¨(âH!‚)DÄ1°!‚Ñ(Èx!!`IНÌO2"LHŽ àN!IHAhƒ4‘dˆ„!"q„A@DÑ®h"$@b…`!‚ŽA‚‚‚ALDÂÄHLˆ$$*ÄS ­A*!G„)$d(H‚,!¬Ç0H0-°Å!$ˆ$/„h$¨( !„„"XC‚q"„ÁA$@b!…4†AD‚B€‚ bßZHH B"I„˜BÑ‚ƒ$¨Œ!Ê‚j(”B…bˆ‚˜HY¨‚@‘˜Žˆˆƒ˜AˆD‚0‰PA€1&4&+HB+‚B@$¢ˆH’BÀ¤C„"H„B ('1"2„@Á" ¡ˆÐA¡&Ch„( $!2A@áL@H`‚« &*€J„"€*! H„‚€D€x(ƒA8”„€ZE‰hÀ‰ƒDÔ”‚1@$ÌøB*j„À‚ E‚(.2$.!ˆ!‚KD­ÂÈJã!„‹)‰¡ ,!ˆø„Ȇ™ŒQ]1A¨Á€‚’1¢JQ‹NH´T¢-AK˜Iá…¨D†(ª"ÏÜL"‚âB„t‚Ò($‹H–1$pˆa„@ !Æ"FÄ"'a*¸#Š‘–Œ±„¡H„IÄ„XH€ÄD2$#:8X tD2!a2ŠIQW€ÉG!$$ˆA€$A:R±BôHAD^D.dJ$\Hè(¤„I,´1üiD™ÛÆ»ìXȘÅE“‚Ž…´N!dDÎ(‚ä(qs)H$1‚#S„a!9!P!$Tä8È„]‚è&ø&NN!HMDÂF¤lI„(Jô²6ðw\¯‚v,åµvñQKÏEõTÞÏáù™?ïbø…„)èœôÉJ¯÷NïíõLgoÆô,¥oÍüüçëû®­ßïùˆ(“øÂcoÙóÞÞÿLþµÔOzöeös[ÏÒýì½OÜùÏþt.TDM†oJü´ßïÚüþœ·˜Ÿ!Õôv|åüôOoQdOEy´ö÷õO/ô¾§É¿k÷%nçB¨oo·bÿôÞ©ûüÜÈýœ˜ˆú¸xN«sÕb÷]+Ö·TõJY_õk|OG÷Þï™ùÿ¼OIyÔêüIÈ¿¤ýùÍÏøý~iNDßÕöä×ÏÜÿæöÿ¯þèÞ)ø‰Š?(üâ×ÏÿýÞÌ|ùÕ¦OJXdmò¿Õú\ìßCüßAÒM¾Dälù–´oMûݬÿÜÿ‰½VñC4׃­]ý5&Obó•–ORýõ·HýýØï”û6a‚Fáj¿töòôïùºüÏüؘ‰üè¼ÏGö^T$oña4ý$?•ôXZ¯„´ZñV\ÿÑù›•oiÁ‚¯„ôÙ¿­õ}üïýÿ?l߯ÖÍúÜ_ßiýÖ}ß_ÿ6}Ÿ‰õHAõÏ×ýœ—Om3cocñ44Ÿ÷IˆßOý¬ÍßÞÞßòldOF÷tOgùÒšÏmÿ–þ)õRdôßw÷t—ióf,Ocóocs2ôWw_µþ_5/‚ö)!.5O#ã"ûòØ­ÿøøÏŒõˆ‰Ñ´ì8w]ì(3„¬SD¬±hñåž#teŒxs¬†?Aô!ÁïCâü>ÖMú‘sÏÄâ)“$¬ôÁ\òáŸ%ùa,.7Lj/Cü:DI¼š…¾žÃÓ£ßRña§R/ô*/–>oÔ*ò…S"O9Õ(òŤò•¦?kqaø¡†ø3„?…ñ!Å/÷(Å/ô(Å/Ôúa#O8×(ò”s"_¬óAh_-qaènqaènñaÈ/GxSøbÄ/ô*Ä?ô*Ä/–îoÖ*öÄs"O8×(òÅ´öÄäänñALOjóAˆ/CzÓø"¤+ABºô(„+CÉúVL†7D0C(sáB„9,8E¤ÈA‚‰X‰Ø8O8RBÁ"Q¦6AŽ3Ä„3uAØ”ˆPˆi82Ž`(E,db43AòAŒ-A‰’%‘¡-;%O8¡$EBØ$E˜dEèB¼6ÓˆŠQ$H`$h)(’"‚„6”Â!L"”!M‚(†Â!’Føˆˆ#€˜„qA‚ı†!1ÈK‚&1XAˆ6b€1A ´I‚Hä¸HH _øÎf ‚1DƒÁˆŠˆ‚áH)ÄBD.!àH&)”‚áH‚)@h!Ž!„&H¢!Á!ÊA„ A+"ÄA Äa „F¬) $„2„Ì1˜(´D!DFèH0„ŽH(-ŒVÄ“A‚5$„„ˆD@UIh‘%uHÁHHCxAŒ,ˆ·G$„†ƒE „HòÕ ÉHD!DI„ LØ#ÁA”%KBd„,¢ˆ!*‚%ñ¨„H"ŒL$¬Ž‚H€C±†C8*Œä‚!‹(DDŒ¤B¹6¢,”U˜DÃd„OA‚IùL¶†c%DtIÊ‚AqÂÌÈ„"D&‘ˆGŒÎCa”pD ׄ‚DpAhA,A*™)>A¥x'蔇'b$X„‰$è!ÅJ‡®pA@A$¤ˆA" AÀA„IÁ(E1B‚À‚€¢ˆ%QH@( DB à81B† *Á’@‚(‚H„HÀ5ÃH„’$A„Ca€B ‰ˆA0a‰2…™F€¨HÀB@†C€2!`H„‚Ha(p ‚€DˆÚ„Dð’W@Ò%uQ"d$ÁrSBJà"ô,’DJaÛÃbT.!6P8$O,˜ÀFC6.+AëB‚ŠâXTJ-AgTHÑ,ÂK'DJ’Š+Á„N^!>"dH!kIKÁƒ$Ò„´$Ò˜%¢(/AT$"’FˆÂo#A%„!„„!"K 6!‰Lb’B(‡!‰D!"O$O¡„ O(B‚"XI B@BKAÆ‚(€4¨‚Pbà¬AEˆb‚AÀ"D²"H /M %¥BLB#ó(D$†d#D+C(IA”aD#ô&ˆ’H$á_$CèBˆÐæPFñA&hEÄŠDŠDRX„JÓ”ÒBŠÔ8¤‰.QÐDd–Æ8AžD!‰8XDÜ "1DBž$`A „F"X@‚€„!H‰$R€$‚HX0ŠN„ˆ"0ˆ’J‚`”‹B4 ,!F€H‚ø¤î"c'°„B,pˆD‚‚F*Á#@D€X„ HII˜BDŠdA"¨@ €X‚ˆ„hÀ׃(0H7%…‘dB‚LIA’H‹DD)X"Nˆ„ŒH„8„È`„€‚Dˆ„FHpR¨(A"A‰”šˆƒT(4B,ˆDȈ#(H[ CQ”&DŒABŒ‰‚€!cQ„˜ˆIBDBÂ&A€A40%AA0$ÃÁ@BÄDDˆDbA(0‘0`„  €Ah„Œˆár;¶À$ÐXD!ú$a(€Â*B`HH˜‰Øˆàˆ’$‚CÂ$""L:!ˆÐH‰CÂ(€“Ž",Bè$”!ÉaBˆƒ…(´($ñ±$&%$„Œ‚¡„(¨K¨E"‚†"dHB‚A–"bHƒ0DBÀHAH€„L´ „àD‹„2ShDT‰Ñ„DˆX„ŽYÃH‰)„…„H†($b˜ D@R$HEAQd‚$H8DLˆH‰Dáˆ4$Ë‚BDB®H‚'„ †"$‚¸ÿƒ„@ TBŠÂ@HÈAB4ÜBÄ(,E”ÈD‰HÄ„FÈ„ ‚Eh‚"C∂E(˜BŠšB„A8"‰¨€"$,†¢A„‚À|3$!‚€€¡ˆˆ@¡È %$!AB$"…( AD DBARB!€”€–„ƒ‘DønÉ „B"`Bˆ"„":‚¤Â)!„4DH" $€(KBJ„(&b`B !(C!‚B „"„ä„7]8ƒ¢bH)‘L*”"¢¡IˆâB¡£.*‘Ó„åÑ%*a!kD!%¸TÓ…’(AAŠ"L´(B¤¢!c$I´(ʉ挄S…oh"èHf†K)d1>$O’ø‰^HAëD‹dj¼øG¼$"EHh$èÂrØB‚81L8¨I¼¢ËIÁ)$”‹DC‘=D#üE†>ˆXA„D`”Cb‚"AbO"sÌh„°CdˆäâD²ÒBŒ*¡!O´(¨B‹BH&ä‚$¨HIÁB@èÄ=­ÌÄD\HI¦Qƒr¼"D‚¨„$ˆXÁ"D¸(¸JŒ ˆN‚èdˆCŠ"hˆA[J†4! Á„(LèDúH„‰¢„°D*œ4ƒ‚FH"R";H†ÞCÇAH(DˆdkÁˆ‰<BÿÿAóx$bó6_EóZ­!_ã÷r´ï?òmèOzú»4Ocûô6ÿsÿíU¾?ÿ×=ñJDNĬïcòcB/(ñ–Ö?4öCH¿÷èüÖÿXxß±Œøa¤(O”ö¥¨FîVþál߆¾zöaõ:û49“òˆ$ÏÞüBGD‹nŸÎîÇÿ!;ß²ò¾¦BÙFñE}ÏÿnÇo•ÿóZ$ÿkIOÖüsÛ_d÷ldÏOöôÌNVëD«mÏÏüD7£ÝóI%»u_±ñ—%ŸVõ2:ñéÁÏÂû†®¤oZþïÜÏýQÿ?•¿i´LühlªßŠixkH^FoùÑCÎCŸÖöTÅŸ‡ù=Ù×L₸$|ÍÑÈäFþáa–öllndî´ƒû½-‡HjöEÊ¿´ÈäVödü~¸ï’ûï./CâdÙVüïdÿ&÷Sξ÷SEßVöEd_¼ÿCѯnòþ"¯GòD˜',‡-~dO„ý£´ð%ó2ÿµõZ4òz7Ï·÷-ü¾dÇó26+¢ojö5ýÿ÷VòÏÏýzDÏÆölxǯ¨ñÎ×oqø×7o-åŒüIÈôÍxÏ‹øhõ_ĺ„²¤èFþ,­Ûn[n_^þrmŸV¶dæSó±ÚØ”úï"ÿ<ôÈÉN©óýxo‹ú"¶ßÆû²6+‰_GÛÍþµ^Þuïÿ>lOÖ”hŸ¤óºh/¯þbò«ïôÚÊNú«_¯ýÑÂô2kß·ñZŸ5õI¿¤³{óßãoãó"ªOhówÿe÷6x‡õüõÅöHd„ô,®¯Êò¼ª?AýÇWsýÂÒ/5ýú}îaßÏ÷Í­ƒK‚OJò„äNˆÝÉOôdeFôilOôe¤ßÛò¨¬]ˆß:öŠC¿ŒüAÈŸJ÷™qOÿò·?ƒÛd{‚ò’×OVÿt©¯Œômw~(†öA,ÏVüæjþþo‡ÿ¨nÏ-ô˜Ò/…ýªfÇi;ëð2ô:%mA§öAVŽsׄŽ2A¬ôÁ$î9ƈ7ÇJx2ÅÁ¯GòDÁ£Ááãá¶Œá8÷(Ž2CøÁ:CøÁZðáž3qaœ7Çx2Äá¯SؼÈáçaÃè8wÍè(³¤òá8CøÁ‚î;2ƈ?‡Šø2„)ü:„i¼˜âãÑ„::=ͯqô*U¯ô*U¯5Ö÷Aï8÷ÎSÍ2o8Õ(óǤò”æâêña,¾Æú2„?çêSø’ÁSøÒÁCøáË¡o¾Œò¤sË(O8·Œö¥:_Œò¥_Ìø¡ÄjñAŒ?CøÓŒRøÚÅRøÃRøáÍ¡ïüŒ3o<õŒ2O8µˆóÅœó…Ü®>Ä®>„ø2Œ?…ú2¬«Á¯Cºü:„«Ãë£ïüËŠPˆMA„IW„&T‚LaŽ„Äè´I’E‘˜o8O( IBM±Säb9ALAqAÌA•”DÄ#ñ„RDX„IR„&EH$AuxAüAƒ2!$/8O8±*Òш’„IS„.%ÈsH‘X)JѸ$GN*ÈÄ!B,Jˆ0‹H"E!$d ¢(…!JˆŒŠ”Ih„9q„˜#,ˆaH!ÚD! FLÈ‚D#™ˆƒÄ‚ˆ‰òó¢àHhNN°hƒ‚C2bŽBÄE¡B‰¤£€È#ÉIB1*ƒŠÈ"@8!F(Œ”BˆL IˆA%‹êÄA°ˆXB‰ˆ4ˆ8˜ãÏ(ƒBB„Id(M(%Ä$$Š’…´b\ÁÐH„xYø(„„4‚4CDS„ŽE,XÅbDB…“¡Dk„ÖÁˆK”CBh(M$(HâHDaˆ€dAŒ„X(¿‡DHF#`B€K„( ŒÈA€a.BIij(ˆA¦ÄL(FŠ!!((ä!&h!IF%ØB$JBhF‚Á‚DX!0-M“‚C¤D¡JDm¨ŒG!*¨XA.NÈD†´YdÈFñŒ$A Q†Ò”ÁCІø„2,ÂMŠIjBLDhD+Ša`µ‹MÁ!$IÄ"2ˆ¯x°Ibˆ„«l¤QA‚¬Dâ¡ñÝÝ`J@Rˆ „, a¢ (€B‚ 0H.BCApA8B(AFˆHŒˆ(E(:$aLIH Ø!+Œ"MBB D`D„€4(x&D˜”9$BŠEL‘ˆ°Iˆˆ@ˆèÄ„ ˆ2D`„b(Hà”„ˆ'E$Â"ŠA…±¿Lò(‡A4XGψa˜`BŒ,\bA…_!¸$\Â/‘œ‚Hˆ$4„tˆÄ(s¡$7ˆâŽOD„FÈñ‰UJ$Š’R$,È&D»&j!ˆNæ”A#*!‘B†LÊë£Z„J’Dš‹FA@ÌBTd™¤‚Ä…Rƒˆ "A$"k”HLBŒiD%ÈD&BˆˆBˆ’°(!„&(TD¢ ‚Bð¡O/AIÁH'„H4IDˆN(,Ô,ˆK$,QAB+G(™4ÂŒØA¡„FD™‚K,Á$‰8"ÀA‰Ÿ!$T‚&¢A a!‚O"1AO‚9B1ƒ‡D$„, ‰!(Z‚ÀˆAF†h@$ $`lD@ „±! „"”FHB‘,(¤`DŠ¢B0BQ )ÀBŸÜDHAAC‚D‘„À‚@E !0™$II°Øƒ"@(!#@(Àw¨D!A‚B!„H‚ˆDD)%C%Ä!@’$š #%"q(NX0†h;DHÐ"ˆ&BñÌÔÐ…Q!LQADD%‚@4D€Hˆ‹AŒ¤¨€@AB!”DŠ!(ˆ(€Ò‰*‰â(¡(‚EHB*Hì+®ìOŽþâ´ï)FøÂÄïjþ«4oõòyl¯£óO[‡„ñ)9­ï#ó÷3w®Ž¦o#óò·OYùööokÿ´ÕgA_DÔDô–oeû‡|ÜÆÚ·üÊ¿-þ²è¯2ùRŸ)ñ÷oiÙ"øÁC',?<Øvøü«!Ÿâ–xIñ‡‡Ió{{¢Ö¢x‰òIÇÿÈø­‡ƒ¯)ÿçñ4”ˆ+¨_Sû¯LOÓñ6|+!‚æ‚ò1OaùÌFïÌüž>O­õH‚¯„üŽnOÞ2÷=–¿Ö÷h;!ôRAYŸÄv8ý)¿)}Ôö¶¶/cû†F;Û=ÿâò?»QöaaNDOXõDÖoRüÖWlü^“¿…ùÚ[/'ûjê?5ùÚ›?iò†”o!ù‚R/9ñÓ“cú'u×—–’AŸž÷SÖoyø®ã¿ÿS¿üJA¿üøÄåÿ¼ûúÒ/æÒF³´ê*þÈTÏyøLn_ôwùia†ò!9—ÁïHØnüÌÖo˜J¯(ôȆoÔüèÉp2ÆA¯cÒ´Äaëa–,Žsß„â)ôÁ:K!¬¡ì1"ƈ7ǘ/CÉÁ¯BÓ¼Èáëì8wMè(ôÁ:IñÁ_î1ƈ7ÆJø6Dü:$MÁ£Ñ~ÄaÉä8wMø„2A¬sDôÁøá#uaŒxsŒøDȯC†¼š¬èëA|6¿E?Qõ8E/t8õqÍ!o÷Œ£O<÷Œ¢O8÷Œâ_¨óA)O-qAøâ„î„ør„?úbÅ/þ*Å?ü*Ä/žîoýŠâO8õˆ¢O:õˆâ_©ñÁ«_(ñáËjñaHjñaÈ?CøÓÙ?RøÛá¯RøZQRø{AÍ¡ï5Ö8ò…s¢o8—(_¬óA(_¨ñah®†®†ü2Œ?¥ò"Ì«a¯BüB¯B¼š–îï#ö34AM#A&TÀÄÒÔH9˜"-#á8!Á@(Q&0„8Ž6ˆDÈ!EhB„†$xAØØ8:Ž¥„¨ehJ„,9CÌê2‚,1( (æ!Db‚Ll(„‚D$˜"‚(„Â#!ˆƒ¤ŠòA"(LdO’DT‚DäRˆXK#¤”‰Ñ‚Ñ‚Éø/ÒÁXAC8š(³Ô¤ÉR‹!ƒñÔð!8*ÁA.aH('B„Ô(Bò‚GCè$ù„CTRBÒæäñÁ„$y„¸qqu4qc!!£‹A%RBà„„Ò‘“1ˆÃ-™©"`B *!HˆÒš#Ž(ŒT‚†ÂŒHàô>ƒ$.d…øAYtH¡\€A*B˜páx$øaˆ„Jñ!Ò4Á¡@B‚Â.@I¦ù!8!!J˜D5Rp"‚:ˆŠŒR!„Ђ "bc”Hàˆ¤DD-"‹$HHJòb—ð*bÿ&õo_'!A›t¿Ò÷wcßöëíï*±Uò§?þÔ~õ[gWoéñ¤uÝeˆ')O{Þo¼JõAŽSŸöQ8OiñŽÚý´&WDŽ;Þ¯óIa_øÕ^ÏúMmßøÝ_ß.ÿ_î[egZŸ*qºÚþKÒŽ™¿*ñ6¢lèùãRŸ‡þƒ«OHùÞNOÂÚÑÒøÚÛ/ºëþd'b©é…¤m‹d6óË7¿ó$cw„QÝQvö%k'þzç§ò$&/[þÛ×ï(ØÖîáû&EÅôViκ/ñþ¼Tß8ùAš‹¸¿-ø*4_åû4Õÿ&xOþ4O"ù"ÕùJqÞ¿=|÷WEßÑöÁÿÿæýÁNÌvy÷ž·(uø±á-óë‘®‚µþ’¶kš®Ã¯”ä½»ƒûˆ÷wWUÙò‰ó/>ù‚HÎìÏ/øœ’«HNÈz¶X·¨?æósoï#óO[Ÿ”õQ)Ÿ7÷k¿ïÆÿö*_Çø’¶oJssöŽ?ýõ$ñïøÿ,–äöŠéM¼/¸õÑÃ!ºMùÛš=ýÑïÃù}®/ióa˜Oj¹2úÒsn‹Ÿý¶!ßÅ¿òmMßöÎýß5þþWÛÞÿãr—òŸøs›«?©ókžoj©«?-çýªšßÛúÇïÿQr-ù)©/¼ÿ›¢‹_ÏNýþªO)¸XýHX…ä71ìówmŸ'ÓµIuQøYu¿v³Ë÷æû{¯Ga/+û&u/qô×Ëÿ×õ¨¦ÔöEiŸ–ô(¢Ÿÿõçš?µüÙI¿<õŠš?µõÙ.ÿ~ôí$­û¦š/B±¶ò’³¿ùrK¯Öñ+t_ÅÒYö-MöþÎoýþ~ÔŸÄq—x»‘ù¯¿ú™º?"ñ¦–k«žó«VŸ.ù²‰ëþV,Í%’ºþª»iOýL^úšH‹Y‹t~HoÅ'Ct:Ôt[ÁaãÅaÅñ‚3Ç‚/(öÃ:A¬î)qaŒxsŽx2ÆÁ¯cÒ|Âáç!ü‚sÅø‚2A?¬ôÃñãÞÆJüsNx2ÆÁ¯cÒ6<>^ü‚s͈/(“„?¬ôÁðá^ƈ7çˆ'KŠüz&O$<èãÁÇ£ÃͯQô8E¯t8ôaË!ïôœ²Ï<õŒ²O8õŒño¨ñA8_¬ñaîqaøá¦øqŒ?øsͯü:ůü*ůÞþžá¯8ÿŒs(û„s8ÿ„:¬û„:®èêqaèjñaŠ>„?ŸèCøºÁCøšACøaË¡ï¶óŒs‰ó„sqO¨óA8O¨óa®†®®>Ì7‡>Œ«KCøZBC¸¶úaÞ…˜„IsEèBuAÈHdÄ/ÔH8‰*‘¨¸â(‘(…ˆÁ(8EhB„"(b†Aƒ"±(B‘(«!ŽS(å„‚Á(<[„.”Fèi&qøaˆAƒ¢A‹¢‰¢«!މâ(ш¢N(,S„.„.ã1,¡âD“+‚Ì ˆ2„À(Œ)C¸Aˆ8E/4ˆdB$¢Œ&Á$B„)Á$„„Ä0r„"A0A£Â±!HAˆOmH:IQ‚$°Dá¢Â’B†.†Ha‚0Hà#ÁˆÀAØ„„ÂK`HI‚(b‚‰‚’D$0$Á)¢CÖ)(C’Aƒ” @%ÑÁ9rŒRCH¡A‘+$Ž"E„AH¨2B‰x‡+›(†‚É’ÄB „‚‚¡MA‹H˜D«AI$KH$ F „ÀH!ЍDð5ò@$qH@IHHAÀJ$‰4E„„8HACAZLÀ2D… ŒAT!¡ƒh!Ã()!HHŠÁˆ'H…b€ÁvC%È$X‚'AH"‰Q@)´$Œ4„1&‚I¢5øˆ2xÄĈÑ*È¡‹„/‘¾XD‘O(†!”FŒè¡„Ø(40„?ø ƒË£@qHQˆD!†Da()D”DIXHF¤È@AÈ&„†H‚!D@L@A„H$C! H„$@ˆ#Š(((ˆˆ@QßêJqxÑéeB,ÁA2W„,ÛíRtbB–òaŒ#ñã<-EJÁA.Å«!máò‰Tä+œä(óE(Ž’ÏìST*&ä(ñaŒ#ñó,o4¬èR¼Ò|\±­u(²‚ÁA(sEè(Û4ôªU‰aBŽÆ8Æã8ô¨ME.Å«!MÁã÷̃â(ôˆ2G„O(4ˆzU¹R<“ô2E'ë-òE(IÙöŒ~>ôaŒ#qAˆòÅ&ôÁz]‰+%É8›„/S”ˆ'Ë?-òE(IÙöŒþ$Ä82„"_¬aB¬×•¸R’Œ#±Iø2E‰x²üS¢_„’”-aÏ(ÁaïAúAŒ#sA(òÅ&ôÁzɼ’„#á„ø2D‰øIÖ ˆˆˆ ‚­ã (A@Ðt„B4ACˆ”’!``¤(S%E!AÀ€HŠ2(C€qH1”IÄ# R! 2€od·A…„˜ˆœ!"´Â‡GBqØCXF)WŠ'ÅhYi$†ÔAqS(ˆtÆAˆK„"N!Aˆ‰JcÁ)DP¡CôBÄ/‚CĈ6JRƒRB„€øƒÄ$ …G(ABt„ÁA@B$ÄAb„„5GTÀK@D‘À‚$pH’„ A€ABÄD‡)&D2#Œ!ø<ñÄ„&BhÃlˆd-Dƒ`!‡L"‰ÁI)„-”†La40HB†‘¨H¢H„"(b#!•ä1”(b„A(’¡B¬\>~BˆBd´A8‚@2A…ØA„Œ8BP‰H„P† ‰ˆ „ˆA@Ê…H H”H IX$!‰1CÀB€HDßf(pD¨A”€’$€RA\$HJPH°„‚4ƒTC„%…#ˆHC$J@3ë"E:HIADh„ˆàIDM‚ˆ!ŒÈ0@HƒqAÈH‘b˜A9ƒ”ˆD†BH£„ DHB#ôŠ5!J! ‘‚aA Á!•èâ”h‰A!B1E,¸(RB"‚"J˜"T*‚´$J„HH8$‘k# "*HˆB²$B±!F‚"‚0"¬9Z!B!QB)A±‚‚.‚„Є!Bˆ¡‚‡Dˆ ‘†";&(¸%dÄ ‚AI¸äBDdT„A$4§BA'BF$„,ÁD* €ø‚O`„Aà„B°*”¦);(£N¢SA¡(FrŠTaCHªH$‚¬@D¸D¨8DFÂ"°ˆ(H²ªCð‚$A‚EBŽ! ØB)RQ‚ NõsM‘ƒ°„7ˆ¤Ph@$„ƒ˜‚R!P*%D”"A€b„(BÅH@‰"FHa!€’B€Š$4A$ˆD„…ôMVPrQb%Ô"'bFeD`B$…(„M(@áHá‚„K‚A@D”ˆ`DBI”IJ±( 'ˆ"¨E„TLEExŒ4(„GH.Ã3‡$€CÂd")¡!!#$&BBØ14AlŠ"H‚€*AB!!x8€¸ˆ!B ˆ (ê(!ˆAÂ(","ÁAA QaLRIB\DA„#”D@$$B$á$‰„‚8  #*!,‚(D†À”ƒÅDHLÄBHt1i’Ä*®!LaŒ-AEY„„CBø!L(1,¢l"$¬õ×?ô}[¿rR¿?Sú5§ÿïS$/búƒ¿yñ…K?tö]s?FôDMDöÌó?—ø³[?ŒõFCÿ}ËòÂH¿2ÒJþoÔO·}ÛÜ$ò"„OøÉ[/¡÷ìßhògMÌôNdÏlÿ~œÏÉôŒ,âõÄS¯ŒäýxýZJÿýöÇÓ¯(Ü*ôÊK':ŸþÊâ†x"¢ªÊús’¿²õä-?¤ºGòmMÏFÿ[sOÉû¨Èß–ønnϽü˜•õŸ×ýª(ïåöoŽ'jojú‚nñ©ÉÿþòOíïÅölD_RöÆçMåoãõü”oæúNÂÎH„|Œül_ÃÛRùDÿÑÑ•õKŸôz$I<èïAÄ•óÆÄ¯ô8D¯ô8D¿¶öA‹yO8µˆó„S÷„œó„†áêqaèêña‰/Ãøsˆ>¯ü8„¯ü(„¿ž¬ïQ¾ˆòœs‹(Ox÷ˆaO©óÁ(_©sáø¡†êñaŠCøsˆRü2ÁRüSRøqÍ¡oöˆ!O8—(O8×úÄ:„òÔ2†î†î®~„?—ìF¼2ü(Ä+ÁB¼RžìoþH¥PŒÂ1EèRQ9h„è´((‘(A‰ªÁ«!O(•(ŠqHèñA(K8G„®D„ªh„*Høaˆ´i˜B›¢°Iмâ(‘(‚(‚â(:D.B"#%:B†-Aƒ&¡&!(ˆ+!Ž’(ˆ(˜(,dBàÒ9UžlÐ(4S,QŠbA‚M"Œ˜4 PFXŒD 5(”‚J˜&EbAÌ4Ô’„ÐDhABŠ˜ðˆ!H†‚ H0(/E°HÁˆ!$,Ø‘õ÷ï`B>A¥„tI(ÁHT ‚Lñ‚$(ˆŸA(E‡DBP-!%´HDt¢I&t„)AL20”€ˆ¡‚ƒ(”ˆ HˆÂA)AH†(`!+9ˆNApˆe!†*ÑB(âaÈ$ˆ°(BQ„(,8”Š˜-…¬hÃ,‹P(YHl$N‹I}I±‚ÁBLÄ"Ôƒ¡,–ôˆ%„D|20DÁ„%8,AØú1Ê TB‘† FA!AdˆdExAH$FaDˆŒ’ŒÔH1€Eâ‘DB”AŒäQB‚’$HA˜„$FˆÁ‘$„H„PB…‘˜„#!Ø^3a%d¤FÁH,B†\B,Ùdb(–„5ŽCq,Du(R)±X„† ¨OX’ˆ(#LÁ(-œu„LµHô!Ãå!hÇ…C8Xlâ!Bª‘ˆGTŒü’%‡BJdX˜%š!¬A³˜rˆòg 40A1F(ÀŒ@ˆ,F! ¥FèHì($APAˆ!$3 @B lRPH@ˆA(„³CQL(eP‡DaB*9B…E„HÉR$Ð$ÑDCZC”'”D@H!„d‡iED¡‘€aB ‚iùtDÐ(xhD)„’ZQ$@ÁÈ„@ÚA‚h¡è(’H! Ihd³+!'Ï%8͈e(A‹L´ÄƒÅB@…ôXŒHŒ™ˆv„HhDØT?ÓPE„)D!ÄEP@ƒNH""Å&ˆÀhBMQ$D‚K!&L(TLHÀ„Œ@$ A`©QL$„€hF0ˆ°BCñ6Õ@ÑHA3('SAPCY(ZH$ˆ©QB$"!'A(—h‡X$‚`’D $I(‘AI$A„c¡! ƒ„Bƒ1!Mˆ0ÈB@BT(ÂA`(@GŠA$DT†DR%D$((@R„r„EˆH"hHâD!B¤@Á¡R„‚!¡„‚ðså"AÀB„ƒ#€€A4HA0„Œd(A‚€ˆ„B0† I@„!‚A@ hH!‚Dƒ)M$S 0H"4„‚’!E4„$Ø !QˆE„5‚€‚ˆšHgˆeTA„È!@dFŒA HÑ$1È aÐ!D'”HD¿2(M(q˜›p(H2*!((‘lDË"‰ÈŒBhŒA(BHH¸&B¤¢DÃ"°(¼("È" ¤†Š9&À‚+"*ÒA!€„ÂH*(J*,8",3.H‰‘*t¡‰¢(*"D„!JDhb€XHˆDF‚ ˆ$X&ÄH"P!&D”H"0AÅ$F%2f!+B*ãPAˆDŒBÄàè"¬„AK!0D2ÄPA$„(ÀLÀˆ,Ȩ±„ô‚(!‚$@) ˜DP…L‚((#Â…ô“„ƒÌ¡ã*$dAh$.ˆÀˆBˆDZH DˆL²„ÁIR‚)"„ŒH„X!4&ÂpÄ¢)$‚É2(#D!HJIˆÐBÌø{l„l€B… ˆBŽD)"(H‚Œ¨$D&,(R‰˜)1A%1\ 4„H€dF#Ä„"‚$"D$ !H%ƒÂÎò%a!H†€""*(0!``ˆ($$à$Q2D@!„%Bˆ#Ä()B!@H4!0H$D$,òõœBàB` „Šd4ˆ„0!!&!%$$)B"@3b%H$"!„€À!A"–CE!‘„ƒÕ)RÁ‚*!¨’Ò„H¨Ìñ#HH†ì˜ŒC¡‚…’(‡((EFX"!†Z††HTA&H'„ܣȂŒ’„/²DBøÒ"Si)p‚ÑS"XC‘ˆ ‚¨’È!-ˆÉĘ-RŒÚÂò\ŠÁ*ŒaÑ‘1$#“¡RŒ¨"A"aK¨Á€2Š’Q„ˆ…DDhHH’ƒ*XH"n„F¥"!k¤‘•“!…ù“(,<b8LlF„f£"Bú"aÐ2b!)‚r‚X"!Ä‚ÒsÔ(”DÈ‹A‰„´´ˆ¤X)²(ÄNˆDNDdA@AFµÚB0žƒÁ"/(1„'¤%aH%¢D˜%DBêBÕÁÂÂB¼X!„F’$‚ErÄ!'BF1(BE&5$*©!Ð"”„ïèIód,_Dó%U‹!”èÓEu=õÓ*Ÿ8Ž÷}$¾!öl_Û¶ü˜X®ýNiIxÚî›üeÌODÕvñêÖŒ˜!_D¶Ìä©áû¹(2Ežþ•¯²Ö·²„øHJ®¬)Éø˜Ÿ{ÛbÞ·öW?ý‰NaoXúGÊÉø9¯*¶Uɇ毞òÏ&Wdá±)ÞÒQü’–+boÈòŠ"ï÷ù8Ÿ±ŠÒƺL9Ã=þùneÑñAŸVÔò¹#/ô;œOJò¤(¾AŸ×óÄèöœ´.EÌôQ!ß(w²õtXÔýM‡ëX‡‰B¾Éöì_ÃñˆK(cú$UŸ±øÆ)_òå7V½²Œóº3ñB£ÿ¶ù—¿‘¤Ä~Êâÿ¦übß7­m2Ocø&ůèôomem7ç“FÑòŲo#èlôÌjn^k‘¯‰ušú*nïÄúUt$?"õG‡óE‰µYô|_FÙ*“xùø”´OKô]ÝÞãÄ»v)ýhmoìúM”õÝÁ¯åÞ69‰ŸøHÍnÄß#ûŽ(WŽ®„K³[=g>¿úø(,Ô¾r(ý)$ïØúº÷þ¯îü-©ÿ±yˆáTÁ·êïëûÝùÿ§éC±¤úƒ¬BÿNô4qåûZ)Ÿôe¥oEóÔ´OÎülNOë÷œØ‰ýZ_¼tèÜ"÷gÿ…ã”ñIXôXøð"H@+A(8„‚)ƒÃH0L<"‰‘„Р ˆ Ž"E,hHDˆ-$„ô€‰‚HTB@$˜!+0B FHR†ÒD€Dôgã$î‚0)@"X†Ì„€á(…(Dh„PA%hBM0‚‰È€†‚ ˜„‡"ƒX„@gˆ(äY(,‚A#-„.B@‚"$¡‚!H:“ËBÇHA%ÊDÐт’I‚9ˆV3D.’D‹D8„¥ÂD¦T‚áˆAâæ„Hލ-„4J(x$h†Dƒ4…“e(F² ^,ăäŒA,ˆj¡ÄŒ.AEØAˆÚ¤˜HŽˆ/DúõÝðˆ"¡€$„DDEˆƒ¡È@$RIAŽP„A"Ì!„!«qi£Dƒ$,B&jBFbâJ"+J©”H!Ho¸Oc4‚ñ-Tj4´C÷%O'l3/V¶¦¹tø¦?Òþn5OÛ~Tëmáf‹¶DøR‚væ¦òyψݹըôÊ(ÈÞ¬ü\¯Gµ¶»UY4?Óôî¸Ï߬|™û©­(͈­ŠâòX*k(OJÝ(å¤´ÂæMÿTZÅúzTkbÓTd/Æô.lÌÂF×4O¦šdB¯!á£ç¤’¢‹Ÿ‡jJ+$ÏDÒX2|\£Vï¢V%Ÿ‘¥T/dò!B_5úå?)ò'®>äŸßóf¤ï8ò\²'BF„òÄ´/cèOñè9ÿ¢Ö4ù‰h‚¯âÖ$ú,šÇùØ+1o#èRýɯ…ó^ªÏýó;•܈òŒ¼¯ãéIáö>RÏ!¹˜÷ÔX¯góúO'ôh\‡…)r&nBDÔ†òFf#7‚G„m(‹t/£eNh/*ùØ‚JDø""ÏdòMíÐã÷OϵóOX½1âu×C³Çý6¢_çú²4oHû3®Ÿ¡þܯÒÿLôkanD.d/D¶†õ¢ÞŸuüÔ*ÿœõÊŠ¤|ÈúêLïËÿN¢_æx²ô¦´1û$ίOñ¢|ŸYú)‡B.,­<ï‰òªÖbüì:kL¯(ù‚‡¨¯Kñ6<ï%we~"ô&$/drlvjün(_Ôþdφä‚öx+5¯"ô(Ê«ÿÖ§$¤Ô¬ôf¸cÓcÿnŸ·ñJY½!1õB5?JõDZo#ú¦+;oBÿšJŸëö¾]¯ê¢dMdOBäBºÔ÷¦ÖÏñ~±òÆQ¿¨è$øÈ./Nôªxï‰ú.šOb¹²ò–ñ#ý,Þ'K¯÷ÓÒÍr$ô(¬Ïˆó–öÏc|ØúÒH¯¨ù‚èò¢T¯‡ó8ç£Gb+"m$'bÏ&tføf+ßÄ–hÏ‚ä‚÷X8¯%ö(B,ý’ا%‡$$ö"IL'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬3„¬!øáž#qaŒxsŒx2Ôü:$MÁ£ÁáãÁaÁŽsÇ„Ž2K¼ôÁðáŸ!ƈ7ƈ'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðá!ƈ?Çx2„ü:$I<èãÁ{óÝSô2E¯SôA¯SôaïòVaï9óÄSÏ(ó„SÏ(óŤóÅæánqaìnñaŒ/GøsŒ/Güå¯CüÁ¯Büáéþáï(ö„sÏ(ò”sÏ8òÄ:_¬òÔ2Wî®Æ®Æø2„?Çø"įSü*įü*įž®ïÞ.ò„sÍ"O8×<òÄ:¤òÄ:æîÆîŽ/ÇxsøbÌ«C¯B¼ô*Ä«aé¾ö±«4$M$M2Säbáb9.„3õAŒ/TH/„òA¨kÁ+¡O(…ò„RBO(¡$O(3D¦&äj8B.„#ôaŒ/ô(”)äBšF¸m+¡O(¡!G(^(G(^(O(rThjFhj#dB'„Æ-A‡B)´(’F‰’Æ«!ŽR‰ÂR„Bâ„ò„"G„&f„.;ƒˆh(°@’DŠD"è„‚EAD„‰Ø„âˆ4E„!ˆcHJ"aIÈ`„àHBh‰Ll!ŒƒˆDi0DŒAB"`!„HÆ"Q¯jA$JBA0¤#ˆ”Œ*PA†ƒè$XˆBM€Š &ÁA FHèHŠq¬È€HH…2$A°* J@ŠÂJCM…"„$AÆD;‚À¤&N!-Ń›F"A"JÉ"G,ÂT!ŠDˆÕ!:¨M‚D’°%Ä„Q$&!TÉÈ%˜Œ²E!‹Á¹!ø#DŒ.„*LˆèÆ…Íái˜EHB(èÈ÷§ („dXiI¡„!B !2HI˜!A‚H¨‚(p"(ˆaAÄ@Ìi‚$€UZHY±ˆ‚"rÂT‚DŒ4&8E*„D¤BˆBòc ÁAE¸ad ’A?B1‚CBñD&ƒ¥ƒa"C4$’QFâH˜I¬‹Ü²ŒbA˜°„TA¢`GD…$8!M$)†:A£åˆñCD¯’L1K&ô"Ä&˜Š¬´ˆRä”D˜GD$AÀˆJôñ†€B1R0‚Cˆd(HJÈ+$ˆ"‚€A¨‚!&(‰a,&D‰H…€†Ê‚HF$aÂ@-(°"ƒƒ„l"¢0€a™ R…D $D%AA€‘È$„#DÂà„®H&"™$‰B!°™B€$D@„²#E¦#"‚¡#*1HƒÃU™˜(€5DŒŒDúÈ&XA‚ƒ3".$!˜ƒ6BKBO!"B}(¶$fÀ$0ˆêDLõ%*´¬„Eh#ÂmHN‚X€”ó ÃA¨‡DÀB@„BèÂBEˆr(`dÄH x8L€šha€8Cà„„Bˆ†2DL#(ƒd!\ŒI‹$`È $¬„BBD(?/ "!*X(,„„P)!”ˆT€*!Cè"(„”aDD5ˆÂÄ&˜€(š$L*(#DȦLf*$ÑBN‚ ˆÐ$:³$! „`(ˆ’*¡$‰ˆ¢DH€¨1‰B"’Ic‚@‰ŒAD/ÁHŒ…„!D„ˆ  $BB€ô}3€Š"(à0‰ ‰A„"€’@(€ˆ„$d„€àò:¸0$„@ˆˆ*‰d’ ! 6A ‘(„(@A(E$!€B„1"„Ȉ X€@‰@%!±D‚BHÏF!&Cc!‚C’d/!4Â0bˆ‚a"ÀJ%Ab!.!C´‚ò‚#Ar"!%$B$-ŽB)ä"&r$’¦2¢‚Æ$B(E’($($)DBæb7åATCAHÁ$Dd,¤‚G"‚À’&DÂBŠâq!Ba( !¨ˆ€HX ˆ†,ˆäAA –†BIJ"D&€A"è(ˆ"øû?!‚A(#0""„)¡!"€J’‘„#¡(!à‚Ñ‚ŒQ(H„ƒD )ƒ1‚8(#B$H„ˆ$g(‚„h"CŸ!.HP‚##„A0HŒ‚‘"'Á#!‘""@$"L‘(ˆ F¢€%()!€@„‚¤*%X¡ÐC$!H/ØBN"@",¨hAE‘ˆÊb„†!(JH¢…a!€b#€€àR¢!"$ˆ$,8‡"‚A*"Œ$H$ T(@Ä´ã‚B@! "!!a"2"€‚(8$Bb B)‘b‚€D¤B"‚"$J B"(ˆò €¤E$ˆBh!J¡B ""`" ,(!)H "JÂNƒD(ƒÄ˜#dˆHj‚`Æ" B$(€>µ@ø"MH”`-$*âBaBSa(A!4h‹!™$RH*„¢2/²Ô‰Á92!*ˆA¢"eƒÂ$5yB‘#¦4‰qDÈHH+(ƒaKˆ¬¢£‡$H„¨‹,-"бHÁ¨b˜ ’F}]"DRŠAR!JÒ!”!+"²„ò"("/"kB€BN"RèbÑDÂ"()‘#+²I1ˆ!ˆiµ¢ãX–!!‚!òˆ‚ˆe‰Á‡&#¼B¸""!('‚aST„NBhNbjè!ŒLB·r)´$ÂH#4„.$àHé‚ÁR‹¤”)˜¸"’"!Š!áˆ2(Á1LA"¢°X‡$(ƒ$"«C:†‚•HLcB&dJLa!j2B`" b!D%,ˆ*þ‡4OrtGØMä­R8;d_FÖdòtWoTw6ÄM&?×óºQÞy3ë®ÔHèG¤d/'å%¤÷B±OÏô;!±¢!>#1“2oH3Á’/õžDÞXÏ'û´>Ÿ’¾)4!'">Â~šïú¼\¡Ò¨ñJ8ÏÄÓìòŒ.ïɵžñ.‚/‰ÿ.ÌͬîômKÏÊþhHŒøÚz‡¢.´Âî‹åä~‰’¢OÂÞH;>\ö$$¯æ÷—”H'f_bôå×O_üu4iñ÷¾K»ß—ŸÒ¯µá+þj(KbKdj÷RBîõO÷³÷ß´ññ"313>”k“/#£ûÅ–¯áçiûi)e4¯£õ¨8ÞT¯ïÿXZõ:>Ïçó,ÎOFù|¼/Kû6"ªýølçÈïêî4öK(Æ6Nˆýzjèjþ¢²-øÈˆA/:ríþqùð#ÊߺöL/÷…µòAcNC}„;ÌolvEþ„oHøÓžŸ¤óÛȧ™„ü,ÏD¤d+F+DodøÄvOâûÏH¥b!&’#'-¢_æñ†¤+/¤|LþÞÌï‰õ,Ì·‹DH%øz¨¯¡õÌJÏỎôB¤ô(zïAúrïéñù>oA¹²óR’MNçÈï„þÍÅ/ƒôLD…øZدß*ä,è©óX­‚Ž‚M*ï¼;¦=bnŸòñ^·¤B4ò"E{v?Vöv&MoCöî*Ÿ¦ýÊ™¯£vhÜ̶D¦Tzöb'O}}E·–|CÂ.3#±3²ñ£&M–k»#ñŠNÍÞïÌ:ÿDanAfr…õª~æç÷Þ˜'%^B‡¤¯ÅµæóR”ï¡ú¤†k¸+S/oö,®íHo>üE$Ï„d„X}òâ&Ê«U§¡Ž‚†ò*ÈÏY'CNA¯CòTA£Áaãá6ŒŽcÝ(Ž2CøÁ:IôÁ"î8Æ*xsŒx&äü:¤MÁ£Ááë!VŽbߌâ(³„òÁ:CøÁ‚îž3sa¬‚7Lj/Cèü:$^Á£á>NaÃè8AR$'D‘CÒ,áD‚b8Cò,)bBàHb)Œ¸è!º$1XÆfŠrO(Ç„+PIò‚'„ÌÉä¨UŒ’†#Áà„R–I-,,¢ƒChE)¸â"T†R,P„FØ$ÈDCô|è‚A„Hˆ,BèH!¡$E!@!ƒ4!A Â"@Bˆ¨‚(1AAbA&ÄÂÀ„,,d„&4D€$„ˆ"ˆˆÐ166È „(M`$“T$ƒ)$‚20"@&8Iˆ@€9BÀ@B"C+H`!™D‚(b„'BF¨‘)HH"2¿E{2èC$ÄA%ÈA&h„âH2„&É1a…(’J8UtˆÈ1ƒ‘˜%ݤ$¨(,#DÕ¤¥IA…4a"?A¤‚aƒ1 £Èœy(òDÀN,áÂH‰”L‰ô(ŒäˆÈD&2ŠHà(óöÓÃÂa‚`$B$NˆDr¤ÂD”)4…(@8!È!X„)ABh!cQ¡ˆ"LÈHI2%hDAhA#¨‚©a$‰”†dH‰rt(¤DH„€ÄH‚¯HQ(€ò8KL”*K‰„(‰D‚HDbÀ( ¤HЄˆ¦R„tLŠ!H(²HA((B°H‚ˆU(2$ƒ’‰N$‡„(ÀRâ -ªcΆ†-$È!†ä1ˆ$ˆE‘JAÅB0H´‚…#„DXh€À‚†’)D‰‚'ˆ," ‚ˆ¹Ñ!‘„D€Bd!†¨Ä›°HAô1C_¸’A@ä$@ÂH BB€-$B XE!$1‚ ˆ@2@X(€!TLD£A*MåcÏ¢EeÄ-$Ä%‰  M‚„O¤T(H„ƒ‘#H1H dˆ @d$‘( `)P„-‰€!P)ŠÁ†²‘á(Á@øDFø‰A˜8%õÅ 3 À#L!d&)Š(¨2¡ ˆˆD„.A¢˜(ˆ`„¬N$ˆF¸¨!)¢ALHt,1"ˆ€$H,5„Ì=RHD‰Da"€ˆ!HHd¡.ð(`Á!´$äÄHMAŠÄE‘AAf" (!rAáC˜ˆƒá$$ H$ BbBÀ„hA‹B‰ˆƒ‘Œ>–$Ç& t„BÄ„!ÒB„Ñ„‘j€ h0A`$!B5"#•ˆR A $‘$¤IÂCˆ#Ø„ŠÑÁbD™hAˆD#dA(‹(A FH¨ˆŒ;²„ŠÅAÀ"  D4HB"Hˆ (ˆ"(tˆD™QaÀ„@!A0„IM(]‚‚Ä$„„ 2D%ñ¡hQ„D$""D†5H"pˆ(!€H€jBˆ€(¢‚*HˆÌ!ˆX$P!BŒ‚$""Pˆ8(M!BCðÄ0$à".  !H’"Ä"Ä"b0!@D(($€€¡BH0!!%!„@‘"hÆ"„"$`‚H ’BH)òY„ˆA0!jA04EÁ!A,ÂŒLA &D"D„(€T!€4"#)ƒ„$€$FÀ–‘TBLÄ$%È!A!Ð(øAƒÔeª$&*Db„#v©8C‰´"8‚†qˆÁ¢‚°ˆ%ˆ!ˆ‘!8ƒâˆ(1""3¡*$Ã+2§(Šuˆ)X!äJÑaˆ*dÂ%¼*¡A¹„ú'$¬QB" XÁsdA422XMÁÃÑ$”ŒI•4]2L‘J“7BBDdBÈ„DTNጎ"¬ÂJHÈdB„‚´1”A!„ '#²F"¨(Ï(ÂN*Gˆ Léd2®ÜÒ'ƒq‚‘Š©BÒ,‚Â($B$Ce"7!!HLdR-B,„„¶‚EÂ8,’(J!äHaFlô!ÔAHäQHåA2…1IºÔ$’4MzK8O(Ò„t„X…¢D#RB ‚ðÅD4"S‘Š(—’4§ùÑÍÅV/´KÖÉR$<ñ(k£G,Mòõþ5ÏøÒáôÏ2ߘÒÁü˜Ï2÷\)ÿÁúo†.–'½¿¡ÚoÞbõě:bdK˜_íæÔöÉ\ô¬ë%„/)ñ¤3ž¯?EömD*ñ˜‹;!$lå¸ýf‘ïBä(ùgÉï—æTæxñØJOŠêDæDüšOªãíú$OSôè–­¸’úä$7Ï\±H•F}AËD/FÒ§ò-ÇR•¸’û%.DŸT¸NëeÖ±÷:AÅôHdŸ¸ÿ*[EùFdçë_-ñÁ£o$ôºn?Ió¡fñMŠOA»¢!òEÁOAûˆ<XwxYŒ$µ/:QÌ~òòRŒø²&ßi÷éSÇ_„ø´/®±$õMÁ/ÅÿÂ?h?rMH^l‹´/*Q„N¬¯/ôŒ(Έ/oòÌvG>ÐãõOï²OU«[·Bÿƒò²_îñ"oCò¶ßâô÷ïóý¿Eriõl)Íý¿Mò?Xß²ý:gW-ý‹Û§u/ü7ì¯íóíšO"ù4¤M³åùeÙÏ—öÈå?Åv-õ$¡-µ?Aú·ß¾õ¼«…ü›Ÿ¸ñ˜‹{Çû§¯móížk’k£?l÷íÖÿ†ý6)ÌúZdÏÆôdèm¼¯Aú¾VÏ.ñüºo…üšÒ¬ùXk¿3ÕÃýN—5¯U‹5Úyr*õ+,±ó¤šOb¡#oaçjõ5ËnïW÷S,ŸTvdùloŸÌúSjcõÉYo1¼Qô‘Ò¿¼órÁ[ãQûªkšk£OAëJñå‘Ï“ø´e_EöI-&ñ$%]¤?iò¹Rß<ýR‰·)Ÿ)ñ‰·/“ü¬ÕûâO*ù6¤oAÿòRß.ý~‰oëòlDöhHOÆÂ¬¯iö¸RϬøRˆ¯%ô˜Òlö2Éo'Cô:$MA£ÁaãÁaÁŽs׌Ž2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÚ¼Èáëì8wMè(ôÁ:A¬î9ƈ7Lj'CNÁ¯CòDÁ£ÁáãÁaÁÎsÕè(ôÁ:A¬î=Æ„xsŒx2„ü:$I<èãÁ܃ÓÓüE¯SôA¯Rôaí!ïÖ>óŒsÍ2O8×,óÅ:¤ûÅ:æîqaüáÆøs„7Ï?Wü2A¯SüASüaÏþaÏ9÷„sÏ(ó„sË8_¬óÅ8_,óåjqaü¡Æø3„?Çø3…¯Sü:…¯ü:…¯þ¡ïþž3Ï8÷Œ2O8÷Œr_¨óÅ:_¨ó宯®Æø2Œ?Çø2̯Cü:Ä«Á¯C¼¶þa?RCsIØ$ñA(M2W„&V&vhB7…Æ/t(ôA‹"mA‰òÁ«!O8…Ò4µAÂ$M2SäB1A.”3åB8SÆèô(„A.¤O„ú+!O8ò„(O(Ñò„2UèjQ®–7.Ä7ÆøABøABz‘¨k«!O(•(O(ñH(O(á„ò„2G„.–FèÒ7~ˆ+Š€:ˆ`â`J°"4"I‘!!B1‰È!H0B‰ )è"$(C!‚*¡$*„A(ˆ„H„ ¢ †(Á(%ÔABˆÒ„ØB”ˆ4ƒ´h„Ðqø“² d!@bé‚8(AIr$B!b"Pƒ0¡HÀJ#$¸B"(¢ˆI‚a ‚B"Ä` ˆ¢ˆ0˜"…ÖB,r„8BD¢!´ˆÄˆF“Ø {l‘%+FT,ÈmŽD.„4"¼&ÙDˆV"<2ødA„!%a”ƒ»Âb!G,L"È"Ob”RE¥dƒ¢Hð‚n.Ø,!´BY¬ŠÔÁò¢p„Äb‡"KÁ‚{AR„FÑDý"H‡H#¸‚DM‰ïø@4$H`„ŠBèDA"h!DŠA…BGˆ!A0@ ‰iŽ!DÄp,QH”#¼RˆXR‡ˆ$ AÈ,‚‘há•"R4N¨S‡R„]"$BLÂIðA'È!&fx.”ˆ#ñˆ!¡!#HÁ[1G’AØa¨—!Œr˜bE†&â9ô(„+!$‘,ÁË(¯DÑIÓádñÂ/„éĹÁˆCùC(#hBŽD"¬!©|Ñ”$˜Õ!øÄ:Æ"©·,Bÿ- ¡HDH%ÈQB(FhJà(!!JB !(‚‚hÀAA(!$B¡„ABˆ„Ih…†FNA›(_„š„4ñjM/z¶D˜?võªeíã}Ø/$åzþ\!W„/-ìsúcûé_Ãíaä1½‹þøO!Ô8õ*]¯C:Ì,ñcU¯_öÜaO´í¼õh÷ß”öMɯµñè?ϵò¨ÏÂühšŸ%¸’dM/³Ý2Ñ(X¿4ôHBnd_Äöo…¯WôßOA³4¸²ñÛWË)ûWûO×4H(_¼û&­—ió<”_¥ùI‘ËCÞ…ú%×[õÙž2CékõÛ-óV¸_½f½HÄh_˜ÿfßµÈ÷nV¥ýÙыͯn÷Õz_wõhE„+¹oâáBôIÉ«åoµöÔëÿWôIA¯”öÌyÿö}I¨$ïïä)ñˆ(Â/wörïLò!?•ôZcÝ•Z“¥s-ö©®oIÿcˆgj®2;©ÿÂtçÿè§Ï´þWhWÖVÒœò…ªâøwÁ¯VóݘÜtéü«|o,úe'k/kòÇ¢æqóÿ¢gíë_òeM.'ï‘ó‡¨ëøaÇ{³ÏÔ«ùÑÇ1¿Îô;,o¥ÿä/Bñ2%%ÿ%?Ïü²5ß…ÿ!ßVô!-û|™ò>^æùx.ïüRÎVò2òQZ7…¿1ôH•úCH½c‡rß®ò…?o‡y²ô¦"Ž¢/CøçÙ/ûô8õ߄ҕö$MZ÷ßz_íþcœ¿˜ýŒCŸŒüQ˜Ÿ˜úìEŸJóÇéoãø²”®6o(þ.Æ?ûýª¯wú_(]iÇÖZóh¤ÿuÞŸ´ýÚA¿­üÑÚŸ¼÷~Õ¿GöWyonébñ2$k1ïnõ!ޝßý:7_•–-_Vô)í_þ_jOcõÈ+…¯­ä!í$óvD_¯'Cô:dMA£ÁaãÁaÁŽsׄŽ2A¬“¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁ/8vMø‚2A¬2D¬!ôáŽ#qaŒxsŽx2Öü:f_|Ò~òaÉôsׄŽ2A¼3„¼!øáž#uaŒxsŒx2„ü:¤I<èãÁka=M¯ô:E¯t*õaí!ïöŠ#Ï9÷ˆ"O8÷ˆ"_­óÁ*_¬óáNïqaüáÆøsŒ?Çýcͯý*ůü(ůßþ^áÏ8öŒsÏ(ò„sË(_¬óÅ(_¬såü¡ÆêñaŒ?ÃøsŒ?ÒøzůRøÁ¯RøZaí¡ïÖ>óŒsͲO8×,óÅ:_¤÷…:_æäêqaìjñaÌ/CøóL/Cü2D¯C¼ô:Ä+iëákaßÓLs‰È(,sEhb„.‚7„*yCøa˜-A‹†%±(Z‹´m«%O8±r„Ó‰b(ò„bW®DèJXƒ.Ô7„ÆÉABIñ(´E‘¸mÁ«!O8µò„CŸr„Òò„"W&V&vhB7Æ/t(tñ($e‘(k«!O(Ò$¡$MJÒ$3D.B‚6ËÐ!! ,¢b)€¡@qH€¬„ˆH‹‚ˆ/B,4°„ÒÄ@8‘JèA$8-ñˆÈD ((„ÈHBH%˜H-$¯yKá(I!BÀ‚"à"ˆ`™B!($HƒŒˆ*„x:¦Wˆ*aˆ@Œ¡…Y(•ˆ,IxÂDŠ€„&H…!ÄH$H„P(`]?sÞCaBgBpaøÆdL‚I‚k$YÙ´$X‚Fô4È=F‘Or¢D,xX–ÁB¦o(ÂD‚qgH.I!0lY8Q†;\"Ï|‚‘BŒúAl(TlÉ(IFÒeH(t!xEH&ø¨HˆaHŒ‘ÒðÞµ AB!*$ …$@ˆÂ*DBA”J($qÌ )Ã"(B($B C„ˆ¨A‚D²„ˆ(@H"dLD€$ÈB Ø)ôvC›!E¡$G.D-!-‹d‚‚QC-:l³dF“ÄÊWÉ~–T‡daŒH„–9˜®CO¢1„‚†2!O˜aÂæTB„“$¾YÈBG&øAŒÔt¢ø‚AÍD–rAÈ’(MB&¤̆vI$6I°™ÔBŠ„#hdÂ/g -ˆHB<$ˆ  , ˆi†Â!,$FDÀ$˜€0, DÈ%(ˆ€!8ÉóÆ0$p$`"€$±‚„p’C€x"‚@A€F‚€"€€€AðݸzxXB6‡˜L6`HˆCÓ¨£(1‰ÈHC„ÑB“’„(ÌQ‚Ah"!A,¨((„g©˜,)8 L¡IÏ(‚F²ÂR%Ì‚AD#ä$F +ˆA„Cì¸4º$$À(CAABD€B !„)EAƒ!cID˜"IE@h¸(CH@„R„ŽD!H*˜^$E¢Á, €(õn9pa„<Ða¢ˆ„8!&ÊQ(„‚F˜‚†€‹!A€. ( B!D"вHA#(D!"%@$0BB0ˆLÈês H (€D!€D€ˆ B„/? HB„@‚ ä($@$H‚ˆ€HBˆ€ Ä{.Dˆ!ÀI„à)8"€`B+(AA"I„ BðÒÈc€bB(AH‚I„ð’ˆcA„ˆ(&„”„OšDCdR„ÃA‰"„!Ž@¢‚!R$.„DD Aà(aD‚ &B ÌAAà(AFˆÁn„BЄ6?À$I"ˆ$Á‚#B€ÔDD( (€È„BA@DB€ˆ€„ @¾o„Â!A(AD0A„„€Dˆ#‚8@€„$B T„€€+#€$(ABxAHˆ°8$(AÀYÒ€‚ò$$AB”tAAˆˆ/)8((OBˆB„tA€ˆ¸’8$M$AðAH„„ˆ¸’8A(M$AðÉùp!!!D†$"   H€¬9†D  "  D?´ $Œ„ˆA(""#( „ÀBP&D(2‚EE!D$(@ÀDHHP$(M@$L9$@(R!@¨!€’"(€%¤!c!„,"$A€ÉB A ADD€HD,A!°ÕHM$†"€„PDD ˆL>Z$ €ÀA‚!€HB@€€H—Q@ `B@\?È@€€B D  H"ˆE€ˆ‚ˆDJ$ ðjS@@(A@€ÀHs  H@ bˆ ‚ðµ€B,9¥$$"AÀA0 (8"€"L€D@  ˆOv$$‚(IHJH`(!OBDHBH ‚@@ D€‚Ä#S @0(MaA€@‚H€ ¨ˆ€HB„‚ðJðAIŸ”tI€ø’’/)9(OBò4$CðAIŸ”tI(!€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„œ5™0à(€„áBpA”ˆ#Ž(A`B„ÀA€8à(€&pAH€øU$`B !Ž`BH DH øá€àBEÑÀŽ&dBÀA‰ !Ž‚&D”HŽ‚&D”Hà¨>ÖpA,8`B(IxAŽˆ#&„ÀA„à(8`B(Ah„à(ñM½AðŽ€r$dBðAIA !ˆ/)á((GB&”Ô€ø’Ž€r$dBðAI‰€ø’/c„Àˆ#&„’ÀA„€à(8`B(AxAŽˆ#&„ÀAFŽßÔ $0Ž&„dBÀApAÈA !a(8Ž&„dB€„‚ˆ#á(@„dB€„H ˆøߣÉAŽ`(`B.ˆ„Ž &DˆŽ &DHH_ê !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€g‰À©CŸJ  œ:t€€ð©tÀ©CŸJ  œ:t€€ð©tÀ©CŸJ ¡ü;û€¡!ð¿û¡ À¿³!€¡ÿ» ¡ü;û€¡!ð¿û¡ À¿³!€¡ÿ»  l3Û€!!€!!ð6ÛÀ6³ o³   l3Û€!!€!!ð6ÛÀ6³ ïÕ ¡ ¡ì5]€!€!ð^]À^ÓïÕ |=}€ ð×} À×Ó €Ý€!!€!!¬  §KÀºAÍX €À3C ?C !¼5¢€ð[¢ÀÒ#/-€¡”QðM-  À%³ j€ !À3“€.TÁABÄB$ˆ!M†&´"¢"D*Äe*‚D$$„ˆN‚š)¡ˆ´$"TDBALÄDB DBˆ ˆŠˆˆ(ØDˆ(HDDTDDHBB€4Ȇˆ¬7ØHf @A!Ò"º‚"CR"A‚ˆšÈ„*‚DA(DBB ˆ $ˆˆ AAH@$$DH؈‚î— $dD@+ˆ'(D&$RDD $p‚ €L(@HLH „HBˆA€A@TDÀH‚àx1C@1B$DDˆŠ‚DhH(BH „¨E‚,(($"D$L€$‚†„@„$D„„ˆ D‰ˆ¿tA` B„B(D(L*AØáD!&„Ø6‚¢)F"Q‰±Q†ƒhˆd@&"’„EA"ƒ&¢’HD"*ÔŒ5#DAä(MB@‚‚¡‚*!dB D@D!Á‰¢AM(€r„²Aâ(1A*!RpAˆØ$â„ÈA‰ÊA(À(CT*" #Lˆ„²ô! D„‚á",¦*(‚ H@¤‚ , ˆA‚ˆBAÀD @DDˆBHŒ8Û%”A<D2!KÄ‚OD¨¡,ÈC"W(K!NBY4!O,ÖEºRVF-"A+A$ê„òBD(CACBÄd€D$TDÊ„ Iˆ„(ìL„èHM„0„L$¨Ä‚JDCäDH„˜DÁŽHŒèH”ˆ=D$Q$4!FæA4#šÂ„p"ÅÂL¸BB‘DDãHÂ’ABŽH!Š¢„€&¤(A€H„ ($(ˆFÄDˆÀ„@„BHAD‚ $脈|4GDH$4I„`$¢@A$"ŠD"Ø)B¤LAbEbB C$$ÂHAˆ‚AF„(dH€ HALA 0„F††$ô•Ø0dPJ‚$„ˆ3„+$T@bDD0dhb!€”Bˆ€(A‚¢F„J ˆBÀ„H€ AA‚ABDB`DD D€‹ÈÐ$=Û$L”"D2 Št‚¢†#Ä!0…&c(Ä Ä"€¢DÊ0DJHÀ„BC4„‚ @€JüÛuE!H!,(‘A€2„I‚˜"`TFD2) D$”„( &ÈDˆFLˆHA‚H ‚`DD‚ÀDˆLˆHˆÈ?ÃÝB2BA¢$! ‚8‰‚h  ¦š#‘‚ H$Hâ4ˆ"G€$ˆAbCF¢(„L‘ˆ!@”(Xˆ!0$€–‚&"1HŠÄ‚âÙ H¥‚¹$d‚I'F@adB`AF"b!H€‚‚A˜€D&d‚#¡„&$„ J¨B(°„EˆDì(H„ !$|1ý|2H;D)9„f¡Ã‚K‚a‚ÆA‚"!‚DJ;"‰9‘(†,ÔE¡‚GGH"ŒéB4’-Á6˜!À¬J‰ø‚(G‚Fƈ%A¢+„$Š,HB"ñʱ!€ª1,‚EAB4„ˆ!‚ ‚ ˆ@BB"H‰¨Aƒ2˜€ÄOÓ(Aƒ€‚(!(NƒD†D€4"A0ƒ€ˆAðkà r1”‚Ä„EA–Â!,"e(*A8È%ˆ!¡„A£‘"˘(ŠIÂDA@ô(()FJâDɃB$,QHIPŠAƒ2$DA.H†h'ADH‰ä!&a1sF‚!0FÀ†Aˆ)#‚H(€T$¢!„I!8$‰B"jA)ˆ¨AAMB,„Š!$`D(Bˆ2$D ÈÃR€ñòë(I"JCX‚ A†J(hA@DA Ò!CQ@$"A"0H d„ $ã„B@"àt9"À ð%Hȇ(‚4‚Â@ˆ2)(ˆCBAC¨&  ‘°u($˜!(‘ˆ˜„‚,!F„bFŠ¢H#ÙHtˆb!¢ß CQ ˆ!PÁHhŽð„‚VBO1(ñ#AA9ȃB@€"ˆˆˆA4"`,DX"LòBâ‚*!t²1!°A‘*IV$B(,BÈ"@eÒ!#“€È©‚R!@Ô!BHjCB`v)ˆ€”(K(ÁP"òD^(D^,€h…òšH2AAJ'B#‚!QBI„’(…A$ˆAJŽÀA0"#B!S’,ÑŽ"ŒFê„!@(&)€”LÁÀ"C/„h„"Øc“1‹Z³R´ŒŠA‰2Q.GAC9aBFõ#Œuy”‘"8-¤MA‹!Œa(G(N\ÈA&æFDÑ‚´”ˆ+xI•˜Š´Ø"±HÈ‚)è„yFÈ„N2#.$$Æì"?˜+š¸†tž¢CøË/Ð%õG4EAá´íRõ!D¯ÃÑ‚¨+)ظG‰‘až"”†á!aœá•ø!bk„0$e•‡+2£‘iÅ"ŽhM&à¤aˆ.ŒÁfhÃ".BŠUH,‚V(‰œD(*ÁB04fX‚à„ò"*~ëCËt8'BJá($¨$Iâ!BÁ8d"XÄ!_‚ˆaAØÃ²6µ ­„E1h±…áa’¢QA>„ù!n‘Œ©Q‹‚0HHŠA"Ù(ñ"ia!A±ãAˆb†„Nœ,cÁ/"TH)å!‘BòÍLÐŒöD#OvqKÍNbO!óÉ-Æõ¨6¿DòñXþz)¿FùŸ®¾TVU»™ïÓóyÞ#_vù*O‘ñÁcM÷ýÍm\_Óõ¬f;ŒeôuXOúÒ¿ü[ŸÖºTrEñÛ¿ÇòD8޲>‡¥^˜Š»”öH'¨/êñ*„_+ñ’ÆþBmKñ¯*õhŒc“į#ýJ®o‡™&MF¯…k-¢Khïg×2ñQz_ÃõQ=3_±õa|O‘÷o…¿ÛtÛêIâƒù2Q¿½ñ‘)Ÿþ³GEÜ\öÍó?FýWŸ_ì÷%ÝÛ‘?!Ñû!¼ŸUûc…?ßñßOAó4ŒoZñš_ÝòY±ï<ÿ5EŒÔöó{ÒmžÞ:~X!©™Þ˜þüÉ÷$”/Âù+›oAáiýÚˆÞÊëQÏ+ú$Nh‹BÏ*s–ä®óò8oÏÿš’/)yRúòÞï#óÏ$OgñkM/âwTÚ(qX²æ®oû¬w†'j®¢/?"¯>ô©úO¡ú$ËF–öDi-ÿ|‚¯†ü"z_¬øHÓ¯…üBþJ.ò‹¡ÿÆy²â*ò‚¡oFtúò©nMªë!ÏFô)-M8ß(ú,Ò¯†øâ(O­”ȇŒNˆ®ÌB³œzÍü"„†”†OHü˜Ä‡ìo„¼ÔLôh¬O„µ¬ÞlôÚŒî¼oŒÔ(}Øè„è|¬òÄ:î®Ö®Öø2Œ?Çø"̯ü*įü(į–ìï—,Ï8—¬o8•,_¬ñE(O¬qEìîqAìîñAŒ/ÇxÓìÆüšDB¼šô(Ä«aÉþBOÆIâÒ4äÒ4vThbFèr8B.•'„ÆÙ´)²i’©)¸â(ÑHb(,ŽC,Ž#G¦wè:\‚.g„†Ù´i¶)–¸i¼ò„R‹!O(ôX(†â…ò„"G„&d…&Dèba„ÆÁAH…–D"‘Ä£ó„R£’D§‡AV˜$G…&d…|<þh˜`,Ä ‚¨0 "2ÄBUÁ’A$À’H›ƒˆ'A‚€¸"ŒñD¤aB68’ Á€8(FbI HäB@è$A˜",Â)\×ã BQ˜!ÀRR‚2†BD"öÄ‚!¸4˜EŠ’‚Ld*äHEŒ‚I"¡ˆ)(D2)H˜BG!$@ŒÁB)"Á‚#!ŽîB$(Q‚B)(âAŠáÇ‘„&A$±$ÑC1ÀJÈ!A¶ë"H„8"࢈1†\B,1!ƒÈJØ!ކø(K„3A¨B-!!O²RD"4„LBèD$BšôWc`ˆ‘À€Bt("È)AB  ‚…ˆ(0'”†’„…ØEâ(L $AÀÈ-$)()”‰$ŠÑˆ1$P$ g„A.DŠFR½sŒB8D%˜„X„"m„+‚>‚4!ÝÄ’¨aDšF¸ÃB/r˜cáLˆš‚)AÂA'ex(ð™bÍ2ŠÔ¢Hºq‰‘¨/‰t¸98OA¢!xFäÑBÉ!#TD&ÁDNˆ„…rˆ¢‡DÏ{I!!$„ŠF‚ H ¨!‚AŠÁ$@"Á¨`H€@‚(RD‚B!ŠäD‚&DH@:m%H(a0BAB$HC)H"$c‚ƒ$ˆ€(@!ƒ( „€„€˜D€ò-˜°EÒ)ˆŽÁÉÂŽ„Y!Aø‚($É’!œ(IØ(b9„ŠØ˜ÌA)"ȧAЂÈP˜„,ÁXCY(¢ AH$Hƒ2Ha€ƒ1ç‚B TˆAÀbJ*$+ˆTÂ&tB !„A† „EbH$t˜@4(€‚Ø’Aˆ„A,(BH" 0…„ˆa„%„AÀ8H…’$€‹B€(¸ÂÂ]D „ ‚Y!d¢Bƒb BALÂ’‰„xH!8€†"QÁ @(q"„)"H‰A6H@‚"„H€DŒ„+BH$ˆzC FÁGA ¡ÁIE„ÈŒŒAa„…0ˆ Ș€„ˆ)iˆ(A˜‰À"$0€HA'®b„ˆ,ÈŒ¡ÛT„H@A¢:  †Dˆ€hA‰"" BQ@(!)Iƒ)@B!F!€(2# À[3ƒBAA$Q@"(H’ˆDPH‹XH7A@Œ(йAˆ0D˜0ƒ±‘1+P$BB‚ ´(¢!J˜ˆ’BlÏ?DIr:B%!&"N‘C‘G")‘D£¨!%äB¤"¬„B”$‡!;X$ƒ8(1$#è#’B"#¨!/ä’D.$]HŠ ¨ÁB,4H‡B(ŒBLdBKA\œ]hFÕ„Ä%UˆÃ"‡(Ns".ALŒ$I4ƒ4F"rAE$HT"…$Æ‚2,x!àBB‰‰D$ #HfÔ(`B!ˆÀD…B”H#ñ¡J°L1BƒÑ!˜`9…ÃXhB¡Ô”a‰$$á”òQB!ˆA9¨¡Ia(UÑÄFˆ!aˆ$˜ˆB€C2(Ð2A„%â"A(F¯cÄ@B¨-tJÈ(€ˆ’„…P$‚)¤(€"‘!B!Ј€q#áI±J’F+AP2B‚à¤È&"A‚‰(¡/F$@&fH‹Rp8 HX€AV‚Á!$À‚Ä*!‘0(€ øB! Sˆ"&"QBX•,„H XŠ¡$‚C<9!³`€²S$H€,D &”!€$­!O„ a$ŒA`Â1)@„”(!KH@Bá„a„`!('Ä€¶*!Àb/쌴@a`J'BŠA8)‘&Ɉ’”,H¨‘*&42(Á,rAJAA(&Ž¢BÁ"3 䄈ò";óS‘H‘!óFHÃä»D¡$Iè¡óL‰ŽRB§&eŒ7C,8’Á‰áò!A²…HbN+„R„$`Òq2¬E)XYXÙ‰î[$?7†/¤±qsBX„;-ÐRÁãæâ%d"±ˆì)v<]*MM"‹…BR.—C£ª²#Á/Áׂò8UѬ„Ô!òE:SqãAÁ¬áè”y24R#ƈ*X+"é¢(U2Äž#ß±BqQ" „è„q!\’/BˆXB…ÔAœ-}BAH*t´b1ψñ´"#ì!a„ŒòRH3Oˆµ"Ái1,xA²Ô$ärM¡(d"С‘AB„’JKHH-A–!ñ”2K8’Z¡ˆ&AØ„ˆ<8:ô¡`QH (C$hš¡!Œá“jÆ&a‚¨2)ÔHÂBɈ¡2šâšOñT!Í#ßãõ+A^Q5×µ¶^Õùé]cÿ×)ù¡ÝwóŸ¹ÿˆôSÆú(ÝÁ7?SþÅ9McOrüšÙÖè!úÄ#åñÊ~Ô.v·D+ˆ—좷·ý›Ÿâú!Ix‹ñêlÞ¼#3uèþÑ™“dß™å¨ù1݇b_#á)ùAŸÄñO)÷ªRŸÔz7±%¼«õÉ/oÙ&ó6F〈¨kZÏ„9•=´÷%]‡‘½Z%ôq5ß…÷v?Ëü[šz4ô²Å¯½á•ú]yï9{=}IùIi߸ÿ7T/8ùQ:OÚý?)ë¤åÛ»]óÿ7W?%èAë‹ñ2¿µìºØú^"GSÙÒ=ÿöU?õñQ»õ™…èÎ÷œq_Jôr»…+ƒoÉñU¿•è•ýQï;ú7%–ö(AÏ2û”?¦ã§úÆ~¯(‘’Þ˜þþë3?ÓEò$V?Sôb&_$DR=>Îîfë¡wÎ/céj³ú.Ä?géîòEãkaGFn$IÿÔ"ObýûL/æúÅKÒ¯ˆÔ¢üá†bþ×1Žø2–.¢?³âøj’êÖ¤ºr,ô(¬]¹Ï!ú¸V§Ž/úDÊtÈèŒèÒü(µï,òÍŽ/Céa8‡OHÝIüh.O…¼>ÔMôHŒO¤½þ¬T‡ÌμO„¼|Èè¤ëM3×,ö>\¯¤á5õ7/1ò5nÿD;Jø"/jÚ4÷¯L/ZõbOúLhMaWFÆ÷Ç£O4ö¿Ô¯¨é¥ÄJ«É¯µö´ßgÞ4;§/Jù2¢²'š«ß§âþ¼Í!Ùr-ý!lÿ%ûŒg»J¯œùA›Œõ™AŸŒûuÝÂþ]ãwH¾–-„MƒoÌô˜ÅÔúâ]Ù–L×Önmÿ!ý¬RïKöè˜^Š/´˜}HúöœOM 'Sô:$MA£Áaã‘hÉõˆsׄŽ2CøÁ:A¬ñáž3qaŒxsŒø2„ȯSÒ<áçì8wMè(“¬“¬îž3qaŒxsŒx2äü:$I|>–LŽsפŽ2EòÁ*YñÁî92ƈ7Çx2„ü:$i<èë!Ü6¬-Ä/Óô*D/‘ô*D/–.Ö.ú„sÍ¢O8×,òÅ:_¤úÌ2_æøèÆnñaŒ¯GxóübÄ¿Sô*įô*į–îïöŽbO8÷Œ"O8÷ˆ"_¬óÁ*O¬sáîëqaìêñaŒ/ÃøsŒ/Âü:Á¯BüÁBüñÉþñË(ß8·Œò„SË(_­ñÅ(O¬qÅüâÄîÄørŒ?ÅèÆüÔB¼ü(Ä«aÉþAOæL¢%E¢%M#CebR&jR£ôa-AŸB‘BB“FŒ“Æ;!O(µÒ$ä…R$^(M"G„&f….†#äRyBøaœ-A‹‚)´(šF‰›†«!O(±ò„B„b8^(O(rThJFèJHèbi„ÆÉA„H„Iô)’I<O(5+KH§†Cxr¸„rTèBxRÈ8³…D˜F…a H‘K! Š„QPAh`³‘A"‚2 ‰êD@aŠ(Éð‚HˆAŽŽaEâ!bH&â…Ô‚1$’‚¯­+ÈÌY(Ä( 2ˆ)AID* 1B–ˆ$* J!hC`€€d…h,`I"˜DR-.¤A$( R(!:TH’!@ñã³ÆDa„!ÀaHK!)*q$ˆ…1"Ì„R(ÈB™d'€"h"Â,cH2°d‚@8'L%!ã8¨4(x#X$ÀË(N™¢Å‘!³ðÈ€ ƒôÛb@&‚PH)‚¨+Ð$“ˆRB!BH£D²¨ÈÃ"±‚¢‚EˆÁ(Ä ˆPJ‚„™€ˆC8!eˆ‘(E¨&˜ÒAHJà¤=ÂÂ&pDA"BQB6+r2¤…‚aD+B%Òp…‘Et‘"ƒ²"ñˆBK(žDŽ‚‚›„G‹RH£‰q޵"xƒ$Á¸†qd8A†‚ÁO„æ*Uoƒ49„BãºRôˆ„ˆƒ„0’H„LDÈT#Á¤ƒ‰&„(#‘D"H ˆ!"!ˆ"A€È€ˆ„A$‚(†"@2HÒ“Œa$BC‚!R‚@ e€(¸HB†!€Œ„ˆkAP (,€X*”‰£A‚Â!ÌB¢ˆ$ŠÁ®(À@‘š2ªIØ +!„D€¡!ƒbB…Áˆ@B‚¨A&HÈ>$I!IÒ)aA,B@4‡AP„À$Ðì<!@`2I*(”‚&"rÈ! B€q‚81$9A ˆ"‘"0„!ÌXH$ˆB«”@"&4P„„#CA„@hA€…Œ4â %!"Fˆ€ ˆÀ ’†A("ˆ P  @¡$"$D-"DL.}ãœ!(1¡ ‚(xˆR‚„( €(™!`" ( !B1(˜€A²²D„‘„!¡%Š!("qa2MB jh)B"!$¨%‚¯ô &AR2 ˆ q(A¡„  ‚0!€Š#<‚BP(L# qA*A(B!H(l;-àÂ!CAðˆ€"‚(™)YF8"€("P!¨!ˆ )"B!‚ !6á$‚’!‹,ba BPA!+B&‚$¨A*ŸÌC"$D²Baa@bbkÖD´‚kRDKBLØ$$8NˆEòJ˜$¯„IæF#H–b)$±†QØCRÈ[ƒHÄÈCјa!‰gAŒd„ x”4…Ä“£aF…¸dRˆb‰±$A8TFR¨%ä’74BDÄ@Á‚(f&2QaD$AR(Dá\D—€”)è$ˆà(ˆD®#D@cZŠ4ˆ.Ñ‚ðˆ!€B1Â"+%6¢"BL‚Aä!²Hô‚D‰!AÏx´aD¡"‚!!CšA44„€h„MÖ(1’B!(°‚A1(a"CB¸A“A„˜Œ)"…B"T!HE‚‚bEa†(Œ%øBÄ#-X‚IÒš„CŠÑŒ¨U!1H”"(J’*–‘Br88J‘!‘Ð"È"ÁE2,$)Ô$!"Ñ…$I`Š,b„*8B#¨¯÷($"!T$œaJB‚&d–„¦*€Ä¡,‹.“*Á²ŠA"ÒA:ƒ"Š’(A²(ä2(ÄA.ÂbL*‚2è%&0(JR("!!BlÂÖ³’"0G†‚A‚*"(D¡#[E‰@c‚"4"!EÄBXC@H6"@q€¡U(—ü 2@J‚!Á #L‚4!# 0D@B(dB(B@4.A"1A! $N@(‚RÂD'€3¢PAa"P†B*>¥)óTH‘:à"Á11d:1aÂ"¤7Ff1ŽAQÛAëÁOŒ±…Â*‚¬ã„â”A!RAò"=A*’UYAÑ!ñ-A[<„%â8#È‚bBXN.„¢"JÕ$1X,6Þß¹M"[44FqÒ±8R!¯Ø²“öÊ$²Lû¢L¯Y”Oˆ”,´!Ü…áX´O„é¶Hâ¤(b¡/R±RBŠ¡#É!/’ŸK2Á."›‚˘Ǣ¥ø¡RÈ鄬Å>(.žbd+4&Â"ŽDÉ/’,И¼1ҌԄi‰)dD-˜ò2““Ý·RA01#SÑã…¢!2À¨!¨<31§D"☱JˆcBñáñ!!á"†z2$*òa¢‘"RÓ Ò¢mC…5S´!"Aa&­":²,BòEj:,Wb#BÜâ’C(/#Ub#˜RBð7šOñ4#Oñõ1ôYKÍ2ñ:¡þ}býǸ+LçôúÖ{Ò?®ñA¬ÇYþó9/Æzlù”³O{õ©™e$O!ÿ«ñ¾t>Ö¿L¸2â‰öAª?µçõ«3ŒSó%¿òœ¾]rü$øú‘Yÿ”1݉¬ö±bòW2!/äòR¼o(™$¯)ÓȺ6Òøûa§ÃgkƒoCñÚh/¡¥äk)ï•1²=25÷%tY½Z_´õi=Ï“ó¿Úÿ{*ºú´4/Q};úù‘_ö–£ÏQòH)?ö„³ÿAñë:¤ý¥ìQ?9ݱñ±üÏ÷/e?[þs¾”º³2ü{;Žù8ÿ2û4%)!ß:û75?éûA;_Î÷]ÒyQøñüßöå$/Ö¹{ò"oããs÷;{«¼Þöl²oAÂ(òñ_vó"z/¦÷æ>!í$ñBXîžÏ"õ{R$MG-D/vÒ$Ä¡/"Ññè|–‡Ìò†løÑoÈôRÖlòUÃëAODôA$OýŒBOhô«m/ôú”J$øËH/¤ëxüè'yzçØbÈ¢)øƒq¯%üinO¨¸R\ÂÒ„ø"†§Ê/‰òÄJ‰øÈHŒíÜØHøNCßÄaA&ôTÑOHòÄæÚ„¸RL,_ýÎ"ÍDäó²nGŒ…RЏŽÿcÊâ}T?'óQBŸ¤qø"Çñhü|:oHù"/kò¤#ÿÊþ:$?~éVñuhK"WTfôÇÚ_"ÿõ·§¬m¥¯ùúª_õõɆ_4µ–ú"/)ã+õ¢É»¯øñ1œß2-ÕÌ<ï9ú,W«ýÿ•úÛ„ýi(OÍÿ±<ß;uWö24&Ô&÷õ¿bñÈ|/ë±r,ÑÝbÒÏ==.ÏEõš/„ÌX¯%ñ8Zoßþ÷p2ÄA¯CÒ4vÑì8÷ÍŽ2CøÁ:K(¬!úáž#saœ7Lj/BÈÁ¯BÚ¼Èáë4ŒŽsׄŽ2Iá¬ä¬î92ƈ7Lj/CÌůCöÁ«Aþ!öŒAŽsߤâ(“¬3…¬!øáž#aƈÇ+„&„ü:$I¼„¼lqÃØBôE¯BôA¯BôaéòAí¢_¾Õ,ò„SÍ"_®ñE*Ï,qEîoqAýèÄør„7ͯFüe¯BüA¯Büaéþ?Aíb_9Õ,ú„S¢_¬ñA«O­ñAŽ®Ä®Ôø2Œ?Íò"Œ¯ô*„¿ô(„¯–¬ï”,Ï:•,O8•,_¯ñEhO©ñEL/ëqAìêñAŒ/ÃøÓ.Œ¯Aô(„«IBørɺ>´”F"W4rM"Cäb"AÂ#ôA,-A)ÔA‘Fi<O(51MBvX4VØ4rDhrVÈ&#Ä%'„ÄÓ”()˜F‹i8O(19ErHc‚M#G.EHDÈV„ÄÁAd‡dAƒ’„³ó„ƒt8˜D'ƒIV†&tÈÚC‹(8Ð'"Ia" (&="BtPX!""°¦‚a‚Œc@“aR"$EBq$B¡"„* )‰x1óªÇ€Q3À"L+¡@ kH‘L!5!(1 ‚šLA‘(R(@A¨!#Ã"%„RD&"Œ hB„"–=ýà"1Aà‚"!Ôa(Š,H„´DA„ ‚BAXÂ'‚ÂS3Â+&©Á!H!‚%!‘ÂQ(ð†B&â!hBO$x•‚&X‹‚MŒa( d)FØ] ‚A‡!@8L!Ò„d„B!IQ("PHDA…"AR(0$(Á‚G!P¡Mp(A."Ô‚%ÄHBpXT„’K@ˆ"‡$&ÄH'JB„‚DzsÛ"“DÂð.DWl²‚D^„)±E40„HÁ!ŒÔ˜BŒò$H3‰r2TBQZ#ñ¡(™‚Òé"Ñ‚²…a„5ê¤ñFÒMI¶6Ä…B4I1Bf‚‡¯"Äf&,a„‚V®Í@HÀ! (1¡@D!IÈ2@††$!,X„ a"A‚pˆŒIH¨ˆˆÀSJKP`h@2I!œ€X‚A,€”P$ˆ†8IAˆ Aˆˆ$@XD„ DT‚A$ˆLÍÀ1e•Ñ‚`AG!D#4"PHd!†IZ„ˆ‚Äj84,’‚4'4@A àhA'„$A,A‚ñ$1(!!6dj"±$*‚4$!ÀˆÂ%¨™3G‘&D„@ ©Xq`!A‡A,,Ap‚‚H$1ˆ ‘œ‚8!cC"ˆCÔ*‰*9,!$²†Ò&hB âhBˆƒ1‚ßÖ¡$„B„D6Tà"È„Œq‚Ô„b)À‚ !D$DHDBD"H!$@$Ð$Á½ÑÅW".X‚eŒ! $ Á‚FAˆ/È(Ca(LÂ!"ƒ!’$IÈBÄ’.I ¡t&¨„„A"l4!!ðADƒ"\)KHƒ‚J„$rNO"A(‘†ˆ`!°$„!€(ƒhHC.„$/A"ˆ!`B‰Ä(I8”È¡`B„Š’„„HEAˆ F*Â"㊂8!&4,L€‚XB„ä!ˆÚbD€!(‚‚(Oaab()Â$0$Š’Œ¨kA¢9U8D#"„lHàH‚”#c$ AAÁ„!ê„„JòÛ~@´D2BRBŒ±ˆ XC¨Œ*„òHƒè¨8‚fŒ† HBÈŒ"A“Á(AAŠÚ(Á%H&@ Bx!ˆ„$àò>_)b›A@*T/"<(†!ž"æBq!F$)E„4!%¢A,ÂD`DŠB"HRJ‚"„ÑAda!ƒ¤"t4²(BÒD˜DLH’D$‘EDMApEcéHLTØ õ!80V€H"Á8ƒªB*RB*ÒH„cH!€1"B+‚#A"’„…$ ‘$+HPAŠÌ'”ˆg#ð$"„(X§f`!4a)¨!!I¦„¨ó !(Á0",†(#E&ÊF¡‘.$XLXAŽ2C(B3ò"LfH*ÔÁj˜!ÈòB,e+$#PBaJR„ò„X(Iæ!ÒD¢BhA?êE$@…´!A$„‘!HÑ($QEL$¢G"GHåˆÂ1ЄX,A˜)ÁUÀÅД§8"N–"$ Ê!hH ¨$i«‚ªA’d°¥×xˆ¼h$’ˆ.ÄãL‹8ÅH@H(>ˆ€ˆ!(:A„(!HD@R‚AY3,51…’A(&”ŒB B$D0($ (ƒôÆ&A"„ˆ(!)¡‚-,ˆˆ,# Á$FYaN„FòqEèu!l²!"Q#(ÕÔH!‚ŒÄHc(DXAP‚`JBBFHŒÈB(l8œ”ü(]Î5ñJoã‹ñ¡);/#òb’%9AÀ"/ÄòFAø1Be³\ŸÆÑIe;;H†´)ãqøÑ32òAnE„âÑòû%9~’ÄB4ÅD‚O6ra#g‚O‚‚æÂóva["iñtiDdŠâ‚±QÅb*¥MÊ(µÔôãð48K$'¶'„áÄáBªaJ‹B‰±(mB.F.D+TÖˆ!¥)M8'Â$/‚Y"k¢,’ˆÍ†t‡J(Eô&!,¦ŽIBÁI/r1ÉH¦$"êHb1‹ˆ£4hDB&ôELØL͆G„HÊ:dM.CÂ!—AL""r!á¥"A’&¦a$†q!dÂ&ìÂ(ã»!×L8‘°rÕAöO"SB‚N3°áƒ&áÄÖôAˆ€Üô-d/1yK‘ƒ#ùD+X_b”‹d%D…ÜañBN‚5d¢LNILÂ"¯BqHÒ"‘BI‘‹"Ï—Ereù1sÕûã…¥e_Óþ3#¿}öªV/mª3”öÁ9/-Ø"õû3Ÿžxtô$ä¯/ú~.Dz¡ùc–½º_…±‘ºUù=­¦óázËjïeû&={7ž?/ýaßn÷Ií/WöDe¿(ø?=?óµ¢ý5įµöÛ<ô·»ÿÃioÕ“ª?LÒDúÁiû÷±o^óndÏÂüQEODöxÔߨjëOcù²F¯¡ÇÈš¿”öÎSóqX_ó÷C;Q^Hn|_‚ñmµ?Ó÷ó(>6+³¾Qšâ§óºB¯3{ñd,ÍdÏhÓbûF¹ßöÿùQõ!Wûe…W÷ÿOò‚oÃú†wÿ¿òQ+¯qû>ãoôdißTöí·³>ÿ¾óA=ÝÒ?,ùÓÊ?íý2?7óóžÿgò‚†gBOþiOo¿~_öÿ÷òeiûbÏÿuq_«ÿFzo­ûNR+Ý^XþœGö½]$]Um?ÔÓ·xøA)ÔòÃÇo¹úoŠ/h¡8Þ¼Êõê*?¼üaDtHüâZï(Üݘþ‡ko½ø‰ÁÉštÁýǯøI,')ª±‘ØüÉAŸžüUŸ¿tIôMM5ù‰ÉýK¬O©w…Ø(yˆé¡úÁ™¯*Ö,xËÞ$hJIx‚Ö<üÊMŽÿAR\Ý,O×ùŒ$ïBýŽ.müg¬‰øˆHOÂý”ý3Ûö=E‡¶•ôCƒÑ˜õ=UyôÇÍŠŽ#©‹“ü‰¥ë†øYAÛ"Ï„òdÏMô¾ñŸSþI˘õCÉÑŸ•ïÚôõyßx±3û†’šò‚õOÿ»Ÿ™ÒÑóa×VÝi_žs»ó‰äÏ3ù,œ?¹ôÂÈ¿øøüoÖô5ï}ü£¢ob²‚ÚDâºþ_·¤/ûû^EßBtMý„ÌÝDÅöþÆïæò”ˆ/Œ9ÄóÔ¬¯Ÿ 'Cô:$_46–LŽsÏ„â(ôÁ*M"¬î9ƈ7‡„#ÃÁ­$MÁ£Áá£ñaÍŽsß„ñ„2M_¬ôÁðáž#qaŒxsØBx2ÄCÒ<¼äè8sÉè(“$¬3„¬¡Oî9ƈ7ÇJx2¤Â¯Cº<èãáÑ6üLüEŸBôABôqÉò~AÛ(Oºµò„SòÄŒòÆŒî„î„ørŒ?…èÆüÁBüÁBüáÉþ>Á‹hÏ8µˆò„S‹(_®ñÁ(O¬qÁèëqAèêñAˆoÃøSˆ.Œ¯þ(„¿ü(„¯–¬ÿQ•¨Ïy•(O8•¨_¬ñA)O©qAèêqAéêñAˆ/ÃøÓ.Œ«]B¸ô(„«yÉú¾A_Ïvta˜$G„.$È„À´FøA¬”˜H‰‰´(‰<:ŽRƒ¢H‡…‚v¬(G…¦d„Šj„,zDøAŠMA‰ŠÔ(‰ô(†ˆ£ã(18‚§ƒŽA¬hG.¥eHAÈa„„MA‹$A‘0hˆ³ç(1)p(„hEèBDȹcÑ„!‰%è"”ÂACbP)SHˆ!RˆB¨”+iI!¨!iÊŠ4M($e‚à!T‘/DCá,!,w„*ŽD¤IÌ! $Á8"K„ ” þø© ¬, ÐA14#(’L¤(P(k…h!BÈð¡(Š$âIˆÓ‚¤D&RˆRP‚A^"Y(ÁCÀ‚ÂD _,*A¤FQ"O’$È"I,vó/’ÌAJ4&†Š‚,(J˜"_HHÈ%¡axˆB˜A)A$„ˆ ä’LTDD¡FÆ‚0hIHª(M‚DèA&2ˆ”AdB(M‚‚„BžD=Gb‚!$¸Ä",‚ )HDG-Dˆ±*˜á$ˆ€"&µ©‡b„!ˆ$c*8LÁP…fÞ$ D2(6…€ôA€aBHø‚ˆ`"N2(B\HAÈ-Fˆ5ØAˆÉ„‹‘)G$š¤(+HŠ&,ó’&=ˆ0h$.ˆ4¤KRMd!&Ä#Ex!ØD”bIh$‚‰ºô_˜$†B4%ˆtB(r!.# (ƒD¨@I† ˆDA•D@HBˆ($!Žˆ0ˆHDA#„¢ˆB29±B  $$e$HB%IDBÄ,A‰"’Tdp”TÀ(*X‚À(@X$€#¸†1°Ø‚€ˆ'„0Tàd„úÞ® eq2Q$4L"•6Œ9!Aˆ„êI8&ɰ^8J²„ °døJ„LQADG‚!QÃPè¡„v„"A…âCØ!‘DÓƒT(9±*±(ÔHÁH„,¬ãŒBTHt‘¨"-,Pƒ‚!A,ü‚‘'Ðb)AÐ$%„Ò…HôJD&h‚D'h„$‰S†(ÄŠ$­‚dA@°Ø(&ÑHE€‘¢?^H“8BQ"&‚A<$†h"†Ä2ÀŒ’#’ˆŒ"CÀLŠ2"$B#"‘D"¤K!,ÔIB¡$„nB£àD&^AcQ!¤‰Ä'‘(@"a‚])rDDŒb"L$Fh!D,ê¨D³R$"2„0,Œ(j£ŠAb„˜0(-!N–D#È&d"ì$D(S$øâHIˆð·A@RXD)a IÂ!@I–b!HH)4¢(1‚"„D"B#É’$¬*0Ö0‚ˆ¨E˜¤(Mò‚P3X QTŒÑ‚!£C"™"Qhˆ!(%D–ŒD!L‚‰Â†D2UH(8"‹!"D‰ +(‡*Jqâ!"Â(< Gj(i2D'Œ*äH”ˆ/H¢BIŠh!Lò(p4A… ¥(DM„˜b@AÄ‚ ,!5˜BF(¢ƒÀ2A†"A„Ä‚! á(|o£ïÍóŒX+”/(ýøü¯&÷\ì43ò+!?vóC=%yñH#Ó"úã,o!BÒ&ÚSþÒß|òuÔWÔEtMõeÆ_}ÖWy†õ¿uŽK-#ñK3^ëŸ2úÂC?ŒØ"Ødû„f«úʆòWŒQRĈ‚݇7YgXïHûDŠ·¿œô£‘N‹Ý‡OøôÏœM†,øÃC¿é¡üH&S}wÙÈô,¤”ÏæúÆoHò†¶Ï$œ’£ü2”/ü4Oõ—÷jyw1Ÿ´ñSA·q=K_rõmN[¿oba#>¶qïûÃï_SôG%—ÂOÔÖÙöå‡Ý]ÿ¯5¹A´RõJi?3õAÓŸ&è‹ó’’†Oc8Ö//ýj"îõÕu-´,²(áñú¡soÉóïþm¹ñ“Y¿=ûRâŸóùT¶ÿÍò¶†o#ê1ù¹i?)ûB†XñWa_BòHl.BMîOjtžü®œï¡l-+ɯ¡÷ÒÇ?»'C.E¯CÖ46O–(8÷ÍŽ2(_¬óD(¬!ôåž'WÆŒøwŒ^ˆoCü8Á¯CÚ¼ÄáëAaÉôˆsׄŽ2IòÁ*EøÁðÅž#qaŒxsŒx2ÄÁ¯CÖ¼ÄáãÁaÉä8wLè(“¼S„¬ny2xa¬„7Ç>ˆ'CÈ/C¶<‹áëA,;o=E/‘ô*E/t*õyí!o“Ô:ò„S"O:Õ(òŤúÕ¤øè„î„ør„7…/FüQ¯BüQ¯BüqéþA¯(ö„S(ò„S(òŬò”¬kqAèjñAˆ¯CøS¸/BøÁ¯BøÁ¯BøñéúÙ¯(ò”S(ò„S(òŬò¤ì¾Ä®„ø:„?…ø"„+å¯BøRȯB¸–®kMILbA,dA,2D&&D2FctAØ”a!j‘‚#ç(!B"C,äb2,Š;B„Ø´H‚˜B.ˆ)<2Ž6h(ŽBƒã(2®fŽâ!¨¡„Û´HXN˜aj˜†#ã(!f(†"ò„"A.fœ‹((4B…C-E‚AB2 D&6(!H8%bÔp‰T%Œb­‚&‚˜RK(,‘!)ƒ(‘ˆ'‚‰„:B(0`kBh„N%dD+B!)¸Ø5ñ¥@%1D$°FP4*`"BRA"ØCx¸"D"ʆb"–¡¤@a‚ ‰/L‚øHŠÀ–.à‘!â’´Ž…F&ÁÂ#¨MÊqR$4€Bâb((r"‘„!M!F$xÒò„Â( “BljJ$ŠÁB&N!À˜ŠÒ%C’ƒa°(‘‚‚$EÄ‚„X+ƒ (¼BB„ðn¸$(…,DbA‰a"k¤¡„(AD‘A%…!ÅÁ‡8Aa`A¬DE2„…)Xˆ3‘&L„1†B,hATˆ&DÂD‰d$BH!2‰„G$s!…S(6*8"†ÕBü*p‘*I"ÔLBe1G,Á#„iñGD)r†ä!uÒÛO"Aø%‚0ƒŽ‡‰b!m‚M”LDtD‰òˆAHÅ2HJ*2H$Dï-A!A"„"@0(@M#@P‚Š‚˜D"Ž‚D„P‰ˆ@Ž!Æ"(! "AÀ‚€AÀŒ3°!T4ID)Xƒ`4Ir†ˆ2ADPH„'A’-(D$@±(˜Dk2(A”!ÀHDX$‰ø*sñ$DB2AÀ1T*IH¶èFx"((E©Š¡ˆ$¬qBRA‚–µHµTPŠˆ­†æ”À„.*`B!AD¡P"9Èä*ÖBX‚ÀBŠÄ¹#Ê4$(áP!b……A4AD.‚D"Lñ"†”P„€xDX Ø"A8$M‚"€X„cAR„„@ ˆ……8$Ê-!D(AD„(X°L‚ #ÈÏ®[!B$#hB!†Ä!$ &BÁ‚…xB€1„H—!‚$&„!P$Ø(A©"M"D $T–B(A!B€Èt3σ8B!‹À"ƒZA%ÔFAä $QŠÄ†"é‚"](ˆˆ)B8!(Åb/HáˆBB ¦…R$C'!Jf"ðhA¤‚%¾(ôB†&ñ¦ŽAP!‚F‰š$A„‚HÐä"C˜ˆ!(D£,áŒ8!"0A"i‘$¤ÆFa‚($‚‚;­ Jd"(Q™(K(p"e¡\bJ¨9æ(„ô)âA•à8R(5"#‘IÍ‚À‚‘"Y%4&#B(((V"ƒb$ðˆ!ß³ C‘$@k$‰Bı‚H B±˜DFa $F((Ž(€‚”A&„‚8"J‘IJ BCh"@„¸H©$d„H¡ˆ‡A,1Bà¢(ÂAMQ,A!DqD´¨U+D0²)1ŠRBƒÀD4B$…CÊ!EØ"ÃAG(EŠ¡K$Ì¥HDD„EäAä(…Ñ$ÙòD¢DˆK„„BÈ‚AŒ#9„ƒ$H "&DH@"…H$"BJ#!@HÀhH0AB€$ !ðïÓL@„@„"pˆŒHˆBB@AFŽH0„‚(H"" À".I±K1ÅX$àAáRôÄ+Æ3‚(†d"óìª"}!2—„Áˆ«&Qž"eÈÊ©XR…þˆ%O(ÕH4„€qÄ4*â3²d„!—V…‘†.HR/œbØ­ƒL…¨(˜¨¢‰ØˆY؉÷Da*ærš¼„öÒ(ÏvÎ(8ÄÈÏÆÔè '#±Qäƒ"áÿ$L±4bDGÜ’F(àÁ´DaHÓh(Pˆ!4A1#r:XX'Vt”Ã&N$\¦NÎFüdŒÑ„¤RG‡%86tDè„tBñbD®D)EÚ†ää$œX„$EâR6%aR&…â!¢%°&V¬2‚¤¡7b#hÂBR)b=‚.!.C…Q4Œž¦%Ò˜²„Â"c¸‚hcÈeŽDTADÁ”†&dÖ#áÔŒ4EØ”:DEV$MCô!fô!Rb0E„rx,H©ôH‹2’otMòhOCôZ/4²¡ùTŹ·C·¤ñÄ´m/”÷»h¿.ùv¥m<ßL|\üh!?©ú]FwaOùú,Ïn*•â¨únÇOâø?l×\Ohõæœ/#rBó^ïný>§om¶EýUDOVöƾ÷ÕõäSÿ“ü:i¿ì¨±ýzL¿Sþ‰\Ï(ñä-ßDÖö{Coúû^çöýÏ$o¼üBÁ¯´þ‡"oüöì—_êùw¬oIó¢/*ý6ëí÷‡¶?cø6%]%]$âôå·QúWÍ?q÷Å?1ø’!ÿû„·_:õ|–Çò”¶O*ó6Ö¿òq’_úÓGxUE•Ñ¡ýÅ/axÞôöO¨Ñ‚¹šù&TÏ|9X-Möy$?4Ôe3ßõ¨3/(¸skHO)ñ¢§/µÿˆZ?lóG·¿Òôlm$Ÿ¬ó£EïÿÛRü~æ?8ô˃-Ã?düÃ+:õ¬ï#ú”6O*ñ¢“~§/=ó>½cWW.d_Dò1ßzñ¥·ÿUþ¾ÿ¹åù“É¿õô×·ßúù-^Nò¶ohé2óÄÉ¿³÷ßa~,Rteù))hÙEñöì§Aï©í$ôÚØ/-òRêŸã 'Cô:$MA£Á!ãÑ–ŽsŸ„â(“¬ôÁðáž#qaŒxsŒx2äü:$MÁ£ÁáãÁaÁŽsW„Ž2A,ôÁðáž#qaŒxsŒø2Dü:dMÁ+AáãÁaÃøˆsWŒŽ2CøÁ:EøÁðáž#uaŒxsŒø2DȯC’Ä+Á‰¾ÊvSÒQüRyÏRôA‡R/ÖòAò¤S‹(OyµˆòÅŒòÕŽôñ†ôá†ü{„?‡ùiÅ/“ü(Å/•ü(Å/‘Þþá8÷„s(ó„s‹8_¬óÁxß(óájqaø¡†ø3„?‡ø3…/ü:…/ü:…/ö¡oö3O<×(ó„s2_¬ñAú_(ñAÚjqAèjñAȯCxÓø2„+I¯C¸’ô:„+aéúQ¶Hq!2U.$…8AˆôA¨´HJJÊ+!ŽJb¢H¢(Q®Dª<*<[†è´(h.¨A¨/¼â8Å(ŽR(ŽR‰â(ìbè"5*4†/”(##a‚+'ƒŽfÈ",!ÂrA.FÀ(R'X%"a2L‚¢$EcÎÆ…È‚Ä.GÐÂH†!—JAO)‚(‚h‚Ž)D˜;‚-)A/ˆ+!Æ9‚O"Õ!(1„,±Hbâƒt!.%¡B'…àŒñÄ(ŠIòI0‡€2EÉ8"4…Áˆ„!Ct$sBAÈHàÔ‚Ä"†¢ˆ‰’!„ŠK‚­!)h’F<‚âd(‰t´âH¡,!‰Q„#&DáÂAq"P‚$‰å•Ø!6·T$AÐÄA$$I5abŠÆœ2€bB‚ò(%ñ„"AÔA%H„áTr"‚à6\¤!N‘#1$¼D”¢*AD’!,8"Y’ˆ¢I¦H $˜AÄ)!ÄJI…²„a!0(†š$L°$a(P“2‚2…$…’$‚CD;DBŽ…hA€T`ˆD‚A,HBPˆÄD`*¥”H„€ÁÚcAxT"^ID²HTGœE&¹$«8O¨A&db¸r:ár„BÁ4AÍ$M„)ŠÖaF±2XB†£LƒãÑÁ–F!X‘Dƒ¸!HóD(ˆeÆ@’+‚1HQ¢D‚#4„B#LH­î‚H@BlD#¡” "H"ˆ„PA$!$ŠC†DA@H"H€!a¨H…&&$h‚ Ð?“-IŠ„‘C@8„(Lr$p8(”†HG"“$GH('H˜!DD"Eˆx‘-HA€ $r(T{0D%ÑR•Òt$Ñ‘C!+(AW(#Cþ‚$…Ô$Ø P)x:ÜaH$@4"š."DPn„3Q(+Á„)BR$%•%X!§‚$…eFá5TB.)xH$+$|B#TH¥f´ÂA‡A0‚AÄ¡,˜-0$At’¨Ä'(ÐAQ!†XBD‚4O(dI#H`B#1„C7ˆ)$AµDh"DH„&T!D¢%.DïýDd@AA#Ä‚ ‚eABÁ¤$AHE!¤`*S4"(%bQ(APðˆ@"A†QE1DR’FBHADG$@‚4J@ÂiÑ„ªT(B,.dHBÀ#I´hD¡B4ˆ!DQ$PˆHMˆ9D½‚I‚,Ñ„H$„D‰hD,¨E‰”†D*ÈD@‚QLˆ¢AƒT,±H(È¡ñ”›@(Dˆ(D" ‚$CDA 8„@„@‘ˆ!BH(D€x„‚ˆa@ QœÀ„@¨ˆH$ŒK„t$#ƒ‘f0„ˆC%¤”ÌD"IADC8ˆ!ÌAÄ‚K¡˜D„B#$„2äEè!(Q¡X'¨ÆD8ŒP$ˆ%dI(¨(\AFIs„¸(áˆ!ÈB¤„!Ïó ‚#1À$L$DDˆa@%È „DHFH¡ˆÀH@B@„š!Ȩ„C€T‚(3Ä%!XÑFx!!•Q’ˆ!’15ÁLUFA$8‘”1QG(,A†aQ€DY‘ÈL$2AQHW((`X„†cHàŠ„aBBƒ"ï$5HC`!†J&Hb!’%a$Aˆ˜„)´B˜‰YhJ…Â'…JBB,b((ЄAñB!FA¢,bˆ'F$)H¶"Ȇ¯Ô$ØJD–HBCÕBa$‰Ô$B*X„GˆMÓà d`!!DˆÔ($¢%Er"Ñd HHT)TH!PFŠd‚EB¤F„a„JH$‰’É‚±DeD–>FÆ!ð$„%lH!“E‘pH„D€€A"@@AD¡¡<‚8pa„"ˆ(¯1€@1"#!$!, !L0(CÀ #( (œ"ADm”1FAañDŠ=ˆ'¤)Êiœ½ÁÜC…dH‚†ÂCi,4ˆ…x‰zDzÍxƲÆô¢«e1Ç0Ä%vÂdôyA©…FlÄB‹ƒ‰œ„hñ˜AåbH%Ç!N$'DExB¬B2Œä¡$ˆc(ðæ]$--+¥†•(.H¤D‚$LhA)AF ˆ$!Œr2TJ)ŸA¤!ã¡).AP™Ô(Á8#ÄFaJ&aFŒx(4$ŸA¸2ú…-$0JM$M&8«8I–DƨBNˆEø$“3Æ!“TI…q})ØTMS“ò$5È.k,Qf-TDäQx”J'Aya§)шEÀpfHDˆD˜ˆ…Dñ!ÍA޽"ŠS&Žw(yC¢%(ÂH,ˆ²J|R(#”„BKÄÎJ$?’ñ^B”Ô¢Ó™á…ôI-ËR¿”ùšæ#sÆ’–/mö©ÿ>Ô6ùÂR•B]ÁÞTLùA[O9øÌBþ˜á‘x‡ÿD[/¨ýæï#tFò†’?áü]IEüfö¯ìóäÜFùDÅŸñÅ]/ìýFÿ4ô韌½öaEßZñëþ_åxvlö¦¶OõøZOfÿæwhãŒí„ô$¤¯M÷‚/¨ùdRïbôêÂŒ¬hKÆÏÚ:•-'KÿõÑ5uKÙôy}ß’óE[ßøøë*O#úŽÇ·¶ß»þWx}SÕQT[Ì^ŽF?¤ü—Öo¤±ŠX‰ŸéÙ‹õÏçÄ/†ºø—-E¯ìÅøôÔë/Aôd-=EßTèYõDJNŽOyõÏA”ø™uß^õ…WÔöoŽoCø—meÿvüw{µÏýVhNh'FÍÂO­Ó¢ò"Ø/nòÎB+DΈL~hô©,$?õÕzñK{籟•Õ˜ñIÕxßû^“ÿ¤ù†gi¡ùç[¿qøÓG†ÔAÔQô„KM?]õ‹_¯„ÿÖJ•ýÉQ¿ôý›‡ï¡øÞZÿîû†oaø—ß\ý\¬ïíöfÎïEöiLßÔüQÍßUüÞVïìõËûoµüÙQ÷ÉùOÑþÃï{ñçºoaú6‚kñïóÿåþ_ooâ¸rÖˆòLìoãørâ¯)öÎïÈÞ¦¸ˆ¸ÈÒÌúÄT#ÚRýO½ÿ±ô[YŸ”ñ)}ŸÑô™Çß±ôŸOjó’‚G1ÿùÿM?iüQ}AWTWTDŠüT×ÿtýKRï-üQŸœýI[¿ÝøŽï¡üÜ2ojé!øÃ_õÍÔOåöÖ¾nlÇT_ÔtEýEÍßMõÊVï8ýVŠ¿õÉQŸØíÅþ}Çÿwøõ>/(û4†/3øõwÿ|ûUïí÷hH‹&ÌöD,¯¢üú"¯L÷®„O¤ºˆüˆˆMm¿W /CÄA¯CÖ´ÄaãÁaÃè8÷M(Ž2CøÁ:CüÁ‚î9Rƈ7ÇJx2ÄÁ¯CÚ<¾ÌaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬?î9ƈ7ÇJx2†ü:$I¼„>Œ:&D/Qt8ôA‡C/¶òvAË1O<•¼O:•<_¬ñE8O*ñE\®Ä®Äü2„7Í>įYô8įô8Ä/¶úAË9O8µŒó¤SË8_¬ñÅ8O¬ñåîÆîÄørŒ?ÅèÇüÅCüÁCüáËáワ÷Œs‹8O8·ˆóÅ:ŒóÄ:ŽáîqaèêñaÈ/Ãøsˆ>Œ«ÇB¸Zü(„«aɺ^ö#ÊIIäBL!A$qAìTHDCK#ñ„„IA˜4CäBL)Å„VøAŒA„‰*‘¨8ŽŠQˆŠÁ(ŠS„®„ªi*h†è´((±(*‘¨¸â(‘(ŠÑˆ¢Œ¢(EèBHè¢1üÈ›"MALC˜AMŽ(„D1…d”A(9Ä‚D4AдĒAŽA@ĤAG¬0,"G†‘ʂĂŒh!‚d,5ˆPATFHhDˆ ƒQ¯(A™!u$L8‚„D…ÑAT„’‚)e„ha¥$‰aHÔ±DX„¤(D€"‘Œ%Qˆš -˜ˆˆ)¦ˆX…RA„ÄH„Iˆ€<Ÿ,QH1@c”@!T"`C#\Q‚P–!C‘apbˆRB°h#¯EB!E¢‘#C!˜$"m‰$Kˆd–b˜,AY@RA('A$‰!TH¬òáy è#*47„M‚À&A,1Á‰Q$%Ĉ!HD$ŠQ!1‰H!ƒH& Ecˆ˜D„A*9A„#©¬D3ÔHH†!xH‚B ˆC„RÈ@B€T?GD·á5‚taP2K„/B!òIÁHÕJÉA„/AÈ%RAQ3X+†ÄˆÉØ!ˆv„§(%FD5ED"š!]‚7!CztÁ\â†bI)Ùi%è4hB”ED³¨Ô(d"„‰!d$‡$ÏÑH²B…HB,R@ÀB 4!$AðȈ ‚¤"0$FÈ"€Â@ÒˆDD(Á|?Ù„P‰ÀH,±IHBÄId)qB@ (APP!“dhp–˜!¤P""a@†A‘'hB˜9BD"G$Oç_!ÂH,tAB’FÒAq‚dR…È‚&¢B,ADEñ$B!ð8t„¢XE≔D%$BWH’ÌÕÑÄ‘ˆŒTH,H¥¯‚hBD`R19ôJdF”! è$G¤!ˆB$l8{(%A8B`Cá&”ˆA,”B„Ð"DA–‚%a!‰8BD†!A¦hT!p($$.„!’KH&‚GH<#Ä 4$A/ˆ2(‰4‚ø¾7#”J!%Ì‚À"AR'DA¤C!D‡2A!‰RD$A,BDR%‰1¥ED3HDBXS(…Ô$PBa„%4!`„qD)d$@ÒhQbTƒ4B0d‚èhBA,Ä(a„PB¤ˆ‚CdŒ„eÈH§(P$ð„BEa$‚Ed‚ÑÔ$X(…%‚$dPD‚ˆ0ƒ!„‚ITFL4‚DÈB‰ˆôÓT"4$0A@E"!B$l$@ˆ%†”H0‚(C„‚@ĂБ„Aˆ!E!€H BAŒ>…(!FÛ$L‚Da4€(RDÄH%(ƒš‚aAE"˜AXDpŒ6‚AH„/$È‚‰bAFdŒ†2Nˆ-ŠH‚A0AÀ††’ˆL Y"4„@bˆDowLB…!¡V‚ ‘#‘–`áH€€¨„a!¨Á–„aeA ”D$Pa-¤$©2–¤2")"¡"*âDá((DHBHCÂIÃ…”a€ˆÐ%ÑDa"E‘G$ JA„ƒpˆ˜H%˜Bà‚ABƒ$Ç$˜@„DädxH(‚ˆË—$ŠAHÇ„*Ä"‡XLô(‚PB¥d"ƒ$‚üç@”r(AA1­% FaH!KH$!Ä,Ä„Dd„…qA(4@|˜j‘„œ¤…Y$E1%‘$''8†¹ˆ(Z$(G!a!$Œ;·h%Ax+A#aJ$‚äˆHd(DFÔBX/X|ˆHhðœA8„‚`„•LI¤H=IÀ!'FB!QHÑ‚(Õ¡(‚B•‘ˆF!ðÖN$B.FAüH Ô$!T„cXE˜hHAIA†AD’G$B¬±AXHˆ€ÈAˆD)˜„$0„04DPŒ.H…dBP&$•"©¡H©‘$ÙHC3 ‚€ ¡A@I B !((@@("!€Šòz¾DA$H"A!D1a"Œ&@" Q(P$€Bh(„$ ÂØc^R%hQEY™PQCQTO¨XåC˜CøL›ˆd†¢BGDˆ]DUÑ‹ŒÔ˜tøKH‚YAÓ±Q™ÕÍ…†yJ"Å}XqƒY2ò£Õ¹Šr‚H±ŒAщCh$%QËx)Ôñx3Ö"ØHø‚Ÿ"øJ($)’,¿.WäFÂ$A‘[ago!¡A‚$ADEòDˆY¡„LÁ„N”'E¤ŒH´º”"Aƒ†òRAŽS.JmŽ78,ù2A›A>„`B>D¥£K¥(8G$à‚.H™’a¡>DH)Ô#™H*AÆ„f*Ä@2GÄ£tÔA‘F¥8¥P“$M$C8LÂBŸ‚1IADL”J„8B„K¡„P$Ñ8 ¨HƒÄ°)AHaA'$#6BMƒaˆÂ-yð']_µrkÙÑ}QsCÑSÙ“ñÙåÏcäLØFñÑí³ôˆÂk/HÁÔMHÇDÏáÑNÝõÔ‡7„»¸­X‡-—Ä}™}XŸáö¼BO,˜^E9ôŒÉožÓkó©Å‰´DôÑÒ½_=ܧøHR¹ñ’¢_âø,’¿’ó[Mƒ¹d¸$sÑ}ѹì¸fû‚>ÜøIIO’ò›±=—-O®õ./¦Ü*è(ú$ŒO–%ÔRV}ßÓóM?”V7QñE\õO_êò‚žmƒŸ>öˆšñFÒ+AETŠO¤ô\oHÔgø•_”ùÃH¬èÑñNÿ”ý‹MŸ®"ñ˜gxŸ¼tû=ÿýM²BôÄǯÕÙºøƒC_uÑ—ýC‹W8?qó#›}›ÿøvë8´_ÉeŸ´=ô4ÒM“¿QÒY6{Ïxø·="+Zï¦Ú$|ʺ‚ø‚%J_VNòW?ÿÖÕÿw]û[/ÕwõU‡_õü¿ÿÆû4†OaøUŸ¿”ûzÂÆMÄcõDHÍLÏÁt\öÓ\õƒǽ¯­ñÊX½Y—u×ýï9ûoœ'iG)_­ùG™ŸíöïÿÚüW)‡FNDÑ_½ü_Õ—?¼÷Ÿ‹¿1Ù3ûƒ=¿ùòÿKÏ;ùm8ž$OKøõ™ß’ÿØ$/iþ'ÿ“ÒÙòIm·s;úÖî­žï¤öÎJ¯(ø‚¢NlÈ5-\ñn4ïÔõK5±CñBUoatÔ÷NïOó¦6giGio‰ñëzžFžT'DNDLMN‡äOuùG•TýËŸ…ùJ˜¯ôõO—½ß=ü5¸ohaiO9øÿüõ›ïŸÑ÷i)ßÄÔDd|߸ôÝß/dÉÓ÷¿™Ù3Ù3ù›/¿ûôþ‚Ãû„´²KKÏÃûÍ|ž&^7·’ßÒÒÝöÉ,g*cþJ¼¯ŠüÊJ¯¤¸‚¸‚ôH¬ß•'C.I¯CÒ46ì8wMè(3„¬³„òÁ‚î9ƈ7ljx2ÄÁ¯CÚ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:dMÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qa¬„7Lj/C„ü:$I<èãÁN#ÜBôA¯CôA¯CôaëaoôòO8Õ(û„S2_¬ñA:O,ñAîÄî„ør„7…/Gü’A¯CüA¯Cü’aëáoôžrO8õŒ2O8õŒ2_¬ñÅ:O,ñåîÆîÄø2„?Åø2„/Uü8„/ü8„/¾úáË9O<·Œó„sË8_¬óÅxO(óå\®Æ®Æø2„?ÇèCø2ÄB¸ü(„+aɺVö_[$Â,!Ä2Cäb!Ä##uAøA+A°kÁ#á(,%ÄBM2Cäb!Ä–#Å„#õAŒ/ÔH¸ĤkA¨kÁ#ñ„BO(O(²„äJ®”.„Æèô(„.¤Cº¸ò„(K(K(K(A.„ð!vS^«’@‚*Ñ*T$†‡$GHFB(DÈ„#±BJÁHh¤`„$P$ApDjH‘HDHDB†jL<A†FEs¤hÊD@PI……!aˆˆA ЏR(#D*c„`!!ÂÑ)DbL„‚Mà4!Hð‰B`„a&N4ÈDˆIÑ„ò„0!IDBôŒ!$W‚‚A„UH$…(ØñéˆÂ‡T°B#Q,p²AQ$dAPh'D$„*ÔBŃF¡E%q"{ƒ(!‚iÁ2›„2DB´ARH…-Já¡HrX%1ˆE#±‚!OÑ,X¡B[!EAmBÁ¦È‰"2/VN2†KA”+H4CqL,aJ!Dpd*Á$QFA$á(4(A0Ò‘t²qD"A24$I(Qh@D c1ƒt˜1‰ô‚H"ACbIj$ÌBAƒ‘$O"4B!‡$¡7ÜX-AÏÔ–BQ†%LÊ”'"-7„G"_ÁEØ[LTALÆAIÁA-A&q6‘"!?!!R"Ky2(Q%FI6Ñ\IxJqqáDôˆ-Ag8 O²xrhÄABDØx"ÄŒ''Éj$‹%¢Bo„J#J$'HÀB\DA"Dp!*ÂRƒ‡††àH1TŽ$@Nˆ0ÈA`‚M%H"#Xˆ$ƒA@„ \$0)@Œ!Ä@!ô""B(A Š+“Ôb-(iYD”@h!(UHgH4IŠ$@DCDPH-BÃR%p#%)!db!@BÔ#l%"EH/Ä%ThD!„)ÂD¤QE˜„(4K%Ea¨@íB’e8DŠÒ!RX$‹,h!,Ö$#MÒ‡È@hQ9¹2d…òH’‘AÍJ–$0åi%ªD…åB!(‹a«¨OòĪKˆ¸Š±ƒû‚oNhN¡fjBBìXh1HÈŽˆŽâk‰'TÈŸòœ?o4±B\‰ûûÆ1ÏŒõ'ÆŸ¬²2ú5ozúãB!ú¾kÔ¿Áô!$ôÄB/E}ÃÔ³üÔíØ#Ü­ø˜½’õNÿèþiŠ>‚K‘m埮ø±‹_“Ñ^õS-)7“×8?ÙӃ⦵¬6Ž£è¬ÄdÃæ9LóR?öÕw^óZ?4õ#\¯÷úüá_‰ûïš¾¦okúÔºoüùûÇ?kþ¥îï•òiEBô1eOúôÞ—{o5èùÉÑ¿¨ýú¯Ï·úºÿäëCø¶"O'ùf“÷þîÿâü^)ŸVôAD_]ôÔC/]õŠÿŒwó’¿óKþyúüKß#ùo<ž¦G#o+ùæõŸéâñò#ŒÖÍÒÑz5üµ#ïaÖJýN(O,Ü*ôŠh¯¤Æÿ“Ä5ïöóIRŸ‘ô[/4ñBR¿óô[¥KiÏåó¦–/!ò–¡Ï³óîÞcô³×¿”òdL_Bô!d_òô•VñIZ1ôÓ‘áîý;M¿ýòÜjï‹ó¤6/iú6#oyóÆtŸéö›Ÿ–rLÜEôA†ƒOqýN•½Ò?5ø™­‘-X¿ýú±‡Ï£´öÓf{²ö4ƒÏ÷N7¿ñâÁó,IßVÒÙò/Ÿ²ø=d­t§®/¤üˆH©|JÔòö&¶p2ÄA¯CÒ46Ì{ׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÚ<>6ŒŽs׌Ž2CøÁ:CøÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wÍè(3„¬3„¬î9ƈ?Ljx2„ü:¤I¼ˆ><>=Å/Qö8E/ô8E/öaoöqO8—}íÝûá.GaOCÛVô­"—Ÿ“ݾy_õi%ßö­£ß—ûo¨o.ò<øí˜§ˆ/,ü˜ý¿ÂugHórßþ÷Kvç±/µÕ²±Oõ?/OŸþUô,y¶ö¢oëñB{§ösB½ªo×tIÝôª/¿ôÚÛý—¿èsŸóZ[½“ÿ¬¾ÿÜKßiùKº²g)OéùFÛÿùòwÎÿøúRIŸ’òahŸ“òÔÏïÓÿOÕÿÎó˯‘ýKÙÿÌó¼G¹ö¸Úÿ„{´ö”¦oëÝš÷ûjÏýúmÿÑöml×ÖßçòµÏïÃÿnÜïÆñÜB¯‰ýªxïÄûœuóÒòó&m^÷5¿±õB?âu÷­OÉò<6ojù6&O[úS/¶ó3"¿1ñ+mÏÄuIû#c¯•ýʯ¨ù‹¯¹ýÊ“/âóOÿ}ô܆oé*s’æü^Ÿ¯¨ñ¿æåñ/I„Ò‰ôÉJ—~Oùÿ.Ým¶ÿ½ôØÓ­Ù­–ÿÿvÕóøª¿Eù¢2giO{òÙ¯ºûÙ/ÏÕ÷gm•ýe-ßÞöågßéý.ôïêûÞJ¡½ŠýJïíþ¶¨ð2ô:tMA«Q¶ÁaÉä8wMè(ôÁ:CôÁ"î9:Æ‹„7Ç‹„/CÄÁ¯CÒ¼ÄáëÁ–LŽsׄŽ2A¬3D¬!òáž#waŒxs¬†'Cü:$MÁ£Ááë!–,ŽsׄŽ2A¬“$¬òáž+!ƈ7Lj'CȯC’Ä£>>l4FýzA‡S¯t8õaÏò^aûŒs‹¸O8·ˆûÅ„ó…„õ¡„ô¡„ø3„?ú1…/ü8…/ü8…/þ¡oô˜3O8õˆ2O:µˆóÅŒó…Œõ¡„jñAè?CøSˆ?Süá¯SüÁ¯SüáïþÁ¯9÷„S(ó¤S(óå¬óÅ®ánqaènñAˆ/GøSˆ/G¼ü:Ä+Á¯C¼¶¾ö¬Ÿˆ‚Ñ‚S….¨"†A‰bè8ŽÀ8Q.˜38„蔈hˆ/8Žà81AŽä(3E®ä(9Sˆ3õAˆ/”ˆ/„úA¨+Á#á(ŽRBŽJâ(3D.–BR3¾‰&‘f!A*(Eb,QHAALŒD"9=AXd$Š@ˆR0,D7–B£sˆQ¡(G$,a(L ,ˆóE¢HQ€3P"ÐHDø|ûð¤JÑ !çH &„a¢%$ADA…N"$@"”A©C&ŽA!É"t%zÈâ4$D’”"Š‘¢^$'JAQAˆ#@„å14ÀLÒ1DIA1Lñ$I%qdAB+1RCÑ‚I-„QJ7$1"0!—!H%qñˆ8%eˆ$Ð$BaÈ7H('Q" $Ãâ<"A'‚Lq9“ÂH3.A•„T$2A$#1,´&RÁPHjSÂЂdBËÅA8!&bIÀHE11ÀN&5A„IòŽC´ˆ!‘ŠŒq$"•„Ca¬u$QJÄÂ(Dldƒ4˜!B#Ö‘:.]FÑRt"¸QÔ4á$ñ$D-BWçM(>$œ”$ô"D6rdÕRô°T'K!†Á’IRB‚9±D7BbYÄ=(D?!´Q(ñˆGƒßAb4Oè#x$FQ¦Œq“XD&LbN/At"8ÈBºTóµ$ÀB#D€‘F@A$…„H±$A$¨@eaJEb8 b„H`(°dbA"ŒBQÊ…DB,Ë"%RL„R$ðD0I!@!À#H$(E†ŒÂ(!“ô–PH„„L9B€B¤d‰X""I„H)!”!A(‚(1$A`bð!w€á3tÂCð()T"G8E¢*ió&%1vÕR‰BK‚%r„ñ>ÄQ5Ø!Bc*‡E`q!1O!Ò%AXAG†M%XBSSÈEK!%1••2m1™Ã"8d\Ó„ñA3DFAÔA,rvùHÏQÔôA“a©¶²…B"È3†hìqäWIU³AØèÑò…¥Á‰¨ðA‚+$†Ñ‚ÁQ/˜gbZUB""ˆ!¤N¬”ȧ¨‚Ð$aĤ”A1AnW”ðAAB!…ÄA14½AÔXÖTDAÜÒÄDÊáDhFfŒ¡ƒ(§­$‡(Š“4A$Gañ†eCW2%ó£˜'C(q(”‚&õ"…‚”•HYQ­AFè(óÈL‘€:ª5!Ha!Á$²11¢!h6h"ЄAô";‘-QY…‘T¯!‘…"X$MGAVCzQ(DäBH‚¦$+B%haÃÖ.T)mŠR&B-%ª–&=Ìx:â‚x*>"$!5‚öhúAÑ‚utvgõ1½Y^3wW÷S?“vQûB‡'oCòTNŸ±ô1Cò/ÉMD_Vò7ÑÕƒõeßFñ+4X$ókïù:hìä(õü‚k3W÷¼[O™ýö1¯aÃÍÔôea¯½û2M7ôO8ÿo¯s^³Ž³ßfü=‚¿‡òƒ]ëk†+#?ÔñY{‚ÿúÛ-Ý•ý$)Ÿùû‡áôä’o§ø:*¡üÈ:¯çø¶ëÓÖÃv$ú<ßñSA¡ñ5ŸVñK?•÷1:áAñ5ß7õ1“ñ_Q/QÖ”r3ýMWÑ÷}O³ñ15ÿñ[Q?±ñ4Û{ÅoÉwèº4‘¥/{òùjWÿüm)?ôÍ×…?·þ‘_vö‚·5?‰Ñsò;Ã5ü/?®ñ¢}‚oyö«?¾ñ.‹ÿ1ý,Ÿ”2)ß8Ùëúb¯ªñ..ϤøØÊ/¨ù‚®ç¦/YEó^6ïDõ/_µq[ó[qÿñöE7Ÿ7ñk?‡Ó"ó4fñ{1¿¤÷Òý%Ÿ„ÖÕö1M_wó['ÿÕõmO5q[ñZy¿±öQ?Ï.ñ®’‡ú’&Oióõ“Uûù~Ÿñÿ·ÝòMlŸÔö!^ß8ÿ§Ÿ÷øÛ+<ù›ƒ¿±úÛm/øóï“ß¿ùw.Ž6o*ñµÒÿsö‰??xû-Ï“ÖÝÒÙò/ÿºûÞ¼¯åüšzï¬ñZ˜¯­öú¯ü6O4ïDón]/¡õX¿ñZYmnÏ·õ8R:ó2>>_ó[rñ÷|—ŸVÖÝÖ¥whþ}5ïUó{W±õY¿ñ[U?ñ÷ùÏ.ý4¼ohã*ñ´³ùùïw?ùÿ}—–ßVÂlÜòå;ß\ý;çý—[­›¿ø“?ù÷ëWï:õ'¢oiû²o:ùf¢ÿmû›?½'3÷m-,Ÿøò«ÿâúZ®¯‡üžR/,øÚНMü}Ÿ¿'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj/CÄÁ¯CÖ<>ì8wMè(ôÁ:A¬î9Rƈ7Lj'CȯC’Ä£>|8W-̯ô:D¯ô:D¯–nïÖ*öŒs"O8×(òÅ:¤òÄ:æîÆî†ørŒ7‡/Æü:A¯BüA¯Büaéþaï(÷ŒsÏ(ó„sÏ(òÅ_¬òÄWîîÆîÆø2Œ?Çø2Œ¯Qþ8„¯ü8„¯¾ú^áË9Ï<·Œó„sË8_¬óÅxO¨ó宯®Æø2„?ÇèCü2ÄC¼ü8Ä+aËáoÖ?DòH(,á„Â"G„&f…&rB(rBxaØ4()´(’F‰’Æ«!ŽR‰ÂB„Bâ„Ò$rDhbFèbxRèBxRøaŒ-A¤)ÔHšF‰º¼ò„‹$O(QˆO(Ⴒ„S„®„®”èBhÆèô(„B:‰º¸ò„(KJ²„¡$K8CäB)ä’8KŒ¼‘ ‰dR$PB$2„G#Ü(BøB(D/QH¸D™B3.BAA$Ab!Ø…K„'E‘*Ú!ЄÎC(2…#åHq!(t(ä„Bô(D!&¤„ xIñâ÷ð!É$R(„Qb@ i‚|1ÂK"„” 2ìÄAC2¬Dá'bD!@D4G3‚ D„ñ‹D0J6B‚ˆ–„•4@4Nƒ(CiÆŒO‚C‚:D€èˆ5(ˆ#Ôa4Àda@4B.pT!VseFq$ä4HA1Àis%$’T¡Bp!]"‡L1œ2‘"%„x"%Hœ!)X„Ô„xˆ,HBˆÒRøu,Dl!ƒÑ(¤áAA2cÁ(¥B„Y$ÂIaLØB"”Rá2¤"D&º…A†Ò…UŽ:`RJ!h4ÃÔ(AÒ”È"G(ˆ*Ù„Á"THh¢G„H%¨„Ïc:“%j$_4Q„7%V˜ïD9B—%Jr42A#5:sÇ/VÔFuˆ’t!&4C+=à!ñDEu”ƒCBÒEz"Q$ð!AAT„8$WB²DQ7$FT]„/H„¥¤‚âú"MD„¦fˆ$†b„$FèˆòN¢„,#QAAÀA"HÄP„!&"EáD“&d(È…(HˆR†!,"’XƒDA¨-$A @œ4û,ƒÒ$XðE(0ABd@YÀ(AF(R"IR„ 58A)!F‘”éD2$+!"e x":Io"A¢DTƒÀ(D$ˆEð“î$ÉèKÂV2æ!Ò…tSlB%Ô‚"Á(/qØHD[%%¸rY!ŽZAñˆ|D´‚ÒA16-(+¬(YÒ$Òè:“AN3~>;cå!ì/±2óAQAý¤ToWú–4YœDná/-×GùÜOvùö+2?å¤ór¯Âñ+è/„úÊh­èϬøÊНŒÜîöìC#ÓâUòtF=Q75/ñRD]u7õ2R/CÓDò4OSó4oe÷t_Awu¡fd_Xÿõµ/áWóÔÖ9ýR/5ñRV}go7á&µ²Û"ã#ñ2/;ûRsißwwsõdeYöA1{ì_ó^­ïÇõ›ËŸ•qZù[\ÿqöõË¢ô¨¬o"r†â"úˆ‰¯¦ö+O‚ôi)Ÿ”ô)MŸºôa£$¯ŽøjB¯¨|H8J+L¯"þÄp2äô2$O46aAŽsSä(ôÁ2A,n1Fˆ7Gˆ'C.Á/CÒ<>ä87EŽ2A,ôÁðá–#qa„øs„ˆ/CÈÁ¯CÚ<>ì8vMè(2„¬2„¬"î8"Æ*øcŒˆ/B¨Â¯BšÄ©ˆξ3ÒQô2A.E/äRôqMaoÆaO8‡ò„s(_,±AòÅöáöá†?G8sVüA.Å/äRüaMáoÆcO8Ç¢O8‡òÅ2¤_,³aøáöá†?C¸sô#Å/ô*Å/ô*Å/Öþa­ãO8Ö(ú„c"W¬¤rÅòAŠævAhn„øb„?„òbÄ)ô*Ä)ô*Ä)–îkJCH±Á$(SdB$2A"4a„ÂA(„ÂÁ+!ŽS(ŽA&Š2E&4A"3$2CÆA"¤"„Ò¼â8B³AB²AÂ"Sdbd"3$2C„-A‰Ò-AÂ!ŽBÀBB$B,2D&&ÔÁ4¢(€’A`&"À2AC4FH)”AiØDBÌaP"MD8@a!&dD XX!"`¢L2"OFB$$â†l$ŒDa(Fò” ˆ€D”!B`#DA”AD!1B0ÂDF“B&’APaD,“@1"&T*@ˆd@B¸"Da"\$…„'’I‚É„X(@Ñ#8¬-!D9Ñc‘@bE"R!BDAd$$ˆBBE‘$%¨AN!d"DF\b!D-‡"A„C…a@4a†ˆBÈ$„D¢Á…¡’H¿oB1„pB1Bf”!‘@"ÂE$4HLRA!"2B(À&’4DðÄDÀDˆ"¡„)™ ƒTB"†IØÂ4".HLBHt¢H„"D‰D;/0pA‚²ÑvâQ+,Q$.BS$ãÔBDMF(0+/1B!#äDÃ!D-4)²„ÖAR!DBÔADdR#ÙRQ"c|HÃc!ɘ&%„ÔA~‚Ê#"ÌFXÁ&x¤H ‰L˜hÉÔAH!HABHDÀ$@DA"À„D@€HŠ@Ä€Ð$ˆ#ðSó‹iB%MBÀTP%ÀBI™#E$4$Št,’B@´Ab(T"r‚B‘”#$Â3E”R…tB"òBPA(ŽD(D›$'H%ÄA¦†ØLhÁ@"aP‚Ïó O2”T1SHYä9Â&O!RB-%DT!A`$,BÂRAN&vT#’€A$±E’B"QDH*’†”Ô¤H1VX8 2dƒRˆF"rDQ„FB’†-HlÄH¬ˆæ‚<5Èì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èá¬=œ-Ä/QæCôA>D/–do”dO:•$O:•$_.±EòäWDîDîDø2„7E.Ä/QäBüA.Ä/–äo”dO8•$O8•$_,±EòÄWFîFîFør„7GnįQô(įô(Ä/–ìo¶Œö„cË(O8¶ŒòÅ*_ŒòÄ*WÎæ~alîÆø"Œ?ÆèÂøjÄB¸Jü(„«äÉúNá2F"Ô$!”$CdBRDBDBDD„D”DÄ#ñ„BABABI2D&$D$D$tAÄADHL’D(I¼ò„R(Id„An(K(CdBB.„B.„FøaŒô(„HBšD‰šÄ©r„²H2„(CÈ(K(EhJ„®·ÂKI,”…€x4³DXL,!ÒDA$CQBAIDE%D@F%"CGpD]"MB„ÐB”T‚…D¤$‡D‰ÍA0L*8L'B8D„B%\1ýk ”ÀAH‚ÂR"*–! DH$(H`4)RH!$€Á„$ 8"HBhÀ"C €$B!|<û,E$(Ä(E‚AdHAcE€ÕC9DÂ"%¤%D1D(2A"A2Yd™A•IrÂ,LbB!˜*Y A" R”ŒÈ$„@&sR "%A‚”Á dB(A)¢!kA`+$!ä!B„Ñ!(A$#“EÄ"AL’‚JJ2aMAcT‚ 'Á†‘¤@Æ"I#.„`DøB„JÀB‡"x<ÿP$KD-k†0$GA)TpA!ñ!AðA)ò!ðA$Ã$3uÆ$-$Ä!L"#VT&q4±$ü„á1)‘1þˆ$m,D&ùZ„¹L‚bˆC–„Ä…ÂJ„&‚ò‰1(@€dF!€D@RA$%¤„!dH&bÀBÐ$$0D‚À!"!" "@€(T$b‚@b„ŽåSAA<’DÐA‚DD‚B„’1AD4(I YÀ$L)!´$RDJ‚CÒ!$`,“$ ”„! $ò$„¤CÔß]B¢ŽABSAl>$M2EÑcDED1d4!is"ÔR!ÐCBf"E‚cA2„'À!À`%U-‚Dá4cD$D²ˆYCRÒM)F(„ÈN¢!.E“aAbC`A(B(CiÂ! vDdB1%dH!!F‘&,è%C(H–$"F$$a’ƒ‚„dˆN$@q‚ŒdB H$0$7ÒB…A-’AL‘"ÃD5A'%†(E‘&p„BÄdS2A–HaA¥A‚aF´FET‚p(I1(e%NBHˆÆŽ-ËCAL$‘%¡(!Qai‚ba$B2DFAÄ’†aA,!T&DV’„L€²BPE „ebÁƒlˆ„%‚ÂF()ĈOTBHè"H$ƈD‚&ôLU$@P$A"D(!DB@A€ÂDE@CB‘$`BB„d‚$L`R„ B¤$Bð$®£BiLPPbD(I4B4$S¢!)HÅJHô’"LRB$A"CbHB‚D„P"00L‚%D‚’Feˆ‚G‚Aƒ.@'(£2$oÆFB„¬A!ä8D„#H‚@‚!2D DÐB;Á(ADA H$ˆB!&Q!PB=Œ b„ˆ¡D‚(H¤0A@¨‚#DÂ$`İHÀÞó4!X=\Ñ#d10“AI"‘T+!S‘P@ÁE*„*$¡HK)q„⢆%A áS‘*áÁá¤1F1Ô§$c ‚$!%SB†sbAa2@B!…ÿ# BÊBMJHâA!ÒA’,‘E2E!$B!N†7"'D#/éAÒ"0ÀaÀG1Ì“D"Bˆ¤D*È!H¨ÀAirHBJaÐ9J5TB$ˆÐ$AƒQ"%cÑ"!QbeBfrÂÔ3xò!ˆ%r'1‚ÖrCe5!bH&S#P#ˆ Ô#˜H=‚‰„(AK$„A„1Ag„!àBh"HßJLA$b,"$'A°¨A:„„”D(Še(I!¡°ªAD‚DHHAA!()A°BRˆƒXˆLH8AHPHA!C`„A‚Œb"FèÚ!A!€µ‚(BB"*¸B(€”¢( ¡( $".„ˆHF‚Š"$$DjؘHHDH¨Ÿ€R!)A!¢"@1((@!8„$B*(€((( !B ¬ "$""!‚‘€ÔÇ(Ð" 4œ<<Ôµ!ñÁ!_!R4H(ABárAQEQ'XRTÈ„„„ˆƒ´’k)A+%CqbI'A*(‚™‘,D‘˜‰ÁxN‘¸Oc¬ƒ|Ĭ"ôD"G„ô†,FtaÔ¨„% ÂBa©’(µDã$eR"$?4q²AèfqÆRžG%â1ÑBñ"r1+1°„Ò2ñb{)w1!a3+#Ô"ámøcÕB‘C-’'-+áEò!,‘$9Ñ3ò!'1K4DQ:-§x"¥HÔXĆÐ(ØNS—•’)M!ý!‹,)b¤%jˆ#FòÂ:³JD52Á*”H;,â!Á"O!’)1b¤„€a&;>†<¬Ai±\$Á"+<ò„+$I!fD@t"äAñÄ2ˆV’N”B‹Ai–bŠ"È"#È!afQBâ`4!FÔAÜjÈÄ(ˆ,ôb8SO6qg÷2=Â?5óu•_3ñ³á/Q=–k/#óSWoõ'SÓcòED_º“óƒWyüt7ñžÒ^2/Gñ¦ÿ×o!ñ&o+ûQ×?1õ&Bo+÷%†K¢?yó‘?¹ýeÏGå‹ñË‹^z÷õ´o®Þj˜LCò¦¢NÆ­J2ôç!¿˜ÒÑ„ôe¡¿XòƒOŽÈG&G6‡jˆì$rdô¬‘a=g?*ù%3{5÷qssóÇS}v?'ñ¢’o!ñ7;W3ñUS/QÖr2ñEמg!÷#’{s×ñQR/!ù’6G/O=õw?'ù2‚)ñ5?7ý7’o+õ–“?AÂ$"M“?Yóv/“¸·óœX^S¿‘ýÛ¿ŸõßJ¯äöbˆ*8„-$¯¦ü&‹wºÿ|ÜSÖÑz!ùMÃŽoìö"ŠïjrÎòJB-НxrëòêÌ4?UòAW1öW75?5÷w/uûw“_;ñw¶ž6o#ñewóSv?q÷'×òEeå?sýw³]óÓW?9ÿV“#ýÒr/)ÿR¶wù¦oëaû6–.ñ÷³N¶/a÷%—Â$Lú7†3ûÓ7¿ýõœ¨ËÕ?½ôÚs¿ýþ÷ïæü¬JßÊʤob|æò梟ôÞóö!ÏÿòIlíòüg£¯lòÊF¯ˆüF‚§,¯.öŠî/Ô=Š'tã6õQ/5ñR?5õf?wùgÓo+Ûfó2G"óWv-w?awsñedev7ø÷'?}óóÓo!|ÓòÂ/mýæ/7ùtÂ*ó–´.’o#ø¤7Mëaÿ’77_BÒDÂ'+’{óÞ%»ÏJù˜[¿™õÛË¿Ôÿ{Êφ¼îò„¤.‚o"ø®&ÏLÞêþƒng†ßVÖÝÖáök‹ÿnòÎ&¯®Ü¦|ÊzÊòÊÊ-î/þ'Cô24MA+¶ÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'CNÁ¯CòDÁ£ÁáãÁaÁŽcׄŽ"A¬ôÁJðáÎ!Æ„øcLˆ'BȯB’Ä¡èá¼7’-D/SäBôA.D/–do¶„ö„sK(O8—$_,³EòÄ2WFîFîFør„?GèFü2Å.Ä/ìBüáIþáKhO8·„ò„sK(_,³ÅòÄ2WN®F®Fø2„?GèBü:ÅBüÁBøáÉúáË(O8¶Œò„cË(_¬òÅ(O¬rålîÆæþaŒ/ÆøcŒn̯Bü(Ä©ü(Ä©žìéþYû$ÊÒ$¡$I2D&$äB(äB(taÄA&„äB’D¨I¼ò„R(KHJ2„J²„2D¦$äJ(äB(ôa„äBˆäBšD¨I¸ò„(Cè„2„N(K(A¦®„àBh„ÆÈABˆô(¤I”¨Iœ*O(”(KH„2„N(K(G„¦d„ê8h|"4B0B!K$Y)Ä„‚KˆD€TDH‚Ä#D-$Ò ÆdF¢‚C”” ÁÄdÈ@.„0$N$ƒ9B lØ*dqjHÈ„„‰†,G‚ ’h8H‚H›H€ÊHžZàHX!b!@"rL2„A"%$Q$"@¡"%D ‘H(AA€4$‰4$FФA.!CD„‚$(D"(‰„Èô#5cÅ@%$Ô$)QAAT0)A1@2$@Ô!ÑAG@´"D@J1(¢EHd„4p,B$DH2L!¤€ã†TRH!!ÂAIaˆ,Â4"5„bH2$H+Ð3BDÀ%(¦$$(L#,<‚)¨!£IB¢(DN(DTŒD@hÂ'B X8J’D51K%I%ÒQt"q¡$LBòD$ME¤5QD=$%¢H!925r4”"-!DgAÒAA”2#H%º(ÑBQ,(†DBh¤•dB¡HdBD„-$á„!(¯ÆM!I"@ˆ"!€‚@ŽB&T@€’D&ŠADŠ‚Á‚@&&DHDÀ(@ÌB 8B(Fر=K ’F '„2`BÐ’–#DdA‚ˆ4(KDˆÀDPb(!HCIbB<"b!„J3$A@Hˆ7b“TB(%#B˜ˆ!D†XDâBh$ƒÒ„„_V ,’&<Â\„t2ÒBq£Ž&k4%&öd2%tFb(OBâR¡‚%$šG1âHt4%HN(C‡-Ÿ$x1G"B‰DR/HdbSB fb$!*‚ÒhÒâ,„L'9‘B$AŠB4A"A'A&&ETAJbB)<$$Øà"”!MB@&ÂA$C—„GD" Ä” Ô‚†B$E‚pB¶(ˆRAD¤PAÈ'bˆLb104%!sA!–Ih2I¸"BfRDp$±òD)ˆ•‚T"#ц6"$Sä!Å!AR"JR¤!›U(;"t¬RB"!A±À"AÁ(ÅÁh†²B@ ©Òt8Âh<$Ad(#ÁA",Q$,€hÀA 2AI$A"A„~"A$!62Bq"pA‚8,Ä$ˆ¢D!*ˆTB)HDhI2A'BBÀbP$Â!u (ˆ@EBÐA„BD†1€A!D È‚A$A!ŽH$°!Œ!@$à28gˆP!1A BQ€´ÒDt2!¢ITB‚CI¨1¦‚dBH¢@Ã%(UÁ!L(„h¨‹Á+0DŒH)"(d($D!N!°h-$D&h$°bx"ñÉ,€)À!"!"dA°È,¢(,‚‚A""$-DH ŠBD¢(L˜"$ITˆF!„ÈÈÌ8˜*DFÄD-À "*à*¢H ÉC,±¤†"!!ch"D "E)#‚ÁX+Œe,H‚†‡hÇH‡"A"ÀDð"H@ÈD%ô:µ Dä!‚!•²A ‚A‚RFDMLJDÄ$GEDD0A$QK„aA°F1KiBTBTAQÆ5CdAAˆŒI$TBE˜„m(&X„,2DEæ„5”àHHÃÀÐ2(G¤!$AFD)A*Xa„$P‚ÔBQB„-ˆˆr0T„Gh$A($SB!A ‚©‚HôÏz&$†xT4AEo¤A¡X(!ôQ6 à+!RA#BäY˜#D!C1èÄ,TEAl*w‚EÁ„!W„MÂA‘!Šdh‡¤(…R®›£! !Ä""¨@D‚" ‚„@„ŠŠ¡$B ‚ˆ‘H‰˜()R‰BB†ñD(Fa‚„PˆjˆH¨_ ($ BD jB$$@‚ÂA$(‚‚`A ˆˆ"@„(€ l,C*(€€†(„‚„À[ÃBÁEOd1%(-"g(,¤+!0GR'A6’‡C”aÑTå”LÜÁ58dŽAE¢–¤1Erb:&(‚ÙÁUGƒ 4-/ÄÛD{Br„v„†øD$CDr!vŒBTFb‰xB4DA*<(HˆLÂ$ÏÒK¡4ð&¹Añ[_FaAORõ‚DMqçSv¤qD#XDOqæ,Cä)¡:¡,ñÅ––„!:ÆKâ„%Ñ!Á!À#Î(à¬È!D¨„føAHFX"%ÉŒ‚ŒÔ؆Xè(,òÄ$„úb¤…ä,"„¥BIÁAŽ%LÒ!ÑdÂ"dpCDva4!n†„XB\ˆ)M"(Ž!Fô„2KDSTEGBUUT_CxчXKMˆ­A„¸tRxýA(Ä$Gd†áørAU”R†9i„B*)Ú‚BˆòøÉ$õdgw>ÁZsö÷6;ëqí)ñ"o#òTU?!õ1Towã!Óe”AOVú‘2Xõ“ÑOfñq+í5ósoKñ£á]Ç"+»OtüS_Rõ§e?xr„WU_Rú‘7oYñ‡ÍO÷ñhL§Š¿ì±ó~LoËñïíÏTÜ,t$´¦úEÆÝCßÂôï-¿èòEL†úˆ"kHoÈ|izh9¢/˜ì$rbt¢<½9ö!OróF+u7ovñÖD}tWGokxÖrósVcq6÷FTAÖEr6õDÖoYÖW÷5‡O[s×ñBQ!èXsõõÆE}d_&é#ù‘oQóu×_sø´E˜']!WR]“{9÷=’ß‹òŽH¯”õIÒŸÍ÷ìTçÝ}n_æèbx„ÔRòhÏŸòx¬ýÏÉím]¨Ç‚¤ü‚d-dÏ¢ø¨(§Œ¯„Ô¨øˆ,GN{Ž4^!OTõvo5áá÷touût—kñw´oIó6Ogñv7_u÷v?cýv%TÖEþ1Õ_wûÓ7o]õ“õO5ùÓ?÷—óOuûeƒwj;¿,û4’onñ÷±_uÛuö'…SÒEÒUú5…_sû×/ÿÝõެÏ$üÛ[¿™÷ÞúÏáÿmËßþô¯¬M¦Ob|çÿç­ßôÞõö/ÍÿÖòLlŒ¾(üd¦oì²ÊôŠÈϤxÊúÊhï(¾D;ï-!N5&ôQ7^E1÷w—Ogý´¶Oaó4osñ67odÖg×wwuõdd]d]v_wùõ5]ò÷×1üÑ7/]ýç_wøeÆK:/)û2–Osù´5mÛwþ…%B_RÂ$]7bøµ5¿]óþÎï$è˜ôÛQ¯ÍüZòÏ÷ü)ËïŽò†¦obø$†ßšòÏîýç_Èviýel‰Æjn†î$ë,/®Üª|ÈxÊøÊÌmç“ 'Cô24MA+¶ÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'CNÁ¯CòDÁ£ÁáãÁaÁŽcׄŽ"A¬ôÁJðáÎ!Æ„øcLˆ'BȯB’Ä¡èá¼7’Å/äRôA.E/ÖöaŽcO8ç(ò„s(_,³AòÅ2öáöá†?G¸søcÅ/ü"Å/ü"Å/Þþá/8ö„sŽ"O8ç(òÅ2,òÅ2.®æj±aø2„;‡/Bü2Á¯BüÁ¯Bøáéúá¯(ò„c(ò„c(òÅ*¬òÄ"®ævahn†øb„?†øbÄ+¯BœÂ¯BœâéÞþT($$(SdB¤‚3¤‚34a$ÂA*ÂA¨-Á+!ŽS(ŽBJb(Jâ(2D¦&ä*8B*8B†-A*˜B*šB¨)¸â(b(Jb(Jâ(djà*¢‚#ôaˆ-A‹‚)¤¢)„šÂ)â(„â(¤$†¢$Ž"CdjB®Ô³Ç„‚´0A0ÁTF‘b$*ÁA,ÂAA\<M¢,‚qÁ"4R‚1g-”"8"C1Bá%„ll,h$`!IM#‚8&ˆ7‚pBØRøD"À‚ðÉ"Æ,ñ.ˆQ0!€A#I( `%CIÀFA„„ ‘@A8A€DQF„H@è’%™‚@bH$H#AL$%DJAD"Àd($$ÄPB 2$PB(A@H†r!?Ž!$!D#4"$@Â"dB$Aˆ&„c’1P$0$BBaA4!(gBF˜!„MBdÀ"D‚„DP!&1(Ba$B% ,bÄl<è!P"D0P"ðTÀ$K(FB’@Rtb!AA1GU&AÄ!š†hEL¤6ÔÑBÔ:%ã1±v‘2‘‚SGAòš2”?QÑBÑñ)Ñ-ˆ9Á¹Z%h…!G$„E."ŽhœX'DL4(…´(š¢á?RG‚µB2F2BF"gDT†B²"V&,$HAâ!æ(Bb",1ADhGˆ'AD+-”*nEŽ1,ŠÑ„ÃQÁ¼Áy+ØÈHDš‚È*@R%Aâ¬"(d&@ÎÇSUQ)$BÄBm#G(O8ã)¡4“4O!‚±qAd!fFäF±!ø\Ü©O©Á)+¡h€ã$“$JóAÂbRd"ðD!-"‰ÐäBâ(¢$K(ŒR$`ìÄfxA,vaDÑB˜‚\ˆŒ„ò(!Ð#õdgv&×#ôB#GVg";ëÄKo"ñ2"?tôB[Boò&hÄDOêió“T;ØO&qfõ‚ÈN3~k{ûÖRO"±²ëUýR_õ¶a?sW_ú‘'?Yñ“É_7ñ}A/Ëñ™™;÷Óo‹ñ£©Bò¦êäܬô$Bk.¯èâÈ„ôe¡Ÿ8òƒM/È|drlqŠôˆÈN"ÇFïŠ1<=f"ñ$#cä$T%|rb³Æõw'+‹O!ñ7/'õ3o3ñTR/A–!7O$ý“t?A÷1“O³Ô±Rõ’ž5o±Öôe'¸48”oqòqÂ_2ù´Aoxù%\bM“?XÓS÷!›_ZóY?óƒŸØó©÷ˆm'Ÿ¢ø$‚SØBòhÂ.ˆGŠëÌ-dÜr!ùMÇ?ÈÖ‚æ¢ø¤$ã¼BÖ¦èH2ê/hKóR§|Õ'vGsBóCc=d/tút“O+ñw¶ž4o#ñtowóQw?a÷'×oòEdä_Cüt³/}òÒU)ÿU“/ñÓq;é^·Owù¶{¿/aû4’O/ñö±uëq÷1•ÒQÒQú5”_3ûÓ7¿Ýõ›¹Ï5ý“¿™ó›¿qû-‹×ºÿŽÊ¦ObxæòäÎno¼nòIlíÒüe£ïlòÊL¯ˆþDŠ£üÊh¿ØîD3Ï\òF7nB=C''4/$Ôsöc—O'½·û6/c±6ñ43oe÷vawsñdedw6øô5o]³óýÓÞ/ñÒÖ=ç7ùtÒ_Kó–¶>–O3ù¦5olû÷ž4w_BÒUÒqã#ùµ5ïMóúÓ5ù™«¯™ù¿Ÿóø,ƒÿÊò†¦/"ø$‚K*ïlÞèîÈf†ÏVÖÝÖñömŠßNòÊ$¯.ܦ|È2ʯ,ÜâþDˆp2ÄA/CÒ46ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáŒ;¨=E/SäRôA.E/ÖöaO8ö„sO(ò„sIòÅ2[$_,seôáFnña„?Gøs„?Vü2Å/RüÁ/Rüámáoþ†cO8÷„"O8÷„"_,óÅ"_,såæjqaäjña„/Cøs„/Bü:ůBüÁ¯Bøáéúáï(ò„cÏ(ò„cÏ(òÅ*_¬òÄ*Wîæ~alîÆøbŒ?Æøb̯Bü*Ä©ü*Ä©žîéþ•4,M$I2E&4A.„3äB8CFdBäBÒ„Ú¼ò„S(O8´Ar„²Aò„"Sdjäj8C.„3ôa„-A.„-A.¤mA¨i¸ò„(G(N(G(N(O(djàjâBxBøaŒ-AB˜BBšF‰šÆ©ò„B‰ò„B„r„â„ò„"G„¦f„*=¥TÆ1@ABm1A&"èbW$$[$D‚”$Lø!H#0A)Bq¤G"AGdC”!D‚t$¸FBR(ÐH‘"†x&.‚ðD"Á,ÔÁF”hÀ(T!FÂ(„Bˆ«$$Ÿaž„RB“$DÁ‚€1B1ViAdD8A1B$N!Q@&%TAVrT0s"T8ü"† $0„)d¢ÄYBH PFÀˆ$„&Ñs1TAU4AÐDA@$AA(A`!((`A"@dp!„AD%a0(0(@Ø$Bª$€Ä$ðIú$$Pd@2D@D"APÀD$$BA,Ä#dIBrA"E$A- !Ä@D‚Ä@R$ Ô„"%„H„1á$1eca!ad%t!@@!MH$M4AIÒDBÂ$/!Â"("P# ¡„D†DÔ!R,„" BXáŒÂ*(HH(ðD$D@ AAP€0`PD@ÔaAAÀ‡Daa„AA,DEØ¡2ö)BT(A u!%„¨‘!DD(2DàB"D˜!Câ(Ô"!¢`BP$“$…„D)B„"…$$R& OèI@$‚BV$@ÄtE‚-D%a(!02‚$ÑAVQYBd$pI$H9AH@B´&”LBIBUˆG¨DÊA@Àõ“^#D!@@BD&EPA!ÂR$ADad(A'"@@DB$@$QƒAA…DA…$!_ñ$G1*Â4D$$„,AQ€bÈ@&$!!A+A!T2„ð‚AIè!‡B`R$(%„ÈD)„ /DbˆB#H@"ä"=6%!@BÄ",aà!""$G!A)L"“!!A&ÑBAL"AP$L!L¤DD(`DbDÔ(H„MHYT(d`$€-íD$F$(@D$@AAD”DDa!D„Dd‚P@DA$ M“ Q@bCDCT""04)A$‚Q&DDd€Q#"„b!E‚!,'BdE SBPd.„)A@FéÂD˜HÑDpD/$Eôù®@)BBA$A@A8L’"&!r$HDA‰(D0A1$0d!ÐH€\5E` RB$,Á 1!l!CDD#" A¢ T$&A&BdBð q"ä91"%!'B!"D`BD)D¦B†’H¤ÏDDCAQR$ATC‘AÆ1‘E—!T$ AB0DL!I’JAS$&Q$¥BBPA¡(!…y"DHNNƒP€ !@DQ!EE)!RE(Ä"A%H\¬ŒF’FIR‘…Db”‘•a¤P!%HbB!@ô!€AC@&4$qE4e„1%SABAÐÈ!C2p1!À0#•$1Ab¡`B&@T„\¤BP$EQ!DD(…HèB5Æ!(IAA(A ()A$€`€((J""B@H‰ò¦ì€ ""@$!((€À!`B"%@€!L "@ÈBI(BFÀ¥3v!ÔAÂ$EEQdM4d<Ñ!á2A"UTe4$C3-!!EÑ$Q4"!R=.FG#%È(*$¡Å”$‡4ç„d#rhUˆÖÄ5TB­B'‚…ÒŠŒR(ßÈC‚CB$#"e#!áB((T$M"(bc@…aCD"!/TR,‚Bø"C„-$ä‡B¥r(ÄBƒRA+bP3ˆ“a+$pF"D%ôh=“IU17!aÐe’K!ÒD²rdQAS"ñ9¡)Q#2!“4BÑBDCfR%Ä>Tô/ÁA(H,fDpa“d&ĦlBH‰òçk}.3SCÑrr!s!q%Qw=%!]Qós?3ñµ¶_)ýQ2Ï¡ñ.#RŽÍ.§‚cÆ%–d"còDG­mr*ùLK=f-f‡¢ÏªúÄŠNhÅØèrlúÔz4qÒÑ3R45ÑÒfÒdr%w%÷w4m6Ocñ4oCÓuó7Rù7%!]%WR_rÒsÒWø“'_1ñ+1?1âqó5_3ñw46GbW2RÒsÒqò!…ÒUÒQò1_3óW5uý“³=õ¯!ÓêÒêr.z.úo*-&GBW–ÿöòJf-f?òüo)ßÔÖÙö/E6òB.¯äüŽê笇„„ÖªvJ8æ!=1'5S15Ò"r$w%·&ó2Ocñ4oBó6qó4wBÒUÒer!÷%%m$oZù#ñ?qó1O#±6Ófr"r$²&ÒgÂ&$cò%$LÒAó4_sòC'?ýד/!ñ§¡­$§âç"obÒf2"Cò-+äÖbÖbvoùeleo7&fòN&/.üŠÊ£tHøHN­g_‹'Cô2$MA#ÁacÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n1Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ î!ƈ7ƈ'BȯB’Ä¡èáx£ÜBø2A'B/t"ôaiòa-"O8Ç"O8Ç"_,óA"O(saæjqaäj±aø2„3÷"„/ô"„/ô"„/–¦oÖ&ò„sM"O8×$òÅ2_$ò„2Wf®F®Fø2„7G/Bü2EBüABøaÉúaÉò„cÉò„cÉòÅ*_„òÄ"WÆævalnÆøb„7ÆnÄ/Bô(Ä)ô(Ä)–ìma?M‚Â(,db`"!"!Ö$¢"a(i¸â(B‚B‚Ò$db`b!&raÔdB!.$a(i¸ò„(E¢$E¢$K(A&&&$taÌA‡BH.$I„’Ä)ò„B(I¤$AJ²„2D&$äB7j8‚I!1‚Qa"!"G!()#LÁ$!DLZ1€"b!O"&ÁE”"(cBË$€Da"E"bDÅbTh€BXR„IB T9ß[CBB!0!Â#!"AA%YHB)@&)1!‘!A$G‚Q0B%ER$a…ÁŒ7šH"€A€A€1!a%!€!(€@ 0" " ÒB`‚@”(HT¯_ @ABAEBA!@€@21A4OBÒ$AA,Q!D$$B"DPALA  CDRH@DA„`J‰!G‚"Ò"A!LAD!$AÑa‚E"D„$!IÂ$(AA„!€A(B4"0$%db…m"P„$Œò„$„†B†ò—]((@$E2!$!,!@‚€ D!"@„@„|2Œ¢ˆ$E&.ˆ'B! À!IBAФ(A 0%@$”%DÃrE&&2IAHÀA!H‰H…A'¤"A$°ò-$pQ!Aq!TDT0AE’P!E1)B”"LAh#rÁ(!@*$„%$A%CTB“0$…,ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èá¬;BD/dB/dB/–$o†ò”s(O9‡òÅ2$O(3a¾æj±aø2„;.„/åBøQ.„/–¤o‡ò„s(O8‡òÅ2$O(3a®æj±aø2„3çBü2ABüABøaÉúa‰ò„c‰ò„c‰òÅ*„òÄ"†ævahn†øb„7†nÄ+BBœBBœbÉžfœŠ‚‚dB "0a$*(ˆ+!Ž(€(ŠdB "0a$*(È+!Ž( $ $ŠdB "B†4(H*‚„‚œ"ŽB(HJJ‚2D&$ô!²¡"PCD(!IA$`I!$)ˆADÑBDaA p(BЄDB,bBd‚0‚A%$àîŠY!P$ QAD*!E"QBâH!(AqI€„'L$@S(B(D!AB!D!0d($AP!PA@D$a…”*‚H€ˆv»€0! $@€¡$!H@‚@R€$AŒ5“&"€‚€ AA(@„$A,ø…3HˆA@'AH €@`†@À¯óàBˆD&$ t‚¤D€!(€„”D(`„(òõU@<1R,5R.FD1R.2#áb»#²äF’DFò„R(G)N!KÈBŠ,dJBˆ +àB‚¤‚ˆ¨A.$A.$Cˆˈ!ŠHaJàbäJäBˆJ¤"EèBr„ˆ‚²„‚'„&ijM\MDÀH,H,&Ô!aBBAàB"*`HH‚‚&$hBhB AhB A   "hÂ&@$D"„pëQCBB8 „#0(A€‚$  „!"„„ˆ,R$@‚A$ˆ!„€A(A€d„€b„ÀçcA#aB00€D‘$(AFJ"ˆ€ˆ(A€„‰Hêʈ…BØ(DƒR„‰R¤…2ˆ„@€!Œ!„¯ãEAÄD",D,&"H&…€ ŽCŽCDB!B&„ )aˆ(X„&4&&DbB ¥(X(`(‚„&Ą󲀄’$CÀBB€&¤'ÀA(IR$‚S4A@B˜‚%@‘"M!C`(D.„©˜B€ˆòá)„ `J'A0ÀA€H" ˆ.†DH€@Á!A€¸ „ø"„!„ŒŒD(Aà(T( È;³E1M.AEÅao,ôA!Ô!ˆx1G€8MA€š$€’D0Á‚,SBˆ7Bˆ=ˆ„­5œ̨å¬R„$($›(Ѥ„‡ˆ§BŒx*Dˆ!A¥È¨mˆŸÃBÑ!$AÄNˆN’7G+'C‚"#/C¶’dAHhAöÄ2C4Á ( Œn„èRHbB"ˆ.åI’$E"2(O(RŒÉ†rˆx+Ĉ7B„.„&”ˆ¯RÚŠÂ(A(A(O¬tĈ4ˆ‚À½sÙBÄDDè#!¤HÄ2SI2EÐ!qa’)xAaBèLBÁAP4,D‚A(x!:xAq"äBX(a‡ (A@DH,hBˆ‚4**˜"A¡‰ò§f4MSs5E,ÁS;%_FèbázÿÁ/dB.6ôA.EfÓ$Ó4ÅAFú–2O8å8ýaF‚ŽÁ$WF¦äzÞÜ"dB®¤_ÌA.EJ¶„r„Añ!¤o(ò”Ž‹·Â—Âéñˆ‹½(צþ¨¯m%aF®¦}%q(ý¨/ϨR¤…ø(¬ï¨rŒúˆÂ§ÆnL‡*ŽŠ©r,ìZ5¡\ô„„oañE/!óe<ÅaWF/Kø(_Vt2ô24õaIr$ôAÁ/9×ö$–®$SüAAI¨(WN<Äa_Fèb8‚(_VìBèJô’$GC‘/9ó!ÏÂøª>ß©qÙˆøŠ*Wj—¸)ßÂø"„'¨(ßÒø*Œ§ú¨˜*Éz,܈øŠ*ÍhÏBø¢&O(tH؈ø‚*ÇêÏF ?eñEW|7S?%ñAsMs{¥Gø²f»–r6ôsfóWaoö$Å?GòEaMáoSüs¤{-_<å¾E8Áö„á[¤Fx¢öá¤m¢OBxáôá¤_Úö$…?CÒÒú6…?Cû‡*׸¹ú˜·¨Ÿ¸òŒ«ý¨ÿÂxªþé®iú&„7êŸêÚÚžò,Œ¯ÂҌҌú.Œ¯ÂúÎ*O¬ôˆ¢o„|Šúˆ*߸ڞ=h=_dñEWoôS$ñAS/öw„?Wü²¶M2gC'C/cóEsoösWFVÖÖöe„?OòÅ2_^ÌÁ<ÁÌá_FøcÅ/j²†ú$„.„®$_Úþ„!WBRÒÒó5”?kò"_zù‘7)—(8Øšú/Œ¿Òøª.O(ú&„/Bøª.ߨÚú†*ÇÂÂ’$M(OBø¢.O¬òäί„x‚rˆúˆ‚­¨?ø'Cô2$MA#ÁagAVDŽsWDŽ2EôÁ2EôÁðá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BŒü*$MÈ¡èá2‡=E/ô2E/ô2E/öaoö–sO8÷„2O8×$óÅ2_$óÅ2_fñáFnña„?Gøs„?Wü2Å.Å/ìRüáMáoþ„cO8÷„"O8·„òÅ2[,_,såô¡Fjña„?Cøs„?Rø2ůRøÁ¯Røáí¡oþŽ#O8öŒ"O8öŒ"_¬òÅ*_(rånjƦöaŒ/BøcŒ/Bü*įBœÊ¯B˜âéšæ/ÙJ3Á,±AÒ$3E.äb9S.„3uaôA&ôA.$o„úÁ+!O8…ò„S$O(±A²„2E¦4A®„3äB8CFÈA.„äBÚ„Ú¸ò„(G8r„’!O(ej®†1.„1ÆØô(„%áBZ¨i˜"G((G(N(G(N(O(djð¡ÓÃDH†±’0„‚(A@1"D"@Â!&d!SH*DA(HQ‚@D(A"D„pˆˆ@Mˆ[ Ž„D'B€LˆA#D$$p¡bHH$DB&˜‘¤A©€A0!@ )˜ˆ„ˆEÑ12æPBÆ$@D‚&A(aBE(@DKH!@B‚Hd((A€„IHH„A(@ „$@EJF˜ˆPH›†ˆ `b$D#($0D@aP€T!€BG8@ADBBH$DbB@…V€$@”$@D‚ÓH%$ M!LBÂ"!"@ T$,#B!A!€!–@DRDB @HÂD„)’$EH„$ $E¤BEÂBM$¿¥†„!†d$AB"A!@ˆˆ!(QDAD!Dˆ€XH‰HD@B„HDPHXˆÀOã›LÂH0@EaHAÀ$-àA`(€Á$ƒ8"`(À$%/€$0B!2$c@@@„BA$0ÀPA€¬1܉4E$d@H´$BD%ƒ!‘B,‘$ÀAEBa"`!$P% ÁMDD#QAðHpR($„À(PD BD%ñiÅB$D@A @$AŒA(DAaÀB³Œ(!@B€RD$’$E‚QAD†E’BT€•ABÑ$d…ÀE"aERHDÅ@ˆUñ¯!H@Ad"€AÐB# @D¬D@€DÈD@$¤œ7èˆ!"BD`B†AE(!%#`D$DÔ*QaLTEB!ADA)$DTBhHÿ“RXR+BARK2¢’_!)â!¤&HjâHÅ"DJ¢ÈBЬ„"BI+«Dº‚¤‚ˆ¨ "°$"Œ(›ˆš¢€ªJ¤Š(ˆ€H¢"°$6‚(€²ˆH²ˆh$"Ü6]!„ÀD$€„D@!‚!B&HT*DA£Bp‚‚%Hc!ŠIaB‚2DŠ!"I–a„Œá’´XqHa¬ŒdœŽBFØ(tHô¨J‹B…4(„0"@×ÏF$B!NÂB‚BR$(LÁ$!D!=$#µF…‘„AIiQ,C£-!@¡!ñðAÀ™‘ˆ„ˆ‚­!Š ‰B8L„AB($ЂK4""E$QD)RD$M%DEABCGDpDI€ˆA$OAô$01D9)¨#‚² EI„’DA`D†1D„„„ŒØ8XŸ4IÒAè,Q4ÀE¡M…"E&BTA‘Dµ¦AD‚@$Ê6Af$‘D"HAA‚D‚¤H@dŠ%$BjB”&BAˆA†‚¬"…èÚ7- AÀA((‚,#dD ‚(€„‚€ (¤*ˆH€–"$ („ ‚ˆHB€r³€¡„`H D¢ H(€ (#¢‚!‚($(FŽB`$`$HB ‚€È€(À"ŠDÀȃÂAU4#ˆÔAfa†Ä$L”DODC$ˆ&‘rdˆÀD¨%&ŠÊDB6Ä„'BHMˆ@¨D'•è‡ÍCN*ÅC´„2HEh&„—DB7‚…ÌŒ%ÜŠDØ¢Z„ÁÐ$AòD$JA¤väAhC‚GB2Dö$fALÄdeÄdLsAtÃ(\EÊøw„kiõ&”Có•OSÎ3,SAÂ#Š÷ZÞ:™žJAÞ‹‚ȇBŒ¤‚føH/„JøH(EB˜(EÈ"Ž"„ÂŒtˆhˆ„Ž/c‚6-‚!A;H-D)%CñB#-m…fdA|(AfB.Ã,B‚Ä#AHK[,A$WAB+Ž‚*è‘J&ùHå’HøB!ÍAà(BBrAÒ„òAFHÈ.ˆ@È„H‰$‚˜",òL$MRgEN„=-Ò?5rbçRáJÿÇOIt#ö$6uôFrôd4}7MT-DOFú“7OHõ‚×_Fqc&ú‚Ã$wFgJoKÿÕO!ñ%oKúEÅOQô&GK÷†2G8%ñ!¤O(ò†ÎÉŸ¦õ{H¯ÉõÜÉŸ¥÷L/KõâíÏ”\8B/JúEË´ôhG?NöÎ*Ï”TšŸÒú"g¯ˆlænL'¨ÏˆØ¢r&îÚ8š\TU!ñD;D4?aóg_LÕtvgô´‚oEÑògDg{O4õdM!WR_4ü—tMcoBù¤"süACièhråöÅUa÷t†>„OIñ6_wý2”¾D9ø!Ir$Ô1ù’1/Q÷vÒóÁ?”õBÒŒóí¿œôBk_æèbhˆ)ömÏnÄÎôËÉ­aÉr-Õ9øŠ(ýhÏâø¨,ï(tJÚªøŠ*çÊ?ÙDñS_tÕuwVòS/$—uouúwƒOKñg¶OIr6ôtVóTfqö$ÄWòEe]åOCüw§_MòÇWOXþG‚üÃcoþE¦_7ù´Oû¶O#ùõoûUµo1÷4•?CÒÒú4•#û×|¿™õÚûߥýÛX¿™÷ÞûߥÿmÎêôë¬M¢Obxãþëìÿ´úLkïÖüklÝ(Ý©ÏÒø(¯ï¬²ÎôЍï¤|ˆøŠ"ψÚ~;h=–OdñDW?!ôR$ñBUOaöw‡Gü´¶is464os³E÷gAgV_FÆdMdn‡OòÁ6^ÌÃ3|ÁòÃÃ\þg’nÇ{:oiû4’>–k;_}ûóos5ô!%M!M3_cùµr»9¿ŸýZÛŸ-µ›ñÛÙ¯µÿ}Οòøê$o(ú&†.ÆÊòÇëͫϜöeLŸÖÒ”Ò­ò-ŽŸÊòÎ(ïîüJ‚§¨§¨¯ˆØ¨º×'Sô2%MA#ÁacÁaEã87EŽ2A,S%,Aòá–#qa”7Gx2Ôü2$mÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ îraŒxcŒx"„ü*$IŠÎrƒÛBüA/CôA/CôaKa¦yO8§8o8‡óÇ24O,óaîî†/Gøs‚~Å/ìRüÁ.Å/1ÞþãŽcO8ç(ò„sŽ"_,óÁ"_,sáô£Fjña„?Cøs„?Rø2Á¯RøÁ¯Røáí¡oþŽ#O8öŒ"O8öŒ"_¬òÅ*_(rå~¡va|¡öaŒ/BøcŒ/Bü"įBœÂ¯B˜âÉÚþtA$B,¡$8CäB1B*)¥‚Ræ$¢A*¢A¨¼â(…¢X$бA¢(SdJ¤Š3¤‚3´aؤ‚-A*ÚÄ¢m+!O8r„“!†’!O(ej®†1.„1ÆØô(„%áBZ¨m)r„’!G(Jr„¢$K(A¦âš2ƒÈ–A²(¸‘&PB%!4I8ÀB„2ˆL‘‚yBD""X…ÂÅR!(!!0A;BBDÔ!(Ɔ&$!‰TS_å ÀR!€!ªa!B(1†B$@äˆÁ„CL„@ˆ„H °!@2AN!D…¤(Lrˆ$$î¤6Y)XBB`H(ŠbBH&¤C"¤($I¨H€(ÔBB@„(b$‚!M$B …†€HèÂD`B@JDd(DDŒ‚L˜„ÎHJÄ!í€(ˆ!D!€HäDÄ!D!I$"A!‚Á"I”,B"!R‚r"À(H(ŒHàÂ+†B¤D(A#âH!&”„CBdGF‚xE„’€v"CQ!CAJD$M$"À„H‚‚‰Ê!DHA †Âh„€è‚D ‹„ ‹$"_8€* €  ‚Á‚€H@0Š"!r! D€Á‚B „(`„ D@ f„ AÜ6—$"Á$X MA@ d("À$!!à€%†"1$ÈL"4ð”Bƒ4$('HA„†‚("À$!@ñƒÃð‚F!’A@A„12*Y˜ i6à$b(HD‚rˆ@ F &BHD(€ŒaÀABYH„Á"A!N"@PA!@2†$ ƒ4(€S‘‚Fˆr$AfB€’Bßr!€(D(€@’DC`¡)P(a"E(€(„A€)ÓB‘"D@D$H$@A€˜dt$”DpBÄD!BBŒA"MD¤LDHDD8BP‚/º0$ˆCS0(E$°‘8A@$D´"8*@"(DBˆ%D`0&A!„$Q$„ Œ) i’%@AaR€8A.BEA’"À$‚ …@„`"M”"dÑBpD!E¤BÅôƒH„ƒD_$"EET(BAÁ(¤QD%DR„@ð%BL%…%¥B 2.” KAO‚$´‚…¤$I¤˜’c#ÔAh/H "Dˆ€ *¡"!8€"D¨ˆ$²ˆ°‚ªj„*H˜¢„*B$$ˆŒ¢ˆ,4ŠF2(ü=ý\\DÂA%!HIÀ¢D HàH$ ÈRKH,†2$Cc(C†¡!)4(+AŒÑB£!¼L$t„"f&(&¨D&,TB ‰ðz”$K&0"B6BlhA1<(„‚2A`!LäA-!(„($,ôDX¥BH‰d•ˆB‰„D„H/D¢DBNAC”DNbB@G„N( „7÷2,pÂ"a,:‚,8‡‚)¨ qAD4A$-„ÒBá"¸Áa(A‚‘D D`DNTA¤"ˆˆDÂ($€B’$@H‚„!„ˆô¢-@¢AE‚A)&"DFT"-D.B!$H‚ð„B!ŠÆ$!`(ÐB11!DL!ÃQFÂAÈE1AXA–!tIè4‡y¥|!!@1H"¡ AÂÀ"Š+Hl=¾ ! ‚„‚¢€ˆ#$$ *¨È‚ ¤(BB€*ˆ@D(( HD*ˆˆ!)Èbý—J!!D¢:HhHÆ!Ð,0ÑÂ$" ˆ*(‚ˆ ˆ"€$‚‚ BL´((ˆA€‚ƒ‰BäHH"H1âRâ3b"æ!R4)’G)ô‚’O(øA²;Œ+ˆ3¸‚QA.„hG!-/qÁ#lä!ñá)sã1Ò$d!‚F²ÑsT"a%AÈ„2”/FÉT-!+?ʨ)s’(¤$G(Š@NhD.Dˆ.„-H‰XH)‚$”èJÒœO$!ä$1…,³BÁ†N’rˆ#HäC6hA¤aE¡hKE/äSôaOöaO÷„sK8O8—4_,³EóÅ2_FñáFnña„?Gøs„Wü2Å.Å/ìRüáMáoþ„cO8÷„"O8÷„"_,óÅ"_,såö¡Fjña„/Cøs„/Bø:ůBøÁ¯Bøáéúáï(ò„cÏ(ò„cÏ(òÅ*_¬ò„*Wî¦~alêÆø"Œ?Æø"̯Bü*Ä©ü*„©ž¬éþ‹„$Ü$±A’4SäB1A.”åB8QFA&ääBòA¨O¼ò„S(OµA²„±A²„2E¦4A®„3äB8CFØäBØäBÚ„Ú¸ò„r„Â(G(Œò„"A¦®†!.„%øaŒ-ABò(¤a‰š†©r„’(G(„r„â„ò„"EhJ%ø¡:óB2„˜B`H"‚&†H,‚zb$&$DTAˆDCäAñ’$W(,Á!FfTRAFFQ)xd„Rð£D@T$ÖH¢P„St¢¸DDØ‚$‚Äà(%ÄH Â’A&†&‚ø$baI†ÄÀ‡ÐSè"q…"A$!t"dADB”ÄØB!$‘JrÂDd@RB*"MA‘0†‰VBŒL !„Ey5Qp!²D‚8B-!N$H¢0„(à$DQ#˜FD%ä(dH@„hH á(HQ0„ÂA‹(Å!ˆ*•Ld"ˆAˆK‚EA„ƒ-D†‚HˆH,´x J!!¤%(@Ã$B"3¢‚€4PA(@@$2†Q $8!Œ H"[(C <(ˆ(Ða8+@C"/Cq¢P$‚2‚B$4(D!BÂ$p„2DCLjA†Â$ l‰"„³„Ø!„AŒ"x,ADˆD/Œbäˆ@$ÖMO`BXh hAd"C@!„DDˆBB„C „‚FÄDˆ„HÌH„"A¢ ˆA€D€(XȬCL`€‚„ q‚"!ˆM$1P€„" Ba)"R Å$@±Hb(@ƒ@M¤$@H1+pÀAH(`ŠE„1f1$C†Œ$´D("D2¤A°4І4BEò„A ŽBBHFDÄhD&ш‚GˆH (A¢ƒÄA"‰,$"€Œ"Äêà $Á!`($ÒB!M‚J2D"FB´ƒ„â!ä(„f‚(" äAȉ H()AÄ*H„¨B"‚€(ÄAÏí,!B(H!BH(‚"(S”€Q „BH€E‘AAhBCˆ(„€"D˜A2H"D@*ÂŃ•‘# $ 3Ħ ‚`@„”!ÀAÀ‚è$È, Â-"Â+H8'DDPBa„‚‘Er(! I‚…B Œ2aÀ‰´"d¨H„!Ì DD$`B@d! ÂÊ"A$!B…$0A†ˆH aB ÌD)<2²,H$T(-AE1„)IBQB!F"!²$„é!h(Šâ!D+A,(å#iAE4A`ADÙÈ 9‰’„(%È‚‚E´A¤($A*Dˆ…Bñ>ö IH!L‚(!‚  14bAJ˜‚ˆ!ˆ‚„A„p‚„ÃBD@"„RÔˆB4‚"H„*TˆˆL)ˆ,5#)/!D2-B!h*TL"‚Lˆ!B!HcÈBSa(RKÐ"GIRD‚E$ÑTØÄHƒãULÆ|L$v„Eô„DFýäL"OÄ´$Ô„ÔDvfhB!AB`"&ø•û$B"`ApBÂA$@"á"r!ä"r$´!bB/BbF/"cB!"I²C¸$²’$;'K2º$  C"ÃX6ò$XB„qÂrøA(€NáDJ‚¨b*”(I(‚„À­CÉ4$B$*RD"O!ñ!bCÁ$¶ä"²”ˆ¨‹Bb1À‚@IAB1"FH"(6H‘ˆÀˆÀ8>A¬Bˆb"("‰…„‹„HŒüHô«GÐRhJtbom!&²&r„ò‚„.‚{b,\UÒAEó„B3HvaCbhDHDÀÄMa*Ô*Â!å2”h“4p((,²$ª"!ƒÒBDÑU*èl„rLbBBÐ,ô„÷“ € , BFDAL¨„.D!ÈLLLD‚F¤$!J†(I¼C!!!ˆ!@‚€‰BDˆ (pÚ IK‘ †F$Á„ aHŠ„  ( "(Jˆˆ€DÀDDD$¨HPD@LˆHAˆC*" Bl†8‚Bbì:ŠÑd¶Ö!CäBò%6/BÖf±"ù-"olù¢’c¹‚;(EávZ%o!wÁcEò"Æ%ÒbHÒb¡XM¶î$2Š÷‚h]$JìDÂAÍ9^AM¯…È6ha¦X¤r¬b"_b Ì‚”(B‰ª†«b‹Fo„Xâ‹„-Š„òÒ.$/6Bb-2YØ"R2Fâáб$Ì!Ôô$t„ÁI4oAc(BdN8ALˆdB>„T†-å<Ô4–DK8ò$&÷„rN*Ϩ%俥d.NïþiL‚|$$æB膴(þbéFòBMÍD‹,ÏTtM¸LtŒ½„Ævdt„C¤GbšŠ„V$‚G(V$*êJ¨!ODâ{dçBbl*’jkB+â%„ èfB*ò4&"K„äC#ñq444hS¢DI±6L˜4ŒÈˆ­ÁDÀF"†FD$XÄE¡*BÉ"’'A:(]ȃÆH*ôY14oa÷goDÑ3Ñ"d$olò''okÿ'×oiö'¦o+ûç×oiþ¦æoOø§%OB¤bOFø³6o{õ¦çfqcr‚ò‚Ã7$w$ojò¶Ò_sý_C³”ûeåO÷&g_K÷òrOvöba]äOnöÖwþ©åssøÚZü[r¿‡ñö>oþü$ïçbBò¦¦_vþngÏVö¯b¯®öÌe¿ÔòMå¿ÌòîGïÎþNnÏÄôÊJœÜ¢òDlïª<¦-vosò76O5ñQcuñ!&ovòçDoSôw4oKû6$/[ú÷ôo[û—·}ÿdM¥QòEóOi÷woaû–&W,4Ö$èjòá&_~÷TOgû2¶OOáCñuÕ>–oK÷µ÷oSö$dCö!÷o{õ6uïæýþ|ߨõ[Y¯¤ýò|ßí÷ÿ/ïòi®iêî²&öiïïæþì.ÿÞþniO†ö,i_²þŽn},Ïæúînï¬ôJjï„üèNïÎäGós5ogõ3go%qCóCc}aofúw³okóW²okû¶¶ooû×3ÿ·w¾vWòae_Zþ6çowûó4÷¢ç$xÃòÃcozþg¦wû¦6kû$¶ocûç6_oûgµosåVÿwDVödåOWþwö?Ï÷¿w¯ÿÿ_Ò¿õ›{ï¿þ?öÿæþînÿîú&¦m¦îòÇêßöþfoïÖúoLßÖömÍÏÖþnï¯îöîFÎþNÂŒôŠbÏŽþ.S3Õ2ûu$/7÷R'%'$/v¶!öF·?'ÿ´¶/#ó”oiû´7?'ÿ´vo#ÿr%_Fö$dOB÷c¦/óñ4_Þ6<Ã7,?þ&ç&ûfç_+ó¦¦o#û6¶k;û4÷gX_GöEEOVävóuÖoöÿ^ÿßþÛ?-ô›¿_ÿNïÿçþOãÏú&†mâǪ¿üþnïÜô-,_Æölm_Æöoî?Žöîf/ªÞ.ø‚J¯Œôèî¯þ{fp2ÄA/CÒ46–„Žs[„Ž2A,õÁðá–3qa„xó„x²ÄÁ/KÒ<’>–ä87EŽ2A,ôÁðáÖ#ñaDˆ?G„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáœ:7LüA.D?äBôaIöAŠö…SŠò„S(_,±AòÄîänñA/GøSnÅ/ìRüÁ.Å/ÞþÁŽcO8å(ò„SŽ"_,±ÁòÅü£ô¡„?C¸Sø#…/ü*…/ü*…/ÞúÁ¯8ò„C(ò„C(rÅúÁ*W(¬j„j„ø"„?„ø"„)ü*„)ü(„-âÉÚ6üL¸ B(CdBBˆBˆBÄA€HˆÈ#á(Š4A‚¤(SdJ¤ˆ„8A„-Aˆ-Aˆ„Ø8Ž`‚ŠeJŠñAˆ”ˆˆˆb(‚ ŠdJà87lˆ(bˆB ,*„"$¤A(IKBlˆ,;¤8$3Ä‚(D9A±B’„!áB(N„‰4¥B „’!a€ˆÂ„EÒH4H(8AB$‚ƒDR‚µñ±ô'($(ˆqB(@$â(H€‚¸C @’$J $DL,’hI„€†d"(b„Dh‚ƒ´$$è“‚XDH)ˆH„R"PdLD#AD‚HÐFHD€GHðD L (ËA€AèD„b‚‰dH`B@……@ˆD„@ñã— FRA!JÈ"I$A*²EH$‚""‚ˆÄ1(JQ(°‚¤A€N$R"h‹X‹B@„"ˆŒ(€„’„ÀH$•‚È3…Ð%„ D#VD%BÄDL"ŽD@„2„@*A¡„c C!´TCÈd‚*…%B¸HA&¸La†ÀˆK((AÀ(Œƒ†XH(@B ôtî@T$#À" Aa˜"!L‚!0AHC„DÀ`B DH‚€"ÀD ’DÄHDA€d‚Aƒ„Œ:d!"!L€‚„z‚Ä!€4¤`(C2A H@Á$HpBÀAP$(,‘àdhD‚ɈÁ$(APƒ$Aˆ d(ÂDÀ$H@øõºÀÂH€„"†!HE2!xBD€-"1(ƒf$2D,H!Ò‚(BR (!¡„"A€J$b–`‚‚-D (¨ˆ$•Áv£Z2A(H! $@ "#ˆB†"ŒbAJBB¤A@-A@Š‚D&$bAb@‘ŒÂ€FÄ$B‚L "JH ŠðоH€ˆˆ!@$t"aD‚ "@1A¢LpŠZ0…HÀ$``HA ˆ„F‰`È!€ˆH8y$IR!@"a&„(àN!AHˆ)L h3KDD¤" õ„D(H€4!°DØ@ñ‚H4$D$Dô"@!TDÂJ”„MˆŠò–¹`B€CÀ!G!‚&"!Ä$!@4"1A`B#14@!R"$‹IH.0"„"*DŠÁ.ŽCIRT"€XRrD4¨("hAT!t!D†!t’rTA0L¨BED#™"V%8À%"†Â!„ŒT!ᡈ„-"(E2$"Xƒ0!„*„†„G„!B‰?A¢2FX@Ä!P#A( ‚’$J„‚‚†D‚Œ3"h‚*D"f„2D…B”dQŒ¡„B&ÄEFÄAC¢ (B(FÔrA¨FH(4".¼ÑD¤B$$H#´‚(I2!†àRX¡B-0„MRŠCˆ"aC+HDDâ!Á‡a„!%èä((†"B‚F"bF%D‚T$Û“pDÁ–‘6¥„1")ed2!-Q$%Q!S±B"Q$,!abJ LJ$‚hB€‘$!CÀ8BJt¼h8A• "LÔRH((€@hD\?5!)!£(,%Â%Â'#†$ä!#Q"Ô"éBH¢!,1(€"$"†hD#L¸R˜B‰’BÅB8LE]("Dh"`Ä„PH*„˜È"‡(A!FR$%Ñ"˜¡@¤AH(P$(Šu‚aD!˜"LABâÔ"ö!Œä‚bS8 r)Bˆ,"MÁ9‹(FH¨$#àº?‡H‚AF"ˆJ( HˆH2‚,!!€ˆ€(CBDˆÈ$@Ä"ˆ?­ B`d$"‚@$‚„#"8ÂB*ˆˆ $(J„‚‚€D ‚‰XHHEA‚(ì>]€ô"B/!ºÕ"Ñ#Ñ"S%,7–m2eòo$òB#ò"#Õ!ù2‚%öF,Ì-Fsb!)á(ò†"B”$g!/H´"¨D&¤Â"LaS˜¥„5”Ï„tˆòŒ)‹$‚$QA†(XAfÈ„`„‡")˜!Å’D,Ò$èD²D‘Að"„DN’ZA¡Â2"ÁA#”$Ž"(Q'<°!A"AâOéDáB¨‘&¤-á8ôD"XHIÔrb…Yq1Y°øYA‹FD#"«Â„dÍbƒˆ†”(CB#$Db„ngS7¶‘„6‘(sÈ"BEbIr%eDBBFÅ*ø2+ÁM±È_‚¡aY!5†/(²QÁH‘ÃJ”ˆ2*¬¥J¨Ñç(F‚É2„C˜$fxaDù"…H=ćb©ˆÚ(˜ˆ!ëK/s÷D3k?1Ñ"õA3OfÓ5ó–Â?s½–²ów÷b_!·Wñ®DhK„?{ñ¢VŽã_$³wñ’/üC2?Gó–2kÙR®q}"o(øcÇqMs)õâFnE-!Y<¢/ZäÝûrß#õúùYŸæ²ÖñÂÉÒÜ’-kˆVüH)m+{H§,æýC)]Á·æîìÚ$Ò6´ŠôÁˆ(ïböŒEãß#õ²_bóT%õ?cñR3-ô"W?%ò‚²o%ñ6?%Ôó3o7õ3ER!_4ý³F/rõ²oióÅ?4õ’/kñÕ2=õ1TZù²cib?4¾º–÷•Ó/WäF¬d_tì~äá„û†4ÿ,ÕõHدÎ÷ßzß½vlýIªIzÄêBÔ¹úF¨O,ö­‡'ÒfÌa݇Ê'¦/¤þ®fç(…òBÊ/j´ŠâLòwnW?1öV75/%õ3E/gûw·O)óW–¾6o#óV27ñsV/sõ5÷wVô!åoCÿW“?Oñów/9ÿW’?-ñÓS/;ýs¶_w»†ó·’.´OB¾Å²Õùs•>uOV¿WôaEnånå_$üµV¿ß÷Ú»_%ùÙZ¿™õÚËŸãÿMêïŒöÍŠ.¦Obº‡ö‡Â¿öxhïöžGŸÖôi­nî]ÃÏJô¨D¯ŒºDüŠBˆôénKsEõr4Ö'õR;/5õ3V/5»Wÿ´²ocñ6m"M7wåcõ#f+$OFö$D.T^³oó÷?üÓ;?-ñÓÅ/r¼SûVó_ió¶”Ú$ú¦6éSí{±òeeOVäV´Eþçd¿kõ™Ão‘½›ôÛRýzÝ¿ÇþOãOJò¦„)Ú&ú¬dßzüb/ÞòOhßBrd}aüNéÿJöªF¬úDȨ´Š´ÈøbÌFp2ÄA/CÒ46ä87EŽ2A,õÁn9Fˆ7Gx2äü2$O<Nácáä<7EŽ2A,ôÁRðá–#qa„xs”‚'Cü:$mÁ£Ñ>ì8vMè(ôÁ*A¬$îraŒxcœ‚'BȯB’Ä¡èáÌ:¢-D?SäBôA.D?–d¶„ö…sK(O8—$_,³EòÄ2WFîFîVør„?GèVü2Å.Å/ìRüáMáoþ„cO8÷„"o8·„òÅ2[,_,såô¡Fjña„?Cøs„?Rü:ůRüÁ¯Røáí¡oþŽ#O8öŒ"O8öŒ"_¬òÅ*_¬rå~á~a|áþaŒ/ÆøcŒn̯Bü(Ä©ü(Ä©žìéþåƒ4ÊÒ$¡$I2D&$äB(äB(taÄA&„äB’D¨I¼ò„R(KH$C¸A²„2E¦4A®„äb8AFØäBØäBÚ„Ú¸ò„(G?„2„„²„eJ1®„.†„æÈAbÈAbÚ”¨mÁ©ò„B™²„ôH(G(N(O(rDhjFø¡ZWR$J‚(L"äb„ÄbL!‚Q$(OB‘A"HD ‚%$aL1ÂBma‚AB˜)$âv DdHBixxa(†#ØH«$I¸B‚˜"Lb‚m&ˆE& ˆÂS¸T‚€ò«ð‚%$&2IABr4(@$È&d1³4t„(D(t"„QF„Ä‚L)B–†$""DIRˆyT(Aƒ¸!£Åù!!ƒL$*QD&A"p„B"D r„†@ˆ(CÃL!„àA‰D„!‚DL…ÁX@¨(œ2ˆE„bBð(DÐH$’(PL"DXNH@H„òêû°¢„$0!‚"!(ˆ!A À*AÀ"" "ð!D`D„b"A BÀ!AH*H‚D€X¡SeA#GdB("”$D`H8‚ ‘$ ’"DDD"AI(EÄ!(Bð$*TA@˜ H"ÄPÁ€RDbH& (D"H(D7B0B ²DøX© €0ª ‚8 "D$@„8 "€ DH‡Dh( ( „I$dÂH&t!ŒHñSLB(9ÂA@‚†¢AA0’ÑD'ˆ=Aˆ"B†&! HL`S 0H$(€Fa( " †„L"‚ðj$!CHAC„˜Da"(H*AÂD&!" Fa# dAIˆB#‚ƒ-\ATŽAÀM‘AˆŒ‚""Q.$ÁDXAL,BH€È¤“‹(BÀ$$"A)"(0 D(0!%+‚" bDD!€A00!‚("D@¬$G‚B„$*JHô*_@b$DÂD€ÁB@4a(`‚F`F„@ˆH!Dàd™@èHHˆ0!&‚A†,ˆÀ¦J"¤!Ia$R@Åd,ÙA€6M$€BI§!AFH1¤Ž$2E„!ÓD$¢!„ÔD 2G„ ˆDäI"D(„B´(TH"D „(p$H‚H8(¯x $C#(LC0@M!!0$ ‘€B¤’"$€bN$(D’B,@€D rHdB‚ (Aì>!L2DARALâ8aFL"r$TB,Ád(GI1"O„$‚GB$˜²aJ\áD¢B*&„2ÅCdBdƒ’„ˆB‰±$ÔDˆ‹$A‚À(ŒhB¨BC D ƒJOnF‚.D)D’!B$B`).TÍ1 hB"À$MA$À)Áš‚(`BA!€dD‚." ‚€¨$àò‹D„T"€&ØÄA)‘)!B¤*Š""ÂA&„DA¥B@a,%ŠAL!J$&$RBƒB¥€š4H(HD‚*`BD#bB$"8b0A¢(A‚D"b!2$P$CI’I2B&BR"PBJH DK!A)bA’DMXHX–XH‰-Ôˆ "¤„'DBJ’LBK$J"¬BX$`„FÈg³b,BAf$"Á$$Q$D2A¡„%4#"³a„‚´B"”%!$Š„dHR*ˆ8Œ‚Õ…E˜$Є"BB((B¤ÈÈ„‰ßê".2E²AA’$.&)â"‚’¢L’"LÒÆEB'"+Jª’*qC‘1¢ "vFT"H+AÂA€Š¥(F"1DCdcÂ"DH§BDH"HÉH‚‹LHHJ†„¤BŽ£# H€€)¤$B@ „€„ B1ˆˆ(Â@a„FFˆˆL€HˆÿɈ `D!"’€€„4 ( $ ˆˆ"d*ˆ"$(B@*(@!ˆˆ‰AA0‚†DŒ4¿%‘B|/!tòb°ã(õ‡,R&('$5r"D#ã$ú#„='+B/1vÑ$\4!ð„BH°‚²DrBr$òƒDLJ¤Bjü"ÄNDX\±´¡qæ!t„H<Œ$Jb”AÆÅ„bà†¸"h¤…R(L’(ˆH_}K.$%4!JÂ6/Dª$à$"Œ$D(KA HM!*% C(’N&ä.9A„*hC%B¥Á> ‚„…!˜$Oˆ"4¸žˆŒÄŒˆbDDˆ*)"„Œ¨H(KH+DÎL€äÚ7µ(&%â%AÁ!$m!.!I¡2m["JÒ!1C”F’!DF"âq*ÂÂ/A‚È“48QJ¡ŠÕAa&&t“$TQ0!zE/öaoô”qO8µ„ó„SIóÅ[4_,ñenqaôáDøs„?EøqÅ/QìSüÁ>Å/þáoþ”so8÷„2o8·„óÅ2[<_,óåjqaô¡Fø2„?Gø2„¯sü*„¿ü*„/ž®o1þŽ"o8öŒ2o8öŒ"¬òÅ*o¨råoêÖ¦þa/ÂøcŒ.Œ¯Bü(„©ü(„©ž¬íá/HN2AM”4SäB1AL9QL8QDADALòA¨O<O8O5AK$K8SäJ1A®”åB8QFøA.„/äBúA¨o¸ò„9²„Á(K-(K(A¦®„àBhÆÈABBÔ(š†©r„’*C؈r„Â(O(R„¦Dèê?Ùh(BJA'Hâ!8DM¢€”&*´ÔA‚OE!ÆA"]!B\ò"K)ÈSa#Iô#ÄD0%ŽSCrAâHr"h„(Í‚0'"iˆ’‚fØR’Š”LbD(†E›(‚B#Z×#PA$€4IAbA&b"DK!`"LäBA!$1!,Q!pÂ`!AM"-aDQв“$Bdt1‰©òˆ$aD$#F™.P””HG‰TP(H!ì5~ÌH¦!°ÁHAˆÐdD S$Ä@Œ¤QD AJ¢(C±‚"E$芲ER„`HGŠE43H‡A (A(Kƒ%Œr!d„Bƒ2TÄ(HŒ„á‚HÑ~¡ÄJ‚k±(D€ÀB(¤T!`!"D H(XBF H1$ŒA„ÐHX4P$"$p" DƒÂFÄ2N„°Bƒär8¤lAˆ‘A`"A(q4$’(p"THÀD€S(JQ"$г$‘"‚g!A0„K7DŒÁAEƒÊ!"…´‚€Á2E$3$iBh„LJt4m"Š„D¢9ðbÚPAE"†$Ç…!(A„„H(@D¡ À¨ bÂFD…„QŠÀá!Œ&4!À(A…Dƒ‡Hƒä‚;ÉŠÈL" ÈC@‚†f)@/‚LÒ2ŠKˆA@(‚" È$L€H3HÀ'B†6 ("†È$ Bð¯ "!ÀBN$TS6$$*âA$‘„AAFc„1!aB‡$R"2,ýE8|BA#D4‚ORV©t‚(rBD."!&ªB‹‚EBHí(D*ArŠè($Q-÷CÔ"P#Àl@1d *Ä"KA&#d$à‚q4„dB@„4h¤H€b"ƒ"¤’AAAg‚(‰"!oA  AH@1D‚4"D8€„‚%DÄAI2‚à)Á!¤ˆ)d`!!ˆlqB1$)$ˆè¢xB‘ˆHÑBˆ$)‚R!AÎ(DŽˆP(,bì?¡pBI‘D'*4DL"(ÁV$DMÔBô"MB„J!%IˆCèCa„Fi„X@É(B„‚‰”F1$N(@$ )C„Ä()2,"%ˆ’ßi $…rD$Eˆ#AEBÀ$`0@4A8ÀHTH„¢ÁI„B" ÁHTfAEa†‚$ÈØS)rDÜ‚¹AUI2$0$I$¸TTЄR%"E.±$Ô4„(‘ÑàAÍHG‚Œ!HSRœ1Ht(d„„!D(UH‚¡Bƒd”$"±$CR(Œô÷W¢AH(!HA(‚€…Œ!&BŠ”ˆD‚ŠäŒ!aDH€B(&h‚(B„‚D(…(ˆˆ=!ðYpH10ŽCA,"(¦$.ˆ-!.…(.ƒDˆ‡œ*Ã(KRš¢K)Kâ‚1Ž!á%%eX6!X(G…&CGN(&,dÂJñ"ŒCô"„Š‚)ÚäEb¥Á˜‡Á:h *áAd…¤a‘Gˆ(p"Œ AŒaÂHHD@$$˜H Bð!HKDBX„DN$!HˆH‹#J¶,!¦"ƒ&âb’CB(„¢$”3ÂiBBÈZ‹"&ù(8&8*"K"K*ò!„›…dˆD…bƒÁD!HEhH A¸1†¤*ŒæB”qLâD±(ªˆ‹*²D±(¦L¢L&Âh†¤MBˆD¡Q°I¤UBJ$´Hô•B)‘&1'"q$!;B‹„A"‰Cã‚4‚®(u$r$Ñ/!¬"&È!`IBR‰IE(‚¡c=X&¤1&$t$qHA”TLHÕDÑ%rˆDædaB$„Eø„´S €A( dD@HH‚‚BJðAL „脈 DD$B>¹BB@")Á„€!‚„M( aŒÊ „ˆ€*˜HˆC$($‚‚€˜ˆDˆHŠ ‚"سBR"lT".B-Rs‚Ò&á(¢"G(›5ɱ<áb§D;b?Kô±§QÁð8‘K!O1šƒ¡îC8qL|!Ôô!ˆí‚„©Á˜–”ØùHáâIáK²„´¡ò„HMOITÅCÒÄø4˜-„EÔL½ØHØDòÕ‘K5[2ÁŸA¡7”›6˜X¤#Â1A`C¨"‘õD(!d%xØxHxhH‰ ˆ&±,²(¬"HJÂAOˆöE(HJ¡HF¸!äFéB憦B B ¢N!´Æ¦JÏ¢BD¶h¦$.HFˆä$¢FÎíCßÒˆÕŠÓ˜Xˆ§‚ψ3(íIë"Y*2E¨$Ìrh܈"ž!‡æº‡‚nb,È<Ùh‡(ª±§zK!K2[!K6,Š5QŒäEÂ4^,1âDcQ‹‡j58*D²q,lBMLF$NH>(X(NQ-$©:B)xr”‚B£òZy$~O´ó]¬ñZ/¥ñmO¢ñ»ÚÒ¿œ³%!ãWôxÏ’÷\1ŸÑÓÙö)h_„ú™<¿x÷˜é[5×%ž™½Iq}ü´O‹ü1ÍÏ4=K‹Wü8IO¶µ¶øæÒöbiY¾èçÚåÞ»e³mñÈΙ4_F³ì÷öínïÇsßCó¦†vþhIOÖ²Õö¬dMk}i]áÿ9ö†loÜúD"O±ÊñˈFrhôêìƒÚ#÷;2ïãs_ò[z¿1ñ:>¿'óÿjÿcv{¨‹K3OSóyh߃ò=8_—÷9MRú8!϶ÿºo?Óç‚û¤6ÿ¬ñCQOèËóé8ßž÷9t‡«³K?>4Ÿ—ÿ4¸O‹÷½õ~-nìBßVïÝã•ç‡ÿôtÛ]Ÿå…ýøt›{ß_÷r}çÚ$éëÒ&ôkíOÄü¤TŸ_ÿtmOÆöteßvÿõloÆödîÏN·Þ´BöDÊîeÿNöå4o×ò{_¯“÷_§•¯µ÷m¿çû^»ß«ó}¼¾4K1O†óT9ŸÇ÷8]ßÂÿ)ŸÆö(ÍÿÓÿ›ŸOóù]¯›ÿ_’ñÙyÙÿy´ßÕû¬8ßÉëBûô[>[½ŸÖëÓåÖ¿wôimÖî×¾uÿýdŸÛõøé[Ñ›MŸ÷ØíGÿ]ö¯ë÷÷¼Ocû$¤_N²åþmíÏ×÷t½Gôi-ßÖìæúeǯnö®D¯ÏÿÚ¯,ôŠhïŒþ$sÒ-7¯wóz{ï1ô[‡¿·÷:w¿÷û~òï‹û44>4Oó<=Ï×÷8|ÂvxùemOÂö)~¿·ú÷<ßOóùóo1ýÛ—ŸŸÿ8ýŸ‡û|ñß‹ó´´:»4û¼4ß_û8ýž]߇òMEOÖâÖ÷}¸ßO÷ùTŸÿTÙŸµÙõùÙýŸ§ý]·¾4o+û6¤K¢ÏJöí¥OÖíß÷}lßFödm_Æölï›nïNöîþo¥½Ø´Êôêæoæþ®çp2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9ƈ7Lj'CNÁ¯CòDÁ£á>NaÁÎsׄŽ2A¬ôÁZðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'CȯC’Ä£>|#ÚQôERôARôaÍaoôŒaO8µŒò„SÉòÅ_„òÅWÄîÄîÔør„?ÅèVüÅRüÁRüáÍáoüŒaO8µŒò„SË(_¬ñÅ(_¬qÅü¡ÄêñAŒ?ÃøSŒÒøÅRøÁRøáÍ¡ïüŒ#Ï8õˆ"O8õˆ"_¬ñÁ(_¨qÁø¡„êñAˆ/ÃøS˜/¸ü*„«Á¯B¸ž®ëÁcI1ÁA”$SdBĄĄtAÌA…ÄADMAˆI<O(KH„CxA¸„2E¦4AބĄ„ÄÈA„ÔHØ”ˆM£ñ„G•8„¸„R…¦TŽ„5È„5øAˆ-A‰H‘ˆ‰Ø8Ž‘†Rˆ†Bè(R„¦FøÆ£N‹ABŽA(‡dÄ#ÁL&Äd„,bI(…D,e˜OÈ€šÒ„Á$D™GDø!HÄ–ˆHÁFa‚„ƒñ¤,AœA$…eBP…DsD˜#‰'ÀÈ?.Š\4B¸$qHÂd .4Ah(cˆ‘(DE”†¼‘H`A)œK!L‘AG“(LÕ¨„.HÀ$FABˆ‡B‰bA‰4$PA*ÁAJC\‚ˆ",ˆŸ„=ˆHŒ(a‡A"24(L!t! …@ä²X„"Kƒ$GA‚ÁÊt!$HÈD‘Ð(‘L@¨MJ K(‰¨$€"Á,ƒ‚2"Èaƒ(´rÁHÁ†A@’I‚ˆcÒS (‚)A8‘ÁD$ŠAD¡4Gˆ DBFD‘DBŠXˆªÜ4"A(†Gˆ(BDF‹.‚QIˆ*ÜC3ûFÁ„N!Iò‚Š$ÒD¢‚("EDTH”F4À¤#(Dâr„èCähÁŠIG ‡HDN‘BNŒU(‹M¨R‚òDBp‚$ØD&Iâ‚AdBH/eK„Š&ĘJ”ˆÿÚˆA€2 ƒB8"€0‰40ˆAÌ `‚H„AD„@(BÈ*Ž( „H„0(H”"ˆ(R9GÈLb„P°…„Ò(€$H!*!â„!²‚Á$€" ˆ"‚@ˆ(Á$‚ÀD"ƒ€‚($"À$$ß #±!Eƒ‘hd)ÄB(D"D*rbBDpâYÛˆ$Œˆ4Ø…Â$AG!¢..NG„MÈn!BFdC䂤"…i“V(B¨!CÈ"<Ö‹Ê!…r$XA°‚Äb¡«HˆXÌ1©ˆKB4HRA"˜N$IÈ$@‚ˆKB„(%‘¨BH …hB€ $(b„¦&Ö„"€TDŽHŒŒ”ˆÂHG"D(Ž&,É"Y 1h„#„(ôB¹€a4ÀIRG&S( ‚B&ADM!J™‚QR‰á”€A¹5l C¥Â‰‚DAdHB(…GŒ ‚Æ)b’Ä@¢,„2ˆ˜„!#C‚iˆBAFƒd‚´X„‚KB(8ÄDLdJIL1d(„D‰²! D(D`„C¨‚‡‰D%ĨA(„S†!Ã"(¤(CBTH!LÊDFèB‰‚(hA³ŸšBDðA#"D 2ÀBÀA ˆ(ŽAX@D(KC’BBÂD2‰„ˆ€´"8AHˆ‚tAÄ(Ž`‚Š!„.³‰ŒÔ($CÒL *A%´D(dHB.DBK!*¨„^AƒŒ‚hHÔDD¤„„è6ÔAÔ”„(@DJ™!AˆÂK)DDl„)éHáDFdÖ„‚ˆÁ2Eñ¬ö$IÔA+($"d‹"ÈL¡ÀA˜HTF¨a6H!%Xh`†€ÃA‹JÉBj2HL‚"(€Ž„áB"t8¨œƒ¤„àR8"ðH BPŒÍHŒÄh€Â$LòH8(*Š‚¦!L@!c*¬Š.˜ª¨‚*©‚[š‚L0$ŒGšx„èˆz”èˆ,øˆ‚,-‡H)B„øH45aÈ+'‚D…d‡d+C‹‚`"ˆXˆIôbu$IQ!O„X$FDr™dˆDšx”ŽDAB É„„âLŒÁAA*8DE„$(A´$D”HAAŠBA,âEHaA@4.Ä(DhI”$xDhˆ‹$‡ˆ‰Á§sBøAGBE/ATRÄ%.¤"K_J²ÅTABÒE”ˆE‘ˆBIÜ„QÈ@$dēℑÆÀ-À$‹A&”H"„ MH!MDˆCÈ‚Gȉø(‹"Œ„ŒÄ˜ƒ(шñ2B1,Ò‚1#bC‚r$ªƒHI¤8DTDX(‰Q„„hÄ“z$ˆH$dÂÁć„ÁŽX.(.$œbBFIA¹Dá1L”0( ‚P‹HYxtTItˆÔÁÆ$†dANWMvÀ ( ¤ "&$ˆ€B‘$€(€A ,H8€òÔÝ€B‚€ˆ‚ ’`ˆAˆ‚ˆ "(ˆ@ (h‚* Î,£DÆDÓ„ÂbHc«aËèALjOH«‚ˆ*º$“„*’BĤSér„hâèdBŠåÊÌ®¤Fø$OJ:aB‰‘1‰²„ˆ¢È‰ô¡è‰úˆËÁŠlQŽŒ¢$BƒhtÀcDì„8.8$Œ¸%шʈÄÉýów$lQ#G$=5RD½͈›&C9à:ŽA.MÍAË"MeL GFÎGB„›N(Í”.8‚>¬Gº”È!ËHˆÏúD‰ÔD’h]ÄLÓTM…‰Áñ$…bOT¨†OA˜„OBø„A_B¸¨øÄŽ(_H…TAIÑE¶HñE,AÊB‚MM‘œ$2$‹A!@ÄL‰¶¤j†OH±DrÅdD® ;DŠ:1n‡Á.ÁÈŠTŒÚ˜ÜÔR(C”$¨Ë,•˜͈t¬xAÔˆâS¨$>¬Ã¡A‰FXˆˆË!-ñ-ɉ҄™φx*Aø¨&|(á¤XHˆuÚBµ±çò%f$¿gÒ6ó6M§!7$-so»öæWßÎûŒt_Jû4$_VüE4_Bûe$_ÄòN$ORþd´_MòQ(OØÿˆÍžˆŸ…èˆõ,IOËxýümŒË_Bø´„_Þ¼íñl¬ÏQtøm4ÿÄÒ]Ö]ûÔ$OÅú}ÏÂ|™ùXˆŸ˜÷,íOY|Tüï?Ïhó…¦OIøåÔ_lóM¿ÏÉ|»lÜßÒŒü¿‘oGøL<ßÈ×Üü(˜•ñ˜øÏÂÞœõC?5ôwïvÿ¬ÝßËûý¨OKû¤´OZÿ”á__ûå”_Îú6MßFöe¤_Nþ¤Õ¾ýßßüý¬Ï˜ý˜ÙþݬÏÚÿŒ}ÏJûÝ,OJ»„û¤ýÏÙöíÜßÎùé¬ïÑöHmßÖøh¤_Zý1ýÏÏþy­ÏˆýÙü}ˆÏÞ÷ûÏÉ{ø¤¶Kº_ÉÿžIÏïýï¿ÏÎúMÇÆßÖòê<ßøý¼ÌÏÆý^>ï©ý˜Ø…ýüÏ_9í-M/stRö_[¿”õC#ñ_ÿ˜ÿ¬”ߌêK»„«ºOîKÿå´_^þymÏÒraôáµ_^ÿ¤åÏ[þ<<ŸýÉÉü¹¸ß_ÿíùÏJûõ¨OK»´ëJó¼éOÛûýœ_Þþ}M&øm-Žÿäõþ½ä¾±ÛÝÎÁ›ÉÙùøØßú·‹óL®ºñ–4ޱÏêþ¹˜ïþùçLÏÕö%lfõeNÏÜ÷/üÃýŒ´µXœÈùü]ó'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2„ü:$I<èãÁoÃÏÅ/ô8E/ô8E/öaoöqO8•8O8•8_¬ñA8_,ñAnqAøá„øs„7…WüASüASüaÏþA÷„S‰ó„S‰óÅ„óņñá†nñAˆ/GxSèGüACüACüaËᶘ÷‡s‹8o8—8_¬óA9o,óa/nqaénña‰/Gøs‹~Ä+ÃBüÂB¼žìo~ˆ$$8SäB1A*1Q"uAèèAà<ŽSÀQ„1A8SäB1AuAèè„â„â<ŽRXBJ‚3D.B*)¥‚R†Aƒ¢A*¢A¨¼â(…¢XJ¢J¢(CdJB®üCÊ„èBÄŠ´’H"(€N‰N!fA"DáD˜!A$”™HS(1À$"Á1G4FÄnÄœ…Œª!E‘(†G”À¤à¤$ŒØRâ„ØB´% Q´ÿM’)A ‘(HÜ¢$€(%L±a‚2DC¹(„Ù„±„ED(L"ñ˜Ad!4Cô(ŽÁ„" (T‚#B„Ѱ¤rD!"N¹„”LˆArHÈg“΂Œ!È(¤Q†HD …¤„8A-‚,ÄFE†qHbBFH„N(z#ÁˆD((J2$4Jô,#AJ’V‰´$¡½0BB€L" ‚$(L`BHª¡‰ DaƒxA@aÐA (f”ŒI 2ˆÃª$(¤(A&$$h„ŽÛƒ5-E 4("(I„Ø!`Et(N)C…8H¢Š±!á„DI ¸-ÄH"HMI(#$¨„Œ!TÅ$AH*Ôeˆ‘BLÈÁp$$1H †K•àEƒÀ’ I¤"H„TA0*0H@D,,D 0:,2L*"„¤"AˆA‰ô($ B1(ŠÄ!0H‚BŠ)ÂHªLsˆÂA…„¢Fq¤b``ˆÁ$ˆ6 HŽA‰"@!†rHˆÀ$B€¨Y@1HŽ`(AF,À$ðÓ 2AH$R8A@¤)"HŠ’@d-#‚ˆ‘HB:èD&DôA$Œ2A€2AAB.$ÅA¡Á@!‚XB0&`""J”Ä”‰"hˆH<6¶H€##Atr¡FŠ"‚R 6!B°’‹b„$“ˆ(€<$„ÒH(BŠ„RX HÀ1„ŽDL ‚’AàA™ ±ˆ”$ÀŠ„/çƒBp,!a&PAA#™”(ˆh@„BA€B! !HB DA@"h!ˆB ü3%@xb†$!a„"P#(Cˆ˜g†"TH€h¤J°™èô&*„H„A¢Â•ä!Th"–Aƒ‚X,O”!!ƒLƒRD"‚‘NA8Äà„"±I‰”” DÀÄ_KIE)”`B!I‚„ aÄŒJ C‚1Á&1„šÄA èA¸$FD²ÄB1$@ÈaA#D‘ˆDĈL`BH4ƒ9IÀ½‚$àĉD(Â$*DCB”\b‚!LÃ4(—HˆP1ˆ›‡BP•ˆNL¢¡Ä5\ŽT\8(]‘aMBYA£ƒA(UhB6D‚qEY(GMAƒ<D2MHBŽHš¯C4X‚X‡A(A(D‚I$d!&‚2DIb„$K!ÄBH#&„( ‚ä$fC†d†AH‹¬4SèR¤„ˆH$JB0$Á¤˜€DÈH‚„A|1!„>…âñHRŒô8Œä‘Áhzzt*DXH&¸(AOd!”‰ÂQˆ ‰E¢± ©ˆ…dEB¨+ƒ\õ„‰äH¡Á$D‚ ¤(.(.$J‚bBLŠÖH²"XB#‚òVSŸ„‘$¤LÕ¡¡Ä¬µaÔ¢èDTb&R"’§‚‚iH¨-jE˜Fr„„Bìh*Šâ$Ê(-(†ä"¬B:X,K‚‘®ˆ‚Î(ˆŽ8DRÂò‘ˆB(˜$‚(°,¢€" Bˆ&L<ØEÒRi"'‘$%Á"ÂíP$‚²Dâ(1bF!"’J¤©¨A„ƒÑ¤ô.1!%-¨1g¨6¥ˆrHÔ!R©N"¦Â"†”ŽH&¸„’8ƒù4KIš#a¨AAÁ/„!ƒˆ)Œ‘XŸ£@“`A!«‰éBåÈ’еˆ”Ck‰RÛ!’‘Z’³ÛH1Ò-¾E>1)år„ˆB©xé$±¢¥1ƒ³ˆèH¸""¨JŽLô˜ HA(ŠˆõˆŠˆJ袨ˆ ˆJ3²!!A€ ‚@€¨D€"‚E‚"A@ *øXç ˆ(H@Ĉ ‰H@‚‚€E1DADB¼;‚%ÔñAT&a1ZB±TÂk$±B©(52A$Æ'RÁMq*Ø’œO˜†~¡¡‚Î(ªè,ù-ªÇJ„ƒ‚2)êòxˆ,ƒø‚!‡X#xŒ¹¨´ˆvù‚6¢©š2J8%ƒz2A舳báIˆ‹ñÁ‰¸Š¡8Ÿg Ÿøä…tXèµxø“Œ†1L±"¡X‡éŽ–O©ô…ˆÔˆºÞ¬·â!2VZùŒñ’”/!ákÅ+/âá"é1¡‹/!õ(!XÇ+‰/#1—o‹ñ–Ö¨±±ó‘$ž„"®$L¢(H†‘HËKÃ’$Ç*¶„¸)¶(è†â„¨(ˆJb¢L2ZÄD&Ú"zÒ²T&­H/%ÈHo!2ˆmË(ž:‡†kXHæèDØ* ¯áTˆÏHÒˆ…ôyPŠÅê(#’‚BFúz(tÈ…\C‚ô2A*Dâ‡LX„Žb.YψñAZ‹8Iy8„’ŠQ¡‚fA˜‚?Bx‚´tŠ‚¼4üÚ—ð{:Ï1s.ûJ^¯µý:¯÷÷^ò¯½õêWï!×'û–‚?{üÓ:ÿ¸û—[¿laÖŸRÒ„ü;‚/ÿñi8mzïÓô:›Ÿ¸˜ñ8mÏÿû±§»¶ãÞ}ú.ªï™÷ø<ÆÂò$ÉïúñŸ§ò”ÍEhõYˆÓØö¤¸¿òéå)²¥ú2‚/r|ÉøÔ¸Oö©,æòc$_Üiúã¼/Æú¤BOH´ŠuÊè(þ¢äïÚ<=Ÿ¥÷ïµñ{ï¤õj_ïµöFÉÏ÷üS("o‰é{ýZªÿ¥ú^âï³x:üI‰Ÿ…öŒ¯ÎñI?5ó{ÍZ¯ˆùÅÙ.}M8OªøvÇ¿¯ú¢o+ø2Ç¿‹»óûßÛï£û$›¤¿öŒ²¿hû˶?®ÿ¦óï9¹šùÙÉÚý´ÑÏ‹ûw¾¯ù4’O¯û–׿øE˜_¿ëGòa©.iß:óÒ½/⮺¬¿ž¹’úÄŠJ¿¼û«œ4¯óõ9¿…÷¿…õS¿‡õ:ÿÿ¯ÿžzÿåñ2¶okó†»o¹ýùŸ¿ÿùüÿo‘vlüa­¯ÿû–{¯Óôzÿ¥óÛ‘ý˜YŸ…ñyýï«ý¿»ÿ¯ëkû¶¶o«ÿžÿ¿ïûó¾ÿîÿ>i߯òi¬ÿÏÿ¾û¯[ÿ»ÿÿ¯ûÖÓ™ý˜ñŸû¸ýÏ»ÿýºÿëk»´³´ù„ÁŸÍÿù¼_ßû>aÏÖöa_Ïû´óïjþêÄï‡ûÔڭ«쿷ëß5ËÜô.O%ñY?%ôYX?euyý›öß½û>2Ocñ’2O!ÿ¾ÿïËíïùú¼Ÿ…ö-L‡ÖŸîýßøÿóõ>_¿ñ[S/õÙŸÇñy]ùÿ¿ïïû–6/)û¶3ï»ÿ¶ÿoûë/¿—ö,mŸÆòi?¿·ÿ¾ÿï{ÿú²?½ý›Ñýñ¼ŸßÿÙßÏ©ó¾¼okó²´OÿœÅÏXññ¼ÏõqIÅôi-öÿøúßCüªä¯ªûÒڋɫȭ/íÿ›Ýp2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A­î9ƈ7Çx2„ü:$I<èãÁücÞSô2ERôA‡R/ÖòaÍ!O8—,O8—,_¬óE(_,seìnqaìnña/GxsíVü2ERüARüaÍáoÖö„SÉò„SÉòÅ_„òÅWÄnqAüáÄøs„7ÅVüERüARüaÍáoÔ<ö„SÍ"O8Õ,òÅ_„òÅWÄîqAüáÄørŒ7Å/ÆüD¯B¼ô*Ä«aé¾t_I³ÁR$$IeB&aBtaÌA‡BäBÒ„’Ä+!O(…’D$A$I2E&4A&4A&4AÄTHDÔMÁ#ñ„SÐtAtA˜$SdBD4CD7„Ä-A…ÄA…ÔØ<O(Ø$tHX$FØ$rDhbFØA1ã%’ICèB&KD&1(PDŠ#Ô"ÂLˆ"„AG#4x@Dx2ÄH"„&á„‘$’+A&4HoFƒ$H8%Ä$(D(HXA*(H@„…¬BB"DˆH(£.AHˆaH€˜*‹€*JX‚ (JbÈ 2A–B]õ£S‚¤R NcTƒ2$(A LH¨D¬$²!(Iò&„GJ#%""œ€&9E¡4"!JBH”"DFÄ‹‘!(HW 'HAD0HH.€ÌÄA"d‚°‚dÁA#`…&H¬À†I„‰ÂA&€4EQH$„@h"€ˆä‚HŒ" "‚Br‚à(5Dõ±ˆ"BLBCð!A@JT$ D€$L¢A0€„ÂI‚ˆ$èd("FˆM$Y„RƒD„&D†b@#HÂ$€Bñø’ÐÅMÄA/DB¤!XG!*¡"DA4D "”E€BHEDQÉK2D-„L”Œ„EdˆA"Ž-¨Š"P+4(!B„ŒÈD`„ÀBKHÜ5MŒhFÄA!t$"Z‚1"AZIJ‚4$€‘HDÀhˆP$ &„"TB€xH„‚fŠÆ„Š‚ÈÄÀ*@±(„H„+Bô“GFÁDPPà±$QQP$F!!T€„EhAZd”YˆFXAÈ bBB(@A1Ĉ@O¨7;ˆ¢W„ $eR(°$G#DBXDfQ‚J"G”$ÁLÆ‘ ’$„vÂB*DA¢%F™FŒh‘!")ÃD„"!.&phÁœÆRH,($BØ<86ƒš$0"HrŒ‚)"DŠ‘(0A„A ÃB”ÂHÜ”$$$ Œ5(¬!0"9Dœ(,ňH‚ÂÁˆ V)RŒ!„H"ƒrDABFÉHALTƒÀ$(‘ƒÁALĉBA)"(„Äh…¤BX"$D„†ˆÙ8a(,”"@R(’_‘´h4…–JÔ"'ˆMAÏ EÑHA¨A¬2„àIÄ,12€’H‹,!ÃH' á‚Á8àAŒÃA,16’$<(‰Ã4I"!˜,("(䄉" B´(ˆŠƒØÂˆ¡"OR>c%$”"F"2H#¢…ˆ‚¤.BITEOBÆ(O†ÖDÂ!M$PF±„ÙlØAx‚VDlÑÁÄBh(" 2…gˆOo:$¨E)ñD­Nb\Ñ8A„A„¡D.VHd†"FbF†4$!0ZˆDï2OQ!+BUÂL*T!-H="FÂBBrDR:obsfþ6vÿòõ&~oäö~WoÓÖ”ô&mÏr÷7n/óöV~/döOB75O¤áföOd_}ü÷Úoìù†¶m./cõO]/Ä÷Ææÿý6IŒ¼BöéWoÿüvM~OnóŸÒ¿5õVZ/gób?]ø¶Ïßìù„´Ohû¶Öÿ}ýÖú/íú¿ÇgWOÂüV%ßzýçÌoüÆþON¾Ì¼ÚôÖÚnöÜæÏ:Kòze¯÷ô{x´õZQ¯µöZy?æ÷Ns¿f÷W*obó&6f÷wbÿöñg_?æþvEßÄödM/æögWÿgö?oï÷×§õ[R¿µô^[âÿïwÏè÷ú¤6m6_d÷wFÿöùî_îï;e—–ÏÖüæ­lõVÿöýÞí-µ[ô[ïÕõwþßnÿÜöÏø¦¶OIûÕ´ÿoýùÛoÿíÿÿ_DŸÖômÍî¼_|ý~ÔïËüÚþO(½Ú¼ÚüÜÊoê2~=÷ÏWöB_•Õ:ôXA¿qä××{õnv'¡/có6obó^b¿gó>^o¶òZLßVòhl_¦ój¿f÷?&¿wôV[¿$ô[B¿3ôr_ÿlÿLq-êKù62M4ï!òWoÿýæ¯ÿ…öiAnMOöÿÏþÿföVÿtÿÖÛ¿¥´Iñ;Wo÷ôßvßt÷Æ,ocñ¤4M$Oh÷oAþõry_ĶiödM_¦Òøÿmf¯O¸öVšÚ«‰¯ãýòÙm(p2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9Æxsœ'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ü‚sׄ/(ôÃ:EôÁðáž#qaŒxsž'cȯc’ħ!èç!<2دQt8õA‡S¯ö!ïô1Ï8•8O8•8_¬ñA8_¨ña®†®„ø2Œ7…>¯ô8…¯ô8…¯ö¡ïö1Ï8—8O8—8_¬óA8_¨óaêqaø¡†ø3Œ7‡Óø:ARøARøaÍ¡ïÖ8óŒs2O8×(òÅ:„ò…:†êqaø¡†ø2Œ7‡/ø:ô:„«A¯C¸¶úa/ÅBQ‰IQIS….ÈD„A‘(‘(8Ž•ˆÑ‚S….¨"†Aƒb‹"‘(«!މÂ(((UhB(r(rxaØ4(‹"‰ò«!މÂ(,Á(,S„.„.?ãÈ'ù!ÈÁƒ‰Q&Iƒ%tA¦$ŒÁdà„AHtd!a!0A‹)’!ŠÒ4ÁJGŒSâ‚DAÔ’2D-Q‡"‰Aº’B“('F8$NŠÄLDX’f¤AƒRÈT­‘0"$ш´HâA2A"APCH…f…bD"4(…Â)‚E¢’@¢)-D%”8ŽA$HpM‚2L­1„€Š1J‹‚€¡($h$/‘dˆ@,‚Ø‚dB„Œn"ƒwAX‚@Ò)Ò²ØÃÂ$+(I¨ŒAx4ÁH(„F'A( ²D˜Œ‘(Šâ8„ DBˆ¬…È‚€Æ” A,’DÌ”(H‡„P* Á"H„A‰A@R‚' ¤(A* @–D$`„ŠTBHƒBˆR8¨¤$˜(.A(†bA…°Á$°‚„’DOBÂa(†"%H0L‚Šƒ4‚(*!d(` T*HÈ$ŠtßÄB¢*1A@ÄEªdPB¢4HMQ*è‘((J" Œˆœ!âAšA0‚Ž.HF¨BÀAJ"¡K(+”ˆ¨/‚SM’ MH# )ˆÂ!ŽHŒI%h¡ŠùD£3J’F¸„0¤ E$@H!F„…A±Ä"L’È!0$ˆƒ•-ˆ#$„„¡AH‚Bƒ’è$Ž4ÀHà!JB"5ˆh!ƒ±Bø§%€4<ðAJ!B"B1š„t!"J˜@¡”ˆ‘!AÀ ¡DFf66у(…‘¡&b†‚"1B…A*A!ÒLÄ#ƒY($Oµ1FÀ(„1)G&ŒÕA‚(’°!$$„³%Ñ6ˆ˜HLÄ$‰+(†8N!2„G6*A¨!#œ#V„A%"O"!8H®(BHJ«B„,!4’$‹$K $ŒD£ŒF˜¦$Q$!(™"$(Lb„;p€D¹‚b! ‚!BBA I"h!Æ‚@˜„")HD`(A(I”’(IâˆA’$œ5Ã(M!M8‘R$(h…ñJ¤L‚QBHÁL1"‰t$a@LÕ£8%B™8‚‚¢§A,hˆ- FÌD6&ÂDˆkY„JH˜ð”&D¡„)*DqÈ" …˜)RB¿ $HF*N1ÃÁA…„1+(A))%(€|R¨’„`$X(B8£‘HHJŒ"š"$†*D‚h" ð‚ˆ0âAC4†Š‚tªHr†äâ52T…ä4„L'Ç&:ŒÄŠTdI8HϨÑHòˆ"Ý%M)Í%N)_òV¬Lò¡A“ÉA.Œ‹CWâOZ1)M$ަ"_êèrÄÔI!9$584t$(‚CAL#H”(ÆF#8H°dTgEPDë…A°H’‚¬ „ÃFªŒA‡bR¯Bø"!¤!D¨E°R¸AtŒÈJÍŽ(ENDÍ’D°$–($J4¬8‹¬„ä‚’I.2ÉC$”(A²ˆq*ˆ RA"¡ABˆC†¶„5DB(Œ$h¦¼4w%ˆ”"% €ÖR­",‰‚ˆÃ„(N˜G$"0)ˆ"Šd‚+H0š(˜"H¬€‘BƒÂEØÒ„áDÄ$M©­$MI“ByTJt„YhÐDT$Ey(˜¨t(Aˆ›BHŒHˆóRHˆ#ßï .$J‚â„‘…ð„(HK))˜d%1¤(#¨À¤8h$…¤‡"‡ˆh‚Â#tØB(‚L8HI2„¡@HHh„@êa‚DˆB§F!ŒÄ„(ƒ´òH(H‹tPˆ$¬5ˆK…òˆTa: ‚ #€DˆBˆ!ˆ$x‚€‘(DB"HHÀH$A‚"ˆHF €C È‚B( ¡H€"A$<8‹\b%ÝÄHÇüa¬ÔFøA"€òIMOÔQhFw)TØ«ˆa×ÁMDH'ƒ”HUtÂŒ›ƒD•(ëTˆ©…ñ’t$NE(R¨"FŠÂ>*ø‚Œ/AøÑ„+†Ä‰/Hƈ†tUH\×<Ì´‡HމFò’Ç(ŽË„$/‚8–/š´®´©¾X”LÈHG²…2äI±$aŠ!„Ñ$hBp„TB#bB„øÈ/H„”t‹‹)…*t(ÊrCRÍhKCca%áFìXù(.¤&ô(¤ObáªêF²ú!"&‹:J²dÊ$‹#+êºr’Á„‡ˆ"‹¶"v,ò!"JäB¡&Ô(8$.tâ„ò,‰n$Cæö-È%шÖØ”ÆO!åxòˆHŽ$K8\‘‡ÄÄ!r!)ÄL&ÑǨDwDk‚kE„^ZøTè¯H߯Ò|÷$M§—…zÏÓþ>¤wÇßvÜdó$„oIòåÍ_äóm­oÑö5_ôóM-ÝmïøóÞ-¯…ò÷_Éôš‰Ÿ…øˆÏÃô¿Å÷ÇÇ~,ù¥´oCú%æOöûm­ï‰|›òD1Û&Má¿­û^)Ÿ…ò¤ûŸƒüÉ—…Ž»ŸÒþì·…î?(×A:æôÈ3ŸÔ¿üŸ.õMmÏDü«žo—ü|8Ïìû|œ¯…ýZ­õx¼ïå7º=,ÿ§ñ,iï‘tøKÒö.i¯Ëú߸Ÿîëjûa¬/sÿ¨¶ß¾û¨åïûú,ÏÖú>mÏúûý­Oúì¿ßÚžF¿™òÆZÊþ¦­Óúz|Ÿîû$&OÎú–ÕÏîùíŸßÈþ¶•ïÇòMïÂö­?ÏÂúw¥onó-mixùÂRŸÂô¥ÿÑøvDßìñ„6M„o[õŒ>_üÖþ¶Á¯×ôdA¿„öÄSÏGü_Tïì÷L|ïýZxO)õxükñïòLó>mÿWö,ÍS¯‘õZaÿÅó,÷Ïúÿï¶ÿÍú¤¶Ohû¤ÿïÙþíÿÏþùý­Óômm_Öøm®ßúý»ÿïOüÿ¼ß¨ý›Ø¿‰þß½Ïî÷þÿjûÿ(Ocû¤6oúû¶mÏîýíïÞú>MÔvlýìÏúý?üÿÇüÿ<߬ý›Ø¿|ÿùì~ßêÿŸ¾÷ÇOjó¤6oøÿMÏïõ©_ÿÇú^M‡†ßÖöì/ÏüÿúÜïBÿÚlÏ-ýÚʯ…ýZH¯7±ü÷>Mïãó[[4ôI7aÿ·÷íÿϨû¼¨okû¶²Ojû¶íï«û÷¿žþklŸ‚òa%Ÿžÿéÿ_Úþ¿ì¯»úÚÓ¼üšÉ¯¿úûúϺ÷¬?ÏÇò¶¶o*ë(ÿè¿«ûþŸ_Æö]LßÂòm,߯òí~_úþ>ÍïñúÞ[˯‘üZžïõÏøóL¬okù–6Ohû=ìëùî_ŸÒþHhŸÆò,M߯õÍ~ßæü~Ü/$üŽZZœÚ¯ïüªVg1p2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:%MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaœ7Lj'Sü:%MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž3qaŒxsŒx2„ü:$I<èãÁ¹CÝSüA¯SôA¯SôaïöA¯1÷„S2O8Õ(óŤóŤánqAènñAˆ/GxSørÄ?ô:Ä/ô:Ä?¶þA¯)÷…S(ó„S2_¬ñA;O,ñaî–î„ør„?•ørÄ/ü:Ä/ü:Ä?¾þá¯)÷…s(ó„s(óÅ:¼óÄ2þájqaìjña‰/Cøs‰/C¸2ü*„+Á¯B¸ž®o¾4M3A,1A,3E.Ä33uAøA//+Á#á(,%ÄB,3D.B,9Rˆ#uAøA+A(+A¨+Á#á(ŽRBŽJâ(3D®B®’#¥‚#õaˆ/´(¸¤¢kA¨k+!Ž(Ž(Ž(O(djàZ;‹¨8Q¤„ç!",²„SØ'‚b$ÁM(MA'Bˆ£‘Xˆ!”H!¢”Sh#A-E˜Œ¶$ØXá‚„$ÄrIØ)¤(1R'ˆ„4­2„YèBè"„Ѥl"KL”)HHâ2T„Ê2‚“i$’(Ÿ¨H±˜˜$0pD2!*˜"‚+#¬%ŒÄ@$²:¶(„4,°´’B-4‚À†ÌA¢H"Iâ%ÄA±‚¸I£œC¡"`(M$+!DœDŒdD/’˜N"AŽ)!Ä!E²„‡QÀ„@\(ôˆD8d…"Ì(D"A"M8)%8Ä'„Ï(g"LƒQ¤ª1e(„ƒ—!ÃaBd‚…¤!,Ñ$!†´8ATX*RŒB'u(¢"MX°HÁDƒòMj°*DX1ˆ",)‚‚„!ˆ4!"BI1"(¤!¨I•€"‘–¸Œ2B&ÐHâx(bDŠ,øH$,&"2T¢!$ÀD.@B¬Áâ€:®H1‰@R(kŒ²$AHCcƒM("À2Y…Â"&8„'!OKñHŽO!âI‚ÑTH(³¢43B¨Â])‰bB™2ƒäÔH‚ÒDò*DŠÃŒF„±$!bÁMc>.*q„è„1hK\¯” †'D‘$I"!&$ˆäDBt#…pC!0¤d‚PÈH4Šd$BŠ$RŠàb‚"ñ!!D@ÄBÐ$B$R7=ˆÁ$90ÀA(†6DHL’C?(øBA‚*ád(F!.„ÑHƒ8BpA±HBK‡(V!" !"ŒÄ$(Añ«õ 38'håâ)ä"Ɔ"h",Bâ.Ø©b„ƒr²A”¦)8h8E$dÁBFx„RhÐÈ„BH#+‚X†ˆ:ÛBгŒR(O(!è2$HDÀE>D«È„H‹„ŒˆÁC#‘À(#â#¨2‚(%䬲XeBAÈ6(‘R% +J¤,2D°²qHR„@(–D!L¬±#‹!A'ÊHƒ1$)‚H$áBb`E«’"JÊÁHLAñ•®€‘!%H*ô$!B*!!+(Pƒ²‚Ô!@±ƒa„`'L!A€˜FD…Ê.‚”pæ!‘Œ¤’!'BQ‚KH,8$FФQóËŠ†T¡(„Q*\d#KA‚@8FA@X„’xb¡¥"E³$L"A‘A2H*AÈ„+(E1!F!Q*K"G$‚*4«DDA -‘"C9*M˜È‚%Q")Ä“DH02#1„„ŒÂ%0$¤JÁ,BHœ(QB"” hSB<"0$D (D@`9(Å1H"#A¤!Q‚Al1gL(B|AÉ›%I–F¢(˜@E(‡B¬!8"&d$Vxh!DJ’‰Fb!GA¢!¨ŽT„‡Rœ¢!A%ŠQ)<(Idˆ„,IeR›B *ñˆ4ŠQ‚ÏæD’!X!0œ¤Â#,JD#AP‚0"CÄ‹$è"$dÁ,ø$AQŒ"„´–„2ƒâ¨‚B„hA…RBA„„¨cÁˆc‡URÏ´RñBAAáuI¤D]PDðADNd)nHôAFj”‚+‚RBh!‚BCÈ"ˆ‰¸Œ¨ÁL惡BÄ|‚­N†µÂ$¨L+)ÞAO,T$A D„j„¶HÄ,‹T(~h)‚&¨!ï® OEQ!vá%ñDhE@LD1LQfDEF5Ht&ÔAfjHBbWbC”I¶„6C´1L©©A0H‰´Ä]0„.Œa(†!âXBˆ„À!‹BAG‚.H™Ò¨Áƒ–-<ù³ñ$$8*2#IaaÄR”ú$„ð”‹B‘Ò*u±qH—ØIÈ’N(K¢h$L¢Š"´!ˆ̰(¸bÊ*©(,8„ˆŠÑDy"BBæ‚8ˆŽDƒêtȲB|ú¢„Ãø÷z@Á"œA‰A )Â5¨ÑB“šFC±!z(²TXˆá%$Å$‚H%…2$"Šr"ÁfÁ(.B„”AŠ"ÖB*„2¨ L%!-á¢IJÒ(¥($O¨h(JX1/B& B@a$Dˆ‚A0 A BàDˆ/y@ €"0A(XÀÂD„È@Aâ@ „`HPHˆ!€$BBD„‚œ>h-XËa‹qC½A4bJÓ!4X]„CÄIå¤BOU´$Ö–FMAŒö”!Éò6!c¸†aB'B}\HJéÂø„Ž–äLák³wâ‚2,ÂêAúh!L:Jí¯¨£Zø$“&é"¸„H‚|AÒ„­2B)¢CFòˆìŠ&®n—,KEƒ-·„êÓAO1V1^SñQ_ˆ²AQU…•É¡Tõ±U¯Õ”TñCÚ¥$ñX¬áAe%L,Á„#"ÖTƒüLA‹DŽ’F“ˆÎ2L©Ih¤†F*òaÌQ‚ÀÄ'A¤B‰ä“–D‡rHÍ[ŽBƒ2¢’SUA'ET"´Hy´NAMEQD]<*Bt¢XÁFx4tbü¢ÅDüÁFÔäÖ’<üD"E²|Eºì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2„ü:$I<èãÁoÃßÂøA§B¯t*ôaéòA­"Ï8Õ(ò„S"_¬ñA*O¨qAêêqAèêñAˆ/ÃxSø"¯ô*…¯ô*…¯ÖúA­3Ï8Õ(ó„S"_¬ñA*_¨qAþ¡ÄêñAˆ?ÃxSø3¯ô:…¯ô:…¯ö¡ïô3Ï8Õ,ó„SÍ2_¬ñE:_¨ñEjqAü¡Äø2„7Å/CøDC¸ô8„+aË¡oô¢ã$…HBÈ"Ehb„$%%xAؘ‚£á(HR‰$È"UhbHr7„-A%Xo8Ž"*1„ƒá!”8Œò¯úHbBÁ!$"aAÂ.HD`Â,TŠ„,2D&‚ ÌD¢"@Œ"(BB!,,ŠˆŒ&„tA BH4H0DŽÓS’BƒÑHÂAHA$À a*D!L€RFMC¢(AC‚hh!"À$1p‚U1HL&$di"BHâBè!ÔH’B@ï%Cå4‘R !L1BªB‚!©BCVHžL;Bhh…¸A!>!BŒ”Q ¤-94$¦”iƒG…,OR…ˆ.ˆ+BS¤¥©x(–"MAs¨!1@TA’š„$«œœ>·-QФG˜…a$ B!Š’FòE†¨!CäDÄ(„)”ˆ2Rp(#â„Ù$"XD(£ªE…”!¢„2#8DH%¤´‡H°"ARDHIC°hÁ„)¡„*T„!#è…Dø¹A#¡!BCÃ#€bA,¡$„B$‘!,HBP!C„ZB(P¡#èB`’H!Bƒ2¬B„<!b!¸D@BˆH6çHá¤ÀA…rAh"A6((’jqDDˆd‚ ­Dƒx#Ajƒq"rD8N*Q$E4X£MD‘BÐ$”!G%Ž.E(É!r$D¢1…q„ä„BH,‚ C‘"M)!¨‚M?„BV„‚k‚$F!(BAB€T!„!B…$ˆÐ¡4D…'„‚(DH(/HiDðB(EqH$(䂌Al8ÑDHÄðH‰‹ÔBø‚‚"Ah„“…D„¬d‚2E˜H­µ”È’A„ 'Ô‰DôAC HE˜RˆÄÔB˜((CAÒ„V$àAD¸ƒ(‘",<˜ƒ¡)CñÅŠ$!'„!Ä"àB N"AÂ,HA*%d3B¨$!HG„$ƒCa$A‡¤`DHDPH$'AA¡BJbC„8¨aXANàÈF!‚ÄD`AAà46 ÁA/AD1“i(ÉB4†(©"T*B¨$O¡&o¤"ÍÁÀºâ´(Z.¡ ¢ËƒK¢4!$Bˆ'‚&ô˜A‚dƒ˜BE‘‚„+m‚*aD&"D#ÂBCTH€Êb_GEÀàGÁRGHq¤$ù¦Tºr†4²‚."‰¢‚ÙÊÔ͈’Q¬¡ŒÚAbD+ŠB²L+ÁAkIƒ‰˜DˆÐ„H”N"xBˆd„l(,ˆø$!`¢Á6˜}"…¸¬Ó‚1Š„ƒd‚:“ØBt$hA-$,u!$bC*3$K4Bl!EhHЂ …$Š!ФCa(0Ä*rÁì„&”ÂÄ(¯!HÖ"Ø"„Ø"2$&±(!’„ª¢("hÄ©1—„LXR@(ÁŠ2oŸKsVab$G#J¡˜#²B Œ É ø™%$a( è!"9Tލ"('JHˆÁD¥!‚x(1‚C¢C®2-J"2A„(,Šb%)¨!%È$¡”J&¡H*"G¨#B"BB’6àd6é"!”€$„°$H)€Ø$`"€„($(,$1@Bˆ!ˆ%¢B‹Ñ@‚‚ˆŒAH" „H@‚% !(€Bކ‚" B("†#"’(H@ $ ŽÓcŠ‘H/A±7ž‹1sñ‰‚‹H›+¢úBájr$"h6h"RNK*õ&+‚M…˜-(¯ß"òˆ¡Ùò„šM8š¸•c,zññˆÃ#ôa$ŽØ‚ªËCêhA/hø«¨­!'®aƒ¸$¢*ûƸ[¢.¨ƒâ†bFn­‡D.bA‹"Ä#B>"è9‰±BØ!"ô1&AtÁLô‚¤-DÈ4Cº:t!r,´(Ò$þ!D‚(æ†Hš‘¬Â¤LêI¢%3¬2†¤cXÓX8¤HÎBÉh„JxÂ脘=„-D,rHÄ„$‹Bq<&˜.HŨ'˜)A,èÈÂ!#ÕC4&É´&‰DÔHÔBõ¶láaË´´Nž„ „&ô„¡Ìñ’ŒÏY±åI–XžÑ°D"(b,&B‚KÊ&FâÂbLbA!%ÑbR!H*¤Ã(×*Ñ$Ö"ù¢ª%r!òÂ?lxƒ¶Bxv?¢¸ø#J-L5Ø‚\‚­H'¡NJñT,Oa÷4U¿ñBˆ,÷&åýµoÏøõýO{ÿ­¶oKòõÝÇíOÏ»–õ‹1FüD(OBü=·oÏûv­_iù•Ô¯HùÚ‰)ý—Tëš'æÿ¤s[£k;SýÜ›O»·÷:2n?n%[b¯cûÒ-N«_(×g|šöJ‹?(÷+æï+ú~)/þó*ñÿ*º¶òãÿ¯–ûf»ûɯ©âÔñH)ÝA¿èûX¯äòŒZïáüN·¥¯¨ÿ*îÏ34‹=o¤“|ÿµá¥ñ8Tß÷»„/þùù޾„¾¤/rÿ¹¦O¦«ëïsús(OÆ’bÏ8ó÷¼oßóäúËúûÉ?ùÄšJ¿9¾¿ú÷­®ê+»¤û²öŸ·â¯úôøÿ[ûR-N¨.hß:ëÞúò¯/¯û¬âß)ü‘ƒoéj¾¿þ5£^O?®Û$ñ&‚>Æ¿:ùäŠëêß{ûz%Æú+i_ºûz¬Ÿ§òò8o¢Þ¦øŠ/Œáòö7è!4ïCõ~tïÅóS¯!µZõ~Osÿ½WÏoû÷ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2„ü:$I<èãÁº3×Âô:A¯BôA¯Bôaéöa­bÏ8Õ(ò„S"_¬ñA*O¬qAîîqAìîñAˆ/ÇxSøbͯô*ůô*ůÖþAísÏ8Õ,ó„SÍ"_¬ñE*_¬qEþáÄîñAŒ?ÇxSüsͯQô8ůô8ůöáïôœqÏ8µŒó„SÉóÅ_„óÅ_ÄñáÄnñAŒ/GøS~Ä/Aü8Ä+ÁC¼¾¾ü&;$ŒBòA(,rDhb„&rB(rCxAؘBi˜Æ£á(ÈB—„$„M"W„&vAHvSHtSxAÜTH-A…ÔøÁ£ñ„SMS—„M„IsEèBqAÈ”…LxQxAìTHA…ôA‰øÁ#ñ„R°„%´„!´„3D®B2Ô”X-$„3|A2"„*q"x‚Ä"–¤£ä,ÑDXHNB©$*9H¤…´V#¥(W„2)’–òUÂDD”)zTøh‚A¢$G,Ø‚²QŠÑ$èFhè2eB„H-’ŽHç¸C±RØBôÅã°8RD…c©ÔH¡*EÒB"é!´I*8Dž(‚£2a(‘Z $ CÄŠÔ‚A£è…âDaª‚$i¨b„+ˆK€b).ˆ â)èÒ‚®DG"±ƒá(X¥;]LAH$U¢ôE CÑ"‘D`‰Eò$Œ”$&èLAbâ8…²T(Œá$Z„6Ò…å"D‚[,2EbC&HÄ$Vx"”L‚qBhJ‚üh)á‘â„q˜a„Šä„2LÎ+Î’Í*+›,ò”Ò¨ò’R›X8]Šèˆü:Š/ˆxôÁ„/)øƒÈ¯¡ùÓÈk‘_‘µˆ¸¡¨/¤¡˜/,ûAˆm¸„ž(d𛞨Þïð“b΂)³Äø¡šZtr8D^‹!GŠo‰ôD)oI2R+A¨Ü)¥+ÔDDµˆ™QÉý+\ðzkß§õJ^R/¥õQs/ïó|ò¯§úröo3û%²o#úrç/÷þûï·þyjŸÄöii_„¾úÿÂV¯¬óͳoíý“Ÿ/¬ùË»îý¥ÛŸô:Ôã¹7¹²ñb¼Ÿö~ø¿ö:rŸRö(hÝÁ¿½þò~Ÿ·ÿäò/ýŠ—Ÿ¬ýˆ3Ÿçúü³ß÷z×ç)Û¢ªó3–Ïý÷ûo.þ«:nO;"[f¿¢êþç§¿÷÷důlýÒZÚÿòÄï8¸-vŸ´÷Lï„õJ;¿…ñz?“÷÷»ÿúÿû¸+«o+û²ö¿»ÿ:úÿ­ÿßý¯Óô(m¿ôì÷Ÿûþ¹þ¯Ÿÿÿúï½ýÛÚ¯½ýûþï½ûÿú¯þûóº/*û¶¢o{þ»Ò¯¾½ÿÿìÿ¿Çöhퟆöä¿N÷èþ/¿þÿwï-ôËS/­õóÿo®ÿç»/Ïûñº+»K«o[ÿúø?Ÿ¿÷þüç/EöAmniÏ~ÿòô?ÏÿòúËÿËÝ‹Ý^Ú¯oÿÌÒ/Oó{~Ÿ÷÷z{ÿ¥õ[[¿µ÷[{¿÷ÿß{ϯÿß>/kû–6O®ÿÞÿŸîÿú¿þÿ~hŸÆöhì¿÷ÿþú¿÷þºÖÿ—þžÒ¿•üšò¿—þúöÿý÷üúÿïãkû–2O¯ÿÿïûû_¯ïûwIÆòií¯ïûÿÛ¿WÿºÖ¿¯ÿ—Ò¿ü›ú¿…ÿ»þÿí÷ïúßÏó²¶K(o>úôu¯îûémî­ïöi,ní/×ûþñ¯gþ¸öχ¿”ýÚ¯)ÿzú¾|ÛÑÿ>7#÷¯¡ôJI¿ãôJm¿ïýÌøï¯ù–¶/*¹”ûþÚßÜò²¶?ÿ¹uôd-ÇÂþóêïÿÿÿü¯¿÷Iȯ½µYýò¿åÿºúï¾ÿ¿²ojû²¶o;û×úïþû³ÞüÿHÏÔömln¾o›ýßþïøùOýZÓ¯½ýú߯ýÿúÙϼþ¾¸Okû²„o(¾íÿo&¾ÍäôghßVölLìýõÚßmý®„¯­ý’š¯­Šç÷²½ÿ 'Cô:$MA§vÁaÁŽsׄŽ2A¬õÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬ñáž3qaŒxsœ'Cü:$MÁ£ÁáãÁaÅâ8wMê(“¬ôÁðáž#qaŒxsœ'CȯC’Æ£‘âãÁ£sÑSøE‡R/t(õaÍ!oÔò„SÉò„SÉòÅ_„ò…WĮĮĸ2„7Å.„?Qô(„?ô(„?–¬”,_8•,O8•,_¬ñE)O(qEìjqAìjñA/CxSìBøEBøABøaÉúAÍ"_8Õ,ò„SÉòÕ_”ò„WÔ¾Ô®Ôø2Œ7Å/ÂøD¯B¸ô*„«aéúA¯£DEM!A&D@qAÌA…M#ñ„PIdB@DpAÌA…DA„#ñ„DD˜$A&D@DxAÜÔHRHai8O(TŠA„IR„&T‚ì5,hŒDˆÌŠ„.Ñ!È$¦Ä2&\ŒÁ& ž$F2œbA³8YC’”G"X)µ.(pD”ˆ-'ˆÀt1J²¥qˆ$B4²\JFDò„‡²FX!„¨µñÉÅ T„ ÄBˆ$ ˆG!'JŒB"ÑÔHBIRH‚¸Sa¤-H#,É,àax"„õ"Ž(BLÈ›„$)A8!-8)aX‰ "ÖÂB"ZB8†‘ˆG‚Œh¢\6…-ˆM'˜-H(ù2‚Í‚I¸ò$"¬1L"A‰ò(pV4(©…¡ä¡’(E$±(˜M))4<Є„Ò”rÑ–(ƒA©A:2A"GA*¡%˜äMT&ØHD&ØX¤¡‰X‰ÂC?äK”# À‰$‚p$È‚ A ŽaÀˆ¤Ñ"ˆ4()1„¨J˜#DȈÀA›&B0°ˆb„€ÁˆDà¥"ID(!¸$ ŠˆÑ˜?²JÁ1!¬Ng„3ò„(¡I82A/! Jׂ B$Œc(F!A3”Ö$â©´ˆâˆÑY¢ŒV"F˜8nƒ:ÕIÄ„“º1A$³!$’ŒÜDá„øŠ1G‚GBŒÔHv!lCñHŽX"ÉôL]@ …Ì€ˆ`ÊÀ@.,àÂ"XÂH% ,Rˆ"…„“DÀH…Äh(2€C"A¢A Hˆ(¢Xƒ8ÓBHÂ$„à‰…è( „'(AŒ´,xÁÈ$)”ˆ‚ÐQ‰*H‘à(a(pAÁÐDb(„(1H–BàJGh`˜ „¨AM$Bˆ"ðt,$l4DI!”KEvAF"†Â"N‚4† ”¨N#IÂ`dŽQ…a¢°Z‚ Á”+ƒ"?D¤$HMA"”¤,˜.N˜`+.A®œ!‰±"¢)…m'Ð’LeÈ%˜HD‡BĈR(€È" X¡€DDƒ:(JÈBBP8(r‚&$iQŠÑ$"ä&H$( ‚ƒ„¢`(’‚!äH„MH&4X†dA ¤J GÈ)DÔEÂA¤'É$"‚Eb$F1Šp!X.„)±!”G|˜#H ’Ž‚ÂBÀDB.L)hB%!‘¢8J(T(ŠÂ’Vµ$‘AH¬B4&ˆ«„)AèBÑè<~-HÌH!!!ðD"@†¤0dà’ ÁL”ˆ(ˆ?¤Xƒâ&ÁÄ€ ÐK¡,èA˜A†TâÝ‚Š‚q$È(d‡H‚tHq$È‚BQ‰"ˆ‡$ÿøB„ €œ(ˆ-Œ2AAG‚€$dˆƒ D¨(Lq‚$ˆ„I¤B.(€a¤Æ‚DF¡)(°„ *dD„"‚(†R†.éƒIRX©ÄB‰-ˆM’*XƬT((I†„òÌ"F؉‹B+<&$d‚AY2Á‚(âãä…Ø"ÓD‚ĉƒ14‚Ž$,J!qdXD‹B‡!"ƒF¢‘Œ)$òäŒ ƒ¤(I"4Q `°4’DMHˆƒN)”¤ bä`ˆ°A‚Öˆ„ÒbANƒ!B@1))Š"àˆˆh„(¤(DQÆ"HcË\—BEy(!d‘h‡()òˆ+BŠÔBÊ?Bá¨R…ðD(.$-ª.$O8ö.$̓!3ˆô„#'HÍRm„Ç(ˆO,¡‚†4F‚A\&Bg‚o¡U¨˜FO¡QH„È2DA•d-Hˆ´(ô)H›D/‚,†ˆ„ŒÁDðB“ "'„v‚%RI-„„)$ñ(-(Eè‚\„LÆ(BƒˆHˆáÄ8HÄ`ARŒ´XÈÉFˆÂ)@H¨$‚Œ²„ñAA‘„9ˆH¢‚¤h%\DàAâHFÑAáM’H ¤l6ohAHA"ð4Œ<$ˆc’ˆk"JxE„H`8C´˜(¡HŽB`HBq‚Ù"8)-%")è&h„G!D"‚ÑĘ-!Šw¡Hµˆ¢Bë"pA"Ä‘ ¥(5QHZ‘¨¯¯Kâbø(…*òL‚H2dƒ¸%¨(„ð(L†ÁT‘-,˜…2ˆœ‘ÃジFhBcHù¦Ä+I$ÌT,OˆW!ED*T!.„RgB2Ae1GRK‘DËhD‹CqH¼ÂZŽh,¡H£7ž!"!($ƒ(B@!ˆ!€!0A@,ˆ‚(F%D@D@DOê A$ˆ!”†F„!CÄ‚@B@)!FH'"  B@‚#‚D$)€D :å-DLò:&”JAA44¯HX$í†aM†k2]EúG˜Er"ØÅòB(×ÒO¹zfß–âãtŽIxˆÛ2ÔÞ‚vŠñB4(-†‡LͦŒñ,ˆ–‰ƒÖŒ¸3x\øˆÍ/±yéõqòœMÅhEODrTÍ=$GÄR·Ã‡‚ÇĉøjVøO”Ë•„¸HXŠ‹_Î/‚Zˆ¡Á!·‚)ñb(‘öƒÃJèGm(Åäˆõ"Hà†A.¢w"ÂNž¥äd8+%4òŒmC'ÁŠÔ‘D-L<òF(g$¯Èb$¦Z#æþ¢‚ Aø„!èa²ìDÄ1NdNN$ŠsH$L!õÄj=ã„oÔ”†6r’8"/Èö$/H¯*ޤ"ކ®¢©*ú‘K¤Œ'B›‰®ÆŽB«ÈÉê(È8•4„/L¸„Ò…;Ã;††T‚&Hx!DÎ>DÀRIHÃEMX(3K((/(3Ü—#ŸHôƒDÀIØHáGè‚´G¨5Ìø/4ÿæò.ZïâôJ—…­¿òô:®¿Çúi½í¶bø6†_òþÎ=ÏÚúÍßÇñL<ÏÆò-MÿÙóÿßÅú¬ÏØt˜rÓøŠûÏÓþœžÿåñîoïyó‡†/añ"ßåóO®ïñu;za˜(MM¯ªùÿä󞯳ý*’?¥ñŠ»ÏÒßüù_ß_åó”äSõÕ<ïíÿÍÿoõåLÿFöEMßjùf]ÏÄ÷Ì~ÏÖü8XŸ…ñÚ:ÏÆûDçÕñò~)הߓö©¿ßîúþ.ÿî÷¦ïï¹üšŠ_,ùªOo¸÷¿/gñË/ió‚¶o{üÏ´ß­ûŠ÷ïi9~“öKmÏèù–ÿgù×6ïñÿ˯¡ñÓB¯óõöïÁûyŸíó–6oaû¦WÿÍóY~¿±ßbý>HÍÍiŸØý~ÚŸÇýÜx¯åÿ^š¯…ýØX×ýôOÁJò>oï÷ö/ÿ´õY¯1ö^*ïâÿŽ{ÿëûÿ.ojû†2êû·êÿîùî?ïÿþ6LÏÄödŒïæû¦Þ¯ûÿ¿Ï¿çúŽÓ¯±ýÛËÿïù¾ïùÿοÿçñ¦¶o)û–¾ïùýïßÿïû믯‘tiøe,¿æòžß¯óüÿ¿åóžÓ¯¹ýÛ÷¯ÿû÷œýÿlû_oj³”ó–¾OÑýí\ßËÿÿoÕölM_Öö|-Oýý~ÌïCÿ^nï-ýZÊ‹ÑÏçôþÕƒ×â÷?d?cñ^Q=B¿¡ôs7ÿW÷ïÞÿxûæ¦o+û´¶/:ÿ´ç¯»ÿö–îøCEßÒòa$Þþçöïºþºïï/ûÛÛ¿œüšÃ¯éøÿÛÿ/÷4ß¡û´Okû”õOúÿ¼šïùýÌß•ö(i—ÆßÞõÅ}¯›ÿ<ÕïÉùÝI¿•ýÁ¯åùûSï¿÷Ž,ÏÃû¤„OKó„÷ï³®ÿÿ\Âñ]m‡ÆßÖôé\ßÍ÷ûþÏcéí½Þå‰ýHÂ/ý¾Voª'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsפŽ2A¬ôÁðáž#qaŒxsœ'CȯC’Ä£>|6¡E?ô8E?ô8E/öaoôq_8•8O8•8_¬ñA8_,ñaî†î„ør„7…~Å/ô8Å/ô8Å/öáoö˜qO8·ˆó„s‰óÅ:„óÅ2†ñá†nñaˆ?GøsˆWü2ÁRüÁRüáÍáoþˆcO8÷ˆ"O8·ˆòÅ:ŒòÅ2Žjqaø¡†ø2„?§ø"„/#ü*„+Á¯B¸ž®o!ÞgÂB8CäR!ÄR0Q„A‘„¢A(Á#á85A$8SäB1A*8A*8A†4(¤"„ÊÁ+!ŽS(ŽA$‚$Š2E¦4Aª8A.‚ôaˆ-A‹‚-A*Ú„Ú¸â("ˆ"˜"ŠfJð¡‘ãÈHL¢A!A°‚Æ?82H"À%,bEà„Á!ƒ$2H†dÞ$!BA!AM2èL‘+!A`œC®$BéH2Z‰AÁ‚‘’äSª!)"ÉGŒ'RÆ fE²äBÑ(h(ˆø3" ‰JâaB!fä!¸Aš" bDLCŠd…"Hƒ*vAô¢HB,C2TC¨ãÀ€h’8FêABI2+JŒP(Ž(QˆHO1"ˆ*áX”‰ìF¢ÄKà h„ñµ3Í…ÂD#a!Ì /ÑJI$Œr4cBŒoC©!R,AhBðˆß"!ÒBM2Î#ã:!„ÓÆ„fáˆa”&”H#a¡"MZ°L"éA‚”BË(N"BÜ"ñD(ƒ4´ƒ‹A&¤Á¿b ‚‰D¢A;B…Ñ, B¨B/HÁH„H"A‚HG"„Šˆ˜D„R°ˆ$Å!#'èB´"¡H…¢H‰ÄˆD)ŒØBÄ("H$B€aA( H©OÔÁ7¼ìl±Ht"A1^tLq‚¸$Œq$˜N"'‚&\H°RD!&2XƒA2Øð…%̪ÑDÅM†(ß$Ò‚½¡t4áäâ1HV"ÁëD'ƒMHì!èA‚¼ó†HK+‰ÄDK!“7`Άøïz$Ö$€è"Rˆ‚šBPHH&¤H6HRH‚(ÁLˆ "`(ÐÉF'Â,hD‚ È" („ D€ˆPHIô($p!ˆ1!ˆ Xˆ8B^³A$Á$"p$ˆÊA‰8‚ˆ)#h†¢Aà”ˆ(Í$‚0@”ˆÀ…‚t‚&!BˆL"ˆ‚ƒ4‚¨!B‚`(Ê1,‚$H ß$Ô!D(”RFa‚¯ $BHD©\A&!È‚.IB'܈Bê4â•rc”ªù#tHBW„Ž!¦)ÈD\rˆ‘H,“‚äx2K(IñA$,83+/R‚BD<„5ÒJq$‚ô˜‚À.©SDRC°HAŽ(‚BC!xDQF À‰B$ŒF 'B0"8DH•DB"ˆ€8Dˆ+%ˆ8DGH(Fâ(ƒ!"$#¤@¨H a#ϽRHÐ!¥™Ì!,,’‚)B‘â@3A"A(à”(ˆ‘"HâÈ"")¨$d‰$ÄA¨P8Eè†pâBÈ‚-$Ä2Ž#&A¬I=ˆHl⌘€ñ„þá Ä$@(Œ#¤I‚¨‡RŒÁ"‹$D,‚Ò´,hA`ØCá¤B.‚2D&Hx!¥!A`¨!fD#$ÈB8ˆ,jA „2bL8H"-d&J‹…òwK$€BP‚"D¡p¢ˆ*8„Ih&‰ŒB„(#&D ,‚D”(C€ba…ˆHŒb!D"DŒ (É‚AÁ$ƒ„ÂÁS˜ BCR(Àd‰‚Kˆ+‚ЄHh!VIøA(ÄÓâ,ˆÁDŒ”,J¤BEX‘¤aD&dˆ1ODR!˜¢HMš$„B4‹@hDA#!A%ˆD˜ˆ‡tÀ$pH`B@ìˆ3‚(DN(‘ "BC2D¢ˆ.$HÄ„Œ ã¡"…Ä(#ˆ#ˆB.Á""£¨"„%ÈXŒÈH "À(C("è"¨&à†ƒÖ(áB"´(h„ˆJ¢6SE¨RÌdŠÒ⑆Iب¦`b6Â"48 Q…!!Ø"ä)A¯HAÂ2G4$Oƒ¶4&ƒ‘C.-D°ŠD&HhHBT"†$KH"RFŒTJ*¢A!B/ýFš&°+/EÀ‚d%D‚¼ˆA(Fˆ„(„%¤… Ñ‚)ÅLh#¤$Q0)sš&'ÁHBNXEimD>HI1"ADl(Q$À$‰hAX$`DBìB"$ÔT<”#…q"‚Bt‚B"È‚‚O!z‘ĈF„B!ÐB‘‘-L©‚Œ"¤!E¸‚áADø¤D†ÈF”„,ˆ‹!A±T‚“DXM!,ñ(-G!FF,¤˜‹“$È$)%"RŒ'!&x"¤#æAa„:´8„¡€2‚‹Ï(¤$F¢>‚"tLx4"RBB)A$ZB"8Š,%¤òa€ØH¡X!‰XBIÄ$E"ø„„GA G¾…LH„¡+!0BB€¨„BH]‚0@bBFAH!D!ÄJ@ˆ  €¨‚ˆ/ƒ b$!†DH$( @2B„AAH€HF¡(B `C‘(H‚ŠAȼ1lI6×ä(Ó’Ä¥a!¯ò‚CCÁ*CÉ‚%¡ZA.Œ„-„J™Œµ"‘X+ˆ‘&­‹XWhOAca?Åq•–ÑDl„6ä„éB­T=SÉá¹XñBRSä-òÔ4^Îáä²²±ƒ1AfÜ”ù"oCÑB±œr$«‘ƒñ3P$$ÁA¨‡J!ãR¡I`A¥¤A‰¡á‰Š„’HOˆ¢!ŠaLh&/"¡o"ôJ‚ô"„¯CŒ²ÓHRA(-¥òŠBŽ-C't/„qDóöšE(&$"¢‰œb‰Ü$ÆD`ˆBŒAb$DÎQó\"‰äb¡AÏ"‘D¬W–MA-R#Ø¢»–²‚9Âk›ÂDN&Hææx2ÒA|3–É£‘Å!Þ)!1‰s†(˜$†!dÓODdlì”ÔDtEq4´$x<¤‚‰‚ˆÌrM…r„<GICùD&|/†D¤NHKƒ/B‘„‰‘ALŸ(ßMóxo$³WøôZïVò;ÿ)ý3÷o!÷—’o!ñqý¯±öõOUñ8OÊÄdODøšoëõ’útóv¿:ñ˜Øñ|5ïyó–Ü_Óÿfwao)øeæ¿¡öOIõÉQOÆôEeODüÏF_îõÆ®}7·2¯.õÚš/!ñ~6ßyñÖÌOæþ2_Aó’’oçÿ_-oDò—E¯MqäÌ(I|Ï÷æ/ÌÚdçCô˜/è!±8÷œ’ÜâÕ³ó.6_¤ñKr=/òóX:o-õ3V?-ñ²o)û²–¿=ý†¾É»ÝíCô$ˆ,Ï&ý²^oãõ¯ÿ)sÞ³Så‘ù±6¿móßV/óõWž/aû’4/SñZÏm¿Iö¼Å_ÇôdM„öh×oŸõroõÿ—vï=ñS?µýóvï]÷ßto‡ååù¶Oéñ6WÿaùV»?©÷®’gÃGÆODö(—_ËñvOåûœrÏ(•O¤íj÷œvÇ=$¯WñjW¯±÷W/ñRS?aô{·owû‡2ïñ¢¶oiûŲÿ/ùýÞOÛÿ¤|çEÏÆô¤ÌoãþV–¿ñþvÿ¹ÿVš—õ›Ìowû·ïèó·žObû¶móö—Ïçù=]~¼UtlüeÍçûV×ÿ[õ¾~¿Ýÿš¿ôÛ[ÿýüvöÏeÿÞ~ù$¶K³OH÷¿×ÏçýwOçÿD‡ÆÏÆøtþ_qý¾VïO÷ܾkѯ)õšXÏ­ø6“Þóú~¿”÷S¿5ñR¿‡õ;_/5»Dþ²OBè+û†¢oiûï×ïËý¥Ì^,ÏFö(LOÂ÷H¬ï_sýôÞÙüÚ“üøÓ/âü_»ÿdþ–2OKù6¶oqûž6ßOù6Ý_Ë÷-›f‡Òö÷¼¿÷½TïmùÙ¿-µÈôúÓ?†ü~þÏ!û”4ojø´M¥_i÷¾“ÿçùæ>ïÅö,dGÆn<Ïõÿ½t¯Kõžž/…ýÚX«Y¯oùfÍ/'Cô:$MA£ÁaãÁaIè8÷MˆŽ2A¬ôÁðáž#qaŒxóŒx²äüº%O|šá>žNaÁ/BÉÁBab(ƒÃbH¢Bƒ£1( D`ˆDDPHH€‡A`A,dh(ŽAU(J¢PJ´|$4H~E‡„/”TˆJæÜA‚¢H$„ô‰dHËdÌôlhLô(f¤a&ŒJD´tô,çÀf¤„AJs"”¤'Â-DG"Ao#ô%&Ð!’*’2Ј"D2!€S!+$ˆ& 2B.„Aƒs(T„F‡¤B€1(B¸¦!a¨iH+B( a"H.]J¤RLB‰6Hȃ RZ"Q)!Q!5t,’ER$1E׆b”C"ÒBs6hK"!\ˆB•6Eµ(´dB$ÒÁL´DÒÉ´eÂLCWÂIB´‚˜"CcdMIÂVA4G‚„G$&QºH¨!„˺$ÃÂ#A$@Kx$(²±4ÔJ1$0,†ô$B.SÚBÐÂ"Ê$#Á$qBÆD!*ôˆ$AdA®1Ǩ‰rDÙ¨G¢GH&8H"D&d&8MIƒñ‰‰\„…t„ …4D€Âà(=´€H€! $ ¤„ˆH€ ‚‚BJˆI%ˆ‚(*€˜‚ˆw®  ¦ R‚DH€ìA„#,LB€ˆˆ "Hb (¨$(D(ˆ(€ˆ("(‰"ˆ‚‚ ÂksÔâ—'!ñR»Q¿#7c2-U6$o²4qGÿT/2²tÑ’º±$ò$ƒ~!Oâ:-A¤Á&µšaROF¢(®$În$D&Té(,ÌZÈ%…d+Aˆ.Åed‹Åò,AfƒR¤FÃ.ßÂâ‚ò-,Œþ8%…ö,¤(Áƒ1‡‚jò‡*À&yT\E¼b(õ$"°ò1#"ñ"DÃñ#$I"|(ö„bGÌA+Šr"üb$'FÌ:dƒåAò(ÅEBÄ$HÄF&òˆD‡(Ï‚DòAL,ñ(Xè´f´8"M„'AeôF‰OQøB‰`…KFÈD…ªH8‹L0dà„á¨21àb´$òB"E/Bø‚R‰r %¤#'B%,eÄ#dD¤„äRØ.<(ÉXX+D(Ç$(DAE¨2Š¥âM´5´,´1¼mô2aËÅM‰‹$/iÏûˆ&÷­?ö˜jòë.ÿOö;oÏæù$„GjgcÿVý,˜Hô½ýÏÕöLèÏÆöeÿÏßö~mOEýî,Sü[I„ýêLßËôÿMo÷ôežK‚GjOCõm×ÏF¼ŒöŸñï¶LöMaŸtÿÏi¿Åö^ø¯Ì¶ÜôXHÏ„}èü¼HWCò{7ïçõ;~o5ñ[¯¥÷kogûO³ïjó÷.Okò2_góV3Ïç÷?Oãÿ%ÏÆö,ìoÂÿo¿ßÏòýeïÛþOš—Ÿö¾ýÿfûm¾ßkó·¨oc»$ûõ4ßÏúm½ÏÒ÷h­Çöm-ÏÖüh¯_æýûnßûöúÿߤýÛZŸ¹öþëßæÿmúÏë÷ÿ¬oc»&ûç>ÿþÿÏö÷n­ÿÇöm,ßÖþm½ßöÿþlÏköüìÍØµ˜öüìÏf$ÞRó6ïW÷Z¿•ñ[¯ÕÁö~Ÿ¿$ÿ4¾o"û&oqóÿg÷6ã÷r-ŸFö$lOâöb¿ÿÎóù,ŸßÿÛ»—ŸŸþ<ÿÿ¶ûlÿoŠò²¶OBû$´OJòý¹OÓÿ¬mßGöemÖä”÷mÞŸ¬÷ýnߟþZÓŸ¨ôÙB_ÿ:ó_fÿmÿïÎò¶²OBû&ôïÏöÿ¿ÏöÿìmŸÇömmÖöi.Ïâÿè~ÏÏööôËÕŒtØø¸üχÿAVp2ÄA¯CÒ4vÁaÅá8wMè(ôÃ:A¬ñáž#qaŒxsŒx2äü:&O<NáãáìD/äÂ…4;Aƒ±2(K$Ƥ!Iâ…“&èQv(DÔA¤O‚ÔJô8T0JŒô˜4‰òç "@€‚€D@E‚€B‡‚"B\7>)$NAhÀA`*À$0`2(NA(È'( ¢IL(0H$h" (#Ä$‚ X 2C4"B`c±¦!|"¡<‚ƒòˆ‰$’clBu²tHሤ$†2)ˆäE˜4¨à<‚õ)4€„tkÈ(#É!%„%ˆ!hAˆŒ2‚ˆ$IØ)¡‡"*òA$„;¡+>ÂH)´6\2™0D@08*@¨ â‚$#T(C’"I€4("€DHˆ"H( R‚@(""…"i"BBô¼€F‚Ô$ab1"0ƒ*$ÈÉFƒäTÊ hˆ%á"È‚"’‰˜Ãi"ÁAB(<´(ÈR$ʈ0ˆ.„+HL1ƒ(#ˆ’Eˆà1ÊB$ƒD¢,‰áÌ;—ÈŠ‘%#AQ’f<‚*qd¦$$mb%Äh& ‰ˆ—„(ˆF¹ˆaH²Ò%„’*8XÛ†D"âDÄ)ÖH‰!(ò($”4 ÒLÂt„D""‚&4BN¤!+Ap˜tIñÊ$(Œ$„BÀ‰8IˆB!RHI$"‰’„P¡¤8@(‰‘†bÄ€ˆÂE"l C’B)!"„2Kˆ`Dˆ„CBƒ€è‚ Xà‚:S-(F5P(m$BMÈ:éB˜¢oÔ„Ò$6\’(ƒt¤„©(K!GŽH€ÑHÊdÉŒSB&tqب#ªA(t-LÏND;H,h…¡Ä´DDBK„'ˆLÖD‚´((äb(bbÆ•ˆKBC ‚E!ÆBÈ!‘„ HL‚D*Ä‚“e#A*€ä„LRL‚tRŒˆˆ h!(E ¢A„0H"(€$ƒ$ä³!‚d!‰FrR(˜„ŠòŒ¢‡BèB’A.LH@Ø„T‚8‚`J"H"Dႉ$A¡D'„H3µB1Í)‘$# X"D$6nb…B2(Hð, $A@A¡)« „`Ñ((À‰„„¬¢$M"CR%à¦È$E„XA*IDABq2rF8/„jN@‚¸!³„"‰¤$R DHè…3Åd$…¢-"V„((˜¤Ë”ˆB…j„À˜i…Øh)ˆ£$8¤AV‚R¤(E’AJÄHŠôHIH'D$¢‚%”ˆ<(ŒD!RM8 %,dŠJ X‹ƒ8Ãñ_nШa"b!'FbAD>Œ,¤‚I,¥(„È'CŒ!`-H.$-HÀA„Ð(åˆBáB…1ŽE‰qM"!¢D‡A‘E4X`ˆ„€Aô¢þS -HLÁ€‚`F!„È!‚‚ä…€¨Á!  0„Adƒ „‰HˆðOWƒ¤ "‚IŒ@ÂÂB ‚ˆ!ˆ „H„ $¨$&L˜ˆ „€ †$@1?H§‚\ѳE¹Å9JÚ¨†¢8CñD8¡—B“Ô‰aDàÄñC‚ø2„'ÃX-Ù”²‚QˆòÔ"b,ñ‹BJd„ŸBôH‘Ü”R³’Á;AøCËا†’±B²–±a5"^Ìh“N‘4¬t(‚I’(‘¨«ßWC]8N‡„ÂF¬:áQ¨Xˆ†ÈÅ/*‰¸„ׄbˆ(‘Bè$1TV8AXŒáLqk´*ˆ"TBL¼*Œ‘6œ" Ǥš"X„M(#áL¡A‹ŽÔZä"¨àBñÄ‹Á‰´H<‹X‚(O„–(dEe³D­A%JFÞ"Ä#%ò‚1KHQ’„8‰O„)'D‚D¸èRHQ˜˜©’Ä+a)ŠÕ$²U±„Ñ2GbŽDF("wX¤Ñ.ˆg"¥²HQ‹‰ôL(G‹$C¸C¢!K–\ÂfAd"N&ÄÄ…‚ïA„(ÁbŸ¹Gòzï$ó~¯añZ´ñt7O¡ñ‹Ñ>üÏ!÷…Šo!øcßê¡ÿD‰>ŸÂôlO”ø›ëô™èÏ%òT§Û©½Zñd5O©²ü!ßë1]8Ž’/Ö݇·÷”K—mŸæ´Ò|»ÿ¸F¯ûckA/ªôÈË^{çöÕKÏý#ÿ‹1}2K‰?âþY8]-OIuëdüC!MÄ¿;ñä/¬ÚDö.F‹Þ˜÷:tï2g-^3í?O5ñXZ÷¡¯sóR3ïö&WŸ­¡±O)û¢—«ýÿ)ûž±ËÝŸÃ4)!ÏÆýº^ŸÂõ»ÏšóÞ«TŸ‘ø¢7Þ3ÏŒõ#TŸ…»ú–OSñYè¿û—sÏ«ý2LŸÒôHiß”ýû^^/•û¯wß¹õb¿$ýû^ï=÷Ï8v÷[˜O!ú–>W¯ùT½_M÷œ“7CGÖlÍ—7ÏGç/Äú„rëY‹O…ékõœvOBóz/ö÷boµñR¿5õD¯÷ûD²ß¸rçü¢¦OHòÔ©Ç<Þü©d_ËwVñeDJü#åïxâõòM{èß5xÂóÈKhür¥Ovú—"_èø2¤k£o,òÌ?Fù+L_WþVInEŸVþväÿþ³EnôË»ýÃ?ŒõŠK¿žý:îÿõÿÜxÿ¯éCû6¶[9Ïýlœÿ÷ódüÿQôhL_ÖêÇû×JôînÏúÒ‹Yõú˜Oc!ÓÓúv¿¤Õ7ô['µ/'õ#O¿wúEúë¡ob©«K¸ÏÛûöÄŸÊü¡ÅŸòdeŸÂô!d_”ûæ7o^ñËâ½ÛÎÖûé¿ÓýK»Ï¤ÿ¼*OjÙBÛú¦#O~ø3Ì¿j÷AaÏÆöeMFå”þçWßJôŠªo$ýšK¯-ñ›ß¿fø*ûÿ…ÿÌ>oKɲoÿ”tßKýtŸÏáÕö-$ÇÖ_Æõ\ïÿKö¬Fë˜^Ú¯´ˆô˜†nͯ('Cô:$MA£Ñ6aÉøˆsß„é(ôÁ:M¬ÁîyxaŒxó¬'KNÁ¯KòTÁ#ùHácéüÈsׄŽ2A¬ôÁRðá–#qaŒxsìx2åü:%MÁ¥á>V<ŽsפŽ2EòÁ:Q¬Q!î9ƈ7Ç9x2”¯C’Æ£>L5ç-E/Sô(E/ô(E/‘ÖöaÏ8ö„sÏ(ò„sÍ"_¬óE(_,seüáÆnñaŒ?GøsŒ?Vü2ůRüÁ¯Rüñíáo‘þŽcO8÷Œ"O8÷Œ"_¬óÅ*ß-såþ©ÆjñaŒ/CøsŒ/Bü:ÅBüÁBøáÉúáË(O8·Œò„sË(_¬óÅ(O¬såìîqaìîña/ÇøsŒn̯Cü(Ä«ÁB¼žìï!þ)ñ°A’›$I2E&4A.„3äB9KÆÑô(-A.‚8EމAò(¡*Ò„2–à!’$ÁAbR„„8C’U–(!A)R(Cã„1&-.$*A%A&”ˆ-xA8N@˜Bl´b‚LA¦!‰bEfñD,‡FÔx…BèEƒÄH-(ôí0‚‰DÄA(ùD€AAkRHAƒ(„2(/VÈpBHA&‚¡„(ÉQ(Cb„"@ÄrE!b!!MB‰JC"Bè!ŒB¢CÐHÁB8$<2b"CQÆP(„'ƒqTt"4‚+!E¤QPH„Ób‚à¡â#‘$]'¤ q!sTJÜBqBØB¢Q)IÌ$¡iVHð¤T/‚…ÑA"ÌbD?†¤!/‘2(àEÒ²(²b’CäôBQ„KŒ4(Cý[`„0Q Œ‚1¬æB$‚THH&&„Aˆˆ(A(A(I$„$&„48$€d"A(A0¤B`D@-( ‚uH„Š.¬£$AˆD€$R€d(D‚L"E@‘„‚ˆ¦f„(…´ÑH2`‹¤# ÂA’@(L"*ßU3DÄBBLÁ!,±*‘‚"-”Óˆ˜Vø "N!(DÂx+Á"F²‚uB(R(z8"",¡²¬Öd%ƒh–C.ˆk%+')„…t‚È‚°2Dâ&›A8å¡¢(`"3)r´‚t‚$!£»ãÚ¯r¢²6òcçoŠ÷¯èß/ú³".m¿Ò¶dò3:>g“ögºß.x’øA›´Ÿfú¶(¯9þ)ìËrªª£Öÿ®{O’þÕŠ#û¨U¯öe¨/Šãûö¢Ë$qotšü’Ë›4ÿçò”žÙ/òÿqý"o)ùaÝÏ‘×T÷•T¯)ñäM?VöEÅ‹ÿõÒ¾OEó\T¯-õÚÚZõ~vÏí;ì-g¯"ó/+Ç¥Ÿ¥Ô¾ñ+'~"ß·ö¼ì›¾O*û&">7?.ÿ*»í¡ïuÿd)•øl­l?Ñ–8ÏÈúׂŸµÖ¦qª|ÿúýH_Óõè:)ù¤‚okøëù‹˜Éú_×Óô(Œ‚òm÷Ûö:o/ƒû„"W­Ÿ5ÔŠi꿬óßyÏsôK˜O!»†ac¿4ÿ®oÈ÷½Ç/×ôDH^mßtýó\O§õBüO/·Îå$õRØþv¯Mö8”4¿GósF#öG?5ñZb?aöc¶_,»¿ûת®4M4k¶_Ýúáô®õ®çïòddŸRær÷n1Góqí/3þÅ?%ñ[ã/;þá¶[¶[:ÿïò¢¶o*ó÷²_Oòã߯ZïZ6_VæÒìòþe’OŸÝö¼é_„ùÑ¿ôºßŸGû_ºÏ‰ó¿š.´oc»Õóß–ÿ÷ù6_~­EömM_ÖîÆúW×ÏOõ¾^ÏÿÚ‹]¯©õØÜgsC×ór~÷Zy/1uJqYøRQ¯ó÷êï¼ÿ„†oK«M2Ï™øÿwËÿ©L‡òmLRô!lÿ¦seöw&¿7õžÙ·¤7…ýÿºý?vûfóoƒú¶/Iû¤²o*úßýûíZôU(_Vô,Muû–lsßôùó¯1=Ë·­Ÿü8ÝŸçû_ñÏèó¶”û²k:ß_ù,ßoÛöMl×F‡Ò_öõOüÏOöøVï-þ˜‹M‡,«Û>Žž'Cô:$MA§acÁaÅòˆsW¤Ž2A,ôÁðá–3qaŒxs̈'C-Á¯CÒ<>–Œ8÷MˆŽ2EòÁ:A¬Aøáž#qaŒxóœ‚'KnÁ¯KòDÁ£é>žNaÅâü:L-Ä?Qô8D?ô8D/¶öAÏ!÷…SÍ2O8•<_¬ñE9Ï,ñEîÄnñA/GxSýrÅ/Ñô:Å/1ô:Å/öáo‘ôžsO8õŒ2O8Õ,óÅ_¤óÅ_æñáÆnñAŒ¿GøSŒWüÅSüÁSüáÏþáÏ÷„sË8O8·ŒóÇ:_ŒóÇ:_Îñ£ÆêñaŒ/Ãøs>Œ¯cü(„«ÁBøâÉúãd BI1HI3D.BL!E$uAüA…´D´kÁ#ñ„R!I5AI1AI3O.³Ä”“ņuAîTÈAìòA¬úÁ'O8Eø„Q„O(ñA(O(3E®äj8A.„„ÆÈABÈA‹¢”¨¸â(‘(‚(‚Œ¢(EhJ„®aÃ…¤A™™¤!B(M€"ÙøD1aTFQ$fEhBá)T!+)™R‚YˆfiC£H%d’F$bHvbA«(Ñ1èÒ$ÔAIÁ#M(ñ$D”Ì$BjA4˜'B€<Èrh‹‹„ÄAŒ‚3F‚´¡Q„ZRpHT„"„èBÁB !'‰Ð„B²C$*!Ì(`Dˆ.4HD´J˜Â㆔M.H°$H„‘dX$ƒ‚ˆ„ÙÒ‘9ü¬Iä1B‹T-¬…¡$IÁ"Œa"EÄ8‹$À(å!ÁJ#rÈ(M¢ IUI*´TÄ"RH‚ò‚Ð$)x8Mq‰b!M„8*Ô‚q$Áä‚M($ÑHâ´BA8RŒVH¯òBQB`A!P6”,$ÉIbA,Œ,D@¬%3µˆ‰¢A•d!&¬Ihá&ˆ#Q‚8 (Ì"‘""ƒäFCDHaAN¦¡ŒAÌBH(àT2%$P†KQ$'"ÇO!RXŽEf!g‚2¤Ì˜$D"cBØ1"‡$‘ãl!S„i"OŘ.XGâ>HEH8HzB+)2(qÅT"2+ÒŒÑ4Á|ŒWÁB‡T„„¦!ž%4B/¤QM(ßVGaK@ƒ4¬!(€„`X‡A„8 "(ÃaBA@Á°(.$ˆ'C@ ƒ„1(„"( 'CM‚…‡„$ƒ„Ø¡9"ˆBL"'@MA€B(†€¤°AÁ$$ ŒÒ”ˆ@D†‚D†À$!@q(1HAˆŽ`bJd+%Bhˆ"BL¢A`¿[Mò"‹aEÈ©ÑFÒi¶„á2‚Ž,)ñ†aJñéÌL.ˆRHfä‚ašˆÈ!bŸ!‚õˆbÎ"8°ÂQ†ŽS†ánu!4E3î"ô"DVxrì$ˆÄáhÖ’Œ)S$;&HΆ„©„+4k!,<G+È)‘j–ÒR8¬A²'$‘AˆS"’D‰1Ê8 („(1D&±ˆ‘Jˆ‰&1¢‰TB(Ôa‹BGB¤HB$KB!°‚”‚KA%²$a&(b„°:xd(ÁƒDòz‡@"7D,‘Aðb!ˆA„H’‚B‹‚,”¡KA…1Dƒr„ÁhCô¸ÂN."ð‚Á"˜"!Ä”$/›E(Qh!Þ!AŽcHá$<ä”,+ˆDbB†ƒ,§AJB#èƒÄBޤ)!d)N¨)á6Ô„‚± 4FU‚G(L‘$•bHrXAD 1L†¸D˜À$#Ì!K$hÍIR)ICøA%„Iâ’Á&ñDH¤‰Á)GˆöA86A²&X”ðThp(,2!V„™XA‚¡"o¿ "“”Á(°‚AT0(‰”$ AD"X(@$QH*ˆ’‡²d‚FhB4q°HA$©‚¦!Œƒ”$„ALBÈBBbB2Ýp$‘)ÁHDF‘LK1AAÑ9AÅ(€‚4‚&‘œ•HŒÁ"IôE˜ ¢)(-(„Á5fxi”IMD‘(/eˆRºA4iÏ$8I£(¦!_„xAÂTŒF˜dh!/B ÁId(JQ($Ï ‚(L4,!Bu((?‚–¢IVH(ŠC„0H"$Cr‚4DA…B(&>"It „$Áa„@(!$B1(B^ˆ$à$ÄZ„*±AÁRƒá‘ÔAÂ"P"&2(•b6\àBh`‘ÀH‚ƒˆ$é‚e"ÎDf”HFÜR¤B/TH)DÁRFh8H‚„AŠFHdB BœB"HX?ö B($ÅBÔ£Xˆf$%„䆑$A‚Š,1„"‹ÂˆÀ̰JD ‚Œ"Hx†²ƒöBB$(âq(”IÒ(Á1BCDb¥À¥“V‚‰ÔBT2l-m*…I5@i(FD…(A”B€‘( !ÉòA€’$…ˆ1(€‘˜@ŒÈ2Jq(KM"JS!b¤" H#‹0È+!𺙅ÒÖ“!F2ˆ!C$E’ˆhG¤•Ð!r,QŠ!DåBAñ8AP„†¢DÁNQ‚‘!€èbô˜X”©¡’D ˆ”()KQ‚†èA!(aŽqc@€„‚HRc! „ˆHHÈ0‚†($@(˜‚€!Š ‚$ „ˆH€JMBƒ"D¤‚@HH 4øÆ $!%ˆCÅ"B„…H@A(("€9M„>A'“¥S!/‘”"+A;A«AK!a0HŒ(äxBá”ñ(!‡SAC±Î(gOVŒ`„Ý8"qH|)´H8(DhENTƒÒ"Ñ:ñâm/¥ž^S…øDF’8$SDad'…ˆ(%QB‡A)”Èà²CTˆcåGA|ȧ…èaI#"b"GÈ#åÔ„²2„8“„“1…#”.Á2.TDˆH‰"õÂ!F!d”„b({K&²tH¨AF†¥”B‘ð"”‹"M!‰’BHñtÔh%†"!,aã>‹ST¥ÈrI,SOˆ²„&ˆqDRÁ?ç!)&²A¡‰äÜHØ‚­ƒÈËŽ1‹ŽIt„ª()#t•4‘FHlÄ‚±"yx(L˜ˆ¡Šò„cˆ‚%¸„㉱AqÔ¨H&dBB/’x"¨ƒB¤Á+‹#¡ÁÛo$Ÿ#÷V:oµñ¿¡ôZ:ïöò:_©ý)öo(·²áVörmrO´ñ:Ÿjô:d_x³ýº\šþ]8ÛêñˆÁ?¥ñy<ç)˜ü8õï!õ†‚×Íiï±÷ŸJ§ínO¯×òEȯñèW/›'ÛR/¨ôØÑ?¥÷dk]/íÓÿ3_!³–ùaçµó$-Jõ¸6Gþ?Tò%ÅŸ¹óö/Ïû46ëB£øÈˆrC÷¾õ“ÛcÕ³ó>?ï”á$Õ3ñ:¯µóÞX¿Óô[+¹MgS;D}2ò^Z¿ÃT™!_4ý©^ñõºoËóÍ?Öˆù¸,ߌòÅkïóôR˜ºÄãCñQãïúœx_;ü:E„”hßöý¨]/vá¥þ„fÿ©Ô3õZʯîµÃ÷Õag÷¥¸úÔ/Cõ›Oçûôfßùr-G†.mßrùã4o„áçþ„tËY+1o¥éKõ¾$Þg4¯Wñz_?!÷V/µñZ[¿côr¿oVúŽ"_Æù¢&k"K$Ggô)t_bþ^!OFô!åOÂÿE«¿nñãG/¾O8Áõ‚ËŸÆúOªï¸ò­Œ/cÚD¾ÅòÏ‚?wéRôfïÿ…ömMÖüh÷ߤü¡DŸÚöÊ©ýÂ;L¿8ä~ü#ä_%ÿÔrù2¶Ocû‡r{ûßöûl/Oöû7DßÖöe~¼ßsÿ¾vïË÷ʪMÊ«I¯õú¸O2--o÷ñ[bÿ‘uSñX¿…õ1U¿5úDú‰{4Öbó3OQòdU?Ãô9M?”òdERô!D^¡÷îwOŸ¼þÛ-¿¬ñãÅòük´ßµÿž2oKé"û¢oJòýŸ/òýº5„vmíÖôh-…ÿïvÿkõÛ“o4ü‹Z7­?8ýr…bÿ]ûïÈó¶–,û²ÏI÷¿÷o×úæM¿Çö-$ÖòenO÷ÿ½T¯K¶ÞøVÚ,µšõš–/÷þܺp2ÄA¯CÒ46üˆsW„Ž"IñÁ(IñÁî9ƈ7Ç'CNÁ¯BòVÁ!Náãáìì9T=E/Sô(E/ô(E/ÖöaÏ8ö„sÏ(ò„sÉòÅ:_„òÅ2WÆŸnqaüáÆør„?çøbÅ/Sü*Å/‘ü*Å/±ßþãï8ö†sÏ(ò„sÏ(òÅ:_¬òÇ2Wî?kqaü¡Æø3„?Çø)ůSý(ůý(…/‘ßúáÏ8ò„sÏ(ò„sÏ(òÅ:_¬òÅ:WîïqaüáÆørŒ?×øb̯Cü*īѯB¼žîëá¯^H±A´A’$SdBäB8A.†taÜô(-A.4mA¸mÁ+!O(¥!KH;%C¸A²„2E¦4I®„äB8AÆÉAbÉA.´MA¨m+!O8ñ(G…r„òA(K(Q¦4®†1.„·„ÆØô(„-A‰Ø”ˆ-Á£á(è(tHh(Fè(rDhjFèè:舔fh4*TH",$"Q…CÏ(SÑ"$TH²HaCB‰ATO¶G!ˆIÁ(ab“QA„pht¸dÔƒA8'˜BsHƒB†Ñ4â‚U4BE+@‘F˜‚%¸HÔÑânbF¬,ÄL;"#bAE±TrˆèR!hD…a†JÒAa„/Ô‚Ñ<Ä!0”D«b”Ø„F$1aǤ\ÁЂQ‹Vb…ä"BrÈD)Ñ(„$$H¬HäR:„‡a($@BÜ!ÃŒ7‚¤ fÓ!¤OQB¨BU®"P$\H®‡F3…hAD(6tB!F…Â)BGáá2‡$|â„ ²$t˜T„(„Ĭ2NLƒ¨ÂX‚ŒË`hU¨H,Á(’&,H¹&Q((…A$„Іq"!Y)UÂ"A’ÄÌAh#D(2D‹ƒD"bA)è„ÑÂ$,2F8iBbC±(¤„CHˆä$ÒÑ<í,ÑÁÒ„!,R(“ñk$Iø2”%Ú*QAÅd"1(M2<"¸’Ñ)u¨"3XxS’„K!K-…‘b‡RŒ†DlC™¢QÚ¡!Òr%8D##‚ô$LŒt86ÌA.HŠâ‡¡(Šdˆ‹T‰jñHBoþ#„,1"áŠ.P*LB1hÀ,`ADA(aD AN(ID4B t*Œ$ÄG„0"€ D„TÈI12`…èB."(#G/!¨ÀÉ!h(,DDbBB$RHˆ)4ˆŒâz‚@hI2@A ¤„œXFJh(DˆÁD$`!°nF5E€qX8Q2š¼´!¸$XBEñ"I¸2âÁT´!b,Ûˆñ‚N‹HÊb8Ç2øa2(I!bkƒ&˜D(„ºFØ$±¡dªB+.œ®=¸da+¢)\È0*À!B38.BbÆržhŒ¤¦äa‰$’EŠ4(r„¼ÒH†Ä"L9‚)U,bAŒaÂè„H—(!b‡*‚N(ÄŒ*H¸CŒah)2ˆQ#9L*D±Ã"Å‚ƒEb…LCqD€”‡)‘Í+K‚)‚A9ª„.Є4!d*‚Bt˜¢È3‚Ü„1"’¨Ðƒ6Õ-$¨Bb'L…3$æT!žH)²Íxa2'BІ2B†!f(ˆÑ¥šB‡()ˆÚ¤6l@4I„B1(ÜQ"Ž&‚LEÈDˆEY‚Ä„L‘B˜$1H†¨1ä$EDD¡JØ„BdHÐHâ‚)È"E‚ƒÁ#äB)I†a‚ƒ‚h‘"Lbˆ‰±ƒâá‚!D(¸ØÅ$R¡‡!@T¨D/H •$‚4.’E¬ˆD($LÁ$À„hDI"0$Œ18$€"!8@#„I!€DBŽ8Àf3 KBÁ„ƒøT…ø„°„4HQƒ&rD$Ä‚ÑDÔH‚’&FDDXB!,1LI˜!"FxHäNÁ¨'B(‰ô„!2BŠ$ LHHª)ÁÈ¡Ç!ˆ2KŒ4˜ˆƒ¢BQ@ÑAD²Ä"P„("!®IC”(ˆ§A A<¸ƒ0˜6$àÂ@@¡ˆÈ¡LŒ"¡"#ˆ°(!0"ðH„$ˆ\>"$N4ZbÒ‰‚(R*øˆ¯†•EX„Œ(ñ&(¿)òHÈá&Câ"ã$„!X(0&ÏBÙ’ø,NgAB‰1HCÒ†øÔÞ`$ÉS¡ u$8eN8”9ÄAŠ'HÏZø–Ñ+GˆTŠÔ^D.+ÎŽ$”ŠúQ„ë$q&¤HÔE’(=D-v(üBO‚D¡O(q)Z´aRÂJÓA‚¢ƒM,ÙšË}˜,¢SÒÆ2d¢¡ƒ|Øè‚äÕ63=’D­hƒ±"%ñ:‡±*û4$GC:£‡…h¤_ErJØÒ„{ÁÑ„Â4ß‚“H)Õ‚ñ+x„+"ErhA 3‡1Í‹1f´Bb‚E=LI‚ù4¨Mȹº+ KÍ6(OIdIG’DRˆFæR˜ð,!Kƒ‹ÆMˆc4+Õ:âœOãó7{WD…úK»Û5Obèñ÷:ñoó$¨>2?ÝÒö<Ù>ò‘ŸöEÖú·Ÿ8ÿ¥fo^±xÑ9òR¯òy(ž3ß(ÿ6ÝïJ÷%8Eöwim\Ÿ’wdúOÒô=MFú‡®¾÷§ÖÇG9Ï)ýK!džß9ò´Ãíñí4ƒâhûgñmh_’äèô_èr1ñ$¬¿«q¥úìòm‹WÞb,ÜŠòTt5ÓÜ÷<8¯ârEúAI…ø"6Ÿçóõ÷ÏÛþå”k3/kû´¤ßßÿ¾¤¯±úxûÿÑö-)ý)ß^ÿŸÏßÛÿ<8áóTŸ•åñ£»ÏnùýOËbŸÄò¶´/#ãQó}tïÑó;>~wïAö-)›"ÏÖýŽzÛs_ƒú>ϽñAX‘ù»:ÿóåvßÂõ}Œk“'oOSñyì­…¿hõ˜›¯“ÒXò-,Íï{ÒÌõtÔïîöÌZ…õXد/÷Ü~Ï[fòaC.cstKòAk<·súǨ¯*ê®»¢ú†¤?/úÁªû߯˜ü¡Ù·_Vô!Í?˜ýë¡?,øÁzcctSòAÊŸ(ÿÈ?FxƒúAºc8"o$qm³BÕöѧNHŸÜÒüjmñÈg8þVˆ·<ÎJŸxü^¨;†/ùòé¾k¢k²'®ß~¸BØÔExYD_RØCù>¥/lôŒnÎæ/üÒRhôäâo?˜=fò}omI·$—¤vö&i;®ßÿ‚¦Ojû–„kº/*úíö/ü²æRFÖˆ–]^¤>è=ùlOýX¯µá4ñÈË/[üJ­ïüŠ‚6¶2òoòòAF¯‘ô#F_IJEæ’ÖAô]¸7}G­_>Ó§¼,á=ý3üï¸bý·"Okû"¤k£¯ûòÅ‚-Ùw9ÏB2%ÒRUOÃû‡VOíõìæï„ù’B­å,¾Bùÿ'p2Öô:&]A¥òag!]aÉñ…cWŒŽ2A_<Ó„ñÅðáž'ÆŒxsì‚x"ô(Á¯SÒ<>ÍaÉâ8uMø„2ðÁ:Q¬a‚îyta¸!xC¼1x2ôÁ¯SÒ|á¾ÒŽsׄO(ôÁ:A¬Á_î9WÆŒxSüˆ'Aü*$I<ègA×3ÔSüI¯RôA¯RôaíaoÔ:ö„["O8Õ(òÕ¤òŤOnqAènñA¨/GøS(oFüAïBüQ¯Büiéþ7Q¯(ö…[(ò¤S"_­ñA*Ï,qAëoqAùè„úr„?…øfÄ?þ.Ä/ü*Ä/žîQýŠb_¸õˆ"O8õˆ"_¬ñÁ+OnqÁïjqAíjñA‰/CøS¨/Bøø¯B¸ý*„/ž®o‘|ÑN3Q$—D,2U&6Q$3óôAmA-AÐä‚‘Â'ÃŽR&ÌBVD"Æ"Ãåb2X,:B˜côAmA8)„‘BŒ™Â'ŽRÄŽBfd(‡GŽ"Cåj"å(:B˜#ôA˜mA˜iĈiĘi8Žh("†ø„"A®&à˜ ð!B”#T8RÌ¡,4‹$A¨B„*´$Ñ„Ä$ŒàÆ#1A0Û‰1Áe8AA¸Aá"Æ(‘NC(œdBV¨(64ÃÍ,'[$<(Ķ.Å,¢Lä£LTD¦è2†/Db‰‰!8ˆ^$/U˜˜"1…ÉG`†¸$˜2„(L‚QŒL $!%ˆÁP$ÐH!â!Œ"1D,ŒCBˆ%1"IR¨d""cáA‚2HlX…(rDèB²BA„¸èTÒ!?Ÿ$ŒA”…B$rÄD&ÄÌ!È'„Cb‚Lø(ADT‚#¨!­%"‘$4I”9†4)AÀ8ÔfT(RŒFÌ(()6*Ñ…‰Ô‚Q„A,QH‰-ø„‹¾PB"ÃA|1(¤@‚R‚–Q(ÄAÈ!Ä…èFR„"Ãj%4ô(!˜„‡„,ar(I›…”¤ƒA¨JÌ"e‚(G$*EÈ a,Hš,E‹A(á‚1,©Q‚©(e2-¨ÔYÚHBø(”$>m$›±‹!$.ÜÑBbC)ñAés!y¬t!È,Ð(â¤èÕÂL“¤<"qèeÂĦ¤$Ñ„‚"Eø$¬4$¥¤+.ˆ‰òÕé KbABÃAAˆCAAT‚PˆHR"ƒ"HD„A(IB…H(."(`„Pˆ`ƒ A„ ÕQ6Ý‚P(4@‘ˆX@DT"„†0A€ DЄґØBˆA¨”§(Œ)"0@8ˆB2BÄA!`(„"ÁZAä¡,Q¾)$2n4…òh°CƒñH"R–¨G!Cñ#HÈh˜BDÁHŒòA.Kx4bc¼1B¦¶DòHŒ:$F8DžDø„R¶üˆF²‚±H²ÌQ‰Ã"IgHhaˆ„LœnLÒ„D¬x)â,t¨²Œäˆ„gH\=‘)É"Iq!Â%ŒòB&„"/AÈ(%“q¤¨-&A"›AE’(A.&’Lè‘$‡A„dAHaƒ†A$(CáTH@˜$"…$‘¢RC™H…óÙ<$ja²B$3f4“šÈ*RB‰T$ŠVXH°($Ág¨aIÑ!´IAò!„FrA¸H"ä™$b„p”âtHˆR„/–(”Q†b$ŠÑI#*èB‰ˆ“‚T/„X°$$D(4´à¬‚qÈ#½"á83ü¬(Y„$„JÔ!“¨Ä"LAMN.Œh""YÂL)Ñ(”4RA$ARƒ“",CÁ¨WD%ÑLÔ["O„4‰AÂ?ˆ‹DC2˜L‚$rA´(!Ô2DJBúIâ„)´‚aŠKߪ@$(”:@DÁ"Ž$˜„(„\’„¡"@“‚SH(c‚QÂPA0*&"9X"„"CaN‘ŒF4! ‚ÄHHÉ‚Ù"8d€ÅJ-%DÒh¨OB¹$$Ò„AèB™$ŒrÔ‚±"Ô(áAÂ!"$ ³2>‰LBcA&aÈ'¥(!N¬è±D"8Ãf̤ˆ>E`„FÈDD‹B(K,‚Ëd‰cŒ‚+Nˆ'?µ*Ôˆ8D€X¡@"¡!Cd‚G%ˆBLT()ä1&D(#aBQ¡!DBBB(’HäˆlEˆ! A8E°!HQKDNˆ(À²ÃÂbçµQ‚!‘4ˆÀІL¡†‘H.(H'ˆ/QA”1"LT„€QD"A'J"L1"A$èDQRpžÃd’MA(C!;dŒD8!Faƒ&#‡AHŸ3 B)Q&%X"'%öJ!A&¨L"’$D"LHÒD˜$›„D¡€HBtA²"Hr$¤!(%Œa’Ä,bAB"Ab$ˆ… 0&ˆ`AN$EdD×C‡DEÄE¨A„"<>é(!0PD,$&ÄB(Ér( Œ2BÌ¢$£!BU€aˆ(MBÀ"(",1DJ%A…ˆ`ÂDKZ„!ò48%ˆ%™!‚LDLˆ˜!(O´AR%“(A„#(1,¥AÃALYB!.Fd`BR„‘8[PÂ"MAMaA©ñ‚(ŵŒõ&ƒð¡*RN"ô(a!”©*†´²"è!vôAAψ2„DŒH( †¤„Bƒ)L¨„ÊA Xˆ‡ƒä„D„Nˆ"‡ *'A‚³$UD)RH ”‚‰(@ ,ø‰Õ„DBR ˆ(ŠX$Ž""HH†Œ„‚ÂÀ°D‚ ‹BMA@("#A") J1ˆ¨(AIh"@X‚€!((ä³OôBÁsÑ"4‹&X·BD’"†²4áV±ØèRêR™E±Dê1©ÄU%¨A…™‚!ÁB¢BâqLÔ„ñ"×¢‹„†Fôa„½œ¯ÁÂAIøØbOCÒò¬NŒ2EC½2"¶S1–?BÔAØA„Èï‡Â&¤ƒ!ƒAÚHv"¶M2BC1H%8¡G(#´Â’ŠBK"_‚˜Å‹$lÂh¦ø*HŒ—‚IF8FæF³±:âIäAÒRKBAI³*’H°ÁeÖ2GH‡„1-¸LáèK!„‹‚MòOòDØÌ&Vȯ¦äA$ØÉôàHHŽÅóÄ1%ø"X¢Q¯!\LI²Œ‚òK–$¨k2aO…ÓÌhdÄ&¥$'ÂA#Ò]+ˆHgȆæ˜Ò]DÆ,Lâ!rhr$¨5U4M(ɲdB±4Z/ ÈXŠAacªÂfDHq,HºHѤB¸dâV14°[Bݘ«‘ˆhïËocµHòn¿1±üR2çæ½£ï‚ö-i!ÿ§¸oJúçíÏŠþ§ïÏÎz"º(ü7EDø?ïCÆmŸîøý/Ò|ÁòÕïˆó¾ñ]ÔÏz—k!—ö,_¯õS4o¢ó$g/‘ôi¬¯ÊóšMÏÿe2g/‰òœÁ%òE6gНZý6ù¯bѧó„”Wþ$Eo±õ§jïêñÄOo×ôEíÿûóüLOJøeLÏáᩲҼZõ.,§žñ÷»|ï³ô,¢Í4Û¿4T(‰ùIœÿÌõ7a/çó´”OAò64ÿ÷ö8KwöeͤŒòmÿï›×þ÷4¦ž_ñS[‚¦týüóoÏó÷q¼OBékó2Vý,¾«{ß¹ý~iφÖö-û÷Do£ÿþ(爭Z¤}øþ¬J~Ÿ”ö#kç%?4ñCkÿrôB*_|º"øãˆ')EòF¤?üªÎ?¸üá7ODôeuáóÅŠ¿ÔþŠë×­—$?ܲõÉŠŸäú›(»…'(lòK(¿„ñ[S|æ3|sôAIÍ“üI®Ÿ,ñÃAo8þU’,ñÓA/8üeŠ»„O¨ò©ˆIø"–?,òç‚•ø(IÏ•ø_d_DôMåOæø_íohñöNïHÚ$øÂX,´‚Êñ“ÜcyRöfe}Z+'%¯–ÖëôB‡ß®ò¢´/kêHø†‡ûîŽÃ¿Ë~DøHLÒ–M/6úI޳üïÛ1ôÁŠ¿ŒøÃKÓtølû¯Š[Bgb>ãó]o1ô$]$_Ô”Ôœ÷Wª×î;/?|Ü4üÁ3ýÃã.ÇŸ$ûeů)ñ¦–+³KŽ6¿ù(ùÏùôcD_TâTöML/vÅäÊõÔ¦ŒøŠBÚô¦OÒü*~p2Áa§RÏtÁaç3VO8õA(O(¬R%,®æ8Ä„7‡‚'Áü:,MÁ§á'AÉóˆsÓt„ôÁ:EøÍ&øéž'Á„ÌxsÜÈx:äÜJòTÁ£á<^aÉóÈsׄŽ2M2,Ö$ñÁRðÁž#qeĈ7Lj%¤Æ¯A²<+ÅcÑä7ªLôQÏBôABô2AÉöA*ö„[(ò„W(òņòÌ”/nñA¨î„øz„?…ønÅ/ü.Å/ü*Å/ÞþE¯8ö„[(ò„S"_¬ñA*_,qAúñ„ŸnñA¨?GøSˆ?VüÁ¯RüɯRüñíáoüŠaO8õˆ"OzµˆòÅŒòÍŒò¥„jñAˆ/CøS™.„+Á¯BøÈB¸ž¬o¥ì #V„2L&4Dˆ#„8J„ØTˆIDˆäH˜Â#ñ‚Rè(tah(—ÇŽ"W„¦vQè(8CˆsôA8mA-A‰Ñ”˜-Á#ó‚S2ŽC“e(FŽ"Óäj2UŽ‚ÓIJ“ôAŠMA¨„ØĘ-#ã(!a(##8*Š2T¦ä˜ñ(Dƒ‚TAƒÁS+t"$ò‚”CH‡q"hdQ¤.DD‹h?‚è‚qÅ£.F!‘JÁ¦*X-!ŒáÎ$fÌ"+%C‡V±(T¿ýK2&t„(áˆ6dȵ¢QŒY 4„%2€”A)2XmIBah‹E 1JÒ$Rð$21bƒð(-I„Á!&BA‘JAµ7ÀEd‰ÀEBX†DVE¢!Å!TDŒr²$A–(`’Á)QD2H†„t2LÁ‰¬BMð‚„PÁ#ÄL"aÄS‰bD‘(2@jƒÿ› †ÔÁ’”dñH„!Cc"E1"Y"Ô(Ì‚Sh„2Pˆ5$Á8$,A¸Bø$(AHd‚P‚E`Hƒ‹2$(ŠAd‚ÔH‚CÔ„Â(!@$å4‚.ƒ‘%òàTƒÀÌÕ¡!(aA%DTS#‡4(Ý&¬RH§A„€‘M,8•#²¼¬Ä(Ãr6THÁO¤XHO…QŒAHè…QGƒ!câHÃ!…TÉ2<ÅÔ‚ÒÒ(BBÆhŒ‘’"‹& DPAÑÂ$á&b "áFD ‘'‚ Ä$!0FB„€ ƒ$€„€N"€dA2`„$Œ:È1 $`aÀAH)Q‘"DA¤H@H„Pb`$N\ˆd`Cp(‚f((€"¢(‚(#¡$#4'j„"†+R""†BDhaðÅöÀ6„Ò$±aqºAaAYTˆ9"1$&Â"-Tò((Ýh„G¡X2NB™e%¢BaB;8"†qÈÅŒRÈN%<”ÍX%(9Ñ4‘‡ƒœBAˆ,B,r4‰dÂD>HDKZ)´Ä(%èy2„" ƒI)’$@QX:A (RHNЂH"dC¤ Jö2ˆ0,”($…ƒ!“h À$)ÄJÂ(DÐ"²¢„R„‚˜M‘CGƒðA­H,qDQhÀ‚,¦A&ñB"E)ô„+$ )xâllîx8¨CaR…ÈcB&”H&Å‚b’%¡Ak(9¨A!C±‚‘„-A…âBÁ!Á(ƒñ¡BÉìaˆD¢…Í}!&áA%(1A%‚-$hÐa℘$„A¯BABm$.HYr8Ò$!44%¢”"1,"!J²¨A ñB‡" $Ka„)25&D‰2‚*H0&úÙEDAˆÀ& ÀÄ"C(2$)@(G!"K,4(F&D@DBˆ$˜-$I A0(‹B#(`U¡„&Ä7#ED4H(1„A"o!b/A3"E8$IbAH¤EŠQ)&V$&²Ñ&Á&‰<#ÁhƒH%¢8€R*˜"jDs¢C‚ÓHBŠ!‚d‚,Ê)hA&H8a_þI"B1…T!l(V”`’D +"HŒ8&…”ƒ¨"ABE$.ALÒŒ$A‰#Bˆ!cad3(H…(à$Á„(à&<¬„…PÄl$0(Qa‚™B2HpŠt„æ!qä!„Á(Adƒ$(gƒ„$‘%¤©‚ñ,Šºâ£B!!@ˆa‚.8)’ˆ+B¿ #4$5PN$1$"L‚H±$Q(Ä(ÀCäBa"‰A‰N‚#ƒÁ"D„.(! .D$4!A’„$*1#ÁˆhV4!À(ÇDŽBŽ$‰A®«“"MK)ñCH…¡AÀR…˜„gAbŒ"d„pB¸T%"e˜HŠBRD‚Á8d.ˆ…˜†’€ˆ‚`BE’DObQ„$Š”"‰$(-DrDoîJAšXÒB4ÀE$Ad"¥AH„(D…b‚L¡"Ä+bAò"XJYBd¢‚„A”,Ah„‡J*ÂDD"-8D#‚((R(ŒÄ§³%(&("DIƒA˜("E H( !dF$À$LF„ÂTÁŒ*$† ($ B¤"‹ˆBBB¨‰ñ.ÕBƒ(ÁF DÂ(HHD„@BB8HA ˆrˆ+HL( 0ØÂ(8B€ˆI„˜*„’†"¥d?%^è…CŠDÁH€Aò$R$°=²$A¢2(ƒ16°ñ1déÔAÑDt6$KføH(XŒ‹E±r¥´ÔUƒ+1‡Â(2V´„ƒrtffdN'A/‚ú((K¢ç‚+H2…ˆ„ÕBîÁµóBrLJ°ÒD±E2‰"ÖTÑñ$òq$nÂDAŒôD*‰bDƒT(FÚ‚¸hq¸1Æ-4TFHÐBbb*‚bÁLâdÑHaD…AIá®yB¸Tš‚-„/ø(˜A¯£…E‚Ž"¢š$ahxBŽqÓÞ’FiñA‡‘‰øI¢Âi…ÔE4$F¨§„bF(äÄb7ÄP$3x,ç!:¢bŠƒÂ&âqQ!^ä‡^[$N¤øZ´ÄˆÙˆˆ½(œG‚GªLñ$b6EH±äÀLóXHJ1J+£¤°,òD3$]d/vrzÕº’Mn)O—r$ñ)j]N¯A÷!,."Ovö-Doáõj)Oá“éÃtmñ?ÏñÕ’tnuhô;éôK!OFÓyóâO³ßJ÷…8,óUBí}ßAuT÷ÎÏ'úhÞk*ohÈ’¶ç‹ïíÈç_HöF!Ÿ‚ÒHò$n'é©ñú8/ýB‚Š´’õ’†oåø}êp2Æa§cMA£Ñ6–<Žsß„á(£_¬Ó„ñÁlñáž'AÆŒxSèÁx2Ñü2$MÁ£áþ!AÁŽsׄŽðÅ"A,Aôáž3qaœ7ÇÌx2ôÅ/BòÁ£Áák!Ma‰óˆsW„ŽðÁ:IñÁðåÆ#qa¬‚Ƥ/E¤Â/A’Ì!èã¡1ÕQüARôYRô2AÍaoÔ8÷„_2O8Õ(óÅ„òÇ„nñA(ŸnñA¨/GxSùzÄ/ô>Ä?‘õ:Ä?¶þQ¯(ö…[(ò„S"_îñA+O,qAûø„ò䄸v„?•újÄ/ýnÄ?ýjÄ?‘¾Nþѯ,ö„S,ò¤S(ö¥Z¬òÄR¼®”âjñAˆ/CøS¨/B¸ü*„+ѯB¸Ÿ®o“üŸŽF—E(SdBÓ%2K0O„-A‡‚DÈA&Ô|ø‚R„,$EbF,2L.&ÃÄ¢ã„9N„-A‰“B)Ä”)</(eCŽBFd(ƒä(2T¦6DŽ¢c„;J„Û”¸)„˜B.˜)8Žh(B†"á(ljà¨>*HÃ¥A41‰q$ A(A&2e#aD&X!6œ8)Da/„"ñ,i‚Ä#A…&Ç"È)À,x"ÈÄŠÂH#¸Á(Iab$(Ca!É$B(ÂH0R&h"ƒƒ1B‰òH¯B¡ª!Xƒ¨Á"AÀ$(Dƒä"ÁD.$]„.FHsÁhC‘"¡L¤5$²"Eœ!p(8!E2¤‡‡(FÊÁ"Å(a"C‘$$&&fF˜+#0pHÈ!Ÿq- :D)0)|„X$IA4ƒÄÁPÄp8!0K#Á‚A0N„!@ „‚A(AƒÂD%ÈA„D)‚AˆÒ¸A²‚A8„ßÓ H"$.„8!C`£HF „(i1$…ˆaBƒh‚#A.ƒbC(È(!PHF(#…ˆ$"ˆFL'ˆIŠŒ!$Lò²“AÔ’B'PH­R…dd,B„QL!/EÄ(BÈ.ŒAYL%#±8‹…*‘I"Á‰"t‘t"HD…T‚øDjœÄEÂ2&™HhC邱A8†)BX‚ƒƒaÂ~`‰@"ˆÈ!a‚@ŽADL‚!„B2˜A«! D(!D B"0‚F Ññ1*ˆ‚‚‚ˆ€@ñ­®·Å.S‡B,qAÈ2W„MahÁA‰Ò<:MÁ§ÃŽRBä(a„ŽrEèx;×KoòS(A/øM(?eË8wŒ(O(ÁáÇ!þ$„86„&ôÁ:D¬ÑºZ²DøA‰xSŒú“>N²W„(O(ÁaãÉáïAòA¨cqAhB¬CôÁÉúZ![„/”ˆ7Ũ/éóA±g„(O(ÁaÇ)þ$„:„"_쬱LúhI¸”ˆ#•¨ßKŠˆˆ‚ AAAÑÑ:®,1 ‰ðEATD È-‚‚€!pb$(2A$E‚%Œl(€‚" $ZÐ,(G(„AšC$ŽBð<â`B…Ø4Q¬a…ÃG/‚(Ò,™6,ȸ{ACaE‹(PˆQ-TÃRB¸üCˆ@•¤¡ÃO!¢!ŠÇ¾Xƒñ(F$H2=dÉùH1%¸¨#*´#s”"A#¢„*ÈA—(+$+i‰D48/ˆ…5­”‡Œ’M"&XB…&A#‚äA@HB±$UH!,²$BƒB„A"CÔ‚C’ABŒ’@8F:˜8*$$B EH!0xˆâ„Dø!Ô\8a1+$‚„‚b)AO8á(´D)È!ŽK!CD‹±‹L$G)¢‰&"¡R†ÄhafÁ$Œ¡BM"Šl$‚<'8"ƒS$'B‚Š!4’‰RIXK,¡ŽA,(EfLãCL8ÈD$aH„‚‰b)È8E¬$ÓŠUH.‰)aŠD¿D„bƒKMA†ˆA’y…„2!E &</)bB"(‚G„QÊ4C"HŠj¨#¢„ÿÅ(„ H„*²8B$(Eˆ"KH0CŠAˆ‚(ˆ€WF(B(6†¨!F€#ˆ(„A’ ƒh‰Mê£ÑBbA…hCaDJ˜ˆ"y¢¡B$žt("(Œ8#áAæH'ØQ!®HW‚A‚bAœ¨,2XSe&„"GR‰È%¢,‰"Bˆ"O¼$8ŠLHx$X$†ˆŠƒAbˆ’Ç €Ba BED"V „@E"P0B‚„HÅ‚ F„$à‚ÕHE…™"€tH$A‚a(”€*„¸8„"#+$ÀãXБBH”!D¹ˆb1j!OHQDL„pˆðD«QHÆE*"jjS„aH(CBhBd*A%a°Hd$…a*"‚M28ž&H„(„€”8§4FÄ„@H¼X„IdD ˆ¡…(H$DaÃA¨$1&TH`G„ˆDÃèBrBD4ED„0H(Û$)!Œ‚ÙF„(ƒ¤!nm³D­AÀ€A’!¤P!„ƒ’„ („*Dq(DˆÑ$‘!Bi ÙŠ!(GpAD(b$ƒhJB%D(‘H)8‰"òÎo…$‘$$‹$+!E”"Ãô-!LøEM(‡‚ð((†ô(S`,‰qB‚ˆ…¨!ÄM(ÍA€Dè8d**‚‰a(ð!„#"CQ˜&ø"I’ŽBÇ* „Htˆ7Q¨RHqD"$B¦8C(L¢…ˆ@.Áª (4E UˆÀ˜›Ä%„€È…#¡LND†&RAB‹‰˜b/r 4A 2A( (0‚*ÄA@( €Ø$AAˆ $h…(¤"‰$x H°I‘€ØD‘T"ˆ!H(0H†b8 ÁsÂHGq†ÈAh\´(‘ACÊ[¼Ž$OÏa"€˜¡^(Œô>‰MXHà2¨ÅG¢![8²ÁäˆE²dî†,6BOÉNA'„/„LthxDc:C±…³¤rÍ”9Iq(Ê¢‹†bj¨…#d„ψт™Dëy]DV¨‰‘¾MxKH”"C¸’(˜ÂŽU#iÊÇBÒÌBæ8±‘r¤2D–Hµk¡ŸDÂ"HMIËÁÍL\f†‹BGÄlñX-×*ŠQ$Ló‰‚3%!‘A‹Âmá¡HEBH؈q¨¢‡(R$J¢6ždÓ‚u"äšZ%¡1gBO«áAòÔ!GA6t4d‚•2ÁŸ„¸HbÄ™1HHÁ+”Ù&á‚È®hK"†$´¤Q„ÏD‘AŒø!(ÔIŠä‚òX©˜È+ä‰Õˆâjb!,a#GƒArÑdCÀ$D%ÄD)¤)õˆ-(½BOrôQ6_G™"O1ôq"_Eцò®Á¯‘_,OŠ{‚ôçáO8ü´ñŽó¨.Ïúö>MßÄøŽ.¯æ;ýqfž2Ï™üi(›7‰ñ¬÷-ùï3×Äò´¤_Õþ4y’´™dÍnKO×öa̯¬ñôwºþ;\™á¬ö̃½h߇ç«ò¨ƒï‘Ûrdü„ö}ýoRçóüÏ«ãâd‡Íˆç­ž.jº:7(©óœŠ«SÏAs¼1C-GO!ñ4[?´õ—ÅÞöMoÑD«—oAû÷×K¹>´¿÷þ$mOBò$(vþ®y/3ç£ú¼(_-ñQYˆ¾óùÓ÷y¸¦k:ó}õσûˆDß™ý4EÏBþlh_VüžwÏ“ö8øï©ñ™Z—”Nȯêò©bŸ¾âÑñy¸oAù–KsŸ×þ>˜¯»òÜŠïEø((Ï‚úŽ>$‚ûº:ŽZ˜/ëó´*›ArcòSeöI®"ðázEøÅJðá–'Áƈ7Ĉ#ÂÅ£Ña‰ôˆs‘ŽA¬ôÁðÁž#qAŒxCìz"„|*”Ä£‘èãÑè!×Sü2AïRôA¯Rô2YíaoQõŠcO8õˆ"O8Õ(òŤòŤnqAøá„úw„?…økÅ/þ.Å/‘ü(Å/ÜþÑ8ö„S(ò„W‹(_¬ñÁ(ß,qÁø¡„ŸjñAˆ?CøS˜?Rüá¯RøÁ¯RørÁí¡oÑüŠ#O}õˆ"O8õˆb_ªñÁ*_-qÁînñA,nñAŒ/GøSœ/FüȯBüȯB¼2œîoýæ!4E$Ä"SdbÄ‚3„8G„Ñ”-A„-A.„-Á'ÃŽSÌâ84A†rYä(2E®$¥ªó¤¢³ôa¨´(ÈA.˜Ä”-'AŽ&h8è(TAŽ"Sdj“á*‹óA˜-A„YN˜eᆙ†#ñ„‡‚G((†O(2¦6Ž'ヨIL$ÈJQA°$Ñ¡!Š!d‚sKTA!B…E²¦Ù²!ãÂu$2ƒ%äèaDAÌ!Ä"òl‚„W'X!‹$Ã-¨{"!.AiÂ%í1"Dx(¡E²HA"Ñ(qañ‹ ‘D#,N$Ij!(A„"\#B-%d„K€Õ(O„¡‚ ‚2‚j18(FôªŒ&4†(œ”ƒáBŠL‚‚QA”,PH„(¡F$шbì9C¨$AÁD )(". ‰ÃbÄ@ °QaŒBˆLÑ2„`‘D„!ÑáÂ$’‰‚1$A‹!$0H"B‰#ÈDHŒè⣠„d’©a&ÉÁ$…¢$K"…Q$.HPAƒrˆC”‚B© Œ-ŒC1¨,F8A…¤.ˆ! H!ŠrX‰Ž“‚àeBˆCŒ¤"DGzH2Aƒˆô…ó Ä1…Â%ìƒQÅ‚+*«"Í".ŒÒÄ£’(œB8DÀ…$EБYDˆPÁD‰˜CD9%ÅJ0¬C„ AÃx¤Â„ñÈa©20Ypšdƒ8&,O$jH‡AF(BŒ¤Œ $@‚aˆ2-J@f„Ac$.DÃ`‚ˆ!ÐHAVTˆ!„ÂHAJˆ@ˆ"´H €aˆ(„ M!¤ 1(L?‰2‰xH(A6Q‚0'H—BDG˜M !ä†#t&AÌPTDÆ(‘ƒRQ0H„XR‰rQ*‰A$AĈLÁ–M(‰Ø‚ˆa„„E¸ID!#¡(ßCQE Á*DAƒ€BH ”h‚`HNJ( …1T04H”Xˆ(…"B L"ˆƒ(@ˆAˆÈ–ãLEH@H†Á‚`HCXH‰AD*\X‚€H‚Ü1È4$€A8ˆŒ¤( ŒAqD±HdHBVâFDc(X‰´ ¤„hHX2‰‚D’ð)CŠ …’!„DI%x$H4HA„FH,’!"!.AI8$Dˆ*!&RD(ƒD(áˆ8!ŠQH")2DÅ$AŒ„ð8H7³•"!)I`H$LŒ4X`!àÁŽ”!*!µÈ&RA’ˆ „ÑH)2"„øƒ¨ˆŒáD¹êDBBd„†„!(Áˆ+/ˆŠò1r„"¬„Dˆ#!QO‘"LÀ‡KXE¢„KR†ˆ…²OÖHÄ(ð$M‡hŒ(àd!¢A&ØØKA(H-ˆ„($X(DZCEä¡($$($(•a"‚"4&aBAaX(N($ ¢!!ÐH“¢„…Hˆa“%€E&1 (*‚’b(+C¿Jd( C""ALÂ!€B„‚D’H ”…Z$°D…AFHÀR$‰$„„1!A+$ D$B,DÀ“ O‘QR1!(+…³„Ñ$Ñ$C¶rÊE2!Cò"„GA%i•'…‡¬ˆºèô„‡/A"ª1±L!¨‡‚AŒœâ-‡Eá¤A‹Ä*²褼!Ø!г!™‘˜!!Bê2‚+R‚ˆŽ(ƒ((²¢2©$Ê&ò˜$“ñ8‚‘R„R@8œBÄ(F<òI¯™ñ̇dŸæôØrÏ8ø)*ûOî÷Ä·¯þ."OÃò´´þ4eO‘ó½4ê÷dëGS‚úÊj¾æ{ús|Û–(ýœÓ¿úýTlátø¶IãèŒá*õóyïû¤]Oµú¤zÂþ8hÏ„úÖjcú4Â+äj̦ß-´Zý¼$Ï×:y-/Ïá±4s9øú(8Ÿƒq›q2ýš*ø„$/Bó›Ë’ÏÁó?kÏÔRÌ*ò%“oYòSOæÿÄlß,ôYš®fÊõÏOO“÷qìlùç4OAõuõODû¸,_ïUöH,ï‚ò)ɯ~öh5ÏÃÿþ~Ÿ©ùIIŽ˜/ïÛ%õECOYû}¼k³o!©ÃŸTò®ø¯3óìòoCä‚v(¸ìýN:OJ£/+vÈúˆØ„õÚ¿_"÷]ô$5rÝ4R%=½!¢cùº?θë#ù·?Hs“ù(#O’ø[l!ú"…"øÓr?™õÖý_$ü‘¿áüiÚ?FÿÆJŸÌØ"ØD8Ñî_z(ùTÁ;Eù(‰¯”þcä.÷©/øË‚=³;î;xï¡þa.k«)ñ£¢nö#ȯXö4ä$æBôvÔkˆo$á,Ì"oŒôBÂÎjÍò¯^Õáñ/8ròrø+>+¢û!Ÿë)+«o#ëcø*¤ÿÙòò8%Ÿ‚vmÉ!ORò¶_j·ÓöÓÑ“¨q™ø³áo’½Kü7õ¯®²†èCнäôáµ.­ÏXµQôe%’R˜‚úïvoò¥ó/]#¬ùYCo_»£øsï.ó†++ƒ/êÿ}z¯Ûþ"vK#O†ö$dL÷ÜŒ¯èá$l-©üBZÞÂFòÖÄŸ='B>E#Ó4aãÃa*á8÷aŽ2"_¬3$¬îxR|aˆxsìx2Ô|:Ô<ácñaÉòˆsÕè(ôÁ:A®Á8,=F*xSŒx2ÔX>:Oê>–(Žs׌Ž2K¬’$¬¡n9Æ.ˆ?ÇȈ'Cjü:¤KÄ«èëçó^S/v*õI§R/Õòa¯8ó„(ó„s(óÕ:¬ò…2¦kqaø¡†ø7„?‡ø3…/ýz…/üx…/“ü¡oÑüÈ#OøõÈ"Ozµˆö¥ZŒò¥Œ_jqAø©„ø3Ä?…ø#¥/ü*¥/ÜZøií¡oÖ:ú„"O:×(ö¥¤úµäô¨ÄâjñA¬/CøS/B¼’ô*Ä+A¯BøxéºVÔ¯L3$Ä"Q&Á‚±ˆ1„Ø”ˆeAXˆ-#á8†SA†rä(gJqŠ‹÷A˜MA‰Y.˜ŒØ|ä8Á(†³b(,2-.Æ$1±„-A…X„eÁi8rO(Á(E"A‚Ò$2L&&ñ!ÄÃO —H%˜AŒ‘*A*˜$ƒEæ’RD„†Ê)‘I‚(’ˆ1ÈL˜”‡DhA”&$(qÄøh7(BH†8#±Õ†ò$†‘"É8&•5‚©!!_n ŽŒ@4‚Rc(LR¤„k"@ ILBÄ!,¨A0„D A"G„L!d#ÁHR‹ˆ#!¢‡TLCÈ.”(A˜…LCÈ0p*ñWI$˜(6Ñ($"@(‚8(#ÃÁ`À$Ø€‘DLÁ(B8!€GL@ˆQA8D”"D!‚Õ04_—L2„!*8$ŠÄ($Á&„@l)*…ô‰R„(‚Ɉ‘`ÂŒ!á„ $!H„„* ºH¡Šƒa‚(@èFBh,Lh4¨$ƒK„$0*‡!ŒÒhÁ Éq"JDJË’Šá‚QÂ.ÃA!RKÀ0EËEh‘„"6Ä”+1A€(²$¢ˆEŒ‘¡ƒq(A„)˜B–8BH ,ÿEbˆ ‚ ¤à*ŒB‚B,Qˆ((**ƒ$‚ „ „"à‚!1( "À$°*‚$ƒ8GVs”1ƒòR2(‰"A(E‚¨(&"ä"HHÃb4ˆ€"& D(qA8ˆ†¬ÈJD„ˆ!P„8‚‘‚(†‚bB,l!€‚∆ø½\@UÈ2Xb‚jd"Á2ŽÜRB¥áÒa&‘(§°4T$Gƒ.'9aÉMHÐè°$q4úˆüa’ê1(—ÄF$Á–'‚ðH8%xˆ®T@´Fh‚MvœBÁA‰Ø„²„,3‰ÅšJ¡6\4å ÑÂh0(V˜¤)s„áa%˜2ƒ„I„ÂBH"Ä,HAK…‘(Ä(„F4$$ÁX0ˆì„„8IBáÈ‹¥AA‡B0Cˆ¡$(hBbHNá„1!'ÁP‚:Öª!!¦¤!%Hå3(•$q-"A²$ñŒ:FTˆF*Iá*˜…´)áˆDd” U(G!‚B’ŒR¡Áˆ,2$Il2ˆB"´,È4lXŠ ²H¡#8TŠ3_Hp(Q„@¨dCaHÁ.” †´DBˆ,!A]‚«!ˆÐA*#)Tˆˆ%!ˆ%(ŽC  „H.R‡DM8GÌpAÈDˆ,!¡‹„RÈ”ŠQDp˜‡B)‘ˆ¨0'Pˆ( !A¨P(¢ÄB„‰¨4ˆoÇJQD0$"€¯áB”x"ÂB"ŠEX‚€R‚‚X‘(ƒ“$DI„aA‰l`CƒBDØB$Š¡K€O‚©€‡,F „@Ì;w(1‰D’H$P"",Q!2•B@˜B "4AC $Œ!Tƒ-AЄÀA+,$LB$“T!B!È!"!„ßò A @fPAàAJL‘AB„ AK"H(„F*0A„bD!ÀBB"$$€A33”D”„TLMAœÕ"1‚:ñc\&ŸÂ“*Ñ!Ôø$KQ…ÊaœqHiAOQq˜èHqôu$&†dÈŸÈÒÂ"¯FË„‰JTEáT†((Sò$"ªñQ®‹ÑH‹FÀ‰*Äh„JøH8ðqZJ!4H(È:LZ,-‚ˆÏ"Ñœû(FœHHÃrŒ|V2I¦4•(¤BŒ$¨ˆ¡…„Q! aÁO‘$ƒDH"Q!ða‚,¡™ˆ^œ»…)˜Åˆ…H1B‰@¨ðXŽR8˜…(hˆŽZsÙAÖÔDRƒÒˆôHIÑ(q„x”†AÏ"ãDá!XDA#hÒ2‰œ2:ó(*$.A†,jˆ†(²M24W$O‚òI˜ëdOÒÔŽÈX#ÔBaS!¦BÄ"À"à%ÒˆX"/„¤…)•ˆ#4!!-O´FaÖ_Á·9´ôLó9tÃóâ¹oVº.ôR:+º?þ~=/‘ó+ôk*O^þr!_Æþø^Ï9ó¨¥×G¿eõšÏ¼Y´QçŽö¬¿ïÓû>K$®¤_ÿ,i”ôÝ4GÊO˜þãvúsdöháoøKâSþÑIï˜úOÂL½Aþ#¸¯)óéˆm¢K¢OŽúaÁOQÅÅ÷ATÄÉ­ÿÅøƒF_|ô„¯ÿüË’=ö4ó÷Ê;/(úeªoJ²¢òエµSüÂynè«ej¦"+«ê/&ì$î.÷ƈ-‚NÊž/.3ÅžU_ó\AŸ”YÖó|}gþ3§¯îã)ù6¢/#þ¢RÿºvûÚφöe!O–öh?ÿ!üó,[\ŸþûÁ;MŸžÿHÉŸÇú/‰/«ò’„.´K²®HŸþHÝ›ó]L_TôDAõQÌÿjòÍNŸüýN™·¤-üa'oß>Ï?ú"¦®"k*+ê/$õ™Ê/÷Ú‚¤bjò(xŠöòòÂ#¾ÚõÒŠÊN‚¯ö»>p2Ô4:MA£ÁaãѦ8vMè(³$ñÁ"G‚_®¡î8Ƭ7ÇJx"ä|:Ô¼BÄáãÁaÍ(ŽsÓâ(2$,3$®.î92F.ˆ7Ç.ˆ'CnÁ¯BòDÁ£á¾è”<ÎCÙâ(ôÁrA,î¼2ta„øsLJ|r¤Ä¯C”„£>ÆÓ×QôYÏSôQSô2QÍao‘ôˆaOxµˆò„S‹(_¬ñÁ(_,ñÁ(nqAøå„ø3„?…ø%Å/‘ü(Å/‘ü(…/Ýú6Á8ò„[(ò”W‹h_¨ñÁ(ßmqÁøñ„ŸnñAˆ?GøSˆ?VüÁ¯RüÁ¯RüaíáoôŠcO8õˆ"O8õˆb_¨ñÁ*ß(ñaª¾†äjña¨¯CøSˆ/BøȯB¸ü*„+áéº6ž¼„2M&4A*9A*8A„ÈA‹¢¤‚Ĩ¸â8!d‚¤(SdJ“¤ˆõˆ÷AˆMA‹¢*IÙ8ކa(—Ž"Q.¦Á‚±¨1„Ø”˜%-AŒ˜Â#á(â($e(Ž"Á¦6ŽÑϘ†(Œ…4#¨8ADBŒQDƒhB@8$6xA…RH7`!J™,’„A‚-Œ‘!„B˜°’!¤Á€1(H*H!2"–4!ŒÑ¡(B˜"ˆ)(R9{A‰ A‹P(Ž(C‘ŒDd`H"LRH°A1,x&!x’ŽbA›0$‚LØ‚Q…hRA’B„ „HA$!q„a‹H@A$ƒH"(‘ºc !A‰-0&‚H’!"L.)aB‘" ’H`‚„…!BD °!  B@!HH€?Š#x$I¨A¤2MB!aД‘""… SÁ!G!„FH«Ä(,$DÍ"„°(A'‡ A„‡$"#qAb,!A(‰Aø4B…(£@Ba;„#¢! ¤VDB¢DHÑ’(-(&EY$#K!ŒDØB²ƒ‘€’B Ò„!È(XX‰RF€X‚q(!À!M)"C1(BR$BB¿‚AÄ`$!@È€Â"0$aPˆ  "„"Ä!‰H($€!B(`"#„!À4@HL+È2DN2LB%,<I€" ,¨A€h™D®  PFE‚’#8@HÄH"Â$B@KˆDœ‚x‚¨¦"Š"ò‘(àÑL¢‚ðº—P‰._„r¨&8C„©ÑI‰BÔ’´!Ñ„uõh-,Dxþ‰TC†1L…(4"óÔˆ~A¬‚)“’µøN!K„ÁEø$HBª.i¢AÂH…dEŒ‘ICµdÑ$h„1BHÀjA‚K,$Mg“.¡AÂ@XƒA2`Ar±–À(Em°L™CA%Ø„fAÀ@Ñ(×D‘(L‰WF""p°$‚Õ$B¦!"H.HL88Hô‰-`‚B"/Ô(VL\‚IrDhBÐŒÁd„HIä¸h„¡H©%Ø¡$S‚j#!ˆaŠF#\[(@4H*kDà!z(ã„á"˜D˜Eä)ˆ‘D H‘€Š†¤˜$à¨3«-&àDDÈ'„CCF˜A„‚!Ô(ÊD‹8EH–@áDÈ$PBpH”„I˜……a8A”2’$$ÐdȉôÁH'?ö$ƒRÁDH&“€d$„ÂÀIˆD`ˆAQHA"X@A¦ˆ,(A†D*)dB:Ã%”B$F8BFèD‡B„Ãá„!ˆÆ((Èá*Éa„G„‹„ˆCAôÁH"$ˆAG„‰HUH„„ˆ!‚3qÑ"ˆ8”…rLAÈ•À‚Ô„1ˆ-Z‚Iò2Ñ BH£1T@ƒPF1(@A!AEAˆRIRA($ ‚Ä0&$À@ADÐB€È«#Œ)…T„E˜H ˆTI2„Tˆƒ$E$H…*„"Š"(Á"†2!!P A‘=$’K!ŠbA‚!BTA$…"!RŒøäRzBD%BwH’„…ˆAGa TP-†_è#˜„EE%QÎ%zŽ‚41Ib(“—!EuAALÛsäX(ÓB؈!’”‹†FshH ™D”Œ‘˜ŽÑHˆâZµ!BdBŽ!„`…XÅ„Q˜¢i¨‘KGqƒRb!­$DOq1¢…‘5ÔDAÄ8A[‘œøT’¤'Áoh-l¯¶ò{-ï$rnò!)ïëÞ~èªò62?µõV_òwKû_ÒõIßVú¯=/‰ô†Ç/ôqjü‰!«È—q~÷¿'¯;Þ1þ&bM"okùGîýW]~?¹õ•ˆr7ý,šñ¾.ï[ø#?ÓñŠ#+™-"/s‡ó†–_r;$KK¹;‚w2?3q£÷·>Ÿ‚r9ÔQø—78+©oGònV–øÚÂ^hïGg:3Ò¡ô$"_2suóAbµû+.7Ÿìõ&FÿÌáCyRv&÷O]osñ?w÷?MÕÙÛòEÏÿ©×xô/«ÿ©óÝŸ¥Ô™ø©>ÿþñï~Rôg¶/Cù³,eõnïÿÑú¿K¿Øù?)T×ÒŸòø?ÿrÒ½ø»;ß¹ñ’/{ñµ7IQò–ocû’oqÑ~Û;û’'oxû?-Ï’RT]—wy}FϦÿ¸jk¡µRüø{>Å _dòiis÷Q'4„Ö!ôK©fù§o¯ñ’4gr7vgvUô#ks|Yñaaá_rüjšomòÛKOiÿRšÞ¿üö–×öûN—?8óÓš/!ÙføÒÿøVž¯2Öwú;(_RÒˆø#ƒ}–ohq—ÿ³½Š/(q‚ò‚’2ø$¥Yòá¬ocÈ”Oøò…ïcZQ?³û;(Ç…/1ÙQøÆ*îh*úVÈ‹LÎhïÿ$Á3[Qï¶òau1uQ2Cöô'mßvúvÇÿáú&¶Ocó6ÿñòoÿ±÷3wÿÖòEmÝiŸòöO¢/óÇ;¿Lý§œ?¼ñûöocü~Žo5|±ö†–Ocû6¢êóηϡÿ³×ÒÒ•r(Õûxžu†÷ŸŒ/¡9š/)ñ’/qû¤rù¥4Ohø6¤OCú¿Ïèû'…O8ó;-ÏÂÁ+GH¯®÷ø¬-Ò­õÒB¯¯þ~¤o:Lr7×Qt2ÄQ§c÷#aÓòsçæohs$ôÁ?oñÃIñåžxaØDxw΂'CÍÁïcÂç!<>ÖLâx7MO(ÓDòÅ>EøÁ„îyxiÌ„7ÇŒx2ÜTü>$<áãñaÉñ‚s×DŽ6EöÁ.åôÍ)òឃqaŒxwÜ'x"îÄ|*ä$<,~Øø8LLôABõSBô2AÉöe‹x_¸·ˆó„s‰óÅ:”òÆ2†nqaøä†ør„?§èGü2ÁÏCüËCü2ËËáo‘¼˜÷¤S‹8O:µˆóåŒóäŽájqaèjñaˆ¯CøSˆ>„/ü(„/‘ý(„/œ¬o¾ˆò”s‹(o8·ˆòÅ:œòžœOjqAø¤6„ø2„?…èB¼ý(ä+ÁB¸2¼,úÂo•I²Á“„3F&6A8[L8RÄoTÈ-ADmAˆÁ'O8Eè(%ô„BŽ3Cäj!äh9TL(õAˆA„ÔA¨Aˆ8ŽK&ø„"Ž!A¦ŽÀ”AÄØÔHÒH¢ˆ³á(G(Ì"ê(2F¦vø¡M3%A\’ˆ1ŠÂ"D„‚BQ„F”È—"T‹AP…Â¥¤†† A'ÈJAD„„FQ„A€[$A$Š‘¬ÅÂ$Dx2ÔAQ‚˜!!˜ä¯òM²„XC!¡œ(d‚A!$…•$Ì„‰TÉTÑ(Q¤A–¢AÄ#˜JEA…1AE(Aˆäa@2” !Q(„-$E$&Ä+ˆ,‘‰%Ña?â(E ‰’Xð$C Â"€"R8*˜•‡"IPH1,1(LB$H"R„I(¤(<RX##ŠBaÁ!N(€2ˆb4”(,¡D2»t$‚±ŽP(‰‰q(RC¤CˆMCDH4¡D"©vHo’¤’CR(®*Q,%Á‘¥‚A¨Ah‰'‚!“"A“‘dAE(’"É1QŒ"!Ôñ>MR”%è‚ÄE1Iƒš%Ä8D(…ä´A¸Œr$t!BH~8T!R„+(C!h‡C(ÐHÂ!(€Ô‚ä!¤.E1$,BÂ$ÜÂÈ(„Oˆ"¥9Œ³F6J8ZVôã˜`ˆEB„(,SˆA@  ‚!Ar„!„¨2àB&&2…•H$¡EÈ@aH"!!*‘A€D!€²³”AL0BPeˆnU„hCÀ‚ ŠÃ$L¸D‚‚B#8@"Â"ADŠ!àaA‚ ˆh(…D,Ã$b+"ag…¢4Ša!•âh¢(Uš+A£*Ÿ#…Ä„_Ô%sž1íE)$ÉB<Ã(EØ$´+2„c²„•…Õˆ±„edÉ‚òˆW„Š}8¶E≈q#Ô$ó‚$¨‰äAÒ(ô"3’%ˆ…'’H-†8ŽBJ‚aæˆ#!4…„´šAB’&¤‚²‚AH„TƒÄ)D#_„r$ÈA,T%ƒDŒ¸e8H!ÈPC`"K")$j1!I"Ò£$AŒÁH@b>TÐAB$rH#Bô’h,82/˜BòD‰¨c0DðŒ9HFö‘ˆG#BˆRŒÑBdB#´(H”"KIƒÃÁD "ñ†(”®'8‚6&˜†"Ž–L‚!☨E•”ˆMQ!"†"ä(#ä±6¶,y¤”BФ“A0$Æ–!8D#’A€R!è!LÁB´jT"ˆ0B‰zf”HÔ‘Ä&¬B‚¡@T2ˆD€Â„ƒ"˜‚P!„G.,ˆÆÔ1ôúî&Dc„4 BHDB€HA‰DA"€!H ᄘ"ˆD$‰@I ‚'ˆ( @PA”ˆd"†‰DÄÓÙBxÅ"$DA–(tA д$„hˆA‹$NA$JÒHƒQ!¦A R"GÄ(B&X” dB!$ƒXb!I‚BHHˆXY„Á‡(l¨BŠ2Š0HJÈAoÛ(PA .D$(0A$@D(A1‚%ÈAHS„¢‚ (pH ¡ˆ!(†¤(`($%ÀBÆPBT1IFF!È Ha( €$DX€‚'(D E8(yXœp%ň5‚@r‚$˜&p‚)H aTrDb„HH!Ïu M$ZÁ$#± c´!Â$"ÀAX„$‡PÊ#XÈ.BO”H1-I ÄŒ)ÔABQJHÄH€Ô$ÔHR!%‘•H„¡‚‰Òh‚‚"”¥H$:D‚-D‹(F¸ˆ‚öˆÚÓ<&H†2M" qBq#òD„ÂXHÀ$$ˆdˆȤ]AeAÃh¢PA,ÄD`"5:ˆ@…‘(¤@’((§"p"$.ˆ)êB*Ä‚FÑiòÛ‘`U'$G$ÆdÓöD‡VNC…õ!M%W¤GHeÔDö†DAeU”aEÔô(EWAHØúHQ˜«!/xrƒxŠTB/ˆa¢§ª83ø.(%(Ã!†/¸!”¬)‚Ú(´EÈ,‹Ï„ !aE™"34¤¤'ô5³T8`)±¡aL„‡¢ÁP'(…˜„%šE2p!q#9¢OX$…ZHIÑAJ])ˆi Uñ2„%0!#aHGˆ\’,‡žm$‚)TBï48ìTyÖ<ò„AdH,hcEDÔ"±„q’ḂXŠ‹Œ§pBx$"”¤,ÒêÒ,2•è!ôCˆ±¤$ŽF!…Z( G´DHóJŠe1‚ñ,¸’Q‰,Aˆ’$/¯‚ÒR!‰ÒDZÍ&¨#ääøGB#WŠ+ƒ#öðzÏq÷*J¯"´SñsoÁ×Fþå$_—ó.´oïQ"/©ýZšïJýµ=_ÞyTühDoÇñN6wS¿ö©…¿µÕ;ôéÿÚò-µ_ØóMÝïiñfŽEôGOÏaø¥Ÿ2ø¿7ÎÁÒø7=ÿÜu“ö·¥·h?S3=£ïÊú+²]5}ÏK±äÈ"¤·™Ÿø¥$OÃá‚z1YÑÿÙù"7'cü(È¡õHAÎêïÂÞ:2w¼ów=_ãV'=3ϵñ9^ÇsWrïöõs$ž’/)ñ’Ó¿-ñÒ™/åþ–·÷ÕßÄÔÌöÌþÏëþ–ÈïãÒˆ|Š~ØŠ:^ÌüABôABôaÉöA‹xÏ8µˆú”S‰òÕ”òÔ†òì†î†ú>„?…ø<„/ü8„/±ü8„/¾ú6ç‹9Oz·ˆó¦w‹8_®óÁ8Ïjóá8®†âjñaè/Cøs*>„/ö8„/‘ô8„/¶ú6i‹9Oz·ˆó¤S‹8_¬ñÁ8O(ñÁOjqAèjñA¨¯CøSˆ>„+ÁC¸ü8„+áË¡oQü*´4Ÿ„RN(,rEhBW„.…"Føaˆ-A‚Ô‰ÈAøÁ#á(©$˜‚Â1a.–€14ƒqAøA‡¨„¡ˆxè8Q„Ž…¨8EèBQˆŽ‘È…„úA™(ш8‰¨£á(QˆŠ±H¢N(ŠsDèJqHè:LLøhL¤0.‚¢Á&%Ta"C”bB‹h4A‚K(…"HŠtˆb‚(0"Fò-„.”FPÁ5(Bd‚±`˜)RÁ-!Eª(R!ƒ¢(%ˆR„„L’(F™$BFBøCß[ _‚‚dD(¡ˆ,Á$‚TJB‘a$HD Lˆ'‚(’"!ŒrE4 XX$&˜$ˆ¤$$‡B%Á"‚!(­ˆà" Ä(B…ÈH$Â^C‹è‚²‚!W‚) #A”‚4"DM"&!‘$$(€C¤! !…”!"&Ia‚#BhÂA(À!Ð$‚"*q*aBA&$œ)Ié„tˆâYôÅ*$DHDØ(xT!€9$,‡†aBDƒR‚„_!$#¸HÒ¡ÁDG!(p4X¼TfÁ¨DG"9A,ä¨A’ˆÐ‚ˆ)„ +ƒ'ÁbA”ðdI¢¡0L‰‘ÃFȆÓ2S.P('B\Q*ˆÑ$'IƒYE"D…'Ò(q-5Â"ƒÄ2Är¤!Ñ…BÄR‡"t$Ë$"hCN59âˆÑB”¡a¨D.’*ÑA::!Lò)QD¢†¸ÄÄH(dB‹D_‰„A5€ "€ …Ì&„„ !"CIÁ(A@h(P$‚„`$*„‘DL‚ÕH‚qhˆ%8Ü:¯PDÒHÀ0(%C(A HébH D`‘…!PƒÐA!ŠÑƒBD$@ô‚HàQ„(à”¢iñ‚ÈA¤ÀLb!`„°4ER¨34T!¬U¤FbˆJq4";(º¶&”"Fï‹ÄÒ|‘Á"yØ(‘‘…rHÔB1£M¡ƒ‘2[O#hAâq„s4.ˆ'Á/„È”ƒ_„´â(R$M˜îQœ¤DáˆH´¼t'hTA¦#èH4TGŠG‚‚‰ò…"£ #B %!>‘Œ,aH8ŠdÀ,„'D%ˆQ‚¡K$A8M(dã"A|(!ÂHA%¸$x2È'D"$‹!°‘$“hGB„…$HˆLÁŸ÷Bad&%$R‹tN!0,a"á"DÄaDô8‚‡Cxsh‚31É¡-AL¨¨ŒPC(G¨LaG!Š‘ˆ$’-Œ-‰AŠÕ‚ØâA˜BpDq(ÄHh†Ž1ŠB#x(¤iE˜a!‰3¬dA$CyQTK!„IbˆrƒQ¨2`BA„À!À*ÐbZBÑÔ22x#’"+"$S¢iA ‘!,2˜´B1xŠÅDBD&RnBƒÆB'ŒHFÈAK$Fè”"‚ÆB¼HA$ÄnÓ‚Di0BQL0AŒxh)!”Aµ8AÉè!QˆŒHááÉ!Pe…ÒBR¤I‚b†H2"•°ˆˆ$,¡„!AhI„AˆHEd@‡BdABðÔV`B'FAôCˆPAðA„à¡ÈT¤ŒXQ`DÀA!DAˆ!Q„ˆAIM($D(D!D%DU@ê"Ò$D„#Ô!rÅ$d`Š‚O‚?3hAaHPL Bs @dP#RA@R4ŠD !†BL @$„¡ B„Fd„Ï=„“$A"‚‚*PPHTP$!ÔÀ1„!HK„NQHBH!!!A‘(C+B€3µT"Óqi"òE)H±AÔBHH¼&£†"A&‚¨RQ8(‚MA’4ÑÈrŠ¢!d§)„$eDU¬S2¸†QÅC©NLN¬M(-d†Ä$Œ’¡ŒLØ„ —B_D„ôB.I‰²\æDòó% 4DK$pDbD'…|DEäBH¤C‰±¡äÈÑ£Œ2BMZ$EU5•rDô]ˆtD‡!E"’‡3•ƒØrÈ2!Q5ôŠBkä‚‚ŽŒ-ÒEÄF%BCR!‹A?"Ò4U$Üd$]DJ!Ü2‘"4¤Hƒ˜L3B)Sœ(R…Ù™ÒAÑÖ‘‚8+‰M1«•øƒQYLß2Qe5‚!QCÁŠM'!MƒqŽRXLq8÷?‘˜‹Q¯1µTáDñZ?!³Ñ(a¬(KhM(,Õ8Û1ý(®A&±(äRX‹‚.Äm†ˆN…€Ø„迯÷Õ2òsS77ŸÜöWÿñôOW?6ü¦"7$/!ùs›?·ÿƒ;ÏÜýÇß^þUmø×ßÛÚû!ïÓñ‰©­‹¿1òºÿ¹qñ3ÏCûÖ‚_‹ù?>ÿñóˆŽÔÏÒÚ]ÒùÿêûŸ<¿8ó»=»Ÿ‰ùKs+}ÎÔOèôhÎë+C˜V>²½÷œŸô¤­ßÕÖñÑÝŽ÷Z¥+­orøÂX‰¸ÈþDØN54-z'ö/s5Ñ3vOû)ÿ5ó«ßÿÿøËŽm&obø²Ç¿=õÛ£¿ÄþÖïÿÓôEEû$Oxÿ/Òçøß™ó=ý›·¸¿¸ñ37m7¿Úùµ—ÿÉù6ãø&—¯yñ?ÿúŽ#÷ÒÕÝEò„7ïóùžžÏñûõžo9ñÛÛß½õûþoÍÿöœïõÚž-&'&/3ô[H¯œþK~ï½ÿwEßÔôMm_\ÿýÌÏ¥ùIJGfo¬øZøOíWò½Ì/ÛHòNFýb/w÷SR”ôKMïuõwßoþÿË/ÿfx¢ö&"¿èòj˧7¯Ç÷ŸûŸÅv,¹döÖ¿Íîç*O+ø&¯ƒ'(/yø’ï¢ø´´/Iûù”k›*ú•;ÏËñº“>"]¬¯r(ñ((¯¹óœ<Ïëñ9œ/3󘟅µX¥U~ØÏ÷ÚøßN©šºúØñN/–üùh¯¤ÿ^mÏÆôlaOTïþ8ÒKžoËè¼éOý´ŒÚ6ï-otôNV5ñRQŸ´ôwõ?g}z'ö¦†obú†·ï§õûK¿&õ~¿¿•öM-ŸBôd÷ÿéòίoBù–ï©ñ’‚-’-3/{ø+=Oiû>Oj¹²ò‚¶?Óù,›;RÒÉÒÜr-ø,¾Qû¼ï³ñ–oñ˜Y¿…õX¾OKõúîï¬ÿøˆgk+»/8ÿûÛ¿7µùýx~¯ÕöMlÏÖôåe_Mûø/køV”ÏŒýˆ˜‰ø(¼Ïʼ¦Gr2ÜTô>$A¯á7aÅåxvMô„6EôÁ>Á¬oBñëžGƒÆK‚wço$x&Ö=ü>.-Ã¥øáë!MaÅôƒwÛ$/hô×;áüa_ïtaí‚xÝ*x6Öü>d¼<áçAÖLñ‚{ßDó‚2IñÃ:EøÃ%ô鎗ÆË‚wׄ'cI|>ÎÈ£¡ágAÆD/õ(D/ô(D/±—l¶ˆöµw‹¨O:—(_ìóA)Ï,saøâ–ÏjñaÈ/Cøó¨Bø²ëÏBøÉBøáÉú–é‹(Oú·ˆò„s‹¨_®óÁ(Ojóá¨/jña(Ojñaˆ/Cøs(.„/ö(„/ô(„?1–¬o³¶ˆó¤s‹8O8·ˆóå:„û¤2†úª†âjñaˆ/Cøs¨C¼2ÿ8„+ÑCøèË¡kÃM]$Ž(E’(<2.4$!†úA¬-A¤!Œ–ˆIxø„DEbAM‚„,Z„&$`HAÌbh˜I8Ž’E‚!Ž"A¦‚„„ÈA!™˜„³ñ„DIdÄ(CdBC”ÁCOE.’0H#x8Ä"IAT#1ÅE(D4AÄN‡A¬ …Á1Ã$42Eh!¢caÁL'àBqBˆD‹(EAšÂBCÊ$ƒQABˆdÂ)’ˆ'T9ÀDKBâØhb 1MA©‰SH#DÄ„-ÔHdDŒ5ÂÁŽ„%áRÁˆPD8À$˜R%ƒÂ$D#‚Q!B©Da‘ð!„$Dˆ*5†*B˜Dœ‚š($–˜CpHÑñ4ÇP„"AÁ"‰Q’($‚"d‚&H`ˆÑÂD6‚(1¢Á@TA„‡G !!1*E&¤!‚0"$€O"õÒ ØB„L¢!)‘„Œ"A3,(”ˆA,AXAAƒ$BÅ(…20()xÄH‚)È((„X($PHA@±_ñ>Ï!0"q"‘4ŒÂ"*ÁÁ&iÃBƒ‚Tˆ(ƒ²‘"'CÓ20%‹„QB"Ä‚q$(C¹$qÈ!! +)ƒr¨A(‘ˆ)1$%$A@2k!_E‡JIQH%ˆaL1!ˆI@HA&RƒAB@C(H(P(€aB`QÓÈ@ŒhA€‚ A€ $„EDBH@Šr„"Œ@„ò;)2F…¼SbR!Nƒˆ‰•‚M,á‚dAœÅ]BC²DQ­1ŠçŽ$‚+ÔF‹*¤ƒ%ˆØõˆ%©H&¡A§È&þ”‚q‰Ô£ˆ¯LÛ˜"˜AD˜…ÄÄMQƒòhFô$‘‚D†„¶È¨#lá# 1L‘"…ªÀEª(#I(D„1$8Ä!$4"ÀA!DA()’œP+!Œh+B‰DX"I"L…EÁhÐAR" ’$¨h/±,EÌA€4-A†$%I`„K³\FBW„!’Ñ!È€TЦ†"a\!–(h†]Š„7Áˆˆ­‘D#ØH"$MD§Ö4A…1hM„ˆÃ‚h„ÈÀ‚MjS(€@" @(€‚€_Ë  („ ("" € BÌ;QGB(ÁxQ((€øŠˆ#GB(AøA( €ø‚Œ8(GBðAI„ €ø‚¨#€q$„’DÐÝ(`B„”€‚(€€6 ÀA‰ðˆ&"ÀAŽ"€aB€ÄÎ# €¢"@Xˆ€""€! 2„ Rˆ€!(" "€!*ð“Å€I’ @8A„ )8€€I„tA )8(4ApAxA )8*I¼>o(K"ApAxI¸9€²$@xAxI¸9((K"A€„„€¸9((K"Að¹Ì„ !„"€   L<“@„(( ?šEA$B.„D€Ø¤‚ˆ%E‚„G(‚d(e(ˆ1ˆ!ˆ-ALZ‰Ø„R°„G(IpHA4CD@DGAA$„D“B $$HOXD¢°BD†QÂ,ˆHŽ9˜B#†4‚12fDI%$H%$“EaD@AáDBE€DÅò•­(@ €¢"@( €7Â@€‚@€ „""( €2𸀄Àê""((Ÿf€€<3¾‰ @€ ð^ê@ €@8Q"€€2 ‚€„€€ !ÿb ¡ "@"„„€¡ "Ÿ®v<¤ÄoH±ŠóìÄúF+‹ÈbÏcöâ§ÃÜaV/¿rsVúJB±—r'¦¯lôeï墊'DM¿õö;7ƒO·õe_RØÝòmßÿËö>_cû½,ÇŒ¯¥õš‡Û‡Þ¿Ýöm?åù$„_Èó5ÿåÿ!„®H/ùÙ]r-|.ü,Ÿÿ‰ò.ßòýí-_ñCR´üé=ŸÛ÷Ë=ókŽOAù¥,oSóoÿŸÕý¹mÿúÿ}iŸÖÒôA—™ñ#.O#ú¸,K\-jO!ì˲ä÷”cgô?$ôv·4‡´;D½Fÿvø|¯OyóaŽOkñ/´rNÿj{½Zo"<OÆÖéÞ˜ÿxªÏïóúx¯+þT‚Þ+]kþQ«åøº8û¾-²’?Ÿóʽ¯¤ë!ö,‚3ãÂÒˆø(….‚O«óÏïéÚ5yú‚)ÿzë#ú9¯¯Œñë˜-²OcúöeÏýúÏâòtþ¿×öeANÁݱz¼ö‚<ï­ûXÊÖúŠ|/+ëÃ=®-g´¿äõB·”'´Ÿ¤ÔoöO½oÆý¶¸oAò&6O3r#÷DaŸ¡öä<¾ÂeÍ4Ž{ßÄã(ÓDóÁ:Í4¬á‚ñáž#qaì‚xsíƒø2Dü2D¼ôáëaŒÖŒ÷ˆrÛŽ2IñÅ:A¬á„òäžyräwǨoCâC|:üȧèããÁ4ÞM¯ô(E¯ô(E¯Ôöi8÷Œ{‹8_8—8_¬óA(O¬qaèîña(onñaˆ/GøSˆ/GüÁ¯CüɯCüáëáoQÿšrO8÷ˆ2O8÷ˆ2_¬óÁ:O,óᮆòª†ø2„?‡ú2„/ü:„/ü*„/ž®oþŠ2O8÷ˆ2O9õˆ2_­ñÁ*ÏhqÁêjñAH¯jñAˆ/CøSˆ/C¼ü:Ä+Á¯Cüøë¡oAüÔãF2a,2G&6Al8CL8AÄ脸<ŽR‰ò„B‹$†"ä(2L¦&äx8Jˆ#ôAˆ-A™˜Bˆ)„˜‚#á(†G8Ž#A¦&á(X‚ˆ!„Ø´h8¨aJš†'EŽh((†Bè(R„¦®SÅš2J‰qAq24H.„;)+CØda*dD,ÈÂTƃÔ!a,‡AJ‚¸L¢)ÃÅ)²ØB‘Ê@ÈI‚Ô#[)Ö6H’0²$G$A,É"\Ì"L”Ø! ($!(5‚R¡+…ƒxñeÔ€Q¡" ѱ*A!8#H4$)RPH9ÁH@E)A”(…$& *Q,Œ”1!¥ÔA‘Œ#QBÁ,p"Ôh1!„HDÀRN$)™HðdóM˜A!$@ˆAPB0šPAÄA‚I˜$`Bp)"‚!BR„œÀ$—Bˆ-$Ð($bA$D#Ap(ÍD"D(DŒ"oùŠ’”$„$@D@AD"c•h!#„"@Aò$IÁa3’`BU(AÅ"H €1D)@%DjXJ2©]w#’"ULb!!PBDá!A$EÄAXƒ%¢%X‚'AX(Q6D$ÑÆt1qD‚BAy¬³QH4 3A"4!‘E±œ¡„Á(L±ˆ"„(ñ_½ BC€S‰A†„@,(€2(!8€2EaB@& LD$(0)ADA&BERBÀ"À=ã_!AÔH"0BˆDxÂÁ!H"Ô(¨A€†/¬Á$Æ'tc„Hí„È«È"ˆ‚! 4‚`($ˆ0„X"œˆ-FBGh@dÅ4AŠ„r„ŽHðm‰ ‘Dg“B£¤!©¼’@«)D.„G¡dG!Ç"‘(-$\4!8RäL¡"U*DM/BtÄAŒ¤!'T,Ú„Ç8X)DIÚIhDäŠt"ÁI2%(T„a‚áu:‹(`ðB$àAQ(4£ä(ƒ1$D(¡$A0"¬"W‚E,!UhC q!XD)ÁÁFÄF¢„JÂ@±Dq„ G2D±$Á@8B !ôÀ)DÔd”H(‚!$ÆE&”‚BDÊÑÂHªÁ)\‹H%ÄAHD4‚Æ:#„¢€”„(ˆD-%©ˆd*B6˜!¢!KˆAƒ†8$ƒáÄlÄ„„ˆ„,ˆå2>Ö(ND$dB,(„"JfFÅhÐ,ô!F,‰DBxDPFa‚dD„LèD@!hð‚!%,!àÒA#HÙD‚Bo· FDX!"P$(!D@D˜AD $@d€ ‚ „PH$, ”„ŒiMCÃDD¤$c¢$‚A#…*RG”œŒ4H`„ b”$D!…ÁTPBAHp!Ô’(4ƒ””AÄahŒYDðš!$@(ÆH@D$D(DB@I4"B±BˆBLDD°A*Dˆ€tDh!"D„ €AˆÁ+óD‚‚©d!HBƒQ&Ð"ATB-!!!ŠQdd)d!°Da%„4(HWÂ@”M…2$ADWH!#bDC˜aFDf$ˆà"hA¬töF„QdG¢pTX„e’B€AD€xB[ƒBX’3DQ(4PQ˜‚5È‹A!!dAA@QÁЂDDHDD„‰ÁjÃÌ$$lb!…R$&4)&)Q‚$4B T„¡$ˆEˆ!ˆ1„‘L!ÚR ‚i2`Á°Hñˆ‡BÎP‚&IUI8ADIÒD$0HŸGB $!H¤Á’AŒRˆ$Á…8„,4„p‡ƒ†ÒD80xdB,ÈAH6&2!(0Ž(„Ž(Ê(‰HRAŽEI4…Š!ˆ¦ÈgóH!0¤ ¢BF("O„ˆˆEKÂ@!@A!(tH˜! €¨‚€B (‚("IK" 2$ˆˆ(€XD/² `„BB"€ÄH@HÈBBI‘$!D‘„ˆ€HXHA€`‚A@$‚ˆ¤!€HA (,2±¤Í&!hÂBpˆF2”ê!1B^ÁCÔ„è8xʈŒ„èCø!Wˆ„.(sL1ƒԉr"qÁ"’²,¸$hAŒx$X1P¬>„üèYó!%%âHAuáD4J"BE’„Í,¬…$EDØÈè!øm$CFh&FRrm:”JbµFXfŠÔ"‚R(H+B“q‰HH”JÆRKB?$2‚„FòLCôQ‹F8Aá!¸¬A6è‚rÔ–Á,ŽF¸%AÙÈATHª‚”.¬ø„‰È„Á¥$Hi1„LuŠª”B„,2ÄAV-‰Dô"!GJ)aaq¤'‘'"gMFbAFvT¶ÏAÄs1ÏT4Ç!1„CÈ‚…Aq‰T=!(‡bÁMˆH1(ƒ˜OBq$´!ÑÒEXX‡T•A´ˆ(ÑÄö#Ø4?òös3ww·±=[?4ós3¿³ó±ùòþ®&/"ò"2?¶÷'GÿñõaÿòñˆHIÄx›÷“C/(üA¿4q›ñŠÊ„ónGÙßYÜ;ÜLw>ö”„?´Ü÷õG;ö·‹(_Óò$¬wë×Y|ØwÑ÷ñš+¿8Ø3ó'yò”­ïòú.6/eò¶†}ÏßTó7/ÿyô“×ÒßÓÔÝ|Ÿÿ%onþ,tïf¥M/,üJzïfõ–g3Ú±ö')_²óO?4Ô³ñ#;¿7óóeò÷6o+û3*/3ò{oýÿ±ò[oÿTØõøLßÿ9ôVí™—èw¬?¥×Šù¨.÷ÌßÍôK?Çû$¦gHG1¯uÝ~øŽg/{[Òò/$ÏrùŸ-ßó×ÿû¯oÿ¼ô[=“?zr‡÷·%_sò?¾o"ø¢.gqÿÅý,¯÷ú=ýKlÏÔÚÝÔýyŸý5voÆûìnkL^Ro¤ýÊNonòÞL4¿5ókKñõC·5¿–õ{÷ùI¡¿óx¾o*â2òs3ßvñ[cIßS}VüMMÍÌýÇTùÅßÝôžö?´ùÊÞdßûÿiÏTy“úݬ/cÙDyÓûÞ†oeÙ7Õ÷ù)Ý-ß2ú&Ý™¿xõ–FýÿOÚ¿¼õÒc?ûÙvû$½çëïmø–obù—.Ï[þsžïvñfÿßÅöm%_Òþ*ŽÝ±oî÷ü(ïo¿DýÂR§)omÿfHÃSsÿ6ó__?±tSûK¿”õ3•ù}ã?*û6&/"ò"3¿óò_S¿’ÔÙw]øHMÝHMG5ùÃ÷íÝ6ýʧïÿ.ýßÄùDÓ¯Ëò´¦oAÙ$y›þÖ†oq}‚VŸ‡ÂßÒò$&ïÁû¨;ÿíòú·ýÚ¯¼õÓB?Ûwù'µ_"{žþ–†oaÛvù»,Ï¿þþxvoù-,ORö-.ïÑù¥voÏö¼þkÔÎR'­/iýFÖOi 'C.a§CA£Ñv>ÂcÃâ8wLêhôÁ;AüòážcqeÝDxw܆x6ôÅçC/<>o–Žsß„ñ†2IñÁ:Iá¬áBñáž2Æ„7ç*x3åü:%O|óáç1–<_¸÷L$/(“4¬Ó„ñÅ]_îiSÆÍ7Çø2L^̧c<Zþ(G¤óÆÌ¯1õTð4*…ÑÍ1.a,¨!&¡)B$$„EAFQ"$„!X:REx„‚Ã%%CXA’À&aI)H)õ"(M#ŽOH"…Ò$ÐB˜28AG@:X)QÆ¢ ‚PB$ƒÁBˆbŒÀ$p(ÈB"@H$`D,$ƒ‚IHˆ1d‘A@H"‚Б>´$!!GBÐEh!0$€AÁ‚A¬ÔDRƒ˜Ða„A‚#A*(À$$0P†À„A„`jh„€ÔDÏÅ…:G,4D…‘c-XŒ(ÔCHòD!ÁQ°fÄDÈD$)±DQ‚BAÂ’!—"%D“G!/FDT<a™‘B&ª(•¢(°d2ç‚eŒ8DƒâHÅló[!Ha¤@¹XRF„8%FA¤$T68D@D@”B@˜hA,(AB!‘,@SÄ@‡,2D0*0%h&Ž#I"øˆah2ÇA""X@Hˆ)„4ߦ D"DX!pHÂd‚`APBC2@‘DD€LT)„ I‚$$’$A4!B%ÑB‚D$%x„$ÅP@BP¤ED KH3Á©H.B'!@ØBa$(ÐAD"{IB¡±BL±)†(ƒl<…‘AˆÅ1‚„’IT¢‚†”B0B‚DDˆT"CÀ"& ¡2H‰(HôFæDB`„""˜ $ )!œ@è"(ÁF RH„Q!#ˆd!HÁ)²„)DA!&´‚A!…Äõóˆ8J F›",…)X".AÀ“ð"¡‚›HX",‚O‚„'xH-Ti1‚@˜ÄÈ%"ˆD!M„ˆ-!HM$Lb„T‚!)©(Ȇà¢EEA”(FHÂ’À`TF @2HŽC¡"…¤C¡!'A)A(¨(‚Z‚Ò‘k#3CRB ’ àBÈR$l&„DD!áÔ!fL4‚T!Â$r8AHà ,)Ò¨B,â !@4ˆb#a!xA‰ÐA‡ÀBDKiTˆ@$Ñ¢XA€*p"‚ …F NADBBE¤”4LAÒ!äsÂ(°BŽ(!!àAá‘4@2¡™xH("ˆPƒĈ$§A$AQ H’’‚C1D›BT‚(@‚¤$’ƒI8„I2Ì-B&ˆQ1!‰’ƒa„ÁHB"F3!"„¡T!‹)qø""‚`ˆB„DDá$ɘE¨g¨‚-ˆ@HDH"A²Òȃ–DCê!²dÉB‰lCX#caÿÍAb3!!B2!0(ˆ"Br(Ñ,è„QÐANøˆÃaŒ‰ÑÌQC‘\Iø‡!%áÁR¤(¦Ì"#(A$bQd„P!€ÂAC"$*bF/BbBF`"¤#["E1Q„À@ÂL$À$P)A„AQ!!DtA2h!$ @”"%!‚TBP$$A¢‰„0F!@)øN"I "A"H@ÂC‹DA!!‘‚DE`B`$$@!!@#¡PBŒ$†‚’(ÄÃŽÔ$Õ"ä屄á‘&ñ˜hŸQÔ(áaÒ¢17¤F¹"±´*„4#±%Q››BƒR¨ƒñA‚Mt9óˆ*ƒ±BJ"h”!‡‰ÕR¸EdVQ+‚-!*ÁIž“Џ„ÑSq9‡ D‚B¹Tq!¸1›!;D+b*ø"$*±Ò†<°ø(4g!ÏE 5‘EbDC3ÂA!1%-‹A$‰Å±ruædAŸÑIÑbáØ’¦]„тقÓ#ÊåA…nˆ§ÂÇ)„G1…£”‡Bag#`!±G³a7‚+ÆÈTŒäåñ„"K%2R’( 9q•S‚qÒAô‚2+H?‘$l‚±S8g&‚­,´$˜‚Kƒ±xѼ”ŠÔøA'4ƸB‚‚a(qÅ8Nðg)Ò$´‚âathy(qB±DYGROBéÁ‚JÆ‚LÒ„XB…Ú‚ØHø¢)p[R(¯1ô1(»Q'…¯³×#üTßûõ’R~’oiù§VçtŸ¦ö_TOD÷ÄŒ_T–Á?ˆø7œ_CöÙ"ß÷ü¡HŸ8ö=–¿üU(òbˆ!•ý[/‘ÿVoqñ„ã‚ôA­?ßùR<¾EÞŽÏm´›ºˆ|ÁÓtÔ—Üô5]ÏkóÖ”+¹Ÿu$ú'H?’üæOˆÏÆö,LïÍùzOGñ´Ú£ý:¸‹U-ÿ²oQ"ÑáñWXñµÕ¨õŸò÷"-îßRuö¼¦ñ“¶o{üoïñ?ocôNlÍe_rá÷>ïññÝcÝýß•Ø3õÙSŸÕû<Í¿ÔÚ‡÷s®Iš‘/õ[‹”ùyÝÿùù=-×Ôß–ö…[ÿý6º_fÿ­½]?¨øÈËŸÂóu5ÿÕøÇ5ÿíó4[™/ùgŸTòi!¿nþ}(Âöl,ÏìýüocûÔ6ÏÃ÷د¡õÔZÇãCûâÍ_]DÿäóI‡´ŸÄôOööħÏxøo.ohÒvr÷.?5ônFogø6,MDWB_Úòœ¦Onøfå}&,ì(ù­}&_ùòŒ†/Šòæ¬gb†óÓ¿œøBJ;×äþj!jæ2õÁA©ýU¯ŒüšºÏ¨øHŠ¿œôK;ß·ôé/ÿØú”'*­)¯Äõ{‹Ÿ¸ö-Ž­)ÍHÇâÅü¸¾!ýbø¯­óŒÚ©ÙŠûº˜;+-ßíAåñOHŸ”qJ{{þR¿[òÞtïbú–²/bóeßrÖ¦ó3ïãv&ô,$CæBó‡7Obý>Ñÿýù”ZŸµ½øËÖO}f~ß8÷ú,k¨'(ŽÃ?˜´ƒýÓ3GùTIßRvLüemìñôw¿ÑüËÛŸ½üÉJ­É¿´ô[Ÿ¼ö­ÿ»–ó22>2·“ímÿ¸øIMÏÆôH,ÏÄò¬|ï­õØú+ÁïáûÜJ¥ùˆ¯¡y”÷ORp6ÖÔô>,A§¡açAÍeÁ8wMô†6A?­røÃ?ïX‚ÖM„Ö‘ˆ'CMÅïCæ<ñïAÑTì9wLìhôÑ;CôÑGDþž#qeÜDxs­oC‘ÁïSÃÁ«AþiÍŽwÃähôÁ:OAñÑþYWƉxSŒx6„ü>$ȧèçÁü=}E/ô(M/ô(E/Ööi8ö„s‹(_8§(_¬óA(O,saèjqaø¢†ø2„?‡ø"Ä/ü*Ä/ü*„/ž®oþŠ"O8õˆ"Oxõˆ"_¬ñÁ*O,qáênqaøâ†ør„?…øbÄ/ö*Ä/ô*Ä/“”îöŠbO|÷ˆ"Oh÷ˆ"_¬óAjO,qAëzqAø¢„ø2„?…ø"Ä+Á¯B¼ü*Ä+áéúÈ—¶ôA((ׄ.äb9C.”ôaŒA‡BA*’D¨i¼ò„R(G((G((Ž#Cäj1H®‡#¥‚'„ÄøAˆ'¶H¸xRø„Fh("ŽRÀrA&ÈÓ¡\8BÄØ8!ˆ-Á«!O(è($f(n(Ž"G„¦Fèz3n=…/ˆ1D£…A(2£J’àK/šÁH,”%0i@AÉ2¨A@òbÐ(#cÄHD“Q‰DÈD1D‡/%ÈB4JˆK%’ˆD“r"H!d*R‰¢$!£d( (ñl΀QXX†$(ê(ñ'L'Š.Á~IaO„ȃ­K,‘+•¸'á©VÄŽ<Ä2†Yâˆ"RB$Fؘ"‚H $!ˆ1ÂJÁˆ($¢F$ˆF¨‚nŒb˜‹±‚ŠsÈR‡q…ŽÑ*á…ñRO!AÆŠ…xøM2“HØÂ\²'(–qHHÆAÇ"ˆ‚ÅK!É—$(IbDK(DN„CHDDB„È$Ž‚HÁ°J¢°$­,:TP„p¨AƒB6…x#X8Ed!GDGEôL ‰µB5Ô$TT±HJ+¹‚1E-E„BTAg–(…Vc"aC,,‘ˆ"AÑ1‰A¿Ä¡Bh“bB…ÌjÁ‚‚YèЈ¸¡‚¿ÌDr]w™H¿1wYû+çǵùÌ”_Õ¿.õ\oHùAÙÏaõA{_µü¥ßVü-ÏFþ÷_÷oxwô’:¯¹ø+ïÃòßEïïÞûÙ.sJú²¶?áýM,½'?øtïóìˆnä9ñ®_/­ÞfÓ#ô¸lo,½˜úo/?xûqe¾ušòKŽ/hù×Ñô‹N¿èõæßþQHÂôöûo´ù"Ìÿ:ž¯áyúšïaãË'Ï_Õ«Ä¿‘ñSS¿âóT—íïôñwª-–wioqñ[ÜïÑø‹¹=]÷WßÒôm,ÏòÿßO½^Oqù…G_<õ[[5ýë^ÏýwÅþc¿äÛ&û‡o1ó^íM£?xóÓÓ?ƒt,q/ݹø³§vý³?zrÖøXƒ?˜ø±[ý·=Ÿ±tÇv’ö’’/8|Ïìuøz¿¯&ÿ:hOôN%,þ{Úÿ¢ò¾Lçó‚-/(ñ’:oKòòÐõCN"?5ÔõGmt_vØD}ÇçÌ»$ØTyÕõÌŒUüéi3úSAWR„üE…Ÿ‘è8µ‘ôÄþÏì,u’ñ¤–—þbÖ?;óÓŠ/"û"‚?:âHücƒ6òwÿAômhͨïóþZ‚ÿ{ñÿO/½úDÙ¿±ùÁYÿ:õÿ#ßÚû»—?äq–röR–Nœÿµøcx|8ÜTwg/yúÖÊ͸¯)ó–’/)ùo)»ÙòÕµôI¯µÕ»Õ±ôKVOÒö[ÄÍŸóù¢²/AØvø“o}x!ù¡×•ò)mSÄU_øƒ§¼ŸÌØŸ¹‘uÂòˆœo2ø+–o2ýë./+ù6‚o"ø«-Ͼü+Ëÿºõ_,n-ÝiO4òOîo«vòû›öûÑŸ¬µÊÙ¸ùsÊoÙõÁV?dù†’ga/qô›]_8u¿òW²oÖRYß„ò­kçh?ãÿnˆÏãy’ò‚/!ùº’+ƒ¦'CA¯BÓ4aïAÒQî8÷H(o(SD?üSD7ü%úåžGAÆODxsx2ÖUü*$=Á£Ñ1zÂeÅä8wLø†2A?¼sDôÁ„îiÖŒxsx2ÕXü:$MÁ§!~ÁaÑ8wLè(ôÁ:SôÃøãž!Ä’7ç¨'Cè§CI|’Èç#¼ÛBüA¯BôA¯BôaÉöM‹hO8µˆò„S‹(_¬ñÁ(O,qáèjñaH®†ø2„?…ø$įü(į‘ü(„/1ž¬oQ¾ˆóÄs‹8O8·ˆóÅ>ŒòÄ:ÎîÆäîñaÌ/ÇøsÌ~ͯü8Å¿ü8ů¶þ^aËyß8µŒó„SË8O¬ñE¸_,ñEjqAü¡Äú3„?ÕèCøRÄBøÈB¸ž¬oü™Š$„$B(ÓdB£Å„#ņ‡…„ÈA„KALúAŒú+!O(ŽQƒ1„‰¢8G„¦f…®„'*xRøaˆ/ô(ˆ ¦g¨K+!O(Á(O(â(Á$K8Á.Õ‘.–“áB|RøAŒ/TÈF4‰¸¼ò„RO(UˆKð„"A¦†2ªÔT(øAÇ!ˆDa@¤$xðA$„ÄÂTƒ‘‚„™‘B˜I(¤‚IAD±(È"ŒD‰ŠŠ$Q(I$œŒ¤‚Š‘&‰d"M&TH0¢E(„JBäÛG¢œ”D3„AÁ‰ aDÈÀbœÅ$0HŒ…8‚ÊмD"AL‡„#@¤‚€"$™„°œHŠƒ„(±¤1Bˆ‚A&”„0.€$„(Ù3ˆ„A¨!B“‚AbB@!1HIR0€4‰„H(NH$‘$&Òá"D­A1„Fâ„EÁF‘(-Q"P$ÀŠqBXi‹B(H”%„¢A!0ïûRH¡H,1((!Lˆ’@A„$‰& Fh1R£8%‰8A$„U$„@ŒVThRŒLÄ2ˆ€)±A£¶!‚’°ˆÅÆ3 ŒBˆx#¨DÃó2„"/R„¨!ÓQA…I¸¡$ãˆh¤:1ˆ£t&)Cr!X^TñŠñBJdJñ!X-e*d! Aƒ!¹œC€„Ô!Æ,”!#˜)(¡…PB! ‚ÀA„4H&1.@4IIEA„H„A*„…" ‚D!õ³B$Á$D†NA„ŽÐhA!$BDD 'ÉAh€?(0E¤a($`c€„"i”€ž0$`(ƃÂbLb¨ˆ2‰Ø3 HFJè„b)$ш’Aˆ.BÔ„(t"„$$ü!\Ü4ÁBˆè1äL‘H¨ij())Dø(Œ,Â4$FHLR!‚p¥$ƒa¢ÉsIHa„šˆ!˜`$¬>»D,‰ »Ð$ƒHƒQHˆÄrHDaC‰Ô!H‰ƒ!Â"C¨d‡"À$…QH"(E”a„c²DÁ)q$\¡„&ˆt¡BF¸8ˆ4 Âß® BH‘$F$Ĭ€b„àDI!b€dH0QB† ÍʈóI‚„( ÄÈ$ dà‚Ä„1 !Ž'BŽ!0‚ 8B 1„…$X‚ š!„!ŠAêB?¢!…"2A€¤a1P‚¢p"RA†²G†ÐJ"1'@(ñ$B„/A‚A%”+DCB Æ"¢ ðˆQ$ð"Aˆ+9PB"/#,!&ȃ²Ä¢GpÒ£ñ€”ÁB@ƒ4"D#"h”€Q!A)D€$ABÀ$D‰„ˆAˆb!‚$ˆ„)$HŒ"F¢)ˆF&#(# $…ÄäAƒñAA,!†”DŒQ*&â"(Úb¤$žDÄ)M)!"'CÒ$Q&,pPBDB1$ƒÁ!&Áʈ¢AÀŠR0È#‚²x„ˆÂACÒ"xJ":+„‚¤$Cñ(®$)Aˆ!!D@D ,D$DD@!0H0)´‚¸H8FB@BR4$„Žb!.I#á"3$`!,A(H6ÄRÀžcŽ4!$‰_!Á©Ô2¶Q"m‚Ax2I„Lù˜B€¤)˜e4$ÄFBžR(⤤‘H(":•H/!¢B‚,âK¡)d!]H+‚—ƒBH"`")…£C_º ƒaЈ!eJ)*$è!#ó‰),X„!$K„-‚“’˜ˆ˜%Á‚`(#( Ƀ2"ˆ2BJJ±FÁ”ä‚.‚„˜bK‚:d""‚.râ.$‚)a(nÖób"SÊ',Ä(¡( ‘O„!ᔤ¡L.!$F(¡$!Ä2L$G"O„’eÀ.(&¤D% ^$CTFJø$ø°‰ƒñýÛôI"0B©Al"-ƒAd‚ŽÀDH‡¼(¨G‚¢‚0‰DˆcDá¨BäH"ô‚$R"Ð%¨"ˆ%„)‚&Cè#‚d%€„Aœ¨Ah%DA|Ò„„F-¥ƒKBÁAÀ$ÐD!1!$„ Á!P„%¢X$@@ ÀsBH"©øLz€P!P$!H€€$$ˆD#)BP$$ HA‘!„E@BÀ:ñ«S/#Ã-#k!н¥Šh!$a£HXXœATÈ«$+^$‡M)!å$1‘-K”*M‚,Q/‘¶$aY"P‚¸b±’„õQ2­A‰ÕRé('©%b)%æ¨aK+Í-Ï“%ÁLØNÛÉÖ$L”Ƹ(•ÒÿKqJQˆÓ¢Á§„B—"&#ÑÁôB-ƒAG„Š2FGFè1B…ïDuŠˆC¢TC¸‚•"§WLN”DsX#lɈ+Uá2S5>i¸²$I‘BkaR†M"gÂlb!G‚Ê’†¢*áB=ŒT4ИÕ$TÔ©U¬"M’m‘KiÒŽšƒÏ‘qBrCtC‚âˆáhÂ(3b(+‚)2¥'!¬ o;¡ƒ,¡()褲%D¬"¢#"²‚ò8B`2I¶8‚¡3R+…ø’†(f„n¶Z¸816‹©T()x(òå;pSv8ø(SŸ#r_òj¯óô/»7¿Ô•žo޳2ó#~ï”úÏmZâÄy¸L~²üRì“ÿ,Âǯ¿Qÿ”HŸ1þÑ?ÿ‘ôKÙ÷¬ï̳"ùÅÃ\¸6õâ.â×V]Å¿¸ý½UŸ6ò|/òÈÞ2_wûƒ©­9_Õ÷¼v¿û4NXŽRÿؽîñ?ßêíÃ6lÿ›¹.ôl×TOFô$lOXõßOîù~¤¯¤ü„Z-¸Zøjúž[ß%'Cô"$MA£ÁacÁaÃè8vÅø‚2A?¬2„?¼!øã‡#qaŒxs¬‚/CÜü*$MÁ«A¾ÂaÉä8÷Ì8Ž2IñÁ:OòÁBÿ8BÄŒøcœN„?CÈůA›Ì©ÉÁ÷üSÇ„O(ôÅ:A_¬î8ƈ7ň'CÈ­$I<èãÁóÔQô2ARôARôaÍaoÖ<ö„sÉò…sÉúÅ_„òÄWÄîÄ/nñA¬/CøÓL/Bøm¯BøÚA¯Bø’aéúÖAí¢O8Õ,ò„SÍ¢_®ñA*O¨ñAŠOêqAø¦„ü6Œ7…¯ÂüA¯BüA¯BüiéþžM¯(öŒWŸ(ò„S(òĬò̬î„/nñAˆ/GøSˆ/F¼ü*Ä«Á¯B¼žîëÁûc%°A’$W„&4A&4C&tAxaÌA$DœD°<O(E"Q$Ð$R„&VlQƒLQ‚„-Ag„!„)8Ž@²AB³HÂ"CdbÄ‚#…xJøa˜/”ˆ)„¸¤‚+Á£á(è(å„â(á„â(sDhjVèx<¨¶rHBpH1>B˜ƒô2„Àô%‚\Á.ÒÁÆÂÂFã!˜ $œ‚M’À“D¨V2$5(It!ô‚A€#dA+À\LÁ‚D¤Ä‚LDh„Zƒ¢Bc#H1I0HHƒFA‚ñDÄ!!$MA`DEÁBd#ˆDAL°H"ɸCQˆHMˆ#‰¤Mäó"$Ê$"Q(I‚„‚(A8!k’ŒbP‚aAˆDeE(‹<HD´H+$)!„QL!@D$d‚¤­"˜‰L„ñKe0B2‰”XA€L¢‚$0BhDpAƒtÊ„$˜AH‚H‹ˆ€Sd¨A)D4E+‚HAņ”ˆ@$bBDAHAʈd!˜¬:€±C!%$A5‚d1ŠÑHAAA…„Ã.Ђ‘ˆ*‘JAb„ A&ˆh£!r(„A&Hh`Žp$j„(A*ÁB(ÄJ8@¤DˆÏ"!’H$HŒ_·L€a$ƒ„A ¸@!„&x(Ʋ„`„ˆ„Ø$€‘#A€F"AÒ…a$HŠ0D †€¢I€À.SÝ"¢AF¨D)áCÄHÅ‘i(È&ȈZ‘B0,•T¢4"H-‚ŽA’ºAA'Œ ‘D‰"È"2Ð$’!DŒdˆH´(„‡$D‰(!"E#¬D \„2I‚§BŽðkF@D,!@@ C$ @(HFˆ!A”†)€h¤E¡b H`H0¡XŸˆH„(€F(„B!ÀÞóšA* ´´4H >„$F4B…DAB„)D’Hˆ+AŠ”ÊEõ!J‘(N'IfA D¬s(DA䃕H‚OQ(cÂa,±&BV¨)Ê!.D.",ÔBBB’B$)BòÇø‡*aáAø(R,(2"†"a"CAKbBp™1%´BÁ”«!ˆ)²¤‰8$x(Z„‰4P6ˆa„‰aJx:ˆñ"$™ø*äÕŠ„YK!ƒe"*ä!±Ä*ä7΀a5˜Bƒˆ1)„!D8ŒH ˆy!hA‰(¸‚qBh(& €b†+„Àˆƒ%¸(”"Œ+4N!Š"„d‡"F48‡A0H‹ƒoGCD BAƒÁˆˆLÚA‘’LÑ(ܱ‚²)„4!B牌!K2̇$Ž(,r˜È"ŒÈ(@BÔFŠÒ‚„¢A"Œ²„G²%3Ä$#("ØÂ,¢„(A"„ ‚ŠÑ„†„%„¨FáFB…L肬²¯"Џ¨)“Ä/MAsyײ8ô#×4¿±÷?E_1òê–¿ôýo¤ò¢†?qï†ñGÿ1¯ûÁ…_”þçK¯ió»Ã÷7·w?ùòË¿5s~ö—+¿ÚýKµ¯bõJ>k¸?Þª×÷õë7w»_šý9IFú·o*õºê·wæñ¸®ï©|Øò\†hÛÊ÷Žr«h/äÛBó×k¯Š×{ýj4ÿ;Ñþ3AVþôÚÏ£z2jë/cøXöo¡ä©üæÃ9¾5•ô;z±tùK?s÷IÿëóJ?'û2²oJóE¿‡ûH“ÿ™ý?1ÿÖòii¿”ômãÿmñ:s?±úŸ?¿ñQK›ksÞùõ?¿ôõ3²-–/kñ2?æý.›¿yñûû?ô-)ÿBòHÛ¿¨÷&zïóz“öÒ¯¥õšˆ/+ûv&¯§þ8Zooãió2²>ÿÎæyñ›>·Þô%!_Töáb¯¤û6roÏõb¾ëÁ/$ñÒ/¤ñ~¤ß#Bñ#wŸ³ä$Ò—Ôô[C_4ó1Ïmæÿ>òâ¾/bØvú·Žì?vþãtú?a_òaÍ}§ï'üÇ#¿|ô³ó4xÃóÓKo(ÿsÿtzåûƺ/cÚ2ùá#/¬øeÇ2Õu|[õEIËÂ}Õ¯fúÆ­ö‚äo%øÂ‚/¬´&Æòæ¶/éxC~–ò¦¶?|øB6=ôŽRxüS%W_t†ôÒÎo,ý^ʯ¤÷†Š/,ùÊï¬ó†9s×sö1s¤ñZA?µõ[5ñm?dý.»wi/iø†o2ÿ\zû{/¿}ü]A]IßÖöI¢ÿÎwÿ?½Þ›üË¿½ñÃÂoSþK×ÿ²—ò¢¶/bù§jñÌù?±ý½iwVŸÖö%hMCßÅùÂ'ï¿òÇÆ-Ú¯%ñÚˆ//ÿJçîìô2¶O(ú¶–÷#®ï<ü7ÚO1þg%Vô%A_$ò®^/e».ø®þ'-Ú©øjú'‹¶ 'Cô:$]A¡ak!aÁŽsO„â(ôÃ;EøÁ"?þ(sa­‚7Ö*x2ô!Á¯cÒ\*áo!ÂaÉò‚sO„â(“$,’$¬?n(qaxSŽx2ÔÜbÒ|Âág!ì8wDè(ôÁ*A¬î8ƈ7ƈ'CȯC–Ä£¼ÄO#ÛBüa¯BôA¯BôaÉöCËhO:µŒò„SË(_®ñÅ(O.qÅìnqAìnñAŒ¯CøSÌ.Ä/Qü(Ä/ü(Ä/žìo¼Œö„SË(O8µˆòÅŒòÄÌîÄîÄør„?ÅèFüÅBüÁBüaÉþ–AËhO8µŒò„SË(_¬ñÅ(O,qÅìnqAìnñAŒ/CøSŒ.„¯Eü(„«ÁB¸Zž¬ï¼IM2A$ƒÕ$2E.Ä„#Ä„#õAŒÔH‰Ä„MAŒøÁ#ñ„p„2AG(“´„2E®BŽ„„LyBøAŒA‰ˆ„úAˆO¼ò„R°„¤%G(J²„2D&$äB*Ä´BÄêÔHˆäšDˆO<O8!4„„C育„rhJ„Ž9D$'$ƒãä¨G($H4>H&”Ò&1H.„ƒE‘H“²r˜ŽàH8ŒjE(ƒ„D2ˆ0Â8JÂ…$Ĥ$ÒQKB”$p$¢LC¢HÁ)Œ!êDñDh$ЏÀ"‡¡Æ2„$„#ãBÁ"D‰ Î(A@•˜hÑ„’†8‚†$!ᆈ3D(H%DH‚A /á!BÄ$B–BL!Ä!€’B(B * ô´ÃFä$!R$M!I¢a‚(‚0CA ‚4AèC‘J˜JC$E2„6Œ„Œ¤RPH!˜)Á`H!DG%B¸!ƒ•‚)A*±ô\6! ‰(I-`ЉAHÄÁ! ‡ÀAÀA`!ÃÄ(pIDt$D¨…HEÂa!KŠ"Q†(Š„¸€J(Qˆ]³Æ2Yb©5ŒR„‰:„!Š’¤ LâˆBAQ€Hñë„D$t„"1G†!I”&²XäAD1©$¸aáŠÑ"Š™abjÁ\!‚;!‹A@²X8/±Ž ‚HD@#dtH„x2$(…Š„LB¢AJ$ „!$(DŒf‚( "¨È#Ðá75)ŒÁ$@-Y„‚ˆMà("L(BH”BL@ÆðAˆ‚BM„0R DDJ°qAˆ†"'(AÀ¤$!ŸÅ ·D‚4µjá˜D$+i¨XK‚†Ž„–„Ô„aD‰R$„Ya‡ŒT$Að‰J$C1vŽHˆ„hA#„ª$MƒAD†äN ñB%AL˜$Œ$r(2XˆpÊÔò>¡S!T#Aè!d'…DƒÂ‚G!8¬ˆ&ˆBȈa „QŒ2DIY‚(AM‘…$E™t!DðD*„H$ ‚Ä„BDP$B‡""ƒˆ„HBôóàDAŠQ¡)L*” È„ÀA‰ÉˆDA ˆ!ÄHD°‚È8L¤O‚„ˆ¤ˆXDH(`HˆL(BŠ‘$$(Bl( Qˆ$dŠ;"<¨€´THA%(™”<„ÑHBFØ„E˜A3ŒAA"4‚-‚Lè$ÈH#QPÅH-DFX$ DÙ!Ä„…‚I´1„+B ‚d2Cê!$»ˆ„2‚È5ñ'A$AHD¶!€9DE!@D¹›!„BbA ˜B0†DÆXŒB”#‰’) $Gƒ’†`b#‰Ü2Z8!A¡‰‘B‘‡OH±‚ò"H@hfEhD„)ÔÆY„Œ)BÑ+‚Ðd $‹DXXÐ$´HWH;„ŠiŒmD ü$D$ø’*2%BO˜‘*¨aI2+…Jø‚ðÝ: È!ÀBHAD" òAEÁ@ˆBd(@$2&ƒAf#œAaÀ„HD$D@@"aUca–A€B1"†‚!BÐq;ª0‡‚©…ý!‚A"aƒL8A"T"!˜„„‡RI„”È„)A\HJ†8‚ÀRA’A‚!pŒDDá"¡$**¤#h.H ñB(H_qsLh A9!`ŒA((!8¸‚‹¡AC’„+$MMˆÌŠÁˆB‡A- -U‡!†ô„8HG…¡b„@hC(^éÄ22L2(,6H#"$!¤)Cäƒ,ÂLDB‘(p’,É"X‚J²H!Q’$‘&HÉFH=‹AÙˆ–‹aYH›‚†’"„jR$#L!DB øG¡ê!Ž“!`ÁJaÄ@ „Œ ‹°*ˆ)x8ò"Z"‚qJ¨D6*‘&QHÔˆ‰D¨:XBÁ`.‚„ˆ&Fa(ˆHIHâ"4$Œ¤>ˆ-&rfˆè(Ø!¢„8a˜(‚‘D‰Ç†ÀDDÎ$Žlb+AȆ>™ÀA AI€H8ƒ@À€8@‘D ÀA$‚!!PBoÑ!H%2ŠB&„‚AA J%BBƒ!†@B|5~¼õ(R‡‚-F‡1R‹!(8 ¤=©VHl†7†„NAï‹åƒÔÌÁÅ9¾ˆÁIŽ8!†Œ)xÈ5BVÅ&…ظX(§HB§1,üˆqËY%x‚7‚òƒ¶¸EyBxDÚ„²F܆˜FèKCHoBò[@_•i„L1Q“óB†¢àšÏCX$„ÉxBš¼MŠ5´69˜FøòáHÔCQ!%Á&dQ‡)‡‚ÈI5$ï!¶˜…Ja!+4!K´RR1€Ñ´’,+:(((k!*¤@hˆÎ8G/‰?5dÑ*ÈY•˜Lx‹¬ãJÑ)Á‰Á—Fr)¤H™U8pXpHˆ3$›4ž—‡…qQh”ÖR¡a+µ¡b(]Sƒ³˜±±†!å\ò"(À¦¡Lù2Ò)ñ)ªA¯ ?'“t¯Ñô+dw¥‹ÏS¶öI”¿þý‚5/Ä«?ª÷K¸/ˆû–[NŸÆù,O”üòYŸcøÑ4ïaö:ÿI;]‹IS¿•zÃú#ß/óN¨)óãü­óVšïõÄz8Ü”ô—L{sþ–ªO;ôf¥è¨øWß(þK(u³®õ̘Méu̽‘ù‰tDá¦ø4$‹FïMÿ2¨n(¾>Æ«cG…žªOcý.tcØ#ñ[(ßñwz²Cõ9}Ë!ÏÁñ韯%âi«>Ã?$ñÉ»µ÷¶ˆ&ôiI”öÄÞ‡G¿ªù["¿øÞ&õ˜…ø¹ýÏÖ¬õ¿Ÿ¯¥ó–²*ñ&÷·£¿¿øKoixRôi)¯”ô„š¯Äñé:¥üµÿç!/)ùSX?û·>ú<‚ß^õò:-oaøWÿÝñT5÷®²cãÆ¶nöèÖoEù&.O®÷ØË/!é­äÃ÷¤-jOôcn;4ß5ÄQ=J[Wþ¦wÏúÇ>¦/"ª¡/šå7xéüwço‘t$õilrúÔCOR¼ñöG´_äõÙH„Ûþ®co±þÇ.†o2ú$êïxôbÇ7ìtû>AGT—Äôû¬Aox÷»N¿„û×K-Ó¿¨öë:?~öŒSÏ:øM¼¶äHø„}ÜýlªÎÄïATˆÏæÏlüŒÖíè¯äòÄÊ,ýȧ¬O5íüì1ZE/sõ(E/õ(E/1ÖöaÍáo8—,_8×(úÅ:„òÅ2æøáÆnñaŒ?Cxsü!Å/Sô(Å/ô(Å/ÖþaÍaO8—,_8—,_­ñE(_,qEüáÄòáÄøs„7ÅVüERüšQRüaÍáïôŒcOºµŒò…SË(_¬ñÁ(O¬qÁøä„oîñAˆoÃøSÈo¼ü.Ä«Á¯B¼žîëÃ_çK±IôA(IrEèB1A&tAèBqAxaît(ÂA"òA,òÁ«!O8á„R$M›$M2ÓdB—„&4C&tYxaÌA$-AOøÁ£ñ„SÐuYtA˜$W…&tAÈ”3Å„„Ä锈O”ˆH‰¹¼â(è(ñH(ŽN(Ž"G…¦f„ŽüshŒ)’A%!t8QÂ"<,*Ę…Š”!pÈYŠ¢AL–‚Œ5¡[A‹‚Ã4¡GЂc„A"(ŒN+H-(D$‘BG”žB"G! a„€qfhLd —)$Z)X±?¹ FF#d‘%XD ‚eÀAEˆdAà„„ÑØ¡„Є„°b¡(äAÈL(."D!ÙA4žB`A! AF(Ò$A5!(¤ˆ,‚Hbˆ-¶CÄD UH‚qBXD<"˜„ $SbAJ’AYCAMaƒ›A)BˆÄ$*”E0!ƒB¨P! ¥‚€Šá!D‘a¸%˜Šˆ„Løø{àè’DQ(œF+)B)Ñ$Q$ID"G!€)!T((%H)Ê$P&–1)”D‚a!A¦H‚ÁBŒ•"€ˆ’„B‰RABA‡„A’‰¢AKA+ˆ€”(WØÓŠDR$EHBbaZrHÔ"A„)ÄDR18MDh(AIBX$h…¿BÁac"ÔBØBbC*ô$%A¡$h(!’(('„BB¦‚8&1$Â&‰„Ô,±A²TÓ„t‚2Nˆ„¦èüJâÁ‚4•@$ábHŠÂABV€*“F@H4DH"Ab„…€€4ˆA€È„ˆˆ2ˆ€Äó˜"FÁ$ „¢ÐĨ$ˆÀˆd„LA‚pŠÄ$! „€ˆ0„;EDhD(…$‘(#ˆ¨Œ°ÁÁAH†"0’0B¨BÊ„òôWJdà$‘DÐ$&!°$¡2( B*B4"BÒawd!L´qxD„QBÄ$0$‚HèŽBâId„ ¨AJqFh$ˆF6>"”!Ä‚¦(ÒH"ˆ(|5ß-BPh° $l„(LB¢„.JE„Bd„8%4!/%( …,QD0CÄ"C„ÇIJ’*Ca¤ƒ+D)ˆjAH„IC‚"4(†¤%ZH€‰ˆ%òu¡ "J1D¤€ˆ (@²TCX h2I‘‚LJJ&DX„Š‚‚ÁaŽ$¬$ˆ±„A#‘„Ðd‰U*„"J‚À(6AMB"˜(B„A"BÂŽ"Lb„…!nˆG$_: @$(D"DB ÈI‚bD!.€ "†²$4BPƒ0!‚)†ÄB$" ”ˆ,*1B€`‚‚MBB‚O²4Â)‚Â@X‚p$x6Ä„/Œ(“$AÁCŽâb6Ci¨Š”IK,ȤA—$‘&„ÂhX(8"@!##F(ÂG"àˆˆ0$ƒj$&ÂD&xFh©Ä$)ò%/Ab" @(”(@"ˆ BBBI(2(I)X!„‚Š!$¬H€(€f! $H0F Bˆ( ´‚˜,9ÿHƒÃ"D(AŠ$"aˆÊ&$ÂŒˆbˆB"FB"”BG$€!È[‚‚_„„D”BA!C r¤L‹M"LˆÂIAPB°(¢A‰ÄhŸ] /DA1BA4Q*™€a˜‚A“$D¡!#±dD$!'ˆ3¡‚Bˆd €A‚)‚±$(202)¤%pˆFè$!ˆÄ8BFH"ô‚Õ#LE",M"Ñ$"Ä"a$ /Â!¥FÒ8¡†’)4ACdP’* €¨ác¡BPB@BxHÈ""&XLˆ>ˆˆ!„O' „!Œ1F„!8"B,ADˆH&ÒHˆ(4‚Åébp„”ªX‚".„DÐZ‚ØJ"QH(€‚ŠD‚$ÈÂB„ˆâ`LFtH„BÄ¢(FN"Ò$$ HA‘A@@@AHAT(ˆ‚$ ""HPˆD$@"„ €ˆ½@@AAAD!AHD(‚@„)  "Œ>Ý$KA›bAÁA±…·„‚bB†1%†%cRDˆèR *™¡G’) Ãü„"&bW¢"‚!Ii˜Š¡Š‚!è(È4XLÂ&r,¨AÈàAt*¤Á#qØ"„òa!0A#EAx3eÄ+*‘ŠLñ"‚)Ññ‚‚EÁ!Ò4b¼äÄJG/ˆ$Ѳ$ÉÍ2'‚\H›„‰ÜAøH$‡E‰B$dDÀD¤&B’ˆO"|(˜DD)2$-Dƒ%(B,Ã($ŒBbˆ â˜;uD•cAŸ1ÄB•‚Ô8¡(‚0]!ŒRfX‘FÈI¬ÁM¤.……DJ¸Ò,C‚ÁŽ2KMH%¡BA*82+ƒR:²D(¡ÄJtšæ¤ÓˆâH,ˆJ¢BA,4,G‚ÇBÈi¨ÁÃ’Á„ÄŒìô¿mÐówyc÷)5±õywSYÿüuó)òQk˜_¶ÿK)u÷ËÅŸqñ¥‰?öIÅ¿_õåK?™ëôö7¿\ö–Š^hSòÙG™øuá2‡Äk©_—úiO$ñê#ß\ö‰‘ÿUô!¡}7’OÈé¦×D´’¾†ýˆòÏJô2Hï˲XÜ,qmú6¤žˆÏ¨ùì««ïì×(ø^L.$í÷šŒDù(R¯‚µ¢»DØ¢ú.N®ÔcÉBÂô:ûT]B=óñ[eŸ8ö!%ØDû’">AïµÜÔû§urñ$MTöHÓþAoæñì?üóC_4Ñ“ýáŸX÷Ã!?³ô]’M¦ªò2cßóß•ý­AŸxüG!eW×[-/AÓ.ètÎøZΚάcvÚüžj~ž¦äHøbþÖîÄîˆ/ÉýN(Ì6lO¨ýÞ(ïón–OBþ„X¥òJÊ-gûJåLóqÿ²õ-y±ôQ¿µõ)M3ÿ_µ?\ò÷˜k¢oAúÃ=ýoÉÿ“ù'¥·QŸÖômé_vþY×nô½:¿œþ›ÞA¯¨ñùÏ_²ûE÷Ÿyó÷ˆO#Ødûñ?þj¾Íl?²øweŸÖUú1ƒOfÿÒxoIòʸÍÚ¯­¹š¶BûŒþnZÏëñÿ(/iê*ñtÖkï/éúÄö¯Šø~l(O„æÃødú¯É÷ÖÌïeÚ,ýˆH¯(®¬í;£ÒóMw¯Ô÷K'•Ÿ4õI.Zï7ûT¦Ž6O+ø$²MæùóýÂß¾õõnŸTò)dß–ôeL¿TÿûdÿñžË_”ù“X—<¿™ýc‰³ÿM·?Iò¶‚o#û$÷7Ù¿ßùúÆ)RômaTÒò1ÖO.wúô¶Ú-’Jõšˆ/%õ‚¾Ï&ýèžïKò’¢O#ájù¾¬¯©úœöOŒú(LO†ÒHöÈ"Ocýhúo‰¶ºøJÒ¤ü‚B¯„èäþ—Ùð2D-A¯CÒ4-aãñaÉá8×á(S$¬S$¬Áî9ƈ7Lj/CÔü:$o¼Ô>/ì8wLè(ôÁ:A¼îyRtaŒxsÌ„'Cü:dMÁ«A>MaËHO8wMø„2CøÅ:CôÁðá'AÆN„7ÇLx2„ü:$I<èãÑÌ:ÆLô:AÏCôZACôZaÉö^aËho<·Œò†sË(_­óÅhO­óåLîÆ®Æø2Œ?çéÂø:ÕBøZÁBøñÉú^áÏ(óÌsÏ(ó„sÏ(óÅ_¬÷„_®ô¤†®†ø6„?‡ü2„/ü>„¯ü:„/¶úVa¯)û„s(û„s(ûÅ:¤ó„>¦õ¤†äjñaˆ¯CøóÈ/C¼ºü>īɯB¼šžìo)þRàˆ‚Á(IS„GB„.„àBHøaŒô(„ð(¤A‰š„«!O(•(KH(Cز„R„GJèJxèBxøaŒ/ÔHzÑH’¨/¸â8â(â(‘(Ž2EèbIè"1"'†/ô(ˆ#á‚:(++!Ž(,á„ÂN(,sDhBBâ3W%È”B0H G5Ca$I‚h¨LÄ¢Ì$BÄAÄ&1.„pˆµ$IM‚CÂ"„a,xx„abD"D.‚%2Š@¢!C’‚À¢CØ$"Hì$bID`F†¨$ŽA-$‹H0‰$š”"ï) ŠˆA „!QR$&$¸"‚$ø*$AFÕB p¡”ˆD!ZBM" È.N’D"iA"[,B"*:(‚a@b"IHô"ˆÀ$Jq„BD¨BIn*pD#vÑ÷2ü8D‘H…T(HEk8ˆpB(“DÐÁТ$òpH(“ˆ(……)ADRÔ„j&i‚‰r!b)H-A’!žF!ˆj!$T!(…4AL¢ ‡™$’@DBÉDÂ8âB"$LAHA„F$1* !”/VA#(!LâAFˆ8!G!à„8"A€•P„*†ŠQ‚ !„„Š4ŒÔ¡>L€QL$H•â$ÔH‘h"M‚€â¤A"ÑV”`„,aˆPÃC‰1(QH’)DD2ÈDH–X…ÂH.H±!ø¡AJHAbqƒaAL¨(>ƒD…‚"QE¤(!„D¹ ‚H@AHD¡.ŠDZ‚FÈ&&¥ˆ!$,j„p„¢$"!`X!€.HŒ!€Â‘F €a„´á%!‚Â$€„p$BHA@.‚H$DÄ$"‰bBˆIa„$ˆIˆC8RACb‰D(I¢ˆB(N(C H†¢ADH"DJBd„Bð{WHG$P(@‚Ñ(µ¢ÊB ¢"(XjÂb ‚b$*DA‚<$¤A#Éah È(N(Bª¢„.(B %,EH*t¡ÈE¨ˆ@.tQF‚‘D ¤$Â’‚â¨:Ž`"S*A©%b(CBBÄ"b`a"¼‘Bl$€Fì(bh€á„¢( b„ƒ"ÅÒ¡"„^D‚¨kLH!A ´$d!ÌVŒèBñl3€"€•¨`$ "* (€*"EŒ"4$ " H¨JC¢HA&˜(I$¤ˆXÀF 80$‚„HAhB`ŽHÀR"‰4AŒD“¡¤FÆ$D:(²DD…bDÀ-àd!„ލƒhQ%¨C˜$‹,¬D(@„KX#ƒ© !€"„ò”H"€TB„FŒsBˆ!D¨¿¥G HBƒ„Bˆ‘"D€tB©QH&ô„2€”ˆ$h‚"†D‚)„ˆ€Ib!ŠÂX!@ˆHD!2£T‚"¼9> A”H„`‚NŠN$&¤!I¸8T„N‚(E$DLIÑ$¼ˆAº!hA˜†ØD£(išLŒè¥(¡!0$EX(‚+A˜B˜Š D&bB+K)ZD(TBD@^‚°2dŒê¡dˆ/AòJ@‡"FÂA$D!@D5ƒ *DrABHÁ4 (D@q( È$,ˆ* €¤ a0LD5594*‘P‚P…`‰`4Œh‚$`VƤB!"‘L+"¨ÊÁ€±‚H™’¢1„Ð$È„Š4„I¤ˆŠTBhŠNH…LéD@@$‡#@ˆôÙx`¡„&„$‡E"T!‰(HC˜AŽcBFÂ(FtDHáA 'D¦‚0( „JÈ2S¤€ˆ!D(""KA¢A""CŠqdj„„,¢$-Ôó -D€„Ò"&9„’$G!2CA!AA„JÁœX!XF’yA‰´„B¸LABHgŒ"¢AG„²‡ƒ!ˆ##§ÁÐÈÁL Î BpB„F@_Ø($"!"D…”!Š’(BÄDÄC.Ap(.„9(ø&–™‚ ‰B8H„€ƒc„0&¢‚‚#I„‚@2‚ Dd¡³@ˆˆBH#„@„„D€@‚Hr((DHˆ: @A( „L(!„$4B!‚„‰„!€1‚\6¥1­L‘H=i)R6C‘(’Eb1&qéè(e’nL…ႱBÚC³F˜”‰¸D±„ƒ³Dì„™ä;.ˆð2ˆŒ¢B¢‹I€ôDÄ‚Ž$‰ .N‚DBB!Vä!4"a>R)ô$?$À!0D$…¡‚-Ä+ÀT)ÒBœ"!CIòˆAG`Œ $èD$GAtŠè"Ȇ/$ô$ƒ´($ôÁ„ŽB‡„‰A2(JÃ"2,ƒ%C1¡ÃÑŽtJZ„#Dƒø—Ó ‹R2±‘„h ‰DˆHbÄÔB@øBD)ø(D4H#Ô(ñ„b4‹è‚ŽBM1Ba$OtfXU&è’dVK‹#ÙŒô˜ˆ!ŒúL‰1HdlŠÈ´N¤¢‹¤bL‚¢§€jAÂB…2$ßôDóK+CÑèòZ½a_õ$ŠŸ²öR§Hßá"òs}/Âü•O"ú™sNkE_þš2•ÿTZþtÔŸôö•/(ú¶ÒßžücûÞLax¥ª2?ùhÉ[Fn±ïDwÉýSE*úßw¯¤éˆí§ødŽ/ˆ»†ýR(Çæ/‚ñ¦>ÞÈÏiôk(OB«OoAîŠüèïŠñ,R/ƒôH¬ï‹ùŒZ­X'g/føˆ8o±µXóvŽTC†ã–ñcz‡1a¿äs4sþHuƒ¸"ù&.uŸ‡òÂÙÿ'ôÌ“AÆi›FÏõ—¦Œç—þÇ=´Eq’ûƒ¾ïüÅTÎ훆+ƒoIÉ翪ø²Ëë׿x½GÖ”6mxô×tOÈ~¬øº<ï¬ùÈʆò<ï¦ñHÜˤ‡Âg#o*úêîωèIûBò–¤Eä.®so*þ„®/á³Já,ü‚’¯£óV„¿ZHñ[#¤Õ±öX·4^z+¯E÷óoªøu¾/Hú’´o*ôU·¯NþÛýOŽø?aÍ$-o‚ø¿±ÿtþxÞüöÖØµñšºœþÒ~ŸW¼|õ/¼ž&>„K_RóZgÏÕæ®õa$ߨêô}åÏåóNT¯¨÷\‚¯-ùÈz-zÏeúxÈÏËñk¸oiú²"oçñHºÏïöÈÏB~Z¼d¶$ônçúþ²ï¬íÊ÷Tˆ‹ÞØíâoG9ê=zc—§/”ñSKZ^BïÔó3Ôïø¯6ž¦/J¹¶úF_Ÿkþʽ?éú,AßÒÍÆ-Ûï;òÍV»úCØ/¥ôÈ¿™üÅþ'çï?ô7¶Ž4/kx¶ò6=Ÿhÿ[ì½ÿkD‹&Í-]ê¯>´ûóJ>ϦýH¯­ù˜¯$õl篯küþºl³–èc²6óBTo#´”wdüHdÏ‚öŒÈoLøÒ”ï&ñN~/©üÒˆ¤ñÒB/:wÙ'SA¯CòA§aãá–8÷ÍŽ2IñÁ:IñÁšî1Rˆ7Çx2åü:%MÁ«ENáãñaÅã8×è(ôÁ:A¬ñáž3qaÌ„7Ï9x2ÄÁ¯CÒ<-áãÑV,O8wMø„2CøÅ:EòÅ"î92Æ*xsœ‚'C*ü:$I<èë!z£ÜBüzA¯Bô[A¯BôZaéöWiï(þÅsÏ(ò„sÏ(úÅ_´öä_öäîñaM®Öø2Œ?ßø"Œ¯[ü*„¯ý*„¿—¬ÿÖ,óŒsÍ2O8—<_¬óEyO¨óeOêqaø¤–ü2Œ7‡oÃü2AïCüA¯CüaëáoöšòO8÷ˆ²O8÷ˆ2_¬ñA:O¬ñA/nqAìnñAŒ/ÇøÓ¬~įIü8Ä«ÉC¼šžìoü]˜$ŒBÂ(M"Ex$&bB%xaÜ’TH!¤a‹(i¸Zò„‰R$(EÂ(M"G„OBDèJh.„øaŽ/‘ô(„#ñ(¤#‘¨+«!މ¢«$бB¢8G„.B*!%b…¦AªĈKAˆkÁ§O(E˜TF˜FØ$sDhbBü:Û)8˜-!ƒ“42Á&2у.`,A¦f…€Â%H¯A’H)ÒI‘#„ñ!Ä£’˜C"yD¸6¨¤Œ! GŠ+ËJ„G(‰$JjÁ 8'$Ž$À`H+…"V,bD*L”‚/A„I¡‚‹¤QÿÙ d…‰d$Hl„3 €A"ô‚LŠq"IQ‡$BIH4,1†¸BÂü(”(A£1DƒÈƒ(ŠQHŠ¡"IH’€H$¦HL(–†DŠÄIˆjø”3ˆ(!RQ2"–ˆGˆ+!ER8È€\¡‚¡ ”B@&V,[9@‹A™ˆN‚CH’0‚uXHB$$R"BÀC·n`"@áDIX!†„RB%É,T@$BXœ‚‚ŒÑ„ØÀ$AŠbE…F B@„!¨‰8BLBˆA&Ž,„K*„`HA„‚a‚Ž]à Œ3A1JÄ“XBD2†B„†VR”ƒÂÁЄّhB4ˆTBQD&cD6DÄ’™„" Hè$hD!ƒRC$(â˜ÈéB0”A%„"ˆ$¢Ÿ… " „"Â!†\L‹#B¡$ˆ·„8Fˆ ˆ@‰Â…Hè(8ˆ¡ˆÀA2€„‚$€Q‚X„œ¡Š)BD!ÐŒD0$„A‚(DQDF„VL€”(„8„„d0$#‚`DÀ$B N€B$@@RHÀ$'‚ð¿µ$!`$A!Bƒ%(†‚H†–D"H B'ˆ'D dF’JB˜ ŠHND”$(B\$ÆTFB4Aƒ’HC¢CKˆF$hDbDÀ&”„¬”R€\/‘6¤!’R@)AbØ ‚PF„‚aŒcdáˆI„$âÌ hi€a„D–"^JA"`ˆC†!.ˆ‚B*D@Ä"”€‚Aô´¨$!"')„( $âDb0D"J‘DM"H€„¡ADŠˆ(‚I"D!D„‚†4ER@„Lˆ DA ÈDÀDADD%8D‰¤‚\=6„*Aˆ1"ðƒ(A€ D#Τ(JEAH˜A¤‹X,tA !$ŒñA(H*”(@ÒÚDA `" `^DAH&䈃Œ‰øÜ8$HP(€ˆ‘BAŠFA2‡$0A ¡(DFR…B°Œ(ÐR!P0$ 8P ŒA ")HØ‚àBM„Ø¢4,‚:h!,4(H‰¹‚rBd@TÐT„=Ø-H#Ô$(3‡!*At!xd˜‚žIt# (˜D’¨Oˆá„(„FT‚"Â(ŽHp‚(óNB!A’C() "€!H@‘„‚ˆÀF"!„4Dp*Bx!B*(AfD-(D"$‚F„J‚H!A‚‡"¬2Ì8ŒÀ€AŒaDÖU402Á"ˆCR!¢MKJŠQ¤?(B˜!"¥$€4LIÆ#I…HH,dA+Bˆ`ˇà FA!”!BƒX!HÀA Á”ÃFƒòD)‘"‚²!¤B.H´œ%a‘JPb ¢/JAa‚È&a‹D!ˆ”ˆG$’ AA$$(C À‘)-”,’V¿ BA)"„”( DJ 8J4I$"$HHHLáÄ%#áTrHRB+% $Å!8È(A1,ÑHD¤‚!)†‚(’‚ÀÕ# HD@¡pˆÂ„ ‚Jˆ¤HB€(BF!„„I $$ˆ$/ &FBA$ˆD€B ‘HJ (ˆˆ€h!ˆB`(‚0„ „A0DP$A„bJì6Ø)’!;!”C1+t‚ü!‚Åôä˜nƒŒÔbxŽ-íBýRéVĤ^D/U £²48ŠÃâ,1$†²$±¢q%x…>ƒ&¬B@ÔAX~…+„z˜„N‰ñD©†øT( šâ(vÈDc.DJäB„éDÕ‚ÑCQ*+Ò,Û&û#BðDBM„ ”(DDA‚‚A‹s(9H)"4Dª¤TÁXL‚=HÁ,Œ$Á‚ND#„¢Eƒ¤DKDƒ´H4„($JÈH2¤H(ò"DBˆOˆQ€²‚"QB+HÀ´³ ‰TH…–rL¤"ŽŠp$SDjÁNj‰¤„„BÐ’š¨!¡…´dDR‚ËP+#äB‘5l‚‚26‡QЂˆñD"C|…è(‚ÑA$(X&R..„¤„ÃÄ‚BHÏjJ1tÝ3ïÃôS%G;¯÷G¥ïòDuÏhñ­<#óE­ÏbýÍ]/Ïô÷CO.t;ɬ_79V³ñÈwÛø%[E¯,÷¼Í/q~1׬󢓽¾6ôG+›žÄïÕüÖR[Ö¯…æÔ¼dý}H!\÷˜Í#V…/½õ¼µ¯ôÜIñmq«¨ÅÛbñeU_HúBêm‰?)ñ!†¯EÖøY‘'æeóŒf¯¹½*vê-öò¶ÍQóÖCòJFV”»¿¥ñqTÇ7¿oü%žìêJú–×ßn÷ŒÃDþRé?…öLaUäºÿcèëoßlåVÒ‚øÚB¿<õb#oĸxþZÁÿÎCä"úÓïj×kôCç/¯ôsHÛF_Tæ¬ý{Êw¯è÷B-Ï”¸Ò±™õx9OÁþHª¿£|ßÎ4ø4ÅÏíóxŸ5ú¬V/GôaIò¥ß?Cì*õ’*/æóV‚ΫX/võ¨OÚBòý'Ï¿uóLR½H¯sCût~]ÞOûõsˆ¾M²Ojõé~zß4ýþì?Õô$(×ÏÄ÷áo»ûwÉ¿IóýRËÛ9ÿ>õ޼?wýQ¬KOHûb×Ñú÷ZÛ^ÿïþRM_†´mömd/|õþÛ³ºÛó†Yü™,ôµ1ï}ÞcûqžO*²´ÚTûRÛÿëñùVŸþþVIGBŸÖäÆòŸSOÎè‡ùÎ$O‰õØÂ˜æêï3¬üô7hçÿ%ñH[+Q·×ÿ$óøÓÍ6ùò–¶-OjÿVE«÷bÛèÇ×,O’Ò-üÌ_Üø6©çi¿9ñˆ‹/±|Ûò»qÏüñ¡þ/äø6²oHáJïUø4»Žõ-aßÔâÒveø-Ñß\ó¨çïøœn9ñÉÛ/5¹ºôáoÛ÷Ȧ/Á»6ø†6/hú6án‡ÿÊõs,ý!ÏRò!MŸfþ†1ßÏþ*ÖÏ©öˆÚýBˆIôªTo'Sô:%MA¯ÄaïäÖä8wMè(ôÁ:Q¬ñáž3saœ7Çx2ÄÁ¯CÖ<>ì8÷M(Ž2A¬ôÁ‚î9ƈ7Lj/CÄÁ¯CÒ<¾ÈaËŽsߌá(3„¬“¬Aøáž#uä7Ç…x2”ȯC¶¼”èãÑÔBôe¯CôA¯Côaéö6I¯(÷¤[2O:Õ(óå¤ó¤äãêqAìêñAì/ÃøS¬/Óøšå¯SøšÁ¯SøáÏú>ÁÏ9û¬SÏ(û†S˸_®ñŸ_ªñåêqaü¡Æø3Œ?ïø3¯{ü:…¯ü:…/ÞúVñï8òÄsÏ(ò†sÏ(ò×:¬þ…:îü±ÆêñaÌ/ÃøóŒ.Œ¯Oý(„«ÉB¸šŸ¬ëý£Ecˆ,EÜ$W„&D2ŠxøAŒ/‘´H8„c‘ˆk£ñ„’M—„MØ$[….”7„LqQHvQxAüI…ôA$g‰ò«!O8‘(M™’™’4uhB5hBhbxaÌA‡‚Eá"R¬Ò¸ò„)„R$(M"A&Ò³‹DAØ„ÄFA6„ŽsSì(3„,3D,!øá–#qa„xs¤„/CÄÁ¯CÞ¼Ìáë6ŒŽcׄŽ"CøÁ*CtÁ îra¬„7ÆJx"„ü*¤IœŠèéÈÖ“ÑBô3E/CôA/CôaiöVao(÷„s,ó„s,óÅ2$ò”2fäkqaäjña„/Cøs…/SørÅ/SøÁ/SøRáOúVãO9óÄsO(ó„sO(óÅ[¼_(ñåTjñaDjñaÄ?Cøó„?SøºÅ¯SøÁ¯SøáïúVáï9òÄcÏ(ú„cÏ(òÅ*¬ú…*î|¡þaLêÆø"Œ?Îø"̯Jü(Ä­ÂBÜ*žìíâ´I¢(MR(MrA&&ab#áB8†/¤†!*†º¸ò”’(MÒ$‘!M²Q.”.3aB3qaôALbLrò+!O9Ò4ÑÒ$ÑÒ$S…..5hB5xaÜ4(e±(R‰Ò˜*G(™R$„R$N(IrDhBFø!Âc‚!‚€B"²„"&²Ä1"I4!"ŽC"¤!MC,ˆe"¢X*d".AC¡AA(S¨!(IM¨‚Åa$À¤ˆA(‡D.‚À!CD$$dà(D!,È*_üI²” HÄ‚K!¤B#².#1AR1H$(H’L#Ä(AŠA„(‚X@ÑX!x(DhBð„hÀ$à(FA$D$ÈHA"+Œ€T5å@AÂ((6‚`2ÀÀ1Â,€1pSÈIAƒÁB…"1(!”(HÐ#"2D@B(Gá( D€&8€„IB)D!DÄ"€‚‚ƒ„B6BŠ4ˆ¡!H¤ªà"€´$"Iˆ€„Ò¡;ä@4((8(iÀCD`"^ApAT(<ØB*€C+AžI„‰$aˆh"("&3Á$F#‚2B(Ê"äG¡(B DA"€2€ R@",H!3ÁA AŽB, Lˆ"@bHÐD€UáBL„H€ °$¨A $"AôAADH0A(°AHGI€$x!C"D†„ÂD($N(†„B† È„€*DÁ)$$ÁBˆ#!‚„ˆQ$!!pBDBŽ!$lˆR!,jˆCD ˆ  !!‚€„ŠèD(¢‚„H@ÈFãà B$#€(! ŠDA"¢@1FH(ža,âIÐ!,!€#ˆ€”"h’"ˆ(€ˆ" (L˜!ˆ€(@ù~… $HH B@!H‚L$ D!`4d4L!@'I‚DBDˆD‚AŠ‘„C0„H (‚AN4ˆ*(BHš…2”°2$€aD¢”¡„ŽÀR ¨ QMJJÅ„¸ÁÀACDB‚JPDH€„A#D"TQ_퀂 Ä2‚%H1Q p„€AI&¡ÂD„’„`(H$ „ÀD1Œ<þˆhQ!Cˆ¨!O!á("N A‚”ÑX˜BŽDðEE!bF*(X5¤"$D0HAE!)?k CC@¤bDÀ!À`H 2H Ä#/(1‚)‚ H‚IÂAdœLÊÈ$4D!ˆ-„!!‰4B°â’,F¢¨$Œ6ÂŒ„CÈ%cHLD„C¡d(" (ID¡H†!/!hMB(„ÀA1ƒh™chG!AA$”JBé$b’dFq(0Š(?£p2!$H2!V'(!Pb"€J‚1B!$œƒ0#CE!ÀÖÀ`¤@FfHH‚) D#XAHÀAH"AGAˆ„ èÄH5/!¾‘!!$IA¢˜€0ABD`D$dI'B€LL‘D€ˆJ˜L‘! )"14FD !’B¢$"ˆK‚$Â$€"dBPBHD®¢•¢H†¢‚‰ô¤´€B2(A@`B†"¨Š,$(Ba` âI 8Jƒ*„”¡à*‚ à1Ab¦ ŠA¢¡(p‚aD!H£ E¤B„Á3“ ‚ˆB‚H$‚&˜ ‚  ˆ‚ ‚ ‚ˆHc B B ‚ˆ ˆX H‚H„Š€!‚"H@)ˆ‚€(Aˆ*(@!Øó¢Q*! Â(€þ‡‘)Ñ"‰sã21VÒA8A°Xr!Gbˆž‚†Ñ2¼$ˆÄQLƒˆ‚¸AB-$(à ™2’AwˆHA@CIňTˆB dT+ŠŠ„$ˆ:ˆ_®W$AF2a„!Ba¤ƒ"¢ˆ H€ä!äDŒáŒ±A±Á˜9‘)8B)Š,Á¢"*$‰¡Ânˆâ¤ñŒN’<¨$Š‘"+H+()ÒB²(²*4$’D‰ÒT,Åh„g†%HØ‚hDdC&QR¤H,„è$B‚ˆ;ˆ*„"Ö!"¤aCˆâ8ÄAlB)d"¢*ØE¡‚¢N†ÔA¸Á8c±„¤H#„¢Hc”DÁŠˆ¸E8DCD"tBØA'Šè‚9,‚ô¸Œ$>a%òw„-2O4QGW&oYô¥fûÓ‚/)úña/2äwWâBÑþ2e†’o1ö"ålñc¤Oüò{–¦/ìþ„Ö/)úãÃŽñ¾A_EâCñDu?ôaA3+¡oÞè:ý­Ô9~ÆØ¹ÿŒõOy¾âø…åkÊß̺¦øÅ쟬zÅÕÎ~¢rdÿ’Å>sKšo(ºÇøQÓ+˜®&ü÷á/9üñ–O(ê*ú’‚?¯ˆD_ÇEOFÂa<·Sôò´_¬ûçÏ(¸™ùHŸêü¡†[ëox¸åú‚„kª/xü¬ƒOþØEô¦­?ÔòE)\ö„­/øøä(nLÏ(¾Žüˆ‚,ìJüŒ¤¿†BrsôcwMs$qSòCS?g÷G´Avs¢“/(»ñøÓ²öcO>w_æÄa&ùŲ_=æQ÷G’œ?=äq÷a–,ë+øó„O+©¸­÷$UMuGôAe_\ôdd_výƒòïÝüùº{\½S+åmùæÕ]ãOjüÅ®oJø„&_bþŽÁÏîöm‡¿ÜÚWômlÏTøëÌoXö.fíæÏŒò†B­ÈŽÊ‡ŽOÞ-ÓbygöSA/1´S1Awôb3ç8ã%22ºë*ºñqc/Råzýc$TÄA.c?GóÁ”?OøsÑO8õÃ’;ý¦q$ùás+!oiº2£˜:úÑA¾uMÅFvEô$E_dò47_ý:Dÿ9ûBY­Y;A/;ùBtwx_núÆ‚Ojú†‚Ozú¦Äÿhún'ßLülLÍ!ÇFß\úÌÌÿBö(DÏŽè¤üÊÊŽÈ/ŒúDí©'Cô2$O46ö„BŽsSì(s„òÁ2IñÁ†òá–#qa„øs„-„'C-Á/CÚ<¾ÈaAŽsSä(ôÁ2A,©ˆn12Fˆ?Gˆx2ÅÁ¯CÒ|Ááçì8öMˆŽ"A¬’¤¬*xá>#ƈ7Îø"„ȯB’Ä¡èá<_-Å/Sõ"E/äRôsMao1×ó„s8o8‡óÅ$,±Aòõ$_n±Áòs„;%WüaOSüC>Å/1öáosä1÷¤S,ó¤S,óå4_.ñA4nqAôáDú2„;%oCüaïCüA¯Cüšaëáoôb_:Ô,ò¤CÍ"W®_´rÄzEoîÄæþA­/ÆxCübÌ­dBÜ*ô(Ä­bÉþ.A?³$A$I2E&4A&4.D5aAŠÂAÀAà<žSÀÑ„1AI;E.„1S0SD/AˆA‚/8O)1A,a„,a„M2G„.B,1Bˆ'„„-A‰˜B)˜Â¡ŽBŽB‡„$FˆrDhBFH6¥ˆ‚!ŽCÖ‚’ A°A¡‚(JrbHb†D"xA¢‚]R""!.AHQ\ƒAF1“‘„‚F¦("D¢d"`‚€YD ˆrEñîÒ$pAÄ#!HA $8FYbd!ÁB%ä4 !@ÔÄ$Q4TÀ‡XA,"€¢B%ˆ†hˆCä"<,8%‚R*"@"2p/!P@B¡QÀZY!`$@ ²BxDHÀH€D‚Dñ/Ë!€ˆJ š$(Ã(D$$H(4""! b(((!L€HA " L"˜"p‚DbBL4!C$"8! "¨À‘D0!J‚ ¨())B±Á€$"d0`à*!ƒ&ÂLV(H Ù‚È&,H"dBJ2"ANiAC(ƒ¤H$H€ô‰.@"8€(I”! BÀ!€!A€*B$„"âŠ1 Ä$FB -UHÈA.‚BLb VJ±AÈ€H¢#L€F(‚¢@BC"!DŸDˆ’B- A22A‚ ‚DLB"H(DŠ!A+)(‚!DLFÁ‚LˆBa$@‚(”"Š‚"ˆŒ„H"ˆˆ¤‚@€Z.»S ¡)"°4, ! D"A$(C "D@‚‹‚(A#ƒP‚($(€*4€ Y†!B¤‚!À"ðl F‘FB$!@„ ÂD€H#‚4B`0B‚B $ˆH‚$€ÄD@‘D(‚€$€È"‚‚J„„"AL(2å ²&€D&‚‚d# +8BVD"„2B(""`AF(A(`X,$¤&aB"*KÂ’!LD"”!A KB¿k ‚AA‚$K$L‚A D, A)!„ ð„FJA  ÁId!a"!HPDÀDJ ÂyóÏ"(&F’à"´$i’BI‘2@“D'!,)$"„ ,È€"B$¢ÀAäd!!XA%$âD€B$CDHC‚J"Ò;CC!¡(DLƒ(’„&Á'`À!‚$!!9!1 Q`PAHT@@”FH(0"#(’L"Åh"„@Ä;3ŠTLT@‘"ÄD€ *‰á"¨ $Ò " IÄB€’,B"&‚#R‚Ø$A±\LXh†L4ˆLáDRF”T‹HˆC‚…’„I’!$ 4(Â"B2)A!@ÀQJaHJA3BÂ1"àA(C(+!(A„@… ™‚‰QÅFQ„ h„ì4CD"DŠCè$¢$Š$$!4A„8"4 B¡!I0A€!VA BA3¡B"h(@D„ âŒC!*ÏýICZ"A4De$H‚DÔG$*!0"!&¥A4HK4à4$VRH+Jb`Bh†¢ÁSƒ*D(f2!FH‚ÂãÓA BA!€)ˆ À$ D@‚„D‚?&$ €Š(€RD($L‚!B  H-%£•A/„ÕšAÁ!JRdF .1!¤`FJ(2dKBkA%!!ñ!GI‡‚‰K+q1PAàB*4#:¤A)hŒS!MÄBˆAblHLÄ$`DÄ.„HˆHT"!ÉôÅã$I‘$D@‚A$‚ÔAø"„#±¢¢H`,BAÁ0Aqä2‚B# B a"€¢!(,ƒa„„ÜA@"8¤c’„I´•È*”I¼ˆLâ„Hø"ˆ„ŒÈ(Â-¨ƒIQBØ´‚„¶†Ñ"ä8‘1€‘À†.R4$WD;'A"AHH,Ä"CÑ%B’Ú!bdNb#5apÁ…%hàOÄ(!MHˆ,r!LºE"„bb„9ÂDUVÈ$¢õBqRq5ò5T)öTbwC/GüveUô„—_F³2ú¡cî†ó7ä+8N‘gQâod{VuDõ¡’Jô$G?(÷§BK‹/?ê\ÅÖ_.¡#]ÅO|yâó5f2O|Rñeá,»“ôMOvyåô8!O‘ôX;Ów2ÿ.ãGœÍÆŸ®ò¦$nÿÊôHomaAO8wEâ(ôÁ2A_,Aôá#qaÄ„7G-„'Sü:%MÁ§-áç¯üˆc׬Ž"G(¬r„rÁ:¡îsaœ7Æ‚'B*ü*$IœŠèéÊÜ3ÒRô2E/RôQ/Rôqmao÷†3O<ç(ó„sŽ2_,ñA2_,ñanqaôåþs„;‡?Wü2Á/SüÁ/SüáOþaO1÷„sM2O8—4_,³EóÅ2_FñáFnña„/CøsD/Cü:E¯CüA¯Cüaéþa­â8Ö(ò„g"W¬´räzAnîÄbîÄúbŒ7Ì/ÆüŠDB¼Šô(Ä©–ìéôWC4,E²AÒ$2E&6A&6&4SöA(/¤(/äHòÁ+!O8…Ò4µAÒ$±AÒ$3E.¤’e"S5ao¤‚/¤"/„ò/Aâ(‘!ŠñB(/Ä’4G„&4D"B&d„†THH…”D…’Æ¡O(šD§„AFØ$rDhbFØá;M $N!F¢>C,ÂQL"!’AIB•dáD!”F2$^4‚B*‘"IåR‘B¨CEÁ$B$:Ôb"ID1ˆ&È‚(AL"**hD!B$GHb‹H$É1‚ H_VЍBP$€$*12(A(D$QL)Â( 8(0)!ÑD”"4H „@HˆbhC€JJ„ „´„J($Ĉ$ˆ1¡!A¡$EAED!K0 !Q ´H40#(>…à……b@&À(‰bD%qD(dH$`„¡O: #($¨A! Aˆ Á‚(J"ADb¢(P‚€€‚*/H€$"HB’Œ´H2A¨(@(IÀ,†„‚*˜A#ÁT!$*5„Bˆ Á„(!€"4±pƒb%%AL$’ø”X •¡&ˆX$"DÀ,(FHTÂCbL‚„HÂ9‚`F€CaB€‚B˜Àà*Â," BPˆ dX „H´a"²=…,BL" +D0"H,$‚f"0$@$(‚ $‚( $‚ :€@4C Œ„€"`(¤$ˆ@ BñãÙ,B2C,‚€‚!H!($€Œ…Eb’"‚#€2Ap!$³Œ€"ÄID0$†R$B`HDN$54„*4‚$ˆÐ´2[) HB"!$" ¨#ˆ" ‚(„" (2ˆj€(2‚ D"" ("DRB€ !BH$Ð!„DF$!"B"‚„F$ D”A2‘ "ˆ@H B‘D&!Ä 8AHPâ@4$€F†„DI"‚$ âØ14ˆŠ€ô"Ð$(E!¤!B% Ô#€Je!@ÈAˆD '`(((‚1"D"À"ˆ ˆ@ DÏ H‚!@‘$2 $" €(‚Â`!IaCTA!€Ä#A „XB@ÄB‚¢ˆ$ȸ“$Bˆ1H‘ B-!€F„(#s!¢!P$B(gH’ ÄA‚PBR0’`$¢#’DQ"(0$Iäˆ"ˆ(‚ˆH8ˆ(EQÙ0(A" @$Â"A€€HPBHFÁDS$$FX%„N,á !ÐH-AÀA‘9"FB`¤`4ãNTC211E!ÄBÀQ!‚B!bh–&Q$h$i#â$Á„JAD$”Œ”HÈTH†CBÄ"„`L@$€$‚„XHH&‚ôˆº$(F!°&8`A!"+`Aˆ_"A4d1J3B9HÔ‚‚Š¢!ˆ€ˆABB„!4AB$DÀˆÈˆA)"$`„0B%Bœ @IŠEEB$HQ#A,$ˆ"I0C!"0bAL„"8Ĉ"$HB ôÕÌÀ‚šV‚h! !)"()š!Š„$)€ˆÌ‚.ˆA), BˆHT)D!ÃA"H&¢""C,"ò(ˆ)¢‚(À!.A('É$ªdH&†"4‚¡-ƒ†H"H€)DBAB0A 4DAH)(¨‚`(  ¨À„€ˆ„ˆ@LDˆˆ!ð„s"@‚€$(E$ @8$@$Œ;ÿ€(,Ú$Ò!ùD„M„M'*Ɇ‚d(±D2‚keKi )!‰t„±‚‡1€q$2B"K1D1!¢!€TŒÈYÉEbC¸ARD€F¢,D$TN…Œ "I©BKHyN@Bd!$D" !A*¨)DIqb‚R"#(E)B"Ñ"„+‚$$‚a†´a‘ƒä¤Bò¨‡DM(I˜$DIÒ”‚E‘d#œH",DF>T?²VÙ1ö²Ug/Fû‘E/Aøá$oBóqgk…Sþƒt7k_dºs’Á_{óF”nñ¢ozĵ$©ámÅ/róÁ³+¥#óC$O*ùã÷G&/ZÝb³áù$NÁ?/õ‡2*ýR,Ç–¯hó—Ú^ïó¢$ŸÊÜãÜNòa(OhøféB"ôÌ)JΩôM­wzOHæ*l¦çæ/(ú„ÁΨ‡NÅ7=1_6±%÷A9a5÷5D9õ†£WFoKø–”o~%ôÒ¥/ü6±gTOâRô„§{/LúEEO{ŸV†rÃá{õ„rOJñfG_&ê!ø´4-E;¦%øÓO*sW´eæVôDæoM±!Ö»ø´5œ¡D“¯ûsØóìnýEßâš„¦ÔvòiÈ=¨7¸ï.þ"dRRÑßVþJ¯ÂÖŽú‚&Ç,NB¯¨ø¢¦g¤ŸEògõC!O!Õ3´R÷C"÷_;äcýá2+¡¾¦/+ý¡S;çG7Mú2A_DæòT¤9öó/:õE´9ìõÂÓ?fñ·ãoAü·_,»6ø¤/kñ„õ¾uøG¤oSÔUòEäqêWüÒ?Ͼµ‰ÿT‰¯=ñÒ[?hî÷ùB£/ªôÁª+‚k‚'®/žøcê¿bÔ]þf!nlŸ܈þo¯ŒòÌN‹êÏ„øÂŠŒÔªî®:/L×Fv2óCR^A9uñBr_xqòö²M6'!O#âyßuóö6T½dVQCöaBîÃSõ¤ñ=üÒQ<ýƒ2uþrÇ_!úÒ/jëAø4ão9õ¢¶wM÷EA.d[FF_2þÖo^óËÚ?1|ÛûŸ/Þý_‰Ofþ«$ohØdÊ£¯8òÈã¿ÂþL—”ÏÔô-iH–zÁväôÎè-ʇ$+Œäôªå«)p2äQô2$O4agOä87EŽ2A,3„,!òá–'AF*xs´!x2ÄÁ/CÚ<¾ÊaIâ8÷E"Ž2A,“$,n9Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÍ"Žcß„â(ôÁ*ExÁJøáŽ%xaì‚xcŒx"„ü*$ÉŠž.˜“×Bü3E/BôA/Bôaiöamò_xDzO8Dz_,ñA3O.ñA—OnñA%îør„3ýrÅ/æSüC>Å/9öáoô”so8õ„2Oxµ„óå[<_,ñÅ4nñA$_nñA¤?CøSä?SüçïSüïSüáíáoSüŠcO8ôˆ"O8ôˆ"W®¬råúÁ.7îÄráþAŒ/ÆøC«oÆÜ*þ,Ä©ü(Ä©–ìíALãDB¢$M"CdbB&2R"#uaôAD+AD+A°<O(MRÔ$1AI3E.S„9UˆµAøAˆo„øALøÁ#á8QBŽDŠ1IK8÷„¦tS¨ˆ„LxAøAŽÔhÈA,Ø„Øò„B„Š$$8HO(2D.†ƒÄփĂGN#À‚ Ô±d8b)¨!+‚+„D!&„òAFš¡xtŠ!´A[F²a  ÒÈAø@ÄA(°Â!†¨A„’¢¹a"J(‚(Â…"M€8$(†Aø…D‚F˜'ÄŸQ@P%H‚!(‚¡Œ(YĤ2ŽäÀˆ\A`7 ¡AY! „‰ÈB@D°!‚HH¡„@)À|³”$¡$€(A1K#(p¢@AÁ@`à”hpHF@*d!àHÀH€Fõì0‘"”Aà$¢ ’ B¢"‚PÊ À„€)(:ˆ!‚@¢$†H"ˆD)d ƒˆI2ü$F‚#ä$¨K1%¡!DH`’ˆI€Á‚2€A£HQ(‰*lR"+$A¦@è(Èð"DÞÇ !@*B BBŽ!DXŠH€BHBH€ÄvãÞDH€HÀB ˆB‚Pd T"DPD#B B€D„D‚&¸´(ˆ(L*¢0$„‚`Bˆ#‚bh""„²$M$"ðôy€(I"”"B+$$J"DH"@ˆ$!+A „$– (€N„#„ È‚A"ŠDB`B‚(P¨Ò-`$€NBðA€‚È‚ DE0D$†,,!`(#€È#ˆA( E‚`" D*$&*pû€‚$ @¢B,TBD*d) ¢$€ F„†ˆ"”$€2Ä(A„**"@eh*‚ˆQ(C(,A&1ÛÀ)$A"!J@€ˆ¢¡#$!‚¢Hˆ „ÁB°Bah*$ (COA$IL‚Hˆ‰¨$#(bJ¢,‚ˆ$Bˆ$B@(ˆ"øm(A H€€DD0BA€D,É$N( ‚€(T#(HDˆD`"%"0"&A¢ˆ(\#M"%!d)$$Ø€2hDx$ŠA€2'Afä$è%Á„ŽL¢B&¤!"AL¡¢(EØ!¨H‹-hŒˆ’„(Š‚'B(Ì’(ˆP"(‡ˆ„ˆ‚ð2ã€(D&( !PA-$'À!B@$H!F#D!è(H‚$ŒBbâ£4!#‘AÄA.BD* "A¨\$ô!DHÀBKX$†‚")+†D*T"'A-H¨K(E(T$ЂH¦TA€" ÄBƒd$‡$OdCID0‚‚#)'0’Q `(ˆB"‚á$#!1B1,2AˆH`$,„ÆB$H$JDDH$bD›„B D!JB‚Ô0‡Œ1áPB0"!d"À(F¤‚B$B "(CQA"aCCShÀD2!ˆBN„¨ !DŒB$HF@Jà‚8BA*ä+(ðÙß@"F"Ja!Z"Ka A"X#‚$’D* &’B8(€"„hL(H((08)¨‚A*!"I A,b(!!D.óD†4BDA€($#!@:H ("H!‚õ *$@DD€ˆ€ˆ€ ‚  H("€ÂíÓ“"H#"Rg"IdbˆMládábÙd`D"x’$¡A€Es‚R¦â,!ÆÔ1AnA+ƒJˆˆ8ˆ+I¹‚tˆ¸„BT4H¬bH&dD ‚"O‚’„M"…ùMBaD€á"¡!!(AK"D ’B3"""F¡"€(F¡¤'L¨Âbl¢!+(%°„,Â&‡$"ɘDE¤‚I’¨iˆ"€„‚D¨H)ÈBœ=¦Ä$H9„¤BHˆ˜Jé$ ‚¤„N¡FC4ÂK$KHuÖdôB²1$¡H€“$†A!„8b#D$aDr‹„­HJJxHâ¤Ò$Br„‚Ö$¢H,„T!*Dˆ´B²,L’G$!Jò„"_B!ö%OBôacä!ó6Ume/GèH÷$–_lò&)öd–Ohñö>N¶'COBä'ñR¤'o2ñ&FQrFÒ·5ô!;Nå._$ò’¢=æOVñC#Oa|‘òd;#OüÑ/[ô¶¨O&u´ú¶Ì衵|÷ˆ.ïHødìÍ&×ÄoHøeÍ©¢dcx«êþüBdM„çn®JÏúÞ(v&¶ÈöŠ+Ì/êòF1ƒ•"/5×Av±á%åC7;bo)ød6K˜&ö4Qv³Åè$ä:;K&ODö„²+ˆk¯OT×aöA!/ñ!g-F?òR_&ÛDi*/3µfûA—{è/qrôAANd6=¢wEÖî$oˆôRX/!ùø>žjÇÌo"ôHŽM¢Ž$o2´AÚŠ¾Âò†Í§F›BN$MÌg*F´FúÂ&oˆä¤øŠÂî§ùö£A4¾’ôs!O$Õ"´õG&~ÓO(çc½Óò"2)ñ#“?ör²#®õäD¢„êï*õ÷/)ôu!mRôRB?%ó#Öö_.ñפ/bË”Oñ”åOFýãn£/QfRnÅOß4ÿöV¯IòúüM’£¼Òálü2´ÏfþŒ.Îø$¦M¦OhòÁ˯‚èæö"­ït,솾"ÞF>âOêöÈèmŠ«ÄƒøJ¯:1¨W?CôV7%…µuRñbv_ié&óÆ„o#ãCÑF÷–Äo#çN{VödetdôD&O&ÇE[Ë^5%õBQ!tá÷DÓOr{’ô¶²K“Môiô·²/wñåä{e[B[F_fòA¶Nôö(o©ü^’ŽZ¯‰õºŠkÒoåþDªïHò¦‚obÚ$ú¦c.ø*ÆNôM(_²(4hÄúîJ‡ÊkÌ$øŠJΈ.N/Îø©¿p2ÅA/CÒ4váô„sSì(ôÁ2IòÁ"n92F*8s*x2äü2%MÁ'-áoÒ–$O8·Eò„2IòÅ2A,Aôá–3qaÔAxsÔAø2Dü:dMÁ«A>MaÉä8vMè(ôÁ*A¬BîxBxa¬„7ÆJx"„ü*dIœJèáÝBôe/CôA/Côaiö6AmòO:Å2O:Å2_.ñA³O,ñA–OnqAån±Aør„3ýrÄ?äCüC>Ä/¶þAO)÷…SO(ó„SO(óÅ_óä_^ñâFOnña„/CøsÄ/Cø:ÍïCøɯCøáéúVá¯(ò„c(ò„c(òÅ*¼ö„*î¦~amêÆø"Œ?†ø.Œ¯†ü,„­ÂBØŠ–¬ï„öß›$Â,aDM2CdbCD2R0RD/D´D´+Á#ñ„RÐ$%Ô$!”4CäB1D˜#…8R„/„¸„ªA¨+Á+!Ž(Ž(Ž(Ž2Ehjè*X‚*X‚†Øô(ˆ!.¨a¨iØ‚r„‚b((†‚²„ìb’SƒaB%áÂ+$MDR2#ˆ¦(CH2ND",#â$‘‚F¤!J„,bA(žD†‚$aB"J˜&€¤H¨à(¨EŽ$`BF-„H††£,2ŽÏáLáHb-!MBIÈ!€ 0$†BD"0"ˆ!" "!(0AŽ’@‚Âd‚ID€B€"¨À‚cL(IDé(XBH!‚à(TX4g€D"$$H$@$qD€@!ÁA@ „DHƒPBHé Š‚„2QD€2H)…`B¡`B,ˆB Ä‚ÀHBH!"DHF"HB B,6€@!!€4(LB” ±A(T"@@DJA DXðHA!BL„‚Œ„‚#H ¿zB€!aB"@B  ,$„‚@ D DØ£DBL`(BЂ€’@’AÀBAT1L"&"ˆ#8A'"(-!ˆ!9("ˆ¬ÒHˆ!F(C("0 §ÄP@‚±"$A!DBB ƒ¢$ bJ($@1†"¤ƒ €¤( ,H†Š‚"Š BrAÈDbLÀóM*P! B‚"!‚"A$#"ˆa((,!0‚ T`ˆÀH°C"#HO€##$b$$ B$F¡‚@`"+„*!"!B)©" $@’"„@"* "!""†„"A€ HÀ›#¢9ˆ B”a"!EA‚q!€D1B"A"ÔA`(@B‚F‚‰d˜ˆ!†B‰â" (Ð" ˜(A@ÁBŠ‚ˆˆðiˆ"…DDHI"’A$" 0C-AH$€DŽHB(B‰ 2$€! d0‚.Hˆ@¼>Þ(H4€‚Ä%B$I’C5â¡$ $AACB2#D¥0’!)˜TH€‚ˆÄ‚F‚ŒBJ,"(Hˆ&„”‚H‚F¨H‚ðü¦°B0A@D(%D`B h1((RB&D!aB`B(gHE$(ÁFBà‚BDBl@’" ‚¬8³,ÄAÀA(  !*d²"D(Á‚!F´!˜B‰!Ø!–$DBFQ”F!h”„R‚( HHˆô¾—%AE4A!I„ÂDR$PA$B$pA‚±a"!Ep^"E)á¤(E"g¡@"Bd8!*4("fHb‚¢$„N7@D€‚I"rAF@ M#($ $!2ABª¢0‚"…HÂÄ$ˆ$%"`$à$!‰Bøf98"+*‘"I‚Ñ`Q`!C1 !"!8‚¦4Ã#èH¡H/¢XI(ˆ!ˆ€„("‚ *)‚‚H€(ÈÁˆˆ!JŒœ:Ý"A$@‚B$P$!A#€€@($"@ALDD„¢/¦"@€B„ D€D‚(!€†€ÌÉQ.S"Oe•$(À"tD$4!BB[°AD)„’F/1Ö$¢N"ˆð"GE‚2!ð!B/HX°˜…‘2EÓB‚ÖAĤˆ¤„aJ:"Bè(‚â,‚ôˆ"ðˆB¦ÇLBpQ´"!’R€¡bÁR<(M!"4"p"41(B!†‘B@F"a4K¥(CDa”B…‘D@Mb•„™A™„”A$Nˆ&ˆ@h„FhD#áH(E‚BBB2E6!&BBpB´¤RmE)$AˆH,˜Iв*¤‚rA$F$h"ƒ;Š!‚Ф8M‚)Z¤P$$& ¦ „(„FHH)„¢/CNá“%}F:wT‘_CÇDNF?SѲQÁ"?wFõ4"¶RóD…gQBöR6FsT·3²åbvT³ö%D&öd£o±yåä#ûƒA/øô"î-ãxWõaá?=Ó$ì­ñ#ÁOJô8¶ï­Ñ»ú¼Q&ýn¤_8ÔFüá./Búágï¦øÅ¡)ô©+nˆ5¶jè,zèØ"¾¢Ô(~Né(ú¨H-ƃÉKeO"7J¤s_AÒ1²%µT’2/#¢rW/DórD}O¢$jÔñ'OTóDtobuÒ¡-v_#uç\?q+š'aOHu±âù2F_xù%Kd.E_\ý&Êk×ÿ*ÿBŠùXK¿èÿ3J}NOXzc¶¤XfOZþ/,Î?ªÔ:Cn)„ô¨£•ñë¢'„*x‚â„ü¢â-Ho‘K±%ô1UOòWRÕuD±u÷1/döQ#²s#ò1R?òV5oV¼3öA!N!/´3÷fsOt²WõB4çu³ÿ·T/bøõ6)ú¶bøµv?þÖ5OVü7d]e_Tö&Ä?[×sþÜV¤ú–X½Ã/)÷C¦/ù÷/Á+Ê?Î’¢+*+B=ãŽþC©/„ú+A„raùA㟺„þêB¤úÄJ(ôˆJ‹¤¯ª4Lö%Tã5”CAnQ_C÷R!"c#+2+c-r_qöB3^'_Fô%eOTòD%[V?#÷!BwoõRB1oTöãÔwo.Ê6oK¸&õ²òqòƱ/u²eô!$OöA$Oùwcß(ÿ8/üJA(}RñÄø×w.è.Ú$â(ø$&EßjzîûáJNI›b–òÁˆ¯†Ö¢´ª^ˆ/ŒœÊ©|Jòêáç'Cô2$mA#ÁacÁaIá87EŽ2A,ôÁDn9Fˆ7Gˆ'CÁ/CÒ<>ä87EŽ2A,ôÁðá–'AFˆ?G˜/CÈůCÚ|ÁáïÈaÅã8vÍê(r„òÁ*ErÁñáŽ1ÆøcŒ)x"”¯BšÄ¡)žŽœ:ˆ\ü2U.E/åRôqMao×4ö„s,ò”s,òÕ$òÕfoqaôå†?G¸sñcÅ/ô"Å/õ"Å/×þumãO9×$ú”sM¢_-óE¢_móe†oqaôáFø2„?Gñ"Ä¿Sõ*įõ*į—ìo—hO8–(O8–(W¬”rÄúA¨'î„bî„úbŒ?”âÆ¼Šö(Ä­BB¼Š–ìï2ô?„°A´A’$SdBdB3dB34a-A(-ALÒ„Ò¼ò„S(MC$E²AÒ$2E&6A&2G"s4amA"-A*ÒÄ$-Á+!ŽN$$N,$N(M"G„&tF("dBFxaÌA$H…„ˆê(ˆtHFˆrDhBFˆ7ú˜ŠA€"&‚$R$"A"A"H32E0R'EÔRÊF,‚Ä$+A¨,T*”$HS¸"t!²ŒB‘ª!„v‚‘(€RBJB‚( Á"€ˆØô„ˆ0!@¤C(G!(A`"€"‚,%á$è!B!,*Á¢@’!(ˆ$¡Ò$•"ίˆ’A"& –" H($‚€ÂÜ(ƒ!@(@@H)(@ˆDQ!¦ &!$„ Ä@$À`DA(A#a°2$'!@ÀAŒ EÂBA†8Dˆ)d‚BS"#„â(Dh`(ŒäH=ø$D€BA$$H A#A`„H$Dpƒ!ŒÄDˆ€Ð$‚@'(`„߯( B à€ Ä ! H(0A„ $ކ()D”(DJB‚àh<, ˆ$L …,D@EdDD QB€#À"A)"Â!…d!ÀB„" ¦&D„Ä$HðöQAÄA0Àa!H(h$€‚¤#!R$@ ¨##Ø!" #€€ˆBˆ"G(®‚ 8†,‚ˆ*8b!ˆˆˆ‰ØÚò2A@”A„"$ 0aA"D€À@(DRp„Dˆ†2A‚ " *8B€(ˆ”¢o†$,€ÂQˆ!!€˜"H(H(À"I$Â$dÈ!*d ˆB$ ’„*B‚¢ˆà(,‚* $ Aˆ"DŠÌ3ŽJƒAB¡tá"!à4¢B""bQÂ&$"Ab" D‚'!QFRAÀA°é(H†'ˆ$€„d(È%ôšÈ !€(À$) AA(CÀ)Aƒ‚Aˆ!AD€‚„‡(J˜B.¾Á ¡F!à!¡F"d"hIâ$"**‘$A ñ$q%‚D!@A!/1ÄLQ©DI8‚‚BJB‘(J8"ÀAA†"t‚¢BOÃACDÄaD–!1DA „@!A2H(@@1HÔ!DˆL'°#RP!`8„$„àˆÄ"C"RBH!!@B$bÀ`D€2C1FA"IQ!I"‘4,”XL!’B…1A+X%B‚AA„@,hÂ@ˆh‚)Xˆ)¤‚H‰Hb "€„$¢B"""J!"Q ‚RB8À$)‚#„A D¤F ‚PBAŒ†&€²ôÁ"dˆC &ÈlÃÂDHhCÁ"8a$N!H€¤X`!B,FFÂD€âD‘D)d* B$‚T!jFB3P€ïÚFQ$3BE#DÁ& ƒ!1•A0AX’ARAÀÐBRE!CN"`D0AJ˜&ÐHe‘È!H…$„ ÌBÓ H€€ &D€ $B€@ò½’(0R!!@&DD&€ " " "(H@!3†!#2##!)”BRM"@$*ádCæDC…¢D(+!%#tACö$44(KR[BKÀrAB(RòA"Aq’$%2DIb"I"dˆ"äbBBfˆH!ˆ-BÉØ˜ C,!ÄÀ"#"12-AHH"àÀ0)At"A@$$BzDzA ¤!„Im¥ÁA©®ˆ…øˆ"bˆÂ(„†hŒ„"ì>ѰäQ´´„²!8.$¡4@-A#HVÁAF¡bB@"Ab!BGFADDDLuA„D$ÂHH*•Id8®BJ$FBaD'„ œÂ9„„Èb}+$X7w'F/"“T?5rbô'ob÷G'!;&/"óqb?#”A$ó#LÿsAODöwT=2;oevdÕb·E¡QOUÑö'Nt,²U³âT÷![4oõA]Â;eG%“GƒöDçW¯QòH‡¥¯U3&HúeÄMbW†k¨O–ܩԡô業"_ÈÜÃôa¡Ÿ8ò‚H/ˆl&#¶Š²…üJ*'fÏZ>«-d/zø35_4±CT2?Aód$Õva22/â6vã1ñfs?AäRÒAôdgo5±"Ò1ôrwm+DáW§#K&/qtqò$K/rôq"_!tótd#±EtDñ$v#³Gw'ú1Ë«T½ÒsT±ævCó!¦lèJRrŸ$ÜèRøÎD=l])&ñIÃ?ˆÖ‚æ¢8¨ƒüJB­‚/xrïôLT4?UóFR=sw5?ñBr=s/erw÷6?&ó"/#òs/4óqb/sÔD~wáDöaA!/7ôRs/2±AsVc^1FòqOeö%3{.&GaG#oö!wcÔqýE]!FÔQæq÷F1¿Ô÷j_4qZñBQ=b~—Ot~¤öǬ.‚M¦æòÊ¿´Þíþ#ÌoVòLmÝíOÂüa£¯,²ÊôªêO$xÈøÂjˆþFýãØsóG2oFõB/5ñC/Tõf'7?'ä#“2'!/3â!ñcs/cöT/rEô$a/"öSQ/6ÓcõC?ÅQAUS_&ò6oaò"M3mUofòS?FrWeD]Dfòevw~µzÕ³ôX'?GÖsõq£,üã$o(ø"¦Mƒ'¯,ün_Øvmýldm]n϶¸é²ÊòêÈ-ʇ¬'¬/ÌÌî¿3 'Sô2$MA#Áagä87EŽ2A,õÁðá–3qa”7Gø2Dü2$MÁ+A¾ÂaIá8·Eá(ôÁ2A,n9Fˆ7G*x2ÄÁ¯CòÁ£Ááë!ì8öM(Ž"A¬tÁ îraŒxcŒx"„ü*$IŠÎ÷ÃÔBô2E/CôA/Côakaoör_8Ç2O8Ç2_,ñA2O.ñA7îDânñA¤/C¸Sö2…/ö2…/äSøaM¡oÔ4òäSM"O:Õ$òõ_$öµ_dö±Dô¡Dþ3„?Eõ#ůQ÷*ůô*ů×þQï8ö¤C(ò„C(råúÁ*W¬îîÆîÆøbŒ?†øb̫¯BœÊ¯BœêÉÞ.~Ê’J’4CäB!äB!eBRæKA°<O(I‘4Q&4D1D1D-AD%ATÐ8O8EsAX$„M"W„&6Al8CLxCøAŒ-A„-A‰Ú”¨-Á©ò„B™â(ôH(†â„ò„"G„¦d„Z!9‚H $‚1$ ÃA"bC¦B dAN°BJ‘BQxA"HBD1TX! 1,ˆ"A"†"å$RA"`ÆB&ÔÂ"*„¢„)Dò«&ª$ „$¡A ‚B„!±a`IðD!B(JQXF‚+ADB(IÔ$ÀAtFÆ(ÔH¨#p„¢&%&áÄB*4D$‡B(†‚¤„!=÷ðÏ< HH€D"€J1!FD!A*!"!C0”BŒD„ ÀD'‚ "‚€Òá:4HB&A@2"!$A "(€$ŠB/}@!€„B "@À„H $!"(À"(€‚ "ˆ3%HHH "B0A@B@oB&ˆhDH0A„À€QAA(A@M0„ˆB,&ˆ!*Œ€$`(ˆŠÆæ($("(„! €! ”HJ"ðc£H " ˆEI"B $$Ç„$%4@„„AM‚$ ±‚DB$$.$!‚ˆ"!`$ˆ@"(ˆ6„@÷@ì1\@@@È@À΃@@ðÇM@@À”# ÿé@ÀèÄÐ=ü=ñ@ÏÕ @À)3ÿÌCQA(B#Á!$( „Ä6Iø2E€Dq!ÄaC°A8<rÁ°Aˆäb’„/SˆDaÂhÃ(J84¡¬„(A&–„-E€„‡B(I€Â3ãpaA2,ÀA!"HA&à(dC‚F(AŽdBŽ2A&¤fŒŽJÈa`B††ÈA&¤(†N§ÀaH$!!$C!"(ˆ!'(ÄA°Ad()rÁÂÃ! €8/(1AÀA0AHNˆ€ä(‘‚#qÁÂÓ!‚DAIXB'hSAE`()ØÒñ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuhd-3.5.5/fpga/usrp1/rbf/rev2/std_2rxhb_2tx.rbf000077500000000000000000005425241224274632000211320ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÖÿ@*jÖÿ@*jÖÿ@*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDUTDUUtuWwuWvuWwuWweVfeV65R"%Òãx×QQQQQQQQQQQQQQQQQQQQQQQQQQQQ(*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*â"ôBB#Œó88#ôBB/$ôBB/$ôBB/$ôBB/$ôBB#,ôBB/Dò$$CLò$$OBò$$OBöddOFöddOFò$$O2øƒƒ3Œó883ôCC?tôGGtôGG4ôCC?4ôCC3<ôCC?Dó44CLó44OCó44OC÷ttOG÷ttOGó44O3øƒƒ3Œò(("ôBB/dõVVoeõVVo%ôBB/$ôBB#,ôBB/Dó44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<Ïù‘‘iò&&cÌó<<ÏÃó<<ÏÓ÷}}ß×÷}}ßÇó<<Ï#ø‚‚#Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ló44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,Ã,öbb+!Ìò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,Ïø8:ã#üÂÂ/ìüÎÎïìüÎÎï,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâþîîïîþîîïÎò,,ÇLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Œò((ƒŒò((‚ò((¢ò**¯¢ò**¯‚ò((üÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏbôFFgÄÅ Ìò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ'ÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñËÁʬÌʬÌʬÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñÏüÁÁüÁÁüÁÁüÁÁüÁÁ üÁÁ Ì÷||ϧøŠŠ£Æa!$rAà(x0AÄA$#á(ÁÁ!,€`(ˆ!ÄA „Dˆ#á(ÁÑ¡­˜#!†‚pAÉADP$€b(omÀaA%„#pAp!„ˆ'C(I2A–„&ˆ#pÁp!„ˆ'B’„!€–„&ˆ#pÁ p!Œˆ'BŒrA€$IÂÇCˆtaD,R$&„z4ä(†ÂA dAF#ŽˆÒ†bB¨GBŽ"E†ÂA dAf4‚ŽˆÖÈÁ¡@qˆbB¨GBŽ"A$¸A&D†‚ø±ÖÀÏ€)BHˆH  ¤€ ‚ ˆ ¤€È‚„€B N¸C€H‚ ‚€‚Ÿ%HHH ˆ‚ÀaR(H ‚‚€/&  €HBHÀøãˆ€€‚ðô½€„B `ˆ „À›s  € ‚ˆ€‚ Š€€‚ðc_ Hˆ€  „€ H ‚ B‚€ˆ‚ÀA# ‚ €ÏÝ€„BÀ\C ´D‘&$E,”"0a BˆA!ê!Lh(€! !"KD$¸A‚DÂ&ˆÂ„")‚BÈL‰I(‚Fˆø†Ñ"€B("‚" €(B$à¢(!B ’€’‚@Á(( "€ƒ$ÄÁÁ°$„d$M$HD*+,B„‚@HH" Aˆ`*@•@a€„Ä!"ƒ2„‚@x!2("“F$‚( D‰4ˆBï‚ "`"A‚ Bˆ(@€H`"a !¸ B$"HÈAŠâ‚ˆ„ˆD ÀÃ!0(€€("$ 2Að>À#€D(` A$ "A@P„)Ab„ˆ(ÀIDHfD€HJò„™³(+Ap!€K€  @*$A!’( PAÀ4@££AH…¢(FE($dB„ThH€€šD_µ"À÷ãBJQDpFÄ!"¤B(H!”*4¡°‚À1 !Ð!!„‚á¢T$RJ9¨F#$I`¦"¤$“D¹"„B…‚ú²ƒ H`BD €(D€„"(D` P!‰ä€Ä(@‚X‚‚Œ0H‚ ÂÂFà²2¯(MA( !D(E¡D„D!2("jBb6¥D,‰!8A&Á!$Á"@qJ’QB!¢D0"ˆ!!ƒ(ˆ$ÒxH&‚b$B,d(„(›Ç€EC@4A R"€(à("JC!€!ÁAÈ„ÈH„ ¦"P‚‚"$€‹Ó*à%(  "’A"H A(*±"-‚"(B( ˆè³Q3–’†3‚*†òÁA¸aDB!¡Ä‚J"‚„H#ïD´A¡AB°a!A$Â2AH*J!€’S1C¶"!H3Q!X)*Ä!)ˆó(Š…ˆÁ„pHúhˆÈ‚"$BŠrB‰d‹B&Ž(“n¨@„h‰:¬ADA^AIaKD04AJ" (H2$-BA/(¢(Ú"Q',B5¡ƒ€˜JÁ‚‚Š¡!¤‚ $„"Œ")”(„¡ÐˆøOÇ€AB”UDDXC"E""@¡"2 JáG‚Š¡#è*èš( òB!D3’"€‚(ò(Â$/8F‚"Ôˆ$à„h‚N½s€L Bˆ "")¤’ &Š,$$,ˆ"€ @„„ðûk0" €‚„H€0€@"A‚‰(„‚€B"â„„@‚$ÀoS^EÄAÂF!Á1K$E‘°ej*‚¢"BA‚„ä$‚ÂR#*b"†±±(ã,1(n˜2¡ƒ¹ˆl"K#k†¢Š"4Št!ˆèªÌ!aŒ.„„”ˆ«È„€6(OêI11.HJ$¤DKACbAA"¦BF((Sô!2G$,È–2"#„Á‚"H.!ˆHB®‚#öŠˆ$’ÁYˆ‡”"+‚#¢D-BÆØ!ÄHƒ¤D"ŽB&ú(""…,R(.³£ ð4…ÅJvDä¡1JÒD’4YbB‡ƒL´$q4T$¢²(:i$8û#¡n“7"N!ò²"d7-QAÈq*Âኒ‚+ª-¡8òcb2#‡‚.H‘("∥h„ß¹GaR4_G©qOµQ7EnD^qOT·$qaÔDñQqGRM%b*âþ2A&*â¶1µqbÒ´QsuäAó&E-ó+?-s¢òÁq/"þƒb??ù³3¼3´AØ3²¢íøs›¯™Õ3ÿÑÊòs2)šöAˆ?®¢*?¼úic?¼øH£/¬”È?„òiÁ?&⊶*f¢‡Ž,öLB¯„öhhj<}\ÒDñ44[Q¡Q~D_BteáSuQt4ô$:wQõ$$Kfæ¦"(æ¦r1:2A„áB³uóeuo3·sò²²+ƒ-?þ£ƒ-3??ÿa.!!<Ü3÷³±Ÿµó‰‹·´Œõ™˜³óy)Ÿþ©È,ø¢¢/*ú¢ã?öã㿜ôêê§””Ô™öèk§Œ*â$â®ê¬ØˆôHH¯¦öHJoú _FöAeOU7EUOUVEjóeE3FtEáÂÁ;%Æa.A&5^abWôAaa_GóC&>¶?-ë#‰¸Ázáñóò®Á/3~r±aô!A?(~ááŸø¹Y¯ûÇÃ^Œö)A•{kò£ƒ7¬,z"â¼ú+È?¤øKÁ-Š;F„ò!Á®a/¬öJ"#梺ÎT*…úhJ§fÓÝA¾aôeOµAµÕó4Q[t%³$²$£D_Væâ¶Aòaa.A´A²a³qáÄA4AVõA'5õ$’/))é)ñRò?õ²r3·aÆaŽÃ'.+¶Ÿ•øÚ?¼S©~q“öØ‹/46‚ˆ+ª.!¿>îŠú‰KŸˆä”ò(!†´©þèJ#²bô¢â£tJJÚ¨’jÿM -E.A/SÒtÁaoâÆ!Žs[4Ž"A,³EòÁn9F‚7G‚'Sü2eMÁ%áþ!MaM!Žs[4Ž2O(²Á³„ñÁ"n9Fˆ?D¨>D/ÜJÚüÁèãá¶Œä8ôE(Ž"CøÁ"ExÁ*êîsaä„xcœƒ'B)ü*diœJ)žN-j³ÖQüQ&õA&õaM!oQÆ!Ox‡ò¤s(_n³AòåDn±AöáÄ?G¸SôaÄ/æRüA.Å/ÖþVAöÄW¨O8…òÕdO.±Aìn±Aän±Aþr„;En„/™ô(Ä/•õ(Ä/–ìo5Ô(ö§K‰ú„C‰rÅúA¨G(„¦öA(¦öAˆ/BøÃ(/BüBH¯B¼Âô*Ä+déúfAÝ@DhCáBH€ÄAA"ˆ#á( €dBÀ°AÁAP!Ð!8Ž1(CáBH¤ôI"pA FŠb(b ‚lB4騆b’BG`"*‘D"$!”aD` ÄAb‚f‚hc*ââ $b!4!‰ÄB¡…ˆV¨( ( ((@ÂA"ª#<*Fƒ¨$?Ú  4HA&(H*4.AV€DHB &Â!G"šH"Ô!¤Af!’ÈXa‰B¢¨ (0B*t!‚¸*4B€˜ˆ"ì1÷ˆB°"ˆ(!„((°$!dDB†D%„ø&R€d($àJšCGAB B(F„B8R`€•ˆ ˜„D…hŒAˆ¤$ÈÀH„@áH  %Š„DB2"(!((!B(A(H¤1,‚À1K$$‘A(JŠQ#•(†ÄA€LR‚(F!ÈHY".HJB#ˆˆdD8X$hž"D((#*2!J2"‚2„$X!L’CÈ)5$ºCáB¡RDàB`F"-B8H£Q‹‚EUHˆ@DJxH¡DŒT„E!¼(D‹hˆ‚ƒ¤ÄD¥ ($B(DABdD@-$ A"!Ž€DDaCHÈ€(A2A¢€$.¢ (B D Ä“Š(!B$`A!D! #"0„ˆ‘ˆH)H"BD"Hˆ)¸D€²Î @¢Bàbaj Â"À!€.Bh€ÒDBB „$H‚2x!( $‚”A Dq!$`B@±T‚„”ICDr„!’D BÁl?ˆ(P"H"mA2H"À" ”!€1BL(#dH€A‚$L¢J$H"€"D”\(`”(C & A0AÈA´FE¤„DhdH‰ˆ€ús[ € ! BHBH"B€H€a#‚ ‰l5kLD4‚H!L‚Gi )L„"D„”4LNˆH Œ¸$¡G$l²!¢DN"R2%X$„H‚†XƒR¢€Ha¢B)xQDƒD„Š‚Œœ$ouFÀHCH ¢€(C@4!°ˆAH+ƒ(˜BІ„,a$, ”!!ÐB€ÂA €2D Dì9N-"@äDD q"¡LGHC‰ÑDdI$¨ˆEÄAE¢I“²"(„ˆ,D1D!Vá+„…âBÔ""ˆ†”( )ÒÈÄ"&„„Dð|ø@”EA)˜!0!¤‚Ca@fEAd€’!±&±!!†J&B`(‚ ƒÄÂ!‚!ƒÀAD@"H–„F‚h$JZ(|>R<$B0B(^ (±$8B"H I%ITAI"¥DETDBKAAExœ¸؈è,¸ˆÔ"T„€$…AN¤„‡ ‰º‚¤‚)¼È FA@r†aDD*Š€Q"H@1$ Bˆ‚r"„RD@Ô4$a$(bDÆ’…ЉI˜H†jˆHD(ˆ@¡¢.aÑ&ñ(b(DÀˆ;ÍP@"ÈCM"€$¢J¢ƒdB"(PA&„…€è"…B‚"X"f‚‚!8!HˆN$9È$H'( IÈ(BƒÊˆ†"8$¦Xˆ·&(2ˆ)ŠèHD´: B! D .„àâHäz$‘d.!" (°a„!"¤"O!R$ˆ">"!(+BA…"Ò¡b¨0‚*±Bº"¤,"#(êH²((*(Â$‚ˆ††ÖØ7Â!IIH+F@˜F"H€!" 8! "("H%@"A( „ˆ@D@_’ @B$)DBH –B($B„!<€"*$@H1D„ˆE L<±%ÂB$ERÐ2"8HZm"RcÕEyQ$.$b*­2€ÅÁm!-3Ša(LR"DÒ#’!J²‚dD4šÚX"èhˆž‚V¨DoŒøäJ"h($G2›ŽG‹"&Q˜–Rú¡¬§Jޤ­„HȈLxŠøn£PA¡)áDT!$.¤*é(¨&â–")D¡hš7¡"/"Òd¢%dB-„,¶á%ÔDÄ%"_LöãD-¦¥ÔHqHX‚-"†®D&$ "‘®„X„Aˆ…˜Aˆ‚b"†$àl(ÛATBCÒ$ð’BJç‘iÁ‚*ñ%’’#¤:$BLâAÂÅ$LÌ/$‚¬JoÔ$Â4A¢+.C8¡*äB‚ô$"t"¥Á¯AX*+„‹èϨâ#H(²¤ªˆA•èÄØ‰*B"’a!‚‚‚#(XD´KqFõ#b5ò2o1¸ò'Vnt^%mS*ñq¤/cøGs/3þ²çD±$ñ$Ã>aFK+OôcOóñ”-"OµQøA$k*/Rärö¶†_'ú4?1÷ô—os¿1üó[äoWÔøq%Nñ'Ì[ÉÏ]ј{úHÉïe÷ênîúæh©úá,/JúåÉöé­WߘòAÅ¿RÒÑø¯«ß´Þ¨ú‚$æÄ¢O(rDüŒ¨3N÷D&obqÒá"òG6?á2tWäCá*ë(ú÷õ®¦/AûÑñ>aK"m$ï÷”SoJãC³EøQS/!rçôãñ¾Ç?Oò6/Bû²?ö6/!ÿ£s/QäDöDaÎõ_÷â¶_Nûèî_¨ùƒ›+ØŸ­ø&\§æŠþl,/J¸"ú"ãßFòÉÅ›êÏz(ù$a_Dôè¡¿¢ò¬hOÎüêæO(¨ÈÊôÂÇWhßlK²7ÿÕWOu÷EBUõv!$ÿåÔ/nûÖo*ù–&?fûã–_þ–óorsôeaOô$ÅD[œ4þ¢c[?,ùÓÓŽÁ?Dú×¢/JøG¶¾OHº!úô?ó´U~øE$OT¶æòöÃ_¦óì}?ƒÿ‡K”üƒ_½ñÅ‹ÿÞÜ{úÉ®k‚Obèèü˧ï¦Þ?ôêçí!ÏTöDaoÜþª…o$öìÂêïˆüÊJ¬þ¬n/ê6=t?#õUoµSµQôQc.Q_JûÁ÷/lù¦’obó‚¦/CóEQMão;þG$Tô$AO÷E„MøU¢^æ9ôÓ‚;Œ5ÌÁ{$?ÿ2¢‚o+ò„¢-¢7û¶Gor³WÔAÔò¤¦OKõ#ä‰õÈï4¹ÛõY“¿ü‹Ñ[ò«m¿nú„"ojâzòkîï8üOªç.¿Âôil[&[¢ÝÌ¿fúŒBÏîzJxJÚ¨ü誫.ÿÕ 'Cô2%MA'vÁaG/87Å/(ôÁ2StÇ"òá–#ua´Aøs„„/aÌÅ/sÖüCücÖ4õ„s[Ž2O(ñÁ2[,Žn9FJøs„)x2Ôü8$íÁ£ÑüaíaÍBŽcפŽ"A¬ò„"¬¤îraÔAøcŒ-„'B.įBšÌ¡‰ž®ˆ£ÔQösQ>e/åsôRqOòuOò„wk*Ox•&_n±EòÅTôõ?TòåDøw„?EûeÇ?Qý"Ç/ü"Ç/ß6þ–ÅOÿ”SŠó¤SŽ4_/±Áöõ\ö¡ò¡ú2„;>Ä?1õxÅ?õxÅ?÷\¡oÕ<ú…GÍ¢OxÔ,úÇN_¤òÌF_¤øäFÔÏnôA¬¯F|CübįèôjÄ­B¯FüŠbëämb_'HPB(A&‚X°AÁAŽ2  ˜‚#á($2,db@A$A$`$ˆ'AŽDˆ&„hB¨a.„€øA(”)"ˆ#b( €dBA‹cI1bO‚,ÄB"A(A„Ib*$„$’EKI"[„ÈCÆ„CD"†”"…#$1±bI¢W,D©1D©ÄD‚A8B‰˜"†„ÂÁŠü"A„„B¦RG"BGˆ!†ˆh¢_JCñ‚*TAÂ,f0$àA˜ B(F –A!/ÈA Djˆ´!"(ŽBâ‚•! ¶bA!¡ƒ¤A™(„±ˆÔ(’‚ „‰ˆ”L&ÈH‚&*b¨€ˆx(Ù1&vA0B,A!CR$D¤d@ AAG1 aD!B(`HHKAD@C‡,‡$0,!Ep¢XÄ@-d‚ˆŒ"´Ä‚T,@ˆ°A±ÔBTˆ)„ JI’  t!‚„3`#%Hð‚A"'H(!DBCA"PY",˜B$$†Äˆ‚G„HA`ˆHH*hD$ˆ‰¤„oEÆu@C‚Á‚AÐ$‚RdÐ$%VD(à„!BaˆBÂT"€2„aF¤„ BaA%”ÎJDÂ)4$&dHÐä‚XGDD(ˆ¬B¢D‰(¸HøgÂB,*$ 2bA*‚H$DMR%Dd(`BA‚&DLAA@„$!$€‚`„H ¦H‡BA%d(#\:7H(",!d"À„(D€(R0"°A”!L¡D’€'‘€'ŠB€B1 $BH4B"!ð®)(R!€âA¨"KAL"„æD!Dd1A!B!1'.†!“$,, 4!Cƒ”JJ‘AŒ4#„T‚D (H(I´(“²„„HˆJˆ¤Œ.RSÎÀB€´b0I‚¢%I%qF¤B‘"-F’D€è’E'C`!2CD!¡$AFaC$RH$‚ƒ•A$H‡("@"„Fa„"E¨†*ÄHAi‚B+(<ôÄ<B 2€D€”$ H¡$!ƒ€" B0‘Hƒ#Ô(‚(@0((@€€ ‚œ2=’‚QHBM`J"ÁQhAI&B…2D&1D¢Ab#!„(@dP$ZRBP(BCrCDñX†)¹‚‚–„ˆ&Â…`Ch’ÀD‰rH‚N¤"ˆRè @t"²A€DÁ‚D2† t!A¢$€èR”BAÀA"8”# ±‚LD!'ÔˆX(€Ô ˆPC ÄA0"€ŽD„¬($Â6‚, A'1D`b†”‚-!’A("2DC²ERD\$QÂD¤‚(&2$¤'B!°DR$B"ðÄG$¤‚Â"hMÈLj(,ØDØBxhH"ƒòAaE‚(’dH¤PÏ6(M!$$”c±a˜‘:(DF”D‚ *$²Á²A2A¬ˆhAˆNƒˆ(AHB$–FQˆ`„ ! !A!P‚B@$È%¤Œ ,AnÃãâRÁQH((<$Š˜ž„*IrÔ††˜B%ÃAE$‚A£ªñ"$LQ"^B#aFˆ&B$ÒT^*$H"I¨B&1"a%TBCXÎpˆÅB‰Úˆ)Œ8‚‚Þ¯`!4Aa#1&bBâ"HÁ‚.M$.BCÚ'"3A@¤†$EDr"RD)äÈ‚DgIAL1Á©2ŽƒtX¡$Ñ™XÈB˜„(À$HD!Œv$h$FX$Ž‚‰ÄnãE¢èa@$g!0†@Å"%Ä4s„!BS$òA‚"0$ €‚è(ÒÄ$"i2á((M$J’!(Ô2’$¡Aˆ-H(‰RD."&¢(Fqj4%„MEY‚XHA…ˆ%øB?Sr"´!RDDLdHo¡bhD*¤"!†1BPB ˆƒ3Yâ$A*!MaDDL⤤Ž#q”(3DC!¬\1?RRµÑQIB(ÁˆƒDè(HØQôDw³G#!D@AAB@DLhDAÈ (€BD#BHð)ˆ€"Ä‚À‚€A €B€B€$D€ˆ"A ‚ü$’D‚/(q‚ÄBm"'dc""="¡!r"Ò"¸8hÁ‹(ƒ’,‚A'h!7$7rAE9Af‚Ò†fˆˆ€4‚o2Có"Cvg†óFƒIábØvÑr±42a)òWsoSÿ†Ó4®4üEDú¶6O÷¶á%wfŠó†Ã$_Fò”4ozÝ6ÿ4'&ò¤–ÿ6E.C[./kÑTþ6EDêkñ”q?ËþW,¯öñŠ9ïüI:ßÅñ¼8ïúÞØþ,%¤ò„¤„þ%L]M—ŒwüŸäØÇÖXöïÎþ„N/ÈxÌôHêÏ$üJHÃôˆŠ£Ác/bò&6%qCóBB/bó$Sø´'?A&âbñÓGOk¹6óññOQö$$A_tÿ–E/s×Bù¤&süQS+‘º2å_~öG?GÛfø¢&oCòuõm¤k8þ&a.$K"_6ÿ¶C/b÷/–ïªòÅŸ´õˆÊóÕŸßÖ4ôo®m‚'JGŸÖÞÙx‰ùÊåýI…õ,IOÒþÏKßÄrÄøÊÎϨøˆÈŒüÊŽO¨ô3ø$;5tô"u%‘C=CO4öWV{ooOÿᔊù’’[®oóAñ>ÁMñEòaEMÁMõeúÕ6_~çyþU‚-ñÑs¾Ñ†gø²Nù"¶O!úõ{¼vÿwO>w_ö$Á/Rþg†óîS?éþE›¬ñË[OÛÿaŒ†z¦þã®ObèBxãîÞøjÅÝMÜßôM!O’TÏœ|N~ŒÖ,þÆÈ¥b¨lüÊCÓÞ#»qòASOõABôAsowôÕr_|½ô¨«ºë)ú‚_~ý¶Ñžå$ÖTÄC?Gùã-òóñmÑ;3ýÃÁÿQ²?4ÿ”"šú4”˜¾$?=ü2ÃoxtGôAeÔt·sùõ4W-ÏßÞýË¿-ñññüM¦ÿ¾ˆ²„š¦m¢O(òÎâMÄ_ÈtDtAÝÙ¤"\Ø*ôˆN‡d§„§¤¨øˆŽoLô5°2ôU/CòA#Áakaö„bŽs[,O(ƒòÅ2M2,!öá–#qa„øs„)ø2D/ü2¤mÁ+Á-áká¶„ä8÷E"Ž2K(,³ÄòÁân92FLxs´"ø2D/ü:ämÁ«Á¯¾ÌaÉôŒcׄŽ"A¬ò„(¬„îxBxaü!ˆ?ÆØÁø"ÄȯB”Ä©ˆžNͧcØQýqRôRARôRc]ao3÷qO:·‘ó„sšûÇ3e_>1A±EöåäW¹SþqÕoü5Õ/ü1Õ/þõoü‘qozµ‘û„WšóÇ=|±ÑñçE_~±Aþs•;Í_Gý’ÉßSýÉŸRüáÝáoÓü‰ãO:´‹ú¦G‹¨WîŒvÄöÁÈgn”Gn„ü&†?„ú"Æ+Dïb¼Bô*Æ+dí¢mA×£(Q.$Q…RÄA@!H!È#á8eBARÄA@À#á8eB1P„T)P! Ò"b(B$À‚,ìbìBbyAB¡£Bd8!JZ(@V +B9¢CÄ€HâDò$€+4Ab@D¡#]BaˆVH‘˜)‘¨$@-H\Ô$"\„Д(T¤(H!BH(à$4ÿ€CeB–tAb!$CÒ$s$Bæ$Q’‚ÆqBHg(!%4C˜9ô(Ä!ˆ"]BèÖQh‡˜!°„‚oÄt‚XE„&H”!ÆN¸b„B‚4"ÿr'D<" Æ€‚BD(,(ÀAŽ1`*" X‚H€eBAˆq@(@¨)$˜D…„@D"A¼:3I‚T(I"J"!äBRDBC$H CˆJB0A"$"B€DÂ$h((ˆ"¨$A(#ˆ2„ˆ€$bB ñciÀ3?BJ1AHH$Ž3AcK:H#¡\(ÂA,D‚}¤!šÃ!$ÈC…(Â.A5P'.†rÈ‘A)Hq‘Js,B„1HbB0…0B42JFaB&&,a!K!A"ABCa€$Z²(+!  4$Dà"i"B¡$©á$9N(AB ìFFB`ˆÄ…ˆ$A.å# `F$HB`HF,Q$K$y"¢$(0# ‚Á$'B("AˆALØA!â&‹"°d¸TæR(X‚ˆ¡DD@D€R$(CRÁbÂH‚†„„„8‚+BßAM†”BDJT"lD($-D*FQ!M!=/#‚!&¢8%T"ˆC”„ÀÄm!a@„"R$L’°„H"É…HB-ATHH(CB‘%†BD„b&„6LDA¡&ƒ¡#$K""K""bJ!BHDhÔdÁEŠ#"¨"K¨!c”$F’)†$B¸4ŠÄ"."$PB0„=„Œˆ2"é((¨ˆ>¤@²!Âz‘LB„"ÄAAH"‚$‚$'&uR!HDªÈRHADÀHF„FRˆâW¤L‘(?F˜(A!¤S‚4&6HEˆh(,AÎ]s2€Ð"„!Á€‚%@&aaR"$€$R"A@Â"A0„€",h‚"LòJSAB’Vb# Q"(D$ £A""@À‚ èH‘‚ ¢‚ˆP^‰B‰„ˆ@(À4óD#§!`,naO<Òób#+$bm:3bB.&¡$4be/!cD-b'!€Q"=Fo"ÒábÑAâBˆE¶Õ1„!C†"4Eð%È­I-(…¨áRx’èˆÒ¤b"EDÒ!bDfb¨M!ÒE²È-ÂL¢è¨ˆŸ·8DòBÂr'DLâaB+A"IÒ$RB$*K)á³QáñE&áA„XDˆ6â2æ*‚CÔD"èx§$†ÒDÁÎB,qh8"´"RDz#1-!L”IÒ9äH²Èâ$z„¤ŒFˆÌè"2j5Õ"AÁ4:EÂ(E’%O"f$1 &õ1BL¡")U2@ÁFhKˆŠ“¤®$„.†öÄ_DB4$ð2$ˆ)t4HÁ¡%Ôô,FŠ”$‚ŠbL0„Sf„`‚GD¢54Š#ØHØBô"D»Kãñ1DBŠóF“;efü"6/VõTc:rAÔBñtc;c.EOÓ³!ŒdTKmr)÷B'FñS?52e7rRÖ¤‰Où44O]õ”Õ/+õâ³Ox“ÁkAjú‚"ŽSOx|fåÖñ‘ߨüJ(ñ¹ŽŸ"ÞÛÔNteì*úGÌíEôá"Ÿ8’ÁýEÏÖú‡&||HöêˆOÊì(ÄB¯ŒúdŒ.µãÖ2v&ör6}=C-B~rD÷a1.cFbc>2'"VfA>O4õEORò'%nc?÷%bm/bòF+T?qsdñCTo1öu”OBÈ”OûqÇo:ù6‡oEüd]$CâDý—gOA·%ù·'G-„•‘¿ùòä¤ÜQöìŒoJx†ÖòiÍoRx§úÈÇùÖX2%_œÜoþŒ¤ÇFojrÄêŒ<Œ/húäŠïRKòòÕ2sòSRO³5öW&~4Dñ6"gC/Gávñwbo1ö!ÇoUòeeOõd7w7òEqcWde/dúñ’_køg¶/iû"†/nøó¢Ouþä_{üv%TÖþ'ÄGúÃ:ßýõ™þÿ”øÂŸ/÷•þ¿Õzbùª‹ú&„'>OþúNí}mORüo-OÄÖö*Áÿžò®OèôÈ&ïŒ|Âê®Þ9öÎÓÙAóE2Vaõc3/ô5Dqô2M2oCbC6$÷aO!·bòAE]AOvGôr%_óeeC?4áñRDMg~øäÓojò–&/#ø¦ƒoJóEq{x?8gne]e]e[—?>òØ/Ÿî݇}Ûk=ŸìÜOÿk«F¯bò„¦oBø&?:òÈê½ì¨viüemÙöŒáß–øâªÎ*.ÊéüÊŠÆêä´ŽîÎ6ÅE/CÒtÁaoÒ–$ŽsW$O(“$_,öÅDnytaäBxsäBx2ÅÅ/BÒ<>–Žs_$á(“,Ó%ñÁòá–#qa”7Gx2ôÁ¯CÒ<áëma‡(ŽcׄŽ"CøÁ*Gˆ¬†üáŽexä7†Œx&”ȯB’Ê¡©žŽVQu/SäWóA>/5ö1o5ô1_|µó¤SK1,õU1_.õwîvGþvDørÔ7E~Õ/qæVüqnÄ/¶dþqîòo9ç&ó”s.2-·aòÅröõv_n·aøsä?ùwå¿;ü~å?9ÿzÅ?9þ~áÿjc_xöè¢o8ö¨&¬öá+oìváúân†în_†øbì7¦/Æú.BïFžj¯Fœjëæíf_© +,(*äB$Z4AA A,¢A"È3á(ƒ%„1B(cdRcdCdKDMA¢I¤*HŠ‚¼â(¥!HJB(ÃdBƒ$2H"‹D†4(H"H$Iœ#ŽÂ$ÈJ‚(„:D&$ô!-#ÃD<ƒd1Šä8"ÐA6Ä"Cä!R$S"„äBHp$‚ä!’¤CÈ2¨G$Bh@1dD+G‰*a¨†™B6ÑA"ATpD‹b4h(BgLÂ)Æ£æòŠâ°‚˜Q&±BÁŠ$B3U !Di¢aCAe!"Bb(5„€”$!E¢°´è!F²¥Š!†Ôâ!²Dø¥$“È!k‡BA@$”N()"„ª’G,ˆ&LB"øŠ)ä4xDr$!!E4dDb!IS$&C„jDF"¢,ÒA¤Ž""A&„A$XC!*X(2D‡B!@t"˜ƒUHB „ÂAƒH"bˆŒ,ôwp‚(6#"‚’"*„%!‚”!BaDB±"(#$Á!`("/HQ$"HACA¦‚„$¡„%\$K((ˆdŠF'BÉC‚$„hB,„X(è=ts\AÁ§RQ†$o!C„Á.N" BI’JÁB2Ĉ#È(ÒA0$¨#X#@dB""€8Q‚Hˆ‡HPE„&FD‘ŠG(•U‚E(Ä<(d"J˜ˆ, +Â?þ +($BB,,*&‚„HD",DD$ D*‚HN4EHdAA-$Er €3R,Šˆ!.$H.$H$ADH(Q@Cƒ„?ƒ)(‚‚‚7"  „B)"FAI‚DBD(D€AÈ!à$B$$âÒDp’!ˆQBC! ‚p$D1"!ˆC„ŸÒ$VµT!àb!B¤#àABã²AAÑA€q"EQFÑ‚’ÂØ-U)‹Â((<b"ÐAG‚d-H¬±’„.L(…b"AªØh”…)´*tA|!(4ŒÃfBD©²BÊú³×"(B‘BBA1"T"I"B Jò!ACa4À"L#…S"((˜!$$Gb‹A29ÒD‹$$IfãHDh(¬d&LB!6&ˆA$ ìôÊ€&$Ub$ "‚U1D%'QPAB0$ ¸ AŽ$(iÁ!!&‘$¢DCB«€‘%ƒˆ’‚#BDÈ%!HIBQ„ˆÇ2H„!$L1½ˆÂ(%'($@’%BH!('#)ÂDF" KIDÁ"CÄ$-(O!YRÀ‚"D'B°!„„Â!#8BA,N‚(C_¡ BPA‚H@IBDFA$DQ!(Bd!AX1ƒBLT@‚D $R(!ăŽêP16$FƒBÄFF¢"AÀ‚-D8!‚DE"‘&I("E["i$R„¬'ƒT”A%¢‚)RDhh$ŠRB&Ž"hd¬d($JBµ’AE(D@K!@P$0$HaD±E@!)1‚)($”<±Ac„ŠB‰QP„ˆ„@ÂóT€!!A€)'B0BBp"/BD"B†‚"H$(rAeˆC‚´±*(¬™è!aD%4‚D"D"8BB%‚Ô"DR(,ôé‘B!#"1$d,ÑÄ)Ã!‚I(I„ $²L$B)x$@•$Ä#IÊÂ:ÀATb$@DtD"…E4B"¤$B„¬9>(E’2IM"@2$Q$B@€#ˆRI‚AQD"%4PAýCÁÄ,¡*”RH2K(h(R&(à&!"fHˆ/FXAhH)œ¢O˜I‚4„,b, fw%ÔTUAW!MBcá”Db#ñgsQVdeòÂ$EåBrE\„„²DòA©¢¤ŒrA˜.De’B=Bˆ‡"o8ABF"qAqA¦TB%-biÔ4ÑIR,â(B"d$‚`$b'F)2"o Ð]$$ñ‘(NG11id+G%E”‚$Ø"Ô$H˜JA#n¤% #H:BN(³UAH&DÐ"²#5357! $6ANALÄ„!b`ІB²„ÑE3ÄE6…"<¨‚'B“]‚‹‘¯ÈÉxd(Ž%Š¢(rÅZR5BÑ3ƇIŽ˜ˆ")ø¨E°dW~”%²ýB"wg7S®ô]Ñž27b/Bòws-C/sõc&o!ÓôAFú–2O8å8|ctaä(ñ”Ã;%WF®/ZÞÌ#®¶/T½õ$EOzö‘3tõ$¤?9òƒoY}yÿw7¸ýB1ïvô·Úsr'þ¦¦öÞ^ô+GÏìr¥—a¿ôI¨7:/(¶ªüL*gÖŽ"o8üJ('¦+˜£÷%.6c¥tÂ3ovñÃAöu¾¦-".2WÄ6'C4õaIz$ôAÑ/9öqOCy²vÅòQQ˜/(råöÑQ/÷u„oCyÆâAòqÅ/Bø¦WOyØÂ%WR]—8òvß#ù¥7o½ñQ[?¡ù‘6{uÑÖgò#†Obø†$O2òcÎÝ£wXžÞô(!á¶þ‹Eß"Ö(ø¤&G¬NJ­‚®"'¬çHñT!_ÕöW÷ck´wø²?fº¶ó6F?Gñgao÷&Å?GòEaMáoRýs¤-óÕS¾ã{…?-ñÁsO9¾Wúw”¾Oú¶kƒ/oñä£?EûqRø6%YÒú#—O2ûÓ:üõ›ãÏ¥yÃòØ{ÿ©úIûÿâx¨ÿïªLÚbjÎ?¾øeì¿Ô_~jùAiÜ)þm/¬òäN¯hþLŠ'¬ÎJ¯(þhóØQûD!OWÔuQñA%Õ2öu–/fý³¦O"ó4>&-6_5Ö4÷cWFVÖÖöu”?nóÕ"_~ÝýÃ-=Ýÿg„?Víkó„²+“/Bù²2_mÚþ†&&ô!%(M$>„?;òÂ+OÝüË—¯\üX¸¯Âø-¯Šò„¦+‚O2ú‡$O¼þ*âhôl(„´(Öôj¬gìoîòÄέ‡ŒÆøÂÈþ/wp2ÄE/CòA6MaIñ„s[Ž2IñÅ2YñÅôá–7AFˆ7G-„'S/Qü2%O</>oV$ŽsSä(ôÁ2YñÁnyta„xs¤'CÁ¯CòÁ§>V,8vMú„"A¬Ò„rÁ*òáŽ!Æ*xc¬‚'B«Â¯B’Ρ©ž.Ì“Éå?SåvöAnE?1·döqO.÷†óKB‘„Ž"g‚p"Ü(—D…b,ÈH!€T²ƒ #T$ÄA!CDód!LDbC$DBÁ`:”#9$#c”D!e"E1‚‰#´‚8‚A!¢A%ˆb‚„BXE‚Ð,R7$/HB9`"@T@FA@#&Ð$‚HA@B„DBˆ%! A„H$fH&ED ô!³sB•"'(MBpRG"€T$Yó"10Ad!&$AQAQ"LIGGDAIÒC#g„8•tRX$Gˆ$9ÂH".L$¤…QÄ‚2(¯Dò^B †‚"!!¨!&ŽaŽ@$!d@„@(`(`(@‚D$—DÔÁ1Ë(!(5‚Bd@˜%!B@("(DB"@#ˆB(H.H€(!¢Dˆ@$ Bof 3B1A#THAŠ£HO"1!FA$Au!V$+BR$'AC’€Á"(Á6GD&ÐArDÈ0Õ“E!t‚-$$P!ÁDP%DDDT(€b$r8n(3A±"4$!вARBÁ!%$’$H!CB)B1‚/AAH@NÄ`”"IDF8„"$ÐADˆƒDEA‰òÅ€A$ABÀˆDJbAAErB`(,`CD"PA+!Lˆ`BR”+a!‚! AHAA$($\7ŒaA)@&D`ATDD‚B$1"%" –!5@PTŠ$P$"AD $PC’"„*TPÄ!@ÂH¼-N@"@‚XAÀ"A('A@DAD!ApDDÀ$€H„‚L)!Á@dH$€Â¤20B$P&B!Hd1"RT&%Â$D(@C"BA ƒR$CB@D(A%A‚„(D$(5&ÃA1DPDB!!‡dðëØ$D€¡XFFRIˆL$„4DŽTBH-¤XFaDAN#ˆ ˆ„±hAA°hA ˆ0F¥„LŽ„€L˜‚B@â(!(‹ˆ H"b"c<T"M!%†(E1$AD!JeA*d"HÐDŠ$‚E "`B1"!"@( $ð„$D(GH(…TƒH¤BõhB&”BaHÐ"Dô¤ž$#Ta$3!B5"¡&8IB²FÂpA1A-ÈD„(A$€$Eê"B L„&„•CA=$¡DCedÌ"$/>ãD!!€A@DBB#t„X2Ð"¸'Á1€3"‚`ARÈ¢ƒDAA$„H… ™d„Ìd„e‰ ‚"»l”MR1`R+‚TH"D@‘ÆI%±‚C˜°‚!$:H2$ІÒ4DAŠ’Š ¦‘"&AFBBT„„„”Ž"#$4‚!¢Âc H$ $B ÀˆÈ ($Dˆˆ…ˆ)$$†`"ˆˆA/yD@B !†$’B„‚B J!€ˆÂ!PA‚Ð)ÀDA@"HÀ.C2G#G!B,æ!ò‡"$(I„‚2DCt$lh$â"H,dẂ“DK(ASÒaqc$²!*2­‹"!©N¡ð‚!€Â"OHR$O˜’(4—RVÍD”ÉxEHIœDiÔ"‚”‚MDg¤˜!$'4 tQÄ–D±1±±Ô„ÃBÎO$ã,Á*ÊAóBFà!˜")ØB %DA†3„H‚ (H4!D.„ˆÐFȉÒ"È!$TŽ(-(‚ (h"²9\G-G-$+H5Q}ðqE‚BBCfq!a=…B@Ô1 B2A¤8€‘[#¢@dBD7CVtäÌa‡H)(ä8ddGH$\èôt$|ĘL”ŸBÄE‹‚'â%Tb,ˆT#,Ô(øìÐFöE7f'1!äóv&?qò’Õ­9$%öeaÖQgEYñ$A=aD¸§ñ¶S/)îEsR÷“o9üQFò‘Iý$Áó$ž´6îÕr÷‘Vo+q$ñ!„G+O;ñ¨ååsôšQÏœ9Fö„"·.ÇlòC(kˆÒøLn})tëmýciÝ…wÞzôήMdoBd(o,Ø"ô"bÏx6ÉG3ÑcrVóSr-?3ñG7;\/ôE6/i;B&óGT\ò4nA>AG_Aâ4ý³RO#Ôfû²&oñQB=‘?;òÖ5}>Q_DëAª>2vïaø‚t?9x21$M$“/;q4ò5ÞÞ4_ŒñSȇhöÁA'R?dÚDz„ô&A¿äÊåŸLòŽÇßÔôI,MÇ÷ºWfoÄúŽfO(D²Bè*ö‚dÿ±AqwóvG3¶EñC?%õ7COûwµióS–o*ó44/ess÷vCo3ô6ç'UOô%áOrþQ—ñ÷S9ÿU’-ñÑS_9üt²uûƒ6?mù6’oCûã?mûu‘o÷6§7AWOú$¥?AùõJoñëº_±ýËR?¸ñêÉ¿Âúo¨¯ìòψobêbú†$ÿÜü*Ïvöl¯¹v(ñhéßrÞ¬ü¬D¯.öήÍʨôÈJŒø.WsØA»RòWv1uAòQ%õ"B_UûRõ®´O#ñ6/qó6o&õ'R2÷G%F¶%ô%STëòõ_]þÑ'+//ý2ÓgûS÷?kó¶‚oaëcëiñõ³o2}´ÑEò!%GG2_Aû³vó–ç1yÙú›J¿½ø*Éÿ¤Þùþª,kŠ-¦Mæ/žò§Èÿæø©E)fø!H×öÿôúèb«JïèøNÊŒôŠH¯ªøjÁ.Ïp2ÄA/SÒtÑ6V4O8wEò„2EòÁ2],Ñ!ñá–AFxsÔax2ÄÅ/CÒ<>-aEâ8wEâ(ôÁ2Q,nyta„xs”‚'C-ůSÖ<~ÑVŽcפŽ"EòÁ*W$¬„îxB|aˆxcœ‚'BȯB’Ä¡è¡Ü>1Lÿ3A~t/äGôaKfQ¶ä÷„óO.ó„óO"óÅv_'òÄvWfOnwaän÷a„ooþs„þå?sìOþÁþÄ/¾ôþåO/÷„÷O.ó„÷K8l½ÅóçÖ_^ñ§¶Vjóa…Kús…Kúsͯ[úÁ¯Zø[ûïú^çï:òÎï*ò„ã*òŪ®ò„¢®ô¢¦–®&†ü¦¤?–ü¤ä¯‚üìä­ÈNÜŠ¾ìÞVÞ9DPB(A&4ÄA€8Ž!$!fR@0Aˆ#á((A&tAØTˆAˆ5h(„!(a&sÙ*‰2“€¦E#2$`0D"LB%‚Ĥ%$B2H"I¨EÃ"A(€6AC0!%%r"´AÈCà‚ñƒ#C„@’e2,ÌH„ô!…0jJH¢$•áX LAa!@G$T–RB…„T0$FŽ"A"‚AD(Á"A""S(p"AÆ¡G‘H)±(vƒ„A3Ä(I2JCRHF4!dލB@2"Ì9ïˆ'&¸A¡4B"x1B!)!"4KR!!À…²H‘A%"!l&((a‚A'†DN!K‚%¦$JhH@$ˆÁÒHATHˆÌ<¢#T(„‚M#ÿ“ zBA!Á"BR…,"$&r!H!È&H,(F<#bB„nIR„H@A®I.AƒqD(!Ñâ„a(ÄA$H£rxä‚eD(ŽDJr$4‚B!Fô"^3 )”F,BT²C•"%‚±Bc’.'PM¨ºÑ(Ô…á„ä!,Æb*ñƒ%$!!(crt"kDPtŽ2JéAÂÐ)GŽAD!‰ø)•’hE¸D8ˆEâ$rt8†¥b$PB?ÄGA‚‚C¡Š€*F(!È $ˆ4)ƒÄ"Ø(„‚ ,aT€1"‚ÔA@Á$È€(„¨ÃdÃH¨ˆ(!p!¢(0HD@,!„ÙB¤$Ð"!L%Š„‚!(@ØB™!AQP…s ($"” D#!"!2àñHN.Q% `!`BY‘)2!²!²H¡‚4„hÀ£B¡`!&E2Í,„¡ˆX…±!‘qÀ!(Q޲!‡B‚‚+A™Â"h‡D2!‚„.XU8F-DbT‡DgHA¢$ÈþdçƒÂÒ((QÀ±$((%AÈ"B,C„(CQ"‹AB"„Y˜bÁ!šN"™B4! ‚øD!$‹I)¶1ÔH¨ ˜"Jx$d$PA&$”$³DAˆJCö_½€E$ÂCÂD!‚1Ä`(„q!’¢A@%¡H€¡!‘#BQ°%‚#‘€Ø±(!ЂBÁ!A¡F1eEx ‚„ð$B¬1R8@ˆA"- )1A!À(á2AX!Q‰D81$À$0$A8$Q$a„D…%\A".t*!"’HAAÂ$òä0#R!I!,h€‘ACB!€²B¡»(DA¢‚. DA‚`!‚bI@¦‚$M@BEÈ!dDH##.=³((4#Ä8 ‘,AA!a!("…2EùÈBx$D˜&’$*9" QjÁ,að‘BD"…T1$)£‚‘$„"&TÁ…AE2„%"H¿¾ 2F‘A$#„(4‚‚´!dH‚B¡ˆF#H!apBˆ”BȈDh`)\BÅ‚£Bd‚€XBa)ÑȈ%‡F&B H.»ƒ’A€"ÁC!#ˆE‚Â# "A$AáÄ(‘H‚à‚1!(†QÂ@”#ðJà(A$ò„¨HD'‚ð¬—0A‚F‚X""2‚"J"„ÒB$¤‚#!²8IA QÁE¢`Äà$ñD•#…6 ‘ÆñHACÔH!TXH$$D¼:Í`!ALB(H€PB.B!t!¢%)ˆ!ABA¤Lò[!(Yª!=$ÐX°(4!(A B,BLPHx((˜JL )”‚HLò¦r€‚1$B `ƒP"âAL$-B,rAAâR–G˜DR5„´(–a†T!X@†Â("€ÌBØ’ŒN)E¦4†$$Bd$®¼±!%€D$)H¢„JH*˜‚)€ i2„‚BB% H€!‰G† ‚APD"€LˆH˜ð§’@Hd$N‚ˆ!!H!AHMD(† ,%T"FˆHD‰#C$A (HHTˆLH‚AA‚T‚‚BÀœs &†T"\´‚„-F$£$”C$ò,‚CÂ+†H…Ò^L])Ì•ŠBá,q!øFÂ)Mˆ$a…¤„…Aˆaý‰‘DŽEôEØaÁHUTÁÂøHÌH!Hˆa¿¦Fc$BB°AøB‚ˆ#!86+i)‚„=RÆÒ32Âð¢“Ü3qézBĈƒbDLÔ)½ü,f¤FTðéE~ÄB¢„$è"!¨Z¢Â-ˆŒfE8XÄÅÂJG(E6¤,2 ñ„O#D!ñ$,4†±rö1<†‚‚Ò"!ÐsQFq‘1c&¡BðÂ3–$ŠñcŽ$H%ET/Ø1Tˆ-(cá"¡ƒ•Šcw¤M_zB²„1$$EØAu$x…v(¨‚‹Bp(A4+¸-"ºøIY+¸/xê?ü;I…ÝòAÑ?;¤A³*rÂñQR=‘¿»óÍ%Ÿô2[ßÄˤêáó}ÆŸrù›F¯;~Rñ%i_DäÒûyßFø¤/+âõm¯QþÚ/«|{Ùô\-‚}ú{øLÄ/êv„Òˆ£•/+÷”fï³ 7§Ÿõö+3+¸­*/ý²Ño*þL,ß–¤B.Qû⇿½þÛ§œ¯ñûÈü]¾Ÿtÿ³.o+Ùfú"§?Jñĺÿ‚ÿ…XÿFÒYômiÏ„õm¼?èqóž?ýÃ)ôØŠ?“ÿG½Õ?mó„²oAù"ô¿ýóòÿù¦#Mmfý-IKvÏÔû£FÏ*ö̆+į¨å)å+¹rüËp2ÅE¯CÒ46ì87MŽ2IøÁ:IøÁøá#qaŒxsŒx2ÄÁ¯CÒ|ÁáçV<ŽsÕê(ôÁ:]¬AøáÞ3óaL.ˆ?ÇÔ‚ø2E/ü:eMÁ£Ñ>-aÅâ8÷M*Ž2IòÁ:]"¬îsaœ7Çx2”¯C’Æ#‘âãÑR;§=w/ôz?ôzW?ö~sQöús_8ÿú2O8ÿ:2_¬ÿ{;_,ÿsîö÷Ç/n÷e‰/oÿsˆ/oÿ;ÉOÿÉÏOüãÏNþãÏn÷„óÏoó„óÏióÇÚ_ÍòÄÚ_Üò²ÞWÄêõE/ËýW­/Ûùͯ[ùËï[ù[éïIûÉïióíÛÏió„ÓÏióÇš_ý÷’_ÿõ£¶_Çô¡6_Öü³´çü²ôoÃüêäoüîÔ+áïN¿þ;‡$†H,db@!„-A!ˆaI8Ž$@(A&4DDÄÔHdA„#ñ„RA€dR@DpAÌA…ÄA„Ixø„„A(A.P‘a!'P!+p¡(#'BS‚"Jr”+P(Q(ˆC"ø*$D"†cB9Q&„ÒA1B$…1B8CM"F\!DE¡HE‚DáADÈE‰Á‰DFÔ!TBˆ+$Ÿæ ªÈPÂ!‚¥*‚k"¤! "à´'B(Q(Ð’¤ˆq"*ÒC@„R@ÔB´A$HSd(Eâ‚@”ÂF„HSHt„1H…QBHB(Eó=!$&dACÄRD,’X.†B‡BT©‚„)8$GHÙ"1„MC (EC¸AQ…BWDI¦äCDHt‚Š-AÎBO!ýxOÃó„DCÜ"Öïñ*-×µ1Ô¦u"ømL?ô8[ÿÆÑb3"/÷-]ŸÒñA%ô9I×’Ý-·³ÛCÝ¿òòL…õ?#ñ\?­ôx_HÛBÓ"ãñ]d½%=/Ÿ¤´*t-ÙܲÈõºBËCßAó#'O,øXHYñ#‚Olâ-ö1UN”)ò¢2®!Žßñ‚3Oîý>A‡OUöÅ]ÿ{²]¸ür2O©ä„¹XùrÖOíöV:$'ó|IöOY?%ñeO±õ/zßÄñ*·Ço"ñ$ÂwYµgñ%qÇþM×’Ïò'$=§ñ]c>sï•qCóXV_#õ8^ßkûÑŽk:m$/trIögA’ö%ä7E_ô$aÒöÊ÷§_·ü˜óoœñ[5ü´R»Gû‚6¯¸²¹òú›­úãYï[ô©ä§”†÷¯å¯ÂýRj®š-ߎøRžÚÏgýj–#\c{gOAå‘U)¿¥ôyK‘÷o¿ÔóX.K1OAÓRs1ôTq[WGÏÄö(,Ç‚_ÑDó*'Ï·òUF?õ[¥ñXK/’ôN´?Ø÷{.O+ù¶¤/Hú#/Ï6´'ô.KÏÔâV¶-ô%XÏÔûë¿O¿øÕî¿õÃރ=¼3ýf±/L÷’"¾+¢+«?3â½ý;ÄÿcÿH)nhŸôhŸ„ùâúî*Ú«…¯¨í©áíù>‡Ãp2ÄA>$MI#Áaë!aÁŽs×$Ž2EòÁ:YòÁðáž3qaÜxsÜx2ÄÁ¯CÒ<>aEñˆsW„Ž2A¬S„,î9ƈ7ÇŒx2ÄÁ¯CÒ<>ì8wMø„2A¬ôÁðáž!ÆxsÌ„#ƒü:4I¼¾ÁèsÚAýeŸWõCß×õaßU÷Cßu÷¤SÿÅó¤SÏAóåZ_ÅóÄR_×ánw}ìjóeŒ/c{wü:÷oSô{çoôÇ/öoæ÷îvO8ÿþ6O8ÿ¾6_¼ÿw._Å¿ÿÿÁÿÿýáÿÿáÿ÷„ó¿/ó„û¯)óÅÛ¿­óÅÛ¿¯ñáÿ·‡Oîóiˆ/ëû{ˆ/ë»Zþªž«Å¯ê¹Zþ®ºïUþ~34A(SdB“DtCHtAqAÌA…„D–D$m£ñ„P$P$,dbl„!ÄØTÈ!Äaˆm‚#ñ„„G(„G(„Ž"A¦ކ!LòAˆ-A‰’ˆ!„-‚£á(1I†Rˆ†Bì(R„®E(8_ˆ†1j˜B„«$‰1FâB“X5¬C7B„œd"2QFÁ!0AƒqE:R)*C”B=¤6'Fئl䈲Bb°’a$®F"²A‚86‚H‰˜BŒ¸2O‚dH,dY©1„‡#X)‚û­ƒ!&(qˆ-8C0&1P.ƒrAD(bSBJQX,„‘"$q$"bD‘.$$D²N%!1B@ÁBBD$V„HB"BAƒÆcŠTЉ2ʈD#‚ŒT$R¤P&À„„%ÃLGÄ@Tá@H8A%L(EQ‚ `b(„ph&DD'‚d@BDQb‰„AHO£œ‘ˆdß%Oƒ"%aKd!(@baEb‚G‚"d(DS‚IÂb@bB8DbA(!H€¹"”†$d!„ ,D™DLÂB,±HBqD FMBƒ2BN(’Q“H‚Â&Ø#tR…•B2%¥b5”B%QN(A‰BAX+$…òHB$0"=((!eU)-I¬ò,Ác‚JÂB(ÆB%T!FÑzÂ&HÑ!"d%N4,!è„QH‡h?ꀈ!"AŽ,@DDATH@ÀA&D "A0ApJ3a0LA&(ˆH€PH “!.çc Š˜"LR!pBQ@2HIAB@H ! H°$-( $LB@!`BBAB!FAd"Fˆ!R"`OïG45$Bá‚‚†袸!Ie¢G%a€œ&2VX‚Â…'‚†C82!ÃA’1Y%‘%L'ôE‘Ñ“tqA&IÅìÿÂö!LwaM3Ïrö'EŸ5W%?Ô‘òagG;ÿœ¼‚³aâ#ùÓy«Ÿ•ç³ñURݤ¯Æö(„?|õ#.gë—TŸ©Ò=ôKßò­O©òãíë_Âá)òãÌ¿™ö(l­ø鯂ôL„ùñ…VOqõ^¯MùÏ¡õÈ"/-K?X='gö_çÖñ"'4¿õv/ýß”ö)cÓÂò&cŸÆóAMÙõ(1_ô!%ÇVó.,Ç”¿æÒ44AI¿öÒ}ôa¦_Ñým4)ñ"2žÑŸ—óY¿uñKcÇDÜôl±š÷ΗGõßÿ÷ŸX?,i¥¿÷šMo_ó†Õÿ-ú6/Jó†”?ûûMV?I÷.Kn-_DÔÁÔÄ|ÌýÚŽ‡äÏìõžX¯é¥øÈZžho› 'Sô:%MA§-açœì¸í(ôÅ:Q¬!òáž3saÌÄ7Ç.„'C\ü:$MÁ£ÁáãÑVO8÷M(O(Ó$òÁ:CôÑðñž#dÆ„7ÇN„'S.ůSÒ|ÁáçaEá8wMø„2A_¬ôÅîsa¨‚7ÇŒx2ô"Ä/C“Æ£¾Á.£Çt¯ô8|¯ô8\¯öºÀ&qDÑ´H -3o$à(Z!‚ã˜ñ!BDQ”D´ïÑû¼[÷Ó[BA²Ìù>ZÏ_õ•=ásܲÈõ¿ëûÜ>ÏeýüœK1oA{6ö$4ÏϼŽû>Ï¥ýaÝ­—QßÎÿžÊOJÿ”šÏë»ÞñÚÚ¯‰áé{þö·<_UóHB?q÷TQ^S+töHáNýáY_ïó’²*ó¤/4ûòH¿Òµ{úS!OFô)Eúþ\¤¿ñÚû¯³ßüØ›¯©½½%þq²?9sãþ²²/"úÒ:¯ëµúý3?“?KB.hëw/Áùò¯ÿrgŒ?5á5å)½~»òÿ’:¥±6±¢ò~šn†+_ëS:wZüee‹ÊžxO.øÖ4Ï/ý”ôo-é-é­½šýâOÐrúG{3õK¡=SŸõU?/§ôñÿGš¶'IOS~óý¿Ÿ¦ô<{JrhùaH[²/¬óâ¿ÖþŒZŸ¹ô˘¯…õø^OkôÂ3Þ¾O%ú&’/)ò‚öïû~Ú//õx?ßÕ²$bFÏέ½ïkûu—Ÿ¥õ–H¯4ñY~Ò¯ËõÒ¸¯Éÿ~:>oAº"óž*Ï,ÿxoawtøLa_’öˆØ‹§oLùtºÏí½žýؘ+¯­ý”åŸ /SÔô2dï4¶^ÔvLã8W­Ž2EòÅ:A¬a¤îYCÆNˆ?ÇÈ„+Cü:ämÁ£‘âëÁ-aŽsW(O(S$¬3DÎFøáž%4aJøsŒÈ'SÁ¯CÒ<>MaIøˆs—¤Ž²†òÁ:IúÁ†ænQƒƈ7Ï+‚'K¯Büº$I<šèë)ÉÕBþr[ïCöC¯CôSsë#q÷ø²oý÷è²oy÷ˆ²­ñAyooùaOoóaHnóa‰oGúsÚ¯Gþ²ÓïÂÿïÂýÓãï‚ÿç*þÇ+ò„s+úÅ>ŸúÄ6ŸènsyèjóaˆïCÿsÊïBÿ²Ë¯Fÿ’C¯Fýcëöo1öjjoxÿx¢Oø÷¢_¬ýY*olýq.Ïnõq,ÏnõA¬oO}SøîÔ+AN½ôèÔ+aËüoQö¹û‚dBƒCA„ÔˆŒˆxè(Q‚@HAŒR„.A pAØ8…"A‚8ŽDXDD¨A.•„CƒñAˆ4ˆPˆ€xì(A€ŠîBÊsÂŽ‡2˜,ĉÔ%ÉD:"’-„()zB [‡%(á‚h$ÂJV#´(H+1dc¡‚C‘"†OŒ²HB…²!qH„™(#‚JzD1(L",ˆØ$"”8I2NhÁ(Eèb˜(wB£8ÂW”¿áD6‹/Q‡ˆ˜((ãä¤!F,œ"LÁA„#”ˆ‚@•@$™"Š8„FQ‡G°ˆ) ˆ’D…ÄA…‚hB#äÁIth &T„¢"SB¡$ì¤?uˆ‡€aŒ…¢D¨„"ˆ(+ƒ„(‹„(„(^E(4’Œ*hƒF$¢ª#dAðDHPIB„!‡a„HŒACA˜”‚,†*5D1„€Á‚[˜@ÆH$ˆ,´!E.Ä–`a!K’D()ƒ‚‚dc*THƒ)¼$”!àÂá$"„!xH$Bˆ©BÍ@ˆ!J‚ÈLA)„ÌI!>HÔHЂ#E?[„<„a$F*nAb\„%#ª„„28D‚ò(ƒ¢GM"É…8R„+ƒ’²G‚C!¢,v$‚ADd„ |°Qhˆè„2ˆKC1Ž"‰ÄBà!v „%Hb!B-øA…ÀB•H6ˆ†$ÁH€ $„0‚&2QÈ!F ‹”àD‘PÈA@@H‚!L H8A0H …!HH9ª*A/ Gð„XP¦“$¡ˆ#ˆ¢’)"‚bBH‡B#Ä$,I“TF°"4†J„FHÄBˆ'…L¢D)I!À„IB"K‚0(AˆTÏhHB¥aA"UªÐ$á"2N4DˆD—E„F”+!,†r±hBy#tDb‚#8‹¤­(EjAÄ´‹"¨ƒ4$‡ÄLtHj¨`B„%´HÒ‚*d„‚Ç(ƒòD"‚ƒ1XUG†DÑ„âX48%+(Hi„ $B"A+!MD£#‰GaBD„\‚Lò˜B…(D$±bI!FÄHƒˆ!!@XDƒ@ä¤èBAʤˆˆ‡!XNž$£‚±„!aÂDŠƒÁ‚…Ñ%2Ô(F…¤"1BH!Ó’BC‚a"Ð$s‚ˆÒÂd„D(F„È"‰$J(!t(„T,(G!$(„%Œ$"„X„jH€…ÈóÒ$H$„`B‚!AXD „JÈ&ˆ†ˆ|(E&BhàY’dHŒâd*âA`(L4ˆ(£ô(L¸‘B!è!„ˆ(„( ÿS (#DBˆ`!0B .Hd)(t‹A‰Q$`D¢80(A0$ˆA‘¢"@‰Hˆ`Œ MµC)ÄHЂ‚FÄ€((DN‰bB‰’H/‰6”€&ÂD*ô…A…"9”L²ˆ()tˆ1ˆ‚t$Hª(E‡À¡@‰„ˆðN¡$.$P@!HF:$€¤`D„AE„ˆA\T„dD, LA1&`A„@$8@â"´‰A0A†¨ˆÀH¢+È€ ,9‡(-)A@â&$ê()ù„DMD!!„$JR‚(†eƆŽBpÄÚBL‚D˜ „"ˆŒ²HG(D†6D„H€Ñ„eDŒ¨D…(†(ôüw$ pEA04$A È<ÁAª!„‰ab#%%Jé%ø"$A!,BE„Á"ŠS,@h(…d(&„I„FHÌ@B(D(  HŒ‚=l#Dá„ì„BÔL…äÌ“$‚({HD-HY„´$+)È)ˆ‹$)¢,(Gˆ’D(SÊH‚€DŒX‚˜K$…øDBˆç„oî BAIREC¬OL‚ˆ„I¨ˆ„¡(MCèˆ4tÈÈ/hñƒR'B!v84XCáÈ(O¡”DEU„Jc4&FuABzHr|I‘Tp$ÔH˜BmI-˜b…xB‹B–Lzȇ*žßƒ˜aH€T‚ŠÕ&Áˆ8D$,Òe¼H¸…dC‘T‡•Axrb1N(†é|dX$'h"w(Ofq‚r%X):ÔDˆø$„ܸtJIÁˆÅrÄË&Ec(H6¤EXá€Aˆ\L-$D)˜Â!‰9B"í4¯×ÑÏò9T/¤rNÙ‹ò9X¯¥{üñDY«˜Š£›_Ýó¾ÕOÝ÷‰‚/ÏõlE/”öI̯æýzKïòÏTŸ.ì¤õK?,õëâM¸5ôby¯)ºDxò'ïÿFçŸÅüÞNVìÖÖÉø~Þrñt?¿É÷Ù”¬ô\;h›¿Íê…û~}ïIûT”M"?ó¶ÝÏÕéqïoÕ„øHH‰úvžzOs÷ªdÏKýRÏ!±Ú÷´´—7õ-?Çåφ7•{Húh|ßÁñ=//}ü+¾OJúd¶oiýÿOIý\¬?xý|MK„öÍÛï—|üÿ¤VÏÄ÷AÒŸ¸öÊR¯¦÷G¶ýÏOW|Íü&;¡OcøNvo¤þû_ï×ÄDïÄòɯ·ù„EÏÈòn~_!øÉY‡‰/¦õ®_4ø(ÝßÍñ4?cº$ÿµ5¯Åõ“ϯwVÔˆtZø¨ôïaùü4Ïòn:O¥éá‰õz>Ï#ß-¿¡wiû^3_„Ô«tIû^?Ÿ‡Õoÿ²zŸ§ò´-"?ªüö»ñ*%OŸÿKD–ôhyÒöÉ\ÿ/ý9/÷ÕJ¿-ýQÉ/Xñÿj?NÿVú߯ù²"+¸ÿ…ÿ‚õâîã¿Äv%áV÷2)¿MöóšŸ÷ùÜ3wŒ¿-ùA‹?±ïòãèï!ûqš+/Hú3ÒŸ!ÿ³Xï÷´”/ÅDüLd/ƒõžt/oû$âÏoó–X¯-ý²þvo;#Öáõ?h¿Ôa5¿¤Ô‹ôKÏ·óÛÜ_2SŠ/AYFO"þÊÜ{:û$ÕŸ…ö%eÇ–ÏòùÏzÿî¾SúŸyO=ôÙÊ;ÅŸ¿ñ´MŸM÷DZ¯ä»&ékãhÿh¬_3ýòQRöWh—V.EOø‰h/ü)Ο¸÷–A¿¨ýŸøõºMHöϽ/aû4’/K²¦ûVžß§ûÚ/góHÃÔD´lûØ//ÿ4¦î~+¯­í¥ù¸zïOóop2äRô:$MA£ÁaãÑü„s›$Ž2A¬ôÑBïraˆøsŒˆ/CÄÉ«çMÁ«Åá«E-aËLŽs׈Ž2‚¬³ÄôÁ†øáž/taŒøsˆJø2„ü:ôMÁ«¾Áià87MŽ2CøÁ2ÉòÁÂnzaŒøsŒˆ/C”ȧCI¼„>¬3=×/ô+_/ô+O/Ö¿÷vA¿¸÷äS¿¡ó„ׯ!ó囿¥ò¥—·§z{ø¡wŸ†ø3÷ÿ‡ø3·/ü;¿oüy/þ}±o‘þù3O8÷û:O¸÷º4¼÷ù88óñX?zwqø¡7Ÿ†ü3·¿‡ø3·oü+¿/ü+Ÿ/þ/·oþ««O¼÷»¢O8÷š&_¼ñÛê_8qÓîjó_L®_Äü2¶…ü.¶+ÉïbûÒȯbù’èïbûÖÁߪ…ŒD„R„.DEˆ¤ˆðAˆMAƒ4ˆ€ˆxä(ˆXˆ „2F.„CƒA„ˆ`ÄÈ#á(A„@„dBƒqAÈAC€8Ž€€ìB.6óÒd#HHDÂHEd(’à‚q$ Œˆ/D’)%!41ªL¢‚À$$K¡Fô‚(Ü"DÑ„‚VH%ôA(ŽN$ˆƒEèB¤¤ „KJ‚ƒ¨CTHLD”#U„„–($ô>ü°¢:D!¡ „Q`(2……RC@¢cDH#òB‡´B&dB,Ñ(6Á0,•K$­H$h‰„(P(‚ ˆ&DˆˆŠQAÁD‡%¤Œ€Q]›# !B!…R@ôMHdB”„DFÁˆ»"kADŠ‘BŒ¶IT‚)¬ÅDP„ÔH$á‚Á"E„(i¬!D/¡CˆVA†Ì2A‰Ø‚ä+¡$…d¤-Â/ã„HŒ%CEI¦!†l•!$RIID(>EI8"‰h†)QA¦¤(`¬I1G„pA„è1à˜£ˆŒ'šØB"‘iQˆ B#q*„X'HEhÃB¤BeÈH%AæDQ!MDD$$MF˜!])Ed†ED‘„7Ã6GdŒX‚+A„o…ú{‚AGˆiÆ…ryTHFôAIDƒqhb!&‚ $Š“ÞLbBš(ñ„!DÈ„‰bBÄ’N,nˆ'¡‡fˆ^H%j-H¿$3L!ˆph(‘˜,…ˆðA$a" ’HB€ ¤LR‚ˆ1$,BPˆ, ²=¨€ÒDb¡`B@0I†‚`„*2(†ˆ(A ‚r„ˆ”)EÄ%"””9$¤$F Bˆg† ´I HdˆLá„„ÙƒD„…h$@(@±ßO‚t(]H0$&áHÒJ•RÂ$Mn„«%KŽÃ•4$I²”UMAŒ„uX™„±(µ¡AÄ’´&¡)hFbˆIRX qq¨‰áH<œIƒˆVƒ¢W*‹hAƒ6‰…X„vR¤B…ê&áÂ?õ9 ‡BhŠR!Ú$DˆèR)Á&¥AD^ÄAŒ¸‚=($‚„,B8!(G$0A‘…±x‚˜‡B˜€a&ŒhLŒ2XF,¢H#‘(„!°CñKo "ÅA*&6C”&«A[Hˆ#ÔÂ$„ÎÄtXb„Á$aKa(AÔa$’‚A" É(d‚GŒ/„‘¡BŒrDˆH$!B¸‚D•¬%ñ$H€ô‰IDÊDЂD"´(ÁôƒÂŠÒAA&ÒHA²%L¨¡#¤-A±…Dœ‰TÄÐJ!(š(!XM‰v‚£AEÈA¼ƒšD!6(IôDf" Ax‚B(„xHR‘OŒ(ÄI%–ˆNˆ%,2A@(Dœ¥.LÈ$I!xA!’I4HZBG(J‘‰) -E‚ ÈX@"(‰$H<=wlhBFQ„$$!‰´!Hd!A(‚©T„GÂ@¤!OT„ „/ˆ„‚¸!Édf˜N‚’©TD‰V%JAdAŒª•%LÂQ.‚PdL$ˆ2!8ˆ B(†Bhïk „B”Fˆ$!Bè(j( Þtˆ•,(ƒ#(B€HÀ J0†2‚ˆJ4¨HC!)!–"!H$+ˆ-ØH!ì7ö0B…‰„ˆI¨AAÀ(2‚@$"8B¡ 1Œ„¡A$hD‚HL!ôÁ€”‚-Hˆ:”B‚`„Š!DFH DˆH#±"ßÛCQ(H„„D'Œ"D„ÒX Æ!8BƒÈ’Œ”CH¤˜@ˆ/A$HdAˆP$È ÈA F42ˆäÄHA4,²‚(J2ˆJhˆJ!̈JH>'L$BF‚ˆH‘,Aà„H$ÄHDD`ˆjH!áÀ…’„,„8˜&H”H* 0ˆ&  ‚Šh¢.¢ˆAÄ&`H$$‹h‘ÏÇMˆŠ'B@L("(¬Šˆ!–$&!´(H¢FÈHðaBDª¤(¨‹!"ŠrÚ$8DÂbAIh‚JxDX$nŽYh(J‚YAHŠ„‘M$À„˜@Äš"@@@@ˆ„#A$$(! ˆ$€‚‘Š%XB¨Ba¿½ 4 C$†AAP!‚!!"Áˆ†BD!!(€]AP$$Ì,Z‚%$&a8$I’tAË$˜(‚GJÄḐBpƒÔ‚*¡"‚‡$’&‹("*Q(("QI¨b$L *”¢-ELô3AtñÈІ¤˜‚ˆî"<‘Eù‰Œ¢„†EÈ,9xCÄ䚌¸(:†‹«ŒBØ(áY"t"bHFd‡Â4ˆËÀÊMš„@B¸AQAˆt‚$èA8¡-A/˜ŒKD&ŠÈˆM‚†–J¡#…ä–Ê'A!‚$™ÈÊŠñDˆJ|2çTNQ'BFQH¨ƒä(Ø8 pDKŒ"B(IJá„|±EAô'EZ8ƒT"Ï4¸ÈA³$ˆ¸Ä͘ÌÄ’H$ƒåHèA$yz‚ñ¢H°‚(ò"ÒM"O†ò„I áDÁDJQRÖä4ˆD1+(!©¼ô"Ú4/±õ7Rÿ'ýZR¯µýCb¿gµlü¼+/Ô”’O*»¤ú±uÏ“ýÔ9SöXx†íV¶%øš~Ïnë{Ü×K%î¹”SAò<‚O¹úâm«’KŒO)úã¥ïœñd±Ï=øø~JâÆ6L/æÿ8¦®êq}e±Ë¿”óx¬Ç£Ï)úâ|©¹¥ó‚?ÎÿªÙ_XôU'cÑÄæBôE¥¿;ñÎŽjFól„!øˆK+´OOøœtcÜòã§ñvvÿ%õSso¥ôBvûG_<ìÝÿiKškˆ®´ŸŸë½”ü­õvÅèVø­±/~èÝæýÆâß,üÙOŒùjfß$ôý£žÝŽ»†ù§ªžÔŸšý‚èïºüœâ¯Ç¢b¯†´Äÿú.¾å›ù‡#פþ™¯êúì*ϧîMø(˜iú¦‚ž¥ÿ‡eÿ|â/Áô$©Ñß^ÿƒÎOÉìËû¦¢Ç-Úü”˜¯júȆO½Oò[6¿ñõZ{¥õ[R¿´öZ{Äö/ï&õuªŽ6OB²5õU´Ÿßó(Íž½ûeÝ-nÍoØ·OóÛfŸõþœ;{Ô¿-ñCµ÷cÔÿDÿ®_¥ú¢”m´.ñ5F¿ÇÛRÿœ¬ëgOÂÒHÒÆºnÿò'Ÿíözë/µøXj£ÿjœïLÿ¶ß§ø²”oJùö3Ï/øN\m|OÃôV$ÏÖô„ì/ÊýÇ”¯múünÏ£þF˜§-%þ¸^oŒ4Ì=ôÿaó{Soµõ[R¿%ôKW/Õ¶iõïÑoÇò–´!K2ËUßSgÑî½_ƒtmÕØäÖòaXÿbý}FŸ7ôRY¿¤tòy//Ññ«xÿyö46+;kØï!òÝö¯Úñꆂöd$‡Â®”Š÷æ¶ÏgøxB/õË›—­ïþº|¯Ž»†ýN®Oi³‚»†û'§Ï}õ\oâvHüldLOÚþÍœïlùü¦Ï/ÿ’X¯$qXòøê/Ñýµp2ÄA¯CÒ46ì8×è(“„¬·DöÁ"îra¬„?ǤÂ'C.Á¯CÖ<>ì8×â(ôÁ:K$¬!ôáž#ua¬„7Lj'Cü:„MÁ£>–¬ŽsÓä(“$¬ôÁðáž#qaŒxsŒx2„|:„<èã>è=½ïWô)?ïôi¯öm?ïöm?Ï<ÿ?>O8ÿ$_¼ý],_¸ù]Lúù]lúñM¬?ûý_L?ûùE¿ÿùA¿ûùZaÿñû~AÿñóìÓÿáó„Óïaóå›ÿåó…›ÿåãjy_ìjóM¬/kù_L/kÿe¯çýA¯ïýaÿïÿAïå÷„Óïåó¤ÓïaóÅÛÿ§ûÄZÿåéîw[ìî÷IŒ/ï[üòÞ¯Aôúþ«A¯ï½öþúïÔÄ€!Ä2CdbBˆpAÈA‰¨Aˆ€ˆ8Ž HB‚ (A¦ˆpAÈA‰¨ˆ#á("€R„¦D( ˆpAÈAˆˆ3á((ŠdJÀŒÃ“‹(#¨„£X-B"É A‚A#›ƒš"E%RAÆL# H˜”bÁ2’‹(IXDFL1I1ÎB2HI“ˆK4ÐDšLÙ‚BôA˜F!RDàˆ”Ñ’Ã±H8—ÏÙ ,/„X!Œb„A†$‚t‚¤„C CdˆÉDXCÊ¡H°ŒjÄ SB€2œ0Ä ”$$ÁÉthFLä‚“¤#-8‚“´”!CÈÁ‰A(ÔÉHBÉ2WLX(S…% -âeEˆd¡p^ƒAøCB`Ì$š”J5-haHTàV&H*E(+G*”%$H´YBP„ðˆ4$d„ˆŒ±‚!E^ ‡dbŒ6H$†D@ŒhACd‚HDLшd YˆBA‚$$„h‰F AÁF˜A‡¤„!Rhd’‚D¨°DŽÁƒ"ˆ1(.‰„N€NIÃÌ'JZ„@a¨.Äb%L‚‘Ž-$BuˆTDÁMSP(CxJAªGdLBh!8d47‡(oTD‘‰á$ñD%ƒå…Q¦§!ŠDºDQH+!'I†æA±"‘Je8ÁÁ‡"[X¡¬á„(1BDúñ"—R$Aˆ€ÐH€!‡‚X„ŠH„(H!Aލ0(¡ @ˆ†ˆ (€‚H(ˆ€8@ÈEÓ Kˆ(E„F”(Œ)`„Ž!AF&DÈ@›$DP$Fˆ¹B¤$A$DЉ¡„I‘B„Z„ABç¢8Bq8!O$2„‰¡‚C‚è†1MHyFÂ( B&±V(Ï&!$ñȈL²Ê‰Ò²†áÈáàÑ$H¨†IÑ$8HH‡œ’H†ˆòBžFD†r˜“HŽX,I„5„,ø‚"Ž,8XRáÄ>ŠŒX…A4*”ˆ$€I8AD"b²(”B@‘HôˆB`8/(dR°‰‚ƒ„ÒH(˜DBR„I •²(!„…¤¤HL´ˆ‘‚„’…"1H¯ …hB¤Ì($¨¢HläC&C„‡B‡!0Ũ¸AˆE"’‚Ã(B”BE²˜hDňX!A‚KÒ$,À’Eh‰F$R‚8ƒˆ’dœ2³ÄDNh…!ŒŒÀÂ*!„2DDF(Œ8ÄÁ ‚„P„D‡D0ˆÁ@H„DAŒ ‘L¸H$ (â¡F „Ê„H„H"(E(‡!@œA`„‚4A“X("Aˆ€H„€†O2’D¦E*8„‡$AHAÂ!"M(J&´(B¬AEȈ@ E8HK„†DÅHa¨•*H‚B„”A„ d(:?(DQ!AF"P’0H`d‡´@AC”#…²BRRЊ!@ $!BhˆÒ$¥1ˆŠaA`h!$ áR49r@H…‘4D  „&(T‚v6$ÉA$‡d($@hƒ$‚@ÀIÂH‡(@DbH¢JAX”Hˆ2ˆ„Ïö!B„F$Q‚"0<LÂD(‘`„‚‚”ŠA(†qA(‘D€‚˜†„P‹(€AB@è\?Œà!¨!€$„0a!]HŠ­$H€‚8˜€ÂG„€‰„˜)¨!‰) D (!D 1!A„"˜"ðƒWEh„ŠÀˆb@!ÀAL„ÂAÈŒÁ&À$F(d!&("DŽU°H‚8€dBd„4Ah(&¡A ˆèA•x…Baˆ$„Fd(.˜S@$A!!€!¡H(ˆà$ H0F!¡@‚$( c !œ DD@"@ˆB$ B˜…ÀA"0B D (H‚(#!@ÂA@‚,„Àô#ÏHD*¤AA‹HaAƒ„A(È$n‚CGÆa0"`ÐX’jL´‚¤–ôÁ‚DJ¸µd†ŒèDøBH%ÈA©„IÉ4%A‘I@D¢(Æq!q!x!HX…”-A´"„x!ò$Ï´C!tQh#b!ƒ2HÈCÂTÒ¡S¤!T¤!2&X)¤ˆ@„T¡‚r„R¡H†”Á#)B…*HEÂÀ-C1tÆ…$ƒY$<„‚¢4BB†&'‚kDHCA±…„‰Âa‰Èc¨‚ðAˆH¤D#‚‰˜”’9É‘,á(è((†hÖ6!²$h†;°8-Á‰ˆŒøõµ4'´"Ó/µXòJ‹ó-TÃgõ/Ôô.6GEgawöÏÖó%AÏAå–ÚT’Áïéôt/OôÒGó%T$뽑#_A÷X’OýñrÙçJºó´¶ßùŽMOÕõô×ß÷åMOD„ø^žGäOá÷£aOOý3Ÿ±±’ó´•6|Uß‚õ†´_Fù/…õÍ>¸!ùœ–ÞDÒEø¾_ãÔô´¢÷ÔÄ!Bº‚óÄäÏ6Û-/¤ófFñ1ñFnd™ò='O×öM&wbocô_OÄÖ„ö5G’NLMhŸX{6÷TOÄónFÝŸyTøjvß!ó9OŸý‘Œk’?gû´ôß]ü†ÜouÿÜ÷ÕôELO†ò¨ôoeüÄOŸòk7ß!ù‘Qõz7ß1þhç_ƒúÈmob»4ØõGx?5ÿÙ6g“MÕö̵}†GÍOsjÖ,¸˜ôÔX¯vò¦k»$¿bÛÿZ;_„Õ+uYùx=D·/÷:nWÇocñ&6aò=DßÓå–óDýaßÒä–úÆmýtÿbu}÷|/{Ô¿)uIó\;WÿCÿšúGä+3oCó·VÝFÿÅó}_ßýeÏÂâ‚òv\ïLôÞ–Ÿ$þ¼>õÚÓ%ýü;(ï^ûz²_çø†4oKû2óÏdúÚY¿÷Ôü;!ßÖôdloÄñÎ4ïoúXÂÏ鳯õÚÂ%|œþæÆÓcõ?F¿5ñFŸ$µôY1nŸÆ×_q2v6ô46m6oGô=EÏ—áÖÖÖYvléÞþ|ývßct]ÿF¿¬ýBŸôóv¿Ïÿ1'iO"ñ24oCÿVFßhýv]o÷ÿ}-×DÅÈÜOÍôÎ×Ï1üè~oñ›’Ÿ!ù™~w¯Ê÷Ñ=ŽOcû¦4k™?wü-Ò?Ÿñ2?ß‘öHeׯOÒþ¥}ÿhý<ÂíôÖ¯¨ùÂí÷öÏ´/Cäô:$A«Aaë!aÉã8÷MŽ2IòÃ:K4¬¡î)va¬„7Çzx2ä|:ä<¾ÂaÉæ8wLÈ2A¬ôÁ"þ9"Æ*xsŒø2D.Á¯CÆÁ«Aèë!hË(Žrß„â(³„⬳Dâ¬!æî9bÆjøsŒjø2D*ü:äÈ«èëá#ßñô>UŸóô^AŸóôaßÑö^aßñ÷Ìs½>O:×JóÕ;¿ÄóÅ;Ÿ†ñá׆þñm¨?ÿxøsÏïô;Ïïô«ß¯Öÿÿ^a¿øöŒs¿áò¤Ó¯còÅ›¿åò…Û·§®ß÷‡®߆ü2Þÿ…ø"Þïü+Þïü*Þ¯ÞîûÞá¯èóÌs¿éû„s¯iòÅ;¿íúÄ:¿¯èîqèîñmˆ/çùˆ/ç½¾ü:ÞëÁ¯ã½Zþþëá?ÁI"H(A&Ä-A…Dˆ#á(AD€äBˆðAˆAFL8ˆM#á( I¸A.pAì ˆ#ñ„A€dBÐÁ1›( 4G„˜„jA(bÄ2`"D2EhE™™‰AsBˆCÈB¨‚„*aˆC"ˆô$´"„"ĈL•)ŽN¤N†¨†2hV8$&¢IC²LñaDaЉ±ÄÂ'⤣D¡ˆ@ˆPˆ0DA¤AF QPˆ AÈB0Hˆ`Iˆ"VHAFB0H4ˆ…A’‰ˆ%ÈDƒD(!QÀeˆ!”éƒK„”#P‚!£¸M"„H$‡L$PM$¬È$+†e¥ÀÂ…´JÈ&ØäˆD!„8Wh@  °˜“†‚BµÁ(iå$A(…Ë¡% Ä"Â$0ˆ-LðKø0ŠD©!NA!²@‹!DBpˆ1EH()‰E14b„Lˆ°‚4H!F¨ˆJh„)#! ›‚+B(H‰”(X!Š2I(Ôá5ŒDhœAŒi”‰’„/ca"DŠäQ!‰DHÄ¢Œ‘-eŒø”†ŠÔ(Ø„d˜KHEì!ÆH…aIP‚…QÄŒ‘<‹JA'H+”Š„xI¤Ì2ˆc#„28Á-¢ÈHŒ¢u°"È$NŒC¸Dõ[s0‚E$!(!À„!ƒfHp¤ˆP‚HB8À ,`HH€BA!(%è$„À(@ TA@H(;F)$‚0I€DA„˜!P„Â$%¤@YD@ÙD9B@”ˆL‘ˆ%$‹„‚€’% „ 0(AïØ$_T@ òdcÉFAŠ1†CƒqA’„‡!"‹$L¡ƒÒ(5H"#ùˆBLÁT‹I&%«p"dÌ'X‚G†0T¡A„Ò#2XZh‘lÓŒ‰Ä´)`ÇŠbHFˆˆ1ÌŠ6RÈCø’SóÚƒG‘HˆB¡DIj0†CÁk$…aˆJB¹ £$„H$Q$•ÁH)H¨H)„è’&ˆ°† ÃDhBÀˆND!ŒÈO¯4‹D!„ˆE‚,*dA$È(E¨!†d†)(EAôˆƒ„K¨LèAÂEŒ¤Á؈!$¡ƒÑH@´’"ˆ!ÀIˆÀ˜H„€$ˆHĉ#ƈ‚„PHD‚bÈB"P„0ˆ¨A‰¨HBŠ"KH‰ID MHˆ„0„)Œ$€8˜¨ H’t €‘,"ÀH˜I")ˆDQˆ(€ ˆ”ÂD"bBŒ„B@T,,+)ÆI  JÜË„ ”ŠÐ"ˆH„aH(H„È0HŒ$8L¬"„ž ¸b‚! ,(Š"+n€¡$‰A²$1!G†3a"Ž„Ð¥Bƒ­!’”!|„ƒb!;ˆ$±‚l"B"+8A.H)¡!%ŒB„R((0D=BrBa"Hjˆ¤‚!"ŽH"©„’B†Dñ8B(’Jb¨)d(B’nã3 `À²‰‚ˆL!âˆA˜B"‰d HJ„BqH¢(pˆˆ",$$„J¨Âˆ"‰hI›„Ô‚$@!B3(¢ Á C H,øWÆPHXB ∄H"!¼¨Bˆ,òH$ˆJ’ˆ8ŠÒA"dA‚Š(…B…ÁFMH„Q R!’" J!$Ä+³Š(1>_Âû†6OAügv_DÿÝ}oõþ¦#ßÖöHÉoÞµsþ¿6ßüñoyù›—´ÏóóC(ýïgûôžoBø†„eýÉ‚¿‰õ29_Ñós!ßÒÔÄú§+¼ïiüÜŽÏíþÆX¯)øØÊÇñ+ïLõO~_ç¸2ÑFñ2Ïcô:89ûüM«cOÒÒLúæ|¿‚þþxJÏcöFد-á¡ü|f/|1¦û1wo•ôYR»UŸôñmßGöÿ•m¶oHó4$Okõ~4ÝuÏô~ö?ø)EO”âÚ~mø»Æßeÿ÷o•ñKŸ%Ôyñi¿B÷/Uoìú¤oIø†To%ô‰Ò¯•ór_וŸRrMü¤ýߎóª–Ï}ô—‰õJ’9üÙó*½ÿZÿv&O)ó"4kº/rò]s¿”÷jF׆nDßÄödDÏ”ñj¾Ï­ö~kQ¥ê%ôØžo¿¾/CÄA¯Câ4Naãá¶Lä9Wž2A?­ôÑZ(?ï©!Æ„úó\¨/CÁá¯CëA>>6¬Žsφè(“„¬“„¬òá)razóx²äüº$NÁ£é¾>ìv,á87mŽ2Câ¬7%¬î=Æ„øsLˆ'CȯK‚<èãÁH³Ññû>AŸóóAŸ÷ñaß÷óaŸ÷óÌó¿çó„ó¯CóÅû¿Çó…ûŸ‡ñ¡¿ÿ‡ô¡߆ø³ÿ÷‡?ûû>A¿ûûA¿úùaÿòû^a¿òóÌs¿ãó„Ó¯còÅ›¿¥ö…›¿§èúóH®?߆ø²¿ÿ…ö²ÞÿôúþÿôúÞ¿öþ¾ÿö:>Ï8ÿz>O8ÿ:6_¬ÿ{>O¬÷{îö÷‡îvß–øòö÷—/o¿6ôúþkA¯ï½öþþoöOL€‚‚äB.”R.ÄÆèô(„.¤cª+!Ž((I¢xA¦"`BpaÌA…J"Â+%O( ¤$(CäR®àR(ôaˆ4)H¢Hмò„R(ŠôH(‚J‚2D¦$ä’;2èŠN‚Œ„hˆ¬‚8&ˆ‚8„*˜(‚(G/ŒÖ†ÉA‹Ø"M¨ÀBƒËH‚HÆA|ʉˆâ!B©D!ƒ‰Œ‘KŽqáŒa)•‰øAß• ƒAq(‚„.Ѝ% )˜Ih– c‚Cå(8(J¸¸ö˜D€" á¡‹HH`‚JÈHMHŽƒ˜©"„4L@¢ "ÐB¤,ˆD#ˆŒlD-†#¡ˆ#T‘/„ˆD.JD$L(qJDÂÑ…Æ(T,»8‚H†â!THN(°hA(DLè‚tAÌ!C¢RE!mB¤ˆ/B‘©Eh"CÈ$˜Fd).Dƒ)E¨Äi“HÁ-Dpaˆ(-¯3 A2'$O’Dq(Æ„€Ü MД‚‡Ž$‡D ‰²Êi¡Iˆ“„$ˆ.\(©‘%„„AŒ´âˆ4"Kƒq(~D2¡ƒ’Ž"¨Œt%¾D8A„8P„'H#è„AkJ“qa˜FxB"$4$y†I¸ZøE¡Mˆ…t!\‘ŠòƒÉ£N‡H%A…4h/„Y&ÏI!ò$‚A…äÁ&RDhBMd69Ï2Ì$°‘ˆcØGŠÒDhB)*ñHãyøƒd”Šqf$ãèÔH‚NL‘RÿXB„4AQ‰"„dd  Á6`Áˆ„A H„( 8„€ˆÄ#±)B ˆRARŠQ‚(èk„0.‚ „I¤*`BH…%#ä((¦7ç D€„B„“¤(%1„ ’11ˆ(IÒ’„( ŽJÀƒ¤‡(¦"”!"FHÄHE(ž‰H¤(>IA(à:”´8#"„"#8(kD'˜ø¦eÀɇBFˆqH(R‚—„äBš„„>ÈC„”Á­pˆ7hŒ–ˆtHåh„±¡¤ˆ&$‚dC‹!é7‡†Kª<숶Xh&Bá„i6¾LN$.#êˆQAhƒˆtL˜$ŒÚñ‚ÈMC„ÈJAØ’2?×÷£ì[·_'û¸2ŸÖüE!_ø“oO³õ—qOOù_±±’óôñß³ë£÷s=¯Jº5ë#ñS}?ßïAû1·ß+÷,ä—–‹¤?§ýHb>;¯³¸é…±XõØxÏËûhúãÄG¿æõŸñX¿õwû‰ÏÕý¼oAû6¶O[ÿ}mZÿߛϻÿl–öKIÿû?ßós;Ï1ø1™õs?Oµù}çŸÆÿù8+ogëSÿé)/–÷?òß;ó6%IŸö‘qøá8ñgn‚ôÁI/æò-£_rë׿¹²"ó6¶ÔŸó3|¿wÿù3?ö)eÿ”ô¡ñ¿µ¼áó¸z££Ñ‰åõx8ÏÃþExðÖ®ò|>ÿ•õZ¥ñ|>¯„ôž}ÿé÷}¾oIó¶ñõ-goÁñ¼ßŸÿ>hÏÆÔ(övx«oûxþ¾>ŒôÚÒ±ë«ñÓ|/Ëûoêßçù’4/Kû7òOfúút¯Ë÷ôØïòlDlw–ë=ïùXÿ®noˆôÊäîºòâl¯Oû?²ßæú²4/Kù²O#ûúTÿ÷ô½+cÏÂôH"/—µÊö²ø§»¸÷Ô‹™ZÿµyÏÎÙr÷cæó^¿µõ[Ÿçó~)¿Äýïãû´oCûUÿõö¥–ïÑñ:߇ölhÇ”Vÿýx//ÿ=òϯwÖù‚Ú%ù¹:ïYõû5ÿ›þn¾–/Kó¶±oçþ(÷¿Ïós>ÛAÛfÇÔníÛXï+ÿÖŸ¿óÓ?­ùÒŸ¯õ÷‰*A3H‹A›,/AÖò„Ý(HŽIBìHôA†¥BÄM(F4HŠxTÛC‘ôIŠñh%ÍŠO!äâ(a(âaÚdq.¢DI¸;ô(2,ô*ÈŒH«AȇR²%D¤ ,Ay$Bi!‚KA©A‹!A‘Cñ"˜ƒ³)”X‰’’AƒD$1$Fj”CHØQ1(J‘‚Ô„Rœ(ÍB,"‘(,¨!B,S)\(h„D#¶T‚"‚„#¸"üÂ¥JR(B„ŒaDjh!`A"V)²„ú(Dˆ™(–„F¢”.&ZÃ"’Dx$4l‚'DˆœÔ$A‘ˆ4hH)…8’:hT‰zBEÂÊR(NCè„JÈ›C…d‚H2$CBH#2H,a‚A@ˆ$DP€a\„I D&„ñ$ˆ!œ„ˆ‘¤ŽLA`Ap5ˆb€2,Á$ˆÿ_ 1H@ƒ"H`Fˆ€4HId€”%BA‚L”#&¦”¨IÂ@$LH‚Qˆ(DÌ4@Ñâ¤Tp,q!T¡‰#8"”0’D…QDŒB„“eDÐhd t!„&$3A`Dƒ(8M„ˆ"t„aH2†DáÁšÁa ±„U"!`(`žL$H€Hˆ¨!ˆFƒHˆ((Á"F!h*”ƒbHBHà8„ÄC($N!¤ÊHâ4X$n!J‘‚D.‚.DŒ„H‚‚Ä!8tˆˆ#â¢<· B$`@‘†Q(€DäÈ\è¢ÂD%Å$F IA‰‚A ¢DDHT‡„HÃ(H€ÂÁb4 ‚4‚cB*‚o5JAAÄ€Bh)$J8Ñ8R`‚‚1HLPH€¤!P(„H)ÒB#è$xD±‘hH!Œ‚LBÁ(‚H˜*Ñ’8Ò ÑƒqH)"D!`HT0ŒÀ!!˜% ÂPJbb±hx‚¡‚$IÂ#„X$Š#´„3¤‚A0$ZJH2‚–¨ð\YœÁE.„€E„„€‡(.ˆBB€€qáB C&D”DM!Ha`+$‰†!r"d$ C-!¨fH£D`$2!‰A”B6Ž  @A°HˆH!‚8(ABˆ)$Bˆ@QB‹ˆ…ŒD€„I@A0%0&1D€"$H B@1Š‹„@ˆ…*…&Hˆ|‚d(ˆÄ“UIƒ4&ñ)‰¡$À"ŽE&­’5Ä*•ñ„h%A4R(i‘8•AÑH1a#RAUVtIdb¿‚˜‘,œx(a‘Ž(¨„/¸X'7{‚°D™Aˆ/‚ø¦‚†Â¨!w …Ì\%H HÈ$“4‚Ir%4!7ÂK!&Ôá‘I@Bd"DÈ*‚¨AE˜QH°‚rƒ"4Eˆ8H"%vAe(¢DTT*CˆÔÒˆ¾AÕRH$à*‘T/r1b(Ç(2DV"Q'$-„&´²Ñ²Dˆ LT1 ñ¨I¨AJœM)(І1„J“sDTb#bB&¡AÂIÏ‚‚_È()w„Ø"Z"m‹¤°ˆeˆïxrb!–*=E'(‚O½gó_T÷bC¿µôRK?4÷vg¿·v´ýÂëÏJÑEò4$öÿçÞ|þ”ƒŸ-ÕIòmHþãÚ¿)ò6BM;§æ¯©øÃ?¤ñ~¢_òÙI¯îÜjÓ'r’ò¢ÿuo´²ÜxRû(Íß”òMˆ¿¾ùºÎÏßœóþŸ™ñ[­«Ï—û¹üáͯhóU¢ž‚îï¯ìûÓlŸ¥ý߇‚ÿÄvHøEçüެïÌÿ®žüJÂ/Œýît/4iìÒ×õej¿5ôSb´õcnÿ6ös¥_¡ýk6moJú´çÿöÿFßû$ÿüw%A¯•ôáó÷µ/;þ‚Õ¿²ò_Ë·¹?<õ*n}aßÑüyÞ¯¬Ó"óFŽ/cüËY3ý©O?ñ?M—’)ϼù?N¯«õyÝ>¿õ™Z¿¡ô«Ÿß÷Î/{øÛº+¨m†/{üÛ˯ùÛ™ó»ß÷“ŸÒü]hŸÜõuFïïùŽ~ÏìúŽÈå,ýêîo$þ±rð>…övoo¤õZR¯µöv/¦ÿ,•¿,÷}ŽoHû¤´oo÷wFïtõ(o§>7ÏÔ´HöfK½²Ooù‘ì¯óÞ¯ýÚ/­øšRn½ÆÿÏz÷í/jû"¶o©sýôãÞBõfêç…߯ô(lï¦öNšÏ_ñ©ü¯á÷œY¯¥Ñªô¸Ø>ü^ûÖ*×Å/CëZûըϫüqMƒù¼~·ÏÖôhhÏföEÜÏÊùþlÏéûÎX‹\/…ôÜT/5Ùlºôx~¥õBJ¯%ô{n§÷â=Ï(ýò¤oañ44Ob÷fïïmõ®ïgËbß”ä~ÿΚ/úVA߯÷Ÿ[¯¬ü§£Oý‰}ß¼ÿ~®/cù’6o(ßÞêwùû].&ÿ•òl)ÏÆô¨Ÿÿ¼ûï¨OÇýIZ¿‰õY¿µôKÙßËõY¼O<û?,¾†¶OÿŸ¹¯ÎõhXÏû^)ÒömHŸÖôvïîû¼NÏÅùŽÚ„í%ôzÞO6õîp2Ôt:ÕtÁaãÁaÃøˆr׈Ž2CøÁ:Q¬Qáîytaœ?Ljø2Åü:äMÁ«èë…NaÇŽrÓè(3„Î:SüÅDîqaœ?ÇØAø2ÄÁ¯CÞüAœ>éÖ,å¸W-Ž2A_¬sMúňîra¼H|qŒ|2„ü:$ȃ>Ì7bìûAÏgóAgñiÏgóIOóS¯Oó†SKóÅZ?ÇóŒÚ?×áêqü¨vŸÄø2ö¿ÅèCÿÇÏãÿÁãýSáÏ£ûVåÏó„wïó„wë;_ìóÿ8O,óÿÜî6¿Çôä6ŸÆüv¶¿ÇìGÿ2ÅÏbÿ’AâýaÏ‚ÿVaËrxÿ,8y¿,óպ߆÷Þ²Ÿ†ôâ¶×—®w߆ø2æÿŸåKº6õø¬kQï¸÷ü¬o÷ê‹B<2D&&d2pAÎAŸB˜BL,ˆ8ŽR$„<dbB`„rAØ8Ž‘$¡„[„.†ÀÀ‚pAÈA•"Ñ(ˆ8ŽSIDT‚(CdJBŽv²˜†1($›H™Ã‚-Eƒah’,b¡*ÁM)âÁ„€á¨’à¨0(204ð4ˆDÈ4”$H8)Ô‰7‚ˆSz"‘ƒR$"+.‘$O4´DB‰"Ø‘b…,:p¨‚G_Æ `’¤H(H·HˆdŠ’"kD#LQ„€ˆ1!ŠH(AA@4ˆL¡HQ€a¤„) x%1Œ’‚Žd#Q‰è’„!¥ä¬;†,Hh$CD‚äA©Å†$DGt‚Iò$H0„R‚JX$ÎH% "CœAi2„L"\HŽ(kDdRƒÌR,ô!N„q0Q-ˆ/)Ar’B±L‹…çÃ2Dø†]H1–üANˆa†e1DÝňML†Dä”´ˆVFrD´(qˆÑHÇ8X‰Ä¨EÂ$‰H$¡!AGƒåôBˆjd…4HŒ›Nea„ŒCˆ‚ˆO¾N€ÂBdE¨B@d"A&€D!$#D‚#d"!抂AAˆlD€ÂÂ…'L$DÈ„#1á 8#qˆ€˜DˆÄŠ$$ÌûáXD$RÀA›$C )"Áˆ‹‘3B"Å„L¢Q p$4IC ‚ŒN„¢‘#†"bB„L&ˆÂJ 2I*¹B(‰8’ ("EÈH(¿(¨1#¤1Xfñ!8†xa‚"a.Éœ´ƒSEÈAIòˆXA!2‚j8”²Z2K?ŒAc"+N,<”/ˆÙ„„’%”ÃxHa%©ñA$#ÔCLô_ˆ/(ò2$Ñ„çH6‰É¸Aá‚dA‹B!V"¨$ì7Ë21á‘‚eˆÄD(ŠNœ¢¤DLd”&d'Á$ðA`"1ÁDL)Y$Nƒ‰âhH¤$D&Bd¢”H…’d'h‰¤’!À"‹Iò(D&($^ˆ)&H"ˆ…ò§]€1)HH\’(9Á2€2B)”æ& †ŒaD2ŒØHšQF.Y#H2$‚jh"‹%Gˆ",áH”È…‘PƒöAÉ"(KL!”(F„b„X…¥8HÈ!È!‹™!fRA‹C'AK¡HA…$KÁ„ HHTo"ÑDAáD’+$@IâxRE¢DÐÒA(üDð"¢pB”aLÒ$B–&#"ˆˆ&úR:A%˜Q„<DH(‘¢,„„‚H&‚D†¢ &„d"I(D€ÃDJDD%ˆ™$"k"A'…ˆ€”!ÜFD"A†˜!…ä"?‚U1HâbAe‚W4IÁ"L"A" ‰²H„$™F¡LÖA¢3„_C"¤¤QLB$R‚0IŠÒRD,¡(eâ#A"a„\’b(Œ”5¢!!Y"-$ŸÇdJ2N„BŒˆ´š‚„¼„„òBA\†hA$‚Cb(X†¢(ÃihBI(DqA‚È1H5R HiAR‚ˆ$¤H&LIÜBE±AÁAˆC‚„ŠìÔ;Y`ÅHQˆ!H#"I„øHEBFD1HÁB$!C!‰Cˆ1‚A8‚&4af¤BÀ‰ÒÂBÑZ2$DàBèt!¢B€H*ðÊ|`Ô$BL$ QˆƒA4'†¼¢H¤HA‚F H$4.…&„X! HHAI2BÂ*t"B„iJd’ˆ’B”$(‚q„A‚$ƒa$.üÖB„#‚4$!‘DIa(à(Áf@„¨%‰ˆÔA„‚„C\ND"À„!QQÈ$Œ$(D‚„B3t(ƒD,„D‚hßJ‚Â4€’FÄ“ƒrB€‚ŠR"Ã’‡8II¡@¢HàR‚Ô±‚°1F…!A% H†$Ò”„‘1È1$(V BC(è"!€R1‚0PH€2@Á‚)`(‚‚,R„Aˆ !‚ïˆ"%ˆ(@@ bL()ˆ€H@H ”#šBwÔŠ$±ÑÂ2¤P(*ñ!I8ÉJ8a!DÑXÒ˜œâA’AÁYòAŠ¡(IóÄ1C¨nB…fgED2ÐQ$ÈR2„I¢$%rB Ftr1!•tArb´H”Š.D‰T‚¬ÁBˆÏ^ŒòHE1AFÖÈ…ˆ%äAèˆÈA+!3’EiDQŠI±„q‚²Á!˜D‚:hBì!HHEÁBÆrIÄÀ1#4„#ð!„#4A«#XXØ¡Z™BI‘D(%³”Bh(#x¢f,†ä7’ð,H!!%˜Bk(žRMA*‘FAòD‚M„JÐòHˆ'…7A+a)„AÃ*¬!Y)"°BS†DAT.„àÄXŽ¢œý¡KȲ–!A(òE‡"ÐHi6LØi"L„H€_JJñ|%_ò÷L¿tBÙ¸õ*d“²ûòa¯Ï"‘5k«n|Ÿ.ù„ªÿ|òûH­ò$h¯ªóú$6ú$²OCô‘/4Ø¢ý*gCy×óc·m2er’òbÇ?4óF2_|úiŒ%Iüƒ–?wøò¶o(ÿS=‹¯­ù™Ø¯{ßüS~|!û•m‚ïýÕ¸_ûŒÈ¿íqiýK(ÉüÒ‘/Gõr{O(ö|Ô-Н¥õ˜X¯g¿>T%üg?ßÒVœ£ñ]ŸÂö4a÷›o_÷iº†ò$¨/kö©»[œßœþ—•¿ÓrIý#aßúûù-?÷úsó_"ö„A15ù*oö”#?ôC’/(ó‡*okÕ3ûÇ"öµ—·×‡–dO:yò÷S?$ó¦v1ô‹›ÿù¹þoÚ5û÷Ÿ­¹ó"/Zýš±ûœëÿªy:}iýi_zñ3Õ/eýÒ(iÿ^Ê-R¯­ñ8þkµåEó>toGô_?ß4õJ¿…ô[#òÿ,roªsÿìiû$¶O£¿¿üžŸnûâìÿƒôIdn$n¦Ï"ÿ2d¾æK¿]Ñ/)ôÓʯ=ø!ô}w9s÷þ¢¶m2o(÷—B/oýa/æúHÇVFøf'o(ÿ·W?võÒ3}˯©ýØÙ¯=éNö•rOûý/CÓTº—ÿœÔŸßýèŒïÿÿHŸÖthôñ|ÏÿzÖæþ\xëÈ/ýXد%õò~£ÁNoÃö-ÿµÕ‘õI¿ÓñswŸäÿ¥³Ïò––/*ó¤3ïÚþ—×ÿéFø\IÏÂòm-Þ÷eûOêÿ¶fzêýAÒ/9ô:ž?Wí&ÿ†³,ò¶–/cû†²o{ö¶—/Vévþ^iÏÂvaån÷Còojü³×-²5ôË[¿™ý¹ž/_ü¡uoû>oK©#O8ûµùÏ[ùùޝîûZißÒrmìvóßyïïý~į(í-ôHÚ¥ý¸Þ/Oµ,'Ct:ÄA£ÁaãÁaÃè87MŽ2AκAΚ‚îF‰øsŒø2„ü:„MÁ¯ÈáïÈaÁŽsÓä(ä¼3„΂îÆxsŒx2„ü:$MÁ«Žáãá¬xÓ¤8A¬üÁ$î!ƈ7ÇŒx2”ÂC’Ä£>-Ôñ-ÖôzV‘ôzV?ö^~öÞ~O8õþ¾_8õ¾¶_¼õ¾O,ýîö÷ÇîvßÄøröÍøröQüxôo1üyÖ/þ|þþüôO8÷þ´O8÷¾´_¼÷÷¼O,÷÷œîv÷Çîv_Æørößègÿ·ÅfÿAîýaÏîÿ–aÏNö„óÏÏò…óïCòÇúßÇòÄò×Çîö×Ç/n÷mŒ/_ûwŒîôïcü¨þëÁʽþ¬üoþ¬X(EhB@pAÈA‹‚ˆˆ«!Ž((A&!!„-A!€8Ž@$À#EèZ‚#qAÈA‰(‘P)ˆ£á(€R„.!|7-($„DñŠA(ƒ&’jáBQC†Ä…‰V!,,QI)åH‚‚(I2E.„`D&hˆ´$xA$²ŒÈ˜_$&M"x†"RA.AàDqB4!bL(ƒ­$ß< Kˆ;…$’I&‘HR›*! ©$Á!HF K"IÁ[…$<$´‚ALjKBˆAb.¤@ÄH&…(†aF†5!„ähˆ#åRD/B¤’,B¥$‚D•BKB&$(‚‡R=&SEÖXH€øKF2¤„'dŠAĆè%Ñ(Xf¤ÄXMŒ+”øˆJ–’€qD¤¨XEZ‚BEE´HdDL¼(A8ȨI´"YLÀ$-$Œ™/†Q„"ODbˆ‡a‚`JB„©É„!ÏAH$Ä$0Ib!¡‡A&I„7HlC(JJÔK”f,…ˆ”O(ÁAˆ%´‚DX„kÆB‚ñLƒHB–¸"œ)šDŒA:3Äb`–DGŒˆ8„#¨!´1¾HH‘Eh$$‹a#3ˆ…‚SB,òTŠŽ…u2A‰rDä,ÄŒ7Œ'2E‘È#Ñ(|’òU†Æ„ž$*q%8F”„O¢DKA?ÙD¨MGŒ8H-¬ˆäavŽ$"oÁóB‘FïªA膔,C´hÄ„GB„/„Ù¢H¼HòÓúpŠT$@,B4l$(€†Œ„`DIÀr€" Ž(iÔH„À(Er(€Dˆ"8‰"Á$x(˜„(Š €Òa;Ž)â!'BpFˆJšAçjPHF˜Ht‚D‚p" ˆà)„ÔlRD„¸‚1(x‚8,HA'ˆVœ(%˜AÍHx(D¸ÂÈ …è‰MH€øÎo$ŒÔ†ty!HBhA%DüDoÒ!¨Í(O„âˆ6BŒèAX¨.GAƒ†Ñ(„5B.DH´´!Œ”‚I¤"AÈ'F\’[a=h†¸! ¶Ñ‚䪵ÈÄŠ_Cc³òŠ4Ž,'HЋ"”BNˆˆg‹‚n{“Bb‹AEŠAD$Bh!Cr$5H5(1LCBˆXR„…¡!/,qDˆ’ISBD“ÔHíB¸A®B¢,BèiĈ$QI¢%2<Œ2D TƒR+XˆHŒäAh&ïü BPZ1ÍX$GL+¡Lñ,HŽdFø„(A˜L„‰I8h DƒL$VHIÒˆLR…^¡A…)¨HˆcL))1„ˆDi’8‚ÁÒ­(„BŠ(Aˆ¤²Ó "@@!H(A)Á„D„ƒE„2I@I…DDd„@˜$I‰A$@ˆ‹€ð‡šH…H‚"EAH‰„ؤ‚@F˜"AÀˆDD„E(DàL"ƒAD (!ÄÝóq%„Œ&ÈI„!@)82…M‚Áp¬”!AÄL„ÜxAB$𘈣AG„p$„\(DÈM¡…„Iài‘ˆ+˜¢&„ïÃDAˆB& %HJˆ”(%x(Ž…Œ’„$¨BˆÁ„DHMA…Bˆ”d„ð„…hHÉèÂR‘ƒÈÁELqHŠÁ„ŽÌhAD@bBX“@˜(IŒ‚@qA((DÐ"x(QHDDˆR„BW”„@0*Ð$xH$TD@$„„pB”(”„@ÄÁC,8ŒL:„ðRá(C”,Á$@„„„‚)Ò„88R‚„(ÁI„DqAH|I„ˆc¡#1ˆA@˜$AÍ$A$A„G„LdA2$ˆ'9… !I‚2À## ‰‚²$tIDˆ-†/)8„Á(.$AÁäøAA÷„ˆ-†/)8(„A„M((.$APHèTñAA—„ ˆ-‚/(9ˆÐDÒD$ñݼ„H•$…ÌDdDL$X˜@(D…hB†F„LDTˆAD…H%„ÁDAR„G„,@ˆ€eÃ@@ˆ¡„AHHAPEDH(A„Ä€Dp$@ˆ ð|=€1LFH2H„Dˆ$䂘DL˜HÄHU¨XDƒhDŽ€ÌˆÑˆ„Hä‚I‚Ä$‰Ä$‰‘%…˜$‚ƒƒ$xZĘC¤A&$a-D©Ä(HŒ²„ÕÒ$a„CˆRà4<,HÀH„DB-MЈÈLˆC2ÈIA,¨„MII!ˆƒ$!A4ŒLÑH€"x…(²”(p$ƒ4-bCÔˆ„LH¸’dA6IAhbÇ$"(IäÈ÷h€ õU„@˜"„(@HD€,HH rd @DaD@‚/ˆRÈ H„ DHÀ‚$>´$‰@HMIFA@HH"D@P!D@@a AD„Pˆ@Dà"@H„LDA@HA@(TDD D@€À¿3@@@À„AA„„TG„„0A†@TH€E…hRˆ'ø„$$"@ @#8‚D@(@h„Œ@D.Є #ÁV³B "Ä „„AD…HPB@ AAEx`(ˆõ@0HÁ„€DAAAD„@D„„  @6M¤%Ȉ¡€‰ÄÆTHШ؂HD@$BAEHHÈHQ†DD„,8"AA!EäAMt !QˆÐˆDÑ) #(!ñ'9H@H$…((‚„„‰tDÌE„%„†BPD(E•D…Ôhˆ„„„…L1ŒQDD˜Aˆ ¡#Äš3@"H„…AÕ ED (x"T„ÄAAAIâB ðHIÕTDDA‡('ˆÄ„L”A*bEÈIHFÈ`(NºðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀAcŽA€&pAˆ#Ž(A`B„ÀA€ˆ#Ž(A`B„€ˆìIPDDdAAEDD&ÀA†&ÀAà(&ÀAŽ®ÃDA@@A„A„ O÷IÑHÀ†@&dBÔHà(á(`B&AÀAA„à(á(&D”Hà¨DAMLxTDD`B(ÀAŽˆ#&„8A Žˆ!`B(Ah„à(ñçAAD/aá(DD(GB"ðAIA€ø’Ž€r$$”Ô ø’†(GB&””Hˆ/‰;50AÀI8EDA`B(ÀAŽˆ#&„8A à(&„ÀAFލ@#á( ’$A"ÀApAÈA†‚8Ž"(A"ÀApAÈA†¢#a("(A&„H`(ˆ/Q3YÈAð„`hA&"ÈAà(†&"ÈAŽ`(`B@€ˆßCDDAADD,4¾@TDEDTDAETD ðµ4EDDTDDDA ÀVDPD@E '‰D@EDA ÀèADA@ïÆü<<A@ðüŸEDDTDDDA ÀVDA@ Ï’ü<<@EDAPDp’@DAPD@ŒPDEDTDPDADðÄòÀÏÃDAEDDTDD ox DDAADD,4¾@EDTDPDA ð¡«EDDTDDDA ÀVDDAADD c @DAPD@ŒDAADDð]ïÀÏÃDA€Ïÿ PDDDAAEDDl5!@Dð,)ÀÏÃDAEDDTDD ox DDAADD,4¾@EDA ðŠÀÏÃDA€Ïÿ DDAADD,4¾@EDTDPDA ð¡«EDDTDDDA ÀVDDAADD c @DAPD@ŒPDETDEDTDAEð÷QÀÏÃDA€Ïÿ DDAADD,4¾@TDEDTDAETD ðµ4EDDTDDDA ÀVDPD@E '‰D@EDA ÀèEDEDAÞmÀÏÃDAEDDTDD ox DDAADD,4¾ADEEDTD Ð[PDDDAAEDDl5!ADDDDð8¶D@EDA ÀèÿÌü<<A@ðüŸEDDTDDDA ÀVDA@ Ï’ü<<@TDDDAAEDð†—ADDDD ÀBã DAPD@ÿ¡ü<<A@ðüŸADDDD ÀBã DAETDDETDE_KPDDDAAEDDl5!@EDAPDp’@DAPD@ŒDDðnLÀÏÃDA€Ïÿ PDDDAAEDDl5!@Dð,)EDDTDDDA ÀVDPD@E '‰D@EDA ÀèEDEDAÞmÀÏÃDAEDDTDD ox DDAADD,4¾ADEEDTD Ð[PDDDAAEDDl5!ADDDDð8¶D@EDA ÀèÿÌü<<A@ðüŸEDDTDDDA ÀVDA@ Ï’ü<<@EDAPDp’DDAADD,4¾PDEDTDPDADðÄòÀÏÃDAEDDTDD ox DDAADD,4¾@EDTDPDA ð¡«EDDTDDDA ÀVDDAADD c @DAPD@ŒPDDAAEDDðãÎÀÏÃDA€Ïÿ DDAADD,4¾@TDEDTDAETD ðµ4EDDTDDDA ÀVDPD@E '‰D@EDA ÀèAEDAPD@¯7 ü<<@TDDDAAEDð†—ADDDD ÀBã DTDPDADE½EDDTDDDA ÀVDDAADD c @DAPD@ŒðÏ<@±B„T!„%€š¢)HTb@*ò(!THHD‘Á/(d(:‚$$#r"B’"EK" FH*”Aa/”ì(Š)1ˆ¨L(«Šªò$$”AEAa„ °Â$ /ñ-˜AB‰ÃA'„!„%‚ˆZ")(²$B$‚äD&UTÎBTBŒ-‚$‚+ˆ+‚Š8„!(€b¡bE!m4¬E¤x‚"H2"€BÄDÄQG„A°H¤H‚!Zd,)8‚O]X5øHAP")h($ Š"C’$&4Eh‡bC4AFHAqH!Œˆ(ˆ‚#"ª"(0EM!OBREyH¡DFY8Šá((é!q’"Ø"Y"-€"BÐDÔôIA”B`,‚‚!Ž÷Ã$…„‚ˆ¦‚Eh@J$@SJ8‚$$Šh"!!@¤""DH€ŽA 4„ h*,Š(€DA8AB B#!.ÏBj$$@"bj*AÁ%HAÁBŒˆ$xˆÒ X" ‚$°$¦B"Lä„H*Ę,!A¢ˆ$DD•AHˆ ,ˆ!-ÅÓ‰¤D$ ($"`‚BàR D2€!#‚ˆÐ$Š BQA D…HIBBØÄ‚ƒÈˆˆA#ˆ#LBAÄEÅHHà$$!˜?‘4A„%)ˆ€D€"bB@4AŒ°‚$ Â"D¤&@˜ABD!ȃ$P" II‚ ”DF )$ˆÈÉóI#ˆ!ˆ#Â$(GBDhDBQAH)Qˆˆ Š*€B0$&¤DØL¡„B$-‚‚&P$(( B‘ Á,¨ðÃí$0B#„D8B+‰BÄ„$0‚L’C &1HF¤„I‚#ŠÑ„"!A„KEI‚‚‚C¢(–X€‘$Rm("ˆI˜I´˜¤‚j”<@˜E(´bH(R„mcs)¤B!°¸„Ad`(`(Q&"$"t(´,‚„‚4ˆI‚LAB.`Æ0$B*¨A.„ âA„Ò¤$˜$`IN(KàNa„&„ðHˆHpˆ’Lþ® „@.AÀ!€(%!D$ÆA(‚€H#Dä*‚ ˆH"A(ˆ"HBŽƒBH@"DŠ"0a!¢$„A H!‚@ÄmÃJCÃcðBAp!yBhˆ#z‚Â"D)z‚d¼…!VH‚Ä,Œ˜#'<ÄH“˜‹+„-ˆ(‹‚D†BÒ$BA³ˆÑzBóDh&qIÑš¢ùÆ#”ƒ‹!Oö‚#è"A¤„ómˆ%\EÄÊ´„%øˆT#-h…FôÝ›($H`”!LD)ˆ‚/L‰2A $®G‚†Ò!$8!΂'F€,¢A‚*hBH,O(a‚ ÈÂ&„(!¦()!CTBEaDŠDã$ˆ$0ÂHOø(P!bŠ&øA‚`HŒ"pC!Èc@2ˆ –¤¢L4*È’"À!,h$h† d%8Jˆ ‚T‡£(@Ä$†„JHDð¡}<‚,š!(ˆ0"ˆ`B°$‡„ ²A2A…‚4ŠB‚$ ¢$0L„BÄÐ,9ˆ„i4O("`‚$B•„‚h,‡AÀŠD2™`#„DH!*ÈAa0HT.F&"ˆ‚d"ˆ,ID€4"ÈBÈ2à(l"$H&8!#–FDÈE ÈB"¨B!@¦„g¢4B‘JÈ,(Bb‚H|¨JJÈ"…!Ä@d‚¨!@‚‘"C!$XhŒÂAˆÀ!HEB˜‚ R!ƒdBL1‚HQP‚NFH„‚„(ÁA“Š4E"D"D@Œ!A!ÂCœHÁŒÔ$#BòX°Dˆ$˜„APD EŒIÂJˆ*C‘„D‚CdŠA $ˆJq$h‰LX‚„Lô³$ƒT„!!ô$J!c”,!KDÈ"A$… (G4…¨„B „Ì"'B$LQJ*˜BÄCOA 2,A`„ UÈ„APB'DH!J„0„0hJ""ĵc„$ !ëdÃC"À$@š!† AhA¥$1„ˆ"‰¡D%¨!IˆuTøaD‚„DPA#bD‰8‚J8ˆ!‰¨C¨ˆ„ÀBŠ:†ˆ)ø†(os ,1ADŒIÁ‚MH‚ˆd°<²È( ˆM¡ˆ„$Œ(Q!Ž‚*4!D‚àb)d4(‰ábˆ$&Bá!D”"L"*±AôˆK$Œx!b$ŠˆAB‚i"ø3@¡B‚€„ „ "‡€@€ !@1‚ˆ‚"ˆƒ’‚0‚ð‡D€$B‚!@B@„B€@‚ ‚$°DH1!,ˆ ‚ €ŠÀ21%8(e«D#qHáah8ŽL«D, L‘&(4Ãd"ªèÈ¡©È‡a¨I¨!J˜„‚ÔDäJØBF\AŒ¤;ª‰¨8¡Â!ƒhI›$]š$á¢t!$©BB(#©H)$4‚h)ò¬&$JÄX„öDB¤C¢*+Iƒ¦,©|NÁIØ4ö„‚MÈ„D‚ÈÊ.†Êô¨” ²ƒDøHƒR $â’‰4Kˆ"„r‘BæÁ(²’L¥%¸Š„KO,ñˆˆÍ‚$‹šŠÈ\óQ!!ñH$²ˆ‚|ˆBtA‚ÑᳬNDB*H(x)xÑB1J‹(4‡´„Aa+aB2!b'…D+!T!­AÐl‚Ïa$.‚‡&‚ ZI¨C¸AhA"¯H !A¨òHþ\ð%¾–>6o+ûv½uõÛÌì÷aÏömlâö}“ßÿßU¿·ó“KN¿õ{ëôñ1ß.û7„'a¾6O"÷t©¿c÷kÛüGaßôMHÜü};*¿žô~:ï¬Ý¨õšH¯§ùn_ÿz'C­A¯CR£ñBaãÑÖ,ôˆsפ,s„òÁ:G¨¬adîy|ä7Ç)ø2„­Å¯CӼѾÙ6Œ8_Ž2CøÁ:CüAÆøá„ÆÄ?Ǩ/CÈůCÔ¼ÌáëA–\8—Ž2CøA:GŒ¬aHîytaŒøsŒz2äA~:´4èãñ9óÛÓó>A¿Só^A¿Sñiÿó^e¿sóŒsŸcóÄócóÅ;ç÷…;çñ©¿Çø¡wÆø3µ7Ï¿Sû:E¿VûA¿^ùcÿû^mß2ò„wÿ'ú„÷ë!_üñW¨ßúñW,_úuSü¥?Äü3î7ÍÿòùM¯vûA¯rùšiï2úžEï2óŒWí2Ozõ.2_íñg:_éñcNûwcü¨wŸÆø2ç·Å/cþ’L¯g¾ôzÎ+qï§¾ö…¶IhCdB€ÈpAÌAÀ„ „8Ž’B „(„äJ …(qAøAƒ( (È+!Žb˜€äB¢pÁÈAƒ¢<ŽÒ‰Bˆ„¨EèBHÈO#‚=‚’A!‹A’!d™‘E‚JBAƒh“"AŽM#S„‚;‚ƒ‘‡$Y"™!6Â1AFaZ-H\‚Ô¤ˆ"d!‰Ô!„*1.N±")¸"¡AJR@ &(Eʈˆ$‚HpUñÞ%$…"ô"A ±HN"c$±È„)%Áˆ("FA46¡Š(C˜bƒˆa#(p‚bAŽaIT„ ôˆD*/H‰Eh#IÁH"¨$DF Ôˆ’„„ IÂBL>¯,DHÒ„„T‚@„B!„ÐV -HPD$@ò…$`Œp‚g„-”(†äHHÌȨafDO¨´áÈ„X`„ –„ƒ$‘¤„IáB(B˜DL"Š‚Ì!ø5–àÈ6A(e$Iq(4B¨A&%ÒŒDDÈD -ž#„£•¦‚+(Aà‚³‚BOˆdR`F!ŽA$80˜˜€²„´¬DC*ƒHˆäaÈLHN¨€ÈDà((„ˆÑQNjÇAH„)T(dD¢ÂDp"DÑ\É|L„x$!H²R„F øFNŒ-¦ŠbBšÔH9ÊŒ¨,oDö(DòÄVŠKB#á˜Aˆé„rd,æ†xˆ¤¡‰ˆö4œDdHŽ(‰!¸¤Á‚‚J¸ˆÁÞ.%BFˆ1BdA" $H†²„tB„VHR‚@" „<(XHŠˆA a‚ABˆHDHFAŽFƒÈ2"ŒA”ð!P„›$`"BƒŠ²‚‘b€TLb$°a(G“$Ãaà ‚²Y°ARÀL*0!¨"›$"°"†™#A8pR2(I"ðü^$°La"Fh$,Á*ò!‚×hha*xTÓŒx±xT1HM(Hï˜Dx‚¤!‚18Ì,XB(H†1‚B<,dˆ(DÇ‚ˆÉ$NÇFb”‚JX„ôHDLøAKŒ«Bð(D„8IÎ(š¨”‰¨A†êñ:w,J’)e&BDF¼‚’H B@B!ÆJ,˜KB€,!„)´4¬X0À(R"„Lj„IB)‰(!èAíÛ€”2…±BØq)‚qØ)¢(M¢-8Ì4†™vÌHD,xa”ˆN3ˆ%U›…C2Ò&±8&8"A2¢Á!°-rH¤µd#d‘,„8AŽ.„ð(QCr’$âåfÂ)’HY¢„ND+"ƒä8B˜Bˆ/ö8-€T"H@haÈ”4F ” ¢ÄLPD•"ñD’B.–!ŠÔØ„dAˆD Ä*ÁK$B„MHLò(AXK‚)`Èæ1hE¤!‚(!IkB)$D1DŠ‚ N#‘H@Dˆ„0R‚,áD2H@‚¬”!$‚!– ‘hIÒHÀ„FHH*c"  œK"€‚X$ Ä—“ÂD4‹TH-@Üx€¤!B‚b”‹$‚OCä2l! B„]Á`(C–H`CT2HGÄEŽ"„±H(T.A™"4¸"6b"*¤(-E(€°4$Ê‚‚‰ˆ?ù!aF$„´ˆ1‚DˆDÁD'L‚!  ˆ‚ˆ"D˜„Š€ª!H„$ €HAHIˆ†‚èD˜(PÁA@(Aì=é!)"!4HHà„´$ˆ‚±&"äŠQÈJà¤jHˆ,Ȉh’D/„1„Š””Š!hD&,dH‚H†IŽ¡aIÄ)0‚2„€áC)($b$ „ø#¦@"!…ÈJ¤HQ¨!0ŽHN„Šä$²Tˆ,Tˆf!h‰é$“„BƒBA2D„¦L‚2„#"4„0ƒ„ƒ"AÆ"„"††„¬H(‰IÄ(‚@œ"€ÁœƒÀD AÒ‰$‹xˆ&E!DB…BtHŒäÁ(h—!%„Ȉ(@¨‚BD”J(áF8( ˆ&X!ˆA((!B`BJH!DaJ@HF¢nó$KTÍHH"¤D`H(h!„%$˜IB(´‚†Áœ…@$C‚œA@’D‰–„‚œL(^„ ˆbrA‹‚(€’I$„‚¸$„ Áî#Š ‚€@ „ 8ˆˆ!€B‰" ‚‚ˆA„@„$ˆ€‚B=Û$@ŒB„@¨,bJ0$2 ƒ‚(H H@°I¤ ‚CE(tD:ÀHσ´™2„#¨A*è¡TÏ‚ñjÄ„ÄrBÄH‹LJäÉÈdˆ$ñB-¨ä“<-(˜Œ*ÄI#"$&BgD¤Bޏ„$M(I˜Œ±Ø Jâ”dB„fdJe„r,!•ƒ™4oÆ NƒÂH„”+BDvˆ(BaKàD¢HA6DB yŒ¡+ˆ§HŠøBœ‡JˆŽ„ ‚‚¤AQ…I„¢¤M ˆB2J¨¢"6DFÈÁŠ˜¤‰¸¸ X°2®ˆNñ£\B=D/„¢D…ä¥$JŒ••A!+ÏŠxˆ‘B@ÁHlâA¸Bˆ‰v‚8°ˆ˜ÁË$-K$Kï˜ùÌ!/DáJXˆ&dQÊ(ã)˜ˆHHD†²,ˆƒ#¤)މk)"'ŒBŽ„\h"jèBØHXHà$!õ#„p1÷Msï'ôk­B={¯dö]aÏþË·‹8o¤û–"?üúéQ¼óVŠ?ýôAíÔ„òãÛŸQú³Ïÿ¼ûoƒ?¹Øüɹ¿~zñÁ?~úŽ2mK‰?þôq}óK…?»ñ!Åa_ø£—?sü’z_óv¯¡ùÚ¿´øþ¾Í¨ËX?ò—¼o(ù’’?ÿõ›{¹wFò»Òôai_ü»/çü2>o,v6öJB/¡¡Õ¯kß|3ƒ-k¿4õmnç´7%ï5qkö6I߇ôøÏ;’O*ø¦‚/sù«ù_4üO*ï¿ý{-E—…ÏrÿÓÍ·ö‹ÿòò׋¿½ô‘™Ÿúøß!ß•úy׿¨Ù"’§¾—¿œÿ…«{(O}ü;MÒ!_<ý³G?cý‚9ß(ûÖš¯-užû«¾¯òÌȾǿ…á)û–²o{ùÛs¹û—¢ï4ý3E?öÍÓ?nñ‚š/¡ÿ^2ï!õZoän»ÞóT.$Sw9ÿ2ÿ4ñRB?1rò)5OHõ7»W/cÓfù'Sß‘ò3_¯fù§§w“EN,?røE±wñÓo¿;öG—Ÿô3CÖóE5¼ó÷Ž/cÓDóÏ3×?wåBÿ3ç÷Vô!åzþG/gñiõï©÷Vš/­ñK˯áõh,ÏFÒ·òmŒ/jú2=ó_¿÷õ*îóÿ_!ŸÖôimóûNbïoõ*&ï¤W&¯$ÔˆxJêÃ2Á|òs'—!ï±Õ#uZû;/Õ÷!ØÏ¼û'„Oaó"o8óMßûc/zú[AßRòMLró‡ÙßrrÓ÷{{¹ýË™•uõ»ÕŸ–ÿsÿ¡ú¶+2M³ÿÛòuß?BåzôO)_Öö%EzýÃ3nòþŸ¬ýR¯-yZûëZ¯ÃôH8O=ÿ8Ojø²6o1û·7ÿý³Î/úõS)×V_Òôa_?­ò®Æ§f­J/¤ñZ£õ¨F/Âñ(p2ÄA¯CÒ´Ô2ì8óD(,³„ò:IòÁðážÆ„7Çp2ÄA¯CÒ<-áãÁaÁŽsÇ„,3„¬ôA‚î ƈ7Lj/CÈÁ¯CÒ¼Èáë–ŽsÃä(3„¬3„¬!øážpaŒøsŒJø2Dü:dÈ£¡áëÜ>˜-–oQö9oô9/ö6oô4O:õ_¼O8õ4_¼õ_ËD&ÓdBàÒ„ƒòHI"hZäAvahƒMH—"•¸ˆ‘D(i” $†(Ä,Ω´ƒ#áH²ˆ´’AG‰Œ¢õøñB(%„øhˆN†¥–ÈBHƒ’H‚$J„¤Ñ‹Á°‚“‚#ˆ‘‚?A¡$4°A4B„¶„肨šIˆ„¬DHhhþ‚d‘Dˆ I8†˜F"²+ƒÐ(øŒˆŠÄDAF™bˆ*%Q(‚‚C!8ˆ)‚²‚!¸„hš±âAX"@âAhE‹”BN‚0ÄšAÀ„‡„”DtˆBÊ„¡½ˆˆ‰8!MH…ñhH*ñH‰…ˆ‰c°ˆd–…(±sȹ’A2€¬˜™øÄˆK#ØRêh%i'„tDò’G$t‚¡(#!Á.H#¨Ký™ð?v/ñ÷^WFøZ­Jïw÷ó_È´yõ4oí{„äÿ—þÿéçùô_ÆømlNoçño†ÿaÿ„ío{á„´‘ùHèOSûLåÿHô1ØÏiúÖŒOIófÿeû¶–ïyó7ݤOFòh¡ïæ·#ó-œÏýþ./„µé­ÿ¼µoÏ÷¿<ßîþ¬¦Ooó6”Îûßêúy[¯óçÝíß×òl¤_þü›¹ÏGùnÏÃõˆ¯Ñ¨óñÙ¼oaó¥´Os÷¿~iýßÏïf÷^L_Fö?iêöý¸?ÃòŸÞÏßúѯ…ñ•Óßû>}ïÇû?ýßïû44_Có–ÁŸïú­y•ù"õ÷ÑßÖö/lOr÷ß™¿ËóÖÏÊÿžØ¯ˆû\JË¿¶ú<}osñ33?!W”/±uJóÿ7ó$¥x_Íù66OBªqoóù÷Ÿ‹ûµôoÕr%½iò·vgtoñ-meWœ^Ñ…ñuT_Òòì'zwÄoBñ„$gfoñ÷wVÿäþgÇïUöe$â_kòhcoßÔßòÿæEûÚS/‘ótOóólïïjòg,obr4Ö¢òî}·³4ÿ·ÍÿÑöm-ÏBö%Ÿµþ®DoÄþî,Ï¡üŠÚ¯ˆþî4nÓB|ý~[/%s[Ñ9qûcRÿ÷ñ’¥Ïˆóy´Okñ–¤M1õó¾Ö‡ý¹•ßÕr,ô-H~õ¯ïr6ýÌÖØõ؉Hýu…ÍïͲ¿gz´ö4¤Ozÿ>¿ï}ñ—Žÿjsý,m_‚òéµß²çvÿÎïÃÿÇÙ/ù;þÿÿó5gÏîûµ´ocò¤¶O8ø(íï§Ó¹ä^{MýmmßÂòd'߸üéîmTïëúNZŒüšÈ¯æúöc?õ'Cô:$…16M!CÈsW„Ž2CøA2CüÁ‚n ˆ7Lj'Cü:d´Ø¾Ô–L¶ŒôˆsÃÌ2IñÁ*K¤!øáž#qa 7Æø2„ȧCÈ«èãá‘2ã7o—ô-7/ô)/ö-3oö)%O<÷9$O8÷:$_¼óqì_8ósHzóuHŸzóeÈ?s{wø!·oô)·oô)•/ö-µo‘ö)'O¸÷;&O9×JòÅ›?Äò7…zûGHzóEÈ?súWX¿rúQ¿òúA¿úùaÿòûVI¿rò„S¿bò„S¯búÕ¿æú…¿¤äzóOH®7ß„ü2§ÿô"ækA¯æ¾–õjÎ+qïæ¾–ôjø,ˆdb,HƒqAÌA‡„#aL‚I8Ž„M‚„(A&DpAÌA4#A†‘„/â(‚H(A.àB.ða4ˆ0( M«!O(Ih(EhBàR<'Ž(D„H‘fÑ(¡hˆCZR*ÌHÉQ&¨|“H‚™‚!˜)¨†%¨(-‹P„|AÀJ]Bé8† G–"¡(!!G‚3Ld"ÂX$X%ˆÌ)Xn+h n‰#%‚áH"hdÉ(-(–1DŽˆˆ„8œX„ˆ b)LȘMA$…T,t$HhàW²ˆ‚`$$ B¨L##‰h%‡(¼5¤°DG¥#‚(‚Hd¨DHP„&D-8 8‚L8BŽBdBÀD’È…„„VHpH¤ ¨0!IhCˆCB$‚H$dˆ(A ÈB 8„ ‚ÿ˜ ‹,%ŒŒ1B„:"”„ C¢Yd‚b1$!¡ L‚B!HŠ¢ˆ rDH"%ˆeHf"DH($‚fˆ” a‚M@HT”F4`$B‡(IÔA>áDŒòF6à$”)’:".„‰ˆâbˆØ$ÂEL&BÄ%ÒHÂ(«L!HaHI)$2ÂKJNÄACÂdŽâ+LˆHáA"çB¸H*³¨A°T8H†(EÁJFxØd$$F*ô©o$ƒBB( ˆTˆ@D$€ ,$€"@@ˆMR@À„€"cAIA ˆ€ ÈD$ˆF*yB&ˆBL‚’“HÀ)‡"J¤’-IHDŠÀ$ €ê±I ÈA!J¢%Š ")FOY h$B”ä"2N.ˆ$¡†àBh«‚v„â:µbDI蕈Y",$©ANNˆCr‚ÔB8"ˆ=$Ø,4>H€ÚÿŸœOkû²²o;ó·_}ÿ›ß¿yuSùmeßRö¡÷‡óÜ–¯wòkû¹üË“¿½ùÛú/[ôé¬Ï¼ü?.ohñ‚–o3ò'§ÿvõ³Î/ò÷C)ßVÔÕôA¿šÿý¦¯jÿú¢mZ§¤¯(ÙêØÂó¾Jp2Ôô:$ÍA£Ñ6–,8ׄâ(ôAzEøA"î)ral‚7Ç„'Cü:MA£ÁáëôˆsÏ„â(ôA:IòAðažpaŒxóŒx2ÄA§CMA£ÁáãÁaÉã8·Lá(‘$¤ôÁæ)qa 7Çx2¤Á§CH¡>¬7-–oQöyoô9/‘ö]6oô4O¸ý4O8õ4_¾õUn\ $É(FF‚s„2$D&‚ĈB&˜$h$[„„Ô"(T†&8B( Èð„(B‡DД„2ˆ#$‚AI‘ˆB‚ŠX$$ˆð„„CÁA!5”F8BB­ ÂQ°$$bA†’ŠBK„-„Fˆ™"ˆ#ˆôõ˜°Ah)A" UHD¡ˆ<Ô˜ ‰‰ã ˆà„(D¨¤L$DÀECE1ˆ`‚$"$IJ!‰™L!F„$A¨HŒ1˜¤‚BÀš1L"‘(€!1"€"h„@(8ˆ X "€Œ‘R"# A AD B ƒô—&$‚ŒbA‚0˜@"BA"Œ8* ˜H"”&2„Œ$`AJ€H$  !>yÓƒÖ˜Q2‹ƒT¤PŒ‰òËBˆAC“‰ÍˆD‰”¢DLqHÞÑíR˜‰ˆÂˆ‹8‡¸Es1!S²Ø¨…pHÔH‘§DD±¨aÈ)¤‚KI4O¨E’A,BJAD/„´„ZR‹‚#¸˜ê^N‘QJ$BE«²ˆäH¨‚À$J„QÍH‡…xDh„ˆƒ,˜ˆ'ÁJ((ˆ‰Ä„+‘ˆLálÅÑÈA*4„:t„òÆb!ø11ˆ9"D¤A´PÍAKAÉ8$ËP$¤’(ÉcTÂ-$$NIÒ&¡TKX/†¤86‘²‚+\r{ˆŒ£D;dJ¸Á¨-…æHå8Ôl.KMAI6(¢0dAFèQF›(/„Bj„ÚBÁA!ñX)±”!c9Ç(¢FºÑ±ô!‰â4NLɈ‡-„…¯B($µfñ„I$?¢Ô.÷fW‹a¿¥ôZK¯ü·<þ×ò¿ø´$ôÖºK(/ü²}}Çú̱//öi¬†òlῦøÛ¾?#õFŠï}Ѫø“ÒN‰¯u»<»ûYuO*ñ¸o"øRwß‹þ7BÏó³:Âö!hÏ–ú©º?B÷³xO.òv…/±›å½óz­ïƒº?þ1}Ï+‘¤k£~wß«õýoWq‹ÛÕöqiOFþù‹oÅr²øÔfGJ«Ý/ˆè%ÿ24ëG£ÙcÖ¹ôv#ï‘õH½Z¯öö^O¢ø+λ¾¾¢{š>»ãŸ$üΉOc÷c,ŸÂò8aÏnÿZ?oÿ»«oºû^‹¯,}ø¨¿o•ù|Ø?çù¹(/!ñ4¢-—?‡ÿ©:ï˜ñüö¯Cö)¬¯’òìî¯Cþ»|»ó<1Ï•¸Âõ•Óól¹ï†ÿ#öŸ¯c!_‚û"µŸ¯Öññ•ï]ÔSô%­?Böì÷=ÔoÊâéµ|²ŽµZó”ÚOûœÔÆJÓrs:÷2Ï”ñ=¿¡ãVSvÿ&òUœ/aó”o#ÕTò3ŸIò#¦o—ò!mŸBò«Goµóò7/vö·rç4/5ùIA=bVòÄÇß+ûgœ/Aó¦†o-ûd­?võ|?sÿn!Öö!äR÷ì£/~úzeÿªõ̃/<øci¿ª÷è/Ï~ú¥ªÿÆÉ&Ojúæ¢oVøMNÏøôí÷WŸÔôLÌÕÏhþêÖïAúnhG)¯$úÊJMSÖÒü6¿¤ñI5ñRC¯ãw[õ9ï©¿Öò$–+‹M3ï™ýüî?Lýagò,,_Böá¶ÿµñ67ïýøKÒ¿±üÓ'•îæ=Í—¾O¨ÿ~ªOaé+ò†“oòü~?Éõ¹ö—òdlßBö!ö_¿òü­ïVûëx?9ôÉ™/ùú|¿ûöù+O/ÿ.¨oaù²"O;û,¡ïuý§OÓ÷e-×T]LOôý•ÏNþN”ï¢÷ÒH«¯Êöb¿ß‚ 'Cô2$ÍA#ÁaãÁ!AŽsW„Ž2IÒ¡“$¬f)q!ŒxsŒx2ÄÁ§CÍÁ#Ááë!üˆsׄŽ2A,ôÁ(o‰rą7ÇŒz2Äá§CO<>6,ŽsÃæ(2$¬3$¬î8ƈ7Lj/B„ü*$H£‰¾„:Ì=oQö9oôy/ö7oô]5O:õ_4O:õ4_¼ýW<_8ñWzWü¹w_Äø³§wÅrÿeŸ~ýAŸ~ýißtÿIß|ö¤Óÿnò„ÓïJòÅÛÏòÍÓÄøáwwÅ~÷EŒ¿þWœ?~þÕ¿þþÁ¿þüáÿþþÁÿþö„Óÿîò„ÓïkòÅÛÿ®òÅÛ÷îîÿ·Çî?ŸÄø²¿¿Åü¢®¯Aüª®«e¯ê¸Zö.ªëaÞ€8A.#!8X„AĈ¨È+!Ž„,$À"A®„„Ñ*!Á(ˆ/â(Á(€€2&d" „´((€Â#á( €dB&=®8¸A™L„ÉŒDâaÈ1D'd1G‚EÖ´ˆñ$HY†/‰ÔAÄ‚èÌrƒ¤!%d$#ˆt!TID¯„K¡d¨štƒ%äÖB¨A!H¡(H,6l4‘¬æH2NÈ“ß (…h@H)È"#†D‚1,€vˆH‰JBˆ¸4‚BC6ˆ(’ 2"‚Œ%Hˆ”T‚ J‰  ’ A‚RŽXŠÈZ.KQ@S(B€V"˜"0‚†H(G(D8HÀ%H‹$ˆ¨„(D‚2€Š‚€B$ȸCƒ!A¤Aˆ6Œ(–D$¨,Ap„„ <ˆN_ç†(Ä!)BU(¢(”HÂ(bŽD£$#1HIÈBˆ"I¡N†„I²D1HÄðDˆHD²Nh„#$#–¨i„L„Ò8„ŒÄ„À&…q(h$‹(?ä7ƒBX¡„+A@ñRL(‚Š‚¨Ä¤(éi‚•ÁHKAÊa$¬…èDäH2B*hK:‘¢ÀŒ*M(H„ƒ²DqAŠ6‡$DZhF-Œ˜!–DdABK–¿H„H‡H‚CAHˆ1‚ÖÊ”JìÂBH@ $(`"B‚…HLŠA€dDI(¤ˆ„`(`"`J ˆ A(@Ä‚„Hà’2ÍÀ$(H:I@È(IyBH$D¤$€Â$€8#0¤‰¨“£A1*’˜!DN!‚˜1L¤€M‘CJ2´L™" $ƒ"‚"AˆjOßIÒ$µ%×´ñBJщñ$®„MŒ"ŠÆ„;A‹„ñ‘$Gàãh4Dƒ8AÂN˜J±IÑRtq†Ž¢¤‚ð‚ÄBŽ$\O(Œ6ÉØ‚$ä$8Y.QFñ¢D„Ȉð†A*XÉ4Ü‚hDÏ,±‚ò˜O„b$F†òHÑ)´R‰‘Bà(H8$`$ÔH”A@{D@Š#1HOÄ*AK($ðB¤€4$‚MH‰ÈDH‹HÈ aIè„IòH„@ÄL* +hÀHA#Hðy½0!+KA%‘m#ñ‚$™!¨!ˆ(ÆÑRaŒ.&%D:QK„!›Â°A‡",aBˆ"ŠAâ´*b„RФ¢‡4<8bB›$bDƒ¢0‚„'*ÑÁˆe`D®.Bˆ>JˆBBÀˆ/Ò;á0Bd™ÄD)H˜‚(€T‘B„E1HFè"¨Bœ(—$œ "ƒ”E˜LCƒ¨ÆA˜D‚AL(áèL$Aˆa#äáFà3<Œ!‡$‚#„I⢠€âH(Ér$"‚fl”0„$€’BшxBB‡"C'ˆF„ "aˆ@"˜"Œ`‚ˆA'J€Hè‚2>CQ± DD(ÔŒX(Ž"G"Ń„TEhD‰â$¨(”N‚2a-e„K„ˆq¢DäÂF¨AI C$èBx¨QADEBERDŒX‚L"AŽ'Œž&&T(‚£4ˆ/$î €"„!, !&’#Á(H„" <ñH‚p!pa‰B’HH ÈHBˆ "HN"( $€.oóc!FAÒHĪ(¨BEb‚A$ ŒD8ˆüA$8 8B„„J B5ÈL‚D‰l„œ ŽD ‚B,!TAFJ(ØŒZ‚(A-(Ð[ D8!$„„*1!@È‚Š4$È”‰(¨VD3H¨…¢¨J)b!I $ÌÄ%ÁA–eJ J†Š1B€&¤& ‚h,$žî“ŠÈ)‰th„‰R’LÁ†ƒX(Ƙ‰¦8Ax¸jÈHE邘Œ$HX"Œ"hˆ !$’‰ ‚ARL1D"ñ@c¨D$‚ ˆ”&)!HA BȂϦ(DB „‘D@ˆ$&‘ˆ‘(hÀ!¨‘Ž‚B$$#‚CÁH AèD’& „‘!M‚ˆ!ˆe؈²F!‚ a)$ ˆBì9ØDÀ(Bˆ! ’"@„Œ‚#¢ >  € þú@ "„ˆH!B€ "&D„@’AÈBDÀŒ=+I„„rJ!‘(¨N"†,„Ê&qH(21ˆh„OýŒ‰)ÔâÇ‚-?¯Á+š„£9Î(„jšµ™Ò„81J»BVB-A/ÁÑ£ÄI‚H†Hæ(a‰,¾ƒŒ!eANA(kõˆ¸Hˆ(.D'ˆ+´„x(ê„ÈHMHQ0T">Hxˆ˜È)bX†šH´(,"thˆNˆ‚',BsÊØ4„¤H$„”"HÍ…¨á(˜(A95€2BN+!(ˆâ‚#HÄB…d$,¦ÄVƒ’A#S…qÂ1¬$Dè(8B˜G‚‡„B[‚ò.Á„@Aq‚¤!‹ ÉD€!Ù(5AF¸L˜™%Å…Mˆ&옂#æ%¶A iH…"))Ú‚áAŒ©AÈßMò?loÃtDÍè…÷$-OõwEþ%æïIú„$OaøácÿHöÜ´Ï}ñ?_Bôd$ÇTÿaø©ÒßÃÿõÏÿñ˜¿!­èïv»ûÔ_ÆòŒ$m¦M¤vö%̯¬øÄ=ÿâò-d_Æòd­_ëý[8Ÿ‹÷¬nïVØ’4ÛžboÖú.íÿCÜåö¬&Ogû6´—ó½vOÖù:U?ÿóm)——Ÿ”úý§oGræä¨ó¾|¯ˆ¸Hè©ÛNßÒ8†=^ÝÏRòLH¯!vK{*ÕÌöNTÿÓñמOLúÅoü‚^ßÉú…­ïìñ|DUÔÕòloŽü›Þÿáû–½Ïµí¡ýŸ‹®oµÿÜsýÝoAó4”Osÿ¶äÕú‹…Ïçó~lßÂò,%Ïnþ^ˆ;>ÿÿòlmIùÚx8áÖö,¬ïÆûG…ßîó4$_Bú&ãêóuwß‘ûÖqýMɽIŸúßG}†ôÄBÃöŒX§o,ü¨ÌKƒ§„ï÷ñDÿÃöI¯´T²ÿÇõgmïWóV>_âñ$6oBÿkÏwñ}^ÿJö}½ïÔòmLßBõm¿¯óþ—÷ÿ—tO¹õR“NIcô(aO~ú„®ÿæy4ô¤¤o{ýÌ-?&ÔMÿç¯ïWòemßBþ%žã/Ÿû*i¿/óÕ‹¯½xJyÏþÍ/Ï~ù–îÿGû66Ojú¨ëïSÿ5~Ï9÷w¿ÑtIÝÝÿI!Ojÿ¦ö/ƒü^>©µŠÔ‚ôÚ†O†(Îï×ö^Ý[´ñYŸåôm_ÏõÖä÷$gCoiò”2¯Øòîÿçý=Ì_ÔrlýmLßÊþß+÷ùvUÏIýÓŸ=ñÚIŸhý'ÉŸüòĶÿÅú$–oIò´¶eýì£?ÄôµöWòd$߯ö%ö_¸ô¨ó¯“úïx?9õˆÙ¯ý‹Lÿøô¬oOiùm¬obû´6O+ûz½owûÿ~uß“òmiÕýmëhOM¼6ÿJï­ôHZ+Ù¯…ùFfÏ•'ÃI¯ÃÒ˜tøiç”–LŽsÛŽ2IøÁ:ÍŸ¬Ñˆùiž%xixû܈ø:Á¯CÓ4š-áëì8÷MŽ2IñÁ2A¬Éˆî1ƈ7Çx2ÄÍ«Cœ|øáãá’ì¸7LŽ2A¬“¬øáž£sa¼(xs¬„gCÈïC‚4šèãÁÈÃ×sþ6I¿÷öQ¿÷ôaÿ÷òq¿÷ó”{¿bó„ó¯bóÕû¿æóÅs¿¦ñá÷÷†~÷mˆ¿~øc÷oôë÷oôéÕ/‘ömõo‘öégO8ÿë.O8ÿŠ$_¼ýÃ,ß<ýCˆ~Gøéw_„øûç…øë·/ü«¯/ý«/þ¯¯oü«?O<ý»>O8ýº6_¼ùûn_8ùën®—ÿÆä{ñMÌ/{ùWˆ/k¿6üúþka¯ï½ö^þoö¡[(A&D@ÄNAÀ„AˆI8O(!!IˆlB!ÈpAìÔHˆA8Iø(O(À((EhB„&$A$qaì4(àB£á8‘(I‚AˆäB<H#¢d#‰$‘BI1ˆ¹$˜$ÁˆI"ØDÆ(B"Š´„t C ˆ‰<‚)±HÁ˜$¦„‹h(€F,¤A@T£)ž‚Ï[(0`„$BDˆ"HHAŠ! áB „@€,„"€B„€D "A ÈBP„93ƒ(((ˆˆ@QßêJq{üA‡B,qAÈsEÈóë/RèB8îîÓöˆ”(MÁ£Ó|{üÁ‡BŽ„ŽsEè8¿ø"U.„#qá.ñá>MahÁA‰Ò<:MÁ·Ç,q(ä(qAè8W„Žóë/RèB8îîÓô¬”(MÁ¯AÂÁ§Ç·BŽFè(W„ŽÑ³Ñ¡sDøaÑ/xsLñ2N"Gò„~¶øD‰/Sb„&ôAºIøanˆo”/”ˆ7Ç./qè¤rÔ(ó„~¶úD‰'SFhB¤›„¦µ(|‘…/”ˆ7‡OøV™)rÖˆò„Þö„/”ú!FhB¬CôÁzɼ’„+A‰xrŒøk4 ˆˆˆ ‚­ãCF`¤„€d!„ƒrAx(R=h°$`,dH0¨,˜%A€’Eˆ°a#tAHAˆD ‚)h@H Ç¿ð$XD*AôIN"#AÒJsŒ!CâC2*dŽ(O(á$sA¸D’E`AŽSƒz$ÑšÍR‹!ZúJˆ+;"X,w¿Žë½üŸñß9:ô+mßúÛïùâò/;ø>/ýÙÛ?9ñã¿4óÿíwþSŠ-†?Nû4s¿IñÔó¿ýû—g÷VA½%_|wŸÿÓÖkõ‡ãï¨øŠZo-ýò&k(_ù=S—µõóEY½ŸµôS?–ók›?1öqª>2+?1ò±ÃŸ1÷o¹_Öÿ)aßRôl8ô¼*÷ŽÒ—µÕúA[¿1õY/ïûEißRôŸgßÎz2ò4´?r³´ÿ?cßœúwß+aßÒöm-~Ôjöò´óÊrùË‹·ô¿Ó·ö}í¿ÿwoò6OKó3{ÏÈþÿ÷¿¿Õö)M_ÒÞÿõgooïÅõúåúZ/%ýFO£5t<ýA¿ÕñE?´u[ñ;{Ÿ²÷!qŸ8yÓô6¤/)É?—ö›A¿õñáíßRö-aŸÆâ–öŸÒhõA·Õ_¼ùÁÛ¿õù:o×òamß3»#âcû¦´O3òw|swkýaBÖtIùI×ÿ¡ü¦rosü;J/عü‹S¿±ÿ·‡¿Ö÷Í[ÿ-ù²¦/JZ4·ÆO¿ñ+Û?wûi_”rmùi«¿¿óCÖ#wHþŽš¯¡ýÒÂ/$û¦?â'CA¯CòA£ñaëA–|8÷L<Ž2IñA:M¬Ãî[‚Æ&xSìƒx2ôEçCüÁç!aÁ:÷L(®2A¤R„¬á‚ñáž6xa¬‚7ÇŒx2ÄA¯CÖüH‘¾â֌㸗<Ž2M4¤óL$Ÿ¬!òaž‡ƒ—Æ‹‚·×OCx6äCô:d<¾æA8É-ί÷{Fïô{F¯ö_"ïô2Ï8Ýkó„S­2_¾ýCºO¾õC>îÿwÄî_ÄøòÏw…oçüA¿oüAŸfýaßdÿ>AßFöŒÓÿFò„Sí$_¾ýW,O¾}wìþ}gì~õeŒ/|WìfûVeêøAâøaÏèúVaÍïô9<ï1ôy¯1ö}>ï1ö9<ïx÷{½ïô<¾¯ô茯1öl®ïQö(,Ï8ÿi,O8ÝXòÄÚŸÄò§Z—†ê{iø¡6Ÿ†ø³´·…ZûAÒû’IÚùaÏ^û–kÒóÄó¯ƒó„v«3_¬û{(O8{ø¤7÷–®7Ÿ†ø:÷·‡>ö+CÏÏÿBç½öüúo¶| ŸˆÒ$qBˆsEèbAÈ'lh…ôA„T(#Ñ(¨£é81HQŠqBÈ2G„.„%ÈÆFˆxDxAÜÔi‘D$ðI2ˆ¯Eâ(!„A(ØÊ‚dJEèJ|hB–/4h!*¦¬ø$މ‚‰Ò$Á(ŠäbAø¡´sá²ähdP‚²H$b(ˆ!S4ªCdap!D<ÓXļHJ™h)™IC²”BˆO!Â#ÈA…DQ),1H@ÔFJ1˜$‡‚ˆ "B‚(H*ˆ4"†!ƒPH#dB ( ."H.ЈÌ:R‚EB(.2 Á„(0H(A‰‚1($B¨xFø!ë3K‰òDC+QÊ„Œ4!ˆ"Fˆ1Â"J&T‚0d x‚‰(i„!`*‚DŠÂ…¤,‰B°’O(a„1(C!/˜$¢HC¢.„LІøvµ$.U¯z"-V4"‹hDiAbÁrD3KI‹§Ë’IØaX&씈È"x"u(!lHŠb…’[%¯ˆ$bF*A ðŒšø:‰B.(Žb~$8‚"ˆÉHK¡@ Y‰:É„B4þHƒ2-ƒ”B%©xHD*É!MHM8Â*d‚d*!A†DŠcÈ*1‰@¡H„X®q‚"B"MD08pCIƒ¸…ºŒ‘"M…bˆàBˆ!x$ 8B(‰JR„=¯€vZ!B‰a$>D4ÊÂ(ˆC(ÂBCÄ•B…¡$ˆqƒ‘̈ !3™¨c¨&2„‡FB¨€Jh‚ÈÆ"B#ˆÊ’!(ˆh@‘D‚Èà‚ Œ¤ˆH‹SJ"bHB†.Ô€¢4P¤CB”(A¥“XIU(Ð8ÈAa‚@„2($&B™›DËJ„ÁRÈm,z,”’Ð$ÁB…Qh(@ŒL¤‹HExp(òm d!… B*Ȇ!€˜¨!YÀ„AF’$EAHAB± DA,C*ˆ 1L*”„!€¢†"Ü3ý0‰ÂH$HB""K!B@È&ŒÂ("…4Š)b‚73D!EÌI’ 4ˆ"Ix¨d¥Š4LS$„!tt!$ø)IhH>¡`ˆ$OAb†M$âAò(’‹H‡!Â/S D"FBB!(AЦ(D(ADÀADH‘Š8 ‚†ÄA0 B`,8“D,A""€‚€D¤!ü1vOÒDAB2DD…˜‚CÂOJoAI€èBrA’Aa‰¡‘(„A"AÒDr¡@¨,( •X"h€„¦ŽÂˆ‚‘""%Z&B$CVH‹D $øˆD*3B„ÄqDZ‚OyjÂ’"LH´$Â/BA( BB#’cˆMCƒ!‚ŠG¢$ÇÄ@(ˆFh1„Ji’ÈŽƒ$¡(P…­DŽ8)±!ˆ‚È4!X0HR,áBØâ6Ú%„@„aBŠabÄ(!"B,D™‰ˆ„a"B¢ àHQ&bp!vhBB&4"ˆ„ƒ‰µ$±(ÈdŒ´R‚ÀDÍ",‘"Eh(¨AD¤g„*Tˆ˜HHÄ!dPBŒ…LhAP„ÄäIqÈ7–‚'´f቉  !¡œ"X!Hð$lH‹*C4)D$A‹$(aI†´&‚4´"OAd(E1$Št$¨!h(!Ž"Nd3/Q(%S,"A,‚ØBøŠ‚D"AŒÑƒñ"$@!ˆ¡IBèH"@©A Œp„‘X"Œ‚M‚!R‰" LE%hBÒ„ Æ"2‚ð¡#EB2!—‚Œ1‚!°”¨‚",c(+"€I!A€„&™ƒa2L˜ˆŠE"",pAP"D„)BH9—´dBLz2QŒ‹&ò¢ÕèC‚ø"ˆ §¡e'‰ø/‚‘ˆ-S/2xèñf*8$„CxèñºŽ-'8+%°D‚ŠòH(Œ¶‚¡Q1È#é‚ôl´a*-G6k%‡lN¡Ïd:H††²„ö¤‚j’HÌKA¯ˆ¶Lñ¸DJøé—$NÅv3J˜!©ÓOÑıŒ&úD!O˜ò¨$K1.((&äár"T?R†aÊò((«A‡RGB:¹2:4"ƒe„ЈR|F‘!朘žˆŽ¶òâ*Ž&*1ˆ„)ñ¨&+!ÂôHeF˜M‚IÑHs²Šô¯DdB29ê,óDÁ+#-¡mBoê“’/Bñ’MÐHØ!‚ø:؉ÜV܈Ô$‘Ã/:¡ƒhƒL$áSq"4!ÏÇs%ým4pdÜB豤LÄŸÒVAƒò”8‡AI«&/ÁãÒ±&aA#AÌD)óO*³Â¢ТX"/?ï3ò{[/¤ô(?'övï«û5µoZû£4G[Õ÷4¬?ªúìnßV(ò´=OÛê×ûm¨ÍG©ñ[/¥ú:;¿¯öec_¿2òµ4Oógû'ó±{ºþ§3Ÿ†ú+Mþ37¶ûù¸ŸûîDó‘{¿²þ«qRæ–ò)hŸÖþêÈö4|ÏNüJÚ‡‰(/ÌÞŠ*É2_ãó7|o%õZ9—±¿ò÷voçûº=ŸËú¶¢oGÓõ{4÷:û¸öÏÇöd!Ÿ’ò–Û;ßóu¯?Öö‡?¡ûB‘Ÿ¶õò2?Ò÷{}¿§êCòô4®w¿§ê6ö¡qÿsû,Öö=eŸòó?)?oûÿ»¯ÏÖرñV?Ï÷4³ãøòEË£ƒ¾´O{ÿûoWý;}ŸÛú;a_Rþ:,ŸÞÿ}>ÏéÿB6ïî÷Úùëölì§ÇðAb?–öbB´Ô3Q1^ugý¦?ûõºž¶®†Îa·Búª•_þzhò))¢ïú‘qÿ÷³_µÙ(õÃá;î"òKå?¿÷é®O)ú&6úò©Ûüiª/Óþ3iß–öa)ß;õ#ñ/»ÿêkïîsÝÙ«ôÛÚ¯…øI¯Êô™«ŸBº"ªúï®ø-Û¿”þë)ßõû;m߆òi¨ßžõZLï$íÌøDäËÄ/(ádòäj¯ú=X\Ú¶ò-g$tJzÙ‹õ}ïñ¤/ŸËû¶¶oIú–ÒÞóªú­ô/×ôM%_‚ò¨!/‚ú=þ«÷{´?…ùÙÓ¿‰ôzºŸ‚þ{s_÷û(oKÓbº¦ëžö‹Q—ûgÏRö)mßVòauÿ³ö¹ÿï™þh¼Ï5øK[¯õX™Ÿ$úØjï{ñ/¸O#ëJú´–Ýö§oŸžúi=ÿ“ö%lLŸÒöÿºÏâ´ÒÝìýVÚ΂-¯ËöÎOŸ3Dqræ”t>ä‘4içQVLºÿ„6eôÁzçbŒÃòÁ>øi(¨¿Çó*†!r|+Ô<ãç‘­aÅöÉsO(3$îÓ„³Á±!ñá'—ƈ7Ç.„·S-ÁïÃòɧéç-éåø‘{ëœO(ôÑ:͈Ÿ­Á„þQˆ—ƈ?Ïô’oKå‚üúTI<šŒ~žØR1h|òVq—Òo1tiýcßÒò6GŸÎò„SÁò¤¯QòÄ¿Æò…“·„zýM(_zsÉø;·¿…èbÿÁŸFÿÁŸfüáÛäoüÉ.O:õÉ"o*õ¨&_¿õÁ(o,uÁøèWׄnW_„úrÕ÷¥¯Nüa¿ÎüCÿÆý’g¿ŽÿMŸÆö†Û¿…ò¤Ò­$_¾ýy,O<ýY(þ×—„OróIè/{ý_(®”kEÎùHÏNørÏèúVHO&B3A0A(Q&tCÈ$à*óAn-AƒX˜EÁ2¼â8¹(ƒ9ƒæbx„œÁA‡J tÒxšø„"—‚„(EhB„ˆ%hH!´ÊA……FÑ(£ù„ƒÂ¡pB„äBNÈÕ3ÍŒH2$…"Á*Ì!IhA!ª²*á‚”†‡AÀ(‚!MÈ‹Xņ*Ñ¡¤-H’”¤ÁgL”šDpˆå"THÎ",¨HG)‰JÆ"a,.Q¤€±$„ H”b‰Xß¶Grs(D(Á8AP$†$©"#‘H„&A"…–“‰ÄH$!ƒéă#È"D0R†´THD˜F(d†"(¡„iZH!c‚d$Ib©#„"äH„1‚G„ƒä„,9LR&$t(#Á„€"ñ„$p38&È"Eh‚AÔ”€ôH£Á$D*'”Ib<ƒ¢$JC¡!#„a„†!â‚ šbHbƒ8"RG…€ñM"(Ä„¯DÛå$Šq!d…$RŒ"T$¡$ÔHá2Ò(& F¨©ä"‡)À(žF8€„4,’"BÇE(ö†`c‚¤K‚!IÂJˆ‡B`‚DCÈ&ÄH‚‰!a(¨õ6ÆãB„öQHœa(F{…‚IÁ$#(ò&‹“r1Ì,Œ²‡ò4H9ᘔ—$žn¢1"&$ò\D&¸EâB8d\Âø6+,I#4’!V(¡‚GC!‡#ÆêÄHì…bÒ"NAŒGxÄhƒÑ(Ab-¤Ÿ¬„$€b&(-A(!DH#A€0D@Á À‚À2pHbHŽÂ!ŠŽ!ˆ`l "AA#  HCD5U„"(Cf„¨R„’„0’”!AI’DD „Bl„ÀH@–8AAH"œ#]F8H,Ñ"‰”„!GB "aBÆ„‚ A‰òßäÐÒõH"DVrh¡^(Iˆ\ª¨cð˜éN†AHäÂò’aœÈ„.Btš‘AxT3Tˆƒ±""ø!¤D¯B¡bL˜XŒ$úˆSâDè„¡8膙D‰b…‚¹2„‹(‹%Á¤”h1˜!G$ÂC8‰±ˆ\BoD1þ”CrZH0(€bCâXƒ‡Hb#ITHCÈa‰H!qHH8q@Á3*Q$ÌÁ"‚…Ad„BŒ4¢‡#äˆÔ“‚†Dh,àAሂt2ˆiH vˆ±$…¨hA#±H&¶7 I2ZB'„°>¦XD ¨(B‰$HˆrH”¡VÒAˆ2Ô$áDÉ´ˆ‘$ˆD‚K"È( ”„‰%ˆFA‚¥„‘hƒ1¡$…"!ˆ‘aK)‡XáBd&˜1$D)Æ„„†òDÁV‰JÔÁ,‚AAÄCBh!‹„„ BÑ$Aa(#A„JAÊ‚ðBQ!€SLÀ‚„, *h…aFŽB€DúE¯$H H†H…„$ ‚B)1BCIèBAˆ$I".$$„&HŒB„ÄŒDÈ„" @ \5›(KA‰O"$x !ÂPDBŠ‚†Ò˜"(@bEô‚""A$2&ˆDbA4!D.D$F(¡„DŽH‚l@xB7Ó$ƒ‘Bˆƒ!$ÁAƒD(A’"H‡BDÕ…BÐ9¤YDA‚‡ˆ­Œ4.A$*AA‚IÁDLÀDC„ @„:L%hbC$K”A˜ÐDtÂf-'BZ’…ÉHÌx’ˆ¥bƒ%„“D/!”@Â(d(ª!e¢,"Ã$C°‘"’H1*ÿ9B#BA†aÁaA€”D‹'!$‚ ‰œ$-""àâ†)‚ÄŒ(‚aBlhA"(CXD…BiTB$%âÄ1÷Œ!h…Xƒ,"!Ø‚8UH&aDP$‚Ð"õ‚!BCQD!aŠÑF‘(K"Sø!"/"´(™)l¡"…Tb¦\ÂF´$ø"¤hB–H(D¢(),ƒÁ†"Â// AA‘"MÄW!‚K$$‡(*Ä!F)cUÈ@HˆcRÒ`A!IQ$A#ÉxÁT…µV,)…2B#HBBR–LÄ($DD((&€ ¨¬<#FP@H†â$B‚b%B§BAGFGHˆ̦1!"—AB›„4ÈÆˆÓƒñ‚Aˆ&™‚€8$ 8AJÂDBφXAŠD$!LDö"œ4-(¢H…‚„A""Š$xˆ‚Æuˆ ¨Nƒ4ˆ,±h$µ DD‚&Á(œ„"(„D8Q$Y"8A¡B1ÄA&¤˜•áB!TXB…˜ÄÃÌ-EŠÑ1ãF¢¡lQD<è$Â16d…B$20F‚­lØ8Õ*Ét)w‹½Ä²øQ‰M*V8L‰²ò("o¤xHë"ñ„,o!äÕ‚èôª‚LKÎ4-Lsôe<¢ÁÁõÖ“þo…ž˜¯1õÛ¸£9û.E¿ƒ¿¸¹‘ó2³?ÿ$WØÿë²/êñ(éÒ¶iò&œ/šþµ^¯&øsž*/©½Yúe,«ªï¢ô¸y«³{;>±/÷8éß;ý]=Ï»ó!èLŸVè{û1ÚÏIï{îÿ(Ù´Búö4Os5¾¼÷7?³÷Ÿ¥ñ[¿Õó1B?ìø†õßù²’/Añ–±¿oý&§2<ýi$ç’_ýxÏ™ÿ'./[œµÿ™Ÿéû~ÿýý¼ÚŸïû––ocò¦µÿÖÿœ¯Ûºöþ>iÂò,)îþoyû{Ïûû›ß÷ÿ>d×(œ¿:ÿ™ÞO+ûº¾ï…ñÈÊ/(ù²»;'ËÙ$ßÕúÝWïQ÷Y¯¡ñY}ïáóOæßÚøýÕßkû–6OcýùOÆúÉùŽiß’ük!O„–èÛõz¸ÿLòCÍO(õE‰?øqñO)·HúÄ[»ޏ”³$ûó(§n?=ÿªáOº%4NaçÁOÔVœ¼÷LOhôÁ»Í˜Ÿ¼Q8ßîWÆ]„?ÇÑ!x6Ô´|ºä˜<žéçA-iÅæ¸wlä(s$ôÁºGBŸ¬ñîza¬‚wÇ‹‚/ÃÁɯCÒ<-áïúŒiéè8·Ná(“”¬³„òÁ,ùá‡A—ÆLxsìkhKLüº$KÁ¯Øˆ~žèá+Ædoõil1uhþq߯ò{Æò†óÇò†òBòÅûŸÇúÆs—†mèf÷mˆ/oé~þ6QßÖþ–CŸÎü“cßÎþaÆö…ÓŸÆò„ÒBòÅÛŸÆòÕÓŸ„òá×ß…òeW„øûÅ·…_^ýcŸÞüYß^üuŸœþ–AŸÔö¦Ó¿Äò„Ò­$¾ýI¬o=õI(î×ׄnW„úòÇ7NürμôhÌ/!öÌèoáôCúpR„&T‚LHÈ„ðAA‚8’O(¡E"¡¨saJ˜ðAô(šðˆ‚Cˆ#é(1@ŠdB„‚!LrAÏA$@DAˆxºè(c(D‚'Â(G.$„¿ KA„†B(A L‹‘"„.M$#D (‰Ø†tH2,˜Fɘ„(K”D/…H4(B.H…ÃD#ƒ*ÌAR$&X¤F„AJ(qÌa”! ‚)8O'›‰pD¤C.:$IV!ÄhªLd¡BCAÒ(CRŒ˜D@„–T,……Ô‚‘%FX!C4 A‰1&ÁÐ(D”"E ÉBHŒ¸D‚˜š$`˜<ÓHQDø$B¶"A+ƒ%¡aƒØ&F’!ЂÔX‚4A‡& ,D$Yƒ"VAnˆ!Q&3”„*ø!‰Ò„б‚B†J–'&ÄAÈŠâ‘(‰Ñ‚¨4H_63*2„xAˆ˜44A²„BBŒR„Ð!“B/„!¹„²”E(˜A(„x$-(Y\‚¡B0Hb#‘ˆ)ˆâÁ´‚˜´ˆ!A‰u"D&=$„\¨$‡!LÖH˜A‰A²Ø˜$!óNx’JDYHq.ˆ/A˜"#ÂN(ŒR&Dœ"'‚1“ØÌ%Fâƒ1)A0$D!)óBHIÃb8"‹!J1H'#ù‚(N¬‹©´(»"8‚,ÆHLI2!.DEÑb¤yD4ˆHƒ¸HbDK *(!d€$Á!‚0ðˆ"@D‘!H„I(!FHäH(abŽ<(A"E!‚tB!#Á1BDAdCq¡"˜D„ˆ(‚(ˆ˜£Á*9ó‚A((E.@UxA@BI‰(+`(a‰p#„FƒBqDˆ¸TD$D=DZ‚²xA8"`„FŲA&(„’ˆÁ†ØD"ÒÖA‡õCÔiÔ(uZ‘D!¸#wØÂA‡h."ˆ$ó¢j3œì‚¶D؈Aye²’C8ŒSRÌñ‚xXƒ*9cB$>4ˆ&¨âŒí†(â™è"Ì’¸M’ðlŽ’"©³”âBì‡J‚T‹†‹AY¸(¦2‚˜(O|<9,E0f!AAHH`!D„B HF(1‚6IÂH&hAÁ&,„Q(Ñ„"„!NEÆ(!à(Ä, HÁ€,h‚ZŒÂ85Ù+€"A „&SÂBˆ@cD$# )‘JÀˆD„‚˜D004‚B „I"F+(…B4’@AŒ‘FMíÃÁ‚V8H¡É S"¤1D#q4¤d¤@!‚¡%I´¸ÁaÁ‰éˆ2oAB$!ƒÔ„”HC’`ƒ’X…ô2D T‚)1¤l@¢f (Yè…8L$B8Y‡BAßšJBÀ!#!$A‚±$d”A$€ ’$FTàRA„DU%Ñ!”±@$ˆAPH`!0)È!ŒG2Q@T‚åÀD­@A0!@#R¤H+AAÁE„,!¨bbPDCCb"DA!Eœ$ÀHÄ%!@“(LHDD¸‚åÄ…›ï@âAR$ÀI‰QHÁ$$/HBR(\""¡A#˜ˆp„K"¤ƒ$R‚Z8(D(„$'HB†¤8¥£(ЈAQ$BD…Ñ"(ü4õ$LQ†ˆQ%P")‘„^"É"2d"FaFT¢…ÄBDŒØ&"QdGA„@B !BE-$È(†8$0"AOaP‹0A0A…R)%dÈ/ˆ†,'"1£"CAAŠLAH„ò„D0„#A¡F$@DØ$T˜!H"L8 C"…8,*#” ˜,‚Œl’t*DDˆHÌ9–$(GH)/T6C ABäâX’BL"0DƒÈ‚Ë–ˆÀÄ!(ŠA$ˆ$":A„(„H!ˆÈAÔ˜@FhÄ#@dˆF)áH HéúŽÌ$(€ÅH#ˆDH²C¨ˆ¢!hLÈ6‚DÎÊA`(ˆ(,H8(ðA„¡(H2I'!(!AÒ!†A„!NN0¢<>~-ALAô‘!=$סñ‚(#ÔdÁ¼!FÒ C ƒòd™hE'„Üt2ú) L~•aK*qÃZ(-$)B8qI8QZv(Œâ‰ÁA‹BA¾8K…²‰Á¤‘(ˆA@%xTÚa0„H™ÓÆÂ&/' iÓVbŒT:y$XÃÏ!¡HL婈܄vŠÊ"‘eÔKòÅ2!GL‡”46%¤†bêA!‘˜IÂÂŽÞDK""ºÒ!±rIh$†"hb¤»•r˜Ä&†ö‚¡&±ô;S‘Bx‰8Ž/hqDzŠø‚ˆ†þHå# mBg%(a‰AB_A‘!((Ž'M¤0†NŠ$1d«’ƒ‘”A)h£;Á3Á“™AlhXÁÕÌrEtQ4&ˆvT‡ËžGÃD*Ø"eBd‡dih‡£r(øB%O$ÂGD…tÜø‚]…ªA*ä!¤ŠßFEÑRuvøn‹½Y½+eg2_†õ-½?5|–v$²¡ûQÉï)ýµYïoû†,ÈýLŸ–ú›;¿8­Ø7§—–‹«X?rbó¡ÏÚý¹é£“!ORûwïOÓõWEñ‚".í¯äDø’’<½ƒõZ\ø‚’+Ø;…_,øˆ²¯ŠýšcKƒ(OùÑÉ/¹üÉî¼?Xó!ÄM„øŸ=Þ/HýÚ„¯\ø‚’/(­¼+ޝÚ;}bwRßÃ×½ñK)½Hõó#UŸüùk¿îx6ô’”OxúíÞ/{ù»žOUÜŸÖÙr-ùÈËß¹×v¥ó:;ߌá¤î8ø6?ñÉ^2ôk®¾´Ozòo÷ïáñ–‘Oeþ.iÏÂR_löÑ/(^á_™û̘¼ö‹ËùÁžOžÿ‰ÈŸÆâIø6„OSø¹¸O]þüOáùimÝlo÷þ?OûÏ?ŸÆýœÉŸ½ùÃLýœhßÅøô¿˻†ñ6¦oKú<¿ïýü'óOC÷w)ßÖö%AORþg£þ³¿Öóïõ©üÛ?œùëø_yþýªŸ¼ºÛd±´zö·»¯<ÿ“ë¿ÿj(ÔÔ„ÔtôŠ¿mùÆšËܞȭøÂ˜Œü‚éÿ9gS\ô8$-A£á”6TVLÎ{ô„[D¬SD¬Y(î3qaÝTxwŒGCÍÉçÃÁ£Ñ~ÕÔV<Žs×fŽ6G"¬s$øÉ:ðá+!ŸÆ‚øs,ˆ/KÒ’|ºÔ–</˜~ø"aï‚øˆsÓæ(s¤òÁºÇ(®‘‰îqxiœ7ç‰ø2„ŽÈ¯KÒ„¼舾èh=olÿ7AÇ÷AÇñaßÇócŸÏó…óó„òCóÅûŸÇúÆs—†îö×–~w߆øòõÿ§øôõo3üýýoüùÜ?þüôo±þø~_¸ýø6Ohý¸6_¼ýù,_<ýÁ(~Møyw_„úóõ¥òóõ/öûýoôÿÝ/öÿýoôyyO8ýy¼o(õ84_¼õy8o.ýyOnyèOwÅùzÖ÷þÔkAÏǽöüÜ+aÏŽþe‚À„8A.Q\!A"ñA‹A‡(€4ˆ³ù„M„8A.À qAít(&A,’„«)O(‚’ 8A®„®”§$ÔA„.¢l’„§!O(M!Š¢8a®!®wcÙÁyƒ !Š!˜¡(dJ,bfƒQÂD+H’8%*t!V8„¾LÁFd‚"Dœ4V‡&( PB('‰O„AäÄ`BÔ¡Ô‚p!ñ*PA$Á<¡€Ò$x"!"N(„ ÁŠ!XK)T(¤"B!à„˜DÛ(„D„B.$DÁHCdÀ(Ð(ŒˆÐBX¤nðT(D $q",‚,/!8³h†Aƒ„E¤(9$ª(%tÑ‚òE‚"ND0¡x…ÄxJ ŠD‚’‰#1IK‚‚DB>„ƒ’L0DOÄ8D,̈#ÁÒ™òC,’˜A*22œ4„)ÄŒ(U(tœH°H¸‚2ˆBŒkÏ}B’…‘HBŠ˜R.I#q$‚ÁqM9@Ô‰`Wm™n$„,¡$Saˆ$„ñD‚.Iˆ¢Ì"!O„1Ê„²44¸¢A.ŠZB‰AxA´$ˆ"ÑA8(K!ƒ)äi1âŒòX„'à„Dì&¡$:G"2"®T5´väiÍa²(xxá“+(„a"’„ˆ‡e–Ä%¤†OˆÃDh„A\a6Š’H‡(¼’Q‚2MQm„‰ñ"ˆ(#B²X¨…-Œ¡Ø„ýD„$–¢‚KƒÈˆƒè-b‰—$d 8ÀAŠBDI„Ò$tHÈ’„,$Ä•È# ˆä "AJ&TB‚Hƒ¤"‚‚#ôh$†(B‚„ˆ£„$ƒÄCAŠR%€Òˆh'#ƒ 4“"ð‚(„IR„ˆDPQ(CÔ4‚ ‚(i8"0((D$(_„ HrAHDD(IyBÄ!L˜ x($èLqCƒ9ÄcÄœ´B‘"AÏ‚ô2LGD¢¡dF3!I¤8HÑϪƒñD!K4–iA¶è„Ù‚á,ÙˆéxH´"8D+R(õ<ÈIÇMIôˆSG”KÁ‰åHä$HòØ!tqúŒLÒv²˜‚*5Ê[!h‰˜ròD¢O$!#óÈ’,q3é$/Æ$LÐ1²Ä¬dlaB""(XG‚D‰Ó& ƒ¡ƒ8aK-HCidB#±ˆaFÂd‚FdÒJäAH¸2„$¸b!ŠÑ$È"ˆB¬ƒ¢ƒ2k¤CN‚Eò÷$Ì”B`¤¸%U‚(A¶‚’FeL‚n„xhÃjˆB3H¤Ì#8‚*Ì2Žg&•A…&Ž4-ÁÐ(L¹dAqˆDBâB1‚C$ÑA i2D(F/]’*RÈ‹),ä«5Ç(A„„ÒB"!ŽAÀ(Á ÒH¬LHÈ£$r‚‚Ibˆ)"‰É'…A¢%ÈÈ20âA惒!‚$@¨BˆŒ4 òŽU"C ("˜AÀ‚€P’IÂ(A,D@èBAEB!hD"%„H,‚€ ˜(BAVº$8(Œ:— Â$@8ˆ@á¨)!‚—$(ƒ‰âˆd#&$¡gA"„!r$"ˆ&2$,2$”„HH„f&*qA($i$CJØ"J"ò¡AA ¢„$AK!@T”A„ @'øA$0Š/J$‚!„A„!‰H#)HŠ3„†Œˆ1#0(„"!ƒ„uHè(4“ D@Hh¨€K!ƒ ‚¤ 3ŒÀ!†(Ød"°"Q$EtiH(†2"`2@BS¨9B§„!$…"Â8…²(a¡IЈ!AÈ"”ˆ(²L$"‰‰ò„DE’H(D0ˆ!G¢hÂ"ABGEr(Ĉ!AE#Hd(‚ "`@¢lRR$+I$B.R€Fb+"„"„€XCׂ„(òXÏa8†(ADX(‚TTˆ$Ø$rQ"ÉXhP„%²Š„0"k#`((E4(0@„0(BL‘Ê€)^(@ !,â)!°ÂB'"Jò÷PHD(„P„,a†d(-Aˆ†ì0ÁJH"X‚„a…¤B©²!B²(ÔB…‚'‚‹+aKTCä"¤3+”°""‚ÂX'=­ˆÒXˆ‹$¡˜ò³Ý˜µH"$“4ID€rADxA-HÀA4ˆŽE(`""O¤HèBDHH˜‚2„à…J(“DK`(p"#Z„¦ÈE1(L™ŒÈ‚‚ƒñ¸CœH aˆ‚$AÄG*ÁED$4I‰2G$„@ô„`@zA"ZˆAÇB0¡0‚†X"-H„$ˆljAˆN‚@ CXàH8«O’wÜ„TNEøQŠÅähˆh#_¤Ø(H”ˆGC¤›$‹ŸÌ²ˆÒb1ˆ‚­c.IëAƒZ(-$ûºòhŠ{"©è¡(T`‚$ÀJHÈBêKGŒÄB"&¢‰ñ,J2-AJAÄ‚,¹hˆÌq舔Rcñ¨£ðmA„u(Tˆ.©ŒÈŽE2Šq"R„Иu(VŠ…z$Xf%tMhb×ä#Ø(X‚ðgŠ÷f$RD#,RdHˆ†š%Fqâ8!8wòOYä¡è¡Bè*ØÂÁ™‡"$+’:øˆ'!Ç8(3Ÿ*ñ‚o!ñÂšð‚‚Œ¸*úª²ƒ‚¨†„„kBGÂA#8A!F²C²E[$°Aø„IœMY%FäK!"&Ö&XAhø4a'B.(ð"(‡‚-’¯‚óK˜:òŠA/„¨=‹/Œ1Bšö.b¾"KB!­">,‰Ô¨HƒÁ‚(‰qA¢‡¦"‹G ‡bß%ñYY¡•çÿyQß=ýUóoj²¶û—¶Õ˜üÓ[Ÿfø¸áOÒ”¨oËû¢ÍÞ½¿ãó<ÝŽˆ¯)ùÙ˜Ÿíùš6ïBú:÷ÏJò42_Cûµ_‚þý__·ý±Ÿ”þaA_Fþ÷]™ûúË_·ö+Ÿòœ?ó1'ß9ò¢šxó²2ƒ_ÔþdH”t7ù£#øIAM¤¿?ÿ1&/có,¦ïâXHÿ%ýÈ(¯cò\ÓËq_õÕÔõ]ñYŸ×õu|_ÝýÛÝ¿ïú$´Ooù´ÕÿüŠ˜¯‘¶†û>iÂò_Inû¼ãÏùöuïÿòŠÛ¿ýº¾_û¶í_Žóñ¬MoÇãiý{dŸXý[u¿û;mßÔöliŸ¾ÿû1Ÿ÷átŸöó—¤ùš™Ÿ·ó¥=¿®rûÿoCóö¸žQ¿GÿXU¿_ûñ¿ÓÒÝt_ø(ùŸ‡û½¸O‹êê÷ÖX^z¯ü¨ºoÊý†I${$¶¶8óUQñQQßGõQÙß]ýÛs¦ª³K›?=uAøSSák›?„òeAÒÿ”º›.O£ÿ{ù+Ó–üÑ’ï;ý’¸?Dø²2?¦ú¶2OKûw¿hüSSŸ]ÿ—ÕôEENÉ?5õ‘?,õÁK?öEɯ-õÑQýIgKÎ_ö5oIù&†¼ôîDôÝ[òAçGöee*úæï_3ò¦¶.ª¶òDH/)ˆÑ‚;q-4µuMÔ”ôIYŸU÷UXŸýUß¿§ò¢2K»ž’/Ü2õYMOzÿQEE_”ö¬Õ?ßþ,5ÿ÷{q?-øÉ˜¿½óû×ÛŸgøÍ¸¯¢š´O;õrèßXõqùß¿ñ7aVôlMß|õ÷¹Ÿ;¼Ñõ[ßüÉÚ/™õÙɹ÷oüÞÝŸÈû’>¢/Yÿwîïÿw‰ßõ})ŸVöm,Ï:öh­¿bû¼,ïKûX‹”#í(üzz?Á oCòAiçC”´Ñ¶ÑÑþŒ„Ž{ÇBšSD¾7Œ¼øõ_!_ÖÖÄø{m‹¢OÃøKáçC”<”>ž–v.üÁsÅä*3„þ×LòÁƒøážƒraÝxsœˆ?Cѱüz,_÷!“18#4€òBa+Aሂ’ÐäÃ䂎QŒbªÉ÷ˆD’!/äÃH¨K€‚’”ãŒêH¦BhbšZ|¸z‚’XD(ƒæL¡ÀAh6´29AGJb2‹M¶z$¤BšŽA/!ÈÈ_‚‡H@ˆ44#(ÀAÄ!XˆˆÄBˆpA*ˆ$‘D Á!FÈBAðA(!ƒ¤@D¨XDHб5¸Að$H@#Š‚„D2B@ Š(„ ãˆäH!!F‚ ˜QÀ(DŒ¨A  D†!‚DˆHð!>Ph§Äq&1Œ×$ÕÁtl/BÔ‡1$Ìñ¤A—‰O’´„’B…dI,xs蚦8BNn‚)ݺè²Cˆˋ.%4!O"õa"ƒAhQ*T„¬LÅb­‰•hhH<$Gª)ØŠeX/„"¤$ˆ„LXˆ0˜ØIq$6ß$‹AAD¦,EjA,$Ä)PAÆDHµˆQB„ch!J"<´EbÈJŽ!BXÀ$I&„BqAX"B,8$†‚èæHRˆ —„D N‚'BBL„—„€<8`”‰ð´”ÀA€Ä!AHpAHxa€‚88A€„’„DðAˆpAH!Dˆ#¡#qHˆ„Œ"ðA(pA€88 ˆ’$IR$ÀwC ÐDò$$A@P”tA@"-‚/)8ÐDò$$A$”Ÿ”tI-‚/)8DM$OB@ùII—„$-‚/)8„(IÿöÀA@ D H‚d„€(h  ,1$ D(@A""@†‚ÁBD"@ y`„,!„a„&"$b„*(aBH‹‚H‰¸I„²„ˆa„ $H(rBR"ˆH*¸IˆDˆ„2„N(BŠa„`„*ˆHLˆ„Š”(H(Š…¢BŠ!$8BDNE£‹$!J‘BÈ"`B‰œ(Ì0DLdˆ¢Z„BŒh„˜B !¨H8E$„D(4$°H$ƒ$"‹ƒ,„(Bˆ€*¥B„*ˆBÊ™D !„d(_9ABH"f€€ôAÀ³ B€B@AP  ˆˆ%€Fc@‚€D„(D@@ÀG3 `B&ˆŽ‚&D`‡¬!(.DA$B‚†ïì  "@!ˆ€@D B!( À›#€@  @Hˆ(€ðŒ"@$„Ô£B (A†’‚Lr$A…hŒà(ˆHˆ ‚@‚¿a €(GF!ˆ-"0a0A @($€H ˆ#Ü ˆÀ$EA€$$ 0Aˆ@ˆ!" (°AD '(!À$M!Hœ$`„,p¼”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ5 -C¡$%0à(€&„ÀA€8à(€&pAˆ#Ž(A`B„€DALx÷K$!$`B`(`B`(`BO¨$%%B@DôÙêÀÏÃ$!o#H%$!„@ÜX"%BR"!%@TDA.TÀÏÃS"P"!$%DADǬ$!Mnã%$!@ADA+h$!Mnã%$!DAD{‰$!P"@@DÀm$!!%BB@@DD´»ü<<%%BR"@DtÌ @AÐä6>$%%B@DôÙêÀÏÃ$!o#H%$!„@Ü%BR"@EDTD?"ü<<%%BR"@DtÌ @AÐä6>$%R"%B@PDDEôxèÀÏÃ%$!DAD{‰$!P"@@DÀm!%R"$%@ETDEôÚÜÀÏÃS"P"!$%DADǬ$!MnãCR"P"!$„ADAŸ­ü<P"@„D´‚@AÐä6>!P"@@D´—H%$!„@ÜÿÌü<<%%BR"@DtÌ @AÐä6>$%%B@DôÙêÀÏÃ$!o#H%$!„@Ü%BR"@EDTD?"ü<<%%BR"@DtÌ @AÐä6>$%R"%B@PDDEôxèÀÏÃ%$!DAD{‰$!P"@@DÀm!%BB@AEô{ÞÀÏÃS"P"!$%DADǬ$!MnãCR"P"!$„ADAŸ­ü<P"@„D´‚@AÐä6>!P"@@D´—H%$!„@ÜÿÌü<<%%BR"@DtÌ @AÐä6>$%%B@DôÙêÀÏÃ$!o#H%$!„@Ü%BR"@EDTD?"ü<<%%BR"@DtÌ @AÐä6>$%R"%B@PDDEôxè$!Mnã%$!DAD{‰$!P"@@DÀm$!P"@@DðRÀÏÃS"P"!$%DADǬ$!MnãCR"!%R"$„EDTD‡ü<P"@„D´‚@AÐä6>!P"@@D´—H%$!„@ÜÿÌHNANA@R"-‚2†-„†ô$$"An$¢BƒÂDH…YA—„P±¥"(È¢‚E&fB`BÄL²,âv,)´Ad-A™qÈS(À‚-‚$L8‚%”$""…dJ$”ˆNHNJFÈ‚Ü9v@a-AF€hB!#È"!D"GDp%äF”HHNC…²AD¨Œ$`(d&¢(#HDdB*f‘P”P‰‚‰Ô‚†B"&æhˆ‚A&`„”DB† JøHŠ'(,øj¬B4Ð"¨¨&d*(@$ôaDAT—•™ANˆˆ†ò‰Kˆ,X"‚,hJ'H+((&QKF\ìDÄIH›„'˜ŽKHŠh(#(¨(&†Ž""ED$ôAHH”…H*xˆ2Hà(ÈZÓ‡”AHˆˆŠ˜"A(\DABH£! h"(I€üÏë›Ñ©þ*Hè™ø‡ÎßÙôXˆ×ͯ¡ñ™Ø„ùØ”¸ò»âóýšãCãÆö?_µXó3;ŸBæÂôHˆïéñŠbÚü[;OGñ’?™ýK#_•ó#oxþáobÒGò’¢_Uÿ3s3õƒv?øó)!÷Ò’ø³'*®è/âöz\/©áˆHxDôȉóŠõ4ÏóòIŸ…ÕŒñ(:O¥òäÊïêýÞŒO)ør"ozûÞém4ïãósr¿Ñô,,Ç,ÿ›ÍOiß®ñŠ¿ç…¼ýžŠ¯»ùׄ¾÷"qßïñ–OƒãSóy}ß¡ñ8^r¿Ãö$$σòhþÏ©õ"ußñû4o=ñSYß±ø£¿ÿñëo1õq¾/Aù´:-ß7ÿ3±Ÿ;ö³¥ÿ“ò%)Ý!³¿)’"¯&úê6Ï©±ôLÈNæÊö4‰ O…õß•±Há„ô>vN,ïîøº¾¿î¸„ó&§/ïrÎç×ÿ»ö?ûý^-ÏÖö-ä_Zÿ~§oîójjÏÚõN‹¯¼øËêŸÿã¯ï7ú¶;ÿoó´6o3ój.ÿ÷±XõV]é³ä†Ôˆþ8ú¯&zãûÃC¯™ÿ_š¿=ñËk?™ýK‹?´ø‰ÿlú–oaøÄ>¯­ùzš­Nÿ“û#!ßÒ²)û1¹¿²úê(/ìô¼šo¥ýÈHîlÏJì¤;D\ùu5ßÅõZ…!åE÷6NÏFúÌüωø´¶/Có””ÏêøGvÿ›÷4q×…ŸÆö-MOzþÿœ_^ú}ŸïÿH—¬¿½ñêú/þm¾?fÿ9¾o!û22/só;=ߥõ:~ïÓvh¨dhÂôlº/Nóþ:¿¾ÿÓ¿qÓûêãïòýk§ÿ7ÿ».oHù6¶osû¾/­ë¡þªß“ò--Ÿ’âó3ª¯ªöªJ¯Ìÿ^š§‰ˆôȨÏÖü!(p2ô$AïBÂA£ÑöÜvŒö„wß$ø„6M†_ìs„ôņöá!Æ‚ús¬+¡/Có"é¯CøÉ£ñ‚éãó&iÁŽ{Û&O+“¬S,­Ñäñ鞥taÜHxsü„'ÃÒü2<üéòiÝO87XO(3¬õÙñéž­(—Ɖø{ˆ§ÃȯÃÑŒ|؈þ(:ƒÊuoôm_oôiL/ölvoQöhlO8÷x,_9ÿ($_½ÿi,_´!â*ùWí¿Óõ|Ÿkw¬R•—‚¬o»ó¬3®ò/A´dä¨ñˆš¯¡r.ô‚¼£ËUßñG¥NXñ#6µóiŸ“÷QoAñ6.OóQ\¿ó’#ÎþëA…õ$%OÆ÷RQõ%rñU^Y×1?róV8þ~ßvH¼†{rjNH½!=&/”·9T\òLå?+ÅE]­ûá,ñHI¿ûóÉ?Ÿ¾õ)IŸ„ø2„o¯Cñiøï‘ù¾¾¢+"Ï’ú.%‰ú»:["K¦oíã(шôJʯ¯ñ¤6ïnCñG_ôôv§„7´NJß²öN$×ó??ßçñ4oBòz;_¥óWý¯þ½ÕïÅòaiÏRö?UïÅów?_ôôwÿ•ñS?´ô8u¯µûw¬/+óeŽoK±"òJ+fûbH¿s—ìÿ•òdL_ÿá+¥??ñå_Oúÿ^‰¿=ñÉ[8ýs…?ú“3_ìù6„+¡/¯ñÔ²?Vú>q_Sù$UÙú7„¯ÑøÖÏ,÷Œ²o…üÚX¯¬·®ù„#ßãqDÿU_ÿtKûA^nïÒµwó^\ïáñ46oC’?sñt_ûC¿j÷|)Ô”M›r×óWG÷_äõQ¿…aµ?„÷=R¿×úVȯky4¶&’"7"¦ô*Aßr÷[,NlORô)e¤/-ãþñÍÖüÛÎ<¿;üw¥ÿEþ—O*ù„oSú—?ú/ø+ó<-•]WMŒ¿iõŒ~î½Røš¨ñŠºøup2ôAïCÂA£ÁaïQâQÖLâx÷M(Ž2IòÁ:]$ì1!î9"WÆ*xsü$„'C.Á¯CÂÁ£Ááë!maÉâ8÷M(Ž6IòÁ:IòÁ*ñáž#sa¼!xs¬‚'S.ɯÓÒ|ؾÂiÙâ¸7LŽ2A¬üÁny2xaŒø{,Œø:LȯC”Ä«AèãÁmcÒòüAïöõA¯æôqïäöe¯dö…w¯eò„{¯aòÅz¿åòÅ~·§î}{ùá^ß–øwÞ·—?öý;A¯öýA¯–ýaÏ”ÿc¼÷ó¯­ó„þ¯!òÅz¿´òÄz·öî^÷Öþ^߯øòׇøò×/üþß/‘üúÛ/þÞþþß~_8ÿß>O*ýž6_¬ýß/_.}Ëÿ¡¶wÔkñM?kù_­/kÿä¯ë½üºÜ+áÏÉûÁßã…DˆR„&DDÄ(QHˆ8Ž…”…DˆSÄ&Dˆa qAÌAˆ£á(ˆA„AˆSÄ.„â(ˆ#á(±(‚Qˆ€S„.4!ì=¼$0AD(·4)…""&‚ÑAÑ8Fˆ!#´R(!)8‰0c0)ˆSf)¢C!Šh„(F‘*'‘K,Œ!3h08‰¡$(ˆ$L CBiBèDb*Ò¤Ò'¨ðwÁàH€AHªA@!dè$$AR(‚$AÈ‚DI @B4¥ÈÄ%H,!Bˆ%IÁ$…¨ALá(2-ˆRƒÃ2p˜)tÂD(ä-*ˆ$ ”dJ‚ÂH)‚b€3‚P! „hH)!‘Aˆ€ÁL€²!"B"H&hF`‚P(:È$H#.J¿1!AƒqH“e(‘B(†”Ä")AÌ’0!©„Š"£!!„#(!…¢$¬ŒD‚ŠÂ(A)„&1dR")”ˆJÑ‚$!fAcç!It›boÃCŒVBâ"'!À!Fˆ±Br¢1"H)Š‚á‚%H#¸ƒ4("„#22…"Ñ„”hÀ8 L†q"$Æ$ƒ2a¢Œ‚´„”Ȥ2kdÖƒ¡$€È¤ ……„,D(`*BJ ‚(!& ‚T‚ˆP$"!Ä“@vCpA„”ˆ/„œDDˆ‚rDpBè)qA‚DÄÁŒØDšˆb„0‚ `$Fˆ"(@È„! HDÇB#ft(A64$’9H,’8Cqˆ(¢(ƒ“”¢¤„„±ƒa‚E¡"C:‚©¢$(x( „£"0!#ÈH8F‘2ŒÎ¸$¤„%txHG†F¸¢øHC!O‚;,!‡;!)Ôba" Á0(`„"ƒQH!B„ŒA E”".ˆ" ˜*$’H1‰Âb%A!jÑ(‚‘$(¡MhIaDhd¦Œ$r$AH¢!ðÎD%HJ1(Hˆ!‚t„ÈÁ„BH.A¢ÈЄh1J©RÀ Šˆ´$Ø4T(( ÈÁ"2° $Šd‹ (D‚Œ°ˆ$q‚ Db‚Ž×“Ã$$B$@XA)D!,Ô,5a@ădˆ¤‰D!’JQDM‚@ECFHD „P’Ae†¢‚Hk‰˜("Ô'‚Š@– B"AHBàA@@4"ƒY†H$"¢@AH$"Ø"€Š) AˆA€LÂ?ó c`!@,A%ÄCÀR]$@ˆAA‰x˜‘ŠÔÔD¤(!PA@LA!˜™$A !#¨A‡‰¡D&`!@ŠBÀ$oÜ*$H"DÓ##*H¨!`"¨%Œ’"(¡,„D""r(ˆ8"0"A"‘(F¤$BJ(L’$ƒÄˆHH"&q,È2a(A††„@ˆR‚,(3DHB 4"\?*4" BMH„G(”ˆC"ˆ@èbLÔÈBMHÁA¢ˆ˜@X„"%+BC²!TH‚‚À$Ž(‚Rˆ+b!¦ $äÎD&"BBHBÒ(c‘$($$$B„ DH¡B ÁI(ˆ!"B„d„"°R‰(‘„# X$†$hD êÁ>n-(!EPB(PƒCˆ‚‚„,‚QAf¦"4%t‚„ƒˆ,($@Š  4T"€Ø¸BÑH,4ä B (Aˆ*Ò(òÞ0$„B$„hD&ÄA'HhAÀÁЄ±ÅÁ±#È„°"#q"ŽD)TH$D‰Ä$$ŽDŒaL$Ž$`"Kp&2AAHi(Á(*"‚Á(À@ˆÂWÓDHˆ‚RB†@$(Dˆ "‚ ä$HB€ÈˆHÈ á(‚d$@D€ˆˆOO@‚‚ˆ‚@¡ˆ‚ŠJ‚B@$"€@  ˆ@ ˆ<8ŸL¡‰r*¡1AEˆßÇ(AO„s„’!cˆ+‡-DD…”Š/ä,Ò$Ó(Á"YN®(€Œ(“B‘£’BH¯AÒCÂr,`„FˆâH¡‚&„¸2Â$£’(€ª‚‡$/^DrAb"E"d%Ff$/D"‚+‚/ä´‚¦!MAhMaÐä¨(8€è„ØBèH(„(2ˆ"¢ H‰²ŽbhBŠ6ŒèLaˆŠAœ'…(‚–I¨áë!"b‚ ²„"8ÄÆfˆ€Ä"Žæ£‚ÂAC‚¡(Ñ$ø„KŠ¡¶dÈäÂLxHÁA+K®AƒQh1Fá”D,A’Fò%„G¤FxdX„AE´"46H­hAhXðˆŽdà¤BLNXH0#1/Aˆ™(K1®íð1\OgóV/“ñYŸµóZ4‘±Žÿ¡ÝÏ+s„’"îO_£ö•ÒoŸñ«8D>DG–Ÿ!ÑË·£öL£ÿθ²»‹ôJ£?nø¤ÿˆßÁýœO⸂òEÏŸ)õ,G/–ù±+HßSôa‰_{ó‚T¿Jüh#ïı²²üH3Æq²ñŸäËObq9ú–„„Ü|µö–h?«q(õ(Ë¢¾&/Iò¬Ob³"±ÊõÒØ-"'Cï=4w-t¿qó45Ç…/õCñtÿü’ÇŸ­ª‚_Œù•Ÿ%>9OøÆÖ/AV‰Ofõ2l¿Iý¹K«_ŒøÃÒŸ!qºöïˆ[m¿qöY*®„OLû5Ïm>-â_Ýg…u%ùA߉öQÏ#ù±$GŒ/Õ*y©uäøÓeëaŸç»$hHg1eÝ-èˆö–½¯Bò)$¥ø$²/I²2ÇšJ¶ÌÑ*õTНjóŒRtKsjõ~]á÷]£´RÕ3äçñ݇O©{ïü2–O)ùÖ2oVø{gæÓü~)ßFÖAü¡}Ï7úz?ßý¾óߤøØ›?=ý8é¿íú\‡Ï+óO¬oiã!ùö7¯”ú×þOyö-ÏïÇòai]å‚ýu«?ïó×\¯)ÿLš¿Œ±Óô»òßäûIškòÓˆocÉ’G}¯øTžl×Úy>ÑÈâBú,„M’oh·úòþîO$}ˆòÚR¯ì´=h¯/ÔóT1tHúJ¯ÕÔc÷ø»_.ÿ¾¸oaâjú¤£OúÖ~nŸÊ}ùdElŸêþÝOÞûÖ­¯þŠÓŸùÒ‹¯Ôåxÿk»O¦ý·¸oaò$&Ojù45o½þˆø¿tcüdImß"ôxŸžñÖ-ëü­Ò$œ4œ6>¶,á8÷m,³$ùÁ:ÃòÁ‰øa£qaœˆ7ǃy²äü:$O<áãñaÉá8÷L޲IùÁºIùÁLñá'AÆLxsü„'SÁ¯CòÁ§áçOÖá8÷MO(“¬“¬ñáž3qaŒxs¬'CZü:$KÅ£¡äãÁBÛr÷a¿öõA¿öõaÿæ÷aïæ÷…sïæû„sïbóÅûÿæòÕ{÷æÿoüá߯øóï÷Ç?ÿþ>E¿÷þA¿×üaß×þžaßÿ÷Œóÿ®ó„óï"ûÅû¿¦ûÅÿ¿¦éþwkèþ÷iˆ/ïþ{ˆ/ïþ:ÁïïþÁ¯ïüáï¯þᯯ÷Œ÷¯®ó„Ó¯(óÅÞ¿¬óÄÞ¿ìáêyOìjñEŒ¯kúWŒ/küįï¾üêÌ«áÏ̺^ü7B@Ä((EhB ¢„Ž4(°¨‰‚¸â(™(‚(À(¨EèBX‚"„"„†ÈA‹‚°(‰‚¸â8‘(ЈŒ‚R„&D(B(BxaÈAƒ‚8:Žb „2T.$#Ág”–E8„$#òH0,Q!ƒa(A…”©˜Ä‚Œ1AŒu¢Dh"Š&d!"ÃaB!›A"‰†Ñ’#Ü„aŽB-&D(d¡"$0!ƒ²dB(™‘!)‘bƒ2!UñˆèA$À*ÀAD`!QÀ‚$TD†BÁD‚€Dq„¢b@’„#B2$A"F’A( ä"BáHF$‚0"$$à*„’$•+&…Db„%„;é$BŒ!„ABh!C2 H()”DÈA!)ˆ‘FAH"`#€B²h”˜œ R%¨´Œ£ÈB(ˆŒƒ¤("!ˆƒÖH$ˆ˜$Hƒ(aB‰"Âï¡+I!R°*1A"Ab…'˜DŒ$¤HIšÈCƒ9$!/t$h!FÈM"àƒ‘”P(1`„¢K86BŒ!J$!Â4ŽDƒ$sH"±Hñ…ýÓƒ2J#ÄB$ƒ!‘¥t$†‘$D,¸*´-”Bƒæ$”A2!”A‚A„*‰‘ÀB>ß&±IøD)f±Hô2Xƒ¸¡$%â„X#"ƒŽÙA2Hˆ*Ád«Œ$º„Bò$´„´„e‚GAƒAÈJ²ÆôKè)ƒ… !A"DA€˜„#%¨"!Hà"B„! Tˆ‚€ ((H†HA@Á( Àc à„R@øÂ@f„E‚R(ˆ$Bˆ3‚"€R†à”Œ„b¥…ƒSˆ#1$F,ƒP¡`ˆ„E Ä”! dBÀ$‚ Ÿºt&ÛÁÅdô,Èz"‚è1ÖAãD)cÄDË$A‹K3äÁ|Qx¢™Q1&)Ę+‚+¢#$2CLTR$DlHªäA$ŠÄHŠaFª¨C0(ÊHÈ#ÖHºB3b*"œ2+ØXKXNH‚n–³ "‘‘Á+H6 a,Â2D‚,C‰Ô”B„´ƒ$2œ‘B@FÈ"A¨%F‰´ADhAJ„`B($¨PD8$j´!4$$6„¤ (Ï~2y¡ a™„²Œ°$2’„F¥Z@ÄLB ’N„H6‚‘´N‚1IˆÀ‚"¤f4F$à+¨i, ‰”‹A8ŽH!‚‚ H£d‰."HB¨ Bài$$¡ÈИ‹2%HH(aA)$"CNÆ$4„$$ ¢!I$RqD(HB(!!€„ØB"‚8"@"!A„ÄBÀHÐ"D8%x}F@A„Àˆd \¤"@Fa¨(€¨€J°(‚(´HH@ˆ±"  @$!À‘Ó #AT(hˆx‚ˆ‚ 2ECÖ$X$@Ä„1%bˆ¢("†‚Ò"hbA1H"b&4FÊA€&ˆ‘"ŠIÄD@(EB%bA]h`BAÀ@a`e&(2HJÈŒ„AˆA‚AˆˆA ±x1"1ˆ8ŒŒ©à!hFÁH!€<DACB\„AÀ‚†R0ÄDÀ„Œ ˜$ŽTA‘M$dL$ˆ`$nA02!.#HÁ!(E(D‡lp˜„ˆH¿š D„ !²¢‚!ƒH„H$@%2 ÁC‚Fà‚‘†H:„€4 C!‚" ÈD‡Hà"E-q“Q"%‘A@ÂA$@ˆT"Ea†"GFB!QH`,B„"RFA8!„H€"x‚$À*B((ŒôW(F@$H1‚Š"¸ˆ„©,NAˆa¨B#+ƒ¢†!…Q-B!(Ž#‰T!8$,J!‚¸(!؃ÂJJ+,]³HH°„‚BD $‚ÀDHÀDˆL $"1‰ˆ(ˆƒFh$„@N¨HH!(Èð\Ñ$IB¢F"Dl(D@!€@J" à‚BBˆb C"‘dHAD , Àk3LT*„ôÌÒTqÖ4@qA6„$EJ!&dB'„-„…a!HApÃFM#dð($QÁB8!VxCx!h„'„'/ˆ˜B²j1<1$4„8B„ƒ$4ça*„Ø$øñÚ$,Bj„$&tD$(&!!+€„¢H‰!‡HTa¤OdAŽgBCR”B0&¤B‰ÊB(„डЏA!8Ab$ƒò"AaHAG(CX4¦ JÑ(Pˆd3ºXH-A‚”"Lr„ÂF…Œètø$Æ1¤Eq&aHL”„H%Ð 8‚›(LÃ$`ÈF"²AB;ƒ:¨Bt¨úˆa‚«ƒøˆ"lQ((„BŒòA‚„‘B/¨AŒŒˆŒÞ"%²ULòR§ׯ1á1ôR)Ÿ‡ñ8Ÿ#ô"ÁgH_Añ–?ŒôŠAŸtäö¥'OHôEK†w{O)ÜíüROTqšÚ£ôR3/ö±¸ò…v¯Ø}’ä‚ÓdóGÝÈô1Tþ¯#Ó‰¼äø»²Ÿ¨Ý¡¼rb¨ù…Ê/êø(:¨ß“=žK2,óBY?ƒ–qn7Ï#²-Õ‰öi¥o«ñŒv®Â#õD<¨ñšÒ/¤ò~6®íÃqGƒ?òsT²A•½/‡¦Ÿü­ÊDqôFOøHÌ=‰¿âøLÏ}dGÒ×ÂÞÝgíÈt…\öÏ5»Âü…Š'²oétÝ„¾M26/hù„¥ÏÄw7ø.“«\a‚‡‹Ü-rŠt±ù2+=£ì‰ø²‹?é,ÕöI$/KøBòih?ò*7&·ô-!ÏÓòañ¿¸õ!dK/éñÜ„ç!øª:oOòöä?åóAJÝf?…q[úHs_¡÷_¼ûœwk_åù–”gH/5ñL‹oÌÖßþ¨Èw×nhÝIïÊüG™g|Ÿüüúo´ùʃ¿¼ü5ôo´û~/{óE¾k¹+‹oãuûÛñ½z‚}zñiah?’õz¯?òÈÛ¡öÖ‰¯=øÉÛ«þÒ©¯ø»2ß$û’4#ózN¿õH]ì'WÏÔÜ×ý[¡gïÏlõ˜êï„ùÚ/®ôœØïôÙsó\#öõI/4qHúQGímçÔo_ý††MoI˜7áßlÜÞö§Â‡VÛfmB|ÌõÛ—ÏuùÜ^¹ôÓ™5ñÚ\ßùöÓ$ûßjÛd“"/Kù¦«Ï$÷›h³t{±hÖ‰ö¡ÈŸøú³5ûIz?™ôÓ=ùÈÚ?™þS©«×/jË2iò2/²ñhR½H±tUõhdÝIÝHÏÄøö2íñÌÚ¯ýÊÖòÊØ¡Ü; gSô:%A£ÁaçQMeÇXOx7ÍŽ2CøÁ:EôÅî9ƈ?ǘ/CÈůCÊÁ«¾ÈeÃè8wÍø„6CøÁ:CøÁ‚î1ƈ?Ljø2„ü:¤MÁ«ŽáëŽaÁžsÓô”2A­ôÑðñž#sä¿Ç‘ˆ/Ãшü:4I<èç¬;†-öï“ôjfï‘ôjV¿‘ö~voöê~O8õÚ6O8õš6_¬õS/Ϭ}cúèþw†î÷e‰¯çÿWˆ¯÷ýÉ¿WýÉ¿WýéßWÿíŸ÷Œ{¿oó„s¯kóÅ{?¯óÍ?¯ñé7‡Ÿþ÷aˆ¿÷ÿsˆ¿÷ÿ:É¿wÿI¿ýiÿ?ÿi¿?÷Œû¿/ó„ó¯#óÅ{?§óÍ{?åñéwÅŸnõMŒ/oÿ_/o¿üþÞ+á¯Î½þìüo‘|"€äBAÈDÄA‰Lˆ8Ž€€“$.!L!ÄA 8Ž€€“$®  qAè( #á(ˆAˆAŒdB%ÈCrA0BàF&CÂC‚ŽC"&FRÁN‚ˆBF2^"¢!A!ŒdH6F¡B*²h¡$¹â„‘/„R!2ˆ“Â!)LÄh‘2Ž !#„â¤ñøb°éDB,I5A*`FŽ‚ôa"aBBE+HJÀÂf‚áAB"¤!ƒˆ¦ ‚$f"JâˆR+(‹Á'†()Š¡$ŠˆDD©BR&ä( ,1Bp&Ù‘3ådf”JÐÅ8!CI„’†‚Y(D@$a€+!DŒ2‡AB*ر"hƒ8ˆ(‡AŽB…„Ad*$È@@âÁòX„ ‰‚ñâ(!ÂI#‘,A6p!b"^$’!H¤°H1Aˆ"L“Aˆ Aò(BAÈ$J‚!£BJB$ ‚-b@(Tƒa$b0B‡„à¡Æ^óBòaD=HŒQ!•’!D2„D&Â"E‡bB1ÀaDDh¨,A‚a‚/1QA ĦN¡fãˆ"ĉB‰#¸Ä¤!KŒ’JP!.B6tB¸H˜ ”8f¸KL!H'„hD".!`¢HŠC!€a„a® "CA‡‚Ä$PH”!˜€B"`"C!‚$…”D‡ R$„#ó  $(iF„ò2(rA„B% $A(AðA(1„$¤04(Œ„ƒb$IBH €"yAXb ¨„)L™"@B¤D($ˆŠïÒNq]$©Å„h¤ˆL…(²AÑ$•!‹"p!´¤1Bð)v‰UIÂXƒ‰˜iB‘NˆÖ%1A"KH,(Ä©YZ¤€áBb!x$¸DÒˆÄEKB+‚J82ŽBF¨!EÈ(SÎ%!TBƒ;9A’$ÀBD()1$€2AE¢$¯A‚DvJ1H*”1ªAƒ$ÃL$Œ$A²Ä‚"Xa) 6L¬d`BŒ(Ä"ˆƒŒa¤ð/šÀŒ4!B(”B$ ŠA0‡@(‚„AÌa˜@H’D@!T’±(4FHc˜ˆ)Ar8‚$D &Bl„(M!H@2’HIE.„&SG Aˆ)s$$AÁt*d$P€lA`“ŒDˆDèD"Áh„"„¨FƱ(Á! (@aʇ(8(H"”¢G(*@ˆï!1!@P€A„†!Bˆ0‰•ˆ(†‚@!€„!„ü @&Ä&†AD,U(|(ÃCA0Œ"ƒ QD„Œ$Id‘2H"‹(„—(¤Ð(‘¨ˆ"„Á‰!8B*aH"MH!€òTS€ˆˆ€H A!H"‚‚ˆ!˜!ˆ!ˆ%ˆ¸"ƒ() !H†Hˆ‚ "‡.(#"ˆÀ©S "D‚%¢)!&""L$%ÁD4”†A$!†$*qˆRJ*,C‚ÂS‹‚!(†´„’0ˆˆB *"ƒâI4‚€´ìCAAÄÁ…BDáC²ƒT%!1¦  ˜ ÔHHAÂ((*D(!ˆH(>¡/(†¡¨À¨V„(¬ˆ‚à„8Ô@ !AAš’Š[ˆ‚ƒD,„(A$‘˜‰ÉHñˆ@ø‚0‰ (”‰„ÀˆÀ*I „(¨!óB&DºH((€ðå7@ª$€’") HPŠAÔ!C †p!Ä„ˆ¤H(A€Q³Ì8ˆH8‚ bH€X@ш$$ @à’J¸Î¸ÒüˆŠÃ²Fò¯—/´óZK›qÝQ™ñ)ÓÑ»=1¬ŸÏò”¢o#øv‚/ÿóMé¿Yö1Ç¿×òEimâým±Î=ÎÝÛø?´éœñÈý߈ÿL¹ïÕñ¿ÿL±’øïÍñÊ¿Œý;èýýï•òiLøŸ‚öú›¯òq[›hÿµáøYYôq•O?û–²ÎikOC£½/ùõÑŸ‹ÿ•ôoòdDŸ’ög4ór¯Fý¾èO­øÊ’+MkQOF?ƒœëòy”á„qø5âù·‹oÊó†²oJñ¤ÏúºF÷œþLwfühdÍlÈö~‹_WúÞ/‡üï•xØùYÈŸ‘þ]›¯ý™O(È‚Ž“‡¹½ü9ÞߢöY-”ö-hŸ˜ôi«/¼èúJÈC¯”蜱Xö)YÏÿúÈþKø¶’k2µO;ùþÜÃõ½ñÕòHe_Òô-èN&OE3~ïíý‚Ú‹Œ+/dö"W¯˜ 'C­A¯CÒ46aËŽsß$á(ó„¬Ó¤ñÁ‚î9ÆøsŒ)ø2ŒÁ¯CÚ¼è¾èì87MŽ2GH_¬sŒòÁ‡(îyta܈xsÜ‚x:ôÁ¯CÒ4~øaÉñ„s[O(ôÅ2EøÅDŸîYBÆ„·ÇLx2„ü:$I<>OQ2Î=}¯ôyu¯ôy¯‘ö=5ïö½¥Ï¸÷­¤O8÷¬¤_¼÷e¬_’/"óC[ü8Ù[¦‹9œÜTôi¨²-A‘uáòû˜!AŸ­òõ˜O#ù2QRôŒ¦>’!ÕõšñÏR¼ûš:ÅMIßúºÏ±Õ¨ôä6ÏMÈHŒòü˜â5¾Ürdôut}±FùQ|ÛYñËê*ø¶‚k‘þìÊÿ›üüØ_ù,eBŽÃÅÿËi¦ø44ÝÒŸòŒXÅó9Èß„üGóǯ*á!ø¢?Ÿ´(áCøÉQiÌ26¼ýá¯w²ª2…øÃYï(Á6çùQɯ2üí*Lñu¨/"ûõi©ñ2œ?õiM$·Òýö‚('CË”‹}ωñ,ÏÆÙKòt_DñGNaÃøÈs׈Ž2CøÁ:CøÁ‚îraŒøsŒˆ/CÈÁ¯CÒ¼è>6ŒŽsÓä(“$¬“4¬î9ƈ?Ljø2„ȯCšÄ«èë\9*Ìÿ?Aã÷_AÃõ[aÏÃ÷_aÏË÷sÏÃó„ûÏCóź_Çó†òß×áj}íjómÍ/Cÿ>õï[üyýïüy¯þm­o‘ÿí'O9÷ë"O8÷º"_½÷ë(_½wéüñׯþ÷mˆ?÷þ{˜?öþ:Ñ¿öþšÑÿöüáÿöÿžáÿþ÷ŒSÿíû¤SïiúÅ[ÿíúÅ[ÿîøáw÷Ço÷mŒ/gÿŒ/gÿ>ÄÇ¿ü|Ü«áÏÇÿáOæÓ—!0yB(ñ.˜4A(µ`JFôÉBˆˆ1J"€!b#ô‘”X!CÄA°´øH¤J„!"‘6„‚X"2ƒ¤F ’%%B/Jñê ,A€!@‚ƒ`(HA(„,„$‘&!@‰4%ˆHÄ„€LA‘AH(M‚F@2@Øa9ˆ(„€(tAÈ0$€‘ÁˆPˆ‰ AôAˆˆC¬0"(A€$‰*xAHA@˜!@+!D„OG£2ƒ¡B1‚()¨LF"CjBQФ‚A‰à(ñ(š‚0ÀNBtHñÁ’(…ÆJ¯H˜ÊQ8"8¨¢A‰á FáB(‰BÄJ ˆ«!lô¤2áôÛüí¬/KúSÈ_ØüšÄ/mù³é‡Ë¢gQŸšú›ºKèÏLüò~Ï$åŒø„È/¯ÿÄÞ/}7ã];Ï3ôO=H?µó.c¿çûgzîô?ïèHû¦ÒÉûóÌ?Ù÷n³^÷?l’ò¥­Ÿþ¯÷Ÿ‹ú·¯ùÏÚ‰ù³«õO~?¢ý•|w§Ló¦=~ãö5=ï6ùœå¿Çò%IÍÏX÷+ž­÷w«ÏÓ¯ñAH?µÕ>öšÉüÒ¶î;6oAôSÞèùéï?Ù\~{Ü•r-ùž¤?ÙøþúO®å¤÷VÈ/©é,ýÌúo>)=ú_äôq?­A·¥Z?×ò(qßÏ÷aûë¯O)ù¶¶+˜O*ú•›ÏVö¸ãÿÇòehVöíú/Îûäú?Ïþõé9ýËÊ?üñ«¯Qõm;¯Tñl&+™OC«˜O'òóù6÷ŽÁ߯ò!mÇÏüí>7Ä_Ãö1m5õKX¥uSù(q×Å?Ùüú–O*stôÒÖ_¸õþ¡Ï8õ,ü$!ߘø¥„¯éÿlrÏdµZôÚ’RNÚ¯ö&p2ÄE§CMA£ÁaãÓV,O8wmú„2M‚_¬s¤òÁN†îqRta̤?ÇÈ„'K-å§KMÁ£Ù>>maÍBO8wmø„2A_¬s$òÅ"î9ƈ7Ç)x2ô"Á¯CÔ¸Ô>-aÁŽsß„â(3„¬ôÁ"î92ƈ7ÇŒx2´hü:¤É<‰>Ì=ó=o¯õ+/¯ukýqß–òQŸ–ûÌÓŸƒóÄÓ‹3_¼ùy8_üùYþ{Yøá>„üò´?¥ôøõ¯ô¹ý¯1ô¹Ý¯ö½ùïô9yÏ8ý98o<½8óÇ›Ÿ‡ó…ÛŸÅñ£ß×Åú÷MŒ?Ûý_,ÛùEŸÛùAŸÓøaÝ­ïôM?Ï8ý_>O<ý6_¼õ_>_¸ý_ú}_ü¡_Äú²–Åò²–oAôz–kA¯o¹öÞ¶oƒôšéHB(CdBB" ‚B„ÈAƒŠ(ˆ+!Ž’(ŠŠäJˆ€(ôAˆ´H*ˆ„Š<ŽR H ŠdBR B„ˆH€<Ž B(A&$Ä©“—‹HLtÚA8Œ1†0NˆAHAT@øB`D#1ZȤ°5Ä“(€Ö!\!E MˆFaRš$’Ä…!,1¢‡A¡LðE,pC86B"ƒ4$¡0&$h!(õ+4€X+FR4IÁ’AЂGBLQA”D3¡$EªAN‚C&x)D#qrˆU¨‘R$‚!Á‘ˆ*‘„ )Âߥ A$B‰"@)€qH"@(ˆA)!B!/¨€‚!‚@Iƒ„Ðä1Ò!PE ‰HH`D BpA "Ž!0¸("ÁˆK'`#Š„H‚pÄ$„€8$!ˆð<² ‹BFÈ!%dL´Ä„$°R‚x26HO¨˜k ˆ-B”DÀFT$#‘bAˆ,„Ë""bâB‰)‘")A!2A¬ÄHH˜SÆ6FØ1SŒ$@R‚$‚E @•’H‡AFˆR˜‡B…ʈ…¥Ô@‚DHBˆT@…ÂBTF©á¢„„a(A$AA£1”p„¡$âvb„$À  a¨J" A"G!  A%¡„+T¡àB‘‘Ä$ (Q%²‚t2EA‡aAC9FF-(ÔÖ9!t'‚B1†‘—4"C(r$±(Ø‚ˆL™#! ’"C…2„ÄD1A„KF!#0¨‰ˆ(1@”QDˆ±„B$ÁDI‚ „ôjˆA@B!T!D'D tDB:¥‚hJÔ!2’‚pÂ1„‚F¡APdHªè‚AÁˆGˆ@ˆ!…Hˆ„•€€3Õ€¤D€DˆAN(B ¨DBˆ B€¢„ˆ!‚ ¢Ï™ HBH€Š$ÀˆŽ!À$D (.‚ˆ (€ ‚(€ƒ"I B1Äã”"ä©Ô8–A/T(S$E"Ò!\$,Ì!¹DTA¹QLË…‘­Ïñ(“$ˆMÂIte|ø$‚VAN¨‚7‰"L(9‚…%¨ŽÈ°¡Ô¢K˜S„@Ä(O(2BCÑ)d%F"Ò(ôZÂ0F-C/B4CcB2dȈA”B`HI´$”Aƒ¢JK$CQ!`($$ˆ„ ‘"‚#' DÀ",q!˜1Á(Eh!R($`B…äB9D\„-„„CñÙ“•'„P‚qÂ(T¥jS„p„¢±,ó˜A›‹ˆB…‚ÔHX¨M¡C˜]¦AÈX,1MÜHWˆe8!XÉ8^)¸šÏjè,ÙAÄ%ÄÚAAWÈCX…4BN$‚&(ôU÷ð3ro´ö{§¿%õBC/U÷ná¹âÖv¨òÕ:k"ÂöŒc_®ôNãŽöhåÃÔ”ö±þ¯Rö3¸O*ò>¥ñ‘Ž"ÏSó.!w›Ž$Ï"»¤³2úäuŸ®õ„,/Súët†ôElnÁ¯¢û3¨Êâfÿ²…¯Ô‡ø‚²ï3º|öµ,Žþ¬”/(r4ôBCŸ¤å¨âSòF],wB©ÿúó<$gÃmôï¸ØôVJZ÷|ÏÄ×s÷rF¿¶÷J=ï¥ôK^§ö§oc÷yªI¹4ó27§ùqñÏ…õõ÷¯Çöa!£ôm³¯Ïòc4³ò¤±Ë‰©q“ëR³:²®úš—¢ã*úe$o{þmþ_¤Ùñ®âo‡öAŒOöÈ2+?Ëú[ϲŒüZ"¹ù¢§¯Zþx¦³ÿc6.²Ooÿ²Áßèó-:Öÿ6EŸ”öiè*Ïzó:#ïþ»ž_<ý˜ƒ¯»ò=8/v÷*3ïæwsÚDó"ODõRÁ:¿¢óaÍ/r(Õ‘º¨ú£;¯CõXªÏûÆR‹T¯¡so»R*Õò÷~KO6ó^C-[/5ätõzfôþl«oJ󖆎‚O*ºGö¯nF¿Î¶eöm,ŸFö!.&ý-ïZ»»Ú³qûŠ¿#ò#?³Ó¥ñ6(okó"6Ozÿî¥ï=yþ±èÿײLôahžñ!¿ÏûE¿ú—Ûœùšƒ¿Cò1{ÿžû¨ô_'ò’”O#ÓRõüãó3>Âv]ù,$Õý­¼O:û/.ËEïKþ”Ú¯„ôX¯CÖÄõA¸prÔôz$mA£ÅAãÕ6,ŽsׂŽ2K8¬Ó…õÁhîyxaŒþsŒnè/CÈá§CO¼Èáãá6ŒŽs׌Ž2A¬ôÁ®$î1Ä*xóŒø2„.A¯CØ<¾Ø~,â8WŽ2A¬ôÁdî1ƈ7Lj/CÔB|:”Æ«A)¾t>¯LóWmFóWIFñSkÏFóWCÏnòõ[ïjò”SïjòÅZæþ¤Räô¸6Ääj÷Eí¯cþW/rúÕ¿òúžÁ¿òøqÿòúAÿòóŒSÿãó„Sï#óÅ[¿§û…¿¥ñ¡·…_òóIÈ?û{[ø7¿¯ô¿¯ô{¯ö=¹ïôy9Ïxýy¸oxµ8óÇ_Ÿ…û§Ÿ…ñ¡—…_êóAˆoK{Óú<´«EË»ZôxŒ«aφºôã« B(CdBB‚pÁÈAH€„‚8ŽR€„€dB †´(€8’Ž(ˆ"(A&*¢pAÈAH(ˆ#á("ŠdBaÃEB$°T’"A‰‚˜$‰ƒVB@‘l1ÁÄ‘HƒÇ![ƒŒ8&˜!F+ÄŒT„‘Ap¡SxA2˜,qÉQh’Œ4$CÁ&–k@,cÄL’Œ´" ˜#âãŠA‘H@â!dB„&‚hB`‹!BaD”9aD†(dˆ&Ì‚$C+ÛA$FTÁP&p‘JBháH‚…dB!‚a(…„d‚EI$æˆHÆ$ƒ@h?ò>$fD€L”!'",c$D"i$H`Á*"ADH$¡4"B"H4X$À(âa$¢ˆ(„"$¤(-$@Ã$8Bò÷WpÂ'“0!-Dá.aD")#"Y„„À„#Â,2€"¨!l$R,a„ "€Â’‰S„€1H(E¨". B¸"A‚B4HÀŒO!¢$pH¨B2L95%$rbAH"#2fu"2"$˜.A( A$)L"d¨%ä"1((b)IHƒ”!"ƒÂ%R‰*A<ˆ16"" ‰$ˆD"ND¨)Až(L‚‘«L"$_O" D€RDhB‚ЄÀXˆCÁ„! A…¢& ($%((1B(FÈd"@"J€r„"FVø!V2I€"BJb(H D&$hƒ%‘$H!D@1(¨‚V!B˜$A@Fˆ$bBð„ƒˆ(Œ*Ÿi ”ñ"‰±JÒ$4CX$Ca,ÖH3@4‚'81‡!‚(Šq€d"À€…4.x‡#šdp‚Bá!B‚,"A„„RAˆ„FˆÔ(“B#£ÄF#†1A©…¢"CÁ$†ÆA@¦B6Á1&Æ/‘!FˆD&$&:„M(´3*HÀ`‚ 8à"(¡(AA€øHB!NR,ÿZ(,–H!J"²(” ^(@‚(ÀD2ˆ£˜„A‘CA1-j8£À$ÎcÊ‘L$0™4ˆG*AD'C!BÁLDr¤!P„$B"'‚PD ÄH%$ÈL 4„#˜A„`¤( áA‚’h%DÄH&D AP!ðk¼C¢ T‚"D,„¢ÈD"$@ $DÄ$¡Š(„!(@dB0HA0D#ˆ"@5`RD‹D$#B‘„d‚IÒD‚@aDbt‚’D@&J$D)a@h¤D'*THŸDD)0AP"HœB¨!EâA‚„NA0D¤Â@ò*]p%4((‚$1$p!ˆˆB"#´’ˆ€¨$IHA‚Ž’•‡ˆ0ˆ"D€FBDB‚.$‚`$àt7-„Ä"¥¡A/Œ$Š"‚lBANa* •4BðH¤C\È%T¡`""ŒBŒADTHˆBe˜ˆÀ(D“tTB#¡Dt¨!'A@„Á$A!’†˜ߨ P1…¤!E¢!!AD8†„‚HEb@¢‚@BBF*$!dH„CÑØŒA#ÒA²$* $!Ü"Ó24$BFb$"F"!¥(!!ÐIä„¡B$dAIÀ˜!ÂD(Aˆ$ÈÍ"€„’’„%!.ˆh(A,8L‰)†ˆ²„–&OJÊH‚‰L$ú5d “HGAƒ9HE1HEwHRNA0d&¨H„ÇB$È!pZ†A&É$!&„â„A#4&&$¢B!‰¤ ‚€t‚¤ˆ-"ˆ$ˆ  † cx2ÈFަÓGDB$$L*D"@ H"È„AD„…Ä@ EH„„"ÌT&Á@‰ˆD8‚@È"@ütR„@ D†qD,‚D€(HA"XdŠXFD"@D„D€…„@@„#B$)7`o&¬U&S"kTP&%¤$MAI¢ˆ‰a…¤T".&²$!b£CÄ8 ‘‚àDrBåJÒbâX˜BHÀ$…BrBB‹¡LxD¥ºaØ&(1ƒ1('¡©ŠLÒ$ÔLR$âTˆi%ö4J/ÃJQ§LŠø$RýÄ‹RÁ$ACrE¬ÆhTFI4D%†ÅAG44ŽGTÅÛB8$+$L*hÎŒd„AHGBCb‚¯HTƒ‹BPˆ_ôœ4’šdoH"ñ̰„Ñqad„ÅĈ62ÂO"è!IH2‰è1=•SF„%ôB!1JE¡!7!(Ž"C™øADGBKƒ6aBBˆ%ĉÁ‰ˆqH¸DÒ("HÒD-&.ÁgBŒHRÄM$GÁ,܆‘‚E˜$!9Á*tŒÂ„EDdˆd†Â„‹HMˆGB„À˜+‚„/ˆœ$,ü"Z ØJøáqðusNiÏgåÄôXQöyQO‡ÿMg_µ5ŠëÑDâ„¶HüôXÏNôñxD¼BäFì+S$OÁñáa¯ÃQωñÁáÏýaáÏäöYQobø¥(O*øFj/fþèî/júíKNôïÆÄ¤Ï§­1ïFôÎnßnì´ô\È‹m_Jö¤a"úäéïjø—2gko¬÷hèoïõJêß/÷al¯GÔLúrøïF¾¢þ¨¦‡oï1Åèïo²25Qvwöm~o%ôHZ?µôc_gõÊ]u÷[¬oBù$\öMM_NýxÜOUý]i_F´tôDoiêBñ<ÕíÿÞÁ?„ñ˜QÏýøE_ÌôFwÿïz&æ&ú¢eÿVöçîë®oú¶OôdlÃô¤~ï-ñ2noäülïo,ôKX„ôh­Ï†ú齯ëÿû¬oHù²´oHüúènÿÞÈïÞÿveÏÆvLø¨ö¯ïþîê®îoêûÆÂ¯¡wú¨þ請ç·Iâ§·L䕵CôxyëuOϵüÿA¨+¹Šø¡!OƾXç…ÿxÑ/Æ´(æD§“ªø5¹^ø_™û„ˆ‘áõq}Nhžüzò_¬¨ª.¢öiA«æJºêü[a‹F‰òjdJòèâOFþéBߌ¤Uz¿!òí¨ŸK»ñÿ1˜Šú´äþèúïŽüØøÿŽþzi†„úäâoOÿd"®ìëØËX#ä‡ÿ¸ä¦LˆEÜXeŲ2ò¨$Ð(±ü)t¡?bqB´Cñ!!AÅ¡%ARO!¨!a‰x1÷E&QDA$BußP;B%˜)m5Ôh¡ŽMdˆÞ…b–K"‡‚ó#‰³6Ä&‚Ö$ò"‡ÁXJ,¢‡M‚}"¦ñ#—HD]!$]!á&bÈ)’#x¨Ò.9L´!4(‘I9äö1b­O²Òƒñ"&Aj’…_²Ch&DCÃiO2Xd.ˆ¤.Êwµ™ºA|wòFho†øÃ4Ž’#˜mA—{DŒDEQa¨˜MgÔHØá„”B]INC=E,T‚A#ôTg(K!ÆD µBìD¢ÄƒôB„+A‹$gà“æsrdÖšõA/‘ö}/¯‚ÿ,V_¤·8ø‡.o*á,÷5ÃO|ûã²ÿÿ÷(å/F¦æÿæÿ)=¿ÂòÿM¯ºÝ¨õ¿ÿóò_¿ÿ¸1ïwÿ¬¤w*K_űÝùÕ%ùÛ^ŸTþcHNho÷åE÷w?ÿ%“?”tLùJcf¿ôޯ̞<¿(q„öAîêõDR_òùÝvŸÄôWDôÍtKÔx¸zg“‹Mm’˜Ï#ô¦ëÓÔbö/bsòTBµú3'ÿæó¬v_ròë¬oCóæ6/Jö/oŸûú§µoÞö7aÏÒöue_þ÷ô3_bò6åßçÿß[Ÿ´ñÙ/w÷twŸþÿt~/Ïû´¶/íù’׿õüÓׯUõÕÛï—ödeÏöí÷ÿŸÿuwß7÷õ'ÿ¹ôAB¿¤ôagoööÁO¿ôôo¤O#rÖô†AïVöÿå?_ø¶Õo•ölEOVôåËo½õgêoäþlþï¬õJª-˜ò÷ï^?çzû‰\>ho•ôX»t?‘õyh?ºwû¡º+º>dº÷a<›÷Ëîþ:laŸ†Æ+¯Ëòš¢öÞJߌõ‹˜—ÿøò[ÿúýóت:¦LõRR^T/5õXÒÏ•ÿjhÏÆ¶i÷qtGöb2‡ïÒòÏHƒôAhïòaÈÄøØxŸËª›T/=·$þúâø¥»GöHH_öœò¯G·èþtökÔ‹˜/ŒÿHwB-'?·÷lr¿tûSQ²ö;mσúñ7.4O*û2¢O[ó&3O6óãèï;øhhG_Ööm;¢K“o;÷éÿßýH‰¯‰õy-aÇŽsÓú„2O(ñE:UòÕ…ôáÞ%üiL„¿ÇÔÂø2-Á¯CòTÁ§>MaÅá8wø„2EòÁ:[ÎZlñáž#ñaLˆ?Ljø2„‰ü:¤KÁ«‰¾ÈœãÄt¯ô8|¿ô8\¯1öo8µˆûÅ^Žò†^†êaø¨~–ø>ì?§ù8¤/!ý|¤/üx„/!¿,úþïG ‚‚äRÂ$ƒqAúA†"A¤7IŽDXDA„lRÁ&1‚A¬A!Q!ȧ‰ŽR³0dBe€Q„¤ÑÔ¨"ÐA‚ø$ŽRDÐB‚fBAb=]XP´B%å$b!FQ$IB2$›4$ƒ„¬a1„F 7Œ þB8I’„#ÒH¼&A @Dá8AA‚T!„‚˜$€ƒF8B@”JÓ(R‚‚Ñ‚&ñ‡2ð؈$‡$B±$ÔaaÔƒ$£H·D2„Q¨H¢ÈËR(c"Ž‚”(Cuă4$!F!´‚$ˆDHŒBAB0”+B,.!$ô#6³ßEABlF±BdJ1DNE‚@•@‚D@”!"¡µ%¸ADRA ÈH2H$KB„CbÈ#2„ƒX‚‚0ˆÒ¦ ‡XD…È!ðAbB!$áB„c!B0(HFhB„"-‚FHQBªQˆp4‚P´*…Â8G„€C&A˜R@¸$2$D@èB¢hAHÐ$±(TAB)QŠ_ô4¤!‘Y!´H#Aá"#!q>4H (o‚˜"Ro„Oa"q$]%€ØBb)PMR-0(0¢Aƒd‰2*C<-"€…‚‘$%D(!"È8&uHAD‚¸4ˆB"aˆ$(F|Fq(„T(28Dp¨,˜)q$D8`B„L”A%DJ"ÿì $@JDFBD@DCDA@‚„A@‚A!€¢@„ˆ@‚ˆDH…H"BÁ!G‚hŒBrI…BtH˜%p1…ÄB@ÂAÉD‚a‚ŒÄD)R°Ha"A@#q)Æ"$1‚‚DƒH"R„Ò,‚X(É+*Äïg€„€ HA D-AÁHL@’AH`! ’D@(°BB"0H$‚Ф5‰ 2$@%rÁÀAADBÂA@ˆ%‘H@R"€d" !)‚B"!E!JN"&…†8-$Do$'BAƒ0HNAIÒ„‘DÄ@(2!Tƒ‘IRJRŒMLã$F FŒd„.A%È2C³4‡ƒa,!!¨8Š-YŒTAh”„ˆ!ðRˆ°$!Á?óK1D¡DB‰Á",ƒp!DBH‡B¡HHÀZB‚!UfADÀAƒ)RHHX"‰±„‚ÂàDFáH!B+B!‰D"hÛд‚´b@J1H¢!E(@qD@2r@(UÄIbAÀA(@ BG‚AB¸B(‰(‰8‚ˆ–Ô$ê8¡„‚I(ÈˆŠ˜†’‚Â;¨B¡A)4H@1EE!FHñaA4A!a&tB„E‚EA$ŒA¡F(4A‘BP"H) G„@q!¬X‚ˆD "!ñ„¹$J!!$bDD€èFÈA DÄ20A``\QA Q‹b…EB”aB D2aLaR 4§("! $HN3JôH!pBT""-ã!ÔÒR$AÀŒBjR`B!#*K!AÀŒBjBaÂ!3 !I–€‘$œ(„&$áA‚H‰ò<ÁEAÁ¤„Hp2|2!B,A(A¬Ñ¤A@p"42#.ÁÀŒ@H&dCHÀB "A$Œã„$Ü'‘H/¤DŸÅa}AC†ÂH,Ñ$a¤BF$tAátaÅD'FRH&“d£‘aaEÁB($¬¤FP&Lt"h°”im!< m"AA%:DF“\DÌF>E1 BŠÂb!Ô*üxDP­M”Ô6ÄHŒÁH&lA#!t3:HÅÓ$Á!,Ò´Ó„QHAÑ‘q2dÓ©DWAoS´”AYÄAV(Ï´CX¡bD‚ñB&¯ˆÈ,(˜‚–ò1ÃÙ–tŠáF²ˆöŽ2o(Ah¨ ŠáL5Ï1VqB%r’8iQ!ƒÔ$’,–$Œ$r!'b‚HA9¤a'I4Ö‚tI‘”®4ozõôxÕÊ÷Eøëa×RŸÖö„ªë|ÏJ}øìçùÆX‰}øè…©êƒÛ1ñE·µNZFú[Q¯¥óu_~>ß$wwt2ô26MsÇô;U¿öô!m[dÉòdDnd5×$óE¿µÕ¡Å¯ô[zÏrñhvß´7'C/cÓtw2ý~A¿çõ!mÛ$ËdßÖäÂò_6d³zôZY[¯%ôXxoòõ!?ï,ûõ„¾†/kû†ò_Ûøø‡¯Ïý¡®ÿÖömLîîÿÿÌòïküؘ/¬éŒý˜Â¯­ûæß®p2ÄA¯CÒ´Áaëì(wMè(ôÁ:A¬î9ƈ7Çx2ÄÁ¯S’Ä£ÁáãÁaÅñˆsׄŽ2A_¬ôÅðáž#qaŒxsœ'Sü:$MÁ£Ñ>-aÅá8wMè(S$¬S$¬ñáž3qaœ7Ç9x2„ü:$i<èãÑ‚1¤-¾ÿQôzïôj¿ön>ïön>Ï8÷~>O8÷>6_¬÷?O¨wïêwoìj÷e/cwü2öïSôzþïôzÞ¿ö~þÿö~>O8÷~6O8÷:2_¬÷{;O¬÷{î~÷×î~߯ørþ÷Ç/çÿ>A¯çÿAÇýaÏÇÿcÏÇ÷ŽóÏÇó†óÏCóÅúß×óÄúßÇñâþ×Ç®~ßÖø²ü÷ǾüïcôøüëAÏýbÏÏÿa/MRˆMŒÒ4S„&Fhb'&uxaüA—B#ñ($a‰²¸ò„Ò$á„Ò$á„Ò$sDèba„.#aB'…Æ/4(+A‹"kA™²¼ò„R‰Ò$õH(,á„Ò4sDèRa„.VhBVxaît)¤AB²”(KÁ«!O(‘)IñH(Iá„’4g„.FèÂ>wˆ/Œ)T A&a#&&T1($JR„LÂH(ABBIDG"`#DCVHJ'T)FÅXЂ‘AA%2$K‚,(c$ƒH!…RÁ(‡DbDJBd„Œ™"W4ŸV!’,„Ä*bA1,ð"(Lð$(€4dÀ0D&!DH¦"0EA´uB HSBFqd1,A²DBDK¢°ÈJRAƒ8$L$‚4t,aˆ#ô$m#ˆHáFDBaB+$ &)(¡B AQ€DD¢Ã X XA°&ÀE!H†MऄD‘C„h„‚‚A`DDДèH B…tB'”ïA¡B,!‹ELA„Ô(8„EèD!FØ!A‚òDk"AƒA‡FÑ„%#”ˆ0D*lI´"L’D‘DB$¥!H„A.BÃAdBMH‚o"U0DàHQJ•!ÄEAä„‘B‚„‰4‚‚1A„@AAˆÌAqXrDHÄfiF8’L¨TCRHLÍAÅq$á$Ä#H(Nª4" JBˆ(C¡À"p( $fÈG„&( A‡b€’Dƒ„”!Iˆ„ŠL‚@B(ˆ€H&ÈB#D1¥$ŠX(IC"D‚ˆQDHƒ(I@AB&B(F B‚’DP"ÀZB†APH€&Â$$ð¯8Ä*‘X2 ¡FC‘Bˆ*µ( ‚QLÁH@ˆQ$ !‡¤€âˆ†dEBp(4"’ŽHL!$‹A‚Á¨A€¡!AŠòRˆF,ÂDdH A«AÁËóD$ ”(À(€d‚ Aˆ„t(¤A„HpL‘"Œ.€Ä(aB„J2„&4XB2H`a8ƒ&Ô¨Ap(4R€‰R$EF,H¿3@¤"Š!!D"C èaFD €N(  H‚B))€H((DÀ„ ÒØ6ÿœ’I†B!bB ,$¦]$B0‚,âB$B$"¡(MQ$A¸JHD$"‡‰Š‚FHB&/é ²DA ˆ’PB€AAÄA€D1„ÀB(‚(‚"Lh‚" & .fsLdQ&$¥ FTRÁhI !iB#+D $C"¸#(e‘$°aˆÁ2EQ$ÑQ"H`0D™‚$2FˆÂ*ÂD((&¤B¯ (BFaD@’"A(H$dFHD#€,$@‚B‚’A "&€DÒ„„,ˆ¹$ˆx$ºhN„0¢0‚ŽB`(Œ=z!$D€AáFaT"Hb4H&+D BX€A%Xf”f„.DBH/BEá!âaÔAQ¡ h"¦Dƒ"È„%ÈD$‹‚,ˆú„`DA2D(3Ä"A€)D’bA€ˆ%’‚‚€È!iˆ ’(C †Q²C †¤„1À¨€Ñ’"(„(G´("$F"h*NÏ#”D?A ˆ1(Cˆ2D$‚@F8A6”Ä`8"¶†B!#8ˆÁ$‚„Œh‰t!8ŠIÂ"UŠR‚¥!l„"Ð(’¢,"$!ÿïGB’JaBf!"'KAŠDÑÄBdhÀA&ô1D ABR.±ÁRD‚U‚‰²Að!&%„R³,ÌD‚T‘‚)(FÀ.ÓÒB(K!a€M!&€’$A‚!`4'BÂBŒÂ(A$BÇ$€T(ÿ‹(@,HâdhBˆ@€‚‚(KH`†&dB%€À!Á4P„@"D@„HA$a‚P„<3uE3ŠÄ!IrÑ"Ô#rF2B(I1DIxaEäáB,Bv$´"¤!CD!EƒBˆ-AŸâ,Ñ„Y2¢ÕL’(†‚gŒ‡¤¦[h‡DbÄ-HÜH”¨m"‰IøòáðD"`ÊáBA¡„.…¨ˆ>„¢cQ(&ŽŽr[(Cì8±‚dÊ4H6ôQ6$u2‚uâsv¢Á Dà%‘1„“’=5—!N?ÒˆØb„z"„âÚQ”„(‚Œrèˆô$*eBQ‚P""/d?E%UV.„9T$Ñ$…„„ñA!ƒ9¡˜JXAvVÑ!Ä!E%‘aW("G()2„¥(Ea1æ&äB¸B‘!Â9–ÈHz‚Ø’R†ha&S9a¡7–%ñH„—F~cÖ!˜!,šCLŒÔ(œ"[Ô°Ö!sdö1GŒ³TòAšôâÖ.4u"ù¡Ôj—µOøÑQ.d{$[„;/OÚ¾D÷vG/=Œ­tI¶ÅääwíCò—+?výr${}o-¸Ññá%6D;]?N÷V²Ý³ÏÓôú«•½±Ï!öY§8.§B_ª¢*vúj._’ò‡ÂK‡Fm)MI?ŠôË'o¦º$ú&D§Œ„Ø"ú&bïÜ(Òbô÷WRW5Aõ!$OòµG7s?$ù‚2gJ>ENQ/8ºÇúÕá_CÄAöÅso_tQñQñ_f¼ÃôQ_ýa¤_öåõS’/!óö¾W;Õ/1÷×r1ÿvEüAa_8ÿôW^“¿•û_/9ñ›Ÿ%ùy~¹w½£Ý«8"onò¢e¿¶úëcÿ¸ö¯‰÷–ԙö…‹ÏúòJŠ/¦úfn‡(-‚o¤øbO¨òÝe$O7ñ3DkcO$%õAåFífû×1Wo/JéBû”1Ogè_éB¿Ô¾öeDnd_¾DÿôDþÄ~ô_­MíüaÄ~e{}_OèKéCóÔa_Oì_ýqäO¿VödDnd_5¿Dÿ4UNùè•[ÕRé,ù3Õ.$K(ßÌø¢¤&ô¦)_Jô¢Ä—FO†žNOBäFòdáKÂMd¯ÎêîúDȉôȈîˆn‚sÞaòsA/õR^Aö5UBûÄ1WJ¾”>´O÷¥„?wõãT®¥_ÖödDnw$¿FÿôE/1½AíµÁþeÅnöO-ÿ÷/KáCû–ò__õòV?Wíg·W¶DödE~·W»–ÿ¶V^š/ùØÚ¯õZ¸ÿgíÓú„ªwÈ'j.¦o(úìlŽæFèöÞ¶%vmíîÔü¬èÏhôh¨/„øÂÊ«H„øl†Ïü 'C\ô2%MA#ÁacÁaEã8wEâ(ôÁ2A,n9Fxs„x2ÄÁ/CÒ<>VŽsW$Ž2A,S%,n9Fˆ7Gx2Ôü:%mÁ£ÁáãÑì8vMè(r$òÁ*CrÁ îsaœ7ƈ'BȯB’Ä¡)Þb7¼-voôrv/äGõaOG÷aOO÷…óOOó„óOKóÅò__óÆò_Wánuåj÷e„/Kÿw„¾´oSìOûÁþ”?þä¤þä$O8ÿô$O8ÿ´$_,ÿõ$O(õõ¢öWG®v_Fø²ôgèJÿ6ÅNÿÃNýëÏNÿáÏNò…ãÏJò†ÃÏJòÅÊ_ÎòÄÂWÞn~eìnöeŒ¯NþgîäíÆÎÞ.üèÌ©þììéþ»×$ÊÂJÒ$3D.B.”R.„RFèäB¨A.$KA¨KÁ+!O(‘#K(O‘"OäZ®„àbfÈA.†àBÄ¢I¸ò„2„+$GJ²„2L¦5B®„àr8HÆÈAŒHlšDªIœ"O(Ô‚²„d„C脲„rDhJFø¡ú3„¢B‚F"2T¦"2.˜a$MA(C„tA2ÄHK-!CaB,ajaB!B’D„2Ôª$E1R#qA…âd"hJ!DFô‚H°¢T„4$p&à„tAa†#ø_î+ˆ (`4Cˆ!#ÑA9á"„DBŠHc¤!Q!‚,ABžA%H1$"‚H‚HNˆ@"JR"!ƒ€HÑAU>s^ƒaõQñt[SŠçEëA±5¡8Eÿ‘TK_6ñ1rH´G´e¬}]ôtÑ[÷eµñôRÑ;eKWKOÞqÞ×{;ž2?]ÿRV_?õõÒ5çL´g´eüÑr?Mõ6ÂÿóWë±ýKË[(ò‡bªb*jþ!doºò䣺âÂö.!_†òê*Jö$êsrfvˆÈÉ(K$ÏZ?~-V#±1óQQõ14_ñ•eY·Q©OIâY÷Q¾‘W7_5õVe.AôäS}·CýqÑ_w÷ÑS?$ýWÓ?VýõQ_l÷St;µ/#ñÖ/q÷QÒ/õ÷QoýWdNÁnAO>õÖw5ý3ÛßãûÑ[?ýÙŸÓÿµ_ÍÒóò+ª#òä$.g/þ"!ÿòl«ÿÖæòA)Ͼú­o›â/¢þ&®,„Ü„ìºìòÖŠ$~7;U)÷TSJ¡QçUÿQK;_OâIëA±´÷u¤Þ5t[—kCOBöADo;¹tÿttŽ•/m¿ùRRž‘zÿQµ^Ôo*òÕ¤ž¶>†O÷õäžô^Do¹wö%eNDO½fÿd5ÉýöMØZñ‰ÙßÑφoòÍŽ®¤.„:òä†/Îú(ä$ºnòE$.lO¶¾gúd$¯ÊÎìMȃôˆÈ.ènSÉ–/–rSñQQWOQö!µ_ùÕ4Ž´>´Où”µNteçsõwAOòDent'½ôýÔeõ?­ÝÞQÝOUÿ1õ_?õ÷4Ž6/a»¦ñÕuÎ6/uÿaötdñEdn4'üõ’OM÷Úø?±¼Ù¹Ñôø˜ÏUúy¬WŠêr¢äBú¦c_Jâ|ökí/rôl)OôMdz²O¸ìúìf¯®Þ¢üˆ‹LŽþ$í¿½ 'Cô2$MA#ÁacÁaAŽsSä(ôÁ2Q,ñá–#qa”7Gx2ÄÁ/SÒ<>VŽsSä(´ÁôÁ$n9Fˆ7Gˆ'S-Á¯SÒ<>aÁŽcׄŠôÁ*A¬îX‚Fˆ7ÆhBȯB’Ä¡èáL::-öoôcv/äFõaOF÷aONö„ó_Oò„òOKòÅò_OòÄòWGîvWG®v_Fø²ôgèJû6Åî´oìNùãONûáONò„óOOò„óOKòÇò__ò„òW_®öWG®v_Vø²ôWèJÿ6ÅNÿÃNýéÏNÿáÏNò„ãÏJò†ÃÏJòÇÊ_ÞòÄÂWÌ/n~EìnöEŒ¯NþGŽîäíÆÎžÎΜêÏÎÞüc„$JB¢$M#CdRB.…B.„BFÈA.„H.$IÔ!šÄ+!O(2„(G)²„dZàZ.†ða„ô!„àb”¡I¸ò„)2„J2„‹$K(CdZB®…àR8HÆÈA„Hì˜D˜Ä1O(KHF8„F¸„rDhJFèø8舂b‚ÞAh&$äBè(‚Q!jŒ’ÇI„2…2Ä(‚B‚BªE´!ÔA(ƒ(ò„*¸D’…HYB±¤A’Œ´ƒ2BƒH!ÚIxbe"L(hBô"…BéÈAM!HC:CHb„#h#8CpCý¶þ$€!(N%A†&$óBp"&DF„BBHDAFP$EaB&4E(dpÈb„$áA2ŒBÀ&A‚äbDHÖ¤$@tAJÄBƒB‚d¤¼8bˆ)„&4‚@1D@‚Í!RA€C±Bd"AH@D„A!H‚d J@b,‚¨„CdDFj„ ÈA@Ø”xïFA†$„„x„b(@‚fa[BB0ñT@á(è$CE‚ˆB&( "Î#LIÁH†‚Å%" E8B@4H"@2HKBÀH‚ƒÂcsA$ $Ä"[!"K!$,DâA VDH&±"a$EH$HS"@Ä$‚ˆAA E!dN"B3™H¤°AQ!Šˆ)ýdáKÿOU¦fna_>ÿÇe?/þár_N¾ÁôÓâÞSN¾õöwä/_þc²ªù¤¤/[üãóüeá?ÿueþAAO<ý×Å?-üáû_ÎþØA?-í½õáíÏöïä?Þþ몮¤Ž„oXüÏÏOÜüÉáï>¼eôDIÏTöíÃ/þÂŽO¬îξÌüÂâÎÊî­ßLþâ´Owöq$G÷G/5´Qòs2Vï~ÿö±Oú¢¶®¶kÿo[îzÿÁô[êoö$dFþ¤ñO.ÿô¶?]þò¶_<í=¸Óþò®¶îök»Oú¢¶®¶kó_þ³÷Îö_>¾ödDDOü…ROmÿúí/ýê¬ýØ‚¯ÌÿâÊnþèïø"†GhÿTø†Dÿtü¨Ên«©öiA‚ôeènôHâ¯ÎöâêO¬ôH¯ŒôÂÎîÚ2÷Vg?'ôSRS/ôqbC÷á÷O,ýƤ/Kù’¶O*ýç¥/ÿñÔNþtaK&OVöá¤.ÿäâ_üòâžÓ,ýÒÁ??ÿÕ÷vÿåóFú²´/kû¤òoFöòõ?fïNþu!OöEEÎÔ<ýÄÂÿ_þûú¹õÁÛ¿õëëOüöéæßºöï¨/Jò‚†O(üÂÍï\üëŽOÎöMeßVtmüäí¿<üì¦ëîïæúÄÊŽŠ«È¯æüäÎK'CA/CòA#á6ä87EŽ2A,ôÁn9f”7Gx2äü2%MÁ#ÁágaAŽsSä(ä,“,n9Fˆ7Gx2äü:$O|á>ì¸vMè(RD¬RD¬ðáŽ#raŒxc¨‚'BȯB’Ä¡èéÂÇ#ÛQòGWòCW/öu%oõu7O9ýg6O9ý&6_=ýg6_9ýGzEäj÷E„/k~Wô²¦Qôò¦oõò†?÷ö¦oôv6_9ýf6O9ý&6_-ýg7O(ýG¾öwD®v_Tø²ÆEñ²†ïQôú®ÿôúޝöî®ÿôn.O8ün.O8ÜjòÅÊ¿äò„Ê¿¦âê|kéêôi¨/ê|kù¦Ž©ôꮩôꎩöΪídÞ‘$q&CCsAÔDTDEm#ñ„P$P4Ð4db@BrAÔDBi8O(Q$„ECØ$R„&FHBU‚Ä-A‘!‘!…”‚±†RH$…HBÌ"Ehb„Xc’!À‚!0S‚qˆ!Š1&n‘aB{8(Bàb F"á‚^##!˜ŠKKD" Dd8Ð(hD#T8°-2Fˆ(‚)$Ø‚&„FÁH‚D.Bˆ£ÄˆÈWéàJJA!†¢(AŽR%ñ‘DƆN"'EˆBŠC‚Ò!1 a(¨CŽ(€4…,B†±ÃcD, †š‚"`(‰Xa#„x(È‚Àˆ].óD)($cA"ECD„A¡BAÀA€$I DA%TAˆ!‹D D!B* bHŠDHBHÈäˆ …ôùß$CÀBMa,CA",’DÆ20DbB'@Ð4¡! Ô(1°4Ø(D‚$ DHB!T„(¬…$D yà !@ D}UC,B"46AA‘$FD„1BHà$¢8A'FA!Ø"¨!Ô(XH¯HÆ"@$xÂHABxDLÈ„N"„ÌȈ$Åät†V„ !$A@A($€ADA@€AATƒ„ÀBH!(`„0!@F-C‡ (AÀB,&8@$"‚DB$ ‚3€F€BAELb„`$?ý #´‚#aA‚€DDTCdAA*4DBAÅBI1"Ž$€’!ªheÑH”Bb¤E‚†"šL`f‡H $¡'BPH-V‘ˆ4AÁ%)ADZHQ$DBQP"*” RH!‚ƒTŠba,ˆ‚.D„!`€D/i "b$LA@D(A6)‚€1(ˆ"(@ $ ˆ…„H€„BÂD$‰DXBÌÌŽ$€F%ª£‚0T¨&aUТYÂAàL!(Dˆ(A.…aU‚`!A‚D&$¨+(!À¡H’DP!™H„‚ŒWq ²„Q%B¢D%$1$ ˆ!”4@€8 ˆЄL(A‚d$”@"œ„Hh$À‡3ŽÈ$&…;%.A€±ƒãJ! H0E%²!!UˆHâBÄA@$›$Er„4"ErÅÈ”ˆ (K‚‚c²T!$@„% hƒäˆäˆTBô­†€A,D4!‚!0$N4 ""Äh‚C @ˆD@„ˆ¡!€(D$!@B&€BƒÂÊC`B1B1ˆˆ,ˆ<Ðd@""¨¦#ˆ!hKL T$(AK‚D‚ TŽ ˆAŽ‚°ŠŽ&€¨HK¨‚«ˆ,¤ˆ‹È¾¶`1MAOÄEaA!6A411‚:O‘MB„$áb„A¡AF$ÔB¤!KAF‚!ÄObd!JLXmDQh)4!È&‚$"B„(&„Ó¡A B€”"T¤O(š²DƒhF,4!F$¸Aˆ‘&¤‰9ˆ¢‰(KˆM‚Š(²H±êQ‚‚’1âJÊ!›è*²ˆ,¸ˆ|"±¬,’hCb".D"jb‚ĈF,D)D‰'‡á$ø¨A$ÁQHH%dB!îD(%eb,IEa=*áB¡8"C)‚A2A(%Á„Äb"ˆ"G(( "$ŒBXDƲBÒ2öq"¡Q‘3SeBŽN"žÂYcHAdQ/‘+‹‘¢{!(M"$Mƒ&D(RBXbJq)R(Øh$Fbx_²bH_‚2&ÙAr"ÜQz"¨è‹"©‹Œ˜ˆÏ"ò¼ºE²DTCÄ‚J4!t!!÷‚"†„”‚-D+(aUñ„c²T<„^‚$N¡[„‚JŒœAX¦4’DšƒäXÕ´²„ô$Ab*ÄÁ[C´¨–nˆN‘^Vá”êñc%ƒÔÂ(Èh¹”CAI¶‰„œH.AŦ„BC‚ü8Ç!w#¡3¦98D-G$Y‚¸Á!Kaü1Q,ÌB"H‚t²Dt’'AÕ&ò…B¥Í¢([®¡Gž&¡(„ +±D-”)JáK±&ȃ¢Šò¬„(LÁ„lJ(pb x*ôŠB/"´‚dµzôqwO7õrTõQS~W/WõBqKôO)ù³”k¨OÿÕÒ?_ýãÅ??÷DBnDnÄ;ý{ÌYízúô“?[­Ù΢Oýòukü_÷´’?K³²û´qO*ü“/MûòYfRN¤?¹'îKý9·ßÿ¹íÝ9úü¾=m/Šþíéjø‹$gJˆö¬g¿˜òç¨?>ò!FÏ‚òd¨?ú£äËê"ê¾È†­Ã¢oŽú$2ÃÑsõqWE÷UQ?5÷QSG÷uU;u÷×’¾”šû’ñ-í_í_ýÒ×öEAVôá×/ÿöÓký‘´_ù““_=ý±Ô_½SüÒñ'éK©·oÿwó¾µGûò·ö$¡Vâ~û“qo;ÿ™vûÕ¿9ý™S[ûñ?“þ¯¨ÿîú¤¤®¬oZþîçßZøe¡¾ú%m›"n!_¾ú¦éïjþ¨b‹ªÎJŽâï(ü¨¦o®òEÂ$n6÷R2_%å%ñSQ/4òUrO%ñsôGú–²OaùòôoKþVòO)çwý3dOF–E~Õ¾ÖOo³—ÿ’bO,í-ñÓ‘/óÄòOoùòôOù¶²O)ù³´oOûö³_+ïoÿs$_F²$îOÿñ¶Oïû·ùÿ;ÿÜÒ½ù’ø¯{ÿüúO®øë­†ò¢¦Ojú¦¥ïÎú殟jþìê†òD,BôÍèO®øÄª+Ê«èϨüÈŠŠ¾¨þèÓ“ÊVkqo5õCNR/ôcVr_w÷5W+=k¸o+ó´Ö/»Ç÷׳OO}täVôA!ONÿ÷—oûRño=ýÒžÒ/ý“Ò!þÕó_{½Óº¦ù¶¦Ozÿ³±kÿ?þ¤µ_WâVöaaOJûö·þ¶/ŸþîóŸ9ü‰š/ýúòŸ+ÿ´®Ïüúª¤oJú¢¦Ojþ§¥oÎþÆÎJúl(O†ödmŸBúï¯î®/Žþêè(üÈ‚ÎÈ®þŒÇ¿ü'Sô2$MA#ÁacÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2%MÁ'>ä87EŽ2A,ôÁðá–#qa”7Gˆ'Cü:%MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ îraŒxcœ'BȯB’Ä¡èáŒ6÷-¶oSôb6ôb?öf6oöf&_8÷v&O8ÿ6&_,ÿw'O(wçjwäj÷e…/kwô¢öSôâöoôâÖ/öæ¶oöf&_8ÿv&O8ý6&_,ýw'O,}WænWån÷E…/oWõâöïQôêþïôêÞ¿öîþïônnO8ün.O8ü*&_¬ük.O¬|Kïî~OíîöM/î~Oüâîéôêî©ôèÌ­bÏÎÞ>´ÝB‚R$(M"A&&bB!F-A&ò!$a(i¸ò„R$JR$JÒ$2D&&bR#taÔTA)TAi‘Æ#ñ„RÐ$d„Ec„M#G„&f„t#DuBxAÜ™Bi˜Æ¡O(Ø$tHHb„M"G„&d„ÔS‰¸ƒ$1†Ä$èR$@ÒDa(`f¦6AAH„)Ä„=ˆ)-HDp„l,’$a)@D4!#ZA3„˜±!f*Sh"AŽ"E‘$&&Ä!Lx#È…­AD%A˜‚„×Ížp‚#‘A°D'$A0Ò,Â%0†YF1Ä-„!ˆA#ÁÀDD+($DD#Ò!#IÊ$%EÂÁ0$³¤B4‚$CjB#È!Q(!LÕB8j„E$‚HÍE£Å¡F$(I1D€OA$FTAH&BÀ €¤!CI!$$D!XFJDd’`„’$ˆ„ÐDBƒЄ„…%¨D h’ÿC%€’‡A’$$€Ø‚&b4@±& A´!FDF‘ˆŒ@‘D¨"A$‚*”J‚ VH$0(0‚‘hiäÈ=LQ r$A‚!”$Є¸JBAä2A”AB¤¤I¢II¤!AN!HrA”NdŒ”&8D"A*H‚ˆ(ƒD O„Šh(Bh¢¿VF#‚ $dQ(!D€B@$BH" & DDAÀF‚„D jBA&BŒ„`ÂH€LÈ;㊘(Ap$`ABAˆ3A$€X(I%Ž0BA6ˆD ˆŠ’ˆ ’(gBFP$@F‡B„*HÂ$€ðAÈÀe€@¡XKJ Jc!àDJ#‘°AG$,LA"(àd! &`‚'BO„xBȈ h,† ˆ"D²¨€D"2B¥„FX-§“Ô!$` h0€!$&1HAŠt"$J\ÁB áHPæCB2$‚d‡ Œ(èh’H†„pŠƒC"ØJ„ ‚Hð2‰($„ˆ„A`A$E!c€! B"Œ%$±A*ˆ&8$)‰(B !!@BÈÕS AI%‚ADH€A!‚ *$‘"C¢(t$€ @‚.ƒ$…$Á"„ðŸ"€¤A(` “$ (*€È „"aH‚C‚ Hˆ€ŠA@‚ˆ`„B(JB€Â‚°‚"|<6€2DN$2Dca&AbI²A€A¡” „‚’„L²AA( $H$AX„H €H"H‚4ˆ! B„*T$!&(b, B¯ú2 "F!¦*(£‚*ˆ¥¡¡$B(ˆ¢)J2‘$i²B"ˆ ‚‚ˆ¥B€„¨B *N$–a‚$ª$„Â*ˆ‚ˆ”‚.DÀHð¡D (F$($(¼5C$1$A´…ÁD,AŽ6DfQ!¦„Ar!AÑ4HˆH¡€(I!j t!äBˆ,Ñ‘ÉD„ô(H%`#kˆ¥ÂFÈD.Œ$‹B$Áø«RÀ!Qp!$ ôB… „(#™$)‚ÂA(ÆJBá€È*(‘Ñ2 A(STˆŒ2AI2B“AÑ&ˆ©R„’(h((á,BbD(#ô‚:¡0"„€¢(€B’À„2ˆ€8@±`8‚C"*Œ`D€Bˆ(@HC(N" rBra(ˆ1b$Œ%!ŒâÄà4J‘!"q!¡‚C’H*ŠBF‚¡$°¤¢pp!„‚„І1Š €aI*i"FD’‚¢B‘ÂHÁ)$E(H"dBÌ<Í1!ÀA"AC@@D!!@¸A`D ‰T…‚‚D”$@‚„øXñ@D$$Ð$A@RB%1DAH$‚"`@D$AAH xA"…DDQA`„ƒHÈ8óFõA[BmaD%ôDH·áhR$TOLRDÑAÄDÄ+‚FB‘BAOQЧ<*0DO!!SVäB8L(‘Tˆ”DCHI¢,(4}!AÆAÈ…Ô.‚FÖBt(L ),؈Ö$ú¥·`$å8!c¢A8"A19¢áyÈ#VJñ„NNK" ŽADˆ>„À$&¨aI$¨XpLá„â”A4H°‰hB­ƒ,@á‚ÜZªH_R˜ŒÔ!2ˆ¡#ôD#!g¨BÐ81·!&Tð2D9”bÁ$IŽ$ƒ{adDà`%Ѹ"È9¡aGKD(KŠñå®DFe–tAeB&Ñ„h‘È©‘‹s˜bÍ*$År†1΄§Db³"$FTj˜ƒ+‚™Ü-‚)ô¡ð%EOsvd×…ô#GvoBõ‡uO\ùFwJoHóEÔ_iô&k?7çh´e´eüóq/H±%ü1âFòWüaCö¥QÊç\íC´¥£:Vÿ1e_±ä©9Hwd¡;XׄüÉÏÅñ©Q‘݉ö|ߊôˆhŸüØJ´§¢(?ìÜÉt­úìŠ*Ìt/ùmˆ¿ŠòMï‚ü.èçÆ«J­È©vnú®ØSÜrôµ†_A²UÑ#öCC_Wñ‡u}ddú4OHó†emg_[øe4ôeÁôÅS÷FÆ3¸1òÑžCü´_\÷Ad¦2OJãZæîòåOøUe.öÅ‘_\×þ‰ßÑñÉØŸ‘ù9œßŸño½n¿¤z"r†Ìg½ë·²÷ŽÿžøOm•yiyÌûÎo½Ê¢ØìrÊڪܮø*Žç®W$O'òFt/!öUBVÒõ2f_uî%ø¶4Lû†¶Gao[÷B´}ãaötÃ{c_FæD¶åýtâO'²Â½’þTÃZñÁÑ:þä^Ä[_LéKkCK[ONûñ´Ä_8vOVÂdK–K§GÅLíÉÿLØ^íƒÿXýNŒÿšòŬޤ.„_öĬ¯\ÚÈôlƒï†òm,dÏ>øl¨ïÆòÈì¯ÈþLÈ'„Œü#é¤2ölñRu}WO1ô;U?$õg_cúôN³†ó2¦O+¹£ûGttfCKFOôD$.EovìoùÓq9ÿ‰åùU¥~¥_õä4®.¤Oû…4îuNå>eSöda_DæZ´eøÔ±ßÍÕ˜ü؈ùÙY‹ÙßÑÿ9¦ÇžïNò‚&lz¦ò®.ÜöCì¿â~nùmIÏÄæâômˆï®øÆfÊȨøÈH¨ÜÌþG‚p2ÄA/SÒ46ä87EŽ2A,ôÁðá–3qa”7Gˆ'Cü2$MÁ#ÁácÁaEá87EŽ2A,õÁðá–#qa”7Gˆ'Cü:$MÁ§>ì8vMè(R$¬uÁJòáŽ!ƈ7ƈ'B)ü*$iŠ^r-voôrvoôrV/övvoöòvO8ÿò6O8ÿ²6_,ÿó7O,ÿsîvwG®v_Fø²öGø²öoüòö/ìOýáOOÿáOOó„óOOó„ÓOKóÅÒ_OóÄÒ_Oánuän÷e„/Oÿw…þôQüøÜüèÜ/þìüþìl_8þì,o8þ¬$_¬þí,O,~íín~mìnöm/NþoîäoBüèìiüèÌ-âÏΞæ_ÅK¢,<¡$,3D.B.“#å8R†/¤‚+A"kA¨kÁ+!O(‘!O(¡$ŽJò„3CäZ!äJ)áB(õa„AL¨A¤KAº¼ò„R²„%´„¡$K8CdJB®„B.†BÆÈABˆô!¦I”¡Iœ#O(”#KHJ2„J²„2D¦$ô¡%Æ£$1B-J#¦CæaˆÂÒÂÂIÁB@„2#t¡”2Æ”ŽA‚4„BKàAHñ€ãB¥$DÒ†áM‚!¡YQ‹JEñ$‚ð$‚*Ô¤D¤bD"ÜäHÂ"ÆT†Q‚¢g„<à(%Á@„Ñ$03E")AÄ!€ÒCd!"A-XFD$ˆ”A ñ!D€–d–$AQID¬H(a&T‚,D2E&¡$LH2$!%ÈC݆óŠB€Ô$(1("Db eBHM!B(€D!B $ÀAÀD1H„F €xABBA$JDB‚x‚ @aEˆ#aB@’G‚ B!D°B!˜Að$B(†aI2D€ˆ’i„08"ˆ`B $%ˆ)‚%"BPϳ PLÂ($%Ä"#! BC"BaD $„ÂeLrÈ$€âD2AN$BB (A”DmI€& Ô‚($…°F‚ÄD0‚$ox"`D Aˆ ˆDDIE"`(B,hDA"À Rà‚´!H@ˆ³€’DBˆc´Ah)ˆGBhaˆˆ#A$„D´‚2„0ƒÀBˆAJ8E„H„¨#A ˆ²„‘ˆ$‰d„!ˆC¢¤‚Nˆˆ1D†(˜$ŽBˆ†_§ /BÒB„1@b€Â"@$AB„à1€¤„@‘‚"‚2’&µ!”!’D'Ê‚B!ˆ(`€RB”.H„ h"ˆ…¬9‘@42 A dàhD"A4HA†‚DAB„¸bD.A $CÆô‚)È%(hBP‚@„‚"tèDf"B(ˆ”ˆÏÞ „a!B˜F±¸Dˆ"LÁ‚C! $!Šˆ$ L(ABd€Á (!ˆ$ˆ°! ˆAt‚(‚$‚‡„/è56^$!C#A„"!ˆ*ÈA($2t€&#(TB`&I¥B@¤àˆBP""&"((’"ˆI‹("¥BYXB€,-Ä&rmF‚) !D€$2D ’H!A€$!DJLrB!ÀH0‚"ˆP!@C‚h)DdcDB'ÀR( !`"T(H0$AHE.„€T!1$!!$DXpDABD(ŽFj$$H†b(ˆc"Ñ(È‚PAÍÂA$HCX(†B‚ônÆ$#D#A@bH ˜à$!$ !F „„B  " !€¢$€( "A"0!CÈ€ÄCÍA#Á5!,t6b"ŽA`(&"ˆ H„ÂBLH„HÄ€H(@"d#H$L4ÀD‡.E`,†"ˆ"ØaáBD¦¢p$Ä$(˜ˆ("d1$mCä$2B" *1"I)¢(#$¢Bð$AhHJ±!/„†*Á!j2DBKA¨AðA a–‚BH‰BB#„–D!KÂI‚”$F˜$ Œb„¼<ž,‚€,„"“DC‚!¢°Á"€(1+B""3(AC.A"$(*ÄA"Ò‘$""@(H€†ˆ8BBB/DxDô7hB!p!`eDÀ!(D¥aŠH ä$Ñ!!áFD|Ä„Bˆ€ˆ”L·!¨$"JdÂâ:$2ô °ÁBÎeˆ(€B‘A"fhDDBÆrˆF€àØ-€`$QD R!@`!GM‚‚†’ŠaA„!+ˆ«CX$@BHHAAP„!!¡ß‚€8ˆðB„%Ä€@‚0„"†B"‚%t„!!‚AA$¬A"%‰)(„H@J Dd_"'/aRB!+A·.C(FB2$6% $r)B„ÒB”""%&f_#34$Ka±66.B$2)ó"tne¤D…±hö.QNb(ªÆ"ªä˜ä†4¡|4!nå'’ND/¸bº(lDBJ²Kø(¤#öâô['0A!#Q!)òa‚?E¨‚-„*ލ‚/[¸*1$E¢f¢8ô¤AŽBŠôÁ¸æ(ØR†82)ª!ˆZÒC8FKNBÊu$ºAúbŽD%”"£‚!é SH”$‚pH6$ÆjˆB`DŠ=qB,ÄD$%2$ô!A$G!RrA8L@~D)TA#1A#v¡D–3EŠ5ŽG2.1ÎD'HNÄ•R©éAÑš/8Cj,C8Œ@’!Ö…ÂJEˆÔ…’DEé)#TH_ôIò7RK1owñT?!¥1O³5·³õÁå.6k#+Hþ±FO!{ôáçZ¶t¶d¾âöâäKæO7÷tW/\ìì4÷er·òçWïc²·³²òqôgö÷qkÿ??çFöea_¶ò÷âtO—þdãOvôÚM^Øâ_7÷¯q«nVîbò«$+*nèNj;lNþëc¶ôeendïNöêhOÆúdæ&öÊHM‰Nâ."ï.=Är?#÷'7/%ñR!õ#7o'ó¶d?Ròb¢ºó¥4/Söcb:ûô¡KþOS¦âjöäroO÷rcnã_VþÁQ?%öEÂGþõa_÷òu?&ª2OOò¢u/7î·õ÷vó_FæþbaO>ÿ÷e?&ÿqê_ƶÉõSÒµýq|ÛoÿNöâe?&êBâŽò¢a¿¶þaiŸ^öoç_FöemÛdÏn¾ÆöbîOæþdhËL/$ì¤ìÆöìdï^Eñt5?C÷3võR;qR?Wïvúæ!wM/këbº¶óvµþ·K¿Uÿ6aOBâF¶ÄþtòOlöâå/wÿUÒÎR+©/'þa¶~voõ÷´/këc³ö÷öô/ÿQÖO3»WôddNdOûUòOg÷Ú¼/îÞ´øXR¯ûòÚ~¶v´çöLj/jj"?²âþª£ßæþdë¯FöLd†ödìfþh"ïÎþâêO¤üHB¯ŒüâênW¢ótw&÷B/5õabC÷1·O/ó¶4/Jû2¦O*÷·µ/w÷ñôKûTAKbOFæFôf¢O"ù—U?/ë!ì4üÓQ?.ÿDÆcû•ÓMó²4/cû”Ó_ó“T?wëC÷uaKfWV®t7ýôóÿ_õ;ê´üÁÚ¿õ{ú_õÿx¦_8¾æò¢$/"ê8þãh«n¯äüdl›&ÏRöM-_ÊöN¢ÏjþÎDïæþDÊÎÊ«L¯äþdïËp2ÄA/CÒ46ä8·Eá(“,ôÁðá–#qa„xs„x2ÅÁ/CÒ<>aAŽsSä)ôÑ2A-ñá–#qa„øsˆ/CÁÁ¯CÒ|Ááëì8vMè(ôÁ*A¬ôáŠ1ÆxcŒx"„¼*’Ä¡èá|5õoQôauo1ôaU/1öeuoôåwO8ýç6O8ý¦6_<ýç&_<}Wôá÷WE®v_Dø²æEù²¦oQýò¦ýò†?þö¦üæ&_9ýæ&O8ý¶&_,ý÷'O(}׿kGåj÷E…/kÿW…/jûůîúѯîùáïîûÁïîò…Ãïnò„ï*òÅÊ¿¾ò„Ê·¬®î·„OêöIˆoêþKˆ/êšÊïîšÊ¯î˜êï®ÚüÅ?34AI2E&4CL8CL9CDØÄ„-ADMAˆmÁ#ñ„p„G(ð„"Cajàh”!DØÄ„!L†™†#ñ„p„Bx„Cø„"Ehz„އ!LX‚ÄØ”ˆ!™’ˆ)k(†Rˆ†Bè(R„¦FhH³Œèi$$”AiC1AA!#¤!B4F„$BHA#HI6„C21`C#bT(@…DÔ:„œ(MÁIˆ'„J©‚#RA`ˆ°É&V‚„p‰ñe¸àD’D€„FD@$*„D‚D‚e ”!@”$àBL‘*„Å$%œD,!ÊqAhB@ˆ)8%„ T€à¸=»ˆ@ €‚€@Æ@ Ž"@"€$EùQx""@E,BÂ$@âJáA!B&2""R!`"AÀHFAb€Ò#!L™Œ˜B$¢(€4($„4ALNˆ$`‚ü2ëD(B5B$$"!,hBT€€,$@B!1(DDH! %R ÄaIÁ„F $‚†@"€4,ÂAÄD‚bŒHM(Ÿ|ID !À$ !E€""AB$`(8#Dˆ Dƒ@¼Ó0A(I(-#FDB(APB@!BD(!)8R0Á`)(A0`"b„$$(ˆ%ADBD€@%ˆ†$HC2ÂR&!!¢h!H!˜ qB((EH'CC!ÂH`ˆB <ˆ`†Š €XŒ DX6D,"‚A„dh)"„$:ÐGÄBHBD64P(„A@AJƒbDD,€°ÞB1A €!BHCA†”#‚@!@(ŽP$ Â!"*2ˆ$`(À¡s$’`%&”B'"$”A&D‚@"±a„'!‚ØÁD!$RG Š,d… "B„mA.0$(„¢IÁ€ÈH%A¯‹ 3€ €" IA€(A!H$BB$”Jà(”( T&"HH ÈBC$BiH$Ì5Á!!d&%$"BA SD"%$$d¨MD¤$ABD‘B‡(B&Є„È‚DD$"l$H)D?E (N!3å!$$¢4,Á€¡BH(€‚‚@ 4#ÁAb$,Ã*±A!‚‘‚B"„¨B$¢B„4’HàˆJ¢"(,B&h’I¨B`BJB‘è²D!B€MA,I•$€„@"&H!AF’1E‚1$€b2fA„1!@ÂEHH‚0„ ˆ`JfAh2Jˆ :"‹H‚)ˆôËWÐ!„Ö"–D%2D%’B#ÁD H %H#„¢d ”!0A$'A‚HR@A´@Hb”*ˆBFRA%$ˆ$ˆH±˜"‰x…RU‰XDL~LDò„„0ÁˆEæT5û@R2Z$‚‚B,„!"&Á BDD´"!4D1AN…!„„&1*"¡(($$¨G$D@T…DBL„M$Ñ k H0A*!`FD $€FÂCFàB)*"*Aà(ÄB‚IÑ!B!“"$(H"HÀDˆ`(@HB(.à !BÀAD D4#"!AE,D`B!'Aš$U$ŒB`‚!1£øWjADpt2D AADÑ1Á%t'€’&AE¤ ‚p*4"1€’h (@AJ À!ó"4"Ð2T!I†,â$‘t†¥BDDðD'5!ri&X(à"a$AE1a%v!$´R8ÂaÜm!ÑÁ‚Ž"àŒè„H”FU'BGŽ%<Æ…¤H)ì’Šƒ˜B§+Y“G#”A+9u3´2t2$!¢A'ZIæ$(h_$qD1DBBÁU7C#[B#1!;!#ÒŽÁ[(M!]:M‚Œ!Â'8AFxb'BBR/–+­$hŽE‘L‚âdbHÌHˆOÄÈ„!t"ÂD#'Q"A)„DTA„bBD#åF!"6´µR!‚I¡AK"Y¢$Dl¡`"JÄA—A7H+!H)gˆŽbI¸È¬¨‚G\ZÄÐA¨„̈t*4!-AH)Ê$oq&´f÷fW?gôCB+To6õ7b;eEl16+!DöAVkGOäçT=dKF+g/E´$ô$3Ovq2ÄA<ñeo¼“âHâb±722e.v2V?5ñ!uOòD;…?[ô%iO2ûå—¯ÈÕ‘Ä#O4ÒŽ¼‚ôá…®¦¿H¸‚øáȪ¾‚zÃuÏö-n]$ODØNø®ìMíOhú䆯Šü„ÈŽ¢Olú޳Ñ!õcR_töBB/%õCRvöfBoEôSe/%#ÒEòe;U?6ôdAKWOT¦DjôDRoEöRR.S]$ôsSB6%]ú“¤?#!òd$/Söss*’%o5ó%E=!_,û¶Å?#å²÷¥¬›œ=CJ.,_”ò¯Å?JüÃ‚Ž¤nˆ/ü‹Ë˜úÉ¡ÿ|ú$EUýM%ßlúæÄoèü„îOÊ¸Ìø‚ÂŽÊ®¬ÏLúM…ovÿ‘$e×á4µSôQrTãvõv!Eò6l±vöve/QóAT[Öoö$dNdKFO&÷d6?Aöv]SN;A/!×aïx¹6rwô26.6rVôrW.vO$¿VòdD.dOþÅOfó;l/ãüÄZ‡$½H-KnÎî¦iúçˆ/bè*º‚¾âøêƒŸêþDë«$Ç‚öĨ,ò삯Šü¦êO¬üÈ‚¯ˆôƒÏKÞ³Ò2õVg?%µCõC/1ôsRD÷CwO&õv$/Aò26O"õW'gE÷adGKBODæFôvO"ñVe?%ÅS4±Rôs_tã~û¥’Ar2ô26O2÷7%/GòrWRòE!_òeEJúÖ³_&ñ^E¿¿þÛ»KôJjßrô©§_<ºæx¢ô"¢Ž£'‚»Î¯îü¤¬ßDòIeÏÆô¡ìïlúȦïNüÊÎMJŽŠ«D¯äþ¤Îo7'Cô2$MA#ÁacÑä87EŽ2A,ôÁðá–#qa„xs„x2ÅÁ/SÒ<>ä(7EŽ2A,õÁðá–3qa„xs„x2Äá¯C’ħèãÁaÁŽcׄŽ"A¬e¬DîXBÆLxcŒx"ÄįB’Ä¡èáü3Š5osôq5o1ôq/1öu5oöu7O8÷w6O8÷66_<÷w6_8÷wzwuäj÷e„/cwô2öoSôröoôrÖ/övöoöv6_8ÿ66O8õ66_,õw6O,õwîvwGîv_VøòöwW/gÿE¯ïÿA¯æüaïæþaïæö„ãïfò„ã¯"òÅ꿦òÄê·¶îî·†înŸ†øâî·†oî¾*ôêî©ôêΩöîêídÏ]L±’’4Q..3aB3qaôA&táBrò+!O(Ò$¡$MJÒ$3D.B.#aB#uaôAD+AL²”!kÁ;!O(•!MRFØ$á„Ò$sDhbFhr#dR'„Æ-A“’B‹")”()œ+ŽB‰ÂB„Bâ„Â"G„&f„²;DLH€…FD,R$I2!VàB;!„dAH#’$°4D€"DBTH%A‹!%ÁBA&"8"K(—$`&h„ŒHþAA˜ÈHðÎm ¸0D @±$9‚L"bt02HS“"$!4HLÂB""%„$$%SBŒD%Aq"±HAtRÁ2`B,¤â"!.HˆDBŒ ƒH””3NðÏ<$‚B!.$`!*B$@$B)F.DbbB,$LÄD!6„"‰%Aã#@„ÄD(„D„b…HðA›ƒD P"@(A€B$($D"!0H LP„(„ƒB€BÏVC$àB0" AB,1A&"#aB@D(`b@D€Б5")$@‚dBP!À@Q@A`B !" H‚(†!‚@@dˆ@$ð+R$@!¨`H 4$D$‚‚B"ÁBˆ4$F€Œˆ¨(D „P$! D²¨‚5“"!$@$"$A@ÄB@@’D B&R"B‚A@„((„AHD„(@@"}*F@ ÈA‚H`D A#€‚( BB†¢&†H!‚`(`( \€@#¢xcD$°O@Œ:­!@$!$@@@B_Þ$$Q@D@,2Î!@$¿Ó@@!@A„À£r!!@@D$Ï– $@„$@BÀ[@a!@@@@Ü5x@P!@@!$@!ð+L!@@ÀwcÿÌCQA(B#Á!$" „Ä6Ix2%„Dq!ÄaC°A8<rÁ°Aˆäb’„/SˆDaÂhÉ(J84¡¬„(A&–„-DˆpAHq(„’„ˆ!|F$ÃHA&à(“D6$ÈApa„$á(ÀÁ!ÀaA&à(dBŠÁA`ÆŠŽJÈa`B†R`ˆ`BŠ`(p8 H$rAÂA) ‚‚b(ÀA0A„ÀA†‚rÁÂÁ! €8Ž„h„€ä(8,"!HIXB†2DÀA0AD`(ˆ-ŒMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuhd-3.5.5/fpga/usrp1/rbf/rev2/std_4rx_0tx.rbf000077500000000000000000005454061224274632000206220ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÖÿ@ XjÖÿ@ XjÖÿ@ XÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDUTDUUtuWwuWvuWwuWweVfeV65R"%Òãx×QQQQQQQQQQQQQQQQQQQQQQQQQQQQ(*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*â"ôBB#Œó88#ôBB/$ôBB/$ôBB/$ôBB/$ôBB#,ôBB/Dò$$CLò$$OBò$$OBöddOFöddOFò$$O2øƒƒ3Œó883ôCC?tôGGtôGG4ôCC?4ôCC3<ôCC?Dó44CLó44OCó44OC÷ttOG÷ttOGó44O3øƒƒ3Œò(("ôBB/dõVVoeõVVo%ôBB/$ôBB#,ôBB/Dó44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<Ïù‘‘iò&&cÌó<<ÏÃó<<ÏÓ÷}}ß×÷}}ßÇó<<Ï#ø‚‚#Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ló44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,Ã,öbb+!Ìò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,Ïø8:ã#üÂÂ/ìüÎÎïìüÎÎï,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâþîîïîþîîïÎò,,ÇLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Œò((ƒŒò((‚ò((¢ò**¯¢ò**¯‚ò((üÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏbôFFgÄÅ Ìò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ'ÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñËÁʬÌʬÌʬÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñÏüÁÁüÁÁüÁÁüÁÁüÁÁ üÁÁ Ì÷||ϧøŠŠ£æBÂA)tAà(9Däd(+ŽœB,€`(ˆ%°AÄA ¤D‚€¸á(ÁÑ©tÑŠ9`(Š”ÄADˆ#h(FÀaA%„#pAp!„ˆ'C’„!ÀaA&ˆ#pÁp!„ˆ'B(I2AhA'B€8¬Â(A€x"„rA€4"„!\taD,R$&„z4ä(S`(Jôa„!@á((ÍÁ!@a(&„z$ä(†ÂA dAn„$ŽˆÖÈÁ¡@qˆbB¨GBŽ"E$¸A&DD†‚تü<< ‚€Ë%‚€ ‚   € <9܈‚Ï ‚€ \77€ Œ€ûa ˆÀ;!‚ ðri‚ ˆ„L<€ˆˆ‚ˆˆ€/I€  €(ˆ€ÀÞà ‚  OI‚À23F FFˆ5‚hBA@$A&€R$"IP"AAHP‚˜Áˆ"LD!D„AF4ˆ„„0DŒ(¡Ðb‡ÿDÀ$‚DLA$,H$H@ä( D‚AD(@D@H! HA‚¬4<$A!HADÔDà(’4E$E†‚R$Fƒ'(K! -$@%$i˜Š E‚A‰ÄJDƒTHHPHDˆ!„!"¿E à8@A€AA( ‚D €(Ha|;ÏH€D$€$ !D@„D$E$@†"B&$„Fˆ OTEcH!BD„€D"À„„ ÄD €0$P2ã‚#)H$A$  DB%%)A"H‚€ AAABÀL"‚„%øˆDAH„À{ã’GBD†$D@D€8IŽ$I"H$A$AG"„"A…„A„ ‰8"0B„І Aä(IDAA€„D‚‚˜³„A"AD@‚H„x‚†RD"I8¤AE„ˆPD!&BȈ„„"ED DD¬À(„„…‚!ð[…€(D"D@4$ €"( BHÀW#L@A†`( „AAAEG(†‚@Dd*E$B$"„"(Ð(I(I„  B"!Oi &„8rˆc&$AAˆŽ"G(`(`(Eä(ˆÀ„!AI˜¢A„ (Ä… `H($„Pˆ0ˆB0H( B5DDT((AD"D*XB*&‚‚BDM$$IB2„$Aˆ!@"@$EB@„!ˆðxö¡@PEÄAI #B!D Bd@Db(„„ ÃA@Tˆ*‚(€"‚Àëƒ "HK!‚D8" !¨)(A„ "€€òºD€¨€ !€‚(" "((€8""„„(@$@ÂH$@¼£H€Ò„r%a(@”àDRDD]Ðd)’„'CECˆ!(E$X$†RDCXDLRD‚†dBM„+‚PˆPˆD$Ž&$,H\DPˆ„…(Bx((""ÒŠX‚"(Ï6 ‘Q""26!"C¡#(I(A8Ž2Ir„`B""C*H„èB(AA€B@HL\È…@ &@È(F‚"„@B7–H–!!!ô„Rá(b(AbEˆ!I‚8"ˆ-„)X"†ä(BÂ"†BBv$.‚ #‚8"À(€Ò„Â(€Â$I‚Â( "Bx(ЊHˆ ()ˆ{ö°A%±A¡!WFK’;vt”æ.ø¢²/=ôDVôeu8@ô$$ž²)ÁOj1"#ä(2&+Š/B’„Eöa„.&aGh.„.¦Ž&DOBê(²‚ø‚Ч*ƒÁ("ÏB¸"Ü,xåö&"%Jh‚.(ŒÒˆXˆ.¨Ž"%ˆl.+F¡Iè(2"/:D¡QTD¡qB‘‘?(vá64ž’/8~ctuô4M$Lr6ô„‚/AÛBú¦K*‚)z‚âH2¤iø†&Obø$‚M‚OHr¤v¤ò$†M†m$M$'BM‚+()r(¨"…H(&|ŒØfr,êJXd-&ç‚&x(Xˆ((§‚$¯ˆšj'"ªêˆ|JX"(*øÌuNQNq[EQ×T·Qb;+¹cû’"2zñd5UöQe*ø2$I‚24¾¦k¡-/(Ú$˜‚)ò‚¦M"¦r¤²ãÊ"#ú¦‚+"Ž"+¨OBø2$I‚º$è"ú‚¢'¨(E((ÉbjϪøã,-"GB"‚Â(‰¢‚+"((*誺²Bü‚¢Ï,<‚)ò‚¢ì)ÁÑNAáñAOö±CþÂ/Gû†6CãäS×D³²3$OBÂ$Ohb*Okš²oJØ&è(˜‚+ˆm¦¦âj¸¦ò†¦#ú¢„k¢ohº‚Ò""ò$$LÒdâ"¨"("…DM,¢ø$†¯ŠÚbr$4$.((((&¸(ÒˆÂ"‡¢"²Âºâ|BZ¨+ˆ)ø‚"Í /CÄA/CÆA+A¶Ô–DŽsWDŽ2A,ôÅB.9Fˆ3‡x2ÄÁ+#MÁ#ÁácÁaà87EŽ2ðÁ2A,n9†8sˆ'Cü2$ÍÁ£Áá£Ñ6ˆ86ÉŽ"A¬tÁ nrä7ÆŒø"„ȯB’Ì©ˆžŽü:µÕ/ô1U/ô1U/ö5qoQö±sO8ÿ³6O8ÿ²2_<ûst_<³qáj3u®6†/k»wø²¶/ü¢¦oü¢†/þ¦¢oþ¢&O8ÿ¢"O8ÿ¢&_,ûã"O({ãâj;c®6†/kºwø¢¦/“ô(¤/ô(Œ/ö,¤oö¨*O8öª*O8ö*"_¬òc(O(raø¨&†®&Ÿ†ø"¦¿Žø"æ+¯f¾‚üjŽ)þ.¢máß €dBAÄAD€8Ž€dB0Aˆ#á(@ˆlB„Pˆ„„ˆ!†@ˆdBÀ¿óË„ŽÀA€¤@ˆ!2E„#dABpEd(BAa`(@a†˜¢’„!D`(DP(†(„`ÈÀ"D‚„€R(ˆ#‚˜(ˆH5±…AÁA !ADXDBBLABD*@DD¤„€H˜„$"ˆ„€¡€âˆˆ-“ˆI4A"Y‚E2e(C„aD,Aä""$M‚D€„4$Dˆ!D„$„„†„F–ˆ@P""ÀB‰h"H¤ˆ…"HhÏ+@0†APB:DAF‚‚‚A$À‚ „B0D$‘BHAA!APH,AˆP‚L?Õ ±B!RT@dBdL!òA¤FIñDAT@rÂ"AR`A€A!$@ˆaPD HÁ#Dñ˜$F(ÁP(ED‰B„ŒˆBdˆÀˆ@HúŒ4 BAD(@"`BHB‚ ( (AŽ‚A(AJ €H„$A†@„@¥!H!"œ69HŽ„@$€¢„Ž!A b(ˆ†Bä"„h((†Dl(ˆ††D!&DH+B@‘H‚P$F† ‚ ù™k!BAŠÄDŽ‚a@DD!"1@$ˆAB‚AŒH@(DDXBA@(„AD@H„ÄX#G$LD„ M„!XDD(„B‚(6‚†Ð$a(BDD2„ „ÀBQBEˆàH@ˆB„H“H†B‚@A`(`("a(„& ˆ …„IA„$D"Àw“AD0$"C„HD!„DD!@¢DQBDD%„XDDBP1LH”@A%ì Dˆ‚‚?DH€DA #BD$!@$€A@(@È„„DLH€€ü>DDAHA"D"€J(ABACR#…AALaEQ€SBY80„DG¸ ˆˆŒ8ˆˆoî„1¡D4Q*#£AC"‘"*VA*‚‚RBH€$*K"$C‚ˆ"¤"D.!€‚‚@H(B !*‚¨"%((„*è‚f(‰B¢$,¤F(Ê“O$„HB@„A&„aB"@‘A"A ‚ 8A‚bC(B*(‘"@HÕˆ!%2H"ˆ"Ђ”ˆ"ˆ‰ïw AQŠÀD AL$àH(‚ <€$DAE„!)„‚‚ (H1!”@†Q‚ƒ(„DÈ$(ŒB„ ”(|6XHÀDH"Id!†Á"†„„bD(AHAP$ˆ))))eM"@‚R4LR1!ŒLÀD‚A(rDÁ( Q‚pˆˆX‚(‚ï ")èB!*B&D”DJ@ÀF¢ˆ!*H¢‚ED$ÄD(AHB‡„B $"CT"°‰X‰ˆPˆ$ˆ„$<330€((DDDD" L‚DPD`)@Ä((„@D„„ „¾!A" €€†A"ˆ(@(@B"D(„(H"Œ ¡D€"¤hdGHtIL!‚(¢¨€ˆ˜¢ˆa@ô„!0BB"B"5AHH˜E$„‰„Òˆ¡AM!•$( ƒJHZˆ (_}IÑE%„¡’ :4%$b #K!LD‚BÂ"N2R!@Tdˆ"A"&1$A*ÒC‚(€†2HF FALáAæD:4†¢±-!n’.á=Á9ä$ìdú$‚LØFr¤b*ÜVv¤5æ/Bü‡‚¢¤+BøB¢Jrbø*i‘i…ÈeKBϸԺvcº¢XÁ\v-ull†‡„((‡‚¨ø‹¨­j.Š‚ºˆtHÚ¨È!‚7GðQT±AóUAõA1\çö±Â/+ýc4ž":ô4Q.q¢!K‚/C’$(¶â+ú’c;Ü?ò…Ã'(+¨,²†âjø¢‚;&Ž¢.ƒo*ìröÂa,òe/æ¶Arã±¢¾‚þÈJŸòEAFñAhN%œöâƒ/²øá(-"&äô,aJÂh*¸*‚’(²¸£ò¢Nʯ(²Äô‚‚¬Ú"ÊGóÓAáTÕõANQ[%WGoK·oh{6ô4DG×E³âA£BOF‚‚b*ºöƒq/*øÂBÂ#ø‚†k('*G**ú‚¢/bèbø$â_húÇ'OT¾c´!òA!Jæô#ci·‚T‰—”F´EömˆŸ®´«Ê"#r$õ%ml(„2(.(‰Â)·²¢ºÂòêÈNŠ­‚§ˆ£øˆ*ow'Sô2!MA#ÁagFá87EŽ2ðÁ2Q,Aôá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2ðÁ2A,n9Fˆ7Gˆ'CÁ¯CÂÁ£Ñ>ì86MŽ"A_¬tÁîraŒxcœ‚'B)ü*$išâa-]CÜQõA~UoäWõaOW÷aþsO8ÿò2O<ÿ²2_,¿só„2Oj7q®6†/k»sø²÷/üãç/üçÆ/þæ¢oQþ¢"O8ÿ¢"_8ÿ¢&_<ÿã"_<ãòå÷söáw†?¾søãç/ôií/ôiÅ/ömåoÑöéco¸þé*8þ($_¼öi(Ïlvaø¨&†èjòaˆ/Zúkˆ¯J¾"üêä)üê„-èëªiþxL B(CdBB0DÔH€xä((A&0ADDEAÄ#á8‘(Q&Å„ˆxAØTȈ%h( (¨(A¦H<Ó@„„(ˆ„„‘„%L‚K„ 0D$8$Î`(N–(a$ˆ!IXHqˆÆXFb¬EE‹HDŠD‰ˆ¨BH„„?ó Ž„AHBALÂ$À„@„$ˆCˆDD*±‚LFbI$.$„$D# @A¸‚(DX,ÌB8$DÂ0ˆ‰$Dˆ’A`ˆ@@‘!3ÈAI!$!ÂD(D€BbH(M$AD'F %%„’DAˆ@'HD!@°l&€ŠÈh…„BDB…ÄB„ŽB`¨ o‚ # C„h! „bA@„2ÀB$D!L„A°B3D$ ŽB$ˆbHHY„”!A„b<†(‚À$D„&ˆD¨ˆ($ˆd„ÉcÌIQD)B!¢BAED"’RoHD2dH@D$%!D%²D 'bL$&EdQ)ˆDAQ$0„SB8ƒE¨$"@"Ihô"PÄ0BÁ`˜BJDøMñ H"À!B0(8DA.$AL‚dBHÀ¢A„„("@€¨(€ Ž( ¨@L„‚­$Š\‚ŠÀ#›ÂA@¤C MÐ2B*1B "$D:H`HHC€(b¦‚!BaB&PQÀD†”hD"# ‚€ˆDd‚‰ð5Ø@A2B(â(4I¢ˆADL ÀD@I)¤G,”B(E‚+)dAK(A$LÄ”„ˆ‚H¡…$8D$ˆ’¢-H…DLT„AÁœ6ÅÈD0jò„jQB€¸D ¤BH"ŽA@±,"”Ä`J)0¤H(CLb*E‰‡LˆEŒ ˆ"!Eb„&D†!‰ˆÀˆD')-`H„8F`D!L!-@$A˜ÐA$AAaˆ!DHD@D"P”HHDD@ÈìSÅ„†ä+Q$MD&À$6$dcL$a(!)A’(ªAI"¤L$Ä’JÔ(è-¬ (#Cˆr$:Dd‹D„ œD$„J%XQŒ$( DAâ (A „!JA2H $Aޤ(D!D!@˜$„D‚A!êˆ<>-)FÁCôM4B#$D€Â,%&ˆ$QD"BAM†@ŒÓ,Áˆƒ1%XB‚B…B'ÂÄDˆ„„¡£JñÓàA’A„$c¡B!€(A`BAF"2$ "€Ä$!(H*$rKB H!ÈàB(A(AŒ$F‡¢PBKB€HEâò1÷A@%Q$a,‘&(AF`DB€D ˆ„‘3TBJD„ˆ AA"¨(i$SH4ˆpH4BL!…ðoz ”F$`dDð2FHD€x€„‚!‚"@D A€‘&QŒ"D$ƒBÈ…èB„AbˆŒ@Ä(`‚3ƒ!kŠB@$@!dB&"&¢A ÁDIa‚(@Q!!&ä"ˆ2‡BŒ ˆA(`‚"@,¢‚­BH!@ò¶Q$@"!H@C€R%2DB BD##A€dA)r!E€qAX"(E˜ˆ@@˜¬0ˆ„„A)Tˆ#!—4Âó  )‚BÐ$$#@(H€ @È8„€‚Œ"$$@BÀDH‰òBiÀ"€‚@#2"((À"À†À‚""((` ( ˆ$‚„Ä"*hh, $ÀcA#R\)RE’AeBM"IBD!„!#W,t"$€G(kXo(±„¡45,òADD ‚è#XQŒh‚,¸’„ŒÒhˆ£$¸Š2„$‹(ÕdH„D§Â‰(fÄ0"H$($gÍà4ƒáh$0"6126ÆAÔB“BM!hMBIIÅ2àJ*!#b"DDD(EÂ"(AAN8†ØˆäˆA(8(&d‚&BÀD‰ŒÖ„Ф'ˆN(„B#T¬Fè¶'RSH 1ˆQ!,Ô!!B'"D`B$.DDH€6HKAH(!(B+a*xt!:ÈD…µDAP¤‚I"„r„†xhFHbÆÄ*ÈFD!(H…X„OŸ ?Tá"±#”Bì$fRw"#Rq-O"ñ6"D74Ko"öC'N„°$ÖbóF7to"±4ôAB8GGKƒo'âDô‚[šºê\”SO"õ6cCDô%¡/(s“×Q´äù|‚!õ™‹1BKŠÿò‰…Aw"KªÔÌIOôä)Ž(LÄDO†ú‚$/ÈäˆtærlVŠH$rnv,4=$O&å)ôFBN$w2eó5"1&W$/qç6qwòdBa=$D¢GMRf/!â'õ&dE1ZÅ$bK…Þ6+G"kˆOIûaSC2fWu?Q’¡"M–/i²þ¸OòÖ½¹QÁ˜Ùr¬Ø¤ØØ²)è"x†È%Æß‚x­øÍÄd¨‡‚Ï$üˆnä.ˆK"g¤‹DA­,fòE4o!–R/4òDC!)’#='orñ&'ò6orñ$3çdòB&V¼6æDâDò$Fo&óf?qôQ1KT¤atN4ojµäùw¢ž4KKoòS4=vSø7!]%Lú"†o"ûT¤Õü“qß¹­ŸãÚÁò¤†ãúç®Lú$„Sþí¨DÎm.Äë&ODÆìOBüdªN$ÌÔ®vDj$¯„ÖböJ+ãÆå}q3öCBS5×rò#"ñ5&oaã"ñ&RsÖg÷R&/T¢F_BöD$NtnoV÷f'[UX¤Etêõ¤’oCú”6/B±$ñ4&_uÇ5N'sò$$\Òqó'“ZûY¬‹‡ï½qÑñ‘ÉØÙz¨q¯û¥*oHª‚Oø¤%ÏÜÞÈþ‰dG†ÏÆÖÈÖHöhˆïnòN¦¯&”J£tBòHJ-d×|p2ÄA/CÂA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/SÒ<>ä8wEâ(ôÁ2Q,Aòá–Fˆ7Gˆ'Cü:$íÁ#ÁáãÁaÁŽcSä(ôÁ"Q¬ðáŽ!ÆŒxcŒx"„ü*$È¡èál1Ì=÷oôcg/ôcG/ög'oö'7O8÷76_8÷66_,÷w6O,wwæ~wgän÷e„/gwôr÷SäWÿA~Ô/ötôoöôto8ÿö4O8ÿ¶4_,ÿu4,÷wjswõ¡6_Vø³¶Wø±õSüøïüø?‘þ¬­þ¬/_¸þ®.O8þ®$_¬þí,ß,~íín~müêf߯øâæÿÆøâæïBôjîéôjÎ-hïæÞ–öŸÏeB$12A-A!€8Ž@$€dB!2A!ˆ#á($„Pˆ,R„&TˆPŠrAÈA…ˆj(…HH,R„&FÈX³h8Tˆ!4‚‚H%Å$)A$‚DATA4!La!`bLŠ\%¥$|AðDl$Ñ£”Á’‰‡B!ET$†„LQ„„A&˜„†%€XñŸ¯DT$%5„. ’DDA¤ÀD Á"!DRDˆÀa(HiDC$È!A'„ÈbÃ(qˆADI˜‚EHHAT„Œ-„A†H0„-)ãσ&ÄC†¡„€4„bÐDB"R$D‚E‘$-B!B@"ÈA(A„"C!c8$æÄD(f”‚#²ˆè/8ˆ¤`G„0"`„`D†ÈA„!FŠH2HÐâi+APBB!HFDá#ÀA$"$ DMB,$H0‚aLa$IEHPA6D…"EŒ2„B`ˆ@ M)A„‚L$…€9.HC4CƒRD#4´J$b!D0"&$DHD!%"/!-$ˆ+gIÈ(a°‚„ÔF*AD$4BMÄÐL H£Aሄ8„H"BÉÔÒ„xÅÌI)„H-(ð=˜PBE22 „$1(†RA!I|#BABB(Al$ B1"$„Ȉ%ÈDàHˆAÂD€XŠHÀû#`$D"@D@ƒP$ ! „At!!0`HDÂ,ABq„‚DÁ`BHPApš(ô‰E‚bHHE4‚‚ DD&ˆð¾L°8„D!`l¢„¦!D‚B,,&$22O!ÂMB!ÈmA!AIAAHLDF„‘Ê!)˜JAˆA†AD¥˜#¢@Ø„DD$8äÊÑh:V@„!‚”Ir‚ " „# #“D!!&Ä‚P$€!@$ 4ƒ"ˆ‚h„Lä"‚gH RB$Mˆ&HD‚„Hˆ@ø“ß‚eA!H!D+D)"„B!Ai°BD¤PRHTPAGP@cE2‰AEE .A…HĈC„’„H„Àuc‚‚˜D!$,’PF$#Ô$¤EaO!%A”‚#DˆDP4H†TAHˆl£ †iÁ!‚À„0„¦DAƒDœÈ‰HøºyA<ˆtA`ba"€Á$H@#ÄB€"AˆI"!EЇA¤¨EB‚hDXHÀˆ,MÃAEsDÂB%&D#râB3%%„âDLHa-B$D%B"!L,4†VMD(Î$$EÕ(Q(‚“ØhHTˆˆM„$K("ÉX(DLñDŒ†(‡D†"(´!D’aA@!‚‚@4¤ ˆB€’ä"Ž‚K"0$€*( $HB2!€(ÒÂh‹$Œ€B†B(D&â$?ÇB&BD4A,a$ T$D$*`FÚÈAR"†$B`B,$B&‡b%ÁŒ¥(Ha( H‚@B,&̈†äH¨Êƒˆˆà¶ „ð„A#Ža-AIDˆ(ERaAx€EÑBR†EB±D€+ˆ…"Š„P‚Å IØ(G$A…BÌ""FÊó“%r"((ÀA)!AH!„M"Cˆ¥$(„…B0„@’,„Ò… ˆB£XŠ#¥ô¢A$$J$P$C1¢D#0D"À„BLA@ D¢Iâ‚'I"€ÄAÀ@Œ‰H2(‡ˆ¦DA$.DhE"ˆ„PˆÐ(>ØDCJI‚J$  B()A2!À€’(€"4Dƒ H@€„ÒY(À‚àB "D‚(I(€$B"D "!((ˆŒ’…8aA‘ jB€Æ"„H€ ¤„ ÂD£ÇD ‰R-4LÒFÑ$Ò$AàDÚ$x$GDc/BTA)¤A"IBòD¢,ˆÁB$d 4!0"†ÑZAGZ8…âr„XŽ)ˆŠˆ2„_„2&|BT¢*ˆ8jNŒ„‚„H£˜hIâ©MÓaW!’A1£0$=DbF!b(!ˆ"È&lFÀB dªhA>„-A&t>!I¢!I(IÁ2KA/qñ3/F´6¹2ãLì!1´k3FõURKoó2FEô$!&/QÙ#ôôÿFä¡1‹Ž¢§rÏø+*ŸxX&KŠK"\Ü”ü-Iÿ¶Â(DHO†ÚjòŠÆ)ôî‚ÇÆ¯(˜J¯,rh´&>Ò=!*é³õR!\s7ÑRñ“·_bù4‚-av_nhu×S¶EæBä(±Vÿd3áS²FõA_4õQ$KkYoeë*ñ4‚Iñw"uqò%gQ/U¦¤7M/Qó’fŸ3ù<:ßõÛ*—˜/ø².xŒÚÏz¡ò"‚SȤŸü(ˆÇ‚ÏdÔÊÆ¬£òÌJî¯Èæ¢ø®(露ÂÔ$ØÚrgÚìLó%=?÷?1Ñò1M£{á"ùw4Oiã#ñ2Ò?Ò5ÒqâFüweJ–dKNOk÷aoU±SóUS/%µR÷"^öO'ý$’{·6Ocõ$RoW÷6aó2…{']$$GR_#óÒ/ÞWÍ#ߥMã¸òƒ"ŸØú&ƒÿ"øg®lú&†&øe,ŸÜÖûæÂ´lâDæÈö¬No.òÂ&¯l´†tÆzÂòêj)öB6£ÓqöCq/6õSqÑrñ'2ñµ–Cû–2/"á#ñqehþCgTvgñ!dODâdï&éwóVq?côSR+Q/EõR6¾O+ñ¶4oiò2O3ñvqouÓcóe[B_VÒAÒqò1_Sû^·—õR?xŠÙkØSz¨w¦ú¬*ohr¢r¦ò&¨_LÖÈÖhvnødlMlLî¦øn¤oäúbÊ­Ê+„/$øJN-n¯b 'Cô24´Áak6„ŽsCä(ôÁ2CøÁðá#qaÄ„7Gˆ'C\ü2$<>6„ŽsSä(ôÁ2A,nFˆ7Gˆ'Cü:$mÁ«-áë¶Œè8¶Åè(’„,’„¬$7îpa„øcŒˆ'JȯJ˜Ì+ˆèá‰Òs÷6A/v÷A/vñao2óa/ró„÷/bûÄ÷/"óÅr?gòÅ÷7f~wgän·eøòæsÿvçoôsçoôsÇ/öwæoövvO8ÿf¶O<ÿ&6_<óg6_8ógzwgô¡7_Fø3§wG?{ÿ¶MŸwÿAŸ~øißúúaßrò„ãßbò„ãÏbúÅëÆúÅãׯîf÷Æîf_ÆøêäwÆ/Nþ¦D¯NžF¯NÜ‚önìiö:± B8A&„Ä„pAÄAˆIDÄAÀÁ#ñ„R°„$$„2D&$„(„ÄA€8Ž À2ÅhjŠˆ„ÈAˆ@Rˆˆ¡†‚ ŠR„¦DØ!>IdBDB‚B†bMFF4‚L‘¢0'!ADEO"!„!Ø!È‚HB#AtD±F¦ABID’DMˆ$ÑD£áØBbHL8(¢…AGc4ˆC‚LòG°ÄHHBL5QD@ŽA¢&ÀDC†Š DBD&‚$€$0ˆ„Â%(HȦaŽ( ˆ„&„)VŒ A†À?7Ì„"á&Œ4GF$ˆ#1‚N! æB$ˆrT$b$b*Ä‚,‚!",8åEã"L†‚qB²”’,(aˆX,ÂH†G"ˆÂ'‚.A/HDÈd`¨B,Ò„j$H‰T‚(iø6 "…ˆQ!G)"(¨D’$,áH”"@A¤"CaB`Ð!„¸d8D+‚0"ð"DpÂDÁ" 4$,"èEBV‚‚$È"%4HC"ˆ˜H#Ò„C„‹„¬„ˆF¸%;¬X<„…áAb+.#T4N„–I¡‚g"È)¢B(S*IG"‚4!¢"/B…¸"h"I”#MC0!)‚”D)e"ôˆ')ˆŠ.„ tH$ ‚-¢‚#dJÌ"D$¼B‚Ø&¸Iª¤cö2l$‚‚$ " à(2AALäC‚TA$„>BL,Ä"àJ˜B†”BB "È! !,D #Èb@l Fˆ4)id$ph —†ŠPˆŽ¿3Œ D&,„2‚PH Ž!D$pF4aÀB(D(DD†D!Hq¢‚1$‚AHGB#„øAD°A„B•È"(Ã2ÂFH¢‚@„ÈHòŒ@db-TF‚DEÄ5,TCFRBCqD.BI!"GAN”&2!)D'A`a‚N&TB)I8D+A/DviŒ*¨RÂCxIA'H`DB‡ˆAAa”DËŠŒˆˆX†E2ì-„+BMBH@±F"È5@MR$ ²BhD`B€²&(4B@´"dB`H¤„,"(2D"PBR‡Bˆ#!È$!f¸HG"‚DB‚„J‚ÄCKH¨ H„H&ñ†ñVB‚T$dLCDJX!D6b%$a€a&$EbA%D0ÄcƒtHDxÁVAH‚DD"ÌD„A!ĨA‚ˆ…Ì›ƒ…lH)AÂAP$$Ba$p„H)²D’h0E ”0J’ÂHà‘Â`H+(a(BMD.’H"Kå‚K“bD„&‚Eb†AK‚!BÎ,!H.HˆH-Lî‚P!a$(J$=B$„8"(`D’X†# $†„:€MA"I"@¬‰$LŠ’„E¢B…)ÃŒDD ,<8ˆHT,T/D"J”AAmÁ)F!”"#t!´A2Á†hMDˆÈŒ"JØ$¸$¸"\Aˆ!"m$À¡0‚AÓbƒ1‹£a(AFÌ"ljHÌÙ"hj@ExB(ÒD+„HˆMA»Ü@„’„,&"ATŽˆ …1 ƒ,b (¡ „Ê„$!(%‚Dˆ@bHJÈ‚0(*Èås-!AHO(‚)¤$Š!È‚B $Ñe!!B@R$Cj"’`*¦D"RAÈ*"1!”ÂAA‰(È¡”$A$Ap(&˜B`B%D€èeAJ("$+„"°#ˆ¨B!I–"D(AHÒ†ä$ˆ ‚¡JaB H"AA"„(@ˆH(FˆxH)…Á(A‡,„B`ˆDV5:\DeÄeH($($BB"0!Fr$ñB"H2‰(’„‚h*J"’$`A-„ˆJBÒˆIÂ$!AŠR$‚ ((W(€˜BD€HØH˜Èˆô´»Ð!8¤`$B`Dˆ!@HM$JrÁc(`(€„¡AL4% eA(Æ¨Š”H1ˆ5XB)H”‚!DE±HDD†A`(…RŽ­sŠAH% BC$BBHB@„B„pˆ›5€,@ D$ H@%€„$$ $J@@ˆ„ÀBŒ9Ô9Ä$€-AmÁMD†â(Ä"†¢!Âx!d,cÒ´ .D`h˜)”$!Cä(EòER‚HF#8B5JÔ„i(R´Ç¸B$à,BòDJÌlBˆ…ØŠÒÚø"„-ˆA!Ir]"p$ r!&$.A**”"MAI((N"C¨!$šd(Hª¤˜*˜B.´¨r L´F@!“4"p­è‡$q‚"($TRHˆ"-„ÉBÈHA€B8ÈFh¤‡ˆPˆNHÜ7!(Ôd)D!b‚†Bâ$b$"‚NxDQoØTBRO$¡ACÂBE"+z%‚1‘táÄÄ&Ä+‚H/"È'‚ƒŒrŒ:„O$qŒHÙ‚DJäÂHDDH‹ˆ-ˆïÏNñB!"ÔAòF²§–Æ'î!Ž"ò¡cÎ#šG/jb_TòEÅþ¢ÜCö„vNÑ'?ô³/GŸ†k®džKª+n'W,O?¹wù22DÆ![ľ¦?Aß#öŒBo6ìùJÁ(ú"Go>úMj¿\´‚²$Ú$rÂõƒHß’x¥q"êÄf‚O‚ø¢¦&n$ëªMŬþHJ«ÌNäÏB<-%FæB–G5á$äBÖEÒûbC,Ž2º"tÁã,¢l}/T²DîöÁW}´+$_<âW¾VÙø…CGI¿VÞbb.M"K†oXö¡RaIþ‡´7CB(ò…2=´?eráûL¯í˜–«ˆ/zòNêo¢ø!LŒcø'‚.E“¸ÏÒ.òŽìÆBÔŠ²„ÒêØHøÈhï"Ԥ؈ôÈH¯fÒ¬üöu$=b?ôF!]B=B=Eg4&öòž¢+®"Žâ?(º#táã~òæ…CÖôeeªô¥óo<ùvÅ;1_<ýBÒ+//åkóĆO.¸'èkq¤ò¦‚oSýówŽg?Gõ6!%Ž%_LóÔ“/~úHç5òÅI(x¡óã"?üö¦ÿ.~eú‚$oJø¦âMk¿XÒ{êJúnh.$,gJoˆú"æÆO,²ÆüŠ‚‚Îb«jó‘á}D?ròFCD9tcõbC*ö‘3+´/+ø¢"Žbè?:üb‡nÅFBòdAvWn~å/ýö9¤+Ñ/Dù²FîRO)÷´oiò‚6O9û¡o|çáWÚödEOVävô‘sOSü&ÏŸ®ýß‹Á;Ì?dþ+ϯöÆ(í†Ojº¢ò†!oöøì†/Êø(nç„OBr,ìBò¨(ïhü,ÎNŠ/ŒÔ¢ÈŠ.®¯Øô?ì02t2Ô46ä8ä(ôÁ2A,n9FLøsEˆ'Cü2D¼ä>NaIä<—%Ž2IòÁ2IòÁBn!qa¤¤7G*x2Äá¯CÔ<-áë)üˆcYâ(ôÁ"ExÁ îxBxä7Æ*x"„ü"$IŠÆöcÒsþa?vöAvôa6öa?>÷„ó?/ó„ó/+òÅó?.òÅó7n~gôñ6[†/{¿wø¶÷oü·÷oü³—/þ÷¶oþö6O8ýö6O8ý¶6_<ý÷v_<ý÷6~ýwdõE¤?þWÄ?~þVåŸþÿÉŸöüRaß|þÖaßüöäãÿìò„ãïhòåëÿìö¥£ÿîâjüo,¦öm¬/jøoŒ/jü&ä¯îœÆ¯nœâïlúfÁ(A€dB 1Aˆ#ñ„ÔI8CäB!„!æ$¢A"È+!ŽR(HN(pHˆ2L&f„†b„„ˆTˆˆj(……€dBFȉR,¸D’A†á(rÑ$8!!’#4ÂL1‚tF\d".dð‚@BÁ&ŠdHÑbD"ˆS6‚BqbYd"I„x'hE˜!…ÄX%%H@<‚R„0DƒVO‚ÈI”‰¤DCŸ·B…„D"äQ˜!€¡ˆÀ„K(1D”$àBäAŠ‚$h) †„BbJ‚„X‚´‚/„!$ƒX¡!B(‹„h(Nå£ÊIÑdÈ%!ÆÃD$ˆ,‚8l¡BC†DRCd!ŠD¢$IÄ"$L$A)âDˆ”"BHв.Ô$(ÄŒˆjQ-"Ì(r„‡$Šr…ØA(DÒX*H|‚ÀÈ-F†ñN$FF%Ø!„Œ"DABd*AN2-„’DA*ÄK'(B#8A!BG)bDD¢!K"HHTBL¤"D$<HB"‹B‚ ‚!"H‡a@BAHÃaDŽ‚%Ah$ŽïÓ‘A'14$".Gp‡á$hJ0’[H'BBl!$$aAqB²Dœ‚#ôDF²AÔDh"$E”Âô†D)$BJhh,R„­‚B8j0¥„¢Lx¢¢JÍ‚'(“„ØIĤ9Ø„'(PHÎD¿ dG „$@,ÄEäBR+&ŠB(!Š,D "`&A(AJ‚0!È¡H€:2B,DF‚AD ”D!'D‚„ŽÂ%Ès“1$%A4"@+L(”(0¤ !"0$Bˆ!E4"p‘cI‘AGHPb$"`(8 TDHX&!ˆE“H'Hˆ&D#C2‹‚!…¤J@q}*,ld‡”'TiH”„"CxAÄE.Ro¸b‘DF¤U²4!ŽBÀÁ#ÄAJÁdÊQ4f’¢FXRޤ˜CÄ%AËBK˜G‚%Áˆ4ˆiôˆL„Ä‚$¤L‡çˆtD-DLT„†t‚Ȉ!Fä(?Ì@¢4"aA#N2DI"*ѲDÔA‰£BDh,ÒAd:@¢D%‘D+I(Crb*$J2„LF„dBˆba.ˆF…ÄBƒL”ÂA0‚$h0¨sdD@¬D-bOƒ˜Â-‚BoÑHPA,”B‚Ia(DàDQ4+,BDBAJˆH‘„$HK„HIABt‚$4ƒL20%@dL8$ƒ¡À†E)”‚ÄP„d†HDH0„…‚…(h„MLƒ&!Bb$G°&CÓ"Ba!j\(EH†’1MA‚o!4ÆYÂCA‚8LÂx$¢FQˆA$bÌ(T‚¡Jb$ÅÄ‚ˆ"e`Ò0¢œB$ô„*(„É G($Š„8.™€‚4HDH6C™A`(ÀAC”$$‚$H’$”2‚!D‚R $0‚€ xHH°*C ˆƒ”$!@Ô‚¡„Dü1ˆ%â‚J¤DÐD‚ÑB²"‘¤LÕ2„9XB0DBÂ'(.’M$4•Ä!=‚&Ä!‚(%ñTaŠ6¡dBX!'Jh†º„T-È&œBHG¨Š2¢M,„(ú"Hƒ²HfŠe8¢LĆ…¢H%(eDPC!h!B A"A‚$"L4€D1D,4"¢AÂ@B‚!(„DD$DAD0HŠÆŸCM6!Cq‚‚²„ŽBA‚BQR Ñ(kHT$(‚G$bB ˆ$5D¸!€X„„¨k¤E’"-(!!¤&!"+„&#JB)ò9¢€A‚!„*-D"((„E`DÂ&F²Aˆ+ÂD-! B )(¨ˆ…ü(Å‚€ AÀ¨Iœ"C gŠˆN¨,(ظ4¹H.DÁA(HTXD@‚TD†!bD.ˆcÈ&¤ˆTHŠFQ! X$@4A"N„ †˜%d„h%AÇBPH‚FDŽF"€LÂBðžª$°ARDf$F’Câ)8.ÁA/¼B¡(AhàXb(¡¢F¦‚¤Â!"!ÈAР$¬(ã4‚JRˆBÄ ‚d-h†è(Ä!‰DŠƒ¨„.¦£@„DB@!ˆÀ# D„(ˆH! B„@€d(ð+ @D@@‚B@DP$4  EH@-·Ã\BGmDEA”"('H†$¨,cHpÄä"q…DB$:j˜1Ho¬.E˜Bi˜BŽCG(,W$(AHDF&¤’L9"1.ˆŒDX$„Í(Žˆ(‚Bv¨’ˆGÈt#„àŒXB"?( )舜D‰´‚ø­â€‘4$J¡„à$12+E€²²ˆ¢!(HVlB¤(GBFJ!RA"`R!#¢B)œB( Á]a4ǘBB‡„bÆlb!‡J%`(((ŠÔ˜Äj(I’ÂBI*VŠ.ˆnÃÉA)D!q"!Ñô!EÑDÒ%bK(_Db$D9AAR~-P‚ÊAO((C¨hC(8…B&‚!H#ÁD*Ôbñ‚‰È‚‚€+_Ì2+©_2üD3.3{Á#iV.%]Ä/,qöõæ¥]RB´’äøR_B¶†ôÂn§M"A+ˆVüD#O²‡4âfõA!_|Ñò¢U|Ú¬ö>HŽR¯¬ø‚*/j¶Œ|Êø(Æ+(M"-"nì§,O†ºŽtHviíÄ’Ì'Dæöb¤O(ô&ÁŽ‚“ôŠ"ïBþŒöƒZSomŸdYô!O%¡B]dYö7N²,ú¡$oC÷a·N„KìsqråD¨dry´uVõt–Š6—?óV’¾d;(òfE$È¢K,obÔ1ê$º„ö‡‡'RnÄa_v}¢tsòB«ßè7Œ/¡øÊʯêô†(MjOJøJ*K¨sö$f£ò̪íjOšx#|h؈v¬âBøÂ‚bohÞŒt‚úJȮƌöO¯4Cô3ao5Ñ%õB?ôr_"ß1ÿ„r;>’,û§?Iþs“în¥{aVOVè6Þeÿ·Fôö¡_$½ƒôÓQ/\øaæ]âo(ò¦„.¦M£_(ö‡ÄvìvâV¶ô!EVìRß4ý§EîöȺO¤Ý"ü‚Ê'&îìoˆ–îwŒ'Bo"ò$Èï*äÆ|êônä}IOÆdFOnö„bObìnä&ú„JŠôŠJvèú6ÞvCtWõRST;A7Q/wõe¶Ot»óò²’/bû$öºö—×Ová^¾Wö%EfáVóEö_Jõ—d?yûRÓ(µ“õ³ƒ/vü!æ]£K,ojø"¦M¢kjzøb‡æµGö%$OVôa&_%úõf/úô‰ˆëů)ô‚¯døâLbòÄ¢Ïæò¤†Lò$"mlÏèzjîþºAö,,‡FFºBþ¦Ä-d+¨ï„ôJ­ÈÊøbDŸ'Ct2ÄA#Áa#ÁaAŽsSä(ôÁ2CòÁðá–#qaÄ„7Gˆ'C\ü2$<>ä8ä(ôÁ2A,nFˆ?W¤„'CÁ§CmÁ£Ñ>žì8vLâ(ôÁ*ErÁJráxaŒxcœ‚/B˜Â¯BšÄ¡)ÆõCÑr÷2Aw÷A?wõaw÷e?÷„ó?/ó„ó/ióÅÓ?oóÅ×?oñá÷wG~·eøó÷{‡?ÿ6Á?ÿÁ?üá~þá~ö„ónò„óojòÅónòÅówn~gôá6_Fø²÷Gù¢æSüéþo‘ýhÎ/öìæo‘öläo¸þn¬O8ÞNòÇJÿÆúÌÂÿÆøèç÷Öîf_ÆøâæwÎîæoBôèæmBîü‚hÏîþ†jŸM!(A&D@ÔÄ$A&€8O(A(A&ÄA€8ŽU@È2A.† ˆ%ˆrAØ”¨!‚È!†††Bè(R„¦XªI$„MG„!à„xCd'B ˆME‚8m‰B4A"ŒG(F,¨Ä 8foÜ €Â $Bh˜AA#JÀL2A"A$€bDÛ!S“E1ÔU9B‚r„Á$gLÒCjJòB%F£¤!Š„T"\ÈÂ!ô„BB’ÎJá"aJfB7H&4Dˆ.Ä-ÁܬAœœDŒö„¢ˆ‚(Ž‚¤,ˆS>%_D8"0d§FIœˆ­Hˆxˆò¾49ewÖ2ñQ/%óaOñ·áO$™Gb/+ºdß7¥bø!6\´!öD¾4?y´±þF'V–²‘üB3GTo+²—ìRÍ2K+©VÞ%µ%õö!ž6DDOþÁ2?Iô‘ÄO&s^=’Ÿ‰üسGÖëŠ;bH\$O*¸&òÅÍ]BJüf-¯¨’EDÚåòŽALüì†gF£˜Ê/,j¦ÇêÃÆgCò77k$Ôñ1OFqÅöTe?"éBùÆ$OsòcÔ|û#’Oö2D%"_4ÿ£Df?Bé8rÔñRByiz/òôA/aöa²M‚K*oqá&Ý!z¤³ÔüdâôDÖ/I²SÖ»{¤yÌñRØ(ù˜-/øÎH}ç**xÄÜrúìFŸ¢x¬ñJÄýd)G|ÔN¾‹~&þ¬,K„¯¬\$/hòd‚ÿ®IóQ2d•Qw%ñRra[´?¹ö±óš¶-²OOñó‡jßSßVÿV!Ne\ÞDÿG³Þ5?}ö‘ÆO4éñóCKüb—Ovù´{©>–MòO>ñö…wßa÷5FoòE%Dþ!ÅO2ÿÖ5/Ýö—úN›/”ùÛq?ÈöȧO6ø$ÂoÆÚbêrød‡¯VúAç]î»ÂÏòDaaOÚôì#k¤ïLô†fG,N‚/,ö‚hÏL3æ\ûF1ovõAVòBäQ÷dÖ.×jò”¶:ér»‡òÔ÷?käk4q_Fô%Dr´cyäwö±ôýÑ7<'Þò?QÿA²_$ÿ§$oiù"¶M’oòÖö=ô?Xvcñddddóe“O~rú½ûüÓ—$”(+ˆCÂ"“äh*r(œR%‚Å(lh’èMXÓ–Á(IEJ!qB4+Jad‚¤!J!âD™( äB„‘ˆÂ"9$:!9Ѥ˜8,"H"‚´”’"f"‹”=l0™Ê/„‘ˆ+ÂAŒØ‚¦&†Â‚E&¼((Õ†*Ø„:Dê‚”ˆ#â´›…´A1a,1HxAB 3„8$2Š)´Ɇ„(Ô4òHQ*á¨FæŠÞA¤!AŠ MC²ÈHå"“DШ"Ó‘!§HFè(Ø!„8L*˜=¸¤ˆ‚šH„D,ÂD™èH“ŠLsA ( J)´$2îŒ"$g!È„býE%ôBB¤A#²˜RÀ„Ñ„„Ää‹Á¼¸‘%<5ØrþÒùA–Ž8,ª‚d‚ƒè1Xh"O”2¤»•Èò˜BÛ(-ʈšˆB˜˜ˆöŒ.‚*È"à"È…LM”HŒ’…ÉhƒnL‹!'$‹=ÆxÙC’!pCŒ5!‘ˆ (¡,A, &H(E£$‚)À$ D#¡$A.&$€”! ³¤(C„LDAʘD‡„)䢂$‹&EB¤ˆ„Š"brS_!A%RH"†H“H€Ba$k#$2°cBD¾B‰8BP°‘i!`BB&DhhŒ1$N(!Ò‚v$$T`D‰ (DH¢JD´‚F©‚Š#A¤C`4™Ø <èD<ÅS"AvæRîAT„+Š.†;?‚‹Ù†˜A"DFø$KBa-ò’EAG.L²‰¶„HÄ$?L1/è$òFbHLøDƒ/D»ô‰„,Jê!T˜, *ŸDÖÆîÃøkvÙøò7G‰%Øì~ñ„h'Ï¿ômŽO"øá,-A]ÎÝÂæó„ȽdefÑåüÈ$­$æâOˆôBÈ(èLö&ˆWÓ4o•×—óKr×1¯µñB¦õ4‹Oõþ2ž?Fù6‚OaèåÛÒý7«ß%þO…ÑÔ„òmCÏIò™/oóÇ9»<‡½ÖùÒÛ¤ï¾øv‰?JõóˆoCèCèÛô²ÉÓþ?D¿þm„ÒMü)ãÏòì¼óåŸ(ø›ÎI†ùéÒßòëôü¢&?Œø$†lzâþ‚É]¯Ÿdvmö>iÜòÉåbølê/ìö‚,¯lÞ¬øBŠ/ŒòË!Ì:I|ñ&YoÆñK^Y­Q¹ócßò˜FŸMó†2Gi–÷Òuoªuý²½ñMMÜtMñ-£ßâèóý&Ùoâý߱ݲý³ê½AÝ«^þŸh󄲸IûÄ7O¬ûI’ŸnsmiÖÛd—Bÿ”øâmo™ô²¼ÿxŠé˜ôÁ¬ÿþZ«O¢üÍ$o*ø"¢MƒO\ô†Ê¿Dú‹%¿–ô$lßTÒIölŠOÊò¦HoŽØ.üÈH/ˆÜâÜjþu^ð2D.A¯CÔ´Äië!œ6ŒŽ{Ë(Ž2A¬³ÄòÁÂî!ua¬„7Çø2D.Á¯CÈÁ£Ááï!ÂaÅâ8×Íâ(ÓDòÅ:ODòÁN$î ÆjxsÜBx2äR~:ÄÁ«A>O–LŽsÝ(Ž2IòÅ:CôÅðá#ua¬„7Lj'CȯC’Ä£¾žÈSÝsóE¿÷óA¿÷ñiÿ÷óVIÿ÷óäÛÿçó„ÓïaûÅÛÿçó…Ûÿåó¡ÿ÷ÅêõM¬/ûûß,/ûûžE¿ÿû^A¿ßøÚaßþúÞAßÞòüÓ¿Ïò–ׯKòÕÛŸÏò—ß¿ò³ÿÿ…ö¥ß„ø·ïÿ…þ¡¿ï5ýé¿ï1ý©¯þí¿ï7üé/Ïzýë.Oxýª&_¼ýË._¸ýëNúoü¡~߯ø²îÿÇü¢®ïGüê®ëůæ¸Zöî®ëeÏò ÊB(G„&d„*h„*†ÈA‰ˆ¤¢H€¼â(…bJ"(¤(CdJ#d*#%2ÆA‡B+A.$kA(I¼ò„R(MBJÒ$,3D&$äb!dBpaÌA‡BHDH€<ŽR€$B(CdBB85é9Ĉt‚‰TŒöBL2ˆ,‚ØB£•„1…ÂD"Aj˜M'˜ă-HÄt¨‘´„u²Ä„Ÿ&!ìD’ˆ²Fd˜! JøD$(Å¢(lˆ[$DEiD"Fሒ‚B9xC†øLq ˆB‡”$$Œd³Bc¢„‡"¨A’Q…%hQ`B"D[J«”…á-È\˜äÄÄ¢&$Ñ!òŒ/aë¦y+Nòz]{4ñJ¡õ!Ïó_ê‹ôr”?Æû¤/#ø5œ?‚÷×­ï5úlÅ¿ÂöEißû|Fëöø¼õL‘ÿ­ô‘H?»ÿL1ߌ÷·O®”ϲ4ú&¦Âü3Ì_·ú\#ï|ÿl_”òL!Ï\õ‹Þ]ê]ë4ó‰ÚÈÔþÌߪõ·Ì/o鿏¶q¦õ§ŽÎ?ÜöŽaïü?(_”Ö²þô¿©o¥ûDúÍrïøRšNúv¯Ý6?=|‚õg¯ô[X=X?´ñZaߣô±+ó„2GKO+ô2ö_¸÷Ø!Ï=óoLÂòL!Û¤ïÎô²þ}|úùZAŸ¡ÝƒýQ‰ö½L¾Ÿ¿F³¤{„äjò‚t¸÷lï?ñoLÒtlqlóßLÉü'ÈÞøÚA¿ÜÜ‘úúAÿÍö“-¯aû”"k(/HÞ&|…ûÎgç—ÆÂöH%e—Î/ëëæéôÚšNšÎÚïò9„p2ô"a§C46vŒâ8wÍî(s„öÁ:EöÁ$îƈ7Lj'Cü:„mÁ£ÁáëÖ,á8÷MŽ2EòÁ:O"òÁ¢îÆ*xsœ‚'C-Á§C/<¾Òì8÷L(Ž2A¬SD_¬Aôáž#qaŒxsx2ÄįC‚<èãA4ãÿïQôyï1ôy_¯1ö}ï1ö}}Ï8ÿ{O8ý¾"_¾ýË._¼}ëú¡ÿ÷†_ê÷mˆoûÿ‰oë¿>üúþëÁ¯ï½þþþïQþÏ¥$($À"A&,‚òAŒ-A„!Lˆ#á(††Ž"A¦&¡#„Ø”ˆ#¡¢#‚¸â(,B,dBà""paÈAƒDA„#ñ„P(A&œ?oÈ(ŒTŒ-LÚ‚´6hÈ&‚‘‚øDr#¢„Ñ"Ó"ô,Ju‚¸T+…Ìd!lh̘LÑâDh‚ÉbÁ.G$(G!BaH=L5Ì"Á‚(AèšH\˜HD“äJQN…aBˆXˆŽAŸî$F‘A@"ä"„aAf2"‚Ð$kD$á$–!4H"ŒÄˆ-A, +!(Œ,#„‚‚”2 D²B#""!H"HD`T0$ìAA‚JFÈcÆÁ¥„9’aá"SbBÀD!'#AðA$"F²DGÑH#¨ÓEáJq¢H2„!–n62LCBG/DLj)Õ‚D¨Bˆ-BŒê"$‚ÇÔ F*Ô„ÚBá„ø"AI˜J-ˆ,Ä‘ŸDCÑBá!4Yˆ&e%Ç$/BálAì„ÑAÂ(ˆNM#F¢%ƒÅ‰OƒDXK!à"È]h3Œ‚l„#4(F0ˆ¤!!GŒVr„Ž&l¡$Ç(BA®!AD")âDIV)dBMb¼‘X.M­R°AåÅMRiBâCÔA[2Cq44CU¨$‹B:AøVB(ÊŠñBH‚LÄŽBâi‚šóL„?Üââ%3DCøT"Ë„+D„MIJ…Ø(†óBBMˆ-‚D'Z‰êÒH¢$GAE…xBˆ›뤩„¸Â„èEÖ«9B!à"3T.$A@!‚”(H&!I$Â@3.3B @¬$ÂA%6!‚(£äH¡(@$AòH† (€.$E"$hD$¥È¼“–BD#AäØ"èi-‰ ÈÁc‚êHB$´’ÑHÈ…$xGÂ(IApvAAÄIG(8°4,‚&„…ráhX‰dAˆ"F"¤#(ˆ‚D#$‰x9 ŽâüT…àRÒ’Â&âbH6"Ϥ“ŽK%B.e(7n$q'„OtQˆ!¼bã¡xFñ<‚)áHX"+ˆ.“*8L\´,–O„ÈnÒBT…Æø‚HCjÁK4S4(êÒXJ†HtÆÈFÅÉÌkEÊ^.:žÌFèˆ!øANa#›&xB´T(„4rÈrFÂ$h%øD"¡‚CÄ$D"#cT̘Bƒ1„6a‡A%DbA†A"ÔA˜8!JTŒR„N&Xd@bˆNJbJ£!„J„t‚F`†ÍDˆÄ-B°8Ä‚ƒ¨Hÿ² #$qBL!R’D(O(!KŒ,ÑHÊQK$DCVŽ68«ÈCtáJ;&†4(kCx!rŒ1$‚F9dU8a–V£x&±ˆ(…zH5\d‚°´H$Ò!rH2Ä…x,âDÁ"ɱÈŒaoD4elFp1jQ$Jø$B¤()É$°’F&eD`ì²A(rÂ刱BaX$G"‰(fH, F‘Dˆ(F.ŠN!D‡D+”B‚|!ä!¨$`B'"`Hb¦cD(Î!bA-„j ©ˆ*ôÿA%,A„¡B’!LB±H#(†±È0$H†`JB#(„2IA‚A'…`BA(dˆÀB"„c‚D"MRSMN(ñBA4!"†"wr$$ñ!D‚#<BðA!NÂ$’)Ñ$2"Cä$ìȲ"<2 ´‚”a„A"T‘kHЍ—"Of("")%,èBØBfBà*t‚†²D:D‹D°ÂBôùÒ RÄHQ"‚ ?B2EÄp):‚8Ž‚aCÐBÂI„"@Ø"hBÈ"HDHcÈ$‚K$0ÁBE"R(ˆ!l>D!#…12#f!‚D‚1¤.DŽ€œA(&È$"L¤‚'i!ÀAA$A,"X$‚N"F2%¦CB¡”"`I2„$‹„J8Ž‚@l„ФD¢ ˜ˆ(uˆb(obH‚4 ÌlÁ!)\A+A€(‘¨„(p$â$$B(&ŒB%bS‹ƒ)„˜(CÈ!H0A †$ú"D :„J‚ŒŒ,BBHâ"1΀bDBf´D‚¤tHBDB¤$H&‚a”\„†\RDˆ Áƒ¢Š‰!€QD*a‚dD ‚ì„D!ÀB…†‘$LGBB&„hH)¢FA#(Iô6Œ "F*¢@ "ˆ‡Ba&‘A1y$¡I²(J8!Ž0Á!dAb<€LrID&X($†8E¦&Ta.ŒB3!($‚€ƒHƒh$(„,¨„AX|7-0A‰‘AC‚€„Ì„HH€H„B˜ˆ„ƒ@Jb„ƒƒñ*zTH”ŒH„E…XB0!@H‚@"€ˆA8@h@A€!(IÁEEAH‚4-(tB±rQS´Áá"t‰M&e’.IÔ1 DÜôa¥-ÓH.DH!©‰KÝŽ1ƒ(Hˆ#:!DDlFÂ'×*ˆÁA.UÁ¤¨eƒ‰ÈBQKˆ„d&f&f¤'ÂŽDü‚ˆ†$šA†1ÂÏ)øÕE°D´%ÄHlÄz*á„ÓÓ¨aCqFXD<&;$¹ÆaË„BB¦¢ˆ FøÁÄyR¸bHtBdB)<"%•Œ'!…¡)ŽFòD"G¤†Bˆ&rH(¢#B…D‘D‚&ä„ÃBŽÆ,„ #âô#1+«!ȉ£¦$Aª³â(‚uÁèHALÁ()B¸B˜B’*oø…A‚‚B,“WŒJaÄ"f¸BH¨„ˆ‡–L¿„•$K„J¦Ψøˆè‚-ˆ#hC#4ƒ±84J²‰Cóib¯ÒqQì1ôA­9WÔ>Æuò*D«8OBx4ò¢l¿õ,´ŸýtUÒ¶(òIMo.ûÃ6ò‹Ü_‚ì!l4¿¨ñ%ìä'Uß.óˆ2Lzô%[<ÓXúÌO#qdñ(!Ìo/yvñJ1ŸèÿÜ!/ù‰j_Ãÿ’ô/Tñü£!âHYB_ÞþL#\ÚË4†GŸòIÍO'±¦ýHq©zf½‚½Aõš*OÆú‚åÅ!ÏAõcgEzQ¹õcBOñòqêYñéÏöOlÂòlAß&øL®~¾o‚ýBÜï!üš-Ú/¬½:ô¤ûp2ät:ÅA¯ÄaïÂaÉä8×Ìò„2EôÅ:EôÁðáž3qaŒxsŒx2ä|:Ô<>ì8wMè(ôÁ:A¬îraŒxsŒx2ÄÁ¯CÂÁ£ÁáãÉaÃè8WŽ2CøÁ:GH¬!øáƈ?ÇŒx2„ü:äI¼ˆþ‚<>i->ÿUô{>ïô{¯ö>ïôÿ>ß:ýû>O8ýº6_¾ýûOúýû_®ÿÿÇäú÷Mí/ûÿ_í/ûÿÅ¿ÿÿÁ¿ßýáßßÿáßÿ÷Œóÿïó„óïkóÅûÿïóÅûÿïñáÿ÷Çþ÷mŒ?ÿÿŒ?ÿÿ>Å¿þÿÁ¿öýaÿþÿžaÿö÷Œóÿçû„óï#òÅû¿æòÅÿ·æþoüá>߯ø²þ÷Ç/ëûþD¯ï»ôúœ«eÏï»^ö9ë,0A(SdB$2A"paÌA‡BdB¼â8…ÂA((A&„€8Ž€dB ˜€„ÈA‰L€8ŽBŠ$$(¤(CdJ#t?4ÒÄA$`,hÕˆ-(!,hC¨¿D!tÂ$‘$Šq!dˆKƒRpQŽ\Ä,"ˆ!ò„2…ÄhQrH$mGŒÙBd˜`Œh’g!WˆM"$šòD¡Ç!xxB1hƒòD'ÊᜌÁD.ˆ¯˜ ȈDÁBAA‡›LB‚8¶UËCB!4©2Ì!8¥#Eè¡HLq\È()ÂŒŠ1FhÂS–!JØHrÔ‚ÉE!ÔˆŒy#òØ,¢Ð$"ÉÎm!£I…º!Ä!°ˆV‚J3‘)DˆA±ã9V E‘B°™3Fr¡A!†4˜QD'`Ò@âCÁ(1FÈŒó(Fd#A6ô!,9D‰2­éÑ‚„‰Ôj!1Aï!±„"’„'#d$Ë(B$„ˆO’Á„6ÀÂ.‚Eøð„(r1H‘#Ö2D`Bž"@´fˆâd1%B*x4%F˜&.D¨!AGˆCB‹")¸4rÄIèT1!0eP,Î(O„IÒB¤†¸$È!DD('IIb¤A`D"$ΈM9#‡4Fè(2„ñSJñ(/$Éñ!dN$f¡EbZ„GE"#~A"q$èƒQ,N‚”œôŽD¤Ý"K1Ð$ÒIÚH¢1fQT…õH4†øJ6Fª-Øð‡D6†¦ƒOHq"ô"BDšô$H…´š¨GŒ'A…Šaˆ/F8*&O"„d0H&L¢A˜!Z™ä‚’D°„!4Bx*\ ,*AÄA”(ˆOQBH!h!ŽÄFˆ0"Àp("IH˜D)"$#ˆ:INAd`4I„rB‘h%„t&Â(L®?„HD,D" ØEG(™dAˆ&b„Ç*`(°”"9dB)h*(¦‘HDŒ\HF˜#¤D@ä%D4"…ñ¯ï´BòE(Hð(dÔ–É5E2¶B1MB‡:m$LfD?Âñ3(œø!F/ZõA˜AŸHä"µ¡²Òá,(ò$C‘Ág.DÃ4D1N˜MÊIöH©Ø‚rÊIŽDAc¤#œ¤$† ‚$òa$‡…n>%ˆØˆaˆ+„…ôBÓÇŠEqD1XALÂHÕ$RM"ŠA´*s¥D±²H]1Ђò†)I8AA…óBˆM!#¨¡D$´S’ÂÌDT$„ÊR¢Ã)LÑ¢h–AC"…²Dˆœn" f¡O„q¤2XP($] Dñ%‰N('IÈD3áb¦$'D"ãÈE"I6Ï!t!"×e(ƒ,LÅ!'AA#«(&€ZA£TABAÆB•ŽBMB©5‰4HŠFâHH”‚™KH‘‡B”jhQN,„)%ŠTˆOü:fŒ,B„)Ò$$$$$(!`B‰("-AˆHˆÅ‚8!`„U4H!BIˆ!$TQJH DÀL2$L„ÈHi%ÔøA$"@" 2ŠBT!€H"ÁDB"‡A$4< Ä!ABˆDH¡(LdˆXˆBH*C™Hˆ(@”$€0$Š…eˆàR5´ˆ(!f:$h*¸'B (QB(hMH,LD‘‚ˆŽ'Là”ÄD( QL`ˆdH@&ƒ„„1Ê‘C‚hC(i)LbBN$T C4D¨M!Ã$LÄ¡$H@b!`%)"‘AŒŠi©‘  ò"$"B*4Q(IÄä,’&ñ‚AŠ4$.E" ‚14„KBÀ"N¨()‚2H£ª"NuÒ`aHH$,‚,‚„(’%$¢"DPH‰Ð(†"ˆAÈ&ˆEd˜"&ME*)„QAÀF ŒáaAÀâ@4A"€!4(`C‰ü#®P‡J‚±A8"ƒƒ(a$"€AѤ"E¤!಑!UDÔDR$@Blˆ!ÅEèYB A$‚¤a$F6â´>*”0($IH*JŠXJH8CL¢#*¸(ÀF“(D‚B €‘ˆ°)˜"…Ä$$À"F„ACBhD„0d)Œ„ØñMí$!,3$p"Dˆ.",ô(ÄÁ$¨!$‹j"¡€DŠ¡&A"KBH€ Hè(d!K&8”p"CaBHƒ‚('A€è(BFžÇSHH(E1„IS4ADD˜‚-AÀÁ!AK(A(G(tE „„„˜†#È¡Š HLŠ!Œ˜‚!€òŒœ@2A³†`hD ˆ"”LÁ‚ApÁzÁ "pAˆ+ƒ!CXB@‰FEa¸†@ˆ¡‚)˜"QPX‘†A@d¨†‰Ô´:¦„pÂC-CšÄAG+!,1„<¡˜A–['B„dv”‚?FJèAÚÄÁ‰”Âë!‚,Bd(ÎH<"_˜”EI¼&ø"HƒñQQ™ÔA˜*Žl—$h†ñ„*ä.I1DC”oÂù6H…”GÈAXJT „S„[”Œq(Ô!+†7E"ŽJ$–Ò(ØX”(ŽBÉâ8(A‰ôäG"„dðÁ7ÅE8""*$Øœf(˜$dh|„ VBELˆ9&F´8±"¤‘>„­¤eÐ%†êÉaˆÀBD^EÓÁC",¢ä„’$A,ä"ª˜?d„†7.Aˆ«!…!*‚‰ÑDQAM"äM$ŒÁNL&j“„82.È©‚¹‚ÝB"9HŽLaQ$d$hŠ&ùdRJñ$A#‚˜*Y™rúU4A¿æñqŒ'!üC2WG'c¾çmÑ+.¦/KòeË­qz~ÛüOÖöI¬o(ó´C9þkÅ–â9üK_Çâiâyü*åéÃ4O)øcííqeϹôÕOR´IöLÍ/,u´ö™òï”óq†ò‘Ó§„~8Oiã(ü~´©ÒDã(øfü¿ÖLöÌ(ñ$Adß”x¢ö´F(þ^,fi(ŽÂ¯„ñd(ž„"-cïBáb2Oµ”,rgôÑCa_fáJY£ºûç”-&ŸüaÃÒFòAù¯9ôïøcœïõ8åïÑä–ôlÅ«æíœ?¯ñåzß9ÿNˆ?½á¬ô˜ÒïÇûb¨omóáŠoCº"úÖ.¿øfÌïBõ8áç•O†ô-áëâïÅxâúôn(þNˆ'¬ÎZhüz”³ÒcúW(_÷ôY¤3õQC/÷e”?Vý¢¤k1oaájëkòÕ[Ï3õ¬ãׯÖÔö,QßÄùã.W­_ÿþÑ·¬­¿ü:Ñÿ„ûCý¯)ò´’i›¶o)òõšïý®&Ÿ„òalÛFŸF÷L¸/úòôÎÞ¯üËÞï½>ýZìoÿŠ6O+ÙBû±?hóôګ¯j÷],Öö)DBõX¸/îóôÎÎé|Êê­á¯ý>Ñïë'C-A§CMA£ÁaãÁaÁŽsׄŽ2O(øÃ:O"úÃŽ‚?î!qaŒxs¬‚'C.Á§C<>ì8WÌŽ2EôÁ:EôÁðáß1Ö„øsLˆ'C\ü:$|á>–O8wLè(ôÅ:YqÅÊîsaÜAxsŒx2„ü:$È¡>|3«÷ïSôyï1ôy_/1ö}wo1öýwO8ÿÿ6O8ÿ4_¼ý¼_¼ýþüáßÄúóÿÿÅøóÿïQüûÿïüû߯þÿÿïþÿÏ8ÿû>Oxÿº6_üÿû>_üÿûOúÿHOú÷m‰oëÿˆoëÿ?Á¿îÿÁ¿îýáÿîÿå¯îöŒó¯ïò„÷¯kòÅû¿ïòÄú·¯îÿ÷‡Oþ÷mˆ/ïÿ˜oî¿>üîîëÁ¯î½þîþïQþW"$$À"A&$ðAˆ-A‰¢‚!€¸â(((A&ÄTH@MÁ#ñ„SåBL!A$ñAAA4Ð8O8!‘I(A.¼1¨†²¤4†"8–t#‚aB#A5²FALH¢ƒ)Ô!((2„hІR+!Cr’dÐDäєĒA,DÁB(Fó"D‚#ƒÁ&xÀD!.D€dBfÓä!hR$N¨ñJÊB$ÇQB¹!‘D*Á"0,R@Ä)¢)8B I È`ba*2E’&Š¡BE1Ã(t‘rBÀcMRIä#.2IA‚†‘BF”$€4fY2Q¦JÁ¢ÀDóàA…ñBƒ‘D/!èÆ(AD+$Ba6BAD&a†]J‚a$JR-jhÂ`A(CˆÌv”(Ì"+!#qA1,$FjA$4@Ò(òHV‚(0(%Ü!a„ªAÂH©\ó{€aÒ!“Á"†a‚MA†Ch"‚,c”)bD˜$Š’fD„!BˆH.&ÄLè"!b$‰’fÁ2 Ä!àÕIÓ$˜„,´DâMB«C2$‹C’HO"3HDŒk„"DŒHÁ"A¯$1·ð!EQ‚X%§A*ÔÑÅŽDŠÒF²"øR—%úDDD\RåÂbW"\)tÂd†%ÒaD¨"°!äÃxH±R6(œCS„?$¡Q†Ò(^˜ŒÂ„D!E”ØÍB™ò(‰4,&Ø#VDœô4‚F˜%bÊ‹CMø41R<4H*®"A€¤2 &K4H!H!*1ªF¦A( #ÂQ2EA%È!CA6Gl!¡#Á"àB‘BN"H„0‚ƒŠ$ÄÝÃ&„B$ƒ@“È€R©˜1AÊ$ !D<„B™‡IB†ÒA"D,dB1ÀJ‰¨‰ÒT‘HDöá"ÐBq‚ŽBIØ"bBÐDø²B@‘¯TD2ÅÓÄB“dC„ñ¤¡4,1”A/B¶Œa*["d0$\ÑCØBx(ú…¯$ô‹¸D/‘Ö!ÆC¢°„1Âlxbá¢ÙƒRBF¬"S¸!ùBÙX¨…‡!HG9±,Ø!ɪ+#!Ü(iQWŒrHD˜!É!e,‡„HKH/ç3D9,Aè%!ÕJÁ¡Ib„k,È$Lb$L’#ò‚¸šä"TN*(PBh!"ž$F*‘!A(C“H’T!`F„âÚbˆÃ8#’‘ET„$‰*’„'…H‰¡ÂOKÂ(D‘BBòBÃr¤-„‚-$Fr”iH&RAŽD‘†p9”B…X+b…œCˆ@fˆN‚Ü!d¨Q*Ô8$Nˆ9Ad¼Œ8RqDòˆ49˜$DÒ¸‡aD#Ø–I„{Bà!4ĩȃ$Üh6ñ0f™BH4LH4$D(‹Q/R$NDÀ"3B’BB‡!I±H"’†DB„˜)Ä$€"á,AèH8ˆ)”ˆ#²D8I˜#„‰#bDÀ”"NRƒŠ‹\„L¤‚(A x$DˆbA D$Œ"$bAD"¨A Bˆ$h"ðB‚B 4"Š‚ˆt’B‹!€" ‚6ˆ‚!H&ˆB¤@¤Ã€$ÜÌ20$°Q„TA.D`„BGADN,J¡JHä2&Â!( %äcæ‚”HŒ:"lBN(è…„¢BÂ#("h”'©Fê!¨BÄ,Œ‰¢ˆZ!Z&dˆK‚)„&))èBOõ(H¥%!€.2(!"àD’A€!‘D% I€ä(Œ!B*1!D$‚1p%H(€Q$@b"à„"H& #A©4X)ÈiãÆA(MA„Ey(‚b"€!Ä"(DÀ$@Á$<HHHœA¨J¡ˆ"/(QBÊRB@bQHÀAH„–Â!Ž",5ˆ(¦X(„D@$Dƒ"BBY $G„F€²A3Àa@D!K!€ƒBS†¢"‘J±(±A¸j‚ "„„’$A€4á „¡A‘! +"„!IHÈ"@EˆÄ2ˆ¢^Þà Q‚24"Qb€1A t!¨"„pB8:"‚A$IÑ«©()²¢D"€8)¨¡XA( HH‚*8Hˆ) ‰™"Ÿ†Hc"‰(CD„B !ÄA"€/¼ApA(0’LÄAIÄ‹"HŠÂA,0! (DVHJH ‚aƒ„ !¤(,¤(ÀBHˆ9D1¡!AE@’$DD?„TŠ4T$aD"À„)@„B4AD"@#ˆ§ê0($•&B0(-$%Ä!!@q$„‰¡BHdDB@D†R! !DDL!AI‚I¤HB…"Ü3–bÇ“¶t i’Vò,O"f""[B,‚Â$$‡‚'A«E”+-H.B%b¢C2”Aš„„;EÒJƒtHJ4A!)Æ\ˆdA´êÄ#Ž‚,[(K†ªBLlBp"$!¡ÄJˆ$”jK”oDQ!n….$JºASAƒ2&¢!-!)¤!AH‰dß"r$"„‘›"=„n¤`3މaZ((K(®A]"KF"ÈÐ!XC¤‚*(1„%ÑŠfEˆCLò„JOˆÂÏ!_3GDX˜)”B%!AÂBM"K$ÐDSA4A'!rI(¢A…d1…ÅHAÔˆe¢‰¡BA$ŸBôK–ÔA‹’"E(1"±ŒÜÊHÉ£HP$O¤’$MJaJDh¢ ¢"*ô!+¤˜Nˆ)òl4ôò'\™ä!tH“_Anc^'ç)ãBcaöBn%côT2OèÒÁô~2Ç5n+bÕë´tJ›ÿáæCüX/oÔ*kJ'A_´üBxúNç-O–òH!Bü†²G7N#?HÿÄb4;_ÂþÎV÷æ!+8ޤö§a/œóHõÏÏ­µd´HÆ„o,}4â7óŠü~܇!^Z+©ÏÇï±:œ²\ñ*nס‘Zõ"b]F3â•õm<%tc¢q_VñB4-F3r±dò$D9§²Ïò\.n÷!±ò^R.jõô1«ñå¼lqB¢QÿxáÄùÊl?3ù)CöDóRƒOúÔ4-f]ª]/"þ®Ÿ1êõÅ-4=‚:õůÌÖúþ8ʯ‡ôdHoD¢Z/'¸ýŒ4/dóÒ„¹œõbÏa¿Rÿ!öuG^#?„õBqôT3{R}t¯bñQ.koBñ#côgqoñTåCôEaO”òFu½|öuK/µòGX?¡ôIoµóeXÈÿâžÍò&m=Ô¿AüO‘O¶ùnçÁöMaG6o\ò£Ô!þUÃþ3{Ø?!üÃGµû~ÿHÿ‚¶縦ó¦´?hû9N{_ïšýtä¯E´d4$oNö‚´o§ùdº-÷–ˆ¯¥í¡øôZo;:K=~¡ô97ï•Õ+õB7òRQF×Óñz.O!ÑFÓB÷f_1óVo6òEDRrlylñe\¿BõBßsóZSR¿!ôy#¯õ­t¿Xñ:&k™OaÁžN_¹õüo>òLRGO÷ÅT?jÿâ_søÒQ?,ýÂ?ùúYÊ÷ƒ5/eú´oIó‚t/áþ½’oõ&bÏÄæF6dKrOLó¢ÆO£ÝäùšX/,ùÒ$¹ºõŸèp6ô(EçCA£ÁaãÁaÉòˆsÓä(ôÁ:IòÁ"î)saä‚xs¬‚'C|:Ö|Âáï!Ò–,8·Mâ(S$?¬s„úÆòãxaŒxs¬‚'C|:Ô<>ì8í(ôÁ2Á,îraŒxsŒø2DȯC–Ä£á>ýÐsÿA¿w÷A¿÷õaÿw÷6Aÿw÷„Sÿçó¤Sïcóå[çóÅSåñáwwÅ~÷EŒ?wWüs÷oQôyÿo1ôyß/±ö}ÿoôýO8ýÿ>O8ý4_¼õ_<_<ýŸ~üáw_Äúó÷Åøó÷oQþû÷oüû×/þÿ÷o‘þÿO8ÿÿ6O8ÿ¾6_¼ÿÿ>_<ÿ÷®öwÇ®v_Æø²öÇø²¶ïCüê¾ëѯîùRèïîûVá?ωDˆlB B(xaÈAƒ*(ˆ+!Ž(À(@È"Ehb„"„"paØ”ˆ!‰ˆ¸â(((A&DpAÈAÈ#á( B8G„.FÈTóK¤B¡H‘Xì5(2$°&±HQ(‡ƒ‚KESâ!™Hô$(Ô#I$h1„O¡´E¡$FX4hC±ˆt2H˜C«‚æ4ƒ(!¦µ‚aB;†"$¤ÂR$B‚P(j©ç Œ8B„Ä((% q"ÄBX„"*d…&±bDR¤„B6´BBl ’!.žD*‚ÄHDZO„hA¨„$ˆJá"˜hIŠ"D¤+–°¡KB¦R„‚î1ÊFâ¡5ˆ0.HO!”!,M"$ÃváfxAN&¬BD¯#‹A!Dñ˜D#2˜0dqDq¦$4H‰¤(WbÚÄ"’E¡!ŠCå!(´H„‰‘Ê*Á„"BSb(Ia*C±ˆfŒRŽ(iñâm$.,5D‚ Â2…ã2‚$"6DÒB‚BDÈ!I„Á!HŽHÀ‘„K(Â$8#$òˆ”‡!APH‰(&–H"JÁA!…¸da#DÂ4$(IØ(qA´RR„0!F6‹‚+RH!d(X‰ÁMSNõCŒÑ"E8"A!?‚4KG"G"fÒrhär!TTFÄ¡j”c.XH”X|(²¤t¨A6¢ÅO¡„'¡RÁƒTh…MB‹a&Dó"D„‚$!a…r8ôE$´HRULò$'§M†A¢A†¸XÓ†Áû$Ž(A"0*#Á"$ÀlÂ(€B1(%¬#„.ap(dÂ@„¨"˜&Ä‚BØ„ˆ.T#¤H ª Â!ª„‚ˆ^!ˆ ÈƒÁ‚Bò#̪DFRH"01Àˆg‰þ@T#‚äH‘bGB¤CÂ(ÚFtb¨("‰È™”ÜDh)J!¢4 QH&D @“(**Q>°(q‚(¢<°TD)D42Ò…ñÄ4ä‘rb)d%û"Ñ$¨"W¤*±,È4Ì„°¡åqìaHq$!É(W,äÑ$Aæ’;ˆ#2‡§B.LÄh‡"6%qIÔ! Œ\4ŒÞ„þ‚x‚ÔBj4-„#¸adBÀe‹ˆ6²84”‚‡!Hü6îŒK%Tƒ@ø"ANT°"„Ñ…Â$ˆA&T&‘„Bà£,!r$8©ˆ2BCRHJÂ2Eº °‘,b†²4!7ƒ&„4(H* )’èi‰ARXŸ~$C’#a£3Ò.BDd"BCÂ!CÁL"‹„n4%±Er’èȱBˆ˜/B*jB†T‚HŽƒJQ%"ÉÓÚ†ƒQDh$ŒXBH­4‚$‚-$Â-®DŒbE("røÁ¤JQ$Œ -HJÈ¿SĈŽÀX$(‹(­( bJA„"IùA„Š„(Ixš‘"ˆð†&$Ä%PHÊ(A#A¢‚_Oˆ$CST8`Â"E¢*”(ä„_ø!‹€E8!AÁ2`B(Ü„A$Š1D"@dƒ€a‚Ì$¤†2„A"(ÂAÃŒB„@(!˜TcÏ’"Ed¡´ñBD($6(‚ÂD„DtA®Y@WˆŠZ‘/HB"*˜KXÇB„ £!&˜-‡A)’$"Œxhˆ&Ñ„BØHÁ¤8Aƒ@dC&(r„:"ƒä…¼x¸Dõ‡„H„…’l*‰‚(BÄ(‚ÂDÀÊ`!0$‚‚F€!tˆ3†‚!ØA$&D ‚`B€˜B8¡HÐ#ÁA‚Ä2A$H(…h‚4:4àp„dˆIÃ(I!B”"L$Q`ƒ–Ã*‚&dˆÀ( D‹!"à„”8/²IòD(ÅdB DN’ÐR"p(È$@Œ‚qAš4N(€ñAˆDˆ&*($!:$0$„@Àˆ-$ˆD‰‚€R„I‚ T„Ny#……m2…,!Ä2G"LD°aHD$ˆÐ(ˆ¨É‚`¤$D„¤X€Â$ˆ!)â$@ò$&R„,A&¤(Lˆ"RB° )!?LOB²AA8)PA:#A¥A-AA-)H(Aéˆ4Œ€a„ bH6¢#2AÆG$(‰Ò$árˆ’!M¦D&&(B¨‚D&(áÂ$Å!‘!ƒbˆƒL2dŠ—XD/”(AxAd£„„$‚1D)X@‘‚ ‚øæÅ@È fƒ€„$p4!@ˆ@A*1ˆ!,„@Ib(Ì;§T)ôAÀ!Åx!QŽsŠQ(„¤ò$‘7Ɔ¿AxˆÔh4,$I²„¥(IW„W†ð‚*Â$ƒø#„²(rdSˆ(’"Cá(2„,ò!,S¡¬2$*„Lˆ«¡''S)4šÂ„gÿIOñH8…ÄŽ˜Døi˜v\ˆ"#_B'B6ÄAÉòaAK„‰‚æ¬4BL±á9Q,´(¡<TÉ8*K†t¡ ¬(ˆØÃBBÄ„ 8Aв$¢"Œr„ˆ1¤„Üh‚ηcB•(žI©‚FEÉ$‰‡Ä„b@d„%å82Èd…ñá…Â#ÍŠ1„I¢(-2M$!%TŒrì‚Bññ"Á*±¤!h‚Cº%AL .(@D„„>(œB+Á8¿IHÑœôM6·‡£ñÉŸ$sa<>o›ÞØüˆC²2òA][Ï’õ(¯ÓXÔXôe¨¯©ó’EžÏ_&qo6˜/¸üC2·fç+¾ë-ÅíK2K«Vý.YO²µ—ô˜&&Í)[‚¯hcûŽ«{Óq˜â¸˜ßAr¼â¹ú"©3dž¢?RØžó$)G9káÂMˆ¯+c驼g1T‡)¨¼JáÆò”'SÝ’ö>:Dׄ?ÔªÑHrøßA¯ñ÷aO*yEø&Ÿ6u,:,ÿõômŒr(øMßXöc/¢ù¤"óýYCo¡ù‚&÷/ÿ=ôu†é"8†>$Ÿ¶í‚ø†Bßyí ß{’ïÓâù¦&×(Ÿò˜/jr‰ò½#OÑñ!¸iù¦"OAñ)¹-˜o8òœ‚/ÁbƒÒÌûª.dŒû®&Ç,‹Eùª.O­óû!$¿ÅòM¯±÷M¿…ñ[a¯‘öI¶ßæù¬‡êhó$_'ñ(Ÿõ×ø÷8Íû'ßTÖXîrým²MóÙOï¹¾EyÛòÛk¯¹þC¶û–ï*ñý¬/aû$´[?Mø{­]m­SÓÙò(m­{’¿ir¹ÿ˜»yy›r™û˜¿?B™¿ïªñÕ¢/B™¶ÿ*ñ•¦¿Âù*=OúRHÌÚJÛ†ùÚoô˜úk”§­-ä©ür8ÃØá{[ø{eï±uIr[ø[_¯ñ÷išß¶ý¶¤oaó2O"ñ&$ÿõ×òרvoøemÜÆe_¦ùí&¿mòùÓ/‘ýÉ·-¿}ýÿ¿ÆùgÙo«ò–´˜K²Ï(òý—ümø—ßRRÔ.=˜ÿjsö¹£o‘ù‹—)Ÿ;ú¿ÂÛù¶&Oiù2´iù¾"ßiù2'ꇂÇBÏÂr(ü,¸gjÏmòøêoýÊÖòøÞ/Óýl"p2ÄA¯CÂA£ÁaãÁaÁŽsÓä(ôÁ:A¬î)qaĈ7Lj'C|:Ô<>ì8wMè(ôÁ:EòÃ$?î)qa¬‚7Lj'C|:Ô<¾ÂaÉâ8·Mâ(“$¬“$¬îraŒxs¼(x„|:”Ä£‘èãÑÈ2W=ÿïôïô{_¯öïöÿÏ8ÿÿ>O8ÿ>6_¼÷>_¼÷~wüéw_Æøó÷ÿÇøû÷ïSüùÿïüù߯þýÿïþýÏ8ÿÿ>O8ÿž4_¼ýý<_¾ýßúù_,úóMŒ?ûû_¬?ûûå¿ûûÁ¿ûùáÿûûÁÿûóŒÓÿëó„ÓïkóÅ›ÿïó…›ÿïáê{ìêóEŒ/kû_¬/kÿä¯ï¿üúÞ+áïïÿáéPˆA„(EhB„@pAÈAˆ£á(€db@„"‚‚¸â(((A&" †4( €¸â(Á(( ‚R„&DÈ·³ÜAø*J؆i…"Ä’Tâ!(„‰ÒB+aDŒ.DàJd#Ö8Ò4Î)Ca„*yD˜¤Ä™’”8mÈ„¦Ä*†ò¸„#Hñ‚(Éc´˜(˜)L™(DD‚-CاHqˆåŠTQÊG‘!%¨…1…˜b! Á$$!.DCA*Á"M!…B‘.$À`BA’AŸ¢Є…r"‘4•BHBSHL’À4I‚$D‰4h‰¡A0DÉœò‚q41-T#‚!Ò$AÐ~De‚L"Ôò…6#¢„¢1$A!M(M('Q*1L4P”‚¤JˆñA"AF!A!MO„2d0dP%G"FLHBd4þbÐBBÔƒQ!Œh#PƒPB8!B$MCd"@x!„¡(’%1$Œá’Á†Cb!"’(D2A‚‚Hˆñ2$D)T(h#›$%ÈT ¶”X,B‚THÄ@ÒAÁd,B"Mª“—"Òƒ™5ú!K7"Ñ'&KAG"gE"OT$ÁDLÂ-¡,º”ÓIxqâ$8#_á#”2o"'‘-H#SI@¨’ACX"ƒè%2EB£3DCò!)”\'’*‘B"BGâ-GfB¤4ÉðæsA%Ä€P!¤ B0‚€!0DÀ(A8a„H($,qH$è2!D*B4N$A…äD$A.í#GD'“`R(D`6‰Ô$r"€êHÑ‚B$È(D"Fˆ2ˆO†‘I†eBQbNˆÇ)H˜R,bBJZV•Hk`APBŒ˜?ˆÈ QHXD.HÐR‘‰ÛVttDrH!a‡¡7D‹ƒ‘,(DL”1”HVt14$Oö(d1LqQ*‘KNªM!AIƒÁAɲÂC'…ô„Ydh‰äHÑ„1’•ø„"H'B—H"!d"O>Ø(kÅb/–DADCx¨hH.XCzX⨡4‚/t>94Bo„‘"ÅlG"‰‘B`B‘T*QC2„À"KlH‰”pB²R‰‰T4CH(%($ä#ò$L˜(F1dA‚E¨1„IS(B‡$ˆñÿF$AFŠÁ!³”´“‘d…cBÈT+"Ž]hÀ$À4ODøbшdFhIñ¦HD*Ò‡˜FàqšD@QŽ’K‡8c2Ø)ôˆKHMBÑh‚'˜%ô$Z‚D„BA'ÉJ2ˆDŠU(šd„¾“ó,R- ÅA'"N°HR$2àÒAx$R ‚-&èQ,B!´’âÄ"Á†"ð(‚AAÈIY mAD!DŽHFD˜$‹T‡€rÄØ!¡I)…ˆâˆõ’ApDQŠaBPÀ(IQ¡$HÄPB–H‚„O"$ ÄHD4‰¡A”$ƒà!RH”0$&ä„$RƒÒD=%”D!™±c1$‰„S$Cr2‘$UC8"QN!A®X¨AË8M„#šBLR!r”‚b"G‚G8ŠATàDAHTB9 „–„—$A‹HŒ!âD‚v(Ñ,2D(HÅb„š…5¢v6 @q;ˆ!Dƒˆ„ÅЂ„‘‚C…`BpA ‹H H‚ÁD€4‚DC I!ˆ8àA‚Àˆ@ÄÜ‚A¢A€Ä Ù(D¢!I"Aš(CDE¤THD§KAJL–hE"d(E HŠAXHJ‘BaH!‰t¤Hƒ,ƒhAB N0E,ÒAGŒÄ*äN"1 „*H”!ArBB©$DÁ"„$JX„a0k!˜ET…T4@]X€TÁ´X€¤L1FL‰€ÒD "C¤!P(‡$\:l¤œAC dLÒ‚,A4§‹o¡’LL."E A1pTxHHNH„.HKAˆ‰„‘ˆÀ$-BA‘1X0(KcB$‚ÔÔ"Â$Œ‚±ˆfH¬¡GŠ °*1AA)˜B@sŒ$X$(A#ሒDË$B²YHl!)èbQHB(0$\<|HÁ`CH(B„„@„è„Hˆ ˆ€¡BR!)‹ „$@‚a!à($(A*‚¸"(!!˜ïÉ@BB€ƒt‚*@‚„ , b€ˆˆDÀ !(ˆ A-ƒ" E!(ˆH3ó¼TœIÉhCˆvˆüš¤,c…¡hƒ7‚GÄ‹’‹’Åù$Q…Q‹Á¸‚Ñ$Æ$dŽä$“|… =ˆaA#åôíACÔÄžAƒˆEâDôA¡F˜äT¶$Á!ˆD+CLr2ÈH¨KQ.HDeMq¬3„9±qxhXŽE4åddñMDð”*$Õ‚6ÔðÔRGBC¬K-„.ID!‰ÏÁ!@TT…DÁh4–ÈHQ/H !@ÔøD„@'(‰#ãaAÂ$Eh*s—*Ô2BxÁQA$M1O!BÂ"C‘B7£BplSd•3±86I˜"éœÂ)Rhƒ¸¡¢8J FR…ˆ„áÃÛ“ˆÅ‘–(JØ(éEqHrH¢–ãÈá)¡I¤(."g‚‚ÐD“†Ió'ÈyXˆ-ˆ«±/‚ñŽ×$w~f•§9›ÁRo7ÛØòƒÜŸSýœ2LÒBñq]Ÿ¡öxïµaBß‚Äl_ø”õƒüO$óz§Ÿ˜üA#K&¯Hò†È.ÞM2Dk¸Ö߸å‚õ†E·ˆUHÝEøš*gÚØt´[ñŠB¯œØ#4SÏhô‰Û,±‚øEŸK_Ôñ£aßnò$mò$‰¯kr†ôòˆObô(H+H¿É"´Ž=ß^ÿ‘ñ(7ï…á…ÕásóR(ÏÍô;^eã)zEü2…ö"ŸQóXBÂt)ù)ß¶ý¿L¯ƒõ¿ž1Ë/Ô³x©´ÊòÎT/ƒôT®²OËó2"ß6̺ôІeTa—Oñ2|}šÞTß(ñCC¬øÊVÛ¿Ô’ñYŠ,ùÑkAŸqùTÊž"^þ&(Ôø,Ÿ¢»¤ñ24Ï&ëÉ4Ž-$íÚµ§÷{‡4~ïuö1x÷´NNA?aõi¥O6ú.?Äèjò$2^7'?‡ô/j[âG•KFß2ìBþEƒo>ñîiÿ©ÿE‹£¼ÊôªÌn¦fúš.?Ìébȶo»žŸ§ØíÔ‘xQͼû-†¯qÏýÚ»?¤xÉrË÷È›_døI‚§-?ˆé!ÈÂi´‹üÏKMÏoQTO’Ø,Ùdú‚zoÎöâ¨O¤ü‚J/ˆôâ˜ÍåÓÊ?o—óANýI‡VñqR“ô\³Ïä¾²û6o!ò6/3òx[Âõ9W?UòhmŸô%oŸåûè%§_¿LüÛ‡,£üÊÊo¢üLºÏ%ÿ¤(o+ù6²O#º†ò˳?¡|\×…EIýšŸ{öžQ¯YüÛ»H¿(ô‹Ío‘ýÚŸ1mˆ/(ù–O!éLñß’/†zÂüO(—FÝ,,’¾dëY¯iøN‹X«Y¯múvò/®'C­E/CÂA¡6MaÁŽsCô”"IñÅ2A¬Aö󆄯LxsŒx2ÄÁ§CÁ£ÁáãÁaÁO8wMè(ôÁ*IñÁD_îIteŒxwìCø6DůCä¼ä~Ö–LÎsÍŽ2M_¬ÓDñÅðáž#rAÌ„7Ç„'C.ħAÈ£‘èë!ÍÍÑq÷6AŸvöCŸÖôaßv÷aŸ~ö„ÿ¿nò„ó¯còÅ{?§òÅs·†Ÿ~wwøåv_†øòç—øæçïüïÿïüëϯþïîïQþênÏ8ÿú.Oxÿš&_ýýû*_¼}Ûú¡Ÿ÷„úñMˆûù_ˆ?úûÁ¿ÞùÁ¿Þøáßüû^ÁŸ¼òœÓ¿¬ò„Ó¯iòÅÛ¿íö…Û¿­äúýOIOúñE‰/kùWˆ/jýȯîüȯî¼þîþkÁ/&K2˜MÈ"ÃaBLDpAìTH@˜„#ñ„XA8A&DL!ñAA$"A„#ñ„’BI!„3D&4Rl!„AD„MÁ#ñ„2IaIAˆrèBbâ8+(«ACBÒ˜ˆ"=‹¡JÁ‚A-4KFµF¬BœBt#D˜¦|aŒBIñ"k†!‚ËA¥´B‘d…äÈBŽL¬¡H-C(6ØÂ¡‚I¡‚B+Í!ZXHÂL"‹$.Â'R,O­ŽŽ:TB„IÖˆð$LÁ"G•A&œ!ÄÂ(I²$ACB”˜€Q$CCDDˆA3ÔB!”H,1bMX!2D*TB¥!@¥B"dÈ:D!4åÑá49I|‚a¤`"AÇ0‚Ih"FD¤D&ÈE‰ÔA!âA‚˜RÁB,M©H0‚E$“A/‚5hÁbQI3ˆ$ŒAL•¢NA!dT£h$`bE&D‰AB DÿJ #“’’LÄ/šBDÁ"Ä@hB Ȉ*‘B…Ò’ƒ²B)ADâR”X)•”¤•$hB‡$£$R$é1(ˆ)ˆ!f$±Kf$”(D!ëA”kŠXM(1?Ð$’!±´‹G$X$"#šq‰R$„”(ÍU ³ÈÔ-‚V’H3,«R*Hæ!ØD’b_ƒÑ(„$SŒ&’1™"Ë(¯$ÈJ$GA/Dò¢BPBH…â&èV´Ô‚VD*D|Ò\sHò'„„N‚D4Ou †‡Aa&DH4‚`$@…‡B€&,! EÑÁ’ADT$F„`$„"ˆˆ#€"A(À€AØ!‹'Dj`"P‰´"4$ ¤-(DŽA(N*D/"(7„ˆN™ìBÈCa‡jƒb¨B¤A&„5ˆòQO(BQ,RL+H"!FXH#(Á!.ß`!Cñ*‘-AÍ*HEáÓ†±$‘&,Á‡ö#ò(*i"$a*‘xaÁ&Ñ{\v?…ê#¹ÖÁ6¿Þ(»–õ•›%]H#ѵiÙ¯q±x”ò—Ÿ1±èIq‘x󟃻ø‡"OAò‘éù–_ùH]I.!_Âûº.l.˜ï+óÜZ´Hø¢>(ÓB2G”Ô6vUºKñCA/öI¦_&ù®*Ìò’&Gb_'óOES÷mmMmŸâôe’_Oó×.Ÿ=Þ|É:ßüÜc¾BúmÓë*Oi»û$‚cûåŸ/Ñ}˜wXÕEÝXñˆéq—ü™“­‘—¨?‰ñ‰‘QØÉø™o©ñ´¦/B¸{†ö•Ÿ-¯yQUü$-Ë“ïjòüV«¾|ÊúˆB.úµßm'CA¯BÒ46丷Dá(’¬Ó„ñÁðá–paŒxcœ'Cü:$o<>ü‰{ËŽ2IñÁ:A¬ñáŽpaŒxs¬'Cü*$mÁ£Ááãáì8÷MŽ"A¬ôÁîra¬‚7Lj'Bü:$I<èãÁ)#ÛsüAÿöõA¿öôaÿvöaÿ~ö„óÿîò„óïbòÅ{çòÍswç~woüév߯øúçÇùâçïSüéïïüéϯþíïoþíd8ÿï,o8ÿ¾$¼ÿÿ,½ßü£Ÿ÷ÄúñMŒ?ûù_ŽúùןúøñŸúøãߨúÁßøòœÓÿëò„óïkòÕ›ÿíò…›÷ìêyOü¡ßÄø²žÿÅø¢îïAüêîëá¯îüèïîûÙ?ô…Tˆ8ÉbBpAèÔˆ!Àˆ£á(I,’$&$5È#ñA/‘8ˆ#á(!ÁÀÀ"A& †Iƒ€8Ž‚€R„&d.b3Þ8ŠKJŠÄ#ØZEÕ(BD8%Ä&t!rHÄ!ÁD£4Õr’$Á$:BUbA„ÔBD‰b¨1ÅG3"K…Ô¡"Dx#$1Q\ÄŸ´äÂa*¡„)d%Ä„%5$$Dœb!´,BÑÁ2DP‹’Q¤$a4)Bu(BDä‚×!Q%EqH@d!‰(%A<"AX$CÔˆCa!PÐHrBtTa„€1$ü3ÏÅÐ%Dˆ;H5ŠÁ„!€”¢…Q†DxRÄ‚;A¡Œ2’j$ˆ†CxTÂ$$BD L‘"G¤‚Å"ÈA!”-ˆE‚ˆIx¥ PD$80D¢ˆ!OT`$ˆ:B•d#g‚!@–"@Æ"G”ŒAŠõ‘dEÈÈ$!T-DCAš"L!A"ADÉCŒB¡„¯B¢Œ#’CšD#c”!LË…$RH"¤‚dÄ<Ø ŒÑ‚Âîs‹2FR‰Ab„ÔôÁ§!"šÒ"ø„LD²„ňGl>”/Œ”IDÚB\¡¨D)O!(q+$$Â&ѤÖ$bŒaŒØ…!x•”ˆ°”B1Ä›ƒO˜"AI‚‘†câÄ%8ˆƒIG#΄4!<4&bB@À$A“BQHPJF,#H"A&a$@$A‡DŠŠ‚X†, *B#QH!&PH GâQ‚Ü:æEE$+('¢(6“HObr(BXDi‘BEA-9A@d*ˆ„(hä™$(ÂÁÅDi)N1D€h„9v$4‚R!¾‰d!©RH #$DFXH/†è!‘(TB-&S¡<ÑJTœtƒÌ2`dLg‘"„ITˆòˆyC ý(žJW„4O*T¸/Be‹$&TR‡##‹4,PˆŽM2UbÂ2¯ˆakˆL±xXAEBDäBQB/DÂW†H.ac±ˆº$±„J’bŸ\è1˜,ADAB‚±!T‚d.A…4"KB,Ñ„Bµ…UHˆLrBÉDŒ#È(,Ôh†H"‡BB/IR(R"EdˆNÐ^Â’H…¤ƒ$äÄ8"%„1$­4À(B(A &Ø„’ðB¨óŒ"Q-H0Ãâ±",Aä"Ô„¡"Q¥H$´(ò•H¨!+ˆ5E£*‡T,áBZBˆ…£ƒáHÑ(ØØr˜Â@™&†)èŒÁ1…FˆöD)!FX#¥'J„J¸rXº„Òá¤2B<K!0TBÄC(HaÔ4!BGA"‰R$B!F¤!F¨ƒuèH‚ÊC‹1ÈaQ„H'¬‰"d!„'F±H©-ˆ#Á‚$Ͱ„$A„bè`JŒ"Ô$)È.H?y A$$d"ÀB€qB¡bA)`Á<¡$BHK‚,ÁæB‚)qH1D!„Á«A” H¥&d!„€±ÂIE)ˆA)H‚1(M«á-O†‘$ &„5Aa)A±B²EÔ"ÁCbV.D)2&|C(³4”hx(”"G"~¬Ô'¨TI“4HRˆ#òD#„%rê…’IŒY)Š‘+‚¡Ç((¡HTIP%I±‚ÂDL‘C'(4ðîò 3BA dAƒ"@4HHJÁB@Ä’Š(Hƒ¥ƒ¤ˆA$À L‚Fˆ¨@ƒ"†è27©)‚4%‘jIAA‚‘1D‡‚+H1…”BƒqDˆµ†‘h‚ˆ,+ˆbˆaˆ!H‰‘J#!R+H Ù(,aˆ‚ "!BKA!€â‡$Aà!h$@(A$–B„TLä3AQ%A¬Ä&h$¨&‚1xDp¤HD‡Hˆ!¤D–H;A¢„FÁˆ!J¨ˆA‹"À$(D$2‚fD"d¢œ5aD`H„„Â2G!$RCƒDDaFB )„C(AR$(Qƒ^n„EB(Fè)Ê„h$‚.$4IÄ*̤AÈД*OŠ !„9&´AaB#"#’DHA)†¤$`%(@¡L8" Ãò‚!XU‘ÀB!C,Ua¢¤")B¡€ÂˆD¢‰±„ÂÀ‚DŒ5¦„""RD€$€P¨€ˆ  „@(ˆðÕ €H!€€€ # @‚ €D"$@AhŠâÑ?Y!”")…óChM"I‡ÁI2Ta„Ô&!cF7CLá4#ñ(Šä¡‘4hˆ¤Ìá¤Ò„rD0A`„\Dšc)”Ê/(AŠ!ìaˆŽH´$‚2"¯Bš$)t*”J+“ˆ_C$$¢F¦Â1ID&DòmQaMIHR!P"à!"&$a„£á‚ÑHH±:ø"9ÝB¢ØkHH‘‚‚œB¦ÂCeˆ‚&è”8+‹9”I2!+!ƒr„&´¤Á2‚*á"4%ML„äI!#È(E‚a!¡¢¢"‡"1FäD±„´ 팖k!KH$,“Œ‹N¨1!˜!„7”)œ¢‰œ¡‹:r!4˜2H$*è$cTÄ„@è‚Ø„”U‰œŒ¸.ñÛs0K$OQôQ;…coQöD·DW.2lñO2ôq2QÓRôO†ºÂD_4±vòS)&/SõI/„ñboÁö„§ÄK*Ê–eô¥Ýn;OLø'q·x‡„BH8xKxCèh˜Â¿‘|Rè(´!ÞŠxBùA)Á‚)ñÁZ½¿6üÚsÖ6$Còèæï†þb«ø6Ü+”;­ò4œm“Qƒ_tÔ”2#ñQ>qÍ='‚?&tEæA£/uEöA7^u/s{yMñDe#;cõT~>\Û1^ƒ÷d/ƒùúBOåéI¢/süÝ_¥û¨D«±g”Ÿô‰‚?øB‰îjOÒ·ÙñÅ“œê)ùÓY-á‰ÑøQ¸ñÑJ‹÷ïA½söe,¯Aò¨âoDüb(ÏmóTtOø(Ï-áWû3¨ïREÓ6ÔV´CóEC-S?tWòdKOrÖaòcg"ObÓbò"EW6O6óG¥/Ávd±dòEefo"õ>H?¦â´Ô*ôRHï¤ñ4JOêæéúc„o#ø$¦Oqº#ýlÆÏ¦ùg‰¿ôIA—””8Ü:þ+ì7¾_½ü‹Ó¿–þB)ŽKŸ(ôš‚¿„q‚â(ø’Ã?uØò¸î?Õ½^ü,(O„ôÌÂï¨üRˆ¯.òÌÊ/¨üRˆ¯BòˆüƒÎEmA7d4åÔ•2¿·õ-glrbt6ò4&g>Eo#ugótaßÔÖIveñe#_dçQö/QÿÔñBJÔŠµòzBÏn÷˜¶¯Nñ¶O*ãi÷§]ç;·ÿßµYT—„ÎKŸ,´‰ÜüNœo½ÕüÑ¿©úÃj¼õˆ‚Zø’‚–b(‘ý›Ò¯ìçÓõ]D‡D…ìèöÈfFÜÂÿv¨¯-ñHÈ-˜/­øšÍ4p2ÄA¯BÓÊaãÑì87LŽ2A¬ôÁðáž'ƈ7ƈ'Bü:$ÊáãÁiÁ87MŽ2A¬ÓDqÁêBòá!ƈ7Lj'C.ŧC<¾>ÂaÁŽsÕè)’¬ôÁ8ìraÌ„7ÇLø"ÈçCÈ©>(ã×sôE¿võA¿vôaÿvöaÿöö„sÿfò„sïbòÅ{çòÅswæîw÷×îw_Öør÷wÇ/vþ>E¿öþA¿æýaïæþiïîö”óïïò•óï#úÕû¿çúÅû¿¥øñÿ÷…þõIˆ?ÿü[ˆ?þüÁ¿þÿÁ¿þýñÿ¾þÁ¿¼öŒÓ¿¬ò…Ó¯)òÕÚ¿¬òÔÚ·í®ÿÿÅâêóMˆ/ëü_ˆ/ê½üêÎëÁ¯î½þήëÁÏß ‚(IbB„„8Ž’$&Dˆ!ñAˆI‰yÁ¤GÀ#á848Q."„œ”8È#ñ„"I$"(A&ó¢-%jQ°HD¡im"I¡!°&Á7D(/DD‚ÑJ'Ã.‘ЂtX"‹B$I¡´¼­AFHqh$ø!H˜½„+”ÛX…ò2,K!Ì8ßH3B‰M,Jø"T†„„pHŒ!²øBˆ0˜Œòß;D6Ä!•(äBÑ‚'ƒàB$b3Ib±IF2HÄ"ˆ‘$#‡M2ƒÄcBô"t©!lBôA(D$A9…LqHjJSƒÌ5!"´"R“%òA‰‚‚ù&*¤A'HN¤óQ)!RB% R! BˆL"S„ò„DÑÔ$I(˜B()¸$ ºÔB/„BCä„ÍJD¤‚Î*BM„-AŒ2„ÀAE †`Â(ŠQ% K‚H%¢¸A?åCà"4E +Š$F(XCDÈD$c%ˆl¡&HàBCH !ô,ID‚ˆL!„d(C$š„!H$ˆCB’ÂL7¶€–A¡ZÄJÁAB) D‚MAE|AäÄ*$ñEðT‚‹Fªƒe„¢H‚M¢‚M•b*Ô„„:E$̈ÊÔ*$4„‹¤cÉ„DNHA0‚dD"†v ’†Fâ!Ä¢Cñ•$! A)¢"!ˆ"A‚!Š"B8L$H‡„ „MA‡Ä(AH!&4@D!B()’„@"$Ì:%ДBðQAˆB+! Ø2‹!T4&L‘ƒ„e$E”€8„A€x"&B¤+"BA!‚Cˆ²„¤(I舒„J$AŒ„8ˆD€H&¤È‚?’ -R!‚"V!2‚ª¤ˆjHb!„DÅ(!Ž„"I„D$¤ äD(dDBRIAˆ/9R„A*¸„!˜DCr$“ H€DŠÒD2D€àQ'1#$¡8@â‰B"R!b‚#a"+ÂFÄ„Ð(‚8Ê$¨eA(‚à„EFA8„„䀈8‚΄ ¤B–‚$@ „DgB *шdBP"P"€²wI"”H ‹XˆB 11)T#Bè!Š‚¤¡k„,ôkCg¿ôøÖ/)¶üÿeÿÌ ·„,tCˆrDèBqAˆl…ŠX‚Œ-A…òA$‘BlÑxä(=RO(mAŠiA,3T.–CäH8TL ŒètÈÄAJØdD<ŽSÀ¤Ø5ä(;E®ÄäH8ŽÄaÌØôH„¤„!°xè(¸„QHLÂ2A®àX24ˆÊDˆˆt±"+$ ’`(‚£3A'ÁBQB‚3äCÈB–d4’,¡H ±!0–€CB‰´"D(rÈ4AH†(ل䂈‚Lˆ´$ñ(„@<)ðD4Œ8!–8ò÷R€T(Z2C°B"`¨*øA§ABAH!´DN+! á$LI‚‚A"ä#Däˆ2D#AˆHH)Äh AH*dÒ@H%¢AŒš A‚a("/ø>¬D‚!$1BANB`!¨hA°x8‚Œ‘B„F1„D$8†‚$ˆ#”ˆ@d!5Jh,‰PD‚"#IØ‚(¡)K(Dˆ‚p‚C*ÐD$ˆ‚8rIEè!\ù“%)„‚‡$%8RŒ‚x"A’fÒJ¡$„H‚,†bA@ˆœ@’ÌbBÀ‚N& U(„E¨HD‡sH‰5Œ¡JE¢¢IAO"‡A „²ˆÂ„<‚–(”À´sŽ”FFB”H)A‚¸2ÑD1‚v¸(ÁL¡.H„ƒ¸Ád"‚ƒL9A£4&DH#Ö(aŒÐD¨I¸5â8ŒDhC¤Á‹8"ˆ'jD#Šè‰L‹„K(I!(eˆ^JABø+L$H„H@tBˆ†0†"á,BHD,XBIH„ˆ!Š8L¢àLFDÔˆˆ# (dHF€!ˆ+"$6„,8\=¿)”!+A ‰4("ÂAš‘"A$ H¤ ‚IL˜œBq¸Âàˆ áB8`"Q‰$‚²˜Th 'ˆƒ€D$ &NrШB(DX‚ê‚ñ#„­Eñ))è"‘#•Sƒb…(AH÷^¡A’ËA)á„Ø’ÂX¬±2¶*K"MB¶´ˆô4A/Dš£SˆŽ„,\!$ìaB¥x8"’Acò8'ŠsŒÓHäD2HŽBгHø‚”B£D>L%,R(F°&Q.„DžLÆ‘˜Bf!BdÅ3""/%h¡JÁ¢¨°ÂjC(…‡"‡!˜À‚F’!CEØ$‚¡‚GH(-¾H&ÈD€*aŠ ˆ$ŠïL§8…Aaƒ@¹”"#!D…åâÈÅ‹L¡p„2"*XBŸnÁ‚I"TA‰5‚"ˆx‘"ÐR¥(,ñ,¨4ÃDˆ²‚”Á-ˆÂ(ƒÔJ:R &T3 D*Á‚"6‚àb›ˆR!`!NRˆÈ0L’ƒ$#HtBÄX©Â’CÄHĉsƒ„T"ƒ„hA‰ñ(„!¨ca"…„ƒG‚*¦æ¡„8†"(dAø¶ù€P€0A" ¸”!AC’€Ž,(bB@ˆ2‚B¦I€ˆa$àDˆ@€ˆH‰G(€ˆ"A'BA+”ˆ°C‘$\=¼@Á#,T!„4¨$ˆ(ŽAƒƒ)´‚Ñ"H%‚1"ˆØ,Á‚.#´ˆá„-”/H–H,´˜²AINEbbÀ‚CH’ˆN ²„ñ"„ˆk‚$"0ˆ#(òD$¨%‚’FM„Š‘NÒ†$Ò–F‚‚@h@b"BÁK"C$ IT!4H‚HH0"@FŠ„‚xC¨ˆ" ˆ ¡@œ„l„ˆ(#„ ÁCŠ‘! ÁA%3–B,(bCÆ„DˆbH!€(†‚Ä2Q,c"8"<¡d(ˆ( ” (Q(GA,$Xˆ‚d&d(&XDKˆ.„`Dh?-`$&1@±!Ò"!!€´¢†D†Jd‰Š¢„hŒ’2D9i!£…B€!X(ÀŒ‚Ž"„ŒÈtI‘†)1‰D"2M‚Iaar’HóÊH‚!(H€*(A†!A4B©‰ˆ˜Ha©$…((1¤@¬IÌFAÈaO„’†Ä¯A‚¨’‚*!ÈA"I!€ø$H#„’‚BK‚ndB$N"€¡$!Œ(XÁ@H”ˆ&KAF"¢H¤@RJI(lEADŒi$˜H¡ALbÉI†„BJ+ 1€ÖBH8ŒÀD&ŠF"øB9“ $‚$0€$! „( !(´D2 L:A0 @‚B „@ H!ÿJ‚1(,"!( a‚Ap„ … 4("€($C@A((&„âB2$à6H€Á)£Ô‘•Aa@°±µ’f"2!%á$ª¸thDdB˜-„©±(˜H©±8­(n"(¾$8’GÄBMxÎ.I@ -ˆ/Áˆst£­d$K†Ô„â‚rÂ&ÈH¤Í$Dé’"è+J±"¤‘˜Æÿ•NÂ&4r²!Ò9!ˆZ€ÔÚÒ‚DÄF2äD…d(†el(ˆJ˜ŒÀA(!)’ÈD*$R8GDCÄG(&(!ª!†ˆáA²B‚:k!É’)„ª!©\òDB‚,¤|:ÙÀðA)†¤b‚X$#Hb#R.!Œ(±Dx„¤aZ½2ˆ+Ä&’LO"Ñ,±aIª÷”6æÓ¤nZℹ4³$”„+…+«8+“†2ŒDO¡c!C¨8K)ŽB„Ï‚Ata?øs!×ÄMDO(áAüVÔ/­á½JrÞJÈ/„¸*|föÌ*Obó˜/aô¬nOÌ÷Ôï]¾'ÆÈ™ôKoÂó†Eœœ+‘g©.˜‹-”gé‡hOIáGû$èó´8˳ïIŸBÍ„¥ôˆ>ï™ÆO/áGµT½ë-åDùV‚ï+JóQ?öc3O1ÔôBa?ã4ôã)úrˆ,á1ñ?õQS>¸RÙ¶L¤&O,ål¼Rüjø¯…÷„Ê/-ýܯ†ä¬æ¬üÄ¢¿†j*®¶ŽÊoFöÊJì·F|;ñIH-¦ò¸†«™­¬¯ªóÄÊ)ØŠx*j¨†òœ‚;g)O*øšª%tšúˆ-ŒcŒ²„á©Únúräo(÷„‚-’++f/i>ZC=Q/òSS4ÔÔ3ñSC8õ¡+?'(/#ã!åõ?5²Ñ¯fðD$KÞFO-½NþºÊ/­å„½ZýÚê¯,ô¨bæö&¬/kó†2¶Ö†ÿÚ–­å‡øHaŸòHH_ÂóœÏbºù.¬o©å­¹ùš¸/©áéñœ–-¤ohèks”æÂùŽ¢ÏëãÃøDD…D|(þ”Ïʸ"ÿr”g,Ú½Bø‚¶/oôã˜ð$t:Ô56ì9wè*“®ôÁÿQÄ‚øsˆ+#Á¯CÑ<ñãáè¸W‰Ž2ðñ*A¬AôñŽ!Æ¢„?Çø2$Á¯FÁÁ£ÁáãÁaÁO8í*ôÁ*A_¬!òÁŽRÆ„?Ç‚x"„üDˆ£>.ý3ÞsþA¿v÷A¿vôaÿ4öQ¿<ö¤Ó¿/ò„Ó¯#òÅ[?¥òÕS?¥è~ý[(îV„øòö?…øâÖïüêþ¯ýîÞ¯ÿîêïüÊnO:ýÊ*_:ýª"_®ýÛ*O¬}Ëêúÿ[HúõIˆoëû_¨/êùÁïêû^Á¯îøáïªú>Á¯èòŒÓ¯ëò„ׯhòåž¿íò„š·ì®Þ÷Ů߄øº¦ÿ…ø®¶kÁïj¸üª†+áïjûVÁG–!018Q.$08øa84(ˆ¸â(!“TJb8CåB#$b„@xAÈA‹"H(H"¼2ò„S"À$IaF(A&$!Ä$AÆÔHD¼ò„‚˜"(CáB"äb[‚,¢A4ŽA$(V‘B‚,c(â(LMˆ2D"ıctx„$òBˆ¸Jt"ØBÁÂ6ÌJ’0lDƒ´‚!²8XB¬(± c†èaâ(ACk(f &,lH/’èDÂ’@!o÷K±ˆÊ9!´#$+‚`/à(˜T‰„RA*œRrThB#¨A)¤L¦T%„ñ„BƒâháˆÅJ(CÔHˆb¢ºH&ñH†"Q$D†8"I“Ž‚(C%rˆÆ(DG‚%èHb(ØCBEѱ;_”"#°H$Ê‚K¡!N"ˆNˆN‚D#¸$‚¢Šf!K‚ŠBd$(¨s"Á–,¤‚CHâ$LL ! 1$Ji”8a`D€X$°‚ˆÌ?T@(I8F²L‚”4!%¸”VB&$Q!à$1Æ2X&Ä0¤(ÂÀQèBB°Bˆ‘‚RÈ(a`B*1„KB„B„BI$âDdA$ƒ…bEãÁ."#!HŒ¶JŠò4(k†rDd¨HÀ‚\F*œ‚+”%‚ª!I³ˆäAŠš"K)¨Pƒ:4#Eh‚.ŠlÜhFFâ(!"Ô(‹ôd„ƒDhABLHôXTà¦PB#õt I,L& !‰’BŒ$D,aA`„!$!D „Ä`Aˆ&„!E¡d@$$H&†„‚2„Fˆ r27PHh@h$$ˆ$È&ÀHA€D$%†~0‚(%E"(! $H€!b0"@ƒ¨ÀŒhBˆ!ƒ‚’„B , c2"-»B0C€’tG!`ñAN’Â1xAð‚$¡‚+†‡3H,d…„€µ"a)]R…AD¶)$2J–%'ÈX)IÚœèBGù$bŽ6ž$MƒR(Óò¨$ôH$¥‚ˆ*Ô(„±Ôü8ÎD$ËB!ƒ2…Â,’T$A$@è!f@bÌ$Ø%(‚Eh%‚(,„U.´!„"H áB8‚€²„‘(9,ÙBÇŠ‚‘ŠŒR„KJ "ÍD Š%"aDHÏ E&5R-AX!L8#(qI42XI4!HQ,¡H0"9˜Hñ(H)!’ad"T9Å,õƒ"É4‚‰a(Ř!†XA$#È$!XM¨%ÅiBƒ,q$ŽHˆ%ˆá„2ÜB  €„€(ï® (€ ‚"H ˆ€‚BÀ2s‡OB„БxA€ø¢ˆ# p$„„I‰rA€ø‚ˆ#€v$¤!A€I„ /(8R€$p$¤$Aðåè€(`B B(Bà(&„B"(B.AŽ.DB ÌA €Ž€nBHL7¦ "CH€uA˜#H€¤"A€H„HØ#€€X„€  ˜#B€H*"ðŽÖ€2I„Q„ˆ+)8hAI „xA€¸˜‚#€’$IpAXŒ€ˆ+A)8(AI2DÀxã  "K"AH„tA ¤‘+‘#€¢"K"AH„tA¹9 €’$AH„tAš¹’9(*²$¿ç€!   € ‚BÀ=ƒ€H  H€‚ðÙVÀ˜$È!"aBp(ä'I”(HŠQ$B.„p#!‚((‘((K(ABE"ÄF(R.„(#‚$²(‹$,ÈBI, LÁx£S‚#Q(Ey!‘( !A&Db‘FA$„a‚X’‚ Aè!BbP‚)!!ÁH"‰ „ #I"„HŸ"1„#cL#£B‰„"B©4$KA€#èßH( €€„€ˆˆ1Û"€¢B€"HH€ˆ)§ç  €À|‚€€„B((  HB ðµH€ ,63  "H€ˆ€¤ð%ÖH€!€<4· "  B€H(HHðD+ €€¢"b $$H €"" D Š€„$Hˆš) 4CB(B ¢BHB€ "ðÛýðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀA#Ž(A`B„ÀA€8à(€&pA ‚:(Ž €&pAH€øŸG€"H€"H(("*!¢"((""Hà82•€"€ŸçK‘H,`B"ÀA‰à(`B"ÀA‰à(¡"`B"ÀA‰àX4pA,8`B(AxAŽˆ#&„ÀA„ "(ލ##¢"(&„ÀAFŽ/ŠMÑ/!á((GB&”Ô€ø’Ž€r$dBðAIA((ˆ/+á*!‚‚€r$dBðAI‰€ø’¨#„Àˆ#&„ÀA„à(8`B(AxA("Ž2ˆ+#€"`B(Ah„à(ñ-ÀA€#á( ‚dB€„ˆ#á( ‚dB€„ˆ#á(€‚dB€„H ˆ/A:ZˆŽ€&"ˆŽ€&ÀAH ‚â(¢ &"HHð¾o€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(""€ ¾èÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç ü<< "(" "pz€""*("Àó€"‚"¢" ""("Ðvü<< "(€""¢"(ÿ(( ""‚‚À§ò ""((**"ðr€‚"""¢"(("À“ ((""((Ï|€""*("Àó€"*"‚‚""ðÛ’ÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç ü<< "(€""¢"(ÿ(( ""‚‚À§ò€"‚*("/A ü<<"(€ ð¤F€‚"""((|**"‚‚¢" ""!(("""*‚‚",1É€‚ "‚‚ð̇("" "€"1("*¢"*‚¢""*"ßÖü<<"(€ ð¤F€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(" ¢"€""ð³^ÀÏÃ*‚(""*‚ðÏ1€‚"""((|*(*‚*"‚¢"Ú(("""*‚‚",1É€‚ "‚‚ð̇("" "€"1ðÏ<ÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç ü<< "(€""¢"(ÿ(( ""‚‚À§ò€"‚*("/A ü<<"(€ ð¤F€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(""€ ¾èÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç (("""*‚‚",1É "(" "pz€""*("Àó€""*(" ?ëü<< "(€""¢"(ÿ(( ""‚‚À§ò€¢"( ""(*ð§ý€‚"""¢"(("À“ ((""((Ï|€""*("ÀóÿÌü<<"(€ ð¤F€‚"""¢"(("À“ ( (ðy¾ÀÏÃ*€"*§‡€‚"""((|*€"‚"¢" ""("Ðvü<< "(€""¢"(ÿ(( ""‚‚À§ò ""((**"ðr€‚"""¢"(("À“ ((""((Ï|€""*("Àó€""¢"*‚‚"""Mü<<"(€ ð¤F€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(€""*("Ð ü<< "(€""¢"(ÿ(( ""‚‚À§ò€¢"( ""(*ð§ý€‚"""¢"(("À“ ((""((Ï|€""*("ÀóÿÌ B(*J¦BH DHB!!ƒ!‚"‚BJ ¡A ¡ˆ2’"€¢$H"h H )˜ˆ¼<3H€BZ! £!‚!¢"*$ "J„H"8€!(BB „ D „!!!¨ !£""(("(( DBŠ„(¤ˆùÒûHZ¤T   " "‚""„„J¤AX !!‚"BB€€¤DB T €((¨Š( Bh DJ¨DXÊ)(ÁÍsB   "B $$„J€  !(BH  Š¡€HBBH€„ˆ¿$ € (2"" B "BHJ !(" „€ !!ˆ!ˆ(# "Šè3   ‚„$HB€$! " ‚HHHH J! )("*‚¢"bB J ¿ýƒJ!("(* €¡€€„$BBˆ’(J¢" €¬E ˆ-L=¹ „$!„ !*‚"B€B€"BB A" ¤$HBŠ(é‡A‚Df$"!#hALR(@ä„!ˆNArÈ%#BD#ˆ²$B",ˆ,Ñ„‚¨A¨P$Câ@"*‚ƒ)!è‘1ÌB&”B‚p„††FhBF*RH%‘ˆH%,$P$"dJ"ˆ9‚L‚è(ª‚d„M"àhàB"€‹##ñEZ°XBH€"*‚H( €H B€"  €!HÈ  ˆ$" $ H(àÒ<^€!„„……2 !¤C "¡B „$£j$2€„†!""$$$$¡B $%†BJ*H(ˆˆ(’j¤1Šƒ""¡„¢†Ê¡HˆZ Þ¼0H*! B"  ¢Bh€ B … !""¤"B€ RBˆ€¢ˆŠJ‚Š„!Œƒ †3ˆŒ*B Rj€( D€€‚ B( (B€R €ˆ hš¤((€ BˆhŸ™  H(8b 2€R ¢A€( A( A€ X€¤ C (( )B(B J*$!ˆÄKS2H€B("B((J$€( ‚"¡E"H€€Bˆ  (¤‚  ’BФ!‚’J/5Hh€€$*( „„B€† ! H€„"€H ¨H€„!ˆJ€ˆ…Â]VÑ‚<’"‚,’(‚”((ÂV"b˜*ˆ$sBx!¢¤d:HƒF"”HI‘dM¦º‚¤A$*ĈL"Ä„2A„J‚ô"ÌI’HLJœ‚†ÌH (-T׌"(!äB!*@EØ$”(l‘(ŒdB+&$5$!VØ‚$Á(ceF+"(+!&+‚!"ƒâ„#1ˆ°ˆ‡ä(Bˆ#4"E˜$‚Bf¢É4ÊHì#<øŒr8ÁB”Q!H(S!¨CQ¡O‚1è“–hH,)²jOƒ¸RèÃ؇×"t!Ä’8'(&‘*hB(&8i-‚ø¢H)D’)*˜8ɤŠÄ("b®F&Èd&¸„1(Nd¯B1ˆI•J’ó&ˆÏ±I@€QˆD(!‚a(Aƒf($!* &ˆ)Ä$DÀ$a „T„*)$äBbD…¸A…¤ˆ@"€ˆC‚ DB@ˆ’T@‘HxB(!´ˆQ‚"J/PD& $°$…ª™H"Œ"‡(A rBT!&d$„I”ˆ&•H€J"Bˆq‚Ô„HXH2NH/œDÃt‚䃄Fô8‚2CH4\-Œ&šÄd‚ìAä!ò²H#!è)ò\(N‚)Â##$c#ŽN&K’B&¥‚DŠ‚a!ƒ…´¤$Nh*ÂHº˜ƒd–(DÁZ’2.KAt¤ê,ˆ1†Ï²4!V $„bE‰¸D’ˆCÁHð–H#"˜a$Š1B*4ƒ8$J*Å"€cªF’¡D("$$"h"HPKH(‹F ŽH8Œ"Ç1¢RBè‚¢N(H.ÿ AHEÈBˆƒ†D(¢#IÔQ$…‹$x4H%ù$ˆP‚Lá"œ8$"$"#ÑB–Q8AÌÈIaDa"FŠEŠHôi„ˆ‹‚‰‚ÔI…¤A&Ô‚!”ˆ§„`(Mé³ßÁ¨iEBªD+W"ËH$ ‚Ca,„˜DBLÂBƒHt‚ø2AƒLÄn‡HJ1†‚ac¡O"8H€T¤Rh!Šô¢€±HhD#H¤‚„bOH‚$ù(`‚E¨Ñ)6‚Ë‚¤R‚†Ôòe[AH!+AÀ$@ˆ‚Ȇ&"ˆdJXh@”„ˆ+a Ä!Ç(K‚¤B!aFL1‚¤B#xA8$ C "ŽD„ÄDD2#ˆ°ÂÉBƒB7¯0t…¢-*Md"’æ†Â¢:$Á‚ŠqB$ÔĬ¤DA:Ȉ/A!bF‚è#(iBBB+(ka`N¤ª‘$O,ñAˆ#˜"*8„Iò¤RM%‚ƒ%hAƒÒ„t–"2","‰Ì†´ò;4`HABH€$A‰A$˜DˆL4BŠ8A.D,H¡pHˆN"Œ`„…t¤!0HŠHÁDA‚ ‚H&숂˜€|HÄR…¨(Ð11Ü„ACñB":#! ¤D†XBO„B<^$IäI!”BÎÂH„ODdhãÄIAôÆ%EôH"Bƒ˜(‹(Á)B"Œ‘„ÍDŽb‹f‚Í"I‰T‚±‰â‚¡€4‚H…8ˆŒ´!BlGјF\…‘Á†8„gf-H,JŠ!ÊY“Ò’A€iHø†CxBXˆ ‚Ÿ(„0D&’BL$)b$„!ÀBJª„‡!)°JR‚]R‡('XI*H´DAtA”J!¤¤(u5t#J¢$,ˆŽ!áAÓ‚2‚â„! L%´#ºAR‚ ÅÏÆ;Û€d„DIƒ"xŠÔ"<(€!Â(#ÂàD A,"¨£ˆ!A€ˆNAJˆX(Š(<"BBA@$4(bH%øÑ)²(T(0"aŒ„$BˆÂ(R+($I> ‰KB¡(Lˆ¬ˆ ‘ÀLa!8$‰I¢‚$+€D‘$DA°„" Ȥ±)qbHò+ã•JŽˆ¿)ˆÁ"øèÎNÊ¥|Tò,E8*><+sެ¯ÆØAôJ©±›e(/„XhbAô4Е#.ŒM¯›òQ!a^˜…øŒ2,T%c"Ÿ$íI4¦øx-"¡/3é"’:1\’hÔ&äÑ‘4êNº”éAøûrYÐDñ66OB¥B>hj"„Ó‚Aa++.$m"† ŽŸF’D#äAq2È©õX‰‰È–‚”’ޤß䃼‚2Hp)ìD(W¬ïÌqˆ‚øZ’hž„J%éJûˆ$ˆ.‚Z™MˆÍE^DŽdFô‚†®ˆAÏA\¤-J‹DˆÔt>©Œ˜H…j$¬4tX)nX­$c"ršÄÒȧFFbD‰tHº>ñ”b«¤Šl$Jø*„Ob´æùVÈŸ†Øø„”dJ9œî!ODTBÏÂühDŽ%n„ìѺɱI=JGÂåúb’=B‚LñÈHŒè¦Ü‰·%XA)2H$,±8h„(Hè®H‹{$Ïgô:ïBñ[A«Q¯¡¢gŸÔtÉ›¯…¡ˆÎjGLïŒåèñÄ>"ŸÒòe-~ZÇ…gi_ÔÜøËÁßü›ÉÿxAýLÆÙÔLy˜Ü$¹ÁôeIßšvaýÁ'W†ß”T•_œÜLøBÅT|‹º–üÙAëIߘԳýÉYï(‘4y!ó"šŸ’áy„¼HuU}IùŸÿÑøXl‡ô–£±Xä…øDËóCÙB÷V&ïÂòS¿¥öJX‹W‡Ÿ¸ôËɵô/#º¢û:ÌoäüXÎÞïÇfÔßÔôeN¯çækÿÄW×Ñ?<Ü»óÓ›ŸýøIÌôΓÿ̹”ÙEùÓoÜÿŒ½ßþöÅË?–òMM×ÕÜ|Íô¬ª¿Lø‰Ÿ¸ôCò=ý۞ǽÿ5Ù›ý{þkš>š¾³=²¯šû˜O‘ÙÝôEAß–ò-¯ÿøù‰üœŠÏªáqTøøX¾ìÏ7 M+"h,ô$!|qaL¢¨#zlt”Æ6+í$]AŸÖ³áú"ý‘1wñC!sÑ‘öhÒ„)È–OôdØñÁ¥{Ñ/„ÒÔùÕJØ$ñIìO#S†ÂTæ"ñI!?²}‘ñÉCá"ñƒ!/„û…Œ¯…r-ý!!ý?ò¬X~(í¦ï…„%±ˆñ(û-ôÏ¥ôJ*4u[ÚŠ¥%ô)뿼‘1g!-¢/*ùìolùÎÈî¾ï‚vDõAI]"íjONüÚß7óÝ‹½‹¿¼ô¡7¼ë÷Þ×»»OIˆù–F¿_þ1Ÿóþå«'ÇR×”ÞûÑLϺrSµ®ó™K»T¯<ôë¼ï½ô7¡Ÿ8õa¬o*™¢/;üqš¯ºýYˆ_ÛôYIÒöiaW¼¿xù5¨‹«ÏÎúŠZƒå…ÔˆïÛÞŸ 6Dq(ä4¶Ã!Ç!®3G„O*ô‘:OhñÑ:$îˆ7‡*ø2´-A‹KmQ£ÁáëA/·Œâ:wŒè*²„ñÑ#K(¨a!>!òA,*øsL:¹2Ò=8}Y+I^áëQ.iIâwŒª8K(,òŒBœÃDúbAÆðC¬ˆ#ÃȧD‰¼„ø$…?äDotlôA—F/ÖŒòA›"O8õ{,O8•ª_®ù{,O(qSèjóO(®„ø2†÷…®–/õ©¾oô)†/÷-¾o´iòÆÓ¿†ò„Ó‰òÇÛ¿Åò„„®÷…®„ø²õ7.¶/ô)¶oô­Ž/öm²oõ)¨O<ý),O:™(_¼ùY(O8ùAˆ®·ß…äzóI¨/{y[ø¤¤+Iê¹–ôhŒ/ƒô¬¼kM/–ƒ‚dB83á*S‚æùA#á‚¢ˆ§…Ž#ÂŒâ(11,S&6S.²ç„ªZ„ŽøA‡,H‹gŠøZ$Ž“Œ¢˜Ò$m‡,7F.&%è"¡’„ÆÌA‹¤H‹¤IäJ¢#ã8‘"Žƒ"KÈ'ÆŽrEèBH芄!&h¢Â+’LæHC¢IˆäN .$b0H’!«!8!(PЦ¡B‡B"¯‚”R‚ ¢¡„(È"ŠèBFQž#ApD$ÆÈAÓODÂ`(¡<5R,b1‡!%b#¨ˆ!p‚‚xŒRˆLhˆDDbEŒSbFÒÒ&Ȉ–a¢gdL8Œ¢[ ÙhHÁƒR„PÄ ¦ÁˆXŽ˜7$!ˆˆK„ r$„2hH(B8ÂH!*¢L…M‚tZˆ!Ñ!A@²ð(˜ˆà„‹"-H"‰ôˆÂ(šáˆ¡C¸DÁˆD!˜BB(ˆ„”ÈGA[H„iÃ4„1¤Fô˜œBƒBA'!Ø`KˆˆCêq4Þ-D"%YÈáL24.Dˆ†²Dö3‚Kø*(KJòŽ£M$”8Q"F˜)K‰…c4Äьđ‘˜fá„2„ bŽÉƒèDaÁlatšÔÄôdµË‚„¸bè±JúñÈ&ø$ˉ¦[Š"/‚ñlDÏËóDQU$´LᢑžKD,ô*È,ô¢8CÓíJófOgu.ÝIT‰­(çQ[!·oc{ŒTBghUú?œÏªüÂGoôómHM,N!w˜µ÷.ïCó<Ç›‰›‹aïsX­ÝÏhò*"‹ú¤4Å·ˆ/ô”­ÞAä\ÊEÿ›Ÿ©ówÜïAãù‹‚݈‰Þ<ó‚ûÄߔņo‰ñ‚ÌõÅŒÑØëAÝÈÔ„ôaOAø޶v¸Èä(ú¦²¯Y7#=&f÷WOǤ'¤ýŸòÑdñ²¿_iû¶ŽeÒdXv¿bú¥§¯<üFDÏÃöiMÏö¤§ß¸ØçÑgó]ï,ýÚx“ýé¿ïÊò‚…ÿIù޼éoú6C!ø™ÛÝýdtMý(-Oâþ꨿jûÍNßë‰ùª¿¨øãïŠùžˆÿØøROHù4”Oqý_Ü_˜y8ù´äGÕÍÌÏÄôDçïãù”ŽÏ‰k¯©þÄÂξo¡ó—IüõElÝ>וµø-Uý©‘ŸNñ‚orqžü,§ßDüͯ–T”›”ý'çR„ö%vWùYHYûI!RùCG†ú’-—/!gº-QŸÏÒýR-Oô!$1ù"…/9ñ2?!ûMI-?¤ò“_´â6|qÃxÂ…-2®^A¬ù-H¢’"â*¼BÒ®~LúˆB+$D/ñ6-ñnqŸÅô_ZµSº,÷aÿÓòƒ¨O)ù‚¦oiÙ×ûÛ?éüç5Ï”öHmŸ„ö¥¬ïùø'?oqöIŒûÁŸáüÉ„¿«ô¡§ß1õ+‰šø´2?ú›‹û%5Ç‘ÏvIø¥iï=ó„o×öç_)uÓûšÉ"û½T?óòÈ^k²/Hy†²†ü9©OÜýíˆ_KuL1(N(&ô"OãûÒLï«ùØJ¡ò"„O)ó†®ð2LA¯CÔ”êvÈaÍ(s×#,³”òa:A¬rHøs‡‚Æjø{,˜'Gô:„O4áë5¶Dä;WO)ôQrIñá"raˆôsH:ø2T>A#×4Nñk–®3ˆ¾2IòÑ:K$®¡ÂoWB†‚øsprÄ䣇<‰ºÄ_r\øCŸöñK—ö/³ô-'o³ÔÉò”S,_8õ8$_¼ñS,ß8õI(z÷_HzõMˆ¿kù_*.§o5ôio5ô)•/öµo9ôi.O8õZ"_8õf_ºñ{*_:ñSHzyYø¡w„ù#‡÷?røA¿úùQ¿vùaý»oôi#O8õ;*_8ýb_¸ñs¬_8}Iø¥—×…/jóAˆ/c{Sø"†+A¯æ¸ôjŽ+Céú6EÏpQ7‡M2q&Vƒ&BÈ&æñA"CÁ4A‹MÁ£ñ„Ó‹!Ž·…,4!IíB5QŽt#¤*¥xAØôÈ$/$bjÓ8rŽSb*ð8DV¢"0!À(+Á‡Ç6X§†§’#”4o„¸$q¶dG&Ã’$N†<&AmX(£Æ!…êHt9¤%Šh¡.åqXÊ^‚°ˆx"ì$‘$­DÉ$¹B3ZOŠ>‰fÉA£ÁaCAŽ¡ta(,¨‘#²T"CäD2”-xƒ"ÈH$&1ÜD)’D‘ŽRN,CÂÁI’…2!‹!$VÄ’‰6 È8iM‚JDˆr‚È$‰„Ѥ$˜R&ø„HoäJ²EAg#d‘´$U’LB‚ÂHL’‡D*“AB"%³L!úH¨,&1Eè"ˆ!sD2>H-)(A"¯œF„‰±H=)м(¤(k!…Ñ$Z…1,*IG©#–ˆFè"á<:tˆ+B!J’A(–5""F؆„(‚+‚1"B0BAZ8p„%$r‚Q”/¨0(tHÁƒ¤Z]˜pH"¨ˆ«AA‚M„$¤BŠtbhIô…*ÕBB‚Lh(ZØQäµM! H(k!‚‚!TƒDÉ"D‚ÀI!D‚"H„ $!€(ÄHŠ!P$˜L„,Ô‡'H*hd`("Ì;%‚!"#´A8±#Á"H°‚CðA“@YóBA©Ì”8’iˆF»H(x(ÄaœÆJQ)‰ô!ŒŒD(¬…(D‹H(iH/I2H/"ô$D r¬a%"+!ŠÆ‚†Ø*ˆ(ò+Ç H,"D‚èBHTDŽ’`Äf1(0(,±$Ã(‰d! #A¡A’`(D ¥%‚$c$À‚0bTB‚DMH%„$Ô&×AA„N)£Diˆ ‚8"$¨D¢"‹PB0&Ò(Ø0(‚À"I‰4‚.‚RD£"N.4èŽ3”‰F¸ˆ‹$È(†‚B‚˜B‚áRÂA"M$)–„‡$(LôjÛ t$!fbAÈDWHŠQA‚Dƒ"@2"C!VI„$<Â1`!„lÈNrÐ38&ŠŒ1’B©AD/„h"´¡.‚ Ñ&qTòÈ2"€B’„„ˆ.ˆˆŽˆaEܲ4Õ(!K"a’ˆC22g&"aÄ „$Q‚Pˆ[D‡1^¡ÚbA/NVE…iµBL”€.;óB•(,V!${CI2IˆD4’M$/¤!rH’8“¤‰Ô)UAŽC’I‘I²X6g(!%8Dåx™âÆôID+ÆC“ÁZr(Æ?F¡ÄMˆ¡A/$9BM§ƒ˜&Ä/IìÅx÷hRèdBº$üŒ$l(qÈrò*FÛþp$xDñeEñŸÕ7Ô=ø¹YŸÛuˆ´Œ£]õˆNŠb…%Â0bB/¥rÄ(œ´„”T-(Ïd¢a,D¡„¨‚¸*±+$&&Ø4DD’ëC‹“ˆEªˆ‰Ä*>A!B$#ÄV€L!áHÄ€HB2‚ƒ#DtAÈ„LâÂä†J§‚Š Vˆ(„ˆ ”€2„ð!$ˆ‰DA‚%ÈRAŽùÃÝD#(‚Ò±H’FˆÁ!£Z‚…ä¸STL/²HŽHp8I6/A!¨D¦‚JF4.„B@„RB(E›H6‚d!0ˆJÈ”)‚ „¨E$ÞÎ$9rHôB(RŒ–t-E¥ä•RC‰Û$¨'Ý"/TCeE$f!rdøB*-R)Vèô()±¤æ"KbðHI3„i4MŸB¸8'K,‹qËÒ‹§̶‚µÂ;bDT[Ï+äbâÁf´(Òq¡C&Ž‚Iɘ^(T8cÄ248€¡$×$lLä"áh¢A&š(´!$Ò,á$¨R…a%‰øAAÃó"–BŠD(-HKAL$ÂL„BHkFR)!#i„&ódT,ˆ—‚$AN,5‚,²„2AC’L”A‰˜† h!ÃñE4`"FAr‘h'DRÇK!ˆL.^B9Ó‚T˜B..A`•D¡-HÐa±ˆa” °2bDø¡D`DfAøA‚Fdá(4H£ÁrD,bAB*QAN#ØH®A"™dÂŽ((RŽ$Hƒ™.&cB32%ˆ"$ChI&¢¥q„¬D!Û„N$9ÑšD@±’„rˆ!òÂ)"H4¢1 -E…DHÄðH1à!„>LÔˆ¡$ LR*8NOBDÑ(Ž„¸”‘B„£dH(¯û@DCØ’&F$#œbC (ÀŽB,HA$b„ ‚)4Aˆ€•(`†,„!Èb@aBC( A&L%Iˆa„0$œ=[$Tb<8*(CRLˆˆºHQ„?¡È†b€ÂK”"K!‹BÝFQ2"&4H²*xÒthN‚‚L‰ä‚4ˆ)á„¶’¨4)"¤bD"Ä(Ù”ˆïDbDL²‡G$K‹E„‡L(ß*DP$B€$"L¬B—„I‚F†"¡ˆ€"A" $±!ƒDQ,BA"…D"(B"ƒ$Tˆˆà‚‚l9÷hpÁJà‚„!¢p„¡%4(!d"˜‚ÐâB8R€²ˆ‰ˆØSB„J2D'‚”"`± $%§$J"HD€æAè H…Ì!HÀ(‰,„ÈDˆN$oC%S‚!LJ‘-¬*rÂÈ‚…B‚hHD(„Hx$Bò$BG„ŠBxAÀ"`°òÈ…Ñ,TQ"bOHÈBG‰‘XÐHÂBÀ$@éˆ&,aDB\ÂLd„HJ„ˆ$âÔ6óPÈ *²-µq„H’„!…ÉŒ‚$DïS"´d!0H#‘ˆO*¤8¦IÔÁ4ÂD"B„.$(…u21HB߃l(Á%˜©€H0E8) ¢*t´D„#ð·µ"b%#$BAä!”#ª%ÂÃB¨BŒñŠa³òHQ3È/ä´‘8"„-$ŠvøƒHBLBØRNZ%ñ"(ˆ/$hˆO‚âXñ!(ˆ"ø‡5RHHƒqª(Œ¢$$$9£ H°‚I’¡@ I!(ˆ!(ŠáˆHCè„h‚7„‚#2‰H‚5$„H˜HÀDFÃˆŽ¢€¤D°’-(I!¨AWw$‘JBBT¡…(h"Q@!B@B¡*‚&‚BÇD-$ˆ@¡D „È@ˆ2(U`‚0”$’aŽéCÅB@Eˆ‚tq&Ò!¸!dˆ/(1‚#¸„¨ÄEèòÑË„‚b4Ö#^‘,FXˆˆ¯*Ò8ª²¨)Û‘)ÖΚH!ØTŠ‡Ã…ÙÈ2™MˆFrClQO(äŒòH¢*é‚1…*…ùIÈH†ØÔ‘tEøXè‰;&A‘<‰¡ˆ‚8{»$&ÑJcD=A)B±aø(†:‚„‚BzÙ#¤$¨°D¬{Dºh?(Â!%уÌÂ/â:˜¦J^GÉÜ"ô,!jVXDN¢oBã(òE‰JñÈÎA¼ó©E¤H‚Œ´B²ò‰EBØ„!òHE$,n$¦"´äX9(¹Ö*²Ô¸tÁbƒ±<Õ(±/3$Y‘G/BˆÒÑôJMŸ(x’dSN¢~B¿!´òTˆø˜H^ø%,8$M¤=èù!QqDYFâbÆ#…7‹Ï¼¾ŠaEo)tÇó‡“yòxF¯'u,qqÝÈüÛ†¶BôjuÏB­ÍãøŠOÄùaÏÇþŒ$‹:ò4äO˜öéYöôŒOÅõlŒ_Áæ„âƒôt„eö­•͋ůœÜû&ó¶zúˆHÍGá:â†ôBšú®?±ÓÅøDLOÚò±*¿HûtÔdüÚí%õX:od¶F3³-3½,ÍK¿Ñ%u#ö%l¿‹ò³¨ÿ¯Yf/¨xó‘=Å¿æôr_¿”Ò^ɼý’#ogçüýijï¼üÛú´ýÉÇ÷x¿è3öÛO*ú‚¤Oiú÷uŸ¼ü˨Ï÷'eÇÔï–ô(Sÿƒòü¾Ï²ûßøYZŸ¬ý‰ÆŸfþÝËŸ“öQm„+¨žáŸµõÃË?Dú\»¿ÒÒÕÒÝò¥¹¯ûñ$|ÏCÿ~vo­µZå¥õxöoEvÁGã‚ñZjï±ÓÕ"ñA>ÝzÍ·Õ×KM?qô”„o“ìùRDGV߆úÌ…/Dù¢Ößôñ”õASŸôw“Äó'·?µôR*/!ó†—we7³/1õÎ^odý4LMAj-Bÿrõ†_Çôœ´NQ,}ñ’¶ñ®3—%wÇoaù‚²?=üú*Q/ªûGöåÜD¤ORÙ(û’oIû¾¶íÒ¯‰ÁÚodôfÖ"-?‘ô9­YŸ$ñAEó#yï†ù¦?ŸÁú–‚k™Ox¹ø–B_—ÑTÒ]æVÖö¬ÌYåBÿÖC_¯ÿÊS„yšû“÷?ÕÍõÄ÷ÉO+ú2Mwoò¹ë»ùOvö'eÇÄ—Nc¿õ¥¼o3öU”ßÕ‰ñÒ‹…ù/7Ï„ñ‹Ù/erö2-s?­þrC;Ÿäþf,OôMIÎ|_•ù#Úž^Ïç¿^øX˜!ôØö'G¿ÓBr3ÅA§c]C§1<¶>Òý†sÉÑ&3†_¤ÓñÇ?üaÁÖ‚xs/ñ2‡ô;GNÁ·!áw>cûO8Õ®â(Ó&ñÁw$ñÁ?$ôe—EU7ǃgg|ÔtÃÁo!ÖVŽsEì*Q$¬÷D>Q$_þÑDtE„w×)|6”ÆïC’Ê£þoqÁæ/1ö9no1õ9N/3ôbo1õ=x_9õ/8O:‘>½ñG9Ï8ýO]ÏzõC,®WŸÄø¶ç7ÅOcøeßcøQŸgøa߯ú–Gß…û‡Sÿ„ó”­4_üýK8OzõC¾×ÿ„âz÷Eˆos|SëkøcŸÃúVQŸkøsßáúWŸ)óÆS¿âó–2_¼ýa9o:ùkO{yGèróEˆo{ú_ˆ/BûÈïFûȯNùêÏdûáOÁM²R$Ð$2&&ðaH-A‰H!ÈAƒ‚¸â()"8!H“„V….„è*Rƒ‚%øÁH-A…Ô-A(<ŽfHã„ÂÂB(Uèbd5¨8„†ÆA$–D‹$IüÒ(O(©%ŽÂ‰’„((A®$À¡“ÉẼTAL%¦($ÈÎ0‡fhGC–CÃѤ…øI$»HlHia‚h¨J&±/àœ#ô"ÊÒ´9H#Œ±Îâ(„"¡("E1‚>A‚mM†Ô)$ÁЂ´ˆh%NFKŒÇF¨B()‚B¡ŠØÁd&2A Bâ†6Šƒ(Ú4Š©€’(̃´BÈA‚NÊp„è&˜"hˆC’ƒ$Aœ!‰LDqH$!ŒÈä#A‘"©-bˆE I‘²‚ˆCG)RA‹‚„0ˆh£¥(FK¢€ÑÄÂB¸:Dƒ–U¡ƒ¨‡ˆBÁ2A@’8jG‚B*"c(`Ašô¾ÁðB$!D„a."ŠäÒCS‘(FÃB‰1S„H Ô,A²‚Ø$¡ÁFDiD`Eè,ÂH"CqˆÂ‚X#¸H!$+†MXO DŒ„ÒBÄCA‚)!äX8pBc#ÁH!&HlØ„°"ñ‚$ƒ±Ã!ƒt)aJÀHŠEùR•âpX£4$žCbJ”Ï"ÄHH]¹;J¡-LŽDHcˆE!H†ƒØ‘bX(‘ˆ@9‰ƒ„„ÁÂ`¤BJ DDND€ÁH‰(‘$‰â#’†2…‚(ˆŒTÁ€b)ˆ‹ˆaôe€%Dt4H!ä‚D$B"Â’’$±Ù"”‚ ƒÄBD½X†Ò¨ d(FTHhŒ„FÉÆ„8"މQЍ$„…ñ…¦ÈÃ!ò(q(1! ‘¦ƒ!H”GBBMUS…‚"Â$‰ÔÁB!!4pARP$DC$0ˆ%@ÐZäA@X0$@,!$‚ŸùÀh€$ä!%!bƒA’HB@B€TŒáˆAFT$„h($˜BW""ˆ$Á\#ÄAòtB¬ÎZç„§-ï!™;(¸ŒüBHŸ,É»N°BeaqºJe…!…rØ)ôLÑŸ(™KŒ¨L4Å&¸JÚŠ’$)*‰²!²ÒX6}£´8ø”o‚)¨¢™.ÛR.!a’†ó‚ hG*Š„5dHòYœ0(—‘dF8EB8%Ÿ*AŽÑB™'‚7B™(U$B­A—„F¨„Kˆ?Œ„”IuÄÉÀć¨Í„.1ODç…jh…òˆŽ˜©2%AR;#ZQÃò)Lr„¢£¨K‚âÄTD°ˆ¢"ÊB(BÈ„Š±DfYÓ\Beä'†•Ø)8¬X$²ÂY#?1‘+A£åTHÆøˆ…«'´Bê¡…Ñ"U#X’ŒH‚ÁÄÃŒôBÄOˆQAFú((ƒØhBɧ–x28ƒøІHÒHÂ$‹ŠÈ1ÓˆH|DÈ(©’('1¨ÁM‚º¸¢˜KAÏ,HÒ„ñ\çF­F¨aÏBs~–Ï©r8ü”O©áõ½'ä7üÉyHèÄøÛGÁ•ñÔÍQ$OôÿÑô\Õ?”Ý™x˜ÖaˆéŒyÌøJJßÜó&_ßÄó,,–þ‰}GY/1²!ˆqê¡zŸ×”³ñŒ†ÇKOD¢Xˆ9¹®µþÌxÕø²7+:ùœ´ïü„(ˆ¬OÅ!ÜBöU!ßåV$¯„vMùa6O5wëü¸Ÿ»A2Kù²×?9ý:[¯­ôŽÁ×Uƒ¤AϼýZN/%õŒÞ¿µýH?‘åõõO}ù…ÕÏŒü’+ŽÑŸØø…FkâÏïþ?!‹æ¯†²¡ûŠø)¨Ÿ»ú›½)û±ŽÈñ%ßÚû¯¨OCñ%®¡ú8ŸˆÛÜvUñm-Õù©;/‹âÌúä~㩸ˆøÈœOÍý&Ë$&$åDrFR”ña_Rú+5g¦Ió6·/KóÞÖ/ñNŠ}Ç—QLtLò–Ç%òTOµÑöMI5òCB4ñIA_qøEWŒÑbqÖfuÃóBBoèô7×A&ñABø#/+щñ2¢g¡«¬ù´{!#“2ßÎÓD#㳨ÇÁ|TÕ/1Ò"á…í„t.öJBŒü(ÌHñÄ#ÔBÿEiŸ#õZ¯õYI$ï×õí,ϸz7ö2/cò3<ü*^ÿmô‚ÅW”ÃÔDôHŸÿìôL[?qõ‰›/5ùI[§•OwÕßÔô׿!É–/!ø’/äØ~ü'çÿüÿ?l]dW”‹º‡ÈïÓú5³¯¨{“9±ÑIrŸÿ¼ª;û1¼OJ¹´ª»’û©‘Ÿú´Aôl-U¸¨Û3²±½˜÷ø¾o­øBHBjòT]w…$'RA¯cñFS¿á·ÖV=/8׆â(“&8“&´AòãžVu!¤„7ׂ'g/”üz.¯<Nãï%ôBiM<×-Á2A_ìsFøARÉôå^GA_Æ„øs,mŒoÃØ|:üÁ£ñéç!=c?¸wŒÄ6A¼“´áBñi–raÌ¡·×$/A”ÄçC,¼”èïCäs8ÍLòAŸbñADñaÝ(Q–-Oxÿ(ox³òÇ?ÿ•ö†—wÕO{ùK®ŸÄø¶—7åOrùREßþùRAŸöùcß$ûEϤó”Wï$û”6½ñA¨_8õKH?zÿWHz÷Eˆ?súÓ8/cúS¿ëúS¿ãøqßãú6Q›3Oyõ+§ß™á(ù.<>²?Q“ïêøª"%ú(™%È(¯Áû’˜ѯµýxR¿¹÷K«.ë‡4ñ‰y¯+X¢ohø×V}Îï¥õd½_ñÑÔ™Dü“_ÁýΆ.¨§¤-š§!'%'¤-š¯h¯©Ÿ„¢hFøF/¨¸lýøH‚vTü$ÌÏÃõFo#¸Tøî\O±±4óTK3È|_Åò_-?qñ9i÷ÖÿÜñ½›‰gk_Eñ¶“9ù¿žï+xªs9éCò,Ï©»¹ñû™ø¯5ù™ÙÏ‘¹Ù¿ûûé?™öûÚ'*%ö†×oõýžŸ¿›ü‘¿ÿ‘TŸ„ôěϙô„–o/õØ*¯,øšú/$]"§$¯‰üÚŠ+Ÿ¢*«Ùíõ†Â§Î/‹ÿjlC¢DªÿŽOíÿÂTŽn¬™ñ4~øQ±¯Žßªï-z2²ñ’‚½Ç¯8üíɾÎï„ÔôAHOhýÛ]iùöJï¦ýÂØ­’/-ôRO¤µJñJ«ƒK!:ªØÍ´œìñ¬¦¯†æDÔDô,ìÏéõ¤œOmô~„ï¨ýHá‡÷n²p:ô%AïBÑ4a÷C\6,8w$Ì6CòÅ2GR_ìóaŸ+!F(7Ç('C~:ôEÁ¿ä>6V,=sψÂ2Aä…áK¾–õøîo)õlœ/÷,¼oô·™$‹$$„,2$&6I$„`ŒTHQ(@¢§!Ž…¤W‚.”„X#$BøaH”ˆLfHxì(Ž‚,O(ŠnB@T‚$„ÆÌA‹ŠÐˆI¼ò„’‹$ˆŒ¢ˆð„"A.B¬4¯c!8BÄáA¢AˆŠQH‚h‚A BtÈP‚ƒxY‚:A˜‚€qè<8AÀ(D0M†$Q(0ˆ°d"K(E‚ú„,ÐBˆL ƒ‚ˆƒy4ø>ð„‚C„A"qH„K‚C!ŒI!1ˆAƒ‚BXA0 ˆÙŠÄ1HšùÁŠ1B ÒHTAƒÈP(À‚ƒC&¦$LräHØH$¤‚À$‚£"°ˆq$ñÚóGhC-XB"ˆö„*‚,#¨$'#Á$PŽB°„ÂCñHA„")áŽ4#Ø$#b!FªŸLÂFÄD(q¡fF”È$‹”Š4ˆ1#2&$¹H”j0h"ND.‘)(%’ÌžB`Štž LòJ„)D(1!IÔBˆ-Åh$P(Ei$"HH2†è"qH„á*2Ô†!‘„£‚(ƒ¢I)$&¸8D/ŒèA„"J"ˆáht(¢ƒâ²3Søt%è„AxH8mDŒ¨I,Q‚?A‘'"](‰\R/‚¸r$4HFi¤ª£t}4$ˆ,Ì’OÄáÂEÈD”‚:¢.ÄšA¸ReˆA-¹‡£AâA!²˜‚ú&b„Œƒ2ôj‰º„aˆƒ)!åóhZúR@8(B(!Ž"À"‚0(ÈAB,€bH娈!ª3"!!(A(A‚FŒÈÁ@HàH"Á$ æ„‹ "ˆ1`„,eB,4BˆzÓƒ(((ˆˆ@QßêJqzÕ(WÁ,qAè¤Åsën‡ƒáBh!Çòá>\ô¨MA‰Ò>|{ôˆsÄŽFé,S…ŽsÇ)n•¡.„#ñsŒðá.E)Ò”(MÁ«!MÁ§W(u!ì(qAè,S…Žóéa~ƒáBè!xqòá>\ü(MA‰Ò>MÁ§G(Gì(a„Î2Eèè=œ:CôiU¸Ôt2ør/òÄ(O(ÁqÇ(¾òAˆcsE(òåD¬³EøiMˆ/ÄÈ'S‰øsŒ)rר!CøaÏ(Ááë!„x2tE(òÅ&ôÁ>N„/‘Ö¸Ô|2Õør)rÖ¨!O(á(áïòEš&d„"®AôÅ~LøR(Œ8Nˆ/C”ˆ»1 ˆˆˆ ‚­ã "$(]D@ ‚Ô(ÈAÇCHAà(A(2"C ŽP"ˆO´DH€8ˆC;RA‚*ˆ*R$$(/ÈJT%†<’ˆ¡ˆ#ËÁ,‘ˆNbÁ,aBH0‚‰²ROq<Ò!tMrXêt1"Ç,G‰AFÒƒ4ƒã!´"tDRKÂJ#öŒiÈR+‚Ò””²!’¤)ÖÒ×)5".Hšçg!’5-H?AÕ%ƒùŽ"3¨&Q.†‡BfaÆ-E‡!*rHÂD^ÂM’OQÚ¦áAò„‹!)³òÁQA’Cú!JD"­œg-&vÉ¢‹‘cQ$#8+c<2.2jªóBÔK$A‹¶.":´(â!üH©Qˆ*ȄלQµ2ÓJÙAˆ¤H?³e*‘Õ(ÔDI‰ñBQŽaF£¦xa±Háäl$L˜!a"­t¤Ôò„IÂH+1„oóĘ'¾‚´21%6dB!2‹‰ø1B,‘ˆ%ò„"‡"…–tˆd‚+JaL^<ü7l„!D)ÄHD2(#ñ–&o!ØVÙ„HceOBQˆ“dm†-‘Í2ŒÔ©èÕ«±(qøH›(¬‘()qÅñ‚e¸Èq‚Ä”„ÔÆHâ‚X¨©„áADʉyâH¡!FK('#÷©2B‡+—‚B$ZyD¤Q‡BI‰˜‹!Œ÷-$O%òn¯"üZ£åòrO|JòòKû-’?ëõw¿OÁÓ„÷fýT(ɶ’øXtÿ7õ–_¿6üÛ¯%õŠ¢Û÷ݧõêVŽ4íš:ñcVÜ÷ÌúO…ÿÒñ(O„ò’Чãï•r•ñ'Ö§¥/¥´šò6£m“/"ñ²®jÛ"óS:ŸÂ²/#Ý*õlGC*üºè¯§xX¬(/CýX(V¨©OAþLÙãׂñR'ÿƒô2¿¡±Tô8|Oò-Ž/wô[ˆž"ocù2ǯtøÞ¥_%÷+÷Ö—½hO8úeþ/µýë6ýë¿5ùZï,õ*}Ïþ=Þ§ç¯,ñ‚2oCù²G/˜õIxïÿT©çÒȯ„ö„¸ïcø“?½òwÏ¿1ù’o)ôz¼_!ú7„>/)ñb/'ú‚S¯¿ã¬õ:â¯:y3ñelËB*ó8ª¯‡ñô~êÍ’+‘ÖèÇ÷´ë|$ÒõOÿöò_K­JJ·´Ÿ×ô«ïÿ¸úmŒ'b/bû†+¢tíõi5o&úh_Ôôi/ß6óíÉ_TüFîodôÕË/,ÜbþÃR®eîæï-ød/kò¢$o)ügÝ/oôêìo£ú!Eäfò&2o)Údüj/äòÖÈ­‚/äÞ*ñ£'/jú†¢_„y²ô‚8ˆ¶štêê¥üDÍD‡¤/,ô¦ÊÏHýL¨OäâœÈÄøÄOŒÑ¢þƯ­øÃ?­ýZŠ+¹W{/jó†"o!ø¢®"+º?·þˆÒ¯­òBù¿ô,ddžnz/iöüÏBüøŒo¬ñÒØ‹ÁÇëÜòK'p3ÄA¿BÒtÒ2vÑVŽsÁŽ2CøÁ+A,Q7þÆxcÞ™x;ä2~+Ô<~ÁcÅò‚cEú‚2eòÁ"eóÁ!îhƈ7ç)x2ÄïBÒ<~Òì8wMø‚2A¬3$?¬ìiAƈ7ÇIx”Äïb‚<è£Ñô=Þlþ7AŸÆ÷AßæôaÏæ÷aßÎö†óßÎò†óÏBòÇû߇úÆó—Ö/~wwì~÷m/ÿŽîæüéü?1üíÌ/1þìöo1þído8ÿþ,O8ÿ®$_¼ÿÿ-O,çü¢·÷×®v_Æü²¦çèjþ>ÇŸÎÿÁßÎüãÏîûáßJò„óïKò†Û«(_¼ýû(o¬}Ûèþ[øä^ß„øòÎ?…øääëÁÏîÿÂμþÌèïü~™0$1(IbbdLÄèÔHP°8O8MS¿„BrAˆ2F&4Id'…D%xAÜTH-A…”Fð§O(EX$X$-(8EhB@&AòA<^A#±("¸8:ŽƒdAŒÂ2EhBÈŸs‘ÃOš²(…˜ADáHô!Š‚Ø$bÂ!†!5$EqHD·H4kBØ!¸´b(Y!8‚IÒCè¡"ÄJRHB„_$ʈA%¸BI<Á¶Ä#ˆBF%j„)¨„‹$ZHˆÌ‚ˆü!Ÿ×„)á‚”ˆ/¢0&—!à…ÁL!‡_$ôÁˆ5(aZJØHÑH$áH‚«F„RXB„$æA"8BŠÁHŽ4@¢8D!!1$!€¤„(BšBŒ 'GŽþ3Ë“bÔ`…C"w…‚02’ˆ,â"‘D B‘(Æ‘+$J{ÉRBáŠÔB42“’’CÈ2„Dª)B؈#á"4$ !Œø#%¨T&20*è\âëÒ(]HÈ"ˆBŠÅJ¸(e8/ª +•4#‚‹¤%±*E˜"Š‚Áˆ)ÁAƒq$AD±('Jq"hX!«(MZŽD²A›aÉ Ah@´’ÒŒá*ÌD!<ˆ¥á-„B+HÒB"áQòˆ"Ša‚(BxAbFË)/Ê(Ñè:øñA9Ec$FBÖ¡D¢š‚£ˆ–´äQ„TIB±¨ñ‚"«?8bZ9ŠÔ"å‚•,)J”"/hñ!Äû¡‡4…DÂ/H2(Má%¢L#Øx¢ªl×"V¸R8’"/RȢÛ,‹!cÒ¤Ni#º„3„’)¸‚$²Üþ ¯„R$„pÈqHRŠ""‰" J„A…˜Dƒ$&!ÂUã¡F¢ "A,qB˜”"0BÀ’à"!a„J ŒJ‚IqHˆXR˜<5}4ÁFØL²R-J‰"ØãÔ„¸*ÁH:ÁH¯+aÀ"ˆ/t($H†XD(A'H x8$†hŒ.„†!’¨DT‘€"ÒDCÊ2D$Lè„F¤)‡B$`ƒ(ßÒN2D,dB•2YCÑRQ<d,H$åHk(Q„K&PA-ô„Œ¤2LX(/ø&\Ó!y:´8Iâ4s”±¬óÃ[§ÍBPC„qRHñ*¸d‡(4J¤,ñƒ(CØHQ$LºLÈ‚b…ôN!‰xIÈ‘$F˜òi¥N‚IÎIÓß’Bă"ÔA˜,#EÒA„ˆqAøˆ"J2($VÑHÒ‚©)‘!O"Hµ˜$È$ŠÓ…4$)Å(R‹„¦‚¨adC(B”b–D„q"DÈ$„J™YM$ˆ«"‰xN"Ç%B§BÙÔ(‘RÑA†’Oˆ$ã8ÔBqHIdAÐ!!;h`‰$ˆaBá(X(i=#OšMHEÌ¢X$©I)zØ‚hªTHbAˆÄf%8,‚N(FE¨H*žd‰¢A$žÈ&ȑƄ+‰„+FAÌ"¢CAôˆ!£zDa†ÉÂVT‚ªaˆŠq2D8"Û8ƒô$"0!˜D»h$¡„B-œè!hF†Ò"Fhb‚QfHˆšBC ‰h„‚(Ÿ8 "”JA€(BX0Dc( 8HŽhø„dd²H˜€!„!B‰‚(’B@‚‚”,ˆ‚%H‚ Bs ÁH$VÂBIx8"r&¸R$ˆ#‘$HY3C˜I‚¸ˆ±H¨‘)RMˆ`B#!ø!XÀ"6$ŒŽ"#‚-ˆ%á("òŒB‚Cb",2h„$ˆC2LC"B"º"„R((”ˆ(Go"È0X(ƒ„¤,DpÆHÌ‚HÈ2€x(a@D!cRaA†(A"p3ˆhAd‚HÀF¡,4H.BpAHy„¨€HŽaÀžó‘(ƒ´"yD¢¥2ˆ!Ð"$X""g‚$AˆÇd'rªqÊ‚–(‹¨ÑASfŠÂ(ɤ-"RFñ"AŒ(„„À!'BldÄà$\D(„ˆÀˆ`"N>À¤H‚ÔÂtd¢IŽF#‘„&d!IÈ"aJ)8”$Œq„¢´*¤&BÔ!ƒ¢3 (‚(DŒáBB !¬Á!$!$¡+…‡ˆ#h¢"‚,"ÒHHH…Ö‚xA’!-„…ì(6³dqM"A!¡!(,¹BB¬1E‰YD&ì*4+A‚È2,"‰2DHLØ‚-˜.ƒC’!#’¨!²JâR¬%úŒ°ˆa„„'"À"† ‚#ˆ´(1(ăT"‰ÂBD-ÄK(Ý* qAAB‰!„!.‘”‚ñ؈A‚ƒ1åéMAM‹€!12P¡8!)ôAàè‘a#h‚AI"&ÂLdBÍ$&øB…["\Á(C¢˜ƒB.˜sBÈ@bH8ŠD FaLdDEè*Ë„XD!P$@!(!@Ê„(F"$ È!Ð""P‚$ÄŸw RB Ò$! !†$H”ˆ$A‚ hA$Ø(L@ˆ‚$”@1€$$(E„äA‚„ DÊ‚ÀÖSËQ—!‡!™qRDLáDòÁbš²Z‚ù"céäâÉø¶27q$hÈîVk/Bñƒùá9µÂñ)“ž"‹ˆŽ2ZáHrBíƒ!¡¢*C²(’K1¯"µQb4û‘ߘùX#.¯"¡"ƒ¦¢¯x´Dò4¬A(«åÝD'ÂM‚}Â-ÊŽÈO!æ¢~sCRBEBôƒI&ò2N—1I´èña„’M‚–”AÆdHB $%$øˆ¸DyÔKBOøÅIO1$ÅT"’v7&"7h@z"„r¨Ò¤"‰Ñˆ±"Ò$(4$$+¢›ªçbòÂ(%èÂúÈ="!/$¢„ˆ$)XŒ#GÔ!1˜<’Xk‘-Â,x‚Bä$“D-2þƒ„nˆ%4D'TO,4$F’¨Í£—1‹!-)1¹j3"ð&š/Â) ˆb"Ù:”‡$¨!5˜(¯¤b„%âHY"!(B-D&Lw$„’-Rˆ‹!A)x–ô©Ñð7íïå÷‘£±ò&¥-Iïêù¦^í¶ïèù6o®ñN²¿<óR¿w¨ô$Nl/!ø²ÒÏþÁÏÆü“¿-ô"ã÷W‡ßNõüήO"ù„´_×Ñk×*ãŠû¶r<ü,¬ÏÂø<Çw³ôTV·±šxúÝ4ÿòöT&MNÏBò2OióšßèRýÇú‡æÏBt4ÔÈòsïÃtnöt¯;]ŠŸŒøX˜é÷>v£ÎVß%ôQFo´ñ‡!b÷Y>_gýî–ç¥/hû÷–/cÜjýŠ÷¡ÿ¿g…Ô„ò„®oêù^ß]zñô”™9yó;7oõö§…ß[}ßü¤/Ëù¶GÿròooéÛZŸBú,,Ïêú<>OÃ÷(¿ÅÒ¶õ[›?9ø›Þoûò\gBïÆs4ò"®o:ú*­ïÒú/¬ïÊÜβdr.ø¬óßêñl.ïFòLîo¨ù’Ч¬¯ìäëÿ®6ðhj_Æv.÷IH:òŸ–ò*2ÇeÿÂø&¦o"vò.Ì/¾ô"ö¾þ(E¬"ïæûÂ*Nž~HˈŸ…tŠú"$—$ï÷þª¨odwCø&‚OHó¤Díj%ª˜ïè¸8r,TÄïÈxön÷Ne7!‘§aONûG&ÏDñ^$_E³ñ¤$ƒŽ(åw„Ü.ü>dEÌ$-Ã_Â×lôLl+µZÙˆôJD?}ÃÔ@ø7{fòS«'¡hwõ¬j/äÿ&/kù¶²oaò"–o¶õ{ŠïoòiNlφôèæïˆÿm/ËüHUÙ)ýÓË¿µ÷;Gÿ.þÁ¿©ù´–/Iû6†k6çñ¸{X•BRDÏèÙîÑööc‡âMS·¥?¹Øëþ¶Gÿãö6^Ïâò$/A¹”ù1¡§ø_BúŒ®gÄÏÄr,ø¤…7lÏçõ2\ÏGñÔˆ,ýZ~²ïOüq»'C=a¿rÒ4açAöŒBÎs…è(SD¤2„¼!xå/qeŒxc,ô4DK§BɣѓþAœvŽò{çÈ,ñ$&?¼²lòÅwþƒseì‚xçÌ‚gC.ÉçbœtÒ|>Ö˜ÖLô‚sÝ$/(s$ôÃ:CøG'Hì!uaÜHúsŽJx2Æd§cŒ|‚<MDËl¯5ô)Nïô)¯3ô,,ï5öi,Ï8÷h,o8÷($¬÷yho¼÷iH/þÿ}Hî~߆üòü·§nîï;ôiü¯5ôi̯ömüï1öilÏ<ÿk,o8õ*¤_¼ý{(o¨ñIˆ/úy_èjóM¨/ky_ú(„oôi¾o5ôiŽ/ö-¶o5ôI&,ìt˜)´¾"ÔH´ÍALá$q,A˜¢ŒBna4<ŽB­HI(‘BM£M0V…’ŒÔ–âHQ‚(%D4EFDÁ"b°â!(L"‘$F:$$ŠB¦‚ÜÈQ&ä4B Œ–#œ"šÁƒÉB„/‚„š‚"G˜aä"…$è‚qB4‚†ƒœŽNß[W‚JJC’H-$‡Ž$ˆ%¤#£´”´Aa„&¸„4(ADÈ 4‚N,qzdB#¢ŒdbM(ŠA!øA8G$š&p‚²Hq!A„•Ë¡HÉ(9Ä8 ˆÁ!CºB‡ ˆLè©G¸Èô)!`K(C4D*J˜hIˆÀ‚‚Ÿ9NÑ„@HˆAl'"+‚à%QH@‚SIò#‚Ë"&b„-A‚Á ŠS"8(±"†Aˆ"a5Nˆžáh˜1-DjHá#ZèBB bˆACȃC "$%$"‚FH¢A‚…DdANr&Ãd,áB‰À”„€‚$ˆÔ!"¢I0#RN’‚rÀ$ŠCJ$‘ˆËHH$o]A(D¢LØ"D€(¸"º„K‹„‚†’„,Ø2!Á„>’dBªÚ!c1#"Ø(#0#’JÂ0"$¦Ò,h(‚H€’ˆŠÁ]ä&´T„8k„Œˆ¡„àT8å`! B!ŠŽ‚ ˜$€"Â"ˆ I 2!Á¡("0(8¡ˆ‚ˆBb@"Hªˆ(0!&‚ð½  ¨H@@# ˆŒAÁ"`ˆ(‚ È‰I‘ˆX"’#ˆÊh@A((€*ˆ‚`B#Mù3…$BÔ2´ƒÅq„ñ’’!‚Џ‚¸…â(áièÆJ$"â¤ÞÒ"I%‰¸Ž‘$J9¡Èè*jŒ8Bx!…è¨ä$»Ñ¼´9úˆ/3Ñø’h£XFKˆŠâˆ±ª™~1M%(„I¸A<(IÚ,¤ÂH…¦HŸDSˆŒÂHÈ †¥‚#j!!ŠÑXò(Xƒ6¼ô¬‘­ÁM(î‰ÄŠôB-=˜/Y+²¢â"®"ó˜!²(È#"<ƒ‚1*¡)ºØhë8†’Q,C„Ža*äH’ÄŠ I(¬”Žˆ ˜$/X8A`$#‡Ò!ÑmRi²EòBZi’B†2#ð!$†ÓBñ¡Ä2q±Ó¡D7Aëo)±!ø2(£™#Ñ‘‘†Ñ2á"ê8¥A(4ˆ4‡6Œxbª„,Ä!à2ê4ña!Hd‚OâÕ2¤M$G"ÇHÈ…ôý×ðMLK"mG¯‘U„r$ü($"庄áêâo¼ô£ø-&neŸkumhR.…«ØÏ‡úãO>[ˆŸŒô‡XÑouùŠ-?ª÷e8ïhó">/(ѳóC{?9q2ó¹™ò8(øSs?6ù’JAúQ²íˆ¥zÒ:öj8/ˆõ”mªªâ…çªõÁOÇñÏBtVuAù<´ÏÂ¥JÍDç”HodøhsT&ìÂóM;&|!Õ!ù„«ß(ú2„+…kèÿ¾úÔ>iø+±/Ö„öXe~òÑsoŠòƒ¬?ÒÿÝ‘9ê¼ùÃ\¿Hù#³¼ý?¦/iør’/:ÿûj/½û»²¯2û3!Ÿú))8óá²®R¯ò‘²¿­õ“ÂÎ?+÷º›?¯ü2‹ŸÅø†„k‚.Ñ›S¯û’µOWºDö(,Ròåµ_öœÔË;ž¦/Œ¤y‹™iøÌNÿ/ORRØ?äòY•qéBÒ„ò-róT¬k1OåkõÄóò˜ÕÝZômDÏ–ìäô(ôÏkq-øQø_•}YòHY/Éý…Hÿ,quí~v¢R?4\:­Š.ˆ+!‹"?<õcƒ/,ñ[êŒ÷JŸ4Ý1¢?¤òq¡5aŒO!«aùXCOBüT·×ÛDa_ÔùY¡…áÅ¿öJ¡UïÁÝX1™-ìÛdß”ö”ñ•Ø™Òeú¼…?+ó†2OAû6–þÎßõÞûoÿõY$ŸFöH)OÒþÏ'¯gþIqï—ó”I”ü‹S¿´øÑ™oôþ®—?"û†–/!»¢ÿñyú™Š/©³"ò)!—’.Â?Ë¢/¿ö«Â?8ôʈ¯™õ{Ø:¼›ÿ¢Y¿ù’†Ikòš¿Üÿ¼lß”òa!ÏÖôíßóÄœO¶¨ýŒR«”ÞÈÈü†WËp2ÅA¯BÒ4vÑV=ŽsϤÁ2M¬ôQî!ra¼!xs½1x2ô1A·KMÁ·>=aÕâ8÷Ì(Ž2EòÁ:G8¼AòáÖŒxSÜ1xÕ3|:Õ\;þAaÝAŽsÅè(ôA:G¼1Wî'ÖxsÌ/AèB|:„¼ˆ>-MóËmïÓôhuÿ‘õh¿‘ö,$ï‘ö-´Ï¹ÿ=´O<÷.4_¬÷e¬ÿ­wUüéÞwÕŸîõEŒ¯÷WüxüïÑôùôÿ‘õyÖ¯‘÷Íôï‘õMdߺýM$o<½8òå›”òŒ›…ø¨Ÿ„ZóAˆ¯[ýS*®Ä¯öéü¯9ôéÞ¯öͨo±´iû”ÛŸDû–Ó‰ûÕÛŸ”òæÛ—„îÿß•òä}Ÿ„øöÍÿóôÌ«QレõøÌ«qÏ;u«O"$”4IâBÁ„aH!ÄTIÔA¸ä*‘Ä+!O("MÓ+&I1aI3G.–BŽ”äH ÌÊA‹ºˆ 2ˆ'£Ž’`8b(‚ŠR…®¤¤¨ä*HøÁ¨NA‰H‘¨E±¨Â§!O8h(‚&¨¨EèJX„Ž󉼄ƒt4A‚ÑbÈ!D6Â,rÁdˆ'IIk¤ˆI‘ƒÅ‚Ä’¥J/H“AŽ$(,‰"h" 9B‰l#ˆkÈ‚Ašr‚k„ˆ(,вˆCthT‹BøH$H†ÂHP‚ŠÄHSod h#$*c(’"˜„a)"( â(„‚8‚…‚d.J² 28@"/ (ƒBŠ„ÈR*á(L¦á$a„;ˆ"(!¨€2„xQ &hD¦‚D‚ BKNã^(%1F4„L’Èœ"C¤¡D+!Ø´[*”D%±q¡¤FÒ¤!Ä$¤(-„ˆBp©8i0!È‘Jž!…d$Â(E±J6B¤ÂˆÖ… A™ÂL*“(G©J'’/Äèò‰Ÿ°‚dC$‘Jn¤CbA"#’'‚A‰‘,H/B™¥a„)!Ê/„ E‚ˆe#Šj¤IA¤$Œ`…".ÒH¡‚¸è¨Bw0$#±$IšLB„ˆQH"Š-"±HÈ’A?…:̱Df‚E"T±4&’,¯HsAø$L¢í"ËBAöøHŒFá’Õ„hEe“™/¤ä•#–øÉb"ì"æ(ôœ+‚b„—DPʱËâ…¨6Â/$Ø)øÈ!$«5ƒDä!AÁGØLZH"Fh½(¡„‡ÁØÈ’+SIùF[$!M%È#“„(0B”"À($ SÁ‚ ˆ(HŒ8*4(,DH!Ä!aÈL*¤.Aj"‘!€J.$¡Èì=ȤA„n@‰èDÕH‚BŠ‘a+B C‚&pDŠÈQ„dˆI!H‡H ( +"K š”¨*Ô€ÁÈDJ$Ê:&$lBÊ¡‚D@mV1bO¢!ÅXCtx3„¢8NŽT¡–¡"H‰ò,K$‚WŽ'…ƸÁsƨCi…]‚£"b.‚rƒx­¢b‰4,/–mlÉkBFžÂ'O&Â,A°Îá"ÒBx2têä#’ˆÁ‡DEˆ¶‚ý"Ï!”8DIá(ä$ãHõLµ“ßB?"TFš(RˆZ$d!#¡$€„ñˆ4"Ô$‘H‚ƒ±$|" "'!A(ðˆ F L#ÔA’‚/(BKB‹¡BŒ’’&樢E&”HÄhZx"¸$äÁ‚$!±*LÃF)d„œ³D(”4-„ (G(íª$f‚\ñˆ$šXŠ•ˆá'„I¸XBŠJrŠè‚D¶!è„¢Aê2ŠL4š$ƒ™4£ˆâÈ´"Ú$I³Šh„IF ‰‚äéè&1$Š(”Š.D[ƒ ©¤!J’(B†¨!N( ˆ³ˆ•b"™(„"ÁˆKi F¡Î(.Hr¡%³‚ MDÎ8Lˆ42BRŽ"A‰ŒãH!(L‚¡l€Š„Âh$ˆÀBKþX"€U(J0(ˆŒÂD "(Bˆ…"‚ ‘e@ ‚4B‹A‚A"B€"!bhƒˆHAh€(BŒ,&2h*ÅHƒ”ƒ&!‚E™È!ŠF¨$ÊÁ¢Ò މ¨†1‚ŠÁ‘!<ŠâT"dDª1I¦$rH¢Q˜f4""ÊÁ‚‚!C4H+„*,1D"Ê$ˆŠl¡„Æ(1&?ÿ cÃ2B,B¤"D*hAŠBÔÂ(EEHHD‘x¢"n(@(Á@…$(Ñ…$ÁHÐD´$& *ÔHÀH7F„€(Á·‘ÀJ%D¢A,´(b)H‚¢%‰Â$ŒbD›F4Lä‚rÔ d(IE²¤¡:$&axp!EAQA(V¤DˆFl¬AJâ(!Ø$DòDDâ(D”AÎBC‰"‰_=€!(„NˆJ"¡"b@(hIB8$AЄá@((¤§„")(’!P‚T&DöáHMR„,E¢ÄIèB•„„"*ˆÄ$ €äQ`Š->ãKRÒd!)RE‚ÃA(AJC´(8!(ˆ!*„HÁh*B“œ‘JA"È£ƒšBAˆ+D0Ì‚ÂH°D!áˆ"„A(*ÆÌ°"¸A‚Dϱ BB… @#©¨‰Œ„ ŠŒ²ˆ¤"$(A΄(BÄ„„HlÁFÄK"4T†D‚(ŽB\(2A!Ae!˜¡Mb°Hâ$âahh$†l>ZÀˆPˆP„Q(€„BȈ%8(‚(@@B"%¡(LDAHDA@B„øÜW$!R%r(AD@$H@ †QÁ‚ˆ!"€AAAÀA`DCADFd„HHÄtc‹T’¡T"…x‚:!"kHcÕ¢‚C´Fü!”“dB›"ft:ô9„AÜÑ<”œü(AË8ß(6­Iâ!2HƒtÈá8EÑEú*DeGOIÔA´SŒÎoŸˆ‚‘ÐDcIè­q$Ä„/ØE´,„.’ˆ(¢ÿžC‚‘¤"NDŒ¬ˆHŠnƒð$ˆ*<ˆ*‹`à”£.#)º4*(Oœ…(A¦z!ä¢Ô„ä,å*Ñ!4)]Ã5ˆ´8f/F1t'DZ²òD$ƒä%´Hä%á(õ~Iä$„AAÃJÂB%ä¤A‰â¡vÉ8[Œ£8¨*Sˆ‰Á„Jb‚BBJÈa"#ÂÉ+AƒÁ%i.ŒQ†sã±Dõ%4"rEñ$„),2 „Ko„¨1[ACaȆrÁÈ"ID¤D&4$GB"ˆˆˆ…$ˆðÓ4„-ÍK)ϵة÷aÏ‘úY#Ÿüöж[‚ú"ÞÎË„_™t8yAtnø$i¿>yqÿl(ËOÁü¢G…‹ØKâÏ¡úZ(Ô÷¨-¤+#H/¬±Iï¡üÞTOBRGM$oIýŒ×V*õHŠ¿l¨ÿmîÑù__Rõœ2H»qáøv©úVÕoy±aôH$MAù7ÑÏÃ÷”vO2ܨ\¢/(ø&®í¤R5ñXRmL¿d¡¿´ñ*gýKÿÑø{=¯„©:OÂêsüKŒ¹$ô¼¸×Wn¨‚öšoCøzª¯¿×GœÁ—¡?<ÑËö=èÿÃúÚ,¿®ãH¡¢/µÂñÈIì/süU%.…Oò¤÷Vü>nOëódÍ[/%ô‡ÖßQÿ[ý÷[ïìó$K”/õŽ?OÍ÷L¼ÿã|uåÂÔÎòíÞoBùVOè÷T¬ÍÂN"g¨/âÒfú¯Ö4OÑôH?¥Ò—õZ¿‡ô{3_¿ZÿÇ“_ÇØbÙb³´ùEÄýè4_ø>aÏÔtiüMKÿÿÆ/áþ[>Ïý’Ú¯%üÓ(¯Øõ‰^ÿù^(/há(ûƒ™ôÓS/šý|äoARTEôdÏhûÔŠ/‡ø[#¼ùÙš¿Eø÷O_ûóÙ7Ýûœokã+»‚ÿ]/úñýÞŸóúRIO’ô-HŸ’÷•ÿOký~¼mlO¬øŠ‚­Šwxoª849õG¯5ñZSŸ4ôK³ò_]¿üõ¥3wi/Kãa¹¦ÕÄäÙùY=^üUhW‚ßÖòÈï¬õ¤ÒoSþù‰=õKÊ?ü›ßÿ÷éϸû'¨/Kù’®S¿¡ü“‘Ÿ®õ!eWVGB]%OZöï_Orÿ?áÿéÿœ[ï‘ü—ß{õù_yÿ/¼oKñ†2ž2oÇûÿÔÿÿñ4eßDò)$×ÖONòÊ6Ïgø>ÔïÍø„JNŠ­‚¯¢xªÞKr2Ôô:$íC§¼vÁAÅòˆS×$Ž2EòÁ:A¬øé'Ɖx[ÜŠx:Ü“ü$íÁ£Ñ|Ø’V½¸W,Ž2EòÁ:ÅûÉôþYCÖLxsýKŒ¯CôbÁ§A-Á«ANáïAôFa…òÈsÕò„2EöÁzG$_¬qDòåÞBÆJøsL/Dx2ÔDü>$)<èã‘”ñ|õEß÷õaŸ÷õa߇÷Gϯ÷„ßÏ-ó„ÖÏ!ûÅßß…ûÍ×ßÅùí×—Å_~õIŒ_ÿ[ŒoOýÍÿÏÿÁ¿ÏýáÿÿÍÿ­÷„×߯ó„×+óÅÛŸ½óÄÓŸ¿ázqèzóA©/[ÿ[¨/[ûÉÿ_ûZÉ¿_ùëÿOû鯯óÄ÷oó„òkóÅÿ¯óû¯ñ­ÿW‡ßú÷eˆ¿ÛÿsˆïËû:ʯNúÈnøèÏjúèÏÜCcˆ$„,R†&Vˆ&hðA‰”ˆˆ0(ˆ§ŽP‰P(UhBpAÈA…Ä+!Ž.$´HB(CdBG„\!E!qAýA…¤A°I<ŽRDXBI!„dbÐñ8¨Ð1BX‰"t$*Ô¸B(¢CE±84$AÄ(H&ÌBy¨"ñd‚a,a:ƒ†)¤¡a*<‚A¨Æ%AÄ!G,\ˆ)‰q"É(áB˜"ˆJÒ¤ˆ±D:"E!b(8†(q£„!ˆµ‚2Tz;‰H‰)%ŠÁ$8Gƒƒ2(Dƒ!2• A!A A*[‹$0EA2E(a 9LBŠB ÒHd&DI(08-$ÀB6õAu£†rZÁ$™Db‰Â\ðU((ŠB$œä¡Êa•,/aЉu"„E)¤(>H…$ Ä"œ¢H](‚I)2"²I‰ñA"MB‡I‚9$ŠÑ’¤8×F˜/R¢„R™"u(³„•ˆB‚‰óÚã$†Ì‚)ˆ‘!L®CAb4†È"G‘b$Â!R¤$‡D4BT(M(aB)ˆ¸"Ôˆ-4Ap(tb'(D$F‚Q¨K¨H¤‚(@¸$R`B*4BD*9Hv ©…?b1lZ\‡FB‘™Á.D™ƒÃ&‚O$ôS¬±ˆ¶Ö2%ft{¡“.T¡D!¨Y&úD-EH²$‰ñ©D¥Ã(Ë1‰‚d’O:Q#âDs#ÈB‰ø6¼¸d¸Dô(I›„Ža-(ÏRá„áVý"D.AA&ñXD!¤-ð‚‚š¶˜ôÛ½$’,!8Q*ÈÔ! „@HI4B ¡(„*"b!„´H‚!#AH (€Š (È(à†"xZ„$";v$*õH,UÈ•H+A‡’H,’.%òURHRìBô¨La#‹j4V¡hÛ8Ãå"›ˆ.]B‡¢å,”4AøH?‰èAd$R+‰ƒa¨Kža‰È®—ÃáBxE˜±AHÌ¡"Eˆ(e‰^¤NˆB+…ÀHödcÃÏ¡O$A4HÄH"‡H™*Q$p$9Ø'BH„À%ƒÑB¢+‡$€Á!)ä‡6ŠLYH!H#LBèò8B0BŒ¸"˜‚C‚dJ,A.MŠŒbL„(1HZ(2RD6ñüÿ$G†#sB¢¼Iñˆ!°„B¸#äHcA‚ÂA‡IÉd"¾Háˆ(☢I‚(a/ô˜¡DB&˜$H#¹4d¨-D–h¡‚,ñåˆc²Š‘„-$È‘(äA,r(¤AŠÊt,XˆN‚ è?þl)ø!Y„EGÂJI$(¡d"œ1H(MAI:Aºˆ’J%È‘ BˆÀ„€(8A"d‚"€*H!"ˆ(Á„`I(œ"hEè$O2 ŒäH"4ˆ ¤ñçú$€5‰FHŽ4B€HB„"( ô˜ƒ(€N„(!€$`°!$“ "0I, )(ˆ(ÁBÔ&¸D((AH†J²ˆl<7lIÁ2J„èEòdDJXD€J¡$ðEa‹‚K¨H‰ñAJ()"ÂF"Ø$舂0$"&1È ‚"*XŽA(PƒØ!ˆÂ¢*I(ìHÆ!GDLd(S,‚ô$Ä,è„H‚Â%¿­DAPˆ!+(0cÀ˜@ˆ$xA,&¢$˜b‚A##!!'‚C`"@b#$L¢ˆ$&(4B)”bH/1!Ѓ,…FªÈ@5›°.±…ÔIñ‚h…T‚sä"Á¶* "À$.D€„„Ú!b((ŠB†HÄ#(Šˆ‚%Q(ò¡R($º„R!DÎ`D(¨€ÔH"‘ˆTŠð÷´@„0B'ÂðAˆ0&F”!†+q,2!0$š$Aä2D" $£¥F¡‚âƒ!€H0$"0$"R!“h$(É!…„!ì‚^††t$j$ƒ:ˆG$.8ÎŒƒˆD’I¡A€#DˆH8Bf‚"Ä!+K‚(IˆC‚B(¢#XH­ˆˆ)¤BÉX‚A j"" 7AJ-H)HBIÌù$FCd¤B€a!’¢|)’ˆ€”lA$T‚$ È$!`AÔ‚¨B‰‚D(’.„b,ÊAK¨Ê”"L”‚* " "/‚”D*d(ÊŒ)R‹B`BA‚@( ( "" ‹"CH&@!„(A BE!*"‰ò¾Ö€€’ˆD*‚Š D(J"€B D(À„À(ƒÉX&¼ˆ„¡1M„´'"Jbf‡(„«‚Z„ø"„Ȱ¨¡kA!¤R*a( "M"¢&LæÂ’¨" £(*ÚC”AÁ1/‘ž¦&šqŒAb((Ç2†RHn‡TRða!>ˆL+‚,¤O‚òeþ$ì!$ˆVôFOB¨–-‘i¤C‚ƒøˆ2*„‘DAGF&†"l%(’&‘‚!*¸*؃–¨è„J˜!"B0A†rˆ‚„N*SBäBÚì’äB )„6$frdb¨‚N„NŠB”'Ca±Ã™ˆÍBƒÁq8IsAñ¤Cêó¢Œxbè‚âA"öB4*:$€…"ª(I"²E‚A‚40"L†XR-Áµø8)‚4)ƒ¥$Ø„Câ$òˆ"*2ˆLøC$7F‚x8ètš‡¯‚¦ï{ÕÒ1ö$ÆK•ASö¯?”ñay‹8/¨ù6Žìó!¡/kwk÷M'¿ò!A?¸r²dò££_r\_ñ“cOaÿõ6ñá3+M†,òak‡Œ¿|ÜB~#÷DD?ôAá??ÿeWB¯ØžÄ¡qF¸ŠÚLÎþ¦Ñ8õ’M¢,âìöÚϨجýú(‡æãµ$üó’N¶c¶þ,סd$ŽšMøÏ‘$ØòñE?_ÁV<•ó÷e1ùñŸmñ–4Ojó2åÏ¢óÒ‰›TÏû!Ÿòae_xûU¢n¤îAÔ3ÜúÁAß6û%§_W¶õ²‚–O[÷½*/Ö%þ„ã†Ò˜öAe_|÷uã·?ó?l-˘õ3líƒßã|½|Ý8‚M–>u‡›¯†òlêϱÛÏòH©ö„3Oq¨7‹=ïáÖ¢ø¸¯¬õ*lÏ‚lV$ß3õkm/„òAKQŸÔtEÿ!oŸ:öÛ±§¦/*ˆú2ÃŽr¿7xÌøWÏ?vmuEõEžÆIÜQþÇ#_8ÜüQÁ/dòÅc[ü·—Wæ/)ñ¶ùý.Êÿ<ô„b_r¸RöEE_Töåw?üÔ_%½ú³ŽüÛŸ±ýó%ö¶Lÿi}Dö’/[ûŸÒOòüÚ/ÍúMá“ôMETO>µ¶ü–Ö^ö/OóÄÒ©­Áóˆ:sÂ÷ÿTNKYŸô9×ô×h¿(Ê´Gk+;Okó'h¯9ýK,/þùEeßtAñáqOô†æmÇvøÇA?<Ü3ý“’o_ô£u:óQ²ž¦OHò¦£ÂìxòÃd/Rüo$Ï’ôAaVôõu.ÿç¢úÂY»Ý¯±üi²ï\õ‹4ÿ¾ùXžž††ô¦3_qÿ¹nî4§Ö{dÇ’_DâFòÕqkòïaþ(š/,õˆÚÊ‹·ÏÞõô†p6ÔYt:Ô4Ÿ6ÝaÁ8wLø„"CøÅ+_ˆrÑkhþQÂÖLxsÍ„'C.ŧCMÁ¡Áë!MaÉñ„sÉñ„K_¬üÅDîy|aÌ„7Ç>„'CÓ|:ôÁ·áÿòaÉñsËO(‘4_¬ÓóÅLñáž7SÄRxsíCx2¤Á§C<«áãñ7ƒÚÂþ>C¿FöAŸFõaßföaŸ.öó¿.ò„÷­&_¼ýc(o¼}QüèßÄâ~÷AŒ/ýSˆ/nüÁ¿nüÁ¿nüáÿ,þ6Áÿ.÷„Óÿ,ó¤Óï*óÅÛÿ¬òÄÓwì®÷¿Äæz÷AŒ/{þSŒ/kþÅ¿ïþÉ¿oüáÿ¯þÁÿ/÷…×ÿ¬ó„Óï*óÅÛÿ®óÄÒÿìá~Kì~÷AŒ/üS/oüìïï¾üøÌ+áËïo¬­p€2.sA!„ØÔHH¡‚ 2-#ã8!Ã"$,åb,#rAØ‚¢")¼â8¥"<ÔBÉ"Q&á"+rAØ´(R*¢"-#á84ŒBBÈ"Á.$„.éÓÈ‚Êáâ´Áˆ`‘N”„(M(#H"óLI’H*Û$0DË‚(1C©Â'ìA6‚žD9bA#hAŠF´‚"OA’{$Ù$ÄQE‚auŽ$¡–4"$#hEŽ"^ˆ)ò(p$‘˜MgA“˜MHÔHÑôÎ{ #Cd`AF¦2"K4âD1¡$ BL8*¢*)Ń‹ò,˜A&"ˆ¢(!‚ $‚ˆÔ!8b,\`ȉÒ(8"€è"’„HŽ"”*d'‚ˆ„BBÀïÃȈ¬sÁ„Q2BÀ"fd‚O!b"GH*±"h$G„LñB¡EÈ¥#œ‡"ÔCÁH.šð„‚ia4¨bA t!è$´ †hF„=ˆ“—&G(P6…M!NI°$ÄŽ!$$˜‰4˜pâùä D¢!¬hA!dC)!’„"‚Q*´"qh„U%*bˆIè(¸È)4C¢!*CÄ8@$bBˆM˜IF8H<’4!MHB”2‚ƒ‹„IB4H„&q‚è4BAŽHHkBÆMdÁÂJ’B)2Ts¤¢¡d¶TH/Ú„²I’hOHÒ¾$8X‚ŸÅŽw‚‚ÌaH!â£È¬ÖDÂ"kIjD‹E¹ÚÁø!Qç"&:]GAž*؃¸¤Q(Fˆ‚Ö8Áˆ«‚—$L„‘ˆÖ¨+F¯ˆJ#!$À&A"!Î2HF„7D<%„8S,¢c¡#HYIð&†¨)Á›ƒ‚DaI š¸„’C#„Aå&òA!Òˆx‚‹#)B‘ˆ„‹A‰J5B@¢"ð1BD@%âDBœbRDÉBœ…¨*,„âÆ!…QÁN‚ÀÆ%ˆÞ F„†^:H²Á€ƒƒD’X‡dm‡GXH‹!„Pâ"¢$¢”K¤I $…ñ(L$X¨¬‚ÀA(AŒÄKA‚A°Ì±Á¢2Ž÷H˜Q+¥¢BdA€"Ô()BH"H@ÈTP‚Ärˆ!²„Іx$!(RI(*¨!*ÈBðJÑ‚-)2$I%+,QjN &Œ‚d!Hˆ:X„¿‰$(Vb„!„b$#sA!,ˆ!X¤!†1 (BDN,€‚**"'(FQ€!dB„4!ˆDD‘B¦K"Šb$@äô2h@D‘)@*Â"PAPQ @H€‘"*DR! HAC B2#€ôûÌL‚$I AÁAI%„‘„X!@(G‚"B,FR!(!!€B A@R€@R!Ü>®)²qQ$!‰¦1h/H‘5²CqAØ13)b„72ƒÖ11JµÒ$Lã‘ø‰l¨*4ì`(+B7„CaC((Af&*tbÖÈI;AV#)O:Ã!¨E”1CäÄÒQ2iE"–RC#ã¡¢C=‚€¤‚ö1äÐÃ(„1Q-šF8AØ"‰Á”#’2"ƒ²$–-Ž‚3ò‘I‡a¶H‘q"´Ã.!M)IB2DABB„Œp)Hîö2„È¿AÎ#=‰‚I:!ÑK(a$$Ž«(ë³GØ‚ö󑉔""J¡ÄFâ¤1ú(Dô¯Å|qXØ*Á‹$?,‚ò¢!f)ˆ´©A!H‘(ˆ*ò#"&ÕÃT‹BÛBø¡JEX"8‚…ûˆ(C¢BrHøX¢N„.ÄLÊD+abIøcf4×EçBïòt2I­2ÏÒõ%ÄŸòÊG(ÏÂé*ú¡x×D¯¦ñ$k/7±Ir,üdí/8ñ“†$rÖøl…Ÿ!ô‡Š£qLñÈ¿‡òíl²6ñ²²_ÆÚÉ·:ÃòMaVölš/iÑgñûÔÿ˜¯¤ñ’ŸØdH„ÿ+)¯&ù4¤8>c¿‚ø}½ž%ªú()IæBâ$ý¢4o$̯-_•ñKKSé¿çóc¹¿œô§*OA‚y†ñïsßÓÒéóâùŸö%¡¿BòÉû¯’ß&ô¸.ò\˜¯¤t˜ú8¿çûã¾m}]NÿdòKKxßEòMmŸšü³ƒÆò–&('#ÏÒôrKŸfóoËOQv,µiÜwøƒÎ¥þM"ÿx‚s“¸ÁxIå¼{Úñßœ/a‹ú²ZOZþ(…SÒÅø-ÍDIÜDü$ÖGä¿Ìôv_4a4/„ô8T¤qÕöÓ½û–o+q”òÛïûÖ[ÿ"ýÞ§U_ÆÔÖÔõø¦OíøNøï©öÜŠ­øJØÃôÞEÓÕó÷oßGñ_RŸô[¿Eñ]tß:õ³?¦û–¶o"ñ2r=uM;?…ò}%”ô(E_†vAÿ—-‘Owý«Ò)õ‹/9ñ‰ÈüOÏë÷¦,k˜ocø&´ß]óô©Yú¥$Òr(¬&OFòB¢þ6ï—û{O±ôY?ñ[xŸ3öÞcO{ý+¼k8ghOyÙËøçQÿ©þ6o¿ÕòaeŸ’ö¥D¿þòQ–¯‡ûnÚ©ôXš¯…ùÊø«öˆcp6ÄAçCúaçAì8wMè(ôÁ:EôÃ*ñážpaŒzSŽx2Ô|8Ô<>”LŽsUè(“$¬³DóÁ"î92ƈ7ň'AÁ·AMÁ£Ñ‘¼ÒýˆsÇ„Ž2A¬ÓòÁðáž§Æxs½(xÄȧCMÈ£ÁèãÁâƒÝò÷>Q¿ö÷AŸÖõaßÖ÷aŸŽöœó¯Ïò‡ó‹)_¼ýy,_½u[üã×Ä~ñEŒ¿{úWˆ_ZùRñß^ûRÓŸ~ùñßXúVÁß|ó„Óÿíó…ÓïkóÅÛÿÏò…“WÌz{Mü¢v_Äü²ÖÅü²ÖoQô{Þô{Ö/ö_üoôÝv_8ýÿ6O:ýž6_¼ý×?Ï<ýß<î÷ßÕòâw_Ôøú÷ÿÅøòöoAþúþkÁ¯ï½þþükÁŸ…Hr‰Ø$qÈ2UèBQLqÈøAA2±(RM£ñ„4$“”4Óáb1IL2SD#qAüABÂA.$E¡"O8O(MRÐ$1!M2Á.À³Á$#qaüA…tÁ$C¡"O¸ò„*Ò$Á(M„M2EèbCø!‡³%)±œH<.,´#¸"Ô!øD"‘`†TƒâD!²žA¡§°‚hÀ" Ò$˜HE"4,A¼$8B&ÁHD ¿HF²‘R(Š"Ì4rFƒbF¨´„/B)loN$‹ˆóH…²èbªA92ŠCgQJ(¬„Â)D(JÁ4,8R…1A,’ˆ#¡a„"!`B‡(JAbDÃhDM!F"jPжAHÖˆòŠ¢4àLQ&DhŒdK«‚I"ˆ,rBñóÃT‡!ÈBAEh)j±!‚¤yHh„BL6ˆ'„IâŠ4ÐXxHA€›‹‚UV)ˆè”Q°ÁÁÂì(WЦdF‹Ø„©DŒ†±¯!rH2†"%’’‹ç L8$1,Eˆ4L$(HA"J2BJIAƒ¡HD„&A„’$¡D‚RQ(€¡‚b%ˆ‰‘CŠA•&H…"1¤ "„!bB‰$BŠC!$’‘B(bC‚q(UHðBJH¸Õƒò•"†$™DK‚Š‘†b $Ô„q$‘(‹AX‹GX((I1,O’ሄ„†xsˆô2ˆ´‚¤†‘Ô&îSIr”"ÙtIHÂxHŸA‚³ò"HI’(ƒ‘€òeÕ 1@H#Dˆ"B€Ä(ˆ#†$–@A`H„Š4D`*!†EÁ(ˆÃR@D!b0á ƒr˜H!,9Bhò<"!„(gaHE"@¤$à”H@( (@‚VDp$‡B„…ÄDB A#*Bˆ„,‘!Ž(&" $(¥ &Ô’‹4+¤"FQHØ>"À[Kn„˜4Iã„?K2A²N§É/¤Š¢XN4‰ÆhÄ$,8Š*1OŽæ‚+"…ú¢8ÊZHNˆ!H£¤ÈdKAO£K‹‡¬¥‚-4Šˆ:´2Riè⥂ŠÈ\8S‰’'X! ¤ T$6DD"V„‰t((Ä8)*(S¡b$.Ò$(âBQ‚@H4(!Ãæˆ¢AH"A¤”J2$IáBS!H."d*!ÄB4H‚  K‚Ä$ƒ±!y¡a8,rÉ„¤*4!F¸Ø¤ÂŒÑ$9Aˆ*Œ8h¢aŽàá‚„D¬&„–è",“L‚¨Ž"(ŽXàBA"*aŠ#qèÂ"(–¨BŽp¤"¡àHÑ"6×€ $ B€ˆ€ðÊ“H €" " B€ŠÂy³Ž€r4„„€Ñ‘xA ˆ/(8 GB(KAI„ˆ/)8(GB(AÉ„ !¤Bð‚ˆ#GB(Að·H H`BÀA ã(!€(`BH ÄAHà(&  ÄA€!„Œ¨CŽB‚((`B<(CB€X„€€9€¡"A JtA(ˆ#€H„‚ ˜# "I/J(I’dA„xA€¸˜‚#!(I‘$A„xA€¸¸¸€’$IB„xA€8)8  (AI´sG(I D„tA˜+‘#*²$€ôAH„€ˆ+#(I‚€ôAH„ й’9 "K"AðÓ•B  $"  )€ˆ+³B €‚ðòÀBI1A ¥BˆRˆ€ÈAH ‘((€"h„BŠ¢Vˆh….„ ‚A*(‘ˆKA(<•(Žƒ4„„¬&*Ä„'„*8D+A*(šHÏ(A˜Jâ( ¥,5ÒŒ¤!yHJÑŒ€$H& "HH*¨‰H`š1Á„(I"©Bp4H(›*Ȉ%(”˜XBvÊ‚ä0 I)‘$"ÆÜ(©C¡BH8ÿÑHB€!(€$€"€(À±“ (B(€ ˜ðx À½3 J„ BHH‚Šðû²H¼€ €€ ð»ùB€"€€L=Ù€€B €(H€ THBJ€((b B€¨Š<<² €B€!HB€ $ ˆðŠŸðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀA#Ž€€&pAˆ#Ž(A`B„ÀA€8à(À(Ap(„„€ˆw[€"* € €Xˆ„„…HŽUS @ð·ã‰À"`B"ÀA‰à(&ÀA‰ŽŠ`B"”HŽ6ã„Àˆ#(""`B(AxAŽˆ#&„ÀA„à(8„…Hx(”(ÅHHÈAFŽ?£NÑ/!á( "(GB&”Ô€ø’Ž€r$dBðAIAˆ/)á((ÇB&LðAI‰€ø’\C„Àˆ# "&„ÀA„à(8`B(AxAŽˆ#p(ŒR„PˆÀAFŽŸ)0Ž((A&HpAÈA€8Ž"(A&HpAÈAˆ#á((A&H„„H ˆ/á=\ˆŽ€(`B ÀAHà(&ÀAHà(Š@hB0(@€ð=J""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ@«2ÀÏÀ@„ÇH"*…HHXˆÀeC @ð·ãÀÏÃ("@H…„ *…„PˆÀºc ( @HXˆPˆ„…°Ã ü<<€""@Xˆ„…HHç5""„„<5&€¢"@HXˆPˆ„…ð+ù"*…HHXˆÀeC "…„„*…„PˆÀºc €„„Hpiü<<(„@pŒ ¢"Xˆ„„…\6ä"„;ü<<€""@Xˆ„…HHç5""„„<5&*…„PˆO¿ ü<<(„@pŒ "HHÀSc(*„„……HXˆ¿’ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;Æ€‚"@HXˆ„…Xˆ…HŽèÀÏÀ@„ÇH""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ€@…„PˆðõÀÏÃ(""„…HXˆ„„p^ "HHÀSc ""PˆPˆ„……/œ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;ÆðÏ<ÀÏÀ@„ÇH"*…HHXˆÀeC @ð·ãÀÏÃ(""„…HXˆ„„p^ "HHÀSc "Pˆ@…ðôÛÀÏÀ@„ÇH""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ@«2ÀÏÀ@„ÇH"*…HHXˆÀeC @ð·ã"*…HHXˆÀeC("@H…„ *…„PˆÀºc („Pˆ@…_/ü<<€""@Xˆ„…HHç5""„„<5&*"……HXˆPˆðÂ"*…HHXˆÀeC "…„„*…„PˆÀºc ÿÌü<<(„@pŒ ¢"Xˆ„„…\6ä"„;ü<<€"„„Pˆ@ðhÁ""„„<5&€"„„……HXˆ;ÜÀÏÃ(""„…HXˆ„„p^ "HHÀSc(*„„……HXˆ¿’ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;Æ€‚„Pˆ„„…Hð¶*ÀÏÀ@„ÇH""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ „Pˆ@ðòÀÏÃ(""„…HXˆ„„p^ "HHÀSc ""PˆPˆ„……/œ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;ÆðÏG"„jH8“Ž”¢$tXˆÉjIõD#|˜!±‚hÂ’R&d¸Rø8hŠ…HÒˆ!¤X-˜?æTB*!$ Lj8i2”²H”"M(ŒäB$A’¨DX‚Xc¢‚N 46 ²ÊB&”(Â9a"ŒJÄJ˜BÈ.Ð$Šñ"„0B’(\*„¤8‹H(ƒŠä!-}H#1<d!F1‹’‡A)AB(†‘!Ù4(H‚”X!ê„¡„Cˆ#¡B$‰„Á!ˆ¨GB X‰ƒsD)á¨$(†ÈD8JˆQH@ÈR°8&h,J eØSN(C$aBDbG#C)â‘¢$@´AB¡/Ha$bˆFÒA4ˆLEÂGˆqRDIÔ!Ea(„0ˆ?”ƒáu"„H†ÈE)(Ùb„jѨV‰ ,ÉJˆEôwöIR‚B,A–PB"„`(!DdÆ€ˆR‚-Q„ID"@”$¨H ”P$†ÄH–˜ABˆ2¡$TH|<Ë€6$#„KAMaA#1$!cCØ‚Q"HäFt(¡0†BØÄIK¬TdT'D0Q-)D$T"†G„ˆjˆ „J<)HÄ‚[D¬´ˆá¡$„’AŽ(“¨h*Ø¢Á+ND;è ‡Ä E€&Á&0a ˜EL(d3„D@†"A1Q@ÄRƒAÁ2ALHE!Ä D!20ˆŒHì9$hH a"!D$T",$DHpá–„'1HI¨H!˜¡tFÁDE0$†5ƒLÈHŽÁ(ˆÁ!FˆÄˆ†‚Ih$ƒ¡…ˆ(Û ‰#±BbAFž$,BqÒD*’H&ć8‡B¡„€A"D'4!MBH0ˆ9”%ÈQ=F‚a!BF‚hF À8#bJÈÒˆl;¸¤ A‹B“"€A‘ŠAh4A`B@"qÂA€A$ˆ!ÔDh H1AC“ÂÔÃ脈$Ô„tQ¤D) IA£0IhÓCe‚Ò‚‚„ðã;P#œRD„"„"2ˆy„ÁˆH „-TE2dƒd(H0DLˆˆŒ9ÂDÁDHž"$#…ãb(ƒ‘ˆ)˜ÈHF"ÒH`‚Ï´>–@ŒH$%BDHE€AAˆF@,AAA…é’H X(Bƒô<£@D#DDHAA9h‚DD@DXA@”„H0PJ0‚‚R$ÀJ%À÷ãÏa"H$¡BOBÒ$U"S¨DóBŠ%M‚2d$`DZa!šèQ´ò„B_hT‘ô„,YF3GMKˆ•QFåXÈA!HŽ…¹tR²tRšE”/dÔ"ñ¤)‘‚F›$ *Ôá”$(tRr(¢Jè$8š²òøwBJAHÈBÌr4"i#‘D‹ˆÔ"DZ„Ð$A’X9="ðHPAF4’AJx„W1Ñ!”DMDO¨ÜÄHB•…ÕChY$IäˆX3,˜‰‡1—5a$„ŠøB„Êý(F'ª¬ÌBÂÉ=;¤2"Y8ƒƒÖDR„-iÁ]BÌ(tdR(A„ÄH8+-B5ˆxDˆ‘ „N0$B'aG2!…T!BCQJˆX,X؉u"1,'„ŒQ¥ƒa,®D¤ÂÏ[BòkOVqJrÑ»ôA_r=ñ(?öýˆ4KòCÏÝ__èt]ò3ÌÖŽ4l/ƒñD_ôD¿…zšÚ‰ôH˜Ót•ùBÞK˜'!/üÔzÕ7|Tq“ÛI”DOü/]|Wù†Ñge¿¹tA™Xg4O|Qñ‚÷.4/ji!ΊY?<ú”EçgÝoGFMÄïáõœÌïåô†¶OGô˜ˆNH/(ùddÇù£Ù¢ÖÃñ%"§5ôŸRrMñ}fVÿ!8ŠxDô¿\ÕÕYï5ô?L‡‚òDríN+A߸xKùYiß‘q‰ýTƒÿÕôE¿Œx…äqùKYsøUÓÿÑÔøAA_<õE†9Ô¡ùÅNƒ5ô¿ä4_]ô†?.ó"¦7ˆ/ý‹?´ÝkòÞ×SòEM×QßlÕî|žÞæÿÆ.Éì-òÚ/Îòä?¨Nò^6ßÇôn_”q[óYEŸ‘÷aD÷?™_ÍâCÁ_4ùYÿôÕHõág…ÏÆÖHô&ZËOEñULÏáÿ̇…Çô›B/ÜñI±ùŒ”LùEÇUDÍÕmÊÃuDäDô‡OõׇÍÞ<_Œq[sQ|ZòA•T¹VùWŠ/a‰ÙýíÓïê÷&ïÿSÔLÔÍôÆOÈõÞVïéòô|Oˆ±Øt˜øÔLO:7j-£÷UÏg÷YŸ4q[ñyi_Ñõi>ÍQFâIÉmW9¿mõ_­E׆τö,LLöLCtUõÜÎÿ‘õI—•ŸµýןÔñDS÷ÈžŽO8qüQW?YõFç…_ÔUätüG‘]ÃÿQüÉ/±Ý±õIRQåxõ‡SW(/iñ‚Ž7½¿=ñ{oîx_õm%×ÔOÄøDÔÍŽïAþ|ŒOí¤¹üxœOÓýbp2ô!A§CMA£Áaë!–,ŽsË,Ž2EòÁ:CøÁ$îqxaŒxsŒx2Ôü:$]Á£Ñ~ÑVŽsÁŽ2A¬S¬Añã#qaøsÌ?SÌÁ¯CÔ|Ááï!ÔÖ=ä8׌â*s„òÁ:EñÁÂîqqaxsŒø2„ȯC”«ÁèëÁ¼7©ì÷AŸç÷AßçõaßÇ÷AßÇ÷ŒSßÇó„ÓÏAóÅ[ß…óÄÛŸÅá~u]ìn÷mŒ/G_îGýAŸÏý’cßÇýaßÍÿ–AßÅ÷„SÿÅû„ÓÏAûÅÛÿÅóÄSÕé~}_ì~ñEŒ/{}WìkùEŸïùžAßçùZaßåûAßEû„ÓßGû„Û«1_¼ýYùO¸ý{®ÿÿ‡äú÷MÈ/ëý×H¾–ëeÏ»žôøž«aÏÏ»ö¼ß$((Q&aBàbÆÔHHA„’„«!O(A„ŠR„&aH1LÄØTH%Á„Ei8O(!ô„C„G(Fè(rEhbBL8ALÆÈA‰ÈA‰˜DmÁ£ñ„RO(ä„2„F¨(G„¦f„ŽIãÛÁ¸‰$R@¹‘(MC"äDS(,AlÄpDÈ"RŽD'+„FafºñˆD)-ðDA-ÑAÄHA¤–òŒA„/q(´)–††i +f¼"a‚Yx!ä…´" †¢A!Xö´ÿ€G )qAeI2.L”ƒRH+AŒl$ªEbhA…$<‰A#ÁUKH HIt‹a¨A$1†©ÁJbAIa(A˜FhH2.A(Ã<5«Š"h!,…Ø‚öû£„D£HH !f"à„‚2’$ÊÆ$Fe”A,b„9©D‹H‚F¡-1#¨‚ðAÅ1‚4A‰t„Ál„Ò¡Fx‚¸At†Ä¨.‚’"%âB(X‚GND(I‘‰N¢Œƒì(¸¤?¡'ˆF1"›9°fÑ(’X¸$CÑ!¬r(N$DH-*‚aD»H!ƒÄFÑ(âHA¢È2$È!DÃô"!DÁB…$ºX'ˆ*‹†k")ÄJ.ÈB‘BÌa†Žd!š(Ä’‹A!…rý/[2O¦„“X%Hi2zƒìC˜2‚//´! !BNd,”g&2W‹Ô5¸Xä8ÄH*±Â!Tb.‚:f!‰ÔE‚4(EòrAËFÍB‰8Æ:(‰,j#"¦Ô"æ‚XR¥1VFìÔ„Ù¥ë$È‚Æè$è­á"í‚ÙwCR,F¨B@&$Ñ!¢AÌD (ˆ€ˆ&Q<(! J(QA‚ÀÁ‘¡<(‚Cä($¤B†$AŒªAŠ„b0(„Š Àôã!Â(Obeˆ¢BˆD(p„Â!¾J¨8"#‚&ÄR‰ O”DèB HK¤ˆ Xƒ²Dh"(®BˆKAˆ–’!!ˆ'JJ‚E¤<"ŠÂðœ4`C.HF’!-XLMO"£˜9µDjCXŒ`„K!Ã1êÇ–Å0BŽBn$Ū!9¸˜"7¾Í‘"¤"I‚$6dM#è"ô(DÈ+AH‹!`"ŠK,Ô„¤JÉtø!DC¶9Ô(‘H®2-J!Q(jãÄ<ì#2ƒTRkmHL+ˆFhAÂ"F7Ý(†ÕýÖ¢tøQXŸÒô(ÏÁzqÿJº/hÒCò6EÿtùF§ï¨ö:žçƒÇ”ŸÕö„¿Óø›ß¼×‰ÿÁ=²Ï­ô(]ß‘Þ˸võÓ8Aû¦Q/=£}^äos|}ù-LKdÎÖïÃýž_©öa½ßýS3ž[×óñ¿Uø7Em±¢¡/õÛ:‘ÒúªÓW]Mßò‰;“o¡ñÔ.O·Ü"ä¨áÇùäß½DñyŸÁ¶[ÓõIŸ4}V÷Œõo=û^Š>4M4oqû4Eoýd–oV¾veõi%_ÞöˆÛߣý#ùÿuóÃÚ­Èïñ¥oj¾–ûrŒo+ãy²–›R'.Ojüuç§‘‹FOFæ†ò˜òÏfü;ˆÿäö‘›-ÝšøÏN;óìæ/ûcŒ/+ã(òƒ¨/ýºëñ5²«d—Ò–çó™²Ï+ýzÜï¬ò„Ê΂¯…ønZ¶ÊaÏÓtyøSZŸ”õIŸ…ñu\Ÿú·†ó¤(¾.4Mw}åOkñçÏ^ò]m_Rteùeÿì÷¥ç¯SýÏŸ_=ôÁÒ¯üJ—ÏôÍnO(óR´oJñ¶6O8ÿ3á;Ú/oô4u_„ò-lOF4䯬ç»ù;ѯüú„[µØükOºõÙ"Žr/Eº¦ñ²"žó?—»»q»ÿ%ýßò(A׆’¿hò(ÖëÓ¯áûÔJ¬½ýŠŽOëõ9p2ät:ÕtÁaçVŽsÇ„ŠSD¬s„ôÁSøá#qaÌ„7ÇLx6ÔQü:$Á£ÁáãÑUV\8WŒŽ2EôÁ:UóÁ$_þytaŒxsœ‚/CÔü?eüA~ÕV,_8WŒŽ2A¬sEqÑ ÿ9Æøsˆ/CÁįC’Æ©”âãцÙQÿE×÷A×õaÏ×÷aÏÿ÷„óÏÏó„ó¯CóÅz?ÇóÌó¿‡ánùäwŸ†øòõ¿‡øòôoüëü/1üëÔ/þîüo1þëno8ÿè"oxÿ¸&¼ÿñ*O,áêzmèj÷aˆoKÿÈoJú:ÿÎûÃ¿ÎøãÿÎû^á¿®òÄóŸ/ò†÷*òÇûŸ®ò†»—¯/úÿyHOú÷iÉ/Ûû{ŠoÊÿ:¯οüꌫáïŽú^á („(A&D„P‚„-A„!LX…”‚£á(€fBADAL„MA…D„8O(HR0A(SeBR„ÁA@¤Á#á88CeBBL N5ÈBŒ„Áh/¨ô( *ÁÁƒòˆ"pHdƒÄ5ƒ„{F¨„J"¤ÂŠ1$ˆC²ˆäAò*)ØI"Ä$ÂhmQŒdd(¸(…42C82ˆ'BØ-$L:Sâ„É&äE¢„‰a$>‚ÆÚHR$HBD+Œâ¼h؈Ö,y¾þxN¼O¨¶Šä!ñBÚ/êô†*?kHqói{?±wEûY¿•õ6Zæòl'ér*ü"&Or¶FrbôkGŸòö%ïÿ2lÆô%mÝCÇ6§Ö-(O¤4H§¤o¤äÂú~äÏ!ûí>¦-¦ús‹“ïÏô4¿¯Ev(ôll®(«ìï"õ¸Jo„{ÖøJ’©üroŽûN´lóíŠO"ÛFú‚fÏ*ülÚïÎònü¯A䯴lúfäìýªVÏÏöظMØ/(õšJ¯ïùf5cÙaùz¿´õK¤ñ[¿µõ4OôòMbm$'B-&M"m,¯Vô+OÒ´M²lô,Ln-ÿ4òmcïRÔŠÂJNJ©t(ú&LÎ<ï(÷V"¾–+*Oh÷×8Ÿ*õz/ú¿]²,tlü$Ê‹¤¯Bý¾BìþX/ˆøZRØoËô2ìï!þ–&®†/CÚ&ûœnjxzøò”KeË"GF‡fÏ…ÿ®zï+ôšš/„í¬õšB¯­ùl×ïhAq2Ôô:$]A£Ñ6-aÅóˆsÅê(S$¬S…¼þ)qä?×Ô‚x2ÄÁ¯CÒ<áï!ÄcÏ(ôˆsǨŽ2EòÅ:G$¬alî1QÆNˆ?ÇøR„'C¯Qü:$mÁ«A-áãÑÖ,ô„sÕú„2EòÅ:EúÅ$îiÁƈ7Ç-„'C)|:”Ä£ÁâãÑ2ä-|ï³ôkt¯±ôkT¯‘öotï‘öofÏ8÷l&O8÷,&_¬÷e.o¼weþêWÆîóeŒ/ÓþwL/ÂúO¿FúKføZaÏfúiÏfòŒóÏgò”ó"úÇû–úŒú7Çêsü¬~Æø¶ì7‡¯ÊþºA¯NþšQ¯Nøšqë¾ïöî2ϸÿì"o8ÿ¼"_¬ÿõ*o,ýþäöÇîvÆøþä¿Çùòä¯cüþì«ÁïüâϯþôŸùK(A.pAÈAˆ3á(H€2F&6B,(„„ÈA‰Ù„˜B€<ŽR H Š2L¦4H‚B„A 8Ž 2&3Ÿ˜âE,@é$‘(œ”"D%‚±B₉DAæ„ÔBB%¬‚Èx)"Ø"‰²L‘"‹Bމt!tHÁ‚…ä#„i¢R¤‚bɸ(•‚)éž!N,§D€b$M‚À"H _ôŠŒ ”$³p˜A‚JI¢$4„h„AB&‚D(,øH"*ˆ¸"1D)ƒ¨B$fKŠH*!ƒ˜4ƒ$gˆ 8àDjAHDI$$I1ˆH ¹DÁŒÔ7$0H“!c„Ú"&1D&Eä‚$"xFÁ"*ÔIÀHa"E”b"–D’D a-!MD TH"¤‚G‚„OH‚‚AˆFÂ!AJt€TCÈDˆƒˆ+DˆW‘ $B“HC4",hB,ô&HH(°$ÔD¤6A!DŠ5F2D ˜È@Câ´âdH*ƒÈHLaBš¨"‰IKšDÀ8 B„¡()‚aDЏ¸bÑQ5·!"R!“T(bM$1(¢&B'vbÌ!,’l.Dh_˜2B"F”"ìAB¯(àDF'$Lbˆh'J($L*TÂHÀ#HdH)"d¡Œ ÉáD„x†$ƒ„¨dãÂE&ˆ,¢A„Jˆ„ˆâ‚ĈC#,$…(¡BÁ"¬£X$à,‘H (Ÿ) ·,$‘$>‚`!.„0ÃÀ$‘fÈ(€íbˆÆ¥)Äq†”’ ")l‚+"B(2ŠÈ‡„+‚ÈH„)‚ç„HB"Á4¤8F¢ƒ%ˆT„F´"ÉDÈd*Œ(Ä")éô?v*Š$À%.‚BC‚RbF2!M$B(‡hˆD)€4ˆ&Ød!A´‚C‘DˆC´$ÈdFÈ$,4„0O„HŒÂ'8)‚‚†‚E$„ø2J(ˆ…!òUj€Ä+A1( 10‚"‰ D¨EB$@F†Â†@‚"N!…(ˆK%H&BK8`(AŒB&„aàA#A¬6ç “m0R…"¢!"h"A*Èbh0A"J4(A‚„#š"AËÁHH§HÀ(…#ÔB:‚Œ(,*Ä(‡D•4B†t"„X%V¨H((ŒÆ‚±IZR‰Âˆ'!H*(’‚!n†ˆÚJBôDŒ„A”B,X(dF€(@4DX!NCÌ"Ä%H" B‚„H`" ˜DB DA $$Ü8¥%‘HŒDˆÑâèˆB£&H4(D" "$Ff‚‚ÄM!(A È"%Xâ‚@HAD‚Ë(‚(‚A,N8†B Xˆ"ˆPH$+/Æ„¡#!!á"HÄ£"()‚!($ˆ4…J$˜AˆJ<(DB*ˆ¶H($”J£4DI’„I(’aBˆàDÈ€¸„‰THHD`„,¢ðÓˆD%ˆBÚ$H8a@rJ$HȈ…昈T„I(($h0Å0…0!Ì4!°èØHDô!H…ÄAJ‚¡0$A‚J8D)–äAH"*ô^¥$„BORQÅ1L B‚$HHIè–$„.D!PÈÐBH(BuHAM!(‚à$Ä"°Áè„!Hdˆ„ BÀ%40$¢É±ˆa$! ÎJ1 €@BBAB‚Q"  DD"BD 0€ðû= A@‚$@J@$"$BA@€„@""!$0„BCÑ´2úH”HH‰‘h´Y×5R¡ŒF’"‚(DƒTIB'B¨-Á%Ó"ôLB#KD#Ì!J’$„HeF¤D@„üaH„äRdøˆAÔV<†€±…ÑAa„SDRÈAˆbÁ$+Áh$%Ô"õµ|@8$±0G&¥X&¨‚0H-hH!©‚’(A+$a&AœCƒZB.ÌA¸Àˆ/‚Ø6òL!FŽ!ÊR‰ðDˆB¤$ ¢Lˆ¬‚L<(È¢Bƒ0„‡D,1Ú±BÃ3!b£‰ñ"I T’OØ4„!@2*#VÃb‰J”BN‚‰¨”-¡ˆ%ŠDBK,K8JVoˆt#(Ô‚hÂD'AL ¡‹ˆ&µ$貈(™l$‚T$"f”…$ˆBƒôV$IÞ‚´ˆC¡’M¤ÿOââ‘·;µ5L³"ö¾ç$ÿöòŠ"?(ø‚¢?¾üÊ£/*Òjth~lâDô²–/7õÃâ­‚/·ùR¿,Ü‚úo§-ÆO´õ­/)ÓA²„ùg2Ÿ(Öêêô|b·%ô8(NÍ/ùùeR›.HÖ”ü›„‹HOÒþ‘–[ßš÷š"ÈÚ$ó%z·ÍOŽøŒO¯ã6b‡ÍL¯)ûD–'†ë¨bÍB'(ká/â:F-%{/¡ñ9Ÿ•ô)__ÑÖÏèÞt͈â.ú¢ãŸŠúÿôV«§‚_VôAeL­—³)üIs/¡yVÒ«ücDLª¤?ôÞ(OH"è3tŸøÏg/Tú‚Ê'‚ßTäT⪵rø–¿eû»åMH/)û[¿[Îl­â·3oÑD¢‚/öÿßÒõ’†Ï’¢&­Hè¹vøR6Ïíõ4hMÒ,ùÂB/bÿÒWN$BŸ÷ROÕô1Y‡f#÷¨aŠº)(Ú"ò*K½j·66ògì¿Át)õeaC³Ñíž´¡øû2ÿ½ùÊK¿(hN_ò×ì¯i{Eø¶²ocêHÿ$IGºÛnßòöm&½íô­?¯Ýþ2_/µ[øŸI¯±ýÓR¿Eù¯aïùþ’ÿ_†ù¦oKò²ž.Óþõ_”ì/æ†tLüH2oIþ’Òòk/O(Œìdò¢®“ß’ç“Ô©ñQXŸ¥A”ñwA?ìö‡£?¤z¢ò""/"ò+k­K7¦çv¯Ôö(m[FO~õÒ3/;ò‚k¿¤ÿ™R·9/8ôKË?*ô¦3Oh÷z¾k‹M²m¤ŸUúäÉwŽßRøJ-nMW†ßRöÒ?®_o“üºß$õÉÓ/‘ô©ŠŸ&õý9OìóR¦cû”2Ojÿå/ÙòÛŠ—ÄÏ–¦"ƒôÈLo/åb½ün¬ÎRÎÂ)¬¾o-µØ 'SA§CmA§6Maá/8W/(öúû*?¬ñá‘ÆøsN‚/sÔ2ü:gíï1Ô2þC<Öå8í(S$¬sEøÁî1ƈ7Ç…'SÁ§[Oüš~žñaÍ87MŽ2A¬3%¬ÑAñáž3qä·Çx2ôħC<èãÑÔ1§\ÿ2AV÷AVõqϦ÷sŽö‡÷¯Žò†ó«(¬ýk(_,}küãv÷ÆnóeŒ?kÿwŠzú:É~ûÉ~øéÏ~úãÏ~ó†ûÏîó–óÏjóÕú_ÎòúÎô©þÆô©~_Æü»ìçø»íïóõúåï¹ôúů±÷þåï9öþwï¸ÿì6o9ÿŒ6­ýå>ÿ­ýÅ¿î}Eèn÷IˆoOüWªoOþ¯OþÂn¼þìäoü)$$€ˆSŒ.„,Q‚P‚„-A‰"ˆ8ŽB,%D"Ä2Ct$&Db„„˜BBÂ#á(H (AGJ „”( „’‚#ñ„‰(Cab#á¢3äLÄ3DB±$’‰D‚2d%ˆt!%F bNƒòˆ92ÈX1ƒ”¥É•¡E"x'ˆB¦ ABÔ&ŒÔh˜AäHbœC‚˜6‚Câ(t4iˆFƒR„`ÄL¨D8­„€<ˆO#ô&þYÈF#†Ñ(4A)(T( 2„©„Ä!E($†!ֈȒD‰NA‰äJa„)Št"¸Í(EB„äÂrDˆT( ŠòH&DЏ’$0ÄŒâh8‚&Œ”ˆAF²H$H¢t¥>#$EÀB‚eI’„"iy!d„*D(-%0‚‹($L"Z<ÂL"B1¤$KJQpdH´„4%…h4°’H‚A¨A(h‚a$`‚IÔAH¨BŒBÈ€ôb¨pl8Ð!TXHÅ(bB#˜¨H€ÌL"¯Bb”Q!JX7NP‰#$I¡áLć‚II’DŒ„hd‰^„¬Ø„L‚޼ h„L(Š9HŒ!ØÄ;\%xD8UB²A“dB&‰š¤¨I¾ÒH¢DƒB\'J5²ˆB(¡TzAÓ‘Ü*„Å&‘8U‘LŒ¢R#Dx)"H oh‘GÁ(GH¢ˆGé¨$Ì$ò…DŽH–(,å(JÔ¡ #B@ˆBLB4€D„„"IRª6¤(#ÑA¤,H‚@D„dDIdÄ,HFŠ (ˆƒ„`‚ˆ„„Ds˜r€’(_JbA€Ô2„(‰ÁA©è*AÌ!" ’E ’(KQÀQ„!”„e¤$¢/BDHˆJ$2DˆB(:…ŠU,ˆ¦ÄZAH"˜„)t$¤E Fˆ_4¤3ÆRLDÂ!$‘jrÂ|"D2"EÑ$š(_($j"äiÄ‚)ô"uÞ#ŒM²d(Œ¼"ȯ¨8iñ”"L6A‡(ýAÁ(à2%éB²ŠyXh‘3ÊHDMbΆ.¢€òd‰dÏ"‰G„#B$È´‹’)S8ÓŸ""«TbàÁB&2¤A£‚‘B?B9(bj"rD¡A‚ &‘ˆc¦D#a„(OÁ¸B˜! •„¢Rˆ‡2X"K()‰rBˆÇ$‰xX$ÂD&ØD¸J!(œ(¯Y+A3‚•J#Cñ$ˆ,VB‚'H„ŽAbLÂh0Ö‚;$˜Fò‚A€xh2¢‘‚>‚La&”O2T"(!bDHH(¤ˆB*¼&(4„#"‚8$B"(ÁJÂBIK‚B„J¨!F¢‘ãà$„pB¡!Id$"²‚Bø‚2(BfB,¤J!R"2C(‡FÄ(HE$BD …RȤ@4F&,¢a#Ø$ÄD(@x„T"A„ŠdAÂÏ7O0!)„"E(qÀA! D!@ AD*4àH$AB!" ˆ€D"A‚D!‚,6€B2A£´BDäB$dlâ"ÑB¦ÂA°HD(@#(¥$°"á„„"EaB‹BD¥)D˜J!%$QDÂ'$CÈ¢†‘(K„#(8BB…d(C!©‰ˆŸãG"’A"‘( $Iˆ‡ŠH!DAh”Æ#!9‚‘#¹A’…„ˆÐH¡BIDŽA’(”I‘!€"À$EèRBˆD4H‹AAŒ8þ¡L¸$‘)!Êb6›&‚($H*H¸z‚%˜"(‚ †DÊ@‘HMA,]‡¨JB"„%B$€$øHDˆ‰Dƒ„üµÄЄ@(ˆ)%"#¤Dr‚„&"4¡$aˆBˆˆHH@ÁAIÑBdA„8A$à¤$)ÈAAE$”$†ˆ„(l…BBGBAäb&RÀRPŒ>"èÀBDˆH`(Á…4D(Ò2A&!H%„˜„A„B„ð‚„! Br"$$ôâ$…‚ÄB„(ÀT5$$$‚Ø2‚… 2($Ä J!‚( „`R‰Š"XB…¶!T‚Y2BB"0‚Hƒ’(H$Š„‘˜„ „¨â“ËHHD!ƒ”€„""B`2!‹!(8„„b"`‚$AH‰‚A@( ¢(B°Hòøü€1$€ÁH$B„B !B",$Œ& #@!(‰ˆ(B A & "‚D‚(‰’ˆ(ˆ€ÁˆÀ‰óœ"*rÃôFaCóÆrF±)á$£"&Èj&òA$¢Æ(;'ˆ.E…Òª)ÁDŽ(F4%!$t"qè”ÄÂËR…AQ(-!E”²ˆ‚)HH¸%è$(dF2†øÄ L‹Š‰šªD?˜ ÍZQD‚á”BAØÑ˜‚KgA(ƒE‘Hb…!„ñ¨$F²‚qÁ*ä„肨Ä>‚È*ˆ¸ÔÒRI+8ŒÑEaDpAHÒ‚hƒ!,ˆ%*$RM!‚á€Úˆ£HI¢V„LÈès H+$+A‹%!§¡2G$"„,Ñ!à‚„D(¤‚Œ†”":2#"‘(ÂÀ2€³AÑ"dŠÀˆVâ†hFUTD#Ñ"‘h€”hØÄ¡IˆM"$1Â'‚D nD¦(2ÂÃB‹!ßÜF²ió:L'ÄS?ñhoÄäbùaWsržô!‚®’‹»!‡"Ÿ¶×2óAB«&I¾³$ý*q§7¦O8ÉQb†ù#rŸxò!‚OBóQIÏYô-Ä߆«8\”M߯ú–6Ž×XýîçqÑôH)W¦oø¢qŸAü*è*òAOíG›ÂŸîÒÒôHDƶûÂRÏDù¼ÈGÆ/(µDõ¨fìª;1VN/W×¥á”ùr]¦ù¨E—ÎoIò´’®ƒ.)«A~Œu{‘è"Îê¿7Ù6¨/)óÁNkç(/óáN™ö)ˆ+ƒ/Aù„!îIƒëCùAØŸÖL"òAÊ¿Y×^¶,áBóWNK¥ÒBrcî´õˆá×®oB)ñ‚¡o–t(t$ôÃÏaÉò"DÎÎe³Ž~(äOפyB˜HÞtOÂyÚ o•óe¿4s[ùRôñnSÿƒòÖH?kùe/+2>¼ó2*«e¿øzI.h‰ö!¯þÓº´÷ŠÓßµøÑš?Ô÷‰ñŸ•bŸþ?Žë!"ûô_ÆóÕmY¾-üo(_ÔÖÿ9¿‡úÕ¬œõs×µ7¤?´Ö:öI¯ïk“âú¶'Jg¶_ÆòGïïö)į×òDlËdcøþnOÅëÌñÈ6ç^XŒ³ÈóÜ*3ÑâÝ·õ$|¯ôX-[8¯öß(/ûüY¶Oh»r2ò22[ŸòqŸ„Ò‘riñéC—Ž?ƒùc›îÙ¯1üXš?”éŒý៯ô³Ê¿+£¸#ëK¸4ûÁøŸöu—ÆÆÖ]Ö\öoЧòC;/öõQ§¤7”NK­aç†ïü¹4O)r&ò¤†/bòGhcÏX~míÆ’hÏL~nú²üMxO‚ýÂÁXNÜþ:Âð2D.A¯CÄA«A6Öæ8WÍŽ2A¬“$¬î9RÆJzs¬¢'C~:Ô<-áãÁaÁŽsׄŽ2A¬ôÁðáž!ƈ7ÇLx2ÄůCÓ<>6ŒŽs׈Ž2CøÁ:A¬!øá#qaŒøsLJø2ÄȯCšÄ«AèëA¨“ÒòóE¿÷óA¿÷ñaÿçóAïïóŒÓ¯ïó¤×¯+ó囿§ó…[¿§õ¡·‡ú÷I¨?ûÿ[È?ûÿá¿ÿÿÁßßýáߟÿ៿÷Œó¿¯ó„ó¯KóÅûßÏóÅûŸÏñáÿ×Ç?þ÷mŒ?ÿÿˆ?ÿÿ:A¿öÿQ¿öüaÿöþaÿö÷Œóÿçó„óïcòÅûÿæòÅ{÷æþoüâ>߯ø²ü÷Ͼ¼ïCôø¾ëEǹöü¼ëiÿ’I²AB2A,2E&&d"#$saÜ4(%!Ò-Á+!ŽS(<”!$,eB1„THDEM#ñ„@AÑ$eblÄ1ÄØTH%Á„eM#ñ„°„$4„BK(CdBBŽã#ÍÁ²„iE(U‚h!%Bl"`cb(%”H‰"t("´l‚AˆÕ‚T!,’Œ)²"B1(ƒD„FÂADA-J„D‰²ô(†4"é2Ág¢£”h$‡Dˆ.\À˜À˜ïh B!F2B/„3ƒ4"ð$B(,G$H â$(f3!J1BL“"˜ "1(€äD`Ct!F¨$†Á¤4!K†$"8D(H „L!B$$ˆN1CÂC!pBA"”¤)‚¦Á‚„‚UB¸à8¤($´!è„B¸B FÉ‹-ÁÀI”ÀÎ0I(†$ÔBH„DÂI\H%`!€úV)$Cº(QA!‰“Hj8"È!ÀfR”&"<$…,aËAFµ˜4„Eà”4ˆ¬tr„X%äHbALhD!H3b0HKL%$FX‚$ ÿï„X³BÂ!"*"‚P‹$E1CKHÄX&`(*FBH‚0HAB,‘"$„L5T¢‚ ŠB(ˆ€‚dD xDè¸>9"ɲ'T‚QÈ@Bø"Ð"a„°AV™ˆƒRàSèRoĈ„ƈçB¨‚'€¨) a‹‚_%J•(€‚E„(ˆȈ‚,A$„R€Ÿc bùB"T‚!0Dn4ë$…‘‚"mA‹¾ˆL¦H>$dAl‚l´DJ´RøHŠ4Ê.Q#ÈXC¡"–bºf‚MhJ1$d`ŒM’…dhˆ‰¼Œál1‡L¸"r&ÉL#Û$6V*2D°ÎÚØt$èD˜$ʹJ¡h5Y4Z<H‡!TªaÄ`HH#á¢äAÈr&D(Å*^A˜Å2ŽH6T)(†Á$˜+‚O„Á$ˆB&I¤Dƒ©Ä‚ƒÅRˆ‹%H*Ù„‚¸N „F‚B,ÔH<1E˜ˆ')B#!ô¿Ú(IDÂQ!JB´#TH"!$*Ä*HbDbBDÂDc*8HR#Ø(¸%ÕBdƒš„&´B±BÙhÆ0(°dª8=ŒHšÄ‚†ަÀ‚”†K$!$„šNBL Rˆ¤„Σ‰Ò„BBjJBC"M"-!N2EŒ‚ÑT&0$0BÀ$97„*L(¢Ê(Q$OT„$ˆšÁ&0„/D(†‘„@bH$IœCD$ŠD¿þFAÒ!0$@$(!bD€`R@‚Ch !Á…" A+ÀR B)ˆXR`„#L%€Ü2¼()ô(BÐ*DHIB‚R""4B-!0$ $dAL‚¤D@Â$B„¨%DDÈ!ˆ-!Œ5„‚$‘Ìm+X “GB0Ä/F(h(CuH!DD†!ˆ‚)ð˜z,"€4!ÀH„'A"À"C! ¡RÀØ€t$½DFA!„H!HHH`HHHB'D!DIÄD$B)Ä·ó!‹Bp"â@Q)@F‚âÄD(´B(HH€B2aŒD€l\T…ˆ‚…1„0ÄAHHˆ$ d!„,( $@cL1#)¥"!""ˆ’Dap( L)H$¸AâB’(/(¤"„‚I‚$ˆ¨‘'EFDáBB‚Ç(H$D†â$”BÂÜ>æ$RH&B A8-‰a$G2`!Cª!RQZkABD„€áDŠ!ˆH8$B9HB JLNB$$a?„C2$$„@TÒB"fB8QpAb!SrA$¸A‚‘(àXöˆ†ÂAC„,F($&„$@B4ˆDH‚†MH„€Ô‚:ÉÀ$ *!@h‚ B`‚ ’(°(„(À†JA:1H¡Ð8$„„@„#!0Ÿ„(` ((2O€AHˆBH‚  $H!-‹¼ˆ„)1‚!(ÀŒÀ¹ó.A&A "yV&1Á""r!ÚRa(˜A5]H„É”H"´¤d!bª8Ä"ˆé…âE©”%èD(¡'„ÒL¤ˆ‡H‰¨ˆ3Ø”A ’Eˆ„GDJH-tBÌD'¥B ¤‹Dƒ•B#õ(Ë$W‚G‚¤@d¤„Ì‚b€’B‡KBðd!&$N2¤5Dø(LÁ%†S†’KRC"’DI1‚^‚K„‘7;qAHHT"XƒT#8Š]A ¤Xa%bH)TBŽ×3BÒB(¡p(ñ!2&B€aãjdÂRŒ¤$/‚’*‹#-¤#%’„‰J¢¢8FkK"7ˆ"¤FHèHÁô"AC‘JÍñ†“’$ð„W# 'ˆp ŒˆD8KD'!0…âÅOóI"­-Ô$4µùD,&çuózU«1:Á"?–Ô¶)ö[.bäÏÒÍôb"<ô9r¯…ñq-C¿¥sGø$¢žvþkª/)ñaͯx÷=ñÿ¶¡9.DÉtL¸ù’ÔýAÿñTŒ/8¡Ñ¯­øU_8ÈSŸqô¦[š%òÁÍGëȧäw8]A‰ôHLkMR‹T§©GÄ-rJušúFÌŽ;ƒ“aÝ$-gO´ä”T?2Vå¢ÖXôi(+/'‚ôa)£tbóDzÿA–i"Ôv.³Hv)Ñ"òQ_•wr"öE(ÖõÚ¥¿ªá!ú$ž¦?–÷˜’kO§ÿD‹"!O¬ýV9Ô9ù•”FùÑùŸñ‘_•ù×]½E¿†£ˆGI\øÁI­‚GHN˽AÙøTDNÊ‹ç$íÄO-ý‚˜FšÊ^M\_‘DѶֵôibï”Ô¢ÄJÍb÷†mi7f^:+-!7¦¤òc)¿A·MúI_ÒÖÖ^Ö‹öB+Nk1÷_7¤?µõ(CŸæøãLo#ùeŽ/Cy¢öu˜íóqý¿s½~øDLDËÑÏ­ñÖìÔjÿÍ…é´›uÊ}Óý—“_Ìó"–LøE‰ÔøBÎÉÜ|[}D¸LôFéüTØmž‹¼ï­è…Ý¢ñLRÏQ5Û=/O´rdÞtKj¤n+¿ô.8/Õõ;2+#)ô"bJ·B¿vñ]iG’ÇVÇ—†?¶á·ñq[¯õ[¥?”Ö^öK._¸ÿÞ$/hãAò„²oCóÑÞ¯Iõ¸vç…O†ÖLôˆÔÏ„ñV›ÕøÃÈ1ôÛ›?µñSÚÏaýX_µü¿¦'A–v†s‡÷ÁN¯(ôŽA×ÔNLÉ4LïÄøÒoˆåì½ô˜/ˆåŒ¹šü¿Óð2Dô:DMA«AöaaË9÷(ž2IòÁ:K$¬!ôáž"ƈ7Ç*ø2>ѯCÑ=áë!¶œã9÷Ý(ž2K9­³”ñѲï!raŒøs)ù3”-ѯCøÁ«-áëaÓè8÷Œ*Ž2A¬s„òÁ†òáqaŒxsœ‚/CŒü:$I<)¾Ü‚5H-ïïQö+oïô+O¯ö/nïô/nß>õ;*O9õ:"_¼ñk*_¼ñK.û÷_Lú÷Mì?óþ_H?òÿA¿öÿQ¿ÖýaßöþCßööŽÓßçò–ÓÏCòÇÛÿÇòçÛ÷Å/î_ìî÷MŒ/ïýß/îýU¿îýA¿îýqÿìÿCÿì÷ŽSÿïó„RïaúÇÚÿôòÄÚ÷äîß÷ÄîßÄø2ÞÿÍìãùÆçùÞÂç¹Úþ\¾ïܾN€dB"!"qaÈAƒ*"‚¼â(…‚„‚8AOB.‚*(ñaˆ/´(8*:8ˆ#á(ŽŽà(ô¤à(Còaˆ-A‰‚Á#á(,$D"Ä"CdbBL<š¡"‰DXbIt(S$$ä†1"ä`‚"F<2£&‘’(ÈC!ˆ¢(CèÄAN"NŒ*Ô„ÔH(ÑH‘È9ü!,±Œ”€Y$FËF Ô@ +E„#H ô/Ìà(È(H$”;BÁ$'„$AL‚ÂXH™Æ(B$1"H/"HÂ(ˆL†ªÁD.GÁ!0DÉ"dÈ*áˆ4„+„Œb(UÆbÁ`H#á¤8EÁH#e¨AFHñC³‚v€¢BRB-`(X$"L2H#b$L$ÁÁ%£BŠc"˜À4FØèhF„\(L´Ah$¨)!M!Œ”¤E‚„DÁ'BÀDHWI"©CÌ‚@‚ô™>$$ÄP8q„‚†ä(ÒH1q@ÌDNˆ"XBˆ”4€1,Ì,V„KBd†-0&°B¡…„(ŽT—D"˜$Ž@„á"¡(CDFÈ¢(D)Eˆ$äÒ3W)„Â0&%r!X&A'"\j!"BBS²B!²B/!¤"/„5!. ¡¡GFlÄ¢B!ÈT-„"”†øR"#Ä!nAÌb!K8GÐ4„Ée(TDDCÁ¬)f‚J¡d*õ´2ŠR$!„d,!Dê¡A$EADC¨!˜D‚!†Š‚À˜+ALL’D‡DAB$ÁB„ŠX„®AL‚`HŽ$!D€(„KˆD,,FØQ,Ê „R„„(YTC*ô„HDp(„"R”¦ODØ$$ÐL$9@Ѝ(€¢‚_¨X¢ „‚D9„ˆ¢0Œ&ÈÀ2…„dB-H„Ï÷Kø#E‘A+Aƒa#E¡ð"†â*aE>"RT,!n$I†â!ÊQ¤!J¨,„e¨"ŠHtÒ´a¡Ž)â¨bD²Lb„+B^ŠVñš‚¡¢˜B↢T^†àJÄ&AŒ””A µ(8D![óQ¡Aƒ$Í(J†"27BJhÀ2E„"rQ,AìƒOX!‚IÁ‚W"BGA,¨!‹D.Ä)‚L¨H‘#lƒ€J!˜I(¸B±lH$àB8ADˆ°B8ß›fD”!:!ÐB *„!†ØK$ $"¨4†*X‚ˆ",ÉdˆN(ˆ8”D°*´(ˆÕ!b¡ƒ˜B:2+„")‚ž%$!B‡D 3F(‡B7x¨G(FB‚D2AG(àA€r&˜4APMBˆ)XD„ˆ‚E"‰R$(ˆ@’A(ÄBA"e’ˆL¨(D„ D)ADPÂB@ƒDˆD`„@\ßCpBB1"B"D’€0BC"‚$a, ˜((0"A‚ŒTA€dH`N0ˆ Ä„H€F(IBHŠÈC„B+D+D%â„(K9PBQB"ôA(†B"ˆC8†ÈI€‚R"AH¡&$™A(„d&ÔHĈƒ$È,p„t²Iˆô"DDFÈ‚LÈ`ˆ„Eôã¾p‚¤$AÆ2$”aH‚ BA”$DŠB´D"ä$J(QÂ`BªD„ˆ I$4$+HŠ1†¡… ¤„@‚H@$4ˆ D:H‚åã"JÀ$HCÈ%OHK8$F¤(a-Ò"AHAÀE‰AŽ$@b8@‚LÀD XˆHE"A0A,D‚„Œ¨‡AHðÖÚ€Á"XR!I$"D,&HÂ"(((@$ r€PL8ˆ€†„B L¨„B„-,¢%$D!(!I!E"Ä@,‡jˆÃH`¥#A‰BfÀB!"@$4‚‚"ˆH-¢A!TL¢€ÊcÈJ!Ä,B„Œ¨„€4H˜B‚d$BEHHtA@D„D#ˆ!‚ŒU &DB"ˆ#²8$B@Ć”Æ‚!ˆ!¦˜ˆ)$’‚p"#ÂAaEH,G(A$&Hlˆ! D0I¤A‰$ˆ„8HÁF˜ˆFN"ó 0(ƒ,€QÁ'C$@„$‚#1ˆZ€@! 0#+!ïgEÒQ@H…B€TTA„AzBHV„DC ƒ‰‚À@ 1H" €ˆÁœÃS’D ÑJqâxgLŠÁ&$ÌQªAÒdx4A8„+ƒ©hïøAãñ–,Š„óÄŠÑAñACøA„Ä@øRˆœ °˜ˆмTA*˜„M$E(TFHÌ„=ˆðÒÄ„D„hI2ž¯Ý XFr!q&teH|!èBh!$EâFd""(âlaÄD1AÂB0á‘EK.Äð"A˜&*¤B‹HAA¬qD(4AØaŒ%¡BD/ôAHƒTðÄG„NˆàfH8H‰3¶çñFäAƒ1H,A„ÔH¦8A(!ÈD‘…P&0*()JÄB,â(BV¡d¬"JFÄ’DˆpR„¸ò2D‰4‘­(U(.°Dá$Aè¢aB"B0B‚/X‚'H#þɯs=Þƒ´BñBQ·¡†ÂO<ýzåë!d+˜_÷øa'¹ù¨ROäRÒEø’Ozá¸ÿW$ôˆ¸½Sòa$Ž8ùvÅ+!Eä(ûwů“ô$EO<ñˆ:.LL´DøšŽ^ŽÚgE“ôˆŽÚ+WTß8ÙµõM+¡SÊ?UôIYôe22.MŸ„ôEH¯qÅWNcùŒÌRN+)ÏÂ<¬ßRT,>4_„U³Åò2v8øó(Aß䨡oí³$ôCï‹¡o)ÛñrEBiò!…o;áRÔ„úº6ß,ñAaŒøºŸìóÁwG¤k¡/k³$òiÍoƒø’ÏlýD.('ËÄ/iÅM‰?yñÌþ…‰¿yñI“ß<ÕÑôi(k‰o!QTŸ„tù6ÏdõLŸÒòAÏŒü“Ö‹Äo¡ý„…¸Hü~._ÑGò3ZÔój3ߥô=WŸãþ¬/m÷áž>¦+¡É÷ƒÜ?Óø²!¯ºUr%ñ$…/ú„?/ñíW¸ýWˆ¿-ñéSϺý{¤;åoióÁšoC¸ú÷6,ùÌ/ÑÄlã÷LLŽÌoÁ¼^øÛŸ¼õŒÿoø[“Ÿ<õ‰_7]ÿ]ø“_¨s2´ôV_$ñ[m/Ñö!Ì…òiEÜô_„oô–ÞìýÄ:«M/©ÍþÎ>¯5aœ†×ÓõCŸ…õCZ?–q~ñ蕺ž³¦ù6¦O!î/÷¥›G3;ÙAv!e.%Yú³6ß.ñÉÿo‘üÛŸ,ñÉÛoSü{¬þò6O*ù2¤k£¯ióíÒ¯Ñü’^G„ÏFÖÈÄLNˆïmñÌß,ýÈ¿­ñÈ’´ýÌ¿•¸ßô·¾M'AcñÏtõl?ñ÷l)ÇÔ]L—ÔJôÖhõÈ’+ů¡ýˆR$ñÒåo,'C\ô:$4vÒü„sׄŽ2A?¬ôÃ$?î)qaÌ„7Lj'C\|:ÄÁ£ÁáãÑü„sׄŽ2A_¬3$¬î1ƈ7Lj'C|:Õ<¾ŸÈaÑŽsÅè(ôÁ:A¬î9ƈ?Ç„x2”ȯC’È£‘èãÁ¸£Þó÷>A¿÷÷A¿×õaß÷÷aŸÿ÷Œó¿ïóÄ÷¯KóÇÿ¿Ï󇿿ñ¡÷7‡_zóeˆ?{ûwˆ{ÿ>Á¿ÿÿÁ¿ÿýáÿÿÿá¿ÿ÷„ó¿oó„÷¯ióÅÛ¿ïóÅß¿íáîý_,î~ßÄøòÞÿÅøòßÿQüúßïüz߯öÞþÿôß~ß8ýÿ>O*ý6_¬õ_>_¼õî÷wîóE?kýWÍ/kýįï½üúÞ+áïïÿè² BAB(CdBBdBDpAÜTH)DI8O(A(A&D@ÄÔH&(ˆ#á((A&¡ˆˆpaÈA‘€8Ž H„‚„ŠR„¦Dè;¿ˆ‡D@)”¤A"AÄ.‚„Dˆ¸BRH¡‚ H)XA‰(‚Ĉ"E%C„DhDL4ˆ)$¸„õˆEˆhA0’ÂEØH!F„Bh$EH8ƒ$áŒø%¿ÖMX…PB!F„Á„"LBB4ˆ#ÒäBˆ2,µˆ0 Ø’ˆàHbLš`DA 4ˆL´Š„ˆ4C\ÈžL+A„Ž„0F‰¬ÄA°ĘHàú;¦)ÔÁ“BB°)´J""±$Yl’†ðV„¤J:‘À˜‚©äºhH@å¢H"QDàò$“€(˜-Œ *#‰ˆ„ÑLD@„Å…-ÌŒ¡„€¨„/'/ˆF1HFs8„¤‚",‚’SK(pDQHŒ2D’$„B#ÁBCŒ!F8 D´HbA"…„|Hd‚dhFŠì„´¡Á„( (LóÄ IäB4HA¨LĈI&Œ1ȉ¡$3ß(/ÔQ²BÒ‚D±h´6„´!é"Á&ÐTVÐBUˆ‚xŠäÁ˜Jhðˆ2ˆ/DÑ1Hb€äAe#Ä)ø„:Fƒ*„1„ÚñÄ[(‚Læ´d‰äCD„ÔTíHÆ„ZÜÄh……‹H‹K$þ-°HBRˆR  Šî(A¦‚$tX„¤!(A"ƒd* „’D$(p(”D(HL„,ˆEˆ! ¢Š&!Ђ (ÀÌ“‚7NˆITC4$`!H/+AAD*‚H"Eˆ„b(ðÄEŒ†¦Dm 8"B ,( X„Ah"È" ‚‚&ä(è&’B$B…¢$„H¨!ˆ2M*aΑÅQ†*¢0œN$c©ÉŒá(ŒJ9B‚˜ALùh(Â4HI˜H"GŽK:¤ŠÄbBK†N8$A+(‚Žb+HC¶‚ hK„TL£H^(Jñ„H‰XBŽªÓ%Ha"H„˜CA(GB'V8"ÄPH&ˆJ”H‹€†Ø(R$Š$2lÐÄ¢D@hB(BÖÈ D£!‚´OTHˆ’Ä"F$fÄ*$‰â!¨DŒHø÷<$b#JÒÊD@¢Š*Ô$áH2aH -„H¨EƒH’˜ŠTA,!JbtƒÆ" „àD¢¤ I $("D.‚DŠn‚j"BCÈ!ȉˆ$Š1Ä͘BP†`¤K‰B$"1$àŽô¢ $HˆŒH‚"MÒ‹HD‰Á„ Ë‚ƒ#„ÉHŽ(HAB€("„˜"¨êAD¸I†Ô„"…ˆ…‰òÙ€„F„À"L'ˆŠˆ@PN)H„%$*8H€b †‚F@ ˜ "„ˆa„@”„  Œ¤‰Œ3—$(ƒÄH‹A$€LÂ’G" $‹•b!H€xˆH‚#ÁHŠE8Èi"©‹BMX„(JI¢LHÀ‚(HD ¨ (hBšC8HD íAƒ¢ÑÈìB¿¦AQ!A*t" J¦1!4ˆNˆHs‘”A'H$%#!`„@ d+ˆF„!,’¢,‘°‚%D„hb d¤!¤)a!<#Þ4(ØBB¤Œˆ‰Â”+" ªBAF"ˆhDˆÈà‰(HQ(À‚N’&(>È@„äBP$‚$†BŽ2D BD RÁ„I„躄%r!T‚#ˆ!)#¸”R$¡‘ˆ„ŒD„#ZAH!‚˜H€¤$DD‚‚!€ª”„)¡¡ˆ0„(F¨"0QŽ›“W¡@.DH‰ˆ˜(EDh¤!ˆMˆ„#X…A2)4ŠŠâD´„F@ˆ‚¤‚) Aš‘$BB‰€ ”‚H‚ñ“ý+$0B`D 0DH"††Ä¡‰DÁB(MAÀB\aìC°D*)ˆ€ˆ°(H‘Dà(a, L2Dà"¤€!L…8(HMH€4X–ƒX( „.“3HP(B'' @‘"ÂR,a‚‚ 2#2(À"‚  ‚!!(/: $@‚‘@H`!@@!Iˆ,Ù!$!2#C0€‚@„@"ˆ0"@ !€‚$€$?—H"©-AÔÔ(Ò"æHi„°j¤O$¸áq"4D'ÄKŒ3áD¸ˆ´Š˜HŽ+A’BHl3„"(Di„Jh‚<DA/BH(i!¸„‚q˜‚ó"‹)GC A8"!%¤‘+’HHKak©Gi=ÔQ‚'Â7‚!1"#qb"O(†âröˆAp(Q‰HÑ)aH$Ahƈ˜‘3‚82,”‚ˆ/>((HàLæ(#lh‚6B"h*#’’) *)œ(Œ‚ 1Î"ƒD¢(d$¼7­@b#$¢!DÉX4‹¨IѤÑCH„ `„kAT†1‚ã±–8è(‰óDB„fJD""²KAÂIHBM"B°Äa„`.BN„–¤†j¨LÄ-ÁˆXoŠDÓu{zaØ"ÑõY*†/"é2óÚÍ/i²$ø¢2_×þžE¯üo>Šó$EAßÄøŽWÏ8õߌWÄŽ’<õÛ¨†Ojé2÷A£©ŠObóWI¯ô¨Á¾Ã2MDÏDôhh¯)ûDRlµæéGIâ!µÂút”>ÖO#²†1’Bé#²Âõ’XÏBì'ê(ÃLɤ¦/(úÒJ¯NùdšÂ+=CïZ>Ì-k£â#óC´ø6ÆñÅ[N©Óò´¦+5®¢?–ôš¤k´ýA‹"œôÓÏX4ˆ/iñEšœ”ˆ/ióež_´ýˆa—Ž#óšK(ž4:/sñÄÞëa‰âƒôÈÈ/e‹þ¤/"óT‚J-Ùb÷4’OeÉ$º1¢oáÙDòüH+/cùDÆïÖDbBOLõæx¢ocã%øÈxšø‚6æòÈ’$Ÿ…óC[Q÷¥¥ñaqÿåúsÌo£ùåžMóßq÷:AŸ÷÷Aß÷õcß÷÷cß÷ÿŒóÿåó„óïAûÅÛÿÇûÇÛÿÇùáÿ÷Çþ÷MŒ?ÿ}ßüóßïQôûßïôÿ߯öÿûïöû{Ï8ÿû:O8ÿº6_¼ÿû:_¼ÿûOî{ìîóaˆ/kÿsÈokÿ6ÁïnÿÁ¯nýáï.ÿåï.ò”÷ï+ò”÷ï+òÕúÿ¯òÌöwïîö·Çn÷aŒooÿsŒonÿ:Äïî¿ýjÞ+qï.¿÷5%0ˆ$À"A&lLÄØÔHâBI8O(CCŠdJ „€8ŽBIA€dB€!„A€8Ž€AˆAˆäB 86ó%¤¤B‰!ðD¢‚Ašä‰T$È$LÂHD)L4XL«‹„`\©ƒ$CH¸Ĩ2Iƒ„H$db"$éBˆ¡„ABA(M H›!KHˆè,ñD8°ÄbH)iL¢A-ĉHpDH$ÈBGLBˆ˜Hgœ(H ¨AD0ˆHˆB$Lˆ„H`!D’€áˆ ¤ƒ¤HÂG=a“M˜8C,a"Lá(q$!‚1‚)Æ„/8AhA"ˆ‡*'I6ˆˆ:†$‚QØEHdT0:0FƒYRƒ‚9r‚D’ŠÚAÊ”ÐD²HxXh0H`„LòÇR *FrHJ"”(‚‹!¢„‰A)ÂH„’@è$ˆHÈ‚H„RC¢) ¸$„˜dFHÈÄ„'Bˆp"˜ÈBÌ(˜†Œ””AŒ"DLŒ(’DBŠ)ø‘Ü“‡är"xBX#èF1H&Ò”¸2ˆŠ•2œX"’APŠáHBò¨B%ãH¢„,˜1(iÈ¢€šEMXEèDTH¯Ibƒ4ŠAކ«)'‰òDŒ#t‚î{$rÈHE¸,Ù…¢TKHO"!,åˆ%²ôᬠ‚A$!",‚˜D(H…`„‚„ŽAG…ˆÁ‚IÄ¢ …„PB@BŽ A LŠ‚‚DisE!(EJèDT($„’Jè(J!ƒ((ŽA„GH($„Ã$x(‚ƒ˜"D 2Ĉ&ˆHŠD8„€ÁH€(È2€A&$ˆø2nàÄH¥„¤!!DŽH 6¨†”"H¦.a„"ÏdÂ+GŽÒ%­H†(hÂN9,¢!_¤2 )„•dÄDÄ)ê„aET‡!…±’²Dò‚‰#!8"`*AIÄHDˆ¢ˆ%Ô‚„Ôˆ‘BPˆ!O!1z)U…‚B‡DŠ(*ˆô"H€8HF"„"Âh‡ˆHŽ&¸Et2(ŠAT&ÌBLLªAˆ*x„1ˆA,†º””D‚%¤A`# Œ_Ø B!H",dA(ˆ@¢ƒ!à"D¨,¡H‰1‰J*4‹(Láb ñ,HABŒÂ($‡D“Á(ŽH#a*"(ÀˆHJ&¨AFBˆ„„-”3V"(BB„H'ªà($ ( ˆÂH„B„ƒ$!Ì(‰ˆ¨„( €D¤8Æ„0HL8(àˆV„HˆD(JAˆŒb…ŠB„@¨„I!Da„HÊò¤($ŒA" ¨‚À0LB” X Xˆ*C"„H(‚€L$è(E@((²è‚0L„B€€BA¬1.bhHH"  ŠhA‚BMHA0肌¡H˜˜ˆ‚‚`BÂ*˜D„˜„("ÇJFˆ(4BA@H(HdAƒ",$‚DØ„Dh„ˆ"BŒ„„oWK"AÙ!QRJTÈ;Hd(D%AT˜`’D‰t‹G49a4A1d#‚'VðBJ $@²‚T(ŠCB)M²"I2"Њ#@‚aA„$)d!-(G!¬2ñp$“D@A$†¡A®1b†(ä„”xh$†a¨La(L†ÄD*(‹‚€ˆ4DHG(HÍ‚ID$ÄŠB*$"¤L,‚˜HKE^{$Q0$N(Bxä„"bDL¤!‰AA„QI@A¢„!)¨eBˆ(ID‚„ˆÀÌ'„ˆD)‹„#CAK(ð„HH„ LðˆGÃ!‰$ƒ¨A˜L QDaD„PA@”‚L8RÁ0L$$XDHŒ„¬)XDIÄ„a :ˆ!€‚±ˆ‚AH$ÁD€dA…¢„B!ˆŸ*GÁFÄ(.ˆÀ„€ÈA‰ÆÁ!‹LJ±ÈÄ‚`(@âJ KC€xD"M‚,!ÈRH„,2„$¢L$Hp(”¨J¡!$‰D"$.ì£ ‚T€€"„#±@±‚‚D,#! b# $(À""„ (¹ `! "@@¬‘FA2#ƒ£„‚(, "'C !€‚€‚.À|ó…”Dc‹AMA”T*±„¡„b„&H31…”Š4º’0H\á¨#È:Æ,úHÄB"„2XJ‰¼H²D„’bÁ‹DO$"ø„"Œ!ÂDF¨#¦‚#‚ˆ¢„H€ú(/bBó)UØqB8DDØCøB„'A.†*Ä„ìQ8äÑÎHX†è*ôJ0;†k‚+ƒ#Aq±^”$BA‚O(Âv8ŽF@ê(L¤ˆ'C/ƒx2„hA#äA’Š2DTŒOˆÓ¬²„ã¨á„ÁRŽŒä,3Z€â!Vƒ³(2"ªqAh‚&DÌLÌÌBD#4ÁcùDEØ$bDM$L”dà".ˆ#)R‚Iˆ÷ˆ6NLð$¤ïéã¨ñÄž/BudôˆÂΊ+hÏFø¬BO®ûRŒ#1%O*ûŒ¯…t4ø4²,Ò„$ô$è¯)󄬹>tlüˆRÎÒ+!fü¬Ö“ÛR6,6_„ñCIÁ>4_ÄñÅ[E߆êa¸¶Á$_”ü„OKùE]Qô,(LôMͯ}QÌüÞß(QŒüÚ6ßjñÍe_Æø2„iö-Í/ƒüöÏ(ýR,ÌbÂÍ„oiÃlO‚ùîfÇ(‹DŽˆ/l~(òÌN,†¸6ø–L¶hø6ˆo+Ølõ(O„~<øLŒ¯©“dÏ‚øörϨ±H‚üÒvO*ñé·$?¥óGs—¥…ñA]qßÇøWŒoiñ…´ocø4ÄßÏñŘ_ÕþœeRü_,ßÖôLÍ¯ÑøWÄÿmõϸûˆ¿-õ‰7¸û¤ûÇïkñé¾oAú2„?oñ¡ö¿ÁúRmGÂkg,Œú2ˆ«£ïmòÈÏìºBøÊ‚ìòH®/Lú~„ï+õå²/Aú6„ï+ñìò¯Áúš<.Ì/B–lÌÿ:„/ÃúÞ:ìñ̺녯­õˆ:¬ûZÔCÔÁñeÖõA¿…ñAÖ÷Eß…øWÍï+ó†”K¡OAú”_ÜýeÏYÿm,×”MEÏÔôEŒÿiñ‰Vß¼ù‰¿)ñ‰RŸ¼ù­ÿÃø7Ío¯ó„¶kƒkƒï/÷òïÕú’~‡†ÏBÒŒÂ(.Œ¯köŒrÏê܆ܪôˆÂ(ÜÂö*ˆëÇoëó„¶+ƒkÃooóŒ¦/Áò‚¾ÇÇFòL,Äò,Œ/k÷Œ~*ýȯ©ñˆZìýåOkgC\t>Ô46ì8í(ôÁ:A¬î9ƈ?Ç”ˆ'Cü:$¼ÄáãÁaÁŽsÕè(SD_¬SD_¬î1ƈ7LjoCÄÅïCÆÁ«A>žì8í(ôÁ:A¬ï9Bƈ7ljø2DȯC†<èëAhƒ×óÿaŸ÷÷AŸ×õaß—÷>Aß½÷ŒÓÿ¯ó¤Óë;_¾ýÝ8_¼ýýþqüá?Äø³×¿Åø³—¯UüûŸ¯ü»Ÿ¯þÿ»ïþ¿?Ï<ÿÿ>O8ÿº6_¼ÿû~_¸ÿû^®þÿÇäêómŒ/ëûˆoëû>Á¯îúÁ¯æøaïîú^aïîóÌóïïó„óïkóÅúÿï÷„º÷ï¾þ÷Ç®~_Æü²¶ÿÇø²¶ïCüú¶ëÁ¯o¹Zþþ¾oþîr€,dB †4(ˆ#á(a„Hƒ€2D& DÄTHHDH€<Ž$$„2D.„B‚B„ˆÈ#á(EƒB(CdBFÈ’¢ˆƒlS-Hàƒ)¦"(DB*4ˆ`DD TA0\ˆ%‰h„dŠÒ„AC˜ˆH®BD‰,dŠÄˆB%(D˜HAŽbÁ†Ap´h!xh „„1ƒË‚‹AH”O©C„ñ8E€DÒˆ¢"F"#È$ ”(Š(DFŒ¦ˆ@-„C!Kˆ„ˆ KDH!ÂB†HLˆ'ÆCAЄ¢„8F$ˆ†êBBH¼8šˆ-a[A,DAøFG¦aƒ˜2äá"¸$2,-$Ò!‰1d*8PB\2’…AD!dãâ2DO±B‘&"%MB$T)@!RE RdJ‚0%á;‚!%)qDÁ&‡1„P¤Ø”"HQ‘„pb…4ˆÐxHAèt à!h„W„†#DDX$ÚRBA Oø{ÝQy„ü–Äœô×Í’òÅI¿aÝ,Ù$ù„LÆ8cËE×Ì7Í/§Ý)9S†²B´‰ø’„øÁI/1Ý(ùˆÎȯy÷¨V’„za¸²øRŽá—Ž?‡ø³V’/Aâ„ölD‡Œo!»„ú$o*ó‚ƒÈˆ/8ò-†Ÿ‡?aùüsøüqü—Œo©ùD'IoIø—’Ý¿Iò¥ŸXxYY…tš´žøš×ן¤óÓɯ)Ý(ýH/Í4žï­ýEš'I/Iú¶–MS¿ÝòÒ©†¯viyÈùSI¯üÓÛŸ¤ó×A¿!ý‰óߤó“å¯ôûš®³:²/#é2ÿ[èï•úd̯BÖHòLxã»¶ò¦Ï¨ñ˜>+§(¨òŒ*kˆsÓcÑ%Ñ5qñ§Q³yŸñ–Oh9’cùš_èù²/óQUUÅÄGˆoñÝ|ýÉšôÒÒìùÒL¯I´ÞøžOh±²ò–Eï1ýŒ×¯òR{–Öd”ÆøÁI¯9Ý8ýÉ’?ôšÚŸ(ýIšÝözÉ£û22޲#ó²Á¯;÷ˆ3/ò×:O†´,öDlĪ‚okÚ(ó,–/ùŠ‚‚-¨/V'Cô:$ÍA£ÁaãÑì87LŽ2A¬S„¬þyxaxsŒx2ÄÁ§C<>ì8wMè(“$¬SD¬î1ƈ7Lj'Cü:$<>ž6ŒŽsׄŽ2CøÁ:A¬îraÌ„Ljx6ÄÄïC«Ñ£>L3=oQô;oô;/‘ö?oôŸ?O¸ýŸ>O8ýž6_¼ùß>_8ùß>z{_ìzñMŒ¯kù_Œ¯{ýÅ¿ÿýÁ¿ÿýáÿíÿÁïí÷ŒÓïíó„Óï+óÅÛ¿íóÅÛ¿¯ñáÿ·‡þ÷Iˆ?ÿý[ˆ?ÿýÁ¿ÿýÁ¿÷ýaÿÿÿe¿·÷Œó¿§û„ó¯#óÅû¿§ûÅû¿çéîìîóeˆ/k{wø¶¶ëK¯ê»ôªŽ«iï꺞öD „(EhB„@pAÈA(È£á((A&„4(ADˆ#á((A.„àHˆðAˆ”ˆ€€8O(CCŠdJðßcI„@%h(P„A†D(H( E(Ô%¥H…°8ˆBDì„DH HƒÒÂH#xˆˆ!‚ÀJˆD†ØAHˆN 8‚‹(A¯ßŽ„1G(D††hˆ0(€¸BHd”@1‘0È@”ˆ!„A „D(¨AŽˆ „h¤`(!‚ 8H!‰HtA”A‰(<‚„ŠCÑ>Ï%d#ÒÄA!DŽ2MD‹BÏ„èi±†õ‰ÖÇ¥F­ýY)fø¤kúA|bb/*ûVÏ¿!ô/Fïº÷ÂvE±Mô,­-÷ÎQŸLù,?´‚´Áظâ’ô¤F;ÿ]ŒÇ!.+«]ݧŸñ¿y/,bD…ô,ìolòÔ¯,x.êÃô‚RÊØªò"Noë5õ9ÔnâCóD/„T.:óDÔHZDNÊïI•Jý…/ñÄNIIóäÎ\­bÏæ¨ƒOéÑ6òcÎÿ#ø²W/¸ý^!ÉvvÙøüÞu«$ÿf­jWˆ5øKÂŽgGº†Ü¿÷q–*ø”mb—¹j¸òô†œ¯A²HâFÔÄùž"DòlÄ®rgˆ*ëÄŽvg«¯$Mó~o†Õ*wXúR/ÄÕ.õ|ªOåú˜6?Æù´‚k¡oçùÂ/åþä‹BçÇnHËÈËÁÏ¥øÖO¼µÿ\‰ÞÎx‹øÏÅêçèkñ£´/aªÃOÏñâ»õúbï6ü=(ÔÖåúxÉ_'þži˜õΣߤü‚I?˜öÉ¢ïÔî³ùìF?Ïú¦>‚Wë«þS©ŸuójÄσöD,‹¤«ÆïÃÿ‚jo¨´ÌûJÚŽH/èöÊ¢¯1to†ñF|¯!ôX/„ñbX¯#ô|®^æ¯Éû&oKò²$ko¬½œöšvÏ„âÄÖLÔhôHŽÞÎ?ÌýÁŸáŒá̽þxŠO§¼¾ó†²OCø4¾7o¬ûæ¿ywkø%l›$o_æüùg/Ø÷â¯4ü‰K/˜ôÂŽÿþ+ÏO&ù»8o(û$–O"ý¢r¨ÿJ¦Ló|HO¶H²HóxÈ/Êö„lũô‚HΞ¯u¾'Cô:$46ì8wMè(“„¬ÓDøÁŠøá#qaŒxsÌ„'C\ü:$<>MaÁO8í(ôÁ:A?¬?î-ñaLˆ?Ç”ˆ'Cü:$<>MaÁŽsׄO(ôÁ:A¬î ƈ7Ç„gCLü>$|’âç!|9^-öïSôz~ïôz^¯ö~~ïöþ~Ï8ÿþ>O8ÿ²_¬ý[¾O¬ý{Oîøä~ß„øöÞÿ…øòßïüùÝïüùݯþýüïþø~Ï8ÿú>Oxÿº6_üÿû<_üÿû_úø¥_†ø·÷ÿ‡ø·÷ïüïïïüëϯþïïïþëoÏyÿû.O9ÿº&_ýÿû*_½ûîïìî÷mŒ/ïÿˆ/î¾>üèþï!üèΫáÏîÿñÿùN€dBðAˆ”ˆALI8O(A(A&D@ÄTH!Da„#ñ„„I(A&DDÄA…$€8Ž,dbÀdó͈Â%¤ÀB0$¸D‚H† Eˆ‚$‚„DäˆDdŒð‚˜B†ŒxB”¨a É(AŒ HA„`h‰$$HøÆÈé† O„AÄ„!@!„P†¢Auù˜„`D!„D‚„Ã$K„´‚C2((HB„HGˆc+é"ÈD³2<2ÈÄO„)„-Q‰‰x"ÑŠå‚t¢¢CR$BD"Ôˆ"Ô„(KXÏŒ‰W’.hc¢AB%3C$â 1‚AƒRH!¢D†d%T°hÁL#ˆQB-Q(P…SÄ"Ęw$ŒèÔ„…b4Fxä"„”$Á"ĆRHQHÎB(ÿ³ˆ¤AŒŒˆ‰"†â!˜hO(QH8D޶ƒ„QH‹XB†«A®Ø.†!"+ƒ"¢Xp(C¶(I'ŠØ$B#$r±¢„(BbB$&$d‚*„D„2ŒŽH&dˆ‚Cá2=§(!(Câd¢’"’€8&RT0#HED2ˆdCBÀ&Æa”B@DHD!€aFH!IH-,D8Fâ¦H@úˆd$(@24 C‚!@!`!$À$@A@%%!D„!@DG!€2!HBŒ<¥$€‚i"†™!%¤¡"G(bAE$Ä1#lA"Md`($E0BDDB!D…"%’DA$Ä@D!HÈ$A@X(¢„?$„ò1Å$.$ˆ9D’Á,$ €H"$b#¡B‚T!!‚D%%!D1DA\!ÈE1‚ ƒA,Á(AL¨„D=úH)T€$*ÁB.$*‰.3À‚ŠH€-D¢(I„!@d(ÂD%„DA‚”‚H‚a0ˆA"‚D`D"$D"òx.$Fˆ@á*!*ä0!A@DRABâHHj*’"%D$B•BR!AN„…F‰HA¤(IB­mÃ\Bˆ#1#(#ŠB@2A@B@"4 # $EBT!D ¡„Œ‰ˆX4Á$ TŒD„¡„DP‚È…B‘Â(B_Ä  âd(-!²ˆ+!#B¦B ˆA†ÔÅIJA$D(!È"H)aPžBCF!!‚&XHˆ&H(IE"(˜FB0Dàˆ7߀" ˆ€ D (H$ABB@ „@ˆ„ ˆ"D,ˆ˜I@€„øaÞàbJÂ@A€„„ BDD‚HH2ˆÂ €(‚ˆ ‚ƒÀ½UBKB+b5‘b>!!+!*ïH‰z%2!B(,á( @$ü„cÑB¤H€"ŽbCA$G$&&A¤„)AÄH­JÄŠ(„A$X"Cˆ2DF¢"d$ˆ$f¨D…˜ÆhŒô{`À$ &')2T #’BC˜DDD$HDD,a8DN„F#2‚%DLAŽC<4ÁACX#HèŒhd…H‰ÈÄÁ†XˆP$Š4LCØ*¤L)ÄD޳Â()"lQŠ„41‚(&‚CÒ1£ D¤„!pÁ!1KHH)´&B""²$G$B`D2DN„‚€’D-ÂEAÈ"AŠ"4„Š\AFhBD.‚L”‚‰”ˆ%²ÎJñ#DfòB3Ñä$ñC1+?öÃŽ2Ga+!d<¥Ácõ’LäAtDä1ø–E=AOd±Bùƒ1HFòB$k"+è.æ†R%!NE]BItfñ"$.DHOø’?YõÏG$Ï•ñ’;˜üB"·æCúÈÍM"W"ŠøAÅÍAÏô¤A®,&TÈI¸ˆbJŽÍO"R‰Ì"&üä½ó×÷2:rA±RÕ$¡"b+o/üq6KŠjr2óqS."‚oEÝBDÎÖ{A?AÕ$áHøD;D%B´d²Æô&dn"K¨CTf4D’$4ÖSTA*òeòžT/!Ô*ø„ñQJ©èú²Îòäk.m„˜‚k*OR²Iœ©[h[¨…D¸*ò$®'h!‹äoŽtÌrB¨Ä/N²Ì²;Aòv“;_?!÷E/$±Rôr4é$ûƒ;-oaÁ3Vsrá%ÍÖ-ÔcåDÔD„üÄ/$ñWE?1þÄ#´BÔ"ädød‚g({¦'hErDrFõAff_RüW!Fö!äOcýT’gÌüô‘ø5yÈøÃK/ºþA¬Oöº§òïŒlº$úå(_LúI¤\ö$„éò,$Bú(„m¢Oêv‚ü†ªo¤è(4‚?šúB©Ï?òbq-SqSñsq?"å>óáR>$o+è#ã2ñ!/'ö’VŽDCôDDHŽÇ_5ñAsõÒÅ}RF2B/Fö"fN†O&þ„¤gbdEöGG/räR¶còDEME\õQ“W}·l<ýÙ—=³üÈæ¿R¼húGËÇ(OJú"¤MGšÏ^èBü¡$.(ELì²$z„ôêF,¼J<ˆ/,älúhÆŸg'Ct2ä4¶â¶„á8·Åñ„2A,“4,ñá#qaÄ„?GèAx2äü2¥Á#ÁÁcÁAAŽsSä(ôÁ2A,!òá–"F‚7Gˆ'CÁ¯SÒ<­áë!aÉòˆcÛ$Ž"IòÁ*M(¬"îx"xaì‚xc¬‚'B‹Â¯B’Ì¡èéÒ˜2)=go÷sg/ôsG/÷wcoôssO:ýc6_8ý"2_=õc2O,õC–îÖwDîV[„/5k+Duc/²Âô#Bd²¤êFò"#_dT5&ñFC?BFåòDÇ?HÔÔ9hXWœ/”Ô=x¡tæùÇH­F$ª‚CXr¤þ-‚KJoÈØ[ÒI(Òäøª$¡&¸¤v†X‚$ìJtäø¦&4oñFQ;aW5^/4õBO7òT'aócK3oAòF4/ñsQCö#áoòeA_Bö!qG5g7oVµ÷E'/´#ä6ê6ú";¤gjlbf'_tärÖU¾vòaD\þ!ÅO$xÆÿÂHïxþLŠ7¼?Œ´ŠühOäø„"ÿÎø"†M†O¼òçˆn®f¿Bø/).,¤Bú,ªoêôâL뮤ü‚J/ˆôêâk3çoñGV?1d/5±cõ3Awâe×Bó$o"âqó3nR"ô1F_UâF´!ô!F_tâWór?döSFsBñCB?2ôA£Nâ/Jú&"."O2RVo$ÔsæR4COFÖUäröE‚GL7ÌŒÜ+|ÈyÃùÃέ矦údêë*ohê"ú$¢ZòÆ®­æ‡ZÇ’WÂÍ$‡bÍŠOÊö‚l/¨úJˆô‚H/ÌØzþþEp2ÄA/CÒ4vÒä87EŽ2A,ôÁDn)qaÄ„7GLx2ÄÅ/CÂÁ#ÁácÁaAŽsCô„2A_,ôÅðá–#qa„xs„x2„ü:$Y|ÁáãÁaÁŽcÇ„Ž"A¬tÁ îsaŒxcŒx"„ü*$È¡èáœ;=÷oQôsWoôsU/öuwoöuwO8÷w6O8·6óÇs;7<·sñãws÷åw[†?w?w?wÿ6A?wÿA?vüa6þa?>ö„ó?lò„ó-&_<õC&_Bƒ4‚‚G4$C"R$!B²b$A(B4&($+!9$IHB"QaG"(LHÒA"AI#Ah&$.%@&XÂA$&•"DÍBB(F"TƒàÒ;C)òBD!@tQv!TbPBÐCG¢$E’D8G%AÁAQ!>%âEarör4r!ó!GrÂAT%£R&üH$Q˜cŒr"&XT!!(eÓHr(aB=D‡b@AR(fT"?é DÂ!!à"!"!JAIÄ$0!$!&@"PA!(EA!H"@0B&D„‚tˆFB,¨$HFÄBBè’3! (C!(J’Bh€.`BH"&"E(tðG($(A  8C¢X&”&4BƒR„`&ŠÚDÔz&‚T$ˆ&‚FjB‚E´"’B&ð‚Dðe‚…CÚ$F!aBB—dLÈ&ÖBq3TA"CÁ$a4A/)Bât#!‘A:R$U²BAQÆÒˆ‚‘R‚©KLTˆBˆ(PˆSš%A‰ÂI„-HM(A$‡¤„ÉCM‘$CÄB8#’1(CBÒ#RD(tD(Ð1€S&Ñ$"’M$!"q&€2”.#Ah!…¥!&Ú„$BdjM(#4CƒLBAì‚”BE„+DA¯íFd°DA,4¤I’IV!*E&D)äB4!D€’B"A-@¡$$ÀD@žANŽ"H ˆƒThŠˆH‘…¸ÉBx‚$H…äx<Æ¢!)AQR*dB#L‘"B±¡$Ä!ÀA"¡$<âADb, 2C)A$n‚×Ä¡*‘L#x(uBˆT'$Ž)‰$2&”AJB¡¤BàD’HÏ< 'C@ LÃ"À ‘#„0„J‚!ˆ@2$((A0J„JA‡"!…ÀJð!$ŒD B4B$.“Æ*¤°(IÂ!#ÓD¢YB)¶A„ä!ƒäÂ@¤A(4Š’""& M$"Ða"%‚²D˜'”ÌT„WŒ—D(Æ(`„,¼(ÔÆ*$ˆ.D&!pB’$¿Ë"M!9D„#ABÑ!!$4%ACÄB,B‘AHDRBFBÑ!’D0DH(!*$!$‚W,—(!(IT@+„H€ø#!HEá%‚",IàB`B(3bDH%(EAH,,Á##BPDÂH(À*D‚,b(d"‚DBD‡F€")Ôm I"’‘,!("T#D!#A"$B „XB)HB$¢A€‚j‚ 5ˆD†q¡Ô„8(*Hä„Xȯ‚–„‰(!ƒØ14Ä,"L$†âR8%A$PB($E‚‘"AP!BB!€4¤A8!!C"G"$QDC“‚IHD˜BEAT($Pi&ƒ´()¸"8HH‰˜"ÿ«OR!B F¢ˆN.$…$"ÁA"LÄ!„Ò$G&A*'b2D" a!D@DÅBB‰1( 1XD1&Ä"¤(Eˆ„EHBàt3K€"¨C("ÀBB aD€F$Š€ $D †)˜H D‚BB€ˆˆ€Ý×  ""+"(I BB€B`‚"@L„($`$ƒ$ D@DB„D¤D„HÜ4>¡"d`+!+(CÂB,Bò!.&D"F¤Br/BT,¤aGX‚I’"J!²Aq[‚[†)ô"„+M˜.I˜ÜÈ¡m-|BLôD$$“â$dR‚‡D‹„-D/DdDj´HtBˆø#'0dCÔ!bD$N$N$fÓBD:²†„Äa,„4$$a$&D2B1!¦$Cæ¤B"hT‚@ÂAHQI—$2„F²L(´Hi¨‚)˜Â.Ä)’D(M"(N(Ž(ŠbŒD†è(d¨Fä<)²T+A0’b4*…Ã1K&’%ME1A$;!'Q/BÄ$AH48K(IC!Ä%SdQf$gDGCHƒ‚ØŠ”2$ÃÈ(ŠrD‚YÉD—ˆHB@|Aš‚!†„²BòGÔ$#¶faT–Ó!´Bód%O!ò5B=u)‘$O!òbE9—tG5cñ!ÄBvDñ#6aô1fkGòB/$ñt%g1{ÉR¿„Ó&1Ov•s,vVñ[B.dOø‚{KÈÿD6¯•ñ’¿‰ýX/—sŽô‡ÈŸRÎ"M&+ˆOVÞ¡Ö\ö‚M÷_„âÄøÎKgšê$V\«HŽˆNbïBòʪSÜAö¡µ/2rT¢eñ"'VótbC´a±&óg"vsÒ7òTB/C4!6±D÷2FaorrD£e}/r²B²Ôö3F$±‚Úer4õGrÓs¢GoCÑUâ&ýµD;Sÿ1ëÚ³ÜñRx_1ù¸=OòÊl?"ôMŽIjHg2ŸäÜ5ú‰m/8|c±eøLlnÇmHoäºä²Š´JôFÊîAßL¶[EñR7~GaöG'5^CaöB5oTñW'-oBñF2G7?Eõ#t_S~Vñeed}eoóV7~G!÷F/ñRCAõc·Otû•2gèK“2oEsR±cµ'õ7áo²e´%ü%âO4yöùæ]?©ÿU›/½ñÚQ?©ýl§N¯Ÿhòãˆobê"úÄ&/žøm†O²ö-å55$O†ø-¦t:®çʯˆúD‚«H§ˆïªü$š#]rO7òurõBVóqr?QõckVm&Oc³2Óñ6'Ouõ#T?bôA!OFô!DBõagvV÷qbuCc5?'ô3Un³O$¿†ú4/bÓtó$#~Scõ!fTâVô!DR÷A·î7¯ñËôÿ1ýØ/ñûÜ3üi«O$þŽ,o*ȦM£¯Øò惿²ü¤ATò!dÏ‚´döE¯®NëN¯hÚ¦|È:Ê«ˆ/¦øš¤p2ÄA'CMA#Áak!–$ŽsSä(“$,ôÁðá–F*xs¤‚'C.Á'CMÁ#ÁácÁaAŽsSä(S$,S$,Aöá–DFLxsÄ„'CÁ¯CÂÁ£ÁáãÑì86LO(ôÅ*ExÅJøáŽ!ÂĈ7ÆŒx"„ü*$IŠšN¨SØsõE?w÷A?wõau÷Au÷„Sgó„SoaóÅSeóÅSgñáwwG~÷E„?wWôs÷oQôs÷oôsÕ/öu÷o1öõwO8ÿ÷6O8¿6óÅs;7_<·sñáws÷áw[†?¿wøó÷oüïÿo‘üëß/‘þïÿo‘þëoOøþë.O8þª&_¼þë._<~ëîzzgìjömŒ/zúo/jú.įêšÎ¯î˜êïêšî?²Š"(A&(0a„€¸â(((A&$0A-Aa„#ñ„DDˆS„.„D„DpAÌA……ƒÄ!†Hˆ$„äBÉ3'!!-Á"MÐ$Â\âD"a RAc21ARA4&„ÂPB$aBP ‚%4!r„àd!n)’$$IÒ„”#E2,‰„Ti&ä¤Ôx!„AˆÂH~Ï ˆ!"!!a$(-ÐB.2*ÔA&&âqBQL‘$ aBA"À5DD ‚p"aD*!)Ä*d±cca‚Ò$Ä(a0$Œ„t(¤h‡Dp(ùA)cÜ1‚CÂS@ƒÃ"F$c4rQ#vr!((?5$-ðC$*aCá&DäÂ1#òBhD"4GD!2%“TB/B¹ÚXÔ"2„&0A'!ÁE¤F‚4C$Ô*D(¿Y †’DFBá(Å(Ñ$¤!d‚CRBEa"8C!±R*A"ÀqHACä"$G¢H$´*„’H'HáP$&2„4„B(ЬHTLt"ˆ4CŠR¤öaæÒFƒÔñb3M$Lƒ´!441`R(7S&tñ4)aÁ!:42MaGA%²41$2…ñ‚b0AAN4 %'QÔ-Iƒ¶*tŒ’(-†$&rBE’!&ÄD6(D%T‚ƒ$¼Br"üÑÇ0‚$!0 Äb!&ÄEA&B1!$(,!,T(P!!¤"A3DÂ$02$B,ÆÁ!.EA(`DP(`äH‡Dp(¨ˆ/Db$!ÔÑ>¥,„‚!P A$Šø–Ä 0$G P"Ð&A`H#D(4$cH‰2°T€BA`J¤@J„&DŽHò(Î@q3ÄDLuR¡!KaCäB±EÂ,‘$L"'D/VCRA-$i6À"\Â.$V" I$£AL´$$ÂDLTCJ9I8b‡bA'…Z$-¡(O(Ø‚¤.Ž-E…´aP,.Ì$)Ô(‚Ø2=Y,êQ‚µ"TBqM!!rJQ'BB&„AÂD@@R"L18!D-BA&‘DGD´p"˜EFÈ"ˆ$ŠP,(M(DDJe¢„„‡$"<øÒŠ`B"ÁD %I2T"’„,L!2„-0$0G2`"AHC!*" BL&DFD‘"Š&´‚\ˆÀQÁ$ (Cb‚)tI…‰‚(…‚"lÉ‚Î!Eˆ¢J„x"A’$!"A@ÁAÐ4¢DH†CÂAA%”‚,DQRHIXB`e²”H†áˆTa…aD¡)r„„$QD…AO !cÜ$T2AŸ¬ 2+ÁCD$Iƒ+`T0¤"(ðBA0A€È6A)0‚FD!TB€C @HA2$Š2DˆÀBE!ÒFd(IÈJ#Ä(ÀâÓƒØD’!Q/Á$L$2ÁDD%‚ÂaÀ’BÄA‚¸EI…Ü#tDadàhBDâ$-AABap&á$Ô$ôÁT(EAØTH&”‚OHBY$‚P”BA‹Hw(d@òÅJ$¬„XJ )Ä€A‚aà1"l4(V¤"‚)a( \4$‚c"12%2((ЊÁ"Œ2,(‚ä‚Ä"! 2A*(’$JÒ¨(I0H â¢?Š$&‡T!hŠ%‚,-!‚!B±Â!T&F1!RFÄ4!Bd)ÂHH¤BQ&äB”€TBQt‚A"p" Êd‚HKBC¤B$‰d"‹D‰øê×`*ƒ!„%%a(‚(#È$/8A1E!hˆA!ˆ,qC‘!EÂ!I,•!%öD#Ä@ˆ„T†,‰\,Bb$(FAô„$ð„)A‚NDŽJBDOô9[H+ˆ'!CA‚aa#’pBUBQ$+ˆ¢!Z„(ˆ–£DŠr„AaH(Ê„$B¤…)DAÄ!0‚€R"€-"#IdDÀBȆB$À$B_ C²d‘D8(`D¤$,H($D&1$GDB]D'T&„$"ÄDDÐRŒÄ%rCR#:& ¢FÐHB”(HµRD@P®Å£ FD@HÀAÀ"'$BpƒA™ ÄHD„!ˆ!ðŽ+(D`"‚@€H0 B!B&‚H€„$B!,DBHB@À¦“Ã"qQ_–?BòŒ"-†ŠèŽòH*N*g$…ôdHÄrE´È|'„ú.ƒB´Š¤"ÏÜÅ"÷'BUq±Eñ!$_²UøÕ?.£olèYùfu7/ruó%&Q:ëø2§_ñ"gy¼üÁQF¶EþÇ{S/hñ‚4#ü2Q/xõÇs/<öóÆgRÔEæ>õwÃ~•_äÿCrÿ5õY^J/fósÿUx«q†ü‚"oŒªÊ‡$¬öB$2ôgM‚ÔöéÇ’ìÆüÄ(O$–ί$ü†J¯N²Ìö1/$OcåcôT3NRµQ¤SNo(õıEø‚-oDqvâTñ'S>¤[!Ib"<ò¤–³Oc¨9(é©…šõ¤4®±oH;u/J«²Š«GoZù$/þVD*4$KjHé#õ¯8Ï•³±õHJñåGóª%hziþ¢&(h‡&¯‚tnú$©{DÏ’tmì‚ò‡†‹†Ï‚úŠ.O,˜ŠƒôˆˆOb?·\ö3d+%?ÕôA>dA÷ÁT_(ù7¢Oká!Ñt±5òTv?ñe'7R&Uªóƒ/Jºø3§¥Œü1Å_ñ68÷Q¢ok©±<ûækßý¡d_ò!%WVvóƒsî%ßwýJV?±ñ¯%´jñ7Zÿò‡ªM¨o*¸&‚æ$ò(B'Æ./½lBâ–ôá/ÿœöèäËÆÍÆ/ˆôÊÊ­Â¯Îødɼp2õ"A'Q-A'¶ÂaAŽsK$Ž2AÎ2M&,Aöã–qa´!xsÖBx2ÄÄ'C-Á'¾ÔÒä(ô„2Eò2A,AænYAFÄ„7GhCü:d¸ÄáëAMaÅò…bÅú„"A¬rDrÁJò¡Žfœ7Æ=„/BÄ„¯B–¡)Þ„2¤lÿE~voôqT/öutoôÔto8ýö4o8½–óÇÒ?WóÄS;®7s÷¤6_ø²·;¥¾¶1îkûWÁKùá_Kûá¾4o|ÿ²4O8¿²óŲO÷„·áj¿uäj·eø²·{‡Okû>CßæûAâùcÏæûaÎòŒã¿Êò„ã«*_¬þi(O¨ökHOêroø¤o߆ü¦¯ÿ†ìʺ.üè®éü莫äÏÎúNá/,I‚BÁ"Q&&B2a-Av!TM+!ŽR4(EÁ#Q&D!lrAÆAdE!”Ä#ñ„3T4Ô4<3D.F#Ä!D!ĘBFBI8CO8Q4BAB,6D.FBœ;„–†Ba8A’+M"PB$dI)dˆ$“AC‘BÔ´$rECÀ"Ò(BaA¤F“’‚'H…‘Âé‚ÂBˆ,’$$d(ÃÔATHÄBŒ”H!ñÕá'D²’‚IM"LáII´‘KAQ!J‘B6e$,T&€”’&A"RHN$A§'¹t¤˜bB$#2„(DG"J RÃd„4hBP(ŠDØÒ6Þ< ,ÂA$B¨K¤EB‚âhqA(B¡!ðA*‘A):$"ƒ8ˆC²DN"GT(LBb8EI6ADh"EØ‚(À$¤Lr!ØRDFÄ$FO&$ Ä&ù,\${%D‚!FÄ!!B°†2ˆt×!#d"!kB'A"@&áBÄ$(ÀTDD*`GA&ÈB#DA""LB"8BÄAƒB4D†ÈF()ÜB„h$.ßá%¤ERH(Bò¢&‚1"#s"ä(ôa+11$&ä„r2A,1AVô&"†OA"v$$g1E¤$EÄ5Ž#I2D…$µAÄBìÃ(&Èd*8"(g¯ô$FÖ\„dL­$Fä$ ŽBŠâ¢ôŵ°CB#‚ÂDC„DJxAL$O(( R !L‚H$F! !M%HD,hBA„@@„”"H'BP‚ „9Ò(i%¢ Ab!'BàhHD=A"!CR4øBàQ/(¤¨- ¹$Á2$KDA(aFŠ4,$CÂ""NB@bB$ ¡I©EB’D-!G4&5T0$†ÃT dB&$42R$bB.e1ALRB4JR$C¤$DÅ"#á‚„a!‡¡IÒ„Bn‚B(E ER)FìTÈEQÁ"aIôBˆ@Úqô$="8!6'E&1rdàR"AA(ÐÔ$rP*_E„2*H5(Z"“EA†b‡$ðx„&B&0B%tjÀ)É¢Dal$À$à;FC„A`F44ÀC‚P(AhVA0,Hð"!AA)‘ÂAK!$A"N$PB,BAÄB¤DP‰&DA& ¤!TLthX"'$A0B¡ŠÈá#I’D`$h#4('!&%O¤B#B,“$Ä!ZA"D°‘&€)´!A’#äQJc$ %õÈH‰Ô4Â(D#R$€r"e+$%¤DE„R," DXb.HϘD0b)D!À!(!D#¨S²ALD3"ÑLH(d¸ "0E#"@¼;aŒDc&1I(%&h$H!.hSA†Âd0B?$ÂaT°Sƒq"ò$E±„$¸‘BWB"M&.KãAC„‘"ˆ6‘!3aB([4#¤%Q$_¤A鵡$#’(A(ag"&sD‘D¡$EÁHEäDB˜""JrHFx"nB?' 2B€ ¢J!à4‘$Ž"0†HÂ#¸A‚Ȉ- $ÈN‚0D0A H"ˆ4(BÁd„F(HàB!@‚"øŒ‚dBH†²dä#"„¤&áar!L!*(MAˆ€¢D†a$š‘"I²„„!¨uŠÂDB%äDq!‘J…1B‹rfB )tA-FЂDÄB1„%‚²DDRH€ôi#@CFÁBB(’¢B!+R1A0„HIRKO0$!¦D!T!ÒˆLš2¨&ÄÂ-AˆA"¸"ÂJknJ:DJa„DÔP"HE1($A„*4BHFšbFÈ‚3)"P+ À2,!Â`A ¢¤T!ˆ1R/d#*8K ACUa"2B‚ BA‚†b‚F1bĶ($F¤B…T")‹&.™°Ad"‚$PQ BD€%%¡%$á(‚$$¨&Â'fD3²!TJÔ'uDQ†$!FBÄ*BJäBI,$&ˆD>~@B@”""à("€A0A$,("!H€@‚@í!€B(DBB ‚ `$@B‚!Â! @("Q "„BÀC]B3ö"AI„‘%]BE!4$6BÂ!>%">$àBÂqLâB D!˜&b((I2„,tÂr„ò”aZáf%ÄU?d¸Bò"¡ŸAÔ"ÁAH ´D’DAA'¢-B‚B7DâDf„¼BÂL¿$Â$‘%?“ T"BB(±!ª”*q"$Âj!eÑÒäÆa.A.#-ä%RÒ"(ÂR,3,J$¤a(Oäa!$”qBòH¬R‚4Œ¡!%[!DDH,¸C”N×GFÒ)FbD'„$ä$âÄÆs†ÂdL±S‘"#Ô²21‚%s$¢X‚'æ&±ŠQLøÁ.„5_ÈVá3´UŸGO#“$†¡#I#Uc7(p¡ä¢†*3N*¢ABw4‹TIÔ¤&%X"J2!óOo÷ã÷Î4o*û„$/jø‚TO(ùçq&õeenE_ö„RomâBöVâôBµÔ³D¸ô\o/VRÉeò&$'rW6?¢öIC÷$ÏÒdÆßôlA÷ô%üdN'Ư$ôHJ/¤Ä(‹dßÕ'S&q2T#á2Ôã(—ŽIóÁ2IóÁî–L„xs„xÅÁ'AI<¨k!?r$â8õDŠS$,Ó$á(Q!®”"Bˆ7E;‚'C-§CmÁ£Ñ>–,Î#Õè(’$Î(Ub¬ð¡Î"fœ7ƈ&„|*”Ä¡)Îñ“ßbòE?bóQ7b/öf6õ§&O<ý÷&O8ý¶"_,ùs"O8qSæjqWäzõE…/{ûW”/jøå?jùÑ/JùñOjûÁ_Jò”ÓoMò„ÓoIòÅÒLò„’Mâk{UäzóE¤/kûW”®¶ïQ÷(¼ïõhޝÖÌûQÏÂòŽCßÄò‡Cë"w¬¿†r¤úKL®N×Ä®.ßÄú"®÷ä.Œïdöh¬éôhŽ©öl¬ëB~£°¡dB*1Q*$1aA"b€¸2â81!A8A.5à"52ÔD2J"¡"ˆ;!Ž)Â)ÂSBxa.G€!rAÚ4(!"À"ˆ)b(#D¢$HBhCäb$ô!ˆ£ [B-D'!DR°1D„B¢M²DB&$[$'JÓBDC!E±kB°CÁ!+A†rä$RAp#tjDEhˆKB94#„i"-H)‚TCD Dô!F„$”¤A…‚¶šMá(˜ASÃBP!-AB>!Ia"Šñ$"BD â+BðC4`4„áU*”&DL‘!#AÑB¡(GD"[F/B’‘Cõ[|]Má´Áº´÷ÕW<.æÓexrqá9ûAâo-y¡uaÔ–EV|âö"cý­/ºøS!¿±õ">]ÑO8äúøˆ"yR"7Ö"Ï$rLJdF›$ÍˆŠø¢†&úŽjMÈ#¬„ˆôd¬OÈ:[)öu7eSõB/%ñ"BUöaW_DãH:A>U_TçóDeôuEJø!aZñUunñSÝöAÁ.TûUe"tÆÖ$ó’"/ôâ?÷QbýqD.„öÅÁ~\BŸ4öC÷W¥N{·nwmy_¼úiN/,ú†"G$obÔ‘öL"iöfJ¯Fô(Å9våü¨†¥ôÊ¢obúÆÊŒ¼ˆèFîˆúÁ,$o5´VöRc$¥E/%ôtAo"÷Dt´MK3OBÓEãEäV±d·4ºW6$Ⳅq4±$½”3ÄŽˆ¾Ô_Ã$DòñoJâ)Š«ÕîAgû¤¤seFBö%¦k(.L/‚úŒ¥ß…Aê…1¿Æû„ïû¨W¬®¤O:ú„hEú"L‡fÏBzNèÒt(ô¨¤ïˆêÊìμHúΈNˆÎˆDøèò1LõwaSõSNR/%ôR?õåõ\ëOº4‘4\óuaKW_WõaETfV&±!ÒQû¡µOéLïܸÁ¤Ø[WO;ú‡ãoDú&’:ú’2?:öâÒ?_ü"W;eOBò$EZü‚£GV_æôÆ[»E[?…ô!O¯sõè©_,öì®oJèHú†¡OVvdþ*D¯föJhOÒòmDŸfòŽªOÂü¦ÎŽêï(üˆÈŽÈ®ÈZü#Jp2ÄA'CH#ÁacÁaAŽsAŽ2A,SD,ñá–!f”7Gˆ'CÈ/CÂ+A¨cÑä(—Ž2A8Aðá”!&¤„Gˆ6ÄÁ¯C²<áãáì(VŠôÃ(Q¨BîÆJxaŒhBȯB‚ŠžN¬:Í-öoQö3vô3T/ö4v1öµtO8ÿµ4O8¿4óÅ3WóÄwO~÷uOz³eø²µ;‡OKû6Á_JûÁ®„/þ¥´oîNò„÷Jò„÷ºòÕ²/O)ñä{ÿwÄ®7_Fø2¦wG.¤ïWôè¼ïôiœ¿öl¾ïöì,Ï<öí,_8ö¬$_¬þo,o¨voü¢n÷Æ®o߯ø"¬ÿæèÂþ.ÄæžÎƸJþl¬íáW!(A&Á‚ÄA@AÔÑ<ŽG0„ (A¦$äH l,ñA„AJ(±A¨ABÈ#á( „3F.UBpAÈAƒ”B$)$„â8Â"CdBBl>õLx±B@C!¢)´L"ô$"&N!Àa†!5$†¤!^…ŠÑB/Cˆ2‚G/C¸AbH+$æ²1DÄBƒÂQ%ôAŠ‘BM($"Ir„"4*œòA$ÐÁ"$òAMÌF˜‚,„ÔSr#E#â2$"!22D(L³E"*Fb°Ea ÁAG*âH•"4¦ô2¡C„FáRQ.h!a$4²ÁMHM"€ø"L)’!FHÂAK"FiÄQ*bÄ„,´‚„æ3”AL$PA€AD"PA" !"A'B0!$$0PARHA& ‚Bl(DB!H‚HáOÁ"@1"Ä3A"( AS‘$XAFLHX˜)¢AA!‚"DyB6”A(BdE’4¤H€(Á)"D)´IB„”hA@˜BW"H%ˆd$ïT!A$ADBñ"KLA„‘E""1DHAB¡!‚qE”e‚Â$Ò"ƒcb!ET#U¬D$@jJ"@Rj€RDBðB"Œ%Bðä~€ @!( ÀA( ‚DT@0AR"A@A”DH€A(,AH"C †”(adHƒ‚$AƒÄ‚'„¼1þ°„È(C#" AÄ¡&Ä!D(ID("EWˆ„p$ÄAˆ!'À"€"Ò$& C*T@@¢$D$J˜"`Œ&$&oGá2@D’Ay‚et3²Â Ò$r2%²äB'4dcá$¡B-5ÀA.E’„K´"ÂBQCÒÂä¢Ej´˜§¬ÃlÔH4FK"d,´*ød#†˜!‰4hDÇ4&ALĈ+„¤TOd4Ñ!#±A#’`&¤!( RBD"#RQ/B(BM†0!E&1!$GAp$¢1!€À8,rH‹!f-ALjD#B(A-‚N(‹$HEHr$ÀDÆFâYEQA€Ò!A+Bp#K`Le¡"W!D/CÄ!(HCÁBH9‘)¸‚$ ¨Iê1DE’%B&R8HƒASž*ÁD*DD.â‘4H*Bш’D'„.HD‚Bˆ$&ä„:~@P!dHPˆA@Dˆ0AŠÀBK$ˆA ”“H,"D"‘AP‚)TBÑ‚„D)†„$D@Bø2†I‘"D04*.A "ÀadpáF¤BE1"A! ÁC( ”(À"0BJB!4"\!€ÂfÓ PAP!IRTˆB0Qq$(†BHH’ÀE, -¢C(‘àBDaE"T"QH$‘"Fh‚2JŒ°B2Dƒ$PD!„1¤°ll4À+" !"bB(À$\‚ "&!C+B*d$(YD„$‚„b!3„q(& &$r"áBT‚(A0$D’$J$`$&äF;ÂDT`AI  !’QA ¢‚ÀA&@åhAA"Â'(!'BR#aDbÔB.Y@Ñ!€DB(dfHD&h¢D„*$B„à"P!D.À@%(D((L„!+„A(CKA(ABY$PQ!!H%$‚‰’$Á(…R„AÀA(Eh"ü8&#1@ñ!(($"ˆ€ˆ„L‚âABÔ"D‚H !H¡‰“F(Á(A€,Ò„ %©ö}Ý$A,ARA8 ‚2@$APAPD¡dAHJdBD"La"!&DF$Ô„`Æà¤¡D& &hB!•!Ô" Ä"¤ÀÑÒA€‚@@Ä Hp($@Ið£õ€D D@$A"€ÄBH„AB&A@ÀúCBTB##!1I‘$€›€ÒA…!’…Sñ°ˆDŽ1D("$)ÂF/&D1!°H¤DÃt(Õ¥™±BöE!ÅŠrE„R…Eä¤DhB!""ÄD¡!)òHd$À[L˜`C€aAA¤!(\B…XJ”A¦0!A*Q&,lÐÒä$1DG(U“!ER1%H„0!1B&"'BðBA?’$C”(ÁEÂ"BFH„øƒaTÄ!d((!q!”D@"*äR¡‚HNAJÄ%ÐdB2Š1@¶‚2…++D&".D5±(!4/¶VL$A<¤$&B„Ä0*‡B©Ô”(AS3Ñ4qqÑ2ñ4%K1[J»”³D£OR²ÓDòñ%„9ÒT¸‘±±¹1ûTufáœÁäò„$3ù¥4ž¢oD#è:š!OdòTƒFøA$MÁ%r£ÕÑÒtösA­NR?S–~ÿ”ôagÍ"Iö!gß´òE)uqJêÆÌ(A‡¢'Â/”Ò$ò&E£TŠ$/BÒŽ4ù5ô’Etò/RÂ1K‘S¸©!]OSÑE±ÓcCSs!ô!®”K’<^%K„Ê4Á.%M¡Lù'ƒAù†"‚/xƒ–g?{&ö2DFN!GnRø#A?¤òHuÓôq´õh5ßòVA·FÊ"Ex"õHK´öDaÿFô"DfŒRl'B'ÂNjɲLBú(%ÙâÆLó7Q?!Ó1a7qAáSû4µK9_GéK£3M4>_Bñ5£gQWBëëñõõúEŽA˜ORê3ú”¦;‡oKªâ+(¦ñ§ÄoS~Vñ%EBjr…s'õkaý?_´ñA­½n?ßrÒ/roìbò$&m#wVŸòt)ÿ"ìëD‡ÂÂâÂR,¯bô*dï¤rDZ*¡¥ê8NTgQ#ñÒ€?[ˆÀ®3ˆ Ϲ €ˆ€8(A€8(A„ˆ!(A¼8Ã@ñŸl€(ˆ0Aˆ#€0Aˆ#€pA€€XáðÏä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáŒ;¨D/dB/dB/–$o„ò„S(O8…òÅ$O(1A®äj±Aø2„3åBøA.„/äBøaIúA(O8…ò„S(_,±Aò„äj1A®„/C8S.„/ô(„/ô(„/–¬o”(O8”(O8”(W¬„r„rAhj„¦öAˆ/BxCèB˜BB˜BB˜bÉšFŽÎ €dB0Aˆ#á((A&ÄA€8Ž€dBpAÈAˆ!†(A&ƒƒ ˆ‚‚ðNv ˆó ‚( È € [Ó "€Ï8 ‚À˜“ŒÎc „ H€ €" ( €(L5ªˆ€€ B H€ˆ €ß+€ ÀÃ(POñ ü<<ˆ@qY ü<<ðÏ<ÀÏÃÿɈ‚¬4æðÏ<ÀψŸSˆ€>ÒˆE ˆ(I0Aˆ#€0Aˆ#€pA€€À­3 ÿÌ(A€8(A€8(A„ˆ!(AÀÕCð˜Ép2ÄA/CÒ46ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáŒ;¨LøA&ôA&ôaIòA(O8…ò„S(_,±Aò„äj1A®„/C8S.„/äBøA.„/–¤o„ò„S(O8…òÅ$O(1A®äj±Aø2„3åBøABøABøaÉúA‰ò„C‰ò„C‰rÅúA(G(„¦vAhj„ø"„7„.„)ô(„)ô(„)–¬mAo±€dB0Aˆ#á((A&ÄA€8Ž€dBpAÈAˆ!†(A&\1­ˆ‚‚€ˆPÏS €€4ëˆP"@€@ˆ0D@ñ*] )ˆ B$!€ˆDAH% BÀ+³!Hˆ@A"B€‚A€HD@$BŸŸ!$€@ @!‚<2œ!@APH@@@ñ¡ê€*B€„¨BHHD‚B€(H@‚EB@!À„ˆHD‚$ð‚Ö @€B@A DA HD!€öl<€ B € ‚ !ˆH@‚ „ÀáÃA€@$ AŸ8  A€DAD@@|6#€A €AD°÷D€@ @DAŒ3;@€@@„€€A`AADA"AðÑî‚ @A@„ÀdÈ%  CDA(ð뀀! @„€@ €€A(€6qAD ADA@D@ð“üB‚ˆAPDD`AADAD@ADÀ.£ "(€€E4@AMAALEC@DCbB(ð,ÅP"!!@AAGADADA@D@DÀó $ @@  ±€@$1 DCn,P"+9IX"€¡„¡ÐDq„8EôME„ÑDq4EÔDqU$ôM„gA 1DM8AEtA ò$$OBXFEE(A(".âá™R")á!1 !! ! ÐDqôOAq¤t´QDADOAQDE„aAÑD„DA@A€Â$ETDOB²$DA*‚òN[ ñ2eò!!!¡¤!8PDMGAKOAñ4I!¡WEOA!!¡MM”gAEI!ñ$IPDpAL(M$*ØFò$$*r$PD(AÂçS‡!AÒ"ñ#¡!ÁEDEôMMIaAGAKETDAAàAÁ”DA&´$âBD@€"ò^p2äô2$o14ccá–Žs[Ž2IñÁ2IñÁIñá–#qa”„7G82Å/Câ<ácáQ†ñ„s[Ž6IñÁ2A,ÑDñá–cqa„xs¤'COQü:$Á£ÁáãÁeÁŽcׄŽ"A¬tÁ*òáŽcra¼$xcŒx"ÄįB‚Šž.ì3:D/dc/dc/1¶òAó„S8O8…óÅ4O(±Añ¤Säj±Aø2„såCøA>„/äCøaOAúEó„WLó„S8_,±Aó”®Sô¤[„/C8SOCøACøABøaͤoQ”(O8”(Ox”(W¬„r„rax¤vax¤öeˆoBxGèB˜BB˜BB˜bÉšfÏa‚,db0AA€8O(@€dB@DA„#á(A€dB@„„!G(€dBPÉ€ Š @$€A„€D 0€€(€"ðI¤ ˆDD  A€@ÑÁ5;‚@ D! @! $aA„(@"Ð| ‚‚€A %@A€@Ða6}ˆ@ $@@$!A€%HD „(@‘/A  !L@ADA&41ñ6ô",“4M$gC213+Ba?4!]4M"oCó46/C’4K1OCaC&„ò$ô"6?1Ó7ó='1-+1oCó&>&M6:ò":ó#?1ò&WCR%.?#ñ;3%ñ=Ÿññ!{"wb."G"AeGRµÝ)ïÂò/,.,Ï‚ò,,ÏÂò".o¦T,­BƒÄHF"òÔup"ÄA/CÒ46ä87EŽ2IñÁ2A,n9Fˆ7Gˆ'SÁ/SòÁ'>aAŽsSä(ôÁ2YqÁñá–1F„7F'Sý:%MÁ¥ÁáçVŽcׄO(ôÁ*Q¬BîXBƈ7ÆLx"ÄÄ­$IŠÎFYBoqu"ôA&ôaOBòcObò”sobò”sobòÅ2Fò„2WF¾6WF®6_Fø2¦wG/rú6E/rúA/røaobúaobò”sobò„s/"òÅ2?&ò…27f_kscô¥6Fø7¦3÷#·¯ô*¯¯õ*¯÷.«oQö.#Oxö."OxÔ.rÅþO*Wè÷äê·Ä¦þIŒoâxKü"έd¯æœJÆœjÏ„ú.DY ‚A(IfB`B!&raÔdBàB„’†+!O(¡!E‚R$(M"Cab`b!&òa-A"!*‚’‚+!Ž($ŒÂŒÂ"Ehb`"!"%xaؘ‚£b(ƒBrHHb„,rDhB„ì1 ‘†ˆ!!€(€„"EBd0 #'B°"%„DÄD@#A A#0""A$(LD,BJ ˆ#q‚`A€* "AA"A!À!.$$!L$AàBT`A4! @&@"$D "DHCH@Ñ!1m H$$!A9@$$D4,DEDA!!%R,BTƒBD@H BÀ"ÿO¢A‚@!&"€H$@B,K!!p!A@H @A@”(`„!„Ð:÷0“@D 1!a(€€‚A&”d! I‚a‚0(A„PH@(R‚(!oŠJ"@BBâB$ ! A@4@d!DBAHBT@BTaPAA”(pBÐÑ=©@`A@$„" "%A(@$D(@"AA@R@Hø¢)!€DT@4D$! @D€$ˆH²F$„p+D`D%ÄF`ˆ!$Mºƒ %D!&$„BBA&D 9%D„‚$$@DDD!„ HT!(CDP„P!(EAˆD„!É!üãcDAHD‚" (A aB„@ ÀŸƒZ!@ A€Á@A€'! %!a "€!€¤!A( "E@$EDï‹P@Ð!!TÀ(A2!@!"À  "$A@A!DÄ#!! ` `RD!" ‚‘"2!€‘"À!‚€‚"!$ADÐÇG$$!A"$#QA!1D( "@EAEA1!€…(AB@BD$AAAÂró!4$"D”&D@AÀ4À$àB"bA&".R"Aa@D@!!à‹IA$!D@’ADaA *!„*"&A$!$@À¿cA@À@Â&!°!‚²!’1(2¡("I"’$°4Y!2$Á!€#!DDPA@o¸ $€‘PÂ1(À2I*ƒ*!AA³!"‘2€D$tPa¤AAAÀó (DD#L  ¢"€"€ ,BP"@Ÿý`ÀD(‚( D@$" A"!$$@D5,%)a`!"*K2/rR2DdA2(A "1$2C¡p!"!bS(!M FR%¡%BABD!ð^¯Ð!@‚1#aLb ’$.*RA 2*ãRÑ1$"K"E±4C2(±’!*QBL2"DDDAA$@ü+A†Q%AQ$D,Bâa1DS"2Ko2S48(E³£1K4I¢ À4‚#AA"D’$R!PD%BTÈD!aOu $49EBÓÑd±Cñ+oÑrñ!¤oBr$õ5bWBLò&A(GS²ò1%.$[4:ÑAr!´ò41&ÑA8&G>Aµs4µ1M1SÓSÂ&g¤$5FU7ER"ÌXURBAERd)R$EÒv5R!%R!)ñ'aKñ?!ñ%/#²ò%%OSÒ$ñ&2_a³ñ5'k1R’$MS£32OCãS²!òO³4ò$$â’4OA³1³ñ%5“R³4SD5µ"Ò"RF%W3%W&eT˜5Q5eT"$E%BBô¶Þ441="UCS#CsñG'!,1%ñ&sxÅ!r%CÇ!4"WÑQÂ%GWDL2ORáQRA_ø!EÕAROÓTÒAò!$UÁ!EWWäDdEQTDdIX†UDT$EVB-&EBR"8ƒÈƒ%Q#R1%Q#Ò1ArvÂ7-?!ñ%1OR"÷Oã±5’ar%TQK2GBLãA±4ÑUâSÓAñORWBRM!Oñ2Q2WAô&$-$DeQu%DTBÅXUUAeR$eT"$$!%Rtžœp2Õô2%mA'6V$ŽsW$Ž2A,S$,Aòá–3qa”7E9x2ÅÁ/SÒ|ÁácÁAAO87EŽ2A,õÁôá†'AFˆ7Gˆ'S\ü:%MÁ£ÁáïÒVO8vMø„"A¬tÅJôáŽ!ÆLxcœ'BLü*$iŠÞö7Ó=…/t"õA'/1ÖòC-#_8Å&O8Å"-ñA#_(qA÷¡ô¡[„?C:WRùC.¥oåRùaM¡ô$!_8•$O8•$_n±Eò…WDksAõ¡Tø7”7U_RøERúARùaÍ¡oÔ<ò„CÉò¤CésÅþG9G(wĦvC|¬÷AŒ/BxCü&„-D¯B˜B¯B˜béÚäJ€dB€€.I8O(!$IäB€4A„ˆ#ã(!2 dR$!„-Aƒ1!‚!†!(a&ì/ʆB‚d#'D#Ð&Ô!C–$ Ñ!‚!2&‘$p$DAhDD-$ RaQAA$DÑO%\"D+2€B"!‚ #E( ’h0-M"TA`@Àù¡ˆ"!Ð#(LPDAD‰€ð„bB@@"!APDA‡D j!A%¤LP‘H -8%ñOy$…4p$D€B‚LBt(¤!…AT`J`³"F"‡DM((”BàBDÄH„!€!d"­(À(CM@„‚Ì:ÆP(BB2D&B]!A&¨U8 ¡JÁ)",&BhB„($MDD™$AÔ)!)2(!cFÑHb„lD„&èa¸³ !0!€DBA„ "PÈ‚1 ÀH@A„H ä"D‚D„ ,!?ì„‹ˆ RR14P"”$EЂaB€$!‚%1AÀ!$ DBNÐaB„’A()…ADB%$„@ÒDðˆ$%13%€DrAI$ÁD‹$hI‚Ai8F†!!‚!D>$T†H €8H,Â8D!IR$!§.‚^X0D"V¢IIUÉ93K£CVP‚%$AÁD!#Q4Eˆ3(D(DXB"'DP) ƒ’(Ñ„UB8„L"‘ƒ,$b¡’G$K$A°)E$RJHD0(`A!’pxýG4!A1‚`` Fˆ‚@BFA’„ˆ(”Bp$$#ELBC‚H‚ì=-@(ap#(¡ ‚1( â20°q!"!-2d„#I‚1(%BA bɤ (.HH¤8 D“!jC$X!nQ !CB"€(P‚°"B˜!D")`BŒEBŠ$A"b!H Á"„b!‚„1B"ì8RÀPx"À2‰A(<ƒ!"ƒQ‚9Ab¡! ¡!H'!$,r"”)qBB”"’(*ä‚/"EA¨1#"ÂBA,Ä$2&P(À!)$D$#Ñ$(‚LCgƒA‡@ˆ"dD*RB@tHK$°D'„$‚…BÄ5³B™Sb‚Q¬‘!@q¸B!H¸(d!/„; 1"((M"4((ÁD&¨a$ b>.H"#"‚!j„ƒI„hAwã0t $„"€*¡Œq"‚‘!!H`BâB¢ Ç%J¨!0"'„P©%h%"Fd"N5“ÈEÁ)q‚œ"'0,+$Ab!,A¡„‰,‘2"DR"ZS‚5”&‡Â!+"IŒdAI˜"OA†BpA %gD"ƒH@öE(ÐQ˜2(%,1+D%Ø‚/BB(Â"$"%(@‚2"á#(H!ÀB! !cB06"R(@‚ÄJLBÄdDð"d%â!’"iâq3Ã`A@00)”„8@BR"  @rA ! !1@„bD,ðJe…ˆaˆ@„“"h‰BB$(*‚2", (À!H*‚@XˆƒBA€"‹"LQ„%ADظ?ïrb³¡¼a¡+©BH¸HÖ„±(Ò¨²â‚ò8)¸2(>i,´1"¡1ñ2(?"¢#&"2a‹#(A/‚BÄ"b:…DÚ’`Ò,áFvdd#à$!U)$Sr(tDxDQ=$KR©5%Dö~ð"—M%LHÙQ˜!rø-!Ò",™â!²!BBèA’.‡!ŒÄ-.$`l3T‚‘8 áƒ,a""&,AbB…BXd‡+g‚$DFèb3ÃE”»‰qª1,³Ó²!1…ña…"¬‘.…’X!±."ÃQ9Á""„‡"/$d¤*/$r,áÓHÕHäá¬"¯±*#’/†±D!5A/¢òh24$,å1Dò$bOôš#çóÿÓrõ9!÷±¿ò7·r­*¿1ó*gg/!Q£­'ᯢó+™z!É(/#s2úZ;¯³ñ‹UKDö#3/¡ò;-9sfê!ñA1¯7ñŸÆôLd­ÇÁ‹f-BV÷4eôyüX‡ßA±\ôZ?$ô?dR"?4äUåóv7OR|üH,ÿáñ~ïqõ:R—±×"T*ïär>2´~/ÿ-=W‘?±ñ)³ñ=qs?ú27Áoqqûïò:;¿“ÒÒÒ)ó::­R¿£óYZá!ãñ13¿±ñ);·!»/#ó2"/2÷1j7±¯‘ò.,kbOVÒŸò):+wC÷58:+Tyß‘ô)}OÇã¢÷3{/çó6"o¢ò"c9õwó~6ïÒö,,Ãôlu÷>vo£ñ2:K,Ô¢Ôòó>[Z4oóSf]-õÙ3qó3?Ý+moârgþ"eVví%Ö"ñг…X*-"=b?¶ñhaÏ”U-"/¡2*·"7¤/!"âò!H’%?6üXh];FaöAŸ•öb}K”Ÿä”ôlI½Z¯¢tK~"r"Ò2´AqAùsçý|)ÇÄÍFgöÿ'óV/§¶ç„tJÚbÔîô~´ãÕ"ñ6k1O±ñ%Û«ñ=¿Sr7ÒŠâbqô7Q!±&R"/2(.)Ÿ"ó*(‡3/6V‰H¿”µQå'òŸ¢Ò¸ñ2(--"*ñ;#¯´õ[H_&vJù)Iß„ôh{'7oãö)K;Q„ñXI&ŸÂ÷q!§óz(O"2",R3/õy|cs^ýHLÏÄÔìöG5g±^õ8HE²Jäæõ|µ 'cME¯CÒ2tÒvÂaÁŽsß„ñ„2A¬ôÅðáž#qaŒxsŒxÄÁ¯AÒ|ÁáãáV.¯8wGè(“aEùˆsÓä(ôÁ:uòÃðåž×Ĉ÷ÆŒx6”ȯC’È£þ,zálò6AŸâòS—¢/÷-"oQö-(Oy·/ò„SéòÅ„ò„·”®7„®Ÿ„ø2†?…árýAVÿKVýcÏ$ú6A›"O8•+O8•*¬õa)ÿ,uCøáVW”ŸnõE©?güS+VüAvüAVüaÏVþAö„S¯Çò”S©òÅZ?„òÇR7•nuOùèVß„úzÆ…ãf¼÷lÔ¯!ôhÆ«aÏd¿ôÔÿ°‘”",dB""‘†ÔˆA.82Ž„ B(CdBƒ3C„ÃA)„‘DÄ#ã(MBR0bM"ÃdBBD‡„0HÄÂA)DŠ„<:ŽR“‚$B(CdB‡„*#Î)‹Šr!&äh"°$"p&˜!‚+"BŒ¡¤@±Ba’,X$BÁH&ŒDe"'…#a…"t"ôHŒ2D(Hñd.D(H(D3(4Bb…"¯£™0ˆ!À$D(€Á¡ŒÂ)/’ ¤@¢!‘6`2‰É)%8!¤'‚DR…€!•d"AàPƒ„"!8»SRB”DÂ!"@P"\H&ÀD$!TŒQ’@Â$,AˆˆPB&„! D¤^$@ò1ú0†¬,PH&‚A„Aá„EAH44ƒ&Fˆ!"%X„@ÁB A(%$"A‰T¤4„(a(L‚#ÒA4· 0˜4Á" ERD,AA,–D%BBaA1P„EÒA#!ƒh¡LEB$@DH& !D¡Ÿ¬GaH$Ä $#ADe!"BA‘@È2„adA0$ !(`D)€(PB,5‚<ǘЂDP‚@AP‚D "A‰ A„r$B@‡BÐ…M@$0$&DD…Ñ?KSQX)ñ$@DY3FtTIEB%iL!ÒC$á!‚s2A$DDB˜&DFe«A2H2Mb,†A"Gð$!(B ™CØB„)Âk£Ù! TA”$A‡A!At’„d…4!T!Ä.D!$=8IRIBR4.D"T$•ŒAhDð1`TŽ$AA¡BH$QD©ˆð)'´$`¡`„`!"@$AH¡BA*!()I&ŒRA$)-…( ‚t$À"ƒ$@B;舊"$A "!08 ‚„R8`’„(p!aA!l!F”(%e‚&HDO‚QA ¡(2!C“£B¦! A€Wƒ€2$b.ç€BD(2CrABˆ@”(5 (@!0$F2((+!$D"`"À!0BY$Ð2•-’#!A„LB`*!"2D…‘5HŠ!$ebA.A$$C‚RL& ceX2N‰‘"($2/AAbA…BhC>D…„¢…" ¬A‚rñJ&„¤ €A*D"F!#N!@I@‚VH‚HA"qD!¡ƒAd„„J„â‚XH&T„6R( ÂÁã@€Lp˜,°" AÐ("Qˆ„JB¹ŒA%R‚¥x!|$Ñ£á"Dè‚BÂH*-"-D(Á$CBXˆ%2‚"4"„)QH$ðl$)b€!L„„!D$ "Da“fAˆ¡!8$$2(0$™B„"ò)$F¬!B%"†¡„D ƒ¡BTH()*¤%K.B0BN"oQ2g„„Á€!€p$$RD@¢" "A"…ÁEb8/òV PGdJa!M$lqhBШшrk%4b(NpJHRˆ—&pBÂ&O!qBRB&ô‡{0p8"€(BJ„"£(0(A ²$Â"À‹(€Tœ$P!'A A„ !."C¥Á,"((eDp1Ñ(37Dg" !A‚ A„…@HHA„‰ ’(& À(‰„.S"!BÐ#1(€ˆDˆHðI/ ¢„ „@AH‰(%h0”PTEA(@¨1ƒ&@ÈiäEØ„ I8‘KD‡B&8(‡B"R(°$#RPMƒ‰£()Á!"qT14D!ï¢b&…æ‚Ѧ"a!S™ÒÁò8"aAOC‚ÑŠ£¹2%‹¢$Eñ4(e¢REò#ÊGAI@DdBPD%”(‹ÀN»Œ‘H‡Oâ‚‚ÑHRdÑ’¬ÑˆòJ(̲!Ô…á"bƒ/„rT„1B«/ÁcM‰ã#s4â±²"Ã:/!ˆ´(R)òf8‡ƒo”Á¥UB-8KÁ#ò(ƒ‚¸ !­((„‰Ò„B 2‡‚(‰a‚(RˆSA-"ƒã"rRØ«£2(!])œ-_‘´ÂA-ZŒVŒ¥t&?"„AFVh$ÄGÄQJ"2H'BCÔb„‘QHH(ŒvKAñ>ïAs4¤!C¡!OAó%ú2çb§ä‚è‚ú(‡‚­GC_S…özR‹NhÏSr<å’Â!‹3$‚óAsƒÕ¢ÑÌr/ÞÙ~=ý%-óÑHôuÏAò&T—Ô„Ñ‘òrQÓn÷G;¯bòc>ga5›7‹¿1ö(ö*C/4òB¿Âñ*T/$sJQ"Mxït==ïáó<KáBÒDò$§#§ágccaAD,ÏÂò,(Ç‚o‚ò(:/Có$ß„ñx;=)IÄñ=,ß‚r)ØÁáCó28.Q¿‡óZC¿×ôm/õùmlßTöm?ÿ3óm>ïÅñdw_q{Køh&—âo÷õ;ocñ66o2÷r9^X/¢÷:<ÿ“â†ÖˆT¡5òcï§ñx~O!qj$/&÷:_ÆOCq.ô$4C!±aB*ò:wäg"ETD„OBhƒE܈R*OCòU5”ö##Ÿ”¤DPDÕ„óÄr’2/!vbørBKdÿtúQ!ŸVôMC/eá$âA÷V:vòECŸôB"¯#ᦴfs"zKxbBCñqXJòcѯæ´iòCB.go¡ôj.Ï$óDHBN$vüL=“ØBcãÍA€¢*Ò(Óêñ6k!QD…ø($Ï‚RHÅx(ú4MEßôaz#ÅH—”4OSñ(>‡aO"s"â2ñcj­R7V.W}Aöe-]No¢Õº÷_¿góV?¥Ô²ôcj«­n6ú22Ga+M6¯‡÷YŸWòys߃ö!h”nc+bb÷Z§ÆcõHH)ä&óZ¯ó'Cô:$46V.Žsß„ñ†2IñÁ:A¬î)qAŒxsŽxÄÁ¯cÂÁ§<–ŽS÷¤/(S&?¬öÃñážqaŒxsÞ"x2æ1ü:fmç!¯1~Ò6ì8÷MŽ2A¬S¤¬î9Æ*xsŒx2Œü:$I<è§ÍÃÊ„o3v(üQƒòqÍ$o–(O:׊ò¤S©òÅÄò„—„OjqIø¤„ø:†?…âBüVAbþRQŸBüRaͤ•(_9•(Ok•*_¬ñcio,ñKHîÿ„änóEè¯gøWynÇoµô)çoõ)Ç/÷-âoô(dO½ÕJò¤R­$_¼ñSh_=ñAH_~ñSH~ñAÈ?wøSHOfýRhÏâ¼Võ,Î+eÍöoôÝ“4#(A&$!!„€82ŽA(Á&HˆzAÙÔˆ‚’„3á(AX$@"Ñ$2&&AHÔÒÔH„!&˜‚'ƒŽ&M"A&FÈq#’‚'I„ AB(è„+!€‚‚a" b‚À4À‡C_¤s"æB²q4ø88ŒÃ3$/!áB“&Or7–1Qr%±$Á27'q¦‘2%7a_"±%¡#L84Cò1-g¢ÿ#ò?2S*-"ç'RÏqÓur,ôOAñ5Ù!R!¥ÓÉú2%C2§ÁgÄlñZh/¤´B×$ó]#±ˆXd-ƒ&ô4Í…Tª/#ÒFÁ­8‡ƒO"Ñ&ñ$0"O"ÑFc2_sÒQq1µ5ÑTÓRR#'#m6-6%s3ñ'}oA"O2ÑeS#73ÿóÓ+Qªår*~-×ùÒmò*gc%LVº59+¥ò#!ý-%ÍmMNoÂò&jï%AR‚6ÿ;ïõÅTÈ>o.§Aï!óo-/Bò62OCÂ4Ár8>6CÒDâBr&ò43oAÓ#r³ññ%>%o3ÑDÃ6/Bò6oqÓcÓCr266CÒDâbr'ò7ÿñÓò¥Z*¥Ünò)=ßcñ(/BñoaqY;+‚¥ñ)$Õù$.Åô¯E÷<:/䥴ZõHoáòõ6p2ÔXô:$mA£ÁaãÁaáO8wOú„2a?¬ôÁ%öãž|aÌ„7ç-‚'C|ü:&mãÁáã‘dÁo8wOø„2Ao¬öÁðãžÆLxs̆'C-ǯCÒ&<­ãç!MaÉñˆrׄŽ2Iá¬ôÁàîytaŒxw¬gC>įC²<~ô7ÓǯQô8¯‘ô8¯‘¶<ómË3ϸ·>ó„së3ìów8ÏèóuêssìjóaŒ/c{sü4¶/Sô8¶/ô8”/¶<ûaÛ3O8·?ó†së3_¼ów8ohówOjssü¤6Æø2·7ç>¶¯Óô8¶/‘ô)Ž/ö,ªo‘ö(/£=|õ!tNú/!ñ:.í,³ò;+·Ám";":¶ÔˆÒŠò>mDÇÔÝ)Ý>oEô^ÿ1s;öMHŸ±Õ#åRöM-ßÓö2i?åÑfr&ô4A?ñÕçòF'uó/I…øD%_tówGoqÕ=s-÷G½R¿±ô#7eò"WSuWö&kõI½5óR|_‘TYUõ%?wQÝïEñ\o¡qòR/gó(Ž1ðVO…ñ^jï¥ô¯!ñ6*Áò<,¿³óC(/!ó2"/ƒ“j/¡ó.ïÆü\d_ÒÒìòl\ïaöt7¿…õ~­Z4ñBO×÷M|‚·3v}ü6OBãv}üvob÷Fý¿…rhñ$dtòF6OæñtEÏC¶IuH¹ÕvôtTOGó4WÄ/c¡Q„/µÓM÷zØ?ö$-ÇBÏÑQÎGÅoDô6‹U¥åÁñ,4¯Á?|ùWAÝ­Z¯¤õRB¯äó*ÏÂÓüñ?g#/"Ó"ñ8~B¯¦õnnï†ÂEÛFÏæö~>oDñwKUý[?´ñSB/Eó$U_6óJv|4ò24M2'ÃÏgôwS?bòM)„æô!fo5óB4÷ôOíR•¨T¿õ÷7D.5O%sWô$GAA…ñCY~NïSó|iÔOÂÒ}qÜåõ\Ïäµ\ñX/…ñ6çÿ‚ 7ÃE¯ÃÒ4vØVï8wFâ(öÁ:eòÉ%òížxmÌ÷Ç/!x:Þ:ü:,-ãÑ">ü†s÷dŽ2a¬“&¬Q"_îiA‡ÆˆwÇ)x6æü>&Á§!áçAbÅä8wMì(OíS„_¬Q„OÏY‚ÆŒxsÜø2‰ü:$‰<èëôcÆÆ?QõyN/õxN/‘÷\"o÷8o;—?O;—:¯÷K8Ï/÷k8þVÿ†â~õm©¯gü(gü6qçüYçüqßEþ6y›uO»÷K4O;×Jó÷{¿ÄóÞs?†ãoõo(~õa¨/Güw:~Æï“öyÆïõhƯ‘öLæo3öId_:÷X$O:õ$_üõQ(Oìõq(Oþõw(®_†ú2žw….Þï…ô(Ôï%ô(į…×lû>a?†FqAFÈ"Cdb„#tAؘB…˜BÈ£á8Ø$tHHc„,2D&6AD3tAؘB…ÔÈ£á(‚4A Ä!CeBB$R$tAÚTHMADÂ#ñ„E8a&l3ŽˆS(Ü„hBD¤dB$H$h$H€‰ÔD(EB(1Bƒt!2d)A‚T%I…’CI™3$rB8Fh!BQ/¤BI’D‰â!©AItH1U”%XϬŠAÈ"!$!&ˆCB!<#!PC!CAa"7B`!$`!"b!A&B!QpB!!À'CŒXC¥äB‚5#$EQu‚h!‰BFIRD%f ,DAC…†ÁBÔ¡„BTI!Ä<D°T…T¯ &Ô „!JS$,!@ÈBPŒ‚Dl”+B%á„DˆÃD`’L‚’$ha-`‚AG…#D¤„Àb %„“D…B„”$&‡Bp‰áAÒò2Y1„%aÁ„…BDA“(…$y)QL„kŒT’(K4Åa’!M$0b)mGB”"W¤bHÝ$©ñ!%PB-Ð+œA9R„@x(˜NÜ‚òS1 1B."! @’D$p!’DD,M‚ÀB¡!ÂITADÄ`„Ã`B@(PBI$„HB<R!ˈ0(m€HHACX‚&dE„ (MB$ˆDDŒBBqFH"D‚EDX!@DxD…"QHD,@ä!”ˆ#Ÿ˜ Ô“Ð!Ä4Er&X!)²„T˜Y”&,ÑT˜#2ˆ2BD„ŠQ,ÑBE2#"ñb„lT‚(LD’,LA$ÁXáÂd/†!dAk",qF‘ŒBDB<„¤C´ˆAØa©SJQhV„4RÅ#BNÐ$QD!D›$ˆ<Ô„HŒhQ‚À"4$E„b!„‡T"P‚GB@hL’8”A+!M!AAAt($–8B‚ÏBa&4)©…!‚0H+%D@Õ_ÿÿ‚âbRB|uJýEVï„ôH§JôJLNåldçdïìüŽŠ…zRzBRª¯ÂòJ\­.o"ó&&/ruFòBB¯‚ö(*§”Ô‰Äg!'dG¤NNeR"'$¯¦FÒÈñRT¯áÓfñ/!õZ/ÄÕêõoATÄÍDÏdõTBG¥m^oçÒ.±ñ¶\ô;ðs6_–´òEIDxV‡õý>ÿ&ò2eÖ¢uJòBZ¯¤ôH‰·NH‹Do¤qJòZ/äøÚºï,´tBò«DN,¯"óa,*ãBâ"¤QFºZüHI“ôZB-DmJF¼LòDHHƒd$NhÏCõx×äM$>8ÃõX¤òhŒ/f‹$¦åòt\/‘(Éññ\T‡ÆasöI[75X½wQ…ß½ñ+(.6!M¯×ö%vï'ò*j¿“¶!vHÌFíLl´ôÎŽï­è$õB/$tZÚˆô.>>$o"³6ò&7ÿÔ#õj(¯¤„ÔˆtIé¤õB-DíB‡äç¤NB­Jb'$„×fñ8DmÃÑ>-aÅô‚sß„ò¢2Iòç:EøÃ#òážƈ7Ç)x2ÆÁ¯cÒ|Âáç!ì8wMè(ôÁ:EôÁðåž#q%ŒxwŒø&DÈïF–Ä£¾^ÄMcÆæ/Uô=N?ô9N/ö*oQô8oxõ-8OxÕJóÇ¿–÷ä¿„÷â7¿„änóIÈ/gø_HOGüVCëüAÏÃüRcËáoô|O>õ*HbøHFøhÍ´ï‘öøŒ (A&P!†-Aa*’(8O(EO(dB¡ÆMAƒˆ#á(AADIdBÀðA”€8RŽ€!„dBB<6-%(1‚¬iùA’,ATEtˆQ„¯A8G´$‚R*ABAü"@,DD"D„.ƒD2(AÉV"Eb„.H#(Eh"D&bA!‘,„ô¯~à˜˜$€Q¥-€QB<‰‘&A„IQ…ÂX#Ñ!€Â!AB”bÄAIDh"AB"D‡D"©AB…‚ÂH,G‚À"a2a„FM!ÙóP2D„…“!E„a"W‚R”åÁPJ!†Â„P‚(eJDDbA88¡ÅuaAŒb%"¡,R2!@rDP(I…(óB$‚‡B¡BMAcL!DrHô#!Ð(Ä4$D…BÄ$!‡ÂäA`!!`D "'A$$Av%(a‚@Ä()ALD˜!ð*E£ LB%³ÄQEÒ…C²Ô2„b’A"Ľ#Ay ¤‘©‘,ETbD)t\8OÁQ(„ÅTDµÍ&%A8àQâÙƒÑ&±g!ÑÂ!BD”:aHH8ƒr(ôuÑ'ˆ$¥adÀ,A&$PAEØ!@„8R&B!"!*€ADB"@@$A…D@"ÑQ=‚ˆ%D€\DHD„%'D@xX„pB’D@DX(@6D„`¤DD$`!Xd@$RD„Å$&ôJ%HñQûÀAD„Ä)Ô)ed1+B[,AQa„j1$QHM!(CD4""Q(‚…VŠG…’"drb‚ QP¥d"%AÛ„–6©Ñ8Á`t²Fq&–F.$AO‚Ú$’Ì !dïñ4Ö\B‘X¡€ÂBA!D! 4áDB„"BÁ0€H’8A&Ô(Q„"%!TD‰t-<,Á$*',E„RA"ÅH„qB$BL¸4„‡Q»¼$Ð)EB¡!”dT!L”%DL#SH"¤DÂHäPhd!ÐB@D2E dc…"D’CDP$Œ’DÌ2…*l¤‚¡#Â3Þ!hDb¤À&ƒD(A(gB "Ô$‘1£T$R`R$ !%Ä"4$BáDAD‚Jrb„>Q¤oäõOSlôQ_”üJHL¯gôFoåÕ¾ò8‘ó/!ó6eR"¤¯!ñRñCLåxEQS̲(ú.$*òq)Ãó.,ÿ"b‚¡Q˜hïÂò*õãÎROuõU{¿±ñ¿µñsO—ôÝ_ÿñõ_.eV'-G÷t}G?4tcWßßÖôMA_tñUgôDB´öKK¿¤ôIK?ööGGÔõ_YÿåsÒcóïqñO»Doõ_DÏÆô\HäôNVowõW_õó·¡/!ñ2Oa1¡¯áñoañWçáå{S'ï‡ò(,OFò$5ßÂó<6Ïâö$6ï¡õ*%ú*.Ï¢öË»ðtRËuxåñR\'rJvdôTtWDL"Â$7"kDDÖx^ôlD_ÄöuMD_fôIao$öGK›D?´ôEFýgOFõg/dñ"m}#¯"qVÛ)´tùJDnHÄönZ¯%ô#?¡ò8K¥Â".P‚…ñAT_TK¤+"OF¢2Ö÷((ã¢b&˜L…øjhÏbââ>—\û_ÿeñ[%õS“Õ7ôIi-VïÇRfm"-FoäöNNBorÖô,mWÔÏRu÷feo´ôIBNC¿´ôCC¿vôCOÿD÷VWßç²ñ"6Oqñ*/AõCMov÷SHOF¶LôhNoÅõbq?5ñÿ¡qÚ"‘2/!±ñga'amAÑ7ñS}V+'B¶dò$%߇ò(8¯£öl6ï¡d¤­JÂò&cÏA ?ãÁM¯£ÒtÒvÒVL?87Lo(S"_¼S.Ÿ¼Aôãž}iÝHx{ïDx3ÞØ¼;Ò<ã·‘mi•ñ…sÇ$ž&EòÅ:EòÕI…ùíœ1WÆLøk©x?Ô‘ü>$ÍÁ©Ñ~ÄaÃá9w\î(SDœó_­¡_ïÙ‚raŒxw̨oC‘ØgÃI<‰>>l=ãlýsIßâõRAŸâõRaÝbo•ÖIò„{¿…ò„w©òÅ?¿„öÌ7?†ôä¿–ôôŸ†ü~—7‡.†/ômŒ/1ôi†/1¶MúoŸ„ò„¿Äò†w‹!ìóI)ï8wyéjuø¨V߆ø:Ô÷§BüvCŸâùAÏBùcͦo”(O¹õ$o9õ$_½ñS-OÏaé-n$M$Ô$t&v$t%ô$´E´$ø¢*¯ŠØnÜ$¦“ž2%˜"oañ´Çèïèz¬tEôJì¡õ:ƒ{¬ÜÌüL,‹¦'ÊïIÝfþ,d«†#ØÄbOFô„õã[cïþúOñ[?ôaoý)ŸÂ÷~9¿¡ñ2k/õ[Ïõ÷c='õÝôMlÏ´óO5ñq7_ýù—’/¡ôJJ/æ÷?÷ö{Úbr'ö&GåöF&m&m'í$GBoAò„¦íЧèoNòDï¡ñšŠ¨ø(oAû>®ïâú>.eö––o)ýÚïÅõúú¯çsøHH‚æ*ûšOmñæ,O¦V¨¨ûÊŠ¯öÓgØœLòb&¿–ô35õSS¿4ô%m½kÏFö31_Dò4"?³÷L.?בöeÅ?òeaOD÷wODòg&ßVìX»Ó¤DNLOs×ÇþädïcóA$M&&ò)aMeM&M$_rú%OB‚âŠØˆúì&ª¬9IøŠ‚Šø&”Oãú,®ÏËñM¬Okù„„Фoÿèh¦xJüLlÏB÷æŠÏDøÔ$OÎþ¦FÈ‹îäOCùD)CÚbÔ¾ôI[¿µñ?‘ôI#÷ö?¦Òvq9ü&k#-3ŸÇô.[—¿vò/m_Ttaô,y?£ÖÜõ_ßmüß›…Ò"ôH4wwÏNÚæ1<'bk"-'wÆ×ÆGBorr'ü-,Cò$¤Ë*¯èœ†Odñ–ŠˆX¢èò–6çÈÏÈùŒŒobSFo(ùZÚ/aüx,ïâ÷HHÆòdô¯éô„Öïãþn&oŒøÈÊ/¡ôèjgíßF§C-A¯ÃÓštÙ¸vÈcÁ¯8wLô‚6A?¬S†_¬QˆÿîaÆM„7§ˆ·ãͯ£Âȧ!~Ñ2VŒ¯¸7H/h“$?¬Sÿ¬!ò㞇‘—ƈw爯cÄÁïcÂɧ!œ¾Ò2¶ñ’sÛ5/)“?¬søÃIñçžpaœ„7çLø2¬:Ô¢üŒÿ:OQ>‚Lô6cßFõCŸæõaÏäö6gŸÄö¤w¿Åò¤w«!_¾÷S(o>÷{(îWÿ†âõi¨¯wý(nÖ/öéÞ?‘ôhÎ/‘öLúoÓöÈhO:ÿZ,Oz—*_¼÷K)Ïjscèzño)¾_†ú²†ÿ‡ú¨Æoþ¨–oü¨Ž/þŒ¾oüˆ,O:ýš,O8ýš$_¬ùÓhOmùÛHOnû_HOnñIÈooû_ØîÖ/%ý¨î+Åê½Rÿ¬úoż¡ £ —„8g„&wAH2\0XÄA+AÀA…è|ü„R€uIŒa„Š3D&4H,yXCtAÜÈAAˆO8Ž (ŠdJàhiL(ñAŒÔˆ)”˜ˆ«!O(!!ˆâ(Aä(äJô*CGˆ‘‚…AÅSH$C‡!pØ(ÀH#QJR!(–X!'Bð$„d„@QH-,"!!ƒR$Oˆ)‘D&ˆMH@Â!A5a„%t(ÂJž„P$ITH%Q(CÂ#„L1!(R‡$D!À#$A`…i.%H!…DQH%ÒJ!!$(ÄA£ d!JR „$$„@Bb„6Ñá5é%BØT$@òAD‘B¡‚Ñ$ÅæV˜._G¢ÔDÑ*d˜‚Ñ(ÄÏBD!($UtRH/„ÇTÐH ­CÉHÔ!'EcX$)Ax$A60DÄt¬LœÂ‰Ñ‰øÎ4†D6B1ˆF|ARHdG"(ËAX$hD ‘E‡‚ ’@XÂd ,E$"áƒÅƒ4‚0:†4,E’ˆÂ)Á(D"SY‰Dà(…¡Aò>kD%ÉX=BÐa¸³tbcl2H>¤Å"Ì!C6/tˆÂA¡qìt$ÌC$$"M"¤Ac­2ÁC”$ƒE§¡ç©Hˆ˜2!eQJ$G(ñŸ3,Á$$HÁt8½‚ðD„%"4JØäñ¯í HrCÀBÀ%HDIÌA%ˆTÈ`Dˆ%5HDI`„A…8„‚Á†%Á”!D!ŒDÀ„ChÁ¨0HÒ8­ÈAe„À„IAAT$N)‚#d€EÔA`‘ÀR(d(L…„"‚B"1$@´AˆTDHˆH(A„'J„Å"0(p(„”ˆÀ!ÏíSZH˜BÑLA8!aIRR„dP„!ÉB29ƒQÚ,rHR„M‡!,²¤%u‚™&DB(rT8!¯Ñ,="2,áD3ca*ªD$Ò! Cqr´.“D,qBx2ˆ8Â\‰2HA©FTB ÁD4ÍBTHBD,äB1H$R!H.¤"02 ’!dI]D„)(1T$‹…ŠrDr†”À&fˆA"ˆ( T(ÈŒBñK2@HQ!¤P„DL‚Dt!"H-(CX@*ãA2IÒ(Ä‚ƒr)!.HIÀH4\A‚2*B”R6¨ÉTH´F„e‚D#¥A…‚òWS“†Àa#$a":Ha)IÒdRH:A±DV(Q+D#*A$ƒ‘$H&,¤!‰Dì"D¡HUX$ÄP$‡HÒhF¡BÌ‘B@È„H!+„„pB˜HØòV€BƒAŠB(‡!4XBA…$4Ba¤( €D”)GÈdPB(I4B(¤€rA„0DˆH"<8Jˆ@ª! Dà$á"ÃDFB8DIBZwEßåsÚºñŸóqüœŽ¿øXÂETFMGÿÈùœ…owò&&ïÖò,,ÏÂò¤¦ojú&¦ojú$¶ë™¯¡’B.&oâòŸI4/3õZZ1÷[=C?´ôjB?´²HôS;‡„/!#òQ{Ÿ±SôM-_×ùZ$WOcÑŠò5TŸ”ü”õÏœôAA‡„_rôCa}Gt¶wñ2OCñJrgFuמòs–…òeEN!ws¡ñ'F-/!ó?1Ñs2Ã?Hx‚zA$)ô„„ò&%fú6%OÆö($onþ¢¢+ªOFþ¤†NH…ÒBö&$OF86Ò¿µõ[{¿µõ[K½IŸ¤ôJK¿†öH[¿‡Â+!-S¿•ö[Ôôo_ÿ…th]ŸÂsú,]•ô‰þÿ­Ü™ôAHTôGBŸ6÷WWÿeó/AóS?urOWïßòôNIVôEH—fåû+?oUñ¡ñ/ñ:q¹ø„†¥TDDe÷‰…_ýa&_bön%OBòd,Ïjúæ¦/jú$äOB»–\ˆ-Bn&oòöé£ð2Uô:6mC§!cãÑþ3焎2A?¬3D?¬?þ!qaxsÌ‚gSü:'üAœºÄkÑŽ{çÄ/(ôÁ2ñ?¬Ñ'ñãŽWAÆ]„7æ!x2Åɯ3Â˧~ÑV\Žs×ÄŽ2EôÁ:[ìñáž3qa 7ÇLz2„~:”È£>MÔ±lù6AbñA—b/1Ö­òa(o<÷(o8·òÅ;¿…ò„37‡®÷‡O{ñeˆocywêRù6AzùARøaÍ®1Ö‰ò…w½,o8×JòÅ:¿Äò—27†_jqoø¡߆ø3†w‡rüvAÏòùCòøaÍ£o‘ÔØò„[­$o8ÕHòÅ¿ÄòÏ„nsOøè6ß„ø~¦7Of¾ô(ökQâ¼ö,âoÑôŽ_,ÈrÑ&$##qAè(a„C!¤'ŽÄ,XŠlB$1X!„ÁA‹!Ì&”„#õ„X$À"A&4(xAØÄ4AŒ’†+!ŽL(M‚,dbà¢>Ê\¸Â<ŒÄˆŠFÒ‚D‚"’%B$C¤$A=4F²KÑ!„fQ­"„IaB(t(ÒFf‘@%bã’H`!LèîH2„?‚4`H!G!.N„0BÂÐô7âBÁBˆH‡#Dª$ÂdB(IB$„bA%abFÑ(5B2ÇD."‰A„¢9™nPARBÓ$’H#I‡HHI `H„C!hDD!K‚ƒaHˆB%è42ˆ„X),ˆM"p-„SÂ1PPH!ˆ'ˆA$„±@†•„M&E "$D˜4D‰HA„E+BBÈ@R(Ïô±èÂP;A„ÐA !CA"v"ìB"DM(bD,š&tQAŒd"D##„RC´BBDˆHr¡–B'$pT"#¸$’©†&#XŒ‘H£áÊÁ¿óœ"|A B$FBq2H p†Ò¢rDi"&r1LÐD1"J8RˆÁ!h‰r4H$A€¡†YEd‚B,x%¡„ …O‘l!2‚cR„eäƒE!R„DØ"Ø((Q%”ˆ«¿PHP$•ˆ1‚1!aBDÀ(ÈEBD`B#!¤%ADA#‚AH$A$„(ƒ†%4„ƒB£á²8=,A-A%AÈ0d#aBP„ˆ¡„CíB£%"EÄ(ƒ‚A¤AL$CH‚("„òAE…ät$%ñá)À±[)‡A‰1Z,Bh#ÄG"…”H8ÉÅ3…èBhAø¤_¤ÒB‘ˆLB´(q"Bñ"It"ÔXBF62—‚à¡øa(Œ¢!^„!, m(-‚%”PˆH(ŽR+(I4GˆŒ5½$Á…"$Ô±B1ADj”`BL2$4‚PB’PB‰AI$‘.J`‚A…„",$Ä¡h’40‚dˆh€IJTH†2HC„Q(@ø‹vP¡2DŒÁ0"€Ê"D#“D±dƒFL$ä"l…Ü`Â,(!Ø4áCa†¡d¡…Q(‚M(R@¢9A2!‚iALa„XŒÂ‚Gƒ A)‰øDiQ t!=. d%!(%M1R('BNH¨B°!‘B,2DH/"AtÈ"b$20"Iá&$gC"ÊA˜„€tÂH¢(%„K :¨A©‚¸TDQ„‡HNŽH8,(„lA«A¿mFIÁH"DÀ!M(ðL`ÂB&2CÀ$ á¢2F@’LB¶.$(D$’„#2A‰(ABDéDa()šÀçSB<ÄHl¢BFh#A2]AŒ4bRŒÆhH)f4B”!'Aƒ$¤(4hA µ"1*I–$ꑘ†$‚’[Š$x¢TB(¤(¨K¢£3,HAÙ¸H9‚à&šdD?ÿl’DSLD(!¤A$`¤PAAƒ!#D´!RÁ(RB$!<ÂD4TFADQL‘0!F•D1LXAH'A0ÈHÀ² A"‚DJÂ(H7!`AÄB R".`H$%ŠÂG)¡!ŒD!%2"D„BDrMA!ODÑAh)%1(K"‚‚PÄ D‚!Ä„XC‘ˆŒt“ B…!t!D&DɈÑÍF‘#‘1‰‡„$GB")A¤DD%¢(,A2´$„w!‰¨ƒƒ!ÀXÀCQL0BJ0ABL;·¤$¬XA”(T…<’"'”`„Dƒ¤‚!!X€„‚DAIóA"X4!‰!$’‚(ƒKÀ!PBð„4²Jb„I!Dˆ‘„IÌZ $($PEEL8H¡"".AˆTHH'A(H€2B!@D„8B"&`BIáTDÂ!$J!<¡ƒ €1’è+B›#AÑ¡ÄGè(1$'H(,áè:o@R„A"ÕÇAAQ0DBD@PbAC¢!!!„##D%H…’$à!Á@˜ˆ@!d%P4P„A@ DdHAAH#Eâ‚‘"DÄ$ADx‘ ÀKá‚’=HD(_(ÁOAâ!"xXD£aENja"¬DB’IÂ/XT&CÁ(%"qFvs(xitBdFÄ‹CÀ-šGACñ¤Ž/¡"É"„'¢«#'([w„AEØ"Ô¨Ñfa!-"‰X.K?r¡qI !9BEIEQ% S"R%¡9–l]"4A‰!aFQTF4"$" ¡N!^$'K‰BÓ"÷4A]2?ˆ‘²!¸…QbŒH¶ÒHª*œ,„{A…ô L,,¤B\;Hb"¬Ø­DqˆÈj*)U¦w„$‡WÅPŒ‘ƒñ(Q‰Ø‘R$I‚ä(’ÂO$ñ$S”1`ABI”AI ˜-šÏD‘‚",ˆƒ6³$¡"K-$[à„QˆFXA´ùC„Ÿ„y´Lø”/ÉVß÷BSÕÝ-¿‘ñy­‹½cçbM¿QñV3ñR6_õ?õñßÑ„xIYIO‡qô4Íd1Q3_SÁ䞆G,-=lÑ4eeôSV_‡ôLÁED,ôFÑ^Å÷‹‘/±x%DÄ5_³(óá4/bÓó÷;2¿1ÑÿùGM„ÇD…|ƒöça¯áü-B?!ѨüïÑ3þ5÷Íߢó—¡µ{+[ÿ½;!õW/¡ñSïõó¿Ññ9§•×’Õ݈ñÍGÑÏ¢óR/1ñB/s„Ø"üG&'a/!óQ_UãAõRV;•´$tDôá‚/4õ4SÏqågû±B£"]+;_ÃãCâ"ò¢w?·òª2'eoøyT\cñ„Ÿÿuñ–ç!mm-šï!ñ¿áõrl7¢ýGoaóVR¥ûHHCòLhïAñ6ŸG‘&OCñ7o%õoWYÊËFÝ8OGõ<ÏTô5_õ-FK_ö¶–-$E±Sd/ERcô3ÖyQô%AO4ôu?Ey§Ø´ü3M›¿)áû”Oò%Éòa¼K)o"ó»./²rãÛ*ñ^Ç…üDHÍç$­Š-/åüš2¯¤Ü¢áåüŠïq<¼ÒÚôE6o±uÚ‹TJïâó¯åsÒFóV¿Óóï•ñ?rWÕŸÂrLù,ÇÅσñMÝ?o1¥/1´cáÔesöb6o!ñ64\ågÒ'õEo#ô]LŸFÖ´ä÷UVg[·üû?!Xëñ54Iù8$O+³&âz¿2ò¡û·ŸayOXćDÏxu_ÿ…ŽoÕ¤¸õˆš/¡õšïÁõѺ$'C<ô:$MC§!<6-aåú˜{Û/(ôÓ:eòÑ$n ƈ7Çx2Õ˜ü:7MÁ¯Áãûvžó‚cåè(ôÁ8q?¬1CÎ8Æ|c¼Cx2ÇçsMç<>÷,#:wOº’ôá:Q®õõžGAWÆM„7ÇM„oC|:„<è§Aì<5lô2IŸbõAßbôaÝloÖÍö„sÿÁò”sí$_¼óW,O(_ƒf&JAZ$n',15’X‰¤$D§$BBÄNd(N,D(1'"U$¤!–q2ƒrR$".©A‚„4!/‘*‡A¡+!'ð2òéÐc$ô2Ó?$R#%rJóGf_E÷W[åö-?$µIä…õVwov÷eÄGÂMoùùµ4c÷ôo_=ƒ(ïs3!WAõò,$uVf?¤ôMD/$öDaO’ö!ŒƒáRâ±!ògfMÄ®L¡dowÔgôGD}AM&eFòCR5ó!!cãbúqm_VògURò4$."&b‘"Ï£².B$ôIso%tJR#=Godô.T_uuB~öV/1õ[J?5õrWogövl_TRVOhù¶´_cóW4ß}ÿÔ‚!ñ3wkgEõUWoÇò$&eÞ6ôKD_4ô&G/b¶nvmÝÒdó6"?bvwô¥ço-øBbw$?vvFVF}U/Fò&6g„-C=AN?ò!'k#ORö/mOòõwebò$&OÂ2%Z¬.,ÏÂò“©4o4öcf¿'÷CC¥Sã½B?4ô8qoµuG^f%òFRFóBYÿdòGïOVr$ÝMù•½Ï[ó6[ñ¿mÿÁAÁòov?4T~moâr&ÖftBÚ~T2òC‡Sö##.%g3?$º‘úÅAd?csgCóF_ÄÂà5EÓó!#oSú6$_–ò-%_Vö%'Ocó&$g#$-(/có$'#ÜrxBóm7%·´%ÓkôGB½y~V/eñg!mF¿ôRCçôgWï×öd%Uü…—oûû67oU÷ùÚ{Í—´%ó)f'ö[odô6&obRFIT±o4´Cr!÷BiM!ò%/2ò$w'5?j»—\1/1´!öu$ÃT/G’#Á7-#/bò%$ORòmmORó'fObò>,ïbsZ(#Ñjò4'Ÿ|CrrÖ4ô~546MaÍQ/8W/hSD?í÷ÃðçreÌ„?ÇÂocÁůSá48-áïaòBcÅô‚s×ä®2EôÁzUöÁ%öãxAìBøs.m‚'Cx:Ô<-áï1ô&%ÁO8wMèhôÁ:A¬î¹reŒøs,*x2ÜÄ~>ÜŠ<‰~Ô9†¿1ölïth÷aÍ'ÿÔXò¼W­$OxÕJòÕ?…ò‡?”ö¡>w„êñE‰ëySû!¿ÿöè·ï1ôh•¿×|ûQTóŸS¯Fò„S­$¬õC,_hqCù¡V¿”ò¥6”ø3¦?•ò1§o5öü¥?ô8…/ö<§oôX3_<õh4O:•:_¬ñC8O8ñC8®6w”Oz÷MȯSxWø2¤oô:¬kA¯Ã¸ö¬oÓôK$FÔ$$ÄbA&ÄBAòA-AD‚¦I8ŽLò„"à(2&$ÀdpaÌA…Fb„ˆ#á(R$D!ŠæR&$aÄ-A‘!(!(i8O(±bÔ‚DˆfB\?ˆÈ’%¨œˆDi%M.B¤A$I‘ˆ!‰–‰ÔA(t$ÖBÁh@8føAœÂD¤"5]lðA(DBYƒ²BèBD‚)Ó!d"F$A$1$#D$WAF(J‘ÐB‰’h]Mk$#HBFH6ap$È")tQBDq4F,-TIÂa@bA!%å”$BEAB&(bD!")†`B”F.$I°A$AH òHiãŠhGÀ`à$C¢$,ˆ#ÂV$ÀB 4$O"¨„MDâBƒE%a$"I"Q–*“BÓÂ1ˆAtB²8DMa8€ÒBÄ!ðAFE!‘RC(„Fõ=I#„!˜cdœ"A#¡B‘D(YÈ$ŽNd@ÁF4(/-$H.BT,aF°$B‚"‚0A"gˆ)$baA¢#a(DhL´hB$:B„°$>b*õ$D‘i@ÁJˆO,Á! !"XA! !)L’A&!PB¢@ÉHEHLÂ""H(A„"@R…F!(%ˆr$"k)€ÔA$ $@ä""â"25B¤¢I„„*²%L"€`B€22Bða¤.DDHäD’EFBTD4,dT%B¡„BhƒÂ‚!€ü<Ò(›2D((D@è‚„H„%! ‡ˆFˆ”„(@H ˆ! I"¡C„Zôø "AH„„€ H"2(‚DŒÁK!€A"€$€€(˜C‚ !‚C‚A@ !J¡0H,6ç@´$!ã!ÙD’B"Á A¤0$‚.hK""G4J>R("J"‘†„ÀÌBnDjz(ƒ¤)nDæ„ÄOA´$®BLH¢6E$&Â$(„N¥Nd!%$r(R¢HA.L^(ÿ´.A"7‚‘AÁAeèÊaDHÀ$*"bb°‘6òaJZ¡Y¤"?…äÌÂ"I’A‚Bb&ñ$adOr‚RTLñ(䣢dBBBEâ"r2r$dB…h%:bx…ôA($=ÂMDphHHˆÂ×#Ç&yAG’aÑQÑh×Á1*$âBÂ!¬Dä’3E5˜ ”T!VdQ´AÂ,E&HDIAôEB‚ÄAG!lQBFát1D"-Š#’1DsD6Að$a"Ýh ¨!&¬!H¿V ÿw÷nfïçôxq/5õAQoæ÷CÇ/müô]ÍŦ–özr¯§õt|_FĹÏGö$¤_õgdßCñ?–ïÚ´uòQboóòeä_þ—¯"ø‚‚OHøÁÉ_HxÈñDCþe$GRM…/-ý£Ò«þ®G¹ÁQŸ§÷rz¯G÷|eK$dçÄÏÚÿwwOÅñûþDRRŸ¥õy^ÿWñô¤øýw&ohøƒ„Oüéä_šîVäNþddWTM%O(ÿö‚{ÿ[¼ŸþºF¤ü[QGDþ¦Yþö¦kˆ/jû¶µß©ù‹É-s/+ú.)Ï’öMmOþÿ·áoCÕŒã(®Ì„ñÃöLh.bðv^öönv„ôJKÄô_GïfþÜüÿm÷#8/"Ò"õcc¯§õRzÏG÷}Ü“ñDLÍŽÏÌõtN/±ñÿhòQJ¥ùIKýÿaø˜œçl?¤ú‚‚OH¸Áþ¬…Ÿ´!ê|4U"ø‚“/9è™ûíÝÿkñEÈý±±ø´å+™_Ìú””ºù“˜Ž‘¿µ5ù…,oò(LÛŠÏh9µOAÅØþØŒô‹ÏÁôXÚ“Ìwÿ'öj{¿…ä4´SõHOå÷æßNüt"$%ò2S?¦÷ZR¯†ç—çò(lÏ„¢ÚW÷_3ò»¾ÿÑá4ñ9oõõ¶¸O{þg&ojø†„KˆØþ¤‰ò¡….%Eñ‡/ý¢µÏÛþ®yõÙ™ÞÁTë,íoû–†Oj¸†ûžËeòäÏRò$,ÏÔò„îo_ÿDÏ…²øøŠØ…õXHN|φõ4p6õDE¯CÃA£±A¶ÁaÉáxWŽ2A¬ôÃ:ðáWƈ?פ‚'AÁ¯BÄÁ¡><–L/8÷M(Ž2EôÁ:M„¬øáÄ*xSŒx²äüº$MÁ«IºÄaÉä8÷mˆŽ2IøÁ8A¬ôåcqeÜDx÷ÜEz„~ºœÈ§èãÁ<ÀžïöhïuhþaߦóqæòŽ÷¦ò†s"òÇ[Ÿ„ò”Z¿„âëwMéêõMˆ/Ûü_/Òúc¿ÚùC¿ÖøcݯïÔÉóÓ¯‡ò„×­$_¼ùi,_:ýAH_zýAh_zóAˆ{ùS(_[ùAßûùIŸ[ùaßûEŸó†×ŸGó¤×‹1_¾ù[88ýQXzy]ø¤6ß”ü²–…âCÿhOÿBÇýhÏÅûAô ‡†Eâ…‚rUhBG….‚G„&U…†´(“B‰‚”8:ŽH…„8EèBT‚ljP†„ÈA‹„ 'CŽBŽ X€äJ¸ˆ„øA‰(C¡"k#ñ„BO(!„a„ŠsDèBCÈ“A¡H6€”""À$HL"4$J(A¢$BCÀ$"H Ò¤BD(LéDÎ$H …4ÂŽ"ô$B"TÂH(°%¤!!ÐCH*-D±„HACô(D)4E1!(C$¤‚DX@"‚´!!B(AàDÈD°äÄA EA¢ÈCÂ"E„CA’H(%$1"D@ˆ„BÑÁ=Hpt„Œ„($‚,ò$@´I*ÑiF³BXHNˆX‚T!‹D€AQ&¬„FÌPEÖÆaHCq!ˆ”O"„´rA4I!…ä±J«Ÿ¦LS‚0C€²"& Gˆ&d’ BBI!€$2bT( ’D(#²,$âÂF‚eˆB$J1()È"#‚„(Dˆ„‚$(†!äJH‰Æ-s Mj>DЂJ&Â"G*M$.d*Y…ìUHB(.‰'‚L葈V)A|"‘HbF((8K$FêBñA(ÌÂHDJâÒHÁÖa0L6˜6,Á"MBñDH0YÄh°*ÈD!ËaŒ¸HqBHh†OÂ’,B(RHBIH$„BD€DJD…Db„0<ˆ "¢H€taH‚HÐ8u@#€‚(Ah*¡$M„(LÀXA‚°$"(GB ‚‚ÈH€B”bƒAE,„("H†‚ˆ‚Jˆq‰Ab€”¨ÀaŒ–TFôB‹ëA+:§ƒòB€ä"Á$/„¨AbJ!ñH2JáT’ÌjèŽhDŒÑáƒ:"¨HdDäŒã$¬)FæBdDK…¨‚*1$<ä‚R†„ƒÑ„¢4BðBˆ"R¨äA2¨ŒTC")„„Ad"‹!Æ2&(A¤$X)B„"†,!$"”I¢`Š d‚08 ‚–HI¢Á HÌ2Â(L¢$Š4(”R„DBòˆB„H*4ˆ/iBÁ"Dâ"!4#ŒÅ" „âÂBK4 „„a$‹DX‚B&ˆ(fA´(&QB‡R BKÂ0‰$„œJB„8$Š"ŦF1„'‚€(äĤB€®ì9Ø ¤   J²„‚B(DxªHH8(H b€$"”("DBHB"ƒ€,(¢D(B "$€òÍíJ F"N.À$€¡B(I€„(XBŠ"„‹"H€b"€*3H $ „€€‚4H" ‚ B€ÁH®I! (6„ÒD‚Á(‰4(„¡$fE/)Á„+A8„¨$&„2BxA(,"A/(¡„#ƒFˆ¤!(&„–$È€DøUAƒrAˆ(bB¯(8H(ŠŒr$„$ò¨6€¦%JaB´(ì‚!ã‚ÁQ‰âA,´$¦*ä,±D¢.,J"´„dFB"È(à‚ÂA‹(J¨AH(èBŽ2‰ˆ"4D&¤(H""‡„O”(J H*¦„Fè(¡$( ÂŒf„4(Š7T(I!„!d„HDŸ„‚*‚ìH¸€è‚JqI("ˆ"àH¹("Œ$"„’D JðA(‹š+A€H€‚2D(Ïi€’4(K€„i(%hˆ#³’8rJhIâA¤aFðA(ôiH ‚8r+ˆ+!‰¤$IÂ$AhAðÁ(tA°h"”ˆ#³‚¸hhI’$IŒ>2B"XA.$CH !“AŸ„H"(°Â¹ ‚>$I„B"tIBI$‚"±‚9(H àB$"„YôI(BR+˜# $"KbA(/WJH„„&¤%82H:¤BB "‚2„b€%Œ6TF(¤" "‚Dj‚**‚DÈ€$&I©"(@Š´H‚¤bBh(((J‚„$*Ä™C  €‚@„& BJ!"H€ Bh D2H€„D „„$H€B(ïB8BH.BèDb*.Ä"hH‰‚Ä((XAJ£XÀjBˆ""‰¤B‹‚IH&bH"Ia„ÊA¨´@$!L‰¬c‰¨A€ˆB(ÊJJÊSS J"$!Õ(…6¤.HN(I&$B¨"I„•J¨BHÁbÀH* "&ˆÂDƒHh‰ÃLHJÁxŠ mH( aC*(‰‰¤$0("R*,J„*ø¤'BHHD"€‚! C„"Fˆ‚Š4D$( "$’HH*"HR‚A"€‚@ˆJ‚¤"B âä<áH $¡B €H B…" DA° "ÊB€„$2H(Dƒ€„$ˆ"€BNHR€"8H"H"B€¨! "*ŒbB€B(€€dB€( "€$" ÈB¬?½"ZBD(hÂBB*‚ !!R2( B"`„H€B(ˆJH((€H€ €ˆBЮC!dH("(‰€„!*À$D "$ˆ€ÀD‚H" (ˆ ü  *„@€‚HHJ‚ ¨ÄH(J€‚DB€$‚(„ $$"BJ°Œ* €€¡!H(ˆ€B ‚€À(HB€B@”(("HJ(ÀムB RDA ‚4d8B€Œ"*aƒ*$¤„Br°Š( 2dBB j¤& B ˆ¬"HK&"€"Bd„"„HJ¢"Pˆ"*"‚„$ˆ%‚ôù‚€“8Z!%TD ,J‚¢"Gƒ’H bnh„# ÒKThOD*@¨"j$`„.èƒ'‚€¤…ND°„!$*¢&"B€J¢æ"â(š¥Àòc‰ D„¡DXz‚‚¢2¢AXI!H®hJ¢$¤X’8I* "L„¤bbŒˆ@J„(eE€”$""Á(‰$„$$„%$ ¤D‚J&ôAØðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀA#Ž(A`B„ÀA€8à(€&pAˆ#Ž(A`B„€ˆOß`BHŠ&€ `BHŽ‚r( ( €Bð²V‰(ÀŠ&dB(”HBŽŠ`B&„ÀA‰(à(¡&$‚ÀA‰(à¸?jPÀˆ!`BÀAŽˆ#&AXà(8`BÀA„à(Ql…/!a(D(GBDðAI…€ø’ŽD(GBDðAI…€ø’ŽD(GBD”€x’:ùPÀˆ!`BDXà(8`BDXŽˆ#&AHà(ñN¯@#a(€DxAH‚ˆ#á((AD„ ˆ#á((ADpA ˆ/q:Ž &ÀAà(Š&ÀAŽ `BHïÚü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<@ÈH0Hƒ$…!!¹¤éAÁ„"K!(I"DDHƒȈH‚Œ¡Œˆ€(!Á"D"EŒ²("âFÄHˆ DNH˜ƒ¬˜Š9²*Â$E„(H*F‡…xHH(É5³J $a„ D¸0AAPHÉb‚*´HÄH„‡ˆB„Œˆ©ˆ¤‘C!B4$"(AEhB‹B„H˜„8HŠˆ àAI‚"Hˆ&"Š!ˆ,á…!ˆy‚ B‡„ŒÄˆ ˆš"2$D€’LKBK$@`„‹LŒ¥‚ˆŠ˜„ŠèJ±4@”DMDFÈŒ!(슈ɔš1(E"‹"HHFŒ¤\HЍ˜ü7ìÈHHB  ±„Šˆ€@˜ˆˆ ˆÁ„‚AC‰R„„ˆ$!€€‘„ ""(*”HŠÁˆ…H‹¯ÆƒD(ˆ D(A€A(‹B"H„€ƒ!ˆ`CAhƒ‚ƒ%(€(¢AÀ$@ˆ„ˆ€ˆ¨Ž^3NH D ""A("DÌ‚€tX¸Hˆ¨‰‚hAL"À$AI‚ 4ˆ‚šA„ˆ‚RD"€"rHH0HJø˜oØ €€(¡‚@TDA.DÀHƒtHB€¨„ˆ !ƒB„Eˆƒ„ˆTˆ‡ˆBŒ‰!K„‰"! 2(  €à16@(B€È„(IXÄ0$" xHˆ ˆ ˆA"J→DB€ „ˆ‚Š(A@„@Š,ðrt"Rƒ‚ÆM&#Â"I‚AHA”DCa$Ÿ!$BÀ’@ÀI!‚J‰1$@‚ÂHE˜&bB@ÁH„°!„‚Á“F4"…‚„‘H((ÉÁ"Ð$Ã($&ÄHDÄÄ'pR('`"„F(N!ÀÉ0$ŒD’dbH+! (ðÎ^@„H@ˆ€THADADCˆÁ@(¦€DHIDDŒ0…„ˆ@È„„„ˆ€Ȉ@($81.Œ„Fˆ8X„OB9èL#x„dCrÊôˆ‚.Hh„Œ¥H‹Ã*¤[X†è„¨eгL¨\J¡‚I¨–Șæ8h"À¤˜*¨‚ÂË r¸„*ø$DŠáBä(¸X„¢d Nªä‰¡t ‰!„ô%ù€H,AˆA¨’&È…èD‰l„Š‚.„Fh"@$¸H„H,AŒR„(Á(CB‰ ˆ":ÈD˜L$ÂHŒŒ‚äˆ!ĈJ!(èY8â„"J@ØD¡„ƒ‚AàEÈÈ`‚Æ(%âEˆ(èH¢D*8ˆˆ„˜ŒD„L…"ˆB€¡(AA" ˜‚&(„ƒ©$àŒ! }7 h@ˆ!`J CHl‚`D ¡H&¨ ˆFˆRHŠ&Däˆ"!$J”(„L(…8D`… ¡‚K*DV€„ „(j˜B£‡@ˆ„(–AÈK„@H„EH„ˆ„¸(Dd‚*A††(&”"$(!ˆ$Œ‰”H€"¢0H ˆðtU Ä`I"0$€äŠ"aDˆ"„J D ‚Œ$‘„À"Ž$€‰‚˜D0(AH Iƒ(¡(C  $H‚"ˆHàé:ö`B@‚Be1A,¢,”1EBÄD@!²rD2E ¡D1¤F0ADdB/’D$A8Zd!&!M4C+b!(N!ðH$'‘B„€„dAßæ&äT‚C„14 A*1HBFD("´Ø(!$‘J€HÀ$ˆ€¬0!H**¢HAÀDˆÂ0L¸"6‚"ŒŒ†!¤-XHÍH,5»!‰"3L@r1Cj!(’aMHE‚F ‡BÅ.Hk‘c$D+B‘d‰8$#)”!!TJâ–ŠD'…"!ª´O(ŽN"‹‚¨$"dRV(¥1H„£!„Õ„ôÞõA!XBD&*n(ÁH(„4€H!!D€’D"pHˆH„DR  ‚D€…)ƒ@ˆ\9RÈDŒ6,KA IOa„€B‚„€B„€ J¤Jd(!‚hÂ$¨G*U$ Cè"(J„ˆÊ4((TÏ_.4„#XDj±(¢AdK˜,!áAúDM(ȉäVšJ‚¡r§ÄÍR㇒*¡ËJË*Á4‰IHdÈÊbÄB^$ˆ*¤A*$àB†$¬."J¹$tD²Bb¥Ž*´( jj#±‚¤H(H:fHCG„dD*äA:Ä)È"„RAAIH8À˜4B G2‚AIG!:TBH( ‚Œ‚„Œ€b„’"©D¤H£R"€„"¬(ÂH„H„HŸ JC8HBt„à‚•”"€±„…”(BItè*â„A"¥FhbŒ#DÒH¨#‚†(ƒH˜‚b ‰D(šRD !@’„! Àà!rD˜ƒ„bK!C(XB&„(ðD.)AD"Bp"¡J(&"„€2ÿØ@Á"„(D$" ‘aœ$ÄAè„ÁH(‰D(‘A(DFÀD„J€3DH“b(BF"\4©€Ä!„H„Œ E$C$‹$!*”)LUH"‘"GAÀAÁ‚$A‰ÁHI‡4$ €ÁD!HŒ(b$hBðØ; )"€¡*$!" B(‚ˆ’DƒN‚‰!6DX€.H"$Dˆ¬B(@QBB!B"¢ "2A 2B F2"(BF"ä(òAÌÓ„8„2 "â¢"A@Ù"H’‹A/”8!„H…ˆ*£b A"d‚A".HB(fE!¡$€¡BÀ"$r$h „J"‚òÞ» b‚Œ"a‡hƒƒ£að8HL$™Èd„H0B$8Á…dTJv„M!HNED$B`@”4CB$Š$Š‚"€ “ ¸A‰I’0$€"‚D("”HB•DP„D‰ÂB)‘Aˆ4H‰‚4J€(b$$¤B„„ÄhHB$P(HBðC7ЄÂU`BÀ@ j!äB¢!àBB€z4ˆ†DÐ(BHI4$ŒdJ¤$8Á&„(A¸DK"D0Á&ôH%‚A``!0(ˆn("€2BH/d?>`BA(!QÀH•„@EB`B €‰Â„(€V$B&DtH ‚BA.D#Â(EX"!€¦2"H°*”sA‘8¢8DDŒ@˜„ @$…„@*)0„ D˜ˆp""$ÄŒ€Ä(¢2$B)‚‰HÈFJ Ào󆢇92K"àƒó(ˆ&!¡T#ÏÆCó!Õ܈êRÂYK†‘*D+D•TB+T^(KLX¢ĤAFTDø„J.&*EôB"…¡$ä">$%TDK‚!O‚”äC2b0âzÖ‚†ä"$„4HH!Z GAD&HèÔAr)eH.ð!4 A$ryˆ"ˆi†Jd"!qIN˜AHB'Œm(À…Q¤öŒ!­a:ÂâU䄤D%HŠÄ(AGNJˆ"H"C”LƒzH3hBˆ!Š(nHF-H.H.±3 ‰’°A‰Q(ZÑ!³dRœ."‚¤àÂ1Cò(H‡„NIÀH$‡…(*âÆ’D‰¤"É¢q‡ˆÍdƒ2A†Å5G\¤hárD4D:Z!O&”#Ò!T!b(+æ%¨j¢$†²B‚6".BÙ†ôhh‡ôIIßµHölmŸÆô‰_ÿ²ê£"…÷5NL’ñeMŸòfLMŒÞÚ¯Ž´1ñþÏ[yˆX)Ÿ$]EoAýÒòOI«;û‘‘ìüÂKÏÕùôT:--–¬]Gù±4ßGÿúß/)¹Á¸Áä‘óttcû´UOCû”œojøçoÛ‚œü¢ë/<ö"A‰‚º’½š¿¨þˆâ¯¯­A/$æ¤òb•cÅaDöL}_…å…õXX~lßÔôh&[þù¸/Kû34OQ´|ód‡–ŸÃ÷})LÇDψýêÞG÷u<ßýýÆÚ¯…tIúIAŸÄôL^ï­ùšžk»Có”µ_éüÏ˯’µ¼ÿTlßÖúNeÉô”S߆ú”2,øÁzIúÁ$ì‘"ƈ7Lj'C*þ:$KÄ£¾„>k%oQôi%oôi/öM%o‘ôm'O9ý}&_8ý&_¾õE,O:uYèjõE(®v_„ø²Äw…ïRùa¿ÚúA¿VøaÝ­oÔÉò„Ó¯Çò¤Ó«!_¼ýY(_8}Aø¡×—…{õA¨?[ÿS(ZùAŸÞûAŸÞøaݽïôI+Ï:ý;(O8­!_üýi(_¸ùI(úûI(/ê÷Iˆ/ë}[ø¢†«A¯ê»ôjŽ«aíªëAï¶D1A°y‚rEäB2I(ˆ•xaÈA…HA‰xè(!¡HDIŠìB 8„O”ˆA¤f´xì(!‚Á$%¤8A®DÀc"ñAˆA‰JB)8RŽbŽ"ŽBBŽ2A.FÀÒ£‡¨"‰X.‚.XDH€p¨$ƒqHAŒ4ˆ¶È"“„q$HòT, dB2‰Q$X€b¨a02C"hH#¶A(Â"Ê‚DHHñ·¢xBN!)ŒiÄJB A”8B‘H‘@¨AY¤Š,"ÈU@2(O„*Dd"$H"©%Š2D‚ˆB&â"*¢È 4bHHdsÏ$ÐA "…!Q¡ 6ˆHT¡,v„M„T"(QBd2àAd‚d‚AO¸!Ê“DQI’%8A#ÄAˆ-Q„PE%¡@(±B †\Bb@ˆ"!x$pt!‚Á€VIðH$0A’àKÔ$‚8*`A¢4 ÒXd‚*‘„ „"&$*#M4(L4I"R RHXƒ(”ˆH@d²Ed„„ $.Š&$B¤b°ÍHETI…æ*ÔÑXá$æ1-(*)"#ÒB(rY&HEñÌ˪,H(‘Irx$ „؃2L$Bq2(D8D„X‚X„¿g " À!BI0B! ±HÀaALD!aD "€BAD!Ä!@<d0!!j„PI %(…޹s `„"G„ `AFHÄA(ƒB(¸X "X(C"À¨„EBJ€¨!"$C‚ÕDˆ" A@„6H¨A€È("Š5(FBðzEÀTL!JÁ(ABªuظ4”<‚h[iäD±2Nx$™Ä„ŒÃ„O„iR\¼HˆÔ±,6HŒ‰¢˜v˜…è肱¥!„v”舂܂%*¤AJâX§„Aj„n(ŠcŒ"ˆÈ*‚ŠU„*$>AxX¢"ˆH(ƒì†?ñ B‘ˆF$XD&xÂ(HI†¨C!,DÒ„"K&‚V ‚&”!ˆŽj2H F¢" 1¢ Á)ˆ*„dˆá¢ƒB ö3BÀh0HŒ¤B4ähBCª!lƒ#fqˆ¸4„LjF-ˆd…&Äæˆ‚2Á´ˆ†CHK†M*D¸$ BI8xKHƒƒ ˆ.èY†1ˆF„‹Â*¡A ê„!䈂œxsÀ"’A"€Ð@á„L B˜L DaAB‰dAŒFQIHH„ÆL"Z¡E„€JHŒ‡ƒA„ R€’„D!h0A@"S 1IB†AK(@!¡Aà Ä %ÀtÃÀQ„DŒˆ"@A’#¤DˆCA`’„AIa„ˆ‚™A€ P…‚ʲ$_Dt¡ƒ¤DBZHX‰„dðýûXƒÁ!"%(ÒB!!1Qˆ!HG„С0AD@ÄDÈER@DDHAL@ .s @xD !D!…ÈDäd!D¡D…‚ÁP!”œÔ‚A*TDHCrIœ(ƒ@( $"ô-Õ@iÀA…‡„P0AATA•ÈAKD%!AÁŽH…$–H"Aƒ!DAD€¢`ˆ ¡…(„Ü5¬€T(Ð!H"8!°¸ ADDDJD¬dJT…AAA€D$‚hT@1DI‚¡D‘H艢B€Ôi€äƒ‰BA4ˆ‚Ej$$ƒ!$@$!ÃôDƒT@DL¤,AŒ"èAÄH(€¤DAj$±A£B@”DF¤Aà$@¡F2 Ä!ƒ(A„°¡$bCD("‰â‚‚$€Â(@ €@HD¤B E€H„ !$ð‡š„(E4($!GaB¨((€R‚*B!­„…ˆY¨Pˆ "‚Rˆ@Tˆ&AIˆD@J¡€(ˆÀùÃ(…ÈU"‘Da!$‰Ý(XŒH R,›jŽF%âÒuôa1OĤ$–~H¸˜HPD„‡D‚Ìh$°QAEéBaD`VAyD$¡‚f¨ÁHƒ ÀXVHHïÿ”.AR"!IÑ‚%R)ÒR0Dä‚4$&ÊH‹„p!aAÅHN!Œ²L•lȈ(ˆÍDBBJ2ABeQfdDG\O’žQÀH€H¡Ò‰é‚qH¨FJ„Ä¡³ „N(…HX„(Ç‚„Ù‚±XцAÂH¹a(â‘L@r*é’u^ÂZP(‘‘Á(,Œr,ÈH”-Ô„QMTˆÅåD”LHFáDrD$q$dQXE¼E„“A„4HB‚"¢ðâ߀òaIZå„¥D”æÃó}ÕˆùÙÙË™iù‚‚¬Ô‰ùÙùÏHøÏO„ôOm†þíìŸÎþºwoóÿ»ÖþèˆüËÃïkû‰‰ÏHøµOH¸˜!òa©ÏÞþñxßCûô>¬6äLúAÆòI‡F/öL8Ñ´Hò„Ó…ò”Û‰òÅÚ”ò„Ò7—jmèJ÷m‰/K~Wù¤•oô­•oôé…/öí¼ö(,_8ÿ8,O8¿8òÅ[ŸÄò…“…ò¡÷—…zóMˆ?[yWø!•/ôíµoôi…/ö-µoÔYò„Ó›'O:½òÅŸ†ò­Ó„z{Aø©„ø³…?…ñ¡´+AλôèŒ+a˪oä,( †2L&˜ˆIøAˆT¨¸A(ȯ!â(UÈKH#“T‹!ŠnJAª¤‚„—†]A‹¢A„DI8O(Qˆ‚DAB8A.DÀ„CÁTA„]AAˆ€8Ž h…Šd„xÁ&9] $RB`„‹$"u&(¢!*´öHÄ@h$¤N”4ŒÅC,2Í„A€ T„G0ÁMXB"!dC*HHŠ¡!Bƒ€„ñùî ˆH"… $S$"Ì„1AÁH VL!ĉfiAA(€ÈA`P„*D!dƒDA B„DH°"@qQ:{€q!4„„RC"A@$DJDA!Q‰Bá„TR„QÄ!QT!1ˆ¥AbQF1$$A$ЂR@aCP‚-J„…ô½rx$è„J2DC¢„8œ(PŒÐ%8a€ **€©!ˆ(DTA‘B2¾ÄЂA.‚",%ÀAH–(ÂD€˜n3ÃDx4éBáD°&@”F‚RhPL@³‘!àø‚A(U‰A©Ì)BaÄFb4X†1˜-ìäY!HlC’‹Lqaq2Z(`D!DIb„Œ„ôVv0A@a„& ‚p!H€¢H•€" @D$D*E!!‡"€ # ð¡¥Â¨À"KTIF ˆ0„/D„F¤ILÈ(C qA ˆ’0$DÁ$B`L(H"hCH,x‚Lˆ(Bñ‹Ÿ°¤"Z’*t¨©-èDŠM(Fª„.È*ƒfÁF˜>A‡ŠL”6ˆH‹Bâ‹2ŽàƒÖ‚)Tnˆ!dR‹°(‘H"ˆƒAH!¤-C! „Jˆ6B ,F:¤œ*±8¢B€$Á.² €(ðŒQPH" à‚`¢H òDƒèDb@ˆA(B(IFP€”)@ `Ah!B8A€(!Ä"‚ÂÐj #E(òJNÀ*,‚" ¡i²Œ„‚4HKR…„Ù¤‚H˜Œ&˜HÈ2…"‹âˆ$4ˆ2ŒÉä‚ÑH$¡B„ƒ<„°T„" ‹¤ bBê‚!ˆƒ¨ABx,-ˆhÈ!„…"€AØA¨Ap†&†A(B €Q!@A4’EA-@?ôEáB@"„(…#"PAˆ”D€k8À!àd B#\2b(Q@"A8P@ˆ(Cä‘I BÁˆˆ"0…@a0@$‚#2,(!@$°8ž‚PŠ ¡(Ð)! HBBAHBCFXÁA$‚D™„B„„4@AB#ADD0R@$å(¡ÓS &ˆ2(„$E ‡…!•A8"ÙA’(œBAH !"H°€@A@„BM"T!#‚ AAA! 1Dd `‚‘P!D„e„@D"‡„&•A(„!@(ƒ˜!"ÆA1Dˆˆ VA&0A!'Š!Œ!˜ |1ûP@AQ‚FȈ"ˆ‰ £²Ô @DŒ`"U$C€A±Tc!, @„ƒ!‚'D)Õy(%0BN"A´A‰bÈ(¡¤CHH„ŠAA  #QR$EDdÀ@R$¬7Û!B"DN"(©¢"(€¤"6&"* € """( !–$„J´ˆKE TAJ„ш$ð—K€B@4ˆ!22 (F"$ "(@ ‚XˆŠ (CDD$”„FDBRˆÐÄ:Ú„$(%JZ2&GDÈ‘„B B’‰*B88‰¼ˆ’%~(G„”A*0A&¤‚²"ȉ´„™‚a!N!BC‚‚MA<é!1¡!DOA1AQ§ˆc9)D?éGÁ*‡‚‚:A˜8´‡()aD,!°!Q!h‡‚a#A""!fˆÂ8ÐD”M$K‚TA01°"„$(!ª>GÂg`DNNFbA ¤$ J?Šb&:(£'„…SŒFHÌ%A(ñ"8½X2…KA.X%x(È! !aA*+p!¸!Á„QÁh@H¤BKAhb!ER%*"‚xQ”FT…”šñ‚k¯ô ?†öjh§’/¶T§¯´ôhi¯4üÃØ޵ø’"*òcãÿ?¯þÌÅÿï×òGd_ÖþîÌ÷Ø×ÃÏe~¬³ñ2]6Gr:úÁaOB¨ˆš»Ñý™¸úþ„…Ž)âè÷¤ªOLÿ¤…왚é[³±Cüñ÷O(þÔŠ/Jù±4_bºäýÂÁ–¡DNÁO|µSýÔœ¨ùœ+±KÝÎÂOMõBÒ#Ö¡ôik¶Ò*tJØ«ôJe¦ôÊÚŸÿy>oKú/äŽÿñú¯ÝþôÆãö)ÅÏÖöå×ßíÙÌÓÍõçåÚˆ±q3õ&${ŽáF³•éèþÁ˜Ÿï¨‰Cò-%O¢È~[ª[Ê_»”­ˆûdõÓñOoù±”šù²—có¥÷O}üÄ„eÔUôDEOlüVTMý–žÏɼVµÒù’’žÔkUmGñbi¶ö+*4T:?4ôCB?6î<¿Òöw¾okó22nÁþóéßÎþýUgQOÔöíÍÏO}½ÿDOÿÄü¿6±qó4Bò%&¯~_Ç«›ŠèŒþøù½áü¥-ïSr$õ…¤_^ödõþá[«¿_鹑¹‘ñ15O4ÿÖ£Îø²¶O(èkó"¡îÃ,ø‘“'NA|Ñá5ý‚دˆ¼ÊöDÂ+˜+‰/Låõ2ˆ¼þhi?¤Ò»tBÛ2ôBB?´öêÁ/.ýq4Oi™B¯ì.ÿéìßO~MÝÌômmßÜÿݼíEïôôí¾{¿‘ñsò$5o¶ñîG²¤«¹ºýùùŸÿÑä_[˜.%Uô¥åOæ_ÿäµ_J¿•üŽØu_wåoíKû–²O)ékù3/9¿Óü‡…%ÁESôÁÓ<å-¹ÒùÚŠ-RÎÒ+Ý/-ý_ 'C.A¯CÒ4NaãÑìÞ–ÌŽsß„ø„2A¬ôÅLøá'AÆLxsìDx²ÄįB’Ä£‰>M•³Xq/tiõA—V/‘öm!o‘öi#O¸ÿk&O8ÿ*"_¼õS(ß8}Aø©÷ß„ò¡T_„øºÖw…¯røA¿~ùA¿òøaý¦´(ó…ÓEó„Ó‹1_¼ýq(ß8}aü¡——ÇzñaŒ?[}Sø±µoôùµoôù•/ö¡oSöM#Ozß/ò¤óï!òåŸ?§ò¥“?¥ô¡—7…zñAÈ?{øS?j¼ôêÞ+A¯.¼ö΢kAÏ7 b**nBc¤‚B"paè´(ŠÄ’IÄK'¡O(±„!(CaB@$"ñA¨”ˆ€ "82Ž"I!´„!¤8A®R˜B„؈ˆ#á(!R‚B(VdJL4›,x„a$A$‰D JˆD(d„"B`B@T(MA $C (UBB˜@ÕT"L‘aqe$pT$@ìX¯gFHA8"`AA ÄA B&D$Q@!è1ADA" BA€1$@!D `HAâBD€È[ƒA2!$„"*!BDAD@’E„!D( Ä!@D…DR€Ñ"#%"‰B-¡rè‰ÆA€h‚AA@’Iè!A "2HdB€*ˆ$AŒ”A"$ˆDH¨HˆÅ0„8‰„à‚‚0€Ÿ±:Ó¤G4$€D&d‚T&2c;h!`IG!”$I±AAÙ¤$"(JL&!BEl‚$FÔA*AbŒˆÄ©TÀ$(‰RH# ¡!îÏ $@ADA…„B„L !EˆDD!@Fˆà"$p!‹€‚.ù³ ˆB‚€ÁH"0ˆ ’À(Œ™(JpA `((àˆN*D(d„$`(0’&‚(OïCåF‚Ôa”"(ƒ,¥‚(A.LDAi"ƒ´)‚Tˆ.ôJ"ÈÁ ´"‹(H–$ñ„x8XV¤‰…È…I&¡A§‚Aˆ‰"dD'Š ˆXŒ¥"‘J‚¨R2xŠ„„‹[EHˆ ˆ CÑ$‰D¨Aˆ&ÀA"†ˆbD@„¡‚JAI²Ø‹HЄ„(À!¤ B"0#ëo `BB‰t¸¤$¡((A0HI¢H„ BK$‰ .‹AX†È"ƒ‚‚R6ˆ($AÈHA ¬†É!(ˆ:H(¢‰€1DfˆHª¢” RJ(¡*ÃÌ)„p!Hj!€!+!AX„D,P !%ˆ4 4D  ‰a@ØBXA$D!ŠÄB€,a%…" T*@‚HT!@DDSˆ(ˆˆA)D”„A@ A$ !Àvò …a`‚¡%b(cBRA…ÄA…„$Ð X„D„ˆ†RA$D-B`(DB¤!0BB !ág&R$$@A„@A AÆQÀA8À„BP£AHA@ `A`pX!q A0ÄHC‘‰Ả„H‘H%XER„A°a"ŒQB“DƒA–B¡QC¡!µ5TACÔAÁQADA0DD†A!LXBD1BÀ‚‚t®C’)LR)"X(5À(-„à‚@Z‚ B0AD@h hAVAa¨@T„D”˜@…a!ƒDT„!ÄDLB2ST!Ä„(Q!‡$@Á*„@!„¸T˜HPAHÄ‚((@!l!ðDEHÁHŒ‘ABB¤ð>#VH ,Ea$a4+,Ð$U" „‚TA€@!‚A€ˆ\B„L!B„H8ðT(Có2tRRJD˜d„€P@ˆB ”H„„‰H@H„H€D‚‰‚œ‚H€²*„(††R(*â($"$Ï‹HM¦Q€ a…(` &´H"¤b BÈX‚t((˜( XH„H‰”‚… …˜!‰r(±$©(àBÂH "Ì1VñDA(K!J%R$ƒá!I%¥B‹e™‘AŒ‚!a‰aÐŒH$¸å¨Q-HŽ“œ‹8‡DY˜‘IHÂAEA)ÁI£b„(ŠA†¢È DBø™|€ñ|™Õˆq9ÒåaôH‡D!A˜*œc2#Cè$"¢&ð!($J´Iㄲ1hA";…$hCF\IÔHTH‰Äˆ„DH…Æ…ÒDAÄH†Dt!ÊAÁ¢S„/BSB.$-H>Œm$)RH¯Ò5aL6*LQB”('¤#"±!Õ©T¦#Y¨…ºKáuHâ¸NHPR0A‘BÝCu8ÄŒ!”D…Ô!„Dt‘œH%ÄN¯Aq(èB„)˜C¢(@‚Ô›OT÷}v¿çµxôLQŸ¤÷=:ϧõHRQõG…ñQ5Oòól5_‡÷xBNå'Ò›D„öjk>YÕ?)íŽwù(ßÃóx˜˜øÌeË¢Ë›Ž”Üéœí¹ÅüÜäÔ•ø„Û™ŒüÉɯlýÃûˈ¸Áät„ô—“ŽÂWìeòGÃKØر,òc*¯z,Üø—–ž%/æ¦æONìŒTŽ¡o¤ölNcÉUOÆõV\ߥõSYNH¯ÇÒËôKI7%ï¥ñ9¡Q_ó*z/c÷{y'K"ÏôAK¶ò*1‹7þ²¿­üSZ¥7ŸÃ÷ݘüi,®´‰žÄŸ¼ØìIüÁÝOôLŒwT_Xø„™žÌÏœüÉÊo½üÛˆŽØüHL_DØ|¹“ù’”cÑTôÍŽo½ø,.#¯ÂR•ü¬#+;_"².ænùžÚ/%ôHJnf/ÄÔÜGóU~ÿ×÷rsýŸ%Ô›÷zyŸgõIGK_ÅáAaA_Ñåó=e×õXýûG_TôDEOÔ´I¶!ö9™žùߌµõQqn)ßÃýŒŒöm¼®„KˆŸI¼ÁüÉÑÏœíÜô[H“Ôø…ŒOYøÉÉÈüÉùψü‰ŠøÅDÄx(øCˆO)Q"/$üÃÃoéÓûò,éïWò,,ßòú¸‘/9²döjê/¯÷ÎJ«D¤„öj·â=Dÿá÷}g•™uCúyk”õ_HïÕÕÉñKOA!ñ+;/¶÷~yßÇòAEÏTôDMÿ†¶aòAXŸë=ü[Ÿ…õYI–÷ÙˆŸØül,K™K™Ž”ÚüÑÙÞÍý]HTTœŸ˜¹˜ùÍ›ŒÏœýÙˆ¸è|Hé|ùŸ˜âHyÄDÏÜü͜ϱò/,Ÿ†VÑß‚òˆ_#û#$.j«¾ب$ô*hNB¿- /Cò(a¯CÒ46Ö,ñ„sפO(ôÁ:A¬áÂñ¡'AÆÌxs¬‚'CNÁ¯CÒ¼Zä¾ÔüÌsÕø„2IñÅ:IøÁNî!qaìDxsØAx²ÄÁ¯[Ò6<~ÁaÁ8wÉø„2ðÁ:A¬î±ta¬‚7Çx2¤Â¯C²„<Jº^âÔ:ã-·oôk7o•tk÷qÿ2òMßò„[Û$O9•,_ýõe(ÿxuAü£WÄzóAŒ?S|Sú!•¯ô齯5ô)¯öM¹oÔò„ÓÛ$O»,_¼ùIh_¹yIø¡ŸŸ„ô¡Ÿ„ü²Œ¿…áJøSInøRQÎøi˨oÕ´Hò‡Ó‹!o8½òÅZ?´öŒ’·Õ/jwMý¢6ßÔø²„wµ.„¯!ô蔯)´(øjÏDúVC‡d€‚äB4XB„ÁAHŒŒ‚8Ž„À(À(ŠrDhB€…øAˆ”ˆˆˆ8Ž‚‚DŽ"A¦ tAØ”ˆ!€<Ž&…¤(‡D&L4@„AŒAÁF"AÂB" Q€1!4‰qABxAŠˆÄB D(@¢AB B„€„ß/Ž@„‰(Aq#H&ÂD…!R!”!3`€€ˆ‘@(H„°@€Q!B$@H@Ù1^Q[‘âæ´A¶q¥3.záµQ¡>!v_Bxô%…ª¾!g>±ºù‰)ߥ1HŸ®ù{¿”û—:Ogó%ÏÅó##Kd7¶ƒöwEODþç…gLoeõµoi¥So$qAñV2_·bæd÷4†’"_öuÖQ²"ö#(ªBh¿7•rzä%+CÅbj÷"Ê“ÙöAanAZ$U&¡FJôaa5:³á´A´ñ1%OCötDWTM%_X»”ûK_KÿÔÉŸ„åñ14ÏÔµñíÿ÷´¾–+gQÿÇ÷<'Bâ2ö+lÏ’á:üáæOfó_i¹Vá%õAbô2uw+WO&âb²$ñ21ZG4Yñrq¯…tA¨A27Q+'/!¥D#´BòRR:³"ö´zq~a"WA1!!.az÷q8:ƒ#ã±³!ò1ñoSr$õ!¡ž‘ž²aþññË]¡e’ò(ˆÿxùô„?ï+ùGá?1¥U='KÔSôDD¾¢ü•7_SóVÆOOóVRA/dòqq/gçeõRwÆM62/#ñGQN7ñRÙ¯•öH(‚öhr5¶r·bµR$+U+u#aÂSÈÙ~q'DAñAAnaj·a£3>aNA2CóuEOBR˜™_QtDñ¤µ_‰­QWòmlüø—ôO.»¶éañí;cFäòI,Eõ¥æO\ø'u_g³¶þR'$ô"Q'÷vbOfáEó6'bObsýZmctKX‰‚ö(xNS&³2vRòR+E'&/1²R'Cô:$O46ì8uMè(ôÁ*A¬ÁîqtaÌ„7‡LxÄůSòÁ£ÁáçMAÍŽsׄO(’$¬Ò%òÅîqxaœ7Ïø2%\¾:Ò<áãÑ–LŽsׄŽ2A¬S„¬îy2xaŒxs¼!x„ü:$I<èãÁ…3WQ/õ)%/tiõqÝ!oôi!O<µò¤S‰òÅ[„ò…„zuAø¡„ù¢„?…áBýSAJüIBüaÉúI‹&o8½Hò†Ó‰òÇ„òÌÄ/nóEMî_Äþ²Ä¥áBüRSJþRAÏBüScͤôL6O8õ~6O8õ6_¬ñW?O,ñS;î?•dn„ú:Ö?…ô2–+a¯c¹Rô:–+aï'»ôv) ‚(A.$„"x2ä(!(‚¡#Š6.d€¤‚ðAMA‹€I82O(‚*$IäB"Á$@ÄÂA‡D`Dˆ+Ž€$‚dBÀnã‡èÁ È@€!ÈA’EDCœ(0HDBDB$AA„!&„…X"A"DÀ"@B(€B‚%pñ›†"AFHV‚‰4QŒ!*!„ P$*„š$„@D!"!@ ‚!$ŒãZ‰Qˆ" !‘bS‚!A„Œ‘‰!Q¢ƒ*ˆ"4%’"„@‚Å(‹4!#„¤%¢!,AÌ Ò(„$Ò‚`…,Ñ(ôÖÉ$SH„8A "(À" (P (ÑB"DЂ! B"HCá‚Aƒ1AƒA"%%„"­A"„P„ …„9-H€Ò¡2™(G@¶! ‚ÁT1ÁB1Ä!Í„žI¤$G‚ð"ˆ(D¡ƒq’¡)ÀR(xdX‚^’V¢LDBHL‰òXB ÉCª”Œ¡TR¤'B/)A‘*€€ "B!À( ’D„"„$¨€@X(@ˆ$Bˆ„|=4O‡ò=55ßá1.¡·—’áñ(.8:±(²ñ8>(8+!2?¥¡#/£ó8(¯£ñ>Ïãó(ˆ§/¡ãƒó88¯'ö2‡‚/!¡uOÇô:¯CÅ9.<Í.uÚ›ãaÁ×Á߃ò99Ãó44K!*Ò1Áó1‡ÑË"Bò)5‘ÑX±4âBsø‹Ârü)’q=ø4$:¡_“³ñ4$]²(Â!9‹›Œ£2ȃ¡2.&º(s:È+1.2¯ƒã"ó.M<ãø((¢³:ò(:¯ƒæ&÷ZH¤ñHæ·VóOÉßÁó%=¯ñS§Ÿñ1Ï‘ò-—›3×ÅOB£2‚›!Óó,‰ÿCÒÝÒñ8-›2Ÿ‚ó-9Yñ16ÙÁñÁßÇbC>4]_ƒÒÑó<%ÏSú;(’Ÿrñ(9ŒÑˆòŒ±шñ28+!?§¡"/#£"¯#³(ò,ïC¸ò((.(‚Ñ"óhx¯§×ˆò‹T/¤õ4,¥ÆŸCr5Ó>±1ORr5éãÃáA²$¢#Ÿñ(9ÏR²r!ý,)ÏR³!ò18ŸÁqi‘“ù99…‘%_Rñ"+26ú"8ãñ$6O‚Bú:b¯‡öxx¥ÔŠôXJ¯å¶ft 'Cô:$MA£Ñ4>.aÁ8÷MŽ2IñÁ:EøÁŒñáž'ÆŒxsìx2Ôü$Ï<áãÁAÉá8÷MŽA¬“¬ñáž'ƒÆ*xsìx2ôÁ¯CòÁ£á>V,8wMê(Ó$ñÁ:M2¬Áî9ƈ7Ç+'C+Á¯A’Ê#‘êëA|8"\ùIßsñiŸSñaßóM!O9•)Ox•(_¾ñA(_8qQü¡WÄ{óEŒ?SxWø!…¯õ)¥oô)/ö-µoô-%O8ÕMò„SÏBòÕ_Äò„ò­„êñAˆ¯ÃxSéÂøABúIBøiÉú>A‹"Ï9•(O9•(_¬ñA(O(qaèjseèjóaˆ/CzSø(„+aF¸Rõ(„+qÏFú{ÿ)€!Â2A. €„ÂA*‚8Ž"àB((D&¨"„4(ˆ#á( "€‚dB "ðA(TˆÀ(AŒ‚ø(Ž(hÁ&.8Z‚‘@T„2°)*A Q„„Á"(`‚ƒ ‡"„" @$à$8H$/> ŠHD”A1€1!‰‚“„p(HA`@ ‰!’!0(€  „€-HP]D²”L A&’"!AItH`"HAƒÄ&(„0$‘$ @%h!`#@$äB*t"¨A£ôŠDA(AˆA„€"(€„€!„d@ˆ  Ãa³ChÅD("Q!"„D2! A…H€ 5HAAB&bH0H$!B„*!"C$dB ²d‚H#1Cñýó €@@ !(@„0 Á1@$ @b3£ˆ‚‚‚ˆ€@ñ­®Çß$á‚ÄôH:QM{,ù(SC8$Ž’7Ç„oOt¤êèÒ~ÈÁgO<±(ôˆôÉ:à¸×dø*UŠaB+˜Ç%xñÆUÇ*.AO~Øü:EÆcÃ(aŸ¨3DŽ{Mš/R%hB+˜Ç%xñæRw„ÊI(MÁ©Óü:DÆâÂñˆB¨2TOØ=:_”2ZA'‹D'S‰t3üÒ"_ˆÒ$èW,¾òE¬#qAÈ$®Aôá_”:ZIx±H|2•È?ÃøR²UˆÒ$éÖ,á¶xe¼rAÈ$®AôÁ:_”¸Z’„'‹Ä'S‰ü3Œ/%[…(M’ŽaÍŽaë¡_Ä2„LòáD¬óDˆ«%I8‹Ä'C‰üVú ˆˆˆ ‚­ã @@A@!`ŒLBA@$€ PH‚€‚‚@$(‚ðõÈI€IŒFš"H& #"Qp¡!!#  Dd„0( ˆc`$‚`‚ˆ„ÀXB„t(=ØD@A!@Œ"ÀD""! F(!ÀH@H*Ï(pA ""&˜b (A‰Bbˆ@ˆ",@D@ˆbˆ€‚D)ˆ"(¨„†ÄCG˜”@A`AÄA@„@¥0$'¡@0(AB!@(Á6(‚ò¯·@h„@„A  @CÁ$`!€„!„"@‚ì9/H!AA„@DXE"ƒ…E±4eHB@Œ-#À""($°ƒòeè„„Á€* A1(A’€!!"¹!q ÀÑóHLQH@„A Aˆ&D ƒ²Á!"@Á-@˜(„*!……"B$"$@("@8€°òô=@È…„’â"0("I!b‚(0h…%€€ *!! "(,$àÂ9ï A !1HQ„0!„ A %šD!M(#„$ƒA $…b¡@*€&À"€2#!*"²:ÄQ‘@!¡áAAœ˜TP`H%B"Q!pP(@!…(!,€a"$„ƒ‘Q8@„A€A€(DD€B*"°""( "( *" #€(*"¢"@(„_½ÀD@€€AŒ!‚ " "(€""(" ‚¡„‰b‚€ "$L3uq”@„AI€ÁEBÁ(`B(DDH(²2(ƒ‚‘""(O"…ØÂ(…(r˜ … …*󤄠*"À1!*!B(“2'‰Ã8_®Gˆ±ÁÄ„‘A™‚RˆŒ‘Cå‚E4 á"2&2""â‚’"$*B(Â@(¢"+"!#’"‚‚Bè"¡"ƒAÈ">QA! ÀPˆKK0OƒÃ($äB‚B„¢!ƒQ(ƒ‘-11+""-gÒÐ’r(i„‡!2Šb!¤B ‹(,&‰‚„)#‚a#âmÕô1Yáaчё}ôDœ±ñAó!¤óS1\²ò,¹GÊ1Ò„ÒQÓEñ'ÏCòc**s3{Tw‰ó+;‚ú(Ÿ’ò3*±*ñ¨§*ŒÓ.1¥Òˆó(b"„²"c!"")ó!*ø8(.(/#±³8a!++2Oñ:‹3¯Ã3'TÕ\±!±áQÑDQÈ•\‰[×AOó<$ŸBÑ•ñ<$Ÿ²(ó¥´œQÅñ14M’S(¿Âò4"+3.#?Br»3ó(3¿ƒÂ!Ÿ‚â2ò;8.".*«›…RСӂs(x2ú(:>2:3"$>".1³Á(‹""£#«2/!¡2+'¡‚ó2(?åGñÇÑŸsyٙщñÛ×ÅOAÑÄqy¸ó…ï‘r$})UÏ“ñ5<Áú©5Ç‘ÁÁò3*3æ¡!/#¢=‡Á?1²(ú;!‹"•¹ò;+¯ƒÓ(«:g¡Ñ*шñ*ê¢ñ{ò:¯‚ó8*¡ò(ª¿“b‚‹"¢Á­¯Óªò­-¯‚ã’6Fœøß‘ñ…yüÏQ±qìAaAGQMMÝ—BÕù$(ÕUIÝ_“r4í›;ÁÒsô8+/“ò86k2>"+#3yñ#»3.)y!Hø(+¿#Óˆ±¢k!/Á)qr2â¡ÒŠò"'!ò88¯¢s:ø:8¥¹)Òˆâ‚b!‡!¥ø:8§¡…:/!r:sö'Cô:$Ï4aãá–O8÷MŽ2A_¬S„¬Aôáž'AÆLxsìCx2äSü:%Ï<áïòaÍO8÷MŽ2M¬Ó¤ñÁî92Æxs¼3x2Ôü:$o<-áë!-aÉá8÷MŽ2IñÁ:M¬á‚ñá¾#qä7Ç*x2¤Â¯C’Ì£>¬=!…¯‘t)õA—R¯ÖòEÝ1O8•-Ox•,_¼ñE(_øqEü©ÄŸêñAŒ¯ÃxSü8Œ¿Ñö¸„¯ô„¿‘¶úI‹3߸ÕHó†S‰óÅ–ó„„ñ¨6”®„ø:„?…âCøQKúAÃøqË¡oõ8"O¸õ*2O8Õ*óå?¤ó„?¤áêqCù¨>„ú2Ž7…¯bøH¯b¸ô*†+aí¢oôûX`A@„2&„”€*82Ž€2$&(ðA(@ˆ8Ž&"((A&"paÈA‰(ˆ#á(! !(CaBƒÁÓÓ•OØ‚DG„DDHDÑI8"](Y˜D(‰AJ„bB&,a‚)ƒ‚à"…*,…‚"!)'P‚Ñ7‡ÄD‚ŒAAD‘1@"8p‘À"„#"À€a‚Œ€A‚bˆ#Â( ƒA „"(P($+!._c̉$‚$Q€Y!H„1A@$E8„È8$ D´!'BAŒ$Š5!‰R"‚&&’A ®BŒÄ‚¨HR$N!«ƒTE "dA(L„’PHHp(4!H%A("Q…,’($ŒX„+TH!B‰d*BJBÁ,A(ˆA˜ÈÚƒÄj”E@G$ ‹FJQIT"¸M5`‰D#”)bŒ1"%DBHÁÏEb#D"r‘8H$& -T1 BÁŒR†ŒTH†c¡aˆÀH¼Á"ðùqH!$ÁD "(@Aˆ*T`B  ’D„ ( B1H ‚"Hü3O ŠF'†@‰„ 8((D@€(`ˆ"B(€H$C  B @ù“†$A"CÓBgD°$ƒÈDDA0DHB¢B„†â…‚2D"((2‰HÊH‚è4!P‚@ˆ±A"§„&"¥Šä‚¬#E€•"¤!°‚˜¢-èb!Q‰É4$ôD(0HD@2Œt$ƒ`A‰"+A@ð(0‚"$B$ AŒÐ"TH°(A2ˆ$ƒ‚$Á‚`!,O¶‰ !J¨BE(¢ „fˆ$ƒ\‚IFˆ(@ b„V@ÀBƒ‚ƒ  „"*H g!"‚#,3Ø8”@A1Dœ‚$HHA˜DD‰DE …QHÄh$ƒ8p"ƒ€D€H(FˆŒÏ€BƒA(bAI”D€…A‘@$T„‘€ÄH" *I„B"€‚ƒÀÕÁD”a”`¨!CaA”Dƒ$DAXŒ@X±XÃ" #ÂX „LB¸ˆ¢!ApD „( àˆA›`¶ "€D„À$Á€G@Â.!€ÑA4A`Ab A(ƒ¨„ˆ1,(H##!220(VŠJ‚B$@BN TÀA"ÅÁ`‚A"(d‚@„dL8M4ЂÁ$€@(„T„IËH€D$¢áD¤'DLD¨T¥‡„à„R("1ð¿v°AaÁ°0%DE@‰APH!ÄEGAAC!FA‰ÉH`†BHA!"$2‚v‚ä"‚D˜H…ˆ=‚°b˜Ú3…ÓˆòR7!(1h""ŒDœDPDU,DUx$ÇAy"‚„aQ(F4R$ƒ¥BCÃ$Ž".”@„*„ˆ„„d(‹B(HˆD‡!„ÓA@¨! AaE…TADAÄYAÈ`B Hd0$ƒ(*¥$Œ‘HD"IdÁA`BB"d"‰¢hŒA !"ì5ƒHBBFB@„ $ $HHDHD’„#¤D„JH *@€„$  @JôÎÄ`BH„ÄH€€hJB $B""ÐH$B „€AÈH€D €Ü2×L“DE$!hGA…ü(HÅ”PDDDQDEhF|”‰ˆ(á„âŒ"äÁDAU8d„fCv´däAÔD(DÂ5(m$M$(Ì2F‚†AÈH6ÈDOBrFR(0,Ïe!Ä$IRFMH"XB‰‚…Xˆ2ˆŒd’(Ï8ÏÒñQ_D¤1E±Q÷%$†ÔÜóuDÇAFüD_”Õ\ôLA—ÄOBâRüE•ø44OõL×ÁHMQŸ…öe,*ÓTñAÏAúæ*MÔ™ô^–<Õá(Q$¬S„_¬Aúáž#qaŒxsLx2”¯Aš†£‘ÂëA-îSÏE¯ôiE¯uiõZaÝ!oÕÔóÄ_™ó”‰óÕ_„óÕ_†ñå†ßþ÷aˆÿ×þsß×þ:QßWþAŸUüqßþuŸ÷Œw›6O9»(óÅÿ†ó•„ñ¡„ŸâñAȯËúSHÏÃøAOøAGøqË¥ïQµxóŽW‹6ox8_íõA8o©õA8¾Ö„.V„ø²Ä?¥áKøxKøRXCøxÉú6Hò ‚(A.$€„ÄAˆ#á((CbBðAHBˆ#é(! ¢(A.$BHB„„ˆ'‰Ž€dBÜÓGd‡H‰HG"A@—FD€”E„Ia„UËBŒ‘¤CrAŒ‚B¨B#á„B8T„B¡( ¡ƒ…„šTD/„²Œ* ‹1„"(BÏk ªÙIˆhA`’D@”!H…4AAH•LXBD8ˆ`A˜D"„ "H…²Ha@¡8ˆ(ƒ¥!IèBp¢ˆ" „2„Ò¹8ü-J°1aP$ˆ,J¹,AÄ`BD±H(TI+A(pˆ¸­&ƒAbR „%¥XA5(ÌЇÒ$ÑAÂ($OE‘ƒ•„!rD F&Áˆ!°D˜h_š§Z DQ(@aLBЄÔ$A±A#1)0#‰‘hŒ%€A¡ÄAJ$á(4#(Ä()ˆ”#D¬&BxÒA!ˆA!XÄ!:O0SW$€¸c(,¶ `B!2HZ‡D)„Ã…¤'B"cBdIÜ"…1JB‹†‘(Í(O!Á&DFô*“¬Ñ„1!„AV‚!xX"H‹A‹1,µ{ †ÄB@!A"@& $„HD„‚TIP¡@h,ÀAŠt„‚Ia.’D! Ñ!D %DˆF„G„çãd„LM ‘ÈI4("hA%ˆBXˆE‘h(„$ŒTh‚DŒ2(AhL¢XÀÀM`A„A($†Š„´Á$¯üH‰’A/H("LA$Li„A%1ÀH0‰ä‚±(CÄ‚ ÉF+AB…(QˆI–2ª"é¦ÁDJ„Œ0H ƒ±Rì%F4H‘$„±$‘DÔ4!  HÐ8…!ùHA)…"ƒ†8‚AE(„4BX(Q, !x‹’I†"D‡!„`! AôiðLB ¨°ˆ8@¤ACŒdÄŽ,¨ƒd (#A„1H‰‚”(C N8I4ˆ‰« s4-d¤„D‚I1ˆJ‰!(%ÈÑÓHJ¤A@„4$!D°RH$H@ÁYBa@b,”D I˜$—C‚3)/1 ‚$€H´AAÈ0)ˆ'‚Jqƒ’HºFD`„$‹@F 0Q… $@‰A4 Q8pƒ˜’€Q£(`‰€¬;ˆ!)ÔD$!#‚B*À‹D„8ABÀ‘FÑ€T!C@H(#:‘@'(’`„à!)8"(˜’‚HOCD„„HÈHAAEHHÀIƒÄ@”„„ˆ‚1XÄA•ˆaAN‰!FFÂI„†),™4HÐñH,ƒÚ¨A!¼DZ¨A‰!ñXHd)AÄC¤@ #@ €z!%"1B…‚$$ŒTDqC‘ˆ+‚HDDCÄ@DtR‚0A@ 0Â%b(>) Á(BƒÄX•˜…QD'A!EDâ$1 )‘+AR‚)ÁF)!B§`,…A!…ŽŠ„$‚(A‰ -À€ì2h%,d¢9A…DAAÀHa@‘@ˆA Q!ˆ„)Hd£1Š…$$ŒA†ADBGÄŠXF0„ ÁŠïG•O”ZYHXJ$M‘F2I ,’A$°H)A` ƒA‚FQ¡€AP‚#È-TÃADA”…DB„"‚‚MqxH€‚B $€!¢A „¡#‘ x(€ˆŠŒB(! "€Š H!ˆ „$°"((B(O2AKE"&A€‚€ *(JB((,(‚€€("€I‚h(€B@@82JÇ"XÁ³AÄLtÜJAvòT-#ñ#AfAh%É/qAa4qƒa€Áˆ$Šk„ a‚˜†+ÁG˜(!ÐZ²h$†¢‹D¢(„GIE4bv’8ƒ#á-BòÍxIô\(#…$aÄK.DI4%FtBT:£”c0HB(-"B %*AòRÊ'‚/™BâTñ1BAÒ„,!x:Á†V¡-„©½ØäA…„ÔAâ(JÄ¢†*(¨˜MÉcN=ƒsRxTñHFa…¨!Àa@.X/$”AX¬%qH²J!qBˆŒ"¨(Œä!.„$IxX”)84D‚…Â"‚L‚Ñaa¢LèH'A‹LÉøI³àçDv:ü);ÏõHhÏÇä‡ÖŒæEÑnsišFÕõ^ß'õkZ?6¦†»EH¶BuJójƒ±B÷FC¿¤ö#H~")ûÉÁ)j¯+Q•ù˜C7õ{Øþr.ôÉÈOhò‚‘ÍŸ¡úc+¸MAŸ¡þg\+#-!…ñ"§ñõXSñ;œ/kãR|YuÍùc+ÑÅüÄjoC±*³ŽôÚjo¨ù$G3ÎßWôq~Oô[Yôy}ß÷yM_uY|ò2&o÷Q\ï1÷Rs/µ–Käâ–öiR5ô*2+¡õAK¯$õrb=*?Ÿø;B­¨™*ó2²µµˆï%öÁù§‰´böá?ïÑZõjòJô‘=¯$áFöU8?’qºó‚.4o#wQÛ(çEöG½çQÏDô$e²;i¯Lñ&þÞ„Oˆø’,uâö¼d]Ýa9EúAY”×öI%×õem?§ÑdãCód,=/_å÷Hq«Æ¿‘ö!h²htkùc*—1ÿ„ôCJ•ô:c¿¡±ë'þã˜/)ã"òa*?…ûÃë=öxÿòaiVö¨…ߢøç|?žýšóß¡üÃ?”ýº'ߥö1¾"?†ñ’2.¦êò¨½ö\ç¯Wø_(Öö-eÇfŸ²übü+“¯é{”úˆŠ-ZƒûªE3ÒÁxøt›E«DƒµX·dôl<ÏÅòHO#ó"4OAd2_²õ~B¿&ö*i”ƒ´)öHyj=JùQŸ¤ôCZ”÷*A¿£â¹¿Ëø²¢>"$+Ž?¶õøÑ¯÷k(Iôl#ßáû®‰õC™¯4ùIÊ?õC¹ïrõi*¸ú²¢>"O(´fõã[¯6ñ,qŸ‚ÖtHõídϱóÑjg)Ñ.ñˆ/¡øÒ88óSp2åô:%OtZá6!ÇŽsÝŽ"AŒôÅñáž;AÆJxq¼Cx"ÄÁCòFÁ£á>–ŽsÝŽ2K¬“D¬ñá^#ñaLˆ7Çx2äü:$MÁ£á>–Žsß„á(“¬ôÁðáž#qaŒxsŒx2„ü:$I¼„>'“Hô^E‡âo•t(ôiË&·(ò„{‹&O8³(òÇ:Ÿ–ö„z—†®~—†®>Ÿ–ø2¬¿‡åÒú:QŸÖúAŸÖøqß–úaŸ¾óœs¿¦ó„³¯"óÅ{¿¦ö•û·¦úkø!Ÿ†ø3¯ÿ‡ø3ïïü;ï¯ý;ϯþ?ïïÿ«;Ï9÷«:O8÷ª6_¼óëj_½óëJ_ÿókH_æóiÈ/çúY/ë¾6õú®ëQ¯Ë¸÷¼¬ëYoÄA(M$CdBA*4D*U„Ÿ†Ô´("ƒôH"È«!Ž‹$ЈŒ‚rDhB'"„ªIøiX4(H‹"H‰‚¸šâ((ˆ(ˆŒ‚R„&D(B(BxiÈAƒ‹"(ˆ«)މ„((EhB%èò:ˆƒB8BB§À@ÄBGB7H€DˆAȃB…‚‚V @ÈŠQ€Á‹!0"¤à‚I"È‚#Øq‡D‘-HP‚HÁJ$Dd„!I5$HH„!`„¬D$)9ZX€X$‚!A@*Qà‚$)$@<$‰ƒÁ@ò!*B‚!„Ù$ÒD¬…d(Ò!%A5l…(A'Rd2ä% ÅDáDCÊFŠÑ$Å.BD!”%ÄbTA"†ÇHšh„$Œ%b%u£HER-(TBp$X)Z„!‰!AŒ#ä,ŒÄI(D#‰‚3¤AëШ¡$FÔ„x2(Dˆ?T?",R!Œ2âRq"ˆ/!A”"(%ä A%ä"‘H’Á,1!$ËD> oBõ"H«A¨¡ÁÀT8%DHâMƒbaNDÀMŒÃjVL"¦Ø#´8ƒN©h%ò›×p@D€\"@™@„EÈ„1ÄA•8„DB@H¢HA*,ˆ@4@˜D„‚D€hRÌ;Ç%H$'DB‰4¤h&’Œ(°H(ˆ$€¤ÆHİB¸•(€(H0HD„†HD#A$ð__Ÿ„ø¶œ¿…ø´œ¯ü¸œ¯ü¸œ¯þ¼¸ïü˜8ï8ý˜8o¸¹¸óÅšŸó„šŸáêýY,OâñIŒ/Ëy[ìËùdÏϹô茫aψºµ#'A„(A&B&DôAJ‰È£á(ˆtZ¨(G…&D„„ÄA……‚ˆ8šŽPˆP‚(EhB„@ðAHT(…‚<šŽƒ…(HˆZ„.$EØ=*„$C£˜HaƒØB-$tBHB,`¤`A@ÊBƒHÂ\PH%„„A-X`B&†âƒÈ$%T,(G¡,Ò$„#M„@b-H@8¤Ãøˆàh†D8HRXeàaI‡¤J`A%ˆHAA¥$D…ˆäBˆÃ‚"D‡D$‰“&…bA!!ƒÑ„Q‚€AB"Ôˆ"qµ2nFr8EÂC\"ÔBBÐR"fĄтFFD9b< BXŽBCò)Q@hK*¡&QBn‚ƒBÔAAo"ˆ,8!‡b$˜‚$"T„.‰¤BÅ,afŠ×„ˆ0ü¿ˆ ‚ˆ…$áDA&’RH!ɈTƒB@j„$ˆŒd„) B2Œˆä$CB4‰Á‚…(ÁB‡!€T(€@R0LÐTˆ@ˆCØa „‡d¨$E"tŒT"$(M"ST"XK%èBh!&ÄHZ(Já¤äH6ˆ$ÂH„*¢((!ì!*âDÑD¢FL¢!C(d!2)±)A*Ñ"Á‚"E¡.REèˆÂ4hƒsÈ*Q„ä 'KE!BBBA‚²rH‘‰4A$!!BˆB*A’B…HR‚ˆ%ˆa„ˆ@2D‚0ˆA…„ˆ¥˜„€ò:ø¬RH'DTB$NH$ˆ@F-C‰rH A`B€òxˆ"”„`ˆ H!@‘ˆ!ˆDBC„%0 ‰`ˆoKH(H$k!!mQð"ÀH"a!JÂ(/DòaD&Á%¸"z#X(Š!HŒ$&BXƒ†(5ƒa!°Š’8‰a!@"ÍŠ–‡ŽŒR„HðˆHŒˆÁ˜2â9sÈ!@ˆ!Tb‰Q,H%d„!„`¢`¤pI“ƈ‹/$á!"À((5‚„Ђu‚ÈB¬$‚ø"ˆHA’‹Ô†DèD8(Є`„ƒð(Þî˜" bN$L!Œ–BŒHbE‚bAP¡@˜"†ˆˆ!AIŒ4(Bˆ…ˆ!A2 ‘ˆÀ2a‚ˆ” ¨‡ˆŽ(0/”‡H!A8X5Œ!CD˜FJ(rÁJÁ( Q*á„!";$$¡D°Dd!E8!ŒA!$ØHB“H&¡(Ec(Á‚$„>ŸI @$„L„$€hD1D&RH€@ÈAAÁ‚@@A"ÄF!”EÈ$BIAhC¡ƒ—’AˆA™‘€DI,2LE˜1Ñ"Ç!Ù‚BB‚A‚B!BIHB¹H”S!E‚!#HØÌ‚Ò(xÀ!!‰&ñçµ4N%ˆAbTFH2ABP…H,1T„BL8A…$aAVBd!pD1B‡ˆ §Hˆ%DLÁÄ äE4! ‘„#:d3ÁA'E4¡EBœAb3AD`E#QL‰¢a`Iä1@MŒÔA@D8+Pˆdˆ$%D¢Ä R„†A‡¢0…rø'A`!'ACá!CBpD‡!H”L‡BG"vŒ‚BH1* ãA`5 D‘!,„$ÀEriA$T$p*"*1„BD&)BÒ437$P(Á$ƒNBD¨J‘#…Q‘E!Ñ‘B‰p’$"(@tANAŽˆ$8ƒ‚sÄј€Q-AM˜]œFÄ$ƒr¶D$EH¡!EòÑЄ8ˆ„@jD!€Db€@AŒA‚Q!#D#!ˆÀS‰4H0D0H€tD F $ED,4*ˆQHE2"ÀM‚8„]5œ1 D! €B`„¢B€€! a!‚@†$$ (Iˆ€ˆA(!@o? ” DHA„ApdCB#D(€A ”‚D$!D!,„(€’‚("ü4„!¤EO%!1JˆF’N…”EôM3¤N(QK%ÔBt<4€…Ô6T„(,ƒ‚¢„‘D$ADÌÄ‚0•£T)ˆ]‚ˆ%‚DJø$/Ev$$bH/+h#‡’4§D¯¡òuF0U.qA(S‡H6CÁA€Q8-RAEáRñYqQÚÁ(ÌÑ!áEáAâX¢!ÄñB€DñDÇIE ”ŽˆTTg:CQ$ASá1¨¨ª±!bÂ(³Ra*ÑBq"2*)’"M>ƒRS)AZ20JeDÒ$4AàÑ!¢h„F8D'ÁJ’)¬a-q'*C"T-DÄ„ŽÌ‚±‚¤L‚‚H«¡åe’”E–Bod-ŒDÌ(ÁM$DOHr(t›±ôW¯4?ÁõT/1øZh}Š%ñÂCï„T…E9o¥Ñ"Ñ·ôZ/$ñB1‹È#qDUMÝb—ƒOCu&÷Z_µòrAôZŸÕÕj{Æø2?´Q§^D½VŸÄ8V]Á¿ôšOñUÑGl­jM‰/ø†µýˆøéùÑŽohx‡ûFÌW){‹Ÿµlü:$K*_Sø²‚ojø¥”oj9še’:Ë2ï3:™=?…ÕôõQ^B7¤¼ôJEGt%ûòG¯¤ô¿ñz2;AxIqLòFRßcó;--Í,õ[>=ÏuñT¿Áq[è+ú$"/1qÚÃñAÏ%uôAI•ñMÓ_MÁ[͸Jä(X¡Èý\GDž¿añ‚†/hø‚Ç·å/øøª³ïR¾u6LÍ$Ž—cò¶¶ëºhøŽ‚­…~*öTa4Ç4÷´_ä÷VK¯4ôIK¤ôBKçTÅõY-/5ñKrÿÂöwÞçU×DÝH_”òd!ÏSò|{w¢O”ôX³ö3zOtJ½]òE¼/hò4MUEU/ÿ¥Õ×ýAÇDŸÔøˆßÕ}ñJN-îOˆ<‰‹?üôBLÝ•¯Ixßþ–OHøÒD}‡¿iù,½OŒýwaÅ”„cø%·Ž”o+ú–ºÏ¨‘‡¡K¶3Å×ï1ÕÌõWI?”ôHA¯„ôCIw„µÒ#ñaLÔ”ñH¿Ç÷7?÷UÏTôMLL?6ò~7ïsö9.K=¯5õi|³×ñ\gc/Jú"4OBqÙ<ôO=^ßÔÔÝÔÁùÃÿñT¥ä¨\²«ˆ¿ØXåÜñ”ž†Gaž‚o(ùKß<øœˆ_ÃþTA×DM$D/9¹¡û”†/I¹ˆ™+ïòqF 'CE¯CR£Ñ6íaÅòˆsÕê(Ó$ñÅ*EòÁ(î9ÆLxcü"„'C¯|*Ô¼Ô>>MaÍBŽS_¤â*ôå:Eú…ðá'ƈ7ÇŠx2ÕZüzdíÁ£Ñ~ñaÍ8WŽ2IøÁ:]ˆ¬ÙAñá7ÁÆŒxsœ'CȯK’Ä£>\?ÜýCŸRñZA—R¯1ÖòAŸtòŽS"oxÑ(òÇ„òÍÄÿþsAüí„ø{?¥ñků1ô+ů±õ+ů±ö/áïµÔ=ö†_ß"ò–—Ï"òÇ_„ò•[WÄÿúõAL_âõAŒïË|Óÿ.Œ¯qôꄯ1ôê„¿1¶ŽúG‹4ï98O9™8_¬ýA8O¨ùA˜¯êAèbóAˆoKúSOKºõ¼¬/!õ8„/!÷<¨oqõŽ›(A.DBHðAH4H  ˆ#å(!"`B(a&$ðaH´(ˆ#é(1‚ „dBAôAÊMA…„€<’Ž!‚ (Á&ü4ˆƒ9F#œB‹3HB!!B‰š!AFÄ*& ¤F†U(DÂA„!D1!MAƒ1BdH$4„ƒAr"Q(€Q$E´HA4(`Ä–4+&RHXˆ!5ýø»P¤L%!1B¡œ!@BH%‘(IDTˆ&X$B™D…DPBqHPH!@H!ƒA8$Ð$AÕˆ$‘$ÐHD´˜SJD‹,A-½á9Ø<¤!'$FÁ¢Ž!'a¢BbDòÆ(fAØT2Hò^Ad:DøÂ"2H/a!È„ÐB5¢N"C1EL4!¦t±’Ò,xAH"éŒÑ'¥*¨( AÛ®‘I”$bð$!E2‚‡!B)âñµ¨ aÐH’H(Á á"4(l!T!H€á"<F2BpH‰)­$„aX!‰ D,T‚XH¦"Å2@æŠÂD8B„H²$Ø„ÁH’QÈ•CDê„—$!BFøAT(/‘*ó¢ÐsÂ/8–D&Ñ„„Ñ/ä2TBeâˆá´'B¥$å!(‘FÀ¬3ÔævÁHAŠS솘(IT¡*1dJòAZŒâ#¨Ø‚oB褊Æ$H‡'!D)xÄ,5¡ÂitoNbA…H‚""D2LBHBPˆB &$rH!(FH$Áˆà(†A,(Ñ8B,(…†#ÁP!CáDBÀ$A6È'‚‚€b|=„0( â#MB'"„"Pb%HˆR‚!pD³H†X(”lF„B(%NAà!DDˆL@`!@˜(Hù?‘$\(XBƒR$"¡ÂI)Ô$JR$‘( „=HkRL!·B‘ÂB€ÈX@""‘X‰d,H€4Lƒ…A¤H ¢‡”!+"ƒf‚°Ä*J!(B&6{œ"œA""Ñ¢O$%Â(D(-„ „pBH(#'„Mr‚I¥"ƒD”H#!°ÚC(X@)$rJB %(!(4(‡BÏ%@$(ˆ BP$`"N‚A`!‚°HÑ$ˆÕÈ$JŠ ‚°ˆD’AF%hD0€4HB¡€‚ÄJCˆ&(%² Áœ6Z@!A%AR$‡@%D!TA(DDC„at"ABDá•$…‘bB04BM"LÁ!()dC0""ADdCAB*Aöh"DXH€!HlD$$$A$A!A9d‚IB$AD(Aà!’@$À!$@D3\ A$4œ!HH)Ô„4"I1EQpaB$B4!M¬Á"&e‚Td !RT€´2‘IR! 2A%D!#RF/u@!Dr!ÀAID…A4$A,„BÑ”(A€!±!€6(À!& DU@D“B Á¼ÃBR!4€‘AA…ÅIT!”@A°!ÄA`!PA&ƒ&%D`r!$LCÂ$%A!!$€5dð’•@$ƒHqŠ!APP1&˜"A`AC”HQ"A4!!!@°$$#W'DOa2R$!$DBEBDR@Æéƒ‘Ah%0%BCÁ€¼H$PADBDA(„Z#Á‚’A(( #p"E1"I#fbA`FDUAqOAfD>Þ£ ˆBŒä"H$%²D’D@ÔH*ADÍ!‰"²(M!€!’!(DA"LDÇ!$EIIb$@$°"s¿§ò:k»2¿÷r!.%ß”ÔýõwTov÷L^OF’U¿´ó‡ƒßÃuCsú>)ûVwq¯áóio"ñ?äôINÕÓòhíÅv%Ý”ò$¿Ãò_6õ!_%ôõVE?et7ôRTw¦OañEõc6v÷eoü$f]aO"qu¥sKV/AÒ&¥Jô!cmÜ#ƒ§q-Y¯„Ñ‹ñSŸ÷bQ§”>{«7#ñ""/ó1i?ö1f_rwtÔA"ôDDï·õarÿ‡÷cgÏ´ñ¿ñ+;²÷E¿ã²òF¯ÄtOù&+ÏôAhÖO’r$ù?>{eWÁS$±ôASO÷E2=SoesÂ$OBã!ö1cOu÷"';fTôDeböRw9óTDO'¶B±B¡EN&o&ô+­p2äv:ôFA§6>VÎsÕè(ôÁzUòÁZfòáÞ+!Æ|sœ'Cü:$Ï<œ>>Oü„{ÑO(ôÅzÁ_¬SHî{øa,Løs,„/Aâ|:ôDÁ£ÁáãÁaÅâ8×â(S$ŒôáZðáÞ'AÆ„øsLˆ6¤Ä¯C²D<+äãñDÂóÁ4?3ôx4?‘ôX/1¶|óK&ó„[¯'ó„¯#óÅZ?‡ó„RÕñ¬V•®f„ø2Ö7…/sûA¿÷ûA¿wùaÿ³ûIÿ4ó„[ÿ£ó„ï!óÅ[ÿ¥ò…÷¤zwCü¥7Äø;··Å?sÿEÿwÿAŸWùaßû6CŸó¤S›5O8±óå[‡óÅS‡ñåw‡n÷aˆoGsùtô/#ô|ô+AD¼¶l¾ö¹Ë (CbBB„ÄA‡‚`‚ˆ/Åá(EŒdD@„RŒ&„ÄAH‰*‚¼2â(‹" ‚fBCAôAHMA‰d"@‚8Ž!(CcBÐáQ‚‘ŠB !TA"H%AXÁ"#‚BDB.CˆS$fä!¡.Œ$ÒAbH#ETJƒ1’°ô9I0’PQ‚@.D!‚0!!‡" "€A,A‚€pH ($€,¨€*"‚1h°!>]@¤A0/B((©Â‚ @”B@P‚"ˆ$ŒH`£@¤ ‚ðéÙÀ„h€"á$A´FÂ#ÒÈ)a‚J3H,3€s‚(4‹HN2È!ŒAŽ(B|Bô"H,aÁ!*Hb…*1Ä€A¸fƒÅRèBˆÈ˜2°(j2ŽüS0‰82 $#1D€¢!&Ì(B $ëR(ƒJ „ˆ„E²HA¤€…‚C$&ÈD(L\ ‚E(!É(0ŒZ B…€5%„$!‰$Bà`!„तŒh$! ’B"Ь„L$$Á$…à„aƒ€"(B²(£¡B‡ˆ ˆ8އóˆD„(„0€ˆˆ¨$„ˆ„@"0H( „𢥀$ …„"ˆ(@¢€„B@PˆÀH„(„…B€ ‚|3(HGB(Á„„Y„@F¯(¸ˆ"„GB(Ih@I„@ˆ¯(8B GB(ÁB`I„ b‚/(Á¨+‘(p$„„øBF„f€$(ÄA(ðˆ„ˆ(‰Rˆ&$Á(¹HÈAH"˜ˆ(1HJx(xh‰$ÁA‰B(…Ș2(1(…"€.„€ÈM#`„‹"K„ƒÀh„8ˆŒ²ˆ8€€(¸8„H„ƒA(ˆ¤ˆ#H¨"A€ŒtA ˆ#€hˆ€Hðº/€´,R„(B„H„„Àˆ#ó‚ˆ#AŠ´,Ÿ„ÑtÁ€<+˜£A(€’DËbC BxAØtIˆ'+š#Cˆ€´$L (K"A`„@A—„ Bˆ¸‚9„@‰K"GˆAŸ„!„°Š96„°$2„ ”A—„°‚9(K"C Xˆ‰$"€XˆH‚„ "PˆH°(ƒ…ˆd‚"„…HB"… (@€€@„@H¨„ˆB@Œ„€„„  ‚p÷„@$€*ŒÂAÀ(„„€ &( 0„è„„AŒˆ„P(ÁBHŒB"Z;µ„„„„!€°"‚B‰¨!„ˆ((!'‡BDPˆˆ‚À!A ‹AH  ôž…„ `„H „„((@Hˆ€…ˆ"JŒ€.ÿC R€! Tˆ„„ D€@„ €èˆHÈHN!„ „" ˆ€„€"@€Høã €@Š ˆ„H„ d„ „*„@(O„€B„ŒÀˆ‚(„„À( „€((;š€("„@@(„ „( H@€ B@€ŠOœ @@„„ƒ0H !8@‹AÀ|3 BPˆƒ€€BÈH…(8„Š(Qˆ*‚B„…HHƒDˆŠÈˆˆ(„€@8H„Ÿy „‹!„…€"B…B†‰H"Ž€b„ „Fx¨‰ˆ(8(„„€‚"„HBB‹ˆˆš"¼#†!„(ˆ B… ´HAH(ˆŒ1(@„B‚BXˆƒ„(…HH˜ˆBˆ r×”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ0à(€&pAˆ#Ž(A`B„ÀA€8à(€&pAH€øô=€"HŠ"HŠ"HŽ5#„„„àñJ‘H„,¡&$”H„ŽŠ`B"ÀA‰Hà(¡&$”HޤÓ,8`B(A8Aà(8`B(A8Aà(8`B(Ah„à(ÑkIÑ€/!á((GB&”Ô€ø’Ž€r$dBðAIAˆ/)á((GB&””H€ø’q0AÀˆ#`B(A8Aà(8&„ÀAŽˆ#`B(A"ÀAFŽé 0Ž"(A&HpAÈA‚ˆ#á( ‚dB€„ ˆ8Ž"(A&HpAˆ‚ˆ/?zˆŽ &"ˆŽ &"ˆŽ &€ˆîSÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌ„B‰Eˆ (¨ƒ2 &B b„J„„„$¥H„’˜(Š¡ˆˆ"(*†"¢B ¤DRNH‹D†8Š(#¨#*‚ ‰$"BHHJ¤ˆš(È´ €¤DH˜¢ŠŠ(! &„@H‹H`„H€(¡8¡!""(*$F( ˆ A’ Š(*‚¢(€$…¨Dƒ¤HÈB ?4‹Dd€$Š£ ¨#*¢" ‚jF舡ŠÝˆ)ˆ¨ˆ( ª "B"(F¸HÄHŒˆ¤‚HŠ)  Š© *¦b*¢DH(¡è¸:ÿ€  !"("*BH‹A€)€¢‚((BH „…$ "€‚ˆ(€€‚ !„!ø¯XHÀŠ‚!!¢) ¢BJ ÄÀHŠˆ* "€b€’(ˆHH‚‚ ¡€€€H  à74ŒX‰‹ˆ ( "‚Bˆ–€Š €"H„J Ĉ0H ˆ:" 2BbH„¤ˆŸÛ HHJ !Š(ˆ B€B DZ4ˆ‚ ‚€‚‚"à„  J!¡‚ˆ€ "„BJ„$ˆ!È¿ã@„ ¨( (( ‚@H „!J)‰( !!‚H( $BˆŽˆ‚‚€ˆ¨8€H€Â(HNH „J ñ7uâB$A!AA$P$&ƒ"$BIÄH)$0"((@2"","Dè„•BC1€Ô†!$@•¦B€˜BBEÂHÀH…¢$O3?ÿDD4‚R$($R$B$ DB#1()!(!@ƒb(($(,L"FBH´!°MB@,AvA(0Bƒ‚t(”B A‰’F¿EBPˆH "€„€‚$€H"*" B BHƒ!( 4  ˆR<6ŒŒƒ‚䤃‹)R’ˆ2¨ª¡\Šì"¶h"؈ÒÞH˜nHHŒˆ¨…’š‚¨‰¾"4Xb‰bŽ(‚‹¡NÈŒŒ¡Dà„®!’Š¢(¨X‰¢(J²X"$´ˆ£B£D˜ˆJ¡N¨ŸˆJ !@bˆˆ¤*ˆ*(8H‚à„ *%¢(:*F¨!HŠ¡$8‚˜B æˆˆ ¡Hˆˆ*„€„¡( ¤„€á¾7é(B2€¨ B€(ƒ ¡–(N(HJ‰$" ’¨"2H((€ˆ!Dˆ(Êb(‚ A‹B"‚ Xxˆ€€‰òæí` H(˜*Œ‚H*!ˆ`„R@ˆŠˆ"(¤ ‚4( ¢Hb0H‚H€ *Šb°($‚(€Œ$ŠˆÄ‡c 4 ˆ€ ¨V€JH ) â Bˆ"ˆŒ¡$€$‚¤‚’ )Hª”ˆ" (È€‚" H¨Cà•`"F( €¢¤B !Š$2ˆ€3Hˆ"F(!(`… „B Jˆˆ(ˆZ"(ƒh@62DRH%$P$"DY&Á$¹D@ñˆ$%!&$A`B,B„1 ˆÐ$A!A"‚DD(8‹DAÿÖ „)Bé€H"#f@)€(TŠ"((€$IƒÄD‡‚ª¤DJaAB"€rˆ$žˆD€ 8D¼:¦DÑHb-H%ƒq$$M"(•òD!LAƒR"'B)Ô)Da%ØR8EAD]D€Á&@¡)!‚MŠ"‚At‚dƒØDธ$?±Ib‚„„"Hˆ€!„( "! DHƒ‰‚Tˆ`‚0H dBBL !‚À#S"(8("€AD@€ÀDœ#@ˆA‰"€@&D(`€’("ð½×$D*ÔˆÄ*a D$Â"„ñ)!JB¥¼B©"§…¨ƒ¡©‚$" ‚Ãd‚…˜¡L%*ƒ$1B-FÄ6ƒ @ªY‚A‚$ C†„!$¡H€D8z@‚‡$…$$„#H41#„Ä$FÈ.„JA HŒ‚H’HEX‚I0˜^…bF „ `AÀt"„AL¡BŒ4ÀX BOâDB"a "„!(d(‡ˆ@„$À„„ŒB…‰!D-8Â(‚ƒ€ˆ.rãÌB”$)b$AB‚BE‚¡B1fG&„V.D"”!¤(IM2ÐA&DFˆB&!¨0"d*‰aBL $E$³H!)$_nÄA%HH!AP¡FA!$Bˆ$b„¤"$E@¤B00$‚¡!„ApLA#„D…$AA)0ƒÂîCIEzA Â$…£!%ŒtB‘BEC2D&O†l$ƒ¤I’$ ’$!'B"0"@¤FDp"2$A*&Ä(!*$ÐBŒEJ‚’BÉvÂB)òí„@(ÁH@dAD…A(VrHQ()!”@xDèˆDAX)@l‚‰0*†¤!Ä„„’ŠB(ÁhA‰A„¬1ÃC‘DÁ (ñFR(`”FÈH+A£åD¢DB©$±Œ¤,¨‚o"²ñr‚‚*lˆh&„æN¤—(!(‚K"*±¤‚aH.¤„ˆ-„B„!â‘ HUÈ$€BDA„!…Y"1Hh`„M!$JD²RdB`RLND"$(HC!HZ„„–È„0+ŠC±‚cŠ˜„¸DM‚€‚AÈ9ÊDt(/$„6H"Ã$Æ(A,¤RbD,VAf"`" ’‚C)#Â(aFRŒ(†D"#ƒ"2(ÅBD$$E‚""€ÔD6JH#Réô¡Úp(¢DŒ"6Af ETƒr!±$’!C´A˜$€!„:„ˆ"#¨„¥’ª‹"¤‚„#8"††4‚ˆÀ¦Âˆª`$И!D¢TPd€(€@„%@D¢#(À‚‚ "ÐbF @$DB€‚$0B %„Ê€‚I! A€¢L‚,Á@Ä" ($l<„¤"…¡$ƒ”*RBNqƒ„Ó$ÂBEá”DèÁ$&!Ba„“Ò"´„ÊBKMˆ*¦!%ò¤"mRO1øÄˆˆ/ù"H"bn„®ü(LB”‚(0i˜¨ˆ.¤ˆLȘˆLh* ‚¾$i’hM²†´RBåMò$R¬T$F(´ARÁ$D%dB)¢!H‡hnA!FÁAKD1LG$O„¤B,â$¤bNÂL(¸‚R!,6HNf!«C”HH‡(*HJÂ*"Œó„%”„°J”‚á ˆ¡ØI"NF¢…8¯”Åt±‚r,h"EQ!MUÇfFÉ\œbB)""eB%²b&‰Ñ"²8¦C𤠢ŠR"Ž|&Ä$ŒÂhŠ'aB!£(#‚‚ñˆ2MO*Ò$cHIAŠi")hJk‚a üL…4£²òdAµñK;aWBâáô÷f«#Æbbw‚/•TQtóCÏ–ÜæBò=3ë2Ÿ·ö1'/bñJoÁboeõXL·´Ã¢ÎŽŽ¶½sãébìiýÿSÏ„?Lü>ÒÏ…æÃ&&ôEš"M$£bá-ŒïHûUˆO*z‚\ÆO#ø¨6‰8"/#ò4†Nª/FõH^BO$´Bódz4;Ìóe\oæöMBNX/¦öMf7æ—ò=4/Bò"2qßÁõBM½F7³cvEù=$÷3bßó%â’^NR^JNoÇ·ú¦ÿOgò¢†;"/9ý­î¯NùÊó;eO†rlôèr+ýO„s6îêúŒ‚'£cr4âÃò4cò¢¦KЇÁeØ*óŒ¢#ˆ¢¸/kú´tOÊ÷ffMBZ¥T/&Öäö}çð?6Í?çÕ—ôRŸ¶w4ûwHÿAò:6Ÿä³&ó64/sÁíQç—OÆü{EÏö,)OÂs÷qß²ã§Ô¤õZR¤ô$(g¢obø‚–?ìÒ$ú¦¶?Xþã‡ëŽï÷w߯C’LÏ‚~üÊFãò8:eø¡a¢oÁ¸®ñš†Ÿåò¶4-„gad¯AóмOÂy6ô,$M„oB¸†óÂVÏåþX¾ïŒõJZ¡ô|:o„1|=¶ß'ô8oo”ñSŸ%ôy{/”÷'<¿Vór&O#ò6$/RsSò_x¶ömdDr-Ø•òu½uß7ô=l/„ñB§!…º:ÒlöÂF/O¸¦ø$&ž…ÞþâïªñtùßEr(ÔŒòäÏföj&éq>þ‚˜/¡qÒ¨S‚/‰û*´'#O#ò¶¤oHù’ŠÍ‚ïÃø².$Í$GBOHº”ù&Ö-ôüR­Ø¯¤õXJ¥÷"Yk$p2õ(A¯SÒtÁ!çíaÅó„s׆O(s$òÅ:G„_¬Cüá¾'ÅĬ7Ç?Æx2Ôþ:DÍÁ«Áãñ,aÁŽ3Ï„ò„2Ióá:M(_¬Ãîy|aÌ„?ÇúBŒ'C¯R|:Ô<­áë!íaÏ(óˆS׬®2G(¬s„úÁŽîy|aÌ„7Ç+ƒ'C«Å¯CžÎ£±Z¾Ôr<~=¯5ô:¯ô:¯±ö>1ïô3Ϻõ<2o8õ<2_¬ñU:o¨ñU/êóQ,®>Äü2¼?Åô2´¯qô=´¯ô(”¯¶,ú>AÍ¢oy•,O8µ,òÅ_„þ¤WÄúsAìêñAŒ¯ÃøS/ÂûE¯CùA¯Cùaë±ïÔ.ûŒW"ó´S2_¬ñA:O¨ñaêsaìjóaŒ/CzÓø2„«a¯G¸õz„«aë§oA÷Ï5@DhA.D€HpAÈA‘°A‚8ŽH!(a.D#!HpÁÊA‡*N"à.¡#ç(¡" ‚ 8A.€ta؈#á( ˆDˆD(A&|*ÉÆHÔD‘Jð$&’A(MXE(Ä:AB#òB‚i" !EÈ"K(‡A( h"D"Dˆˆ‰‚hC0$,1¤ˆ6’&""#hC-x0‚@Ò—ò¼4CTIFAŸ$BÄ)%$AbCXH4$A%8*!bA$(++‚I‚6(†´(ƒbb@$ "ŽˆI¡"D éb¦))(„"8G(Œä" $!"£^BB(@"(¥ÐBA,4%h(bT(4Jb4!D"¦D!BDQD ""XÀ ‚À‚)‚8D‚DBЈ¢Di ƒˆLò;1`Jm‰ABR†P‚TA.ÀUX$A F2T!“‘B–,(AÄ"DBLA D‰R„'D-"A#ˆL¨ƒòˆ`HAA‹(-@ÐHÄ#Ñ„(˜B„¢_;8,B@ˆRâÐEr"2!…Gt*ÄALt(a$ƒÂEDKòA,òHCAC!2¦Yfp„XADˆ]Bƒ’*h(†!hŠ*èEˆ‰TD£ EM‰-°ó¤-ˆ‚ƒDxÌô·¿PI,%Â!,Pƒ !$D" 2€8!¨@D ‰4HAÐ$L*†l¤( DHÀB€,â’?B„"HM$X‚'Ð"x‹@A¤@*ÂLr $68B#ˆäA…Ä"`!LA(ƒ4$(ð ¢$ÎHL‚(o_`‚&,4ˆ€‘D!Lj*T…F.H+„¡C,†‘H  ""ň„E¨HB‰9(ˆÑ(&H¢H…ì(D‚aH,5GˆPˆHCˆC"1H(ˆNÓ (X@BHªA)AÆ€Ü"!XAH„!Ð’‚4@XB$D$$L&ÈD„‚Cb¡Œ‚R„Š”$¤I©A,<LLˆ"VH.ˆNB b‰oß"ŒÁ( 2B&hˆD›$B¡–K‰d!H„#$‰ Â"(DÂ"…‚©AÂ(@!Š0 AÈ(Fˆ8À™sA‹D!°B‘HA%"”"@RHA¡H$DJ’B"H9t$„dH$:+d`‚(H""€È(E(ƒI(ÂÆ€„„AªC$ ˆHð&rA!B!`B±"As!fQH€!HX(I A(‰Åd)„"Bˆ(A!C!F„°‚%MÆ“P",hBB-$@’H!A4"B,¢B D!FAÁH(!E„ †ã!h"‡F‰""ä$(,Hâ‚!""¤ˆI2"a‚$‚IÎ,„ˆ$€ô>@”E1™$QH"$!DA#A4EAçD°%C¤ˆAˆ"$ABAAEq4G(pDFE…4"AÂA#! $&Fh¡¤$ŒA©ÓF!”J„'¤`"MA&€rDJ–(HJEHÊ$<=B”$%|„¡ ÁCO(˜LÒA‚vA¨b¨&)M"CÈ" "Fd(@Àˆˆ*ˆ„ˆð†é…$JDFBBê$tLBBa‚H„D’B,ä!´RÔôBh,ÔR¸äXB"(BJ J(½D"@"$&Ž$ ®%A%N‚ "¨‚ HÔD7·DN"Fá$â$„rH¹F)",„jDDD‚l‚!hJè$²""M(ÊL!B$rˆÄD!+D ¦E"+„J(% ‚±D$(¤AHJ#D!'BJ#ÔúA$BP%J&bä%H4"!$Â%&H!r$1%Ð!"A’8BJÃ4((%àB€$T„!¤(,EB ²„0²’BDØ ¹$ÈBÁÎ"¤ˆ\9rH6à!ŒP‰@B$‹Eˆ(H  B"„ˆÈ„*… aB€¨ ˆòï› rHT„H(B AHN!"  HˆH‰€ ™ ˆ‚‚„"€|<(%D4LI„Ä+).+Fª"(,Ÿ‚†R+"'D‚Ôñ"Ñ!‚¶A!Q‰+fNBs¤¤z»)aCì4DÊìDFä„´ˆµˆiŠH'ÆHk4!J2&ªã!ª2¨Jñ˜$AL-‘Hf¤HZÚBˆÖBÄÔšdˆ(+H[Š$;TB1­B«b™BNBÌF‡!%FTB„«e9J‡‚O”t$(t#Â2'6¦!!"ñÂ$^…¨LB$VAª("”AKh¬ô„¢CÂB€Ä"(bLõ‚DÈä-”-D˜ØKXŒ"”BCˆI²„ä(J"á(Ôô)ÁJÏ‚ÖtQ"+ENBËD-Q$Aƒ’BF2GLdDHD(ôILDdt'B,ä'ñbQ…Rša9$$,B¢Â¢BæB2!JRA?ц‚Aβ ø‚*ŠœÔ,a*€q‚¤"‚‚"¡„«Q„‰x£Fñ*c¿‚ñkJHoôS8ÿgörd/÷ônk"òa&6_¶æ–÷b5ç÷>O„úrIÜölKeV|õ2=CoµõiCu"õÖo»¢øa<%ÔªªJNåSž…;AŸÄ|Ÿò]r¬øêDFä$ô+eODädbikÜ+9È–o„´ÚäH÷TÒO,Ä„/DæBöæÂO"ï®òbÄFìfÿÔÒ+ÄONêÝ?Œ-knj¥÷W¿µä$ôj:D÷ayN#ÿæó6'ƒ+bÿòöRf/Çôc{¿´mvDí6ö[S6öfd÷Q%÷[Ÿ¶óVv?7ªþ_Oû’¤#Ó2öåänåîäîöDaOÔôÈÙ¯¼½üþ¬ì/dÔ$¤õbbOdä.ˆÿÔ„/Kú²¢ŠÿÜ\/LýòÒO,¼r²$vD¤Ì/,²äþ¬ä/äöÄÚ,ýÂîOjõÑÅ$¿£ö1#ÿ¡ñ[X+Ï7÷grFõ"4?Çó4oBòq~?gö={ïö%§?×ò-(Oò'n?ö÷B]27õDB$ô+{w_&öçt?göa.k#Gblò#'o2ôFãfüReSÒ”ñ‡D/VtfúlBnbkD/%å%õdBkboOýBf.aoCwBþˆÆcµö対~ödDKDoEý2Do,øLb-¿FõRR^BFòv+ƒÝ³+÷c´CôKZ¿“óR!cöQgã’6OAó2&n4Ý;o³õ|qGò(,O–ö,+ÿBöxoo6õde;D/¤T¿æ6öfå/^ÿr6O#ó&&lÖrôç",üçCoFvaÔøÌì¿fö,jOd¶BôBR^R~b+doFöÂt/gñ4²oKû‚t¥þÄRkõo%öHLndKfKöOMóRÆO¨ôdÎ+\/!å,ÍB+xü 'S.A¯SÒôH­açV,Žs×&Ž2EòÁ:SöÁJòá–'ƒƈ7Çjø2d.Á¯CôÁ¯ä>>aÅã8wmê(ôá:G*¬Q!î;Fˆ?DzSø2$|ôDÁ«A/>/¶Œâ:µMâ*2„®3D¬%øáž'…ŸÆ„xsœ’'CH¯B²F<+äëÁ-÷“ÞQûIÏSñASñaÏÓóVIÏQóå[ÏCó„SÏAóå_Çó‡_Õñ£6WÕjóE­/CûW.>”qô(¤1ô(„/1ö,¤5ô,¦O>õ<¦O8õ<&®ñe/O(ñEN®_ÄäkóM/CxWü"¤oyöj¬o1ôj„/ö.¤oôn¦o<õ,¦o8õ,&¬ñM.o)ueú¢6ׯ®v_Æø2ôÅò"„ïeöjŒkY¯F¸¶nûaÔ !XMtÅèBÂDÄA…,A<BK#õ„˜(IM$A&H$A$qAÌA‡F@¤*I8rO(‰„M$A&&.ðáô¨àH„“„«!O()‘„„A(M$A.„Á.ÌEa!KDÂH%Ába(DFÒAbD3Â!BBQHH¡‰ñ$HÀL‚DC¢-$L"$’D&ˆ$9%>B ‚2¤`H(a†bD,@"-ȈŒ„ˆD?ò Š—BB(BDàBÕl„E‚4„JBdCTH†K‚%¤C0$C*˜C2B(!‚cH$ˆÒ$L0‚A ÀÂ0X‚…_X5(A$0AH#‰Ø$,,Žf€2$`B…a"A%0A)2I(D!QAƒó$AAAHaˆ$0„Ð!1TAD!2HIa$ $ðÃmP†€Ä!URAŒh‚G@AD)aƒA@Œ‚ABèAL$dÄ""d0H"DX$ƒ‰‚)È$ƒˆ‰‘B0HAƒÈHð$¦BTH¤D(=*Ý$†‚S"(d.„†‚T(Ä&Ç2"E)Q(+BÔ("PBR¤(a@ÙDcB‰N‘€h†xˆ’‚,¸ÁAFQKDЂ”H$ aB¿9¢A"HD€ƒV‡B$„H@#„ DABPA€‚X4D!D"!HƒAÄŠ$„F£#ÔH’BDA@X$ @BHb@XH8$FÈ$)oˆC $0A,"@TD!ˆDpˆHƒGB(DÀ$¿ÇG‚:T¤NL`„Œ„aˆFÄ,†¢A’”*€"ô(LjD&ˆB,áB)(Qˆ,„"â#ŒˆÂ4H"„p(ŒÈ*)˜„*ØJ £)ÑDBØ1H!EB„‡!F(B¬!)‘I#²ŒA) 6&D€‚Ñ…)'(P(J‘$°„‚”Ä(D„(B 6È`-EèÈ FDBHD$ÁH $D…dÁ6ˆ… hŒH€Bˆ’$0PˆBPH"'`‚R‰„(‚(ˆ1H>cƒUÔ8B*4<$rpb„TJsH„DXè”E ÀhA«($W„-$HEÈaƒDÔ$Œ$‘È¢ˆ<Œ EMH ‚RH6ƒ&ˆ¡D‚&,ñÏ´€œXA@H$ÌD„(+AŸ„@BÀ$‚œD$‚*N»L(I„€ƒd €ñˆ ³(‘QHŒEASÔD¡D…XÄP…ˆÁ!‹Ç40A&¢$N™RD qDX€Fe„K$IÇ‚(.´ø‰„A€ˆˆ1„E4H‚°A!‚¤(‰!ÈÈOšÄD6"A@H4A&ÄABHBDD€AˆDÁ H¤2F¤”ØLBŒ±‚L$(¡$HИ(ƒì"?³ e‘J &xHˆb!bÅ&ˆAxHD„NA!Dà”Ô(´È"Ht±„!ˆb†(Ät(h1 Ac$E!䆄¨€¨ˆÊ„ЍF"„b„š …¨,ª!‘F¨)"ëp$a*D@ÑBB)![D„‘DHÑŒà$aBpA¤!‚€8DˆOÁ¢\‡Dƒ„¤œ‰–”Ú2 4BB Ó¨"("‚H`†ˆŠ&8 ¬6,@à…Ä$ÑI ‚1¡F1*„”IGDDA‡ƒIä…±H„CĘ˜*¨ʘI “"uˆäD1…HL(¡HBŠ(Ȉ±”0!°a„ˆ€H4H…øóæ ÔÈ'„8Œ¤TGCZ¤B(€"QI(GB8ƒ‚2"ƒ¤"YÂ,Ó‚Ú¤! !'©æ IGBH!ÖTH†¸H8HEäHd€Œ±Xá„q!‚‚0H„H „ Â<5Ù„H„€’DC DJ02„$p†&Ј0¨‚ˆ0ÄA‚$‚H興(€¿F„@DB`„AEHÈJd¦€ˆDD@BE1D$I ‚TDHˆ$¢$‰ „„Œ‚l3LÖˆ$´HbÑŒ3T‰‚¡!"/TLiáôdLFä„rHô¥ô8AA¯ÁGBŽH,¨‹Š±!1ÍO¹±ˆò$LL1‰ÊöÆ„ƒ©ƒh†ø„¢IáQ‘ âˆiˆ*r("4A* J ‰(õˆˆÛÎàô$Ç‚ðD!NH‰Sf¥DaEøRh‹t‰Œ2HB‡#b‡FIH”1dSâBó‚ˆL$1¤Š"x$\E²H”H1™òÄDC´ƒtŠ´ÄœaˆDHOHèH¸hj¡U‹ˆÂ…n8„ŠØˆè„Š àb?æ AÔ¡TD‘aND~Ó¤AOÄYÍ$…¥$…‘+ÅåtHè!¤j´XÔŠô(HK\NOˆQ%KCO¬äÁµéäDå‡4A“ÔD¼ÈBNè¡ABh\¤„Ê,I„è,´iºµh³öa(FèˆÈ(*:¨Î˜ðˆ‹¨bÿ†:ÕÑwjÖ³´Xô9ßCó8uÂö=A)ñS,.w´¯%õC/¯g÷/3φþqhVv-±\÷2¿Bõ!¯%d¿%ö-,fÆ~_¸·ªáÅó¢&_â—ñÚß¿IñÖO–xxyIü\ˆg¿/2üùÜ?ïüZâ/4œÁ}F/dÄEÞEÊ¢²šôèÁúÉxêçþ:aŸ–¼áæ¼HüÈ趨1JüXÈ.(ÎxÇ÷EŸçvFóKHÏõyQÇGŸ¦òz;gãc£"SåõR_¿ä÷R+?ÖœöLL²ö[Zï7÷\nEòX£Q†ÖÍôë‘»—ïïêI©³šýõç¯Ìüø®Ÿ6þ2aφöNDŸ<üªùO?ûþôΖ(õÛK+ÌîbnþÑÞÕM¨‘™:ÿaé‹ÿúüaù¶Höaaœ´è:É‹ÊêïŒí…¹˜­,®è>ð%!O‚r#sNòAQJ²%òmhróz&æ³&ò$$/cõCWmb6ö6¦?×ö$!Oò$d¿÷ö'"ß¶ò"cWUö&!ûfRöb>îò$"OJû1$¿gòg[O3ÒtÜTOXu~‡úuy¯4÷GJ·(o2òGBYèDýј‚•øAHÙõ·øIqô(iNÈÎh‹ôÏ„ìŒì´È¶H?¡\¾=÷l'?¤ÔšôAXâ÷lEá÷jv,â8÷E(Ž"IòÁ:G„¬j)qaœ7Ɔ'C/ü"dMÁ#ѾÔÖ$ä8÷Í*Ž2K,óÄ"¬a&n)wAŒxcü"ˆ/BÄÁ¯AÚ<¾ÆaÉä8wMx„’$¬2D¬!øáž#q!¬„7Åx¤Ä¯C¦A«Z¼D4‰DoQô(.ot,üiÏBòAÏbò…SÍ.o8õ$_¬ñG-Ï(ñWM®6÷Ô®6_Äø2´wå/RøE¿RùCÿÒøRaÿRúAý§O»Õmò”SÏbòÇ_äò…WäzqMü±_Äü3•Åô!‡ïQö)ïô-/Ö}úAÝ%O8•©O¸•(_¼ñY(_ºñYHúqYø±Ÿ„ø2Œ·….¬«Iƺô(Œ«aφºt.DÀ"CaBLLÄTH!ÄaBI8O(AI(A.D@èHxAÌAÀAª‘„#ñ„’„IIDÈbA.ä@†„Aƒ(1ˆƒ†8Ž’ƒ…ˆh(EèBHÈOc•‚Ê(”AH™ƒA„%’I4)DAMHT¡AHÐX$KL¸ÑòDˆO!ˆF©B†x5âÒ$ `,rHaRˆ‚ ¤b€’‘‚Œ–¨‚Î ”Ba„C •²$A„DEQ(à¤AÑHDA‰Cä†9!±(±âH³E(4a&$!Š8a  ‚Š$‚ÙˆŠÑÔ9|€BP1L02 B%9"M!*–A4A$…¡42€"%Ê!ˆR"AQB7Q •H!ŠJf=Ô0ˆBA)pD(€!ĉ$QA"°A„P‰…”(€ˆ"‡A@ "RH„ KD€†(’H.H(D„ RH‹ˆô%ÇqBp!D¡8H.$L$q"*ÔHQ$F¹Ñ¥BK1 #‚È"L´‘À,Á*edQ!BÁ„+!¡‘@4H@Ê,Œ…A¨R*ñ¨Ö$"A"@„@$AÀA•"`BH(À*(B"8H€ ‚€ì €†ÀDAÀ@˜@"A€à†ÁA"`$AÒH‚EAEB H‰è^E1…„qH‘B$ÈŠÈ$)r›$$(°Lƒ¡RH‚(ABLˆÂJ1Hƒ*D!¤„D‚°‚I¨¨8L8Ñ„*$"Hh„àR 0B"qHä)²€A!$ $1HTHˆB DèD!A°!AB((Dä(0Š ’D@!$Bˆ°ˆBøUcÁ"ˆDˆ@BhÂ"A„"@H$"$¡„$$DÀHˆÄ(€ADêA‹’A2"ÁB…(ÈŒ„|1á@)”BðQHˆ!„B°AhŒ$…A¸C„Q*¡€Bˆœ„(›Ä"„ƒXBŠ‚‚ ¡Ž( ƒF!B‹a¸„€(_HbÀ9B‰¢!ƒ2$-°BA¤,Ì‚2A`!˜„"€*!(( (ˆ€ $Âõ3HŒ„1H˜")„ÀA‰H•¡A=AH»!B’€bˆƒ„H.I*Š4ˆ$‘˜*(‚†ˆ+¨„)ÄŒä„ (_£BHƒ‚4()$ƒ!˜"N((Â"(!ƒ$H"#¨‚`‚b€Ú‚R‘ h!JBH$BbB2(€ˆ bˆ"àB¡ŒJN¬£†ÁA6ÁHJ±XBñH1)Ä‚Fˆe‚H#F¸Baà‚R„J$øBI°‚‚B‡ˆ‰”ˆ"Bfˆ%h"  T„Š4ˆ‰âÉ*‚¨ˆ‡ŠRÎØ(„„’¢ˆŠ¥H‚Xˆ¿½ ¢D"H‘BJу¤D$€¡BFá†Sh„‡„¸A’„BHJá"$ŸÁƒˆqb„ŽBJÂBFá‚$„´A¤Œ!„¨ˆAbCÈ(Z$.ˆ d0ˆ ˆJJˆø!2„‰‚HŒ$A˜(@Ñ‚á„0!H1!ZDÁJB…HâƒX(ˆ ˆ(yq`ˆ&ȈÊB„‹”#§”Œ,‚!¢BÈh6hƒƒ‚‚¤(:‚¨$‚ò¼€jH°( à!$…X‚ðB1P‚H(0‰ ¡"‚¨"($„(‚‚˜Æ’ˆˆ" Rˆ$ˆR‚‚Šá²2’ÀpH‚ƒH@H"+! ¢A€è‰A°È祈  "((H€‚€ð×&€À"…`¤(H„ðR E€!!‚¨! ¢ Bø8‚€HBˆ%ˆ…(( "€Ì6Ó€¡DfªF©d‹!Jш!„Œ¤J´"шµH´I4)JÄRnH‰¡A%È!BCÓ²ªˆ‹¨, +˜Žˆ˜øBH†©HÎˆŽŠÎbڨŎH‹\‹MJÒˆêH" :¦^ŒŽuHh‚‡„‚©AX‚(ð¡£°(Q¤ nR&h#‚!Á"BÂB#„B˜!JÔ‚Á³‘YjÉ“¥‘8'nˆ.a.š+Bh‚Êó¸BRƒ¨)%™(Ç‚ÚÉ8ƒ)!ˆž‹(b„"Š(¢Jª‰Š(¬ Ï£ÃQNh>9THFY¸D’"h—…3f‚„„—‚·…^C&á§DH‹DŒ¡TJb…#¡’px²Bõ˜ÈF´a±b3I#²X²8Á‚)8‚j%¤!ª¡ˆ‹!¢xV!b‚¦¨¢‚"C¡’–ôž$Ÿ‡f†¯·tjó]XNH~Aô[zH‰qbÚ"óB{›D¯£õbK?¤óAˆ~HnA/¤òYB¯6vXsZ¸õI¯³ô8É¿,·Yÿ¨/‡ã*â¶ÿûrŽi·?óI¨Ÿ‡ôiéû"«/(öú¯'¬è/¥œØïáû>„N¸‹öÏIñA(>¸>¸”ª,ç‚þ(*¨‘ªkº¨ªÑüÄ´KøcÞ‚÷yqµ÷JZ/…óYI–óhX…÷Qx„ã#Ñ"òc¿…õ1Z¿·õjZ¯Öô)A¦ô[x¿‡õ1X—÷ZK‡$¤õx9§ôÊèûñˆ/+©»/þûØãý*òzô)iöéû¯«vëòâ’¯¯·Âí-õÊXÞÜÏç¿Ìþøøþ¼K!ªªúÿøÙŸ‹í“¶qvh¸(ò¨š¡ú:¯¹Z­ÈŠáK÷´”»ˆ$.1.)?"S·A™1!&?¤ƒ‚±8ó(!?¡ñ1Á/²!ù!R§“.1—="Ç4-C—5½b?´Òè‚òkˆ'"+(/#ó(9?³´KØüR!ëtZ‹Å(/!“„%‚ñ––çA¸ðe¬ŠHˆŸ”ª·„‹‚ "RhšžDʨEMtMOÓÝãò9"?1qá5yç·ò2B¿§³¢#>Q^i<’;2Ÿ“d’(Ÿ’ös.c-k-:¿‘uóB/£ñS1³ó²B½:¦râ:ûk«»Ÿ¢¼±Ót(xAÑ©óÛò;‚ý¸’#á(¸‚ñ8üOçw$(û˜¼C«2š¹x¤<ÞÙ›œr)؈¢¨Š£“ʤ֚$¤\>¤GGŸa 'Cô:dÍA£Áaãáì8vMè(’¬“¬!ôáž#qaŒxcŒx2ÄÁ¯CÒœBáãѶŒä8wMè(ôÁ:CøÁBn9RFˆ7ÇZØBäü:dÊÁãÁAIä8wMÈ"K¬“4¬f9RÄ*øSŒ*x2„ü:$È©ˆ¾È23Â¥/ô)'/u)õqßòiŸ2ò„s¿"ò„{«#_¼ók(_8scø¹7?†ô£7Ÿ†ü3§7‡?rúrA¿rúI¿røyÿ2úVi¿2ò”s¿"ò”S¯"úÅ?¦ö?¤þ©¿„ò£„ü2„?•äbøQâøAbø’aÏbúA(O8ÕHú”S‰ò埄ò„”êkqIéjñAˆ/CøS.Ä+qF¼ôhÄ+yÏDþ6A¿qK"‹!,ìB4*¢B¡†´h*Œƒ¸â(ñH($($ÂbA&è"*záØ”!!ˆ#ç()‚(‚(‚2.ÄLøA(´HN€8Ž€(†(‡2D.$B|"¯µQ­«dôxÂ;i‘·ºéŽã"ó3ù?ë†ùÈ#£÷aˆ—…I¿¼ô¨">2'"û–¿1تú1žŸ˜¢(£8˜Œ:Šò™‚ø2(.ˆ>ˆŒªÊª¨¾”­èêêè4oxŸ„å—òHY…uYøx}Ï×ôH=ïåv]¶4ñ"/1÷Zh‡tx©SöIH¯´(ôJz—¿·å•wXÑŠñYY/7å³õȸ?$÷y˜+‹?+ê¯ÿ¿‹öÛËnr«gIIüËêªûš¹¿©ûš™Ÿ©ù?ªóº9Ÿù˜™›š:©“¾‘›"ȱ›ú))Ÿò‰1Ÿ±¹¦Êªó؈¥‰ª¦Š‡àòii"OÄ•”}‘Òtô8#?†Ó"‚áÖò1„’/“òaa‘?’ñ*!/òBi="Ç´%ãµõ!"¯â8ô9"¦+#)ùb#³c´#ûQ/ÂA±Bx+ùƒ!‡¢?8ÒŒx“[*=ƒð‘„+£˜Ð:š¸ù!9‘B*†ÿTH‹J„Æ®ƒÇ±ni‹3ŸuAéuhüQ9ŸbóuZ=$oa³4¢S>)J÷YhŸòqAƒÖ‰ö!hŸ–õ2­y»U?5T9%ñy¿²ê®ùÊ*.’+Š+i¯¶ùˆ+¿ˆú»ZŸb‚Ÿ””AŽi½ƒŠû“?‰Ø8y‹ú¢³7‰’ª¢²:ò8©—šŒú)‚Šøˆ8ƒªDj­H˜Z„hO+'Bô"$MA«A¶Ôüˆs_„ñ„2A¬ôÁn9ƈ7ÆZx"ÄÁ¯CÒÊákAaÁ<÷MŽ2CøÁ2IqAªf)uA,tsì„x2äü$MÁ§>aÍŽC_„â(³„òÁ*CøÁ‚î93F‚7Çø2„ȯC’Ì«èëü47\òRAŸRòI—R/‘ö-1oö)#Oy÷+"O9÷*"_½óchß9óaHzsiø¡7†ø3§7‡¿rú2I¿rúRQ¿røyÿ2úi¿2ú”{¿"ú”S¯"òÕ?¦ö…?¤ö©?„ò©„ø:†?…ò"†?ô(†?™ô(†/™×,ú—I‰ú„[‰ú„S‰òÅ•ò¤”jñA(kñAˆ¯CøÓ(B¼ôhÄ+YF¼·L¾6´†(hA&(¨Rða´(.8 $ˆ+%Ž(€‰‚äB$¡B BðaTˆˆ#á(Q 8(A.&‚pAèôˆ( ˆ#á(!B †2T.¤BŒ9gh*!TN A iC,hQA&ˆxH1"1(‰E‘XaŒ‘(ˆ(áŒD `„Bƒ8H"2ˆ!‚"€ˆ²È(@1(†18x‚€…r‘ù)ÓÀ$QÀH„…R‰„f$(AB°J1Œ‚İI" V¢ƒd„J9"š„*€Aˆ‚‘(¨‚Œ2B"J*áÈ?5$@€b(!(("@Á!"€BP"("$@JBH ˆd"À$D@bH€‚$ˆÿ燈@H$ÀD%1HD dD(HD0ApHq¨„A˜0H pDˆ¡±B  HB(H¨Nˆ€ø!&óGP((E”!$(Td€$B`pB‰a„) ‘HM5‚ b$BBˆ˜AD9a(Œ$"lˆBŠöq.PˆA!A0!A€¤$IP@,DH$0B@H‚È ˆ@‘‚ (Àž¢HL`Å0D (IDŒD"HDALBH@ˆB"@ÃÀ(@A ’`ƒ4„¢„@PH„‰øÚ`BDH@$uh”F B…ŠH‚†A‚ŒeBC/ˆ IBȈL!((ˆ¢ˆ„„(€$´(Š ‰ÀÍ3I PAÀ(œ„€D„ÂC %C Cà„„H hH ‚ˆ€((‚ „ å°BB‰¡BDB ‘D…ÄA„ „I$‘H@¨Nˆ‚Š!”¤ƒA€8X(„ˆ ”D˜…ˆ ‚À(à„„‚ÀÜ#‚ƒDÁ”$DB€1$ÐÄBÐbB@ìâAF‰œĬ €xd DƒBAHÄDB€HÀEĘ€THŒÔLˆD„„‚‚‰²m ,DDD"€AFT„-QIˆHAHT„$†àAHQ‘‰àˆ†ˆ4ã2ND%!!RBADp$äBDK$pdŒòAGAHØ‚Q*4…ˆLhH†ä’D„HEDÄAAŒTE„À!@TDDFMÜIHI„8̉8ˆ*ˆòœ$@(HHpˆ$%AF¤X$8B"R‚!$@1‚€ˆ (F!¸ÓÂ%B“¤F‰!5!‡$$€AFDƒ„„vRÈd'•Ü5BpBq(a„,¨„‰ˆ†¢ˆJøDH‚H…„ôÈ„ŽDŽ…pˆaH‚†ˆ ˆ‚E„AL…´Xˆˆ OÄNAA„”!'”@AD"%R%™[TáA•è$TAHˆ'"BJCD…À„AHAA¨DÈoóФ-dH„CDAŒ¤DhD((N,8(J4$¡KJ"¦2$*"HD8AP#‚HˆEÐ@hˆ„Š(( ((´NI"©$$Ô„âB¡$©"(L”(L„HŒDh$Ab&@2À„#d!†D)„X‰D#H"ˆ8ˆ`H…‘H‰H$HQHŠÒ(d‚B D†¨ÂŽù3„Hˆ„”ˆ„ˆ@ˆ€ ˆ(ˆ(ˆPA`ˆÀH _ä $ („H0(B„HŠˆDˆ„„ˆˆ ˆ(0„‚„(L1ú(A‹E‰1HW…‡!t)ˆHG’G”N)NArHò%Àu”Ç$-tXЈkB‰$:!GI¨ŠUò,(ÆLdD„Fl„DAQJH„À°„Ð8….$.D@„$L4ˆ‰$„üt¨`$A/‚”ÌT#aFZB! b„DA‹B f„O¢EÂRÑ!ÔñEBFúIHˆ?H2Š!!)Ì%ôÂNA ´„è̈¢I„¬Ä‘$LØH³‰tJøˆ„Šhˆ‹ˆŽˆC(X„°8„‚Œ(È(@DÁŒN„J„©¸Œ˜ˆÊúÕJ$&ÿF+ï£ôYY/$ôKK'aÝ!£òAoÏ"reX&?tf†×”O„òaENäF”m¿vñR,6÷hÛ©ô[?s+”F+H%Ç"OŒú$‚7؇´Ïœ8'èNµEhä--}‚ÛÄ蔕ØIX„ŽÁC˜„X‡˜EÕEúèLOÔ|ÙUx‰ùDLÌÜD¾ü´XþÈÈJü¤$Ïî<ç-r¿%õ>ï‘tIòJK¿f÷vi_‡ÒVôi*$O"ò"g;&ÍIW„Ï’öIL’Öšô,kŸÁõ:qRïÇwWøC9Ï…õzlׄÿ–úçîîª,ø¥¢ŽÄ>þìêψüÇÁ¯T”H„ôK¯Xüʆø„ÄWŒ—ˆøˆŒSØø„…ŸˆˆøDˆLø‰‰OÈø¤¬ßnTE\QßXôÁÄG„ÆüätËÝÊì„ôȤBþå™$Bó2o?2“D5Ó*ò#sGò%#o¦òg,.&OB²dò-!ndŸÒò$¬ÿò%dRòd.ß3ò'&Ÿòò"9Õò±ó*#Ÿâò¥ãO¦òo,.&oBò'"{"rôHmÅsÕUtH]ÔÕò‡†µÿÈéW„X™XÁÙx„øMŒDM„S8…Õ}$ýDÍÿETÉÕMüMEÏDþlìŽ÷Tȋ̋ÄÌôĺSÞròrv¿2óH‡4·¤/rò;|no_&¶,Rf+"KbOÖò-ln%ŸBò(i_RâÆö!d¶÷5vçöycïµõQRŸ%õqm/ööi¦O>ö¯¨ojº"º&öæ¤ÿöúBO…õIHÕíÔôˆÇŸ¬|Et‰ÔôÌA›ˆŸˆØÙhXŒUÑŒx„KˆÅô…ÏØú„MÄÕUÔ]ÌOÜüMDN¶l[„‹ˆƒØˆæÆüxöð2Dô:dO´Äagä8wMè(ôÁ2A,îY‚ƈ7Æ„/CÄÁ¯CòÁ#ÁáãÑ–LŽsׄŽ2A,sDøÁBî9ƈ7ÇJø2„ü:$MÁ«¾ÈaÃè87ÍŽ2CøÁ:CøÁ"î9ƈ7Lj'CȯC‚¼ˆ¼È/ÓÛBúUbòA‡b?ö,&o•ô,&_¼õ.&O8õ.&_¬ñgmÏ(ñEM®6_ÔäjóEͯcúW/rúE¿rúVA¿rùRiÿrúVAÿrú„[ÿbú„SïbúÅæúäø¡Äô©_Äü;‡wÍ¿røEŸÒøžAŸÖøaÝ­oÔÝò„SÝ,O8ÕLòÅß„ò…ßÄø¡_—ÄêñIŒ/Ã|[ìÂøšdƸõhŒ«aÏ„úA/ (A.FxAÈA €8Ž„ˆäBˆˆ„†FˆxRè(ˆ€¨EhBpAÈAˆ#á(ˆ"¨A.$ÀÙ o”¡ÇhtŒbDÀ&ì±AÂ(JT„HEEAx$¡AQ%!$ÒDІFŒÂ…AIÈŒX-ˆÔBT`H@$aHñH„"À(UˆTDH‰ C(hÂðÂ?°ƒº4AHÉ(@ qa2(#E(„™!3°L‹B€0H‚E0ˆ‚3ˆÀA@ ‰CPˆÀ„„*H‚Ⓢ!H"9$b(2„@QP€R!!$$ ”"CRBT@b!j°AD4$!B!`$ðœì ‰5!@ˆ$#a„`DÀH(€ÖĨ(ÀHQ@"D"! @€D‚BÈH „$’‚€:Ó °A)†q„40P„ Q%@9¤B!0a'H((IBqH"0""H@a$@‚AÂB#„ƒôBD!ˆ$ƒØ ¢ „(.!!HH"$9B!@a\4A Ð4ÀQ!B !Hб6ÉÄDB‰C D"L‚„DB$(M HD‚D†d A(,AŒ¤‚„$„ 1€„HTK€áŒD!ÔH”B „!„FH„•ˆˆ ˆChBCˆTHH‚H2Rˆ$‚`(‘MB‰BˆñŠ.! !C“ BBDA@HB@@b@D „@!x‚(2B„6 …„JAˆ$Eˆˆ!HHŒ„H‚!À$H´ „(HC (L†¼DNŒHˆ „‹C0„! ‰!ƒ"(…"òŒ@€!è‚#ËÁ‹(HA¨PA„!$"1$""ˆ`AD@¡A! D‚#Ð!‘ˆ˜$Rá®"Fˆ‚Â(H"D(@"H‚€( @)! € Aœ2. BÜB`„1`M p%!¡(D€A"H 3 ŠEÁ„Œ AC‚Á((!h’XŒA’"ô+Ç HHÀ1€""#2"%,"„‚‚Bd.Q!""R"ˆP@$€! !$ BС?¿„°HJdQ€B’,°AÄX"ÀBCb111†‚A,ÁBÁP%CHL "HA€!ÿcMAˆ@ÁH}H08D ‚"Á!D€Ò¤$ D&BH/˜DH#")‘B,DÄD‚H(ˆ" !@‚@†$N· Rf@‘(HH@D"Ä(" HB22€"‘!Dˆ 0,AD$@$ˆ"‘b"B„懠`D  "…ˆDAX!LAÀA. *‚k!"€LN’ Cä.¢A!HÀD B+‚Ø" ((‰Ñ¸4ÅH  4H!€”A”ABHH€H€ˆ„ CB $¨D€H€ B B ðÑ/„B"HÁ€ „€!$ $.´ò6±h!±X„"QƒD„‚ÆJä‚¡‘!`!A´"É($"D,Â,ACؘFšÈHàAAÀL¡bA‹$#!+D(„š„+aHÿìFшHFøDHBI‘A2"#A&¡BB((J%Ä"(4JÁFR$FCB32Â!2!)H€„˜QˆDÀ`!0“"‚"$ÈN‚F$.²#„tq²HT(NtÐñAHŒñEHJ$4$ËFZ´R4*´!Jø$NH8JA2DJ4D‚B$$DŽÄˆ!B#BŽÚ"¤Iø(KAÄ!Ÿg×ÃÏBw|½rY¸Hu,½8ô,ÝMOFñ&mGÝ‚õtMZ¯%ñRHïáôxGCÆÍÏÕr]ô]Y•ñXIŸCõ]yŸö÷l^OÄò6oBó$UÏWò9Äó-m×—.EßÔö-\϶õike?u´U;E/qµW÷bwOnÕeò4/bó$woCòWR/tUUcõADOTTEO\ñGÏ…ôÌKQ”±QäQµõH_$aDo!ÑbÑ$aQ%±rõ"D熇†j¦òn3F³vöúno)}H¸Rô:\ï³Õh 'C.A¯CB1¶ÂaÉâ87MŽ2IòÁ:K$¬!òáž#saŒxs¬‚/Säü:eüA¾ÂaÃè8÷M(Ž2A¬ôÁî9SÆøsŒJx2ÄÁ¯CÊÁ¯ÄáçVŽsÓä(ôÁ:A¬î9ƈ?ǸAø2DȧCI¼„>l6½ïô9ïô9¯ö5ïö7Ï<÷6O:÷6_¼óS<_¸óqXzq}ø¡߆þ2–ÿ‡ô2Öoô:Öoô:Ö/ö¶öZ6_:÷Z6O8õ:6_¬ñsO,ñSîw…î_„ür–w•/gýVAÃýVAÃýaÏAÿVAá÷ÄS¯aó„S¯aóÅ?õ÷Ä?§ånóHî6„ür¶7…/g¿ô:þkM¯ã½ö>îkeϸ D€dB€DpAÌA…$„8O( (A&DpAÈA…BA€8O(A„(A&„€¸â(((A&DÈ‹SÍÁƒ @±ÒdAfÁ`apX…âÕRPJÑ¢G)!ÄT@„âAD$A,bA$CÈB€!H4dDbA$„2( M$›X…¢8MB`Â=o¼Náщ¢4H`$â„RB D¡B#A $€!%!‚ÀA€€A@! ”LBÈB#\4ñ(!@@9"*TCH("€‚‘% $BN#BB T"HA+d!,$#E"€H# Dˆ$OŸC1D1B@(†˜B€‚!@%# $ H@ÀDƒA$ ‚‘!TD”Ba(FR!@‚ˆ„"!1B!!`@‚…’B$PB!!0B0R +AH$BŸUE3!À!(!"°(‚$¢X€¢x$B$ H@!€,ˆÀ¾ÓŒ@ ’(V„H5HCˆ ØD‚%„¨¥„$ˆ€ €‰‚ ‚D‚ €XR€(ƒ’B (AŠ’„ÐD`‚ð¦'D’H ÄÀ"B*™2$À"À !6,€$CCcA)H(!A$($H, „AF)-¹Ó$ “! AT0@‚Ð!H"h%!B€AA"ˆ%#B€P"ðÊJ@$¡ *±BFÄ"Ž @!B„AÀA2‚€!AŠ L)(D( B¤L‚‚ƒ‚‘†Dˆ*)b‡H8$°„"8‰…"޼£ØB¤$@A8$€XD((`A‘"E‚ÑH„2¡"ˆMˆD(" RPALp4€”ˆD$ˆGˆŠQ!@‚ÈH%DJ„,8d€D”FD!Â4ˆFD0KBI`A‚`BH$LC0†‚@$LB 4!A!Ä+HàˆÜ=±(h]!pI‘(AE%ˆ²‚ MAˆˆLÒAB&4[‚aI"I4„r4¤‚D"PQH A]„@!EØ%CÈ„…(Ñ¥B‘BÁ…!ÄH‚!xD!@!PB0#AÀAÐLd@"H’a!1AHI@"!A‚pˆ`D†"%ć£LDƒÄ!h`ˆ0‚((‰XD AAq#T@@0$‚(`!CDD%…D„Dˆdˆ!‚`„pE$(BÄFHH¯i !Aˆ!ƒD1DŒ"€(˜$À(”%ðD°#ÄD!&DBC1ADBB$HĈXˆHAiAC"T’(Cd„l1³"@$„TQ"…%Ä0"ˆ‚€¤!AAABˆÁˆEE„”-X%9ˆ ðùX$pHBA„"1hB"@dHL“D )($A$‚JÈ$(ÐA(DˆA‚Aˆ–LÀ…‘‚p‚((/¸3œ€H‚€`BB"ˆÈ€H€ 0„B B‚Bˆ„@ 0„„ˆˆ@‚ô%ÍBB ȈhA B¢Â"ˆˆHˆH€HAH„‚‚€ˆˆ&(‚‚„,8F)TÁDÀHAeB‚K!JÒx4†&¤‚ˆ&"‚EH!"†" K"Dˆ„È„‰ADÁˆ”ˆ`˜EAx#(iˆUhALBÜAJÊ„ŒÈH…†ŠœH˜Câa Â"BAhF/¡†D$HÄ.AÆA(MM"Q,S9ÁpAâ%´CÁáP"TÍ„âTD¢Ax…hˆA‚DˆLH‘ˆ€T(!(>„Hâ$=oD)B`(H$0„M(Šö(PƒD‡™)ĬȤI¢(AKHC$L"E D4AL”B…ÌUÈHIDžBAC4AB„Òd„#tAadN!‰Ñ!ÜÒ$˜B‚_ÚKñc/Í*íC?¤rKÒ¢ò+go$úS×·Œú²KÇñÈ©Ë1Yô1XŸJ´#’…£ù;^1_)ó•ÔH^,OÿÒ/'õ15O*øºo!óU/ù‘yüÒFURYüR’^^_)µÍ(•ñ‰HŸIý˜¯áÕñœ’O%¹ñQ]œøT™[ñKáÜraÙü/ÅáÅó¤bÏ+J^/)÷´ôÏ24[5òH*ÏæV7¥{FòjNm"iùtÕ—‰,³VéSýY©ÏŒ÷a]ÓÄ…ò„•¯óé[¡}o#÷‚?#ýbt[µ_ÿuÔú’k—>Ô?³tóTÂ_8q%¤D_xù•/ñÒoAõÈqÜØÈµý›OUýÙ+éA}™ñDKÑßcÕn,ô“eéáò&tï!¸ˆáñ8u›£o©Mò&N‡æ¿$òGK­C7¤§&?v¶´ÿûÿæèKó´µO‘Ûœü8TFòq¼ïv!äRò1<Ï9ñ³Ô?SýÖ3,´“ýCÞQOóÕÑo#ûg¬/kó´´#û5ò?_a|o]½tEeT/Uµ—õ—ÔŸõýØ9ÛH‰ýIÉñ‘\ß)ý˜ÿÅéiñ””[ÑÙüÙ]Ýóô{aŸÖtIýTß9õœö¯Æþú:O,´˜½Xÿúì87MŽ2A¬ôÁðáž#taŒxs¬„'CȧCÈ«AèëA¬<©=GoSôiOoôiO/öMooöÍgo8ÿÝ._8ÿœ$_¾ÿÝ,O<uìnu}ìjñe­/Kù¯/ZývÇ¿ZýÁ¿ZýRãÿXû6áÿ|ò¤Óßoò„ÓÏkòÇ›_ïòÇ“_íôã—WÅ~ñEŒ?_ùWÎ?^ýÅŸÚý^ÁŸÚýRáߨÿVÁßøöÄÓÿéò„ÓïIòÅ›ßÍöÅ›ßÍôá¿×Å?îóMÌ/ïù_Œ/îý^įê¿^üªÞ«áïê¿ü|hŒ0A,2E&6A,8QˆB„蔈ˆ„ˆ<Ž   (A¦Š)„蔈ˆ€ˆ8Ž   (EhJ ˜#8„蔈€(ˆ8ŽŽ(†Ž"A®ð¡#‹t4T$Àa†Da(L $‘HA…1d°%E!†¥‚@´"CS„„‘ŒAœTH\–LB…DbA™BÁ,)‘ŠiÄ!Ìb(”È!‚"‚D@ $b‚ˆ.¢@(†!DŽ$@Å%ØAB*(BÂ32A(("`(D`„(`J€H*$"BF"”AÀB‚€²(”ˆ!†"‘`$PBpA!ÄD6ÁD$2H$âQEaˆÈ@D D &%Q’A„!P" A€HÁD 1!$  D@r8*€&@D(P(B„ᄈÂB¤‚‚Q(B(T8L$†‚$‚¸(Ñ(Lˆ(RÀDÄAHLaDL"·­¦ÈABB( $"JB1!$H B( D2A0A!$@"A$ #!,Ð1B BL"„D@1H€$"$1$A@TƒD‚$‘€A@I$$ˆDƒÈÁ¤ xLB,ïW„$‘LRRdLRHAH°"#B™ˆ‹$l(8”LHA§€BDDQ‰BAŒ0DB@€„! €CC$H 5{:2H ˆ„HKAH”€I€$$H€€ $ AÀB€D,!ጃD .ÀH$„A !AB¤J0„„ °Dd! $ " D€ðD\ãP@€„0MB„@D€…$$ !%!X¡PB!!B€!Dh!Œb¡$$(ðoOPAF„#"HA QHÀE„\‘ !„€„€LB$CÀHHB€€ÀS°„‚BJB€@BJ @„ ¤ €Ïø ( „ HHBB „H€B @€„* d.Çc ‹AKBÀD‹!(€„F¬„AH¨A@LÁ $”4L¤A$À-Z)"´J±"2F"(BF‚ÂBb¡H$(ð¿"ðA$„‚Œ1F22GDÁEÀQ¤0AB$$R0”ID„€$TH€B $„d!D€!Œ4BDBJ±" #OH!±48HR$LV€AH¨B0LeEHOäd‘D H $ƒ$€dAD„€  $ŒЄ¤Aô¾Ä$_ÅÒDó$E‡—•1ífçeÇÁOÂñ,TOBqôDßÄÁô\›„5ØÜô\ÇUWEMÏÑôX(“ÅÝL‡…×ÅŸ„ÔLÕDqtEýLÕýA_ÑõHˆåÜÌô\ÇEGÅÍÏA¤%RMDGEGå¤ÕLÑgqtBúLí&ô6Vjš"*ö2Z…rzÒÄó>N‡…§µÏBöTlãQÂ_ÔólEÃáòEfò^fgCGÃMGBGDOQôM_„Ôtt¸AÔØÔÜQÜGE_DñLMÅy¸AñHL×—Áß•ÕÉQDGDOAõMÏÄÕŒdQ×ÄÔÌÔÌQÌGEÏÄñLLAJáDttô^H­EVFO!õJÏä•f¶¢F*æ"SЧòBÏæVއ¡¯„ñhlOAòz$ÏSu|õ},_”µuXx^þfÏBóp2ÄA¯CÂA£ÁaãÁaÁŽsÓä(ôÁ:A¬î9ƈ7Lj'Cü:$<>ì87MŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÂÁ£ÁáãÁaÅâ8wMâ(S$¬S$¬Aòáž#qaŒxsœ‚'C)|:”£‘âãÁÜcÉýïôy}ïôy]¯ö}~ïöx<Ï8÷8fO·1’%üD(‹V‡F¨v›q“cƒÄOC±$ÂQã—÷TÏS³âÔöDÏRSÅOÇòU=ÏTváòEFƒ28/‡ô(>A.,oqôm>_ÄÔô§ÁßÄôMÍå|WôEÏÔT§‘o$átyùRSET…/ôHŸ¤”A?#ó:(j†Ä+"+'¯¦óhlǧ¡¥ñjnoBò\4ÏB<蟗ñDH‰thøY>Q‹2sU¬#*²1óQƒ÷}=OÇÿ;aÏÂöm-OÆ÷%uÏSö|%ßÇòDY‹Q…òx8j÷(r¯#÷w,/#ó$6Ocó6eÿãµIñKËïÑÔÍtMüM]ÍWoquWý_6O´µuSqSúH[R,uWü,ñ¯‘ôRN3nè«c*$¤t.r/ƒ÷z(ïçòLZ¡ôZ*ßWófŽcÑC¶,ôH…‹D‰ôH1~XŸƒ“8L±$¡".1zµç×óu|O“ö)dOÖòelÏÒ÷-uÏSö}<_•±I´´xâ‡óhz"ãÂò62.6Oróneïs÷E»DŸÑÔÜtMüMNÝ_MEoQt^üWŸ¤´´Sñ[Ÿ¤Õ1qôM,ñHI¯±õBf¯ƒ¦bBNB.r.b¯ƒöz<ï¥ñHX¯¡ôz,Ogóúçp2ÄA¯SÂA£Áaçì8wMø„2CòÁ:SòÁîsaœ7Çx2ÄÁ¯CÂÁ£ÁáãÁaÁŽsÓä(ôÁ:A¬î9ƈ7Lj'Cü:$<>ì87MŽ2A¬ôÁðáž#qaŒxsŒx2„|:„<èãÁ?óÊlïôh|¯ôhL¯ölxïöh8Ï8÷88Oxµ8òÅZŸ‡òÄZ—…î~×…î~ß„ørü÷…~ýïôyýïôyݯö}øïôxzÏ8õz>O8õ:6_¼õ{>_¼õ[~u[øáWß„øs×÷…?wýA¿÷ýA¿÷ýaÿ5ÿA¿µ÷„S¿eó„S¯!óÅ[¿¥óÅS?¥ánw[èn÷Aˆ/g}Sørö+A¯ç¿ôzÜ+aÏÇÿBïÏM¢, $(CdBB*"CtaÈAKA€<O(I$$„2D&$B tAÈA…„D„I<O(˜DBAB(CdBFB tAÌAHH(È#á(…‚ä„FˆrDhBB‚“á„B„B„fFDˆ"ƒ¤IDø!HÌ¡0D!Zh%M#“H8MB€„#!¨)1B `$@¢Ai3bB„D¨AAJñGÿ ®€$„HÀ*2DH‰BH,„XB(Œ´B)!6”BH)(˜HB$H# A"2'Ä$€¤„BL$'ZBHP!`*AÄ"€ 2D!B!#´!‘B$IM!$A(E"!€T"HHK!HP$$†tAPQ…)Ÿl Љ@ŠDq(&"’!aŒ0!(EH*€"H‹‚$ÀX$Œ@ˆ…B¤)€B!pBÈÐQ" É‚„D,'‡:p&„BÂ$1€„bB#R!d…TJ‘C(G""AQ$”(B´!4(#©DŒ¤E‡!ŒAÂ$$Fâ$T8@œA!4!!B!à™ "@A@D0A "0HÀ(@ˆ`… $BÀCB A%ˆZóBÍ$Ä!p±HhA`!ˆÐ$(AŠÑL„@ƒD@€ @€A$@MƒP(PHŒØ,‰,,„D„ðlºŒB(FJÂd€˜D(Dƒ"$"F¨"€+ðdÀdLˆáT™ˆC5HƒF$ Š€ÔH„Ôˆ(AD„ÈNVb!F¢%ˆàD8àC€‚ÄsG„­$A(D)’$ "H… D(€R$C$„B„ h„B€PHC ôa`„„RAH€/-FHL$6” áH¨AF4H"DŒ¤Aàa!pDA $ Î(DH@„!ˆE(䄎A 1‚C‘ŠI4J(ƒd,‡ˆ$@&È«ƒ ”,&È‚°$H !a‚@„Ô(%!JúD0„$DHˆB H ˆA†"A!GŒ%BHÉxArDH!”Èï=„'‚DHDDÌ!6„H€D”‚…„AD$ÉDh!!‚`ÀÏ“D"D8"AU±DAÄ„( Be,ÃňâDT¨L†„P„BKX@$ب… HŒXBˆAlŽ%¢AAÃDñˆD¤$˜„BŒaˆHïdA!¨(àHb\ÀP”GE!BcI€aHD‚DAABAIÈÁ’p‚D $”DHH¤ À!³†.E`*‚Œ$0ŒCq"(hB‘LEáBDL„‚ F!†tD„„ÁD€`(H†$‚@BbˆD‚‚€L‹Aú0AB! „D€ (Ð$JAI2AA0ÈBDHJˆŒˆSAƒ4J’„ˆDA,,pD NÃ!D(„EI2(!A$D‚ „ˆ€ˆACABAB „@HHÈPHABXDBNˆPB0)˜A_\M!B5$"NÄÀH.D”8AB0‚€2Â`K*ˆ&D HHE‰Ô(Q„ŽA‚„ p˜„AÄ#%„•BHR$Štˆ2¤Â¤@âÈ5Ö@ˆ(‚J" ‚Hˆ(‚ ‚JH$!B@HANˆ)„øT÷€BB B&H) " Dˆ€D(„D‚ @‰H€’Ü1-D.I(@Â#ŒBá$ A(C\Dƒsa”A1˜™HƒäÂÈIÈ(M8A‚Gˆ€BSt‰V„‰E‰DÁˆIÑäd¨EBrArQH8-„`TN„ˆ)´«‘ˆ!a·;°A!p!4A „fD¦ð(„éMˆ0”K$%K,( Œ" FÑHIň t„AAÑ4ÁWˆB‚‹Œ'D!HHLH„ÈÄGK…’Lƒ<ŠÔFHè,9Ü%DQBÄH„HEÄ(°„¶(J2A!b"D"L,-‚„J´TK,C‚`AB’‡DƒD„Ø\DˆAG(‚†X$DFhF‚!D´H”ÊH;Øð{:N']*ÿ"d„§´½*½nÏ„xHùz_ËûK‘A×ñø¹ï±óX¯áõ¨eNa]Áù)$?%ó„)ï;ýr˜òœüÏ…¹Xåǵ¼¹4©ÕñɈßÙœü˜X—L5ÜœüÜ—DÅñ”ÛÙ^8Ÿ…ñ˜ŸÉý\˜ß%ñS\ë™K‘O!ñSÿù™]ÿÙeÄÕüÖFn¥kÏHýH"¥1’OIýLh£X2/$òlNq•{Jújný(ß’ølß¿‰¡1K‡.ÔŸ•ùÜzï÷;¯ÓÄDò…±Óèh±Óòl_o1ù’!ŸÆóXøÏƒýtÔ¡K•OQ}ØøMXÏ‘üŒ—ÁDIψùŒñTTß¹‘ñÝÅõ˜ß¡ùQÕŸ‰±ñšÕñSXkÁï8qä”Ô‘´ùŽÎÎo%Ô,¨Þ¯dõ‚¿;Nò'Dö¯6òEH½J·´§´ŸÆô­èï¡ÿ=œ¾OJú¸ßƒý;_×ó^¿ûaFôae_ÁóŒ!/{ýa¿/óÖSŠì„øØϱüÿTøßÁéK±”ù™ÍÉŸÙuÉüÙÜïÔÕtIü]\Ïô”ÕŸÕùØ9Û]žÙŸ•ùØŸÍõŽÅmÊßäx‚ô†„mƒMÇ¿ØtËý×ÝëAÝMÔoŵ†ôŠÖåùÜ*oõšÒ$ùØ'ìÃÖaö#F—´gŸ¤Ô«ôK/§ÖŸÎö»ïƒù4”º²„ûü\ßûõz÷óh]eOVôaµ‰ò…÷oSüÈ=±ÓŒüÈxËõ¸ì<7MŽ2A¬ôÁðáž!ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsÃä(ôÁ:A¬î9ƈ7Lj'CȯBƒ=èãÁÿßsþ6EŸööAŸöôaßööaßÞö„óÿÏò„óÏKòÅûßÏòÅó÷Ç~wü¡v_Æø²´ÿÇèzÿ6ÅŸþÿÁŸ^üáßÎÿáÏÎò„óÏÏò„ÓÏIòÅÛßÍòÅÓ×Í~}]üáWßÄøóÕÿÅøáÕïQüéÝïüéÝ/þÍýoüÍoO8ýß.O8ýž&_¼ýß._¼}ßîþ}_ìþõMŒ/ïý_Œ/îüįî½üêΫáïìÿÁ¯ú JJ‚rDhbF¨‚F¨‚R†ÈA‹‚´(¢A‰Š¼â(‘!‚J"¨$Ž2CdJF¨š*(õaˆA‰ˆ”ˆH‰ˆ<ŽRŠ$¤BŠsDèJa„Š)„(ôAˆ”ˆHˆHˆ<ŽS HR‚BŠ3D¦$äÈ)Šj8N$„B F$”C–„",(’WD-xÀ(°ˆÂHŽ$L( âc¤SI(‚ØAøAKÁЂ(ØH!h‚ƒlF‚xD’„€ÈAMÚ€ŽHA‚Œ!j#Üá5D@aDA…„HPH‰AD`!F”DD2DQ@˜„€H‰ED"A$a¡AE…"Q„’"ˆ$""By4€$H$!D2Q 1H!@!(JQ!™$B10"BB!…„ŽB T"FóT7 @ AP,$DÂ"0B U#‡!$„$D BJ0EV$!`R°BQH@A,A™…(&Q„A%(‰5(M"#BD!pA¦B3±B‘!@Ñ„„Ò,aB$#D!„3aLh&8ðAAI"B%BJÑB!(HA)„HlDŽC$CA"Dh%|„„P‚D!D„@@(!"0H@4FH$@"ABQ)H!$ÀHS¢ˆBL@€H&à"M$!`ÐB„(!$(Ð" AE„ÄL„!ƒD Ø$H„@H„$ÐÝEG¤!‡¢Ct"ÄAHAˆÀ‡ÍB(LD’-$à ¤ ®MA"0AAˆTAð„(†!†Ô(!–dDdˆ‡!D‚´ÚŒÄ")A4E°„tBt”C*r‘õHo³)MBA@D"@A¡@É€„C@H‚$ƒBH%’”%Š¥FXB@X"Á?‰K’D@Rˆ0D#’!ÆD„ˆA!KBD@¨!CK!ŠÄ®DàJA„ˆ™„ñJDAŒ¡H$˜‚ 8X†À„‰„¡C‡hÀEÀKH°„1‚‚JŽóÓD”!ABC$(B„òDÁAITB &0dDBA'"ˆ(Jd(I! $bH%ˆXf@ÄÈ…„‰a$Œ#ßt D$P!D&Ä$B!€A@H@bBL@„/‚B'‚&R„!ÀD$A„<NC5iA!Š‚ÂdhŠDBCEA$AˆOF„D”"-d !„!AD'(H¤L„'È‚!i‚1ˆFhhKD$Q†„„Lò»3ÈD€LT‚DCAˆ€‚L"HT` „ˆE˜ˆBäI!@TAˆ‚!ÀûsØBH$H‚I$„"‚ D$0„ÊAG( `dD@¤‚"G(¤A†BÆD@‘Bò2  0‚jH$b"LH`HA!A"ˆ!&„TBÈ!+BA$"0!‘A(‰ˆ’"(ЂÂDˆ!)„ QŒ<ßp"„h"DEh DAPDND&„ B ‚"€ @2D$H(à"B$LD)‚‘ˆ©„'MBH€ÄB -AˆEAC!FD€B,”$ˆ!I2ƒ‚BA dHˆB„†"Ñ4„†2D$"P(B†D%D–H‡(†)D@(äx> ˆ„‚Š"$$""ˆHH€Ä¢( ‚BC„ „ˆHH€„‚A ($@  „ˆ‰”B€„øÓƒ$(B D B@h(€ .  ‚DˆHH@@(", D"B€ˆ‰HHP$ÂÂü;•ÐA´"T!…ô…a‚!(EñD!JH"ÈFADdBÐ!”Ä($ACl, RÐD" ôR$ˆN$/D’(”ÀIE"cè$"bŒ"FDbè@$ĈBFH”‚B©X&ÊðD"A(!°A(F"BÀ„,”dC¨HI(( " Œ#bB%-!)™Â°&@Bqb!FÒb(FB6ÈB-„JØB%‘‚‰ƒxˆ$Gˆ0D`HBàü8%!è H,”$I´„¢LŠ‚("fBô!†HÈ Â"€œ$ !AÊæ"2„K(CT!`HÂ"F„ˆÄÄ(È!ˆÈb"CHD2„Ch$E(dDB„FÔˆ”¹\€ø„àdÒ5ò&B74'$!-gOh/vô¢â}‚A7vêÚ&Ò&ÔbäB¦%KÄ?døcfN$K(z|brB¢(ohÞ&¼ágõ¤‚[¢#òq5O?¹5™ç+J\”Å-Æ?TòrO)ó´Õ·„'„‡¨ŸÈüN¨§äö¨Â]¢#rAôÌ‹M‚iüŠFF Iܨ|B|B}„òŽÄ«$'„'(/HüNãT"/<úeFeÓ#rBñafy²%øeÆ7(m"k‚.Ç;„O,Ö&Ö&ò"DL„öÄã/r|ÂñÁ!_6Ô'ø‚"#ìfÖ"¾&ù2ÔÖb"K¦m÷/óQsOü¦$%äìö¤¢Løâ5½±}÷‰¯rÉûimï‚ú.¨Tü¨*AK¢mLJ¬„Ô„<Ž%ìÄÄHÏhØBxÂh¬KDÉxŠb¬¯dÔ,xëIó'Eföc#o$Ô3$tCâV´¥Þ6þ'‚'jOJÚ&ú%Á/bôb&odºæBäFÖgöÆc_Züa…o.òÇC/(¬„'l/jôôöo%ÿG„®&O*ø4³Cý±wî'?^¼ÔUæVòegO*ö³÷¿Wûÿ8_¼ôƒË¿”úê)þö­âo¢þo¨/jò¤¢O2ØVüŠNÆþÆÌiÔÈdÄNLÏ(ôŽÆ¯ÄøÎ*O,ôˆÂ¯$xË©¼ÓÓqö#FFsGòBC9ätrbôáeO(ú'†ob¸¢ò„¢o^ô¥F'f/f’bM$OFävúÂbLîR|ÁrÂóÃÂ)ì,òâF/*÷ÔòK…obø¢&O(ûwñoqÿó&FÖÔUôa$Fî:ö¥ôïSÿû;§=›Ì­É¿îòë.Ÿþö¤¢ÏÂú&¦®&O*ºOÜo|ÈîÄÔˆÔLtLìäü„JÏHÜJ<Ê'¬ŒÜ*|ÊnÌßß 'Sô2$MA'6VŽsSä(ôÁ2A,n)ñaDˆ?G”'Sü2%MÁ#ÁácÁaAŽsSä(ôÁ2A,ñá–1Fxs”'Sü:%MÁ§~ÁaÅá86MŽ"A¬uÁ îraŒxcŒx"„ü*$È¡èáü;ö-foSäföAnF/ödföädO8ÿæ$O8ÿ¦$_,ÿç%O,gänwgäj÷e„/kþw„®åoSì~þÁîÆ/þäæoþä&O8ÿö&O8ý¦&_,ý÷'_,}×öáöwDnõE„?oþW„?~ÿůþÿÁ¯þüáïþþÁïþö„Ãïîò„ÃïjòÅÊÿìòÄÊ÷ìîÎ÷ÄîNßÄøâÎÿÄøâÎíįîœÎ¯ÎœêÏÌÞ.ü2t , $,2D&$¤‚B*8B†¤‚H*’B¨È+!Ž(†¢$‚Jâ(2D¦$ä*(¡‚B†„¨AˆHˆÈ#á(Š$¤BŠrDhJF¨ˆBˆB„ÈA‰ˆ„ˆ„ˆâ(Š$$(¤(CdJBÈ3ê€"$B"D*(äBH¤‚àdHI"ØD‚($4‚ (–j¤‚°$ˆÔ$‚„˜DDD"ˆG„#4‚B°FB´HBDB†ˆTJ,”ˆHDHAˆF*H(h$†8B¿F¡ª( "DbD!(ˆf!(DHB.40d%$‚$ÀD€(V‚! „BÄBBƒ!`¤A$‰d$@”D„ˆFH0H$¶cE"$(€¡BP "EÄ!€$FB"H"B‚"D"AB"ŒT!!0!H"(`$ XH…H!Š)ô!^ H…BH(%!"€D(@2!@‚aB€(@B! $ˆ!€Â@€FD„B”³KTA*H@’"€""!*!D‚4D`&†¢&&B¢$$B(E$$"H¤F¨!@‚„)Â@èDЄDJ DB? ‚0A"!6A$H!@À! "@„A!ˆÐÑš‘@Â$$('D@'$$,"À$DTBA@‚€A‚C2‚L€„H±H$ÈAÐ(H‚ PD„ÀDOú-$@‚0"€„…šD "#(¤C)d($,2BI ($J"CB%ø„R‚„H$…FD"$B„$T„€„$DHØd(ÔBŠ`"$!@”!! €hBB„’B@„B°B BBÐB)$*`D!FBÀHB@ó‹Á@d!@b$2AÀ4Lˆ„‚@$¢€È!`$D‚DCˆ @‚°„Š‚ˆ¤ˆa-„@ÈBPH‚D‚ÄHÁü<(˜!&!(A¨"(B!F""”‚‚D€hR !€B! Bˆ"N#AHˆH(B‚„D€JÀ„FB`ˆ!ñrD(†ˆ(I@"€D$"$K¢PA€B(%B"A‚!"H„DH@e„$€,4´ˆ(À(&aC$"ŠâR rA¡B(Ž"àBDB1‚(M!"ˆ!!C(T€h`‚*dò4†B(B@dh"d$ HÌAŠ$MDÐ($8BPï ‘A0‚ ˆ!"ˆ€‚"À!((`"ˆ€È"Ð! ( Jˆl>2<$ÂAà$È$ "¢ A"$2A$„$$($2A)¢B‚H€T$H""„”HP!Ž"†R!ƒ†€„€ô( ”![Œ‚((ˆ0B(Dˆ"P$ˆ€ (((0C(@€0$*JˆˆBBBACÄŽó Š¦(D(‚BBˆ"€(À$!((HQHÀHIHˆD((FA`B#)‚„!¯A@„"! Bá"ÀAO$ ´B‚L2¤BD2A&a&%– 8‚(!+$1 Hƒ$â(‚‚@ÌBL ‚•á(>ô$€D0ƒ(BAA€È‚"€!‚H0$"B,˜ˆD‚!Bˆˆ„‚øi®€Bb€„@H@H!‚‚B"€ˆÄ@`L‚ é!‚@$Hd@2ˆ†$î3Q!*”DÀaEÂ!dŽaŠF$¤$3IÄÃ*l"bBB¢„ „¢,%²ÁŽa(*4¡È¢HM‚.Á"&‚ÄIÎ&Fa(H†R!F"†1NFI¸B˜BR„!XBH„’#‚„b@"¢‚A,ØÆ!H`$(@d ‚!°ÄI¨‚@b,¨„!B(ÆuHd!‚#‚B#"…HÑ„œ‚@!H†6A†Æðˆº Hà„ŒBŽA€’"C$²a8!PˆG"‚NDÀ¢(H!€RR‚%%s4A*T!4ˆ&‚ÊfÀ¬F8„Ž".$‚(ƒd$ˆC$ÀˆH )ÄÈ!vBqf÷%$}Fb'4="bôf¦otòBcohü&¦M$tòƇgr_BÔfæôTEøgçEt'÷ädohøaA%ò‚"ojü$äM$eö„„/"ØDòCb_HøbÂ?2øÄeUtvôd…otñ'OÏÊòÏŽ…Ø;äˆöì…‚üMf?”ö®ÄOBú$&ÂôÍ„øH‚gÜAEôD„m†,Ôäô‹HÏÌØ¨Ò8t‚øÌŒ‰>JtgFOfW1'$/ft'ÖwøFã7hgbDØdþG‡onô&DWrma.DWxüG¤GhoJôd&mÁ,ôÆB'foFøDÄOdþÆ$G"-¤Mã'\O"´bèjôG%MÄOBô¥Æêhô®LÏòòNȨ4†Âô%ôþDá—ÎgBæú$åÏÞö/(­ˆ'lÝHtFôÄ„o$ìHtŒXêϤüˆHŠTêϤøa"ð'fWTot²EÔ#tCóf'dö§Æ/"þg¦ohò¤„bú'æ}gGTov¸3ôedöfF_^öææODüÇgKL/,üBÂonöÄdonüdädª(oh¨æov®l/,ôåÅoWöde_DôeE/>öä¬íÎÏØöŽK‹Œ/¤ü­d˜öÎÅ/¶þmŽoJò¦¥oòúm¯¯Ž´ŠôÇÍ£tDÔDtF4ÂoìøHÊÏèöŽH¯,ÈÊÏètÊ9ÈÆ}d_trFñAB=B7totòÇf:ØbÚfú†$OjøÆfxöF%Ov²'ô!eOöaÆo^ôåÇTþÅg{LÎÂ/$üÂFoLöÄfoNüd¦iêj²¦ìdþGáöagFôeD_Tödå_.ôã…ßôþÏlߨôˉ4|‹ýÄ!ŸÎ²§Øëú$†gHoHü/¯ß¦úÊJtׄNDODÔD<Ä/løLÊèôŽH¯¬è$üÈNï˜ô›…p2ÄA/CÂA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/CÂÁ#ÁácÁaAŽsW$Ž2EòÁ2A,Aòá–#qa„xs”‚'Cü:$<-áãÁaÁŽcÓä(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB‚ŠÎëÑqþ6AvöAvôa_vöa^ö„ó?Nò„ó/JòÅó?NòÅó3öáwsö¡v[†/k¾wèzú6Á~úÁnøáOnúáî$o8ïNò…ó®$_<ÿá$8?áz?ez·eø³å'ø¡åo3üéío1üéÍ/þííoþé/O8þë._8üª&_¬üë.O,|Ëê~|OènôEˆ/nüGˆ/nœÆ¯îœÆ¯îœâïìÞ|³J¤$(CdbB.†#¤‚#ôa„äB˜B.$I„мâ(‘!C˜!C˜!ŠdjàJ.„°aÈA*H¡¢¨M+!O8b„2„„¢(SdJ¤Š*(ôaŒÔHˆ”ˆHˆÈ!O(Šd„‚F¨(CdJF¨¨cˆx„£$,(Fd&ÒhN`BÈ"‚¤hA($Ä!BŠ&¦ n"ˆ"C(F2A¨À$Bb@é#ÌI'Z Äé`B"L‘HÁM‚ƒ”DA„‚`˜Â3Ü1ôo"@… h‚DH`!B@!,$‚IF…$’A‚@BѨBA"P„E%$‚ˆ¡ÀM³‚@$@¡1ˆB*$ (!B ‚R"(` @H @‚@ D€ Ïä E@¢„ˆd€"H`D$bDBB"#"!(@BDB,D@"$ADP$$0„$D ¬¤3LaFDL€¨"hDjB`D(#¥$(,¢"@"B H…H&$B!PL˜BH¡ID†ï¤€!!B$B*‚ €,A@@D€ ŠM$D@tBdHM‚AA‚C2ƒA‚L@%„H%D ¤I A‚GB#DÒD(GÁ@6H‡hÍ‚,XD'ˆ HD%)ï+AB!$!("AHH€„$‚DBDÂ$$p"LAP‚„D)0H€„UÁ|C!!HT@b€¢DGA!°"%A`"E! D!@,@0H!!Hð)þA€$@„A"HDIABA0„ ˆ!LD@¤¢A$AA0„0„¡@ÀDD@DPHAA…˜D ‚„‚ÅÈæCˆTb@C,1$Š!BÁÂ)!(€Iáh¡dIè"ˆTDÐ")’$ˆa(& (I¡ÇD)"!(ô Ä$€ †iH„€X(0†ˆˆHï/D!€L„D ”…Ld$€„ˆH$‚ALÀ‚A-„@ÂAˆ$„@(H;þdDDBAÄ„0IJL¨(TO(!((DÔA!ÈDlŠ$šd*¤H‚C1‚ŽL$˜‚B…RDL,I¤A&˜„ˆIˆCe†$d˜ˆˆAApˆbˆL’†Hxˆ "3!@ €!@D(IÂ#@@&#a!L %%$D$@Â!‚Tð"$&Á! („"˜$0"BAJ(äH€xâAÄ$„ pD"(¤#$ÄD‚h $B|"N`gBBC‚Cb„HD ÄH€DH$„ˆȾ!BI1Aˆ$œLD€0„ H ABCRAŠ$„¨$ÈDL("R4¢CòB!-”Q(—H)ÒAŠ‚Z)JD! @!d„AÀ½á@ÂAH††$(‚±$ŠQ˜D"`BD(b !ˆ:$""2$+*0ƒDL¡ˆ(0B`*P$@†aˆ@H‚H4B¡!ˆ!A?èNa"B`%VD€EAgª1eŠ¢Â‚D À%BA ¤H ¨8‰¢€…DF„‰C4ˆH¤„,t„l8€ˆA")€$!I‘B"@……$À‚@Dˆ?DI(,ˆD(!€(@(0H$H‚¸³ßÒBä"ÆAP$,†„iŠ2„cUFJ2AD„ÚAÆ$ˆˆ D¢BA:á"!ª2$ᵆÂ$D4¨|X"&!zD("2¤†²!DÁDÈT‚ˆ„%tHˆЬ„)ü…›B$(% X‚‚‚$MA;±D±A£Ê„¡HFÄD@NcÀAMNƒ(Ô‚äáˆÕ¡Bà!´‰ØB„RBNŒÀa‰XHC„ „$(x„ŠDH Ì8µ-DÀ!‚p„1„O$ú†AK0!j™!TB.àB,HáFâ!H¢0„#ˆ±&¤+I2&*RBFl|1BD¦$,xXÌŠzX$CE#h($$IT$hȆDÄ%„2BÁŸîFá2Ö%rg¢H-C="7fKb¾A/~þ&Ro"2´?zÿ¤qo3ºåú¢beÒòãr?kòc§Ow÷ÒB/%øBr/f´´â/æjª2o*¢+/~Þ÷Gb_~òòÁe?FôeA//÷±å?óøDñ÷rŸÕ“øZù·Òïw©óCìã²…b*?DþoI{L_øHHܤDA§lÆîô¼F|LôÈâNŠ+ćDÏ<4Á-g/*ü$&sÔ1Ô"ô"&{$_ö7?&û‚2{.f?æ+»æúåç/Vô!änA_~ÿò'/3¾3ýdc8ôRâmÒ/f¾Ö¶ôövt+¶O"³æò4w?ùáRoòuö?Q´aîöÅö?^òq#=ØO6ò—X5ùÚ÷óKϾò…EŸ†òæ*OXôié?„tÆùÅTôAÌF¸Œü‚NŒì„üFBÏ(´HÄÈ/dôŒBOLòc$g/2¶EtCÒ3ö"CF¾eùæ2wo/jû$”+ñU¤?êZôB§öaeTöcæo6ýW']þ÷³o4ýS?=þrÂ.”kôO*ñ×¢®”m²K^{ôÁõ?rÿ!äö%%Vöaô2ÿõu¿ÿþýéµýCIŸ½ÿëé÷ÿoao®öí®/Jº&òæ"_zþëÍÔäÄØôHLNLoļFüNFèøÌªkħ,¬üÉ‹/4;‡&fôacmAòCB?vÖRö!´_<ó¶"oi»2û„rk˜_v÷âå|ôgA_BödE~÷fò|ý³E~ã?1ýÃÃ?9ôóö/Eïd½äwÖö¶4–o÷Ô#MýQ—7T_öe$Röáe_4ùGÅŸözñŸ%ýÛÓŸõzÿŸ×þkí{îÿ®ò¤&/Bº¦þ¯#ßNöKÍÔ\•ßDôLLÎL„üÎÆ‡lÂ-ȯ¤üˆBdܼ±'Cô2$MA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/CÒ<>V$ŽsW$Ž2EòÁ2M",Aòá–#qa„xs„x2ÄÁ¯CÒ<>/ì86MŽ"A¬tÁ îraŒxcŒx"„ü*$È¡èá|5L=goQôagoôaG/öegoôåuO8ý÷4O8ý¶4_<ý÷4_<}WôáöwDj÷E„/kÿW„¾·oQìûÁþ—/þõ¶oüô4O8ýô4O8ý´4_,ýÕ4_*ýÕjUô¡v_Dø³ôeø±µïqüø­ï1üø/1þì­oüì/O8üî.O8ü®&_¬üï._¨|Ïü¡Î×Ä®NßÄø¢ÎÿÄø¢Žíįî˜Î¯î˜êïìšÎß Â „2D&&„(„8B„„ˆHˆÈ#á(a( Ž"A¦Šˆ°AÈAˆ€ˆˆ#á(‚ ŠR„¦dŠˆðAˆ”ˆ€ˆˆ!†‚ ŠdJð³óÔG-B`BF¡J,1$ˆ*ØEŒÂB¤0E$HšB(MŠ"H$2„lhb˜*¤”A‚C„ƒ£„Iaˆ'ÌàEÄ&ŒHbH ÄŒC(ÈD‚‘#$dˆˆ!çE¡¬,$ÈRdK$h$„D”„H8B,B!A$8€A‚Iˆ.$‰! 0 H–Ä"PHHD e€†ÑA=n)E$@%0BCQL#H8G¤!@4@!D%!C%T @„1DBB@‚d(.2 ‚+$!èHIcÐ$HDB$", DH!"!bD@SBbÁ+‚H'ÐQ3èd(-!P&@B1"… D#aL2HJ–¢I”$IC„DD#£B$@‚”D$AÒ$T$!EDHBðÖl‚HB@$ D8!",@!@&" $A$€ƒ$˜"A!'á<LB&ˆ&¡„" M‚BA(AaLÀAB@%$‚bBÐ$°BÂ$‚`¤ˆD‹„AhaÐlAPH†È$B@Dñ¾„0Dh$)$AAL%DB%†&†¥AP$€'BB$P!LQ$JÁbDJ‚1E"(AfDÈ„!‚ŒD,T((D,ÈD†è$ÂB€8E)˜D)”D!‡ˆ'„-(o$2=ÅPP"@$€DÐA€F#‚2"KD!HPAÀAL‚$@$A€dH(HB%2DHP"@È!ÏW #"¤B$E"†¦.DA&!XBA"B.&AD€B&$>D`B`C($ä„2€B‡ŒD$ÆH$h"D!†ôD"‡„pDÄIA†˜DF(hˆHeÈS†¨(€â(‚$Y"ˆB¡$€2D@„ÄA"!I„€"F„ (€"2BDN‚ $È„A()D€BH‚N(0AXÈá͈2‚"‚hDHÀ„"$B"H ’"A""! HH(€‚$Hpˆ€˜B€‰Âöˆ€"1"‚E1"€"‚B&ÄAE„ÄB("AG(BJ„"‚1!"$*$"`€B"Àˆ€D@¢¤„!!H°LhŒB$È„ˆÒW "!  ˆ€B@  A"I B"‚F $„$€  B Èu#  BÀ€‚ˆˆ€(a""AF4Â#$ B\À"Š$ˆ$â(**$B€„‚$( ¤„$B(BI‚DH/ÝD€ C‚(@„)ÄA"AB(D " ËH #ˆ"˜b‚ h(€, ˆBˆ„À‘C Šè¡FA¤$$J B€„„„H€‚ "((@‚D(‚€-ÈHˆˆ HH,ˆD"A( ”ˆK"HH ‚Ÿ-H(D&A& J@"ád"¢ˆ€(p"¡$@!,"ˆb$ °"”ˆ"€€L„FRH¨B¼9â@@H@DD!!3A!%@‘B@Da$P!"@BD‚B@(¡!Àˆ!%ôÝ8!! QB@$(P$0!‚0‚ ‚!‚( „À„€lH’ˆ&iHP‚„@BƒBÂbN!N#CèT‚"D¡$(%”Bˆ¤†94!*J”GB0&!iH‘‚!*ˆ„$²(â8¸$"‚-Aª²‚¢È„‚!/D⌬(Lh$ˆBL¨„M‚I"4ˆ!+ÈŒ$!((ò[ÿ@2!3Å¢!I d8 (Ä&)@†ÈÁ"ƲD2$ g!B`,$BDŠrH$¤" $"&¸$Ò‚¢h!/‚†¤‚†Ä($DF"$¦$JòDšãIaHˆH,B((L’!0$0"%a.A#"TB@B‚ÂC,â((HC°$"ŒTB!!ÌJÂ"$F"$FBJ2D)HR†)_\GófG?&öwVJôBÃôgF/"üÄç/RfOBÒfòCãO\üâƒnüÆfNAGSFodæ4ôdGBòeD.BNÃ;L_Fì*üÄ'oT~†ô$¤OhòÇ¥o\ôäÅîC_~öDD_UôaAtþÅÇOâü®¬ÏÆøˆÊʯˆölŒÏêüÌn¯Œ~®ô%¤OhÒ‚þ®ÄOÌúì®ÇîÍdG„øN®Ïêþ,ÎïÈøL¨øˆË¯ˆúl„O¨>ç-Go&ôBv{E44Bnfw&?|þÄáDGbuÖ&öÃÅO.ü¢Æ~üFaNÄKFVôFcNEOFôFfW$®Ì/nþå‚|þ„å_Lø¦„lØDþ…ÅoFüæÃNÇDödE_ôáÅ|þÅDÏÊüŽ.ϬøˆhψøªÎÏêøÌîÏ„þèŒoJø¦ŽKÊÎþ†„ïêúì®íLOBzNxÈü®îÏÊöŒÌçèϬüˆÈˆüª.Olø¯ž$fÖ3òVw[?$tAñFg?$úÇD/"òe$m&gb?"úåd=ão|ô&‡g_Rât&µcögf]'Ot6G?$|óDç;¬wLofþä&m¤oZø'æ_nÞGúÂá_RøvD_RòAARøçeoîúŒnÏèþÎH¯¬øÈJÏâþŽìïÌø*ê×îoBú¦$/¢úì&oÆþŽLÏÆþn$GÆHïÌ~ÎüîŽÏèôŒîïˆôJЍö¬æo:Ì=F$ÒsõV!´Cô!Go4ö£äôB&m$M&g"/HþE#/|þf'{BVôDan%[B?fôEf_tôFA?(üÁ‚züÆá?Jþ§Åolú„¦oHz¦ôÆæ_lò†á'~_Bôd%]a^ú¥ÅføÌîÏäüŽÈ­Š¬üˆŽïÌúîì犯ìú¤†oJº¦þª®OfòîÌí.ÏÆòddÏ„ÔÈøìŒïäúÌÎÏäüŽÈ§¤¬ühîoZþ:Úp2ÄA/CÂA#ÁacÁaAŽsSä(ôÃ2A?,?n)qa„xs„x2ÄÁ/CÂÁ#ÁácÁaAŽsCä(ôÁ2A,~9Vˆ7Wˆ'Cü:$<>ì86MŽ"A¬tÁ îraŒxcŒx"„ü*$È¡èá|5ܧoôa7ota÷a_vòavò„ó?fò„s/BòÅs?Fò…ó3ö¡÷sö¡w[†?s>w?rú6A?vúA?~øa~úa?vò„ó?fò„ó/bòÅó?fò…ó7&®÷sæz·eø²çs÷¢æoôêîoôêÎ/öîîoöj.O8þj.O8ü*&_¬ük.O,|Kên~OènöMˆ/n|OøâæiôêÎiôêÎ)öîîmAo6A‚B‚‚dB`" F-A" "a(ˆ+!Ž(€„‚dB &FdBàB(I¸â8RN(AN((G„&d„&D("taÌAHDI˜Ä!ŽBItHd„(G„&$Ä'ã‡8ƒ((!0£Cr‚$B$B,BBÂaˆ$($¡‚,¤‚q"#(‚"H±‚B!BH‚ÈB(F$`, $"‚"B#’D'ˆBD‰X¡D²AH*T1ï“10ƒC’„$@€T!„8a$!#Œˆ$!€(R(@#ˆ(D2B$+H(€„ˆ‚’DFR‚‚H…Eh(!Àˆ$!Œ… @"@„@A(@D@RT¯Û DD8Q(A'BP@ÁDa$H°AA‚@P&B$*,$€B#C0B@@A‚ÄATAF  &MDDBB0R @(BP!„€‚@,DBA@B—ëB$Aa(!@H( !"!€A€ÄÓ3 ðABM$B@€xB¡„DDÒ `"DB€Æ$†%JØB"ˆÀ‚H@D(L@!pB·H"‚TbˆM‚ ‚DD4')†‚$'BP$(Bdà"…Ac€$*$2‚$)TADB"BF‘#KˆÀE#D(¤"AÅ¢€ƒ bDAD)ˆ!€„øBc P",(ÀDA`$0G@ Y1ˆ!ˆƒ !¢ ”$Hˆ!ˆ_XLDÓB!$DŠdbI"Dˆâ$¢%A(A1 ‚0„"i(‚H&”„"(D+$XBAb `B£D¤"`,Dƒ´„A„DB@ 4B¬4¦@0!0$ FH ”B"B ¢„ N!À"H B$*€ˆ!$ðÁÃHB€  H€D„€BH,€„" `„‚ˆÀ3 €$‚BAJ2F€„B!"$AH"ˆB"BJ¡d!BB#Ö¢D (†"H °l D!D!J"$(€„„B@ @B,(Bˆ 8ƒ,6ó‚BD*&"`B BG$E„$(ˆJ‚" f¦H"H.B†e"‚"†‚¢„ˆ$€B „hD t‘F#"B$BHH!A‘"0A€¤B€"HB Q!(ŒŠ$!‚àÈ6¤HD"H&B0aHH@ BBH!‚"‚€ˆB!ðX!D ( ÀAE*")$b" 2a $C„"¨$Â,(Eˆˆˆì86MŽ"A¬tÁ îraŒxcŒx"„ü*$È¡èá=IeoôagoôaE/öeeoôaeO8õc$O8åBòÅSFòÅSôáwSôáw[„?w>WVþAvþAVüa_VþAvö„Ó?fò„Ó/BòÅSFòÅSôáwSôáw[„?>W?vþA¿~þA¿vüaÿ~þA¿~ö„ÿnò„ïjòÅË¿îòÅÃ7¤îÆ÷„®F_„ø¢Æ?„ø¢†)üêŽiüêŽ)þΪiüõÖ $Ä"CdBB0B tAÄADHDH€<ŽRÐ$$$Ä"CdBB D$tAÄA€D”DÄ#ñ„R€$B(CdBBL(Ä„BÄÈA‰ˆTHHˆIj( ‚ (A¦è?s R%!DDH!F‘DCDb"S$”A`H3„ÂD@”ÁMAÀAA&,8D"¸AHrABhDˆ?D#H•B,Å%$Æ!\†$ÆÈC‚$ð•å ˆA"  DABB€ ¤$Ab0AŽ$@”ÁA( „ )‚`LEBD 4AP‚ˆ€ˆDÑA;8PD  @B"H"$E" D0DA€ „‰DPB¯Ì‚H&!H!Ib D0BÀ„"I  „(*(€@DŒ Hˆ€„Øñ>8 A!B(LD"! ÂAAD Ñ!„ÂD($D@8(JT$0DCBAD‰6DA„“ÂH‚€ÄH‚öíŽ$@&€ € @D Bˆ@@ðã Dd$JH ”@&‚E‚L`LE¡„D „€È 8$BÀ$‚àH„‹„€XDˆáÀ†L"ŽDð=C„ÁAEB%DDB–BTA$$Ô¤„,"(4$DAABP$@@D&DD#„A„@Ä„%DHJˆÈÛÓ  ADdDB€!E0A€!I(ABA@A"BP(H(€BD$dHD„ŠŸ8F‚`FDˆd Ä!dEQ!PAp‚I$  HW( IAÀD‚Æ$ˆˆqI†BT†A@BT‚Ђ†ÈÃãOŠ€A @P!B"HD !%&„ÀBD„!ˆ„@PBÀï @$B0R€€B„ B`BHˆ‚À¹ó €aIA @F<!bH $À1ADN"!bH@‚`ˆ$ÀB, @$@íƒ@$B"!@a@„AA(@P!AÀ"A$ !\4fT@A‚"`B$@@‚„B(€&""BÀE DBA’$@$&@þH-$ ÅB F€¢ABB`EJ"„!B(Q€"#‚ &XB‚`Œ‚A€€$"cDARAB @RA "#B €€ B )Ëç4@DH)@@CB<PA`B !D@AABÀ$@!F (A(À"$„@ ÂÎb1g#Ô$ÀQB„D3q$Ô$ Q& .D3q@’&A,aB&RB„€òr~@Ð!‘PA€t4!@q$1D9PAB`c2 À!M!AxA@R!ÐA¦‚"I‚(A`¢$œ5ÅA!!4,AT$,QD"`BA#!AAf!„râ!Ã!M"AJ’%DÀ&1#Aaà¦$ABFsD‚H‚”!ÑD,„Dt"!˜"A/QEÁRXlÑA„4D#/bAf]RMRB!i‘A°!tA„$a1DB^!RN!Cä4JâÒ%H"7B"‚H&4"H/2‚Š’„€‚ŠÒ$’$¬$.ýsBD1pa,HQÐ$IÑaTA!@d`HA,(A8CAB0!`BB'B'!H%(M#EEAB0(@Ä„!ÐJ'Â!?µIóDWETE,Ã3QElátõVA#AÄw'TbóDrOìôADo!Ñ4á4õQF?dôBR/4µQögF/båvwqbB.4W^AnEF·D÷DÁFñado%÷DSNS?FõaDNBNC9öeDnFngo”‚¦äbR—¯”t(årúÄjÏ„èBÒ&R$$¯ÂèÂX(´­(ÇB.&ÁEODôV]/!ÑeÑ1åtEtôRPU'A/cÑ1õrAKdODtAñMAOdäeÑ'õCckD^rfñCSNaWF6¶ö%E~D~Tå¶Dö4DôRsOödT/föEB$ôBb_fôACNaWF/JX#hßÖtj|"ç(üJhÏ„z$¤ˆ/(š$ÇB/jr„ÒˆRŒ­*GbŸµ eÕuÑt3?!ÑqÑ41Eôd1gA?aÑañ!oò$…Gt%ñDAgQ7A{U]/4÷WB?%ÕóFs%òwD/cña4o!r4ô1TF÷!Oö$…?GÖöDagS?GöWb]Ncq?$ôA#O4–'Fô"†r&t#þinùú†¡OÊøjlÉ’¤oJø¢$m*MŠ(z†Xª*Í"mBcÔcõE]g?!Ñ!Ñ1qñD7U/aÑ$qtô]oò3]dTÒtDQE?AõE]/1ôSR;S/5ö7D?Wôr6is4dC~t_óaOó%DVòDaOò%D?göE2_rtBÑ#ôABC/ò'D7V/jú„¢gB/Bôjnߤò†¡o(ú,LÆ’$K¨OJø"&M*OêøŠˆ%R¨…Ú¢Üp6ÄAoCÂA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/cÒ|Âág!ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì86MŽ"A¬tÁ îraŒxcŒx"„ü*$IÊèá¼=—oôsoô3/ö7oô7O8õW6O8õ6_<ñW6_8ñwzwwô¡w_Dø3—wE?sùEwùAwùa_wûa_wó„sgó„soCóÅs_Gó…s_Gñ¡wWGz÷e„?swô3·oSôk§oôk‡/öo§oöo'O8öo&O8þ.&_¼öo._8rgîj~oìjòeŒ/jzgü"¦ïBôª®éô*Ž)ö.®ma&(A&ÄA€8ŽÀ"A&$0Aˆ#á((A&„ˆ¡†(EhBÀ΃φD$%QBP@C1D,$DD9ALEEEAP!P!áD1D!D!DP%AA¤$$À‚ý/N$%D$! ADB"ADbDA)DDAL„!BDADA ÁDAD@ PAA$†ÈRˆ$ €   (`_ßFB@DAÁ€D€&AD@$‚@„€H`B…!AÀ$PHA¤‡"¼9÷AD@dD(A€@DDA@H€RH`B…Á„@„À$8KA€*€( ‚!$€BÈvãOHˆA )€@$"E$Ä$$@!$AA¡à!@$GBÀ$H@($À"DÀ$ðسaPL€ !8 ±D!D€L€QH@4,A@L`‚B\6Ú(A!A0PDJ(€A$€E „ A@D BD„ð¸E‚@E!! €ÃQ@!BAÐ$T‚A„$„(A@‘(@„J$„L1Ë@A@ADB@$EA@QHA!Ed„@%H@¯|A A@@A€@D…@$Àš“ @ATD D€$@D@@B$!„@DðßAI!1 "a€Â€!‘*At$A¡2K2W!"(.! "(LÁ$ƒA "à"5$¤( "„.(€I%(ÂòsD@€"D@d DAB ‚%"D$D`RB@@ B"BD$"v( Q!H# (<EÄ!-!Ê",E $H$,=º AAPA ¢! (A€(AÀ(AÉ(A@„„@")ÞÖ@’A@T A€€`B`B„(DD""@aB@A.#³r@AAA€APAIR$IAD0!!'@‘"IR$$XD&úÖçA@DÀ!E„BA`B`bd@Ñ„(AP!•"`BD,Á(A„@Ä3sC@a DAA±„HB`BD7BÀ%(iR$($@*UH@fBD'Â!%þ>×Ð%”L‘qt$ AåQâÂ!A&PI‘DY‘A€q3'C$":>%K!JD<Â2ERQ!B &4"ð"%!‰‰(Í"A$„À{# ! QAALH„B4AxAAAAÀB#!…q(@Ô$R…@Fh‚@x(ÚX((oåLÃa„ÃQELÁGFÄWAõ!4Ió$%QAKMNQAD„Å!WB..7g'!&äBóUAA&õ!4K4OLñ!$o!Ó4Á¿Âq!\(49r%db.'ebF.&uY‡RòÒ$’„ÂÒ&R$…s*lÒ$$­(GÂ.U£Hñ„†YQ ]UdAUeA>±$RDáÑôDD^T[ 1_BÑ1Á!WB6¶RveeG>QaK$GBñ3M!ÏBñ"&UR™A-"WbÃ!WB'B%‚r%}*t"Gš*Ér&DØ*’,ÇB/bR¤„Á-"Gâçç°Ñ5Á1S±ÑÑ1WAD1GAAÑAñ!Oò$…?Ar%QGQA[U]NqSµÑÓ³r7ô2Fó"GCGõ!t_ò!ORüsd]!M!gS?Cò*]#uX+#M#yr't"öa.ir&t#þ!.}(í!ÏBø*,M(Ér.ô*,m*EÚ(RŽ%Ê*Ý#é;i=]]±‘qtåA‘GAäAÑñ!Oó%$UEQEAµEõEU^AÑár5t3õ26is4äCäGóE1Oò1_Fôa%M!M!WB?cÒ¥s%_š5R!Ór't#õ"&M"gB'B/bÒ¥ÒÒ.r,ìÂ’,Ér,ü".M*Gâ¡¥JJš*ï«'Cô2$MA#ÁacÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ îraŒxcŒx"„ü*$IŠθƒÚsñESñASña_QóA_Qó„S_Aó„SOAóÅ_Eó…_Gñ¡7WGzóE„?SyWô1•oQôq•oôq•/ö5µoö57O8÷76O8÷64_<÷u4_8óuzwuô¡7_Fø3·wG?sû>E¿òúA¿òøaÿrúaÿrò„cÿbò„cïbòÅ+ÿæò…+÷æ®.÷Æ®.߯ø"®÷Æ/âú.D¯âšN¯â˜jïâšn?ü‚(A&ÄA€8Ž€dB0Aˆ#á((A&„€b(€dBÐ18˜€$!@DAH2@AA(D(D‘A@D$%ÄA„A„„(_} K˜!‚D@@H€AAD`B2@A€DD!HD@E@h*°ÀA)4A,a)D B!0‚€4$AI!"‚0B’I48$DB„D'„&…@ÖÁ !@"$A&’!€DDAC†4A@AELR‚Ÿ|D BD€B "€@H€ ¤!€H„ƒ‚ JˆaÈ"FB$ˆ¯Y00B@!"HD$`C!!€"0‚" B"`"`Aƒ$F "N( ª"B&Äa/Ø,ü(‚.¢.‚.†¬ÈŠOH˜%["…âN8D+HC8„ƒ¢ˆŠ¤ªŽBoáMóSb/e·fôQs5ôSqoqÓuÕñ4/có?'õgrJsC÷AEKâ-$ñVW_#÷Bem%G<ôA+e^?w¶5÷5qkAA³4óu1/7ãBñ!f?Bôd!'BÄ/hüă/]ûªµß«ýò‘Oè(ò5v/òî¥ßLö¬¢;.m¤_ÞòL'áBö#GOVò*(OÂþ¦ÄkŒ‡L͆J&øÆ‚‰ú¬ìo<1y=Q/$÷vWU/%õBR/g÷Vc7g/s±SáAcG>S/uôVtOa–bv±EäEöDr?WñRMfKVôB^S~u_Cå6ór3'áAá'ó2SoótÔA÷32!KæD(ûƒo<ëïëÏ¿ù’“¼øèüßKû>©/ü+®ªêÊø¦åçöOÆÜÍþ//M%O†ö(dÏjú†„/¬øÄŽOŒDâ(xÂèÎþ¬†ŸCKòbW&ôac_4ôBR/$Ô2q"ò66?a35/cñ2rZçõrBK"}ç=%OBôd41×s'òaCoVS?!á1õ3_ó6'/wuuö2ocò27[s#öf1_Wþ3d_BôD_lüƒÄéÿÅ»¯?ûÍÓŸ¨üÊ©ï~ñuï_jþªè?Îø¢‚OjøŽ%ÿÂÔçtHûiË/’ÔÄöH¤ÏÎô„ÊO¨|ÂøÎ$O¤üˆÈ/¬zÎöÌ#Sß"ú7G+/tCóC?dövGFó3#ñ">2+qvô5Ww_ròC$\òaARóW&avcÑrtÃ?ñs4>S{3]V;5kk3Obñrvõu#OF÷1dRvAñÄÅ=Fhý;Qï¿{Të­Üôã£4òèî_jú¯¨k¨/hêhøflýE÷´JÖÖHtløäìíÆh¼ŠüJŒÇ¤ÊüˆÂ¯îøBŒ¿5Ks2ä2ô2$MA#ÁccÑ4–$ŽsW$O(ôÁ2a,UBnIôaDLxs„x2ÔTü248>MaEâ8·Eâ(S$_,sDòÅdnytaÄ„7G/Eø2D­Å¯CÒ¼Ô¾Ôü„cׄŽ"EòÅ.G$WìðaŠGÄÆŒxcüBŒ/BÔNü*$)œJèá-ÝCÆ—/sôe/1ôa/öE27Ö$ò‡wO!ò¤w">·Qò·s7F?zõc$_zõa„?Sýs"Rü2c?RùC?VùcûG6ò„W_%ò†WO#òÅ_'úÅWesAôá7Dúó…7E?^ýE¿ZÿZA¿Züqÿþ]ÿ²öÆËߢò†ËbòÅ‹ærÍûAÊÿþrAèîòEÈ/ÎzCøâÌ©ô*Äï„ô¨Ä­hÏjþNINÁ8q.À€4AÔe-A*ÁÁ#á8%ÂA4Q8SäB2A0A0AÄA@!D¡„8RŽ@1!!(Q&T‚xAÈA‡B.$(M!†B„((a&.¢ã‘¡Â7C˜9ÄI”!i4%$Ñ"aT%%a`VFB¤ANN,‘!i‘c‚Xi8%HŽ"A†º!1ÈÄ‘OªÕ!œ$(a(%gJX’ $HH†‚b¨JÆŠ‚ÂRŸÇJ"Ä2%„¢AJ‚T$!D",DÐ$`D*D&$a$)„!A"Ò$2„‚,‚ p4 „($%äˆbˆH)¤‹BM’B”"!I$!K„$H€ $!‚ƒLÒ(ð"ÌCŽ ˆA€D€!$OCD0BR!‚BP#Z‚A$'XÄ!)a"  !IAÀ„‚ ‚@H(…!¨$ „Òøñ£2d$)$Ä,$dIBBÁB,¡BB*e2†"ÁBÀD<†‚$$B.$–’b@¦I/„B<’-HLD"Á"+J„N)N(kˆ#”$ ˆ#„X„Œ=HhG"AM!$B"„ÒBCá!Æ$*T!J$±1Ab($JEB"òC„,ˆ‘ Cä!‚D“F‚D"r„DH*̪HÈ!„‹Bá,¢(!ÀBLhHïE!!D!F"PA€B$À‘@È!.a@#¤( ¢ˆ®%(&€" BH#"xB4… (¤(„Ôó]!Ž„-R R€E,€F‚B"$""20" (#BH–&2A2 ‚¤‚$0d€„b$ÀF…†&b„D 2APB.AÚã(H"8$)„"$af€! „#B†ÂI"Á"Id‚Bštá’-ˆ0‹H…¨(D.& (BF(F¡DDŽÈ ØÔ7ø,C"¡DÂ$F-"@Æ!.@¢"BC2-" A)+p‚D02@Ä!)‚8B"Ä""šÔâ’dhˆ'®A,C"ȈBG†H„4I"¬”ŒH&ú‘΀F‚d!€,@ €RB$€  H€(a$ƒHÄ$€d„Ä ‚€(Â"ˆ!CP"pDR&‚C)„:b)b(°bE4À‚,C)#c!³"I"H‚$((%‰a/"!$ˆ2¢@„‚h"DÁÀ¡ÁD‚@J”„_2 B`$"(0M2‚ÀRÀd@(A<(BD" ˆ€4V˜’BH¢†Db„H(D"E‘‚‚l=H€bDH)!I$"ã(ÁD („’$ðdB("HA!p‚(@bBl¢" ‚""Fqâ¹B¢AHˆ+(ˆ¢a*„Bƒ" (€˜ˆ!)H¿¹#‘)!d!Až"à34#qdÔE'AQJ8”DôA"D4D<aGÐ!D %ÔBA2$¨TÐÄ@Å!h(DCD€,¬sI!&Rà!DÁ‚€N€„(bB0B6…D„ªAIáÂ"""."AB$@""B&DA‰„%Aˆ¢(@8‚Â"Ä"Œ$&"F†€†ø;ü ’(88F1‚#aAB!:”$B Ä"AK†¡8H "*D B‚À!Kc",v”¨G#’39.`FPˆp$äB€TdEQHLB(Æbˆ->Ñ%„#³$IO"²!˜$L#4N$Bˆ(¨!)""2bð„BX‚AG(!H$aB2)Hø"ƒ(Èž$„H‚TA@XCB€„,‡$ðôf" Ä$BT¨-$ˆDh‚M¡‚@’B",`"D,lBJ**¡!%t!d€a"$@Dƒˆˆ(ˆÀ!€†p$„¤HH„H<7¸"€€! Â€h ˆ( DD(€”"!IADÂ$@ÂD$Bdˆ!%ð[( "€¡‚*ˆ!‚B€ aA!ˆ(" ƒt$BB!!b(„@ ÂeÓ‡"“BªÄA'Á18*r$"ˆ(âl»!!²‚B„¸qÄ„DR+g𦰄Ö$r¤²„¡.&¶‚":¡Á*ºØ‚ÔHˉ­‘O‘Z)’Hcøˆ$/H"È$!R"HEæb˜ˆJ4HMBBà$òØ9°!r!NN„)B„8‚†¤!BO„BQ$G*,²!³e†‚$-$.„+$"BOTOÔ$ñ$#6ú(C‘!*¨K„ˆ""Dð,C!‚…‘HAZA‰Db(†b(%îœ6ELÄD¤‚"¨!S±1Ô%|²D¤(M’[8MÂAˆ(nDJ¦B #œ‚ˆ+!¨£I¸DÁCjC¢"’CH"ÒB"*hTD‚Û’Ô"‚ñˆ*ÔEL8BP#‚G,&$$b„†.ÈDg$ïbX$ƒT(‹¤Ð]FqdÑ6Ñu5rCÔ1Ó$ÿWÖãtü‚_!â)òÁ'|¿Öþöb/'eXkeK¦~‚^Gmao÷åÕR/õÇÑO!î3v!ö‚Ô[¡>"VôÂÕO%út‚/ñ!Äcò$/3øaVƒñ–OY©¿¡á¨òÜ¡ŒõöoOËê=‚EôgJîþF¦o4øŠCÒþGa_TüKÃßÒÒæòÂbonüJjo¤´Â¶ÆþNH3›1_DV"áñcDw"_câ_¾1»"zdæ[¼ñý£Ã_þÕòmDáö…Òoa¼Ñ³ÁóG$-‚š±ƒõcDO$øT†W®%òd†>Ç=A]Ã_+SFæôä²Oa¹¡÷ñxõ÷š‰µßõ{}OÁú8Ì_ÖxŒÌ"/Âø$Ç·Ì]mÍå‹(.AMLdÏ(¾bì¬ôÂj/†ôJÂ/,ôÂJ/ööKæ?³LÓE}ÑõR_4Õ1µRòrNv/Bý–Â_oò6/JùcCôSwR÷gò{#_Ròa%[b{:nûqç/KñÇQ;Ü3ú²2?^ó£ôo#úu¦¾6/Jû4£_cúóW?X÷å‘oòDEF÷ESoóÖןåÿ“tß9å=ýqØHõ©EO^Þ\úcŽ¢ojÚDú$…Ï^ô©l_ŒÚv,ô((OÄöŠ&ï*øjÎo®öÆJ¯,üJÊ/¬tâ6=SoqôS;/õB~3Tñãõ}_ajk>4o(ýõçG?eñâ¥Oô$!]d.‡Oñ¦ñoqüñs;/8ýRƒó‡t/XóæÒOgêaú²4o(ýwç^çOóBEmAOvEô!µOõæ±ïsþá?­ñѓѿMsõüñ'o¨ú"‚k‚®&oHþeÏï6|ëúg.­e%ß–ô!­ß8ò‹¦ÏbxŽþ†J/¬Ø*üÊj/®ô:‚'C.A/CÖ´Äacá¶$ô„sSÄ2CòÅ2A,ƒòá¶'AF¤?EâAø2d>å/CüÁ+Aácñ4AK*O:7EO*3¤_.3Ä_.!üá–'GF*øs„n„/CÄÁ¯CּܾÄaíbŽcÇ„Ž"O(òÁ*ctÁzBøáŽBÆœøcŒx"Ôhü*¤M¡âéØÊA¡Â‹iÒá&ˆD(Î(pb‰CFhBJHˆN$P"à„Úôa{B B#"ÂD"D"„HD`B(A$ G$‚†"d(ˆB :f˜Œ( "‚H&"rÈ&A0H&-H€Ä´³È–†A%•P!"$ÂÀ$CAHLAà2A‚"!C+(2à,$D3ˆ*h‹¡„>Á0,@$‚RB¤(E €’,ˆÀ‚"ï$,T!(@$Âài Á"DH(A b$("AD€JL8!Œ¡„@!èB‚H)ˆBˆ\(„è’;ªLH‘D5F"ÑBƒ‘FD"DäA‚4!$0%"Rà(ˆA!(!1€"4*I„H¹ȨÀ(è„‚2$IÂ$’*€êˆ"¨‚$„ˆ.v0A#$D.$°È¢ˆ„ +"BAY4°$"4DB€bA*‚È"àBBÔAH H€L"49ÊÂ"Ä€LÁH`BÐH$D À¨ ˆ (à²?Y!@B!DBQD‚ADE‚²dQ%QI„¸$”&KÁ@âÔ(AÆ(LLp"!(hŒ(QHfˆ‹ÉÐ(‚ƒˆ"„HAB`„`Â! ?”( $$8$S4‚AA$bb‚$C$!!$#A´"ŠA"C49C¢ B‰ !@’#@H˜E²¡4„"ƒFÆ“a È*$ATDAHÀ&$ÐA(L‚B4A*fD "%„A‚‚UaB‚L1$RB 'BJI¤†A„¢„0$"fA FD©ˆXˆÈ…¨N)Yü¨9`$P!4$DÄAE‚Ä¢R’A$( BB…QBHM‚A¬"*´$$‚ãHDâH!a!ƒ(H$"‹‚‚¦ÁHEUhB&‚¢(E"HŒ9±I‚€€H@$ˆp$ ˆ‚! !* HíÅ0$ˆB$JAÀ!€)8ADBHALB*(@!HŠ"a„@@A‚„B„B $¸1ƒTa)”‚M!-AtM$E‚a$b‚sBÄDz'DIˆfA.ZH±Dt”ÃC³„Á4/"AbD>„‚JsbäA“!ˆI5ð2ɵ´(R(Ž(À(WЉBbDTàÒ$¬+‚ˆ!¡KD¨GB"Dñ!„J1A#s†ÔDq$$AdRDHfÄ"Jr„laDII4$ALÕ$M‚$"#‚ÁdDÆ4D‰øxˆ‹…‚ˆ‰HÄ(‚ˆr„˜I8„&¨&C$‚d‚Žªò¦"#¢AidQ\TB†”dL2„DRdCÒ¥&x&¡c$aIô[2ña$Š2'-4BDB¸äѱ£‰¨¡H#kˆ,t$$®Fs%Qñ©DŸDÔôaŒ‚Œ:"„)ĨŒ\‚8$B)ôb;Á+AG\_aÕ%öaƒk3$M‚N7C*Ôtu6ÕTùGDOTü÷WOmñ4d+#nŽÖ/!üC#~a¦ñÄV_yû&&_Gñ¤$ok¿”ç$ñF²/.TFODú憞R_‘ÕÙòø¯¨øœX»üÙ,æ*öìÆ-&S¦ˆ_ÔtCÿEÉÜôK/UøCENe?¾téòDÌÇ‚ÏâtêÜŒøHêÇb/Š3»·ñ3!NB•?Ròf&Ohý•ÑOM2&MO9ÿUttbtOgwFõ$eOEöÅ÷_eþÄôkú'"o$é(óÓC?Aµqú…Aý÷$OBó¤ObÿvFkoI¨'DI(å.»2÷¶÷ÿ¹ü/8ÏôˆÚ¯©õº¼Ö´¢¶"²bz„ÄŠ/(ôKIÕý©®?v)ÙüILŸþþËm&Úêø*¬ÏŒÔªüHŠÂâH¦ê/ñQr?!öA/5ñARA÷cÅ/]ù’3n/+ù²4^rO4å6µWÒAxñDEOTç,üGáoMë*¿2þDÒ/,ñÃ¥²nÁoDüƒ'-okÛfëKâDøòâ¾TKÅgDOD¢bnR/DøÖ»¿:ý^Oˆ}Êú*r+ó/F¿bzâòÅ$/jØ"xKÓÝôBgo"ú¥Ä§ÂOÖ¶lôAÆïÆ\æ/êúJ®O¤üHJ/Šøª¦O4<-³/5´!—S?ñRCa”WSòæ²Ogû¢OHú&wsOqöSTBvFåBÖEöeÔO]÷ó–o'æ/ö‚RŽÒ?!ì¡kmñ„Ãogú&´GkkûOJøD2o'ö+&NDOFö¤¤o/øä·¿—öETÏ)ôÊŠ¯„ôhz¾bM†Gloj²†x„ô¤gxøgaß„ôå¥N$eŸ‚öÅEo¤þéæëLÏ®Þ,üÈŠ«H¯¤ê"üÏ4p2ÅA'SOtáö6AaOõ„s[O(³¤ñÅ2[_,1An9FÈ?G¨Â'CÁ'CO|ѾVæö„Žs_(â(sòÑ2CòÅ'&n+öa$Jzs´Bø2D-ͯCÔ¼Ô¾>Ôö,b8V­Ž"O(òáªG,®È‚î!Æj|c¼Bü"„jü*$kÄ¡+äéÒr1*=Ç/õ2G/ôG/ö6goö²wO<÷¢6O8÷¢6_,ócv_,ñCro±GâkµEþ2Æý2Æoü6Æ/ÝDýÒñIû—ÅÎ&_<åhò„Sž¦_-ññäo,ñÁÄîwEî6_Dþr¤{í/FýÓé¯ÂýÒA¯ÂýRaïÊÿ6Iïjþ„KÏhú¤CÏjzÅúm®O>ømîî‡ßÆâzômŒ/RüϬ/Bþ†Æ¯Æ¾†þjÌ+èïÄú†éÊK¢"$"M"Cbb@BrAÔDÂ$!(+;!ŽR(,$"M"CâB!¤€$A"Àa¨I¸ò„`B¤A&†D…xAÌAŸBB˜„¡O(”(I”(A(IdBB,3Z,¨HW)B‚èbI—A!-1‚'Qf$X" ²Sˆ@±d‘""Ò"¨!Â1ª4YGB$*¤iQ)ŽòˆdH›A‚%Ä"LÈ!-Ì(-‚bAXF³„Ò(ôH‚AFb„lxiñã+0$N $(±d"I"eA !$#áH6„!‚’B&”€9áBˆ)t‚¦"I"¤+ˆ‰–‘‰„ˆd" („*Œ*T‚H†ˆ"‚F‚&$¸B¢#a`J ‚IÃBˆBɤL†âRtQQATå`&+)"gO²51AK—šYÔB¨9´BC³Ä4*‹@¡¥1ˆ‰*ø„¢ˆˆ¤„Ê„¤‚=FÆÈŒ+h*ª,ƒ$4‚‚)ö«J±!ùA2B˜Ê< #m¶´4H‚‚,"è.®¤,…¨LŽ’Î!^Ò+<)K˜,ßBøÄk†‘DJ$”tj”iŠ%á)Œ¥XÈ©‚ˆøbDæII&.aA¬è$â$@"¤øsš!+B#´B#$ôFAnOöd¢MO(ôá‚Cî$d$j4ANDˆ/J6b¨!Šœ,õA3Ž¢`K¸(Iò$ÔLªg+ÎÆ¢ ´?H¨´:ûÄ$’*8بOˆA Å$Hââ¨DÄ\ØQœb"B„H«ˆ‰2Ì_ÌMáæsr5ÒõT^C_!øFÑ/ñÁD7G)ñÁež'k.{/1áTÿ×?4æ,ú„µ,ä<³Óõò•õW×Wï/ø’„†oÿ´ÇOhüÄoaýWa*¤%O"ôÕ÷þuOÌöäyw,÷ȈÊuïÛäüÌ]ˆ+ªEÖTüÍë?ŒúlJß®ÜF†ôiiß¼üåcŽêŽú欯(¤Œ-ˆ/ÚþçÂgª$_cúç1/3sUó?ñua¸FñÇ”-†m1Nû#V¾§_!þ6!OBÄ$Oþ$2O{÷#$?ZýEƒñqq>óWñ17÷ç¢'c.$-"®£#Sd}å/ò$dIòQÕO‘õQXÿ1óU[‘øYX¿añuÛoHøÇï_®z¦RFodþÏKo¶þÉÎߺô/!_ÖöéÍ߬þâèojúì*/‚zF8Š…ºBöBãÖ!ó3u/2f1VòSQ/2ötG¾æ_%õ74/Jy’öÒoG÷#µ?qæ_øeaKFEäNufó5r]¹²b1œ/<ñ±²]÷5;¹5âiû‚¤O+ýrd_t÷a![ûwD_vaõ![¹?kû_g¯ïûšÉ?%ñ“Ó/=øu¿Wú§êfêhèBò&b®ÌdöKm/Nºfô,IßÔôáåÏN¶ïújf*/ˆôBŠ¥ò¨ÊïÄöQ–p2ÄE'CO4¶òaIÑ4·Eó„2M_,“_,ãBó¶%ôa$Lús$5ô2%.¥'SMÁ#Áñcñ6QGO:·Eñ´K2/õñ2o¹Bra„rs”'C}zÔµZôñã×÷lAŽcׂO(2$¬òdȬ†üáŽ7„Æ.È?Æâ‚ü"$‰|*”Ì¡‰žNW5õW7S/1t3õsòC7ó¦Ó_&ó†ÓM2_<õE28ñE?zAäjóA¤/CþS/[úW/WúRC®•?1·¤ûA_"ú´So&ò„Ó/#òÅ;'iùq„_jsqô¥vVø·æ3õ'—¿ô.—¿õÊ—¿ön³oU÷n#Oøþn"O8þ.¢_ìög+_è|gþ¥Ž?Æò¤NÖø¦Ï7ÄoêúJdïnºJôꆩöŽ¢ïFö¸´ˆ4!hSdB*8A*8AÆAŠÂAÊJÊ+#Ž( &(A.T R#¤#5a/¤ŠC!&‘)8Žb(*ÂÒb,3d.B<1BrAؘBBˆ)8BŽBJÂBJB"ä(djðZ£×’$‚qˆ3$"t’d¦, \¤<$"äY"±…Fä(„¨A!HDâI")bKA(IdT"„ƒÈhH8‹BA%x˜„aòH‚&±ˆ"4("…ñˆF'„$B‚„ð]õà $ÆBA‚-Æ!ˆ(#ÄMr0A ±aJ$˜ÂBˆH‚"8!A8PA"A(€„Ò€XBlˆDž‚Dà$"˜"B‚"(‚,À‚%Ña8‰$0+D bIp‚"‘"DáDN!"C¬$?!„HJ(qbaA„Šd!8Y€¢ˆ#‚—T ´tbB‡$Š"ˆÂBŒHÄ"hL$8&‰T"N"³Ф‚)‚BA´‚X!êÁ!,!JC8A"R=Š!&"´"b"DtXhB,„Ì1„$ ’¢¨ S((&(Aƒ"¢H¥¸!2ŠrÀ–B€…"Aä(B&f!6">CDH"ætfH&ò$€¨U(/QD$#r$¤(Eâä(!H*x„Å$Zb$° &XH,¶ˆÂ‚ (‰H²Œ&˜HAf´B2,C)ÄH‰h"„?ä ŠÀB,€8B ˆ „,DÁB B!(!# $A@3!`AŠ4IÈCÁ"!* BH‚€¤"ˆ!$à‚:“H`C((HP"°A°”‘#A"D LhDP" ˜A$h`+ "B Aä"H’(,ih@´AH‚(" ÂL?8 "%Á(€E¡!‚IæB¡2!LáD(„„´BsòT!)äÁ"%!*ゃñb” [H”1†‘((è4‘±ƒ‘B'j¸(¤$B"(àªN(°-ä‚4D,´¤…¤j!²Hâx3µˆPC!"(²BÂ!+aA0$B4D£Bu4ˆ1p‚Â!ŠbA"È)R(I6aàb$ƒ‰c,„Abª‰„b*F’¨$F8d$ ÃB„Ô"$Žaÿ• H ‚!Ñ$¤ACC‚V/B€‘B@2#‚!(!B@!"ˆ%a;Á ÄJ"D(†$‰‚’HÀB"(„‚@NŽƒŠ(H„A!J”`)ˆ)ÁB‚@bJ¨&¢F"‚8B<¬A-!.‘#$‚CB†“A`D@„Q.˜#)´ú„D ,8$F¢(LIÂ!F$ ˆ!#(rñz¶$CH)@$” #CÉB†bHD‚€Dš„¡H@J2”ˆ$4HðD!–Œ, B#¤A@Ð D"Œ„‰ÂÍCˆˆBqAâ!X!²'!ª4‚$)"$B,"¢Jà%‰Ý!(J9ƒa!)Ò4`$K'(ðaTÉ‚ˆ-"AJ¤HD'H-„¨#BB‚H!Ô”„+(E$:B,(HцA”$K$ˆ%ÄDf„H„hCÀD,CC–ÄC"8I”‚BÀ\D„¤«D)"„F”d‚à‚X‚”BŒ(1%( "bT""(„„„àˆ.‘"Aô2APJˆ$$HSF‚"áH´Q-„'LØ¡´+"J¦ŠJ´a‰”¡&4ÀĨ(%a!$†¨†Æ(D@†7"°#„"†*’#‰‚:†‚‚‰njÐ!"¡B’J‚D"!N„ (J¥&(T@³±D$è&h)JB¢0L¨‚K%*l+1@…B"O: ‚„@°$N¨ˆ1ð¡"((F$„F¢(fÊbó‹dHBXCO!¨1E¢ˆ,ÁB˜A(¤dhjÂ$ªÁA‚ŠKAð¤B$A€4„,h(¨K(LárDÕ˜&ˆˆ64„†K‚‹„ChHA=ÌC"ØAÂ((HEt„¨ŠA‰„„H‘!ŽÖ „ª¥F´!B$˜‚&TˆJ±„ jˆ„² ŽÒ ‘A*áHTéNäBò(ÍÆ–̉>Œm䳋÷A$TwF‚±Aôcd~v'5[ÜK½ocá!ùÁ[T|ì}ë'¶BÖæTæ*î-·õQôÃÕo%©ù3ýÃõ~&nÂ_üä„oiéjéY¼eüÃÓn§O+|VåRöE%_>ÿÕÓ_O>yúß›,øŠ‰[þýíÏÇØÎüæŒAONø„‡ÿfôŽ…]¦/îÖöl!Bö¤ã?œø‹‚¯*²&òÄÈ/(þŠB/JþÈÌ/oCò4Aóv_1á1±Sõ&7ñ-&_.ñ4iñBfoò6CW(_qù%OTõUW/QQv_!±“ý/ø!"?hówaoúbg_/êcó2´/"æ6ê>·cþõÄ/U–EBOl¼³‚ýë/•ñM[õsêŸö)5+d/æö,o"Ò"îR²öjE¤œündÏV’a_þüOÄçè/¢2îï„|Êú"J¯®üH´ƒÛsýVc#5W7/5ñS;OKÿ¶¦î¦O!ó¶´okúA×O8µÇú'u/QbVö¥µž5/SÿÒC]Ò{?9õRS‹;sRû¶6>6M6+#o(ó£.c;§?CwBáR¢dBâTô§#?õñíR/!ôØI5ýËy–ò±âîê¯&º¦ê*ú"!2úã©ëÿæôi).-ß’ö)lï¦äìüfhÏfþˆÂ,øBH‹"4®ð2Q/Cѱáw6ÁaOá87e,³¤ñÁ"SòÁ3g¹"ra´!ús²'CÁ/CñD‘#á¿6ÂqAþsSä+3„_/—4.Aôá–/Fra„úsT¨/CÁá¯CѼݾ÷HaÇ$:Ö­â"ôá*Erá*ôáŽ#ra¬†7Æ)|"¤F§BkÄ¡J¾B9õ=·Qô"õB?ö&7o÷&'O8÷f&O8ÿ&&_,÷g&_)uGö¡öwUjóE„?kWô#§Qô"—ôb—?ö¦·õ&·_:õv6O:ý22_.õs#_(uCó¡V7®'¤o{¿Sò2ö¯öûþ¯ô9ܯö¼ôh&O:ôh"O8ü(&¾ôilO¾üI,/þöMlîOßÄú¢Íÿ„ö"Ì­BïΜJ¯ÆÜ*öî¬ïô¬¹$(MbMCâbl5BL8BD-AD!Lº„š†+%O(¡!M’Ð$(Õ$äb.V#äB8BF-A"#!:ª›‚+4Ž(†âÄBBÌ"EèBHB*\„†´¨ˆ´(’D‹ˆI<*O(4(Š\È@˜$EhB„.£Ó¨X Ñh$Á„ø2D$†d(XBA(eH"†¢Á%A47F‚6$˜2ø1LAA,<%œD$@8ŠÂBÙJ’$‚(H&X¡$RA„¢xB”ˆH1ráqQ *1ABE4Ä.ˆ-„#A¤"DV’%ÈB‚,¡#xÁ$ID£&¤)N"9èAADŠt!ÂDG`$Œ¢(°$T,’„((‰D¡E,nˆd‚#$DâHB4øè"!¢†AJ4$@²ƒKA$*$dž"C„1E#¢$š"‘4df„‰*4fDKŒ¬BH‰I¦‚¤B‚-$"Àd¤`„©TAJò,‚BB…Bbˆ…ÑC±ƒÀA&$bAÀ($1R*$‚D$b",„!B!‘Ch"8d!"XAXf€Â$†2)B¸’ÄX@„˜(,D$8$$4(,4(A&'BÇ„C(A¼?… V"$A0>ä1ã&%BáD"&ãB¨$'D%ˆÄLˆ“!>+(E’$L¡BOH"dR€5$A,d‚B+•‰ÄD¨#Æ$l#¢$Y&‹dO„’ä…¤‚d…B%Èd¯¢ ”D€äB.DAlB €$!, `(€N2À$„„á(ˆ‚a‚B¸EAÈ€ÄH…R!-$Pˆpb!ˆÀ=CR®„0$,„È@‚¢àf<Hh$4A$ ($QDJô(„(D" †¢Hˆª”(†E„2$ PH0(H@±/D#D¡!B'UG"8&:ØA5"IA$àB²Ä,•T88CrdBF%“4 ¤Bž$(NK$#h¤,Ñ(sH"´AÓ(RI/ÄXB+"È#‚´B¸$´(F,¤JI„èD2B ˆòH$Ã^a8+!c‘"'A,"qa"É@B¡D\!#ñD,á1ÂDL-D*ABD¥T$""JD„dA”¢Ä#Q(`„J¢)!GÆ,(Ø$/BèBH¡BE(‰I„rD)ÄHˆ"àÄ IRÀd‚†€,„2(@$Iäb¡I8H%DÄ! ¡€$!’$C$808$ƒ*|(dªAbD!€$„IÀD‚HÌ)ÄLBÔ%¢H-%A.AcB§$a(+HÀB$' !#‚8Š¢)Ä$"†vò„Ž"„J-¤-ÎAP‚†âH¨¤_BHxB5(ƒ"2d£Ì$B‡(*XHÿ6@$2Â)ŒD€‘$R"Œ"„b!0‚H€ „(‘"#ˆ"æD‚$(A4‹%(H`h¢ ¤T„.A‚$(d!H\5<$6ô!ÄB`fÐE‘+ #s!ÄA,i:„„b&€ˆ„´‚£A N‚!#ë(""/I´2dB",â$È"GCyA⡬±(J47LD-¢È’Cø‚BU¤FƒQ"L8"E’„°Jtª]5@!@B*$AF†D"DÀ "!!8!I$Ȉ€h‚,a¡‚ ‘`‚…ÄDƒ&(ÂAƒ‚N=£^&4H’=%‚DšÄ2IAf$$B"J"0bF(H`$h$€ä,AaF”„BM˜IˆŠ(aBФ(A,r¤T(CèFH2,‹"ÐhnÈnb«ˆ¬Dè(DúATÀ$Z(£,„$¡R?ABãB‘ "€$ä)¢£C"r¡Q°a¥‘ˆð+$ &&"&Q"Œa(Í"G‰Ÿb¹¡‚–"I¢D£’"H†T*XˆC*dz$‚ÂH*âè9¶H0BB!+B"*T$^!EDHWBT,„¤B $ €˜Â0".B"""‚ ¨BI!ò6¹†r‚)q"t¢%DÈ,„¼(±ˆAT „3.X‚©‰ø¾±$$C"t"1dNB%*h/!""BÄBBB`$"b-„K!(B"LÔBÂAEnBDœˆ’HR¥H4¢\ȃ&‘A(Dd ŒRD€,Ä‹Ó!‚ X@„@LGC0D K…)B$„( ‰’$É€JBŒ„B„@(F&ŠòÉj„AAh0CAD„HIBGD„(D! "HDDÄa$F¤(B€H$’„(AA("À@HÈŠ(Ü5*5tñBq)„5t´ñEMB&&ùO!2qCô"N2 DQJùAñ/TaH*52:tbwO(#&òA"*.$B*Š"³!"WEý¤Š Šø2l++”DêJRDFìB¦¢&¤…¤($æLÓ$òH(H'˜#ô*(J¸´FòD$H Bä3ôCM64)2Tk'c‚²D¢"*–CÂjò´F„‘A&¤ÁrJ…”´#£%B~BoôDdL1Ô$aR(OÆÑ(I¢ôTÔk¢ƒØHª¨%¤B†•BŠš*hÌèaÄ&ò̦†bˆ.ˆ‹ÌŽŒ¢8. 6¤‘#ö2AŠÆ"~JäB¤ajÔA¤%J+BgCFñÁ#ÄÑ+$"8",¤!C!uD²%TAMdB}tr%X¡ÅÙØœ¸*Ø4VlL²Hê*xzˆü…h‘](Õl’Œø*‰îƃNvÄÂÃ$$/"ô'`UOUôCA+Ä4Å8nQOI4ÅòaCOT¡TLórV]…+E.Äþv_Uò7DOIÿ&Å´¤y_SäIî²a¤_d)Ø!ú4Odü¤…oZö!ÄoBÒxÒ·ñù夞M…›ˆ›ˆ¸m¡ÌþÅdŸšTLWBEÔeöM$OÈÒÔö¢%…Ñ”É=ªÏÆú¦‡ªúæA-Šëˆ¨oLþ"ÖÓËTH½E§áñq_TqÅõ5f_Gù–OS÷uD_1tQ±5·vâöA!_$÷ÖÔOC×EýåuK]Z³Aýa4kÔOFô%GK¿ºêCò$e[_ÄeOh¾FöEeOVænÿDô[uÃó½ùïŒôȈ?ˆñ¹fülL_þøè¬Ojú¤¬OXøíÌßrøŒÏ®þnmVÚ™ôˆÃŸžþ­"¯ªòînG,¯¨xˆúêΧ.¯žyò!!o"T5£#/2s!¤*}ºab*Ðrò%$s_ó•#WUUÑQø„¤m—_Bú—&_Ü2=A/KEñ5”OmùÕ´'(OAûÖvOZy—%Á-!NAÔ_4ìù†ÕYÿE÷]Y/´Aô»õlŇ´™hhè§è.ÁÆ÷I¬„üBEGÄü‚+†òDl/Fö$hG„¯¤¤DRtJ#É/Wõ55;UN;QndU÷TôOwý§$²oCò46_S÷Ts?DäC÷Te_òad."ME_ö–u[ž{‘/ña£Iá\ÿ4R+2¾–OKû$î;µáþá/Tr$‘!Zó´1>'/•óù¾¿‰ôÙ[/•ýÙ¨Ç÷iîί‚j*+¢¦Ò™òè㿈ü-h¯”ò,$Ýi‰ôjiÛê¢öì®+ÌJ¯ˆüÈ*nÊ®÷ð%>Q/Q/Áak1.AOâ:7Å®Còá2Q.ÑAòá–?Aòa$‚?GØEú2¥ORü2…¼Èágv´ñ„sSç)34,3µ-(nÙCra„ús´“/Séÿ:EÍÙ­ÿ>AO”÷,ÁÏ8>­Ž¢IòÁ*׆¬ÌráþK,Æ›†7Έ'F.ħFK„£œâëNNÃÖRóA/RóA/VñaoBóA/jò„Sþ"O8åcòåRgò…RekwAô¡6Dø3ô;…?RûVÁ/RûÁ/ùáoû–Áozò„SOoú”WO+þ…V_/ò•-j3EjóA?C¿Sø'õ/•ôªý/ôªÝ/•÷®¹o‘ôj+O8üh.O8ÜhúÅÊŸæòÅBŸôôá&—„î&Ÿ„øªÄ¿„ö$„-bƸBôèŒ)öì¨mBÏ7Š‚aD(A.D BB"C4a$"H€¼Râ(A„$„äB„$ÅRDA !Jˆ8ŽL‚AˆaÁŠS„®FˆAˆ„ÈAHƒˆ4ˆˆ¡†ˆB"ˆHP$!&O&Eq‚*1D4HD”%Ø!1,áABF¡BÁ!`Bá„@ŠD B"…¥#ˆ$‚€ÂÜs×”&Å$IxJ$¤( €*¨†H'i/¤À-ò&!ñ„R˜C*õ„$@„-!…B d4Cì"2")2H)&d"B0!L:(%|*ÄB!$*ŒDòé÷ $,AtQàA!1A‚=$ "D%dB"AI$âBb!8pf$h‚Ä”)²’„+$ŠŠN%GTD&ä!í.Dµ"!q9"q(QB"JÆ))²(t„ò¤A"0B@,,Ð85L¡1D##Á"&ÄCM($€SD‚( ”!&4D(6,ÁB$bQ*8nÄH†a‚…8‹(ˆŠB8"A$¢]HˆE˜c\œˆ„ ˆB„"Jú?¤$A`$"„r22&æ"¢Râ,Ä¢"hOD¶e´œá,’(IBYñ"‡*´æT†'"g&'‚F¢¦…2!‹$ƒ\ILØÈd$$$B‚#ô((b?, (¶EFB纑$¾'IIÔB¢C±AAäBIÑD¡"v5Ô! [T^"J,õ‚$A/¤Jò$!hM!(Џ$ö$¢82]"Ù2(•¨.‡‚.(ˆ"DfR8\ô(JÆ1HCr(x"‚ò¤HË$G*#D1Bðj7–c!¤m5'A¤"$*ñO"r4td¢!n„D`FKaÊ´£”ZI¡aoHçÔD²”ÓDø&f¥LPDK;¬á!‘!Q"–ú†g8´Î#AŽ(†²­–L.DìRBB.¢+¢­HŒøB(ˆ)œŒÿØMñW4GGLÜqA¡äøÅ%ORäAø"(F_D±õ1AoR”eoBôA…ou9uOSå^z§äÄAŽqOCü•ñ_Jve·„ØeXD_tXTODþ¥¤/Næö'dBî"âò21./¿#Q˜Ï‘Ѳò¿´šú,«?"t¨Ó#Ú$øA)­‹7(?†zâÁ)7ÒŒúêÆ%øÂB#ØîúÎH/¨ò.¦-´ƒÝQót4Oµá±Sá•]_g÷5K™>O3÷tOe¥q6QäBö$$On÷•uuoGþ$4[Ù^kÕ~5DõdEOVô5¤OJòô$ORöôeOföed_.þgeOF¶töåò?æ6ó(:ï¢ÓƒÑºÑ*ñ*¾Ÿ*û*ã6úé*c¢¢-㯾úNb/&ö«ïZŸªþbâN¶êò*(ÍŠ/ŒtÈò*./"úvð"GDw)ôae/F3dOB÷¦_Jr&‚÷d".qOf¤$_Vø2aBGDWvOö‡Ä/<þÕA;Èø§u_ò4uor»Qù’2šÙr7hæVºáþcd_æó·t?#ñ!)ÏsSŸ!Ñ‘ò2·—’ßJêªúE‚𤄯¸|­XN‰hü")Uõ(¨ïDäˆø‚ÌFøÌhïŒì¨l„LdÌÓÝAþ'a~6/ñAR/õa&oU³Õî{ù§¤O!ãCò46oGÖuöG!_WñdR_Tòee_BúeÖáýRQN’?ádò¶•_NÿÕ’[;®’:ë+µ4úaƒz$±#’!Tò¤÷s¿1ò;?ÏÒò¥ø2ò²®b[®¿âº&¨*O(þj.ÿ,þcA¯ØüG!‡F(â¬NnºLþªh¨´Êè$üŠB/¸öÎbð24\ö´ÁakOR´4âzõ´6Còñ6A/òñ¶#òeDM¤G¡¤'CN±/CÁÁ+¾ñ$aOAòô7_Gá)s4ôÑ2GB,%òá–#ra¤‚?G¥’'C>Á§CO‘<¾ÂaÍ"8í(ôÁjÉrÁŠòá®#öa,xc¬‚'FJxjÔ„&_~õq"_"‰ÆD.($AdòD(N¤KAF´A2XG†Obfä*±(¦IEˆTnGcMr8$D‘‰ÔA•*,á‚„C$ˆò•L,Al(ND=!é8t£tò(„†£AÍ6¤„e焃bAìb”4£êD´¸J)‰1&‚HG"ÄFĹ`ćD(‹N"â‹I ¡A¬&aË"Q¡løB$IC9bK!F†$¢O8"$C’+M$$ ¾¢'AN‚¸„$‘(-Eô¢IÐlrB˜a`"‚ÔAÂDà„*TH,¤(€¤„ HÌ&Ñ‚áD$ˆ-"ÃBrä!"–(ia„KBƒR$„BàE4%‚¸M°H.CÔ(t¬Á BÅ„t8”…´A!ÁXHÑ’–(D‘B…ÒA–X!ÌT&E,¢RIxH¢!Iä. €„ÁL(€")  G#€„KH„FAHŒ˜IAB)˜(!¨•‡d(0LbB0DÄA€iT(NÀ탂!RÄà„ê!!2$‹­4 aMˆà"!´Hr$H”I±J(Ã!AJ¤D:Á€AèI!¢dEÈN¤(GC‡D“™¬ÅL²AèD²rÊ&HIxeÔälÂF*TB´ëaH@"‘"…ABG$@ ÄABE1b$‚D„tXˆHÄPHÐ$b„A‡$!BD‰B$@!‚!ƒ"DHBPA(AR$È!Ü>#$,ƒ)ñˆMŠÒbØ(!Ô(bA.(C4(ðD$H>ïÄÙñ³+O/R¼%ôzª/Fúvª/2ö»b¿Úò.»ï­¹VÔœò/)d}ÌüE6߯óM^Ç;ןöõZ¯Ùù¹ê¯îè(ù†/:ÿúŒ_üý{¿‘û<)Ÿ–ö,mߺó'%ÿîûì.Ëþψøˆº§¬¯Ö÷¹¸Ô3ôaI¬ôIŸ´ñaíïòò½=¯‰ûE”okñ44¯Ñ÷}<Ÿ·õyÿ•y^üMMIÛ»½”?•ôŒæ}É?5øCAOzÝVôõ•Oɱٙšù˜Õ—D?õ¸y_Uúh(_Vô!ñ±¿Ã½³ýÁEJqQÑõsm¯4ö2›ÿ;¯µŽªƒKª/ú¬e_W¤$?SBV¤O³õد©üØZï'ëùšÒ/mµÖùÒbÈ7ïõ_ÿ5HµÕëò=¿Êóœºáù¶ocóß‘ñv?¿ç÷=R¯Õòi-_Äö¨Ï¿âèµÿ¯÷¿ýØ’/5ýôCþÕ6onóüïOsö>}ßVsWòBX/1ôi>_#÷ß¾ãû¨¬o(ó$O*ùùì?hÿU"¯fõhÂöM(nl¿¡÷¸þï÷ò¬­ùÚÊ+Q^žO-ûyõ$'c­S¯ÃÑ’tØ’·Ñ>üŒs“ô„2O"óÁ:OÂóŬñáž%xaÌŒ7ÇŒ6ôÕ¯CÂÑ«¾ÑVvò’w×%ž2G!_íôÁ:bóɶDÆò(¤¿åãaù2&>ç§aç!<~ô8GÏB÷¨w×D®OBòá>A_îÑ„òåœyreŒús‹±¯C‘ø¯C±½>D9w/õi}/‘ôi]/‘÷m;oÑö©!O9¿©ò–׋*_½ýa,ß=uAøõw„_~÷Aˆ?_þSš^ÿÁŸÞÿÙŸÞýáß^ÿÁŸ^ö”ß»/Oyýº$_½ýû(ÿ}}Ëøñ÷÷„Ÿ~÷Mˆ?ÿ_ŠŸ~ÿKŸöÿKŸöý{ßöÿCŸöò„Ó¿Ãò–×Cò×ߟÇòÜÒŸ•øövׄÏn÷M‰ïgßùîökQïn¿ôêÞ/÷îöoAõf74—È,QÁ(UèBAAñAO4(.À'AŽ5ˆQ8q&A4DqAøTA…FѨBÑh¯Aâ8ÑHÂ$,QA,åbåb1&4ÆA‡BaBA‚i8Ž’D,QH,AÌ2A.ÐA?Ñ„*‰€úˆt%’(Mˆ¸!.BMˆdf¨$Á\dŠfÈHA$ƒØ!Ø(¤A-˜HIˆðX‚N#"t$ˆ2Db%x’èHÒ!ŠÐ†Œ€K¢X¬_‚q!F1¤‡JN$ƒÈ†Ñ‚%H|rˈ˜"ÀB„K!‡$p(F¢#’Hd,ô(LAb&BX‚H%‰1JЂE$B)¸dÁb„LF$Ä*#ÈT#Á‚ƒG¤A‰$2ƒÕ"\A‚ô%(A(FTˆHR3A)„q(20B‘eXÒZ¡‚!Š•&ÔƒáD*´,ÄBƒ¨mI^´â)4!OáâáŠQB, AoŽEö((ËD„*t¤òZO«D’HK)-(!DâB:ÈH)8¬‹$E´htˆ&ëA$JR!‚‹!½,0Œ2D,1HŒèa´4$M"K„&Ø„1A`‚f/ƒ$r‰“Ž&JQ(Câ!"a$#8\*ÁFÁ&á‚x:A2D„Œ˜ò!M¸ÄhA2Cä!h„G("ðh,N,#aE(…&!<p!KBA„Œ”$Ë-FÌ´ÂàJÁ˜MV…Ôj%‚d‡.Õ¢¨S!'‹„?¤MÃ&X(Ÿaá"©cèEé(Õ…·„Äh‰²Dò„(9~ô›†©)µ’±&8ÄNx-:.‚,‚éˆÑ4鍸(GB‰–ˆ+ëM†2†¨8És’£ÇÀ"ƒD5"!†$¡$H“"a‚@N(@„hÁ,(!Dc¥b@.*)bbA„FÄ‚"@„H¨h„,3DADF”B$ƒT6Œ¤$I$#…gÅŠ€.D°B„¢¨H‰Ú"à#¨!Ð!HIÈZ`‚D&*h*‰ÈÍ`AB§) A"‚'!p$ŒBàƒøˆÍ Jr„¶A„…TÁ+A"dpòÔòä>l3aB#1#Q<¬Ô$á$‘DM2mXG&‡„.‚O³$bD‡ˆYôF¦ÄrC¯ñ‚X&Ä‚MD)á)²ÂÈ-ˆ.MÁ9”Œt´™ïŠô$ÈÔöÈ,Aô8£‹!MBN¨!†øf1Eƒ²YÒH²A"æô((ÂɘHü=ª¨B£#1HðZD8-~È$/A‘"‡D)68$‡LF!t†­#$h'„LVH¡¢-6‚Œ¡D­4ˆ1Bƒx"¤a% Œä¡ˆB¨’IA„ˆñ,CèˆeBD„DŒfCˆq"Œ„ÈX!„‡O'&`$,±""‰ÑB´N$( ‚P$fH‰ñˆB±"#‰2‘#bAŽÂ£"‘$ÄÀ$Ÿ(ø$JVt‰’F´(”"´„B¸!A2at"2HFÈL"„B,‰ølšC‡8„/¦0A*œŒE(8†° ÁjD(’hŽb„Ë„DðQ!FŒ„ gá‚2HË!–„‚4"F!ä‚5"°˜†B˜ìLÑ("(Ü”¢!VB"aBвHD‚rñé½”A‡!`BILÈ"DHX3¬‚Á!”Ë"D„”¶€Ú‚ !؆d„&!áHÁƒ‚‰AB’¤I&ƒ" ÀXA’ÀÒcÌ‚IÄ!) ×Dhˆ‚aL6K„‹)–(Ùb„M¸£ŒªBD“9BIÄEˆ$x´Ô"¨1‹BKˆH-Dœb‡Â*ÑBd"‘†ª(A(AÂ2b¬„Ù"GAƒ¤‘,ÔHÆŒ ßÌ1X‘„4$S„,a"Ä!@AÂQƒ4R‚B„€dP#á!‚‚DA*¸”R;DÈRˆ,ˆH8DŽˆ(‰ÔˆBt D–#ˆb)|5ltDòAƒâ‘a$-`Š1"$ „‰ˆ’0$ÀÓÀHLLÃH¢!™"(ŠaƒòbC!²!X‚C‚¡$¢<Ñ*áa" ©(ˆ˜q¬„R$0(),"¶ш"‰ô(â„V2AÐ%ˆ£‘‚Ó8±Á8<õˆ(H–ÄsLQ'CbIqT¸´$"DBÈ2D.BE LH(Ê$Ftâ„á(š…E¢„Ul(ÁF‰‚tx¢HàA$âAÄDCBCAŒ5…„@$àŠE`ŒU(tbŠ"2A.(`8D$!FbB(LDÂlÑCj4%Ä"%!aŠ&4D!IËBHNB€„ÔÈâ„„„!…8@˜DˆDD`!AƒA¢Œh!-I"¦"a,bH#¨"«ˆbˆˆG© éÈe!bR"Cb8I¸”ØHàNRˆIƒ“$„â5a"($‚¤"Cò‰*ŽBp!ÁQ8‡"((aòD"I1B€8%ˆ(BD€rd!¡"2€€bˆ@à!¤QHHðb€€D„RˆŒ¨$AjÀ(AH²(á!["$-Œ†`B6‚ˆ"*RH¢"DA/„A A((!.2`!À"‰€rB„T‚H„ C26"€‘‰RH$€BDa„Vˆ²DÔä'Z1èCC‘…’$OQôDA/„á!ñ‚ºx‚úQ(#”$*xH´ñ!!ÍhhI‘\‘AáSIä)22/#t"Ê/AÓÁòR$ƒò$„$³fâdÕR"oŒÄ!žBŽ1aoUáAåBq¤C/ÃóCâ'F¯…~R8BK"Jׄ´BòD”!KH•èB¸röRÊð4(wA£„±!T(È.fˆè¬âb©\âÌR¢h/b¤8}†8ˆHv²øJˆN"J¨ƒI¸$ˆÞ¨†ún’DŽQtáxò!8/Dña(¨EŸñBÊωªDl±"XD"E„8¨ ‚Éâ(ó$4¬ãBcŽD†bƇ³‘B)Ö*”2Ô†ñn%â8ñRm4A/†2QBZ²¤a‡ÂÒ¤“‚V)ù*/1ô&-‰”$>\A†£/ƒR!’Ž,O…r-Î(.ŒlNœJÁ…”Š'FG"ð$#°6⃕>Ä‹õ¤Iô¶CòdlïBö¬¶ßÃúl>OÂó¤¾ÇŽÒgµ/îýj/b÷\cû¶6oCãs÷¿Z/ÃüžR¯'ô$èÏGò¬6OO÷tlOÂò$üíè¾xÿ£”ð,t¯ÖâçòGI‡!/öôZ'vî$[­_‚jKH©ªHŸüH(_ÜôdÝA‡Œ刼Œõȉn(_œ¼ŠõÙngŸ‡óRNZ¯µÑ#ôw?hö´Òk¢ž+">3~H)ÿk¨þ^ûcÏBôI(nn;[éôšq¿ïûÖ/¬ôšQŽúô??Î÷¾ºŒo)áBú$ƒ/Äÿ¼R¿òtûaÏBöM(OÞö—vÏÂò^wÏÊþVˆü¿èþ4?Êþ쬯Êó´–/+ú¶•÷¸6Ïåë³JrhôH(.<ËÕI¸Þÿ¸¼oì¼ÊýØXoÔÿ§h$/cÑ2ô:6mC‹-aëNcåòÒsÕê)ôÑ:IøÑŠúñ(ÆLús-¢/cÑ2þ:Mç!Óë1%ta̤7ÇL~"Ää§CÈ«èçCÃØqýEöõaÏÖõaÏöóVaÏ^òÄóïOò„û«+¬ÿ{¨¬}[øãþ÷…î÷MˆïÿSˆ_~ÿÁÏþÿÃÏþýãÏüÿÃÞö„Ó¯Oò–Û¯KòÅÚ¿ÏòÅÚ·î_øá~ß„øóþ…ùá·¯ô迯õ¨Ÿ¯ö¬¿ïôè¯O;õè¤O¸õª¤_¬õk,O¨}Iø´¾ß„âêóI˜/Âÿߨ/¾žýjüëٯƼšþn¼ï]ô¶($‡‚Eâ‚Â"EhBB&6B&ÆNA""T(I8Ž…DBLBÜ$R„.„d!&4ÄNA…&QhP(ˆ£á(ÈFLBì(S„®Fh(B*òA-A‰ˆ´H˜D‹$)8Z†RHX‡Ä`Å8G„&d¼ÃŒŽ!„)F“ˆ9äy"‘„!E"Ù„4‘MJ2HAŒdB6-(ÂH!ÆI'BH+)`H,=,.à ‚0)a´„!Ò$´8j!0$@˜"(ÈD„7ÁfÑ(‘$F ‚RSC,ƒ´I‘¢Q#‘‚A–DÒI-dƒ$I„b„A%,‡#d¤0!HL’C‚"CH¸$tÑ’›*Љ£(V‚…A‚A„)‘""ƒ´TBËD‡„À04“… F˜T¬d$´êD´$( Vრ‹Á¡INk¸Oˆ…:!˜'Œ£…jGF˜ ó$H) -ø%à„Ç#ÎB!Õ„h(X./DØH&q¢c9$/B8á…6bŒ„,‘ÈG‚NŠdœ_“AÂ8°D±Ø‚E„dÓA$%¤„LÁ"L„B”!Ja‚/D2„)+4†¼B!"A¤‚)¢AbÅ"F”!#Ü„c„ª9D'Jòˆ4¬ˆÖ¤9$:²ÌÃH˜`„JRC¸<($1¡+Fá¢A¼?aIsˆñTƒöRO–4(e’„ „#õ$Œ$ÓDÄ!ä¦K4FB9šRJø²JÍ4¸$éC)"å)ä’¤‘Lf‚ÄFBŒë„!MXŒ¡-4«]ªD×B¸$84‰1H‹n‚Ô(’‹(‰!t¢L'JJñW®$&˜D„H§„A0ŠLòA¤`Œ`¨H&ˆ8"IØ$88ƒ„1Bh@ÌR*ta F:²„‘"I8XŽ‚%ˆ ŽBCè"â,ta‰ȃ””(ŠlC`˜A."ãI2$x2È`ÀH€C¡$‹#DÄ(H"'(`¢D+B(,^‰$ƒ‚l!p„fÔ±B0$ HˆNX!‚H„(GH…¤d""¢!"DRðùà…¸Âa$(BÀhTŽ"-4O$rö"$d­!3Ñ,q4"–HMbB/‘W…,â„¡I‚N$‡At24†kCÞ,-¬M‹‚(N4HK%M8lHò,HL˜V“ϲi¥†Edh-AƒÒC1dŸ(ôH("ÁÌ8Ãä¬"d¨2´ø3½0RŒ’JBŒÄ$Œr‚Q$L‚cô$œ2R*É4xH.-BЕ‚‡BHŠÁCEâAO*THŠS!MèD¡$‰tˆ’†‰DÈ‚àÁ³Jˆ˜Xa*q„ô¤Q,DF(ÆŒJÑRÄ"d¡ŽHèö¤ÑB@QBŒ’C1"Iá*’ñ"$0Lb…"â)xD"…¸hR%„Á6HkŒALF%òF1(ä€!•„!ŠTM‚ÄX.HÒÈD¡"„C„›Bˆ#„„ÒˆÔ21mćD!‹A!ô1D‰„ѤÂ/D‘a$2TCRIΜ’DˆÁ!(Dc‚K§$B‚%’T‡"‘,„I0)ÂF‹8ƒdÐ(eŒõ#’F#Ñ$¢1b‹$Qƒ´„õ+àÄ–1D"o® D„IH‘c(A2¤pCX”*ܤ(@d„¨3äB¨A„ 8„Dƒ$2‚(“p€„Ø‚‘& !&Á$Œˆc”šƒÒä(‚ÔıH”A)ÕAAAi„^¨%f(2$B"VñLE਑†$ñAšB…â(“DIÒ8Ä‚*ØFh^h$™ÁÄAƒâ‚Õ‚8‚KaƒÈ†rVÎACrÁa•:Ñb"’$„,ÁCA’AŽ^À4HIü„,‰˜"A:%…ˆ.DA!CV”!dà‚ÂA&DŒj"“$(dQ‰ ‚“ÄÄ"ABáH¡!PŒ,$ÑȈB(0$„ƒa"SD¡A„­Œd2Œ ŒAÆ`A„Ç(BV $% €Â6`!ñ"$"($“ôb$ ’(J*qhAIQˆŽH%8(K$‡ˆE¤M"qEd“YòH£”(˜(18)€¹"‹ï4Ä«Ä=ˆÇ…ˆa#+,tX,-Tl„……´A1H#CAˆ!£MX‘„ŒAb;àBCÁ¡ƒcHIÒA™bXÒCQBAH\!jD‹OA!ÉÂ3sEÚJA‚¤!¡d´„ñL‚ \Dh!*щ(q‰é‚¤’Á„ô„H<¨xD††8„Ä’‡$‡˜]$kAË¢mÔÐŒÈA:'b*¦t¢`HÄTáB(q(¤! ±Dù¿Æ¡$!eDË"!,„H„hÀ!À=ŒÄ"ÞB+$†ŠbH"1R"O-¡„IÊ!(.£­(LÔñ$T…‰æ™xQ(TaˆHX!%Á„!EˆH!‚ÅA W!¤‚‚‡dŽJÁ;3¡"@,"(‰±B‚ u$!! ÅEA\‚‘ ÔÁrD$(DEˆ@I„ÈH€DØ©D"‚@FTB €a!!!%‚¡ABB B”$„HIC("DA("!‘HXA…„BÁ$@H(Øô9öÏÑX’œtÒHe‡‘96š•CØGaˆ7ƒ[”#²Da‚Š.’.Úoñ$ÁG!)ÈÁ-¨<îä1åBA21Eø9!šñ(CòH„(kB¨ˆA‰VBÆ4ØhU%EF¤"Ì!ä¤qH(TÁœ±5¸"1<*ùˆ&¨‘mH‹‡O/ðhFrI8:ð7„g%0k‚£ô˜­[KC/¡QÒŒDè¤atYá(²rRBKI!Ñ$)b!"<-I*Ái/’ô$I_r8úd&ß!rÔ8˜ŒƒÔ˜ºIòr‰Ê¤g¤¸¹"ñœGBÔWÊ’!jS$6Tˆ)(Eô׃Ù2T".‚®Q¼’N(MŽ(!Lò"JR$‰(j…ˆ±+8HJ-ÁAK1“-$‚ð²$Æø³2oÌq"yÄIý$’„‡T_“¹Ô–“19'X®!A¦;#×e×Ý,QÂpDTRäÌüdX%UˆÙBôv»$/÷^¯Gñ¯¡õJ)ç‡ï#êáü9[ïhÓeébúBKOéõ§úÇäohÒDôELnè?©ûNN¯IôþïFXBŠôÂ)ïfø&„oBý'GOJÒfû–_÷õŽvò}iäÊÁJ-HN¤ûø!mOKõÑMñ‘™­AŸú^9ß[ãÞ>( ˆ†ÞÌö%lOÎØgò$LÔöiÅyr¡õö.dÏReˆ¯¼HôV,Ïž4T-~ÏûÙ®óT/¤uÚèól¯Äü.Þ¿­ò&o%ù³¿ot¾öš>ïgýlÍ,ËC,ýX®ï(÷¦ÏâóV‘Þr/)ñ>owùVæOaÿ·M6oCùµïov×ûÌqÏÃö$%ÇÁOþÿ/ù_[÷¿=_Ós×ùÁI]ŸÚñyßßö)kGÊ‚þ$.#Ÿ×ü%‡ßÓúÅEÿÓV]ßCöM—_Kò54ÏGú¼|ï‰Õˆ÷\ÈÝñý,ï²~:•×,tLùBŸ•Ö(÷D)Úíø&$®’êøl._ü(Ú_BìGòEa$þ!úþIJ¯”ô„Fo¨?ÖöŽf/=òÄ”*þF¬#ñ²•_¾ùH¶o§´‰ÔDtjøDDHÝUõé‰o]øyÜoQ÷Ù'<ÎL¯{¤^½Ï)ñÑœM’ùÄOOùTÞ‹ñkÓ+$KFÄÿ$².¤o*çζöŠü‚Ž$/nÉ>“ØÂñvŸÇÔtIòXDôu›-ïÌÿ8¸/cy¶ò²“/ãúÖv¿ªôºw÷‡OÆÒ¶H¾óáJê5ûé\o9õÁ’/ùÈ^o9wã´Ôÿ¶M²ž2OIú3ªïeü¢yRö](Fö-i_òþÜ_}ùG¹ßw÷—YŸøCŸ”ÿ'ÑŸ•ùMÛ;;O+»2û4—¯Ùóá×ïÙõµuÇÔ߯ÒÅôl4Cú´t/Kö¼¾¯…­#ù¸¼oE|q 'CQv:ôA£ñqëüšsÛO(ôÕ:EøÑ†øñ„ÆŒøsNDù2\ü:MÁ«-áë-cÍžsËž2CòÁ:O"ñÑ:.þÑ“òa-?ÇÑ‘z2Ô~:ÄÁ«‰¾¾Øö<žw_Åákó4ís4øÕ>>8_ï›"_ÆÂ¨7Ç*x2´(|:”Ì£¡áçC¦/ßqöiÏvöIvõiÏ6÷mö„û¯Oò„ó‹+_¬ÿñ,_lyøáöW‡nóeˆ?kÿ{˜Ÿzÿ2ÉþÿÁÏ^ýéÏ~ÿá~ö„ÓOò¤Ó¯KòåÚ¿ÏòîÓ—~Møäwß„úþõ¿…ùæô/üîü/‘ôêÌ/‘öîøoôêfO¸ýø&O:ý¸&_üýù.O=}Ùê~ÿ](~óM¨/[ûS¸/J½ÿêÔ+ѯNýèïN»v}‘HD(A.A0äT(ÀŽA…’„#á(X… $A&dD#qaÜt($ñ)$PH-¯Aâ8QHQHDdZA†1TCqaìTHL"‚¸â(A„aBD8Á.ƒô!t“!<‘¬qA”’—HPI.à”$‡yJ‘.hÕ!D‘¤¤$3ñ‚8H1KÒ;(‡E2#hC°T!Ä\*Tሤ„'A›„$…$Œ…ò\!!K8)f‰HS{"Q„hÉè!fèGJÁÂÐ!8Dá Š$)ˆA¸ˆB"A¤¢LQ(FØCW„ $¡(VÄ‚'‚BŽ"ÙBO…"(!2¢Y,BYB±,¡‰Ï$4Œ$U‹$I´‰!âH!”ˆ2ŽAK!D‰ôâ,V$ „†ÑõFHùRRÐ(…´,((¢) I'A„ÏD˜$JŠè²ìˆDù"[…‰ât(;¨¯*%ÌØH†$B¤ÁŽ8!fبU‰(8hà˜ˆ!AŽ%ŒŒÒ„hDA\¢BŒˆ´8ˆ†!¨„HAÌ(/ÄJ"ô¨X1NˆÀD+!Ç$Œq4‚„BN$dÕBƒ|(ĈidEƒ‚²„ƒÂ’N,MA‹&Ь²AaEŒ"A(ĈÖJxD(IH‚•,^ˆ#JR„ˆ”$„M1Š„”ŽAƒø9­ÃÏ(MI…!U‚NX91†É²‚"¢HOaè¹±HÖrL4hOD”¡J•£vøb´xø)Exf ü$£X,ÈCŒ6GHh¢¼É±B#f˜BNH$Ë…F4I,ØD"ùaXIØÃÈYâÔÆA‰r$š‚ˆè‡)ÔmH²ÒT‚X'…HƒÁ$‡„*$Á &‚À(A€b(BÈ!Vèj‚!.*ŽEa¨A‡BADÂ&ˆÈA„¨„¢„¢Aˆ!†˜B„A„I¨$ˆ‹$KHVˆ$$X„Ú>ÎŒ[D+EA.LЉâS‚Jòˆ/„H$ñ(„(A#B¤ E•HB!G( Ã"àµèŠ(,Ôhh($„h„†’€š$bŒ A…ñZK`„‡S¡A"I8D(Ly´fÁhK$}˜!DÄ!Œ4UFÒtX1X‰ÑJþL#'Á/6ƒ'JK8KDñ…oÕybl†G„Bæn("ˆÑ‚a(+BN!«%ÍZŽ."L2Šá„Bô$HŸa2…´.)¡A(”®šcŒK²LdÀBFœÃ$Ž"HÇCH›(&bÄ„4ø3´(Q£„ñH‚L·(˜¥ä(b"KHLbCSH‰äR5"Á)´2B,FêFè‚Ò$ ¤¨A‰3HBH›$p˜$$9R‰j‘O;D@TX"%Ä Â$V  B–A,BaÁ*TH‰‹Foc©$ˆG$H"ƒT‚.a„ˆ$‚It#Ø‚"E"˜jM‰HAp4)6ôˆ)$$éd2Ý,8言¢”-(B¦$$(b„Nˆ°Hqˆ´CT‚¤¡Oˆ 8¦HW!¡‚‹DA¤¤-$¥Zˆ„ˆA0ˆ˜( D„ŽA&„TÁ*HñD(Lë„L˜B-\"B(¤!H°"áh H(‚ B8–$ Bˆ0‚&D $…B,€xA(8A„B!@$T Œ”!FĈKàB£ M´Ê‚hÈ !((,´#šD%‰BH(ÂH‚ˆ>AŒèˆô‡1>„`„˜D¦Â&Ž4†ŠQãD$Ò´ªA¸,(hH8’"d„ŒhBWF‹BL($!³h¸D´…ñE™$‚$H!ˆ!…h$HF¨„„D,„$!BˆpH'Œ0HJ8(@„‚Hƒ(B€“t)¨ˆ&„˜ˆ„†"ÊÞÓaBXÉÁ&LbDFBt„´ˆÔD*„$È d¥²)È##8ƒ!‚/"ÂD%(©‚„cBÀAH€T0TˆDFÔ‰ ‹‘H‰ŒøY2@èA¡Qˆ)BHR"4"‚‰ %T„$g‰!¤l4†Rˆ$H , ‚ CB¡"C8FÁ!V±ˆ$Á!AYȈAAÈ„€âd4JΈP‚„‚ (’H#H@Š‚„ˆé!ðX’"J²D ´.BZô(AdH AˆÂ¨Ç†éŠ‹˜‹"‹‡Jª¨… `„HD ôVüÀ"Bà$„™H"^"B*4D‹B„BF’DB°Œ!™°ᲈ©6D #”ˆ…‚D¡$aRàI!*ˆB†ÄH@$@„AÒˆˆ˜"ˆ‹¤—’\5G`‡A (PP``à„$(Wˆ1H#1„1Àˆ,GBPp4ÀH*½AD\€„”€ˆAˆ‚…1HÀD! aC0J@sˆà4Á@#qX!€€Há$ÁÀ„¬<¬ FdŒ1Ñ(A(ŒâÂA†ò¡H‰¤*„DJE¨„Á¤DFòTJ4‰Â²KÄHÐ."Ò¢±’R‡'Ža%ëÖT’‚#C̈‡‚˜Èi”Ù‡&ÈŽ™ST„Td„À«EL­É¥ˆ*X† RLtA*ôDHÒ׃V$ˆAÄ$L\‹Dƒ4h!NB)4ˆçAˆ’66,ÒüHàa˜!©¤„%ÓŠvDb‚Š!Ôt‘ñA•ÈFñ(Ò¸šÁA@ø!è/Aò'ˆøHI˜D‰ÈˆHˆ9HJê?×%ô«k'D¨!Vr6ÂFÒ$R"ŽdD*€ñ)ˆLÒ¡øÏ¸«…Z_ãôq8!ä5uùQ?ïCtÔׯöb„/BxÃô$gÿÆÚ•üÌÉ´DÂi¿Wò-öolѧõŽì5žNS±øáÏ)rÄõNëµ*ø§&or÷¨?¶|ïóŽÃòIA=%_t–ñRR»×ÚŸµ÷‹›¿Úñ}¹ßö_ÿ‹ƒx„ö‡¿½×˜ú­ïÞÝDyøÍ[ÿÁü“ZšÇÈ„øØz­š¯Êó|˜Ü$ßdW›/„W±ŸñK+OÔ×öúmÍçêßÎÚfº$jZ_Lþ)…ÏœÔÕºZt-õMÝáùMÄßLqÙéŒûU‰¿žMaÃè¸7MO(ôÅ:CøÅ‡ÂîqtaÌ„?ÇÈ„'CL|:”ħèçÍÚ³ØSû>QÿÖóZCŸÖñZqßÖó^qŸÞò„ó¿Nò„û¯HòÅÛ¿Îö…Û—Îúiü±ŸÄø³ß¿…ø¡Ÿïü韯þ韯þí»ïþí;Ï8ÿÿ8o¸¿¼óÇûßò„û÷ÎOúÿkL¾wÆø²ö?Çø²ö/Süúþ/þzÞ/öÞêoôNzOúý^ºO:ý²_¼ý:O<ý_Žî÷·ÄþWŸÄøò×·Å/oý’D¯ï½’ôúÞ+iï¯þ¶A_ìCqAˆqAˆsGèBqCˆ1AqAÈA‰ÂA‹"”(Á£á8ØuIˆqAŒsEèBqA¨7…"qaè4(´(‚”()¼â(…ÂR(FŒ×ZñFO±ä„…áfÓ¦õj~oiøï(/!ù¶6/qüò:¯!Ýcö‚ò¿ÃòLÈN$ËxÁëíúnJïéöš¯¨zJûªN¯Óý(Ú‡ŠŸ¬qÖ"ù‚AŸ¨ñÞ.¯è×ê{øLˆL‹˜¯áúlˆÞ]¯ã×¶ÝŠùÒX¯ãÔòÞªyÆsÇr–ö2¢o8ôï8Ï]ñÍ‘—•_ô9l>ü‘ÓäÈäı­-ΘîœÃõ%Žð^‡tïäuûX—–%÷+OÌòœß$»&Ødú:…Oeÿ}¼hö7ØÍlßÒâ$õ­e‹YO"ÿ™i/móÅQ­Â¯<ôÒ¯zç*õ¹êçù’Šñ’âOá÷ÓwO¬óãÖ­l_FôD_TöœþoÃýý¯îóžÛ¯ý˯ïñ¾YËXΔCñ–K9ŸËÙŒöüYßù\½LMdÏ®÷$LHýÖÞMˆ«}˯­èŠ÷zÖO92ã-noñÕÅñCŸ„ôYâò]ÏæöŽÚ¯ëò’/kó–RO.ó’?'ô®¿—…nd[$BøM¨îÎ/3õjšo5ì©ý[¿¡ùRëÿÏòÖ´ïÄø¤2oKò´·ïâü®’ÿ§ø~§ÿÇFµaòì4Ÿô¢öϳÿ]ŠïõÉÚ‘ýZº¯½÷ßNOIø”O(ù¶6oyý;ìϘùÝÏÅõYMôihO~bÜŸE˜ÚÏ¥ù–HNˆ«Üˆ»2õ”×ð:D\ô:DMA£Ñ¶>ÄiÏ‚ñ†sÛ*O)³$ñÕ:CôÁ†øå„WÆnˆwç~ˆ'c|:öÁƒñãïAÂcÍ4ŽsÇäŽ2M$¬ÓDòÁ„î9"ÆŒxs¬ƒ'C/’|:Ô–¼ñéãá‘Ö,á8ì(“¬³òÁ‹îraí‚øsMZø2DZü:dËÅ£¡äë^‚ãÝsûI¯öñIVñZaÏó6OÏ–ûäÓï‡ò”ÓË£_®ý}¨ßëýilëýmlêõMŒ?kßø±÷oôù÷oôù×/öý÷o™÷ýwo¸ÿý6O;ÿ¼6½ÿõ<ß=ÿõø+ë¿ñsHqCùaé?õòˆÛXO—ôŠŠËDŠòlÄ®ê“ÚÒÉôy<)õHI•ñYtOÂñL˜g‡NG+”Mg×Ê_?ôýý,Ôv}ý…ÆÏÁûE$_Îñ%lMÈœûÑQŸÁö(˜ÏùÙ=ÏÏq´Â”OqwµüeŸÓý•œïAòL%ÿWôï…úM²nñ/îýøñÃÛ¿èö¦H™ñS¸/¯ñ6‚,ùó¯¯ñc‹?’ýŠŸ”òImŸ’ôÉR½©¿m÷:š/ÊóÈ­ñÒ¯Íëƒõ:ð_~ßÒñJ\ב¿5ña9o$ó]-KøôÒ߯ó”&OKèûý-|ŸùòÙiÿšü>hÝ-Ÿ”ö=Jß‹þŸæ_TýÆ&Ü;ÜQþÒ6ßÜöµTooùm,Oi£‹O:ü=ì}÷É)?ô6d_ÔòÁ%wÎßJþötýW68ô“ÓŸ8ÿR*¿¹þ?Õ~’_#û²ocñ²‘ÏòÿKû¥óí;ceŸ„ö¥_¿Š÷Â&¯¬ô‚:ÏôÂJ¯¨óJ䝸?„ÜÛVõa3{A…ÕÕÑõdG›Ïkôr¼Oh{¶t´ò½O<ÿ_¨kVVöM(Ž%‡ÞOWÞÿ-ŒôÈÈ-ÉŸ¹×ö¤A®žÏGú„²/Kñ´ÿSþ„7_Í¢´Ï–ô!aŸÄòLwïßõ´÷ï±þ»‹¯<õSÚ/™ü[Ÿ¿Œ÷èJOŠñº&O(ó2‚o*õ»j¹ò[£¿ìökIŸRòMiŸDú{‹ŸgûF¨‹ÇÏ¥ÙªùØ­ù{†'C.A§CÍA£ÁaëAÖôŒsÕè(ôÁ:EøÁðáž'ÄW†N„7ÇN„gCü:%Á£Ñ¿ñqÅä8wMü„2ðÁ:A¬ñá#qaÜÁxsŒx2äü:$ÍÁ§!áï)øa˸—Ž2KŒÓ-ñÁñá'ƉøsLŒø2„+Á/C’Ä«JþHN•sÔSûWI¯×óSA¯×ñSiïói¯?ó„ó+ó„ókóÅúŸÿ÷…òŸ¿õ©ö——j÷m‰¿Kÿ{‰¿[ÿ7Á¯^þÁ¯^ýñï^ÿé¯~÷•÷nó”ójòÅþ¿òÅòÿ_naùáv_†øóä?—ùñç“üøçýxÇ?öüëö|s8ÿl¸O8¿,óÇú߆ûÌò߯ùèöÆî6ŸÖø²ä¿ïõ¢ä/Côêä/©ôê”/%öî¸o9ö{§ $`DI2D&$A„ˆHÄ#á(ID…„äBLDÄTÈ@„I8Ž„IR„&¨ˆ…ˆ„ÈA‰‰•‚xè(Q‰Š(8ŠrDhJFèø9iŒx˜’•,œ‘!™bd´‚2±%$QRrLÔ"ÕXb„ÊL!ŽXCš!øD:[’!M„'*LåDØb„M!Hœb!ËBŽ)²‚´Œ‘K¥%xB-bH+‚µ"(´ÒCÄ(BÍ"‚Ç$›$J–HòAò ƒÓ‚hd‚Ò,†¢‚PB$FT†X$MHDHpH8‚I´ˆAB#ؤ¤©G!/I(A‚äLX¤B„CDˆQ(&æ1BÎE¡F8‡Lˆ(ŠáAY”HLXˆHIhV(ÈŒÌ"Ò˜$ë„#‘A„JR‘ˆE‚(ÃÁGa>ˆ$Äšh‹<ÍbE¡´˜DžH'‰ö5/ˆ„ÚFâ(ÁH/úDÈ(‘™®B©$“ƒ$˜/4$J뇨&¢(%„Ô…¹Cz¤B‘FèbL,‘øT˜/Œ$1‚nOÉ>LS<‰áRÂt&È&i!’ÈD2DEÈH`F–Û%‚qHòBŠ8X$]R&ˆ´&!d‘M"…E©BID„t¤‘)£dˆÉ‘‚Ÿ!4,0„O!è‚Ø$xH5RA‰¢„CMèla„à8¡5–$ÏDÁ(?‘A&ñhD=B‘O¤CdB-!OŠÄg”IÂD°hÔ,Ö4•¼ÙñD¡JÔ#øQˆ'†^R.Xˆ1hKeâHw*÷XATI§SJVIŽCž$™zúH¢“a-^æ‚´2ÕÃxrˆøŠÔ†1„·o—]B(ƒöÄ"ÇAˆñDj¸‚¬ÁB.8Ÿ.ÂADBˆ®Aª!¡A(`ì0(ˆ(ˆBCÀ‘!†&Š2Ž&0ÁˆHJB!D…È….À¢°!ÒHÄH ¤H0„%Œ Ši„hÎDhV ‰=G†„h‚ˆª±BÈRaˆh ÖHØa"E“H’(Lìdh0PDA0%¢°¶…¸dÔ(HáBáÈ(‡*Ž*È*AJ1(ÎDŠ”(ß± LþÈ2-TœqFøBíAVò˜JÌ¢¤/A2&µ&tqXµCQ!…uAt(‘EÌBz”ƒøHK„Ÿ(ø(LÞ‰:rD2$D«Br„˜„™òHASü)ÂÈ¡cái”B,õX*TJŸ‚è¤a"D+†…âJäqˆöD`B)é…²„¹D˜ I·/•:c„ñ'B­QT*BG©JBTb:hd(^„H‚ĤH9VHŠŒšÂD‰:I’„F¶&bÈÐÁDA¦$´ˆøBX'‚ËA-d,É*˜(ˆjH6C*„°(ˆڒ'„‹…0xOIÄG$Ñ!DâÖQ‚.Ž„(Då¬a(A†h½ˆK-HÆÒ1…+ÉËI!*aBÀ(DQH„ôH„Ñ‚Ba,!NˆVñ"(¸ÄB"”B¨ä‚7$‘I<:(G(JiE€œˆZÒ’:Æ9Œ‚)BÒD!"x¤HCNÆà‘”ˆ!JhˆŒTB,˜HA…d!I’Hð4T!.DD-HA$^ŠB$I!¤‰$b!I¡(E˜„AŒHŒÑ(ad„3dˆÂÏ»L ÄH‚€-$pB PÈ0&F@8!+ƒL@¢H…I(Œ(!DÈ’DŠqIE( ‚„CÀb“„0'"A”‚!A%Aýtœó-„.4_ýô”O_bü%rϨó]AðfìïIûJÑïtñ¤ÕÿóüН¥õÚú߯ø,̯ÇÒÿtŽó3’:òYïýñsžÿÂÿ–>×TgDOBöž®oxNÿª“Ÿ’ý̭ʯ¬ó/Þïëü+(ºäù9n<ç¼úw¯ÃöMaso¶¯ÿü¿‘ìóÍY¿<ùÓeoõûÊy÷~ªø-¶/(ó$V/3èûöW²¨÷/_¿ÃÖòIm×¢¿ÿÒ²¥ý‚jψüJ’/dòÆä/19ìÜ÷"_ßv±WôZ­YŸäõlßÏt¾ú:º+¸¶t´ô5µoüÿ¬Ÿelý%aŸÄÒüvêõ4ímûßÒùÉJ…Ø2ØËüd_*ôºÞOâû–¢/J¡Úß³ÿŽ»¿­òKvÏô%-Ÿ„òÈgoþäóþû¿–¹ÙôН=ùËžÿ¥ö»kßãú–"'co#õ+rÿxÿ+¿ýz}ñmeŸò}¿¿ñ1¦k´¯‡yØúÊÊ+Áhؤÿ£Gp2ÄE§C4vÔVLO8W‰Ž2A?¬ôÃðãÞcñeHˆ?Ç„x2ÄÁ¯CÒ|Âáï!ôDaÁÎsÕìHôÑ:EôÑî!qaŒxsÌ„gCœü:$ÍÁ£Ñ>žüˆsÑŽ2A¬óŒˆ¬ÁˆîuxhüIˆ·ÇNŒ'Cü:$KÁ£Ñˆ¾ÁªãÚq÷aŸ÷÷AŸ÷õaß÷÷aŸ_÷„û»?Oøÿ¸4_¼ÿû<_¼ÿûúÿ{Hû÷mÈ?ûÿ{È[ÿ6ÁŸ^ÿÉŸýáß>úáŸóÄ÷ŸOó†ó‹+_üÿñ,ÿ<ñøñ÷W†Ÿ÷mˆ?ÿˆ_ÿ6ÁŸßÿÁß×ýcß_ÿiŸ÷„ó¿Oó„óKóÇûŸÇóÎòŸ‡ù¢öß—äk÷mˆ/kþˆ/jþ2ȯnþÈïî¸Rþî¾kå‡Å4ÈBR,R…&EET‰¤-A…T…TmÁ£á8UH 1IåB1I$“——ÄHAX$M#ñ„¡?‡ú„B¨8o·|þþfŽªÿÍ<‡Æ,ÏÂô¸Ïlñd¾ÏëÔ¨ìøñN’¯)ö¢Jïªùn6—%ïaø¢‚obûϧ¥ïªø*úý?—”õù)dmûIŸ”ñ¡Ñ?íuBø˜x¯Cý,ŒŸ×òMÏHñ¥„OCóÕS×ÜO'ìCÿß5]AgÄ‚þغtRø©ØÏFlÁÇ•‹x‹†Ï8Q-.g´/!Õ²Å*'¤>vmOâóÆË߯ø¦k7/x|+òôŽ?K½„yèFòGLÏŠúyOLzNýºú-Z¯¨zBù’toÚÕbùÆmÿÎx6ö–mççN¯çøxÖ­ŸÿÕòM-ß×ôŒŽÿûI©¿ñ!qŸ‘ù¸CÍôÏÓÜÝøÝmߎñ$MœOQwµýýTOCÝôÝßòMíSòÄVéºX¾¤ñh$+Á…¼Š±Hþ:„¯KòR¯ôµJóIõIYË4ï—ü–fcùaO+¨)ï#ÿŽVÿçöX*ßV¼öa(‡F?¥úžnÏÿäU/„û•K¯!ýÊó/¤óžokô¸˜nó¢Gcÿ{ébÿTª¥òî‹?öI-›$×ô±è¿¾IýÊ+ŸýÒ^ôåóœ}Ïõ¿—_Çú„6OJø§Ç_BöÞ~OÈþ%Í¿ƒÖ‰Ö˜ö¨X‹ú¯¥ûXˆïÍöŒ˜¯…ùX¨oEòÌÉSÓbÝ>Õ+ñXAŸ¥Õõ(4Ïuô=në‰Åë(³2ò’‡/a÷¨—;%^4ÆÖ\tMøäçÿæô¾ÜÍQªûZK¯­Ý’ÕcùÜoô¶ŒŸçó†¶ocø¶B+÷†v/åúÚ?ô-eŸ”òÈ+_Žô¹ë=ù’ùÒQŸ‰ýØÙùÞ}ßßõ¥Ÿ_Æú”6gKGz_Rþ…¾ÏM×\rùa!DòE&OÎñìäká>ž¯‰õÈ«ÁžÞ¯YwAgC-AçC4ö$–,ŽsŸŒò‚2M&¬ó„"¬aHî!qa¬‚‡Øªx2ô(ïcØü‚œ~ÂaAŽsÃä(ôÁ:CøÁ$î%taÌ„wLj'CȯCã½Áá«aÅä¸WŽ2A_ìôÑðáž#qaŒxs¼Hø2DȯC–Ä«AèëAì4íýïô|_ïôx_¯ö|ïQôxùÏ8ýz8oxý:´_¬ý{<_ìý{?nwsøév„øûöÿ…òõ÷/ôü÷/ôø×/öüûoÙöøso¸ÿø8O8¿8ûÇþ‡óÌòŸ‡ùìöW—îw߆øúôÿ‡øòô¯üêü¿üêܯþîøQþêvO8ÿø:O8ÿ¸6_¬ÿù.OìùêêÿyH®~ß–ü²ô¿‡ø²´/ƒüþ¼/üú”/þþ¸oÑþŠAÀ"A&.†a.‚!†Øô(„a&ˆ+!O(b((†O(R„¦‚EA¤ÈA‰ÄŠPˆˆ#á8QˆPˆ„8EhB@U„„THPHPII<ŽR…„dÄ0HIrDhBG„ü;z-˜¯H¤X9ب„db#ª)²”š«$ÉÂ)K”#ô!‚IÁKØ…Á1lÜHˆt2&òT¬-F™jA$,ByzB„<¨‚Fcä¢!G"AKcQH$B™ÂD¨‰”ƒŸ!Ää‰3Ò¬N T‚D­AŠIÈAC’C*È‚A&R(Aƒô!dcxADŠôˆ¡D6È0$N"Œ1ÁE˜BDQi”B‚A†‚HSÂEG(D,4‚MAŒBY4‚JÈ…$]8ˆðTLcÆ„j‘J˜ qH²Qú¤MB+¡‚*ñ"ˆFÔølQ)ÒHd‚CÈ‹Fž+†ä¡„%ú1Œ+,D£x"„¸&E<3™ô‚e&ÈDªÄ{BŽ4•Á˜NQŒÈ‚Ì¥(MB"’'C°cxDÕ8¨%Œ¢LëB©©JE¨A¬‰eZhF’\‡Itj„ò%,‘Ì!A&„”<#ˆbÅ"à‚´tˆ¢H&sHqˆB8B¦a‡¨FR$‚XÁŠd„!ÖX‘ŠIÄ!R‚…²HØ„BT$!8N„Å‚¹Hò(DDHtó”h3ƨN…âÔ<ôKË!‹EA©FyxeùäHë!)¢/„Ó2ž8OÌ,ÌòˆÃôóŽ*Î7Êô‚X-B.?ÔºBþ$,ª‚Oô2DAïøÈ'T¢Bß(T¡±ÄÒº”aˆ…Þ.È-)Œ!+!K!>….‚ܸ*|zeÌ(NH]:,òáG$‰òÄH‰ý¡Åto "A2ŒÈ2#ä"ˆàH.„ITHà$‚$„$"8H…„0B@!Dàˆ(FF2EHFÈARH@D‚ANKAB H€I¢ÈP‚ ä89ˆ)DA&%¼„º$h*ÐdD±‚Q‚E¤(!0ÁA¦Bd"À0D‰4‚`CNIeGhr4¤E”AàKB¨LUŽ(ÁJ8‚`HJŒ!bDðÒœÐ$úX;BF9TƒT¨.u†ÌS$¶6;HfQ,¦r(e2n(BMOÚ¨½&S(Ž1}Y´eR„+‡AÃâè$ÁžÅ^‰.Aƒ›¦‰Uhr%hD‰1SyIh,õèŠFä(ò‚öH¤t‡AFôH%Nª¬ËFeh¡k×¶æ?ä)bAfB©„bA‰’ƒGä(DÁ)Q„5jAŒfòEŽ(‹/D @a„FD«"0ˆaNQNƒGA‹d`‚ËJ1F‘«A¡†ÈF(ˆGA+Fˆ‚dB¤$¬Ô„8!-¤‰A˜HˆÏÓBB9b܂ԂAsH4¤3e"Š1„#òD#(H%”!ÄhG˜*±‚–‘Á4†êEîad‚c¬a$.qÁ n$LÔÁQ¡"LEhà‘Ä%h"ˆP$‚‡Â-A‡T(´D’†8RG)D"qXø"3OÊ!`˜H {¤2A°†’DBÓ„‚D4^ˆ†‘DE¨„H¿hJ‚!GÓ„¸!¤H!ˆ˜‚AÈX!NˆˆC‚0žC,H‰Ä$ƒ$H®KPb‹„$A2Ȥðˆ!@D !DIb,‘ PH(@ˆCÔ!Q’‚((‚H˜@†`H‰A B¡`…ˆPH¢+A@(M^Ã’M(@h$DÄ-¢I¢$Ñ1HD„ÒaL*ÈDŒ¼…d©x˜b„!’#XE¡„+H%„ˆT#ˆ 8˜‘)”ˆH„O„è¤AB$ˆ´ˆ±H‰xCd‚N(‰x( ŠÔ$Ä¡ˆôf2PB@l1.!„$aDp„̈'B"ÁD“d$4@D¤XI‚Œ!‘b„‚!A!Š,X!D‚'BH)˜ ‚.H.„ a’$AƒHZêA¢"ˆ‚BBÕD)ÒHd‘À%Ù$ìXD,Bò„$ˆI"Ô(!Z™HP˜ ¡ÁB†¢,h¡‚Ð($ÂOŠ\ˆ²ˆ‚HLˆñHSÀ8LD€a‚$ˆˆDV°„„TÀHQÐD1!¸$˜FA,\‚GAH‘AB ǤO$©ƒ!‚)˜H€‘bL‚”¤Ðd‚èA#¨ƒJ*œA„HE™HAH´\K,©¡(%ä&2…'äˆb‚I²CÊA.ˆÁ„IL!A#- „ˆ¡LĈHeœH‹H‰Ø‚l(ˆµÃqD(aD°B²ŠD¨‚pôê0APŒBD„@Dd"$È!$DLA¨2†qHxŠt‚8B\Š$CLHB| [¢…±R¸ˆÀ2PˆF‚!)QˆŒ!†!")ñ¨ˆŠ‘HÐ\HVHR¨À‚B$|4™0$!„‚pL€’AЈ(!#¨!(‰A€†aB` "%ÄP’$Q€À$.@´HaZAD)„rö$@²ƒQ¢‚$ƒ2HC!d$&A$$ ‚‘$DR22@BI$LB4P('BD DH@AA@Ä!ƒÁA%ÅH‰ÄD%ùií>f%”!jqad„ï"xBxløB$Ÿ‚rxÁH.¨Bª¯ÑÒÒú‚LEÒ$ÂBIclM,StHX¡„…z(œA‹+ÁEÔȸž8SQ‚ž‚F‚(ÍŠ"…²‰éDaÂAÏDñ†ÄA‹ˆà˜ŠÄ4'H¿®J‚lä&„Ø!ØHô8‚o"ˆè!HÄ"KÁd!ĆøHC2F“XA%W$BxL2,XbÈSÃH´a°HÂ8†Áž…hŒ'B!Hø¢H‰Á­`ˆÍ¡™”$,aEÍ‹…„€Á(óÇAÇ£‚/áBøF‡hMƒˆ”$Ðaò‚Ñ‘ÅøD„/&¢¤o^ñÆRMoÿæø2‚/mÑ6ònÌÏCøµ?,ýmM%ÿ–ôAÊÉóDe/Âù¤=ŸñAÑŽ™Ž9ÿ×øÉ^ñ_Kñ4”OáhûñQÏãy<øÉÁ-eM$ǒϼõñyï‚ù¸(Ï„¸È„èXòw”, ¯%ûÂS)w[ùR/4×â÷[£¯'øõ?Žû¢/!úòoNùwæþ%ÊGGßFÆäaþr‚Þ:\÷ŽÞ¯5¸ÒñèyïhÿV£OGø¼êû¢ocü÷ÏÎûUéŸaö#FFòE%ì>ÂÏCþÒ%O\õƒ÷ßøB“÷“qν_ùw“_Fû¶Kgùt©_eÿ|?Sür%_ÄÖÜö­GóÂ4‹]o¨vÌxÊ¢loI÷Ô?sÜ¢óJ=ŸfõA«N¿¤õko§ü6Ưkã(û6‚/3ú’6o<¿—ö”q¿„âÔö-L.A¿¤è¯óâ/nýÿ­áñËÞoQþw„~Èû;k¸/C¸6ø¿<Ï\ÿâÿ9woñim]mßÄòlŒO/òÏ<ßÎÝ’|ÉøÛ‘´½þå]{ô¡$O)£¾–/KóÉïQö”á—ÆßÆÖÖ\þa‘gûR¨~Ä­ÈNˆ+„NÖoAï­‡Ct:ÄA£ÁaçAV,O8wMì(öÃ:IòÁD_®iAÆLzsœ¢6Äå§CÁ§!ããÑì8ï(öÁ:ÅøÁòåxeœÇ„x2ÄÁ¯CòÁ/ÁéïIÁaÇYŽs×Dž2GI,3Œ¬ñîriœ÷ǘoCÈ̯C’È£>_3Ûq÷2IW÷IwõaÏ÷÷m_÷„ó¯Oó„÷«9¬ýó<lýó?nwøáv_„úûö¿…úñ÷/1þø÷/üø×/þüóo1þøsoøÿø4oxÿº4ìÿû8O,ÿñîöW×î6_Æø²ôÿ‡ü²õüêåo‘üjÝ/‘öîü‘öofO9ÿ}¦O9ÿ<&_­ÿy.ß-aúáö—†Ÿn÷iˆ¯_ÿ÷/Nþ6Xïξ’ôêÌ+iëþoIö*Ô0ˆ@„R„&!DåxAÚbÂa„I¸â(B’($,fb!$!Ä-A…DIxø„„HM!A.„Ž„LÄèÔɈxô„…´„A$H¨(A¦ôÝÑDø$A…‚‹h5$•,†`C‹)+%‡FDƒØµ¨TÁ#ˆ„¨)Ôó"CÃ!8‚&$:RCxAŠ"!D"´˜Âˆ)…ÈR…b‚ˆ,¢ˆ7ABch„0E¨,Áˆg*ô‚©l´F²¸HÂE$ƒÄd…ƒ”Ë!,„;™‚±IBÓÄ2¡„Id(.CÌÁF˜0`J/E˜Áª$B`$`­!¡N‚H¬"²ˆ"¢$<è&CÖ–ˆ²Ht$˜D¨ª<&ƒ¨Œ„ňMhX7‚Ä@X+‚(Î$2†G‡cnAHÄ‚#dFŒ˜$Bx!2ˆ›B#ÊC¸"2˜Fvx‚H±HxI¶‚b§ÄHž*„H-°$Á)Hm!‹%†WSGßÑö©ÿÑ{u¼öåAߌý˜ˆ/Œø¨lM¨ßµAòr7^J½¯…uÿZRo2˲JÿqŒ*‰»2ñTdrõ$ô_ÊúNLÓòd|ßRþ„\¯/qñ¹ôö”Jü“®ˆ¯·÷¸4/ÿY˜ªãKó’ù}©¹hþå¬íl׆õ-?ÏMý8ÖoSÿØ&ÏýÂ?m-·”ÿ…ø_çñ²O)ó£·O#õÔO/ùwfAôeEW^_^ö•ôoI®ñod¡Y©üÈDglîÚSÒBü4CÁóS'$¯±tsêsõã4oè÷ß(o+ñ´6o÷d$ÏáñuO~ü_,ÏÒviü¬ždónìOîAûÙ-ùS­ù:K¿ìó˜ò߯û´/i³’»|úä\ßOx$ùIhÒ4eÊöÍ>o«þ4ÝÛ•oõ›Ú/±ýz’þS/kóÒ4eû¶‚O+ó²ö?cÿ–Öïîñ|'Tö%%ÇVn/_ßõ=ÒkÓþ„oõØÂ/ˆìÂøfÉŸ½'CA§C-A«A-aãÑìWMŽ2AŒ3d_ìa„îqBxe”ˆ7ÇJø6D-Á¯CÒüÂþRV,ŽsÑŽ2EòÁ8G„_­qHôážF|aÜHxqüH„'Cü:,MÉ£Ñ><ü„sǤO(S$¬Ó$òÁd_îsaÌ…wÇLx2¤â§C‰<èãÉÈsÜQûvCwóRIwñiÏ÷óViûÆû¯Cû„÷‹±¬ýs<ÿ(õq˜jwuø¥v߆ü³ôw_{û¶A_úÒAøiϾû–yóÄÿ¯Šó„ó‹:_ìÿó(_)ùü¡öÆj÷iÌ¿kþ{Š_[þ6ÉÏÿþÃßüáÏ?þãÏ?÷†óË>O8¿ŒóÅÚÌóÄÖŸŽñèöW†O~÷i‰¯Oþw‰oO¿üúô+Á¯Æ¼¶îþmÏ™ BpHÄ"g„&6H,Ä‚A„ØÔ¨‚dÂH¤i|è(¸„$$xH¤(Ç„¦&á(QˆtAÈA…¨A„HÈ'ŽR…ˆ„(A&LPˆ„MAA€8O8A(D8A.„ŽÑÓÊ”¨Òܘb¡Ž#ƒ±‚¢)d'DVu2DfÁ-H[R³ˆ]…!Ã]"FÄ2A$CÂQéb6‡Aƒ6$‘M‚E ˆ±´Aè!3H(#¨à8)B˜$™„Ö†5*,'„"øx·@Ä#…d4%É"ŒLø")‚d2+HLô)DDbDFq"Ô(L9C‚‰¡ÁE*Æ"LaB;$cqH‰2‚*Ô‰†AR$$a¡†a`‚N¨$ n'!„ÐA‡h+A0¨$%¨„#ÔÔ*Ý<m¡,!4I(—E)Ɔ"†$¢'"‹(^B(ÑèLâ’ÄD,Ûô‚ŒÔ’¨Qß"èB̘D+a‡k$›a†±>ME.ˆ.A#xD¹²qE -‘N˜d‚{JÑD1¢à2øT2ˆR†‡EApˆÒTäâ‚MòTˆN‚‰ó‚IÏaB‚qjDÃH1‰T…FÂ'HD+àBh”G#4O’HÄ*ÔÃÆRSBè)ÄA(„/2N‚A2"„x4’A„N:E!D±A3‚ŸD‘"Fâˆá(Ôa$¦ü‚Hã‚I˜BDFD¤BMB$C+H£á„H¢q³“2-n1c$FòH%+Ag‚{lÙú”"C¢(o„w©óX&ÂaL²Aô,DœRx~ŒòH‹Ä(Q­¥+NØ$ˆôSh¯c$ñ˜w&e’EéBÄv¡mN˜M?„ñAC4'†O‚ô‚bk#ó–D—C-ŠÓá²^Öü…Qo(4ˆAG‚§-F8Z+'(Ÿs ‡DÄ@Ha„@‘!Dà¤Ôˆ‚Ñ$,‚|Ä!<¢€(áBªXˆ-A„HBÈ1‚ZB1bŠX‚Šè(\„È„À‚HD€D:‚L„Á¼6­¤CÂ2p"9¨-C‰Xb&Â!dž+$GB¨A)TDŠ2D"à„hX‰h‚h†$d*H4A"J„è”_"'dlèHT%DQ,Q(Fxˆ¶AQHPH#CÒB8Bˆ_%L²aøŠAC4H‡$ƒÄ7ctÈ´EdB¢'A-Ü"‹¯d"œ¤$.Dƒ‡¢VwAè4xMxÂåzÑá.®#ø8Boñ(gŸ)t$è‚Ø!¸rö¤B+¼ˆŒ’aÞˆm!­(#Ë‚LD²”¸FOÂèB(ÉöÂŽJÊØ,W7CÓRŠ'„ƒÔ3„’$ˆÇ$(CÒBˆv1ˆ)2Kd‘LÂBŽ$¯T¢AŠA8DŽMAŒ(b"˜XO"¨„I%rh$¤J"£1…/-‰ …òL¢À˜Ä,øÁIGF¬¡Hx¤øRBCHH⌄ñ{þP!JRÂRR‚K…%ÁDIJ‚sB´!Ùh#t!$4)†T%’¨A¯T‰ÄçвTJÈ"È/|ŽBrH 8ƒVÊ%)T(™Ò$Df˜&D‚RÂT,Ø4hDvˆqb”HŽ„„+„H#Á|-¥sRK$c!$)Œ²2‘‚†ÇŠ´S8DHMI”‚…„i<`ˆI!ä¢AH¸x!"T€2…!uß_òO¿´û—ß÷×ßÒÜTòÍ]çÙÌùœ|ïåÒ¦ýBØ©ñxNM¼”Iñq?÷ô\+ýZ¯1õB/µòiY˜ÿ»›ŸÇø"/*éù“bÿ¦ýcšo÷¾ôhHbïÎòˆØ‹ËŸGüü*ˆýˆÃ?}Äÿ«hï›þš»¿æñ¦2ž¢o9ë"õè_Ëýdí×Á‡ÂOFô®ÿéüuÕoRû_G9øÓ’?–ùrJïÊó¼¯ß=kþ¶ž¤_ËùKáŸ÷'§ÿEô%AÏ’ö­=ÏmþzÔ¯ÂûÖv/(¸RéäùôO®5É=Gÿ±ô32o5õKJ¯¡ôz;¿µõ«}ß8ñÂ(oiã!³‚ïCö”Ÿ¿ñé"¿ÔæÂ2d‹v¯¬÷(ù/±þ¸o-õHÛŸ‘ý9ŒÿžôÈkÿùó[®¾‚/kò’w/Aþ·ÈÏ_ô-tßÕ²$vdô,&ÿýóì½{ÓŸüù†YŸ´ýÛ?(ùªVÏœò›y?…û´†ojò¶wo·û•E¾òý_%_ÒrlýmMßÍó¦žOcýD¦kXýÒÌü¦Tß*'s/t:ÖtÓ¶Òì8÷M(O(3„?¬3„?¬Aüç'ƈwLj'Sü:$MÁ§>aÅóŽsÕø‚2ðÃ:Q/¬QAîiEÆN„7ç-Œ'S=Á§S}Á¯Ô¾ÄiÉä¸WŒŽ6A_üs%øÁôáž#ueÜXx¼Hø>DÄïC–È«AèïAÔ<6ÑlÿIg÷KŸgõaß'÷M÷¤ÛÏó„Ó«3_¾ýs=Oîýs˜îþw‡î~†øööÿ‡øøô¯3üùþ¯1üøÌ¯þìèoQþè|O8ÿú8o8ÿº4ìÿû8o¼ÿû®¾ß‡äêömˆ/kÿwɾ¶oüý¶/•üùœ/1þý¶o‘þè:_¸ÿº>Oxÿš6_¼ýó|O8ýûX¯juù¬gß–üºöÿ—ø¾¶kïï»üú–/þü¶oþ'²4($D,db&d2ðaŠô(ˆ°!ˆ'ÁŽ!@Ä(ehB!!P†„-A!ˆ¸á(ÈBB$ƒÔ$2G&4Jd!rAØ”()dBIiüO8MBBE"Ä"CdbBÜ8ïD%HCc'HC-4#áH)¡$'H™ÑRDFrD±İ–”!<ºD,1d‚%QD-!*¨BBàdRNˆ'B¨Ð’\$Œê„ ˆ€xAˆ8,B—B„Hdm&( Fˆöâ~Øà"$ÁQ!1r+h&2QBD1ÜTBÀHOˆÄ°”†[ÚH!Ž„%„)Š4H(H´„Úâ$X…$@SŽD‚r‰"(ÈHHˆâHq(T‚…ñBޤ€HÍA«ƒÇBÉ»A-ˆ>Aô‚L"“’–(ŽT?(ÒXaˆ^F"Á‘nN£„ϸRøBˆQ)Gò„x¡(Iã(„óFˆ,ìÒèt$ì(”Eʤ“ÁÊI¡G")3DŸ"1„Šäj1I‚ñD‚Ì–OÅ8":|‚†á$!Ü(t´øx'ð:(P„$!HO4Â(BÉh"(NŒA'(+Q"N¥,BT-d$†Qˆt%âŒBø…"#¢O!zBtÁ6(Aàâ‰Ta˜]B& ‚,vˆrH±ŒDD2t!L\,Hd’-DA‹……bbˆƒ”A-¶CÆ&aÕHòA‰Õ"ÌÍBüÃãÅ’)âh¡(Ï=ᆕ26H–ßdÈÕ%ü*‚H©è„—m¢Žu-¨O"I”‚/…÷(Ey²4QQ’J“‰[ÅocÙHøH+H¯)´ˆt>–è݃bM’KMÑ*t‚vQë6Q„B”O‚8[¯F¸ÿ$ )è„rVô½r‹(@H(B&e„¸ taBbäA$A)*ÂA†Qƒjhµ!ˆ.„aÊÄ*pH„xBDI!BÈ!`À¡bÂAˆA‚ABDAFÈ‚„,d„˜Ð¡=F%)hUXDœTL(%¤D2šDJ @x’Ä`$‡A ¤„`¨AJ'$"$!-Aˆ* hÃHl¡„à,XE4CP‚ðD¿BÇ$.W‘"…’\Ÿ(ò©¶‚I’#aŽO7CC|Cèø$ÂI˜otf±#üA”jEã1ÒšÈd†b(_¤A¾òx*uè´!TÉ5ÕHõÌ>An‰cä^Â-dí8ŠDrÒ%Æêcdˆ/t©ÔARÈ38(ÉvXÔÂä‰<„²’ØR3š%ÈKDB7b‡Uø"¥G"D(„òG(L˜BDƈ‰D%Ü‚Ò$ÒÅ(ab%¢ÂˆA­´!H/ÂÈhAFX”k"‡g„"©EñD‚‹"Ix$Lô˜M"HO8C4`‚oÔ6*ü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<hd„$àhºHba"A(Fü,$Lö(D•X‰„^BB‡„Ιšé!)¨1!ªø¢DD`(h`„BBˆZ´™U(F #ˆh(++ƒ+1.$AA ÔDÔDd„ `…‚9’$ü9ÖHBDH%‚(ЍbA*BÄd"FˆÄDÂùH#uBH†¢‚Šò‚i±$¢"&Ä$HPA.,‘HHˆ…i­'(¡‰*¡*¸ZF "D UJ+H°$(Y’"ƒtAAÈ!Lñ2J‘$i8²^…©¤a·R…aDŸFÑÔ‘ÈÑ8ùHC$N‘ÍAMÈH–„ñ¢,xAä…™Œ„fÍ,MªN6nQ‚‹KO1¡H‰œª-$hŒÈGH¶Ä’ƸQ<ßATAFE¸H8Gˆ+I#qøÊN„ˆßâÇ$FBHBø!‚!¢+A†H$ ÔÀhHÈØÀBŒ#,2ˆC!aB-DOB1DHT((•Œ&2A2Á$‚ŽbAš#‰(Ad€T„H0DH‡)ˆ@8ã,‘(G„Fd‚(‚K -HÇ(‚ÂAÀb)ℸDL -‰ (4B€j‚h#1䑈â!X-’@„¨­THD$ˆV¨ƒ‚ŒøŠ¤€€D @1’"P$ªAj‘iEJ„4(CÁBH† R.„€5ŠhBHE#"DBù"ŒB"¤©&‰ # B…•B'Œ,‹H‚ˆLÄÎóH¢B@$‰#(haHD†ˆŒĈB0$ÀÁ#(1(jA )%B%,QH<²(hm ‚t<)Â=@Šà4”ˆTAÀDBFh­@(F!$Œ„(ˆÁA,ˆCb‚‚$3Á²$‰†HHŒèFDR(QˆB&!$È"Šl„B±‚Ad„D#($¬!#òAHQ‚—$Sâ$òDƒá"áHÂÊӖĪI%Bd†´Jù!D%áæ!8ˆôƒ8D¯"¸DQIºaj‡ØeŒYÂb.Il(69t<¢…؇ZB‡xƒ¦!˜a*‰ô$/ˆ¤cÔIrh”/Ä8!*|’´˜"O|Jl1nÀZQ&ÒHÂB#BìÜ!âAü2HE1!A>B‘3AèHA‚Á‚hÄGƒ$’„)KÎDn˜4&DqHD±>’D‡(hI‰õˆ#OŒA2¢’Œ"ˆŒ4DG,”I.ˆ+4ÐÈ$èID"L8Æ.>2T‡B/'4H‹Q"Í$$r¤3(/BÁ"د8óD(/ÆÄ²KFE|AÜAsCrxu'r’³¸Ô‚ÞBúIqm´NM‚²o(”)‹Æù„ORDìd²Aæ!ªÁ×B'‹\HŽ"RÿH’)N(oH1¢Š§Éa„/&±A‚òaI8?¤rôÄLj!4šŽ$¯gÜ¢B,4±$BL$ADð#H¡"ˆ„„Ø€q„<bB.CÁ&AƒD‘(X$Ÿ„‚B„,QŒªâ8)!B†EaÈA…„XHŠ|h#¤È€?é-¡D%&RpD \HdÀK!D¤AFŒ.BDŒGQˆM‰t¢Da"a(2(†KB@(ND…ÁaAP"p‚†#ƒR‚ÃB$WyÀtƒqhÄhFsJñ:ê2S©)£/š³QꕸdØ8tAú$AdÝ*J³D8#t˜™G2«‚+4B‚C!1fHuÔâÂñc¿‚¤ÌÔRô#D>BÈqCØ=™Ó(´*äô„+–²%X$-85ÉÇK.3dÔÄ'U[Œ,ô²Ä‹4Ï)8JÊóšÒ3Má„ÑB"D¢ŒÄ<5z)²‚Á"eŽqB…1H4ITÃÄ&H0A/£qHt塯€Jq&(Ô„NcÃBäˆÅA›à”Áj&„äƒH2´Aá‡$G:”(AN«A.ÒA$HèHÒ‚õÃÂ@4£2H¬DArAtAâCâaH¸%±4«HS!tQVH*öˆX!«"xC”(Bd&-±IÔ“d‘"Fœ#Œb$ˆ'"#ä„X!"DD'.CŽILšB"YÔ‹#è„8šBÂx̉†¨‹DQ'nB#"¡ÂA´ÁüAAƒbH‡BD/ˆB"D¹¸HŠ1cKX3ZB€Ï+‚GAN‘`D‡D‚…2ƒQ$ÐÕ$Æud* †ñHaKă ´ˆÁ$#:Lˆ„¨B5õt´`aˆÁC(AÀA,2Šr„"Dd„" иR˜H„(œä*"©BAÇ0’À$¨B9I‚ia+AÂG‹„A$,ŒJäR>G Q…Á-BÀ%nE,øh$,º$ÈAŠ!<¢F `B‹¢ed„ƒxB8Rƒ®!*ÔŒ8$-‚{$ÅÈ#DdÔ…â(èT,CFÒI¸ÆE‚Ž”‚‘BÃ(•ÌNDˆ˜l‚²l<+AFÔB䞆RCÁRÄ!AäB!qB¤BW„È“Ds–‘„†QBT,3ŠBd„/H%ˆ G!0Q¡‚P„)&XB& "aLÁÇ‘)@ˆà(#ñ!Ç# DH"Lbˆ-†‚#x(±ˆhDXˆD¡!”LK¬tŒa¢#JÂLC(NIq‚HáD‚Ô:H2²2ÄH‚$#H$%X!‡P aÈBl<ŒòJ@âDèT\ˆÄÁÍH…z‚ÚÊr¨²„³¬¡G‚G†­Aét:ö:‚‡‚è"ÈB§‚©ªAlöDOˆ¢)M$OX’8O˜a7CrIÔ9I©xc«ÏñH$-B‚-ˆÉñÁTðF·³ÏbÄ?±³4ô#Ñös[ÿž‚&ò$4«ôÙ)¿>²Œõ'?ÏÒL’á?=ûB+6;ԶܳõA¿ÞSü#ñJñó#ç)KŠ-6?¯vÝôçÊòo4÷AHW”ÏBö“»/„ÍS?²OØÁZÞ¸~ˆ’ùÝaÉòsÑK8EôÃ:Á?ìAäîsaÌŒ7‡„x2ÄÁ¯ÃÒ<=áëüsÓô‚4A?ìS„?ìîy|iŒxwÜ‚x>„|>´<èãÑXÁv/ôx|/ôyF/1¶m÷aŸN÷„ó»?O8ÿ´_üýs9O,ý[î÷ÿ…òèv_„øòõ?…êoÿáOÿÉŸoýéßÏÿ6ÛO8ýù4o:ýº4_þýûDƒa¤bdØ<Â"†I‚ø)B®R„FaÂ>BMA£8$Kˆ‰b¨MÂÌòÀ‚CãXH&²IhFèˆ'`)‰8!A’Mc‚)R$DäŠãBX"h„K7$ŒŠÈRˆHxöët$8BEèôB€dc¦•Š`bD.(cHhOLÑ„$²V"ø*A7Dˆaˆi ɶ’z('͆aÔ(#±H"xx1Hh))!8Xã6¨d$D"‡ˆ2„R‰HN‚„0ò %øB¸ì;^(\FÈT‚B¶ba„IÉ,Þè!âxHÔZ"TOt84‚/ÄZ(T‚²¬±Át$bˆ6bB)-ø"È.L(˜$‹D-(‹–o8(ôAŠõ(‡&‚xA¸"¸´‘Be!|8æ ŸFÔhxrX„Ĉ‰)´ULãHñH%H,‘hCAêAB¸B¢™‚G—X"NˆOVÂ'„.)q‡1B*LØ‘"C1¤ØÉAÁÄ"M(±Gƒ‚Û4Â#¸Jqh(0ýA'HjŠQnˆB‰ÒA˜D6BôH"Öœ‚BŠòAîc JÒ,c¤„Jd6ÒD#ÖBb!O!b•j â„x" FŒrÃ8„ c¢$ŠbB”AD†L‚2p‚‘HEŠáp¤2H`!‹‚¸td‰âÄH!D $"t‚‚H"â¬"L¯ÁMqATidBh1.Xô#4s¸#¢!IûBN¦…ñ‚oòQ"W„ࢬè¡x2h!'…2ÈÄ/ˆr‘ô"”#!rÑv+´)´%²ÈÑštd‘­ŸaÚ!¤YöŸ„2O!2/Rl"?HÂK!vTYƒáF²Ü814O"öbÈi!ô¼êŒ9òfRcÄ$‡"OÆ‘)¦\l‚ºât!a‚La˜$Db¨0H*±DÂŽLXBÐ’Ù¸E2!Éè"4ªŒ¼™&Xa‹C%$)RF-a€64%ÄH"ÂEé!É&ÁB (‰ôˆÔpADHÔ($TY¦!‚Y¢†^B{B&”A„I‘¢›„B­8(‚9Ö(‚lÃI'TŽ(K%„D&¸†ä1Dr!$„N„&*ÒR–Š8AÕ"¼C!2H&hHN;K…¬²B‘ˆBkƒÜ7¿ %£…‚¢,ÒbH+&‘*'^¡`„“¢Är%¡„% H'("E,óA†„y$b4*,Q'E((ñ„Ba-$X+„Š¢AŠW‚,/xh24B(Yä1BLâ„Y$@"Lø¤£$ 2BFR" Ä!,‚*ˆ‚"‚!°$ÈH% ”A„¢ˆKB€!Bb !€V¡”$„*A®BŠD˜&¢#5ˆ+!€8Ô`B)Á…1b(@r¡n(*28NZ(“”ª…ˆr$e4‚Q)Ä2hIrLâL!¨‚#£D)„(¢K!%á±Ä!Ü2) nD•’"/)Âr"Ÿ$EaFŽCð’"FÂ’$D%ô-º0FQ¡(´ˆ* (Ȉ#!H8A"1,ƒ, È!,dF`(ˆ,BŒF"pˆ‚PÁA˜"dB”‚"pHŒŽ‚àÂ5RD#1P‰2§¬$IÜ$ƒrÁBˆ!,8ˆ#9›†R:Ž‚2)³ˆˆ±4bQCh(G„(„B¨$Œ2’N‰CÉa‚$‚ HAF$VAF‘',¤‚ˆHâ!ÿiP@IÖ(¤Bæ,!PIH‹H(ƒ‰ŒBb$†ƒ¤®„#´¤4Œ"Ž$àH(ªá1\"®„¢=ih!ˆ%Ò‚¢„ÀÄT‘ÀSH°D¡( +„E<:4H&H'!J”è ¢,R&J¢E@…ŒèHÄA Q1‚*D"àBˆñ!F‘A‹Q,|ˆ±V:8*ª**bBØa‚”#JŒTBB‹H"+ˆ$O…EÁ"A*”BJÄCòƒ!ˆˆ"(A‚(!0Å‘#¡†eA‚ØBaˆÏ"Ò(8‚$!Ñ4ÈaŽB8J¢¤ŠA"˜"@)X,EXDÀ‚]†‡äoCñB†+‚*Á‚Îò!I‚€ˆX„„T TA‚,r!CIˆD$†I”‚‰b’Ž‚‹H’ B)‰H…dBÀAB"MAA$(„„@H$(H‚@ AL8‚„$L"(ÐA‹!(0 HHàÒ1ǤA"@2K­*EqÄxȸØ¢œIꌓ4I"2!'TFóaŠ>ƒqÁA/È"oZ?(xt”ô¢„A†´äª&ˆbD2ØñaÇ-oq¹‘¨(B!›Œ¢*'N¨3êÄØ…r…tƒsq#äȆ=¦()?‚£¸þ„¢ð¾«Ð‡Ò&Ñ”WH;,ôbrFò)‚"%‚\+‰ô™BÉ”)‰š˜]ϤX¤o˜Á(Fñ‚’'”/ÄQ¢.ˆO"¶ˆˆÒ˜‰$S,ÒDxU²Òx¢7$Ì’‚8p‘‘IÆO–dŠÒâ1ÂDa™-)±¢Bø¢3s 5QTh—=Ò<Û,A¬]F&aH!„!#ô!ªô‚‚(oä”+¨xG(*])*˜„„g(/Ô2AŒÂ!'ˆÞ¢C¨Á‹Her´¸¨¤›ššÝ(¡Co*áù™fHÈjˆÆ©H"}Œ”ÔHA«A+HÇQðC1¯ÁÂMñB¿‘ôd'­}/Tñö‹9RB/Hñ¶ê»-¯tÒûý‡W‹"Í_)ñe»<¿Ñò"ÍS/5ùÛ_Ã÷%~…¯~u>ö¦m&oªôN¦Ï.ò.Ê/,"ÖÒÜôw¦_Dñn—ÝÛmÎõS‚Ÿ™òÎ_â$ñèv§(/+SDîô_¶¿?ù©j_asATMŸ‚þ23ö^¶ÏÃô†^ðR‚¯ú"J/R6Í4ÿtö24_Õ¹V¡§×þó˾øG®/aú:®ÃüøÙ&?q÷£š£÷M_Tv¡ûúÏ.øÏfiÿ‡?¹ºËñ²soù÷!š¯vøûœObøò¬MÆ/æú΄/hü¢«µõm¥ô»—*ÿ=ûÍO8ý[?¸ùÞC?:ý„?‹¹Zûþžoa3·Žã?ÒûX—;Ãm‰ÿEòM!/ä˜ñÙƒï.ûܾæo¨ô‚Š«L/(ö¢Èýßð6[O‚õH1W…¯¡ï$ñ~"OGêQÿÁK#oAò>?ÊõvKÿ7øí¥ŸÑvd¸møü$ŸÑü4X‚÷H³ß…å‘í…õÞσö4Ê/OòWŽ'#m¦'¢mî/ŽvêöKçÏÃôD-$òJóxËNXï$òHZ?‘´iù)Mo¢üvoîy6ö&‡oòôú/¯ÿË"¯7ù9lN)‹$Ñ‹æƒï†üX­H¬ý2n‹,­…ÃÊt_‚õE|ôQ=R²õ9K_IòÚîŸã»¦ñ´¦žç?aÿ$š÷7ÿÿMm.M×Ï&þÏo¾þ_ºõÄž«]Ÿ™üƒZ>š¿õLùÚñ‰´Ojñ¢¤Ohô&æe¾L¸lòMI.l×FÏNøÿH¾Í©õ„«ÝŸœí™ôÁ©¯=÷ßþ/éóš´K1ž"/8ú"ôOùñO¦ïl÷LO’¶IòIñïþ†Þo©õ¶¬‹L¬í©õRŠ«ì'p2„ô:$MA¯1”jãÑ:ÖôˆsÕˆôÂ:A?´qñã5qaøsˆ'Sü:„MÁ¯ˆþ–Žsß„ó†2K(¬“$?¬?î1"ƈ7Ç:x2¥Á§SO<?>6Œ/8÷M(-2K(?¬“4?¬±ñcqe˜Çx2„þ:„)¼Áòë<2ûlÿ?GŸÇ÷AçñaßgóVaÏGó„óßGû„óïCóÅzÿÇûÄ{ÿ×áþwíþ÷mŒ/ÿîÏÿ>EŸïþAÏüaßÎÿžsÏÆþŽÓ¯‡ú„Ó«#_¬ýk(OìõK¬î÷Ôî~ßÔúòü÷OîÿšA߯ýAæýšaßÎÿ¾A߯ö¬ÓïÆú„ÓïBòÅÚ¿†úÔÛ·†îþ·†Oþ÷mˆ/ï~{øäü«iî¿ôèÞ¯!öìêï1ÖÇ@(CdBB<(¤ˆ¤ˆ#á8Ž!‚!ŠfJ ˜(ñaˆ4¨ *A(I¸ò„9¢!Ž‘!M4A.”!®”àB ÆÉAB¤‚8Ž’1Šˆ"x"¤¨A®–!Ž©ó‚q!ŽTH.D)žA+8(AÎ2î B`Bðft‘Bt‚|‘H´È6¤˜(M+$ˆBèDB!†ŸƒÔd(H#‘ao"¸"a"¸‘"G‚[„"BpDè2ÈDƒºĊȰôçH«ˆ‡A§#ÖÚC$¡†âA‚´2¨¤xD‚*¸TR”3¡ˆaØ2(Î.T#ˆ!èI‚T®ð(BD‘b1â,˜Ea$H,qb$‘B(HB‚ñ%(BD(0H%t„¡Cgˆ#:HŠDHqA7ü1ÉñF!)ÔT‚(FÕR졊ó†"CäŠu„ñb(AÔ(ø%$¼(ÁÇ!JÔ)¸Hr„ô!'$*™¤'A4‹,ƒd2â„ÔáŽs„Ñ‚ât”ˆƒN̬H‡+aŽ"M"Äh!ÞL0!SdšCô"ŠA~\ˆ%è(”H˜okBó’—$IÔ8ã!Ä„2)BÂG…,BÒE¸eÓè¢!Ñ ‰!Ñx“(Ä‹Ð$/ÂŒ()±HBHT+"†éæ1‚J±A¸˜T*"œc²’’DÁ‚X¢‚䔂ˆ²t¬H$0ˆR#ô(ï±DAX.$-‹DIâ-Ñ„º†Á2Ohá‚ø†NvŒqfôA(Í%ŒyKñ"ˆ;AÏ"8˜ˆ‰ô¡Ë$òŒ6“x†Â$˜¿âˆrJb‚7ÅœR”,/ˆr-BÄ«„/5É„/ô$ˆ¢‘M†˱Fn¤O¤dÁA&üA(†tÁÌ&‹N†ƒ¡Ä)ìɱHô¶º0‚XÂQ7„Âa.A&bDD! „Ä$ŠÁ$D5dL"L"‚¤$IÈ$C8BMÑ£'4X*1A,<"al"¡¸à,ÀA«"؃E2($r!2\˜"V&lG…à2X$ H$ %È"*¨! „Bpƒ‘Ȇ†r”†‚b(”Cá4!b!AG#`H(c¨B…ÑB¨H&ÆAç)X‰¢‚BK‚ABO=Br*Q´2§‘øIf‘((ò…B“!*ËKܶƒqˆñ¡J"þHœÆWA#Ñ©zöj1‡Nb„ˆö(¶LH´&â4$KŽ›¤’Ø‹-˜öJäJ±´È‹¡(sÕ!zá…‚òC(EáB4Im¤iøJÈÏ!¼HºÂjc9bQ#ÁÌÁ*†E”"ˆòA(QFH!Ô”²"$t‚˜‡"´"™¶,hBÀªžbÐLB(M‰Z‹!‚Èa­LÈŠ¢Lh˜r"ôHN(d‚Od!à"¸„”H†˜rA?t òH©A‘&–ØF ¢$C‰q¤òD©‘(B‡)ŠáÔ(ÓÄX%ñ‚4„‰Ö)hB`AŠ4$G†‚°$F±|")Í%,1‚N[X&‚{D8²,iT,¨Ab™ô$ApX˜H¥´‚´Š•ˆN6Ì8æ){Â("ÄàF$ñ*U,8MD"‹D&ÃAàhRAºAñB†H$‚Jä1’H°‚"ŠC²A¤$$qA/J4Fh"I’ˆ'*°’‚‚Kd²THŒÄ$F¬h2,£¿3 „‘‰J¢,[†"!ôd(ˆ*ÈNƒB)1( Ä)%ˆ;$Ê)´%ˆ ’ŠH8A"A(Š"¢BG‚HA!*Ø‚„ ‰ÒÄ6Ë0Ƀå!a"I‚–ÔDƒÙ$±HÙÅ(C™š’Cádx¢F(”B‰Ò$¨BpÅ¡*d!’LáäJ±‚”H…±HI‚Œº¤¡‚-‚*¤H¢B*èFD¢IFòTˆ,͈lÈ$«‰ *Hi„HÈ£!aÀ%(&‚tD²"RBH!Ž2&±AÈ"ª¢ÁDƒ”D3(8¢A€!&$ „¨ÌqATˆ‚$ !Ðá>ËŒt(2‰$Ô+¢HD£˜L˜‚"‚!&"@DF’˜+A$‹H€á2àHá´"QHO!…´D"4ˆCˆ HYLe$A,˜Ä!€„˯à’aF',a$G1BG`8’Ž&[AEp†TLODBh!bˆ‰¨âˆÙHB¤$JQ‰Â$-D#$D1‚Q$LH"B‘Ä…È4IÔ‚4BƒB˜RïˆäŠÔ?Ãd"%(I)Ã!ABDJÑA!D @¬4‚ŒB@X`†ÀB@H‰d„F„"B„EpIFá$ƒDÁ„(¤DØa¤D$)ÐÈD”„B&ˆ"abÄF9‚`„"ÀIB4A‚ŒQE(ÂA !Ò!AA(Œ<¯lr–"%²"˜Am$L„¦(IÔCÃ$N7„GJ&‘…Ux!å…øE‚W„ôQ)i9Î%‚òBóÒ*M(>\äR|$eaG‘w!GS'RJ¸JøB-\r†ÑBÕDáHs†Ü†ÔCt&x&ÑAÔÇT4Ccx"\äíB^*§¤FìaøûæpHÈ-Ì$B#òBìH)AD„¸ô<„ƒqˆ”AMD¦$Oâ„4C'Šñ£'¤Vi2EÍÇ›DJEƒ$(øAA#h”-H®FµbÔÔìX:È‚¯"„#›ñDh„-hÆÈB„ñBƒHdˆH‹C’aF4W!£18%ò‚4‹ˆ;˜)‚xbóCG„n&Ñ¢Øt2üHBïaÑK(”Q’!)4ˆ#¸ˆr‚‘)oÂq'è„1Co’ôaF.Œ‰ô]‚Oä1ä4hM¡!ëT‡DIEÑ7ÁC|AtIØiôDÃAI¨‚ˆä!šL_DNòj"½.L71'%½{o£öãg%¿vôŽ6'hga¾öK3ÏLòÎ?aqaôm%ÝHhùw¿w÷Žÿ?äÜ3ôCSŸ¸â–þƒ/$õ{b¯)ò†mo¦õÛw¿uÿOËyua±iÒÝüÖ–?2ýk3ÿ©ö#Ï-R}¿©öcëtÝfõM¸CÈ|¯1ôy|¯1ôy^¯1ö}zïqöù|Ï8ÿû8Oxÿ:´_üÿ{(ÆBè…HƒèÁ2H‡#C¨!ŠHÂ,^B„F˜J’‚O$‰8‹HL’AÓC¡A>5R¡A'’Mkƒ³4hF(K!(¯Bè81H’ÇGF‰òLf¥ZoŒ3ʼnñÁ(_KA˜¥'§0¤GG¯aøA¸ÇDÑ–L¦õHD‹!qŽH†h„ŽS,èÈ"ú1'b*h‹†-+D‡ƒ¥$Ž4¯$Æ”'.Ž£øZ‚B‹,ËBßMòB(ABHFD„l rÁDA6(0HGŒ‚‚T‚,Aˆf\ä(b.HÆ„B‘*,Xƒ‚„ t]ÈÂAŠ!a(AŠj†‡DHCH˜„Š‚1x0`BÀBiA')Ç#âIDFH è»E´’‰$ƒDäpºB)Á!J’ˆ#èŠF‘(.ðAH¡‚°”Ñ&È(‡*Œ$K‚(ÁŒ4(V‚H„xCLA™%‡%)e…CâÖ†šD7Á â)2\¯˜HÔ‰vD±"טö„Š„N<ĈFñ"DÃ$¢¨8$#ñ³Œ/ƒx:#ŽAY„¤ÂËA˜°ôQ‚%ŒØ¡h"Á¬d!6„$6“CçY”*¤¢ƒ‘Ã!bk+ˆŒa$/ŠåÓ:{qB˜€äaÅ(CÒ*†’D&,Áš"ÔÅD! „'„‹„3‘DŒŠ!’4d.Èa6)Ô6$T¡Ì©”‹˜K")¸$±I,Ò¨!„(”©,C("|’’8‹„O#La8BpRhb$¶„”’,!âÖ‘ƒBσdRF¨!'ÔȤ¬Ø!„iG&‚(‚˜ð2A/ŠÑx’APL¬bJHè4ÁJñˆ!N"™‚àC”æÁ”*dbi!ø&ÈD¢#¥F‚úŸóU!I„&“´*(*HÓh¨tGbC2ˆT§$ª”IK'¨HL¦à‚¸ÂG#"J‘B™ˆ$Œd‚/H!á„ô‚ª˜…2$ЇD„´dÔHÒ!˜ð$ˆG!J„¡HD'ñ€`D "(‚)“„‰ˆÂMpD¡‚0$‚"€( ÈA‰”B(F!.„)!H`H†Hˆ!Bi 2†€1ˆ"¼3—$J4qH¡"˜#¢‚‚Õ”ˆ+hD›$ɲÁ¢„”"O¤Ĉ©èE B°J‚(“$+C+‚JÔÖÆè!"’Uˆ­ƒv-dŠ"(‘B›AŒ ÄaK4Åâ!!âJ¸BÁÈ„h/Ï!D3(Ahà&"´A˜‚EXƒˆ@¡H€*B±ˆˆFÁ„@!ŒHHB€Ã„b\@„X@ !,4~TH*d€tá,’€Ìˆ$(!RAÐAH1!/H¤Âƒ›Aˆ¨HLˆ $@aBÐ!¢ˆ(ŽB‡!´ˆf!D’(†‚ˆb(@SA@E2‚DŽØ"”ˆ«Hß)M8B@ˆX‚³‚܈¡!‘ĈJ(h,΄!EÒ)‚RBØ$Fƒˆ"ÂX$FáLîT‚¢‚0‚LTD„AÔDaDM‚BBB.[#F¨$Œ”H8‚1A ˜@!$fˆÀˆ@RŽ#è(V(€Ä1Af¨(F´$9b„IrEø„…NH@„hˆˆ%ÔAÑDeÔ$!TT€a–0C&)èDd*H$aHAcB‘àôAFÒ.Ä"!„@48H‰‚ð‚)Ò*B5R‚%EbFŽ„àH¤HDITŠÓB<ŒGD†$„*Bâ‚1„5¢HcHô"H…b8H,ÔKˆ#©’!˜#iñ^‚! ”€x„M*”F„†tRa!‘" Ñ™…H%ÁˆD@!ˆ"ƒ˜1„”b€h‚ ˆš(?SL"T$À,`A6 1‚‚É @DÁŒˆˆE¬HD(D"ÀŽÌ ãÈA„ (™‚Š@hˆŒ7G%‘H@h1O…ö“(($€ñ„»X„†ôBb´áhS‰—.ÂŽ‚=¡»/(þBKAH‹‚!ËM…/\HØT8ÄeIRDBr5ó”DI¢ˆ’,’ˆD…ÖfôFÅd8mEòE-OäR$< GG‚Qˆ”ŒK+Á"¹¨a¯(þ5Áà¤ñDMB"$DüRDƒ¤ƒ.š´3¶²£(û”OQ´„˜‚FÑ!è¢x’~aA†2"¢A_):[aŽAB)8(‹N5øBˆJñ!ƒæâ„q±X1#¡ˆ/¨ø"ƒÁcÑ€æHÓ$ž´/$ùBŒ, J=sFd")t15I^)1JȱKˆIùDªO<"Ø%hÄhˆF|Ã:B-B¥!¡AE3!8GHH!Ò„2¦B.ˆôd„O˜èDè$òˆ…ÏB–…¨Hƒ±”*˜´ŠÚD‡Â¤-‚hfæuaø/øŠD„HŽ’Cñü4n2¿Ñò!MSS/…ô-%ì×[ý6ášêHèhñöè»-ŸTÒøýÅW¯ÒÙüu_6¹Ió./ÂÜ1­”¡ô§o-/fùz&ç+ohÒ"ù²nÿux®ò«û}7OÒ\Òœüó7o6ùK·ïñü#Ï=S4ù+Oêô$RofóÚAçagjobó—O÷=ãö+û?sET]ßÂöS·dùNïâý4^%òV’¡÷6Þ.TóñMe?q×%Õ™òEA¿·×u÷I™;ÊWd/iú’²*ü„¯]òwºy:ñM]e¨ø;“×>ïlþöoˆùŠ·4;ÿ‡}ºûêÇ¿æò–†/ƒáh~fÿߦoWý…žÿUòI%ô/ÿ)ñï£÷F_9ß·ñƒ‹»Liÿ¦/èùN§ÿîø4‚?mÙþcÿoø6S?¸ù!ßúgD_¸ø2ÿ,òî’o*÷–Ê/¨;Ú/(¶ü%ï£õ%{Ÿ4óH¿1å$Õ5ñ~(ÓöÙ>¯fñ6"oQò~êõwIïølå¿ÑöeHßòýg¿ñô¶YO²÷H²ÿµä¹ýCÛÏ$ñ>jo¡ô²6¦qô2‚?»ñ'ß—ò_'¿nø?mN(ˤÏö>JùÿGzŸ\ù_K?±ý#úÏDóXl/£üu/æû&/sø3ª÷QoïeúíÇÏ’öD)ßòzÇÿ³ö–jo¤µÞÓ®Õ¢ì¤ö^²ÏTøNïÓÿ¦Ú_ìñÚ©ݳõ¡˜«Oï‡nËo»†¹â9þ“÷Ø÷]!Ÿ=ÿoHl×VÏFøÍJoûÿ'YOÊùXB¯¹ýƒYΘ¯-ö¼Î'»ÿ+û„2o+ø¶C_3ÿƒ¿ÿeòÞ·ïÖô!mòÍ¥¯þô3ìŽþ/âùÚ¯¬ü’X/¨¹Úö¼ôp2Ôô:$]A£ÑöA½aÍA¸W¬Ž2EòÁ:W(¤qòá#qaœ?ǘ/CÈA¯SؼÈáëaÁŽsß„â(¬ôÁðá'AÖLzsͤ'CRþ:„]Á«áëvŒñ†sÇ„/(ôÂ:Q¬a?îaQÆxsÎ'cȯc“Ä«)¾Ù4-ôÿSô{|ÿ1ô{?µö4oö´o8ÿ}>O8÷<6_¼÷}>O¼÷}î××î߯øòý÷ÇþüïSôøüïôøÜ¯öüüïö}üß8õZ8O8µ:ûå_¿‡óä[¿‡ñ䷇úòÿ¿âïÿšAŸïÿAŸïýaßÿg‡÷Œó¯‡ó„÷«³_ìÿ{¹O¼ÿ{Oþw{èþ÷iˆ/ÿûèï¿:ôèþ«Iî¼÷ìúïöÜO2E&4AˆpÁÈA@8Ž“!†b (a®…1‚@uÁÈAƒ¢ ˆ¸â8‰âˆ"ŠdJ ˆÀðÁˆ”ˆ8ŽäH¤ˆDŠäjŽÃÎH‹ Y!…ÁB‘*A°„f+$Ä9"4(feH'…ªR!À‚‰äX‚¹*”†Æ‚($$ODZ‚0ABጂ4¢•¤„H±4ˆg)‹I!¸„B‘æqD*(b„T”L´´ˆ”Jˆ(t- ªŒq((ÁbqÁ0‚n$Ž£i”xü,X%d$‚’‚$ŒáD˜&JY(„`&âä(rEBHˆFè(dF‚1’gŒ¶D’ˆI f„š+H…¨$ÐÔ$ÁDJ ‡¤ˆX–Ñq?8L&²1I%ÁHH°5ØIa.A:¨IXƒNµ"FD¸AsDr¨Ô‚3C1ȯ‹Fkƒ˜)è3„ñ¨AM¨$(DŒñh„¨¯$,q¡T!jÉB2Iˆ‚èa$è„I"2L"C¤Á#¢Æ&qH¢Á¬*á91‰-YB)‰eBŠŒ4†F”YÄHF†ŒJˆQ'‹\k"LÈš#$ôˆ(A‰5ˆN„‡1"¬‰U!bެ‹€ˆc„]˜R/‚(ÈLD¨Š „‚,SBY7ÎXm*W‰ÕƒDXÃz_û"O(Ñ$"kÇd%DfÄD,ñŒOBAÁhO](‡!‹†œ‰;=Ç$OHr2r1x„á©ñˆSŒ‚òAH‰úAˆOÁØ¡šˆÃ‘ˆÖ¢G8,â+”(G(š#¨T¤O¾T(„F´D<‹„L¤„B˜BôÛ¤0H"H"„$€2ÁI¤—„ƒ†xB˜„€(„W„$€ ΄)4HH"A@!$‡ÂR1f(„˜€$*¡ & "‚b˜%ˆ¢(!˜7:ˆ&”!àƒ˜A5œ„¨€¡$D‚PHJü*D¬¬DL°”ˆŽ‰DŒl!„‚Œ¨Iˆ,#Š ABˆ€r„€E”2"H"Bˆ@ÑtKòL¢$,t¤ó‚u2LØ$¸eÁŠ{9¤ŸÂtadfÁA–´Š¤I-‚'™hÏ(áSô!"‚0hqD[Œƒ&ÒHÒA8B.EèBøH¯…òK)Dò‰d(†"k…VtQê"´ÈRŠf¬ÂbêȈäƒÁŒäjÓ>8ˆi2ƒDˆ˜‚a’+aŒaV!kDT& CÖ$Ñ(˜T!‰H3AèÊõ"‚`!X„ÅÂD€ƒ4RJyŒ"a¤!“ÔBˆ"ÈB`ƒ#TH*Dèa(K‰ÂD€Hz$ñÕÁ‡Sa„FsQ²(hb›Aˆ2K(”+AAÌa„B•¨MjØ<“álAøáˆ"Dˆ§JØ…„Aƒò¡MA8MŒˆÈ&N9N‚*h!‚t™ÄK°¤Ä(LF¸†%¢)Œ¤B!ŒçDÈ{£Èš‚…DB"qª„#ÂAˆ\¨’A9‘%‚ÑÈ‚Ä&”™#r’¤‚,t1áBA˜)€,H‚Á()˜"†!Ø(bA(Ĩ%á"1¡„@„5ñrV0"„#„Œ’+*/‚DC2‚ R„Œ‰Aá‰QBˆ'A„ ##&„ÈHJÈ(D(„h#šB$’$™fD"Ch!(°„‚ÉJ"M«s…8…B˜/„ed†È¤±ŠÑS¤*ÈaT"G"‚%t"D(˜˜L(BÈ8k8¸i±aÔ‘‘˜.œ‚˜"M$ Œôˆ2KBƒøˆˆÀ*„AÊ’(’D"9©(6´ˆ²A‘T¿¢(JBd%`$2@ȃ"0$*%²‚Å$H‰"¡$!F1F1"N$S¤Œ@†,‚ÄIHÈHŠBLjBƒ¨$#(F¢‚.D€,¡BIÔˆ–„LD"$"\‚£è¦<‘Œud‚”‰¡'„œf¼ƒ„ÁÄ‚D¸AB&\&ôD¯ˆÔ$ò(DM’ˆ*4‚OHq‚’T!-‚AgH#ø 1"ИZ&Œ„Ø$$Ñ*ÄH¤ˆI—ˆ#‚$ (A""„$ èB$âI)ä*ÆOÑ8„X„‚QŒkC8¤@„eÁÁ‚Dè‚ø–22§‘9JÈ#üB‚E½’D)B5–‡±-Ì’ˆ$+$/(x„¢,QˆN*8&rX¸XB†‚¦ˆ"*"‚"²$2¤(K'‚)!(F6劘9Zƒœ”!A!’”BC"!TAA!D'ExØ!aY™å3X‹("-"ƒ²Ar$¹jb¨FL2áƒc#¢8¥"*‚£"E"DÂBF„B$F˜(!ЍƒC¨Ô$M(p!R)…q!HqaÔaA*yèXX”ƒØØE"DâˆÓÂŒ‰b‡AOHèŠÚH„-Hâô$HQŽDI!ˆB‚#²†$,b+hAHI„˜R‰¸"8ƒ ¨#õ!Ø“MĉB(  8…B&B"0ˆ@(¨ˆD\ ˆ Mˆ‚`B€‚$ð”a $B@$„!"‡‚HD(P( „&‚€D(!‰"9ˆD :HD0†Q „Ð>¡ŒµqÈ&X‚/„É)O(èxòDDOa(¡ò¤!—ÁFó,‡^×B,øj…ƒ\]ˆMÂúƒ-íßQØFÜ™ë¢È!M¦†Ô‘áødñR«3Q„Cò)¢C|Òxæ"’Æ'2ƒá2´+´!5.ª¸ƒ3DI2¥K(FDHˆ‚b$~Hö8¤³ñ²!*ŒôË›Ib„R,ôÁJñ!DOAqˆñ¤²L!"‘BhDH–”LÃ2nϤa!–f”:H&T´&Ò&JÒá‚Ü¢˜"ö,)YÜQ×+ŒN’Œ)ˆèŒ¹ˆñƒz¢|8D8‚ƒXXI²(†Ö$† ɘ¤J¸B¸+•.,¾qSS¥mR·‹A‹™´ôIi‹TƒiΦ\ùÌ„ŸÅñ$"_ÂQ˜Ñ¥ÓâÅÏ2q¸‰æˆa)-2©ñ¢BGHKÊ„_"êlÚá‘:‰N$„RÄ=ˆD.¡E$¡Á%š"Ž*#èˆU""+º++4/&úbL²Bô!†+ª,š¢ÈH‹‰–òd4ß´ò1_ÓñASß1ÔŠñ½)vQñ³yË©O‰ã)ñ¶Õ?Ýòé=ß3õy?—–ÿ×ò)E¿­òe“ŸÍó7-Ÿ›õƒ¿¤Ù1ò­lÿ"óÿ(^4Žaeô‡ioù›½¿ºÿê:FÿÕÒþ}•o$ùK4&MÄ-’_œñ«ßØÞ"ñNïöº"®,-6O»ô[‚nÂUËÏ„rqÑQ¾vñf"«¶½¯r]¨o¥é!ÚDü*Òc“Ÿ…×ÿwQó9•ôk_ñöÉMï_ø]žm¶wiO[üÝ­ÿÖó?jW±ÿÃâTø-l_úù¾->ù~cÿøÿ—CŸ¸ùRY?ûý7w¿Úøþ»?äø††wloxü릿|ù[[?+ºòl%ßÒäzúš§|o.þ²÷8õƒ¢¯,üºÿ2÷ªº/Æøâ®'a/+±¢þo§¯Gøt1òe¨OBä*â¨ûþ¢Oìõ¢þëY/)ùÒH/ªõ¾ö_ÏBñ/Os÷Io‘ѳըÑññj=?›ú]'o§ñ¢&k«?áòóÿWöw)ßþ?eŸöeV÷?Óÿš÷?÷´ó[™üÛ×ó)?òÿã§ëIñ¶—Ññ»÷ŸUò]'ïTÿ?DßvmõÛÁ_qüž{ïòõO¹ß±ôšØr?”û5Ooáüv?î¹4ò†/CÑú½÷ö](_Öþ;Eß”vmùÌn/ã÷êmz¯¥úZ­Ò¡õô˜k"ÃÔ#ÿ5_4ñH¿´ñYCvõ7M¿ÔÿÊqݨ®k1oX÷£ïß3ó{8vñal&ým(_nûû}ßÚþ3cßýøßJ½ýIŸœùssßÔ÷/;»3ž–k³žsÿ‘÷-V/Öù÷Ô¶(rHèVúOKÏIÝÏõ뼯½ôYY=SŸœù{O߯~¾òœ¶m2oiò²Æ>öºñ\)O—ómD$džφúîÎ/Èü®rïîûÒH/¬¼šôZº/¿ÿã;p2ÕZt:ÔôA­aëA}aÍBŸ8÷ŒŽ2M¼S¤´Aöá7AÖˆ7ÇÌø2„\|:ä<áëOì8·Íò„2IóÁ:M_¬Aüá'‘ƈ7ÇŒx2ôÁ§CÍÁ£Ù¾žÒöŒ2o8wÍØ&s„òÇ:OˆòÇ„îaAÆ.Œ7ç/Áx2ö(įC˜Ì£‘èë!­¤#ÓB÷2U¿FöQ¿Fñqû6o•·kò”sŸ&ò„s"òÅ{¦úÔs¦weøèw†øþå?ŸáFþ6YŸNþ–IŸNü’iÛîo±öi|oùõI89•8üõA,o>õA,/~õI(îvŸ”úzÄ¿¥áWücŸ_üšSŸ_üqÛío1µ|÷„Óë4o;>_¿ýg8½ýG<_ÿõA,ŸþõAŒ/ïüS,þίiõèÆ¯!ôèÆ¯!öìâïIôaH€2E.BC$tAؤ"A(¸â(™"G)¢(a¦D(JhJpAÈAƒ†ŠÃ§AŽ’•„XIˆ¤(Q&È¡*X„Ø”ˆ%!B8Ž“à(†"á(:¦&áº?—Œhˆ-E8Š©D™$;†"‚h#à(r…RCf‚DªUAŽH&䈄¸/qˆ",Q$ÛBˆa„A0)v”†8DÖHˆ-$H#‹Bt¤âBá$ˆBLˆ±!è"Dä$¸Ø‘ò8£d'„`!ÍH²C,¨¢À2,H|‚…iB‰xtä‚"ü„H`Êòˆ!(+8 ^†5¸4Di‰FDÁ(Ð5¨‡Ä’ „#¤!B.‚8d ‚Eâ$2(DIh¨$I.Â’`‚–:±1ª¤N‰d1‰‘!çVˆÑB*H´¸CÑ„ä(Y‚t…ÁR&´"F /Tìé$[IÊÒBêÕQÌŠI_â‚ÄJR†ø¸Q„‚øRehE„3"¸¢’ƒô$¯DL‰2È-A‹O¤„8˜@¸8øƒ÷`íD†ˆÁC¦REhH#AtA²(X„#dKBHž(Lî¡(Dé!XA°*,‘ˆD!6T•"x4$/A²‰e‚L$‘¬ÆCè„êAÈ$$2/DXB‹BŠqlb„O„âIˆâ¡ä!XèHñ<"$‹}ôHŠ”q‰“ŒÒÄêAY"GHÆ´(y.rÈ–d<•dÏC¸RÔCêœa„=Y-šSx$øˆ³™”)²_³Í…‹_1qDÅ(O’Ôd⢱(øY4ˆ‡uúQ˜ã2AG‡U8"%Ã×ÒáÄiÔ‹!‡D„³Hròh„‹¥KƒëϾ L‚$„á,&ÄQ!$BI‚„IJ"„,¤B@BB0ˆ0A D$HàHÈÒÀ$#¡ŠI¤*`. ”D!ŠdA$À‚ ¨.‘“" Єh%"„A!h„ FˆhŒâ‰€h¸H.P(Hƒ‚ hˆ"$‹(¦‚ÂB!%‚<:B$Œ8¢#$BH$­‚‚"Ò€„x»J±*qIj5„/GÂêAa!–ÄD,/™„vœ‚òA((G(g,áF“ôé”ï†q2áNB$I”EN¡§7Å-FtlɨøFtBxÈÉ)Dˆ±„ÕCeA‰!y‘´$!âHø(K-³!”LO%؈BÜ‚æ$1‚Fêˆa«oô2v%Q,b„ˆ&"‘4E"䂱Jƒh DˆY‚R„‰èC8F¹–ŒPB,E‹¢Ä'ĈČhƒ´)9Bˆƒg-82ˆE‚#h„ªaÄ!&ÔHã„H’¤…¢ÊdŽBOš…Áh4ƒ©ád’b˜al%ü(•%!B1hACF2C>Xƒ¨ÂGªˆ9$0d8¬B$4!ƒ¸„X(AÈHðB8A!’Ž&2hK‰¬"dDŒU¤bƒê(!ƒ˜Â*3…Œ’8B "(È,(ò¦„D‰êÌq(Á„€!HØB(£µªÂ¦Œ1(@´ˆD‘BO ƒ¡H%&82¬)‚Á'"B64A‚ƨ A%¨)!ϱ`Bà´!&Á(d"MH‚!‰4A¡æ¢H!A $†‚#TÒÂa…! Ò4’ˆˆBƒ¸"H”I ˆB‚$€8D,qHÈ"À‹“Ã$&!‚$B‚¤:X$ˆ+B‰Á‚¨„A”„F¨(M!Ȉ‚Æx*$!¢NŒ&$Q"‡¡’! ’DQ)„a„¤Œä!Â)ŽA"‚‚è*D8ÒDHp‚K,ÅHŽ8#â’a„G¤„a$Hr!\Á;2ÂŽKfpH…Åp)tA"1A#xADT!"Џ$˜HΈÀ,d‚ŠˆÂIâ( Ž)D`ĈDLAÔaQXN‰ˆ„Ô„„˜D‚DŒ8dŽ@BÄ#s)xH0BCôˆ"¤$Cè#%´‘Ô!¤QÂ$Hˆp2D-¶Hh„ˆ„$Œ™„)XD+ȈM$†äDD(F"Ö„ò!¡$Ð!‘Ž*'˜"ˆ&"XK‚EAˆTQ^‰‚4˜#”H*oä$`„FÂ$ðB%˜‚D/ô(˜kCƒb”Ë(4Ë(„‡Œ0H "x5¦¨-ª´"ÄB„Œ6)*¹ÁÌq+D,ÈA!ˆ%åÒ(Ša#JÁBƒE’˜)C$d¨KB+„ŒEBè(åT;fJbA+A` a1È‚HI"SŒL¨%(…¼IÒˆ²B¾bˆ‰Ô’t(2"«($."LôF‰t"TÁ /ê(„‘‚!&‘ƒi¡h°Ò„»bTCFqÂ+Âb&d*LLBb!bƒøÌ$â$µ1a6¸¡¨À!D@èH˜(†AHˆJ¤A‘ŽH$?¨¤$ŠL"D´LÒbø"(Ç@X´!«ˆÂQÊ,ABè"H ޤ‘!ŽF¡j²(„2¤ˆ‹B "¨H¨Œò"¢3"€!"€D*ÀHB"hB‚J"(H*ABˆ€€$  ˆI"È‚ˆ†b„†"€€’‚€øOd ‚€.H ¢(€ „ˆˆA‚¨L*‚ÆQ*b "H ‚€„2„‚J€!|4‡/Re*¡A‰³2s2¢dŠŠ¢"h&ÂJKHŽŠJòAHbŒ$´ˆ²Âä¶È¸Ò$è.ô¡>o‚¸$±¡è"²ÄœghˆFl”¢ª.A/!«ª+X¸"‘²ŠòÄ8+³#+[X†¾D?C/Å!DâwèËv¸²H¢ˆNÂ…â"¢âŸ^O±Hbƒ$¬AÚ!ÅLÎ-LDH+©/ˆÉDñ¶AO”Á(Eq(¡Çƒø%è$Ÿˆ4‰Ÿ‚èÉšˆ!'"G˜ˆo‚æ<8Є”HM˜Œ|HºQá.´ä8¨®!'RP)D$À§‹T7º"ÛBO„ô¤&â(Û¢‘*å¤é„Ôr6%õDZ¢TNAJÁAHË(Ë‚®¦/Jú4ã¯w×jüäŸ?ÿKAÍIß„öó¿÷«³?·òéó/5øÃ7:û¿,—º?šüOž/Iù²²/÷·ß¿Yûóå¿ÿz!Ýa_Dö!k¿ÿ­¢ïNæmûÄZ/¬<ÊþòoÎßqGq'ús³Ö—Q«±Ñ,ôÑñvï³6ó–„/cóY6ÿƒößÂý3$ÝiÇÿÔö3lÿ¢ñ|#¯±ûF[¿ñ“³v÷Š¿Ió{Ž/Bó÷%ŸiÕ>ñïœ'QÕùI%Ý•ÿtóÏw×Ïó]›Ÿ¸ñ™ß²ñ2ÿñùÒu¿ïÑ&ù¶?Äý³ŸªûþƒÿyÿY-])Ïòÿf·ño£ûFºrï¥øÒš/¬ÿÎRïï<->_µwd÷JQ¯¥Õ±äµ5kïÓñ“¼¯eû’oAó"e¯æý­+ÿ”üîc_ÁriüeaOˆ}môÓö_1öu¯•YŸ½ýØ3¯·´yó£¶/Áò´†oaó¦Öo‡v•ý_yï´þGMMßÔö©×¿Õõ/ßMÝßýÞ[¿‘ñ‹©7ïóó³ÞŸçú¦"oiø"'Þç}ûÿ;õÏãÿÖò!MÛFÕóîï?áù¦:oÊùÚB¯­ù‚š/¨µzúH¸pôE§CO4´ä’\Ï8÷,“$_¬óD"_¤Aþáž'AÆÌxSü„/Cø2ůCÔ<¯>M!ÍÏ8÷Ž2M¬óä¬á&ñáž#uaŒxsüRˆ'CůSÔ¼Øþ!]aÇ(O87Œ/(3„¬S„?¸1¡?î!wa}AtsîAx2öįC¸üBºþOãÔÒûRe¿VòZK·R¯1Öò>Oý2ï8Õ-ó†WÍ"¼õe*ß9õENzqAü¡Äø3Å?Åô3…/Ñô{…/õû…/ö¡o•õ1O8µ)ó†S‹2_¼õa8ßzõAßzuAü¬WÄø>Å?Íò$„¯}ôi„¯ôI„¯1–­o1”=O=Õò„Wéúç_†þ„_Äü¬_7ÄÏú÷A¬¯óüÓlãødkúBgøšhÏ!úžGýÅ$X(Q.$(„ÂA‰ÁAâäŽÁ#å8i†4aÈ„åBƒ!uAØ4ˆ$ÆA‚HO¨%b)ðÈ*KAO¼6gftSX'‰t2µHô3Ì)z¨!Iá8–œ/8öœ"„2W„ðá(_®±dxSØ…x|:å„ü3̨w+!Iá8–œ/¶žòE(cqAìƒòÅ>NŒ?…’'ȧSNÈ¿Cœ¨s±Ò$áÖ,é6ž„²rE(òÁ"_¬óDˆ/…’„#|:ä„üÛ ˆˆˆ ‚­ãJ1(-A`Cð gTHFA†¸AF’D"ˆH‘HIDâ„J„bHH¡JbB„¢h"„P‚"€Û2 dQ‡C©¶HÒB–LO2ƒ3ꡈäܪ$öÁ„IÆ„K©ù‰BfÔŠátëÔxt³‚·Œ¡¬ˆ^$jZŒŽƒbB‹‚A¯ÅêÁÒ!x8”J£%”Yk…‡$Tòˆ¢I£©D£\Jó„HF„ò‚Eζ¢–Oä(ÌègOqÊmH&”BJl+!G"Lˆñ(A‹Ape¢…â˜0Ê,qA˜A‰œˆ‚I!È$!ì(„ BƒQ"C’H$HÄV‘Œ+4-„(L‰èD‡òHCФ"!‚£„XJ?ëP…*ÁHh"Kd!*8‚!‰˜Dy$ÑHLõP(2VCqDdˆI(ø6†NL‘‹È4hFd,h!ðIƒBˆ‘ˆT„‡)R$,ÛdãFDˆX2MH„R(%$ÂÂ#ˆÐ)褲$ØD¹"¸*T#±¢ôAðHD‹8$"aH¡£üHB"ñ˜i0KBAH!$A"B‚HЄAO†K2AA‚#a!RAš4²0–Š(•DD‚LQ7MˆVxATA‘€FäH!Â!P’ŠA‚àˆ¢(L>eЂ1x°„B‘V!€„M@'£D$lDR‚†r„8"B+¢KLŠÊˆȈ5BLH‚!È„„#!à#È$¨‚CцT!€ÄhL¨¡AÃ1œ°]"!ùDc "C‚Á`N&ƒÁ¤H²"Œ‚ÆÇ’I„™Á˜BqˆÆbH/xHA”!)Ê!#á²H4Hˆ$Ž`$I‘ØD„®„)RDOø†ÅR*pHÃ"J¤ÉàŒãLÆíSÍJÔAÑáQ‹QAÕ* A&B¡‰ô8VÁr(‘‚¨ƒL`1Jâ8x\È…ˆ˜‡($'hBH$d„ˆL#AøˆA`‘‡®(…±ˆB)ÈBHŠé$²„iFH&)tQ‚C(ø"„H!€OoÃDº(RˆHÒˆM8â@DñØh-$íÈ(‚hŠŒòŒ"„,”b@¢&/R"D‹‚!’‰IqÄYؤHŒ²AR¥*ù(hJ´”R‚A2‹b(C1($(ªtD¨BG‚+a!‚6h! 4" ˆB(€IB¢ŠÀHHH(' ˆ„$ˆ€" ""H@(HiL„ „$B"bH‚‚BH¯ýˆ$K$€"#b"HBH„¢€‘„‡Œ‚‚(A„ÀB0+(€€$ƒ‚ˆ"€ˆÈÕS“/––‘Í8VqH˜G®™Åˆ(€T”žSŠ1ÖIbFâBôKHš2˜*Ê‚f<|L³¹I¡˜à¢i*U‚t$ôaœ„¤DjdDXtˆ”J­H«$‡Ï¢òŒEáj£‚Iñ$fÎ’Š& „Â(¤ÌØDøÔTéÄ2›ˆ(%ø˜à†‘$Q,E«1:aÚôŠ¡*ÒB"¢â>%‹Y"©„HO„¸ˆá¨Õ‡8‚ʺ"Ú(ÔHú¢((JlBâ#]2N"E!Ô(á,˜M‚‰¡XBú$BŠ&9†‚oøˆ%…õAÃ4b”ˆJâD˜J¢JŽˆF²BÆh/;KÄñC(«HŒ”C/–´ò„!Ç$GFr$Ò)‚o5ݪúvþ/u>4óMM¿÷ѽõYŸ•õ{{Oõöá«ÞÙ_Ìú‚$?"âömí¿Zÿ»ÏŸ?~[ÑüMmŸ˜þ{;ßþDÏÞž¸õÂï„ôø»ïäñkzœø¥¬/Cú±²<ò--aôÚòÝÚ/•–lïFô‰ê½ùŒGX¯ÉÙ¥õHI¯ôú´ßxýìw®zÁ´–ú16Ozüe­ïoü‘Ò_¾÷zA!-A¼þ™SßNþŽojûšŽÚ¯)ùòòoÏýê<ÿ²Õ<ñ;ÿõ[3ߢ÷'9ÿÚÙó÷ÙžkoAñŸu¹Ÿô©ßÉý{%ÕÙ•ò=d—óÿ‰Ý´áûVKŸ)ñAOšó+ÙôŸæy–r¶äañ!45òVƒ¿úú_(_Vôdáßëös¬#ó$;¯2{W±å4ñ&7/ö¤Ÿ#óa:'#oAè¡õ%:_ëòšeÝ¥ïÕÒÔôM¥ÍfÿÒóV¨O¦÷š´Ï¤ýRH/¥ÿ~2ïÔ;Ø=¯W%ßõòY?5ñQŸ7ór)ÿÒóC¿çù´2oAñ2U¿õô½“oõg{ÇÔ•ÕôeáÏÞò;´_¼ñ—™ôSØ?ùâò¿‡ö}­¿ýüYO(ù4¤/yú2>ÿ‚÷]kÏ)õkDŸBöMiÏòmd¿Kû/;_ZûA/%Ñ3ñ!=oQôS(«üR’Ž2>$oyþr6_¾ù_ůGÿkMGÂÝE×\ßœôwÎo¨õd®¯,ô˜ZNJ/®öjCŸs'Cô:dmA£áö!aË:׌Á2M¬sDúÁ†øá'…ÆÄˆ?Ç”‚'Cü:äÍÁ£ùáãùaÉñˆ3Ùá(³„ñA:EøÁ"îyRxä?Ç̈'C.Á¯CؼÄáëÁaÉá8×ó„2IñÁ:Iñ&ôaž'Aˆ7Ç*xr¤Ä§CI¼„¾ÄbãÙBù_¿BñY¿Bñký4o1õ/6o8Õmó¦SÏbóÅ[_æò”S_äô²wWÄ®W_Äø2ÅÅó:…ïñõ¹…ï1õ¹…¯‘ö½¥oô=¾O<õ/>O8õ.6_¼ñg>_¹õGØŸûõg,Ÿúõeì?óüwU¿óøVQ¿søqÿ3úA¿1ó„_½2O:Õ*óå[¿¤÷…[¿äý±¿Ääú÷Iìoóü[X/ã¸÷j®«Aê¸Zö¬ªïWôϲ ‘T:ÒDäBÁTàBÌtH„dHI$”Ä#ó„’"I8!I4!OHçBT‹D%HsAÜTH%aDMAÐ<O8MƒX$M&Q.&Ñ."±ŠTƒ—ŒmA‹,mA‰Ò”(-Á£ã(=H,üH,,hÁ,vèBd.̳“£ŽRƒäÁJæÃV""Ї´‚Ñ„zRÄ(DÌR!*´*Ô44ˆ$N"8”‹$ˆ"K‚,Áy%áÌDðEˆ/QHžBJÁ)”H9É&b(*ñ„"0Ä—#K†A†A ´„–ÊÁCc°Bò×GB‹H"‡”@èBFÔôÔˆA.2YhLf*ò„H8A0Ѝ$%¤−AO!dYpA‡e†5ˆBƒ„è4xÁB#á‚ø"#Ø„>\¨aA]HbâŒ"$9,Œ‚Òì5*¨Fq4ÈXDn&9F‡A Ë…MÉfDƒÂH´„Sgˆ2iÁI’…a.2tˆ2$¤4:4",A)4(IúYA‡A#Bz1H'2Æäè’‚)âAh­‚vñ„RO‚Ä)E!t,Òä!˜Cf(8’‰IíèCrB›†a©4$Å"‚R¥A>J"‚´LR”H/’B„”)QB¦µ$‚âH¢E˜$H#¤$ƒDÈ8BN¨$Œ+HhBŽ8à‰¤M"pT(²‚Ä.D€æDbAÄŠHJq*ô¬¨cÅ(Ÿ%U]R¤B*u'yDlÄ—$GB$&d¤.…ƒ•ÊçOÄÖYäˆÕ8â)bU/ÃQ!‚ñ¨Ja&“ú„&ª¡ÂEèB´ò&‹ƒ%”Iƒº]±Hôša-6êœáŽaˆÊâ–h¡¸&Á„Nx.ÊCó†sM,‰ÜÅLi„ž:Nˆ‹-ÌÙHòÁÅÀ$A2`,â"AG‰‚€DHDP‚ŠqXˆ®!€A2H(( @æR!Á" A"Aˆ!H/B!,DB†"äØ=V,è|2 H‘È-@HÁ(DLDB@:(D"ˆfŽHðDŒäB@H"H ‘('hˆ€Ø"”ˆHÁÐb¡DÎHDB).Aòþö$Û‚W¨$Á"ÌÃ$1-,Ð$u(º±vB±†Ã(Ä(gŒô„èG$0K…òÅ(JcA¨N°„ø$jOˆµ&”…ô($I$f4ÁBDш1ìÄJÄmKˆZjAîÇ!ƒµ(ò$!D‹†O(v”¨¯NÁ˜$Þ‚,ÁÇÓ1Ç1!2‰QD(A‡"Ä’$&a„ABÑ’& J„؃2IÉ-‚C¡HÍbÀ,!Fì„B€,A8Â0Æ”‚MBŒI:,ÁH".2H„bO! Éé$c„0’XLòXLà‘F4Y)&Ä8$)(‚–HG+iÁ(DfÔŠlB)„8.PŠH®L(Nðˆ".„BLc‰U‚D"Ј˜"MaPŒ$ƒiÉ&Ø”¦I¨A¬•DM8BCÔ„˜$ȉãhA˜‚J3‚…:!)¤A…‚a!ÄB-‚$CDØT¨ ¬¨H!…) c!PD,‰á.‚ÈAA¢%(Áˆ‰b!¤A„a!˜aF¤)HLHDè$¨ÀL $* e!HD D$†ÁH'GŒ`'Œ$”d!‰H‚QHD(K‚Œ¡„¡AŠ HZA(ˆ$€’ˆØÄ6 AX°1B'AA"‘er„ p’¤AE(Ô$X#¢D5â‘2!IÑ$ì(x"RXÄDJ"¡!$–‚‘ŠA†”#”‚M’‚VBDAh‚ê%¨(PÉ(a§™$aDAH@C„dDHƒBIßRöfeOö»ŸøÞ¶ÏOòæ6Oˆù‚Ú«TþçÊû–k$ÿ“ûÿ9ÕÙ‘Tß“÷]1ÿóñ9w§çM2ocò3-?õÒ=óW#ßRýS-ß–ö%)ßòô3ŸÏ³r7³ƒûKõCÓ{:ÿ!rµõ1Ÿæ±ò4$~wÜóUcß…ö-¯Qò%!ß‚ú½M¯÷øôy’ñ‹²ïüš4õ¥ï“òCNÖŒá¸7MŽ2iñÁ:]¬ÑñáÞñaLˆÇô‚'C^Á¯CòÁ£ñãç1Ö<á8÷M8Ž28?¬—5?¤•?î}ôaLðsLˆ'C/!ü:$m£Ñ">iÎ$oSô)$o1t-ôaßBòqßBó–sßBò†sÏBòÇ;_ÆòŽ3ׯ¯zóeŒz÷eŒ¯S~wî[ú?G[úKÏ[øiÏ[úWcÏÃóÆûßÂó”sÏBóÅ:Æóz_Æñ£~_Æø©~_Æø³îwÇŸ[þ?EßúAÏÿøaÏúAÏUò¤S«4o¸•:_ìõK8_¬õK8_îõK(îõI‰o÷üÛ*Oæ¼ôhΫAî¼öÌúëAo(B±š’D‚dBàB.DpaÌA‡FàF”8I¸ò„(A(I„‚äBDèJDhBBæ-A‡fàB„’Ä+!O(•"O(ä„2„Œ¢(a¦bj`HÃtÁÈAHƒˆ4ˆ<ŽRƒƒtHÈ‚vÌ"G….&FØq>E”)TH,„l!†a$$EŠl„‘AL¸HÔAÁH-„ñBˆJ8Oˆb4‰ñD„7ƒQT„AäØ'8˜X) »€q„²sBh.ÁDhT‰Âš$ˆ/aBþr8ðÄ‚…AÄBH‚D„„ÊB ÔF¸DQA+$yˆ84IÈÀB-ÑR—jPAÐHµHHµÄ‚–ªI„˜ˆA=X)#8jWˆD(ô†D‰˜EÑ1vðD(ƒ!d8‰b„KŒTD"ˆ$´´„AÍL"B_ò""Tƒ¤G$2#ïHòˆ‚f–hŒ‚äÊ¢žlLÒˆô‰ŒH¸ÜJCôB8’K4C©6Lã¢aR+†E™$†‹Á-D(!AÄÒC´IȈ]˜ÀŠ[ˆŠöÄ„h ?TBIt"´QªI´zb"Vô‚$D[l1¤E§óóËÿùþ‹ÏwSŸDÄiøS¡Ÿ™ñëóßÒóÁŸ½ñËùu—y×ÿ¤qvòQÿøýc7ñO_Óò-M˜¿öy©~º«V‹³o„õRʯŒx/…1›-÷_wô]{?”uAyûC7;V¿Ÿþ×ìÿÅù¤¶ocÓVýé_ßµû_ú/7{DrHY•Lø>½ß<õÉ=oüÑY+ŸÔó¶N?ûôß…_eù†Oaò–ƒÿóý_¿÷ô7?TöMEndŸ:ôÁG_«ýHÖïÄýÞŠùCÛ¿¶ûqãuøß‡¿!ó&6g#/qô_ÿxusóws”òIm×Ô_ôôoK¿Cõ®ÞÏnÔ"ñŠ’ò¿õ9op2õm«c‘4œ6MiÉá8—,“¸óL¬1HîyztaøsŒAx2äU|:ä</>OÖ.á×/ã(Ó$ñÁzM_¬å"ñáÞÆäÂøsHˆ6ä5ü:$O<^ã£ñHa˘<×­á(ƒñÇzIñÃn?î!wä7Ç^‚'CįKº<-âãÁêQb¯u;þA·ç¯õ?*o•÷+:O¸÷+:O8ó*6_üók?OøõK:OûqKèúõI¨oó|[ø2ίöy̯1ôÙŒ¯öݨï5ôÙ8Ï<ý«8OxùŠ4_þýë„(md‰°H"á?IRA!%„<Åa‰QˆDMH‡ÈF2†eXB%J(Dä¬á$A1\'(&n„,(d†„&LÁ&S„X†"´H¥H´ˆzÑ(4Œˆ„$ˆ„k‚Žus¢"JJ$ƒ„(J(K&F€‚¸2*`$.b &A´$"I€B$I"€’„ˆI‚D¸d!ˆˆB?…(BBHH C‚˜‚HJ(´D&4$*¢" "NA‚ƒÈb"jÔDˆ+"„+&Œ"‚"(AˆH\(ORŒ¢" ‚ (‚HÄ‚ ÄÁcÏ"7'&‚4A#ýAb4.;($Oª$ø¦Q‰5¸k"ÏÂÕJu„ÜÄòDÈM¬ë…)òL†aȉ´Rø&H/#Cä"(²a¡Rö$­$*BE™,D¯‘²XH¼ÊêAšLV4h¢ê"±CôD´¬ñ„KÎlT„GTM„þ(C¥.k$Û‰Ü(ì%ì$òknÔaˆ%!D¼!|RØAŠaC*‘BòbˆYñ"E‚ÄJØ#‘!\‹4„1R!G”†ÝÄxáutt†TA!Êr’yDFq„è&áXñdƒN‘ŒHaj'Nc:")8“#´$&•h‰|H”$n8‚,…&ô„ZÃÙÂÔH2F²T(£a"²d´ZS+ôD^X#dæ"Ä$&Ä&.†=h%xBĈ—¢^&NÈnƒ,ŽæŽ˜,ŒÔdü*h«gÌt¤èJTØKN«Œ¾Ct²ô©XCü„„OB˜$¦øÅÁä|ñ„v„D‘Â?ÈØHøˆD;D†&XHƒùc5ÐòIogõÉ1넟“òw{6ö11¿xø¸$M*-"?}øâD¿vöz$76ó1%‹ÂÝ÷ÊøÿÔ÷q-¿–ü‰‘Y¿ö¯í?ÿ©óÏ•2>¬ò¤’½þ¿«Ÿœþ‹»ÿü÷MíßÕö%¡¿ÿÝyó+YUòaA»_ýÓ?þÅ?_òùñ–„Î(ObõqÕþåAtýÏwßøûUeú¹óŸþûâü+o/&ôHº=šZòFB"6-3?´ógDNYZ¯4õcG–ñµ­Ÿxó;+!nø¢W¿§ôhG¿¬ýÜÏÿVöe¡Õü¬ëÿ‡ýDâožþ?}Y¿„þ†ËŸÿ÷K¿þÿ­.ŸÆvô4¶®åßÖò¹Ë¿¯û®¹ÿ“ômIÿÆò¨ïß¿ó­dOÒò÷=ýSüƒ?ßý¥—nÿ¤§ßÎø¶‚–MGßÎüöëŸ7÷ÍñEâÒôo!ŸvöóvOŽú¤ìo¯÷Ì’ÆòÆHþûZï–Oñ%žîU¿÷וôI¿%õJÏÊú´WÆ/jú‚„_:ôoy¿ýþ£¯¿*èQö%)Òÿ=þ[…ß¿ÿ«ñŸ²³^üÙÙ¿<ûm¿¯~ûñý:æó2"/Kò22ŸÖõsC¿÷üæÂ¿•öaIŸ–ö\ê?—öŸ´ógyoø›Ñ.ú?:ÿ2h¿ú՛߬é)r2ô1Ó_<ÿøb÷•=Éÿò(DßÔôUMÿþšÏèóÆþO©üš­Z->/U2å=IoçõcQŸñYK?µõCkïFõyo«þ¯„¶v"ö„ñÿ¾üÉw·µsôfhßVò))_xôãI_Íÿj?ßVÿß‚©ýH¿–_ôø¥ÿõøz:Oj³4zö<{ÿýYJïoÛ˜ôIE_„æÆôäi¿Çûn3ŸöóH/½ýƒÒÚÿ·ä/ƒòz/?mû„–#ñC?íÿìò¯ÕþóyßD’hÍM_ôô­d«»¯jÿlü/­ì¡ñJR¯ìÿöŠÿø/CâVv:öA§!^aç#OÖ,ô¤sÕø„2A_¬ôÅZðãÞraŒxsÌ‚'C|:ôBÁƒõHãã÷HaÁd?«Aòˆ(`„,vdèbT‚&b"„—¤ˆÄA*£‘'OŽ„,aDD8cäb#äB9D#qAüA…4D†´}’ä(,ŽÒ&Ä2A.À#cñAHo4(kAb#¸9ŽÒb,-ÄBŽ2CäB˜’ˆ½‚‰§Duˆ’„$IrDùD!+”%ÅD…DÁB"±E¸Ôd!…Bä!EŒ‚AIØhÑ!1,&Ôd(Åa"ƒ$2‚äEÒ!¸Ji"$DðDX¸EB‘(„INô¨\‚HŽ‚‹aÏBŸ‰JD*ÍBÐÈ´‚Ñ$&ôC`BÆÄMH€„‚‘„°„ÄIBì†Ä˜!AM(,äĆRB($Š„"’Tˆœ)’@îA„ä¢p‹,Á…aŠâ„ÁAŸ²:&ƒÄY!‰˜FØH¶˜e„¶¦('AÌ´UhD"F‘v•¤IÏÈR‘„ð"AO¡´!Y„K‚/!!’ÄHC1KB8!GJ’_(´,Ø‚ä!1‰(W„Ž"ÓÅ$$–ô"J²‚Á¥ƒÕ‚TA$R$G¡èC1H‚±Hü<`(ƒ¡I!Œ¤aáÔH!Ê$TÆ*ÄD v“¸"„8RX-!‹Hi…¸(Î&M$HF&A‰bAHh'†ˆÅˆ#ÃDƒÅ¬AIè%ڄшdDL’H,¡,ƒ±¤<#$±t+?õMY!¯xBŠ–~í$‰”¥L#ÒD½)XF›AAb&ôA(Jt=ñ8NH"MñÁ„ãBça‘`*MÑLIX1‰’aK(g„6‰þ9–¬¥F¸òÄx$ÞH[“I)¸CašgD„·Bœ.«'ŒKM8MX„%¢Dëÿµ#ƒ„$4 8†&¢ABDI¢ÈD$ÄŠ$A2HŠì*!a„)$Ì‚™’„B‚¡HHȶCÁ´HŒ‰´hD„Ђ’ h…²5y)ˆÒBèA(‹$-@BH†„HDC‚ÈA KpD¡$C‚(ª.F(‚TDR ‘$H èG8H‰…¤D(,!()""a C­ëð8"OT-€”B"iü(˜·,¸TbHo’×AòdÎgFh‚.„Ï¢ÈÔCr˜x´,ôHUHmAÇ!«:AÞ‚AG^ŽO„ºD‘"FÔ„j‰òLîˆ6Ò\(„ˆÁ*ã–Tk2-$Eh"Ë#C´)&d„)Ó„8R«¸É1‡,‡a§’)ú$ƒÿH‚‘H(O(dQ¯$Š¡H„.„J1„ƒ´$dˆF<N¡Z„ò$„HƒÂB´"ƒDÈtDª1HHP(ÄžT&á(5$$K!&ì,„âAd(„FB(’4,aˆ‚)‘(cš0‡T#FXBŒåa¢-¤"Iô!AÆu"‘d„"†ô"HAƒd¬X4AFIÒB LšAmˆ†$#´$„¸$Õ’TÁîˆ8J‚ƒƒ2X"G!&ä¸TB„Bˆ`¡.BŽ‚£ÁB°v,ˈ†"2H!€A¢(B€#…´!Š$–¢p$T!ÊðH„K¡t‚JÖ AD%xi`(J²"¨–$A&1E(E$EâBF!Bøü0B‚©A€”(‚! A"–AÐHA'„$‘(@ÈAàH14!à(QA†¢†ÂCDˆd!E€ˆ!’E$E BÀZ‹$$„Ø"hˆB€Èbð"B`D&ˆ!B”!ca¤˜„) 6ôÆD@XADÈP"Ad, ’(k!fèDa(E"1ˆ.DPD`kDˆˆ !ñ÷ÛB8$0ˆ„DFLl6¤6„!2A8LdB$LH()¸%tA8IH#à)¨ÄB‡„ ùEˆBˆPAF¸ 8AÁƒ1!ÅèBÑ„$lJÁÈÀi3]a„)*‚!‘¥DR‹"DB"IaCyd‚„OÌA‚NA‡(˜&¢ˆDQA„ ‘E¡‘ˆˆŠT"LR(D$Ch(‰õ”FŠ”1,*¢#’ˆ!E”‚K(/²Gm($£HˆD¨‰"ˆ!¸VRˆ2!(D(BBJ±XA¨HB4DŸA‰„A„H1B¢’‚PAA"¸ˆH¼A¸¥ˆ!IˆÁ$Nà’‘$‚$À‚¨¤À! A@1B%-BOÂ!‚LÁ¨]‚!w"%!”A°AD¨‚ ±Á"BPDDx$Ôˆ8„ „qÄhBÄ„ƒº¤qÃD¡¨D„B@ˆDƒ¤ˆ`A놰a(šD17&­4JT‚„Ј\VtDÁL1„_Ôñ[bÍ´‘ñ9rioùø²6_Žû‚6g"iGº5ù¦»Ê'Q’ôIt[GVñr/4õ‡6ü’Ó/¸ý‹ROô2¥¯©óa>¶ò’¤/§ÑXûsk¿+þ¡ÅѲaö)Ú_ì[ú’[?ô¿+ó\ƒ½ñIÑ?j÷+Gw/#ûãœO)â#ú6qoZý“jÿkö­ÍïUöah÷8Š¿ôrú/ˆ¹Šû˜‚¯¥ýŠ˜«úϱ?ô-Ûg‘~j¿Q™-/ÁõwÿÛþôÊÿ-ú’¤&+ˆN%%ºø¯‡WOBöMHvôCGosûJQŸÄûC¯½ñ‘ŸÎýO·³Oá¶_ù†”o#òGï±õæôß¼µûemÏôalßhøÃÃo}ùîñÏÎ÷QK™ùHYN6ô|/O¥²™ñ¦¶/#ò”D¯ýý¬û¿¡ü³|_RöLI—”.(8¾Y»ªýÊš/©è‰±‚ýÊþ/ûô'„ð2nA¯CñDA£á¶^ôBaÉä8wè(“¬W$_¬Á_îtt%LtsÌ„'C\ü:$Á£Ñþ^DMaÃòÄsׂŽ2CòÁ:CøÅðáž#qaȈ7Lj'CNůCòDÁ£ñBáç!Oì%½ïQôy=ïôI¯1ö-?ïöM?Ï8÷>O¸ó:"_ü÷Kè_¸óiÈ?zueø1_†ü;×7sý2I¿ý’A¿ù²AÿuûI¿uûÄ[¿eó„¯aóÅ_?çóÍS?§ñéw7‡Ÿ÷aˆwSøw÷¯ö߯ôyݯö}ûo‘öyóO¸÷{2O8ó:2_¼ÿ{8_¸÷{˜ú÷HóómÈ/óûø²þ«C¯ã»šôºž«iïïûa/ùGÓ‰5ˆr%èbsQè"s¨(ñAH4¨X‡„MÁ#é8AÈQ¢8Q®”ÄSE4ÌôA‡HG&d‚xä8‰Â‘$¸Q.”ssñÁHox!hÐ<ÒŽÓÀÀRÀ²A®À’“̘‡,*M‰”’m((‹AI I™‰ÈHLa„"LbˆDƒxq¤ '/¤(„iX4‰S$ðŒ3”‰ÒH„B˜!†ôI¡#•„hD¢F±(aHàH¡!D8(„L"‰ÂeA"_ôV@‚4*ÂH!Ç"CCQ„!„ÑHÂHx$-$ÄBN%$‘G(‰baD!Ì"LR¡+(0Ì©!‚ñ"Ó3DHb$)aD1HJb!‚ !.HH‰2DDL¤R„•ÈŒA!1HW‚Î" X&G*Œd(&(‰<**D‚Ä)„d"– ˆ$* Š"B™D"HŠ´EA‚Ò+hA©!Rñ‚HHÀA ›BÈ@!1D@KAN”@BAxA€`,ˆ$ ˆ€aAC+!€#Mf£BJ1%$‘)Ha(0(BV(sDá„‘D‰ƒD5hŒ˜AI-!ÉX‚#HX„ŒŠ‚$¢D‹#(B(Ȉ(:ˆ†ˆVC"dD…!Gˆ°Á#ß.A"R!#”Ñ€$!ˆÂ"N‚BDtX9•Dž‚aTHN`1Fd`r•"”D;°I"t!1ŒD‘…$F¢ˆG!Œ1K0BN!£Ä@a¤‚B†‚Jj„)Ñ LU‡D!4!EÔB6B&*¨Dà!h­‚H‹aˆ¼‰ ‚JL-"#(¡‰‚J„¨)Ï}@‚19HˆHN!ÀDJ@$"´B¤! ‹Ap…(ð$@ „/ˆ¸B1B!20J8˜A‰ƒ¨T“àM"¬=éHA0‚P‚„RI„qA„AHGDJ‘HC*Õ$À$*‘!A$UÁÂ%r1þBA$A!°FˆÓ$AI²èFÁHSb2† Ò"‚¡0JgDÏo!1H5B¡d'A0Â/FAT<ÁJÈA…OhB$HADN%€B@Ò‚E¢„†‚8Á!!&âB(-A‚&Ô2–$)Ä$€È"¬$EÌí3"8$E‚$M "")4b€$$)"A!"FƒH‚Ž‚$(ÀH„H Dˆ€š¸ÙDQ„ „*Hƒ¢‚LhBB„B„â#B‚Ê"(€H€„RMH…B@„DD€TJŒD7¦%Ø(æ6«¤IR¶E:(ä(5TNDD„4EJ±2¹S±D´B4R!Fñ!et 2%Bb$I~Q"$á1ä!‚ò†áhœ‚ÂС‚¨’ˆEâB4!jxR²™„¡«©ÃÔLV$)a!&š‰>„Œ©ˆ'*ùb¡e”(\´„â"¬$Ž2Œ3‘AO)1T’Od!Â*4TuÑÒˆæ$Æ[œ²"øD‚3|ƒR!Œè,uAX‚Š8’!€,èsôLg±DÄD›„Š«$¸„,JÔ$Ù42q'"AR2$ࡃÂ2É„R„J4!`‚@xA\T È„(u(Äuc$I±Brf4b&aD‚dàDüXƒ±šÔ(XÏ(¨O8´„™%O(“_„d(ŽL&Ø…B¨JF:“¾ChÏELñ(a/õ#J×6è‚ò-†><ϲ󅋫fd"Ž‹¯\õi4DD&ùD¢//ë=ùU¯ñiˆÎ¢/ôzA߯ù¤Bo1ö)o+/%r&òfKïòö;*…1AÏþ(“tøDžÃ6/kÅž‚’ø®7ŸÅòÎ/yá6ö-‰1ô¸â‹(«´¯†å)8B+üŒ÷„×Ò<ój^ÏäöOQ/4á1ñ8.rñ˜¯Kñ/CáÉú¦e÷”oÃõت¿ê~f±DôLhŸ¨ýC7M‹O¯ÎhŸ4å1ý”ʾx¿sñd''Åÿ'Gò".mc¿ñö"&¯DòM4OüJ,_äó^io³áèý†Ž}‹S-®®ôê{ô<ÌßÑbêbx´÷\húÊâ¿qgUÝ!ó?¯´ØýBx/Šä¤¨yدÎòF¾­ŸÂu?ý8#͵ÚSROû§”7ê_äã(ú¦„'jߦõ‘ϯþú­É³ñe-)ŸªôcˆìûÑ‹¯÷ZÁ¿¬ýÑë¯Qý¬c¿æ±ôS(/#q"¶ôG&•ñ,aßÕ¿Qrmõ,c_t²Ió…_Ñü1ïõK^I¯õhÑÿÆû¦_çè#ñ¦4ž'ßÃøó¯vûÏú/‘r%ø(á©=1¯†é¯ü:²o„õŠÞŠ¿ø.éCß!óW#ñöF=¿±q!ó.?ŸÃò§–««/Jñ6$ozü¬¿Jö[).f{&ßÄöIi®q¿-ú©ö½cÛÞÛ¬xó(«n_¤õ/6Vâ#ò&m‡¡ÿÆôyYOÃòE$Ûd–ô$fDZgù“˯õÙ¶Õ¡ñSKŸùÿ&ß_ÂûG¶§ècø6´mö/«x;ôy^Ò]öL%‡‚Ÿ2úYñ½2/¯üدˆµBùÊéö¦¿J'C-A§CMA«-aãÑüˆsׄŽ2A¬ôÁD_î9Wƈ7Lj'CNÁ§C<~ä6,/8w-ø‚2K"¬³dòÃðážÆNˆ7Ç#q2ÄÁ¯CòÁ£Ááãá–ŒŽs݈Ž2IøA:IùÁJôå#qe¬„?ǨŒ'K*üº$È«IJ~žÄM1'ïQõy/ï1õI¯ö-?o1ö­'O8ÿ¯&O<ÿ®f_¸ûï._¹ëú¡ÿ÷†_Ò÷mˆ?ûþ{˜?úþ:Á¿þúZÁ¿øøñÿúúEŸ–óœS¿†ó”¯BóÅ[¿ÆóÅ¿Æóñ߯úáW_Æús‡ÇöyÇïqõyÏïô9˯1÷ïï3ö]Ï;ßïó´³m6_¿ûO>_ºÿk¸_ûõo(Oòñm¨/ûü{8/k¼:õúΫQ¯ï¸÷Þ®ïC÷ì4HÁ"WB&AñAHMAÐ|’â8tQ„4(SâBA„ÄA‡BdFB8ŽSÀƒDÁ"Uäb4AŽB1ŠóÁH­A%MAÐ8’Ž’à($À"CdbÐ1:$ÔˆE¡A,™D“€x„LAEÑ‚E¡ˆÁÁ0,´‚Q$I“A(B(B9-!!&±ÄÂCª"*8E&ŒrATA")RA!.)ˆô–ºð‚Œ%$dG!=H &€ÑHA …QFØA ”AM`H3±BÑAD"’AH@a$ˆ!4@a…ˆF’„*©„dLHrD!bR!T"&RB†brGSHBhãa$H2(A‚±EWˆlIHDäi†%Q‚.„B+(á†1#ËHL¢†ôH¢ÁDš%H”Ë)MT!‹„/’ˆ‰×D‚ˆqN2‘Œ}!RLŒ$ÊŒ-Œƒ²˜„2ØÛâp†(#E’À$Ö”B(Š!áÂFt’H.)ˆŒ$1"ƒ¤X!„,ÄD2ÍB‰s‚L”$ÀF(ª¤!ˆÆ-ˆÈ(L6…(Š“‚K$‹*4C$DÊá‚¡$¤ˆ¨6tA7-&Œ#va¤&"óN‚ŸH,Ñ)¹ÌGf‚L¢Õ„MH!šÆH…á"1hK%kHŒâH#8„ÉâD;BD³b†ƒ²ˆ±nˆlA‡E­ƒŠÔ"¸Èô‚1‘IŸ¨8ŠÑD»ÉÄ6‚á.4-BE¬LŒáD<Ì8‰¸¹ˆ²Øò}­0ˆ$£ÄƒDd "aBÀ‰„‚˜!pbH2X<8$@qXH4J`De‚ a@È$@4$ƒ”A(‚.(BŠHPaóÂR&¤1ÀBÀB(„h.BE„q(„ˆOaˆOC‚Áˆ„FˆQD¤.„„D(Šˆ"F"ÈhK‚(OF’þæd.¸$á2âAØJÁFO*Aô,è¤"I¢*EAx’øQ(ä"5¨£„ÉQገD²,4"A‚.tAKH¥j‰‚äBqrhBx2ä‚ÁqÊaІ¤"ÄA&´á8LÐAqqäˆbD‰dBê8'EH+©‘B‹$K1“dÂGBX"B)Ò„A¤B#!°¨Lr‚È$d+"A¨‚Ä‚j(‚$–"IÖH6ˆFÄ(+$Ž$E„¸h’ˆ.\‹( %ÈAŒr¨H€&ÈÂ$+ƒ”B4x?*!2A©Á„p5":!KŠQ‡l*T„!0$È2‹HC$3H‚!uT‚0..†@Ä!pH”„Æ0$°Ò„"‘T(ƒ•!ŠL*H¤G–L(K$²HDôø"€h!FˆÈ*"-B$$€ D(*%$   "€!‚‚"A’BC‚‚Aˆ‚ˆ"* !€²$  €! (ˆ ‚„Â$  „C!† „ƒ„‚*(à‚)Š„¨$ %2A €äQ=Ù `C8A€"U‰xAH(RžˆcC&ˆbBJš$ ”ˆ„‹/)86"h¶„2$ ²ÒxA(£E¤ð’ˆ+‰‚((6Œ„ôt€„%aBà(Jñ$ÁLÁ– K#â¨aB.2D Af„„"54 ¨!‰’ˆ‰â(aBX˜8 dF(K(ð¨2ƒäµ8„*‹hBް(!Ã4 1&,äFáq<Ý "M„°tEˆ€¢ˆ+%€‘¢I¨ B„‚„ ‰£("( ‘¤K €uAH‚ÈHš8"R(Aðé4$(A$AH$qA˜Q„ ƒ8ž’#%!$’$$I ñAtAˆ#±²;€!ˆŠ²Â$ɂĒA„ #±’|"hIÂ$IŸC(CáB atI€!Ž’#Cð(4AŒ’QŸ„$À+˜#!"À.$I€"aB—„+˜+‘€(.$Iâö-€!‘‰  ‚B„$¥#M2R‰#€hÀ( ’¨(€‹„#áBL!!(€dB* >ßC `A€„H"@€(2  €Š „("€ˆ €Nð¶;$$Ä$„$FìBxhB!ˆ'ÐC’D@AÒ$d$€B$ãBD…4¨ç€"Ô4tQHb…˜Fè(AÌ„L*”.A6(Ò2H‚!F’,(å"á$3ㄤpD:†™’c’`¨Ð•$L)”‡@À‚m„* DfRB0„-D‘b…+D`(ψaC$¡"ÄÈ$.!€”IŒ²‚A"„t”òþu€A@€!" &",ˆ‚A €!J¦!" †€!1( ‚‰!€!ÄÃs$"À„€"Pˆ+‚RˆC!’$ ¤ B@ ˆ!D€¢#(H€"8jˆ‚(ðO䀀" !"A I‚!"("(B(2€<5'$„‘ A(‚@B ±"C€À(A(!€H44€"R D"°F 0" (F„((€Љ"€@€‚À8“ !€A"DJ$€¡ H"ˆ€ƒ"„€(†ˆ¨! 8€DI ðG4° €$€"¡"$  €€€"H (€(!aA3B¨€„€$ôˆ*8"!"¡˜/B!¡£(ÒŒ"ÄA*†‚"B(š $„A"£!.D.8B…(*8 " (²ñ›$ðB‘2 a†‰äaA "*‚t"‚12€TD2A(6"BH‹! 2 )¤!""(D !¡! dnh8€¥) C„£PBI*cB! h"Z!¡ˆ$(A€‚#*¥ ¢"Bƒª!„ 8€¡ƒ!#†ˆŠB( /K ”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ0à(€&pAˆ#Ž(A`B„ÀA€8à(€&pAH€øô=À`BHŽ`BHŠ&€ XC  €( ¿OE‘HÀŽ `B&„ÀA‰ŽŠ&dB(”Hà(¡ `B&„ÀA‰ŽQpA,&AxAŽˆ!`BÀA„à(&Ah„à(ñW>A@/!a(D(GBD”Ô$ˆ/)a(D(GBD”Ô€ø’†@„r$DøAI‰€ø’Ä,B`BDxAà(&ADÀA„Žˆ!`BDh„ŽçñÀA0† ‚DHpAÈA ˆ8†(AD€„‚ˆ#a(€DHpAˆ‚ˆ/8ßˆŽ &ÀAHà(‚`BˆŽ &€ˆÔÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌB¡NJH…B²(˜"OKØBH&„b„F ÉBƒ„”$$Dè((!È”D‚C‚F<(IÒL4HHPˆŠá„؈Ѝˆ*(H(BB‹BDj‚D¨DˆÂŠ¡DNˆàA?Ñ€„ÂH…"!ŠY"ˆ¸2GB:`FÐÄr$脤H$ˆ‡…„$Š(èHÁ„ 2E4$PH¤d‰Hƒé„”ˆBˆLˆ8MD"@dDÄ&xD€$1HŒÈˆ€øZè D„Œ”$’„,a"%2$PDô(D(NHH„ÀȆX(ÎÂ/(AR"‚‚¢DL"„–D…„‚JŒ$Œ¨‰ˆŠ(CaH8"LQD„ÌB„T„F¸H”ˆŒøHHŒ¨ŠÈHHƒ’J‚$A2II"„$(4ˆ„B ¢‚ (B"A(Dˆ„„(ˆ!È DKB O„D˜Hˆ…h„“ H$'!!%&ŒLƒ”H©Ôˆ‚ˆ HDADCDˆNXB`ˆ  ( "„BHI‚TˆNHH@ˆÈù’HÀB„l¸"‚!(…DXDBBˆˆ#‘€A’A&`„F¨dA`Œˆ‚ˆÀ ¨E$ÐL‹BHBJdˆ„È_$„J€¨‚&bI( "ÐHbB ¤„ $¤ˆ…B2‚D€C”(ƒDˆ„؈@ ˆ†D8$H„‚B„JŽNÓFB„B@²‚¡D(:RDEH&@ˆ$‚Ä‚†‚À”¨ˆ°$ CŒ¤Dȇ„  ˆ”"@„‚B ¡ˆ€ñ­·à„0HA"!hBC˜„ƒ1x'CD&$Ú,ñ„.$ƒ”Œâ(Hž&DbHV8T'…Eˆ"¼‡ÁBAŽ,AÓü4F¬Á‘†#èA¸1$ÂHMAIò(AKB†*òŠD.Ô$)4ƒÃ’sE¤Aƒa@‘8G(0”Œ3„B¶&FaB„>„+!„-)”ˆ#2C™(K0”NER–vA$LX‚.„-a‡A-A‹-QÐø„Q–®K„®fHôA(DB*¸2Ä„)ƒ‘v?Ö L„H!àˆ„„pB((Fˆ,$ˆ( Pˆ@ˆ8(ˆ€ BA‚ „@BHì)Ctr¸''!'‚O„ž¶ˆšò&D/b¨I!nˆ+$ODÆhÃJd­Eø‚+T%è!A˜Ä…Ä”°4ˆ<NDI²dä„dŠDNDŒL‹è„a„ŽD‰ª,Cx”¸"ÙDº˜„t˜´HòDHIƒDdŒVè„h‚‚DƒôìÚ$,‚!T(0BB/B8"La‚%4˜°LˆD ŒÄ‚ËB,˜D ĆâDHDKƒ Á„H¨(CÈ H¨Œ(¤ €H¤ŒC”HȰ„`Œ„BÊÁžÓ’&p&ÈH%„˜( # D"°ˆD(l$XÀ(C„ „A(0DD„B‰¨„C4ˆ ‰b„ˆŽ„BÀÌ"H€Œˆ€ ðêÞÐB‚4Œd$FŽ!ª’®D&H‚”D*8H$‹H$H‚ÄD€‚áD(Â(ŒD„ ’ˆ"D‚ˆ‚ˆA˜L1„àAĨ@dD…ˆ0H0Xƒ@ÈÆó#&&„’„0‚$Œ¨…EH&Ĉ,dBÄ!RƒÒB„ˆAA‚‚’AH‚&„aH‚€ˆ ‚ˆÀXH@B LȈA[`‚$)"E‰($ˆDâB2‚Œ€J$HÀ„Iˆ@(¡„24HD†¨AIˆBƒÁ$Æ€JL4”€ƒˆƒÄHˆ äŠ;xD!K¤ A8#Èm#ñ$À4B<è!Ad†ÐD”!#Ô.Ä%±HHaˆ'BEá4¢†"FñD"„N(FD©„4HeDá!’D‹Á´À"p„òQ$!.IŽ)DDhD%Á&‚F €i¦ðjŠðHP$‰‚a$I!±"Ä"K"X„¾BpBD,…ô‚¾D8$HKˆx`D–”(BBˆJA(¢†„Õ(„(±LÉ(LˆaH2‹a(‹ÁL2Hø„(RJIbI‹„àÂÈ-´c‡ÂBÃÁXpRÒLäô‚*O!´#ì¦XALÕÂ₤$k”Ä.„œÊƒú2HÉö,CÄ’AOˆrD&øˆHD„ЂŠXDƒÔ‡+4ëBÖÑ„b#˜O(ñA$Na/‚åh‡D„T)áDÞBøRL‰)¨N('ªe…Ô$,,x#(#‘B€(H"uBˆ$C¤€"¡¢`$ KAN$ ‚$„5HF(ŠXˆ, D`B‰´(BA‰"„B<85H.B(&NH#L‚ „AC E•hD(„B"†("HÀHˆŽX x¤4`" "d"BDJ1( ‚IHð^³p"4V.Gl2J#qÒ$¹ˆ’C1)Ò$ñ"'CBB*è"ÅRÇ"«A*dAÊ©CtF™t§ŒŽ/L +ˆJø$‡H§IF´%Fè¤á(lcØ(!E˜"Í‚‰%·’(ŠãÁˆÔ(øˆMMHI´(rKdŠˆK!„D`žˆOa?l8EBnHð&‹¡,aB€‰CÂ*„hŠQ‚JŒD¦ÂGˆ&$ºÈ´,8‰–DÐ(0(„N"FôD¨‹!–äBˆ´â‚„¸–HA‹h0(Cz$ÈHàHñLÐ$”(a„¬„bÁH&bAA,ÁA,²BX0æ&ôBŒ#†‘èH²Ä„Bài(A†Ø$1ˆG!IbD©a†cØY‚T‚À†(ƒÄ4 !À(%H´ƒQHFˆÒ4 ! 1ˆ^'ƒ_N&(•FÑ‚¢2dI(çõŸÏ"¹6r2ô24Mö?×ö|¿¤x¥]ÏRôI(_ÚüR<ù~E¿åÿÅZÓ/ü›>_&õMOl½Rø6$/có$ÿ×övE¿§õ©eO”Öœr)ø%-¯·åúñZAÿéüE¸øBA;¤ß*ôi?Oìwz86/+ú„òÿ÷ü¬Ï×ã§öVaiŸ–ô¡é?uשóöįé٤ᨹÒôš¾OúýBíp2t8q:öA§!1ì8÷ÍŽ2K_¬ó$¬Aòaž'Aƈ7Ç-ˆ/CÔZü:$¯</¾ôaÍBŽsÝ,ÓdñÁ:G$_¬á"ñáž'‡Æ*øsL¯Âx2ÔRü:dm«A-áëaï‘–<Ž{Û8O(“$_¬³„òA._®yRta¬‚?Ç(÷2„>įC‚´¨áë!,ƒQÑïQt9÷A—r¯µÖ}óCÝ7ï¹õ-6O>õ(2_¼ña>ßøqAú©_„ŸúõAˆ¿ÓüS?SøRQ¿ÓøA¿_øRaÿúA¿5óôW2O8õ(6_¼õa>ß9õiZzñiÈ_zñiˆ¿Sü{8SøQ¿ÛøQ¿Úøaÿ˜úa;O¼×«ó„s­2_¼óK:_¸ók˜úõo(®Ÿ†ü2Ï·‡/ã¸:ô:Ž«Q¯ã¸öªëa_–N1#H1,çbÁBŠqaÈAƒHaD¦Ä#ã8iB|!Œ8ihSäB2IuÁØTHDÌA‡Lxì8QÈ ŠåJT‚u(wAØ4He!TB-Á#á(,DÄBÀ"A.FÀ.2-„ž"G”…‚DÊ"F­á¤,KŠ”œ!ɉ4I"ËZ5ôÈ"O +AƒHᢨŒ#+MHO(ÂÊIRH0hÖV¯TèX(0ˆ(†!9N‚C‚(ÁB†˜dG‰fHÁ„°l˜T€™J˜?ô¡¢$$$Jð(L,ÂJ,AdH)1Ä AN¡kC-˜K$Â'Œ$(è3˜H$:"aä)bÈ)ô”($‰B/rrÄt†Á$\ÔØÔ"éRÓC˜!šÆ‚ô‰‚"UÚ„x†¤XCÓFt2ÑÈјÑÄÂB„øLƒ(ËŒä…è¤å%i‚ÍRÃR‚«!‡dFyZtBÂR‰3F-O2Q2‚o"éD¶láJ©DK$HGFIÖDþãŒ+)‹É/˜´JŒ>,/jáù(k¢‚/H¸(a,/Œ¡D„ÔbäÈødFÌòx¦ÏEBûèÂ!FâŒü„4O8tB(©ÄÇIa+ØCtCñDŽBÇCÌ¨Š¹‚؈¤„¯¨ ÿAtø&õ‡„-9_Bv±ô‰#ÏRá!ò”&_ŒòÍ´ÏHñè)΂CòH©OQü3„ÿJü(ØoÚ±Qš‡ø/Ú±qö³¢÷8ïzá)b#?¬²+yœòX‰O}“ƒõHVµò/†ªý&_¹‡ÜŠ~¦¿a¶‡÷]AÏi²¦³‚òˆßl¶nTz¯¸rHuAá¸Vßù„¢Ï"Ø‚™œ­þlÂ/^1=6ßf÷ecO¤ñBûUwõ4^oîø=‡¯ãq"ôg¤o9üs<ßé^öäÈÏCöMAOVö¤úï-ü½òß.ñ£§O¤ôÒÚ»Ø?~òÄ.oçú¿‡¯Ëû¦"/êò–ÇëÿÏÇ/Vþ´üïBôMEOVò¤þïIþ]öÿ,ùå§O¬í¬º‹ôáçN.OÎùïAïäù„„KoZø—Ìÿ<ä?þ®æï—Ô\´möåçÿ_yƒö¬&ÏÉÙ„ñŠÊNBÏûD8õCñ_8ßaòO=H—a¿”ò¤™/ru¼á*óHþ)œ1ißQ|YÔ›¬×T­üuQø²ÝY¼ñQˆŸ)ñIYM/rSú޶ï¡ô–¯/±ói´ÿ}8ù$i›&ßZÔØó"™?§òŸfݼtCø/¦)¾oóâ-2&÷2h'šo”¶#ú)Їâ2«C7ø´2/‚ñ‚²G¡)•ojçq9¼ñri?ÅôKR/µõqxÿ#÷É?Oâñ"g#>´mÒ?ò”Ý›jŸ\ølinmÛDŸzôz{OÒ÷òÃûËR¿¼õÉ?…ûïV¿ÚѦûš¦Ocø2´o*ñsgO·´Yý)!ÔæÔ6M—8•ÿäY/½ô·(¿$}ÉÛ’üÁèÿ.ô)ëO­²ø2¤okò„²tüd«hô-äïÔÖTVE_^òGgaûŠïèi¡ž’+¯èûtJž®ðô:-A«A´ÔÖ,Ó2×­ñ†2M2?¬ôJñÁžtAŒxs®ƒ/Cèø:dMÁ«A¾ÄaÉá8×Ã2IñÁ:EòÁJòáž^$ÆLzs<'C|:öÁ§!>>-aÃÂsׂŽ2K¨3$¤Á$?îñ$ÖĬ?ׄú2„‰þ:„I<š‰>¾ÍAcÛÑùZCß×ñZAŸÖñcß”óUŸÖóŒS¿‚ó¤[«2_üõkx_»uIø¥_Ÿ„ü¡_Ÿ„ü3Ï¿¥ô5¯5ôý¯1õù¯1÷Ý«ïqõY9Ï8Õ‰ó„_‹2_üõix_¹õi?ûwiø¡Ÿ†ü3í¿…ò1­¯÷y¯¯ôé¯5öí«ïQö);Ï<÷;:O¸÷:"_üókj_øskø±w?†ô¸w†ø6÷7‡ok»2ô¾¾+A¯k¹ö¾²oUöÜc—„H†hW….4„uhJ1†-AƒÚ4¨4ˆB£XBo!^(o8Z,78-M(¡„Æ nDAmú†ˆ*v(ôÈ$-Âhõœ¤…ÑLq…²QD“ñ”˜JAtqq"Ô¸FxŠ4 A%ˆìA”ŒßTßDó*/²´A‘¯ô")Y·…ñ¹a¯)Ò¦’”«¶]ºèò¨ÙOR³eø|$ÒüÒµ?Fñ˶¯£ú¦O=’{¯þ¦m2_&ûÿC¯!xŽÚDñH³ýÈ‚ØÅ5$«'’ör³?.ùožŽG›¡¿$Ùªý”K_J±ÓûÍA‡+ïŠÑF»õá"¬ø¢ïoxbÔ_EÒüWoT¹Hé!øŒF©¿Dé)ú¤N/r:ôMb1óBZ-J·$?w÷F”/SüÛ®ß~ø¬ÁÏhøN)ÏÔÒö¥‡ÿÁùÏ‚$ô˜ÜψñŠŠNBžô‚õœœO“õ#z¿$s]ù„Ñ)ñ)>-/óá˜K#>¦/ãÒÿòiŸ/òo¥¯“æ–6iŸö:É>}‚ÿM4ß‘ä™õCXŸnû=i>ï/ñÁc!ñ-[/µvÙöM¯‘æ–4Ißuþ8M/‘Õ#õÙ8]Y¹üAX›Y.Koór(g!6³"ÓÚÿÜk?$ósŠ>i”tiûýeóö8r/‚ÿæ6O%ä)•rodkÑ£Êù.[?„õBŸ±õBYÂõFŸ±öîÏEû¤+©oiö÷o²³}úùW¯–v$ýi$Ÿ~ònë¾ùo²÷Á»MŸµÝ²Ý¡±{ö[ëo«ò–m'AOaô‘SŽ››¥¿Wÿhiœ2Iß|øêkoÛÿ&ÿ?D±ÝüÙË-[=¼ÛgŸü÷4ޝJù¶”/iû´ÖÿÒô.ŸÅòIro×ô,$×–ßžúkêßk¿®ÿj:Ï-ô˜Ú)õ–O=öL.`Ct:ÄA£á6aÁO8W,ôÁ:IñÅðážƈ7Ç„'C/|:Ô</>o–ŽsׄŽ2EòÁ:A¬a*Æ1"Æ"7Çxäü$Á£á>ž-aÁŽsßÄÂ2IòÁ:IòÁ„?îqxaxs82‰ü:$I<šè㙈“ÕÑö:SŸ×öQ—ׯö}-ïuöy=ï=÷ieŸô÷¬w¿åò´s­"_¿÷Cªß|õc¨~õc(îWŸ†úò×?òrÖ+cïç½ôúÖ+aï-ÿ6dŸ•ˆrGhB„D„dxÉÌA‡hjBñˆ$ø$Ž­$؉‚XÁ(UhBè"X…¦R…—¬HHQH8Ž“¡µˆXÁ(uhJwDuxÉÜ4ˆ%AÁ/yä(Iè(IÌ’À2Á.@8³ÌihN8HŒä‚Q”$K8&È‚CÃÄ>‚Éd#Œ$‘iÌ]xÀ|‚-‹H,Iá„Ò$è‡H$ÉD–Ò„$‘J™4$†De„‡Cæˆ!dI¯1ŒÂ0¾D,›HˆH"ÙdB™5‚Cˆ2”„#eˆrtç…$a$„Uˆ’#HD²ŒCHxDÈDL8B€ÈI†BD¤ˆD@jÈC"FDéÁBÑA4ˆˆ%”ˆ_AI(ã¨!(D…ÑH"˜D+Œ H/ñ1-R(2D)‘A()¡ÄeÁ$Lj!JXX+„éIÄ!E#„´˜Ä$†ŠÒ‡Ø„hAˆI4!‡9AÉbðD,8J¬(AÒ=( !")œ#&†H¹DÈc…d`¨ b$ß<‚F!’Z©d!LÆ!$Ò„º4D€FÄh‚CD:†Š”cäˆ!44ˆ±„âH´TA¢„*ÑH4b8GŠÈH`ƒL’B‚¤"ˆLÒ$ÄX‚,L”( )Iˆˆ÷S£ËZ"xF¸B‘JñDQ\bBÀÆ‹H)ª„iÄE*ÔTâLFÊJM‚OˆU¢B:Cèä^†L‰‘Ä›‚M‰YMmH\”xвFsO’È–:HÒHÑ¡"ÔƒCäIB•24‚ÞÆL¼ìA#H’ˆ‰‘‚$ÍF_Š H"„,BR„Š28A*1“T‚(€$FH›(H" "0„ !¢‚ "`†)dB)´(€ˆ€ˆ®8ÃF&¸¦G”ÈGABL`¼B ða°d„àB†‡¬HÁH$‚"ŠD4A€C ‰‰jHAB‹N‰$‚ÀAD‚C"œˆ#Òðû-MN…rYr(¦-Œ!*yRÑI8s‰’_CDñ)n¨EÔHAvˆ¢¬MC;„Þ( ƒBrÁVÇ¢oDÄD‰ô¡ƒáæùe(%,Ñ(x¨N dŽÁDNè†b¡Â/LF¨«„(†¤CÒ$!„Ú‰‚¸ÂÁ‚Ãh$‹Ä¶¸ô$Hˆ#54GJ"* :dÆ"Nˆ‚6F¤H‰ÈX‡(Ì¡B¯Ä D”TPA!á"9F‘AQFAÂ$%A‘p!$Ft B‘AF•%‡Ñ@3”…2!!$/œΊDf…–€ Ü2®ðG°JTJdA‹TM!$Lä#hH¬qDD$ȈGY‡B/4‚xˆ´Š”D‚Aˆ%"‚BG(>”%däÁÁT‰ø„)$…EÂ(˜%"Ì(GDƒòD,Œ2(Œ¤‰…ølEðEM(„H%Ø#D42Be1E„¤‹BŠX$‡HÁŠR…Ja$¢ˆCô!%"¨‹‚€f#HDˆÈxd$9 ,‹NˆÏ…8"¶dH¸"ÁLéA&"„˜ðH„,;˜)T(! )$$H`$Ì$&8A!DŠ A°ˆâIARDCXR†vDÄ"E,rCHé„R+ŽhMRC¡ˆŒŠº”¨L"xLFØ!B(ФHD#)¤áC$LQB`$Cd‚,Læ(hh%b#!lR€ÒÄ$)]¯H∘Ð"1‚CĈBD`I@T!‰FÕJ$q˜Q„Z‘ˆP‚¯*A$XDBDaH‚mI‰\AŒþ!‚®ØIáä"‚H²H¸„Á!b !Q$ˆƒÈ†Ak„"D I……qDDˆ(…ŒBbˆ‚¤HH!#èTˆ%äú!@1€U„"†@$A!P„DÂB€È!(GÁTA`H°$AD¢H‰($ˆÄ‚„ÀÚÃ2!£ñR'­B/q‚öˆfÇDC¸„rD”„œ;K’W‚g„`Â*øã„+ǃ±*¼ü(ƒ,ÄÃ!AaA€9!Ut$R£Ç„ƒFœ9û.2Ž~/ƒ±˜åEØ•ˆC†´â8È$hyDhˆˆ/%BqHñH/AÚŒJ´¼”œÈšHXŠÏˆBQaWDuD¨TäÄÑaÕ!xbb(†BÂÆ/Bä8T.gIT\˜-…½¦?DQ‡)É‚ŠLù#_C8BCh!OI˜BKB'3EQDEG‘¤íQÉBt#T(aJ›†lH£ÂDIØ‚ô(ˆ/á©aQMdªÒL؈šáM:‡ŒEˆY¨‚KNk3ÒâT(ƒÃC'd˜ÑhÓqÁ2lì"¨Œ"S:DB„DLG)´èAÒH¼‚ÜX:ˆ?H<…Dm"NK#Ò8HOŒ8\üHÌ‹ˆ‹Ù†þ’­þމXt(Iô$ÇdGd‡‚•œ&.$G„+AŠò¤(%‚4OHøè§$ÿEÒªÓò´AÑ#ñhoò²CñÅV—Ï!ú„(M–_Ï´ÝúÎ"Øõæö$ÍÍ?&ñO´¯áú&ÏñC’¯ø&i3÷·7ï(Ñ¢±‚ñb·…g"ÏRÕXóa,^$.aÏÒùA&Ÿå‰Þ\Ô+>ÍøÏÑw-|_øÍIÏjr¢ØBúHׯš/¹ôB?‡4WSŸþ79¿TóD”aþ(Æ©ûLª.Bm¡Ó[aÿD÷%3O¤ÅJÝB?wñDzμ·v¯Äú¢?Añ¦Ã=¬ÿ5ú’óoèy>ôi…OTv¤úú’ÿ.øÍbq÷†ØŽª»L{÷„þoâøùÇïäø’†oeù„Ç7æ×w/U×Ls^|mù,mjûü2ÿgûÿª?û÷ŽŠ/ˆ±Ññ©_OÉü¸ŒWûÊ®Eô%„oRüK®Ÿú\Çï¡xéVòMißúòÿ½ÿ.ê.ò¸üIuŠê¬ü¸|OÈí…Eáóõ1LÛ4ו/±ñAŸBñ;iOÝþ3Äù¶":ú’zÜõöKŸ'òëá¯Ñtd9iß?òI>Ù‚÷ɲߑä‘݃õÉŸ“ö²M/2qÓ®#ù/õ~+õI‰/‘ölA—„ßuú:UïþqX_NòOËžQT“üQ.÷oóòœo!ñ’+;/Yä5ûù,[ç/Ñæ„òA%Oò1Gò/†õê²O!ä)•R/,££cÍko“ôU~¿!ôY-Y„ñFߟúTn¯Cû¤+!Oiú3õošqyôy‘Ï”ö$m—FßþÊíOûÿ¦]„ñß¿½ý‚YÆùûÂÿµþ´Žï$ù†”Oaø”Æ?q÷$_3÷yqOÖÖXrIøÉÕ¯½ô¨yo¹ü=¦?-ÝíÕÉûñè}僧º¹2ó2¶Oi÷3Áï{ÿu¸_oóxiÏBvdùMį|ü½ò/HõŽ¾Ï¥ôXÚ/ˆýJžOïþï*p2ÄE¯CÒ4aëAmaÉÄ3߈ñ„2CøÅ:EøÁ†þáxaÌ„7‡ˆ'C\ô:„<>VLO8wMü„2CøÁ:EüÁ&øá'CÆLxq<"'Cü:¤Á£Ñ¾ÂaË(Žsß„Â2IóÁ:M(¬a"æqta͈7×L82Lü:$KÁ£±>±?Sí¯³õye¯‘uyõZqßòyŸWûœûŸFó„ó‹2½÷a¼_½÷aÿwaøá†øûí?¯ñùí¯»õù寱õùů¹÷ýãï±÷yåϹýK´O9ÝJóÕß?Æóõ_?†ó÷W†~õa¨?_üÓ_^ü’aß~üQŸ^ü’aßþ–mŸ4÷”ó¿$û”÷­¶_¼ÿC®_|ýcˆŸ~ýA(~õAˆ/üS/oü’X¯o¼’ôúÆ+aï-þ¶eïC(sdB3„8ElqAÎAEAF8ŽàXA‚ŠåJå(Å„QÄÈA…DaB&È'ƒŽĆ1‚•¤¨SaJ³¡ˆñˆ±„ØÔHXÌIÁ-#á(i‚Ž‚"†"â(ìjŽƒÃÄ4%˜R„#ÄHÒ„èäb)"šBò"LhC+„*(ŒÑÒŠÔJ¨‰ŒØ(…u¡†A4‚&”¢CñA‚&tHÆH"(Ï$ÉI&ç‚Y$Nˆ4‹„'D‰$áHb!I¡(+OH2HB$D‰s‚xD‚¼˜!Šx¨bEí¬°²D¢B$”ÂF´"Ò(ˆbH!&†ÒB¤$¦X%nˆiaˆB„.‡HAB¤(†„u¦Iˆ´F‰’LÎ(„ø!†ÄHJØF°AhHàaèda‚HJFȈAG¤J(Š”ˆGéÃN¡!D!-‰"1'ƂұBÈÌJ²ƒ¤‚P&ˆXR*T*$†…„òQ\2"T«†’A,ˆdŠGƒ/8$E"OR$BŽ}ŒBd„”ƒ‹!¥¥‚ó…ÐJƒD‚ƒDƒ¦)ä!(DF8D¨”Âl,¬$$…ÈEA$#È„`AŒ–"LIbÈ!ɈÄŒˆVBŽHK©A ñ$bÃÈD‚Aƒ„-(F’„ ªI!Ž#s2#’F+5øXC’„˜%„´ËÑ"YÁ¨ :ÂM¢d$‡)(QI§2$‡JRFž$4A"ÎPGB=„¥bˆ'ŒÁÈOÒø’(OV$MGIú4ŠŒ¨G„ÇB“äDqƒê¢a$Åbˆ‹$‹/ˆÑfM!ÌBâb,.HDH™‚ƒDB$B‚BâH(QA!"ID(ˆ"EH%ˆ¨ €dDI€ˆ#¤ÐÑ:»1"7A‚èAªhH&eaf8D$A%‚A#ˆ¨D TˆŽH€8‚ˆ@h!Ætƒ¨T¨¤¨C4H#‚2‚ˆ­‚à¨4“D‚GB†è„‹‚°D‘,‡!B$B#òDbÓô4"‚’Â>B‹HʳˆuaŒ¢I„B8\£6A«‡‘®$-!Ó˜Tò¢ÃI·\r^ˆ7ÂCÂHK‚xX´ã˜Ê¥¨ACœ:‡É_‹Ê„DKŠH.ŽÄbÁL–dFh„ÆäCxhˆ5‰blÎC㤑$„àabl:”8$DŽDF8Z–fH£lA0B‹J¢DIÙ!ˆƒ„òH”H‰&D„â%xD(8B„ŽH#2¦t˜"ˆ„câB8°D‡c<(I”‚‚B‰„øú¬€â‘tÄA-X/Dá‚c0„c(VBªšRAH¤.BËH,2M†Z‚IB[ŠƒbÅA¾‚!CÇœ.B>ˆ#Ì$xQŒqÂ8DŽ#8HŽD¬(í"˜(ž¦LÔ8\,„H&ä‚TBŽhÄFäˆøÂcWx£ °ALT’ŽDp¦¡Lˆâè!BÂC1Bmˆ(Bˆ)xFq¸b„$ˆM‚`QN"†GXH0A,ŠÄL'Bˆ$‚†Ø4ÓHa‚34$p„bF,hD%㈴!¸D|È‚˜X.Dø}.$(D`IHˆÓ$ dHˆB¤$‰8D‚FR‚@Jh(pD#ƒ¤B(J`”"ƒ„4¤À„FB@‚RH‰$B°d1ˆ‚ZÌ>r!M%À°h`$ƆÁ$+(ƒ´„!Hà„ĈZ%¤BŒÌ‚ØHŒ&˜Š+‚R3BHB„ÂD!‰Ò‚HÎBQŠ‘ˆ&:‡O$µÒD"ø†D\@‚TNH˜¢Hˆ‹X‰‰Œ’$_ú "H2)0&TÑŠ#ájdH$!KAITBŠH$2\DˆD†”DŠ(†Šˆ,DD.ˆ¬)&A‰($ð!DÐH‚8!°tJBƒÁü3Ãq°@1¨+JŠÁ"lr¢a„‚DDJa¤±ØH¤‘`AhDp„Ä„ERA`†E"ƒƆ„AÝDBÈB„a“È",RI‚Q*i’ÄÁ‡a"‡Â(ÀˆIÄ(Œøý}$%Â@N!ˆG”<&’"tBDU$XÐæ¡œÞR4+E2$–$8„ƒhH†ˆ"JTŒ”0†˜XâEˆÂƒˆ"(ý$¬ƒôDFÀDEÒ\dF-"CN"ŒOÜ3µLD’$/A…I‰8$˜EÄ$pL F…˜‚LD8%8…³ƒxˆ¶dÁ¢(Î9WH§B”ÄÐÁŠ˜Í!©R† BO>8žJ#!@ÈH‰ˆ†(h„…’HÙ FdB2Œam"")ò$„I‚ˆâB|ˆ’A„KBˆˆJ(qyAþˆ@J™„­F(ÑÑLÄD1’NbÁ‹,‚tŠ4$K!M/f °!2ˆJb§Dªƒ„‡ˆ‚à‚Âø³T‚!Œ‰$ˆ$‚H†HX„ŠAˆÁ@ˆD0L#‘B A¢AI¸d$0$‚@"$D„"(bJtBRbB$o2A¤$(„&dA H)HTH´ˆ$@‚`BˆBˆBE‚F"HbD…„H!„& HÒ"ÀBè3ÛASIKQò3D}A¯c±¡y¨t‚dj-“&É„&éLxLáÄrDÑqÖÅA«˜BŽX§¡ŽÈOHy”øh‡(K$8ޏ+“4VÅ4d‡R«ÙÜXÙ‡øHXIŒQ‰-†ÚˆR/Hb"%焱¶²õXH‹AÎH>lFýˆƒôlˆ/E~ÈBÅúJBÍH¿{Lbd7% !Vb:RD&2$/HbA*âBt&ö*LgÈ!……t„ÈÎ…Õ´xˆ!È$%["±8‘†_H…xÔ†¸BDÓ¹HtxDw‚èŠ$ìIdvFÒD:"ˆãA¸dôhïBE\B¤Œ"òŒfX*ŽZ‡(I’(MâsF(AôB±‹Að2ŠÜ,”%<†x„bX’D‡(…tÉÈšcüÖHI1ŽÑ­4ŸÄTÏhQD!M$O(QiÃ䈩x‰\„#ô4†#á'´!±qòD1xôÄC…t$óD$K(—#…5/ró!(.!KâMF{cdCâ$„¢Ä¨^¢gEr|óADG¥5ÁaÏñb弊Þ&?œµFºÍú¥NôN$—W]Å·±N_}qÕÜ9÷U›­‰ß“ÖµùY3ÿóŠ4†xöãXwßFò[O©qiõu-ßü–ªöýQc¯ÿ}Õ±ý]S«9›çŸ2ûmcﶪâˆz$öGYïöÅùNïß±ñLeñdMïéùEû.&Ϩ½(­ÁHŽhÏAì¶3Ã4ßÄñ^ÍSã•õ3nßbô±†O×úi¤oCø÷6OZü=,¯^øŠÏϸXÏOVÚßô•ÿ%øÈß]ôß_¹ñ‰™ô›ŸûÜýùU]WÏgK/héQÿ?Ýú®Ûßqù_)_ÔÚôÿµýUUßMñ;_µùYŸõ;ÿõýÏ—DŸÎRBbù´EŸËökUÿáÿáó·…ŸÒþg,ߨýoŸ_B÷ä6Ϥ҈üXJŽHnªïäý¹+ðOŸ´õM;}Y½SŸ±ôQ;?‘õ;Áÿ4ùÙ.+ióSŸ1ÿßY?•ûyñ¿ôIM—4ÿœÑSÝ;å¡õ]³kT=Ã!õÁ+r?ý–ª汦²ûSŸ:öBA?©§¿¦F4²òñÓÑ?=ýQÒ_|÷ÖÈ¿<í!þqR?™÷÷ñ?/ùqº+;#ú“Ã^çöÞQ_RøRIUå¶ÔFó÷ÅoHûX¢š÷Ęš©‘KO[3ë-Ïqõ•õS[Ÿ1ôi/ÖôÓéÿ[ò#¶O*±¶ò¶•¿ó÷½—?—óÛß—V‰Ç„\ýQÙ¿ùü•BýùÛX¯¸ý‘C^›ÿÖEû;¯§ú„&+šoJÑÿþ¥‚¿œúß_×ô%,Ï–òMMßßöïß7þ8ÿ?Õ2ýYÓŸüüþeÿ]õ߯áû”6oIó¶•ÿ"ÿõ¿÷góWEß4IßXtíý;ü~⃹ˆõHØýøê/ŸòXp2ÄA§CO4¶Òì8wMØ$“$_¬³„òÅ*ñá#saŒøsŒˆ'Cü:$MÁ£Ñ¾â–,8×ã(²„òÁ:IrÁ*úá#saÌ„7Ç.„'C\|:Ô<¾Ò–,ŽsÝ(O(“$¬“$_¬î9bFnˆ7ÇJx2”È£³<èëA­ècÖâôY¿fôI¿fôiÿ&öY¿&öœÛ¿&û´×¯"ûÕ[?¦óÜS?¦é~ucøæW„øöÇ?…ñæÆ/õëÆ/‘õëÆ/÷ÏâoÙöËbOxÿË"Oxß*òÅû?¤úÔó7¦}cøêW†úòÇ?‡ùâÆ/ÿëÆ/üëÆ/ÿÏâo‘þËrO9ýË2O9ýª"_½ýó*Ï<ýÃ.zGü¢W_„ø²Ç?…û²†+ñÏOúRÊÏOøúÏIú6Òç7$@BÄ"Cab.¢aªvaØ4(a&BŒxè(Ah(à(XHŽ¢Á®†`(!òAˆmAˆaˆ!Dˆ'ÁŽ„,$DrXÄ"ÃdbƒE2FzAøAƒ’F*“FŒ‘Ä#á(EÄBJÂBB(A.DÀ法ÁøH=Hpb¥hiÁº.œìrÖÈH€TžDŽJD ÌAŠÑ$ŒÑ(H‡zƒV.HA™V/‰$â(4#„#á”È)Ó¥H„Z$èINhÑ€–ªTHÎ!ŽX !ñâáNÁb$±.d0Ö)¢)`%”G+‰&DH˜ÄF(ÁFˈ€¤„ˆL”‘%(U$‚CÁ"`iËBJÌ!Èc¯‚¡H)¬1M$MD)˜LPI¨,Ša$‚6˜"/Dªˆ#‰µ¢‚T’Eø&HG$p¨’ÆÂ$„£ @AAˆ@E$D ‚€"TˆÅ€‘¤!„€³H€„ˆïù€ ˆD€2!„!ˆ€@ @DÁ¨À,’HŒ‚‚ â>}5õ"A!)ƒaQ)ôkÇh”†$|„â$3F4-p_Ä(ñ‰O‘ä‘ܘ¢)”ªAOAJ„ŽGdKFâbó%ÙAtAxD¨„/Hx(ýeKÁÇ)x’è’¢íF¨d!‚ÖÊ‚Odzz”8³ŸGBdR‹†%¸3Q‚­X'©õˆ)µ"òdðH$]ÁqQj!…ƒq8„ŒChXCú„…‰ÜÞ1ª1,AÅÈÏH¤„OˆØ„Ȉ˜‰Ù›WL(EÄA0"iä‚RIØÁGΈ„Ó±Ah‰oɳñxD¤™I±Ü„6ƒÑŠr¨8(ǃŠôÈ(ŠcŠB $‚ñ˜LÓÆ§…DˆD˜BM,+Œs„R$&*ò(„*‰áå1lB 8F†æä‘ÔÂL-Ì­ZKŽ]"‰ë(ØÉQŒƒd„Õ8„‹"Ñ„"è‚¢˜‘†Öä8dTÅØQI1‰K2úH„pA#D¡7˜¨‹IôL,4n'í,ßCôǵ+qÛs·~ƒÿžÝø„¤M†/ZþÖ…ÏÎúÖŸ)qD}RøÈ¿åùÄŸN—oIøD8ñD+áÛhŽÏ<ñwåcô„’oSôR)_Fò%^]n%oŲ%üB2^‹O|ó.´ßCì‘ñ\ƒ¬÷Úï“ùLß$•šša!_ùþæ-/‡ñƒ^o±ñl#—_’öòŽ´¹R³‚ö8Èšë/‰ú<ü‡3ÁO”Öê÷Z^¯âõ~ÏûøôŒŸÌø†„ojèXþé¯Mû»Ê_iù~-φÚIô‰„ïùùÌÏÜü–Þ_¨]˜‡”/ëý©ÞMŸOLúE„/Cú“Må×ÔçEï¡Õmñ^!ÏÆØMtø»›‡Oœõ&~¨ý’™Îêÿ¡ZŸO]ñÙŒo!ñ•’ÕÕûV´ÿãþ›‹¿—òl)ÿö­³Ÿ²»AñØ8¯ƒß¢ÍÊõ*xïãûaÏð/J.kµòQ¿¡ôX[~¿ÿ¯Ü¿¯ùÑž+™/Kù²’Ÿ«´ûõz)ßÕû3h߆ôH‰ÿü›Ì)íøí<ûŸA?!å¾í|ù³I?KöW²î32/Kò–2âõSA'•º¶atLµÃô#ØkÔ¸÷ò£ý[9ýhS/vù%S;Y/¬yÙê!±ÙöøV;Tç½eùmKFŸÔòdVÿØý–æOçýv4kØ/)Ý(¿æñÖßÓÒãõ9C_tñRI/%õKŸ±ñv]¯M¿¯ù‚’O)¹’û–õ¯éþ³¿•ójF_ÄT]”LøÍÈÿéýÛß|ùÖɯ¥Õ¹ý‰“ïÝþZäKø2¶O(ñ–$o[ôZß"ó{)ïg÷eLßÒòe-Ï–úÉè¿aþ¥{Wto½Èý‘[Ÿ›úöM¯Íô—†ÝOh¸†ø‚VÏ£ü…%¿—ùÄÑ_Vö($OVòé5ŸßõÔïâþ¤–k]¯„üʧúâho9'CQt:Ô4aãÑV,Žs×$O(Ó$óÁ:IòÁðá'†ˆ7ÇŒx2ÄůCòÁ£ùšáãávŒâ87M,Ó$ñÁ:EøÁ¬ñá'ƈ?‡ØBø2„-A¯CÚ<¾ÈaÉá87MO(¬ó„¤aBì1ÆLxsÌŒ'AL|:´<>·ãÚSþ2C¿VöK¿Vôcÿ÷q¿6÷”ÛŸ$ó”Ó"óÅߦòÏÓ¦øëw†_~÷Iˆ¿_ü[_ü[¿ßük¿ßüaÿŸþk¿·÷”÷Ÿ&û–÷"ûÅÿŸ¦ó×sŸ¦ñáw—†~÷iˆÿ_þ{¿_þ2Y¿^þk¿^ücßþEŸ<ö„Û¿,ò”Ó­"_ýýc*_<ýCŒ}CüäWÄøúÇ¿ÅûâÆ/AýêÆ+Á¯nüèï,þÍŸìD2&„4(E¡288Ž…DQ‰P¨UhJU¨‚*ñaˆ4(E±(BÑH«!Ž“‰b™"x¤¨SáJ8¢ñûAˆ-AˆXŒHAØ82Ž@H2(,dbÀb¡‹$‘Jƒ”4$´,h#ˆ&‚e"l"ÌlAh°ˆ/ÈBñê0ƒñâD«DM!*q„c¡‚7„‚‹dÁhx†4+œ¹FâˆqB‘ˆ'®g¨BK‚‚I„š\ˆHGBH¬HÄ‚BÁšƒ¹$ñàˆLb&8F$€B‚!Ä@V!Á"!,…ØC2AD,IÒA±HÈB†Ȉvr„(Y‚,HqŒ¸#B$"ȬD0&XEH8X&÷¿ÁE)ARRAB"!Ø¢\G"8AN$!OÂDŠCZ/B3ä†C˜4‚(iHŠrB˜%Z8¨e¨DÁib$²D) Ô‚äB‘"pDJ²!„ \"òÕ«`$…â!FÈA2*ªAALÁH@„Â(BN6ˆ$…‚¦„D…8†„Á‚RJ@¼D¢$bIf(H(h…‚„ŽˆKb,B†ŠQH„hHB†¡!OX1U1Jq!ÔBäQ "ô¸TÝAáb”AdH)è…sÃbˆb$Œö’%…b¹ŒxÄ"Iñ*GÁ$hB„*„ü#Š´´(b„ƒ©‚çKA&¡-’0‚y˜(G„."„ÀŒ‹H§A($H"K¯% ‚$ÌB%È@"DL!&„A( ’DD`C,„(AH (!¦HB ’„b‚Ä‚B,L*$&A$0HPB HˆÂ!ÆsˆdGðA…$DÄH/B‚HbB ¢$…Ô‚>ðò Z`Ò‰$ˆpˆ§"ŠbB$DHEÔ"“$‚ˆz„ò„††JœJH"8$‚°dBŒdB+DØÍ BIóHDÂDVèâ1ö*s„²$ò‡j#8ˆëIBÃgG!Ø$Þ˜H1B¤4×$+)Iñ–ˆG&šBhGFÌH(ž§†®ˆrƒø2A,Á-š”(3¬(c¼,"1„o„ñ"D&ˆrY¬âÌÁˆ¬OÔ\2‚ÀT)!,¨A02ÃÂ(0$‹Ž(0FˆAJ"‘JCã¡ZD˜I‚ˆÉbD"‚Í&ÂZR‚G!‚*4˜I(b‰"°4²„¤AACBh$b„&–H`!BÉøª´ÀD«BX‚VÄñDÁ#D+„&óB„‚ºDAbD BoCÜ‚üHZX!'É*4…&aA¦bH.š.T„)’t„F®iŠ”ˆ$‘‚…V.‚]%ƒ1„à,ÒJ‰G©Iä‚MAŠóˆ0DƒaÊxdÈAƒ‰(ˆ¢A@yB¤A’!E¤a&R”L!’D„M"‹BÁ…Å+Ô*!ØÒ"bL¤ˆ¸$ÄŒ$ ƒÃB„¨(aB# ¢H°!È"F…A¨L$Œ¤ƒ£ˆ4’+&Ô±ôö˜€OHÀI,âABÄHF‚’H!†ÉH`B„Hކ!ÄBâD„4ˆ(€‰4Á! "Ñ$#"ˆ„,ƒtA”„ˆƒ(|2uL"â2BBCáDé$¡AiáDÂI ²VH‹D,A(JR)›4H/–Lƒø‚¶”‚D,i‚YR„‰V„L "+Ä9-²"„Ä2Lˆš¢&<È(I„”£|‚‚4(‚˜‚D(­ X„H„¡ˆ-8I˜"ˆ'ÂH$)p¡¢pȤ†C€XBÀ&pˆŒ$„¡,B™`!#Ñ$‚T…ACøHH#„–=lJ2)„)$AC$A&À8-©‘˜tˆ]! Á©Åè5i„ÆQ‚/È‘I)7ˆ)‚Í"(KˆQŒ4&x%D°dBÀBH„':ôY"$C FB!ñR„.QƒR‚AHU…Y¤¡&"ñÄ‹&áL˜#(%‘€•(ŒMºH´B6 VóŒG#T”/D9…7H‰˜!-²s)’$#D:ò&D¥b"§!ˆ½qAhQJb5b.N(˜+"/B˜ãB¹™ý„H@ñ¾"Ãd…ž‡)•hRB£B¢˜%$! HI–JKh„"„ƒBRˆGÁBàB³†šeÄžŒ‚#Ûˆâ¢"Š—H'"J¡ì1ˆ…Ê$B?‹ÐH5#‰É‚â<òD8`"…jÒ£tHìxbñßCñz¿iþ¸ƒ·×ßÖö¡¹¿!ùì1_]ñ;_¡õŒõ#[_ñó™+—üý/BùS¢.Ñßßñk•¿±Ö=ñ!ßÒÝö‰¿³ùýßÝò»ß±ü‰9…ü‹sØÝúÏm߯ø–4có´Õ‡ÛÿVû_kŸûû^!ßVòDaŸ¸ø{»Ÿ&ê,â#ÇÒ*/¬ä¡õ.ÞïœDñ3__2ôM;ýY½KµõYÿ×ÿ—É;qñ¾¶ù6„?úõ9Wÿ–}ÿñ}ý¿QvmqEùßý¿RýŸkϯýÑ}Ø?¹õ¡Úß¿øöøÿÑþ–盦oAò’ŽŸsÿNHÿòxÍÿöLD_òîd?Yý/CO¯õÉoˆõƒ[Ÿ(÷Í3/L÷—QOëùs˜ocø–4/òý1ËïÇzûù|µ?d'å»þ8þ¤ÿê6Ï©ü’Ò¬ýÎ:o¹Ôòÿ1__uòWA¿µõK²¿Wõ?m›ù_¦O#û–4/[ú‹ïß:ø÷‰¯óTl.LÇ„O”øÍM¿{ߥü,/¿œüÚÛ±ýH?†ô®m?Éóú.O(ó6´/H÷ªß(óv¦ñaMÒrmùm‘ßÕþ+÷ß»Ôýú[ȯµüË5øWä/[õ›¸íâ)³6²¢ùŸ«÷v-¯ýqaBòÅDÏœö·þíúï»ÖôZØŒ½JùøIß¼'Ct:Ô46üŒsׄŽ2IòÅ:M8¬Aôáž'AÆLxs̤'CR~:ôÁ£ÁáãÁaÉñˆsÛŽ2A¬Ó„ñÁDîqtaŒxsÌŒ/CÈÁ§Cϼè>–/8wmø‚2K"?¬³¤òÃðã'F*xSŒx2´|:´</¼ÂF2-n/“ôkv¯ôkV¯‘÷orïÑ÷ïâÏ9õï¢O{õ®¢_½õç*O|ugîcì~÷aŒ/wþÓ¼/fþ’Õ¿fþ’É¿fü’ùÿ&þ–}ÿ&þ„÷ÿ¦ú„÷ï"úÕÿ¦úÄ÷w¦wcüèwŸÆøþç¿Ïñâæ/Sõïæ/ôëÆ/öïâo¶ë÷„Ó¿.ò¤Ó¯"úÅÛ?¦òÌÓ?äè~}GøäW„øúÅ?…éO¼þüÄ/üøÌ/þÜîkÑ^¢$D$Ä2Cáb,!†-AƒbŠ!„-‚'ŽŒB‚B,dbÀ‚%ˆòAˆ-A‰!Ð"8ކh(Ž"A¦l(aþa˜mA‹’a.˜a*Ñ"8Ž%'B@ØDR„&Ì9ÈgpD“”"ÉÁ"!)QD*ÂQ#’L%¼!DØ$thBhLÁBHlhQ©K”"yyH4"‡©IDì$S„+„>H–JᤨA¨MM¢ÐB†B;‚I”G†AbIØ‚ƒfÂ,A¨HÔñº¡`$6!BÒF8!")1$((BdRE(QX"HCB"4D‚ŒA…Ë$DO¨‰BN,G!)¨áB+„„²„’ÂDD")vD/…JèB⡘bA`!ˆxc‚rAxU ¤˜&8B!¨!!œ!*4A‹R…ÂÁ€aG#*H‚84"*\(N)«‚4(D„à(¡$ˆÐ‚3#"1”-Á4Œ¤ƒ)„]"ž!KL(¥d¨‚p‚bCßËX1­D‰¡„&&B)"G!O‚&É‚œCDB±"!èô$†±¨4°„!‘"0\IG‚Fˆ‚•¬,ªF‚x"‘Œò#˜"oAér”ˆCA(2JÂH‡cÄ¢O$úH"K‚˜*Ü‚ñD|$‚ †€Rˆ !"‰‚(Hp„‡,AˆT$B˜L@„T‘$&ƒ¢H&%„‚ 8 -AŠ™‚(a(ˆ„$CÁäÓÂX@.D.Š”(Ô‰4„‚8ªŒœ‚ "$Br+Q(‘(%‘H+(‚J ˆ-ÊÈ(D,„ˆƒBhÉ`(p¤‰4ˆHAJ‚ÌŠ‰XC"%¢àø¬RP„g…O"ÄH,‘B|d‡64Ö>¨)Ã$ÖèÂôDA+2Œ¦$IÒ†µødšMržB„N’FXÂF¸¤èÅâH"¨ˆ+Aƒb1¯Á´trxDAô–A„šׇŽBÈB#÷h.t‹AAO*Ã4¨I¨ƒ‹2C18Є’2J¢„Ÿ–!"Lä”>†FX /„²IúDL*h„̤"F(B…¡$¯D‹„ÁBˆ>H(ú(ˆ"‚Î8O%$BXL t„xH$c„@ø$Jñh„#ˆ’LŠ¢ ‰D4ˆV*ÈHP(¤×c$*ÖHA˜BB,ÑŒ±"ä‚Ü$á!¤k¦Õò´B‰"Œ44F6xŽ‚ƒ2Z8B¬”4G,G**1‚N˜"Æì&C”(Ì,rQÔ%¸xHR¨šæHÑ(æ„‘„8iCáŒq$ÂÜ"F¨B âèa†D$Š5RŠø˜A‰Òhˆ‰Ö(A"v©bA$hÍ¡-Ai2A…Î!.L¨ë„ „¡ò‚Lö¡ è$˜jš’DÃBXQ$…Êb!€¹B‹ô„R(ŠBÆ"kD)ÔBMA€ò‚"JÑ‚G¢…‰Èd²€BlFA(ÔH#8!Œ’!¢A$HƒAHˆ9$‚b”ˆ’e4$‚!(ˆBNA€„‚8F"H, &,"Òä1!T'„†1HN:&$4A¦Ä”'jHظø2EØ$â…á(ƒÔTAb¨(äˆ1"°Mœ1L¨!¨Ĉè--&ÄLŒIij‚†Ò!¤A(JA†x‚"‘AˆJx‚TBT"£a-D‰3B7Œ,´(ôc€"8€Rˆ<”."HBÀ„‚D0(!ÀdˆA.‚@$!L”!%D‚!!•!ÐA(*n2A< "¤Â ¨!‚RˆA.VSAhG#!'lƒ’ˆb$6DH(xÔ’±ˆ4–ää²BR(F,8„Œ²$GBAD¢†ÄAcÓt HDä(ÁÅ‚Ed*D_h‘¤!("„H„"Џ"8ˆ+ˆÞ[Є5A„˜F¢Ct94„wBJgCL1ƒN$,ZÁ%:A‚1Udˆ¤B’­$cDTˆ¨STAN‚3„1fDAB–ÒB@Ä!Aˆ*Ø$Ä%…DJ¡À©“PXLÒˆa(˱‚I¨ˆ,èÈAREj1DQ&„´! )€˜ˆIxDè(“$Ć&xE$a„„BS !I’¢@˜ †DD(F1B‚!HW%¨xŒ±ô’RàA"ÄŒ„šD!H†!ƒ¡ABF1BN!O4Iæ!±D!˜„Øè"Ô(±bH¡‚%„y$EÑL‚"¬ˆ#ˆò‚‚$;3BCˆ„+Cð"C"D$x$¨P!„D^qCAFHDGB@4ˆ@ DB!"@%„‚„P¤Pˆ0(B‚À(*b‚ï @@‚P‚(DPB HMA„DRˆPˆPˆPˆPˆH†Qˆ@ B.¬<øXJZXN%õ'Ï©ÑHñ…"AáHêó‘ª:µ1tŒÄDKØOŠ¥\¡Ñø"(õ’‘LôF…òL(ŽM„M"„3*AL¬4Á#ódDEIBx’Bè(Ò„œ^4,è"h‚‘N$&€bŠB§Ã©ˆ™x‹iW·`A.MNN18‚"EHdTD(ÅÁ$ISA<òTެH2Q!,¸B$ €H´„ô¶Í1-tLÔH†RDE‘!M„N„3´AÈAMS2AETÔCú‚-!0"*‚„Ô%:DDÍ’à$AÆá3ÕRdƒöBdCµHaDM‚Ý$ê!ÁÆNTGä,ÄLa†7AG”:|$%1˜ŠåDòÌ1ISÔŽƒMeŽ*D–RG$KH„E¸Áhˆ«É'Ò©È(­ÃœôŠƒ-ÊÇ(Œù„Ê"KBOΑ%4AFë⚸Ò„º„¦‚ÙÌù+!Žˆ.Ü4Ot×BsEÌ[´ü8ßGÖ¨éµôïø«!Ž”,ñ²•/U¶ÉòBG¤ÏR”+„ü6?ôÔ7/ûHŽÛOµñšèßÇòˆÚÏ<ô'‰¯ÚDÊ‚×ýÆ5Ý$J_dqlñN$DOåùê^¯ÏùÖïüšYï´xŠø/äž¾Ïöñí–/QáèÈ2Oúÿ~-רýB?7á´ò)!á?3ñåŸoGòšDHå¨5Ô¯ˆý.DÛ:Ñœör~ß!áñI¯æÑõ÷ÌwOÖ}ÕÜFûÒ.ORýÙ-oÁÿ&ßçu7õdÈ‹$ßHõw‹ÚñÜhoë÷Ê÷‰¯îÕµûH?Ï‹ýY¸-¤dø$ÕÏQ²ÞûZvßbq6ýh„ÛaŸÊy7÷üO$ó¨îõè8ùRQëÞv¬ÿtÁMm„WlOSþý?OÆøjzqRn!¿”ö‰µøõ8ÏÆûŽhï¨ñˆ'¯‹÷Þïž çô,O5s_ùKBO6õ.µû¡oaúqš/Cºû¦_¥ü7U¯“ô=ø¿t%áVö¯8?Mý#J{õÄ3ÿ˜õËÞûÛx?!ûIkº/Có‚ã¨ucqnõyíÿÁ´atdõmøßiô3Ô_>õT³<ôÒ/¹õX“oúþ;̯ãùIŠoa¹ú2¾ßâÿI/õóKïïSvd|mýÌ6™ô¶zÏ,}Z¼ÎÝŠå®õï+oy)Ýcò1GŸuÖ’ô1tA÷2Y?Žó‡4?iò´/Kó†u/îò½7—/wóY$ßFviù$Í›¥ÿãÿµKÏôûRÉ-Ê1üÃoÓý/,Hÿv®Gk+±k)/¢ö½Ö?—ñj2ÛeŸRrmýè¥uÿŠÿ1GÙúJY¯‰ýA?~øn[}ÿªñÝG)Šñ¦w‹ö»HWrhüeeÏÂvlýeäÏWßÃý2îOc¸ÂÕªýšB¹zÿ„*ð2D­A¯CÒ´ÄaãÑö„RO¸wâ(³„ñÅ:GŒ¬á„ñá'„†NŒ?ÇèÅø2„¯Qü:¤ï¼Ô¾Øô˜s‘O)3„­“¬îQ‚ÆÌøsŒø2-ůCѼÁáëì9wÍø”2K(_­3„­aBï“"ƈ?ljø2*ü”I¼ˆ¼èQ6‡=5¯“ôo%¯µõk¯±÷o1ou÷k+O8ÿ9.Oyÿ(&¼ÿa*ùaú«†ßú÷aˆ?Û~sú£å¯“ôëõ¯‘ôë…¯™÷ï±o÷k»o<ÿy²o8ÿ82¼ÿqªÿ¼qúÿ‡_þ÷aˆ¿ßóú÷õ/ôùý/ôùÝ/öýùoYöyûOxý[:O8ý:2_¼ýs:ß~ý[þ÷[,Oþ÷I¬oÿ}[øòÖ/‰ôúö/ôêÖ/÷ÎòoÁô¨“1A(SäBqQˆ9ˆÄÈA„<ŽSà!¡8SdJ„Š9Eˆ„ÈA‰x8Ž`‚1ŠgJ1ŠƒXƒ„Ø´(X*B‘(-£á(h($†Bä(äjˆ;–=DH¤-HA6x„¡!)1„ŽDŒi&GB$0H(K„‡%ô¨Ð8…h…‘ˆ+(‹Aˆ)²²’T$™ò$Hr!a„N²‚ UžBŠT4BŠBŠqDáHÁZ‚[B`DˆòÄ),‚#¡x/çêX„Fâ²HQ‚6˜”A)ã…Øa"TBHÍÁ*U´*Œñ!Dhðˆƒ(N8iˆbH%´)Á,ДAŽ:"X!JÁB‚GÀC) L‰äÈLˆ,á„”‚•’ɤ„)(ñ"ßX5|H'Œ4$¡¤’G$.ˆ(O(.Žð•(ƒ¢D„¸£ô„!£ƒX$Ò%!¼k|<‚˜&:X$Fq" މÐQú(BH(½Ñ€4’BA„!ÂdŒÒa8A¤h…!’H%¶(A†i¤J+AïíAbˆ(F‰"Î"M"š’H$–¤4•L(†„"•Ær(dO„Z„ˆD°$!$QHƒ2DjX…¤‰¡…¢¨‡„LáHC8¢‚M’ R(‹8G„„*,£B£´ˆ¨#ÓÙ8µ.H“RÔh²xô!,hdL£Ž6<òL†³èU”‰Â(‰’8k$ŒNÊA%¡F³8EOâì‚Ø$ØDãB8"DñˆR0d*$šFEB¸Yê‰1‚'+Ža‚(ŒHdc°Az„¢<‹ƒvdƒ6b^B¨KM¡(ô:$¢`…,DHdE¨²ƒ!ä„(A$N(Kˆ„q¤Ø„˜¨€„Ô¨‘pA¨ƒ"ŽAG„L\"á"(A,1!H†™„Ђ¢¥ˆ‚h9ýŒDDø1‰b)_‘H2ŒB¤$*¡HD(‰¸!B*/‘H’ )¡„Ž(ÀQ*ˆ‚‰ªàE„x‚GH‡HÀ M†F–ˆ(!"‘ˆ"ðGr 3Zf¤$,ÔˆÆN(è/„8flùbA/DaˆldÄC¨#tbt:ôL8DN¸˜ºDóA†´ÄS$†²$álÑ$ùHK*ᦌtAX$Jq‚´4j-)œ(«8D1(ƒ™š‚¹'œhÂCô¢HRF¤¢K$‹,FÈh#‰œH)¥)ì8Ì€qBŒá„„(‹AË‚!8Ed!„K‹HL”(ÌD#sˆ2ă˜f8J’pÄ‚!$ÁJžLhJ¤‚’Dè8BÈJ¤IÈàB ¸àD˜H€¢„:dˆ‰¤ è!”(O§‹ƒ4$‡40Z'„K’vÊ¡À’O"41E‚4&N$€–bƒØ$´¨‘D”J˜1Ž„/B*˜–L³BJÒ„ƒu‚¬BB„IÔ!‘†N(ŽBˆ¡J±|&È4Î(ˆI¡(qLœhp‚dD‰dB+h„(‹H,h…‚J‚ÈÈÃC"$BN$ŽJ( ‚+)AƒSBŽ(LC2(DBŽ$+B†ŠÁBà%" ",ø"„(DD‚0D‚ÂK!+X¢„0ˆEB$1¤È‹„”$ƒÄD$‚THR‚°aH?¦€b!$R(AJ˜"A*1…€Â!B„"†’A,H$Ä Ö°‚D•A*4€ A0A*%BÂDB&J!ÈhCK!ðR$hœ"$²¤ƒR% Â"2($œ¢hHX‚‰Èˆ4A’‚,aH&ˆ(ÂAD‹D dAÀ„J‘JÜ$hÈÀ$#8Ê䡉ÈDHMIL5‚$HŒ¡D˜ˆ-Œ°y0Ab—$#)QAðBà*äZœBÅHDMH&%”&Q!#‘aÐ!&¡¡`1A4!TEÈ!M‰Ž‚A!›ˆ!™1.(%TPRàB`hƒI*!Á´qXB‰¤AŠ"H±ˆ‚,"ˆ"8ACIJDÑLÄ"A§%bt$GLÉ‘"m6Cè$”DF2FHA^Â@‘Œ!4¥#ÁG…‚RD,qD„2’N " !DLˆ O\G¤P!„BŒ!²B˜D"YˆÈ!ADb†¨BAbˆ%2!Žˆ%Ò\JP""/ACD$OV¢K#1Áª„O„(TA-ˆ#ÁDE‚äHBhLÆ$Ì3*!"(!$H@²Dx%nDAETÁ"OHÂH¥Beá$ˆ!-„$D`xPBÈD,TGB®Ä„e”AD!O! „µ‚D‚(†Ô!„XBJˆ4&°*¤A)x!‰`†`d„!QPDPH­aŠDQA4K‘‚h€$d!ˆ`DX(Ï…!+ƒ$&2A¦TAJÄDH‹"…AHÐ!‘Eb(N$@äŽ3ù„!‹AAI€Œa""$b…2H‹!(8!ŽC"G6„"(€@T#B" b„(¿NA€Q!"@D#!",À`‚22 ((A€G‚!!2"€ „’((€ÀÁóV!‡CIÆ!ka-R†’(]RMXIq„h„ÔaqD„B8aIø¤ANa,âtbECœ"¡oHÑD䍯,S’EOBäátÖr„Á|ÒTbLSD^,p”Ú…UA &/E¨E°(ˆšƒòãiðL8UrAR!NŒHŒ8E±$˜fOBød«ÁLT2ÅeHA‚1!J¨Šu'¢'ÈGC%8"ø‚ÃñF!É¢X%†æÒÈó…;;;„M˜Ã)ø„Lˆˆ´$è"—Èžs`‰$È"Í_´ód_¯ôZ´á´õaï‡øsÌ¿+ó„²oCø6¤/)óÅûÿYöšrŸ„òEmŸRthõiŒÏõ¡[®ßÏü˜?˜õŸï1þxˆ?ãø¹2޶>„o#¨?¼û_¥ï}sküe)ŸòLe¿Æø³.?üóäϯüXùÂÛïq÷xˆ?ãüù2Oiº&ø"’ojò×ýŸyöšw·ÖOÆÖ]Ömöl‰ïóÆ:îÞëÁ¯­ñÂÎÚ¯þªÔp2ÄA§CMA£Ñ6-aÅâ8WO(S$¬ó$"¬Aöáž#qaìBúsL/Bú2D.å¯CÔ¼ÄáëAü„sÕè(ôÁ:G$¬!ôá%taìDxsÌ„'C\ü:4MÁ«áë™-aÁŽsׄŽ2A­ôÅî9ƈ7Lj'CȯC’Ä£>3¼=ýïsô{}ï1ô{]¯ö}ïöÿÏ8ÿù:o8ÿ˜2_üýù:_üýùþyøå?Ÿ„ø³ý¿…ø³½¯1üù½¯üù¯þý¹ïQþù9ï8ÿ¹8ox¿¸óÇÿŸó…ÿŸñ§ÿŸ‡ô¡Ÿ†ø³ý¿§ü±ý¯3üéý¯1ýiݯ1öíùïQ÷é{Ïxÿû:Oxÿº"_üÿû*_½ëüåÿ·ÆOþ÷iŒoÿÿ{ˆ/ï¿:üúþ«Á¯ï½þþúïQþôeB„H!B¸â8¡$´A3„2G&4C„ÈAÀAÀÁ#á88Q.Š1„-A%Ð8Ž@BDBÄ"A&ü%ÁKXœrDB¨%8¤–D¬8‚8“¼="—DpI§LÈR&„DèD¨AeèHdˆà"±‰—D"…!4I"‡FôÔP’N’ŒŒG© !ðŒbAÆ:D‰F‘F*1‚O‚=X)ÈØ÷ëã$à1A$F‚‘`A#ˆ¢©('TŠa1F„I”ƒDN2AB0QXaD 8!&!lQB¤‚HDb”‚#Ä"À$Bˆ!L‚èB’Ä Ä$HB,¦Ò$`,È-˜óŨj8ÐB,áH¢Èˆ/–(„4$¨ÂI‚,ÈJ"­”*!(|"LŠÔÁ7‚€¢D"I„ˆ$’H¬¨$‹L&( (@¤Ÿ$$ˆ2D*$2Lb(‚¯$BñEx€46(„)‘2 ð4‚„jÂD „"„D(¢A AƒÂ4C´H”ˆD($ŒD‹JM8¬Ž!1Xt†ˆ¥‚L¡‚^*\"„a„Df1L%Ȭ`0+$Ϩ5è9¡I"±‚²(QB/Š4"I¤XŽ®AKq¦˜"(ICù„(((KJLèÄ‘"¾LŽ$ÔB¢HL‚±FHI"$²Äì&y(R(¼¸æ‰ô"NˆŒ D"›„'¦£FÀhE4!ËD'‚Iª‚’‚$J2hÿÒ .(H (ƒ8„0AI$„(€ ‚ &4H (ÑÁBÂ(ˆH„È€%… L"D(DI„‚dX!£á=¢Œ¥ˆ,ìâxR‚²¤‘H#ÃÂH§A(iáˆt$DÈ*‰ÈB Rl¨`‰ô°,a„N‰+†H„-2IÉj‰ˆE|8@ÈMŽH€IÀHC¢U`VL&”E"†*•HI²Ñ´äÃ$†²¦ˆj¸H¡B dE.ÔHN¤J h‚N!ÃäÈ4 Š)‘„#fHf„8d°¤¡–hHŽB$ô¤2©lÂ+XÉâ$+,‹¡^‚Á§>$̨$ÒB‰ž¢)H²HÒh54D‰$2XbGˆ(bI!˜d"ŒeJ‰Œ"O”$ˆƒ”D@(5Š‘D€‚K%ŒA¬”À(@¤C!Œ¨¤ƒaˆ(-È„A(€ŒMˆ"Ä(”2Hˆ è…Ä‚Hòk:$TZ6Hà$+Mñ()È4)HÄŠ.TƒúBD ´Fj, Ï‚ Ïx(bKFx¤"ŽpФBK/F„„²ThBÆÑ,á8B£¬ƒFÖ$ªƒ˜&¦HúH„)áÄ‹BÈ­†â„3Ä$NŒNÏqpH"!¤àDÂ""(Ê„BS2HL(ô$‹ÂÀX†!h"R¦"„ˆÉ"H"éD0H†"„2‚FH¢H!Š‚„“„¢Àˆ$F8HLD„b„HK¡"ƒA!¤)Lä„ B¤HBAŠ‚)E! B$ €´(A‚ (PA*($!ˆ€’‚"Cˆ€&$‚2Bˆ$‰Ò„9ö a‰$!$`D€ˆ¢!K$ˆF(bbG„‚Á.„hƒ"±‚ÁA)"¢d‰h$ˆ (#‚Ô‚Dà„òB ‚Ð(!ÁÈ"*$‚ª¡àB9HðBˆ„"”(j!¬(`žJ(HoXKEi™VAÐ!@1Q@qAh0%I‘ˆ#"¡"àÐRAA$˜&HA™XE8ƒ$!ERL0C`T„$@vJ¢A.±£Ì!T«A,tÃ"ÂA‰¢x0$@" BHT‰ØR˜‚‡Š‘D…"8$  b@4"(­".A‰HÒ8„Â"ŽA…Ib!AM‚AEÆAÉTA(ˆ…ïU(„á„S$f(A!"@#HM"P…A@(¶AA(¢´8¡‘+áB‚A ,ôE¢9¨•$ì2Të‚D+’KA(CXAYQAIÂ(@‚.ÓÓA‚ô"R"‚@bDÅôA,L!2R„"]Œ#1%*”„H A!ŽFŠA¨ Qˆ„äEЍA0°B2†„¢LI¡`H"5(B¨‚)äF*´2)RD¿µN8"Vb F„AôrâcW"‚‰‚¤´XB‚qA(*XBˆ(À!)Ü@T‚£$H"Ѝ„¢ADˆLeCÐHVHÈ$,±ˆa$GŠA"ˆÄì’„$€ÃAIa†"!(Ñ…„€%$"P!]FD‚P!„D@Q(€$XBB8A©¸V,dˆˆ"ˆÀÁ‚D‚L!Hd(¢`h@h‰ A !„‚!A@ƒ( ¤`D¼>%"RJƒQFÓ$‘šöYÓD±aÄ?¤¢?%@xD·D½ÑþÑt‚÷L!Š2ª~8,Q!À„BˆáFhab†ó˜bŽCŽ$‡XDÂäq,!"¢ÄzøDE”ÊH(D/DøÆ¶ׄS!Òƒ!ñ!ˆÄ<=J.„"<3ˆ#HROÒ©ò…2C(h*Ša#«XÁ)IÔC¹ˆáØ›ØAIDQ$zX(x•xÂ"U¡Tá5XB'A.Åq"ÄD/QÑHfL ™äDÒ¨ƒB ކ*ÂÏCrÂr-C‹qé‘b«A(Ir’†bh?!ñ”Eb‚Vx¡Hô!ˆ>X'AHQ‰”HH‹A†¡Bƒ""tDd‚6x!hHF^â?1Ò62%18)¨!¯(êI×…b(dC¨)ŠbD†^ÆôGAEYÆ)ˆ|´x!‚¸òúw$Ÿ$ó(]=R%zOÒ÷„FûIEë8M’oBú|¿Móˆ&­ÉÞ6*Öþ–—fôÍ&¯‰ö$ÍW,¯ˆåÒþ¶;§¿Rt¸÷$‚¢?†µÏò(´±ä?qa´^ò,éî±dß.rŒø¦O;[„¯ˆò$Ék¿Cñ}%yÓBø24ÈuÙò,¶íM/:rDUß–¶ÒÛWýHÏ«ô$Ê)µDõØênÊ/":¶"ÿmü3wm-¿$ñ#CoáׂùYµÍÒdó”/qþÓß|òRa®š£òIÁnAOÌý~‚ßJñÝ4q÷ÚŽ“ý#wMîÌ¿Qùø+¦ËÑŠrKõBçOéq>tiáö¤ºïcùÉ"¿/õw/¨å¨ú[B?x&Μÿ^tÎþ„4OÁØV÷÷ß~ñÔgMŽïTòLåôÅÏÿQûO&ÇnOC߄٢üÈB^5_Â}BDói¢µ[ñM[œõcZó÷?koºýâ§}œk#/Jø²º/³õâ‰÷nÿWÿmOÒ²Mþ/%ïý¦Ï_çöÙÿ™ü‚˦uÉò¿y/Ûþ¤ãÅx"ö†´oêÝôÿvÿOòmeï‘ôdMŸDø_cϸþ†í=î—dÿ¹Õ’ü£j¿dúÙO»ö’µ7‚okã+ù¶Œo“fýû.¿nø.iÌòMuËCß»îéÿFܯ$ñÜÊš-¸¯l÷œ½òü×–ôu,¿%Õ¹ôY¿&õíK/êù:¶ob9¢ojÝSÿ¶O¿Nù'ïÕö$MßDöIáÝò²û>˨ûL¿½í±}±¾ûtßýÖ˜Ïeëcø²$oIù'ãO±=ï·wÏ”ö$)×DŸtùþ[Oºý&݇›]¿œÝ²ôÁŽÿeö‰kOéúZ´k‹'jO*õ3ñoøÿy‚ßfüjIOÂöHaß\rïûuþ-ø/êùÜB©Ù‚Ùâùœfïu 'Cö:o´Áaë–ŽsÕè(ôÅ:A¬îQBƈ?Ç„x2ä|:Ô<>maÁŽsצO(³$òÅ:G"_¬Aöá#qaŒxs̤'C~:Ô¼šÈáë‰MaÁŽsÕè(“­“­îraÌ„?Ç„x2ÄħCI<èëANV#ÕÑ÷gŸÖ÷AŸÖõsßÖ÷sßþöŽóŸŽò†÷‹*_¼ÿé(_¼ÿiŒ_þiüá?Ÿ†ø³í¿§ü£í¯3üëí¯1ýëͯ1ÿïùïÿïiïxýý*O:ý¼"½ýí*_¾}íþñÿ—Æ_þ÷iŒßÿ[¬ÞÿåßÞÿCŸÞýcßžÿaŸ¾÷Œó¿¯ó„ó¯+òÅû¿¯òÅû·_þkøä?Ÿ†ø²ÿ¿‡ø¶þ«Ã¯ï¿üúÞ«áï¯ûä¯úO±8Q.ñAÔ(Q,Iá(Á#á8aATAPA(Q&4qaÈAƒB¡À#á8‘"9(Q¦#q„oxÐ8ŽB,$À"A&&Ôñ?+E(„IE8FÈ"G„rD<’(-D‰’ƒxRTHhDä&¡B%ˆdØ%ø„B¤ŠBH‚Â…ò4Â8!ƒnˆCá ,Dé(D™‚ÂĈC¤8ÇBбHƒ6„Bµ‚Ña´©ŽÀX†ô–— ˆ¦À$$I¡‚#`bO"!¤aDBÔ4ê‚…8BŠT$0¢$À²I(€Š3D‘Â*Bâ;!ABAN”*‚aHB*$2V&ÅJ"Dà4ØÝ9Mpà CÅ&„D±$ *(A„2(LÔ)ˆ!‹dG("ˆ¤N(AðbÁ "‚%8¢HŽ$Ê”‰‘FH*h( ˜Dh(fD8A $fhaˆÐ( i¿µ „HŒ…á"¤B5"‚Í!)H@T$$Ø¡aH"@2B@ $†R¢@D!!@@RhA"„ÄH%”H‰¸^FZ¡p!B!(˜"`¤ Ubˆ4ÁÁ¤€LQBÅ I"ÌœHœ1Þ aHÈAi²’‚‚³â¤DÒ²bFBJFDô7ˆD”†‰D‘2/AC8,Âd©t¤DHZÈF„´C(²h¨ˆO‘Q$K! (Iòˆx¡!…9R!v„dÒ>ˆ"#’ˆˆ&?7AÓ¥U¡8á‚qAøSŒN„!ˆ*$xŠñšD%`1TÀcŸ¨3A„F¨Jˆ¾„ÜÃIx"$ñHGB¯’J2NÎ!¥qHóDÔ¡%d(?Lá(qx<2)¨*‘Â&ÔRÒqH±D"8QŠ%Ô¤±„á,1D,å¨ä„ÅG³Åhp:ÄA¡kA£A<È‚ÉJŽ’¤Ž¦è‚ŒJønF1B!#¤„|£gG‰ŽI¡(OIacp!ŠäÂéB¡¯AȧAR(‰j(†\1C4„I¥hX'J&ØñDjÒ)˜BH…«!Y¤¡ˆ­°IÒèÇO31Q:OóöÄ7EŸVñˆ²)9’†ýI2«¨¯ÑtÒwa²HòHÍ/S¹s´ióˆ~î‹94E¨ä¾ºüŸRóœ¦i{ôa8ßiŸúï‘üÒb´LÒœüR?BõY4ÏéöÄR7%¯¨õ¶«}²9ñ9%i’¶!Îñ‰fÏ$Û¾uÂãRôM!ÝÉ?ù#UË4Ï©ÒäÜB¥©üdêml³Ô#ò]6eOô*Ÿ$õ!AM,/ú{ů¬ƒ‚ò²Á?¨óI±Îeo£¹<øiÁeOì½nø›RŸióEeMˆ/¬t‰òaq¸/Äû;…§©LóU”/S|—þIuOþ¶JÏCøiA/òäÚïCøëVŸiòeuO¡é¬÷?vÓ¦ÛÆy«õŠŠòœ/Sô“:Ÿ=ö”#o§}>õhA=!_¾ô?•¿&øÈbOCÏØ-ʇ(~4MøûIók…ô{"Ý[[?ôß¶÷„û/Qûˆ/+ò/‰ÿÉ/¶ùi’ß6öI.I›fßRóÈ{þ‹ÆûË&׼΋?„xËòù+ž¯-±?‡ù¶"Okúè/“}òû¹Fß;ÿIOÒô)Dß÷œ[ùË$Ÿ¼ñ™之ñ©?¾/oûf/jãjú–èmM¾O¿jµ­Þœô$LŸR´¼öËOãý"ܯdóœÊ^š/„ùÊR{=âü÷iãñYRŸ´ôI7¥Ÿ'õ­{޾«¦+“/*Ë2?ö²Y¿oñé%•æ’²iôiÁ¯¼ãºý2Ùèô‰BŸ¸Ü’ü£ZŸ+õ©+O雪/Cù–2O)ûC¡oÖùÿFŸSóL)O–rmôiµï½óäï/Óü“xß)õ‰ËÙ7ªßKñ‹/O©ú¤/Kø’6O)ógµ/ÿùi†¿Gû\)O†rlõi$ï¼òõúoÂýº-ô˜Ú-Ø/¢ù¼GÏ¿'Ct:Ô46ì8WŽ2A¬³„øÁˆîraŒøsLˆ/CÄÁ¯CÖ¼ÄáëA–ŽsŽ2IñÁ:K¬!ôáž!ƈ7ÇZø2Dü>$OüBáç!aÁŽsÕè(ôÑ:A­?ï9BÖˆ7׈'CȯC’Ä«AèãA=~=ÿïQö{ïô{_¯öïöÿÏ8ÿû:O8ÿº2_¼ÿ{:_¼ÿ{š_þ{øá?Ÿ†ø·ÿ¿‡ø³¿¯üﯯüë¯þï»ïÿë+Ïxÿ«*Oxÿª"_¼ÿû*_¸ûþ±ÿÿÇô¡߯ü³ïÿÇø£¯ïýë¿ïü韯þí¿ïþ­?Ï8ÿ¿>O8ÿ¾&_½ÿÿn_¹ÿÿLûìú÷mÌ/ûÿÌ/ëÿ>įï¿üúž«áïïû^áO¦M“!$,eb$1sAØ”ˆ%Xиè8!ÄCD2A,2E&6A,1„/øAðAмø„SÐ44A$Ô$3E.LCsAüA…ôADOmÁ#ñ„RÐ$EM"CdbB>Ü‘‚°’LÅ‚*á(è HI‚Ä$B(Ä$È(Œ‚ÕhCBª”„K,)"84Š„âLL¤C:H‚#³Axž‘$˜(M"I)Ä8`BÄ"'ŠY8A2ƒ<Š„òAÏN@!)#!äA¤(°’J‚¢HBA‚I$ðD€d¡ 4Šñ$I¤"†d(2ˆ6$$(´$ÂDN¡H"J˜!Ö•"Ø¡DG&‚‰Fa‚D&ø„# †€2 H"db¸èDˆ!¢à"à(D¡,M"F£‚-„Hˆ(,¢#ªF"r!VOÂ!N%(D’L›H$˜D¦Q$ Ä!BN"œ8l€t„HD0$( ""0A„"H@„œ‚+"+.A@$‚(0BPR&‘HDˆ)’ˆ€¢H‚"…D¢(b"Î"BhB`F(ˆ€”B!€ò]’ E"a&  "‘#!HDHa‚HA  J(ÀÁL"ÂC‚Œ0%$fH!"Hd¦†Ä „  4(FCH Hèú$€$EQ„D€%T$$QDD€D!#’HT$@H$€„) ©øl½$!DD‚‚E"d(%ÕB4AA$HJ "RJ!‚€†Z¡ü=äB¤AMIQI‚¢(,$t„¤ŒŠB„1B)ØB´XH.!I8‚2$2Äk(3,„B…rB D9(’Lƒ’Æg"Š$‚bf*è¢*ìDhfÄJHlB-¬'€˜Bˆò[Ý$]"AÑ!RVrC4B'B(®aŽA'(CX(K¢S2D΂BÐC2A)˜" ÁÒA°"¶„a*Er„cŠEa(†åb’FDQB‹ˆ"DIÛ$2!BHd*†RÄ‚FfˆŽ$n¬s—A’H/„r±„A1„O84¤¢ELèb¢$DJ:A'DÂ>!*ˆ$B‘‚/3´¤d(K"KROb(A8DL“¢7nBNA‰¶(„”J)¨("A¦“Œ$¬ˆâˆJbâBŒH™”H©Š’ˆ„{'M2oS´ƒ5CRO–w3þá‡K1#ø¡ædO.Úôâ!FK!MÁþ3?L¹wúbmE;˜?%è!Ö6ô§;<^Ëk#+NýQ&k"Oý#Fõ5!]Á?òã•_”Z$_rô‹”Ø1ô…ãÿzKqaåhú"¤gH_Ò~Eÿ§¥}A¿*rIÿa%]A¿zKmÆOhÌÆ¥xAè(äbü.¡c‘$öu°sQò!uiò¶?Wå%h(WN/XváòA¡OÔ&ÚFøa¡/ô„2gK;5$ÛU®H/!óA’rü†boKòSE/'¨9GN/Q¶3{ÃóÄAO+ûf…N¡?ô…3wX?7òaË]íŸÔ3òA‹ÚÞü/…?\öc¢†t!ü†á·þ_ÔúíAý§fõA)¿ô§?FøB®ÆÞ„”Ì-‚ÆêÒ¼-ø‡54orý£t?dóES-C;U;vïsý¶wLކ&ö¦‚oRübçdúEaoôD%LòÅñO1þ–w?Lýs¦_1ü’S,½sø1Ççoqöô²–>†k[oX÷âµ7g$úa_DâT²Åÿ$Ó_xöŠì?ôÊÊŸ8ôÊL?´âjô©GkŠ„ú"†GjoBø#ÁïfúI¯N¯ýaÏDöI-ÔòãÆïÄüÆ*O¨Ü(üJè'¤î^SÎAoS4S?%ôQ/t#òwFqþ¤OMñ’–/aú„b_Xö‚'n^oô$aWFvO7ý$ÑoY¶³ùCÒý’C)ûEô?vÿ„oMó‚´/aû„2{æyüQ–?fþfAOtdtaõVÂ_3þ¯E¿¾øAÊNË»H¯ºòÅN|ö…¢k.'H-&O(þ‚i¿HvîÿáLßt-thýáMÿ.ô¬Æ­ÄíŽÎJÎÊ©üŠ®îN_¥'CA'Co46-aMŽsSä(ôÁ2K¨,¡Šn12F*xs¤ƒ'C>Á'Co<ácá–4Žs[Ž2IòÁ2IñÁ*ñã–#sa…xs¥ƒ'C|:Ô<¾ÂaÁŽcß„â(r„ôÁ*GH¬†tá^BÆ*xcÌ„'BȧBIŠεØS÷6G?V÷A?VõsV÷q~÷„Ó_ló–ÓOjòçÓ_fòÇÓWd?~Eôáw_DøóåeøóåoqüóåoüóÅ/1þõçoüõwO8ýç6O:ý¦6_=ýç6_>ýÇ~Gä~÷E¤/þW„/nþå¿îþÁ¿îüáÿîþÁÿîö¤Ãÿnò„ïbòåË¿æòäË¿äâþþK,îoŸÄøæï¿Äúâî©üêÎéüêΩþîêïBülæ˜IåBÁDDäBHáBZ(M+¡O8R‘$Q&aB1&saÔdB%áBR(m+¡O(R$ŒR$„M"Ehb„&bB%øaŒ-A‹‚!‹¢!‰’‚©b(‰BRˆ$„,R„&Fø!N“ÆA8!B$X4N$bF‚&f(&„ä(5„)"D±DH±d(„B)Ì&ˆ/D"È$¢DBŽ"Bâ°!œF„ HŒ„Èl)Ä.‚&'JJhBJh®ÐÊD‚H¤`ªoF /Mh „„1$…F4¢(ŽÆ)4Š‚MAŠFÁ„K$H"ôD"‚#bLI àH¨$9H ‚²!DŒ„$H8AI¶‚RˆN†A"#J,4!"…(„„šJ(…èH H-HÐÚQ:d(b,!‚.ˆ(‚(B*"A°BˆòÁH†¢a%&ä¬HÐ (C2A`z¨†">€:‰I"†iŒR€…ÁˆŠ†ˆÆ"!/qF2â!ÂB#„QPnˆ"(dHF‘0!BI(R!2‚,„ $A&†.$Ê‘$F¤RH!ˆ"H!(ˆhA¤æFCB™’DBA¤"ÄÈ!#Úq?MJ•"°BAá!„‘!"®`JH‚°4B(I8ÂÅ$ˆB,¡(T#zˆ1"M„”k$K&„2$0¥#‹Â’‚H)¦) ‚™’$EBÄ*JØ’&QƒrHT¢„+lpÂ⤈´‚ônå$ŠB$$@1BL(!( ÄA(H@"‘„R$˜@&D ! Š4AŠH!(LŠ (ÈD Hð!os™Â B"ð¤B`H¦€n(ÈÆŽBEô‚BˆPD"pa„RE`È&„ˆ€ä"¡Hà(fB¤((DP„ˆ”ÈH°AP"†B&dˆ ¡ϩA1*¢S1B$!”$ØBáA˜b4JR.$ctDbSB!üB!„!†"ôB#èB¢ˆ!n$)¦¬DLRf(+ACÌBb‹„djbª4K¢(#H¡‚itŠ$êB‚tH¬âŠ4D(2Ì,,4ˆÄ›¢D$ND†bd(€r„¢dD"¤D!(MBH%bF$/( ‚J"JH„’!C$qÄH‚`D"‚Œ‚‚4B(A,XD‚D8„(CdH€hL!ËH€ƒ¡(F¢!#$¨$A+Ž2J(rA2$B@ô„Bâ(hDÈ#ÅÄ,.&A΂àf¤,°DB!d*K%†2B‚“„èät¨‚"(¢„‚h…"h‰ÈÊB#¤ˆ£¨$ŽÔc…¨HB€D¤8D¨%J2HI’A" Â0†F‘D^¤`$(A@"ÂAŠ#(F¤(bp$<Á@"Ä-ŒI¤¤"L(HD¤„b0èY1BH€tùŽRƒ%ÁBDJ(Á„"D1DH"$ˆN‚)"ÀAIˆ!Â#0A ¦¡„€aˆˆ"D„# &…,$ø³8N+#¬D#’D¤„è!”$I‚4GTJ„„ +‚aF„´E¢‡ALF‚IÃ!C$¨„‚B@* AbAŠ.˜A†Œ(IRD äHÛH,!䄜B)HñõÕ €!Aˆ ´D(„ ((D*€"d ˆ¡B€È"€"A4AL 28I#(„Á¨ ‹ˆ!(L$&„ƒŒ5Ÿ dABbJ(A¢(‚(H0"ˆ&ÄA@ˆHD„()”aˆ I$Š‚"D&`D€DÀHÀH(‘† ‚ L&D†ÄÈÈD‰ HÉ‚ô$¶F" Hˆ¡†C$°T¢($CBC$D*„¡ˆX1I A$0Ä"B†H’„ƒ†hŒˆ€$’¢QŠD€]ˆB¢à81ÅC%E$4T‚Eh’A$¢!,’€K8DE","(& (襄r(˜2À’„($K$  d &h0‚‚3KˆÙA‚¨„$#'&„nD)@aB!(P!Ä!’‚Ž!JÔQ˜‚`B áC’AIØ”A&A†hŽŠ\aH'*D$H)’($B(`ˆCNQãŠT@Q$†2EhD BD!!!P$`$A$@4B+‚@!ФP!A$B„D!! ¡ÇE€ Â)QB(@$A$$@RB$DA@‚!'B !AAFR(A@F ÀÄ£ÃA@qD1D,D¢(‚,b)’DGBt!ô"H!)2/B¸ˆº!k‘$Š#Dâ(aEq$qÄaATjhX(HLœB„E˜ka,ŒDè(D’$°„äD"f¥È#îˆ ­„¹ˆˆöùª$E‚ra+„zõFDÔBAáB¸B(T+$JöÄ"GBCedFaDL!ÔB‚¼"’FŽ"G4A&8„N*Šh’Ž„Ô¢#‚¨Š!¢+¢yÂAé‰JÒ¤²D"äD(dLJhÓñDAaB)g(Šâ4‘$HA(C´2B/H¨DôRBäBE¢-h/R!K8вE2Î2à*dDäD¢…¨3R¹ÂAH†ø(¤ÙØDqEbJH#‡@E#‚¥´ƒ’*(OÓ [n2Ot\!Ä-"o?ô';ï…dk+ªDØa4fOîÂEW_þ“!?]´Äø%_rõ“EÊØ1÷%Sôó¡Åc²²û!Åföw1kI?9afK&Kâ?òÒ_Z5_òôƒ…Ÿœè¸ò=ó™xÃñilò†¨)ø!Ätú‡A7¦vß–òEÉ+&¿XÜŒöÅ"G|§ˆŒì,räò®$ÕcòQ"WMBFÒ#ôC7kBOMÑSöb‚*yÔÔR¶#øcÃO2øÆBm%NaòDÓLÓ"â6üµeQ#NƒYöµXÕSòc‚*ø„$/Röc’~[xo:yud?ö%³KñR#6ü…eŸ˜T»¬ü©Íß‘ÖßòãÅ?,‚úE„/R|âóa_ö‡ƒÇR”ÔöÍC}¥¿,ƪOÊ2È/,\¤Ž,GŽÓMóT#}tDV1NA=&?$×sëv}¶ñö´-¦.‡kJoZÞRÞcþ'ÂOÖUÖqþ%_6ÿ…w?YôÓ—_4ýS?öÓ³tÿ!×ôç¤/a˦ò—Õ?wýa_6ûa_VôA•_þó_xö‚d?|ؤüË;H?·ù¸æŸø–®ÿÄø"¦.&o˜ø/í¯äøé/϶ޟö$LŸVö¬H_:vÌöêÌ-NÆúH‚¯ÎÞ¢æ,=¹|ûbEwC]B4-C7$Aöq‡O#ýæ4/Iú"†O"øç'ΧlòÃ&gOòE$Ne&ø´cY÷ã’^žC?õƒ’Oeîcøt’oNó’¤/bù4óYö£•?wøñe_v%qEõA7ýµCJôâƒ$üHK?˜üÊ›_fôhoߨúæ$'J-¦O(ö¯m¿ÈvjÿéŒß”6-ÏÖôa6øm¢ïFøJêŽJΊ£ôJÊÏxö)Mp2ÄAoCÒtÂao!á–DŽsQŽ2A,3D,?n9RVJxs¥„'C|2Ô<>ä87EŽ2A,³$òÁðá#qa„xs¤¢'C.á§CÍÁ§>6ŒŽcÓè(2„¬2„¬‚î!ÆŒxcŒx"„|*”Ä¡èéÈOãÝsûvA?vòVAv/öe7oöå7O8ÿ÷6O8ÿ¶&_<ÿç&_8ÿçDzgä{÷e„/{ÿw„/kÿ6Å?oÿÁ?oýáoÿáo÷„óoó„óoióÅÓoóÄÓoá~wä÷e„/þW„/nþÅ¿nþÁ¿füaÿîÿaÿfö„ëÿfò„ãïbòÅëæòÌëwæþ~güè/_Æø¢ïwίjþ®D¯î¾ŽôêΫhïîÞvCO3A$Ô$2E&4AL1SD3qAÔDÔDÔmÁ#ñ„RÐ$MÐ$äbl1D#qAôAD#aBci8O(R$(EM"EèbèhÊ„!ÄØÔH„a†!G(BO(Dx„Bø„"Ehj„ŽrãÏ‚è(4‚ Ae´‚F´" ‚2+Y$b‚G1nA:˜F‚D*Á„#C4"˜!ŽD2(’D"C„x‚|‚øBà!ÜH$ò‚D!D#Š"<"hD"AƒtÄ2$ŽBŒÔHÂLó˜UÂD,7€a"‚2,x"¡!$D±!Š#„Òˆ".‚#!„#è‚€4‚ŽB#¤‰ŒÅ"B)$¦2" „&2D*B!âJ$L"($Hâ„>sˆJADA¢„ˆ"$%!‡„‚Ò!A! ²qB„ a" @(¡¬ð1d‡HÀa ("B"Id‚@ˆ$ÂÄâ„Ä%ëÂÐa&¡B€àK(H(‚fHÀ…‚(2BJ2„+B&$†(Bb!$"#$IÀƒB«¢!J*„hD†¢Bˆ('„BG( HqH²‚RäÓ˜Q20#ãA¢(.„2¢O6ÄaH‘„+‚ЂB¡ÊµB±B%d#@!&’"$‚AX!Ä/—ˆÜ "¨L”!˜ˆKF+B*T"ŠVdÎ"‚FBèÄbÂ_ž"HB0A" "0! äHQ*&ˆ0!#Ab ,ˆ ˆ@„$B‚D DŽB“R!Šˆ.ÐNàdAh€¨ÎBA„HDjÆ'L(F…„ „:І¤\DŒBÎD`H€r„†(‚V((b(D!ˆH.„$ˆ¾ÝàDCEå$Q$J‘2ŠšK"ˆ¨H†‚áBt! H[&Ž„`(+Œ #q!"¨‚)Ò!BŠVC""""&º¡6„+Â,¸H!è©Bx‚H"´‚+ÂÉ (I$4aÈ ²ªrD¨ˆJÒä”'‚ÂD.A,X"(2ˆ"„!"2AAH%ˆ „B;$JY"d" !!C‚Š"rH) ŒH¢ph"(*â\N"L„(‚„($ˆû¬%´B„D’QH#QŠ…C$Œ‚’DÒD€¤ÂL‚¤ˆ,Œ‚”$”$‚!¢®¢ „‚Ä$!‚n(8$Dá,ZRŽŠŒ‚„#ÂÄ(H"L+BH¨()¨„‰bÜ>a B"ÈD°!ŠñAADF$̇`(À¢P!ˆŠ!!Á(B‚…q‚+,‘$¢PH#JlĉgŠ-"ˆƒŠ¿Ö)„Ø!…bH€„&D€8H0Rˆ! ¢#* (¢$D ˆCÁB’"F˜A(!‚H#Œ‚$ˆ|=Å ‘Q$H#ײD„„¨‚EB¡‘ŠÑAL ‚0B@‚r"A+"H0ˆ‚bBBDbA™”‚°(‚RB1D‚¦ÁL$„‚QJ4,‚¡,(%aˆˆ€ôTŒh0$A ‚!$„"$$„†‰ÒBÒÉ¡ŒB"Ò$Š92*HŠJNÒFÁˆJˆˆ‚„ˆb†H… „`$ „À>ƒLid"R q‚1„H‚A"B‚ˆ.…-…€(!Hã$ÄbI‚!Â"$"„Ì(ˆ‰Ø$(ˆvˆ’$$(A("‡$""‰ È`BH€„üJÇa,,"!¢A.DV(€ƒ¨N„Jˆ©°Hd`àA" à1H bŠQ…DHÈDD‚„(ÂWDB*¨„=á€DD$”D(X!ø(ˆ)&¤aB)„äBá,„„$$ˆ&ˆ…Â!‚ ((BBÕaa*€TB)Â8˜„0H†8ˆxHTH€$¡£‚OœE AG!DXÀ‚°"(Bb4@BB,ÔÙ"*”Rb"*ˆ(LƒL‚‚HEB ¦)xIăbœˆ$‚Qˆ;‚‰˜CHER8 ÄŒ7G!!‚IQdAA$r!@AA$QD‚`Q!¡€€aE‚Ä@HD%ˆ¡O±H(€ HFDQA„0!PB%DAA(€2D$$@QˆPB'B"A(AÉBAM(@J "<;¨1€ÑD!$–+„ÊѲBš$iA”&fD&21A†!)q„!á1´„!Ä"K"CÒBá&8!N…D#†¬"…Xˆ ‰žŒCXˆD²„b¨A‡Vƒ>(‡D‡BŒ”Š…8("D¡èk(D]BDH”V’QEB(ä¨,(„ÁA£dAJ"$¬„{ASœKŒ!Š˜7C"#³2(¨Á-ÄHI¡UúDæâ!øx…á±ÑHÈ!#Èȳ’AQ“؈4…hErDrD+äÄø“"/AâDÑ"bX,¢(È1m‚kt¶&D”CqdH#¦B'"+H&â¤(H#è8t„aCT!C”CF2#‚T#æYAù.D¥‘-h,Ö!–,Ž!K(F²EGˆä„'"".L9œ‰˜A-A)’HŸÉ EñrGwh5Q-roñ'Ò?'óƒ×/aù&‚/"zCöFg'o3öB3DCô$á-3?m}Wò¶ÒoSô“’7%/)ÿ6C+¹sóUžk‹+3N÷Ñk®oõRfµEò%á?úS5_•òµÝÏ¿‘ùI8ñ-ã‘{KùéMhò†¨!ÊôÁ'œÚ—üC+—T])_üЍ¿ÔÜ„öÄ"OfØÊÈÈ΂O&ò޾³Þcö!&TU$^R5òSwO"ñÆV?qºbé#ÙgØr~#òsCo3ñFBoAòAa'O,õV´)²cùµg,ý’"$ù“gkÒOAý%/.!ÓEû2e;?5Ó4÷´‚gSfáö¥3UûS¢Î[_ÓÿÙ?±óÍZÒÿéý·Ö?¬‚òE„/RôÊ#Ÿ”Òþ¯ƒÝ-ŸöKaß¾ôO­½bŽ*M¬‹„/,ô„Š®-Û¤N4^·{DóAN?$óQ"?tûr—Oùw6/hû2K[osÆu?aö5ÁoÖTÖAv§óösoy÷ÓVmñ—SžQ?-÷Ó2?yç{ý¶ÑoGû’6ž·kÛoSýâU?Gù÷âOôdEtK,_9ý5÷?Ó}CÿœÒ9¼#}Có¸vú¾ÎÚÇø¢&®æo˜Ú_üâFþO¦ü'aEôiECúåãOløjì-NÆúÈ‚¯Îô‚JîžsÁg-E?BöB1ôC;Aa÷£Wk[OBëió2–k_wòR5dóC5GOòE$tÿf‘O3þõƒ?%ýSÁÓ?!øWôñôoFû’$/kñ´2}÷ž7oùq&o¶$rEõADo=÷µÂoÑýû³Ÿ­õXÃ?ýê›_ïä|ö*ïBz¢ô‚&O(ö/í7J§~ŸFúlAÛbOÖôie÷>_¢ún„¯¬ì¨ä¤¸ÊøjÊOâüÖÇp2ÄAoCÓôöaAŽsQŽ2CøÁ2CôÁðá#ta„xs¤„'C|2Ô<>ä87EŽ2A,3$,?nra…xs…z2ä~:Ô<áãÁaÁ8V…Ž"A¬tÁ î!ƈ?Æ„x"„|*”Ä¡èá|?¯=7oôc7oõa/÷e7oöeµO<ÿg´O8ÿ&4_<ÿw$_9÷wD{wwô¡w_Fü³çwO{þ¶Eþ–Aü’a_þ–a_÷„ónó„óohóÅÓnóÅÓNñá÷wFîw_FøòçEúòöoQüûöo‘üëÖ/þïöoÿïfO8þï&O8þ®&_¼þç.O<~çî~~gì~òeŒ¯zþg̯jþ.įîžÎ¯æœjïîžn/æH3Á$Ô$3E.ĔĄDÈADADOMÁ#ñ„Sð„AC±„eJ†CsAÔÄ$%aBEm#ñ„(E‚Ò$M2A.lBrAÜTÈ!Äa„ir„MB„EBØ$R„.†„x7(ÀMˆ@Ä–`dˆ)"$N²D$4%*˜Ä'A”‚€x!”"Ɔ"È$¨”M2ðD!"I¨BC‘ŠIˆ”J;"‡DJ&"ˆ.‚DJŒË$(O„Ô‚˜dŒ˜Cˆ"Fü¼^àHØ$FBl"Š”9´"LÖàBØd"„ˆR4Š(db,Ž„Gc! L$(u"4„§„‚)5AB†Š†(ID`D‡„*XÂI"TˆŠÔÔñ!Š;a)(Á.B T!‚+!AB2 B#ALÂ"JQ4N!B$"$E"#ˆYBtA’D*h#q)A!P‚YÀ-(F\FDÈ$'„(CÄA€ô h‚„!qABá(¢ÁCð‚B(KA$a @B¤X),~„‚L$AÒ$6A "A(L´ˆ°DL‚À$HÂAªDBÂ%ˆ$èD˜€tHÒ!;ÑÀJ•B$’A/Bq"(™a(HKBDÀ&JDd1"X@#aGbˆ!&„&†dB$/”XH«QT-ˆ"@„è>$zDáÄRFR„-(ÂL",´HBo˜L±ò"3„1B,,Jˆ„b"€ÂA#’DB†h#ÄbB( "°‚”!H$B & $€„„ B ¤HDI–³‹$dF(F…„!(‚0"ÂD*(4ˆè" ¢ä2À€)((‚ˆ)&4ˆ¨D…"hBÂÁ$@hB„`ˆSIp2±Ò¡%D)dH,²$L¢)NBBìB4!F1A#‚D/„$Œ”TCähˆAHRD"b$ Š‡„‚/‚ì„ÁI!IŽJØ$Z„D ‚A*&XAÖˆ¢„F È+¤ÈBH+†M#— ¡1°Â.€a.BHDh+((+Aˆ2D£!A)("”$JD †‚8H$H„ˆæ"aˆ $F…d‚\Ĥ€(„DÂÁNFI6Bà!$ÂTc*H†hA"DJXA*DdH`D‚ÄHŠ ŠˆâA‚!(¤A °a"8Á‰9A¡ÊŠ˜,L"¨†€Ò˜$bH*TŠÊHª„„JX‚nš3›¢¢C;!D~RD$"D("p"h %Q$:2hYK"L w¤1$À6Á"ƒ‚ÁÂ8TK$€b„ÃAM!*ÈH"„Fˆ†x)ñ:÷0&‚( „€„‚€B4$€HÐB! d!‰”$ˆ(@À(B.„#H‰ø‰hC&%BH+!(a ¢dà"ˆÈ-!$±Bq!¤A2D"™$IæA±á"dD‚$%‘(9(˜F¤!\B°„‚TÁˆBðAa„AÎ! Â$›Bƒh„„LJñbß`B€$¡A!€†‚R$(A`B(F(0D*L,& ( !aD@1 ¡Aƒ!(C… @DAD €$ˆH&4˜HDHH$Ž"IÅAÀ2(D$LD€DÁB" ˆ¦8!ŠPA¢5¤FD((D‘ H†"!XÁ¢D‚dB!"!&”J(!(!oÈCIAn„!0!0B"AC`D4%‘"Jè!$(9$Á‚R4ZÈaJ4C%ˆ"´" "*"È.aA(hE(G(PÄ`„@?šàˆÁ!-CAˆp!¡$&ƒB¡0„0€$µ$P!HD’ȨLÔ"ÒE‰FH‘$°Db$ D„ðAHH*XÙô˜ƒ$,F a!"D0‚D€„„"ƒ"ŽbŽ"F"h"HBÔ!¢¡D" BLJD®+8„JDH”BPJPDÈB‚‡¨`$@Fâ˜?ª(H(@$BB€Lª…!„H!†"$HàAˆ €E(H HLˆ€ø)ƒ0!F!!4L(ŠÄAA€!¨€B€„HÄ!€€A"‚Cˆ@€H‚d(A ("9B5ÁEDáÕÃEáá8Õ$ƒ¸E_fs!´!SaC5ôa¤3ò!L¤aCᔄK!C£X#a(I¢$ŽD-D*¡„:ª%ð$ÐV…“Ej8$$FR„(F'JÂb°a˜‚+B%ñ*Ä!)–B)’.O$‚b!,"n†#„XA2)¦B$*$HO,!r1‚#„â,hG`C‚LêAü!AEBF±†2$3ÌŠˆH„H"ƒ\ÚBДIOˆG„†IΣp„4"š”Æ)’$@‚  „bL ¥ð$!L<"á2LAq"´¢”j1„%"2B"ÀDVaôÃðÃÐ*ŒÎb!ŒöD(Ž!è(cÜ„b„„BèÆ„&Dˆ ™H¤‚Èð¶vðTO'qd÷AN2Gvo±³ÞQì8ñ&”+«O^Öeõ&toÑ#ò!DIöD;:?K´…þdGu–öƒÂ/4ñV#o+²‘ü#öLñ&/)úbÇv_"ö”A'-B´$òdá?+óñD¨þdguƒù“È/ñf#ωñƒÈŸæÚhô‚‚nånMbg<§ªÂÔôd¡·8?Úô†ÈW&GF§H/˜ì$²dòŽ´SÜ#v!ó$1CõBrãQ#·Æôt?&ñ¤„OHú¶µfÕERo&÷D¢O$¿–ô7f!éZrÄã%ö’/zrÆñôDq¶cÉ¢onò;ö9ù†aO+}7´Aôq!O"Æô1b?ù¬'§%Õ¡ù¸7oòÌ$¿ÖÔ©È¢_Èbr¿„܃ú‡+ï,ü'D’x#ùLÃ_Úô#H.ŠÏJ2Ê«DMЇJë,ÇÁ4OuóRU}B5á4ñbu=fuûd“{{§oiÃ2oFqrñwvbôóg_DÖAÞþd“O=ò÷EIÿD“ÖñÓC?)ÿb—/vù¶kø2–-öo.ñÖ§?vù#V"þaWBDÜ7ûfÓo}òûG¿éýF“¯<ñÛS¿¨ür¿N¯ï,òç„.¦LúÎ"o~økÎ?Âö%êç߯Æí_¢þDƒïnòÊD¯ÈüD‚§,«L¯Šìf:|òB%?&õCFsRñSRqævùdÒoKú4obñ$7oòRu}VCvEñda_Bô!Tté~sÒñòä_1ýÁÖóòâQýA·o$ÿ‡&/iû"´M‘O{òÒ–?cý£'òdAWDF4ù¦3ç}¯¯þÛ·¼¯=ñúÚÿsükçÍê_Hò¢†/bÚúŒ'¯~ü+ÎÚôG)ÏÖÝÆmϤºíòÎ$¯®Ü¢|È8ʯ¬ü&Ï?Ë 'Ct2Ô4¶ÁaAŽsSä(ôÁ2GB,!òá#qa¤‚7G*x2ä|2Ô<>ä8—%Ž2A,ôÁðáÖ!F„øsD*z2ä~:Ô<>ì¸vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȧBIŠÎj3Òsÿ6E?v÷Q?võqv÷q~÷„ó/ó„óo!ûÅÓ?góÅS?eñáwEòáw_Døó÷Eøó÷oüó÷oüñ×/þõ÷oüõuO:ý÷4O8ý¶4_>ý÷4_>ý÷zÿwDz÷eÄ?{ÿWÄ{ÿÅŸÿÿÁŸÿüáßþÿáßþö„ãÿîò„ãïjòÅëÿÎòÅë÷Îþ~oüáo߯øâïÿÆøâîïBüêîéüêΩþîîíám4$,åbÁ1³AØ„R*R(m+!O8R4BÑ$eB&aBFdB&TÐ<O8…Ò”!AIeBÁ1D1Ä-A…DATÐr„EEM"A&<=t‚‚G$h$ ¤I‚9Bš"$L²B‚†T,´ƒ`n ^„Eô¡F„¸8HÃAAttRG¦Q„†qBèAbLR’DˆD¨(‰˜$=ˆAFta8d,Š4„tÁùEÏ`B„@„!‚¡!&’!N$€ !B€a812€)”18…AH!Ä‘*a"(@Bph ÂH€„"HÀ…B3 !! !-$'BŠQ!€’$@!¢P!¨((ȨB)@Á# $"$P&¢C@˜"2„A, Dñœç€&H†DA ¶‚2BH "B †’”R€¡I* ()$˜D*$"(CÔ‚ ±B…D"D¤Š$Eˆ)‚T$” èªÄ|ó b00Ah96$’CŽ6hd"B\€¡ ’¢$ˆäA„2"*Ä!NAHÀB¤€Aâ„"’Bƒ‚²&H#@ŒÄ&4`ŠO-G!BH(AD"*‚41 " !¨B¦!€Š’B‚€"†"$À!4@€dHHÀB H#Äés`B I4HNA"È*a("( AˆA$‚(N@d!DÄ$B,¡lC¢L !(F”ˆ! „HˆbbˆA($l ,hƒ&„Hðñÿ ¦Žt4hBh<¡$C”D˜L‚³D˜5"D d,*Â& ¨…BHT&´‚#„"á"ƒ’"€"Aäƒ$"È‚HhR+J‰€ˆ àˆ@!DˆA)‰RQ0¦Àb!$”BM!*AB.Q C„(è ¡„!¤`"À($Jh(€ÄDÐ*ˆ/„£ BâHŒH¡D„$H& H ¤µ$H(!HH(VH&„ "R#1ŠÆB b†BDˆJ"Ä$`A(ŠÅ„`BHbŠ¡Š(„(‚N$ˆ€"ˆ.$`‚H.(‚DI€H.™CLÔ¢AP"$GÂ$!(0T"D*Ä„`)H (F„#ô$‚LDˆ(DVDD$¡L"!ˆŠ‘CDD¦‚B(IDHHA‚ðxŸ(;’( H#Ea(@$„(!$S4!EE!)A,’HJHD”BH ÒäKä‚R#J’"'JR%,Á"Š¢BT!ƒ’EC2¡JAB!‚¡DHŠà!r´Â"(AC'BBFG!"6‚˜œLr$DÆ$hG¨B(0DQ)("?…KHŠ@!!D!DDA,c!(Q$AÀ1GLD!!‘A*8ˆ1‚!‚%!-)dTd@Òä$ˆÄ‚@ÂØÃIDDehHLB#D4¡†DD¨D€$H!†±"Ä!‚0„D‚(€D‘ŒDa*b(I"HTB‚bP‡D)„RÈH„ÀHaÿA B( „#"!2Š12KPC!C$(1L²BA$H$ˆ$O"B‚ItBÁBc±„áŒQBKHD%Ȩƒ’&Œœ$HEAP,$NÖÃM!ÒB‚TL$á"‚!&8a)±!R‚H‚h"A*"1$G""0!"D‚”A@ØxˆƒV$($A4a@JB4!‚QR*Ž%$]"$.Àa€ÁA&ACBá(4AP$$2‘D€A$Âa.A`T y(1!( H$„^BŒÄ$”!A`*Â($F("ŽˆcP€($BB€¨…AH â(!5DH€¨Á¨‚€ˆ€ˆ¯Ï $BBb‚D!*„ B"Ê¡BÀèAÀ„€B`L‚B0A€ˆH"È€D@ (Àœ³‘D–BA\Â$tŽg†Ä$!áFyQÒ$È&VºA¸¸!‚„ ,Ä&1GO´"B²â±T2f%t‚ÔBbB,8BÁ΋Q<·(ÈCCAyˆaŒ h"Á›$…rÂìdb„‰ÒH8J%èBTȉÄhmÈ-Hðe-$J‚2AB"òA‚B0";H`¨.AA@ƒG>BÎK!F2UH!(;j¸ @èC,#Da,Cd%5d(òÁ„"À$#TJÄ„|¨"@0$†b"†B&(BäØ63%FÒ”BAV$‚¡2!n¤%$bD-¡e¸‚å! °"tQ$¢‚G'2Q¤L$Ä„NÁHÌAŒ›BG"M"I"(h"F1)|hRF‘nDˆ”€˜j.—4.aoDreDÃA+$_Gsö„Ç_rþ–4Eô6nÅ/þ5foñƒ¤MABöA„?+ò”G/~Vugæyñ‚ÃZñG&®4/8ý'óo1ab/)ûdÁ-s>f?kõ“Ot!ôAÄùÆS/ýØzñJ¯¨õʉ¯±ó?L¯jõÈËß²¸.Â$O(Ú”~nÙéò‰L—ÜÏ´riÝÙüÉ*×¼¯ŒØJò.H(ôˆ­H­lº;Ÿ\ô†¥m$w$NA%q"ôG7O|÷4T_Eñ–¦_bò$3__v–ô†&ÿ2AIbBdï:ÅuOBù†&W,NC-®&7\þCo!öw‚-¤?*R66þ”?hôƒÒ/’dVÔa}Âó¯äüš^w8¯±ñT¯ê÷‰/'¹IöM¨/bxáâ2ôM‹ÆúêN?8ø*)G¿Òö)¯§ºWDÆþ‚LǨ…øHˆ¯Úö­.?s 3ödg-Aw3ä6ô2QoWºSû—6&ø´oAãføQ"~ÿ6Q_XþS$_Tö„áç;´móÅwoyÿEƒ7,/<ô’ço7øw‚Kñ§†k“mâæô×¢{—mC_QûSDWROÜQùCÖ_ÈõSιï´ý‰J¿¹õè¿ï´ý'¨¿ìöíŽO"ú&„®&_êþm‹ï¶òOï¯Òöld_–úhÍ¿ÒüªnϪôªëÄ/¨ôèB/¬ún»ÃQcwv_4ÔtBrCóAC/RµgúCöO)êbñ6$o2ó¶&_eý…AoBsôaDô$D_F¸÷qóãÜ2í-ñÓ??ß2ýG¶Dï)ó–¢Obû—/kóÇ“_3ÿ¶dFdMFeø“DŸ¹ôÞ‰O5ü›X?9ôÊ©¯·üäfø¨*O(º&Úv¾¢öÈÿ´zæöKM.$Fñm.ßÔþƒdï¨´ÌøNȯˆôŠJ®¤¯†¾ 'Ct2Ô46ä8·Eá(“,3$,n9"Fˆ7Gx2ä|2ôÁ#á>–$ŽsYã(“$,“,n=BF„øsDˆ'Cü:$MÁ£Ááãáì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáL5W=goôcgoôcG/ögwoöãwO9ÿã6O8ßbòÅS?gòÕÓ?mòñ÷Eøáw_Dúó÷Eúó÷oþó÷oüñ×/þõ÷oýõuO9ý÷4O8ý¶4_=ý÷4_>ý÷{wô¡w_Dü³×Eý¡×oQýéßoÿéß/ÿíÿoþíoO8þï.O8þ®&_¼þï._<~ïüáç÷Æîg߯øâçÿÆøâæoBüêîiþêÎ)þÎîiüR_4HÁ"Q&A1ôA¨'*zÒ¸ò„(MÂM2Q..aBqaädBáBrÒ<O8MQI‘4Q..1&saÜt(T.$EÒ˜"G((E‚R$Ð$dbÐá96&QbB#¡$A!M¡BLš2D9™$1*§BQ,<%,‘E®'$ÎD(-$N$˜D:XA!J’ÁAI"Ô%X„ùLxR8ŒÕEòAˆD)ˆ‚ˆ‹‚I4(MD"„+ÂE:MBƒŠDüG4ð¤%„`!-$ •$>$H°’A(aÀ#!B""%¡$(H(Ð!)(Ä#”BG(™(°"Ld‚hB"aJh$B¤FÓ…8j b@D‘! 1!2A$DRP!P)@¤—BA!!Bò$m°‚ $A&$#aB€5†”4"(H"!"&#)a*! dAH&2Cd†$„,A(DA&ˆ„„AЂVáó—&#x”!C!'CF!€¢! 3‚‘$:í”D(NH@H$‚,r%ØD!4")£öZ“,!D A&L€€€$B0A&1!*bB@€",$@"A!AT@0H€@±ƒAð"°'H²#$Áa+Ž"Cà)¤DªD`DˆhÀAÀ"Ê‚"Žb d$(ä‰jH…€ ŒD"8$Î*AH"Ž"& ßKLaB!(B$$q$‘DDKB DHH†!"´!BŠ3#21K„D(,1$$#QB ÀH†#$áBDA"6D!$XˆÂFÆv1)aB,F U&!ˆ$!‚aBH"#¢X*C!(K c‘"Db I¤@B’H€(A AŒB¨$ƒ„ß_ @,!Ä'"p2A°$b.D1„hŽ€)ROHä"À¤&B v„‚$,HI,2$.„@"ä$„†B¨ˆ",æ26Õ=F`(`#A$€JÂLApA'$H D+D"AÀ!Ié#’$A$.‘cŒRA $LA\‡R((‚AˆŠ(_Z(€A"!B‚"(A (AP! !A1$ˆ"((„DB'BB„ (Ф6ï%"„tBÁ)“"h(LÂDLBD$ ‚CEˆL‚„ÂÁ`cLbBp6AˆC1˜@CE…V„AAC!‚ÂL!‚‚&·€)" ‚ !H)¡Á‚B1´.!$(A2 &”¨C¡$`‚"‚H B"*‚„DC¤‚#(â¶9˜HA/CT!HDA‚IÄÐdL¢&D$@D„âQF@â"ˆÆ‚ M`HD"PBV$r8ˆrÁŽ!‘à(a„ÄèBd‚ЮO!„"" ±APB!!0@aD@D;„AÀ$M"("A0EÉB1L(ƒ$Ô(8(Àˆ!G‚P„ˆE„A" à„ÂQ€“")AB‚‚F$"8a#!ˆAA€”QI(".AHH€<Œ„˜BM!HA€BAB DadN$…$¨!€˜BAŸ­OB’`!€a"$ƒ8BÂA”$(E‘",ö2 F‚¤‚6"":ÄD%!a(A(†¢¤`B‚D!*LDH\‚Äh€ŽBÊÅ àˆ2Á@ ![$¨„!€„HA($ 8Aˆ))HA`(Pd„" ‚)‚ˆ)òÂÖD „‚8Á0A€ØCXBˆA@`h‚˜‚!H€" BA†"(ì=»%±"M’8-$Šæ(Ò$¡$,±A¢$VA ¡†9’BLDÁáEÁ"ŠŽ3°EñAg"ŠQA#?œÂQD¡3Ha,"èŒÒ$f¨A ”$Â&L¸CD%‚”*òM÷àD¡S%d„7DAA-a(h$Mc4h J%$”î„D:ø„&2*ÈÁA((!Dà(“8C”Ž‘"HHˆDŒ˜¢e)BÈ"ŒDè‚ä,2HƒNlhBDâ¬7”#2-4\&AÃ(,O"E¤†DBAO8)<¸N¢4ItÄ"˜$7FÐAaR`C+BȈÜÔÈ9Èa5ÈcQ†‘$4—,Ea„t‹$/VèTÂ!D/B‚ È-()Ø‘A’qk4gW9´Rñt%6_iü!åoÓdã!òedyõ$V~'-7YÄDn¥/8ó•BH¼Fsvw‘²üB2gw7k;ë]Á,ñ"+«[Ô]R/Bå[æYSõ!¥?ó—A\ø(Vß3t“ýÙs_rt¢ýë¡MÉÅr"´¢úeÈ—4/Äò£M?¸òM!Ôò)Å?ŒrÏáÎz(Þ¬t‚øÈ‰"ìôªqCÛAÕGÓSsD¢USñ#5o$òÔF_3õD/Hz%ö47_FÕSò$J´ÖbRNÖžfaC{ƒwÄâ%ô’?xrâ¶Òôqo&ù$„‚o²gý#‡®G/)ø!M¡7S×;)o5òqŸÚö…A¿±ñMšŸÙö¡D¿˜”'ÿ¦èB¸Áò&aí‹_Tø‰E¿zúI)_ÒÙô!§§š$òHÎʶŒTª¤ü¨LÏÈö£Ç'_&×gõG'4'ÕGõcµoVëxóq†ok±"ódv÷vwy÷'Õ/WòDeYþ!Ç/VûÒ%_/ô—ö_4i?-ö‘ô4ûd“/Z±¶ú²O"ýòo_úV±}rcèSÒUÒ5ú!Årÿ•oïôÛ»ÍÚŸ¸õÛx¿üÚ­þ-Ë¿Êôï¬m¢M¢/ÚôÉï¤~mûH®½MÏÆöm‰ÔÞùþŒnëJ/¬Ú¤üˆJ«H/®ø,®#ÓròvD´ôS'5f´7ôWµo$ÿ–¢OcÑDó&61òTwYöevåV–a]uOùæ3g}OþÒK S&A-5,Ä3€I,cB@D$Dd(+AtA‘T#2„)4"Š‘‚@BBb#&R$‡0Ž*$‚‰BbŠ&DÔ„*„€O$„8B$2"¢c)iAdBA)#”#%„HÄDˆ„ìAÂÂIICˆ2…ÜÂH*TBƒB%B$B,BÈbgˆP„À(A@aBF5ˆD!(D@D@dA0Q1 ‚€(€a"$°"!ÈÂL)Èx€( F!b&$D̈%ˆÄˆ-(ÅØK#DD$$"2@%!"(ÂB&!j$$€Êã!‚‚¤!*‚B€AQ‚`‚@ˆ„È€ÁŒÔ ŒˆT(‚,",2„C$È¢“ (/‚ @4A€JÈ!ˆ€ÈAˆ (‚tAD@LˆH%A†Ap„ˆ)€Ÿ< 4A0‚ÄAC¢A0ÁÀB"!!„4B@BÀ>\#äQ„BÂ8M” (Z¨A±2%!Á! 49#"ˆ"HŒÈI¢$(H$yAHd¤„ƒÂŒ#Ò‚„„AŒô²xÀ$D@[†O’$+aMA#Ò$B²$RM!Q(J!4Ã%‚ è–$’„(IÂM1‚M(5è(A˜C&r"¤‚&”ˆ'ò‰Ò4’®A‰Ùò„"ÁEÒH"8H$T?ƒ!/#‘"/ÄdBŽClâ(‚M"D$&ôÁ$´A˜"+¤)ž‚Lì!Þ4è"8$K+O´¦²¤µ†Ñ$2¦AkHÒARa,Hç±ìaÈÈGcœÌ8Il(G¸†x…!X$Ê,>‰B—$FT‹„ƒ„ø"ˆÈ­A)˜"¨õIÒC5rGVµRsdu!ò¥ö1ü%ªò$2[G{aKbN/3ò%BLæTø²7_(µ§Vtf÷?(ýR"'t?jóƒÒ3~bb/(ûuâ!ô"F/z÷‚7QàRú’7(ñƒÒ¯çrN󋻨¯¥s~÷¡V{ªÝ‰…r"¼¦úEÈJ/Âôê/Ž/ÍKŒôh¬?ØòIŽÅf~l7Š‹ÈN*Çf«*óša[Š?SóFJ´ñ%g&ÎV]aæô6¢.'Fvgs^t)ô%¡&å$î+•e_Bø—7O,á$Ô#ø³olóâR}co&ø¤?/S&ü§/{õ‚’+!]¥6Å‚/)ÓgÖëú»ï¬ñJjß¡ù›'J#Ý›ò.ŠOB8Á-!ÿ†ü/‡ú¯ŒÜšÖÌz*üHË¿˜Ö¯æbø¨(GŒ/¤Æ‚ÈbÎ/NñV7_dÕGuWqRñqr}dTúv…o{ñå6Okò6$OgñD7Ow¶öå'WOT–å_qþR¥o=óÅv?(ÿUƒÞ?,µ¡ýwƒo7è[ñç–kƒo!úòo~ùt¡!ö%…/SÂ%Yú5…/sê]óÏz›øÿµxØóÛz¿hß5ÿ$‡§ÚÿŽÚ&ú$†'ÎïžúFéýjÂüj-NdMèOÂüi¯OìòÎHï¨þLЇ¬¯Œö‹ïÏ=Ù-5otóeV{A?5ñBeÔGög…ogü4¶Ob{ô6&sóDW{SRuDåV¶!ô%En…/ñæ[Þ?!üÑÎ?LÿâuúVäž2o(û4¦oaø‘3oûâYcR.%YÒUârø²5O>ñïØ_!üÛ/<ñÛŠ;¥7ø$†¯Ê²†ú&‚Obø«/O<Þ­þ‡f‡ÖndÍhÍl¯öøá&¯ŒòîÊʇ¬§Œ¯¬Ü¨þˆjp2ÄA'CMA#ÁacÁaAŽsSä(ôÁ2CòÁðá–#qa„xs¤‚'C.Á'CMÁ#Áák!ä87EŽ2A,“$,nra„xs„x2ÄÁ¯CÒ<áãáì8vMè(ôÁ*ExÁJøáŽ%xaŒxcŒx"„ü*$IŠÎB£Òs÷6A?w÷A?wôavöa?~÷„ó?mó„ó/aóÅS?góåS?eóáwEòáw_Dúó÷Eøó÷oüó÷oüñ×/þõ÷oüõuO:ý÷4O:ý¶4_>ý÷4_<ý÷z{wô¡7_Fø³·Gø±÷oÓüù÷oüùÇ/þí÷oþí'O¸þ¯&O8þ®&_¼þç._<~çüáçwÆîf_ÆøêçÆøêæoBüêîiüêÎ)þîîiþÖô4HÁ"Q&A1Ô%¡"eÒ¸ò„(E“!$M"Q&aB&qaÄA&DaBEM#ñ„PAIeBLCsAÜTH%ATÐr„EEM"A&"#ÑB%!"•$Ib!(,‘$BA" Bä!¤‚+Hˆ82ˆ8(#A’$±X A8P@DÂ,LF CÒBD‰ÔBÔƒIô ê%d1 B¤(C!24"€D"KR&#‰4‚"š*A¢("`!!Jƒ‚"A8Ä&#äÂIb„!-DD‚FˆH×!?l@@ð±ÿ h!€ ÁDAa *&B (!A¢‚"#D"¢$D€…4£„8"ˆ0$(ŒAa(„€Ä$F˜Á„Ðå12€AD€(À$PÀ 0„A BH„#A0ƒ„D@$$D'“$€ D($#" "#A((IB@( "`B Da(H(„‚Ð59@„#%H2@"€À "‚€QDŠ!ÀC„"`ˆD,Н©Oab "ˆJ)‚…€%'"AF‚2AE"Ã"@$‚H(0†€…1I!!‹¢À"@DÄŠICMI ¢BB)BÀËc D!€%D $I""0"*À !"€A@Œ¤  ‚5(!(„D(,ÀBð¾7`""€8B‚)0±H" (#HCÀ€B€ H¤šB%Q,B¢ LC0E†(†b$È„¸Ó„De $@@$PDЂ@@@@$!Ф@Œ3ß!$@@@APðRø!@!!$!A$¼3H$@@$@@/S@@@8³@A$籠$A|=w$@@P!A@@ðã¢!„!@Dl9IðÏ<ÄaA€"4<rA‚B(Al“„/Sˆ0AB–„„#Á!,„(A.&Iø2E€(1A&Œ¶Œ „#AzÁ °AˆdbIØRˆpAHq(„’„ˆ!ü=*F$Ã"‚dBŽ2A6$ÈApa¤(AŽdBŽ2A&¤fŒŽJÈa`B††ÈA&¤(†²H$rAÂA!"(ˆ!†2AÀA0Ad(ˆ!,‚ˆ#á(1AÀA0AHNˆHŽˆ#qÁÂÑ!‚D„%d(SAD†‚ØRùäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuhd-3.5.5/fpga/usrp1/rbf/rev4/multi_2rxhb_2tx.rbf000077500000000000000000005411111224274632000214630ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÖÿ@8jÖÿ@8jÖÿ@8ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDUTDUUtuWwuWvuWwuWweVfeV65R"%Òãx×QQQQQQQQQQQQQQQQQQQQQQQQQQQQ(*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*â"ôBB#Œó88#ôBB/$ôBB/$ôBB/$ôBB/$ôBB#,ôBB/Dò$$CLò$$OBò$$OBöddOFöddOFò$$O2øƒƒ3Œó883ôCC?tôGGtôGG4ôCC?4ôCC3<ôCC?Dó44CLó44OCó44OC÷ttOG÷ttOGó44O3øƒƒ3Œò(("ôBB/dõVVoeõVVo%ôBB/$ôBB#,ôBB/Dó44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<Ïù‘‘iò&&cÌó<<ÏÃó<<ÏÓ÷}}ß×÷}}ßÇó<<Ï#ø‚‚#Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ló44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,Ã,öbb+!Ìò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,Ïø8:ã#üÂÂ/ìüÎÎïìüÎÎï,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâþîîïîþîîïÎò,,ÇLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Œò((ƒŒò((‚ò((¢ò**¯¢ò**¯‚ò((üÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏbôFFgÄÅ Ìò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ'ÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñËÁʬÌʬÌʬÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñÏüÁÁüÁÁüÁÁüÁÁüÁÁ üÁÁ Ì÷||ϧøŠŠ£Æa$BÂA!$!Žˆ#0AÄA†8ŽrÁˆ!†‚XÄA „d(€8ŽzÑ ˆ#!†‚pAÉADP$€b(ÿbÀaAD0$B(A€x2”!I2AdB€8,B(A€x"„’„!€dB€8¬Â(A€x"Ä(A!„(A"„!¼7õhAF!@Á ÅA!@AbB¨GCŽ2E†ÂA dAFŽˆÒ†bB¨GBŽ"Q`(JäFà(h ‡(&„z$ä(HÂA$`B!@d(ˆßgü<<BˆÂ€(ðÿ2  ‚ „€‚ ˆ‚Bˆ€ ˆ€‚à43×(  H _aB €‚ˆ€0ˆ <>ÙB „‚H  ‚@¿« €€€$Óˆ€B‚ H€ €@OlB€BÀac €‚ „€ „ €Hˆ‚ˆ<‚€($ ‚B B HŠ(@€‚‚¼:þH  € (€  ð®8 ì<â€!P#!€1B4H$Y!ˆ¥!@$ŸJ€ˆÈC€„J ‚Â" $"X@€h" € B€€$Ä%C ,$,$@„D%¡DJ€AC"!(  !Bˆ2‚B¤$„!HÐã "@ˆB (@,È0B‚@$ "@€ B<# €‚ " €H$(B  ‚€(($Að‚ÁÀ! „ @,H(!ˆ€$(DR " C$€¨$ˆB0„€H äª>â@!¢A€„ !H‚‚,©$€B" „ˆ(AŠ‚JØ B ¦)"($ˆ†0ÂDˆB@H(È»nÀÏÃFÒ:H$A²D!€#,B(ÂA €bÂX$€.(‚B‚„‘‚+!" H L‚$¢HˆB€x4€J¡(€ˆHà( $@ „)"€"ˆ ,¨$‚"* ($ †"hS ¤!"€è("¨I„˜Ra¡D€ B`&@!$à¨$("ˆ€„*¨J4"$â†"ˆ‚B‚)„ˆNBWÈ ƒ$R J€0$H"Àa€¢$€€12‚" "€(A€$H ˆÀS„”¨x¢O""&¡$&¡N!€"húˆ ˆ¤„"Ž4@‚HÂ*¤$@á#¦$J!ˆJˆF"²"H(!€„,NBˆFâ$Œ$¤„J´Xð"$ *¡”#«ˆ†È."$X¸ƒ¡Á;+ÁŠ#!Á€¥Ñ0A(€!(°"ˆˆH*H!Š"‚&ÂJÂMA0‡¤"t! B(*"D€$¡"^ª’‚¢²#¬")¨)@‚i(*¬+M†V¢€$‚"â l*Œ2(jH"!&ˆ€ïR JJC„I£ˆ¢Š¡ªh€ŠŒB!b`«+‰¦#¬¢(Šˆ:¡œ!#!4ˆ#Jä)Jƒ$ˆˆ$B(*„‚b)Â"ŽÃc""€‚€("(ˆŠ  A‚#b  HˆX ˆ(B€‚B„ï„  D(`B H (H ˆ€"B €$†ŠŠ „‚ "b Xˆ(„Œ9ô rAŽÀD–¢Bªñ$&+¡(*)²(¢"€"¤,N">Â.CJ¨h$ú¢ƒâ+!8)é"²B­C)f#¤"hF¢a"Žòš¨V"ø’2NZ„&2¢ ª$ª¤bˆ¦D, ‚¨„ˆŒ,¤„h¯^!¡Ja¢ƒ2‚$(ÈB²1<¢"€‚±‘¤R€!È1ÂJh!¢(I ŠŠŒŽ¦$b((ФÁ’JŠ"„(’‚@"¢¤NB.B(ª†‚†²¢†´B«F#€Ä_1PDcàB¦#Y¼èA¢‰‚†¢™â!$$¤²)º¡ˆ)¥H\ŠÃ’JöQŠ9’(šÑÒë1©FÁAŽƒ*$ç&´’ˆ­UJ¨ë ž" ˆHHJ€¢‚)&BÈ*ö(ˆOodsSãÍ!C¤%OCõ11ê£Skš_dª¨¬tOòá"/&÷RM$kŠ&±Aé4º£oB*„¤ªx¾ó?ôas?´ÁíõÁÂ+¨ªöaB?Hú$&o(áú‚QN#;º^C;FF±af4;º~"+è^"˜/)¼Âì%µè"®&+¢Ž"#¨bÂ,2‚ü)I•(â$¸"ê$tˆøªj¯„ˆ$¨j„ø\sð#c/&¶AsD¥D£/!ÿ2wFoA¨ªêø£ÃZþñ±ús¡fj®¿ºýqñ??÷qq5ýQÁš¥Š/,òCânánò¤„+›;T/6¬á?;¡Ú?¦d¤ó?;«/&î+ú”’Êý‚šùÂ2+Ì+j?®¢ª¨êü"‚‚˜üKi‰„Šö¢‚®¢N"îhלּˆ¨$êdŠƒÆó=2/¢TTàV³U¤Wø†Ob¸´ª*®Ã;Ⱦ±-~!fJ¢¾ª¥óþÂ+žB/¸Ñ¡n’/2¶Røñ†oKú”¾CÂ3çÿ±²/´Aæ¶aã2¿³å,¶b»ÂùRÒ+Äêé'ù²bNÂî"+ª*¨jn‚+ÄèþIIŸ„†®b+*+‚¯ŽþÈJ§ˆJ¨êêö|xðE.E/CÖ4vñaIá8wEò„2A$sÅòÁl8sFb7GZø2E/ÜBöÁ+Á>-aM#Ž_$Â2G((R%,ñ!d8SBb?D¨‚'C/ÜJúÁ£Ñ¾øAË(Ž#Ç,†’$¬R$¬"î8Bƈ?Ƹ"ØB¸*ü*䈩ˆžÎ£CÂÄ/äBôQ.D/–do„öæS(O8…úå$O,±Aèn1Aî„/G8Ó.„/äBøA.„?–¤o„òÄS¨O8…òÕdO(±Aèj1A®ø2„?5ãBøRABøCBøRaÉúA‹(o<´ˆò¤C‹¨W¬Œ~„òÁˆ¦vAhj„ø"„?„èB˜ÂBØ"ü(„)ž¬oüë& A(CaB (A„€8Ž€(‚ (CaBpAÄA( „8Ž"èA&(pAÈA À£f(B(Á&<3ÖÈC)’DŠ„´$ÁTD`H2$†–RB Š#‚a",%,4!,â(+H+`(@"‚Jˆ¢‚ "„„(„ˆ’Bˆ€ØÔ¢„BX°$„¡AŠ2B"H6!B€($(„1"+B)!+A"B‚. ˜,%(!†ˆÈ( ( B „ †‚#$ˆN\Sƒ*€ D""¨*€B’€Y!‚0`B€"T‚$,AF`„@CB[ƒ !$‚(„!F""(‘! 1a(3$™$4B$ˆB€ (E b(D†"À„ „ÐB*À$B Bd$"‚ 4DŽG3Œ„ !fb$&Ñ¡A€,4"(4šA !ˆ":X$p„’/8„AÀ‚I€"ÁB(‚H $ܪN"Â" B˜!(A82†!1 1(A`$H$$(  ˆABHˆHBA)$À‚SÉA‚2B H($(#ˆAˆ0A‚#$€)$€4AC$!LA ˆòW¡ ’‚B A# ",$(HÂBb"2$(†pA$¨B*J "j,B " BDAHÀD B(€BBA¬8†4 ÄT%"$¨„"˜2À#†b"'%€…‚BB`kbdB Ä".„J$€ˆâh„(D(‚(D"FÎ" ’DHh»¡0‚€(€€ˆ$(€BD€ÂÜ=¾(P(#‰"Á² 1‚Bh!Š‚8A!A!2()HD0! ‘q'R°A‘B`$€Ä"°a((D1AHD%$!)„Bö&f(,$(‚˜B!B""†A"°A##R(‘,”1 „@bH„$„D$ˆ#$À­â` !0"("*¡‚ˆ#a("¡”"8"AL-A(Gà,B"(˜„#‚¼$„(ÒA G$$‚#È+‘T2"!HA@"ˆè(B"B"ˆ#C¡‚ˆ%!ÁA$@€á!¢!A!2$aÂQÑ! H†$Š("$D"F$*ˆ‚‰ˆô«€ÂBJAB¢0’š˜)($¥4F ©€B"(ä!¨A)("‚1B02H%#A†ÂDÀfDŽ…1%V2dˆaIDF!’&ÀA"*ID¢"‚ „‚bäóÐDDˆ‚H€$  B H€$€@(À!)„˜RAD€:Š(    €@(€‚C"Ü?«Lq2´4-1/)ÁBŠ¡aK q"*1¡++“:ô¡È8 ŠùB(@‚r"4DBb*aKB)˜‚HØêF¢H,Ò$B&²ÁbDbbF$¢Â&”"ˆ¡Ð¢ÈèßDT^!TŠÁ$\!äh+"+ˆL8R„Á™L¡ˆ!3##¢#/D±âQCD(\áaqAd!Z)14$I8dmaaIèŒRÔá(T$(F$$èˆ<;|)\¡)•RH€²¢ƒ‚M‚Ž$Ž‚n‚îb€à„¨H)(¡„‚T€¢!#%„qa2aBJ˜‚„+ÁIÁQ#äAEB‚¢(‚ÂÄ&D."(¨/T‚‚žˆ%„„„4&ÙBóDwVOCá*óÂ?ód‘Mƒ®Ò?[ö¶4‡ž‚=•oAøÕ5ŽbN2Jx!ò£’*â1¿S³Áé)ó†Ó?%ò³¢á+ù3oQ·Qa#?õa·QÒfñ$Ã/QöE¤'(¾SOx>S_Gá(ó”Ã;$_Fb)Ozü"ÁmD†Ž‚Tü&E.Anò„"O2Þôa¥8ò„BŽÊ#vDôˆ.o(üJ*gF¨;´$O^ø7w5´AÅ5öa&-ì¼åó2$o(é1•/ý“rS?v!1!ø¢ƒA¨/!úÁ’NB-29Ó18±&”6%¢´ò2?Uõ4E(IòAÅo;åQ–¤/ksÕòQQù’&_,òÑGOôA¤k‚'jCòAÅk‚'h<ü"aAEõAÁ?*¶$ö,„g(ƺHÄŠ¯*rÄü[ì?4ÓdôUwõC^Rr/VúÃ…g"_eù6”/Iù–’_yùÖ?ÿ1Ñ?¤"¡;º/òó7ï9¿×qCòC#ñ3²?û_g±2³2óC'ñcQosç¿WòEAORþ2ñEûÃ_~ä9¿WùÓ=ç8ýg¤;¦ohòÁªm¤+¢nòÁ‚VÜÔT~côeA]Ámä?VzÆòÌnŽêo„xÊúÂj_:þdLCÓ3òA6Ob±õR%á5”RwGôO!»‚ÙFQ2)ùrQ?$ªFjÂ!Šûƒ"'ñQc/½ÓõR?á;±³ñ’!?cs4²2‘"/"óqS/RÕ4÷C$VæÄu_Dû÷2n_>ýÁ7,,=ý"Å{†?Tþ¦"ަoBš¦'(~Üþ†c_FòadMaYöd¥?nrÄúÈæé|ÊxȲêžÂ_Å/SÄA/SòA'aoÄaOä8·Eá(2„$uÁ2!n9Fòs„x2äô"¤MÁ#Áácá¶„á87EŽ2A,ôÁ"n92F*xc¤ƒ'C.Á¯CÒ<áë!MaË(Žcß„ò„"IòÅ*IrÁ îrAŒøcŒˆ'BȯBšÄ¡èéÊÂ%ô2AoBôRA/BôRe)öambO8Õ$ò„SM"_,ñE¢O)ñaB¾âj±aø2„;'/Rü2Q/RüQ/RüaM¡oæ8ò¤s,ò´s,òõ2$òõ2&_n1a_n±aøw„;Vü²ÁïRü’ѯRü’áíáoþŠcOxöˆ¢O8öˆ¢_¬òÁªWlìxáöA,nÄøb„?ÔúbįHþ*Ä©ü*Ä«èɞƑKâIB‚â"db&¢"!Ô„!Â)8Ž$D2A,2E.„1;DÔ-AЄÑ<ŽSÀCD2A,2E&6Q$3;D„-A-AÐmÁ!O($Ò$$T$BM"CdB#ÔQ&#ñTƒà$è5j"*bB#*QJ!"$€d(ÀBˆHä# ¨ ðA‚J‚ˆHŠÖ’D(BàSBL¨‚$ˆ,D,ÒA‘D°…Q¨AP‚!„DïGB²‚˜fa!#äFB"‘"B( 0‚BH$`ŽE(#% qA‚"$"H„$AâDH(#8E(DQ@…&DB¶sA€(%€(P@â„°A$Ò"$HS$D‰A`@!$„3T„E(Dá„H@¿ä Š$H"Š„²B‘D)"À$ñ„(F&DA"d  ò„#€† Â&À&A&DPBÀ¤a`ˆ€ +sA‚˜(+$H€ áHŽ(à@âD$@$B&´D´A‚ra’MA„†AÈg QB B& 0H`$A,4ˆ€D$øœ Bb!‚ „@‚Áa@a$!BA`B A$@FDT€BÀC(B$PD(†D€((,‚('b1`$"$„(!„‚ˆ'*!D Ø !H΄H."ÀJAb()$4dD*b(!€Ä#$šD!@" "`B*ˆü$€¡)(ŽÊAŠ$Œ’&BD‰`DADÈcDD‚˜"ÀÄsŽ 9ÂH($$L&"”…!N%B"CÄ"’" (-*Ä",($8AB$‚„Ãä)D( ‚ã6ˆ†"pŠ"¤BDDˆ'd`(B@ñû€C¨$A„XB!H H€"€! h"@ˆ(!‚€0.€@DB äR<¤ù„!Æ‚a$ ”$B $ˆ€G4#ÂAN"(ˆIB Fa)IZ‚&æ(aDŒ‚,ˆd%4ˆ‚A r„Ȥ!(D†"$$N‚B†Ôt— !HL#‘!D(@!!$,B"aÐCȈH,$ˆ!HC¢„($„AÌ=FLÈA8HB(I„„„"ˆB%V$q‚%!HÁ‚B‚#Q0‚–À“¦ÒA4!",¨it¨ÁÈ`ˆb„Gˆ@„Œx¢†6$€FäB!È)mAOÃL"1`A B+"¡@0$@$$AD,(„TAˆÁ‚!(A(H (B(†-ˆÀŒ£NA#ã•REÁ‘È)„âD¨„!ABCfHF0„6€¡aAtŠAÅdNâBj¢BB+AJt„ „b**"â&"$¦$„"Œâ„ÈD*‚®BK"ïÝAâ$‚eABÈ¥„"*áB±‰¡ÁQJ‚NžD(@ƒ¨A !!4$á#AáAHBá)aÑZàBLD„‘B+B"E²$"Â$ˆ-ïCA „$ì!¢ ˆÁ‚p!8‚NÁ ‰!D!!$‚ ˆ5À„D* €±"áŽ"„A†R`B`D!"…„ˆD€¸¨ hI$,!2ä$'HˆÆ£B%„vÄH%„2“,¹“¥A#ñBj)˜òDÑ#iaJ"ÄABHCÊ"ŽPh¤)"2$(A ˆ$ê$rDñHÔóH  !D€HJ#‚@ "„p„@D€ÿY „ˆ$A$B€‚$€HB€(€B" "€`( ÂzCÃA/E¤AB°µ‚ªXY¨i!©è/L8b"dF+ÚKÄžALøR±Ä2KE4$Öb!†Bä$õA%´BäD‚ÔQ‰µ"ƒ¡‚¯A(ø!(&X…‚WŠŽ"A@Â"M$t*‚âB„#”".„‹BÈiŒ¼‚ž$?EädÆJ51€ñ¡!"‚ŽCcq´„HCÂ%²+°Q!XSC©ˆ ‡ž",¡MêaA`b1-!¡)(LÔHŠ˜!•D‰I$(4„"ÒCbNFQ-BN!Ze$Ž1ˆž"I7¼1¥ÔKAF”DØC5K’'IäÔ¡E(ž‚\!È,4D´aæb‚dFjäV¨Ä#ÒC‚²¸ºš’$‰ä*r„¢*B¦ÂF8b $.¨.D) â(ôˆS$]6/ódÕN"!ýsŽuo%¹Ãõô‡/3²Aø–îÕo§ØO]õ“R[¦/AöDÁ/Iý!2_DÛ&öòÕÎryå4öD/cô×TÜtùA‚môÑBŽ"/{¾dôeÂ+eRúG3kJ/†{i·´ñ‚<둟±ó¤4·Ú¯Jò-¢äò¢$O„è¦ÚAòƒäÿölˆ#âBÞ,´îòJ(¦ÖB´B2Ä/(ú&ÆnRÓÄDYó2GG4ñQ/7ò%>Ãjøƒ”Oi»6è{üÄ_iú7ñî¦gB]eβ[‹?dô‡¥~SOýBBD/wvbñ„T$üA–CÁ”o8ä,±õqõ¾r3÷EA_VòÁÃ,k)O4úU4§‰+››#oÚr›ø"«]ŽL¢*/"üL†täXô¢+=(ËdMDŽŠ'Šo†øÌ&ÎDLj¥zÂòâbgJ¯Iñ67ñarmA'4?51/sùfe/þ÷–OKø¶2žä/;µñú÷vû!S¶eþ•òOyãùæC_/òTNS4taôb‡<øUF;gh†ò”Ç/ü“²[“gýReIòeaObÿ!g:·æú–¸Í·¸/‰û‡±O"ú%§&þãŒo(ú$¦&ö‚Äß(þL+OÎÞ[´,tLøDÌ.æíâ넯¬úÌÊH¯¬²ÌúæÞÃÖsê7áaôGQ?ÅC/!ós_/öÑæ_Gñ´+;7/á7õÓR?OßUÆeFôá5?Yß6ö"ÕHü“Q?ôBQ/&óg_4èi½ÖÑbx„âhøV‘/=õñbsEåTöe![ÆOtÿáåÿÊóê>/!ù˜‰³xŠó#’M§jzªÔ&ø$¦®¦/Nô&Ëo¦ºmö.MÂöD(Ï$ÞlîÈþ&èoÌøB‚¤ôŠJ¯„ê.úÛ—p"äô2dE16MaIä8sEò„2IóÁ2G,(Ányt!Ä„7G"'C\ü2dMÁ#ÁákA-!AŽs[Ž"A,ôÁ*ñá–#ua„xS¤/SÄÁ¯CòÁ§¾è4ŒŽcׄŽ"A¬tÁñÁŽ3raŒxcŒø"D*ÜJ–Ä¡èáì8ý-…/v&õA'R/×ò6qM¡o:—¤O;—¤l³Aòµ6Æ?j1aj±aü3„?/ñ%…/?æRøS.…/1ÖúEŽ£Oxå(ú„WŽ¢_lñÁâ_)ñÁæjqAô¡Dú2„?]ú"į]þ*„¯ü*„¯Ÿ®üŽ"_:ôŒ¢O8ôŒ¢×._¬~ÄúÅîæþALæþAÌ/ÆøÃÌ/FüŠÌ¯B¼Šü*Ä«lÉþFKoHAÁ"Q&QÄA@BÂ+!Ž@1°¢"SáB4"1H1Ô„QP"m#õ„BE"Q$Ð$db@JúA,-A$!Da†!G("EEM"Á.¤#ê(#h$ÀA.'A*1Ä*È""$ÑA„2A(HQÂd¶G¡„*XªA3$a á&9!'DdB0Ä#TAƒ6d!ŠqA¦$aL¤!c,¨‚%Ä$€"h"IHúd‚ d,…r…ñºà!!ÂA#A5ŠÄ‚#„Da@d!/EØA"h,Á)8‚H.hMB"DB7DÐÂ1Cb!#Ä!A’K„C„$$(àh b"'H„K‚ˆ#OØ=ŸˆPEBŠ‚²4±ÕÁ!AABBAIp"$€b!"ˆA„ AØÁD"€’H”0(€à„Dñ-¦$O!  t"(0¢xÀ!L)BÁdB†B‚8&BLi°&$)¥"HD0BÀ! 1&š4AbB@´*dXB(ABCÂHf„$‹„ŽÚÆÂ"†È ƒ„1""C‚A”b"œ%„‘DIAJA"@‘X(#! (aA((‚‰<²4„I2$dÆF&HhŒ„J8H/OD€3AHa°!H!¡EAJBB† äx"DB$ˆÄ4H"I$ÀBƒeH¡!„HÔ‚D$„,Š=I!`)!È!"0‚!E„JA”2(`1a((€r"""!IH,!„AB!„"„D /µ˜æB*&á(,˜XpA$¥B"".bI’ÂÈB€$4H9$€„Ae$C!‚bD ‚Fd"l"D‡L(%4¤*F¤Bˆ &ŠBa()HDBØB;x4`B`! $HÁ„!@²$ˆáˆAbD(&¤Dˆ!Ià%B€‚˜"A¢$C‚$A&Â$HŒ”"F¨$A†„"„"¨$p!$!"ÐW  A B‚$*‚1"D""#$³B¢%!#D$€@¢°†‚Â$,Ä„B ‚)D‚!ü>éPB:!°Dƒ)#“$ ’B#"„"Àâ’#!Ô$ˆ„)1"à"k$,&À!,9$âP„†šT…! RD€ YD„"$B XHhX B(€A"r@B@&1<(*H¢0HA(D$‚p‘BDH$Cb(„€ÄD@ÆÀõ³„3"†2-/$‚¨!-(ÂÂ(€ŠE‚ù"DT-BŽQ@„`"(+ƒ(#Q$`"0eM$¦R!Ž$À$€aˆXBÁ"À‚D"È2D‰”DJ¤H‚`Bð3*C!'V@%AAt""$Ñ!N!À"€ŠK’Dƒ„A"A „È‘£MA$b@A!±DÂIˆ‘„І¸$ÃB€$h+„ˆÅ%„È!$E,á!"N:((L¢A“”Q´µÒ„ra"„r$ÁABFÁ(FAH(dD‚…‚‰Éô†y Q!ˆY"$D&&(D@„HÄdDDS‚1%DiIq’¤"˜†!‚’„$ÈK%HBEâ22 b"`BHF‘AB" BÂC„Bè<ë08 D!NbÀ‚$Ž!$‚$ª±Aj”…!H"0¢B(R Y€‚Ä‚LB$òA„”Ãà)¸J ˆ°Aˆ H¨H &L.ˆL„ЍÐdL‚•DJá($¡B-T°‚9Âj„d†E¢hRX("¨UˆO%#¨"¦¤D!Êdc‚²D$¤DŠÚ„„,ȈxŒæH"Ä#@.B„”("Á(É¢Fé2"«"&2D#„"ÄÉs†„„ ˆ$ €BDB D !$%ˆ!F"‰(€!B(°""€ˆˆˆ ¢„D(Hˆ ‚ ¢™€"¤ˆ Š€„‚ !¤˜B$ˆ‚($L)H€(a("‚€¨ÄDHˆˆ(‚ ˆ $‚‚Œl7ØD.V„$ì$´T¢Eá!»„é)è)‰Â"ù‚KC;FI´D¼‡ÙCµ¤¸4¤ÁŠÝRÌŽFžãOH˜L¨‘OlùÁ’K¢G©"Ft!¤.IºÂ¬µ+u/¹È¨•iK](nBsJbC¦ŠHLÎHnDNL,ä"æ,ŒØh­‚‰¸ˆšL.,1a$$)¨Ê†DA*¹‚B@¡4R!(è-¤A©Cê11:1"+JJè†$²„²Q£N(ˆl¡N"+)+ꊨBàBèJ(2hHЍ(&䄨ŒB!BŽËãÚÁT#ÕmHÂQO!ä!7A"8HDHb~DF&*¦ŒZ^!†1B'I+„B"è)¢H‚vÁF¢DBHH!Lr+ô„™„9H‘I”…ˆkˆøDhOÖj’n!Œ¢"ÌbÄÄ®bˆD H"ªòž\!O$õ2E/A³GØ"öf‡OÿÃtÞÅŽ–O+9^ó(¼!ü¦jòE„;Gfñ•¦{QNí'òä…+m[…^‚O[½²²Ó÷U—O+úQ”!Gq/ñ%¦oó³vfüd_Òcú“”®8_¼øt‘¯ׄý+oeýå9ëÎx&úGªªòÁíÏŽ¾„ºLú‰%n¬/D”L¯lìÈò¢nO‚ºdøŠfo¨Dø¤DÏ$8Î)ñ³ÓOTçÑ"ôAC/v±võTÅ-æ,êj¨8/÷ÑÂ"®—Z¹òADOäfôFt;A6Ä%o¼RñCÓþug/HµWó‘–,ó´”oø[»vûrd.!]Ã^Õ/Oþ‚+_‰»ßôSB/´ücÞ¯—ø5bî¥;*O"²¦ú$%ŸŠîžú­!ßú!$nh‹&Ï"öâä.j/‚þ$.ëŒ,Ô‚ÌM™úQI$g/Wõ3"O5á4ôBC[g=÷O~üä£{¤Ž&’/&ûâá8þ•²_:ý6%öEDñtsoöFå;üO<ôÒQ/µ“ûÔ7~Ófÿó”¾¶®¢ocö‘sÿ‘¶UþVaM%Rúµ–O?ý#•¯Îú_øO¹õÁA­êŸßýºö\¾æögŠLº¤øä¨_^þ)íŸÚø„äÿòllÂüD¤ï.ôÌ$¯âüˆèo¬$ܪtèì;†<÷e;571Ô2”C_qÓbþõÂ{//iú2">ƒÎá/,òƒä?K}#áBÔEöår~áõÂ5}’?<|ÁóRQ?#ù“§_uötªø¦okú”ã\ñ6Âiû±”AOFö!eZï,ÿU§ÿLûªÛo¥ü[¿$õêùoýúK_,ød&oBêJšäOšþídÈèÊÞò-dÄäÎú¨ÂïDòÈF¯®ö†È„,tJhÎÿc /CÄA/CöA#Áacá¶„ä87ÅŽ2A,3„$!üá–#qaÄ„7F^„/CDõ2$MÁ+AákO–O8³ÅÑ$ôÅ2IñÅ"‚j9D*xc¤‡'S.Á§COüA¾ÄaÍAŽcׄ†Ô¡uÁ*úáŽ3ra 7Æ+‚'BH¯BšÆ¡èéÂYƒ[R/Sw"õA'R/ÖòvaM#O:×$ò¤s,òõ2$ö¥2&úµf_j±aþ3„;'?Rø2a/RøÒA/Røam¡oÖ2òäs,ò¤s,úÅ2$ò…dkñAdjñA„/CxÓõ"„¯Yô*„¿ô*„¯–¬ÿ•¬o8”,o8”¬W®_„~„zEmêĦþAì/ÂøÃL.̯dö(Ä«DBüJbɾNôÂê$X$M"Q&CÃ1LÑ%%!Ø8Ž“Àƒ$!."Q&A1Ô$RêR*Ñ8O(EBØ$LØ$~hB'LLBxAÌA$pˆ4ÈIz„TˆA„IR„.„„©cIb.B(#ÄÁMŠ¢ C2**D‘â0V0G$Aò$a*LÂ(G(JC&‚‘dD.AIˆ$r¤xHB‘‚Lh%D*DDÄBìH&dJB,FÄH0ˆD«J›ž( H!ŽD'¨ ˆLL…bÂ!.R1BIâ"Y,ƒkH,Ã$ AD"BŽD*˜!PˆF‚‚V‚R’`D„pD˜B¨A*†ÆD¨ˆI?‚>a# ‘A!€BÈ$(J&ÁB2ABa" D"WAˆ*T€4˜ˆHAR`BBœD @"„DôÍkàH¤ÀƒXP!D`À&`$ŠB"t" „"$D&HH@ä!‚BD$`F "A(BQHB@hB ‚DbÁ"ä‚A &ˆ Ú1-H-HHDaE*Œj$JBÒ$Á D‚4!G!4`B$D!&ÔAÂÁL‚ ¤°JhB4„"(C2D‡BB&H(#B)M¨sª"4À!@‚†$"†£$I À" À$AbH€A!B1A`D€€AAÀKcÏ¢ R&@Â@„–"(",2$+H(A(D´Ar$&2#4$(€+(IÆŒBˆ2""Èá0$1@„0„@DñâîÀ.DC¥–$Á#O(…."kXL$DhF!‰ˆÄTaH€ÔB†2$´¤%”)MB(°D(aB#ÙH+@1DCdÈ(€äHFl*0$‡ÄA"jÒH†˜Bh©Æx3Î.$H(D,!Â$0B(†à(´b!„"+AMD db D§8*DJB„%([BD€‚BdD¨ƒA2H$nˆA€„ÂAÿÉNÓ$$A¤B0$3¤H#Á‚L2‚I…àBŠCÈB†DBàh’€¸4àc.$€£ˆ)G(ˆ-XÀHKˆA¡ "¨BE‚Ï"DÐH¤B€8J„àö;­È¢+"EöA‘&¢#$’$ÐADpD¶VBˆH$Ad>„CO2„´B"…D¤(…‘Ä`D A(„Gˆœƒ”BÁ„E]‘"D$$@¡D&AD‚&D¤!H@D„ ¸AH¶HÁˆ$„DD(H†BƒˆÒ„9¦¸C"d!,‘A%!<‰â!ÙDbA@TD$•"i„H€QA#ãD2ÁPDFä„hC)IÖ„!ŠRIˆÀÈED.„DPAhH(Exd1ˆF„DßÈB4"‚$‚¨"ˆ@AD0BA áIE!ˆ• $àD $ì"4%¤!1GH-AK!,Ž"ˆI¨(+„M‘jhNDpv¡„¤I¨VXȆ„‚[°$!(„¤D""†áŽDT å$Ô$C(\ˆKD „$"¤Dˆ°( „HŒ ¿ÌtAA"áD)âD¤"ˆHDBcA(B‚I¡ˆ"ˆ–ÑAˆˆJB H¤L)BBB‚"D†ñHa""CÄA"F‚ Œ DlF´Â¨BR IˆIn#H4@!„HF&lD „´Cˆƒ*FJ8ChHƒ‘ˆ‚„’„(€q8(D„…äRLD"(‚Ÿ† &AB€BBBÆ¢Bä!ˆÄ‚A!‚g$#hH3„äD$(JlHG‚HIDÑ ˆDŠˆH(8IŽ„D€¤ˆCHKˆI‚ä„4$Œ„á|1h€bD „‚ " #$B„$"„€ÀDD€H‚B**¢b"D“‚‚  ßm$BL(Za(*„0! HBH Db*(" „ˆ@ DB„BD‡ˆ˜Œ È„(""*ˆ²!ˆB‚h.™³†µVôTTND+#‘Q+’+2S˜2K‚m*•ND+B*ädDÎ"DŽ!FBCa4VñB#CíôD!ACY$¤ŒDQAKMO¸4hÅM^ȃøX(–Aˆ"(¸¤8ÌŽMèB*Ö‰¦$ƒâZ&èFúèFÄÂJˆ¬&O_G8G!€ˆ¢EàB¤H.¤+ˆ2LŒnl‚‚J”„!KäI»…„¨”ˆˆÂÖÄš(aHBŠhA„$dÎÑN!˜ÈJøÁˆŠˆôÁ„(bDD(€B¼HÚ„¢BEØ4e`ˆB¢„†XH|<å!.a+$1¤¤o2Ô˜’ª’£M!†cJQ0!Èèî$œ"žÄK…)Œ<(Š €£˜ÊÕA¥žFDBf„ˆ¸DQ$PHO„üÌ‹ˆ’¤Hè0AH$†„¨„nD†ƒØD´‰„¢Èo8Bòbeg~”qóFQ/sdóÁÚüóG¾†_&ª˜?bã^ù7CC¿!×A¸õÓrGú¤ñ[^nìAþ†Ñ;ü{îkoáEèX±e¢¡Qè\q$ññÄ.tOøRAFäGïÔT½!óÇÆ¯lóLÁ›èßJïNóÄáÏ<¨κ¤ú%)˜þ(ÌúHlÏ–|+ña­—ZK®.¨Î¤o2܈òDH‹„OÆêš=”(]d;5o5µQ´Aõsf{"Oî¼c²2ó¦´†·"wAóÇ2o4ö6ENAnaO6övåþ£/.ÿFv3ôՃΒîö_,|õt1¥˜Šr´dC©,OEöQ1ÑDäDÒQîìUÔŒû(N­Ù“éŒéÎú‰œŸ’d–_ˆx$¤**öeIÏÂò¨„—”iÏÄÂ%Ÿžš!OLnÈ®îã¨HÊXÈNê&"óDc²VõSR^sãvü£7KWDÁ–/kú´1owäC÷C·"y6ñe$ne[oo4÷w¶?æR÷G;•=ôBÑhó!”[³_MêIâB¹5ÿ•¤]öDqORø$RÖî_øåT;_UøÒ㩼ÑýÑ‘…[8_FäBþňK*OBøalß‚ö-ÁOòÄ­¿Æö)mß’ú¬DZêBúì¨/¢zĸHÄèÎúäáSÙRßbö!7;T/ôRR3Õdô¡7{ÂOeëBù²¦k_búsä>ES¾TöEaGDEO.µç÷%¤ã=õƒRü³sOSûcµOòô„>”>´Iö´„SíýdõBVQGO^ö´[8B_5ýÒû]üù!n1߆þE­L¸$¸$ú„äÆþ-éOú„ÅdŸÆö,)ßÊîZú¡¤Ë¤ÏªÒ†èŒüHÈÊòèá¯|/CÄA/CÒ”BakAö„Žs[Ž2O(Ñ!S$,Áj9RFˆ7Gø2Ä>Á/CòÁ+Aácá–Žs[,ôÁ2ABn)qa$ôs„ˆ'Cü:äϸÄáãÁaÉä8rMÈ"A¬tÁbŒb8BÆ"7ƈ%„ü*$IœŠˆéÜ8…/1äSø’cOúÖcOó„sIû„sIóÕ2[´_)óekqaô¡Fø3„;W_Sø2AÏSøASø’yÏú–yÍ!O¸–¬O8”,W®_„v¥rE|¡öA,—jÄø"„?ÜâBØJö(„«HB¸J–¬o´¼E$MbAGb@LDD†$˜„#õ„’BAI‘$QGBDLqAÄAFDAT‚M#ñ„@M"QGBDDÄtˆLAT&Ør„"–„„ID˜$Ex$LÔBl(CÂÂP‚l¢(ŽŠhaEC AB'AŽT!'A0 ¡(I$‘EAhD(S¤JdLhlHGH†„HLD›JD…$‚•IC²äÈ”ˆ^_)4$ÀBANšK‚8‚àx%A&F‘*”#)4A`(’I„AdLQÈ.dAS(¥AèLA1D‚ˆDD€D¥,AA"dDE¡JI"ÈHˆ‰øD(Ü8WÈ(Š#B˜Ø D1B/$$”$IG/4ðBA(6¤!*H„ÑA‚”!B0‹”A`#B"”À""@˜¡H €"„B`ŸÎH!R%!ââ¢#ƒT#2„*eD …‚DBâHV‘$„BtTá"’D(H``D‹A!!âA–Œ%L"D¬¨Àh(h†ˆ’„B!\7ÿh(F±„ˆ2q2‚Zd"/!ÄD)’$)ÐA"å%ád($NA*Ä%*á‘"bBŠ2%(!A4D$B#!8HVa!rh¤…7(2"‚ÈÈ)FX„ÐJ" $øf{)B3d "D±!(áDRDÀ$A0ŠÀäD±¤"1E€(@È$HL(Š„$@Ü5m4(€Haa(!€# AàF!²AB„’!€B„BDˆŒ„2‚@Ä(€2,J*B‘„€H‘!®ÉL+8$++"ˆD.jB4$.DJÂ¥lÁÄFÄS!Â@‘K‚2&6*$zÂdÒA¶D„I´2ÈT(C¡HhÀ1'DnŒ"(‚BN„Fä‚Fh„BL„$"$6È„(Î%£*((@‚"SR(FbCaD(&TFÄAP!J&„B‚r$„Ä2DbF"C²C`$*ä)„2$‚†$[$`ŽG‚H@BˆÈ0ˆ„ˆ(o¡ Da DiC*‚D0dŠd!.Æ h! hÀ„p2”4ˆ"A $"DK„*„hBCˆƒá‚”$@$ÂH‚"hDÃÃN$H(H@*Ä+bAàBL@t„¡)V!!‚â6 ”C(D%Á"ˆ#G&"`H") ˆ„9¨DÁI!‚(Cè"AðDh…‚ H-„ýÀABˆCH(šD!hQ$2€$ÌAIH°"B<$’Á€HˆD±Â$% H€D"ˆEaˆˆ#l2ÇH $(º$`BFA!*AaÂHA2&dEƒ‚²’â!ˆFB,°ˆt‚¤C"d$&¤‚Ð" (B D‚&ÔBDHˆ„dH!ÿ% B D‚(C$%¤!ÂAhAJ+$)B !(A)¡ˆ"@ˆ„a8""‚`b(ˆ H`(À˜Á&ÄC#Aä‚Ô˜BQ+˜I(ˆyC„C$B¤ˆd(ÈCB!˜dÀ#($ˆ,¡,‚jd(F„B5ŽT©áF5Bš#øFHCA"‚$$X$\äˆäLD˜BÁŠÈdÄÏoBBŠè"(bHHH‚ŠŒ¡J¹!¨B2A0"6„(‘B€FÒ,$$Äe)¨¨ (²H¤$H`$ŒDd$,@"Ò’8 A`A€Ó8DA0&F!$!±"$" H`‚XI(¸„4°¥""ŽJ¢(‰!ˆ¢‚І$ Š(ŠHBH ‹ˆÐ‚ÈH†HXLPDGDb "ChAACOB(Á¡$B(‚‚B‚ ˆ)x$ª´‚¨(MA4(*„X$KJ"ŽBGFa(D‡J‰#2#Š£B„Ž„‚FÆâd3Ô†‚(‚‚LˆB"€€B*„„!ð¡°$L@CA(A@D`A‚DA€ŠJ*"!À¸ƒLt±ÄDM%ÐR’´-aAqGtA´CaB"&$f(p4ÁA$Hð”áCáø„“I²„’K(S¬"N?DbBÀ…LiARHˆ•ÎJ”!GŒJZ4$Kª…B$jì$ HNHF‰dH[H@Xˆ†ØŠÂ(÷í0AK$ABJ)$æDhNVQA0„DA>"â(DQ$xJˆˆ¡”!32r’‚#òÅO¸"‚Ä!",‘A~‚Ej#À‚Š¢(Ê’¢Š"È„±¢¢†ˆÙ4HQ ÌJÆ2ˆ”ŠH(HøDF3À#+‚!éA¡ˆ#¨¨ŠãH«¬‚Kˆ†!$äH¸qøÄŠè#èQŒˆè Š„¦ˆ˜°A‰Š(B’!F$®.+Šòz´Ñ8+L92‡ò„($*¨(&áˆX1P4BE!x‘ëÈkH)ŒÄF$_»÷E',“Ua.eK”_Nùòƒ!wl.”_ü‘ä,úı,ñ!Ä+%OºWñ£T[xü⃎µ[Øšòd¥Iý³DwŽÃ[†/Héuô1ÂK†oÛ$õa†;!_Ò7ÜBÿ¢Ø_?ïGø›¡Ë„CoÊòÏ©­%./jza6‚y¨²ÁüÇh¿úôDÊ=E‰ø‹‹íÈÌøHŠoܘâ߈ôŠ*ïbôh’s‚ô¡„Oqã•BqãXyd²çø”¦k.Aêü"/ûDoC”!!G,O+ÝEÖê;»B…ôÁ5OÛDü³Ä$ã#ñ´”/RôB#_;»ds7ôAA.aUó%ô+c8òµô/œñƒH/<øADϘø/Œ?Jø©*®$®¨%Ó!ظîRþÂýD‡Q<üÉL¯ˆøÎІtÄø‚ʯ¨Ôò6/OwJót_Võ%vO1äñAq~áo{þÔ•nù´$:êùâü³f_^þV![DBþ÷eO=òÔnÑx9ìé·…åWþô'(óS4¶Okò¶r/TùqækôåÆoöDaVöä&_3ý§³¯LúkùO©ùˉ¯Œü‹ìø­&gºÿŽú"††Â‚?’øIêÏ:ôƈÿÔŒÔxÈúÍËïˆüÎ̯¨öÌÊ„ø‚j‹$o¤6ç=1OT—tôSNQLqqõñF{¡_oó¢OCèAæ{ûb”oü´_òd!_FÔaúE¥/W㵡ýÃ/á½Áõ5EsO-úd¤-¶/kú”£OQùb?Mü³õ}AIöe%NMS_÷÷œ/¼ø[’±ü‹È¯šøïŽúú¤"݈-¦®"$'?:ôÂFŸÆöHMÄ´‰üHŸìôŠŒëĭ‚¯¬|Jèdò‰p2äS´2öA+AakaaMŽs4O(“,“$ñá–#sa¤‚?G¸rø2D>Á/CþA#Áák!aKXŽs[4Ž2CøA2IñÁ‚f9RFˆ7Dˆ/SÈÁ¯SÒøA~ÁaÍ!ŽcÛ$Ž"CøA*Q¬þ¡Ž!ƈ?ÆøA„/BÜHü"äÉœJ‰žnÌ1Õ\ôrA>E/äSôaOöañO~‡ó†s8_.³Aÿç2FÿãFôáFüs„7GWü2A>Å/äSüÒqOþVaO1ö¤sM2O8×$óõ2_$÷å_d÷ñDnñA¤/GøS4/Bøm¯BøZI¯BøšiéúÖAí¢O8Ô,ò„C"W¬¤zŒzaz¬þAIÇê”ø*„7„/BœB¯BœB¯B¼‚–ìmd¿– (Q&1ÁEEM#ñ„ÐIeBD1D;DD-AD%ATÐ8O(Ñ$M‚M"A.&„d!D!Ä-A‰!‚!†$$À"A&ÒBÀŽAÀ"‚A'C¸€‰ÒE:#3Q®D‚(EáÈ"B€‘BI‘%*äA(4! Ca1CòB…ˆ#—(i#$#f¢0H b‚4F¸$8B‘FC¢$ŸsÊ@D&!kš‚²ˆzÁ!.°A3E’„,B0AM*dCJH0Ð!sf„À!$Î8'D(P$¢aH&rH Â(O‚d,Ø!dB:¡!)Ñ"š,$ a@"$BÀR$„’BQ$$J²RBFJÁHH° "F"À"H „"B$"¢#ôünà(ÅÀ1¡,K#¢0!#‚F¤!0„;!B`J!@$úAJ€,*‚€‹!$¡À$ÀF0!F€ˆ„’BFD‚((;Õ,#£!€Â"ðb¨`T%"LB$„!)„”A’BIEƒÈP"JªO±B¡F D°ÄD¤A£ä¤b!$""’¤,DB„„ NHE‘Dˆ‚ðæô0¡! "#…,aB€*(@"#¢q*&$@ !€B‚@‚!, d!€!€ ÀC!H€ö¡c€$ H`"0„(‚€ ‚A†„B‚4#HA‚(aˆ!@A„B „&$FhB=(C‚”,!‚â' I‚„„dU+$Ž6¢!!!bq䢒.DB"õ!JšFÆ’B)ˆd+!Š2(’rÀ$D*¢‰Hшá8ô(Šá‚¤.‰!AA(N$@ŒˆL(&ä¨;D €€´ƒ¡$)‚q†Â!($K&q¢KF#tJ‚¨'* L$(41=(’=hp( B‚€ÆHAƒ’(3˜d`„!$ˆ"¿jKb •B0t*Æ"€¨aÊ$"H*!”‚B$B"$0$TxA "(Â@(ˆª h„"D1$4„„C"‰bHŒ€Ò˜2D)€‚E‚4BI‚C!A X(ÀB!D#TM!BHD‚ÔBb!X„­Â8ÒB(‚ƒT2ŽAP„(# ‚(H‚£€”CBb$" "5!D+!&*"A¤ˆ$A`„†4"@H$ŠD €ƒˆì;¿DX,AT`$B0dJ”$EŠE!³BQDX°bA@„d0aJB´A™б‚NECD$hÄ‘B•!F"„$ˆˆðýc)H¶$IDDb(€Â88˜0!$`%P!0aPA,!ˆ1$ ˆ)(E(ˆb(@Œ("ˆàˆFnùƒCBÀB(¨G((E‚C,¨„ª1"$b"ܨ„'paˆO(IAE"b"‚!"­ANL$DQG`"C‚"b‚*$@(‚l„ˆ‰$$P(pQP@¤‚B""@+ƒL €„„’€Z!$è$¡„'&±"ä$‘"$$h€D8àÁ†FB’&BW,A)D§,PBŠ!Т:ÏDHH`!A ˆcDEÄàDD2àA$èD¤A $)Ä‚J„Ab(tH,ØA4AðQD`H +D‰2‚HÁŠ‚Œ²‚ô!ˆB*T„$A€€‚èj J£JAq$ØB(!²‘#I•M¢HIN ˆÀD,aC‚L-„À„0D DBÆ!‚YAe(`„!ÆXHˆ*Ä!$‰(Lˆ†`ˆ`ˆ."Ó $@B$ŠI‚€H"Š‚ˆ‚‚@Dˆ:(Š€BB€”AAL$QDˆ@ôŒ)€ !‚ˆ  €ˆ 8 ((†KĈˆBˆˆ F!„Ä®CˆTA"AÑ!„–%²]B(†Â"O(BQ$.—@uBeRâ'VNÁ'\´Öd+E-¡Š²„¨L_(‘K(ЏDT%K†’DD$ªFæq˜äDœ‚%äó”H4" fÈl$jtAQ„O„$‰üL‚‰@†ø£÷BEB€Ht‚$*y‘¤‰]Dˆ„ ˜¸hN’‚U¢ŒŠèd$dC3¸8"#+‰F1FBJ£DHŽ‘G,òA˜Œ˜EŠLh„È„„‹‚!ˆ*ø$Á<¤„‚B $ŠtˆB(‚&ȘÃ$A,$1â!ô”A¸Š1„à,¢´‚n…#BTˆ%bˆ@!e/%„ƒˆM2(JƒaL&*ÔAÒB(t"¡F‰ÔÈ‚+dA#4Äs’$#’G#b‚u8$O†4aDCO„HBDÒ(X)‰È&/v o$qQÕfŒ³F±RÒ&ÖQ±Æécì+:Á/HñqG~¢ö†Ò.ä?Q’„?9õ"ô/XóÕ"NüB´oõQâ?HºÆñÂÑGø´£W$+˜SüôãM{/(ávú%[„ÎR/[îÿò_Âøâ,oœüÃ"?Eý<ÒͯôÞ$rE*x§ÿäå­Ã‚ò„dÜ^ô!ÍJ8IçlHÔâè‚r†²ˆò&Ž.¼3LrBõW=44c×Vóa?VôÁ†ž¦ºù¢…lO}º×tósD”aOxú1Ô/̦:µGñƒÁNÂþô[¸{RwvŽ‚²4q&öÃ^"K»V{2%„òÅç/Wñ‚…¯,ûäHwˆ=CÎʯb³}ýWÁü´k8¢gHObòÏmÏ$rªòCoÒHò-A_¶Ø6øJFãxÄÚ†H2ŠŽ.o‚ø’*4_QõFRTsWóQ4õAg'_sö³Fñ´†O+òÒ¶íoôq%/dúW!OFôaåÞ¦_9þ·–?^ñbu_!üÓÒ?ñ‚“o_'öòNq²ö4"_%ûçT{î{ú¢å{!_RäRê\ö…ò?ÏôãoúÍŠŸ$üËC¾ô!^ÿìüÄHÎâjØ"úåÄ?¦þ…eïxòêËÿƶAöMÁ¿âôŽŽÈmJŽ$ï¨øˆˆ-*ŠòŽ1SÔÝ%±Fá%ôRR/óuBo'þâOKù&o+êiê[õ§ÖosøsôOòEdfõá¤Mã_I»ãù‡So=´Ñ“?Tûò‡sþTãkŸojécúâkß~ý’‡¾õYÒUfR®ç_,þÕæÆý‹‹¯<øÈ¿,ø«m/ÒôÛBýÁÏ,ò¤¤-†oJô$Ê?ÖØÜÞþiD_–öHmŸtŒt…èäøÊˆÇ('ˆ¬øŠˆxòèoð2E\ô2emA/ÄaoÔÖâ87EO(“$,3Å,ñá–3qa´!øs„ø2„ü2$M+¾ÈaIâ83Å,ô2CøA‚n9Fˆ?Gˆø2Ä.Á¯CÒ´Ø:aÇ(8vÍj(Cø*C|Áj(îxBtaìÄøcŒ-Œ'B­Ä¯B’Ä¡‰Þz<ÏLüG>D/äCôcKaoSörO|×$û¤sM²_lóA2O.óavîFænñaÄ/Gøsd/Sø²e/SøRA/SøRaoú¶ao1óÄsM2O:×$óå2_$÷¥2_fù¡Fjña„?Cøsd?SøºM¯RøšI¯RøZaÍ¡ïôŒ!Ï<´Œò„CË(w®Œr~ñx­~ax©þaˆ/ÂøCˆ.Ì«ÌBøŠÊBøŠâÉúŽåŸÿ €8A.€1‚#1A/cc!¸9O(M’M’M2Q.–l1D3qAôAD'Lr¡,o¹Rò„Ð4Ñ$‘!O"eB3áBÁ$Äh((˜"†2A€¢"A&.²ÃÉ‚H’DH)ÈFH†ˆAL(Á'DN!iÉ$BB(²B†¦!+ à"•„.A‚"0¤3d!K’-$@u$Â(† ,Ù(hÇAˆD".BE4(Ç$NHE؄ԅÀˆà„ÔSòLÚBH1B)D¦ˆI(á$ÈEi¢!BI‚J£l¢@´26Hˆ*CÌ0*AD0QC§Š)‰xd‰H¨#$Ap)Ø$DÈAB H ˆR$NƒÉœBÄ!Hpˆ @82”BD(EL&!…X "I!$$ˆM40CAA@á‚5„!Ë ŠAˆ(BA‚HA %R¿H1(Ä)4 –!&0#-(Œ‰‚’AN‚ÀàH©7ˆH (,ÊA‘Â*H„"Â-H"€Õ‰ˆ*¡+"‰LB’B*Õ¨/B¢AŒ”!B‚)¤!+Ž›Ã1!ÔH+D"‚&Dƒò"CL!ÄH(‰ÒäAb‰B!ñAX"‰C#œlŽb ŽŠÄ&,A!Ä‹KRŒõ$ˆ‹((.„,”H8J¤C@,$BHâ&ñõ­@Œ@¡3!‰‚DDHB$€ª8C¢€L(HLBa…`Ä B!Œ2((A$ˆN(`D‚R2ŽNC—‹ˆX`0„`A(I‚2BL‘""N"°%Â(C(KH0¤B"('"ˆ" 2"€‚¨"„"Ò`B;a dBŠ„Hˆ„hò}倢%##åB2$š"¨A]‚4‚:G€•ˆ‹AB#D1H#4B“ áT‘DIÅxXL‚¤BªÜC¥§Rƒ„ä„‚ácæ„H üDH6¨HH rÄ"""|JHb„ðH胎q$0S s "k(Ð!JJàŠ1(NC†è!E‘èC¡D(V"FhA"â¨A+8AbðƒH$Š‚„S"‚CFÒŒcD("IªDP‚ˆ&ôŠí€¤€$HŽ%`I8H‚k!N$JÂBÈX€,€.„âH¡4 B*(†$BH.(HÁ¨ HC&JHK¤Œˆƒ©¤Bì6)8$„¥ÁÀb0¸!‰!(H2’8!jÄ!j”$€e(h!`"“#q‚‚†B8B°a`†B#„$ÉrÀ"DA‚’BGC$I!4"Rƒ(ñ”xÀA…â!„2ˆAFA(B‚bQHh"(’‰È*(H0’¨0$@È4€"@’1!@HF¼#L4‡ðRš8)"rAX" HMA,(#µA¡1#B‹%’A(£‚¢H‰‚¤0bJˆ¢!B„Ò„BEˆ&"P"AŒ0!à%eˆH®þ !h$ Dœª.!A‚A‰1Ș(!ˆ+(‚HÀ*"a"È$!BpȈ!(ˆ,‘Œ.4Iˆ“„)¡JCB!,! BÂõSÂIKXD@”ˆ†„èˆz…„ˆà"âˆ#(ˆ´¢´i((€ˆ‚!9‚`ˆ(B…„"HJèŒB,$"$b$Jâ"€a„+4ˆ+*T‚à"òÞ”@bQpA’ˆ$(ñHˆ#‚"HHLŠD2ˆ—!pˆb‚«„B‚ˆÐ8ÌA²ƒ4(b,„$KA´B’HZ!(ÆrI‚B ÁŽs3p"/$ر„‚ü„3$IzTHN¢ b(B T‚‚HhȈŠ(,‚‘ˆ*~$„‚‰Š(¸ÁŠ‚D‹–H¨A„$T"&„.(LYy¨ŒõÒÅ$#ä$€áı(˜IATBˆ&™*!€D¸sé„h„Fކá’8b ¡ˆ‘Jñ(‚„Úш¡HHÊ"´(1F‰’"8#†!”$…‚„%Ä(I@2H(ƒÄÅCN… @P„Pˆ@ ˆŒ8„+0‚xBˆŒ"&"a#@‚T(HF"¤6€‚Á(‹tŒ„–( Á( ñŸ®D„"DI„Œ‚€`! !H((ˆ(€" !&h Ä(Á`Œ(Al>ýà/±ô5/Ülæ(ZDŽ‚AŽˆ—dŽ‚#n®%¡ˆ|¸؈᩺á ŠÁ!%ñˆ›œò„!+b×’„6ዲ¸¤4ƒæˆh,‰ÄDÌæ"áÏ M$.6>Dx*Öˆ‡ô(bH̦Ã>*:ž‚Xˆ)"s"2ðjŒTƒ21gHƒØ‚ùfÁ4ÏuÒòLN2O5ø8‚ýd¢O|óÞa¯Q¹e¦?”xÎu¬õ©BbN7_Rô·÷NÓ/ƒö¡É¬óÆš¿±ú¢ÊŸ–ãŒóÛC‹ë„¨?5ø8JŸ2²ˆùfŸÖú+%Œú³;Œñª’‹%ªìŒóÆÚ‡oÄôJøÏä±ú´òe(M6+E¯…–HN>”óm󝄯ìï'ýd¬÷º,όبÓ-õ’(OÊþh)#D±HóBv_¡ñ‹/&t!ú•ŸÏTv‰¸"q’‚öÅ­ïFô¦B—2­!JäSTU!#öh?%÷ˆ›‡´?/õª˜Nëµú"+›®C;ᛏáò·ô,)Sãºú"¶*â#ûŠ’-B¯„äc÷lzîñ,ÈF|ô26KbJôZ(/CѲõ9iYtDô¨è/'ý„HÏŠö¤ýˆH‹H/3÷-¾oþ ?ãôe+Ïuó_X=Zµñh7¿„þ·Ìok÷aª+1/Bø+ª_èþƒm/øhÁ;cöE%oGô3A??ã¤ÿA»ëM¿±õJ’ŸžûÚâ¿»¼¸÷k/#ú²¢¾ø=Ù+ò?'ŒþwiBò)‘ž(?¹²óbš/*{–ê…õJR¯„÷4.¯ôþ~ߦó2$#ñvnZ£±òGí¿WölhÏ„÷~D¯MöÖºÏ"ÿ¬zëI¯-ÉúO¬óþ>3Ö£ö%N_õr^ñ[Z¡uQÿJ1¿Ìþ7ïaëa’¢'B/.Þ±þF!¯6¾!´!äTòåDOô³r¼÷Á’¯øÛYŸ¨õJ™Ÿ­úÚë³û8˜*é+ºþXÛŸŠù§ÿûiL†Rª²ú³8Î-8ÞˆÚõȯ¦÷8$ï‡úzÌïçã"3/Cö>Z¤õbO1õmmŸÂ´lö,èÏLôÒ¶ÏæïîõšH/­é¤í.ñú(ïs+Cõ:dMA«A¶ÄaËHa­sÏz×(û¤{"_®óAª_îóaŠnqaøù†úr„?—òrÄ/ö:Ä/‘ô:Ä/‘¶þk‹qoº—8O:—¸¬óA9ï(ñA˜ojqAù¸”ø2„?­âCøCCøCCøcË¡o•ô˜2OþÕ(ó„W2_îñAzÏ(ñA®ÄkñAÌ/CøSÌ/Cü̯CüȯC¼R¾þvÈke4—‰,Q,R…&vHrw„mA%X/8O(,)ÄJâ"3D.€!ZtAè4($"!¤#á(Aˆ X8A.€10„/´H2Bco8O(!Ô$MÐ$ìb#]HLŠu"ÅB.‚D$Dp&h”+(Œp!h+„(XF²б(Š‚Áˆ#“!B(„N(€òˆN"ƒ$!9B‡,2€(‚.ЄŒÂD"H!1HH Cøæ² ŽE P‚!SFÁBˆad4+«HŒ‰ÂB‘‘ #˜Bœ . ()ˆ>"F„*ÂHÁˆKc$‰„™‚£$a"*()c‰!ƒL&©"1HB†ó'"A"Á*H&È "‘H¢h°L‚9$ŠEAIH¡„c‰HBHÄ‚8ñ$œAD.„B’^$€¨N$*dDŠ"R‹Âl.A€¡„!'˜DB* –ÄC ÁB"¡¢!*ˆ1*%Ã2$BD…‚A‚B‚‚$KB* $!d"ˆb§ˆ c„#ˆ¡"! i$‚¤$A`E(A‚ø‘j£BxAaB0R¤Hƒc2))"‚*Ž"T(K(IÒÈA”“è!¤!/!T†Â$‚ȘӢQn„Z¨CŠ$1A‹(K‚^„+x8K‚ RŒ²ˆ„D¦D $,R+! E*$úÆ È€,C("!Œ!XJD @!" Ò!#!&€‚$&(H"…B€*0!I,I,B(Ø!5f-Â"I5‚â"1AC‚b!(„Hð‚XCƒ’`$(†‚„a„ˆFJ (eœ”(nH@8A*¥"$L"¢$DŠ((A ò-}À(EŒÁXO#&á"ÁIA*ACrA”f¨BEq+D!¢.Q^„È)ÂEk&/E"I¡2Aš‚$!ª"B"â+n8H"˜‰‰1”ÚŽI.¡©ä#d‹.*H‰è$:$‹£È.Dηト3HD#1!prŠÁ"0(G"@Ä$H²B!âAƒÒ2dFâ!€#$¸"”˜N" B C9ô(0)‘ðhGCB¢*F¸#„Â’&”H(ˆ&$‰LÈa/S#1$`a„6ä„’ #5¤,)„(ô!fAÌ!€…I!Ò¤ÂI¦$!‚€„‚Œƒ"©Á؈rŒâˆ”!€”"©(¤"„n(àŒ‚‘´¸H„RHõ3ÏŒ)Z"Ð"$(`I(‚!h¨H‚…‹!#"D"¤b(„IÄXŒX 0rHAð”d`È ˆA£1D& DÔ‘ôdùCBJA*B°$(Á"KA„ ¨A)"’€$ƒƒH„"B@ˆÄ„@ HA„'BšDˆDL(Ž BAL2ý¨GC$òH"B`ˆ6Ä&ÄH%$¢$HŽ"‚`DÑq"’$(Ĉ" F@ÈDŠ)‚‚J…€¨”"I¨QHŒ((H(D„‘0ƒ†¨A˜B}Ñ$! ! Ä"€‰$H€$¨"ˆ‡‚˜ˆ(„H`"€‚”@FCa(DH)4ÌDA(A„Fƒˆ‚¦$‚0”,1¨%˜"@"*"D#B¤"!C"¤DHABB*”„@ÑHá"A„.(!"%8ˆ‰±H ƒ¡!ÁA‰„‘DŒ$8D"„H DHBJ(Š‚¡"B#b+(B`"¡2ˆp(„!¦Ä!…ÈH‹Œø(‰(šR…‰KBI$±a¡X‚Ä@H¤DPÈZ(¤E)’,)”‚N/DÈÆc„&HH…˜ŠœˆŠ ,éÊ’š(’(„(Œô’',"™¤É8XJä8â„4š!bFÕŠÁEFaTŒXCxHTˆŒ¨TNˆŠ‚’ )€SˆŠÁEB…ºØH„áBÄD ˆ¯©D"DR„N…ƒ$Ë‘‰¡’€ÄHbHRTÎB¡D3¡!Jè‘„ˆAÈC-ARD‘H‚Š„J$$¡HˆHˆˆB( CB ø‰QN¿C,á‘"$$$! ‚G(%XH%HD€h($€i(PB†ÄBA€’A@"„"„*ĈHP‚B„( …$H„@ „FJŒôe2@ˆ$ #Qˆ/¢DdB $ *$Â%/1!"Q‰bB 4(ò&(‚$DBH€H€$ €À.s .d‹A¡É±(‡‘¨Ž²«‘ºáKÑbÒ¢ù„‘ˆ®‚oÄä„ä„òb(k‰¿3øq1‘?ø…‚¿Ì3Hà´²éâI#š´huAì’ÔTaC˜ªHK…Ctˆ’œ„‚°”ƒ¡YàDdB&ÁH…²(äá(£‘ˆ¡R|Y FH2hB#8(K1IB"êH¢A*Ñ*i2(ƒˆ+)#qHˆ8Ú!‹1+Œï•a‡IÂÐá"´Ѥ±ñ„HHÃôHI²±#!%a%RHNÄLÈ„ND*aD‰!„$4ÄC”B­Q'ND¬3Z-('CR‚ŒtHü(B,Ô‚äÈ,"8¯Bâ$rRŒ²H”,ÂËA‹DÊÓ†,Õˆ´ZDñ1'Ž[E‚£ƒ+R“rBj£DJøÉ‹åNH„Zˆ¯¬„‹…H‹lÅØˆ„ÏŒñˆ‹\Æ\H'‚‡„^ˆ‹ÄLÅÜJ´DD؂ۈñµe$J'‡‹:R¯¥ñÖ‹“oj÷ªJïiÿSºKOƒüÎ’ÿ¹´œ÷bv„þ>d‡†oäû¾>ÿúóM%ÿwùÃ;?4ý»oîùêb­é§ŸO†‚û¢j„u;ùsß3÷mÁ?ÔÙú¿kߺ³ºÿjXGB¯­ò”˜„÷t^þ>LÚ„<ÆâH»Dìq(ôø_òåɃÅÌK}GŽ/)ý#>Už8ïýXxÇBþøÑÌ÷,åþDJõ/có~mý&ê§äo!ò²¶/hñúî/úú‹^>joÆôl,K&NÆïìûo}_óÿßÃ?4ôKÓ?oú†ê¿³2÷zž.„ªé2òjh¶Òqó[;?tEYÕ¶û»)ÿ¦ótæKm‚R¯¥¼ê÷Þt§‹‹BÏÄéA«*ôDÜÅëHãÛ‘ôMHOF₯MO¡õ¶¯Êµ”ñH„ýøhÏÌv‘oçñL~Ïa¶F±RñBrOÃõjª¯Žz¼|þ¢oJëŠù.ìÿüòøï¥û:hÏB¦¦oïþ¶>ßúóe„ÿÿ‡7=?±ÿf~ïnþZø¯¾÷Ì®>¢/:¢g¯„ö)kÿ±óoÇ¿Uö%iß’ø÷¿Ñûþ2Oo÷¢²K„/¬ôšZï‹þúÏÆüè,ŸÍ›´OBèÏòØüËñK1_×ù-ËbÏ&þtÔAÿ¶"o­ñ˜¸Ï…ùÚBžOŽß<>Þ-6GeÏåÖ†õBVúr|Ï£ô¨Îþ<žm’/jû&’§ëo}ú?\>Ž+#‚¶(ö¨vïkûT¦‚ãJ X‚$zˆâDÄaÉ‘Ȉd)$LqbôfÃÀ(„aa"à(paL!‰*@"!`|D( bŠ )DA‰‚‘(@ˆ10H@0.A„„€)"˜ˆÀZãÖ‚²„¨‰²T)40ˆ†âbAØD!„Á*@(Â(ɘBaðBD°‚b(PD Ñ‚BD„€„²D€8D(~ˆ&$`BH€r($5()Câ(þ:`&.DJí6¨jIA"‰2B"r„a"(+/T©C$aDˆ84‡jQ(D2š4Rjá‚–$*Â(9šd;$†Ã„‰‰Å8,ÓÈ”‚ɸh2’h¤Â(J¨A(‚„ã¨:g-D©’H+AÍ+…("Œ‘FY2Œ"Ò4)'!OăÔ"(B?‚,†l†áB&¬B4&D¨B-A€ jA¡(ƒ¶‚!‚:#" ’AA"f|‰B€ˆâlDŒ!€$ÒH#(•‚KA*R¤H¢A"(`a*¨A AÀIpaF±( (Œ¤!H°!„BTŠ$:JØ P(Kc‰˜$D#‰2(Fª–H‚fF¨(Â-ãGHHa%!h‘ie"&d)"pAx‚A¤"Á„$Û$’DBªFéBäh‚Ad!À1MD"ƒU*D1$£Ì›AÀ&.‚€±†„˜!ƒ|HSbHaH†a„‚LÔ©$‘(B) L2„A$8$%ˆ@„€A A‡FˆFAPB2¸H° Ä(A€(Ä%¨!À73‚,Q(À&²A¥(M‚26d”ŽH1\U…”A`I(IQ!%"2(]A(IxB"Ѥ.T”PH„8€5ˆ”(A‘‚б„6°È¡@4!M– ‘DDÆ”‚$E(òÚÑ %‰H"‚ qˆ²"ÁH(ƒ„$F J’D#‚•„D `B$<F€4( Œ˜“N8 ‰FÁP*)"ˆ†ØACRJ(M„ƒ…xÈ!ñH&`4‚.(%‚’BM(íA¤A(A"‰8h%XA!QB68ê‰!J¨ÊRa†.ILDØDÈȈHôÆ*I,Q€±Gˆ"B<ÈB«ƒ""ŠL±AèˆÁ5ìD2„ RE[#!P„hIR°DAq(AŽFKA"ÒC(¢‚A8Á(l‚áˆ$ÂX è(Äsœ!2Â!…Ò¢8¨-"ŠŽÒ"‹V¬1èAB¸Q´ô&ˆD+Bñ!t!(øOHôáR.ÁNAK„˜LNŒ­DY˜JH)Æ$ÿZ5"v(8‚Mˆ-(±˜â(R*"!(h‚ƒÙô(ÏHQB“$ªH«?D’H(Ô„Ø(R+"%D14„âRˆAbBBNrL²d1HD¡DAïAº&¸hƒ„„6#U¼F–EØ„bdMB†ÎTRX,ô„FNõÒH„¯3Ĉ§‘’'¤ð‚I‰‚9"/(ÈF.B*È(ƒÒ£øƒ‚Gñïkx"¸Ø$ø&/3DÁ"8*ÑAâB÷bJ[4/DÔDâÂr$"gÅEt"õˆ')øBL²?>œT4ˆK"dK2O"– ܈t!x!H½qdCA*Úˆ„ˆ(á˜â$ÿçrZz>×+óJ¯¥òF/âû+ò¿:ö´¤?¤ã*ûa¢ßËüjò.›';ݼ&ù³?*qÏþ6$/2ýÑh;Ì'„oöÝ‹÷“¨3GcFª8OÒ·X²zw#õ-¥è‚úö4/‹öáõ?ŸòôÛ)ŸýA;Íb?òÿá_ú,+$k«^ÉÍrw’ÿÏôÎ~MÄ?‘ôaÁÙõÿ-ÏÈÿHRÇ6«x[Œ,ôdënC×còÏŠ¿óöNRNBõz÷vï¦÷‹Ó/Frò"2-S?Núi/ó‚ž'CUaìùªºŸâô_Îß·¾Êì%µKuA÷NúN†ßÛRÎk1-mc?v×¾ôcc?²ó3%U˜(â¾öôrKrÿ­=ט¿±ôAÓŸŠçò³e?Wò#¶K¢ºò2A¿òÏ…—߯ÿíEv$õeAvx¿yþ,ÚOÌòœX¯$á$é^ö©\O1Hó\??"÷Wv?µäµñK^ÿãö}…?ø¢_Æ£6òb˜oüÿúóßkþ§‡%EÑMú…·¯Ûòük¿‚ÿóòœõRS?åõñJ½ñÏòë³ñkGCoõóxmÿ7³Lö5µ·ŒÒˆºxüLÒ_mõóMÿ¨Û¹ùÙR?Ýö®¾n¾ßæýÓy¿Mú6¢Obùó<ïIþSêÏäõlŽïGômmü=©Í¿Ïï5þ/oþT‚Þ+oíÞì7­-'ï5ó#&!tSûZ¿dõ?Lßê-ïÁ›¶¨/!ÿû½ï¼µiú×§ÏR\‘_Xò®«Ïñ÷º_ßê÷ǘ<ñÒImô/^ßÞñ®(¯áñ&GAOsñkaÏõò34ïgRUÏBr$ü,,ïdùÄWoôÛ›µùÉ['¿éù<¾ÏöÿLË·‹oIù–M§ÿßöÖѯåÿì<ÏÆôl-ÝhŸÖÖïÿ~ïÈöž¾Ï%ì­±Òô²†ÍþÿÖgCô>d4agQ/1öŒqŽsßÄã(“$,óE>¤1¥ì9W†A?Çø$ˆoQô(A¯3ÎÁ«A¾ÔÔDóˆwß„±„“l“4_¬‘î9W„K‚wÇK/Cäü:$<¡ïâÑöŒøóÍO(S$ìSD_ìñdîy;|)øH„·Ç+ƒ'Ã)ü:d)<)¾Òv7õSCSôQSôSkÏöVI÷„[‰ó„S‰óÕ„û…„ñ±”jñA‰¿CøSSøQÏSøQSøaÏúE8û„S‰ó„S‰óÅ”÷Œ„åjñA(®„ø:„?ü2„/9þ>„/9ý:„/¾ú—ɯ)óÄW(ó„S(ûÕ¬ÿ¶®éjqaèjña¨¯CøóˆoC¸òÿ>„/‰ý:„+ùë¡ký® ‚‚dB!dpÁÊA…BA„K‘'CO(A€îB‚DóA(mA…ea‚ixô„%D„(a&T†LBÈ$„ÒTHDE1Hˆ£á(…€dB„•ó .ãÌ‘BÙA‰)•´DFT $AN†¬¸H9ƒ‘¢¦q,$, A—†˜A€DdJh˜-Dƒqˆ!q„:Æ„ˆkCÔ˜!C„&(cL¢1ˆ„–r$ØO˜ÊDáIzˆ2¶ a@…†æTá1TˆŽÀ’‡S!ZBt(,q„HÁ˜ÄABIˆQ„&:MJ¸’$DA ±Ä”*TAb &CÔ(`ˆ8]3MK„ˆ„,D!2!CÁ"À!¥„€+!+ˆH!$Ó,¤!Fh!Ž$à!2$-ÀD(Ä$JAÈ3´KA.D(Là1”4†”AŒr",$G$‚¤R+*Ä”¿ùD3©Jqh$¡@ø$!CÔ(‚!8K$‡ˆ!P°Dˆrh:$‚N%ˆÐ$A’$FšAA*‚¢$ ÃJ+(¢ƒ°D‚ب2$IQ„ŠÂ‰8‚Ø$Òa%ƒ„ÁD¤ˆ'ˆ’C4j !#‘¡ƒX*K$âv2X"H!^H²d’Jñl)l28+a¿DBL²XÁ(=<-X2KX-$d#âAÈBii¾˜F)”$pBbˆ1B‰¨Odôãþ0‹01…ˆ‚|$d,Db(ÄBŠ$AÀ"AdH‰(€b(B4‘ @™‡‚`DA$‚‰’„X!(ð!X#‚Zch"(MÄB€Ix „HANˆOHA¤DNH*¸ÜhHBˆBH†B‘HCD„"  EÒl#fB&IŒá(›LLAÄ2IÂÒ,µ!”*DÄ"ƒâX•bFäS2‹Æ«R+R‹B á(Uò!2¬„A„ž()aƒˆ…A´ˆä‘ä”Ê8+!4Áæ)M4(.ÄŒ¦Œ…8$,œ‚„MIsÏÄ"Q«”4p¨D¸djàEAqBâ”$Œ…†dFU(£N2„`H9rDJ¨áDˆ4Ž(c2XHH“è#ô!HMA,âÈÒ!A&AØAF„2*4,È!t$ñ%wÀB($(`HŠAˆ#sD@Äh€Ô$äQ’‰ÈB £Œ"€hD3$ŠÁ(4(Žˆ“dH„J")ApaD‡T(ŠÄ¤)¡ÈBxÊèb„BBI"qB¦BÄAK(!(‰DH"VQVBÈHØ;‚$‡(€aB‚™T„`B†¡hŒˆ4ˆ¡Lh"T*8h$$R‚Q¬( DqȘ …X}Š@‘HHHB°(H"!ÈHˆ$ „! †Ø!„‚#ˆ Aa(€BäȉBDˆÔ$!ª(+A€B ‚ŠAÀ‚)Ød6"ˆ¬h„¤D,Ä‚(&ÄÁH„€2*"ƒDD*¨Q ‚#Aˆ!D¢C!x’UH âÈh‚脘¦„’DKH–D‘¢$‚""¢DFˆH¤„Ž+„TZ “fŒH˜$A"„D2²—ˆ$"Fh!ž‚! rRH€¨E8‚„‚¡ŒB¸+¢A’D@‚UÂ-@b$$@ÂO¢€Q‹ðR(«Ðb$H$ˆQÂp3DCB$¢E‡¢^D(…TÈs¡ÏˆaD$Ð$²H$œIbF™A‡%…øÊA2HÒÄ’X$8iChE˜)&l‹‡DàAÄŠ$B.ˆ¯ã%âÄqB1„'"IøQ‚$"DŽB%(LH'¨D‰tˆ¢H¡%ZH.Hi,f¤c’(!ƒF\$›8h%¤…â(xH*8pH‘ITFB…TD)ÔD¡HE”OH%$8HEäZ;¯¶¤ˆÂBPHðF*,$&!C1DD Ô$ј(E’’!Äd°„"D‚„G"ÐT$„0%ð)D/A£!HUa\ÁB'FSÂJTHG‚*”†„G$0‰Lø$ï̓!"A(!dÄ-!#˜#Iœ"KIfA„cHXAVNBê,èDhBDbØÈŒú¥6Žjqaéjñaˆ/Cøs˜>„/ü8„/ý8„/·úVq‹¹O¾·ˆû¤s‹¸_¬ñÁ¸O(ñÁØOkqAø¬„ø2„?ø4„+éCøÒØC¸Ò¾úÖÍÏÜd(G&4DdxIÎA……Œ8ŽpƒdBHpAÈA@„ˆ3ñ„A!hEèBAD!„-A‰)8ZŽBPˆ,DÈ"Ehb„\55ˆX…(%ÈÁƒáA&8D…‚ˆ“‚J‚˜!,¸ABˆ6„V˜‚¼)b#l*C4¢A"ò!XcèB’Œ‚8()X@\²Èq%¨¢€Aù4‚"Œ†„$i)4“)XêaÄB’!<(L- $*#DA²!b„B`cNˆÐƒa$#õ,!!†Ä†*CŽAŠÒh±$Ä!É‚˜¢…AM!ˆ…ì‚ (i"THDR-NÀ‚!l5Έ‡%Ô(£D‚T„#‚BÂ’P”CÌJ"D(BÏ"„q,¢H„“%á"Tî 8M""E’JQA`‘E8j•¨VŽ0Ba*Y$„B‘X(ÁAÐH(LhD“!¤(OôÚ.$!T!’)VpD2€S$"B(‘”D"4BQŠF±±(!„JbApDš–@aÂÄ($J´H‘ƒ¸DÂO„$LA‚%ú$(„„#äBBhaÔˆ¨$Rí²ðC$I1BP%òH!Bk(-Ž"GÃE¨B)R…‹D.RÉö1‚O$èi„?±¬$#üY†#ÒFÁ$_3D!&Ñ„‘„C6^H¾'&C´A8Bg""GH?B¥B—#”©B †øVD„F¬F¸hJxæO2BI£„,2AA€&T@pB!$`H@¢Aƒ‚€‚¤!£Da8AŽÁ.#Á˜A„(€d„$Fˆ4Hì=°¨˜DA(FvAè($‚TDDÄQPP$ ¤(0IÀ!AÈã’A#ACBXHB@%‚UE‚„Aˆ0R"$€THB@‘!¯ëdK4V6R!H\u"$1:ha`R´\ô‘(B„BŽ,ÎŒâ¤bˆN)ñDSô„ˆ54&4”Ž5(†fJ—dD"‹J.Á'„!XÈW†’Nˆ%e*(dÁbÅ(DD(Ž1Ms…bŒ,qŠ˜B…ÈÅLQH-"NqA£"”¢R„ô†%fD$ô„b"0•bF4AÐ( I#Št˜1_H‚T‚CÂ.BhI4Á"Ç((O)DÂ$ÄÀJb„"A(A'âRËA%(?\AO"”R`$”$aQH-¤äQ”HÐÔ„ÈQ‹B‚HVI¸C"1†#˜hG‰HF”$ B%hˆ!HÅሔ†˜ˆ@J2‚C‚LˆL œ2ßÀh„$0$(!!°˜ˆ0B„!Œ) !IÄ‚0’„‚…DDpJ˜U€Hx$(ÔBÁ¡N9!(ˆ8¯É"‚”"Š#Jˆ”Œ"(ÈB8‚Á"@4@$@B(K9!B‚ˆ,.Ó“"!à$!!À‚"‚‚(À‚$ ,(hˆd€”‰$P"¤„d"„A0!N”J&Aˆ€‚Á&D`RX $X0²!/z1„@LB†‹b´AR’(!B!ò ˜@‰Ä)2M!I‚C”$‚@ æKAB±1C"‚ (¡²“ÌK‰b!`!!—$)¢ƒ"Šá"B(#¹!ˆ/…A#A¡)-ˆ(´‹(€2Ær$@Ä%¤$t‘DH,¨A(šž”(ˆL¹„‚¸D˜Q¦E„˜DÂKŒˆC%ˆhHŠø¹´@b&1$!4%È.($&¸¢ˆ‚ 8¡„52D¼"(h&'Š`*ˆ b( ADÔBÒAJ#ˆ[È"IG¢°!H…(CdAAL’$k(NTAJ”p‚”ă”""‰A"( ¡‚²ªP"‚()ˆˆyˆHƒˆ ˜¡!"$B!BA”1ÑaXÁPâÁFA!bb B„$ÃB I€ò§ù0Œa(¡!Š¢‚„(k@ÁA€T(Š‚ˆŠ„d¥8ˆ‚!PŠIŠò„’Jñ„BLÈBŠ´BÁDH>Ä‚$TDO4ÈF „) ˆŠ„‚Æ<3PPXAI„DhDDƒ„@!$„†(MDJ„ä„"‚R`Á!‚AHP„@$B„CA4ˆ€Ø8 $€¤BHŠFD†AA-”@‘‚‚ €ÊFD! DÊP$ ¨D€NA‹D‚@@H(¤NÃM¨cƒ#q’2vš¨682+(±‚²uq‘ø#(#D$™iEZé8ö†¡i׈‘:ˆ@B(èJ8ƒi!ÖB”„O‚$cD)T3±Hô"HžÄy’-QÔZTBàF般ÈZ¤Ãʬȋ„†²äòþ/p$87AГƈ#æRi„,(˜¢€(º‚HQÀAŠXC¹…˜ކÂ(²ƒ("¢‚R#¡OB4D(Kò‡1#ô…LNBK)è(Ñq% –8$¦ÄDL•ÄAN$`Dh!IÈ„Œ‘’J¡M9ƒÙ2Ò"š2«‰¨Œ“”-"_ƒ Bl#qJ(¨ÁŽqˆh…xˆX2ЏСˆ)ºÒ"2BG"FDxdq‚ú†KHO8}š(¨ˆ/TtD²ÄáXcLŠ8„ޤŠçHw¦´BÁ}fÄHGAG'_BxHT$B`BÈÏ|Cò8AƒõW^/!ó¿¤ôWO?wýåáßôš2åù’²NÓ–þÑ”¿nZkMÅ3ñ“˜Ïåìô_Æ/!û„ލÿŽü¨„.¹=tšriè"ûQ˛ȗ¶_Þò…fÌý]E_Vö×5_TõŽÇGßθȧ\?5~§ýf_FÿÎïixîþ&2?­ôY…¿²þ‡¾olñdÝßSôdäoi÷†–ïdùüDïîøÊro,©åoäüdXƒÖñhO$ѳñ¿1ôbw·÷ÇÝŸ^òÉ/!ò‚†o[öW©‹ñKé÷*e¡DND_døŒŸ'Fu\Ú3éüÈAíú­/õȨª##ùq¿žè†´¨Ü\˜dMeß–ôMM_ÿEk’ø5¿8½CôLË¿íÿ-–XõM/?fø2†/añ†ãçÞGó¿yûOWQÖUò-LÏìø6oìzæüt>o,ýB‚­ÈïÿŽVÇOÕ÷3ï´õSZ?ñ{'ÿ·ÿÅí_ôwž˜oiû¦”[3ßœÿ†ãß\8S_TôDÅ_ýü›ŸÄñLEž1o5½AíΧ¯|þóÈ?+ña¸¢ƒ?#üê©?¼¾ŽþêCöEmÝk¿ÿôqkOÉóD,ÿÖHñIùïh»Ýò|ȯgýç¾/!ò6†/õlø/á~Ÿöîî¯EöemÏÄþ¾JoëúV¾OÈýNòo©ôÚš„ÿnöÏŸ,Û¢ôIµ÷ZŸ±uRû"{ÿsöùí_—öm/Aø””MsîÔÏôá…¯FÔE”ELñÚ{]ߘôÁQN˜ýÉEoôr+ú»Š/#Ó"»2é2ñâê¿8öË«?¬²'ô(iŸ”òAcÿ>ô{6¿<ó/¿½üQR/8õËš?•êÃüqC?/û†2'co#üw½ÏdóžêoñýgEÏÒòMlOlú®ÂïkÿNôÏêýÞÊ/)µÂõÈ~oÅþbp2äô:%O4-aë!/”lŽsϤa(M¤ôÁòáž3qa 7Æ)x2ÅÁ¯BòÁ§>-aéâ8÷F(+8iòÃ:a¤òáž2ƈ7ÇN‚'CE¯cÒ7<þ‚cÁ8÷M(Ž2A_¼ôņôaŸ2ÂD7Ç.„/C¤Â¯C’Ä«A¨ëAœ2ƒÜüGRôCRôcÉò^AÉúÌSÉò„SÉúå_”úÕ_ÖúáÔnñA?GøÓVüERüARüiÍáÖÿ…{‰ó„s‰óÇ:”úå:–úᆮ†þ2Œ?‡âÃø:cCøÚACøZcË¡ï¶óìs‰û„s‰ûå:„÷¤:„ãêñaHOêñaè/Ãxóèø:ô<„«IC¸¶ú¾Eÿ¾…d‚IrhBHTD„—ÄTHPHAI8O(AD˜„¤A&D#'¬/R(!…¦‘£á8YJO8‚ŽÄ,x4á)9EMA¶ÅŒÚ(áHþ„ŒˆŠñ’‚%äHâ32h'ì‡4ú!)!(&"Ú†ú"3O舒‡BB¤pÁˆ™Ô("˜‰‚(Žh!ˆ¨©²Ah„*TBbÇ(Šdb&õ(FO$q‰c1‡Y,ܱÑÂØ$õ‚d-„Fr‚³!QÇdN$òæXõb,¥AKHRŽ4M‡$¯!özj/¤ôBvM‡¤/æöf?>óJV‹;¯$ø¢²_æõÿBÙþÏê?1‡¸tlüòÒ®t¯az~ÿÆÞ?|óVѯ¤ÿ±<=á^}z·˜ûB‚/*ø£Ê‹¨¿(þÉä¯hô!”]dODö–Ö.”/xo]¯n¬4o<ñãïþòE]ÏÎù|Lï!¸æø„_ùôúÈ¿2¸åõ%}”I_„þ½yOÆû&~gOOV¬‚uþ{>o(û6¢/yþWœO&éKü|ú)ÖÌòddÎÇÿâü2¸Oæûä~k©õÊZ¯æûv¡oVBq3ô"C¿AÖ6tÑ1´Æ#ÕñrÇ„ŽK(´sEñ6öy3qaLñsŒN7Cô;ä]¯¤áë–m8sLè(3„?¬ó„!?¸a?îyt!ìÔxs΄'ƒÁ/cÖ¸Ô¾Ò–f83O+8!_¬“$8Qâ?v9—ÒD7ÇMŠ'COBü:f,¸Äâï!ÈˆÃÆŒ¯t8ôA‡C¯¶òCË1Ï<•„/ö8„/ô8„/¶ú–i‹1O¸—¸o:—¸_®óAxo(ñaØ®†OkñaÈ/CøÓ(OCøBC¸šô8„«aË¡oö"£•HSM#uhbHVŽd„ätHDQHEQ(M³õ„±EQ‰EQIR„&DHthXxÁØ4É“H¨3á8 „˜…„äb„5‚ãqAøA…"A8°8Ž!M’„IQ‚,[†.a,7²)¸¹rj#Ø2(ÐB“¡8BŒB‘(B’(,#Iqd^! *IöÁ(`ÂBB1$&RFH¥†8‡H"#‰C¤‚ƒÔ„ÔBÓ"Hw‚"A°„4ù±ö…#ArHBBQˆ,!(lqƒHŒT€T!,T(BH’E#"6€ȘT†LB!M!(EBˆ”‘jx$(±CÂX0„VL1$B,ñ:$`!B„èAÄrãˆX¤R!‹„#ÑÁ2X!cÄ+!Ò!ÂÜŒ‚2E"JQ„°BèA!V‚Cv¢¨pµ:x%Cd’H.ŒáQ$P‡ðBqhLAd"b5äAZ!ƒ‘G´²éæAQ¡¸Tÿ•EâµÄŠ!¹V‚IE®!IA4(.Df8(!“Gr(Áœ!ÊCÔC!äHa")³²ˆQ‡&4‘ƒD$F*“!˜°”(LMØ!¸”*Y„Æä"bÑ$HBrDÊQH‡lÈ©˜(OÈaÔ±ô)‚”U84ŒñN4+_B¸2ÐOâ‚|6¸ÕBÄi"ðr(‰rDòEHÁ.#>,u¥–'B)ó".’ß•¶¼Ò„Ô]2hÊÑ¥Ã.! ù+$‡OE’;)y$¤“Eô!Ä¥ROáºIV„YÄ\OȲ1,H8˜¦lH]Å€Ò$$8Àb@H2(@…Aˆ ÄRR,˜AŒ„E0" %BHf.4!ŒD !H'Á,$è’3IŒ¤ˆ”Ih%gA(FÈDèAÁˆ!LH+†ˆ2“Tb ¡$‰Á!P" 2‚AAlXDðAˆA(ˆ:BDް„‘ß6$Ã"e…CªH,µÖÒh8(%ˆÓ4â$â!Ò$ÂAEшÂAŒžDcD”ˆÒ¤tBd>DªQBTiY|È#BAg‚A-iSAt9¡$8¸-(¡!'A<ÄBІCJ¢"С+dM$˜,á#Âk "DÁA…Á@ö8D%/AB8$ÃF$BXAŽMŠÓH4"B‚$Ì’*F‚AÄ‚Iá„‚å„CÂ&Ñ"I7(IÒa$Ä)!‡B€ø2@šD‰X‚‹!$ƒÔ!4"ZhaN($HBT‚)S‚"ƒ$C$Q(AH4’HYÁ"‚&2aØH!b’bD!„A'[@”’!Ã"¨2E2A(˜"$aŽRC"Q‚ âÒ6÷Àd€„"DD¤ÁD‚¢”&LŒ AÀ$,áD‹†i&"Ì,AÄ„*ä1"¨A“Á%¸ÄÁiL‰’«F5DÔ(($Q$I’(!ÄÊAq$TLN‚ÄŒ¥ÄÈÏ $†DÈAA(@††"TAb"‡HCb„ˆŒ‘B@H§J@v@!ÔH€Ò$AˆÈB"D„ÀCˆR„‚8D@´„‘HÐÔ8JLâB@"aDDŒBED¤8oD$&CdBN8K„Ž-d(BŠÅƒ‡A0,,¸HØD"šBW‹H±©ÇdFjH.D„H†b&"†˜D$M($FÈ…SDAB‘Lƒ1ŒHô$+„B4A¤1A )!è¨)…A(„Pˆ(G„)A+€‘‚ >J,(ÁLä(4L"‰HBH‰H„dA0BAÜ>zðAA)D-B#ìH""…Á¢CB”)*RCø8Š#ø‚˜V‚ú‚HJ±hKÈÂÂ$–DÐ"ˆÁ#ÈÄVS(BŠñ†L´B`$ÀB‰QF‘‰%ä¤ÄŽÂÀLÀBOVKA!$ðBFˆ°&‚hB‚M(!ª¦ŒURHAI‚ŽáL„¢„‹˜nfŽˆ®"œ(Â’$ÒG"XÆÔD(¦¡ŽGD†¤ˆ„ȃÁ…¸‚Š1ˆ,ƒDâ$T„ކ„àHH²ÅÈFJ„”HH‹ÁÎ*8‚AB DÔ„‚Œô„!‚„¢(ÐD+‚qÑrÈBC¤Há!*’2k<£²IÒ&ôA!*"Ñ!øb."Èq.¢SUô*$* ""…‘EÈ„‘Š­ŸzŒV…B#$!èCIá„ $ Z>À+Qe4B%ä‚Z¹„$FÌRÕ±ÁG8Š£.I3A"Å~„AHÔˆ¡$Eˆ;9„IF!€d" ‚aD""0Bb@,‚$$D‚”AB€Ñ(TŒAˆF1B"#bÀÀAŽ*H€V!„B¬Ø(H4‚ð;Š*B€0DDEDRB€†D@hFdƒA@"‚”A#B$5I@d$ ‚0&" ä„@5 8Às‘HÍcR"%¤H"ô„",ò&DL¬«2èƒò¦„/²(´$"æb'‚±Ñ(joDÚØÈùž¶Jò‚JrH•!¯‚ql²D¤"?F2#Fó¡Í$'‚NB1ä$¡hƒþ4”‰£¢>"/$¢£!TIƒˆØ(ØhèA(¤…–¨ÆøŽÏ¯S’§T,„Òv8EÊ´ÄèAj‚ZHõÄBKJ+‚A‚áI²´¡á/ͤ¸â¡ØÏ„ª+N’ïwýb!,˯"Ûdë*±‡ý$‘8AD²OGôBÑž‹‰<¸ˆS-ñC{O'›G‘V²"â¡ÔT¡OEÕIáaA6Â'¡Ë%˜Hшü’[ƒGôBa ÄH$)ä*RBcŠªAOCÁ"W(HErG,¤dC”äA9þÉJÐ%Ù"ô™A&L¡„M“µèÑÜ‘*GTd4‹/AزTe‡=ˆOQÔyŽx„’Å dHM(Lt\…LèˆAüÎHAŸ„ÍQIÌ-DOØHÓ:vdwGÔ3‚üB"g¸†ö"FOHö¤ºùQxÏ*ô"Âêú!%M䤤/ió¦ök÷í—ÿnñ³Á=¿?yõ,ýŸü¤„OI²¤úñaˆö?ÏONú2*Bþ1AN!?8û¤d‘ÿX5Ÿ‹9XZóá±Çÿªÿ,ÎOJ¥!:óqYÏ‚õYïñÕîQØ‘oéñ–oøý­V/(ò˜˜„ó>Ïm9-D_Br%FñABeâbòE"Lþ¤boL‘$OŽû1ßïv#ö†¦o4ö+dCr"ä,ý6vohýž=_húÖ¿5ô‹ƒ?ññS5_õ9{íÙfò&4/Xøåq—òÿHûDbï‚ö,-BOtô§ækQߣù57?=ù[I?¹1òm.Ÿ]õ'i·DK¨.:'1¿äÔúóZ¯±tÙ]X[]–ï©ñB-œO©t†úXø¨~gIOÏDûáaOb6EB/$ö"fn¦î¤#úaˆêKòä9Ïäºhî*ö¤á?G¢Fèoiöò’OgúÕÔ/£ÿÛ’ùÉI3õQ=¯õ»&yåü’¢+ÊooòA¢/ü¥j¯‹þ\$nAMæm÷Sþò"ßgÿ"âñد%õ"r_fêÄz¾ôeŒOHâ#ñaOgñTï!õ–gAñ‰ÏAÙ‚i©Þï¨ûFŠ‹Î8ß{ùH¿sEüv#dÖ$d$ne}c_Nødâ#ò„ªêXÚÉòmè®ä/*üc!ODÖDæhüæ¢/eúîß§öŠÛ?½ñË‹Ÿ<õ¯Yÿçû~vïIø4‚/*ò’¦k"/5þ©ì¯ë~hüLI]dOXüå´î&?öóîú|YúË?mö«o†úcëIx4´4ó#¿Áñnÿ¡õ7QÅYÝÝËÏi±’ñÔ†-š«Úñ¸¾k…¿æ'CU¯QÂAƒÑ¶ÂGÃø†sß„ñ„2ŠñA:Q?¬?æy|aXD7ÇxöÁoBúA'¡~┟87Æ-cøÁ;a¼q"òCžGA–ðwxô'G¯£òáã#ÑuôƒsGDŽ2IñÃ*EôÃðáŸG…†Lxsîx"æA|:Œ<‹áç¡O¡6ùLôqÏBôCBôaÉöA‰ö¤S‰òÄS‰òå„òä„ênñA(î„ør„?âFüaBüABü’aÉþE‰ö¤S‰òÆW‰òõ„òÆ„ènñA(î„ør„?¥âFüqBü’ABüqÉþ6E‹hOºµˆòÄS‰òå„òÔ„¾„ø¤„ø2„?…éB¸ü(„+ÁB¸Rž¬oü‘Z0ƒ„2F&4DdB tA؈H€<O(EÄÂFB,rEèB2I0B$côAmA*iÄ)ÄI<ŽR€$T$§†,2F.¦£Ä†B˜B„Ôˆ‚D˜B˜Ixì8aA‚DŠTˆŽbÁ¦TŒ>‚$ˆ$ ”‚LD„Ò"ä$dÄpAÄDF„\Bƒ„tB)Ú$†±BÓ…1"h„`"A'‘ÀI@ˆ¢Å(C(‘„M(&èDÁAG‚LÌ1AAH„€ø÷U°…b(B0Ä(I’B#hA‹CD%C„ØBDŒ„‘I,„2$‚ äXRŒ2H„$A"…H*QBdH8‰hD‰²Ô”BCÔI!„H,%ѱÔ”$%AcG¤A¤!&2„+!F(XH×D(#TîˆH%8“*Qcl5É–"O(á"TA‚€‚TMÀ†¨%Dhˆ£Ñ1„‰{A¬(lA’ô"&D¡AQ*˜X#2"ðHˆ2ÿò §Xƒ#!4ˆƒeÉÔ$’9†Ä„IŽ“ä*DALè"ô1F‚Q„²td„K!À"MCA"³LBH4E‡"l8(N…²Œõ…B€1$D"FøL#dÂ(´–BØB‘RŠ8Bƒ!ö…ac]»NEÁZA!Ïô,‰£Lr"‚|²˜45)„¬ö,ŽD>C\”š‹„«"¼O‘]ÁO)ÓDÃ!6FQJ(Lâ„F7ÈO!êLR(…xá¡Ô”r˜öD‘O*A›QM5/ÔÄshTðÁ:lÂbˆ(cñBX‰ÙHjŸZ ‚$%ˆ0BÀ†A ¡A…‚TÉE,›”ƒBŽ#!Æ&ÑH„Œr„BXB, (B8D#ád8@d„ŠX!BŠ$Bª9‹Èƒ²(X‰HtAh(…dLI B H`!(KX0)‘)@AHä„âA˜ÀD’I‚ PD„.Ph€˜!@Dd¡(AŒEñnFMXD'pB8…t4i1Cƒ±Fr"O‚‚òÉ&cÉ.ea‘F‹!$’RL2T…a!.—bk2‰È"Â,($(‹!‡pˆ˜C,Áœ.—$6!1‚"äV%N"Çh0Dˆ‡$‡!P„Ʋ‚KŠ‹‚³‡,‘(B(MRbÓIÑ$HÈBd&D¨)hBt*R˜HO"C‚"‚Á-jBp!ƒ‚áBAà!4ˆ[!˜Á!"-‘N*šBH˜g„ A,4ˆ(äYC$$A›DF!2hR`ÂF1‚a¸„8¡$BJQ†!`!¼“„*AƒÒR¡‚àƒ±(D2h%Á$(mAÄ1.0!Hr„”‚$„K¡Ý£•Ã(„E‘BM"L"ä"AAf&$2d$‡a¤ˆP"†1LÒii†BÄ¢‚â#8A‘AR‹\r‚„‡Y%È3`¤P‰¤!FdADOÁ$"DØô“N$Uˆ"Ad"D#DB"D!(A!(A„42¶(IBˆRB4Á&DAE FI”°DAˆ”€1)ÊDƒR$(àp$t„R$`cÀDh*Q‚ˆ6d*A–ÙIÂ!M(ƒXB'"('(Ð"Ȇ‚DB„„h.ˆð˜C’)ŒIb!hY(ÉðL!AÙlALÄNH #TŸ5`%6$Ah!bD0$&DRBB@"!ÄŽ„.RŒ*UH°'DfBD$ƒ„J,$A”„ B Áœ>zH‘gB"%D*«"„,ÄEIñDDADCl$d¿J€0ˆ/b¡ˆ$£X$Œ8R)ÂAŽ#’‚2„)8¢PBRÄ!‰"DEÞ(BˆAO„$ôwˆ cdFH†2LD“„G%2‚AAIL?HˆåÁX"*ÁÇH<ô$"M&šQ(ƒM4ŠÒ‚ÒŠô¨G!AE`A•òHHQDKTNT‰˜D€°D>ÿŽ‚’AH0DBE¥:%HF1¤0á!Œ$è"˜$WˆÐ!X3‹˜2‚)Ñ´"/†jUÙ(!0'%©8AX‘AD 3Q„¤‘‡AD"HN4ñ§­ D¤€4&hG`P"àA$B2(‚,jä1E€@"B7HA 8ŠFÖD˜„pòHD—"‹D‚B¡"B„$¡DIA…H(Ñ‚‘"A&È.Ó M$$DŽ„O(˜Ä($ "D1"@‘¡ŠÐD!¡(w„!bÈ "ìH9„ £!E8m!d…E¡€Hø=ÊÀ"ÀƒXa1ðˆ‚j(B#ÈB€‚€Â"Ài!:!¢CD’!D„€°‘@Á8("@”@@RB0ü3;LÄBÍDJ6ÆÒ–¦$YˆÑ"²ä‘Ž„/ä²FÌ„'Æ%lDnDNFo~2†R.’‹1‚(2²0LØ‚hALüxK¡LXmHD&t."ê!t„ÊDa†3)›1*YLgÒFd„^ƒæÑ$Ì!¤D…"‹a…„ÿgEÒAØ!B£BpAÒ34ŠÇˆ'ÏJB„Ò!rCõ$FdL.$à$Â".!4ÓAƒQGc4¾2F,ô5¦lDŽ0CÑ☡Ÿ%£ˆU‘“Á%væ‚eAGI¥QÔA×”/ÑqtøTl£5Á:Ïrq‰´Dr'æEæZ6-$'(-bŽQŽ"$Ѝ4.à˜XGuž…&¢ˆ™Á‘Í#o!ø¨–=2OjS,O(Ã…*-#¾Yb²œ²ø*ë‚/Tô&˜%Œø%¸˜3>D'ÏÃHE8BFvD‘\ŨEC1öXd_ ö(B¯æ¼ñ?±v¨ãõ§þÏÌurhò&"?´øÝÕÿ:äzïmæDqHäFúÓµ/AùŽïZø®ž?2©ˆ¨oûù+ƒªû„ž‹‘þOJûšŸ)ù¹“O[û‘2“X]OBú–¨ÏÁùŽÍ‡žÏÇu::žs²“Æ{_÷õskw4=q?4õKh?&ôAÇÿýú?/bØBñó¿×ø§Í¿¦üšž)æÄözHøýÓfoìû³œ_ëúŽ?y‰ù‰¿;ñ…‘ŸÙûµºéÁù”ñÏÛø²‰¿‹øœÙÒ2/OHù˜8‰þ©ˆŸÚó[¿œù™™û¹‘1ñ;wcoaqþ¿õôïóXST•“ñl{ÿÁõBåþ†’ï¥ñRZ¯ñ(>o…±¤Oã…ñw„Ÿ‘ñk5O!óA¥¾ÂOËñi>-4/cñ1Õÿúú–»©ú¨ˆ/‡Âh„ú¨É/Êú’º?鹜ºùˆˆŸ˜ú˜µ/¨ú*œç;?†ú"'B/;ø8¸/¸ÚŠûº‹#!M¦/"ñ4¶N"?¼ô3o…Ü*ñºOXƒÒfq>óCo!ÑbõWïäñZz‰ö2Ò3÷da[Bïq5I§$¯$üŽng$'¤…Õªå•68Lÿ'·æÿ´õSS—±EôG5KÛ?~ù=(oar6ô&Q_×ûŸçŸì¿‚ú,D‹fÍ,ޱßkýÿ³¿ò¬/¸ùƒˆŽŸˆùœªO*ñ·—?"ò–6/"ñ6’›ò™³¿¨ò’¶gBÏR’%_(r"ú¢¢?|únL?5ñ‰‹·¨«˜8‡!/£qÚfqò5öFR+C>r/ÅòHabÍ_¿…áäqNúÂÞ¯¡uRòJ¦÷:yot GC]EïCRƒÁaãÑUü‰7ÇÌŽ6GHìôÅð¡ž#qaŒxs82ůCÒ<>a¡8wNêhS&¼3F¼òážÖLxsØbx2Ôqü8¦}ç‘<>aA8·Dâ(ôÁ:EñÁÄ~)qaÕ„xsÍ„§ÃÌ/C‚<èçÍ}ƒË„¯t8ôa‡C¯¶òa‹1Ox—8Ox—8_ìóA8O¨óa®†®†ø2Œ7‡>Œ¯ô8„¯ö(„¯–¬ï–(Ïx—(O8—(_¬óA(o¨saø¢–®†ø2„7‡OBü2KBüiBøiÉúa‰ò„[‰òÄS‰òÅ„òĆî†î†ør„7…nÄ/ô(Ä+AB¼–ìo¶l-(IÁ(8uèBäB1&d…æA‡bñ("ÔH¢¯Aâ(±H‚ÑÊ‚Á,8W&u(R†.‚%øaœmA‹!‹2!DŠø(Ž(†¢$$‹$,rhjC!¦ctAØT‰mA(HŒƒü$O(eAH‡Å$N$,r\hBVèâ7ÜØ†³ˆE²ˆÁB!Ô$¶˜B&1´N!cM䈉‘‚‰‘ƒ‰“‚¤!ˆ‚Ñ„h#´A„"T¤¦4¡#Hƒ˜ƒÈRÌ.()Q!(Ä((D!…QD‰a!"—ÿÝ 3D¨„…b„DÔBF˜„."C¨¢H—(TG,Ô@(X()H *b‚ .(3X(LB‘ˆAYBb'ˆ0«ÐH©!â‚AC(D‰E„FD"a\9|ê$E’ŒÝ"!ˆAL¨%±ËhAhR@wH$²A2H,4"ACÂ*CE!R&Ñ«AYHX!N¯H*‚ØBÁ‘Ç"8"ÁG0H<8D”JAŠÒñ´üÐHÁJŒ‰‘H0!Û©ŠQB°rÉ"1$G’PA„–„BÈI’AšR,¨°¢…²ŽQbÄ(G”B™ÑBH¸‚¥X…aA®j(¡!A†$áaŽ"R¨Bƒ"”‘,•%B˜¹,X„³ÆÅqF„èQ„œsB,9¦L!¸h˜g%qQTPI"Eœ²h‘DÔ‚ñA(€ô‚4°(8+uÁA”RH„_¡–ˆM¤šáÄÜ⼈r"ä!ÒDèA˜+Oq¨¡+¡+F²hd8ÔdƒÑ†„ÁoÈñ¬Åbˆ!„hA$D(HªƒF¡¥„ŠQˆ¨`H1.’ r!4(!D&”D"Ba„†qAà"€‘BÄPI0HH („4Ž"€62ŠÔ(PCˆ2 H¨‚„D‘ˆ(À“¤P( BD!D„AQ˜B„¢pˆOB"1BD,ˆ#ˆˆ„øå½p*ì"F^AHNGùa,Sa#áBQBVöB!Ã5É–!!K8c™*iEjBOŒû„:Žéêqaèjñaˆ/Cøó¸>„/ÿ8„/ý8„/¿ú–勹O½·ˆó”S‹8_­ñÁ8O(ñá8¾†®†ü2„?‡éCø2øC¸ý8„+ñË¡kã/"ÈAŒR…&À¢„„ÈA‚‚„8Ž“¡§‚HÄèEèBX„@G„„!ƒ„xè(AŒˆvDhBÁ0L„F Bˆ7ÁŽ„(åhbÁ<ÒÄJŒ¡H„#A(ÒÄ‚A™ø…"D"JétƒÄ)+Aˆ¯H FùS&˜„AA0zLjD„(A;á…„öA’#¸HR(MÆ*‰1¤B®T‚"ˆ-D…1ŠC±È‘/A(÷.¨à*)Tˆ$Ôˆa( AT'C _‚àu¢4‚ƒ49…¹”$V¸„D*UŠ!Ca„I‚ÈD‹2‰D¥I…2ˆcíˆ%€áA¨b)aHÈC",ˆ|B¤Iƒ˜-¡—Á£‘&4P”Jh1ÇH,Á¨B·( ÐÁdh)X‰”ˆ!LÈBà"&tÈ"H.R@Da"Sv”"ЉM; @FrDÈFiÀD%tBHÄÂ+„./yH‘+¬¤9!4"K(L¡¼(Ôa‘ÄC`A‡|hBR‹%‚0H(²‚ËJ°–ˆÁDCb„DƒØB1(‚±‰áA"ø),ŠJ‹†,AjCBÂh-H&Fô#HH°"Ü1?l"·C'Œ$1EqTx„×HÉ$±"Ô"Y4‚N$HlBƵ˜Òc"á…±‰•HGˆ‰Aª´,ª-2Z!M.BDT`†Dž(Ãr2bˆ'ƒI:5ÿ1#ˆÃ„#âdEbB/¸á†"Ä;eªB†¦”-BHŽD‹ÿh ˆ Ä&"Ž" TH!‚@A$ "!ˆALªA‹„€ƒA'A‚@„@¡‚À‚0)€DT$…ˆ(!Ò=.„‰2#„0A‰AŒ”’„àˆ„(!(H$(C*1I$ ˆ/2((ˆ0ˆ„°ˆñA(L€ˆ*8B B ðïs°FQ‚{§`!ÌBRàQHL$èD2È'MhH(Ê–)MXX!‹R!&äF.0(ÑHŠUŒ²˜‹,YAH’(†ÔÔ‚(†„%’†8d‰R( ¢,A„ (ÐX‰NƒÄ*ÄLˆ‚"Iá¸&8LÜEÎE&ÆKÈR*ÈBG¸BLAä”(D#²THLrIqBÈD†¨„K‚£"¼„Ä,€T„ƒâDÑB‡L ,)ÁXˆí*‘B)Ô!`„,áH$"p‚˜!°H’0Ä!…b„AA0D.A&A!ƒ A Ch¢°„’(À˜C‚:Á)"B¨D«AŒd¢²Hô„I"OA(¸¤4$JȈ†QI"OD\š’FCxŠQ‰2NH(UDPTfY$€“)L”h&PBHE§B!ð$HX©A¤()AH*³$„Ì"ŠÁ„àD¨„"ߺ ! Á@ˆ€A!ŒB RHÀá!€8HF”D„ˆ@Q„A‚ˆ€8aˆBˆFH`E€4È ˜,7¦àD8S BJdH‰ Œ$ˆV$EE!À¨H!€3ÍE$‚0LñA‚"$´D…Bk$ˆ’Ày…PˆK…6blH‚ƒÜŒ´‹ Kb D O".DHBB4ËHó(¼H‘DBC+„D8B£JÔ‚˜$T˜Œˆ˜d,’DDD\„F$ðH„‚>„PHâDŽHƒ!(é(‰æ„A´ŒÃ„†ˆèR7¶„!H 4"#œ!rD’!G„À„JꢄàˆD)ˆ5„¤X¤„‚(°H5QÊhAŠ€8Ì`B ÂL&(D$’H„ÈàŸÕ‡¢@‚Aá„(Q\9B%bm"DÀHJXHh8GTt‚T‰A$H©$N‚À(QT`$"Ôˆ"¤H BhH&!¡ˆ ‚IòDHDéF€Hä„5¡ 2A3‚’"!0$E1"B#ÀH@AB HD@‚PDpB„TJ@ˆ(Š B ô‹þ$„E"%A€,ˆ@H H!D’ÁÔA!‘A@@JÂFĉˆˆDŠ…D‚¼<Å-LJ4Fƒ=J—+BGDg.r‘2B!CXáOƺBXb_ÁF%Ô„lJ‰rFØœ‰üCŠ5±á$¨D±(ôI-AX´AhA‹dEhDÄB™¤H„hˆŒ²H):„Ž”…ØB誤DÊ´”äF¬C†´„8R„´ˆ|b &‰adJ1aFX$„X$L‘&d"è:ˆØB<É\$ Aƒ´HôLCÆ!¡BH¯ÒÅtDÜ”À‚EEäTD¸D²EÔŠ•‡ÑB„GÄ^AÈ@(âDDfU¦D$áI|QhC(G‰„ÔˆÔÄXÈx‰„‰©’?]ð2$‡B’!‹bD-B†Q$ŽBOd!Mm`ŒÔĤ4ˆˆ½‚EÏÃÀYDI$X‚KB%aˆSb\–D(1C&d’dE´A,h„$‹˜J2ˆŽŠ’d…h„‡‚`‚D&8(&*ádX$HJ¨È0D_×Aò%M_R×ݻՄäÖ$ô,j/ˆöÖŸ!ᥡ™_å÷4X5÷á#ßO÷((wVMdŸõÉ¡3ýw¯ÇõšØË‘Z÷4?Þò¦f¯"þ:B/%ó¢"/îúlHï$²ÈùÊROÂúH(JüÑÙ¸ŸüE½C¿4ú‡KŸú…-ݯ)ü냪{”7¶RæÁº˜xšú,,^(JøÒJ/'ú‚f­þoî©íO¼ˆÿ„´Ï-<-{ò÷eMÝQ?$d¤.lÍbîBn^ë‘/iñ3²¾tïëÿ”™ÿ3þkò:æÖv]ôìõ›2¿áý{ÿÿ½ñX•çÿÿjß>öëc¿&û‚?kò"&ïÒþÌN/œòêoStHØ’öÈõß‹vXùMM_|øOC¿<üKIZþMißîüòÏ;‘¨_ÊèzüÛ‰̪¨O)z>Œœbè~þ–o¨÷îÊëÈÚåŒñè¤ÏŒú·/Ð;u{ÿk_”Ñ+T»'‚¬ø-ÄßYñØ+¹>‘?qåSùŸ3¿öòµ¹¯Sò)AÍ,“ùA¡‹Yû<³ÿ…ù‘Ÿ™»8û!á/bòçc'¯/)û"§ºö©8ø%¥}§=)_Rô-µOѳ©ùI—”=#1üƒC‰ôi‰oj÷'WÇ:ñ$¤ùö¥Cù¤´oiú(GFÏÂÒîòB²¯*ñ2†¯«»Äá…¨™::º<û;a·±[K·¿ÂÖäôDíÿ~³•¡™/kó”·ÿ7¿óþç½ßömeׄOš÷Q›ò/=õñþ•¹ýÑQŸ«û~ï¿âú¦¯*ó‚’/#ú¦'¿Úæ=ücÅ~7ÿ”öL!_R´ìóYÉþ¡Ÿ˜øÁƒ=[¿<|Kù‰¡_Òôéöo¼û7„¶äCò„óÿx¡ìÃñ¨¦ï’dOFô,j¯%Ó¢ÿòBïí™Z˜š´˜ÿl]å#óa§Ao4!ãÓ6-8sHø„2ðá»G’¨i¨ÞQ“ÆÌxsˆx1Õ|;Õøˆ~ÑV8·Dá(ô:G­a˜niÂ\øsx2ÌÁ+3O=N¡k%ÍaÉóÌ3Éó„2IòÁzA¬!òážFȿnjx2äBü:dËÁ#¾ÂÔÓÞÂøI§C¯‘t*ôcéòA‹¨ßøµˆú„S‹¨_¬ñA©O¨qAèêqAèêñAˆ/ÃøÓˆBø’ÁBø’ÁBøáÉú–Á‹¨O8µˆú„S‹¨_¬ñÁ¨Ï)ñá,Okqaü¬Æú2„?ù(„/ü(„/ô(„/‘–¬o–„+SC¸ô8„+uË¡oQ÷-vPAH„2E&Q$R¬âô(‚A¨Ä$8ŽRÀA1D8ÕèR!2O"£tAØ4)OA±AÁ3á8EHQH•Ä2Q&4AŠ„ÈA‰HAˆˆ'…ŽR…DBä((Á¦¼;ãL¨HÃ#%8RfÄ"Lx‚2ˆk$†T‚`D`Î"Æ9‚$ƒ ©ÔB(áBi˜IK‚B‚&D¨Bˆ&‰âÈX‚dŠ 8¨,Ñ„!ØTÜ(ƒâ„$t%Ȉ€”h8ñjŠ@´–HBèB”T#º¢%¹f‡(AFÄH(N$Á… #…BÂdDÄ"DF"ŒÒAd‚JA¡"%”-(ŽH2"¸'Aˆ…4‡l"‹$D*D,N(R/x1Kˆ†AB@†”!I!#Â(dIØA„Badˆ¨N*‚'†X""‚$$ÒBdH”A $F±8H<ÆHˆ"È„"'I,h°!È!JV(ˆDÒô%SãGƒ‡d0Q(#1EÈ$†r.Bœ!Dˆ²T”/DA1ˆ)”0,W!NˆL1".‚BR6!d‚EA '‹LäB;IƒœG¬ˆ2X,ƒÈ"Ä!˜?‚¤B‰t!¢…‰6 ™‚…èY4LH£Ñ„„ÈFbB9T%,#ÑfÊa&HQN!MŽ®RO"8Iïr(ÈÌ„1AAšâa6Fñ2QÐAÒHF”H¬“x&ñÔ?$ÑÑìaÄ”%Èè¢!"#ÙAˆx2á6"‹$&ñdNJ"*µiˆŒqBâˆÕ7J@@H$"„PH1ˆA‡Bˆ †1C<"R‚ˆ!Dà"ƒBH0„„‚B$ˆ(…ŠdB+Aˆa§Ä‚Aœ8ï„B(CH•(7($ÈAF “!ÀHàˆ„¢Aˆš1I‚€AÈp(@˜"(-XlqAH‚AŒÌ„!À%B$  AðWÕàB¸ÑAac£%rB™‚-A)hqŠxiÆ&&u2œDÏ"Ò¬w†Q¸!‹G5Ìä¶2DÁ'CIñt"Õò£´K$àB–H/„ã)èB¨Haˆ‡‡­>h)1L‡*!ÊACa,’‹&Á(‚KrCØ(r’Œ!¤¬•½¤?öD`9”8§!EbHNd‚„(A](FdcHk„¡„”IäIC8C(CéB‘8=„%$"$â!8(˜'¢Èhð%Ä*˜‚,‚‚ÌBÄ"À+¡Dˆ¨mCñ#MЄè$”F)a(ÀÁ,2O$‚laFƒô"…#˜J@4Z^(€QB’ÄÌriA $èBiSˆ#ø1Œ€Ä,9H*DÈ€2‚Äd„R&ŒŠSH,(Ò$(¨JM¤³S![$AB„¤¬Lñ,$‚!b†ïAbÂ(\E¢H'Kp’b(GFˆ5H"$C¢Â}ÀAò¨GH3¨D,‚„-‹$‡/BèX&edƒ”"iì5ˆˆðrž"R‚4$€DÒ$$D"iFƒ(ð†Iˆ"Bð(‚I"X$B.DB.„) ‚E‘‚#„–€z’D8$,#\‚H(Mg3 )UxBh…5äADxÄc‡M$!‚TÆ2l$*Ô„ñ‚*4„J8B0"@b‹-$‚L&"T)Ô‚ÖA"”‚#Ã$C‘X½0(‚ÙD2¢I2E¦aBŸBÔC’D„%"8Hƒx"ôW©À$Tb"àæ…â‚0(DR#µ;F(!c‚d(HA@XB2#¤¨!D„ #ᨗ¤!FVFÄ‚hGŠtÂBDÌ$Fo"T)ÜHa‚AðB¢@Ê&CÒ„¨ÄQ` ŠRbA¤EdSLf€LDt4!$¨$1€¹B”¨,Ä&È‚ˆ†¤$D“$Aˆƒ50¢ïé(H$!%ø!AÀ$Y"Dt‚!‚ABhft"ò(ŽAÀBG.GDHz!rA4FAtDÄ…äA!¸„Q#ØTƒ,’„MŒŒbM"Pd±!ˆ¸¨Ò¤¸‚‘Ä‹HHÕ8¿L{$AT"A&ˆLâDÔÄ(K%¢Œ$DH%)BŠdB!,¤K#a!"„fä$Ñ#„±±Œ)E4¤ÊKˆiaiÉ)NƒEƒô$H‰h”DŒ"²$¨„†*üÌ_fIALbNLhBN&HO„@˜…4è€è$4D‰$…$$4"‡DHJ‚IÊDEÂT‹&LdbÉ^DJä†^(F(Ñ!xÒD4‚LeäA,ÄAÀBNÈHD dˆb„NñƒDB€(h$P"0"(5Btf $r#H@ÔŠC€C*D"#ñBˆ` ”bIB"@Ä""®H"#‘B†ÄB€)òö "$)H8!*!ÂB(H((€$$‚#6"1€‚‚À"ÀB$ˆ"EC#3"Z$1B‰‚F L@B"Ì=B(G"?"tH±AÂdKL‹$-!#<a;d;¥*´FtRxBè‚ÄDą$-A$J”(=$'Fpdò…* $AEaA,d".LF”’'„(-„,²ÁžI¨¯Fò„¢‰Iß$Kç³Áâ”$xر´,ÂA/üK„%âBˆ¬‚!ø(oöUªð!(%ø!DVB-eò%&@oL˜! ˆ$j¢*´ˆöhdN"'ET@2HtBò2Fñ247D%+F/%èD§BHLâA¶$Ã3U‘Ø;‘åj/b¨ˆM¥Zx†¶Nò&D;,KB<ˆ‰Ë"ÒJN‹„ÊÔ67‰%üGA)ˆÖT/húC…ä"Ò!²!B~„þD,.„ˆpB4&d%QAB±jœ#Nb-D.[DO83Ž$ÔBcáOñ1$_¦AUÅI’BBMTÏt½$µRœ)òÃTMÂ9ÄvGLjC˜"I¤’K˜7BÎCGBF8*eR„ßH|:R(#´¨ø~’$?Æö$forô)HHJÖÖ©ô\÷ý.%^/!ù÷o—»ÒwÄôÞ‚¢dODxÎôQÿ]7ÏãùëAOåµ÷\wõƒQ__í#óV)ñu™Ÿ3ó_u?ýGòþXlOÄøÖÔ/޶ög¶¾ÚõTQóOáÿ[QoMxìü¤6cý†„_Öü,®¯…òSw<.º\¢„?üòèODÚhïn½r´Dì,ÿHRo÷8„=jÆò'/ï$ä$tGú#/ëd/nýõ™çiIó6o{ý[/Å»þLökGF˜hlþfÄï8õÑ{_ÓqUñÃÒ-ù9<_ûsÑWy–Â4OKù¶Õ·íOÕ÷\©¯½vu5EéöÈöoCô†ÒÏøÿm/-ñZŸÏûÔ5OøvL¯máHú¡„oZô[ŽKèÏ\þÏ÷WGÏDôN!Îó¿ÃôšÖM>ÏŽ8D/%óÈšî¨OÊüÏ·4Ïrrmü#j”­C—ÂNÖø¼÷ysíîkù²3Oq÷t—¯Kñjªžø«!ƒòh*ŽèN¢ß»õ³™¯+Ó¤ø™Û¿ù“O#ù1óYóó/kù¤¦+hçŽ/ªø(*ßñþ!G‚fò8¢Oúýëˆÿ3ó•¡ñ{¯)ù4Zª³rvø6®#+agB/§õ(¢á¿Rr)õ!#(:Oâõ:Do§ÿLRNÒ/‡ôúZO66ø|öj%ÕX¡´tHÑër'øe}ë½oC¸&ù¶²/Qóu›ÏKñ:J/Ž¿²Hò(LnèohòŒò«—¯±õÝÊÎÓ¿•ñ“6_+å?÷Ñ·?C¹6ù6&O8úcÌ«‚¿þô4tN$,‚ôäè/múŒ®?SÕ®õÙ[%/õ[»Ÿÿõ¡¶$7ò/Kø²¦<ó{Éÿžø»_“úA%Ýaná?½ó‰¶¯øÒÖ¤å(½Òôºz.Þ×”p2Ôò>$A£Á!ãÑXVL8sMì(#øÇ:Eø„îY‚ˆ7ÇŒ82\ø:%MÁ£Á¡ëVŽ3‡„Ž2IñÁ:IñÁðáž#q!ŒxsŒx3ÔQ¼;Ú<áóÑ–¤9‚2G&cB3!2A†A‹‚áBŠ„š‚+!Ž($N,,Á(,R„.A.1"'„†-Aƒ¶hÒH’¯Aâ(ÑHBÒ‰ÂC(<^„.†W„.ƒ'„"g„†Ø4()´(’BLÚø[,ŽN(,¨$$(Ž"A¦Fèb9Ÿ TÂ!„a˜(G!Œ–$#Ø$…"nƒÄaă2DD‹F0)H²ž„B2$‚&†È".Z`‚CD9d/JÅA-„ƒb¡’ˆgLöˆ"D2‚Mh†òQŠŒDD¤¦(ĉĂqˆéómîO(8DA[#A+„£„â!*tCƘ!AKBJÍJ!ñ&‹$ hd2K(ŒÒ(¤N,4,)¡Êæ‚”!r¨’$…tÁˆ8&¦´BaªFq"Ø„.DàŠ$A8Ä$¤ŠbQ†s…B#ÆA€ "v˜R`"E”"Ì…:‚."Bd"„XX"‘-#H$„9FM‚d!NFA‚h1L6z„"˜l1 )A2N„°ˆDCñjë$‡A¡Œ€ €ÁŽrd”D"&,hD.N˜8D‰j!C"QBˆ…²BAEoˆ!‚Òh!˜XH#q¨ÔH²ˆD,aBŒ•AãbÂ@x6„G#‹,Òø4ã§D3S!ƒ#Bè!…RD#"áäˆ%Ô‘jFfhB¬†ˆØZ¢A/ƒ£÷$<M"$‚_(‚Ô!AQA8±­-$'d‡‚ƒeA¦ù&ˆ4M‚K¤sviDHD‚Q‚§AÉAŠD´ûwS4¢H€FˆFA,L#A1A‘D @#A$P(HA%„Aˆ!¡X!$!`"@rA†´€…(ÈÀ‚„Ð!/ˆ°2,è„(Hš…Ĉ( x‚²(D0¤6dàC´²(èK°"G(K(,€"À(€C¤!A2¨ÿ.OÒ’f¥p(Ù$ôHÀ¦=DBi}x„rTiÎ#bŠ1„\Ø!aD‰qVq!8G‹a…uJ…ó(ÒC¡4Z!Ï(5$Žx'„NŒH’‚"*›Œ—…+ˆƒÒÂaˆ,ô’(IòB$KódH,ò8'E*ԃє£’X§Ò$¼Hñ1Eäô"$ÁHeˆÈS„B¦RA‹AŠA(rH8AŠ´D1/D²ˆØA´(QdB†f…&„”ˆ–º !h!‹‚x$²â¡„f…K`H+Jp(!AXÆ6ƒ>D’_ø ,„˜‰”…È&¸FÈ!D%H´N"™lC‘*„+„fQ$ŒR!.„€²b$"L²!RH(QŠjˆJaœ,¨ƒ±ÌH¢&b&Y&K&à’(L±THR%(i¢ãƒ„!‰`"$@I@ A€ 2 ÂB"‚€8"(‰" "‚ #@$„,‡H ¬B0 €ˆ‚Àd3((‚L 1" ¡b)(°H8  ä€$aBŒD(„œ´(qA¨Bƒ!!â)xÈàB¡(EŽà’xÑ $àk¡„+H!ŒbCèI†ˆ‚òA¤(A(à+8’"à!bBŒ$óíb`A„.EX‚IqÁAƒAÉ$XˆŽ‘‡ É&¤˜!= ä ®G^"!>Hn”(X £’.a¡L¨&¢à(F(¡!#áB¥2óŒHLrN „2"¨€(.‚'"A@ÑD’E1A€¶,8R€L! rH,(‚# ‚DL2„…H„R„(IqAˆqA`!ˆ'Áˆ#‘H€„’ 4AŒqA(B¤!€8ˆ'‚D8A(K! !æXA„*ˆ"8*8A:€„2)7D„„(Iò$4U FøII—…¸ø’’'„€’$Ob` ”tA€+ƒ/)9"„ƒ’$OBÓ„"VøaH—„" "±ù’²#(¢!A(Iò$$K!ðñ$Ð(1Á€„€‘Bˆ)!„¡) "2‚"2f"C2¡*ƒB¢!€!±(©"C¢"8$‚+œ6¯€'„@„D”€Œ€( €`J ƒ("@H€€ò”y¼R$A’&*eB“¥D4Œr‘(H0ˆ˜¨B$BDVhA„!:X‰¢a‰ÒE²(b…†¢ðB01†CâA¢!I4(h$Ã"Œq„â„!hà¢7ÿÐAB*¡„"N%‰å„iB4&d%8!Œ„x¡”G„B,$Q ¡!Ž!ŒÒ†!Eá"Cd¨‰„'u(B¢4`!K"D2Œ"”Db"—!&.±H‰hƒò¨€Œ±a( ( „@ˆ(C ((ˆ‚a" "D `„ˆX+ÄŸ`!„AAŒ@% "A€¢B ˆ‚ˆ"Dƒ¢" ( ù… „`‚ „„@  (€"( „"  ¡(ÀM“‡H(BDT@€0A`)$‚2B$ˆ8(.€‚€"$¡"€!!ðÃ= BD„„  L¢€$ˆÀ"" D $(ˆ,8W !€¡"tA" 1A€"H€D L$ ˆ$ߦ€AHB"„‰$€(P""`!((€ ¢"ƒ !‡#އ¬Q‚§‚‰!š¡*@Aá(A˜á)1’A$Bä( %p¢"¨!bB.:¡3€"„.8""(¡¡‰!pçQ‚0$]‰AhB‡„NI„H ˜€¢"2 ââ¤"":ˆ9† ¢:a„""fè†  c"(ˆ›ãáAAˆ"C‘ÀH…ˆ$#ˆ!€AôD BF!"!‚¡€(èA!£"""$A b$@Ò"áA#q’”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ0à(€&pAˆ#Ž(A`B„ÀA€8à(€&pAH€øô=,&ÀAŽ`BŽ`BHŽ’„  €ð̯A„,á(&dBÀAAŽŽ `B&„ÀA‰ŽŽ `B&„ÀA‰ŽÆC„Àˆ#&„ÀA„à(8`B(AxAŽˆ#&„ÀAFŽ/ZMÑ/!á((GB&”Ô€ø’Ž€r$dBðAIAˆ/)á((GB&””Hˆ+Éã,&„ÀA„à(&AxAŽˆ!`BÀAFŽ-ƒÀA$0†`B(A&„†‚8†`B(ADÀApAÈA`(ˆ#a(D(AD€xAˆ†‚ø±’ÈAà(†&&ÀAŽ`(`B@ÀAHŽ`(`B@€ˆðêÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌü<<ðÏ<ÀÏÃÿÌJ•HF‘$!oAAT"""‹&(.Af¸HJÄ‘¨L,$ˆ”’.„.&("(”DMDHSBAȈŒè(œ˜,$O+è)H¤! $GDDhB$4(H¡/¨äˆ˜ˆ$|3!HHH©Q")Ñ"èJˆ²‚¢(GAA*âBdD$2AA•Q!Fr!ñA’%"H¢‚/B„È$LdK"ÅAH‚N‚)|˜ˆÀ’$‚l’¤`AAEdBPHBMD…¸H8ˆƒÉˆ+A+„â(ùºRA!%Û!‘A),*x‚¢)(GBETAME‡BÅTEHˆäDƒˆ(x’b()h('(+DM$GB`IâT„¤BJ4J‹DŒ$t2‚,(‚Ñ"x‚&’4DÄhƒ €4HJ´Hd„'!‚£ˆe’(EbDQB†!ñCAˆ‚D(ˆAIÂDDI"„$FŠƒ˜‚-$$‚xDd„ ‰ä„È‚$p„RˆtA €¸‚@$(ÒDPH6DF¡„Ê %Ž"cá"èb`BA D€(&VB(„€TLH&ÈHˆ†‚‰Ø";QHH$ B%B-‚†&r$$ !$d4ˆ$€,("°$TABpAˆØ‚4J/$!ˆˆ’‚šâAC""D*ä„TˆH†ƒaB‘F¢°A($ˆ‚Ë$(…4!0A@,ä ˆŠlXB‚K"@FD BB„H)H‚8$aˆC„+T¡‚FB"È­3G1A !D*ƒb(#‘$àBÄ(L”‘$’‚'*Š(@"AàF`ŒŠ$aˆ€‰È‚AA ’D(AIH)xˆ)¹ D#A-!C€¢Aƒ‘"D¸!9,€#!±I@0‰AGBPAp¸19$‚pAD"„ˆ"ÅR4(ÌA!2B  1„5£ATDA”(,”a(a"(’DD‰ˆ‘(#ÂC A(ÁhBDLh€cØ48$p¤²A`bHT0CD%”Bˆˆ°eKÁ$„H@ Ä„€",$’„"$B¡¨`(Aˆ@(D$€.¤ƒ $À$ …€A„(„м/^2°2E1I5átâ&¸¬ô"+‚‚°WòF¡CÑDö(AÄ*Dñ6A/AòrAOjaÊÁÂ+ADá86„6„¸’VVŽJÔD¡d&d4MÄ-¢D&$*ýšÁFòD‚-¤ˆÃ}D¸XÌJËBC‚¨OĤB)xæ©Dhè‹Ä¯Å JR!$!TAƒ:F(LR-DÈ!A&„l"|”A†ÂBLø!‚#‚ˆB”‚"Ht$HQ¨Fã„AÆJ*$ô„‚`B0%«„LX‚AHÁC„b¨K„mP‚,Dh‚l5º²!!D&“Dˆ‰4¢A"²A2„A(ÄC2 –FaŠ"CBD(ÈA)$¡H$PD!` ”˜°BHdÈ ’È „L$'!Bˆ$ÃüøL‚!!ÁB!¢@4hAphA"!DæÁ!„$&ä( 0‚"TH,4$‚4"H‰d¡%ˆ,ÂCh"…Ä’AD¬äB4ˆ°DD¨„D$¥AŠ7r0$9NHð…$ 4"ÀBA§(Àh‚KB)Ć’Hp‚$r¡D,!‚˜‚(D4$H()ÈD@‚\B ŒRD2H‰f(ÁH(„*¸‚ÔFa¨"°L"B•H„k%E,"H„A¢8FA#%)B$äH’F¤ˆ"@‚ÂFŽ@IL(CˆDÂÈM"@8ÂbDÈ(HA!"LD‰¨Ahà CA!Lc8p$B„!4¨„FDA1Hàt!ÄD„S!@´òaB3R¬Xb"(($ Hq„…`ÄB HŒôHÆp&H¨BB‘…2RHH B ÈD‡8!X‚)˜e)¡‚‚ùC”2ƒ„†öAŽ„*ErH"hhL±"˜:°„¡B:"A&ˆFÂ"F„B á(1×Ô&hEH„HÂaO9Á2EKjrEz!©DN(X…TÏÁ‰ô‚c>ˆBf!ŽJGA?#…E$”9¡‚‹…/Y"J8!-ƒ¶2HM¢&‚h†rDx!f(SHhE¸B´(ÜH¸ÂIÜä ‚A@ƒ8D"A“B,‚@(H( ±„AF,HH4"ƒ&,€$ƒ<2ֈБ(AÀ@‚„d‹àAA(Q‚DAè”´B D¨K“`c0„Bˆ#„"„E(‘(/AA„$(B©8DŠA$‘„HP„`Bò±pÆRDfôHRsôÉA‡EáA'LB§ˆ(w„((‰ºI⥲ØAËB-¬DbC3s*üBMˆ¦ÄB‹Ÿ¨µ"rܘ$L´h²ƒµœ¢AŠfEE²*”D*qø;$‹8cèAf„ì•"Ãõ$*FŒ R.4­ƒNŠŒÑv&2ÄNQˆ)’Á‚Kp„"¬1l`IŒ2B)BÄb‰ h„D/è$BFˆ+’K„ŒÀZÐBæÃD€tB˜&¤R„LB„ô„8H…"[J’W„ÀXBÁ;‰ØAÈ–ÆHh!ƒárƒRHªÄ/FQ…#š#¬!JÑ”š3dH"1F‰xv‰ø$Fd†ˆ'ƒ¡ƒô!„À8B)‚Ùa”,ŠaCJ+ò(DÄ.H`C†„CL’ 4ˆ.áóÇ‚Ž1 4"‡48&‚D¨A3RC„Æ$Hð!)2AJ)cH)8(€F& BÄQ)Àˆ@H¢E…¤‚$SÑ8B0)I$_+„²L(ÈäñÒk BÀ4À!B´$d"˜ Œ€€F!VBCB‚\! €8(I2¤#IADˆ`D+I(À¬ÓDb( JÂ&¤&è$!äq¤B`(&â„¢D"¦Bd¨F€bB€!Ôt(K„B%ȃ‚:‚ô‚Da%aBD‡#aJ´ˆ"ňJhHH?â‚$ B SbHF„aAD!A(Bdh(0"(0"`‚HãšC""Â’!„A€$!H€,Ò2é7!FV(A4*Á$H°"1A("`$&"‚ÆADhL˜R(Ž‚% "ˆ„¤˜ˆHÀ†hpÈ„ˆCA*$BDO¤ˆN$Ê|]`$B,ÁaJ"Òa!2!NAÀFL’$DA,‘‘!€$²Bd”*!"…BÑœ¦‹!‚!è„b’ (ahL %¤ð†‚AˆL("MÍ3Š(EJ¢A/!¢DÀB)ÄAE$!@𢄀Jª‚D$bB@raa*‚`‚(G$Ž$!!Ê(ô¡„@ ($,A2‚Eúì¾Ð"¡TAB"@Á"( A˜A BB@A, Bª,ÌDD€00È5AØA(AØB("Ȉ%ƒH’A( $!#¡HˆÀš£O£$A4E0)(BPHB$$!AFP"P$†‰1!)ĈP&‚@I))$ðiŽ€@HHA'’€ a!`dAHd%’DAp˜˜)AÔBÁ)A@ P($B$ ™,„BA$ƒ$‚‚Ü=H DZR¯4t3q"ä&”a."&”h=1+D+BG%˜f(')$Dæ»Ñ©"-((±GáK8–B0K.‘žA:HÁ…‚”/(æ˜õ‚â%²9”ƒ˜‘³¨&äBÔáè!2Äb΂š¡LJ²ÄøÂ‹Qa%h$#ôb5邆2."3A±Are1E„òDdA8ƒ4CY!„ÔV”„– 'R"DŠèbDÑFFÔB/‘ä$™8B„p¤TD¦˜‹"†bˆ!+(D3èÈ$ADĈFò¦Â‡aƒÁ‚AË–CÍ"/"‚tWSIJöƒDnB"`H‡W0`AG!$€Ö2,#Jâ!X!b†tib2ÀšŠÄ˜)ÄÃ+HàHQF¡$# 3<‚'0"*|!ÔDM„Ć)È‚%âcEó$DOd÷'W¯1´HÔó&?Uöb?2ö&6çå#ñC#rTôW†ú[%WDGÏCÒgö&>ïvÁuuóAa}amAoÁý©I‹»?mñ?3ý£æ/lòÖ“oíñ­î«!FqRø:á‰ÿú¯¶Øˆþ‰È­ªßlz„þ™Z¿¿1¨î(øÃK¯½ñ˜sŽEwøÏÂúLh…ø]ÝÏÙû.¬/‚ú*Ž(ƒ¹RßæúLaÓÕRóGU_VòOB;Uï”ñ)/ßvòwAŸ—ôyc?7÷Cc?DöTwÿ†ÔØôEeOdó.oCõ%uÏò²FÁC7röAfný<ÙŸ­¹ó4OSõTB?hú·/eó?LÕüA!N3²…õ™¹¯›øH‹­H_ü¨¬?Dö«È?*ýÛŠ/*øˆ-¿œôŠ˜;-_|~oÜÌôX(ýßÏú‰ÎÏ&þèþï„üÈšo(íoúŽlß-FÒTqôr¿¤ÁY—ïqÑlñ*¯¥ôY(OAñ"2/!t3òRSbÃñ;%OBôe$m.í6/´ó:KßaöGQJT"%¶!ô1;í<ÿ/ñ6OCó5g6?fô³r?¥ÿ^-“ö!b^yŸ¥óx›¯õ³úïµõH‰I­A¢ôx¹Ÿ©³Ix¢B2Áµ[å~Ú†ú-ÏÆô,,•ÿ<åî„ö,nX+O¨üláCÙBýw%O#Ó:±BñSAåõD~o”³!a!'ao!ã"µbc±&ÖÂ$GROBò<OñxiŸÅÔ7,ôB"gîñ?i÷ô”&ö"6o!÷2ƒ/ñóÖóS!O¶aô!1Ÿ…ó[)¯¾üÒ¿‘uûÂÿôþ¤A¿–¢4§Å&’‚+H‚¿¼­GjöH-ÝlÇÆÏŠwÙü¬¬íÂÎúNÊŠ/-åiòjM_E?CÒ2t>ôA³Ñ22>cÏá8÷lŽ2Iñá;M"¼abîy2qa¬†7Ç*¸2ô(Á¯AöÁ«A-áë!MaÍ!Ž{ß„Â2A¬3T¬a&Æybta¨†7Ç‹/Cô(ɯCÆA«Aœ¾ÆaÉâ¸7OOhS$¬3L?¬qbôážCÆ"7Ç.„/cäÂü:d,cÈ+C¢AC€O(À4B€1(b„R-A@!L‡À‚ˆ"B ,‘Dƒb8ŒH"ÈHˆXŠÂpT #Aˆ1hhSrÊ+„`,p¥ñý.I$F¡APA*$C!Â!$&d’„FÃB.HrI@‚b ¤Hƒ?ˆHBˆ$“BŒ$IHƒ2SH b¼‚Œ‚,l$(GØsÉHDB7dN(ˆGH$bHLˆDÉD‚l!BS„!¤†Hqr„8"AA&bˆÀAübP)JxJ!áD”!-ˆ‚"=‚ŒIö!BÔˆ(ÃqÂØ$!RôÚj Ø!%*Q¨EQBJ1b…%är1H&Hè‚$ƒÒ¤R!,hD‹(¹›@²DÁ„6J4aˆE†èCƒ©A"‡HQ«CIH’² AG#F,b‚0`BŒ?b6Æ^A#qDj$´VT£MVÌ1BHÒ$ /…ô3‹(ðLA`¨ÒhFÕ"q„ˆN.L'¸K‰’‘I"¢©1¦ Hä($‘(NÄ‚–8^At¨t!xKQ":‘¢=ˆ7äÔFÄ)(„Ä)’$F „d"NÃÀ!A Á(AN,€DX€Qˆ! c(@4DH!‰EA$Ø‚‚ !H.„Ž„€Œ„ˆDI80Hl&D)‚ÒH(„"J˜#DBA)4$ÐbQ`#‘F„ˆ#d$A,G GˆE\C Ç!°(‰øAÁ(A,¤(DˆD°%IaeqÒš…‘A.V‰¼DøB8k!"f„c1’‡©¹$øaò#ñˆ„-QŸÆi!89-Ø_¢;CŒ'CCˆ[²EèaÖA„thÄH3»‡óÈ[š´t’hˆ'TÎ+’R*h".„"¢A¯K˜äë%Y&ø‚qÈ„F’–ÚH¯Šá68êH‡!l‚QFÎH@ª!À…¢Aˆ¼ã„ÂDD !†B™ƒDâ1´$Ñ(˜!‹!N[(΄„BJÈ[D²…%8ØÀÉ…t’T(I„"àÆq¬!0%ƒ £8Š&ú§É A¹Ò!a„°IáFâ(”4é&¤$I˜„R‰bdƒ’+‚ü$Á#øA"GŽ5#äH$ãÈCáB$LdB’bÈb“ÁÃÈ’‰„u†¨x® 8eá¢aˆ®MH°%FÈÄ;.D!K‚/‹I,ú\gÓ@B$ƒQ"DBLxa„L!(°¢¤ID( !$D@!ˆ0"(Cˆ1"LJ*FhB( Æ‚(%x! R$!BD Á"A!A$€A‚# `$AB…!(@À¡c@@€ `B@Ì3ñDEa $DPBPE"ÒHQP!@$©A‚EˆL`DBiˆ)©Ž$"$6xˆˆBbAˆ !ß¼($ÀB!0H„`„#A" 0A0A°A*„â"ÂQAHH€2ApA2A!(ÄA£H&D4jÀ$Pˆ@ˆì4Í'LqB„D$áFH‚‚‚ÁAÀ(E Âb@&!pAÒD LH…L(BD„.$ÀŒÐD OBŒ”DI$Ö!!†D!€D±"¤B$LT!Ä"@2dB(‚‘4ÀD)„†HRƒ!!!G$#"t§„ ¨E‚„R$(DŠ""l'[AXX”H€DòA0BBB)‚¤!A"@$*HB$D""J‚"h-A‚R$(‚24GAš"„!(A‚AP‚(!ðÓã!$ A$A¬AjH($"Bƒ"E"(°"!‚Ò‚¤B'.(EH<"„0D`B€È( "‚hÐ! Pˆ$`ˆ$„Œ‚6‡@@!„ L) (€* "ˆ#²‚¢#‚L&€((‚€ôYe$#RB`€’(D8@  2*b  )!Dš1Œ’3ˆAÀ% HDHD‚AAdžV_3¬Q2-KEQ²4'CQ$I4BDƒã±S2B"[(J”b%¨hD'B"-v."4($,²(Ò!b&]2J¤":òBA©„DQ2pw$f,"ÓdˆAb!BÓÆBx$4m„ÐF˜¡˜!)òa$Ð$‘NiA$šÄ'.R„t!´%Â"‘b$BF²$ˆ¡"aÀAH‘dM)M(.AÊ!*3!’¤7„fêâ9"ƒʴ8CªJ®ÉÂ$C¸ŒB²„Â$† ‚„GÈOù4vXHLÁA¬„”DI…RH°xB’(G‚„"VA*…TB(€¤‚ :¸8cÃ"¢!C±CJ8B ˆ"’HÉ,(â„d’tƒŠU¸¢(‰È‚¨(ÀM8‰ÑB‚ˆŠ!ò¼"$¿¥qþN/äsKZª½F/ä²ñEKÇadñ'´×åÍ“õ/^Ÿø%ORô6FVrEd¢ÏSµrqASMDN"oE¡um¥_MÓdòw=»ó$wOáuMtäü¢Â-sqò"¯²ä%ûD•ò:O/õxÂá·uŒ÷Ù´o+ùÖŸ+õ¹_ÑñGbí,OÂø–oAó>4Ïiá˹³ñ˜2O‹ù6³Öãñ[¯¥Õ/Q«·´¯äTg¿‚²CõDo1tKü_Lÿƒ÷9/ï“âÖö%dOBó&2n$4òH}oqqEñcfO"âJûöâ>4oKû6OS÷|(;G/qô6÷Ã_FÔ¦¨?(»ñûë±/6V’8ñÚ/7V¦o“òâÑŸãú$²Oaó–×û×»“/Iù”žoAÒLrô¤¾OÃûžÏk±<ñ˜+¯)ñ/Ãû¢Y4­]ç´ï•òWJ­I§4'¤ö/êø6”ïK󜯈¸ùŽ$Ï‹<-OÏ‘õO‡¿µÔ˜tCgÿ¶wÖˆÑfAÔTñ\M[o'òK_ýM_ÒvE±AåAõ&gíI¿æsWóAB,äfrFôÆÖO)ùOkû4oCó^K£õCuõ=M϶eòÁAñ/9í˜|[òK¿­ý“Ê¿FrIñÖꟲñ¸¨/"ñ2¾ñO5ç‰ø">«»OÃâ‚ò$,‰ù¼>žˆm¼ïëñš)Ø‚ùº*ïhñÇšp2ÄA¯CÖ”´Ô˜6–LŽsÓä(ôÁ:CôÁ„ñåž«%ÆJxs¬¤/CÔþ>$¼ÄáãÃaÍDŽs×ÄŽ2EôÁ:Á¬!ôឣqa¨†?Ũ„/CÄÁ¯CÖ<>MaÁŽsׄ,ôÅ:CôÑ&òáž!Æ*xSŒø2”*ü:$I¼¼C4yÅ/Uô(E/‘õ(E/ÖöVAÍcO9Õ,ò„S"_­ñA(_,qAènqAøè„ør„7…/VüA¯RüRA¯RüaéþVA­bO8Õ(ò„S"_¬ñAj_,qAúá„ôõ„øs„7…?VüaSüASüZaÏþ^E8öÄS"O8Õ(òÅ„ò§„®„®„ø2Œ?…ú"Œ«á¯B¸šü*„«áéú>Á?hMQAImB‘D1LóA-A%шQŒ’‚#á(¡#$B²Â"Q&."!1Ä-A$'P&Ô8Ž@s1Hr˜$W.$(1¨5øA¬/”¨‰h‰˜‚£á(ȇ‚$„,[„.†„Œ?ÇHDFB4B…H!I4!)2A’H´`$",$1A(TH(‚&‚‚"”eDð‚AEH‚ŽJ@”"‡!AÀ‰.X„BˆÓt‚¨‚ !O+Š "„D H%Ba0)H¢B,dɤ$ â(‚`*XI†Ô¡TB€Ô‚(DÄ*@À©+A€XŠD4¢ˆŽ4ÑÃX!FTH'P&D8iÈ$ !ŒøT1A„@d“‚RBá´„´ò„°B6/ÄHT™=ˆA”‹ŠTH…ñ„MAA#hGE&(ÑAt!ˆ5˜XˆH-’‰„˜(nE҈Ą”HA*tˆ¼"M„€á¤F,òˆCr8h8Vˆx0)!A8A)4(‡C0H‚&*1D†¶DAˆ¡(AB$V(BH¬„„ˆD'B!‰ƒQ‚ŽŸSK…T˜-Ag†LtÒ…z¤Â4L²˜ñHB!(àdÂŒ†¡'…Y4AM‚Ò(yAȉ!PN(¿(ÂDD‡I!“ØX4ƒÕt„Cfn‡ÀL‘N!%¨á‰˜J!‹Aƒz‚þõHi `(‡fLƒ‚ìˆ"pB2É(’ ‡XHXE¦Ñ"äHÁˆF‡-‚B¢Hµ‚ à!ÅaˆH€8"J A*˜E¢"P2ˆ*Ò…H5!0¢o×aBHˆ@ÄHBA‚¸B„%f@(ˆ#„AHˆA!A„ B‚@.‹£ DŒ!!,AÁ(BB¨!DÔˆaÁFá$8‚!ŒÈHjˆ)dˆ HÂDÀ€ˆD0¢H -QD`‚ˆqAˆQE¥$(P"8ð™`)H`„€ ˆÀH @ ƒTAˆƒD*<H8`$(ABˆ„‚€…l"A‚ &#H!ˆð!¢sM`ŒD)A˜„L¨‚P(A HHˆ"ˆ$؆$D„ˆÄBÀd…¨(âH!‚)DÄ1°!‚Ñ(Èx!!`IНÌO2"LHŽ àN!IHAhƒ4‘dˆ„!"q„A@DÑ®h"$@b…`!‚ŽA‚‚‚ALDÂÄHLˆ$$*ÄS ­A*!G„)$d(H‚,!¬Ç0H0-°Å!$ˆ$/„h$¨( !„„"XC‚q"„ÁA$@b!…4†AD‚B€‚ bßZHH B"I„˜BÑ‚ƒ$¨Œ!Ê‚j(”B…bˆ‚˜HY¨‚@‘˜Žˆˆƒ˜AˆD‚0‰PA€1&4&+HB+‚B@$¢ˆH’BÀ¤C„"H„B ('1"2„@Á" ¡ˆÐA¡&Ch„( $!2A@áL@H`‚« &*€J„"€*! H„‚€D€x(ƒA8”„€ZE‰hÀ‰ƒDÔ”‚1@$ÌøB*j„À‚ E‚(.2$.!ˆ!‚KD­ÂÈJã!„‹)‰¡ ,!ˆø„Ȇ™ŒQ]1A¨Á€‚’1¢JQ‹NH´T¢-AK˜Iá…¨D†(ª"ÏÜL"‚âB„t‚Ò($‹H–1$pˆa„@ !Æ"FÄ"'a*¸#Š‘–Œ±„¡H„IÄ„XH€ÄD2$#:8X tD2!a2ŠIQW€ÉG!$$ˆA€$A:R±BôHAD^D.dJ$\Hè(¤„I,´1üiD™ÛÆ»ìXȘÅE“‚Ž…´N!dDÎ(‚ä(qs)H$1‚#S„a!9!P!$Tä8È„]‚è&ø&NN!HMDÂF¤lI„(Jô²6ðw\¯‚v,åµvñQKÏEõTÞÏáù™?ïbø…„)èœôÉJ¯÷NïíõLgoÆô,¥oÍüüçëû®­ßïùˆ(“øÂcoÙóÞÞÿLþµÔOzöeös[ÏÒýì½OÜùÏþt.TDM†oJü´ßïÚüþœ·˜Ÿ!Õôv|åüôOoQdOEy´ö÷õO/ô¾§É¿k÷%nçB¨oo·bÿôÞ©ûüÜÈýœ˜ˆú¸xN«sÕb÷]+Ö·TõJY_õk|OG÷Þï™ùÿ¼OIyÔêüIÈ¿¤ýùÍÏøý~iNDßÕöä×ÏÜÿæöÿ¯þèÞ)ø‰Š?(üâ×ÏÿýÞÌ|ùÕ¦OJXdmò¿Õú\ìßCüßAÒM¾Dälù–´oMûݬÿÜÿ‰½VñC4׃­]ý5&Obó•–ORýõ·HýýØï”û6a‚Fáj¿töòôïùºüÏüؘ‰üè¼ÏGö^T$oña4ý$?•ôXZ¯„´ZñV\ÿÑù›•oiÁ‚¯„ôÙ¿­õ}üïýÿ?l߯ÖÍúÜ_ßiýÖ}ß_ÿ6}Ÿ‰õHAõÏ×ýœ—Om3cocñ44Ÿ÷IˆßOý¬ÍßÞÞßòldOF÷tOgùÒšÏmÿ–þ)õRdôßw÷t—ióf,Ocóocs2ôWw_µþ_5/‚ö)!.5O#ã"ûòØ­ÿøøÏŒõˆ‰Ñ´ì8w]ì(3„¬SD¬±hñåž#teŒxs¬†?Aô!ÁïCâü>ÖMú‘sÏÄâ)“$¬ôÁ\òáŸ%ùa,.7Lj/Cü:DI¼š…¾žÃÓ£ßRña§R/ô*/–>oÔ*ò…S"O9Õ(òŤò•¦?kqaø¡†ø3„?…ñ!Å/÷(Å/ô(Å/Ôúa#O8×(ò”s"_¬óAh_-qaènqaènñaÈ/GxSøbÄ/ô*Ä?ô*Ä/–îoÖ*öÄs"O8×(òÅ´öÄäänñALOjóAˆ/CzÓø"¤+ABºô(„+CÉúVL†7D0C(sáB„9,8E¤ÈA‚‰X‰Ø8O8RBÁ"Q¦6AŽ3Ä„3uAØ”ˆPˆi82Ž`(E,db43AòAŒ-A‰’%‘¡-;%O8¡$EBØ$E˜dEèB¼6ÓˆŠQ$H`$h)(’"‚„6”Â!L"”!M‚(†Â!’Føˆˆ#€˜„qA‚ı†!1ÈK‚&1XAˆ6b€1A ´I‚Hä¸HH _øÎf ‚1DƒÁˆŠˆ‚áH)ÄBD.!àH&)”‚áH‚)@h!Ž!„&H¢!Á!ÊA„ A+"ÄA Äa „F¬) $„2„Ì1˜(´D!DFèH0„ŽH(-ŒVÄ“A‚5$„„ˆD@UIh‘%uHÁHHCxAŒ,ˆ·G$„†ƒE „HòÕ ÉHD!DI„ LØ#ÁA”%KBd„,¢ˆ!*‚%ñ¨„H"ŒL$¬Ž‚H€C±†C8*Œä‚!‹(DDŒ¤B¹6¢,”U˜DÃd„OA‚IùL¶†c%DtIÊ‚AqÂÌÈ„"D&‘ˆGŒÎCa”pD ׄ‚DpAhA,A*™)>A¥x'蔇'b$X„‰$è!ÅJ‡®pA@A$¤ˆA" AÀA„IÁ(E1B‚À‚€¢ˆ%QH@( DB à81B† *Á’@‚(‚H„HÀ5ÃH„’$A„Ca€B ‰ˆA0a‰2…™F€¨HÀB@†C€2!`H„‚Ha(p ‚€DˆÚ„Dð’W@Ò%uQ"d$ÁrSBJà"ô,’DJaÛÃbT.!6P8$O,˜ÀFC6.+AëB‚ŠâXTJ-AgTHÑ,ÂK'DJ’Š+Á„N^!>"dH!kIKÁƒ$Ò„´$Ò˜%¢(/AT$"’FˆÂo#A%„!„„!"K 6!‰Lb’B(‡!‰D!"O$O¡„ O(B‚"XI B@BKAÆ‚(€4¨‚Pbà¬AEˆb‚AÀ"D²"H /M %¥BLB#ó(D$†d#D+C(IA”aD#ô&ˆ’H$á_$CèBˆÐæPFñA&hEÄŠDŠDRX„JÓ”ÒBŠÔ8¤‰.QÐDd–Æ8AžD!‰8XDÜ "1DBž$`A „F"X@‚€„!H‰$R€$‚HX0ŠN„ˆ"0ˆ’J‚`”‹B4 ,!F€H‚ø¤î"c'°„B,pˆD‚‚F*Á#@D€X„ HII˜BDŠdA"¨@ €X‚ˆ„hÀ׃(0H7%…‘dB‚LIA’H‹DD)X"Nˆ„ŒH„8„È`„€‚Dˆ„FHpR¨(A"A‰”šˆƒT(4B,ˆDȈ#(H[ CQ”&DŒABŒ‰‚€!cQ„˜ˆIBDBÂ&A€A40%AA0$ÃÁ@BÄDDˆDbA(0‘0`„  €Ah„Œˆár;¶À$ÐXD!ú$a(€Â*B`HH˜‰Øˆàˆ’$‚CÂ$""L:!ˆÐH‰CÂ(€“Ž",Bè$”!ÉaBˆƒ…(´($ñ±$&%$„Œ‚¡„(¨K¨E"‚†"dHB‚A–"bHƒ0DBÀHAH€„L´ „àD‹„2ShDT‰Ñ„DˆX„ŽYÃH‰)„…„H†($b˜ D@R$HEAQd‚$H8DLˆH‰Dáˆ4$Ë‚BDB®H‚'„ †"$‚¸ÿƒ„@ TBŠÂ@HÈAB4ÜBÄ(,E”ÈD‰HÄ„FÈ„ ‚Eh‚"C∂E(˜BŠšB„A8"‰¨€"$,†¢A„‚À|3$!‚€€¡ˆˆ@¡È %$!AB$"…( AD DBARB!€”€–„ƒ‘DønÉ „B"`Bˆ"„":‚¤Â)!„4DH" $€(KBJ„(&b`B !(C!‚B „"„ä„7]8ƒ¢bH)‘L*”"¢¡IˆâB¡£.*‘Ó„åÑ%*a!kD!%¸TÓ…’(AAŠ"L´(B¤¢!c$I´(ʉ挄S…oh"èHf†K)d1>$O’ø‰^HAëD‹dj¼øG¼$"EHh$èÂrØB‚81L8¨I¼¢ËIÁ)$”‹DC‘=D#üE†>ˆXA„D`”Cb‚"AbO"sÌh„°CdˆäâD²ÒBŒ*¡!O´(¨B‹BH&ä‚$¨HIÁB@èÄ=­ÌÄD\HI¦Qƒr¼"D‚¨„$ˆXÁ"D¸(¸JŒ ˆN‚èdˆCŠ"hˆA[J†4! Á„(LèDúH„‰¢„°D*œ4ƒ‚FH"R";H†ÞCÇAH(DˆdkÁˆ‰<BÿÿAóx$bó6_EóZ­!_ã÷r´ï?òmèOzú»4Ocûô6ÿsÿíU¾?ÿ×=ñJDNĬïcòcB/(ñ–Ö?4öCH¿÷èüÖÿXxß±Œøa¤(O”ö¥¨FîVþál߆¾zöaõ:û49“òˆ$ÏÞüBGD‹nŸÎîÇÿ!;ß²ò¾¦BÙFñE}ÏÿnÇo•ÿóZ$ÿkIOÖüsÛ_d÷ldÏOöôÌNVëD«mÏÏüD7£ÝóI%»u_±ñ—%ŸVõ2:ñéÁÏÂû†®¤oZþïÜÏýQÿ?•¿i´LühlªßŠixkH^FoùÑCÎCŸÖöTÅŸ‡ù=Ù×L₸$|ÍÑÈäFþáa–öllndî´ƒû½-‡HjöEÊ¿´ÈäVödü~¸ï’ûï./CâdÙVüïdÿ&÷Sξ÷SEßVöEd_¼ÿCѯnòþ"¯GòD˜',‡-~dO„ý£´ð%ó2ÿµõZ4òz7Ï·÷-ü¾dÇó26+¢ojö5ýÿ÷VòÏÏýzDÏÆölxǯ¨ñÎ×oqø×7o-åŒüIÈôÍxÏ‹øhõ_ĺ„²¤èFþ,­Ûn[n_^þrmŸV¶dæSó±ÚØ”úï"ÿ<ôÈÉN©óýxo‹ú"¶ßÆû²6+‰_GÛÍþµ^Þuïÿ>lOÖ”hŸ¤óºh/¯þbò«ïôÚÊNú«_¯ýÑÂô2kß·ñZŸ5õI¿¤³{óßãoãó"ªOhówÿe÷6x‡õüõÅöHd„ô,®¯Êò¼ª?AýÇWsýÂÒ/5ýú}îaßÏ÷Í­ƒK‚OJò„äNˆÝÉOôdeFôilOôe¤ßÛò¨¬]ˆß:öŠC¿ŒüAÈŸJ÷™qOÿò·?ƒÛd{‚ò’×OVÿt©¯Œômw~(†öA,ÏVüæjþþo‡ÿ¨nÏ-ô˜Ò/…ýªfÇi;ëð2ô:%mA§öAVŽsׄŽ2A¬ôÁ$î9ƈ7ÇJx2ÅÁ¯GòDÁ£Ááãá¶Œá8÷(Ž2CøÁ:CøÁZðáž3qaœ7Çx2Äá¯SؼÈáçaÃè8wÍè(³¤òá8CøÁ‚î;2ƈ?‡Šø2„)ü:„i¼˜âãÑ„::=ͯqô*U¯ô*U¯5Ö÷Aï8÷ÎSÍ2o8Õ(óǤò”æâêña,¾Æú2„?çêSø’ÁSøÒÁCøáË¡o¾Œò¤sË(O8·Œö¥:_Œò¥_Ìø¡ÄjñAŒ?CøÓŒRøÚÅRøÃRøáÍ¡ïüŒ3o<õŒ2O8µˆóÅœó…Ü®>Ä®>„ø2Œ?…ú2¬«Á¯Cºü:„«Ãë£ïüËŠPˆMA„IW„&T‚LaŽ„Äè´I’E‘˜o8O( IBM±Säb9ALAqAÌA•”DÄ#ñ„RDX„IR„&EH$AuxAüAƒ2!$/8O8±*Òш’„IS„.%ÈsH‘X)JѸ$GN*ÈÄ!B,Jˆ0‹H"E!$d ¢(…!JˆŒŠ”Ih„9q„˜#,ˆaH!ÚD! FLÈ‚D#™ˆƒÄ‚ˆ‰òó¢àHhNN°hƒ‚C2bŽBÄE¡B‰¤£€È#ÉIB1*ƒŠÈ"@8!F(Œ”BˆL IˆA%‹êÄA°ˆXB‰ˆ4ˆ8˜ãÏ(ƒBB„Id(M(%Ä$$Š’…´b\ÁÐH„xYø(„„4‚4CDS„ŽE,XÅbDB…“¡Dk„ÖÁˆK”CBh(M$(HâHDaˆ€dAŒ„X(¿‡DHF#`B€K„( ŒÈA€a.BIij(ˆA¦ÄL(FŠ!!((ä!&h!IF%ØB$JBhF‚Á‚DX!0-M“‚C¤D¡JDm¨ŒG!*¨XA.NÈD†´YdÈFñŒ$A Q†Ò”ÁCІø„2,ÂMŠIjBLDhD+Ša`µ‹MÁ!$IÄ"2ˆ¯x°Ibˆ„«l¤QA‚¬Dâ¡ñÝÝ`J@Rˆ „, a¢ (€B‚ 0H.BCApA8B(AFˆHŒˆ(E(:$aLIH Ø!+Œ"MBB D`D„€4(x&D˜”9$BŠEL‘ˆ°Iˆˆ@ˆèÄ„ ˆ2D`„b(Hà”„ˆ'E$Â"ŠA…±¿Lò(‡A4XGψa˜`BŒ,\bA…_!¸$\Â/‘œ‚Hˆ$4„tˆÄ(s¡$7ˆâŽOD„FÈñ‰UJ$Š’R$,È&D»&j!ˆNæ”A#*!‘B†LÊë£Z„J’Dš‹FA@ÌBTd™¤‚Ä…Rƒˆ "A$"k”HLBŒiD%ÈD&BˆˆBˆ’°(!„&(TD¢ ‚Bð¡O/AIÁH'„H4IDˆN(,Ô,ˆK$,QAB+G(™4ÂŒØA¡„FD™‚K,Á$‰8"ÀA‰Ÿ!$T‚&¢A a!‚O"1AO‚9B1ƒ‡D$„, ‰!(Z‚ÀˆAF†h@$ $`lD@ „±! „"”FHB‘,(¤`DŠ¢B0BQ )ÀBŸÜDHAAC‚D‘„À‚@E !0™$II°Øƒ"@(!#@(Àw¨D!A‚B!„H‚ˆDD)%C%Ä!@’$š #%"q(NX0†h;DHÐ"ˆ&BñÌÔÐ…Q!LQADD%‚@4D€Hˆ‹AŒ¤¨€@AB!”DŠ!(ˆ(€Ò‰*‰â(¡(‚EHB*Hì+®ìOŽþâ´ï)FøÂÄïjþ«4oõòyl¯£óO[‡„ñ)9­ï#ó÷3w®Ž¦o#óò·OYùööokÿ´ÕgA_DÔDô–oeû‡|ÜÆÚ·üÊ¿-þ²è¯2ùRŸ)ñ÷oiÙ"øÁC',?<Øvøü«!Ÿâ–xIñ‡‡Ió{{¢Ö¢x‰òIÇÿÈø­‡ƒ¯)ÿçñ4”ˆ+¨_Sû¯LOÓñ6|+!‚æ‚ò1OaùÌFïÌüž>O­õH‚¯„üŽnOÞ2÷=–¿Ö÷h;!ôRAYŸÄv8ý)¿)}Ôö¶¶/cû†F;Û=ÿâò?»QöaaNDOXõDÖoRüÖWlü^“¿…ùÚ[/'ûjê?5ùÚ›?iò†”o!ù‚R/9ñÓ“cú'u×—–’AŸž÷SÖoyø®ã¿ÿS¿üJA¿üøÄåÿ¼ûúÒ/æÒF³´ê*þÈTÏyøLn_ôwùia†ò!9—ÁïHØnüÌÖo˜J¯(ôȆoÔüèÉp2ÆA¯cÒ´Äaëa–,Žsß„â)ôÁ:K!¬¡ì1"ƈ7ǘ/CÉÁ¯BÓ¼Èáëì8wMè(ôÁ:IñÁ_î1ƈ7ÆJø6Dü:$MÁ£Ñ~ÄaÉä8wMø„2A¬sDôÁøá#uaŒxsŒøDȯC†¼š¬èëA|6¿E?Qõ8E/t8õqÍ!o÷Œ£O<÷Œ¢O8÷Œâ_¨óA)O-qAøâ„î„ør„?úbÅ/þ*Å?ü*Ä/žîoýŠâO8õˆ¢O:õˆâ_©ñÁ«_(ñáËjñaHjñaÈ?CøÓÙ?RøÛá¯RøZQRø{AÍ¡ï5Ö8ò…s¢o8—(_¬óA(_¨ñah®†®†ü2Œ?¥ò"Ì«a¯BüB¯B¼š–îï#ö34AM#A&TÀÄÒÔH9˜"-#á8!Á@(Q&0„8Ž6ˆDÈ!EhB„†$xAØØ8:Ž¥„¨ehJ„,9CÌê2‚,1( (æ!Db‚Ll(„‚D$˜"‚(„Â#!ˆƒ¤ŠòA"(LdO’DT‚DäRˆXK#¤”‰Ñ‚Ñ‚Éø/ÒÁXAC8š(³Ô¤ÉR‹!ƒñÔð!8*ÁA.aH('B„Ô(Bò‚GCè$ù„CTRBÒæäñÁ„$y„¸qqu4qc!!£‹A%RBà„„Ò‘“1ˆÃ-™©"`B *!HˆÒš#Ž(ŒT‚†ÂŒHàô>ƒ$.d…øAYtH¡\€A*B˜páx$øaˆ„Jñ!Ò4Á¡@B‚Â.@I¦ù!8!!J˜D5Rp"‚:ˆŠŒR!„Ђ "bc”Hàˆ¤DD-"‹$HHJòb—ð*bÿ&õo_'!A›t¿Ò÷wcßöëíï*±Uò§?þÔ~õ[gWoéñ¤uÝeˆ')O{Þo¼JõAŽSŸöQ8OiñŽÚý´&WDŽ;Þ¯óIa_øÕ^ÏúMmßøÝ_ß.ÿ_î[egZŸ*qºÚþKÒŽ™¿*ñ6¢lèùãRŸ‡þƒ«OHùÞNOÂÚÑÒøÚÛ/ºëþd'b©é…¤m‹d6óË7¿ó$cw„QÝQvö%k'þzç§ò$&/[þÛ×ï(ØÖîáû&EÅôViκ/ñþ¼Tß8ùAš‹¸¿-ø*4_åû4Õÿ&xOþ4O"ù"ÕùJqÞ¿=|÷WEßÑöÁÿÿæýÁNÌvy÷ž·(uø±á-óë‘®‚µþ’¶kš®Ã¯”ä½»ƒûˆ÷wWUÙò‰ó/>ù‚HÎìÏ/øœ’«HNÈz¶X·¨?æósoï#óO[Ÿ”õQ)Ÿ7÷k¿ïÆÿö*_Çø’¶oJssöŽ?ýõ$ñïøÿ,–äöŠéM¼/¸õÑÃ!ºMùÛš=ýÑïÃù}®/ióa˜Oj¹2úÒsn‹Ÿý¶!ßÅ¿òmMßöÎýß5þþWÛÞÿãr—òŸøs›«?©ókžoj©«?-çýªšßÛúÇïÿQr-ù)©/¼ÿ›¢‹_ÏNýþªO)¸XýHX…ä71ìówmŸ'ÓµIuQøYu¿v³Ë÷æû{¯Ga/+û&u/qô×Ëÿ×õ¨¦ÔöEiŸ–ô(¢Ÿÿõçš?µüÙI¿<õŠš?µõÙ.ÿ~ôí$­û¦š/B±¶ò’³¿ùrK¯Öñ+t_ÅÒYö-MöþÎoýþ~ÔŸÄq—x»‘ù¯¿ú™º?"ñ¦–k«žó«VŸ.ù²‰ëþV,Í%’ºþª»iOýL^úšH‹Y‹t~HoÅ'Ct:Ôt[ÁaãÅaÅñ‚3Ç‚/(öÃ:A¬î)qaŒxsŽx2ÆÁ¯cÒ|Âáç!ü‚sÅø‚2A?¬ôÃñãÞÆJüsNx2ÆÁ¯cÒ6<>^ü‚s͈/(“„?¬ôÁðá^ƈ7çˆ'KŠüz&O$<èãÁÇ£ÃͯQô8E¯t8ôaË!ïôœ²Ï<õŒ²O8õŒño¨ñA8_¬ñaîqaøá¦øqŒ?øsͯü:ůü*ůÞþžá¯8ÿŒs(û„s8ÿ„:¬û„:®èêqaèjñaŠ>„?ŸèCøºÁCøšACøaË¡ï¶óŒs‰ó„sqO¨óA8O¨óa®†®®>Ì7‡>Œ«KCøZBC¸¶úaÞ…˜„IsEèBuAÈHdÄ/ÔH8‰*‘¨¸â(‘(…ˆÁ(8EhB„"(b†Aƒ"±(B‘(«!ŽS(å„‚Á(<[„.”Fèi&qøaˆAƒ¢A‹¢‰¢«!މâ(ш¢N(,S„.„.ã1,¡âD“+‚Ì ˆ2„À(Œ)C¸Aˆ8E/4ˆdB$¢Œ&Á$B„)Á$„„Ä0r„"A0A£Â±!HAˆOmH:IQ‚$°Dá¢Â’B†.†Ha‚0Hà#ÁˆÀAØ„„ÂK`HI‚(b‚‰‚’D$0$Á)¢CÖ)(C’Aƒ” @%ÑÁ9rŒRCH¡A‘+$Ž"E„AH¨2B‰x‡+›(†‚É’ÄB „‚‚¡MA‹H˜D«AI$KH$ F „ÀH!ЍDð5ò@$qH@IHHAÀJ$‰4E„„8HACAZLÀ2D… ŒAT!¡ƒh!Ã()!HHŠÁˆ'H…b€ÁvC%È$X‚'AH"‰Q@)´$Œ4„1&‚I¢5øˆ2xÄĈÑ*È¡‹„/‘¾XD‘O(†!”FŒè¡„Ø(40„?ø ƒË£@qHQˆD!†Da()D”DIXHF¤È@AÈ&„†H‚!D@L@A„H$C! H„$@ˆ#Š(((ˆˆ@QßêJqxÑéeB,ÁA2W„,ÛíRtbB–òaŒ#ñã<-EJÁA.Å«!máò‰Tä+œä(óE(Ž’ÏìST*&ä(ñaŒ#ñó,o4¬èR¼Ò|\±­u(²‚ÁA(sEè(Û4ôªU‰aBŽÆ8Æã8ô¨ME.Å«!MÁã÷̃â(ôˆ2G„O(4ˆzU¹R<“ô2E'ë-òE(IÙöŒ~>ôaŒ#qAˆòÅ&ôÁz]‰+%É8›„/S”ˆ'Ë?-òE(IÙöŒþ$Ä82„"_¬aB¬×•¸R’Œ#±Iø2E‰x²üS¢_„’”-aÏ(ÁaïAúAŒ#sA(òÅ&ôÁzɼ’„#á„ø2D‰øIÖ ˆˆˆ ‚­ã (A@Ðt„B4ACˆ”’!``¤(S%E!AÀ€HŠ2(C€qH1”IÄ# R! 2€od·A…„˜ˆœ!"´Â‡GBqØCXF)WŠ'ÅhYi$†ÔAqS(ˆtÆAˆK„"N!Aˆ‰JcÁ)DP¡CôBÄ/‚CĈ6JRƒRB„€øƒÄ$ …G(ABt„ÁA@B$ÄAb„„5GTÀK@D‘À‚$pH’„ A€ABÄD‡)&D2#Œ!ø<ñÄ„&BhÃlˆd-Dƒ`!‡L"‰ÁI)„-”†La40HB†‘¨H¢H„"(b#!•ä1”(b„A(’¡B¬\>~BˆBd´A8‚@2A…ØA„Œ8BP‰H„P† ‰ˆ „ˆA@Ê…H H”H IX$!‰1CÀB€HDßf(pD¨A”€’$€RA\$HJPH°„‚4ƒTC„%…#ˆHC$J@3ë"E:HIADh„ˆàIDM‚ˆ!ŒÈ0@HƒqAÈH‘b˜A9ƒ”ˆD†BH£„ DHB#ôŠ5!J! ‘‚aA Á!•èâ”h‰A!B1E,¸(RB"‚"J˜"T*‚´$J„HH8$‘k# "*HˆB²$B±!F‚"‚0"¬9Z!B!QB)A±‚‚.‚„Є!Bˆ¡‚‡Dˆ ‘†";&(¸%dÄ ‚AI¸äBDdT„A$4§BA'BF$„,ÁD* €ø‚O`„Aà„B°*”¦);(£N¢SA¡(FrŠTaCHªH$‚¬@D¸D¨8DFÂ"°ˆ(H²ªCð‚$A‚EBŽ! ØB)RQ‚ NõsM‘ƒ°„7ˆ¤Ph@$„ƒ˜‚R!P*%D”"A€b„(BÅH@‰"FHa!€’B€Š$4A$ˆD„…ôMVPrQb%Ô"'bFeD`B$…(„M(@áHá‚„K‚A@D”ˆ`DBI”IJ±( 'ˆ"¨E„TLEExŒ4(„GH.Ã3‡$€CÂd")¡!!#$&BBØ14AlŠ"H‚€*AB!!x8€¸ˆ!B ˆ (ê(!ˆAÂ(","ÁAA QaLRIB\DA„#”D@$$B$á$‰„‚8  #*!,‚(D†À”ƒÅDHLÄBHt1i’Ä*®!LaŒ-AEY„„CBø!L(1,¢l"$¬õ×?ô}[¿rR¿?Sú5§ÿïS$/búƒ¿yñ…K?tö]s?FôDMDöÌó?—ø³[?ŒõFCÿ}ËòÂH¿2ÒJþoÔO·}ÛÜ$ò"„OøÉ[/¡÷ìßhògMÌôNdÏlÿ~œÏÉôŒ,âõÄS¯ŒäýxýZJÿýöÇÓ¯(Ü*ôÊK':ŸþÊâ†x"¢ªÊús’¿²õä-?¤ºGòmMÏFÿ[sOÉû¨Èß–ønnϽü˜•õŸ×ýª(ïåöoŽ'jojú‚nñ©ÉÿþòOíïÅölD_RöÆçMåoãõü”oæúNÂÎH„|Œül_ÃÛRùDÿÑÑ•õKŸôz$I<èïAÄ•óÆÄ¯ô8D¯ô8D¿¶öA‹yO8µˆó„S÷„œó„†áêqaèêña‰/Ãøsˆ>¯ü8„¯ü(„¿ž¬ïQ¾ˆòœs‹(Ox÷ˆaO©óÁ(_©sáø¡†êñaŠCøsˆRü2ÁRüSRøqÍ¡oöˆ!O8—(O8×úÄ:„òÔ2†î†î®~„?—ìF¼2ü(Ä+ÁB¼RžìoþH¥PŒÂ1EèRQ9h„è´((‘(A‰ªÁ«!O(•(ŠqHèñA(K8G„®D„ªh„*Høaˆ´i˜B›¢°Iмâ(‘(‚(‚â(:D.B"#%:B†-Aƒ&¡&!(ˆ+!Ž’(ˆ(˜(,dBàÒ9UžlÐ(4S,QŠbA‚M"Œ˜4 PFXŒD 5(”‚J˜&EbAÌ4Ô’„ÐDhABŠ˜ðˆ!H†‚ H0(/E°HÁˆ!$,Ø‘õ÷ï`B>A¥„tI(ÁHT ‚Lñ‚$(ˆŸA(E‡DBP-!%´HDt¢I&t„)AL20”€ˆ¡‚ƒ(”ˆ HˆÂA)AH†(`!+9ˆNApˆe!†*ÑB(âaÈ$ˆ°(BQ„(,8”Š˜-…¬hÃ,‹P(YHl$N‹I}I±‚ÁBLÄ"Ôƒ¡,–ôˆ%„D|20DÁ„%8,AØú1Ê TB‘† FA!AdˆdExAH$FaDˆŒ’ŒÔH1€Eâ‘DB”AŒäQB‚’$HA˜„$FˆÁ‘$„H„PB…‘˜„#!Ø^3a%d¤FÁH,B†\B,Ùdb(–„5ŽCq,Du(R)±X„† ¨OX’ˆ(#LÁ(-œu„LµHô!Ãå!hÇ…C8Xlâ!Bª‘ˆGTŒü’%‡BJdX˜%š!¬A³˜rˆòg 40A1F(ÀŒ@ˆ,F! ¥FèHì($APAˆ!$3 @B lRPH@ˆA(„³CQL(eP‡DaB*9B…E„HÉR$Ð$ÑDCZC”'”D@H!„d‡iED¡‘€aB ‚iùtDÐ(xhD)„’ZQ$@ÁÈ„@ÚA‚h¡è(’H! Ihd³+!'Ï%8͈e(A‹L´ÄƒÅB@…ôXŒHŒ™ˆv„HhDØT?ÓPE„)D!ÄEP@ƒNH""Å&ˆÀhBMQ$D‚K!&L(TLHÀ„Œ@$ A`©QL$„€hF0ˆ°BCñ6Õ@ÑHA3('SAPCY(ZH$ˆ©QB$"!'A(—h‡X$‚`’D $I(‘AI$A„c¡! ƒ„Bƒ1!Mˆ0ÈB@BT(ÂA`(@GŠA$DT†DR%D$((@R„r„EˆH"hHâD!B¤@Á¡R„‚!¡„‚ðså"AÀB„ƒ#€€A4HA0„Œd(A‚€ˆ„B0† I@„!‚A@ hH!‚Dƒ)M$S 0H"4„‚’!E4„$Ø !QˆE„5‚€‚ˆšHgˆeTA„È!@dFŒA HÑ$1È aÐ!D'”HD¿2(M(q˜›p(H2*!((‘lDË"‰ÈŒBhŒA(BHH¸&B¤¢DÃ"°(¼("È" ¤†Š9&À‚+"*ÒA!€„ÂH*(J*,8",3.H‰‘*t¡‰¢(*"D„!JDhb€XHˆDF‚ ˆ$X&ÄH"P!&D”H"0AÅ$F%2f!+B*ãPAˆDŒBÄàè"¬„AK!0D2ÄPA$„(ÀLÀˆ,Ȩ±„ô‚(!‚$@) ˜DP…L‚((#Â…ô“„ƒÌ¡ã*$dAh$.ˆÀˆBˆDZH DˆL²„ÁIR‚)"„ŒH„X!4&ÂpÄ¢)$‚É2(#D!HJIˆÐBÌø{l„l€B… ˆBŽD)"(H‚Œ¨$D&,(R‰˜)1A%1\ 4„H€dF#Ä„"‚$"D$ !H%ƒÂÎò%a!H†€""*(0!``ˆ($$à$Q2D@!„%Bˆ#Ä()B!@H4!0H$D$,òõœBàB` „Šd4ˆ„0!!&!%$$)B"@3b%H$"!„€À!A"–CE!‘„ƒÕ)RÁ‚*!¨’Ò„H¨Ìñ#HH†ì˜ŒC¡‚…’(‡((EFX"!†Z††HTA&H'„ܣȂŒ’„/²DBøÒ"Si)p‚ÑS"XC‘ˆ ‚¨’È!-ˆÉĘ-RŒÚÂò\ŠÁ*ŒaÑ‘1$#“¡RŒ¨"A"aK¨Á€2Š’Q„ˆ…DDhHH’ƒ*XH"n„F¥"!k¤‘•“!…ù“(,<b8LlF„f£"Bú"aÐ2b!)‚r‚X"!Ä‚ÒsÔ(”DÈ‹A‰„´´ˆ¤X)²(ÄNˆDNDdA@AFµÚB0žƒÁ"/(1„'¤%aH%¢D˜%DBêBÕÁÂÂB¼X!„F’$‚ErÄ!'BF1(BE&5$*©!Ð"”„ïèIód,_Dó%U‹!”èÓEu=õÓ*Ÿ8Ž÷}$¾!öl_Û¶ü˜X®ýNiIxÚî›üeÌODÕvñêÖŒ˜!_D¶Ìä©áû¹(2Ežþ•¯²Ö·²„øHJ®¬)Éø˜Ÿ{ÛbÞ·öW?ý‰NaoXúGÊÉø9¯*¶Uɇ毞òÏ&Wdá±)ÞÒQü’–+boÈòŠ"ï÷ù8Ÿ±ŠÒƺL9Ã=þùneÑñAŸVÔò¹#/ô;œOJò¤(¾AŸ×óÄèöœ´.EÌôQ!ß(w²õtXÔýM‡ëX‡‰B¾Éöì_ÃñˆK(cú$UŸ±øÆ)_òå7V½²Œóº3ñB£ÿ¶ù—¿‘¤Ä~Êâÿ¦übß7­m2Ocø&ůèôomem7ç“FÑòŲo#èlôÌjn^k‘¯‰ušú*nïÄúUt$?"õG‡óE‰µYô|_FÙ*“xùø”´OKô]ÝÞãÄ»v)ýhmoìúM”õÝÁ¯åÞ69‰ŸøHÍnÄß#ûŽ(WŽ®„K³[=g>¿úø(,Ô¾r(ý)$ïØúº÷þ¯îü-©ÿ±yˆáTÁ·êïëûÝùÿ§éC±¤úƒ¬BÿNô4qåûZ)Ÿôe¥oEóÔ´OÎülNOë÷œØ‰ýZ_¼tèÜ"÷gÿ…ã”ñIXôXøð"H@+A(8„‚)ƒÃH0L<"‰‘„Р ˆ Ž"E,hHDˆ-$„ô€‰‚HTB@$˜!+0B FHR†ÒD€Dôgã$î‚0)@"X†Ì„€á(…(Dh„PA%hBM0‚‰È€†‚ ˜„‡"ƒX„@gˆ(äY(,‚A#-„.B@‚"$¡‚!H:“ËBÇHA%ÊDÐт’I‚9ˆV3D.’D‹D8„¥ÂD¦T‚áˆAâæ„Hލ-„4J(x$h†Dƒ4…“e(F² ^,ăäŒA,ˆj¡ÄŒ.AEØAˆÚ¤˜HŽˆ/DúõÝðˆ"¡€$„DDEˆƒ¡È@$RIAŽP„A"Ì!„!«qi£Dƒ$,B&jBFbâJ"+J©”H!Ho¸Oc4‚ñ-Tj4´C÷%O'l3/V¶¦¹tø¦?Òþn5OÛ~Tëmáf‹¶DøR‚væ¦òyψݹըôÊ(ÈÞ¬ü\¯Gµ¶»UY4?Óôî¸Ï߬|™û©­(͈­ŠâòX*k(OJÝ(å¤´ÂæMÿTZÅúzTkbÓTd/Æô.lÌÂF×4O¦šdB¯!á£ç¤’¢‹Ÿ‡jJ+$ÏDÒX2|\£Vï¢V%Ÿ‘¥T/dò!B_5úå?)ò'®>äŸßóf¤ï8ò\²'BF„òÄ´/cèOñè9ÿ¢Ö4ù‰h‚¯âÖ$ú,šÇùØ+1o#èRýɯ…ó^ªÏýó;•܈òŒ¼¯ãéIáö>RÏ!¹˜÷ÔX¯góúO'ôh\‡…)r&nBDÔ†òFf#7‚G„m(‹t/£eNh/*ùØ‚JDø""ÏdòMíÐã÷OϵóOX½1âu×C³Çý6¢_çú²4oHû3®Ÿ¡þܯÒÿLôkanD.d/D¶†õ¢ÞŸuüÔ*ÿœõÊŠ¤|ÈúêLïËÿN¢_æx²ô¦´1û$ίOñ¢|ŸYú)‡B.,­<ï‰òªÖbüì:kL¯(ù‚‡¨¯Kñ6<ï%we~"ô&$/drlvjün(_Ôþdφä‚öx+5¯"ô(Ê«ÿÖ§$¤Ô¬ôf¸cÓcÿnŸ·ñJY½!1õB5?JõDZo#ú¦+;oBÿšJŸëö¾]¯ê¢dMdOBäBºÔ÷¦ÖÏñ~±òÆQ¿¨è$øÈ./Nôªxï‰ú.šOb¹²ò–ñ#ý,Þ'K¯÷ÓÒÍr$ô(¬Ïˆó–öÏc|ØúÒH¯¨ù‚èò¢T¯‡ó8ç£Gb+"m$'bÏ&tføf+ßÄ–hÏ‚ä‚÷X8¯%ö(B,ý’ا%‡$$ö"IL'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬3„¬!øáž#qaŒxsŒx2Ôü:$MÁ£ÁáãÁaÁŽsÇ„Ž2K¼ôÁðáŸ!ƈ7ƈ'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðá!ƈ?Çx2„ü:$I<èãÁ{óÝSô2E¯SôA¯SôaïòVaï9óÄSÏ(ó„SÏ(óŤóÅæánqaìnñaŒ/GøsŒ/Güå¯CüÁ¯Büáéþáï(ö„sÏ(ò”sÏ8òÄ:_¬òÔ2Wî®Æ®Æø2„?Çø"įSü*įü*įž®ïÞ.ò„sÍ"O8×<òÄ:¤òÄ:æîÆîŽ/ÇxsøbÌ«C¯B¼ô*Ä«aé¾ö±«4$M$M2Säbáb9.„3õAŒ/TH/„òA¨kÁ+¡O(…ò„RBO(¡$O(3D¦&äj8B.„#ôaŒ/ô(”)äBšF¸m+¡O(¡!G(^(G(^(O(rThjFhj#dB'„Æ-A‡B)´(’F‰’Æ«!ŽR‰ÂR„Bâ„ò„"G„&f„.;ƒˆh(°@’DŠD"è„‚EAD„‰Ø„âˆ4E„!ˆcHJ"aIÈ`„àHBh‰Ll!ŒƒˆDi0DŒAB"`!„HÆ"Q¯jA$JBA0¤#ˆ”Œ*PA†ƒè$XˆBM€Š &ÁA FHèHŠq¬È€HH…2$A°* J@ŠÂJCM…"„$AÆD;‚À¤&N!-Ń›F"A"JÉ"G,ÂT!ŠDˆÕ!:¨M‚D’°%Ä„Q$&!TÉÈ%˜Œ²E!‹Á¹!ø#DŒ.„*LˆèÆ…Íái˜EHB(èÈ÷§ („dXiI¡„!B !2HI˜!A‚H¨‚(p"(ˆaAÄ@Ìi‚$€UZHY±ˆ‚"rÂT‚DŒ4&8E*„D¤BˆBòc ÁAE¸ad ’A?B1‚CBñD&ƒ¥ƒa"C4$’QFâH˜I¬‹Ü²ŒbA˜°„TA¢`GD…$8!M$)†:A£åˆñCD¯’L1K&ô"Ä&˜Š¬´ˆRä”D˜GD$AÀˆJôñ†€B1R0‚Cˆd(HJÈ+$ˆ"‚€A¨‚!&(‰a,&D‰H…€†Ê‚HF$aÂ@-(°"ƒƒ„l"¢0€a™ R…D $D%AA€‘È$„#DÂà„®H&"™$‰B!°™B€$D@„²#E¦#"‚¡#*1HƒÃU™˜(€5DŒŒDúÈ&XA‚ƒ3".$!˜ƒ6BKBO!"B}(¶$fÀ$0ˆêDLõ%*´¬„Eh#ÂmHN‚X€”ó ÃA¨‡DÀB@„BèÂBEˆr(`dÄH x8L€šha€8Cà„„Bˆ†2DL#(ƒd!\ŒI‹$`È $¬„BBD(?/ "!*X(,„„P)!”ˆT€*!Cè"(„”aDD5ˆÂÄ&˜€(š$L*(#DȦLf*$ÑBN‚ ˆÐ$:³$! „`(ˆ’*¡$‰ˆ¢DH€¨1‰B"’Ic‚@‰ŒAD/ÁHŒ…„!D„ˆ  $BB€ô}3€Š"(à0‰ ‰A„"€’@(€ˆ„$d„€àò:¸0$„@ˆˆ*‰d’ ! 6A ‘(„(@A(E$!€B„1"„Ȉ X€@‰@%!±D‚BHÏF!&Cc!‚C’d/!4Â0bˆ‚a"ÀJ%Ab!.!C´‚ò‚#Ar"!%$B$-ŽB)ä"&r$’¦2¢‚Æ$B(E’($($)DBæb7åATCAHÁ$Dd,¤‚G"‚À’&DÂBŠâq!Ba( !¨ˆ€HX ˆ†,ˆäAA –†BIJ"D&€A"è(ˆ"øû?!‚A(#0""„)¡!"€J’‘„#¡(!à‚Ñ‚ŒQ(H„ƒD )ƒ1‚8(#B$H„ˆ$g(‚„h"CŸ!.HP‚##„A0HŒ‚‘"'Á#!‘""@$"L‘(ˆ F¢€%()!€@„‚¤*%X¡ÐC$!H/ØBN"@",¨hAE‘ˆÊb„†!(JH¢…a!€b#€€àR¢!"$ˆ$,8‡"‚A*"Œ$H$ T(@Ä´ã‚B@! "!!a"2"€‚(8$Bb B)‘b‚€D¤B"‚"$J B"(ˆò €¤E$ˆBh!J¡B ""`" ,(!)H "JÂNƒD(ƒÄ˜#dˆHj‚`Æ" B$(€>µ@ø"MH”`-$*âBaBSa(A!4h‹!™$RH*„¢2/²Ô‰Á92!*ˆA¢"eƒÂ$5yB‘#¦4‰qDÈHH+(ƒaKˆ¬¢£‡$H„¨‹,-"бHÁ¨b˜ ’F}]"DRŠAR!JÒ!”!+"²„ò"("/"kB€BN"RèbÑDÂ"()‘#+²I1ˆ!ˆiµ¢ãX–!!‚!òˆ‚ˆe‰Á‡&#¼B¸""!('‚aST„NBhNbjè!ŒLB·r)´$ÂH#4„.$àHé‚ÁR‹¤”)˜¸"’"!Š!áˆ2(Á1LA"¢°X‡$(ƒ$"«C:†‚•HLcB&dJLa!j2B`" b!D%,ˆ*þ‡4OrtGØMä­R8;d_FÖdòtWoTw6ÄM&?×óºQÞy3ë®ÔHèG¤d/'å%¤÷B±OÏô;!±¢!>#1“2oH3Á’/õžDÞXÏ'û´>Ÿ’¾)4!'">Â~šïú¼\¡Ò¨ñJ8ÏÄÓìòŒ.ïɵžñ.‚/‰ÿ.ÌͬîômKÏÊþhHŒøÚz‡¢.´Âî‹åä~‰’¢OÂÞH;>\ö$$¯æ÷—”H'f_bôå×O_üu4iñ÷¾K»ß—ŸÒ¯µá+þj(KbKdj÷RBîõO÷³÷ß´ññ"313>”k“/#£ûÅ–¯áçiûi)e4¯£õ¨8ÞT¯ïÿXZõ:>Ïçó,ÎOFù|¼/Kû6"ªýølçÈïêî4öK(Æ6Nˆýzjèjþ¢²-øÈˆA/:ríþqùð#ÊߺöL/÷…µòAcNC}„;ÌolvEþ„oHøÓžŸ¤óÛȧ™„ü,ÏD¤d+F+DodøÄvOâûÏH¥b!&’#'-¢_æñ†¤+/¤|LþÞÌï‰õ,Ì·‹DH%øz¨¯¡õÌJÏỎôB¤ô(zïAúrïéñù>oA¹²óR’MNçÈï„þÍÅ/ƒôLD…øZدß*ä,è©óX­‚Ž‚M*ï¼;¦=bnŸòñ^·¤B4ò"E{v?Vöv&MoCöî*Ÿ¦ýÊ™¯£vhÜ̶D¦Tzöb'O}}E·–|CÂ.3#±3²ñ£&M–k»#ñŠNÍÞïÌ:ÿDanAfr…õª~æç÷Þ˜'%^B‡¤¯ÅµæóR”ï¡ú¤†k¸+S/oö,®íHo>üE$Ï„d„X}òâ&Ê«U§¡Ž‚†ò*ÈÏY'CNA¯CòTA£Áaãá6ŒŽcÝ(Ž2CøÁ:IôÁ"î8Æ*xsŒx&äü:¤MÁ£Ááë!VŽbߌâ(³„òÁ:CøÁ‚îž3sa¬‚7Lj/Cèü:$^Á£á>NaÃè8AR$'D‘CÒ,áD‚b8Cò,)bBàHb)Œ¸è!º$1XÆfŠrO(Ç„+PIò‚'„ÌÉä¨UŒ’†#Áà„R–I-,,¢ƒChE)¸â"T†R,P„FØ$ÈDCô|è‚A„Hˆ,BèH!¡$E!@!ƒ4!A Â"@Bˆ¨‚(1AAbA&ÄÂÀ„,,d„&4D€$„ˆ"ˆˆÐ166È „(M`$“T$ƒ)$‚20"@&8Iˆ@€9BÀ@B"C+H`!™D‚(b„'BF¨‘)HH"2¿E{2èC$ÄA%ÈA&h„âH2„&É1a…(’J8UtˆÈ1ƒ‘˜%ݤ$¨(,#DÕ¤¥IA…4a"?A¤‚aƒ1 £Èœy(òDÀN,áÂH‰”L‰ô(ŒäˆÈD&2ŠHà(óöÓÃÂa‚`$B$NˆDr¤ÂD”)4…(@8!È!X„)ABh!cQ¡ˆ"LÈHI2%hDAhA#¨‚©a$‰”†dH‰rt(¤DH„€ÄH‚¯HQ(€ò8KL”*K‰„(‰D‚HDbÀ( ¤HЄˆ¦R„tLŠ!H(²HA((B°H‚ˆU(2$ƒ’‰N$‡„(ÀRâ -ªcΆ†-$È!†ä1ˆ$ˆE‘JAÅB0H´‚…#„DXh€À‚†’)D‰‚'ˆ," ‚ˆ¹Ñ!‘„D€Bd!†¨Ä›°HAô1C_¸’A@ä$@ÂH BB€-$B XE!$1‚ ˆ@2@X(€!TLD£A*MåcÏ¢EeÄ-$Ä%‰  M‚„O¤T(H„ƒ‘#H1H dˆ @d$‘( `)P„-‰€!P)ŠÁ†²‘á(Á@øDFø‰A˜8%õÅ 3 À#L!d&)Š(¨2¡ ˆˆD„.A¢˜(ˆ`„¬N$ˆF¸¨!)¢ALHt,1"ˆ€$H,5„Ì=RHD‰Da"€ˆ!HHd¡.ð(`Á!´$äÄHMAŠÄE‘AAf" (!rAáC˜ˆƒá$$ H$ BbBÀ„hA‹B‰ˆƒ‘Œ>–$Ç& t„BÄ„!ÒB„Ñ„‘j€ h0A`$!B5"#•ˆR A $‘$¤IÂCˆ#Ø„ŠÑÁbD™hAˆD#dA(‹(A FH¨ˆŒ;²„ŠÅAÀ"  D4HB"Hˆ (ˆ"(tˆD™QaÀ„@!A0„IM(]‚‚Ä$„„ 2D%ñ¡hQ„D$""D†5H"pˆ(!€H€jBˆ€(¢‚*HˆÌ!ˆX$P!BŒ‚$""Pˆ8(M!BCðÄ0$à".  !H’"Ä"Ä"b0!@D(($€€¡BH0!!%!„@‘"hÆ"„"$`‚H ’BH)òY„ˆA0!jA04EÁ!A,ÂŒLA &D"D„(€T!€4"#)ƒ„$€$FÀ–‘TBLÄ$%È!A!Ð(øAƒÔeª$&*Db„#v©8C‰´"8‚†qˆÁ¢‚°ˆ%ˆ!ˆ‘!8ƒâˆ(1""3¡*$Ã+2§(Šuˆ)X!äJÑaˆ*dÂ%¼*¡A¹„ú'$¬QB" XÁsdA422XMÁÃÑ$”ŒI•4]2L‘J“7BBDdBÈ„DTNጎ"¬ÂJHÈdB„‚´1”A!„ '#²F"¨(Ï(ÂN*Gˆ Léd2®ÜÒ'ƒq‚‘Š©BÒ,‚Â($B$Ce"7!!HLdR-B,„„¶‚EÂ8,’(J!äHaFlô!ÔAHäQHåA2…1IºÔ$’4MzK8O(Ò„t„X…¢D#RB ‚ðÅD4"S‘Š(—’4§ùÑÍÅV/´KÖÉR$<ñ(k£G,Mòõþ5ÏøÒáôÏ2ߘÒÁü˜Ï2÷\)ÿÁúo†.–'½¿¡ÚoÞbõě:bdK˜_íæÔöÉ\ô¬ë%„/)ñ¤3ž¯?EömD*ñ˜‹;!$lå¸ýf‘ïBä(ùgÉï—æTæxñØJOŠêDæDüšOªãíú$OSôè–­¸’úä$7Ï\±H•F}AËD/FÒ§ò-ÇR•¸’û%.DŸT¸NëeÖ±÷:AÅôHdŸ¸ÿ*[EùFdçë_-ñÁ£o$ôºn?Ió¡fñMŠOA»¢!òEÁOAûˆ<XwxYŒ$µ/:QÌ~òòRŒø²&ßi÷éSÇ_„ø´/®±$õMÁ/ÅÿÂ?h?rMH^l‹´/*Q„N¬¯/ôŒ(Έ/oòÌvG>ÐãõOï²OU«[·Bÿƒò²_îñ"oCò¶ßâô÷ïóý¿Eriõl)Íý¿Mò?Xß²ý:gW-ý‹Û§u/ü7ì¯íóíšO"ù4¤M³åùeÙÏ—öÈå?Åv-õ$¡-µ?Aú·ß¾õ¼«…ü›Ÿ¸ñ˜‹{Çû§¯móížk’k£?l÷íÖÿ†ý6)ÌúZdÏÆôdèm¼¯Aú¾VÏ.ñüºo…üšÒ¬ùXk¿3ÕÃýN—5¯U‹5Úyr*õ+,±ó¤šOb¡#oaçjõ5ËnïW÷S,ŸTvdùloŸÌúSjcõÉYo1¼Qô‘Ò¿¼órÁ[ãQûªkšk£OAëJñå‘Ï“ø´e_EöI-&ñ$%]¤?iò¹Rß<ýR‰·)Ÿ)ñ‰·/“ü¬ÕûâO*ù6¤oAÿòRß.ý~‰oëòlDöhHOÆÂ¬¯iö¸RϬøRˆ¯%ô˜Òlö2Éo'Cô:$MA£ÁaãÁaÁŽs׌Ž2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÚ¼Èáëì8wMè(ôÁ:A¬î9ƈ7Lj'CNÁ¯CòDÁ£ÁáãÁaÁÎsÕè(ôÁ:A¬î=Æ„xsŒx2„ü:$I<èãÁ܃ÓÓüE¯SôA¯Rôaí!ïÖ>óŒsÍ2O8×,óÅ:¤ûÅ:æîqaüáÆøs„7Ï?Wü2A¯SüASüaÏþaÏ9÷„sÏ(ó„sË8_¬óÅ8_,óåjqaü¡Æø3„?Çø3…¯Sü:…¯ü:…¯þ¡ïþž3Ï8÷Œ2O8÷Œr_¨óÅ:_¨ó宯®Æø2Œ?Çø2̯Cü:Ä«Á¯C¼¶þa?RCsIØ$ñA(M2W„&V&vhB7…Æ/t(ôA‹"mA‰òÁ«!O8…Ò4µAÂ$M2SäB1A.”3åB8SÆèô(„A.¤O„ú+!O8ò„(O(Ñò„2UèjQ®–7.Ä7ÆøABøABz‘¨k«!O(•(O(ñH(O(á„ò„2G„.–FèÒ7~ˆ+Š€:ˆ`â`J°"4"I‘!!B1‰È!H0B‰ )è"$(C!‚*¡$*„A(ˆ„H„ ¢ †(Á(%ÔABˆÒ„ØB”ˆ4ƒ´h„Ðqø“² d!@bé‚8(AIr$B!b"Pƒ0¡HÀJ#$¸B"(¢ˆI‚a ‚B"Ä` ˆ¢ˆ0˜"…ÖB,r„8BD¢!´ˆÄˆF“Ø {l‘%+FT,ÈmŽD.„4"¼&ÙDˆV"<2ødA„!%a”ƒ»Âb!G,L"È"Ob”RE¥dƒ¢Hð‚n.Ø,!´BY¬ŠÔÁò¢p„Äb‡"KÁ‚{AR„FÑDý"H‡H#¸‚DM‰ïø@4$H`„ŠBèDA"h!DŠA…BGˆ!A0@ ‰iŽ!DÄp,QH”#¼RˆXR‡ˆ$ AÈ,‚‘há•"R4N¨S‡R„]"$BLÂIðA'È!&fx.”ˆ#ñˆ!¡!#HÁ[1G’AØa¨—!Œr˜bE†&â9ô(„+!$‘,ÁË(¯DÑIÓádñÂ/„éĹÁˆCùC(#hBŽD"¬!©|Ñ”$˜Õ!øÄ:Æ"©·,Bÿ- ¡HDH%ÈQB(FhJà(!!JB !(‚‚hÀAA(!$B¡„ABˆ„Ih…†FNA›(_„š„4ñjM/z¶D˜?võªeíã}Ø/$åzþ\!W„/-ìsúcûé_Ãíaä1½‹þøO!Ô8õ*]¯C:Ì,ñcU¯_öÜaO´í¼õh÷ß”öMɯµñè?ϵò¨ÏÂühšŸ%¸’dM/³Ý2Ñ(X¿4ôHBnd_Äöo…¯WôßOA³4¸²ñÛWË)ûWûO×4H(_¼û&­—ió<”_¥ùI‘ËCÞ…ú%×[õÙž2CékõÛ-óV¸_½f½HÄh_˜ÿfßµÈ÷nV¥ýÙыͯn÷Õz_wõhE„+¹oâáBôIÉ«åoµöÔëÿWôIA¯”öÌyÿö}I¨$ïïä)ñˆ(Â/wörïLò!?•ôZcÝ•Z“¥s-ö©®oIÿcˆgj®2;©ÿÂtçÿè§Ï´þWhWÖVÒœò…ªâøwÁ¯VóݘÜtéü«|o,úe'k/kòÇ¢æqóÿ¢gíë_òeM.'ï‘ó‡¨ëøaÇ{³ÏÔ«ùÑÇ1¿Îô;,o¥ÿä/Bñ2%%ÿ%?Ïü²5ß…ÿ!ßVô!-û|™ò>^æùx.ïüRÎVò2òQZ7…¿1ôH•úCH½c‡rß®ò…?o‡y²ô¦"Ž¢/CøçÙ/ûô8õ߄ҕö$MZ÷ßz_íþcœ¿˜ýŒCŸŒüQ˜Ÿ˜úìEŸJóÇéoãø²”®6o(þ.Æ?ûýª¯wú_(]iÇÖZóh¤ÿuÞŸ´ýÚA¿­üÑÚŸ¼÷~Õ¿GöWyonébñ2$k1ïnõ!ޝßý:7_•–-_Vô)í_þ_jOcõÈ+…¯­ä!í$óvD_¯'Cô:dMA£ÁaãÁaÁŽsׄŽ2A¬“¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁ/8vMø‚2A¬2D¬!ôáŽ#qaŒxsŽx2Öü:f_|Ò~òaÉôsׄŽ2A¼3„¼!øáž#uaŒxsŒx2„ü:¤I<èãÁka=M¯ô:E¯t*õaí!ïöŠ#Ï9÷ˆ"O8÷ˆ"_­óÁ*_¬óáNïqaüáÆøsŒ?Çýcͯý*ůü(ůßþ^áÏ8öŒsÏ(ò„sË(_¬óÅ(_¬såü¡ÆêñaŒ?ÃøsŒ?ÒøzůRøÁ¯RøZaí¡ïÖ>óŒsͲO8×,óÅ:_¤÷…:_æäêqaìjñaÌ/CøóL/Cü2D¯C¼ô:Ä+iëákaßÓLs‰È(,sEhb„.‚7„*yCøa˜-A‹†%±(Z‹´m«%O8±r„Ó‰b(ò„bW®DèJXƒ.Ô7„ÆÉABIñ(´E‘¸mÁ«!O8µò„CŸr„Òò„"W&V&vhB7Æ/t(tñ($e‘(k«!O(Ò$¡$MJÒ$3D.B‚6ËÐ!! ,¢b)€¡@qH€¬„ˆH‹‚ˆ/B,4°„ÒÄ@8‘JèA$8-ñˆÈD ((„ÈHBH%˜H-$¯yKá(I!BÀ‚"à"ˆ`™B!($HƒŒˆ*„x:¦Wˆ*aˆ@Œ¡…Y(•ˆ,IxÂDŠ€„&H…!ÄH$H„P(`]?sÞCaBgBpaøÆdL‚I‚k$YÙ´$X‚Fô4È=F‘Or¢D,xX–ÁB¦o(ÂD‚qgH.I!0lY8Q†;\"Ï|‚‘BŒúAl(TlÉ(IFÒeH(t!xEH&ø¨HˆaHŒ‘ÒðÞµ AB!*$ …$@ˆÂ*DBA”J($qÌ )Ã"(B($B C„ˆ¨A‚D²„ˆ(@H"dLD€$ÈB Ø)ôvC›!E¡$G.D-!-‹d‚‚QC-:l³dF“ÄÊWÉ~–T‡daŒH„–9˜®CO¢1„‚†2!O˜aÂæTB„“$¾YÈBG&øAŒÔt¢ø‚AÍD–rAÈ’(MB&¤̆vI$6I°™ÔBŠ„#hdÂ/g -ˆHB<$ˆ  , ˆi†Â!,$FDÀ$˜€0, DÈ%(ˆ€!8ÉóÆ0$p$`"€$±‚„p’C€x"‚@A€F‚€"€€€AðݸzxXB6‡˜L6`HˆCÓ¨£(1‰ÈHC„ÑB“’„(ÌQ‚Ah"!A,¨((„g©˜,)8 L¡IÏ(‚F²ÂR%Ì‚AD#ä$F +ˆA„Cì¸4º$$À(CAABD€B !„)EAƒ!cID˜"IE@h¸(CH@„R„ŽD!H*˜^$E¢Á, €(õn9pa„<Ða¢ˆ„8!&ÊQ(„‚F˜‚†€‹!A€. ( B!D"вHA#(D!"%@$0BB0ˆLÈês H (€D!€D€ˆ B„/? HB„@‚ ä($@$H‚ˆ€HBˆ€ Ä{.Dˆ!ÀI„à)8"€`B+(AA"I„ BðÒÈc€bB(AH‚I„ð’ˆcA„ˆ(&„”„OšDCdR„ÃA‰"„!Ž@¢‚!R$.„DD Aà(aD‚ &B ÌAAà(AFˆÁn„BЄ6?À$I"ˆ$Á‚#B€ÔDD( (€È„BA@DB€ˆ€„ @¾o„Â!A(AD0A„„€Dˆ#‚8@€„$B T„€€+#€$(ABxAHˆ°8$(AÀYÒ€‚ò$$AB”tAAˆˆ/)8((OBˆB„tA€ˆ¸’8$M$AðAH„„ˆ¸’8A(M$AðÉùp!!!D†$"   H€¬9†D  "  D?´ $Œ„ˆA(""#( „ÀBP&D(2‚EE!D$(@ÀDHHP$(M@$L9$@(R!@¨!€’"(€%¤!c!„,"$A€ÉB A ADD€HD,A!°ÕHM$†"€„PDD ˆL>Z$ €ÀA‚!€HB@€€H—Q@ `B@\?È@€€B D  H"ˆE€ˆ‚ˆDJ$ ðjS@@(A@€ÀHs  H@ bˆ ‚ðµ€B,9¥$$"AÀA0 (8"€"L€D@  ˆOv$$‚(IHJH`(!OBDHBH ‚@@ D€‚Ä#S @0(MaA€@‚H€ ¨ˆ€HB„‚ðJðAIŸ”tI€ø’’/)9(OBò4$CðAIŸ”tI(!€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„œ5™0à(€„áBpA”ˆ#Ž(A`B„ÀA€8à(€&pAH€øU$`B !Ž`BH DH øá€àBEÑÀŽ&dBÀA‰ !Ž‚&D”HŽ‚&D”Hà¨>ÖpA,8`B(IxAŽˆ#&„ÀA„à(8`B(Ah„à(ñM½AðŽ€r$dBðAIA !ˆ/)á((GB&”Ô€ø’Ž€r$dBðAI‰€ø’/c„Àˆ#&„’ÀA„€à(8`B(AxAŽˆ#&„ÀAFŽßÔ $0Ž&„dBÀApAÈA !a(8Ž&„dB€„‚ˆ#á(@„dB€„H ˆøߣÉAŽ`(`B.ˆ„Ž &DˆŽ &DHH_ê !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€àB !(C€.T !€2T€g‰À©CŸJ  œ:t€€ð©tÀ©CŸJ  œ:t€€ð©tÀ©CŸJ ¡ü;û€¡!ð¿û¡ À¿³!€¡ÿ» ¡ü;û€¡!ð¿û¡ À¿³!€¡ÿ»  l3Û€!!€!!ð6ÛÀ6³ o³   l3Û€!!€!!ð6ÛÀ6³ ïÕ ¡ ¡ì5]€!€!ð^]À^ÓïÕ |=}€ ð×} À×Ó €Ý€!!€!!¬  §KÀºAÍX €À3C ?C !¼5¢€ð[¢ÀÒ#/-€¡”QðM-  À%³ j€ !À3“€.TÁABÄB$ˆ!M†&´"¢"D*Äe*‚D$$„ˆN‚š)¡ˆ´$"TDBALÄDB DBˆ ˆŠˆˆ(ØDˆ(HDDTDDHBB€4Ȇˆ¬7ØHf @A!Ò"º‚"CR"A‚ˆšÈ„*‚DA(DBB ˆ $ˆˆ AAH@$$DH؈‚î— $dD@+ˆ'(D&$RDD $p‚ €L(@HLH „HBˆA€A@TDÀH‚àx1C@1B$DDˆŠ‚DhH(BH „¨E‚,(($"D$L€$‚†„@„$D„„ˆ D‰ˆ¿tA` B„B(D(L*AØáD!&„Ø6‚¢)F"Q‰±Q†ƒhˆd@&"’„EA"ƒ&¢’HD"*ÔŒ5#DAä(MB@‚‚¡‚*!dB D@D!Á‰¢AM(€r„²Aâ(1A*!RpAˆØ$â„ÈA‰ÊA(À(CT*" #Lˆ„²ô! D„‚á",¦*(‚ H@¤‚ , ˆA‚ˆBAÀD @DDˆBHŒ8Û%”A<D2!KÄ‚OD¨¡,ÈC"W(K!NBY4!O,ÖEºRVF-"A+A$ê„òBD(CACBÄd€D$TDÊ„ Iˆ„(ìL„èHM„0„L$¨Ä‚JDCäDH„˜DÁŽHŒèH”ˆ=D$Q$4!FæA4#šÂ„p"ÅÂL¸BB‘DDãHÂ’ABŽH!Š¢„€&¤(A€H„ ($(ˆFÄDˆÀ„@„BHAD‚ $脈|4GDH$4I„`$¢@A$"ŠD"Ø)B¤LAbEbB C$$ÂHAˆ‚AF„(dH€ HALA 0„F††$ô•Ø0dPJ‚$„ˆ3„+$T@bDD0dhb!€”Bˆ€(A‚¢F„J ˆBÀ„H€ AA‚ABDB`DD D€‹ÈÐ$=Û$L”"D2 Št‚¢†#Ä!0…&c(Ä Ä"€¢DÊ0DJHÀ„BC4„‚ @€JüÛuE!H!,(‘A€2„I‚˜"`TFD2) D$”„( &ÈDˆFLˆHA‚H ‚`DD‚ÀDˆLˆHˆÈ?ÃÝB2BA¢$! ‚8‰‚h  ¦š#‘‚ H$Hâ4ˆ"G€$ˆAbCF¢(„L‘ˆ!@”(Xˆ!0$€–‚&"1HŠÄ‚âÙ H¥‚¹$d‚I'F@adB`AF"b!H€‚‚A˜€D&d‚#¡„&$„ J¨B(°„EˆDì(H„ !$|1ý|2H;D)9„f¡Ã‚K‚a‚ÆA‚"!‚DJ;"‰9‘(†,ÔE¡‚GGH"ŒéB4’-Á6˜!À¬J‰ø‚(G‚Fƈ%A¢+„$Š,HB"ñʱ!€ª1,‚EAB4„ˆ!‚ ‚ ˆ@BB"H‰¨Aƒ2˜€ÄOÓ(Aƒ€‚(!(NƒD†D€4"A0ƒ€ˆAðkà r1”‚Ä„EA–Â!,"e(*A8È%ˆ!¡„A£‘"˘(ŠIÂDA@ô(()FJâDɃB$,QHIPŠAƒ2$DA.H†h'ADH‰ä!&a1sF‚!0FÀ†Aˆ)#‚H(€T$¢!„I!8$‰B"jA)ˆ¨AAMB,„Š!$`D(Bˆ2$D ÈÃR€ñòë(I"JCX‚ A†J(hA@DA Ò!CQ@$"A"0H d„ $ã„B@"àt9"À ð%Hȇ(‚4‚Â@ˆ2)(ˆCBAC¨&  ‘°u($˜!(‘ˆ˜„‚,!F„bFŠ¢H#ÙHtˆb!¢ß CQ ˆ!PÁHhŽð„‚VBO1(ñ#AA9ȃB@€"ˆˆˆA4"`,DX"LòBâ‚*!t²1!°A‘*IV$B(,BÈ"@eÒ!#“€È©‚R!@Ô!BHjCB`v)ˆ€”(K(ÁP"òD^(D^,€h…òšH2AAJ'B#‚!QBI„’(…A$ˆAJŽÀA0"#B!S’,ÑŽ"ŒFê„!@(&)€”LÁÀ"C/„h„"Øc“1‹Z³R´ŒŠA‰2Q.GAC9aBFõ#Œuy”‘"8-¤MA‹!Œa(G(N\ÈA&æFDÑ‚´”ˆ+xI•˜Š´Ø"±HÈ‚)è„yFÈ„N2#.$$Æì"?˜+š¸†tž¢CøË/Ð%õG4EAá´íRõ!D¯ÃÑ‚¨+)ظG‰‘až"”†á!aœá•ø!bk„0$e•‡+2£‘iÅ"ŽhM&à¤aˆ.ŒÁfhÃ".BŠUH,‚V(‰œD(*ÁB04fX‚à„ò"*~ëCËt8'BJá($¨$Iâ!BÁ8d"XÄ!_‚ˆaAØÃ²6µ ­„E1h±…áa’¢QA>„ù!n‘Œ©Q‹‚0HHŠA"Ù(ñ"ia!A±ãAˆb†„Nœ,cÁ/"TH)å!‘BòÍLÐŒöD#OvqKÍNbO!óÉ-Æõ¨6¿DòñXþz)¿FùŸ®¾TVU»™ïÓóyÞ#_vù*O‘ñÁcM÷ýÍm\_Óõ¬f;ŒeôuXOúÒ¿ü[ŸÖºTrEñÛ¿ÇòD8޲>‡¥^˜Š»”öH'¨/êñ*„_+ñ’ÆþBmKñ¯*õhŒc“į#ýJ®o‡™&MF¯…k-¢Khïg×2ñQz_ÃõQ=3_±õa|O‘÷o…¿ÛtÛêIâƒù2Q¿½ñ‘)Ÿþ³GEÜ\öÍó?FýWŸ_ì÷%ÝÛ‘?!Ñû!¼ŸUûc…?ßñßOAó4ŒoZñš_ÝòY±ï<ÿ5EŒÔöó{ÒmžÞ:~X!©™Þ˜þüÉ÷$”/Âù+›oAáiýÚˆÞÊëQÏ+ú$Nh‹BÏ*s–ä®óò8oÏÿš’/)yRúòÞï#óÏ$OgñkM/âwTÚ(qX²æ®oû¬w†'j®¢/?"¯>ô©úO¡ú$ËF–öDi-ÿ|‚¯†ü"z_¬øHÓ¯…üBþJ.ò‹¡ÿÆy²â*ò‚¡oFtúò©nMªë!ÏFô)-M8ß(ú,Ò¯†øâ(O­”ȇŒNˆ®ÌB³œzÍü"„†”†OHü˜Ä‡ìo„¼ÔLôh¬O„µ¬ÞlôÚŒî¼oŒÔ(}Øè„è|¬òÄ:î®Ö®Öø2Œ?Çø"̯ü*įü(į–ìï—,Ï8—¬o8•,_¬ñE(O¬qEìîqAìîñAŒ/ÇxÓìÆüšDB¼šô(Ä«aÉþBOÆIâÒ4äÒ4vThbFèr8B.•'„ÆÙ´)²i’©)¸â(ÑHb(,ŽC,Ž#G¦wè:\‚.g„†Ù´i¶)–¸i¼ò„R‹!O(ôX(†â…ò„"G„&d…&Dèba„ÆÁAH…–D"‘Ä£ó„R£’D§‡AV˜$G…&d…|<þh˜`,Ä ‚¨0 "2ÄBUÁ’A$À’H›ƒˆ'A‚€¸"ŒñD¤aB68’ Á€8(FbI HäB@è$A˜",Â)\×ã BQ˜!ÀRR‚2†BD"öÄ‚!¸4˜EŠ’‚Ld*äHEŒ‚I"¡ˆ)(D2)H˜BG!$@ŒÁB)"Á‚#!ŽîB$(Q‚B)(âAŠáÇ‘„&A$±$ÑC1ÀJÈ!A¶ë"H„8"࢈1†\B,1!ƒÈJØ!ކø(K„3A¨B-!!O²RD"4„LBèD$BšôWc`ˆ‘À€Bt("È)AB  ‚…ˆ(0'”†’„…ØEâ(L $AÀÈ-$)()”‰$ŠÑˆ1$P$ g„A.DŠFR½sŒB8D%˜„X„"m„+‚>‚4!ÝÄ’¨aDšF¸ÃB/r˜cáLˆš‚)AÂA'ex(ð™bÍ2ŠÔ¢Hºq‰‘¨/‰t¸98OA¢!xFäÑBÉ!#TD&ÁDNˆ„…rˆ¢‡DÏ{I!!$„ŠF‚ H ¨!‚AŠÁ$@"Á¨`H€@‚(RD‚B!ŠäD‚&DH@:m%H(a0BAB$HC)H"$c‚ƒ$ˆ€(@!ƒ( „€„€˜D€ò-˜°EÒ)ˆŽÁÉÂŽ„Y!Aø‚($É’!œ(IØ(b9„ŠØ˜ÌA)"ȧAЂÈP˜„,ÁXCY(¢ AH$Hƒ2Ha€ƒ1ç‚B TˆAÀbJ*$+ˆTÂ&tB !„A† „EbH$t˜@4(€‚Ø’Aˆ„A,(BH" 0…„ˆa„%„AÀ8H…’$€‹B€(¸ÂÂ]D „ ‚Y!d¢Bƒb BALÂ’‰„xH!8€†"QÁ @(q"„)"H‰A6H@‚"„H€DŒ„+BH$ˆzC FÁGA ¡ÁIE„ÈŒŒAa„…0ˆ Ș€„ˆ)iˆ(A˜‰À"$0€HA'®b„ˆ,ÈŒ¡ÛT„H@A¢:  †Dˆ€hA‰"" BQ@(!)Iƒ)@B!F!€(2# À[3ƒBAA$Q@"(H’ˆDPH‹XH7A@Œ(йAˆ0D˜0ƒ±‘1+P$BB‚ ´(¢!J˜ˆ’BlÏ?DIr:B%!&"N‘C‘G")‘D£¨!%äB¤"¬„B”$‡!;X$ƒ8(1$#è#’B"#¨!/ä’D.$]HŠ ¨ÁB,4H‡B(ŒBLdBKA\œ]hFÕ„Ä%UˆÃ"‡(Ns".ALŒ$I4ƒ4F"rAE$HT"…$Æ‚2,x!àBB‰‰D$ #HfÔ(`B!ˆÀD…B”H#ñ¡J°L1BƒÑ!˜`9…ÃXhB¡Ô”a‰$$á”òQB!ˆA9¨¡Ia(UÑÄFˆ!aˆ$˜ˆB€C2(Ð2A„%â"A(F¯cÄ@B¨-tJÈ(€ˆ’„…P$‚)¤(€"‘!B!Ј€q#áI±J’F+AP2B‚à¤È&"A‚‰(¡/F$@&fH‹Rp8 HX€AV‚Á!$À‚Ä*!‘0(€ øB! Sˆ"&"QBX•,„H XŠ¡$‚C<9!³`€²S$H€,D &”!€$­!O„ a$ŒA`Â1)@„”(!KH@Bá„a„`!('Ä€¶*!Àb/쌴@a`J'BŠA8)‘&Ɉ’”,H¨‘*&42(Á,rAJAA(&Ž¢BÁ"3 䄈ò";óS‘H‘!óFHÃä»D¡$Iè¡óL‰ŽRB§&eŒ7C,8’Á‰áò!A²…HbN+„R„$`Òq2¬E)XYXÙ‰î[$?7†/¤±qsBX„;-ÐRÁãæâ%d"±ˆì)v<]*MM"‹…BR.—C£ª²#Á/Áׂò8UѬ„Ô!òE:SqãAÁ¬áè”y24R#ƈ*X+"é¢(U2Äž#ß±BqQ" „è„q!\’/BˆXB…ÔAœ-}BAH*t´b1ψñ´"#ì!a„ŒòRH3Oˆµ"Ái1,xA²Ô$ärM¡(d"С‘AB„’JKHH-A–!ñ”2K8’Z¡ˆ&AØ„ˆ<8:ô¡`QH (C$hš¡!Œá“jÆ&a‚¨2)ÔHÂBɈ¡2šâšOñT!Í#ßãõ+A^Q5×µ¶^Õùé]cÿ×)ù¡ÝwóŸ¹ÿˆôSÆú(ÝÁ7?SþÅ9McOrüšÙÖè!úÄ#åñÊ~Ô.v·D+ˆ—좷·ý›Ÿâú!Ix‹ñêlÞ¼#3uèþÑ™“dß™å¨ù1݇b_#á)ùAŸÄñO)÷ªRŸÔz7±%¼«õÉ/oÙ&ó6F〈¨kZÏ„9•=´÷%]‡‘½Z%ôq5ß…÷v?Ëü[šz4ô²Å¯½á•ú]yï9{=}IùIi߸ÿ7T/8ùQ:OÚý?)ë¤åÛ»]óÿ7W?%èAë‹ñ2¿µìºØú^"GSÙÒ=ÿöU?õñQ»õ™…èÎ÷œq_Jôr»…+ƒoÉñU¿•è•ýQï;ú7%–ö(AÏ2û”?¦ã§úÆ~¯(‘’Þ˜þþë3?ÓEò$V?Sôb&_$DR=>Îîfë¡wÎ/céj³ú.Ä?géîòEãkaGFn$IÿÔ"ObýûL/æúÅKÒ¯ˆÔ¢üá†bþ×1Žø2–.¢?³âøj’êÖ¤ºr,ô(¬]¹Ï!ú¸V§Ž/úDÊtÈèŒèÒü(µï,òÍŽ/Céa8‡OHÝIüh.O…¼>ÔMôHŒO¤½þ¬T‡ÌμO„¼|Èè¤ëM3×,ö>\¯¤á5õ7/1ò5nÿD;Jø"/jÚ4÷¯L/ZõbOúLhMaWFÆ÷Ç£O4ö¿Ô¯¨é¥ÄJ«É¯µö´ßgÞ4;§/Jù2¢²'š«ß§âþ¼Í!Ùr-ý!lÿ%ûŒg»J¯œùA›Œõ™AŸŒûuÝÂþ]ãwH¾–-„MƒoÌô˜ÅÔúâ]Ù–L×Önmÿ!ý¬RïKöè˜^Š/´˜}HúöœOM 'Sô:$MA£Áaã‘hÉõˆsׄŽ2CøÁ:A¬ñáž3qaŒxsŒø2„ȯSÒ<áçì8wMè(“¬“¬îž3qaŒxsŒx2äü:$I|>–LŽsפŽ2EòÁ*YñÁî92ƈ7Çx2„ü:$i<èë!Ü6¬-Ä/Óô*D/‘ô*D/–.Ö.ú„sÍ¢O8×,òÅ:_¤úÌ2_æøèÆnñaŒ¯GxóübÄ¿Sô*įô*į–îïöŽbO8÷Œ"O8÷ˆ"_¬óÁ*O¬sáîëqaìêñaŒ/ÃøsŒ/Âü:Á¯BüÁBüñÉþñË(ß8·Œò„SË(_­ñÅ(O¬qÅüâÄîÄørŒ?ÅèÆüÔB¼ü(Ä«aÉþAOæL¢%E¢%M#CebR&jR£ôa-AŸB‘BB“FŒ“Æ;!O(µÒ$ä…R$^(M"G„&f….†#äRyBøaœ-A‹‚)´(šF‰›†«!O(±ò„B„b8^(O(rThJFèJHèbi„ÆÉA„H„Iô)’I<O(5+KH§†Cxr¸„rTèBxRÈ8³…D˜F…a H‘K! Š„QPAh`³‘A"‚2 ‰êD@aŠ(Éð‚HˆAŽŽaEâ!bH&â…Ô‚1$’‚¯­+ÈÌY(Ä( 2ˆ)AID* 1B–ˆ$* J!hC`€€d…h,`I"˜DR-.¤A$( R(!:TH’!@ñã³ÆDa„!ÀaHK!)*q$ˆ…1"Ì„R(ÈB™d'€"h"Â,cH2°d‚@8'L%!ã8¨4(x#X$ÀË(N™¢Å‘!³ðÈ€ ƒôÛb@&‚PH)‚¨+Ð$“ˆRB!BH£D²¨ÈÃ"±‚¢‚EˆÁ(Ä ˆPJ‚„™€ˆC8!eˆ‘(E¨&˜ÒAHJà¤=ÂÂ&pDA"BQB6+r2¤…‚aD+B%Òp…‘Et‘"ƒ²"ñˆBK(žDŽ‚‚›„G‹RH£‰q޵"xƒ$Á¸†qd8A†‚ÁO„æ*Uoƒ49„BãºRôˆ„ˆƒ„0’H„LDÈT#Á¤ƒ‰&„(#‘D"H ˆ!"!ˆ"A€È€ˆ„A$‚(†"@2HÒ“Œa$BC‚!R‚@ e€(¸HB†!€Œ„ˆkAP (,€X*”‰£A‚Â!ÌB¢ˆ$ŠÁ®(À@‘š2ªIØ +!„D€¡!ƒbB…Áˆ@B‚¨A&HÈ>$I!IÒ)aA,B@4‡AP„À$Ðì<!@`2I*(”‚&"rÈ! B€q‚81$9A ˆ"‘"0„!ÌXH$ˆB«”@"&4P„„#CA„@hA€…Œ4â %!"Fˆ€ ˆÀ ’†A("ˆ P  @¡$"$D-"DL.}ãœ!(1¡ ‚(xˆR‚„( €(™!`" ( !B1(˜€A²²D„‘„!¡%Š!("qa2MB jh)B"!$¨%‚¯ô &AR2 ˆ q(A¡„  ‚0!€Š#<‚BP(L# qA*A(B!H(l;-àÂ!CAðˆ€"‚(™)YF8"€("P!¨!ˆ )"B!‚ !6á$‚’!‹,ba BPA!+B&‚$¨A*ŸÌC"$D²Baa@bbkÖD´‚kRDKBLØ$$8NˆEòJ˜$¯„IæF#H–b)$±†QØCRÈ[ƒHÄÈCјa!‰gAŒd„ x”4…Ä“£aF…¸dRˆb‰±$A8TFR¨%ä’74BDÄ@Á‚(f&2QaD$AR(Dá\D—€”)è$ˆà(ˆD®#D@cZŠ4ˆ.Ñ‚ðˆ!€B1Â"+%6¢"BL‚Aä!²Hô‚D‰!AÏx´aD¡"‚!!CšA44„€h„MÖ(1’B!(°‚A1(a"CB¸A“A„˜Œ)"…B"T!HE‚‚bEa†(Œ%øBÄ#-X‚IÒš„CŠÑŒ¨U!1H”"(J’*–‘Br88J‘!‘Ð"È"ÁE2,$)Ô$!"Ñ…$I`Š,b„*8B#¨¯÷($"!T$œaJB‚&d–„¦*€Ä¡,‹.“*Á²ŠA"ÒA:ƒ"Š’(A²(ä2(ÄA.ÂbL*‚2è%&0(JR("!!BlÂÖ³’"0G†‚A‚*"(D¡#[E‰@c‚"4"!EÄBXC@H6"@q€¡U(—ü 2@J‚!Á #L‚4!# 0D@B(dB(B@4.A"1A! $N@(‚RÂD'€3¢PAa"P†B*>¥)óTH‘:à"Á11d:1aÂ"¤7Ff1ŽAQÛAëÁOŒ±…Â*‚¬ã„â”A!RAò"=A*’UYAÑ!ñ-A[<„%â8#È‚bBXN.„¢"JÕ$1X,6Þß¹M"[44FqÒ±8R!¯Ø²“öÊ$²Lû¢L¯Y”Oˆ”,´!Ü…áX´O„é¶Hâ¤(b¡/R±RBŠ¡#É!/’ŸK2Á."›‚˘Ǣ¥ø¡RÈ鄬Å>(.žbd+4&Â"ŽDÉ/’,И¼1ҌԄi‰)dD-˜ò2““Ý·RA01#SÑã…¢!2À¨!¨<31§D"☱JˆcBñáñ!!á"†z2$*òa¢‘"RÓ Ò¢mC…5S´!"Aa&­":²,BòEj:,Wb#BÜâ’C(/#Ub#˜RBð7šOñ4#Oñõ1ôYKÍ2ñ:¡þ}býǸ+LçôúÖ{Ò?®ñA¬ÇYþó9/Æzlù”³O{õ©™e$O!ÿ«ñ¾t>Ö¿L¸2â‰öAª?µçõ«3ŒSó%¿òœ¾]rü$øú‘Yÿ”1݉¬ö±bòW2!/äòR¼o(™$¯)ÓȺ6Òøûa§ÃgkƒoCñÚh/¡¥äk)ï•1²=25÷%tY½Z_´õi=Ï“ó¿Úÿ{*ºú´4/Q};úù‘_ö–£ÏQòH)?ö„³ÿAñë:¤ý¥ìQ?9ݱñ±üÏ÷/e?[þs¾”º³2ü{;Žù8ÿ2û4%)!ß:û75?éûA;_Î÷]ÒyQøñüßöå$/Ö¹{ò"oããs÷;{«¼Þöl²oAÂ(òñ_vó"z/¦÷æ>!í$ñBXîžÏ"õ{R$MG-D/vÒ$Ä¡/"Ññè|–‡Ìò†løÑoÈôRÖlòUÃëAODôA$OýŒBOhô«m/ôú”J$øËH/¤ëxüè'yzçØbÈ¢)øƒq¯%üinO¨¸R\ÂÒ„ø"†§Ê/‰òÄJ‰øÈHŒíÜØHøNCßÄaA&ôTÑOHòÄæÚ„¸RL,_ýÎ"ÍDäó²nGŒ…RЏŽÿcÊâ}T?'óQBŸ¤qø"Çñhü|:oHù"/kò¤#ÿÊþ:$?~éVñuhK"WTfôÇÚ_"ÿõ·§¬m¥¯ùúª_õõɆ_4µ–ú"/)ã+õ¢É»¯øñ1œß2-ÕÌ<ï9ú,W«ýÿ•úÛ„ýi(OÍÿ±<ß;uWö24&Ô&÷õ¿bñÈ|/ë±r,ÑÝbÒÏ==.ÏEõš/„ÌX¯%ñ8Zoßþ÷p2ÄA¯CÒ4vÑì8÷ÍŽ2CøÁ:K(¬!úáž#saœ7Lj/BÈÁ¯BÚ¼Èáë4ŒŽsׄŽ2Iá¬ä¬î92ƈ7Lj/CÌůCöÁ«Aþ!öŒAŽsߤâ(“¬3…¬!øáž#aƈÇ+„&„ü:$I¼„¼lqÃØBôE¯BôA¯BôaéòAí¢_¾Õ,ò„SÍ"_®ñE*Ï,qEîoqAýèÄør„7ͯFüe¯BüA¯Büaéþ?Aíb_9Õ,ú„S¢_¬ñA«O­ñAŽ®Ä®Ôø2Œ?Íò"Œ¯ô*„¿ô(„¯–¬ï”,Ï:•,O8•,_¯ñEhO©ñEL/ëqAìêñAŒ/ÃøÓ.Œ¯Aô(„«IBørɺ>´”F"W4rM"Cäb"AÂ#ôA,-A)ÔA‘Fi<O(51MBvX4VØ4rDhrVÈ&#Ä%'„ÄÓ”()˜F‹i8O(19ErHc‚M#G.EHDÈV„ÄÁAd‡dAƒ’„³ó„ƒt8˜D'ƒIV†&tÈÚC‹(8Ð'"Ia" (&="BtPX!""°¦‚a‚Œc@“aR"$EBq$B¡"„* )‰x1óªÇ€Q3À"L+¡@ kH‘L!5!(1 ‚šLA‘(R(@A¨!#Ã"%„RD&"Œ hB„"–=ýà"1Aà‚"!Ôa(Š,H„´DA„ ‚BAXÂ'‚ÂS3Â+&©Á!H!‚%!‘ÂQ(ð†B&â!hBO$x•‚&X‹‚MŒa( d)FØ] ‚A‡!@8L!Ò„d„B!IQ("PHDA…"AR(0$(Á‚G!P¡Mp(A."Ô‚%ÄHBpXT„’K@ˆ"‡$&ÄH'JB„‚DzsÛ"“DÂð.DWl²‚D^„)±E40„HÁ!ŒÔ˜BŒò$H3‰r2TBQZ#ñ¡(™‚Òé"Ñ‚²…a„5ê¤ñFÒMI¶6Ä…B4I1Bf‚‡¯"Äf&,a„‚V®Í@HÀ! (1¡@D!IÈ2@††$!,X„ a"A‚pˆŒIH¨ˆˆÀSJKP`h@2I!œ€X‚A,€”P$ˆ†8IAˆ Aˆˆ$@XD„ DT‚A$ˆLÍÀ1e•Ñ‚`AG!D#4"PHd!†IZ„ˆ‚Äj84,’‚4'4@A àhA'„$A,A‚ñ$1(!!6dj"±$*‚4$!ÀˆÂ%¨™3G‘&D„@ ©Xq`!A‡A,,Ap‚‚H$1ˆ ‘œ‚8!cC"ˆCÔ*‰*9,!$²†Ò&hB âhBˆƒ1‚ßÖ¡$„B„D6Tà"È„Œq‚Ô„b)À‚ !D$DHDBD"H!$@$Ð$Á½ÑÅW".X‚eŒ! $ Á‚FAˆ/È(Ca(LÂ!"ƒ!’$IÈBÄ’.I ¡t&¨„„A"l4!!ðADƒ"\)KHƒ‚J„$rNO"A(‘†ˆ`!°$„!€(ƒhHC.„$/A"ˆ!`B‰Ä(I8”È¡`B„Š’„„HEAˆ F*Â"㊂8!&4,L€‚XB„ä!ˆÚbD€!(‚‚(Oaab()Â$0$Š’Œ¨kA¢9U8D#"„lHàH‚”#c$ AAÁ„!ê„„JòÛ~@´D2BRBŒ±ˆ XC¨Œ*„òHƒè¨8‚fŒ† HBÈŒ"A“Á(AAŠÚ(Á%H&@ Bx!ˆ„$àò>_)b›A@*T/"<(†!ž"æBq!F$)E„4!%¢A,ÂD`DŠB"HRJ‚"„ÑAda!ƒ¤"t4²(BÒD˜DLH’D$‘EDMApEcéHLTØ õ!80V€H"Á8ƒªB*RB*ÒH„cH!€1"B+‚#A"’„…$ ‘$+HPAŠÌ'”ˆg#ð$"„(X§f`!4a)¨!!I¦„¨ó !(Á0",†(#E&ÊF¡‘.$XLXAŽ2C(B3ò"LfH*ÔÁj˜!ÈòB,e+$#PBaJR„ò„X(Iæ!ÒD¢BhA?êE$@…´!A$„‘!HÑ($QEL$¢G"GHåˆÂ1ЄX,A˜)ÁUÀÅД§8"N–"$ Ê!hH ¨$i«‚ªA’d°¥×xˆ¼h$’ˆ.ÄãL‹8ÅH@H(>ˆ€ˆ!(:A„(!HD@R‚AY3,51…’A(&”ŒB B$D0($ (ƒôÆ&A"„ˆ(!)¡‚-,ˆˆ,# Á$FYaN„FòqEèu!l²!"Q#(ÕÔH!‚ŒÄHc(DXAP‚`JBBFHŒÈB(l8œ”ü(]Î5ñJoã‹ñ¡);/#òb’%9AÀ"/ÄòFAø1Be³\ŸÆÑIe;;H†´)ãqøÑ32òAnE„âÑòû%9~’ÄB4ÅD‚O6ra#g‚O‚‚æÂóva["iñtiDdŠâ‚±QÅb*¥MÊ(µÔôãð48K$'¶'„áÄáBªaJ‹B‰±(mB.F.D+TÖˆ!¥)M8'Â$/‚Y"k¢,’ˆÍ†t‡J(Eô&!,¦ŽIBÁI/r1ÉH¦$"êHb1‹ˆ£4hDB&ôELØL͆G„HÊ:dM.CÂ!—AL""r!á¥"A’&¦a$†q!dÂ&ìÂ(ã»!×L8‘°rÕAöO"SB‚N3°áƒ&áÄÖôAˆ€Üô-d/1yK‘ƒ#ùD+X_b”‹d%D…ÜañBN‚5d¢LNILÂ"¯BqHÒ"‘BI‘‹"Ï—Ereù1sÕûã…¥e_Óþ3#¿}öªV/mª3”öÁ9/-Ø"õû3Ÿžxtô$ä¯/ú~.Dz¡ùc–½º_…±‘ºUù=­¦óázËjïeû&={7ž?/ýaßn÷Ií/WöDe¿(ø?=?óµ¢ý5įµöÛ<ô·»ÿÃioÕ“ª?LÒDúÁiû÷±o^óndÏÂüQEODöxÔߨjëOcù²F¯¡ÇÈš¿”öÎSóqX_ó÷C;Q^Hn|_‚ñmµ?Ó÷ó(>6+³¾Qšâ§óºB¯3{ñd,ÍdÏhÓbûF¹ßöÿùQõ!Wûe…W÷ÿOò‚oÃú†wÿ¿òQ+¯qû>ãoôdißTöí·³>ÿ¾óA=ÝÒ?,ùÓÊ?íý2?7óóžÿgò‚†gBOþiOo¿~_öÿ÷òeiûbÏÿuq_«ÿFzo­ûNR+Ý^XþœGö½]$]Um?ÔÓ·xøA)ÔòÃÇo¹úoŠ/h¡8Þ¼Êõê*?¼üaDtHüâZï(Üݘþ‡ko½ø‰ÁÉštÁýǯøI,')ª±‘ØüÉAŸžüUŸ¿tIôMM5ù‰ÉýK¬O©w…Ø(yˆé¡úÁ™¯*Ö,xËÞ$hJIx‚Ö<üÊMŽÿAR\Ý,O×ùŒ$ïBýŽ.müg¬‰øˆHOÂý”ý3Ûö=E‡¶•ôCƒÑ˜õ=UyôÇÍŠŽ#©‹“ü‰¥ë†øYAÛ"Ï„òdÏMô¾ñŸSþI˘õCÉÑŸ•ïÚôõyßx±3û†’šò‚õOÿ»Ÿ™ÒÑóa×VÝi_žs»ó‰äÏ3ù,œ?¹ôÂÈ¿øøüoÖô5ï}ü£¢ob²‚ÚDâºþ_·¤/ûû^EßBtMý„ÌÝDÅöþÆïæò”ˆ/Œ9ÄóÔ¬¯Ÿ 'Cô:$_46–LŽsÏ„â(ôÁ*M"¬î9ƈ7‡„#ÃÁ­$MÁ£Áá£ñaÍŽsß„ñ„2M_¬ôÁðáž#qaŒxsØBx2ÄCÒ<¼äè8sÉè(“$¬3„¬¡Oî9ƈ7ÇJx2¤Â¯Cº<èãáÑ6üLüEŸBôABôqÉò~AÛ(Oºµò„SòÄŒòÆŒî„î„ørŒ?…èÆüÁBüÁBüáÉþ>Á‹hÏ8µˆò„S‹(_®ñÁ(O¬qÁèëqAèêñAˆoÃøSˆ.Œ¯þ(„¿ü(„¯–¬ÿQ•¨Ïy•(O8•¨_¬ñA)O©qAèêqAéêñAˆ/ÃøÓ.Œ«]B¸ô(„«yÉú¾A_Ïvta˜$G„.$È„À´FøA¬”˜H‰‰´(‰<:ŽRƒ¢H‡…‚v¬(G…¦d„Šj„,zDøAŠMA‰ŠÔ(‰ô(†ˆ£ã(18‚§ƒŽA¬hG.¥eHAÈa„„MA‹$A‘0hˆ³ç(1)p(„hEèBDȹcÑ„!‰%è"”ÂACbP)SHˆ!RˆB¨”+iI!¨!iÊŠ4M($e‚à!T‘/DCá,!,w„*ŽD¤IÌ! $Á8"K„ ” þø© ¬, ÐA14#(’L¤(P(k…h!BÈð¡(Š$âIˆÓ‚¤D&RˆRP‚A^"Y(ÁCÀ‚ÂD _,*A¤FQ"O’$È"I,vó/’ÌAJ4&†Š‚,(J˜"_HHÈ%¡axˆB˜A)A$„ˆ ä’LTDD¡FÆ‚0hIHª(M‚DèA&2ˆ”AdB(M‚‚„BžD=Gb‚!$¸Ä",‚ )HDG-Dˆ±*˜á$ˆ€"&µ©‡b„!ˆ$c*8LÁP…fÞ$ D2(6…€ôA€aBHø‚ˆ`"N2(B\HAÈ-Fˆ5ØAˆÉ„‹‘)G$š¤(+HŠ&,ó’&=ˆ0h$.ˆ4¤KRMd!&Ä#Ex!ØD”bIh$‚‰ºô_˜$†B4%ˆtB(r!.# (ƒD¨@I† ˆDA•D@HBˆ($!Žˆ0ˆHDA#„¢ˆB29±B  $$e$HB%IDBÄ,A‰"’Tdp”TÀ(*X‚À(@X$€#¸†1°Ø‚€ˆ'„0Tàd„úÞ® eq2Q$4L"•6Œ9!Aˆ„êI8&ɰ^8J²„ °døJ„LQADG‚!QÃPè¡„v„"A…âCØ!‘DÓƒT(9±*±(ÔHÁH„,¬ãŒBTHt‘¨"-,Pƒ‚!A,ü‚‘'Ðb)AÐ$%„Ò…HôJD&h‚D'h„$‰S†(ÄŠ$­‚dA@°Ø(&ÑHE€‘¢?^H“8BQ"&‚A<$†h"†Ä2ÀŒ’#’ˆŒ"CÀLŠ2"$B#"‘D"¤K!,ÔIB¡$„nB£àD&^AcQ!¤‰Ä'‘(@"a‚])rDDŒb"L$Fh!D,ê¨D³R$"2„0,Œ(j£ŠAb„˜0(-!N–D#È&d"ì$D(S$øâHIˆð·A@RXD)a IÂ!@I–b!HH)4¢(1‚"„D"B#É’$¬*0Ö0‚ˆ¨E˜¤(Mò‚P3X QTŒÑ‚!£C"™"Qhˆ!(%D–ŒD!L‚‰Â†D2UH(8"‹!"D‰ +(‡*Jqâ!"Â(< Gj(i2D'Œ*äH”ˆ/H¢BIŠh!Lò(p4A… ¥(DM„˜b@AÄ‚ ,!5˜BF(¢ƒÀ2A†"A„Ä‚! á(|o£ïÍóŒX+”/(ýøü¯&÷\ì43ò+!?vóC=%yñH#Ó"úã,o!BÒ&ÚSþÒß|òuÔWÔEtMõeÆ_}ÖWy†õ¿uŽK-#ñK3^ëŸ2úÂC?ŒØ"Ødû„f«úʆòWŒQRĈ‚݇7YgXïHûDŠ·¿œô£‘N‹Ý‡OøôÏœM†,øÃC¿é¡üH&S}wÙÈô,¤”ÏæúÆoHò†¶Ï$œ’£ü2”/ü4Oõ—÷jyw1Ÿ´ñSA·q=K_rõmN[¿oba#>¶qïûÃï_SôG%—ÂOÔÖÙöå‡Ý]ÿ¯5¹A´RõJi?3õAÓŸ&è‹ó’’†Oc8Ö//ýj"îõÕu-´,²(áñú¡soÉóïþm¹ñ“Y¿=ûRâŸóùT¶ÿÍò¶†o#ê1ù¹i?)ûB†XñWa_BòHl.BMîOjtžü®œï¡l-+ɯ¡÷ÒÇ?»'C.E¯CÖ46O–(8÷ÍŽ2(_¬óD(¬!ôåž'WÆŒøwŒ^ˆoCü8Á¯CÚ¼ÄáëAaÉôˆsׄŽ2IòÁ*EøÁðÅž#qaŒxsŒx2ÄÁ¯CÖ¼ÄáãÁaÉä8wLè(“¼S„¬ny2xa¬„7Ç>ˆ'CÈ/C¶<‹áëA,;o=E/‘ô*E/t*õyí!o“Ô:ò„S"O:Õ(òŤúÕ¤øè„î„ør„7…/FüQ¯BüQ¯BüqéþA¯(ö„S(ò„S(òŬò”¬kqAèjñAˆ¯CøS¸/BøÁ¯BøÁ¯BøñéúÙ¯(ò”S(ò„S(òŬò¤ì¾Ä®„ø:„?…ø"„+å¯BøRȯB¸–®kMILbA,dA,2D&&D2FctAØ”a!j‘‚#ç(!B"C,äb2,Š;B„Ø´H‚˜B.ˆ)<2Ž6h(ŽBƒã(2®fŽâ!¨¡„Û´HXN˜aj˜†#ã(!f(†"ò„"A.fœ‹((4B…C-E‚AB2 D&6(!H8%bÔp‰T%Œb­‚&‚˜RK(,‘!)ƒ(‘ˆ'‚‰„:B(0`kBh„N%dD+B!)¸Ø5ñ¥@%1D$°FP4*`"BRA"ØCx¸"D"ʆb"–¡¤@a‚ ‰/L‚øHŠÀ–.à‘!â’´Ž…F&ÁÂ#¨MÊqR$4€Bâb((r"‘„!M!F$xÒò„Â( “BljJ$ŠÁB&N!À˜ŠÒ%C’ƒa°(‘‚‚$EÄ‚„X+ƒ (¼BB„ðn¸$(…,DbA‰a"k¤¡„(AD‘A%…!ÅÁ‡8Aa`A¬DE2„…)Xˆ3‘&L„1†B,hATˆ&DÂD‰d$BH!2‰„G$s!…S(6*8"†ÕBü*p‘*I"ÔLBe1G,Á#„iñGD)r†ä!uÒÛO"Aø%‚0ƒŽ‡‰b!m‚M”LDtD‰òˆAHÅ2HJ*2H$Dï-A!A"„"@0(@M#@P‚Š‚˜D"Ž‚D„P‰ˆ@Ž!Æ"(! "AÀ‚€AÀŒ3°!T4ID)Xƒ`4Ir†ˆ2ADPH„'A’-(D$@±(˜Dk2(A”!ÀHDX$‰ø*sñ$DB2AÀ1T*IH¶èFx"((E©Š¡ˆ$¬qBRA‚–µHµTPŠˆ­†æ”À„.*`B!AD¡P"9Èä*ÖBX‚ÀBŠÄ¹#Ê4$(áP!b……A4AD.‚D"Lñ"†”P„€xDX Ø"A8$M‚"€X„cAR„„@ ˆ……8$Ê-!D(AD„(X°L‚ #ÈÏ®[!B$#hB!†Ä!$ &BÁ‚…xB€1„H—!‚$&„!P$Ø(A©"M"D $T–B(A!B€Èt3σ8B!‹À"ƒZA%ÔFAä $QŠÄ†"é‚"](ˆˆ)B8!(Åb/HáˆBB ¦…R$C'!Jf"ðhA¤‚%¾(ôB†&ñ¦ŽAP!‚F‰š$A„‚HÐä"C˜ˆ!(D£,áŒ8!"0A"i‘$¤ÆFa‚($‚‚;­ Jd"(Q™(K(p"e¡\bJ¨9æ(„ô)âA•à8R(5"#‘IÍ‚À‚‘"Y%4&#B(((V"ƒb$ðˆ!ß³ C‘$@k$‰Bı‚H B±˜DFa $F((Ž(€‚”A&„‚8"J‘IJ BCh"@„¸H©$d„H¡ˆ‡A,1Bà¢(ÂAMQ,A!DqD´¨U+D0²)1ŠRBƒÀD4B$…CÊ!EØ"ÃAG(EŠ¡K$Ì¥HDD„EäAä(…Ñ$ÙòD¢DˆK„„BÈ‚AŒ#9„ƒ$H "&DH@"…H$"BJ#!@HÀhH0AB€$ !ðïÓL@„@„"pˆŒHˆBB@AFŽH0„‚(H"" À".I±K1ÅX$àAáRôÄ+Æ3‚(†d"óìª"}!2—„Áˆ«&Qž"eÈÊ©XR…þˆ%O(ÕH4„€qÄ4*â3²d„!—V…‘†.HR/œbØ­ƒL…¨(˜¨¢‰ØˆY؉÷Da*ærš¼„öÒ(ÏvÎ(8ÄÈÏÆÔè '#±Qäƒ"áÿ$L±4bDGÜ’F(àÁ´DaHÓh(Pˆ!4A1#r:XX'Vt”Ã&N$\¦NÎFüdŒÑ„¤RG‡%86tDè„tBñbD®D)EÚ†ää$œX„$EâR6%aR&…â!¢%°&V¬2‚¤¡7b#hÂBR)b=‚.!.C…Q4Œž¦%Ò˜²„Â"c¸‚hcÈeŽDTADÁ”†&dÖ#áÔŒ4EØ”:DEV$MCô!fô!Rb0E„rx,H©ôH‹2’otMòhOCôZ/4²¡ùTŹ·C·¤ñÄ´m/”÷»h¿.ùv¥m<ßL|\üh!?©ú]FwaOùú,Ïn*•â¨únÇOâø?l×\Ohõæœ/#rBó^ïný>§om¶EýUDOVöƾ÷ÕõäSÿ“ü:i¿ì¨±ýzL¿Sþ‰\Ï(ñä-ßDÖö{Coúû^çöýÏ$o¼üBÁ¯´þ‡"oüöì—_êùw¬oIó¢/*ý6ëí÷‡¶?cø6%]%]$âôå·QúWÍ?q÷Å?1ø’!ÿû„·_:õ|–Çò”¶O*ó6Ö¿òq’_úÓGxUE•Ñ¡ýÅ/axÞôöO¨Ñ‚¹šù&TÏ|9X-Möy$?4Ôe3ßõ¨3/(¸skHO)ñ¢§/µÿˆZ?lóG·¿Òôlm$Ÿ¬ó£EïÿÛRü~æ?8ô˃-Ã?düÃ+:õ¬ï#ú”6O*ñ¢“~§/=ó>½cWW.d_Dò1ßzñ¥·ÿUþ¾ÿ¹åù“É¿õô×·ßúù-^Nò¶ohé2óÄÉ¿³÷ßa~,Rteù))hÙEñöì§Aï©í$ôÚØ/-òRêŸã 'Cô:$MA£Á!ãÑ–ŽsŸ„â(“¬ôÁðáž#qaŒxsŒx2äü:$MÁ£ÁáãÁaÁŽsW„Ž2A,ôÁðáž#qaŒxsŒø2Dü:dMÁ+AáãÁaÃøˆsWŒŽ2CøÁ:EøÁðáž#uaŒxsŒø2DȯC’Ä+Á‰¾ÊvSÒQüRyÏRôA‡R/ÖòAò¤S‹(OyµˆòÅŒòÕŽôñ†ôá†ü{„?‡ùiÅ/“ü(Å/•ü(Å/‘Þþá8÷„s(ó„s‹8_¬óÁxß(óájqaø¡†ø3„?‡ø3…/ü:…/ü:…/ö¡oö3O<×(ó„s2_¬ñAú_(ñAÚjqAèjñAȯCxÓø2„+I¯C¸’ô:„+aéúQ¶Hq!2U.$…8AˆôA¨´HJJÊ+!ŽJb¢H¢(Q®Dª<*<[†è´(h.¨A¨/¼â8Å(ŽR(ŽR‰â(ìbè"5*4†/”(##a‚+'ƒŽfÈ",!ÂrA.FÀ(R'X%"a2L‚¢$EcÎÆ…È‚Ä.GÐÂH†!—JAO)‚(‚h‚Ž)D˜;‚-)A/ˆ+!Æ9‚O"Õ!(1„,±Hbâƒt!.%¡B'…àŒñÄ(ŠIòI0‡€2EÉ8"4…Áˆ„!Ct$sBAÈHàÔ‚Ä"†¢ˆ‰’!„ŠK‚­!)h’F<‚âd(‰t´âH¡,!‰Q„#&DáÂAq"P‚$‰å•Ø!6·T$AÐÄA$$I5abŠÆœ2€bB‚ò(%ñ„"AÔA%H„áTr"‚à6\¤!N‘#1$¼D”¢*AD’!,8"Y’ˆ¢I¦H $˜AÄ)!ÄJI…²„a!0(†š$L°$a(P“2‚2…$…’$‚CD;DBŽ…hA€T`ˆD‚A,HBPˆÄD`*¥”H„€ÁÚcAxT"^ID²HTGœE&¹$«8O¨A&db¸r:ár„BÁ4AÍ$M„)ŠÖaF±2XB†£LƒãÑÁ–F!X‘Dƒ¸!HóD(ˆeÆ@’+‚1HQ¢D‚#4„B#LH­î‚H@BlD#¡” "H"ˆ„PA$!$ŠC†DA@H"H€!a¨H…&&$h‚ Ð?“-IŠ„‘C@8„(Lr$p8(”†HG"“$GH('H˜!DD"Eˆx‘-HA€ $r(T{0D%ÑR•Òt$Ñ‘C!+(AW(#Cþ‚$…Ô$Ø P)x:ÜaH$@4"š."DPn„3Q(+Á„)BR$%•%X!§‚$…eFá5TB.)xH$+$|B#TH¥f´ÂA‡A0‚AÄ¡,˜-0$At’¨Ä'(ÐAQ!†XBD‚4O(dI#H`B#1„C7ˆ)$AµDh"DH„&T!D¢%.DïýDd@AA#Ä‚ ‚eABÁ¤$AHE!¤`*S4"(%bQ(APðˆ@"A†QE1DR’FBHADG$@‚4J@ÂiÑ„ªT(B,.dHBÀ#I´hD¡B4ˆ!DQ$PˆHMˆ9D½‚I‚,Ñ„H$„D‰hD,¨E‰”†D*ÈD@‚QLˆ¢AƒT,±H(È¡ñ”›@(Dˆ(D" ‚$CDA 8„@„@‘ˆ!BH(D€x„‚ˆa@ QœÀ„@¨ˆH$ŒK„t$#ƒ‘f0„ˆC%¤”ÌD"IADC8ˆ!ÌAÄ‚K¡˜D„B#$„2äEè!(Q¡X'¨ÆD8ŒP$ˆ%dI(¨(\AFIs„¸(áˆ!ÈB¤„!Ïó ‚#1À$L$DDˆa@%È „DHFH¡ˆÀH@B@„š!Ȩ„C€T‚(3Ä%!XÑFx!!•Q’ˆ!’15ÁLUFA$8‘”1QG(,A†aQ€DY‘ÈL$2AQHW((`X„†cHàŠ„aBBƒ"ï$5HC`!†J&Hb!’%a$Aˆ˜„)´B˜‰YhJ…Â'…JBB,b((ЄAñB!FA¢,bˆ'F$)H¶"Ȇ¯Ô$ØJD–HBCÕBa$‰Ô$B*X„GˆMÓà d`!!DˆÔ($¢%Er"Ñd HHT)TH!PFŠd‚EB¤F„a„JH$‰’É‚±DeD–>FÆ!ð$„%lH!“E‘pH„D€€A"@@AD¡¡<‚8pa„"ˆ(¯1€@1"#!$!, !L0(CÀ #( (œ"ADm”1FAañDŠ=ˆ'¤)Êiœ½ÁÜC…dH‚†ÂCi,4ˆ…x‰zDzÍxƲÆô¢«e1Ç0Ä%vÂdôyA©…FlÄB‹ƒ‰œ„hñ˜AåbH%Ç!N$'DExB¬B2Œä¡$ˆc(ðæ]$--+¥†•(.H¤D‚$LhA)AF ˆ$!Œr2TJ)ŸA¤!ã¡).AP™Ô(Á8#ÄFaJ&aFŒx(4$ŸA¸2ú…-$0JM$M&8«8I–DƨBNˆEø$“3Æ!“TI…q})ØTMS“ò$5È.k,Qf-TDäQx”J'Aya§)шEÀpfHDˆD˜ˆ…Dñ!ÍA޽"ŠS&Žw(yC¢%(ÂH,ˆ²J|R(#”„BKÄÎJ$?’ñ^B”Ô¢Ó™á…ôI-ËR¿”ùšæ#sÆ’–/mö©ÿ>Ô6ùÂR•B]ÁÞTLùA[O9øÌBþ˜á‘x‡ÿD[/¨ýæï#tFò†’?áü]IEüfö¯ìóäÜFùDÅŸñÅ]/ìýFÿ4ô韌½öaEßZñëþ_åxvlö¦¶OõøZOfÿæwhãŒí„ô$¤¯M÷‚/¨ùdRïbôêÂŒ¬hKÆÏÚ:•-'KÿõÑ5uKÙôy}ß’óE[ßøøë*O#úŽÇ·¶ß»þWx}SÕQT[Ì^ŽF?¤ü—Öo¤±ŠX‰ŸéÙ‹õÏçÄ/†ºø—-E¯ìÅøôÔë/Aôd-=EßTèYõDJNŽOyõÏA”ø™uß^õ…WÔöoŽoCø—meÿvüw{µÏýVhNh'FÍÂO­Ó¢ò"Ø/nòÎB+DΈL~hô©,$?õÕzñK{籟•Õ˜ñIÕxßû^“ÿ¤ù†gi¡ùç[¿qøÓG†ÔAÔQô„KM?]õ‹_¯„ÿÖJ•ýÉQ¿ôý›‡ï¡øÞZÿîû†oaø—ß\ý\¬ïíöfÎïEöiLßÔüQÍßUüÞVïìõËûoµüÙQ÷ÉùOÑþÃï{ñçºoaú6‚kñïóÿåþ_ooâ¸rÖˆòLìoãørâ¯)öÎïÈÞ¦¸ˆ¸ÈÒÌúÄT#ÚRýO½ÿ±ô[YŸ”ñ)}ŸÑô™Çß±ôŸOjó’‚G1ÿùÿM?iüQ}AWTWTDŠüT×ÿtýKRï-üQŸœýI[¿ÝøŽï¡üÜ2ojé!øÃ_õÍÔOåöÖ¾nlÇT_ÔtEýEÍßMõÊVï8ýVŠ¿õÉQŸØíÅþ}Çÿwøõ>/(û4†/3øõwÿ|ûUïí÷hH‹&ÌöD,¯¢üú"¯L÷®„O¤ºˆüˆˆMm¿W /CÄA¯CÖ´ÄaãÁaÃè8÷M(Ž2CøÁ:CüÁ‚î9Rƈ7ÇJx2ÄÁ¯CÚ<¾ÌaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬?î9ƈ7ÇJx2†ü:$I¼„>Œ:&D/Qt8ôA‡C/¶òvAË1O<•¼O:•<_¬ñE8O*ñE\®Ä®Äü2„7Í>įYô8įô8Ä/¶úAË9O8µŒó¤SË8_¬ñÅ8O¬ñåîÆîÄørŒ?ÅèÇüÅCüÁCüáËáワ÷Œs‹8O8·ˆóÅ:ŒóÄ:ŽáîqaèêñaÈ/Ãøsˆ>Œ«ÇB¸Zü(„«aɺ^ö#ÊIIäBL!A$qAìTHDCK#ñ„„IA˜4CäBL)Å„VøAŒA„‰*‘¨8ŽŠQˆŠÁ(ŠS„®„ªi*h†è´((±(*‘¨¸â(‘(ŠÑˆ¢Œ¢(EèBHè¢1üÈ›"MALC˜AMŽ(„D1…d”A(9Ä‚D4AдĒAŽA@ĤAG¬0,"G†‘ʂĂŒh!‚d,5ˆPATFHhDˆ ƒQ¯(A™!u$L8‚„D…ÑAT„’‚)e„ha¥$‰aHÔ±DX„¤(D€"‘Œ%Qˆš -˜ˆˆ)¦ˆX…RA„ÄH„Iˆ€<Ÿ,QH1@c”@!T"`C#\Q‚P–!C‘apbˆRB°h#¯EB!E¢‘#C!˜$"m‰$Kˆd–b˜,AY@RA('A$‰!TH¬òáy è#*47„M‚À&A,1Á‰Q$%Ĉ!HD$ŠQ!1‰H!ƒH& Ecˆ˜D„A*9A„#©¬D3ÔHH†!xH‚B ˆC„RÈ@B€T?GD·á5‚taP2K„/B!òIÁHÕJÉA„/AÈ%RAQ3X+†ÄˆÉØ!ˆv„§(%FD5ED"š!]‚7!CztÁ\â†bI)Ùi%è4hB”ED³¨Ô(d"„‰!d$‡$ÏÑH²B…HB,R@ÀB 4!$AðȈ ‚¤"0$FÈ"€Â@ÒˆDD(Á|?Ù„P‰ÀH,±IHBÄId)qB@ (APP!“dhp–˜!¤P""a@†A‘'hB˜9BD"G$Oç_!ÂH,tAB’FÒAq‚dR…È‚&¢B,ADEñ$B!ð8t„¢XE≔D%$BWH’ÌÕÑÄ‘ˆŒTH,H¥¯‚hBD`R19ôJdF”! è$G¤!ˆB$l8{(%A8B`Cá&”ˆA,”B„Ð"DA–‚%a!‰8BD†!A¦hT!p($$.„!’KH&‚GH<#Ä 4$A/ˆ2(‰4‚ø¾7#”J!%Ì‚À"AR'DA¤C!D‡2A!‰RD$A,BDR%‰1¥ED3HDBXS(…Ô$PBa„%4!`„qD)d$@ÒhQbTƒ4B0d‚èhBA,Ä(a„PB¤ˆ‚CdŒ„eÈH§(P$ð„BEa$‚Ed‚ÑÔ$X(…%‚$dPD‚ˆ0ƒ!„‚ITFL4‚DÈB‰ˆôÓT"4$0A@E"!B$l$@ˆ%†”H0‚(C„‚@ĂБ„Aˆ!E!€H BAŒ>…(!FÛ$L‚Da4€(RDÄH%(ƒš‚aAE"˜AXDpŒ6‚AH„/$È‚‰bAFdŒ†2Nˆ-ŠH‚A0AÀ††’ˆL Y"4„@bˆDowLB…!¡V‚ ‘#‘–`áH€€¨„a!¨Á–„aeA ”D$Pa-¤$©2–¤2")"¡"*âDá((DHBHCÂIÃ…”a€ˆÐ%ÑDa"E‘G$ JA„ƒpˆ˜H%˜Bà‚ABƒ$Ç$˜@„DädxH(‚ˆË—$ŠAHÇ„*Ä"‡XLô(‚PB¥d"ƒ$‚üç@”r(AA1­% FaH!KH$!Ä,Ä„Dd„…qA(4@|˜j‘„œ¤…Y$E1%‘$''8†¹ˆ(Z$(G!a!$Œ;·h%Ax+A#aJ$‚äˆHd(DFÔBX/X|ˆHhðœA8„‚`„•LI¤H=IÀ!'FB!QHÑ‚(Õ¡(‚B•‘ˆF!ðÖN$B.FAüH Ô$!T„cXE˜hHAIA†AD’G$B¬±AXHˆ€ÈAˆD)˜„$0„04DPŒ.H…dBP&$•"©¡H©‘$ÙHC3 ‚€ ¡A@I B !((@@("!€Šòz¾DA$H"A!D1a"Œ&@" Q(P$€Bh(„$ ÂØc^R%hQEY™PQCQTO¨XåC˜CøL›ˆd†¢BGDˆ]DUÑ‹ŒÔ˜tøKH‚YAÓ±Q™ÕÍ…†yJ"Å}XqƒY2ò£Õ¹Šr‚H±ŒAщCh$%QËx)Ôñx3Ö"ØHø‚Ÿ"øJ($)’,¿.WäFÂ$A‘[ago!¡A‚$ADEòDˆY¡„LÁ„N”'E¤ŒH´º”"Aƒ†òRAŽS.JmŽ78,ù2A›A>„`B>D¥£K¥(8G$à‚.H™’a¡>DH)Ô#™H*AÆ„f*Ä@2GÄ£tÔA‘F¥8¥P“$M$C8LÂBŸ‚1IADL”J„8B„K¡„P$Ñ8 ¨HƒÄ°)AHaA'$#6BMƒaˆÂ-yð']_µrkÙÑ}QsCÑSÙ“ñÙåÏcäLØFñÑí³ôˆÂk/HÁÔMHÇDÏáÑNÝõÔ‡7„»¸­X‡-—Ä}™}XŸáö¼BO,˜^E9ôŒÉožÓkó©Å‰´DôÑÒ½_=ܧøHR¹ñ’¢_âø,’¿’ó[Mƒ¹d¸$sÑ}ѹì¸fû‚>ÜøIIO’ò›±=—-O®õ./¦Ü*è(ú$ŒO–%ÔRV}ßÓóM?”V7QñE\õO_êò‚žmƒŸ>öˆšñFÒ+AETŠO¤ô\oHÔgø•_”ùÃH¬èÑñNÿ”ý‹MŸ®"ñ˜gxŸ¼tû=ÿýM²BôÄǯÕÙºøƒC_uÑ—ýC‹W8?qó#›}›ÿøvë8´_ÉeŸ´=ô4ÒM“¿QÒY6{Ïxø·="+Zï¦Ú$|ʺ‚ø‚%J_VNòW?ÿÖÕÿw]û[/ÕwõU‡_õü¿ÿÆû4†OaøUŸ¿”ûzÂÆMÄcõDHÍLÏÁt\öÓ\õƒǽ¯­ñÊX½Y—u×ýï9ûoœ'iG)_­ùG™ŸíöïÿÚüW)‡FNDÑ_½ü_Õ—?¼÷Ÿ‹¿1Ù3ûƒ=¿ùòÿKÏ;ùm8ž$OKøõ™ß’ÿØ$/iþ'ÿ“ÒÙòIm·s;úÖî­žï¤öÎJ¯(ø‚¢NlÈ5-\ñn4ïÔõK5±CñBUoatÔ÷NïOó¦6giGio‰ñëzžFžT'DNDLMN‡äOuùG•TýËŸ…ùJ˜¯ôõO—½ß=ü5¸ohaiO9øÿüõ›ïŸÑ÷i)ßÄÔDd|߸ôÝß/dÉÓ÷¿™Ù3Ù3ù›/¿ûôþ‚Ãû„´²KKÏÃûÍ|ž&^7·’ßÒÒÝöÉ,g*cþJ¼¯ŠüÊJ¯¤¸‚¸‚ôH¬ß•'C.I¯CÒ46ì8wMè(3„¬³„òÁ‚î9ƈ7ljx2ÄÁ¯CÚ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:dMÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qa¬„7Lj/C„ü:$I<èãÁN#ÜBôA¯CôA¯CôaëaoôòO8Õ(û„S2_¬ñA:O,ñAîÄî„ør„7…/Gü’A¯CüA¯Cü’aëáoôžrO8õŒ2O8õŒ2_¬ñÅ:O,ñåîÆîÄø2„?Åø2„/Uü8„/ü8„/¾úáË9O<·Œó„sË8_¬óÅxO(óå\®Æ®Æø2„?ÇèCø2ÄB¸ü(„+aɺVö_[$Â,!Ä2Cäb!Ä##uAøA+A°kÁ#á(,%ÄBM2Cäb!Ä–#Å„#õAŒ/ÔH¸ĤkA¨kÁ#ñ„BO(O(²„äJ®”.„Æèô(„.¤Cº¸ò„(K(K(K(A.„ð!vS^«’@‚*Ñ*T$†‡$GHFB(DÈ„#±BJÁHh¤`„$P$ApDjH‘HDHDB†jL<A†FEs¤hÊD@PI……!aˆˆA ЏR(#D*c„`!!ÂÑ)DbL„‚Mà4!Hð‰B`„a&N4ÈDˆIÑ„ò„0!IDBôŒ!$W‚‚A„UH$…(ØñéˆÂ‡T°B#Q,p²AQ$dAPh'D$„*ÔBŃF¡E%q"{ƒ(!‚iÁ2›„2DB´ARH…-Já¡HrX%1ˆE#±‚!OÑ,X¡B[!EAmBÁ¦È‰"2/VN2†KA”+H4CqL,aJ!Dpd*Á$QFA$á(4(A0Ò‘t²qD"A24$I(Qh@D c1ƒt˜1‰ô‚H"ACbIj$ÌBAƒ‘$O"4B!‡$¡7ÜX-AÏÔ–BQ†%LÊ”'"-7„G"_ÁEØ[LTALÆAIÁA-A&q6‘"!?!!R"Ky2(Q%FI6Ñ\IxJqqáDôˆ-Ag8 O²xrhÄABDØx"ÄŒ''Éj$‹%¢Bo„J#J$'HÀB\DA"Dp!*ÂRƒ‡††àH1TŽ$@Nˆ0ÈA`‚M%H"#Xˆ$ƒA@„ \$0)@Œ!Ä@!ô""B(A Š+“Ôb-(iYD”@h!(UHgH4IŠ$@DCDPH-BÃR%p#%)!db!@BÔ#l%"EH/Ä%ThD!„)ÂD¤QE˜„(4K%Ea¨@íB’e8DŠÒ!RX$‹,h!,Ö$#MÒ‡È@hQ9¹2d…òH’‘AÍJ–$0åi%ªD…åB!(‹a«¨OòĪKˆ¸Š±ƒû‚oNhN¡fjBBìXh1HÈŽˆŽâk‰'TÈŸòœ?o4±B\‰ûûÆ1ÏŒõ'ÆŸ¬²2ú5ozúãB!ú¾kÔ¿Áô!$ôÄB/E}ÃÔ³üÔíØ#Ü­ø˜½’õNÿèþiŠ>‚K‘m埮ø±‹_“Ñ^õS-)7“×8?ÙӃ⦵¬6Ž£è¬ÄdÃæ9LóR?öÕw^óZ?4õ#\¯÷úüá_‰ûïš¾¦okúÔºoüùûÇ?kþ¥îï•òiEBô1eOúôÞ—{o5èùÉÑ¿¨ýú¯Ï·úºÿäëCø¶"O'ùf“÷þîÿâü^)ŸVôAD_]ôÔC/]õŠÿŒwó’¿óKþyúüKß#ùo<ž¦G#o+ùæõŸéâñò#ŒÖÍÒÑz5üµ#ïaÖJýN(O,Ü*ôŠh¯¤Æÿ“Ä5ïöóIRŸ‘ô[/4ñBR¿óô[¥KiÏåó¦–/!ò–¡Ï³óîÞcô³×¿”òdL_Bô!d_òô•VñIZ1ôÓ‘áîý;M¿ýòÜjï‹ó¤6/iú6#oyóÆtŸéö›Ÿ–rLÜEôA†ƒOqýN•½Ò?5ø™­‘-X¿ýú±‡Ï£´öÓf{²ö4ƒÏ÷N7¿ñâÁó,IßVÒÙò/Ÿ²ø=d­t§®/¤üˆH©|JÔòö&¶p2ÄA¯CÒ46Ì{ׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÚ<>6ŒŽs׌Ž2CøÁ:CøÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wÍè(3„¬3„¬î9ƈ?Ljx2„ü:¤I¼ˆ><>=Å/Qö8E/ô8E/öaoöqO8—}íÝûá.GaOCÛVô­"—Ÿ“ݾy_õi%ßö­£ß—ûo¨o.ò<øí˜§ˆ/,ü˜ý¿ÂugHórßþ÷Kvç±/µÕ²±Oõ?/OŸþUô,y¶ö¢oëñB{§ösB½ªo×tIÝôª/¿ôÚÛý—¿èsŸóZ[½“ÿ¬¾ÿÜKßiùKº²g)OéùFÛÿùòwÎÿøúRIŸ’òahŸ“òÔÏïÓÿOÕÿÎó˯‘ýKÙÿÌó¼G¹ö¸Úÿ„{´ö”¦oëÝš÷ûjÏýúmÿÑöml×ÖßçòµÏïÃÿnÜïÆñÜB¯‰ýªxïÄûœuóÒòó&m^÷5¿±õB?âu÷­OÉò<6ojù6&O[úS/¶ó3"¿1ñ+mÏÄuIû#c¯•ýʯ¨ù‹¯¹ýÊ“/âóOÿ}ô܆oé*s’æü^Ÿ¯¨ñ¿æåñ/I„Ò‰ôÉJ—~Oùÿ.Ým¶ÿ½ôØÓ­Ù­–ÿÿvÕóøª¿Eù¢2giO{òÙ¯ºûÙ/ÏÕ÷gm•ýe-ßÞöågßéý.ôïêûÞJ¡½ŠýJïíþ¶¨ð2ô:tMA«Q¶ÁaÉä8wMè(ôÁ:CôÁ"î9:Æ‹„7Ç‹„/CÄÁ¯CÒ¼ÄáëÁ–LŽsׄŽ2A¬3D¬!òáž#waŒxs¬†'Cü:$MÁ£Ááë!–,ŽsׄŽ2A¬“$¬òáž+!ƈ7Lj'CȯC’Ä£>>l4FýzA‡S¯t8õaÏò^aûŒs‹¸O8·ˆûÅ„ó…„õ¡„ô¡„ø3„?ú1…/ü8…/ü8…/þ¡oô˜3O8õˆ2O:µˆóÅŒó…Œõ¡„jñAè?CøSˆ?Süá¯SüÁ¯SüáïþÁ¯9÷„S(ó¤S(óå¬óÅ®ánqaènñAˆ/GøSˆ/G¼ü:Ä+Á¯C¼¶¾ö¬Ÿˆ‚Ñ‚S….¨"†A‰bè8ŽÀ8Q.˜38„蔈hˆ/8Žà81AŽä(3E®ä(9Sˆ3õAˆ/”ˆ/„úA¨+Á#á(ŽRBŽJâ(3D.–BR3¾‰&‘f!A*(Eb,QHAALŒD"9=AXd$Š@ˆR0,D7–B£sˆQ¡(G$,a(L ,ˆóE¢HQ€3P"ÐHDø|ûð¤JÑ !çH &„a¢%$ADA…N"$@"”A©C&ŽA!É"t%zÈâ4$D’”"Š‘¢^$'JAQAˆ#@„å14ÀLÒ1DIA1Lñ$I%qdAB+1RCÑ‚I-„QJ7$1"0!—!H%qñˆ8%eˆ$Ð$BaÈ7H('Q" $Ãâ<"A'‚Lq9“ÂH3.A•„T$2A$#1,´&RÁPHjSÂЂdBËÅA8!&bIÀHE11ÀN&5A„IòŽC´ˆ!‘ŠŒq$"•„Ca¬u$QJÄÂ(Dldƒ4˜!B#Ö‘:.]FÑRt"¸QÔ4á$ñ$D-BWçM(>$œ”$ô"D6rdÕRô°T'K!†Á’IRB‚9±D7BbYÄ=(D?!´Q(ñˆGƒßAb4Oè#x$FQ¦Œq“XD&LbN/At"8ÈBºTóµ$ÀB#D€‘F@A$…„H±$A$¨@eaJEb8 b„H`(°dbA"ŒBQÊ…DB,Ë"%RL„R$ðD0I!@!À#H$(E†ŒÂ(!“ô–PH„„L9B€B¤d‰X""I„H)!”!A(‚(1$A`bð!w€á3tÂCð()T"G8E¢*ió&%1vÕR‰BK‚%r„ñ>ÄQ5Ø!Bc*‡E`q!1O!Ò%AXAG†M%XBSSÈEK!%1••2m1™Ã"8d\Ó„ñA3DFAÔA,rvùHÏQÔôA“a©¶²…B"È3†hìqäWIU³AØèÑò…¥Á‰¨ðA‚+$†Ñ‚ÁQ/˜gbZUB""ˆ!¤N¬”ȧ¨‚Ð$aĤ”A1AnW”ðAAB!…ÄA14½AÔXÖTDAÜÒÄDÊáDhFfŒ¡ƒ(§­$‡(Š“4A$Gañ†eCW2%ó£˜'C(q(”‚&õ"…‚”•HYQ­AFè(óÈL‘€:ª5!Ha!Á$²11¢!h6h"ЄAô";‘-QY…‘T¯!‘…"X$MGAVCzQ(DäBH‚¦$+B%haÃÖ.T)mŠR&B-%ª–&=Ìx:â‚x*>"$!5‚öhúAÑ‚utvgõ1½Y^3wW÷S?“vQûB‡'oCòTNŸ±ô1Cò/ÉMD_Vò7ÑÕƒõeßFñ+4X$ókïù:hìä(õü‚k3W÷¼[O™ýö1¯aÃÍÔôea¯½û2M7ôO8ÿo¯s^³Ž³ßfü=‚¿‡òƒ]ëk†+#?ÔñY{‚ÿúÛ-Ý•ý$)Ÿùû‡áôä’o§ø:*¡üÈ:¯çø¶ëÓÖÃv$ú<ßñSA¡ñ5ŸVñK?•÷1:áAñ5ß7õ1“ñ_Q/QÖ”r3ýMWÑ÷}O³ñ15ÿñ[Q?±ñ4Û{ÅoÉwèº4‘¥/{òùjWÿüm)?ôÍ×…?·þ‘_vö‚·5?‰Ñsò;Ã5ü/?®ñ¢}‚oyö«?¾ñ.‹ÿ1ý,Ÿ”2)ß8Ùëúb¯ªñ..ϤøØÊ/¨ù‚®ç¦/YEó^6ïDõ/_µq[ó[qÿñöE7Ÿ7ñk?‡Ó"ó4fñ{1¿¤÷Òý%Ÿ„ÖÕö1M_wó['ÿÕõmO5q[ñZy¿±öQ?Ï.ñ®’‡ú’&Oióõ“Uûù~Ÿñÿ·ÝòMlŸÔö!^ß8ÿ§Ÿ÷øÛ+<ù›ƒ¿±úÛm/øóï“ß¿ùw.Ž6o*ñµÒÿsö‰??xû-Ï“ÖÝÒÙò/ÿºûÞ¼¯åüšzï¬ñZ˜¯­öú¯ü6O4ïDón]/¡õX¿ñZYmnÏ·õ8R:ó2>>_ó[rñ÷|—ŸVÖÝÖ¥whþ}5ïUó{W±õY¿ñ[U?ñ÷ùÏ.ý4¼ohã*ñ´³ùùïw?ùÿ}—–ßVÂlÜòå;ß\ý;çý—[­›¿ø“?ù÷ëWï:õ'¢oiû²o:ùf¢ÿmû›?½'3÷m-,Ÿøò«ÿâúZ®¯‡üžR/,øÚНMü}Ÿ¿'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj/CÄÁ¯CÖ<>ì8wMè(ôÁ:A¬î9Rƈ7Lj'CȯC’Ä£>|8W-̯ô:D¯ô:D¯–nïÖ*öŒs"O8×(òÅ:¤òÄ:æîÆî†ørŒ7‡/Æü:A¯BüA¯Büaéþaï(÷ŒsÏ(ó„sÏ(òÅ_¬òÄWîîÆîÆø2Œ?Çø2Œ¯Qþ8„¯ü8„¯¾ú^áË9Ï<·Œó„sË8_¬óÅxO¨ó宯®Æø2„?ÇèCü2ÄC¼ü8Ä+aËáoÖ?DòH(,á„Â"G„&f…&rB(rBxaØ4()´(’F‰’Æ«!ŽR‰ÂB„Bâ„Ò$rDhbFèbxRèBxRøaŒ-A¤)ÔHšF‰º¼ò„‹$O(QˆO(Ⴒ„S„®„®”èBhÆèô(„B:‰º¸ò„(KJ²„¡$K8CäB)ä’8KŒ¼‘ ‰dR$PB$2„G#Ü(BøB(D/QH¸D™B3.BAA$Ab!Ø…K„'E‘*Ú!ЄÎC(2…#åHq!(t(ä„Bô(D!&¤„ xIñâ÷ð!É$R(„Qb@ i‚|1ÂK"„” 2ìÄAC2¬Dá'bD!@D4G3‚ D„ñ‹D0J6B‚ˆ–„•4@4Nƒ(CiÆŒO‚C‚:D€èˆ5(ˆ#Ôa4Àda@4B.pT!VseFq$ä4HA1Àis%$’T¡Bp!]"‡L1œ2‘"%„x"%Hœ!)X„Ô„xˆ,HBˆÒRøu,Dl!ƒÑ(¤áAA2cÁ(¥B„Y$ÂIaLØB"”Rá2¤"D&º…A†Ò…UŽ:`RJ!h4ÃÔ(AÒ”È"G(ˆ*Ù„Á"THh¢G„H%¨„Ïc:“%j$_4Q„7%V˜ïD9B—%Jr42A#5:sÇ/VÔFuˆ’t!&4C+=à!ñDEu”ƒCBÒEz"Q$ð!AAT„8$WB²DQ7$FT]„/H„¥¤‚âú"MD„¦fˆ$†b„$FèˆòN¢„,#QAAÀA"HÄP„!&"EáD“&d(È…(HˆR†!,"’XƒDA¨-$A @œ4û,ƒÒ$XðE(0ABd@YÀ(AF(R"IR„ 58A)!F‘”éD2$+!"e x":Io"A¢DTƒÀ(D$ˆEð“î$ÉèKÂV2æ!Ò…tSlB%Ô‚"Á(/qØHD[%%¸rY!ŽZAñˆ|D´‚ÒA16-(+¬(YÒ$Òè:“AN3~>;cå!ì/±2óAQAý¤ToWú–4YœDná/-×GùÜOvùö+2?å¤ór¯Âñ+è/„úÊh­èϬøÊНŒÜîöìC#ÓâUòtF=Q75/ñRD]u7õ2R/CÓDò4OSó4oe÷t_Awu¡fd_Xÿõµ/áWóÔÖ9ýR/5ñRV}go7á&µ²Û"ã#ñ2/;ûRsißwwsõdeYöA1{ì_ó^­ïÇõ›ËŸ•qZù[\ÿqöõË¢ô¨¬o"r†â"úˆ‰¯¦ö+O‚ôi)Ÿ”ô)MŸºôa£$¯ŽøjB¯¨|H8J+L¯"þÄp2äô2$O46aAŽsSä(ôÁ2A,n1Fˆ7Gˆ'C.Á/CÒ<>ä87EŽ2A,ôÁðá–#qa„øs„ˆ/CÈÁ¯CÚ<>ì8vMè(2„¬2„¬"î8"Æ*øcŒˆ/B¨Â¯BšÄ©ˆξ3ÒQô2A.E/äRôqMaoÆaO8‡ò„s(_,±AòÅöáöá†?G8sVüA.Å/äRüaMáoÆcO8Ç¢O8‡òÅ2¤_,³aøáöá†?C¸sô#Å/ô*Å/ô*Å/Öþa­ãO8Ö(ú„c"W¬¤rÅòAŠævAhn„øb„?„òbÄ)ô*Ä)ô*Ä)–îkJCH±Á$(SdB$2A"4a„ÂA(„ÂÁ+!ŽS(ŽA&Š2E&4A"3$2CÆA"¤"„Ò¼â8B³AB²AÂ"Sdbd"3$2C„-A‰Ò-AÂ!ŽBÀBB$B,2D&&ÔÁ4¢(€’A`&"À2AC4FH)”AiØDBÌaP"MD8@a!&dD XX!"`¢L2"OFB$$â†l$ŒDa(Fò” ˆ€D”!B`#DA”AD!1B0ÂDF“B&’APaD,“@1"&T*@ˆd@B¸"Da"\$…„'’I‚É„X(@Ñ#8¬-!D9Ñc‘@bE"R!BDAd$$ˆBBE‘$%¨AN!d"DF\b!D-‡"A„C…a@4a†ˆBÈ$„D¢Á…¡’H¿oB1„pB1Bf”!‘@"ÂE$4HLRA!"2B(À&’4DðÄDÀDˆ"¡„)™ ƒTB"†IØÂ4".HLBHt¢H„"D‰D;/0pA‚²ÑvâQ+,Q$.BS$ãÔBDMF(0+/1B!#äDÃ!D-4)²„ÖAR!DBÔADdR#ÙRQ"c|HÃc!ɘ&%„ÔA~‚Ê#"ÌFXÁ&x¤H ‰L˜hÉÔAH!HABHDÀ$@DA"À„D@€HŠ@Ä€Ð$ˆ#ðSó‹iB%MBÀTP%ÀBI™#E$4$Št,’B@´Ab(T"r‚B‘”#$Â3E”R…tB"òBPA(ŽD(D›$'H%ÄA¦†ØLhÁ@"aP‚Ïó O2”T1SHYä9Â&O!RB-%DT!A`$,BÂRAN&vT#’€A$±E’B"QDH*’†”Ô¤H1VX8 2dƒRˆF"rDQ„FB’†-HlÄH¬ˆæ‚<5Èì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èá¬=œ-Ä/QæCôA>D/–do”dO:•$O:•$_.±EòäWDîDîDø2„7E.Ä/QäBüA.Ä/–äo”dO8•$O8•$_,±EòÄWFîFîFør„7GnįQô(įô(Ä/–ìo¶Œö„cË(O8¶ŒòÅ*_ŒòÄ*WÎæ~alîÆø"Œ?ÆèÂøjÄB¸Jü(„«äÉúNá2F"Ô$!”$CdBRDBDBDD„D”DÄ#ñ„BABABI2D&$D$D$tAÄADHL’D(I¼ò„R(Id„An(K(CdBB.„B.„FøaŒô(„HBšD‰šÄ©r„²H2„(CÈ(K(EhJ„®·ÂKI,”…€x4³DXL,!ÒDA$CQBAIDE%D@F%"CGpD]"MB„ÐB”T‚…D¤$‡D‰ÍA0L*8L'B8D„B%\1ýk ”ÀAH‚ÂR"*–! DH$(H`4)RH!$€Á„$ 8"HBhÀ"C €$B!|<û,E$(Ä(E‚AdHAcE€ÕC9DÂ"%¤%D1D(2A"A2Yd™A•IrÂ,LbB!˜*Y A" R”ŒÈ$„@&sR "%A‚”Á dB(A)¢!kA`+$!ä!B„Ñ!(A$#“EÄ"AL’‚JJ2aMAcT‚ 'Á†‘¤@Æ"I#.„`DøB„JÀB‡"x<ÿP$KD-k†0$GA)TpA!ñ!AðA)ò!ðA$Ã$3uÆ$-$Ä!L"#VT&q4±$ü„á1)‘1þˆ$m,D&ùZ„¹L‚bˆC–„Ä…ÂJ„&‚ò‰1(@€dF!€D@RA$%¤„!dH&bÀBÐ$$0D‚À!"!" "@€(T$b‚@b„ŽåSAA<’DÐA‚DD‚B„’1AD4(I YÀ$L)!´$RDJ‚CÒ!$`,“$ ”„! $ò$„¤CÔß]B¢ŽABSAl>$M2EÑcDED1d4!is"ÔR!ÐCBf"E‚cA2„'À!À`%U-‚Dá4cD$D²ˆYCRÒM)F(„ÈN¢!.E“aAbC`A(B(CiÂ! vDdB1%dH!!F‘&,è%C(H–$"F$$a’ƒ‚„dˆN$@q‚ŒdB H$0$7ÒB…A-’AL‘"ÃD5A'%†(E‘&p„BÄdS2A–HaA¥A‚aF´FET‚p(I1(e%NBHˆÆŽ-ËCAL$‘%¡(!Qai‚ba$B2DFAÄ’†aA,!T&DV’„L€²BPE „ebÁƒlˆ„%‚ÂF()ĈOTBHè"H$ƈD‚&ôLU$@P$A"D(!DB@A€ÂDE@CB‘$`BB„d‚$L`R„ B¤$Bð$®£BiLPPbD(I4B4$S¢!)HÅJHô’"LRB$A"CbHB‚D„P"00L‚%D‚’Feˆ‚G‚Aƒ.@'(£2$oÆFB„¬A!ä8D„#H‚@‚!2D DÐB;Á(ADA H$ˆB!&Q!PB=Œ b„ˆ¡D‚(H¤0A@¨‚#DÂ$`İHÀÞó4!X=\Ñ#d10“AI"‘T+!S‘P@ÁE*„*$¡HK)q„⢆%A áS‘*áÁá¤1F1Ô§$c ‚$!%SB†sbAa2@B!…ÿ# BÊBMJHâA!ÒA’,‘E2E!$B!N†7"'D#/éAÒ"0ÀaÀG1Ì“D"Bˆ¤D*È!H¨ÀAirHBJaÐ9J5TB$ˆÐ$AƒQ"%cÑ"!QbeBfrÂÔ3xò!ˆ%r'1‚ÖrCe5!bH&S#P#ˆ Ô#˜H=‚‰„(AK$„A„1Ag„!àBh"HßJLA$b,"$'A°¨A:„„”D(Še(I!¡°ªAD‚DHHAA!()A°BRˆƒXˆLH8AHPHA!C`„A‚Œb"FèÚ!A!€µ‚(BB"*¸B(€”¢( ¡( $".„ˆHF‚Š"$$DjؘHHDH¨Ÿ€R!)A!¢"@1((@!8„$B*(€((( !B ¬ "$""!‚‘€ÔÇ(Ð" 4œ<<Ôµ!ñÁ!_!R4H(ABárAQEQ'XRTÈ„„„ˆƒ´’k)A+%CqbI'A*(‚™‘,D‘˜‰ÁxN‘¸Oc¬ƒ|Ĭ"ôD"G„ô†,FtaÔ¨„% ÂBa©’(µDã$eR"$?4q²AèfqÆRžG%â1ÑBñ"r1+1°„Ò2ñb{)w1!a3+#Ô"ámøcÕB‘C-’'-+áEò!,‘$9Ñ3ò!'1K4DQ:-§x"¥HÔXĆÐ(ØNS—•’)M!ý!‹,)b¤%jˆ#FòÂ:³JD52Á*”H;,â!Á"O!’)1b¤„€a&;>†<¬Ai±\$Á"+<ò„+$I!fD@t"äAñÄ2ˆV’N”B‹Ai–bŠ"È"#È!afQBâ`4!FÔAÜjÈÄ(ˆ,ôb8SO6qg÷2=Â?5óu•_3ñ³á/Q=–k/#óSWoõ'SÓcòED_º“óƒWyüt7ñžÒ^2/Gñ¦ÿ×o!ñ&o+ûQ×?1õ&Bo+÷%†K¢?yó‘?¹ýeÏGå‹ñË‹^z÷õ´o®Þj˜LCò¦¢NÆ­J2ôç!¿˜ÒÑ„ôe¡¿XòƒOŽÈG&G6‡jˆì$rdô¬‘a=g?*ù%3{5÷qssóÇS}v?'ñ¢’o!ñ7;W3ñUS/QÖr2ñEמg!÷#’{s×ñQR/!ù’6G/O=õw?'ù2‚)ñ5?7ý7’o+õ–“?AÂ$"M“?Yóv/“¸·óœX^S¿‘ýÛ¿ŸõßJ¯äöbˆ*8„-$¯¦ü&‹wºÿ|ÜSÖÑz!ùMÃŽoìö"ŠïjrÎòJB-НxrëòêÌ4?UòAW1öW75?5÷w/uûw“_;ñw¶ž6o#ñewóSv?q÷'×òEeå?sýw³]óÓW?9ÿV“#ýÒr/)ÿR¶wù¦oëaû6–.ñ÷³N¶/a÷%—Â$Lú7†3ûÓ7¿ýõœ¨ËÕ?½ôÚs¿ýþ÷ïæü¬JßÊʤob|æò梟ôÞóö!ÏÿòIlíòüg£¯lòÊF¯ˆüF‚§,¯.öŠî/Ô=Š'tã6õQ/5ñR?5õf?wùgÓo+Ûfó2G"óWv-w?awsñedev7ø÷'?}óóÓo!|ÓòÂ/mýæ/7ùtÂ*ó–´.’o#ø¤7Mëaÿ’77_BÒDÂ'+’{óÞ%»ÏJù˜[¿™õÛË¿Ôÿ{Êφ¼îò„¤.‚o"ø®&ÏLÞêþƒng†ßVÖÝÖáök‹ÿnòÎ&¯®Ü¦|ÊzÊòÊÊ-î/þ'Cô24MA+¶ÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'CNÁ¯CòDÁ£ÁáãÁaÁŽcׄŽ"A¬ôÁJðáÎ!Æ„øcLˆ'BȯB’Ä¡èá¼7’-D/SäBôA.D/–do¶„ö„sK(O8—$_,³EòÄ2WFîFîFør„?GèFü2Å.Ä/ìBüáIþáKhO8·„ò„sK(_,³ÅòÄ2WN®F®Fø2„?GèBü:ÅBüÁBøáÉúáË(O8¶Œò„cË(_¬òÅ(O¬rålîÆæþaŒ/ÆøcŒn̯Bü(Ä©ü(Ä©žìéþYû$ÊÒ$¡$I2D&$äB(äB(taÄA&„äB’D¨I¼ò„R(KHJ2„J²„2D¦$äJ(äB(ôa„äBˆäBšD¨I¸ò„(Cè„2„N(K(A¦®„àBh„ÆÈABˆô(¤I”¨Iœ*O(”(KH„2„N(K(G„¦d„ê8h|"4B0B!K$Y)Ä„‚KˆD€TDH‚Ä#D-$Ò ÆdF¢‚C”” ÁÄdÈ@.„0$N$ƒ9B lØ*dqjHÈ„„‰†,G‚ ’h8H‚H›H€ÊHžZàHX!b!@"rL2„A"%$Q$"@¡"%D ‘H(AA€4$‰4$FФA.!CD„‚$(D"(‰„Èô#5cÅ@%$Ô$)QAAT0)A1@2$@Ô!ÑAG@´"D@J1(¢EHd„4p,B$DH2L!¤€ã†TRH!!ÂAIaˆ,Â4"5„bH2$H+Ð3BDÀ%(¦$$(L#,<‚)¨!£IB¢(DN(DTŒD@hÂ'B X8J’D51K%I%ÒQt"q¡$LBòD$ME¤5QD=$%¢H!925r4”"-!DgAÒAA”2#H%º(ÑBQ,(†DBh¤•dB¡HdBD„-$á„!(¯ÆM!I"@ˆ"!€‚@ŽB&T@€’D&ŠADŠ‚Á‚@&&DHDÀ(@ÌB 8B(Fر=K ’F '„2`BÐ’–#DdA‚ˆ4(KDˆÀDPb(!HCIbB<"b!„J3$A@Hˆ7b“TB(%#B˜ˆ!D†XDâBh$ƒÒ„„_V ,’&<Â\„t2ÒBq£Ž&k4%&öd2%tFb(OBâR¡‚%$šG1âHt4%HN(C‡-Ÿ$x1G"B‰DR/HdbSB fb$!*‚ÒhÒâ,„L'9‘B$AŠB4A"A'A&&ETAJbB)<$$Øà"”!MB@&ÂA$C—„GD" Ä” Ô‚†B$E‚pB¶(ˆRAD¤PAÈ'bˆLb104%!sA!–Ih2I¸"BfRDp$±òD)ˆ•‚T"#ц6"$Sä!Å!AR"JR¤!›U(;"t¬RB"!A±À"AÁ(ÅÁh†²B@ ©Òt8Âh<$Ad(#ÁA",Q$,€hÀA 2AI$A"A„~"A$!62Bq"pA‚8,Ä$ˆ¢D!*ˆTB)HDhI2A'BBÀbP$Â!u (ˆ@EBÐA„BD†1€A!D È‚A$A!ŽH$°!Œ!@$à28gˆP!1A BQ€´ÒDt2!¢ITB‚CI¨1¦‚dBH¢@Ã%(UÁ!L(„h¨‹Á+0DŒH)"(d($D!N!°h-$D&h$°bx"ñÉ,€)À!"!"dA°È,¢(,‚‚A""$-DH ŠBD¢(L˜"$ITˆF!„ÈÈÌ8˜*DFÄD-À "*à*¢H ÉC,±¤†"!!ch"D "E)#‚ÁX+Œe,H‚†‡hÇH‡"A"ÀDð"H@ÈD%ô:µ Dä!‚!•²A ‚A‚RFDMLJDÄ$GEDD0A$QK„aA°F1KiBTBTAQÆ5CdAAˆŒI$TBE˜„m(&X„,2DEæ„5”àHHÃÀÐ2(G¤!$AFD)A*Xa„$P‚ÔBQB„-ˆˆr0T„Gh$A($SB!A ‚©‚HôÏz&$†xT4AEo¤A¡X(!ôQ6 à+!RA#BäY˜#D!C1èÄ,TEAl*w‚EÁ„!W„MÂA‘!Šdh‡¤(…R®›£! !Ä""¨@D‚" ‚„@„ŠŠ¡$B ‚ˆ‘H‰˜()R‰BB†ñD(Fa‚„PˆjˆH¨_ ($ BD jB$$@‚ÂA$(‚‚`A ˆˆ"@„(€ l,C*(€€†(„‚„À[ÃBÁEOd1%(-"g(,¤+!0GR'A6’‡C”aÑTå”LÜÁ58dŽAE¢–¤1Erb:&(‚ÙÁUGƒ 4-/ÄÛD{Br„v„†øD$CDr!vŒBTFb‰xB4DA*<(HˆLÂ$ÏÒK¡4ð&¹Añ[_FaAORõ‚DMqçSv¤qD#XDOqæ,Cä)¡:¡,ñÅ––„!:ÆKâ„%Ñ!Á!À#Î(à¬È!D¨„føAHFX"%ÉŒ‚ŒÔ؆Xè(,òÄ$„úb¤…ä,"„¥BIÁAŽ%LÒ!ÑdÂ"dpCDva4!n†„XB\ˆ)M"(Ž!Fô„2KDSTEGBUUT_CxчXKMˆ­A„¸tRxýA(Ä$Gd†áørAU”R†9i„B*)Ú‚BˆòøÉ$õdgw>ÁZsö÷6;ëqí)ñ"o#òTU?!õ1Towã!Óe”AOVú‘2Xõ“ÑOfñq+í5ósoKñ£á]Ç"+»OtüS_Rõ§e?xr„WU_Rú‘7oYñ‡ÍO÷ñhL§Š¿ì±ó~LoËñïíÏTÜ,t$´¦úEÆÝCßÂôï-¿èòEL†úˆ"kHoÈ|izh9¢/˜ì$rbt¢<½9ö!OróF+u7ovñÖD}tWGokxÖrósVcq6÷FTAÖEr6õDÖoYÖW÷5‡O[s×ñBQ!èXsõõÆE}d_&é#ù‘oQóu×_sø´E˜']!WR]“{9÷=’ß‹òŽH¯”õIÒŸÍ÷ìTçÝ}n_æèbx„ÔRòhÏŸòx¬ýÏÉím]¨Ç‚¤ü‚d-dÏ¢ø¨(§Œ¯„Ô¨øˆ,GN{Ž4^!OTõvo5áá÷touût—kñw´oIó6Ogñv7_u÷v?cýv%TÖEþ1Õ_wûÓ7o]õ“õO5ùÓ?÷—óOuûeƒwj;¿,û4’onñ÷±_uÛuö'…SÒEÒUú5…_sû×/ÿÝõެÏ$üÛ[¿™÷ÞúÏáÿmËßþô¯¬M¦Ob|çÿç­ßôÞõö/ÍÿÖòLlŒ¾(üd¦oì²ÊôŠÈϤxÊúÊhï(¾D;ï-!N5&ôQ7^E1÷w—Ogý´¶Oaó4osñ67odÖg×wwuõdd]d]v_wùõ5]ò÷×1üÑ7/]ýç_wøeÆK:/)û2–Osù´5mÛwþ…%B_RÂ$]7bøµ5¿]óþÎï$è˜ôÛQ¯ÍüZòÏ÷ü)ËïŽò†¦obø$†ßšòÏîýç_Èviýel‰Æjn†î$ë,/®Üª|ÈxÊøÊÌmç“ 'Cô24MA+¶ÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'CNÁ¯CòDÁ£ÁáãÁaÁŽcׄŽ"A¬ôÁJðáÎ!Æ„øcLˆ'BȯB’Ä¡èá¼7’Å/äRôA.E/ÖöaŽcO8ç(ò„s(_,³AòÅ2öáöá†?G¸søcÅ/ü"Å/ü"Å/Þþá/8ö„sŽ"O8ç(òÅ2,òÅ2.®æj±aø2„;‡/Bü2Á¯BüÁ¯Bøáéúá¯(ò„c(ò„c(òÅ*¬òÄ"®ævahn†øb„?†øbÄ+¯BœÂ¯BœâéÞþT($$(SdB¤‚3¤‚34a$ÂA*ÂA¨-Á+!ŽS(ŽBJb(Jâ(2D¦&ä*8B*8B†-A*˜B*šB¨)¸â(b(Jb(Jâ(djà*¢‚#ôaˆ-A‹‚)¤¢)„šÂ)â(„â(¤$†¢$Ž"CdjB®Ô³Ç„‚´0A0ÁTF‘b$*ÁA,ÂAA\<M¢,‚qÁ"4R‚1g-”"8"C1Bá%„ll,h$`!IM#‚8&ˆ7‚pBØRøD"À‚ðÉ"Æ,ñ.ˆQ0!€A#I( `%CIÀFA„„ ‘@A8A€DQF„H@è’%™‚@bH$H#AL$%DJAD"Àd($$ÄPB 2$PB(A@H†r!?Ž!$!D#4"$@Â"dB$Aˆ&„c’1P$0$BBaA4!(gBF˜!„MBdÀ"D‚„DP!&1(Ba$B% ,bÄl<è!P"D0P"ðTÀ$K(FB’@Rtb!AA1GU&AÄ!š†hEL¤6ÔÑBÔ:%ã1±v‘2‘‚SGAòš2”?QÑBÑñ)Ñ-ˆ9Á¹Z%h…!G$„E."ŽhœX'DL4(…´(š¢á?RG‚µB2F2BF"gDT†B²"V&,$HAâ!æ(Bb",1ADhGˆ'AD+-”*nEŽ1,ŠÑ„ÃQÁ¼Áy+ØÈHDš‚È*@R%Aâ¬"(d&@ÎÇSUQ)$BÄBm#G(O8ã)¡4“4O!‚±qAd!fFäF±!ø\Ü©O©Á)+¡h€ã$“$JóAÂbRd"ðD!-"‰ÐäBâ(¢$K(ŒR$`ìÄfxA,vaDÑB˜‚\ˆŒ„ò(!Ð#õdgv&×#ôB#GVg";ëÄKo"ñ2"?tôB[Boò&hÄDOêió“T;ØO&qfõ‚ÈN3~k{ûÖRO"±²ëUýR_õ¶a?sW_ú‘'?Yñ“É_7ñ}A/Ëñ™™;÷Óo‹ñ£©Bò¦êäܬô$Bk.¯èâÈ„ôe¡Ÿ8òƒM/È|drlqŠôˆÈN"ÇFïŠ1<=f"ñ$#cä$T%|rb³Æõw'+‹O!ñ7/'õ3o3ñTR/A–!7O$ý“t?A÷1“O³Ô±Rõ’ž5o±Öôe'¸48”oqòqÂ_2ù´Aoxù%\bM“?XÓS÷!›_ZóY?óƒŸØó©÷ˆm'Ÿ¢ø$‚SØBòhÂ.ˆGŠëÌ-dÜr!ùMÇ?ÈÖ‚æ¢ø¤$ã¼BÖ¦èH2ê/hKóR§|Õ'vGsBóCc=d/tút“O+ñw¶ž4o#ñtowóQw?a÷'×oòEdä_Cüt³/}òÒU)ÿU“/ñÓq;é^·Owù¶{¿/aû4’O/ñö±uëq÷1•ÒQÒQú5”_3ûÓ7¿Ýõ›¹Ï5ý“¿™ó›¿qû-‹×ºÿŽÊ¦ObxæòäÎno¼nòIlíÒüe£ïlòÊL¯ˆþDŠ£üÊh¿ØîD3Ï\òF7nB=C''4/$Ôsöc—O'½·û6/c±6ñ43oe÷vawsñdedw6øô5o]³óýÓÞ/ñÒÖ=ç7ùtÒ_Kó–¶>–O3ù¦5olû÷ž4w_BÒUÒqã#ùµ5ïMóúÓ5ù™«¯™ù¿Ÿóø,ƒÿÊò†¦/"ø$‚K*ïlÞèîÈf†ÏVÖÝÖñömŠßNòÊ$¯.ܦ|È2ʯ,ÜâþDˆp2ÄA/CÒ46ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáŒ;¨=E/SäRôA.E/ÖöaO8ö„sO(ò„sIòÅ2[$_,seôáFnña„?Gøs„?Vü2Å/RüÁ/Rüámáoþ†cO8÷„"O8÷„"_,óÅ"_,såæjqaäjña„/Cøs„/Bü:ůBüÁ¯Bøáéúáï(ò„cÏ(ò„cÏ(òÅ*_¬òÄ*Wîæ~alîÆøbŒ?Æøb̯Bü*Ä©ü*Ä©žîéþ•4,M$I2E&4A.„3äB8CFdBäBÒ„Ú¼ò„S(O8´Ar„²Aò„"Sdjäj8C.„3ôa„-A.„-A.¤mA¨i¸ò„(G(N(G(N(O(djàjâBxBøaŒ-AB˜BBšF‰šÆ©ò„B‰ò„B„r„â„ò„"G„¦f„*=¥TÆ1@ABm1A&"èbW$$[$D‚”$Lø!H#0A)Bq¤G"AGdC”!D‚t$¸FBR(ÐH‘"†x&.‚ðD"Á,ÔÁF”hÀ(T!FÂ(„Bˆ«$$Ÿaž„RB“$DÁ‚€1B1ViAdD8A1B$N!Q@&%TAVrT0s"T8ü"† $0„)d¢ÄYBH PFÀˆ$„&Ñs1TAU4AÐDA@$AA(A`!((`A"@dp!„AD%a0(0(@Ø$Bª$€Ä$ðIú$$Pd@2D@D"APÀD$$BA,Ä#dIBrA"E$A- !Ä@D‚Ä@R$ Ô„"%„H„1á$1eca!ad%t!@@!MH$M4AIÒDBÂ$/!Â"("P# ¡„D†DÔ!R,„" BXáŒÂ*(HH(ðD$D@ AAP€0`PD@ÔaAAÀ‡Daa„AA,DEØ¡2ö)BT(A u!%„¨‘!DD(2DàB"D˜!Câ(Ô"!¢`BP$“$…„D)B„"…$$R& OèI@$‚BV$@ÄtE‚-D%a(!02‚$ÑAVQYBd$pI$H9AH@B´&”LBIBUˆG¨DÊA@Àõ“^#D!@@BD&EPA!ÂR$ADad(A'"@@DB$@$QƒAA…DA…$!_ñ$G1*Â4D$$„,AQ€bÈ@&$!!A+A!T2„ð‚AIè!‡B`R$(%„ÈD)„ /DbˆB#H@"ä"=6%!@BÄ",aà!""$G!A)L"“!!A&ÑBAL"AP$L!L¤DD(`DbDÔ(H„MHYT(d`$€-íD$F$(@D$@AAD”DDa!D„Dd‚P@DA$ M“ Q@bCDCT""04)A$‚Q&DDd€Q#"„b!E‚!,'BdE SBPd.„)A@FéÂD˜HÑDpD/$Eôù®@)BBA$A@A8L’"&!r$HDA‰(D0A1$0d!ÐH€\5E` RB$,Á 1!l!CDD#" A¢ T$&A&BdBð q"ä91"%!'B!"D`BD)D¦B†’H¤ÏDDCAQR$ATC‘AÆ1‘E—!T$ AB0DL!I’JAS$&Q$¥BBPA¡(!…y"DHNNƒP€ !@DQ!EE)!RE(Ä"A%H\¬ŒF’FIR‘…Db”‘•a¤P!%HbB!@ô!€AC@&4$qE4e„1%SABAÐÈ!C2p1!À0#•$1Ab¡`B&@T„\¤BP$EQ!DD(…HèB5Æ!(IAA(A ()A$€`€((J""B@H‰ò¦ì€ ""@$!((€À!`B"%@€!L "@ÈBI(BFÀ¥3v!ÔAÂ$EEQdM4d<Ñ!á2A"UTe4$C3-!!EÑ$Q4"!R=.FG#%È(*$¡Å”$‡4ç„d#rhUˆÖÄ5TB­B'‚…ÒŠŒR(ßÈC‚CB$#"e#!áB((T$M"(bc@…aCD"!/TR,‚Bø"C„-$ä‡B¥r(ÄBƒRA+bP3ˆ“a+$pF"D%ôh=“IU17!aÐe’K!ÒD²rdQAS"ñ9¡)Q#2!“4BÑBDCfR%Ä>Tô/ÁA(H,fDpa“d&ĦlBH‰òçk}.3SCÑrr!s!q%Qw=%!]Qós?3ñµ¶_)ýQ2Ï¡ñ.#RŽÍ.§‚cÆ%–d"còDG­mr*ùLK=f-f‡¢ÏªúÄŠNhÅØèrlúÔz4qÒÑ3R45ÑÒfÒdr%w%÷w4m6Ocñ4oCÓuó7Rù7%!]%WR_rÒsÒWø“'_1ñ+1?1âqó5_3ñw46GbW2RÒsÒqò!…ÒUÒQò1_3óW5uý“³=õ¯!ÓêÒêr.z.úo*-&GBW–ÿöòJf-f?òüo)ßÔÖÙö/E6òB.¯äüŽê笇„„ÖªvJ8æ!=1'5S15Ò"r$w%·&ó2Ocñ4oBó6qó4wBÒUÒer!÷%%m$oZù#ñ?qó1O#±6Ófr"r$²&ÒgÂ&$cò%$LÒAó4_sòC'?ýד/!ñ§¡­$§âç"obÒf2"Cò-+äÖbÖbvoùeleo7&fòN&/.üŠÊ£tHøHN­g_‹'Cô2$MA#ÁacÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2$MÁ#ÁácÁaAŽsSä(ôÁ2A,n1Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ î!ƈ7ƈ'BȯB’Ä¡èáx£ÜBø2A'B/t"ôaiòa-"O8Ç"O8Ç"_,óA"O(saæjqaäj±aø2„3÷"„/ô"„/ô"„/–¦oÖ&ò„sM"O8×$òÅ2_$ò„2Wf®F®Fø2„7G/Bü2EBüABøaÉúaÉò„cÉò„cÉòÅ*_„òÄ"WÆævalnÆøb„7ÆnÄ/Bô(Ä)ô(Ä)–ìma?M‚Â(,db`"!"!Ö$¢"a(i¸â(B‚B‚Ò$db`b!&raÔdB!.$a(i¸ò„(E¢$E¢$K(A&&&$taÌA‡BH.$I„’Ä)ò„B(I¤$AJ²„2D&$äB7j8‚I!1‚Qa"!"G!()#LÁ$!DLZ1€"b!O"&ÁE”"(cBË$€Da"E"bDÅbTh€BXR„IB T9ß[CBB!0!Â#!"AA%YHB)@&)1!‘!A$G‚Q0B%ER$a…ÁŒ7šH"€A€A€1!a%!€!(€@ 0" " ÒB`‚@”(HT¯_ @ABAEBA!@€@21A4OBÒ$AA,Q!D$$B"DPALA  CDRH@DA„`J‰!G‚"Ò"A!LAD!$AÑa‚E"D„$!IÂ$(AA„!€A(B4"0$%db…m"P„$Œò„$„†B†ò—]((@$E2!$!,!@‚€ D!"@„@„|2Œ¢ˆ$E&.ˆ'B! À!IBAФ(A 0%@$”%DÃrE&&2IAHÀA!H‰H…A'¤"A$°ò-$pQ!Aq!TDT0AE’P!E1)B”"LAh#rÁ(!@*$„%$A%CTB“0$…,ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èá¬;BD/dB/dB/–$o†ò”s(O9‡òÅ2$O(3a¾æj±aø2„;.„/åBøQ.„/–¤o‡ò„s(O8‡òÅ2$O(3a®æj±aø2„3çBü2ABüABøaÉúa‰ò„c‰ò„c‰òÅ*„òÄ"†ævahn†øb„7†nÄ+BBœBBœbÉžfœŠ‚‚dB "0a$*(ˆ+!Ž(€(ŠdB "0a$*(È+!Ž( $ $ŠdB "B†4(H*‚„‚œ"ŽB(HJJ‚2D&$ô!²¡"PCD(!IA$`I!$)ˆADÑBDaA p(BЄDB,bBd‚0‚A%$àîŠY!P$ QAD*!E"QBâH!(AqI€„'L$@S(B(D!AB!D!0d($AP!PA@D$a…”*‚H€ˆv»€0! $@€¡$!H@‚@R€$AŒ5“&"€‚€ AA(@„$A,ø…3HˆA@'AH €@`†@À¯óàBˆD&$ t‚¤D€!(€„”D(`„(òõU@<1R,5R.FD1R.2#áb»#²äF’DFò„R(G)N!KÈBŠ,dJBˆ +àB‚¤‚ˆ¨A.$A.$Cˆˈ!ŠHaJàbäJäBˆJ¤"EèBr„ˆ‚²„‚'„&ijM\MDÀH,H,&Ô!aBBAàB"*`HH‚‚&$hBhB AhB A   "hÂ&@$D"„pëQCBB8 „#0(A€‚$  „!"„„ˆ,R$@‚A$ˆ!„€A(A€d„€b„ÀçcA#aB00€D‘$(AFJ"ˆ€ˆ(A€„‰Hêʈ…BØ(DƒR„‰R¤…2ˆ„@€!Œ!„¯ãEAÄD",D,&"H&…€ ŽCŽCDB!B&„ )aˆ(X„&4&&DbB ¥(X(`(‚„&Ą󲀄’$CÀBB€&¤'ÀA(IR$‚S4A@B˜‚%@‘"M!C`(D.„©˜B€ˆòá)„ `J'A0ÀA€H" ˆ.†DH€@Á!A€¸ „ø"„!„ŒŒD(Aà(T( È;³E1M.AEÅao,ôA!Ô!ˆx1G€8MA€š$€’D0Á‚,SBˆ7Bˆ=ˆ„­5œ̨å¬R„$($›(Ѥ„‡ˆ§BŒx*Dˆ!A¥È¨mˆŸÃBÑ!$AÄNˆN’7G+'C‚"#/C¶’dAHhAöÄ2C4Á ( Œn„èRHbB"ˆ.åI’$E"2(O(RŒÉ†rˆx+Ĉ7B„.„&”ˆ¯RÚŠÂ(A(A(O¬tĈ4ˆ‚À½sÙBÄDDè#!¤HÄ2SI2EÐ!qa’)xAaBèLBÁAP4,D‚A(x!:xAq"äBX(a‡ (A@DH,hBˆ‚4**˜"A¡‰ò§f4MSs5E,ÁS;%_FèbázÿÁ/dB.6ôA.EfÓ$Ó4ÅAFú–2O8å8ýaF‚ŽÁ$WF¦äzÞÜ"dB®¤_ÌA.EJ¶„r„Añ!¤o(ò”Ž‹·Â—Âéñˆ‹½(צþ¨¯m%aF®¦}%q(ý¨/ϨR¤…ø(¬ï¨rŒúˆÂ§ÆnL‡*ŽŠ©r,ìZ5¡\ô„„oañE/!óe<ÅaWF/Kø(_Vt2ô24õaIr$ôAÁ/9×ö$–®$SüAAI¨(WN<Äa_Fèb8‚(_VìBèJô’$GC‘/9ó!ÏÂøª>ß©qÙˆøŠ*Wj—¸)ßÂø"„'¨(ßÒø*Œ§ú¨˜*Éz,܈øŠ*ÍhÏBø¢&O(tH؈ø‚*ÇêÏF ?eñEW|7S?%ñAsMs{¥Gø²f»–r6ôsfóWaoö$Å?GòEaMáoSüs¤{-_<å¾E8Áö„á[¤Fx¢öá¤m¢OBxáôá¤_Úö$…?CÒÒú6…?Cû‡*׸¹ú˜·¨Ÿ¸òŒ«ý¨ÿÂxªþé®iú&„7êŸêÚÚžò,Œ¯ÂҌҌú.Œ¯ÂúÎ*O¬ôˆ¢o„|Šúˆ*߸ڞ=h=_dñEWoôS$ñAS/öw„?Wü²¶M2gC'C/cóEsoösWFVÖÖöe„?OòÅ2_^ÌÁ<ÁÌá_FøcÅ/j²†ú$„.„®$_Úþ„!WBRÒÒó5”?kò"_zù‘7)—(8Øšú/Œ¿Òøª.O(ú&„/Bøª.ߨÚú†*ÇÂÂ’$M(OBø¢.O¬òäί„x‚rˆúˆ‚­¨?ø'Cô2$MA#ÁagAVDŽsWDŽ2EôÁ2EôÁðá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2A,ôÁðá–#qa„xs„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BŒü*$MÈ¡èá2‡=E/ô2E/ô2E/öaoö–sO8÷„2O8×$óÅ2_$óÅ2_fñáFnña„?Gøs„?Wü2Å.Å/ìRüáMáoþ„cO8÷„"O8·„òÅ2[,_,såô¡Fjña„?Cøs„?Rø2ůRøÁ¯Røáí¡oþŽ#O8öŒ"O8öŒ"_¬òÅ*_(rånjƦöaŒ/BøcŒ/Bü*įBœÊ¯B˜âéšæ/ÙJ3Á,±AÒ$3E.äb9S.„3uaôA&ôA.$o„úÁ+!O8…ò„S$O(±A²„2E¦4A®„3äB8CFÈA.„äBÚ„Ú¸ò„(G8r„’!O(ej®†1.„1ÆØô(„%áBZ¨i˜"G((G(N(G(N(O(djð¡ÓÃDH†±’0„‚(A@1"D"@Â!&d!SH*DA(HQ‚@D(A"D„pˆˆ@Mˆ[ Ž„D'B€LˆA#D$$p¡bHH$DB&˜‘¤A©€A0!@ )˜ˆ„ˆEÑ12æPBÆ$@D‚&A(aBE(@DKH!@B‚Hd((A€„IHH„A(@ „$@EJF˜ˆPH›†ˆ `b$D#($0D@aP€T!€BG8@ADBBH$DbB@…V€$@”$@D‚ÓH%$ M!LBÂ"!"@ T$,#B!A!€!–@DRDB @HÂD„)’$EH„$ $E¤BEÂBM$¿¥†„!†d$AB"A!@ˆˆ!(QDAD!Dˆ€XH‰HD@B„HDPHXˆÀOã›LÂH0@EaHAÀ$-àA`(€Á$ƒ8"`(À$%/€$0B!2$c@@@„BA$0ÀPA€¬1܉4E$d@H´$BD%ƒ!‘B,‘$ÀAEBa"`!$P% ÁMDD#QAðHpR($„À(PD BD%ñiÅB$D@A @$AŒA(DAaÀB³Œ(!@B€RD$’$E‚QAD†E’BT€•ABÑ$d…ÀE"aERHDÅ@ˆUñ¯!H@Ad"€AÐB# @D¬D@€DÈD@$¤œ7èˆ!"BD`B†AE(!%#`D$DÔ*QaLTEB!ADA)$DTBhHÿ“RXR+BARK2¢’_!)â!¤&HjâHÅ"DJ¢ÈBЬ„"BI+«Dº‚¤‚ˆ¨ "°$"Œ(›ˆš¢€ªJ¤Š(ˆ€H¢"°$6‚(€²ˆH²ˆh$"Ü6]!„ÀD$€„D@!‚!B&HT*DA£Bp‚‚%Hc!ŠIaB‚2DŠ!"I–a„Œá’´XqHa¬ŒdœŽBFØ(tHô¨J‹B…4(„0"@×ÏF$B!NÂB‚BR$(LÁ$!D!=$#µF…‘„AIiQ,C£-!@¡!ñðAÀ™‘ˆ„ˆ‚­!Š ‰B8L„AB($ЂK4""E$QD)RD$M%DEABCGDpDI€ˆA$OAô$01D9)¨#‚² EI„’DA`D†1D„„„ŒØ8XŸ4IÒAè,Q4ÀE¡M…"E&BTA‘Dµ¦AD‚@$Ê6Af$‘D"HAA‚D‚¤H@dŠ%$BjB”&BAˆA†‚¬"…èÚ7- AÀA((‚,#dD ‚(€„‚€ (¤*ˆH€–"$ („ ‚ˆHB€r³€¡„`H D¢ H(€ (#¢‚!‚($(FŽB`$`$HB ‚€È€(À"ŠDÀȃÂAU4#ˆÔAfa†Ä$L”DODC$ˆ&‘rdˆÀD¨%&ŠÊDB6Ä„'BHMˆ@¨D'•è‡ÍCN*ÅC´„2HEh&„—DB7‚…ÌŒ%ÜŠDØ¢Z„ÁÐ$AòD$JA¤väAhC‚GB2Dö$fALÄdeÄdLsAtÃ(\EÊøw„kiõ&”Có•OSÎ3,SAÂ#Š÷ZÞ:™žJAÞ‹‚ȇBŒ¤‚føH/„JøH(EB˜(EÈ"Ž"„ÂŒtˆhˆ„Ž/c‚6-‚!A;H-D)%CñB#-m…fdA|(AfB.Ã,B‚Ä#AHK[,A$WAB+Ž‚*è‘J&ùHå’HøB!ÍAà(BBrAÒ„òAFHÈ.ˆ@È„H‰$‚˜",òL$MRgEN„=-Ò?5rbçRáJÿÇOIt#ö$6uôFrôd4}7MT-DOFú“7OHõ‚×_Fqc&ú‚Ã$wFgJoKÿÕO!ñ%oKúEÅOQô&GK÷†2G8%ñ!¤O(ò†ÎÉŸ¦õ{H¯ÉõÜÉŸ¥÷L/KõâíÏ”\8B/JúEË´ôhG?NöÎ*Ï”TšŸÒú"g¯ˆlænL'¨ÏˆØ¢r&îÚ8š\TU!ñD;D4?aóg_LÕtvgô´‚oEÑògDg{O4õdM!WR_4ü—tMcoBù¤"süACièhråöÅUa÷t†>„OIñ6_wý2”¾D9ø!Ir$Ô1ù’1/Q÷vÒóÁ?”õBÒŒóí¿œôBk_æèbhˆ)ömÏnÄÎôËÉ­aÉr-Õ9øŠ(ýhÏâø¨,ï(tJÚªøŠ*çÊ?ÙDñS_tÕuwVòS/$—uouúwƒOKñg¶OIr6ôtVóTfqö$ÄWòEe]åOCüw§_MòÇWOXþG‚üÃcoþE¦_7ù´Oû¶O#ùõoûUµo1÷4•?CÒÒú4•#û×|¿™õÚûߥýÛX¿™÷ÞûߥÿmÎêôë¬M¢Obxãþëìÿ´úLkïÖüklÝ(Ý©ÏÒø(¯ï¬²ÎôЍï¤|ˆøŠ"ψÚ~;h=–OdñDW?!ôR$ñBUOaöw‡Gü´¶is464os³E÷gAgV_FÆdMdn‡OòÁ6^ÌÃ3|ÁòÃÃ\þg’nÇ{:oiû4’>–k;_}ûóos5ô!%M!M3_cùµr»9¿ŸýZÛŸ-µ›ñÛÙ¯µÿ}Οòøê$o(ú&†.ÆÊòÇëͫϜöeLŸÖÒ”Ò­ò-ŽŸÊòÎ(ïîüJ‚§¨§¨¯ˆØ¨º×'Sô2%MA#ÁacÁaEã87EŽ2A,S%,Aòá–#qa”7Gx2Ôü2$mÁ#ÁácÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ îraŒxcŒx"„ü*$IŠÎrƒÛBüA/CôA/CôaKa¦yO8§8o8‡óÇ24O,óaîî†/Gøs‚~Å/ìRüÁ.Å/1ÞþãŽcO8ç(ò„sŽ"_,óÁ"_,sáô£Fjña„?Cøs„?Rø2Á¯RøÁ¯Røáí¡oþŽ#O8öŒ"O8öŒ"_¬òÅ*_(rå~¡va|¡öaŒ/BøcŒ/Bü"įBœÂ¯B˜âÉÚþtA$B,¡$8CäB1B*)¥‚Ræ$¢A*¢A¨¼â(…¢X$бA¢(SdJ¤Š3¤‚3´aؤ‚-A*ÚÄ¢m+!O8r„“!†’!O(ej®†1.„1ÆØô(„%áBZ¨m)r„’!G(Jr„¢$K(A¦âš2ƒÈ–A²(¸‘&PB%!4I8ÀB„2ˆL‘‚yBD""X…ÂÅR!(!!0A;BBDÔ!(Ɔ&$!‰TS_å ÀR!€!ªa!B(1†B$@äˆÁ„CL„@ˆ„H °!@2AN!D…¤(Lrˆ$$î¤6Y)XBB`H(ŠbBH&¤C"¤($I¨H€(ÔBB@„(b$‚!M$B …†€HèÂD`B@JDd(DDŒ‚L˜„ÎHJÄ!í€(ˆ!D!€HäDÄ!D!I$"A!‚Á"I”,B"!R‚r"À(H(ŒHàÂ+†B¤D(A#âH!&”„CBdGF‚xE„’€v"CQ!CAJD$M$"À„H‚‚‰Ê!DHA †Âh„€è‚D ‹„ ‹$"_8€* €  ‚Á‚€H@0Š"!r! D€Á‚B „(`„ D@ f„ AÜ6—$"Á$X MA@ d("À$!!à€%†"1$ÈL"4ð”Bƒ4$('HA„†‚("À$!@ñƒÃð‚F!’A@A„12*Y˜ i6à$b(HD‚rˆ@ F &BHD(€ŒaÀABYH„Á"A!N"@PA!@2†$ ƒ4(€S‘‚Fˆr$AfB€’Bßr!€(D(€@’DC`¡)P(a"E(€(„A€)ÓB‘"D@D$H$@A€˜dt$”DpBÄD!BBŒA"MD¤LDHDD8BP‚/º0$ˆCS0(E$°‘8A@$D´"8*@"(DBˆ%D`0&A!„$Q$„ Œ) i’%@AaR€8A.BEA’"À$‚ …@„`"M”"dÑBpD!E¤BÅôƒH„ƒD_$"EET(BAÁ(¤QD%DR„@ð%BL%…%¥B 2.” KAO‚$´‚…¤$I¤˜’c#ÔAh/H "Dˆ€ *¡"!8€"D¨ˆ$²ˆ°‚ªj„*H˜¢„*B$$ˆŒ¢ˆ,4ŠF2(ü=ý\\DÂA%!HIÀ¢D HàH$ ÈRKH,†2$Cc(C†¡!)4(+AŒÑB£!¼L$t„"f&(&¨D&,TB ‰ðz”$K&0"B6BlhA1<(„‚2A`!LäA-!(„($,ôDX¥BH‰d•ˆB‰„D„H/D¢DBNAC”DNbB@G„N( „7÷2,pÂ"a,:‚,8‡‚)¨ qAD4A$-„ÒBá"¸Áa(A‚‘D D`DNTA¤"ˆˆDÂ($€B’$@H‚„!„ˆô¢-@¢AE‚A)&"DFT"-D.B!$H‚ð„B!ŠÆ$!`(ÐB11!DL!ÃQFÂAÈE1AXA–!tIè4‡y¥|!!@1H"¡ AÂÀ"Š+Hl=¾ ! ‚„‚¢€ˆ#$$ *¨È‚ ¤(BB€*ˆ@D(( HD*ˆˆ!)Èbý—J!!D¢:HhHÆ!Ð,0ÑÂ$" ˆ*(‚ˆ ˆ"€$‚‚ BL´((ˆA€‚ƒ‰BäHH"H1âRâ3b"æ!R4)’G)ô‚’O(øA²;Œ+ˆ3¸‚QA.„hG!-/qÁ#lä!ñá)sã1Ò$d!‚F²ÑsT"a%AÈ„2”/FÉT-!+?ʨ)s’(¤$G(Š@NhD.Dˆ.„-H‰XH)‚$”èJÒœO$!ä$1…,³BÁ†N’rˆ#HäC6hA¤aE¡hKE/äSôaOöaO÷„sK8O8—4_,³EóÅ2_FñáFnña„?Gøs„Wü2Å.Å/ìRüáMáoþ„cO8÷„"O8÷„"_,óÅ"_,såö¡Fjña„/Cøs„/Bø:ůBøÁ¯Bøáéúáï(ò„cÏ(ò„cÏ(òÅ*_¬ò„*Wî¦~alêÆø"Œ?Æø"̯Bü*Ä©ü*„©ž¬éþ‹„$Ü$±A’4SäB1A.”åB8QFA&ääBòA¨O¼ò„S(OµA²„±A²„2E¦4A®„3äB8CFØäBØäBÚ„Ú¸ò„r„Â(G(Œò„"A¦®†!.„%øaŒ-ABò(¤a‰š†©r„’(G(„r„â„ò„"EhJ%ø¡:óB2„˜B`H"‚&†H,‚zb$&$DTAˆDCäAñ’$W(,Á!FfTRAFFQ)xd„Rð£D@T$ÖH¢P„St¢¸DDØ‚$‚Äà(%ÄH Â’A&†&‚ø$baI†ÄÀ‡ÐSè"q…"A$!t"dADB”ÄØB!$‘JrÂDd@RB*"MA‘0†‰VBŒL !„Ey5Qp!²D‚8B-!N$H¢0„(à$DQ#˜FD%ä(dH@„hH á(HQ0„ÂA‹(Å!ˆ*•Ld"ˆAˆK‚EA„ƒ-D†‚HˆH,´x J!!¤%(@Ã$B"3¢‚€4PA(@@$2†Q $8!Œ H"[(C <(ˆ(Ða8+@C"/Cq¢P$‚2‚B$4(D!BÂ$p„2DCLjA†Â$ l‰"„³„Ø!„AŒ"x,ADˆD/Œbäˆ@$ÖMO`BXh hAd"C@!„DDˆBB„C „‚FÄDˆ„HÌH„"A¢ ˆA€D€(XȬCL`€‚„ q‚"!ˆM$1P€„" Ba)"R Å$@±Hb(@ƒ@M¤$@H1+pÀAH(`ŠE„1f1$C†Œ$´D("D2¤A°4І4BEò„A ŽBBHFDÄhD&ш‚GˆH (A¢ƒÄA"‰,$"€Œ"Äêà $Á!`($ÒB!M‚J2D"FB´ƒ„â!ä(„f‚(" äAȉ H()AÄ*H„¨B"‚€(ÄAÏí,!B(H!BH(‚"(S”€Q „BH€E‘AAhBCˆ(„€"D˜A2H"D@*ÂŃ•‘# $ 3Ħ ‚`@„”!ÀAÀ‚è$È, Â-"Â+H8'DDPBa„‚‘Er(! I‚…B Œ2aÀ‰´"d¨H„!Ì DD$`B@d! ÂÊ"A$!B…$0A†ˆH aB ÌD)<2²,H$T(-AE1„)IBQB!F"!²$„é!h(Šâ!D+A,(å#iAE4A`ADÙÈ 9‰’„(%È‚‚E´A¤($A*Dˆ…Bñ>ö IH!L‚(!‚  14bAJ˜‚ˆ!ˆ‚„A„p‚„ÃBD@"„RÔˆB4‚"H„*TˆˆL)ˆ,5#)/!D2-B!h*TL"‚Lˆ!B!HcÈBSa(RKÐ"GIRD‚E$ÑTØÄHƒãULÆ|L$v„Eô„DFýäL"OÄ´$Ô„ÔDvfhB!AB`"&ø•û$B"`ApBÂA$@"á"r!ä"r$´!bB/BbF/"cB!"I²C¸$²’$;'K2º$  C"ÃX6ò$XB„qÂrøA(€NáDJ‚¨b*”(I(‚„À­CÉ4$B$*RD"O!ñ!bCÁ$¶ä"²”ˆ¨‹Bb1À‚@IAB1"FH"(6H‘ˆÀˆÀ8>A¬Bˆb"("‰…„‹„HŒüHô«GÐRhJtbom!&²&r„ò‚„.‚{b,\UÒAEó„B3HvaCbhDHDÀÄMa*Ô*Â!å2”h“4p((,²$ª"!ƒÒBDÑU*èl„rLbBBÐ,ô„÷“ € , BFDAL¨„.D!ÈLLLD‚F¤$!J†(I¼C!!!ˆ!@‚€‰BDˆ (pÚ IK‘ †F$Á„ aHŠ„  ( "(Jˆˆ€DÀDDD$¨HPD@LˆHAˆC*" Bl†8‚Bbì:ŠÑd¶Ö!CäBò%6/BÖf±"ù-"olù¢’c¹‚;(EávZ%o!wÁcEò"Æ%ÒbHÒb¡XM¶î$2Š÷‚h]$JìDÂAÍ9^AM¯…È6ha¦X¤r¬b"_b Ì‚”(B‰ª†«b‹Fo„Xâ‹„-Š„òÒ.$/6Bb-2YØ"R2Fâáб$Ì!Ôô$t„ÁI4oAc(BdN8ALˆdB>„T†-å<Ô4–DK8ò$&÷„rN*Ϩ%俥d.NïþiL‚|$$æB膴(þbéFòBMÍD‹,ÏTtM¸LtŒ½„Ævdt„C¤GbšŠ„V$‚G(V$*êJ¨!ODâ{dçBbl*’jkB+â%„ èfB*ò4&"K„äC#ñq444hS¢DI±6L˜4ŒÈˆ­ÁDÀF"†FD$XÄE¡*BÉ"’'A:(]ȃÆH*ôY14oa÷goDÑ3Ñ"d$olò''okÿ'×oiö'¦o+ûç×oiþ¦æoOø§%OB¤bOFø³6o{õ¦çfqcr‚ò‚Ã7$w$ojò¶Ò_sý_C³”ûeåO÷&g_K÷òrOvöba]äOnöÖwþ©åssøÚZü[r¿‡ñö>oþü$ïçbBò¦¦_vþngÏVö¯b¯®öÌe¿ÔòMå¿ÌòîGïÎþNnÏÄôÊJœÜ¢òDlïª<¦-vosò76O5ñQcuñ!&ovòçDoSôw4oKû6$/[ú÷ôo[û—·}ÿdM¥QòEóOi÷woaû–&W,4Ö$èjòá&_~÷TOgû2¶OOáCñuÕ>–oK÷µ÷oSö$dCö!÷o{õ6uïæýþ|ߨõ[Y¯¤ýò|ßí÷ÿ/ïòi®iêî²&öiïïæþì.ÿÞþniO†ö,i_²þŽn},Ïæúînï¬ôJjï„üèNïÎäGós5ogõ3go%qCóCc}aofúw³okóW²okû¶¶ooû×3ÿ·w¾vWòae_Zþ6çowûó4÷¢ç$xÃòÃcozþg¦wû¦6kû$¶ocûç6_oûgµosåVÿwDVödåOWþwö?Ï÷¿w¯ÿÿ_Ò¿õ›{ï¿þ?öÿæþînÿîú&¦m¦îòÇêßöþfoïÖúoLßÖömÍÏÖþnï¯îöîFÎþNÂŒôŠbÏŽþ.S3Õ2ûu$/7÷R'%'$/v¶!öF·?'ÿ´¶/#ó”oiû´7?'ÿ´vo#ÿr%_Fö$dOB÷c¦/óñ4_Þ6<Ã7,?þ&ç&ûfç_+ó¦¦o#û6¶k;û4÷gX_GöEEOVävóuÖoöÿ^ÿßþÛ?-ô›¿_ÿNïÿçþOãÏú&†mâǪ¿üþnïÜô-,_Æölm_Æöoî?Žöîf/ªÞ.ø‚J¯Œôèî¯þ{fp2ÄA/CÒ46–„Žs[„Ž2A,õÁðá–3qa„xó„x²ÄÁ/KÒ<’>–ä87EŽ2A,ôÁðáÖ#ñaDˆ?G„x2ÄÁ¯CÒ<>ì8vMè(ôÁ*A¬ðáŽ!ƈ7ƈ'BȯB’Ä¡èáœ:7LüA.D?äBôaIöAŠö…SŠò„S(_,±AòÄîänñA/GøSnÅ/ìRüÁ.Å/ÞþÁŽcO8å(ò„SŽ"_,±ÁòÅü£ô¡„?C¸Sø#…/ü*…/ü*…/ÞúÁ¯8ò„C(ò„C(rÅúÁ*W(¬j„j„ø"„?„ø"„)ü*„)ü(„-âÉÚ6üL¸ B(CdBBˆBˆBÄA€HˆÈ#á(Š4A‚¤(SdJ¤ˆ„8A„-Aˆ-Aˆ„Ø8Ž`‚ŠeJŠñAˆ”ˆˆˆb(‚ ŠdJà87lˆ(bˆB ,*„"$¤A(IKBlˆ,;¤8$3Ä‚(D9A±B’„!áB(N„‰4¥B „’!a€ˆÂ„EÒH4H(8AB$‚ƒDR‚µñ±ô'($(ˆqB(@$â(H€‚¸C @’$J $DL,’hI„€†d"(b„Dh‚ƒ´$$è“‚XDH)ˆH„R"PdLD#AD‚HÐFHD€GHðD L (ËA€AèD„b‚‰dH`B@……@ˆD„@ñã— FRA!JÈ"I$A*²EH$‚""‚ˆÄ1(JQ(°‚¤A€N$R"h‹X‹B@„"ˆŒ(€„’„ÀH$•‚È3…Ð%„ D#VD%BÄDL"ŽD@„2„@*A¡„c C!´TCÈd‚*…%B¸HA&¸La†ÀˆK((AÀ(Œƒ†XH(@B ôtî@T$#À" Aa˜"!L‚!0AHC„DÀ`B DH‚€"ÀD ’DÄHDA€d‚Aƒ„Œ:d!"!L€‚„z‚Ä!€4¤`(C2A H@Á$HpBÀAP$(,‘àdhD‚ɈÁ$(APƒ$Aˆ d(ÂDÀ$H@øõºÀÂH€„"†!HE2!xBD€-"1(ƒf$2D,H!Ò‚(BR (!¡„"A€J$b–`‚‚-D (¨ˆ$•Áv£Z2A(H! $@ "#ˆB†"ŒbAJBB¤A@-A@Š‚D&$bAb@‘ŒÂ€FÄ$B‚L "JH ŠðоH€ˆˆ!@$t"aD‚ "@1A¢LpŠZ0…HÀ$``HA ˆ„F‰`È!€ˆH8y$IR!@"a&„(àN!AHˆ)L h3KDD¤" õ„D(H€4!°DØ@ñ‚H4$D$Dô"@!TDÂJ”„MˆŠò–¹`B€CÀ!G!‚&"!Ä$!@4"1A`B#14@!R"$‹IH.0"„"*DŠÁ.ŽCIRT"€XRrD4¨("hAT!t!D†!t’rTA0L¨BED#™"V%8À%"†Â!„ŒT!ᡈ„-"(E2$"Xƒ0!„*„†„G„!B‰?A¢2FX@Ä!P#A( ‚’$J„‚‚†D‚Œ3"h‚*D"f„2D…B”dQŒ¡„B&ÄEFÄAC¢ (B(FÔrA¨FH(4".¼ÑD¤B$$H#´‚(I2!†àRX¡B-0„MRŠCˆ"aC+HDDâ!Á‡a„!%èä((†"B‚F"bF%D‚T$Û“pDÁ–‘6¥„1")ed2!-Q$%Q!S±B"Q$,!abJ LJ$‚hB€‘$!CÀ8BJt¼h8A• "LÔRH((€@hD\?5!)!£(,%Â%Â'#†$ä!#Q"Ô"éBH¢!,1(€"$"†hD#L¸R˜B‰’BÅB8LE]("Dh"`Ä„PH*„˜È"‡(A!FR$%Ñ"˜¡@¤AH(P$(Šu‚aD!˜"LABâÔ"ö!Œä‚bS8 r)Bˆ,"MÁ9‹(FH¨$#àº?‡H‚AF"ˆJ( HˆH2‚,!!€ˆ€(CBDˆÈ$@Ä"ˆ?­ B`d$"‚@$‚„#"8ÂB*ˆˆ $(J„‚‚€D ‚‰XHHEA‚(ì>]€ô"B/!ºÕ"Ñ#Ñ"S%,7–m2eòo$òB#ò"#Õ!ù2‚%öF,Ì-Fsb!)á(ò†"B”$g!/H´"¨D&¤Â"LaS˜¥„5”Ï„tˆòŒ)‹$‚$QA†(XAfÈ„`„‡")˜!Å’D,Ò$èD²D‘Að"„DN’ZA¡Â2"ÁA#”$Ž"(Q'<°!A"AâOéDáB¨‘&¤-á8ôD"XHIÔrb…Yq1Y°øYA‹FD#"«Â„dÍbƒˆ†”(CB#$Db„ngS7¶‘„6‘(sÈ"BEbIr%eDBBFÅ*ø2+ÁM±È_‚¡aY!5†/(²QÁH‘ÃJ”ˆ2*¬¥J¨Ñç(F‚É2„C˜$fxaDù"…H=ćb©ˆÚ(˜ˆ!ëK/s÷D3k?1Ñ"õA3OfÓ5ó–Â?s½–²ów÷b_!·Wñ®DhK„?{ñ¢VŽã_$³wñ’/üC2?Gó–2kÙR®q}"o(øcÇqMs)õâFnE-!Y<¢/ZäÝûrß#õúùYŸæ²ÖñÂÉÒÜ’-kˆVüH)m+{H§,æýC)]Á·æîìÚ$Ò6´ŠôÁˆ(ïböŒEãß#õ²_bóT%õ?cñR3-ô"W?%ò‚²o%ñ6?%Ôó3o7õ3ER!_4ý³F/rõ²oióÅ?4õ’/kñÕ2=õ1TZù²cib?4¾º–÷•Ó/WäF¬d_tì~äá„û†4ÿ,ÕõHدÎ÷ßzß½vlýIªIzÄêBÔ¹úF¨O,ö­‡'ÒfÌa݇Ê'¦/¤þ®fç(…òBÊ/j´ŠâLòwnW?1öV75/%õ3E/gûw·O)óW–¾6o#óV27ñsV/sõ5÷wVô!åoCÿW“?Oñów/9ÿW’?-ñÓS/;ýs¶_w»†ó·’.´OB¾Å²Õùs•>uOV¿WôaEnånå_$üµV¿ß÷Ú»_%ùÙZ¿™õÚËŸãÿMêïŒöÍŠ.¦Obº‡ö‡Â¿öxhïöžGŸÖôi­nî]ÃÏJô¨D¯ŒºDüŠBˆôénKsEõr4Ö'õR;/5õ3V/5»Wÿ´²ocñ6m"M7wåcõ#f+$OFö$D.T^³oó÷?üÓ;?-ñÓÅ/r¼SûVó_ió¶”Ú$ú¦6éSí{±òeeOVäV´Eþçd¿kõ™Ão‘½›ôÛRýzÝ¿ÇþOãOJò¦„)Ú&ú¬dßzüb/ÞòOhßBrd}aüNéÿJöªF¬úDȨ´Š´ÈøbÌFp2ÄA/CÒ46ä87EŽ2A,õÁn9Fˆ7Gx2äü2$O<Nácáä<7EŽ2A,ôÁRðá–#qa„xs”‚'Cü:$mÁ£Ñ>ì8vMè(ôÁ*A¬$îraŒxcœ‚'BȯB’Ä¡èáÌ:¢-D?SäBôA.D?–d¶„ö…sK(O8—$_,³EòÄ2WFîFîVør„?GèVü2Å.Å/ìRüáMáoþ„cO8÷„"o8·„òÅ2[,_,såô¡Fjña„?Cøs„?Rü:ůRüÁ¯Røáí¡oþŽ#O8öŒ"O8öŒ"_¬òÅ*_¬rå~á~a|áþaŒ/ÆøcŒn̯Bü(Ä©ü(Ä©žìéþåƒ4ÊÒ$¡$I2D&$äB(äB(taÄA&„äB’D¨I¼ò„R(KH$C¸A²„2E¦4A®„äb8AFØäBØäBÚ„Ú¸ò„(G?„2„„²„eJ1®„.†„æÈAbÈAbÚ”¨mÁ©ò„B™²„ôH(G(N(O(rDhjFø¡ZWR$J‚(L"äb„ÄbL!‚Q$(OB‘A"HD ‚%$aL1ÂBma‚AB˜)$âv DdHBixxa(†#ØH«$I¸B‚˜"Lb‚m&ˆE& ˆÂS¸T‚€ò«ð‚%$&2IABr4(@$È&d1³4t„(D(t"„QF„Ä‚L)B–†$""DIRˆyT(Aƒ¸!£Åù!!ƒL$*QD&A"p„B"D r„†@ˆ(CÃL!„àA‰D„!‚DL…ÁX@¨(œ2ˆE„bBð(DÐH$’(PL"DXNH@H„òêû°¢„$0!‚"!(ˆ!A À*AÀ"" "ð!D`D„b"A BÀ!AH*H‚D€X¡SeA#GdB("”$D`H8‚ ‘$ ’"DDD"AI(EÄ!(Bð$*TA@˜ H"ÄPÁ€RDbH& (D"H(D7B0B ²DøX© €0ª ‚8 "D$@„8 "€ DH‡Dh( ( „I$dÂH&t!ŒHñSLB(9ÂA@‚†¢AA0’ÑD'ˆ=Aˆ"B†&! HL`S 0H$(€Fa( " †„L"‚ðj$!CHAC„˜Da"(H*AÂD&!" Fa# dAIˆB#‚ƒ-\ATŽAÀM‘AˆŒ‚""Q.$ÁDXAL,BH€È¤“‹(BÀ$$"A)"(0 D(0!%+‚" bDD!€A00!‚("D@¬$G‚B„$*JHô*_@b$DÂD€ÁB@4a(`‚F`F„@ˆH!Dàd™@èHHˆ0!&‚A†,ˆÀ¦J"¤!Ia$R@Åd,ÙA€6M$€BI§!AFH1¤Ž$2E„!ÓD$¢!„ÔD 2G„ ˆDäI"D(„B´(TH"D „(p$H‚H8(¯x $C#(LC0@M!!0$ ‘€B¤’"$€bN$(D’B,@€D rHdB‚ (Aì>!L2DARALâ8aFL"r$TB,Ád(GI1"O„$‚GB$˜²aJ\áD¢B*&„2ÅCdBdƒ’„ˆB‰±$ÔDˆ‹$A‚À(ŒhB¨BC D ƒJOnF‚.D)D’!B$B`).TÍ1 hB"À$MA$À)Áš‚(`BA!€dD‚." ‚€¨$àò‹D„T"€&ØÄA)‘)!B¤*Š""ÂA&„DA¥B@a,%ŠAL!J$&$RBƒB¥€š4H(HD‚*`BD#bB$"8b0A¢(A‚D"b!2$P$CI’I2B&BR"PBJH DK!A)bA’DMXHX–XH‰-Ôˆ "¤„'DBJ’LBK$J"¬BX$`„FÈg³b,BAf$"Á$$Q$D2A¡„%4#"³a„‚´B"”%!$Š„dHR*ˆ8Œ‚Õ…E˜$Є"BB((B¤ÈÈ„‰ßê".2E²AA’$.&)â"‚’¢L’"LÒÆEB'"+Jª’*qC‘1¢ "vFT"H+AÂA€Š¥(F"1DCdcÂ"DH§BDH"HÉH‚‹LHHJ†„¤BŽ£# H€€)¤$B@ „€„ B1ˆˆ(Â@a„FFˆˆL€HˆÿɈ `D!"’€€„4 ( $ ˆˆ"d*ˆ"$(B@*(@!ˆˆ‰AA0‚†DŒ4¿%‘B|/!tòb°ã(õ‡,R&('$5r"D#ã$ú#„='+B/1vÑ$\4!ð„BH°‚²DrBr$òƒDLJ¤Bjü"ÄNDX\±´¡qæ!t„H<Œ$Jb”AÆÅ„bà†¸"h¤…R(L’(ˆH_}K.$%4!JÂ6/Dª$à$"Œ$D(KA HM!*% C(’N&ä.9A„*hC%B¥Á> ‚„…!˜$Oˆ"4¸žˆŒÄŒˆbDDˆ*)"„Œ¨H(KH+DÎL€äÚ7µ(&%â%AÁ!$m!.!I¡2m["JÒ!1C”F’!DF"âq*ÂÂ/A‚È“48QJ¡ŠÕAa&&t“$TQ0!zE/öaoô”qO8µ„ó„SIóÅ[4_,ñenqaôáDøs„?EøqÅ/QìSüÁ>Å/þáoþ”so8÷„2o8·„óÅ2[<_,óåjqaô¡Fø2„?Gø2„¯sü*„¿ü*„/ž®o1þŽ"o8öŒ2o8öŒ"¬òÅ*o¨råoêÖ¦þa/ÂøcŒ.Œ¯Bü(„©ü(„©ž¬íá/HN2AM”4SäB1AL9QL8QDADALòA¨O<O8O5AK$K8SäJ1A®”åB8QFøA.„/äBúA¨o¸ò„9²„Á(K-(K(A¦®„àBhÆÈABBÔ(š†©r„’*C؈r„Â(O(R„¦Dèê?Ùh(BJA'Hâ!8DM¢€”&*´ÔA‚OE!ÆA"]!B\ò"K)ÈSa#Iô#ÄD0%ŽSCrAâHr"h„(Í‚0'"iˆ’‚fØR’Š”LbD(†E›(‚B#Z×#PA$€4IAbA&b"DK!`"LäBA!$1!,Q!pÂ`!AM"-aDQв“$Bdt1‰©òˆ$aD$#F™.P””HG‰TP(H!ì5~ÌH¦!°ÁHAˆÐdD S$Ä@Œ¤QD AJ¢(C±‚"E$芲ER„`HGŠE43H‡A (A(Kƒ%Œr!d„Bƒ2TÄ(HŒ„á‚HÑ~¡ÄJ‚k±(D€ÀB(¤T!`!"D H(XBF H1$ŒA„ÐHX4P$"$p" DƒÂFÄ2N„°Bƒär8¤lAˆ‘A`"A(q4$’(p"THÀD€S(JQ"$г$‘"‚g!A0„K7DŒÁAEƒÊ!"…´‚€Á2E$3$iBh„LJt4m"Š„D¢9ðbÚPAE"†$Ç…!(A„„H(@D¡ À¨ bÂFD…„QŠÀá!Œ&4!À(A…Dƒ‡Hƒä‚;ÉŠÈL" ÈC@‚†f)@/‚LÒ2ŠKˆA@(‚" È$L€H3HÀ'B†6 ("†È$ Bð¯ "!ÀBN$TS6$$*âA$‘„AAFc„1!aB‡$R"2,ýE8|BA#D4‚ORV©t‚(rBD."!&ªB‹‚EBHí(D*ArŠè($Q-÷CÔ"P#Àl@1d *Ä"KA&#d$à‚q4„dB@„4h¤H€b"ƒ"¤’AAAg‚(‰"!oA  AH@1D‚4"D8€„‚%DÄAI2‚à)Á!¤ˆ)d`!!ˆlqB1$)$ˆè¢xB‘ˆHÑBˆ$)‚R!AÎ(DŽˆP(,bì?¡pBI‘D'*4DL"(ÁV$DMÔBô"MB„J!%IˆCèCa„Fi„X@É(B„‚‰”F1$N(@$ )C„Ä()2,"%ˆ’ßi $…rD$Eˆ#AEBÀ$`0@4A8ÀHTH„¢ÁI„B" ÁHTfAEa†‚$ÈØS)rDÜ‚¹AUI2$0$I$¸TTЄR%"E.±$Ô4„(‘ÑàAÍHG‚Œ!HSRœ1Ht(d„„!D(UH‚¡Bƒd”$"±$CR(Œô÷W¢AH(!HA(‚€…Œ!&BŠ”ˆD‚ŠäŒ!aDH€B(&h‚(B„‚D(…(ˆˆ=!ðYpH10ŽCA,"(¦$.ˆ-!.…(.ƒDˆ‡œ*Ã(KRš¢K)Kâ‚1Ž!á%%eX6!X(G…&CGN(&,dÂJñ"ŒCô"„Š‚)ÚäEb¥Á˜‡Á:h *áAd…¤a‘Gˆ(p"Œ AŒaÂHHD@$$˜H Bð!HKDBX„DN$!HˆH‹#J¶,!¦"ƒ&âb’CB(„¢$”3ÂiBBÈZ‹"&ù(8&8*"K"K*ò!„›…dˆD…bƒÁD!HEhH A¸1†¤*ŒæB”qLâD±(ªˆ‹*²D±(¦L¢L&Âh†¤MBˆD¡Q°I¤UBJ$´Hô•B)‘&1'"q$!;B‹„A"‰Cã‚4‚®(u$r$Ñ/!¬"&È!`IBR‰IE(‚¡c=X&¤1&$t$qHA”TLHÕDÑ%rˆDædaB$„Eø„´S €A( dD@HH‚‚BJðAL „脈 DD$B>¹BB@")Á„€!‚„M( aŒÊ „ˆ€*˜HˆC$($‚‚€˜ˆDˆHŠ ‚"سBR"lT".B-Rs‚Ò&á(¢"G(›5ɱ<áb§D;b?Kô±§QÁð8‘K!O1šƒ¡îC8qL|!Ôô!ˆí‚„©Á˜–”ØùHáâIáK²„´¡ò„HMOITÅCÒÄø4˜-„EÔL½ØHØDòÕ‘K5[2ÁŸA¡7”›6˜X¤#Â1A`C¨"‘õD(!d%xØxHxhH‰ ˆ&±,²(¬"HJÂAOˆöE(HJ¡HF¸!äFéB憦B B ¢N!´Æ¦JÏ¢BD¶h¦$.HFˆä$¢FÎíCßÒˆÕŠÓ˜Xˆ§‚ψ3(íIë"Y*2E¨$Ìrh܈"ž!‡æº‡‚nb,È<Ùh‡(ª±§zK!K2[!K6,Š5QŒäEÂ4^,1âDcQ‹‡j58*D²q,lBMLF$NH>(X(NQ-$©:B)xr”‚B£òZy$~O´ó]¬ñZ/¥ñmO¢ñ»ÚÒ¿œ³%!ãWôxÏ’÷\1ŸÑÓÙö)h_„ú™<¿x÷˜é[5×%ž™½Iq}ü´O‹ü1ÍÏ4=K‹Wü8IO¶µ¶øæÒöbiY¾èçÚåÞ»e³mñÈΙ4_F³ì÷öínïÇsßCó¦†vþhIOÖ²Õö¬dMk}i]áÿ9ö†loÜúD"O±ÊñˈFrhôêìƒÚ#÷;2ïãs_ò[z¿1ñ:>¿'óÿjÿcv{¨‹K3OSóyh߃ò=8_—÷9MRú8!϶ÿºo?Óç‚û¤6ÿ¬ñCQOèËóé8ßž÷9t‡«³K?>4Ÿ—ÿ4¸O‹÷½õ~-nìBßVïÝã•ç‡ÿôtÛ]Ÿå…ýøt›{ß_÷r}çÚ$éëÒ&ôkíOÄü¤TŸ_ÿtmOÆöteßvÿõloÆödîÏN·Þ´BöDÊîeÿNöå4o×ò{_¯“÷_§•¯µ÷m¿çû^»ß«ó}¼¾4K1O†óT9ŸÇ÷8]ßÂÿ)ŸÆö(ÍÿÓÿ›ŸOóù]¯›ÿ_’ñÙyÙÿy´ßÕû¬8ßÉëBûô[>[½ŸÖëÓåÖ¿wôimÖî×¾uÿýdŸÛõøé[Ñ›MŸ÷ØíGÿ]ö¯ë÷÷¼Ocû$¤_N²åþmíÏ×÷t½Gôi-ßÖìæúeǯnö®D¯ÏÿÚ¯,ôŠhïŒþ$sÒ-7¯wóz{ï1ô[‡¿·÷:w¿÷û~òï‹û44>4Oó<=Ï×÷8|ÂvxùemOÂö)~¿·ú÷<ßOóùóo1ýÛ—ŸŸÿ8ýŸ‡û|ñß‹ó´´:»4û¼4ß_û8ýž]߇òMEOÖâÖ÷}¸ßO÷ùTŸÿTÙŸµÙõùÙýŸ§ý]·¾4o+û6¤K¢ÏJöí¥OÖíß÷}lßFödm_Æölï›nïNöîþo¥½Ø´Êôêæoæþ®çp2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9ƈ7Lj'CNÁ¯CòDÁ£á>NaÁÎsׄŽ2A¬ôÁZðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'CȯC’Ä£>|#ÚQôERôARôaÍaoôŒaO8µŒò„SÉòÅ_„òÅWÄîÄîÔør„?ÅèVüÅRüÁRüáÍáoüŒaO8µŒò„SË(_¬ñÅ(_¬qÅü¡ÄêñAŒ?ÃøSŒÒøÅRøÁRøáÍ¡ïüŒ#Ï8õˆ"O8õˆ"_¬ñÁ(_¨qÁø¡„êñAˆ/ÃøS˜/¸ü*„«Á¯B¸ž®ëÁcI1ÁA”$SdBĄĄtAÌA…ÄADMAˆI<O(KH„CxA¸„2E¦4AބĄ„ÄÈA„ÔHØ”ˆM£ñ„G•8„¸„R…¦TŽ„5È„5øAˆ-A‰H‘ˆ‰Ø8Ž‘†Rˆ†Bè(R„¦FøÆ£N‹ABŽA(‡dÄ#ÁL&Äd„,bI(…D,e˜OÈ€šÒ„Á$D™GDø!HÄ–ˆHÁFa‚„ƒñ¤,AœA$…eBP…DsD˜#‰'ÀÈ?.Š\4B¸$qHÂd .4Ah(cˆ‘(DE”†¼‘H`A)œK!L‘AG“(LÕ¨„.HÀ$FABˆ‡B‰bA‰4$PA*ÁAJC\‚ˆ",ˆŸ„=ˆHŒ(a‡A"24(L!t! …@ä²X„"Kƒ$GA‚ÁÊt!$HÈD‘Ð(‘L@¨MJ K(‰¨$€"Á,ƒ‚2"Èaƒ(´rÁHÁ†A@’I‚ˆcÒS (‚)A8‘ÁD$ŠAD¡4Gˆ DBFD‘DBŠXˆªÜ4"A(†Gˆ(BDF‹.‚QIˆ*ÜC3ûFÁ„N!Iò‚Š$ÒD¢‚("EDTH”F4À¤#(Dâr„èCähÁŠIG ‡HDN‘BNŒU(‹M¨R‚òDBp‚$ØD&Iâ‚AdBH/eK„Š&ĘJ”ˆÿÚˆA€2 ƒB8"€0‰40ˆAÌ `‚H„AD„@(BÈ*Ž( „H„0(H”"ˆ(R9GÈLb„P°…„Ò(€$H!*!â„!²‚Á$€" ˆ"‚@ˆ(Á$‚ÀD"ƒ€‚($"À$$ß #±!Eƒ‘hd)ÄB(D"D*rbBDpâYÛˆ$Œˆ4Ø…Â$AG!¢..NG„MÈn!BFdC䂤"…i“V(B¨!CÈ"<Ö‹Ê!…r$XA°‚Äb¡«HˆXÌ1©ˆKB4HRA"˜N$IÈ$@‚ˆKB„(%‘¨BH …hB€ $(b„¦&Ö„"€TDŽHŒŒ”ˆÂHG"D(Ž&,É"Y 1h„#„(ôB¹€a4ÀIRG&S( ‚B&ADM!J™‚QR‰á”€A¹5l C¥Â‰‚DAdHB(…GŒ ‚Æ)b’Ä@¢,„2ˆ˜„!#C‚iˆBAFƒd‚´X„‚KB(8ÄDLdJIL1d(„D‰²! D(D`„C¨‚‡‰D%ĨA(„S†!Ã"(¤(CBTH!LÊDFèB‰‚(hA³ŸšBDðA#"D 2ÀBÀA ˆ(ŽAX@D(KC’BBÂD2‰„ˆ€´"8AHˆ‚tAÄ(Ž`‚Š!„.³‰ŒÔ($CÒL *A%´D(dHB.DBK!*¨„^AƒŒ‚hHÔDD¤„„è6ÔAÔ”„(@DJ™!AˆÂK)DDl„)éHáDFdÖ„‚ˆÁ2Eñ¬ö$IÔA+($"d‹"ÈL¡ÀA˜HTF¨a6H!%Xh`†€ÃA‹JÉBj2HL‚"(€Ž„áB"t8¨œƒ¤„àR8"ðH BPŒÍHŒÄh€Â$LòH8(*Š‚¦!L@!c*¬Š.˜ª¨‚*©‚[š‚L0$ŒGšx„èˆz”èˆ,øˆ‚,-‡H)B„øH45aÈ+'‚D…d‡d+C‹‚`"ˆXˆIôbu$IQ!O„X$FDr™dˆDšx”ŽDAB É„„âLŒÁAA*8DE„$(A´$D”HAAŠBA,âEHaA@4.Ä(DhI”$xDhˆ‹$‡ˆ‰Á§sBøAGBE/ATRÄ%.¤"K_J²ÅTABÒE”ˆE‘ˆBIÜ„QÈ@$dēℑÆÀ-À$‹A&”H"„ MH!MDˆCÈ‚Gȉø(‹"Œ„ŒÄ˜ƒ(шñ2B1,Ò‚1#bC‚r$ªƒHI¤8DTDX(‰Q„„hÄ“z$ˆH$dÂÁć„ÁŽX.(.$œbBFIA¹Dá1L”0( ‚P‹HYxtTItˆÔÁÆ$†dANWMvÀ ( ¤ "&$ˆ€B‘$€(€A ,H8€òÔÝ€B‚€ˆ‚ ’`ˆAˆ‚ˆ "(ˆ@ (h‚* Î,£DÆDÓ„ÂbHc«aËèALjOH«‚ˆ*º$“„*’BĤSér„hâèdBŠåÊÌ®¤Fø$OJ:aB‰‘1‰²„ˆ¢È‰ô¡è‰úˆËÁŠlQŽŒ¢$BƒhtÀcDì„8.8$Œ¸%шʈÄÉýów$lQ#G$=5RD½͈›&C9à:ŽA.MÍAË"MeL GFÎGB„›N(Í”.8‚>¬Gº”È!ËHˆÏúD‰ÔD’h]ÄLÓTM…‰Áñ$…bOT¨†OA˜„OBø„A_B¸¨øÄŽ(_H…TAIÑE¶HñE,AÊB‚MM‘œ$2$‹A!@ÄL‰¶¤j†OH±DrÅdD® ;DŠ:1n‡Á.ÁÈŠTŒÚ˜ÜÔR(C”$¨Ë,•˜͈t¬xAÔˆâS¨$>¬Ã¡A‰FXˆˆË!-ñ-ɉ҄™φx*Aø¨&|(á¤XHˆuÚBµ±çò%f$¿gÒ6ó6M§!7$-so»öæWßÎûŒt_Jû4$_VüE4_Bûe$_ÄòN$ORþd´_MòQ(OØÿˆÍžˆŸ…èˆõ,IOËxýümŒË_Bø´„_Þ¼íñl¬ÏQtøm4ÿÄÒ]Ö]ûÔ$OÅú}ÏÂ|™ùXˆŸ˜÷,íOY|Tüï?Ïhó…¦OIøåÔ_lóM¿ÏÉ|»lÜßÒŒü¿‘oGøL<ßÈ×Üü(˜•ñ˜øÏÂÞœõC?5ôwïvÿ¬ÝßËûý¨OKû¤´OZÿ”á__ûå”_Îú6MßFöe¤_Nþ¤Õ¾ýßßüý¬Ï˜ý˜ÙþݬÏÚÿŒ}ÏJûÝ,OJ»„û¤ýÏÙöíÜßÎùé¬ïÑöHmßÖøh¤_Zý1ýÏÏþy­ÏˆýÙü}ˆÏÞ÷ûÏÉ{ø¤¶Kº_ÉÿžIÏïýï¿ÏÎúMÇÆßÖòê<ßøý¼ÌÏÆý^>ï©ý˜Ø…ýüÏ_9í-M/stRö_[¿”õC#ñ_ÿ˜ÿ¬”ߌêK»„«ºOîKÿå´_^þymÏÒraôáµ_^ÿ¤åÏ[þ<<ŸýÉÉü¹¸ß_ÿíùÏJûõ¨OK»´ëJó¼éOÛûýœ_Þþ}M&øm-Žÿäõþ½ä¾±ÛÝÎÁ›ÉÙùøØßú·‹óL®ºñ–4ޱÏêþ¹˜ïþùçLÏÕö%lfõeNÏÜ÷/üÃýŒ´µXœÈùü]ó'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2„ü:$I<èãÁoÃÏÅ/ô8E/ô8E/öaoöqO8•8O8•8_¬ñA8_,ñAnqAøá„øs„7…WüASüASüaÏþA÷„S‰ó„S‰óÅ„óņñá†nñAˆ/GxSèGüACüACüaËᶘ÷‡s‹8o8—8_¬óA9o,óa/nqaénña‰/Gøs‹~Ä+ÃBüÂB¼žìo~ˆ$$8SäB1A*1Q"uAèèAà<ŽSÀQ„1A8SäB1AuAèè„â„â<ŽRXBJ‚3D.B*)¥‚R†Aƒ¢A*¢A¨¼â(…¢XJ¢J¢(CdJB®üCÊ„èBÄŠ´’H"(€N‰N!fA"DáD˜!A$”™HS(1À$"Á1G4FÄnÄœ…Œª!E‘(†G”À¤à¤$ŒØRâ„ØB´% Q´ÿM’)A ‘(HÜ¢$€(%L±a‚2DC¹(„Ù„±„ED(L"ñ˜Ad!4Cô(ŽÁ„" (T‚#B„Ѱ¤rD!"N¹„”LˆArHÈg“΂Œ!È(¤Q†HD …¤„8A-‚,ÄFE†qHbBFH„N(z#ÁˆD((J2$4Jô,#AJ’V‰´$¡½0BB€L" ‚$(L`BHª¡‰ DaƒxA@aÐA (f”ŒI 2ˆÃª$(¤(A&$$h„ŽÛƒ5-E 4("(I„Ø!`Et(N)C…8H¢Š±!á„DI ¸-ÄH"HMI(#$¨„Œ!TÅ$AH*Ôeˆ‘BLÈÁp$$1H †K•àEƒÀ’ I¤"H„TA0*0H@D,,D 0:,2L*"„¤"AˆA‰ô($ B1(ŠÄ!0H‚BŠ)ÂHªLsˆÂA…„¢Fq¤b``ˆÁ$ˆ6 HŽA‰"@!†rHˆÀ$B€¨Y@1HŽ`(AF,À$ðÓ 2AH$R8A@¤)"HŠ’@d-#‚ˆ‘HB:èD&DôA$Œ2A€2AAB.$ÅA¡Á@!‚XB0&`""J”Ä”‰"hˆH<6¶H€##Atr¡FŠ"‚R 6!B°’‹b„$“ˆ(€<$„ÒH(BŠ„RX HÀ1„ŽDL ‚’AàA™ ±ˆ”$ÀŠ„/çƒBp,!a&PAA#™”(ˆh@„BA€B! !HB DA@"h!ˆB ü3%@xb†$!a„"P#(Cˆ˜g†"TH€h¤J°™èô&*„H„A¢Â•ä!Th"–Aƒ‚X,O”!!ƒLƒRD"‚‘NA8Äà„"±I‰”” DÀÄ_KIE)”`B!I‚„ aÄŒJ C‚1Á&1„šÄA èA¸$FD²ÄB1$@ÈaA#D‘ˆDĈL`BH4ƒ9IÀ½‚$àĉD(Â$*DCB”\b‚!LÃ4(—HˆP1ˆ›‡BP•ˆNL¢¡Ä5\ŽT\8(]‘aMBYA£ƒA(UhB6D‚qEY(GMAƒ<D2MHBŽHš¯C4X‚X‡A(A(D‚I$d!&‚2DIb„$K!ÄBH#&„( ‚ä$fC†d†AH‹¬4SèR¤„ˆH$JB0$Á¤˜€DÈH‚„A|1!„>…âñHRŒô8Œä‘Áhzzt*DXH&¸(AOd!”‰ÂQˆ ‰E¢± ©ˆ…dEB¨+ƒ\õ„‰äH¡Á$D‚ ¤(.(.$J‚bBLŠÖH²"XB#‚òVSŸ„‘$¤LÕ¡¡Ä¬µaÔ¢èDTb&R"’§‚‚iH¨-jE˜Fr„„Bìh*Šâ$Ê(-(†ä"¬B:X,K‚‘®ˆ‚Î(ˆŽ8DRÂò‘ˆB(˜$‚(°,¢€" Bˆ&L<ØEÒRi"'‘$%Á"ÂíP$‚²Dâ(1bF!"’J¤©¨A„ƒÑ¤ô.1!%-¨1g¨6¥ˆrHÔ!R©N"¦Â"†”ŽH&¸„’8ƒù4KIš#a¨AAÁ/„!ƒˆ)Œ‘XŸ£@“`A!«‰éBåÈ’еˆ”Ck‰RÛ!’‘Z’³ÛH1Ò-¾E>1)år„ˆB©xé$±¢¥1ƒ³ˆèH¸""¨JŽLô˜ HA(ŠˆõˆŠˆJ袨ˆ ˆJ3²!!A€ ‚@€¨D€"‚E‚"A@ *øXç ˆ(H@Ĉ ‰H@‚‚€E1DADB¼;‚%ÔñAT&a1ZB±TÂk$±B©(52A$Æ'RÁMq*Ø’œO˜†~¡¡‚Î(ªè,ù-ªÇJ„ƒ‚2)êòxˆ,ƒø‚!‡X#xŒ¹¨´ˆvù‚6¢©š2J8%ƒz2A舳báIˆ‹ñÁ‰¸Š¡8Ÿg Ÿøä…tXèµxø“Œ†1L±"¡X‡éŽ–O©ô…ˆÔˆºÞ¬·â!2VZùŒñ’”/!ákÅ+/âá"é1¡‹/!õ(!XÇ+‰/#1—o‹ñ–Ö¨±±ó‘$ž„"®$L¢(H†‘HËKÃ’$Ç*¶„¸)¶(è†â„¨(ˆJb¢L2ZÄD&Ú"zÒ²T&­H/%ÈHo!2ˆmË(ž:‡†kXHæèDØ* ¯áTˆÏHÒˆ…ôyPŠÅê(#’‚BFúz(tÈ…\C‚ô2A*Dâ‡LX„Žb.YψñAZ‹8Iy8„’ŠQ¡‚fA˜‚?Bx‚´tŠ‚¼4üÚ—ð{:Ï1s.ûJ^¯µý:¯÷÷^ò¯½õêWï!×'û–‚?{üÓ:ÿ¸û—[¿laÖŸRÒ„ü;‚/ÿñi8mzïÓô:›Ÿ¸˜ñ8mÏÿû±§»¶ãÞ}ú.ªï™÷ø<ÆÂò$ÉïúñŸ§ò”ÍEhõYˆÓØö¤¸¿òéå)²¥ú2‚/r|ÉøÔ¸Oö©,æòc$_Üiúã¼/Æú¤BOH´ŠuÊè(þ¢äïÚ<=Ÿ¥÷ïµñ{ï¤õj_ïµöFÉÏ÷üS("o‰é{ýZªÿ¥ú^âï³x:üI‰Ÿ…öŒ¯ÎñI?5ó{ÍZ¯ˆùÅÙ.}M8OªøvÇ¿¯ú¢o+ø2Ç¿‹»óûßÛï£û$›¤¿öŒ²¿hû˶?®ÿ¦óï9¹šùÙÉÚý´ÑÏ‹ûw¾¯ù4’O¯û–׿øE˜_¿ëGòa©.iß:óÒ½/⮺¬¿ž¹’úÄŠJ¿¼û«œ4¯óõ9¿…÷¿…õS¿‡õ:ÿÿ¯ÿžzÿåñ2¶okó†»o¹ýùŸ¿ÿùüÿo‘vlüa­¯ÿû–{¯Óôzÿ¥óÛ‘ý˜YŸ…ñyýï«ý¿»ÿ¯ëkû¶¶o«ÿžÿ¿ïûó¾ÿîÿ>i߯òi¬ÿÏÿ¾û¯[ÿ»ÿÿ¯ûÖÓ™ý˜ñŸû¸ýÏ»ÿýºÿëk»´³´ù„ÁŸÍÿù¼_ßû>aÏÖöa_Ïû´óïjþêÄï‡ûÔڭ«쿷ëß5ËÜô.O%ñY?%ôYX?euyý›öß½û>2Ocñ’2O!ÿ¾ÿïËíïùú¼Ÿ…ö-L‡ÖŸîýßøÿóõ>_¿ñ[S/õÙŸÇñy]ùÿ¿ïïû–6/)û¶3ï»ÿ¶ÿoûë/¿—ö,mŸÆòi?¿·ÿ¾ÿï{ÿú²?½ý›Ñýñ¼ŸßÿÙßÏ©ó¾¼okó²´OÿœÅÏXññ¼ÏõqIÅôi-öÿøúßCüªä¯ªûÒڋɫȭ/íÿ›Ýp2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A­î9ƈ7Çx2„ü:$I<èãÁücÞSô2ERôA‡R/ÖòaÍ!O8—,O8—,_¬óE(_,seìnqaìnña/GxsíVü2ERüARüaÍáoÖö„SÉò„SÉòÅ_„òÅWÄnqAüáÄøs„7ÅVüERüARüaÍáoÔ<ö„SÍ"O8Õ,òÅ_„òÅWÄîqAüáÄørŒ7Å/ÆüD¯B¼ô*Ä«aé¾t_I³ÁR$$IeB&aBtaÌA‡BäBÒ„’Ä+!O(…’D$A$I2E&4A&4A&4AÄTHDÔMÁ#ñ„SÐtAtA˜$SdBD4CD7„Ä-A…ÄA…ÔØ<O(Ø$tHX$FØ$rDhbFØA1ã%’ICèB&KD&1(PDŠ#Ô"ÂLˆ"„AG#4x@Dx2ÄH"„&á„‘$’+A&4HoFƒ$H8%Ä$(D(HXA*(H@„…¬BB"DˆH(£.AHˆaH€˜*‹€*JX‚ (JbÈ 2A–B]õ£S‚¤R NcTƒ2$(A LH¨D¬$²!(Iò&„GJ#%""œ€&9E¡4"!JBH”"DFÄ‹‘!(HW 'HAD0HH.€ÌÄA"d‚°‚dÁA#`…&H¬À†I„‰ÂA&€4EQH$„@h"€ˆä‚HŒ" "‚Br‚à(5Dõ±ˆ"BLBCð!A@JT$ D€$L¢A0€„ÂI‚ˆ$èd("FˆM$Y„RƒD„&D†b@#HÂ$€Bñø’ÐÅMÄA/DB¤!XG!*¡"DA4D "”E€BHEDQÉK2D-„L”Œ„EdˆA"Ž-¨Š"P+4(!B„ŒÈD`„ÀBKHÜ5MŒhFÄA!t$"Z‚1"AZIJ‚4$€‘HDÀhˆP$ &„"TB€xH„‚fŠÆ„Š‚ÈÄÀ*@±(„H„+Bô“GFÁDPPà±$QQP$F!!T€„EhAZd”YˆFXAÈ bBB(@A1Ĉ@O¨7;ˆ¢W„ $eR(°$G#DBXDfQ‚J"G”$ÁLÆ‘ ’$„vÂB*DA¢%F™FŒh‘!")ÃD„"!.&phÁœÆRH,($BØ<86ƒš$0"HrŒ‚)"DŠ‘(0A„A ÃB”ÂHÜ”$$$ Œ5(¬!0"9Dœ(,ňH‚ÂÁˆ V)RŒ!„H"ƒrDABFÉHALTƒÀ$(‘ƒÁALĉBA)"(„Äh…¤BX"$D„†ˆÙ8a(,”"@R(’_‘´h4…–JÔ"'ˆMAÏ EÑHA¨A¬2„àIÄ,12€’H‹,!ÃH' á‚Á8àAŒÃA,16’$<(‰Ã4I"!˜,("(䄉" B´(ˆŠƒØÂˆ¡"OR>c%$”"F"2H#¢…ˆ‚¤.BITEOBÆ(O†ÖDÂ!M$PF±„ÙlØAx‚VDlÑÁÄBh(" 2…gˆOo:$¨E)ñD­Nb\Ñ8A„A„¡D.VHd†"FbF†4$!0ZˆDï2OQ!+BUÂL*T!-H="FÂBBrDR:obsfþ6vÿòõ&~oäö~WoÓÖ”ô&mÏr÷7n/óöV~/döOB75O¤áföOd_}ü÷Úoìù†¶m./cõO]/Ä÷Ææÿý6IŒ¼BöéWoÿüvM~OnóŸÒ¿5õVZ/gób?]ø¶Ïßìù„´Ohû¶Öÿ}ýÖú/íú¿ÇgWOÂüV%ßzýçÌoüÆþON¾Ì¼ÚôÖÚnöÜæÏ:Kòze¯÷ô{x´õZQ¯µöZy?æ÷Ns¿f÷W*obó&6f÷wbÿöñg_?æþvEßÄödM/æögWÿgö?oï÷×§õ[R¿µô^[âÿïwÏè÷ú¤6m6_d÷wFÿöùî_îï;e—–ÏÖüæ­lõVÿöýÞí-µ[ô[ïÕõwþßnÿÜöÏø¦¶OIûÕ´ÿoýùÛoÿíÿÿ_DŸÖômÍî¼_|ý~ÔïËüÚþO(½Ú¼ÚüÜÊoê2~=÷ÏWöB_•Õ:ôXA¿qä××{õnv'¡/có6obó^b¿gó>^o¶òZLßVòhl_¦ój¿f÷?&¿wôV[¿$ô[B¿3ôr_ÿlÿLq-êKù62M4ï!òWoÿýæ¯ÿ…öiAnMOöÿÏþÿföVÿtÿÖÛ¿¥´Iñ;Wo÷ôßvßt÷Æ,ocñ¤4M$Oh÷oAþõry_ĶiödM_¦Òøÿmf¯O¸öVšÚ«‰¯ãýòÙm(p2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9Æxsœ'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ü‚sׄ/(ôÃ:EôÁðáž#qaŒxsž'cȯc’ħ!èç!<2دQt8õA‡S¯ö!ïô1Ï8•8O8•8_¬ñA8_¨ña®†®„ø2Œ7…>¯ô8…¯ô8…¯ö¡ïö1Ï8—8O8—8_¬óA8_¨óaêqaø¡†ø3Œ7‡Óø:ARøARøaÍ¡ïÖ8óŒs2O8×(òÅ:„ò…:†êqaø¡†ø2Œ7‡/ø:ô:„«A¯C¸¶úa/ÅBQ‰IQIS….ÈD„A‘(‘(8Ž•ˆÑ‚S….¨"†Aƒb‹"‘(«!މÂ(((UhB(r(rxaØ4(‹"‰ò«!މÂ(,Á(,S„.„.?ãÈ'ù!ÈÁƒ‰Q&Iƒ%tA¦$ŒÁdà„AHtd!a!0A‹)’!ŠÒ4ÁJGŒSâ‚DAÔ’2D-Q‡"‰Aº’B“('F8$NŠÄLDX’f¤AƒRÈT­‘0"$ш´HâA2A"APCH…f…bD"4(…Â)‚E¢’@¢)-D%”8ŽA$HpM‚2L­1„€Š1J‹‚€¡($h$/‘dˆ@,‚Ø‚dB„Œn"ƒwAX‚@Ò)Ò²ØÃÂ$+(I¨ŒAx4ÁH(„F'A( ²D˜Œ‘(Šâ8„ DBˆ¬…È‚€Æ” A,’DÌ”(H‡„P* Á"H„A‰A@R‚' ¤(A* @–D$`„ŠTBHƒBˆR8¨¤$˜(.A(†bA…°Á$°‚„’DOBÂa(†"%H0L‚Šƒ4‚(*!d(` T*HÈ$ŠtßÄB¢*1A@ÄEªdPB¢4HMQ*è‘((J" Œˆœ!âAšA0‚Ž.HF¨BÀAJ"¡K(+”ˆ¨/‚SM’ MH# )ˆÂ!ŽHŒI%h¡ŠùD£3J’F¸„0¤ E$@H!F„…A±Ä"L’È!0$ˆƒ•-ˆ#$„„¡AH‚Bƒ’è$Ž4ÀHà!JB"5ˆh!ƒ±Bø§%€4<ðAJ!B"B1š„t!"J˜@¡”ˆ‘!AÀ ¡DFf66у(…‘¡&b†‚"1B…A*A!ÒLÄ#ƒY($Oµ1FÀ(„1)G&ŒÕA‚(’°!$$„³%Ñ6ˆ˜HLÄ$‰+(†8N!2„G6*A¨!#œ#V„A%"O"!8H®(BHJ«B„,!4’$‹$K $ŒD£ŒF˜¦$Q$!(™"$(Lb„;p€D¹‚b! ‚!BBA I"h!Æ‚@˜„")HD`(A(I”’(IâˆA’$œ5Ã(M!M8‘R$(h…ñJ¤L‚QBHÁL1"‰t$a@LÕ£8%B™8‚‚¢§A,hˆ- FÌD6&ÂDˆkY„JH˜ð”&D¡„)*DqÈ" …˜)RB¿ $HF*N1ÃÁA…„1+(A))%(€|R¨’„`$X(B8£‘HHJŒ"š"$†*D‚h" ð‚ˆ0âAC4†Š‚tªHr†äâ52T…ä4„L'Ç&:ŒÄŠTdI8HϨÑHòˆ"Ý%M)Í%N)_òV¬Lò¡A“ÉA.Œ‹CWâOZ1)M$ަ"_êèrÄÔI!9$584t$(‚CAL#H”(ÆF#8H°dTgEPDë…A°H’‚¬ „ÃFªŒA‡bR¯Bø"!¤!D¨E°R¸AtŒÈJÍŽ(ENDÍ’D°$–($J4¬8‹¬„ä‚’I.2ÉC$”(A²ˆq*ˆ RA"¡ABˆC†¶„5DB(Œ$h¦¼4w%ˆ”"% €ÖR­",‰‚ˆÃ„(N˜G$"0)ˆ"Šd‚+H0š(˜"H¬€‘BƒÂEØÒ„áDÄ$M©­$MI“ByTJt„YhÐDT$Ey(˜¨t(Aˆ›BHŒHˆóRHˆ#ßï .$J‚â„‘…ð„(HK))˜d%1¤(#¨À¤8h$…¤‡"‡ˆh‚Â#tØB(‚L8HI2„¡@HHh„@êa‚DˆB§F!ŒÄ„(ƒ´òH(H‹tPˆ$¬5ˆK…òˆTa: ‚ #€DˆBˆ!ˆ$x‚€‘(DB"HHÀH$A‚"ˆHF €C È‚B( ¡H€"A$<8‹\b%ÝÄHÇüa¬ÔFøA"€òIMOÔQhFw)TØ«ˆa×ÁMDH'ƒ”HUtÂŒ›ƒD•(ëTˆ©…ñ’t$NE(R¨"FŠÂ>*ø‚Œ/AøÑ„+†Ä‰/Hƈ†tUH\×<Ì´‡HމFò’Ç(ŽË„$/‚8–/š´®´©¾X”LÈHG²…2äI±$aŠ!„Ñ$hBp„TB#bB„øÈ/H„”t‹‹)…*t(ÊrCRÍhKCca%áFìXù(.¤&ô(¤ObáªêF²ú!"&‹:J²dÊ$‹#+êºr’Á„‡ˆ"‹¶"v,ò!"JäB¡&Ô(8$.tâ„ò,‰n$Cæö-È%шÖØ”ÆO!åxòˆHŽ$K8\‘‡ÄÄ!r!)ÄL&ÑǨDwDk‚kE„^ZøTè¯H߯Ò|÷$M§—…zÏÓþ>¤wÇßvÜdó$„oIòåÍ_äóm­oÑö5_ôóM-ÝmïøóÞ-¯…ò÷_Éôš‰Ÿ…øˆÏÃô¿Å÷ÇÇ~,ù¥´oCú%æOöûm­ï‰|›òD1Û&Má¿­û^)Ÿ…ò¤ûŸƒüÉ—…Ž»ŸÒþì·…î?(×A:æôÈ3ŸÔ¿üŸ.õMmÏDü«žo—ü|8Ïìû|œ¯…ýZ­õx¼ïå7º=,ÿ§ñ,iï‘tøKÒö.i¯Ëú߸Ÿîëjûa¬/sÿ¨¶ß¾û¨åïûú,ÏÖú>mÏúûý­Oúì¿ßÚžF¿™òÆZÊþ¦­Óúz|Ÿîû$&OÎú–ÕÏîùíŸßÈþ¶•ïÇòMïÂö­?ÏÂúw¥onó-mixùÂRŸÂô¥ÿÑøvDßìñ„6M„o[õŒ>_üÖþ¶Á¯×ôdA¿„öÄSÏGü_Tïì÷L|ïýZxO)õxükñïòLó>mÿWö,ÍS¯‘õZaÿÅó,÷Ïúÿï¶ÿÍú¤¶Ohû¤ÿïÙþíÿÏþùý­Óômm_Öøm®ßúý»ÿïOüÿ¼ß¨ý›Ø¿‰þß½Ïî÷þÿjûÿ(Ocû¤6oúû¶mÏîýíïÞú>MÔvlýìÏúý?üÿÇüÿ<߬ý›Ø¿|ÿùì~ßêÿŸ¾÷ÇOjó¤6oøÿMÏïõ©_ÿÇú^M‡†ßÖöì/ÏüÿúÜïBÿÚlÏ-ýÚʯ…ýZH¯7±ü÷>Mïãó[[4ôI7aÿ·÷íÿϨû¼¨okû¶²Ojû¶íï«û÷¿žþklŸ‚òa%Ÿžÿéÿ_Úþ¿ì¯»úÚÓ¼üšÉ¯¿úûúϺ÷¬?ÏÇò¶¶o*ë(ÿè¿«ûþŸ_Æö]LßÂòm,߯òí~_úþ>ÍïñúÞ[˯‘üZžïõÏøóL¬okù–6Ohû=ìëùî_ŸÒþHhŸÆò,M߯õÍ~ßæü~Ü/$üŽZZœÚ¯ïüªVg1p2ÄA¯CÒ46ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:%MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaœ7Lj'Sü:%MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž3qaŒxsŒx2„ü:$I<èãÁ¹CÝSüA¯SôA¯SôaïöA¯1÷„S2O8Õ(óŤóŤánqAènñAˆ/GxSørÄ?ô:Ä/ô:Ä?¶þA¯)÷…S(ó„S2_¬ñA;O,ñaî–î„ør„?•ørÄ/ü:Ä/ü:Ä?¾þá¯)÷…s(ó„s(óÅ:¼óÄ2þájqaìjña‰/Cøs‰/C¸2ü*„+Á¯B¸ž®o¾4M3A,1A,3E.Ä33uAøA//+Á#á(,%ÄB,3D.B,9Rˆ#uAøA+A(+A¨+Á#á(ŽRBŽJâ(3D®B®’#¥‚#õaˆ/´(¸¤¢kA¨k+!Ž(Ž(Ž(O(djàZ;‹¨8Q¤„ç!",²„SØ'‚b$ÁM(MA'Bˆ£‘Xˆ!”H!¢”Sh#A-E˜Œ¶$ØXá‚„$ÄrIØ)¤(1R'ˆ„4­2„YèBè"„Ѥl"KL”)HHâ2T„Ê2‚“i$’(Ÿ¨H±˜˜$0pD2!*˜"‚+#¬%ŒÄ@$²:¶(„4,°´’B-4‚À†ÌA¢H"Iâ%ÄA±‚¸I£œC¡"`(M$+!DœDŒdD/’˜N"AŽ)!Ä!E²„‡QÀ„@\(ôˆD8d…"Ì(D"A"M8)%8Ä'„Ï(g"LƒQ¤ª1e(„ƒ—!ÃaBd‚…¤!,Ñ$!†´8ATX*RŒB'u(¢"MX°HÁDƒòMj°*DX1ˆ",)‚‚„!ˆ4!"BI1"(¤!¨I•€"‘–¸Œ2B&ÐHâx(bDŠ,øH$,&"2T¢!$ÀD.@B¬Áâ€:®H1‰@R(kŒ²$AHCcƒM("À2Y…Â"&8„'!OKñHŽO!âI‚ÑTH(³¢43B¨Â])‰bB™2ƒäÔH‚ÒDò*DŠÃŒF„±$!bÁMc>.*q„è„1hK\¯” †'D‘$I"!&$ˆäDBt#…pC!0¤d‚PÈH4Šd$BŠ$RŠàb‚"ñ!!D@ÄBÐ$B$R7=ˆÁ$90ÀA(†6DHL’C?(øBA‚*ád(F!.„ÑHƒ8BpA±HBK‡(V!" !"ŒÄ$(Añ«õ 38'håâ)ä"Ɔ"h",Bâ.Ø©b„ƒr²A”¦)8h8E$dÁBFx„RhÐÈ„BH#+‚X†ˆ:ÛBгŒR(O(!è2$HDÀE>D«È„H‹„ŒˆÁC#‘À(#â#¨2‚(%䬲XeBAÈ6(‘R% +J¤,2D°²qHR„@(–D!L¬±#‹!A'ÊHƒ1$)‚H$áBb`E«’"JÊÁHLAñ•®€‘!%H*ô$!B*!!+(Pƒ²‚Ô!@±ƒa„`'L!A€˜FD…Ê.‚”pæ!‘Œ¤’!'BQ‚KH,8$FФQóËŠ†T¡(„Q*\d#KA‚@8FA@X„’xb¡¥"E³$L"A‘A2H*AÈ„+(E1!F!Q*K"G$‚*4«DDA -‘"C9*M˜È‚%Q")Ä“DH02#1„„ŒÂ%0$¤JÁ,BHœ(QB"” hSB<"0$D (D@`9(Å1H"#A¤!Q‚Al1gL(B|AÉ›%I–F¢(˜@E(‡B¬!8"&d$Vxh!DJ’‰Fb!GA¢!¨ŽT„‡Rœ¢!A%ŠQ)<(Idˆ„,IeR›B *ñˆ4ŠQ‚ÏæD’!X!0œ¤Â#,JD#AP‚0"CÄ‹$è"$dÁ,ø$AQŒ"„´–„2ƒâ¨‚B„hA…RBA„„¨cÁˆc‡URÏ´RñBAAáuI¤D]PDðADNd)nHôAFj”‚+‚RBh!‚BCÈ"ˆ‰¸Œ¨ÁL惡BÄ|‚­N†µÂ$¨L+)ÞAO,T$A D„j„¶HÄ,‹T(~h)‚&¨!ï® OEQ!vá%ñDhE@LD1LQfDEF5Ht&ÔAfjHBbWbC”I¶„6C´1L©©A0H‰´Ä]0„.Œa(†!âXBˆ„À!‹BAG‚.H™Ò¨Áƒ–-<ù³ñ$$8*2#IaaÄR”ú$„ð”‹B‘Ò*u±qH—ØIÈ’N(K¢h$L¢Š"´!ˆ̰(¸bÊ*©(,8„ˆŠÑDy"BBæ‚8ˆŽDƒêtȲB|ú¢„Ãø÷z@Á"œA‰A )Â5¨ÑB“šFC±!z(²TXˆá%$Å$‚H%…2$"Šr"ÁfÁ(.B„”AŠ"ÖB*„2¨ L%!-á¢IJÒ(¥($O¨h(JX1/B& B@a$Dˆ‚A0 A BàDˆ/y@ €"0A(XÀÂD„È@Aâ@ „`HPHˆ!€$BBD„‚œ>h-XËa‹qC½A4bJÓ!4X]„CÄIå¤BOU´$Ö–FMAŒö”!Éò6!c¸†aB'B}\HJéÂø„Ž–äLák³wâ‚2,ÂêAúh!L:Jí¯¨£Zø$“&é"¸„H‚|AÒ„­2B)¢CFòˆìŠ&®n—,KEƒ-·„êÓAO1V1^SñQ_ˆ²AQU…•É¡Tõ±U¯Õ”TñCÚ¥$ñX¬áAe%L,Á„#"ÖTƒüLA‹DŽ’F“ˆÎ2L©Ih¤†F*òaÌQ‚ÀÄ'A¤B‰ä“–D‡rHÍ[ŽBƒ2¢’SUA'ET"´Hy´NAMEQD]<*Bt¢XÁFx4tbü¢ÅDüÁFÔäÖ’<üD"E²|Eºì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2„ü:$I<èãÁoÃßÂøA§B¯t*ôaéòA­"Ï8Õ(ò„S"_¬ñA*O¨qAêêqAèêñAˆ/ÃxSø"¯ô*…¯ô*…¯ÖúA­3Ï8Õ(ó„S"_¬ñA*_¨qAþ¡ÄêñAˆ?ÃxSø3¯ô:…¯ô:…¯ö¡ïô3Ï8Õ,ó„SÍ2_¬ñE:_¨ñEjqAü¡Äø2„7Å/CøDC¸ô8„+aË¡oô¢ã$…HBÈ"Ehb„$%%xAؘ‚£á(HR‰$È"UhbHr7„-A%Xo8Ž"*1„ƒá!”8Œò¯úHbBÁ!$"aAÂ.HD`Â,TŠ„,2D&‚ ÌD¢"@Œ"(BB!,,ŠˆŒ&„tA BH4H0DŽÓS’BƒÑHÂAHA$À a*D!L€RFMC¢(AC‚hh!"À$1p‚U1HL&$di"BHâBè!ÔH’B@ï%Cå4‘R !L1BªB‚!©BCVHžL;Bhh…¸A!>!BŒ”Q ¤-94$¦”iƒG…,OR…ˆ.ˆ+BS¤¥©x(–"MAs¨!1@TA’š„$«œœ>·-QФG˜…a$ B!Š’FòE†¨!CäDÄ(„)”ˆ2Rp(#â„Ù$"XD(£ªE…”!¢„2#8DH%¤´‡H°"ARDHIC°hÁ„)¡„*T„!#è…Dø¹A#¡!BCÃ#€bA,¡$„B$‘!,HBP!C„ZB(P¡#èB`’H!Bƒ2¬B„<!b!¸D@BˆH6çHá¤ÀA…rAh"A6((’jqDDˆd‚ ­Dƒx#Ajƒq"rD8N*Q$E4X£MD‘BÐ$”!G%Ž.E(É!r$D¢1…q„ä„BH,‚ C‘"M)!¨‚M?„BV„‚k‚$F!(BAB€T!„!B…$ˆÐ¡4D…'„‚(DH(/HiDðB(EqH$(䂌Al8ÑDHÄðH‰‹ÔBø‚‚"Ah„“…D„¬d‚2E˜H­µ”È’A„ 'Ô‰DôAC HE˜RˆÄÔB˜((CAÒ„V$àAD¸ƒ(‘",<˜ƒ¡)CñÅŠ$!'„!Ä"àB N"AÂ,HA*%d3B¨$!HG„$ƒCa$A‡¤`DHDPH$'AA¡BJbC„8¨aXANàÈF!‚ÄD`AAà46 ÁA/AD1“i(ÉB4†(©"T*B¨$O¡&o¤"ÍÁÀºâ´(Z.¡ ¢ËƒK¢4!$Bˆ'‚&ô˜A‚dƒ˜BE‘‚„+m‚*aD&"D#ÂBCTH€Êb_GEÀàGÁRGHq¤$ù¦Tºr†4²‚."‰¢‚ÙÊÔ͈’Q¬¡ŒÚAbD+ŠB²L+ÁAkIƒ‰˜DˆÐ„H”N"xBˆd„l(,ˆø$!`¢Á6˜}"…¸¬Ó‚1Š„ƒd‚:“ØBt$hA-$,u!$bC*3$K4Bl!EhHЂ …$Š!ФCa(0Ä*rÁì„&”ÂÄ(¯!HÖ"Ø"„Ø"2$&±(!’„ª¢("hÄ©1—„LXR@(ÁŠ2oŸKsVab$G#J¡˜#²B Œ É ø™%$a( è!"9Tލ"('JHˆÁD¥!‚x(1‚C¢C®2-J"2A„(,Šb%)¨!%È$¡”J&¡H*"G¨#B"BB’6àd6é"!”€$„°$H)€Ø$`"€„($(,$1@Bˆ!ˆ%¢B‹Ñ@‚‚ˆŒAH" „H@‚% !(€Bކ‚" B("†#"’(H@ $ ŽÓcŠ‘H/A±7ž‹1sñ‰‚‹H›+¢úBájr$"h6h"RNK*õ&+‚M…˜-(¯ß"òˆ¡Ùò„šM8š¸•c,zññˆÃ#ôa$ŽØ‚ªËCêhA/hø«¨­!'®aƒ¸$¢*ûƸ[¢.¨ƒâ†bFn­‡D.bA‹"Ä#B>"è9‰±BØ!"ô1&AtÁLô‚¤-DÈ4Cº:t!r,´(Ò$þ!D‚(æ†Hš‘¬Â¤LêI¢%3¬2†¤cXÓX8¤HÎBÉh„JxÂ脘=„-D,rHÄ„$‹Bq<&˜.HŨ'˜)A,èÈÂ!#ÕC4&É´&‰DÔHÔBõ¶láaË´´Nž„ „&ô„¡Ìñ’ŒÏY±åI–XžÑ°D"(b,&B‚KÊ&FâÂbLbA!%ÑbR!H*¤Ã(×*Ñ$Ö"ù¢ª%r!òÂ?lxƒ¶Bxv?¢¸ø#J-L5Ø‚\‚­H'¡NJñT,Oa÷4U¿ñBˆ,÷&åýµoÏøõýO{ÿ­¶oKòõÝÇíOÏ»–õ‹1FüD(OBü=·oÏûv­_iù•Ô¯HùÚ‰)ý—Tëš'æÿ¤s[£k;SýÜ›O»·÷:2n?n%[b¯cûÒ-N«_(×g|šöJ‹?(÷+æï+ú~)/þó*ñÿ*º¶òãÿ¯–ûf»ûɯ©âÔñH)ÝA¿èûX¯äòŒZïáüN·¥¯¨ÿ*îÏ34‹=o¤“|ÿµá¥ñ8Tß÷»„/þùù޾„¾¤/rÿ¹¦O¦«ëïsús(OÆ’bÏ8ó÷¼oßóäúËúûÉ?ùÄšJ¿9¾¿ú÷­®ê+»¤û²öŸ·â¯úôøÿ[ûR-N¨.hß:ëÞúò¯/¯û¬âß)ü‘ƒoéj¾¿þ5£^O?®Û$ñ&‚>Æ¿:ùäŠëêß{ûz%Æú+i_ºûz¬Ÿ§òò8o¢Þ¦øŠ/Œáòö7è!4ïCõ~tïÅóS¯!µZõ~Osÿ½WÏoû÷ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2„ü:$I<èãÁº3×Âô:A¯BôA¯Bôaéöa­bÏ8Õ(ò„S"_¬ñA*O¬qAîîqAìîñAˆ/ÇxSøbͯô*ůô*ůÖþAísÏ8Õ,ó„SÍ"_¬ñE*_¬qEþáÄîñAŒ?ÇxSüsͯQô8ůô8ůöáïôœqÏ8µŒó„SÉóÅ_„óÅ_ÄñáÄnñAŒ/GøS~Ä/Aü8Ä+ÁC¼¾¾ü&;$ŒBòA(,rDhb„&rB(rCxAؘBi˜Æ£á(ÈB—„$„M"W„&vAHvSHtSxAÜTH-A…ÔøÁ£ñ„SMS—„M„IsEèBqAÈ”…LxQxAìTHA…ôA‰øÁ#ñ„R°„%´„!´„3D®B2Ô”X-$„3|A2"„*q"x‚Ä"–¤£ä,ÑDXHNB©$*9H¤…´V#¥(W„2)’–òUÂDD”)zTøh‚A¢$G,Ø‚²QŠÑ$èFhè2eB„H-’ŽHç¸C±RØBôÅã°8RD…c©ÔH¡*EÒB"é!´I*8Dž(‚£2a(‘Z $ CÄŠÔ‚A£è…âDaª‚$i¨b„+ˆK€b).ˆ â)èÒ‚®DG"±ƒá(X¥;]LAH$U¢ôE CÑ"‘D`‰Eò$Œ”$&èLAbâ8…²T(Œá$Z„6Ò…å"D‚[,2EbC&HÄ$Vx"”L‚qBhJ‚üh)á‘â„q˜a„Šä„2LÎ+Î’Í*+›,ò”Ò¨ò’R›X8]Šèˆü:Š/ˆxôÁ„/)øƒÈ¯¡ùÓÈk‘_‘µˆ¸¡¨/¤¡˜/,ûAˆm¸„ž(d𛞨Þïð“b΂)³Äø¡šZtr8D^‹!GŠo‰ôD)oI2R+A¨Ü)¥+ÔDDµˆ™QÉý+\ðzkß§õJ^R/¥õQs/ïó|ò¯§úröo3û%²o#úrç/÷þûï·þyjŸÄöii_„¾úÿÂV¯¬óͳoíý“Ÿ/¬ùË»îý¥ÛŸô:Ôã¹7¹²ñb¼Ÿö~ø¿ö:rŸRö(hÝÁ¿½þò~Ÿ·ÿäò/ýŠ—Ÿ¬ýˆ3Ÿçúü³ß÷z×ç)Û¢ªó3–Ïý÷ûo.þ«:nO;"[f¿¢êþç§¿÷÷důlýÒZÚÿòÄï8¸-vŸ´÷Lï„õJ;¿…ñz?“÷÷»ÿúÿû¸+«o+û²ö¿»ÿ:úÿ­ÿßý¯Óô(m¿ôì÷Ÿûþ¹þ¯Ÿÿÿúï½ýÛÚ¯½ýûþï½ûÿú¯þûóº/*û¶¢o{þ»Ò¯¾½ÿÿìÿ¿Çöhퟆöä¿N÷èþ/¿þÿwï-ôËS/­õóÿo®ÿç»/Ïûñº+»K«o[ÿúø?Ÿ¿÷þüç/EöAmniÏ~ÿòô?ÏÿòúËÿËÝ‹Ý^Ú¯oÿÌÒ/Oó{~Ÿ÷÷z{ÿ¥õ[[¿µ÷[{¿÷ÿß{ϯÿß>/kû–6O®ÿÞÿŸîÿú¿þÿ~hŸÆöhì¿÷ÿþú¿÷þºÖÿ—þžÒ¿•üšò¿—þúöÿý÷üúÿïãkû–2O¯ÿÿïûû_¯ïûwIÆòií¯ïûÿÛ¿WÿºÖ¿¯ÿ—Ò¿ü›ú¿…ÿ»þÿí÷ïúßÏó²¶K(o>úôu¯îûémî­ïöi,ní/×ûþñ¯gþ¸öχ¿”ýÚ¯)ÿzú¾|ÛÑÿ>7#÷¯¡ôJI¿ãôJm¿ïýÌøï¯ù–¶/*¹”ûþÚßÜò²¶?ÿ¹uôd-ÇÂþóêïÿÿÿü¯¿÷Iȯ½µYýò¿åÿºúï¾ÿ¿²ojû²¶o;û×úïþû³ÞüÿHÏÔömln¾o›ýßþïøùOýZÓ¯½ýú߯ýÿúÙϼþ¾¸Okû²„o(¾íÿo&¾ÍäôghßVölLìýõÚßmý®„¯­ý’š¯­Šç÷²½ÿ 'Cô:$MA§vÁaÁŽsׄŽ2A¬õÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬ñáž3qaŒxsœ'Cü:$MÁ£ÁáãÁaÅâ8wMê(“¬ôÁðáž#qaŒxsœ'CȯC’Æ£‘âãÁ£sÑSøE‡R/t(õaÍ!oÔò„SÉò„SÉòÅ_„ò…WĮĮĸ2„7Å.„?Qô(„?ô(„?–¬”,_8•,O8•,_¬ñE)O(qEìjqAìjñA/CxSìBøEBøABøaÉúAÍ"_8Õ,ò„SÉòÕ_”ò„WÔ¾Ô®Ôø2Œ7Å/ÂøD¯B¸ô*„«aéúA¯£DEM!A&D@qAÌA…M#ñ„PIdB@DpAÌA…DA„#ñ„DD˜$A&D@DxAÜÔHRHai8O(TŠA„IR„&T‚ì5,hŒDˆÌŠ„.Ñ!È$¦Ä2&\ŒÁ& ž$F2œbA³8YC’”G"X)µ.(pD”ˆ-'ˆÀt1J²¥qˆ$B4²\JFDò„‡²FX!„¨µñÉÅ T„ ÄBˆ$ ˆG!'JŒB"ÑÔHBIRH‚¸Sa¤-H#,É,àax"„õ"Ž(BLÈ›„$)A8!-8)aX‰ "ÖÂB"ZB8†‘ˆG‚Œh¢\6…-ˆM'˜-H(ù2‚Í‚I¸ò$"¬1L"A‰ò(pV4(©…¡ä¡’(E$±(˜M))4<Є„Ò”rÑ–(ƒA©A:2A"GA*¡%˜äMT&ØHD&ØX¤¡‰X‰ÂC?äK”# À‰$‚p$È‚ A ŽaÀˆ¤Ñ"ˆ4()1„¨J˜#DȈÀA›&B0°ˆb„€ÁˆDà¥"ID(!¸$ ŠˆÑ˜?²JÁ1!¬Ng„3ò„(¡I82A/! Jׂ B$Œc(F!A3”Ö$â©´ˆâˆÑY¢ŒV"F˜8nƒ:ÕIÄ„“º1A$³!$’ŒÜDá„øŠ1G‚GBŒÔHv!lCñHŽX"ÉôL]@ …Ì€ˆ`ÊÀ@.,àÂ"XÂH% ,Rˆ"…„“DÀH…Äh(2€C"A¢A Hˆ(¢Xƒ8ÓBHÂ$„à‰…è( „'(AŒ´,xÁÈ$)”ˆ‚ÐQ‰*H‘à(a(pAÁÐDb(„(1H–BàJGh`˜ „¨AM$Bˆ"ðt,$l4DI!”KEvAF"†Â"N‚4† ”¨N#IÂ`dŽQ…a¢°Z‚ Á”+ƒ"?D¤$HMA"”¤,˜.N˜`+.A®œ!‰±"¢)…m'Ð’LeÈ%˜HD‡BĈR(€È" X¡€DDƒ:(JÈBBP8(r‚&$iQŠÑ$"ä&H$( ‚ƒ„¢`(’‚!äH„MH&4X†dA ¤J GÈ)DÔEÂA¤'É$"‚Eb$F1Šp!X.„)±!”G|˜#H ’Ž‚ÂBÀDB.L)hB%!‘¢8J(T(ŠÂ’Vµ$‘AH¬B4&ˆ«„)AèBÑè<~-HÌH!!!ðD"@†¤0dà’ ÁL”ˆ(ˆ?¤Xƒâ&ÁÄ€ ÐK¡,èA˜A†TâÝ‚Š‚q$È(d‡H‚tHq$È‚BQ‰"ˆ‡$ÿøB„ €œ(ˆ-Œ2AAG‚€$dˆƒ D¨(Lq‚$ˆ„I¤B.(€a¤Æ‚DF¡)(°„ *dD„"‚(†R†.éƒIRX©ÄB‰-ˆM’*XƬT((I†„òÌ"F؉‹B+<&$d‚AY2Á‚(âãä…Ø"ÓD‚ĉƒ14‚Ž$,J!qdXD‹B‡!"ƒF¢‘Œ)$òäŒ ƒ¤(I"4Q `°4’DMHˆƒN)”¤ bä`ˆ°A‚Öˆ„ÒbANƒ!B@1))Š"àˆˆh„(¤(DQÆ"HcË\—BEy(!d‘h‡()òˆ+BŠÔBÊ?Bá¨R…ðD(.$-ª.$O8ö.$̓!3ˆô„#'HÍRm„Ç(ˆO,¡‚†4F‚A\&Bg‚o¡U¨˜FO¡QH„È2DA•d-Hˆ´(ô)H›D/‚,†ˆ„ŒÁDðB“ "'„v‚%RI-„„)$ñ(-(Eè‚\„LÆ(BƒˆHˆáÄ8HÄ`ARŒ´XÈÉFˆÂ)@H¨$‚Œ²„ñAA‘„9ˆH¢‚¤h%\DàAâHFÑAáM’H ¤l6ohAHA"ð4Œ<$ˆc’ˆk"JxE„H`8C´˜(¡HŽB`HBq‚Ù"8)-%")è&h„G!D"‚ÑĘ-!Šw¡Hµˆ¢Bë"pA"Ä‘ ¥(5QHZ‘¨¯¯Kâbø(…*òL‚H2dƒ¸%¨(„ð(L†ÁT‘-,˜…2ˆœ‘ÃジFhBcHù¦Ä+I$ÌT,OˆW!ED*T!.„RgB2Ae1GRK‘DËhD‹CqH¼ÂZŽh,¡H£7ž!"!($ƒ(B@!ˆ!€!0A@,ˆ‚(F%D@D@DOê A$ˆ!”†F„!CÄ‚@B@)!FH'"  B@‚#‚D$)€D :å-DLò:&”JAA44¯HX$í†aM†k2]EúG˜Er"ØÅòB(×ÒO¹zfß–âãtŽIxˆÛ2ÔÞ‚vŠñB4(-†‡LͦŒñ,ˆ–‰ƒÖŒ¸3x\øˆÍ/±yéõqòœMÅhEODrTÍ=$GÄR·Ã‡‚ÇĉøjVøO”Ë•„¸HXŠ‹_Î/‚Zˆ¡Á!·‚)ñb(‘öƒÃJèGm(Åäˆõ"Hà†A.¢w"ÂNž¥äd8+%4òŒmC'ÁŠÔ‘D-L<òF(g$¯Èb$¦Z#æþ¢‚ Aø„!èa²ìDÄ1NdNN$ŠsH$L!õÄj=ã„oÔ”†6r’8"/Èö$/H¯*ޤ"ކ®¢©*ú‘K¤Œ'B›‰®ÆŽB«ÈÉê(È8•4„/L¸„Ò…;Ã;††T‚&Hx!DÎ>DÀRIHÃEMX(3K((/(3Ü—#ŸHôƒDÀIØHáGè‚´G¨5Ìø/4ÿæò.ZïâôJ—…­¿òô:®¿Çúi½í¶bø6†_òþÎ=ÏÚúÍßÇñL<ÏÆò-MÿÙóÿßÅú¬ÏØt˜rÓøŠûÏÓþœžÿåñîoïyó‡†/añ"ßåóO®ïñu;za˜(MM¯ªùÿä󞯳ý*’?¥ñŠ»ÏÒßüù_ß_åó”äSõÕ<ïíÿÍÿoõåLÿFöEMßjùf]ÏÄ÷Ì~ÏÖü8XŸ…ñÚ:ÏÆûDçÕñò~)הߓö©¿ßîúþ.ÿî÷¦ïï¹üšŠ_,ùªOo¸÷¿/gñË/ió‚¶o{üÏ´ß­ûŠ÷ïi9~“öKmÏèù–ÿgù×6ïñÿ˯¡ñÓB¯óõöïÁûyŸíó–6oaû¦WÿÍóY~¿±ßbý>HÍÍiŸØý~ÚŸÇýÜx¯åÿ^š¯…ýØX×ýôOÁJò>oï÷ö/ÿ´õY¯1ö^*ïâÿŽ{ÿëûÿ.ojû†2êû·êÿîùî?ïÿþ6LÏÄödŒïæû¦Þ¯ûÿ¿Ï¿çúŽÓ¯±ýÛËÿïù¾ïùÿοÿçñ¦¶o)û–¾ïùýïßÿïû믯‘tiøe,¿æòžß¯óüÿ¿åóžÓ¯¹ýÛ÷¯ÿû÷œýÿlû_oj³”ó–¾OÑýí\ßËÿÿoÕölM_Öö|-Oýý~ÌïCÿ^nï-ýZÊ‹ÑÏçôþÕƒ×â÷?d?cñ^Q=B¿¡ôs7ÿW÷ïÞÿxûæ¦o+û´¶/:ÿ´ç¯»ÿö–îøCEßÒòa$Þþçöïºþºïï/ûÛÛ¿œüšÃ¯éøÿÛÿ/÷4ß¡û´Okû”õOúÿ¼šïùýÌß•ö(i—ÆßÞõÅ}¯›ÿ<ÕïÉùÝI¿•ýÁ¯åùûSï¿÷Ž,ÏÃû¤„OKó„÷ï³®ÿÿ\Âñ]m‡ÆßÖôé\ßÍ÷ûþÏcéí½Þå‰ýHÂ/ý¾Voª'Cô:$MA£ÁaãÁaÁŽsׄŽ2A¬ôÁðáž#qaŒxsŒx2ÄÁ¯CÒ<>ì8wMè(ôÁ:A¬î9ƈ7Lj'Cü:$MÁ£ÁáãÁaÁŽsפŽ2A¬ôÁðáž#qaŒxsœ'CȯC’Ä£>|6¡E?ô8E?ô8E/öaoôq_8•8O8•8_¬ñA8_,ñaî†î„ør„7…~Å/ô8Å/ô8Å/öáoö˜qO8·ˆó„s‰óÅ:„óÅ2†ñá†nñaˆ?GøsˆWü2ÁRüÁRüáÍáoþˆcO8÷ˆ"O8·ˆòÅ:ŒòÅ2Žjqaø¡†ø2„?§ø"„/#ü*„+Á¯B¸ž®o!ÞgÂB8CäR!ÄR0Q„A‘„¢A(Á#á85A$8SäB1A*8A*8A†4(¤"„ÊÁ+!ŽS(ŽA$‚$Š2E¦4Aª8A.‚ôaˆ-A‹‚-A*Ú„Ú¸â("ˆ"˜"ŠfJð¡‘ãÈHL¢A!A°‚Æ?82H"À%,bEà„Á!ƒ$2H†dÞ$!BA!AM2èL‘+!A`œC®$BéH2Z‰AÁ‚‘’äSª!)"ÉGŒ'RÆ fE²äBÑ(h(ˆø3" ‰JâaB!fä!¸Aš" bDLCŠd…"Hƒ*vAô¢HB,C2TC¨ãÀ€h’8FêABI2+JŒP(Ž(QˆHO1"ˆ*áX”‰ìF¢ÄKà h„ñµ3Í…ÂD#a!Ì /ÑJI$Œr4cBŒoC©!R,AhBðˆß"!ÒBM2Î#ã:!„ÓÆ„fáˆa”&”H#a¡"MZ°L"éA‚”BË(N"BÜ"ñD(ƒ4´ƒ‹A&¤Á¿b ‚‰D¢A;B…Ñ, B¨B/HÁH„H"A‚HG"„Šˆ˜D„R°ˆ$Å!#'èB´"¡H…¢H‰ÄˆD)ŒØBÄ("H$B€aA( H©OÔÁ7¼ìl±Ht"A1^tLq‚¸$Œq$˜N"'‚&\H°RD!&2XƒA2Øð…%̪ÑDÅM†(ß$Ò‚½¡t4áäâ1HV"ÁëD'ƒMHì!èA‚¼ó†HK+‰ÄDK!“7`Άøïz$Ö$€è"Rˆ‚šBPHH&¤H6HRH‚(ÁLˆ "`(ÐÉF'Â,hD‚ È" („ D€ˆPHIô($p!ˆ1!ˆ Xˆ8B^³A$Á$"p$ˆÊA‰8‚ˆ)#h†¢Aà”ˆ(Í$‚0@”ˆÀ…‚t‚&!BˆL"ˆ‚ƒ4‚¨!B‚`(Ê1,‚$H ß$Ô!D(”RFa‚¯ $BHD©\A&!È‚.IB'܈Bê4â•rc”ªù#tHBW„Ž!¦)ÈD\rˆ‘H,“‚äx2K(IñA$,83+/R‚BD<„5ÒJq$‚ô˜‚À.©SDRC°HAŽ(‚BC!xDQF À‰B$ŒF 'B0"8DH•DB"ˆ€8Dˆ+%ˆ8DGH(Fâ(ƒ!"$#¤@¨H a#ϽRHÐ!¥™Ì!,,’‚)B‘â@3A"A(à”(ˆ‘"HâÈ"")¨$d‰$ÄA¨P8Eè†pâBÈ‚-$Ä2Ž#&A¬I=ˆHl⌘€ñ„þá Ä$@(Œ#¤I‚¨‡RŒÁ"‹$D,‚Ò´,hA`ØCá¤B.‚2D&Hx!¥!A`¨!fD#$ÈB8ˆ,jA „2bL8H"-d&J‹…òwK$€BP‚"D¡p¢ˆ*8„Ih&‰ŒB„(#&D ,‚D”(C€ba…ˆHŒb!D"DŒ (É‚AÁ$ƒ„ÂÁS˜ BCR(Àd‰‚Kˆ+‚ЄHh!VIøA(ÄÓâ,ˆÁDŒ”,J¤BEX‘¤aD&dˆ1ODR!˜¢HMš$„B4‹@hDA#!A%ˆD˜ˆ‡tÀ$pH`B@ìˆ3‚(DN(‘ "BC2D¢ˆ.$HÄ„Œ ã¡"…Ä(#ˆ#ˆB.Á""£¨"„%ÈXŒÈH "À(C("è"¨&à†ƒÖ(áB"´(h„ˆJ¢6SE¨RÌdŠÒ⑆Iب¦`b6Â"48 Q…!!Ø"ä)A¯HAÂ2G4$Oƒ¶4&ƒ‘C.-D°ŠD&HhHBT"†$KH"RFŒTJ*¢A!B/ýFš&°+/EÀ‚d%D‚¼ˆA(Fˆ„(„%¤… Ñ‚)ÅLh#¤$Q0)sš&'ÁHBNXEimD>HI1"ADl(Q$À$‰hAX$`DBìB"$ÔT<”#…q"‚Bt‚B"È‚‚O!z‘ĈF„B!ÐB‘‘-L©‚Œ"¤!E¸‚áADø¤D†ÈF”„,ˆ‹!A±T‚“DXM!,ñ(-G!FF,¤˜‹“$È$)%"RŒ'!&x"¤#æAa„:´8„¡€2‚‹Ï(¤$F¢>‚"tLx4"RBB)A$ZB"8Š,%¤òa€ØH¡X!‰XBIÄ$E"ø„„GA G¾…LH„¡+!0BB€¨„BH]‚0@bBFAH!D!ÄJ@ˆ  €¨‚ˆ/ƒ b$!†DH$( @2B„AAH€HF¡(B `C‘(H‚ŠAȼ1lI6×ä(Ó’Ä¥a!¯ò‚CCÁ*CÉ‚%¡ZA.Œ„-„J™Œµ"‘X+ˆ‘&­‹XWhOAca?Åq•–ÑDl„6ä„éB­T=SÉá¹XñBRSä-òÔ4^Îáä²²±ƒ1AfÜ”ù"oCÑB±œr$«‘ƒñ3P$$ÁA¨‡J!ãR¡I`A¥¤A‰¡á‰Š„’HOˆ¢!ŠaLh&/"¡o"ôJ‚ô"„¯CŒ²ÓHRA(-¥òŠBŽ-C't/„qDóöšE(&$"¢‰œb‰Ü$ÆD`ˆBŒAb$DÎQó\"‰äb¡AÏ"‘D¬W–MA-R#Ø¢»–²‚9Âk›ÂDN&Hææx2ÒA|3–É£‘Å!Þ)!1‰s†(˜$†!dÓODdlì”ÔDtEq4´$x<¤‚‰‚ˆÌrM…r„<GICùD&|/†D¤NHKƒ/B‘„‰‘ALŸ(ßMóxo$³WøôZïVò;ÿ)ý3÷o!÷—’o!ñqý¯±öõOUñ8OÊÄdODøšoëõ’útóv¿:ñ˜Øñ|5ïyó–Ü_Óÿfwao)øeæ¿¡öOIõÉQOÆôEeODüÏF_îõÆ®}7·2¯.õÚš/!ñ~6ßyñÖÌOæþ2_Aó’’oçÿ_-oDò—E¯MqäÌ(I|Ï÷æ/ÌÚdçCô˜/è!±8÷œ’ÜâÕ³ó.6_¤ñKr=/òóX:o-õ3V?-ñ²o)û²–¿=ý†¾É»ÝíCô$ˆ,Ï&ý²^oãõ¯ÿ)sÞ³Så‘ù±6¿móßV/óõWž/aû’4/SñZÏm¿Iö¼Å_ÇôdM„öh×oŸõroõÿ—vï=ñS?µýóvï]÷ßto‡ååù¶Oéñ6WÿaùV»?©÷®’gÃGÆODö(—_ËñvOåûœrÏ(•O¤íj÷œvÇ=$¯WñjW¯±÷W/ñRS?aô{·owû‡2ïñ¢¶oiûŲÿ/ùýÞOÛÿ¤|çEÏÆô¤ÌoãþV–¿ñþvÿ¹ÿVš—õ›Ìowû·ïèó·žObû¶móö—Ïçù=]~¼UtlüeÍçûV×ÿ[õ¾~¿Ýÿš¿ôÛ[ÿýüvöÏeÿÞ~ù$¶K³OH÷¿×ÏçýwOçÿD‡ÆÏÆøtþ_qý¾VïO÷ܾkѯ)õšXÏ­ø6“Þóú~¿”÷S¿5ñR¿‡õ;_/5»Dþ²OBè+û†¢oiûï×ïËý¥Ì^,ÏFö(LOÂ÷H¬ï_sýôÞÙüÚ“üøÓ/âü_»ÿdþ–2OKù6¶oqûž6ßOù6Ý_Ë÷-›f‡Òö÷¼¿÷½TïmùÙ¿-µÈôúÓ?†ü~þÏ!û”4ojø´M¥_i÷¾“ÿçùæ>ïÅö,dGÆn<Ïõÿ½t¯Kõžž/…ýÚX«Y¯oùfÍ/'Cô:$MA£ÁaãÁaIè8÷MˆŽ2A¬ôÁðáž#qaŒxóŒx²äüº%O|šá>žNaÁ/BÉÁBab(ƒÃbH¢Bƒ£1( D`ˆDDPHH€‡A`A,dh(ŽAU(J¢PJ´|$4H~E‡„/”TˆJæÜA‚¢H$„ô‰dHËdÌôlhLô(f¤a&ŒJD´tô,çÀf¤„AJs"”¤'Â-DG"Ao#ô%&Ð!’*’2Ј"D2!€S!+$ˆ& 2B.„Aƒs(T„F‡¤B€1(B¸¦!a¨iH+B( a"H.]J¤RLB‰6Hȃ RZ"Q)!Q!5t,’ER$1E׆b”C"ÒBs6hK"!\ˆB•6Eµ(´dB$ÒÁL´DÒÉ´eÂLCWÂIB´‚˜"CcdMIÂVA4G‚„G$&QºH¨!„˺$ÃÂ#A$@Kx$(²±4ÔJ1$0,†ô$B.SÚBÐÂ"Ê$#Á$qBÆD!*ôˆ$AdA®1Ǩ‰rDÙ¨G¢GH&8H"D&d&8MIƒñ‰‰\„…t„ …4D€Âà(=´€H€! $ ¤„ˆH€ ‚‚BJˆI%ˆ‚(*€˜‚ˆw®  ¦ R‚DH€ìA„#,LB€ˆˆ "Hb (¨$(D(ˆ(€ˆ("(‰"ˆ‚‚ ÂksÔâ—'!ñR»Q¿#7c2-U6$o²4qGÿT/2²tÑ’º±$ò$ƒ~!Oâ:-A¤Á&µšaROF¢(®$În$D&Té(,ÌZÈ%…d+Aˆ.Åed‹Åò,AfƒR¤FÃ.ßÂâ‚ò-,Œþ8%…ö,¤(Áƒ1‡‚jò‡*À&yT\E¼b(õ$"°ò1#"ñ"DÃñ#$I"|(ö„bGÌA+Šr"üb$'FÌ:dƒåAò(ÅEBÄ$HÄF&òˆD‡(Ï‚DòAL,ñ(Xè´f´8"M„'AeôF‰OQøB‰`…KFÈD…ªH8‹L0dà„á¨21àb´$òB"E/Bø‚R‰r %¤#'B%,eÄ#dD¤„äRØ.<(ÉXX+D(Ç$(DAE¨2Š¥âM´5´,´1¼mô2aËÅM‰‹$/iÏûˆ&÷­?ö˜jòë.ÿOö;oÏæù$„GjgcÿVý,˜Hô½ýÏÕöLèÏÆöeÿÏßö~mOEýî,Sü[I„ýêLßËôÿMo÷ôežK‚GjOCõm×ÏF¼ŒöŸñï¶LöMaŸtÿÏi¿Åö^ø¯Ì¶ÜôXHÏ„}èü¼HWCò{7ïçõ;~o5ñ[¯¥÷kogûO³ïjó÷.Okò2_góV3Ïç÷?Oãÿ%ÏÆö,ìoÂÿo¿ßÏòýeïÛþOš—Ÿö¾ýÿfûm¾ßkó·¨oc»$ûõ4ßÏúm½ÏÒ÷h­Çöm-ÏÖüh¯_æýûnßûöúÿߤýÛZŸ¹öþëßæÿmúÏë÷ÿ¬oc»&ûç>ÿþÿÏö÷n­ÿÇöm,ßÖþm½ßöÿþlÏköüìÍØµ˜öüìÏf$ÞRó6ïW÷Z¿•ñ[¯ÕÁö~Ÿ¿$ÿ4¾o"û&oqóÿg÷6ã÷r-ŸFö$lOâöb¿ÿÎóù,ŸßÿÛ»—ŸŸþ<ÿÿ¶ûlÿoŠò²¶OBû$´OJòý¹OÓÿ¬mßGöemÖä”÷mÞŸ¬÷ýnߟþZÓŸ¨ôÙB_ÿ:ó_fÿmÿïÎò¶²OBû&ôïÏöÿ¿ÏöÿìmŸÇömmÖöi.Ïâÿè~ÏÏööôËÕŒtØø¸üχÿAVp2ÄA¯CÒ4vÁaÅá8wMè(ôÃ:A¬ñáž#qaŒxsŒx2äü:&O<NáãáìD/äÂ…4;Aƒ±2(K$Ƥ!Iâ…“&èQv(DÔA¤O‚ÔJô8T0JŒô˜4‰òç "@€‚€D@E‚€B‡‚"B\7>)$NAhÀA`*À$0`2(NA(È'( ¢IL(0H$h" (#Ä$‚ X 2C4"B`c±¦!|"¡<‚ƒòˆ‰$’clBu²tHሤ$†2)ˆäE˜4¨à<‚õ)4€„tkÈ(#É!%„%ˆ!hAˆŒ2‚ˆ$IØ)¡‡"*òA$„;¡+>ÂH)´6\2™0D@08*@¨ â‚$#T(C’"I€4("€DHˆ"H( R‚@(""…"i"BBô¼€F‚Ô$ab1"0ƒ*$ÈÉFƒäTÊ hˆ%á"È‚"’‰˜Ãi"ÁAB(<´(ÈR$ʈ0ˆ.„+HL1ƒ(#ˆ’Eˆà1ÊB$ƒD¢,‰áÌ;—ÈŠ‘%#AQ’f<‚*qd¦$$mb%Äh& ‰ˆ—„(ˆF¹ˆaH²Ò%„’*8XÛ†D"âDÄ)ÖH‰!(ò($”4 ÒLÂt„D""‚&4BN¤!+Ap˜tIñÊ$(Œ$„BÀ‰8IˆB!RHI$"‰’„P¡¤8@(‰‘†bÄ€ˆÂE"l C’B)!"„2Kˆ`Dˆ„CBƒ€è‚ Xà‚:S-(F5P(m$BMÈ:éB˜¢oÔ„Ò$6\’(ƒt¤„©(K!GŽH€ÑHÊdÉŒSB&tqب#ªA(t-LÏND;H,h…¡Ä´DDBK„'ˆLÖD‚´((äb(bbÆ•ˆKBC ‚E!ÆBÈ!‘„ HL‚D*Ä‚“e#A*€ä„LRL‚tRŒˆˆ h!(E ¢A„0H"(€$ƒ$ä³!‚d!‰FrR(˜„ŠòŒ¢‡BèB’A.LH@Ø„T‚8‚`J"H"Dႉ$A¡D'„H3µB1Í)‘$# X"D$6nb…B2(Hð, $A@A¡)« „`Ñ((À‰„„¬¢$M"CR%à¦È$E„XA*IDABq2rF8/„jN@‚¸!³„"‰¤$R DHè…3Åd$…¢-"V„((˜¤Ë”ˆB…j„À˜i…Øh)ˆ£$8¤AV‚R¤(E’AJÄHŠôHIH'D$¢‚%”ˆ<(ŒD!RM8 %,dŠJ X‹ƒ8Ãñ_nШa"b!'FbAD>Œ,¤‚I,¥(„È'CŒ!`-H.$-HÀA„Ð(åˆBáB…1ŽE‰qM"!¢D‡A‘E4X`ˆ„€Aô¢þS -HLÁ€‚`F!„È!‚‚ä…€¨Á!  0„Adƒ „‰HˆðOWƒ¤ "‚IŒ@ÂÂB ‚ˆ!ˆ „H„ $¨$&L˜ˆ „€ †$@1?H§‚\ѳE¹Å9JÚ¨†¢8CñD8¡—B“Ô‰aDàÄñC‚ø2„'ÃX-Ù”²‚QˆòÔ"b,ñ‹BJd„ŸBôH‘Ü”R³’Á;AøCËا†’±B²–±a5"^Ìh“N‘4¬t(‚I’(‘¨«ßWC]8N‡„ÂF¬:áQ¨Xˆ†ÈÅ/*‰¸„ׄbˆ(‘Bè$1TV8AXŒáLqk´*ˆ"TBL¼*Œ‘6œ" Ǥš"X„M(#áL¡A‹ŽÔZä"¨àBñÄ‹Á‰´H<‹X‚(O„–(dEe³D­A%JFÞ"Ä#%ò‚1KHQ’„8‰O„)'D‚D¸èRHQ˜˜©’Ä+a)ŠÕ$²U±„Ñ2GbŽDF("wX¤Ñ.ˆg"¥²HQ‹‰ôL(G‹$C¸C¢!K–\ÂfAd"N&ÄÄ…‚ïA„(ÁbŸ¹Gòzï$ó~¯añZ´ñt7O¡ñ‹Ñ>üÏ!÷…Šo!øcßê¡ÿD‰>ŸÂôlO”ø›ëô™èÏ%òT§Û©½Zñd5O©²ü!ßë1]8Ž’/Ö݇·÷”K—mŸæ´Ò|»ÿ¸F¯ûckA/ªôÈË^{çöÕKÏý#ÿ‹1}2K‰?âþY8]-OIuëdüC!MÄ¿;ñä/¬ÚDö.F‹Þ˜÷:tï2g-^3í?O5ñXZ÷¡¯sóR3ïö&WŸ­¡±O)û¢—«ýÿ)ûž±ËÝŸÃ4)!ÏÆýº^ŸÂõ»ÏšóÞ«TŸ‘ø¢7Þ3ÏŒõ#TŸ…»ú–OSñYè¿û—sÏ«ý2LŸÒôHiß”ýû^^/•û¯wß¹õb¿$ýû^ï=÷Ï8v÷[˜O!ú–>W¯ùT½_M÷œ“7CGÖlÍ—7ÏGç/Äú„rëY‹O…ékõœvOBóz/ö÷boµñR¿5õD¯÷ûD²ß¸rçü¢¦OHòÔ©Ç<Þü©d_ËwVñeDJü#åïxâõòM{èß5xÂóÈKhür¥Ovú—"_èø2¤k£o,òÌ?Fù+L_WþVInEŸVþväÿþ³EnôË»ýÃ?ŒõŠK¿žý:îÿõÿÜxÿ¯éCû6¶[9Ïýlœÿ÷ódüÿQôhL_ÖêÇû×JôînÏúÒ‹Yõú˜Oc!ÓÓúv¿¤Õ7ô['µ/'õ#O¿wúEúë¡ob©«K¸ÏÛûöÄŸÊü¡ÅŸòdeŸÂô!d_”ûæ7o^ñËâ½ÛÎÖûé¿ÓýK»Ï¤ÿ¼*OjÙBÛú¦#O~ø3Ì¿j÷AaÏÆöeMFå”þçWßJôŠªo$ýšK¯-ñ›ß¿fø*ûÿ…ÿÌ>oKɲoÿ”tßKýtŸÏáÕö-$ÇÖ_Æõ\ïÿKö¬Fë˜^Ú¯´ˆô˜†nͯ('Cô:$MA£Ñ6aÉøˆsß„é(ôÁ:M¬ÁîyxaŒxó¬'KNÁ¯KòTÁ#ùHácéüÈsׄŽ2A¬ôÁRðá–#qaŒxsìx2åü:%MÁ¥á>V<ŽsפŽ2EòÁ:Q¬Q!î9ƈ7Ç9x2”¯C’Æ£>L5ç-E/Sô(E/ô(E/‘ÖöaÏ8ö„sÏ(ò„sÍ"_¬óE(_,seüáÆnñaŒ?GøsŒ?Vü2ůRüÁ¯Rüñíáo‘þŽcO8÷Œ"O8÷Œ"_¬óÅ*ß-såþ©ÆjñaŒ/CøsŒ/Bü:ÅBüÁBøáÉúáË(O8·Œò„sË(_¬óÅ(O¬såìîqaìîña/ÇøsŒn̯Cü(Ä«ÁB¼žìï!þ)ñ°A’›$I2E&4A.„3äB9KÆÑô(-A.‚8EމAò(¡*Ò„2–à!’$ÁAbR„„8C’U–(!A)R(Cã„1&-.$*A%A&”ˆ-xA8N@˜Bl´b‚LA¦!‰bEfñD,‡FÔx…BèEƒÄH-(ôí0‚‰DÄA(ùD€AAkRHAƒ(„2(/VÈpBHA&‚¡„(ÉQ(Cb„"@ÄrE!b!!MB‰JC"Bè!ŒB¢CÐHÁB8$<2b"CQÆP(„'ƒqTt"4‚+!E¤QPH„Ób‚à¡â#‘$]'¤ q!sTJÜBqBØB¢Q)IÌ$¡iVHð¤T/‚…ÑA"ÌbD?†¤!/‘2(àEÒ²(²b’CäôBQ„KŒ4(Cý[`„0Q Œ‚1¬æB$‚THH&&„Aˆˆ(A(A(I$„$&„48$€d"A(A0¤B`D@-( ‚uH„Š.¬£$AˆD€$R€d(D‚L"E@‘„‚ˆ¦f„(…´ÑH2`‹¤# ÂA’@(L"*ßU3DÄBBLÁ!,±*‘‚"-”Óˆ˜Vø "N!(DÂx+Á"F²‚uB(R(z8"",¡²¬Öd%ƒh–C.ˆk%+')„…t‚È‚°2Dâ&›A8å¡¢(`"3)r´‚t‚$!£»ãÚ¯r¢²6òcçoŠ÷¯èß/ú³".m¿Ò¶dò3:>g“ögºß.x’øA›´Ÿfú¶(¯9þ)ìËrªª£Öÿ®{O’þÕŠ#û¨U¯öe¨/Šãûö¢Ë$qotšü’Ë›4ÿçò”žÙ/òÿqý"o)ùaÝÏ‘×T÷•T¯)ñäM?VöEÅ‹ÿõÒ¾OEó\T¯-õÚÚZõ~vÏí;ì-g¯"ó/+Ç¥Ÿ¥Ô¾ñ+'~"ß·ö¼ì›¾O*û&">7?.ÿ*»í¡ïuÿd)•øl­l?Ñ–8ÏÈúׂŸµÖ¦qª|ÿúýH_Óõè:)ù¤‚okøëù‹˜Éú_×Óô(Œ‚òm÷Ûö:o/ƒû„"W­Ÿ5ÔŠi꿬óßyÏsôK˜O!»†ac¿4ÿ®oÈ÷½Ç/×ôDH^mßtýó\O§õBüO/·Îå$õRØþv¯Mö8”4¿GósF#öG?5ñZb?aöc¶_,»¿ûת®4M4k¶_Ýúáô®õ®çïòddŸRær÷n1Góqí/3þÅ?%ñ[ã/;þá¶[¶[:ÿïò¢¶o*ó÷²_Oòã߯ZïZ6_VæÒìòþe’OŸÝö¼é_„ùÑ¿ôºßŸGû_ºÏ‰ó¿š.´oc»Õóß–ÿ÷ù6_~­EömM_ÖîÆúW×ÏOõ¾^ÏÿÚ‹]¯©õØÜgsC×ór~÷Zy/1uJqYøRQ¯ó÷êï¼ÿ„†oK«M2Ï™øÿwËÿ©L‡òmLRô!lÿ¦seöw&¿7õžÙ·¤7…ýÿºý?vûfóoƒú¶/Iû¤²o*úßýûíZôU(_Vô,Muû–lsßôùó¯1=Ë·­Ÿü8ÝŸçû_ñÏèó¶”û²k:ß_ù,ßoÛöMl×F‡Ò_öõOüÏOöøVï-þ˜‹M‡,«Û>Žž'Cô:$MA§acÁaÅòˆsW¤Ž2A,ôÁðá–3qaŒxs̈'C-Á¯CÒ<>–Œ8÷MˆŽ2EòÁ:A¬Aøáž#qaŒxóœ‚'KnÁ¯KòDÁ£é>žNaÅâü:L-Ä?Qô8D?ô8D/¶öAÏ!÷…SÍ2O8•<_¬ñE9Ï,ñEîÄnñA/GxSýrÅ/Ñô:Å/1ô:Å/öáo‘ôžsO8õŒ2O8Õ,óÅ_¤óÅ_æñáÆnñAŒ¿GøSŒWüÅSüÁSüáÏþáÏ÷„sË8O8·ŒóÇ:_ŒóÇ:_Îñ£ÆêñaŒ/Ãøs>Œ¯cü(„«ÁBøâÉúãd BI1HI3D.BL!E$uAüA…´D´kÁ#ñ„R!I5AI1AI3O.³Ä”“ņuAîTÈAìòA¬úÁ'O8Eø„Q„O(ñA(O(3E®äj8A.„„ÆÈABÈA‹¢”¨¸â(‘(‚(‚Œ¢(EhJ„®aÃ…¤A™™¤!B(M€"ÙøD1aTFQ$fEhBá)T!+)™R‚YˆfiC£H%d’F$bHvbA«(Ñ1èÒ$ÔAIÁ#M(ñ$D”Ì$BjA4˜'B€<Èrh‹‹„ÄAŒ‚3F‚´¡Q„ZRpHT„"„èBÁB !'‰Ð„B²C$*!Ì(`Dˆ.4HD´J˜Â㆔M.H°$H„‘dX$ƒ‚ˆ„ÙÒ‘9ü¬Iä1B‹T-¬…¡$IÁ"Œa"EÄ8‹$À(å!ÁJ#rÈ(M¢ IUI*´TÄ"RH‚ò‚Ð$)x8Mq‰b!M„8*Ô‚q$Áä‚M($ÑHâ´BA8RŒVH¯òBQB`A!P6”,$ÉIbA,Œ,D@¬%3µˆ‰¢A•d!&¬Ihá&ˆ#Q‚8 (Ì"‘""ƒäFCDHaAN¦¡ŒAÌBH(àT2%$P†KQ$'"ÇO!RXŽEf!g‚2¤Ì˜$D"cBØ1"‡$‘ãl!S„i"OŘ.XGâ>HEH8HzB+)2(qÅT"2+ÒŒÑ4Á|ŒWÁB‡T„„¦!ž%4B/¤QM(ßVGaK@ƒ4¬!(€„`X‡A„8 "(ÃaBA@Á°(.$ˆ'C@ ƒ„1(„"( 'CM‚…‡„$ƒ„Ø¡9"ˆBL"'@MA€B(†€¤°AÁ$$ ŒÒ”ˆ@D†‚D†À$!@q(1HAˆŽ`bJd+%Bhˆ"BL¢A`¿[Mò"‹aEÈ©ÑFÒi¶„á2‚Ž,)ñ†aJñéÌL.ˆRHfä‚ašˆÈ!bŸ!‚õˆbÎ"8°ÂQ†ŽS†ánu!4E3î"ô"DVxrì$ˆÄáhÖ’Œ)S$;&HΆ„©„+4k!,<G+È)‘j–ÒR8¬A²'$‘AˆS"’D‰1Ê8 („(1D&±ˆ‘Jˆ‰&1¢‰TB(Ôa‹BGB¤HB$KB!°‚”‚KA%²$a&(b„°:xd(ÁƒDòz‡@"7D,‘Aðb!ˆA„H’‚B‹‚,”¡KA…1Dƒr„ÁhCô¸ÂN."ð‚Á"˜"!Ä”$/›E(Qh!Þ!AŽcHá$<ä”,+ˆDbB†ƒ,§AJB#èƒÄBޤ)!d)N¨)á6Ô„‚± 4FU‚G(L‘$•bHrXAD 1L†¸D˜À$#Ì!K$hÍIR)ICøA%„Iâ’Á&ñDH¤‰Á)GˆöA86A²&X”ðThp(,2!V„™XA‚¡"o¿ "“”Á(°‚AT0(‰”$ AD"X(@$QH*ˆ’‡²d‚FhB4q°HA$©‚¦!Œƒ”$„ALBÈBBbB2Ýp$‘)ÁHDF‘LK1AAÑ9AÅ(€‚4‚&‘œ•HŒÁ"IôE˜ ¢)(-(„Á5fxi”IMD‘(/eˆRºA4iÏ$8I£(¦!_„xAÂTŒF˜dh!/B ÁId(JQ($Ï ‚(L4,!Bu((?‚–¢IVH(ŠC„0H"$Cr‚4DA…B(&>"It „$Áa„@(!$B1(B^ˆ$à$ÄZ„*±AÁRƒá‘ÔAÂ"P"&2(•b6\àBh`‘ÀH‚ƒˆ$é‚e"ÎDf”HFÜR¤B/TH)DÁRFh8H‚„AŠFHdB BœB"HX?ö B($ÅBÔ£Xˆf$%„䆑$A‚Š,1„"‹ÂˆÀ̰JD ‚Œ"Hx†²ƒöBB$(âq(”IÒ(Á1BCDb¥À¥“V‚‰ÔBT2l-m*…I5@i(FD…(A”B€‘( !ÉòA€’$…ˆ1(€‘˜@ŒÈ2Jq(KM"JS!b¤" H#‹0È+!𺙅ÒÖ“!F2ˆ!C$E’ˆhG¤•Ð!r,QŠ!DåBAñ8AP„†¢DÁNQ‚‘!€èbô˜X”©¡’D ˆ”()KQ‚†èA!(aŽqc@€„‚HRc! „ˆHHÈ0‚†($@(˜‚€!Š ‚$ „ˆH€JMBƒ"D¤‚@HH 4øÆ $!%ˆCÅ"B„…H@A(("€9M„>A'“¥S!/‘”"+A;A«AK!a0HŒ(äxBá”ñ(!‡SAC±Î(gOVŒ`„Ý8"qH|)´H8(DhENTƒÒ"Ñ:ñâm/¥ž^S…øDF’8$SDad'…ˆ(%QB‡A)”Èà²CTˆcåGA|ȧ…èaI#"b"GÈ#åÔ„²2„8“„“1…#”.Á2.TDˆH‰"õÂ!F!d”„b({K&²tH¨AF†¥”B‘ð"”‹"M!‰’BHñtÔh%†"!,aã>‹ST¥ÈrI,SOˆ²„&ˆqDRÁ?ç!)&²A¡‰äÜHØ‚­ƒÈËŽ1‹ŽIt„ª()#t•4‘FHlÄ‚±"yx(L˜ˆ¡Šò„cˆ‚%¸„㉱AqÔ¨H&dBB/’x"¨ƒB¤Á+‹#¡ÁÛo$Ÿ#÷V:oµñ¿¡ôZ:ïöò:_©ý)öo(·²áVörmrO´ñ:Ÿjô:d_x³ýº\šþ]8ÛêñˆÁ?¥ñy<ç)˜ü8õï!õ†‚×Íiï±÷ŸJ§ínO¯×òEȯñèW/›'ÛR/¨ôØÑ?¥÷dk]/íÓÿ3_!³–ùaçµó$-Jõ¸6Gþ?Tò%ÅŸ¹óö/Ïû46ëB£øÈˆrC÷¾õ“ÛcÕ³ó>?ï”á$Õ3ñ:¯µóÞX¿Óô[+¹MgS;D}2ò^Z¿ÃT™!_4ý©^ñõºoËóÍ?Öˆù¸,ߌòÅkïóôR˜ºÄãCñQãïúœx_;ü:E„”hßöý¨]/vá¥þ„fÿ©Ô3õZʯîµÃ÷Õag÷¥¸úÔ/Cõ›Oçûôfßùr-G†.mßrùã4o„áçþ„tËY+1o¥éKõ¾$Þg4¯Wñz_?!÷V/µñZ[¿côr¿oVúŽ"_Æù¢&k"K$Ggô)t_bþ^!OFô!åOÂÿE«¿nñãG/¾O8Áõ‚ËŸÆúOªï¸ò­Œ/cÚD¾ÅòÏ‚?wéRôfïÿ…ömMÖüh÷ߤü¡DŸÚöÊ©ýÂ;L¿8ä~ü#ä_%ÿÔrù2¶Ocû‡r{ûßöûl/Oöû7DßÖöe~¼ßsÿ¾vïË÷ʪMÊ«I¯õú¸O2--o÷ñ[bÿ‘uSñX¿…õ1U¿5úDú‰{4Öbó3OQòdU?Ãô9M?”òdERô!D^¡÷îwOŸ¼þÛ-¿¬ñãÅòük´ßµÿž2oKé"û¢oJòýŸ/òýº5„vmíÖôh-…ÿïvÿkõÛ“o4ü‹Z7­?8ýr…bÿ]ûïÈó¶–,û²ÏI÷¿÷o×úæM¿Çö-$ÖòenO÷ÿ½T¯K¶ÞøVÚ,µšõš–/÷þܺp2ÄA¯CÒ46üˆsW„Ž"IñÁ(IñÁî9ƈ7Ç'CNÁ¯BòVÁ!Náãáìì9T=E/Sô(E/ô(E/ÖöaÏ8ö„sÏ(ò„sÉòÅ:_„òÅ2WÆŸnqaüáÆør„?çøbÅ/Sü*Å/‘ü*Å/±ßþãï8ö†sÏ(ò„sÏ(òÅ:_¬òÇ2Wî?kqaü¡Æø3„?Çø)ůSý(ůý(…/‘ßúáÏ8ò„sÏ(ò„sÏ(òÅ:_¬òÅ:WîïqaüáÆørŒ?×øb̯Cü*īѯB¼žîëá¯^H±A´A’$SdBäB8A.†taÜô(-A.4mA¸mÁ+!O(¥!KH;%C¸A²„2E¦4I®„äB8AÆÉAbÉA.´MA¨m+!O8ñ(G…r„òA(K(Q¦4®†1.„·„ÆØô(„-A‰Ø”ˆ-Á£á(è(tHh(Fè(rDhjFèè:舔fh4*TH",$"Q…CÏ(SÑ"$TH²HaCB‰ATO¶G!ˆIÁ(ab“QA„pht¸dÔƒA8'˜BsHƒB†Ñ4â‚U4BE+@‘F˜‚%¸HÔÑânbF¬,ÄL;"#bAE±TrˆèR!hD…a†JÒAa„/Ô‚Ñ<Ä!0”D«b”Ø„F$1aǤ\ÁЂQ‹Vb…ä"BrÈD)Ñ(„$$H¬HäR:„‡a($@BÜ!ÃŒ7‚¤ fÓ!¤OQB¨BU®"P$\H®‡F3…hAD(6tB!F…Â)BGáá2‡$|â„ ²$t˜T„(„Ĭ2NLƒ¨ÂX‚ŒË`hU¨H,Á(’&,H¹&Q((…A$„Іq"!Y)UÂ"A’ÄÌAh#D(2D‹ƒD"bA)è„ÑÂ$,2F8iBbC±(¤„CHˆä$ÒÑ<í,ÑÁÒ„!,R(“ñk$Iø2”%Ú*QAÅd"1(M2<"¸’Ñ)u¨"3XxS’„K!K-…‘b‡RŒ†DlC™¢QÚ¡!Òr%8D##‚ô$LŒt86ÌA.HŠâ‡¡(Šdˆ‹T‰jñHBoþ#„,1"áŠ.P*LB1hÀ,`ADA(aD AN(ID4B t*Œ$ÄG„0"€ D„TÈI12`…èB."(#G/!¨ÀÉ!h(,DDbBB$RHˆ)4ˆŒâz‚@hI2@A ¤„œXFJh(DˆÁD$`!°nF5E€qX8Q2š¼´!¸$XBEñ"I¸2âÁT´!b,Ûˆñ‚N‹HÊb8Ç2øa2(I!bkƒ&˜D(„ºFØ$±¡dªB+.œ®=¸da+¢)\È0*À!B38.BbÆržhŒ¤¦äa‰$’EŠ4(r„¼ÒH†Ä"L9‚)U,bAŒaÂè„H—(!b‡*‚N(ÄŒ*H¸CŒah)2ˆQ#9L*D±Ã"Å‚ƒEb…LCqD€”‡)‘Í+K‚)‚A9ª„.Є4!d*‚Bt˜¢È3‚Ü„1"’¨Ðƒ6Õ-$¨Bb'L…3$æT!žH)²Íxa2'BІ2B†!f(ˆÑ¥šB‡()ˆÚ¤6l@4I„B1(ÜQ"Ž&‚LEÈDˆEY‚Ä„L‘B˜$1H†¨1ä$EDD¡JØ„BdHÐHâ‚)È"E‚ƒÁ#äB)I†a‚ƒ‚h‘"Lbˆ‰±ƒâá‚!D(¸ØÅ$R¡‡!@T¨D/H •$‚4.’E¬ˆD($LÁ$À„hDI"0$Œ18$€"!8@#„I!€DBŽ8Àf3 KBÁ„ƒøT…ø„°„4HQƒ&rD$Ä‚ÑDÔH‚’&FDDXB!,1LI˜!"FxHäNÁ¨'B(‰ô„!2BŠ$ LHHª)ÁÈ¡Ç!ˆ2KŒ4˜ˆƒ¢BQ@ÑAD²Ä"P„("!®IC”(ˆ§A A<¸ƒ0˜6$àÂ@@¡ˆÈ¡LŒ"¡"#ˆ°(!0"ðH„$ˆ\>"$N4ZbÒ‰‚(R*øˆ¯†•EX„Œ(ñ&(¿)òHÈá&Câ"ã$„!X(0&ÏBÙ’ø,NgAB‰1HCÒ†øÔÞ`$ÉS¡ u$8eN8”9ÄAŠ'HÏZø–Ñ+GˆTŠÔ^D.+ÎŽ$”ŠúQ„ë$q&¤HÔE’(=D-v(üBO‚D¡O(q)Z´aRÂJÓA‚¢ƒM,ÙšË}˜,¢SÒÆ2d¢¡ƒ|Øè‚äÕ63=’D­hƒ±"%ñ:‡±*û4$GC:£‡…h¤_ErJØÒ„{ÁÑ„Â4ß‚“H)Õ‚ñ+x„+"ErhA 3‡1Í‹1f´Bb‚E=LI‚ù4¨Mȹº+ KÍ6(OIdIG’DRˆFæR˜ð,!Kƒ‹ÆMˆc4+Õ:âœOãó7{WD…úK»Û5Obèñ÷:ñoó$¨>2?ÝÒö<Ù>ò‘ŸöEÖú·Ÿ8ÿ¥fo^±xÑ9òR¯òy(ž3ß(ÿ6ÝïJ÷%8Eöwim\Ÿ’wdúOÒô=MFú‡®¾÷§ÖÇG9Ï)ýK!džß9ò´Ãíñí4ƒâhûgñmh_’äèô_èr1ñ$¬¿«q¥úìòm‹WÞb,ÜŠòTt5ÓÜ÷<8¯ârEúAI…ø"6Ÿçóõ÷ÏÛþå”k3/kû´¤ßßÿ¾¤¯±úxûÿÑö-)ý)ß^ÿŸÏßÛÿ<8áóTŸ•åñ£»ÏnùýOËbŸÄò¶´/#ãQó}tïÑó;>~wïAö-)›"ÏÖýŽzÛs_ƒú>ϽñAX‘ù»:ÿóåvßÂõ}Œk“'oOSñyì­…¿hõ˜›¯“ÒXò-,Íï{ÒÌõtÔïîöÌZ…õXد/÷Ü~Ï[fòaC.cstKòAk<·súǨ¯*ê®»¢ú†¤?/úÁªû߯˜ü¡Ù·_Vô!Í?˜ýë¡?,øÁzcctSòAÊŸ(ÿÈ?FxƒúAºc8"o$qm³BÕöѧNHŸÜÒüjmñÈg8þVˆ·<ÎJŸxü^¨;†/ùòé¾k¢k²'®ß~¸BØÔExYD_RØCù>¥/lôŒnÎæ/üÒRhôäâo?˜=fò}omI·$—¤vö&i;®ßÿ‚¦Ojû–„kº/*úíö/ü²æRFÖˆ–]^¤>è=ùlOýX¯µá4ñÈË/[üJ­ïüŠ‚6¶2òoòòAF¯‘ô#F_IJEæ’ÖAô]¸7}G­_>Ó§¼,á=ý3üï¸bý·"Okû"¤k£¯ûòÅ‚-Ùw9ÏB2%ÒRUOÃû‡VOíõìæï„ù’B­å,¾Bùÿ'p2Öô:&]A¥òag!]aÉñ…cWŒŽ2A_<Ó„ñÅðáž'ÆŒxsì‚x"ô(Á¯SÒ<>ÍaÉâ8uMø„2ðÁ:Q¬a‚îyta¸!xC¼1x2ôÁ¯SÒ|á¾ÒŽsׄO(ôÁ:A¬Á_î9WÆŒxSüˆ'Aü*$I<ègA×3ÔSüI¯RôA¯RôaíaoÔ:ö„["O8Õ(òÕ¤òŤOnqAènñA¨/GøS(oFüAïBüQ¯Büiéþ7Q¯(ö…[(ò¤S"_­ñA*Ï,qAëoqAùè„úr„?…øfÄ?þ.Ä/ü*Ä/žîQýŠb_¸õˆ"O8õˆ"_¬ñÁ+OnqÁïjqAíjñA‰/CøS¨/Bøø¯B¸ý*„/ž®o‘|ÑN3Q$—D,2U&6Q$3óôAmA-AÐä‚‘Â'ÃŽR&ÌBVD"Æ"Ãåb2X,:B˜côAmA8)„‘BŒ™Â'ŽRÄŽBfd(‡GŽ"Cåj"å(:B˜#ôA˜mA˜iĈiĘi8Žh("†ø„"A®&à˜ ð!B”#T8RÌ¡,4‹$A¨B„*´$Ñ„Ä$ŒàÆ#1A0Û‰1Áe8AA¸Aá"Æ(‘NC(œdBV¨(64ÃÍ,'[$<(Ķ.Å,¢Lä£LTD¦è2†/Db‰‰!8ˆ^$/U˜˜"1…ÉG`†¸$˜2„(L‚QŒL $!%ˆÁP$ÐH!â!Œ"1D,ŒCBˆ%1"IR¨d""cáA‚2HlX…(rDèB²BA„¸èTÒ!?Ÿ$ŒA”…B$rÄD&ÄÌ!È'„Cb‚Lø(ADT‚#¨!­%"‘$4I”9†4)AÀ8ÔfT(RŒFÌ(()6*Ñ…‰Ô‚Q„A,QH‰-ø„‹¾PB"ÃA|1(¤@‚R‚–Q(ÄAÈ!Ä…èFR„"Ãj%4ô(!˜„‡„,ar(I›…”¤ƒA¨JÌ"e‚(G$*EÈ a,Hš,E‹A(á‚1,©Q‚©(e2-¨ÔYÚHBø(”$>m$›±‹!$.ÜÑBbC)ñAés!y¬t!È,Ð(â¤èÕÂL“¤<"qèeÂĦ¤$Ñ„‚"Eø$¬4$¥¤+.ˆ‰òÕé KbABÃAAˆCAAT‚PˆHR"ƒ"HD„A(IB…H(."(`„Pˆ`ƒ A„ ÕQ6Ý‚P(4@‘ˆX@DT"„†0A€ DЄґØBˆA¨”§(Œ)"0@8ˆB2BÄA!`(„"ÁZAä¡,Q¾)$2n4…òh°CƒñH"R–¨G!Cñ#HÈh˜BDÁHŒòA.Kx4bc¼1B¦¶DòHŒ:$F8DžDø„R¶üˆF²‚±H²ÌQ‰Ã"IgHhaˆ„LœnLÒ„D¬x)â,t¨²Œäˆ„gH\=‘)É"Iq!Â%ŒòB&„"/AÈ(%“q¤¨-&A"›AE’(A.&’Lè‘$‡A„dAHaƒ†A$(CáTH@˜$"…$‘¢RC™H…óÙ<$ja²B$3f4“šÈ*RB‰T$ŠVXH°($Ág¨aIÑ!´IAò!„FrA¸H"ä™$b„p”âtHˆR„/–(”Q†b$ŠÑI#*èB‰ˆ“‚T/„X°$$D(4´à¬‚qÈ#½"á83ü¬(Y„$„JÔ!“¨Ä"LAMN.Œh""YÂL)Ñ(”4RA$ARƒ“",CÁ¨WD%ÑLÔ["O„4‰AÂ?ˆ‹DC2˜L‚$rA´(!Ô2DJBúIâ„)´‚aŠKߪ@$(”:@DÁ"Ž$˜„(„\’„¡"@“‚SH(c‚QÂPA0*&"9X"„"CaN‘ŒF4! ‚ÄHHÉ‚Ù"8d€ÅJ-%DÒh¨OB¹$$Ò„AèB™$ŒrÔ‚±"Ô(áAÂ!"$ ³2>‰LBcA&aÈ'¥(!N¬è±D"8Ãf̤ˆ>E`„FÈDD‹B(K,‚Ëd‰cŒ‚+Nˆ'?µ*Ôˆ8D€X¡@"¡!Cd‚G%ˆBLT()ä1&D(#aBQ¡!DBBB(’HäˆlEˆ! A8E°!HQKDNˆ(À²ÃÂbçµQ‚!‘4ˆÀІL¡†‘H.(H'ˆ/QA”1"LT„€QD"A'J"L1"A$èDQRpžÃd’MA(C!;dŒD8!Faƒ&#‡AHŸ3 B)Q&%X"'%öJ!A&¨L"’$D"LHÒD˜$›„D¡€HBtA²"Hr$¤!(%Œa’Ä,bAB"Ab$ˆ… 0&ˆ`AN$EdD×C‡DEÄE¨A„"<>é(!0PD,$&ÄB(Ér( Œ2BÌ¢$£!BU€aˆ(MBÀ"(",1DJ%A…ˆ`ÂDKZ„!ò48%ˆ%™!‚LDLˆ˜!(O´AR%“(A„#(1,¥AÃALYB!.Fd`BR„‘8[PÂ"MAMaA©ñ‚(ŵŒõ&ƒð¡*RN"ô(a!”©*†´²"è!vôAAψ2„DŒH( †¤„Bƒ)L¨„ÊA Xˆ‡ƒä„D„Nˆ"‡ *'A‚³$UD)RH ”‚‰(@ ,ø‰Õ„DBR ˆ(ŠX$Ž""HH†Œ„‚ÂÀ°D‚ ‹BMA@("#A") J1ˆ¨(AIh"@X‚€!((ä³OôBÁsÑ"4‹&X·BD’"†²4áV±ØèRêR™E±Dê1©ÄU%¨A…™‚!ÁB¢BâqLÔ„ñ"×¢‹„†Fôa„½œ¯ÁÂAIøØbOCÒò¬NŒ2EC½2"¶S1–?BÔAØA„Èï‡Â&¤ƒ!ƒAÚHv"¶M2BC1H%8¡G(#´Â’ŠBK"_‚˜Å‹$lÂh¦ø*HŒ—‚IF8FæF³±:âIäAÒRKBAI³*’H°ÁeÖ2GH‡„1-¸LáèK!„‹‚MòOòDØÌ&Vȯ¦äA$ØÉôàHHŽÅóÄ1%ø"X¢Q¯!\LI²Œ‚òK–$¨k2aO…ÓÌhdÄ&¥$'ÂA#Ò]+ˆHgȆæ˜Ò]DÆ,Lâ!rhr$¨5U4M(ɲdB±4Z/ ÈXŠAacªÂfDHq,HºHѤB¸dâV14°[Bݘ«‘ˆhïËocµHòn¿1±üR2çæ½£ï‚ö-i!ÿ§¸oJúçíÏŠþ§ïÏÎz"º(ü7EDø?ïCÆmŸîøý/Ò|ÁòÕïˆó¾ñ]ÔÏz—k!—ö,_¯õS4o¢ó$g/‘ôi¬¯ÊóšMÏÿe2g/‰òœÁ%òE6gНZý6ù¯bѧó„”Wþ$Eo±õ§jïêñÄOo×ôEíÿûóüLOJøeLÏáᩲҼZõ.,§žñ÷»|ï³ô,¢Í4Û¿4T(‰ùIœÿÌõ7a/çó´”OAò64ÿ÷ö8KwöeͤŒòmÿï›×þ÷4¦ž_ñS[‚¦týüóoÏó÷q¼OBékó2Vý,¾«{ß¹ý~iφÖö-û÷Do£ÿþ(爭Z¤}øþ¬J~Ÿ”ö#kç%?4ñCkÿrôB*_|º"øãˆ')EòF¤?üªÎ?¸üá7ODôeuáóÅŠ¿ÔþŠë×­—$?ܲõÉŠŸäú›(»…'(lòK(¿„ñ[S|æ3|sôAIÍ“üI®Ÿ,ñÃAo8þU’,ñÓA/8üeŠ»„O¨ò©ˆIø"–?,òç‚•ø(IÏ•ø_d_DôMåOæø_íohñöNïHÚ$øÂX,´‚Êñ“ÜcyRöfe}Z+'%¯–ÖëôB‡ß®ò¢´/kêHø†‡ûîŽÃ¿Ë~DøHLÒ–M/6úI޳üïÛ1ôÁŠ¿ŒøÃKÓtølû¯Š[Bgb>ãó]o1ô$]$_Ô”Ôœ÷Wª×î;/?|Ü4üÁ3ýÃã.ÇŸ$ûeů)ñ¦–+³KŽ6¿ù(ùÏùôcD_TâTöML/vÅäÊõÔ¦ŒøŠBÚô¦OÒü*~p2Áa§RÏtÁaç3VO8õA(O(¬R%,®æ8Ä„7‡‚'Áü:,MÁ§á'AÉóˆsÓt„ôÁ:EøÍ&øéž'Á„ÌxsÜÈx:äÜJòTÁ£á<^aÉóÈsׄŽ2M2,Ö$ñÁRðÁž#qeĈ7Lj%¤Æ¯A²<+ÅcÑä7ªLôQÏBôABô2AÉöA*ö„[(ò„W(òņòÌ”/nñA¨î„øz„?…ønÅ/ü.Å/ü*Å/ÞþE¯8ö„[(ò„S"_¬ñA*_,qAúñ„ŸnñA¨?GøSˆ?VüÁ¯RüɯRüñíáoüŠaO8õˆ"OzµˆòÅŒòÍŒò¥„jñAˆ/CøS™.„+Á¯BøÈB¸ž¬o¥ì #V„2L&4Dˆ#„8J„ØTˆIDˆäH˜Â#ñ‚Rè(tah(—ÇŽ"W„¦vQè(8CˆsôA8mA-A‰Ñ”˜-Á#ó‚S2ŽC“e(FŽ"Óäj2UŽ‚ÓIJ“ôAŠMA¨„ØĘ-#ã(!a(##8*Š2T¦ä˜ñ(Dƒ‚TAƒÁS+t"$ò‚”CH‡q"hdQ¤.DD‹h?‚è‚qÅ£.F!‘JÁ¦*X-!ŒáÎ$fÌ"+%C‡V±(T¿ýK2&t„(áˆ6dȵ¢QŒY 4„%2€”A)2XmIBah‹E 1JÒ$Rð$21bƒð(-I„Á!&BA‘JAµ7ÀEd‰ÀEBX†DVE¢!Å!TDŒr²$A–(`’Á)QD2H†„t2LÁ‰¬BMð‚„PÁ#ÄL"aÄS‰bD‘(2@jƒÿ› †ÔÁ’”dñH„!Cc"E1"Y"Ô(Ì‚Sh„2Pˆ5$Á8$,A¸Bø$(AHd‚P‚E`Hƒ‹2$(ŠAd‚ÔH‚CÔ„Â(!@$å4‚.ƒ‘%òàTƒÀÌÕ¡!(aA%DTS#‡4(Ý&¬RH§A„€‘M,8•#²¼¬Ä(Ãr6THÁO¤XHO…QŒAHè…QGƒ!câHÃ!…TÉ2<ÅÔ‚ÒÒ(BBÆhŒ‘’"‹& DPAÑÂ$á&b "áFD ‘'‚ Ä$!0FB„€ ƒ$€„€N"€dA2`„$Œ:È1 $`aÀAH)Q‘"DA¤H@H„Pb`$N\ˆd`Cp(‚f((€"¢(‚(#¡$#4'j„"†+R""†BDhaðÅöÀ6„Ò$±aqºAaAYTˆ9"1$&Â"-Tò((Ýh„G¡X2NB™e%¢BaB;8"†qÈÅŒRÈN%<”ÍX%(9Ñ4‘‡ƒœBAˆ,B,r4‰dÂD>HDKZ)´Ä(%èy2„" ƒI)’$@QX:A (RHNЂH"dC¤ Jö2ˆ0,”($…ƒ!“h À$)ÄJÂ(DÐ"²¢„R„‚˜M‘CGƒðA­H,qDQhÀ‚,¦A&ñB"E)ô„+$ )xâllîx8¨CaR…ÈcB&”H&Å‚b’%¡Ak(9¨A!C±‚‘„-A…âBÁ!Á(ƒñ¡BÉìaˆD¢…Í}!&áA%(1A%‚-$hÐa℘$„A¯BABm$.HYr8Ò$!44%¢”"1,"!J²¨A ñB‡" $Ka„)25&D‰2‚*H0&úÙEDAˆÀ& ÀÄ"C(2$)@(G!"K,4(F&D@DBˆ$˜-$I A0(‹B#(`U¡„&Ä7#ED4H(1„A"o!b/A3"E8$IbAH¤EŠQ)&V$&²Ñ&Á&‰<#ÁhƒH%¢8€R*˜"jDs¢C‚ÓHBŠ!‚d‚,Ê)hA&H8a_þI"B1…T!l(V”`’D +"HŒ8&…”ƒ¨"ABE$.ALÒŒ$A‰#Bˆ!cad3(H…(à$Á„(à&<¬„…PÄl$0(Qa‚™B2HpŠt„æ!qä!„Á(Adƒ$(gƒ„$‘%¤©‚ñ,Šºâ£B!!@ˆa‚.8)’ˆ+B¿ #4$5PN$1$"L‚H±$Q(Ä(ÀCäBa"‰A‰N‚#ƒÁ"D„.(! .D$4!A’„$*1#ÁˆhV4!À(ÇDŽBŽ$‰A®«“"MK)ñCH…¡AÀR…˜„gAbŒ"d„pB¸T%"e˜HŠBRD‚Á8d.ˆ…˜†’€ˆ‚`BE’DObQ„$Š”"‰$(-DrDoîJAšXÒB4ÀE$Ad"¥AH„(D…b‚L¡"Ä+bAò"XJYBd¢‚„A”,Ah„‡J*ÂDD"-8D#‚((R(ŒÄ§³%(&("DIƒA˜("E H( !dF$À$LF„ÂTÁŒ*$† ($ B¤"‹ˆBBB¨‰ñ.ÕBƒ(ÁF DÂ(HHD„@BB8HA ˆrˆ+HL( 0ØÂ(8B€ˆI„˜*„’†"¥d?%^è…CŠDÁH€Aò$R$°=²$A¢2(ƒ16°ñ1déÔAÑDt6$KføH(XŒ‹E±r¥´ÔUƒ+1‡Â(2V´„ƒrtffdN'A/‚ú((K¢ç‚+H2…ˆ„ÕBîÁµóBrLJ°ÒD±E2‰"ÖTÑñ$òq$nÂDAŒôD*‰bDƒT(FÚ‚¸hq¸1Æ-4TFHÐBbb*‚bÁLâdÑHaD…AIá®yB¸Tš‚-„/ø(˜A¯£…E‚Ž"¢š$ahxBŽqÓÞ’FiñA‡‘‰øI¢Âi…ÔE4$F¨§„bF(äÄb7ÄP$3x,ç!:¢bŠƒÂ&âqQ!^ä‡^[$N¤øZ´ÄˆÙˆˆ½(œG‚GªLñ$b6EH±äÀLóXHJ1J+£¤°,òD3$]d/vrzÕº’Mn)O—r$ñ)j]N¯A÷!,."Ovö-Doáõj)Oá“éÃtmñ?ÏñÕ’tnuhô;éôK!OFÓyóâO³ßJ÷…8,óUBí}ßAuT÷ÎÏ'úhÞk*ohÈ’¶ç‹ïíÈç_HöF!Ÿ‚ÒHò$n'é©ñú8/ýB‚Š´’õ’†oåø}êp2Æa§cMA£Ñ6–<Žsß„á(£_¬Ó„ñÁlñáž'AÆŒxSèÁx2Ñü2$MÁ£áþ!AÁŽsׄŽðÅ"A,Aôáž3qaœ7ÇÌx2ôÅ/BòÁ£Áák!Ma‰óˆsW„ŽðÁ:IñÁðåÆ#qa¬‚Ƥ/E¤Â/A’Ì!èã¡1ÕQüARôYRô2AÍaoÔ8÷„_2O8Õ(óÅ„òÇ„nñA(ŸnñA¨/GxSùzÄ/ô>Ä?‘õ:Ä?¶þQ¯(ö…[(ò„S"_îñA+O,qAûø„ò䄸v„?•újÄ/ýnÄ?ýjÄ?‘¾Nþѯ,ö„S,ò¤S(ö¥Z¬òÄR¼®”âjñAˆ/CøS¨/B¸ü*„+ѯB¸Ÿ®o“üŸŽF—E(SdBÓ%2K0O„-A‡‚DÈA&Ô|ø‚R„,$EbF,2L.&ÃÄ¢ã„9N„-A‰“B)Ä”)</(eCŽBFd(ƒä(2T¦6DŽ¢c„;J„Û”¸)„˜B.˜)8Žh(B†"á(ljà¨>*HÃ¥A41‰q$ A(A&2e#aD&X!6œ8)Da/„"ñ,i‚Ä#A…&Ç"È)À,x"ÈÄŠÂH#¸Á(Iab$(Ca!É$B(ÂH0R&h"ƒƒ1B‰òH¯B¡ª!Xƒ¨Á"AÀ$(Dƒä"ÁD.$]„.FHsÁhC‘"¡L¤5$²"Eœ!p(8!E2¤‡‡(FÊÁ"Å(a"C‘$$&&fF˜+#0pHÈ!Ÿq- :D)0)|„X$IA4ƒÄÁPÄp8!0K#Á‚A0N„!@ „‚A(AƒÂD%ÈA„D)‚AˆÒ¸A²‚A8„ßÓ H"$.„8!C`£HF „(i1$…ˆaBƒh‚#A.ƒbC(È(!PHF(#…ˆ$"ˆFL'ˆIŠŒ!$Lò²“AÔ’B'PH­R…dd,B„QL!/EÄ(BÈ.ŒAYL%#±8‹…*‘I"Á‰"t‘t"HD…T‚øDjœÄEÂ2&™HhC邱A8†)BX‚ƒƒaÂ~`‰@"ˆÈ!a‚@ŽADL‚!„B2˜A«! D(!D B"0‚F Ññ1*ˆ‚‚‚ˆ€@ñ­®·Å.S‡B,qAÈ2W„MahÁA‰Ò<:MÁ§ÃŽRBä(a„ŽrEèx;×KoòS(A/øM(?eË8wŒ(O(ÁáÇ!þ$„86„&ôÁ:D¬ÑºZ²DøA‰xSŒú“>N²W„(O(ÁaãÉáïAòA¨cqAhB¬CôÁÉúZ![„/”ˆ7Ũ/éóA±g„(O(ÁaÇ)þ$„:„"_쬱LúhI¸”ˆ#•¨ßKŠˆˆ‚ AAAÑÑ:®,1 ‰ðEATD È-‚‚€!pb$(2A$E‚%Œl(€‚" $ZÐ,(G(„AšC$ŽBð<â`B…Ø4Q¬a…ÃG/‚(Ò,™6,ȸ{ACaE‹(PˆQ-TÃRB¸üCˆ@•¤¡ÃO!¢!ŠÇ¾Xƒñ(F$H2=dÉùH1%¸¨#*´#s”"A#¢„*ÈA—(+$+i‰D48/ˆ…5­”‡Œ’M"&XB…&A#‚äA@HB±$UH!,²$BƒB„A"CÔ‚C’ABŒ’@8F:˜8*$$B EH!0xˆâ„Dø!Ô\8a1+$‚„‚b)AO8á(´D)È!ŽK!CD‹±‹L$G)¢‰&"¡R†ÄhafÁ$Œ¡BM"Šl$‚<'8"ƒS$'B‚Š!4’‰RIXK,¡ŽA,(EfLãCL8ÈD$aH„‚‰b)È8E¬$ÓŠUH.‰)aŠD¿D„bƒKMA†ˆA’y…„2!E &</)bB"(‚G„QÊ4C"HŠj¨#¢„ÿÅ(„ H„*²8B$(Eˆ"KH0CŠAˆ‚(ˆ€WF(B(6†¨!F€#ˆ(„A’ ƒh‰Mê£ÑBbA…hCaDJ˜ˆ"y¢¡B$žt("(Œ8#áAæH'ØQ!®HW‚A‚bAœ¨,2XSe&„"GR‰È%¢,‰"Bˆ"O¼$8ŠLHx$X$†ˆŠƒAbˆ’Ç €Ba BED"V „@E"P0B‚„HÅ‚ F„$à‚ÕHE…™"€tH$A‚a(”€*„¸8„"#+$ÀãXБBH”!D¹ˆb1j!OHQDL„pˆðD«QHÆE*"jjS„aH(CBhBd*A%a°Hd$…a*"‚M28ž&H„(„€”8§4FÄ„@H¼X„IdD ˆ¡…(H$DaÃA¨$1&TH`G„ˆDÃèBrBD4ED„0H(Û$)!Œ‚ÙF„(ƒ¤!nm³D­AÀ€A’!¤P!„ƒ’„ („*Dq(DˆÑ$‘!Bi ÙŠ!(GpAD(b$ƒhJB%D(‘H)8‰"òÎo…$‘$$‹$+!E”"Ãô-!LøEM(‡‚ð((†ô(S`,‰qB‚ˆ…¨!ÄM(ÍA€Dè8d**‚‰a(ð!„#"CQ˜&ø"I’ŽBÇ* „Htˆ7Q¨RHqD"$B¦8C(L¢…ˆ@.Áª (4E UˆÀ˜›Ä%„€È…#¡LND†&RAB‹‰˜b/r 4A 2A( (0‚*ÄA@( €Ø$AAˆ $h…(¤"‰$x H°I‘€ØD‘T"ˆ!H(0H†b8 ÁsÂHGq†ÈAh\´(‘ACÊ[¼Ž$OÏa"€˜¡^(Œô>‰MXHà2¨ÅG¢![8²ÁäˆE²dî†,6BOÉNA'„/„LthxDc:C±…³¤rÍ”9Iq(Ê¢‹†bj¨…#d„ψт™Dëy]DV¨‰‘¾MxKH”"C¸’(˜ÂŽU#iÊÇBÒÌBæ8±‘r¤2D–Hµk¡ŸDÂ"HMIËÁÍL\f†‹BGÄlñX-×*ŠQ$Ló‰‚3%!‘A‹Âmá¡HEBH؈q¨¢‡(R$J¢6ždÓ‚u"äšZ%¡1gBO«áAòÔ!GA6t4d‚•2ÁŸ„¸HbÄ™1HHÁ+”Ù&á‚È®hK"†$´¤Q„ÏD‘AŒø!(ÔIŠä‚òX©˜È+ä‰Õˆâjb!,a#GƒArÑdCÀ$D%ÄD)¤)õˆ-(½BOrôQ6_G™"O1ôq"_Eцò®Á¯‘_,OŠ{‚ôçáO8ü´ñŽó¨.Ïúö>MßÄøŽ.¯æ;ýqfž2Ï™üi(›7‰ñ¬÷-ùï3×Äò´¤_Õþ4y’´™dÍnKO×öa̯¬ñôwºþ;\™á¬ö̃½h߇ç«ò¨ƒï‘Ûrdü„ö}ýoRçóüÏ«ãâd‡Íˆç­ž.jº:7(©óœŠ«SÏAs¼1C-GO!ñ4[?´õ—ÅÞöMoÑD«—oAû÷×K¹>´¿÷þ$mOBò$(vþ®y/3ç£ú¼(_-ñQYˆ¾óùÓ÷y¸¦k:ó}õσûˆDß™ý4EÏBþlh_VüžwÏ“ö8øï©ñ™Z—”Nȯêò©bŸ¾âÑñy¸oAù–KsŸ×þ>˜¯»òÜŠïEø((Ï‚úŽ>$‚ûº:ŽZ˜/ëó´*›ArcòSeöI®"ðázEøÅJðá–'Áƈ7Ĉ#ÂÅ£Ña‰ôˆs‘ŽA¬ôÁðÁž#qAŒxCìz"„|*”Ä£‘èãÑè!×Sü2AïRôA¯Rô2YíaoQõŠcO8õˆ"O8Õ(òŤòŤnqAøá„úw„?…økÅ/þ.Å/‘ü(Å/ÜþÑ8ö„S(ò„W‹(_¬ñÁ(ß,qÁø¡„ŸjñAˆ?CøS˜?Rüá¯RøÁ¯RørÁí¡oÑüŠ#O}õˆ"O8õˆb_ªñÁ*_-qÁînñA,nñAŒ/GøSœ/FüȯBüȯB¼2œîoýæ!4E$Ä"SdbÄ‚3„8G„Ñ”-A„-A.„-Á'ÃŽSÌâ84A†rYä(2E®$¥ªó¤¢³ôa¨´(ÈA.˜Ä”-'AŽ&h8è(TAŽ"Sdj“á*‹óA˜-A„YN˜eᆙ†#ñ„‡‚G((†O(2¦6Ž'ヨIL$ÈJQA°$Ñ¡!Š!d‚sKTA!B…E²¦Ù²!ãÂu$2ƒ%äèaDAÌ!Ä"òl‚„W'X!‹$Ã-¨{"!.AiÂ%í1"Dx(¡E²HA"Ñ(qañ‹ ‘D#,N$Ij!(A„"\#B-%d„K€Õ(O„¡‚ ‚2‚j18(FôªŒ&4†(œ”ƒáBŠL‚‚QA”,PH„(¡F$шbì9C¨$AÁD )(". ‰ÃbÄ@ °QaŒBˆLÑ2„`‘D„!ÑáÂ$’‰‚1$A‹!$0H"B‰#ÈDHŒè⣠„d’©a&ÉÁ$…¢$K"…Q$.HPAƒrˆC”‚B© Œ-ŒC1¨,F8A…¤.ˆ! H!ŠrX‰Ž“‚àeBˆCŒ¤"DGzH2Aƒˆô…ó Ä1…Â%ìƒQÅ‚+*«"Í".ŒÒÄ£’(œB8DÀ…$EБYDˆPÁD‰˜CD9%ÅJ0¬C„ AÃx¤Â„ñÈa©20Ypšdƒ8&,O$jH‡AF(BŒ¤Œ $@‚aˆ2-J@f„Ac$.DÃ`‚ˆ!ÐHAVTˆ!„ÂHAJˆ@ˆ"´H €aˆ(„ M!¤ 1(L?‰2‰xH(A6Q‚0'H—BDG˜M !ä†#t&AÌPTDÆ(‘ƒRQ0H„XR‰rQ*‰A$AĈLÁ–M(‰Ø‚ˆa„„E¸ID!#¡(ßCQE Á*DAƒ€BH ”h‚`HNJ( …1T04H”Xˆ(…"B L"ˆƒ(@ˆAˆÈ–ãLEH@H†Á‚`HCXH‰AD*\X‚€H‚Ü1È4$€A8ˆŒ¤( ŒAqD±HdHBVâFDc(X‰´ ¤„hHX2‰‚D’ð)CŠ …’!„DI%x$H4HA„FH,’!"!.AI8$Dˆ*!&RD(ƒD(áˆ8!ŠQH")2DÅ$AŒ„ð8H7³•"!)I`H$LŒ4X`!àÁŽ”!*!µÈ&RA’ˆ „ÑH)2"„øƒ¨ˆŒáD¹êDBBd„†„!(Áˆ+/ˆŠò1r„"¬„Dˆ#!QO‘"LÀ‡KXE¢„KR†ˆ…²OÖHÄ(ð$M‡hŒ(àd!¢A&ØØKA(H-ˆ„($X(DZCEä¡($$($(•a"‚"4&aBAaX(N($ ¢!!ÐH“¢„…Hˆa“%€E&1 (*‚’b(+C¿Jd( C""ALÂ!€B„‚D’H ”…Z$°D…AFHÀR$‰$„„1!A+$ D$B,DÀ“ O‘QR1!(+…³„Ñ$Ñ$C¶rÊE2!Cò"„GA%i•'…‡¬ˆºèô„‡/A"ª1±L!¨‡‚AŒœâ-‡Eá¤A‹Ä*²褼!Ø!г!™‘˜!!Bê2‚+R‚ˆŽ(ƒ((²¢2©$Ê&ò˜$“ñ8‚‘R„R@8œBÄ(F<òI¯™ñ̇dŸæôØrÏ8ø)*ûOî÷Ä·¯þ."OÃò´´þ4eO‘ó½4ê÷dëGS‚úÊj¾æ{ús|Û–(ýœÓ¿úýTlátø¶IãèŒá*õóyïû¤]Oµú¤zÂþ8hÏ„úÖjcú4Â+äj̦ß-´Zý¼$Ï×:y-/Ïá±4s9øú(8Ÿƒq›q2ýš*ø„$/Bó›Ë’ÏÁó?kÏÔRÌ*ò%“oYòSOæÿÄlß,ôYš®fÊõÏOO“÷qìlùç4OAõuõODû¸,_ïUöH,ï‚ò)ɯ~öh5ÏÃÿþ~Ÿ©ùIIŽ˜/ïÛ%õECOYû}¼k³o!©ÃŸTò®ø¯3óìòoCä‚v(¸ìýN:OJ£/+vÈúˆØ„õÚ¿_"÷]ô$5rÝ4R%=½!¢cùº?θë#ù·?Hs“ù(#O’ø[l!ú"…"øÓr?™õÖý_$ü‘¿áüiÚ?FÿÆJŸÌØ"ØD8Ñî_z(ùTÁ;Eù(‰¯”þcä.÷©/øË‚=³;î;xï¡þa.k«)ñ£¢nö#ȯXö4ä$æBôvÔkˆo$á,Ì"oŒôBÂÎjÍò¯^Õáñ/8ròrø+>+¢û!Ÿë)+«o#ëcø*¤ÿÙòò8%Ÿ‚vmÉ!ORò¶_j·ÓöÓÑ“¨q™ø³áo’½Kü7õ¯®²†èCнäôáµ.­ÏXµQôe%’R˜‚úïvoò¥ó/]#¬ùYCo_»£øsï.ó†++ƒ/êÿ}z¯Ûþ"vK#O†ö$dL÷ÜŒ¯èá$l-©üBZÞÂFòÖÄŸ='B>E#Ó4aãÃa*á8÷aŽ2"_¬3$¬îxR|aˆxsìx2Ô|:Ô<ácñaÉòˆsÕè(ôÁ:A®Á8,=F*xSŒx2ÔX>:Oê>–(Žs׌Ž2K¬’$¬¡n9Æ.ˆ?ÇȈ'Cjü:¤KÄ«èëçó^S/v*õI§R/Õòa¯8ó„(ó„s(óÕ:¬ò…2¦kqaø¡†ø7„?‡ø3…/ýz…/üx…/“ü¡oÑüÈ#OøõÈ"Ozµˆö¥ZŒò¥Œ_jqAø©„ø3Ä?…ø#¥/ü*¥/ÜZøií¡oÖ:ú„"O:×(ö¥¤úµäô¨ÄâjñA¬/CøS/B¼’ô*Ä+A¯BøxéºVÔ¯L3$Ä"Q&Á‚±ˆ1„Ø”ˆeAXˆ-#á8†SA†rä(gJqŠ‹÷A˜MA‰Y.˜ŒØ|ä8Á(†³b(,2-.Æ$1±„-A…X„eÁi8rO(Á(E"A‚Ò$2L&&ñ!ÄÃO —H%˜AŒ‘*A*˜$ƒEæ’RD„†Ê)‘I‚(’ˆ1ÈL˜”‡DhA”&$(qÄøh7(BH†8#±Õ†ò$†‘"É8&•5‚©!!_n ŽŒ@4‚Rc(LR¤„k"@ ILBÄ!,¨A0„D A"G„L!d#ÁHR‹ˆ#!¢‡TLCÈ.”(A˜…LCÈ0p*ñWI$˜(6Ñ($"@(‚8(#ÃÁ`À$Ø€‘DLÁ(B8!€GL@ˆQA8D”"D!‚Õ04_—L2„!*8$ŠÄ($Á&„@l)*…ô‰R„(‚Ɉ‘`ÂŒ!á„ $!H„„* ºH¡Šƒa‚(@èFBh,Lh4¨$ƒK„$0*‡!ŒÒhÁ Éq"JDJË’Šá‚QÂ.ÃA!RKÀ0EËEh‘„"6Ä”+1A€(²$¢ˆEŒ‘¡ƒq(A„)˜B–8BH ,ÿEbˆ ‚ ¤à*ŒB‚B,Qˆ((**ƒ$‚ „ „"à‚!1( "À$°*‚$ƒ8GVs”1ƒòR2(‰"A(E‚¨(&"ä"HHÃb4ˆ€"& D(qA8ˆ†¬ÈJD„ˆ!P„8‚‘‚(†‚bB,l!€‚∆ø½\@UÈ2Xb‚jd"Á2ŽÜRB¥áÒa&‘(§°4T$Gƒ.'9aÉMHÐè°$q4úˆüa’ê1(—ÄF$Á–'‚ðH8%xˆ®T@´Fh‚MvœBÁA‰Ø„²„,3‰ÅšJ¡6\4å ÑÂh0(V˜¤)s„áa%˜2ƒ„I„ÂBH"Ä,HAK…‘(Ä(„F4$$ÁX0ˆì„„8IBáÈ‹¥AA‡B0Cˆ¡$(hBbHNá„1!'ÁP‚:Öª!!¦¤!%Hå3(•$q-"A²$ñŒ:FTˆF*Iá*˜…´)áˆDd” U(G!‚B’ŒR¡Áˆ,2$Il2ˆB"´,È4lXŠ ²H¡#8TŠ3_Hp(Q„@¨dCaHÁ.” †´DBˆ,!A]‚«!ˆÐA*#)Tˆˆ%!ˆ%(ŽC  „H.R‡DM8GÌpAÈDˆ,!¡‹„RÈ”ŠQDp˜‡B)‘ˆ¨0'Pˆ( !A¨P(¢ÄB„‰¨4ˆoÇJQD0$"€¯áB”x"ÂB"ŠEX‚€R‚‚X‘(ƒ“$DI„aA‰l`CƒBDØB$Š¡K€O‚©€‡,F „@Ì;w(1‰D’H$P"",Q!2•B@˜B "4AC $Œ!Tƒ-AЄÀA+,$LB$“T!B!È!"!„ßò A @fPAàAJL‘AB„ AK"H(„F*0A„bD!ÀBB"$$€A33”D”„TLMAœÕ"1‚:ñc\&ŸÂ“*Ñ!Ôø$KQ…ÊaœqHiAOQq˜èHqôu$&†dÈŸÈÒÂ"¯FË„‰JTEáT†((Sò$"ªñQ®‹ÑH‹FÀ‰*Äh„JøH8ðqZJ!4H(È:LZ,-‚ˆÏ"Ñœû(FœHHÃrŒ|V2I¦4•(¤BŒ$¨ˆ¡…„Q! aÁO‘$ƒDH"Q!ða‚,¡™ˆ^œ»…)˜Åˆ…H1B‰@¨ðXŽR8˜…(hˆŽZsÙAÖÔDRƒÒˆôHIÑ(q„x”†AÏ"ãDá!XDA#hÒ2‰œ2:ó(*$.A†,jˆ†(²M24W$O‚òI˜ëdOÒÔŽÈX#ÔBaS!¦BÄ"À"à%ÒˆX"/„¤…)•ˆ#4!!-O´FaÖ_Á·9´ôLó9tÃóâ¹oVº.ôR:+º?þ~=/‘ó+ôk*O^þr!_Æþø^Ï9ó¨¥×G¿eõšÏ¼Y´QçŽö¬¿ïÓû>K$®¤_ÿ,i”ôÝ4GÊO˜þãvúsdöháoøKâSþÑIï˜úOÂL½Aþ#¸¯)óéˆm¢K¢OŽúaÁOQÅÅ÷ATÄÉ­ÿÅøƒF_|ô„¯ÿüË’=ö4ó÷Ê;/(úeªoJ²¢òエµSüÂynè«ej¦"+«ê/&ì$î.÷ƈ-‚NÊž/.3ÅžU_ó\AŸ”YÖó|}gþ3§¯îã)ù6¢/#þ¢RÿºvûÚφöe!O–öh?ÿ!üó,[\ŸþûÁ;MŸžÿHÉŸÇú/‰/«ò’„.´K²®HŸþHÝ›ó]L_TôDAõQÌÿjòÍNŸüýN™·¤-üa'oß>Ï?ú"¦®"k*+ê/$õ™Ê/÷Ú‚¤bjò(xŠöòòÂ#¾ÚõÒŠÊN‚¯ö»>p2Ô4:MA£ÁaãѦ8vMè(³$ñÁ"G‚_®¡î8Ƭ7ÇJx"ä|:Ô¼BÄáãÁaÍ(ŽsÓâ(2$,3$®.î92F.ˆ7Ç.ˆ'CnÁ¯BòDÁ£á¾è”<ÎCÙâ(ôÁrA,î¼2ta„øsLJ|r¤Ä¯C”„£>ÆÓ×QôYÏSôQSô2QÍao‘ôˆaOxµˆò„S‹(_¬ñÁ(_,ñÁ(nqAøå„ø3„?…ø%Å/‘ü(Å/‘ü(…/Ýú6Á8ò„[(ò”W‹h_¨ñÁ(ßmqÁøñ„ŸnñAˆ?GøSˆ?VüÁ¯RüÁ¯RüaíáoôŠcO8õˆ"O8õˆb_¨ñÁ*ß(ñaª¾†äjña¨¯CøSˆ/BøȯB¸ü*„+áéº6ž¼„2M&4A*9A*8A„ÈA‹¢¤‚Ĩ¸â8!d‚¤(SdJ“¤ˆõˆ÷AˆMA‹¢*IÙ8ކa(—Ž"Q.¦Á‚±¨1„Ø”˜%-AŒ˜Â#á(â($e(Ž"Á¦6ŽÑϘ†(Œ…4#¨8ADBŒQDƒhB@8$6xA…RH7`!J™,’„A‚-Œ‘!„B˜°’!¤Á€1(H*H!2"–4!ŒÑ¡(B˜"ˆ)(R9{A‰ A‹P(Ž(C‘ŒDd`H"LRH°A1,x&!x’ŽbA›0$‚LØ‚Q…hRA’B„ „HA$!q„a‹H@A$ƒH"(‘ºc !A‰-0&‚H’!"L.)aB‘" ’H`‚„…!BD °!  B@!HH€?Š#x$I¨A¤2MB!aД‘""… SÁ!G!„FH«Ä(,$DÍ"„°(A'‡ A„‡$"#qAb,!A(‰Aø4B…(£@Ba;„#¢! ¤VDB¢DHÑ’(-(&EY$#K!ŒDØB²ƒ‘€’B Ò„!È(XX‰RF€X‚q(!À!M)"C1(BR$BB¿‚AÄ`$!@È€Â"0$aPˆ  "„"Ä!‰H($€!B(`"#„!À4@HL+È2DN2LB%,<I€" ,¨A€h™D®  PFE‚’#8@HÄH"Â$B@KˆDœ‚x‚¨¦"Š"ò‘(àÑL¢‚ðº—P‰._„r¨&8C„©ÑI‰BÔ’´!Ñ„uõh-,Dxþ‰TC†1L…(4"óÔˆ~A¬‚)“’µøN!K„ÁEø$HBª.i¢AÂH…dEŒ‘ICµdÑ$h„1BHÀjA‚K,$Mg“.¡AÂ@XƒA2`Ar±–À(Em°L™CA%Ø„fAÀ@Ñ(×D‘(L‰WF""p°$‚Õ$B¦!"H.HL88Hô‰-`‚B"/Ô(VL\‚IrDhBÐŒÁd„HIä¸h„¡H©%Ø¡$S‚j#!ˆaŠF#\[(@4H*kDà!z(ã„á"˜D˜Eä)ˆ‘D H‘€Š†¤˜$à¨3«-&àDDÈ'„CCF˜A„‚!Ô(ÊD‹8EH–@áDÈ$PBpH”„I˜……a8A”2’$$ÐdȉôÁH'?ö$ƒRÁDH&“€d$„ÂÀIˆD`ˆAQHA"X@A¦ˆ,(A†D*)dB:Ã%”B$F8BFèD‡B„Ãá„!ˆÆ((Èá*Éa„G„‹„ˆCAôÁH"$ˆAG„‰HUH„„ˆ!‚3qÑ"ˆ8”…rLAÈ•À‚Ô„1ˆ-Z‚Iò2Ñ BH£1T@ƒPF1(@A!AEAˆRIRA($ ‚Ä0&$À@ADÐB€È«#Œ)…T„E˜H ˆTI2„Tˆƒ$E$H…*„"Š"(Á"†2!!P A‘=$’K!ŠbA‚!BTA$…"!RŒøäRzBD%BwH’„…ˆAGa TP-†_è#˜„EE%QÎ%zŽ‚41Ib(“—!EuAALÛsäX(ÓB؈!’”‹†FshH ™D”Œ‘˜ŽÑHˆâZµ!BdBŽ!„`…XÅ„Q˜¢i¨‘KGqƒRb!­$DOq1¢…‘5ÔDAÄ8A[‘œøT’¤'Áoh-l¯¶ò{-ï$rnò!)ïëÞ~èªò62?µõV_òwKû_ÒõIßVú¯=/‰ô†Ç/ôqjü‰!«È—q~÷¿'¯;Þ1þ&bM"okùGîýW]~?¹õ•ˆr7ý,šñ¾.ï[ø#?ÓñŠ#+™-"/s‡ó†–_r;$KK¹;‚w2?3q£÷·>Ÿ‚r9ÔQø—78+©oGònV–øÚÂ^hïGg:3Ò¡ô$"_2suóAbµû+.7Ÿìõ&FÿÌáCyRv&÷O]osñ?w÷?MÕÙÛòEÏÿ©×xô/«ÿ©óÝŸ¥Ô™ø©>ÿþñï~Rôg¶/Cù³,eõnïÿÑú¿K¿Øù?)T×ÒŸòø?ÿrÒ½ø»;ß¹ñ’/{ñµ7IQò–ocû’oqÑ~Û;û’'oxû?-Ï’RT]—wy}FϦÿ¸jk¡µRüø{>Å _dòiis÷Q'4„Ö!ôK©fù§o¯ñ’4gr7vgvUô#ks|Yñaaá_rüjšomòÛKOiÿRšÞ¿üö–×öûN—?8óÓš/!ÙføÒÿøVž¯2Öwú;(_RÒˆø#ƒ}–ohq—ÿ³½Š/(q‚ò‚’2ø$¥Yòá¬ocÈ”Oøò…ïcZQ?³û;(Ç…/1ÙQøÆ*îh*úVÈ‹LÎhïÿ$Á3[Qï¶òau1uQ2Cöô'mßvúvÇÿáú&¶Ocó6ÿñòoÿ±÷3wÿÖòEmÝiŸòöO¢/óÇ;¿Lý§œ?¼ñûöocü~Žo5|±ö†–Ocû6¢êóηϡÿ³×ÒÒ•r(Õûxžu†÷ŸŒ/¡9š/)ñ’/qû¤rù¥4Ohø6¤OCú¿Ïèû'…O8ó;-ÏÂÁ+GH¯®÷ø¬-Ò­õÒB¯¯þ~¤o:Lr7×Qt2ÄQ§c÷#aÓòsçæohs$ôÁ?oñÃIñåžxaØDxw΂'CÍÁïcÂç!<>ÖLâx7MO(ÓDòÅ>EøÁ„îyxiÌ„7ÇŒx2ÜTü>$<áãñaÉñ‚s×DŽ6EöÁ.åôÍ)òឃqaŒxwÜ'x"îÄ|*ä$<,~Øø8LLôABõSBô2AÉöe‹x_¸·ˆó„s‰óÅ:”òÆ2†nqaøä†ør„?§èGü2ÁÏCüËCü2ËËáo‘¼˜÷¤S‹8O:µˆóåŒóäŽájqaèjñaˆ¯CøSˆ>„/ü(„/‘ý(„/œ¬o¾ˆò”s‹(o8·ˆòÅ:œòžœOjqAø¤6„ø2„?…èB¼ý(ä+ÁB¸2¼,úÂo•I²Á“„3F&6A8[L8RÄoTÈ-ADmAˆÁ'O8Eè(%ô„BŽ3Cäj!äh9TL(õAˆA„ÔA¨Aˆ8ŽK&ø„"Ž!A¦ŽÀ”AÄØÔHÒH¢ˆ³á(G(Ì"ê(2F¦vø¡M3%A\’ˆ1ŠÂ"D„‚BQ„F”È—"T‹AP…Â¥¤†† A'ÈJAD„„FQ„A€[$A$Š‘¬ÅÂ$Dx2ÔAQ‚˜!!˜ä¯òM²„XC!¡œ(d‚A!$…•$Ì„‰TÉTÑ(Q¤A–¢AÄ#˜JEA…1AE(Aˆäa@2” !Q(„-$E$&Ä+ˆ,‘‰%Ña?â(E ‰’Xð$C Â"€"R8*˜•‡"IPH1,1(LB$H"R„I(¤(<RX##ŠBaÁ!N(€2ˆb4”(,¡D2»t$‚±ŽP(‰‰q(RC¤CˆMCDH4¡D"©vHo’¤’CR(®*Q,%Á‘¥‚A¨Ah‰'‚!“"A“‘dAE(’"É1QŒ"!Ôñ>MR”%è‚ÄE1Iƒš%Ä8D(…ä´A¸Œr$t!BH~8T!R„+(C!h‡C(ÐHÂ!(€Ô‚ä!¤.E1$,BÂ$ÜÂÈ(„Oˆ"¥9Œ³F6J8ZVôã˜`ˆEB„(,SˆA@  ‚!Ar„!„¨2àB&&2…•H$¡EÈ@aH"!!*‘A€D!€²³”AL0BPeˆnU„hCÀ‚ ŠÃ$L¸D‚‚B#8@"Â"ADŠ!àaA‚ ˆh(…D,Ã$b+"ag…¢4Ša!•âh¢(Uš+A£*Ÿ#…Ä„_Ô%sž1íE)$ÉB<Ã(EØ$´+2„c²„•…Õˆ±„edÉ‚òˆW„Š}8¶E≈q#Ô$ó‚$¨‰äAÒ(ô"3’%ˆ…'’H-†8ŽBJ‚aæˆ#!4…„´šAB’&¤‚²‚AH„TƒÄ)D#_„r$ÈA,T%ƒDŒ¸e8H!ÈPC`"K")$j1!I"Ò£$AŒÁH@b>TÐAB$rH#Bô’h,82/˜BòD‰¨c0DðŒ9HFö‘ˆG#BˆRŒÑBdB#´(H”"KIƒÃÁD "ñ†(”®'8‚6&˜†"Ž–L‚!☨E•”ˆMQ!"†"ä(#ä±6¶,y¤”BФ“A0$Æ–!8D#’A€R!è!LÁB´jT"ˆ0B‰zf”HÔ‘Ä&¬B‚¡@T2ˆD€Â„ƒ"˜‚P!„G.,ˆÆÔ1ôúî&Dc„4 BHDB€HA‰DA"€!H ᄘ"ˆD$‰@I ‚'ˆ( @PA”ˆd"†‰DÄÓÙBxÅ"$DA–(tA д$„hˆA‹$NA$JÒHƒQ!¦A R"GÄ(B&X” dB!$ƒXb!I‚BHHˆXY„Á‡(l¨BŠ2Š0HJÈAoÛ(PA .D$(0A$@D(A1‚%ÈAHS„¢‚ (pH ¡ˆ!(†¤(`($%ÀBÆPBT1IFF!È Ha( €$DX€‚'(D E8(yXœp%ň5‚@r‚$˜&p‚)H aTrDb„HH!Ïu M$ZÁ$#± c´!Â$"ÀAX„$‡PÊ#XÈ.BO”H1-I ÄŒ)ÔABQJHÄH€Ô$ÔHR!%‘•H„¡‚‰Òh‚‚"”¥H$:D‚-D‹(F¸ˆ‚öˆÚÓ<&H†2M" qBq#òD„ÂXHÀ$$ˆdˆȤ]AeAÃh¢PA,ÄD`"5:ˆ@…‘(¤@’((§"p"$.ˆ)êB*Ä‚FÑiòÛ‘`U'$G$ÆdÓöD‡VNC…õ!M%W¤GHeÔDö†DAeU”aEÔô(EWAHØúHQ˜«!/xrƒxŠTB/ˆa¢§ª83ø.(%(Ã!†/¸!”¬)‚Ú(´EÈ,‹Ï„ !aE™"34¤¤'ô5³T8`)±¡aL„‡¢ÁP'(…˜„%šE2p!q#9¢OX$…ZHIÑAJ])ˆi Uñ2„%0!#aHGˆ\’,‡žm$‚)TBï48ìTyÖ<ò„AdH,hcEDÔ"±„q’ḂXŠ‹Œ§pBx$"”¤,ÒêÒ,2•è!ôCˆ±¤$ŽF!…Z( G´DHóJŠe1‚ñ,¸’Q‰,Aˆ’$/¯‚ÒR!‰ÒDZÍ&¨#ääøGB#WŠ+ƒ#öðzÏq÷*J¯"´SñsoÁ×Fþå$_—ó.´oïQ"/©ýZšïJýµ=_ÞyTühDoÇñN6wS¿ö©…¿µÕ;ôéÿÚò-µ_ØóMÝïiñfŽEôGOÏaø¥Ÿ2ø¿7ÎÁÒø7=ÿÜu“ö·¥·h?S3=£ïÊú+²]5}ÏK±äÈ"¤·™Ÿø¥$OÃá‚z1YÑÿÙù"7'cü(È¡õHAÎêïÂÞ:2w¼ów=_ãV'=3ϵñ9^ÇsWrïöõs$ž’/)ñ’Ó¿-ñÒ™/åþ–·÷ÕßÄÔÌöÌþÏëþ–ÈïãÒˆ|Š~ØŠ:^ÌüABôABôaÉöA‹xÏ8µˆú”S‰òÕ”òÔ†òì†î†ú>„?…ø<„/ü8„/±ü8„/¾ú6ç‹9Oz·ˆó¦w‹8_®óÁ8Ïjóá8®†âjñaè/Cøs*>„/ö8„/‘ô8„/¶ú6i‹9Oz·ˆó¤S‹8_¬ñÁ8O(ñÁOjqAèjñA¨¯CøSˆ>„+ÁC¸ü8„+áË¡oQü*´4Ÿ„RN(,rEhBW„.…"Føaˆ-A‚Ô‰ÈAøÁ#á(©$˜‚Â1a.–€14ƒqAøA‡¨„¡ˆxè8Q„Ž…¨8EèBQˆŽ‘È…„úA™(ш8‰¨£á(QˆŠ±H¢N(ŠsDèJqHè:LLøhL¤0.‚¢Á&%Ta"C”bB‹h4A‚K(…"HŠtˆb‚(0"Fò-„.”FPÁ5(Bd‚±`˜)RÁ-!Eª(R!ƒ¢(%ˆR„„L’(F™$BFBøCß[ _‚‚dD(¡ˆ,Á$‚TJB‘a$HD Lˆ'‚(’"!ŒrE4 XX$&˜$ˆ¤$$‡B%Á"‚!(­ˆà" Ä(B…ÈH$Â^C‹è‚²‚!W‚) #A”‚4"DM"&!‘$$(€C¤! !…”!"&Ia‚#BhÂA(À!Ð$‚"*q*aBA&$œ)Ié„tˆâYôÅ*$DHDØ(xT!€9$,‡†aBDƒR‚„_!$#¸HÒ¡ÁDG!(p4X¼TfÁ¨DG"9A,ä¨A’ˆÐ‚ˆ)„ +ƒ'ÁbA”ðdI¢¡0L‰‘ÃFȆÓ2S.P('B\Q*ˆÑ$'IƒYE"D…'Ò(q-5Â"ƒÄ2Är¤!Ñ…BÄR‡"t$Ë$"hCN59âˆÑB”¡a¨D.’*ÑA::!Lò)QD¢†¸ÄÄH(dB‹D_‰„A5€ "€ …Ì&„„ !"CIÁ(A@h(P$‚„`$*„‘DL‚ÕH‚qhˆ%8Ü:¯PDÒHÀ0(%C(A HébH D`‘…!PƒÐA!ŠÑƒBD$@ô‚HàQ„(à”¢iñ‚ÈA¤ÀLb!`„°4ER¨34T!¬U¤FbˆJq4";(º¶&”"Fï‹ÄÒ|‘Á"yØ(‘‘…rHÔB1£M¡ƒ‘2[O#hAâq„s4.ˆ'Á/„È”ƒ_„´â(R$M˜îQœ¤DáˆH´¼t'hTA¦#èH4TGŠG‚‚‰ò…"£ #B %!>‘Œ,aH8ŠdÀ,„'D%ˆQ‚¡K$A8M(dã"A|(!ÂHA%¸$x2È'D"$‹!°‘$“hGB„…$HˆLÁŸ÷Bad&%$R‹tN!0,a"á"DÄaDô8‚‡Cxsh‚31É¡-AL¨¨ŒPC(G¨LaG!Š‘ˆ$’-Œ-‰AŠÕ‚ØâA˜BpDq(ÄHh†Ž1ŠB#x(¤iE˜a!‰3¬dA$CyQTK!„IbˆrƒQ¨2`BA„À!À*ÐbZBÑÔ22x#’"+"$S¢iA ‘!,2˜´B1xŠÅDBD&RnBƒÆB'ŒHFÈAK$Fè”"‚ÆB¼HA$ÄnÓ‚Di0BQL0AŒxh)!”Aµ8AÉè!QˆŒHááÉ!Pe…ÒBR¤I‚b†H2"•°ˆˆ$,¡„!AhI„AˆHEd@‡BdABðÔV`B'FAôCˆPAðA„à¡ÈT¤ŒXQ`DÀA!DAˆ!Q„ˆAIM($D(D!D%DU@ê"Ò$D„#Ô!rÅ$d`Š‚O‚?3hAaHPL Bs @dP#RA@R4ŠD !†BL @$„¡ B„Fd„Ï=„“$A"‚‚*PPHTP$!ÔÀ1„!HK„NQHBH!!!A‘(C+B€3µT"Óqi"òE)H±AÔBHH¼&£†"A&‚¨RQ8(‚MA’4ÑÈrŠ¢!d§)„$eDU¬S2¸†QÅC©NLN¬M(-d†Ä$Œ’¡ŒLØ„ —B_D„ôB.I‰²\æDòó% 4DK$pDbD'…|DEäBH¤C‰±¡äÈÑ£Œ2BMZ$EU5•rDô]ˆtD‡!E"’‡3•ƒØrÈ2!Q5ôŠBkä‚‚ŽŒ-ÒEÄF%BCR!‹A?"Ò4U$Üd$]DJ!Ü2‘"4¤Hƒ˜L3B)Sœ(R…Ù™ÒAÑÖ‘‚8+‰M1«•øƒQYLß2Qe5‚!QCÁŠM'!MƒqŽRXLq8÷?‘˜‹Q¯1µTáDñZ?!³Ñ(a¬(KhM(,Õ8Û1ý(®A&±(äRX‹‚.Äm†ˆN…€Ø„迯÷Õ2òsS77ŸÜöWÿñôOW?6ü¦"7$/!ùs›?·ÿƒ;ÏÜýÇß^þUmø×ßÛÚû!ïÓñ‰©­‹¿1òºÿ¹qñ3ÏCûÖ‚_‹ù?>ÿñóˆŽÔÏÒÚ]ÒùÿêûŸ<¿8ó»=»Ÿ‰ùKs+}ÎÔOèôhÎë+C˜V>²½÷œŸô¤­ßÕÖñÑÝŽ÷Z¥+­orøÂX‰¸ÈþDØN54-z'ö/s5Ñ3vOû)ÿ5ó«ßÿÿøËŽm&obø²Ç¿=õÛ£¿ÄþÖïÿÓôEEû$Oxÿ/Òçøß™ó=ý›·¸¿¸ñ37m7¿Úùµ—ÿÉù6ãø&—¯yñ?ÿúŽ#÷ÒÕÝEò„7ïóùžžÏñûõžo9ñÛÛß½õûþoÍÿöœïõÚž-&'&/3ô[H¯œþK~ï½ÿwEßÔôMm_\ÿýÌÏ¥ùIJGfo¬øZøOíWò½Ì/ÛHòNFýb/w÷SR”ôKMïuõwßoþÿË/ÿfx¢ö&"¿èòj˧7¯Ç÷ŸûŸÅv,¹döÖ¿Íîç*O+ø&¯ƒ'(/yø’ï¢ø´´/Iûù”k›*ú•;ÏËñº“>"]¬¯r(ñ((¯¹óœ<Ïëñ9œ/3󘟅µX¥U~ØÏ÷ÚøßN©šºúØñN/–üùh¯¤ÿ^mÏÆôlaOTïþ8ÒKžoËè¼éOý´ŒÚ6ï-otôNV5ñRQŸ´ôwõ?g}z'ö¦†obú†·ï§õûK¿&õ~¿¿•öM-ŸBôd÷ÿéòίoBù–ï©ñ’‚-’-3/{ø+=Oiû>Oj¹²ò‚¶?Óù,›;RÒÉÒÜr-ø,¾Qû¼ï³ñ–oñ˜Y¿…õX¾OKõúîï¬ÿøˆgk+»/8ÿûÛ¿7µùýx~¯ÕöMlÏÖôåe_Mûø/køV”ÏŒýˆ˜‰ø(¼Ïʼ¦Gr2ÜTô>$A¯á7aÅåxvMô„6EôÁ>Á¬oBñëžGƒÆK‚wço$x&Ö=ü>.-Ã¥øáë!MaÅôƒwÛ$/hô×;áüa_ïtaí‚xÝ*x6Öü>d¼<áçAÖLñ‚{ßDó‚2IñÃ:EøÃ%ô鎗ÆË‚wׄ'cI|>ÎÈ£¡ágAÆD/õ(D/ô(D/±—l¶ˆöµw‹¨O:—(_ìóA)Ï,saøâ–ÏjñaÈ/Cøó¨Bø²ëÏBøÉBøáÉú–é‹(Oú·ˆò„s‹¨_®óÁ(Ojóá¨/jña(Ojñaˆ/Cøs(.„/ö(„/ô(„?1–¬o³¶ˆó¤s‹8O8·ˆóå:„û¤2†úª†âjñaˆ/Cøs¨C¼2ÿ8„+ÑCøèË¡kÃM]$Ž(E’(<2.4$!†úA¬-A¤!Œ–ˆIxø„DEbAM‚„,Z„&$`HAÌbh˜I8Ž’E‚!Ž"A¦‚„„ÈA!™˜„³ñ„DIdÄ(CdBC”ÁCOE.’0H#x8Ä"IAT#1ÅE(D4AÄN‡A¬ …Á1Ã$42Eh!¢caÁL'àBqBˆD‹(EAšÂBCÊ$ƒQABˆdÂ)’ˆ'T9ÀDKBâØhb 1MA©‰SH#DÄ„-ÔHdDŒ5ÂÁŽ„%áRÁˆPD8À$˜R%ƒÂ$D#‚Q!B©Da‘ð!„$Dˆ*5†*B˜Dœ‚š($–˜CpHÑñ4ÇP„"AÁ"‰Q’($‚"d‚&H`ˆÑÂD6‚(1¢Á@TA„‡G !!1*E&¤!‚0"$€O"õÒ ØB„L¢!)‘„Œ"A3,(”ˆA,AXAAƒ$BÅ(…20()xÄH‚)È((„X($PHA@±_ñ>Ï!0"q"‘4ŒÂ"*ÁÁ&iÃBƒ‚Tˆ(ƒ²‘"'CÓ20%‹„QB"Ä‚q$(C¹$qÈ!! +)ƒr¨A(‘ˆ)1$%$A@2k!_E‡JIQH%ˆaL1!ˆI@HA&RƒAB@C(H(P(€aB`QÓÈ@ŒhA€‚ A€ $„EDBH@Šr„"Œ@„ò;)2F…¼SbR!Nƒˆ‰•‚M,á‚dAœÅ]BC²DQ­1ŠçŽ$‚+ÔF‹*¤ƒ%ˆØõˆ%©H&¡A§È&þ”‚q‰Ô£ˆ¯LÛ˜"˜AD˜…ÄÄMQƒòhFô$‘‚D†„¶È¨#lá# 1L‘"…ªÀEª(#I(D„1$8Ä!$4"ÀA!DA()’œP+!Œh+B‰DX"I"L…EÁhÐAR" ’$¨h/±,EÌA€4-A†$%I`„K³\FBW„!’Ñ!È€TЦ†"a\!–(h†]Š„7Áˆˆ­‘D#ØH"$MD§Ö4A…1hM„ˆÃ‚h„ÈÀ‚MjS(€@" @(€‚€_Ë  („ ("" € BÌ;QGB(ÁxQ((€øŠˆ#GB(AøA( €ø‚Œ8(GBðAI„ €ø‚¨#€q$„’DÐÝ(`B„”€‚(€€6 ÀA‰ðˆ&"ÀAŽ"€aB€ÄÎ# €¢"@Xˆ€""€! 2„ Rˆ€!(" "€!*ð“Å€I’ @8A„ )8€€I„tA )8(4ApAxA )8*I¼>o(K"ApAxI¸9€²$@xAxI¸9((K"A€„„€¸9((K"Að¹Ì„ !„"€   L<“@„(( ?šEA$B.„D€Ø¤‚ˆ%E‚„G(‚d(e(ˆ1ˆ!ˆ-ALZ‰Ø„R°„G(IpHA4CD@DGAA$„D“B $$HOXD¢°BD†QÂ,ˆHŽ9˜B#†4‚12fDI%$H%$“EaD@AáDBE€DÅò•­(@ €¢"@( €7Â@€‚@€ „""( €2𸀄Àê""((Ÿf€€<3¾‰ @€ ð^ê@ €@8Q"€€2 ‚€„€€ !ÿb ¡ "@"„„€¡ "Ÿ®v<¤ÄoH±ŠóìÄúF+‹ÈbÏcöâ§ÃÜaV/¿rsVúJB±—r'¦¯lôeï墊'DM¿õö;7ƒO·õe_RØÝòmßÿËö>_cû½,ÇŒ¯¥õš‡Û‡Þ¿Ýöm?åù$„_Èó5ÿåÿ!„®H/ùÙ]r-|.ü,Ÿÿ‰ò.ßòýí-_ñCR´üé=ŸÛ÷Ë=ókŽOAù¥,oSóoÿŸÕý¹mÿúÿ}iŸÖÒôA—™ñ#.O#ú¸,K\-jO!ì˲ä÷”cgô?$ôv·4‡´;D½Fÿvø|¯OyóaŽOkñ/´rNÿj{½Zo"<OÆÖéÞ˜ÿxªÏïóúx¯+þT‚Þ+]kþQ«åøº8û¾-²’?Ÿóʽ¯¤ë!ö,‚3ãÂÒˆø(….‚O«óÏïéÚ5yú‚)ÿzë#ú9¯¯Œñë˜-²OcúöeÏýúÏâòtþ¿×öeANÁݱz¼ö‚<ï­ûXÊÖúŠ|/+ëÃ=®-g´¿äõB·”'´Ÿ¤ÔoöO½oÆý¶¸oAò&6O3r#÷DaŸ¡öä<¾ÂeÍ4Ž{ßÄã(ÓDóÁ:Í4¬á‚ñáž#qaì‚xsíƒø2Dü2D¼ôáëaŒÖŒ÷ˆrÛŽ2IñÅ:A¬á„òäžyräwǨoCâC|:üȧèããÁ4ÞM¯ô(E¯ô(E¯Ôöi8÷Œ{‹8_8—8_¬óA(O¬qaèîña(onñaˆ/GøSˆ/GüÁ¯CüɯCüáëáoQÿšrO8÷ˆ2O8÷ˆ2_¬óÁ:O,óᮆòª†ø2„?‡ú2„/ü:„/ü*„/ž®oþŠ2O8÷ˆ2O9õˆ2_­ñÁ*ÏhqÁêjñAH¯jñAˆ/CøSˆ/C¼ü:Ä+Á¯Cüøë¡oAüÔãF2a,2G&6Al8CL8AÄ脸<ŽR‰ò„B‹$†"ä(2L¦&äx8Jˆ#ôAˆ-A™˜Bˆ)„˜‚#á(†G8Ž#A¦&á(X‚ˆ!„Ø´h8¨aJš†'EŽh((†Bè(R„¦®SÅš2J‰qAq24H.„;)+CØda*dD,ÈÂTƃÔ!a,‡AJ‚¸L¢)ÃÅ)²ØB‘Ê@ÈI‚Ô#[)Ö6H’0²$G$A,É"\Ì"L”Ø! ($!(5‚R¡+…ƒxñeÔ€Q¡" ѱ*A!8#H4$)RPH9ÁH@E)A”(…$& *Q,Œ”1!¥ÔA‘Œ#QBÁ,p"Ôh1!„HDÀRN$)™HðdóM˜A!$@ˆAPB0šPAÄA‚I˜$`Bp)"‚!BR„œÀ$—Bˆ-$Ð($bA$D#Ap(ÍD"D(DŒ"oùŠ’”$„$@D@AD"c•h!#„"@Aò$IÁa3’`BU(AÅ"H €1D)@%DjXJ2©]w#’"ULb!!PBDá!A$EÄAXƒ%¢%X‚'AX(Q6D$ÑÆt1qD‚BAy¬³QH4 3A"4!‘E±œ¡„Á(L±ˆ"„(ñ_½ BC€S‰A†„@,(€2(!8€2EaB@& LD$(0)ADA&BERBÀ"À=ã_!AÔH"0BˆDxÂÁ!H"Ô(¨A€†/¬Á$Æ'tc„Hí„È«È"ˆ‚! 4‚`($ˆ0„X"œˆ-FBGh@dÅ4AŠ„r„ŽHðm‰ ‘Dg“B£¤!©¼’@«)D.„G¡dG!Ç"‘(-$\4!8RäL¡"U*DM/BtÄAŒ¤!'T,Ú„Ç8X)DIÚIhDäŠt"ÁI2%(T„a‚áu:‹(`ðB$àAQ(4£ä(ƒ1$D(¡$A0"¬"W‚E,!UhC q!XD)ÁÁFÄF¢„JÂ@±Dq„ G2D±$Á@8B !ôÀ)DÔd”H(‚!$ÆE&”‚BDÊÑÂHªÁ)\‹H%ÄAHD4‚Æ:#„¢€”„(ˆD-%©ˆd*B6˜!¢!KˆAƒ†8$ƒáÄlÄ„„ˆ„,ˆå2>Ö(ND$dB,(„"JfFÅhÐ,ô!F,‰DBxDPFa‚dD„LèD@!hð‚!%,!àÒA#HÙD‚Bo· FDX!"P$(!D@D˜AD $@d€ ‚ „PH$, ”„ŒiMCÃDD¤$c¢$‚A#…*RG”œŒ4H`„ b”$D!…ÁTPBAHp!Ô’(4ƒ””AÄahŒYDðš!$@(ÆH@D$D(DB@I4"B±BˆBLDD°A*Dˆ€tDh!"D„ €AˆÁ+óD‚‚©d!HBƒQ&Ð"ATB-!!!ŠQdd)d!°Da%„4(HWÂ@”M…2$ADWH!#bDC˜aFDf$ˆà"hA¬töF„QdG¢pTX„e’B€AD€xB[ƒBX’3DQ(4PQ˜‚5È‹A!!dAA@QÁЂDDHDD„‰ÁjÃÌ$$lb!…R$&4)&)Q‚$4B T„¡$ˆEˆ!ˆ1„‘L!ÚR ‚i2`Á°Hñˆ‡BÎP‚&IUI8ADIÒD$0HŸGB $!H¤Á’AŒRˆ$Á…8„,4„p‡ƒ†ÒD80xdB,ÈAH6&2!(0Ž(„Ž(Ê(‰HRAŽEI4…Š!ˆ¦ÈgóH!0¤ ¢BF("O„ˆˆEKÂ@!@A!(tH˜! €¨‚€B (‚("IK" 2$ˆˆ(€XD/² `„BB"€ÄH@HÈBBI‘$!D‘„ˆ€HXHA€`‚A@$‚ˆ¤!€HA (,2±¤Í&!hÂBpˆF2”ê!1B^ÁCÔ„è8xʈŒ„èCø!Wˆ„.(sL1ƒԉr"qÁ"’²,¸$hAŒx$X1P¬>„üèYó!%%âHAuáD4J"BE’„Í,¬…$EDØÈè!øm$CFh&FRrm:”JbµFXfŠÔ"‚R(H+B“q‰HH”JÆRKB?$2‚„FòLCôQ‹F8Aá!¸¬A6è‚rÔ–Á,ŽF¸%AÙÈATHª‚”.¬ø„‰È„Á¥$Hi1„LuŠª”B„,2ÄAV-‰Dô"!GJ)aaq¤'‘'"gMFbAFvT¶ÏAÄs1ÏT4Ç!1„CÈ‚…Aq‰T=!(‡bÁMˆH1(ƒ˜OBq$´!ÑÒEXX‡T•A´ˆ(ÑÄö#Ø4?òös3ww·±=[?4ós3¿³ó±ùòþ®&/"ò"2?¶÷'GÿñõaÿòñˆHIÄx›÷“C/(üA¿4q›ñŠÊ„ónGÙßYÜ;ÜLw>ö”„?´Ü÷õG;ö·‹(_Óò$¬wë×Y|ØwÑ÷ñš+¿8Ø3ó'yò”­ïòú.6/eò¶†}ÏßTó7/ÿyô“×ÒßÓÔÝ|Ÿÿ%onþ,tïf¥M/,üJzïfõ–g3Ú±ö')_²óO?4Ô³ñ#;¿7óóeò÷6o+û3*/3ò{oýÿ±ò[oÿTØõøLßÿ9ôVí™—èw¬?¥×Šù¨.÷ÌßÍôK?Çû$¦gHG1¯uÝ~øŽg/{[Òò/$ÏrùŸ-ßó×ÿû¯oÿ¼ô[=“?zr‡÷·%_sò?¾o"ø¢.gqÿÅý,¯÷ú=ýKlÏÔÚÝÔýyŸý5voÆûìnkL^Ro¤ýÊNonòÞL4¿5ókKñõC·5¿–õ{÷ùI¡¿óx¾o*â2òs3ßvñ[cIßS}VüMMÍÌýÇTùÅßÝôžö?´ùÊÞdßûÿiÏTy“úݬ/cÙDyÓûÞ†oeÙ7Õ÷ù)Ý-ß2ú&Ý™¿xõ–FýÿOÚ¿¼õÒc?ûÙvû$½çëïmø–obù—.Ï[þsžïvñfÿßÅöm%_Òþ*ŽÝ±oî÷ü(ïo¿DýÂR§)omÿfHÃSsÿ6ó__?±tSûK¿”õ3•ù}ã?*û6&/"ò"3¿óò_S¿’ÔÙw]øHMÝHMG5ùÃ÷íÝ6ýʧïÿ.ýßÄùDÓ¯Ëò´¦oAÙ$y›þÖ†oq}‚VŸ‡ÂßÒò$&ïÁû¨;ÿíòú·ýÚ¯¼õÓB?Ûwù'µ_"{žþ–†oaÛvù»,Ï¿þþxvoù-,ORö-.ïÑù¥voÏö¼þkÔÎR'­/iýFÖOi 'C.a§CA£Ñv>ÂcÃâ8wLêhôÁ;AüòážcqeÝDxw܆x6ôÅçC/<>o–Žsß„ñ†2IñÁ:Iá¬áBñáž2Æ„7ç*x3åü:%O|óáç1–<_¸÷L$/(“4¬Ó„ñÅ]_îiSÆÍ7Çø2L^̧c<Zþ(G¤óÆÌ¯1õTð4*…ÑÍ1.a,¨!&¡)B$$„EAFQ"$„!X:REx„‚Ã%%CXA’À&aI)H)õ"(M#ŽOH"…Ò$ÐB˜28AG@:X)QÆ¢ ‚PB$ƒÁBˆbŒÀ$p(ÈB"@H$`D,$ƒ‚IHˆ1d‘A@H"‚Б>´$!!GBÐEh!0$€AÁ‚A¬ÔDRƒ˜Ða„A‚#A*(À$$0P†À„A„`jh„€ÔDÏÅ…:G,4D…‘c-XŒ(ÔCHòD!ÁQ°fÄDÈD$)±DQ‚BAÂ’!—"%D“G!/FDT<a™‘B&ª(•¢(°d2ç‚eŒ8DƒâHÅló[!Ha¤@¹XRF„8%FA¤$T68D@D@”B@˜hA,(AB!‘,@SÄ@‡,2D0*0%h&Ž#I"øˆah2ÇA""X@Hˆ)„4ߦ D"DX!pHÂd‚`APBC2@‘DD€LT)„ I‚$$’$A4!B%ÑB‚D$%x„$ÅP@BP¤ED KH3Á©H.B'!@ØBa$(ÐAD"{IB¡±BL±)†(ƒl<…‘AˆÅ1‚„’IT¢‚†”B0B‚DDˆT"CÀ"& ¡2H‰(HôFæDB`„""˜ $ )!œ@è"(ÁF RH„Q!#ˆd!HÁ)²„)DA!&´‚A!…Äõóˆ8J F›",…)X".AÀ“ð"¡‚›HX",‚O‚„'xH-Ti1‚@˜ÄÈ%"ˆD!M„ˆ-!HM$Lb„T‚!)©(Ȇà¢EEA”(FHÂ’À`TF @2HŽC¡"…¤C¡!'A)A(¨(‚Z‚Ò‘k#3CRB ’ àBÈR$l&„DD!áÔ!fL4‚T!Â$r8AHà ,)Ò¨B,â !@4ˆb#a!xA‰ÐA‡ÀBDKiTˆ@$Ñ¢XA€*p"‚ …F NADBBE¤”4LAÒ!äsÂ(°BŽ(!!àAá‘4@2¡™xH("ˆPƒĈ$§A$AQ H’’‚C1D›BT‚(@‚¤$’ƒI8„I2Ì-B&ˆQ1!‰’ƒa„ÁHB"F3!"„¡T!‹)qø""‚`ˆB„DDá$ɘE¨g¨‚-ˆ@HDH"A²Òȃ–DCê!²dÉB‰lCX#caÿÍAb3!!B2!0(ˆ"Br(Ñ,è„QÐANøˆÃaŒ‰ÑÌQC‘\Iø‡!%áÁR¤(¦Ì"#(A$bQd„P!€ÂAC"$*bF/BbBF`"¤#["E1Q„À@ÂL$À$P)A„AQ!!DtA2h!$ @”"%!‚TBP$$A¢‰„0F!@)øN"I "A"H@ÂC‹DA!!‘‚DE`B`$$@!!@#¡PBŒ$†‚’(ÄÃŽÔ$Õ"ä屄á‘&ñ˜hŸQÔ(áaÒ¢17¤F¹"±´*„4#±%Q››BƒR¨ƒñA‚Mt9óˆ*ƒ±BJ"h”!‡‰ÕR¸EdVQ+‚-!*ÁIž“Џ„ÑSq9‡ D‚B¹Tq!¸1›!;D+b*ø"$*±Ò†<°ø(4g!ÏE 5‘EbDC3ÂA!1%-‹A$‰Å±ruædAŸÑIÑbáØ’¦]„тقÓ#ÊåA…nˆ§ÂÇ)„G1…£”‡Bag#`!±G³a7‚+ÆÈTŒäåñ„"K%2R’( 9q•S‚qÒAô‚2+H?‘$l‚±S8g&‚­,´$˜‚Kƒ±xѼ”ŠÔøA'4ƸB‚‚a(qÅ8Nðg)Ò$´‚âathy(qB±DYGROBéÁ‚JÆ‚LÒ„XB…Ú‚ØHø¢)p[R(¯1ô1(»Q'…¯³×#üTßûõ’R~’oiù§VçtŸ¦ö_TOD÷ÄŒ_T–Á?ˆø7œ_CöÙ"ß÷ü¡HŸ8ö=–¿üU(òbˆ!•ý[/‘ÿVoqñ„ã‚ôA­?ßùR<¾EÞŽÏm´›ºˆ|ÁÓtÔ—Üô5]ÏkóÖ”+¹Ÿu$ú'H?’üæOˆÏÆö,LïÍùzOGñ´Ú£ý:¸‹U-ÿ²oQ"ÑáñWXñµÕ¨õŸò÷"-îßRuö¼¦ñ“¶o{üoïñ?ocôNlÍe_rá÷>ïññÝcÝýß•Ø3õÙSŸÕû<Í¿ÔÚ‡÷s®Iš‘/õ[‹”ùyÝÿùù=-×Ôß–ö…[ÿý6º_fÿ­½]?¨øÈËŸÂóu5ÿÕøÇ5ÿíó4[™/ùgŸTòi!¿nþ}(Âöl,ÏìýüocûÔ6ÏÃ÷د¡õÔZÇãCûâÍ_]DÿäóI‡´ŸÄôOööħÏxøo.ohÒvr÷.?5ônFogø6,MDWB_Úòœ¦Onøfå}&,ì(ù­}&_ùòŒ†/Šòæ¬gb†óÓ¿œøBJ;×äþj!jæ2õÁA©ýU¯ŒüšºÏ¨øHŠ¿œôK;ß·ôé/ÿØú”'*­)¯Äõ{‹Ÿ¸ö-Ž­)ÍHÇâÅü¸¾!ýbø¯­óŒÚ©ÙŠûº˜;+-ßíAåñOHŸ”qJ{{þR¿[òÞtïbú–²/bóeßrÖ¦ó3ïãv&ô,$CæBó‡7Obý>Ñÿýù”ZŸµ½øËÖO}f~ß8÷ú,k¨'(ŽÃ?˜´ƒýÓ3GùTIßRvLüemìñôw¿ÑüËÛŸ½üÉJ­É¿´ô[Ÿ¼ö­ÿ»–ó22>2·“ímÿ¸øIMÏÆôH,ÏÄò¬|ï­õØú+ÁïáûÜJ¥ùˆ¯¡y”÷ORp6ÖÔô>,A§¡açAÍeÁ8wMô†6A?­røÃ?ïX‚ÖM„Ö‘ˆ'CMÅïCæ<ñïAÑTì9wLìhôÑ;CôÑGDþž#qeÜDxs­oC‘ÁïSÃÁ«AþiÍŽwÃähôÁ:OAñÑþYWƉxSŒx6„ü>$ȧèçÁü=}E/ô(M/ô(E/Ööi8ö„s‹(_8§(_¬óA(O,saèjqaø¢†ø2„?‡ø"Ä/ü*Ä/ü*„/ž®oþŠ"O8õˆ"Oxõˆ"_¬ñÁ*O,qáênqaøâ†ør„?…øbÄ/ö*Ä/ô*Ä/“”îöŠbO|÷ˆ"Oh÷ˆ"_¬óAjO,qAëzqAø¢„ø2„?…ø"Ä+Á¯B¼ü*Ä+áéúÈ—¶ôA((ׄ.äb9C.”ôaŒA‡BA*’D¨i¼ò„R(G((G((Ž#Cäj1H®‡#¥‚'„ÄøAˆ'¶H¸xRø„Fh("ŽRÀrA&ÈÓ¡\8BÄØ8!ˆ-Á«!O(è($f(n(Ž"G„¦Fèz3n=…/ˆ1D£…A(2£J’àK/šÁH,”%0i@AÉ2¨A@òbÐ(#cÄHD“Q‰DÈD1D‡/%ÈB4JˆK%’ˆD“r"H!d*R‰¢$!£d( (ñl΀QXX†$(ê(ñ'L'Š.Á~IaO„ȃ­K,‘+•¸'á©VÄŽ<Ä2†Yâˆ"RB$Fؘ"‚H $!ˆ1ÂJÁˆ($¢F$ˆF¨‚nŒb˜‹±‚ŠsÈR‡q…ŽÑ*á…ñRO!AÆŠ…xøM2“HØÂ\²'(–qHHÆAÇ"ˆ‚ÅK!É—$(IbDK(DN„CHDDB„È$Ž‚HÁ°J¢°$­,:TP„p¨AƒB6…x#X8Ed!GDGEôL ‰µB5Ô$TT±HJ+¹‚1E-E„BTAg–(…Vc"aC,,‘ˆ"AÑ1‰A¿Ä¡Bh“bB…ÌjÁ‚‚YèЈ¸¡‚¿ÌDr]w™H¿1wYû+çǵùÌ”_Õ¿.õ\oHùAÙÏaõA{_µü¥ßVü-ÏFþ÷_÷oxwô’:¯¹ø+ïÃòßEïïÞûÙ.sJú²¶?áýM,½'?øtïóìˆnä9ñ®_/­ÞfÓ#ô¸lo,½˜úo/?xûqe¾ušòKŽ/hù×Ñô‹N¿èõæßþQHÂôöûo´ù"Ìÿ:ž¯áyúšïaãË'Ï_Õ«Ä¿‘ñSS¿âóT—íïôñwª-–wioqñ[ÜïÑø‹¹=]÷WßÒôm,ÏòÿßO½^Oqù…G_<õ[[5ýë^ÏýwÅþc¿äÛ&û‡o1ó^íM£?xóÓÓ?ƒt,q/ݹø³§vý³?zrÖøXƒ?˜ø±[ý·=Ÿ±tÇv’ö’’/8|Ïìuøz¿¯&ÿ:hOôN%,þ{Úÿ¢ò¾Lçó‚-/(ñ’:oKòòÐõCN"?5ÔõGmt_vØD}ÇçÌ»$ØTyÕõÌŒUüéi3úSAWR„üE…Ÿ‘è8µ‘ôÄþÏì,u’ñ¤–—þbÖ?;óÓŠ/"û"‚?:âHücƒ6òwÿAômhͨïóþZ‚ÿ{ñÿO/½úDÙ¿±ùÁYÿ:õÿ#ßÚû»—?äq–röR–Nœÿµøcx|8ÜTwg/yúÖÊ͸¯)ó–’/)ùo)»ÙòÕµôI¯µÕ»Õ±ôKVOÒö[ÄÍŸóù¢²/AØvø“o}x!ù¡×•ò)mSÄU_øƒ§¼ŸÌØŸ¹‘uÂòˆœo2ø+–o2ýë./+ù6‚o"ø«-Ͼü+Ëÿºõ_,n-ÝiO4òOîo«vòû›öûÑŸ¬µÊÙ¸ùsÊoÙõÁV?dù†’ga/qô›]_8u¿òW²oÖRYß„ò­kçh?ãÿnˆÏãy’ò‚/!ùº’+ƒ¦'CA¯BÓ4aïAÒQî8÷H(o(SD?üSD7ü%úåžGAÆODxsx2ÖUü*$=Á£Ñ1zÂeÅä8wLø†2A?¼sDôÁ„îiÖŒxsx2ÕXü:$MÁ§!~ÁaÑ8wLè(ôÁ:SôÃøãž!Ä’7ç¨'Cè§CI|’Èç#¼ÛBüA¯BôA¯BôaÉöM‹hO8µˆò„S‹(_¬ñÁ(O,qáèjñaH®†ø2„?…ø$įü(į‘ü(„/1ž¬oQ¾ˆóÄs‹8O8·ˆóÅ>ŒòÄ:ÎîÆäîñaÌ/ÇøsÌ~ͯü8Å¿ü8ů¶þ^aËyß8µŒó„SË8O¬ñE¸_,ñEjqAü¡Äú3„?ÕèCøRÄBøÈB¸ž¬oü™Š$„$B(ÓdB£Å„#ņ‡…„ÈA„KALúAŒú+!O(ŽQƒ1„‰¢8G„¦f…®„'*xRøaˆ/ô(ˆ ¦g¨K+!O(Á(O(â(Á$K8Á.Õ‘.–“áB|RøAŒ/TÈF4‰¸¼ò„RO(UˆKð„"A¦†2ªÔT(øAÇ!ˆDa@¤$xðA$„ÄÂTƒ‘‚„™‘B˜I(¤‚IAD±(È"ŒD‰ŠŠ$Q(I$œŒ¤‚Š‘&‰d"M&TH0¢E(„JBäÛG¢œ”D3„AÁ‰ aDÈÀbœÅ$0HŒ…8‚ÊмD"AL‡„#@¤‚€"$™„°œHŠƒ„(±¤1Bˆ‚A&”„0.€$„(Ù3ˆ„A¨!B“‚AbB@!1HIR0€4‰„H(NH$‘$&Òá"D­A1„Fâ„EÁF‘(-Q"P$ÀŠqBXi‹B(H”%„¢A!0ïûRH¡H,1((!Lˆ’@A„$‰& Fh1R£8%‰8A$„U$„@ŒVThRŒLÄ2ˆ€)±A£¶!‚’°ˆÅÆ3 ŒBˆx#¨DÃó2„"/R„¨!ÓQA…I¸¡$ãˆh¤:1ˆ£t&)Cr!X^TñŠñBJdJñ!X-e*d! Aƒ!¹œC€„Ô!Æ,”!#˜)(¡…PB! ‚ÀA„4H&1.@4IIEA„H„A*„…" ‚D!õ³B$Á$D†NA„ŽÐhA!$BDD 'ÉAh€?(0E¤a($`c€„"i”€ž0$`(ƃÂbLb¨ˆ2‰Ø3 HFJè„b)$ш’Aˆ.BÔ„(t"„$$ü!\Ü4ÁBˆè1äL‘H¨ij())Dø(Œ,Â4$FHLR!‚p¥$ƒa¢ÉsIHa„šˆ!˜`$¬>»D,‰ »Ð$ƒHƒQHˆÄrHDaC‰Ô!H‰ƒ!Â"C¨d‡"À$…QH"(E”a„c²DÁ)q$\¡„&ˆt¡BF¸8ˆ4 Âß® BH‘$F$Ĭ€b„àDI!b€dH0QB† ÍʈóI‚„( ÄÈ$ dà‚Ä„1 !Ž'BŽ!0‚ 8B 1„…$X‚ š!„!ŠAêB?¢!…"2A€¤a1P‚¢p"RA†²G†ÐJ"1'@(ñ$B„/A‚A%”+DCB Æ"¢ ðˆQ$ð"Aˆ+9PB"/#,!&ȃ²Ä¢GpÒ£ñ€”ÁB@ƒ4"D#"h”€Q!A)D€$ABÀ$D‰„ˆAˆb!‚$ˆ„)$HŒ"F¢)ˆF&#(# $…ÄäAƒñAA,!†”DŒQ*&â"(Úb¤$žDÄ)M)!"'CÒ$Q&,pPBDB1$ƒÁ!&Áʈ¢AÀŠR0È#‚²x„ˆÂACÒ"xJ":+„‚¤$Cñ(®$)Aˆ!!D@D ,D$DD@!0H0)´‚¸H8FB@BR4$„Žb!.I#á"3$`!,A(H6ÄRÀžcŽ4!$‰_!Á©Ô2¶Q"m‚Ax2I„Lù˜B€¤)˜e4$ÄFBžR(⤤‘H(":•H/!¢B‚,âK¡)d!]H+‚—ƒBH"`")…£C_º ƒaЈ!eJ)*$è!#ó‰),X„!$K„-‚“’˜ˆ˜%Á‚`(#( Ƀ2"ˆ2BJJ±FÁ”ä‚.‚„˜bK‚:d""‚.râ.$‚)a(nÖób"SÊ',Ä(¡( ‘O„!ᔤ¡L.!$F(¡$!Ä2L$G"O„’eÀ.(&¤D% ^$CTFJø$ø°‰ƒñýÛôI"0B©Al"-ƒAd‚ŽÀDH‡¼(¨G‚¢‚0‰DˆcDá¨BäH"ô‚$R"Ð%¨"ˆ%„)‚&Cè#‚d%€„Aœ¨Ah%DA|Ò„„F-¥ƒKBÁAÀ$ÐD!1!$„ Á!P„%¢X$@@ ÀsBH"©øLz€P!P$!H€€$$ˆD#)BP$$ HA‘!„E@BÀ:ñ«S/#Ã-#k!н¥Šh!$a£HXXœATÈ«$+^$‡M)!å$1‘-K”*M‚,Q/‘¶$aY"P‚¸b±’„õQ2­A‰ÕRé('©%b)%æ¨aK+Í-Ï“%ÁLØNÛÉÖ$L”Ƹ(•ÒÿKqJQˆÓ¢Á§„B—"&#ÑÁôB-ƒAG„Š2FGFè1B…ïDuŠˆC¢TC¸‚•"§WLN”DsX#lɈ+Uá2S5>i¸²$I‘BkaR†M"gÂlb!G‚Ê’†¢*áB=ŒT4ИÕ$TÔ©U¬"M’m‘KiÒŽšƒÏ‘qBrCtC‚âˆáhÂ(3b(+‚)2¥'!¬ o;¡ƒ,¡()褲%D¬"¢#"²‚ò8B`2I¶8‚¡3R+…ø’†(f„n¶Z¸816‹©T()x(òå;pSv8ø(SŸ#r_òj¯óô/»7¿Ô•žo޳2ó#~ï”úÏmZâÄy¸L~²üRì“ÿ,Âǯ¿Qÿ”HŸ1þÑ?ÿ‘ôKÙ÷¬ï̳"ùÅÃ\¸6õâ.â×V]Å¿¸ý½UŸ6ò|/òÈÞ2_wûƒ©­9_Õ÷¼v¿û4NXŽRÿؽîñ?ßêíÃ6lÿ›¹.ôl×TOFô$lOXõßOîù~¤¯¤ü„Z-¸Zøjúž[ß%'Cô"$MA£ÁacÁaÃè8vÅø‚2A?¬2„?¼!øã‡#qaŒxs¬‚/CÜü*$MÁ«A¾ÂaÉä8÷Ì8Ž2IñÁ:OòÁBÿ8BÄŒøcœN„?CÈůA›Ì©ÉÁ÷üSÇ„O(ôÅ:A_¬î8ƈ7ň'CÈ­$I<èãÁóÔQô2ARôARôaÍaoÖ<ö„sÉò…sÉúÅ_„òÄWÄîÄ/nñA¬/CøÓL/Bøm¯BøÚA¯Bø’aéúÖAí¢O8Õ,ò„SÍ¢_®ñA*O¨ñAŠOêqAø¦„ü6Œ7…¯ÂüA¯BüA¯BüiéþžM¯(öŒWŸ(ò„S(òĬò̬î„/nñAˆ/GøSˆ/F¼ü*Ä«Á¯B¼žîëÁûc%°A’$W„&4A&4C&tAxaÌA$DœD°<O(E"Q$Ð$R„&VlQƒLQ‚„-Ag„!„)8Ž@²AB³HÂ"CdbÄ‚#…xJøa˜/”ˆ)„¸¤‚+Á£á(è(å„â(á„â(sDhjVèx<¨¶rHBpH1>B˜ƒô2„Àô%‚\Á.ÒÁÆÂÂFã!˜ $œ‚M’À“D¨V2$5(It!ô‚A€#dA+À\LÁ‚D¤Ä‚LDh„Zƒ¢Bc#H1I0HHƒFA‚ñDÄ!!$MA`DEÁBd#ˆDAL°H"ɸCQˆHMˆ#‰¤Mäó"$Ê$"Q(I‚„‚(A8!k’ŒbP‚aAˆDeE(‹<HD´H+$)!„QL!@D$d‚¤­"˜‰L„ñKe0B2‰”XA€L¢‚$0BhDpAƒtÊ„$˜AH‚H‹ˆ€Sd¨A)D4E+‚HAņ”ˆ@$bBDAHAʈd!˜¬:€±C!%$A5‚d1ŠÑHAAA…„Ã.Ђ‘ˆ*‘JAb„ A&ˆh£!r(„A&Hh`Žp$j„(A*ÁB(ÄJ8@¤DˆÏ"!’H$HŒ_·L€a$ƒ„A ¸@!„&x(Ʋ„`„ˆ„Ø$€‘#A€F"AÒ…a$HŠ0D †€¢I€À.SÝ"¢AF¨D)áCÄHÅ‘i(È&ȈZ‘B0,•T¢4"H-‚ŽA’ºAA'Œ ‘D‰"È"2Ð$’!DŒdˆH´(„‡$D‰(!"E#¬D \„2I‚§BŽðkF@D,!@@ C$ @(HFˆ!A”†)€h¤E¡b H`H0¡XŸˆH„(€F(„B!ÀÞóšA* ´´4H >„$F4B…DAB„)D’Hˆ+AŠ”ÊEõ!J‘(N'IfA D¬s(DA䃕H‚OQ(cÂa,±&BV¨)Ê!.D.",ÔBBB’B$)BòÇø‡*aáAø(R,(2"†"a"CAKbBp™1%´BÁ”«!ˆ)²¤‰8$x(Z„‰4P6ˆa„‰aJx:ˆñ"$™ø*äÕŠ„YK!ƒe"*ä!±Ä*ä7΀a5˜Bƒˆ1)„!D8ŒH ˆy!hA‰(¸‚qBh(& €b†+„Àˆƒ%¸(”"Œ+4N!Š"„d‡"F48‡A0H‹ƒoGCD BAƒÁˆˆLÚA‘’LÑ(ܱ‚²)„4!B牌!K2̇$Ž(,r˜È"ŒÈ(@BÔFŠÒ‚„¢A"Œ²„G²%3Ä$#("ØÂ,¢„(A"„ ‚ŠÑ„†„%„¨FáFB…L肬²¯"Џ¨)“Ä/MAsyײ8ô#×4¿±÷?E_1òê–¿ôýo¤ò¢†?qï†ñGÿ1¯ûÁ…_”þçK¯ió»Ã÷7·w?ùòË¿5s~ö—+¿ÚýKµ¯bõJ>k¸?Þª×÷õë7w»_šý9IFú·o*õºê·wæñ¸®ï©|Øò\†hÛÊ÷Žr«h/äÛBó×k¯Š×{ýj4ÿ;Ñþ3AVþôÚÏ£z2jë/cøXöo¡ä©üæÃ9¾5•ô;z±tùK?s÷IÿëóJ?'û2²oJóE¿‡ûH“ÿ™ý?1ÿÖòii¿”ômãÿmñ:s?±úŸ?¿ñQK›ksÞùõ?¿ôõ3²-–/kñ2?æý.›¿yñûû?ô-)ÿBòHÛ¿¨÷&zïóz“öÒ¯¥õšˆ/+ûv&¯§þ8Zooãió2²>ÿÎæyñ›>·Þô%!_Töáb¯¤û6roÏõb¾ëÁ/$ñÒ/¤ñ~¤ß#Bñ#wŸ³ä$Ò—Ôô[C_4ó1Ïmæÿ>òâ¾/bØvú·Žì?vþãtú?a_òaÍ}§ï'üÇ#¿|ô³ó4xÃóÓKo(ÿsÿtzåûƺ/cÚ2ùá#/¬øeÇ2Õu|[õEIËÂ}Õ¯fúÆ­ö‚äo%øÂ‚/¬´&Æòæ¶/éxC~–ò¦¶?|øB6=ôŽRxüS%W_t†ôÒÎo,ý^ʯ¤÷†Š/,ùÊï¬ó†9s×sö1s¤ñZA?µõ[5ñm?dý.»wi/iø†o2ÿ\zû{/¿}ü]A]IßÖöI¢ÿÎwÿ?½Þ›üË¿½ñÃÂoSþK×ÿ²—ò¢¶/bù§jñÌù?±ý½iwVŸÖö%hMCßÅùÂ'ï¿òÇÆ-Ú¯%ñÚˆ//ÿJçîìô2¶O(ú¶–÷#®ï<ü7ÚO1þg%Vô%A_$ò®^/e».ø®þ'-Ú©øjú'‹¶ 'Cô:$]A¡ak!aÁŽsO„â(ôÃ;EøÁ"?þ(sa­‚7Ö*x2ô!Á¯cÒ\*áo!ÂaÉò‚sO„â(“$,’$¬?n(qaxSŽx2ÔÜbÒ|Âág!ì8wDè(ôÁ*A¬î8ƈ7ƈ'CȯC–Ä£¼ÄO#ÛBüa¯BôA¯BôaÉöCËhO:µŒò„SË(_®ñÅ(O.qÅìnqAìnñAŒ¯CøSÌ.Ä/Qü(Ä/ü(Ä/žìo¼Œö„SË(O8µˆòÅŒòÄÌîÄîÄør„?ÅèFüÅBüÁBüaÉþ–AËhO8µŒò„SË(_¬ñÅ(O,qÅìnqAìnñAŒ/CøSŒ.„¯Eü(„«ÁB¸Zž¬ï¼IM2A$ƒÕ$2E.Ä„#Ä„#õAŒÔH‰Ä„MAŒøÁ#ñ„p„2AG(“´„2E®BŽ„„LyBøAŒA‰ˆ„úAˆO¼ò„R°„¤%G(J²„2D&$äB*Ä´BÄêÔHˆäšDˆO<O8!4„„C育„rhJ„Ž9D$'$ƒãä¨G($H4>H&”Ò&1H.„ƒE‘H“²r˜ŽàH8ŒjE(ƒ„D2ˆ0Â8JÂ…$Ĥ$ÒQKB”$p$¢LC¢HÁ)Œ!êDñDh$ЏÀ"‡¡Æ2„$„#ãBÁ"D‰ Î(A@•˜hÑ„’†8‚†$!ᆈ3D(H%DH‚A /á!BÄ$B–BL!Ä!€’B(B * ô´ÃFä$!R$M!I¢a‚(‚0CA ‚4AèC‘J˜JC$E2„6Œ„Œ¤RPH!˜)Á`H!DG%B¸!ƒ•‚)A*±ô\6! ‰(I-`ЉAHÄÁ! ‡ÀAÀA`!ÃÄ(pIDt$D¨…HEÂa!KŠ"Q†(Š„¸€J(Qˆ]³Æ2Yb©5ŒR„‰:„!Š’¤ LâˆBAQ€Hñë„D$t„"1G†!I”&²XäAD1©$¸aáŠÑ"Š™abjÁ\!‚;!‹A@²X8/±Ž ‚HD@#dtH„x2$(…Š„LB¢AJ$ „!$(DŒf‚( "¨È#Ðá75)ŒÁ$@-Y„‚ˆMà("L(BH”BL@ÆðAˆ‚BM„0R DDJ°qAˆ†"'(AÀ¤$!ŸÅ ·D‚4µjá˜D$+i¨XK‚†Ž„–„Ô„aD‰R$„Ya‡ŒT$Að‰J$C1vŽHˆ„hA#„ª$MƒAD†äN ñB%AL˜$Œ$r(2XˆpÊÔò>¡S!T#Aè!d'…DƒÂ‚G!8¬ˆ&ˆBȈa „QŒ2DIY‚(AM‘…$E™t!DðD*„H$ ‚Ä„BDP$B‡""ƒˆ„HBôóàDAŠQ¡)L*” È„ÀA‰ÉˆDA ˆ!ÄHD°‚È8L¤O‚„ˆ¤ˆXDH(`HˆL(BŠ‘$$(Bl( Qˆ$dŠ;"<¨€´THA%(™”<„ÑHBFØ„E˜A3ŒAA"4‚-‚Lè$ÈH#QPÅH-DFX$ DÙ!Ä„…‚I´1„+B ‚d2Cê!$»ˆ„2‚È5ñ'A$AHD¶!€9DE!@D¹›!„BbA ˜B0†DÆXŒB”#‰’) $Gƒ’†`b#‰Ü2Z8!A¡‰‘B‘‡OH±‚ò"H@hfEhD„)ÔÆY„Œ)BÑ+‚Ðd $‹DXXÐ$´HWH;„ŠiŒmD ü$D$ø’*2%BO˜‘*¨aI2+…Jø‚ðÝ: È!ÀBHAD" òAEÁ@ˆBd(@$2&ƒAf#œAaÀ„HD$D@@"aUca–A€B1"†‚!BÐq;ª0‡‚©…ý!‚A"aƒL8A"T"!˜„„‡RI„”È„)A\HJ†8‚ÀRA’A‚!pŒDDá"¡$**¤#h.H ñB(H_qsLh A9!`ŒA((!8¸‚‹¡AC’„+$MMˆÌŠÁˆB‡A- -U‡!†ô„8HG…¡b„@hC(^éÄ22L2(,6H#"$!¤)Cäƒ,ÂLDB‘(p’,É"X‚J²H!Q’$‘&HÉFH=‹AÙˆ–‹aYH›‚†’"„jR$#L!DB øG¡ê!Ž“!`ÁJaÄ@ „Œ ‹°*ˆ)x8ò"Z"‚qJ¨D6*‘&QHÔˆ‰D¨:XBÁ`.‚„ˆ&Fa(ˆHIHâ"4$Œ¤>ˆ-&rfˆè(Ø!¢„8a˜(‚‘D‰Ç†ÀDDÎ$Žlb+AȆ>™ÀA AI€H8ƒ@À€8@‘D ÀA$‚!!PBoÑ!H%2ŠB&„‚AA J%BBƒ!†@B|5~¼õ(R‡‚-F‡1R‹!(8 ¤=©VHl†7†„NAï‹åƒÔÌÁÅ9¾ˆÁIŽ8!†Œ)xÈ5BVÅ&…ظX(§HB§1,üˆqËY%x‚7‚òƒ¶¸EyBxDÚ„²F܆˜FèKCHoBò[@_•i„L1Q“óB†¢àšÏCX$„ÉxBš¼MŠ5´69˜FøòáHÔCQ!%Á&dQ‡)‡‚ÈI5$ï!¶˜…Ja!+4!K´RR1€Ñ´’,+:(((k!*¤@hˆÎ8G/‰?5dÑ*ÈY•˜Lx‹¬ãJÑ)Á‰Á—Fr)¤H™U8pXpHˆ3$›4ž—‡…qQh”ÖR¡a+µ¡b(]Sƒ³˜±±†!å\ò"(À¦¡Lù2Ò)ñ)ªA¯ ?'“t¯Ñô+dw¥‹ÏS¶öI”¿þý‚5/Ä«?ª÷K¸/ˆû–[NŸÆù,O”üòYŸcøÑ4ïaö:ÿI;]‹IS¿•zÃú#ß/óN¨)óãü­óVšïõÄz8Ü”ô—L{sþ–ªO;ôf¥è¨øWß(þK(u³®õ̘Méu̽‘ù‰tDá¦ø4$‹FïMÿ2¨n(¾>Æ«cG…žªOcý.tcØ#ñ[(ßñwz²Cõ9}Ë!ÏÁñ韯%âi«>Ã?$ñÉ»µ÷¶ˆ&ôiI”öÄÞ‡G¿ªù["¿øÞ&õ˜…ø¹ýÏÖ¬õ¿Ÿ¯¥ó–²*ñ&÷·£¿¿øKoixRôi)¯”ô„š¯Äñé:¥üµÿç!/)ùSX?û·>ú<‚ß^õò:-oaøWÿÝñT5÷®²cãÆ¶nöèÖoEù&.O®÷ØË/!é­äÃ÷¤-jOôcn;4ß5ÄQ=J[Wþ¦wÏúÇ>¦/"ª¡/šå7xéüwço‘t$õilrúÔCOR¼ñöG´_äõÙH„Ûþ®co±þÇ.†o2ú$êïxôbÇ7ìtû>AGT—Äôû¬Aox÷»N¿„û×K-Ó¿¨öë:?~öŒSÏ:øM¼¶äHø„}ÜýlªÎÄïATˆÏæÏlüŒÖíè¯äòÄÊ,ýȧ¬O5íüì1ZE/sõ(E/õ(E/1ÖöaÍáo8—,_8×(úÅ:„òÅ2æøáÆnñaŒ?Cxsü!Å/Sô(Å/ô(Å/ÖþaÍaO8—,_8—,_­ñE(_,qEüáÄòáÄøs„7ÅVüERüšQRüaÍáïôŒcOºµŒò…SË(_¬ñÁ(O¬qÁøä„oîñAˆoÃøSÈo¼ü.Ä«Á¯B¼žîëÃ_çK±IôA(IrEèB1A&tAèBqAxaît(ÂA"òA,òÁ«!O8á„R$M›$M2ÓdB—„&4C&tYxaÌA$-AOøÁ£ñ„SÐuYtA˜$W…&tAÈ”3Å„„Ä锈O”ˆH‰¹¼â(è(ñH(ŽN(Ž"G…¦f„ŽüshŒ)’A%!t8QÂ"<,*Ę…Š”!pÈYŠ¢AL–‚Œ5¡[A‹‚Ã4¡GЂc„A"(ŒN+H-(D$‘BG”žB"G! a„€qfhLd —)$Z)X±?¹ FF#d‘%XD ‚eÀAEˆdAà„„ÑØ¡„Є„°b¡(äAÈL(."D!ÙA4žB`A! AF(Ò$A5!(¤ˆ,‚Hbˆ-¶CÄD UH‚qBXD<"˜„ $SbAJ’AYCAMaƒ›A)BˆÄ$*”E0!ƒB¨P! ¥‚€Šá!D‘a¸%˜Šˆ„Løø{àè’DQ(œF+)B)Ñ$Q$ID"G!€)!T((%H)Ê$P&–1)”D‚a!A¦H‚ÁBŒ•"€ˆ’„B‰RABA‡„A’‰¢AKA+ˆ€”(WØÓŠDR$EHBbaZrHÔ"A„)ÄDR18MDh(AIBX$h…¿BÁac"ÔBØBbC*ô$%A¡$h(!’(('„BB¦‚8&1$Â&‰„Ô,±A²TÓ„t‚2Nˆ„¦èüJâÁ‚4•@$ábHŠÂABV€*“F@H4DH"Ab„…€€4ˆA€È„ˆˆ2ˆ€Äó˜"FÁ$ „¢ÐĨ$ˆÀˆd„LA‚pŠÄ$! „€ˆ0„;EDhD(…$‘(#ˆ¨Œ°ÁÁAH†"0’0B¨BÊ„òôWJdà$‘DÐ$&!°$¡2( B*B4"BÒawd!L´qxD„QBÄ$0$‚HèŽBâId„ ¨AJqFh$ˆF6>"”!Ä‚¦(ÒH"ˆ(|5ß-BPh° $l„(LB¢„.JE„Bd„8%4!/%( …,QD0CÄ"C„ÇIJ’*Ca¤ƒ+D)ˆjAH„IC‚"4(†¤%ZH€‰ˆ%òu¡ "J1D¤€ˆ (@²TCX h2I‘‚LJJ&DX„Š‚‚ÁaŽ$¬$ˆ±„A#‘„Ðd‰U*„"J‚À(6AMB"˜(B„A"BÂŽ"Lb„…!nˆG$_: @$(D"DB ÈI‚bD!.€ "†²$4BPƒ0!‚)†ÄB$" ”ˆ,*1B€`‚‚MBB‚O²4Â)‚Â@X‚p$x6Ä„/Œ(“$AÁCŽâb6Ci¨Š”IK,ȤA—$‘&„ÂhX(8"@!##F(ÂG"àˆˆ0$ƒj$&ÂD&xFh©Ä$)ò%/Ab" @(”(@"ˆ BBBI(2(I)X!„‚Š!$¬H€(€f! $H0F Bˆ( ´‚˜,9ÿHƒÃ"D(AŠ$"aˆÊ&$ÂŒˆbˆB"FB"”BG$€!È[‚‚_„„D”BA!C r¤L‹M"LˆÂIAPB°(¢A‰ÄhŸ] /DA1BA4Q*™€a˜‚A“$D¡!#±dD$!'ˆ3¡‚Bˆd €A‚)‚±$(202)¤%pˆFè$!ˆÄ8BFH"ô‚Õ#LE",M"Ñ$"Ä"a$ /Â!¥FÒ8¡†’)4ACdP’* €¨ác¡BPB@BxHÈ""&XLˆ>ˆˆ!„O' „!Œ1F„!8"B,ADˆH&ÒHˆ(4‚Åébp„”ªX‚".„DÐZ‚ØJ"QH(€‚ŠD‚$ÈÂB„ˆâ`LFtH„BÄ¢(FN"Ò$$ HA‘A@@@AHAT(ˆ‚$ ""HPˆD$@"„ €ˆ½@@AAAD!AHD(‚@„)  "Œ>Ý$KA›bAÁA±…·„‚bB†1%†%cRDˆèR *™¡G’) Ãü„"&bW¢"‚!Ii˜Š¡Š‚!è(È4XLÂ&r,¨AÈàAt*¤Á#qØ"„òa!0A#EAx3eÄ+*‘ŠLñ"‚)Ññ‚‚EÁ!Ò4b¼äÄJG/ˆ$Ѳ$ÉÍ2'‚\H›„‰ÜAøH$‡E‰B$dDÀD¤&B’ˆO"|(˜DD)2$-Dƒ%(B,Ã($ŒBbˆ â˜;uD•cAŸ1ÄB•‚Ô8¡(‚0]!ŒRfX‘FÈI¬ÁM¤.……DJ¸Ò,C‚ÁŽ2KMH%¡BA*82+ƒR:²D(¡ÄJtšæ¤ÓˆâH,ˆJ¢BA,4,G‚ÇBÈi¨ÁÃ’Á„ÄŒìô¿mÐówyc÷)5±õywSYÿüuó)òQk˜_¶ÿK)u÷ËÅŸqñ¥‰?öIÅ¿_õåK?™ëôö7¿\ö–Š^hSòÙG™øuá2‡Äk©_—úiO$ñê#ß\ö‰‘ÿUô!¡}7’OÈé¦×D´’¾†ýˆòÏJô2Hï˲XÜ,qmú6¤žˆÏ¨ùì««ïì×(ø^L.$í÷šŒDù(R¯‚µ¢»DØ¢ú.N®ÔcÉBÂô:ûT]B=óñ[eŸ8ö!%ØDû’">AïµÜÔû§urñ$MTöHÓþAoæñì?üóC_4Ñ“ýáŸX÷Ã!?³ô]’M¦ªò2cßóß•ý­AŸxüG!eW×[-/AÓ.ètÎøZΚάcvÚüžj~ž¦äHøbþÖîÄîˆ/ÉýN(Ì6lO¨ýÞ(ïón–OBþ„X¥òJÊ-gûJåLóqÿ²õ-y±ôQ¿µõ)M3ÿ_µ?\ò÷˜k¢oAúÃ=ýoÉÿ“ù'¥·QŸÖômé_vþY×nô½:¿œþ›ÞA¯¨ñùÏ_²ûE÷Ÿyó÷ˆO#Ødûñ?þj¾Íl?²øweŸÖUú1ƒOfÿÒxoIòʸÍÚ¯­¹š¶BûŒþnZÏëñÿ(/iê*ñtÖkï/éúÄö¯Šø~l(O„æÃødú¯É÷ÖÌïeÚ,ýˆH¯(®¬í;£ÒóMw¯Ô÷K'•Ÿ4õI.Zï7ûT¦Ž6O+ø$²MæùóýÂß¾õõnŸTò)dß–ôeL¿TÿûdÿñžË_”ù“X—<¿™ýc‰³ÿM·?Iò¶‚o#û$÷7Ù¿ßùúÆ)RômaTÒò1ÖO.wúô¶Ú-’Jõšˆ/%õ‚¾Ï&ýèžïKò’¢O#ájù¾¬¯©úœöOŒú(LO†ÒHöÈ"Ocýhúo‰¶ºøJÒ¤ü‚B¯„èäþ—Ùð2D-A¯CÒ4-aãñaÉá8×á(S$¬S$¬Áî9ƈ7Lj/CÔü:$o¼Ô>/ì8wLè(ôÁ:A¼îyRtaŒxsÌ„'Cü:dMÁ«A>MaËHO8wMø„2CøÅ:CôÁðá'AÆN„7ÇLx2„ü:$I<èãÑÌ:ÆLô:AÏCôZACôZaÉö^aËho<·Œò†sË(_­óÅhO­óåLîÆ®Æø2Œ?çéÂø:ÕBøZÁBøñÉú^áÏ(óÌsÏ(ó„sÏ(óÅ_¬÷„_®ô¤†®†ø6„?‡ü2„/ü>„¯ü:„/¶úVa¯)û„s(û„s(ûÅ:¤ó„>¦õ¤†äjñaˆ¯CøóÈ/C¼ºü>īɯB¼šžìo)þRàˆ‚Á(IS„GB„.„àBHøaŒô(„ð(¤A‰š„«!O(•(KH(Cز„R„GJèJxèBxøaŒ/ÔHzÑH’¨/¸â8â(â(‘(Ž2EèbIè"1"'†/ô(ˆ#á‚:(++!Ž(,á„ÂN(,sDhBBâ3W%È”B0H G5Ca$I‚h¨LÄ¢Ì$BÄAÄ&1.„pˆµ$IM‚CÂ"„a,xx„abD"D.‚%2Š@¢!C’‚À¢CØ$"Hì$bID`F†¨$ŽA-$‹H0‰$š”"ï) ŠˆA „!QR$&$¸"‚$ø*$AFÕB p¡”ˆD!ZBM" È.N’D"iA"[,B"*:(‚a@b"IHô"ˆÀ$Jq„BD¨BIn*pD#vÑ÷2ü8D‘H…T(HEk8ˆpB(“DÐÁТ$òpH(“ˆ(……)ADRÔ„j&i‚‰r!b)H-A’!žF!ˆj!$T!(…4AL¢ ‡™$’@DBÉDÂ8âB"$LAHA„F$1* !”/VA#(!LâAFˆ8!G!à„8"A€•P„*†ŠQ‚ !„„Š4ŒÔ¡>L€QL$H•â$ÔH‘h"M‚€â¤A"ÑV”`„,aˆPÃC‰1(QH’)DD2ÈDH–X…ÂH.H±!ø¡AJHAbqƒaAL¨(>ƒD…‚"QE¤(!„D¹ ‚H@AHD¡.ŠDZ‚FÈ&&¥ˆ!$,j„p„¢$"!`X!€.HŒ!€Â‘F €a„´á%!‚Â$€„p$BHA@.‚H$DÄ$"‰bBˆIa„$ˆIˆC8RACb‰D(I¢ˆB(N(C H†¢ADH"DJBd„Bð{WHG$P(@‚Ñ(µ¢ÊB ¢"(XjÂb ‚b$*DA‚<$¤A#Éah È(N(Bª¢„.(B %,EH*t¡ÈE¨ˆ@.tQF‚‘D ¤$Â’‚â¨:Ž`"S*A©%b(CBBÄ"b`a"¼‘Bl$€Fì(bh€á„¢( b„ƒ"ÅÒ¡"„^D‚¨kLH!A ´$d!ÌVŒèBñl3€"€•¨`$ "* (€*"EŒ"4$ " H¨JC¢HA&˜(I$¤ˆXÀF 80$‚„HAhB`ŽHÀR"‰4AŒD“¡¤FÆ$D:(²DD…bDÀ-àd!„ލƒhQ%¨C˜$‹,¬D(@„KX#ƒ© !€"„ò”H"€TB„FŒsBˆ!D¨¿¥G HBƒ„Bˆ‘"D€tB©QH&ô„2€”ˆ$h‚"†D‚)„ˆ€Ib!ŠÂX!@ˆHD!2£T‚"¼9> A”H„`‚NŠN$&¤!I¸8T„N‚(E$DLIÑ$¼ˆAº!hA˜†ØD£(išLŒè¥(¡!0$EX(‚+A˜B˜Š D&bB+K)ZD(TBD@^‚°2dŒê¡dˆ/AòJ@‡"FÂA$D!@D5ƒ *DrABHÁ4 (D@q( È$,ˆ* €¤ a0LD5594*‘P‚P…`‰`4Œh‚$`VƤB!"‘L+"¨ÊÁ€±‚H™’¢1„Ð$È„Š4„I¤ˆŠTBhŠNH…LéD@@$‡#@ˆôÙx`¡„&„$‡E"T!‰(HC˜AŽcBFÂ(FtDHáA 'D¦‚0( „JÈ2S¤€ˆ!D(""KA¢A""CŠqdj„„,¢$-Ôó -D€„Ò"&9„’$G!2CA!AA„JÁœX!XF’yA‰´„B¸LABHgŒ"¢AG„²‡ƒ!ˆ##§ÁÐÈÁL Î BpB„F@_Ø($"!"D…”!Š’(BÄDÄC.Ap(.„9(ø&–™‚ ‰B8H„€ƒc„0&¢‚‚#I„‚@2‚ Dd¡³@ˆˆBH#„@„„D€@‚Hr((DHˆ: @A( „L(!„$4B!‚„‰„!€1‚\6¥1­L‘H=i)R6C‘(’Eb1&qéè(e’nL…ႱBÚC³F˜”‰¸D±„ƒ³Dì„™ä;.ˆð2ˆŒ¢B¢‹I€ôDÄ‚Ž$‰ .N‚DBB!Vä!4"a>R)ô$?$À!0D$…¡‚-Ä+ÀT)ÒBœ"!CIòˆAG`Œ $èD$GAtŠè"Ȇ/$ô$ƒ´($ôÁ„ŽB‡„‰A2(JÃ"2,ƒ%C1¡ÃÑŽtJZ„#Dƒø—Ó ‹R2±‘„h ‰DˆHbÄÔB@øBD)ø(D4H#Ô(ñ„b4‹è‚ŽBM1Ba$OtfXU&è’dVK‹#ÙŒô˜ˆ!ŒúL‰1HdlŠÈ´N¤¢‹¤bL‚¢§€jAÂB…2$ßôDóK+CÑèòZ½a_õ$ŠŸ²öR§Hßá"òs}/Âü•O"ú™sNkE_þš2•ÿTZþtÔŸôö•/(ú¶ÒßžücûÞLax¥ª2?ùhÉ[Fn±ïDwÉýSE*úßw¯¤éˆí§ødŽ/ˆ»†ýR(Çæ/‚ñ¦>ÞÈÏiôk(OB«OoAîŠüèïŠñ,R/ƒôH¬ï‹ùŒZ­X'g/føˆ8o±µXóvŽTC†ã–ñcz‡1a¿äs4sþHuƒ¸"ù&.uŸ‡òÂÙÿ'ôÌ“AÆi›FÏõ—¦Œç—þÇ=´Eq’ûƒ¾ïüÅTÎ훆+ƒoIÉ翪ø²Ëë׿x½GÖ”6mxô×tOÈ~¬øº<ï¬ùÈʆò<ï¦ñHÜˤ‡Âg#o*úêîωèIûBò–¤Eä.®so*þ„®/á³Já,ü‚’¯£óV„¿ZHñ[#¤Õ±öX·4^z+¯E÷óoªøu¾/Hú’´o*ôU·¯NþÛýOŽø?aÍ$-o‚ø¿±ÿtþxÞüöÖØµñšºœþÒ~ŸW¼|õ/¼ž&>„K_RóZgÏÕæ®õa$ߨêô}åÏåóNT¯¨÷\‚¯-ùÈz-zÏeúxÈÏËñk¸oiú²"oçñHºÏïöÈÏB~Z¼d¶$ônçúþ²ï¬íÊ÷Tˆ‹ÞØíâoG9ê=zc—§/”ñSKZ^BïÔó3Ôïø¯6ž¦/J¹¶úF_Ÿkþʽ?éú,AßÒÍÆ-Ûï;òÍV»úCØ/¥ôÈ¿™üÅþ'çï?ô7¶Ž4/kx¶ò6=Ÿhÿ[ì½ÿkD‹&Í-]ê¯>´ûóJ>ϦýH¯­ù˜¯$õl篯küþºl³–èc²6óBTo#´”wdüHdÏ‚öŒÈoLøÒ”ï&ñN~/©üÒˆ¤ñÒB/:wÙ'SA¯CòA§aãá–8÷ÍŽ2IñÁ:IñÁšî1Rˆ7Çx2åü:%MÁ«ENáãñaÅã8×è(ôÁ:A¬ñáž3qaÌ„7Ï9x2ÄÁ¯CÒ<-áãÑV,O8wMø„2CøÅ:EòÅ"î92Æ*xsœ‚'C*ü:$I<èë!z£ÜBüzA¯Bô[A¯BôZaéöWiï(þÅsÏ(ò„sÏ(úÅ_´öä_öäîñaM®Öø2Œ?ßø"Œ¯[ü*„¯ý*„¿—¬ÿÖ,óŒsÍ2O8—<_¬óEyO¨óeOêqaø¤–ü2Œ7‡oÃü2AïCüA¯CüaëáoöšòO8÷ˆ²O8÷ˆ2_¬ñA:O¬ñA/nqAìnñAŒ/ÇøÓ¬~įIü8Ä«ÉC¼šžìoü]˜$ŒBÂ(M"Ex$&bB%xaÜ’TH!¤a‹(i¸Zò„‰R$(EÂ(M"G„OBDèJh.„øaŽ/‘ô(„#ñ(¤#‘¨+«!މ¢«$бB¢8G„.B*!%b…¦AªĈKAˆkÁ§O(E˜TF˜FØ$sDhbBü:Û)8˜-!ƒ“42Á&2у.`,A¦f…€Â%H¯A’H)ÒI‘#„ñ!Ä£’˜C"yD¸6¨¤Œ! GŠ+ËJ„G(‰$JjÁ 8'$Ž$À`H+…"V,bD*L”‚/A„I¡‚‹¤QÿÙ d…‰d$Hl„3 €A"ô‚LŠq"IQ‡$BIH4,1†¸BÂü(”(A£1DƒÈƒ(ŠQHŠ¡"IH’€H$¦HL(–†DŠÄIˆjø”3ˆ(!RQ2"–ˆGˆ+!ER8È€\¡‚¡ ”B@&V,[9@‹A™ˆN‚CH’0‚uXHB$$R"BÀC·n`"@áDIX!†„RB%É,T@$BXœ‚‚ŒÑ„ØÀ$AŠbE…F B@„!¨‰8BLBˆA&Ž,„K*„`HA„‚a‚Ž]à Œ3A1JÄ“XBD2†B„†VR”ƒÂÁЄّhB4ˆTBQD&cD6DÄ’™„" Hè$hD!ƒRC$(â˜ÈéB0”A%„"ˆ$¢Ÿ… " „"Â!†\L‹#B¡$ˆ·„8Fˆ ˆ@‰Â…Hè(8ˆ¡ˆÀA2€„‚$€Q‚X„œ¡Š)BD!ÐŒD0$„A‚(DQDF„VL€”(„8„„d0$#‚`DÀ$B N€B$@@RHÀ$'‚ð¿µ$!`$A!Bƒ%(†‚H†–D"H B'ˆ'D dF’JB˜ ŠHND”$(B\$ÆTFB4Aƒ’HC¢CKˆF$hDbDÀ&”„¬”R€\/‘6¤!’R@)AbØ ‚PF„‚aŒcdáˆI„$âÌ hi€a„D–"^JA"`ˆC†!.ˆ‚B*D@Ä"”€‚Aô´¨$!"')„( $âDb0D"J‘DM"H€„¡ADŠˆ(‚I"D!D„‚†4ER@„Lˆ DA ÈDÀDADD%8D‰¤‚\=6„*Aˆ1"ðƒ(A€ D#Τ(JEAH˜A¤‹X,tA !$ŒñA(H*”(@ÒÚDA `" `^DAH&䈃Œ‰øÜ8$HP(€ˆ‘BAŠFA2‡$0A ¡(DFR…B°Œ(ÐR!P0$ 8P ŒA ")HØ‚àBM„Ø¢4,‚:h!,4(H‰¹‚rBd@TÐT„=Ø-H#Ô$(3‡!*At!xd˜‚žIt# (˜D’¨Oˆá„(„FT‚"Â(ŽHp‚(óNB!A’C() "€!H@‘„‚ˆÀF"!„4Dp*Bx!B*(AfD-(D"$‚F„J‚H!A‚‡"¬2Ì8ŒÀ€AŒaDÖU402Á"ˆCR!¢MKJŠQ¤?(B˜!"¥$€4LIÆ#I…HH,dA+Bˆ`ˇà FA!”!BƒX!HÀA Á”ÃFƒòD)‘"‚²!¤B.H´œ%a‘JPb ¢/JAa‚È&a‹D!ˆ”ˆG$’ AA$$(C À‘)-”,’V¿ BA)"„”( DJ 8J4I$"$HHHLáÄ%#áTrHRB+% $Å!8È(A1,ÑHD¤‚!)†‚(’‚ÀÕ# HD@¡pˆÂ„ ‚Jˆ¤HB€(BF!„„I $$ˆ$/ &FBA$ˆD€B ‘HJ (ˆˆ€h!ˆB`(‚0„ „A0DP$A„bJì6Ø)’!;!”C1+t‚ü!‚Åôä˜nƒŒÔbxŽ-íBýRéVĤ^D/U £²48ŠÃâ,1$†²$±¢q%x…>ƒ&¬B@ÔAX~…+„z˜„N‰ñD©†øT( šâ(vÈDc.DJäB„éDÕ‚ÑCQ*+Ò,Û&û#BðDBM„ ”(DDA‚‚A‹s(9H)"4Dª¤TÁXL‚=HÁ,Œ$Á‚ND#„¢Eƒ¤DKDƒ´H4„($JÈH2¤H(ò"DBˆOˆQ€²‚"QB+HÀ´³ ‰TH…–rL¤"ŽŠp$SDjÁNj‰¤„„BÐ’š¨!¡…´dDR‚ËP+#äB‘5l‚‚26‡QЂˆñD"C|…è(‚ÑA$(X&R..„¤„ÃÄ‚BHÏjJ1tÝ3ïÃôS%G;¯÷G¥ïòDuÏhñ­<#óE­ÏbýÍ]/Ïô÷CO.t;ɬ_79V³ñÈwÛø%[E¯,÷¼Í/q~1׬󢓽¾6ôG+›žÄïÕüÖR[Ö¯…æÔ¼dý}H!\÷˜Í#V…/½õ¼µ¯ôÜIñmq«¨ÅÛbñeU_HúBêm‰?)ñ!†¯EÖøY‘'æeóŒf¯¹½*vê-öò¶ÍQóÖCòJFV”»¿¥ñqTÇ7¿oü%žìêJú–×ßn÷ŒÃDþRé?…öLaUäºÿcèëoßlåVÒ‚øÚB¿<õb#oĸxþZÁÿÎCä"úÓïj×kôCç/¯ôsHÛF_Tæ¬ý{Êw¯è÷B-Ï”¸Ò±™õx9OÁþHª¿£|ßÎ4ø4ÅÏíóxŸ5ú¬V/GôaIò¥ß?Cì*õ’*/æóV‚ΫX/võ¨OÚBòý'Ï¿uóLR½H¯sCût~]ÞOûõsˆ¾M²Ojõé~zß4ýþì?Õô$(×ÏÄ÷áo»ûwÉ¿IóýRËÛ9ÿ>õ޼?wýQ¬KOHûb×Ñú÷ZÛ^ÿïþRM_†´mömd/|õþÛ³ºÛó†Yü™,ôµ1ï}ÞcûqžO*²´ÚTûRÛÿëñùVŸþþVIGBŸÖäÆòŸSOÎè‡ùÎ$O‰õØÂ˜æêï3¬üô7hçÿ%ñH[+Q·×ÿ$óøÓÍ6ùò–¶-OjÿVE«÷bÛèÇ×,O’Ò-üÌ_Üø6©çi¿9ñˆ‹/±|Ûò»qÏüñ¡þ/äø6²oHáJïUø4»Žõ-aßÔâÒveø-Ñß\ó¨çïøœn9ñÉÛ/5¹ºôáoÛ÷Ȧ/Á»6ø†6/hú6án‡ÿÊõs,ý!ÏRò!MŸfþ†1ßÏþ*ÖÏ©öˆÚýBˆIôªTo'Sô:%MA¯ÄaïäÖä8wMè(ôÁ:Q¬ñáž3saœ7Çx2ÄÁ¯CÖ<>ì8÷M(Ž2A¬ôÁ‚î9ƈ7Lj/CÄÁ¯CÒ<¾ÈaËŽsߌá(3„¬“¬Aøáž#uä7Ç…x2”ȯC¶¼”èãÑÔBôe¯CôA¯Côaéö6I¯(÷¤[2O:Õ(óå¤ó¤äãêqAìêñAì/ÃøS¬/Óøšå¯SøšÁ¯SøáÏú>ÁÏ9û¬SÏ(û†S˸_®ñŸ_ªñåêqaü¡Æø3Œ?ïø3¯{ü:…¯ü:…/ÞúVñï8òÄsÏ(ò†sÏ(ò×:¬þ…:îü±ÆêñaÌ/ÃøóŒ.Œ¯Oý(„«ÉB¸šŸ¬ëý£Ecˆ,EÜ$W„&D2ŠxøAŒ/‘´H8„c‘ˆk£ñ„’M—„MØ$[….”7„LqQHvQxAüI…ôA$g‰ò«!O8‘(M™’™’4uhB5hBhbxaÌA‡‚Eá"R¬Ò¸ò„)„R$(M"A&Ò³‹DAØ„ÄFA6„ŽsSì(3„,3D,!øá–#qa„xs¤„/CÄÁ¯CÞ¼Ìáë6ŒŽcׄŽ"CøÁ*CtÁ îra¬„7ÆJx"„ü*¤IœŠèéÈÖ“ÑBô3E/CôA/CôaiöVao(÷„s,ó„s,óÅ2$ò”2fäkqaäjña„/Cøs…/SørÅ/SøÁ/SøRáOúVãO9óÄsO(ó„sO(óÅ[¼_(ñåTjñaDjñaÄ?Cøó„?SøºÅ¯SøÁ¯SøáïúVáï9òÄcÏ(ú„cÏ(òÅ*¬ú…*î|¡þaLêÆø"Œ?Îø"̯Jü(Ä­ÂBÜ*žìíâ´I¢(MR(MrA&&ab#áB8†/¤†!*†º¸ò”’(MÒ$‘!M²Q.”.3aB3qaôALbLrò+!O9Ò4ÑÒ$ÑÒ$S…..5hB5xaÜ4(e±(R‰Ò˜*G(™R$„R$N(IrDhBFø!Âc‚!‚€B"²„"&²Ä1"I4!"ŽC"¤!MC,ˆe"¢X*d".AC¡AA(S¨!(IM¨‚Åa$À¤ˆA(‡D.‚À!CD$$dà(D!,È*_üI²” HÄ‚K!¤B#².#1AR1H$(H’L#Ä(AŠA„(‚X@ÑX!x(DhBð„hÀ$à(FA$D$ÈHA"+Œ€T5å@AÂ((6‚`2ÀÀ1Â,€1pSÈIAƒÁB…"1(!”(HÐ#"2D@B(Gá( D€&8€„IB)D!DÄ"€‚‚ƒ„B6BŠ4ˆ¡!H¤ªà"€´$"Iˆ€„Ò¡;ä@4((8(iÀCD`"^ApAT(<ØB*€C+AžI„‰$aˆh"("&3Á$F#‚2B(Ê"äG¡(B DA"€2€ R@",H!3ÁA AŽB, Lˆ"@bHÐD€UáBL„H€ °$¨A $"AôAADH0A(°AHGI€$x!C"D†„ÂD($N(†„B† È„€*DÁ)$$ÁBˆ#!‚„ˆQ$!!pBDBŽ!$lˆR!,jˆCD ˆ  !!‚€„ŠèD(¢‚„H@ÈFãà B$#€(! ŠDA"¢@1FH(ža,âIÐ!,!€#ˆ€”"h’"ˆ(€ˆ" (L˜!ˆ€(@ù~… $HH B@!H‚L$ D!`4d4L!@'I‚DBDˆD‚AŠ‘„C0„H (‚AN4ˆ*(BHš…2”°2$€aD¢”¡„ŽÀR ¨ QMJJÅ„¸ÁÀACDB‚JPDH€„A#D"TQ_퀂 Ä2‚%H1Q p„€AI&¡ÂD„’„`(H$ „ÀD1Œ<þˆhQ!Cˆ¨!O!á("N A‚”ÑX˜BŽDðEE!bF*(X5¤"$D0HAE!)?k CC@¤bDÀ!À`H 2H Ä#/(1‚)‚ H‚IÂAdœLÊÈ$4D!ˆ-„!!‰4B°â’,F¢¨$Œ6ÂŒ„CÈ%cHLD„C¡d(" (ID¡H†!/!hMB(„ÀA1ƒh™chG!AA$”JBé$b’dFq(0Š(?£p2!$H2!V'(!Pb"€J‚1B!$œƒ0#CE!ÀÖÀ`¤@FfHH‚) D#XAHÀAH"AGAˆ„ èÄH5/!¾‘!!$IA¢˜€0ABD`D$dI'B€LL‘D€ˆJ˜L‘! )"14FD !’B¢$"ˆK‚$Â$€"dBPBHD®¢•¢H†¢‚‰ô¤´€B2(A@`B†"¨Š,$(Ba` âI 8Jƒ*„”¡à*‚ à1Ab¦ ŠA¢¡(p‚aD!H£ E¤B„Á3“ ‚ˆB‚H$‚&˜ ‚  ˆ‚ ‚ ‚ˆHc B B ‚ˆ ˆX H‚H„Š€!‚"H@)ˆ‚€(Aˆ*(@!Øó¢Q*! Â(€þ‡‘)Ñ"‰sã21VÒA8A°Xr!Gbˆž‚†Ñ2¼$ˆÄQLƒˆ‚¸AB-$(à ™2’AwˆHA@CIňTˆB dT+ŠŠ„$ˆ:ˆ_®W$AF2a„!Ba¤ƒ"¢ˆ H€ä!äDŒáŒ±A±Á˜9‘)8B)Š,Á¢"*$‰¡Ânˆâ¤ñŒN’<¨$Š‘"+H+()ÒB²(²*4$’D‰ÒT,Åh„g†%HØ‚hDdC&QR¤H,„è$B‚ˆ;ˆ*„"Ö!"¤aCˆâ8ÄAlB)d"¢*ØE¡‚¢N†ÔA¸Á8c±„¤H#„¢Hc”DÁŠˆ¸E8DCD"tBØA'Šè‚9,‚ô¸Œ$>a%òw„-2O4QGW&oYô¥fûÓ‚/)úña/2äwWâBÑþ2e†’o1ö"ålñc¤Oüò{–¦/ìþ„Ö/)úãÃŽñ¾A_EâCñDu?ôaA3+¡oÞè:ý­Ô9~ÆØ¹ÿŒõOy¾âø…åkÊß̺¦øÅ쟬zÅÕÎ~¢rdÿ’Å>sKšo(ºÇøQÓ+˜®&ü÷á/9üñ–O(ê*ú’‚?¯ˆD_ÇEOFÂa<·Sôò´_¬ûçÏ(¸™ùHŸêü¡†[ëox¸åú‚„kª/xü¬ƒOþØEô¦­?ÔòE)\ö„­/øøä(nLÏ(¾Žüˆ‚,ìJüŒ¤¿†BrsôcwMs$qSòCS?g÷G´Avs¢“/(»ñøÓ²öcO>w_æÄa&ùŲ_=æQ÷G’œ?=äq÷a–,ë+øó„O+©¸­÷$UMuGôAe_\ôdd_výƒòïÝüùº{\½S+åmùæÕ]ãOjüÅ®oJø„&_bþŽÁÏîöm‡¿ÜÚWômlÏTøëÌoXö.fíæÏŒò†B­ÈŽÊ‡ŽOÞ-ÓbygöSA/1´S1Awôb3ç8ã%22ºë*ºñqc/Råzýc$TÄA.c?GóÁ”?OøsÑO8õÃ’;ý¦q$ùás+!oiº2£˜:úÑA¾uMÅFvEô$E_dò47_ý:Dÿ9ûBY­Y;A/;ùBtwx_núÆ‚Ojú†‚Ozú¦Äÿhún'ßLülLÍ!ÇFß\úÌÌÿBö(DÏŽè¤üÊÊŽÈ/ŒúDí©'Cô2$O46ö„BŽsSì(s„òÁ2IñÁ†òá–#qa„øs„-„'C-Á/CÚ<¾ÈaAŽsSä(ôÁ2A,©ˆn12Fˆ?Gˆx2ÅÁ¯CÒ|Ááçì8öMˆŽ"A¬’¤¬*xá>#ƈ7Îø"„ȯB’Ä¡èá<_-Å/Sõ"E/äRôsMao1×ó„s8o8‡óÅ$,±Aòõ$_n±Áòs„;%WüaOSüC>Å/1öáosä1÷¤S,ó¤S,óå4_.ñA4nqAôáDú2„;%oCüaïCüA¯Cüšaëáoôb_:Ô,ò¤CÍ"W®_´rÄzEoîÄæþA­/ÆxCübÌ­dBÜ*ô(Ä­bÉþ.A?³$A$I2E&4A&4.D5aAŠÂAÀAà<žSÀÑ„1AI;E.„1S0SD/AˆA‚/8O)1A,a„,a„M2G„.B,1Bˆ'„„-A‰˜B)˜Â¡ŽBŽB‡„$FˆrDhBFH6¥ˆ‚!ŽCÖ‚’ A°A¡‚(JrbHb†D"xA¢‚]R""!.AHQ\ƒAF1“‘„‚F¦("D¢d"`‚€YD ˆrEñîÒ$pAÄ#!HA $8FYbd!ÁB%ä4 !@ÔÄ$Q4TÀ‡XA,"€¢B%ˆ†hˆCä"<,8%‚R*"@"2p/!P@B¡QÀZY!`$@ ²BxDHÀH€D‚Dñ/Ë!€ˆJ š$(Ã(D$$H(4""! b(((!L€HA " L"˜"p‚DbBL4!C$"8! "¨À‘D0!J‚ ¨())B±Á€$"d0`à*!ƒ&ÂLV(H Ù‚È&,H"dBJ2"ANiAC(ƒ¤H$H€ô‰.@"8€(I”! BÀ!€!A€*B$„"âŠ1 Ä$FB -UHÈA.‚BLb VJ±AÈ€H¢#L€F(‚¢@BC"!DŸDˆ’B- A22A‚ ‚DLB"H(DŠ!A+)(‚!DLFÁ‚LˆBa$@‚(”"Š‚"ˆŒ„H"ˆˆ¤‚@€Z.»S ¡)"°4, ! D"A$(C "D@‚‹‚(A#ƒP‚($(€*4€ Y†!B¤‚!À"ðl F‘FB$!@„ ÂD€H#‚4B`0B‚B $ˆH‚$€ÄD@‘D(‚€$€È"‚‚J„„"AL(2å ²&€D&‚‚d# +8BVD"„2B(""`AF(A(`X,$¤&aB"*KÂ’!LD"”!A KB¿k ‚AA‚$K$L‚A D, A)!„ ð„FJA  ÁId!a"!HPDÀDJ ÂyóÏ"(&F’à"´$i’BI‘2@“D'!,)$"„ ,È€"B$¢ÀAäd!!XA%$âD€B$CDHC‚J"Ò;CC!¡(DLƒ(’„&Á'`À!‚$!!9!1 Q`PAHT@@”FH(0"#(’L"Åh"„@Ä;3ŠTLT@‘"ÄD€ *‰á"¨ $Ò " IÄB€’,B"&‚#R‚Ø$A±\LXh†L4ˆLáDRF”T‹HˆC‚…’„I’!$ 4(Â"B2)A!@ÀQJaHJA3BÂ1"àA(C(+!(A„@… ™‚‰QÅFQ„ h„ì4CD"DŠCè$¢$Š$$!4A„8"4 B¡!I0A€!VA BA3¡B"h(@D„ âŒC!*ÏýICZ"A4De$H‚DÔG$*!0"!&¥A4HK4à4$VRH+Jb`Bh†¢ÁSƒ*D(f2!FH‚ÂãÓA BA!€)ˆ À$ D@‚„D‚?&$ €Š(€RD($L‚!B  H-%£•A/„ÕšAÁ!JRdF .1!¤`FJ(2dKBkA%!!ñ!GI‡‚‰K+q1PAàB*4#:¤A)hŒS!MÄBˆAblHLÄ$`DÄ.„HˆHT"!ÉôÅã$I‘$D@‚A$‚ÔAø"„#±¢¢H`,BAÁ0Aqä2‚B# B a"€¢!(,ƒa„„ÜA@"8¤c’„I´•È*”I¼ˆLâ„Hø"ˆ„ŒÈ(Â-¨ƒIQBØ´‚„¶†Ñ"ä8‘1€‘À†.R4$WD;'A"AHH,Ä"CÑ%B’Ú!bdNb#5apÁ…%hàOÄ(!MHˆ,r!LºE"„bb„9ÂDUVÈ$¢õBqRq5ò5T)öTbwC/GüveUô„—_F³2ú¡cî†ó7ä+8N‘gQâod{VuDõ¡’Jô$G?(÷§BK‹/?ê\ÅÖ_.¡#]ÅO|yâó5f2O|Rñeá,»“ôMOvyåô8!O‘ôX;Ów2ÿ.ãGœÍÆŸ®ò¦$nÿÊôHomaAO8wEâ(ôÁ2A_,Aôá#qaÄ„7G-„'Sü:%MÁ§-áç¯üˆc׬Ž"G(¬r„rÁ:¡îsaœ7Æ‚'B*ü*$IœŠèéÊÜ3ÒRô2E/RôQ/Rôqmao÷†3O<ç(ó„sŽ2_,ñA2_,ñanqaôåþs„;‡?Wü2Á/SüÁ/SüáOþaO1÷„sM2O8—4_,³EóÅ2_FñáFnña„/CøsD/Cü:E¯CüA¯Cüaéþa­â8Ö(ò„g"W¬´räzAnîÄbîÄúbŒ7Ì/ÆüŠDB¼Šô(Ä©–ìéôWC4,E²AÒ$2E&6A&6&4SöA(/¤(/äHòÁ+!O8…Ò4µAÒ$±AÒ$3E.¤’e"S5ao¤‚/¤"/„ò/Aâ(‘!ŠñB(/Ä’4G„&4D"B&d„†THH…”D…’Æ¡O(šD§„AFØ$rDhbFØá;M $N!F¢>C,ÂQL"!’AIB•dáD!”F2$^4‚B*‘"IåR‘B¨CEÁ$B$:Ôb"ID1ˆ&È‚(AL"**hD!B$GHb‹H$É1‚ H_VЍBP$€$*12(A(D$QL)Â( 8(0)!ÑD”"4H „@HˆbhC€JJ„ „´„J($Ĉ$ˆ1¡!A¡$EAED!K0 !Q ´H40#(>…à……b@&À(‰bD%qD(dH$`„¡O: #($¨A! Aˆ Á‚(J"ADb¢(P‚€€‚*/H€$"HB’Œ´H2A¨(@(IÀ,†„‚*˜A#ÁT!$*5„Bˆ Á„(!€"4±pƒb%%AL$’ø”X •¡&ˆX$"DÀ,(FHTÂCbL‚„HÂ9‚`F€CaB€‚B˜Àà*Â," BPˆ dX „H´a"²=…,BL" +D0"H,$‚f"0$@$(‚ $‚( $‚ :€@4C Œ„€"`(¤$ˆ@ BñãÙ,B2C,‚€‚!H!($€Œ…Eb’"‚#€2Ap!$³Œ€"ÄID0$†R$B`HDN$54„*4‚$ˆÐ´2[) HB"!$" ¨#ˆ" ‚(„" (2ˆj€(2‚ D"" ("DRB€ !BH$Ð!„DF$!"B"‚„F$ D”A2‘ "ˆ@H B‘D&!Ä 8AHPâ@4$€F†„DI"‚$ âØ14ˆŠ€ô"Ð$(E!¤!B% Ô#€Je!@ÈAˆD '`(((‚1"D"À"ˆ ˆ@ DÏ H‚!@‘$2 $" €(‚Â`!IaCTA!€Ä#A „XB@ÄB‚¢ˆ$ȸ“$Bˆ1H‘ B-!€F„(#s!¢!P$B(gH’ ÄA‚PBR0’`$¢#’DQ"(0$Iäˆ"ˆ(‚ˆH8ˆ(EQÙ0(A" @$Â"A€€HPBHFÁDS$$FX%„N,á !ÐH-AÀA‘9"FB`¤`4ãNTC211E!ÄBÀQ!‚B!bh–&Q$h$i#â$Á„JAD$”Œ”HÈTH†CBÄ"„`L@$€$‚„XHH&‚ôˆº$(F!°&8`A!"+`Aˆ_"A4d1J3B9HÔ‚‚Š¢!ˆ€ˆABB„!4AB$DÀˆÈˆA)"$`„0B%Bœ @IŠEEB$HQ#A,$ˆ"I0C!"0bAL„"8Ĉ"$HB ôÕÌÀ‚šV‚h! !)"()š!Š„$)€ˆÌ‚.ˆA), BˆHT)D!ÃA"H&¢""C,"ò(ˆ)¢‚(À!.A('É$ªdH&†"4‚¡-ƒ†H"H€)DBAB0A 4DAH)(¨‚`(  ¨À„€ˆ„ˆ@LDˆˆ!ð„s"@‚€$(E$ @8$@$Œ;ÿ€(,Ú$Ò!ùD„M„M'*Ɇ‚d(±D2‚keKi )!‰t„±‚‡1€q$2B"K1D1!¢!€TŒÈYÉEbC¸ARD€F¢,D$TN…Œ "I©BKHyN@Bd!$D" !A*¨)DIqb‚R"#(E)B"Ñ"„+‚$$‚a†´a‘ƒä¤Bò¨‡DM(I˜$DIÒ”‚E‘d#œH",DF>T?²VÙ1ö²Ug/Fû‘E/Aøá$oBóqgk…Sþƒt7k_dºs’Á_{óF”nñ¢ozĵ$©ámÅ/róÁ³+¥#óC$O*ùã÷G&/ZÝb³áù$NÁ?/õ‡2*ýR,Ç–¯hó—Ú^ïó¢$ŸÊÜãÜNòa(OhøféB"ôÌ)JΩôM­wzOHæ*l¦çæ/(ú„ÁΨ‡NÅ7=1_6±%÷A9a5÷5D9õ†£WFoKø–”o~%ôÒ¥/ü6±gTOâRô„§{/LúEEO{ŸV†rÃá{õ„rOJñfG_&ê!ø´4-E;¦%øÓO*sW´eæVôDæoM±!Ö»ø´5œ¡D“¯ûsØóìnýEßâš„¦ÔvòiÈ=¨7¸ï.þ"dRRÑßVþJ¯ÂÖŽú‚&Ç,NB¯¨ø¢¦g¤ŸEògõC!O!Õ3´R÷C"÷_;äcýá2+¡¾¦/+ý¡S;çG7Mú2A_DæòT¤9öó/:õE´9ìõÂÓ?fñ·ãoAü·_,»6ø¤/kñ„õ¾uøG¤oSÔUòEäqêWüÒ?Ͼµ‰ÿT‰¯=ñÒ[?hî÷ùB£/ªôÁª+‚k‚'®/žøcê¿bÔ]þf!nlŸ܈þo¯ŒòÌN‹êÏ„øÂŠŒÔªî®:/L×Fv2óCR^A9uñBr_xqòö²M6'!O#âyßuóö6T½dVQCöaBîÃSõ¤ñ=üÒQ<ýƒ2uþrÇ_!úÒ/jëAø4ão9õ¢¶wM÷EA.d[FF_2þÖo^óËÚ?1|ÛûŸ/Þý_‰Ofþ«$ohØdÊ£¯8òÈã¿ÂþL—”ÏÔô-iH–zÁväôÎè-ʇ$+Œäôªå«)p2äQô2$O4agOä87EŽ2A,3„,!òá–'AF*xs´!x2ÄÁ/CÚ<¾ÊaIâ8÷E"Ž2A,“$,n9Fˆ7Gˆ'Cü:$MÁ£ÁáãÁaÍ"Žcß„â(ôÁ*ExÁJøáŽ%xaì‚xcŒx"„ü*$ÉŠž.˜“×Bü3E/BôA/Bôaiöamò_xDzO8Dz_,ñA3O.ñA—OnñA%îør„3ýrÅ/æSüC>Å/9öáoô”so8õ„2Oxµ„óå[<_,ñÅ4nñA$_nñA¤?CøSä?SüçïSüïSüáíáoSüŠcO8ôˆ"O8ôˆ"W®¬råúÁ.7îÄráþAŒ/ÆøC«oÆÜ*þ,Ä©ü(Ä©–ìíALãDB¢$M"CdbB&2R"#uaôAD+AD+A°<O(MRÔ$1AI3E.S„9UˆµAøAˆo„øALøÁ#á8QBŽDŠ1IK8÷„¦tS¨ˆ„LxAøAŽÔhÈA,Ø„Øò„B„Š$$8HO(2D.†ƒÄփĂGN#À‚ Ô±d8b)¨!+‚+„D!&„òAFš¡xtŠ!´A[F²a  ÒÈAø@ÄA(°Â!†¨A„’¢¹a"J(‚(Â…"M€8$(†Aø…D‚F˜'ÄŸQ@P%H‚!(‚¡Œ(YĤ2ŽäÀˆ\A`7 ¡AY! „‰ÈB@D°!‚HH¡„@)À|³”$¡$€(A1K#(p¢@AÁ@`à”hpHF@*d!àHÀH€Fõì0‘"”Aà$¢ ’ B¢"‚PÊ À„€)(:ˆ!‚@¢$†H"ˆD)d ƒˆI2ü$F‚#ä$¨K1%¡!DH`’ˆI€Á‚2€A£HQ(‰*lR"+$A¦@è(Èð"DÞÇ !@*B BBŽ!DXŠH€BHBH€ÄvãÞDH€HÀB ˆB‚Pd T"DPD#B B€D„D‚&¸´(ˆ(L*¢0$„‚`Bˆ#‚bh""„²$M$"ðôy€(I"”"B+$$J"DH"@ˆ$!+A „$– (€N„#„ È‚A"ŠDB`B‚(P¨Ò-`$€NBðA€‚È‚ DE0D$†,,!`(#€È#ˆA( E‚`" D*$&*pû€‚$ @¢B,TBD*d) ¢$€ F„†ˆ"”$€2Ä(A„**"@eh*‚ˆQ(C(,A&1ÛÀ)$A"!J@€ˆ¢¡#$!‚¢Hˆ „ÁB°Bah*$ (COA$IL‚Hˆ‰¨$#(bJ¢,‚ˆ$Bˆ$B@(ˆ"øm(A H€€DD0BA€D,É$N( ‚€(T#(HDˆD`"%"0"&A¢ˆ(\#M"%!d)$$Ø€2hDx$ŠA€2'Afä$è%Á„ŽL¢B&¤!"AL¡¢(EØ!¨H‹-hŒˆ’„(Š‚'B(Ì’(ˆP"(‡ˆ„ˆ‚ð2ã€(D&( !PA-$'À!B@$H!F#D!è(H‚$ŒBbâ£4!#‘AÄA.BD* "A¨\$ô!DHÀBKX$†‚")+†D*T"'A-H¨K(E(T$ЂH¦TA€" ÄBƒd$‡$OdCID0‚‚#)'0’Q `(ˆB"‚á$#!1B1,2AˆH`$,„ÆB$H$JDDH$bD›„B D!JB‚Ô0‡Œ1áPB0"!d"À(F¤‚B$B "(CQA"aCCShÀD2!ˆBN„¨ !DŒB$HF@Jà‚8BA*ä+(ðÙß@"F"Ja!Z"Ka A"X#‚$’D* &’B8(€"„hL(H((08)¨‚A*!"I A,b(!!D.óD†4BDA€($#!@:H ("H!‚õ *$@DD€ˆ€ˆ€ ‚  H("€ÂíÓ“"H#"Rg"IdbˆMládábÙd`D"x’$¡A€Es‚R¦â,!ÆÔ1AnA+ƒJˆˆ8ˆ+I¹‚tˆ¸„BT4H¬bH&dD ‚"O‚’„M"…ùMBaD€á"¡!!(AK"D ’B3"""F¡"€(F¡¤'L¨Âbl¢!+(%°„,Â&‡$"ɘDE¤‚I’¨iˆ"€„‚D¨H)ÈBœ=¦Ä$H9„¤BHˆ˜Jé$ ‚¤„N¡FC4ÂK$KHuÖdôB²1$¡H€“$†A!„8b#D$aDr‹„­HJJxHâ¤Ò$Br„‚Ö$¢H,„T!*Dˆ´B²,L’G$!Jò„"_B!ö%OBôacä!ó6Ume/GèH÷$–_lò&)öd–Ohñö>N¶'COBä'ñR¤'o2ñ&FQrFÒ·5ô!;Nå._$ò’¢=æOVñC#Oa|‘òd;#OüÑ/[ô¶¨O&u´ú¶Ì衵|÷ˆ.ïHødìÍ&×ÄoHøeÍ©¢dcx«êþüBdM„çn®JÏúÞ(v&¶ÈöŠ+Ì/êòF1ƒ•"/5×Av±á%åC7;bo)ød6K˜&ö4Qv³Åè$ä:;K&ODö„²+ˆk¯OT×aöA!/ñ!g-F?òR_&ÛDi*/3µfûA—{è/qrôAANd6=¢wEÖî$oˆôRX/!ùø>žjÇÌo"ôHŽM¢Ž$o2´AÚŠ¾Âò†Í§F›BN$MÌg*F´FúÂ&oˆä¤øŠÂî§ùö£A4¾’ôs!O$Õ"´õG&~ÓO(çc½Óò"2)ñ#“?ör²#®õäD¢„êï*õ÷/)ôu!mRôRB?%ó#Öö_.ñפ/bË”Oñ”åOFýãn£/QfRnÅOß4ÿöV¯IòúüM’£¼Òálü2´ÏfþŒ.Îø$¦M¦OhòÁ˯‚èæö"­ït,솾"ÞF>âOêöÈèmŠ«ÄƒøJ¯:1¨W?CôV7%…µuRñbv_ié&óÆ„o#ãCÑF÷–Äo#çN{VödetdôD&O&ÇE[Ë^5%õBQ!tá÷DÓOr{’ô¶²K“Môiô·²/wñåä{e[B[F_fòA¶Nôö(o©ü^’ŽZ¯‰õºŠkÒoåþDªïHò¦‚obÚ$ú¦c.ø*ÆNôM(_²(4hÄúîJ‡ÊkÌ$øŠJΈ.N/Îø©¿p2ÅA/CÒ4váô„sSì(ôÁ2IòÁ"n92F*8s*x2äü2%MÁ'-áoÒ–$O8·Eò„2IòÅ2A,Aôá–3qaÔAxsÔAø2Dü:dMÁ«A>MaÉä8vMè(ôÁ*A¬BîxBxa¬„7ÆJx"„ü*dIœJèáÝBôe/CôA/Côaiö6AmòO:Å2O:Å2_.ñA³O,ñA–OnqAån±Aør„3ýrÄ?äCüC>Ä/¶þAO)÷…SO(ó„SO(óÅ_óä_^ñâFOnña„/CøsÄ/Cø:ÍïCøɯCøáéúVá¯(ò„c(ò„c(òÅ*¼ö„*î¦~amêÆø"Œ?†ø.Œ¯†ü,„­ÂBØŠ–¬ï„öß›$Â,aDM2CdbCD2R0RD/D´D´+Á#ñ„RÐ$%Ô$!”4CäB1D˜#…8R„/„¸„ªA¨+Á+!Ž(Ž(Ž(Ž2Ehjè*X‚*X‚†Øô(ˆ!.¨a¨iØ‚r„‚b((†‚²„ìb’SƒaB%áÂ+$MDR2#ˆ¦(CH2ND",#â$‘‚F¤!J„,bA(žD†‚$aB"J˜&€¤H¨à(¨EŽ$`BF-„H††£,2ŽÏáLáHb-!MBIÈ!€ 0$†BD"0"ˆ!" "!(0AŽ’@‚Âd‚ID€B€"¨À‚cL(IDé(XBH!‚à(TX4g€D"$$H$@$qD€@!ÁA@ „DHƒPBHé Š‚„2QD€2H)…`B¡`B,ˆB Ä‚ÀHBH!"DHF"HB B,6€@!!€4(LB” ±A(T"@@DJA DXðHA!BL„‚Œ„‚#H ¿zB€!aB"@B  ,$„‚@ D DØ£DBL`(BЂ€’@’AÀBAT1L"&"ˆ#8A'"(-!ˆ!9("ˆ¬ÒHˆ!F(C("0 §ÄP@‚±"$A!DBB ƒ¢$ bJ($@1†"¤ƒ €¤( ,H†Š‚"Š BrAÈDbLÀóM*P! B‚"!‚"A$#"ˆa((,!0‚ T`ˆÀH°C"#HO€##$b$$ B$F¡‚@`"+„*!"!B)©" $@’"„@"* "!""†„"A€ HÀ›#¢9ˆ B”a"!EA‚q!€D1B"A"ÔA`(@B‚F‚‰d˜ˆ!†B‰â" (Ð" ˜(A@ÁBŠ‚ˆˆðiˆ"…DDHI"’A$" 0C-AH$€DŽHB(B‰ 2$€! d0‚.Hˆ@¼>Þ(H4€‚Ä%B$I’C5â¡$ $AACB2#D¥0’!)˜TH€‚ˆÄ‚F‚ŒBJ,"(Hˆ&„”‚H‚F¨H‚ðü¦°B0A@D(%D`B h1((RB&D!aB`B(gHE$(ÁFBà‚BDBl@’" ‚¬8³,ÄAÀA(  !*d²"D(Á‚!F´!˜B‰!Ø!–$DBFQ”F!h”„R‚( HHˆô¾—%AE4A!I„ÂDR$PA$B$pA‚±a"!Ep^"E)á¤(E"g¡@"Bd8!*4("fHb‚¢$„N7@D€‚I"rAF@ M#($ $!2ABª¢0‚"…HÂÄ$ˆ$%"`$à$!‰Bøf98"+*‘"I‚Ñ`Q`!C1 !"!8‚¦4Ã#èH¡H/¢XI(ˆ!ˆ€„("‚ *)‚‚H€(ÈÁˆˆ!JŒœ:Ý"A$@‚B$P$!A#€€@($"@ALDD„¢/¦"@€B„ D€D‚(!€†€ÌÉQ.S"Oe•$(À"tD$4!BB[°AD)„’F/1Ö$¢N"ˆð"GE‚2!ð!B/HX°˜…‘2EÓB‚ÖAĤˆ¤„aJ:"Bè(‚â,‚ôˆ"ðˆB¦ÇLBpQ´"!’R€¡bÁR<(M!"4"p"41(B!†‘B@F"a4K¥(CDa”B…‘D@Mb•„™A™„”A$Nˆ&ˆ@h„FhD#áH(E‚BBB2E6!&BBpB´¤RmE)$AˆH,˜Iв*¤‚rA$F$h"ƒ;Š!‚Ф8M‚)Z¤P$$& ¦ „(„FHH)„¢/CNá“%}F:wT‘_CÇDNF?SѲQÁ"?wFõ4"¶RóD…gQBöR6FsT·3²åbvT³ö%D&öd£o±yåä#ûƒA/øô"î-ãxWõaá?=Ó$ì­ñ#ÁOJô8¶ï­Ñ»ú¼Q&ýn¤_8ÔFüá./Búágï¦øÅ¡)ô©+nˆ5¶jè,zèØ"¾¢Ô(~Né(ú¨H-ƃÉKeO"7J¤s_AÒ1²%µT’2/#¢rW/DórD}O¢$jÔñ'OTóDtobuÒ¡-v_#uç\?q+š'aOHu±âù2F_xù%Kd.E_\ý&Êk×ÿ*ÿBŠùXK¿èÿ3J}NOXzc¶¤XfOZþ/,Î?ªÔ:Cn)„ô¨£•ñë¢'„*x‚â„ü¢â-Ho‘K±%ô1UOòWRÕuD±u÷1/döQ#²s#ò1R?òV5oV¼3öA!N!/´3÷fsOt²WõB4çu³ÿ·T/bøõ6)ú¶bøµv?þÖ5OVü7d]e_Tö&Ä?[×sþÜV¤ú–X½Ã/)÷C¦/ù÷/Á+Ê?Î’¢+*+B=ãŽþC©/„ú+A„raùA㟺„þêB¤úÄJ(ôˆJ‹¤¯ª4Lö%Tã5”CAnQ_C÷R!"c#+2+c-r_qöB3^'_Fô%eOTòD%[V?#÷!BwoõRB1oTöãÔwo.Ê6oK¸&õ²òqòƱ/u²eô!$OöA$Oùwcß(ÿ8/üJA(}RñÄø×w.è.Ú$â(ø$&EßjzîûáJNI›b–òÁˆ¯†Ö¢´ª^ˆ/ŒœÊ©|Jòêáç'Cô2$mA#ÁacÁaIá87EŽ2A,ôÁDn9Fˆ7Gˆ'CÁ/CÒ<>ä87EŽ2A,ôÁðá–'AFˆ?G˜/CÈůCÚ|ÁáïÈaÅã8vÍê(r„òÁ*ErÁñáŽ1ÆøcŒ)x"”¯BšÄ¡)žŽœ:ˆ\ü2U.E/åRôqMao×4ö„s,ò”s,òÕ$òÕfoqaôå†?G¸sñcÅ/ô"Å/õ"Å/×þumãO9×$ú”sM¢_-óE¢_móe†oqaôáFø2„?Gñ"Ä¿Sõ*įõ*į—ìo—hO8–(O8–(W¬”rÄúA¨'î„bî„úbŒ?”âÆ¼Šö(Ä­BB¼Š–ìï2ô?„°A´A’$SdBdB3dB34a-A(-ALÒ„Ò¼ò„S(MC$E²AÒ$2E&6A&2G"s4amA"-A*ÒÄ$-Á+!ŽN$$N,$N(M"G„&tF("dBFxaÌA$H…„ˆê(ˆtHFˆrDhBFˆ7ú˜ŠA€"&‚$R$"A"A"H32E0R'EÔRÊF,‚Ä$+A¨,T*”$HS¸"t!²ŒB‘ª!„v‚‘(€RBJB‚( Á"€ˆØô„ˆ0!@¤C(G!(A`"€"‚,%á$è!B!,*Á¢@’!(ˆ$¡Ò$•"ίˆ’A"& –" H($‚€ÂÜ(ƒ!@(@@H)(@ˆDQ!¦ &!$„ Ä@$À`DA(A#a°2$'!@ÀAŒ EÂBA†8Dˆ)d‚BS"#„â(Dh`(ŒäH=ø$D€BA$$H A#A`„H$Dpƒ!ŒÄDˆ€Ð$‚@'(`„߯( B à€ Ä ! H(0A„ $ކ()D”(DJB‚àh<, ˆ$L …,D@EdDD QB€#À"A)"Â!…d!ÀB„" ¦&D„Ä$HðöQAÄA0Àa!H(h$€‚¤#!R$@ ¨##Ø!" #€€ˆBˆ"G(®‚ 8†,‚ˆ*8b!ˆˆˆ‰ØÚò2A@”A„"$ 0aA"D€À@(DRp„Dˆ†2A‚ " *8B€(ˆ”¢o†$,€ÂQˆ!!€˜"H(H(À"I$Â$dÈ!*d ˆB$ ’„*B‚¢ˆà(,‚* $ Aˆ"DŠÌ3ŽJƒAB¡tá"!à4¢B""bQÂ&$"Ab" D‚'!QFRAÀA°é(H†'ˆ$€„d(È%ôšÈ !€(À$) AA(CÀ)Aƒ‚Aˆ!AD€‚„‡(J˜B.¾Á ¡F!à!¡F"d"hIâ$"**‘$A ñ$q%‚D!@A!/1ÄLQ©DI8‚‚BJB‘(J8"ÀAA†"t‚¢BOÃACDÄaD–!1DA „@!A2H(@@1HÔ!DˆL'°#RP!`8„$„àˆÄ"C"RBH!!@B$bÀ`D€2C1FA"IQ!I"‘4,”XL!’B…1A+X%B‚AA„@,hÂ@ˆh‚)Xˆ)¤‚H‰Hb "€„$¢B"""J!"Q ‚RB8À$)‚#„A D¤F ‚PBAŒ†&€²ôÁ"dˆC &ÈlÃÂDHhCÁ"8a$N!H€¤X`!B,FFÂD€âD‘D)d* B$‚T!jFB3P€ïÚFQ$3BE#DÁ& ƒ!1•A0AX’ARAÀÐBRE!CN"`D0AJ˜&ÐHe‘È!H…$„ ÌBÓ H€€ &D€ $B€@ò½’(0R!!@&DD&€ " " "(H@!3†!#2##!)”BRM"@$*ádCæDC…¢D(+!%#tACö$44(KR[BKÀrAB(RòA"Aq’$%2DIb"I"dˆ"äbBBfˆH!ˆ-BÉØ˜ C,!ÄÀ"#"12-AHH"àÀ0)At"A@$$BzDzA ¤!„Im¥ÁA©®ˆ…øˆ"bˆÂ(„†hŒ„"ì>ѰäQ´´„²!8.$¡4@-A#HVÁAF¡bB@"Ab!BGFADDDLuA„D$ÂHH*•Id8®BJ$FBaD'„ œÂ9„„Èb}+$X7w'F/"“T?5rbô'ob÷G'!;&/"óqb?#”A$ó#LÿsAODöwT=2;oevdÕb·E¡QOUÑö'Nt,²U³âT÷![4oõA]Â;eG%“GƒöDçW¯QòH‡¥¯U3&HúeÄMbW†k¨O–ܩԡô業"_ÈÜÃôa¡Ÿ8ò‚H/ˆl&#¶Š²…üJ*'fÏZ>«-d/zø35_4±CT2?Aód$Õva22/â6vã1ñfs?AäRÒAôdgo5±"Ò1ôrwm+DáW§#K&/qtqò$K/rôq"_!tótd#±EtDñ$v#³Gw'ú1Ë«T½ÒsT±ævCó!¦lèJRrŸ$ÜèRøÎD=l])&ñIÃ?ˆÖ‚æ¢8¨ƒüJB­‚/xrïôLT4?UóFR=sw5?ñBr=s/erw÷6?&ó"/#òs/4óqb/sÔD~wáDöaA!/7ôRs/2±AsVc^1FòqOeö%3{.&GaG#oö!wcÔqýE]!FÔQæq÷F1¿Ô÷j_4qZñBQ=b~—Ot~¤öǬ.‚M¦æòÊ¿´Þíþ#ÌoVòLmÝíOÂüa£¯,²ÊôªêO$xÈøÂjˆþFýãØsóG2oFõB/5ñC/Tõf'7?'ä#“2'!/3â!ñcs/cöT/rEô$a/"öSQ/6ÓcõC?ÅQAUS_&ò6oaò"M3mUofòS?FrWeD]Dfòevw~µzÕ³ôX'?GÖsõq£,üã$o(ø"¦Mƒ'¯,ün_Øvmýldm]n϶¸é²ÊòêÈ-ʇ¬'¬/ÌÌî¿3 'Sô2$MA#Áagä87EŽ2A,õÁðá–3qa”7Gø2Dü2$MÁ+A¾ÂaIá8·Eá(ôÁ2A,n9Fˆ7G*x2ÄÁ¯CòÁ£Ááë!ì8öM(Ž"A¬tÁ îraŒxcŒx"„ü*$IŠÎ÷ÃÔBô2E/CôA/Côakaoör_8Ç2O8Ç2_,ñA2O.ñA7îDânñA¤/C¸Sö2…/ö2…/äSøaM¡oÔ4òäSM"O:Õ$òõ_$öµ_dö±Dô¡Dþ3„?Eõ#ůQ÷*ůô*ů×þQï8ö¤C(ò„C(råúÁ*W¬îîÆîÆøbŒ?†øb̫¯BœÊ¯BœêÉÞ.~Ê’J’4CäB!äB!eBRæKA°<O(I‘4Q&4D1D1D-AD%ATÐ8O8EsAX$„M"W„&6Al8CLxCøAŒ-A„-A‰Ú”¨-Á©ò„B™â(ôH(†â„ò„"G„¦d„Z!9‚H $‚1$ ÃA"bC¦B dAN°BJ‘BQxA"HBD1TX! 1,ˆ"A"†"å$RA"`ÆB&ÔÂ"*„¢„)Dò«&ª$ „$¡A ‚B„!±a`IðD!B(JQXF‚+ADB(IÔ$ÀAtFÆ(ÔH¨#p„¢&%&áÄB*4D$‡B(†‚¤„!=÷ðÏ< HH€D"€J1!FD!A*!"!C0”BŒD„ ÀD'‚ "‚€Òá:4HB&A@2"!$A "(€$ŠB/}@!€„B "@À„H $!"(À"(€‚ "ˆ3%HHH "B0A@B@oB&ˆhDH0A„À€QAA(A@M0„ˆB,&ˆ!*Œ€$`(ˆŠÆæ($("(„! €! ”HJ"ðc£H " ˆEI"B $$Ç„$%4@„„AM‚$ ±‚DB$$.$!‚ˆ"!`$ˆ@"(ˆ6„@÷@ì1\@@@È@À΃@@ðÇM@@À”# ÿé@ÀèÄÐ=ü=ñ@ÏÕ @À)3ÿÌCQA(B#Á!$( „Ä6Iø2E€Dq!ÄaC°A8<rÁ°Aˆäb’„/SˆDaÂhÃ(J84¡¬„(A&–„-E€„‡B(I€Â3ãpaA2,ÀA!"HA&à(dC‚F(AŽdBŽ2A&¤fŒŽJÈa`B††ÈA&¤(†N§ÀaH$!!$C!"(ˆ!'(ÄA°Ad()rÁÂÃ! €8/(1AÀA0AHNˆ€ä(‘‚#qÁÂÓ!‚DAIXB'hSAE`()ØÒñ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuhd-3.5.5/fpga/usrp1/rbf/rev4/std_2rxhb_2tx.rbf000077500000000000000000005425241224274632000211340ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÖÿ@*jÖÿ@*jÖÿ@*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDUTDUUtuWwuWvuWwuWweVfeV65R"%Òãx×QQQQQQQQQQQQQQQQQQQQQQQQQQQQ(*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*â"ôBB#Œó88#ôBB/$ôBB/$ôBB/$ôBB/$ôBB#,ôBB/Dò$$CLò$$OBò$$OBöddOFöddOFò$$O2øƒƒ3Œó883ôCC?tôGGtôGG4ôCC?4ôCC3<ôCC?Dó44CLó44OCó44OC÷ttOG÷ttOGó44O3øƒƒ3Œò(("ôBB/dõVVoeõVVo%ôBB/$ôBB#,ôBB/Dó44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<Ïù‘‘iò&&cÌó<<ÏÃó<<ÏÓ÷}}ß×÷}}ßÇó<<Ï#ø‚‚#Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ló44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,Ã,öbb+!Ìò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,Ïø8:ã#üÂÂ/ìüÎÎïìüÎÎï,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâþîîïîþîîïÎò,,ÇLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Œò((ƒŒò((‚ò((¢ò**¯¢ò**¯‚ò((üÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏbôFFgÄÅ Ìò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ'ÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñËÁʬÌʬÌʬÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñÏüÁÁüÁÁüÁÁüÁÁüÁÁ üÁÁ Ì÷||ϧøŠŠ£Æa!$rAà(x0AÄA$#á(ÁÁ!,€`(ˆ!ÄA „Dˆ#á(ÁÑ¡­˜#!†‚pAÉADP$€b(omÀaA%„#pAp!„ˆ'C(I2A–„&ˆ#pÁp!„ˆ'B’„!€–„&ˆ#pÁ p!Œˆ'BŒrA€$IÂÇCˆtaD,R$&„z4ä(†ÂA dAF#ŽˆÒ†bB¨GBŽ"E†ÂA dAf4‚ŽˆÖÈÁ¡@qˆbB¨GBŽ"A$¸A&D†‚ø±ÖÀÏ€)BHˆH  ¤€ ‚ ˆ ¤€È‚„€B N¸C€H‚ ‚€‚Ÿ%HHH ˆ‚ÀaR(H ‚‚€/&  €HBHÀøãˆ€€‚ðô½€„B `ˆ „À›s  € ‚ˆ€‚ Š€€‚ðc_ Hˆ€  „€ H ‚ B‚€ˆ‚ÀA# ‚ €ÏÝ€„BÀ\C ´D‘&$E,”"0a BˆA!ê!Lh(€! !"KD$¸A‚DÂ&ˆÂ„")‚BÈL‰I(‚Fˆø†Ñ"€B("‚" €(B$à¢(!B ’€’‚@Á(( "€ƒ$ÄÁÁ°$„d$M$HD*+,B„‚@HH" Aˆ`*@•@a€„Ä!"ƒ2„‚@x!2("“F$‚( D‰4ˆBï‚ "`"A‚ Bˆ(@€H`"a !¸ B$"HÈAŠâ‚ˆ„ˆD ÀÃ!0(€€("$ 2Að>À#€D(` A$ "A@P„)Ab„ˆ(ÀIDHfD€HJò„™³(+Ap!€K€  @*$A!’( PAÀ4@££AH…¢(FE($dB„ThH€€šD_µ"À÷ãBJQDpFÄ!"¤B(H!”*4¡°‚À1 !Ð!!„‚á¢T$RJ9¨F#$I`¦"¤$“D¹"„B…‚ú²ƒ H`BD €(D€„"(D` P!‰ä€Ä(@‚X‚‚Œ0H‚ ÂÂFà²2¯(MA( !D(E¡D„D!2("jBb6¥D,‰!8A&Á!$Á"@qJ’QB!¢D0"ˆ!!ƒ(ˆ$ÒxH&‚b$B,d(„(›Ç€EC@4A R"€(à("JC!€!ÁAÈ„ÈH„ ¦"P‚‚"$€‹Ó*à%(  "’A"H A(*±"-‚"(B( ˆè³Q3–’†3‚*†òÁA¸aDB!¡Ä‚J"‚„H#ïD´A¡AB°a!A$Â2AH*J!€’S1C¶"!H3Q!X)*Ä!)ˆó(Š…ˆÁ„pHúhˆÈ‚"$BŠrB‰d‹B&Ž(“n¨@„h‰:¬ADA^AIaKD04AJ" (H2$-BA/(¢(Ú"Q',B5¡ƒ€˜JÁ‚‚Š¡!¤‚ $„"Œ")”(„¡ÐˆøOÇ€AB”UDDXC"E""@¡"2 JáG‚Š¡#è*èš( òB!D3’"€‚(ò(Â$/8F‚"Ôˆ$à„h‚N½s€L Bˆ "")¤’ &Š,$$,ˆ"€ @„„ðûk0" €‚„H€0€@"A‚‰(„‚€B"â„„@‚$ÀoS^EÄAÂF!Á1K$E‘°ej*‚¢"BA‚„ä$‚ÂR#*b"†±±(ã,1(n˜2¡ƒ¹ˆl"K#k†¢Š"4Št!ˆèªÌ!aŒ.„„”ˆ«È„€6(OêI11.HJ$¤DKACbAA"¦BF((Sô!2G$,È–2"#„Á‚"H.!ˆHB®‚#öŠˆ$’ÁYˆ‡”"+‚#¢D-BÆØ!ÄHƒ¤D"ŽB&ú(""…,R(.³£ ð4…ÅJvDä¡1JÒD’4YbB‡ƒL´$q4T$¢²(:i$8û#¡n“7"N!ò²"d7-QAÈq*Âኒ‚+ª-¡8òcb2#‡‚.H‘("∥h„ß¹GaR4_G©qOµQ7EnD^qOT·$qaÔDñQqGRM%b*âþ2A&*â¶1µqbÒ´QsuäAó&E-ó+?-s¢òÁq/"þƒb??ù³3¼3´AØ3²¢íøs›¯™Õ3ÿÑÊòs2)šöAˆ?®¢*?¼úic?¼øH£/¬”È?„òiÁ?&⊶*f¢‡Ž,öLB¯„öhhj<}\ÒDñ44[Q¡Q~D_BteáSuQt4ô$:wQõ$$Kfæ¦"(æ¦r1:2A„áB³uóeuo3·sò²²+ƒ-?þ£ƒ-3??ÿa.!!<Ü3÷³±Ÿµó‰‹·´Œõ™˜³óy)Ÿþ©È,ø¢¢/*ú¢ã?öã㿜ôêê§””Ô™öèk§Œ*â$â®ê¬ØˆôHH¯¦öHJoú _FöAeOU7EUOUVEjóeE3FtEáÂÁ;%Æa.A&5^abWôAaa_GóC&>¶?-ë#‰¸Ázáñóò®Á/3~r±aô!A?(~ááŸø¹Y¯ûÇÃ^Œö)A•{kò£ƒ7¬,z"â¼ú+È?¤øKÁ-Š;F„ò!Á®a/¬öJ"#梺ÎT*…úhJ§fÓÝA¾aôeOµAµÕó4Q[t%³$²$£D_Væâ¶Aòaa.A´A²a³qáÄA4AVõA'5õ$’/))é)ñRò?õ²r3·aÆaŽÃ'.+¶Ÿ•øÚ?¼S©~q“öØ‹/46‚ˆ+ª.!¿>îŠú‰KŸˆä”ò(!†´©þèJ#²bô¢â£tJJÚ¨’jÿM -E.A/SÒtÁaoâÆ!Žs[4Ž"A,³EòÁn9F‚7G‚'Sü2eMÁ%áþ!MaM!Žs[4Ž2O(²Á³„ñÁ"n9Fˆ?D¨>D/ÜJÚüÁèãá¶Œä8ôE(Ž"CøÁ"ExÁ*êîsaä„xcœƒ'B)ü*diœJ)žN-j³ÖQüQ&õA&õaM!oQÆ!Ox‡ò¤s(_n³AòåDn±AöáÄ?G¸SôaÄ/æRüA.Å/ÖþVAöÄW¨O8…òÕdO.±Aìn±Aän±Aþr„;En„/™ô(Ä/•õ(Ä/–ìo5Ô(ö§K‰ú„C‰rÅúA¨G(„¦öA(¦öAˆ/BøÃ(/BüBH¯B¼Âô*Ä+déúfAÝ@DhCáBH€ÄAA"ˆ#á( €dBÀ°AÁAP!Ð!8Ž1(CáBH¤ôI"pA FŠb(b ‚lB4騆b’BG`"*‘D"$!”aD` ÄAb‚f‚hc*ââ $b!4!‰ÄB¡…ˆV¨( ( ((@ÂA"ª#<*Fƒ¨$?Ú  4HA&(H*4.AV€DHB &Â!G"šH"Ô!¤Af!’ÈXa‰B¢¨ (0B*t!‚¸*4B€˜ˆ"ì1÷ˆB°"ˆ(!„((°$!dDB†D%„ø&R€d($àJšCGAB B(F„B8R`€•ˆ ˜„D…hŒAˆ¤$ÈÀH„@áH  %Š„DB2"(!((!B(A(H¤1,‚À1K$$‘A(JŠQ#•(†ÄA€LR‚(F!ÈHY".HJB#ˆˆdD8X$hž"D((#*2!J2"‚2„$X!L’CÈ)5$ºCáB¡RDàB`F"-B8H£Q‹‚EUHˆ@DJxH¡DŒT„E!¼(D‹hˆ‚ƒ¤ÄD¥ ($B(DABdD@-$ A"!Ž€DDaCHÈ€(A2A¢€$.¢ (B D Ä“Š(!B$`A!D! #"0„ˆ‘ˆH)H"BD"Hˆ)¸D€²Î @¢Bàbaj Â"À!€.Bh€ÒDBB „$H‚2x!( $‚”A Dq!$`B@±T‚„”ICDr„!’D BÁl?ˆ(P"H"mA2H"À" ”!€1BL(#dH€A‚$L¢J$H"€"D”\(`”(C & A0AÈA´FE¤„DhdH‰ˆ€ús[ € ! BHBH"B€H€a#‚ ‰l5kLD4‚H!L‚Gi )L„"D„”4LNˆH Œ¸$¡G$l²!¢DN"R2%X$„H‚†XƒR¢€Ha¢B)xQDƒD„Š‚Œœ$ouFÀHCH ¢€(C@4!°ˆAH+ƒ(˜BІ„,a$, ”!!ÐB€ÂA €2D Dì9N-"@äDD q"¡LGHC‰ÑDdI$¨ˆEÄAE¢I“²"(„ˆ,D1D!Vá+„…âBÔ""ˆ†”( )ÒÈÄ"&„„Dð|ø@”EA)˜!0!¤‚Ca@fEAd€’!±&±!!†J&B`(‚ ƒÄÂ!‚!ƒÀAD@"H–„F‚h$JZ(|>R<$B0B(^ (±$8B"H I%ITAI"¥DETDBKAAExœ¸؈è,¸ˆÔ"T„€$…AN¤„‡ ‰º‚¤‚)¼È FA@r†aDD*Š€Q"H@1$ Bˆ‚r"„RD@Ô4$a$(bDÆ’…ЉI˜H†jˆHD(ˆ@¡¢.aÑ&ñ(b(DÀˆ;ÍP@"ÈCM"€$¢J¢ƒdB"(PA&„…€è"…B‚"X"f‚‚!8!HˆN$9È$H'( IÈ(BƒÊˆ†"8$¦Xˆ·&(2ˆ)ŠèHD´: B! D .„àâHäz$‘d.!" (°a„!"¤"O!R$ˆ">"!(+BA…"Ò¡b¨0‚*±Bº"¤,"#(êH²((*(Â$‚ˆ††ÖØ7Â!IIH+F@˜F"H€!" 8! "("H%@"A( „ˆ@D@_’ @B$)DBH –B($B„!<€"*$@H1D„ˆE L<±%ÂB$ERÐ2"8HZm"RcÕEyQ$.$b*­2€ÅÁm!-3Ša(LR"DÒ#’!J²‚dD4šÚX"èhˆž‚V¨DoŒøäJ"h($G2›ŽG‹"&Q˜–Rú¡¬§Jޤ­„HȈLxŠøn£PA¡)áDT!$.¤*é(¨&â–")D¡hš7¡"/"Òd¢%dB-„,¶á%ÔDÄ%"_LöãD-¦¥ÔHqHX‚-"†®D&$ "‘®„X„Aˆ…˜Aˆ‚b"†$àl(ÛATBCÒ$ð’BJç‘iÁ‚*ñ%’’#¤:$BLâAÂÅ$LÌ/$‚¬JoÔ$Â4A¢+.C8¡*äB‚ô$"t"¥Á¯AX*+„‹èϨâ#H(²¤ªˆA•èÄØ‰*B"’a!‚‚‚#(XD´KqFõ#b5ò2o1¸ò'Vnt^%mS*ñq¤/cøGs/3þ²çD±$ñ$Ã>aFK+OôcOóñ”-"OµQøA$k*/Rärö¶†_'ú4?1÷ô—os¿1üó[äoWÔøq%Nñ'Ì[ÉÏ]ј{úHÉïe÷ênîúæh©úá,/JúåÉöé­WߘòAÅ¿RÒÑø¯«ß´Þ¨ú‚$æÄ¢O(rDüŒ¨3N÷D&obqÒá"òG6?á2tWäCá*ë(ú÷õ®¦/AûÑñ>aK"m$ï÷”SoJãC³EøQS/!rçôãñ¾Ç?Oò6/Bû²?ö6/!ÿ£s/QäDöDaÎõ_÷â¶_Nûèî_¨ùƒ›+ØŸ­ø&\§æŠþl,/J¸"ú"ãßFòÉÅ›êÏz(ù$a_Dôè¡¿¢ò¬hOÎüêæO(¨ÈÊôÂÇWhßlK²7ÿÕWOu÷EBUõv!$ÿåÔ/nûÖo*ù–&?fûã–_þ–óorsôeaOô$ÅD[œ4þ¢c[?,ùÓÓŽÁ?Dú×¢/JøG¶¾OHº!úô?ó´U~øE$OT¶æòöÃ_¦óì}?ƒÿ‡K”üƒ_½ñÅ‹ÿÞÜ{úÉ®k‚Obèèü˧ï¦Þ?ôêçí!ÏTöDaoÜþª…o$öìÂêïˆüÊJ¬þ¬n/ê6=t?#õUoµSµQôQc.Q_JûÁ÷/lù¦’obó‚¦/CóEQMão;þG$Tô$AO÷E„MøU¢^æ9ôÓ‚;Œ5ÌÁ{$?ÿ2¢‚o+ò„¢-¢7û¶Gor³WÔAÔò¤¦OKõ#ä‰õÈï4¹ÛõY“¿ü‹Ñ[ò«m¿nú„"ojâzòkîï8üOªç.¿Âôil[&[¢ÝÌ¿fúŒBÏîzJxJÚ¨ü誫.ÿÕ 'Cô2%MA'vÁaG/87Å/(ôÁ2StÇ"òá–#ua´Aøs„„/aÌÅ/sÖüCücÖ4õ„s[Ž2O(ñÁ2[,Žn9FJøs„)x2Ôü8$íÁ£ÑüaíaÍBŽcפŽ"A¬ò„"¬¤îraÔAøcŒ-„'B.įBšÌ¡‰ž®ˆ£ÔQösQ>e/åsôRqOòuOò„wk*Ox•&_n±EòÅTôõ?TòåDøw„?EûeÇ?Qý"Ç/ü"Ç/ß6þ–ÅOÿ”SŠó¤SŽ4_/±Áöõ\ö¡ò¡ú2„;>Ä?1õxÅ?õxÅ?÷\¡oÕ<ú…GÍ¢OxÔ,úÇN_¤òÌF_¤øäFÔÏnôA¬¯F|CübįèôjÄ­B¯FüŠbëämb_'HPB(A&‚X°AÁAŽ2  ˜‚#á($2,db@A$A$`$ˆ'AŽDˆ&„hB¨a.„€øA(”)"ˆ#b( €dBA‹cI1bO‚,ÄB"A(A„Ib*$„$’EKI"[„ÈCÆ„CD"†”"…#$1±bI¢W,D©1D©ÄD‚A8B‰˜"†„ÂÁŠü"A„„B¦RG"BGˆ!†ˆh¢_JCñ‚*TAÂ,f0$àA˜ B(F –A!/ÈA Djˆ´!"(ŽBâ‚•! ¶bA!¡ƒ¤A™(„±ˆÔ(’‚ „‰ˆ”L&ÈH‚&*b¨€ˆx(Ù1&vA0B,A!CR$D¤d@ AAG1 aD!B(`HHKAD@C‡,‡$0,!Ep¢XÄ@-d‚ˆŒ"´Ä‚T,@ˆ°A±ÔBTˆ)„ JI’  t!‚„3`#%Hð‚A"'H(!DBCA"PY",˜B$$†Äˆ‚G„HA`ˆHH*hD$ˆ‰¤„oEÆu@C‚Á‚AÐ$‚RdÐ$%VD(à„!BaˆBÂT"€2„aF¤„ BaA%”ÎJDÂ)4$&dHÐä‚XGDD(ˆ¬B¢D‰(¸HøgÂB,*$ 2bA*‚H$DMR%Dd(`BA‚&DLAA@„$!$€‚`„H ¦H‡BA%d(#\:7H(",!d"À„(D€(R0"°A”!L¡D’€'‘€'ŠB€B1 $BH4B"!ð®)(R!€âA¨"KAL"„æD!Dd1A!B!1'.†!“$,, 4!Cƒ”JJ‘AŒ4#„T‚D (H(I´(“²„„HˆJˆ¤Œ.RSÎÀB€´b0I‚¢%I%qF¤B‘"-F’D€è’E'C`!2CD!¡$AFaC$RH$‚ƒ•A$H‡("@"„Fa„"E¨†*ÄHAi‚B+(<ôÄ<B 2€D€”$ H¡$!ƒ€" B0‘Hƒ#Ô(‚(@0((@€€ ‚œ2=’‚QHBM`J"ÁQhAI&B…2D&1D¢Ab#!„(@dP$ZRBP(BCrCDñX†)¹‚‚–„ˆ&Â…`Ch’ÀD‰rH‚N¤"ˆRè @t"²A€DÁ‚D2† t!A¢$€èR”BAÀA"8”# ±‚LD!'ÔˆX(€Ô ˆPC ÄA0"€ŽD„¬($Â6‚, A'1D`b†”‚-!’A("2DC²ERD\$QÂD¤‚(&2$¤'B!°DR$B"ðÄG$¤‚Â"hMÈLj(,ØDØBxhH"ƒòAaE‚(’dH¤PÏ6(M!$$”c±a˜‘:(DF”D‚ *$²Á²A2A¬ˆhAˆNƒˆ(AHB$–FQˆ`„ ! !A!P‚B@$È%¤Œ ,AnÃãâRÁQH((<$Š˜ž„*IrÔ††˜B%ÃAE$‚A£ªñ"$LQ"^B#aFˆ&B$ÒT^*$H"I¨B&1"a%TBCXÎpˆÅB‰Úˆ)Œ8‚‚Þ¯`!4Aa#1&bBâ"HÁ‚.M$.BCÚ'"3A@¤†$EDr"RD)äÈ‚DgIAL1Á©2ŽƒtX¡$Ñ™XÈB˜„(À$HD!Œv$h$FX$Ž‚‰ÄnãE¢èa@$g!0†@Å"%Ä4s„!BS$òA‚"0$ €‚è(ÒÄ$"i2á((M$J’!(Ô2’$¡Aˆ-H(‰RD."&¢(Fqj4%„MEY‚XHA…ˆ%øB?Sr"´!RDDLdHo¡bhD*¤"!†1BPB ˆƒ3Yâ$A*!MaDDL⤤Ž#q”(3DC!¬\1?RRµÑQIB(ÁˆƒDè(HØQôDw³G#!D@AAB@DLhDAÈ (€BD#BHð)ˆ€"Ä‚À‚€A €B€B€$D€ˆ"A ‚ü$’D‚/(q‚ÄBm"'dc""="¡!r"Ò"¸8hÁ‹(ƒ’,‚A'h!7$7rAE9Af‚Ò†fˆˆ€4‚o2Có"Cvg†óFƒIábØvÑr±42a)òWsoSÿ†Ó4®4üEDú¶6O÷¶á%wfŠó†Ã$_Fò”4ozÝ6ÿ4'&ò¤–ÿ6E.C[./kÑTþ6EDêkñ”q?ËþW,¯öñŠ9ïüI:ßÅñ¼8ïúÞØþ,%¤ò„¤„þ%L]M—ŒwüŸäØÇÖXöïÎþ„N/ÈxÌôHêÏ$üJHÃôˆŠ£Ác/bò&6%qCóBB/bó$Sø´'?A&âbñÓGOk¹6óññOQö$$A_tÿ–E/s×Bù¤&süQS+‘º2å_~öG?GÛfø¢&oCòuõm¤k8þ&a.$K"_6ÿ¶C/b÷/–ïªòÅŸ´õˆÊóÕŸßÖ4ôo®m‚'JGŸÖÞÙx‰ùÊåýI…õ,IOÒþÏKßÄrÄøÊÎϨøˆÈŒüÊŽO¨ô3ø$;5tô"u%‘C=CO4öWV{ooOÿᔊù’’[®oóAñ>ÁMñEòaEMÁMõeúÕ6_~çyþU‚-ñÑs¾Ñ†gø²Nù"¶O!úõ{¼vÿwO>w_ö$Á/Rþg†óîS?éþE›¬ñË[OÛÿaŒ†z¦þã®ObèBxãîÞøjÅÝMÜßôM!O’TÏœ|N~ŒÖ,þÆÈ¥b¨lüÊCÓÞ#»qòASOõABôAsowôÕr_|½ô¨«ºë)ú‚_~ý¶Ñžå$ÖTÄC?Gùã-òóñmÑ;3ýÃÁÿQ²?4ÿ”"šú4”˜¾$?=ü2ÃoxtGôAeÔt·sùõ4W-ÏßÞýË¿-ñññüM¦ÿ¾ˆ²„š¦m¢O(òÎâMÄ_ÈtDtAÝÙ¤"\Ø*ôˆN‡d§„§¤¨øˆŽoLô5°2ôU/CòA#Áakaö„bŽs[,O(ƒòÅ2M2,!öá–#qa„øs„)ø2D/ü2¤mÁ+Á-áká¶„ä8÷E"Ž2K(,³ÄòÁân92FLxs´"ø2D/ü:ämÁ«Á¯¾ÌaÉôŒcׄŽ"A¬ò„(¬„îxBxaü!ˆ?ÆØÁø"ÄȯB”Ä©ˆžNͧcØQýqRôRARôRc]ao3÷qO:·‘ó„sšûÇ3e_>1A±EöåäW¹SþqÕoü5Õ/ü1Õ/þõoü‘qozµ‘û„WšóÇ=|±ÑñçE_~±Aþs•;Í_Gý’ÉßSýÉŸRüáÝáoÓü‰ãO:´‹ú¦G‹¨WîŒvÄöÁÈgn”Gn„ü&†?„ú"Æ+Dïb¼Bô*Æ+dí¢mA×£(Q.$Q…RÄA@!H!È#á8eBARÄA@À#á8eB1P„T)P! Ò"b(B$À‚,ìbìBbyAB¡£Bd8!JZ(@V +B9¢CÄ€HâDò$€+4Ab@D¡#]BaˆVH‘˜)‘¨$@-H\Ô$"\„Д(T¤(H!BH(à$4ÿ€CeB–tAb!$CÒ$s$Bæ$Q’‚ÆqBHg(!%4C˜9ô(Ä!ˆ"]BèÖQh‡˜!°„‚oÄt‚XE„&H”!ÆN¸b„B‚4"ÿr'D<" Æ€‚BD(,(ÀAŽ1`*" X‚H€eBAˆq@(@¨)$˜D…„@D"A¼:3I‚T(I"J"!äBRDBC$H CˆJB0A"$"B€DÂ$h((ˆ"¨$A(#ˆ2„ˆ€$bB ñciÀ3?BJ1AHH$Ž3AcK:H#¡\(ÂA,D‚}¤!šÃ!$ÈC…(Â.A5P'.†rÈ‘A)Hq‘Js,B„1HbB0…0B42JFaB&&,a!K!A"ABCa€$Z²(+!  4$Dà"i"B¡$©á$9N(AB ìFFB`ˆÄ…ˆ$A.å# `F$HB`HF,Q$K$y"¢$(0# ‚Á$'B("AˆALØA!â&‹"°d¸TæR(X‚ˆ¡DD@D€R$(CRÁbÂH‚†„„„8‚+BßAM†”BDJT"lD($-D*FQ!M!=/#‚!&¢8%T"ˆC”„ÀÄm!a@„"R$L’°„H"É…HB-ATHH(CB‘%†BD„b&„6LDA¡&ƒ¡#$K""K""bJ!BHDhÔdÁEŠ#"¨"K¨!c”$F’)†$B¸4ŠÄ"."$PB0„=„Œˆ2"é((¨ˆ>¤@²!Âz‘LB„"ÄAAH"‚$‚$'&uR!HDªÈRHADÀHF„FRˆâW¤L‘(?F˜(A!¤S‚4&6HEˆh(,AÎ]s2€Ð"„!Á€‚%@&aaR"$€$R"A@Â"A0„€",h‚"LòJSAB’Vb# Q"(D$ £A""@À‚ èH‘‚ ¢‚ˆP^‰B‰„ˆ@(À4óD#§!`,naO<Òób#+$bm:3bB.&¡$4be/!cD-b'!€Q"=Fo"ÒábÑAâBˆE¶Õ1„!C†"4Eð%È­I-(…¨áRx’èˆÒ¤b"EDÒ!bDfb¨M!ÒE²È-ÂL¢è¨ˆŸ·8DòBÂr'DLâaB+A"IÒ$RB$*K)á³QáñE&áA„XDˆ6â2æ*‚CÔD"èx§$†ÒDÁÎB,qh8"´"RDz#1-!L”IÒ9äH²Èâ$z„¤ŒFˆÌè"2j5Õ"AÁ4:EÂ(E’%O"f$1 &õ1BL¡")U2@ÁFhKˆŠ“¤®$„.†öÄ_DB4$ð2$ˆ)t4HÁ¡%Ôô,FŠ”$‚ŠbL0„Sf„`‚GD¢54Š#ØHØBô"D»Kãñ1DBŠóF“;efü"6/VõTc:rAÔBñtc;c.EOÓ³!ŒdTKmr)÷B'FñS?52e7rRÖ¤‰Où44O]õ”Õ/+õâ³Ox“ÁkAjú‚"ŽSOx|fåÖñ‘ߨüJ(ñ¹ŽŸ"ÞÛÔNteì*úGÌíEôá"Ÿ8’ÁýEÏÖú‡&||HöêˆOÊì(ÄB¯ŒúdŒ.µãÖ2v&ör6}=C-B~rD÷a1.cFbc>2'"VfA>O4õEORò'%nc?÷%bm/bòF+T?qsdñCTo1öu”OBÈ”OûqÇo:ù6‡oEüd]$CâDý—gOA·%ù·'G-„•‘¿ùòä¤ÜQöìŒoJx†ÖòiÍoRx§úÈÇùÖX2%_œÜoþŒ¤ÇFojrÄêŒ<Œ/húäŠïRKòòÕ2sòSRO³5öW&~4Dñ6"gC/Gávñwbo1ö!ÇoUòeeOõd7w7òEqcWde/dúñ’_køg¶/iû"†/nøó¢Ouþä_{üv%TÖþ'ÄGúÃ:ßýõ™þÿ”øÂŸ/÷•þ¿Õzbùª‹ú&„'>OþúNí}mORüo-OÄÖö*Áÿžò®OèôÈ&ïŒ|Âê®Þ9öÎÓÙAóE2Vaõc3/ô5Dqô2M2oCbC6$÷aO!·bòAE]AOvGôr%_óeeC?4áñRDMg~øäÓojò–&/#ø¦ƒoJóEq{x?8gne]e]e[—?>òØ/Ÿî݇}Ûk=ŸìÜOÿk«F¯bò„¦oBø&?:òÈê½ì¨viüemÙöŒáß–øâªÎ*.ÊéüÊŠÆêä´ŽîÎ6ÅE/CÒtÁaoÒ–$ŽsW$O(“$_,öÅDnytaäBxsäBx2ÅÅ/BÒ<>–Žs_$á(“,Ó%ñÁòá–#qa”7Gx2ôÁ¯CÒ<áëma‡(ŽcׄŽ"CøÁ*Gˆ¬†üáŽexä7†Œx&”ȯB’Ê¡©žŽVQu/SäWóA>/5ö1o5ô1_|µó¤SK1,õU1_.õwîvGþvDørÔ7E~Õ/qæVüqnÄ/¶dþqîòo9ç&ó”s.2-·aòÅröõv_n·aøsä?ùwå¿;ü~å?9ÿzÅ?9þ~áÿjc_xöè¢o8ö¨&¬öá+oìváúân†în_†øbì7¦/Æú.BïFžj¯Fœjëæíf_© +,(*äB$Z4AA A,¢A"È3á(ƒ%„1B(cdRcdCdKDMA¢I¤*HŠ‚¼â(¥!HJB(ÃdBƒ$2H"‹D†4(H"H$Iœ#ŽÂ$ÈJ‚(„:D&$ô!-#ÃD<ƒd1Šä8"ÐA6Ä"Cä!R$S"„äBHp$‚ä!’¤CÈ2¨G$Bh@1dD+G‰*a¨†™B6ÑA"ATpD‹b4h(BgLÂ)Æ£æòŠâ°‚˜Q&±BÁŠ$B3U !Di¢aCAe!"Bb(5„€”$!E¢°´è!F²¥Š!†Ôâ!²Dø¥$“È!k‡BA@$”N()"„ª’G,ˆ&LB"øŠ)ä4xDr$!!E4dDb!IS$&C„jDF"¢,ÒA¤Ž""A&„A$XC!*X(2D‡B!@t"˜ƒUHB „ÂAƒH"bˆŒ,ôwp‚(6#"‚’"*„%!‚”!BaDB±"(#$Á!`("/HQ$"HACA¦‚„$¡„%\$K((ˆdŠF'BÉC‚$„hB,„X(è=ts\AÁ§RQ†$o!C„Á.N" BI’JÁB2Ĉ#È(ÒA0$¨#X#@dB""€8Q‚Hˆ‡HPE„&FD‘ŠG(•U‚E(Ä<(d"J˜ˆ, +Â?þ +($BB,,*&‚„HD",DD$ D*‚HN4EHdAA-$Er €3R,Šˆ!.$H.$H$ADH(Q@Cƒ„?ƒ)(‚‚‚7"  „B)"FAI‚DBD(D€AÈ!à$B$$âÒDp’!ˆQBC! ‚p$D1"!ˆC„ŸÒ$VµT!àb!B¤#àABã²AAÑA€q"EQFÑ‚’ÂØ-U)‹Â((<b"ÐAG‚d-H¬±’„.L(…b"AªØh”…)´*tA|!(4ŒÃfBD©²BÊú³×"(B‘BBA1"T"I"B Jò!ACa4À"L#…S"((˜!$$Gb‹A29ÒD‹$$IfãHDh(¬d&LB!6&ˆA$ ìôÊ€&$Ub$ "‚U1D%'QPAB0$ ¸ AŽ$(iÁ!!&‘$¢DCB«€‘%ƒˆ’‚#BDÈ%!HIBQ„ˆÇ2H„!$L1½ˆÂ(%'($@’%BH!('#)ÂDF" KIDÁ"CÄ$-(O!YRÀ‚"D'B°!„„Â!#8BA,N‚(C_¡ BPA‚H@IBDFA$DQ!(Bd!AX1ƒBLT@‚D $R(!ăŽêP16$FƒBÄFF¢"AÀ‚-D8!‚DE"‘&I("E["i$R„¬'ƒT”A%¢‚)RDhh$ŠRB&Ž"hd¬d($JBµ’AE(D@K!@P$0$HaD±E@!)1‚)($”<±Ac„ŠB‰QP„ˆ„@ÂóT€!!A€)'B0BBp"/BD"B†‚"H$(rAeˆC‚´±*(¬™è!aD%4‚D"D"8BB%‚Ô"DR(,ôé‘B!#"1$d,ÑÄ)Ã!‚I(I„ $²L$B)x$@•$Ä#IÊÂ:ÀATb$@DtD"…E4B"¤$B„¬9>(E’2IM"@2$Q$B@€#ˆRI‚AQD"%4PAýCÁÄ,¡*”RH2K(h(R&(à&!"fHˆ/FXAhH)œ¢O˜I‚4„,b, fw%ÔTUAW!MBcá”Db#ñgsQVdeòÂ$EåBrE\„„²DòA©¢¤ŒrA˜.De’B=Bˆ‡"o8ABF"qAqA¦TB%-biÔ4ÑIR,â(B"d$‚`$b'F)2"o Ð]$$ñ‘(NG11id+G%E”‚$Ø"Ô$H˜JA#n¤% #H:BN(³UAH&DÐ"²#5357! $6ANALÄ„!b`ІB²„ÑE3ÄE6…"<¨‚'B“]‚‹‘¯ÈÉxd(Ž%Š¢(rÅZR5BÑ3ƇIŽ˜ˆ")ø¨E°dW~”%²ýB"wg7S®ô]Ñž27b/Bòws-C/sõc&o!ÓôAFú–2O8å8|ctaä(ñ”Ã;%WF®/ZÞÌ#®¶/T½õ$EOzö‘3tõ$¤?9òƒoY}yÿw7¸ýB1ïvô·Úsr'þ¦¦öÞ^ô+GÏìr¥—a¿ôI¨7:/(¶ªüL*gÖŽ"o8üJ('¦+˜£÷%.6c¥tÂ3ovñÃAöu¾¦-".2WÄ6'C4õaIz$ôAÑ/9öqOCy²vÅòQQ˜/(råöÑQ/÷u„oCyÆâAòqÅ/Bø¦WOyØÂ%WR]—8òvß#ù¥7o½ñQ[?¡ù‘6{uÑÖgò#†Obø†$O2òcÎÝ£wXžÞô(!á¶þ‹Eß"Ö(ø¤&G¬NJ­‚®"'¬çHñT!_ÕöW÷ck´wø²?fº¶ó6F?Gñgao÷&Å?GòEaMáoRýs¤-óÕS¾ã{…?-ñÁsO9¾Wúw”¾Oú¶kƒ/oñä£?EûqRø6%YÒú#—O2ûÓ:üõ›ãÏ¥yÃòØ{ÿ©úIûÿâx¨ÿïªLÚbjÎ?¾øeì¿Ô_~jùAiÜ)þm/¬òäN¯hþLŠ'¬ÎJ¯(þhóØQûD!OWÔuQñA%Õ2öu–/fý³¦O"ó4>&-6_5Ö4÷cWFVÖÖöu”?nóÕ"_~ÝýÃ-=Ýÿg„?Víkó„²+“/Bù²2_mÚþ†&&ô!%(M$>„?;òÂ+OÝüË—¯\üX¸¯Âø-¯Šò„¦+‚O2ú‡$O¼þ*âhôl(„´(Öôj¬gìoîòÄέ‡ŒÆøÂÈþ/wp2ÄE/CòA6MaIñ„s[Ž2IñÅ2YñÅôá–7AFˆ7G-„'S/Qü2%O</>oV$ŽsSä(ôÁ2YñÁnyta„xs¤'CÁ¯CòÁ§>V,8vMú„"A¬Ò„rÁ*òáŽ!Æ*xc¬‚'B«Â¯B’Ρ©ž.Ì“Éå?SåvöAnE?1·döqO.÷†óKB‘„Ž"g‚p"Ü(—D…b,ÈH!€T²ƒ #T$ÄA!CDód!LDbC$DBÁ`:”#9$#c”D!e"E1‚‰#´‚8‚A!¢A%ˆb‚„BXE‚Ð,R7$/HB9`"@T@FA@#&Ð$‚HA@B„DBˆ%! A„H$fH&ED ô!³sB•"'(MBpRG"€T$Yó"10Ad!&$AQAQ"LIGGDAIÒC#g„8•tRX$Gˆ$9ÂH".L$¤…QÄ‚2(¯Dò^B †‚"!!¨!&ŽaŽ@$!d@„@(`(`(@‚D$—DÔÁ1Ë(!(5‚Bd@˜%!B@("(DB"@#ˆB(H.H€(!¢Dˆ@$ Bof 3B1A#THAŠ£HO"1!FA$Au!V$+BR$'AC’€Á"(Á6GD&ÐArDÈ0Õ“E!t‚-$$P!ÁDP%DDDT(€b$r8n(3A±"4$!вARBÁ!%$’$H!CB)B1‚/AAH@NÄ`”"IDF8„"$ÐADˆƒDEA‰òÅ€A$ABÀˆDJbAAErB`(,`CD"PA+!Lˆ`BR”+a!‚! AHAA$($\7ŒaA)@&D`ATDD‚B$1"%" –!5@PTŠ$P$"AD $PC’"„*TPÄ!@ÂH¼-N@"@‚XAÀ"A('A@DAD!ApDDÀ$€H„‚L)!Á@dH$€Â¤20B$P&B!Hd1"RT&%Â$D(@C"BA ƒR$CB@D(A%A‚„(D$(5&ÃA1DPDB!!‡dðëØ$D€¡XFFRIˆL$„4DŽTBH-¤XFaDAN#ˆ ˆ„±hAA°hA ˆ0F¥„LŽ„€L˜‚B@â(!(‹ˆ H"b"c<T"M!%†(E1$AD!JeA*d"HÐDŠ$‚E "`B1"!"@( $ð„$D(GH(…TƒH¤BõhB&”BaHÐ"Dô¤ž$#Ta$3!B5"¡&8IB²FÂpA1A-ÈD„(A$€$Eê"B L„&„•CA=$¡DCedÌ"$/>ãD!!€A@DBB#t„X2Ð"¸'Á1€3"‚`ARÈ¢ƒDAA$„H… ™d„Ìd„e‰ ‚"»l”MR1`R+‚TH"D@‘ÆI%±‚C˜°‚!$:H2$ІÒ4DAŠ’Š ¦‘"&AFBBT„„„”Ž"#$4‚!¢Âc H$ $B ÀˆÈ ($Dˆˆ…ˆ)$$†`"ˆˆA/yD@B !†$’B„‚B J!€ˆÂ!PA‚Ð)ÀDA@"HÀ.C2G#G!B,æ!ò‡"$(I„‚2DCt$lh$â"H,dẂ“DK(ASÒaqc$²!*2­‹"!©N¡ð‚!€Â"OHR$O˜’(4—RVÍD”ÉxEHIœDiÔ"‚”‚MDg¤˜!$'4 tQÄ–D±1±±Ô„ÃBÎO$ã,Á*ÊAóBFà!˜")ØB %DA†3„H‚ (H4!D.„ˆÐFȉÒ"È!$TŽ(-(‚ (h"²9\G-G-$+H5Q}ðqE‚BBCfq!a=…B@Ô1 B2A¤8€‘[#¢@dBD7CVtäÌa‡H)(ä8ddGH$\èôt$|ĘL”ŸBÄE‹‚'â%Tb,ˆT#,Ô(øìÐFöE7f'1!äóv&?qò’Õ­9$%öeaÖQgEYñ$A=aD¸§ñ¶S/)îEsR÷“o9üQFò‘Iý$Áó$ž´6îÕr÷‘Vo+q$ñ!„G+O;ñ¨ååsôšQÏœ9Fö„"·.ÇlòC(kˆÒøLn})tëmýciÝ…wÞzôήMdoBd(o,Ø"ô"bÏx6ÉG3ÑcrVóSr-?3ñG7;\/ôE6/i;B&óGT\ò4nA>AG_Aâ4ý³RO#Ôfû²&oñQB=‘?;òÖ5}>Q_DëAª>2vïaø‚t?9x21$M$“/;q4ò5ÞÞ4_ŒñSȇhöÁA'R?dÚDz„ô&A¿äÊåŸLòŽÇßÔôI,MÇ÷ºWfoÄúŽfO(D²Bè*ö‚dÿ±AqwóvG3¶EñC?%õ7COûwµióS–o*ó44/ess÷vCo3ô6ç'UOô%áOrþQ—ñ÷S9ÿU’-ñÑS_9üt²uûƒ6?mù6’oCûã?mûu‘o÷6§7AWOú$¥?AùõJoñëº_±ýËR?¸ñêÉ¿Âúo¨¯ìòψobêbú†$ÿÜü*Ïvöl¯¹v(ñhéßrÞ¬ü¬D¯.öήÍʨôÈJŒø.WsØA»RòWv1uAòQ%õ"B_UûRõ®´O#ñ6/qó6o&õ'R2÷G%F¶%ô%STëòõ_]þÑ'+//ý2ÓgûS÷?kó¶‚oaëcëiñõ³o2}´ÑEò!%GG2_Aû³vó–ç1yÙú›J¿½ø*Éÿ¤Þùþª,kŠ-¦Mæ/žò§Èÿæø©E)fø!H×öÿôúèb«JïèøNÊŒôŠH¯ªøjÁ.Ïp2ÄA/SÒtÑ6V4O8wEò„2EòÁ2],Ñ!ñá–AFxsÔax2ÄÅ/CÒ<>-aEâ8wEâ(ôÁ2Q,nyta„xs”‚'C-ůSÖ<~ÑVŽcפŽ"EòÁ*W$¬„îxB|aˆxcœ‚'BȯB’Ä¡è¡Ü>1Lÿ3A~t/äGôaKfQ¶ä÷„óO.ó„óO"óÅv_'òÄvWfOnwaän÷a„ooþs„þå?sìOþÁþÄ/¾ôþåO/÷„÷O.ó„÷K8l½ÅóçÖ_^ñ§¶Vjóa…Kús…Kúsͯ[úÁ¯Zø[ûïú^çï:òÎï*ò„ã*òŪ®ò„¢®ô¢¦–®&†ü¦¤?–ü¤ä¯‚üìä­ÈNÜŠ¾ìÞVÞ9DPB(A&4ÄA€8Ž!$!fR@0Aˆ#á((A&tAØTˆAˆ5h(„!(a&sÙ*‰2“€¦E#2$`0D"LB%‚Ĥ%$B2H"I¨EÃ"A(€6AC0!%%r"´AÈCà‚ñƒ#C„@’e2,ÌH„ô!…0jJH¢$•áX LAa!@G$T–RB…„T0$FŽ"A"‚AD(Á"A""S(p"AÆ¡G‘H)±(vƒ„A3Ä(I2JCRHF4!dލB@2"Ì9ïˆ'&¸A¡4B"x1B!)!"4KR!!À…²H‘A%"!l&((a‚A'†DN!K‚%¦$JhH@$ˆÁÒHATHˆÌ<¢#T(„‚M#ÿ“ zBA!Á"BR…,"$&r!H!È&H,(F<#bB„nIR„H@A®I.AƒqD(!Ñâ„a(ÄA$H£rxä‚eD(ŽDJr$4‚B!Fô"^3 )”F,BT²C•"%‚±Bc’.'PM¨ºÑ(Ô…á„ä!,Æb*ñƒ%$!!(crt"kDPtŽ2JéAÂÐ)GŽAD!‰ø)•’hE¸D8ˆEâ$rt8†¥b$PB?ÄGA‚‚C¡Š€*F(!È $ˆ4)ƒÄ"Ø(„‚ ,aT€1"‚ÔA@Á$È€(„¨ÃdÃH¨ˆ(!p!¢(0HD@,!„ÙB¤$Ð"!L%Š„‚!(@ØB™!AQP…s ($"” D#!"!2àñHN.Q% `!`BY‘)2!²!²H¡‚4„hÀ£B¡`!&E2Í,„¡ˆX…±!‘qÀ!(Q޲!‡B‚‚+A™Â"h‡D2!‚„.XU8F-DbT‡DgHA¢$ÈþdçƒÂÒ((QÀ±$((%AÈ"B,C„(CQ"‹AB"„Y˜bÁ!šN"™B4! ‚øD!$‹I)¶1ÔH¨ ˜"Jx$d$PA&$”$³DAˆJCö_½€E$ÂCÂD!‚1Ä`(„q!’¢A@%¡H€¡!‘#BQ°%‚#‘€Ø±(!ЂBÁ!A¡F1eEx ‚„ð$B¬1R8@ˆA"- )1A!À(á2AX!Q‰D81$À$0$A8$Q$a„D…%\A".t*!"’HAAÂ$òä0#R!I!,h€‘ACB!€²B¡»(DA¢‚. DA‚`!‚bI@¦‚$M@BEÈ!dDH##.=³((4#Ä8 ‘,AA!a!("…2EùÈBx$D˜&’$*9" QjÁ,að‘BD"…T1$)£‚‘$„"&TÁ…AE2„%"H¿¾ 2F‘A$#„(4‚‚´!dH‚B¡ˆF#H!apBˆ”BȈDh`)\BÅ‚£Bd‚€XBa)ÑȈ%‡F&B H.»ƒ’A€"ÁC!#ˆE‚Â# "A$AáÄ(‘H‚à‚1!(†QÂ@”#ðJà(A$ò„¨HD'‚ð¬—0A‚F‚X""2‚"J"„ÒB$¤‚#!²8IA QÁE¢`Äà$ñD•#…6 ‘ÆñHACÔH!TXH$$D¼:Í`!ALB(H€PB.B!t!¢%)ˆ!ABA¤Lò[!(Yª!=$ÐX°(4!(A B,BLPHx((˜JL )”‚HLò¦r€‚1$B `ƒP"âAL$-B,rAAâR–G˜DR5„´(–a†T!X@†Â("€ÌBØ’ŒN)E¦4†$$Bd$®¼±!%€D$)H¢„JH*˜‚)€ i2„‚BB% H€!‰G† ‚APD"€LˆH˜ð§’@Hd$N‚ˆ!!H!AHMD(† ,%T"FˆHD‰#C$A (HHTˆLH‚AA‚T‚‚BÀœs &†T"\´‚„-F$£$”C$ò,‚CÂ+†H…Ò^L])Ì•ŠBá,q!øFÂ)Mˆ$a…¤„…Aˆaý‰‘DŽEôEØaÁHUTÁÂøHÌH!Hˆa¿¦Fc$BB°AøB‚ˆ#!86+i)‚„=RÆÒ32Âð¢“Ü3qézBĈƒbDLÔ)½ü,f¤FTðéE~ÄB¢„$è"!¨Z¢Â-ˆŒfE8XÄÅÂJG(E6¤,2 ñ„O#D!ñ$,4†±rö1<†‚‚Ò"!ÐsQFq‘1c&¡BðÂ3–$ŠñcŽ$H%ET/Ø1Tˆ-(cá"¡ƒ•Šcw¤M_zB²„1$$EØAu$x…v(¨‚‹Bp(A4+¸-"ºøIY+¸/xê?ü;I…ÝòAÑ?;¤A³*rÂñQR=‘¿»óÍ%Ÿô2[ßÄˤêáó}ÆŸrù›F¯;~Rñ%i_DäÒûyßFø¤/+âõm¯QþÚ/«|{Ùô\-‚}ú{øLÄ/êv„Òˆ£•/+÷”fï³ 7§Ÿõö+3+¸­*/ý²Ño*þL,ß–¤B.Qû⇿½þÛ§œ¯ñûÈü]¾Ÿtÿ³.o+Ùfú"§?Jñĺÿ‚ÿ…XÿFÒYômiÏ„õm¼?èqóž?ýÃ)ôØŠ?“ÿG½Õ?mó„²oAù"ô¿ýóòÿù¦#Mmfý-IKvÏÔû£FÏ*ö̆+į¨å)å+¹rüËp2ÅE¯CÒ46ì87MŽ2IøÁ:IøÁøá#qaŒxsŒx2ÄÁ¯CÒ|ÁáçV<ŽsÕê(ôÁ:]¬AøáÞ3óaL.ˆ?ÇÔ‚ø2E/ü:eMÁ£Ñ>-aÅâ8÷M*Ž2IòÁ:]"¬îsaœ7Çx2”¯C’Æ#‘âãÑR;§=w/ôz?ôzW?ö~sQöús_8ÿú2O8ÿ:2_¬ÿ{;_,ÿsîö÷Ç/n÷e‰/oÿsˆ/oÿ;ÉOÿÉÏOüãÏNþãÏn÷„óÏoó„óÏióÇÚ_ÍòÄÚ_Üò²ÞWÄêõE/ËýW­/Ûùͯ[ùËï[ù[éïIûÉïióíÛÏió„ÓÏióÇš_ý÷’_ÿõ£¶_Çô¡6_Öü³´çü²ôoÃüêäoüîÔ+áïN¿þ;‡$†H,db@!„-A!ˆaI8Ž$@(A&4DDÄÔHdA„#ñ„RA€dR@DpAÌA…ÄA„Ixø„„A(A.P‘a!'P!+p¡(#'BS‚"Jr”+P(Q(ˆC"ø*$D"†cB9Q&„ÒA1B$…1B8CM"F\!DE¡HE‚DáADÈE‰Á‰DFÔ!TBˆ+$Ÿæ ªÈPÂ!‚¥*‚k"¤! "à´'B(Q(Ð’¤ˆq"*ÒC@„R@ÔB´A$HSd(Eâ‚@”ÂF„HSHt„1H…QBHB(Eó=!$&dACÄRD,’X.†B‡BT©‚„)8$GHÙ"1„MC (EC¸AQ…BWDI¦äCDHt‚Š-AÎBO!ýxOÃó„DCÜ"Öïñ*-×µ1Ô¦u"ømL?ô8[ÿÆÑb3"/÷-]ŸÒñA%ô9I×’Ý-·³ÛCÝ¿òòL…õ?#ñ\?­ôx_HÛBÓ"ãñ]d½%=/Ÿ¤´*t-ÙܲÈõºBËCßAó#'O,øXHYñ#‚Olâ-ö1UN”)ò¢2®!Žßñ‚3Oîý>A‡OUöÅ]ÿ{²]¸ür2O©ä„¹XùrÖOíöV:$'ó|IöOY?%ñeO±õ/zßÄñ*·Ço"ñ$ÂwYµgñ%qÇþM×’Ïò'$=§ñ]c>sï•qCóXV_#õ8^ßkûÑŽk:m$/trIögA’ö%ä7E_ô$aÒöÊ÷§_·ü˜óoœñ[5ü´R»Gû‚6¯¸²¹òú›­úãYï[ô©ä§”†÷¯å¯ÂýRj®š-ߎøRžÚÏgýj–#\c{gOAå‘U)¿¥ôyK‘÷o¿ÔóX.K1OAÓRs1ôTq[WGÏÄö(,Ç‚_ÑDó*'Ï·òUF?õ[¥ñXK/’ôN´?Ø÷{.O+ù¶¤/Hú#/Ï6´'ô.KÏÔâV¶-ô%XÏÔûë¿O¿øÕî¿õÃރ=¼3ýf±/L÷’"¾+¢+«?3â½ý;ÄÿcÿH)nhŸôhŸ„ùâúî*Ú«…¯¨í©áíù>‡Ãp2ÄA>$MI#Áaë!aÁŽs×$Ž2EòÁ:YòÁðáž3qaÜxsÜx2ÄÁ¯CÒ<>aEñˆsW„Ž2A¬S„,î9ƈ7ÇŒx2ÄÁ¯CÒ<>ì8wMø„2A¬ôÁðáž!ÆxsÌ„#ƒü:4I¼¾ÁèsÚAýeŸWõCß×õaßU÷Cßu÷¤SÿÅó¤SÏAóåZ_ÅóÄR_×ánw}ìjóeŒ/c{wü:÷oSô{çoôÇ/öoæ÷îvO8ÿþ6O8ÿ¾6_¼ÿw._Å¿ÿÿÁÿÿýáÿÿáÿ÷„ó¿/ó„û¯)óÅÛ¿­óÅÛ¿¯ñáÿ·‡Oîóiˆ/ëû{ˆ/ë»Zþªž«Å¯ê¹Zþ®ºïUþ~34A(SdB“DtCHtAqAÌA…„D–D$m£ñ„P$P$,dbl„!ÄØTÈ!Äaˆm‚#ñ„„G(„G(„Ž"A¦ކ!LòAˆ-A‰’ˆ!„-‚£á(1I†Rˆ†Bì(R„®E(8_ˆ†1j˜B„«$‰1FâB“X5¬C7B„œd"2QFÁ!0AƒqE:R)*C”B=¤6'Fئl䈲Bb°’a$®F"²A‚86‚H‰˜BŒ¸2O‚dH,dY©1„‡#X)‚û­ƒ!&(qˆ-8C0&1P.ƒrAD(bSBJQX,„‘"$q$"bD‘.$$D²N%!1B@ÁBBD$V„HB"BAƒÆcŠTЉ2ʈD#‚ŒT$R¤P&À„„%ÃLGÄ@Tá@H8A%L(EQ‚ `b(„ph&DD'‚d@BDQb‰„AHO£œ‘ˆdß%Oƒ"%aKd!(@baEb‚G‚"d(DS‚IÂb@bB8DbA(!H€¹"”†$d!„ ,D™DLÂB,±HBqD FMBƒ2BN(’Q“H‚Â&Ø#tR…•B2%¥b5”B%QN(A‰BAX+$…òHB$0"=((!eU)-I¬ò,Ác‚JÂB(ÆB%T!FÑzÂ&HÑ!"d%N4,!è„QH‡h?ꀈ!"AŽ,@DDATH@ÀA&D "A0ApJ3a0LA&(ˆH€PH “!.çc Š˜"LR!pBQ@2HIAB@H ! H°$-( $LB@!`BBAB!FAd"Fˆ!R"`OïG45$Bá‚‚†袸!Ie¢G%a€œ&2VX‚Â…'‚†C82!ÃA’1Y%‘%L'ôE‘Ñ“tqA&IÅìÿÂö!LwaM3Ïrö'EŸ5W%?Ô‘òagG;ÿœ¼‚³aâ#ùÓy«Ÿ•ç³ñURݤ¯Æö(„?|õ#.gë—TŸ©Ò=ôKßò­O©òãíë_Âá)òãÌ¿™ö(l­ø鯂ôL„ùñ…VOqõ^¯MùÏ¡õÈ"/-K?X='gö_çÖñ"'4¿õv/ýß”ö)cÓÂò&cŸÆóAMÙõ(1_ô!%ÇVó.,Ç”¿æÒ44AI¿öÒ}ôa¦_Ñým4)ñ"2žÑŸ—óY¿uñKcÇDÜôl±š÷ΗGõßÿ÷ŸX?,i¥¿÷šMo_ó†Õÿ-ú6/Jó†”?ûûMV?I÷.Kn-_DÔÁÔÄ|ÌýÚŽ‡äÏìõžX¯é¥øÈZžho› 'Sô:%MA§-açœì¸í(ôÅ:Q¬!òáž3saÌÄ7Ç.„'C\ü:$MÁ£ÁáãÑVO8÷M(O(Ó$òÁ:CôÑðñž#dÆ„7ÇN„'S.ůSÒ|ÁáçaEá8wMø„2A_¬ôÅîsa¨‚7ÇŒx2ô"Ä/C“Æ£¾Á.£Çt¯ô8|¯ô8\¯öºÀ&qDÑ´H -3o$à(Z!‚ã˜ñ!BDQ”D´ïÑû¼[÷Ó[BA²Ìù>ZÏ_õ•=ásܲÈõ¿ëûÜ>ÏeýüœK1oA{6ö$4ÏϼŽû>Ï¥ýaÝ­—QßÎÿžÊOJÿ”šÏë»ÞñÚÚ¯‰áé{þö·<_UóHB?q÷TQ^S+töHáNýáY_ïó’²*ó¤/4ûòH¿Òµ{úS!OFô)Eúþ\¤¿ñÚû¯³ßüØ›¯©½½%þq²?9sãþ²²/"úÒ:¯ëµúý3?“?KB.hëw/Áùò¯ÿrgŒ?5á5å)½~»òÿ’:¥±6±¢ò~šn†+_ëS:wZüee‹ÊžxO.øÖ4Ï/ý”ôo-é-é­½šýâOÐrúG{3õK¡=SŸõU?/§ôñÿGš¶'IOS~óý¿Ÿ¦ô<{JrhùaH[²/¬óâ¿ÖþŒZŸ¹ô˘¯…õø^OkôÂ3Þ¾O%ú&’/)ò‚öïû~Ú//õx?ßÕ²$bFÏέ½ïkûu—Ÿ¥õ–H¯4ñY~Ò¯ËõÒ¸¯Éÿ~:>oAº"óž*Ï,ÿxoawtøLa_’öˆØ‹§oLùtºÏí½žýؘ+¯­ý”åŸ /SÔô2dï4¶^ÔvLã8W­Ž2EòÅ:A¬a¤îYCÆNˆ?ÇÈ„+Cü:ämÁ£‘âëÁ-aŽsW(O(S$¬3DÎFøáž%4aJøsŒÈ'SÁ¯CÒ<>MaIøˆs—¤Ž²†òÁ:IúÁ†ænQƒƈ7Ï+‚'K¯Büº$I<šèë)ÉÕBþr[ïCöC¯CôSsë#q÷ø²oý÷è²oy÷ˆ²­ñAyooùaOoóaHnóa‰oGúsÚ¯Gþ²ÓïÂÿïÂýÓãï‚ÿç*þÇ+ò„s+úÅ>ŸúÄ6ŸènsyèjóaˆïCÿsÊïBÿ²Ë¯Fÿ’C¯Fýcëöo1öjjoxÿx¢Oø÷¢_¬ýY*olýq.Ïnõq,ÏnõA¬oO}SøîÔ+AN½ôèÔ+aËüoQö¹û‚dBƒCA„ÔˆŒˆxè(Q‚@HAŒR„.A pAØ8…"A‚8ŽDXDD¨A.•„CƒñAˆ4ˆPˆ€xì(A€ŠîBÊsÂŽ‡2˜,ĉÔ%ÉD:"’-„()zB [‡%(á‚h$ÂJV#´(H+1dc¡‚C‘"†OŒ²HB…²!qH„™(#‚JzD1(L",ˆØ$"”8I2NhÁ(Eèb˜(wB£8ÂW”¿áD6‹/Q‡ˆ˜((ãä¤!F,œ"LÁA„#”ˆ‚@•@$™"Š8„FQ‡G°ˆ) ˆ’D…ÄA…‚hB#äÁIth &T„¢"SB¡$ì¤?uˆ‡€aŒ…¢D¨„"ˆ(+ƒ„(‹„(„(^E(4’Œ*hƒF$¢ª#dAðDHPIB„!‡a„HŒACA˜”‚,†*5D1„€Á‚[˜@ÆH$ˆ,´!E.Ä–`a!K’D()ƒ‚‚dc*THƒ)¼$”!àÂá$"„!xH$Bˆ©BÍ@ˆ!J‚ÈLA)„ÌI!>HÔHЂ#E?[„<„a$F*nAb\„%#ª„„28D‚ò(ƒ¢GM"É…8R„+ƒ’²G‚C!¢,v$‚ADd„ |°Qhˆè„2ˆKC1Ž"‰ÄBà!v „%Hb!B-øA…ÀB•H6ˆ†$ÁH€ $„0‚&2QÈ!F ‹”àD‘PÈA@@H‚!L H8A0H …!HH9ª*A/ Gð„XP¦“$¡ˆ#ˆ¢’)"‚bBH‡B#Ä$,I“TF°"4†J„FHÄBˆ'…L¢D)I!À„IB"K‚0(AˆTÏhHB¥aA"UªÐ$á"2N4DˆD—E„F”+!,†r±hBy#tDb‚#8‹¤­(EjAÄ´‹"¨ƒ4$‡ÄLtHj¨`B„%´HÒ‚*d„‚Ç(ƒòD"‚ƒ1XUG†DÑ„âX48%+(Hi„ $B"A+!MD£#‰GaBD„\‚Lò˜B…(D$±bI!FÄHƒˆ!!@XDƒ@ä¤èBAʤˆˆ‡!XNž$£‚±„!aÂDŠƒÁ‚…Ñ%2Ô(F…¤"1BH!Ó’BC‚a"Ð$s‚ˆÒÂd„D(F„È"‰$J(!t(„T,(G!$(„%Œ$"„X„jH€…ÈóÒ$H$„`B‚!AXD „JÈ&ˆ†ˆ|(E&BhàY’dHŒâd*âA`(L4ˆ(£ô(L¸‘B!è!„ˆ(„( ÿS (#DBˆ`!0B .Hd)(t‹A‰Q$`D¢80(A0$ˆA‘¢"@‰Hˆ`Œ MµC)ÄHЂ‚FÄ€((DN‰bB‰’H/‰6”€&ÂD*ô…A…"9”L²ˆ()tˆ1ˆ‚t$Hª(E‡À¡@‰„ˆðN¡$.$P@!HF:$€¤`D„AE„ˆA\T„dD, LA1&`A„@$8@â"´‰A0A†¨ˆÀH¢+È€ ,9‡(-)A@â&$ê()ù„DMD!!„$JR‚(†eƆŽBpÄÚBL‚D˜ „"ˆŒ²HG(D†6D„H€Ñ„eDŒ¨D…(†(ôüw$ pEA04$A È<ÁAª!„‰ab#%%Jé%ø"$A!,BE„Á"ŠS,@h(…d(&„I„FHÌ@B(D(  HŒ‚=l#Dá„ì„BÔL…äÌ“$‚({HD-HY„´$+)È)ˆ‹$)¢,(Gˆ’D(SÊH‚€DŒX‚˜K$…øDBˆç„oî BAIREC¬OL‚ˆ„I¨ˆ„¡(MCèˆ4tÈÈ/hñƒR'B!v84XCáÈ(O¡”DEU„Jc4&FuABzHr|I‘Tp$ÔH˜BmI-˜b…xB‹B–Lzȇ*žßƒ˜aH€T‚ŠÕ&Áˆ8D$,Òe¼H¸…dC‘T‡•Axrb1N(†é|dX$'h"w(Ofq‚r%X):ÔDˆø$„ܸtJIÁˆÅrÄË&Ec(H6¤EXá€Aˆ\L-$D)˜Â!‰9B"í4¯×ÑÏò9T/¤rNÙ‹ò9X¯¥{üñDY«˜Š£›_Ýó¾ÕOÝ÷‰‚/ÏõlE/”öI̯æýzKïòÏTŸ.ì¤õK?,õëâM¸5ôby¯)ºDxò'ïÿFçŸÅüÞNVìÖÖÉø~Þrñt?¿É÷Ù”¬ô\;h›¿Íê…û~}ïIûT”M"?ó¶ÝÏÕéqïoÕ„øHH‰úvžzOs÷ªdÏKýRÏ!±Ú÷´´—7õ-?Çåφ7•{Húh|ßÁñ=//}ü+¾OJúd¶oiýÿOIý\¬?xý|MK„öÍÛï—|üÿ¤VÏÄ÷AÒŸ¸öÊR¯¦÷G¶ýÏOW|Íü&;¡OcøNvo¤þû_ï×ÄDïÄòɯ·ù„EÏÈòn~_!øÉY‡‰/¦õ®_4ø(ÝßÍñ4?cº$ÿµ5¯Åõ“ϯwVÔˆtZø¨ôïaùü4Ïòn:O¥éá‰õz>Ï#ß-¿¡wiû^3_„Ô«tIû^?Ÿ‡Õoÿ²zŸ§ò´-"?ªüö»ñ*%OŸÿKD–ôhyÒöÉ\ÿ/ý9/÷ÕJ¿-ýQÉ/Xñÿj?NÿVú߯ù²"+¸ÿ…ÿ‚õâîã¿Äv%áV÷2)¿MöóšŸ÷ùÜ3wŒ¿-ùA‹?±ïòãèï!ûqš+/Hú3ÒŸ!ÿ³Xï÷´”/ÅDüLd/ƒõžt/oû$âÏoó–X¯-ý²þvo;#Öáõ?h¿Ôa5¿¤Ô‹ôKÏ·óÛÜ_2SŠ/AYFO"þÊÜ{:û$ÕŸ…ö%eÇ–ÏòùÏzÿî¾SúŸyO=ôÙÊ;ÅŸ¿ñ´MŸM÷DZ¯ä»&ékãhÿh¬_3ýòQRöWh—V.EOø‰h/ü)Ο¸÷–A¿¨ýŸøõºMHöϽ/aû4’/K²¦ûVžß§ûÚ/góHÃÔD´lûØ//ÿ4¦î~+¯­í¥ù¸zïOóop2äRô:$MA£ÁaãÑü„s›$Ž2A¬ôÑBïraˆøsŒˆ/CÄÉ«çMÁ«Åá«E-aËLŽs׈Ž2‚¬³ÄôÁ†øáž/taŒøsˆJø2„ü:ôMÁ«¾Áià87MŽ2CøÁ2ÉòÁÂnzaŒøsŒˆ/C”ȧCI¼„>¬3=×/ô+_/ô+O/Ö¿÷vA¿¸÷äS¿¡ó„ׯ!ó囿¥ò¥—·§z{ø¡wŸ†ø3÷ÿ‡ø3·/ü;¿oüy/þ}±o‘þù3O8÷û:O¸÷º4¼÷ù88óñX?zwqø¡7Ÿ†ü3·¿‡ø3·oü+¿/ü+Ÿ/þ/·oþ««O¼÷»¢O8÷š&_¼ñÛê_8qÓîjó_L®_Äü2¶…ü.¶+ÉïbûÒȯbù’èïbûÖÁߪ…ŒD„R„.DEˆ¤ˆðAˆMAƒ4ˆ€ˆxä(ˆXˆ „2F.„CƒA„ˆ`ÄÈ#á(A„@„dBƒqAÈAC€8Ž€€ìB.6óÒd#HHDÂHEd(’à‚q$ Œˆ/D’)%!41ªL¢‚À$$K¡Fô‚(Ü"DÑ„‚VH%ôA(ŽN$ˆƒEèB¤¤ „KJ‚ƒ¨CTHLD”#U„„–($ô>ü°¢:D!¡ „Q`(2……RC@¢cDH#òB‡´B&dB,Ñ(6Á0,•K$­H$h‰„(P(‚ ˆ&DˆˆŠQAÁD‡%¤Œ€Q]›# !B!…R@ôMHdB”„DFÁˆ»"kADŠ‘BŒ¶IT‚)¬ÅDP„ÔH$á‚Á"E„(i¬!D/¡CˆVA†Ì2A‰Ø‚ä+¡$…d¤-Â/ã„HŒ%CEI¦!†l•!$RIID(>EI8"‰h†)QA¦¤(`¬I1G„pA„è1à˜£ˆŒ'šØB"‘iQˆ B#q*„X'HEhÃB¤BeÈH%AæDQ!MDD$$MF˜!])Ed†ED‘„7Ã6GdŒX‚+A„o…ú{‚AGˆiÆ…ryTHFôAIDƒqhb!&‚ $Š“ÞLbBš(ñ„!DÈ„‰bBÄ’N,nˆ'¡‡fˆ^H%j-H¿$3L!ˆph(‘˜,…ˆðA$a" ’HB€ ¤LR‚ˆ1$,BPˆ, ²=¨€ÒDb¡`B@0I†‚`„*2(†ˆ(A ‚r„ˆ”)EÄ%"””9$¤$F Bˆg† ´I HdˆLá„„ÙƒD„…h$@(@±ßO‚t(]H0$&áHÒJ•RÂ$Mn„«%KŽÃ•4$I²”UMAŒ„uX™„±(µ¡AÄ’´&¡)hFbˆIRX qq¨‰áH<œIƒˆVƒ¢W*‹hAƒ6‰…X„vR¤B…ê&áÂ?õ9 ‡BhŠR!Ú$DˆèR)Á&¥AD^ÄAŒ¸‚=($‚„,B8!(G$0A‘…±x‚˜‡B˜€a&ŒhLŒ2XF,¢H#‘(„!°CñKo "ÅA*&6C”&«A[Hˆ#ÔÂ$„ÎÄtXb„Á$aKa(AÔa$’‚A" É(d‚GŒ/„‘¡BŒrDˆH$!B¸‚D•¬%ñ$H€ô‰IDÊDЂD"´(ÁôƒÂŠÒAA&ÒHA²%L¨¡#¤-A±…Dœ‰TÄÐJ!(š(!XM‰v‚£AEÈA¼ƒšD!6(IôDf" Ax‚B(„xHR‘OŒ(ÄI%–ˆNˆ%,2A@(Dœ¥.LÈ$I!xA!’I4HZBG(J‘‰) -E‚ ÈX@"(‰$H<=wlhBFQ„$$!‰´!Hd!A(‚©T„GÂ@¤!OT„ „/ˆ„‚¸!Édf˜N‚’©TD‰V%JAdAŒª•%LÂQ.‚PdL$ˆ2!8ˆ B(†Bhïk „B”Fˆ$!Bè(j( Þtˆ•,(ƒ#(B€HÀ J0†2‚ˆJ4¨HC!)!–"!H$+ˆ-ØH!ì7ö0B…‰„ˆI¨AAÀ(2‚@$"8B¡ 1Œ„¡A$hD‚HL!ôÁ€”‚-Hˆ:”B‚`„Š!DFH DˆH#±"ßÛCQ(H„„D'Œ"D„ÒX Æ!8BƒÈ’Œ”CH¤˜@ˆ/A$HdAˆP$È ÈA F42ˆäÄHA4,²‚(J2ˆJhˆJ!̈JH>'L$BF‚ˆH‘,Aà„H$ÄHDD`ˆjH!áÀ…’„,„8˜&H”H* 0ˆ&  ‚Šh¢.¢ˆAÄ&`H$$‹h‘ÏÇMˆŠ'B@L("(¬Šˆ!–$&!´(H¢FÈHðaBDª¤(¨‹!"ŠrÚ$8DÂbAIh‚JxDX$nŽYh(J‚YAHŠ„‘M$À„˜@Äš"@@@@ˆ„#A$$(! ˆ$€‚‘Š%XB¨Ba¿½ 4 C$†AAP!‚!!"Áˆ†BD!!(€]AP$$Ì,Z‚%$&a8$I’tAË$˜(‚GJÄḐBpƒÔ‚*¡"‚‡$’&‹("*Q(("QI¨b$L *”¢-ELô3AtñÈІ¤˜‚ˆî"<‘Eù‰Œ¢„†EÈ,9xCÄ䚌¸(:†‹«ŒBØ(áY"t"bHFd‡Â4ˆËÀÊMš„@B¸AQAˆt‚$èA8¡-A/˜ŒKD&ŠÈˆM‚†–J¡#…ä–Ê'A!‚$™ÈÊŠñDˆJ|2çTNQ'BFQH¨ƒä(Ø8 pDKŒ"B(IJá„|±EAô'EZ8ƒT"Ï4¸ÈA³$ˆ¸Ä͘ÌÄ’H$ƒåHèA$yz‚ñ¢H°‚(ò"ÒM"O†ò„I áDÁDJQRÖä4ˆD1+(!©¼ô"Ú4/±õ7Rÿ'ýZR¯µýCb¿gµlü¼+/Ô”’O*»¤ú±uÏ“ýÔ9SöXx†íV¶%øš~Ïnë{Ü×K%î¹”SAò<‚O¹úâm«’KŒO)úã¥ïœñd±Ï=øø~JâÆ6L/æÿ8¦®êq}e±Ë¿”óx¬Ç£Ï)úâ|©¹¥ó‚?ÎÿªÙ_XôU'cÑÄæBôE¥¿;ñÎŽjFól„!øˆK+´OOøœtcÜòã§ñvvÿ%õSso¥ôBvûG_<ìÝÿiKškˆ®´ŸŸë½”ü­õvÅèVø­±/~èÝæýÆâß,üÙOŒùjfß$ôý£žÝŽ»†ù§ªžÔŸšý‚èïºüœâ¯Ç¢b¯†´Äÿú.¾å›ù‡#פþ™¯êúì*ϧîMø(˜iú¦‚ž¥ÿ‡eÿ|â/Áô$©Ñß^ÿƒÎOÉìËû¦¢Ç-Úü”˜¯júȆO½Oò[6¿ñõZ{¥õ[R¿´öZ{Äö/ï&õuªŽ6OB²5õU´Ÿßó(Íž½ûeÝ-nÍoØ·OóÛfŸõþœ;{Ô¿-ñCµ÷cÔÿDÿ®_¥ú¢”m´.ñ5F¿ÇÛRÿœ¬ëgOÂÒHÒÆºnÿò'Ÿíözë/µøXj£ÿjœïLÿ¶ß§ø²”oJùö3Ï/øN\m|OÃôV$ÏÖô„ì/ÊýÇ”¯múünÏ£þF˜§-%þ¸^oŒ4Ì=ôÿaó{Soµõ[R¿%ôKW/Õ¶iõïÑoÇò–´!K2ËUßSgÑî½_ƒtmÕØäÖòaXÿbý}FŸ7ôRY¿¤tòy//Ññ«xÿyö46+;kØï!òÝö¯Úñꆂöd$‡Â®”Š÷æ¶ÏgøxB/õË›—­ïþº|¯Ž»†ýN®Oi³‚»†û'§Ï}õ\oâvHüldLOÚþÍœïlùü¦Ï/ÿ’X¯$qXòøê/Ñýµp2ÄA¯CÒ46ì8×è(“„¬·DöÁ"îra¬„?ǤÂ'C.Á¯CÖ<>ì8×â(ôÁ:K$¬!ôáž#ua¬„7Lj'Cü:„MÁ£>–¬ŽsÓä(“$¬ôÁðáž#qaŒxsŒx2„|:„<èã>è=½ïWô)?ïôi¯öm?ïöm?Ï<ÿ?>O8ÿ$_¼ý],_¸ù]Lúù]lúñM¬?ûý_L?ûùE¿ÿùA¿ûùZaÿñû~AÿñóìÓÿáó„Óïaóå›ÿåó…›ÿåãjy_ìjóM¬/kù_L/kÿe¯çýA¯ïýaÿïÿAïå÷„Óïåó¤ÓïaóÅÛÿ§ûÄZÿåéîw[ìî÷IŒ/ï[üòÞ¯Aôúþ«A¯ï½öþúïÔÄ€!Ä2CdbBˆpAÈA‰¨Aˆ€ˆ8Ž HB‚ (A¦ˆpAÈA‰¨ˆ#á("€R„¦D( ˆpAÈAˆˆ3á((ŠdJÀŒÃ“‹(#¨„£X-B"É A‚A#›ƒš"E%RAÆL# H˜”bÁ2’‹(IXDFL1I1ÎB2HI“ˆK4ÐDšLÙ‚BôA˜F!RDàˆ”Ñ’Ã±H8—ÏÙ ,/„X!Œb„A†$‚t‚¤„C CdˆÉDXCÊ¡H°ŒjÄ SB€2œ0Ä ”$$ÁÉthFLä‚“¤#-8‚“´”!CÈÁ‰A(ÔÉHBÉ2WLX(S…% -âeEˆd¡p^ƒAøCB`Ì$š”J5-haHTàV&H*E(+G*”%$H´YBP„ðˆ4$d„ˆŒ±‚!E^ ‡dbŒ6H$†D@ŒhACd‚HDLшd YˆBA‚$$„h‰F AÁF˜A‡¤„!Rhd’‚D¨°DŽÁƒ"ˆ1(.‰„N€NIÃÌ'JZ„@a¨.Äb%L‚‘Ž-$BuˆTDÁMSP(CxJAªGdLBh!8d47‡(oTD‘‰á$ñD%ƒå…Q¦§!ŠDºDQH+!'I†æA±"‘Je8ÁÁ‡"[X¡¬á„(1BDúñ"—R$Aˆ€ÐH€!‡‚X„ŠH„(H!Aލ0(¡ @ˆ†ˆ (€‚H(ˆ€8@ÈEÓ Kˆ(E„F”(Œ)`„Ž!AF&DÈ@›$DP$Fˆ¹B¤$A$DЉ¡„I‘B„Z„ABç¢8Bq8!O$2„‰¡‚C‚è†1MHyFÂ( B&±V(Ï&!$ñȈL²Ê‰Ò²†áÈáàÑ$H¨†IÑ$8HH‡œ’H†ˆòBžFD†r˜“HŽX,I„5„,ø‚"Ž,8XRáÄ>ŠŒX…A4*”ˆ$€I8AD"b²(”B@‘HôˆB`8/(dR°‰‚ƒ„ÒH(˜DBR„I •²(!„…¤¤HL´ˆ‘‚„’…"1H¯ …hB¤Ì($¨¢HläC&C„‡B‡!0Ũ¸AˆE"’‚Ã(B”BE²˜hDňX!A‚KÒ$,À’Eh‰F$R‚8ƒˆ’dœ2³ÄDNh…!ŒŒÀÂ*!„2DDF(Œ8ÄÁ ‚„P„D‡D0ˆÁ@H„DAŒ ‘L¸H$ (â¡F „Ê„H„H"(E(‡!@œA`„‚4A“X("Aˆ€H„€†O2’D¦E*8„‡$AHAÂ!"M(J&´(B¬AEȈ@ E8HK„†DÅHa¨•*H‚B„”A„ d(:?(DQ!AF"P’0H`d‡´@AC”#…²BRRЊ!@ $!BhˆÒ$¥1ˆŠaA`h!$ áR49r@H…‘4D  „&(T‚v6$ÉA$‡d($@hƒ$‚@ÀIÂH‡(@DbH¢JAX”Hˆ2ˆ„Ïö!B„F$Q‚"0<LÂD(‘`„‚‚”ŠA(†qA(‘D€‚˜†„P‹(€AB@è\?Œà!¨!€$„0a!]HŠ­$H€‚8˜€ÂG„€‰„˜)¨!‰) D (!D 1!A„"˜"ðƒWEh„ŠÀˆb@!ÀAL„ÂAÈŒÁ&À$F(d!&("DŽU°H‚8€dBd„4Ah(&¡A ˆèA•x…Baˆ$„Fd(.˜S@$A!!€!¡H(ˆà$ H0F!¡@‚$( c !œ DD@"@ˆB$ B˜…ÀA"0B D (H‚(#!@ÂA@‚,„Àô#ÏHD*¤AA‹HaAƒ„A(È$n‚CGÆa0"`ÐX’jL´‚¤–ôÁ‚DJ¸µd†ŒèDøBH%ÈA©„IÉ4%A‘I@D¢(Æq!q!x!HX…”-A´"„x!ò$Ï´C!tQh#b!ƒ2HÈCÂTÒ¡S¤!T¤!2&X)¤ˆ@„T¡‚r„R¡H†”Á#)B…*HEÂÀ-C1tÆ…$ƒY$<„‚¢4BB†&'‚kDHCA±…„‰Âa‰Èc¨‚ðAˆH¤D#‚‰˜”’9É‘,á(è((†hÖ6!²$h†;°8-Á‰ˆŒøõµ4'´"Ó/µXòJ‹ó-TÃgõ/Ôô.6GEgawöÏÖó%AÏAå–ÚT’Áïéôt/OôÒGó%T$뽑#_A÷X’OýñrÙçJºó´¶ßùŽMOÕõô×ß÷åMOD„ø^žGäOá÷£aOOý3Ÿ±±’ó´•6|Uß‚õ†´_Fù/…õÍ>¸!ùœ–ÞDÒEø¾_ãÔô´¢÷ÔÄ!Bº‚óÄäÏ6Û-/¤ófFñ1ñFnd™ò='O×öM&wbocô_OÄÖ„ö5G’NLMhŸX{6÷TOÄónFÝŸyTøjvß!ó9OŸý‘Œk’?gû´ôß]ü†ÜouÿÜ÷ÕôELO†ò¨ôoeüÄOŸòk7ß!ù‘Qõz7ß1þhç_ƒúÈmob»4ØõGx?5ÿÙ6g“MÕö̵}†GÍOsjÖ,¸˜ôÔX¯vò¦k»$¿bÛÿZ;_„Õ+uYùx=D·/÷:nWÇocñ&6aò=DßÓå–óDýaßÒä–úÆmýtÿbu}÷|/{Ô¿)uIó\;WÿCÿšúGä+3oCó·VÝFÿÅó}_ßýeÏÂâ‚òv\ïLôÞ–Ÿ$þ¼>õÚÓ%ýü;(ï^ûz²_çø†4oKû2óÏdúÚY¿÷Ôü;!ßÖôdloÄñÎ4ïoúXÂÏ鳯õÚÂ%|œþæÆÓcõ?F¿5ñFŸ$µôY1nŸÆ×_q2v6ô46m6oGô=EÏ—áÖÖÖYvléÞþ|ývßct]ÿF¿¬ýBŸôóv¿Ïÿ1'iO"ñ24oCÿVFßhýv]o÷ÿ}-×DÅÈÜOÍôÎ×Ï1üè~oñ›’Ÿ!ù™~w¯Ê÷Ñ=ŽOcû¦4k™?wü-Ò?Ÿñ2?ß‘öHeׯOÒþ¥}ÿhý<ÂíôÖ¯¨ùÂí÷öÏ´/Cäô:$A«Aaë!aÉã8÷MŽ2IòÃ:K4¬¡î)va¬„7Çzx2ä|:ä<¾ÂaÉæ8wLÈ2A¬ôÁ"þ9"Æ*xsŒø2D.Á¯CÆÁ«Aèë!hË(Žrß„â(³„⬳Dâ¬!æî9bÆjøsŒjø2D*ü:äÈ«èëá#ßñô>UŸóô^AŸóôaßÑö^aßñ÷Ìs½>O:×JóÕ;¿ÄóÅ;Ÿ†ñá׆þñm¨?ÿxøsÏïô;Ïïô«ß¯Öÿÿ^a¿øöŒs¿áò¤Ó¯còÅ›¿åò…Û·§®ß÷‡®߆ü2Þÿ…ø"Þïü+Þïü*Þ¯ÞîûÞá¯èóÌs¿éû„s¯iòÅ;¿íúÄ:¿¯èîqèîñmˆ/çùˆ/ç½¾ü:ÞëÁ¯ã½Zþþëá?ÁI"H(A&Ä-A…Dˆ#á(AD€äBˆðAˆAFL8ˆM#á( I¸A.pAì ˆ#ñ„A€dBÐÁ1›( 4G„˜„jA(bÄ2`"D2EhE™™‰AsBˆCÈB¨‚„*aˆC"ˆô$´"„"ĈL•)ŽN¤N†¨†2hV8$&¢IC²LñaDaЉ±ÄÂ'⤣D¡ˆ@ˆPˆ0DA¤AF QPˆ AÈB0Hˆ`Iˆ"VHAFB0H4ˆ…A’‰ˆ%ÈDƒD(!QÀeˆ!”éƒK„”#P‚!£¸M"„H$‡L$PM$¬È$+†e¥ÀÂ…´JÈ&ØäˆD!„8Wh@  °˜“†‚BµÁ(iå$A(…Ë¡% Ä"Â$0ˆ-LðKø0ŠD©!NA!²@‹!DBpˆ1EH()‰E14b„Lˆ°‚4H!F¨ˆJh„)#! ›‚+B(H‰”(X!Š2I(Ôá5ŒDhœAŒi”‰’„/ca"DŠäQ!‰DHÄ¢Œ‘-eŒø”†ŠÔ(Ø„d˜KHEì!ÆH…aIP‚…QÄŒ‘<‹JA'H+”Š„xI¤Ì2ˆc#„28Á-¢ÈHŒ¢u°"È$NŒC¸Dõ[s0‚E$!(!À„!ƒfHp¤ˆP‚HB8À ,`HH€BA!(%è$„À(@ TA@H(;F)$‚0I€DA„˜!P„Â$%¤@YD@ÙD9B@”ˆL‘ˆ%$‹„‚€’% „ 0(AïØ$_T@ òdcÉFAŠ1†CƒqA’„‡!"‹$L¡ƒÒ(5H"#ùˆBLÁT‹I&%«p"dÌ'X‚G†0T¡A„Ò#2XZh‘lÓŒ‰Ä´)`ÇŠbHFˆˆ1ÌŠ6RÈCø’SóÚƒG‘HˆB¡DIj0†CÁk$…aˆJB¹ £$„H$Q$•ÁH)H¨H)„è’&ˆ°† ÃDhBÀˆND!ŒÈO¯4‹D!„ˆE‚,*dA$È(E¨!†d†)(EAôˆƒ„K¨LèAÂEŒ¤Á؈!$¡ƒÑH@´’"ˆ!ÀIˆÀ˜H„€$ˆHĉ#ƈ‚„PHD‚bÈB"P„0ˆ¨A‰¨HBŠ"KH‰ID MHˆ„0„)Œ$€8˜¨ H’t €‘,"ÀH˜I")ˆDQˆ(€ ˆ”ÂD"bBŒ„B@T,,+)ÆI  JÜË„ ”ŠÐ"ˆH„aH(H„È0HŒ$8L¬"„ž ¸b‚! ,(Š"+n€¡$‰A²$1!G†3a"Ž„Ð¥Bƒ­!’”!|„ƒb!;ˆ$±‚l"B"+8A.H)¡!%ŒB„R((0D=BrBa"Hjˆ¤‚!"ŽH"©„’B†Dñ8B(’Jb¨)d(B’nã3 `À²‰‚ˆL!âˆA˜B"‰d HJ„BqH¢(pˆˆ",$$„J¨Âˆ"‰hI›„Ô‚$@!B3(¢ Á C H,øWÆPHXB ∄H"!¼¨Bˆ,òH$ˆJ’ˆ8ŠÒA"dA‚Š(…B…ÁFMH„Q R!’" J!$Ä+³Š(1>_Âû†6OAügv_DÿÝ}oõþ¦#ßÖöHÉoÞµsþ¿6ßüñoyù›—´ÏóóC(ýïgûôžoBø†„eýÉ‚¿‰õ29_Ñós!ßÒÔÄú§+¼ïiüÜŽÏíþÆX¯)øØÊÇñ+ïLõO~_ç¸2ÑFñ2Ïcô:89ûüM«cOÒÒLúæ|¿‚þþxJÏcöFد-á¡ü|f/|1¦û1wo•ôYR»UŸôñmßGöÿ•m¶oHó4$Okõ~4ÝuÏô~ö?ø)EO”âÚ~mø»Æßeÿ÷o•ñKŸ%Ôyñi¿B÷/Uoìú¤oIø†To%ô‰Ò¯•ór_וŸRrMü¤ýߎóª–Ï}ô—‰õJ’9üÙó*½ÿZÿv&O)ó"4kº/rò]s¿”÷jF׆nDßÄödDÏ”ñj¾Ï­ö~kQ¥ê%ôØžo¿¾/CÄA¯Câ4Naãá¶Lä9Wž2A?­ôÑZ(?ï©!Æ„úó\¨/CÁá¯CëA>>6¬Žsφè(“„¬“„¬òá)razóx²äüº$NÁ£é¾>ìv,á87mŽ2Câ¬7%¬î=Æ„øsLˆ'CȯK‚<èãÁH³Ññû>AŸóóAŸ÷ñaß÷óaŸ÷óÌó¿çó„ó¯CóÅû¿Çó…ûŸ‡ñ¡¿ÿ‡ô¡߆ø³ÿ÷‡?ûû>A¿ûûA¿úùaÿòû^a¿òóÌs¿ãó„Ó¯còÅ›¿¥ö…›¿§èúóH®?߆ø²¿ÿ…ö²ÞÿôúþÿôúÞ¿öþ¾ÿö:>Ï8ÿz>O8ÿ:6_¬ÿ{>O¬÷{îö÷‡îvß–øòö÷—/o¿6ôúþkA¯ï½öþþoöOL€‚‚äB.”R.ÄÆèô(„.¤cª+!Ž((I¢xA¦"`BpaÌA…J"Â+%O( ¤$(CäR®àR(ôaˆ4)H¢Hмò„R(ŠôH(‚J‚2D¦$ä’;2èŠN‚Œ„hˆ¬‚8&ˆ‚8„*˜(‚(G/ŒÖ†ÉA‹Ø"M¨ÀBƒËH‚HÆA|ʉˆâ!B©D!ƒ‰Œ‘KŽqáŒa)•‰øAß• ƒAq(‚„.Ѝ% )˜Ih– c‚Cå(8(J¸¸ö˜D€" á¡‹HH`‚JÈHMHŽƒ˜©"„4L@¢ "ÐB¤,ˆD#ˆŒlD-†#¡ˆ#T‘/„ˆD.JD$L(qJDÂÑ…Æ(T,»8‚H†â!THN(°hA(DLè‚tAÌ!C¢RE!mB¤ˆ/B‘©Eh"CÈ$˜Fd).Dƒ)E¨Äi“HÁ-Dpaˆ(-¯3 A2'$O’Dq(Æ„€Ü MД‚‡Ž$‡D ‰²Êi¡Iˆ“„$ˆ.\(©‘%„„AŒ´âˆ4"Kƒq(~D2¡ƒ’Ž"¨Œt%¾D8A„8P„'H#è„AkJ“qa˜FxB"$4$y†I¸ZøE¡Mˆ…t!\‘ŠòƒÉ£N‡H%A…4h/„Y&ÏI!ò$‚A…äÁ&RDhBMd69Ï2Ì$°‘ˆcØGŠÒDhB)*ñHãyøƒd”Šqf$ãèÔH‚NL‘RÿXB„4AQ‰"„dd  Á6`Áˆ„A H„( 8„€ˆÄ#±)B ˆRARŠQ‚(èk„0.‚ „I¤*`BH…%#ä((¦7ç D€„B„“¤(%1„ ’11ˆ(IÒ’„( ŽJÀƒ¤‡(¦"”!"FHÄHE(ž‰H¤(>IA(à:”´8#"„"#8(kD'˜ø¦eÀɇBFˆqH(R‚—„äBš„„>ÈC„”Á­pˆ7hŒ–ˆtHåh„±¡¤ˆ&$‚dC‹!é7‡†Kª<숶Xh&Bá„i6¾LN$.#êˆQAhƒˆtL˜$ŒÚñ‚ÈMC„ÈJAØ’2?×÷£ì[·_'û¸2ŸÖüE!_ø“oO³õ—qOOù_±±’óôñß³ë£÷s=¯Jº5ë#ñS}?ßïAû1·ß+÷,ä—–‹¤?§ýHb>;¯³¸é…±XõØxÏËûhúãÄG¿æõŸñX¿õwû‰ÏÕý¼oAû6¶O[ÿ}mZÿߛϻÿl–öKIÿû?ßós;Ï1ø1™õs?Oµù}çŸÆÿù8+ogëSÿé)/–÷?òß;ó6%IŸö‘qøá8ñgn‚ôÁI/æò-£_rë׿¹²"ó6¶ÔŸó3|¿wÿù3?ö)eÿ”ô¡ñ¿µ¼áó¸z££Ñ‰åõx8ÏÃþExðÖ®ò|>ÿ•õZ¥ñ|>¯„ôž}ÿé÷}¾oIó¶ñõ-goÁñ¼ßŸÿ>hÏÆÔ(övx«oûxþ¾>ŒôÚÒ±ë«ñÓ|/Ëûoêßçù’4/Kû7òOfúút¯Ë÷ôØïòlDlw–ë=ïùXÿ®noˆôÊäîºòâl¯Oû?²ßæú²4/Kù²O#ûúTÿ÷ô½+cÏÂôH"/—µÊö²ø§»¸÷Ô‹™ZÿµyÏÎÙr÷cæó^¿µõ[Ÿçó~)¿Äýïãû´oCûUÿõö¥–ïÑñ:߇ölhÇ”Vÿýx//ÿ=òϯwÖù‚Ú%ù¹:ïYõû5ÿ›þn¾–/Kó¶±oçþ(÷¿Ïós>ÛAÛfÇÔníÛXï+ÿÖŸ¿óÓ?­ùÒŸ¯õ÷‰*A3H‹A›,/AÖò„Ý(HŽIBìHôA†¥BÄM(F4HŠxTÛC‘ôIŠñh%ÍŠO!äâ(a(âaÚdq.¢DI¸;ô(2,ô*ÈŒH«AȇR²%D¤ ,Ay$Bi!‚KA©A‹!A‘Cñ"˜ƒ³)”X‰’’AƒD$1$Fj”CHØQ1(J‘‚Ô„Rœ(ÍB,"‘(,¨!B,S)\(h„D#¶T‚"‚„#¸"üÂ¥JR(B„ŒaDjh!`A"V)²„ú(Dˆ™(–„F¢”.&ZÃ"’Dx$4l‚'DˆœÔ$A‘ˆ4hH)…8’:hT‰zBEÂÊR(NCè„JÈ›C…d‚H2$CBH#2H,a‚A@ˆ$DP€a\„I D&„ñ$ˆ!œ„ˆ‘¤ŽLA`Ap5ˆb€2,Á$ˆÿ_ 1H@ƒ"H`Fˆ€4HId€”%BA‚L”#&¦”¨IÂ@$LH‚Qˆ(DÌ4@Ñâ¤Tp,q!T¡‰#8"”0’D…QDŒB„“eDÐhd t!„&$3A`Dƒ(8M„ˆ"t„aH2†DáÁšÁa ±„U"!`(`žL$H€Hˆ¨!ˆFƒHˆ((Á"F!h*”ƒbHBHà8„ÄC($N!¤ÊHâ4X$n!J‘‚D.‚.DŒ„H‚‚Ä!8tˆˆ#â¢<· B$`@‘†Q(€DäÈ\è¢ÂD%Å$F IA‰‚A ¢DDHT‡„HÃ(H€ÂÁb4 ‚4‚cB*‚o5JAAÄ€Bh)$J8Ñ8R`‚‚1HLPH€¤!P(„H)ÒB#è$xD±‘hH!Œ‚LBÁ(‚H˜*Ñ’8Ò ÑƒqH)"D!`HT0ŒÀ!!˜% ÂPJbb±hx‚¡‚$IÂ#„X$Š#´„3¤‚A0$ZJH2‚–¨ð\YœÁE.„€E„„€‡(.ˆBB€€qáB C&D”DM!Ha`+$‰†!r"d$ C-!¨fH£D`$2!‰A”B6Ž  @A°HˆH!‚8(ABˆ)$Bˆ@QB‹ˆ…ŒD€„I@A0%0&1D€"$H B@1Š‹„@ˆ…*…&Hˆ|‚d(ˆÄ“UIƒ4&ñ)‰¡$À"ŽE&­’5Ä*•ñ„h%A4R(i‘8•AÑH1a#RAUVtIdb¿‚˜‘,œx(a‘Ž(¨„/¸X'7{‚°D™Aˆ/‚ø¦‚†Â¨!w …Ì\%H HÈ$“4‚Ir%4!7ÂK!&Ôá‘I@Bd"DÈ*‚¨AE˜QH°‚rƒ"4Eˆ8H"%vAe(¢DTT*CˆÔÒˆ¾AÕRH$à*‘T/r1b(Ç(2DV"Q'$-„&´²Ñ²Dˆ LT1 ñ¨I¨AJœM)(І1„J“sDTb#bB&¡AÂIÏ‚‚_È()w„Ø"Z"m‹¤°ˆeˆïxrb!–*=E'(‚O½gó_T÷bC¿µôRK?4÷vg¿·v´ýÂëÏJÑEò4$öÿçÞ|þ”ƒŸ-ÕIòmHþãÚ¿)ò6BM;§æ¯©øÃ?¤ñ~¢_òÙI¯îÜjÓ'r’ò¢ÿuo´²ÜxRû(Íß”òMˆ¿¾ùºÎÏßœóþŸ™ñ[­«Ï—û¹üáͯhóU¢ž‚îï¯ìûÓlŸ¥ý߇‚ÿÄvHøEçüެïÌÿ®žüJÂ/Œýît/4iìÒ×õej¿5ôSb´õcnÿ6ös¥_¡ýk6moJú´çÿöÿFßû$ÿüw%A¯•ôáó÷µ/;þ‚Õ¿²ò_Ë·¹?<õ*n}aßÑüyÞ¯¬Ó"óFŽ/cüËY3ý©O?ñ?M—’)ϼù?N¯«õyÝ>¿õ™Z¿¡ô«Ÿß÷Î/{øÛº+¨m†/{üÛ˯ùÛ™ó»ß÷“ŸÒü]hŸÜõuFïïùŽ~ÏìúŽÈå,ýêîo$þ±rð>…övoo¤õZR¯µöv/¦ÿ,•¿,÷}ŽoHû¤´oo÷wFïtõ(o§>7ÏÔ´HöfK½²Ooù‘ì¯óÞ¯ýÚ/­øšRn½ÆÿÏz÷í/jû"¶o©sýôãÞBõfêç…߯ô(lï¦öNšÏ_ñ©ü¯á÷œY¯¥Ñªô¸Ø>ü^ûÖ*×Å/CëZûըϫüqMƒù¼~·ÏÖôhhÏföEÜÏÊùþlÏéûÎX‹\/…ôÜT/5Ùlºôx~¥õBJ¯%ô{n§÷â=Ï(ýò¤oañ44Ob÷fïïmõ®ïgËbß”ä~ÿΚ/úVA߯÷Ÿ[¯¬ü§£Oý‰}ß¼ÿ~®/cù’6o(ßÞêwùû].&ÿ•òl)ÏÆô¨Ÿÿ¼ûï¨OÇýIZ¿‰õY¿µôKÙßËõY¼O<û?,¾†¶OÿŸ¹¯ÎõhXÏû^)ÒömHŸÖôvïîû¼NÏÅùŽÚ„í%ôzÞO6õîp2Ôt:ÕtÁaãÁaÃøˆr׈Ž2CøÁ:Q¬Qáîytaœ?Ljø2Åü:äMÁ«èë…NaÇŽrÓè(3„Î:SüÅDîqaœ?ÇØAø2ÄÁ¯CÞüAœ>éÖ,å¸W-Ž2A_¬sMúňîra¼H|qŒ|2„ü:$ȃ>Ì7bìûAÏgóAgñiÏgóIOóS¯Oó†SKóÅZ?ÇóŒÚ?×áêqü¨vŸÄø2ö¿ÅèCÿÇÏãÿÁãýSáÏ£ûVåÏó„wïó„wë;_ìóÿ8O,óÿÜî6¿Çôä6ŸÆüv¶¿ÇìGÿ2ÅÏbÿ’AâýaÏ‚ÿVaËrxÿ,8y¿,óպ߆÷Þ²Ÿ†ôâ¶×—®w߆ø2æÿŸåKº6õø¬kQï¸÷ü¬o÷ê‹B<2D&&d2pAÎAŸB˜BL,ˆ8ŽR$„<dbB`„rAØ8Ž‘$¡„[„.†ÀÀ‚pAÈA•"Ñ(ˆ8ŽSIDT‚(CdJBŽv²˜†1($›H™Ã‚-Eƒah’,b¡*ÁM)âÁ„€á¨’à¨0(204ð4ˆDÈ4”$H8)Ô‰7‚ˆSz"‘ƒR$"+.‘$O4´DB‰"Ø‘b…,:p¨‚G_Æ `’¤H(H·HˆdŠ’"kD#LQ„€ˆ1!ŠH(AA@4ˆL¡HQ€a¤„) x%1Œ’‚Žd#Q‰è’„!¥ä¬;†,Hh$CD‚äA©Å†$DGt‚Iò$H0„R‚JX$ÎH% "CœAi2„L"\HŽ(kDdRƒÌR,ô!N„q0Q-ˆ/)Ar’B±L‹…çÃ2Dø†]H1–üANˆa†e1DÝňML†Dä”´ˆVFrD´(qˆÑHÇ8X‰Ä¨EÂ$‰H$¡!AGƒåôBˆjd…4HŒ›Nea„ŒCˆ‚ˆO¾N€ÂBdE¨B@d"A&€D!$#D‚#d"!抂AAˆlD€ÂÂ…'L$DÈ„#1á 8#qˆ€˜DˆÄŠ$$ÌûáXD$RÀA›$C )"Áˆ‹‘3B"Å„L¢Q p$4IC ‚ŒN„¢‘#†"bB„L&ˆÂJ 2I*¹B(‰8’ ("EÈH(¿(¨1#¤1Xfñ!8†xa‚"a.Éœ´ƒSEÈAIòˆXA!2‚j8”²Z2K?ŒAc"+N,<”/ˆÙ„„’%”ÃxHa%©ñA$#ÔCLô_ˆ/(ò2$Ñ„çH6‰É¸Aá‚dA‹B!V"¨$ì7Ë21á‘‚eˆÄD(ŠNœ¢¤DLd”&d'Á$ðA`"1ÁDL)Y$Nƒ‰âhH¤$D&Bd¢”H…’d'h‰¤’!À"‹Iò(D&($^ˆ)&H"ˆ…ò§]€1)HH\’(9Á2€2B)”æ& †ŒaD2ŒØHšQF.Y#H2$‚jh"‹%Gˆ",áH”È…‘PƒöAÉ"(KL!”(F„b„X…¥8HÈ!È!‹™!fRA‹C'AK¡HA…$KÁ„ HHTo"ÑDAáD’+$@IâxRE¢DÐÒA(üDð"¢pB”aLÒ$B–&#"ˆˆ&úR:A%˜Q„<DH(‘¢,„„‚H&‚D†¢ &„d"I(D€ÃDJDD%ˆ™$"k"A'…ˆ€”!ÜFD"A†˜!…ä"?‚U1HâbAe‚W4IÁ"L"A" ‰²H„$™F¡LÖA¢3„_C"¤¤QLB$R‚0IŠÒRD,¡(eâ#A"a„\’b(Œ”5¢!!Y"-$ŸÇdJ2N„BŒˆ´š‚„¼„„òBA\†hA$‚Cb(X†¢(ÃihBI(DqA‚È1H5R HiAR‚ˆ$¤H&LIÜBE±AÁAˆC‚„ŠìÔ;Y`ÅHQˆ!H#"I„øHEBFD1HÁB$!C!‰Cˆ1‚A8‚&4af¤BÀ‰ÒÂBÑZ2$DàBèt!¢B€H*ðÊ|`Ô$BL$ QˆƒA4'†¼¢H¤HA‚F H$4.…&„X! HHAI2BÂ*t"B„iJd’ˆ’B”$(‚q„A‚$ƒa$.üÖB„#‚4$!‘DIa(à(Áf@„¨%‰ˆÔA„‚„C\ND"À„!QQÈ$Œ$(D‚„B3t(ƒD,„D‚hßJ‚Â4€’FÄ“ƒrB€‚ŠR"Ã’‡8II¡@¢HàR‚Ô±‚°1F…!A% H†$Ò”„‘1È1$(V BC(è"!€R1‚0PH€2@Á‚)`(‚‚,R„Aˆ !‚ïˆ"%ˆ(@@ bL()ˆ€H@H ”#šBwÔŠ$±ÑÂ2¤P(*ñ!I8ÉJ8a!DÑXÒ˜œâA’AÁYòAŠ¡(IóÄ1C¨nB…fgED2ÐQ$ÈR2„I¢$%rB Ftr1!•tArb´H”Š.D‰T‚¬ÁBˆÏ^ŒòHE1AFÖÈ…ˆ%äAèˆÈA+!3’EiDQŠI±„q‚²Á!˜D‚:hBì!HHEÁBÆrIÄÀ1#4„#ð!„#4A«#XXØ¡Z™BI‘D(%³”Bh(#x¢f,†ä7’ð,H!!%˜Bk(žRMA*‘FAòD‚M„JÐòHˆ'…7A+a)„AÃ*¬!Y)"°BS†DAT.„àÄXŽ¢œý¡KȲ–!A(òE‡"ÐHi6LØi"L„H€_JJñ|%_ò÷L¿tBÙ¸õ*d“²ûòa¯Ï"‘5k«n|Ÿ.ù„ªÿ|òûH­ò$h¯ªóú$6ú$²OCô‘/4Ø¢ý*gCy×óc·m2er’òbÇ?4óF2_|úiŒ%Iüƒ–?wøò¶o(ÿS=‹¯­ù™Ø¯{ßüS~|!û•m‚ïýÕ¸_ûŒÈ¿íqiýK(ÉüÒ‘/Gõr{O(ö|Ô-Н¥õ˜X¯g¿>T%üg?ßÒVœ£ñ]ŸÂö4a÷›o_÷iº†ò$¨/kö©»[œßœþ—•¿ÓrIý#aßúûù-?÷úsó_"ö„A15ù*oö”#?ôC’/(ó‡*okÕ3ûÇ"öµ—·×‡–dO:yò÷S?$ó¦v1ô‹›ÿù¹þoÚ5û÷Ÿ­¹ó"/Zýš±ûœëÿªy:}iýi_zñ3Õ/eýÒ(iÿ^Ê-R¯­ñ8þkµåEó>toGô_?ß4õJ¿…ô[#òÿ,roªsÿìiû$¶O£¿¿üžŸnûâìÿƒôIdn$n¦Ï"ÿ2d¾æK¿]Ñ/)ôÓʯ=ø!ô}w9s÷þ¢¶m2o(÷—B/oýa/æúHÇVFøf'o(ÿ·W?võÒ3}˯©ýØÙ¯=éNö•rOûý/CÓTº—ÿœÔŸßýèŒïÿÿHŸÖthôñ|ÏÿzÖæþ\xëÈ/ýXد%õò~£ÁNoÃö-ÿµÕ‘õI¿ÓñswŸäÿ¥³Ïò––/*ó¤3ïÚþ—×ÿéFø\IÏÂòm-Þ÷eûOêÿ¶fzêýAÒ/9ô:ž?Wí&ÿ†³,ò¶–/cû†²o{ö¶—/Vévþ^iÏÂvaån÷Còojü³×-²5ôË[¿™ý¹ž/_ü¡uoû>oK©#O8ûµùÏ[ùùޝîûZißÒrmìvóßyïïý~į(í-ôHÚ¥ý¸Þ/Oµ,'Ct:ÄA£ÁaãÁaÃè87MŽ2AκAΚ‚îF‰øsŒø2„ü:„MÁ¯ÈáïÈaÁŽsÓä(ä¼3„΂îÆxsŒx2„ü:$MÁ«Žáãá¬xÓ¤8A¬üÁ$î!ƈ7ÇŒx2”ÂC’Ä£>-Ôñ-ÖôzV‘ôzV?ö^~öÞ~O8õþ¾_8õ¾¶_¼õ¾O,ýîö÷ÇîvßÄøröÍøröQüxôo1üyÖ/þ|þþüôO8÷þ´O8÷¾´_¼÷÷¼O,÷÷œîv÷Çîv_Æørößègÿ·ÅfÿAîýaÏîÿ–aÏNö„óÏÏò…óïCòÇúßÇòÄò×Çîö×Ç/n÷mŒ/_ûwŒîôïcü¨þëÁʽþ¬üoþ¬X(EhB@pAÈA‹‚ˆˆ«!Ž((A&!!„-A!€8Ž@$À#EèZ‚#qAÈA‰(‘P)ˆ£á(€R„.!|7-($„DñŠA(ƒ&’jáBQC†Ä…‰V!,,QI)åH‚‚(I2E.„`D&hˆ´$xA$²ŒÈ˜_$&M"x†"RA.AàDqB4!bL(ƒ­$ß< Kˆ;…$’I&‘HR›*! ©$Á!HF K"IÁ[…$<$´‚ALjKBˆAb.¤@ÄH&…(†aF†5!„ähˆ#åRD/B¤’,B¥$‚D•BKB&$(‚‡R=&SEÖXH€øKF2¤„'dŠAĆè%Ñ(Xf¤ÄXMŒ+”øˆJ–’€qD¤¨XEZ‚BEE´HdDL¼(A8ȨI´"YLÀ$-$Œ™/†Q„"ODbˆ‡a‚`JB„©É„!ÏAH$Ä$0Ib!¡‡A&I„7HlC(JJÔK”f,…ˆ”O(ÁAˆ%´‚DX„kÆB‚ñLƒHB–¸"œ)šDŒA:3Äb`–DGŒˆ8„#¨!´1¾HH‘Eh$$‹a#3ˆ…‚SB,òTŠŽ…u2A‰rDä,ÄŒ7Œ'2E‘È#Ñ(|’òU†Æ„ž$*q%8F”„O¢DKA?ÙD¨MGŒ8H-¬ˆäavŽ$"oÁóB‘FïªA膔,C´hÄ„GB„/„Ù¢H¼HòÓúpŠT$@,B4l$(€†Œ„`DIÀr€" Ž(iÔH„À(Er(€Dˆ"8‰"Á$x(˜„(Š €Òa;Ž)â!'BpFˆJšAçjPHF˜Ht‚D‚p" ˆà)„ÔlRD„¸‚1(x‚8,HA'ˆVœ(%˜AÍHx(D¸ÂÈ …è‰MH€øÎo$ŒÔ†ty!HBhA%DüDoÒ!¨Í(O„âˆ6BŒèAX¨.GAƒ†Ñ(„5B.DH´´!Œ”‚I¤"AÈ'F\’[a=h†¸! ¶Ñ‚䪵ÈÄŠ_Cc³òŠ4Ž,'HЋ"”BNˆˆg‹‚n{“Bb‹AEŠAD$Bh!Cr$5H5(1LCBˆXR„…¡!/,qDˆ’ISBD“ÔHíB¸A®B¢,BèiĈ$QI¢%2<Œ2D TƒR+XˆHŒäAh&ïü BPZ1ÍX$GL+¡Lñ,HŽdFø„(A˜L„‰I8h DƒL$VHIÒˆLR…^¡A…)¨HˆcL))1„ˆDi’8‚ÁÒ­(„BŠ(Aˆ¤²Ó "@@!H(A)Á„D„ƒE„2I@I…DDd„@˜$I‰A$@ˆ‹€ð‡šH…H‚"EAH‰„ؤ‚@F˜"AÀˆDD„E(DàL"ƒAD (!ÄÝóq%„Œ&ÈI„!@)82…M‚Áp¬”!AÄL„ÜxAB$𘈣AG„p$„\(DÈM¡…„Iài‘ˆ+˜¢&„ïÃDAˆB& %HJˆ”(%x(Ž…Œ’„$¨BˆÁ„DHMA…Bˆ”d„ð„…hHÉèÂR‘ƒÈÁELqHŠÁ„ŽÌhAD@bBX“@˜(IŒ‚@qA((DÐ"x(QHDDˆR„BW”„@0*Ð$xH$TD@$„„pB”(”„@ÄÁC,8ŒL:„ðRá(C”,Á$@„„„‚)Ò„88R‚„(ÁI„DqAH|I„ˆc¡#1ˆA@˜$AÍ$A$A„G„LdA2$ˆ'9… !I‚2À## ‰‚²$tIDˆ-†/)8„Á(.$AÁäøAA÷„ˆ-†/)8(„A„M((.$APHèTñAA—„ ˆ-‚/(9ˆÐDÒD$ñݼ„H•$…ÌDdDL$X˜@(D…hB†F„LDTˆAD…H%„ÁDAR„G„,@ˆ€eÃ@@ˆ¡„AHHAPEDH(A„Ä€Dp$@ˆ ð|=€1LFH2H„Dˆ$䂘DL˜HÄHU¨XDƒhDŽ€ÌˆÑˆ„Hä‚I‚Ä$‰Ä$‰‘%…˜$‚ƒƒ$xZĘC¤A&$a-D©Ä(HŒ²„ÕÒ$a„CˆRà4<,HÀH„DB-MЈÈLˆC2ÈIA,¨„MII!ˆƒ$!A4ŒLÑH€"x…(²”(p$ƒ4-bCÔˆ„LH¸’dA6IAhbÇ$"(IäÈ÷h€ õU„@˜"„(@HD€,HH rd @DaD@‚/ˆRÈ H„ DHÀ‚$>´$‰@HMIFA@HH"D@P!D@@a AD„Pˆ@Dà"@H„LDA@HA@(TDD D@€À¿3@@@À„AA„„TG„„0A†@TH€E…hRˆ'ø„$$"@ @#8‚D@(@h„Œ@D.Є #ÁV³B "Ä „„AD…HPB@ AAEx`(ˆõ@0HÁ„€DAAAD„@D„„  @6M¤%Ȉ¡€‰ÄÆTHШ؂HD@$BAEHHÈHQ†DD„,8"AA!EäAMt !QˆÐˆDÑ) #(!ñ'9H@H$…((‚„„‰tDÌE„%„†BPD(E•D…Ôhˆ„„„…L1ŒQDD˜Aˆ ¡#Äš3@"H„…AÕ ED (x"T„ÄAAAIâB ðHIÕTDDA‡('ˆÄ„L”A*bEÈIHFÈ`(NºðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀAcŽA€&pAˆ#Ž(A`B„ÀA€ˆ#Ž(A`B„€ˆìIPDDdAAEDD&ÀA†&ÀAà(&ÀAŽ®ÃDA@@A„A„ O÷IÑHÀ†@&dBÔHà(á(`B&AÀAA„à(á(&D”Hà¨DAMLxTDD`B(ÀAŽˆ#&„8A Žˆ!`B(Ah„à(ñçAAD/aá(DD(GB"ðAIA€ø’Ž€r$$”Ô ø’†(GB&””Hˆ/‰;50AÀI8EDA`B(ÀAŽˆ#&„8A à(&„ÀAFލ@#á( ’$A"ÀApAÈA†‚8Ž"(A"ÀApAÈA†¢#a("(A&„H`(ˆ/Q3YÈAð„`hA&"ÈAà(†&"ÈAŽ`(`B@€ˆßCDDAADD,4¾@TDEDTDAETD ðµ4EDDTDDDA ÀVDPD@E '‰D@EDA ÀèADA@ïÆü<<A@ðüŸEDDTDDDA ÀVDA@ Ï’ü<<@EDAPDp’@DAPD@ŒPDEDTDPDADðÄòÀÏÃDAEDDTDD ox DDAADD,4¾@EDTDPDA ð¡«EDDTDDDA ÀVDDAADD c @DAPD@ŒDAADDð]ïÀÏÃDA€Ïÿ PDDDAAEDDl5!@Dð,)ÀÏÃDAEDDTDD ox DDAADD,4¾@EDA ðŠÀÏÃDA€Ïÿ DDAADD,4¾@EDTDPDA ð¡«EDDTDDDA ÀVDDAADD c @DAPD@ŒPDETDEDTDAEð÷QÀÏÃDA€Ïÿ DDAADD,4¾@TDEDTDAETD ðµ4EDDTDDDA ÀVDPD@E '‰D@EDA ÀèEDEDAÞmÀÏÃDAEDDTDD ox DDAADD,4¾ADEEDTD Ð[PDDDAAEDDl5!ADDDDð8¶D@EDA ÀèÿÌü<<A@ðüŸEDDTDDDA ÀVDA@ Ï’ü<<@TDDDAAEDð†—ADDDD ÀBã DAPD@ÿ¡ü<<A@ðüŸADDDD ÀBã DAETDDETDE_KPDDDAAEDDl5!@EDAPDp’@DAPD@ŒDDðnLÀÏÃDA€Ïÿ PDDDAAEDDl5!@Dð,)EDDTDDDA ÀVDPD@E '‰D@EDA ÀèEDEDAÞmÀÏÃDAEDDTDD ox DDAADD,4¾ADEEDTD Ð[PDDDAAEDDl5!ADDDDð8¶D@EDA ÀèÿÌü<<A@ðüŸEDDTDDDA ÀVDA@ Ï’ü<<@EDAPDp’DDAADD,4¾PDEDTDPDADðÄòÀÏÃDAEDDTDD ox DDAADD,4¾@EDTDPDA ð¡«EDDTDDDA ÀVDDAADD c @DAPD@ŒPDDAAEDDðãÎÀÏÃDA€Ïÿ DDAADD,4¾@TDEDTDAETD ðµ4EDDTDDDA ÀVDPD@E '‰D@EDA ÀèAEDAPD@¯7 ü<<@TDDDAAEDð†—ADDDD ÀBã DTDPDADE½EDDTDDDA ÀVDDAADD c @DAPD@ŒðÏ<@±B„T!„%€š¢)HTb@*ò(!THHD‘Á/(d(:‚$$#r"B’"EK" FH*”Aa/”ì(Š)1ˆ¨L(«Šªò$$”AEAa„ °Â$ /ñ-˜AB‰ÃA'„!„%‚ˆZ")(²$B$‚äD&UTÎBTBŒ-‚$‚+ˆ+‚Š8„!(€b¡bE!m4¬E¤x‚"H2"€BÄDÄQG„A°H¤H‚!Zd,)8‚O]X5øHAP")h($ Š"C’$&4Eh‡bC4AFHAqH!Œˆ(ˆ‚#"ª"(0EM!OBREyH¡DFY8Šá((é!q’"Ø"Y"-€"BÐDÔôIA”B`,‚‚!Ž÷Ã$…„‚ˆ¦‚Eh@J$@SJ8‚$$Šh"!!@¤""DH€ŽA 4„ h*,Š(€DA8AB B#!.ÏBj$$@"bj*AÁ%HAÁBŒˆ$xˆÒ X" ‚$°$¦B"Lä„H*Ę,!A¢ˆ$DD•AHˆ ,ˆ!-ÅÓ‰¤D$ ($"`‚BàR D2€!#‚ˆÐ$Š BQA D…HIBBØÄ‚ƒÈˆˆA#ˆ#LBAÄEÅHHà$$!˜?‘4A„%)ˆ€D€"bB@4AŒ°‚$ Â"D¤&@˜ABD!ȃ$P" II‚ ”DF )$ˆÈÉóI#ˆ!ˆ#Â$(GBDhDBQAH)Qˆˆ Š*€B0$&¤DØL¡„B$-‚‚&P$(( B‘ Á,¨ðÃí$0B#„D8B+‰BÄ„$0‚L’C &1HF¤„I‚#ŠÑ„"!A„KEI‚‚‚C¢(–X€‘$Rm("ˆI˜I´˜¤‚j”<@˜E(´bH(R„mcs)¤B!°¸„Ad`(`(Q&"$"t(´,‚„‚4ˆI‚LAB.`Æ0$B*¨A.„ âA„Ò¤$˜$`IN(KàNa„&„ðHˆHpˆ’Lþ® „@.AÀ!€(%!D$ÆA(‚€H#Dä*‚ ˆH"A(ˆ"HBŽƒBH@"DŠ"0a!¢$„A H!‚@ÄmÃJCÃcðBAp!yBhˆ#z‚Â"D)z‚d¼…!VH‚Ä,Œ˜#'<ÄH“˜‹+„-ˆ(‹‚D†BÒ$BA³ˆÑzBóDh&qIÑš¢ùÆ#”ƒ‹!Oö‚#è"A¤„ómˆ%\EÄÊ´„%øˆT#-h…FôÝ›($H`”!LD)ˆ‚/L‰2A $®G‚†Ò!$8!΂'F€,¢A‚*hBH,O(a‚ ÈÂ&„(!¦()!CTBEaDŠDã$ˆ$0ÂHOø(P!bŠ&øA‚`HŒ"pC!Èc@2ˆ –¤¢L4*È’"À!,h$h† d%8Jˆ ‚T‡£(@Ä$†„JHDð¡}<‚,š!(ˆ0"ˆ`B°$‡„ ²A2A…‚4ŠB‚$ ¢$0L„BÄÐ,9ˆ„i4O("`‚$B•„‚h,‡AÀŠD2™`#„DH!*ÈAa0HT.F&"ˆ‚d"ˆ,ID€4"ÈBÈ2à(l"$H&8!#–FDÈE ÈB"¨B!@¦„g¢4B‘JÈ,(Bb‚H|¨JJÈ"…!Ä@d‚¨!@‚‘"C!$XhŒÂAˆÀ!HEB˜‚ R!ƒdBL1‚HQP‚NFH„‚„(ÁA“Š4E"D"D@Œ!A!ÂCœHÁŒÔ$#BòX°Dˆ$˜„APD EŒIÂJˆ*C‘„D‚CdŠA $ˆJq$h‰LX‚„Lô³$ƒT„!!ô$J!c”,!KDÈ"A$… (G4…¨„B „Ì"'B$LQJ*˜BÄCOA 2,A`„ UÈ„APB'DH!J„0„0hJ""ĵc„$ !ëdÃC"À$@š!† AhA¥$1„ˆ"‰¡D%¨!IˆuTøaD‚„DPA#bD‰8‚J8ˆ!‰¨C¨ˆ„ÀBŠ:†ˆ)ø†(os ,1ADŒIÁ‚MH‚ˆd°<²È( ˆM¡ˆ„$Œ(Q!Ž‚*4!D‚àb)d4(‰ábˆ$&Bá!D”"L"*±AôˆK$Œx!b$ŠˆAB‚i"ø3@¡B‚€„ „ "‡€@€ !@1‚ˆ‚"ˆƒ’‚0‚ð‡D€$B‚!@B@„B€@‚ ‚$°DH1!,ˆ ‚ €ŠÀ21%8(e«D#qHáah8ŽL«D, L‘&(4Ãd"ªèÈ¡©È‡a¨I¨!J˜„‚ÔDäJØBF\AŒ¤;ª‰¨8¡Â!ƒhI›$]š$á¢t!$©BB(#©H)$4‚h)ò¬&$JÄX„öDB¤C¢*+Iƒ¦,©|NÁIØ4ö„‚MÈ„D‚ÈÊ.†Êô¨” ²ƒDøHƒR $â’‰4Kˆ"„r‘BæÁ(²’L¥%¸Š„KO,ñˆˆÍ‚$‹šŠÈ\óQ!!ñH$²ˆ‚|ˆBtA‚ÑᳬNDB*H(x)xÑB1J‹(4‡´„Aa+aB2!b'…D+!T!­AÐl‚Ïa$.‚‡&‚ ZI¨C¸AhA"¯H !A¨òHþ\ð%¾–>6o+ûv½uõÛÌì÷aÏömlâö}“ßÿßU¿·ó“KN¿õ{ëôñ1ß.û7„'a¾6O"÷t©¿c÷kÛüGaßôMHÜü};*¿žô~:ï¬Ý¨õšH¯§ùn_ÿz'C­A¯CR£ñBaãÑÖ,ôˆsפ,s„òÁ:G¨¬adîy|ä7Ç)ø2„­Å¯CӼѾÙ6Œ8_Ž2CøÁ:CüAÆøá„ÆÄ?Ǩ/CÈůCÔ¼ÌáëA–\8—Ž2CøA:GŒ¬aHîytaŒøsŒz2äA~:´4èãñ9óÛÓó>A¿Só^A¿Sñiÿó^e¿sóŒsŸcóÄócóÅ;ç÷…;çñ©¿Çø¡wÆø3µ7Ï¿Sû:E¿VûA¿^ùcÿû^mß2ò„wÿ'ú„÷ë!_üñW¨ßúñW,_úuSü¥?Äü3î7ÍÿòùM¯vûA¯rùšiï2úžEï2óŒWí2Ozõ.2_íñg:_éñcNûwcü¨wŸÆø2ç·Å/cþ’L¯g¾ôzÎ+qï§¾ö…¶IhCdB€ÈpAÌAÀ„ „8Ž’B „(„äJ …(qAøAƒ( (È+!Žb˜€äB¢pÁÈAƒ¢<ŽÒ‰Bˆ„¨EèBHÈO#‚=‚’A!‹A’!d™‘E‚JBAƒh“"AŽM#S„‚;‚ƒ‘‡$Y"™!6Â1AFaZ-H\‚Ô¤ˆ"d!‰Ô!„*1.N±")¸"¡AJR@ &(Eʈˆ$‚HpUñÞ%$…"ô"A ±HN"c$±È„)%Áˆ("FA46¡Š(C˜bƒˆa#(p‚bAŽaIT„ ôˆD*/H‰Eh#IÁH"¨$DF Ôˆ’„„ IÂBL>¯,DHÒ„„T‚@„B!„ÐV -HPD$@ò…$`Œp‚g„-”(†äHHÌȨafDO¨´áÈ„X`„ –„ƒ$‘¤„IáB(B˜DL"Š‚Ì!ø5–àÈ6A(e$Iq(4B¨A&%ÒŒDDÈD -ž#„£•¦‚+(Aà‚³‚BOˆdR`F!ŽA$80˜˜€²„´¬DC*ƒHˆäaÈLHN¨€ÈDà((„ˆÑQNjÇAH„)T(dD¢ÂDp"DÑ\É|L„x$!H²R„F øFNŒ-¦ŠbBšÔH9ÊŒ¨,oDö(DòÄVŠKB#á˜Aˆé„rd,æ†xˆ¤¡‰ˆö4œDdHŽ(‰!¸¤Á‚‚J¸ˆÁÞ.%BFˆ1BdA" $H†²„tB„VHR‚@" „<(XHŠˆA a‚ABˆHDHFAŽFƒÈ2"ŒA”ð!P„›$`"BƒŠ²‚‘b€TLb$°a(G“$Ãaà ‚²Y°ARÀL*0!¨"›$"°"†™#A8pR2(I"ðü^$°La"Fh$,Á*ò!‚×hha*xTÓŒx±xT1HM(Hï˜Dx‚¤!‚18Ì,XB(H†1‚B<,dˆ(DÇ‚ˆÉ$NÇFb”‚JX„ôHDLøAKŒ«Bð(D„8IÎ(š¨”‰¨A†êñ:w,J’)e&BDF¼‚’H B@B!ÆJ,˜KB€,!„)´4¬X0À(R"„Lj„IB)‰(!èAíÛ€”2…±BØq)‚qØ)¢(M¢-8Ì4†™vÌHD,xa”ˆN3ˆ%U›…C2Ò&±8&8"A2¢Á!°-rH¤µd#d‘,„8AŽ.„ð(QCr’$âåfÂ)’HY¢„ND+"ƒä8B˜Bˆ/ö8-€T"H@haÈ”4F ” ¢ÄLPD•"ñD’B.–!ŠÔØ„dAˆD Ä*ÁK$B„MHLò(AXK‚)`Èæ1hE¤!‚(!IkB)$D1DŠ‚ N#‘H@Dˆ„0R‚,áD2H@‚¬”!$‚!– ‘hIÒHÀ„FHH*c"  œK"€‚X$ Ä—“ÂD4‹TH-@Üx€¤!B‚b”‹$‚OCä2l! B„]Á`(C–H`CT2HGÄEŽ"„±H(T.A™"4¸"6b"*¤(-E(€°4$Ê‚‚‰ˆ?ù!aF$„´ˆ1‚DˆDÁD'L‚!  ˆ‚ˆ"D˜„Š€ª!H„$ €HAHIˆ†‚èD˜(PÁA@(Aì=é!)"!4HHà„´$ˆ‚±&"äŠQÈJà¤jHˆ,Ȉh’D/„1„Š””Š!hD&,dH‚H†IŽ¡aIÄ)0‚2„€áC)($b$ „ø#¦@"!…ÈJ¤HQ¨!0ŽHN„Šä$²Tˆ,Tˆf!h‰é$“„BƒBA2D„¦L‚2„#"4„0ƒ„ƒ"AÆ"„"††„¬H(‰IÄ(‚@œ"€ÁœƒÀD AÒ‰$‹xˆ&E!DB…BtHŒäÁ(h—!%„Ȉ(@¨‚BD”J(áF8( ˆ&X!ˆA((!B`BJH!DaJ@HF¢nó$KTÍHH"¤D`H(h!„%$˜IB(´‚†Áœ…@$C‚œA@’D‰–„‚œL(^„ ˆbrA‹‚(€’I$„‚¸$„ Áî#Š ‚€@ „ 8ˆˆ!€B‰" ‚‚ˆA„@„$ˆ€‚B=Û$@ŒB„@¨,bJ0$2 ƒ‚(H H@°I¤ ‚CE(tD:ÀHσ´™2„#¨A*è¡TÏ‚ñjÄ„ÄrBÄH‹LJäÉÈdˆ$ñB-¨ä“<-(˜Œ*ÄI#"$&BgD¤Bޏ„$M(I˜Œ±Ø Jâ”dB„fdJe„r,!•ƒ™4oÆ NƒÂH„”+BDvˆ(BaKàD¢HA6DB yŒ¡+ˆ§HŠøBœ‡JˆŽ„ ‚‚¤AQ…I„¢¤M ˆB2J¨¢"6DFÈÁŠ˜¤‰¸¸ X°2®ˆNñ£\B=D/„¢D…ä¥$JŒ••A!+ÏŠxˆ‘B@ÁHlâA¸Bˆ‰v‚8°ˆ˜ÁË$-K$Kï˜ùÌ!/DáJXˆ&dQÊ(ã)˜ˆHHD†²,ˆƒ#¤)މk)"'ŒBŽ„\h"jèBØHXHà$!õ#„p1÷Msï'ôk­B={¯dö]aÏþË·‹8o¤û–"?üúéQ¼óVŠ?ýôAíÔ„òãÛŸQú³Ïÿ¼ûoƒ?¹Øüɹ¿~zñÁ?~úŽ2mK‰?þôq}óK…?»ñ!Åa_ø£—?sü’z_óv¯¡ùÚ¿´øþ¾Í¨ËX?ò—¼o(ù’’?ÿõ›{¹wFò»Òôai_ü»/çü2>o,v6öJB/¡¡Õ¯kß|3ƒ-k¿4õmnç´7%ï5qkö6I߇ôøÏ;’O*ø¦‚/sù«ù_4üO*ï¿ý{-E—…ÏrÿÓÍ·ö‹ÿòò׋¿½ô‘™Ÿúøß!ß•úy׿¨Ù"’§¾—¿œÿ…«{(O}ü;MÒ!_<ý³G?cý‚9ß(ûÖš¯-užû«¾¯òÌȾǿ…á)û–²o{ùÛs¹û—¢ï4ý3E?öÍÓ?nñ‚š/¡ÿ^2ï!õZoän»ÞóT.$Sw9ÿ2ÿ4ñRB?1rò)5OHõ7»W/cÓfù'Sß‘ò3_¯fù§§w“EN,?røE±wñÓo¿;öG—Ÿô3CÖóE5¼ó÷Ž/cÓDóÏ3×?wåBÿ3ç÷Vô!åzþG/gñiõï©÷Vš/­ñK˯áõh,ÏFÒ·òmŒ/jú2=ó_¿÷õ*îóÿ_!ŸÖôimóûNbïoõ*&ï¤W&¯$ÔˆxJêÃ2Á|òs'—!ï±Õ#uZû;/Õ÷!ØÏ¼û'„Oaó"o8óMßûc/zú[AßRòMLró‡ÙßrrÓ÷{{¹ýË™•uõ»ÕŸ–ÿsÿ¡ú¶+2M³ÿÛòuß?BåzôO)_Öö%EzýÃ3nòþŸ¬ýR¯-yZûëZ¯ÃôH8O=ÿ8Ojø²6o1û·7ÿý³Î/úõS)×V_Òôa_?­ò®Æ§f­J/¤ñZ£õ¨F/Âñ(p2ÄA¯CÒ´Ô2ì8óD(,³„ò:IòÁðážÆ„7Çp2ÄA¯CÒ<-áãÁaÁŽsÇ„,3„¬ôA‚î ƈ7Lj/CÈÁ¯CÒ¼Èáë–ŽsÃä(3„¬3„¬!øážpaŒøsŒJø2Dü:dÈ£¡áëÜ>˜-–oQö9oô9/ö6oô4O:õ_¼O8õ4_¼õ_ËD&ÓdBàÒ„ƒòHI"hZäAvahƒMH—"•¸ˆ‘D(i” $†(Ä,Ω´ƒ#áH²ˆ´’AG‰Œ¢õøñB(%„øhˆN†¥–ÈBHƒ’H‚$J„¤Ñ‹Á°‚“‚#ˆ‘‚?A¡$4°A4B„¶„肨šIˆ„¬DHhhþ‚d‘Dˆ I8†˜F"²+ƒÐ(øŒˆŠÄDAF™bˆ*%Q(‚‚C!8ˆ)‚²‚!¸„hš±âAX"@âAhE‹”BN‚0ÄšAÀ„‡„”DtˆBÊ„¡½ˆˆ‰8!MH…ñhH*ñH‰…ˆ‰c°ˆd–…(±sȹ’A2€¬˜™øÄˆK#ØRêh%i'„tDò’G$t‚¡(#!Á.H#¨Ký™ð?v/ñ÷^WFøZ­Jïw÷ó_È´yõ4oí{„äÿ—þÿéçùô_ÆømlNoçño†ÿaÿ„ío{á„´‘ùHèOSûLåÿHô1ØÏiúÖŒOIófÿeû¶–ïyó7ݤOFòh¡ïæ·#ó-œÏýþ./„µé­ÿ¼µoÏ÷¿<ßîþ¬¦Ooó6”Îûßêúy[¯óçÝíß×òl¤_þü›¹ÏGùnÏÃõˆ¯Ñ¨óñÙ¼oaó¥´Os÷¿~iýßÏïf÷^L_Fö?iêöý¸?ÃòŸÞÏßúѯ…ñ•Óßû>}ïÇû?ýßïû44_Có–ÁŸïú­y•ù"õ÷ÑßÖö/lOr÷ß™¿ËóÖÏÊÿžØ¯ˆû\JË¿¶ú<}osñ33?!W”/±uJóÿ7ó$¥x_Íù66OBªqoóù÷Ÿ‹ûµôoÕr%½iò·vgtoñ-meWœ^Ñ…ñuT_Òòì'zwÄoBñ„$gfoñ÷wVÿäþgÇïUöe$â_kòhcoßÔßòÿæEûÚS/‘ótOóólïïjòg,obr4Ö¢òî}·³4ÿ·ÍÿÑöm-ÏBö%Ÿµþ®DoÄþî,Ï¡üŠÚ¯ˆþî4nÓB|ý~[/%s[Ñ9qûcRÿ÷ñ’¥Ïˆóy´Okñ–¤M1õó¾Ö‡ý¹•ßÕr,ô-H~õ¯ïr6ýÌÖØõ؉Hýu…ÍïͲ¿gz´ö4¤Ozÿ>¿ï}ñ—Žÿjsý,m_‚òéµß²çvÿÎïÃÿÇÙ/ù;þÿÿó5gÏîûµ´ocò¤¶O8ø(íï§Ó¹ä^{MýmmßÂòd'߸üéîmTïëúNZŒüšÈ¯æúöc?õ'Cô:$…16M!CÈsW„Ž2CøA2CüÁ‚n ˆ7Lj'Cü:d´Ø¾Ô–L¶ŒôˆsÃÌ2IñÁ*K¤!øáž#qa 7Æø2„ȧCÈ«èãá‘2ã7o—ô-7/ô)/ö-3oö)%O<÷9$O8÷:$_¼óqì_8ósHzóuHŸzóeÈ?s{wø!·oô)·oô)•/ö-µo‘ö)'O¸÷;&O9×JòÅ›?Äò7…zûGHzóEÈ?súWX¿rúQ¿òúA¿úùaÿòûVI¿rò„S¿bò„S¯búÕ¿æú…¿¤äzóOH®7ß„ü2§ÿô"ækA¯æ¾–õjÎ+qïæ¾–ôjø,ˆdb,HƒqAÌA‡„#aL‚I8Ž„M‚„(A&DpAÌA4#A†‘„/â(‚H(A.àB.ða4ˆ0( M«!O(Ih(EhBàR<'Ž(D„H‘fÑ(¡hˆCZR*ÌHÉQ&¨|“H‚™‚!˜)¨†%¨(-‹P„|AÀJ]Bé8† G–"¡(!!G‚3Ld"ÂX$X%ˆÌ)Xn+h n‰#%‚áH"hdÉ(-(–1DŽˆˆ„8œX„ˆ b)LȘMA$…T,t$HhàW²ˆ‚`$$ B¨L##‰h%‡(¼5¤°DG¥#‚(‚Hd¨DHP„&D-8 8‚L8BŽBdBÀD’È…„„VHpH¤ ¨0!IhCˆCB$‚H$dˆ(A ÈB 8„ ‚ÿ˜ ‹,%ŒŒ1B„:"”„ C¢Yd‚b1$!¡ L‚B!HŠ¢ˆ rDH"%ˆeHf"DH($‚fˆ” a‚M@HT”F4`$B‡(IÔA>áDŒòF6à$”)’:".„‰ˆâbˆØ$ÂEL&BÄ%ÒHÂ(«L!HaHI)$2ÂKJNÄACÂdŽâ+LˆHáA"çB¸H*³¨A°T8H†(EÁJFxØd$$F*ô©o$ƒBB( ˆTˆ@D$€ ,$€"@@ˆMR@À„€"cAIA ˆ€ ÈD$ˆF*yB&ˆBL‚’“HÀ)‡"J¤’-IHDŠÀ$ €ê±I ÈA!J¢%Š ")FOY h$B”ä"2N.ˆ$¡†àBh«‚v„â:µbDI蕈Y",$©ANNˆCr‚ÔB8"ˆ=$Ø,4>H€ÚÿŸœOkû²²o;ó·_}ÿ›ß¿yuSùmeßRö¡÷‡óÜ–¯wòkû¹üË“¿½ùÛú/[ôé¬Ï¼ü?.ohñ‚–o3ò'§ÿvõ³Î/ò÷C)ßVÔÕôA¿šÿý¦¯jÿú¢mZ§¤¯(ÙêØÂó¾Jp2Ôô:$ÍA£Ñ6–,8ׄâ(ôAzEøA"î)ral‚7Ç„'Cü:MA£ÁáëôˆsÏ„â(ôA:IòAðažpaŒxóŒx2ÄA§CMA£ÁáãÁaÉã8·Lá(‘$¤ôÁæ)qa 7Çx2¤Á§CH¡>¬7-–oQöyoô9/‘ö]6oô4O¸ý4O8õ4_¾õUn\ $É(FF‚s„2$D&‚ĈB&˜$h$[„„Ô"(T†&8B( Èð„(B‡DД„2ˆ#$‚AI‘ˆB‚ŠX$$ˆð„„CÁA!5”F8BB­ ÂQ°$$bA†’ŠBK„-„Fˆ™"ˆ#ˆôõ˜°Ah)A" UHD¡ˆ<Ô˜ ‰‰ã ˆà„(D¨¤L$DÀECE1ˆ`‚$"$IJ!‰™L!F„$A¨HŒ1˜¤‚BÀš1L"‘(€!1"€"h„@(8ˆ X "€Œ‘R"# A AD B ƒô—&$‚ŒbA‚0˜@"BA"Œ8* ˜H"”&2„Œ$`AJ€H$  !>yÓƒÖ˜Q2‹ƒT¤PŒ‰òËBˆAC“‰ÍˆD‰”¢DLqHÞÑíR˜‰ˆÂˆ‹8‡¸Es1!S²Ø¨…pHÔH‘§DD±¨aÈ)¤‚KI4O¨E’A,BJAD/„´„ZR‹‚#¸˜ê^N‘QJ$BE«²ˆäH¨‚À$J„QÍH‡…xDh„ˆƒ,˜ˆ'ÁJ((ˆ‰Ä„+‘ˆLálÅÑÈA*4„:t„òÆb!ø11ˆ9"D¤A´PÍAKAÉ8$ËP$¤’(ÉcTÂ-$$NIÒ&¡TKX/†¤86‘²‚+\r{ˆŒ£D;dJ¸Á¨-…æHå8Ôl.KMAI6(¢0dAFèQF›(/„Bj„ÚBÁA!ñX)±”!c9Ç(¢FºÑ±ô!‰â4NLɈ‡-„…¯B($µfñ„I$?¢Ô.÷fW‹a¿¥ôZK¯ü·<þ×ò¿ø´$ôÖºK(/ü²}}Çú̱//öi¬†òlῦøÛ¾?#õFŠï}Ѫø“ÒN‰¯u»<»ûYuO*ñ¸o"øRwß‹þ7BÏó³:Âö!hÏ–ú©º?B÷³xO.òv…/±›å½óz­ïƒº?þ1}Ï+‘¤k£~wß«õýoWq‹ÛÕöqiOFþù‹oÅr²øÔfGJ«Ý/ˆè%ÿ24ëG£ÙcÖ¹ôv#ï‘õH½Z¯öö^O¢ø+λ¾¾¢{š>»ãŸ$üΉOc÷c,ŸÂò8aÏnÿZ?oÿ»«oºû^‹¯,}ø¨¿o•ù|Ø?çù¹(/!ñ4¢-—?‡ÿ©:ï˜ñüö¯Cö)¬¯’òìî¯Cþ»|»ó<1Ï•¸Âõ•Óól¹ï†ÿ#öŸ¯c!_‚û"µŸ¯Öññ•ï]ÔSô%­?Böì÷=ÔoÊâéµ|²ŽµZó”ÚOûœÔÆJÓrs:÷2Ï”ñ=¿¡ãVSvÿ&òUœ/aó”o#ÕTò3ŸIò#¦o—ò!mŸBò«Goµóò7/vö·rç4/5ùIA=bVòÄÇß+ûgœ/Aó¦†o-ûd­?võ|?sÿn!Öö!äR÷ì£/~úzeÿªõ̃/<øci¿ª÷è/Ï~ú¥ªÿÆÉ&Ojúæ¢oVøMNÏøôí÷WŸÔôLÌÕÏhþêÖïAúnhG)¯$úÊJMSÖÒü6¿¤ñI5ñRC¯ãw[õ9ï©¿Öò$–+‹M3ï™ýüî?Lýagò,,_Böá¶ÿµñ67ïýøKÒ¿±üÓ'•îæ=Í—¾O¨ÿ~ªOaé+ò†“oòü~?Éõ¹ö—òdlßBö!ö_¿òü­ïVûëx?9ôÉ™/ùú|¿ûöù+O/ÿ.¨oaù²"O;û,¡ïuý§OÓ÷e-×T]LOôý•ÏNþN”ï¢÷ÒH«¯Êöb¿ß‚ 'Cô2$ÍA#ÁaãÁ!AŽsW„Ž2IÒ¡“$¬f)q!ŒxsŒx2ÄÁ§CÍÁ#Ááë!üˆsׄŽ2A,ôÁ(o‰rą7ÇŒz2Äá§CO<>6,ŽsÃæ(2$¬3$¬î8ƈ7Lj/B„ü*$H£‰¾„:Ì=oQö9oôy/ö7oô]5O:õ_4O:õ4_¼ýW<_8ñWzWü¹w_Äø³§wÅrÿeŸ~ýAŸ~ýißtÿIß|ö¤Óÿnò„ÓïJòÅÛÏòÍÓÄøáwwÅ~÷EŒ¿þWœ?~þÕ¿þþÁ¿þüáÿþþÁÿþö„Óÿîò„ÓïkòÅÛÿ®òÅÛ÷îîÿ·Çî?ŸÄø²¿¿Åü¢®¯Aüª®«e¯ê¸Zö.ªëaÞ€8A.#!8X„AĈ¨È+!Ž„,$À"A®„„Ñ*!Á(ˆ/â(Á(€€2&d" „´((€Â#á( €dB&=®8¸A™L„ÉŒDâaÈ1D'd1G‚EÖ´ˆñ$HY†/‰ÔAÄ‚èÌrƒ¤!%d$#ˆt!TID¯„K¡d¨štƒ%äÖB¨A!H¡(H,6l4‘¬æH2NÈ“ß (…h@H)È"#†D‚1,€vˆH‰JBˆ¸4‚BC6ˆ(’ 2"‚Œ%Hˆ”T‚ J‰  ’ A‚RŽXŠÈZ.KQ@S(B€V"˜"0‚†H(G(D8HÀ%H‹$ˆ¨„(D‚2€Š‚€B$ȸCƒ!A¤Aˆ6Œ(–D$¨,Ap„„ <ˆN_ç†(Ä!)BU(¢(”HÂ(bŽD£$#1HIÈBˆ"I¡N†„I²D1HÄðDˆHD²Nh„#$#–¨i„L„Ò8„ŒÄ„À&…q(h$‹(?ä7ƒBX¡„+A@ñRL(‚Š‚¨Ä¤(éi‚•ÁHKAÊa$¬…èDäH2B*hK:‘¢ÀŒ*M(H„ƒ²DqAŠ6‡$DZhF-Œ˜!–DdABK–¿H„H‡H‚CAHˆ1‚ÖÊ”JìÂBH@ $(`"B‚…HLŠA€dDI(¤ˆ„`(`"`J ˆ A(@Ä‚„Hà’2ÍÀ$(H:I@È(IyBH$D¤$€Â$€8#0¤‰¨“£A1*’˜!DN!‚˜1L¤€M‘CJ2´L™" $ƒ"‚"AˆjOßIÒ$µ%×´ñBJщñ$®„MŒ"ŠÆ„;A‹„ñ‘$Gàãh4Dƒ8AÂN˜J±IÑRtq†Ž¢¤‚ð‚ÄBŽ$\O(Œ6ÉØ‚$ä$8Y.QFñ¢D„Ȉð†A*XÉ4Ü‚hDÏ,±‚ò˜O„b$F†òHÑ)´R‰‘Bà(H8$`$ÔH”A@{D@Š#1HOÄ*AK($ðB¤€4$‚MH‰ÈDH‹HÈ aIè„IòH„@ÄL* +hÀHA#Hðy½0!+KA%‘m#ñ‚$™!¨!ˆ(ÆÑRaŒ.&%D:QK„!›Â°A‡",aBˆ"ŠAâ´*b„RФ¢‡4<8bB›$bDƒ¢0‚„'*ÑÁˆe`D®.Bˆ>JˆBBÀˆ/Ò;á0Bd™ÄD)H˜‚(€T‘B„E1HFè"¨Bœ(—$œ "ƒ”E˜LCƒ¨ÆA˜D‚AL(áèL$Aˆa#äáFà3<Œ!‡$‚#„I⢠€âH(Ér$"‚fl”0„$€’BшxBB‡"C'ˆF„ "aˆ@"˜"Œ`‚ˆA'J€Hè‚2>CQ± DD(ÔŒX(Ž"G"Ń„TEhD‰â$¨(”N‚2a-e„K„ˆq¢DäÂF¨AI C$èBx¨QADEBERDŒX‚L"AŽ'Œž&&T(‚£4ˆ/$î €"„!, !&’#Á(H„" <ñH‚p!pa‰B’HH ÈHBˆ "HN"( $€.oóc!FAÒHĪ(¨BEb‚A$ ŒD8ˆüA$8 8B„„J B5ÈL‚D‰l„œ ŽD ‚B,!TAFJ(ØŒZ‚(A-(Ð[ D8!$„„*1!@È‚Š4$È”‰(¨VD3H¨…¢¨J)b!I $ÌÄ%ÁA–eJ J†Š1B€&¤& ‚h,$žî“ŠÈ)‰th„‰R’LÁ†ƒX(Ƙ‰¦8Ax¸jÈHE邘Œ$HX"Œ"hˆ !$’‰ ‚ARL1D"ñ@c¨D$‚ ˆ”&)!HA BȂϦ(DB „‘D@ˆ$&‘ˆ‘(hÀ!¨‘Ž‚B$$#‚CÁH AèD’& „‘!M‚ˆ!ˆe؈²F!‚ a)$ ˆBì9ØDÀ(Bˆ! ’"@„Œ‚#¢ >  € þú@ "„ˆH!B€ "&D„@’AÈBDÀŒ=+I„„rJ!‘(¨N"†,„Ê&qH(21ˆh„OýŒ‰)ÔâÇ‚-?¯Á+š„£9Î(„jšµ™Ò„81J»BVB-A/ÁÑ£ÄI‚H†Hæ(a‰,¾ƒŒ!eANA(kõˆ¸Hˆ(.D'ˆ+´„x(ê„ÈHMHQ0T">Hxˆ˜È)bX†šH´(,"thˆNˆ‚',BsÊØ4„¤H$„”"HÍ…¨á(˜(A95€2BN+!(ˆâ‚#HÄB…d$,¦ÄVƒ’A#S…qÂ1¬$Dè(8B˜G‚‡„B[‚ò.Á„@Aq‚¤!‹ ÉD€!Ù(5AF¸L˜™%Å…Mˆ&옂#æ%¶A iH…"))Ú‚áAŒ©AÈßMò?loÃtDÍè…÷$-OõwEþ%æïIú„$OaøácÿHöÜ´Ï}ñ?_Bôd$ÇTÿaø©ÒßÃÿõÏÿñ˜¿!­èïv»ûÔ_ÆòŒ$m¦M¤vö%̯¬øÄ=ÿâò-d_Æòd­_ëý[8Ÿ‹÷¬nïVØ’4ÛžboÖú.íÿCÜåö¬&Ogû6´—ó½vOÖù:U?ÿóm)——Ÿ”úý§oGræä¨ó¾|¯ˆ¸Hè©ÛNßÒ8†=^ÝÏRòLH¯!vK{*ÕÌöNTÿÓñמOLúÅoü‚^ßÉú…­ïìñ|DUÔÕòloŽü›Þÿáû–½Ïµí¡ýŸ‹®oµÿÜsýÝoAó4”Osÿ¶äÕú‹…Ïçó~lßÂò,%Ïnþ^ˆ;>ÿÿòlmIùÚx8áÖö,¬ïÆûG…ßîó4$_Bú&ãêóuwß‘ûÖqýMɽIŸúßG}†ôÄBÃöŒX§o,ü¨ÌKƒ§„ï÷ñDÿÃöI¯´T²ÿÇõgmïWóV>_âñ$6oBÿkÏwñ}^ÿJö}½ïÔòmLßBõm¿¯óþ—÷ÿ—tO¹õR“NIcô(aO~ú„®ÿæy4ô¤¤o{ýÌ-?&ÔMÿç¯ïWòemßBþ%žã/Ÿû*i¿/óÕ‹¯½xJyÏþÍ/Ï~ù–îÿGû66Ojú¨ëïSÿ5~Ï9÷w¿ÑtIÝÝÿI!Ojÿ¦ö/ƒü^>©µŠÔ‚ôÚ†O†(Îï×ö^Ý[´ñYŸåôm_ÏõÖä÷$gCoiò”2¯Øòîÿçý=Ì_ÔrlýmLßÊþß+÷ùvUÏIýÓŸ=ñÚIŸhý'ÉŸüòĶÿÅú$–oIò´¶eýì£?ÄôµöWòd$߯ö%ö_¸ô¨ó¯“úïx?9õˆÙ¯ý‹Lÿøô¬oOiùm¬obû´6O+ûz½owûÿ~uß“òmiÕýmëhOM¼6ÿJï­ôHZ+Ù¯…ùFfÏ•'ÃI¯ÃÒ˜tøiç”–LŽsÛŽ2IøÁ:ÍŸ¬Ñˆùiž%xixû܈ø:Á¯CÓ4š-áëì8÷MŽ2IñÁ2A¬Éˆî1ƈ7Çx2ÄÍ«Cœ|øáãá’ì¸7LŽ2A¬“¬øáž£sa¼(xs¬„gCÈïC‚4šèãÁÈÃ×sþ6I¿÷öQ¿÷ôaÿ÷òq¿÷ó”{¿bó„ó¯bóÕû¿æóÅs¿¦ñá÷÷†~÷mˆ¿~øc÷oôë÷oôéÕ/‘ömõo‘öégO8ÿë.O8ÿŠ$_¼ýÃ,ß<ýCˆ~Gøéw_„øûç…øë·/ü«¯/ý«/þ¯¯oü«?O<ý»>O8ýº6_¼ùûn_8ùën®—ÿÆä{ñMÌ/{ùWˆ/k¿6üúþka¯ï½ö^þoö¡[(A&D@ÄNAÀ„AˆI8O(!!IˆlB!ÈpAìÔHˆA8Iø(O(À((EhB„&$A$qaì4(àB£á8‘(I‚AˆäB<H#¢d#‰$‘BI1ˆ¹$˜$ÁˆI"ØDÆ(B"Š´„t C ˆ‰<‚)±HÁ˜$¦„‹h(€F,¤A@T£)ž‚Ï[(0`„$BDˆ"HHAŠ! áB „@€,„"€B„€D "A ÈBP„93ƒ(((ˆˆ@QßêJq{üA‡B,qAÈsEÈóë/RèB8îîÓöˆ”(MÁ£Ó|{üÁ‡BŽ„ŽsEè8¿ø"U.„#qá.ñá>MahÁA‰Ò<:MÁ·Ç,q(ä(qAè8W„Žóë/RèB8îîÓô¬”(MÁ¯AÂÁ§Ç·BŽFè(W„ŽÑ³Ñ¡sDøaÑ/xsLñ2N"Gò„~¶øD‰/Sb„&ôAºIøanˆo”/”ˆ7Ç./qè¤rÔ(ó„~¶úD‰'SFhB¤›„¦µ(|‘…/”ˆ7‡OøV™)rÖˆò„Þö„/”ú!FhB¬CôÁzɼ’„+A‰xrŒøk4 ˆˆˆ ‚­ãCF`¤„€d!„ƒrAx(R=h°$`,dH0¨,˜%A€’Eˆ°a#tAHAˆD ‚)h@H Ç¿ð$XD*AôIN"#AÒJsŒ!CâC2*dŽ(O(á$sA¸D’E`AŽSƒz$ÑšÍR‹!ZúJˆ+;"X,w¿Žë½üŸñß9:ô+mßúÛïùâò/;ø>/ýÙÛ?9ñã¿4óÿíwþSŠ-†?Nû4s¿IñÔó¿ýû—g÷VA½%_|wŸÿÓÖkõ‡ãï¨øŠZo-ýò&k(_ù=S—µõóEY½ŸµôS?–ók›?1öqª>2+?1ò±ÃŸ1÷o¹_Öÿ)aßRôl8ô¼*÷ŽÒ—µÕúA[¿1õY/ïûEißRôŸgßÎz2ò4´?r³´ÿ?cßœúwß+aßÒöm-~Ôjöò´óÊrùË‹·ô¿Ó·ö}í¿ÿwoò6OKó3{ÏÈþÿ÷¿¿Õö)M_ÒÞÿõgooïÅõúåúZ/%ýFO£5t<ýA¿ÕñE?´u[ñ;{Ÿ²÷!qŸ8yÓô6¤/)É?—ö›A¿õñáíßRö-aŸÆâ–öŸÒhõA·Õ_¼ùÁÛ¿õù:o×òamß3»#âcû¦´O3òw|swkýaBÖtIùI×ÿ¡ü¦rosü;J/عü‹S¿±ÿ·‡¿Ö÷Í[ÿ-ù²¦/JZ4·ÆO¿ñ+Û?wûi_”rmùi«¿¿óCÖ#wHþŽš¯¡ýÒÂ/$û¦?â'CA¯CòA£ñaëA–|8÷L<Ž2IñA:M¬Ãî[‚Æ&xSìƒx2ôEçCüÁç!aÁ:÷L(®2A¤R„¬á‚ñáž6xa¬‚7ÇŒx2ÄA¯CÖüH‘¾â֌㸗<Ž2M4¤óL$Ÿ¬!òaž‡ƒ—Æ‹‚·×OCx6äCô:d<¾æA8É-ί÷{Fïô{F¯ö_"ïô2Ï8Ýkó„S­2_¾ýCºO¾õC>îÿwÄî_ÄøòÏw…oçüA¿oüAŸfýaßdÿ>AßFöŒÓÿFò„Sí$_¾ýW,O¾}wìþ}gì~õeŒ/|WìfûVeêøAâøaÏèúVaÍïô9<ï1ôy¯1ö}>ï1ö9<ïx÷{½ïô<¾¯ô茯1öl®ïQö(,Ï8ÿi,O8ÝXòÄÚŸÄò§Z—†ê{iø¡6Ÿ†ø³´·…ZûAÒû’IÚùaÏ^û–kÒóÄó¯ƒó„v«3_¬û{(O8{ø¤7÷–®7Ÿ†ø:÷·‡>ö+CÏÏÿBç½öüúo¶| ŸˆÒ$qBˆsEèbAÈ'lh…ôA„T(#Ñ(¨£é81HQŠqBÈ2G„.„%ÈÆFˆxDxAÜÔi‘D$ðI2ˆ¯Eâ(!„A(ØÊ‚dJEèJ|hB–/4h!*¦¬ø$މ‚‰Ò$Á(ŠäbAø¡´sá²ähdP‚²H$b(ˆ!S4ªCdap!D<ÓXļHJ™h)™IC²”BˆO!Â#ÈA…DQ),1H@ÔFJ1˜$‡‚ˆ "B‚(H*ˆ4"†!ƒPH#dB ( ."H.ЈÌ:R‚EB(.2 Á„(0H(A‰‚1($B¨xFø!ë3K‰òDC+QÊ„Œ4!ˆ"Fˆ1Â"J&T‚0d x‚‰(i„!`*‚DŠÂ…¤,‰B°’O(a„1(C!/˜$¢HC¢.„LІøvµ$.U¯z"-V4"‹hDiAbÁrD3KI‹§Ë’IØaX&씈È"x"u(!lHŠb…’[%¯ˆ$bF*A ðŒšø:‰B.(Žb~$8‚"ˆÉHK¡@ Y‰:É„B4þHƒ2-ƒ”B%©xHD*É!MHM8Â*d‚d*!A†DŠcÈ*1‰@¡H„X®q‚"B"MD08pCIƒ¸…ºŒ‘"M…bˆàBˆ!x$ 8B(‰JR„=¯€vZ!B‰a$>D4ÊÂ(ˆC(ÂBCÄ•B…¡$ˆqƒ‘̈ !3™¨c¨&2„‡FB¨€Jh‚ÈÆ"B#ˆÊ’!(ˆh@‘D‚Èà‚ Œ¤ˆH‹SJ"bHB†.Ô€¢4P¤CB”(A¥“XIU(Ð8ÈAa‚@„2($&B™›DËJ„ÁRÈm,z,”’Ð$ÁB…Qh(@ŒL¤‹HExp(òm d!… B*Ȇ!€˜¨!YÀ„AF’$EAHAB± DA,C*ˆ 1L*”„!€¢†"Ü3ý0‰ÂH$HB""K!B@È&ŒÂ("…4Š)b‚73D!EÌI’ 4ˆ"Ix¨d¥Š4LS$„!tt!$ø)IhH>¡`ˆ$OAb†M$âAò(’‹H‡!Â/S D"FBB!(AЦ(D(ADÀADH‘Š8 ‚†ÄA0 B`,8“D,A""€‚€D¤!ü1vOÒDAB2DD…˜‚CÂOJoAI€èBrA’Aa‰¡‘(„A"AÒDr¡@¨,( •X"h€„¦ŽÂˆ‚‘""%Z&B$CVH‹D $øˆD*3B„ÄqDZ‚OyjÂ’"LH´$Â/BA( BB#’cˆMCƒ!‚ŠG¢$ÇÄ@(ˆFh1„Ji’ÈŽƒ$¡(P…­DŽ8)±!ˆ‚È4!X0HR,áBØâ6Ú%„@„aBŠabÄ(!"B,D™‰ˆ„a"B¢ àHQ&bp!vhBB&4"ˆ„ƒ‰µ$±(ÈdŒ´R‚ÀDÍ",‘"Eh(¨AD¤g„*Tˆ˜HHÄ!dPBŒ…LhAP„ÄäIqÈ7–‚'´f቉  !¡œ"X!Hð$lH‹*C4)D$A‹$(aI†´&‚4´"OAd(E1$Št$¨!h(!Ž"Nd3/Q(%S,"A,‚ØBøŠ‚D"AŒÑƒñ"$@!ˆ¡IBèH"@©A Œp„‘X"Œ‚M‚!R‰" LE%hBÒ„ Æ"2‚ð¡#EB2!—‚Œ1‚!°”¨‚",c(+"€I!A€„&™ƒa2L˜ˆŠE"",pAP"D„)BH9—´dBLz2QŒ‹&ò¢ÕèC‚ø"ˆ §¡e'‰ø/‚‘ˆ-S/2xèñf*8$„CxèñºŽ-'8+%°D‚ŠòH(Œ¶‚¡Q1È#é‚ôl´a*-G6k%‡lN¡Ïd:H††²„ö¤‚j’HÌKA¯ˆ¶Lñ¸DJøé—$NÅv3J˜!©ÓOÑıŒ&úD!O˜ò¨$K1.((&äár"T?R†aÊò((«A‡RGB:¹2:4"ƒe„ЈR|F‘!朘žˆŽ¶òâ*Ž&*1ˆ„)ñ¨&+!ÂôHeF˜M‚IÑHs²Šô¯DdB29ê,óDÁ+#-¡mBoê“’/Bñ’MÐHØ!‚ø:؉ÜV܈Ô$‘Ã/:¡ƒhƒL$áSq"4!ÏÇs%ým4pdÜB豤LÄŸÒVAƒò”8‡AI«&/ÁãÒ±&aA#AÌD)óO*³Â¢ТX"/?ï3ò{[/¤ô(?'övï«û5µoZû£4G[Õ÷4¬?ªúìnßV(ò´=OÛê×ûm¨ÍG©ñ[/¥ú:;¿¯öec_¿2òµ4Oógû'ó±{ºþ§3Ÿ†ú+Mþ37¶ûù¸ŸûîDó‘{¿²þ«qRæ–ò)hŸÖþêÈö4|ÏNüJÚ‡‰(/ÌÞŠ*É2_ãó7|o%õZ9—±¿ò÷voçûº=ŸËú¶¢oGÓõ{4÷:û¸öÏÇöd!Ÿ’ò–Û;ßóu¯?Öö‡?¡ûB‘Ÿ¶õò2?Ò÷{}¿§êCòô4®w¿§ê6ö¡qÿsû,Öö=eŸòó?)?oûÿ»¯ÏÖرñV?Ï÷4³ãøòEË£ƒ¾´O{ÿûoWý;}ŸÛú;a_Rþ:,ŸÞÿ}>ÏéÿB6ïî÷Úùëölì§ÇðAb?–öbB´Ô3Q1^ugý¦?ûõºž¶®†Îa·Búª•_þzhò))¢ïú‘qÿ÷³_µÙ(õÃá;î"òKå?¿÷é®O)ú&6úò©Ûüiª/Óþ3iß–öa)ß;õ#ñ/»ÿêkïîsÝÙ«ôÛÚ¯…øI¯Êô™«ŸBº"ªúï®ø-Û¿”þë)ßõû;m߆òi¨ßžõZLï$íÌøDäËÄ/(ádòäj¯ú=X\Ú¶ò-g$tJzÙ‹õ}ïñ¤/ŸËû¶¶oIú–ÒÞóªú­ô/×ôM%_‚ò¨!/‚ú=þ«÷{´?…ùÙÓ¿‰ôzºŸ‚þ{s_÷û(oKÓbº¦ëžö‹Q—ûgÏRö)mßVòauÿ³ö¹ÿï™þh¼Ï5øK[¯õX™Ÿ$úØjï{ñ/¸O#ëJú´–Ýö§oŸžúi=ÿ“ö%lLŸÒöÿºÏâ´ÒÝìýVÚ΂-¯ËöÎOŸ3Dqræ”t>ä‘4içQVLºÿ„6eôÁzçbŒÃòÁ>øi(¨¿Çó*†!r|+Ô<ãç‘­aÅöÉsO(3$îÓ„³Á±!ñá'—ƈ7Ç.„·S-ÁïÃòɧéç-éåø‘{ëœO(ôÑ:͈Ÿ­Á„þQˆ—ƈ?Ïô’oKå‚üúTI<šŒ~žØR1h|òVq—Òo1tiýcßÒò6GŸÎò„SÁò¤¯QòÄ¿Æò…“·„zýM(_zsÉø;·¿…èbÿÁŸFÿÁŸfüáÛäoüÉ.O:õÉ"o*õ¨&_¿õÁ(o,uÁøèWׄnW_„úrÕ÷¥¯Nüa¿ÎüCÿÆý’g¿ŽÿMŸÆö†Û¿…ò¤Ò­$_¾ýy,O<ýY(þ×—„OróIè/{ý_(®”kEÎùHÏNørÏèúVHO&B3A0A(Q&tCÈ$à*óAn-AƒX˜EÁ2¼â8¹(ƒ9ƒæbx„œÁA‡J tÒxšø„"—‚„(EhB„ˆ%hH!´ÊA……FÑ(£ù„ƒÂ¡pB„äBNÈÕ3ÍŒH2$…"Á*Ì!IhA!ª²*á‚”†‡AÀ(‚!MÈ‹Xņ*Ñ¡¤-H’”¤ÁgL”šDpˆå"THÎ",¨HG)‰JÆ"a,.Q¤€±$„ H”b‰Xß¶Grs(D(Á8AP$†$©"#‘H„&A"…–“‰ÄH$!ƒéă#È"D0R†´THD˜F(d†"(¡„iZH!c‚d$Ib©#„"äH„1‚G„ƒä„,9LR&$t(#Á„€"ñ„$p38&È"Eh‚AÔ”€ôH£Á$D*'”Ib<ƒ¢$JC¡!#„a„†!â‚ šbHbƒ8"RG…€ñM"(Ä„¯DÛå$Šq!d…$RŒ"T$¡$ÔHá2Ò(& F¨©ä"‡)À(žF8€„4,’"BÇE(ö†`c‚¤K‚!IÂJˆ‡B`‚DCÈ&ÄH‚‰!a(¨õ6ÆãB„öQHœa(F{…‚IÁ$#(ò&‹“r1Ì,Œ²‡ò4H9ᘔ—$žn¢1"&$ò\D&¸EâB8d\Âø6+,I#4’!V(¡‚GC!‡#ÆêÄHì…bÒ"NAŒGxÄhƒÑ(Ab-¤Ÿ¬„$€b&(-A(!DH#A€0D@Á À‚À2pHbHŽÂ!ŠŽ!ˆ`l "AA#  HCD5U„"(Cf„¨R„’„0’”!AI’DD „Bl„ÀH@–8AAH"œ#]F8H,Ñ"‰”„!GB "aBÆ„‚ A‰òßäÐÒõH"DVrh¡^(Iˆ\ª¨cð˜éN†AHäÂò’aœÈ„.Btš‘AxT3Tˆƒ±""ø!¤D¯B¡bL˜XŒ$úˆSâDè„¡8膙D‰b…‚¹2„‹(‹%Á¤”h1˜!G$ÂC8‰±ˆ\BoD1þ”CrZH0(€bCâXƒ‡Hb#ITHCÈa‰H!qHH8q@Á3*Q$ÌÁ"‚…Ad„BŒ4¢‡#äˆÔ“‚†Dh,àAሂt2ˆiH vˆ±$…¨hA#±H&¶7 I2ZB'„°>¦XD ¨(B‰$HˆrH”¡VÒAˆ2Ô$áDÉ´ˆ‘$ˆD‚K"È( ”„‰%ˆFA‚¥„‘hƒ1¡$…"!ˆ‘aK)‡XáBd&˜1$D)Æ„„†òDÁV‰JÔÁ,‚AAÄCBh!‹„„ BÑ$Aa(#A„JAÊ‚ðBQ!€SLÀ‚„, *h…aFŽB€DúE¯$H H†H…„$ ‚B)1BCIèBAˆ$I".$$„&HŒB„ÄŒDÈ„" @ \5›(KA‰O"$x !ÂPDBŠ‚†Ò˜"(@bEô‚""A$2&ˆDbA4!D.D$F(¡„DŽH‚l@xB7Ó$ƒ‘Bˆƒ!$ÁAƒD(A’"H‡BDÕ…BÐ9¤YDA‚‡ˆ­Œ4.A$*AA‚IÁDLÀDC„ @„:L%hbC$K”A˜ÐDtÂf-'BZ’…ÉHÌx’ˆ¥bƒ%„“D/!”@Â(d(ª!e¢,"Ã$C°‘"’H1*ÿ9B#BA†aÁaA€”D‹'!$‚ ‰œ$-""àâ†)‚ÄŒ(‚aBlhA"(CXD…BiTB$%âÄ1÷Œ!h…Xƒ,"!Ø‚8UH&aDP$‚Ð"õ‚!BCQD!aŠÑF‘(K"Sø!"/"´(™)l¡"…Tb¦\ÂF´$ø"¤hB–H(D¢(),ƒÁ†"Â// AA‘"MÄW!‚K$$‡(*Ä!F)cUÈ@HˆcRÒ`A!IQ$A#ÉxÁT…µV,)…2B#HBBR–LÄ($DD((&€ ¨¬<#FP@H†â$B‚b%B§BAGFGHˆ̦1!"—AB›„4ÈÆˆÓƒñ‚Aˆ&™‚€8$ 8AJÂDBφXAŠD$!LDö"œ4-(¢H…‚„A""Š$xˆ‚Æuˆ ¨Nƒ4ˆ,±h$µ DD‚&Á(œ„"(„D8Q$Y"8A¡B1ÄA&¤˜•áB!TXB…˜ÄÃÌ-EŠÑ1ãF¢¡lQD<è$Â16d…B$20F‚­lØ8Õ*Ét)w‹½Ä²øQ‰M*V8L‰²ò("o¤xHë"ñ„,o!äÕ‚èôª‚LKÎ4-Lsôe<¢ÁÁõÖ“þo…ž˜¯1õÛ¸£9û.E¿ƒ¿¸¹‘ó2³?ÿ$WØÿë²/êñ(éÒ¶iò&œ/šþµ^¯&øsž*/©½Yúe,«ªï¢ô¸y«³{;>±/÷8éß;ý]=Ï»ó!èLŸVè{û1ÚÏIï{îÿ(Ù´Búö4Os5¾¼÷7?³÷Ÿ¥ñ[¿Õó1B?ìø†õßù²’/Añ–±¿oý&§2<ýi$ç’_ýxÏ™ÿ'./[œµÿ™Ÿéû~ÿýý¼ÚŸïû––ocò¦µÿÖÿœ¯Ûºöþ>iÂò,)îþoyû{Ïûû›ß÷ÿ>d×(œ¿:ÿ™ÞO+ûº¾ï…ñÈÊ/(ù²»;'ËÙ$ßÕúÝWïQ÷Y¯¡ñY}ïáóOæßÚøýÕßkû–6OcýùOÆúÉùŽiß’ük!O„–èÛõz¸ÿLòCÍO(õE‰?øqñO)·HúÄ[»ޏ”³$ûó(§n?=ÿªáOº%4NaçÁOÔVœ¼÷LOhôÁ»Í˜Ÿ¼Q8ßîWÆ]„?ÇÑ!x6Ô´|ºä˜<žéçA-iÅæ¸wlä(s$ôÁºGBŸ¬ñîza¬‚wÇ‹‚/ÃÁɯCÒ<-áïúŒiéè8·Ná(“”¬³„òÁ,ùá‡A—ÆLxsìkhKLüº$KÁ¯Øˆ~žèá+Ædoõil1uhþq߯ò{Æò†óÇò†òBòÅûŸÇúÆs—†mèf÷mˆ/oé~þ6QßÖþ–CŸÎü“cßÎþaÆö…ÓŸÆò„ÒBòÅÛŸÆòÕÓŸ„òá×ß…òeW„øûÅ·…_^ýcŸÞüYß^üuŸœþ–AŸÔö¦Ó¿Äò„Ò­$¾ýI¬o=õI(î×ׄnW„úòÇ7NürμôhÌ/!öÌèoáôCúpR„&T‚LHÈ„ðAA‚8’O(¡E"¡¨saJ˜ðAô(šðˆ‚Cˆ#é(1@ŠdB„‚!LrAÏA$@DAˆxºè(c(D‚'Â(G.$„¿ KA„†B(A L‹‘"„.M$#D (‰Ø†tH2,˜Fɘ„(K”D/…H4(B.H…ÃD#ƒ*ÌAR$&X¤F„AJ(qÌa”! ‚)8O'›‰pD¤C.:$IV!ÄhªLd¡BCAÒ(CRŒ˜D@„–T,……Ô‚‘%FX!C4 A‰1&ÁÐ(D”"E ÉBHŒ¸D‚˜š$`˜<ÓHQDø$B¶"A+ƒ%¡aƒØ&F’!ЂÔX‚4A‡& ,D$Yƒ"VAnˆ!Q&3”„*ø!‰Ò„б‚B†J–'&ÄAÈŠâ‘(‰Ñ‚¨4H_63*2„xAˆ˜44A²„BBŒR„Ð!“B/„!¹„²”E(˜A(„x$-(Y\‚¡B0Hb#‘ˆ)ˆâÁ´‚˜´ˆ!A‰u"D&=$„\¨$‡!LÖH˜A‰A²Ø˜$!óNx’JDYHq.ˆ/A˜"#ÂN(ŒR&Dœ"'‚1“ØÌ%Fâƒ1)A0$D!)óBHIÃb8"‹!J1H'#ù‚(N¬‹©´(»"8‚,ÆHLI2!.DEÑb¤yD4ˆHƒ¸HbDK *(!d€$Á!‚0ðˆ"@D‘!H„I(!FHäH(abŽ<(A"E!‚tB!#Á1BDAdCq¡"˜D„ˆ(‚(ˆ˜£Á*9ó‚A((E.@UxA@BI‰(+`(a‰p#„FƒBqDˆ¸TD$D=DZ‚²xA8"`„FŲA&(„’ˆÁ†ØD"ÒÖA‡õCÔiÔ(uZ‘D!¸#wØÂA‡h."ˆ$ó¢j3œì‚¶D؈Aye²’C8ŒSRÌñ‚xXƒ*9cB$>4ˆ&¨âŒí†(â™è"Ì’¸M’ðlŽ’"©³”âBì‡J‚T‹†‹AY¸(¦2‚˜(O|<9,E0f!AAHH`!D„B HF(1‚6IÂH&hAÁ&,„Q(Ñ„"„!NEÆ(!à(Ä, HÁ€,h‚ZŒÂ85Ù+€"A „&SÂBˆ@cD$# )‘JÀˆD„‚˜D004‚B „I"F+(…B4’@AŒ‘FMíÃÁ‚V8H¡É S"¤1D#q4¤d¤@!‚¡%I´¸ÁaÁ‰éˆ2oAB$!ƒÔ„”HC’`ƒ’X…ô2D T‚)1¤l@¢f (Yè…8L$B8Y‡BAßšJBÀ!#!$A‚±$d”A$€ ’$FTàRA„DU%Ñ!”±@$ˆAPH`!0)È!ŒG2Q@T‚åÀD­@A0!@#R¤H+AAÁE„,!¨bbPDCCb"DA!Eœ$ÀHÄ%!@“(LHDD¸‚åÄ…›ï@âAR$ÀI‰QHÁ$$/HBR(\""¡A#˜ˆp„K"¤ƒ$R‚Z8(D(„$'HB†¤8¥£(ЈAQ$BD…Ñ"(ü4õ$LQ†ˆQ%P")‘„^"É"2d"FaFT¢…ÄBDŒØ&"QdGA„@B !BE-$È(†8$0"AOaP‹0A0A…R)%dÈ/ˆ†,'"1£"CAAŠLAH„ò„D0„#A¡F$@DØ$T˜!H"L8 C"…8,*#” ˜,‚Œl’t*DDˆHÌ9–$(GH)/T6C ABäâX’BL"0DƒÈ‚Ë–ˆÀÄ!(ŠA$ˆ$":A„(„H!ˆÈAÔ˜@FhÄ#@dˆF)áH HéúŽÌ$(€ÅH#ˆDH²C¨ˆ¢!hLÈ6‚DÎÊA`(ˆ(,H8(ðA„¡(H2I'!(!AÒ!†A„!NN0¢<>~-ALAô‘!=$סñ‚(#ÔdÁ¼!FÒ C ƒòd™hE'„Üt2ú) L~•aK*qÃZ(-$)B8qI8QZv(Œâ‰ÁA‹BA¾8K…²‰Á¤‘(ˆA@%xTÚa0„H™ÓÆÂ&/' iÓVbŒT:y$XÃÏ!¡HL婈܄vŠÊ"‘eÔKòÅ2!GL‡”46%¤†bêA!‘˜IÂÂŽÞDK""ºÒ!±rIh$†"hb¤»•r˜Ä&†ö‚¡&±ô;S‘Bx‰8Ž/hqDzŠø‚ˆ†þHå# mBg%(a‰AB_A‘!((Ž'M¤0†NŠ$1d«’ƒ‘”A)h£;Á3Á“™AlhXÁÕÌrEtQ4&ˆvT‡ËžGÃD*Ø"eBd‡dih‡£r(øB%O$ÂGD…tÜø‚]…ªA*ä!¤ŠßFEÑRuvøn‹½Y½+eg2_†õ-½?5|–v$²¡ûQÉï)ýµYïoû†,ÈýLŸ–ú›;¿8­Ø7§—–‹«X?rbó¡ÏÚý¹é£“!ORûwïOÓõWEñ‚".í¯äDø’’<½ƒõZ\ø‚’+Ø;…_,øˆ²¯ŠýšcKƒ(OùÑÉ/¹üÉî¼?Xó!ÄM„øŸ=Þ/HýÚ„¯\ø‚’/(­¼+ޝÚ;}bwRßÃ×½ñK)½Hõó#UŸüùk¿îx6ô’”OxúíÞ/{ù»žOUÜŸÖÙr-ùÈËß¹×v¥ó:;ߌá¤î8ø6?ñÉ^2ôk®¾´Ozòo÷ïáñ–‘Oeþ.iÏÂR_löÑ/(^á_™û̘¼ö‹ËùÁžOžÿ‰ÈŸÆâIø6„OSø¹¸O]þüOáùimÝlo÷þ?OûÏ?ŸÆýœÉŸ½ùÃLýœhßÅøô¿˻†ñ6¦oKú<¿ïýü'óOC÷w)ßÖö%AORþg£þ³¿Öóïõ©üÛ?œùëø_yþýªŸ¼ºÛd±´zö·»¯<ÿ“ë¿ÿj(ÔÔ„ÔtôŠ¿mùÆšËܞȭøÂ˜Œü‚éÿ9gS\ô8$-A£á”6TVLÎ{ô„[D¬SD¬Y(î3qaÝTxwŒGCÍÉçÃÁ£Ñ~ÕÔV<Žs×fŽ6G"¬s$øÉ:ðá+!ŸÆ‚øs,ˆ/KÒ’|ºÔ–</˜~ø"aï‚øˆsÓæ(s¤òÁºÇ(®‘‰îqxiœ7ç‰ø2„ŽÈ¯KÒ„¼舾èh=olÿ7AÇ÷AÇñaßÇócŸÏó…óó„òCóÅûŸÇúÆs—†îö×–~w߆øòõÿ§øôõo3üýýoüùÜ?þüôo±þø~_¸ýø6Ohý¸6_¼ýù,_<ýÁ(~Møyw_„úóõ¥òóõ/öûýoôÿÝ/öÿýoôyyO8ýy¼o(õ84_¼õy8o.ýyOnyèOwÅùzÖ÷þÔkAÏǽöüÜ+aÏŽþe‚À„8A.Q\!A"ñA‹A‡(€4ˆ³ù„M„8A.À qAít(&A,’„«)O(‚’ 8A®„®”§$ÔA„.¢l’„§!O(M!Š¢8a®!®wcÙÁyƒ !Š!˜¡(dJ,bfƒQÂD+H’8%*t!V8„¾LÁFd‚"Dœ4V‡&( PB('‰O„AäÄ`BÔ¡Ô‚p!ñ*PA$Á<¡€Ò$x"!"N(„ ÁŠ!XK)T(¤"B!à„˜DÛ(„D„B.$DÁHCdÀ(Ð(ŒˆÐBX¤nðT(D $q",‚,/!8³h†Aƒ„E¤(9$ª(%tÑ‚òE‚"ND0¡x…ÄxJ ŠD‚’‰#1IK‚‚DB>„ƒ’L0DOÄ8D,̈#ÁÒ™òC,’˜A*22œ4„)ÄŒ(U(tœH°H¸‚2ˆBŒkÏ}B’…‘HBŠ˜R.I#q$‚ÁqM9@Ô‰`Wm™n$„,¡$Saˆ$„ñD‚.Iˆ¢Ì"!O„1Ê„²44¸¢A.ŠZB‰AxA´$ˆ"ÑA8(K!ƒ)äi1âŒòX„'à„Dì&¡$:G"2"®T5´väiÍa²(xxá“+(„a"’„ˆ‡e–Ä%¤†OˆÃDh„A\a6Š’H‡(¼’Q‚2MQm„‰ñ"ˆ(#B²X¨…-Œ¡Ø„ýD„$–¢‚KƒÈˆƒè-b‰—$d 8ÀAŠBDI„Ò$tHÈ’„,$Ä•È# ˆä "AJ&TB‚Hƒ¤"‚‚#ôh$†(B‚„ˆ£„$ƒÄCAŠR%€Òˆh'#ƒ 4“"ð‚(„IR„ˆDPQ(CÔ4‚ ‚(i8"0((D$(_„ HrAHDD(IyBÄ!L˜ x($èLqCƒ9ÄcÄœ´B‘"AÏ‚ô2LGD¢¡dF3!I¤8HÑϪƒñD!K4–iA¶è„Ù‚á,ÙˆéxH´"8D+R(õ<ÈIÇMIôˆSG”KÁ‰åHä$HòØ!tqúŒLÒv²˜‚*5Ê[!h‰˜ròD¢O$!#óÈ’,q3é$/Æ$LÐ1²Ä¬dlaB""(XG‚D‰Ó& ƒ¡ƒ8aK-HCidB#±ˆaFÂd‚FdÒJäAH¸2„$¸b!ŠÑ$È"ˆB¬ƒ¢ƒ2k¤CN‚Eò÷$Ì”B`¤¸%U‚(A¶‚’FeL‚n„xhÃjˆB3H¤Ì#8‚*Ì2Žg&•A…&Ž4-ÁÐ(L¹dAqˆDBâB1‚C$ÑA i2D(F/]’*RÈ‹),ä«5Ç(A„„ÒB"!ŽAÀ(Á ÒH¬LHÈ£$r‚‚Ibˆ)"‰É'…A¢%ÈÈ20âA惒!‚$@¨BˆŒ4 òŽU"C ("˜AÀ‚€P’IÂ(A,D@èBAEB!hD"%„H,‚€ ˜(BAVº$8(Œ:— Â$@8ˆ@á¨)!‚—$(ƒ‰âˆd#&$¡gA"„!r$"ˆ&2$,2$”„HH„f&*qA($i$CJØ"J"ò¡AA ¢„$AK!@T”A„ @'øA$0Š/J$‚!„A„!‰H#)HŠ3„†Œˆ1#0(„"!ƒ„uHè(4“ D@Hh¨€K!ƒ ‚¤ 3ŒÀ!†(Ød"°"Q$EtiH(†2"`2@BS¨9B§„!$…"Â8…²(a¡IЈ!AÈ"”ˆ(²L$"‰‰ò„DE’H(D0ˆ!G¢hÂ"ABGEr(Ĉ!AE#Hd(‚ "`@¢lRR$+I$B.R€Fb+"„"„€XCׂ„(òXÏa8†(ADX(‚TTˆ$Ø$rQ"ÉXhP„%²Š„0"k#`((E4(0@„0(BL‘Ê€)^(@ !,â)!°ÂB'"Jò÷PHD(„P„,a†d(-Aˆ†ì0ÁJH"X‚„a…¤B©²!B²(ÔB…‚'‚‹+aKTCä"¤3+”°""‚ÂX'=­ˆÒXˆ‹$¡˜ò³Ý˜µH"$“4ID€rADxA-HÀA4ˆŽE(`""O¤HèBDHH˜‚2„à…J(“DK`(p"#Z„¦ÈE1(L™ŒÈ‚‚ƒñ¸CœH aˆ‚$AÄG*ÁED$4I‰2G$„@ô„`@zA"ZˆAÇB0¡0‚†X"-H„$ˆljAˆN‚@ CXàH8«O’wÜ„TNEøQŠÅähˆh#_¤Ø(H”ˆGC¤›$‹ŸÌ²ˆÒb1ˆ‚­c.IëAƒZ(-$ûºòhŠ{"©è¡(T`‚$ÀJHÈBêKGŒÄB"&¢‰ñ,J2-AJAÄ‚,¹hˆÌq舔Rcñ¨£ðmA„u(Tˆ.©ŒÈŽE2Šq"R„Иu(VŠ…z$Xf%tMhb×ä#Ø(X‚ðgŠ÷f$RD#,RdHˆ†š%Fqâ8!8wòOYä¡è¡Bè*ØÂÁ™‡"$+’:øˆ'!Ç8(3Ÿ*ñ‚o!ñÂšð‚‚Œ¸*úª²ƒ‚¨†„„kBGÂA#8A!F²C²E[$°Aø„IœMY%FäK!"&Ö&XAhø4a'B.(ð"(‡‚-’¯‚óK˜:òŠA/„¨=‹/Œ1Bšö.b¾"KB!­">,‰Ô¨HƒÁ‚(‰qA¢‡¦"‹G ‡bß%ñYY¡•çÿyQß=ýUóoj²¶û—¶Õ˜üÓ[Ÿfø¸áOÒ”¨oËû¢ÍÞ½¿ãó<ÝŽˆ¯)ùÙ˜Ÿíùš6ïBú:÷ÏJò42_Cûµ_‚þý__·ý±Ÿ”þaA_Fþ÷]™ûúË_·ö+Ÿòœ?ó1'ß9ò¢šxó²2ƒ_ÔþdH”t7ù£#øIAM¤¿?ÿ1&/có,¦ïâXHÿ%ýÈ(¯cò\ÓËq_õÕÔõ]ñYŸ×õu|_ÝýÛÝ¿ïú$´Ooù´ÕÿüŠ˜¯‘¶†û>iÂò_Inû¼ãÏùöuïÿòŠÛ¿ýº¾_û¶í_Žóñ¬MoÇãiý{dŸXý[u¿û;mßÔöliŸ¾ÿû1Ÿ÷átŸöó—¤ùš™Ÿ·ó¥=¿®rûÿoCóö¸žQ¿GÿXU¿_ûñ¿ÓÒÝt_ø(ùŸ‡û½¸O‹êê÷ÖX^z¯ü¨ºoÊý†I${$¶¶8óUQñQQßGõQÙß]ýÛs¦ª³K›?=uAøSSák›?„òeAÒÿ”º›.O£ÿ{ù+Ó–üÑ’ï;ý’¸?Dø²2?¦ú¶2OKûw¿hüSSŸ]ÿ—ÕôEENÉ?5õ‘?,õÁK?öEɯ-õÑQýIgKÎ_ö5oIù&†¼ôîDôÝ[òAçGöee*úæï_3ò¦¶.ª¶òDH/)ˆÑ‚;q-4µuMÔ”ôIYŸU÷UXŸýUß¿§ò¢2K»ž’/Ü2õYMOzÿQEE_”ö¬Õ?ßþ,5ÿ÷{q?-øÉ˜¿½óû×ÛŸgøÍ¸¯¢š´O;õrèßXõqùß¿ñ7aVôlMß|õ÷¹Ÿ;¼Ñõ[ßüÉÚ/™õÙɹ÷oüÞÝŸÈû’>¢/Yÿwîïÿw‰ßõ})ŸVöm,Ï:öh­¿bû¼,ïKûX‹”#í(üzz?Á oCòAiçC”´Ñ¶ÑÑþŒ„Ž{ÇBšSD¾7Œ¼øõ_!_ÖÖÄø{m‹¢OÃøKáçC”<”>ž–v.üÁsÅä*3„þ×LòÁƒøážƒraÝxsœˆ?Cѱüz,_÷!“18#4€òBa+Aሂ’ÐäÃ䂎QŒbªÉ÷ˆD’!/äÃH¨K€‚’”ãŒêH¦BhbšZ|¸z‚’XD(ƒæL¡ÀAh6´29AGJb2‹M¶z$¤BšŽA/!ÈÈ_‚‡H@ˆ44#(ÀAÄ!XˆˆÄBˆpA*ˆ$‘D Á!FÈBAðA(!ƒ¤@D¨XDHб5¸Að$H@#Š‚„D2B@ Š(„ ãˆäH!!F‚ ˜QÀ(DŒ¨A  D†!‚DˆHð!>Ph§Äq&1Œ×$ÕÁtl/BÔ‡1$Ìñ¤A—‰O’´„’B…dI,xs蚦8BNn‚)ݺè²Cˆˋ.%4!O"õa"ƒAhQ*T„¬LÅb­‰•hhH<$Gª)ØŠeX/„"¤$ˆ„LXˆ0˜ØIq$6ß$‹AAD¦,EjA,$Ä)PAÆDHµˆQB„ch!J"<´EbÈJŽ!BXÀ$I&„BqAX"B,8$†‚èæHRˆ —„D N‚'BBL„—„€<8`”‰ð´”ÀA€Ä!AHpAHxa€‚88A€„’„DðAˆpAH!Dˆ#¡#qHˆ„Œ"ðA(pA€88 ˆ’$IR$ÀwC ÐDò$$A@P”tA@"-‚/)8ÐDò$$A$”Ÿ”tI-‚/)8DM$OB@ùII—„$-‚/)8„(IÿöÀA@ D H‚d„€(h  ,1$ D(@A""@†‚ÁBD"@ y`„,!„a„&"$b„*(aBH‹‚H‰¸I„²„ˆa„ $H(rBR"ˆH*¸IˆDˆ„2„N(BŠa„`„*ˆHLˆ„Š”(H(Š…¢BŠ!$8BDNE£‹$!J‘BÈ"`B‰œ(Ì0DLdˆ¢Z„BŒh„˜B !¨H8E$„D(4$°H$ƒ$"‹ƒ,„(Bˆ€*¥B„*ˆBÊ™D !„d(_9ABH"f€€ôAÀ³ B€B@AP  ˆˆ%€Fc@‚€D„(D@@ÀG3 `B&ˆŽ‚&D`‡¬!(.DA$B‚†ïì  "@!ˆ€@D B!( À›#€@  @Hˆ(€ðŒ"@$„Ô£B (A†’‚Lr$A…hŒà(ˆHˆ ‚@‚¿a €(GF!ˆ-"0a0A @($€H ˆ#Ü ˆÀ$EA€$$ 0Aˆ@ˆ!" (°AD '(!À$M!Hœ$`„,p¼”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBà„ôHH‡„l;ñ5 -C¡$%0à(€&„ÀA€8à(€&pAˆ#Ž(A`B„€DALx÷K$!$`B`(`B`(`BO¨$%%B@DôÙêÀÏÃ$!o#H%$!„@ÜX"%BR"!%@TDA.TÀÏÃS"P"!$%DADǬ$!Mnã%$!@ADA+h$!Mnã%$!DAD{‰$!P"@@DÀm$!!%BB@@DD´»ü<<%%BR"@DtÌ @AÐä6>$%%B@DôÙêÀÏÃ$!o#H%$!„@Ü%BR"@EDTD?"ü<<%%BR"@DtÌ @AÐä6>$%R"%B@PDDEôxèÀÏÃ%$!DAD{‰$!P"@@DÀm!%R"$%@ETDEôÚÜÀÏÃS"P"!$%DADǬ$!MnãCR"P"!$„ADAŸ­ü<P"@„D´‚@AÐä6>!P"@@D´—H%$!„@ÜÿÌü<<%%BR"@DtÌ @AÐä6>$%%B@DôÙêÀÏÃ$!o#H%$!„@Ü%BR"@EDTD?"ü<<%%BR"@DtÌ @AÐä6>$%R"%B@PDDEôxèÀÏÃ%$!DAD{‰$!P"@@DÀm!%BB@AEô{ÞÀÏÃS"P"!$%DADǬ$!MnãCR"P"!$„ADAŸ­ü<P"@„D´‚@AÐä6>!P"@@D´—H%$!„@ÜÿÌü<<%%BR"@DtÌ @AÐä6>$%%B@DôÙêÀÏÃ$!o#H%$!„@Ü%BR"@EDTD?"ü<<%%BR"@DtÌ @AÐä6>$%R"%B@PDDEôxè$!Mnã%$!DAD{‰$!P"@@DÀm$!P"@@DðRÀÏÃS"P"!$%DADǬ$!MnãCR"!%R"$„EDTD‡ü<P"@„D´‚@AÐä6>!P"@@D´—H%$!„@ÜÿÌHNANA@R"-‚2†-„†ô$$"An$¢BƒÂDH…YA—„P±¥"(È¢‚E&fB`BÄL²,âv,)´Ad-A™qÈS(À‚-‚$L8‚%”$""…dJ$”ˆNHNJFÈ‚Ü9v@a-AF€hB!#È"!D"GDp%äF”HHNC…²AD¨Œ$`(d&¢(#HDdB*f‘P”P‰‚‰Ô‚†B"&æhˆ‚A&`„”DB† JøHŠ'(,øj¬B4Ð"¨¨&d*(@$ôaDAT—•™ANˆˆ†ò‰Kˆ,X"‚,hJ'H+((&QKF\ìDÄIH›„'˜ŽKHŠh(#(¨(&†Ž""ED$ôAHH”…H*xˆ2Hà(ÈZÓ‡”AHˆˆŠ˜"A(\DABH£! h"(I€üÏë›Ñ©þ*Hè™ø‡ÎßÙôXˆ×ͯ¡ñ™Ø„ùØ”¸ò»âóýšãCãÆö?_µXó3;ŸBæÂôHˆïéñŠbÚü[;OGñ’?™ýK#_•ó#oxþáobÒGò’¢_Uÿ3s3õƒv?øó)!÷Ò’ø³'*®è/âöz\/©áˆHxDôȉóŠõ4ÏóòIŸ…ÕŒñ(:O¥òäÊïêýÞŒO)ør"ozûÞém4ïãósr¿Ñô,,Ç,ÿ›ÍOiß®ñŠ¿ç…¼ýžŠ¯»ùׄ¾÷"qßïñ–OƒãSóy}ß¡ñ8^r¿Ãö$$σòhþÏ©õ"ußñû4o=ñSYß±ø£¿ÿñëo1õq¾/Aù´:-ß7ÿ3±Ÿ;ö³¥ÿ“ò%)Ý!³¿)’"¯&úê6Ï©±ôLÈNæÊö4‰ O…õß•±Há„ô>vN,ïîøº¾¿î¸„ó&§/ïrÎç×ÿ»ö?ûý^-ÏÖö-ä_Zÿ~§oîójjÏÚõN‹¯¼øËêŸÿã¯ï7ú¶;ÿoó´6o3ój.ÿ÷±XõV]é³ä†Ôˆþ8ú¯&zãûÃC¯™ÿ_š¿=ñËk?™ýK‹?´ø‰ÿlú–oaøÄ>¯­ùzš­Nÿ“û#!ßÒ²)û1¹¿²úê(/ìô¼šo¥ýÈHîlÏJì¤;D\ùu5ßÅõZ…!åE÷6NÏFúÌüωø´¶/Có””ÏêøGvÿ›÷4q×…ŸÆö-MOzþÿœ_^ú}ŸïÿH—¬¿½ñêú/þm¾?fÿ9¾o!û22/só;=ߥõ:~ïÓvh¨dhÂôlº/Nóþ:¿¾ÿÓ¿qÓûêãïòýk§ÿ7ÿ».oHù6¶osû¾/­ë¡þªß“ò--Ÿ’âó3ª¯ªöªJ¯Ìÿ^š§‰ˆôȨÏÖü!(p2ô$AïBÂA£ÑöÜvŒö„wß$ø„6M†_ìs„ôņöá!Æ‚ús¬+¡/Có"é¯CøÉ£ñ‚éãó&iÁŽ{Û&O+“¬S,­Ñäñ鞥taÜHxsü„'ÃÒü2<üéòiÝO87XO(3¬õÙñéž­(—Ɖø{ˆ§ÃȯÃÑŒ|؈þ(:ƒÊuoôm_oôiL/ölvoQöhlO8÷x,_9ÿ($_½ÿi,_´!â*ùWí¿Óõ|Ÿkw¬R•—‚¬o»ó¬3®ò/A´dä¨ñˆš¯¡r.ô‚¼£ËUßñG¥NXñ#6µóiŸ“÷QoAñ6.OóQ\¿ó’#ÎþëA…õ$%OÆ÷RQõ%rñU^Y×1?róV8þ~ßvH¼†{rjNH½!=&/”·9T\òLå?+ÅE]­ûá,ñHI¿ûóÉ?Ÿ¾õ)IŸ„ø2„o¯Cñiøï‘ù¾¾¢+"Ï’ú.%‰ú»:["K¦oíã(шôJʯ¯ñ¤6ïnCñG_ôôv§„7´NJß²öN$×ó??ßçñ4oBòz;_¥óWý¯þ½ÕïÅòaiÏRö?UïÅów?_ôôwÿ•ñS?´ô8u¯µûw¬/+óeŽoK±"òJ+fûbH¿s—ìÿ•òdL_ÿá+¥??ñå_Oúÿ^‰¿=ñÉ[8ýs…?ú“3_ìù6„+¡/¯ñÔ²?Vú>q_Sù$UÙú7„¯ÑøÖÏ,÷Œ²o…üÚX¯¬·®ù„#ßãqDÿU_ÿtKûA^nïÒµwó^\ïáñ46oC’?sñt_ûC¿j÷|)Ô”M›r×óWG÷_äõQ¿…aµ?„÷=R¿×úVȯky4¶&’"7"¦ô*Aßr÷[,NlORô)e¤/-ãþñÍÖüÛÎ<¿;üw¥ÿEþ—O*ù„oSú—?ú/ø+ó<-•]WMŒ¿iõŒ~î½Røš¨ñŠºøup2ôAïCÂA£ÁaïQâQÖLâx÷M(Ž2IòÁ:]$ì1!î9"WÆ*xsü$„'C.Á¯CÂÁ£Ááë!maÉâ8÷M(Ž6IòÁ:IòÁ*ñáž#sa¼!xs¬‚'S.ɯÓÒ|ؾÂiÙâ¸7LŽ2A¬üÁny2xaŒø{,Œø:LȯC”Ä«AèãÁmcÒòüAïöõA¯æôqïäöe¯dö…w¯eò„{¯aòÅz¿åòÅ~·§î}{ùá^ß–øwÞ·—?öý;A¯öýA¯–ýaÏ”ÿc¼÷ó¯­ó„þ¯!òÅz¿´òÄz·öî^÷Öþ^߯øòׇøò×/üþß/‘üúÛ/þÞþþß~_8ÿß>O*ýž6_¬ýß/_.}Ëÿ¡¶wÔkñM?kù_­/kÿä¯ë½üºÜ+áÏÉûÁßã…DˆR„&DDÄ(QHˆ8Ž…”…DˆSÄ&Dˆa qAÌAˆ£á(ˆA„AˆSÄ.„â(ˆ#á(±(‚Qˆ€S„.4!ì=¼$0AD(·4)…""&‚ÑAÑ8Fˆ!#´R(!)8‰0c0)ˆSf)¢C!Šh„(F‘*'‘K,Œ!3h08‰¡$(ˆ$L CBiBèDb*Ò¤Ò'¨ðwÁàH€AHªA@!dè$$AR(‚$AÈ‚DI @B4¥ÈÄ%H,!Bˆ%IÁ$…¨ALá(2-ˆRƒÃ2p˜)tÂD(ä-*ˆ$ ”dJ‚ÂH)‚b€3‚P! „hH)!‘Aˆ€ÁL€²!"B"H&hF`‚P(:È$H#.J¿1!AƒqH“e(‘B(†”Ä")AÌ’0!©„Š"£!!„#(!…¢$¬ŒD‚ŠÂ(A)„&1dR")”ˆJÑ‚$!fAcç!It›boÃCŒVBâ"'!À!Fˆ±Br¢1"H)Š‚á‚%H#¸ƒ4("„#22…"Ñ„”hÀ8 L†q"$Æ$ƒ2a¢Œ‚´„”Ȥ2kdÖƒ¡$€È¤ ……„,D(`*BJ ‚(!& ‚T‚ˆP$"!Ä“@vCpA„”ˆ/„œDDˆ‚rDpBè)qA‚DÄÁŒØDšˆb„0‚ `$Fˆ"(@È„! HDÇB#ft(A64$’9H,’8Cqˆ(¢(ƒ“”¢¤„„±ƒa‚E¡"C:‚©¢$(x( „£"0!#ÈH8F‘2ŒÎ¸$¤„%txHG†F¸¢øHC!O‚;,!‡;!)Ôba" Á0(`„"ƒQH!B„ŒA E”".ˆ" ˜*$’H1‰Âb%A!jÑ(‚‘$(¡MhIaDhd¦Œ$r$AH¢!ðÎD%HJ1(Hˆ!‚t„ÈÁ„BH.A¢ÈЄh1J©RÀ Šˆ´$Ø4T(( ÈÁ"2° $Šd‹ (D‚Œ°ˆ$q‚ Db‚Ž×“Ã$$B$@XA)D!,Ô,5a@ădˆ¤‰D!’JQDM‚@ECFHD „P’Ae†¢‚Hk‰˜("Ô'‚Š@– B"AHBàA@@4"ƒY†H$"¢@AH$"Ø"€Š) AˆA€LÂ?ó c`!@,A%ÄCÀR]$@ˆAA‰x˜‘ŠÔÔD¤(!PA@LA!˜™$A !#¨A‡‰¡D&`!@ŠBÀ$oÜ*$H"DÓ##*H¨!`"¨%Œ’"(¡,„D""r(ˆ8"0"A"‘(F¤$BJ(L’$ƒÄˆHH"&q,È2a(A††„@ˆR‚,(3DHB 4"\?*4" BMH„G(”ˆC"ˆ@èbLÔÈBMHÁA¢ˆ˜@X„"%+BC²!TH‚‚À$Ž(‚Rˆ+b!¦ $äÎD&"BBHBÒ(c‘$($$$B„ DH¡B ÁI(ˆ!"B„d„"°R‰(‘„# X$†$hD êÁ>n-(!EPB(PƒCˆ‚‚„,‚QAf¦"4%t‚„ƒˆ,($@Š  4T"€Ø¸BÑH,4ä B (Aˆ*Ò(òÞ0$„B$„hD&ÄA'HhAÀÁЄ±ÅÁ±#È„°"#q"ŽD)TH$D‰Ä$$ŽDŒaL$Ž$`"Kp&2AAHi(Á(*"‚Á(À@ˆÂWÓDHˆ‚RB†@$(Dˆ "‚ ä$HB€ÈˆHÈ á(‚d$@D€ˆˆOO@‚‚ˆ‚@¡ˆ‚ŠJ‚B@$"€@  ˆ@ ˆ<8ŸL¡‰r*¡1AEˆßÇ(AO„s„’!cˆ+‡-DD…”Š/ä,Ò$Ó(Á"YN®(€Œ(“B‘£’BH¯AÒCÂr,`„FˆâH¡‚&„¸2Â$£’(€ª‚‡$/^DrAb"E"d%Ff$/D"‚+‚/ä´‚¦!MAhMaÐä¨(8€è„ØBèH(„(2ˆ"¢ H‰²ŽbhBŠ6ŒèLaˆŠAœ'…(‚–I¨áë!"b‚ ²„"8ÄÆfˆ€Ä"Žæ£‚ÂAC‚¡(Ñ$ø„KŠ¡¶dÈäÂLxHÁA+K®AƒQh1Fá”D,A’Fò%„G¤FxdX„AE´"46H­hAhXðˆŽdà¤BLNXH0#1/Aˆ™(K1®íð1\OgóV/“ñYŸµóZ4‘±Žÿ¡ÝÏ+s„’"îO_£ö•ÒoŸñ«8D>DG–Ÿ!ÑË·£öL£ÿθ²»‹ôJ£?nø¤ÿˆßÁýœO⸂òEÏŸ)õ,G/–ù±+HßSôa‰_{ó‚T¿Jüh#ïı²²üH3Æq²ñŸäËObq9ú–„„Ü|µö–h?«q(õ(Ë¢¾&/Iò¬Ob³"±ÊõÒØ-"'Cï=4w-t¿qó45Ç…/õCñtÿü’ÇŸ­ª‚_Œù•Ÿ%>9OøÆÖ/AV‰Ofõ2l¿Iý¹K«_ŒøÃÒŸ!qºöïˆ[m¿qöY*®„OLû5Ïm>-â_Ýg…u%ùA߉öQÏ#ù±$GŒ/Õ*y©uäøÓeëaŸç»$hHg1eÝ-èˆö–½¯Bò)$¥ø$²/I²2ÇšJ¶ÌÑ*õTНjóŒRtKsjõ~]á÷]£´RÕ3äçñ݇O©{ïü2–O)ùÖ2oVø{gæÓü~)ßFÖAü¡}Ï7úz?ßý¾óߤøØ›?=ý8é¿íú\‡Ï+óO¬oiã!ùö7¯”ú×þOyö-ÏïÇòai]å‚ýu«?ïó×\¯)ÿLš¿Œ±Óô»òßäûIškòÓˆocÉ’G}¯øTžl×Úy>ÑÈâBú,„M’oh·úòþîO$}ˆòÚR¯ì´=h¯/ÔóT1tHúJ¯ÕÔc÷ø»_.ÿ¾¸oaâjú¤£OúÖ~nŸÊ}ùdElŸêþÝOÞûÖ­¯þŠÓŸùÒ‹¯Ôåxÿk»O¦ý·¸oaò$&Ojù45o½þˆø¿tcüdImß"ôxŸžñÖ-ëü­Ò$œ4œ6>¶,á8÷m,³$ùÁ:ÃòÁ‰øa£qaœˆ7ǃy²äü:$O<áãñaÉá8÷L޲IùÁºIùÁLñá'AÆLxsü„'SÁ¯CòÁ§áçOÖá8÷MO(“¬“¬ñáž3qaŒxs¬'CZü:$KÅ£¡äãÁBÛr÷a¿öõA¿öõaÿæ÷aïæ÷…sïæû„sïbóÅûÿæòÕ{÷æÿoüá߯øóï÷Ç?ÿþ>E¿÷þA¿×üaß×þžaßÿ÷Œóÿ®ó„óï"ûÅû¿¦ûÅÿ¿¦éþwkèþ÷iˆ/ïþ{ˆ/ïþ:ÁïïþÁ¯ïüáï¯þᯯ÷Œ÷¯®ó„Ó¯(óÅÞ¿¬óÄÞ¿ìáêyOìjñEŒ¯kúWŒ/küįï¾üêÌ«áÏ̺^ü7B@Ä((EhB ¢„Ž4(°¨‰‚¸â(™(‚(À(¨EèBX‚"„"„†ÈA‹‚°(‰‚¸â8‘(ЈŒ‚R„&D(B(BxaÈAƒ‚8:Žb „2T.$#Ág”–E8„$#òH0,Q!ƒa(A…”©˜Ä‚Œ1AŒu¢Dh"Š&d!"ÃaB!›A"‰†Ñ’#Ü„aŽB-&D(d¡"$0!ƒ²dB(™‘!)‘bƒ2!UñˆèA$À*ÀAD`!QÀ‚$TD†BÁD‚€Dq„¢b@’„#B2$A"F’A( ä"BáHF$‚0"$$à*„’$•+&…Db„%„;é$BŒ!„ABh!C2 H()”DÈA!)ˆ‘FAH"`#€B²h”˜œ R%¨´Œ£ÈB(ˆŒƒ¤("!ˆƒÖH$ˆ˜$Hƒ(aB‰"Âï¡+I!R°*1A"Ab…'˜DŒ$¤HIšÈCƒ9$!/t$h!FÈM"àƒ‘”P(1`„¢K86BŒ!J$!Â4ŽDƒ$sH"±Hñ…ýÓƒ2J#ÄB$ƒ!‘¥t$†‘$D,¸*´-”Bƒæ$”A2!”A‚A„*‰‘ÀB>ß&±IøD)f±Hô2Xƒ¸¡$%â„X#"ƒŽÙA2Hˆ*Ád«Œ$º„Bò$´„´„e‚GAƒAÈJ²ÆôKè)ƒ… !A"DA€˜„#%¨"!Hà"B„! Tˆ‚€ ((H†HA@Á( Àc à„R@øÂ@f„E‚R(ˆ$Bˆ3‚"€R†à”Œ„b¥…ƒSˆ#1$F,ƒP¡`ˆ„E Ä”! dBÀ$‚ Ÿºt&ÛÁÅdô,Èz"‚è1ÖAãD)cÄDË$A‹K3äÁ|Qx¢™Q1&)Ę+‚+¢#$2CLTR$DlHªäA$ŠÄHŠaFª¨C0(ÊHÈ#ÖHºB3b*"œ2+ØXKXNH‚n–³ "‘‘Á+H6 a,Â2D‚,C‰Ô”B„´ƒ$2œ‘B@FÈ"A¨%F‰´ADhAJ„`B($¨PD8$j´!4$$6„¤ (Ï~2y¡ a™„²Œ°$2’„F¥Z@ÄLB ’N„H6‚‘´N‚1IˆÀ‚"¤f4F$à+¨i, ‰”‹A8ŽH!‚‚ H£d‰."HB¨ Bài$$¡ÈИ‹2%HH(aA)$"CNÆ$4„$$ ¢!I$RqD(HB(!!€„ØB"‚8"@"!A„ÄBÀHÐ"D8%x}F@A„Àˆd \¤"@Fa¨(€¨€J°(‚(´HH@ˆ±"  @$!À‘Ó #AT(hˆx‚ˆ‚ 2ECÖ$X$@Ä„1%bˆ¢("†‚Ò"hbA1H"b&4FÊA€&ˆ‘"ŠIÄD@(EB%bA]h`BAÀ@a`e&(2HJÈŒ„AˆA‚AˆˆA ±x1"1ˆ8ŒŒ©à!hFÁH!€<DACB\„AÀ‚†R0ÄDÀ„Œ ˜$ŽTA‘M$dL$ˆ`$nA02!.#HÁ!(E(D‡lp˜„ˆH¿š D„ !²¢‚!ƒH„H$@%2 ÁC‚Fà‚‘†H:„€4 C!‚" ÈD‡Hà"E-q“Q"%‘A@ÂA$@ˆT"Ea†"GFB!QH`,B„"RFA8!„H€"x‚$À*B((ŒôW(F@$H1‚Š"¸ˆ„©,NAˆa¨B#+ƒ¢†!…Q-B!(Ž#‰T!8$,J!‚¸(!؃ÂJJ+,]³HH°„‚BD $‚ÀDHÀDˆL $"1‰ˆ(ˆƒFh$„@N¨HH!(Èð\Ñ$IB¢F"Dl(D@!€@J" à‚BBˆb C"‘dHAD , Àk3LT*„ôÌÒTqÖ4@qA6„$EJ!&dB'„-„…a!HApÃFM#dð($QÁB8!VxCx!h„'„'/ˆ˜B²j1<1$4„8B„ƒ$4ça*„Ø$øñÚ$,Bj„$&tD$(&!!+€„¢H‰!‡HTa¤OdAŽgBCR”B0&¤B‰ÊB(„डЏA!8Ab$ƒò"AaHAG(CX4¦ JÑ(Pˆd3ºXH-A‚”"Lr„ÂF…Œètø$Æ1¤Eq&aHL”„H%Ð 8‚›(LÃ$`ÈF"²AB;ƒ:¨Bt¨úˆa‚«ƒøˆ"lQ((„BŒòA‚„‘B/¨AŒŒˆŒÞ"%²ULòR§ׯ1á1ôR)Ÿ‡ñ8Ÿ#ô"ÁgH_Añ–?ŒôŠAŸtäö¥'OHôEK†w{O)ÜíüROTqšÚ£ôR3/ö±¸ò…v¯Ø}’ä‚ÓdóGÝÈô1Tþ¯#Ó‰¼äø»²Ÿ¨Ý¡¼rb¨ù…Ê/êø(:¨ß“=žK2,óBY?ƒ–qn7Ï#²-Õ‰öi¥o«ñŒv®Â#õD<¨ñšÒ/¤ò~6®íÃqGƒ?òsT²A•½/‡¦Ÿü­ÊDqôFOøHÌ=‰¿âøLÏ}dGÒ×ÂÞÝgíÈt…\öÏ5»Âü…Š'²oétÝ„¾M26/hù„¥ÏÄw7ø.“«\a‚‡‹Ü-rŠt±ù2+=£ì‰ø²‹?é,ÕöI$/KøBòih?ò*7&·ô-!ÏÓòañ¿¸õ!dK/éñÜ„ç!øª:oOòöä?åóAJÝf?…q[úHs_¡÷_¼ûœwk_åù–”gH/5ñL‹oÌÖßþ¨Èw×nhÝIïÊüG™g|Ÿüüúo´ùʃ¿¼ü5ôo´û~/{óE¾k¹+‹oãuûÛñ½z‚}zñiah?’õz¯?òÈÛ¡öÖ‰¯=øÉÛ«þÒ©¯ø»2ß$û’4#ózN¿õH]ì'WÏÔÜ×ý[¡gïÏlõ˜êï„ùÚ/®ôœØïôÙsó\#öõI/4qHúQGímçÔo_ý††MoI˜7áßlÜÞö§Â‡VÛfmB|ÌõÛ—ÏuùÜ^¹ôÓ™5ñÚ\ßùöÓ$ûßjÛd“"/Kù¦«Ï$÷›h³t{±hÖ‰ö¡ÈŸøú³5ûIz?™ôÓ=ùÈÚ?™þS©«×/jË2iò2/²ñhR½H±tUõhdÝIÝHÏÄøö2íñÌÚ¯ýÊÖòÊØ¡Ü; gSô:%A£ÁaçQMeÇXOx7ÍŽ2CøÁ:EôÅî9ƈ?ǘ/CÈůCÊÁ«¾ÈeÃè8wÍø„6CøÁ:CøÁ‚î1ƈ?Ljø2„ü:¤MÁ«ŽáëŽaÁžsÓô”2A­ôÑðñž#sä¿Ç‘ˆ/Ãшü:4I<èç¬;†-öï“ôjfï‘ôjV¿‘ö~voöê~O8õÚ6O8õš6_¬õS/Ϭ}cúèþw†î÷e‰¯çÿWˆ¯÷ýÉ¿WýÉ¿WýéßWÿíŸ÷Œ{¿oó„s¯kóÅ{?¯óÍ?¯ñé7‡Ÿþ÷aˆ¿÷ÿsˆ¿÷ÿ:É¿wÿI¿ýiÿ?ÿi¿?÷Œû¿/ó„ó¯#óÅ{?§óÍ{?åñéwÅŸnõMŒ/oÿ_/o¿üþÞ+á¯Î½þìüo‘|"€äBAÈDÄA‰Lˆ8Ž€€“$.!L!ÄA 8Ž€€“$®  qAè( #á(ˆAˆAŒdB%ÈCrA0BàF&CÂC‚ŽC"&FRÁN‚ˆBF2^"¢!A!ŒdH6F¡B*²h¡$¹â„‘/„R!2ˆ“Â!)LÄh‘2Ž !#„â¤ñøb°éDB,I5A*`FŽ‚ôa"aBBE+HJÀÂf‚áAB"¤!ƒˆ¦ ‚$f"JâˆR+(‹Á'†()Š¡$ŠˆDD©BR&ä( ,1Bp&Ù‘3ådf”JÐÅ8!CI„’†‚Y(D@$a€+!DŒ2‡AB*ر"hƒ8ˆ(‡AŽB…„Ad*$È@@âÁòX„ ‰‚ñâ(!ÂI#‘,A6p!b"^$’!H¤°H1Aˆ"L“Aˆ Aò(BAÈ$J‚!£BJB$ ‚-b@(Tƒa$b0B‡„à¡Æ^óBòaD=HŒQ!•’!D2„D&Â"E‡bB1ÀaDDh¨,A‚a‚/1QA ĦN¡fãˆ"ĉB‰#¸Ä¤!KŒ’JP!.B6tB¸H˜ ”8f¸KL!H'„hD".!`¢HŠC!€a„a® "CA‡‚Ä$PH”!˜€B"`"C!‚$…”D‡ R$„#ó  $(iF„ò2(rA„B% $A(AðA(1„$¤04(Œ„ƒb$IBH €"yAXb ¨„)L™"@B¤D($ˆŠïÒNq]$©Å„h¤ˆL…(²AÑ$•!‹"p!´¤1Bð)v‰UIÂXƒ‰˜iB‘NˆÖ%1A"KH,(Ä©YZ¤€áBb!x$¸DÒˆÄEKB+‚J82ŽBF¨!EÈ(SÎ%!TBƒ;9A’$ÀBD()1$€2AE¢$¯A‚DvJ1H*”1ªAƒ$ÃL$Œ$A²Ä‚"Xa) 6L¬d`BŒ(Ä"ˆƒŒa¤ð/šÀŒ4!B(”B$ ŠA0‡@(‚„AÌa˜@H’D@!T’±(4FHc˜ˆ)Ar8‚$D &Bl„(M!H@2’HIE.„&SG Aˆ)s$$AÁt*d$P€lA`“ŒDˆDèD"Áh„"„¨FƱ(Á! (@aʇ(8(H"”¢G(*@ˆï!1!@P€A„†!Bˆ0‰•ˆ(†‚@!€„!„ü @&Ä&†AD,U(|(ÃCA0Œ"ƒ QD„Œ$Id‘2H"‹(„—(¤Ð(‘¨ˆ"„Á‰!8B*aH"MH!€òTS€ˆˆ€H A!H"‚‚ˆ!˜!ˆ!ˆ%ˆ¸"ƒ() !H†Hˆ‚ "‡.(#"ˆÀ©S "D‚%¢)!&""L$%ÁD4”†A$!†$*qˆRJ*,C‚ÂS‹‚!(†´„’0ˆˆB *"ƒâI4‚€´ìCAAÄÁ…BDáC²ƒT%!1¦  ˜ ÔHHAÂ((*D(!ˆH(>¡/(†¡¨À¨V„(¬ˆ‚à„8Ô@ !AAš’Š[ˆ‚ƒD,„(A$‘˜‰ÉHñˆ@ø‚0‰ (”‰„ÀˆÀ*I „(¨!óB&DºH((€ðå7@ª$€’") HPŠAÔ!C †p!Ä„ˆ¤H(A€Q³Ì8ˆH8‚ bH€X@ш$$ @à’J¸Î¸ÒüˆŠÃ²Fò¯—/´óZK›qÝQ™ñ)ÓÑ»=1¬ŸÏò”¢o#øv‚/ÿóMé¿Yö1Ç¿×òEimâým±Î=ÎÝÛø?´éœñÈý߈ÿL¹ïÕñ¿ÿL±’øïÍñÊ¿Œý;èýýï•òiLøŸ‚öú›¯òq[›hÿµáøYYôq•O?û–²ÎikOC£½/ùõÑŸ‹ÿ•ôoòdDŸ’ög4ór¯Fý¾èO­øÊ’+MkQOF?ƒœëòy”á„qø5âù·‹oÊó†²oJñ¤ÏúºF÷œþLwfühdÍlÈö~‹_WúÞ/‡üï•xØùYÈŸ‘þ]›¯ý™O(È‚Ž“‡¹½ü9ÞߢöY-”ö-hŸ˜ôi«/¼èúJÈC¯”蜱Xö)YÏÿúÈþKø¶’k2µO;ùþÜÃõ½ñÕòHe_Òô-èN&OE3~ïíý‚Ú‹Œ+/dö"W¯˜ 'C­A¯CÒ46aËŽsß$á(ó„¬Ó¤ñÁ‚î9ÆøsŒ)ø2ŒÁ¯CÚ¼è¾èì87MŽ2GH_¬sŒòÁ‡(îyta܈xsÜ‚x:ôÁ¯CÒ4~øaÉñ„s[O(ôÅ2EøÅDŸîYBÆ„·ÇLx2„ü:$I<>OQ2Î=}¯ôyu¯ôy¯‘ö=5ïö½¥Ï¸÷­¤O8÷¬¤_¼÷e¬_’/"óC[ü8Ù[¦‹9œÜTôi¨²-A‘uáòû˜!AŸ­òõ˜O#ù2QRôŒ¦>’!ÕõšñÏR¼ûš:ÅMIßúºÏ±Õ¨ôä6ÏMÈHŒòü˜â5¾Ürdôut}±FùQ|ÛYñËê*ø¶‚k‘þìÊÿ›üüØ_ù,eBŽÃÅÿËi¦ø44ÝÒŸòŒXÅó9Èß„üGóǯ*á!ø¢?Ÿ´(áCøÉQiÌ26¼ýá¯w²ª2…øÃYï(Á6çùQɯ2üí*Lñu¨/"ûõi©ñ2œ?õiM$·Òýö‚('CË”‹}ωñ,ÏÆÙKòt_DñGNaÃøÈs׈Ž2CøÁ:CøÁ‚îraŒøsŒˆ/CÈÁ¯CÒ¼è>6ŒŽsÓä(“$¬“4¬î9ƈ?Ljø2„ȯCšÄ«èë\9*Ìÿ?Aã÷_AÃõ[aÏÃ÷_aÏË÷sÏÃó„ûÏCóź_Çó†òß×áj}íjómÍ/Cÿ>õï[üyýïüy¯þm­o‘ÿí'O9÷ë"O8÷º"_½÷ë(_½wéüñׯþ÷mˆ?÷þ{˜?öþ:Ñ¿öþšÑÿöüáÿöÿžáÿþ÷ŒSÿíû¤SïiúÅ[ÿíúÅ[ÿîøáw÷Ço÷mŒ/gÿŒ/gÿ>ÄÇ¿ü|Ü«áÏÇÿáOæÓ—!0yB(ñ.˜4A(µ`JFôÉBˆˆ1J"€!b#ô‘”X!CÄA°´øH¤J„!"‘6„‚X"2ƒ¤F ’%%B/Jñê ,A€!@‚ƒ`(HA(„,„$‘&!@‰4%ˆHÄ„€LA‘AH(M‚F@2@Øa9ˆ(„€(tAÈ0$€‘ÁˆPˆ‰ AôAˆˆC¬0"(A€$‰*xAHA@˜!@+!D„OG£2ƒ¡B1‚()¨LF"CjBQФ‚A‰à(ñ(š‚0ÀNBtHñÁ’(…ÆJ¯H˜ÊQ8"8¨¢A‰á FáB(‰BÄJ ˆ«!lô¤2áôÛüí¬/KúSÈ_ØüšÄ/mù³é‡Ë¢gQŸšú›ºKèÏLüò~Ï$åŒø„È/¯ÿÄÞ/}7ã];Ï3ôO=H?µó.c¿çûgzîô?ïèHû¦ÒÉûóÌ?Ù÷n³^÷?l’ò¥­Ÿþ¯÷Ÿ‹ú·¯ùÏÚ‰ù³«õO~?¢ý•|w§Ló¦=~ãö5=ï6ùœå¿Çò%IÍÏX÷+ž­÷w«ÏÓ¯ñAH?µÕ>öšÉüÒ¶î;6oAôSÞèùéï?Ù\~{Ü•r-ùž¤?ÙøþúO®å¤÷VÈ/©é,ýÌúo>)=ú_äôq?­A·¥Z?×ò(qßÏ÷aûë¯O)ù¶¶+˜O*ú•›ÏVö¸ãÿÇòehVöíú/Îûäú?Ïþõé9ýËÊ?üñ«¯Qõm;¯Tñl&+™OC«˜O'òóù6÷ŽÁ߯ò!mÇÏüí>7Ä_Ãö1m5õKX¥uSù(q×Å?Ùüú–O*stôÒÖ_¸õþ¡Ï8õ,ü$!ߘø¥„¯éÿlrÏdµZôÚ’RNÚ¯ö&p2ÄE§CMA£ÁaãÓV,O8wmú„2M‚_¬s¤òÁN†îqRta̤?ÇÈ„'K-å§KMÁ£Ù>>maÍBO8wmø„2A_¬s$òÅ"î9ƈ7Ç)x2ô"Á¯CÔ¸Ô>-aÁŽsß„â(3„¬ôÁ"î92ƈ7ÇŒx2´hü:¤É<‰>Ì=ó=o¯õ+/¯ukýqß–òQŸ–ûÌÓŸƒóÄÓ‹3_¼ùy8_üùYþ{Yøá>„üò´?¥ôøõ¯ô¹ý¯1ô¹Ý¯ö½ùïô9yÏ8ý98o<½8óÇ›Ÿ‡ó…ÛŸÅñ£ß×Åú÷MŒ?Ûý_,ÛùEŸÛùAŸÓøaÝ­ïôM?Ï8ý_>O<ý6_¼õ_>_¸ý_ú}_ü¡_Äú²–Åò²–oAôz–kA¯o¹öÞ¶oƒôšéHB(CdBB" ‚B„ÈAƒŠ(ˆ+!Ž’(ŠŠäJˆ€(ôAˆ´H*ˆ„Š<ŽR H ŠdBR B„ˆH€<Ž B(A&$Ä©“—‹HLtÚA8Œ1†0NˆAHAT@øB`D#1ZȤ°5Ä“(€Ö!\!E MˆFaRš$’Ä…!,1¢‡A¡LðE,pC86B"ƒ4$¡0&$h!(õ+4€X+FR4IÁ’AЂGBLQA”D3¡$EªAN‚C&x)D#qrˆU¨‘R$‚!Á‘ˆ*‘„ )Âߥ A$B‰"@)€qH"@(ˆA)!B!/¨€‚!‚@Iƒ„Ðä1Ò!PE ‰HH`D BpA "Ž!0¸("ÁˆK'`#Š„H‚pÄ$„€8$!ˆð<² ‹BFÈ!%dL´Ä„$°R‚x26HO¨˜k ˆ-B”DÀFT$#‘bAˆ,„Ë""bâB‰)‘")A!2A¬ÄHH˜SÆ6FØ1SŒ$@R‚$‚E @•’H‡AFˆR˜‡B…ʈ…¥Ô@‚DHBˆT@…ÂBTF©á¢„„a(A$AA£1”p„¡$âvb„$À  a¨J" A"G!  A%¡„+T¡àB‘‘Ä$ (Q%²‚t2EA‡aAC9FF-(ÔÖ9!t'‚B1†‘—4"C(r$±(Ø‚ˆL™#! ’"C…2„ÄD1A„KF!#0¨‰ˆ(1@”QDˆ±„B$ÁDI‚ „ôjˆA@B!T!D'D tDB:¥‚hJÔ!2’‚pÂ1„‚F¡APdHªè‚AÁˆGˆ@ˆ!…Hˆ„•€€3Õ€¤D€DˆAN(B ¨DBˆ B€¢„ˆ!‚ ¢Ï™ HBH€Š$ÀˆŽ!À$D (.‚ˆ (€ ‚(€ƒ"I B1Äã”"ä©Ô8–A/T(S$E"Ò!\$,Ì!¹DTA¹QLË…‘­Ïñ(“$ˆMÂIte|ø$‚VAN¨‚7‰"L(9‚…%¨ŽÈ°¡Ô¢K˜S„@Ä(O(2BCÑ)d%F"Ò(ôZÂ0F-C/B4CcB2dȈA”B`HI´$”Aƒ¢JK$CQ!`($$ˆ„ ‘"‚#' DÀ",q!˜1Á(Eh!R($`B…äB9D\„-„„CñÙ“•'„P‚qÂ(T¥jS„p„¢±,ó˜A›‹ˆB…‚ÔHX¨M¡C˜]¦AÈX,1MÜHWˆe8!XÉ8^)¸šÏjè,ÙAÄ%ÄÚAAWÈCX…4BN$‚&(ôU÷ð3ro´ö{§¿%õBC/U÷ná¹âÖv¨òÕ:k"ÂöŒc_®ôNãŽöhåÃÔ”ö±þ¯Rö3¸O*ò>¥ñ‘Ž"ÏSó.!w›Ž$Ï"»¤³2úäuŸ®õ„,/Súët†ôElnÁ¯¢û3¨Êâfÿ²…¯Ô‡ø‚²ï3º|öµ,Žþ¬”/(r4ôBCŸ¤å¨âSòF],wB©ÿúó<$gÃmôï¸ØôVJZ÷|ÏÄ×s÷rF¿¶÷J=ï¥ôK^§ö§oc÷yªI¹4ó27§ùqñÏ…õõ÷¯Çöa!£ôm³¯Ïòc4³ò¤±Ë‰©q“ëR³:²®úš—¢ã*úe$o{þmþ_¤Ùñ®âo‡öAŒOöÈ2+?Ëú[ϲŒüZ"¹ù¢§¯Zþx¦³ÿc6.²Ooÿ²Áßèó-:Öÿ6EŸ”öiè*Ïzó:#ïþ»ž_<ý˜ƒ¯»ò=8/v÷*3ïæwsÚDó"ODõRÁ:¿¢óaÍ/r(Õ‘º¨ú£;¯CõXªÏûÆR‹T¯¡so»R*Õò÷~KO6ó^C-[/5ätõzfôþl«oJ󖆎‚O*ºGö¯nF¿Î¶eöm,ŸFö!.&ý-ïZ»»Ú³qûŠ¿#ò#?³Ó¥ñ6(okó"6Ozÿî¥ï=yþ±èÿײLôahžñ!¿ÏûE¿ú—Ûœùšƒ¿Cò1{ÿžû¨ô_'ò’”O#ÓRõüãó3>Âv]ù,$Õý­¼O:û/.ËEïKþ”Ú¯„ôX¯CÖÄõA¸prÔôz$mA£ÅAãÕ6,ŽsׂŽ2K8¬Ó…õÁhîyxaŒþsŒnè/CÈá§CO¼Èáãá6ŒŽs׌Ž2A¬ôÁ®$î1Ä*xóŒø2„.A¯CØ<¾Ø~,â8WŽ2A¬ôÁdî1ƈ7Lj/CÔB|:”Æ«A)¾t>¯LóWmFóWIFñSkÏFóWCÏnòõ[ïjò”SïjòÅZæþ¤Räô¸6Ääj÷Eí¯cþW/rúÕ¿òúžÁ¿òøqÿòúAÿòóŒSÿãó„Sï#óÅ[¿§û…¿¥ñ¡·…_òóIÈ?û{[ø7¿¯ô¿¯ô{¯ö=¹ïôy9Ïxýy¸oxµ8óÇ_Ÿ…û§Ÿ…ñ¡—…_êóAˆoK{Óú<´«EË»ZôxŒ«aφºôã« B(CdBB‚pÁÈAH€„‚8ŽR€„€dB †´(€8’Ž(ˆ"(A&*¢pAÈAH(ˆ#á("ŠdBaÃEB$°T’"A‰‚˜$‰ƒVB@‘l1ÁÄ‘HƒÇ![ƒŒ8&˜!F+ÄŒT„‘Ap¡SxA2˜,qÉQh’Œ4$CÁ&–k@,cÄL’Œ´" ˜#âãŠA‘H@â!dB„&‚hB`‹!BaD”9aD†(dˆ&Ì‚$C+ÛA$FTÁP&p‘JBháH‚…dB!‚a(…„d‚EI$æˆHÆ$ƒ@h?ò>$fD€L”!'",c$D"i$H`Á*"ADH$¡4"B"H4X$À(âa$¢ˆ(„"$¤(-$@Ã$8Bò÷WpÂ'“0!-Dá.aD")#"Y„„À„#Â,2€"¨!l$R,a„ "€Â’‰S„€1H(E¨". B¸"A‚B4HÀŒO!¢$pH¨B2L95%$rbAH"#2fu"2"$˜.A( A$)L"d¨%ä"1((b)IHƒ”!"ƒÂ%R‰*A<ˆ16"" ‰$ˆD"ND¨)Až(L‚‘«L"$_O" D€RDhB‚ЄÀXˆCÁ„! A…¢& ($%((1B(FÈd"@"J€r„"FVø!V2I€"BJb(H D&$hƒ%‘$H!D@1(¨‚V!B˜$A@Fˆ$bBð„ƒˆ(Œ*Ÿi ”ñ"‰±JÒ$4CX$Ca,ÖH3@4‚'81‡!‚(Šq€d"À€…4.x‡#šdp‚Bá!B‚,"A„„RAˆ„FˆÔ(“B#£ÄF#†1A©…¢"CÁ$†ÆA@¦B6Á1&Æ/‘!FˆD&$&:„M(´3*HÀ`‚ 8à"(¡(AA€øHB!NR,ÿZ(,–H!J"²(” ^(@‚(ÀD2ˆ£˜„A‘CA1-j8£À$ÎcÊ‘L$0™4ˆG*AD'C!BÁLDr¤!P„$B"'‚PD ÄH%$ÈL 4„#˜A„`¤( áA‚’h%DÄH&D AP!ðk¼C¢ T‚"D,„¢ÈD"$@ $DÄ$¡Š(„!(@dB0HA0D#ˆ"@5`RD‹D$#B‘„d‚IÒD‚@aDbt‚’D@&J$D)a@h¤D'*THŸDD)0AP"HœB¨!EâA‚„NA0D¤Â@ò*]p%4((‚$1$p!ˆˆB"#´’ˆ€¨$IHA‚Ž’•‡ˆ0ˆ"D€FBDB‚.$‚`$àt7-„Ä"¥¡A/Œ$Š"‚lBANa* •4BðH¤C\È%T¡`""ŒBŒADTHˆBe˜ˆÀ(D“tTB#¡Dt¨!'A@„Á$A!’†˜ߨ P1…¤!E¢!!AD8†„‚HEb@¢‚@BBF*$!dH„CÑØŒA#ÒA²$* $!Ü"Ó24$BFb$"F"!¥(!!ÐIä„¡B$dAIÀ˜!ÂD(Aˆ$ÈÍ"€„’’„%!.ˆh(A,8L‰)†ˆ²„–&OJÊH‚‰L$ú5d “HGAƒ9HE1HEwHRNA0d&¨H„ÇB$È!pZ†A&É$!&„â„A#4&&$¢B!‰¤ ‚€t‚¤ˆ-"ˆ$ˆ  † cx2ÈFަÓGDB$$L*D"@ H"È„AD„…Ä@ EH„„"ÌT&Á@‰ˆD8‚@È"@ütR„@ D†qD,‚D€(HA"XdŠXFD"@D„D€…„@@„#B$)7`o&¬U&S"kTP&%¤$MAI¢ˆ‰a…¤T".&²$!b£CÄ8 ‘‚àDrBåJÒbâX˜BHÀ$…BrBB‹¡LxD¥ºaØ&(1ƒ1('¡©ŠLÒ$ÔLR$âTˆi%ö4J/ÃJQ§LŠø$RýÄ‹RÁ$ACrE¬ÆhTFI4D%†ÅAG44ŽGTÅÛB8$+$L*hÎŒd„AHGBCb‚¯HTƒ‹BPˆ_ôœ4’šdoH"ñ̰„Ñqad„ÅĈ62ÂO"è!IH2‰è1=•SF„%ôB!1JE¡!7!(Ž"C™øADGBKƒ6aBBˆ%ĉÁ‰ˆqH¸DÒ("HÒD-&.ÁgBŒHRÄM$GÁ,܆‘‚E˜$!9Á*tŒÂ„EDdˆd†Â„‹HMˆGB„À˜+‚„/ˆœ$,ü"Z ØJøáqðusNiÏgåÄôXQöyQO‡ÿMg_µ5ŠëÑDâ„¶HüôXÏNôñxD¼BäFì+S$OÁñáa¯ÃQωñÁáÏýaáÏäöYQobø¥(O*øFj/fþèî/júíKNôïÆÄ¤Ï§­1ïFôÎnßnì´ô\È‹m_Jö¤a"úäéïjø—2gko¬÷hèoïõJêß/÷al¯GÔLúrøïF¾¢þ¨¦‡oï1Åèïo²25Qvwöm~o%ôHZ?µôc_gõÊ]u÷[¬oBù$\öMM_NýxÜOUý]i_F´tôDoiêBñ<ÕíÿÞÁ?„ñ˜QÏýøE_ÌôFwÿïz&æ&ú¢eÿVöçîë®oú¶OôdlÃô¤~ï-ñ2noäülïo,ôKX„ôh­Ï†ú齯ëÿû¬oHù²´oHüúènÿÞÈïÞÿveÏÆvLø¨ö¯ïþîê®îoêûÆÂ¯¡wú¨þ請ç·Iâ§·L䕵CôxyëuOϵüÿA¨+¹Šø¡!OƾXç…ÿxÑ/Æ´(æD§“ªø5¹^ø_™û„ˆ‘áõq}Nhžüzò_¬¨ª.¢öiA«æJºêü[a‹F‰òjdJòèâOFþéBߌ¤Uz¿!òí¨ŸK»ñÿ1˜Šú´äþèúïŽüØøÿŽþzi†„úäâoOÿd"®ìëØËX#ä‡ÿ¸ä¦LˆEÜXeŲ2ò¨$Ð(±ü)t¡?bqB´Cñ!!AÅ¡%ARO!¨!a‰x1÷E&QDA$BußP;B%˜)m5Ôh¡ŽMdˆÞ…b–K"‡‚ó#‰³6Ä&‚Ö$ò"‡ÁXJ,¢‡M‚}"¦ñ#—HD]!$]!á&bÈ)’#x¨Ò.9L´!4(‘I9äö1b­O²Òƒñ"&Aj’…_²Ch&DCÃiO2Xd.ˆ¤.Êwµ™ºA|wòFho†øÃ4Ž’#˜mA—{DŒDEQa¨˜MgÔHØá„”B]INC=E,T‚A#ôTg(K!ÆD µBìD¢ÄƒôB„+A‹$gà“æsrdÖšõA/‘ö}/¯‚ÿ,V_¤·8ø‡.o*á,÷5ÃO|ûã²ÿÿ÷(å/F¦æÿæÿ)=¿ÂòÿM¯ºÝ¨õ¿ÿóò_¿ÿ¸1ïwÿ¬¤w*K_űÝùÕ%ùÛ^ŸTþcHNho÷åE÷w?ÿ%“?”tLùJcf¿ôޯ̞<¿(q„öAîêõDR_òùÝvŸÄôWDôÍtKÔx¸zg“‹Mm’˜Ï#ô¦ëÓÔbö/bsòTBµú3'ÿæó¬v_ròë¬oCóæ6/Jö/oŸûú§µoÞö7aÏÒöue_þ÷ô3_bò6åßçÿß[Ÿ´ñÙ/w÷twŸþÿt~/Ïû´¶/íù’׿õüÓׯUõÕÛï—ödeÏöí÷ÿŸÿuwß7÷õ'ÿ¹ôAB¿¤ôagoööÁO¿ôôo¤O#rÖô†AïVöÿå?_ø¶Õo•ölEOVôåËo½õgêoäþlþï¬õJª-˜ò÷ï^?çzû‰\>ho•ôX»t?‘õyh?ºwû¡º+º>dº÷a<›÷Ëîþ:laŸ†Æ+¯Ëòš¢öÞJߌõ‹˜—ÿøò[ÿúýóت:¦LõRR^T/5õXÒÏ•ÿjhÏÆ¶i÷qtGöb2‡ïÒòÏHƒôAhïòaÈÄøØxŸËª›T/=·$þúâø¥»GöHH_öœò¯G·èþtökÔ‹˜/ŒÿHwB-'?·÷lr¿tûSQ²ö;mσúñ7.4O*û2¢O[ó&3O6óãèï;øhhG_Ööm;¢K“o;÷éÿßýH‰¯‰õy-aÇŽsÓú„2O(ñE:UòÕ…ôáÞ%üiL„¿ÇÔÂø2-Á¯CòTÁ§>MaÅá8wø„2EòÁ:[ÎZlñáž#ñaLˆ?Ljø2„‰ü:¤KÁ«‰¾ÈœãÄt¯ô8|¿ô8\¯1öo8µˆûÅ^Žò†^†êaø¨~–ø>ì?§ù8¤/!ý|¤/üx„/!¿,úþïG ‚‚äRÂ$ƒqAúA†"A¤7IŽDXDA„lRÁ&1‚A¬A!Q!ȧ‰ŽR³0dBe€Q„¤ÑÔ¨"ÐA‚ø$ŽRDÐB‚fBAb=]XP´B%å$b!FQ$IB2$›4$ƒ„¬a1„F 7Œ þB8I’„#ÒH¼&A @Dá8AA‚T!„‚˜$€ƒF8B@”JÓ(R‚‚Ñ‚&ñ‡2ð؈$‡$B±$ÔaaÔƒ$£H·D2„Q¨H¢ÈËR(c"Ž‚”(Cuă4$!F!´‚$ˆDHŒBAB0”+B,.!$ô#6³ßEABlF±BdJ1DNE‚@•@‚D@”!"¡µ%¸ADRA ÈH2H$KB„CbÈ#2„ƒX‚‚0ˆÒ¦ ‡XD…È!ðAbB!$áB„c!B0(HFhB„"-‚FHQBªQˆp4‚P´*…Â8G„€C&A˜R@¸$2$D@èB¢hAHÐ$±(TAB)QŠ_ô4¤!‘Y!´H#Aá"#!q>4H (o‚˜"Ro„Oa"q$]%€ØBb)PMR-0(0¢Aƒd‰2*C<-"€…‚‘$%D(!"È8&uHAD‚¸4ˆB"aˆ$(F|Fq(„T(28Dp¨,˜)q$D8`B„L”A%DJ"ÿì $@JDFBD@DCDA@‚„A@‚A!€¢@„ˆ@‚ˆDH…H"BÁ!G‚hŒBrI…BtH˜%p1…ÄB@ÂAÉD‚a‚ŒÄD)R°Ha"A@#q)Æ"$1‚‚DƒH"R„Ò,‚X(É+*Äïg€„€ HA D-AÁHL@’AH`! ’D@(°BB"0H$‚Ф5‰ 2$@%rÁÀAADBÂA@ˆ%‘H@R"€d" !)‚B"!E!JN"&…†8-$Do$'BAƒ0HNAIÒ„‘DÄ@(2!Tƒ‘IRJRŒMLã$F FŒd„.A%È2C³4‡ƒa,!!¨8Š-YŒTAh”„ˆ!ðRˆ°$!Á?óK1D¡DB‰Á",ƒp!DBH‡B¡HHÀZB‚!UfADÀAƒ)RHHX"‰±„‚ÂàDFáH!B+B!‰D"hÛд‚´b@J1H¢!E(@qD@2r@(UÄIbAÀA(@ BG‚AB¸B(‰(‰8‚ˆ–Ô$ê8¡„‚I(ÈˆŠ˜†’‚Â;¨B¡A)4H@1EE!FHñaA4A!a&tB„E‚EA$ŒA¡F(4A‘BP"H) G„@q!¬X‚ˆD "!ñ„¹$J!!$bDD€èFÈA DÄ20A``\QA Q‹b…EB”aB D2aLaR 4§("! $HN3JôH!pBT""-ã!ÔÒR$AÀŒBjR`B!#*K!AÀŒBjBaÂ!3 !I–€‘$œ(„&$áA‚H‰ò<ÁEAÁ¤„Hp2|2!B,A(A¬Ñ¤A@p"42#.ÁÀŒ@H&dCHÀB "A$Œã„$Ü'‘H/¤DŸÅa}AC†ÂH,Ñ$a¤BF$tAátaÅD'FRH&“d£‘aaEÁB($¬¤FP&Lt"h°”im!< m"AA%:DF“\DÌF>E1 BŠÂb!Ô*üxDP­M”Ô6ÄHŒÁH&lA#!t3:HÅÓ$Á!,Ò´Ó„QHAÑ‘q2dÓ©DWAoS´”AYÄAV(Ï´CX¡bD‚ñB&¯ˆÈ,(˜‚–ò1ÃÙ–tŠáF²ˆöŽ2o(Ah¨ ŠáL5Ï1VqB%r’8iQ!ƒÔ$’,–$Œ$r!'b‚HA9¤a'I4Ö‚tI‘”®4ozõôxÕÊ÷Eøëa×RŸÖö„ªë|ÏJ}øìçùÆX‰}øè…©êƒÛ1ñE·µNZFú[Q¯¥óu_~>ß$wwt2ô26MsÇô;U¿öô!m[dÉòdDnd5×$óE¿µÕ¡Å¯ô[zÏrñhvß´7'C/cÓtw2ý~A¿çõ!mÛ$ËdßÖäÂò_6d³zôZY[¯%ôXxoòõ!?ï,ûõ„¾†/kû†ò_Ûøø‡¯Ïý¡®ÿÖömLîîÿÿÌòïküؘ/¬éŒý˜Â¯­ûæß®p2ÄA¯CÒ´Áaëì(wMè(ôÁ:A¬î9ƈ7Çx2ÄÁ¯S’Ä£ÁáãÁaÅñˆsׄŽ2A_¬ôÅðáž#qaŒxsœ'Sü:$MÁ£Ñ>-aÅá8wMè(S$¬S$¬ñáž3qaœ7Ç9x2„ü:$i<èãÑ‚1¤-¾ÿQôzïôj¿ön>ïön>Ï8÷~>O8÷>6_¬÷?O¨wïêwoìj÷e/cwü2öïSôzþïôzÞ¿ö~þÿö~>O8÷~6O8÷:2_¬÷{;O¬÷{î~÷×î~߯ørþ÷Ç/çÿ>A¯çÿAÇýaÏÇÿcÏÇ÷ŽóÏÇó†óÏCóÅúß×óÄúßÇñâþ×Ç®~ßÖø²ü÷ǾüïcôøüëAÏýbÏÏÿa/MRˆMŒÒ4S„&Fhb'&uxaüA—B#ñ($a‰²¸ò„Ò$á„Ò$á„Ò$sDèba„.#aB'…Æ/4(+A‹"kA™²¼ò„R‰Ò$õH(,á„Ò4sDèRa„.VhBVxaît)¤AB²”(KÁ«!O(‘)IñH(Iá„’4g„.FèÂ>wˆ/Œ)T A&a#&&T1($JR„LÂH(ABBIDG"`#DCVHJ'T)FÅXЂ‘AA%2$K‚,(c$ƒH!…RÁ(‡DbDJBd„Œ™"W4ŸV!’,„Ä*bA1,ð"(Lð$(€4dÀ0D&!DH¦"0EA´uB HSBFqd1,A²DBDK¢°ÈJRAƒ8$L$‚4t,aˆ#ô$m#ˆHáFDBaB+$ &)(¡B AQ€DD¢Ã X XA°&ÀE!H†MऄD‘C„h„‚‚A`DDДèH B…tB'”ïA¡B,!‹ELA„Ô(8„EèD!FØ!A‚òDk"AƒA‡FÑ„%#”ˆ0D*lI´"L’D‘DB$¥!H„A.BÃAdBMH‚o"U0DàHQJ•!ÄEAä„‘B‚„‰4‚‚1A„@AAˆÌAqXrDHÄfiF8’L¨TCRHLÍAÅq$á$Ä#H(Nª4" JBˆ(C¡À"p( $fÈG„&( A‡b€’Dƒ„”!Iˆ„ŠL‚@B(ˆ€H&ÈB#D1¥$ŠX(IC"D‚ˆQDHƒ(I@AB&B(F B‚’DP"ÀZB†APH€&Â$$ð¯8Ä*‘X2 ¡FC‘Bˆ*µ( ‚QLÁH@ˆQ$ !‡¤€âˆ†dEBp(4"’ŽHL!$‹A‚Á¨A€¡!AŠòRˆF,ÂDdH A«AÁËóD$ ”(À(€d‚ Aˆ„t(¤A„HpL‘"Œ.€Ä(aB„J2„&4XB2H`a8ƒ&Ô¨Ap(4R€‰R$EF,H¿3@¤"Š!!D"C èaFD €N(  H‚B))€H((DÀ„ ÒØ6ÿœ’I†B!bB ,$¦]$B0‚,âB$B$"¡(MQ$A¸JHD$"‡‰Š‚FHB&/é ²DA ˆ’PB€AAÄA€D1„ÀB(‚(‚"Lh‚" & .fsLdQ&$¥ FTRÁhI !iB#+D $C"¸#(e‘$°aˆÁ2EQ$ÑQ"H`0D™‚$2FˆÂ*ÂD((&¤B¯ (BFaD@’"A(H$dFHD#€,$@‚B‚’A "&€DÒ„„,ˆ¹$ˆx$ºhN„0¢0‚ŽB`(Œ=z!$D€AáFaT"Hb4H&+D BX€A%Xf”f„.DBH/BEá!âaÔAQ¡ h"¦Dƒ"È„%ÈD$‹‚,ˆú„`DA2D(3Ä"A€)D’bA€ˆ%’‚‚€È!iˆ ’(C †Q²C †¤„1À¨€Ñ’"(„(G´("$F"h*NÏ#”D?A ˆ1(Cˆ2D$‚@F8A6”Ä`8"¶†B!#8ˆÁ$‚„Œh‰t!8ŠIÂ"UŠR‚¥!l„"Ð(’¢,"$!ÿïGB’JaBf!"'KAŠDÑÄBdhÀA&ô1D ABR.±ÁRD‚U‚‰²Að!&%„R³,ÌD‚T‘‚)(FÀ.ÓÒB(K!a€M!&€’$A‚!`4'BÂBŒÂ(A$BÇ$€T(ÿ‹(@,HâdhBˆ@€‚‚(KH`†&dB%€À!Á4P„@"D@„HA$a‚P„<3uE3ŠÄ!IrÑ"Ô#rF2B(I1DIxaEäáB,Bv$´"¤!CD!EƒBˆ-AŸâ,Ñ„Y2¢ÕL’(†‚gŒ‡¤¦[h‡DbÄ-HÜH”¨m"‰IøòáðD"`ÊáBA¡„.…¨ˆ>„¢cQ(&ŽŽr[(Cì8±‚dÊ4H6ôQ6$u2‚uâsv¢Á Dà%‘1„“’=5—!N?ÒˆØb„z"„âÚQ”„(‚Œrèˆô$*eBQ‚P""/d?E%UV.„9T$Ñ$…„„ñA!ƒ9¡˜JXAvVÑ!Ä!E%‘aW("G()2„¥(Ea1æ&äB¸B‘!Â9–ÈHz‚Ø’R†ha&S9a¡7–%ñH„—F~cÖ!˜!,šCLŒÔ(œ"[Ô°Ö!sdö1GŒ³TòAšôâÖ.4u"ù¡Ôj—µOøÑQ.d{$[„;/OÚ¾D÷vG/=Œ­tI¶ÅääwíCò—+?výr${}o-¸Ññá%6D;]?N÷V²Ý³ÏÓôú«•½±Ï!öY§8.§B_ª¢*vúj._’ò‡ÂK‡Fm)MI?ŠôË'o¦º$ú&D§Œ„Ø"ú&bïÜ(Òbô÷WRW5Aõ!$OòµG7s?$ù‚2gJ>ENQ/8ºÇúÕá_CÄAöÅso_tQñQñ_f¼ÃôQ_ýa¤_öåõS’/!óö¾W;Õ/1÷×r1ÿvEüAa_8ÿôW^“¿•û_/9ñ›Ÿ%ùy~¹w½£Ý«8"onò¢e¿¶úëcÿ¸ö¯‰÷–ԙö…‹ÏúòJŠ/¦úfn‡(-‚o¤øbO¨òÝe$O7ñ3DkcO$%õAåFífû×1Wo/JéBû”1Ogè_éB¿Ô¾öeDnd_¾DÿôDþÄ~ô_­MíüaÄ~e{}_OèKéCóÔa_Oì_ýqäO¿VödDnd_5¿Dÿ4UNùè•[ÕRé,ù3Õ.$K(ßÌø¢¤&ô¦)_Jô¢Ä—FO†žNOBäFòdáKÂMd¯ÎêîúDȉôȈîˆn‚sÞaòsA/õR^Aö5UBûÄ1WJ¾”>´O÷¥„?wõãT®¥_ÖödDnw$¿FÿôE/1½AíµÁþeÅnöO-ÿ÷/KáCû–ò__õòV?Wíg·W¶DödE~·W»–ÿ¶V^š/ùØÚ¯õZ¸ÿgíÓú„ªwÈ'j.¦o(úìlŽæFèöÞ¶%vmíîÔü¬èÏhôh¨/„øÂÊ«H„øl†Ïü 'C\ô2%MA#ÁacÁaEã8wEâ(ôÁ2A,n9Fxs„x2ÄÁ/CÒ<>VŽsW$Ž2A,S%,n9Fˆ7Gx2Ôü:%mÁ£ÁáãÑì8vMè(r$òÁ*CrÁ îsaœ7ƈ'BȯB’Ä¡)Þb7¼-voôrv/äGõaOG÷aOO÷…óOOó„óOKóÅò__óÆò_Wánuåj÷e„/Kÿw„¾´oSìOûÁþ”?þä¤þä$O8ÿô$O8ÿ´$_,ÿõ$O(õõ¢öWG®v_Fø²ôgèJÿ6ÅNÿÃNýëÏNÿáÏNò…ãÏJò†ÃÏJòÅÊ_ÎòÄÂWÞn~eìnöeŒ¯NþgîäíÆÎÞ.üèÌ©þììéþ»×$ÊÂJÒ$3D.B.”R.„RFèäB¨A.$KA¨KÁ+!O(‘#K(O‘"OäZ®„àbfÈA.†àBÄ¢I¸ò„2„+$GJ²„2L¦5B®„àr8HÆÈAŒHlšDªIœ"O(Ô‚²„d„C脲„rDhJFø¡ú3„¢B‚F"2T¦"2.˜a$MA(C„tA2ÄHK-!CaB,ajaB!B’D„2Ôª$E1R#qA…âd"hJ!DFô‚H°¢T„4$p&à„tAa†#ø_î+ˆ (`4Cˆ!#ÑA9á"„DBŠHc¤!Q!‚,ABžA%H1$"‚H‚HNˆ@"JR"!ƒ€HÑAU>s^ƒaõQñt[SŠçEëA±5¡8Eÿ‘TK_6ñ1rH´G´e¬}]ôtÑ[÷eµñôRÑ;eKWKOÞqÞ×{;ž2?]ÿRV_?õõÒ5çL´g´eüÑr?Mõ6ÂÿóWë±ýKË[(ò‡bªb*jþ!doºò䣺âÂö.!_†òê*Jö$êsrfvˆÈÉ(K$ÏZ?~-V#±1óQQõ14_ñ•eY·Q©OIâY÷Q¾‘W7_5õVe.AôäS}·CýqÑ_w÷ÑS?$ýWÓ?VýõQ_l÷St;µ/#ñÖ/q÷QÒ/õ÷QoýWdNÁnAO>õÖw5ý3ÛßãûÑ[?ýÙŸÓÿµ_ÍÒóò+ª#òä$.g/þ"!ÿòl«ÿÖæòA)Ͼú­o›â/¢þ&®,„Ü„ìºìòÖŠ$~7;U)÷TSJ¡QçUÿQK;_OâIëA±´÷u¤Þ5t[—kCOBöADo;¹tÿttŽ•/m¿ùRRž‘zÿQµ^Ôo*òÕ¤ž¶>†O÷õäžô^Do¹wö%eNDO½fÿd5ÉýöMØZñ‰ÙßÑφoòÍŽ®¤.„:òä†/Îú(ä$ºnòE$.lO¶¾gúd$¯ÊÎìMȃôˆÈ.ènSÉ–/–rSñQQWOQö!µ_ùÕ4Ž´>´Où”µNteçsõwAOòDent'½ôýÔeõ?­ÝÞQÝOUÿ1õ_?õ÷4Ž6/a»¦ñÕuÎ6/uÿaötdñEdn4'üõ’OM÷Úø?±¼Ù¹Ñôø˜ÏUúy¬WŠêr¢äBú¦c_Jâ|ökí/rôl)OôMdz²O¸ìúìf¯®Þ¢üˆ‹LŽþ$í¿½ 'Cô2$MA#ÁacÁaAŽsSä(ôÁ2Q,ñá–#qa”7Gx2ÄÁ/SÒ<>VŽsSä(´ÁôÁ$n9Fˆ7Gˆ'S-Á¯SÒ<>aÁŽcׄŠôÁ*A¬îX‚Fˆ7ÆhBȯB’Ä¡èáL::-öoôcv/äFõaOF÷aONö„ó_Oò„òOKòÅò_OòÄòWGîvWG®v_Fø²ôgèJû6Åî´oìNùãONûáONò„óOOò„óOKòÇò__ò„òW_®öWG®v_Vø²ôWèJÿ6ÅNÿÃNýéÏNÿáÏNò„ãÏJò†ÃÏJòÇÊ_ÞòÄÂWÌ/n~EìnöEŒ¯NþGŽîäíÆÎžÎΜêÏÎÞüc„$JB¢$M#CdRB.…B.„BFÈA.„H.$IÔ!šÄ+!O(2„(G)²„dZàZ.†ða„ô!„àb”¡I¸ò„)2„J2„‹$K(CdZB®…àR8HÆÈA„Hì˜D˜Ä1O(KHF8„F¸„rDhJFèø8舂b‚ÞAh&$äBè(‚Q!jŒ’ÇI„2…2Ä(‚B‚BªE´!ÔA(ƒ(ò„*¸D’…HYB±¤A’Œ´ƒ2BƒH!ÚIxbe"L(hBô"…BéÈAM!HC:CHb„#h#8CpCý¶þ$€!(N%A†&$óBp"&DF„BBHDAFP$EaB&4E(dpÈb„$áA2ŒBÀ&A‚äbDHÖ¤$@tAJÄBƒB‚d¤¼8bˆ)„&4‚@1D@‚Í!RA€C±Bd"AH@D„A!H‚d J@b,‚¨„CdDFj„ ÈA@Ø”xïFA†$„„x„b(@‚fa[BB0ñT@á(è$CE‚ˆB&( "Î#LIÁH†‚Å%" E8B@4H"@2HKBÀH‚ƒÂcsA$ $Ä"[!"K!$,DâA VDH&±"a$EH$HS"@Ä$‚ˆAA E!dN"B3™H¤°AQ!Šˆ)ýdáKÿOU¦fna_>ÿÇe?/þár_N¾ÁôÓâÞSN¾õöwä/_þc²ªù¤¤/[üãóüeá?ÿueþAAO<ý×Å?-üáû_ÎþØA?-í½õáíÏöïä?Þþ몮¤Ž„oXüÏÏOÜüÉáï>¼eôDIÏTöíÃ/þÂŽO¬îξÌüÂâÎÊî­ßLþâ´Owöq$G÷G/5´Qòs2Vï~ÿö±Oú¢¶®¶kÿo[îzÿÁô[êoö$dFþ¤ñO.ÿô¶?]þò¶_<í=¸Óþò®¶îök»Oú¢¶®¶kó_þ³÷Îö_>¾ödDDOü…ROmÿúí/ýê¬ýØ‚¯ÌÿâÊnþèïø"†GhÿTø†Dÿtü¨Ên«©öiA‚ôeènôHâ¯ÎöâêO¬ôH¯ŒôÂÎîÚ2÷Vg?'ôSRS/ôqbC÷á÷O,ýƤ/Kù’¶O*ýç¥/ÿñÔNþtaK&OVöá¤.ÿäâ_üòâžÓ,ýÒÁ??ÿÕ÷vÿåóFú²´/kû¤òoFöòõ?fïNþu!OöEEÎÔ<ýÄÂÿ_þûú¹õÁÛ¿õëëOüöéæßºöï¨/Jò‚†O(üÂÍï\üëŽOÎöMeßVtmüäí¿<üì¦ëîïæúÄÊŽŠ«È¯æüäÎK'CA/CòA#á6ä87EŽ2A,ôÁn9f”7Gx2äü2%MÁ#ÁágaAŽsSä(ä,“,n9Fˆ7Gx2äü:$O|á>ì¸vMè(RD¬RD¬ðáŽ#raŒxc¨‚'BȯB’Ä¡èéÂÇ#ÛQòGWòCW/öu%oõu7O9ýg6O9ý&6_=ýg6_9ýGzEäj÷E„/k~Wô²¦Qôò¦oõò†?÷ö¦oôv6_9ýf6O9ý&6_-ýg7O(ýG¾öwD®v_Tø²ÆEñ²†ïQôú®ÿôúޝöî®ÿôn.O8ün.O8ÜjòÅÊ¿äò„Ê¿¦âê|kéêôi¨/ê|kù¦Ž©ôꮩôꎩöΪídÞ‘$q&CCsAÔDTDEm#ñ„P$P4Ð4db@BrAÔDBi8O(Q$„ECØ$R„&FHBU‚Ä-A‘!‘!…”‚±†RH$…HBÌ"Ehb„Xc’!À‚!0S‚qˆ!Š1&n‘aB{8(Bàb F"á‚^##!˜ŠKKD" Dd8Ð(hD#T8°-2Fˆ(‚)$Ø‚&„FÁH‚D.Bˆ£ÄˆÈWéàJJA!†¢(AŽR%ñ‘DƆN"'EˆBŠC‚Ò!1 a(¨CŽ(€4…,B†±ÃcD, †š‚"`(‰Xa#„x(È‚Àˆ].óD)($cA"ECD„A¡BAÀA€$I DA%TAˆ!‹D D!B* bHŠDHBHÈäˆ …ôùß$CÀBMa,CA",’DÆ20DbB'@Ð4¡! Ô(1°4Ø(D‚$ DHB!T„(¬…$D yà !@ D}UC,B"46AA‘$FD„1BHà$¢8A'FA!Ø"¨!Ô(XH¯HÆ"@$xÂHABxDLÈ„N"„ÌȈ$Åät†V„ !$A@A($€ADA@€AATƒ„ÀBH!(`„0!@F-C‡ (AÀB,&8@$"‚DB$ ‚3€F€BAELb„`$?ý #´‚#aA‚€DDTCdAA*4DBAÅBI1"Ž$€’!ªheÑH”Bb¤E‚†"šL`f‡H $¡'BPH-V‘ˆ4AÁ%)ADZHQ$DBQP"*” RH!‚ƒTŠba,ˆ‚.D„!`€D/i "b$LA@D(A6)‚€1(ˆ"(@ $ ˆ…„H€„BÂD$‰DXBÌÌŽ$€F%ª£‚0T¨&aUТYÂAàL!(Dˆ(A.…aU‚`!A‚D&$¨+(!À¡H’DP!™H„‚ŒWq ²„Q%B¢D%$1$ ˆ!”4@€8 ˆЄL(A‚d$”@"œ„Hh$À‡3ŽÈ$&…;%.A€±ƒãJ! H0E%²!!UˆHâBÄA@$›$Er„4"ErÅÈ”ˆ (K‚‚c²T!$@„% hƒäˆäˆTBô­†€A,D4!‚!0$N4 ""Äh‚C @ˆD@„ˆ¡!€(D$!@B&€BƒÂÊC`B1B1ˆˆ,ˆ<Ðd@""¨¦#ˆ!hKL T$(AK‚D‚ TŽ ˆAŽ‚°ŠŽ&€¨HK¨‚«ˆ,¤ˆ‹È¾¶`1MAOÄEaA!6A411‚:O‘MB„$áb„A¡AF$ÔB¤!KAF‚!ÄObd!JLXmDQh)4!È&‚$"B„(&„Ó¡A B€”"T¤O(š²DƒhF,4!F$¸Aˆ‘&¤‰9ˆ¢‰(KˆM‚Š(²H±êQ‚‚’1âJÊ!›è*²ˆ,¸ˆ|"±¬,’hCb".D"jb‚ĈF,D)D‰'‡á$ø¨A$ÁQHH%dB!îD(%eb,IEa=*áB¡8"C)‚A2A(%Á„Äb"ˆ"G(( "$ŒBXDƲBÒ2öq"¡Q‘3SeBŽN"žÂYcHAdQ/‘+‹‘¢{!(M"$Mƒ&D(RBXbJq)R(Øh$Fbx_²bH_‚2&ÙAr"ÜQz"¨è‹"©‹Œ˜ˆÏ"ò¼ºE²DTCÄ‚J4!t!!÷‚"†„”‚-D+(aUñ„c²T<„^‚$N¡[„‚JŒœAX¦4’DšƒäXÕ´²„ô$Ab*ÄÁ[C´¨–nˆN‘^Vá”êñc%ƒÔÂ(Èh¹”CAI¶‰„œH.AŦ„BC‚ü8Ç!w#¡3¦98D-G$Y‚¸Á!Kaü1Q,ÌB"H‚t²Dt’'AÕ&ò…B¥Í¢([®¡Gž&¡(„ +±D-”)JáK±&ȃ¢Šò¬„(LÁ„lJ(pb x*ôŠB/"´‚dµzôqwO7õrTõQS~W/WõBqKôO)ù³”k¨OÿÕÒ?_ýãÅ??÷DBnDnÄ;ý{ÌYízúô“?[­Ù΢Oýòukü_÷´’?K³²û´qO*ü“/MûòYfRN¤?¹'îKý9·ßÿ¹íÝ9úü¾=m/Šþíéjø‹$gJˆö¬g¿˜òç¨?>ò!FÏ‚òd¨?ú£äËê"ê¾È†­Ã¢oŽú$2ÃÑsõqWE÷UQ?5÷QSG÷uU;u÷×’¾”šû’ñ-í_í_ýÒ×öEAVôá×/ÿöÓký‘´_ù““_=ý±Ô_½SüÒñ'éK©·oÿwó¾µGûò·ö$¡Vâ~û“qo;ÿ™vûÕ¿9ý™S[ûñ?“þ¯¨ÿîú¤¤®¬oZþîçßZøe¡¾ú%m›"n!_¾ú¦éïjþ¨b‹ªÎJŽâï(ü¨¦o®òEÂ$n6÷R2_%å%ñSQ/4òUrO%ñsôGú–²OaùòôoKþVòO)çwý3dOF–E~Õ¾ÖOo³—ÿ’bO,í-ñÓ‘/óÄòOoùòôOù¶²O)ù³´oOûö³_+ïoÿs$_F²$îOÿñ¶Oïû·ùÿ;ÿÜÒ½ù’ø¯{ÿüúO®øë­†ò¢¦Ojú¦¥ïÎú殟jþìê†òD,BôÍèO®øÄª+Ê«èϨüÈŠŠ¾¨þèÓ“ÊVkqo5õCNR/ôcVr_w÷5W+=k¸o+ó´Ö/»Ç÷׳OO}täVôA!ONÿ÷—oûRño=ýÒžÒ/ý“Ò!þÕó_{½Óº¦ù¶¦Ozÿ³±kÿ?þ¤µ_WâVöaaOJûö·þ¶/ŸþîóŸ9ü‰š/ýúòŸ+ÿ´®Ïüúª¤oJú¢¦Ojþ§¥oÎþÆÎJúl(O†ödmŸBúï¯î®/Žþêè(üÈ‚ÎÈ®þŒÇ¿ü'Sô2$MA#ÁacÁaAŽsSä(ôÁ2A,n9Fˆ7Gˆ'Cü2%MÁ'>ä87EŽ2A,ôÁðá–#qa”7Gˆ'Cü:%MÁ£ÁáãÁaÁŽcׄŽ"A¬tÁ îraŒxcœ'BȯB’Ä¡èáŒ6÷-¶oSôb6ôb?öf6oöf&_8÷v&O8ÿ6&_,ÿw'O(wçjwäj÷e…/kwô¢öSôâöoôâÖ/öæ¶oöf&_8ÿv&O8ý6&_,ýw'O,}WænWån÷E…/oWõâöïQôêþïôêÞ¿öîþïônnO8ün.O8ü*&_¬ük.O¬|Kïî~OíîöM/î~Oüâîéôêî©ôèÌ­bÏÎÞ>´ÝB‚R$(M"A&&bB!F-A&ò!$a(i¸ò„R$JR$JÒ$2D&&bR#taÔTA)TAi‘Æ#ñ„RÐ$d„Ec„M#G„&f„t#DuBxAÜ™Bi˜Æ¡O(Ø$tHHb„M"G„&d„ÔS‰¸ƒ$1†Ä$èR$@ÒDa(`f¦6AAH„)Ä„=ˆ)-HDp„l,’$a)@D4!#ZA3„˜±!f*Sh"AŽ"E‘$&&Ä!Lx#È…­AD%A˜‚„×Ížp‚#‘A°D'$A0Ò,Â%0†YF1Ä-„!ˆA#ÁÀDD+($DD#Ò!#IÊ$%EÂÁ0$³¤B4‚$CjB#È!Q(!LÕB8j„E$‚HÍE£Å¡F$(I1D€OA$FTAH&BÀ €¤!CI!$$D!XFJDd’`„’$ˆ„ÐDBƒЄ„…%¨D h’ÿC%€’‡A’$$€Ø‚&b4@±& A´!FDF‘ˆŒ@‘D¨"A$‚*”J‚ VH$0(0‚‘hiäÈ=LQ r$A‚!”$Є¸JBAä2A”AB¤¤I¢II¤!AN!HrA”NdŒ”&8D"A*H‚ˆ(ƒD O„Šh(Bh¢¿VF#‚ $dQ(!D€B@$BH" & DDAÀF‚„D jBA&BŒ„`ÂH€LÈ;㊘(Ap$`ABAˆ3A$€X(I%Ž0BA6ˆD ˆŠ’ˆ ’(gBFP$@F‡B„*HÂ$€ðAÈÀe€@¡XKJ Jc!àDJ#‘°AG$,LA"(àd! &`‚'BO„xBȈ h,† ˆ"D²¨€D"2B¥„FX-§“Ô!$` h0€!$&1HAŠt"$J\ÁB áHPæCB2$‚d‡ Œ(èh’H†„pŠƒC"ØJ„ ‚Hð2‰($„ˆ„A`A$E!c€! B"Œ%$±A*ˆ&8$)‰(B !!@BÈÕS AI%‚ADH€A!‚ *$‘"C¢(t$€ @‚.ƒ$…$Á"„ðŸ"€¤A(` “$ (*€È „"aH‚C‚ Hˆ€ŠA@‚ˆ`„B(JB€Â‚°‚"|<6€2DN$2Dca&AbI²A€A¡” „‚’„L²AA( $H$AX„H €H"H‚4ˆ! B„*T$!&(b, B¯ú2 "F!¦*(£‚*ˆ¥¡¡$B(ˆ¢)J2‘$i²B"ˆ ‚‚ˆ¥B€„¨B *N$–a‚$ª$„Â*ˆ‚ˆ”‚.DÀHð¡D (F$($(¼5C$1$A´…ÁD,AŽ6DfQ!¦„Ar!AÑ4HˆH¡€(I!j t!äBˆ,Ñ‘ÉD„ô(H%`#kˆ¥ÂFÈD.Œ$‹B$Áø«RÀ!Qp!$ ôB… „(#™$)‚ÂA(ÆJBá€È*(‘Ñ2 A(STˆŒ2AI2B“AÑ&ˆ©R„’(h((á,BbD(#ô‚:¡0"„€¢(€B’À„2ˆ€8@±`8‚C"*Œ`D€Bˆ(@HC(N" rBra(ˆ1b$Œ%!ŒâÄà4J‘!"q!¡‚C’H*ŠBF‚¡$°¤¢pp!„‚„І1Š €aI*i"FD’‚¢B‘ÂHÁ)$E(H"dBÌ<Í1!ÀA"AC@@D!!@¸A`D ‰T…‚‚D”$@‚„øXñ@D$$Ð$A@RB%1DAH$‚"`@D$AAH xA"…DDQA`„ƒHÈ8óFõA[BmaD%ôDH·áhR$TOLRDÑAÄDÄ+‚FB‘BAOQЧ<*0DO!!SVäB8L(‘Tˆ”DCHI¢,(4}!AÆAÈ…Ô.‚FÖBt(L ),؈Ö$ú¥·`$å8!c¢A8"A19¢áyÈ#VJñ„NNK" ŽADˆ>„À$&¨aI$¨XpLá„â”A4H°‰hB­ƒ,@á‚ÜZªH_R˜ŒÔ!2ˆ¡#ôD#!g¨BÐ81·!&Tð2D9”bÁ$IŽ$ƒ{adDà`%Ѹ"È9¡aGKD(KŠñå®DFe–tAeB&Ñ„h‘È©‘‹s˜bÍ*$År†1΄§Db³"$FTj˜ƒ+‚™Ü-‚)ô¡ð%EOsvd×…ô#GvoBõ‡uO\ùFwJoHóEÔ_iô&k?7çh´e´eüóq/H±%ü1âFòWüaCö¥QÊç\íC´¥£:Vÿ1e_±ä©9Hwd¡;XׄüÉÏÅñ©Q‘݉ö|ߊôˆhŸüØJ´§¢(?ìÜÉt­úìŠ*Ìt/ùmˆ¿ŠòMï‚ü.èçÆ«J­È©vnú®ØSÜrôµ†_A²UÑ#öCC_Wñ‡u}ddú4OHó†emg_[øe4ôeÁôÅS÷FÆ3¸1òÑžCü´_\÷Ad¦2OJãZæîòåOøUe.öÅ‘_\×þ‰ßÑñÉØŸ‘ù9œßŸño½n¿¤z"r†Ìg½ë·²÷ŽÿžøOm•yiyÌûÎo½Ê¢ØìrÊڪܮø*Žç®W$O'òFt/!öUBVÒõ2f_uî%ø¶4Lû†¶Gao[÷B´}ãaötÃ{c_FæD¶åýtâO'²Â½’þTÃZñÁÑ:þä^Ä[_LéKkCK[ONûñ´Ä_8vOVÂdK–K§GÅLíÉÿLØ^íƒÿXýNŒÿšòŬޤ.„_öĬ¯\ÚÈôlƒï†òm,dÏ>øl¨ïÆòÈì¯ÈþLÈ'„Œü#é¤2ölñRu}WO1ô;U?$õg_cúôN³†ó2¦O+¹£ûGttfCKFOôD$.EovìoùÓq9ÿ‰åùU¥~¥_õä4®.¤Oû…4îuNå>eSöda_DæZ´eøÔ±ßÍÕ˜ü؈ùÙY‹ÙßÑÿ9¦ÇžïNò‚&lz¦ò®.ÜöCì¿â~nùmIÏÄæâômˆï®øÆfÊȨøÈH¨ÜÌþG‚p2ÄA/SÒ46ä87EŽ2A,ôÁðá–3qa”7Gˆ'Cü2$MÁ#ÁácÁaEá87EŽ2A,õÁðá–#qa”7Gˆ'Cü:$MÁ§>ì8vMè(R$¬uÁJòáŽ!ƈ7ƈ'B)ü*$iŠ^r-voôrvoôrV/övvoöòvO8ÿò6O8ÿ²6_,ÿó7O,ÿsîvwG®v_Fø²öGø²öoüòö/ìOýáOOÿáOOó„óOOó„ÓOKóÅÒ_OóÄÒ_Oánuän÷e„/Oÿw…þôQüøÜüèÜ/þìüþìl_8þì,o8þ¬$_¬þí,O,~íín~mìnöm/NþoîäoBüèìiüèÌ-âÏΞæ_ÅK¢,<¡$,3D.B.“#å8R†/¤‚+A"kA¨kÁ+!O(‘!O(¡$ŽJò„3CäZ!äJ)áB(õa„AL¨A¤KAº¼ò„R²„%´„¡$K8CdJB®„B.†BÆÈABˆô!¦I”¡Iœ#O(”#KHJ2„J²„2D¦$ô¡%Æ£$1B-J#¦CæaˆÂÒÂÂIÁB@„2#t¡”2Æ”ŽA‚4„BKàAHñ€ãB¥$DÒ†áM‚!¡YQ‹JEñ$‚ð$‚*Ô¤D¤bD"ÜäHÂ"ÆT†Q‚¢g„<à(%Á@„Ñ$03E")AÄ!€ÒCd!"A-XFD$ˆ”A ñ!D€–d–$AQID¬H(a&T‚,D2E&¡$LH2$!%ÈC݆óŠB€Ô$(1("Db eBHM!B(€D!B $ÀAÀD1H„F €xABBA$JDB‚x‚ @aEˆ#aB@’G‚ B!D°B!˜Að$B(†aI2D€ˆ’i„08"ˆ`B $%ˆ)‚%"BPϳ PLÂ($%Ä"#! BC"BaD $„ÂeLrÈ$€âD2AN$BB (A”DmI€& Ô‚($…°F‚ÄD0‚$ox"`D Aˆ ˆDDIE"`(B,hDA"À Rà‚´!H@ˆ³€’DBˆc´Ah)ˆGBhaˆˆ#A$„D´‚2„0ƒÀBˆAJ8E„H„¨#A ˆ²„‘ˆ$‰d„!ˆC¢¤‚Nˆˆ1D†(˜$ŽBˆ†_§ /BÒB„1@b€Â"@$AB„à1€¤„@‘‚"‚2’&µ!”!’D'Ê‚B!ˆ(`€RB”.H„ h"ˆ…¬9‘@42 A dàhD"A4HA†‚DAB„¸bD.A $CÆô‚)È%(hBP‚@„‚"tèDf"B(ˆ”ˆÏÞ „a!B˜F±¸Dˆ"LÁ‚C! $!Šˆ$ L(ABd€Á (!ˆ$ˆ°! ˆAt‚(‚$‚‡„/è56^$!C#A„"!ˆ*ÈA($2t€&#(TB`&I¥B@¤àˆBP""&"((’"ˆI‹("¥BYXB€,-Ä&rmF‚) !D€$2D ’H!A€$!DJLrB!ÀH0‚"ˆP!@C‚h)DdcDB'ÀR( !`"T(H0$AHE.„€T!1$!!$DXpDABD(ŽFj$$H†b(ˆc"Ñ(È‚PAÍÂA$HCX(†B‚ônÆ$#D#A@bH ˜à$!$ !F „„B  " !€¢$€( "A"0!CÈ€ÄCÍA#Á5!,t6b"ŽA`(&"ˆ H„ÂBLH„HÄ€H(@"d#H$L4ÀD‡.E`,†"ˆ"ØaáBD¦¢p$Ä$(˜ˆ("d1$mCä$2B" *1"I)¢(#$¢Bð$AhHJ±!/„†*Á!j2DBKA¨AðA a–‚BH‰BB#„–D!KÂI‚”$F˜$ Œb„¼<ž,‚€,„"“DC‚!¢°Á"€(1+B""3(AC.A"$(*ÄA"Ò‘$""@(H€†ˆ8BBB/DxDô7hB!p!`eDÀ!(D¥aŠH ä$Ñ!!áFD|Ä„Bˆ€ˆ”L·!¨$"JdÂâ:$2ô °ÁBÎeˆ(€B‘A"fhDDBÆrˆF€àØ-€`$QD R!@`!GM‚‚†’ŠaA„!+ˆ«CX$@BHHAAP„!!¡ß‚€8ˆðB„%Ä€@‚0„"†B"‚%t„!!‚AA$¬A"%‰)(„H@J Dd_"'/aRB!+A·.C(FB2$6% $r)B„ÒB”""%&f_#34$Ka±66.B$2)ó"tne¤D…±hö.QNb(ªÆ"ªä˜ä†4¡|4!nå'’ND/¸bº(lDBJ²Kø(¤#öâô['0A!#Q!)òa‚?E¨‚-„*ލ‚/[¸*1$E¢f¢8ô¤AŽBŠôÁ¸æ(ØR†82)ª!ˆZÒC8FKNBÊu$ºAúbŽD%”"£‚!é SH”$‚pH6$ÆjˆB`DŠ=qB,ÄD$%2$ô!A$G!RrA8L@~D)TA#1A#v¡D–3EŠ5ŽG2.1ÎD'HNÄ•R©éAÑš/8Cj,C8Œ@’!Ö…ÂJEˆÔ…’DEé)#TH_ôIò7RK1owñT?!¥1O³5·³õÁå.6k#+Hþ±FO!{ôáçZ¶t¶d¾âöâäKæO7÷tW/\ìì4÷er·òçWïc²·³²òqôgö÷qkÿ??çFöea_¶ò÷âtO—þdãOvôÚM^Øâ_7÷¯q«nVîbò«$+*nèNj;lNþëc¶ôeendïNöêhOÆúdæ&öÊHM‰Nâ."ï.=Är?#÷'7/%ñR!õ#7o'ó¶d?Ròb¢ºó¥4/Söcb:ûô¡KþOS¦âjöäroO÷rcnã_VþÁQ?%öEÂGþõa_÷òu?&ª2OOò¢u/7î·õ÷vó_FæþbaO>ÿ÷e?&ÿqê_ƶÉõSÒµýq|ÛoÿNöâe?&êBâŽò¢a¿¶þaiŸ^öoç_FöemÛdÏn¾ÆöbîOæþdhËL/$ì¤ìÆöìdï^Eñt5?C÷3võR;qR?Wïvúæ!wM/këbº¶óvµþ·K¿Uÿ6aOBâF¶ÄþtòOlöâå/wÿUÒÎR+©/'þa¶~voõ÷´/këc³ö÷öô/ÿQÖO3»WôddNdOûUòOg÷Ú¼/îÞ´øXR¯ûòÚ~¶v´çöLj/jj"?²âþª£ßæþdë¯FöLd†ödìfþh"ïÎþâêO¤üHB¯ŒüâênW¢ótw&÷B/5õabC÷1·O/ó¶4/Jû2¦O*÷·µ/w÷ñôKûTAKbOFæFôf¢O"ù—U?/ë!ì4üÓQ?.ÿDÆcû•ÓMó²4/cû”Ó_ó“T?wëC÷uaKfWV®t7ýôóÿ_õ;ê´üÁÚ¿õ{ú_õÿx¦_8¾æò¢$/"ê8þãh«n¯äüdl›&ÏRöM-_ÊöN¢ÏjþÎDïæþDÊÎÊ«L¯äþdïËp2ÄA/CÒ46ä8·Eá(“,ôÁðá–#qa„xs„x2ÅÁ/CÒ<>aAŽsSä)ôÑ2A-ñá–#qa„øsˆ/CÁÁ¯CÒ|Ááëì8vMè(ôÁ*A¬ôáŠ1ÆxcŒx"„¼*’Ä¡èá|5õoQôauo1ôaU/1öeuoôåwO8ýç6O8ý¦6_<ýç&_<}Wôá÷WE®v_Dø²æEù²¦oQýò¦ýò†?þö¦üæ&_9ýæ&O8ý¶&_,ý÷'O(}׿kGåj÷E…/kÿW…/jûůîúѯîùáïîûÁïîò…Ãïnò„ï*òÅÊ¿¾ò„Ê·¬®î·„OêöIˆoêþKˆ/êšÊïîšÊ¯î˜êï®ÚüÅ?34AI2E&4CL8CL9CDØÄ„-ADMAˆmÁ#ñ„p„G(ð„"Cajàh”!DØÄ„!L†™†#ñ„p„Bx„Cø„"Ehz„އ!LX‚ÄØ”ˆ!™’ˆ)k(†Rˆ†Bè(R„¦FhH³Œèi$$”AiC1AA!#¤!B4F„$BHA#HI6„C21`C#bT(@…DÔ:„œ(MÁIˆ'„J©‚#RA`ˆ°É&V‚„p‰ñe¸àD’D€„FD@$*„D‚D‚e ”!@”$àBL‘*„Å$%œD,!ÊqAhB@ˆ)8%„ T€à¸=»ˆ@ €‚€@Æ@ Ž"@"€$EùQx""@E,BÂ$@âJáA!B&2""R!`"AÀHFAb€Ò#!L™Œ˜B$¢(€4($„4ALNˆ$`‚ü2ëD(B5B$$"!,hBT€€,$@B!1(DDH! %R ÄaIÁ„F $‚†@"€4,ÂAÄD‚bŒHM(Ÿ|ID !À$ !E€""AB$`(8#Dˆ Dƒ@¼Ó0A(I(-#FDB(APB@!BD(!)8R0Á`)(A0`"b„$$(ˆ%ADBD€@%ˆ†$HC2ÂR&!!¢h!H!˜ qB((EH'CC!ÂH`ˆB <ˆ`†Š €XŒ DX6D,"‚A„dh)"„$:ÐGÄBHBD64P(„A@AJƒbDD,€°ÞB1A €!BHCA†”#‚@!@(ŽP$ Â!"*2ˆ$`(À¡s$’`%&”B'"$”A&D‚@"±a„'!‚ØÁD!$RG Š,d… "B„mA.0$(„¢IÁ€ÈH%A¯‹ 3€ €" IA€(A!H$BB$”Jà(”( T&"HH ÈBC$BiH$Ì5Á!!d&%$"BA SD"%$$d¨MD¤$ABD‘B‡(B&Є„È‚DD$"l$H)D?E (N!3å!$$¢4,Á€¡BH(€‚‚@ 4#ÁAb$,Ã*±A!‚‘‚B"„¨B$¢B„4’HàˆJ¢"(,B&h’I¨B`BJB‘è²D!B€MA,I•$€„@"&H!AF’1E‚1$€b2fA„1!@ÂEHH‚0„ ˆ`JfAh2Jˆ :"‹H‚)ˆôËWÐ!„Ö"–D%2D%’B#ÁD H %H#„¢d ”!0A$'A‚HR@A´@Hb”*ˆBFRA%$ˆ$ˆH±˜"‰x…RU‰XDL~LDò„„0ÁˆEæT5û@R2Z$‚‚B,„!"&Á BDD´"!4D1AN…!„„&1*"¡(($$¨G$D@T…DBL„M$Ñ k H0A*!`FD $€FÂCFàB)*"*Aà(ÄB‚IÑ!B!“"$(H"HÀDˆ`(@HB(.à !BÀAD D4#"!AE,D`B!'Aš$U$ŒB`‚!1£øWjADpt2D AADÑ1Á%t'€’&AE¤ ‚p*4"1€’h (@AJ À!ó"4"Ð2T!I†,â$‘t†¥BDDðD'5!ri&X(à"a$AE1a%v!$´R8ÂaÜm!ÑÁ‚Ž"àŒè„H”FU'BGŽ%<Æ…¤H)ì’Šƒ˜B§+Y“G#”A+9u3´2t2$!¢A'ZIæ$(h_$qD1DBBÁU7C#[B#1!;!#ÒŽÁ[(M!]:M‚Œ!Â'8AFxb'BBR/–+­$hŽE‘L‚âdbHÌHˆOÄÈ„!t"ÂD#'Q"A)„DTA„bBD#åF!"6´µR!‚I¡AK"Y¢$Dl¡`"JÄA—A7H+!H)gˆŽbI¸È¬¨‚G\ZÄÐA¨„̈t*4!-AH)Ê$oq&´f÷fW?gôCB+To6õ7b;eEl16+!DöAVkGOäçT=dKF+g/E´$ô$3Ovq2ÄA<ñeo¼“âHâb±722e.v2V?5ñ!uOòD;…?[ô%iO2ûå—¯ÈÕ‘Ä#O4ÒŽ¼‚ôá…®¦¿H¸‚øáȪ¾‚zÃuÏö-n]$ODØNø®ìMíOhú䆯Šü„ÈŽ¢Olú޳Ñ!õcR_töBB/%õCRvöfBoEôSe/%#ÒEòe;U?6ôdAKWOT¦DjôDRoEöRR.S]$ôsSB6%]ú“¤?#!òd$/Söss*’%o5ó%E=!_,û¶Å?#å²÷¥¬›œ=CJ.,_”ò¯Å?JüÃ‚Ž¤nˆ/ü‹Ë˜úÉ¡ÿ|ú$EUýM%ßlúæÄoèü„îOÊ¸Ìø‚ÂŽÊ®¬ÏLúM…ovÿ‘$e×á4µSôQrTãvõv!Eò6l±vöve/QóAT[Öoö$dNdKFO&÷d6?Aöv]SN;A/!×aïx¹6rwô26.6rVôrW.vO$¿VòdD.dOþÅOfó;l/ãüÄZ‡$½H-KnÎî¦iúçˆ/bè*º‚¾âøêƒŸêþDë«$Ç‚öĨ,ò삯Šü¦êO¬üÈ‚¯ˆôƒÏKÞ³Ò2õVg?%µCõC/1ôsRD÷CwO&õv$/Aò26O"õW'gE÷adGKBODæFôvO"ñVe?%ÅS4±Rôs_tã~û¥’Ar2ô26O2÷7%/GòrWRòE!_òeEJúÖ³_&ñ^E¿¿þÛ»KôJjßrô©§_<ºæx¢ô"¢Ž£'‚»Î¯îü¤¬ßDòIeÏÆô¡ìïlúȦïNüÊÎMJŽŠ«D¯äþ¤Îo7'Cô2$MA#ÁacÑä87EŽ2A,ôÁðá–#qa„xs„x2ÅÁ/SÒ<>ä(7EŽ2A,õÁðá–3qa„xs„x2Äá¯C’ħèãÁaÁŽcׄŽ"A¬e¬DîXBÆLxcŒx"ÄįB’Ä¡èáü3Š5osôq5o1ôq/1öu5oöu7O8÷w6O8÷66_<÷w6_8÷wzwuäj÷e„/cwô2öoSôröoôrÖ/övöoöv6_8ÿ66O8õ66_,õw6O,õwîvwGîv_VøòöwW/gÿE¯ïÿA¯æüaïæþaïæö„ãïfò„ã¯"òÅ꿦òÄê·¶îî·†înŸ†øâî·†oî¾*ôêî©ôêΩöîêídÏ]L±’’4Q..3aB3qaôA&táBrò+!O(Ò$¡$MJÒ$3D.B.#aB#uaôAD+AL²”!kÁ;!O(•!MRFØ$á„Ò$sDhbFhr#dR'„Æ-A“’B‹")”()œ+ŽB‰ÂB„Bâ„Â"G„&f„²;DLH€…FD,R$I2!VàB;!„dAH#’$°4D€"DBTH%A‹!%ÁBA&"8"K(—$`&h„ŒHþAA˜ÈHðÎm ¸0D @±$9‚L"bt02HS“"$!4HLÂB""%„$$%SBŒD%Aq"±HAtRÁ2`B,¤â"!.HˆDBŒ ƒH””3NðÏ<$‚B!.$`!*B$@$B)F.DbbB,$LÄD!6„"‰%Aã#@„ÄD(„D„b…HðA›ƒD P"@(A€B$($D"!0H LP„(„ƒB€BÏVC$àB0" AB,1A&"#aB@D(`b@D€Б5")$@‚dBP!À@Q@A`B !" H‚(†!‚@@dˆ@$ð+R$@!¨`H 4$D$‚‚B"ÁBˆ4$F€Œˆ¨(D „P$! D²¨‚5“"!$@$"$A@ÄB@@’D B&R"B‚A@„((„AHD„(@@"}*F@ ÈA‚H`D A#€‚( BB†¢&†H!‚`(`( \€@#¢xcD$°O@Œ:­!@$!$@@@B_Þ$$Q@D@,2Î!@$¿Ó@@!@A„À£r!!@@D$Ï– $@„$@BÀ[@a!@@@@Ü5x@P!@@!$@!ð+L!@@ÀwcÿÌCQA(B#Á!$" „Ä6Ix2%„Dq!ÄaC°A8<rÁ°Aˆäb’„/SˆDaÂhÉ(J84¡¬„(A&–„-DˆpAHq(„’„ˆ!|F$ÃHA&à(“D6$ÈApa„$á(ÀÁ!ÀaA&à(dBŠÁA`ÆŠŽJÈa`B†R`ˆ`BŠ`(p8 H$rAÂA) ‚‚b(ÀA0A„ÀA†‚rÁÂÁ! €8Ž„h„€ä(8,"!HIXB†2DÀA0AD`(ˆ-ŒMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuhd-3.5.5/fpga/usrp1/rbf/rev4/std_4rx_0tx.rbf000077500000000000000000005454061224274632000206240ustar00rootroot00000000000000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjÖÿ@ XjÖÿ@ XjÖÿ@ XÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDUTDUUtuWwuWvuWwuWweVfeV65R"%Òãx×QQQQQQQQQQQQQQQQQQQQQQQQQQQQ(*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*b"%(*b"%R"%R"%R"%R"%$%’"*"(*¢"*¢"*¢"*¢"*â"ôBB#Œó88#ôBB/$ôBB/$ôBB/$ôBB/$ôBB#,ôBB/Dò$$CLò$$OBò$$OBöddOFöddOFò$$O2øƒƒ3Œó883ôCC?tôGGtôGG4ôCC?4ôCC3<ôCC?Dó44CLó44OCó44OC÷ttOG÷ttOGó44O3øƒƒ3Œò(("ôBB/dõVVoeõVVo%ôBB/$ôBB#,ôBB/Dó44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<Ïù‘‘iò&&cÌó<<ÏÃó<<ÏÓ÷}}ß×÷}}ßÇó<<Ï#ø‚‚#Œò((2ôCC?tõWWuõWW5ôCC?4ôCC3<ôCC?Äó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Œò((2üÃÃ?|ý××}ý××=üÃÃ?<üÃÃ3 <üÃÃ?Ìó<<ÃÌó<<ÏÃó<<ÏÓó==ßÓó==ßÃó<<Ï#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OSó55_Só55_Có44O#üÂÂ# Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ló44CLó44OCó44OS÷uu_W÷uu_Gó44O#ø‚‚#Ìò,,Ï2üÃÃ?<ýÓÓ?=ýÓÓ?=üÃÃ?<üÃÃ3 <üÃÃ?Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂöllÏÆöllÏÆò,,Ï2øƒƒ3Ló44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,Ã,öbb+!Ìò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,Ïø8:ã#üÂÂ/ìüÎÎïìüÎÎï,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâþîîïîþîîïÎò,,ÇLó44O#üÂÂ/¬üÊʯ¬üÊʯ,üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏâönnïæönnïÆò,,ÏøLñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Œò((ƒŒò((‚ò((¢ò**¯¢ò**¯‚ò((üÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏbôFFgÄÅ Ìò,,Ïâò..ïâò..ïÂò,,ÏüÁÁ ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3ÌñÏ!üÂÂ/,þââ/.þââ/.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3LñO!üÂÂ/¬þê꯮þêê¯.üÂÂ/,üÂÂ# ,üÂÂ/Ìò,,ÃÌò,,ÏÂò,,ÏÂú¬¬ÏÊú¬¬ÏÊò,,Ï2ôCC3Ìó<<Ï#üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ/,üÂÂ# ,üÂÂ'ÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñËÁʬÌʬÌʬÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAALñKÁÊìŒüÈÈŒüÈÈ‹ÌʬÌÊ, ÈÊlÌÅ ÄÅ\ÌÅÜÌøŒŒÏÈøŒŒÇÈÅÜôAAÌñÏüÁÁüÁÁüÁÁüÁÁüÁÁ üÁÁ Ì÷||ϧøŠŠ£æBÂA)tAà(9Däd(+ŽœB,€`(ˆ%°AÄA ¤D‚€¸á(ÁÑ©tÑŠ9`(Š”ÄADˆ#h(FÀaA%„#pAp!„ˆ'C’„!ÀaA&ˆ#pÁp!„ˆ'B(I2AhA'B€8¬Â(A€x"„rA€4"„!\taD,R$&„z4ä(S`(Jôa„!@á((ÍÁ!@a(&„z$ä(†ÂA dAn„$ŽˆÖÈÁ¡@qˆbB¨GBŽ"E$¸A&DD†‚تü<< ‚€Ë%‚€ ‚   € <9܈‚Ï ‚€ \77€ Œ€ûa ˆÀ;!‚ ðri‚ ˆ„L<€ˆˆ‚ˆˆ€/I€  €(ˆ€ÀÞà ‚  OI‚À23F FFˆ5‚hBA@$A&€R$"IP"AAHP‚˜Áˆ"LD!D„AF4ˆ„„0DŒ(¡Ðb‡ÿDÀ$‚DLA$,H$H@ä( D‚AD(@D@H! HA‚¬4<$A!HADÔDà(’4E$E†‚R$Fƒ'(K! -$@%$i˜Š E‚A‰ÄJDƒTHHPHDˆ!„!"¿E à8@A€AA( ‚D €(Ha|;ÏH€D$€$ !D@„D$E$@†"B&$„Fˆ OTEcH!BD„€D"À„„ ÄD €0$P2ã‚#)H$A$  DB%%)A"H‚€ AAABÀL"‚„%øˆDAH„À{ã’GBD†$D@D€8IŽ$I"H$A$AG"„"A…„A„ ‰8"0B„І Aä(IDAA€„D‚‚˜³„A"AD@‚H„x‚†RD"I8¤AE„ˆPD!&BȈ„„"ED DD¬À(„„…‚!ð[…€(D"D@4$ €"( BHÀW#L@A†`( „AAAEG(†‚@Dd*E$B$"„"(Ð(I(I„  B"!Oi &„8rˆc&$AAˆŽ"G(`(`(Eä(ˆÀ„!AI˜¢A„ (Ä… `H($„Pˆ0ˆB0H( B5DDT((AD"D*XB*&‚‚BDM$$IB2„$Aˆ!@"@$EB@„!ˆðxö¡@PEÄAI #B!D Bd@Db(„„ ÃA@Tˆ*‚(€"‚Àëƒ "HK!‚D8" !¨)(A„ "€€òºD€¨€ !€‚(" "((€8""„„(@$@ÂH$@¼£H€Ò„r%a(@”àDRDD]Ðd)’„'CECˆ!(E$X$†RDCXDLRD‚†dBM„+‚PˆPˆD$Ž&$,H\DPˆ„…(Bx((""ÒŠX‚"(Ï6 ‘Q""26!"C¡#(I(A8Ž2Ir„`B""C*H„èB(AA€B@HL\È…@ &@È(F‚"„@B7–H–!!!ô„Rá(b(AbEˆ!I‚8"ˆ-„)X"†ä(BÂ"†BBv$.‚ #‚8"À(€Ò„Â(€Â$I‚Â( "Bx(ЊHˆ ()ˆ{ö°A%±A¡!WFK’;vt”æ.ø¢²/=ôDVôeu8@ô$$ž²)ÁOj1"#ä(2&+Š/B’„Eöa„.&aGh.„.¦Ž&DOBê(²‚ø‚Ч*ƒÁ("ÏB¸"Ü,xåö&"%Jh‚.(ŒÒˆXˆ.¨Ž"%ˆl.+F¡Iè(2"/:D¡QTD¡qB‘‘?(vá64ž’/8~ctuô4M$Lr6ô„‚/AÛBú¦K*‚)z‚âH2¤iø†&Obø$‚M‚OHr¤v¤ò$†M†m$M$'BM‚+()r(¨"…H(&|ŒØfr,êJXd-&ç‚&x(Xˆ((§‚$¯ˆšj'"ªêˆ|JX"(*øÌuNQNq[EQ×T·Qb;+¹cû’"2zñd5UöQe*ø2$I‚24¾¦k¡-/(Ú$˜‚)ò‚¦M"¦r¤²ãÊ"#ú¦‚+"Ž"+¨OBø2$I‚º$è"ú‚¢'¨(E((ÉbjϪøã,-"GB"‚Â(‰¢‚+"((*誺²Bü‚¢Ï,<‚)ò‚¢ì)ÁÑNAáñAOö±CþÂ/Gû†6CãäS×D³²3$OBÂ$Ohb*Okš²oJØ&è(˜‚+ˆm¦¦âj¸¦ò†¦#ú¢„k¢ohº‚Ò""ò$$LÒdâ"¨"("…DM,¢ø$†¯ŠÚbr$4$.((((&¸(ÒˆÂ"‡¢"²Âºâ|BZ¨+ˆ)ø‚"Í /CÄA/CÆA+A¶Ô–DŽsWDŽ2A,ôÅB.9Fˆ3‡x2ÄÁ+#MÁ#ÁácÁaà87EŽ2ðÁ2A,n9†8sˆ'Cü2$ÍÁ£Áá£Ñ6ˆ86ÉŽ"A¬tÁ nrä7ÆŒø"„ȯB’Ì©ˆžŽü:µÕ/ô1U/ô1U/ö5qoQö±sO8ÿ³6O8ÿ²2_<ûst_<³qáj3u®6†/k»wø²¶/ü¢¦oü¢†/þ¦¢oþ¢&O8ÿ¢"O8ÿ¢&_,ûã"O({ãâj;c®6†/kºwø¢¦/“ô(¤/ô(Œ/ö,¤oö¨*O8öª*O8ö*"_¬òc(O(raø¨&†®&Ÿ†ø"¦¿Žø"æ+¯f¾‚üjŽ)þ.¢máß €dBAÄAD€8Ž€dB0Aˆ#á(@ˆlB„Pˆ„„ˆ!†@ˆdBÀ¿óË„ŽÀA€¤@ˆ!2E„#dABpEd(BAa`(@a†˜¢’„!D`(DP(†(„`ÈÀ"D‚„€R(ˆ#‚˜(ˆH5±…AÁA !ADXDBBLABD*@DD¤„€H˜„$"ˆ„€¡€âˆˆ-“ˆI4A"Y‚E2e(C„aD,Aä""$M‚D€„4$Dˆ!D„$„„†„F–ˆ@P""ÀB‰h"H¤ˆ…"HhÏ+@0†APB:DAF‚‚‚A$À‚ „B0D$‘BHAA!APH,AˆP‚L?Õ ±B!RT@dBdL!òA¤FIñDAT@rÂ"AR`A€A!$@ˆaPD HÁ#Dñ˜$F(ÁP(ED‰B„ŒˆBdˆÀˆ@HúŒ4 BAD(@"`BHB‚ ( (AŽ‚A(AJ €H„$A†@„@¥!H!"œ69HŽ„@$€¢„Ž!A b(ˆ†Bä"„h((†Dl(ˆ††D!&DH+B@‘H‚P$F† ‚ ù™k!BAŠÄDŽ‚a@DD!"1@$ˆAB‚AŒH@(DDXBA@(„AD@H„ÄX#G$LD„ M„!XDD(„B‚(6‚†Ð$a(BDD2„ „ÀBQBEˆàH@ˆB„H“H†B‚@A`(`("a(„& ˆ …„IA„$D"Àw“AD0$"C„HD!„DD!@¢DQBDD%„XDDBP1LH”@A%ì Dˆ‚‚?DH€DA #BD$!@$€A@(@È„„DLH€€ü>DDAHA"D"€J(ABACR#…AALaEQ€SBY80„DG¸ ˆˆŒ8ˆˆoî„1¡D4Q*#£AC"‘"*VA*‚‚RBH€$*K"$C‚ˆ"¤"D.!€‚‚@H(B !*‚¨"%((„*è‚f(‰B¢$,¤F(Ê“O$„HB@„A&„aB"@‘A"A ‚ 8A‚bC(B*(‘"@HÕˆ!%2H"ˆ"Ђ”ˆ"ˆ‰ïw AQŠÀD AL$àH(‚ <€$DAE„!)„‚‚ (H1!”@†Q‚ƒ(„DÈ$(ŒB„ ”(|6XHÀDH"Id!†Á"†„„bD(AHAP$ˆ))))eM"@‚R4LR1!ŒLÀD‚A(rDÁ( Q‚pˆˆX‚(‚ï ")èB!*B&D”DJ@ÀF¢ˆ!*H¢‚ED$ÄD(AHB‡„B $"CT"°‰X‰ˆPˆ$ˆ„$<330€((DDDD" L‚DPD`)@Ä((„@D„„ „¾!A" €€†A"ˆ(@(@B"D(„(H"Œ ¡D€"¤hdGHtIL!‚(¢¨€ˆ˜¢ˆa@ô„!0BB"B"5AHH˜E$„‰„Òˆ¡AM!•$( ƒJHZˆ (_}IÑE%„¡’ :4%$b #K!LD‚BÂ"N2R!@Tdˆ"A"&1$A*ÒC‚(€†2HF FALáAæD:4†¢±-!n’.á=Á9ä$ìdú$‚LØFr¤b*ÜVv¤5æ/Bü‡‚¢¤+BøB¢Jrbø*i‘i…ÈeKBϸԺvcº¢XÁ\v-ull†‡„((‡‚¨ø‹¨­j.Š‚ºˆtHÚ¨È!‚7GðQT±AóUAõA1\çö±Â/+ýc4ž":ô4Q.q¢!K‚/C’$(¶â+ú’c;Ü?ò…Ã'(+¨,²†âjø¢‚;&Ž¢.ƒo*ìröÂa,òe/æ¶Arã±¢¾‚þÈJŸòEAFñAhN%œöâƒ/²øá(-"&äô,aJÂh*¸*‚’(²¸£ò¢Nʯ(²Äô‚‚¬Ú"ÊGóÓAáTÕõANQ[%WGoK·oh{6ô4DG×E³âA£BOF‚‚b*ºöƒq/*øÂBÂ#ø‚†k('*G**ú‚¢/bèbø$â_húÇ'OT¾c´!òA!Jæô#ci·‚T‰—”F´EömˆŸ®´«Ê"#r$õ%ml(„2(.(‰Â)·²¢ºÂòêÈNŠ­‚§ˆ£øˆ*ow'Sô2!MA#ÁagFá87EŽ2ðÁ2Q,Aôá–#qa„xs„x2ÄÁ/CÒ<>ä87EŽ2ðÁ2A,n9Fˆ7Gˆ'CÁ¯CÂÁ£Ñ>ì86MŽ"A_¬tÁîraŒxcœ‚'B)ü*$išâa-]CÜQõA~UoäWõaOW÷aþsO8ÿò2O<ÿ²2_,¿só„2Oj7q®6†/k»sø²÷/üãç/üçÆ/þæ¢oQþ¢"O8ÿ¢"_8ÿ¢&_<ÿã"_<ãòå÷söáw†?¾søãç/ôií/ôiÅ/ömåoÑöéco¸þé*8þ($_¼öi(Ïlvaø¨&†èjòaˆ/Zúkˆ¯J¾"üêä)üê„-èëªiþxL B(CdBB0DÔH€xä((A&0ADDEAÄ#á8‘(Q&Å„ˆxAØTȈ%h( (¨(A¦H<Ó@„„(ˆ„„‘„%L‚K„ 0D$8$Î`(N–(a$ˆ!IXHqˆÆXFb¬EE‹HDŠD‰ˆ¨BH„„?ó Ž„AHBALÂ$À„@„$ˆCˆDD*±‚LFbI$.$„$D# @A¸‚(DX,ÌB8$DÂ0ˆ‰$Dˆ’A`ˆ@@‘!3ÈAI!$!ÂD(D€BbH(M$AD'F %%„’DAˆ@'HD!@°l&€ŠÈh…„BDB…ÄB„ŽB`¨ o‚ # C„h! „bA@„2ÀB$D!L„A°B3D$ ŽB$ˆbHHY„”!A„b<†(‚À$D„&ˆD¨ˆ($ˆd„ÉcÌIQD)B!¢BAED"’RoHD2dH@D$%!D%²D 'bL$&EdQ)ˆDAQ$0„SB8ƒE¨$"@"Ihô"PÄ0BÁ`˜BJDøMñ H"À!B0(8DA.$AL‚dBHÀ¢A„„("@€¨(€ Ž( ¨@L„‚­$Š\‚ŠÀ#›ÂA@¤C MÐ2B*1B "$D:H`HHC€(b¦‚!BaB&PQÀD†”hD"# ‚€ˆDd‚‰ð5Ø@A2B(â(4I¢ˆADL ÀD@I)¤G,”B(E‚+)dAK(A$LÄ”„ˆ‚H¡…$8D$ˆ’¢-H…DLT„AÁœ6ÅÈD0jò„jQB€¸D ¤BH"ŽA@±,"”Ä`J)0¤H(CLb*E‰‡LˆEŒ ˆ"!Eb„&D†!‰ˆÀˆD')-`H„8F`D!L!-@$A˜ÐA$AAaˆ!DHD@D"P”HHDD@ÈìSÅ„†ä+Q$MD&À$6$dcL$a(!)A’(ªAI"¤L$Ä’JÔ(è-¬ (#Cˆr$:Dd‹D„ œD$„J%XQŒ$( DAâ (A „!JA2H $Aޤ(D!D!@˜$„D‚A!êˆ<>-)FÁCôM4B#$D€Â,%&ˆ$QD"BAM†@ŒÓ,Áˆƒ1%XB‚B…B'ÂÄDˆ„„¡£JñÓàA’A„$c¡B!€(A`BAF"2$ "€Ä$!(H*$rKB H!ÈàB(A(AŒ$F‡¢PBKB€HEâò1÷A@%Q$a,‘&(AF`DB€D ˆ„‘3TBJD„ˆ AA"¨(i$SH4ˆpH4BL!…ðoz ”F$`dDð2FHD€x€„‚!‚"@D A€‘&QŒ"D$ƒBÈ…èB„AbˆŒ@Ä(`‚3ƒ!kŠB@$@!dB&"&¢A ÁDIa‚(@Q!!&ä"ˆ2‡BŒ ˆA(`‚"@,¢‚­BH!@ò¶Q$@"!H@C€R%2DB BD##A€dA)r!E€qAX"(E˜ˆ@@˜¬0ˆ„„A)Tˆ#!—4Âó  )‚BÐ$$#@(H€ @È8„€‚Œ"$$@BÀDH‰òBiÀ"€‚@#2"((À"À†À‚""((` ( ˆ$‚„Ä"*hh, $ÀcA#R\)RE’AeBM"IBD!„!#W,t"$€G(kXo(±„¡45,òADD ‚è#XQŒh‚,¸’„ŒÒhˆ£$¸Š2„$‹(ÕdH„D§Â‰(fÄ0"H$($gÍà4ƒáh$0"6126ÆAÔB“BM!hMBIIÅ2àJ*!#b"DDD(EÂ"(AAN8†ØˆäˆA(8(&d‚&BÀD‰ŒÖ„Ф'ˆN(„B#T¬Fè¶'RSH 1ˆQ!,Ô!!B'"D`B$.DDH€6HKAH(!(B+a*xt!:ÈD…µDAP¤‚I"„r„†xhFHbÆÄ*ÈFD!(H…X„OŸ ?Tá"±#”Bì$fRw"#Rq-O"ñ6"D74Ko"öC'N„°$ÖbóF7to"±4ôAB8GGKƒo'âDô‚[šºê\”SO"õ6cCDô%¡/(s“×Q´äù|‚!õ™‹1BKŠÿò‰…Aw"KªÔÌIOôä)Ž(LÄDO†ú‚$/ÈäˆtærlVŠH$rnv,4=$O&å)ôFBN$w2eó5"1&W$/qç6qwòdBa=$D¢GMRf/!â'õ&dE1ZÅ$bK…Þ6+G"kˆOIûaSC2fWu?Q’¡"M–/i²þ¸OòÖ½¹QÁ˜Ùr¬Ø¤ØØ²)è"x†È%Æß‚x­øÍÄd¨‡‚Ï$üˆnä.ˆK"g¤‹DA­,fòE4o!–R/4òDC!)’#='orñ&'ò6orñ$3çdòB&V¼6æDâDò$Fo&óf?qôQ1KT¤atN4ojµäùw¢ž4KKoòS4=vSø7!]%Lú"†o"ûT¤Õü“qß¹­ŸãÚÁò¤†ãúç®Lú$„Sþí¨DÎm.Äë&ODÆìOBüdªN$ÌÔ®vDj$¯„ÖböJ+ãÆå}q3öCBS5×rò#"ñ5&oaã"ñ&RsÖg÷R&/T¢F_BöD$NtnoV÷f'[UX¤Etêõ¤’oCú”6/B±$ñ4&_uÇ5N'sò$$\Òqó'“ZûY¬‹‡ï½qÑñ‘ÉØÙz¨q¯û¥*oHª‚Oø¤%ÏÜÞÈþ‰dG†ÏÆÖÈÖHöhˆïnòN¦¯&”J£tBòHJ-d×|p2ÄA/CÂA#ÁacÁaAŽsSä(ôÁ2A,n)qa„xs„x2ÄÁ/SÒ<>ä8wEâ(ôÁ2Q,Aòá–Fˆ7Gˆ'Cü:$íÁ#ÁáãÁaÁŽcSä(ôÁ"Q¬ðáŽ!ÆŒxcŒx"„ü*$È¡èál1Ì=÷oôcg/ôcG/ög'oö'7O8÷76_8÷66_,÷w6O,wwæ~wgän÷e„/gwôr÷SäWÿA~Ô/ötôoöôto8ÿö4O8ÿ¶4_,ÿu4,÷wjswõ¡6_Vø³¶Wø±õSüøïüø?‘þ¬­þ¬/_¸þ®.O8þ®$_¬þí,ß,~íín~müêf߯øâæÿÆøâæïBôjîéôjÎ-hïæÞ–öŸÏeB$12A-A!€8Ž@$€dB!2A!ˆ#á($„Pˆ,R„&TˆPŠrAÈA…ˆj(…HH,R„&FÈX³h8Tˆ!4‚‚H%Å$)A$‚DATA4!La!`bLŠ\%¥$|AðDl$Ñ£”Á’‰‡B!ET$†„LQ„„A&˜„†%€XñŸ¯DT$%5„. ’DDA¤ÀD Á"!DRDˆÀa(HiDC$È!A'„ÈbÃ(qˆADI˜‚EHHAT„Œ-„A†H0„-)ãσ&ÄC†¡„€4„bÐDB"R$D‚E‘$-B!B@"ÈA(A„"C!c8$æÄD(f”‚#²ˆè/8ˆ¤`G„0"`„`D†ÈA„!FŠH2HÐâi+APBB!HFDá#ÀA$"$ DMB,$H0‚aLa$IEHPA6D…"EŒ2„B`ˆ@ M)A„‚L$…€9.HC4CƒRD#4´J$b!D0"&$DHD!%"/!-$ˆ+gIÈ(a°‚„ÔF*AD$4BMÄÐL H£Aሄ8„H"BÉÔÒ„xÅÌI)„H-(ð=˜PBE22 „$1(†RA!I|#BABB(Al$ B1"$„Ȉ%ÈDàHˆAÂD€XŠHÀû#`$D"@D@ƒP$ ! „At!!0`HDÂ,ABq„‚DÁ`BHPApš(ô‰E‚bHHE4‚‚ DD&ˆð¾L°8„D!`l¢„¦!D‚B,,&$22O!ÂMB!ÈmA!AIAAHLDF„‘Ê!)˜JAˆA†AD¥˜#¢@Ø„DD$8äÊÑh:V@„!‚”Ir‚ " „# #“D!!&Ä‚P$€!@$ 4ƒ"ˆ‚h„Lä"‚gH RB$Mˆ&HD‚„Hˆ@ø“ß‚eA!H!D+D)"„B!Ai°BD¤PRHTPAGP@cE2‰AEE .A…HĈC„’„H„Àuc‚‚˜D!$,’PF$#Ô$¤EaO!%A”‚#DˆDP4H†TAHˆl£ †iÁ!‚À„0„¦DAƒDœÈ‰HøºyA<ˆtA`ba"€Á$H@#ÄB€"AˆI"!EЇA¤¨EB‚hDXHÀˆ,MÃAEsDÂB%&D#râB3%%„âDLHa-B$D%B"!L,4†VMD(Î$$EÕ(Q(‚“ØhHTˆˆM„$K("ÉX(DLñDŒ†(‡D†"(´!D’aA@!‚‚@4¤ ˆB€’ä"Ž‚K"0$€*( $HB2!€(ÒÂh‹$Œ€B†B(D&â$?ÇB&BD4A,a$ T$D$*`FÚÈAR"†$B`B,$B&‡b%ÁŒ¥(Ha( H‚@B,&̈†äH¨Êƒˆˆà¶ „ð„A#Ža-AIDˆ(ERaAx€EÑBR†EB±D€+ˆ…"Š„P‚Å IØ(G$A…BÌ""FÊó“%r"((ÀA)!AH!„M"Cˆ¥$(„…B0„@’,„Ò… ˆB£XŠ#¥ô¢A$$J$P$C1¢D#0D"À„BLA@ D¢Iâ‚'I"€ÄAÀ@Œ‰H2(‡ˆ¦DA$.DhE"ˆ„PˆÐ(>ØDCJI‚J$  B()A2!À€’(€"4Dƒ H@€„ÒY(À‚àB "D‚(I(€$B"D "!((ˆŒ’…8aA‘ jB€Æ"„H€ ¤„ ÂD£ÇD ‰R-4LÒFÑ$Ò$AàDÚ$x$GDc/BTA)¤A"IBòD¢,ˆÁB$d 4!0"†ÑZAGZ8…âr„XŽ)ˆŠˆ2„_„2&|BT¢*ˆ8jNŒ„‚„H£˜hIâ©MÓaW!’A1£0$=DbF!b(!ˆ"È&lFÀB dªhA>„-A&t>!I¢!I(IÁ2KA/qñ3/F´6¹2ãLì!1´k3FõURKoó2FEô$!&/QÙ#ôôÿFä¡1‹Ž¢§rÏø+*ŸxX&KŠK"\Ü”ü-Iÿ¶Â(DHO†ÚjòŠÆ)ôî‚ÇÆ¯(˜J¯,rh´&>Ò=!*é³õR!\s7ÑRñ“·_bù4‚-av_nhu×S¶EæBä(±Vÿd3áS²FõA_4õQ$KkYoeë*ñ4‚Iñw"uqò%gQ/U¦¤7M/Qó’fŸ3ù<:ßõÛ*—˜/ø².xŒÚÏz¡ò"‚SȤŸü(ˆÇ‚ÏdÔÊÆ¬£òÌJî¯Èæ¢ø®(露ÂÔ$ØÚrgÚìLó%=?÷?1Ñò1M£{á"ùw4Oiã#ñ2Ò?Ò5ÒqâFüweJ–dKNOk÷aoU±SóUS/%µR÷"^öO'ý$’{·6Ocõ$RoW÷6aó2…{']$$GR_#óÒ/ÞWÍ#ߥMã¸òƒ"ŸØú&ƒÿ"øg®lú&†&øe,ŸÜÖûæÂ´lâDæÈö¬No.òÂ&¯l´†tÆzÂòêj)öB6£ÓqöCq/6õSqÑrñ'2ñµ–Cû–2/"á#ñqehþCgTvgñ!dODâdï&éwóVq?côSR+Q/EõR6¾O+ñ¶4oiò2O3ñvqouÓcóe[B_VÒAÒqò1_Sû^·—õR?xŠÙkØSz¨w¦ú¬*ohr¢r¦ò&¨_LÖÈÖhvnødlMlLî¦øn¤oäúbÊ­Ê+„/$øJN-n¯b 'Cô24´Áak6„ŽsCä(ôÁ2CøÁðá#qaÄ„7Gˆ'C\ü2$<>6„ŽsSä(ôÁ2A,nFˆ7Gˆ'Cü:$mÁ«-áë¶Œè8¶Åè(’„,’„¬$7îpa„øcŒˆ'JȯJ˜Ì+ˆèá‰Òs÷6A/v÷A/vñao2óa/ró„÷/bûÄ÷/"óÅr?gòÅ÷7f~wgän·eøòæsÿvçoôsçoôsÇ/öwæoövvO8ÿf¶O<ÿ&6_<óg6_8ógzwgô¡7_Fø3§wG?{ÿ¶MŸwÿAŸ~øißúúaßrò„ãßbò„ãÏbúÅëÆúÅãׯîf÷Æîf_ÆøêäwÆ/Nþ¦D¯NžF¯NÜ‚önìiö:± B8A&„Ä„pAÄAˆIDÄAÀÁ#ñ„R°„$$„2D&$„(„ÄA€8Ž À2ÅhjŠˆ„ÈAˆ@Rˆˆ¡†‚ ŠR„¦DØ!>IdBDB‚B†bMFF4‚L‘¢0'!ADEO"!„!Ø!È‚HB#AtD±F¦ABID’DMˆ$ÑD£áØBbHL8(¢…AGc4ˆC‚LòG°ÄHHBL5QD@ŽA¢&ÀDC†Š DBD&‚$€$0ˆ„Â%(HȦaŽ( ˆ„&„)VŒ A†À?7Ì„"á&Œ4GF$ˆ#1‚N! æB$ˆrT$b$b*Ä‚,‚!",8åEã"L†‚qB²”’,(aˆX,ÂH†G"ˆÂ'‚.A/HDÈd`¨B,Ò„j$H‰T‚(iø6 "…ˆQ!G)"(¨D’$,áH”"@A¤"CaB`Ð!„¸d8D+‚0"ð"DpÂDÁ" 4$,"èEBV‚‚$È"%4HC"ˆ˜H#Ò„C„‹„¬„ˆF¸%;¬X<„…áAb+.#T4N„–I¡‚g"È)¢B(S*IG"‚4!¢"/B…¸"h"I”#MC0!)‚”D)e"ôˆ')ˆŠ.„ tH$ ‚-¢‚#dJÌ"D$¼B‚Ø&¸Iª¤cö2l$‚‚$ " à(2AALäC‚TA$„>BL,Ä"àJ˜B†”BB "È! !,D #Èb@l Fˆ4)id$ph —†ŠPˆŽ¿3Œ D&,„2‚PH Ž!D$pF4aÀB(D(DD†D!Hq¢‚1$‚AHGB#„øAD°A„B•È"(Ã2ÂFH¢‚@„ÈHòŒ@db-TF‚DEÄ5,TCFRBCqD.BI!"GAN”&2!)D'A`a‚N&TB)I8D+A/DviŒ*¨RÂCxIA'H`DB‡ˆAAa”DËŠŒˆˆX†E2ì-„+BMBH@±F"È5@MR$ ²BhD`B€²&(4B@´"dB`H¤„,"(2D"PBR‡Bˆ#!È$!f¸HG"‚DB‚„J‚ÄCKH¨ H„H&ñ†ñVB‚T$dLCDJX!D6b%$a€a&$EbA%D0ÄcƒtHDxÁVAH‚DD"ÌD„A!ĨA‚ˆ…Ì›ƒ…lH)AÂAP$$Ba$p„H)²D’h0E ”0J’ÂHà‘Â`H+(a(BMD.’H"Kå‚K“bD„&‚Eb†AK‚!BÎ,!H.HˆH-Lî‚P!a$(J$=B$„8"(`D’X†# $†„:€MA"I"@¬‰$LŠ’„E¢B…)ÃŒDD ,<8ˆHT,T/D"J”AAmÁ)F!”"#t!´A2Á†hMDˆÈŒ"JØ$¸$¸"\Aˆ!"m$À¡0‚AÓbƒ1‹£a(AFÌ"ljHÌÙ"hj@ExB(ÒD+„HˆMA»Ü@„’„,&"ATŽˆ …1 ƒ,b (¡ „Ê„$!(%‚Dˆ@bHJÈ‚0(*Èås-!AHO(‚)¤$Š!È‚B $Ñe!!B@R$Cj"’`*¦D"RAÈ*"1!”ÂAA‰(È¡”$A$Ap(&˜B`B%D€èeAJ("$+„"°#ˆ¨B!I–"D(AHÒ†ä$ˆ ‚¡JaB H"AA"„(@ˆH(FˆxH)…Á(A‡,„B`ˆDV5:\DeÄeH($($BB"0!Fr$ñB"H2‰(’„‚h*J"’$`A-„ˆJBÒˆIÂ$!AŠR$‚ ((W(€˜BD€HØH˜Èˆô´»Ð!8¤`$B`Dˆ!@HM$JrÁc(`(€„¡AL4% eA(Æ¨Š”H1ˆ5XB)H”‚!DE±HDD†A`(…RŽ­sŠAH% BC$BBHB@„B„pˆ›5€,@ D$ H@%€„$$ $J@@ˆ„ÀBŒ9Ô9Ä$€-AmÁMD†â(Ä"†¢!Âx!d,cÒ´ .D`h˜)”$!Cä(EòER‚HF#8B5JÔ„i(R´Ç¸B$à,BòDJÌlBˆ…ØŠÒÚø"„-ˆA!Ir]"p$ r!&$.A**”"MAI((N"C¨!$šd(Hª¤˜*˜B.´¨r L´F@!“4"p­è‡$q‚"($TRHˆ"-„ÉBÈHA€B8ÈFh¤‡ˆPˆNHÜ7!(Ôd)D!b‚†Bâ$b$"‚NxDQoØTBRO$¡ACÂBE"+z%‚1‘táÄÄ&Ä+‚H/"È'‚ƒŒrŒ:„O$qŒHÙ‚DJäÂHDDH‹ˆ-ˆïÏNñB!"ÔAòF²§–Æ'î!Ž"ò¡cÎ#šG/jb_TòEÅþ¢ÜCö„vNÑ'?ô³/GŸ†k®džKª+n'W,O?¹wù22DÆ![ľ¦?Aß#öŒBo6ìùJÁ(ú"Go>úMj¿\´‚²$Ú$rÂõƒHß’x¥q"êÄf‚O‚ø¢¦&n$ëªMŬþHJ«ÌNäÏB<-%FæB–G5á$äBÖEÒûbC,Ž2º"tÁã,¢l}/T²DîöÁW}´+$_<âW¾VÙø…CGI¿VÞbb.M"K†oXö¡RaIþ‡´7CB(ò…2=´?eráûL¯í˜–«ˆ/zòNêo¢ø!LŒcø'‚.E“¸ÏÒ.òŽìÆBÔŠ²„ÒêØHøÈhï"Ԥ؈ôÈH¯fÒ¬üöu$=b?ôF!]B=B=Eg4&öòž¢+®"Žâ?(º#táã~òæ…CÖôeeªô¥óo<ùvÅ;1_<ýBÒ+//åkóĆO.¸'èkq¤ò¦‚oSýówŽg?Gõ6!%Ž%_LóÔ“/~úHç5òÅI(x¡óã"?üö¦ÿ.~eú‚$oJø¦âMk¿XÒ{êJúnh.$,gJoˆú"æÆO,²ÆüŠ‚‚Îb«jó‘á}D?ròFCD9tcõbC*ö‘3+´/+ø¢"Žbè?:üb‡nÅFBòdAvWn~å/ýö9¤+Ñ/Dù²FîRO)÷´oiò‚6O9û¡o|çáWÚödEOVävô‘sOSü&ÏŸ®ýß‹Á;Ì?dþ+ϯöÆ(í†Ojº¢ò†!oöøì†/Êø(nç„OBr,ìBò¨(ïhü,ÎNŠ/ŒÔ¢ÈŠ.®¯Øô?ì02t2Ô46ä8ä(ôÁ2A,n9FLøsEˆ'Cü2D¼ä>NaIä<—%Ž2IòÁ2IòÁBn!qa¤¤7G*x2Äá¯CÔ<-áë)üˆcYâ(ôÁ"ExÁ îxBxä7Æ*x"„ü"$IŠÆöcÒsþa?vöAvôa6öa?>÷„ó?/ó„ó/+òÅó?.òÅó7n~gôñ6[†/{¿wø¶÷oü·÷oü³—/þ÷¶oþö6O8ýö6O8ý¶6_<ý÷v_<ý÷6~ýwdõE¤?þWÄ?~þVåŸþÿÉŸöüRaß|þÖaßüöäãÿìò„ãïhòåëÿìö¥£ÿîâjüo,¦öm¬/jøoŒ/jü&ä¯îœÆ¯nœâïlúfÁ(A€dB 1Aˆ#ñ„ÔI8CäB!„!æ$¢A"È+!ŽR(HN(pHˆ2L&f„†b„„ˆTˆˆj(……€dBFȉR,¸D’A†á(rÑ$8!!’#4ÂL1‚tF\d".dð‚@BÁ&ŠdHÑbD"ˆS6‚BqbYd"I„x'hE˜!…ÄX%%H@<‚R„0DƒVO‚ÈI”‰¤DCŸ·B…„D"äQ˜!€¡ˆÀ„K(1D”$àBäAŠ‚$h) †„BbJ‚„X‚´‚/„!$ƒX¡!B(‹„h(Nå£ÊIÑdÈ%!ÆÃD$ˆ,‚8l¡BC†DRCd!ŠD¢$IÄ"$L$A)âDˆ”"BHв.Ô$(ÄŒˆjQ-"Ì(r„‡$Šr…ØA(DÒX*H|‚ÀÈ-F†ñN$FF%Ø!„Œ"DABd*AN2-„’DA*ÄK'(B#8A!BG)bDD¢!K"HHTBL¤"D$<HB"‹B‚ ‚!"H‡a@BAHÃaDŽ‚%Ah$ŽïÓ‘A'14$".Gp‡á$hJ0’[H'BBl!$$aAqB²Dœ‚#ôDF²AÔDh"$E”Âô†D)$BJhh,R„­‚B8j0¥„¢Lx¢¢JÍ‚'(“„ØIĤ9Ø„'(PHÎD¿ dG „$@,ÄEäBR+&ŠB(!Š,D "`&A(AJ‚0!È¡H€:2B,DF‚AD ”D!'D‚„ŽÂ%Ès“1$%A4"@+L(”(0¤ !"0$Bˆ!E4"p‘cI‘AGHPb$"`(8 TDHX&!ˆE“H'Hˆ&D#C2‹‚!…¤J@q}*,ld‡”'TiH”„"CxAÄE.Ro¸b‘DF¤U²4!ŽBÀÁ#ÄAJÁdÊQ4f’¢FXRޤ˜CÄ%AËBK˜G‚%Áˆ4ˆiôˆL„Ä‚$¤L‡çˆtD-DLT„†t‚Ȉ!Fä(?Ì@¢4"aA#N2DI"*ѲDÔA‰£BDh,ÒAd:@¢D%‘D+I(Crb*$J2„LF„dBˆba.ˆF…ÄBƒL”ÂA0‚$h0¨sdD@¬D-bOƒ˜Â-‚BoÑHPA,”B‚Ia(DàDQ4+,BDBAJˆH‘„$HK„HIABt‚$4ƒL20%@dL8$ƒ¡À†E)”‚ÄP„d†HDH0„…‚…(h„MLƒ&!Bb$G°&CÓ"Ba!j\(EH†’1MA‚o!4ÆYÂCA‚8LÂx$¢FQˆA$bÌ(T‚¡Jb$ÅÄ‚ˆ"e`Ò0¢œB$ô„*(„É G($Š„8.™€‚4HDH6C™A`(ÀAC”$$‚$H’$”2‚!D‚R $0‚€ xHH°*C ˆƒ”$!@Ô‚¡„Dü1ˆ%â‚J¤DÐD‚ÑB²"‘¤LÕ2„9XB0DBÂ'(.’M$4•Ä!=‚&Ä!‚(%ñTaŠ6¡dBX!'Jh†º„T-È&œBHG¨Š2¢M,„(ú"Hƒ²HfŠe8¢LĆ…¢H%(eDPC!h!B A"A‚$"L4€D1D,4"¢AÂ@B‚!(„DD$DAD0HŠÆŸCM6!Cq‚‚²„ŽBA‚BQR Ñ(kHT$(‚G$bB ˆ$5D¸!€X„„¨k¤E’"-(!!¤&!"+„&#JB)ò9¢€A‚!„*-D"((„E`DÂ&F²Aˆ+ÂD-! B )(¨ˆ…ü(Å‚€ AÀ¨Iœ"C gŠˆN¨,(ظ4¹H.DÁA(HTXD@‚TD†!bD.ˆcÈ&¤ˆTHŠFQ! X$@4A"N„ †˜%d„h%AÇBPH‚FDŽF"€LÂBðžª$°ARDf$F’Câ)8.ÁA/¼B¡(AhàXb(¡¢F¦‚¤Â!"!ÈAР$¬(ã4‚JRˆBÄ ‚d-h†è(Ä!‰DŠƒ¨„.¦£@„DB@!ˆÀ# D„(ˆH! B„@€d(ð+ @D@@‚B@DP$4  EH@-·Ã\BGmDEA”"('H†$¨,cHpÄä"q…DB$:j˜1Ho¬.E˜Bi˜BŽCG(,W$(AHDF&¤’L9"1.ˆŒDX$„Í(Žˆ(‚Bv¨’ˆGÈt#„àŒXB"?( )舜D‰´‚ø­â€‘4$J¡„à$12+E€²²ˆ¢!(HVlB¤(GBFJ!RA"`R!#¢B)œB( Á]a4ǘBB‡„bÆlb!‡J%`(((ŠÔ˜Äj(I’ÂBI*VŠ.ˆnÃÉA)D!q"!Ñô!EÑDÒ%bK(_Db$D9AAR~-P‚ÊAO((C¨hC(8…B&‚!H#ÁD*Ôbñ‚‰È‚‚€+_Ì2+©_2üD3.3{Á#iV.%]Ä/,qöõæ¥]RB´’äøR_B¶†ôÂn§M"A+ˆVüD#O²‡4âfõA!_|Ñò¢U|Ú¬ö>HŽR¯¬ø‚*/j¶Œ|Êø(Æ+(M"-"nì§,O†ºŽtHviíÄ’Ì'Dæöb¤O(ô&ÁŽ‚“ôŠ"ïBþŒöƒZSomŸdYô!O%¡B]dYö7N²,ú¡$oC÷a·N„KìsqråD¨dry´uVõt–Š6—?óV’¾d;(òfE$È¢K,obÔ1ê$º„ö‡‡'RnÄa_v}¢tsòB«ßè7Œ/¡øÊʯêô†(MjOJøJ*K¨sö$f£ò̪íjOšx#|h؈v¬âBøÂ‚bohÞŒt‚úJȮƌöO¯4Cô3ao5Ñ%õB?ôr_"ß1ÿ„r;>’,û§?Iþs“în¥{aVOVè6Þeÿ·Fôö¡_$½ƒôÓQ/\øaæ]âo(ò¦„.¦M£_(ö‡ÄvìvâV¶ô!EVìRß4ý§EîöȺO¤Ý"ü‚Ê'&îìoˆ–îwŒ'Bo"ò$Èï*äÆ|êônä}IOÆdFOnö„bObìnä&ú„JŠôŠJvèú6ÞvCtWõRST;A7Q/wõe¶Ot»óò²’/bû$öºö—×Ová^¾Wö%EfáVóEö_Jõ—d?yûRÓ(µ“õ³ƒ/vü!æ]£K,ojø"¦M¢kjzøb‡æµGö%$OVôa&_%úõf/úô‰ˆëů)ô‚¯døâLbòÄ¢Ïæò¤†Lò$"mlÏèzjîþºAö,,‡FFºBþ¦Ä-d+¨ï„ôJ­ÈÊøbDŸ'Ct2ÄA#Áa#ÁaAŽsSä(ôÁ2CòÁðá–#qaÄ„7Gˆ'C\ü2$<>ä8ä(ôÁ2A,nFˆ?W¤„'CÁ§CmÁ£Ñ>žì8vLâ(ôÁ*ErÁJráxaŒxcœ‚/B˜Â¯BšÄ¡)ÆõCÑr÷2Aw÷A?wõaw÷e?÷„ó?/ó„ó/ióÅÓ?oóÅ×?oñá÷wG~·eøó÷{‡?ÿ6Á?ÿÁ?üá~þá~ö„ónò„óojòÅónòÅówn~gôá6_Fø²÷Gù¢æSüéþo‘ýhÎ/öìæo‘öläo¸þn¬O8ÞNòÇJÿÆúÌÂÿÆøèç÷Öîf_ÆøâæwÎîæoBôèæmBîü‚hÏîþ†jŸM!(A&D@ÔÄ$A&€8O(A(A&ÄA€8ŽU@È2A.† ˆ%ˆrAØ”¨!‚È!†††Bè(R„¦XªI$„MG„!à„xCd'B ˆME‚8m‰B4A"ŒG(F,¨Ä 8foÜ €Â $Bh˜AA#JÀL2A"A$€bDÛ!S“E1ÔU9B‚r„Á$gLÒCjJòB%F£¤!Š„T"\ÈÂ!ô„BB’ÎJá"aJfB7H&4Dˆ.Ä-ÁܬAœœDŒö„¢ˆ‚(Ž‚¤,ˆS>%_D8"0d§FIœˆ­Hˆxˆò¾49ewÖ2ñQ/%óaOñ·áO$™Gb/+ºdß7¥bø!6\´!öD¾4?y´±þF'V–²‘üB3GTo+²—ìRÍ2K+©VÞ%µ%õö!ž6DDOþÁ2?Iô‘ÄO&s^=’Ÿ‰üسGÖëŠ;bH\$O*¸&òÅÍ]BJüf-¯¨’EDÚåòŽALüì†gF£˜Ê/,j¦ÇêÃÆgCò77k$Ôñ1OFqÅöTe?"éBùÆ$OsòcÔ|û#’Oö2D%"_4ÿ£Df?Bé8rÔñRByiz/òôA/aöa²M‚K*oqá&Ý!z¤³ÔüdâôDÖ/I²SÖ»{¤yÌñRØ(ù˜-/øÎH}ç**xÄÜrúìFŸ¢x¬ñJÄýd)G|ÔN¾‹~&þ¬,K„¯¬\$/hòd‚ÿ®IóQ2d•Qw%ñRra[´?¹ö±óš¶-²OOñó‡jßSßVÿV!Ne\ÞDÿG³Þ5?}ö‘ÆO4éñóCKüb—Ovù´{©>–MòO>ñö…wßa÷5FoòE%Dþ!ÅO2ÿÖ5/Ýö—úN›/”ùÛq?ÈöȧO6ø$ÂoÆÚbêrød‡¯VúAç]î»ÂÏòDaaOÚôì#k¤ïLô†fG,N‚/,ö‚hÏL3æ\ûF1ovõAVòBäQ÷dÖ.×jò”¶:ér»‡òÔ÷?käk4q_Fô%Dr´cyäwö±ôýÑ7<'Þò?QÿA²_$ÿ§$oiù"¶M’oòÖö=ô?Xvcñddddóe“O~rú½ûüÓ—$”(+ˆCÂ"“äh*r(œR%‚Å(lh’èMXÓ–Á(IEJ!qB4+Jad‚¤!J!âD™( äB„‘ˆÂ"9$:!9Ѥ˜8,"H"‚´”’"f"‹”=l0™Ê/„‘ˆ+ÂAŒØ‚¦&†Â‚E&¼((Õ†*Ø„:Dê‚”ˆ#â´›…´A1a,1HxAB 3„8$2Š)´Ɇ„(Ô4òHQ*á¨FæŠÞA¤!AŠ MC²ÈHå"“DШ"Ó‘!§HFè(Ø!„8L*˜=¸¤ˆ‚šH„D,ÂD™èH“ŠLsA ( J)´$2îŒ"$g!È„býE%ôBB¤A#²˜RÀ„Ñ„„Ää‹Á¼¸‘%<5ØrþÒùA–Ž8,ª‚d‚ƒè1Xh"O”2¤»•Èò˜BÛ(-ʈšˆB˜˜ˆöŒ.‚*È"à"È…LM”HŒ’…ÉhƒnL‹!'$‹=ÆxÙC’!pCŒ5!‘ˆ (¡,A, &H(E£$‚)À$ D#¡$A.&$€”! ³¤(C„LDAʘD‡„)䢂$‹&EB¤ˆ„Š"brS_!A%RH"†H“H€Ba$k#$2°cBD¾B‰8BP°‘i!`BB&DhhŒ1$N(!Ò‚v$$T`D‰ (DH¢JD´‚F©‚Š#A¤C`4™Ø <èD<ÅS"AvæRîAT„+Š.†;?‚‹Ù†˜A"DFø$KBa-ò’EAG.L²‰¶„HÄ$?L1/è$òFbHLøDƒ/D»ô‰„,Jê!T˜, *ŸDÖÆîÃøkvÙøò7G‰%Øì~ñ„h'Ï¿ômŽO"øá,-A]ÎÝÂæó„ȽdefÑåüÈ$­$æâOˆôBÈ(èLö&ˆWÓ4o•×—óKr×1¯µñB¦õ4‹Oõþ2ž?Fù6‚OaèåÛÒý7«ß%þO…ÑÔ„òmCÏIò™/oóÇ9»<‡½ÖùÒÛ¤ï¾øv‰?JõóˆoCèCèÛô²ÉÓþ?D¿þm„ÒMü)ãÏòì¼óåŸ(ø›ÎI†ùéÒßòëôü¢&?Œø$†lzâþ‚É]¯Ÿdvmö>iÜòÉåbølê/ìö‚,¯lÞ¬øBŠ/ŒòË!Ì:I|ñ&YoÆñK^Y­Q¹ócßò˜FŸMó†2Gi–÷Òuoªuý²½ñMMÜtMñ-£ßâèóý&Ùoâý߱ݲý³ê½AÝ«^þŸh󄲸IûÄ7O¬ûI’ŸnsmiÖÛd—Bÿ”øâmo™ô²¼ÿxŠé˜ôÁ¬ÿþZ«O¢üÍ$o*ø"¢MƒO\ô†Ê¿Dú‹%¿–ô$lßTÒIölŠOÊò¦HoŽØ.üÈH/ˆÜâÜjþu^ð2D.A¯CÔ´Äië!œ6ŒŽ{Ë(Ž2A¬³ÄòÁÂî!ua¬„7Çø2D.Á¯CÈÁ£Ááï!ÂaÅâ8×Íâ(ÓDòÅ:ODòÁN$î ÆjxsÜBx2äR~:ÄÁ«A>O–LŽsÝ(Ž2IòÅ:CôÅðá#ua¬„7Lj'CȯC’Ä£¾žÈSÝsóE¿÷óA¿÷ñiÿ÷óVIÿ÷óäÛÿçó„ÓïaûÅÛÿçó…Ûÿåó¡ÿ÷ÅêõM¬/ûûß,/ûûžE¿ÿû^A¿ßøÚaßþúÞAßÞòüÓ¿Ïò–ׯKòÕÛŸÏò—ß¿ò³ÿÿ…ö¥ß„ø·ïÿ…þ¡¿ï5ýé¿ï1ý©¯þí¿ï7üé/Ïzýë.Oxýª&_¼ýË._¸ýëNúoü¡~߯ø²îÿÇü¢®ïGüê®ëůæ¸Zöî®ëeÏò ÊB(G„&d„*h„*†ÈA‰ˆ¤¢H€¼â(…bJ"(¤(CdJ#d*#%2ÆA‡B+A.$kA(I¼ò„R(MBJÒ$,3D&$äb!dBpaÌA‡BHDH€<ŽR€$B(CdBB85é9Ĉt‚‰TŒöBL2ˆ,‚ØB£•„1…ÂD"Aj˜M'˜ă-HÄt¨‘´„u²Ä„Ÿ&!ìD’ˆ²Fd˜! JøD$(Å¢(lˆ[$DEiD"Fሒ‚B9xC†øLq ˆB‡”$$Œd³Bc¢„‡"¨A’Q…%hQ`B"D[J«”…á-È\˜äÄÄ¢&$Ñ!òŒ/aë¦y+Nòz]{4ñJ¡õ!Ïó_ê‹ôr”?Æû¤/#ø5œ?‚÷×­ï5úlÅ¿ÂöEißû|Fëöø¼õL‘ÿ­ô‘H?»ÿL1ߌ÷·O®”ϲ4ú&¦Âü3Ì_·ú\#ï|ÿl_”òL!Ï\õ‹Þ]ê]ë4ó‰ÚÈÔþÌߪõ·Ì/o鿏¶q¦õ§ŽÎ?ÜöŽaïü?(_”Ö²þô¿©o¥ûDúÍrïøRšNúv¯Ý6?=|‚õg¯ô[X=X?´ñZaߣô±+ó„2GKO+ô2ö_¸÷Ø!Ï=óoLÂòL!Û¤ïÎô²þ}|úùZAŸ¡ÝƒýQ‰ö½L¾Ÿ¿F³¤{„äjò‚t¸÷lï?ñoLÒtlqlóßLÉü'ÈÞøÚA¿ÜÜ‘úúAÿÍö“-¯aû”"k(/HÞ&|…ûÎgç—ÆÂöH%e—Î/ëëæéôÚšNšÎÚïò9„p2ô"a§C46vŒâ8wÍî(s„öÁ:EöÁ$îƈ7Lj'Cü:„mÁ£ÁáëÖ,á8÷MŽ2EòÁ:O"òÁ¢îÆ*xsœ‚'C-Á§C/<¾Òì8÷L(Ž2A¬SD_¬Aôáž#qaŒxsx2ÄįC‚<èãA4ãÿïQôyï1ôy_¯1ö}ï1ö}}Ï8ÿ{O8ý¾"_¾ýË._¼}ëú¡ÿ÷†_ê÷mˆoûÿ‰oë¿>üúþëÁ¯ï½þþþïQþÏ¥$($À"A&,‚òAŒ-A„!Lˆ#á(††Ž"A¦&¡#„Ø”ˆ#¡¢#‚¸â(,B,dBà""paÈAƒDA„#ñ„P(A&œ?oÈ(ŒTŒ-LÚ‚´6hÈ&‚‘‚øDr#¢„Ñ"Ó"ô,Ju‚¸T+…Ìd!lh̘LÑâDh‚ÉbÁ.G$(G!BaH=L5Ì"Á‚(AèšH\˜HD“äJQN…aBˆXˆŽAŸî$F‘A@"ä"„aAf2"‚Ð$kD$á$–!4H"ŒÄˆ-A, +!(Œ,#„‚‚”2 D²B#""!H"HD`T0$ìAA‚JFÈcÆÁ¥„9’aá"SbBÀD!'#AðA$"F²DGÑH#¨ÓEáJq¢H2„!–n62LCBG/DLj)Õ‚D¨Bˆ-BŒê"$‚ÇÔ F*Ô„ÚBá„ø"AI˜J-ˆ,Ä‘ŸDCÑBá!4Yˆ&e%Ç$/BálAì„ÑAÂ(ˆNM#F¢%ƒÅ‰OƒDXK!à"È]h3Œ‚l„#4(F0ˆ¤!!GŒVr„Ž&l¡$Ç(BA®!AD")âDIV)dBMb¼‘X.M­R°AåÅMRiBâCÔA[2Cq44CU¨$‹B:AøVB(ÊŠñBH‚LÄŽBâi‚šóL„?Üââ%3DCøT"Ë„+D„MIJ…Ø(†óBBMˆ-‚D'Z‰êÒH¢$GAE…xBˆ›뤩„¸Â„èEÖ«9B!à"3T.$A@!‚”(H&!I$Â@3.3B @¬$ÂA%6!‚(£äH¡(@$AòH† (€.$E"$hD$¥È¼“–BD#AäØ"èi-‰ ÈÁc‚êHB$´’ÑHÈ…$xGÂ(IApvAAÄIG(8°4,‚&„…ráhX‰dAˆ"F"¤#(ˆ‚D#$‰x9 ŽâüT…àRÒ’Â&âbH6"Ϥ“ŽK%B.e(7n$q'„OtQˆ!¼bã¡xFñ<‚)áHX"+ˆ.“*8L\´,–O„ÈnÒBT…Æø‚HCjÁK4S4(êÒXJ†HtÆÈFÅÉÌkEÊ^.:žÌFèˆ!øANa#›&xB´T(„4rÈrFÂ$h%øD"¡‚CÄ$D"#cT̘Bƒ1„6a‡A%DbA†A"ÔA˜8!JTŒR„N&Xd@bˆNJbJ£!„J„t‚F`†ÍDˆÄ-B°8Ä‚ƒ¨Hÿ² #$qBL!R’D(O(!KŒ,ÑHÊQK$DCVŽ68«ÈCtáJ;&†4(kCx!rŒ1$‚F9dU8a–V£x&±ˆ(…zH5\d‚°´H$Ò!rH2Ä…x,âDÁ"ɱÈŒaoD4elFp1jQ$Jø$B¤()É$°’F&eD`ì²A(rÂ刱BaX$G"‰(fH, F‘Dˆ(F.ŠN!D‡D+”B‚|!ä!¨$`B'"`Hb¦cD(Î!bA-„j ©ˆ*ôÿA%,A„¡B’!LB±H#(†±È0$H†`JB#(„2IA‚A'…`BA(dˆÀB"„c‚D"MRSMN(ñBA4!"†"wr$$ñ!D‚#<BðA!NÂ$’)Ñ$2"Cä$ìȲ"<2 ´‚”a„A"T‘kHЍ—"Of("")%,èBØBfBà*t‚†²D:D‹D°ÂBôùÒ RÄHQ"‚ ?B2EÄp):‚8Ž‚aCÐBÂI„"@Ø"hBÈ"HDHcÈ$‚K$0ÁBE"R(ˆ!l>D!#…12#f!‚D‚1¤.DŽ€œA(&È$"L¤‚'i!ÀAA$A,"X$‚N"F2%¦CB¡”"`I2„$‹„J8Ž‚@l„ФD¢ ˜ˆ(uˆb(obH‚4 ÌlÁ!)\A+A€(‘¨„(p$â$$B(&ŒB%bS‹ƒ)„˜(CÈ!H0A †$ú"D :„J‚ŒŒ,BBHâ"1΀bDBf´D‚¤tHBDB¤$H&‚a”\„†\RDˆ Áƒ¢Š‰!€QD*a‚dD ‚ì„D!ÀB…†‘$LGBB&„hH)¢FA#(Iô6Œ "F*¢@ "ˆ‡Ba&‘A1y$¡I²(J8!Ž0Á!dAb<€LrID&X($†8E¦&Ta.ŒB3!($‚€ƒHƒh$(„,¨„AX|7-0A‰‘AC‚€„Ì„HH€H„B˜ˆ„ƒ@Jb„ƒƒñ*zTH”ŒH„E…XB0!@H‚@"€ˆA8@h@A€!(IÁEEAH‚4-(tB±rQS´Áá"t‰M&e’.IÔ1 DÜôa¥-ÓH.DH!©‰KÝŽ1ƒ(Hˆ#:!DDlFÂ'×*ˆÁA.UÁ¤¨eƒ‰ÈBQKˆ„d&f&f¤'ÂŽDü‚ˆ†$šA†1ÂÏ)øÕE°D´%ÄHlÄz*á„ÓÓ¨aCqFXD<&;$¹ÆaË„BB¦¢ˆ FøÁÄyR¸bHtBdB)<"%•Œ'!…¡)ŽFòD"G¤†Bˆ&rH(¢#B…D‘D‚&ä„ÃBŽÆ,„ #âô#1+«!ȉ£¦$Aª³â(‚uÁèHALÁ()B¸B˜B’*oø…A‚‚B,“WŒJaÄ"f¸BH¨„ˆ‡–L¿„•$K„J¦Ψøˆè‚-ˆ#hC#4ƒ±84J²‰Cóib¯ÒqQì1ôA­9WÔ>Æuò*D«8OBx4ò¢l¿õ,´ŸýtUÒ¶(òIMo.ûÃ6ò‹Ü_‚ì!l4¿¨ñ%ìä'Uß.óˆ2Lzô%[<ÓXúÌO#qdñ(!Ìo/yvñJ1ŸèÿÜ!/ù‰j_Ãÿ’ô/Tñü£!âHYB_ÞþL#\ÚË4†GŸòIÍO'±¦ýHq©zf½‚½Aõš*OÆú‚åÅ!ÏAõcgEzQ¹õcBOñòqêYñéÏöOlÂòlAß&øL®~¾o‚ýBÜï!üš-Ú/¬½:ô¤ûp2ät:ÅA¯ÄaïÂaÉä8×Ìò„2EôÅ:EôÁðáž3qaŒxsŒx2ä|:Ô<>ì8wMè(ôÁ:A¬îraŒxsŒx2ÄÁ¯CÂÁ£ÁáãÉaÃè8WŽ2CøÁ:GH¬!øáƈ?ÇŒx2„ü:äI¼ˆþ‚<>i->ÿUô{>ïô{¯ö>ïôÿ>ß:ýû>O8ýº6_¾ýûOúýû_®ÿÿÇäú÷Mí/ûÿ_í/ûÿÅ¿ÿÿÁ¿ßýáßßÿáßÿ÷Œóÿïó„óïkóÅûÿïóÅûÿïñáÿ÷Çþ÷mŒ?ÿÿŒ?ÿÿ>Å¿þÿÁ¿öýaÿþÿžaÿö÷Œóÿçû„óï#òÅû¿æòÅÿ·æþoüá>߯ø²þ÷Ç/ëûþD¯ï»ôúœ«eÏï»^ö9ë,0A(SdB$2A"paÌA‡BdB¼â8…ÂA((A&„€8Ž€dB ˜€„ÈA‰L€8ŽBŠ$$(¤(CdJ#t?4ÒÄA$`,hÕˆ-(!,hC¨¿D!tÂ$‘$Šq!dˆKƒRpQŽ\Ä,"ˆ!ò„2…ÄhQrH$mGŒÙBd˜`Œh’g!WˆM"$šòD¡Ç!xxB1hƒòD'ÊᜌÁD.ˆ¯˜ ȈDÁBAA‡›LB‚8¶UËCB!4©2Ì!8¥#Eè¡HLq\È()ÂŒŠ1FhÂS–!JØHrÔ‚ÉE!ÔˆŒy#òØ,¢Ð$"ÉÎm!£I…º!Ä!°ˆV‚J3‘)DˆA±ã9V E‘B°™3Fr¡A!†4˜QD'`Ò@âCÁ(1FÈŒó(Fd#A6ô!,9D‰2­éÑ‚„‰Ôj!1Aï!±„"’„'#d$Ë(B$„ˆO’Á„6ÀÂ.‚Eøð„(r1H‘#Ö2D`Bž"@´fˆâd1%B*x4%F˜&.D¨!AGˆCB‹")¸4rÄIèT1!0eP,Î(O„IÒB¤†¸$È!DD('IIb¤A`D"$ΈM9#‡4Fè(2„ñSJñ(/$Éñ!dN$f¡EbZ„GE"#~A"q$èƒQ,N‚”œôŽD¤Ý"K1Ð$ÒIÚH¢1fQT…õH4†øJ6Fª-Øð‡D6†¦ƒOHq"ô"BDšô$H…´š¨GŒ'A…Šaˆ/F8*&O"„d0H&L¢A˜!Z™ä‚’D°„!4Bx*\ ,*AÄA”(ˆOQBH!h!ŽÄFˆ0"Àp("IH˜D)"$#ˆ:INAd`4I„rB‘h%„t&Â(L®?„HD,D" ØEG(™dAˆ&b„Ç*`(°”"9dB)h*(¦‘HDŒ\HF˜#¤D@ä%D4"…ñ¯ï´BòE(Hð(dÔ–É5E2¶B1MB‡:m$LfD?Âñ3(œø!F/ZõA˜AŸHä"µ¡²Òá,(ò$C‘Ág.DÃ4D1N˜MÊIöH©Ø‚rÊIŽDAc¤#œ¤$† ‚$òa$‡…n>%ˆØˆaˆ+„…ôBÓÇŠEqD1XALÂHÕ$RM"ŠA´*s¥D±²H]1Ђò†)I8AA…óBˆM!#¨¡D$´S’ÂÌDT$„ÊR¢Ã)LÑ¢h–AC"…²Dˆœn" f¡O„q¤2XP($] Dñ%‰N('IÈD3áb¦$'D"ãÈE"I6Ï!t!"×e(ƒ,LÅ!'AA#«(&€ZA£TABAÆB•ŽBMB©5‰4HŠFâHH”‚™KH‘‡B”jhQN,„)%ŠTˆOü:fŒ,B„)Ò$$$$$(!`B‰("-AˆHˆÅ‚8!`„U4H!BIˆ!$TQJH DÀL2$L„ÈHi%ÔøA$"@" 2ŠBT!€H"ÁDB"‡A$4< Ä!ABˆDH¡(LdˆXˆBH*C™Hˆ(@”$€0$Š…eˆàR5´ˆ(!f:$h*¸'B (QB(hMH,LD‘‚ˆŽ'Là”ÄD( QL`ˆdH@&ƒ„„1Ê‘C‚hC(i)LbBN$T C4D¨M!Ã$LÄ¡$H@b!`%)"‘AŒŠi©‘  ò"$"B*4Q(IÄä,’&ñ‚AŠ4$.E" ‚14„KBÀ"N¨()‚2H£ª"NuÒ`aHH$,‚,‚„(’%$¢"DPH‰Ð(†"ˆAÈ&ˆEd˜"&ME*)„QAÀF ŒáaAÀâ@4A"€!4(`C‰ü#®P‡J‚±A8"ƒƒ(a$"€AѤ"E¤!಑!UDÔDR$@Blˆ!ÅEèYB A$‚¤a$F6â´>*”0($IH*JŠXJH8CL¢#*¸(ÀF“(D‚B €‘ˆ°)˜"…Ä$$À"F„ACBhD„0d)Œ„ØñMí$!,3$p"Dˆ.",ô(ÄÁ$¨!$‹j"¡€DŠ¡&A"KBH€ Hè(d!K&8”p"CaBHƒ‚('A€è(BFžÇSHH(E1„IS4ADD˜‚-AÀÁ!AK(A(G(tE „„„˜†#È¡Š HLŠ!Œ˜‚!€òŒœ@2A³†`hD ˆ"”LÁ‚ApÁzÁ "pAˆ+ƒ!CXB@‰FEa¸†@ˆ¡‚)˜"QPX‘†A@d¨†‰Ô´:¦„pÂC-CšÄAG+!,1„<¡˜A–['B„dv”‚?FJèAÚÄÁ‰”Âë!‚,Bd(ÎH<"_˜”EI¼&ø"HƒñQQ™ÔA˜*Žl—$h†ñ„*ä.I1DC”oÂù6H…”GÈAXJT „S„[”Œq(Ô!+†7E"ŽJ$–Ò(ØX”(ŽBÉâ8(A‰ôäG"„dðÁ7ÅE8""*$Øœf(˜$dh|„ VBELˆ9&F´8±"¤‘>„­¤eÐ%†êÉaˆÀBD^EÓÁC",¢ä„’$A,ä"ª˜?d„†7.Aˆ«!…!*‚‰ÑDQAM"äM$ŒÁNL&j“„82.È©‚¹‚ÝB"9HŽLaQ$d$hŠ&ùdRJñ$A#‚˜*Y™rúU4A¿æñqŒ'!üC2WG'c¾çmÑ+.¦/KòeË­qz~ÛüOÖöI¬o(ó´C9þkÅ–â9üK_Çâiâyü*åéÃ4O)øcííqeϹôÕOR´IöLÍ/,u´ö™òï”óq†ò‘Ó§„~8Oiã(ü~´©ÒDã(øfü¿ÖLöÌ(ñ$Adß”x¢ö´F(þ^,fi(ŽÂ¯„ñd(ž„"-cïBáb2Oµ”,rgôÑCa_fáJY£ºûç”-&ŸüaÃÒFòAù¯9ôïøcœïõ8åïÑä–ôlÅ«æíœ?¯ñåzß9ÿNˆ?½á¬ô˜ÒïÇûb¨omóáŠoCº"úÖ.¿øfÌïBõ8áç•O†ô-áëâïÅxâúôn(þNˆ'¬ÎZhüz”³ÒcúW(_÷ôY¤3õQC/÷e”?Vý¢¤k1oaájëkòÕ[Ï3õ¬ãׯÖÔö,QßÄùã.W­_ÿþÑ·¬­¿ü:Ñÿ„ûCý¯)ò´’i›¶o)òõšïý®&Ÿ„òalÛFŸF÷L¸/úòôÎÞ¯üËÞï½>ýZìoÿŠ6O+ÙBû±?hóôګ¯j÷],Öö)DBõX¸/îóôÎÎé|Êê­á¯ý>Ñïë'C-A§CMA£ÁaãÁaÁŽsׄŽ2O(øÃ:O"úÃŽ‚?î!qaŒxs¬‚'C.Á§C<>ì8WÌŽ2EôÁ:EôÁðáß1Ö„øsLˆ'C\ü:$|á>–O8wLè(ôÅ:YqÅÊîsaÜAxsŒx2„ü:$È¡>|3«÷ïSôyï1ôy_/1ö}wo1öýwO8ÿÿ6O8ÿ4_¼ý¼_¼ýþüáßÄúóÿÿÅøóÿïQüûÿïüû߯þÿÿïþÿÏ8ÿû>Oxÿº6_üÿû>_üÿûOúÿHOú÷m‰oëÿˆoëÿ?Á¿îÿÁ¿îýáÿîÿå¯îöŒó¯ïò„÷¯kòÅû¿ïòÄú·¯îÿ÷‡Oþ÷mˆ/ïÿ˜oî¿>üîîëÁ¯î½þîþïQþW"$$À"A&$ðAˆ-A‰¢‚!€¸â(((A&ÄTH@MÁ#ñ„SåBL!A$ñAAA4Ð8O8!‘I(A.¼1¨†²¤4†"8–t#‚aB#A5²FALH¢ƒ)Ô!((2„hІR+!Cr’dÐDäєĒA,DÁB(Fó"D‚#ƒÁ&xÀD!.D€dBfÓä!hR$N¨ñJÊB$ÇQB¹!‘D*Á"0,R@Ä)¢)8B I È`ba*2E’&Š¡BE1Ã(t‘rBÀcMRIä#.2IA‚†‘BF”$€4fY2Q¦JÁ¢ÀDóàA…ñBƒ‘D/!èÆ(AD+$Ba6BAD&a†]J‚a$JR-jhÂ`A(CˆÌv”(Ì"+!#qA1,$FjA$4@Ò(òHV‚(0(%Ü!a„ªAÂH©\ó{€aÒ!“Á"†a‚MA†Ch"‚,c”)bD˜$Š’fD„!BˆH.&ÄLè"!b$‰’fÁ2 Ä!àÕIÓ$˜„,´DâMB«C2$‹C’HO"3HDŒk„"DŒHÁ"A¯$1·ð!EQ‚X%§A*ÔÑÅŽDŠÒF²"øR—%úDDD\RåÂbW"\)tÂd†%ÒaD¨"°!äÃxH±R6(œCS„?$¡Q†Ò(^˜ŒÂ„D!E”ØÍB™ò(‰4,&Ø#VDœô4‚F˜%bÊ‹CMø41R<4H*®"A€¤2 &K4H!H!*1ªF¦A( #ÂQ2EA%È!CA6Gl!¡#Á"àB‘BN"H„0‚ƒŠ$ÄÝÃ&„B$ƒ@“È€R©˜1AÊ$ !D<„B™‡IB†ÒA"D,dB1ÀJ‰¨‰ÒT‘HDöá"ÐBq‚ŽBIØ"bBÐDø²B@‘¯TD2ÅÓÄB“dC„ñ¤¡4,1”A/B¶Œa*["d0$\ÑCØBx(ú…¯$ô‹¸D/‘Ö!ÆC¢°„1Âlxbá¢ÙƒRBF¬"S¸!ùBÙX¨…‡!HG9±,Ø!ɪ+#!Ü(iQWŒrHD˜!É!e,‡„HKH/ç3D9,Aè%!ÕJÁ¡Ib„k,È$Lb$L’#ò‚¸šä"TN*(PBh!"ž$F*‘!A(C“H’T!`F„âÚbˆÃ8#’‘ET„$‰*’„'…H‰¡ÂOKÂ(D‘BBòBÃr¤-„‚-$Fr”iH&RAŽD‘†p9”B…X+b…œCˆ@fˆN‚Ü!d¨Q*Ô8$Nˆ9Ad¼Œ8RqDòˆ49˜$DÒ¸‡aD#Ø–I„{Bà!4ĩȃ$Üh6ñ0f™BH4LH4$D(‹Q/R$NDÀ"3B’BB‡!I±H"’†DB„˜)Ä$€"á,AèH8ˆ)”ˆ#²D8I˜#„‰#bDÀ”"NRƒŠ‹\„L¤‚(A x$DˆbA D$Œ"$bAD"¨A Bˆ$h"ðB‚B 4"Š‚ˆt’B‹!€" ‚6ˆ‚!H&ˆB¤@¤Ã€$ÜÌ20$°Q„TA.D`„BGADN,J¡JHä2&Â!( %äcæ‚”HŒ:"lBN(è…„¢BÂ#("h”'©Fê!¨BÄ,Œ‰¢ˆZ!Z&dˆK‚)„&))èBOõ(H¥%!€.2(!"àD’A€!‘D% I€ä(Œ!B*1!D$‚1p%H(€Q$@b"à„"H& #A©4X)ÈiãÆA(MA„Ey(‚b"€!Ä"(DÀ$@Á$<HHHœA¨J¡ˆ"/(QBÊRB@bQHÀAH„–Â!Ž",5ˆ(¦X(„D@$Dƒ"BBY $G„F€²A3Àa@D!K!€ƒBS†¢"‘J±(±A¸j‚ "„„’$A€4á „¡A‘! +"„!IHÈ"@EˆÄ2ˆ¢^Þà Q‚24"Qb€1A t!¨"„pB8:"‚A$IÑ«©()²¢D"€8)¨¡XA( HH‚*8Hˆ) ‰™"Ÿ†Hc"‰(CD„B !ÄA"€/¼ApA(0’LÄAIÄ‹"HŠÂA,0! (DVHJH ‚aƒ„ !¤(,¤(ÀBHˆ9D1¡!AE@’$DD?„TŠ4T$aD"À„)@„B4AD"@#ˆ§ê0($•&B0(-$%Ä!!@q$„‰¡BHdDB@D†R! !DDL!AI‚I¤HB…"Ü3–bÇ“¶t i’Vò,O"f""[B,‚Â$$‡‚'A«E”+-H.B%b¢C2”Aš„„;EÒJƒtHJ4A!)Æ\ˆdA´êÄ#Ž‚,[(K†ªBLlBp"$!¡ÄJˆ$”jK”oDQ!n….$JºASAƒ2&¢!-!)¤!AH‰dß"r$"„‘›"=„n¤`3މaZ((K(®A]"KF"ÈÐ!XC¤‚*(1„%ÑŠfEˆCLò„JOˆÂÏ!_3GDX˜)”B%!AÂBM"K$ÐDSA4A'!rI(¢A…d1…ÅHAÔˆe¢‰¡BA$ŸBôK–ÔA‹’"E(1"±ŒÜÊHÉ£HP$O¤’$MJaJDh¢ ¢"*ô!+¤˜Nˆ)òl4ôò'\™ä!tH“_Anc^'ç)ãBcaöBn%côT2OèÒÁô~2Ç5n+bÕë´tJ›ÿáæCüX/oÔ*kJ'A_´üBxúNç-O–òH!Bü†²G7N#?HÿÄb4;_ÂþÎV÷æ!+8ޤö§a/œóHõÏÏ­µd´HÆ„o,}4â7óŠü~܇!^Z+©ÏÇï±:œ²\ñ*nס‘Zõ"b]F3â•õm<%tc¢q_VñB4-F3r±dò$D9§²Ïò\.n÷!±ò^R.jõô1«ñå¼lqB¢QÿxáÄùÊl?3ù)CöDóRƒOúÔ4-f]ª]/"þ®Ÿ1êõÅ-4=‚:õůÌÖúþ8ʯ‡ôdHoD¢Z/'¸ýŒ4/dóÒ„¹œõbÏa¿Rÿ!öuG^#?„õBqôT3{R}t¯bñQ.koBñ#côgqoñTåCôEaO”òFu½|öuK/µòGX?¡ôIoµóeXÈÿâžÍò&m=Ô¿AüO‘O¶ùnçÁöMaG6o\ò£Ô!þUÃþ3{Ø?!üÃGµû~ÿHÿ‚¶縦ó¦´?hû9N{_ïšýtä¯E´d4$oNö‚´o§ùdº-÷–ˆ¯¥í¡øôZo;:K=~¡ô97ï•Õ+õB7òRQF×Óñz.O!ÑFÓB÷f_1óVo6òEDRrlylñe\¿BõBßsóZSR¿!ôy#¯õ­t¿Xñ:&k™OaÁžN_¹õüo>òLRGO÷ÅT?jÿâ_søÒQ?,ýÂ?ùúYÊ÷ƒ5/eú´oIó‚t/áþ½’oõ&bÏÄæF6dKrOLó¢ÆO£ÝäùšX/,ùÒ$¹ºõŸèp6ô(EçCA£ÁaãÁaÉòˆsÓä(ôÁ:IòÁ"î)saä‚xs¬‚'C|:Ö|Âáï!Ò–,8·Mâ(S$?¬s„úÆòãxaŒxs¬‚'C|:Ô<>ì8í(ôÁ2Á,îraŒxsŒø2DȯC–Ä£á>ýÐsÿA¿w÷A¿÷õaÿw÷6Aÿw÷„Sÿçó¤Sïcóå[çóÅSåñáwwÅ~÷EŒ?wWüs÷oQôyÿo1ôyß/±ö}ÿoôýO8ýÿ>O8ý4_¼õ_<_<ýŸ~üáw_Äúó÷Åøó÷oQþû÷oüû×/þÿ÷o‘þÿO8ÿÿ6O8ÿ¾6_¼ÿÿ>_<ÿ÷®öwÇ®v_Æø²öÇø²¶ïCüê¾ëѯîùRèïîûVá?ωDˆlB B(xaÈAƒ*(ˆ+!Ž(À(@È"Ehb„"„"paØ”ˆ!‰ˆ¸â(((A&DpAÈAÈ#á( B8G„.FÈTóK¤B¡H‘Xì5(2$°&±HQ(‡ƒ‚KESâ!™Hô$(Ô#I$h1„O¡´E¡$FX4hC±ˆt2H˜C«‚æ4ƒ(!¦µ‚aB;†"$¤ÂR$B‚P(j©ç Œ8B„Ä((% q"ÄBX„"*d…&±bDR¤„B6´BBl ’!.žD*‚ÄHDZO„hA¨„$ˆJá"˜hIŠ"D¤+–°¡KB¦R„‚î1ÊFâ¡5ˆ0.HO!”!,M"$ÃváfxAN&¬BD¯#‹A!Dñ˜D#2˜0dqDq¦$4H‰¤(WbÚÄ"’E¡!ŠCå!(´H„‰‘Ê*Á„"BSb(Ia*C±ˆfŒRŽ(iñâm$.,5D‚ Â2…ã2‚$"6DÒB‚BDÈ!I„Á!HŽHÀ‘„K(Â$8#$òˆ”‡!APH‰(&–H"JÁA!…¸da#DÂ4$(IØ(qA´RR„0!F6‹‚+RH!d(X‰ÁMSNõCŒÑ"E8"A!?‚4KG"G"fÒrhär!TTFÄ¡j”c.XH”X|(²¤t¨A6¢ÅO¡„'¡RÁƒTh…MB‹a&Dó"D„‚$!a…r8ôE$´HRULò$'§M†A¢A†¸XÓ†Áû$Ž(A"0*#Á"$ÀlÂ(€B1(%¬#„.ap(dÂ@„¨"˜&Ä‚BØ„ˆ.T#¤H ª Â!ª„‚ˆ^!ˆ ÈƒÁ‚Bò#̪DFRH"01Àˆg‰þ@T#‚äH‘bGB¤CÂ(ÚFtb¨("‰È™”ÜDh)J!¢4 QH&D @“(**Q>°(q‚(¢<°TD)D42Ò…ñÄ4ä‘rb)d%û"Ñ$¨"W¤*±,È4Ì„°¡åqìaHq$!É(W,äÑ$Aæ’;ˆ#2‡§B.LÄh‡"6%qIÔ! Œ\4ŒÞ„þ‚x‚ÔBj4-„#¸adBÀe‹ˆ6²84”‚‡!Hü6îŒK%Tƒ@ø"ANT°"„Ñ…Â$ˆA&T&‘„Bà£,!r$8©ˆ2BCRHJÂ2Eº °‘,b†²4!7ƒ&„4(H* )’èi‰ARXŸ~$C’#a£3Ò.BDd"BCÂ!CÁL"‹„n4%±Er’èȱBˆ˜/B*jB†T‚HŽƒJQ%"ÉÓÚ†ƒQDh$ŒXBH­4‚$‚-$Â-®DŒbE("røÁ¤JQ$Œ -HJÈ¿SĈŽÀX$(‹(­( bJA„"IùA„Š„(Ixš‘"ˆð†&$Ä%PHÊ(A#A¢‚_Oˆ$CST8`Â"E¢*”(ä„_ø!‹€E8!AÁ2`B(Ü„A$Š1D"@dƒ€a‚Ì$¤†2„A"(ÂAÃŒB„@(!˜TcÏ’"Ed¡´ñBD($6(‚ÂD„DtA®Y@WˆŠZ‘/HB"*˜KXÇB„ £!&˜-‡A)’$"Œxhˆ&Ñ„BØHÁ¤8Aƒ@dC&(r„:"ƒä…¼x¸Dõ‡„H„…’l*‰‚(BÄ(‚ÂDÀÊ`!0$‚‚F€!tˆ3†‚!ØA$&D ‚`B€˜B8¡HÐ#ÁA‚Ä2A$H(…h‚4:4àp„dˆIÃ(I!B”"L$Q`ƒ–Ã*‚&dˆÀ( D‹!"à„”8/²IòD(ÅdB DN’ÐR"p(È$@Œ‚qAš4N(€ñAˆDˆ&*($!:$0$„@Àˆ-$ˆD‰‚€R„I‚ T„Ny#……m2…,!Ä2G"LD°aHD$ˆÐ(ˆ¨É‚`¤$D„¤X€Â$ˆ!)â$@ò$&R„,A&¤(Lˆ"RB° )!?LOB²AA8)PA:#A¥A-AA-)H(Aéˆ4Œ€a„ bH6¢#2AÆG$(‰Ò$árˆ’!M¦D&&(B¨‚D&(áÂ$Å!‘!ƒbˆƒL2dŠ—XD/”(AxAd£„„$‚1D)X@‘‚ ‚øæÅ@È fƒ€„$p4!@ˆ@A*1ˆ!,„@Ib(Ì;§T)ôAÀ!Åx!QŽsŠQ(„¤ò$‘7Ɔ¿AxˆÔh4,$I²„¥(IW„W†ð‚*Â$ƒø#„²(rdSˆ(’"Cá(2„,ò!,S¡¬2$*„Lˆ«¡''S)4šÂ„gÿIOñH8…ÄŽ˜Døi˜v\ˆ"#_B'B6ÄAÉòaAK„‰‚æ¬4BL±á9Q,´(¡<TÉ8*K†t¡ ¬(ˆØÃBBÄ„ 8Aв$¢"Œr„ˆ1¤„Üh‚ηcB•(žI©‚FEÉ$‰‡Ä„b@d„%å82Èd…ñá…Â#ÍŠ1„I¢(-2M$!%TŒrì‚Bññ"Á*±¤!h‚Cº%AL .(@D„„>(œB+Á8¿IHÑœôM6·‡£ñÉŸ$sa<>o›ÞØüˆC²2òA][Ï’õ(¯ÓXÔXôe¨¯©ó’EžÏ_&qo6˜/¸üC2·fç+¾ë-ÅíK2K«Vý.YO²µ—ô˜&&Í)[‚¯hcûŽ«{Óq˜â¸˜ßAr¼â¹ú"©3dž¢?RØžó$)G9káÂMˆ¯+c驼g1T‡)¨¼JáÆò”'SÝ’ö>:Dׄ?ÔªÑHrøßA¯ñ÷aO*yEø&Ÿ6u,:,ÿõômŒr(øMßXöc/¢ù¤"óýYCo¡ù‚&÷/ÿ=ôu†é"8†>$Ÿ¶í‚ø†Bßyí ß{’ïÓâù¦&×(Ÿò˜/jr‰ò½#OÑñ!¸iù¦"OAñ)¹-˜o8òœ‚/ÁbƒÒÌûª.dŒû®&Ç,‹Eùª.O­óû!$¿ÅòM¯±÷M¿…ñ[a¯‘öI¶ßæù¬‡êhó$_'ñ(Ÿõ×ø÷8Íû'ßTÖXîrým²MóÙOï¹¾EyÛòÛk¯¹þC¶û–ï*ñý¬/aû$´[?Mø{­]m­SÓÙò(m­{’¿ir¹ÿ˜»yy›r™û˜¿?B™¿ïªñÕ¢/B™¶ÿ*ñ•¦¿Âù*=OúRHÌÚJÛ†ùÚoô˜úk”§­-ä©ür8ÃØá{[ø{eï±uIr[ø[_¯ñ÷išß¶ý¶¤oaó2O"ñ&$ÿõ×òרvoøemÜÆe_¦ùí&¿mòùÓ/‘ýÉ·-¿}ýÿ¿ÆùgÙo«ò–´˜K²Ï(òý—ümø—ßRRÔ.=˜ÿjsö¹£o‘ù‹—)Ÿ;ú¿ÂÛù¶&Oiù2´iù¾"ßiù2'ꇂÇBÏÂr(ü,¸gjÏmòøêoýÊÖòøÞ/Óýl"p2ÄA¯CÂA£ÁaãÁaÁŽsÓä(ôÁ:A¬î)qaĈ7Lj'C|:Ô<>ì8wMè(ôÁ:EòÃ$?î)qa¬‚7Lj'C|:Ô<¾ÂaÉâ8·Mâ(“$¬“$¬îraŒxs¼(x„|:”Ä£‘èãÑÈ2W=ÿïôïô{_¯öïöÿÏ8ÿÿ>O8ÿ>6_¼÷>_¼÷~wüéw_Æøó÷ÿÇøû÷ïSüùÿïüù߯þýÿïþýÏ8ÿÿ>O8ÿž4_¼ýý<_¾ýßúù_,úóMŒ?ûû_¬?ûûå¿ûûÁ¿ûùáÿûûÁÿûóŒÓÿëó„ÓïkóÅ›ÿïó…›ÿïáê{ìêóEŒ/kû_¬/kÿä¯ï¿üúÞ+áïïÿáéPˆA„(EhB„@pAÈAˆ£á(€db@„"‚‚¸â(((A&" †4( €¸â(Á(( ‚R„&DÈ·³ÜAø*J؆i…"Ä’Tâ!(„‰ÒB+aDŒ.DàJd#Ö8Ò4Î)Ca„*yD˜¤Ä™’”8mÈ„¦Ä*†ò¸„#Hñ‚(Éc´˜(˜)L™(DD‚-CاHqˆåŠTQÊG‘!%¨…1…˜b! Á$$!.DCA*Á"M!…B‘.$À`BA’AŸ¢Є…r"‘4•BHBSHL’À4I‚$D‰4h‰¡A0DÉœò‚q41-T#‚!Ò$AÐ~De‚L"Ôò…6#¢„¢1$A!M(M('Q*1L4P”‚¤JˆñA"AF!A!MO„2d0dP%G"FLHBd4þbÐBBÔƒQ!Œh#PƒPB8!B$MCd"@x!„¡(’%1$Œá’Á†Cb!"’(D2A‚‚Hˆñ2$D)T(h#›$%ÈT ¶”X,B‚THÄ@ÒAÁd,B"Mª“—"Òƒ™5ú!K7"Ñ'&KAG"gE"OT$ÁDLÂ-¡,º”ÓIxqâ$8#_á#”2o"'‘-H#SI@¨’ACX"ƒè%2EB£3DCò!)”\'’*‘B"BGâ-GfB¤4ÉðæsA%Ä€P!¤ B0‚€!0DÀ(A8a„H($,qH$è2!D*B4N$A…äD$A.í#GD'“`R(D`6‰Ô$r"€êHÑ‚B$È(D"Fˆ2ˆO†‘I†eBQbNˆÇ)H˜R,bBJZV•Hk`APBŒ˜?ˆÈ QHXD.HÐR‘‰ÛVttDrH!a‡¡7D‹ƒ‘,(DL”1”HVt14$Oö(d1LqQ*‘KNªM!AIƒÁAɲÂC'…ô„Ydh‰äHÑ„1’•ø„"H'B—H"!d"O>Ø(kÅb/–DADCx¨hH.XCzX⨡4‚/t>94Bo„‘"ÅlG"‰‘B`B‘T*QC2„À"KlH‰”pB²R‰‰T4CH(%($ä#ò$L˜(F1dA‚E¨1„IS(B‡$ˆñÿF$AFŠÁ!³”´“‘d…cBÈT+"Ž]hÀ$À4ODøbшdFhIñ¦HD*Ò‡˜FàqšD@QŽ’K‡8c2Ø)ôˆKHMBÑh‚'˜%ô$Z‚D„BA'ÉJ2ˆDŠU(šd„¾“ó,R- ÅA'"N°HR$2àÒAx$R ‚-&èQ,B!´’âÄ"Á†"ð(‚AAÈIY mAD!DŽHFD˜$‹T‡€rÄØ!¡I)…ˆâˆõ’ApDQŠaBPÀ(IQ¡$HÄPB–H‚„O"$ ÄHD4‰¡A”$ƒà!RH”0$&ä„$RƒÒD=%”D!™±c1$‰„S$Cr2‘$UC8"QN!A®X¨AË8M„#šBLR!r”‚b"G‚G8ŠATàDAHTB9 „–„—$A‹HŒ!âD‚v(Ñ,2D(HÅb„š…5¢v6 @q;ˆ!Dƒˆ„ÅЂ„‘‚C…`BpA ‹H H‚ÁD€4‚DC I!ˆ8àA‚Àˆ@ÄÜ‚A¢A€Ä Ù(D¢!I"Aš(CDE¤THD§KAJL–hE"d(E HŠAXHJ‘BaH!‰t¤Hƒ,ƒhAB N0E,ÒAGŒÄ*äN"1 „*H”!ArBB©$DÁ"„$JX„a0k!˜ET…T4@]X€TÁ´X€¤L1FL‰€ÒD "C¤!P(‡$\:l¤œAC dLÒ‚,A4§‹o¡’LL."E A1pTxHHNH„.HKAˆ‰„‘ˆÀ$-BA‘1X0(KcB$‚ÔÔ"Â$Œ‚±ˆfH¬¡GŠ °*1AA)˜B@sŒ$X$(A#ሒDË$B²YHl!)èbQHB(0$\<|HÁ`CH(B„„@„è„Hˆ ˆ€¡BR!)‹ „$@‚a!à($(A*‚¸"(!!˜ïÉ@BB€ƒt‚*@‚„ , b€ˆˆDÀ !(ˆ A-ƒ" E!(ˆH3ó¼TœIÉhCˆvˆüš¤,c…¡hƒ7‚GÄ‹’‹’Åù$Q…Q‹Á¸‚Ñ$Æ$dŽä$“|… =ˆaA#åôíACÔÄžAƒˆEâDôA¡F˜äT¶$Á!ˆD+CLr2ÈH¨KQ.HDeMq¬3„9±qxhXŽE4åddñMDð”*$Õ‚6ÔðÔRGBC¬K-„.ID!‰ÏÁ!@TT…DÁh4–ÈHQ/H !@ÔøD„@'(‰#ãaAÂ$Eh*s—*Ô2BxÁQA$M1O!BÂ"C‘B7£BplSd•3±86I˜"éœÂ)Rhƒ¸¡¢8J FR…ˆ„áÃÛ“ˆÅ‘–(JØ(éEqHrH¢–ãÈá)¡I¤(."g‚‚ÐD“†Ió'ÈyXˆ-ˆ«±/‚ñŽ×$w~f•§9›ÁRo7ÛØòƒÜŸSýœ2LÒBñq]Ÿ¡öxïµaBß‚Äl_ø”õƒüO$óz§Ÿ˜üA#K&¯Hò†È.ÞM2Dk¸Ö߸å‚õ†E·ˆUHÝEøš*gÚØt´[ñŠB¯œØ#4SÏhô‰Û,±‚øEŸK_Ôñ£aßnò$mò$‰¯kr†ôòˆObô(H+H¿É"´Ž=ß^ÿ‘ñ(7ï…á…ÕásóR(ÏÍô;^eã)zEü2…ö"ŸQóXBÂt)ù)ß¶ý¿L¯ƒõ¿ž1Ë/Ô³x©´ÊòÎT/ƒôT®²OËó2"ß6̺ôІeTa—Oñ2|}šÞTß(ñCC¬øÊVÛ¿Ô’ñYŠ,ùÑkAŸqùTÊž"^þ&(Ôø,Ÿ¢»¤ñ24Ï&ëÉ4Ž-$íÚµ§÷{‡4~ïuö1x÷´NNA?aõi¥O6ú.?Äèjò$2^7'?‡ô/j[âG•KFß2ìBþEƒo>ñîiÿ©ÿE‹£¼ÊôªÌn¦fúš.?Ìébȶo»žŸ§ØíÔ‘xQͼû-†¯qÏýÚ»?¤xÉrË÷È›_døI‚§-?ˆé!ÈÂi´‹üÏKMÏoQTO’Ø,Ùdú‚zoÎöâ¨O¤ü‚J/ˆôâ˜ÍåÓÊ?o—óANýI‡VñqR“ô\³Ïä¾²û6o!ò6/3òx[Âõ9W?UòhmŸô%oŸåûè%§_¿LüÛ‡,£üÊÊo¢üLºÏ%ÿ¤(o+ù6²O#º†ò˳?¡|\×…EIýšŸ{öžQ¯YüÛ»H¿(ô‹Ío‘ýÚŸ1mˆ/(ù–O!éLñß’/†zÂüO(—FÝ,,’¾dëY¯iøN‹X«Y¯múvò/®'C­E/CÂA¡6MaÁŽsCô”"IñÅ2A¬Aö󆄯LxsŒx2ÄÁ§CÁ£ÁáãÁaÁO8wMè(ôÁ*IñÁD_îIteŒxwìCø6DůCä¼ä~Ö–LÎsÍŽ2M_¬ÓDñÅðáž#rAÌ„7Ç„'C.ħAÈ£‘èë!ÍÍÑq÷6AŸvöCŸÖôaßv÷aŸ~ö„ÿ¿nò„ó¯còÅ{?§òÅs·†Ÿ~wwøåv_†øòç—øæçïüïÿïüëϯþïîïQþênÏ8ÿú.Oxÿš&_ýýû*_¼}Ûú¡Ÿ÷„úñMˆûù_ˆ?úûÁ¿ÞùÁ¿Þøáßüû^ÁŸ¼òœÓ¿¬ò„Ó¯iòÅÛ¿íö…Û¿­äúýOIOúñE‰/kùWˆ/jýȯîüȯî¼þîþkÁ/&K2˜MÈ"ÃaBLDpAìTH@˜„#ñ„XA8A&DL!ñAA$"A„#ñ„’BI!„3D&4Rl!„AD„MÁ#ñ„2IaIAˆrèBbâ8+(«ACBÒ˜ˆ"=‹¡JÁ‚A-4KFµF¬BœBt#D˜¦|aŒBIñ"k†!‚ËA¥´B‘d…äÈBŽL¬¡H-C(6ØÂ¡‚I¡‚B+Í!ZXHÂL"‹$.Â'R,O­ŽŽ:TB„IÖˆð$LÁ"G•A&œ!ÄÂ(I²$ACB”˜€Q$CCDDˆA3ÔB!”H,1bMX!2D*TB¥!@¥B"dÈ:D!4åÑá49I|‚a¤`"AÇ0‚Ih"FD¤D&ÈE‰ÔA!âA‚˜RÁB,M©H0‚E$“A/‚5hÁbQI3ˆ$ŒAL•¢NA!dT£h$`bE&D‰AB DÿJ #“’’LÄ/šBDÁ"Ä@hB Ȉ*‘B…Ò’ƒ²B)ADâR”X)•”¤•$hB‡$£$R$é1(ˆ)ˆ!f$±Kf$”(D!ëA”kŠXM(1?Ð$’!±´‹G$X$"#šq‰R$„”(ÍU ³ÈÔ-‚V’H3,«R*Hæ!ØD’b_ƒÑ(„$SŒ&’1™"Ë(¯$ÈJ$GA/Dò¢BPBH…â&èV´Ô‚VD*D|Ò\sHò'„„N‚D4Ou †‡Aa&DH4‚`$@…‡B€&,! EÑÁ’ADT$F„`$„"ˆˆ#€"A(À€AØ!‹'Dj`"P‰´"4$ ¤-(DŽA(N*D/"(7„ˆN™ìBÈCa‡jƒb¨B¤A&„5ˆòQO(BQ,RL+H"!FXH#(Á!.ß`!Cñ*‘-AÍ*HEáÓ†±$‘&,Á‡ö#ò(*i"$a*‘xaÁ&Ñ{\v?…ê#¹ÖÁ6¿Þ(»–õ•›%]H#ѵiÙ¯q±x”ò—Ÿ1±èIq‘x󟃻ø‡"OAò‘éù–_ùH]I.!_Âûº.l.˜ï+óÜZ´Hø¢>(ÓB2G”Ô6vUºKñCA/öI¦_&ù®*Ìò’&Gb_'óOES÷mmMmŸâôe’_Oó×.Ÿ=Þ|É:ßüÜc¾BúmÓë*Oi»û$‚cûåŸ/Ñ}˜wXÕEÝXñˆéq—ü™“­‘—¨?‰ñ‰‘QØÉø™o©ñ´¦/B¸{†ö•Ÿ-¯yQUü$-Ë“ïjòüV«¾|ÊúˆB.úµßm'CA¯BÒ46丷Dá(’¬Ó„ñÁðá–paŒxcœ'Cü:$o<>ü‰{ËŽ2IñÁ:A¬ñáŽpaŒxs¬'Cü*$mÁ£Ááãáì8÷MŽ"A¬ôÁîra¬‚7Lj'Bü:$I<èãÁ)#ÛsüAÿöõA¿öôaÿvöaÿ~ö„óÿîò„óïbòÅ{çòÍswç~woüév߯øúçÇùâçïSüéïïüéϯþíïoþíd8ÿï,o8ÿ¾$¼ÿÿ,½ßü£Ÿ÷ÄúñMŒ?ûù_ŽúùןúøñŸúøãߨúÁßøòœÓÿëò„óïkòÕ›ÿíò…›÷ìêyOü¡ßÄø²žÿÅø¢îïAüêîëá¯îüèïîûÙ?ô…Tˆ8ÉbBpAèÔˆ!Àˆ£á(I,’$&$5È#ñA/‘8ˆ#á(!ÁÀÀ"A& †Iƒ€8Ž‚€R„&d.b3Þ8ŠKJŠÄ#ØZEÕ(BD8%Ä&t!rHÄ!ÁD£4Õr’$Á$:BUbA„ÔBD‰b¨1ÅG3"K…Ô¡"Dx#$1Q\ÄŸ´äÂa*¡„)d%Ä„%5$$Dœb!´,BÑÁ2DP‹’Q¤$a4)Bu(BDä‚×!Q%EqH@d!‰(%A<"AX$CÔˆCa!PÐHrBtTa„€1$ü3ÏÅÐ%Dˆ;H5ŠÁ„!€”¢…Q†DxRÄ‚;A¡Œ2’j$ˆ†CxTÂ$$BD L‘"G¤‚Å"ÈA!”-ˆE‚ˆIx¥ PD$80D¢ˆ!OT`$ˆ:B•d#g‚!@–"@Æ"G”ŒAŠõ‘dEÈÈ$!T-DCAš"L!A"ADÉCŒB¡„¯B¢Œ#’CšD#c”!LË…$RH"¤‚dÄ<Ø ŒÑ‚Âîs‹2FR‰Ab„ÔôÁ§!"šÒ"ø„LD²„ňGl>”/Œ”IDÚB\¡¨D)O!(q+$$Â&ѤÖ$bŒaŒØ…!x•”ˆ°”B1Ä›ƒO˜"AI‚‘†câÄ%8ˆƒIG#΄4!<4&bB@À$A“BQHPJF,#H"A&a$@$A‡DŠŠ‚X†, *B#QH!&PH GâQ‚Ü:æEE$+('¢(6“HObr(BXDi‘BEA-9A@d*ˆ„(hä™$(ÂÁÅDi)N1D€h„9v$4‚R!¾‰d!©RH #$DFXH/†è!‘(TB-&S¡<ÑJTœtƒÌ2`dLg‘"„ITˆòˆyC ý(žJW„4O*T¸/Be‹$&TR‡##‹4,PˆŽM2UbÂ2¯ˆakˆL±xXAEBDäBQB/DÂW†H.ac±ˆº$±„J’bŸ\è1˜,ADAB‚±!T‚d.A…4"KB,Ñ„Bµ…UHˆLrBÉDŒ#È(,Ôh†H"‡BB/IR(R"EdˆNÐ^Â’H…¤ƒ$äÄ8"%„1$­4À(B(A &Ø„’ðB¨óŒ"Q-H0Ãâ±",Aä"Ô„¡"Q¥H$´(ò•H¨!+ˆ5E£*‡T,áBZBˆ…£ƒáHÑ(ØØr˜Â@™&†)èŒÁ1…FˆöD)!FX#¥'J„J¸rXº„Òá¤2B<K!0TBÄC(HaÔ4!BGA"‰R$B!F¤!F¨ƒuèH‚ÊC‹1ÈaQ„H'¬‰"d!„'F±H©-ˆ#Á‚$Ͱ„$A„bè`JŒ"Ô$)È.H?y A$$d"ÀB€qB¡bA)`Á<¡$BHK‚,ÁæB‚)qH1D!„Á«A” H¥&d!„€±ÂIE)ˆA)H‚1(M«á-O†‘$ &„5Aa)A±B²EÔ"ÁCbV.D)2&|C(³4”hx(”"G"~¬Ô'¨TI“4HRˆ#òD#„%rê…’IŒY)Š‘+‚¡Ç((¡HTIP%I±‚ÂDL‘C'(4ðîò 3BA dAƒ"@4HHJÁB@Ä’Š(Hƒ¥ƒ¤ˆA$À L‚Fˆ¨@ƒ"†è27©)‚4%‘jIAA‚‘1D‡‚+H1…”BƒqDˆµ†‘h‚ˆ,+ˆbˆaˆ!H‰‘J#!R+H Ù(,aˆ‚ "!BKA!€â‡$Aà!h$@(A$–B„TLä3AQ%A¬Ä&h$¨&‚1xDp¤HD‡Hˆ!¤D–H;A¢„FÁˆ!J¨ˆA‹"À$(D$2‚fD"d¢œ5aD`H„„Â2G!$RCƒDDaFB )„C(AR$(Qƒ^n„EB(Fè)Ê„h$‚.$4IÄ*̤AÈД*OŠ !„9&´AaB#"#’DHA)†¤$`%(@¡L8" Ãò‚!XU‘ÀB!C,Ua¢¤")B¡€ÂˆD¢‰±„ÂÀ‚DŒ5¦„""RD€$€P¨€ˆ  „@(ˆðÕ €H!€€€ # @‚ €D"$@AhŠâÑ?Y!”")…óChM"I‡ÁI2Ta„Ô&!cF7CLá4#ñ(Šä¡‘4hˆ¤Ìá¤Ò„rD0A`„\Dšc)”Ê/(AŠ!ìaˆŽH´$‚2"¯Bš$)t*”J+“ˆ_C$$¢F¦Â1ID&DòmQaMIHR!P"à!"&$a„£á‚ÑHH±:ø"9ÝB¢ØkHH‘‚‚œB¦ÂCeˆ‚&è”8+‹9”I2!+!ƒr„&´¤Á2‚*á"4%ML„äI!#È(E‚a!¡¢¢"‡"1FäD±„´ 팖k!KH$,“Œ‹N¨1!˜!„7”)œ¢‰œ¡‹:r!4˜2H$*è$cTÄ„@è‚Ø„”U‰œŒ¸.ñÛs0K$OQôQ;…coQöD·DW.2lñO2ôq2QÓRôO†ºÂD_4±vòS)&/SõI/„ñboÁö„§ÄK*Ê–eô¥Ýn;OLø'q·x‡„BH8xKxCèh˜Â¿‘|Rè(´!ÞŠxBùA)Á‚)ñÁZ½¿6üÚsÖ6$Còèæï†þb«ø6Ü+”;­ò4œm“Qƒ_tÔ”2#ñQ>qÍ='‚?&tEæA£/uEöA7^u/s{yMñDe#;cõT~>\Û1^ƒ÷d/ƒùúBOåéI¢/süÝ_¥û¨D«±g”Ÿô‰‚?øB‰îjOÒ·ÙñÅ“œê)ùÓY-á‰ÑøQ¸ñÑJ‹÷ïA½söe,¯Aò¨âoDüb(ÏmóTtOø(Ï-áWû3¨ïREÓ6ÔV´CóEC-S?tWòdKOrÖaòcg"ObÓbò"EW6O6óG¥/Ávd±dòEefo"õ>H?¦â´Ô*ôRHï¤ñ4JOêæéúc„o#ø$¦Oqº#ýlÆÏ¦ùg‰¿ôIA—””8Ü:þ+ì7¾_½ü‹Ó¿–þB)ŽKŸ(ôš‚¿„q‚â(ø’Ã?uØò¸î?Õ½^ü,(O„ôÌÂï¨üRˆ¯.òÌÊ/¨üRˆ¯BòˆüƒÎEmA7d4åÔ•2¿·õ-glrbt6ò4&g>Eo#ugótaßÔÖIveñe#_dçQö/QÿÔñBJÔŠµòzBÏn÷˜¶¯Nñ¶O*ãi÷§]ç;·ÿßµYT—„ÎKŸ,´‰ÜüNœo½ÕüÑ¿©úÃj¼õˆ‚Zø’‚–b(‘ý›Ò¯ìçÓõ]D‡D…ìèöÈfFÜÂÿv¨¯-ñHÈ-˜/­øšÍ4p2ÄA¯BÓÊaãÑì87LŽ2A¬ôÁðáž'ƈ7ƈ'Bü:$ÊáãÁiÁ87MŽ2A¬ÓDqÁêBòá!ƈ7Lj'C.ŧC<¾>ÂaÁŽsÕè)’¬ôÁ8ìraÌ„7ÇLø"ÈçCÈ©>(ã×sôE¿võA¿vôaÿvöaÿöö„sÿfò„sïbòÅ{çòÅswæîw÷×îw_Öør÷wÇ/vþ>E¿öþA¿æýaïæþiïîö”óïïò•óï#úÕû¿çúÅû¿¥øñÿ÷…þõIˆ?ÿü[ˆ?þüÁ¿þÿÁ¿þýñÿ¾þÁ¿¼öŒÓ¿¬ò…Ó¯)òÕÚ¿¬òÔÚ·í®ÿÿÅâêóMˆ/ëü_ˆ/ê½üêÎëÁ¯î½þήëÁÏß ‚(IbB„„8Ž’$&Dˆ!ñAˆI‰yÁ¤GÀ#á848Q."„œ”8È#ñ„"I$"(A&ó¢-%jQ°HD¡im"I¡!°&Á7D(/DD‚ÑJ'Ã.‘ЂtX"‹B$I¡´¼­AFHqh$ø!H˜½„+”ÛX…ò2,K!Ì8ßH3B‰M,Jø"T†„„pHŒ!²øBˆ0˜Œòß;D6Ä!•(äBÑ‚'ƒàB$b3Ib±IF2HÄ"ˆ‘$#‡M2ƒÄcBô"t©!lBôA(D$A9…LqHjJSƒÌ5!"´"R“%òA‰‚‚ù&*¤A'HN¤óQ)!RB% R! BˆL"S„ò„DÑÔ$I(˜B()¸$ ºÔB/„BCä„ÍJD¤‚Î*BM„-AŒ2„ÀAE †`Â(ŠQ% K‚H%¢¸A?åCà"4E +Š$F(XCDÈD$c%ˆl¡&HàBCH !ô,ID‚ˆL!„d(C$š„!H$ˆCB’ÂL7¶€–A¡ZÄJÁAB) D‚MAE|AäÄ*$ñEðT‚‹Fªƒe„¢H‚M¢‚M•b*Ô„„:E$̈ÊÔ*$4„‹¤cÉ„DNHA0‚dD"†v ’†Fâ!Ä¢Cñ•$! A)¢"!ˆ"A‚!Š"B8L$H‡„ „MA‡Ä(AH!&4@D!B()’„@"$Ì:%ДBðQAˆB+! Ø2‹!T4&L‘ƒ„e$E”€8„A€x"&B¤+"BA!‚Cˆ²„¤(I舒„J$AŒ„8ˆD€H&¤È‚?’ -R!‚"V!2‚ª¤ˆjHb!„DÅ(!Ž„"I„D$¤ äD(dDBRIAˆ/9R„A*¸„!˜DCr$“ H€DŠÒD2D€àQ'1#$¡8@â‰B"R!b‚#a"+ÂFÄ„Ð(‚8Ê$¨eA(‚à„EFA8„„䀈8‚΄ ¤B–‚$@ „DgB *шdBP"P"€²wI"”H ‹XˆB 11)T#Bè!Š‚¤¡k„,ôkCg¿ôøÖ/)¶üÿeÿÌ ·„,tCˆrDèBqAˆl…ŠX‚Œ-A…òA$‘BlÑxä(=RO(mAŠiA,3T.–CäH8TL ŒètÈÄAJØdD<ŽSÀ¤Ø5ä(;E®ÄäH8ŽÄaÌØôH„¤„!°xè(¸„QHLÂ2A®àX24ˆÊDˆˆt±"+$ ’`(‚£3A'ÁBQB‚3äCÈB–d4’,¡H ±!0–€CB‰´"D(rÈ4AH†(ل䂈‚Lˆ´$ñ(„@<)ðD4Œ8!–8ò÷R€T(Z2C°B"`¨*øA§ABAH!´DN+! á$LI‚‚A"ä#Däˆ2D#AˆHH)Äh AH*dÒ@H%¢AŒš A‚a("/ø>¬D‚!$1BANB`!¨hA°x8‚Œ‘B„F1„D$8†‚$ˆ#”ˆ@d!5Jh,‰PD‚"#IØ‚(¡)K(Dˆ‚p‚C*ÐD$ˆ‚8rIEè!\ù“%)„‚‡$%8RŒ‚x"A’fÒJ¡$„H‚,†bA@ˆœ@’ÌbBÀ‚N& U(„E¨HD‡sH‰5Œ¡JE¢¢IAO"‡A „²ˆÂ„<‚–(”À´sŽ”FFB”H)A‚¸2ÑD1‚v¸(ÁL¡.H„ƒ¸Ád"‚ƒL9A£4&DH#Ö(aŒÐD¨I¸5â8ŒDhC¤Á‹8"ˆ'jD#Šè‰L‹„K(I!(eˆ^JABø+L$H„H@tBˆ†0†"á,BHD,XBIH„ˆ!Š8L¢àLFDÔˆˆ# (dHF€!ˆ+"$6„,8\=¿)”!+A ‰4("ÂAš‘"A$ H¤ ‚IL˜œBq¸Âàˆ áB8`"Q‰$‚²˜Th 'ˆƒ€D$ &NrШB(DX‚ê‚ñ#„­Eñ))è"‘#•Sƒb…(AH÷^¡A’ËA)á„Ø’ÂX¬±2¶*K"MB¶´ˆô4A/Dš£SˆŽ„,\!$ìaB¥x8"’Acò8'ŠsŒÓHäD2HŽBгHø‚”B£D>L%,R(F°&Q.„DžLÆ‘˜Bf!BdÅ3""/%h¡JÁ¢¨°ÂjC(…‡"‡!˜À‚F’!CEØ$‚¡‚GH(-¾H&ÈD€*aŠ ˆ$ŠïL§8…Aaƒ@¹”"#!D…åâÈÅ‹L¡p„2"*XBŸnÁ‚I"TA‰5‚"ˆx‘"ÐR¥(,ñ,¨4ÃDˆ²‚”Á-ˆÂ(ƒÔJ:R &T3 D*Á‚"6‚àb›ˆR!`!NRˆÈ0L’ƒ$#HtBÄX©Â’CÄHĉsƒ„T"ƒ„hA‰ñ(„!¨ca"…„ƒG‚*¦æ¡„8†"(dAø¶ù€P€0A" ¸”!AC’€Ž,(bB@ˆ2‚B¦I€ˆa$àDˆ@€ˆH‰G(€ˆ"A'BA+”ˆ°C‘$\=¼@Á#,T!„4¨$ˆ(ŽAƒƒ)´‚Ñ"H%‚1"ˆØ,Á‚.#´ˆá„-”/H–H,´˜²AINEbbÀ‚CH’ˆN ²„ñ"„ˆk‚$"0ˆ#(òD$¨%‚’FM„Š‘NÒ†$Ò–F‚‚@h@b"BÁK"C$ IT!4H‚HH0"@FŠ„‚xC¨ˆ" ˆ ¡@œ„l„ˆ(#„ ÁCŠ‘! ÁA%3–B,(bCÆ„DˆbH!€(†‚Ä2Q,c"8"<¡d(ˆ( ” (Q(GA,$Xˆ‚d&d(&XDKˆ.„`Dh?-`$&1@±!Ò"!!€´¢†D†Jd‰Š¢„hŒ’2D9i!£…B€!X(ÀŒ‚Ž"„ŒÈtI‘†)1‰D"2M‚Iaar’HóÊH‚!(H€*(A†!A4B©‰ˆ˜Ha©$…((1¤@¬IÌFAÈaO„’†Ä¯A‚¨’‚*!ÈA"I!€ø$H#„’‚BK‚ndB$N"€¡$!Œ(XÁ@H”ˆ&KAF"¢H¤@RJI(lEADŒi$˜H¡ALbÉI†„BJ+ 1€ÖBH8ŒÀD&ŠF"øB9“ $‚$0€$! „( !(´D2 L:A0 @‚B „@ H!ÿJ‚1(,"!( a‚Ap„ … 4("€($C@A((&„âB2$à6H€Á)£Ô‘•Aa@°±µ’f"2!%á$ª¸thDdB˜-„©±(˜H©±8­(n"(¾$8’GÄBMxÎ.I@ -ˆ/Áˆst£­d$K†Ô„â‚rÂ&ÈH¤Í$Dé’"è+J±"¤‘˜Æÿ•NÂ&4r²!Ò9!ˆZ€ÔÚÒ‚DÄF2äD…d(†el(ˆJ˜ŒÀA(!)’ÈD*$R8GDCÄG(&(!ª!†ˆáA²B‚:k!É’)„ª!©\òDB‚,¤|:ÙÀðA)†¤b‚X$#Hb#R.!Œ(±Dx„¤aZ½2ˆ+Ä&’LO"Ñ,±aIª÷”6æÓ¤nZℹ4³$”„+…+«8+“†2ŒDO¡c!C¨8K)ŽB„Ï‚Ata?øs!×ÄMDO(áAüVÔ/­á½JrÞJÈ/„¸*|föÌ*Obó˜/aô¬nOÌ÷Ôï]¾'ÆÈ™ôKoÂó†Eœœ+‘g©.˜‹-”gé‡hOIáGû$èó´8˳ïIŸBÍ„¥ôˆ>ï™ÆO/áGµT½ë-åDùV‚ï+JóQ?öc3O1ÔôBa?ã4ôã)úrˆ,á1ñ?õQS>¸RÙ¶L¤&O,ål¼Rüjø¯…÷„Ê/-ýܯ†ä¬æ¬üÄ¢¿†j*®¶ŽÊoFöÊJì·F|;ñIH-¦ò¸†«™­¬¯ªóÄÊ)ØŠx*j¨†òœ‚;g)O*øšª%tšúˆ-ŒcŒ²„á©Únúräo(÷„‚-’++f/i>ZC=Q/òSS4ÔÔ3ñSC8õ¡+?'(/#ã!åõ?5²Ñ¯fðD$KÞFO-½NþºÊ/­å„½ZýÚê¯,ô¨bæö&¬/kó†2¶Ö†ÿÚ–­å‡øHaŸòHH_ÂóœÏbºù.¬o©å­¹ùš¸/©áéñœ–-¤ohèks”æÂùŽ¢ÏëãÃøDD…D|(þ”Ïʸ"ÿr”g,Ú½Bø‚¶/oôã˜ð$t:Ô56ì9wè*“®ôÁÿQÄ‚øsˆ+#Á¯CÑ<ñãáè¸W‰Ž2ðñ*A¬AôñŽ!Æ¢„?Çø2$Á¯FÁÁ£ÁáãÁaÁO8í*ôÁ*A_¬!òÁŽRÆ„?Ç‚x"„üDˆ£>.ý3ÞsþA¿v÷A¿vôaÿ4öQ¿<ö¤Ó¿/ò„Ó¯#òÅ[?¥òÕS?¥è~ý[(îV„øòö?…øâÖïüêþ¯ýîÞ¯ÿîêïüÊnO:ýÊ*_:ýª"_®ýÛ*O¬}Ëêúÿ[HúõIˆoëû_¨/êùÁïêû^Á¯îøáïªú>Á¯èòŒÓ¯ëò„ׯhòåž¿íò„š·ì®Þ÷Ů߄øº¦ÿ…ø®¶kÁïj¸üª†+áïjûVÁG–!018Q.$08øa84(ˆ¸â(!“TJb8CåB#$b„@xAÈA‹"H(H"¼2ò„S"À$IaF(A&$!Ä$AÆÔHD¼ò„‚˜"(CáB"äb[‚,¢A4ŽA$(V‘B‚,c(â(LMˆ2D"ıctx„$òBˆ¸Jt"ØBÁÂ6ÌJ’0lDƒ´‚!²8XB¬(± c†èaâ(ACk(f &,lH/’èDÂ’@!o÷K±ˆÊ9!´#$+‚`/à(˜T‰„RA*œRrThB#¨A)¤L¦T%„ñ„BƒâháˆÅJ(CÔHˆb¢ºH&ñH†"Q$D†8"I“Ž‚(C%rˆÆ(DG‚%èHb(ØCBEѱ;_”"#°H$Ê‚K¡!N"ˆNˆN‚D#¸$‚¢Šf!K‚ŠBd$(¨s"Á–,¤‚CHâ$LL ! 1$Ji”8a`D€X$°‚ˆÌ?T@(I8F²L‚”4!%¸”VB&$Q!à$1Æ2X&Ä0¤(ÂÀQèBB°Bˆ‘‚RÈ(a`B*1„KB„B„BI$âDdA$ƒ…bEãÁ."#!HŒ¶JŠò4(k†rDd¨HÀ‚\F*œ‚+”%‚ª!I³ˆäAŠš"K)¨Pƒ:4#Eh‚.ŠlÜhFFâ(!"Ô(‹ôd„ƒDhABLHôXTà¦PB#õt I,L& !‰’BŒ$D,aA`„!$!D „Ä`Aˆ&„!E¡d@$$H&†„‚2„Fˆ r27PHh@h$$ˆ$È&ÀHA€D$%†~0‚(%E"(! $H€!b0"@ƒ¨ÀŒhBˆ!ƒ‚’„B , c2"-»B0C€’tG!`ñAN’Â1xAð‚$¡‚+†‡3H,d…„€µ"a)]R…AD¶)$2J–%'ÈX)IÚœèBGù$bŽ6ž$MƒR(Óò¨$ôH$¥‚ˆ*Ô(„±Ôü8ÎD$ËB!ƒ2…Â,’T$A$@è!f@bÌ$Ø%(‚Eh%‚(,„U.´!„"H áB8‚€²„‘(9,ÙBÇŠ‚‘ŠŒR„KJ "ÍD Š%"aDHÏ E&5R-AX!L8#(qI42XI4!HQ,¡H0"9˜Hñ(H)!’ad"T9Å,õƒ"É4‚‰a(Ř!†XA$#È$!XM¨%ÅiBƒ,q$ŽHˆ%ˆá„2ÜB  €„€(ï® (€ ‚"H ˆ€‚BÀ2s‡OB„БxA€ø¢ˆ# p$„„I‰rA€ø‚ˆ#€v$¤!A€I„ /(8R€$p$¤$Aðåè€(`B B(Bà(&„B"(B.AŽ.DB ÌA €Ž€nBHL7¦ "CH€uA˜#H€¤"A€H„HØ#€€X„€  ˜#B€H*"ðŽÖ€2I„Q„ˆ+)8hAI „xA€¸˜‚#€’$IpAXŒ€ˆ+A)8(AI2DÀxã  "K"AH„tA ¤‘+‘#€¢"K"AH„tA¹9 €’$AH„tAš¹’9(*²$¿ç€!   € ‚BÀ=ƒ€H  H€‚ðÙVÀ˜$È!"aBp(ä'I”(HŠQ$B.„p#!‚((‘((K(ABE"ÄF(R.„(#‚$²(‹$,ÈBI, LÁx£S‚#Q(Ey!‘( !A&Db‘FA$„a‚X’‚ Aè!BbP‚)!!ÁH"‰ „ #I"„HŸ"1„#cL#£B‰„"B©4$KA€#èßH( €€„€ˆˆ1Û"€¢B€"HH€ˆ)§ç  €À|‚€€„B((  HB ðµH€ ,63  "H€ˆ€¤ð%ÖH€!€<4· "  B€H(HHðD+ €€¢"b $$H €"" D Š€„$Hˆš) 4CB(B ¢BHB€ "ðÛýðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀA#Ž(A`B„ÀA€8à(€&pA ‚:(Ž €&pAH€øŸG€"H€"H(("*!¢"((""Hà82•€"€ŸçK‘H,`B"ÀA‰à(`B"ÀA‰à(¡"`B"ÀA‰àX4pA,8`B(AxAŽˆ#&„ÀA„ "(ލ##¢"(&„ÀAFŽ/ŠMÑ/!á((GB&”Ô€ø’Ž€r$dBðAIA((ˆ/+á*!‚‚€r$dBðAI‰€ø’¨#„Àˆ#&„ÀA„à(8`B(AxA("Ž2ˆ+#€"`B(Ah„à(ñ-ÀA€#á( ‚dB€„ˆ#á( ‚dB€„ˆ#á(€‚dB€„H ˆ/A:ZˆŽ€&"ˆŽ€&ÀAH ‚â(¢ &"HHð¾o€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(""€ ¾èÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç ü<< "(" "pz€""*("Àó€"‚"¢" ""("Ðvü<< "(€""¢"(ÿ(( ""‚‚À§ò ""((**"ðr€‚"""¢"(("À“ ((""((Ï|€""*("Àó€"*"‚‚""ðÛ’ÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç ü<< "(€""¢"(ÿ(( ""‚‚À§ò€"‚*("/A ü<<"(€ ð¤F€‚"""((|**"‚‚¢" ""!(("""*‚‚",1É€‚ "‚‚ð̇("" "€"1("*¢"*‚¢""*"ßÖü<<"(€ ð¤F€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(" ¢"€""ð³^ÀÏÃ*‚(""*‚ðÏ1€‚"""((|*(*‚*"‚¢"Ú(("""*‚‚",1É€‚ "‚‚ð̇("" "€"1ðÏ<ÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç ü<< "(€""¢"(ÿ(( ""‚‚À§ò€"‚*("/A ü<<"(€ ð¤F€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(""€ ¾èÀÏà ‚("Oj(("""*‚‚",1É€"€Ÿç (("""*‚‚",1É "(" "pz€""*("Àó€""*(" ?ëü<< "(€""¢"(ÿ(( ""‚‚À§ò€¢"( ""(*ð§ý€‚"""¢"(("À“ ((""((Ï|€""*("ÀóÿÌü<<"(€ ð¤F€‚"""¢"(("À“ ( (ðy¾ÀÏÃ*€"*§‡€‚"""((|*€"‚"¢" ""("Ðvü<< "(€""¢"(ÿ(( ""‚‚À§ò ""((**"ðr€‚"""¢"(("À“ ((""((Ï|€""*("Àó€""¢"*‚‚"""Mü<<"(€ ð¤F€‚"""((|**¢"((*"¢"*ð¤K€‚"""¢"(("À“ *€"*§‡("" "€"1(€""*("Ð ü<< "(€""¢"(ÿ(( ""‚‚À§ò€¢"( ""(*ð§ý€‚"""¢"(("À“ ((""((Ï|€""*("ÀóÿÌ B(*J¦BH DHB!!ƒ!‚"‚BJ ¡A ¡ˆ2’"€¢$H"h H )˜ˆ¼<3H€BZ! £!‚!¢"*$ "J„H"8€!(BB „ D „!!!¨ !£""(("(( DBŠ„(¤ˆùÒûHZ¤T   " "‚""„„J¤AX !!‚"BB€€¤DB T €((¨Š( Bh DJ¨DXÊ)(ÁÍsB   "B $$„J€  !(BH  Š¡€HBBH€„ˆ¿$ € (2"" B "BHJ !(" „€ !!ˆ!ˆ(# "Šè3   ‚„$HB€$! " ‚HHHH J! )("*‚¢"bB J ¿ýƒJ!("(* €¡€€„$BBˆ’(J¢" €¬E ˆ-L=¹ „$!„ !*‚"B€B€"BB A" ¤$HBŠ(é‡A‚Df$"!#hALR(@ä„!ˆNArÈ%#BD#ˆ²$B",ˆ,Ñ„‚¨A¨P$Câ@"*‚ƒ)!è‘1ÌB&”B‚p„††FhBF*RH%‘ˆH%,$P$"dJ"ˆ9‚L‚è(ª‚d„M"àhàB"€‹##ñEZ°XBH€"*‚H( €H B€"  €!HÈ  ˆ$" $ H(àÒ<^€!„„……2 !¤C "¡B „$£j$2€„†!""$$$$¡B $%†BJ*H(ˆˆ(’j¤1Šƒ""¡„¢†Ê¡HˆZ Þ¼0H*! B"  ¢Bh€ B … !""¤"B€ RBˆ€¢ˆŠJ‚Š„!Œƒ †3ˆŒ*B Rj€( D€€‚ B( (B€R €ˆ hš¤((€ BˆhŸ™  H(8b 2€R ¢A€( A( A€ X€¤ C (( )B(B J*$!ˆÄKS2H€B("B((J$€( ‚"¡E"H€€Bˆ  (¤‚  ’BФ!‚’J/5Hh€€$*( „„B€† ! H€„"€H ¨H€„!ˆJ€ˆ…Â]VÑ‚<’"‚,’(‚”((ÂV"b˜*ˆ$sBx!¢¤d:HƒF"”HI‘dM¦º‚¤A$*ĈL"Ä„2A„J‚ô"ÌI’HLJœ‚†ÌH (-T׌"(!äB!*@EØ$”(l‘(ŒdB+&$5$!VØ‚$Á(ceF+"(+!&+‚!"ƒâ„#1ˆ°ˆ‡ä(Bˆ#4"E˜$‚Bf¢É4ÊHì#<øŒr8ÁB”Q!H(S!¨CQ¡O‚1è“–hH,)²jOƒ¸RèÃ؇×"t!Ä’8'(&‘*hB(&8i-‚ø¢H)D’)*˜8ɤŠÄ("b®F&Èd&¸„1(Nd¯B1ˆI•J’ó&ˆÏ±I@€QˆD(!‚a(Aƒf($!* &ˆ)Ä$DÀ$a „T„*)$äBbD…¸A…¤ˆ@"€ˆC‚ DB@ˆ’T@‘HxB(!´ˆQ‚"J/PD& $°$…ª™H"Œ"‡(A rBT!&d$„I”ˆ&•H€J"Bˆq‚Ô„HXH2NH/œDÃt‚䃄Fô8‚2CH4\-Œ&šÄd‚ìAä!ò²H#!è)ò\(N‚)Â##$c#ŽN&K’B&¥‚DŠ‚a!ƒ…´¤$Nh*ÂHº˜ƒd–(DÁZ’2.KAt¤ê,ˆ1†Ï²4!V $„bE‰¸D’ˆCÁHð–H#"˜a$Š1B*4ƒ8$J*Å"€cªF’¡D("$$"h"HPKH(‹F ŽH8Œ"Ç1¢RBè‚¢N(H.ÿ AHEÈBˆƒ†D(¢#IÔQ$…‹$x4H%ù$ˆP‚Lá"œ8$"$"#ÑB–Q8AÌÈIaDa"FŠEŠHôi„ˆ‹‚‰‚ÔI…¤A&Ô‚!”ˆ§„`(Mé³ßÁ¨iEBªD+W"ËH$ ‚Ca,„˜DBLÂBƒHt‚ø2AƒLÄn‡HJ1†‚ac¡O"8H€T¤Rh!Šô¢€±HhD#H¤‚„bOH‚$ù(`‚E¨Ñ)6‚Ë‚¤R‚†Ôòe[AH!+AÀ$@ˆ‚Ȇ&"ˆdJXh@”„ˆ+a Ä!Ç(K‚¤B!aFL1‚¤B#xA8$ C "ŽD„ÄDD2#ˆ°ÂÉBƒB7¯0t…¢-*Md"’æ†Â¢:$Á‚ŠqB$ÔĬ¤DA:Ȉ/A!bF‚è#(iBBB+(ka`N¤ª‘$O,ñAˆ#˜"*8„Iò¤RM%‚ƒ%hAƒÒ„t–"2","‰Ì†´ò;4`HABH€$A‰A$˜DˆL4BŠ8A.D,H¡pHˆN"Œ`„…t¤!0HŠHÁDA‚ ‚H&숂˜€|HÄR…¨(Ð11Ü„ACñB":#! ¤D†XBO„B<^$IäI!”BÎÂH„ODdhãÄIAôÆ%EôH"Bƒ˜(‹(Á)B"Œ‘„ÍDŽb‹f‚Í"I‰T‚±‰â‚¡€4‚H…8ˆŒ´!BlGјF\…‘Á†8„gf-H,JŠ!ÊY“Ò’A€iHø†CxBXˆ ‚Ÿ(„0D&’BL$)b$„!ÀBJª„‡!)°JR‚]R‡('XI*H´DAtA”J!¤¤(u5t#J¢$,ˆŽ!áAÓ‚2‚â„! L%´#ºAR‚ ÅÏÆ;Û€d„DIƒ"xŠÔ"<(€!Â(#ÂàD A,"¨£ˆ!A€ˆNAJˆX(Š(<"BBA@$4(bH%øÑ)²(T(0"aŒ„$BˆÂ(R+($I> ‰KB¡(Lˆ¬ˆ ‘ÀLa!8$‰I¢‚$+€D‘$DA°„" Ȥ±)qbHò+ã•JŽˆ¿)ˆÁ"øèÎNÊ¥|Tò,E8*><+sެ¯ÆØAôJ©±›e(/„XhbAô4Е#.ŒM¯›òQ!a^˜…øŒ2,T%c"Ÿ$íI4¦øx-"¡/3é"’:1\’hÔ&äÑ‘4êNº”éAøûrYÐDñ66OB¥B>hj"„Ó‚Aa++.$m"† ŽŸF’D#äAq2È©õX‰‰È–‚”’ޤß䃼‚2Hp)ìD(W¬ïÌqˆ‚øZ’hž„J%éJûˆ$ˆ.‚Z™MˆÍE^DŽdFô‚†®ˆAÏA\¤-J‹DˆÔt>©Œ˜H…j$¬4tX)nX­$c"ršÄÒȧFFbD‰tHº>ñ”b«¤Šl$Jø*„Ob´æùVÈŸ†Øø„”dJ9œî!ODTBÏÂühDŽ%n„ìѺɱI=JGÂåúb’=B‚LñÈHŒè¦Ü‰·%XA)2H$,±8h„(Hè®H‹{$Ïgô:ïBñ[A«Q¯¡¢gŸÔtÉ›¯…¡ˆÎjGLïŒåèñÄ>"ŸÒòe-~ZÇ…gi_ÔÜøËÁßü›ÉÿxAýLÆÙÔLy˜Ü$¹ÁôeIßšvaýÁ'W†ß”T•_œÜLøBÅT|‹º–üÙAëIߘԳýÉYï(‘4y!ó"šŸ’áy„¼HuU}IùŸÿÑøXl‡ô–£±Xä…øDËóCÙB÷V&ïÂòS¿¥öJX‹W‡Ÿ¸ôËɵô/#º¢û:ÌoäüXÎÞïÇfÔßÔôeN¯çækÿÄW×Ñ?<Ü»óÓ›ŸýøIÌôΓÿ̹”ÙEùÓoÜÿŒ½ßþöÅË?–òMM×ÕÜ|Íô¬ª¿Lø‰Ÿ¸ôCò=ý۞ǽÿ5Ù›ý{þkš>š¾³=²¯šû˜O‘ÙÝôEAß–ò-¯ÿøù‰üœŠÏªáqTøøX¾ìÏ7 M+"h,ô$!|qaL¢¨#zlt”Æ6+í$]AŸÖ³áú"ý‘1wñC!sÑ‘öhÒ„)È–OôdØñÁ¥{Ñ/„ÒÔùÕJØ$ñIìO#S†ÂTæ"ñI!?²}‘ñÉCá"ñƒ!/„û…Œ¯…r-ý!!ý?ò¬X~(í¦ï…„%±ˆñ(û-ôÏ¥ôJ*4u[ÚŠ¥%ô)뿼‘1g!-¢/*ùìolùÎÈî¾ï‚vDõAI]"íjONüÚß7óÝ‹½‹¿¼ô¡7¼ë÷Þ×»»OIˆù–F¿_þ1Ÿóþå«'ÇR×”ÞûÑLϺrSµ®ó™K»T¯<ôë¼ï½ô7¡Ÿ8õa¬o*™¢/;üqš¯ºýYˆ_ÛôYIÒöiaW¼¿xù5¨‹«ÏÎúŠZƒå…ÔˆïÛÞŸ 6Dq(ä4¶Ã!Ç!®3G„O*ô‘:OhñÑ:$îˆ7‡*ø2´-A‹KmQ£ÁáëA/·Œâ:wŒè*²„ñÑ#K(¨a!>!òA,*øsL:¹2Ò=8}Y+I^áëQ.iIâwŒª8K(,òŒBœÃDúbAÆðC¬ˆ#ÃȧD‰¼„ø$…?äDotlôA—F/ÖŒòA›"O8õ{,O8•ª_®ù{,O(qSèjóO(®„ø2†÷…®–/õ©¾oô)†/÷-¾o´iòÆÓ¿†ò„Ó‰òÇÛ¿Åò„„®÷…®„ø²õ7.¶/ô)¶oô­Ž/öm²oõ)¨O<ý),O:™(_¼ùY(O8ùAˆ®·ß…äzóI¨/{y[ø¤¤+Iê¹–ôhŒ/ƒô¬¼kM/–ƒ‚dB83á*S‚æùA#á‚¢ˆ§…Ž#ÂŒâ(11,S&6S.²ç„ªZ„ŽøA‡,H‹gŠøZ$Ž“Œ¢˜Ò$m‡,7F.&%è"¡’„ÆÌA‹¤H‹¤IäJ¢#ã8‘"Žƒ"KÈ'ÆŽrEèBH芄!&h¢Â+’LæHC¢IˆäN .$b0H’!«!8!(PЦ¡B‡B"¯‚”R‚ ¢¡„(È"ŠèBFQž#ApD$ÆÈAÓODÂ`(¡<5R,b1‡!%b#¨ˆ!p‚‚xŒRˆLhˆDDbEŒSbFÒÒ&Ȉ–a¢gdL8Œ¢[ ÙhHÁƒR„PÄ ¦ÁˆXŽ˜7$!ˆˆK„ r$„2hH(B8ÂH!*¢L…M‚tZˆ!Ñ!A@²ð(˜ˆà„‹"-H"‰ôˆÂ(šáˆ¡C¸DÁˆD!˜BB(ˆ„”ÈGA[H„iÃ4„1¤Fô˜œBƒBA'!Ø`KˆˆCêq4Þ-D"%YÈáL24.Dˆ†²Dö3‚Kø*(KJòŽ£M$”8Q"F˜)K‰…c4Äьđ‘˜fá„2„ bŽÉƒèDaÁlatšÔÄôdµË‚„¸bè±JúñÈ&ø$ˉ¦[Š"/‚ñlDÏËóDQU$´LᢑžKD,ô*È,ô¢8CÓíJófOgu.ÝIT‰­(çQ[!·oc{ŒTBghUú?œÏªüÂGoôómHM,N!w˜µ÷.ïCó<Ç›‰›‹aïsX­ÝÏhò*"‹ú¤4Å·ˆ/ô”­ÞAä\ÊEÿ›Ÿ©ówÜïAãù‹‚݈‰Þ<ó‚ûÄߔņo‰ñ‚ÌõÅŒÑØëAÝÈÔ„ôaOAø޶v¸Èä(ú¦²¯Y7#=&f÷WOǤ'¤ýŸòÑdñ²¿_iû¶ŽeÒdXv¿bú¥§¯<üFDÏÃöiMÏö¤§ß¸ØçÑgó]ï,ýÚx“ýé¿ïÊò‚…ÿIù޼éoú6C!ø™ÛÝýdtMý(-Oâþ꨿jûÍNßë‰ùª¿¨øãïŠùžˆÿØøROHù4”Oqý_Ü_˜y8ù´äGÕÍÌÏÄôDçïãù”ŽÏ‰k¯©þÄÂξo¡ó—IüõElÝ>וµø-Uý©‘ŸNñ‚orqžü,§ßDüͯ–T”›”ý'çR„ö%vWùYHYûI!RùCG†ú’-—/!gº-QŸÏÒýR-Oô!$1ù"…/9ñ2?!ûMI-?¤ò“_´â6|qÃxÂ…-2®^A¬ù-H¢’"â*¼BÒ®~LúˆB+$D/ñ6-ñnqŸÅô_ZµSº,÷aÿÓòƒ¨O)ù‚¦oiÙ×ûÛ?éüç5Ï”öHmŸ„ö¥¬ïùø'?oqöIŒûÁŸáüÉ„¿«ô¡§ß1õ+‰šø´2?ú›‹û%5Ç‘ÏvIø¥iï=ó„o×öç_)uÓûšÉ"û½T?óòÈ^k²/Hy†²†ü9©OÜýíˆ_KuL1(N(&ô"OãûÒLï«ùØJ¡ò"„O)ó†®ð2LA¯CÔ”êvÈaÍ(s×#,³”òa:A¬rHøs‡‚Æjø{,˜'Gô:„O4áë5¶Dä;WO)ôQrIñá"raˆôsH:ø2T>A#×4Nñk–®3ˆ¾2IòÑ:K$®¡ÂoWB†‚øsprÄ䣇<‰ºÄ_r\øCŸöñK—ö/³ô-'o³ÔÉò”S,_8õ8$_¼ñS,ß8õI(z÷_HzõMˆ¿kù_*.§o5ôio5ô)•/öµo9ôi.O8õZ"_8õf_ºñ{*_:ñSHzyYø¡w„ù#‡÷?røA¿úùQ¿vùaý»oôi#O8õ;*_8ýb_¸ñs¬_8}Iø¥—×…/jóAˆ/c{Sø"†+A¯æ¸ôjŽ+Céú6EÏpQ7‡M2q&Vƒ&BÈ&æñA"CÁ4A‹MÁ£ñ„Ó‹!Ž·…,4!IíB5QŽt#¤*¥xAØôÈ$/$bjÓ8rŽSb*ð8DV¢"0!À(+Á‡Ç6X§†§’#”4o„¸$q¶dG&Ã’$N†<&AmX(£Æ!…êHt9¤%Šh¡.åqXÊ^‚°ˆx"ì$‘$­DÉ$¹B3ZOŠ>‰fÉA£ÁaCAŽ¡ta(,¨‘#²T"CäD2”-xƒ"ÈH$&1ÜD)’D‘ŽRN,CÂÁI’…2!‹!$VÄ’‰6 È8iM‚JDˆr‚È$‰„Ѥ$˜R&ø„HoäJ²EAg#d‘´$U’LB‚ÂHL’‡D*“AB"%³L!úH¨,&1Eè"ˆ!sD2>H-)(A"¯œF„‰±H=)м(¤(k!…Ñ$Z…1,*IG©#–ˆFè"á<:tˆ+B!J’A(–5""F؆„(‚+‚1"B0BAZ8p„%$r‚Q”/¨0(tHÁƒ¤Z]˜pH"¨ˆ«AA‚M„$¤BŠtbhIô…*ÕBB‚Lh(ZØQäµM! H(k!‚‚!TƒDÉ"D‚ÀI!D‚"H„ $!€(ÄHŠ!P$˜L„,Ô‡'H*hd`("Ì;%‚!"#´A8±#Á"H°‚CðA“@YóBA©Ì”8’iˆF»H(x(ÄaœÆJQ)‰ô!ŒŒD(¬…(D‹H(iH/I2H/"ô$D r¬a%"+!ŠÆ‚†Ø*ˆ(ò+Ç H,"D‚èBHTDŽ’`Äf1(0(,±$Ã(‰d! #A¡A’`(D ¥%‚$c$À‚0bTB‚DMH%„$Ô&×AA„N)£Diˆ ‚8"$¨D¢"‹PB0&Ò(Ø0(‚À"I‰4‚.‚RD£"N.4èŽ3”‰F¸ˆ‹$È(†‚B‚˜B‚áRÂA"M$)–„‡$(LôjÛ t$!fbAÈDWHŠQA‚Dƒ"@2"C!VI„$<Â1`!„lÈNrÐ38&ŠŒ1’B©AD/„h"´¡.‚ Ñ&qTòÈ2"€B’„„ˆ.ˆˆŽˆaEܲ4Õ(!K"a’ˆC22g&"aÄ „$Q‚Pˆ[D‡1^¡ÚbA/NVE…iµBL”€.;óB•(,V!${CI2IˆD4’M$/¤!rH’8“¤‰Ô)UAŽC’I‘I²X6g(!%8Dåx™âÆôID+ÆC“ÁZr(Æ?F¡ÄMˆ¡A/$9BM§ƒ˜&Ä/IìÅx÷hRèdBº$üŒ$l(qÈrò*FÛþp$xDñeEñŸÕ7Ô=ø¹YŸÛuˆ´Œ£]õˆNŠb…%Â0bB/¥rÄ(œ´„”T-(Ïd¢a,D¡„¨‚¸*±+$&&Ø4DD’ëC‹“ˆEªˆ‰Ä*>A!B$#ÄV€L!áHÄ€HB2‚ƒ#DtAÈ„LâÂä†J§‚Š Vˆ(„ˆ ”€2„ð!$ˆ‰DA‚%ÈRAŽùÃÝD#(‚Ò±H’FˆÁ!£Z‚…ä¸STL/²HŽHp8I6/A!¨D¦‚JF4.„B@„RB(E›H6‚d!0ˆJÈ”)‚ „¨E$ÞÎ$9rHôB(RŒ–t-E¥ä•RC‰Û$¨'Ý"/TCeE$f!rdøB*-R)Vèô()±¤æ"KbðHI3„i4MŸB¸8'K,‹qËÒ‹§̶‚µÂ;bDT[Ï+äbâÁf´(Òq¡C&Ž‚Iɘ^(T8cÄ248€¡$×$lLä"áh¢A&š(´!$Ò,á$¨R…a%‰øAAÃó"–BŠD(-HKAL$ÂL„BHkFR)!#i„&ódT,ˆ—‚$AN,5‚,²„2AC’L”A‰˜† h!ÃñE4`"FAr‘h'DRÇK!ˆL.^B9Ó‚T˜B..A`•D¡-HÐa±ˆa” °2bDø¡D`DfAøA‚Fdá(4H£ÁrD,bAB*QAN#ØH®A"™dÂŽ((RŽ$Hƒ™.&cB32%ˆ"$ChI&¢¥q„¬D!Û„N$9ÑšD@±’„rˆ!òÂ)"H4¢1 -E…DHÄðH1à!„>LÔˆ¡$ LR*8NOBDÑ(Ž„¸”‘B„£dH(¯û@DCØ’&F$#œbC (ÀŽB,HA$b„ ‚)4Aˆ€•(`†,„!Èb@aBC( A&L%Iˆa„0$œ=[$Tb<8*(CRLˆˆºHQ„?¡È†b€ÂK”"K!‹BÝFQ2"&4H²*xÒthN‚‚L‰ä‚4ˆ)á„¶’¨4)"¤bD"Ä(Ù”ˆïDbDL²‡G$K‹E„‡L(ß*DP$B€$"L¬B—„I‚F†"¡ˆ€"A" $±!ƒDQ,BA"…D"(B"ƒ$Tˆˆà‚‚l9÷hpÁJà‚„!¢p„¡%4(!d"˜‚ÐâB8R€²ˆ‰ˆØSB„J2D'‚”"`± $%§$J"HD€æAè H…Ì!HÀ(‰,„ÈDˆN$oC%S‚!LJ‘-¬*rÂÈ‚…B‚hHD(„Hx$Bò$BG„ŠBxAÀ"`°òÈ…Ñ,TQ"bOHÈBG‰‘XÐHÂBÀ$@éˆ&,aDB\ÂLd„HJ„ˆ$âÔ6óPÈ *²-µq„H’„!…ÉŒ‚$DïS"´d!0H#‘ˆO*¤8¦IÔÁ4ÂD"B„.$(…u21HB߃l(Á%˜©€H0E8) ¢*t´D„#ð·µ"b%#$BAä!”#ª%ÂÃB¨BŒñŠa³òHQ3È/ä´‘8"„-$ŠvøƒHBLBØRNZ%ñ"(ˆ/$hˆO‚âXñ!(ˆ"ø‡5RHHƒqª(Œ¢$$$9£ H°‚I’¡@ I!(ˆ!(ŠáˆHCè„h‚7„‚#2‰H‚5$„H˜HÀDFÃˆŽ¢€¤D°’-(I!¨AWw$‘JBBT¡…(h"Q@!B@B¡*‚&‚BÇD-$ˆ@¡D „È@ˆ2(U`‚0”$’aŽéCÅB@Eˆ‚tq&Ò!¸!dˆ/(1‚#¸„¨ÄEèòÑË„‚b4Ö#^‘,FXˆˆ¯*Ò8ª²¨)Û‘)ÖΚH!ØTŠ‡Ã…ÙÈ2™MˆFrClQO(äŒòH¢*é‚1…*…ùIÈH†ØÔ‘tEøXè‰;&A‘<‰¡ˆ‚8{»$&ÑJcD=A)B±aø(†:‚„‚BzÙ#¤$¨°D¬{Dºh?(Â!%уÌÂ/â:˜¦J^GÉÜ"ô,!jVXDN¢oBã(òE‰JñÈÎA¼ó©E¤H‚Œ´B²ò‰EBØ„!òHE$,n$¦"´äX9(¹Ö*²Ô¸tÁbƒ±<Õ(±/3$Y‘G/BˆÒÑôJMŸ(x’dSN¢~B¿!´òTˆø˜H^ø%,8$M¤=èù!QqDYFâbÆ#…7‹Ï¼¾ŠaEo)tÇó‡“yòxF¯'u,qqÝÈüÛ†¶BôjuÏB­ÍãøŠOÄùaÏÇþŒ$‹:ò4äO˜öéYöôŒOÅõlŒ_Áæ„âƒôt„eö­•͋ůœÜû&ó¶zúˆHÍGá:â†ôBšú®?±ÓÅøDLOÚò±*¿HûtÔdüÚí%õX:od¶F3³-3½,ÍK¿Ñ%u#ö%l¿‹ò³¨ÿ¯Yf/¨xó‘=Å¿æôr_¿”Ò^ɼý’#ogçüýijï¼üÛú´ýÉÇ÷x¿è3öÛO*ú‚¤Oiú÷uŸ¼ü˨Ï÷'eÇÔï–ô(Sÿƒòü¾Ï²ûßøYZŸ¬ý‰ÆŸfþÝËŸ“öQm„+¨žáŸµõÃË?Dú\»¿ÒÒÕÒÝò¥¹¯ûñ$|ÏCÿ~vo­µZå¥õxöoEvÁGã‚ñZjï±ÓÕ"ñA>ÝzÍ·Õ×KM?qô”„o“ìùRDGV߆úÌ…/Dù¢Ößôñ”õASŸôw“Äó'·?µôR*/!ó†—we7³/1õÎ^odý4LMAj-Bÿrõ†_Çôœ´NQ,}ñ’¶ñ®3—%wÇoaù‚²?=üú*Q/ªûGöåÜD¤ORÙ(û’oIû¾¶íÒ¯‰ÁÚodôfÖ"-?‘ô9­YŸ$ñAEó#yï†ù¦?ŸÁú–‚k™Ox¹ø–B_—ÑTÒ]æVÖö¬ÌYåBÿÖC_¯ÿÊS„yšû“÷?ÕÍõÄ÷ÉO+ú2Mwoò¹ë»ùOvö'eÇÄ—Nc¿õ¥¼o3öU”ßÕ‰ñÒ‹…ù/7Ï„ñ‹Ù/erö2-s?­þrC;Ÿäþf,OôMIÎ|_•ù#Úž^Ïç¿^øX˜!ôØö'G¿ÓBr3ÅA§c]C§1<¶>Òý†sÉÑ&3†_¤ÓñÇ?üaÁÖ‚xs/ñ2‡ô;GNÁ·!áw>cûO8Õ®â(Ó&ñÁw$ñÁ?$ôe—EU7ǃgg|ÔtÃÁo!ÖVŽsEì*Q$¬÷D>Q$_þÑDtE„w×)|6”ÆïC’Ê£þoqÁæ/1ö9no1õ9N/3ôbo1õ=x_9õ/8O:‘>½ñG9Ï8ýO]ÏzõC,®WŸÄø¶ç7ÅOcøeßcøQŸgøa߯ú–Gß…û‡Sÿ„ó”­4_üýK8OzõC¾×ÿ„âz÷Eˆos|SëkøcŸÃúVQŸkøsßáúWŸ)óÆS¿âó–2_¼ýa9o:ùkO{yGèróEˆo{ú_ˆ/BûÈïFûȯNùêÏdûáOÁM²R$Ð$2&&ðaH-A‰H!ÈAƒ‚¸â()"8!H“„V….„è*Rƒ‚%øÁH-A…Ô-A(<ŽfHã„ÂÂB(Uèbd5¨8„†ÆA$–D‹$IüÒ(O(©%ŽÂ‰’„((A®$À¡“ÉẼTAL%¦($ÈÎ0‡fhGC–CÃѤ…øI$»HlHia‚h¨J&±/àœ#ô"ÊÒ´9H#Œ±Îâ(„"¡("E1‚>A‚mM†Ô)$ÁЂ´ˆh%NFKŒÇF¨B()‚B¡ŠØÁd&2A Bâ†6Šƒ(Ú4Š©€’(̃´BÈA‚NÊp„è&˜"hˆC’ƒ$Aœ!‰LDqH$!ŒÈä#A‘"©-bˆE I‘²‚ˆCG)RA‹‚„0ˆh£¥(FK¢€ÑÄÂB¸:Dƒ–U¡ƒ¨‡ˆBÁ2A@’8jG‚B*"c(`Ašô¾ÁðB$!D„a."ŠäÒCS‘(FÃB‰1S„H Ô,A²‚Ø$¡ÁFDiD`Eè,ÂH"CqˆÂ‚X#¸H!$+†MXO DŒ„ÒBÄCA‚)!äX8pBc#ÁH!&HlØ„°"ñ‚$ƒ±Ã!ƒt)aJÀHŠEùR•âpX£4$žCbJ”Ï"ÄHH]¹;J¡-LŽDHcˆE!H†ƒØ‘bX(‘ˆ@9‰ƒ„„ÁÂ`¤BJ DDND€ÁH‰(‘$‰â#’†2…‚(ˆŒTÁ€b)ˆ‹ˆaôe€%Dt4H!ä‚D$B"Â’’$±Ù"”‚ ƒÄBD½X†Ò¨ d(FTHhŒ„FÉÆ„8"މQЍ$„…ñ…¦ÈÃ!ò(q(1! ‘¦ƒ!H”GBBMUS…‚"Â$‰ÔÁB!!4pARP$DC$0ˆ%@ÐZäA@X0$@,!$‚ŸùÀh€$ä!%!bƒA’HB@B€TŒáˆAFT$„h($˜BW""ˆ$Á\#ÄAòtB¬ÎZç„§-ï!™;(¸ŒüBHŸ,É»N°BeaqºJe…!…rØ)ôLÑŸ(™KŒ¨L4Å&¸JÚŠ’$)*‰²!²ÒX6}£´8ø”o‚)¨¢™.ÛR.!a’†ó‚ hG*Š„5dHòYœ0(—‘dF8EB8%Ÿ*AŽÑB™'‚7B™(U$B­A—„F¨„Kˆ?Œ„”IuÄÉÀć¨Í„.1ODç…jh…òˆŽ˜©2%AR;#ZQÃò)Lr„¢£¨K‚âÄTD°ˆ¢"ÊB(BÈ„Š±DfYÓ\Beä'†•Ø)8¬X$²ÂY#?1‘+A£åTHÆøˆ…«'´Bê¡…Ñ"U#X’ŒH‚ÁÄÃŒôBÄOˆQAFú((ƒØhBɧ–x28ƒøІHÒHÂ$‹ŠÈ1ÓˆH|DÈ(©’('1¨ÁM‚º¸¢˜KAÏ,HÒ„ñ\çF­F¨aÏBs~–Ï©r8ü”O©áõ½'ä7üÉyHèÄøÛGÁ•ñÔÍQ$OôÿÑô\Õ?”Ý™x˜ÖaˆéŒyÌøJJßÜó&_ßÄó,,–þ‰}GY/1²!ˆqê¡zŸ×”³ñŒ†ÇKOD¢Xˆ9¹®µþÌxÕø²7+:ùœ´ïü„(ˆ¬OÅ!ÜBöU!ßåV$¯„vMùa6O5wëü¸Ÿ»A2Kù²×?9ý:[¯­ôŽÁ×Uƒ¤AϼýZN/%õŒÞ¿µýH?‘åõõO}ù…ÕÏŒü’+ŽÑŸØø…FkâÏïþ?!‹æ¯†²¡ûŠø)¨Ÿ»ú›½)û±ŽÈñ%ßÚû¯¨OCñ%®¡ú8ŸˆÛÜvUñm-Õù©;/‹âÌúä~㩸ˆøÈœOÍý&Ë$&$åDrFR”ña_Rú+5g¦Ió6·/KóÞÖ/ñNŠ}Ç—QLtLò–Ç%òTOµÑöMI5òCB4ñIA_qøEWŒÑbqÖfuÃóBBoèô7×A&ñABø#/+щñ2¢g¡«¬ù´{!#“2ßÎÓD#㳨ÇÁ|TÕ/1Ò"á…í„t.öJBŒü(ÌHñÄ#ÔBÿEiŸ#õZ¯õYI$ï×õí,ϸz7ö2/cò3<ü*^ÿmô‚ÅW”ÃÔDôHŸÿìôL[?qõ‰›/5ùI[§•OwÕßÔô׿!É–/!ø’/äØ~ü'çÿüÿ?l]dW”‹º‡ÈïÓú5³¯¨{“9±ÑIrŸÿ¼ª;û1¼OJ¹´ª»’û©‘Ÿú´Aôl-U¸¨Û3²±½˜÷ø¾o­øBHBjòT]w…$'RA¯cñFS¿á·ÖV=/8׆â(“&8“&´AòãžVu!¤„7ׂ'g/”üz.¯<Nãï%ôBiM<×-Á2A_ìsFøARÉôå^GA_Æ„øs,mŒoÃØ|:üÁ£ñéç!=c?¸wŒÄ6A¼“´áBñi–raÌ¡·×$/A”ÄçC,¼”èïCäs8ÍLòAŸbñADñaÝ(Q–-Oxÿ(ox³òÇ?ÿ•ö†—wÕO{ùK®ŸÄø¶—7åOrùREßþùRAŸöùcß$ûEϤó”Wï$û”6½ñA¨_8õKH?zÿWHz÷Eˆ?súÓ8/cúS¿ëúS¿ãøqßãú6Q›3Oyõ+§ß™á(ù.<>²?Q“ïêøª"%ú(™%È(¯Áû’˜ѯµýxR¿¹÷K«.ë‡4ñ‰y¯+X¢ohø×V}Îï¥õd½_ñÑÔ™Dü“_ÁýΆ.¨§¤-š§!'%'¤-š¯h¯©Ÿ„¢hFøF/¨¸lýøH‚vTü$ÌÏÃõFo#¸Tøî\O±±4óTK3È|_Åò_-?qñ9i÷ÖÿÜñ½›‰gk_Eñ¶“9ù¿žï+xªs9éCò,Ï©»¹ñû™ø¯5ù™ÙÏ‘¹Ù¿ûûé?™öûÚ'*%ö†×oõýžŸ¿›ü‘¿ÿ‘TŸ„ôěϙô„–o/õØ*¯,øšú/$]"§$¯‰üÚŠ+Ÿ¢*«Ùíõ†Â§Î/‹ÿjlC¢DªÿŽOíÿÂTŽn¬™ñ4~øQ±¯Žßªï-z2²ñ’‚½Ç¯8üíɾÎï„ÔôAHOhýÛ]iùöJï¦ýÂØ­’/-ôRO¤µJñJ«ƒK!:ªØÍ´œìñ¬¦¯†æDÔDô,ìÏéõ¤œOmô~„ï¨ýHá‡÷n²p:ô%AïBÑ4a÷C\6,8w$Ì6CòÅ2GR_ìóaŸ+!F(7Ç('C~:ôEÁ¿ä>6V,=sψÂ2Aä…áK¾–õøîo)õlœ/÷,¼oô·™$‹$$„,2$&6I$„`ŒTHQ(@¢§!Ž…¤W‚.”„X#$BøaH”ˆLfHxì(Ž‚,O(ŠnB@T‚$„ÆÌA‹ŠÐˆI¼ò„’‹$ˆŒ¢ˆð„"A.B¬4¯c!8BÄáA¢AˆŠQH‚h‚A BtÈP‚ƒxY‚:A˜‚€qè<8AÀ(D0M†$Q(0ˆ°d"K(E‚ú„,ÐBˆL ƒ‚ˆƒy4ø>ð„‚C„A"qH„K‚C!ŒI!1ˆAƒ‚BXA0 ˆÙŠÄ1HšùÁŠ1B ÒHTAƒÈP(À‚ƒC&¦$LräHØH$¤‚À$‚£"°ˆq$ñÚóGhC-XB"ˆö„*‚,#¨$'#Á$PŽB°„ÂCñHA„")áŽ4#Ø$#b!FªŸLÂFÄD(q¡fF”È$‹”Š4ˆ1#2&$¹H”j0h"ND.‘)(%’ÌžB`Štž LòJ„)D(1!IÔBˆ-Åh$P(Ei$"HH2†è"qH„á*2Ô†!‘„£‚(ƒ¢I)$&¸8D/ŒèA„"J"ˆáht(¢ƒâ²3Søt%è„AxH8mDŒ¨I,Q‚?A‘'"](‰\R/‚¸r$4HFi¤ª£t}4$ˆ,Ì’OÄáÂEÈD”‚:¢.ÄšA¸ReˆA-¹‡£AâA!²˜‚ú&b„Œƒ2ôj‰º„aˆƒ)!åóhZúR@8(B(!Ž"À"‚0(ÈAB,€bH娈!ª3"!!(A(A‚FŒÈÁ@HàH"Á$ æ„‹ "ˆ1`„,eB,4BˆzÓƒ(((ˆˆ@QßêJqzÕ(WÁ,qAè¤Åsën‡ƒáBh!Çòá>\ô¨MA‰Ò>|{ôˆsÄŽFé,S…ŽsÇ)n•¡.„#ñsŒðá.E)Ò”(MÁ«!MÁ§W(u!ì(qAè,S…Žóéa~ƒáBè!xqòá>\ü(MA‰Ò>MÁ§G(Gì(a„Î2Eèè=œ:CôiU¸Ôt2ør/òÄ(O(ÁqÇ(¾òAˆcsE(òåD¬³EøiMˆ/ÄÈ'S‰øsŒ)rר!CøaÏ(Ááë!„x2tE(òÅ&ôÁ>N„/‘Ö¸Ô|2Õør)rÖ¨!O(á(áïòEš&d„"®AôÅ~LøR(Œ8Nˆ/C”ˆ»1 ˆˆˆ ‚­ã "$(]D@ ‚Ô(ÈAÇCHAà(A(2"C ŽP"ˆO´DH€8ˆC;RA‚*ˆ*R$$(/ÈJT%†<’ˆ¡ˆ#ËÁ,‘ˆNbÁ,aBH0‚‰²ROq<Ò!tMrXêt1"Ç,G‰AFÒƒ4ƒã!´"tDRKÂJ#öŒiÈR+‚Ò””²!’¤)ÖÒ×)5".Hšçg!’5-H?AÕ%ƒùŽ"3¨&Q.†‡BfaÆ-E‡!*rHÂD^ÂM’OQÚ¦áAò„‹!)³òÁQA’Cú!JD"­œg-&vÉ¢‹‘cQ$#8+c<2.2jªóBÔK$A‹¶.":´(â!üH©Qˆ*ȄלQµ2ÓJÙAˆ¤H?³e*‘Õ(ÔDI‰ñBQŽaF£¦xa±Háäl$L˜!a"­t¤Ôò„IÂH+1„oóĘ'¾‚´21%6dB!2‹‰ø1B,‘ˆ%ò„"‡"…–tˆd‚+JaL^<ü7l„!D)ÄHD2(#ñ–&o!ØVÙ„HceOBQˆ“dm†-‘Í2ŒÔ©èÕ«±(qøH›(¬‘()qÅñ‚e¸Èq‚Ä”„ÔÆHâ‚X¨©„áADʉyâH¡!FK('#÷©2B‡+—‚B$ZyD¤Q‡BI‰˜‹!Œ÷-$O%òn¯"üZ£åòrO|JòòKû-’?ëõw¿OÁÓ„÷fýT(ɶ’øXtÿ7õ–_¿6üÛ¯%õŠ¢Û÷ݧõêVŽ4íš:ñcVÜ÷ÌúO…ÿÒñ(O„ò’Чãï•r•ñ'Ö§¥/¥´šò6£m“/"ñ²®jÛ"óS:ŸÂ²/#Ý*õlGC*üºè¯§xX¬(/CýX(V¨©OAþLÙãׂñR'ÿƒô2¿¡±Tô8|Oò-Ž/wô[ˆž"ocù2ǯtøÞ¥_%÷+÷Ö—½hO8úeþ/µýë6ýë¿5ùZï,õ*}Ïþ=Þ§ç¯,ñ‚2oCù²G/˜õIxïÿT©çÒȯ„ö„¸ïcø“?½òwÏ¿1ù’o)ôz¼_!ú7„>/)ñb/'ú‚S¯¿ã¬õ:â¯:y3ñelËB*ó8ª¯‡ñô~êÍ’+‘ÖèÇ÷´ë|$ÒõOÿöò_K­JJ·´Ÿ×ô«ïÿ¸úmŒ'b/bû†+¢tíõi5o&úh_Ôôi/ß6óíÉ_TüFîodôÕË/,ÜbþÃR®eîæï-ød/kò¢$o)ügÝ/oôêìo£ú!Eäfò&2o)Údüj/äòÖÈ­‚/äÞ*ñ£'/jú†¢_„y²ô‚8ˆ¶štêê¥üDÍD‡¤/,ô¦ÊÏHýL¨OäâœÈÄøÄOŒÑ¢þƯ­øÃ?­ýZŠ+¹W{/jó†"o!ø¢®"+º?·þˆÒ¯­òBù¿ô,ddžnz/iöüÏBüøŒo¬ñÒØ‹ÁÇëÜòK'p3ÄA¿BÒtÒ2vÑVŽsÁŽ2CøÁ+A,Q7þÆxcÞ™x;ä2~+Ô<~ÁcÅò‚cEú‚2eòÁ"eóÁ!îhƈ7ç)x2ÄïBÒ<~Òì8wMø‚2A¬3$?¬ìiAƈ7ÇIx”Äïb‚<è£Ñô=Þlþ7AŸÆ÷AßæôaÏæ÷aßÎö†óßÎò†óÏBòÇû߇úÆó—Ö/~wwì~÷m/ÿŽîæüéü?1üíÌ/1þìöo1þído8ÿþ,O8ÿ®$_¼ÿÿ-O,çü¢·÷×®v_Æü²¦çèjþ>ÇŸÎÿÁßÎüãÏîûáßJò„óïKò†Û«(_¼ýû(o¬}Ûèþ[øä^ß„øòÎ?…øääëÁÏîÿÂμþÌèïü~™0$1(IbbdLÄèÔHP°8O8MS¿„BrAˆ2F&4Id'…D%xAÜTH-A…”Fð§O(EX$X$-(8EhB@&AòA<^A#±("¸8:ŽƒdAŒÂ2EhBÈŸs‘ÃOš²(…˜ADáHô!Š‚Ø$bÂ!†!5$EqHD·H4kBØ!¸´b(Y!8‚IÒCè¡"ÄJRHB„_$ʈA%¸BI<Á¶Ä#ˆBF%j„)¨„‹$ZHˆÌ‚ˆü!Ÿ×„)á‚”ˆ/¢0&—!à…ÁL!‡_$ôÁˆ5(aZJØHÑH$áH‚«F„RXB„$æA"8BŠÁHŽ4@¢8D!!1$!€¤„(BšBŒ 'GŽþ3Ë“bÔ`…C"w…‚02’ˆ,â"‘D B‘(Æ‘+$J{ÉRBáŠÔB42“’’CÈ2„Dª)B؈#á"4$ !Œø#%¨T&20*è\âëÒ(]HÈ"ˆBŠÅJ¸(e8/ª +•4#‚‹¤%±*E˜"Š‚Áˆ)ÁAƒq$AD±('Jq"hX!«(MZŽD²A›aÉ Ah@´’ÒŒá*ÌD!<ˆ¥á-„B+HÒB"áQòˆ"Ša‚(BxAbFË)/Ê(Ñè:øñA9Ec$FBÖ¡D¢š‚£ˆ–´äQ„TIB±¨ñ‚"«?8bZ9ŠÔ"å‚•,)J”"/hñ!Äû¡‡4…DÂ/H2(Má%¢L#Øx¢ªl×"V¸R8’"/RȢÛ,‹!cÒ¤Ni#º„3„’)¸‚$²Üþ ¯„R$„pÈqHRŠ""‰" J„A…˜Dƒ$&!ÂUã¡F¢ "A,qB˜”"0BÀ’à"!a„J ŒJ‚IqHˆXR˜<5}4ÁFØL²R-J‰"ØãÔ„¸*ÁH:ÁH¯+aÀ"ˆ/t($H†XD(A'H x8$†hŒ.„†!’¨DT‘€"ÒDCÊ2D$Lè„F¤)‡B$`ƒ(ßÒN2D,dB•2YCÑRQ<d,H$åHk(Q„K&PA-ô„Œ¤2LX(/ø&\Ó!y:´8Iâ4s”±¬óÃ[§ÍBPC„qRHñ*¸d‡(4J¤,ñƒ(CØHQ$LºLÈ‚b…ôN!‰xIÈ‘$F˜òi¥N‚IÎIÓß’Bă"ÔA˜,#EÒA„ˆqAøˆ"J2($VÑHÒ‚©)‘!O"Hµ˜$È$ŠÓ…4$)Å(R‹„¦‚¨adC(B”b–D„q"DÈ$„J™YM$ˆ«"‰xN"Ç%B§BÙÔ(‘RÑA†’Oˆ$ã8ÔBqHIdAÐ!!;h`‰$ˆaBá(X(i=#OšMHEÌ¢X$©I)zØ‚hªTHbAˆÄf%8,‚N(FE¨H*žd‰¢A$žÈ&ȑƄ+‰„+FAÌ"¢CAôˆ!£zDa†ÉÂVT‚ªaˆŠq2D8"Û8ƒô$"0!˜D»h$¡„B-œè!hF†Ò"Fhb‚QfHˆšBC ‰h„‚(Ÿ8 "”JA€(BX0Dc( 8HŽhø„dd²H˜€!„!B‰‚(’B@‚‚”,ˆ‚%H‚ Bs ÁH$VÂBIx8"r&¸R$ˆ#‘$HY3C˜I‚¸ˆ±H¨‘)RMˆ`B#!ø!XÀ"6$ŒŽ"#‚-ˆ%á("òŒB‚Cb",2h„$ˆC2LC"B"º"„R((”ˆ(Go"È0X(ƒ„¤,DpÆHÌ‚HÈ2€x(a@D!cRaA†(A"p3ˆhAd‚HÀF¡,4H.BpAHy„¨€HŽaÀžó‘(ƒ´"yD¢¥2ˆ!Ð"$X""g‚$AˆÇd'rªqÊ‚–(‹¨ÑASfŠÂ(ɤ-"RFñ"AŒ(„„À!'BldÄà$\D(„ˆÀˆ`"N>À¤H‚ÔÂtd¢IŽF#‘„&d!IÈ"aJ)8”$Œq„¢´*¤&BÔ!ƒ¢3 (‚(DŒáBB !¬Á!$!$¡+…‡ˆ#h¢"‚,"ÒHHH…Ö‚xA’!-„…ì(6³dqM"A!¡!(,¹BB¬1E‰YD&ì*4+A‚È2,"‰2DHLØ‚-˜.ƒC’!#’¨!²JâR¬%úŒ°ˆa„„'"À"† ‚#ˆ´(1(ăT"‰ÂBD-ÄK(Ý* qAAB‰!„!.‘”‚ñ؈A‚ƒ1åéMAM‹€!12P¡8!)ôAàè‘a#h‚AI"&ÂLdBÍ$&øB…["\Á(C¢˜ƒB.˜sBÈ@bH8ŠD FaLdDEè*Ë„XD!P$@!(!@Ê„(F"$ È!Ð""P‚$ÄŸw RB Ò$! !†$H”ˆ$A‚ hA$Ø(L@ˆ‚$”@1€$$(E„äA‚„ DÊ‚ÀÖSËQ—!‡!™qRDLáDòÁbš²Z‚ù"céäâÉø¶27q$hÈîVk/Bñƒùá9µÂñ)“ž"‹ˆŽ2ZáHrBíƒ!¡¢*C²(’K1¯"µQb4û‘ߘùX#.¯"¡"ƒ¦¢¯x´Dò4¬A(«åÝD'ÂM‚}Â-ÊŽÈO!æ¢~sCRBEBôƒI&ò2N—1I´èña„’M‚–”AÆdHB $%$øˆ¸DyÔKBOøÅIO1$ÅT"’v7&"7h@z"„r¨Ò¤"‰Ñˆ±"Ò$(4$$+¢›ªçbòÂ(%èÂúÈ="!/$¢„ˆ$)XŒ#GÔ!1˜<’Xk‘-Â,x‚Bä$“D-2þƒ„nˆ%4D'TO,4$F’¨Í£—1‹!-)1¹j3"ð&š/Â) ˆb"Ù:”‡$¨!5˜(¯¤b„%âHY"!(B-D&Lw$„’-Rˆ‹!A)x–ô©Ñð7íïå÷‘£±ò&¥-Iïêù¦^í¶ïèù6o®ñN²¿<óR¿w¨ô$Nl/!ø²ÒÏþÁÏÆü“¿-ô"ã÷W‡ßNõüήO"ù„´_×Ñk×*ãŠû¶r<ü,¬ÏÂø<Çw³ôTV·±šxúÝ4ÿòöT&MNÏBò2OióšßèRýÇú‡æÏBt4ÔÈòsïÃtnöt¯;]ŠŸŒøX˜é÷>v£ÎVß%ôQFo´ñ‡!b÷Y>_gýî–ç¥/hû÷–/cÜjýŠ÷¡ÿ¿g…Ô„ò„®oêù^ß]zñô”™9yó;7oõö§…ß[}ßü¤/Ëù¶GÿròooéÛZŸBú,,Ïêú<>OÃ÷(¿ÅÒ¶õ[›?9ø›Þoûò\gBïÆs4ò"®o:ú*­ïÒú/¬ïÊÜβdr.ø¬óßêñl.ïFòLîo¨ù’Ч¬¯ìäëÿ®6ðhj_Æv.÷IH:òŸ–ò*2ÇeÿÂø&¦o"vò.Ì/¾ô"ö¾þ(E¬"ïæûÂ*Nž~HˈŸ…tŠú"$—$ï÷þª¨odwCø&‚OHó¤Díj%ª˜ïè¸8r,TÄïÈxön÷Ne7!‘§aONûG&ÏDñ^$_E³ñ¤$ƒŽ(åw„Ü.ü>dEÌ$-Ã_Â×lôLl+µZÙˆôJD?}ÃÔ@ø7{fòS«'¡hwõ¬j/äÿ&/kù¶²oaò"–o¶õ{ŠïoòiNlφôèæïˆÿm/ËüHUÙ)ýÓË¿µ÷;Gÿ.þÁ¿©ù´–/Iû6†k6çñ¸{X•BRDÏèÙîÑööc‡âMS·¥?¹Øëþ¶Gÿãö6^Ïâò$/A¹”ù1¡§ø_BúŒ®gÄÏÄr,ø¤…7lÏçõ2\ÏGñÔˆ,ýZ~²ïOüq»'C=a¿rÒ4açAöŒBÎs…è(SD¤2„¼!xå/qeŒxc,ô4DK§BɣѓþAœvŽò{çÈ,ñ$&?¼²lòÅwþƒseì‚xçÌ‚gC.ÉçbœtÒ|>Ö˜ÖLô‚sÝ$/(s$ôÃ:CøG'Hì!uaÜHúsŽJx2Æd§cŒ|‚<MDËl¯5ô)Nïô)¯3ô,,ï5öi,Ï8÷h,o8÷($¬÷yho¼÷iH/þÿ}Hî~߆üòü·§nîï;ôiü¯5ôi̯ömüï1öilÏ<ÿk,o8õ*¤_¼ý{(o¨ñIˆ/úy_èjóM¨/ky_ú(„oôi¾o5ôiŽ/ö-¶o5ôI&,ìt˜)´¾"ÔH´ÍALá$q,A˜¢ŒBna4<ŽB­HI(‘BM£M0V…’ŒÔ–âHQ‚(%D4EFDÁ"b°â!(L"‘$F:$$ŠB¦‚ÜÈQ&ä4B Œ–#œ"šÁƒÉB„/‚„š‚"G˜aä"…$è‚qB4‚†ƒœŽNß[W‚JJC’H-$‡Ž$ˆ%¤#£´”´Aa„&¸„4(ADÈ 4‚N,qzdB#¢ŒdbM(ŠA!øA8G$š&p‚²Hq!A„•Ë¡HÉ(9Ä8 ˆÁ!CºB‡ ˆLè©G¸Èô)!`K(C4D*J˜hIˆÀ‚‚Ÿ9NÑ„@HˆAl'"+‚à%QH@‚SIò#‚Ë"&b„-A‚Á ŠS"8(±"†Aˆ"a5Nˆžáh˜1-DjHá#ZèBB bˆACȃC "$%$"‚FH¢A‚…DdANr&Ãd,áB‰À”„€‚$ˆÔ!"¢I0#RN’‚rÀ$ŠCJ$‘ˆËHH$o]A(D¢LØ"D€(¸"º„K‹„‚†’„,Ø2!Á„>’dBªÚ!c1#"Ø(#0#’JÂ0"$¦Ò,h(‚H€’ˆŠÁ]ä&´T„8k„Œˆ¡„àT8å`! B!ŠŽ‚ ˜$€"Â"ˆ I 2!Á¡("0(8¡ˆ‚ˆBb@"Hªˆ(0!&‚ð½  ¨H@@# ˆŒAÁ"`ˆ(‚ È‰I‘ˆX"’#ˆÊh@A((€*ˆ‚`B#Mù3…$BÔ2´ƒÅq„ñ’’!‚Џ‚¸…â(áièÆJ$"â¤ÞÒ"I%‰¸Ž‘$J9¡Èè*jŒ8Bx!…è¨ä$»Ñ¼´9úˆ/3Ñø’h£XFKˆŠâˆ±ª™~1M%(„I¸A<(IÚ,¤ÂH…¦HŸDSˆŒÂHÈ †¥‚#j!!ŠÑXò(Xƒ6¼ô¬‘­ÁM(î‰ÄŠôB-=˜/Y+²¢â"®"ó˜!²(È#"<ƒ‚1*¡)ºØhë8†’Q,C„Ža*äH’ÄŠ I(¬”Žˆ ˜$/X8A`$#‡Ò!ÑmRi²EòBZi’B†2#ð!$†ÓBñ¡Ä2q±Ó¡D7Aëo)±!ø2(£™#Ñ‘‘†Ñ2á"ê8¥A(4ˆ4‡6Œxbª„,Ä!à2ê4ña!Hd‚OâÕ2¤M$G"ÇHÈ…ôý×ðMLK"mG¯‘U„r$ü($"庄áêâo¼ô£ø-&neŸkumhR.…«ØÏ‡úãO>[ˆŸŒô‡XÑouùŠ-?ª÷e8ïhó">/(ѳóC{?9q2ó¹™ò8(øSs?6ù’JAúQ²íˆ¥zÒ:öj8/ˆõ”mªªâ…çªõÁOÇñÏBtVuAù<´ÏÂ¥JÍDç”HodøhsT&ìÂóM;&|!Õ!ù„«ß(ú2„+…kèÿ¾úÔ>iø+±/Ö„öXe~òÑsoŠòƒ¬?ÒÿÝ‘9ê¼ùÃ\¿Hù#³¼ý?¦/iør’/:ÿûj/½û»²¯2û3!Ÿú))8óá²®R¯ò‘²¿­õ“ÂÎ?+÷º›?¯ü2‹ŸÅø†„k‚.Ñ›S¯û’µOWºDö(,Ròåµ_öœÔË;ž¦/Œ¤y‹™iøÌNÿ/ORRØ?äòY•qéBÒ„ò-róT¬k1OåkõÄóò˜ÕÝZômDÏ–ìäô(ôÏkq-øQø_•}YòHY/Éý…Hÿ,quí~v¢R?4\:­Š.ˆ+!‹"?<õcƒ/,ñ[êŒ÷JŸ4Ý1¢?¤òq¡5aŒO!«aùXCOBüT·×ÛDa_ÔùY¡…áÅ¿öJ¡UïÁÝX1™-ìÛdß”ö”ñ•Ø™Òeú¼…?+ó†2OAû6–þÎßõÞûoÿõY$ŸFöH)OÒþÏ'¯gþIqï—ó”I”ü‹S¿´øÑ™oôþ®—?"û†–/!»¢ÿñyú™Š/©³"ò)!—’.Â?Ë¢/¿ö«Â?8ôʈ¯™õ{Ø:¼›ÿ¢Y¿ù’†Ikòš¿Üÿ¼lß”òa!ÏÖôíßóÄœO¶¨ýŒR«”ÞÈÈü†WËp2ÅA¯BÒ4vÑV=ŽsϤÁ2M¬ôQî!ra¼!xs½1x2ô1A·KMÁ·>=aÕâ8÷Ì(Ž2EòÁ:G8¼AòáÖŒxSÜ1xÕ3|:Õ\;þAaÝAŽsÅè(ôA:G¼1Wî'ÖxsÌ/AèB|:„¼ˆ>-MóËmïÓôhuÿ‘õh¿‘ö,$ï‘ö-´Ï¹ÿ=´O<÷.4_¬÷e¬ÿ­wUüéÞwÕŸîõEŒ¯÷WüxüïÑôùôÿ‘õyÖ¯‘÷Íôï‘õMdߺýM$o<½8òå›”òŒ›…ø¨Ÿ„ZóAˆ¯[ýS*®Ä¯öéü¯9ôéÞ¯öͨo±´iû”ÛŸDû–Ó‰ûÕÛŸ”òæÛ—„îÿß•òä}Ÿ„øöÍÿóôÌ«QレõøÌ«qÏ;u«O"$”4IâBÁ„aH!ÄTIÔA¸ä*‘Ä+!O("MÓ+&I1aI3G.–BŽ”äH ÌÊA‹ºˆ 2ˆ'£Ž’`8b(‚ŠR…®¤¤¨ä*HøÁ¨NA‰H‘¨E±¨Â§!O8h(‚&¨¨EèJX„Ž󉼄ƒt4A‚ÑbÈ!D6Â,rÁdˆ'IIk¤ˆI‘ƒÅ‚Ä’¥J/H“AŽ$(,‰"h" 9B‰l#ˆkÈ‚Ašr‚k„ˆ(,вˆCthT‹BøH$H†ÂHP‚ŠÄHSod h#$*c(’"˜„a)"( â(„‚8‚…‚d.J² 28@"/ (ƒBŠ„ÈR*á(L¦á$a„;ˆ"(!¨€2„xQ &hD¦‚D‚ BKNã^(%1F4„L’Èœ"C¤¡D+!Ø´[*”D%±q¡¤FÒ¤!Ä$¤(-„ˆBp©8i0!È‘Jž!…d$Â(E±J6B¤ÂˆÖ… A™ÂL*“(G©J'’/Äèò‰Ÿ°‚dC$‘Jn¤CbA"#’'‚A‰‘,H/B™¥a„)!Ê/„ E‚ˆe#Šj¤IA¤$Œ`…".ÒH¡‚¸è¨Bw0$#±$IšLB„ˆQH"Š-"±HÈ’A?…:̱Df‚E"T±4&’,¯HsAø$L¢í"ËBAöøHŒFá’Õ„hEe“™/¤ä•#–øÉb"ì"æ(ôœ+‚b„—DPʱËâ…¨6Â/$Ø)øÈ!$«5ƒDä!AÁGØLZH"Fh½(¡„‡ÁØÈ’+SIùF[$!M%È#“„(0B”"À($ SÁ‚ ˆ(HŒ8*4(,DH!Ä!aÈL*¤.Aj"‘!€J.$¡Èì=ȤA„n@‰èDÕH‚BŠ‘a+B C‚&pDŠÈQ„dˆI!H‡H ( +"K š”¨*Ô€ÁÈDJ$Ê:&$lBÊ¡‚D@mV1bO¢!ÅXCtx3„¢8NŽT¡–¡"H‰ò,K$‚WŽ'…ƸÁsƨCi…]‚£"b.‚rƒx­¢b‰4,/–mlÉkBFžÂ'O&Â,A°Îá"ÒBx2têä#’ˆÁ‡DEˆ¶‚ý"Ï!”8DIá(ä$ãHõLµ“ßB?"TFš(RˆZ$d!#¡$€„ñˆ4"Ô$‘H‚ƒ±$|" "'!A(ðˆ F L#ÔA’‚/(BKB‹¡BŒ’’&樢E&”HÄhZx"¸$äÁ‚$!±*LÃF)d„œ³D(”4-„ (G(íª$f‚\ñˆ$šXŠ•ˆá'„I¸XBŠJrŠè‚D¶!è„¢Aê2ŠL4š$ƒ™4£ˆâÈ´"Ú$I³Šh„IF ‰‚äéè&1$Š(”Š.D[ƒ ©¤!J’(B†¨!N( ˆ³ˆ•b"™(„"ÁˆKi F¡Î(.Hr¡%³‚ MDÎ8Lˆ42BRŽ"A‰ŒãH!(L‚¡l€Š„Âh$ˆÀBKþX"€U(J0(ˆŒÂD "(Bˆ…"‚ ‘e@ ‚4B‹A‚A"B€"!bhƒˆHAh€(BŒ,&2h*ÅHƒ”ƒ&!‚E™È!ŠF¨$ÊÁ¢Ò މ¨†1‚ŠÁ‘!<ŠâT"dDª1I¦$rH¢Q˜f4""ÊÁ‚‚!C4H+„*,1D"Ê$ˆŠl¡„Æ(1&?ÿ cÃ2B,B¤"D*hAŠBÔÂ(EEHHD‘x¢"n(@(Á@…$(Ñ…$ÁHÐD´$& *ÔHÀH7F„€(Á·‘ÀJ%D¢A,´(b)H‚¢%‰Â$ŒbD›F4Lä‚rÔ d(IE²¤¡:$&axp!EAQA(V¤DˆFl¬AJâ(!Ø$DòDDâ(D”AÎBC‰"‰_=€!(„NˆJ"¡"b@(hIB8$AЄá@((¤§„")(’!P‚T&DöáHMR„,E¢ÄIèB•„„"*ˆÄ$ €äQ`Š->ãKRÒd!)RE‚ÃA(AJC´(8!(ˆ!*„HÁh*B“œ‘JA"È£ƒšBAˆ+D0Ì‚ÂH°D!áˆ"„A(*ÆÌ°"¸A‚Dϱ BB… @#©¨‰Œ„ ŠŒ²ˆ¤"$(A΄(BÄ„„HlÁFÄK"4T†D‚(ŽB\(2A!Ae!˜¡Mb°Hâ$âahh$†l>ZÀˆPˆP„Q(€„BȈ%8(‚(@@B"%¡(LDAHDA@B„øÜW$!R%r(AD@$H@ †QÁ‚ˆ!"€AAAÀA`DCADFd„HHÄtc‹T’¡T"…x‚:!"kHcÕ¢‚C´Fü!”“dB›"ft:ô9„AÜÑ<”œü(AË8ß(6­Iâ!2HƒtÈá8EÑEú*DeGOIÔA´SŒÎoŸˆ‚‘ÐDcIè­q$Ä„/ØE´,„.’ˆ(¢ÿžC‚‘¤"NDŒ¬ˆHŠnƒð$ˆ*<ˆ*‹`à”£.#)º4*(Oœ…(A¦z!ä¢Ô„ä,å*Ñ!4)]Ã5ˆ´8f/F1t'DZ²òD$ƒä%´Hä%á(õ~Iä$„AAÃJÂB%ä¤A‰â¡vÉ8[Œ£8¨*Sˆ‰Á„Jb‚BBJÈa"#ÂÉ+AƒÁ%i.ŒQ†sã±Dõ%4"rEñ$„),2 „Ko„¨1[ACaȆrÁÈ"ID¤D&4$GB"ˆˆˆ…$ˆðÓ4„-ÍK)ϵة÷aÏ‘úY#Ÿüöж[‚ú"ÞÎË„_™t8yAtnø$i¿>yqÿl(ËOÁü¢G…‹ØKâÏ¡úZ(Ô÷¨-¤+#H/¬±Iï¡üÞTOBRGM$oIýŒ×V*õHŠ¿l¨ÿmîÑù__Rõœ2H»qáøv©úVÕoy±aôH$MAù7ÑÏÃ÷”vO2ܨ\¢/(ø&®í¤R5ñXRmL¿d¡¿´ñ*gýKÿÑø{=¯„©:OÂêsüKŒ¹$ô¼¸×Wn¨‚öšoCøzª¯¿×GœÁ—¡?<ÑËö=èÿÃúÚ,¿®ãH¡¢/µÂñÈIì/süU%.…Oò¤÷Vü>nOëódÍ[/%ô‡ÖßQÿ[ý÷[ïìó$K”/õŽ?OÍ÷L¼ÿã|uåÂÔÎòíÞoBùVOè÷T¬ÍÂN"g¨/âÒfú¯Ö4OÑôH?¥Ò—õZ¿‡ô{3_¿ZÿÇ“_ÇØbÙb³´ùEÄýè4_ø>aÏÔtiüMKÿÿÆ/áþ[>Ïý’Ú¯%üÓ(¯Øõ‰^ÿù^(/há(ûƒ™ôÓS/šý|äoARTEôdÏhûÔŠ/‡ø[#¼ùÙš¿Eø÷O_ûóÙ7Ýûœokã+»‚ÿ]/úñýÞŸóúRIO’ô-HŸ’÷•ÿOký~¼mlO¬øŠ‚­Šwxoª849õG¯5ñZSŸ4ôK³ò_]¿üõ¥3wi/Kãa¹¦ÕÄäÙùY=^üUhW‚ßÖòÈï¬õ¤ÒoSþù‰=õKÊ?ü›ßÿ÷éϸû'¨/Kù’®S¿¡ü“‘Ÿ®õ!eWVGB]%OZöï_Orÿ?áÿéÿœ[ï‘ü—ß{õù_yÿ/¼oKñ†2ž2oÇûÿÔÿÿñ4eßDò)$×ÖONòÊ6Ïgø>ÔïÍø„JNŠ­‚¯¢xªÞKr2Ôô:$íC§¼vÁAÅòˆS×$Ž2EòÁ:A¬øé'Ɖx[ÜŠx:Ü“ü$íÁ£Ñ|Ø’V½¸W,Ž2EòÁ:ÅûÉôþYCÖLxsýKŒ¯CôbÁ§A-Á«ANáïAôFa…òÈsÕò„2EöÁzG$_¬qDòåÞBÆJøsL/Dx2ÔDü>$)<èã‘”ñ|õEß÷õaŸ÷õa߇÷Gϯ÷„ßÏ-ó„ÖÏ!ûÅßß…ûÍ×ßÅùí×—Å_~õIŒ_ÿ[ŒoOýÍÿÏÿÁ¿ÏýáÿÿÍÿ­÷„×߯ó„×+óÅÛŸ½óÄÓŸ¿ázqèzóA©/[ÿ[¨/[ûÉÿ_ûZÉ¿_ùëÿOû鯯óÄ÷oó„òkóÅÿ¯óû¯ñ­ÿW‡ßú÷eˆ¿ÛÿsˆïËû:ʯNúÈnøèÏjúèÏÜCcˆ$„,R†&Vˆ&hðA‰”ˆˆ0(ˆ§ŽP‰P(UhBpAÈA…Ä+!Ž.$´HB(CdBG„\!E!qAýA…¤A°I<ŽRDXBI!„dbÐñ8¨Ð1BX‰"t$*Ô¸B(¢CE±84$AÄ(H&ÌBy¨"ñd‚a,a:ƒ†)¤¡a*<‚A¨Æ%AÄ!G,\ˆ)‰q"É(áB˜"ˆJÒ¤ˆ±D:"E!b(8†(q£„!ˆµ‚2Tz;‰H‰)%ŠÁ$8Gƒƒ2(Dƒ!2• A!A A*[‹$0EA2E(a 9LBŠB ÒHd&DI(08-$ÀB6õAu£†rZÁ$™Db‰Â\ðU((ŠB$œä¡Êa•,/aЉu"„E)¤(>H…$ Ä"œ¢H](‚I)2"²I‰ñA"MB‡I‚9$ŠÑ’¤8×F˜/R¢„R™"u(³„•ˆB‚‰óÚã$†Ì‚)ˆ‘!L®CAb4†È"G‘b$Â!R¤$‡D4BT(M(aB)ˆ¸"Ôˆ-4Ap(tb'(D$F‚Q¨K¨H¤‚(@¸$R`B*4BD*9Hv ©…?b1lZ\‡FB‘™Á.D™ƒÃ&‚O$ôS¬±ˆ¶Ö2%ft{¡“.T¡D!¨Y&úD-EH²$‰ñ©D¥Ã(Ë1‰‚d’O:Q#âDs#ÈB‰ø6¼¸d¸Dô(I›„Ža-(ÏRá„áVý"D.AA&ñXD!¤-ð‚‚š¶˜ôÛ½$’,!8Q*ÈÔ! „@HI4B ¡(„*"b!„´H‚!#AH (€Š (È(à†"xZ„$";v$*õH,UÈ•H+A‡’H,’.%òURHRìBô¨La#‹j4V¡hÛ8Ãå"›ˆ.]B‡¢å,”4AøH?‰èAd$R+‰ƒa¨Kža‰È®—ÃáBxE˜±AHÌ¡"Eˆ(e‰^¤NˆB+…ÀHödcÃÏ¡O$A4HÄH"‡H™*Q$p$9Ø'BH„À%ƒÑB¢+‡$€Á!)ä‡6ŠLYH!H#LBèò8B0BŒ¸"˜‚C‚dJ,A.MŠŒbL„(1HZ(2RD6ñüÿ$G†#sB¢¼Iñˆ!°„B¸#äHcA‚ÂA‡IÉd"¾Háˆ(☢I‚(a/ô˜¡DB&˜$H#¹4d¨-D–h¡‚,ñåˆc²Š‘„-$È‘(äA,r(¤AŠÊt,XˆN‚ è?þl)ø!Y„EGÂJI$(¡d"œ1H(MAI:Aºˆ’J%È‘ BˆÀ„€(8A"d‚"€*H!"ˆ(Á„`I(œ"hEè$O2 ŒäH"4ˆ ¤ñçú$€5‰FHŽ4B€HB„"( ô˜ƒ(€N„(!€$`°!$“ "0I, )(ˆ(ÁBÔ&¸D((AH†J²ˆl<7lIÁ2J„èEòdDJXD€J¡$ðEa‹‚K¨H‰ñAJ()"ÂF"Ø$舂0$"&1È ‚"*XŽA(PƒØ!ˆÂ¢*I(ìHÆ!GDLd(S,‚ô$Ä,è„H‚Â%¿­DAPˆ!+(0cÀ˜@ˆ$xA,&¢$˜b‚A##!!'‚C`"@b#$L¢ˆ$&(4B)”bH/1!Ѓ,…FªÈ@5›°.±…ÔIñ‚h…T‚sä"Á¶* "À$.D€„„Ú!b((ŠB†HÄ#(Šˆ‚%Q(ò¡R($º„R!DÎ`D(¨€ÔH"‘ˆTŠð÷´@„0B'ÂðAˆ0&F”!†+q,2!0$š$Aä2D" $£¥F¡‚âƒ!€H0$"0$"R!“h$(É!…„!ì‚^††t$j$ƒ:ˆG$.8ÎŒƒˆD’I¡A€#DˆH8Bf‚"Ä!+K‚(IˆC‚B(¢#XH­ˆˆ)¤BÉX‚A j"" 7AJ-H)HBIÌù$FCd¤B€a!’¢|)’ˆ€”lA$T‚$ È$!`AÔ‚¨B‰‚D(’.„b,ÊAK¨Ê”"L”‚* " "/‚”D*d(ÊŒ)R‹B`BA‚@( ( "" ‹"CH&@!„(A BE!*"‰ò¾Ö€€’ˆD*‚Š D(J"€B D(À„À(ƒÉX&¼ˆ„¡1M„´'"Jbf‡(„«‚Z„ø"„Ȱ¨¡kA!¤R*a( "M"¢&LæÂ’¨" £(*ÚC”AÁ1/‘ž¦&šqŒAb((Ç2†RHn‡TRða!>ˆL+‚,¤O‚òeþ$ì!$ˆVôFOB¨–-‘i¤C‚ƒøˆ2*„‘DAGF&†"l%(’&‘‚!*¸*؃–¨è„J˜!"B0A†rˆ‚„N*SBäBÚì’äB )„6$frdb¨‚N„NŠB”'Ca±Ã™ˆÍBƒÁq8IsAñ¤Cêó¢Œxbè‚âA"öB4*:$€…"ª(I"²E‚A‚40"L†XR-Áµø8)‚4)ƒ¥$Ø„Câ$òˆ"*2ˆLøC$7F‚x8ètš‡¯‚¦ï{ÕÒ1ö$ÆK•ASö¯?”ñay‹8/¨ù6Žìó!¡/kwk÷M'¿ò!A?¸r²dò££_r\_ñ“cOaÿõ6ñá3+M†,òak‡Œ¿|ÜB~#÷DD?ôAá??ÿeWB¯ØžÄ¡qF¸ŠÚLÎþ¦Ñ8õ’M¢,âìöÚϨجýú(‡æãµ$üó’N¶c¶þ,סd$ŽšMøÏ‘$ØòñE?_ÁV<•ó÷e1ùñŸmñ–4Ojó2åÏ¢óÒ‰›TÏû!Ÿòae_xûU¢n¤îAÔ3ÜúÁAß6û%§_W¶õ²‚–O[÷½*/Ö%þ„ã†Ò˜öAe_|÷uã·?ó?l-˘õ3líƒßã|½|Ý8‚M–>u‡›¯†òlêϱÛÏòH©ö„3Oq¨7‹=ïáÖ¢ø¸¯¬õ*lÏ‚lV$ß3õkm/„òAKQŸÔtEÿ!oŸ:öÛ±§¦/*ˆú2ÃŽr¿7xÌøWÏ?vmuEõEžÆIÜQþÇ#_8ÜüQÁ/dòÅc[ü·—Wæ/)ñ¶ùý.Êÿ<ô„b_r¸RöEE_Töåw?üÔ_%½ú³ŽüÛŸ±ýó%ö¶Lÿi}Dö’/[ûŸÒOòüÚ/ÍúMá“ôMETO>µ¶ü–Ö^ö/OóÄÒ©­Áóˆ:sÂ÷ÿTNKYŸô9×ô×h¿(Ê´Gk+;Okó'h¯9ýK,/þùEeßtAñáqOô†æmÇvøÇA?<Ü3ý“’o_ô£u:óQ²ž¦OHò¦£ÂìxòÃd/Rüo$Ï’ôAaVôõu.ÿç¢úÂY»Ý¯±üi²ï\õ‹4ÿ¾ùXžž††ô¦3_qÿ¹nî4§Ö{dÇ’_DâFòÕqkòïaþ(š/,õˆÚÊ‹·ÏÞõô†p6ÔYt:Ô4Ÿ6ÝaÁ8wLø„"CøÅ+_ˆrÑkhþQÂÖLxsÍ„'C.ŧCMÁ¡Áë!MaÉñ„sÉñ„K_¬üÅDîy|aÌ„7Ç>„'CÓ|:ôÁ·áÿòaÉñsËO(‘4_¬ÓóÅLñáž7SÄRxsíCx2¤Á§C<«áãñ7ƒÚÂþ>C¿FöAŸFõaßföaŸ.öó¿.ò„÷­&_¼ýc(o¼}QüèßÄâ~÷AŒ/ýSˆ/nüÁ¿nüÁ¿nüáÿ,þ6Áÿ.÷„Óÿ,ó¤Óï*óÅÛÿ¬òÄÓwì®÷¿Äæz÷AŒ/{þSŒ/kþÅ¿ïþÉ¿oüáÿ¯þÁÿ/÷…×ÿ¬ó„Óï*óÅÛÿ®óÄÒÿìá~Kì~÷AŒ/üS/oüìïï¾üøÌ+áËïo¬­p€2.sA!„ØÔHH¡‚ 2-#ã8!Ã"$,åb,#rAØ‚¢")¼â8¥"<ÔBÉ"Q&á"+rAØ´(R*¢"-#á84ŒBBÈ"Á.$„.éÓÈ‚Êáâ´Áˆ`‘N”„(M(#H"óLI’H*Û$0DË‚(1C©Â'ìA6‚žD9bA#hAŠF´‚"OA’{$Ù$ÄQE‚auŽ$¡–4"$#hEŽ"^ˆ)ò(p$‘˜MgA“˜MHÔHÑôÎ{ #Cd`AF¦2"K4âD1¡$ BL8*¢*)Ń‹ò,˜A&"ˆ¢(!‚ $‚ˆÔ!8b,\`ȉÒ(8"€è"’„HŽ"”*d'‚ˆ„BBÀïÃȈ¬sÁ„Q2BÀ"fd‚O!b"GH*±"h$G„LñB¡EÈ¥#œ‡"ÔCÁH.šð„‚ia4¨bA t!è$´ †hF„=ˆ“—&G(P6…M!NI°$ÄŽ!$$˜‰4˜pâùä D¢!¬hA!dC)!’„"‚Q*´"qh„U%*bˆIè(¸È)4C¢!*CÄ8@$bBˆM˜IF8H<’4!MHB”2‚ƒ‹„IB4H„&q‚è4BAŽHHkBÆMdÁÂJ’B)2Ts¤¢¡d¶TH/Ú„²I’hOHÒ¾$8X‚ŸÅŽw‚‚ÌaH!â£È¬ÖDÂ"kIjD‹E¹ÚÁø!Qç"&:]GAž*؃¸¤Q(Fˆ‚Ö8Áˆ«‚—$L„‘ˆÖ¨+F¯ˆJ#!$À&A"!Î2HF„7D<%„8S,¢c¡#HYIð&†¨)Á›ƒ‚DaI š¸„’C#„Aå&òA!Òˆx‚‹#)B‘ˆ„‹A‰J5B@¢"ð1BD@%âDBœbRDÉBœ…¨*,„âÆ!…QÁN‚ÀÆ%ˆÞ F„†^:H²Á€ƒƒD’X‡dm‡GXH‹!„Pâ"¢$¢”K¤I $…ñ(L$X¨¬‚ÀA(AŒÄKA‚A°Ì±Á¢2Ž÷H˜Q+¥¢BdA€"Ô()BH"H@ÈTP‚Ärˆ!²„Іx$!(RI(*¨!*ÈBðJÑ‚-)2$I%+,QjN &Œ‚d!Hˆ:X„¿‰$(Vb„!„b$#sA!,ˆ!X¤!†1 (BDN,€‚**"'(FQ€!dB„4!ˆDD‘B¦K"Šb$@äô2h@D‘)@*Â"PAPQ @H€‘"*DR! HAC B2#€ôûÌL‚$I AÁAI%„‘„X!@(G‚"B,FR!(!!€B A@R€@R!Ü>®)²qQ$!‰¦1h/H‘5²CqAØ13)b„72ƒÖ11JµÒ$Lã‘ø‰l¨*4ì`(+B7„CaC((Af&*tbÖÈI;AV#)O:Ã!¨E”1CäÄÒQ2iE"–RC#ã¡¢C=‚€¤‚ö1äÐÃ(„1Q-šF8AØ"‰Á”#’2"ƒ²$–-Ž‚3ò‘I‡a¶H‘q"´Ã.!M)IB2DABB„Œp)Hîö2„È¿AÎ#=‰‚I:!ÑK(a$$Ž«(ë³GØ‚ö󑉔""J¡ÄFâ¤1ú(Dô¯Å|qXØ*Á‹$?,‚ò¢!f)ˆ´©A!H‘(ˆ*ò#"&ÕÃT‹BÛBø¡JEX"8‚…ûˆ(C¢BrHøX¢N„.ÄLÊD+abIøcf4×EçBïòt2I­2ÏÒõ%ÄŸòÊG(ÏÂé*ú¡x×D¯¦ñ$k/7±Ir,üdí/8ñ“†$rÖøl…Ÿ!ô‡Š£qLñÈ¿‡òíl²6ñ²²_ÆÚÉ·:ÃòMaVölš/iÑgñûÔÿ˜¯¤ñ’ŸØdH„ÿ+)¯&ù4¤8>c¿‚ø}½ž%ªú()IæBâ$ý¢4o$̯-_•ñKKSé¿çóc¹¿œô§*OA‚y†ñïsßÓÒéóâùŸö%¡¿BòÉû¯’ß&ô¸.ò\˜¯¤t˜ú8¿çûã¾m}]NÿdòKKxßEòMmŸšü³ƒÆò–&('#ÏÒôrKŸfóoËOQv,µiÜwøƒÎ¥þM"ÿx‚s“¸ÁxIå¼{Úñßœ/a‹ú²ZOZþ(…SÒÅø-ÍDIÜDü$ÖGä¿Ìôv_4a4/„ô8T¤qÕöÓ½û–o+q”òÛïûÖ[ÿ"ýÞ§U_ÆÔÖÔõø¦OíøNøï©öÜŠ­øJØÃôÞEÓÕó÷oßGñ_RŸô[¿Eñ]tß:õ³?¦û–¶o"ñ2r=uM;?…ò}%”ô(E_†vAÿ—-‘Owý«Ò)õ‹/9ñ‰ÈüOÏë÷¦,k˜ocø&´ß]óô©Yú¥$Òr(¬&OFòB¢þ6ï—û{O±ôY?ñ[xŸ3öÞcO{ý+¼k8ghOyÙËøçQÿ©þ6o¿ÕòaeŸ’ö¥D¿þòQ–¯‡ûnÚ©ôXš¯…ùÊø«öˆcp6ÄAçCúaçAì8wMè(ôÁ:EôÃ*ñážpaŒzSŽx2Ô|8Ô<>”LŽsUè(“$¬³DóÁ"î92ƈ7ň'AÁ·AMÁ£Ñ‘¼ÒýˆsÇ„Ž2A¬ÓòÁðáž§Æxs½(xÄȧCMÈ£ÁèãÁâƒÝò÷>Q¿ö÷AŸÖõaßÖ÷aŸŽöœó¯Ïò‡ó‹)_¼ýy,_½u[üã×Ä~ñEŒ¿{úWˆ_ZùRñß^ûRÓŸ~ùñßXúVÁß|ó„Óÿíó…ÓïkóÅÛÿÏò…“WÌz{Mü¢v_Äü²ÖÅü²ÖoQô{Þô{Ö/ö_üoôÝv_8ýÿ6O:ýž6_¼ý×?Ï<ýß<î÷ßÕòâw_Ôøú÷ÿÅøòöoAþúþkÁ¯ï½þþükÁŸ…Hr‰Ø$qÈ2UèBQLqÈøAA2±(RM£ñ„4$“”4Óáb1IL2SD#qAüABÂA.$E¡"O8O(MRÐ$1!M2Á.À³Á$#qaüA…tÁ$C¡"O¸ò„*Ò$Á(M„M2EèbCø!‡³%)±œH<.,´#¸"Ô!øD"‘`†TƒâD!²žA¡§°‚hÀ" Ò$˜HE"4,A¼$8B&ÁHD ¿HF²‘R(Š"Ì4rFƒbF¨´„/B)loN$‹ˆóH…²èbªA92ŠCgQJ(¬„Â)D(JÁ4,8R…1A,’ˆ#¡a„"!`B‡(JAbDÃhDM!F"jPжAHÖˆòŠ¢4àLQ&DhŒdK«‚I"ˆ,rBñóÃT‡!ÈBAEh)j±!‚¤yHh„BL6ˆ'„IâŠ4ÐXxHA€›‹‚UV)ˆè”Q°ÁÁÂì(WЦdF‹Ø„©DŒ†±¯!rH2†"%’’‹ç L8$1,Eˆ4L$(HA"J2BJIAƒ¡HD„&A„’$¡D‚RQ(€¡‚b%ˆ‰‘CŠA•&H…"1¤ "„!bB‰$BŠC!$’‘B(bC‚q(UHðBJH¸Õƒò•"†$™DK‚Š‘†b $Ô„q$‘(‹AX‹GX((I1,O’ሄ„†xsˆô2ˆ´‚¤†‘Ô&îSIr”"ÙtIHÂxHŸA‚³ò"HI’(ƒ‘€òeÕ 1@H#Dˆ"B€Ä(ˆ#†$–@A`H„Š4D`*!†EÁ(ˆÃR@D!b0á ƒr˜H!,9Bhò<"!„(gaHE"@¤$à”H@( (@‚VDp$‡B„…ÄDB A#*Bˆ„,‘!Ž(&" $(¥ &Ô’‹4+¤"FQHØ>"À[Kn„˜4Iã„?K2A²N§É/¤Š¢XN4‰ÆhÄ$,8Š*1OŽæ‚+"…ú¢8ÊZHNˆ!H£¤ÈdKAO£K‹‡¬¥‚-4Šˆ:´2Riè⥂ŠÈ\8S‰’'X! ¤ T$6DD"V„‰t((Ä8)*(S¡b$.Ò$(âBQ‚@H4(!Ãæˆ¢AH"A¤”J2$IáBS!H."d*!ÄB4H‚  K‚Ä$ƒ±!y¡a8,rÉ„¤*4!F¸Ø¤ÂŒÑ$9Aˆ*Œ8h¢aŽàá‚„D¬&„–è",“L‚¨Ž"(ŽXàBA"*aŠ#qèÂ"(–¨BŽp¤"¡àHÑ"6×€ $ B€ˆ€ðÊ“H €" " B€ŠÂy³Ž€r4„„€Ñ‘xA ˆ/(8 GB(KAI„ˆ/)8(GB(AÉ„ !¤Bð‚ˆ#GB(Að·H H`BÀA ã(!€(`BH ÄAHà(&  ÄA€!„Œ¨CŽB‚((`B<(CB€X„€€9€¡"A JtA(ˆ#€H„‚ ˜# "I/J(I’dA„xA€¸˜‚#!(I‘$A„xA€¸¸¸€’$IB„xA€8)8  (AI´sG(I D„tA˜+‘#*²$€ôAH„€ˆ+#(I‚€ôAH„ й’9 "K"AðÓ•B  $"  )€ˆ+³B €‚ðòÀBI1A ¥BˆRˆ€ÈAH ‘((€"h„BŠ¢Vˆh….„ ‚A*(‘ˆKA(<•(Žƒ4„„¬&*Ä„'„*8D+A*(šHÏ(A˜Jâ( ¥,5ÒŒ¤!yHJÑŒ€$H& "HH*¨‰H`š1Á„(I"©Bp4H(›*Ȉ%(”˜XBvÊ‚ä0 I)‘$"ÆÜ(©C¡BH8ÿÑHB€!(€$€"€(À±“ (B(€ ˜ðx À½3 J„ BHH‚Šðû²H¼€ €€ ð»ùB€"€€L=Ù€€B €(H€ THBJ€((b B€¨Š<<² €B€!HB€ $ ˆðŠŸðAIŸ”tI€ø’’/)9(OBò$$A”ôII—„ˆ/)ù’’#€ò$$OBðAIŸ”tI€ø’’/)9(OBò$$ANH„tHÀ¶_ÀA#Ž€€&pAˆ#Ž(A`B„ÀA€8à(À(Ap(„„€ˆw[€"* € €Xˆ„„…HŽUS @ð·ã‰À"`B"ÀA‰à(&ÀA‰ŽŠ`B"”HŽ6ã„Àˆ#(""`B(AxAŽˆ#&„ÀA„à(8„…Hx(”(ÅHHÈAFŽ?£NÑ/!á( "(GB&”Ô€ø’Ž€r$dBðAIAˆ/)á((ÇB&LðAI‰€ø’\C„Àˆ# "&„ÀA„à(8`B(AxAŽˆ#p(ŒR„PˆÀAFŽŸ)0Ž((A&HpAÈA€8Ž"(A&HpAÈAˆ#á((A&H„„H ˆ/á=\ˆŽ€(`B ÀAHà(&ÀAHà(Š@hB0(@€ð=J""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ@«2ÀÏÀ@„ÇH"*…HHXˆÀeC @ð·ãÀÏÃ("@H…„ *…„PˆÀºc ( @HXˆPˆ„…°Ã ü<<€""@Xˆ„…HHç5""„„<5&€¢"@HXˆPˆ„…ð+ù"*…HHXˆÀeC "…„„*…„PˆÀºc €„„Hpiü<<(„@pŒ ¢"Xˆ„„…\6ä"„;ü<<€""@Xˆ„…HHç5""„„<5&*…„PˆO¿ ü<<(„@pŒ "HHÀSc(*„„……HXˆ¿’ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;Æ€‚"@HXˆ„…Xˆ…HŽèÀÏÀ@„ÇH""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ€@…„PˆðõÀÏÃ(""„…HXˆ„„p^ "HHÀSc ""PˆPˆ„……/œ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;ÆðÏ<ÀÏÀ@„ÇH"*…HHXˆÀeC @ð·ãÀÏÃ(""„…HXˆ„„p^ "HHÀSc "Pˆ@…ðôÛÀÏÀ@„ÇH""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ@«2ÀÏÀ@„ÇH"*…HHXˆÀeC @ð·ã"*…HHXˆÀeC("@H…„ *…„PˆÀºc („Pˆ@…_/ü<<€""@Xˆ„…HHç5""„„<5&*"……HXˆPˆðÂ"*…HHXˆÀeC "…„„*…„PˆÀºc ÿÌü<<(„@pŒ ¢"Xˆ„„…\6ä"„;ü<<€"„„Pˆ@ðhÁ""„„<5&€"„„……HXˆ;ÜÀÏÃ(""„…HXˆ„„p^ "HHÀSc(*„„……HXˆ¿’ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;Æ€‚„Pˆ„„…Hð¶*ÀÏÀ@„ÇH""„„<5&€¢""„…HXˆ…Xˆ„…ß± ¢"Xˆ„„…\6ä€"„„Pˆ@ðhÁ "Pˆ@…¬;Æ „Pˆ@ðòÀÏÃ(""„…HXˆ„„p^ "HHÀSc ""PˆPˆ„……/œ ¢"Xˆ„„…\6ä""PˆHHð! "Pˆ@…¬;ÆðÏG"„jH8“Ž”¢$tXˆÉjIõD#|˜!±‚hÂ’R&d¸Rø8hŠ…HÒˆ!¤X-˜?æTB*!$ Lj8i2”²H”"M(ŒäB$A’¨DX‚Xc¢‚N 46 ²ÊB&”(Â9a"ŒJÄJ˜BÈ.Ð$Šñ"„0B’(\*„¤8‹H(ƒŠä!-}H#1<d!F1‹’‡A)AB(†‘!Ù4(H‚”X!ê„¡„Cˆ#¡B$‰„Á!ˆ¨GB X‰ƒsD)á¨$(†ÈD8JˆQH@ÈR°8&h,J eØSN(C$aBDbG#C)â‘¢$@´AB¡/Ha$bˆFÒA4ˆLEÂGˆqRDIÔ!Ea(„0ˆ?”ƒáu"„H†ÈE)(Ùb„jѨV‰ ,ÉJˆEôwöIR‚B,A–PB"„`(!DdÆ€ˆR‚-Q„ID"@”$¨H ”P$†ÄH–˜ABˆ2¡$TH|<Ë€6$#„KAMaA#1$!cCØ‚Q"HäFt(¡0†BØÄIK¬TdT'D0Q-)D$T"†G„ˆjˆ „J<)HÄ‚[D¬´ˆá¡$„’AŽ(“¨h*Ø¢Á+ND;è ‡Ä E€&Á&0a ˜EL(d3„D@†"A1Q@ÄRƒAÁ2ALHE!Ä D!20ˆŒHì9$hH a"!D$T",$DHpá–„'1HI¨H!˜¡tFÁDE0$†5ƒLÈHŽÁ(ˆÁ!FˆÄˆ†‚Ih$ƒ¡…ˆ(Û ‰#±BbAFž$,BqÒD*’H&ć8‡B¡„€A"D'4!MBH0ˆ9”%ÈQ=F‚a!BF‚hF À8#bJÈÒˆl;¸¤ A‹B“"€A‘ŠAh4A`B@"qÂA€A$ˆ!ÔDh H1AC“ÂÔÃ脈$Ô„tQ¤D) IA£0IhÓCe‚Ò‚‚„ðã;P#œRD„"„"2ˆy„ÁˆH „-TE2dƒd(H0DLˆˆŒ9ÂDÁDHž"$#…ãb(ƒ‘ˆ)˜ÈHF"ÒH`‚Ï´>–@ŒH$%BDHE€AAˆF@,AAA…é’H X(Bƒô<£@D#DDHAA9h‚DD@DXA@”„H0PJ0‚‚R$ÀJ%À÷ãÏa"H$¡BOBÒ$U"S¨DóBŠ%M‚2d$`DZa!šèQ´ò„B_hT‘ô„,YF3GMKˆ•QFåXÈA!HŽ…¹tR²tRšE”/dÔ"ñ¤)‘‚F›$ *Ôá”$(tRr(¢Jè$8š²òøwBJAHÈBÌr4"i#‘D‹ˆÔ"DZ„Ð$A’X9="ðHPAF4’AJx„W1Ñ!”DMDO¨ÜÄHB•…ÕChY$IäˆX3,˜‰‡1—5a$„ŠøB„Êý(F'ª¬ÌBÂÉ=;¤2"Y8ƒƒÖDR„-iÁ]BÌ(tdR(A„ÄH8+-B5ˆxDˆ‘ „N0$B'aG2!…T!BCQJˆX,X؉u"1,'„ŒQ¥ƒa,®D¤ÂÏ[BòkOVqJrÑ»ôA_r=ñ(?öýˆ4KòCÏÝ__èt]ò3ÌÖŽ4l/ƒñD_ôD¿…zšÚ‰ôH˜Ót•ùBÞK˜'!/üÔzÕ7|Tq“ÛI”DOü/]|Wù†Ñge¿¹tA™Xg4O|Qñ‚÷.4/ji!ΊY?<ú”EçgÝoGFMÄïáõœÌïåô†¶OGô˜ˆNH/(ùddÇù£Ù¢ÖÃñ%"§5ôŸRrMñ}fVÿ!8ŠxDô¿\ÕÕYï5ô?L‡‚òDríN+A߸xKùYiß‘q‰ýTƒÿÕôE¿Œx…äqùKYsøUÓÿÑÔøAA_<õE†9Ô¡ùÅNƒ5ô¿ä4_]ô†?.ó"¦7ˆ/ý‹?´ÝkòÞ×SòEM×QßlÕî|žÞæÿÆ.Éì-òÚ/Îòä?¨Nò^6ßÇôn_”q[óYEŸ‘÷aD÷?™_ÍâCÁ_4ùYÿôÕHõág…ÏÆÖHô&ZËOEñULÏáÿ̇…Çô›B/ÜñI±ùŒ”LùEÇUDÍÕmÊÃuDäDô‡OõׇÍÞ<_Œq[sQ|ZòA•T¹VùWŠ/a‰ÙýíÓïê÷&ïÿSÔLÔÍôÆOÈõÞVïéòô|Oˆ±Øt˜øÔLO:7j-£÷UÏg÷YŸ4q[ñyi_Ñõi>ÍQFâIÉmW9¿mõ_­E׆τö,LLöLCtUõÜÎÿ‘õI—•ŸµýןÔñDS÷ÈžŽO8qüQW?YõFç…_ÔUätüG‘]ÃÿQüÉ/±Ý±õIRQåxõ‡SW(/iñ‚Ž7½¿=ñ{oîx_õm%×ÔOÄøDÔÍŽïAþ|ŒOí¤¹üxœOÓýbp2ô!A§CMA£Áaë!–,ŽsË,Ž2EòÁ:CøÁ$îqxaŒxsŒx2Ôü:$]Á£Ñ~ÑVŽsÁŽ2A¬S¬Añã#qaøsÌ?SÌÁ¯CÔ|Ááï!ÔÖ=ä8׌â*s„òÁ:EñÁÂîqqaxsŒø2„ȯC”«ÁèëÁ¼7©ì÷AŸç÷AßçõaßÇ÷AßÇ÷ŒSßÇó„ÓÏAóÅ[ß…óÄÛŸÅá~u]ìn÷mŒ/G_îGýAŸÏý’cßÇýaßÍÿ–AßÅ÷„SÿÅû„ÓÏAûÅÛÿÅóÄSÕé~}_ì~ñEŒ/{}WìkùEŸïùžAßçùZaßåûAßEû„ÓßGû„Û«1_¼ýYùO¸ý{®ÿÿ‡äú÷MÈ/ëý×H¾–ëeÏ»žôøž«aÏÏ»ö¼ß$((Q&aBàbÆÔHHA„’„«!O(A„ŠR„&aH1LÄØTH%Á„Ei8O(!ô„C„G(Fè(rEhbBL8ALÆÈA‰ÈA‰˜DmÁ£ñ„RO(ä„2„F¨(G„¦f„ŽIãÛÁ¸‰$R@¹‘(MC"äDS(,AlÄpDÈ"RŽD'+„FafºñˆD)-ðDA-ÑAÄHA¤–òŒA„/q(´)–††i +f¼"a‚Yx!ä…´" †¢A!Xö´ÿ€G )qAeI2.L”ƒRH+AŒl$ªEbhA…$<‰A#ÁUKH HIt‹a¨A$1†©ÁJbAIa(A˜FhH2.A(Ã<5«Š"h!,…Ø‚öû£„D£HH !f"à„‚2’$ÊÆ$Fe”A,b„9©D‹H‚F¡-1#¨‚ðAÅ1‚4A‰t„Ál„Ò¡Fx‚¸At†Ä¨.‚’"%âB(X‚GND(I‘‰N¢Œƒì(¸¤?¡'ˆF1"›9°fÑ(’X¸$CÑ!¬r(N$DH-*‚aD»H!ƒÄFÑ(âHA¢È2$È!DÃô"!DÁB…$ºX'ˆ*‹†k")ÄJ.ÈB‘BÌa†Žd!š(Ä’‹A!…rý/[2O¦„“X%Hi2zƒìC˜2‚//´! !BNd,”g&2W‹Ô5¸Xä8ÄH*±Â!Tb.‚:f!‰ÔE‚4(EòrAËFÍB‰8Æ:(‰,j#"¦Ô"æ‚XR¥1VFìÔ„Ù¥ë$È‚Æè$è­á"í‚ÙwCR,F¨B@&$Ñ!¢AÌD (ˆ€ˆ&Q<(! J(QA‚ÀÁ‘¡<(‚Cä($¤B†$AŒªAŠ„b0(„Š Àôã!Â(Obeˆ¢BˆD(p„Â!¾J¨8"#‚&ÄR‰ O”DèB HK¤ˆ Xƒ²Dh"(®BˆKAˆ–’!!ˆ'JJ‚E¤<"ŠÂðœ4`C.HF’!-XLMO"£˜9µDjCXŒ`„K!Ã1êÇ–Å0BŽBn$Ū!9¸˜"7¾Í‘"¤"I‚$6dM#è"ô(DÈ+AH‹!`"ŠK,Ô„¤JÉtø!DC¶9Ô(‘H®2-J!Q(jãÄ<ì#2ƒTRkmHL+ˆFhAÂ"F7Ý(†ÕýÖ¢tøQXŸÒô(ÏÁzqÿJº/hÒCò6EÿtùF§ï¨ö:žçƒÇ”ŸÕö„¿Óø›ß¼×‰ÿÁ=²Ï­ô(]ß‘Þ˸võÓ8Aû¦Q/=£}^äos|}ù-LKdÎÖïÃýž_©öa½ßýS3ž[×óñ¿Uø7Em±¢¡/õÛ:‘ÒúªÓW]Mßò‰;“o¡ñÔ.O·Ü"ä¨áÇùäß½DñyŸÁ¶[ÓõIŸ4}V÷Œõo=û^Š>4M4oqû4Eoýd–oV¾veõi%_ÞöˆÛߣý#ùÿuóÃÚ­Èïñ¥oj¾–ûrŒo+ãy²–›R'.Ojüuç§‘‹FOFæ†ò˜òÏfü;ˆÿäö‘›-ÝšøÏN;óìæ/ûcŒ/+ã(òƒ¨/ýºëñ5²«d—Ò–çó™²Ï+ýzÜï¬ò„Ê΂¯…ønZ¶ÊaÏÓtyøSZŸ”õIŸ…ñu\Ÿú·†ó¤(¾.4Mw}åOkñçÏ^ò]m_Rteùeÿì÷¥ç¯SýÏŸ_=ôÁÒ¯üJ—ÏôÍnO(óR´oJñ¶6O8ÿ3á;Ú/oô4u_„ò-lOF4䯬ç»ù;ѯüú„[µØükOºõÙ"Žr/Eº¦ñ²"žó?—»»q»ÿ%ýßò(A׆’¿hò(ÖëÓ¯áûÔJ¬½ýŠŽOëõ9p2ät:ÕtÁaçVŽsÇ„ŠSD¬s„ôÁSøá#qaÌ„7ÇLx6ÔQü:$Á£ÁáãÑUV\8WŒŽ2EôÁ:UóÁ$_þytaŒxsœ‚/CÔü?eüA~ÕV,_8WŒŽ2A¬sEqÑ ÿ9Æøsˆ/CÁįC’Æ©”âãцÙQÿE×÷A×õaÏ×÷aÏÿ÷„óÏÏó„ó¯CóÅz?ÇóÌó¿‡ánùäwŸ†øòõ¿‡øòôoüëü/1üëÔ/þîüo1þëno8ÿè"oxÿ¸&¼ÿñ*O,áêzmèj÷aˆoKÿÈoJú:ÿÎûÃ¿ÎøãÿÎû^á¿®òÄóŸ/ò†÷*òÇûŸ®ò†»—¯/úÿyHOú÷iÉ/Ûû{ŠoÊÿ:¯οüꌫáïŽú^á („(A&D„P‚„-A„!LX…”‚£á(€fBADAL„MA…D„8O(HR0A(SeBR„ÁA@¤Á#á88CeBBL N5ÈBŒ„Áh/¨ô( *ÁÁƒòˆ"pHdƒÄ5ƒ„{F¨„J"¤ÂŠ1$ˆC²ˆäAò*)ØI"Ä$ÂhmQŒdd(¸(…42C82ˆ'BØ-$L:Sâ„É&äE¢„‰a$>‚ÆÚHR$HBD+Œâ¼h؈Ö,y¾þxN¼O¨¶Šä!ñBÚ/êô†*?kHqói{?±wEûY¿•õ6Zæòl'ér*ü"&Or¶FrbôkGŸòö%ïÿ2lÆô%mÝCÇ6§Ö-(O¤4H§¤o¤äÂú~äÏ!ûí>¦-¦ús‹“ïÏô4¿¯Ev(ôll®(«ìï"õ¸Jo„{ÖøJ’©üroŽûN´lóíŠO"ÛFú‚fÏ*ülÚïÎònü¯A䯴lúfäìýªVÏÏöظMØ/(õšJ¯ïùf5cÙaùz¿´õK¤ñ[¿µõ4OôòMbm$'B-&M"m,¯Vô+OÒ´M²lô,Ln-ÿ4òmcïRÔŠÂJNJ©t(ú&LÎ<ï(÷V"¾–+*Oh÷×8Ÿ*õz/ú¿]²,tlü$Ê‹¤¯Bý¾BìþX/ˆøZRØoËô2ìï!þ–&®†/CÚ&ûœnjxzøò”KeË"GF‡fÏ…ÿ®zï+ôšš/„í¬õšB¯­ùl×ïhAq2Ôô:$]A£Ñ6-aÅóˆsÅê(S$¬S…¼þ)qä?×Ô‚x2ÄÁ¯CÒ<áï!ÄcÏ(ôˆsǨŽ2EòÅ:G$¬alî1QÆNˆ?ÇøR„'C¯Qü:$mÁ«A-áãÑÖ,ô„sÕú„2EòÅ:EúÅ$îiÁƈ7Ç-„'C)|:”Ä£ÁâãÑ2ä-|ï³ôkt¯±ôkT¯‘öotï‘öofÏ8÷l&O8÷,&_¬÷e.o¼weþêWÆîóeŒ/ÓþwL/ÂúO¿FúKføZaÏfúiÏfòŒóÏgò”ó"úÇû–úŒú7Çêsü¬~Æø¶ì7‡¯ÊþºA¯NþšQ¯Nøšqë¾ïöî2ϸÿì"o8ÿ¼"_¬ÿõ*o,ýþäöÇîvÆøþä¿Çùòä¯cüþì«ÁïüâϯþôŸùK(A.pAÈAˆ3á(H€2F&6B,(„„ÈA‰Ù„˜B€<ŽR H Š2L¦4H‚B„A 8Ž 2&3Ÿ˜âE,@é$‘(œ”"D%‚±B₉DAæ„ÔBB%¬‚Èx)"Ø"‰²L‘"‹Bމt!tHÁ‚…ä#„i¢R¤‚bɸ(•‚)éž!N,§D€b$M‚À"H _ôŠŒ ”$³p˜A‚JI¢$4„h„AB&‚D(,øH"*ˆ¸"1D)ƒ¨B$fKŠH*!ƒ˜4ƒ$gˆ 8àDjAHDI$$I1ˆH ¹DÁŒÔ7$0H“!c„Ú"&1D&Eä‚$"xFÁ"*ÔIÀHa"E”b"–D’D a-!MD TH"¤‚G‚„OH‚‚AˆFÂ!AJt€TCÈDˆƒˆ+DˆW‘ $B“HC4",hB,ô&HH(°$ÔD¤6A!DŠ5F2D ˜È@Câ´âdH*ƒÈHLaBš¨"‰IKšDÀ8 B„¡()‚aDЏ¸bÑQ5·!"R!“T(bM$1(¢&B'vbÌ!,’l.Dh_˜2B"F”"ìAB¯(àDF'$Lbˆh'J($L*TÂHÀ#HdH)"d¡Œ ÉáD„x†$ƒ„¨dãÂE&ˆ,¢A„Jˆ„ˆâ‚ĈC#,$…(¡BÁ"¬£X$à,‘H (Ÿ) ·,$‘$>‚`!.„0ÃÀ$‘fÈ(€íbˆÆ¥)Äq†”’ ")l‚+"B(2ŠÈ‡„+‚ÈH„)‚ç„HB"Á4¤8F¢ƒ%ˆT„F´"ÉDÈd*Œ(Ä")éô?v*Š$À%.‚BC‚RbF2!M$B(‡hˆD)€4ˆ&Ød!A´‚C‘DˆC´$ÈdFÈ$,4„0O„HŒÂ'8)‚‚†‚E$„ø2J(ˆ…!òUj€Ä+A1( 10‚"‰ D¨EB$@F†Â†@‚"N!…(ˆK%H&BK8`(AŒB&„aàA#A¬6ç “m0R…"¢!"h"A*Èbh0A"J4(A‚„#š"AËÁHH§HÀ(…#ÔB:‚Œ(,*Ä(‡D•4B†t"„X%V¨H((ŒÆ‚±IZR‰Âˆ'!H*(’‚!n†ˆÚJBôDŒ„A”B,X(dF€(@4DX!NCÌ"Ä%H" B‚„H`" ˜DB DA $$Ü8¥%‘HŒDˆÑâèˆB£&H4(D" "$Ff‚‚ÄM!(A È"%Xâ‚@HAD‚Ë(‚(‚A,N8†B Xˆ"ˆPH$+/Æ„¡#!!á"HÄ£"()‚!($ˆ4…J$˜AˆJ<(DB*ˆ¶H($”J£4DI’„I(’aBˆàDÈ€¸„‰THHD`„,¢ðÓˆD%ˆBÚ$H8a@rJ$HȈ…昈T„I(($h0Å0…0!Ì4!°èØHDô!H…ÄAJ‚¡0$A‚J8D)–äAH"*ô^¥$„BORQÅ1L B‚$HHIè–$„.D!PÈÐBH(BuHAM!(‚à$Ä"°Áè„!Hdˆ„ BÀ%40$¢É±ˆa$! ÎJ1 €@BBAB‚Q"  DD"BD 0€ðû= A@‚$@J@$"$BA@€„@""!$0„BCÑ´2úH”HH‰‘h´Y×5R¡ŒF’"‚(DƒTIB'B¨-Á%Ó"ôLB#KD#Ì!J’$„HeF¤D@„üaH„äRdøˆAÔV<†€±…ÑAa„SDRÈAˆbÁ$+Áh$%Ô"õµ|@8$±0G&¥X&¨‚0H-hH!©‚’(A+$a&AœCƒZB.ÌA¸Àˆ/‚Ø6òL!FŽ!ÊR‰ðDˆB¤$ ¢Lˆ¬‚L<(È¢Bƒ0„‡D,1Ú±BÃ3!b£‰ñ"I T’OØ4„!@2*#VÃb‰J”BN‚‰¨”-¡ˆ%ŠDBK,K8JVoˆt#(Ô‚hÂD'AL ¡‹ˆ&µ$貈(™l$‚T$"f”…$ˆBƒôV$IÞ‚´ˆC¡’M¤ÿOââ‘·;µ5L³"ö¾ç$ÿöòŠ"?(ø‚¢?¾üÊ£/*Òjth~lâDô²–/7õÃâ­‚/·ùR¿,Ü‚úo§-ÆO´õ­/)ÓA²„ùg2Ÿ(Öêêô|b·%ô8(NÍ/ùùeR›.HÖ”ü›„‹HOÒþ‘–[ßš÷š"ÈÚ$ó%z·ÍOŽøŒO¯ã6b‡ÍL¯)ûD–'†ë¨bÍB'(ká/â:F-%{/¡ñ9Ÿ•ô)__ÑÖÏèÞt͈â.ú¢ãŸŠúÿôV«§‚_VôAeL­—³)üIs/¡yVÒ«ücDLª¤?ôÞ(OH"è3tŸøÏg/Tú‚Ê'‚ßTäT⪵rø–¿eû»åMH/)û[¿[Îl­â·3oÑD¢‚/öÿßÒõ’†Ï’¢&­Hè¹vøR6Ïíõ4hMÒ,ùÂB/bÿÒWN$BŸ÷ROÕô1Y‡f#÷¨aŠº)(Ú"ò*K½j·66ògì¿Át)õeaC³Ñíž´¡øû2ÿ½ùÊK¿(hN_ò×ì¯i{Eø¶²ocêHÿ$IGºÛnßòöm&½íô­?¯Ýþ2_/µ[øŸI¯±ýÓR¿Eù¯aïùþ’ÿ_†ù¦oKò²ž.Óþõ_”ì/æ†tLüH2oIþ’Òòk/O(Œìdò¢®“ß’ç“Ô©ñQXŸ¥A”ñwA?ìö‡£?¤z¢ò""/"ò+k­K7¦çv¯Ôö(m[FO~õÒ3/;ò‚k¿¤ÿ™R·9/8ôKË?*ô¦3Oh÷z¾k‹M²m¤ŸUúäÉwŽßRøJ-nMW†ßRöÒ?®_o“üºß$õÉÓ/‘ô©ŠŸ&õý9OìóR¦cû”2Ojÿå/ÙòÛŠ—ÄÏ–¦"ƒôÈLo/åb½ün¬ÎRÎÂ)¬¾o-µØ 'SA§CmA§6Maá/8W/(öúû*?¬ñá‘ÆøsN‚/sÔ2ü:gíï1Ô2þC<Öå8í(S$¬sEøÁî1ƈ7Ç…'SÁ§[Oüš~žñaÍ87MŽ2A¬3%¬ÑAñáž3qä·Çx2ôħC<èãÑÔ1§\ÿ2AV÷AVõqϦ÷sŽö‡÷¯Žò†ó«(¬ýk(_,}küãv÷ÆnóeŒ?kÿwŠzú:É~ûÉ~øéÏ~úãÏ~ó†ûÏîó–óÏjóÕú_ÎòúÎô©þÆô©~_Æü»ìçø»íïóõúåï¹ôúů±÷þåï9öþwï¸ÿì6o9ÿŒ6­ýå>ÿ­ýÅ¿î}Eèn÷IˆoOüWªoOþ¯OþÂn¼þìäoü)$$€ˆSŒ.„,Q‚P‚„-A‰"ˆ8ŽB,%D"Ä2Ct$&Db„„˜BBÂ#á(H (AGJ „”( „’‚#ñ„‰(Cab#á¢3äLÄ3DB±$’‰D‚2d%ˆt!%F bNƒòˆ92ÈX1ƒ”¥É•¡E"x'ˆB¦ ABÔ&ŒÔh˜AäHbœC‚˜6‚Câ(t4iˆFƒR„`ÄL¨D8­„€<ˆO#ô&þYÈF#†Ñ(4A)(T( 2„©„Ä!E($†!ֈȒD‰NA‰äJa„)Št"¸Í(EB„äÂrDˆT( ŠòH&DЏ’$0ÄŒâh8‚&Œ”ˆAF²H$H¢t¥>#$EÀB‚eI’„"iy!d„*D(-%0‚‹($L"Z<ÂL"B1¤$KJQpdH´„4%…h4°’H‚A¨A(h‚a$`‚IÔAH¨BŒBÈ€ôb¨pl8Ð!TXHÅ(bB#˜¨H€ÌL"¯Bb”Q!JX7NP‰#$I¡áLć‚II’DŒ„hd‰^„¬Ø„L‚޼ h„L(Š9HŒ!ØÄ;\%xD8UB²A“dB&‰š¤¨I¾ÒH¢DƒB\'J5²ˆB(¡TzAÓ‘Ü*„Å&‘8U‘LŒ¢R#Dx)"H oh‘GÁ(GH¢ˆGé¨$Ì$ò…DŽH–(,å(JÔ¡ #B@ˆBLB4€D„„"IRª6¤(#ÑA¤,H‚@D„dDIdÄ,HFŠ (ˆƒ„`‚ˆ„„Ds˜r€’(_JbA€Ô2„(‰ÁA©è*AÌ!" ’E ’(KQÀQ„!”„e¤$¢/BDHˆJ$2DˆB(:…ŠU,ˆ¦ÄZAH"˜„)t$¤E Fˆ_4¤3ÆRLDÂ!$‘jrÂ|"D2"EÑ$š(_($j"äiÄ‚)ô"uÞ#ŒM²d(Œ¼"ȯ¨8iñ”"L6A‡(ýAÁ(à2%éB²ŠyXh‘3ÊHDMbΆ.¢€òd‰dÏ"‰G„#B$È´‹’)S8ÓŸ""«TbàÁB&2¤A£‚‘B?B9(bj"rD¡A‚ &‘ˆc¦D#a„(OÁ¸B˜! •„¢Rˆ‡2X"K()‰rBˆÇ$‰xX$ÂD&ØD¸J!(œ(¯Y+A3‚•J#Cñ$ˆ,VB‚'H„ŽAbLÂh0Ö‚;$˜Fò‚A€xh2¢‘‚>‚La&”O2T"(!bDHH(¤ˆB*¼&(4„#"‚8$B"(ÁJÂBIK‚B„J¨!F¢‘ãà$„pB¡!Id$"²‚Bø‚2(BfB,¤J!R"2C(‡FÄ(HE$BD …RȤ@4F&,¢a#Ø$ÄD(@x„T"A„ŠdAÂÏ7O0!)„"E(qÀA! D!@ AD*4àH$AB!" ˆ€D"A‚D!‚,6€B2A£´BDäB$dlâ"ÑB¦ÂA°HD(@#(¥$°"á„„"EaB‹BD¥)D˜J!%$QDÂ'$CÈ¢†‘(K„#(8BB…d(C!©‰ˆŸãG"’A"‘( $Iˆ‡ŠH!DAh”Æ#!9‚‘#¹A’…„ˆÐH¡BIDŽA’(”I‘!€"À$EèRBˆD4H‹AAŒ8þ¡L¸$‘)!Êb6›&‚($H*H¸z‚%˜"(‚ †DÊ@‘HMA,]‡¨JB"„%B$€$øHDˆ‰Dƒ„üµÄЄ@(ˆ)%"#¤Dr‚„&"4¡$aˆBˆˆHH@ÁAIÑBdA„8A$à¤$)ÈAAE$”$†ˆ„(l…BBGBAäb&RÀRPŒ>"èÀBDˆH`(Á…4D(Ò2A&!H%„˜„A„B„ð‚„! Br"$$ôâ$…‚ÄB„(ÀT5$$$‚Ø2‚… 2($Ä J!‚( „`R‰Š"XB…¶!T‚Y2BB"0‚Hƒ’(H$Š„‘˜„ „¨â“ËHHD!ƒ”€„""B`2!‹!(8„„b"`‚$AH‰‚A@( ¢(B°Hòøü€1$€ÁH$B„B !B",$Œ& #@!(‰ˆ(B A & "‚D‚(‰’ˆ(ˆ€ÁˆÀ‰óœ"*rÃôFaCóÆrF±)á$£"&Èj&òA$¢Æ(;'ˆ.E…Òª)ÁDŽ(F4%!$t"qè”ÄÂËR…AQ(-!E”²ˆ‚)HH¸%è$(dF2†øÄ L‹Š‰šªD?˜ ÍZQD‚á”BAØÑ˜‚KgA(ƒE‘Hb…!„ñ¨$F²‚qÁ*ä„肨Ä>‚È*ˆ¸ÔÒRI+8ŒÑEaDpAHÒ‚hƒ!,ˆ%*$RM!‚á€Úˆ£HI¢V„LÈès H+$+A‹%!§¡2G$"„,Ñ!à‚„D(¤‚Œ†”":2#"‘(ÂÀ2€³AÑ"dŠÀˆVâ†hFUTD#Ñ"‘h€”hØÄ¡IˆM"$1Â'‚D nD¦(2ÂÃB‹!ßÜF²ió:L'ÄS?ñhoÄäbùaWsržô!‚®’‹»!‡"Ÿ¶×2óAB«&I¾³$ý*q§7¦O8ÉQb†ù#rŸxò!‚OBóQIÏYô-Ä߆«8\”M߯ú–6Ž×XýîçqÑôH)W¦oø¢qŸAü*è*òAOíG›ÂŸîÒÒôHDƶûÂRÏDù¼ÈGÆ/(µDõ¨fìª;1VN/W×¥á”ùr]¦ù¨E—ÎoIò´’®ƒ.)«A~Œu{‘è"Îê¿7Ù6¨/)óÁNkç(/óáN™ö)ˆ+ƒ/Aù„!îIƒëCùAØŸÖL"òAÊ¿Y×^¶,áBóWNK¥ÒBrcî´õˆá×®oB)ñ‚¡o–t(t$ôÃÏaÉò"DÎÎe³Ž~(äOפyB˜HÞtOÂyÚ o•óe¿4s[ùRôñnSÿƒòÖH?kùe/+2>¼ó2*«e¿øzI.h‰ö!¯þÓº´÷ŠÓßµøÑš?Ô÷‰ñŸ•bŸþ?Žë!"ûô_ÆóÕmY¾-üo(_ÔÖÿ9¿‡úÕ¬œõs×µ7¤?´Ö:öI¯ïk“âú¶'Jg¶_ÆòGïïö)į×òDlËdcøþnOÅëÌñÈ6ç^XŒ³ÈóÜ*3ÑâÝ·õ$|¯ôX-[8¯öß(/ûüY¶Oh»r2ò22[ŸòqŸ„Ò‘riñéC—Ž?ƒùc›îÙ¯1üXš?”éŒý៯ô³Ê¿+£¸#ëK¸4ûÁøŸöu—ÆÆÖ]Ö\öoЧòC;/öõQ§¤7”NK­aç†ïü¹4O)r&ò¤†/bòGhcÏX~míÆ’hÏL~nú²üMxO‚ýÂÁXNÜþ:Âð2D.A¯CÄA«A6Öæ8WÍŽ2A¬“$¬î9RÆJzs¬¢'C~:Ô<-áãÁaÁŽsׄŽ2A¬ôÁðáž!ƈ7ÇLx2ÄůCÓ<>6ŒŽs׈Ž2CøÁ:A¬!øá#qaŒøsLJø2ÄȯCšÄ«AèëA¨“ÒòóE¿÷óA¿÷ñaÿçóAïïóŒÓ¯ïó¤×¯+ó囿§ó…[¿§õ¡·‡ú÷I¨?ûÿ[È?ûÿá¿ÿÿÁßßýáߟÿ៿÷Œó¿¯ó„ó¯KóÅûßÏóÅûŸÏñáÿ×Ç?þ÷mŒ?ÿÿˆ?ÿÿ:A¿öÿQ¿öüaÿöþaÿö÷Œóÿçó„óïcòÅûÿæòÅ{÷æþoüâ>߯ø²ü÷Ͼ¼ïCôø¾ëEǹöü¼ëiÿ’I²AB2A,2E&&d"#$saÜ4(%!Ò-Á+!ŽS(<”!$,eB1„THDEM#ñ„@AÑ$eblÄ1ÄØTH%Á„eM#ñ„°„$4„BK(CdBBŽã#ÍÁ²„iE(U‚h!%Bl"`cb(%”H‰"t("´l‚AˆÕ‚T!,’Œ)²"B1(ƒD„FÂADA-J„D‰²ô(†4"é2Ág¢£”h$‡Dˆ.\À˜À˜ïh B!F2B/„3ƒ4"ð$B(,G$H â$(f3!J1BL“"˜ "1(€äD`Ct!F¨$†Á¤4!K†$"8D(H „L!B$$ˆN1CÂC!pBA"”¤)‚¦Á‚„‚UB¸à8¤($´!è„B¸B FÉ‹-ÁÀI”ÀÎ0I(†$ÔBH„DÂI\H%`!€úV)$Cº(QA!‰“Hj8"È!ÀfR”&"<$…,aËAFµ˜4„Eà”4ˆ¬tr„X%äHbALhD!H3b0HKL%$FX‚$ ÿï„X³BÂ!"*"‚P‹$E1CKHÄX&`(*FBH‚0HAB,‘"$„L5T¢‚ ŠB(ˆ€‚dD xDè¸>9"ɲ'T‚QÈ@Bø"Ð"a„°AV™ˆƒRàSèRoĈ„ƈçB¨‚'€¨) a‹‚_%J•(€‚E„(ˆȈ‚,A$„R€Ÿc bùB"T‚!0Dn4ë$…‘‚"mA‹¾ˆL¦H>$dAl‚l´DJ´RøHŠ4Ê.Q#ÈXC¡"–bºf‚MhJ1$d`ŒM’…dhˆ‰¼Œál1‡L¸"r&ÉL#Û$6V*2D°ÎÚØt$èD˜$ʹJ¡h5Y4Z<H‡!TªaÄ`HH#á¢äAÈr&D(Å*^A˜Å2ŽH6T)(†Á$˜+‚O„Á$ˆB&I¤Dƒ©Ä‚ƒÅRˆ‹%H*Ù„‚¸N „F‚B,ÔH<1E˜ˆ')B#!ô¿Ú(IDÂQ!JB´#TH"!$*Ä*HbDbBDÂDc*8HR#Ø(¸%ÕBdƒš„&´B±BÙhÆ0(°dª8=ŒHšÄ‚†ަÀ‚”†K$!$„šNBL Rˆ¤„Σ‰Ò„BBjJBC"M"-!N2EŒ‚ÑT&0$0BÀ$97„*L(¢Ê(Q$OT„$ˆšÁ&0„/D(†‘„@bH$IœCD$ŠD¿þFAÒ!0$@$(!bD€`R@‚Ch !Á…" A+ÀR B)ˆXR`„#L%€Ü2¼()ô(BÐ*DHIB‚R""4B-!0$ $dAL‚¤D@Â$B„¨%DDÈ!ˆ-!Œ5„‚$‘Ìm+X “GB0Ä/F(h(CuH!DD†!ˆ‚)ð˜z,"€4!ÀH„'A"À"C! ¡RÀØ€t$½DFA!„H!HHH`HHHB'D!DIÄD$B)Ä·ó!‹Bp"â@Q)@F‚âÄD(´B(HH€B2aŒD€l\T…ˆ‚…1„0ÄAHHˆ$ d!„,( $@cL1#)¥"!""ˆ’Dap( L)H$¸AâB’(/(¤"„‚I‚$ˆ¨‘'EFDáBB‚Ç(H$D†â$”BÂÜ>æ$RH&B A8-‰a$G2`!Cª!RQZkABD„€áDŠ!ˆH8$B9HB JLNB$$a?„C2$$„@TÒB"fB8QpAb!SrA$¸A‚‘(àXöˆ†ÂAC„,F($&„$@B4ˆDH‚†MH„€Ô‚:ÉÀ$ *!@h‚ B`‚ ’(°(„(À†JA:1H¡Ð8$„„@„#!0Ÿ„(` ((2O€AHˆBH‚  $H!-‹¼ˆ„)1‚!(ÀŒÀ¹ó.A&A "yV&1Á""r!ÚRa(˜A5]H„É”H"´¤d!bª8Ä"ˆé…âE©”%èD(¡'„ÒL¤ˆ‡H‰¨ˆ3Ø”A ’Eˆ„GDJH-tBÌD'¥B ¤‹Dƒ•B#õ(Ë$W‚G‚¤@d¤„Ì‚b€’B‡KBðd!&$N2¤5Dø(LÁ%†S†’KRC"’DI1‚^‚K„‘7;qAHHT"XƒT#8Š]A ¤Xa%bH)TBŽ×3BÒB(¡p(ñ!2&B€aãjdÂRŒ¤$/‚’*‹#-¤#%’„‰J¢¢8FkK"7ˆ"¤FHèHÁô"AC‘JÍñ†“’$ð„W# 'ˆp ŒˆD8KD'!0…âÅOóI"­-Ô$4µùD,&çuózU«1:Á"?–Ô¶)ö[.bäÏÒÍôb"<ô9r¯…ñq-C¿¥sGø$¢žvþkª/)ñaͯx÷=ñÿ¶¡9.DÉtL¸ù’ÔýAÿñTŒ/8¡Ñ¯­øU_8ÈSŸqô¦[š%òÁÍGëȧäw8]A‰ôHLkMR‹T§©GÄ-rJušúFÌŽ;ƒ“aÝ$-gO´ä”T?2Vå¢ÖXôi(+/'‚ôa)£tbóDzÿA–i"Ôv.³Hv)Ñ"òQ_•wr"öE(ÖõÚ¥¿ªá!ú$ž¦?–÷˜’kO§ÿD‹"!O¬ýV9Ô9ù•”FùÑùŸñ‘_•ù×]½E¿†£ˆGI\øÁI­‚GHN˽AÙøTDNÊ‹ç$íÄO-ý‚˜FšÊ^M\_‘DѶֵôibï”Ô¢ÄJÍb÷†mi7f^:+-!7¦¤òc)¿A·MúI_ÒÖÖ^Ö‹öB+Nk1÷_7¤?µõ(CŸæøãLo#ùeŽ/Cy¢öu˜íóqý¿s½~øDLDËÑÏ­ñÖìÔjÿÍ…é´›uÊ}Óý—“_Ìó"–LøE‰ÔøBÎÉÜ|[}D¸LôFéüTØmž‹¼ï­è…Ý¢ñLRÏQ5Û=/O´rdÞtKj¤n+¿ô.8/Õõ;2+#)ô"bJ·B¿vñ]iG’ÇVÇ—†?¶á·ñq[¯õ[¥?”Ö^öK._¸ÿÞ$/hãAò„²oCóÑÞ¯Iõ¸vç…O†ÖLôˆÔÏ„ñV›ÕøÃÈ1ôÛ›?µñSÚÏaýX_µü¿¦'A–v†s‡÷ÁN¯(ôŽA×ÔNLÉ4LïÄøÒoˆåì½ô˜/ˆåŒ¹šü¿Óð2Dô:DMA«AöaaË9÷(ž2IòÁ:K$¬!ôáž"ƈ7Ç*ø2>ѯCÑ=áë!¶œã9÷Ý(ž2K9­³”ñѲï!raŒøs)ù3”-ѯCøÁ«-áëaÓè8÷Œ*Ž2A¬s„òÁ†òáqaŒxsœ‚/CŒü:$I<)¾Ü‚5H-ïïQö+oïô+O¯ö/nïô/nß>õ;*O9õ:"_¼ñk*_¼ñK.û÷_Lú÷Mì?óþ_H?òÿA¿öÿQ¿ÖýaßöþCßööŽÓßçò–ÓÏCòÇÛÿÇòçÛ÷Å/î_ìî÷MŒ/ïýß/îýU¿îýA¿îýqÿìÿCÿì÷ŽSÿïó„RïaúÇÚÿôòÄÚ÷äîß÷ÄîßÄø2ÞÿÍìãùÆçùÞÂç¹Úþ\¾ïܾN€dB"!"qaÈAƒ*"‚¼â(…‚„‚8AOB.‚*(ñaˆ/´(8*:8ˆ#á(ŽŽà(ô¤à(Còaˆ-A‰‚Á#á(,$D"Ä"CdbBL<š¡"‰DXbIt(S$$ä†1"ä`‚"F<2£&‘’(ÈC!ˆ¢(CèÄAN"NŒ*Ô„ÔH(ÑH‘È9ü!,±Œ”€Y$FËF Ô@ +E„#H ô/Ìà(È(H$”;BÁ$'„$AL‚ÂXH™Æ(B$1"H/"HÂ(ˆL†ªÁD.GÁ!0DÉ"dÈ*áˆ4„+„Œb(UÆbÁ`H#á¤8EÁH#e¨AFHñC³‚v€¢BRB-`(X$"L2H#b$L$ÁÁ%£BŠc"˜À4FØèhF„\(L´Ah$¨)!M!Œ”¤E‚„DÁ'BÀDHWI"©CÌ‚@‚ô™>$$ÄP8q„‚†ä(ÒH1q@ÌDNˆ"XBˆ”4€1,Ì,V„KBd†-0&°B¡…„(ŽT—D"˜$Ž@„á"¡(CDFÈ¢(D)Eˆ$äÒ3W)„Â0&%r!X&A'"\j!"BBS²B!²B/!¤"/„5!. ¡¡GFlÄ¢B!ÈT-„"”†øR"#Ä!nAÌb!K8GÐ4„Ée(TDDCÁ¬)f‚J¡d*õ´2ŠR$!„d,!Dê¡A$EADC¨!˜D‚!†Š‚À˜+ALL’D‡DAB$ÁB„ŠX„®AL‚`HŽ$!D€(„KˆD,,FØQ,Ê „R„„(YTC*ô„HDp(„"R”¦ODØ$$ÐL$9@Ѝ(€¢‚_¨X¢ „‚D9„ˆ¢0Œ&ÈÀ2…„dB-H„Ï÷Kø#E‘A+Aƒa#E¡ð"†â*aE>"RT,!n$I†â!ÊQ¤!J¨,„e¨"ŠHtÒ´a¡Ž)â¨bD²Lb„+B^ŠVñš‚¡¢˜B↢T^†àJÄ&AŒ””A µ(8D![óQ¡Aƒ$Í(J†"27BJhÀ2E„"rQ,AìƒOX!‚IÁ‚W"BGA,¨!‹D.Ä)‚L¨H‘#lƒ€J!˜I(¸B±lH$àB8ADˆ°B8ß›fD”!:!ÐB *„!†ØK$ $"¨4†*X‚ˆ",ÉdˆN(ˆ8”D°*´(ˆÕ!b¡ƒ˜B:2+„")‚ž%$!B‡D 3F(‡B7x¨G(FB‚D2AG(àA€r&˜4APMBˆ)XD„ˆ‚E"‰R$(ˆ@’A(ÄBA"e’ˆL¨(D„ D)ADPÂB@ƒDˆD`„@\ßCpBB1"B"D’€0BC"‚$a, ˜((0"A‚ŒTA€dH`N0ˆ Ä„H€F(IBHŠÈC„B+D+D%â„(K9PBQB"ôA(†B"ˆC8†ÈI€‚R"AH¡&$™A(„d&ÔHĈƒ$È,p„t²Iˆô"DDFÈ‚LÈ`ˆ„Eôã¾p‚¤$AÆ2$”aH‚ BA”$DŠB´D"ä$J(QÂ`BªD„ˆ I$4$+HŠ1†¡… ¤„@‚H@$4ˆ D:H‚åã"JÀ$HCÈ%OHK8$F¤(a-Ò"AHAÀE‰AŽ$@b8@‚LÀD XˆHE"A0A,D‚„Œ¨‡AHðÖÚ€Á"XR!I$"D,&HÂ"(((@$ r€PL8ˆ€†„B L¨„B„-,¢%$D!(!I!E"Ä@,‡jˆÃH`¥#A‰BfÀB!"@$4‚‚"ˆH-¢A!TL¢€ÊcÈJ!Ä,B„Œ¨„€4H˜B‚d$BEHHtA@D„D#ˆ!‚ŒU &DB"ˆ#²8$B@Ć”Æ‚!ˆ!¦˜ˆ)$’‚p"#ÂAaEH,G(A$&Hlˆ! D0I¤A‰$ˆ„8HÁF˜ˆFN"ó 0(ƒ,€QÁ'C$@„$‚#1ˆZ€@! 0#+!ïgEÒQ@H…B€TTA„AzBHV„DC ƒ‰‚À@ 1H" €ˆÁœÃS’D ÑJqâxgLŠÁ&$ÌQªAÒdx4A8„+ƒ©hïøAãñ–,Š„óÄŠÑAñACøA„Ä@øRˆœ °˜ˆмTA*˜„M$E(TFHÌ„=ˆðÒÄ„D„hI2ž¯Ý XFr!q&teH|!èBh!$EâFd""(âlaÄD1AÂB0á‘EK.Äð"A˜&*¤B‹HAA¬qD(4AØaŒ%¡BD/ôAHƒTðÄG„NˆàfH8H‰3¶çñFäAƒ1H,A„ÔH¦8A(!ÈD‘…P&0*()JÄB,â(BV¡d¬"JFÄ’DˆpR„¸ò2D‰4‘­(U(.°Dá$Aè¢aB"B0B‚/X‚'H#þɯs=Þƒ´BñBQ·¡†ÂO<ýzåë!d+˜_÷øa'¹ù¨ROäRÒEø’Ozá¸ÿW$ôˆ¸½Sòa$Ž8ùvÅ+!Eä(ûwů“ô$EO<ñˆ:.LL´DøšŽ^ŽÚgE“ôˆŽÚ+WTß8ÙµõM+¡SÊ?UôIYôe22.MŸ„ôEH¯qÅWNcùŒÌRN+)ÏÂ<¬ßRT,>4_„U³Åò2v8øó(Aß䨡oí³$ôCï‹¡o)ÛñrEBiò!…o;áRÔ„úº6ß,ñAaŒøºŸìóÁwG¤k¡/k³$òiÍoƒø’ÏlýD.('ËÄ/iÅM‰?yñÌþ…‰¿yñI“ß<ÕÑôi(k‰o!QTŸ„tù6ÏdõLŸÒòAÏŒü“Ö‹Äo¡ý„…¸Hü~._ÑGò3ZÔój3ߥô=WŸãþ¬/m÷áž>¦+¡É÷ƒÜ?Óø²!¯ºUr%ñ$…/ú„?/ñíW¸ýWˆ¿-ñéSϺý{¤;åoióÁšoC¸ú÷6,ùÌ/ÑÄlã÷LLŽÌoÁ¼^øÛŸ¼õŒÿoø[“Ÿ<õ‰_7]ÿ]ø“_¨s2´ôV_$ñ[m/Ñö!Ì…òiEÜô_„oô–ÞìýÄ:«M/©ÍþÎ>¯5aœ†×ÓõCŸ…õCZ?–q~ñ蕺ž³¦ù6¦O!î/÷¥›G3;ÙAv!e.%Yú³6ß.ñÉÿo‘üÛŸ,ñÉÛoSü{¬þò6O*ù2¤k£¯ióíÒ¯Ñü’^G„ÏFÖÈÄLNˆïmñÌß,ýÈ¿­ñÈ’´ýÌ¿•¸ßô·¾M'AcñÏtõl?ñ÷l)ÇÔ]L—ÔJôÖhõÈ’+ů¡ýˆR$ñÒåo,'C\ô:$4vÒü„sׄŽ2A?¬ôÃ$?î)qaÌ„7Lj'C\|:ÄÁ£ÁáãÑü„sׄŽ2A_¬3$¬î1ƈ7Lj'C|:Õ<¾ŸÈaÑŽsÅè(ôÁ:A¬î9ƈ?Ç„x2”ȯC’È£‘èãÁ¸£Þó÷>A¿÷÷A¿×õaß÷÷aŸÿ÷Œó¿ïóÄ÷¯KóÇÿ¿Ï󇿿ñ¡÷7‡_zóeˆ?{ûwˆ{ÿ>Á¿ÿÿÁ¿ÿýáÿÿÿá¿ÿ÷„ó¿oó„÷¯ióÅÛ¿ïóÅß¿íáîý_,î~ßÄøòÞÿÅøòßÿQüúßïüz߯öÞþÿôß~ß8ýÿ>O*ý6_¬õ_>_¼õî÷wîóE?kýWÍ/kýįï½üúÞ+áïïÿè² BAB(CdBBdBDpAÜTH)DI8O(A(A&D@ÄÔH&(ˆ#á((A&¡ˆˆpaÈA‘€8Ž H„‚„ŠR„¦Dè;¿ˆ‡D@)”¤A"AÄ.‚„Dˆ¸BRH¡‚ H)XA‰(‚Ĉ"E%C„DhDL4ˆ)$¸„õˆEˆhA0’ÂEØH!F„Bh$EH8ƒ$áŒø%¿ÖMX…PB!F„Á„"LBB4ˆ#ÒäBˆ2,µˆ0 Ø’ˆàHbLš`DA 4ˆL´Š„ˆ4C\ÈžL+A„Ž„0F‰¬ÄA°ĘHàú;¦)ÔÁ“BB°)´J""±$Yl’†ðV„¤J:‘À˜‚©äºhH@å¢H"QDàò$“€(˜-Œ *#‰ˆ„ÑLD@„Å…-ÌŒ¡„€¨„/'/ˆF1HFs8„¤‚",‚’SK(pDQHŒ2D’$„B#ÁBCŒ!F8 D´HbA"…„|Hd‚dhFŠì„´¡Á„( (LóÄ IäB4HA¨LĈI&Œ1ȉ¡$3ß(/ÔQ²BÒ‚D±h´6„´!é"Á&ÐTVÐBUˆ‚xŠäÁ˜Jhðˆ2ˆ/DÑ1Hb€äAe#Ä)ø„:Fƒ*„1„ÚñÄ[(‚Læ´d‰äCD„ÔTíHÆ„ZÜÄh……‹H‹K$þ-°HBRˆR  Šî(A¦‚$tX„¤!(A"ƒd* „’D$(p(”D(HL„,ˆEˆ! ¢Š&!Ђ (ÀÌ“‚7NˆITC4$`!H/+AAD*‚H"Eˆ„b(ðÄEŒ†¦Dm 8"B ,( X„Ah"È" ‚‚&ä(è&’B$B…¢$„H¨!ˆ2M*aΑÅQ†*¢0œN$c©ÉŒá(ŒJ9B‚˜ALùh(Â4HI˜H"GŽK:¤ŠÄbBK†N8$A+(‚Žb+HC¶‚ hK„TL£H^(Jñ„H‰XBŽªÓ%Ha"H„˜CA(GB'V8"ÄPH&ˆJ”H‹€†Ø(R$Š$2lÐÄ¢D@hB(BÖÈ D£!‚´OTHˆ’Ä"F$fÄ*$‰â!¨DŒHø÷<$b#JÒÊD@¢Š*Ô$áH2aH -„H¨EƒH’˜ŠTA,!JbtƒÆ" „àD¢¤ I $("D.‚DŠn‚j"BCÈ!ȉˆ$Š1Ä͘BP†`¤K‰B$"1$àŽô¢ $HˆŒH‚"MÒ‹HD‰Á„ Ë‚ƒ#„ÉHŽ(HAB€("„˜"¨êAD¸I†Ô„"…ˆ…‰òÙ€„F„À"L'ˆŠˆ@PN)H„%$*8H€b †‚F@ ˜ "„ˆa„@”„  Œ¤‰Œ3—$(ƒÄH‹A$€LÂ’G" $‹•b!H€xˆH‚#ÁHŠE8Èi"©‹BMX„(JI¢LHÀ‚(HD ¨ (hBšC8HD íAƒ¢ÑÈìB¿¦AQ!A*t" J¦1!4ˆNˆHs‘”A'H$%#!`„@ d+ˆF„!,’¢,‘°‚%D„hb d¤!¤)a!<#Þ4(ØBB¤Œˆ‰Â”+" ªBAF"ˆhDˆÈà‰(HQ(À‚N’&(>È@„äBP$‚$†BŽ2D BD RÁ„I„躄%r!T‚#ˆ!)#¸”R$¡‘ˆ„ŒD„#ZAH!‚˜H€¤$DD‚‚!€ª”„)¡¡ˆ0„(F¨"0QŽ›“W¡@.DH‰ˆ˜(EDh¤!ˆMˆ„#X…A2)4ŠŠâD´„F@ˆ‚¤‚) Aš‘$BB‰€ ”‚H‚ñ“ý+$0B`D 0DH"††Ä¡‰DÁB(MAÀB\aìC°D*)ˆ€ˆ°(H‘Dà(a, L2Dà"¤€!L…8(HMH€4X–ƒX( „.“3HP(B'' @‘"ÂR,a‚‚ 2#2(À"‚  ‚!!(/: $@‚‘@H`!@@!Iˆ,Ù!$!2#C0€‚@„@"ˆ0"@ !€‚$€$?—H"©-AÔÔ(Ò"æHi„°j¤O$¸áq"4D'ÄKŒ3áD¸ˆ´Š˜HŽ+A’BHl3„"(Di„Jh‚<DA/BH(i!¸„‚q˜‚ó"‹)GC A8"!%¤‘+’HHKak©Gi=ÔQ‚'Â7‚!1"#qb"O(†âröˆAp(Q‰HÑ)aH$Ahƈ˜‘3‚82,”‚ˆ/>((HàLæ(#lh‚6B"h*#’’) *)œ(Œ‚ 1Î"ƒD¢(d$¼7­@b#$¢!DÉX4‹¨IѤÑCH„ `„kAT†1‚ã±–8è(‰óDB„fJD""²KAÂIHBM"B°Äa„`.BN„–¤†j¨LÄ-ÁˆXoŠDÓu{zaØ"ÑõY*†/"é2óÚÍ/i²$ø¢2_×þžE¯üo>Šó$EAßÄøŽWÏ8õߌWÄŽ’<õÛ¨†Ojé2÷A£©ŠObóWI¯ô¨Á¾Ã2MDÏDôhh¯)ûDRlµæéGIâ!µÂút”>ÖO#²†1’Bé#²Âõ’XÏBì'ê(ÃLɤ¦/(úÒJ¯NùdšÂ+=CïZ>Ì-k£â#óC´ø6ÆñÅ[N©Óò´¦+5®¢?–ôš¤k´ýA‹"œôÓÏX4ˆ/iñEšœ”ˆ/ióež_´ýˆa—Ž#óšK(ž4:/sñÄÞëa‰âƒôÈÈ/e‹þ¤/"óT‚J-Ùb÷4’OeÉ$º1¢oáÙDòüH+/cùDÆïÖDbBOLõæx¢ocã%øÈxšø‚6æòÈ’$Ÿ…óC[Q÷¥¥ñaqÿåúsÌo£ùåžMóßq÷:AŸ÷÷Aß÷õcß÷÷cß÷ÿŒóÿåó„óïAûÅÛÿÇûÇÛÿÇùáÿ÷Çþ÷MŒ?ÿ}ßüóßïQôûßïôÿ߯öÿûïöû{Ï8ÿû:O8ÿº6_¼ÿû:_¼ÿûOî{ìîóaˆ/kÿsÈokÿ6ÁïnÿÁ¯nýáï.ÿåï.ò”÷ï+ò”÷ï+òÕúÿ¯òÌöwïîö·Çn÷aŒooÿsŒonÿ:Äïî¿ýjÞ+qï.¿÷5%0ˆ$À"A&lLÄØÔHâBI8O(CCŠdJ „€8ŽBIA€dB€!„A€8Ž€AˆAˆäB 86ó%¤¤B‰!ðD¢‚Ašä‰T$È$LÂHD)L4XL«‹„`\©ƒ$CH¸Ĩ2Iƒ„H$db"$éBˆ¡„ABA(M H›!KHˆè,ñD8°ÄbH)iL¢A-ĉHpDH$ÈBGLBˆ˜Hgœ(H ¨AD0ˆHˆB$Lˆ„H`!D’€áˆ ¤ƒ¤HÂG=a“M˜8C,a"Lá(q$!‚1‚)Æ„/8AhA"ˆ‡*'I6ˆˆ:†$‚QØEHdT0:0FƒYRƒ‚9r‚D’ŠÚAÊ”ÐD²HxXh0H`„LòÇR *FrHJ"”(‚‹!¢„‰A)ÂH„’@è$ˆHÈ‚H„RC¢) ¸$„˜dFHÈÄ„'Bˆp"˜ÈBÌ(˜†Œ””AŒ"DLŒ(’DBŠ)ø‘Ü“‡är"xBX#èF1H&Ò”¸2ˆŠ•2œX"’APŠáHBò¨B%ãH¢„,˜1(iÈ¢€šEMXEèDTH¯Ibƒ4ŠAކ«)'‰òDŒ#t‚î{$rÈHE¸,Ù…¢TKHO"!,åˆ%²ôᬠ‚A$!",‚˜D(H…`„‚„ŽAG…ˆÁ‚IÄ¢ …„PB@BŽ A LŠ‚‚DisE!(EJèDT($„’Jè(J!ƒ((ŽA„GH($„Ã$x(‚ƒ˜"D 2Ĉ&ˆHŠD8„€ÁH€(È2€A&$ˆø2nàÄH¥„¤!!DŽH 6¨†”"H¦.a„"ÏdÂ+GŽÒ%­H†(hÂN9,¢!_¤2 )„•dÄDÄ)ê„aET‡!…±’²Dò‚‰#!8"`*AIÄHDˆ¢ˆ%Ô‚„Ôˆ‘BPˆ!O!1z)U…‚B‡DŠ(*ˆô"H€8HF"„"Âh‡ˆHŽ&¸Et2(ŠAT&ÌBLLªAˆ*x„1ˆA,†º””D‚%¤A`# Œ_Ø B!H",dA(ˆ@¢ƒ!à"D¨,¡H‰1‰J*4‹(Láb ñ,HABŒÂ($‡D“Á(ŽH#a*"(ÀˆHJ&¨AFBˆ„„-”3V"(BB„H'ªà($ ( ˆÂH„B„ƒ$!Ì(‰ˆ¨„( €D¤8Æ„0HL8(àˆV„HˆD(JAˆŒb…ŠB„@¨„I!Da„HÊò¤($ŒA" ¨‚À0LB” X Xˆ*C"„H(‚€L$è(E@((²è‚0L„B€€BA¬1.bhHH"  ŠhA‚BMHA0肌¡H˜˜ˆ‚‚`BÂ*˜D„˜„("ÇJFˆ(4BA@H(HdAƒ",$‚DØ„Dh„ˆ"BŒ„„oWK"AÙ!QRJTÈ;Hd(D%AT˜`’D‰t‹G49a4A1d#‚'VðBJ $@²‚T(ŠCB)M²"I2"Њ#@‚aA„$)d!-(G!¬2ñp$“D@A$†¡A®1b†(ä„”xh$†a¨La(L†ÄD*(‹‚€ˆ4DHG(HÍ‚ID$ÄŠB*$"¤L,‚˜HKE^{$Q0$N(Bxä„"bDL¤!‰AA„QI@A¢„!)¨eBˆ(ID‚„ˆÀÌ'„ˆD)‹„#CAK(ð„HH„ LðˆGÃ!‰$ƒ¨A˜L QDaD„PA@”‚L8RÁ0L$$XDHŒ„¬)XDIÄ„a :ˆ!€‚±ˆ‚AH$ÁD€dA…¢„B!ˆŸ*GÁFÄ(.ˆÀ„€ÈA‰ÆÁ!‹LJ±ÈÄ‚`(@âJ KC€xD"M‚,!ÈRH„,2„$¢L$Hp(”¨J¡!$‰D"$.ì£ ‚T€€"„#±@±‚‚D,#! b# $(À""„ (¹ `! "@@¬‘FA2#ƒ£„‚(, "'C !€‚€‚.À|ó…”Dc‹AMA”T*±„¡„b„&H31…”Š4º’0H\á¨#È:Æ,úHÄB"„2XJ‰¼H²D„’bÁ‹DO$"ø„"Œ!ÂDF¨#¦‚#‚ˆ¢„H€ú(/bBó)UØqB8DDØCøB„'A.†*Ä„ìQ8äÑÎHX†è*ôJ0;†k‚+ƒ#Aq±^”$BA‚O(Âv8ŽF@ê(L¤ˆ'C/ƒx2„hA#äA’Š2DTŒOˆÓ¬²„ã¨á„ÁRŽŒä,3Z€â!Vƒ³(2"ªqAh‚&DÌLÌÌBD#4ÁcùDEØ$bDM$L”dà".ˆ#)R‚Iˆ÷ˆ6NLð$¤ïéã¨ñÄž/BudôˆÂΊ+hÏFø¬BO®ûRŒ#1%O*ûŒ¯…t4ø4²,Ò„$ô$è¯)󄬹>tlüˆRÎÒ+!fü¬Ö“ÛR6,6_„ñCIÁ>4_ÄñÅ[E߆êa¸¶Á$_”ü„OKùE]Qô,(LôMͯ}QÌüÞß(QŒüÚ6ßjñÍe_Æø2„iö-Í/ƒüöÏ(ýR,ÌbÂÍ„oiÃlO‚ùîfÇ(‹DŽˆ/l~(òÌN,†¸6ø–L¶hø6ˆo+Ølõ(O„~<øLŒ¯©“dÏ‚øörϨ±H‚üÒvO*ñé·$?¥óGs—¥…ñA]qßÇøWŒoiñ…´ocø4ÄßÏñŘ_ÕþœeRü_,ßÖôLÍ¯ÑøWÄÿmõϸûˆ¿-õ‰7¸û¤ûÇïkñé¾oAú2„?oñ¡ö¿ÁúRmGÂkg,Œú2ˆ«£ïmòÈÏìºBøÊ‚ìòH®/Lú~„ï+õå²/Aú6„ï+ñìò¯Áúš<.Ì/B–lÌÿ:„/ÃúÞ:ìñ̺녯­õˆ:¬ûZÔCÔÁñeÖõA¿…ñAÖ÷Eß…øWÍï+ó†”K¡OAú”_ÜýeÏYÿm,×”MEÏÔôEŒÿiñ‰Vß¼ù‰¿)ñ‰RŸ¼ù­ÿÃø7Ío¯ó„¶kƒkƒï/÷òïÕú’~‡†ÏBÒŒÂ(.Œ¯köŒrÏê܆ܪôˆÂ(ÜÂö*ˆëÇoëó„¶+ƒkÃooóŒ¦/Áò‚¾ÇÇFòL,Äò,Œ/k÷Œ~*ýȯ©ñˆZìýåOkgC\t>Ô46ì8í(ôÁ:A¬î9ƈ?Ç”ˆ'Cü:$¼ÄáãÁaÁŽsÕè(SD_¬SD_¬î1ƈ7LjoCÄÅïCÆÁ«A>žì8í(ôÁ:A¬ï9Bƈ7ljø2DȯC†<èëAhƒ×óÿaŸ÷÷AŸ×õaß—÷>Aß½÷ŒÓÿ¯ó¤Óë;_¾ýÝ8_¼ýýþqüá?Äø³×¿Åø³—¯UüûŸ¯ü»Ÿ¯þÿ»ïþ¿?Ï<ÿÿ>O8ÿº6_¼ÿû~_¸ÿû^®þÿÇäêómŒ/ëûˆoëû>Á¯îúÁ¯æøaïîú^aïîóÌóïïó„óïkóÅúÿï÷„º÷ï¾þ÷Ç®~_Æü²¶ÿÇø²¶ïCüú¶ëÁ¯o¹Zþþ¾oþîr€,dB †4(ˆ#á(a„Hƒ€2D& DÄTHHDH€<Ž$$„2D.„B‚B„ˆÈ#á(EƒB(CdBFÈ’¢ˆƒlS-Hàƒ)¦"(DB*4ˆ`DD TA0\ˆ%‰h„dŠÒ„AC˜ˆH®BD‰,dŠÄˆB%(D˜HAŽbÁ†Ap´h!xh „„1ƒË‚‹AH”O©C„ñ8E€DÒˆ¢"F"#È$ ”(Š(DFŒ¦ˆ@-„C!Kˆ„ˆ KDH!ÂB†HLˆ'ÆCAЄ¢„8F$ˆ†êBBH¼8šˆ-a[A,DAøFG¦aƒ˜2äá"¸$2,-$Ò!‰1d*8PB\2’…AD!dãâ2DO±B‘&"%MB$T)@!RE RdJ‚0%á;‚!%)qDÁ&‡1„P¤Ø”"HQ‘„pb…4ˆÐxHAèt à!h„W„†#DDX$ÚRBA Oø{ÝQy„ü–Äœô×Í’òÅI¿aÝ,Ù$ù„LÆ8cËE×Ì7Í/§Ý)9S†²B´‰ø’„øÁI/1Ý(ùˆÎȯy÷¨V’„za¸²øRŽá—Ž?‡ø³V’/Aâ„ölD‡Œo!»„ú$o*ó‚ƒÈˆ/8ò-†Ÿ‡?aùüsøüqü—Œo©ùD'IoIø—’Ý¿Iò¥ŸXxYY…tš´žøš×ן¤óÓɯ)Ý(ýH/Í4žï­ýEš'I/Iú¶–MS¿ÝòÒ©†¯viyÈùSI¯üÓÛŸ¤ó×A¿!ý‰óߤó“å¯ôûš®³:²/#é2ÿ[èï•úd̯BÖHòLxã»¶ò¦Ï¨ñ˜>+§(¨òŒ*kˆsÓcÑ%Ñ5qñ§Q³yŸñ–Oh9’cùš_èù²/óQUUÅÄGˆoñÝ|ýÉšôÒÒìùÒL¯I´ÞøžOh±²ò–Eï1ýŒ×¯òR{–Öd”ÆøÁI¯9Ý8ýÉ’?ôšÚŸ(ýIšÝözÉ£û22޲#ó²Á¯;÷ˆ3/ò×:O†´,öDlĪ‚okÚ(ó,–/ùŠ‚‚-¨/V'Cô:$ÍA£ÁaãÑì87LŽ2A¬S„¬þyxaxsŒx2ÄÁ§C<>ì8wMè(“$¬SD¬î1ƈ7Lj'Cü:$<>ž6ŒŽsׄŽ2CøÁ:A¬îraÌ„Ljx6ÄÄïC«Ñ£>L3=oQô;oô;/‘ö?oôŸ?O¸ýŸ>O8ýž6_¼ùß>_8ùß>z{_ìzñMŒ¯kù_Œ¯{ýÅ¿ÿýÁ¿ÿýáÿíÿÁïí÷ŒÓïíó„Óï+óÅÛ¿íóÅÛ¿¯ñáÿ·‡þ÷Iˆ?ÿý[ˆ?ÿýÁ¿ÿýÁ¿÷ýaÿÿÿe¿·÷Œó¿§û„ó¯#óÅû¿§ûÅû¿çéîìîóeˆ/k{wø¶¶ëK¯ê»ôªŽ«iï꺞öD „(EhB„@pAÈA(È£á((A&„4(ADˆ#á((A.„àHˆðAˆ”ˆ€€8O(CCŠdJðßcI„@%h(P„A†D(H( E(Ô%¥H…°8ˆBDì„DH HƒÒÂH#xˆˆ!‚ÀJˆD†ØAHˆN 8‚‹(A¯ßŽ„1G(D††hˆ0(€¸BHd”@1‘0È@”ˆ!„A „D(¨AŽˆ „h¤`(!‚ 8H!‰HtA”A‰(<‚„ŠCÑ>Ï%d#ÒÄA!DŽ2MD‹BÏ„èi±†õ‰ÖÇ¥F­ýY)fø¤kúA|bb/*ûVÏ¿!ô/Fïº÷ÂvE±Mô,­-÷ÎQŸLù,?´‚´Áظâ’ô¤F;ÿ]ŒÇ!.+«]ݧŸñ¿y/,bD…ô,ìolòÔ¯,x.êÃô‚RÊØªò"Noë5õ9ÔnâCóD/„T.:óDÔHZDNÊïI•Jý…/ñÄNIIóäÎ\­bÏæ¨ƒOéÑ6òcÎÿ#ø²W/¸ý^!ÉvvÙøüÞu«$ÿf­jWˆ5øKÂŽgGº†Ü¿÷q–*ø”mb—¹j¸òô†œ¯A²HâFÔÄùž"DòlÄ®rgˆ*ëÄŽvg«¯$Mó~o†Õ*wXúR/ÄÕ.õ|ªOåú˜6?Æù´‚k¡oçùÂ/åþä‹BçÇnHËÈËÁÏ¥øÖO¼µÿ\‰ÞÎx‹øÏÅêçèkñ£´/aªÃOÏñâ»õúbï6ü=(ÔÖåúxÉ_'þži˜õΣߤü‚I?˜öÉ¢ïÔî³ùìF?Ïú¦>‚Wë«þS©ŸuójÄσöD,‹¤«ÆïÃÿ‚jo¨´ÌûJÚŽH/èöÊ¢¯1to†ñF|¯!ôX/„ñbX¯#ô|®^æ¯Éû&oKò²$ko¬½œöšvÏ„âÄÖLÔhôHŽÞÎ?ÌýÁŸáŒá̽þxŠO§¼¾ó†²OCø4¾7o¬ûæ¿ywkø%l›$o_æüùg/Ø÷â¯4ü‰K/˜ôÂŽÿþ+ÏO&ù»8o(û$–O"ý¢r¨ÿJ¦Ló|HO¶H²HóxÈ/Êö„lũô‚HΞ¯u¾'Cô:$46ì8wMè(“„¬ÓDøÁŠøá#qaŒxsÌ„'C\ü:$<>MaÁO8í(ôÁ:A?¬?î-ñaLˆ?Ç”ˆ'Cü:$<>MaÁŽsׄO(ôÁ:A¬î ƈ7Ç„gCLü>$|’âç!|9^-öïSôz~ïôz^¯ö~~ïöþ~Ï8ÿþ>O8ÿ²_¬ý[¾O¬ý{Oîøä~ß„øöÞÿ…øòßïüùÝïüùݯþýüïþø~Ï8ÿú>Oxÿº6_üÿû<_üÿû_úø¥_†ø·÷ÿ‡ø·÷ïüïïïüëϯþïïïþëoÏyÿû.O9ÿº&_ýÿû*_½ûîïìî÷mŒ/ïÿˆ/î¾>üèþï!üèΫáÏîÿñÿùN€dBðAˆ”ˆALI8O(A(A&D@ÄTH!Da„#ñ„„I(A&DDÄA…$€8Ž,dbÀdó͈Â%¤ÀB0$¸D‚H† Eˆ‚$‚„DäˆDdŒð‚˜B†ŒxB”¨a É(AŒ HA„`h‰$$HøÆÈé† O„AÄ„!@!„P†¢Auù˜„`D!„D‚„Ã$K„´‚C2((HB„HGˆc+é"ÈD³2<2ÈÄO„)„-Q‰‰x"ÑŠå‚t¢¢CR$BD"Ôˆ"Ô„(KXÏŒ‰W’.hc¢AB%3C$â 1‚AƒRH!¢D†d%T°hÁL#ˆQB-Q(P…SÄ"Ęw$ŒèÔ„…b4Fxä"„”$Á"ĆRHQHÎB(ÿ³ˆ¤AŒŒˆ‰"†â!˜hO(QH8D޶ƒ„QH‹XB†«A®Ø.†!"+ƒ"¢Xp(C¶(I'ŠØ$B#$r±¢„(BbB$&$d‚*„D„2ŒŽH&dˆ‚Cá2=§(!(Câd¢’"’€8&RT0#HED2ˆdCBÀ&Æa”B@DHD!€aFH!IH-,D8Fâ¦H@úˆd$(@24 C‚!@!`!$À$@A@%%!D„!@DG!€2!HBŒ<¥$€‚i"†™!%¤¡"G(bAE$Ä1#lA"Md`($E0BDDB!D…"%’DA$Ä@D!HÈ$A@X(¢„?$„ò1Å$.$ˆ9D’Á,$ €H"$b#¡B‚T!!‚D%%!D1DA\!ÈE1‚ ƒA,Á(AL¨„D=úH)T€$*ÁB.$*‰.3À‚ŠH€-D¢(I„!@d(ÂD%„DA‚”‚H‚a0ˆA"‚D`D"$D"òx.$Fˆ@á*!*ä0!A@DRABâHHj*’"%D$B•BR!AN„…F‰HA¤(IB­mÃ\Bˆ#1#(#ŠB@2A@B@"4 # $EBT!D ¡„Œ‰ˆX4Á$ TŒD„¡„DP‚È…B‘Â(B_Ä  âd(-!²ˆ+!#B¦B ˆA†ÔÅIJA$D(!È"H)aPžBCF!!‚&XHˆ&H(IE"(˜FB0Dàˆ7߀" ˆ€ D (H$ABB@ „@ˆ„ ˆ"D,ˆ˜I@€„øaÞàbJÂ@A€„„ BDD‚HH2ˆÂ €(‚ˆ ‚ƒÀ½UBKB+b5‘b>!!+!*ïH‰z%2!B(,á( @$ü„cÑB¤H€"ŽbCA$G$&&A¤„)AÄH­JÄŠ(„A$X"Cˆ2DF¢"d$ˆ$f¨D…˜ÆhŒô{`À$ &')2T #’BC˜DDD$HDD,a8DN„F#2‚%DLAŽC<4ÁACX#HèŒhd…H‰ÈÄÁ†XˆP$Š4LCØ*¤L)ÄD޳Â()"lQŠ„41‚(&‚CÒ1£ D¤„!pÁ!1KHH)´&B""²$G$B`D2DN„‚€’D-ÂEAÈ"AŠ"4„Š\AFhBD.‚L”‚‰”ˆ%²ÎJñ#DfòB3Ñä$ñC1+?öÃŽ2Ga+!d<¥Ácõ’LäAtDä1ø–E=AOd±Bùƒ1HFòB$k"+è.æ†R%!NE]BItfñ"$.DHOø’?YõÏG$Ï•ñ’;˜üB"·æCúÈÍM"W"ŠøAÅÍAÏô¤A®,&TÈI¸ˆbJŽÍO"R‰Ì"&üä½ó×÷2:rA±RÕ$¡"b+o/üq6KŠjr2óqS."‚oEÝBDÎÖ{A?AÕ$áHøD;D%B´d²Æô&dn"K¨CTf4D’$4ÖSTA*òeòžT/!Ô*ø„ñQJ©èú²Îòäk.m„˜‚k*OR²Iœ©[h[¨…D¸*ò$®'h!‹äoŽtÌrB¨Ä/N²Ì²;Aòv“;_?!÷E/$±Rôr4é$ûƒ;-oaÁ3Vsrá%ÍÖ-ÔcåDÔD„üÄ/$ñWE?1þÄ#´BÔ"ädød‚g({¦'hErDrFõAff_RüW!Fö!äOcýT’gÌüô‘ø5yÈøÃK/ºþA¬Oöº§òïŒlº$úå(_LúI¤\ö$„éò,$Bú(„m¢Oêv‚ü†ªo¤è(4‚?šúB©Ï?òbq-SqSñsq?"å>óáR>$o+è#ã2ñ!/'ö’VŽDCôDDHŽÇ_5ñAsõÒÅ}RF2B/Fö"fN†O&þ„¤gbdEöGG/räR¶còDEME\õQ“W}·l<ýÙ—=³üÈæ¿R¼húGËÇ(OJú"¤MGšÏ^èBü¡$.(ELì²$z„ôêF,¼J<ˆ/,älúhÆŸg'Ct2ä4¶â¶„á8·Åñ„2A,“4,ñá#qaÄ„?GèAx2äü2¥Á#ÁÁcÁAAŽsSä(ôÁ2A,!òá–"F‚7Gˆ'CÁ¯SÒ<­áë!aÉòˆcÛ$Ž"IòÁ*M(¬"îx"xaì‚xc¬‚'B‹Â¯B’Ì¡èéÒ˜2)=go÷sg/ôsG/÷wcoôssO:ýc6_8ý"2_=õc2O,õC–îÖwDîV[„/5k+Duc/²Âô#Bd²¤êFò"#_dT5&ñFC?BFåòDÇ?HÔÔ9hXWœ/”Ô=x¡tæùÇH­F$ª‚CXr¤þ-‚KJoÈØ[ÒI(Òäøª$¡&¸¤v†X‚$ìJtäø¦&4oñFQ;aW5^/4õBO7òT'aócK3oAòF4/ñsQCö#áoòeA_Bö!qG5g7oVµ÷E'/´#ä6ê6ú";¤gjlbf'_tärÖU¾vòaD\þ!ÅO$xÆÿÂHïxþLŠ7¼?Œ´ŠühOäø„"ÿÎø"†M†O¼òçˆn®f¿Bø/).,¤Bú,ªoêôâL뮤ü‚J/ˆôêâk3çoñGV?1d/5±cõ3Awâe×Bó$o"âqó3nR"ô1F_UâF´!ô!F_tâWór?döSFsBñCB?2ôA£Nâ/Jú&"."O2RVo$ÔsæR4COFÖUäröE‚GL7ÌŒÜ+|ÈyÃùÃέ矦údêë*ohê"ú$¢ZòÆ®­æ‡ZÇ’WÂÍ$‡bÍŠOÊö‚l/¨úJˆô‚H/ÌØzþþEp2ÄA/CÒ4vÒä87EŽ2A,ôÁDn)qaÄ„7GLx2ÄÅ/CÂÁ#ÁácÁaAŽsCô„2A_,ôÅðá–#qa„xs„x2„ü:$Y|ÁáãÁaÁŽcÇ„Ž"A¬tÁ îsaŒxcŒx"„ü*$È¡èáœ;=÷oQôsWoôsU/öuwoöuwO8÷w6O8·6óÇs;7<·sñãws÷åw[†?w?w?wÿ6A?wÿA?vüa6þa?>ö„ó?lò„ó-&_<õC&_Bƒ4‚‚G4$C"R$!B²b$A(B4&($+!9$IHB"QaG"(LHÒA"AI#Ah&$.%@&XÂA$&•"DÍBB(F"TƒàÒ;C)òBD!@tQv!TbPBÐCG¢$E’D8G%AÁAQ!>%âEarör4r!ó!GrÂAT%£R&üH$Q˜cŒr"&XT!!(eÓHr(aB=D‡b@AR(fT"?é DÂ!!à"!"!JAIÄ$0!$!&@"PA!(EA!H"@0B&D„‚tˆFB,¨$HFÄBBè’3! (C!(J’Bh€.`BH"&"E(tðG($(A  8C¢X&”&4BƒR„`&ŠÚDÔz&‚T$ˆ&‚FjB‚E´"’B&ð‚Dðe‚…CÚ$F!aBB—dLÈ&ÖBq3TA"CÁ$a4A/)Bât#!‘A:R$U²BAQÆÒˆ‚‘R‚©KLTˆBˆ(PˆSš%A‰ÂI„-HM(A$‡¤„ÉCM‘$CÄB8#’1(CBÒ#RD(tD(Ð1€S&Ñ$"’M$!"q&€2”.#Ah!…¥!&Ú„$BdjM(#4CƒLBAì‚”BE„+DA¯íFd°DA,4¤I’IV!*E&D)äB4!D€’B"A-@¡$$ÀD@žANŽ"H ˆƒThŠˆH‘…¸ÉBx‚$H…äx<Æ¢!)AQR*dB#L‘"B±¡$Ä!ÀA"¡$<âADb, 2C)A$n‚×Ä¡*‘L#x(uBˆT'$Ž)‰$2&”AJB¡¤BàD’HÏ< 'C@ LÃ"À ‘#„0„J‚!ˆ@2$((A0J„JA‡"!…ÀJð!$ŒD B4B$.“Æ*¤°(IÂ!#ÓD¢YB)¶A„ä!ƒäÂ@¤A(4Š’""& M$"Ða"%‚²D˜'”ÌT„WŒ—D(Æ(`„,¼(ÔÆ*$ˆ.D&!pB’$¿Ë"M!9D„#ABÑ!!$4%ACÄB,B‘AHDRBFBÑ!’D0DH(!*$!$‚W,—(!(IT@+„H€ø#!HEá%‚",IàB`B(3bDH%(EAH,,Á##BPDÂH(À*D‚,b(d"‚DBD‡F€")Ôm I"’‘,!("T#D!#A"$B „XB)HB$¢A€‚j‚ 5ˆD†q¡Ô„8(*Hä„Xȯ‚–„‰(!ƒØ14Ä,"L$†âR8%A$PB($E‚‘"AP!BB!€4¤A8!!C"G"$QDC“‚IHD˜BEAT($Pi&ƒ´()¸"8HH‰˜"ÿ«OR!B F¢ˆN.$…$"ÁA"LÄ!„Ò$G&A*'b2D" a!D@DÅBB‰1( 1XD1&Ä"¤(Eˆ„EHBàt3K€"¨C("ÀBB aD€F$Š€ $D †)˜H D‚BB€ˆˆ€Ý×  ""+"(I BB€B`‚"@L„($`$ƒ$ D@DB„D¤D„HÜ4>¡"d`+!+(CÂB,Bò!.&D"F¤Br/BT,¤aGX‚I’"J!²Aq[‚[†)ô"„+M˜.I˜ÜÈ¡m-|BLôD$$“â$dR‚‡D‹„-D/DdDj´HtBˆø#'0dCÔ!bD$N$N$fÓBD:²†„Äa,„4$$a$&D2B1!¦$Cæ¤B"hT‚@ÂAHQI—$2„F²L(´Hi¨‚)˜Â.Ä)’D(M"(N(Ž(ŠbŒD†è(d¨Fä<)²T+A0’b4*…Ã1K&’%ME1A$;!'Q/BÄ$AH48K(IC!Ä%SdQf$gDGCHƒ‚ØŠ”2$ÃÈ(ŠrD‚YÉD—ˆHB@|Aš‚!†„²BòGÔ$#¶faT–Ó!´Bód%O!ò5B=u)‘$O!òbE9—tG5cñ!ÄBvDñ#6aô1fkGòB/$ñt%g1{ÉR¿„Ó&1Ov•s,vVñ[B.dOø‚{KÈÿD6¯•ñ’¿‰ýX/—sŽô‡ÈŸRÎ"M&+ˆOVÞ¡Ö\ö‚M÷_„âÄøÎKgšê$V\«HŽˆNbïBòʪSÜAö¡µ/2rT¢eñ"'VótbC´a±&óg"vsÒ7òTB/C4!6±D÷2FaorrD£e}/r²B²Ôö3F$±‚Úer4õGrÓs¢GoCÑUâ&ýµD;Sÿ1ëÚ³ÜñRx_1ù¸=OòÊl?"ôMŽIjHg2ŸäÜ5ú‰m/8|c±eøLlnÇmHoäºä²Š´JôFÊîAßL¶[EñR7~GaöG'5^CaöB5oTñW'-oBñF2G7?Eõ#t_S~Vñeed}eoóV7~G!÷F/ñRCAõc·Otû•2gèK“2oEsR±cµ'õ7áo²e´%ü%âO4yöùæ]?©ÿU›/½ñÚQ?©ýl§N¯Ÿhòãˆobê"úÄ&/žøm†O²ö-å55$O†ø-¦t:®çʯˆúD‚«H§ˆïªü$š#]rO7òurõBVóqr?QõckVm&Oc³2Óñ6'Ouõ#T?bôA!OFô!DBõagvV÷qbuCc5?'ô3Un³O$¿†ú4/bÓtó$#~Scõ!fTâVô!DR÷A·î7¯ñËôÿ1ýØ/ñûÜ3üi«O$þŽ,o*ȦM£¯Øò惿²ü¤ATò!dÏ‚´döE¯®NëN¯hÚ¦|È:Ê«ˆ/¦øš¤p2ÄA'CMA#Áak!–$ŽsSä(“$,ôÁðá–F*xs¤‚'C.Á'CMÁ#ÁácÁaAŽsSä(S$,S$,Aöá–DFLxsÄ„'CÁ¯CÂÁ£ÁáãÑì86LO(ôÅ*ExÅJøáŽ!ÂĈ7ÆŒx"„ü*$IŠšN¨SØsõE?w÷A?wõau÷Au÷„Sgó„SoaóÅSeóÅSgñáwwG~÷E„?wWôs÷oQôs÷oôsÕ/öu÷o1öõwO8ÿ÷6O8¿6óÅs;7_<·sñáws÷áw[†?¿wøó÷oüïÿo‘üëß/‘þïÿo‘þëoOøþë.O8þª&_¼þë._<~ëîzzgìjömŒ/zúo/jú.įêšÎ¯î˜êïêšî?²Š"(A&(0a„€¸â(((A&$0A-Aa„#ñ„DDˆS„.„D„DpAÌA……ƒÄ!†Hˆ$„äBÉ3'!!-Á"MÐ$Â\âD"a RAc21ARA4&„ÂPB$aBP ‚%4!r„àd!n)’$$IÒ„”#E2,‰„Ti&ä¤Ôx!„AˆÂH~Ï ˆ!"!!a$(-ÐB.2*ÔA&&âqBQL‘$ aBA"À5DD ‚p"aD*!)Ä*d±cca‚Ò$Ä(a0$Œ„t(¤h‡Dp(ùA)cÜ1‚CÂS@ƒÃ"F$c4rQ#vr!((?5$-ðC$*aCá&DäÂ1#òBhD"4GD!2%“TB/B¹ÚXÔ"2„&0A'!ÁE¤F‚4C$Ô*D(¿Y †’DFBá(Å(Ñ$¤!d‚CRBEa"8C!±R*A"ÀqHACä"$G¢H$´*„’H'HáP$&2„4„B(ЬHTLt"ˆ4CŠR¤öaæÒFƒÔñb3M$Lƒ´!441`R(7S&tñ4)aÁ!:42MaGA%²41$2…ñ‚b0AAN4 %'QÔ-Iƒ¶*tŒ’(-†$&rBE’!&ÄD6(D%T‚ƒ$¼Br"üÑÇ0‚$!0 Äb!&ÄEA&B1!$(,!,T(P!!¤"A3DÂ$02$B,ÆÁ!.EA(`DP(`äH‡Dp(¨ˆ/Db$!ÔÑ>¥,„‚!P A$Šø–Ä 0$G P"Ð&A`H#D(4$cH‰2°T€BA`J¤@J„&DŽHò(Î@q3ÄDLuR¡!KaCäB±EÂ,‘$L"'D/VCRA-$i6À"\Â.$V" I$£AL´$$ÂDLTCJ9I8b‡bA'…Z$-¡(O(Ø‚¤.Ž-E…´aP,.Ì$)Ô(‚Ø2=Y,êQ‚µ"TBqM!!rJQ'BB&„AÂD@@R"L18!D-BA&‘DGD´p"˜EFÈ"ˆ$ŠP,(M(DDJe¢„„‡$"<øÒŠ`B"ÁD %I2T"’„,L!2„-0$0G2`"AHC!*" BL&DFD‘"Š&´‚\ˆÀQÁ$ (Cb‚)tI…‰‚(…‚"lÉ‚Î!Eˆ¢J„x"A’$!"A@ÁAÐ4¢DH†CÂAA%”‚,DQRHIXB`e²”H†áˆTa…aD¡)r„„$QD…AO !cÜ$T2AŸ¬ 2+ÁCD$Iƒ+`T0¤"(ðBA0A€È6A)0‚FD!TB€C @HA2$Š2DˆÀBE!ÒFd(IÈJ#Ä(ÀâÓƒØD’!Q/Á$L$2ÁDD%‚ÂaÀ’BÄA‚¸EI…Ü#tDadàhBDâ$-AABap&á$Ô$ôÁT(EAØTH&”‚OHBY$‚P”BA‹Hw(d@òÅJ$¬„XJ )Ä€A‚aà1"l4(V¤"‚)a( \4$‚c"12%2((ЊÁ"Œ2,(‚ä‚Ä"! 2A*(’$JÒ¨(I0H â¢?Š$&‡T!hŠ%‚,-!‚!B±Â!T&F1!RFÄ4!Bd)ÂHH¤BQ&äB”€TBQt‚A"p" Êd‚HKBC¤B$‰d"‹D‰øê×`*ƒ!„%%a(‚(#È$/8A1E!hˆA!ˆ,qC‘!EÂ!I,•!%öD#Ä@ˆ„T†,‰\,Bb$(FAô„$ð„)A‚NDŽJBDOô9[H+ˆ'!CA‚aa#’pBUBQ$+ˆ¢!Z„(ˆ–£DŠr„AaH(Ê„$B¤…)DAÄ!0‚€R"€-"#IdDÀBȆB$À$B_ C²d‘D8(`D¤$,H($D&1$GDB]D'T&„$"ÄDDÐRŒÄ%rCR#:& ¢FÐHB”(HµRD@P®Å£ FD@HÀAÀ"'$BpƒA™ ÄHD„!ˆ!ðŽ+(D`"‚@€H0 B!B&‚H€„$B!,DBHB@À¦“Ã"qQ_–?BòŒ"-†ŠèŽòH*N*g$…ôdHÄrE´È|'„ú.ƒB´Š¤"ÏÜÅ"÷'BUq±Eñ!$_²UøÕ?.£olèYùfu7/ruó%&Q:ëø2§_ñ"gy¼üÁQF¶EþÇ{S/hñ‚4#ü2Q/xõÇs/<öóÆgRÔEæ>õwÃ~•_äÿCrÿ5õY^J/fósÿUx«q†ü‚"oŒªÊ‡$¬öB$2ôgM‚ÔöéÇ’ìÆüÄ(O$–ί$ü†J¯N²Ìö1/$OcåcôT3NRµQ¤SNo(õıEø‚-oDqvâTñ'S>¤[!Ib"<ò¤–³Oc¨9(é©…šõ¤4®±oH;u/J«²Š«GoZù$/þVD*4$KjHé#õ¯8Ï•³±õHJñåGóª%hziþ¢&(h‡&¯‚tnú$©{DÏ’tmì‚ò‡†‹†Ï‚úŠ.O,˜ŠƒôˆˆOb?·\ö3d+%?ÕôA>dA÷ÁT_(ù7¢Oká!Ñt±5òTv?ñe'7R&Uªóƒ/Jºø3§¥Œü1Å_ñ68÷Q¢ok©±<ûækßý¡d_ò!%WVvóƒsî%ßwýJV?±ñ¯%´jñ7Zÿò‡ªM¨o*¸&‚æ$ò(B'Æ./½lBâ–ôá/ÿœöèäËÆÍÆ/ˆôÊÊ­Â¯Îødɼp2õ"A'Q-A'¶ÂaAŽsK$Ž2AÎ2M&,Aöã–qa´!xsÖBx2ÄÄ'C-Á'¾ÔÒä(ô„2Eò2A,AænYAFÄ„7GhCü:d¸ÄáëAMaÅò…bÅú„"A¬rDrÁJò¡Žfœ7Æ=„/BÄ„¯B–¡)Þ„2¤lÿE~voôqT/öutoôÔto8ýö4o8½–óÇÒ?WóÄS;®7s÷¤6_ø²·;¥¾¶1îkûWÁKùá_Kûá¾4o|ÿ²4O8¿²óŲO÷„·áj¿uäj·eø²·{‡Okû>CßæûAâùcÏæûaÎòŒã¿Êò„ã«*_¬þi(O¨ökHOêroø¤o߆ü¦¯ÿ†ìʺ.üè®éü莫äÏÎúNá/,I‚BÁ"Q&&B2a-Av!TM+!ŽR4(EÁ#Q&D!lrAÆAdE!”Ä#ñ„3T4Ô4<3D.F#Ä!D!ĘBFBI8CO8Q4BAB,6D.FBœ;„–†Ba8A’+M"PB$dI)dˆ$“AC‘BÔ´$rECÀ"Ò(BaA¤F“’‚'H…‘Âé‚ÂBˆ,’$$d(ÃÔATHÄBŒ”H!ñÕá'D²’‚IM"LáII´‘KAQ!J‘B6e$,T&€”’&A"RHN$A§'¹t¤˜bB$#2„(DG"J RÃd„4hBP(ŠDØÒ6Þ< ,ÂA$B¨K¤EB‚âhqA(B¡!ðA*‘A):$"ƒ8ˆC²DN"GT(LBb8EI6ADh"EØ‚(À$¤Lr!ØRDFÄ$FO&$ Ä&ù,\${%D‚!FÄ!!B°†2ˆt×!#d"!kB'A"@&áBÄ$(ÀTDD*`GA&ÈB#DA""LB"8BÄAƒB4D†ÈF()ÜB„h$.ßá%¤ERH(Bò¢&‚1"#s"ä(ôa+11$&ä„r2A,1AVô&"†OA"v$$g1E¤$EÄ5Ž#I2D…$µAÄBìÃ(&Èd*8"(g¯ô$FÖ\„dL­$Fä$ ŽBŠâ¢ôŵ°CB#‚ÂDC„DJxAL$O(( R !L‚H$F! !M%HD,hBA„@@„”"H'BP‚ „9Ò(i%¢ Ab!'BàhHD=A"!CR4øBàQ/(¤¨- ¹$Á2$KDA(aFŠ4,$CÂ""NB@bB$ ¡I©EB’D-!G4&5T0$†ÃT dB&$42R$bB.e1ALRB4JR$C¤$DÅ"#á‚„a!‡¡IÒ„Bn‚B(E ER)FìTÈEQÁ"aIôBˆ@Úqô$="8!6'E&1rdàR"AA(ÐÔ$rP*_E„2*H5(Z"“EA†b‡$ðx„&B&0B%tjÀ)É¢Dal$À$à;FC„A`F44ÀC‚P(AhVA0,Hð"!AA)‘ÂAK!$A"N$PB,BAÄB¤DP‰&DA& ¤!TLthX"'$A0B¡ŠÈá#I’D`$h#4('!&%O¤B#B,“$Ä!ZA"D°‘&€)´!A’#äQJc$ %õÈH‰Ô4Â(D#R$€r"e+$%¤DE„R," DXb.HϘD0b)D!À!(!D#¨S²ALD3"ÑLH(d¸ "0E#"@¼;aŒDc&1I(%&h$H!.hSA†Âd0B?$ÂaT°Sƒq"ò$E±„$¸‘BWB"M&.KãAC„‘"ˆ6‘!3aB([4#¤%Q$_¤A鵡$#’(A(ag"&sD‘D¡$EÁHEäDB˜""JrHFx"nB?' 2B€ ¢J!à4‘$Ž"0†HÂ#¸A‚Ȉ- $ÈN‚0D0A H"ˆ4(BÁd„F(HàB!@‚"øŒ‚dBH†²dä#"„¤&áar!L!*(MAˆ€¢D†a$š‘"I²„„!¨uŠÂDB%äDq!‘J…1B‹rfB )tA-FЂDÄB1„%‚²DDRH€ôi#@CFÁBB(’¢B!+R1A0„HIRKO0$!¦D!T!ÒˆLš2¨&ÄÂ-AˆA"¸"ÂJknJ:DJa„DÔP"HE1($A„*4BHFšbFÈ‚3)"P+ À2,!Â`A ¢¤T!ˆ1R/d#*8K ACUa"2B‚ BA‚†b‚F1bĶ($F¤B…T")‹&.™°Ad"‚$PQ BD€%%¡%$á(‚$$¨&Â'fD3²!TJÔ'uDQ†$!FBÄ*BJäBI,$&ˆD>~@B@”""à("€A0A$,("!H€@‚@í!€B(DBB ‚ `$@B‚!Â! @("Q "„BÀC]B3ö"AI„‘%]BE!4$6BÂ!>%">$àBÂqLâB D!˜&b((I2„,tÂr„ò”aZáf%ÄU?d¸Bò"¡ŸAÔ"ÁAH ´D’DAA'¢-B‚B7DâDf„¼BÂL¿$Â$‘%?“ T"BB(±!ª”*q"$Âj!eÑÒäÆa.A.#-ä%RÒ"(ÂR,3,J$¤a(Oäa!$”qBòH¬R‚4Œ¡!%[!DDH,¸C”N×GFÒ)FbD'„$ä$âÄÆs†ÂdL±S‘"#Ô²21‚%s$¢X‚'æ&±ŠQLøÁ.„5_ÈVá3´UŸGO#“$†¡#I#Uc7(p¡ä¢†*3N*¢ABw4‹TIÔ¤&%X"J2!óOo÷ã÷Î4o*û„$/jø‚TO(ùçq&õeenE_ö„RomâBöVâôBµÔ³D¸ô\o/VRÉeò&$'rW6?¢öIC÷$ÏÒdÆßôlA÷ô%üdN'Ư$ôHJ/¤Ä(‹dßÕ'S&q2T#á2Ôã(—ŽIóÁ2IóÁî–L„xs„xÅÁ'AI<¨k!?r$â8õDŠS$,Ó$á(Q!®”"Bˆ7E;‚'C-§CmÁ£Ñ>–,Î#Õè(’$Î(Ub¬ð¡Î"fœ7ƈ&„|*”Ä¡)Îñ“ßbòE?bóQ7b/öf6õ§&O<ý÷&O8ý¶"_,ùs"O8qSæjqWäzõE…/{ûW”/jøå?jùÑ/JùñOjûÁ_Jò”ÓoMò„ÓoIòÅÒLò„’Mâk{UäzóE¤/kûW”®¶ïQ÷(¼ïõhޝÖÌûQÏÂòŽCßÄò‡Cë"w¬¿†r¤úKL®N×Ä®.ßÄú"®÷ä.Œïdöh¬éôhŽ©öl¬ëB~£°¡dB*1Q*$1aA"b€¸2â81!A8A.5à"52ÔD2J"¡"ˆ;!Ž)Â)ÂSBxa.G€!rAÚ4(!"À"ˆ)b(#D¢$HBhCäb$ô!ˆ£ [B-D'!DR°1D„B¢M²DB&$[$'JÓBDC!E±kB°CÁ!+A†rä$RAp#tjDEhˆKB94#„i"-H)‚TCD Dô!F„$”¤A…‚¶šMá(˜ASÃBP!-AB>!Ia"Šñ$"BD â+BðC4`4„áU*”&DL‘!#AÑB¡(GD"[F/B’‘Cõ[|]Má´Áº´÷ÕW<.æÓexrqá9ûAâo-y¡uaÔ–EV|âö"cý­/ºøS!¿±õ">]ÑO8äúøˆ"yR"7Ö"Ï$rLJdF›$ÍˆŠø¢†&úŽjMÈ#¬„ˆôd¬OÈ:[)öu7eSõB/%ñ"BUöaW_DãH:A>U_TçóDeôuEJø!aZñUunñSÝöAÁ.TûUe"tÆÖ$ó’"/ôâ?÷QbýqD.„öÅÁ~\BŸ4öC÷W¥N{·nwmy_¼úiN/,ú†"G$obÔ‘öL"iöfJ¯Fô(Å9våü¨†¥ôÊ¢obúÆÊŒ¼ˆèFîˆúÁ,$o5´VöRc$¥E/%ôtAo"÷Dt´MK3OBÓEãEäV±d·4ºW6$Ⳅq4±$½”3ÄŽˆ¾Ô_Ã$DòñoJâ)Š«ÕîAgû¤¤seFBö%¦k(.L/‚úŒ¥ß…Aê…1¿Æû„ïû¨W¬®¤O:ú„hEú"L‡fÏBzNèÒt(ô¨¤ïˆêÊìμHúΈNˆÎˆDøèò1LõwaSõSNR/%ôR?õåõ\ëOº4‘4\óuaKW_WõaETfV&±!ÒQû¡µOéLïܸÁ¤Ø[WO;ú‡ãoDú&’:ú’2?:öâÒ?_ü"W;eOBò$EZü‚£GV_æôÆ[»E[?…ô!O¯sõè©_,öì®oJèHú†¡OVvdþ*D¯föJhOÒòmDŸfòŽªOÂü¦ÎŽêï(üˆÈŽÈ®ÈZü#Jp2ÄA'CH#ÁacÁaAŽsAŽ2A,SD,ñá–!f”7Gˆ'CÈ/CÂ+A¨cÑä(—Ž2A8Aðá”!&¤„Gˆ6ÄÁ¯C²<áãáì(VŠôÃ(Q¨BîÆJxaŒhBȯB‚ŠžN¬:Í-öoQö3vô3T/ö4v1öµtO8ÿµ4O8¿4óÅ3WóÄwO~÷uOz³eø²µ;‡OKû6Á_JûÁ®„/þ¥´oîNò„÷Jò„÷ºòÕ²/O)ñä{ÿwÄ®7_Fø2¦wG.¤ïWôè¼ïôiœ¿öl¾ïöì,Ï<öí,_8ö¬$_¬þo,o¨voü¢n÷Æ®o߯ø"¬ÿæèÂþ.ÄæžÎƸJþl¬íáW!(A&Á‚ÄA@AÔÑ<ŽG0„ (A¦$äH l,ñA„AJ(±A¨ABÈ#á( „3F.UBpAÈAƒ”B$)$„â8Â"CdBBl>õLx±B@C!¢)´L"ô$"&N!Àa†!5$†¤!^…ŠÑB/Cˆ2‚G/C¸AbH+$æ²1DÄBƒÂQ%ôAŠ‘BM($"Ir„"4*œòA$ÐÁ"$òAMÌF˜‚,„ÔSr#E#â2$"!22D(L³E"*Fb°Ea ÁAG*âH•"4¦ô2¡C„FáRQ.h!a$4²ÁMHM"€ø"L)’!FHÂAK"FiÄQ*bÄ„,´‚„æ3”AL$PA€AD"PA" !"A'B0!$$0PARHA& ‚Bl(DB!H‚HáOÁ"@1"Ä3A"( AS‘$XAFLHX˜)¢AA!‚"DyB6”A(BdE’4¤H€(Á)"D)´IB„”hA@˜BW"H%ˆd$ïT!A$ADBñ"KLA„‘E""1DHAB¡!‚qE”e‚Â$Ò"ƒcb!ET#U¬D$@jJ"@Rj€RDBðB"Œ%Bðä~€ @!( ÀA( ‚DT@0AR"A@A”DH€A(,AH"C †”(adHƒ‚$AƒÄ‚'„¼1þ°„È(C#" AÄ¡&Ä!D(ID("EWˆ„p$ÄAˆ!'À"€"Ò$& C*T@@¢$D$J˜"`Œ&$&oGá2@D’Ay‚et3²Â Ò$r2%²äB'4dcá$¡B-5ÀA.E’„K´"ÂBQCÒÂä¢Ej´˜§¬ÃlÔH4FK"d,´*ød#†˜!‰4hDÇ4&ALĈ+„¤TOd4Ñ!#±A#’`&¤!( RBD"#RQ/B(BM†0!E&1!$GAp$¢1!€À8,rH‹!f-ALjD#B(A-‚N(‹$HEHr$ÀDÆFâYEQA€Ò!A+Bp#K`Le¡"W!D/CÄ!(HCÁBH9‘)¸‚$ ¨Iê1DE’%B&R8HƒASž*ÁD*DD.â‘4H*Bш’D'„.HD‚Bˆ$&ä„:~@P!dHPˆA@Dˆ0AŠÀBK$ˆA ”“H,"D"‘AP‚)TBÑ‚„D)†„$D@Bø2†I‘"D04*.A "ÀadpáF¤BE1"A! ÁC( ”(À"0BJB!4"\!€ÂfÓ PAP!IRTˆB0Qq$(†BHH’ÀE, -¢C(‘àBDaE"T"QH$‘"Fh‚2JŒ°B2Dƒ$PD!„1¤°ll4À+" !"bB(À$\‚ "&!C+B*d$(YD„$‚„b!3„q(& &$r"áBT‚(A0$D’$J$`$&äF;ÂDT`AI  !’QA ¢‚ÀA&@åhAA"Â'(!'BR#aDbÔB.Y@Ñ!€DB(dfHD&h¢D„*$B„à"P!D.À@%(D((L„!+„A(CKA(ABY$PQ!!H%$‚‰’$Á(…R„AÀA(Eh"ü8&#1@ñ!(($"ˆ€ˆ„L‚âABÔ"D‚H !H¡‰“F(Á(A€,Ò„ %©ö}Ý$A,ARA8 ‚2@$APAPD¡dAHJdBD"La"!&DF$Ô„`Æà¤¡D& &hB!•!Ô" Ä"¤ÀÑÒA€‚@@Ä Hp($@Ið£õ€D D@$A"€ÄBH„AB&A@ÀúCBTB##!1I‘$€›€ÒA…!’…Sñ°ˆDŽ1D("$)ÂF/&D1!°H¤DÃt(Õ¥™±BöE!ÅŠrE„R…Eä¤DhB!""ÄD¡!)òHd$À[L˜`C€aAA¤!(\B…XJ”A¦0!A*Q&,lÐÒä$1DG(U“!ER1%H„0!1B&"'BðBA?’$C”(ÁEÂ"BFH„øƒaTÄ!d((!q!”D@"*äR¡‚HNAJÄ%ÐdB2Š1@¶‚2…++D&".D5±(!4/¶VL$A<¤$&B„Ä0*‡B©Ô”(AS3Ñ4qqÑ2ñ4%K1[J»”³D£OR²ÓDòñ%„9ÒT¸‘±±¹1ûTufáœÁäò„$3ù¥4ž¢oD#è:š!OdòTƒFøA$MÁ%r£ÕÑÒtösA­NR?S–~ÿ”ôagÍ"Iö!gß´òE)uqJêÆÌ(A‡¢'Â/”Ò$ò&E£TŠ$/BÒŽ4ù5ô’Etò/RÂ1K‘S¸©!]OSÑE±ÓcCSs!ô!®”K’<^%K„Ê4Á.%M¡Lù'ƒAù†"‚/xƒ–g?{&ö2DFN!GnRø#A?¤òHuÓôq´õh5ßòVA·FÊ"Ex"õHK´öDaÿFô"DfŒRl'B'ÂNjɲLBú(%ÙâÆLó7Q?!Ó1a7qAáSû4µK9_GéK£3M4>_Bñ5£gQWBëëñõõúEŽA˜ORê3ú”¦;‡oKªâ+(¦ñ§ÄoS~Vñ%EBjr…s'õkaý?_´ñA­½n?ßrÒ/roìbò$&m#wVŸòt)ÿ"ìëD‡ÂÂâÂR,¯bô*dï¤rDZ*¡¥ê8NTgQ#ñ=0;i=i-1) bin_val[i] = bin_val[i+1] ^ gray_val[i]; end endmodule // gray2bin uhd-3.5.5/fpga/usrp1/sdr_lib/gen_cordic_consts.py000077500000000000000000000003031224274632000217510ustar00rootroot00000000000000#!/usr/bin/env python import math zwidth = 16 for i in range(17): c = math.atan (1.0/(2**i)) / (2 * math.pi) * (1 << zwidth) print "`define c%02d %d'd%d" % (i, zwidth, round (c)) uhd-3.5.5/fpga/usrp1/sdr_lib/gen_sync.v000066400000000000000000000023501224274632000177070ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module gen_sync ( input clock, input reset, input enable, input [7:0] rate, output wire sync ); // parameter width = 8; reg [7:0] counter; assign sync = |(((rate+1)>>1)& counter); always @(posedge clock) if(reset || ~enable) counter <= #1 0; else if(counter == rate) counter <= #1 0; else counter <= #1 counter + 8'd1; endmodule // gen_sync uhd-3.5.5/fpga/usrp1/sdr_lib/hb/000077500000000000000000000000001224274632000163045ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/sdr_lib/hb/acc.v000066400000000000000000000010051224274632000172150ustar00rootroot00000000000000 module acc (input clock, input reset, input clear, input enable_in, output reg enable_out, input signed [30:0] addend, output reg signed [33:0] sum ); always @(posedge clock) if(reset) sum <= #1 34'd0; //else if(clear & enable_in) // sum <= #1 addend; //else if(clear) // sum <= #1 34'd0; else if(clear) sum <= #1 addend; else if(enable_in) sum <= #1 sum + addend; always @(posedge clock) enable_out <= #1 enable_in; endmodule // acc uhd-3.5.5/fpga/usrp1/sdr_lib/hb/coeff_rom.v000066400000000000000000000007141224274632000204340ustar00rootroot00000000000000 module coeff_rom (input clock, input [2:0] addr, output reg [15:0] data); always @(posedge clock) case (addr) 3'd0 : data <= #1 -16'd49; 3'd1 : data <= #1 16'd165; 3'd2 : data <= #1 -16'd412; 3'd3 : data <= #1 16'd873; 3'd4 : data <= #1 -16'd1681; 3'd5 : data <= #1 16'd3135; 3'd6 : data <= #1 -16'd6282; 3'd7 : data <= #1 16'd20628; endcase // case(addr) endmodule // coeff_rom uhd-3.5.5/fpga/usrp1/sdr_lib/hb/halfband_decim.v000066400000000000000000000147331224274632000214030ustar00rootroot00000000000000/* -*- verilog -*- * * USRP - Universal Software Radio Peripheral * * Copyright (C) 2005 Matt Ettus * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * This implements a 31-tap halfband filter that decimates by two. * The coefficients are symmetric, and with the exception of the middle tap, * every other coefficient is zero. The middle section of taps looks like this: * * ..., -1468, 0, 2950, 0, -6158, 0, 20585, 32768, 20585, 0, -6158, 0, 2950, 0, -1468, ... * | * middle tap -------+ * * See coeff_rom.v for the full set. The taps are scaled relative to 32768, * thus the middle tap equals 1.0. Not counting the middle tap, there are 8 * non-zero taps on each side, and they are symmetric. A naive implementation * requires a mulitply for each non-zero tap. Because of symmetry, we can * replace 2 multiplies with 1 add and 1 multiply. Thus, to compute each output * sample, we need to perform 8 multiplications. Since the middle tap is 1.0, * we just add the corresponding delay line value. * * About timing: We implement this with a single multiplier, so it takes * 8 cycles to compute a single output. However, since we're decimating by two * we can accept a new input value every 4 cycles. strobe_in is asserted when * there's a new input sample available. Depending on the overall decimation * rate, strobe_in may be asserted less frequently than once every 4 clocks. * On the output side, we assert strobe_out when output contains a new sample. * * Implementation: Every time strobe_in is asserted we store the new data into * the delay line. We split the delay line into two components, one for the * even samples, and one for the odd samples. ram16_odd is the delay line for * the odd samples. This ram is written on each odd assertion of strobe_in, and * is read on each clock when we're computing the dot product. ram16_even is * similar, although because it holds the even samples we must be able to read * two samples from different addresses at the same time, while writing the incoming * even samples. Thus it's "triple-ported". */ module halfband_decim (input clock, input reset, input enable, input strobe_in, output wire strobe_out, input wire [15:0] data_in, output reg [15:0] data_out,output wire [15:0] debugctrl); reg [3:0] rd_addr1; reg [3:0] rd_addr2; reg [3:0] phase; reg [3:0] base_addr; wire signed [15:0] mac_out,middle_data, sum, coeff; wire signed [30:0] product; wire signed [33:0] sum_even; wire clear; reg store_odd; always @(posedge clock) if(reset) store_odd <= #1 1'b0; else if(strobe_in) store_odd <= #1 ~store_odd; wire start = strobe_in & store_odd; always @(posedge clock) if(reset) base_addr <= #1 4'd0; else if(start) base_addr <= #1 base_addr + 4'd1; always @(posedge clock) if(reset) phase <= #1 4'd8; else if (start) phase <= #1 4'd0; else if(phase != 4'd8) phase <= #1 phase + 4'd1; reg start_d1,start_d2,start_d3,start_d4,start_d5,start_d6,start_d7,start_d8,start_d9,start_dA,start_dB,start_dC,start_dD; always @(posedge clock) begin start_d1 <= #1 start; start_d2 <= #1 start_d1; start_d3 <= #1 start_d2; start_d4 <= #1 start_d3; start_d5 <= #1 start_d4; start_d6 <= #1 start_d5; start_d7 <= #1 start_d6; start_d8 <= #1 start_d7; start_d9 <= #1 start_d8; start_dA <= #1 start_d9; start_dB <= #1 start_dA; start_dC <= #1 start_dB; start_dD <= #1 start_dC; end // always @ (posedge clock) reg mult_en, mult_en_pre; always @(posedge clock) begin mult_en_pre <= #1 phase!=8; mult_en <= #1 mult_en_pre; end assign clear = start_d4; // was dC wire latch_result = start_d4; // was dC assign strobe_out = start_d5; // was dD wire acc_en; always @* case(phase[2:0]) 3'd0 : begin rd_addr1 = base_addr + 4'd0; rd_addr2 = base_addr + 4'd15; end 3'd1 : begin rd_addr1 = base_addr + 4'd1; rd_addr2 = base_addr + 4'd14; end 3'd2 : begin rd_addr1 = base_addr + 4'd2; rd_addr2 = base_addr + 4'd13; end 3'd3 : begin rd_addr1 = base_addr + 4'd3; rd_addr2 = base_addr + 4'd12; end 3'd4 : begin rd_addr1 = base_addr + 4'd4; rd_addr2 = base_addr + 4'd11; end 3'd5 : begin rd_addr1 = base_addr + 4'd5; rd_addr2 = base_addr + 4'd10; end 3'd6 : begin rd_addr1 = base_addr + 4'd6; rd_addr2 = base_addr + 4'd9; end 3'd7 : begin rd_addr1 = base_addr + 4'd7; rd_addr2 = base_addr + 4'd8; end default: begin rd_addr1 = base_addr + 4'd0; rd_addr2 = base_addr + 4'd15; end endcase // case(phase) coeff_rom coeff_rom (.clock(clock),.addr(phase[2:0]-3'd1),.data(coeff)); ram16_2sum ram16_even (.clock(clock),.write(strobe_in & ~store_odd), .wr_addr(base_addr),.wr_data(data_in), .rd_addr1(rd_addr1),.rd_addr2(rd_addr2), .sum(sum)); ram16 ram16_odd (.clock(clock),.write(strobe_in & store_odd), // Holds middle items .wr_addr(base_addr),.wr_data(data_in), //.rd_addr(base_addr+4'd7),.rd_data(middle_data)); .rd_addr(base_addr+4'd6),.rd_data(middle_data)); mult mult(.clock(clock),.x(coeff),.y(sum),.product(product),.enable_in(mult_en),.enable_out(acc_en)); acc acc(.clock(clock),.reset(reset),.enable_in(acc_en),.enable_out(), .clear(clear),.addend(product),.sum(sum_even)); wire signed [33:0] dout = sum_even + {{4{middle_data[15]}},middle_data,14'b0}; // We already divided product by 2!!!! always @(posedge clock) if(reset) data_out <= #1 16'd0; else if(latch_result) data_out <= #1 dout[30:15] + (dout[33]& |dout[14:0]); assign debugctrl = { clock,reset,acc_en,mult_en,clear,latch_result,store_odd,strobe_in,strobe_out,phase}; endmodule // halfband_decim uhd-3.5.5/fpga/usrp1/sdr_lib/hb/halfband_interp.v000066400000000000000000000072031224274632000216150ustar00rootroot00000000000000 module halfband_interp (input clock, input reset, input enable, input strobe_in, input strobe_out, input [15:0] signal_in_i, input [15:0] signal_in_q, output reg [15:0] signal_out_i, output reg [15:0] signal_out_q, output wire [12:0] debug); wire [15:0] coeff_ram_out; wire [15:0] data_ram_out_i; wire [15:0] data_ram_out_q; wire [3:0] data_rd_addr; reg [3:0] data_wr_addr; reg [2:0] coeff_rd_addr; wire filt_done; wire [15:0] mac_out_i; wire [15:0] mac_out_q; reg [15:0] delayed_middle_i, delayed_middle_q; wire [7:0] shift = 8'd9; reg stb_out_happened; wire [15:0] data_ram_out_i_b; always @(posedge clock) if(strobe_in) stb_out_happened <= #1 1'b0; else if(strobe_out) stb_out_happened <= #1 1'b1; assign debug = {filt_done,data_rd_addr,data_wr_addr,coeff_rd_addr}; wire [15:0] signal_out_i = stb_out_happened ? mac_out_i : delayed_middle_i; wire [15:0] signal_out_q = stb_out_happened ? mac_out_q : delayed_middle_q; /* always @(posedge clock) if(reset) begin signal_out_i <= #1 16'd0; signal_out_q <= #1 16'd0; end else if(strobe_in) begin signal_out_i <= #1 delayed_middle_i; // Multiply by 1 for middle coeff signal_out_q <= #1 delayed_middle_q; end //else if(filt_done&stb_out_happened) else if(stb_out_happened) begin signal_out_i <= #1 mac_out_i; signal_out_q <= #1 mac_out_q; end */ always @(posedge clock) if(reset) coeff_rd_addr <= #1 3'd0; else if(coeff_rd_addr != 3'd0) coeff_rd_addr <= #1 coeff_rd_addr + 3'd1; else if(strobe_in) coeff_rd_addr <= #1 3'd1; reg filt_done_d1; always@(posedge clock) filt_done_d1 <= #1 filt_done; always @(posedge clock) if(reset) data_wr_addr <= #1 4'd0; //else if(strobe_in) else if(filt_done & ~filt_done_d1) data_wr_addr <= #1 data_wr_addr + 4'd1; always @(posedge clock) if(coeff_rd_addr == 3'd7) begin delayed_middle_i <= #1 data_ram_out_i_b; // delayed_middle_q <= #1 data_ram_out_q_b; end // always @(posedge clock) // if(reset) // data_rd_addr <= #1 4'd0; // else if(strobe_in) // data_rd_addr <= #1 data_wr_addr + 4'd1; // else if(!filt_done) // data_rd_addr <= #1 data_rd_addr + 4'd1; // else // data_rd_addr <= #1 data_wr_addr; wire [3:0] data_rd_addr1 = data_wr_addr + {1'b0,coeff_rd_addr}; wire [3:0] data_rd_addr2 = data_wr_addr + 15 - {1'b0,coeff_rd_addr}; // always @(posedge clock) // if(reset) // filt_done <= #1 1'b1; // else if(strobe_in) // filt_done <= #1 1'b0; // else if(coeff_rd_addr == 4'd0) // filt_done <= #1 1'b1; assign filt_done = (coeff_rd_addr == 3'd0); coeff_ram coeff_ram ( .clock(clock),.rd_addr({1'b0,coeff_rd_addr}),.rd_data(coeff_ram_out) ); ram16_2sum data_ram_i ( .clock(clock),.write(strobe_in),.wr_addr(data_wr_addr),.wr_data(signal_in_i), .rd_addr1(data_rd_addr1),.rd_addr2(data_rd_addr2),.rd_data(data_ram_out_i_b),.sum(data_ram_out_i)); ram16_2sum data_ram_q ( .clock(clock),.write(strobe_in),.wr_addr(data_wr_addr),.wr_data(signal_in_q), .rd_addr1(data_rd_addr1),.rd_addr2(data_rd_addr2),.rd_data(data_ram_out_q)); mac mac_i (.clock(clock),.reset(reset),.enable(~filt_done),.clear(strobe_in), .x(data_ram_out_i),.y(coeff_ram_out),.shift(shift),.z(mac_out_i) ); mac mac_q (.clock(clock),.reset(reset),.enable(~filt_done),.clear(strobe_in), .x(data_ram_out_q),.y(coeff_ram_out),.shift(shift),.z(mac_out_q) ); endmodule // halfband_interp uhd-3.5.5/fpga/usrp1/sdr_lib/hb/hbd_tb/000077500000000000000000000000001224274632000175265ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/sdr_lib/hb/hbd_tb/HBD000066400000000000000000000041771224274632000200570ustar00rootroot00000000000000*-6.432683 5736 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 @28 test_hbd.clock test_hbd.reset @420 test_hbd.halfband_decim.middle_data[15:0] @22 test_hbd.halfband_decim.sum_even[33:0] test_hbd.halfband_decim.base_addr[3:0] @420 test_hbd.i_in[15:0] @24 test_hbd.halfband_decim.phase[3:0] test_hbd.halfband_decim.ram16_even.rd_addr1[3:0] test_hbd.halfband_decim.ram16_even.rd_addr2[3:0] test_hbd.halfband_decim.ram16_even.wr_addr[3:0] test_hbd.halfband_decim.ram16_even.wr_data[15:0] @28 test_hbd.halfband_decim.ram16_even.write @420 test_hbd.halfband_decim.sum[15:0] test_hbd.halfband_decim.product[30:0] test_hbd.halfband_decim.dout[33:0] test_hbd.halfband_decim.sum_even[33:0] @22 test_hbd.halfband_decim.acc.addend[30:0] @28 test_hbd.halfband_decim.acc.reset @420 test_hbd.halfband_decim.acc.sum[33:0] test_hbd.halfband_decim.mult.x[15:0] test_hbd.halfband_decim.mult.y[15:0] @28 test_hbd.halfband_decim.acc.clear test_hbd.strobe_in test_hbd.strobe_out test_hbd.halfband_decim.acc_en @420 test_hbd.i_out[15:0] @28 test_hbd.halfband_decim.mult_en test_hbd.halfband_decim.latch_result @420 test_hbd.halfband_decim.sum[15:0] test_hbd.halfband_decim.sum_even[33:0] test_hbd.halfband_decim.dout[33:0] test_hbd.halfband_decim.data_out[15:0] @22 test_hbd.halfband_decim.data_out[15:0] @28 test_hbd.halfband_decim.dout[33:0] @29 test_hbd.halfband_decim.acc_en @22 test_hbd.halfband_decim.base_addr[3:0] @28 test_hbd.halfband_decim.clear test_hbd.halfband_decim.latch_result test_hbd.halfband_decim.mult_en test_hbd.halfband_decim.mult_en_pre @22 test_hbd.halfband_decim.phase[3:0] @28 test_hbd.halfband_decim.start test_hbd.halfband_decim.start_d1 test_hbd.halfband_decim.start_d2 test_hbd.halfband_decim.start_d3 test_hbd.halfband_decim.start_d4 test_hbd.halfband_decim.start_d5 test_hbd.halfband_decim.start_d6 test_hbd.halfband_decim.start_d7 test_hbd.halfband_decim.start_d8 test_hbd.halfband_decim.start_d9 test_hbd.halfband_decim.start_dA test_hbd.halfband_decim.start_dB test_hbd.halfband_decim.start_dC test_hbd.halfband_decim.start_dD test_hbd.halfband_decim.store_odd test_hbd.halfband_decim.strobe_in test_hbd.halfband_decim.strobe_out uhd-3.5.5/fpga/usrp1/sdr_lib/hb/hbd_tb/really_golden000066400000000000000000000016571224274632000223020ustar00rootroot00000000000000VCD info: dumpfile test_hbd.vcd opened for output. x x x x x x x x x x x x x x x x 0 0 0 0 0 0 0 0 0 0 0 8192 0 0 0 0 0 0 0 0 0 0 0 0 0 - 4 18 - 63 167 - 367 737 - 1539 5146 5146 - 1539 737 - 367 167 - 63 18 - 4 0 0 0 0 0 - 4 14 - 49 118 - 249 488 7141 12287 17433 15894 16631 16264 16432 16368 16387 16383 16383 16383 16383 16383 16387 16368 16432 16264 16631 15894 9241 4095 - 1051 488 - 249 118 - 49 14 - 4 0 0 0 0 0 - 4 14 - 49 118 - 249 488 - 1051 12287 17433 15894 16631 16264 16432 16368 16387 16383 16383 16383 16383 16383 16387 16368 16432 16264 16631 15894 17433 4095 - 1051 488 - 249 118 - 49 14 - 4 0 0 0 0 uhd-3.5.5/fpga/usrp1/sdr_lib/hb/hbd_tb/regression000066400000000000000000000051731224274632000216370ustar00rootroot00000000000000echo "Baseline 1000" iverilog -y .. -o test_hbd -DRATE=1000 test_hbd.v ; ./test_hbd >golden diff golden really_golden echo echo "Test 100" iverilog -y .. -o test_hbd -DRATE=100 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 50" iverilog -y .. -o test_hbd -DRATE=50 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 40" iverilog -y .. -o test_hbd -DRATE=40 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 30" iverilog -y .. -o test_hbd -DRATE=30 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 25" iverilog -y .. -o test_hbd -DRATE=25 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 20" iverilog -y .. -o test_hbd -DRATE=20 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 19" iverilog -y .. -o test_hbd -DRATE=19 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 18" iverilog -y .. -o test_hbd -DRATE=18 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 17" iverilog -y .. -o test_hbd -DRATE=17 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 16" iverilog -y .. -o test_hbd -DRATE=16 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 15" iverilog -y .. -o test_hbd -DRATE=15 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 14" iverilog -y .. -o test_hbd -DRATE=14 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 13" iverilog -y .. -o test_hbd -DRATE=13 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 12" iverilog -y .. -o test_hbd -DRATE=12 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 11" iverilog -y .. -o test_hbd -DRATE=11 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 10" iverilog -y .. -o test_hbd -DRATE=10 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 9" iverilog -y .. -o test_hbd -DRATE=9 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 8" iverilog -y .. -o test_hbd -DRATE=8 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 7" iverilog -y .. -o test_hbd -DRATE=7 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 6" iverilog -y .. -o test_hbd -DRATE=6 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 5" iverilog -y .. -o test_hbd -DRATE=5 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 4" iverilog -y .. -o test_hbd -DRATE=4 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 3" iverilog -y .. -o test_hbd -DRATE=3 test_hbd.v ; ./test_hbd >output ; diff output golden uhd-3.5.5/fpga/usrp1/sdr_lib/hb/hbd_tb/run_hbd000077500000000000000000000000741224274632000210760ustar00rootroot00000000000000#!/bin/sh iverilog -y .. -o test_hbd test_hbd.v ./test_hbd uhd-3.5.5/fpga/usrp1/sdr_lib/hb/hbd_tb/test_hbd.v000066400000000000000000000031171224274632000215130ustar00rootroot00000000000000 module test_hbd(); reg clock; initial clock = 1'b0; always #5 clock <= ~clock; reg reset; initial reset = 1'b1; initial #1000 reset = 1'b0; initial $dumpfile("test_hbd.vcd"); initial $dumpvars(0,test_hbd); reg [15:0] i_in, q_in; wire [15:0] i_out, q_out; reg strobe_in; wire strobe_out; reg coeff_write; reg [15:0] coeff_data; reg [4:0] coeff_addr; halfband_decim halfband_decim ( .clock(clock),.reset(reset),.enable(),.strobe_in(strobe_in),.strobe_out(strobe_out), .data_in(i_in),.data_out(i_out) ); always @(posedge strobe_out) if(i_out[15]) $display("-%d",65536-i_out); else $display("%d",i_out); initial begin strobe_in = 1'b0; @(negedge reset); @(posedge clock); while(1) begin strobe_in <= #1 1'b1; @(posedge clock); strobe_in <= #1 1'b0; repeat (`RATE) @(posedge clock); end end initial #10000000 $finish; // Just in case... initial begin i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); i_in <= #1 16'd16384; @(posedge strobe_in); i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); i_in <= #1 16'd16384; @(posedge strobe_in); i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); i_in <= #1 16'd16384; repeat (40) @(posedge strobe_in); i_in <= #1 16'd0; repeat (41) @(posedge strobe_in); i_in <= #1 16'd16384; repeat (40) @(posedge strobe_in); i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); repeat (7) @(posedge clock); $finish; end // initial begin endmodule // test_hb uhd-3.5.5/fpga/usrp1/sdr_lib/hb/mac.v000066400000000000000000000034141224274632000172350ustar00rootroot00000000000000 module mac (input clock, input reset, input enable, input clear, input signed [15:0] x, input signed [15:0] y, input [7:0] shift, output [15:0] z ); reg signed [30:0] product; reg signed [39:0] z_int; reg signed [15:0] z_shift; reg enable_d1; always @(posedge clock) enable_d1 <= #1 enable; always @(posedge clock) if(reset | clear) z_int <= #1 40'd0; else if(enable_d1) z_int <= #1 z_int + {{9{product[30]}},product}; always @(posedge clock) product <= #1 x*y; always @* // FIXME full case? parallel case? case(shift) //8'd0 : z_shift <= z_int[39:24]; //8'd1 : z_shift <= z_int[38:23]; //8'd2 : z_shift <= z_int[37:22]; //8'd3 : z_shift <= z_int[36:21]; //8'd4 : z_shift <= z_int[35:20]; //8'd5 : z_shift <= z_int[34:19]; 8'd6 : z_shift <= z_int[33:18]; 8'd7 : z_shift <= z_int[32:17]; 8'd8 : z_shift <= z_int[31:16]; 8'd9 : z_shift <= z_int[30:15]; 8'd10 : z_shift <= z_int[29:14]; 8'd11 : z_shift <= z_int[28:13]; //8'd12 : z_shift <= z_int[27:12]; //8'd13 : z_shift <= z_int[26:11]; //8'd14 : z_shift <= z_int[25:10]; //8'd15 : z_shift <= z_int[24:9]; //8'd16 : z_shift <= z_int[23:8]; //8'd17 : z_shift <= z_int[22:7]; //8'd18 : z_shift <= z_int[21:6]; //8'd19 : z_shift <= z_int[20:5]; //8'd20 : z_shift <= z_int[19:4]; //8'd21 : z_shift <= z_int[18:3]; //8'd22 : z_shift <= z_int[17:2]; //8'd23 : z_shift <= z_int[16:1]; //8'd24 : z_shift <= z_int[15:0]; default : z_shift <= z_int[15:0]; endcase // case(shift) // FIXME do we need to saturate? //assign z = z_shift; assign z = z_int[15:0]; endmodule // mac uhd-3.5.5/fpga/usrp1/sdr_lib/hb/mult.v000066400000000000000000000005421224274632000174550ustar00rootroot00000000000000 module mult (input clock, input signed [15:0] x, input signed [15:0] y, output reg signed [30:0] product, input enable_in, output reg enable_out ); always @(posedge clock) if(enable_in) product <= #1 x*y; else product <= #1 31'd0; always @(posedge clock) enable_out <= #1 enable_in; endmodule // mult uhd-3.5.5/fpga/usrp1/sdr_lib/hb/ram16_2port.v000066400000000000000000000010001224274632000205360ustar00rootroot00000000000000 module ram16_2port (input clock, input write, input [3:0] wr_addr, input [15:0] wr_data, input [3:0] rd_addr1, output reg [15:0] rd_data1, input [3:0] rd_addr2, output reg [15:0] rd_data2); reg [15:0] ram_array [0:31]; always @(posedge clock) rd_data1 <= #1 ram_array[rd_addr1]; always @(posedge clock) rd_data2 <= #1 ram_array[rd_addr2]; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; endmodule // ram16_2port uhd-3.5.5/fpga/usrp1/sdr_lib/hb/ram16_2sum.v000066400000000000000000000012271224274632000203710ustar00rootroot00000000000000 module ram16_2sum (input clock, input write, input [3:0] wr_addr, input [15:0] wr_data, input [3:0] rd_addr1, input [3:0] rd_addr2, output reg [15:0] sum); reg signed [15:0] ram_array [0:15]; reg signed [15:0] a,b; wire signed [16:0] sum_int; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; always @(posedge clock) begin a <= #1 ram_array[rd_addr1]; b <= #1 ram_array[rd_addr2]; end assign sum_int = {a[15],a} + {b[15],b}; always @(posedge clock) sum <= #1 sum_int[16:1] + (sum_int[16]&sum_int[0]); endmodule // ram16_2sum uhd-3.5.5/fpga/usrp1/sdr_lib/hb/ram32_2sum.v000066400000000000000000000007721224274632000203730ustar00rootroot00000000000000 module ram32_2sum (input clock, input write, input [4:0] wr_addr, input [15:0] wr_data, input [4:0] rd_addr1, input [4:0] rd_addr2, output reg [15:0] sum); reg [15:0] ram_array [0:31]; wire [16:0] sum_int; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; assign sum_int = ram_array[rd_addr1] + ram_array[rd_addr2]; always @(posedge clock) sum <= #1 sum_int[16:1] + (sum_int[16]&sum_int[0]); endmodule // ram32_2sum uhd-3.5.5/fpga/usrp1/sdr_lib/io_pins.v000066400000000000000000000042541224274632000175470ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2005,2006 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // `include "../common/fpga_regs_common.v" `include "../common/fpga_regs_standard.v" module io_pins ( inout wire [15:0] io_0, inout wire [15:0] io_1, inout wire [15:0] io_2, inout wire [15:0] io_3, input wire [15:0] reg_0, input wire [15:0] reg_1, input wire [15:0] reg_2, input wire [15:0] reg_3, input clock, input rx_reset, input tx_reset, input [6:0] serial_addr, input [31:0] serial_data, input serial_strobe); reg [15:0] io_0_oe,io_1_oe,io_2_oe,io_3_oe; bidir_reg bidir_reg_0 (.tristate(io_0),.oe(io_0_oe),.reg_val(reg_0)); bidir_reg bidir_reg_1 (.tristate(io_1),.oe(io_1_oe),.reg_val(reg_1)); bidir_reg bidir_reg_2 (.tristate(io_2),.oe(io_2_oe),.reg_val(reg_2)); bidir_reg bidir_reg_3 (.tristate(io_3),.oe(io_3_oe),.reg_val(reg_3)); // Upper 16 bits are mask for lower 16 always @(posedge clock) if(serial_strobe) case(serial_addr) `FR_OE_0 : io_0_oe <= #1 (io_0_oe & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); `FR_OE_1 : io_1_oe <= #1 (io_1_oe & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); `FR_OE_2 : io_2_oe <= #1 (io_2_oe & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); `FR_OE_3 : io_3_oe <= #1 (io_3_oe & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); endcase // case(serial_addr) endmodule // io_pins uhd-3.5.5/fpga/usrp1/sdr_lib/master_control.v000066400000000000000000000230461224274632000211420ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003,2005 Matt Ettus // Copyright (C) 2007 Corgan Enterprises LLC // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Clock, enable, and reset controls for whole system module master_control ( input master_clk, input usbclk, input wire [6:0] serial_addr, input wire [31:0] serial_data, input wire serial_strobe, output tx_bus_reset, output rx_bus_reset, output wire tx_dsp_reset, output wire rx_dsp_reset, output wire enable_tx, output wire enable_rx, output wire [7:0] interp_rate, output wire [7:0] decim_rate, output tx_sample_strobe, output strobe_interp, output rx_sample_strobe, output strobe_decim, input tx_empty, input wire [15:0] debug_0,input wire [15:0] debug_1,input wire [15:0] debug_2,input wire [15:0] debug_3, output wire [15:0] reg_0, output wire [15:0] reg_1, output wire [15:0] reg_2, output wire [15:0] reg_3 ); // FIXME need a separate reset for all control settings // Master Controls assignments wire [7:0] master_controls; setting_reg #(`FR_MASTER_CTRL) sr_mstr_ctrl(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(master_controls)); assign enable_tx = master_controls[0]; assign enable_rx = master_controls[1]; assign tx_dsp_reset = master_controls[2]; assign rx_dsp_reset = master_controls[3]; // Unused - 4-7 // Strobe Generators setting_reg #(`FR_INTERP_RATE) sr_interp(.clock(master_clk),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(interp_rate)); setting_reg #(`FR_DECIM_RATE) sr_decim(.clock(master_clk),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(decim_rate)); strobe_gen da_strobe_gen ( .clock(master_clk),.reset(tx_dsp_reset),.enable(enable_tx), .rate(8'd1),.strobe_in(1'b1),.strobe(tx_sample_strobe) ); strobe_gen tx_strobe_gen ( .clock(master_clk),.reset(tx_dsp_reset),.enable(enable_tx), .rate(interp_rate),.strobe_in(tx_sample_strobe),.strobe(strobe_interp) ); assign rx_sample_strobe = 1'b1; strobe_gen decim_strobe_gen ( .clock(master_clk),.reset(rx_dsp_reset),.enable(enable_rx), .rate(decim_rate),.strobe_in(rx_sample_strobe),.strobe(strobe_decim) ); // Reset syncs for bus (usbclk) side // The RX bus side reset isn't used, the TX bus side one may not be needed reg tx_reset_bus_sync1, rx_reset_bus_sync1, tx_reset_bus_sync2, rx_reset_bus_sync2; always @(posedge usbclk) begin tx_reset_bus_sync1 <= #1 tx_dsp_reset; rx_reset_bus_sync1 <= #1 rx_dsp_reset; tx_reset_bus_sync2 <= #1 tx_reset_bus_sync1; rx_reset_bus_sync2 <= #1 rx_reset_bus_sync1; end assign tx_bus_reset = tx_reset_bus_sync2; assign rx_bus_reset = rx_reset_bus_sync2; wire [7:0] txa_refclk, rxa_refclk, txb_refclk, rxb_refclk; wire txaclk,txbclk,rxaclk,rxbclk; wire [3:0] debug_en, txcvr_ctrl; wire [31:0] txcvr_rxlines, txcvr_txlines; setting_reg #(`FR_TX_A_REFCLK) sr_txaref(.clock(master_clk),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(txa_refclk)); setting_reg #(`FR_RX_A_REFCLK) sr_rxaref(.clock(master_clk),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(rxa_refclk)); setting_reg #(`FR_TX_B_REFCLK) sr_txbref(.clock(master_clk),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(txb_refclk)); setting_reg #(`FR_RX_B_REFCLK) sr_rxbref(.clock(master_clk),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(rxb_refclk)); setting_reg #(`FR_DEBUG_EN) sr_debugen(.clock(master_clk),.reset(rx_dsp_reset|tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(debug_en)); clk_divider clk_div_0 (.reset(tx_dsp_reset),.in_clk(master_clk),.out_clk(txaclk),.ratio(txa_refclk[6:0])); clk_divider clk_div_1 (.reset(rx_dsp_reset),.in_clk(master_clk),.out_clk(rxaclk),.ratio(rxa_refclk[6:0])); clk_divider clk_div_2 (.reset(tx_dsp_reset),.in_clk(master_clk),.out_clk(txbclk),.ratio(txb_refclk[6:0])); clk_divider clk_div_3 (.reset(rx_dsp_reset),.in_clk(master_clk),.out_clk(rxbclk),.ratio(rxb_refclk[6:0])); reg [15:0] io_0_reg,io_1_reg,io_2_reg,io_3_reg; // Upper 16 bits are mask for lower 16 always @(posedge master_clk) if(serial_strobe) case(serial_addr) `FR_IO_0 : io_0_reg <= #1 (io_0_reg & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); `FR_IO_1 : io_1_reg <= #1 (io_1_reg & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); `FR_IO_2 : io_2_reg <= #1 (io_2_reg & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); `FR_IO_3 : io_3_reg <= #1 (io_3_reg & ~serial_data[31:16]) | (serial_data[15:0] & serial_data[31:16] ); endcase // case(serial_addr) wire transmit_now; wire atr_ctl; wire [11:0] atr_tx_delay, atr_rx_delay; wire [15:0] atr_mask_0, atr_txval_0, atr_rxval_0, atr_mask_1, atr_txval_1, atr_rxval_1, atr_mask_2, atr_txval_2, atr_rxval_2, atr_mask_3, atr_txval_3, atr_rxval_3; setting_reg #(`FR_ATR_MASK_0) sr_atr_mask_0(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_mask_0)); setting_reg #(`FR_ATR_TXVAL_0) sr_atr_txval_0(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_txval_0)); setting_reg #(`FR_ATR_RXVAL_0) sr_atr_rxval_0(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_rxval_0)); setting_reg #(`FR_ATR_MASK_1) sr_atr_mask_1(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_mask_1)); setting_reg #(`FR_ATR_TXVAL_1) sr_atr_txval_1(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_txval_1)); setting_reg #(`FR_ATR_RXVAL_1) sr_atr_rxval_1(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_rxval_1)); setting_reg #(`FR_ATR_MASK_2) sr_atr_mask_2(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_mask_2)); setting_reg #(`FR_ATR_TXVAL_2) sr_atr_txval_2(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_txval_2)); setting_reg #(`FR_ATR_RXVAL_2) sr_atr_rxval_2(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_rxval_2)); setting_reg #(`FR_ATR_MASK_3) sr_atr_mask_3(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_mask_3)); setting_reg #(`FR_ATR_TXVAL_3) sr_atr_txval_3(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_txval_3)); setting_reg #(`FR_ATR_RXVAL_3) sr_atr_rxval_3(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_rxval_3)); //setting_reg #(`FR_ATR_CTL) sr_atr_ctl(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_ctl)); setting_reg #(`FR_ATR_TX_DELAY) sr_atr_tx_delay(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_tx_delay)); setting_reg #(`FR_ATR_RX_DELAY) sr_atr_rx_delay(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(atr_rx_delay)); assign atr_ctl = 1'b1; atr_delay atr_delay(.clk_i(master_clk),.rst_i(tx_dsp_reset),.ena_i(atr_ctl),.tx_empty_i(tx_empty), .tx_delay_i(atr_tx_delay),.rx_delay_i(atr_rx_delay),.atr_tx_o(transmit_now)); wire [15:0] atr_selected_0 = transmit_now ? atr_txval_0 : atr_rxval_0; wire [15:0] io_0 = ({{16{atr_ctl}}} & atr_mask_0 & atr_selected_0) | (~({{16{atr_ctl}}} & atr_mask_0) & io_0_reg); wire [15:0] atr_selected_1 = transmit_now ? atr_txval_1 : atr_rxval_1; wire [15:0] io_1 = ({{16{atr_ctl}}} & atr_mask_1 & atr_selected_1) | (~({{16{atr_ctl}}} & atr_mask_1) & io_1_reg); wire [15:0] atr_selected_2 = transmit_now ? atr_txval_2 : atr_rxval_2; wire [15:0] io_2 = ({{16{atr_ctl}}} & atr_mask_2 & atr_selected_2) | (~({{16{atr_ctl}}} & atr_mask_2) & io_2_reg); wire [15:0] atr_selected_3 = transmit_now ? atr_txval_3 : atr_rxval_3; wire [15:0] io_3 = ({{16{atr_ctl}}} & atr_mask_3 & atr_selected_3) | (~({{16{atr_ctl}}} & atr_mask_3) & io_3_reg); assign reg_0 = debug_en[0] ? debug_0 : txa_refclk[7] ? {io_0[15:1],txaclk} : io_0; assign reg_1 = debug_en[1] ? debug_1 : rxa_refclk[7] ? {io_1[15:1],rxaclk} : io_1; assign reg_2 = debug_en[2] ? debug_2 : txb_refclk[7] ? {io_2[15:1],txbclk} : io_2; assign reg_3 = debug_en[3] ? debug_3 : rxb_refclk[7] ? {io_3[15:1],rxbclk} : io_3; endmodule // master_control uhd-3.5.5/fpga/usrp1/sdr_lib/master_control_multi.v000066400000000000000000000070501224274632000223510ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Martin Dudok van Heel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // `include "config.vh" `include "../../common/fpga_regs_common.v" `include "../../common/fpga_regs_standard.v" // Clock, enable, and reset controls for whole system // Modified version to enable multi_usrp synchronisation module master_control_multi ( input master_clk, input usbclk, input wire [6:0] serial_addr, input wire [31:0] serial_data, input wire serial_strobe, input wire rx_slave_sync, output tx_bus_reset, output rx_bus_reset, output wire tx_dsp_reset, output wire rx_dsp_reset, output wire enable_tx, output wire enable_rx, output wire sync_rx, output wire [7:0] interp_rate, output wire [7:0] decim_rate, output tx_sample_strobe, output strobe_interp, output rx_sample_strobe, output strobe_decim, input tx_empty, input wire [15:0] debug_0,input wire [15:0] debug_1,input wire [15:0] debug_2,input wire [15:0] debug_3, output wire [15:0] reg_0, output wire [15:0] reg_1, output wire [15:0] reg_2, output wire [15:0] reg_3 ); wire [15:0] reg_1_std; master_control master_control_standard ( .master_clk(master_clk),.usbclk(usbclk), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .tx_bus_reset(tx_bus_reset),.rx_bus_reset(rx_bus_reset), .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .interp_rate(interp_rate),.decim_rate(decim_rate), .tx_sample_strobe(tx_sample_strobe),.strobe_interp(strobe_interp), .rx_sample_strobe(rx_sample_strobe),.strobe_decim(strobe_decim), .tx_empty(tx_empty), .debug_0(debug_0),.debug_1(debug_1), .debug_2(debug_2),.debug_3(debug_3), .reg_0(reg_0),.reg_1(reg_1_std),.reg_2(reg_2),.reg_3(reg_3) ); // FIXME need a separate reset for all control settings // Master/slave Controls assignments wire [7:0] rx_master_slave_controls; setting_reg_masked #(`FR_RX_MASTER_SLAVE) sr_rx_mstr_slv_ctrl(.clock(master_clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(rx_master_slave_controls)); assign sync_rx = rx_master_slave_controls[`bitnoFR_RX_SYNC] | (rx_master_slave_controls[`bitnoFR_RX_SYNC_SLAVE] & rx_slave_sync); //sync if we are told by master_control or if we get a hardware slave sync //TODO There can be a one sample difference between master and slave sync. // Maybe use a register for sync_rx which uses the (neg or pos) edge of master_clock and/or rx_slave_sync to trigger // Or even use a seperate sync_rx_out and sync_rx_internal (which lags behind) //TODO make output pin not hardwired assign reg_1 ={(rx_master_slave_controls[`bitnoFR_RX_SYNC_MASTER])? sync_rx:reg_1_std[15],reg_1_std[14:0]}; endmodule // master_control uhd-3.5.5/fpga/usrp1/sdr_lib/phase_acc.v000077500000000000000000000031341224274632000200140ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Basic Phase accumulator for DDS module phase_acc (clk,reset,enable,strobe,serial_addr,serial_data,serial_strobe,phase); parameter FREQADDR = 0; parameter PHASEADDR = 0; parameter resolution = 32; input clk, reset, enable, strobe; input [6:0] serial_addr; input [31:0] serial_data; input serial_strobe; output reg [resolution-1:0] phase; wire [resolution-1:0] freq; setting_reg #(FREQADDR) sr_rxfreq0(.clock(clk),.reset(1'b0),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(freq)); always @(posedge clk) if(reset) phase <= #1 32'b0; else if(serial_strobe & (serial_addr == PHASEADDR)) phase <= #1 serial_data; else if(enable & strobe) phase <= #1 phase + freq; endmodule // phase_acc uhd-3.5.5/fpga/usrp1/sdr_lib/ram.v000066400000000000000000000005331224274632000166620ustar00rootroot00000000000000 module ram (input clock, input write, input [4:0] wr_addr, input [15:0] wr_data, input [4:0] rd_addr, output reg [15:0] rd_data); reg [15:0] ram_array [0:31]; always @(posedge clock) rd_data <= #1 ram_array[rd_addr]; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; endmodule // ram uhd-3.5.5/fpga/usrp1/sdr_lib/ram16.v000066400000000000000000000005441224274632000170330ustar00rootroot00000000000000 module ram16 (input clock, input write, input [3:0] wr_addr, input [15:0] wr_data, input [3:0] rd_addr, output reg [15:0] rd_data); reg [15:0] ram_array [0:15]; always @(posedge clock) rd_data <= #1 ram_array[rd_addr]; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; endmodule // ram16 uhd-3.5.5/fpga/usrp1/sdr_lib/ram32.v000066400000000000000000000005441224274632000170310ustar00rootroot00000000000000 module ram32 (input clock, input write, input [4:0] wr_addr, input [15:0] wr_data, input [4:0] rd_addr, output reg [15:0] rd_data); reg [15:0] ram_array [0:31]; always @(posedge clock) rd_data <= #1 ram_array[rd_addr]; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; endmodule // ram32 uhd-3.5.5/fpga/usrp1/sdr_lib/ram64.v000066400000000000000000000005431224274632000170350ustar00rootroot00000000000000 module ram64 (input clock, input write, input [5:0] wr_addr, input [15:0] wr_data, input [5:0] rd_addr, output reg [15:0] rd_data); reg [15:0] ram_array [0:63]; always @(posedge clock) rd_data <= #1 ram_array[rd_addr]; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; endmodule // ram64 uhd-3.5.5/fpga/usrp1/sdr_lib/rssi.v000066400000000000000000000014631224274632000170660ustar00rootroot00000000000000 module rssi (input clock, input reset, input enable, input [11:0] adc, output [15:0] rssi, output [15:0] over_count); wire over_hi = (adc == 12'h7FF); wire over_lo = (adc == 12'h800); wire over = over_hi | over_lo; reg [25:0] over_count_int; always @(posedge clock) if(reset | ~enable) over_count_int <= #1 26'd0; else over_count_int <= #1 over_count_int + (over ? 26'd65535 : 26'd0) - over_count_int[25:10]; assign over_count = over_count_int[25:10]; wire [11:0] abs_adc = adc[11] ? ~adc : adc; reg [25:0] rssi_int; always @(posedge clock) if(reset | ~enable) rssi_int <= #1 26'd0; else rssi_int <= #1 rssi_int + abs_adc - rssi_int[25:10]; assign rssi = rssi_int[25:10]; endmodule // rssi uhd-3.5.5/fpga/usrp1/sdr_lib/rx_buffer.v000066400000000000000000000143771224274632000201000ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Interface to Cypress FX2 bus // A packet is 512 Bytes, the fifo has 4096 lines of 18 bits each `include "../common/fpga_regs_common.v" `include "../common/fpga_regs_standard.v" module rx_buffer ( // Read/USB side input usbclk, input bus_reset, output [15:0] usbdata, input RD, output reg have_pkt_rdy, output reg rx_overrun, input clear_status, // Write/DSP side input rxclk, input reset, // DSP side reset (used here), do not reset registers input rxstrobe, input wire [3:0] channels, input wire [15:0] ch_0, input wire [15:0] ch_1, input wire [15:0] ch_2, input wire [15:0] ch_3, input wire [15:0] ch_4, input wire [15:0] ch_5, input wire [15:0] ch_6, input wire [15:0] ch_7, // Settings, on rxclk also input [6:0] serial_addr, input [31:0] serial_data, input serial_strobe, input reset_regs, //Only reset registers output [31:0] debugbus ); wire [15:0] fifodata, fifodata_8; reg [15:0] fifodata_16; wire [11:0] rxfifolevel; wire rx_full; wire bypass_hb, want_q; wire [4:0] bitwidth; wire [3:0] bitshift; setting_reg #(`FR_RX_FORMAT) sr_rxformat(.clock(rxclk),.reset(reset_regs), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({bypass_hb,want_q,bitwidth,bitshift})); // USB Read Side of FIFO always @(negedge usbclk) have_pkt_rdy <= (rxfifolevel >= 256); // 257 Bug Fix reg [8:0] read_count; always @(negedge usbclk) if(bus_reset) read_count <= 0; else if(RD) read_count <= read_count + 1; else read_count <= 0; // FIFO wire ch0_in, ch0_out, iq_out; assign ch0_in = (phase == 1); fifo_4k_18 rxfifo ( // DSP Write Side .data ( {ch0_in, phase[0], fifodata} ), .wrreq (~rx_full & (phase != 0)), .wrclk ( rxclk ), .wrfull ( rx_full ), .wrempty ( ), .wrusedw ( ), // USB Read Side .q ( {ch0_out,iq_out,usbdata} ), .rdreq ( RD & ~read_count[8] ), .rdclk ( ~usbclk ), .rdfull ( ), .rdempty ( ), .rdusedw ( rxfifolevel ), // Async, shared .aclr ( reset ) ); // DSP Write Side of FIFO reg [15:0] ch_0_reg; reg [15:0] ch_1_reg; reg [15:0] ch_2_reg; reg [15:0] ch_3_reg; reg [15:0] ch_4_reg; reg [15:0] ch_5_reg; reg [15:0] ch_6_reg; reg [15:0] ch_7_reg; always @(posedge rxclk) if (rxstrobe) begin ch_0_reg <= ch_0; ch_1_reg <= ch_1; ch_2_reg <= ch_2; ch_3_reg <= ch_3; ch_4_reg <= ch_4; ch_5_reg <= ch_5; ch_6_reg <= ch_6; ch_7_reg <= ch_7; end reg [3:0] phase; always @(posedge rxclk) if(reset) phase <= 4'd0; else if(phase == 0) begin if(rxstrobe) phase <= 4'd1; end else if(~rx_full) if(phase == ((bitwidth == 5'd8) ? (channels>>1) : channels)) phase <= 4'd0; else phase <= phase + 4'd1; assign fifodata = (bitwidth == 5'd8) ? fifodata_8 : fifodata_16; assign fifodata_8 = {round_8(top),round_8(bottom)}; reg [15:0] top,bottom; function [7:0] round_8; input [15:0] in_val; round_8 = in_val[15:8] + (in_val[15] & |in_val[7:0]); endfunction // round_8 always @* case(phase) 4'd1 : begin bottom = ch_0_reg; top = ch_1_reg; end 4'd2 : begin bottom = ch_2_reg; top = ch_3_reg; end 4'd3 : begin bottom = ch_4_reg; top = ch_5_reg; end 4'd4 : begin bottom = ch_6_reg; top = ch_7_reg; end default : begin top = 16'hFFFF; bottom = 16'hFFFF; end endcase // case(phase) always @* case(phase) 4'd1 : fifodata_16 = ch_0_reg; 4'd2 : fifodata_16 = ch_1_reg; 4'd3 : fifodata_16 = ch_2_reg; 4'd4 : fifodata_16 = ch_3_reg; 4'd5 : fifodata_16 = ch_4_reg; 4'd6 : fifodata_16 = ch_5_reg; 4'd7 : fifodata_16 = ch_6_reg; 4'd8 : fifodata_16 = ch_7_reg; default : fifodata_16 = 16'hFFFF; endcase // case(phase) // Detect overrun reg clear_status_dsp, rx_overrun_dsp; always @(posedge rxclk) clear_status_dsp <= clear_status; always @(negedge usbclk) rx_overrun <= rx_overrun_dsp; always @(posedge rxclk) if(reset) rx_overrun_dsp <= 1'b0; else if(rxstrobe & (phase != 0)) rx_overrun_dsp <= 1'b1; else if(clear_status_dsp) rx_overrun_dsp <= 1'b0; // Debug bus // // 15:0 rxclk domain => TXA 15:0 // 31:16 usbclk domain => RXA 15:0 assign debugbus[0] = reset; assign debugbus[1] = reset_regs; assign debugbus[2] = rxstrobe; assign debugbus[6:3] = channels; assign debugbus[7] = rx_full; assign debugbus[11:8] = phase; assign debugbus[12] = ch0_in; assign debugbus[13] = clear_status_dsp; assign debugbus[14] = rx_overrun_dsp; assign debugbus[15] = rxclk; assign debugbus[16] = bus_reset; assign debugbus[17] = RD; assign debugbus[18] = have_pkt_rdy; assign debugbus[19] = rx_overrun; assign debugbus[20] = read_count[0]; assign debugbus[21] = read_count[8]; assign debugbus[22] = ch0_out; assign debugbus[23] = iq_out; assign debugbus[24] = clear_status; assign debugbus[30:25] = 0; assign debugbus[31] = usbclk; endmodule // rx_buffer uhd-3.5.5/fpga/usrp1/sdr_lib/rx_chain.v000066400000000000000000000062301224274632000176760ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Following defines conditionally include RX path circuitry `include "config.vh" // resolved relative to project root module rx_chain (input clock, input reset, input enable, input wire [7:0] decim_rate, input sample_strobe, input decimator_strobe, output wire hb_strobe, input [6:0] serial_addr, input [31:0] serial_data, input serial_strobe, input wire [15:0] i_in, input wire [15:0] q_in, output wire [15:0] i_out, output wire [15:0] q_out, output wire [15:0] debugdata,output wire [15:0] debugctrl ); parameter FREQADDR = 0; parameter PHASEADDR = 0; wire [31:0] phase; wire [15:0] bb_i, bb_q; wire [15:0] hb_in_i, hb_in_q; assign debugdata = hb_in_i; `ifdef RX_NCO_ON phase_acc #(FREQADDR,PHASEADDR,32) rx_phase_acc (.clk(clock),.reset(reset),.enable(enable), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .strobe(sample_strobe),.phase(phase) ); cordic rx_cordic ( .clock(clock),.reset(reset),.enable(enable), .xi(i_in),.yi(q_in),.zi(phase[31:16]), .xo(bb_i),.yo(bb_q),.zo() ); `else assign bb_i = i_in; assign bb_q = q_in; assign sample_strobe = 1; `endif // !`ifdef RX_NCO_ON `ifdef RX_CIC_ON cic_decim cic_decim_i_0 ( .clock(clock),.reset(reset),.enable(enable), .rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe), .signal_in(bb_i),.signal_out(hb_in_i) ); `else assign hb_in_i = bb_i; assign decimator_strobe = sample_strobe; `endif `ifdef RX_HB_ON halfband_decim hbd_i_0 ( .clock(clock),.reset(reset),.enable(enable), .strobe_in(decimator_strobe),.strobe_out(hb_strobe), .data_in(hb_in_i),.data_out(i_out),.debugctrl(debugctrl) ); `else assign i_out = hb_in_i; assign hb_strobe = decimator_strobe; `endif `ifdef RX_CIC_ON cic_decim cic_decim_q_0 ( .clock(clock),.reset(reset),.enable(enable), .rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe), .signal_in(bb_q),.signal_out(hb_in_q) ); `else assign hb_in_q = bb_q; `endif `ifdef RX_HB_ON halfband_decim hbd_q_0 ( .clock(clock),.reset(reset),.enable(enable), .strobe_in(decimator_strobe),.strobe_out(), .data_in(hb_in_q),.data_out(q_out) ); `else assign q_out = hb_in_q; `endif endmodule // rx_chain uhd-3.5.5/fpga/usrp1/sdr_lib/rx_chain_dual.v000066400000000000000000000062361224274632000207110ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module rx_chain_dual (input clock, input clock_2x, input reset, input enable, input wire [7:0] decim_rate, input sample_strobe, input decimator_strobe, input wire [31:0] freq0, input wire [15:0] i_in0, input wire [15:0] q_in0, output wire [15:0] i_out0, output wire [15:0] q_out0, input wire [31:0] freq1, input wire [15:0] i_in1, input wire [15:0] q_in1, output wire [15:0] i_out1, output wire [15:0] q_out1 ); wire [15:0] phase; wire [15:0] bb_i, bb_q; wire [15:0] i_in, q_in; wire [31:0] phase0; wire [31:0] phase1; reg [15:0] bb_i0, bb_q0; reg [15:0] bb_i1, bb_q1; // We want to time-share the CORDIC by double-clocking it phase_acc rx_phase_acc_0 (.clk(clock),.reset(reset),.enable(enable), .strobe(sample_strobe),.freq(freq0),.phase(phase0) ); phase_acc rx_phase_acc_1 (.clk(clock),.reset(reset),.enable(enable), .strobe(sample_strobe),.freq(freq1),.phase(phase1) ); assign phase = clock ? phase0[31:16] : phase1[31:16]; assign i_in = clock ? i_in0 : i_in1; assign q_in = clock ? q_in0 : q_in1; // This appears reversed because of the number of CORDIC stages always @(posedge clock_2x) if(clock) begin bb_i1 <= #1 bb_i; bb_q1 <= #1 bb_q; end else begin bb_i0 <= #1 bb_i; bb_q0 <= #1 bb_q; end cordic rx_cordic ( .clock(clock_2x),.reset(reset),.enable(enable), .xi(i_in),.yi(q_in),.zi(phase), .xo(bb_i),.yo(bb_q),.zo() ); cic_decim cic_decim_i_0 ( .clock(clock),.reset(reset),.enable(enable), .rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe), .signal_in(bb_i0),.signal_out(i_out0) ); cic_decim cic_decim_q_0 ( .clock(clock),.reset(reset),.enable(enable), .rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe), .signal_in(bb_q0),.signal_out(q_out0) ); cic_decim cic_decim_i_1 ( .clock(clock),.reset(reset),.enable(enable), .rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe), .signal_in(bb_i1),.signal_out(i_out1) ); cic_decim cic_decim_q_1 ( .clock(clock),.reset(reset),.enable(enable), .rate(decim_rate),.strobe_in(sample_strobe),.strobe_out(decimator_strobe), .signal_in(bb_q1),.signal_out(q_out1) ); endmodule // rx_chain uhd-3.5.5/fpga/usrp1/sdr_lib/rx_dcoffset.v000066400000000000000000000014201224274632000204050ustar00rootroot00000000000000 module rx_dcoffset (input clock, input enable, input reset, input signed [15:0] adc_in, output signed [15:0] adc_out, input wire [6:0] serial_addr, input wire [31:0] serial_data, input serial_strobe); parameter MYADDR = 0; reg signed [31:0] integrator; wire signed [15:0] scaled_integrator = integrator[31:16] + (integrator[31] & |integrator[15:0]); assign adc_out = adc_in - scaled_integrator; // FIXME do we need signed? //FIXME What do we do when clipping? always @(posedge clock) if(reset) integrator <= #1 32'd0; else if(serial_strobe & (MYADDR == serial_addr)) integrator <= #1 {serial_data[15:0],16'd0}; else if(enable) integrator <= #1 integrator + adc_out; endmodule // rx_dcoffset uhd-3.5.5/fpga/usrp1/sdr_lib/serial_io.v000066400000000000000000000064411224274632000200550ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003,2004 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Serial Control Bus from Cypress chip module serial_io ( input master_clk, input serial_clock, input serial_data_in, input enable, input reset, inout wire serial_data_out, output reg [6:0] serial_addr, output reg [31:0] serial_data, output wire serial_strobe, input wire [31:0] readback_0, input wire [31:0] readback_1, input wire [31:0] readback_2, input wire [31:0] readback_3, input wire [31:0] readback_4, input wire [31:0] readback_5, input wire [31:0] readback_6, input wire [31:0] readback_7 ); reg is_read; reg [7:0] ser_ctr; reg write_done; assign serial_data_out = is_read ? serial_data[31] : 1'bz; always @(posedge serial_clock, posedge reset, negedge enable) if(reset) ser_ctr <= #1 8'd0; else if(~enable) ser_ctr <= #1 8'd0; else if(ser_ctr == 39) ser_ctr <= #1 8'd0; else ser_ctr <= #1 ser_ctr + 8'd1; always @(posedge serial_clock, posedge reset, negedge enable) if(reset) is_read <= #1 1'b0; else if(~enable) is_read <= #1 1'b0; else if((ser_ctr == 7)&&(serial_addr[6]==1)) is_read <= #1 1'b1; always @(posedge serial_clock, posedge reset) if(reset) begin serial_addr <= #1 7'b0; serial_data <= #1 32'b0; write_done <= #1 1'b0; end else if(~enable) begin //serial_addr <= #1 7'b0; //serial_data <= #1 32'b0; write_done <= #1 1'b0; end else begin if(~is_read && (ser_ctr == 39)) write_done <= #1 1'b1; else write_done <= #1 1'b0; if(is_read & (ser_ctr==8)) case (serial_addr) 7'd1: serial_data <= #1 readback_0; 7'd2: serial_data <= #1 readback_1; 7'd3: serial_data <= #1 readback_2; 7'd4: serial_data <= #1 readback_3; 7'd5: serial_data <= #1 readback_4; 7'd6: serial_data <= #1 readback_5; 7'd7: serial_data <= #1 readback_6; 7'd8: serial_data <= #1 readback_7; default: serial_data <= #1 32'd0; endcase // case(serial_addr) else if(ser_ctr >= 8) serial_data <= #1 {serial_data[30:0],serial_data_in}; else if(ser_ctr < 8) serial_addr <= #1 {serial_addr[5:0],serial_data_in}; end // else: !if(~enable) reg enable_d1, enable_d2; always @(posedge master_clk) begin enable_d1 <= #1 enable; enable_d2 <= #1 enable_d1; end assign serial_strobe = enable_d2 & ~enable_d1; endmodule // serial_io uhd-3.5.5/fpga/usrp1/sdr_lib/setting_reg.v000066400000000000000000000007201224274632000204130ustar00rootroot00000000000000 module setting_reg ( input clock, input reset, input strobe, input wire [6:0] addr, input wire [31:0] in, output reg [31:0] out, output reg changed); parameter my_addr = 0; always @(posedge clock) if(reset) begin out <= #1 32'd0; changed <= #1 1'b0; end else if(strobe & (my_addr==addr)) begin out <= #1 in; changed <= #1 1'b1; end else changed <= #1 1'b0; endmodule // setting_reg uhd-3.5.5/fpga/usrp1/sdr_lib/setting_reg_masked.v000066400000000000000000000011711224274632000217400ustar00rootroot00000000000000 module setting_reg_masked ( input clock, input reset, input strobe, input wire [6:0] addr, input wire [31:0] in, output reg [31:0] out, output reg changed); /* upper 16 bits are mask, lower 16 bits are value * Note that you get a 16 bit register, not a 32 bit one */ parameter my_addr = 0; always @(posedge clock) if(reset) begin out <= #1 32'd0; changed <= #1 1'b0; end else if(strobe & (my_addr==addr)) begin out <= #1 (out & ~in[31:16]) | (in[15:0] & in[31:16] ); changed <= #1 1'b1; end else changed <= #1 1'b0; endmodule // setting_reg_masked uhd-3.5.5/fpga/usrp1/sdr_lib/sign_extend.v000066400000000000000000000021621224274632000204120ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Sign extension "macro" // bits_out should be greater than bits_in module sign_extend (in,out); parameter bits_in=0; // FIXME Quartus insists on a default parameter bits_out=0; input [bits_in-1:0] in; output [bits_out-1:0] out; assign out = {{(bits_out-bits_in){in[bits_in-1]}},in}; endmodule uhd-3.5.5/fpga/usrp1/sdr_lib/strobe_gen.v000066400000000000000000000025221224274632000202320ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module strobe_gen ( input clock, input reset, input enable, input [7:0] rate, // Rate should be 1 LESS THAN your desired divide ratio input strobe_in, output wire strobe ); // parameter width = 8; reg [7:0] counter; assign strobe = ~|counter && enable && strobe_in; always @(posedge clock) if(reset | ~enable) counter <= #1 8'd0; else if(strobe_in) if(counter == 0) counter <= #1 rate; else counter <= #1 counter - 8'd1; endmodule // strobe_gen uhd-3.5.5/fpga/usrp1/sdr_lib/tx_buffer.v000066400000000000000000000107431224274632000200730ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Interface to Cypress FX2 bus // A packet is 512 Bytes. Each fifo line is 2 bytes // Fifo has 1024 or 2048 lines module tx_buffer ( // USB Side input usbclk, input bus_reset, // Used here for the 257-Hack to fix the FX2 bug input [15:0] usbdata, input wire WR, output reg have_space, output reg tx_underrun, input clear_status, // DSP Side input txclk, input reset, // standard DSP-side reset input wire [3:0] channels, output reg [15:0] tx_i_0, output reg [15:0] tx_q_0, output reg [15:0] tx_i_1, output reg [15:0] tx_q_1, input txstrobe, output wire tx_empty, output [31:0] debugbus ); wire [11:0] txfifolevel; wire [15:0] fifodata; wire rdreq; reg [3:0] phase; wire sop_f, iq_f; reg sop; // USB Side of FIFO reg [15:0] usbdata_reg; reg wr_reg; reg [8:0] write_count; always @(posedge usbclk) have_space <= (txfifolevel < (4092-256)); // be extra conservative always @(posedge usbclk) begin wr_reg <= WR; usbdata_reg <= usbdata; end always @(posedge usbclk) if(bus_reset) write_count <= 0; else if(wr_reg) write_count <= write_count + 1; else write_count <= 0; always @(posedge usbclk) sop <= WR & ~wr_reg; // Edge detect // FIFO fifo_4k_18 txfifo ( // USB Write Side .data ( {sop,write_count[0],usbdata_reg} ), .wrreq ( wr_reg & ~write_count[8] ), .wrclk ( usbclk ), .wrfull ( ), .wrempty ( ), .wrusedw ( txfifolevel ), // DSP Read Side .q ( {sop_f, iq_f, fifodata} ), .rdreq ( rdreq ), .rdclk ( txclk ), .rdfull ( ), .rdempty ( tx_empty ), .rdusedw ( ), // Async, shared .aclr ( reset ) ); // DAC Side of FIFO always @(posedge txclk) if(reset) begin {tx_i_0,tx_q_0,tx_i_1,tx_q_1} <= 64'h0; phase <= 4'd0; end else if(phase == channels) begin if(txstrobe) phase <= 4'd0; end else if(~tx_empty) begin case(phase) 4'd0 : tx_i_0 <= fifodata; 4'd1 : tx_q_0 <= fifodata; 4'd2 : tx_i_1 <= fifodata; 4'd3 : tx_q_1 <= fifodata; endcase // case(phase) phase <= phase + 4'd1; end assign rdreq = ((phase != channels) & ~tx_empty); // Detect Underruns, cross clock domains reg clear_status_dsp, tx_underrun_dsp; always @(posedge txclk) clear_status_dsp <= clear_status; always @(posedge usbclk) tx_underrun <= tx_underrun_dsp; always @(posedge txclk) if(reset) tx_underrun_dsp <= 1'b0; else if(txstrobe & (phase != channels)) tx_underrun_dsp <= 1'b1; else if(clear_status_dsp) tx_underrun_dsp <= 1'b0; // TX debug bus // // 15:0 txclk domain => TXA [15:0] // 31:16 usbclk domain => RXA [15:0] assign debugbus[0] = reset; assign debugbus[1] = txstrobe; assign debugbus[2] = rdreq; assign debugbus[6:3] = phase; assign debugbus[7] = tx_empty; assign debugbus[8] = tx_underrun_dsp; assign debugbus[9] = iq_f; assign debugbus[10] = sop_f; assign debugbus[14:11] = 0; assign debugbus[15] = txclk; assign debugbus[16] = bus_reset; assign debugbus[17] = WR; assign debugbus[18] = wr_reg; assign debugbus[19] = have_space; assign debugbus[20] = write_count[8]; assign debugbus[21] = write_count[0]; assign debugbus[22] = sop; assign debugbus[23] = tx_underrun; assign debugbus[30:24] = 0; assign debugbus[31] = usbclk; endmodule // tx_buffer uhd-3.5.5/fpga/usrp1/sdr_lib/tx_chain.v000066400000000000000000000037661224274632000177130ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module tx_chain (input clock, input reset, input enable, input wire [7:0] interp_rate, input sample_strobe, input interpolator_strobe, input wire [31:0] freq, input wire [15:0] i_in, input wire [15:0] q_in, output wire [15:0] i_out, output wire [15:0] q_out ); wire [15:0] bb_i, bb_q; cic_interp cic_interp_i ( .clock(clock),.reset(reset),.enable(enable), .rate(interp_rate),.strobe_in(interpolator_strobe),.strobe_out(sample_strobe), .signal_in(i_in),.signal_out(bb_i) ); cic_interp cic_interp_q ( .clock(clock),.reset(reset),.enable(enable), .rate(interp_rate),.strobe_in(interpolator_strobe),.strobe_out(sample_strobe), .signal_in(q_in),.signal_out(bb_q) ); `define NOCORDIC_TX `ifdef NOCORDIC_TX assign i_out = bb_i; assign q_out = bb_q; `else wire [31:0] phase; phase_acc phase_acc_tx (.clk(clock),.reset(reset),.enable(enable), .strobe(sample_strobe),.freq(freq),.phase(phase) ); cordic tx_cordic_0 ( .clock(clock),.reset(reset),.enable(sample_strobe), .xi(bb_i),.yi(bb_q),.zi(phase[31:16]), .xo(i_out),.yo(q_out),.zo() ); `endif endmodule // tx_chain uhd-3.5.5/fpga/usrp1/sdr_lib/tx_chain_hb.v000066400000000000000000000046471224274632000203630ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module tx_chain_hb (input clock, input reset, input enable, input wire [7:0] interp_rate, input sample_strobe, input interpolator_strobe, input hb_strobe, input wire [31:0] freq, input wire [15:0] i_in, input wire [15:0] q_in, output wire [15:0] i_out, output wire [15:0] q_out, output wire [15:0] debug, output [15:0] hb_i_out ); assign debug[15:13] = {sample_strobe,hb_strobe,interpolator_strobe}; wire [15:0] bb_i, bb_q; wire [15:0] hb_i_out, hb_q_out; halfband_interp hb (.clock(clock),.reset(reset),.enable(enable), .strobe_in(interpolator_strobe),.strobe_out(hb_strobe), .signal_in_i(i_in),.signal_in_q(q_in), .signal_out_i(hb_i_out),.signal_out_q(hb_q_out), .debug(debug[12:0])); cic_interp cic_interp_i ( .clock(clock),.reset(reset),.enable(enable), .rate(interp_rate),.strobe_in(hb_strobe),.strobe_out(sample_strobe), .signal_in(hb_i_out),.signal_out(bb_i) ); cic_interp cic_interp_q ( .clock(clock),.reset(reset),.enable(enable), .rate(interp_rate),.strobe_in(hb_strobe),.strobe_out(sample_strobe), .signal_in(hb_q_out),.signal_out(bb_q) ); `define NOCORDIC_TX `ifdef NOCORDIC_TX assign i_out = bb_i; assign q_out = bb_q; `else wire [31:0] phase; phase_acc phase_acc_tx (.clk(clock),.reset(reset),.enable(enable), .strobe(sample_strobe),.freq(freq),.phase(phase) ); cordic tx_cordic_0 ( .clock(clock),.reset(reset),.enable(sample_strobe), .xi(bb_i),.yi(bb_q),.zi(phase[31:16]), .xo(i_out),.yo(q_out),.zo() ); `endif endmodule // tx_chain uhd-3.5.5/fpga/usrp1/tb/000077500000000000000000000000001224274632000147025ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/tb/.gitignore000066400000000000000000000000331224274632000166660ustar00rootroot00000000000000/*.vcd /*.out /fullchip_tb uhd-3.5.5/fpga/usrp1/tb/cbus_tb.v000066400000000000000000000027071224274632000165200ustar00rootroot00000000000000module cbus_tb; `define ch1in_freq 0 `define ch2in_freq 1 `define ch3in_freq 2 `define ch4in_freq 3 `define ch1out_freq 4 `define ch2out_freq 5 `define ch3out_freq 6 `define ch4out_freq 7 `define rates 8 `define misc 9 task send_config_word; input [7:0] addr; input [31:0] data; integer i; begin #10 serenable = 1; for(i=7;i>=0;i=i-1) begin #10 serdata = addr[i]; #10 serclk = 0; #10 serclk = 1; #10 serclk = 0; end for(i=31;i>=0;i=i-1) begin #10 serdata = data[i]; #10 serclk = 0; #10 serclk = 1; #10 serclk = 0; end #10 serenable = 0; // #10 serclk = 1; // #10 serclk = 0; end endtask // send_config_word initial $dumpfile("cbus_tb.vcd"); initial $dumpvars(0,cbus_tb); initial reset = 1; initial #500 reset = 0; reg serclk, serdata, serenable, reset; wire SDO; control_bus control_bus ( .serial_clock(serclk), .serial_data_in(serdata), .enable(serenable), .reset(reset), .serial_data_out(SDO) ); initial begin #1000 send_config_word(8'd1,32'hDEAD_BEEF); #1000 send_config_word(8'd3,32'hDDEE_FF01); #1000 send_config_word(8'd19,32'hFFFF_FFFF); #1000 send_config_word(8'd23,32'h1234_FEDC); #1000 send_config_word(8'h80,32'h0); #1000 send_config_word(8'h81,32'h0); #1000 send_config_word(8'h82,32'h0); #1000 reset = 1; #1 $finish; end endmodule // cbus_tb uhd-3.5.5/fpga/usrp1/tb/cordic_tb.v000066400000000000000000000030751224274632000170260ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module cordic_tb(); cordic cordic(clk, reset, enable, xi, yi, zi, xo, yo, zo ); reg reset; reg clk; reg enable; reg [15:0] xi, yi, zi; initial reset = 1'b1; initial #1000 reset = 1'b0; initial clk = 1'b0; always #50 clk <= ~clk; initial enable = 1'b1; initial zi = 16'b0; always @(posedge clk) zi <= #1 zi + 16'd0; wire [15:0] xo,yo,zo; initial $dumpfile("cordic.vcd"); initial $dumpvars(0,cordic_tb); initial begin `include "sine.txt" end wire [15:0] xiu = {~xi[15],xi[14:0]}; wire [15:0] yiu = {~yi[15],yi[14:0]}; wire [15:0] xou = {~xo[15],xo[14:0]}; wire [15:0] you = {~yo[15],yo[14:0]}; initial $monitor("%d\t%d\t%d\t%d\t%d",$time,xiu,yiu,xou,you); endmodule // cordic_tb uhd-3.5.5/fpga/usrp1/tb/decim_tb.v000066400000000000000000000053131224274632000166410ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // testbench for fullchip module decim_tb(); `include "usrp_tasks.v" reg clk_120mhz; reg usbclk; reg reset; reg [11:0] adc1_data, adc2_data; wire [13:0] dac1_data, dac2_data; wire [5:0] usbctl; wire [5:0] usbrdy; wire [15:0] usbdata; reg WE, RD, OE; assign usbctl[0] = WE; assign usbctl[1] = RD; assign usbctl[2] = OE; assign usbctl[5:3] = 0; reg tb_oe; assign usbdata = tb_oe ? usbdatareg : 16'hxxxx; reg serload, serenable, serclk, serdata; reg enable_tx, enable_rx; reg [15:0] usbdatareg; /////////////////////////////////////////////// // Simulation Control initial begin $dumpfile("decim_tb.vcd"); $dumpvars(0, fc_tb); end initial #100000 $finish; /////////////////////////////////////////////// // Monitors reg [7:0] counter_decim; wire [7:0] decim_rate; assign decim_rate = 32; initial $monitor(dac1_data); always @(posedge clk_120mhz) begin if(reset | ~enable_tx) counter_decim <= #1 0; else if(counter_decim == 0) counter_decim <= #1 decim_rate - 8'b1; else counter_decim <= #1 counter_decim - 8'b1; end /////////////////////////////////////////////// // Clock and reset initial clk_120mhz = 0; initial usbclk = 0; always #48 clk_120mhz = ~clk_120mhz; always #120 usbclk = ~usbclk; initial reset = 1'b1; initial #500 reset = 1'b0; initial enable_tx = 1'b1; wire [31:0] decim_out, q_decim_out; wire [31:0] decim_out; wire [31:0] phase; cic_decim #(.bitwidth(32),.stages(4)) decim_i(.clock(clk_120mhz),.reset(reset),.enable(enable_tx), .strobe(counter_decim == 8'b0),.signal_in(32'h1),.signal_out(decim_out)); cic_decim #(.bitwidth(32),.stages(4)) decim(.clock(clk_120mhz),.reset(reset),.enable(enable_tx), .strobe(counter_decim == 8'b0),.signal_in(32'h1),.signal_out(decim_out)); endmodule uhd-3.5.5/fpga/usrp1/tb/fullchip_tb.v000077500000000000000000000074701224274632000173770ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // testbench for fullchip `timescale 1ns/1ns module fullchip_tb(); `include "usrp_tasks.v" fullchip fullchip ( .clk_120mhz(clk_120mhz), .reset(reset), .enable_rx(enable_rx), .enable_tx(enable_tx), .SLD(serload), .SEN(serenable), .clear_status(), .SDI(serdata), .SCLK(serclk), .adc1_data(adc1_data), .adc2_data(adc2_data), .adc3_data(adc1_data), .adc4_data(adc2_data), .dac1_data(dac1_data), .dac2_data(dac2_data), .dac3_data(),.dac4_data(), .adclk0(adclk),.adclk1(), .adc_oeb(),.adc_otr(4'b0), .clk_out(clk_out), .misc_pins(), // USB interface .usbclk(usbclk),.usbctl(usbctl), .usbrdy(usbrdy),.usbdata(usbdata) ); reg clk_120mhz; reg usbclk; reg reset; reg [11:0] adc1_data, adc2_data; wire [13:0] dac1_data, dac2_data; wire [5:0] usbctl; wire [5:0] usbrdy; wire [15:0] usbdata; reg WE, RD, OE; assign usbctl[0] = WE; assign usbctl[1] = RD; assign usbctl[2] = OE; assign usbctl[5:3] = 0; wire have_packet_rdy = usbrdy[1]; reg tb_oe; initial tb_oe=1'b1; assign usbdata = tb_oe ? usbdatareg : 16'hxxxx; reg serload, serenable, serclk, serdata; reg enable_tx, enable_rx; reg [15:0] usbdatareg; /////////////////////////////////////////////// // Simulation Control initial begin $dumpfile("fullchip_tb.vcd"); $dumpvars(0, fullchip_tb); end //initial #1000000 $finish; /////////////////////////////////////////////// // Monitors //initial $monitor(dac1_data); /////////////////////////////////////////////// // Clock and reset initial clk_120mhz = 0; initial usbclk = 0; always #24 clk_120mhz = ~clk_120mhz; always #60 usbclk = ~usbclk; initial reset = 1'b1; initial #500 reset = 1'b0; ///////////////////////////////////////////////// // Run AD input always @(posedge adclk) adc1_data <= #1 12'd1234; always @(posedge adclk) adc2_data <= #1 12'd1234; ///////////////////////////////////////////////// // USB interface initial begin initialize_usb; #30000 @(posedge usbclk); burst_usb_write(257); #30000 burst_usb_read(256); #10000 $finish; // repeat(30) // begin // write_from_usb; // read_from_usb; // end end ///////////////////////////////////////////////// // TX and RX enable initial enable_tx = 1'b0; initial #40000 enable_tx = 1'b1; initial enable_rx = 1'b0; initial #40000 enable_rx = 1'b1; ////////////////////////////////////////////////// // Set up control bus initial begin #1000 send_config_word(`ch1in_freq,32'h0); // 1 MHz on 60 MHz clock send_config_word(`ch2in_freq,32'h0); send_config_word(`ch3in_freq,32'h0); send_config_word(`ch4in_freq,32'h0); send_config_word(`ch1out_freq,32'h01234567); send_config_word(`ch2out_freq,32'h0); send_config_word(`ch3out_freq,32'h0); send_config_word(`ch4out_freq,32'h0); send_config_word(`misc,32'h0); send_config_word(`rates,{8'd2,8'd12,8'h0f,8'h07}); // adc, ext, interp, decim end ///////////////////////////////////////////////////////// endmodule uhd-3.5.5/fpga/usrp1/tb/interp_tb.v000077500000000000000000000053351224274632000170700ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // testbench for fullchip module interp_tb(); `include "usrp_tasks.v" reg clk_120mhz; reg usbclk; reg reset; reg [11:0] adc1_data, adc2_data; wire [13:0] dac1_data, dac2_data; wire [5:0] usbctl; wire [5:0] usbrdy; wire [15:0] usbdata; reg WE, RD, OE; assign usbctl[0] = WE; assign usbctl[1] = RD; assign usbctl[2] = OE; assign usbctl[5:3] = 0; reg tb_oe; assign usbdata = tb_oe ? usbdatareg : 16'hxxxx; reg serload, serenable, serclk, serdata; reg enable_tx, enable_rx; reg [15:0] usbdatareg; /////////////////////////////////////////////// // Simulation Control initial begin $dumpfile("interp_tb.vcd"); $dumpvars(0, fc_tb); end initial #100000 $finish; /////////////////////////////////////////////// // Monitors reg [7:0] counter_interp; wire [7:0] interp_rate; assign interp_rate = 32; initial $monitor(dac1_data); always @(posedge clk_120mhz) begin if(reset | ~enable_tx) counter_interp <= #1 0; else if(counter_interp == 0) counter_interp <= #1 interp_rate - 8'b1; else counter_interp <= #1 counter_interp - 8'b1; end /////////////////////////////////////////////// // Clock and reset initial clk_120mhz = 0; initial usbclk = 0; always #48 clk_120mhz = ~clk_120mhz; always #120 usbclk = ~usbclk; initial reset = 1'b1; initial #500 reset = 1'b0; initial enable_tx = 1'b1; wire [31:0] interp_out, q_interp_out; wire [31:0] decim_out; wire [31:0] phase; cic_interp #(.bitwidth(32),.stages(4)) interp_i(.clock(clk_120mhz),.reset(reset),.enable(enable_tx), .strobe(counter_interp == 8'b0),.signal_in(32'h1),.signal_out(interp_out)); cic_decim #(.bitwidth(32),.stages(4)) decim(.clock(clk_120mhz),.reset(reset),.enable(enable_tx), .strobe(counter_interp == 8'b0),.signal_in(32'h1),.signal_out(decim_out)); endmodule uhd-3.5.5/fpga/usrp1/tb/justinterp_tb.v000066400000000000000000000035251224274632000177720ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module cic_decim_tb; cic_decim #(.bitwidth(16),.stages(4)) decim(clock,reset,enable,strobe_in,strobe_out,signal_in,signal_out); reg clock; reg reset; reg enable; wire strobe; reg [15:0] signal_in; wire [15:0] signal_out; assign strobe_in = 1'b1; reg strobe_out; always @(posedge clock) while(1) begin @(posedge clock); @(posedge clock); @(posedge clock); @(posedge clock); strobe_out <= 1'b1; @(posedge clock); @(posedge clock); @(posedge clock); @(posedge clock); strobe_out <= 1'b0; end initial clock = 0; always #50 clock = ~clock; initial reset = 1; initial #1000 reset = 0; initial enable = 0; initial #2000 enable = 1; initial signal_in = 16'h1; initial #500000 signal_in = 16'h7fff; initial #1000000 signal_in = 16'h8000; initial #1500000 signal_in = 16'hffff; initial $dumpfile("decim.vcd"); initial $dumpvars(0,cic_decim_tb); initial #10000000 $finish; endmodule // cic_decim_tb uhd-3.5.5/fpga/usrp1/tb/makesine.pl000077500000000000000000000004671224274632000170450ustar00rootroot00000000000000#!/usr/bin/perl $angle = 0; $angle_inc = 2*3.14159/87.2; $amp = 1; $amp_rate = 1.0035; for($i=0;$i<3500;$i++) { printf("@(posedge clk);xi<= #1 16'h%x;yi<= #1 16'h%x;\n",65535&int($amp*cos($angle)),65535&int($amp*sin($angle))); $angle += $angle_inc; $amp *= $amp_rate; } printf("\$finish;\n"); uhd-3.5.5/fpga/usrp1/tb/run_cordic000077500000000000000000000000741224274632000167600ustar00rootroot00000000000000#!/bin/sh iverilog -y ../sdr_lib -o cordic_tb cordic_tb.v uhd-3.5.5/fpga/usrp1/tb/run_fullchip000077500000000000000000000001521224274632000173200ustar00rootroot00000000000000#!/bin/sh iverilog -y ../toplevel/fullchip -y ../sdr_lib -y ../models -y . -o fullchip_tb fullchip_tb.v uhd-3.5.5/fpga/usrp1/tb/usrp_tasks.v000077500000000000000000000056701224274632000173020ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Tasks ///////////////////////////////////////////////// // USB interface task initialize_usb; begin OE = 0;WE = 0;RD = 0; usbdatareg <= 16'h0; end endtask task write_from_usb; begin tb_oe <= 1'b1; @(posedge usbclk); usbdatareg <= #1 $random % 65536; WE <= #1 1'b1; @(posedge usbclk) WE <= #1 1'b0; tb_oe <= #1 1'b0; end endtask task burst_usb_write; input [31:0] repeat_count; begin tb_oe <= 1'b1; repeat(repeat_count) begin @(posedge usbclk) usbdatareg <= #1 usbdatareg + 1; //$random % 65536; WE <= #1 1'b1; end @(posedge usbclk) WE <= #1 1'b0; tb_oe <= 1'b0; end endtask // burst_usb_write task read_from_usb; begin @(posedge usbclk); RD <= #1 1'b1; @(posedge usbclk); RD <= #1 1'b0; OE <= #1 1'b1; @(posedge usbclk); OE <= #1 1'b0; end endtask task burst_usb_read; input [31:0] repeat_count; begin while (~have_packet_rdy) begin @(posedge usbclk); end @(posedge usbclk) RD <= #1 1'b1; repeat(repeat_count) begin @(posedge usbclk) OE <= #1 1'b1; end RD <= #1 1'b0; @(posedge usbclk); OE <= #1 1'b0; end endtask // burst_usb_read ///////////////////////////////////////////////// // TX and RX enable ////////////////////////////////////////////////// // Set up control bus `define ch1in_freq 0 `define ch2in_freq 1 `define ch3in_freq 2 `define ch4in_freq 3 `define ch1out_freq 4 `define ch2out_freq 5 `define ch3out_freq 6 `define ch4out_freq 7 `define rates 8 `define misc 9 task send_config_word; input [7:0] addr; input [31:0] data; integer i; begin #10 serenable = 1; for(i=7;i>=0;i=i-1) begin #10 serdata = addr[i]; #10 serclk = 0; #10 serclk = 1; #10 serclk = 0; end for(i=31;i>=0;i=i-1) begin #10 serdata = data[i]; #10 serclk = 0; #10 serclk = 1; #10 serclk = 0; end #10 serenable = 0; // #10 serload = 0; // #10 serload = 1; #10 serclk = 1; #10 serclk = 0; //#10 serload = 0; end endtask // send_config_word ///////////////////////////////////////////////////////// uhd-3.5.5/fpga/usrp1/toplevel/000077500000000000000000000000001224274632000161275ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/include/000077500000000000000000000000001224274632000175525ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/include/common_config_1rxhb_1tx.vh000066400000000000000000000043451224274632000246340ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ------------------------------------------------------------ // If TX_ON is not defined, there is *no* transmit circuitry built `define TX_ON // ------------------------------------------------------------ // Define 1 and only one of TX_SINGLE, TX_DUAL and TX_QUAD // to respectively enable 1, 2 or 4 transmit channels. // [Please note that only TX_SINGLE and TX_DUAL are currently valid] `define TX_SINGLE //`define TX_DUAL //`define TX_QUAD // ------------------------------------------------------------ // Define TX_HB_ON to enable the transmit halfband filter // [Not implemented] //`define TX_HB_ON // ------------------------------------------------------------ // IF RX_ON is not defined, there is *no* receive circuitry built `define RX_ON // ------------------------------------------------------------ // Define 1 and only one of RX_SINGLE, RX_DUAL and RX_QUAD // to respectively define 1, 2 or 4 receive channels. `define RX_SINGLE //`define RX_DUAL //`define RX_QUAD // ------------------------------------------------------------ // Define RX_HB_ON to enable the receive halfband filter `define RX_HB_ON // ------------------------------------------------------------ // Define RX_NCO_ON to enable the receive Numerical Controlled Osc `define RX_NCO_ON // ------------------------------------------------------------ // Define RX_CIC_ON to enable the receive Cascaded Integrator Comb filter `define RX_CIC_ON uhd-3.5.5/fpga/usrp1/toplevel/include/common_config_2rx_0tx.vh000066400000000000000000000044201224274632000243140ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Matt Ettus // Copyright (C) 2006 Martin Dudok van Heel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ------------------------------------------------------------ // If TX_ON is not defined, there is *no* transmit circuitry built // `define TX_ON // ------------------------------------------------------------ // Define 1 and only one of TX_SINGLE, TX_DUAL and TX_QUAD // to respectively enable 1, 2 or 4 transmit channels. // [Please note that only TX_SINGLE and TX_DUAL are currently valid] //`define TX_SINGLE //`define TX_DUAL //`define TX_QUAD // ------------------------------------------------------------ // Define TX_HB_ON to enable the transmit halfband filter // [Not implemented] //`define TX_HB_ON // ------------------------------------------------------------ // IF RX_ON is not defined, there is *no* receive circuitry built `define RX_ON // ------------------------------------------------------------ // Define 1 and only one of RX_SINGLE, RX_DUAL and RX_QUAD // to respectively define 1, 2 or 4 receive channels. //`define RX_SINGLE `define RX_DUAL //`define RX_QUAD // ------------------------------------------------------------ // Define RX_HB_ON to enable the receive halfband filter //`define RX_HB_ON // ------------------------------------------------------------ // Define RX_NCO_ON to enable the receive Numerical Controlled Osc `define RX_NCO_ON // ------------------------------------------------------------ // Define RX_CIC_ON to enable the receive Cascaded Integrator Comb filter `define RX_CIC_ON uhd-3.5.5/fpga/usrp1/toplevel/include/common_config_2rxhb_0tx.vh000066400000000000000000000044231224274632000246310ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Matt Ettus // Copyright (C) 2006 Martin Dudok van Heel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ------------------------------------------------------------ // If TX_ON is not defined, there is *no* transmit circuitry built // `define TX_ON // ------------------------------------------------------------ // Define 1 and only one of TX_SINGLE, TX_DUAL and TX_QUAD // to respectively enable 1, 2 or 4 transmit channels. // [Please note that only TX_SINGLE and TX_DUAL are currently valid] //`define TX_SINGLE //`define TX_DUAL //`define TX_QUAD // ------------------------------------------------------------ // Define TX_HB_ON to enable the transmit halfband filter // [Not implemented] //`define TX_HB_ON // ------------------------------------------------------------ // IF RX_ON is not defined, there is *no* transmit circuitry built `define RX_ON // ------------------------------------------------------------ // Define 1 and only one of RX_SINGLE, RX_DUAL and RX_QUAD // to respectively define 1, 2 or 4 receive channels. //`define RX_SINGLE `define RX_DUAL //`define RX_QUAD // ------------------------------------------------------------ // Define RX_HB_ON to enable the receive halfband filter `define RX_HB_ON // ------------------------------------------------------------ // Define RX_NCO_ON to enable the receive Numerical Controlled Osc `define RX_NCO_ON // ------------------------------------------------------------ // Define RX_CIC_ON to enable the receive Cascaded Integrator Comb filter `define RX_CIC_ON uhd-3.5.5/fpga/usrp1/toplevel/include/common_config_2rxhb_2tx.vh000066400000000000000000000043451224274632000246360ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ------------------------------------------------------------ // If TX_ON is not defined, there is *no* transmit circuitry built `define TX_ON // ------------------------------------------------------------ // Define 1 and only one of TX_SINGLE, TX_DUAL and TX_QUAD // to respectively enable 1, 2 or 4 transmit channels. // [Please note that only TX_SINGLE and TX_DUAL are currently valid] //`define TX_SINGLE `define TX_DUAL //`define TX_QUAD // ------------------------------------------------------------ // Define TX_HB_ON to enable the transmit halfband filter // [Not implemented] //`define TX_HB_ON // ------------------------------------------------------------ // IF RX_ON is not defined, there is *no* receive circuitry built `define RX_ON // ------------------------------------------------------------ // Define 1 and only one of RX_SINGLE, RX_DUAL and RX_QUAD // to respectively define 1, 2 or 4 receive channels. //`define RX_SINGLE `define RX_DUAL //`define RX_QUAD // ------------------------------------------------------------ // Define RX_HB_ON to enable the receive halfband filter `define RX_HB_ON // ------------------------------------------------------------ // Define RX_NCO_ON to enable the receive Numerical Controlled Osc `define RX_NCO_ON // ------------------------------------------------------------ // Define RX_CIC_ON to enable the receive Cascaded Integrator Comb filter `define RX_CIC_ON uhd-3.5.5/fpga/usrp1/toplevel/include/common_config_4rx_0tx.vh000066400000000000000000000043461224274632000243250ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ------------------------------------------------------------ // If TX_ON is not defined, there is *no* transmit circuitry built // `define TX_ON // ------------------------------------------------------------ // Define 1 and only one of TX_SINGLE, TX_DUAL and TX_QUAD // to respectively enable 1, 2 or 4 transmit channels. // [Please note that only TX_SINGLE and TX_DUAL are currently valid] //`define TX_SINGLE //`define TX_DUAL //`define TX_QUAD // ------------------------------------------------------------ // Define TX_HB_ON to enable the transmit halfband filter // [Not implemented] //`define TX_HB_ON // ------------------------------------------------------------ // IF RX_ON is not defined, there is *no* receive circuitry built `define RX_ON // ------------------------------------------------------------ // Define 1 and only one of RX_SINGLE, RX_DUAL and RX_QUAD // to respectively define 1, 2 or 4 receive channels. //`define RX_SINGLE //`define RX_DUAL `define RX_QUAD // ------------------------------------------------------------ // Define RX_HB_ON to enable the receive halfband filter //`define RX_HB_ON // ------------------------------------------------------------ // Define RX_NCO_ON to enable the receive Numerical Controlled Osc `define RX_NCO_ON // ------------------------------------------------------------ // Define RX_CIC_ON to enable the receive Cascaded Integrator Comb filter `define RX_CIC_ON uhd-3.5.5/fpga/usrp1/toplevel/include/common_config_bottom.vh000066400000000000000000000046271224274632000243230ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006,2007 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ==================================================================== // This is the common tail for standard configuation // ==================================================================== // // >>>> DO NOT EDIT BELOW HERE <<<< // // N.B., *all* the remainder of the code should be conditionalized // only in terms of: // // TX_ON, TX_EN_0, TX_EN_1, TX_EN_2, TX_EN_3, TX_CAP_NCHAN, TX_CAP_HB, // RX_ON, RX_EN_0, RX_EN_1, RX_EN_2, RX_EN_3, RX_CAP_NCHAN, RX_CAP_HB, // RX_NCO_ON, RX_CIC_ON // ==================================================================== `ifdef TX_ON `ifdef TX_SINGLE `define TX_EN_0 `define TX_CAP_NCHAN 3'd1 `endif `ifdef TX_DUAL `define TX_EN_0 `define TX_EN_1 `define TX_CAP_NCHAN 3'd2 `endif `ifdef TX_QUAD `define TX_EN_0 `define TX_EN_1 `define TX_EN_2 `define TX_EN_3 `define TX_CAP_NCHAN 3'd4 `endif `ifdef TX_HB_ON `define TX_CAP_HB 1 `else `define TX_CAP_HB 0 `endif `else // !ifdef TX_ON `define TX_CAP_NCHAN 3'd0 `define TX_CAP_HB 0 `endif // !ifdef TX_ON // -------------------------------------------------------------------- `ifdef RX_ON `ifdef RX_SINGLE `define RX_EN_0 `define RX_CAP_NCHAN 3'd1 `endif `ifdef RX_DUAL `define RX_EN_0 `define RX_EN_1 `define RX_CAP_NCHAN 3'd2 `endif `ifdef RX_QUAD `define RX_EN_0 `define RX_EN_1 `define RX_EN_2 `define RX_EN_3 `define RX_CAP_NCHAN 3'd4 `endif `ifdef RX_HB_ON `define RX_CAP_HB 1 `else `define RX_CAP_HB 0 `endif `else // !ifdef RX_ON `define RX_CAP_NCHAN 3'd0 `define RX_CAP_HB 0 `endif // !ifdef RX_ON uhd-3.5.5/fpga/usrp1/toplevel/mrfm/000077500000000000000000000000001224274632000170705ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/mrfm/.gitignore000066400000000000000000000001711224274632000210570ustar00rootroot00000000000000/*.qws /*.eqn /*.done /*.htm /*.rpt /*.ini /*.fsf /*.jam /*.jbc /*.pin /*.pof /*.sof /*.rbf /*.ttf /*.summary /a.out /db uhd-3.5.5/fpga/usrp1/toplevel/mrfm/biquad_2stage.v000066400000000000000000000110601224274632000217670ustar00rootroot00000000000000`include "mrfm.vh" module biquad_2stage (input clock, input reset, input strobe_in, input serial_strobe, input [6:0] serial_addr, input [31:0] serial_data, input wire [15:0] sample_in, output reg [15:0] sample_out, output wire [63:0] debugbus); wire [3:0] coeff_addr, coeff_wr_addr; wire [3:0] data_addr, data_wr_addr; reg [3:0] cur_offset, data_addr_int, data_wr_addr_int; wire [15:0] coeff, coeff_wr_data, data, data_wr_data; wire coeff_wr; reg data_wr; wire [30:0] product; wire [33:0] accum; wire [15:0] scaled_accum; wire [7:0] shift; reg [3:0] phase; wire enable_mult, enable_acc, latch_out, select_input; reg done, clear_acc; setting_reg #(`FR_MRFM_IIR_COEFF) sr_coeff(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({coeff_wr_addr,coeff_wr_data}),.changed(coeff_wr)); setting_reg #(`FR_MRFM_IIR_SHIFT) sr_shift(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(shift),.changed()); ram16 coeff_ram(.clock(clock),.write(coeff_wr),.wr_addr(coeff_wr_addr),.wr_data(coeff_wr_data), .rd_addr(coeff_addr),.rd_data(coeff)); ram16 data_ram(.clock(clock),.write(data_wr),.wr_addr(data_wr_addr),.wr_data(data_wr_data), .rd_addr(data_addr),.rd_data(data)); mult mult (.clock(clock),.x(data),.y(coeff),.product(product),.enable_in(enable_mult),.enable_out() ); acc acc (.clock(clock),.reset(reset),.clear(clear_acc),.enable_in(enable_acc),.enable_out(), .addend(product),.sum(accum) ); shifter shifter (.in(accum),.out(scaled_accum),.shift(shift)); assign data_wr_data = select_input ? sample_in : scaled_accum; assign enable_mult = 1'b1; always @(posedge clock) if(reset) cur_offset <= #1 4'd0; else if(latch_out) cur_offset <= #1 cur_offset + 4'd1; assign data_addr = data_addr_int + cur_offset; assign data_wr_addr = data_wr_addr_int + cur_offset; always @(posedge clock) if(reset) done <= #1 1'b0; else if(latch_out) done <= #1 1'b1; else if(strobe_in) done <= #1 1'b0; always @(posedge clock) if(reset) phase <= #1 4'd0; else if(strobe_in) phase <= #1 4'd0; else if(!done) phase <= #1 phase + 4'd1; assign coeff_addr = phase; always @(phase) case(phase) 4'd01 : data_addr_int = 4'd00; 4'd02 : data_addr_int = 4'd01; 4'd03 : data_addr_int = 4'd02; 4'd04 : data_addr_int = 4'd03; 4'd05 : data_addr_int = 4'd04; 4'd07 : data_addr_int = 4'd03; 4'd08 : data_addr_int = 4'd04; 4'd09 : data_addr_int = 4'd05; 4'd10 : data_addr_int = 4'd06; 4'd11 : data_addr_int = 4'd07; default : data_addr_int = 4'd00; endcase // case(phase) always @(phase) case(phase) 4'd0 : data_wr_addr_int = 4'd2; 4'd8 : data_wr_addr_int = 4'd5; 4'd14 : data_wr_addr_int = 4'd8; default : data_wr_addr_int = 4'd0; endcase // case(phase) always @(phase) case(phase) 4'd0, 4'd8, 4'd14 : data_wr = 1'b1; default : data_wr = 1'b0; endcase // case(phase) assign select_input = (phase == 4'd0); always @(phase) case(phase) 4'd0, 4'd1, 4'd2, 4'd3, 4'd9, 4'd15 : clear_acc = 1'd1; default : clear_acc = 1'b0; endcase // case(phase) assign enable_acc = ~clear_acc; assign latch_out = (phase == 4'd14); always @(posedge clock) if(reset) sample_out <= #1 16'd0; else if(latch_out) sample_out <= #1 scaled_accum; //////////////////////////////////////////////////////// // Debug wire [3:0] debugmux; setting_reg #(`FR_MRFM_DEBUG) sr_debugmux(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(debugmux),.changed()); assign debugbus[15:0] = debugmux[0] ? {coeff_addr,data_addr,data_wr_addr,cur_offset} : {phase,data_addr_int,data_wr_addr_int,cur_offset}; assign debugbus[31:16] = debugmux[1] ? scaled_accum : {clock, strobe_in, data_wr, enable_mult, enable_acc, clear_acc, latch_out,select_input,done, data_addr_int}; assign debugbus[47:32] = debugmux[2] ? sample_out : coeff; assign debugbus[63:48] = debugmux[3] ? sample_in : data; endmodule // biquad_2stage uhd-3.5.5/fpga/usrp1/toplevel/mrfm/biquad_6stage.v000066400000000000000000000114071224274632000220000ustar00rootroot00000000000000`include "mrfm.vh" module mrfm_iir (input clock, input reset, input strobe_in, input serial_strobe, input [6:0] serial_addr, input [31:0] serial_data, input wire [15:0] sample_in, output reg [15:0] sample_out); wire [5:0] coeff_addr, coeff_wr_addr; wire [4:0] data_addr, data_wr_addr; reg [4:0] cur_offset, data_addr_int, data_wr_addr_int; wire [15:0] coeff, coeff_wr_data, data, data_wr_data; wire coeff_wr; reg data_wr; wire [30:0] product; wire [33:0] accum; wire [15:0] scaled_accum; wire [7:0] shift; reg [5:0] phase; wire enable_mult, enable_acc, latch_out, select_input; reg done, clear_acc; setting_reg #(`FR_MRFM_IIR_COEFF) sr_coeff(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({coeff_wr_addr,coeff_wr_data}),.changed(coeff_wr)); setting_reg #(`FR_MRFM_IIR_SHIFT) sr_shift(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(shift),.changed()); ram64 coeff_ram(.clock(clock),.write(coeff_wr),.wr_addr(coeff_wr_addr),.wr_data(coeff_wr_data), .rd_addr(coeff_addr),.rd_data(coeff)); ram32 data_ram(.clock(clock),.write(data_wr),.wr_addr(data_wr_addr),.wr_data(data_wr_data), .rd_addr(data_addr),.rd_data(data)); mult mult (.clock(clock),.x(data),.y(coeff),.product(product),.enable_in(enable_mult),.enable_out() ); acc acc (.clock(clock),.reset(reset),.clear(clear_acc),.enable_in(enable_acc),.enable_out(), .addend(product),.sum(accum) ); shifter shifter (.in(accum),.out(scaled_accum),.shift(shift)); assign data_wr_data = select_input ? sample_in : scaled_accum; assign enable_mult = 1'b1; always @(posedge clock) if(reset) cur_offset <= #1 5'd0; else if(latch_out) cur_offset <= #1 cur_offset + 5'd1; assign data_addr = data_addr_int + cur_offset; assign data_wr_addr = data_wr_addr_int + cur_offset; always @(posedge clock) if(reset) done <= #1 1'b0; else if(latch_out) done <= #1 1'b1; else if(strobe_in) done <= #1 1'b0; always @(posedge clock) if(reset) phase <= #1 6'd0; else if(strobe_in) phase <= #1 6'd0; else if(!done) phase <= #1 phase + 6'd1; always @(phase) case(phase) 6'd0 : data_addr_int = 5'd0; default : data_addr_int = 5'd0; endcase // case(phase) assign coeff_addr = phase; always @(phase) case(phase) 6'd01 : data_addr_int = 5'd00; 6'd02 : data_addr_int = 5'd01; 6'd03 : data_addr_int = 5'd02; 6'd04 : data_addr_int = 5'd03; 6'd05 : data_addr_int = 5'd04; 6'd07 : data_addr_int = 5'd03; 6'd08 : data_addr_int = 5'd04; 6'd09 : data_addr_int = 5'd05; 6'd10 : data_addr_int = 5'd06; 6'd11 : data_addr_int = 5'd07; 6'd13 : data_addr_int = 5'd06; 6'd14 : data_addr_int = 5'd07; 6'd15 : data_addr_int = 5'd08; 6'd16 : data_addr_int = 5'd09; 6'd17 : data_addr_int = 5'd10; 6'd19 : data_addr_int = 5'd09; 6'd20 : data_addr_int = 5'd10; 6'd21 : data_addr_int = 5'd11; 6'd22 : data_addr_int = 5'd12; 6'd23 : data_addr_int = 5'd13; 6'd25 : data_addr_int = 5'd12; 6'd26 : data_addr_int = 5'd13; 6'd27 : data_addr_int = 5'd14; 6'd28 : data_addr_int = 5'd15; 6'd29 : data_addr_int = 5'd16; 6'd31 : data_addr_int = 5'd15; 6'd32 : data_addr_int = 5'd16; 6'd33 : data_addr_int = 5'd17; 6'd34 : data_addr_int = 5'd18; 6'd35 : data_addr_int = 5'd19; default : data_addr_int = 5'd00; endcase // case(phase) always @(phase) case(phase) 6'd0 : data_wr_addr_int = 5'd2; 6'd8 : data_wr_addr_int = 5'd5; 6'd14 : data_wr_addr_int = 5'd8; 6'd20 : data_wr_addr_int = 5'd11; 6'd26 : data_wr_addr_int = 5'd14; 6'd32 : data_wr_addr_int = 5'd17; 6'd38 : data_wr_addr_int = 5'd20; default : data_wr_addr_int = 5'd0; endcase // case(phase) always @(phase) case(phase) 6'd0, 6'd8, 6'd14, 6'd20, 6'd26, 6'd32, 6'd38: data_wr = 1'b1; default : data_wr = 1'b0; endcase // case(phase) always @(phase) case(phase) 6'd0, 6'd1, 6'd2, 6'd3, 6'd9, 6'd15, 6'd21, 6'd27, 6'd33 : clear_acc = 1'd1; default : clear_acc = 1'b0; endcase // case(phase) assign enable_acc = ~clear_acc; assign latch_out = (phase == 6'd38); always @(posedge clock) if(reset) sample_out <= #1 16'd0; else if(latch_out) sample_out <= #1 scaled_accum; endmodule // mrfm_iir uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.csf000066400000000000000000000404761224274632000205410ustar00rootroot00000000000000COMPILER_SETTINGS { IO_PLACEMENT_OPTIMIZATION = OFF; ENABLE_DRC_SETTINGS = OFF; PHYSICAL_SYNTHESIS_REGISTER_RETIMING = OFF; PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION = OFF; PHYSICAL_SYNTHESIS_COMBO_LOGIC = OFF; DRC_FANOUT_EXCEEDING = 30; DRC_REPORT_FANOUT_EXCEEDING = OFF; DRC_TOP_FANOUT = 50; DRC_REPORT_TOP_FANOUT = OFF; RUN_DRC_DURING_COMPILATION = OFF; ADV_NETLIST_OPT_RETIME_CORE_AND_IO = ON; ADV_NETLIST_OPT_SYNTH_USE_FITTER_INFO = OFF; ADV_NETLIST_OPT_SYNTH_GATE_RETIME = OFF; ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP = OFF; SMART_COMPILE_IGNORES_TDC_FOR_STRATIX_PLL_CHANGES = OFF; MERGE_HEX_FILE = OFF; TRUE_WYSIWYG_FLOW = OFF; SEED = 1; FINAL_PLACEMENT_OPTIMIZATION = AUTOMATICALLY; FAMILY = Cyclone; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "LOWER TO 1ESB UPPER TO 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DEEP_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_SINGLE_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_WIDE_MODE_OUTPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4ESB"; DPRAM_DEEP_MODE_OUTPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_INPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4"; DPRAM_DEEP_MODE_INPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_OTHER_SIGNALS_EPXA4_10 = "DEFAULT OTHER ROUTING OPTIONS"; DPRAM_OUTPUT_EPXA4_10 = "DEFAULT OUTPUT ROUTING OPTIONS"; DPRAM_INPUT_EPXA4_10 = "DEFAULT INPUT ROUTING OPTIONS"; STRIPE_TO_PLD_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PLD_TO_STRIPE_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PROCESSOR_DEBUG_EXTENSIONS_EPXA4_10 = "MEGALAB COLUMN 2"; STRIPE_TO_PLD_BRIDGE_EPXA4_10 = "MEGALAB COLUMN 1"; FAST_FIT_COMPILATION = OFF; SIGNALPROBE_DURING_NORMAL_COMPILATION = OFF; OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING = ON; OPTIMIZE_TIMING = "NORMAL COMPILATION"; OPTIMIZE_HOLD_TIMING = OFF; COMPILATION_LEVEL = FULL; SAVE_DISK_SPACE = OFF; SPEED_DISK_USAGE_TRADEOFF = NORMAL; LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT = OFF; SIGNALPROBE_ALLOW_OVERUSE = OFF; FOCUS_ENTITY_NAME = |mrfm; ROUTING_BACK_ANNOTATION_MODE = OFF; INC_PLC_MODE = OFF; FIT_ONLY_ONE_ATTEMPT = OFF; } DEFAULT_DEVICE_OPTIONS { GENERATE_CONFIG_HEXOUT_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_JBC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_SVF_FILE = OFF; RESERVE_PIN = "AS INPUT TRI-STATED"; RESERVE_ALL_UNUSED_PINS = "AS OUTPUT DRIVING GROUND"; HEXOUT_FILE_COUNT_DIRECTION = UP; HEXOUT_FILE_START_ADDRESS = 0; GENERATE_HEX_FILE = OFF; GENERATE_RBF_FILE = OFF; GENERATE_TTF_FILE = OFF; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; APEX20K_CONFIGURATION_DEVICE = AUTO; USE_CONFIGURATION_DEVICE = ON; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; AUTO_RESTART_CONFIGURATION = OFF; ENABLE_VREFB_PIN = OFF; ENABLE_VREFA_PIN = OFF; SECURITY_BIT = OFF; USER_START_UP_CLOCK = OFF; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "ACTIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_UPDATE_MODE = STANDARD; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MERCURY_JTAG_USER_CODE = FFFFFFFF; APEX20K_JTAG_USER_CODE = FFFFFFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; ENABLE_JTAG_BST_SUPPORT = OFF; CONFIGURATION_CLOCK_DIVISOR = 1; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CLOCK_SOURCE = INTERNAL; COMPRESSION_MODE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; } AUTO_SLD_HUB_ENTITY { AUTO_INSERT_SLD_HUB_ENTITY = ENABLE; HUB_INSTANCE_NAME = SLD_HUB_INST; HUB_ENTITY_NAME = SLD_HUB; } SIGNALTAP_LOGIC_ANALYZER_SETTINGS { ENABLE_SIGNALTAP = Off; AUTO_ENABLE_SMART_COMPILE = On; } CHIP(mrfm) { DEVICE = EP1C12Q240C8; DEVICE_FILTER_PACKAGE = "ANY QFP"; DEVICE_FILTER_PIN_COUNT = 240; DEVICE_FILTER_SPEED_GRADE = ANY; AUTO_RESTART_CONFIGURATION = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; USER_START_UP_CLOCK = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_JTAG_BST_SUPPORT = OFF; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; APEX20K_JTAG_USER_CODE = FFFFFFFF; MERCURY_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MAX7000_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; USE_CONFIGURATION_DEVICE = OFF; APEX20K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; STRATIX_UPDATE_MODE = STANDARD; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; COMPRESSION_MODE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; GENERATE_TTF_FILE = OFF; GENERATE_RBF_FILE = ON; GENERATE_HEX_FILE = OFF; SECURITY_BIT = OFF; ENABLE_VREFA_PIN = OFF; ENABLE_VREFB_PIN = OFF; GENERATE_SVF_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_JBC_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_HEXOUT_FILE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; BASE_PIN_OUT_FILE_ON_SAMEFRAME_DEVICE = OFF; HEXOUT_FILE_START_ADDRESS = 0; HEXOUT_FILE_COUNT_DIRECTION = UP; RESERVE_ALL_UNUSED_PINS = "AS INPUT TRI-STATED"; STRATIX_DEVICE_IO_STANDARD = LVTTL; CLOCK_SOURCE = INTERNAL; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CONFIGURATION_CLOCK_DIVISOR = 1; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; SCLK : LOCATION = Pin_101; SDI : LOCATION = Pin_100; SEN : LOCATION = Pin_98; SLD : LOCATION = Pin_95; adc1_data[0] : LOCATION = Pin_5; adc1_data[10] : LOCATION = Pin_235; adc1_data[11] : LOCATION = Pin_234; adc1_data[1] : LOCATION = Pin_4; adc1_data[2] : LOCATION = Pin_3; adc1_data[3] : LOCATION = Pin_2; adc1_data[4] : LOCATION = Pin_1; adc1_data[4] : IO_STANDARD = LVTTL; adc1_data[5] : LOCATION = Pin_240; adc1_data[6] : LOCATION = Pin_239; adc1_data[7] : LOCATION = Pin_238; adc1_data[8] : LOCATION = Pin_237; adc1_data[9] : LOCATION = Pin_236; adc2_data[0] : LOCATION = Pin_20; adc2_data[10] : LOCATION = Pin_8; adc2_data[11] : LOCATION = Pin_7; adc2_data[1] : LOCATION = Pin_19; adc2_data[2] : LOCATION = Pin_18; adc2_data[3] : LOCATION = Pin_17; adc2_data[4] : LOCATION = Pin_16; adc2_data[5] : LOCATION = Pin_15; adc2_data[6] : LOCATION = Pin_14; adc2_data[7] : LOCATION = Pin_13; adc2_data[8] : LOCATION = Pin_12; adc2_data[9] : LOCATION = Pin_11; adc3_data[0] : LOCATION = Pin_200; adc3_data[10] : LOCATION = Pin_184; adc3_data[11] : LOCATION = Pin_183; adc3_data[1] : LOCATION = Pin_197; adc3_data[2] : LOCATION = Pin_196; adc3_data[3] : LOCATION = Pin_195; adc3_data[4] : LOCATION = Pin_194; adc3_data[5] : LOCATION = Pin_193; adc3_data[6] : LOCATION = Pin_188; adc3_data[7] : LOCATION = Pin_187; adc3_data[8] : LOCATION = Pin_186; adc3_data[9] : LOCATION = Pin_185; adc4_data[0] : LOCATION = Pin_222; adc4_data[10] : LOCATION = Pin_203; adc4_data[11] : LOCATION = Pin_202; adc4_data[1] : LOCATION = Pin_219; adc4_data[2] : LOCATION = Pin_217; adc4_data[3] : LOCATION = Pin_216; adc4_data[4] : LOCATION = Pin_215; adc4_data[5] : LOCATION = Pin_214; adc4_data[6] : LOCATION = Pin_213; adc4_data[7] : LOCATION = Pin_208; adc4_data[8] : LOCATION = Pin_207; adc4_data[9] : LOCATION = Pin_206; adc_oeb[0] : LOCATION = Pin_228; adc_oeb[1] : LOCATION = Pin_21; adc_oeb[2] : LOCATION = Pin_181; adc_oeb[3] : LOCATION = Pin_218; adc_otr[0] : LOCATION = Pin_233; adc_otr[1] : LOCATION = Pin_6; adc_otr[2] : LOCATION = Pin_182; adc_otr[3] : LOCATION = Pin_201; adclk0 : LOCATION = Pin_224; adclk1 : LOCATION = Pin_226; clk0 : LOCATION = Pin_28; clk0 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk0 : IO_STANDARD = LVTTL; clk1 : LOCATION = Pin_29; clk1 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk1 : IO_STANDARD = LVTTL; clk3 : LOCATION = Pin_152; clk3 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk3 : IO_STANDARD = LVTTL; clk_120mhz : LOCATION = Pin_153; clk_120mhz : IO_STANDARD = LVTTL; clk_out : LOCATION = Pin_63; clk_out : IO_STANDARD = LVTTL; dac1_data[0] : LOCATION = Pin_165; dac1_data[10] : LOCATION = Pin_177; dac1_data[11] : LOCATION = Pin_178; dac1_data[12] : LOCATION = Pin_179; dac1_data[13] : LOCATION = Pin_180; dac1_data[1] : LOCATION = Pin_166; dac1_data[2] : LOCATION = Pin_167; dac1_data[3] : LOCATION = Pin_168; dac1_data[4] : LOCATION = Pin_169; dac1_data[5] : LOCATION = Pin_170; dac1_data[6] : LOCATION = Pin_173; dac1_data[7] : LOCATION = Pin_174; dac1_data[8] : LOCATION = Pin_175; dac1_data[9] : LOCATION = Pin_176; dac2_data[0] : LOCATION = Pin_159; dac2_data[10] : LOCATION = Pin_163; dac2_data[11] : LOCATION = Pin_139; dac2_data[12] : LOCATION = Pin_164; dac2_data[13] : LOCATION = Pin_138; dac2_data[1] : LOCATION = Pin_158; dac2_data[2] : LOCATION = Pin_160; dac2_data[3] : LOCATION = Pin_156; dac2_data[4] : LOCATION = Pin_161; dac2_data[5] : LOCATION = Pin_144; dac2_data[6] : LOCATION = Pin_162; dac2_data[7] : LOCATION = Pin_141; dac2_data[8] : LOCATION = Pin_143; dac2_data[9] : LOCATION = Pin_140; dac3_data[0] : LOCATION = Pin_122; dac3_data[10] : LOCATION = Pin_134; dac3_data[11] : LOCATION = Pin_135; dac3_data[12] : LOCATION = Pin_136; dac3_data[13] : LOCATION = Pin_137; dac3_data[1] : LOCATION = Pin_123; dac3_data[2] : LOCATION = Pin_124; dac3_data[3] : LOCATION = Pin_125; dac3_data[4] : LOCATION = Pin_126; dac3_data[5] : LOCATION = Pin_127; dac3_data[6] : LOCATION = Pin_128; dac3_data[7] : LOCATION = Pin_131; dac3_data[8] : LOCATION = Pin_132; dac3_data[9] : LOCATION = Pin_133; dac4_data[0] : LOCATION = Pin_104; dac4_data[10] : LOCATION = Pin_118; dac4_data[11] : LOCATION = Pin_119; dac4_data[12] : LOCATION = Pin_120; dac4_data[13] : LOCATION = Pin_121; dac4_data[1] : LOCATION = Pin_105; dac4_data[2] : LOCATION = Pin_106; dac4_data[3] : LOCATION = Pin_107; dac4_data[4] : LOCATION = Pin_108; dac4_data[5] : LOCATION = Pin_113; dac4_data[6] : LOCATION = Pin_114; dac4_data[7] : LOCATION = Pin_115; dac4_data[8] : LOCATION = Pin_116; dac4_data[9] : LOCATION = Pin_117; enable_rx : LOCATION = Pin_88; enable_tx : LOCATION = Pin_93; gndbus[0] : LOCATION = Pin_223; gndbus[0] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[0] : IO_STANDARD = LVTTL; gndbus[1] : LOCATION = Pin_225; gndbus[1] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[1] : IO_STANDARD = LVTTL; gndbus[2] : LOCATION = Pin_227; gndbus[2] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[2] : IO_STANDARD = LVTTL; gndbus[3] : LOCATION = Pin_62; gndbus[3] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[3] : IO_STANDARD = LVTTL; gndbus[4] : LOCATION = Pin_64; gndbus[4] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[4] : IO_STANDARD = LVTTL; misc_pins[0] : LOCATION = Pin_87; misc_pins[0] : IO_STANDARD = LVTTL; misc_pins[10] : LOCATION = Pin_76; misc_pins[10] : IO_STANDARD = LVTTL; misc_pins[11] : LOCATION = Pin_74; misc_pins[11] : IO_STANDARD = LVTTL; misc_pins[1] : LOCATION = Pin_86; misc_pins[1] : IO_STANDARD = LVTTL; misc_pins[2] : LOCATION = Pin_85; misc_pins[2] : IO_STANDARD = LVTTL; misc_pins[3] : LOCATION = Pin_84; misc_pins[3] : IO_STANDARD = LVTTL; misc_pins[4] : LOCATION = Pin_83; misc_pins[4] : IO_STANDARD = LVTTL; misc_pins[5] : LOCATION = Pin_82; misc_pins[5] : IO_STANDARD = LVTTL; misc_pins[6] : LOCATION = Pin_79; misc_pins[6] : IO_STANDARD = LVTTL; misc_pins[7] : LOCATION = Pin_78; misc_pins[7] : IO_STANDARD = LVTTL; misc_pins[8] : LOCATION = Pin_77; misc_pins[8] : IO_STANDARD = LVTTL; misc_pins[9] : LOCATION = Pin_75; misc_pins[9] : IO_STANDARD = LVTTL; reset : LOCATION = Pin_94; usbclk : LOCATION = Pin_55; usbctl[0] : LOCATION = Pin_56; usbctl[1] : LOCATION = Pin_54; usbctl[2] : LOCATION = Pin_53; usbctl[3] : LOCATION = Pin_58; usbctl[4] : LOCATION = Pin_57; usbctl[5] : LOCATION = Pin_44; usbdata[0] : LOCATION = Pin_73; usbdata[10] : LOCATION = Pin_41; usbdata[11] : LOCATION = Pin_39; usbdata[12] : LOCATION = Pin_38; usbdata[12] : IO_STANDARD = LVTTL; usbdata[13] : LOCATION = Pin_37; usbdata[14] : LOCATION = Pin_24; usbdata[15] : LOCATION = Pin_23; usbdata[1] : LOCATION = Pin_68; usbdata[2] : LOCATION = Pin_67; usbdata[3] : LOCATION = Pin_66; usbdata[4] : LOCATION = Pin_65; usbdata[5] : LOCATION = Pin_61; usbdata[6] : LOCATION = Pin_60; usbdata[7] : LOCATION = Pin_59; usbdata[8] : LOCATION = Pin_43; usbdata[9] : LOCATION = Pin_42; usbrdy[0] : LOCATION = Pin_45; usbrdy[1] : LOCATION = Pin_46; usbrdy[2] : LOCATION = Pin_47; usbrdy[3] : LOCATION = Pin_48; usbrdy[4] : LOCATION = Pin_49; usbrdy[5] : LOCATION = Pin_50; clear_status : LOCATION = Pin_99; } uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.esf000066400000000000000000000005441224274632000205330ustar00rootroot00000000000000SIMULATOR_SETTINGS { ESTIMATE_POWER_CONSUMPTION = OFF; GLITCH_INTERVAL = 1NS; GLITCH_DETECTION = OFF; SIMULATION_COVERAGE = ON; CHECK_OUTPUTS = OFF; SETUP_HOLD_DETECTION = OFF; POWER_ESTIMATION_START_TIME = "0 NS"; ADD_DEFAULT_PINS_TO_SIMULATION_OUTPUT_WAVEFORMS = ON; SIMULATION_MODE = TIMING; START_TIME = 0NS; USE_COMPILER_SETTINGS = mrfm; } uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.psf000066400000000000000000000224441224274632000205510ustar00rootroot00000000000000DEFAULT_DESIGN_ASSISTANT_SETTINGS { HCPY_ALOAD_SIGNALS = OFF; HCPY_VREF_PINS = OFF; HCPY_CAT = OFF; HCPY_ILLEGAL_HC_DEV_PKG = OFF; ACLK_RULE_IMSZER_ADOMAIN = OFF; ACLK_RULE_SZER_BTW_ACLK_DOMAIN = OFF; ACLK_RULE_NO_SZER_ACLK_DOMAIN = OFF; ACLK_CAT = OFF; SIGNALRACE_RULE_ASYNCHPIN_SYNCH_CLKPIN = OFF; SIGNALRACE_CAT = OFF; NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED = OFF; NONSYNCHSTRUCT_RULE_SRLATCH = OFF; NONSYNCHSTRUCT_RULE_DLATCH = OFF; NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR = OFF; NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN = OFF; NONSYNCHSTRUCT_RULE_RIPPLE_CLK = OFF; NONSYNCHSTRUCT_RULE_DELAY_CHAIN = OFF; NONSYNCHSTRUCT_RULE_REG_LOOP = OFF; NONSYNCHSTRUCT_RULE_COMBLOOP = OFF; NONSYNCHSTRUCT_CAT = OFF; NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE = OFF; TIMING_RULE_COIN_CLKEDGE = OFF; TIMING_RULE_SHIFT_REG = OFF; TIMING_RULE_HIGH_FANOUTS = OFF; TIMING_CAT = OFF; RESET_RULE_ALL = OFF; RESET_RULE_IMSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_UNSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_REG_ASNYCH = OFF; RESET_RULE_COMB_ASYNCH_RESET = OFF; RESET_RULE_IMSYNCH_EXRESET = OFF; RESET_RULE_UNSYNCH_EXRESET = OFF; RESET_RULE_INPINS_RESETNET = OFF; RESET_CAT = OFF; CLK_RULE_ALL = OFF; CLK_RULE_MIX_EDGES = OFF; CLK_RULE_CLKNET_CLKSPINES = OFF; CLK_RULE_INPINS_CLKNET = OFF; CLK_RULE_GATING_SCHEME = OFF; CLK_RULE_INV_CLOCK = OFF; CLK_RULE_COMB_CLOCK = OFF; CLK_CAT = OFF; HCPY_EXCEED_USER_IO_USAGE = OFF; HCPY_EXCEED_RAM_USAGE = OFF; NONSYNCHSTRUCT_RULE_ASYN_RAM = OFF; SIGNALRACE_RULE_TRISTATE = OFF; ASSG_RULE_MISSING_TIMING = OFF; ASSG_RULE_MISSING_FMAX = OFF; ASSG_CAT = OFF; } SYNTHESIS_FITTING_SETTINGS { AUTO_SHIFT_REGISTER_RECOGNITION = ON; AUTO_DSP_RECOGNITION = ON; AUTO_RAM_RECOGNITION = ON; REMOVE_DUPLICATE_LOGIC = ON; AUTO_TURBO_BIT = ON; AUTO_MERGE_PLLS = ON; AUTO_OPEN_DRAIN_PINS = ON; AUTO_PARALLEL_EXPANDERS = ON; AUTO_FAST_OUTPUT_ENABLE_REGISTERS = OFF; AUTO_FAST_OUTPUT_REGISTERS = OFF; AUTO_FAST_INPUT_REGISTERS = OFF; AUTO_CASCADE_CHAINS = ON; AUTO_CARRY_CHAINS = ON; AUTO_DELAY_CHAINS = ON; MAX7000_PARALLEL_EXPANDER_CHAIN_LENGTH = 4; PARALLEL_EXPANDER_CHAIN_LENGTH = 16; CASCADE_CHAIN_LENGTH = 2; STRATIX_CARRY_CHAIN_LENGTH = 70; MERCURY_CARRY_CHAIN_LENGTH = 48; FLEX10K_CARRY_CHAIN_LENGTH = 32; FLEX6K_CARRY_CHAIN_LENGTH = 32; CARRY_CHAIN_LENGTH = 48; CARRY_OUT_PINS_LCELL_INSERT = ON; NORMAL_LCELL_INSERT = ON; AUTO_LCELL_INSERTION = ON; ALLOW_XOR_GATE_USAGE = ON; AUTO_PACKED_REGISTERS_STRATIX = NORMAL; AUTO_PACKED_REGISTERS = OFF; AUTO_PACKED_REG_CYCLONE = NORMAL; FLEX10K_OPTIMIZATION_TECHNIQUE = AREA; FLEX6K_OPTIMIZATION_TECHNIQUE = AREA; MERCURY_OPTIMIZATION_TECHNIQUE = AREA; APEX20K_OPTIMIZATION_TECHNIQUE = SPEED; MAX7000_OPTIMIZATION_TECHNIQUE = SPEED; STRATIX_OPTIMIZATION_TECHNIQUE = SPEED; CYCLONE_OPTIMIZATION_TECHNIQUE = AREA; FLEX10K_TECHNOLOGY_MAPPER = LUT; FLEX6K_TECHNOLOGY_MAPPER = LUT; MERCURY_TECHNOLOGY_MAPPER = LUT; APEX20K_TECHNOLOGY_MAPPER = LUT; MAX7000_TECHNOLOGY_MAPPER = "PRODUCT TERM"; STRATIX_TECHNOLOGY_MAPPER = LUT; AUTO_IMPLEMENT_IN_ROM = OFF; AUTO_GLOBAL_MEMORY_CONTROLS = OFF; AUTO_GLOBAL_REGISTER_CONTROLS = ON; AUTO_GLOBAL_OE = ON; AUTO_GLOBAL_CLOCK = ON; USE_LPM_FOR_AHDL_OPERATORS = ON; LIMIT_AHDL_INTEGERS_TO_32_BITS = OFF; ENABLE_BUS_HOLD_CIRCUITRY = OFF; WEAK_PULL_UP_RESISTOR = OFF; TURBO_BIT = ON; MAX7000_IGNORE_SOFT_BUFFERS = OFF; IGNORE_SOFT_BUFFERS = ON; MAX7000_IGNORE_LCELL_BUFFERS = AUTO; IGNORE_LCELL_BUFFERS = OFF; IGNORE_ROW_GLOBAL_BUFFERS = OFF; IGNORE_GLOBAL_BUFFERS = OFF; IGNORE_CASCADE_BUFFERS = OFF; IGNORE_CARRY_BUFFERS = OFF; REMOVE_DUPLICATE_REGISTERS = ON; REMOVE_REDUNDANT_LOGIC_CELLS = OFF; ALLOW_POWER_UP_DONT_CARE = ON; PCI_IO = OFF; NOT_GATE_PUSH_BACK = ON; SLOW_SLEW_RATE = OFF; DSP_BLOCK_BALANCING = AUTO; STATE_MACHINE_PROCESSING = AUTO; } DEFAULT_HARDCOPY_SETTINGS { HARDCOPY_EXTERNAL_CLOCK_JITTER = "0.0 NS"; } DEFAULT_TIMING_REQUIREMENTS { INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; RUN_ALL_TIMING_ANALYSES = ON; IGNORE_CLOCK_SETTINGS = OFF; DEFAULT_HOLD_MULTICYCLE = "SAME AS MULTICYCLE"; CUT_OFF_IO_PIN_FEEDBACK = ON; CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; CUT_OFF_READ_DURING_WRITE_PATHS = ON; CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS = ON; DO_MIN_ANALYSIS = ON; DO_MIN_TIMING = OFF; NUMBER_OF_PATHS_TO_REPORT = 200; NUMBER_OF_DESTINATION_TO_REPORT = 10; NUMBER_OF_SOURCES_PER_DESTINATION_TO_REPORT = 10; MAX_SCC_SIZE = 50; } HDL_SETTINGS { VERILOG_INPUT_VERSION = VERILOG_2001; ENABLE_IP_DEBUG = OFF; VHDL_INPUT_VERSION = VHDL93; VHDL_SHOW_LMF_MAPPING_MESSAGES = OFF; } PROJECT_INFO(mrfm) { ORIGINAL_QUARTUS_VERSION = 3.0; PROJECT_CREATION_TIME_DATE = "00:14:04 JULY 13, 2003"; LAST_QUARTUS_VERSION = 3.0; SHOW_REGISTRATION_MESSAGE = ON; USER_LIBRARIES = "e:\usrp\fpga\megacells"; } THIRD_PARTY_EDA_TOOLS(mrfm) { EDA_DESIGN_ENTRY_SYNTHESIS_TOOL = ""; EDA_SIMULATION_TOOL = ""; EDA_TIMING_ANALYSIS_TOOL = ""; EDA_BOARD_DESIGN_TOOL = ""; EDA_FORMAL_VERIFICATION_TOOL = ""; EDA_RESYNTHESIS_TOOL = ""; } EDA_TOOL_SETTINGS(eda_design_synthesis) { EDA_INPUT_GND_NAME = GND; EDA_INPUT_VCC_NAME = VCC; EDA_SHOW_LMF_MAPPING_MESSAGES = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_INPUT_DATA_FORMAT = EDIF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_simulation) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_timing_analysis) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; EDA_LAUNCH_CMD_LINE_TOOL = OFF; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_board_design) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_formal_verification) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_palace) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; RESYNTHESIS_RETIMING = FULL; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; } CLOCK(clk_120mhz) { FMAX_REQUIREMENT = "120.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(usbclk) { FMAX_REQUIREMENT = "48.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(SCLK) { FMAX_REQUIREMENT = "1.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk0) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk1) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.py000066400000000000000000000107771224274632000204170ustar00rootroot00000000000000#!/usr/bin/env python # # This is mrfm_fft_sos.py # Modification of Matt's mrfm_fft.py that reads filter coefs from file # # Copyright 2004,2005 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # from gnuradio import gr, gru from gnuradio import usrp class source_c(usrp.source_c): def __init__(self,fpga_filename): usrp.source_c.__init__(self,which=0, decim_rate=64, nchan=2, mux=0x32103210, mode=0, fpga_filename=fpga_filename) self._write_9862(0,2,0x80) # Bypass ADC buffer, minimum gain self._write_9862(0,3,0x80) # Bypass ADC buffer, minimum gain self._write_9862(0,8,0) # TX PWR Down self._write_9862(0,10,0) # DAC offset self._write_9862(0,11,0) # DAC offset self._write_9862(0,14,0x80) # gain self._write_9862(0,16,0xff) # pga self._write_9862(0,18,0x0c) # TX IF self._write_9862(0,19,0x01) # TX Digital self._write_9862(0,20,0x00) # TX Mod # max/min values are +/-2, so scale is set to make 2 = 32767 self._write_fpga_reg(69,0x0e) # debug mux self._write_fpga_reg(5,-1) self._write_fpga_reg(7,-1) self._write_oe(0,0xffff, 0xffff) self._write_oe(1,0xffff, 0xffff) self._write_fpga_reg(14,0xf) self.decim = None def set_coeffs(self,frac_bits,b20,b10,b00,a20,a10,b21,b11,b01,a21,a11): def make_val(address,value): return (address << 16) | (value & 0xffff) # gain, scale already included in a's and b's from file self._write_fpga_reg(67,make_val(1,b20)) self._write_fpga_reg(67,make_val(2,b10)) self._write_fpga_reg(67,make_val(3,b00)) self._write_fpga_reg(67,make_val(4,a20)) self._write_fpga_reg(67,make_val(5,a10)) self._write_fpga_reg(67,make_val(7,b21)) self._write_fpga_reg(67,make_val(8,b11)) self._write_fpga_reg(67,make_val(9,b01)) self._write_fpga_reg(67,make_val(10,a21)) self._write_fpga_reg(67,make_val(11,a11)) self._write_fpga_reg(68,frac_bits) # Shift print "Biquad 0 : b2=%d b1=%d b0=%d a2=%d a1=%d" % (b20,b10,b00,a20,a10) print "Biquad 1 : b2=%d b1=%d b0=%d a2=%d a1=%d" % (b21,b11,b01,a21,a11) def set_decim_rate(self,rate=None): i=2 turn=1 a=1 b=1 while (rate>1) and (i<257): if (rate/i) * i == rate: if turn == 1: if a*i<257: a = a * i turn = 0 elif b*i<257: b = b * i turn = 0 else: print "Failed to set DECIMATOR" return self.decim elif b*i<257: b = b * i turn = 1 elif a*i<257: a = a * i turn = 1 else: print "Failed to set DECIMATOR" return self.decim rate=rate/i continue i = i + 1 if rate > 1: print "Failed to set DECIMATOR" return self.decim else: self.decim = a*b print "a = %d b = %d" % (a,b) self._write_fpga_reg(64,(a-1)*256+(b-1)) # Set actual decimation def decim_rate(self): return self.decim def set_center_freq(self,freq): self._write_fpga_reg(65,int(-freq/64e6*65536*65536)) # set center freq def set_compensator(self,a11,a12,a21,a22,shift): self._write_fpga_reg(70,a11) self._write_fpga_reg(71,a12) self._write_fpga_reg(72,a21) self._write_fpga_reg(73,a22) self._write_fpga_reg(74,shift) # comp shift uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.qpf000066400000000000000000000030011224274632000205330ustar00rootroot00000000000000# Copyright (C) 1991-2004 Altera Corporation # Any megafunction design, and related netlist (encrypted or decrypted), # support information, device programming or simulation file, and any other # associated documentation or information provided by Altera or a partner # under Altera's Megafunction Partnership Program may be used only # to program PLD devices (but not masked PLD devices) from Altera. Any # other use of such megafunction design, netlist, support information, # device programming or simulation file, or any other related documentation # or information is prohibited for any other purpose, including, but not # limited to modification, reverse engineering, de-compiling, or use with # any other silicon devices, unless such use is explicitly licensed under # a separate agreement with Altera or a megafunction partner. Title to the # intellectual property, including patents, copyrights, trademarks, trade # secrets, or maskworks, embodied in any such megafunction design, netlist, # support information, device programming or simulation file, or any other # related documentation or information provided by Altera or a megafunction # partner, remains with Altera, the megafunction partner, or their respective # licensors. No other licenses, including any licenses needed under any third # party's intellectual property, are provided herein. QUARTUS_VERSION = "4.0" DATE = "17:10:11 December 20, 2004" # Active Revisions PROJECT_REVISION = "mrfm" uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.qsf000066400000000000000000000450671224274632000205600ustar00rootroot00000000000000# Copyright (C) 1991-2005 Altera Corporation # Your use of Altera Corporation's design tools, logic functions # and other software and tools, and its AMPP partner logic # functions, and any output files any of the foregoing # (including device programming or simulation files), and any # associated documentation or information are expressly subject # to the terms and conditions of the Altera Program License # Subscription Agreement, Altera MegaCore Function License # Agreement, or other applicable license agreement, including, # without limitation, that your use is for the sole purpose of # programming logic devices manufactured by Altera and sold by # Altera or its authorized distributors. Please refer to the # applicable agreement for further details. # The default values for assignments are stored in the file # mrfm_assignment_defaults.qdf # If this file doesn't exist, and for assignments not listed, see file # assignment_defaults.qdf # Altera recommends that you do not modify this file. This # file is updated automatically by the Quartus II software # and any changes you make may be lost or overwritten. # Project-Wide Assignments # ======================== set_global_assignment -name ORIGINAL_QUARTUS_VERSION 3.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "00:14:04 JULY 13, 2003" set_global_assignment -name LAST_QUARTUS_VERSION "5.1 SP2" # Pin & Location Assignments # ========================== set_global_assignment -name RESERVE_PIN "AS INPUT TRI-STATED" set_location_assignment PIN_29 -to SCLK set_location_assignment PIN_117 -to SDI set_location_assignment PIN_28 -to usbclk set_location_assignment PIN_107 -to usbctl[0] set_location_assignment PIN_106 -to usbctl[1] set_location_assignment PIN_105 -to usbctl[2] set_location_assignment PIN_100 -to usbdata[0] set_location_assignment PIN_84 -to usbdata[10] set_location_assignment PIN_83 -to usbdata[11] set_location_assignment PIN_82 -to usbdata[12] set_location_assignment PIN_79 -to usbdata[13] set_location_assignment PIN_78 -to usbdata[14] set_location_assignment PIN_77 -to usbdata[15] set_location_assignment PIN_99 -to usbdata[1] set_location_assignment PIN_98 -to usbdata[2] set_location_assignment PIN_95 -to usbdata[3] set_location_assignment PIN_94 -to usbdata[4] set_location_assignment PIN_93 -to usbdata[5] set_location_assignment PIN_88 -to usbdata[6] set_location_assignment PIN_87 -to usbdata[7] set_location_assignment PIN_86 -to usbdata[8] set_location_assignment PIN_85 -to usbdata[9] set_location_assignment PIN_104 -to usbrdy[0] set_location_assignment PIN_101 -to usbrdy[1] set_location_assignment PIN_76 -to FX2_1 set_location_assignment PIN_75 -to FX2_2 set_location_assignment PIN_74 -to FX2_3 set_location_assignment PIN_116 -to io_rx_a[0] set_location_assignment PIN_115 -to io_rx_a[1] set_location_assignment PIN_114 -to io_rx_a[2] set_location_assignment PIN_113 -to io_rx_a[3] set_location_assignment PIN_108 -to io_rx_a[4] set_location_assignment PIN_195 -to io_rx_a[5] set_location_assignment PIN_196 -to io_rx_a[6] set_location_assignment PIN_197 -to io_rx_a[7] set_location_assignment PIN_200 -to io_rx_a[8] set_location_assignment PIN_201 -to io_rx_a[9] set_location_assignment PIN_202 -to io_rx_a[10] set_location_assignment PIN_203 -to io_rx_a[11] set_location_assignment PIN_206 -to io_rx_a[12] set_location_assignment PIN_207 -to io_rx_a[13] set_location_assignment PIN_208 -to io_rx_a[14] set_location_assignment PIN_214 -to io_rx_b[0] set_location_assignment PIN_215 -to io_rx_b[1] set_location_assignment PIN_216 -to io_rx_b[2] set_location_assignment PIN_217 -to io_rx_b[3] set_location_assignment PIN_218 -to io_rx_b[4] set_location_assignment PIN_219 -to io_rx_b[5] set_location_assignment PIN_222 -to io_rx_b[6] set_location_assignment PIN_223 -to io_rx_b[7] set_location_assignment PIN_224 -to io_rx_b[8] set_location_assignment PIN_225 -to io_rx_b[9] set_location_assignment PIN_226 -to io_rx_b[10] set_location_assignment PIN_227 -to io_rx_b[11] set_location_assignment PIN_228 -to io_rx_b[12] set_location_assignment PIN_233 -to io_rx_b[13] set_location_assignment PIN_234 -to io_rx_b[14] set_location_assignment PIN_175 -to io_tx_a[0] set_location_assignment PIN_176 -to io_tx_a[1] set_location_assignment PIN_177 -to io_tx_a[2] set_location_assignment PIN_178 -to io_tx_a[3] set_location_assignment PIN_179 -to io_tx_a[4] set_location_assignment PIN_180 -to io_tx_a[5] set_location_assignment PIN_181 -to io_tx_a[6] set_location_assignment PIN_182 -to io_tx_a[7] set_location_assignment PIN_183 -to io_tx_a[8] set_location_assignment PIN_184 -to io_tx_a[9] set_location_assignment PIN_185 -to io_tx_a[10] set_location_assignment PIN_186 -to io_tx_a[11] set_location_assignment PIN_187 -to io_tx_a[12] set_location_assignment PIN_188 -to io_tx_a[13] set_location_assignment PIN_193 -to io_tx_a[14] set_location_assignment PIN_73 -to io_tx_b[0] set_location_assignment PIN_68 -to io_tx_b[1] set_location_assignment PIN_67 -to io_tx_b[2] set_location_assignment PIN_66 -to io_tx_b[3] set_location_assignment PIN_65 -to io_tx_b[4] set_location_assignment PIN_64 -to io_tx_b[5] set_location_assignment PIN_63 -to io_tx_b[6] set_location_assignment PIN_62 -to io_tx_b[7] set_location_assignment PIN_61 -to io_tx_b[8] set_location_assignment PIN_60 -to io_tx_b[9] set_location_assignment PIN_59 -to io_tx_b[10] set_location_assignment PIN_58 -to io_tx_b[11] set_location_assignment PIN_57 -to io_tx_b[12] set_location_assignment PIN_56 -to io_tx_b[13] set_location_assignment PIN_55 -to io_tx_b[14] set_location_assignment PIN_152 -to master_clk set_location_assignment PIN_144 -to rx_a_a[0] set_location_assignment PIN_143 -to rx_a_a[1] set_location_assignment PIN_141 -to rx_a_a[2] set_location_assignment PIN_140 -to rx_a_a[3] set_location_assignment PIN_139 -to rx_a_a[4] set_location_assignment PIN_138 -to rx_a_a[5] set_location_assignment PIN_137 -to rx_a_a[6] set_location_assignment PIN_136 -to rx_a_a[7] set_location_assignment PIN_135 -to rx_a_a[8] set_location_assignment PIN_134 -to rx_a_a[9] set_location_assignment PIN_133 -to rx_a_a[10] set_location_assignment PIN_132 -to rx_a_a[11] set_location_assignment PIN_23 -to rx_a_b[0] set_location_assignment PIN_21 -to rx_a_b[1] set_location_assignment PIN_20 -to rx_a_b[2] set_location_assignment PIN_19 -to rx_a_b[3] set_location_assignment PIN_18 -to rx_a_b[4] set_location_assignment PIN_17 -to rx_a_b[5] set_location_assignment PIN_16 -to rx_a_b[6] set_location_assignment PIN_15 -to rx_a_b[7] set_location_assignment PIN_14 -to rx_a_b[8] set_location_assignment PIN_13 -to rx_a_b[9] set_location_assignment PIN_12 -to rx_a_b[10] set_location_assignment PIN_11 -to rx_a_b[11] set_location_assignment PIN_131 -to rx_b_a[0] set_location_assignment PIN_128 -to rx_b_a[1] set_location_assignment PIN_127 -to rx_b_a[2] set_location_assignment PIN_126 -to rx_b_a[3] set_location_assignment PIN_125 -to rx_b_a[4] set_location_assignment PIN_124 -to rx_b_a[5] set_location_assignment PIN_123 -to rx_b_a[6] set_location_assignment PIN_122 -to rx_b_a[7] set_location_assignment PIN_121 -to rx_b_a[8] set_location_assignment PIN_120 -to rx_b_a[9] set_location_assignment PIN_119 -to rx_b_a[10] set_location_assignment PIN_118 -to rx_b_a[11] set_location_assignment PIN_8 -to rx_b_b[0] set_location_assignment PIN_7 -to rx_b_b[1] set_location_assignment PIN_6 -to rx_b_b[2] set_location_assignment PIN_5 -to rx_b_b[3] set_location_assignment PIN_4 -to rx_b_b[4] set_location_assignment PIN_3 -to rx_b_b[5] set_location_assignment PIN_2 -to rx_b_b[6] set_location_assignment PIN_240 -to rx_b_b[7] set_location_assignment PIN_239 -to rx_b_b[8] set_location_assignment PIN_238 -to rx_b_b[9] set_location_assignment PIN_237 -to rx_b_b[10] set_location_assignment PIN_236 -to rx_b_b[11] set_location_assignment PIN_156 -to SDO set_location_assignment PIN_153 -to SEN_FPGA set_location_assignment PIN_159 -to tx_a[0] set_location_assignment PIN_160 -to tx_a[1] set_location_assignment PIN_161 -to tx_a[2] set_location_assignment PIN_162 -to tx_a[3] set_location_assignment PIN_163 -to tx_a[4] set_location_assignment PIN_164 -to tx_a[5] set_location_assignment PIN_165 -to tx_a[6] set_location_assignment PIN_166 -to tx_a[7] set_location_assignment PIN_167 -to tx_a[8] set_location_assignment PIN_168 -to tx_a[9] set_location_assignment PIN_169 -to tx_a[10] set_location_assignment PIN_170 -to tx_a[11] set_location_assignment PIN_173 -to tx_a[12] set_location_assignment PIN_174 -to tx_a[13] set_location_assignment PIN_38 -to tx_b[0] set_location_assignment PIN_39 -to tx_b[1] set_location_assignment PIN_41 -to tx_b[2] set_location_assignment PIN_42 -to tx_b[3] set_location_assignment PIN_43 -to tx_b[4] set_location_assignment PIN_44 -to tx_b[5] set_location_assignment PIN_45 -to tx_b[6] set_location_assignment PIN_46 -to tx_b[7] set_location_assignment PIN_47 -to tx_b[8] set_location_assignment PIN_48 -to tx_b[9] set_location_assignment PIN_49 -to tx_b[10] set_location_assignment PIN_50 -to tx_b[11] set_location_assignment PIN_53 -to tx_b[12] set_location_assignment PIN_54 -to tx_b[13] set_location_assignment PIN_158 -to TXSYNC_A set_location_assignment PIN_37 -to TXSYNC_B set_location_assignment PIN_235 -to io_rx_b[15] set_location_assignment PIN_24 -to io_tx_b[15] set_location_assignment PIN_213 -to io_rx_a[15] set_location_assignment PIN_194 -to io_tx_a[15] set_location_assignment PIN_1 -to MYSTERY_SIGNAL # Timing Assignments # ================== set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF # Analysis & Synthesis Assignments # ================================ set_global_assignment -name SAVE_DISK_SPACE OFF set_global_assignment -name DEVICE_FILTER_PACKAGE "ANY QFP" set_global_assignment -name DEVICE_FILTER_PIN_COUNT 240 set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "" set_global_assignment -name FAMILY Cyclone set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name TOP_LEVEL_ENTITY mrfm set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF set_global_assignment -name USER_LIBRARIES "e:\\usrp\\fpga\\megacells" set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON # Fitter Assignments # ================== set_global_assignment -name DEVICE EP1C12Q240C8 set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_global_assignment -name OPTIMIZE_HOLD_TIMING OFF set_global_assignment -name OPTIMIZE_TIMING "NORMAL COMPILATION" set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC ON set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING ON set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT EXTRA set_global_assignment -name INC_PLC_MODE OFF set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF set_instance_assignment -name IO_STANDARD LVTTL -to usbdata[12] set_global_assignment -name STRATIX_DEVICE_IO_STANDARD LVTTL set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 # Timing Analysis Assignments # =========================== set_global_assignment -name MAX_SCC_SIZE 50 # EDA Netlist Writer Assignments # ============================== set_global_assignment -name EDA_SIMULATION_TOOL "" set_global_assignment -name EDA_TIMING_ANALYSIS_TOOL "" set_global_assignment -name EDA_BOARD_DESIGN_TOOL "" set_global_assignment -name EDA_FORMAL_VERIFICATION_TOOL "" set_global_assignment -name EDA_RESYNTHESIS_TOOL "" # Assembler Assignments # ===================== set_global_assignment -name USE_CONFIGURATION_DEVICE OFF set_global_assignment -name GENERATE_RBF_FILE ON set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF # Simulator Assignments # ===================== set_global_assignment -name START_TIME "0 ns" set_global_assignment -name GLITCH_INTERVAL "1 ns" # Design Assistant Assignments # ============================ set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF set_global_assignment -name ASSG_CAT OFF set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF set_global_assignment -name CLK_CAT OFF set_global_assignment -name CLK_RULE_COMB_CLOCK OFF set_global_assignment -name CLK_RULE_INV_CLOCK OFF set_global_assignment -name CLK_RULE_GATING_SCHEME OFF set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF set_global_assignment -name CLK_RULE_MIX_EDGES OFF set_global_assignment -name RESET_CAT OFF set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name TIMING_CAT OFF set_global_assignment -name TIMING_RULE_SHIFT_REG OFF set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF set_global_assignment -name NONSYNCHSTRUCT_CAT OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF set_global_assignment -name SIGNALRACE_CAT OFF set_global_assignment -name ACLK_CAT OFF set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF set_global_assignment -name HCPY_CAT OFF set_global_assignment -name HCPY_VREF_PINS OFF # SignalTap II Assignments # ======================== set_global_assignment -name HUB_ENTITY_NAME SLD_HUB set_global_assignment -name HUB_INSTANCE_NAME SLD_HUB_INST set_global_assignment -name ENABLE_SIGNALTAP OFF # LogicLock Region Assignments # ============================ set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF # ----------------- # start CLOCK(SCLK) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id SCLK set_global_assignment -name FMAX_REQUIREMENT "1 MHz" -section_id SCLK set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id SCLK # end CLOCK(SCLK) # --------------- # ----------------------- # start CLOCK(master_clk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id master_clk set_global_assignment -name FMAX_REQUIREMENT "64 MHz" -section_id master_clk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id master_clk # end CLOCK(master_clk) # --------------------- # ------------------- # start CLOCK(usbclk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id usbclk set_global_assignment -name FMAX_REQUIREMENT "48 MHz" -section_id usbclk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id usbclk # end CLOCK(usbclk) # ----------------- # ---------------------- # start ENTITY(mrfm) # Timing Assignments # ================== set_instance_assignment -name CLOCK_SETTINGS SCLK -to SCLK set_instance_assignment -name CLOCK_SETTINGS usbclk -to usbclk set_instance_assignment -name CLOCK_SETTINGS master_clk -to master_clk # end ENTITY(mrfm) # -------------------- set_global_assignment -name PHYSICAL_SYNTHESIS_ASYNCHRONOUS_SIGNAL_PIPELINING ON set_global_assignment -name SMART_RECOMPILE ON set_global_assignment -name VERILOG_FILE mrfm.vh set_global_assignment -name VERILOG_FILE biquad_2stage.v set_global_assignment -name VERILOG_FILE mrfm_compensator.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/ram16.v set_global_assignment -name VERILOG_FILE mrfm_proc.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_4k.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mult.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/ram16_2sum.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/coeff_rom.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/halfband_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mac.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/coeff_ram.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_dcoffset.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/adc_interface.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/io_pins.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/setting_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/bidir_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_int_shifter.v set_global_assignment -name VERILOG_FILE ../../megacells/clk_doubler.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/gen_sync.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/master_control.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_2k.v set_global_assignment -name VERILOG_FILE ../../megacells/bustri.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/phase_acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_interp.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic_stage.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic.v set_global_assignment -name VERILOG_FILE mrfm.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/clk_divider.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/serial_io.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/strobe_gen.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/sign_extend.v set_global_assignment -name FITTER_EFFORT "STANDARD FIT"uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.v000066400000000000000000000152711224274632000202260ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Top level module for a full setup with DUCs and DDCs // Uncomment the following to include optional circuitry `include "mrfm.vh" `include "../../common/fpga_regs_common.v" `include "../../common/fpga_regs_standard.v" module mrfm (output MYSTERY_SIGNAL, input master_clk, input SCLK, input SDI, inout SDO, input SEN_FPGA, input FX2_1, output FX2_2, output FX2_3, input wire [11:0] rx_a_a, input wire [11:0] rx_b_a, input wire [11:0] rx_a_b, input wire [11:0] rx_b_b, output wire [13:0] tx_a, output wire [13:0] tx_b, output wire TXSYNC_A, output wire TXSYNC_B, // USB interface input usbclk, input wire [2:0] usbctl, output wire [1:0] usbrdy, inout [15:0] usbdata, // NB Careful, inout // These are the general purpose i/o's that go to the daughterboard slots inout wire [15:0] io_tx_a, inout wire [15:0] io_tx_b, inout wire [15:0] io_rx_a, inout wire [15:0] io_rx_b ); wire [15:0] debugdata,debugctrl; assign MYSTERY_SIGNAL = 1'b0; wire clk64; wire WR = usbctl[0]; wire RD = usbctl[1]; wire OE = usbctl[2]; wire have_space, have_pkt_rdy; assign usbrdy[0] = have_space; assign usbrdy[1] = have_pkt_rdy; wire tx_underrun, rx_overrun; wire clear_status = FX2_1; assign FX2_2 = rx_overrun; assign FX2_3 = tx_underrun; wire [15:0] usbdata_out; wire [3:0] dac0mux,dac1mux,dac2mux,dac3mux; wire tx_realsignals; wire [3:0] rx_numchan; wire [15:0] tx_debugbus, rx_debugbus; wire enable_tx, enable_rx; wire tx_dsp_reset, rx_dsp_reset, tx_bus_reset, rx_bus_reset; wire [7:0] settings; // Tri-state bus macro bustri bustri( .data(usbdata_out),.enabledt(OE),.tridata(usbdata) ); assign clk64 = master_clk; wire [15:0] ch0tx,ch1tx,ch2tx,ch3tx; wire [15:0] ch0rx,ch1rx,ch2rx,ch3rx,ch4rx,ch5rx,ch6rx,ch7rx; wire serial_strobe; wire [6:0] serial_addr; wire [31:0] serial_data; ///////////////////////////////////////////////////////////////////////////////////////////////////// setting_reg #(`FR_TX_MUX) sr_txmux(.clock(clk64),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({dac3mux,dac2mux,dac1mux,dac0mux,tx_realsignals,tx_numchan})); ////////////////////////////////////////////////////////////////////////////////////////////////////// // Signal Processing Chain reg [15:0] adc0; wire [15:0] dac0; wire [15:0] i,q,ip,qp; wire strobe_out; wire sync_out; always @(posedge clk64) adc0 <= #1 {rx_a_a[11],rx_a_a[11:0],3'b0}; wire [15:0] adc0_corr; rx_dcoffset #(0)rx_dcoffset0(.clock(clk64),.enable(1'b1),.reset(reset),.adc_in(adc0),.adc_out(adc0_corr), .serial_addr(7'd0),.serial_data(32'd0),.serial_strobe(1'b0)); //wire [63:0] filt_debug = 64'd0; mrfm_proc mrfm_proc(.clock(clk64),.reset(rx_dsp_reset),.enable(enable_rx), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .signal_in(adc0_corr),.signal_out(dac0),.sync_out(sync_out), .i(i),.q(q),.ip(ip),.qp(qp),.strobe_out(strobe_out), .debugbus( /* filt_debug */ )); wire txsync = 1'b0; assign TXSYNC_A = txsync; assign TXSYNC_B = txsync; assign tx_a = dac0[15:2]; ////////////////////////////////////////////////////////////////////////////////////////////////// // Data Collection on RX Buffer assign rx_numchan[0] = 1'b0; setting_reg #(`FR_RX_MUX) sr_rxmux(.clock(clk64),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr), .in(serial_data),.out(rx_numchan[3:1])); rx_buffer rx_buffer ( .usbclk(usbclk),.bus_reset(rx_bus_reset),.reset(rx_dsp_reset), .usbdata(usbdata_out),.RD(RD),.have_pkt_rdy(have_pkt_rdy),.rx_overrun(rx_overrun), .channels(rx_numchan), .ch_0(i),.ch_1(q), .ch_2(ip),.ch_3(qp), .ch_4(16'd0),.ch_5(16'd0), .ch_6(16'd0),.ch_7(16'd0), .rxclk(clk64),.rxstrobe(strobe_out), .clear_status(clear_status), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .debugbus(rx_debugbus) ); ////////////////////////////////////////////////////////////////////////////// // Control Functions wire [31:0] capabilities = 32'd2; serial_io serial_io ( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI), .enable(SEN_FPGA),.reset(1'b0),.serial_data_out(SDO), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .readback_0({io_rx_a,io_tx_a}),.readback_1({io_rx_b,io_tx_b}),.readback_2(capabilities),.readback_3(32'hf0f0931a) ); wire [15:0] reg_0,reg_1,reg_2,reg_3; master_control master_control ( .master_clk(clk64),.usbclk(usbclk), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .tx_bus_reset(tx_bus_reset),.rx_bus_reset(rx_bus_reset), .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .interp_rate(interp_rate),.decim_rate(decim_rate), .tx_sample_strobe(tx_sample_strobe),.strobe_interp(strobe_interp), .rx_sample_strobe(rx_sample_strobe),.strobe_decim(strobe_decim), .tx_empty(tx_empty), .debug_0({15'd0,sync_out}), //filt_debug[63:48]), .debug_1({15'd0,sync_out}), //filt_debug[47:32]), .debug_2({15'd0,sync_out}), //filt_debug[31:16]), .debug_3({15'd0,sync_out}), //filt_debug[15:0]), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3) ); io_pins io_pins (.io_0(io_tx_a),.io_1(io_rx_a),.io_2(io_tx_b),.io_3(io_rx_b), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3), .clock(clk64),.rx_reset(rx_dsp_reset),.tx_reset(tx_dsp_reset), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe)); endmodule // mrfm uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm.vh000066400000000000000000000012371224274632000203730ustar00rootroot00000000000000 // MRFM Register defines `define FR_MRFM_DECIM 7'd64 `define FR_MRFM_FREQ 7'd65 `define FR_MRFM_PHASE 7'd66 `define FR_MRFM_IIR_COEFF 7'd67 `define FR_MRFM_IIR_SHIFT 7'd68 `define FR_MRFM_DEBUG 7'd69 `define FR_MRFM_COMP_A11 7'd70 `define FR_MRFM_COMP_A12 7'd71 `define FR_MRFM_COMP_A21 7'd72 `define FR_MRFM_COMP_A22 7'd73 `define FR_MRFM_COMP_SHIFT 7'd74 `define FR_USER_11 7'd75 `define FR_USER_12 7'd76 `define FR_USER_13 7'd77 `define FR_USER_14 7'd78 `define FR_USER_15 7'd79 uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm_compensator.v000066400000000000000000000053511224274632000226360ustar00rootroot00000000000000 module mrfm_compensator (input clock, input reset, input strobe_in, input serial_strobe, input [6:0] serial_addr, input [31:0] serial_data, input [15:0] i_in, input [15:0] q_in, output reg [15:0] i_out, output reg [15:0] q_out); wire [15:0] a11,a12,a21,a22; reg [15:0] i_in_reg, q_in_reg; wire [30:0] product; reg [3:0] phase; wire [15:0] data,coeff; wire [7:0] shift; wire [33:0] accum; wire [15:0] scaled_accum; wire enable_acc; setting_reg #(`FR_MRFM_COMP_A11) sr_a11(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(a11),.changed()); setting_reg #(`FR_MRFM_COMP_A12) sr_a12(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(a12),.changed()); setting_reg #(`FR_MRFM_COMP_A21) sr_a21(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(a21),.changed()); setting_reg #(`FR_MRFM_COMP_A22) sr_a22(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(a22),.changed()); setting_reg #(`FR_MRFM_COMP_SHIFT) sr_cshift(.clock(clock),.reset(reset), .strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out(shift),.changed()); mult mult (.clock(clock),.x(data),.y(coeff),.product(product),.enable_in(1'b1),.enable_out() ); acc acc (.clock(clock),.reset(reset),.clear(clear_acc),.enable_in(enable_acc),.enable_out(), .addend(product),.sum(accum) ); shifter shifter (.in(accum),.out(scaled_accum),.shift(shift)); always @(posedge clock) if(reset) begin i_in_reg <= #1 16'd0; q_in_reg <= #1 16'd0; end else if(strobe_in) begin i_in_reg <= #1 i_in; q_in_reg <= #1 q_in; end always @(posedge clock) if(reset) phase <= #1 4'd0; else if(strobe_in) phase <= #1 4'd1; else if(strobe_in != 4'd8) phase <= #1 phase + 4'd1; assign data = ((phase == 4'd1)||(phase === 4'd4)) ? i_in_reg : ((phase == 4'd2)||(phase == 4'd5)) ? q_in_reg : 16'd0; assign coeff = (phase == 4'd1) ? a11 : (phase == 4'd2) ? a12 : (phase == 4'd4) ? a21 : (phase == 4'd5) ? a22 : 16'd0; assign clear_acc = (phase == 4'd0) || (phase == 4'd1) || (phase == 4'd4) || (phase==4'd8); assign enable_acc = ~clear_acc; always @(posedge clock) if(reset) i_out <= #1 16'd0; else if(phase == 4'd4) i_out <= #1 scaled_accum; always @(posedge clock) if(reset) q_out <= #1 16'd0; else if(phase == 4'd7) q_out <= #1 scaled_accum; endmodule // mrfm_compensator uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm_fft.py000077500000000000000000000271201224274632000212470ustar00rootroot00000000000000#!/usr/bin/env python # # This is mrfm_fft_sos.py # Modification of Matt's mrfm_fft.py that reads filter coefs from file # # Copyright 2004,2005 Free Software Foundation, Inc. # # This file is part of GNU Radio # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # from gnuradio import gr, gru from gnuradio import usrp from gnuradio import eng_notation from gnuradio.eng_option import eng_option from gnuradio.wxgui import stdgui, fftsink, waterfallsink, scopesink, form, slider from optparse import OptionParser import wx import sys import mrfm def pick_subdevice(u): """ The user didn't specify a subdevice on the command line. If there's a daughterboard on A, select A. If there's a daughterboard on B, select B. Otherwise, select A. """ if u.db[0][0].dbid() >= 0: # dbid is < 0 if there's no d'board or a problem return (0, 0) if u.db[1][0].dbid() >= 0: return (1, 0) return (0, 0) def read_ints(filename): try: f = open(filename) ints = [ int(i) for i in f.read().split() ] f.close() return ints except: return [] class app_flow_graph(stdgui.gui_flow_graph): def __init__(self, frame, panel, vbox, argv): stdgui.gui_flow_graph.__init__(self) self.frame = frame self.panel = panel parser = OptionParser(option_class=eng_option) parser.add_option("-R", "--rx-subdev-spec", type="subdev", default=None, help="select USRP Rx side A or B (default=first one with a daughterboard)") parser.add_option("-d", "--decim", type="int", default=16, help="set fgpa decimation rate to DECIM [default=%default]") parser.add_option("-f", "--freq", type="eng_float", default=None, help="set frequency to FREQ", metavar="FREQ") parser.add_option("-g", "--gain", type="eng_float", default=None, help="set gain in dB (default is midpoint)") parser.add_option("-W", "--waterfall", action="store_true", default=False, help="Enable waterfall display") parser.add_option("-8", "--width-8", action="store_true", default=False, help="Enable 8-bit samples across USB") parser.add_option("-S", "--oscilloscope", action="store_true", default=False, help="Enable oscilloscope display") parser.add_option("-F", "--filename", default=None, help="Name of file with filter coefficients") parser.add_option("-C", "--cfilename", default=None, help="Name of file with compensator coefficients") parser.add_option("-B", "--bitstream", default="mrfm.rbf", help="Name of FPGA Bitstream file (.rbf)") parser.add_option("-n", "--frame-decim", type="int", default=20, help="set oscope frame decimation factor to n [default=12]") (options, args) = parser.parse_args() if len(args) != 0: parser.print_help() sys.exit(1) self.show_debug_info = True # default filter coefs b00 = b01 = 16384 b10 = b20 = a10 = a20 = b11 = b21 = a11 = a21 = 0 ba = read_ints(options.filename) if len(ba) >= 6: b00 = ba[0]; b10 = ba[1]; b20 = ba[2]; a10 = ba[4]; a20 = ba[5] if len(ba) >= 12: b01 = ba[6]; b11 = ba[7]; b21 = ba[8]; a11 = ba[10]; a21=ba[11] print b00, b10, b20, a10, a20, b01, b11, b21, a11, a21 # default compensator coefficients c11 = c22 = 1 c12 = c21 = cscale = 0 cs = read_ints(options.cfilename) if len(cs) >= 5: c11 = cs[0]; c12 = cs[1]; c21 = cs[2]; c22 = cs[3]; cscale = cs[4] print c11, c12, c21, c22, cscale # build the graph self.u = mrfm.source_c(options.bitstream) self.u.set_decim_rate(options.decim) self.u.set_center_freq(options.freq) frac_bits = 14 self.u.set_coeffs(frac_bits,b20,b10,b00,a20,a10,b21,b11,b01,a21,a11) self.u.set_compensator(c11,c12,c21,c22,cscale) if options.rx_subdev_spec is None: options.rx_subdev_spec = pick_subdevice(self.u) self.u.set_mux(usrp.determine_rx_mux_value(self.u, options.rx_subdev_spec)) if options.width_8: width = 8 shift = 8 format = self.u.make_format(width, shift) print "format =", hex(format) r = self.u.set_format(format) print "set_format =", r # determine the daughterboard subdevice we're using self.subdev = usrp.selected_subdev(self.u, options.rx_subdev_spec) #input_rate = self.u.adc_freq() / self.u.decim_rate() input_rate = self.u.adc_freq() / options.decim # fft_rate = 15 fft_rate = 5 self.deint = gr.deinterleave(gr.sizeof_gr_complex) self.connect(self.u,self.deint) if options.waterfall: self.scope1=waterfallsink.waterfall_sink_c (self, panel, fft_size=1024, sample_rate=input_rate, fft_rate=fft_rate) self.scope2=waterfallsink.waterfall_sink_c (self, panel, fft_size=1024, sample_rate=input_rate, fft_rate=fft_rate) elif options.oscilloscope: self.scope1 = scopesink.scope_sink_c(self, panel, sample_rate=input_rate,frame_decim=options.frame_decim) # added option JPJ 4/21/2006 self.scope2 = scopesink.scope_sink_c(self, panel, sample_rate=input_rate,frame_decim=options.frame_decim) else: self.scope1 = fftsink.fft_sink_c (self, panel, fft_size=1024, sample_rate=input_rate, fft_rate=fft_rate) self.scope2 = fftsink.fft_sink_c (self, panel, fft_size=1024, sample_rate=input_rate, fft_rate=fft_rate) # Show I, I' on top scope panel, Q, Q' on bottom #self.fin = gr.complex_to_float() #self.fout = gr.complex_to_float() #self.connect((self.deint,0), self.fin) #self.connect((self.deint,1), self.fout) #self.ii = gr.float_to_complex() #self.qq = gr.float_to_complex() #self.connect((self.fin,0), (self.ii,0)) #self.connect((self.fout,0), (self.ii,1)) #self.connect((self.fin,1), (self.qq,0)) #self.connect((self.fout,1), (self.qq,1)) #self.connect(self.ii, self.scope1) #self.connect(self.qq, self.scope2) self.connect ((self.deint,0),self.scope1) self.connect ((self.deint,1),self.scope2) self._build_gui(vbox) # set initial values if options.gain is None: # if no gain was specified, use the mid-point in dB g = self.subdev.gain_range() options.gain = float(g[0]+g[1])/2 if options.freq is None: # if no freq was specified, use the mid-point r = self.subdev.freq_range() options.freq = float(r[0]+r[1])/2 self.set_gain(options.gain) if not(self.set_freq(options.freq)): self._set_status_msg("Failed to set initial frequency") if self.show_debug_info: self.myform['decim'].set_value(self.u.decim_rate()) self.myform['fs@usb'].set_value(self.u.adc_freq() / self.u.decim_rate()) self.myform['dbname'].set_value(self.subdev.name()) def _set_status_msg(self, msg): self.frame.GetStatusBar().SetStatusText(msg, 0) def _build_gui(self, vbox): def _form_set_freq(kv): return self.set_freq(kv['freq']) vbox.Add(self.scope1.win, 10, wx.EXPAND) vbox.Add(self.scope2.win, 10, wx.EXPAND) # add control area at the bottom self.myform = myform = form.form() hbox = wx.BoxSizer(wx.HORIZONTAL) hbox.Add((5,0), 0, 0) myform['freq'] = form.float_field( parent=self.panel, sizer=hbox, label="Center freq", weight=1, callback=myform.check_input_and_call(_form_set_freq, self._set_status_msg)) hbox.Add((5,0), 0, 0) g = self.subdev.gain_range() myform['gain'] = form.slider_field(parent=self.panel, sizer=hbox, label="Gain", weight=3, min=int(g[0]), max=int(g[1]), callback=self.set_gain) hbox.Add((5,0), 0, 0) vbox.Add(hbox, 0, wx.EXPAND) self._build_subpanel(vbox) def _build_subpanel(self, vbox_arg): # build a secondary information panel (sometimes hidden) # FIXME figure out how to have this be a subpanel that is always # created, but has its visibility controlled by foo.Show(True/False) if not(self.show_debug_info): return panel = self.panel vbox = vbox_arg myform = self.myform #panel = wx.Panel(self.panel, -1) #vbox = wx.BoxSizer(wx.VERTICAL) hbox = wx.BoxSizer(wx.HORIZONTAL) hbox.Add((5,0), 0) myform['decim'] = form.static_float_field( parent=panel, sizer=hbox, label="Decim") hbox.Add((5,0), 1) myform['fs@usb'] = form.static_float_field( parent=panel, sizer=hbox, label="Fs@USB") hbox.Add((5,0), 1) myform['dbname'] = form.static_text_field( parent=panel, sizer=hbox) hbox.Add((5,0), 1) myform['baseband'] = form.static_float_field( parent=panel, sizer=hbox, label="Analog BB") hbox.Add((5,0), 1) myform['ddc'] = form.static_float_field( parent=panel, sizer=hbox, label="DDC") hbox.Add((5,0), 0) vbox.Add(hbox, 0, wx.EXPAND) def set_freq(self, target_freq): """ Set the center frequency we're interested in. @param target_freq: frequency in Hz @rypte: bool Tuning is a two step process. First we ask the front-end to tune as close to the desired frequency as it can. Then we use the result of that operation and our target_frequency to determine the value for the digital down converter. """ r = self.u.tune(0, self.subdev, target_freq) if r: self.myform['freq'].set_value(target_freq) # update displayed value if self.show_debug_info: self.myform['baseband'].set_value(r.baseband_freq) self.myform['ddc'].set_value(r.dxc_freq) return True return False def set_gain(self, gain): self.myform['gain'].set_value(gain) # update displayed value self.subdev.set_gain(gain) def main (): app = stdgui.stdapp(app_flow_graph, "USRP FFT", nstatus=1) app.MainLoop() if __name__ == '__main__': main () uhd-3.5.5/fpga/usrp1/toplevel/mrfm/mrfm_proc.v000066400000000000000000000103411224274632000212420ustar00rootroot00000000000000 `include "mrfm.vh" `include "../../common/fpga_regs_common.v" `include "../../common/fpga_regs_standard.v" module mrfm_proc (input clock, input reset, input enable, input [6:0] serial_addr, input [31:0] serial_data, input serial_strobe, input [15:0] signal_in, output wire [15:0] signal_out, output wire sync_out, output wire [15:0] i, output wire [15:0] q, output wire [15:0] ip, output wire [15:0] qp, output wire strobe_out, output wire [63:0] debugbus); // Strobes wire sample_strobe, strobe_0, strobe_1, strobe_2; assign sample_strobe = 1'b1; wire [7:0] rate_0, rate_1, rate_2; setting_reg #(`FR_MRFM_DECIM) sr_decim(.clock(clock),.reset(reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out({rate_2,rate_1,rate_0})); strobe_gen strobe_gen_0 ( .clock(clock),.reset(reset),.enable(enable), .rate(rate_0),.strobe_in(sample_strobe),.strobe(strobe_0) ); strobe_gen strobe_gen_1 ( .clock(clock),.reset(reset),.enable(enable), .rate(rate_1),.strobe_in(strobe_0),.strobe(strobe_1) ); wire [31:0] phase; assign sync_out = phase[31]; wire [15:0] i_decim_0, i_decim_1, i_decim_2; wire [15:0] q_decim_0, q_decim_1, q_decim_2; wire [15:0] i_interp_0, i_interp_1, i_interp_2; wire [15:0] q_interp_0, q_interp_1, q_interp_2; wire [15:0] i_filt, q_filt, i_comp, q_comp; assign ip=i_comp; assign qp=q_comp; phase_acc #(`FR_MRFM_FREQ,`FR_MRFM_PHASE,32) rx_phase_acc (.clk(clock),.reset(reset),.enable(enable), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .strobe(sample_strobe),.phase(phase) ); cordic rx_cordic (.clock(clock),.reset(reset),.enable(enable), .xi(signal_in),.yi(16'd0),.zi(phase[31:16]), .xo(i_decim_0),.yo(q_decim_0),.zo() ); cic_decim cic_decim_i_0 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_0),.strobe_in(sample_strobe),.strobe_out(strobe_0), .signal_in(i_decim_0),.signal_out(i_decim_1)); cic_decim cic_decim_i_1 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_1),.strobe_in(strobe_0),.strobe_out(strobe_1), .signal_in(i_decim_1),.signal_out(i)); cic_decim cic_decim_q_0 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_0),.strobe_in(sample_strobe),.strobe_out(strobe_0), .signal_in(q_decim_0),.signal_out(q_decim_1)); cic_decim cic_decim_q_1 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_1),.strobe_in(strobe_0),.strobe_out(strobe_1), .signal_in(q_decim_1),.signal_out(q)); assign strobe_out = strobe_1; biquad_2stage iir_i (.clock(clock),.reset(reset),.strobe_in(strobe_1), .serial_strobe(serial_strobe),.serial_addr(serial_addr),.serial_data(serial_data), .sample_in(i),.sample_out(i_filt),.debugbus(debugbus)); biquad_2stage iir_q (.clock(clock),.reset(reset),.strobe_in(strobe_1), .serial_strobe(serial_strobe),.serial_addr(serial_addr),.serial_data(serial_data), .sample_in(q),.sample_out(q_filt),.debugbus()); mrfm_compensator compensator (.clock(clock),.reset(reset),.strobe_in(strobe_1), .serial_strobe(serial_strobe),.serial_addr(serial_addr),.serial_data(serial_data), .i_in(i_filt),.q_in(q_filt),.i_out(i_comp),.q_out(q_comp)); cic_interp cic_interp_i_0 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_1),.strobe_in(strobe_1),.strobe_out(strobe_0), .signal_in(i_comp),.signal_out(i_interp_0)); cic_interp cic_interp_i_1 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_0),.strobe_in(strobe_0),.strobe_out(sample_strobe), .signal_in(i_interp_0),.signal_out(i_interp_1)); cic_interp cic_interp_q_0 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_1),.strobe_in(strobe_1),.strobe_out(strobe_0), .signal_in(q_comp),.signal_out(q_interp_0)); cic_interp cic_interp_q_1 (.clock(clock),.reset(reset),.enable(enable), .rate(rate_0),.strobe_in(strobe_0),.strobe_out(sample_strobe), .signal_in(q_interp_0),.signal_out(q_interp_1)); cordic tx_cordic (.clock(clock),.reset(reset),.enable(enable), .xi(i_interp_1),.yi(q_interp_1),.zi(-phase[31:16]), .xo(signal_out),.yo(),.zo() ); endmodule // mrfm_proc uhd-3.5.5/fpga/usrp1/toplevel/mrfm/shifter.v000066400000000000000000000072511224274632000207300ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2005,2006 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module shifter(input wire [33:0] in, output wire [15:0] out, input wire [7:0] shift); // Wish we could do assign out = in[15+shift:shift]; reg [15:0] quotient, remainder; wire [15:0] out_unclipped; reg [18:0] msbs; wire in_range; always @* case(shift) 0 : quotient = in[15:0]; 1 : quotient = in[16:1]; 2 : quotient = in[17:2]; 3 : quotient = in[18:3]; 4 : quotient = in[19:4]; 5 : quotient = in[20:5]; 6 : quotient = in[21:6]; 7 : quotient = in[22:7]; 8 : quotient = in[23:8]; 9 : quotient = in[24:9]; 10 : quotient = in[25:10]; 11 : quotient = in[26:11]; 12 : quotient = in[27:12]; 13 : quotient = in[28:13]; 14 : quotient = in[29:14]; 15 : quotient = in[30:15]; 16 : quotient = in[31:16]; 17 : quotient = in[32:17]; 18 : quotient = in[33:18]; default : quotient = in[15:0]; endcase // case(shift) always @* case(shift) 0 : remainder = 16'b0; 1 : remainder = {in[0],15'b0}; 2 : remainder = {in[1:0],14'b0}; 3 : remainder = {in[2:0],13'b0}; 4 : remainder = {in[3:0],12'b0}; 5 : remainder = {in[4:0],11'b0}; 6 : remainder = {in[5:0],10'b0}; 7 : remainder = {in[6:0],9'b0}; 8 : remainder = {in[7:0],8'b0}; 9 : remainder = {in[8:0],7'b0}; 10 : remainder = {in[9:0],6'b0}; 11 : remainder = {in[10:0],5'b0}; 12 : remainder = {in[11:0],4'b0}; 13 : remainder = {in[12:0],3'b0}; 14 : remainder = {in[13:0],2'b0}; 15 : remainder = {in[14:0],1'b0}; 16 : remainder = in[15:0]; 17 : remainder = in[16:1]; 18 : remainder = in[17:2]; default : remainder = 16'b0; endcase // case(shift) always @* case(shift) 0 : msbs = in[33:15]; 1 : msbs = {in[33],in[33:16]}; 2 : msbs = {{2{in[33]}},in[33:17]}; 3 : msbs = {{3{in[33]}},in[33:18]}; 4 : msbs = {{4{in[33]}},in[33:19]}; 5 : msbs = {{5{in[33]}},in[33:20]}; 6 : msbs = {{6{in[33]}},in[33:21]}; 7 : msbs = {{7{in[33]}},in[33:22]}; 8 : msbs = {{8{in[33]}},in[33:23]}; 9 : msbs = {{9{in[33]}},in[33:24]}; 10 : msbs = {{10{in[33]}},in[33:25]}; 11 : msbs = {{11{in[33]}},in[33:26]}; 12 : msbs = {{12{in[33]}},in[33:27]}; 13 : msbs = {{13{in[33]}},in[33:28]}; 14 : msbs = {{14{in[33]}},in[33:29]}; 15 : msbs = {{15{in[33]}},in[33:30]}; 16 : msbs = {{16{in[33]}},in[33:31]}; 17 : msbs = {{17{in[33]}},in[33:32]}; 18 : msbs = {{18{in[33]}},in[33]}; default : msbs = in[33:15]; endcase // case(shift) assign in_range = &msbs | ~(|msbs); assign out_unclipped = quotient + (in[33] & |remainder); assign out = in_range ? out_unclipped : {in[33],{15{~in[33]}}}; endmodule // shifter uhd-3.5.5/fpga/usrp1/toplevel/sizetest/000077500000000000000000000000001224274632000200015ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/sizetest/.gitignore000066400000000000000000000001471224274632000217730ustar00rootroot00000000000000/*.qws /*.eqn /*.done /*.htm /*.rpt /*.ini /*.fsf /*.jam /*.jbc /*.pin /*.pof /*.sof /*.rbf /*.ttf /db uhd-3.5.5/fpga/usrp1/toplevel/sizetest/sizetest.csf000066400000000000000000000143301224274632000223510ustar00rootroot00000000000000COMPILER_SETTINGS { IO_PLACEMENT_OPTIMIZATION = OFF; ENABLE_DRC_SETTINGS = OFF; PHYSICAL_SYNTHESIS_REGISTER_RETIMING = OFF; PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION = OFF; PHYSICAL_SYNTHESIS_COMBO_LOGIC = OFF; DRC_FANOUT_EXCEEDING = 30; DRC_REPORT_FANOUT_EXCEEDING = OFF; DRC_TOP_FANOUT = 50; DRC_REPORT_TOP_FANOUT = OFF; RUN_DRC_DURING_COMPILATION = OFF; ADV_NETLIST_OPT_RETIME_CORE_AND_IO = ON; ADV_NETLIST_OPT_SYNTH_USE_FITTER_INFO = OFF; ADV_NETLIST_OPT_SYNTH_GATE_RETIME = OFF; ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP = OFF; SMART_COMPILE_IGNORES_TDC_FOR_STRATIX_PLL_CHANGES = OFF; MERGE_HEX_FILE = OFF; TRUE_WYSIWYG_FLOW = OFF; SEED = 1; FINAL_PLACEMENT_OPTIMIZATION = AUTOMATICALLY; FAMILY = Cyclone; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "LOWER TO 1ESB UPPER TO 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DEEP_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_SINGLE_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_WIDE_MODE_OUTPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4ESB"; DPRAM_DEEP_MODE_OUTPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_INPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4"; DPRAM_DEEP_MODE_INPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_OTHER_SIGNALS_EPXA4_10 = "DEFAULT OTHER ROUTING OPTIONS"; DPRAM_OUTPUT_EPXA4_10 = "DEFAULT OUTPUT ROUTING OPTIONS"; DPRAM_INPUT_EPXA4_10 = "DEFAULT INPUT ROUTING OPTIONS"; STRIPE_TO_PLD_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PLD_TO_STRIPE_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PROCESSOR_DEBUG_EXTENSIONS_EPXA4_10 = "MEGALAB COLUMN 2"; STRIPE_TO_PLD_BRIDGE_EPXA4_10 = "MEGALAB COLUMN 1"; FAST_FIT_COMPILATION = OFF; SIGNALPROBE_DURING_NORMAL_COMPILATION = OFF; OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING = OFF; OPTIMIZE_TIMING = OFF; OPTIMIZE_HOLD_TIMING = OFF; COMPILATION_LEVEL = FULL; SAVE_DISK_SPACE = ON; SPEED_DISK_USAGE_TRADEOFF = NORMAL; LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT = OFF; SIGNALPROBE_ALLOW_OVERUSE = OFF; FOCUS_ENTITY_NAME = |sizetest; FIT_ONLY_ONE_ATTEMPT = OFF; } DEFAULT_DEVICE_OPTIONS { GENERATE_CONFIG_HEXOUT_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_JBC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_SVF_FILE = OFF; RESERVE_PIN = "AS INPUT TRI-STATED"; RESERVE_ALL_UNUSED_PINS = "AS OUTPUT DRIVING GROUND"; HEXOUT_FILE_COUNT_DIRECTION = UP; HEXOUT_FILE_START_ADDRESS = 0; GENERATE_HEX_FILE = OFF; GENERATE_RBF_FILE = OFF; GENERATE_TTF_FILE = OFF; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; APEX20K_CONFIGURATION_DEVICE = AUTO; USE_CONFIGURATION_DEVICE = ON; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; AUTO_RESTART_CONFIGURATION = OFF; ENABLE_VREFB_PIN = OFF; ENABLE_VREFA_PIN = OFF; SECURITY_BIT = OFF; USER_START_UP_CLOCK = OFF; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "ACTIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_UPDATE_MODE = STANDARD; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MERCURY_JTAG_USER_CODE = FFFFFFFF; APEX20K_JTAG_USER_CODE = FFFFFFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; ENABLE_JTAG_BST_SUPPORT = OFF; CONFIGURATION_CLOCK_DIVISOR = 1; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CLOCK_SOURCE = INTERNAL; COMPRESSION_MODE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; } AUTO_SLD_HUB_ENTITY { AUTO_INSERT_SLD_HUB_ENTITY = ENABLE; HUB_INSTANCE_NAME = SLD_HUB_INST; HUB_ENTITY_NAME = SLD_HUB; } CHIP(sizetest) { DEVICE = EP1C12Q240C8; DEVICE_FILTER_PACKAGE = "ANY QFP"; DEVICE_FILTER_PIN_COUNT = 240; DEVICE_FILTER_SPEED_GRADE = ANY; } SIGNALTAP_LOGIC_ANALYZER_SETTINGS { ENABLE_SIGNALTAP = Off; AUTO_ENABLE_SMART_COMPILE = On; } uhd-3.5.5/fpga/usrp1/toplevel/sizetest/sizetest.psf000066400000000000000000000157251224274632000223770ustar00rootroot00000000000000DEFAULT_DESIGN_ASSISTANT_SETTINGS { HCPY_ALOAD_SIGNALS = OFF; HCPY_VREF_PINS = OFF; HCPY_CAT = OFF; HCPY_ILLEGAL_HC_DEV_PKG = OFF; ACLK_RULE_IMSZER_ADOMAIN = OFF; ACLK_RULE_SZER_BTW_ACLK_DOMAIN = OFF; ACLK_RULE_NO_SZER_ACLK_DOMAIN = OFF; ACLK_CAT = OFF; SIGNALRACE_RULE_ASYNCHPIN_SYNCH_CLKPIN = OFF; SIGNALRACE_CAT = OFF; NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED = OFF; NONSYNCHSTRUCT_RULE_SRLATCH = OFF; NONSYNCHSTRUCT_RULE_DLATCH = OFF; NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR = OFF; NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN = OFF; NONSYNCHSTRUCT_RULE_RIPPLE_CLK = OFF; NONSYNCHSTRUCT_RULE_DELAY_CHAIN = OFF; NONSYNCHSTRUCT_RULE_REG_LOOP = OFF; NONSYNCHSTRUCT_RULE_COMBLOOP = OFF; NONSYNCHSTRUCT_CAT = OFF; NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE = OFF; TIMING_RULE_COIN_CLKEDGE = OFF; TIMING_RULE_SHIFT_REG = OFF; TIMING_RULE_HIGH_FANOUTS = OFF; TIMING_CAT = OFF; RESET_RULE_ALL = OFF; RESET_RULE_IMSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_UNSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_REG_ASNYCH = OFF; RESET_RULE_COMB_ASYNCH_RESET = OFF; RESET_RULE_IMSYNCH_EXRESET = OFF; RESET_RULE_UNSYNCH_EXRESET = OFF; RESET_RULE_INPINS_RESETNET = OFF; RESET_CAT = OFF; CLK_RULE_ALL = OFF; CLK_RULE_MIX_EDGES = OFF; CLK_RULE_CLKNET_CLKSPINES = OFF; CLK_RULE_INPINS_CLKNET = OFF; CLK_RULE_GATING_SCHEME = OFF; CLK_RULE_INV_CLOCK = OFF; CLK_RULE_COMB_CLOCK = OFF; CLK_CAT = OFF; HCPY_EXCEED_USER_IO_USAGE = OFF; HCPY_EXCEED_RAM_USAGE = OFF; NONSYNCHSTRUCT_RULE_ASYN_RAM = OFF; SIGNALRACE_RULE_TRISTATE = OFF; ASSG_RULE_MISSING_TIMING = OFF; ASSG_RULE_MISSING_FMAX = OFF; ASSG_CAT = OFF; } SYNTHESIS_FITTING_SETTINGS { AUTO_SHIFT_REGISTER_RECOGNITION = ON; AUTO_RAM_RECOGNITION = ON; REMOVE_DUPLICATE_LOGIC = ON; AUTO_MERGE_PLLS = ON; AUTO_OPEN_DRAIN_PINS = ON; AUTO_CARRY_CHAINS = ON; AUTO_DELAY_CHAINS = ON; STRATIX_CARRY_CHAIN_LENGTH = 70; AUTO_PACKED_REG_CYCLONE = "MINIMIZE AREA WITH CHAINS"; CYCLONE_OPTIMIZATION_TECHNIQUE = SPEED; AUTO_GLOBAL_MEMORY_CONTROLS = OFF; AUTO_GLOBAL_REGISTER_CONTROLS = ON; AUTO_GLOBAL_CLOCK = ON; LIMIT_AHDL_INTEGERS_TO_32_BITS = OFF; ENABLE_BUS_HOLD_CIRCUITRY = OFF; WEAK_PULL_UP_RESISTOR = OFF; IGNORE_SOFT_BUFFERS = ON; IGNORE_LCELL_BUFFERS = OFF; IGNORE_ROW_GLOBAL_BUFFERS = OFF; IGNORE_GLOBAL_BUFFERS = OFF; IGNORE_CASCADE_BUFFERS = OFF; IGNORE_CARRY_BUFFERS = OFF; REMOVE_DUPLICATE_REGISTERS = ON; REMOVE_REDUNDANT_LOGIC_CELLS = OFF; ALLOW_POWER_UP_DONT_CARE = ON; PCI_IO = OFF; NOT_GATE_PUSH_BACK = ON; SLOW_SLEW_RATE = OFF; STATE_MACHINE_PROCESSING = AUTO; } DEFAULT_HARDCOPY_SETTINGS { HARDCOPY_EXTERNAL_CLOCK_JITTER = "0.0 NS"; } DEFAULT_TIMING_REQUIREMENTS { INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; RUN_ALL_TIMING_ANALYSES = ON; IGNORE_CLOCK_SETTINGS = OFF; DEFAULT_HOLD_MULTICYCLE = "SAME AS MULTICYCLE"; CUT_OFF_IO_PIN_FEEDBACK = ON; CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; CUT_OFF_READ_DURING_WRITE_PATHS = ON; CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS = ON; DO_MIN_ANALYSIS = ON; DO_MIN_TIMING = OFF; NUMBER_OF_PATHS_TO_REPORT = 200; NUMBER_OF_DESTINATION_TO_REPORT = 10; NUMBER_OF_SOURCES_PER_DESTINATION_TO_REPORT = 10; MAX_SCC_SIZE = 50; } HDL_SETTINGS { VERILOG_INPUT_VERSION = VERILOG_2001; ENABLE_IP_DEBUG = OFF; VHDL_INPUT_VERSION = VHDL93; VHDL_SHOW_LMF_MAPPING_MESSAGES = OFF; } PROJECT_INFO(sizetest) { USER_LIBRARIES = "e:\fpga\megacells\"; ORIGINAL_QUARTUS_VERSION = 3.0; PROJECT_CREATION_TIME_DATE = "22:00:25 SEPTEMBER 28, 2003"; LAST_QUARTUS_VERSION = 3.0; SHOW_REGISTRATION_MESSAGE = ON; } THIRD_PARTY_EDA_TOOLS(sizetest) { EDA_DESIGN_ENTRY_SYNTHESIS_TOOL = ""; EDA_SIMULATION_TOOL = ""; EDA_TIMING_ANALYSIS_TOOL = ""; EDA_BOARD_DESIGN_TOOL = ""; EDA_FORMAL_VERIFICATION_TOOL = ""; EDA_RESYNTHESIS_TOOL = ""; } EDA_TOOL_SETTINGS(eda_design_synthesis) { EDA_INPUT_GND_NAME = GND; EDA_INPUT_VCC_NAME = VCC; EDA_SHOW_LMF_MAPPING_MESSAGES = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_INPUT_DATA_FORMAT = EDIF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_simulation) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_timing_analysis) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; EDA_LAUNCH_CMD_LINE_TOOL = OFF; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_board_design) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_formal_verification) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_palace) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; RESYNTHESIS_RETIMING = FULL; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; } uhd-3.5.5/fpga/usrp1/toplevel/sizetest/sizetest.quartus000066400000000000000000000005071224274632000233030ustar00rootroot00000000000000COMPILER_SETTINGS_LIST { COMPILER_SETTINGS = sizetest; } SIMULATOR_SETTINGS_LIST { SIMULATOR_SETTINGS = sizetest; } SOFTWARE_SETTINGS_LIST { SOFTWARE_SETTINGS = Debug; SOFTWARE_SETTINGS = Release; } FILES { VERILOG_FILE = ..\..\sdr_lib\cordic_stage.v; VERILOG_FILE = ..\..\sdr_lib\cordic.v; VERILOG_FILE = sizetest.v; } uhd-3.5.5/fpga/usrp1/toplevel/sizetest/sizetest.ssf000066400000000000000000000005501224274632000223700ustar00rootroot00000000000000SIMULATOR_SETTINGS { ESTIMATE_POWER_CONSUMPTION = OFF; GLITCH_INTERVAL = 1NS; GLITCH_DETECTION = OFF; SIMULATION_COVERAGE = ON; CHECK_OUTPUTS = OFF; SETUP_HOLD_DETECTION = OFF; POWER_ESTIMATION_START_TIME = "0 NS"; ADD_DEFAULT_PINS_TO_SIMULATION_OUTPUT_WAVEFORMS = ON; SIMULATION_MODE = TIMING; START_TIME = 0NS; USE_COMPILER_SETTINGS = sizetest; } uhd-3.5.5/fpga/usrp1/toplevel/sizetest/sizetest.v000066400000000000000000000022321224274632000220410ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module sizetest(input clock, input reset, input enable, input [15:0]xi, input [15:0] yi, input [15:0] zi, output [15:0] xo, output [15:0] yo, output [15:0] zo // input [15:0] constant ); wire [16:0] zo; cordic_stage cordic_stage(clock, reset, enable, xi, yi, zi, 16'd16383, xo, yo, zo ); endmodule uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/000077500000000000000000000000001224274632000213045ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/.gitignore000066400000000000000000000001621224274632000232730ustar00rootroot00000000000000/*.qws /*.eqn /*.done /*.htm /*.rpt /*.ini /*.fsf /*.jam /*.jbc /*.pin /*.pof /*.sof /*.rbf /*.ttf /*.summary /db uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/config.vh000066400000000000000000000043501224274632000231120ustar00rootroot00000000000000 // -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006,2007 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ==================================================================== // User control over what parts get included // // >>>> EDIT ONLY THIS SECTION <<<< // Uncomment only ONE configuration // ==================================================================== // ==================================================================== // FIXME drive configuration selection from the command line and/or gui // ==================================================================== // Uncomment this for 1 rx channel (w/ halfband) & 1 transmit channel `include "../include/common_config_1rxhb_1tx.vh" // Uncomment this for 2 rx channels (w/ halfband) & 2 transmit channels // `include "../include/common_config_2rxhb_2tx.vh" // Uncomment this for 4 rx channels (w/o halfband) & 0 transmit channels //`include "../include/common_config_4rx_0tx.vh" // Uncomment this for multi with 2 rx channels (w/ halfband) & 0 transmit channels //`include "../include/common_config_2rxhb_0tx.vh" // Uncomment this for multi with 2 rx channels (w/o halfband) & 0 transmit channels //`include "../include/common_config_2rx_0tx.vh" // Add other "known to fit" configurations here... // ==================================================================== // Now include the common footer // ==================================================================== `include "../include/common_config_bottom.vh" uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/usrp_inband_usb.csf000066400000000000000000000405241224274632000251630ustar00rootroot00000000000000COMPILER_SETTINGS { IO_PLACEMENT_OPTIMIZATION = OFF; ENABLE_DRC_SETTINGS = OFF; PHYSICAL_SYNTHESIS_REGISTER_RETIMING = OFF; PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION = OFF; PHYSICAL_SYNTHESIS_COMBO_LOGIC = OFF; DRC_FANOUT_EXCEEDING = 30; DRC_REPORT_FANOUT_EXCEEDING = OFF; DRC_TOP_FANOUT = 50; DRC_REPORT_TOP_FANOUT = OFF; RUN_DRC_DURING_COMPILATION = OFF; ADV_NETLIST_OPT_RETIME_CORE_AND_IO = ON; ADV_NETLIST_OPT_SYNTH_USE_FITTER_INFO = OFF; ADV_NETLIST_OPT_SYNTH_GATE_RETIME = OFF; ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP = OFF; SMART_COMPILE_IGNORES_TDC_FOR_STRATIX_PLL_CHANGES = OFF; MERGE_HEX_FILE = OFF; TRUE_WYSIWYG_FLOW = OFF; SEED = 1; FINAL_PLACEMENT_OPTIMIZATION = AUTOMATICALLY; FAMILY = Cyclone; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "LOWER TO 1ESB UPPER TO 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DEEP_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_SINGLE_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_WIDE_MODE_OUTPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4ESB"; DPRAM_DEEP_MODE_OUTPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_INPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4"; DPRAM_DEEP_MODE_INPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_OTHER_SIGNALS_EPXA4_10 = "DEFAULT OTHER ROUTING OPTIONS"; DPRAM_OUTPUT_EPXA4_10 = "DEFAULT OUTPUT ROUTING OPTIONS"; DPRAM_INPUT_EPXA4_10 = "DEFAULT INPUT ROUTING OPTIONS"; STRIPE_TO_PLD_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PLD_TO_STRIPE_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PROCESSOR_DEBUG_EXTENSIONS_EPXA4_10 = "MEGALAB COLUMN 2"; STRIPE_TO_PLD_BRIDGE_EPXA4_10 = "MEGALAB COLUMN 1"; FAST_FIT_COMPILATION = OFF; SIGNALPROBE_DURING_NORMAL_COMPILATION = OFF; OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING = ON; OPTIMIZE_TIMING = "NORMAL COMPILATION"; OPTIMIZE_HOLD_TIMING = OFF; COMPILATION_LEVEL = FULL; SAVE_DISK_SPACE = OFF; SPEED_DISK_USAGE_TRADEOFF = NORMAL; LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT = OFF; SIGNALPROBE_ALLOW_OVERUSE = OFF; FOCUS_ENTITY_NAME = |usrp_inband_usb; ROUTING_BACK_ANNOTATION_MODE = OFF; INC_PLC_MODE = OFF; FIT_ONLY_ONE_ATTEMPT = OFF; } DEFAULT_DEVICE_OPTIONS { GENERATE_CONFIG_HEXOUT_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_JBC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_SVF_FILE = OFF; RESERVE_PIN = "AS INPUT TRI-STATED"; RESERVE_ALL_UNUSED_PINS = "AS OUTPUT DRIVING GROUND"; HEXOUT_FILE_COUNT_DIRECTION = UP; HEXOUT_FILE_START_ADDRESS = 0; GENERATE_HEX_FILE = OFF; GENERATE_RBF_FILE = OFF; GENERATE_TTF_FILE = OFF; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; APEX20K_CONFIGURATION_DEVICE = AUTO; USE_CONFIGURATION_DEVICE = ON; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; AUTO_RESTART_CONFIGURATION = OFF; ENABLE_VREFB_PIN = OFF; ENABLE_VREFA_PIN = OFF; SECURITY_BIT = OFF; USER_START_UP_CLOCK = OFF; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "ACTIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_UPDATE_MODE = STANDARD; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MERCURY_JTAG_USER_CODE = FFFFFFFF; APEX20K_JTAG_USER_CODE = FFFFFFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; ENABLE_JTAG_BST_SUPPORT = OFF; CONFIGURATION_CLOCK_DIVISOR = 1; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CLOCK_SOURCE = INTERNAL; COMPRESSION_MODE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; } AUTO_SLD_HUB_ENTITY { AUTO_INSERT_SLD_HUB_ENTITY = ENABLE; HUB_INSTANCE_NAME = SLD_HUB_INST; HUB_ENTITY_NAME = SLD_HUB; } SIGNALTAP_LOGIC_ANALYZER_SETTINGS { ENABLE_SIGNALTAP = Off; AUTO_ENABLE_SMART_COMPILE = On; } CHIP(usrp_inband_usb) { DEVICE = EP1C12Q240C8; DEVICE_FILTER_PACKAGE = "ANY QFP"; DEVICE_FILTER_PIN_COUNT = 240; DEVICE_FILTER_SPEED_GRADE = ANY; AUTO_RESTART_CONFIGURATION = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; USER_START_UP_CLOCK = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_JTAG_BST_SUPPORT = OFF; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; APEX20K_JTAG_USER_CODE = FFFFFFFF; MERCURY_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MAX7000_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; USE_CONFIGURATION_DEVICE = OFF; APEX20K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; STRATIX_UPDATE_MODE = STANDARD; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; COMPRESSION_MODE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; GENERATE_TTF_FILE = OFF; GENERATE_RBF_FILE = ON; GENERATE_HEX_FILE = OFF; SECURITY_BIT = OFF; ENABLE_VREFA_PIN = OFF; ENABLE_VREFB_PIN = OFF; GENERATE_SVF_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_JBC_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_HEXOUT_FILE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; BASE_PIN_OUT_FILE_ON_SAMEFRAME_DEVICE = OFF; HEXOUT_FILE_START_ADDRESS = 0; HEXOUT_FILE_COUNT_DIRECTION = UP; RESERVE_ALL_UNUSED_PINS = "AS INPUT TRI-STATED"; STRATIX_DEVICE_IO_STANDARD = LVTTL; CLOCK_SOURCE = INTERNAL; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CONFIGURATION_CLOCK_DIVISOR = 1; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; SCLK : LOCATION = Pin_101; SDI : LOCATION = Pin_100; SEN : LOCATION = Pin_98; SLD : LOCATION = Pin_95; adc1_data[0] : LOCATION = Pin_5; adc1_data[10] : LOCATION = Pin_235; adc1_data[11] : LOCATION = Pin_234; adc1_data[1] : LOCATION = Pin_4; adc1_data[2] : LOCATION = Pin_3; adc1_data[3] : LOCATION = Pin_2; adc1_data[4] : LOCATION = Pin_1; adc1_data[4] : IO_STANDARD = LVTTL; adc1_data[5] : LOCATION = Pin_240; adc1_data[6] : LOCATION = Pin_239; adc1_data[7] : LOCATION = Pin_238; adc1_data[8] : LOCATION = Pin_237; adc1_data[9] : LOCATION = Pin_236; adc2_data[0] : LOCATION = Pin_20; adc2_data[10] : LOCATION = Pin_8; adc2_data[11] : LOCATION = Pin_7; adc2_data[1] : LOCATION = Pin_19; adc2_data[2] : LOCATION = Pin_18; adc2_data[3] : LOCATION = Pin_17; adc2_data[4] : LOCATION = Pin_16; adc2_data[5] : LOCATION = Pin_15; adc2_data[6] : LOCATION = Pin_14; adc2_data[7] : LOCATION = Pin_13; adc2_data[8] : LOCATION = Pin_12; adc2_data[9] : LOCATION = Pin_11; adc3_data[0] : LOCATION = Pin_200; adc3_data[10] : LOCATION = Pin_184; adc3_data[11] : LOCATION = Pin_183; adc3_data[1] : LOCATION = Pin_197; adc3_data[2] : LOCATION = Pin_196; adc3_data[3] : LOCATION = Pin_195; adc3_data[4] : LOCATION = Pin_194; adc3_data[5] : LOCATION = Pin_193; adc3_data[6] : LOCATION = Pin_188; adc3_data[7] : LOCATION = Pin_187; adc3_data[8] : LOCATION = Pin_186; adc3_data[9] : LOCATION = Pin_185; adc4_data[0] : LOCATION = Pin_222; adc4_data[10] : LOCATION = Pin_203; adc4_data[11] : LOCATION = Pin_202; adc4_data[1] : LOCATION = Pin_219; adc4_data[2] : LOCATION = Pin_217; adc4_data[3] : LOCATION = Pin_216; adc4_data[4] : LOCATION = Pin_215; adc4_data[5] : LOCATION = Pin_214; adc4_data[6] : LOCATION = Pin_213; adc4_data[7] : LOCATION = Pin_208; adc4_data[8] : LOCATION = Pin_207; adc4_data[9] : LOCATION = Pin_206; adc_oeb[0] : LOCATION = Pin_228; adc_oeb[1] : LOCATION = Pin_21; adc_oeb[2] : LOCATION = Pin_181; adc_oeb[3] : LOCATION = Pin_218; adc_otr[0] : LOCATION = Pin_233; adc_otr[1] : LOCATION = Pin_6; adc_otr[2] : LOCATION = Pin_182; adc_otr[3] : LOCATION = Pin_201; adclk0 : LOCATION = Pin_224; adclk1 : LOCATION = Pin_226; clk0 : LOCATION = Pin_28; clk0 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk0 : IO_STANDARD = LVTTL; clk1 : LOCATION = Pin_29; clk1 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk1 : IO_STANDARD = LVTTL; clk3 : LOCATION = Pin_152; clk3 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk3 : IO_STANDARD = LVTTL; clk_120mhz : LOCATION = Pin_153; clk_120mhz : IO_STANDARD = LVTTL; clk_out : LOCATION = Pin_63; clk_out : IO_STANDARD = LVTTL; dac1_data[0] : LOCATION = Pin_165; dac1_data[10] : LOCATION = Pin_177; dac1_data[11] : LOCATION = Pin_178; dac1_data[12] : LOCATION = Pin_179; dac1_data[13] : LOCATION = Pin_180; dac1_data[1] : LOCATION = Pin_166; dac1_data[2] : LOCATION = Pin_167; dac1_data[3] : LOCATION = Pin_168; dac1_data[4] : LOCATION = Pin_169; dac1_data[5] : LOCATION = Pin_170; dac1_data[6] : LOCATION = Pin_173; dac1_data[7] : LOCATION = Pin_174; dac1_data[8] : LOCATION = Pin_175; dac1_data[9] : LOCATION = Pin_176; dac2_data[0] : LOCATION = Pin_159; dac2_data[10] : LOCATION = Pin_163; dac2_data[11] : LOCATION = Pin_139; dac2_data[12] : LOCATION = Pin_164; dac2_data[13] : LOCATION = Pin_138; dac2_data[1] : LOCATION = Pin_158; dac2_data[2] : LOCATION = Pin_160; dac2_data[3] : LOCATION = Pin_156; dac2_data[4] : LOCATION = Pin_161; dac2_data[5] : LOCATION = Pin_144; dac2_data[6] : LOCATION = Pin_162; dac2_data[7] : LOCATION = Pin_141; dac2_data[8] : LOCATION = Pin_143; dac2_data[9] : LOCATION = Pin_140; dac3_data[0] : LOCATION = Pin_122; dac3_data[10] : LOCATION = Pin_134; dac3_data[11] : LOCATION = Pin_135; dac3_data[12] : LOCATION = Pin_136; dac3_data[13] : LOCATION = Pin_137; dac3_data[1] : LOCATION = Pin_123; dac3_data[2] : LOCATION = Pin_124; dac3_data[3] : LOCATION = Pin_125; dac3_data[4] : LOCATION = Pin_126; dac3_data[5] : LOCATION = Pin_127; dac3_data[6] : LOCATION = Pin_128; dac3_data[7] : LOCATION = Pin_131; dac3_data[8] : LOCATION = Pin_132; dac3_data[9] : LOCATION = Pin_133; dac4_data[0] : LOCATION = Pin_104; dac4_data[10] : LOCATION = Pin_118; dac4_data[11] : LOCATION = Pin_119; dac4_data[12] : LOCATION = Pin_120; dac4_data[13] : LOCATION = Pin_121; dac4_data[1] : LOCATION = Pin_105; dac4_data[2] : LOCATION = Pin_106; dac4_data[3] : LOCATION = Pin_107; dac4_data[4] : LOCATION = Pin_108; dac4_data[5] : LOCATION = Pin_113; dac4_data[6] : LOCATION = Pin_114; dac4_data[7] : LOCATION = Pin_115; dac4_data[8] : LOCATION = Pin_116; dac4_data[9] : LOCATION = Pin_117; enable_rx : LOCATION = Pin_88; enable_tx : LOCATION = Pin_93; gndbus[0] : LOCATION = Pin_223; gndbus[0] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[0] : IO_STANDARD = LVTTL; gndbus[1] : LOCATION = Pin_225; gndbus[1] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[1] : IO_STANDARD = LVTTL; gndbus[2] : LOCATION = Pin_227; gndbus[2] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[2] : IO_STANDARD = LVTTL; gndbus[3] : LOCATION = Pin_62; gndbus[3] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[3] : IO_STANDARD = LVTTL; gndbus[4] : LOCATION = Pin_64; gndbus[4] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[4] : IO_STANDARD = LVTTL; misc_pins[0] : LOCATION = Pin_87; misc_pins[0] : IO_STANDARD = LVTTL; misc_pins[10] : LOCATION = Pin_76; misc_pins[10] : IO_STANDARD = LVTTL; misc_pins[11] : LOCATION = Pin_74; misc_pins[11] : IO_STANDARD = LVTTL; misc_pins[1] : LOCATION = Pin_86; misc_pins[1] : IO_STANDARD = LVTTL; misc_pins[2] : LOCATION = Pin_85; misc_pins[2] : IO_STANDARD = LVTTL; misc_pins[3] : LOCATION = Pin_84; misc_pins[3] : IO_STANDARD = LVTTL; misc_pins[4] : LOCATION = Pin_83; misc_pins[4] : IO_STANDARD = LVTTL; misc_pins[5] : LOCATION = Pin_82; misc_pins[5] : IO_STANDARD = LVTTL; misc_pins[6] : LOCATION = Pin_79; misc_pins[6] : IO_STANDARD = LVTTL; misc_pins[7] : LOCATION = Pin_78; misc_pins[7] : IO_STANDARD = LVTTL; misc_pins[8] : LOCATION = Pin_77; misc_pins[8] : IO_STANDARD = LVTTL; misc_pins[9] : LOCATION = Pin_75; misc_pins[9] : IO_STANDARD = LVTTL; reset : LOCATION = Pin_94; usbclk : LOCATION = Pin_55; usbctl[0] : LOCATION = Pin_56; usbctl[1] : LOCATION = Pin_54; usbctl[2] : LOCATION = Pin_53; usbctl[3] : LOCATION = Pin_58; usbctl[4] : LOCATION = Pin_57; usbctl[5] : LOCATION = Pin_44; usbdata[0] : LOCATION = Pin_73; usbdata[10] : LOCATION = Pin_41; usbdata[11] : LOCATION = Pin_39; usbdata[12] : LOCATION = Pin_38; usbdata[12] : IO_STANDARD = LVTTL; usbdata[13] : LOCATION = Pin_37; usbdata[14] : LOCATION = Pin_24; usbdata[15] : LOCATION = Pin_23; usbdata[1] : LOCATION = Pin_68; usbdata[2] : LOCATION = Pin_67; usbdata[3] : LOCATION = Pin_66; usbdata[4] : LOCATION = Pin_65; usbdata[5] : LOCATION = Pin_61; usbdata[6] : LOCATION = Pin_60; usbdata[7] : LOCATION = Pin_59; usbdata[8] : LOCATION = Pin_43; usbdata[9] : LOCATION = Pin_42; usbrdy[0] : LOCATION = Pin_45; usbrdy[1] : LOCATION = Pin_46; usbrdy[2] : LOCATION = Pin_47; usbrdy[3] : LOCATION = Pin_48; usbrdy[4] : LOCATION = Pin_49; usbrdy[5] : LOCATION = Pin_50; clear_status : LOCATION = Pin_99; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/usrp_inband_usb.esf000066400000000000000000000005571224274632000251670ustar00rootroot00000000000000SIMULATOR_SETTINGS { ESTIMATE_POWER_CONSUMPTION = OFF; GLITCH_INTERVAL = 1NS; GLITCH_DETECTION = OFF; SIMULATION_COVERAGE = ON; CHECK_OUTPUTS = OFF; SETUP_HOLD_DETECTION = OFF; POWER_ESTIMATION_START_TIME = "0 NS"; ADD_DEFAULT_PINS_TO_SIMULATION_OUTPUT_WAVEFORMS = ON; SIMULATION_MODE = TIMING; START_TIME = 0NS; USE_COMPILER_SETTINGS = usrp_inband_usb; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/usrp_inband_usb.psf000066400000000000000000000224721224274632000252020ustar00rootroot00000000000000DEFAULT_DESIGN_ASSISTANT_SETTINGS { HCPY_ALOAD_SIGNALS = OFF; HCPY_VREF_PINS = OFF; HCPY_CAT = OFF; HCPY_ILLEGAL_HC_DEV_PKG = OFF; ACLK_RULE_IMSZER_ADOMAIN = OFF; ACLK_RULE_SZER_BTW_ACLK_DOMAIN = OFF; ACLK_RULE_NO_SZER_ACLK_DOMAIN = OFF; ACLK_CAT = OFF; SIGNALRACE_RULE_ASYNCHPIN_SYNCH_CLKPIN = OFF; SIGNALRACE_CAT = OFF; NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED = OFF; NONSYNCHSTRUCT_RULE_SRLATCH = OFF; NONSYNCHSTRUCT_RULE_DLATCH = OFF; NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR = OFF; NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN = OFF; NONSYNCHSTRUCT_RULE_RIPPLE_CLK = OFF; NONSYNCHSTRUCT_RULE_DELAY_CHAIN = OFF; NONSYNCHSTRUCT_RULE_REG_LOOP = OFF; NONSYNCHSTRUCT_RULE_COMBLOOP = OFF; NONSYNCHSTRUCT_CAT = OFF; NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE = OFF; TIMING_RULE_COIN_CLKEDGE = OFF; TIMING_RULE_SHIFT_REG = OFF; TIMING_RULE_HIGH_FANOUTS = OFF; TIMING_CAT = OFF; RESET_RULE_ALL = OFF; RESET_RULE_IMSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_UNSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_REG_ASNYCH = OFF; RESET_RULE_COMB_ASYNCH_RESET = OFF; RESET_RULE_IMSYNCH_EXRESET = OFF; RESET_RULE_UNSYNCH_EXRESET = OFF; RESET_RULE_INPINS_RESETNET = OFF; RESET_CAT = OFF; CLK_RULE_ALL = OFF; CLK_RULE_MIX_EDGES = OFF; CLK_RULE_CLKNET_CLKSPINES = OFF; CLK_RULE_INPINS_CLKNET = OFF; CLK_RULE_GATING_SCHEME = OFF; CLK_RULE_INV_CLOCK = OFF; CLK_RULE_COMB_CLOCK = OFF; CLK_CAT = OFF; HCPY_EXCEED_USER_IO_USAGE = OFF; HCPY_EXCEED_RAM_USAGE = OFF; NONSYNCHSTRUCT_RULE_ASYN_RAM = OFF; SIGNALRACE_RULE_TRISTATE = OFF; ASSG_RULE_MISSING_TIMING = OFF; ASSG_RULE_MISSING_FMAX = OFF; ASSG_CAT = OFF; } SYNTHESIS_FITTING_SETTINGS { AUTO_SHIFT_REGISTER_RECOGNITION = ON; AUTO_DSP_RECOGNITION = ON; AUTO_RAM_RECOGNITION = ON; REMOVE_DUPLICATE_LOGIC = ON; AUTO_TURBO_BIT = ON; AUTO_MERGE_PLLS = ON; AUTO_OPEN_DRAIN_PINS = ON; AUTO_PARALLEL_EXPANDERS = ON; AUTO_FAST_OUTPUT_ENABLE_REGISTERS = OFF; AUTO_FAST_OUTPUT_REGISTERS = OFF; AUTO_FAST_INPUT_REGISTERS = OFF; AUTO_CASCADE_CHAINS = ON; AUTO_CARRY_CHAINS = ON; AUTO_DELAY_CHAINS = ON; MAX7000_PARALLEL_EXPANDER_CHAIN_LENGTH = 4; PARALLEL_EXPANDER_CHAIN_LENGTH = 16; CASCADE_CHAIN_LENGTH = 2; STRATIX_CARRY_CHAIN_LENGTH = 70; MERCURY_CARRY_CHAIN_LENGTH = 48; FLEX10K_CARRY_CHAIN_LENGTH = 32; FLEX6K_CARRY_CHAIN_LENGTH = 32; CARRY_CHAIN_LENGTH = 48; CARRY_OUT_PINS_LCELL_INSERT = ON; NORMAL_LCELL_INSERT = ON; AUTO_LCELL_INSERTION = ON; ALLOW_XOR_GATE_USAGE = ON; AUTO_PACKED_REGISTERS_STRATIX = NORMAL; AUTO_PACKED_REGISTERS = OFF; AUTO_PACKED_REG_CYCLONE = NORMAL; FLEX10K_OPTIMIZATION_TECHNIQUE = AREA; FLEX6K_OPTIMIZATION_TECHNIQUE = AREA; MERCURY_OPTIMIZATION_TECHNIQUE = AREA; APEX20K_OPTIMIZATION_TECHNIQUE = SPEED; MAX7000_OPTIMIZATION_TECHNIQUE = SPEED; STRATIX_OPTIMIZATION_TECHNIQUE = SPEED; CYCLONE_OPTIMIZATION_TECHNIQUE = AREA; FLEX10K_TECHNOLOGY_MAPPER = LUT; FLEX6K_TECHNOLOGY_MAPPER = LUT; MERCURY_TECHNOLOGY_MAPPER = LUT; APEX20K_TECHNOLOGY_MAPPER = LUT; MAX7000_TECHNOLOGY_MAPPER = "PRODUCT TERM"; STRATIX_TECHNOLOGY_MAPPER = LUT; AUTO_IMPLEMENT_IN_ROM = OFF; AUTO_GLOBAL_MEMORY_CONTROLS = OFF; AUTO_GLOBAL_REGISTER_CONTROLS = ON; AUTO_GLOBAL_OE = ON; AUTO_GLOBAL_CLOCK = ON; USE_LPM_FOR_AHDL_OPERATORS = ON; LIMIT_AHDL_INTEGERS_TO_32_BITS = OFF; ENABLE_BUS_HOLD_CIRCUITRY = OFF; WEAK_PULL_UP_RESISTOR = OFF; TURBO_BIT = ON; MAX7000_IGNORE_SOFT_BUFFERS = OFF; IGNORE_SOFT_BUFFERS = ON; MAX7000_IGNORE_LCELL_BUFFERS = AUTO; IGNORE_LCELL_BUFFERS = OFF; IGNORE_ROW_GLOBAL_BUFFERS = OFF; IGNORE_GLOBAL_BUFFERS = OFF; IGNORE_CASCADE_BUFFERS = OFF; IGNORE_CARRY_BUFFERS = OFF; REMOVE_DUPLICATE_REGISTERS = ON; REMOVE_REDUNDANT_LOGIC_CELLS = OFF; ALLOW_POWER_UP_DONT_CARE = ON; PCI_IO = OFF; NOT_GATE_PUSH_BACK = ON; SLOW_SLEW_RATE = OFF; DSP_BLOCK_BALANCING = AUTO; STATE_MACHINE_PROCESSING = AUTO; } DEFAULT_HARDCOPY_SETTINGS { HARDCOPY_EXTERNAL_CLOCK_JITTER = "0.0 NS"; } DEFAULT_TIMING_REQUIREMENTS { INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; RUN_ALL_TIMING_ANALYSES = ON; IGNORE_CLOCK_SETTINGS = OFF; DEFAULT_HOLD_MULTICYCLE = "SAME AS MULTICYCLE"; CUT_OFF_IO_PIN_FEEDBACK = ON; CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; CUT_OFF_READ_DURING_WRITE_PATHS = ON; CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS = ON; DO_MIN_ANALYSIS = ON; DO_MIN_TIMING = OFF; NUMBER_OF_PATHS_TO_REPORT = 200; NUMBER_OF_DESTINATION_TO_REPORT = 10; NUMBER_OF_SOURCES_PER_DESTINATION_TO_REPORT = 10; MAX_SCC_SIZE = 50; } HDL_SETTINGS { VERILOG_INPUT_VERSION = VERILOG_2001; ENABLE_IP_DEBUG = OFF; VHDL_INPUT_VERSION = VHDL93; VHDL_SHOW_LMF_MAPPING_MESSAGES = OFF; } PROJECT_INFO(usrp_inband_usb) { ORIGINAL_QUARTUS_VERSION = 3.0; PROJECT_CREATION_TIME_DATE = "00:14:04 JULY 13, 2003"; LAST_QUARTUS_VERSION = 3.0; SHOW_REGISTRATION_MESSAGE = ON; USER_LIBRARIES = "e:\usrp\fpga\megacells"; } THIRD_PARTY_EDA_TOOLS(usrp_inband_usb) { EDA_DESIGN_ENTRY_SYNTHESIS_TOOL = ""; EDA_SIMULATION_TOOL = ""; EDA_TIMING_ANALYSIS_TOOL = ""; EDA_BOARD_DESIGN_TOOL = ""; EDA_FORMAL_VERIFICATION_TOOL = ""; EDA_RESYNTHESIS_TOOL = ""; } EDA_TOOL_SETTINGS(eda_design_synthesis) { EDA_INPUT_GND_NAME = GND; EDA_INPUT_VCC_NAME = VCC; EDA_SHOW_LMF_MAPPING_MESSAGES = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_INPUT_DATA_FORMAT = EDIF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_simulation) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_timing_analysis) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; EDA_LAUNCH_CMD_LINE_TOOL = OFF; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_board_design) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_formal_verification) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_palace) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; RESYNTHESIS_RETIMING = FULL; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; } CLOCK(clk_120mhz) { FMAX_REQUIREMENT = "120.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(usbclk) { FMAX_REQUIREMENT = "48.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(SCLK) { FMAX_REQUIREMENT = "1.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk0) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk1) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/usrp_inband_usb.qpf000066400000000000000000000030141224274632000251670ustar00rootroot00000000000000# Copyright (C) 1991-2004 Altera Corporation # Any megafunction design, and related netlist (encrypted or decrypted), # support information, device programming or simulation file, and any other # associated documentation or information provided by Altera or a partner # under Altera's Megafunction Partnership Program may be used only # to program PLD devices (but not masked PLD devices) from Altera. Any # other use of such megafunction design, netlist, support information, # device programming or simulation file, or any other related documentation # or information is prohibited for any other purpose, including, but not # limited to modification, reverse engineering, de-compiling, or use with # any other silicon devices, unless such use is explicitly licensed under # a separate agreement with Altera or a megafunction partner. Title to the # intellectual property, including patents, copyrights, trademarks, trade # secrets, or maskworks, embodied in any such megafunction design, netlist, # support information, device programming or simulation file, or any other # related documentation or information provided by Altera or a megafunction # partner, remains with Altera, the megafunction partner, or their respective # licensors. No other licenses, including any licenses needed under any third # party's intellectual property, are provided herein. QUARTUS_VERSION = "4.0" DATE = "17:10:11 December 20, 2004" # Active Revisions PROJECT_REVISION = "usrp_inband_usb" uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/usrp_inband_usb.qsf000066400000000000000000000471351224274632000252060ustar00rootroot00000000000000# Copyright (C) 1991-2005 Altera Corporation # Your use of Altera Corporation's design tools, logic functions # and other software and tools, and its AMPP partner logic # functions, and any output files any of the foregoing # (including device programming or simulation files), and any # associated documentation or information are expressly subject # to the terms and conditions of the Altera Program License # Subscription Agreement, Altera MegaCore Function License # Agreement, or other applicable license agreement, including, # without limitation, that your use is for the sole purpose of # programming logic devices manufactured by Altera and sold by # Altera or its authorized distributors. Please refer to the # applicable agreement for further details. # The default values for assignments are stored in the file # usrp_inband_usb_assignment_defaults.qdf # If this file doesn't exist, and for assignments not listed, see file # assignment_defaults.qdf # Altera recommends that you do not modify this file. This # file is updated automatically by the Quartus II software # and any changes you make may be lost or overwritten. # Project-Wide Assignments # ======================== set_global_assignment -name ORIGINAL_QUARTUS_VERSION 3.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "00:14:04 JULY 13, 2003" set_global_assignment -name LAST_QUARTUS_VERSION "7.2 SP2" # Pin & Location Assignments # ========================== set_global_assignment -name RESERVE_PIN "AS INPUT TRI-STATED" set_location_assignment PIN_29 -to SCLK set_location_assignment PIN_117 -to SDI set_location_assignment PIN_28 -to usbclk set_location_assignment PIN_107 -to usbctl[0] set_location_assignment PIN_106 -to usbctl[1] set_location_assignment PIN_105 -to usbctl[2] set_location_assignment PIN_100 -to usbdata[0] set_location_assignment PIN_84 -to usbdata[10] set_location_assignment PIN_83 -to usbdata[11] set_location_assignment PIN_82 -to usbdata[12] set_location_assignment PIN_79 -to usbdata[13] set_location_assignment PIN_78 -to usbdata[14] set_location_assignment PIN_77 -to usbdata[15] set_location_assignment PIN_99 -to usbdata[1] set_location_assignment PIN_98 -to usbdata[2] set_location_assignment PIN_95 -to usbdata[3] set_location_assignment PIN_94 -to usbdata[4] set_location_assignment PIN_93 -to usbdata[5] set_location_assignment PIN_88 -to usbdata[6] set_location_assignment PIN_87 -to usbdata[7] set_location_assignment PIN_86 -to usbdata[8] set_location_assignment PIN_85 -to usbdata[9] set_location_assignment PIN_104 -to usbrdy[0] set_location_assignment PIN_101 -to usbrdy[1] set_location_assignment PIN_76 -to FX2_1 set_location_assignment PIN_75 -to FX2_2 set_location_assignment PIN_74 -to FX2_3 set_location_assignment PIN_116 -to io_rx_a[0] set_location_assignment PIN_115 -to io_rx_a[1] set_location_assignment PIN_114 -to io_rx_a[2] set_location_assignment PIN_113 -to io_rx_a[3] set_location_assignment PIN_108 -to io_rx_a[4] set_location_assignment PIN_195 -to io_rx_a[5] set_location_assignment PIN_196 -to io_rx_a[6] set_location_assignment PIN_197 -to io_rx_a[7] set_location_assignment PIN_200 -to io_rx_a[8] set_location_assignment PIN_201 -to io_rx_a[9] set_location_assignment PIN_202 -to io_rx_a[10] set_location_assignment PIN_203 -to io_rx_a[11] set_location_assignment PIN_206 -to io_rx_a[12] set_location_assignment PIN_207 -to io_rx_a[13] set_location_assignment PIN_208 -to io_rx_a[14] set_location_assignment PIN_214 -to io_rx_b[0] set_location_assignment PIN_215 -to io_rx_b[1] set_location_assignment PIN_216 -to io_rx_b[2] set_location_assignment PIN_217 -to io_rx_b[3] set_location_assignment PIN_218 -to io_rx_b[4] set_location_assignment PIN_219 -to io_rx_b[5] set_location_assignment PIN_222 -to io_rx_b[6] set_location_assignment PIN_223 -to io_rx_b[7] set_location_assignment PIN_224 -to io_rx_b[8] set_location_assignment PIN_225 -to io_rx_b[9] set_location_assignment PIN_226 -to io_rx_b[10] set_location_assignment PIN_227 -to io_rx_b[11] set_location_assignment PIN_228 -to io_rx_b[12] set_location_assignment PIN_233 -to io_rx_b[13] set_location_assignment PIN_234 -to io_rx_b[14] set_location_assignment PIN_175 -to io_tx_a[0] set_location_assignment PIN_176 -to io_tx_a[1] set_location_assignment PIN_177 -to io_tx_a[2] set_location_assignment PIN_178 -to io_tx_a[3] set_location_assignment PIN_179 -to io_tx_a[4] set_location_assignment PIN_180 -to io_tx_a[5] set_location_assignment PIN_181 -to io_tx_a[6] set_location_assignment PIN_182 -to io_tx_a[7] set_location_assignment PIN_183 -to io_tx_a[8] set_location_assignment PIN_184 -to io_tx_a[9] set_location_assignment PIN_185 -to io_tx_a[10] set_location_assignment PIN_186 -to io_tx_a[11] set_location_assignment PIN_187 -to io_tx_a[12] set_location_assignment PIN_188 -to io_tx_a[13] set_location_assignment PIN_193 -to io_tx_a[14] set_location_assignment PIN_73 -to io_tx_b[0] set_location_assignment PIN_68 -to io_tx_b[1] set_location_assignment PIN_67 -to io_tx_b[2] set_location_assignment PIN_66 -to io_tx_b[3] set_location_assignment PIN_65 -to io_tx_b[4] set_location_assignment PIN_64 -to io_tx_b[5] set_location_assignment PIN_63 -to io_tx_b[6] set_location_assignment PIN_62 -to io_tx_b[7] set_location_assignment PIN_61 -to io_tx_b[8] set_location_assignment PIN_60 -to io_tx_b[9] set_location_assignment PIN_59 -to io_tx_b[10] set_location_assignment PIN_58 -to io_tx_b[11] set_location_assignment PIN_57 -to io_tx_b[12] set_location_assignment PIN_56 -to io_tx_b[13] set_location_assignment PIN_55 -to io_tx_b[14] set_location_assignment PIN_152 -to master_clk set_location_assignment PIN_144 -to rx_a_a[0] set_location_assignment PIN_143 -to rx_a_a[1] set_location_assignment PIN_141 -to rx_a_a[2] set_location_assignment PIN_140 -to rx_a_a[3] set_location_assignment PIN_139 -to rx_a_a[4] set_location_assignment PIN_138 -to rx_a_a[5] set_location_assignment PIN_137 -to rx_a_a[6] set_location_assignment PIN_136 -to rx_a_a[7] set_location_assignment PIN_135 -to rx_a_a[8] set_location_assignment PIN_134 -to rx_a_a[9] set_location_assignment PIN_133 -to rx_a_a[10] set_location_assignment PIN_132 -to rx_a_a[11] set_location_assignment PIN_23 -to rx_a_b[0] set_location_assignment PIN_21 -to rx_a_b[1] set_location_assignment PIN_20 -to rx_a_b[2] set_location_assignment PIN_19 -to rx_a_b[3] set_location_assignment PIN_18 -to rx_a_b[4] set_location_assignment PIN_17 -to rx_a_b[5] set_location_assignment PIN_16 -to rx_a_b[6] set_location_assignment PIN_15 -to rx_a_b[7] set_location_assignment PIN_14 -to rx_a_b[8] set_location_assignment PIN_13 -to rx_a_b[9] set_location_assignment PIN_12 -to rx_a_b[10] set_location_assignment PIN_11 -to rx_a_b[11] set_location_assignment PIN_131 -to rx_b_a[0] set_location_assignment PIN_128 -to rx_b_a[1] set_location_assignment PIN_127 -to rx_b_a[2] set_location_assignment PIN_126 -to rx_b_a[3] set_location_assignment PIN_125 -to rx_b_a[4] set_location_assignment PIN_124 -to rx_b_a[5] set_location_assignment PIN_123 -to rx_b_a[6] set_location_assignment PIN_122 -to rx_b_a[7] set_location_assignment PIN_121 -to rx_b_a[8] set_location_assignment PIN_120 -to rx_b_a[9] set_location_assignment PIN_119 -to rx_b_a[10] set_location_assignment PIN_118 -to rx_b_a[11] set_location_assignment PIN_8 -to rx_b_b[0] set_location_assignment PIN_7 -to rx_b_b[1] set_location_assignment PIN_6 -to rx_b_b[2] set_location_assignment PIN_5 -to rx_b_b[3] set_location_assignment PIN_4 -to rx_b_b[4] set_location_assignment PIN_3 -to rx_b_b[5] set_location_assignment PIN_2 -to rx_b_b[6] set_location_assignment PIN_240 -to rx_b_b[7] set_location_assignment PIN_239 -to rx_b_b[8] set_location_assignment PIN_238 -to rx_b_b[9] set_location_assignment PIN_237 -to rx_b_b[10] set_location_assignment PIN_236 -to rx_b_b[11] set_location_assignment PIN_156 -to SDO set_location_assignment PIN_153 -to SEN_FPGA set_location_assignment PIN_159 -to tx_a[0] set_location_assignment PIN_160 -to tx_a[1] set_location_assignment PIN_161 -to tx_a[2] set_location_assignment PIN_162 -to tx_a[3] set_location_assignment PIN_163 -to tx_a[4] set_location_assignment PIN_164 -to tx_a[5] set_location_assignment PIN_165 -to tx_a[6] set_location_assignment PIN_166 -to tx_a[7] set_location_assignment PIN_167 -to tx_a[8] set_location_assignment PIN_168 -to tx_a[9] set_location_assignment PIN_169 -to tx_a[10] set_location_assignment PIN_170 -to tx_a[11] set_location_assignment PIN_173 -to tx_a[12] set_location_assignment PIN_174 -to tx_a[13] set_location_assignment PIN_38 -to tx_b[0] set_location_assignment PIN_39 -to tx_b[1] set_location_assignment PIN_41 -to tx_b[2] set_location_assignment PIN_42 -to tx_b[3] set_location_assignment PIN_43 -to tx_b[4] set_location_assignment PIN_44 -to tx_b[5] set_location_assignment PIN_45 -to tx_b[6] set_location_assignment PIN_46 -to tx_b[7] set_location_assignment PIN_47 -to tx_b[8] set_location_assignment PIN_48 -to tx_b[9] set_location_assignment PIN_49 -to tx_b[10] set_location_assignment PIN_50 -to tx_b[11] set_location_assignment PIN_53 -to tx_b[12] set_location_assignment PIN_54 -to tx_b[13] set_location_assignment PIN_158 -to TXSYNC_A set_location_assignment PIN_37 -to TXSYNC_B set_location_assignment PIN_235 -to io_rx_b[15] set_location_assignment PIN_24 -to io_tx_b[15] set_location_assignment PIN_213 -to io_rx_a[15] set_location_assignment PIN_194 -to io_tx_a[15] set_location_assignment PIN_1 -to MYSTERY_SIGNAL # Timing Assignments # ================== set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF # Analysis & Synthesis Assignments # ================================ set_global_assignment -name SAVE_DISK_SPACE OFF set_global_assignment -name DEVICE_FILTER_PACKAGE "ANY QFP" set_global_assignment -name DEVICE_FILTER_PIN_COUNT 240 set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "" set_global_assignment -name FAMILY Cyclone set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE BALANCED set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name TOP_LEVEL_ENTITY usrp_inband_usb set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF set_global_assignment -name USER_LIBRARIES "e:\\usrp\\fpga\\megacells" set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON # Fitter Assignments # ================== set_global_assignment -name DEVICE EP1C12Q240C8 set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_global_assignment -name OPTIMIZE_HOLD_TIMING OFF set_global_assignment -name OPTIMIZE_TIMING "NORMAL COMPILATION" set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC OFF set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING OFF set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT NORMAL set_global_assignment -name INC_PLC_MODE OFF set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF set_instance_assignment -name IO_STANDARD LVTTL -to usbdata[12] set_global_assignment -name STRATIX_DEVICE_IO_STANDARD LVTTL set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 # Timing Analysis Assignments # =========================== set_global_assignment -name MAX_SCC_SIZE 50 # EDA Netlist Writer Assignments # ============================== set_global_assignment -name EDA_SIMULATION_TOOL "" set_global_assignment -name EDA_TIMING_ANALYSIS_TOOL "" set_global_assignment -name EDA_BOARD_DESIGN_TOOL "" set_global_assignment -name EDA_FORMAL_VERIFICATION_TOOL "" set_global_assignment -name EDA_RESYNTHESIS_TOOL "" # Assembler Assignments # ===================== set_global_assignment -name USE_CONFIGURATION_DEVICE OFF set_global_assignment -name GENERATE_RBF_FILE ON set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF # Simulator Assignments # ===================== set_global_assignment -name START_TIME "0 ns" set_global_assignment -name GLITCH_INTERVAL "1 ns" # Design Assistant Assignments # ============================ set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF set_global_assignment -name ASSG_CAT OFF set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF set_global_assignment -name CLK_CAT OFF set_global_assignment -name CLK_RULE_COMB_CLOCK OFF set_global_assignment -name CLK_RULE_INV_CLOCK OFF set_global_assignment -name CLK_RULE_GATING_SCHEME OFF set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF set_global_assignment -name CLK_RULE_MIX_EDGES OFF set_global_assignment -name RESET_CAT OFF set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name TIMING_CAT OFF set_global_assignment -name TIMING_RULE_SHIFT_REG OFF set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF set_global_assignment -name NONSYNCHSTRUCT_CAT OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF set_global_assignment -name SIGNALRACE_CAT OFF set_global_assignment -name ACLK_CAT OFF set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF set_global_assignment -name HCPY_CAT OFF set_global_assignment -name HCPY_VREF_PINS OFF # SignalTap II Assignments # ======================== set_global_assignment -name HUB_ENTITY_NAME SLD_HUB set_global_assignment -name HUB_INSTANCE_NAME SLD_HUB_INST set_global_assignment -name ENABLE_SIGNALTAP OFF # LogicLock Region Assignments # ============================ set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF # ----------------- # start CLOCK(SCLK) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id SCLK set_global_assignment -name FMAX_REQUIREMENT "1 MHz" -section_id SCLK set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id SCLK # end CLOCK(SCLK) # --------------- # ----------------------- # start CLOCK(master_clk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id master_clk set_global_assignment -name FMAX_REQUIREMENT "64 MHz" -section_id master_clk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id master_clk # end CLOCK(master_clk) # --------------------- # ------------------- # start CLOCK(usbclk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id usbclk set_global_assignment -name FMAX_REQUIREMENT "48 MHz" -section_id usbclk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id usbclk # end CLOCK(usbclk) # ----------------- # ---------------------- # start ENTITY(usrp_inband_usb) # Timing Assignments # ================== set_instance_assignment -name CLOCK_SETTINGS SCLK -to SCLK set_instance_assignment -name CLOCK_SETTINGS usbclk -to usbclk set_instance_assignment -name CLOCK_SETTINGS master_clk -to master_clk # end ENTITY(usrp_inband_usb) # -------------------- set_instance_assignment -name PARTITION_HIERARCHY no_file_for_top_partition -to | -section_id Top set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name FITTER_AUTO_EFFORT_DESIRED_SLACK_MARGIN "100 ps" set_global_assignment -name VERILOG_FILE ../../megacells/fifo_4kx16_dc.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_1kx16.v set_global_assignment -name VERILOG_FILE ../../inband_lib/channel_demux.v set_global_assignment -name VERILOG_FILE ../../inband_lib/tx_packer.v set_global_assignment -name VERILOG_FILE ../../inband_lib/cmd_reader.v set_global_assignment -name VERILOG_FILE ../../inband_lib/packet_builder.v set_global_assignment -name VERILOG_FILE ../../inband_lib/rx_buffer_inband.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/atr_delay.v set_global_assignment -name VERILOG_FILE ../../inband_lib/tx_buffer_inband.v set_global_assignment -name VERILOG_FILE ../../inband_lib/chan_fifo_reader.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_dec_shifter.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rssi.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/ram16.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_4k.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mult.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/ram16_2sum.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/coeff_rom.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/halfband_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mac.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_dcoffset.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/adc_interface.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/io_pins.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/setting_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/bidir_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_int_shifter.v set_global_assignment -name VERILOG_FILE ../../megacells/clk_doubler.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/gen_sync.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/master_control.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_2k.v set_global_assignment -name VERILOG_FILE ../../megacells/bustri.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/phase_acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_interp.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic_stage.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic.v set_global_assignment -name VERILOG_FILE usrp_inband_usb.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/clk_divider.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/serial_io.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/strobe_gen.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/sign_extend.v set_global_assignment -name VERILOG_FILE ../../inband_lib/channel_ram.v set_global_assignment -name VERILOG_FILE ../../inband_lib/register_io.v set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region" set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"uhd-3.5.5/fpga/usrp1/toplevel/usrp_inband_usb/usrp_inband_usb.v000066400000000000000000000366421224274632000246630ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003,2004 Matt Ettus // Copyright 2007 Free Software Foundation, Inc. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // `define TX_IN_BAND `define RX_IN_BAND `include "config.vh" `include "../../common/fpga_regs_common.v" `include "../../common/fpga_regs_standard.v" module usrp_inband_usb (output MYSTERY_SIGNAL, input master_clk, input SCLK, input SDI, inout SDO, input SEN_FPGA, input FX2_1, output FX2_2, output FX2_3, input wire [11:0] rx_a_a, input wire [11:0] rx_b_a, input wire [11:0] rx_a_b, input wire [11:0] rx_b_b, output wire [13:0] tx_a, output wire [13:0] tx_b, output wire TXSYNC_A, output wire TXSYNC_B, // USB interface input usbclk, input wire [2:0] usbctl, output wire [1:0] usbrdy, inout [15:0] usbdata, // NB Careful, inout // These are the general purpose i/o's that go to the daughterboard slots inout wire [15:0] io_tx_a, inout wire [15:0] io_tx_b, inout wire [15:0] io_rx_a, inout wire [15:0] io_rx_b ); wire [15:0] debugdata,debugctrl; assign MYSTERY_SIGNAL = 1'b0; wire clk64,clk128; wire WR = usbctl[0]; wire RD = usbctl[1]; wire OE = usbctl[2]; wire have_space, have_pkt_rdy; assign usbrdy[0] = have_space; assign usbrdy[1] = have_pkt_rdy; wire rx_overrun; wire clear_status = FX2_1; assign FX2_2 = rx_overrun; assign FX2_3 = (tx_underrun == 0); wire [15:0] usbdata_out; wire [3:0] dac0mux,dac1mux,dac2mux,dac3mux; wire tx_realsignals; wire [3:0] rx_numchan; wire [2:0] tx_numchan; wire [7:0] interp_rate, decim_rate; wire [15:0] tx_debugbus, rx_debugbus; wire enable_tx, enable_rx; wire tx_dsp_reset, rx_dsp_reset, tx_bus_reset, rx_bus_reset; wire [7:0] settings; // Tri-state bus macro bustri bustri( .data(usbdata_out),.enabledt(OE),.tridata(usbdata) ); wire [15:0] ch0tx,ch1tx,ch2tx,ch3tx; //,ch4tx,ch5tx,ch6tx,ch7tx; wire [15:0] ch0rx,ch1rx,ch2rx,ch3rx,ch4rx,ch5rx,ch6rx,ch7rx; // TX wire [15:0] i_out_0,i_out_1,q_out_0,q_out_1; wire [15:0] bb_tx_i0,bb_tx_q0,bb_tx_i1,bb_tx_q1; // bb_tx_i2,bb_tx_q2,bb_tx_i3,bb_tx_q3; wire strobe_interp, tx_sample_strobe; wire tx_empty; wire serial_strobe; wire [6:0] serial_addr; wire [31:0] serial_data; reg [15:0] debug_counter; reg [15:0] loopback_i_0,loopback_q_0; //Connection RX inband <-> TX inband wire rx_WR; wire [15:0] rx_databus; wire rx_WR_done; wire rx_WR_enabled; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Transmit Side `ifdef TX_ON assign bb_tx_i0 = ch0tx; assign bb_tx_q0 = ch1tx; assign bb_tx_i1 = ch2tx; assign bb_tx_q1 = ch3tx; wire [1:0] tx_underrun; `ifdef TX_IN_BAND tx_buffer_inband tx_buffer ( .usbclk(usbclk),.bus_reset(tx_bus_reset),.reset(tx_dsp_reset), .usbdata(usbdata),.WR(WR),.have_space(have_space), .tx_underrun(tx_underrun),.channels({tx_numchan,1'b0}), .tx_i_0(ch0tx),.tx_q_0(ch1tx), .tx_i_1(ch2tx),.tx_q_1(ch3tx), .tx_i_2(),.tx_q_2(), .tx_i_3(),.tx_q_3(), .txclk(clk64),.txstrobe(strobe_interp), .clear_status(clear_status), .tx_empty(tx_empty), .rx_WR(rx_WR), .rx_databus(rx_databus), .rx_WR_done(rx_WR_done), .rx_WR_enabled(rx_WR_enabled), .reg_addr(reg_addr), .reg_data_out(reg_data_out), .reg_data_in(reg_data_in), .reg_io_enable(reg_io_enable), .debugbus(rx_debugbus), .rssi_0(rssi_0), .rssi_1(rssi_1), .rssi_2(rssi_2), .rssi_3(rssi_3), .threshhold(rssi_threshhold), .rssi_wait(rssi_wait), .stop(stop), .stop_time(stop_time)); `ifdef TX_DUAL defparam tx_buffer.NUM_CHAN=2; `endif `else tx_buffer tx_buffer ( .usbclk(usbclk),.bus_reset(tx_bus_reset),.reset(tx_dsp_reset), .usbdata(usbdata),.WR(WR),.have_space(have_space),.tx_underrun(tx_underrun), .channels({tx_numchan,1'b0}), .tx_i_0(ch0tx),.tx_q_0(ch1tx), .tx_i_1(ch2tx),.tx_q_1(ch3tx), .tx_i_2(),.tx_q_2(), .tx_i_3(),.tx_q_3(), .txclk(clk64),.txstrobe(strobe_interp), .clear_status(clear_status), .tx_empty(tx_empty)); `endif `ifdef TX_EN_0 tx_chain tx_chain_0 ( .clock(clk64),.reset(tx_dsp_reset),.enable(enable_tx), .interp_rate(interp_rate),.sample_strobe(tx_sample_strobe), .interpolator_strobe(strobe_interp),.freq(), .i_in(bb_tx_i0),.q_in(bb_tx_q0),.i_out(i_out_0),.q_out(q_out_0) ); `else assign i_out_0=16'd0; assign q_out_0=16'd0; `endif `ifdef TX_EN_1 tx_chain tx_chain_1 ( .clock(clk64),.reset(tx_dsp_reset),.enable(enable_tx), .interp_rate(interp_rate),.sample_strobe(tx_sample_strobe), .interpolator_strobe(strobe_interp),.freq(), .i_in(bb_tx_i1),.q_in(bb_tx_q1),.i_out(i_out_1),.q_out(q_out_1) ); `else assign i_out_1=16'd0; assign q_out_1=16'd0; `endif setting_reg #(`FR_TX_MUX) sr_txmux(.clock(clk64),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({dac3mux,dac2mux,dac1mux,dac0mux,tx_realsignals,tx_numchan})); wire [15:0] tx_a_a = dac0mux[3] ? (dac0mux[1] ? (dac0mux[0] ? q_out_1 : i_out_1) : (dac0mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_b_a = dac1mux[3] ? (dac1mux[1] ? (dac1mux[0] ? q_out_1 : i_out_1) : (dac1mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_a_b = dac2mux[3] ? (dac2mux[1] ? (dac2mux[0] ? q_out_1 : i_out_1) : (dac2mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_b_b = dac3mux[3] ? (dac3mux[1] ? (dac3mux[0] ? q_out_1 : i_out_1) : (dac3mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire txsync = tx_sample_strobe; assign TXSYNC_A = txsync; assign TXSYNC_B = txsync; assign tx_a = txsync ? tx_b_a[15:2] : tx_a_a[15:2]; assign tx_b = txsync ? tx_b_b[15:2] : tx_a_b[15:2]; `endif // `ifdef TX_ON ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Receive Side `ifdef RX_ON wire rx_sample_strobe,strobe_decim,hb_strobe; wire [15:0] bb_rx_i0,bb_rx_q0,bb_rx_i1,bb_rx_q1, bb_rx_i2,bb_rx_q2,bb_rx_i3,bb_rx_q3; wire loopback = settings[0]; wire counter = settings[1]; always @(posedge clk64) if(rx_dsp_reset) debug_counter <= #1 16'd0; else if(~enable_rx) debug_counter <= #1 16'd0; else if(hb_strobe) debug_counter <=#1 debug_counter + 16'd2; always @(posedge clk64) if(strobe_interp) begin loopback_i_0 <= #1 ch0tx; loopback_q_0 <= #1 ch1tx; end assign ch0rx = counter ? debug_counter : loopback ? loopback_i_0 : bb_rx_i0; assign ch1rx = counter ? debug_counter + 16'd1 : loopback ? loopback_q_0 : bb_rx_q0; assign ch2rx = bb_rx_i1; assign ch3rx = bb_rx_q1; assign ch4rx = bb_rx_i2; assign ch5rx = bb_rx_q2; assign ch6rx = bb_rx_i3; assign ch7rx = bb_rx_q3; wire [15:0] ddc0_in_i,ddc0_in_q,ddc1_in_i,ddc1_in_q,ddc2_in_i,ddc2_in_q,ddc3_in_i,ddc3_in_q; wire [31:0] rssi_0,rssi_1,rssi_2,rssi_3; adc_interface adc_interface(.clock(clk64),.reset(rx_dsp_reset),.enable(1'b1), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(rx_a_b),.rx_b_b(rx_b_b), .rssi_0(rssi_0),.rssi_1(rssi_1),.rssi_2(rssi_2),.rssi_3(rssi_3), .ddc0_in_i(ddc0_in_i),.ddc0_in_q(ddc0_in_q), .ddc1_in_i(ddc1_in_i),.ddc1_in_q(ddc1_in_q), .ddc2_in_i(ddc2_in_i),.ddc2_in_q(ddc2_in_q), .ddc3_in_i(ddc3_in_i),.ddc3_in_q(ddc3_in_q),.rx_numchan(rx_numchan)); `ifdef RX_IN_BAND rx_buffer_inband rx_buffer ( .usbclk(usbclk),.bus_reset(rx_bus_reset),.reset(rx_dsp_reset), .reset_regs(rx_dsp_reset), .usbdata(usbdata_out),.RD(RD),.have_pkt_rdy(have_pkt_rdy),.rx_overrun(rx_overrun), .channels(rx_numchan), .ch_0(ch0rx),.ch_1(ch1rx), .ch_2(ch2rx),.ch_3(ch3rx), .ch_4(ch4rx),.ch_5(ch5rx), .ch_6(ch6rx),.ch_7(ch7rx), .rxclk(clk64),.rxstrobe(hb_strobe), .clear_status(clear_status), .rx_WR(rx_WR), .rx_databus(rx_databus), .rx_WR_done(rx_WR_done), .rx_WR_enabled(rx_WR_enabled), .debugbus(tx_debugbus), .rssi_0(rssi_0), .rssi_1(rssi_1), .rssi_2(rssi_2), .rssi_3(rssi_3), .tx_underrun(tx_underrun)); `ifdef RX_DUAL defparam rx_buffer.NUM_CHAN=2; `endif `else rx_buffer rx_buffer ( .usbclk(usbclk),.bus_reset(rx_bus_reset),.reset(rx_dsp_reset), .reset_regs(rx_dsp_reset), .usbdata(usbdata_out),.RD(RD),.have_pkt_rdy(have_pkt_rdy),.rx_overrun(rx_overrun), .channels(rx_numchan), .ch_0(ch0rx),.ch_1(ch1rx), .ch_2(ch2rx),.ch_3(ch3rx), .ch_4(ch4rx),.ch_5(ch5rx), .ch_6(ch6rx),.ch_7(ch7rx), .rxclk(clk64),.rxstrobe(hb_strobe), .clear_status(clear_status), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe)); `endif `ifdef RX_EN_0 rx_chain #(`FR_RX_FREQ_0,`FR_RX_PHASE_0) rx_chain_0 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(hb_strobe), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc0_in_i),.q_in(ddc0_in_q),.i_out(bb_rx_i0),.q_out(bb_rx_q0),.debugdata(debugdata),.debugctrl(debugctrl)); `else assign bb_rx_i0=16'd0; assign bb_rx_q0=16'd0; `endif `ifdef RX_EN_1 rx_chain #(`FR_RX_FREQ_1,`FR_RX_PHASE_1) rx_chain_1 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc1_in_i),.q_in(ddc1_in_q),.i_out(bb_rx_i1),.q_out(bb_rx_q1)); `else assign bb_rx_i1=16'd0; assign bb_rx_q1=16'd0; `endif `ifdef RX_EN_2 rx_chain #(`FR_RX_FREQ_2,`FR_RX_PHASE_2) rx_chain_2 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc2_in_i),.q_in(ddc2_in_q),.i_out(bb_rx_i2),.q_out(bb_rx_q2)); `else assign bb_rx_i2=16'd0; assign bb_rx_q2=16'd0; `endif `ifdef RX_EN_3 rx_chain #(`FR_RX_FREQ_3,`FR_RX_PHASE_3) rx_chain_3 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc3_in_i),.q_in(ddc3_in_q),.i_out(bb_rx_i3),.q_out(bb_rx_q3)); `else assign bb_rx_i3=16'd0; assign bb_rx_q3=16'd0; `endif `endif // `ifdef RX_ON /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Control Functions wire [31:0] capabilities; assign capabilities[7] = `TX_CAP_HB; assign capabilities[6:4] = `TX_CAP_NCHAN; assign capabilities[3] = `RX_CAP_HB; assign capabilities[2:0] = `RX_CAP_NCHAN; serial_io serial_io ( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI), .enable(SEN_FPGA),.reset(1'b0),.serial_data_out(SDO), .serial_addr(addr_db),.serial_data(data_db),.serial_strobe(strobe_db), .readback_0({io_rx_a,io_tx_a}),.readback_1({io_rx_b,io_tx_b}),.readback_2(capabilities),.readback_3(32'hf0f0931a), .readback_4(rssi_0),.readback_5(rssi_1),.readback_6(rssi_2),.readback_7(rssi_3) ); wire [6:0] reg_addr; wire [31:0] reg_data_out; wire [31:0] reg_data_in; wire [1:0] reg_io_enable; wire [31:0] rssi_threshhold; wire [31:0] rssi_wait; wire [6:0] addr_wr; wire [31:0] data_wr; wire strobe_wr; wire [6:0] addr_db; wire [31:0] data_db; wire strobe_db; assign serial_strobe = strobe_db | strobe_wr; assign serial_addr = (strobe_db)? (addr_db) : (addr_wr); assign serial_data = (strobe_db)? (data_db) : (data_wr); //assign serial_strobe = strobe_wr; //assign serial_data = data_wr; //assign serial_addr = addr_wr; register_io register_control (.clk(clk64),.reset(1'b0),.enable(reg_io_enable),.addr(reg_addr),.datain(reg_data_in), .dataout(reg_data_out), .addr_wr(addr_wr), .data_wr(data_wr), .strobe_wr(strobe_wr), .rssi_0(rssi_0), .rssi_1(rssi_1), .rssi_2(rssi_2), .rssi_3(rssi_3), .threshhold(rssi_threshhold), .rssi_wait(rssi_wait), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3), .debug_en(debug_en), .misc(settings), .txmux({dac3mux,dac2mux,dac1mux,dac0mux,tx_realsignals,tx_numchan})); //implementing freeze mode reg [15:0] timestop; wire stop; wire [15:0] stop_time; assign clk64 = (timestop == 0) ? master_clk : 0; always @(posedge master_clk) if (timestop[15:0] != 0) timestop <= timestop - 16'd1; else if (stop) timestop <= stop_time; wire [15:0] reg_0,reg_1,reg_2,reg_3; master_control master_control ( .master_clk(clk64),.usbclk(usbclk), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .tx_bus_reset(tx_bus_reset),.rx_bus_reset(rx_bus_reset), .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .interp_rate(interp_rate),.decim_rate(decim_rate), .tx_sample_strobe(tx_sample_strobe),.strobe_interp(strobe_interp), .rx_sample_strobe(rx_sample_strobe),.strobe_decim(strobe_decim), .tx_empty(tx_empty), //.debug_0(rx_a_a),.debug_1(ddc0_in_i), .debug_0(rx_debugbus),.debug_1(ddc0_in_i), .debug_2({rx_sample_strobe,strobe_decim,serial_strobe,serial_addr}),.debug_3({rx_dsp_reset,tx_dsp_reset,rx_bus_reset,tx_bus_reset,enable_rx,tx_underrun,rx_overrun,decim_rate}), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3) ); io_pins io_pins (.io_0(io_tx_a),.io_1(io_rx_a),.io_2(io_tx_b),.io_3(io_rx_b), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3), .clock(clk64),.rx_reset(rx_dsp_reset),.tx_reset(tx_dsp_reset), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe)); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Misc Settings setting_reg #(`FR_MODE) sr_misc(.clock(clk64),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(settings)); endmodule // usrp_inband_usb uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/000077500000000000000000000000001224274632000203325ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/.gitignore000066400000000000000000000001621224274632000223210ustar00rootroot00000000000000/*.qws /*.eqn /*.done /*.htm /*.rpt /*.ini /*.fsf /*.jam /*.jbc /*.pin /*.pof /*.sof /*.rbf /*.ttf /*.summary /db uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/config.vh000066400000000000000000000046171224274632000221460ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006,2007 Matt Ettus // Copyright (C) 2006 Martin Dudok van Heel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ==================================================================== // User control over what parts get included // // >>>> EDIT ONLY THIS SECTION <<<< // Uncomment only ONE configuration // ==================================================================== // ==================================================================== // FIXME drive configuration selection from the command line and/or gui // ==================================================================== `define MULTI_ON // enable multi usrp configuration // Uncomment this for 1 rx channel (w/ halfband) & 1 transmit channel //`include "../include/common_config_1rxhb_1tx.vh" // Uncomment this for multi with 2 rx channels (w/ halfband) & 2 transmit channels `include "../include/common_config_2rxhb_2tx.vh" // Uncomment this for multi with 4 rx channels (w/o halfband) & 0 transmit channels //`include "../include/common_config_4rx_0tx.vh" // Uncomment this for multi with 2 rx channels (w/ halfband) & 0 transmit channels //`include "../include/common_config_2rxhb_0tx.vh" // Uncomment this for multi with 2 rx channels (w/o halfband) & 0 transmit channels //`include "../include/common_config_2rx_0tx.vh" // Add other "known to fit" configurations here... // ==================================================================== // Now include the common footer // ==================================================================== `ifdef MULTI_ON `define COUNTER_32BIT_ON `endif `include "../include/common_config_bottom.vh" uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/usrp_multi.csf000066400000000000000000000405121224274632000232340ustar00rootroot00000000000000COMPILER_SETTINGS { IO_PLACEMENT_OPTIMIZATION = OFF; ENABLE_DRC_SETTINGS = OFF; PHYSICAL_SYNTHESIS_REGISTER_RETIMING = OFF; PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION = OFF; PHYSICAL_SYNTHESIS_COMBO_LOGIC = OFF; DRC_FANOUT_EXCEEDING = 30; DRC_REPORT_FANOUT_EXCEEDING = OFF; DRC_TOP_FANOUT = 50; DRC_REPORT_TOP_FANOUT = OFF; RUN_DRC_DURING_COMPILATION = OFF; ADV_NETLIST_OPT_RETIME_CORE_AND_IO = ON; ADV_NETLIST_OPT_SYNTH_USE_FITTER_INFO = OFF; ADV_NETLIST_OPT_SYNTH_GATE_RETIME = OFF; ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP = OFF; SMART_COMPILE_IGNORES_TDC_FOR_STRATIX_PLL_CHANGES = OFF; MERGE_HEX_FILE = OFF; TRUE_WYSIWYG_FLOW = OFF; SEED = 1; FINAL_PLACEMENT_OPTIMIZATION = AUTOMATICALLY; FAMILY = Cyclone; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "LOWER TO 1ESB UPPER TO 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DEEP_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_SINGLE_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_WIDE_MODE_OUTPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4ESB"; DPRAM_DEEP_MODE_OUTPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_INPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4"; DPRAM_DEEP_MODE_INPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_OTHER_SIGNALS_EPXA4_10 = "DEFAULT OTHER ROUTING OPTIONS"; DPRAM_OUTPUT_EPXA4_10 = "DEFAULT OUTPUT ROUTING OPTIONS"; DPRAM_INPUT_EPXA4_10 = "DEFAULT INPUT ROUTING OPTIONS"; STRIPE_TO_PLD_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PLD_TO_STRIPE_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PROCESSOR_DEBUG_EXTENSIONS_EPXA4_10 = "MEGALAB COLUMN 2"; STRIPE_TO_PLD_BRIDGE_EPXA4_10 = "MEGALAB COLUMN 1"; FAST_FIT_COMPILATION = OFF; SIGNALPROBE_DURING_NORMAL_COMPILATION = OFF; OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING = ON; OPTIMIZE_TIMING = "NORMAL COMPILATION"; OPTIMIZE_HOLD_TIMING = OFF; COMPILATION_LEVEL = FULL; SAVE_DISK_SPACE = OFF; SPEED_DISK_USAGE_TRADEOFF = NORMAL; LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT = OFF; SIGNALPROBE_ALLOW_OVERUSE = OFF; FOCUS_ENTITY_NAME = |usrp_multi; ROUTING_BACK_ANNOTATION_MODE = OFF; INC_PLC_MODE = OFF; FIT_ONLY_ONE_ATTEMPT = OFF; } DEFAULT_DEVICE_OPTIONS { GENERATE_CONFIG_HEXOUT_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_JBC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_SVF_FILE = OFF; RESERVE_PIN = "AS INPUT TRI-STATED"; RESERVE_ALL_UNUSED_PINS = "AS OUTPUT DRIVING GROUND"; HEXOUT_FILE_COUNT_DIRECTION = UP; HEXOUT_FILE_START_ADDRESS = 0; GENERATE_HEX_FILE = OFF; GENERATE_RBF_FILE = OFF; GENERATE_TTF_FILE = OFF; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; APEX20K_CONFIGURATION_DEVICE = AUTO; USE_CONFIGURATION_DEVICE = ON; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; AUTO_RESTART_CONFIGURATION = OFF; ENABLE_VREFB_PIN = OFF; ENABLE_VREFA_PIN = OFF; SECURITY_BIT = OFF; USER_START_UP_CLOCK = OFF; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "ACTIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_UPDATE_MODE = STANDARD; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MERCURY_JTAG_USER_CODE = FFFFFFFF; APEX20K_JTAG_USER_CODE = FFFFFFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; ENABLE_JTAG_BST_SUPPORT = OFF; CONFIGURATION_CLOCK_DIVISOR = 1; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CLOCK_SOURCE = INTERNAL; COMPRESSION_MODE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; } AUTO_SLD_HUB_ENTITY { AUTO_INSERT_SLD_HUB_ENTITY = ENABLE; HUB_INSTANCE_NAME = SLD_HUB_INST; HUB_ENTITY_NAME = SLD_HUB; } SIGNALTAP_LOGIC_ANALYZER_SETTINGS { ENABLE_SIGNALTAP = Off; AUTO_ENABLE_SMART_COMPILE = On; } CHIP(usrp_multi) { DEVICE = EP1C12Q240C8; DEVICE_FILTER_PACKAGE = "ANY QFP"; DEVICE_FILTER_PIN_COUNT = 240; DEVICE_FILTER_SPEED_GRADE = ANY; AUTO_RESTART_CONFIGURATION = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; USER_START_UP_CLOCK = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_JTAG_BST_SUPPORT = OFF; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; APEX20K_JTAG_USER_CODE = FFFFFFFF; MERCURY_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MAX7000_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; USE_CONFIGURATION_DEVICE = OFF; APEX20K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; STRATIX_UPDATE_MODE = STANDARD; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; COMPRESSION_MODE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; GENERATE_TTF_FILE = OFF; GENERATE_RBF_FILE = ON; GENERATE_HEX_FILE = OFF; SECURITY_BIT = OFF; ENABLE_VREFA_PIN = OFF; ENABLE_VREFB_PIN = OFF; GENERATE_SVF_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_JBC_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_HEXOUT_FILE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; BASE_PIN_OUT_FILE_ON_SAMEFRAME_DEVICE = OFF; HEXOUT_FILE_START_ADDRESS = 0; HEXOUT_FILE_COUNT_DIRECTION = UP; RESERVE_ALL_UNUSED_PINS = "AS INPUT TRI-STATED"; STRATIX_DEVICE_IO_STANDARD = LVTTL; CLOCK_SOURCE = INTERNAL; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CONFIGURATION_CLOCK_DIVISOR = 1; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; SCLK : LOCATION = Pin_101; SDI : LOCATION = Pin_100; SEN : LOCATION = Pin_98; SLD : LOCATION = Pin_95; adc1_data[0] : LOCATION = Pin_5; adc1_data[10] : LOCATION = Pin_235; adc1_data[11] : LOCATION = Pin_234; adc1_data[1] : LOCATION = Pin_4; adc1_data[2] : LOCATION = Pin_3; adc1_data[3] : LOCATION = Pin_2; adc1_data[4] : LOCATION = Pin_1; adc1_data[4] : IO_STANDARD = LVTTL; adc1_data[5] : LOCATION = Pin_240; adc1_data[6] : LOCATION = Pin_239; adc1_data[7] : LOCATION = Pin_238; adc1_data[8] : LOCATION = Pin_237; adc1_data[9] : LOCATION = Pin_236; adc2_data[0] : LOCATION = Pin_20; adc2_data[10] : LOCATION = Pin_8; adc2_data[11] : LOCATION = Pin_7; adc2_data[1] : LOCATION = Pin_19; adc2_data[2] : LOCATION = Pin_18; adc2_data[3] : LOCATION = Pin_17; adc2_data[4] : LOCATION = Pin_16; adc2_data[5] : LOCATION = Pin_15; adc2_data[6] : LOCATION = Pin_14; adc2_data[7] : LOCATION = Pin_13; adc2_data[8] : LOCATION = Pin_12; adc2_data[9] : LOCATION = Pin_11; adc3_data[0] : LOCATION = Pin_200; adc3_data[10] : LOCATION = Pin_184; adc3_data[11] : LOCATION = Pin_183; adc3_data[1] : LOCATION = Pin_197; adc3_data[2] : LOCATION = Pin_196; adc3_data[3] : LOCATION = Pin_195; adc3_data[4] : LOCATION = Pin_194; adc3_data[5] : LOCATION = Pin_193; adc3_data[6] : LOCATION = Pin_188; adc3_data[7] : LOCATION = Pin_187; adc3_data[8] : LOCATION = Pin_186; adc3_data[9] : LOCATION = Pin_185; adc4_data[0] : LOCATION = Pin_222; adc4_data[10] : LOCATION = Pin_203; adc4_data[11] : LOCATION = Pin_202; adc4_data[1] : LOCATION = Pin_219; adc4_data[2] : LOCATION = Pin_217; adc4_data[3] : LOCATION = Pin_216; adc4_data[4] : LOCATION = Pin_215; adc4_data[5] : LOCATION = Pin_214; adc4_data[6] : LOCATION = Pin_213; adc4_data[7] : LOCATION = Pin_208; adc4_data[8] : LOCATION = Pin_207; adc4_data[9] : LOCATION = Pin_206; adc_oeb[0] : LOCATION = Pin_228; adc_oeb[1] : LOCATION = Pin_21; adc_oeb[2] : LOCATION = Pin_181; adc_oeb[3] : LOCATION = Pin_218; adc_otr[0] : LOCATION = Pin_233; adc_otr[1] : LOCATION = Pin_6; adc_otr[2] : LOCATION = Pin_182; adc_otr[3] : LOCATION = Pin_201; adclk0 : LOCATION = Pin_224; adclk1 : LOCATION = Pin_226; clk0 : LOCATION = Pin_28; clk0 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk0 : IO_STANDARD = LVTTL; clk1 : LOCATION = Pin_29; clk1 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk1 : IO_STANDARD = LVTTL; clk3 : LOCATION = Pin_152; clk3 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk3 : IO_STANDARD = LVTTL; clk_120mhz : LOCATION = Pin_153; clk_120mhz : IO_STANDARD = LVTTL; clk_out : LOCATION = Pin_63; clk_out : IO_STANDARD = LVTTL; dac1_data[0] : LOCATION = Pin_165; dac1_data[10] : LOCATION = Pin_177; dac1_data[11] : LOCATION = Pin_178; dac1_data[12] : LOCATION = Pin_179; dac1_data[13] : LOCATION = Pin_180; dac1_data[1] : LOCATION = Pin_166; dac1_data[2] : LOCATION = Pin_167; dac1_data[3] : LOCATION = Pin_168; dac1_data[4] : LOCATION = Pin_169; dac1_data[5] : LOCATION = Pin_170; dac1_data[6] : LOCATION = Pin_173; dac1_data[7] : LOCATION = Pin_174; dac1_data[8] : LOCATION = Pin_175; dac1_data[9] : LOCATION = Pin_176; dac2_data[0] : LOCATION = Pin_159; dac2_data[10] : LOCATION = Pin_163; dac2_data[11] : LOCATION = Pin_139; dac2_data[12] : LOCATION = Pin_164; dac2_data[13] : LOCATION = Pin_138; dac2_data[1] : LOCATION = Pin_158; dac2_data[2] : LOCATION = Pin_160; dac2_data[3] : LOCATION = Pin_156; dac2_data[4] : LOCATION = Pin_161; dac2_data[5] : LOCATION = Pin_144; dac2_data[6] : LOCATION = Pin_162; dac2_data[7] : LOCATION = Pin_141; dac2_data[8] : LOCATION = Pin_143; dac2_data[9] : LOCATION = Pin_140; dac3_data[0] : LOCATION = Pin_122; dac3_data[10] : LOCATION = Pin_134; dac3_data[11] : LOCATION = Pin_135; dac3_data[12] : LOCATION = Pin_136; dac3_data[13] : LOCATION = Pin_137; dac3_data[1] : LOCATION = Pin_123; dac3_data[2] : LOCATION = Pin_124; dac3_data[3] : LOCATION = Pin_125; dac3_data[4] : LOCATION = Pin_126; dac3_data[5] : LOCATION = Pin_127; dac3_data[6] : LOCATION = Pin_128; dac3_data[7] : LOCATION = Pin_131; dac3_data[8] : LOCATION = Pin_132; dac3_data[9] : LOCATION = Pin_133; dac4_data[0] : LOCATION = Pin_104; dac4_data[10] : LOCATION = Pin_118; dac4_data[11] : LOCATION = Pin_119; dac4_data[12] : LOCATION = Pin_120; dac4_data[13] : LOCATION = Pin_121; dac4_data[1] : LOCATION = Pin_105; dac4_data[2] : LOCATION = Pin_106; dac4_data[3] : LOCATION = Pin_107; dac4_data[4] : LOCATION = Pin_108; dac4_data[5] : LOCATION = Pin_113; dac4_data[6] : LOCATION = Pin_114; dac4_data[7] : LOCATION = Pin_115; dac4_data[8] : LOCATION = Pin_116; dac4_data[9] : LOCATION = Pin_117; enable_rx : LOCATION = Pin_88; enable_tx : LOCATION = Pin_93; gndbus[0] : LOCATION = Pin_223; gndbus[0] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[0] : IO_STANDARD = LVTTL; gndbus[1] : LOCATION = Pin_225; gndbus[1] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[1] : IO_STANDARD = LVTTL; gndbus[2] : LOCATION = Pin_227; gndbus[2] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[2] : IO_STANDARD = LVTTL; gndbus[3] : LOCATION = Pin_62; gndbus[3] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[3] : IO_STANDARD = LVTTL; gndbus[4] : LOCATION = Pin_64; gndbus[4] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[4] : IO_STANDARD = LVTTL; misc_pins[0] : LOCATION = Pin_87; misc_pins[0] : IO_STANDARD = LVTTL; misc_pins[10] : LOCATION = Pin_76; misc_pins[10] : IO_STANDARD = LVTTL; misc_pins[11] : LOCATION = Pin_74; misc_pins[11] : IO_STANDARD = LVTTL; misc_pins[1] : LOCATION = Pin_86; misc_pins[1] : IO_STANDARD = LVTTL; misc_pins[2] : LOCATION = Pin_85; misc_pins[2] : IO_STANDARD = LVTTL; misc_pins[3] : LOCATION = Pin_84; misc_pins[3] : IO_STANDARD = LVTTL; misc_pins[4] : LOCATION = Pin_83; misc_pins[4] : IO_STANDARD = LVTTL; misc_pins[5] : LOCATION = Pin_82; misc_pins[5] : IO_STANDARD = LVTTL; misc_pins[6] : LOCATION = Pin_79; misc_pins[6] : IO_STANDARD = LVTTL; misc_pins[7] : LOCATION = Pin_78; misc_pins[7] : IO_STANDARD = LVTTL; misc_pins[8] : LOCATION = Pin_77; misc_pins[8] : IO_STANDARD = LVTTL; misc_pins[9] : LOCATION = Pin_75; misc_pins[9] : IO_STANDARD = LVTTL; reset : LOCATION = Pin_94; usbclk : LOCATION = Pin_55; usbctl[0] : LOCATION = Pin_56; usbctl[1] : LOCATION = Pin_54; usbctl[2] : LOCATION = Pin_53; usbctl[3] : LOCATION = Pin_58; usbctl[4] : LOCATION = Pin_57; usbctl[5] : LOCATION = Pin_44; usbdata[0] : LOCATION = Pin_73; usbdata[10] : LOCATION = Pin_41; usbdata[11] : LOCATION = Pin_39; usbdata[12] : LOCATION = Pin_38; usbdata[12] : IO_STANDARD = LVTTL; usbdata[13] : LOCATION = Pin_37; usbdata[14] : LOCATION = Pin_24; usbdata[15] : LOCATION = Pin_23; usbdata[1] : LOCATION = Pin_68; usbdata[2] : LOCATION = Pin_67; usbdata[3] : LOCATION = Pin_66; usbdata[4] : LOCATION = Pin_65; usbdata[5] : LOCATION = Pin_61; usbdata[6] : LOCATION = Pin_60; usbdata[7] : LOCATION = Pin_59; usbdata[8] : LOCATION = Pin_43; usbdata[9] : LOCATION = Pin_42; usbrdy[0] : LOCATION = Pin_45; usbrdy[1] : LOCATION = Pin_46; usbrdy[2] : LOCATION = Pin_47; usbrdy[3] : LOCATION = Pin_48; usbrdy[4] : LOCATION = Pin_49; usbrdy[5] : LOCATION = Pin_50; clear_status : LOCATION = Pin_99; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/usrp_multi.esf000066400000000000000000000005521224274632000232360ustar00rootroot00000000000000SIMULATOR_SETTINGS { ESTIMATE_POWER_CONSUMPTION = OFF; GLITCH_INTERVAL = 1NS; GLITCH_DETECTION = OFF; SIMULATION_COVERAGE = ON; CHECK_OUTPUTS = OFF; SETUP_HOLD_DETECTION = OFF; POWER_ESTIMATION_START_TIME = "0 NS"; ADD_DEFAULT_PINS_TO_SIMULATION_OUTPUT_WAVEFORMS = ON; SIMULATION_MODE = TIMING; START_TIME = 0NS; USE_COMPILER_SETTINGS = usrp_multi; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/usrp_multi.psf000066400000000000000000000224601224274632000232530ustar00rootroot00000000000000DEFAULT_DESIGN_ASSISTANT_SETTINGS { HCPY_ALOAD_SIGNALS = OFF; HCPY_VREF_PINS = OFF; HCPY_CAT = OFF; HCPY_ILLEGAL_HC_DEV_PKG = OFF; ACLK_RULE_IMSZER_ADOMAIN = OFF; ACLK_RULE_SZER_BTW_ACLK_DOMAIN = OFF; ACLK_RULE_NO_SZER_ACLK_DOMAIN = OFF; ACLK_CAT = OFF; SIGNALRACE_RULE_ASYNCHPIN_SYNCH_CLKPIN = OFF; SIGNALRACE_CAT = OFF; NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED = OFF; NONSYNCHSTRUCT_RULE_SRLATCH = OFF; NONSYNCHSTRUCT_RULE_DLATCH = OFF; NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR = OFF; NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN = OFF; NONSYNCHSTRUCT_RULE_RIPPLE_CLK = OFF; NONSYNCHSTRUCT_RULE_DELAY_CHAIN = OFF; NONSYNCHSTRUCT_RULE_REG_LOOP = OFF; NONSYNCHSTRUCT_RULE_COMBLOOP = OFF; NONSYNCHSTRUCT_CAT = OFF; NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE = OFF; TIMING_RULE_COIN_CLKEDGE = OFF; TIMING_RULE_SHIFT_REG = OFF; TIMING_RULE_HIGH_FANOUTS = OFF; TIMING_CAT = OFF; RESET_RULE_ALL = OFF; RESET_RULE_IMSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_UNSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_REG_ASNYCH = OFF; RESET_RULE_COMB_ASYNCH_RESET = OFF; RESET_RULE_IMSYNCH_EXRESET = OFF; RESET_RULE_UNSYNCH_EXRESET = OFF; RESET_RULE_INPINS_RESETNET = OFF; RESET_CAT = OFF; CLK_RULE_ALL = OFF; CLK_RULE_MIX_EDGES = OFF; CLK_RULE_CLKNET_CLKSPINES = OFF; CLK_RULE_INPINS_CLKNET = OFF; CLK_RULE_GATING_SCHEME = OFF; CLK_RULE_INV_CLOCK = OFF; CLK_RULE_COMB_CLOCK = OFF; CLK_CAT = OFF; HCPY_EXCEED_USER_IO_USAGE = OFF; HCPY_EXCEED_RAM_USAGE = OFF; NONSYNCHSTRUCT_RULE_ASYN_RAM = OFF; SIGNALRACE_RULE_TRISTATE = OFF; ASSG_RULE_MISSING_TIMING = OFF; ASSG_RULE_MISSING_FMAX = OFF; ASSG_CAT = OFF; } SYNTHESIS_FITTING_SETTINGS { AUTO_SHIFT_REGISTER_RECOGNITION = ON; AUTO_DSP_RECOGNITION = ON; AUTO_RAM_RECOGNITION = ON; REMOVE_DUPLICATE_LOGIC = ON; AUTO_TURBO_BIT = ON; AUTO_MERGE_PLLS = ON; AUTO_OPEN_DRAIN_PINS = ON; AUTO_PARALLEL_EXPANDERS = ON; AUTO_FAST_OUTPUT_ENABLE_REGISTERS = OFF; AUTO_FAST_OUTPUT_REGISTERS = OFF; AUTO_FAST_INPUT_REGISTERS = OFF; AUTO_CASCADE_CHAINS = ON; AUTO_CARRY_CHAINS = ON; AUTO_DELAY_CHAINS = ON; MAX7000_PARALLEL_EXPANDER_CHAIN_LENGTH = 4; PARALLEL_EXPANDER_CHAIN_LENGTH = 16; CASCADE_CHAIN_LENGTH = 2; STRATIX_CARRY_CHAIN_LENGTH = 70; MERCURY_CARRY_CHAIN_LENGTH = 48; FLEX10K_CARRY_CHAIN_LENGTH = 32; FLEX6K_CARRY_CHAIN_LENGTH = 32; CARRY_CHAIN_LENGTH = 48; CARRY_OUT_PINS_LCELL_INSERT = ON; NORMAL_LCELL_INSERT = ON; AUTO_LCELL_INSERTION = ON; ALLOW_XOR_GATE_USAGE = ON; AUTO_PACKED_REGISTERS_STRATIX = NORMAL; AUTO_PACKED_REGISTERS = OFF; AUTO_PACKED_REG_CYCLONE = NORMAL; FLEX10K_OPTIMIZATION_TECHNIQUE = AREA; FLEX6K_OPTIMIZATION_TECHNIQUE = AREA; MERCURY_OPTIMIZATION_TECHNIQUE = AREA; APEX20K_OPTIMIZATION_TECHNIQUE = SPEED; MAX7000_OPTIMIZATION_TECHNIQUE = SPEED; STRATIX_OPTIMIZATION_TECHNIQUE = SPEED; CYCLONE_OPTIMIZATION_TECHNIQUE = AREA; FLEX10K_TECHNOLOGY_MAPPER = LUT; FLEX6K_TECHNOLOGY_MAPPER = LUT; MERCURY_TECHNOLOGY_MAPPER = LUT; APEX20K_TECHNOLOGY_MAPPER = LUT; MAX7000_TECHNOLOGY_MAPPER = "PRODUCT TERM"; STRATIX_TECHNOLOGY_MAPPER = LUT; AUTO_IMPLEMENT_IN_ROM = OFF; AUTO_GLOBAL_MEMORY_CONTROLS = OFF; AUTO_GLOBAL_REGISTER_CONTROLS = ON; AUTO_GLOBAL_OE = ON; AUTO_GLOBAL_CLOCK = ON; USE_LPM_FOR_AHDL_OPERATORS = ON; LIMIT_AHDL_INTEGERS_TO_32_BITS = OFF; ENABLE_BUS_HOLD_CIRCUITRY = OFF; WEAK_PULL_UP_RESISTOR = OFF; TURBO_BIT = ON; MAX7000_IGNORE_SOFT_BUFFERS = OFF; IGNORE_SOFT_BUFFERS = ON; MAX7000_IGNORE_LCELL_BUFFERS = AUTO; IGNORE_LCELL_BUFFERS = OFF; IGNORE_ROW_GLOBAL_BUFFERS = OFF; IGNORE_GLOBAL_BUFFERS = OFF; IGNORE_CASCADE_BUFFERS = OFF; IGNORE_CARRY_BUFFERS = OFF; REMOVE_DUPLICATE_REGISTERS = ON; REMOVE_REDUNDANT_LOGIC_CELLS = OFF; ALLOW_POWER_UP_DONT_CARE = ON; PCI_IO = OFF; NOT_GATE_PUSH_BACK = ON; SLOW_SLEW_RATE = OFF; DSP_BLOCK_BALANCING = AUTO; STATE_MACHINE_PROCESSING = AUTO; } DEFAULT_HARDCOPY_SETTINGS { HARDCOPY_EXTERNAL_CLOCK_JITTER = "0.0 NS"; } DEFAULT_TIMING_REQUIREMENTS { INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; RUN_ALL_TIMING_ANALYSES = ON; IGNORE_CLOCK_SETTINGS = OFF; DEFAULT_HOLD_MULTICYCLE = "SAME AS MULTICYCLE"; CUT_OFF_IO_PIN_FEEDBACK = ON; CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; CUT_OFF_READ_DURING_WRITE_PATHS = ON; CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS = ON; DO_MIN_ANALYSIS = ON; DO_MIN_TIMING = OFF; NUMBER_OF_PATHS_TO_REPORT = 200; NUMBER_OF_DESTINATION_TO_REPORT = 10; NUMBER_OF_SOURCES_PER_DESTINATION_TO_REPORT = 10; MAX_SCC_SIZE = 50; } HDL_SETTINGS { VERILOG_INPUT_VERSION = VERILOG_2001; ENABLE_IP_DEBUG = OFF; VHDL_INPUT_VERSION = VHDL93; VHDL_SHOW_LMF_MAPPING_MESSAGES = OFF; } PROJECT_INFO(usrp_multi) { ORIGINAL_QUARTUS_VERSION = 3.0; PROJECT_CREATION_TIME_DATE = "00:14:04 JULY 13, 2003"; LAST_QUARTUS_VERSION = 3.0; SHOW_REGISTRATION_MESSAGE = ON; USER_LIBRARIES = "e:\usrp\fpga\megacells"; } THIRD_PARTY_EDA_TOOLS(usrp_multi) { EDA_DESIGN_ENTRY_SYNTHESIS_TOOL = ""; EDA_SIMULATION_TOOL = ""; EDA_TIMING_ANALYSIS_TOOL = ""; EDA_BOARD_DESIGN_TOOL = ""; EDA_FORMAL_VERIFICATION_TOOL = ""; EDA_RESYNTHESIS_TOOL = ""; } EDA_TOOL_SETTINGS(eda_design_synthesis) { EDA_INPUT_GND_NAME = GND; EDA_INPUT_VCC_NAME = VCC; EDA_SHOW_LMF_MAPPING_MESSAGES = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_INPUT_DATA_FORMAT = EDIF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_simulation) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_timing_analysis) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; EDA_LAUNCH_CMD_LINE_TOOL = OFF; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_board_design) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_formal_verification) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_palace) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; RESYNTHESIS_RETIMING = FULL; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; } CLOCK(clk_120mhz) { FMAX_REQUIREMENT = "120.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(usbclk) { FMAX_REQUIREMENT = "48.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(SCLK) { FMAX_REQUIREMENT = "1.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk0) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk1) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/usrp_multi.qpf000066400000000000000000000030071224274632000232450ustar00rootroot00000000000000# Copyright (C) 1991-2004 Altera Corporation # Any megafunction design, and related netlist (encrypted or decrypted), # support information, device programming or simulation file, and any other # associated documentation or information provided by Altera or a partner # under Altera's Megafunction Partnership Program may be used only # to program PLD devices (but not masked PLD devices) from Altera. Any # other use of such megafunction design, netlist, support information, # device programming or simulation file, or any other related documentation # or information is prohibited for any other purpose, including, but not # limited to modification, reverse engineering, de-compiling, or use with # any other silicon devices, unless such use is explicitly licensed under # a separate agreement with Altera or a megafunction partner. Title to the # intellectual property, including patents, copyrights, trademarks, trade # secrets, or maskworks, embodied in any such megafunction design, netlist, # support information, device programming or simulation file, or any other # related documentation or information provided by Altera or a megafunction # partner, remains with Altera, the megafunction partner, or their respective # licensors. No other licenses, including any licenses needed under any third # party's intellectual property, are provided herein. QUARTUS_VERSION = "4.0" DATE = "17:10:11 December 20, 2004" # Active Revisions PROJECT_REVISION = "usrp_multi" uhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/usrp_multi.qsf000066400000000000000000000455721224274632000232650ustar00rootroot00000000000000# Copyright (C) 1991-2005 Altera Corporation # Your use of Altera Corporation's design tools, logic functions # and other software and tools, and its AMPP partner logic # functions, and any output files any of the foregoing # (including device programming or simulation files), and any # associated documentation or information are expressly subject # to the terms and conditions of the Altera Program License # Subscription Agreement, Altera MegaCore Function License # Agreement, or other applicable license agreement, including, # without limitation, that your use is for the sole purpose of # programming logic devices manufactured by Altera and sold by # Altera or its authorized distributors. Please refer to the # applicable agreement for further details. # The default values for assignments are stored in the file # usrp_multi_assignment_defaults.qdf # If this file doesn't exist, and for assignments not listed, see file # assignment_defaults.qdf # Altera recommends that you do not modify this file. This # file is updated automatically by the Quartus II software # and any changes you make may be lost or overwritten. # Project-Wide Assignments # ======================== set_global_assignment -name ORIGINAL_QUARTUS_VERSION 3.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "00:14:04 JULY 13, 2003" set_global_assignment -name LAST_QUARTUS_VERSION 6.1 # Pin & Location Assignments # ========================== set_global_assignment -name RESERVE_PIN "AS INPUT TRI-STATED" set_location_assignment PIN_29 -to SCLK set_location_assignment PIN_117 -to SDI set_location_assignment PIN_28 -to usbclk set_location_assignment PIN_107 -to usbctl[0] set_location_assignment PIN_106 -to usbctl[1] set_location_assignment PIN_105 -to usbctl[2] set_location_assignment PIN_100 -to usbdata[0] set_location_assignment PIN_84 -to usbdata[10] set_location_assignment PIN_83 -to usbdata[11] set_location_assignment PIN_82 -to usbdata[12] set_location_assignment PIN_79 -to usbdata[13] set_location_assignment PIN_78 -to usbdata[14] set_location_assignment PIN_77 -to usbdata[15] set_location_assignment PIN_99 -to usbdata[1] set_location_assignment PIN_98 -to usbdata[2] set_location_assignment PIN_95 -to usbdata[3] set_location_assignment PIN_94 -to usbdata[4] set_location_assignment PIN_93 -to usbdata[5] set_location_assignment PIN_88 -to usbdata[6] set_location_assignment PIN_87 -to usbdata[7] set_location_assignment PIN_86 -to usbdata[8] set_location_assignment PIN_85 -to usbdata[9] set_location_assignment PIN_104 -to usbrdy[0] set_location_assignment PIN_101 -to usbrdy[1] set_location_assignment PIN_76 -to FX2_1 set_location_assignment PIN_75 -to FX2_2 set_location_assignment PIN_74 -to FX2_3 set_location_assignment PIN_116 -to io_rx_a[0] set_location_assignment PIN_115 -to io_rx_a[1] set_location_assignment PIN_114 -to io_rx_a[2] set_location_assignment PIN_113 -to io_rx_a[3] set_location_assignment PIN_108 -to io_rx_a[4] set_location_assignment PIN_195 -to io_rx_a[5] set_location_assignment PIN_196 -to io_rx_a[6] set_location_assignment PIN_197 -to io_rx_a[7] set_location_assignment PIN_200 -to io_rx_a[8] set_location_assignment PIN_201 -to io_rx_a[9] set_location_assignment PIN_202 -to io_rx_a[10] set_location_assignment PIN_203 -to io_rx_a[11] set_location_assignment PIN_206 -to io_rx_a[12] set_location_assignment PIN_207 -to io_rx_a[13] set_location_assignment PIN_208 -to io_rx_a[14] set_location_assignment PIN_214 -to io_rx_b[0] set_location_assignment PIN_215 -to io_rx_b[1] set_location_assignment PIN_216 -to io_rx_b[2] set_location_assignment PIN_217 -to io_rx_b[3] set_location_assignment PIN_218 -to io_rx_b[4] set_location_assignment PIN_219 -to io_rx_b[5] set_location_assignment PIN_222 -to io_rx_b[6] set_location_assignment PIN_223 -to io_rx_b[7] set_location_assignment PIN_224 -to io_rx_b[8] set_location_assignment PIN_225 -to io_rx_b[9] set_location_assignment PIN_226 -to io_rx_b[10] set_location_assignment PIN_227 -to io_rx_b[11] set_location_assignment PIN_228 -to io_rx_b[12] set_location_assignment PIN_233 -to io_rx_b[13] set_location_assignment PIN_234 -to io_rx_b[14] set_location_assignment PIN_175 -to io_tx_a[0] set_location_assignment PIN_176 -to io_tx_a[1] set_location_assignment PIN_177 -to io_tx_a[2] set_location_assignment PIN_178 -to io_tx_a[3] set_location_assignment PIN_179 -to io_tx_a[4] set_location_assignment PIN_180 -to io_tx_a[5] set_location_assignment PIN_181 -to io_tx_a[6] set_location_assignment PIN_182 -to io_tx_a[7] set_location_assignment PIN_183 -to io_tx_a[8] set_location_assignment PIN_184 -to io_tx_a[9] set_location_assignment PIN_185 -to io_tx_a[10] set_location_assignment PIN_186 -to io_tx_a[11] set_location_assignment PIN_187 -to io_tx_a[12] set_location_assignment PIN_188 -to io_tx_a[13] set_location_assignment PIN_193 -to io_tx_a[14] set_location_assignment PIN_73 -to io_tx_b[0] set_location_assignment PIN_68 -to io_tx_b[1] set_location_assignment PIN_67 -to io_tx_b[2] set_location_assignment PIN_66 -to io_tx_b[3] set_location_assignment PIN_65 -to io_tx_b[4] set_location_assignment PIN_64 -to io_tx_b[5] set_location_assignment PIN_63 -to io_tx_b[6] set_location_assignment PIN_62 -to io_tx_b[7] set_location_assignment PIN_61 -to io_tx_b[8] set_location_assignment PIN_60 -to io_tx_b[9] set_location_assignment PIN_59 -to io_tx_b[10] set_location_assignment PIN_58 -to io_tx_b[11] set_location_assignment PIN_57 -to io_tx_b[12] set_location_assignment PIN_56 -to io_tx_b[13] set_location_assignment PIN_55 -to io_tx_b[14] set_location_assignment PIN_152 -to master_clk set_location_assignment PIN_144 -to rx_a_a[0] set_location_assignment PIN_143 -to rx_a_a[1] set_location_assignment PIN_141 -to rx_a_a[2] set_location_assignment PIN_140 -to rx_a_a[3] set_location_assignment PIN_139 -to rx_a_a[4] set_location_assignment PIN_138 -to rx_a_a[5] set_location_assignment PIN_137 -to rx_a_a[6] set_location_assignment PIN_136 -to rx_a_a[7] set_location_assignment PIN_135 -to rx_a_a[8] set_location_assignment PIN_134 -to rx_a_a[9] set_location_assignment PIN_133 -to rx_a_a[10] set_location_assignment PIN_132 -to rx_a_a[11] set_location_assignment PIN_23 -to rx_a_b[0] set_location_assignment PIN_21 -to rx_a_b[1] set_location_assignment PIN_20 -to rx_a_b[2] set_location_assignment PIN_19 -to rx_a_b[3] set_location_assignment PIN_18 -to rx_a_b[4] set_location_assignment PIN_17 -to rx_a_b[5] set_location_assignment PIN_16 -to rx_a_b[6] set_location_assignment PIN_15 -to rx_a_b[7] set_location_assignment PIN_14 -to rx_a_b[8] set_location_assignment PIN_13 -to rx_a_b[9] set_location_assignment PIN_12 -to rx_a_b[10] set_location_assignment PIN_11 -to rx_a_b[11] set_location_assignment PIN_131 -to rx_b_a[0] set_location_assignment PIN_128 -to rx_b_a[1] set_location_assignment PIN_127 -to rx_b_a[2] set_location_assignment PIN_126 -to rx_b_a[3] set_location_assignment PIN_125 -to rx_b_a[4] set_location_assignment PIN_124 -to rx_b_a[5] set_location_assignment PIN_123 -to rx_b_a[6] set_location_assignment PIN_122 -to rx_b_a[7] set_location_assignment PIN_121 -to rx_b_a[8] set_location_assignment PIN_120 -to rx_b_a[9] set_location_assignment PIN_119 -to rx_b_a[10] set_location_assignment PIN_118 -to rx_b_a[11] set_location_assignment PIN_8 -to rx_b_b[0] set_location_assignment PIN_7 -to rx_b_b[1] set_location_assignment PIN_6 -to rx_b_b[2] set_location_assignment PIN_5 -to rx_b_b[3] set_location_assignment PIN_4 -to rx_b_b[4] set_location_assignment PIN_3 -to rx_b_b[5] set_location_assignment PIN_2 -to rx_b_b[6] set_location_assignment PIN_240 -to rx_b_b[7] set_location_assignment PIN_239 -to rx_b_b[8] set_location_assignment PIN_238 -to rx_b_b[9] set_location_assignment PIN_237 -to rx_b_b[10] set_location_assignment PIN_236 -to rx_b_b[11] set_location_assignment PIN_156 -to SDO set_location_assignment PIN_153 -to SEN_FPGA set_location_assignment PIN_159 -to tx_a[0] set_location_assignment PIN_160 -to tx_a[1] set_location_assignment PIN_161 -to tx_a[2] set_location_assignment PIN_162 -to tx_a[3] set_location_assignment PIN_163 -to tx_a[4] set_location_assignment PIN_164 -to tx_a[5] set_location_assignment PIN_165 -to tx_a[6] set_location_assignment PIN_166 -to tx_a[7] set_location_assignment PIN_167 -to tx_a[8] set_location_assignment PIN_168 -to tx_a[9] set_location_assignment PIN_169 -to tx_a[10] set_location_assignment PIN_170 -to tx_a[11] set_location_assignment PIN_173 -to tx_a[12] set_location_assignment PIN_174 -to tx_a[13] set_location_assignment PIN_38 -to tx_b[0] set_location_assignment PIN_39 -to tx_b[1] set_location_assignment PIN_41 -to tx_b[2] set_location_assignment PIN_42 -to tx_b[3] set_location_assignment PIN_43 -to tx_b[4] set_location_assignment PIN_44 -to tx_b[5] set_location_assignment PIN_45 -to tx_b[6] set_location_assignment PIN_46 -to tx_b[7] set_location_assignment PIN_47 -to tx_b[8] set_location_assignment PIN_48 -to tx_b[9] set_location_assignment PIN_49 -to tx_b[10] set_location_assignment PIN_50 -to tx_b[11] set_location_assignment PIN_53 -to tx_b[12] set_location_assignment PIN_54 -to tx_b[13] set_location_assignment PIN_158 -to TXSYNC_A set_location_assignment PIN_37 -to TXSYNC_B set_location_assignment PIN_235 -to io_rx_b[15] set_location_assignment PIN_24 -to io_tx_b[15] set_location_assignment PIN_213 -to io_rx_a[15] set_location_assignment PIN_194 -to io_tx_a[15] set_location_assignment PIN_1 -to MYSTERY_SIGNAL # Timing Assignments # ================== set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF # Analysis & Synthesis Assignments # ================================ set_global_assignment -name SAVE_DISK_SPACE OFF set_global_assignment -name DEVICE_FILTER_PACKAGE "ANY QFP" set_global_assignment -name DEVICE_FILTER_PIN_COUNT 240 set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "" set_global_assignment -name FAMILY Cyclone set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE BALANCED set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name TOP_LEVEL_ENTITY usrp_multi set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF set_global_assignment -name USER_LIBRARIES "H:\\usrp-for2.7\\fpga\\megacells" set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON # Fitter Assignments # ================== set_global_assignment -name DEVICE EP1C12Q240C8 set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_global_assignment -name OPTIMIZE_HOLD_TIMING OFF set_global_assignment -name OPTIMIZE_TIMING "NORMAL COMPILATION" set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC OFF set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING OFF set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT NORMAL set_global_assignment -name INC_PLC_MODE OFF set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF set_instance_assignment -name IO_STANDARD LVTTL -to usbdata[12] set_global_assignment -name STRATIX_DEVICE_IO_STANDARD LVTTL set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 # Timing Analysis Assignments # =========================== set_global_assignment -name MAX_SCC_SIZE 50 # EDA Netlist Writer Assignments # ============================== set_global_assignment -name EDA_SIMULATION_TOOL "" set_global_assignment -name EDA_TIMING_ANALYSIS_TOOL "" set_global_assignment -name EDA_BOARD_DESIGN_TOOL "" set_global_assignment -name EDA_FORMAL_VERIFICATION_TOOL "" set_global_assignment -name EDA_RESYNTHESIS_TOOL "" # Assembler Assignments # ===================== set_global_assignment -name USE_CONFIGURATION_DEVICE OFF set_global_assignment -name GENERATE_RBF_FILE ON set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF # Simulator Assignments # ===================== set_global_assignment -name START_TIME "0 ns" set_global_assignment -name GLITCH_INTERVAL "1 ns" # Design Assistant Assignments # ============================ set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF set_global_assignment -name ASSG_CAT OFF set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF set_global_assignment -name CLK_CAT OFF set_global_assignment -name CLK_RULE_COMB_CLOCK OFF set_global_assignment -name CLK_RULE_INV_CLOCK OFF set_global_assignment -name CLK_RULE_GATING_SCHEME OFF set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF set_global_assignment -name CLK_RULE_MIX_EDGES OFF set_global_assignment -name RESET_CAT OFF set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name TIMING_CAT OFF set_global_assignment -name TIMING_RULE_SHIFT_REG OFF set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF set_global_assignment -name NONSYNCHSTRUCT_CAT OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF set_global_assignment -name SIGNALRACE_CAT OFF set_global_assignment -name ACLK_CAT OFF set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF set_global_assignment -name HCPY_CAT OFF set_global_assignment -name HCPY_VREF_PINS OFF # SignalTap II Assignments # ======================== set_global_assignment -name HUB_ENTITY_NAME SLD_HUB set_global_assignment -name HUB_INSTANCE_NAME SLD_HUB_INST set_global_assignment -name ENABLE_SIGNALTAP OFF # LogicLock Region Assignments # ============================ set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF # ----------------- # start CLOCK(SCLK) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id SCLK set_global_assignment -name FMAX_REQUIREMENT "1 MHz" -section_id SCLK set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id SCLK # end CLOCK(SCLK) # --------------- # ----------------------- # start CLOCK(master_clk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id master_clk set_global_assignment -name FMAX_REQUIREMENT "64 MHz" -section_id master_clk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id master_clk # end CLOCK(master_clk) # --------------------- # ------------------- # start CLOCK(usbclk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id usbclk set_global_assignment -name FMAX_REQUIREMENT "48 MHz" -section_id usbclk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id usbclk # end CLOCK(usbclk) # ----------------- # ---------------------- # start ENTITY(usrp_multi) # Timing Assignments # ================== set_instance_assignment -name CLOCK_SETTINGS SCLK -to SCLK set_instance_assignment -name CLOCK_SETTINGS usbclk -to usbclk set_instance_assignment -name CLOCK_SETTINGS master_clk -to master_clk # end ENTITY(usrp_multi) # -------------------- set_global_assignment -name VERILOG_FILE ../../sdr_lib/rssi.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/setting_reg_masked.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/master_control_multi.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/ram16.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_4k.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mult.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/ram16_2sum.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/coeff_rom.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/halfband_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mac.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/coeff_ram.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_dcoffset.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/adc_interface.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/io_pins.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/setting_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/bidir_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_int_shifter.v set_global_assignment -name VERILOG_FILE ../../megacells/clk_doubler.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/gen_sync.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/master_control.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_2k.v set_global_assignment -name VERILOG_FILE ../../megacells/bustri.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/phase_acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_interp.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic_stage.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic.v set_global_assignment -name VERILOG_FILE usrp_multi.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/clk_divider.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/serial_io.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/strobe_gen.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/sign_extend.vuhd-3.5.5/fpga/usrp1/toplevel/usrp_multi/usrp_multi.v000066400000000000000000000351301224274632000227260ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003,2004,2005,2006 Matt Ettus // Copyright (C) 2006 Martin Dudok van Heel // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Top level module for a full setup with DUCs and DDCs // Define DEBUG_OWNS_IO_PINS if we're using the daughterboard i/o pins // for debugging info. NB, This can kill the m'board and/or d'board if you // have anything except basic d'boards installed. // Uncomment the following to include optional circuitry `include "config.vh" `include "../../common/fpga_regs_common.v" `include "../../common/fpga_regs_standard.v" module usrp_multi (output MYSTERY_SIGNAL, input master_clk, input SCLK, input SDI, inout SDO, input SEN_FPGA, input FX2_1, output FX2_2, output FX2_3, input wire [11:0] rx_a_a, input wire [11:0] rx_b_a, input wire [11:0] rx_a_b, input wire [11:0] rx_b_b, output wire [13:0] tx_a, output wire [13:0] tx_b, output wire TXSYNC_A, output wire TXSYNC_B, // USB interface input usbclk, input wire [2:0] usbctl, output wire [1:0] usbrdy, inout [15:0] usbdata, // NB Careful, inout // These are the general purpose i/o's that go to the daughterboard slots inout wire [15:0] io_tx_a, inout wire [15:0] io_tx_b, inout wire [15:0] io_rx_a, inout wire [15:0] io_rx_b ); wire [15:0] debugdata,debugctrl; assign MYSTERY_SIGNAL = 1'b0; wire clk64,clk128; wire WR = usbctl[0]; wire RD = usbctl[1]; wire OE = usbctl[2]; wire have_space, have_pkt_rdy; assign usbrdy[0] = have_space; assign usbrdy[1] = have_pkt_rdy; wire tx_underrun, rx_overrun; wire clear_status = FX2_1; assign FX2_2 = rx_overrun; assign FX2_3 = tx_underrun; wire [15:0] usbdata_out; wire [3:0] dac0mux,dac1mux,dac2mux,dac3mux; wire tx_realsignals; wire [3:0] rx_numchan; wire [2:0] tx_numchan; wire [7:0] interp_rate, decim_rate; wire [15:0] tx_debugbus, rx_debugbus; wire enable_tx, enable_rx; wire reset_data; `ifdef MULTI_ON wire sync_rx; assign reset_data = sync_rx; `else assign reset_data = 1'b0; `endif // `ifdef MULTI_ON wire tx_dsp_reset, rx_dsp_reset, tx_bus_reset, rx_bus_reset; wire [7:0] settings; // Tri-state bus macro bustri bustri( .data(usbdata_out),.enabledt(OE),.tridata(usbdata) ); assign clk64 = master_clk; wire [15:0] ch0tx,ch1tx,ch2tx,ch3tx; //,ch4tx,ch5tx,ch6tx,ch7tx; wire [15:0] ch0rx,ch1rx,ch2rx,ch3rx,ch4rx,ch5rx,ch6rx,ch7rx; // TX wire [15:0] i_out_0,i_out_1,q_out_0,q_out_1; wire [15:0] bb_tx_i0,bb_tx_q0,bb_tx_i1,bb_tx_q1; // bb_tx_i2,bb_tx_q2,bb_tx_i3,bb_tx_q3; wire strobe_interp, tx_sample_strobe; wire tx_empty; wire serial_strobe; wire [6:0] serial_addr; wire [31:0] serial_data; reg [15:0] debug_counter; `ifdef COUNTER_32BIT_ON reg [31:0] sample_counter_32bit; `endif // `ifdef COUNTER_32BIT_ON reg [15:0] loopback_i_0,loopback_q_0; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Transmit Side `ifdef TX_ON assign bb_tx_i0 = ch0tx; assign bb_tx_q0 = ch1tx; assign bb_tx_i1 = ch2tx; assign bb_tx_q1 = ch3tx; tx_buffer tx_buffer ( .usbclk(usbclk),.bus_reset(tx_bus_reset),.reset(tx_dsp_reset), .usbdata(usbdata),.WR(WR),.have_space(have_space),.tx_underrun(tx_underrun), .channels({tx_numchan,1'b0}), .tx_i_0(ch0tx),.tx_q_0(ch1tx), .tx_i_1(ch2tx),.tx_q_1(ch3tx), .tx_i_2(),.tx_q_2(), .tx_i_3(),.tx_q_3(), .txclk(clk64),.txstrobe(strobe_interp), .clear_status(clear_status), .tx_empty(tx_empty), .debugbus(tx_debugbus) ); tx_chain tx_chain_0 ( .clock(clk64),.reset(tx_dsp_reset),.enable(enable_tx), .interp_rate(interp_rate),.sample_strobe(tx_sample_strobe), .interpolator_strobe(strobe_interp),.freq(), .i_in(bb_tx_i0),.q_in(bb_tx_q0),.i_out(i_out_0),.q_out(q_out_0) ); tx_chain tx_chain_1 ( .clock(clk64),.reset(tx_dsp_reset),.enable(enable_tx), .interp_rate(interp_rate),.sample_strobe(tx_sample_strobe), .interpolator_strobe(strobe_interp),.freq(), .i_in(bb_tx_i1),.q_in(bb_tx_q1),.i_out(i_out_1),.q_out(q_out_1) ); setting_reg #(`FR_TX_MUX) sr_txmux(.clock(clk64),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({dac3mux,dac2mux,dac1mux,dac0mux,tx_realsignals,tx_numchan})); wire [15:0] tx_a_a = dac0mux[3] ? (dac0mux[1] ? (dac0mux[0] ? q_out_1 : i_out_1) : (dac0mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_b_a = dac1mux[3] ? (dac1mux[1] ? (dac1mux[0] ? q_out_1 : i_out_1) : (dac1mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_a_b = dac2mux[3] ? (dac2mux[1] ? (dac2mux[0] ? q_out_1 : i_out_1) : (dac2mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_b_b = dac3mux[3] ? (dac3mux[1] ? (dac3mux[0] ? q_out_1 : i_out_1) : (dac3mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire txsync = tx_sample_strobe; assign TXSYNC_A = txsync; assign TXSYNC_B = txsync; assign tx_a = txsync ? tx_b_a[15:2] : tx_a_a[15:2]; assign tx_b = txsync ? tx_b_b[15:2] : tx_a_b[15:2]; `endif // `ifdef TX_ON ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Receive Side `ifdef RX_ON wire rx_sample_strobe,strobe_decim,hb_strobe; wire [15:0] bb_rx_i0,bb_rx_q0,bb_rx_i1,bb_rx_q1, bb_rx_i2,bb_rx_q2,bb_rx_i3,bb_rx_q3; wire loopback = settings[0]; wire counter = settings[1]; `ifdef COUNTER_32BIT_ON wire counter_32bit = settings[2]; always @(posedge clk64) if(rx_dsp_reset) sample_counter_32bit <= #1 32'd0; else if(~enable_rx | reset_data) sample_counter_32bit <=#1 32'd0; else if(hb_strobe) sample_counter_32bit <=#1 sample_counter_32bit + 32'd1; `endif // `ifdef COUNTER_32BIT_ON always @(posedge clk64) if(rx_dsp_reset) debug_counter <= #1 16'd0; else if(~enable_rx) debug_counter <= #1 16'd0; else if(hb_strobe) debug_counter <=#1 debug_counter + 16'd2; always @(posedge clk64) if(strobe_interp) begin loopback_i_0 <= #1 ch0tx; loopback_q_0 <= #1 ch1tx; end `ifdef COUNTER_32BIT_ON assign ch0rx = counter_32bit?sample_counter_32bit[31:16]:counter ? debug_counter : loopback ? loopback_i_0 : bb_rx_i0; assign ch1rx = counter_32bit?sample_counter_32bit[15:0]:counter ? debug_counter + 16'd1 : loopback ? loopback_q_0 : bb_rx_q0; assign ch2rx = bb_rx_i1; assign ch3rx = bb_rx_q1; assign ch4rx = counter_32bit?bb_rx_i0:bb_rx_i2; assign ch5rx = counter_32bit?bb_rx_q0:bb_rx_q2;// If using counter replicate channels here to be able to get rx_i0 when using counter //This means if you use 4 channels that channel 3 will be replaced by channel 0 // and channel 0 will output the 32 bit counter. assign ch6rx = bb_rx_i3; assign ch7rx = bb_rx_q3; `else assign ch0rx = counter ? debug_counter : loopback ? loopback_i_0 : bb_rx_i0; assign ch1rx = counter ? debug_counter + 16'd1 : loopback ? loopback_q_0 : bb_rx_q0; assign ch2rx = bb_rx_i1; assign ch3rx = bb_rx_q1; assign ch4rx = bb_rx_i2; assign ch5rx = bb_rx_q2; assign ch6rx = bb_rx_i3; assign ch7rx = bb_rx_q3; `endif // `ifdef COUNTER_32BIT_ON wire [15:0] ddc0_in_i,ddc0_in_q,ddc1_in_i,ddc1_in_q,ddc2_in_i,ddc2_in_q,ddc3_in_i,ddc3_in_q; adc_interface adc_interface(.clock(clk64),.reset(rx_dsp_reset),.enable(1'b1), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(rx_a_b),.rx_b_b(rx_b_b), .ddc0_in_i(ddc0_in_i),.ddc0_in_q(ddc0_in_q), .ddc1_in_i(ddc1_in_i),.ddc1_in_q(ddc1_in_q), .ddc2_in_i(ddc2_in_i),.ddc2_in_q(ddc2_in_q), .ddc3_in_i(ddc3_in_i),.ddc3_in_q(ddc3_in_q),.rx_numchan(rx_numchan) ); rx_buffer rx_buffer ( .usbclk(usbclk),.bus_reset(rx_bus_reset),.reset(rx_dsp_reset | reset_data), .reset_regs(rx_dsp_reset), .usbdata(usbdata_out),.RD(RD),.have_pkt_rdy(have_pkt_rdy),.rx_overrun(rx_overrun), .channels(rx_numchan), .ch_0(ch0rx),.ch_1(ch1rx), .ch_2(ch2rx),.ch_3(ch3rx), .ch_4(ch4rx),.ch_5(ch5rx), .ch_6(ch6rx),.ch_7(ch7rx), .rxclk(clk64),.rxstrobe(hb_strobe), .clear_status(clear_status), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .debugbus(rx_debugbus) ); `ifdef RX_EN_0 rx_chain #(`FR_RX_FREQ_0,`FR_RX_PHASE_0) rx_chain_0 ( .clock(clk64),.reset(reset_data),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(hb_strobe), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc0_in_i),.q_in(ddc0_in_q),.i_out(bb_rx_i0),.q_out(bb_rx_q0),.debugdata(debugdata),.debugctrl(debugctrl)); `else assign bb_rx_i0=16'd0; assign bb_rx_q0=16'd0; `endif `ifdef RX_EN_1 rx_chain #(`FR_RX_FREQ_1,`FR_RX_PHASE_1) rx_chain_1 ( .clock(clk64),.reset(reset_data),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc1_in_i),.q_in(ddc1_in_q),.i_out(bb_rx_i1),.q_out(bb_rx_q1)); `else assign bb_rx_i1=16'd0; assign bb_rx_q1=16'd0; `endif `ifdef RX_EN_2 rx_chain #(`FR_RX_FREQ_2,`FR_RX_PHASE_2) rx_chain_2 ( .clock(clk64),.reset(reset_data),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc2_in_i),.q_in(ddc2_in_q),.i_out(bb_rx_i2),.q_out(bb_rx_q2)); `else assign bb_rx_i2=16'd0; assign bb_rx_q2=16'd0; `endif `ifdef RX_EN_3 rx_chain #(`FR_RX_FREQ_3,`FR_RX_PHASE_3) rx_chain_3 ( .clock(clk64),.reset(reset_data),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc3_in_i),.q_in(ddc3_in_q),.i_out(bb_rx_i3),.q_out(bb_rx_q3)); assign bb_rx_i3=16'd0; assign bb_rx_q3=16'd0; `endif `endif // `ifdef RX_ON /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Control Functions wire [31:0] capabilities; assign capabilities[7] = `TX_CAP_HB; assign capabilities[6:4] = `TX_CAP_NCHAN; assign capabilities[3] = `RX_CAP_HB; assign capabilities[2:0] = `RX_CAP_NCHAN; serial_io serial_io ( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI), .enable(SEN_FPGA),.reset(1'b0),.serial_data_out(SDO), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .readback_0({io_rx_a,io_tx_a}),.readback_1({io_rx_b,io_tx_b}),.readback_2(capabilities),.readback_3(32'hf0f0931a) ); wire [15:0] reg_0,reg_1,reg_2,reg_3; `ifdef MULTI_ON master_control_multi master_control ( .master_clk(clk64),.usbclk(usbclk), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .rx_slave_sync(io_rx_a[`bitnoFR_RX_SYNC_INPUT_IOPIN]), .tx_bus_reset(tx_bus_reset),.rx_bus_reset(rx_bus_reset), .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .sync_rx(sync_rx), .interp_rate(interp_rate),.decim_rate(decim_rate), .tx_sample_strobe(tx_sample_strobe),.strobe_interp(strobe_interp), .rx_sample_strobe(rx_sample_strobe),.strobe_decim(strobe_decim), .tx_empty(tx_empty), //.debug_0(rx_a_a),.debug_1(ddc0_in_i), .debug_0(rx_debugbus),.debug_1(ddc0_in_i), .debug_2({rx_sample_strobe,strobe_decim,serial_strobe,serial_addr}),.debug_3({rx_dsp_reset,tx_dsp_reset,rx_bus_reset,tx_bus_reset,enable_rx,tx_underrun,rx_overrun,decim_rate}), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3) ); `else //`ifdef MULTI_ON master_control master_control ( .master_clk(clk64),.usbclk(usbclk), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .tx_bus_reset(tx_bus_reset),.rx_bus_reset(rx_bus_reset), .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .interp_rate(interp_rate),.decim_rate(decim_rate), .tx_sample_strobe(tx_sample_strobe),.strobe_interp(strobe_interp), .rx_sample_strobe(rx_sample_strobe),.strobe_decim(strobe_decim), .tx_empty(tx_empty), //.debug_0(rx_a_a),.debug_1(ddc0_in_i), .debug_0(rx_debugbus),.debug_1(ddc0_in_i), .debug_2({rx_sample_strobe,strobe_decim,serial_strobe,serial_addr}),.debug_3({rx_dsp_reset,tx_dsp_reset,rx_bus_reset,tx_bus_reset,enable_rx,tx_underrun,rx_overrun,decim_rate}), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3) ); `endif //`ifdef MULTI_ON io_pins io_pins (.io_0(io_tx_a),.io_1(io_rx_a),.io_2(io_tx_b),.io_3(io_rx_b), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3), .clock(clk64),.rx_reset(rx_dsp_reset),.tx_reset(tx_dsp_reset), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe)); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Misc Settings setting_reg #(`FR_MODE) sr_misc(.clock(clk64),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(settings)); endmodule // usrp_multi uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/000077500000000000000000000000001224274632000177725ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/.gitignore000066400000000000000000000001711224274632000217610ustar00rootroot00000000000000/*.qws /*.eqn /*.done /*.htm /*.rpt /*.ini /*.fsf /*.jam /*.jbc /*.pin /*.pof /*.sof /*.rbf /*.ttf /*.summary /prev* /db uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/config.vh000066400000000000000000000043451224274632000216040ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2006,2007 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // ==================================================================== // User control over what parts get included // // >>>> EDIT ONLY THIS SECTION <<<< // Uncomment only ONE configuration // ==================================================================== // ==================================================================== // FIXME drive configuration selection from the command line and/or gui // ==================================================================== // Uncomment this for 1 rx channel (w/ halfband) & 1 transmit channel //`include "../include/common_config_1rxhb_1tx.vh" // Uncomment this for 2 rx channels (w/ halfband) & 2 transmit channels `include "../include/common_config_2rxhb_2tx.vh" // Uncomment this for 4 rx channels (w/o halfband) & 0 transmit channels //`include "../include/common_config_4rx_0tx.vh" // Uncomment this for multi with 2 rx channels (w/ halfband) & 0 transmit channels //`include "../include/common_config_2rxhb_0tx.vh" // Uncomment this for multi with 2 rx channels (w/o halfband) & 0 transmit channels //`include "../include/common_config_2rx_0tx.vh" // Add other "known to fit" configurations here... // ==================================================================== // Now include the common footer // ==================================================================== `include "../include/common_config_bottom.vh" uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/usrp_std.csf000066400000000000000000000405061224274632000223370ustar00rootroot00000000000000COMPILER_SETTINGS { IO_PLACEMENT_OPTIMIZATION = OFF; ENABLE_DRC_SETTINGS = OFF; PHYSICAL_SYNTHESIS_REGISTER_RETIMING = OFF; PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION = OFF; PHYSICAL_SYNTHESIS_COMBO_LOGIC = OFF; DRC_FANOUT_EXCEEDING = 30; DRC_REPORT_FANOUT_EXCEEDING = OFF; DRC_TOP_FANOUT = 50; DRC_REPORT_TOP_FANOUT = OFF; RUN_DRC_DURING_COMPILATION = OFF; ADV_NETLIST_OPT_RETIME_CORE_AND_IO = ON; ADV_NETLIST_OPT_SYNTH_USE_FITTER_INFO = OFF; ADV_NETLIST_OPT_SYNTH_GATE_RETIME = OFF; ADV_NETLIST_OPT_SYNTH_WYSIWYG_REMAP = OFF; SMART_COMPILE_IGNORES_TDC_FOR_STRATIX_PLL_CHANGES = OFF; MERGE_HEX_FILE = OFF; TRUE_WYSIWYG_FLOW = OFF; SEED = 1; FINAL_PLACEMENT_OPTIMIZATION = AUTOMATICALLY; FAMILY = Cyclone; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "LOWER TO 1ESB UPPER TO 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_OUTPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA1 = "DPRAM0 TO 1 DPRAM1 TO 2"; DPRAM_32BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_8BIT_16BIT_SINGLE_PORT_MODE_INPUT_EPXA1 = "MEGALAB COLUMN 1"; DPRAM_DUAL_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_OTHER_SIGNALS_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DEEP_MODE_OTHER_SIGNALS_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_SINGLE_PORT_MODE_OUTPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4ESB"; DPRAM_WIDE_MODE_OUTPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4ESB"; DPRAM_DEEP_MODE_OUTPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_DUAL_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_SINGLE_PORT_MODE_INPUT_EPXA4_10 = "DPRAM0 TO 3 DPRAM1 TO 4"; DPRAM_WIDE_MODE_INPUT_EPXA4_10 = "LOWER TO 3 UPPER TO 4"; DPRAM_DEEP_MODE_INPUT_EPXA4_10 = "MEGALAB COLUMN 3"; DPRAM_OTHER_SIGNALS_EPXA4_10 = "DEFAULT OTHER ROUTING OPTIONS"; DPRAM_OUTPUT_EPXA4_10 = "DEFAULT OUTPUT ROUTING OPTIONS"; DPRAM_INPUT_EPXA4_10 = "DEFAULT INPUT ROUTING OPTIONS"; STRIPE_TO_PLD_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PLD_TO_STRIPE_INTERRUPTS_EPXA4_10 = "MEGALAB COLUMN 2"; PROCESSOR_DEBUG_EXTENSIONS_EPXA4_10 = "MEGALAB COLUMN 2"; STRIPE_TO_PLD_BRIDGE_EPXA4_10 = "MEGALAB COLUMN 1"; FAST_FIT_COMPILATION = OFF; SIGNALPROBE_DURING_NORMAL_COMPILATION = OFF; OPTIMIZE_IOC_REGISTER_PLACEMENT_FOR_TIMING = ON; OPTIMIZE_TIMING = "NORMAL COMPILATION"; OPTIMIZE_HOLD_TIMING = OFF; COMPILATION_LEVEL = FULL; SAVE_DISK_SPACE = OFF; SPEED_DISK_USAGE_TRADEOFF = NORMAL; LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT = OFF; SIGNALPROBE_ALLOW_OVERUSE = OFF; FOCUS_ENTITY_NAME = |usrp_std; ROUTING_BACK_ANNOTATION_MODE = OFF; INC_PLC_MODE = OFF; FIT_ONLY_ONE_ATTEMPT = OFF; } DEFAULT_DEVICE_OPTIONS { GENERATE_CONFIG_HEXOUT_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_JBC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_SVF_FILE = OFF; RESERVE_PIN = "AS INPUT TRI-STATED"; RESERVE_ALL_UNUSED_PINS = "AS OUTPUT DRIVING GROUND"; HEXOUT_FILE_COUNT_DIRECTION = UP; HEXOUT_FILE_START_ADDRESS = 0; GENERATE_HEX_FILE = OFF; GENERATE_RBF_FILE = OFF; GENERATE_TTF_FILE = OFF; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; APEX20K_CONFIGURATION_DEVICE = AUTO; USE_CONFIGURATION_DEVICE = ON; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; AUTO_RESTART_CONFIGURATION = OFF; ENABLE_VREFB_PIN = OFF; ENABLE_VREFA_PIN = OFF; SECURITY_BIT = OFF; USER_START_UP_CLOCK = OFF; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "ACTIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_UPDATE_MODE = STANDARD; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MERCURY_JTAG_USER_CODE = FFFFFFFF; APEX20K_JTAG_USER_CODE = FFFFFFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; ENABLE_JTAG_BST_SUPPORT = OFF; CONFIGURATION_CLOCK_DIVISOR = 1; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CLOCK_SOURCE = INTERNAL; COMPRESSION_MODE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; } AUTO_SLD_HUB_ENTITY { AUTO_INSERT_SLD_HUB_ENTITY = ENABLE; HUB_INSTANCE_NAME = SLD_HUB_INST; HUB_ENTITY_NAME = SLD_HUB; } SIGNALTAP_LOGIC_ANALYZER_SETTINGS { ENABLE_SIGNALTAP = Off; AUTO_ENABLE_SMART_COMPILE = On; } CHIP(usrp_std) { DEVICE = EP1C12Q240C8; DEVICE_FILTER_PACKAGE = "ANY QFP"; DEVICE_FILTER_PIN_COUNT = 240; DEVICE_FILTER_SPEED_GRADE = ANY; AUTO_RESTART_CONFIGURATION = OFF; RELEASE_CLEARS_BEFORE_TRI_STATES = OFF; USER_START_UP_CLOCK = OFF; ENABLE_DEVICE_WIDE_RESET = OFF; ENABLE_DEVICE_WIDE_OE = OFF; ENABLE_INIT_DONE_OUTPUT = OFF; FLEX10K_ENABLE_LOCK_OUTPUT = OFF; ENABLE_JTAG_BST_SUPPORT = OFF; MAX7000_ENABLE_JTAG_BST_SUPPORT = ON; APEX20K_JTAG_USER_CODE = FFFFFFFF; MERCURY_JTAG_USER_CODE = FFFFFFFF; FLEX10K_JTAG_USER_CODE = 7F; MAX7000_JTAG_USER_CODE = FFFFFFFF; MAX7000S_JTAG_USER_CODE = FFFF; STRATIX_JTAG_USER_CODE = FFFFFFFF; APEX20K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; MERCURY_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX6K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; FLEX10K_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; EXCALIBUR_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; APEXII_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; STRATIX_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; CYCLONE_CONFIGURATION_SCHEME = "PASSIVE SERIAL"; USE_CONFIGURATION_DEVICE = OFF; APEX20K_CONFIGURATION_DEVICE = AUTO; MERCURY_CONFIGURATION_DEVICE = AUTO; FLEX6K_CONFIGURATION_DEVICE = AUTO; FLEX10K_CONFIGURATION_DEVICE = AUTO; EXCALIBUR_CONFIGURATION_DEVICE = AUTO; STRATIX_CONFIGURATION_DEVICE = AUTO; CYCLONE_CONFIGURATION_DEVICE = AUTO; STRATIX_UPDATE_MODE = STANDARD; APEX20K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; MERCURY_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; FLEX10K_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; STRATIX_CONFIG_DEVICE_JTAG_USER_CODE = FFFFFFFF; AUTO_INCREMENT_CONFIG_DEVICE_JTAG_USER_CODE = ON; DISABLE_NCS_AND_OE_PULLUPS_ON_CONFIG_DEVICE = OFF; COMPRESSION_MODE = OFF; ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; FLEX6K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = OFF; FLEX10K_ENABLE_LOW_VOLTAGE_MODE_ON_CONFIG_DEVICE = ON; EPROM_USE_CHECKSUM_AS_USERCODE = OFF; USE_CHECKSUM_AS_USERCODE = OFF; MAX7000_USE_CHECKSUM_AS_USERCODE = OFF; GENERATE_TTF_FILE = OFF; GENERATE_RBF_FILE = ON; GENERATE_HEX_FILE = OFF; SECURITY_BIT = OFF; ENABLE_VREFA_PIN = OFF; ENABLE_VREFB_PIN = OFF; GENERATE_SVF_FILE = OFF; GENERATE_ISC_FILE = OFF; GENERATE_JAM_FILE = OFF; GENERATE_JBC_FILE = OFF; GENERATE_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_SVF_FILE = OFF; GENERATE_CONFIG_ISC_FILE = OFF; GENERATE_CONFIG_JAM_FILE = OFF; GENERATE_CONFIG_JBC_FILE = OFF; GENERATE_CONFIG_JBC_FILE_COMPRESSED = ON; GENERATE_CONFIG_HEXOUT_FILE = OFF; ON_CHIP_BITSTREAM_DECOMPRESSION = OFF; BASE_PIN_OUT_FILE_ON_SAMEFRAME_DEVICE = OFF; HEXOUT_FILE_START_ADDRESS = 0; HEXOUT_FILE_COUNT_DIRECTION = UP; RESERVE_ALL_UNUSED_PINS = "AS INPUT TRI-STATED"; STRATIX_DEVICE_IO_STANDARD = LVTTL; CLOCK_SOURCE = INTERNAL; CONFIGURATION_CLOCK_FREQUENCY = "10 MHZ"; CONFIGURATION_CLOCK_DIVISOR = 1; RESERVE_NWS_NRS_NCS_CS_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_RDYNBUSY_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA7_THROUGH_DATA1_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_DATA0_AFTER_CONFIGURATION = "AS INPUT TRI-STATED"; RESERVE_NCEO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; RESERVE_ASDO_AFTER_CONFIGURATION = "USE AS REGULAR IO"; SCLK : LOCATION = Pin_101; SDI : LOCATION = Pin_100; SEN : LOCATION = Pin_98; SLD : LOCATION = Pin_95; adc1_data[0] : LOCATION = Pin_5; adc1_data[10] : LOCATION = Pin_235; adc1_data[11] : LOCATION = Pin_234; adc1_data[1] : LOCATION = Pin_4; adc1_data[2] : LOCATION = Pin_3; adc1_data[3] : LOCATION = Pin_2; adc1_data[4] : LOCATION = Pin_1; adc1_data[4] : IO_STANDARD = LVTTL; adc1_data[5] : LOCATION = Pin_240; adc1_data[6] : LOCATION = Pin_239; adc1_data[7] : LOCATION = Pin_238; adc1_data[8] : LOCATION = Pin_237; adc1_data[9] : LOCATION = Pin_236; adc2_data[0] : LOCATION = Pin_20; adc2_data[10] : LOCATION = Pin_8; adc2_data[11] : LOCATION = Pin_7; adc2_data[1] : LOCATION = Pin_19; adc2_data[2] : LOCATION = Pin_18; adc2_data[3] : LOCATION = Pin_17; adc2_data[4] : LOCATION = Pin_16; adc2_data[5] : LOCATION = Pin_15; adc2_data[6] : LOCATION = Pin_14; adc2_data[7] : LOCATION = Pin_13; adc2_data[8] : LOCATION = Pin_12; adc2_data[9] : LOCATION = Pin_11; adc3_data[0] : LOCATION = Pin_200; adc3_data[10] : LOCATION = Pin_184; adc3_data[11] : LOCATION = Pin_183; adc3_data[1] : LOCATION = Pin_197; adc3_data[2] : LOCATION = Pin_196; adc3_data[3] : LOCATION = Pin_195; adc3_data[4] : LOCATION = Pin_194; adc3_data[5] : LOCATION = Pin_193; adc3_data[6] : LOCATION = Pin_188; adc3_data[7] : LOCATION = Pin_187; adc3_data[8] : LOCATION = Pin_186; adc3_data[9] : LOCATION = Pin_185; adc4_data[0] : LOCATION = Pin_222; adc4_data[10] : LOCATION = Pin_203; adc4_data[11] : LOCATION = Pin_202; adc4_data[1] : LOCATION = Pin_219; adc4_data[2] : LOCATION = Pin_217; adc4_data[3] : LOCATION = Pin_216; adc4_data[4] : LOCATION = Pin_215; adc4_data[5] : LOCATION = Pin_214; adc4_data[6] : LOCATION = Pin_213; adc4_data[7] : LOCATION = Pin_208; adc4_data[8] : LOCATION = Pin_207; adc4_data[9] : LOCATION = Pin_206; adc_oeb[0] : LOCATION = Pin_228; adc_oeb[1] : LOCATION = Pin_21; adc_oeb[2] : LOCATION = Pin_181; adc_oeb[3] : LOCATION = Pin_218; adc_otr[0] : LOCATION = Pin_233; adc_otr[1] : LOCATION = Pin_6; adc_otr[2] : LOCATION = Pin_182; adc_otr[3] : LOCATION = Pin_201; adclk0 : LOCATION = Pin_224; adclk1 : LOCATION = Pin_226; clk0 : LOCATION = Pin_28; clk0 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk0 : IO_STANDARD = LVTTL; clk1 : LOCATION = Pin_29; clk1 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk1 : IO_STANDARD = LVTTL; clk3 : LOCATION = Pin_152; clk3 : RESERVE_PIN = "AS INPUT TRI-STATED"; clk3 : IO_STANDARD = LVTTL; clk_120mhz : LOCATION = Pin_153; clk_120mhz : IO_STANDARD = LVTTL; clk_out : LOCATION = Pin_63; clk_out : IO_STANDARD = LVTTL; dac1_data[0] : LOCATION = Pin_165; dac1_data[10] : LOCATION = Pin_177; dac1_data[11] : LOCATION = Pin_178; dac1_data[12] : LOCATION = Pin_179; dac1_data[13] : LOCATION = Pin_180; dac1_data[1] : LOCATION = Pin_166; dac1_data[2] : LOCATION = Pin_167; dac1_data[3] : LOCATION = Pin_168; dac1_data[4] : LOCATION = Pin_169; dac1_data[5] : LOCATION = Pin_170; dac1_data[6] : LOCATION = Pin_173; dac1_data[7] : LOCATION = Pin_174; dac1_data[8] : LOCATION = Pin_175; dac1_data[9] : LOCATION = Pin_176; dac2_data[0] : LOCATION = Pin_159; dac2_data[10] : LOCATION = Pin_163; dac2_data[11] : LOCATION = Pin_139; dac2_data[12] : LOCATION = Pin_164; dac2_data[13] : LOCATION = Pin_138; dac2_data[1] : LOCATION = Pin_158; dac2_data[2] : LOCATION = Pin_160; dac2_data[3] : LOCATION = Pin_156; dac2_data[4] : LOCATION = Pin_161; dac2_data[5] : LOCATION = Pin_144; dac2_data[6] : LOCATION = Pin_162; dac2_data[7] : LOCATION = Pin_141; dac2_data[8] : LOCATION = Pin_143; dac2_data[9] : LOCATION = Pin_140; dac3_data[0] : LOCATION = Pin_122; dac3_data[10] : LOCATION = Pin_134; dac3_data[11] : LOCATION = Pin_135; dac3_data[12] : LOCATION = Pin_136; dac3_data[13] : LOCATION = Pin_137; dac3_data[1] : LOCATION = Pin_123; dac3_data[2] : LOCATION = Pin_124; dac3_data[3] : LOCATION = Pin_125; dac3_data[4] : LOCATION = Pin_126; dac3_data[5] : LOCATION = Pin_127; dac3_data[6] : LOCATION = Pin_128; dac3_data[7] : LOCATION = Pin_131; dac3_data[8] : LOCATION = Pin_132; dac3_data[9] : LOCATION = Pin_133; dac4_data[0] : LOCATION = Pin_104; dac4_data[10] : LOCATION = Pin_118; dac4_data[11] : LOCATION = Pin_119; dac4_data[12] : LOCATION = Pin_120; dac4_data[13] : LOCATION = Pin_121; dac4_data[1] : LOCATION = Pin_105; dac4_data[2] : LOCATION = Pin_106; dac4_data[3] : LOCATION = Pin_107; dac4_data[4] : LOCATION = Pin_108; dac4_data[5] : LOCATION = Pin_113; dac4_data[6] : LOCATION = Pin_114; dac4_data[7] : LOCATION = Pin_115; dac4_data[8] : LOCATION = Pin_116; dac4_data[9] : LOCATION = Pin_117; enable_rx : LOCATION = Pin_88; enable_tx : LOCATION = Pin_93; gndbus[0] : LOCATION = Pin_223; gndbus[0] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[0] : IO_STANDARD = LVTTL; gndbus[1] : LOCATION = Pin_225; gndbus[1] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[1] : IO_STANDARD = LVTTL; gndbus[2] : LOCATION = Pin_227; gndbus[2] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[2] : IO_STANDARD = LVTTL; gndbus[3] : LOCATION = Pin_62; gndbus[3] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[3] : IO_STANDARD = LVTTL; gndbus[4] : LOCATION = Pin_64; gndbus[4] : RESERVE_PIN = "AS INPUT TRI-STATED"; gndbus[4] : IO_STANDARD = LVTTL; misc_pins[0] : LOCATION = Pin_87; misc_pins[0] : IO_STANDARD = LVTTL; misc_pins[10] : LOCATION = Pin_76; misc_pins[10] : IO_STANDARD = LVTTL; misc_pins[11] : LOCATION = Pin_74; misc_pins[11] : IO_STANDARD = LVTTL; misc_pins[1] : LOCATION = Pin_86; misc_pins[1] : IO_STANDARD = LVTTL; misc_pins[2] : LOCATION = Pin_85; misc_pins[2] : IO_STANDARD = LVTTL; misc_pins[3] : LOCATION = Pin_84; misc_pins[3] : IO_STANDARD = LVTTL; misc_pins[4] : LOCATION = Pin_83; misc_pins[4] : IO_STANDARD = LVTTL; misc_pins[5] : LOCATION = Pin_82; misc_pins[5] : IO_STANDARD = LVTTL; misc_pins[6] : LOCATION = Pin_79; misc_pins[6] : IO_STANDARD = LVTTL; misc_pins[7] : LOCATION = Pin_78; misc_pins[7] : IO_STANDARD = LVTTL; misc_pins[8] : LOCATION = Pin_77; misc_pins[8] : IO_STANDARD = LVTTL; misc_pins[9] : LOCATION = Pin_75; misc_pins[9] : IO_STANDARD = LVTTL; reset : LOCATION = Pin_94; usbclk : LOCATION = Pin_55; usbctl[0] : LOCATION = Pin_56; usbctl[1] : LOCATION = Pin_54; usbctl[2] : LOCATION = Pin_53; usbctl[3] : LOCATION = Pin_58; usbctl[4] : LOCATION = Pin_57; usbctl[5] : LOCATION = Pin_44; usbdata[0] : LOCATION = Pin_73; usbdata[10] : LOCATION = Pin_41; usbdata[11] : LOCATION = Pin_39; usbdata[12] : LOCATION = Pin_38; usbdata[12] : IO_STANDARD = LVTTL; usbdata[13] : LOCATION = Pin_37; usbdata[14] : LOCATION = Pin_24; usbdata[15] : LOCATION = Pin_23; usbdata[1] : LOCATION = Pin_68; usbdata[2] : LOCATION = Pin_67; usbdata[3] : LOCATION = Pin_66; usbdata[4] : LOCATION = Pin_65; usbdata[5] : LOCATION = Pin_61; usbdata[6] : LOCATION = Pin_60; usbdata[7] : LOCATION = Pin_59; usbdata[8] : LOCATION = Pin_43; usbdata[9] : LOCATION = Pin_42; usbrdy[0] : LOCATION = Pin_45; usbrdy[1] : LOCATION = Pin_46; usbrdy[2] : LOCATION = Pin_47; usbrdy[3] : LOCATION = Pin_48; usbrdy[4] : LOCATION = Pin_49; usbrdy[5] : LOCATION = Pin_50; clear_status : LOCATION = Pin_99; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/usrp_std.esf000066400000000000000000000005501224274632000223340ustar00rootroot00000000000000SIMULATOR_SETTINGS { ESTIMATE_POWER_CONSUMPTION = OFF; GLITCH_INTERVAL = 1NS; GLITCH_DETECTION = OFF; SIMULATION_COVERAGE = ON; CHECK_OUTPUTS = OFF; SETUP_HOLD_DETECTION = OFF; POWER_ESTIMATION_START_TIME = "0 NS"; ADD_DEFAULT_PINS_TO_SIMULATION_OUTPUT_WAVEFORMS = ON; SIMULATION_MODE = TIMING; START_TIME = 0NS; USE_COMPILER_SETTINGS = usrp_std; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/usrp_std.psf000066400000000000000000000224541224274632000223560ustar00rootroot00000000000000DEFAULT_DESIGN_ASSISTANT_SETTINGS { HCPY_ALOAD_SIGNALS = OFF; HCPY_VREF_PINS = OFF; HCPY_CAT = OFF; HCPY_ILLEGAL_HC_DEV_PKG = OFF; ACLK_RULE_IMSZER_ADOMAIN = OFF; ACLK_RULE_SZER_BTW_ACLK_DOMAIN = OFF; ACLK_RULE_NO_SZER_ACLK_DOMAIN = OFF; ACLK_CAT = OFF; SIGNALRACE_RULE_ASYNCHPIN_SYNCH_CLKPIN = OFF; SIGNALRACE_CAT = OFF; NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED = OFF; NONSYNCHSTRUCT_RULE_SRLATCH = OFF; NONSYNCHSTRUCT_RULE_DLATCH = OFF; NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR = OFF; NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN = OFF; NONSYNCHSTRUCT_RULE_RIPPLE_CLK = OFF; NONSYNCHSTRUCT_RULE_DELAY_CHAIN = OFF; NONSYNCHSTRUCT_RULE_REG_LOOP = OFF; NONSYNCHSTRUCT_RULE_COMBLOOP = OFF; NONSYNCHSTRUCT_CAT = OFF; NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE = OFF; TIMING_RULE_COIN_CLKEDGE = OFF; TIMING_RULE_SHIFT_REG = OFF; TIMING_RULE_HIGH_FANOUTS = OFF; TIMING_CAT = OFF; RESET_RULE_ALL = OFF; RESET_RULE_IMSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_UNSYNCH_ASYNCH_DOMAIN = OFF; RESET_RULE_REG_ASNYCH = OFF; RESET_RULE_COMB_ASYNCH_RESET = OFF; RESET_RULE_IMSYNCH_EXRESET = OFF; RESET_RULE_UNSYNCH_EXRESET = OFF; RESET_RULE_INPINS_RESETNET = OFF; RESET_CAT = OFF; CLK_RULE_ALL = OFF; CLK_RULE_MIX_EDGES = OFF; CLK_RULE_CLKNET_CLKSPINES = OFF; CLK_RULE_INPINS_CLKNET = OFF; CLK_RULE_GATING_SCHEME = OFF; CLK_RULE_INV_CLOCK = OFF; CLK_RULE_COMB_CLOCK = OFF; CLK_CAT = OFF; HCPY_EXCEED_USER_IO_USAGE = OFF; HCPY_EXCEED_RAM_USAGE = OFF; NONSYNCHSTRUCT_RULE_ASYN_RAM = OFF; SIGNALRACE_RULE_TRISTATE = OFF; ASSG_RULE_MISSING_TIMING = OFF; ASSG_RULE_MISSING_FMAX = OFF; ASSG_CAT = OFF; } SYNTHESIS_FITTING_SETTINGS { AUTO_SHIFT_REGISTER_RECOGNITION = ON; AUTO_DSP_RECOGNITION = ON; AUTO_RAM_RECOGNITION = ON; REMOVE_DUPLICATE_LOGIC = ON; AUTO_TURBO_BIT = ON; AUTO_MERGE_PLLS = ON; AUTO_OPEN_DRAIN_PINS = ON; AUTO_PARALLEL_EXPANDERS = ON; AUTO_FAST_OUTPUT_ENABLE_REGISTERS = OFF; AUTO_FAST_OUTPUT_REGISTERS = OFF; AUTO_FAST_INPUT_REGISTERS = OFF; AUTO_CASCADE_CHAINS = ON; AUTO_CARRY_CHAINS = ON; AUTO_DELAY_CHAINS = ON; MAX7000_PARALLEL_EXPANDER_CHAIN_LENGTH = 4; PARALLEL_EXPANDER_CHAIN_LENGTH = 16; CASCADE_CHAIN_LENGTH = 2; STRATIX_CARRY_CHAIN_LENGTH = 70; MERCURY_CARRY_CHAIN_LENGTH = 48; FLEX10K_CARRY_CHAIN_LENGTH = 32; FLEX6K_CARRY_CHAIN_LENGTH = 32; CARRY_CHAIN_LENGTH = 48; CARRY_OUT_PINS_LCELL_INSERT = ON; NORMAL_LCELL_INSERT = ON; AUTO_LCELL_INSERTION = ON; ALLOW_XOR_GATE_USAGE = ON; AUTO_PACKED_REGISTERS_STRATIX = NORMAL; AUTO_PACKED_REGISTERS = OFF; AUTO_PACKED_REG_CYCLONE = NORMAL; FLEX10K_OPTIMIZATION_TECHNIQUE = AREA; FLEX6K_OPTIMIZATION_TECHNIQUE = AREA; MERCURY_OPTIMIZATION_TECHNIQUE = AREA; APEX20K_OPTIMIZATION_TECHNIQUE = SPEED; MAX7000_OPTIMIZATION_TECHNIQUE = SPEED; STRATIX_OPTIMIZATION_TECHNIQUE = SPEED; CYCLONE_OPTIMIZATION_TECHNIQUE = AREA; FLEX10K_TECHNOLOGY_MAPPER = LUT; FLEX6K_TECHNOLOGY_MAPPER = LUT; MERCURY_TECHNOLOGY_MAPPER = LUT; APEX20K_TECHNOLOGY_MAPPER = LUT; MAX7000_TECHNOLOGY_MAPPER = "PRODUCT TERM"; STRATIX_TECHNOLOGY_MAPPER = LUT; AUTO_IMPLEMENT_IN_ROM = OFF; AUTO_GLOBAL_MEMORY_CONTROLS = OFF; AUTO_GLOBAL_REGISTER_CONTROLS = ON; AUTO_GLOBAL_OE = ON; AUTO_GLOBAL_CLOCK = ON; USE_LPM_FOR_AHDL_OPERATORS = ON; LIMIT_AHDL_INTEGERS_TO_32_BITS = OFF; ENABLE_BUS_HOLD_CIRCUITRY = OFF; WEAK_PULL_UP_RESISTOR = OFF; TURBO_BIT = ON; MAX7000_IGNORE_SOFT_BUFFERS = OFF; IGNORE_SOFT_BUFFERS = ON; MAX7000_IGNORE_LCELL_BUFFERS = AUTO; IGNORE_LCELL_BUFFERS = OFF; IGNORE_ROW_GLOBAL_BUFFERS = OFF; IGNORE_GLOBAL_BUFFERS = OFF; IGNORE_CASCADE_BUFFERS = OFF; IGNORE_CARRY_BUFFERS = OFF; REMOVE_DUPLICATE_REGISTERS = ON; REMOVE_REDUNDANT_LOGIC_CELLS = OFF; ALLOW_POWER_UP_DONT_CARE = ON; PCI_IO = OFF; NOT_GATE_PUSH_BACK = ON; SLOW_SLEW_RATE = OFF; DSP_BLOCK_BALANCING = AUTO; STATE_MACHINE_PROCESSING = AUTO; } DEFAULT_HARDCOPY_SETTINGS { HARDCOPY_EXTERNAL_CLOCK_JITTER = "0.0 NS"; } DEFAULT_TIMING_REQUIREMENTS { INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; RUN_ALL_TIMING_ANALYSES = ON; IGNORE_CLOCK_SETTINGS = OFF; DEFAULT_HOLD_MULTICYCLE = "SAME AS MULTICYCLE"; CUT_OFF_IO_PIN_FEEDBACK = ON; CUT_OFF_CLEAR_AND_PRESET_PATHS = ON; CUT_OFF_READ_DURING_WRITE_PATHS = ON; CUT_OFF_PATHS_BETWEEN_CLOCK_DOMAINS = ON; DO_MIN_ANALYSIS = ON; DO_MIN_TIMING = OFF; NUMBER_OF_PATHS_TO_REPORT = 200; NUMBER_OF_DESTINATION_TO_REPORT = 10; NUMBER_OF_SOURCES_PER_DESTINATION_TO_REPORT = 10; MAX_SCC_SIZE = 50; } HDL_SETTINGS { VERILOG_INPUT_VERSION = VERILOG_2001; ENABLE_IP_DEBUG = OFF; VHDL_INPUT_VERSION = VHDL93; VHDL_SHOW_LMF_MAPPING_MESSAGES = OFF; } PROJECT_INFO(usrp_std) { ORIGINAL_QUARTUS_VERSION = 3.0; PROJECT_CREATION_TIME_DATE = "00:14:04 JULY 13, 2003"; LAST_QUARTUS_VERSION = 3.0; SHOW_REGISTRATION_MESSAGE = ON; USER_LIBRARIES = "e:\usrp\fpga\megacells"; } THIRD_PARTY_EDA_TOOLS(usrp_std) { EDA_DESIGN_ENTRY_SYNTHESIS_TOOL = ""; EDA_SIMULATION_TOOL = ""; EDA_TIMING_ANALYSIS_TOOL = ""; EDA_BOARD_DESIGN_TOOL = ""; EDA_FORMAL_VERIFICATION_TOOL = ""; EDA_RESYNTHESIS_TOOL = ""; } EDA_TOOL_SETTINGS(eda_design_synthesis) { EDA_INPUT_GND_NAME = GND; EDA_INPUT_VCC_NAME = VCC; EDA_SHOW_LMF_MAPPING_MESSAGES = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_INPUT_DATA_FORMAT = EDIF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_simulation) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_timing_analysis) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; EDA_LAUNCH_CMD_LINE_TOOL = OFF; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_board_design) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_formal_verification) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; RESYNTHESIS_RETIMING = FULL; } EDA_TOOL_SETTINGS(eda_palace) { EDA_INCLUDE_VHDL_CONFIGURATION_DECLARATION = OFF; EDA_TRUNCATE_LONG_HIERARCHY_PATHS = OFF; EDA_MAINTAIN_DESIGN_HIERARCHY = OFF; EDA_WRITE_DEVICE_CONTROL_PORTS = OFF; EDA_GENERATE_FUNCTIONAL_NETLIST = OFF; EDA_FLATTEN_BUSES = OFF; EDA_MAP_ILLEGAL_CHARACTERS = OFF; EDA_EXCALIBUR_ATOMS_AS_SINGLE_STRIPE = OFF; EDA_RUN_TOOL_AUTOMATICALLY = OFF; EDA_OUTPUT_DATA_FORMAT = NONE; RESYNTHESIS_RETIMING = FULL; RESYNTHESIS_PHYSICAL_SYNTHESIS = NORMAL; RESYNTHESIS_OPTIMIZATION_EFFORT = NORMAL; USE_GENERATED_PHYSICAL_CONSTRAINTS = ON; } CLOCK(clk_120mhz) { FMAX_REQUIREMENT = "120.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(usbclk) { FMAX_REQUIREMENT = "48.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(SCLK) { FMAX_REQUIREMENT = "1.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk0) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } CLOCK(adclk1) { FMAX_REQUIREMENT = "60.0 MHz"; INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS = OFF; DUTY_CYCLE = 50; DIVIDE_BASE_CLOCK_PERIOD_BY = 1; MULTIPLY_BASE_CLOCK_PERIOD_BY = 1; INVERT_BASE_CLOCK = OFF; } uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/usrp_std.qpf000066400000000000000000000030051224274632000223430ustar00rootroot00000000000000# Copyright (C) 1991-2004 Altera Corporation # Any megafunction design, and related netlist (encrypted or decrypted), # support information, device programming or simulation file, and any other # associated documentation or information provided by Altera or a partner # under Altera's Megafunction Partnership Program may be used only # to program PLD devices (but not masked PLD devices) from Altera. Any # other use of such megafunction design, netlist, support information, # device programming or simulation file, or any other related documentation # or information is prohibited for any other purpose, including, but not # limited to modification, reverse engineering, de-compiling, or use with # any other silicon devices, unless such use is explicitly licensed under # a separate agreement with Altera or a megafunction partner. Title to the # intellectual property, including patents, copyrights, trademarks, trade # secrets, or maskworks, embodied in any such megafunction design, netlist, # support information, device programming or simulation file, or any other # related documentation or information provided by Altera or a megafunction # partner, remains with Altera, the megafunction partner, or their respective # licensors. No other licenses, including any licenses needed under any third # party's intellectual property, are provided herein. QUARTUS_VERSION = "4.0" DATE = "17:10:11 December 20, 2004" # Active Revisions PROJECT_REVISION = "usrp_std" uhd-3.5.5/fpga/usrp1/toplevel/usrp_std/usrp_std.qsf000066400000000000000000000451651224274632000223630ustar00rootroot00000000000000# Copyright (C) 1991-2005 Altera Corporation # Your use of Altera Corporation's design tools, logic functions # and other software and tools, and its AMPP partner logic # functions, and any output files any of the foregoing # (including device programming or simulation files), and any # associated documentation or information are expressly subject # to the terms and conditions of the Altera Program License # Subscription Agreement, Altera MegaCore Function License # Agreement, or other applicable license agreement, including, # without limitation, that your use is for the sole purpose of # programming logic devices manufactured by Altera and sold by # Altera or its authorized distributors. Please refer to the # applicable agreement for further details. # The default values for assignments are stored in the file # usrp_std_assignment_defaults.qdf # If this file doesn't exist, and for assignments not listed, see file # assignment_defaults.qdf # Altera recommends that you do not modify this file. This # file is updated automatically by the Quartus II software # and any changes you make may be lost or overwritten. # Project-Wide Assignments # ======================== set_global_assignment -name ORIGINAL_QUARTUS_VERSION 3.0 set_global_assignment -name PROJECT_CREATION_TIME_DATE "00:14:04 JULY 13, 2003" set_global_assignment -name LAST_QUARTUS_VERSION "7.1 SP1" # Pin & Location Assignments # ========================== set_global_assignment -name RESERVE_PIN "AS INPUT TRI-STATED" set_location_assignment PIN_29 -to SCLK set_location_assignment PIN_117 -to SDI set_location_assignment PIN_28 -to usbclk set_location_assignment PIN_107 -to usbctl[0] set_location_assignment PIN_106 -to usbctl[1] set_location_assignment PIN_105 -to usbctl[2] set_location_assignment PIN_100 -to usbdata[0] set_location_assignment PIN_84 -to usbdata[10] set_location_assignment PIN_83 -to usbdata[11] set_location_assignment PIN_82 -to usbdata[12] set_location_assignment PIN_79 -to usbdata[13] set_location_assignment PIN_78 -to usbdata[14] set_location_assignment PIN_77 -to usbdata[15] set_location_assignment PIN_99 -to usbdata[1] set_location_assignment PIN_98 -to usbdata[2] set_location_assignment PIN_95 -to usbdata[3] set_location_assignment PIN_94 -to usbdata[4] set_location_assignment PIN_93 -to usbdata[5] set_location_assignment PIN_88 -to usbdata[6] set_location_assignment PIN_87 -to usbdata[7] set_location_assignment PIN_86 -to usbdata[8] set_location_assignment PIN_85 -to usbdata[9] set_location_assignment PIN_104 -to usbrdy[0] set_location_assignment PIN_101 -to usbrdy[1] set_location_assignment PIN_76 -to FX2_1 set_location_assignment PIN_75 -to FX2_2 set_location_assignment PIN_74 -to FX2_3 set_location_assignment PIN_116 -to io_rx_a[0] set_location_assignment PIN_115 -to io_rx_a[1] set_location_assignment PIN_114 -to io_rx_a[2] set_location_assignment PIN_113 -to io_rx_a[3] set_location_assignment PIN_108 -to io_rx_a[4] set_location_assignment PIN_195 -to io_rx_a[5] set_location_assignment PIN_196 -to io_rx_a[6] set_location_assignment PIN_197 -to io_rx_a[7] set_location_assignment PIN_200 -to io_rx_a[8] set_location_assignment PIN_201 -to io_rx_a[9] set_location_assignment PIN_202 -to io_rx_a[10] set_location_assignment PIN_203 -to io_rx_a[11] set_location_assignment PIN_206 -to io_rx_a[12] set_location_assignment PIN_207 -to io_rx_a[13] set_location_assignment PIN_208 -to io_rx_a[14] set_location_assignment PIN_214 -to io_rx_b[0] set_location_assignment PIN_215 -to io_rx_b[1] set_location_assignment PIN_216 -to io_rx_b[2] set_location_assignment PIN_217 -to io_rx_b[3] set_location_assignment PIN_218 -to io_rx_b[4] set_location_assignment PIN_219 -to io_rx_b[5] set_location_assignment PIN_222 -to io_rx_b[6] set_location_assignment PIN_223 -to io_rx_b[7] set_location_assignment PIN_224 -to io_rx_b[8] set_location_assignment PIN_225 -to io_rx_b[9] set_location_assignment PIN_226 -to io_rx_b[10] set_location_assignment PIN_227 -to io_rx_b[11] set_location_assignment PIN_228 -to io_rx_b[12] set_location_assignment PIN_233 -to io_rx_b[13] set_location_assignment PIN_234 -to io_rx_b[14] set_location_assignment PIN_175 -to io_tx_a[0] set_location_assignment PIN_176 -to io_tx_a[1] set_location_assignment PIN_177 -to io_tx_a[2] set_location_assignment PIN_178 -to io_tx_a[3] set_location_assignment PIN_179 -to io_tx_a[4] set_location_assignment PIN_180 -to io_tx_a[5] set_location_assignment PIN_181 -to io_tx_a[6] set_location_assignment PIN_182 -to io_tx_a[7] set_location_assignment PIN_183 -to io_tx_a[8] set_location_assignment PIN_184 -to io_tx_a[9] set_location_assignment PIN_185 -to io_tx_a[10] set_location_assignment PIN_186 -to io_tx_a[11] set_location_assignment PIN_187 -to io_tx_a[12] set_location_assignment PIN_188 -to io_tx_a[13] set_location_assignment PIN_193 -to io_tx_a[14] set_location_assignment PIN_73 -to io_tx_b[0] set_location_assignment PIN_68 -to io_tx_b[1] set_location_assignment PIN_67 -to io_tx_b[2] set_location_assignment PIN_66 -to io_tx_b[3] set_location_assignment PIN_65 -to io_tx_b[4] set_location_assignment PIN_64 -to io_tx_b[5] set_location_assignment PIN_63 -to io_tx_b[6] set_location_assignment PIN_62 -to io_tx_b[7] set_location_assignment PIN_61 -to io_tx_b[8] set_location_assignment PIN_60 -to io_tx_b[9] set_location_assignment PIN_59 -to io_tx_b[10] set_location_assignment PIN_58 -to io_tx_b[11] set_location_assignment PIN_57 -to io_tx_b[12] set_location_assignment PIN_56 -to io_tx_b[13] set_location_assignment PIN_55 -to io_tx_b[14] set_location_assignment PIN_152 -to master_clk set_location_assignment PIN_144 -to rx_a_a[0] set_location_assignment PIN_143 -to rx_a_a[1] set_location_assignment PIN_141 -to rx_a_a[2] set_location_assignment PIN_140 -to rx_a_a[3] set_location_assignment PIN_139 -to rx_a_a[4] set_location_assignment PIN_138 -to rx_a_a[5] set_location_assignment PIN_137 -to rx_a_a[6] set_location_assignment PIN_136 -to rx_a_a[7] set_location_assignment PIN_135 -to rx_a_a[8] set_location_assignment PIN_134 -to rx_a_a[9] set_location_assignment PIN_133 -to rx_a_a[10] set_location_assignment PIN_132 -to rx_a_a[11] set_location_assignment PIN_23 -to rx_a_b[0] set_location_assignment PIN_21 -to rx_a_b[1] set_location_assignment PIN_20 -to rx_a_b[2] set_location_assignment PIN_19 -to rx_a_b[3] set_location_assignment PIN_18 -to rx_a_b[4] set_location_assignment PIN_17 -to rx_a_b[5] set_location_assignment PIN_16 -to rx_a_b[6] set_location_assignment PIN_15 -to rx_a_b[7] set_location_assignment PIN_14 -to rx_a_b[8] set_location_assignment PIN_13 -to rx_a_b[9] set_location_assignment PIN_12 -to rx_a_b[10] set_location_assignment PIN_11 -to rx_a_b[11] set_location_assignment PIN_131 -to rx_b_a[0] set_location_assignment PIN_128 -to rx_b_a[1] set_location_assignment PIN_127 -to rx_b_a[2] set_location_assignment PIN_126 -to rx_b_a[3] set_location_assignment PIN_125 -to rx_b_a[4] set_location_assignment PIN_124 -to rx_b_a[5] set_location_assignment PIN_123 -to rx_b_a[6] set_location_assignment PIN_122 -to rx_b_a[7] set_location_assignment PIN_121 -to rx_b_a[8] set_location_assignment PIN_120 -to rx_b_a[9] set_location_assignment PIN_119 -to rx_b_a[10] set_location_assignment PIN_118 -to rx_b_a[11] set_location_assignment PIN_8 -to rx_b_b[0] set_location_assignment PIN_7 -to rx_b_b[1] set_location_assignment PIN_6 -to rx_b_b[2] set_location_assignment PIN_5 -to rx_b_b[3] set_location_assignment PIN_4 -to rx_b_b[4] set_location_assignment PIN_3 -to rx_b_b[5] set_location_assignment PIN_2 -to rx_b_b[6] set_location_assignment PIN_240 -to rx_b_b[7] set_location_assignment PIN_239 -to rx_b_b[8] set_location_assignment PIN_238 -to rx_b_b[9] set_location_assignment PIN_237 -to rx_b_b[10] set_location_assignment PIN_236 -to rx_b_b[11] set_location_assignment PIN_156 -to SDO set_location_assignment PIN_153 -to SEN_FPGA set_location_assignment PIN_159 -to tx_a[0] set_location_assignment PIN_160 -to tx_a[1] set_location_assignment PIN_161 -to tx_a[2] set_location_assignment PIN_162 -to tx_a[3] set_location_assignment PIN_163 -to tx_a[4] set_location_assignment PIN_164 -to tx_a[5] set_location_assignment PIN_165 -to tx_a[6] set_location_assignment PIN_166 -to tx_a[7] set_location_assignment PIN_167 -to tx_a[8] set_location_assignment PIN_168 -to tx_a[9] set_location_assignment PIN_169 -to tx_a[10] set_location_assignment PIN_170 -to tx_a[11] set_location_assignment PIN_173 -to tx_a[12] set_location_assignment PIN_174 -to tx_a[13] set_location_assignment PIN_38 -to tx_b[0] set_location_assignment PIN_39 -to tx_b[1] set_location_assignment PIN_41 -to tx_b[2] set_location_assignment PIN_42 -to tx_b[3] set_location_assignment PIN_43 -to tx_b[4] set_location_assignment PIN_44 -to tx_b[5] set_location_assignment PIN_45 -to tx_b[6] set_location_assignment PIN_46 -to tx_b[7] set_location_assignment PIN_47 -to tx_b[8] set_location_assignment PIN_48 -to tx_b[9] set_location_assignment PIN_49 -to tx_b[10] set_location_assignment PIN_50 -to tx_b[11] set_location_assignment PIN_53 -to tx_b[12] set_location_assignment PIN_54 -to tx_b[13] set_location_assignment PIN_158 -to TXSYNC_A set_location_assignment PIN_37 -to TXSYNC_B set_location_assignment PIN_235 -to io_rx_b[15] set_location_assignment PIN_24 -to io_tx_b[15] set_location_assignment PIN_213 -to io_rx_a[15] set_location_assignment PIN_194 -to io_tx_a[15] set_location_assignment PIN_1 -to MYSTERY_SIGNAL # Timing Assignments # ================== set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF # Analysis & Synthesis Assignments # ================================ set_global_assignment -name SAVE_DISK_SPACE OFF set_global_assignment -name DEVICE_FILTER_PACKAGE "ANY QFP" set_global_assignment -name DEVICE_FILTER_PIN_COUNT 240 set_global_assignment -name EDA_DESIGN_ENTRY_SYNTHESIS_TOOL "" set_global_assignment -name FAMILY Cyclone set_global_assignment -name CYCLONE_OPTIMIZATION_TECHNIQUE BALANCED set_global_assignment -name STRATIX_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name APEX20K_OPTIMIZATION_TECHNIQUE SPEED set_global_assignment -name TOP_LEVEL_ENTITY usrp_std set_global_assignment -name VHDL_SHOW_LMF_MAPPING_MESSAGES OFF set_global_assignment -name USER_LIBRARIES "e:\\usrp\\fpga\\megacells" set_global_assignment -name AUTO_ENABLE_SMART_COMPILE ON # Fitter Assignments # ================== set_global_assignment -name DEVICE EP1C12Q240C8 set_global_assignment -name CYCLONE_CONFIGURATION_SCHEME "PASSIVE SERIAL" set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED" set_global_assignment -name OPTIMIZE_HOLD_TIMING OFF set_global_assignment -name OPTIMIZE_TIMING "NORMAL COMPILATION" set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC OFF set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_RETIMING OFF set_global_assignment -name IO_PLACEMENT_OPTIMIZATION OFF set_global_assignment -name PHYSICAL_SYNTHESIS_EFFORT NORMAL set_global_assignment -name INC_PLC_MODE OFF set_global_assignment -name ROUTING_BACK_ANNOTATION_MODE OFF set_instance_assignment -name IO_STANDARD LVTTL -to usbdata[12] set_global_assignment -name STRATIX_DEVICE_IO_STANDARD LVTTL set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1 # Timing Analysis Assignments # =========================== set_global_assignment -name MAX_SCC_SIZE 50 # EDA Netlist Writer Assignments # ============================== set_global_assignment -name EDA_SIMULATION_TOOL "" set_global_assignment -name EDA_TIMING_ANALYSIS_TOOL "" set_global_assignment -name EDA_BOARD_DESIGN_TOOL "" set_global_assignment -name EDA_FORMAL_VERIFICATION_TOOL "" set_global_assignment -name EDA_RESYNTHESIS_TOOL "" # Assembler Assignments # ===================== set_global_assignment -name USE_CONFIGURATION_DEVICE OFF set_global_assignment -name GENERATE_RBF_FILE ON set_global_assignment -name RESERVE_ALL_UNUSED_PINS_NO_OUTPUT_GND "AS INPUT TRI-STATED" set_global_assignment -name AUTO_RESTART_CONFIGURATION OFF # Simulator Assignments # ===================== set_global_assignment -name START_TIME "0 ns" set_global_assignment -name GLITCH_INTERVAL "1 ns" # Design Assistant Assignments # ============================ set_global_assignment -name DRC_REPORT_TOP_FANOUT OFF set_global_assignment -name DRC_REPORT_FANOUT_EXCEEDING OFF set_global_assignment -name ASSG_CAT OFF set_global_assignment -name ASSG_RULE_MISSING_FMAX OFF set_global_assignment -name ASSG_RULE_MISSING_TIMING OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ASYN_RAM OFF set_global_assignment -name CLK_CAT OFF set_global_assignment -name CLK_RULE_COMB_CLOCK OFF set_global_assignment -name CLK_RULE_INV_CLOCK OFF set_global_assignment -name CLK_RULE_GATING_SCHEME OFF set_global_assignment -name CLK_RULE_INPINS_CLKNET OFF set_global_assignment -name CLK_RULE_CLKNET_CLKSPINES OFF set_global_assignment -name CLK_RULE_MIX_EDGES OFF set_global_assignment -name RESET_CAT OFF set_global_assignment -name RESET_RULE_INPINS_RESETNET OFF set_global_assignment -name RESET_RULE_UNSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_IMSYNCH_EXRESET OFF set_global_assignment -name RESET_RULE_COMB_ASYNCH_RESET OFF set_global_assignment -name RESET_RULE_UNSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name RESET_RULE_IMSYNCH_ASYNCH_DOMAIN OFF set_global_assignment -name TIMING_CAT OFF set_global_assignment -name TIMING_RULE_SHIFT_REG OFF set_global_assignment -name TIMING_RULE_COIN_CLKEDGE OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMB_DRIVES_RAM_WE OFF set_global_assignment -name NONSYNCHSTRUCT_CAT OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_COMBLOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_REG_LOOP OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_DELAY_CHAIN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_RIPPLE_CLK OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_ILLEGAL_PULSE_GEN OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_MULTI_VIBRATOR OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_SRLATCH OFF set_global_assignment -name NONSYNCHSTRUCT_RULE_LATCH_UNIDENTIFIED OFF set_global_assignment -name SIGNALRACE_CAT OFF set_global_assignment -name ACLK_CAT OFF set_global_assignment -name ACLK_RULE_NO_SZER_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_SZER_BTW_ACLK_DOMAIN OFF set_global_assignment -name ACLK_RULE_IMSZER_ADOMAIN OFF set_global_assignment -name HCPY_CAT OFF set_global_assignment -name HCPY_VREF_PINS OFF # SignalTap II Assignments # ======================== set_global_assignment -name HUB_ENTITY_NAME SLD_HUB set_global_assignment -name HUB_INSTANCE_NAME SLD_HUB_INST set_global_assignment -name ENABLE_SIGNALTAP OFF # LogicLock Region Assignments # ============================ set_global_assignment -name LOGICLOCK_INCREMENTAL_COMPILE_ASSIGNMENT OFF # ----------------- # start CLOCK(SCLK) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id SCLK set_global_assignment -name FMAX_REQUIREMENT "1 MHz" -section_id SCLK set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id SCLK # end CLOCK(SCLK) # --------------- # ----------------------- # start CLOCK(master_clk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id master_clk set_global_assignment -name FMAX_REQUIREMENT "64 MHz" -section_id master_clk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id master_clk # end CLOCK(master_clk) # --------------------- # ------------------- # start CLOCK(usbclk) # Timing Assignments # ================== set_global_assignment -name DUTY_CYCLE 50 -section_id usbclk set_global_assignment -name FMAX_REQUIREMENT "48 MHz" -section_id usbclk set_global_assignment -name INCLUDE_EXTERNAL_PIN_DELAYS_IN_FMAX_CALCULATIONS OFF -section_id usbclk # end CLOCK(usbclk) # ----------------- # ---------------------- # start ENTITY(usrp_std) # Timing Assignments # ================== set_instance_assignment -name CLOCK_SETTINGS SCLK -to SCLK set_instance_assignment -name CLOCK_SETTINGS usbclk -to usbclk set_instance_assignment -name CLOCK_SETTINGS master_clk -to master_clk # end ENTITY(usrp_std) # -------------------- set_instance_assignment -name PARTITION_HIERARCHY no_file_for_top_partition -to | -section_id Top set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name VERILOG_FILE ../../megacells/fifo_4k_18.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/atr_delay.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_dec_shifter.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rssi.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/ram16.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_4k.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mult.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/ram16_2sum.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/coeff_rom.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/halfband_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/hb/mac.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_dcoffset.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/adc_interface.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/io_pins.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/setting_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/bidir_reg.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_int_shifter.v set_global_assignment -name VERILOG_FILE ../../megacells/clk_doubler.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_chain.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/gen_sync.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/master_control.v set_global_assignment -name VERILOG_FILE ../../megacells/fifo_2k.v set_global_assignment -name VERILOG_FILE ../../megacells/bustri.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/rx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/tx_buffer.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/phase_acc.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_interp.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cic_decim.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic_stage.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/cordic.v set_global_assignment -name VERILOG_FILE usrp_std.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/clk_divider.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/serial_io.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/strobe_gen.v set_global_assignment -name VERILOG_FILE ../../sdr_lib/sign_extend.vuhd-3.5.5/fpga/usrp1/toplevel/usrp_std/usrp_std.v000066400000000000000000000304751224274632000220350ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003,2004 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Top level module for a full setup with DUCs and DDCs // Define DEBUG_OWNS_IO_PINS if we're using the daughterboard i/o pins // for debugging info. NB, This can kill the m'board and/or d'board if you // have anything except basic d'boards installed. // Uncomment the following to include optional circuitry `include "config.vh" `include "../../common/fpga_regs_common.v" `include "../../common/fpga_regs_standard.v" module usrp_std (output MYSTERY_SIGNAL, input master_clk, input SCLK, input SDI, inout SDO, input SEN_FPGA, input FX2_1, output FX2_2, output FX2_3, input wire [11:0] rx_a_a, input wire [11:0] rx_b_a, input wire [11:0] rx_a_b, input wire [11:0] rx_b_b, output wire [13:0] tx_a, output wire [13:0] tx_b, output wire TXSYNC_A, output wire TXSYNC_B, // USB interface input usbclk, input wire [2:0] usbctl, output wire [1:0] usbrdy, inout [15:0] usbdata, // NB Careful, inout // These are the general purpose i/o's that go to the daughterboard slots inout wire [15:0] io_tx_a, inout wire [15:0] io_tx_b, inout wire [15:0] io_rx_a, inout wire [15:0] io_rx_b ); wire [15:0] debugdata,debugctrl; assign MYSTERY_SIGNAL = 1'b0; wire clk64,clk128; wire WR = usbctl[0]; wire RD = usbctl[1]; wire OE = usbctl[2]; wire have_space, have_pkt_rdy; assign usbrdy[0] = have_space; assign usbrdy[1] = have_pkt_rdy; wire tx_underrun, rx_overrun; wire clear_status = FX2_1; assign FX2_2 = rx_overrun; assign FX2_3 = tx_underrun; wire [15:0] usbdata_out; wire [3:0] dac0mux,dac1mux,dac2mux,dac3mux; wire tx_realsignals; wire [3:0] rx_numchan; wire [2:0] tx_numchan; wire [7:0] interp_rate, decim_rate; wire [31:0] tx_debugbus, rx_debugbus; wire enable_tx, enable_rx; wire tx_dsp_reset, rx_dsp_reset, tx_bus_reset, rx_bus_reset; wire [7:0] settings; // Tri-state bus macro bustri bustri( .data(usbdata_out),.enabledt(OE),.tridata(usbdata) ); assign clk64 = master_clk; wire [15:0] ch0tx,ch1tx,ch2tx,ch3tx; //,ch4tx,ch5tx,ch6tx,ch7tx; wire [15:0] ch0rx,ch1rx,ch2rx,ch3rx,ch4rx,ch5rx,ch6rx,ch7rx; // TX wire [15:0] i_out_0,i_out_1,q_out_0,q_out_1; wire [15:0] bb_tx_i0,bb_tx_q0,bb_tx_i1,bb_tx_q1; // bb_tx_i2,bb_tx_q2,bb_tx_i3,bb_tx_q3; wire strobe_interp, tx_sample_strobe; wire tx_empty; wire serial_strobe; wire [6:0] serial_addr; wire [31:0] serial_data; reg [15:0] debug_counter; reg [15:0] loopback_i_0,loopback_q_0; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Transmit Side `ifdef TX_ON assign bb_tx_i0 = ch0tx; assign bb_tx_q0 = ch1tx; assign bb_tx_i1 = ch2tx; assign bb_tx_q1 = ch3tx; tx_buffer tx_buffer ( .usbclk(usbclk), .bus_reset(tx_bus_reset), .usbdata(usbdata),.WR(WR), .have_space(have_space), .tx_underrun(tx_underrun), .clear_status(clear_status), .txclk(clk64), .reset(tx_dsp_reset), .channels({tx_numchan,1'b0}), .tx_i_0(ch0tx),.tx_q_0(ch1tx), .tx_i_1(ch2tx),.tx_q_1(ch3tx), .txstrobe(strobe_interp), .tx_empty(tx_empty), .debugbus(tx_debugbus) ); `ifdef TX_EN_0 tx_chain tx_chain_0 ( .clock(clk64),.reset(tx_dsp_reset),.enable(enable_tx), .interp_rate(interp_rate),.sample_strobe(tx_sample_strobe), .interpolator_strobe(strobe_interp),.freq(), .i_in(bb_tx_i0),.q_in(bb_tx_q0),.i_out(i_out_0),.q_out(q_out_0) ); `else assign i_out_0=16'd0; assign q_out_0=16'd0; `endif `ifdef TX_EN_1 tx_chain tx_chain_1 ( .clock(clk64),.reset(tx_dsp_reset),.enable(enable_tx), .interp_rate(interp_rate),.sample_strobe(tx_sample_strobe), .interpolator_strobe(strobe_interp),.freq(), .i_in(bb_tx_i1),.q_in(bb_tx_q1),.i_out(i_out_1),.q_out(q_out_1) ); `else assign i_out_1=16'd0; assign q_out_1=16'd0; `endif setting_reg #(`FR_TX_MUX) sr_txmux(.clock(clk64),.reset(tx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data), .out({dac3mux,dac2mux,dac1mux,dac0mux,tx_realsignals,tx_numchan})); wire [15:0] tx_a_a = dac0mux[3] ? (dac0mux[1] ? (dac0mux[0] ? q_out_1 : i_out_1) : (dac0mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_b_a = dac1mux[3] ? (dac1mux[1] ? (dac1mux[0] ? q_out_1 : i_out_1) : (dac1mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_a_b = dac2mux[3] ? (dac2mux[1] ? (dac2mux[0] ? q_out_1 : i_out_1) : (dac2mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire [15:0] tx_b_b = dac3mux[3] ? (dac3mux[1] ? (dac3mux[0] ? q_out_1 : i_out_1) : (dac3mux[0] ? q_out_0 : i_out_0)) : 16'b0; wire txsync = tx_sample_strobe; assign TXSYNC_A = txsync; assign TXSYNC_B = txsync; assign tx_a = txsync ? tx_b_a[15:2] : tx_a_a[15:2]; assign tx_b = txsync ? tx_b_b[15:2] : tx_a_b[15:2]; `endif // `ifdef TX_ON ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Receive Side `ifdef RX_ON wire rx_sample_strobe,strobe_decim,hb_strobe; wire [15:0] bb_rx_i0,bb_rx_q0,bb_rx_i1,bb_rx_q1, bb_rx_i2,bb_rx_q2,bb_rx_i3,bb_rx_q3; wire loopback = settings[0]; wire counter = settings[1]; always @(posedge clk64) if(rx_dsp_reset) debug_counter <= #1 16'd0; else if(~enable_rx) debug_counter <= #1 16'd0; else if(hb_strobe) debug_counter <=#1 debug_counter + 16'd2; always @(posedge clk64) if(strobe_interp) begin loopback_i_0 <= #1 ch0tx; loopback_q_0 <= #1 ch1tx; end assign ch0rx = counter ? debug_counter : loopback ? loopback_i_0 : bb_rx_i0; assign ch1rx = counter ? debug_counter + 16'd1 : loopback ? loopback_q_0 : bb_rx_q0; assign ch2rx = bb_rx_i1; assign ch3rx = bb_rx_q1; assign ch4rx = bb_rx_i2; assign ch5rx = bb_rx_q2; assign ch6rx = bb_rx_i3; assign ch7rx = bb_rx_q3; wire [15:0] ddc0_in_i,ddc0_in_q,ddc1_in_i,ddc1_in_q,ddc2_in_i,ddc2_in_q,ddc3_in_i,ddc3_in_q; wire [31:0] rssi_0,rssi_1,rssi_2,rssi_3; adc_interface adc_interface(.clock(clk64),.reset(rx_dsp_reset),.enable(1'b1), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(rx_a_b),.rx_b_b(rx_b_b), .rssi_0(rssi_0),.rssi_1(rssi_1),.rssi_2(rssi_2),.rssi_3(rssi_3), .ddc0_in_i(ddc0_in_i),.ddc0_in_q(ddc0_in_q), .ddc1_in_i(ddc1_in_i),.ddc1_in_q(ddc1_in_q), .ddc2_in_i(ddc2_in_i),.ddc2_in_q(ddc2_in_q), .ddc3_in_i(ddc3_in_i),.ddc3_in_q(ddc3_in_q),.rx_numchan(rx_numchan) ); rx_buffer rx_buffer ( .usbclk(usbclk),.bus_reset(rx_bus_reset),.reset(rx_dsp_reset), .reset_regs(rx_dsp_reset), .usbdata(usbdata_out),.RD(RD),.have_pkt_rdy(have_pkt_rdy),.rx_overrun(rx_overrun), .channels(rx_numchan), .ch_0(ch0rx),.ch_1(ch1rx), .ch_2(ch2rx),.ch_3(ch3rx), .ch_4(ch4rx),.ch_5(ch5rx), .ch_6(ch6rx),.ch_7(ch7rx), .rxclk(clk64),.rxstrobe(hb_strobe), .clear_status(clear_status), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .debugbus(rx_debugbus) ); `ifdef RX_EN_0 rx_chain #(`FR_RX_FREQ_0,`FR_RX_PHASE_0) rx_chain_0 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(hb_strobe), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc0_in_i),.q_in(ddc0_in_q),.i_out(bb_rx_i0),.q_out(bb_rx_q0),.debugdata(debugdata),.debugctrl(debugctrl)); `else assign bb_rx_i0=16'd0; assign bb_rx_q0=16'd0; `endif `ifdef RX_EN_1 rx_chain #(`FR_RX_FREQ_1,`FR_RX_PHASE_1) rx_chain_1 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc1_in_i),.q_in(ddc1_in_q),.i_out(bb_rx_i1),.q_out(bb_rx_q1)); `else assign bb_rx_i1=16'd0; assign bb_rx_q1=16'd0; `endif `ifdef RX_EN_2 rx_chain #(`FR_RX_FREQ_2,`FR_RX_PHASE_2) rx_chain_2 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc2_in_i),.q_in(ddc2_in_q),.i_out(bb_rx_i2),.q_out(bb_rx_q2)); `else assign bb_rx_i2=16'd0; assign bb_rx_q2=16'd0; `endif `ifdef RX_EN_3 rx_chain #(`FR_RX_FREQ_3,`FR_RX_PHASE_3) rx_chain_3 ( .clock(clk64),.reset(1'b0),.enable(enable_rx), .decim_rate(decim_rate),.sample_strobe(rx_sample_strobe),.decimator_strobe(strobe_decim),.hb_strobe(), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .i_in(ddc3_in_i),.q_in(ddc3_in_q),.i_out(bb_rx_i3),.q_out(bb_rx_q3)); `else assign bb_rx_i3=16'd0; assign bb_rx_q3=16'd0; `endif `endif // `ifdef RX_ON /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Control Functions wire [31:0] capabilities; assign capabilities[7] = `TX_CAP_HB; assign capabilities[6:4] = `TX_CAP_NCHAN; assign capabilities[3] = `RX_CAP_HB; assign capabilities[2:0] = `RX_CAP_NCHAN; serial_io serial_io ( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI), .enable(SEN_FPGA),.reset(1'b0),.serial_data_out(SDO), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .readback_0({io_rx_a,io_tx_a}),.readback_1({io_rx_b,io_tx_b}),.readback_2(capabilities),.readback_3(32'hf0f0931a), .readback_4(rssi_0),.readback_5(rssi_1),.readback_6(rssi_2),.readback_7(rssi_3) ); wire [15:0] reg_0,reg_1,reg_2,reg_3; master_control master_control ( .master_clk(clk64),.usbclk(usbclk), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), .tx_bus_reset(tx_bus_reset),.rx_bus_reset(rx_bus_reset), .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .interp_rate(interp_rate),.decim_rate(decim_rate), .tx_sample_strobe(tx_sample_strobe),.strobe_interp(strobe_interp), .rx_sample_strobe(rx_sample_strobe),.strobe_decim(strobe_decim), .tx_empty(tx_empty), //.debug_0(rx_a_a),.debug_1(ddc0_in_i), .debug_0(tx_debugbus[15:0]),.debug_1(tx_debugbus[31:16]), .debug_2(rx_debugbus[15:0]),.debug_3(rx_debugbus[31:16]), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3) ); io_pins io_pins (.io_0(io_tx_a),.io_1(io_rx_a),.io_2(io_tx_b),.io_3(io_rx_b), .reg_0(reg_0),.reg_1(reg_1),.reg_2(reg_2),.reg_3(reg_3), .clock(clk64),.rx_reset(rx_dsp_reset),.tx_reset(tx_dsp_reset), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe)); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Misc Settings setting_reg #(`FR_MODE) sr_misc(.clock(clk64),.reset(rx_dsp_reset),.strobe(serial_strobe),.addr(serial_addr),.in(serial_data),.out(settings)); endmodule // usrp_std uhd-3.5.5/fpga/usrp2/000077500000000000000000000000001224274632000142765ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/boot_cpld/000077500000000000000000000000001224274632000162435ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/boot_cpld/.gitignore000066400000000000000000000004641224274632000202370ustar00rootroot00000000000000/*_xdb /*.restore /*.xrpt /*.zip /xst /_ngo /_xmsgs /*.log /*.stx /*.tspec /*.xml /*.gyd /*.ngr /*.tim /*.err /*.lso /*.bld /*.cmd_log /*.ise_ISE_Backup /*.ipf_ISE_Backup /*.mfd /*.vm6 /*.syr /*.xst /*.csv /*.html /*.jed /*.pad /*.ng* /*.pnx /*.rpt /*.prj /*_html /*.cel /_pace.ucf /*.lock /*.tfi /templates uhd-3.5.5/fpga/usrp2/boot_cpld/_impact.cmd000077500000000000000000000013671224274632000203560ustar00rootroot00000000000000loadProjectFile -file "C:\cygwin\home\matt\usrp2\fpga\boot_cpld/boot_cpld.ipf" setMode -ss setMode -sm setMode -hw140 setMode -spi setMode -acecf setMode -acempm setMode -pff setMode -bs setMode -bs setMode -bs setMode -bs setCable -port auto Identify identifyMPM assignFile -p 1 -file "C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.jed" Program -p 1 -e -v -defaultVersion 0 Program -p 1 -e -v -defaultVersion 0 Program -p 1 -e -v -defaultVersion 0 Program -p 1 -e -v -defaultVersion 0 Program -p 1 -e -v -defaultVersion 0 Program -p 1 -e -v -defaultVersion 0 Identify identifyMPM Identify identifyMPM Identify identifyMPM Identify identifyMPM Identify identifyMPM setMode -bs deleteDevice -position 1 uhd-3.5.5/fpga/usrp2/boot_cpld/boot_cpld.ipf000077500000000000000000000056271224274632000207250ustar00rootroot00000000000000PK __OBJSTORE__/PK __OBJSTORE__/common/PK __OBJSTORE__/impact/PK __OBJSTORE__/_ProjRepoInternal_/PK __REGISTRY__/PK __REGISTRY__/common/PK __REGISTRY__/common/regkeysPK __REGISTRY__/impact/PK __REGISTRY__/impact/ModeACECF/PK ‹h¿ÞOO%__REGISTRY__/impact/ModeACECF/regkeysAceCFName s AceCFPath C:\Xilinx91i/ s AceCFSize 0 s NumberOfCollections 0 i32 PK __REGISTRY__/impact/ModeACEMPM/PK „d6 ]]&__REGISTRY__/impact/ModeACEMPM/regkeysAceMPMName s AceMPMPath C:\Xilinx91i/ s AceMPMSize 0 s Number Of Designs 0 i32 Submode SS s PK __REGISTRY__/impact/ModeBS/PK $__REGISTRY__/impact/ModeBS/Device 0/PK LG0þÉÉ+__REGISTRY__/impact/ModeBS/Device 0/regkeysBpi Part s BpiFileName s BpiFilePath s ConfigFileName boot_cpld.jed s ConfigFilePath C:/cygwin/home/matt/u2f/boot_cpld s NumberOfElfs 0 i32 Part xc9572xl s Spi Part s SpiFileName s SpiFilePath s PK Å3#"__REGISTRY__/impact/ModeBS/regkeysNumberOfDevices 1 i32 PK __REGISTRY__/impact/ModeHW140/PK `àÛ%__REGISTRY__/impact/ModeHW140/regkeysNumberOfDevices 0 i32 PK __REGISTRY__/impact/ModePFF/PK Û+mTT#__REGISTRY__/impact/ModePFF/regkeysAutosize s Compressed s Direction UP s File Format mcs s Fill Value FF s Flash Data Width 8 s Multiboot s Multiboot Bpi Chain s Multiboot Bpi Device s Multiboot Bpi Type s Number of Designs 0 i32 Number of Prom Devices 0 i32 PFFName s PFFPath C:\Xilinx91i/ s PFFSize 0 s RSPin Msb s SPI Selected s Submode SERIAL s Swap Bit TRUE s PK __REGISTRY__/impact/ModeSM/PK `àÛ"__REGISTRY__/impact/ModeSM/regkeysNumberOfDevices 0 i32 PK __REGISTRY__/impact/ModeSPI/PK `àÛ#__REGISTRY__/impact/ModeSPI/regkeysNumberOfDevices 0 i32 PK __REGISTRY__/impact/ModeSS/PK `àÛ"__REGISTRY__/impact/ModeSS/regkeysNumberOfDevices 0 i32 PK ˜ò¿ö$$__REGISTRY__/impact/regkeysActiveMode BS s NumberOfModes 9 i32 PK __REGISTRY__/_ProjRepoInternal_/PK %ï•‹»»'__REGISTRY__/_ProjRepoInternal_/regkeysISE_VERSION_CREATED_WITH 9.1i s ISE_VERSION_LAST_SAVED_WITH 9.1i s LastRepoDir C:\cygwin\home\matt\u2f\boot_cpld\ s OBJSTORE_VERSION 1.3 s REGISTRY_VERSION 1.1 s REPOSITORY_VERSION 1.2 s PK Ã÷8튊versionREPOSITORY_VERSION 1.2 REGISTRY_VERSION 1.1 OBJSTORE_VERSION 1.3 ISE_VERSION_CREATED_WITH 9.1i ISE_VERSION_LAST_SAVED_WITH 9.1i PK uhd-3.5.5/fpga/usrp2/boot_cpld/boot_cpld.ise000077500000000000000000006743651224274632000207420ustar00rootroot00000000000000PK __OBJSTORE__/PK __OBJSTORE__/common/PK '__OBJSTORE__/common/HierarchicalDesign/PK KüQ))0__OBJSTORE__/common/HierarchicalDesign/HDProjectÿÿÿÿÿÿÿÿPK ñkÑ7__OBJSTORE__/common/HierarchicalDesign/HDProject_StrTblboot_cpldPK __OBJSTORE__/HierarchicalDesign/PK __OBJSTORE__/PnAutoRun/PK __OBJSTORE__/PnAutoRun/Scripts/PK º>†¡*__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tclÿÿÿÿÿÿÿÿPK µé«­éé1__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTblnamespace eval xilinx { namespace eval Dpm { proc GetIseVersion {} { set fsetName "fileset.txt" set fsetPath "" # Find the file in the Xilinx environment. # First, construct the environment path. set sep ":"; # Default to UNIX style seperator. if {[string compare -length 7 $::tcl_platform(platform) "windows"] == 0} { set sep ";"; # Platform is a Windows variant, so use semi-colon. } set xilinxPath $::env(XILINX) if [info exists ::env(MYXILINX)] then { set xilinxPath [join [list $::env(MYXILINX) $xilinxPath] $sep] } # Now look in each path of the path until we find a match. foreach xilElem [split $xilinxPath $sep] { set checkPath ${xilElem}/$fsetName set checkPath [ string map { \\ / } $checkPath ] if { [file exists $checkPath] } { set fsetPath $checkPath break } } if { [string equal $fsetPath ""] } { puts "ERROR: Can not determine the ISE software version." return "" } if { [catch { open $fsetPath r } fset] } { puts "ERROR: Could not open $fsetPath: $fset" return "" } # have the file open, scan for the version entry. set sVersion "" while { ![eof $fset] } { set line [gets $fset] regexp {version=(.*)} $line match sVersion # The above doesn't stop looking in the file. This assumes that if # there are multiple version entries, the last one is the one we want. } close $fset return $sVersion } proc CheckForIron {project_name} { # Determine if the currently running version of ProjNav is earlier than Jade. set version [GetIseVersion] set dotLocation [string first "." $version] set versionBase [string range $version 0 [expr {$dotLocation - 1}]] if {$versionBase < 9} { # The project file is newer than Iron, so take action to prevent the # file from being corrupted. # Make the file read-only. if {[string compare -length 7 $::tcl_platform(platform) "windows"]} { # The above will return 0 for a match to "windows" or "windows64". # This is the non-zero part of the if, for lin and sol. # Change the permissions to turn off writability. file attributes $project_name -permissions a-w } else { # On Windows, set file to read-only. file attributes $project_name -readonly 1 } # And tell the user about it. set messageText "WARNING: This project was last saved with a newer version of Project Navigator.\nThe project file will be made read-only so that it will not be invalidated by this version." # In the console window puts $messageText # And with a GUI message box if possible. ::xilinx::Dpm::TOE::loadGuiLibraries set iInterface 0 set messageDisplay 0 if {[catch { set iInterface [Xilinx::CitP::GetInstance $::xilinx::GuiI::IMessageDlgID] set messageDisplay [$iInterface GetInterface $::xilinx::GuiI::IMessageDlgID] if {$messageDisplay != 0} { # Managed to get a component to display a dialog, so use it set messageTitle "Incompatible Project Version (Newer)" set messageType 2 # 2 corresponds to a warning dialog. TclWrapGuiI_Init.cpp doesn't put the enum into Tcl. set messageTimeout 300000 # in milliseconds, 5 minutes set messageReturn [$messageDisplay MessageDlg $messageTitle $messageText $messageType 1 1 $messageTimeout "OK" "" ""] } } catchResult]} { # There was an error, probably because we aren't in a GUI enviroment. } else { # All is well. } set messageDisplay 0 set iInterface 0 } return 1 } } } ::xilinx::Dpm::CheckForIronPK __OBJSTORE__/ProjectNavigator/PK /__OBJSTORE__/ProjectNavigator/dpm_project_main/PK Á<üPP?__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_mainÿÿÿÿÿÿÿÿGçvPK ;·† ,,F__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTblboot_cpldacr2spartan3xc9500xlPK ¾ÉàÙ¿¿0__OBJSTORE__/ProjectNavigator/__stored_objects__ÿÿÿÿÿÿÿÿ  ' !"#$%&'()*+,-./0123456/ 789 :;<=>?@ABCDEF GHIJKLMNOPQRSTUVWXYZ[\]^_`/6DBEH![5C  7 ^<G Z4K$I"J#9 F8\7Y2S,R+P)N'O(L%T-Q*W0V/U.]8 X1M&=<;:A@?>(abcd(e'f&gh*i)j,k+l<m;n:o9p8q7r6s5t4u3v2w1x0y/z.{-|}~  € ‚ ƒ„…†‡_==ˆ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ   ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @‰Š‹‡Œ†Ž…‘„’“”‚•–—˜€™š›œ~ž}Ÿ ¡¢£¤¥¦§¨|©ª{«¬­y®¯°w±²v³´uµ¶t·¸s¹ºr»¼q½¾¿ÀÁÂÃÄkÅÆjÇ¥ÈÉÊËiÌÍÎÏÐÑÒhÓÔÕÖרÙÚÛÜgÝÞß ¥àáâãäåæçèdéêëìíîïðñòbóÔÕÖרÙÚÛôa‰õ Aö B÷ Cø=ù*ŒúHŽ ßLû6¬^ÂSü,óE±b• ý7ÓFŸŠþ<¾kÿ.G8Áq9êÝB·eÌP3I“ »g¹f½i —«[:Ào 5µd JÇN®`¿m¯aÅV’ ™› > @ 4©Y³c‰ÞDér` D E D DF¾ Yø D E` D E D` F G H I J F K G K H K I K J K`` L M D E L D LF¿ ‰h L M M NF¿ Jè N O  P QF¾ Üø! Q R S T P U V W X Y Z O M`` D E D` D E D```` L M D E L D`` D E D` D E D` D E D` L M D E L D``` D E D`` D E D``` D E D``` D E D` D E D`` L M D E L D` D E D` D E D`` D E D``` D E D`` L M D E L D` D E D` D E D` D E D` D E D``` D E D` L M D E [ L D [" [F¿Úx# [```` L M D E [ L D ["` D E D` L M D E L D` L M D E L D`` D E D`` L M D E L D`` D E D` D E` L M D E [` L \ D E [`$%& ]H ùboot_cpld.stx G'( ^^^)õg·<ÿÿÿÿ*+,-./ _)H ù º@& ` _01 ` `2 a )3^4÷g·<ÿÿÿÿ*+,-./ _4H ù º@% ` _05 ` `2 a 46^ãøg·<ÿÿÿÿ*+,-./ _ãH ù º@$ ` _07 ` `2 a ã!89:; bH "K_impact.log G<= c]]>õg·<ÿÿÿÿ*+,-./ d>H # Jè@; e d0? e e@ f >A]B÷g·<ÿÿÿÿ*+,-./ dBH # Jè@: e d0C e e@ f BD]Eøg·<ÿÿÿÿ*+,-./ dEH # Jè@9 e d0F e e@ f EGHIJ gH 8_impact.cmd GKL h\\Mõg·<ÿÿÿÿ*+,-./ iMH F;Ø@J j i0N j jO k MP\Q÷g·<ÿÿÿÿ*+,-./ iQH F;Ø@I j i0R j jO k QS\Tøg·<ÿÿÿÿ*+,-./ iTH F;Ø@H j i0U j jO k TVWXY lG–‡„C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_boot_pack-p.vhd JZ[ m\]ñëõg·<ÿÿÿÿ*+,-./ n\ oë pñ q]Gñ| €€Y r o^_ r` s ëabcGñ| €@Y r pd e rf t ñgbhF%J xY u qi  v w xF%J x Y v nj klÕÙ÷g·<ÿÿÿÿ*+,-./ nk oÙ pÕ qlGñ| €€X r o^m r` s ÙnboGñ| €@X r pd p rf t ÕqbrF%J xX u qi  v w xF%J x X v nj st¤£øg·<ÿÿÿÿ*+,-./ ns o£ p¤ qtGñ| €€W r o^u r` s £vbwGñ| €@W r pd x rf t ¤ybzF%J xW u qi  v w xF%J x W v nj {|} yH õboot_cpld_vhdl.prj G~ z[[€õg·<ÿÿÿÿ*+,-./ {€H ú0°@} | {0 | |‚ } €ƒ[„÷g·<ÿÿÿÿ*+,-./ {„H ú0°@| | {0… | |‚ } „†[àøg·<ÿÿÿÿ*+,-./ {àH ú0°@{ | {0‡ | |‚ } à!ˆ‰Š‹ ~H $boot_cpld.tspec GŒ ZZŽ÷g·<ÿÿÿÿ*+,-./ €ŽH 0ÂÀ@‹ €0  ‚ Ž‘Z’õg·<ÿÿÿÿ*+,-./ €’H 0ÂÀ@Š €0“  ‚ ’”Z•øg·<ÿÿÿÿ*+,-./ €•H 0ÂÀ@‰ €0–  ‚ •—˜™š ƒH %boot_cpld.jed G›œ „YYÃ÷g·<ÿÿÿÿ*+,-./ …ÃH %ÑÐ@š † …0 † †ž ‡ Ã$ŸY õg·<ÿÿÿÿ*+,-./ … H %ÑÐ@™ † …0¡ † †ž ‡  ¢Y£øg·<ÿÿÿÿ*+,-./ …£H %ÑÐ@˜ † …0¤ † †ž ‡ £¥¦§¨ ˆH $boot_cpld.tim G©ª ‰XX«÷g·<ÿÿÿÿ*+,-./ Š«H $ ¢`@¨ ‹ Š0¬ ‹ ‹­ Œ «®X¯õg·<ÿÿÿÿ*+,-./ НH $ ¢`@§ ‹ Š0° ‹ ‹­ Œ ¯±X²øg·<ÿÿÿÿ*+,-./ вH $ ¢`@¦ ‹ Š0³ ‹ ‹­ Œ ²´µ¶· H "boot_cpld_build.xml G¸¹ ŽWWº÷g·<ÿÿÿÿ*+,-./ ºH $’@· 0» ¼ ‘ º½W¾õg·<ÿÿÿÿ*+,-./ ¾H $’@¶ 0¿ ¼ ‘ ¾ÀWÁøg·<ÿÿÿÿ*+,-./ ÁH $’@µ 0 ¼ ‘ ÁÃÄÅÆ ’H "boot_cpld.xml Gǹ ŽVVÈ÷g·<ÿÿÿÿ*+,-./ “ÈH $Úx@Æ ” “0É ” ”¼ ‘ ÈÊVËõg·<ÿÿÿÿ*+,-./ “ËH $Úx@Å ” “0Ì ” ”¼ ‘ ËÍVÎøg·<ÿÿÿÿ*+,-./ “ÎH $Úx@Ä ” “0Ï ” ”¼ ‘ ÎÐÑÒÓ •H "boot_cpld_pad.csv GÔÕ –UUÖ÷g·<ÿÿÿÿ*+,-./ —ÖH $"à@Ó ˜ —0× ˜ ˜Ø ™ ÖÙUÚõg·<ÿÿÿÿ*+,-./ —ÚH $"à@Ò ˜ —0Û ˜ ˜Ø ™ ÚÜUÝøg·<ÿÿÿÿ*+,-./ —ÝH $"à@Ñ ˜ —0Þ ˜ ˜Ø ™ Ýßàáâ šH "boot_cpld.rpt Gã¹ ŽTTä÷g·<ÿÿÿÿ*+,-./ ›äH $0°@â œ ›0å œ œ¼ ‘ äæTçõg·<ÿÿÿÿ*+,-./ ›çH $0°@á œ ›0è œ œ¼ ‘ çéTêøg·<ÿÿÿÿ*+,-./ ›êH $0°@à œ ›0ë œ œ¼ ‘ êìíîï H "boot_cpld.pnx Gðñ žSSò÷g·<ÿÿÿÿ*+,-./ ŸòH $y@ï   Ÿ0ó    ô ¡ òõSöõg·<ÿÿÿÿ*+,-./ ŸöH $y@î   Ÿ0÷    ô ¡ öøSÍøg·<ÿÿÿÿ*+,-./ ŸÍH $y@í   Ÿ0ù    ô ¡ Í#úûüý ¢H "boot_cpld.gyd Gþÿ £RR÷g·<ÿÿÿÿ*+,-./ ¤H #Å@@ý ¥ ¤0 ¥ ¥ ¦ Rõg·<ÿÿÿÿ*+,-./ ¤H #Ѝ@ü ¥ ¤0 ¥ ¥ ¦ RÐøg·<ÿÿÿÿ*+,-./ ¤ÐH #Ѝ@û ¥ ¤0 ¥ ¥ ¦ Ð#   §H "boot_cpld.pad G  ¨QQ÷g·<ÿÿÿÿ*+,-./ ©H # ¨@ ª ©0 ª ª « Qõg·<ÿÿÿÿ*+,-./ ©H # ¨@ ª ©0 ª ª « Qøg·<ÿÿÿÿ*+,-./ ©H # ¨@ ª ©0 ª ª «  ¬H "boot_cpld.mfd G ­PP÷g·<ÿÿÿÿ*+,-./ ®H # x@ ¯ ®0 ¯ ¯ °  P!õg·<ÿÿÿÿ*+,-./ ®!H # x@ ¯ ®0" ¯ ¯ ° !#PÎøg·<ÿÿÿÿ*+,-./ ®ÎH # x@ ¯ ®0$ ¯ ¯ ° Î#%&'( ±H "boot_cpld.vm6 ²)* ³OO+÷g·<ÿÿÿÿ*+,-./ ´+H # %` ( ´,-. µ +/O0õg·<ÿÿÿÿ*+,-./ ´0H # %` ' ´,1. µ 02OÑøg·<ÿÿÿÿ*+,-./ ´ÑH # %` & ´,3. µ Ñ#4567 ¶H #boot_cpld.nga ·89 ¸NN:÷g·<ÿÿÿÿ*+,-./ ´:H # ô° 7 ´;<= ¹ :>N?õg·<ÿÿÿÿ*+,-./ ´?H # ô° 6 ´;@= ¹ ?ANÏ ºøg·<ÿÿÿÿ*+,-./ ´ÏH # ô° 5 ´;B= ¹ Ï#CDEF »H þ_xmsgs/ngdbuild.xmsgs GGH ¼MMI÷g·<ÿÿÿÿ*+,-./ ½IH þ ‰h@F ¾ ½0J ¾ ¾K ¿ ILMMõg·<ÿÿÿÿ*+,-./ ½MH þ ‰h@E ¾ ½0N ¾ ¾K ¿ MOMPøg·<ÿÿÿÿ*+,-./ ½PH þ ‰h@D ¾ ½0Q ¾ ¾K ¿ PRSTU ÀH û_ngo GVW ÁLLX÷g·<ÿÿÿÿ*+,-./ ÂXH þTÐ@U à Â0Y à ÃZ Ä X[L\õg·<ÿÿÿÿ*+,-./ Â\H þTÐ@T à Â0] à ÃZ Ä \^L_øg·<ÿÿÿÿ*+,-./ Â_H þTÐ@S à Â0` à ÃZ Ä _abcd ÅH þ_ngo/netlist.lst Gef ÆKKg÷g·<ÿÿÿÿ*+,-./ ÇgH þÛ¸@d È Ç0h È Èi É gjKkõg·<ÿÿÿÿ*+,-./ ÇkH þÛ¸@c È Ç0l È Èi É kmKÈøg·<ÿÿÿÿ*+,-./ ÇÈH þÛ¸@b È Ç0n È Èi É È"opqr ÊH þboot_cpld.bld Gst ËJJu÷g·<ÿÿÿÿ*+,-./ ÌuH þ$ @r Í Ì0v Í Íw Î uxJyõg·<ÿÿÿÿ*+,-./ ÌyH þ$ @q Í Ì0z Í Íw Î y{JÊøg·<ÿÿÿÿ*+,-./ ÌÊH þ$ @p Í Ì0| Í Íw Î Ê"}~€ ÏH þboot_cpld.ngd ·‚ ÐIIƒ÷g·<ÿÿÿÿ*+,-./ ´ƒH þ1ð € ´;„… Ñ ƒ†I‡õg·<ÿÿÿÿ*+,-./ ´‡H þ1ð  ´;ˆ… Ñ ‡‰IÉ Møg·<ÿÿÿÿ*+,-./ ´ÉH þ1ð ~ ´;Š… Ñ É"‹ŒŽ ÒH øboot_cpld.ngr Ó ÔHH‘÷g·<ÿÿÿÿ*+,-./ ´‘H úø Ž ´’“” Õ ‘•H–õg·<ÿÿÿÿ*+,-./ ´–H úø  ´’—” Õ –˜Hç Öøg·<ÿÿÿÿ*+,-./ ´çH úø Œ ´’™” Õ ç!š›œ ×H ùboot_cpld.ngc ØžŸ ÙGG ÷g·<ÿÿÿÿ*+,-./ ´ H ú"à  ´¡¢£ Ú  ¤G¥õg·<ÿÿÿÿ*+,-./ ´¥H ú"à œ ´¡¦£ Ú ¥§Gæ Møg·<ÿÿÿÿ*+,-./ ´æH ú"à › ´¡¨£ Ú æ!©ª«¬ ÛG–‡„C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_counter.vhd J­[ m®¯Ô°±²Ö÷g·<ÿÿÿÿ*+,-./ ÜÖ ÝÔ n° Þ± q¯ ß²Gñ|$ ¬ à ܳI´ à áµ â Ö¶b·F$T ߬ ã ßiG r xF$T ß\¬ ä ÞiF v å xF$T ß3 ¬ v njEGñ|$ ¬ á ݸ5¹ Ạæ Ô»b¼F$T Þ—¬ u qi0 v w xGñ|$ ¬ v nj/½¾í¿ÀÁìõg·<ÿÿÿÿ*+,-./ Üì Ýí n¿ ÞÀ q¾ ßÁGñ|$ « à ܳI à áµ â ìÃbÄF$T ᘫ ã ßiG r xF$T á{« ä ÞiF v å xF$T ád « v njEGñ|$ « á ݸ5ŠẠæ íÆbÇF$T àù« u qi0 v w xGñ|$ « v nj/ÈÉ¢ÊËÌ øg·<ÿÿÿÿ*+,-./ Ü  Ý¢ nÊ ÞË qÉ ßÌGñ|$ ª à ܳIÍ à áµ â  ÎbÏF$T ߥª ã ßiG r xF$T ßsª ä ÞiF v å xF$T ßE ª v njEGñ|$ ª á ݸ5Ð áº æ ¢ÑbÒF$T Þ°ª u qi0 v w xGñ|$ ª v nj/ÓÔÕ çG–‡„C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_boot.vhd JÖ[ m  רÛÙÚÛÚ÷g·<ÿÿÿÿ*+,-./ èÚ éÜ êÝ ëÛ nÙ ÞÚ qØ ßÛGñ|$ ÕÜÝ à è³dÞ à ìµ â ÚßbàF$SõVÚ í êá í áF$SõUàÚ î éáw î áF$Sõ)kÕ ã ßib r xF$Sõ):Õ ä Þia v å xF$Sõ) Õ v nj`Gñ|$ Õ ì ë¸4â ìº æ ÛãbäF$Sõ(Õ u qi/ v w xGñ|éˆ Õ v nj. åæïçèéîõg·<ÿÿÿÿ*+,-./ èî éê êë ëï nç Þè qæ ßéGñ|$ Ôêë à è³dì à ìµ â îíbîF$Sõe¶î í êá í áF$Sõe-î î éáw î áF$SõXìÔ ã ßib r xF$SõXÌÔ ä Þia v å xF$SõX´ Ô v nj`Gñ|$ Ô ì ë¸4ï ìº æ ïðbñF$SõWÙÔ u qi/ v w xGñ|$ Ô v nj. òó§ôõö¦øg·<ÿÿÿÿ*+,-./ è¦ é÷ êø ë§ nô Þõ qó ßöGñ|$ Ó÷ø à è³dù à ìµ â ¦úbûF$SõV¦¦ í êá í áF$SõUþ¦ î éáw î áF$Sõ)Ó ã ßib r xF$Sõ)PÓ ä Þia v å xF$Sõ)" Ó v nj`Gñ|$ Ó ì ë¸4ü ìº æ §ýbþF$Sõ(Ó u qi/ v w xGñ|éˆ Ó v nj.ÿ ïH %boot_cpld.cmd_log G ðFFõg·<ÿÿÿÿ*+,-./ ñH 0ÂÀ@ ò ñ0 ò ò ó Føg·<ÿÿÿÿ*+,-./ ñH 0ÂÀ@ ò ñ0 ò ò ó  F ÷g·<ÿÿÿÿ*+,-./ ñ H 0ÂÀ@ÿ ò ñ0 ò ò ó    ôH ôboot_cpld.prj G zEEõg·<ÿÿÿÿ*+,-./ õH ùÀ@ ö õ0 ö ö‚ } Eáøg·<ÿÿÿÿ*+,-./ õáH ùÀ@ ö õ0 ö ö‚ } á!E÷g·<ÿÿÿÿ*+,-./ õH ùÀ@ ö õ0 ö ö‚ }  ÷H ùboot_cpld.syr G øDDõg·<ÿÿÿÿ*+,-./ ùH ù Ó@ ú ù0 ú ú! û "Dåøg·<ÿÿÿÿ*+,-./ ùåH ù Ó@ ú ù0# ú ú! û å!$D%÷g·<ÿÿÿÿ*+,-./ ù%H ù Ó@ ú ù0& ú ú! û %'()* üH õboot_cpld.lso G+, ýCC-õg·<ÿÿÿÿ*+,-./ þ-H ù ¢`@* ÿ þ0. ÿ ÿ/ -0Câøg·<ÿÿÿÿ*+,-./ þâH ù ¢`@) ÿ þ01 ÿ ÿ/ â!2C3÷g·<ÿÿÿÿ*+,-./ þ3H ù ¢`@( ÿ þ04 ÿ ÿ/ 35678 H ôboot_cpld.xst G9: BB;õg·<ÿÿÿÿ*+,-./ ;H ù êÈ@8  0<  =  ;>Bäøg·<ÿÿÿÿ*+,-./ äH ù êÈ@7  0?  =  ä!@BA÷g·<ÿÿÿÿ*+,-./ AH ù êÈ@6  0B  =  ACDEF chip.cmd_log GG ðAAõg·<ÿÿÿÿ*+,-./Aøg·<ÿÿÿÿ*+,-./A÷g·<ÿÿÿÿ*+,-./HIJ chip.prj GK z@@õg·<ÿÿÿÿ*+,-./@øg·<ÿÿÿÿ*+,-./@÷g·<ÿÿÿÿ*+,-./LMN chip_vhdl.prj GO z??õg·<ÿÿÿÿ*+,-./?øg·<ÿÿÿÿ*+,-./?÷g·<ÿÿÿÿ*+,-./PQR chip.syr GS ø>>õg·<ÿÿÿÿ*+,-./>øg·<ÿÿÿÿ*+,-./>÷g·<ÿÿÿÿ*+,-./TUV chip.lso GW, ý==õg·<ÿÿÿÿ*+,-./=øg·<ÿÿÿÿ*+,-./=÷g·<ÿÿÿÿ*+,-./XYZ chip.xst G[: <<õg·<ÿÿÿÿ*+,-./<øg·<ÿÿÿÿ*+,-./<÷g·<ÿÿÿÿ*+,-./\]^ spi_boot.tfi G_` ;;õg·<ÿÿÿÿ*+,-./;øg·<ÿÿÿÿ*+,-./;÷g·<ÿÿÿÿ*+,-./abc boot_cpld.tfi Gd` ::õg·<ÿÿÿÿ*+,-./:øg·<ÿÿÿÿ*+,-./:÷g·<ÿÿÿÿ*+,-./efg G–‡„C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_boot-c.vhd Jh[ m  õg·<ÿÿÿÿ*+,-./ øg·<ÿÿÿÿ*+,-./ ÷g·<ÿÿÿÿ*+,-./ijk G–‡„C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/chip-mmc-c.vhd Jl[ m  õg·<ÿÿÿÿ*+,-./ øg·<ÿÿÿÿ*+,-./ ÷g·<ÿÿÿÿ*+,-./mno H ù_xmsgs/xst.xmsgs GpH ¼99qõg·<ÿÿÿÿ*+,-./ qH ú@@o  0r  K ¿ qs9tøg·<ÿÿÿÿ*+,-./ tH ú@@n  0u  K ¿ tv9w÷g·<ÿÿÿÿ*+,-./ wH ú@@m  0x  K ¿ wyz{| GûÐèxst G}W Á88~õg·<ÿÿÿÿ*+,-./ ~GûÐí’@|  0  Z Ä ~€8øg·<ÿÿÿÿ*+,-./ GûÐí’@{  0‚  Z Ä ƒ8„÷g·<ÿÿÿÿ*+,-./ „GûÐí’@z  0…  Z Ä „†‡ˆ‰ H Óboot_cpld.lfp GŠ‹ 77Œ÷g·<ÿÿÿÿ*+,-./ ŒH ê„@@‰  0  Ž  Œ7õg·<ÿÿÿÿ*+,-./ H ê„@@ˆ  0‘  Ž  ’7“øg·<ÿÿÿÿ*+,-./ “H ê„@@‡  0”  Ž  “•–—˜ H Ôboot_cpld.ucf ™š   Ø÷g·<ÿÿÿÿ*+,-./ ØH ê„@ ˜ ,› œ ! Ø žõg·<ÿÿÿÿ*+,-./ žH ê„@ — ,Ÿ œ ! ž  ¥øg·<ÿÿÿÿ*+,-./ ¥H ê„@ – ,¡ œ ! ¥!"¢£¤¥ "H boot_cpld.v I¦§ #×÷g·<ÿÿÿÿ*+,-./ $¨ ´×H ê„@ ¥¨ ´©ª« % ׬F%oó„@× ì $­< ì ìðõg·<ÿÿÿÿ*+,-./ $® ´ðH ê„@ ¤® ´©¯« % ð°F%oó„@ð ì $­< ì ì¡øg·<ÿÿÿÿ*+,-./ $± ´¡H ê„@ £± ´©²« % ¡³b´F%oó„@¡ ì $­< ì ì &µ ' l¶·¸ ("5¹F¿ êȶ¥Éº»¼½ H 8 ‰h¾ ) &¿ * iÀÁÂöÄÅÆÇ +"4ÈF¿ êÈåɽ H 8 ‰hÉ , &Ê - mÃËÌ ."3ÍF¿ êÈ¥ɽ H 8 ‰hÎ / &Ï 0 nÂÐÑ 1"#ÒF¿ 30ÁÉ ÁÎÝêÍÎÏÐÑ3ÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíïðñòóôõö÷øùúûüýþÿ½>þF¿’ÔF¿ 30ÏH # ô°áF¿SåF¿’÷F¿’üF¿ 30èH þ ‰hùF¿ 30êH $0°ÜF¿SÎH $ÚxÚH þ ÄÉH þ1ðàF¿SâF¿SãF¿’ÛF¿S»F¾ YøçF¿’úF¿’ÐH #ЍëF¿SF¿’ðF¿’òF¿’ÝH $"àûF¿’ÕF¿ =ñF¿’ìF¿’ÝF¿SÑH # %`H # ¨ÖF¿ {˜ÙF¿ 30ÁH $’×F¿ {˜îF¾ YøÎH # xïF¿’F¿ ‰häF¿’íF¿SæF¿’ºF¾ YøõF¿’øF¿ 30F¿’êF¿’ýF¿’ÓF¿SÿF¿’ôF¿ 30óF¿’ßF¿SÍH $yÞF¿SéF¿’ØF¿øF¿ JèöF¿ 30H 8 ‰hH 8 Ä H 8 Ä 2 & 3 hÁ     4#2F¿ êÈ Ò H 8 Ä 5 & 6 o  7#1F¿ êÈ Ò H 8 Ä 8 &! 9 p "# :#*$F¿ q°Ï%ÛÜÝÞßàáâãäåæç&éêëìí»Ò H 8 Ä' ; &( < w)*+,- =*../F¿ ¬H*01. FÄ (2 >*$ H $’3 ? &4 @ s*5678 A./9F¿ ¬H5 :;<=>º7»/ FÄ (? B &@ C r5ABCD D/0EF¿ êÈAFGHIJKLMNOíº»9 Gûл„@P E &Q F qARST G*+UF¿ q°)$ H $’3 ? &V H v)WXYZ I+,[F¿ ¬HW \]^_`aºY»U FÄ (b J &c K uWdefg L,-hF¿ ¬HdiFjkl^ImnopqMrstuíºf»[ Gûл„@v M &w N tdxyz O#){F¿ q°ÐÒ H 8 Ä| P &} Q x~ R#(€F¿ q°Ñ«óýÒÑH # %`«H $ ¢`ýF¿’óF¿’H $„@H $ x H 8 Ä S &‚ T yƒ„… U#'†F¿ q°Í‡ˆÒ H 8 ĉ V &Š W z‹Œ X#$F¿ 30ÑÃŽ‘ÒŽF¿’‘F¿ 30ÑH # %`ÃH %ÑÐF¿ ‰hF¿’F¿ 30H 8 ÄH 8 Ä H 8 Ä’ Y &“ Z k”•–—˜ [$&™F¿ 30•Ú» H 8 Ä› \ &œ ] {•žŸ ^$% F¿ 30”ÃQ»¡¢£¤¡F¿’QH ê;Ø£F¿’»F¾ YøÃH %ÑÐF¿ ‰h¢F¿’¤F¿’H 8 ÄH 8 êÈ H F;Ø¥ _ &¦ ` j”§¨© a!"ª«½F¿ ô°À«H 8 ‰hH 8 ‰h H 8 ‰h¬ bÀ¥¥ª¥H ê„@H 8 ‰hH 8 ‰h H 8 ‰h­ cÀ¥æÈ_PÉÊ®¯°± _H þTÐÉH þ1ð¯F¿SPH þ ‰h®F¿SÈH þÛ¸°F¿SÊH þ$ F¿ ‰hæH ú"à¥H ê„@F¿ JèH 8 JèH 8 ‰h H 8 ‰h² d &³ e d´Àµ¶· f!¸±F¿ ô°´ÔÕÖ×ÙÚÛ tàáâãäåæç)ÕÖר¹º»î¼½¾¿ÀÁºûÄÅÆÇȼÉÊËÌÍÎÏÐÑÒ"ÓÔÕÖ¸;ÔGñ|$ ÖGñ|$ ÛGñ|$ ÚGñ|$ ÕF¿øÉF¿øÄF¿ø"F¿ÚxÇF¿øÀF¿øÂF¿ø¼F¿ø¿F¿øÌF¿ø»F¿ø×H ê„@äH ù êÈÃF$S«|ÈF¿øáH ùÀ»F¾ YøËF¿øÊF¿øÙGñ| €ÔF¿ø½F¿øÁF¿ø¹F¿ø¼F¿øÅF¿øÕF¿ =ºF¿øÖF¿ {˜H 0ÂÀâH ù ¢`ÎF¿øåH ù Ó×F¿ {˜tH ú@çH úøÕGñ| €îF¾ YøF¿ ‰hÓF¿øÑF¿øãH ù ººF¾ YøàH ú0°¾F¿øGûÐí’ÖF¿øæH ú"àÒF¿øÏF¿øÆF¿øØF¿øF¿ JèÍF¿øÐF¿øH 8ÑÐH 8 Jè H 8 Jè× g´ØØØØH ê„@H 8ÑÐH 8ÑÐ H 8ÑÐÙ h &Ú i gÛÜÝ´Þ"Ãß j àF¿„@ÝÔÖרÚÛ“º»¼Ø ÔG–y·ÚxÖG–y·ÚxÛG–y·›øÚG–y·›ø¼F¿ø×G–y·"à»F¾ Yø“G–‡¬ÚxØG–y·"àF¿ ‰hºF¾ YøG–‡«ÀG–‡¬Úx H 8ÑÐá k &â l eÝãä måF¿„@ÜÔÕÖ×ÙÚÛØ H 8ÑÐæ n &ç o fÜèé pêëìØF¿øÛìH 8ÑÐH 8ÑÐ H 8ÑÐí qÛØØëØH ê„@H 8ÑÐH 8ÑÐ H 8ÑÐî rÛêH 8ÑÐH 8ÑÐ H 8ÑÐï sÛÔÕÖ×ÙÚÛÔÕÖ×ÙÚÛðÔGñ|$ ÖGñ|$ ÛGñ|$ ÚGñ|$ ×H ê„@ÙGñ| €ÕGñ| €H 8“PH 8ÑÐ H 8ÑÐñ t &ò u aóÛô"õö vðF¿ÚxóH 81ðH 8“PH 8“P÷ w xø x |ùúóûüý yþF¿"àúF¿"àÿ z & { bú |F¿a` FÄI¨ï sëìíîïðñþ H ê„@ } & ~ ‡      F¿›ø º 1 FÄI¨ €  FÄI¨  & ‚   ƒF¿Úx FMº» Gûл„@ „ & … ~ !"# †$F¿Úx %&'()º» Gûл„@* ‡ &+ ˆ } ,-. ‰/F¿›ø  FÄI¨  &0 Š ‚ 1234 ‹5F¿›ø1 6F789M:º3»/ Gûл„@; Œ &< 1=>?@ ŽAF¿›ø= BCDEFº?»5 Gûл„@G  &H €=IJK ‘LMF¿a` º 1L FÄI¨N ’  FÄI¨O “ &P ” † QRST •UVF¿a`Q WXYZîºS»1U FÄI¨[ –QM FÄI¨\ — &] ˜ …Q^_`a ™bcF¿a`^de1b Gûл„@f š^V FÄI¨g › &h œ „^ijkl mF¿›øiºc F¿ ‰hn ž &o Ÿ ƒipq  rF¿"àù stuvwxyz{| Gûл„@} ¡ &~ ¢ cù £F¿ {˜ ÕÖ×»ºî€ ¤F¾ Yø ¤ ¥‚ƒºî ¥ ¦F¾ Yø„ ¦ §…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » § ¼F¾ Yøš ¼ ½›œ» ½ ¾F¾ Yø ¾ ¿ À ½ ¥ Á ÂF¿ {˜ž  ß ¡ÕÖ Ä ÅF¿ {˜¢ Šƣ¤¥¦§Õ Ç ÈF¿ =¨ È É©ª«¬­ Ê Ë Ì Ê Í É Î Ï Ð Ç Æ Ä Ñ Ã­ÕÖ×»ºî€¹º6 ®wyxv|zuÜßìçÞéÝåäêâàæãë¯í1ÀÁ½ÑÏÉÕÎÓ"ÒÌÔÖËͼ¿¼Â¾ÄÊsrNF)ejGB%dnmKJDC'&qLE(kHtOI^MFˆš¡£¤®°¯ÅÐáÛ°±²³´µ¶·ØüÙõûÓï÷ñòðúþÿŽ¢ýóÇÈÆ»{st¸¹º»¼½¾¿ÀÁÂùôø‘Ôö‡ *Ã+Ã+Y(Ã(„ÄÃÄÅ,Ã,f%Ã%¨Ã?#Ã# !Ã!¶Ã-ÃJÆÃÆÇ0Ã0S"Ã"Å.Ã.7ÃõÃÃ$Ã$—Ã`ÈÃÈÉÃkÊÃÊË&Ã&žÌÃÌÍÎÃÎÏÃ"ÐÃÐÑÒÃÒÓ*Ã*,ÔÃÔÕÃÃSÖÃÖ×ØÃØÙÚÃÚÛ-Ã-yÃ3ÜÃÜÝ/Ã/Cà ÃüÞÃÞßÄÃÄà"Ã"ÆÃáÄÃÄâ#Ã#&"Ã"èÞÃÞãÄÃÄä#Ã#%"Ã"ÚÞÃÞå*Ã*0 +Ã+],Ã,lÆÃÆæ.Ã.;ÎÃÎçÐÃÐèÃÃWÃ7+Ã+\,Ã,iÆÃÆé.Ã.:ÎÃÎêÐÃÐëÃÃ6+Ã+a,Ã,u.Ã.>ÃÃZÃ: +Ã+`,Ã,pÆÃÆì.Ã.=ÎÃÎíÐÃÐîÃÃYÃ9 +Ã+_,Ã,oÆÃÆï.Ã.<ÎÃÎðÐÃÐñÃÃXÃ8 ÒF¿›øò Ò ÒF¿a`ò Ò ÒF¿Úxò Ò ÒF¿I¨ò Ò ÒF¿ (ò Ò ÒF¿ ¬Hò Ò ÒF¿I¨ò Ò ÒF¿ ¬Hò Ò ÒF¿ ¬Hò Ò ÓF¿›øó Ó ÓF¿a`ó Ó ÓF¿Úxó Ó ÓF¿I¨ó Ó ÓF¿ (ó Ó ÓF¿ ¬Hó Ó ÓF¿I¨ó Ó ÓF¿ ¬Hó Ó ÓF¿ ¬Hó Ó ÔGûлÂÀô Ô ÔGûлÂÀô Ô ÔGûл@ô Ô ÔGûл;Øô Ô ÔGûл;Øô Ô ÔGûл;Øô Ô ÕF¿›øõ Õ ÕF¿Úxõ Õ ÕF¿I¨õ Õ ÕF¿ (õ Õ ÕF¿ ¬Hõ Õ ÕF¿I¨õ Õ ÕF¿ ¬Hõ Õ ÕF¿ ¬Hõ Õ ÖF¿›øö Ö ÖF¿a`ö Ö ÖF¿Úxö Ö ÖF¿I¨ö Ö ÖF¿ (ö Ö ÖF¿ ¬Hö Ö ÖF¿I¨ö Ö ÖF¿ ¬Hö Ö ÖF¿ ¬Hö Ö ×Gûл;Ø÷ ×,1 ØF¿a`ø Ø ¥ùúî€ ¥ ¥ Á ÙF¿ q°û Ù ÚF¿ (ü Ú Ûßí Û ÜF¿Sý Ü ¥þÿî€ ¥ ¥ Á ÙF¿’û Ù ÚH þ Äü Ú ÝÅí Ý ÙH þ ‰hû Ù Þ ÚH $Ðü Ú Ý í Ý ÙH $’û Ù Þ ÚF¿Sü Ú ÛÅí Û ÙF¿Sû Ù ßF¿ ( ßßÝí àF¿S àí ßH þ ‰h ßÅÝí ßH $Ð ß Ýí ßF¿’ ßÅÝí áF¿zX á áF¿ ô° á áF¿S á ÙF%oóÂÀû Ù Þ ÙF¿a`û Ù ÙF¿ ¬Hû Ù ÙF¿’û Ù ÙF¿›øû Ù ÙF¿ ¬Hû Ù ÙF¿I¨û Ù ÙF¿I¨û Ù ÙF¿Sû Ù ÙF¿a`û Ù ÙF¿Úxû Ù ÙF¿’û Ù ÙF¿I¨û Ù ÙF¿I¨û Ù ÙF¿Úxû Ù ÙF¿ (û Ù ÙF¿ (û Ù ÙF¿ 30û Ù ÙF¿Ðû Ù ÙF¿a`û Ù ÙF¿Ðû Ù ÙF¿a`û Ù ÙF¿ 30û Ù ÙF$S«|û Ù Þ ÙF%oÓÚxû Ù Þ ÙF¿ ¬Hû Ù ÙF¿ êÈû Ù ÙF¿ (û Ù ÙF¿›øû Ù ÙF¿Úxû Ù ÙH ú@û Ù Þ ÙF¿›øû Ù ÙF¿ 30û Ù ÙF¿ ¬Hû Ù ÙF¿ q°û Ù ÙF¿ q°û Ù ÙF%oóÂÀû Ù Þ âF¿ q° â ã äF¿ 30 ä6 åF¿ 30 å æ çF¿ 30 ç èF¿ 30 èŽ éF¿’ é êF¿ 30 ê ë ìF¿ 30 ì íF¿ 30 íZü îF¿ 30 î ï ðF¿’ ð ñF¿’ ñ òF¿’ ò ó ôF¿’ ô æ õF¿’ õ æ öF¿’ ö ÷F¿’ ÷¸ øF¿S ø ù úF¿’ ú8¸ ûF¿S û& üF¿S ü ý¸ ý ý þ ÿF¿"à ÿ F¿"à  F¿"à u F¿"à  Á î Á  ¥ Á F¿ø!  F¿ø"   F¿ø#  F¿ø$  F¿’% F¿’& F¿’' F¿’( F¿’)  F¿’*  F¿’+  F¿’,   F¿’-   F¿’.  F¿’/  F¿’0  F¿’1  F¿S2  F¿’3  F¿’4   F¿’5   F¿ 306  þ78ü þ ý þ F¿ø9 ! "F¿ ¨: " #F¿ ¨; # $F¿ ¨< $ %F¿ÂÀ= % & 'F¿ÂÀ> ' (F¿ÂÀ? ( ) *F¿ÂÀ@ * +F¿ÂÀA + , -F¿SB -¯í .F¿SC .îë /F¿SD / 0F¿SE 0îí 1F¿øF 1 2GH¿ 2 3F¿øI 3 4  2 5F¿ÐJ 5 6F¿ÐK 6 7LMNO 7 8F¿ÐP 8 9F¿ÐQ 9 : ; < = 7 >F¿ÐR >B? ?F¿ÐS ? @F¿ êÈT @ : AF¿ÐU A : BF¿ÐV B : CF¿ÐW Cè'è DF¿ÐX D EF¿ êÈY E FF¿øZ F 2 GF¿S[ G HF¿S\ H IF¿S] I JF¿’^ J !_`abcdefghijklmš ! KF¿’n K L M N O P Q R S T U V W X 4 ! YF¿’o Y !pqrstš ! Z [ \ ] ! ^F¿’u ^ !vwxyz{š ! _ ` a b 4 ! cF¿Ð| c dF¿›ø} d~M eF¿›ø e f gF¿ (€ g hF¿I¨ h i jF¿I¨‚ j kƒH k lF¿I¨„ lN mF¿I¨… m f nF¿I¨† n k‡k k oF¿I¨ˆ or pF¿I¨‰ p f qF¿ÚxŠ q) rF¿Úx‹ r sF¿›øŒ sF tF¿›ø t uF¿I¨Ž uN vF¿I¨ vr wF¿Úx w x' x yF¿Úx‘ y) zF¿›ø’ z xD x {F¿›ø“ {F |F¿I¨” | xK x }F¿I¨• }N ~F¿I¨– ~ xn x F¿I¨— r €F¿a`˜ €™e F¿a`š f ‚F¿Úx› ‚œ) f ƒF¿›ø ƒžF f „F¿I¨Ÿ „ N f …F¿I¨¡ …¢r f †F¿I¨£ † ‡ ˆF¿ø¤ ˆ ‰F¿ø¥ ‰ ŠF¿ø¦ Š  ‹F¿ø§ ‹ ŒF¿ø¨ Œ ! F¿ø© Ž F¿øª ‘F¿ø« ‘  ’F¿ø¬ ’ “F¿ø­ “ ”F¿ø® ” •F¿ø¯ • –F¿ø° – —F¿ø± — ˜F¿ø² ˜ ™ šF¿ø³ š › œF¿ø´ œ F¿øµ  žF¿ø¶ ž·¸Ñ Ÿ   ¡F¿ø¹ ¡ ¢ £F¿øº £ þ ¤F¿’» ¤í ¥F¿’¼ ¥ :à : ¦F¿S½ ¦í §F¿S¾ §îí ¨F¿’¿ ¨í ©F¿’À © ªF¿’Á ªí «F¿’ « ‡Þ ‡ ¬F¿Sà ¬ ­F¿’Ä ­ ®í ® ¯F¿’Å ¯dÿÿÿÜíd °F¿SÆ °Ý ±F¿SÇ ± ²Ü ² ³F¿"àÈ ³ ´F¿"àÉ ´u µF¿"àÊ µ ¶F¿"àË ¶ · ¸F¿"àÌ ¸ ¹î ¹ ºF¿"àÍ º » ¼F$MŸ ‹Î ¼ ¥Ïк€ ¥ ¥ Á ½F¾ YøÑ ½ ¾F¿øÒ ¾ ¿F¿øÓ ¿PK Ä“æ%ˆ%ˆ7__OBJSTORE__/ProjectNavigator/__stored_objects___StrTbl Àworkverilogboot_cpldsimprimvcomponentsunisimAND2B1|unisim|vcomponentsAND2B2|unisim|vcomponentsAND2|unisim|vcomponentsAND3B1|unisim|vcomponentsAND3B2|unisim|vcomponentsAND3B3|unisim|vcomponentsAND3|unisim|vcomponentsAND4B1|unisim|vcomponentsAND4B2|unisim|vcomponentsAND4B3|unisim|vcomponentsAND4B4|unisim|vcomponentsAND4|unisim|vcomponentsAND5B1|unisim|vcomponentsAND5B2|unisim|vcomponentsAND5B3|unisim|vcomponentsAND5B4|unisim|vcomponentsAND5B5|unisim|vcomponentsAND5|unisim|vcomponentsAND6|unisim|vcomponentsAND7|unisim|vcomponentsAND8|unisim|vcomponentsBSCAN_FPGACORE|unisim|vcomponentsBSCAN_SPARTAN2|unisim|vcomponentsBSCAN_SPARTAN3A|unisim|vcomponentsBSCAN_SPARTAN3|unisim|vcomponentsBSCAN_VIRTEX2|unisim|vcomponentsBSCAN_VIRTEX4|unisim|vcomponentsBSCAN_VIRTEX5|unisim|vcomponentsBSCAN_VIRTEX|unisim|vcomponentsBUFCF|unisim|vcomponentsBUFE|unisim|vcomponentsBUFFOE|unisim|vcomponentsBUFGCE_1|unisim|vcomponentsBUFGCE|unisim|vcomponentsBUFGCTRL|unisim|vcomponentsBUFGDLL|unisim|vcomponentsBUFGMUX_1|unisim|vcomponentsBUFGMUX_CTRL|unisim|vcomponentsBUFGMUX_VIRTEX4|unisim|vcomponentsBUFGMUX|unisim|vcomponentsBUFGP|unisim|vcomponentsBUFGSR|unisim|vcomponentsBUFGTS|unisim|vcomponentsBUFG|unisim|vcomponentsBUFIO|unisim|vcomponentsBUFR|unisim|vcomponentsBUFT|unisim|vcomponentsBUF|unisim|vcomponentsCAPTURE_FPGACORE|unisim|vcomponentsCAPTURE_SPARTAN2|unisim|vcomponentsCAPTURE_SPARTAN3A|unisim|vcomponentsCAPTURE_SPARTAN3|unisim|vcomponentsCAPTURE_VIRTEX2|unisim|vcomponentsCAPTURE_VIRTEX4|unisim|vcomponentsCAPTURE_VIRTEX5|unisim|vcomponentsCAPTURE_VIRTEX|unisim|vcomponentsCARRY4|unisim|vcomponentsCFGLUT5|unisim|vcomponentsCLKDLLE|unisim|vcomponentsCLKDLLHF|unisim|vcomponentsCLKDLL|unisim|vcomponentsCLK_DIV10RSD|unisim|vcomponentsCLK_DIV10R|unisim|vcomponentsCLK_DIV10SD|unisim|vcomponentsCLK_DIV10|unisim|vcomponentsCLK_DIV12RSD|unisim|vcomponentsCLK_DIV12R|unisim|vcomponentsCLK_DIV12SD|unisim|vcomponentsCLK_DIV12|unisim|vcomponentsCLK_DIV14RSD|unisim|vcomponentsCLK_DIV14R|unisim|vcomponentsCLK_DIV14SD|unisim|vcomponentsCLK_DIV14|unisim|vcomponentsCLK_DIV16RSD|unisim|vcomponentsCLK_DIV16R|unisim|vcomponentsCLK_DIV16SD|unisim|vcomponentsCLK_DIV16|unisim|vcomponentsCLK_DIV2RSD|unisim|vcomponentsCLK_DIV2R|unisim|vcomponentsCLK_DIV2SD|unisim|vcomponentsCLK_DIV2|unisim|vcomponentsCLK_DIV4RSD|unisim|vcomponentsCLK_DIV4R|unisim|vcomponentsCLK_DIV4SD|unisim|vcomponentsCLK_DIV4|unisim|vcomponentsCLK_DIV6RSD|unisim|vcomponentsCLK_DIV6R|unisim|vcomponentsCLK_DIV6SD|unisim|vcomponentsCLK_DIV6|unisim|vcomponentsCLK_DIV8RSD|unisim|vcomponentsCLK_DIV8R|unisim|vcomponentsCLK_DIV8SD|unisim|vcomponentsCLK_DIV8|unisim|vcomponentsCONFIG|unisim|vcomponentsCRC32|unisim|vcomponentsCRC64|unisim|vcomponentsDCC_FPGACORE|unisim|vcomponentsDCIRESET|unisim|vcomponentsDCM_ADV|unisim|vcomponentsDCM_BASE|unisim|vcomponentsDCM_PS|unisim|vcomponentsDCM_SP|unisim|vcomponentsDCM|unisim|vcomponentsDNA_PORT|unisim|vcomponentsDSP48A|unisim|vcomponentsDSP48E|unisim|vcomponentsDSP48|unisim|vcomponentsEMAC|unisim|vcomponentsFDCE_1|unisim|vcomponentsFDCE|unisim|vcomponentsFDCPE_1|unisim|vcomponentsFDCPE|unisim|vcomponentsFDCPX1|unisim|vcomponentsFDCP_1|unisim|vcomponentsFDCP|unisim|vcomponentsFDC_1|unisim|vcomponentsFDC|unisim|vcomponentsFDDCE|unisim|vcomponentsFDDCPE|unisim|vcomponentsFDDCP|unisim|vcomponentsFDDC|unisim|vcomponentsFDDPE|unisim|vcomponentsFDDP|unisim|vcomponentsFDDRCPE|unisim|vcomponentsFDDRRSE|unisim|vcomponentsFDD|unisim|vcomponentsFDE_1|unisim|vcomponentsFDE|unisim|vcomponentsFDPE_1|unisim|vcomponentsFDPE|unisim|vcomponentsFDP_1|unisim|vcomponentsFDP|unisim|vcomponentsFDRE_1|unisim|vcomponentsFDRE|unisim|vcomponentsFDRSE_1|unisim|vcomponentsFDRSE|unisim|vcomponentsFDRS_1|unisim|vcomponentsFDRS|unisim|vcomponentsFDR_1|unisim|vcomponentsFDR|unisim|vcomponentsFDSE_1|unisim|vcomponentsFDSE|unisim|vcomponentsFDS_1|unisim|vcomponentsFDS|unisim|vcomponentsFD_1|unisim|vcomponentsFD|unisim|vcomponentsFIFO16|unisim|vcomponentsFIFO18_36|unisim|vcomponentsFIFO18|unisim|vcomponentsFIFO36_72_EXP|unisim|vcomponentsFIFO36_72|unisim|vcomponentsFIFO36_EXP|unisim|vcomponentsFIFO36|unisim|vcomponentsFMAP|unisim|vcomponentsFRAME_ECC_VIRTEX4|unisim|vcomponentsFRAME_ECC_VIRTEX5|unisim|vcomponentsFTCP|unisim|vcomponentsFTC|unisim|vcomponentsFTP|unisim|vcomponentsGND|unisim|vcomponentsGT10_10GE_4|unisim|vcomponentsGT10_10GE_8|unisim|vcomponentsGT10_10GFC_4|unisim|vcomponentsGT10_10GFC_8|unisim|vcomponentsGT10_AURORAX_4|unisim|vcomponentsGT10_AURORAX_8|unisim|vcomponentsGT10_AURORA_1|unisim|vcomponentsGT10_AURORA_2|unisim|vcomponentsGT10_AURORA_4|unisim|vcomponentsGT10_CUSTOM|unisim|vcomponentsGT10_INFINIBAND_1|unisim|vcomponentsGT10_INFINIBAND_2|unisim|vcomponentsGT10_INFINIBAND_4|unisim|vcomponentsGT10_OC192_4|unisim|vcomponentsGT10_OC192_8|unisim|vcomponentsGT10_OC48_1|unisim|vcomponentsGT10_OC48_2|unisim|vcomponentsGT10_OC48_4|unisim|vcomponentsGT10_PCI_EXPRESS_1|unisim|vcomponentsGT10_PCI_EXPRESS_2|unisim|vcomponentsGT10_PCI_EXPRESS_4|unisim|vcomponentsGT10_XAUI_1|unisim|vcomponentsGT10_XAUI_2|unisim|vcomponentsGT10_XAUI_4|unisim|vcomponentsGT10|unisim|vcomponentsGT11CLK_MGT|unisim|vcomponentsGT11CLK|unisim|vcomponentsGT11_CUSTOM|unisim|vcomponentsGT11_DUAL|unisim|vcomponentsGT11|unisim|vcomponentsGTP_DUAL|unisim|vcomponentsGT_AURORA_1|unisim|vcomponentsGT_AURORA_2|unisim|vcomponentsGT_AURORA_4|unisim|vcomponentsGT_CUSTOM|unisim|vcomponentsGT_ETHERNET_1|unisim|vcomponentsGT_ETHERNET_2|unisim|vcomponentsGT_ETHERNET_4|unisim|vcomponentsGT_FIBRE_CHAN_1|unisim|vcomponentsGT_FIBRE_CHAN_2|unisim|vcomponentsGT_FIBRE_CHAN_4|unisim|vcomponentsGT_INFINIBAND_1|unisim|vcomponentsGT_INFINIBAND_2|unisim|vcomponentsGT_INFINIBAND_4|unisim|vcomponentsGT_XAUI_1|unisim|vcomponentsGT_XAUI_2|unisim|vcomponentsGT_XAUI_4|unisim|vcomponentsGT|unisim|vcomponentsIBUFDS_BLVDS_25|unisim|vcomponentsIBUFDS_DIFF_OUT|unisim|vcomponentsIBUFDS_DLY_ADJ|unisim|vcomponentsIBUFDS_LDT_25|unisim|vcomponentsIBUFDS_LVDSEXT_25_DCI|unisim|vcomponentsIBUFDS_LVDSEXT_25|unisim|vcomponentsIBUFDS_LVDSEXT_33_DCI|unisim|vcomponentsIBUFDS_LVDSEXT_33|unisim|vcomponentsIBUFDS_LVDS_25_DCI|unisim|vcomponentsIBUFDS_LVDS_25|unisim|vcomponentsIBUFDS_LVDS_33_DCI|unisim|vcomponentsIBUFDS_LVDS_33|unisim|vcomponentsIBUFDS_LVPECL_25|unisim|vcomponentsIBUFDS_LVPECL_33|unisim|vcomponentsIBUFDS_ULVDS_25|unisim|vcomponentsIBUFDS|unisim|vcomponentsIBUFGDS_BLVDS_25|unisim|vcomponentsIBUFGDS_DIFF_OUT|unisim|vcomponentsIBUFGDS_LDT_25|unisim|vcomponentsIBUFGDS_LVDSEXT_25_DCI|unisim|vcomponentsIBUFGDS_LVDSEXT_25|unisim|vcomponentsIBUFGDS_LVDSEXT_33_DCI|unisim|vcomponentsIBUFGDS_LVDSEXT_33|unisim|vcomponentsIBUFGDS_LVDS_25_DCI|unisim|vcomponentsIBUFGDS_LVDS_25|unisim|vcomponentsIBUFGDS_LVDS_33_DCI|unisim|vcomponentsIBUFGDS_LVDS_33|unisim|vcomponentsIBUFGDS_LVPECL_25|unisim|vcomponentsIBUFGDS_LVPECL_33|unisim|vcomponentsIBUFGDS_ULVDS_25|unisim|vcomponentsIBUFGDS|unisim|vcomponentsIBUFG_AGP|unisim|vcomponentsIBUFG_CTT|unisim|vcomponentsIBUFG_GTLP_DCI|unisim|vcomponentsIBUFG_GTLP|unisim|vcomponentsIBUFG_GTL_DCI|unisim|vcomponentsIBUFG_GTL|unisim|vcomponentsIBUFG_HSTL_III_18|unisim|vcomponentsIBUFG_HSTL_III_DCI_18|unisim|vcomponentsIBUFG_HSTL_III_DCI|unisim|vcomponentsIBUFG_HSTL_III|unisim|vcomponentsIBUFG_HSTL_II_18|unisim|vcomponentsIBUFG_HSTL_II_DCI_18|unisim|vcomponentsIBUFG_HSTL_II_DCI|unisim|vcomponentsIBUFG_HSTL_II|unisim|vcomponentsIBUFG_HSTL_IV_18|unisim|vcomponentsIBUFG_HSTL_IV_DCI_18|unisim|vcomponentsIBUFG_HSTL_IV_DCI|unisim|vcomponentsIBUFG_HSTL_IV|unisim|vcomponentsIBUFG_HSTL_I_18|unisim|vcomponentsIBUFG_HSTL_I_DCI_18|unisim|vcomponentsIBUFG_HSTL_I_DCI|unisim|vcomponentsIBUFG_HSTL_I|unisim|vcomponentsIBUFG_LVCMOS12|unisim|vcomponentsIBUFG_LVCMOS15|unisim|vcomponentsIBUFG_LVCMOS18|unisim|vcomponentsIBUFG_LVCMOS25|unisim|vcomponentsIBUFG_LVCMOS2|unisim|vcomponentsIBUFG_LVCMOS33|unisim|vcomponentsIBUFG_LVDCI_15|unisim|vcomponentsIBUFG_LVDCI_18|unisim|vcomponentsIBUFG_LVDCI_25|unisim|vcomponentsIBUFG_LVDCI_33|unisim|vcomponentsIBUFG_LVDCI_DV2_15|unisim|vcomponentsIBUFG_LVDCI_DV2_18|unisim|vcomponentsIBUFG_LVDCI_DV2_25|unisim|vcomponentsIBUFG_LVDCI_DV2_33|unisim|vcomponentsIBUFG_LVDS|unisim|vcomponentsIBUFG_LVPECL|unisim|vcomponentsIBUFG_LVTTL|unisim|vcomponentsIBUFG_PCI33_3|unisim|vcomponentsIBUFG_PCI33_5|unisim|vcomponentsIBUFG_PCI66_3|unisim|vcomponentsIBUFG_PCIX66_3|unisim|vcomponentsIBUFG_PCIX|unisim|vcomponentsIBUFG_SSTL18_II_DCI|unisim|vcomponentsIBUFG_SSTL18_II|unisim|vcomponentsIBUFG_SSTL18_I_DCI|unisim|vcomponentsIBUFG_SSTL18_I|unisim|vcomponentsIBUFG_SSTL2_II_DCI|unisim|vcomponentsIBUFG_SSTL2_II|unisim|vcomponentsIBUFG_SSTL2_I_DCI|unisim|vcomponentsIBUFG_SSTL2_I|unisim|vcomponentsIBUFG_SSTL3_II_DCI|unisim|vcomponentsIBUFG_SSTL3_II|unisim|vcomponentsIBUFG_SSTL3_I_DCI|unisim|vcomponentsIBUFG_SSTL3_I|unisim|vcomponentsIBUFG|unisim|vcomponentsIBUF_AGP|unisim|vcomponentsIBUF_CTT|unisim|vcomponentsIBUF_DLY_ADJ|unisim|vcomponentsIBUF_GTLP_DCI|unisim|vcomponentsIBUF_GTLP|unisim|vcomponentsIBUF_GTL_DCI|unisim|vcomponentsIBUF_GTL|unisim|vcomponentsIBUF_HSTL_III_18|unisim|vcomponentsIBUF_HSTL_III_DCI_18|unisim|vcomponentsIBUF_HSTL_III_DCI|unisim|vcomponentsIBUF_HSTL_III|unisim|vcomponentsIBUF_HSTL_II_18|unisim|vcomponentsIBUF_HSTL_II_DCI_18|unisim|vcomponentsIBUF_HSTL_II_DCI|unisim|vcomponentsIBUF_HSTL_II|unisim|vcomponentsIBUF_HSTL_IV_18|unisim|vcomponentsIBUF_HSTL_IV_DCI_18|unisim|vcomponentsIBUF_HSTL_IV_DCI|unisim|vcomponentsIBUF_HSTL_IV|unisim|vcomponentsIBUF_HSTL_I_18|unisim|vcomponentsIBUF_HSTL_I_DCI_18|unisim|vcomponentsIBUF_HSTL_I_DCI|unisim|vcomponentsIBUF_HSTL_I|unisim|vcomponentsIBUF_LVCMOS12|unisim|vcomponentsIBUF_LVCMOS15|unisim|vcomponentsIBUF_LVCMOS18|unisim|vcomponentsIBUF_LVCMOS25|unisim|vcomponentsIBUF_LVCMOS2|unisim|vcomponentsIBUF_LVCMOS33|unisim|vcomponentsIBUF_LVDCI_15|unisim|vcomponentsIBUF_LVDCI_18|unisim|vcomponentsIBUF_LVDCI_25|unisim|vcomponentsIBUF_LVDCI_33|unisim|vcomponentsIBUF_LVDCI_DV2_15|unisim|vcomponentsIBUF_LVDCI_DV2_18|unisim|vcomponentsIBUF_LVDCI_DV2_25|unisim|vcomponentsIBUF_LVDCI_DV2_33|unisim|vcomponentsIBUF_LVDS|unisim|vcomponentsIBUF_LVPECL|unisim|vcomponentsIBUF_LVTTL|unisim|vcomponentsIBUF_PCI33_3|unisim|vcomponentsIBUF_PCI33_5|unisim|vcomponentsIBUF_PCI66_3|unisim|vcomponentsIBUF_PCIX66_3|unisim|vcomponentsIBUF_PCIX|unisim|vcomponentsIBUF_SSTL18_II_DCI|unisim|vcomponentsIBUF_SSTL18_II|unisim|vcomponentsIBUF_SSTL18_I_DCI|unisim|vcomponentsIBUF_SSTL18_I|unisim|vcomponentsIBUF_SSTL2_II_DCI|unisim|vcomponentsIBUF_SSTL2_II|unisim|vcomponentsIBUF_SSTL2_I_DCI|unisim|vcomponentsIBUF_SSTL2_I|unisim|vcomponentsIBUF_SSTL3_II_DCI|unisim|vcomponentsIBUF_SSTL3_II|unisim|vcomponentsIBUF_SSTL3_I_DCI|unisim|vcomponentsIBUF_SSTL3_I|unisim|vcomponentsIBUF|unisim|vcomponentsICAP_SPARTAN3A|unisim|vcomponentsICAP_VIRTEX2|unisim|vcomponentsICAP_VIRTEX4|unisim|vcomponentsICAP_VIRTEX5|unisim|vcomponentsIDDR2|unisim|vcomponentsIDDR_2CLK|unisim|vcomponentsIDDR|unisim|vcomponentsIDELAYCTRL|unisim|vcomponentsIDELAY|unisim|vcomponentsIFDDRCPE|unisim|vcomponentsIFDDRRSE|unisim|vcomponentsILD|unisim|vcomponentsINV|unisim|vcomponentsIOBUFDS_BLVDS_25|unisim|vcomponentsIOBUFDS|unisim|vcomponentsIOBUFE_F|unisim|vcomponentsIOBUFE_S|unisim|vcomponentsIOBUFE|unisim|vcomponentsIOBUF_AGP|unisim|vcomponentsIOBUF_CTT|unisim|vcomponentsIOBUF_F_12|unisim|vcomponentsIOBUF_F_16|unisim|vcomponentsIOBUF_F_24|unisim|vcomponentsIOBUF_F_2|unisim|vcomponentsIOBUF_F_4|unisim|vcomponentsIOBUF_F_6|unisim|vcomponentsIOBUF_F_8|unisim|vcomponentsIOBUF_GTLP_DCI|unisim|vcomponentsIOBUF_GTLP|unisim|vcomponentsIOBUF_GTL_DCI|unisim|vcomponentsIOBUF_GTL|unisim|vcomponentsIOBUF_HSTL_III_18|unisim|vcomponentsIOBUF_HSTL_III|unisim|vcomponentsIOBUF_HSTL_II_18|unisim|vcomponentsIOBUF_HSTL_II_DCI_18|unisim|vcomponentsIOBUF_HSTL_II_DCI|unisim|vcomponentsIOBUF_HSTL_II|unisim|vcomponentsIOBUF_HSTL_IV_18|unisim|vcomponentsIOBUF_HSTL_IV_DCI_18|unisim|vcomponentsIOBUF_HSTL_IV_DCI|unisim|vcomponentsIOBUF_HSTL_IV|unisim|vcomponentsIOBUF_HSTL_I_18|unisim|vcomponentsIOBUF_HSTL_I|unisim|vcomponentsIOBUF_LVCMOS12_F_2|unisim|vcomponentsIOBUF_LVCMOS12_F_4|unisim|vcomponentsIOBUF_LVCMOS12_F_6|unisim|vcomponentsIOBUF_LVCMOS12_F_8|unisim|vcomponentsIOBUF_LVCMOS12_S_2|unisim|vcomponentsIOBUF_LVCMOS12_S_4|unisim|vcomponentsIOBUF_LVCMOS12_S_6|unisim|vcomponentsIOBUF_LVCMOS12_S_8|unisim|vcomponentsIOBUF_LVCMOS12|unisim|vcomponentsIOBUF_LVCMOS15_F_12|unisim|vcomponentsIOBUF_LVCMOS15_F_16|unisim|vcomponentsIOBUF_LVCMOS15_F_2|unisim|vcomponentsIOBUF_LVCMOS15_F_4|unisim|vcomponentsIOBUF_LVCMOS15_F_6|unisim|vcomponentsIOBUF_LVCMOS15_F_8|unisim|vcomponentsIOBUF_LVCMOS15_S_12|unisim|vcomponentsIOBUF_LVCMOS15_S_16|unisim|vcomponentsIOBUF_LVCMOS15_S_2|unisim|vcomponentsIOBUF_LVCMOS15_S_4|unisim|vcomponentsIOBUF_LVCMOS15_S_6|unisim|vcomponentsIOBUF_LVCMOS15_S_8|unisim|vcomponentsIOBUF_LVCMOS15|unisim|vcomponentsIOBUF_LVCMOS18_F_12|unisim|vcomponentsIOBUF_LVCMOS18_F_16|unisim|vcomponentsIOBUF_LVCMOS18_F_2|unisim|vcomponentsIOBUF_LVCMOS18_F_4|unisim|vcomponentsIOBUF_LVCMOS18_F_6|unisim|vcomponentsIOBUF_LVCMOS18_F_8|unisim|vcomponentsIOBUF_LVCMOS18_S_12|unisim|vcomponentsIOBUF_LVCMOS18_S_16|unisim|vcomponentsIOBUF_LVCMOS18_S_2|unisim|vcomponentsIOBUF_LVCMOS18_S_4|unisim|vcomponentsIOBUF_LVCMOS18_S_6|unisim|vcomponentsIOBUF_LVCMOS18_S_8|unisim|vcomponentsIOBUF_LVCMOS18|unisim|vcomponentsIOBUF_LVCMOS25_F_12|unisim|vcomponentsIOBUF_LVCMOS25_F_16|unisim|vcomponentsIOBUF_LVCMOS25_F_24|unisim|vcomponentsIOBUF_LVCMOS25_F_2|unisim|vcomponentsIOBUF_LVCMOS25_F_4|unisim|vcomponentsIOBUF_LVCMOS25_F_6|unisim|vcomponentsIOBUF_LVCMOS25_F_8|unisim|vcomponentsIOBUF_LVCMOS25_S_12|unisim|vcomponentsIOBUF_LVCMOS25_S_16|unisim|vcomponentsIOBUF_LVCMOS25_S_24|unisim|vcomponentsIOBUF_LVCMOS25_S_2|unisim|vcomponentsIOBUF_LVCMOS25_S_4|unisim|vcomponentsIOBUF_LVCMOS25_S_6|unisim|vcomponentsIOBUF_LVCMOS25_S_8|unisim|vcomponentsIOBUF_LVCMOS25|unisim|vcomponentsIOBUF_LVCMOS2|unisim|vcomponentsIOBUF_LVCMOS33_F_12|unisim|vcomponentsIOBUF_LVCMOS33_F_16|unisim|vcomponentsIOBUF_LVCMOS33_F_24|unisim|vcomponentsIOBUF_LVCMOS33_F_2|unisim|vcomponentsIOBUF_LVCMOS33_F_4|unisim|vcomponentsIOBUF_LVCMOS33_F_6|unisim|vcomponentsIOBUF_LVCMOS33_F_8|unisim|vcomponentsIOBUF_LVCMOS33_S_12|unisim|vcomponentsIOBUF_LVCMOS33_S_16|unisim|vcomponentsIOBUF_LVCMOS33_S_24|unisim|vcomponentsIOBUF_LVCMOS33_S_2|unisim|vcomponentsIOBUF_LVCMOS33_S_4|unisim|vcomponentsIOBUF_LVCMOS33_S_6|unisim|vcomponentsIOBUF_LVCMOS33_S_8|unisim|vcomponentsIOBUF_LVCMOS33|unisim|vcomponentsIOBUF_LVDCI_15|unisim|vcomponentsIOBUF_LVDCI_18|unisim|vcomponentsIOBUF_LVDCI_25|unisim|vcomponentsIOBUF_LVDCI_33|unisim|vcomponentsIOBUF_LVDCI_DV2_15|unisim|vcomponentsIOBUF_LVDCI_DV2_18|unisim|vcomponentsIOBUF_LVDCI_DV2_25|unisim|vcomponentsIOBUF_LVDCI_DV2_33|unisim|vcomponentsIOBUF_LVDS|unisim|vcomponentsIOBUF_LVPECL|unisim|vcomponentsIOBUF_LVTTL_F_12|unisim|vcomponentsIOBUF_LVTTL_F_16|unisim|vcomponentsIOBUF_LVTTL_F_24|unisim|vcomponentsIOBUF_LVTTL_F_2|unisim|vcomponentsIOBUF_LVTTL_F_4|unisim|vcomponentsIOBUF_LVTTL_F_6|unisim|vcomponentsIOBUF_LVTTL_F_8|unisim|vcomponentsIOBUF_LVTTL_S_12|unisim|vcomponentsIOBUF_LVTTL_S_16|unisim|vcomponentsIOBUF_LVTTL_S_24|unisim|vcomponentsIOBUF_LVTTL_S_2|unisim|vcomponentsIOBUF_LVTTL_S_4|unisim|vcomponentsIOBUF_LVTTL_S_6|unisim|vcomponentsIOBUF_LVTTL_S_8|unisim|vcomponentsIOBUF_LVTTL|unisim|vcomponentsIOBUF_PCI33_3|unisim|vcomponentsIOBUF_PCI33_5|unisim|vcomponentsIOBUF_PCI66_3|unisim|vcomponentsIOBUF_PCIX66_3|unisim|vcomponentsIOBUF_PCIX|unisim|vcomponentsIOBUF_SSTL18_II_DCI|unisim|vcomponentsIOBUF_SSTL18_II|unisim|vcomponentsIOBUF_SSTL18_I|unisim|vcomponentsIOBUF_SSTL2_II_DCI|unisim|vcomponentsIOBUF_SSTL2_II|unisim|vcomponentsIOBUF_SSTL2_I|unisim|vcomponentsIOBUF_SSTL3_II_DCI|unisim|vcomponentsIOBUF_SSTL3_II|unisim|vcomponentsIOBUF_SSTL3_I|unisim|vcomponentsIOBUF_S_12|unisim|vcomponentsIOBUF_S_16|unisim|vcomponentsIOBUF_S_24|unisim|vcomponentsIOBUF_S_2|unisim|vcomponentsIOBUF_S_4|unisim|vcomponentsIOBUF_S_6|unisim|vcomponentsIOBUF_S_8|unisim|vcomponentsIOBUF|unisim|vcomponentsIODELAY|unisim|vcomponentsISERDES_NODELAY|unisim|vcomponentsISERDES|unisim|vcomponentsJTAGPPC|unisim|vcomponentsJTAG_SIM_SPARTAN3A|unisim|vcomponentsJTAG_SIM_VIRTEX4|unisim|vcomponentsJTAG_SIM_VIRTEX5|unisim|vcomponentsKEEPER|unisim|vcomponentsKEEP|unisim|vcomponentsKEY_CLEAR|unisim|vcomponentsLDCE_1|unisim|vcomponentsLDCE|unisim|vcomponentsLDCPE_1|unisim|vcomponentsLDCPE|unisim|vcomponentsLDCP_1|unisim|vcomponentsLDCP|unisim|vcomponentsLDC_1|unisim|vcomponentsLDC|unisim|vcomponentsLDE_1|unisim|vcomponentsLDE|unisim|vcomponentsLDG|unisim|vcomponentsLDPE_1|unisim|vcomponentsLDPE|unisim|vcomponentsLDP_1|unisim|vcomponentsLDP|unisim|vcomponentsLD_1|unisim|vcomponentsLD|unisim|vcomponentsLUT1_D|unisim|vcomponentsLUT1_L|unisim|vcomponentsLUT1|unisim|vcomponentsLUT2_D|unisim|vcomponentsLUT2_L|unisim|vcomponentsLUT2|unisim|vcomponentsLUT3_D|unisim|vcomponentsLUT3_L|unisim|vcomponentsLUT3|unisim|vcomponentsLUT4_D|unisim|vcomponentsLUT4_L|unisim|vcomponentsLUT4|unisim|vcomponentsLUT5_D|unisim|vcomponentsLUT5_L|unisim|vcomponentsLUT5|unisim|vcomponentsLUT6_2|unisim|vcomponentsLUT6_D|unisim|vcomponentsLUT6_L|unisim|vcomponentsLUT6|unisim|vcomponentsMERGE|unisim|vcomponentsMIN_OFF|unisim|vcomponentsMULT18X18SIO|unisim|vcomponentsMULT18X18S|unisim|vcomponentsMULT18X18|unisim|vcomponentsMULT_AND|unisim|vcomponentsMUXCY_D|unisim|vcomponentsMUXCY_L|unisim|vcomponentsMUXCY|unisim|vcomponentsMUXF5_D|unisim|vcomponentsMUXF5_L|unisim|vcomponentsMUXF5|unisim|vcomponentsMUXF6_D|unisim|vcomponentsMUXF6_L|unisim|vcomponentsMUXF6|unisim|vcomponentsMUXF7_D|unisim|vcomponentsMUXF7_L|unisim|vcomponentsMUXF7|unisim|vcomponentsMUXF8_D|unisim|vcomponentsMUXF8_L|unisim|vcomponentsMUXF8|unisim|vcomponentsNAND2B1|unisim|vcomponentsNAND2B2|unisim|vcomponentsNAND2|unisim|vcomponentsNAND3B1|unisim|vcomponentsNAND3B2|unisim|vcomponentsNAND3B3|unisim|vcomponentsNAND3|unisim|vcomponentsNAND4B1|unisim|vcomponentsNAND4B2|unisim|vcomponentsNAND4B3|unisim|vcomponentsNAND4B4|unisim|vcomponentsNAND4|unisim|vcomponentsNAND5B1|unisim|vcomponentsNAND5B2|unisim|vcomponentsNAND5B3|unisim|vcomponentsNAND5B4|unisim|vcomponentsNAND5B5|unisim|vcomponentsNAND5|unisim|vcomponentsNOR2B1|unisim|vcomponentsNOR2B2|unisim|vcomponentsNOR2|unisim|vcomponentsNOR3B1|unisim|vcomponentsNOR3B2|unisim|vcomponentsNOR3B3|unisim|vcomponentsNOR3|unisim|vcomponentsNOR4B1|unisim|vcomponentsNOR4B2|unisim|vcomponentsNOR4B3|unisim|vcomponentsNOR4B4|unisim|vcomponentsNOR4|unisim|vcomponentsNOR5B1|unisim|vcomponentsNOR5B2|unisim|vcomponentsNOR5B3|unisim|vcomponentsNOR5B4|unisim|vcomponentsNOR5B5|unisim|vcomponentsNOR5|unisim|vcomponentsOBUFDS_BLVDS_25|unisim|vcomponentsOBUFDS_LDT_25|unisim|vcomponentsOBUFDS_LVDSEXT_25|unisim|vcomponentsOBUFDS_LVDSEXT_33|unisim|vcomponentsOBUFDS_LVDS_25|unisim|vcomponentsOBUFDS_LVDS_33|unisim|vcomponentsOBUFDS_LVPECL_25|unisim|vcomponentsOBUFDS_LVPECL_33|unisim|vcomponentsOBUFDS_ULVDS_25|unisim|vcomponentsOBUFDS|unisim|vcomponentsOBUFE|unisim|vcomponentsOBUFTDS_BLVDS_25|unisim|vcomponentsOBUFTDS_LDT_25|unisim|vcomponentsOBUFTDS_LVDSEXT_25|unisim|vcomponentsOBUFTDS_LVDSEXT_33|unisim|vcomponentsOBUFTDS_LVDS_25|unisim|vcomponentsOBUFTDS_LVDS_33|unisim|vcomponentsOBUFTDS_LVPECL_25|unisim|vcomponentsOBUFTDS_LVPECL_33|unisim|vcomponentsOBUFTDS_ULVDS_25|unisim|vcomponentsOBUFTDS|unisim|vcomponentsOBUFT_AGP|unisim|vcomponentsOBUFT_CTT|unisim|vcomponentsOBUFT_F_12|unisim|vcomponentsOBUFT_F_16|unisim|vcomponentsOBUFT_F_24|unisim|vcomponentsOBUFT_F_2|unisim|vcomponentsOBUFT_F_4|unisim|vcomponentsOBUFT_F_6|unisim|vcomponentsOBUFT_F_8|unisim|vcomponentsOBUFT_GTLP_DCI|unisim|vcomponentsOBUFT_GTLP|unisim|vcomponentsOBUFT_GTL_DCI|unisim|vcomponentsOBUFT_GTL|unisim|vcomponentsOBUFT_HSTL_III_18|unisim|vcomponentsOBUFT_HSTL_III_DCI_18|unisim|vcomponentsOBUFT_HSTL_III_DCI|unisim|vcomponentsOBUFT_HSTL_III|unisim|vcomponentsOBUFT_HSTL_II_18|unisim|vcomponentsOBUFT_HSTL_II_DCI_18|unisim|vcomponentsOBUFT_HSTL_II_DCI|unisim|vcomponentsOBUFT_HSTL_II|unisim|vcomponentsOBUFT_HSTL_IV_18|unisim|vcomponentsOBUFT_HSTL_IV_DCI_18|unisim|vcomponentsOBUFT_HSTL_IV_DCI|unisim|vcomponentsOBUFT_HSTL_IV|unisim|vcomponentsOBUFT_HSTL_I_18|unisim|vcomponentsOBUFT_HSTL_I_DCI_18|unisim|vcomponentsOBUFT_HSTL_I_DCI|unisim|vcomponentsOBUFT_HSTL_I|unisim|vcomponentsOBUFT_LVCMOS12_F_2|unisim|vcomponentsOBUFT_LVCMOS12_F_4|unisim|vcomponentsOBUFT_LVCMOS12_F_6|unisim|vcomponentsOBUFT_LVCMOS12_F_8|unisim|vcomponentsOBUFT_LVCMOS12_S_2|unisim|vcomponentsOBUFT_LVCMOS12_S_4|unisim|vcomponentsOBUFT_LVCMOS12_S_6|unisim|vcomponentsOBUFT_LVCMOS12_S_8|unisim|vcomponentsOBUFT_LVCMOS12|unisim|vcomponentsOBUFT_LVCMOS15_F_12|unisim|vcomponentsOBUFT_LVCMOS15_F_16|unisim|vcomponentsOBUFT_LVCMOS15_F_2|unisim|vcomponentsOBUFT_LVCMOS15_F_4|unisim|vcomponentsOBUFT_LVCMOS15_F_6|unisim|vcomponentsOBUFT_LVCMOS15_F_8|unisim|vcomponentsOBUFT_LVCMOS15_S_12|unisim|vcomponentsOBUFT_LVCMOS15_S_16|unisim|vcomponentsOBUFT_LVCMOS15_S_2|unisim|vcomponentsOBUFT_LVCMOS15_S_4|unisim|vcomponentsOBUFT_LVCMOS15_S_6|unisim|vcomponentsOBUFT_LVCMOS15_S_8|unisim|vcomponentsOBUFT_LVCMOS15|unisim|vcomponentsOBUFT_LVCMOS18_F_12|unisim|vcomponentsOBUFT_LVCMOS18_F_16|unisim|vcomponentsOBUFT_LVCMOS18_F_2|unisim|vcomponentsOBUFT_LVCMOS18_F_4|unisim|vcomponentsOBUFT_LVCMOS18_F_6|unisim|vcomponentsOBUFT_LVCMOS18_F_8|unisim|vcomponentsOBUFT_LVCMOS18_S_12|unisim|vcomponentsOBUFT_LVCMOS18_S_16|unisim|vcomponentsOBUFT_LVCMOS18_S_2|unisim|vcomponentsOBUFT_LVCMOS18_S_4|unisim|vcomponentsOBUFT_LVCMOS18_S_6|unisim|vcomponentsOBUFT_LVCMOS18_S_8|unisim|vcomponentsOBUFT_LVCMOS18|unisim|vcomponentsOBUFT_LVCMOS25_F_12|unisim|vcomponentsOBUFT_LVCMOS25_F_16|unisim|vcomponentsOBUFT_LVCMOS25_F_24|unisim|vcomponentsOBUFT_LVCMOS25_F_2|unisim|vcomponentsOBUFT_LVCMOS25_F_4|unisim|vcomponentsOBUFT_LVCMOS25_F_6|unisim|vcomponentsOBUFT_LVCMOS25_F_8|unisim|vcomponentsOBUFT_LVCMOS25_S_12|unisim|vcomponentsOBUFT_LVCMOS25_S_16|unisim|vcomponentsOBUFT_LVCMOS25_S_24|unisim|vcomponentsOBUFT_LVCMOS25_S_2|unisim|vcomponentsOBUFT_LVCMOS25_S_4|unisim|vcomponentsOBUFT_LVCMOS25_S_6|unisim|vcomponentsOBUFT_LVCMOS25_S_8|unisim|vcomponentsOBUFT_LVCMOS25|unisim|vcomponentsOBUFT_LVCMOS2|unisim|vcomponentsOBUFT_LVCMOS33_F_12|unisim|vcomponentsOBUFT_LVCMOS33_F_16|unisim|vcomponentsOBUFT_LVCMOS33_F_24|unisim|vcomponentsOBUFT_LVCMOS33_F_2|unisim|vcomponentsOBUFT_LVCMOS33_F_4|unisim|vcomponentsOBUFT_LVCMOS33_F_6|unisim|vcomponentsOBUFT_LVCMOS33_F_8|unisim|vcomponentsOBUFT_LVCMOS33_S_12|unisim|vcomponentsOBUFT_LVCMOS33_S_16|unisim|vcomponentsOBUFT_LVCMOS33_S_24|unisim|vcomponentsOBUFT_LVCMOS33_S_2|unisim|vcomponentsOBUFT_LVCMOS33_S_4|unisim|vcomponentsOBUFT_LVCMOS33_S_6|unisim|vcomponentsOBUFT_LVCMOS33_S_8|unisim|vcomponentsOBUFT_LVCMOS33|unisim|vcomponentsOBUFT_LVDCI_15|unisim|vcomponentsOBUFT_LVDCI_18|unisim|vcomponentsOBUFT_LVDCI_25|unisim|vcomponentsOBUFT_LVDCI_33|unisim|vcomponentsOBUFT_LVDCI_DV2_15|unisim|vcomponentsOBUFT_LVDCI_DV2_18|unisim|vcomponentsOBUFT_LVDCI_DV2_25|unisim|vcomponentsOBUFT_LVDCI_DV2_33|unisim|vcomponentsOBUFT_LVDS|unisim|vcomponentsOBUFT_LVPECL|unisim|vcomponentsOBUFT_LVTTL_F_12|unisim|vcomponentsOBUFT_LVTTL_F_16|unisim|vcomponentsOBUFT_LVTTL_F_24|unisim|vcomponentsOBUFT_LVTTL_F_2|unisim|vcomponentsOBUFT_LVTTL_F_4|unisim|vcomponentsOBUFT_LVTTL_F_6|unisim|vcomponentsOBUFT_LVTTL_F_8|unisim|vcomponentsOBUFT_LVTTL_S_12|unisim|vcomponentsOBUFT_LVTTL_S_16|unisim|vcomponentsOBUFT_LVTTL_S_24|unisim|vcomponentsOBUFT_LVTTL_S_2|unisim|vcomponentsOBUFT_LVTTL_S_4|unisim|vcomponentsOBUFT_LVTTL_S_6|unisim|vcomponentsOBUFT_LVTTL_S_8|unisim|vcomponentsOBUFT_LVTTL|unisim|vcomponentsOBUFT_PCI33_3|unisim|vcomponentsOBUFT_PCI33_5|unisim|vcomponentsOBUFT_PCI66_3|unisim|vcomponentsOBUFT_PCIX66_3|unisim|vcomponentsOBUFT_PCIX|unisim|vcomponentsOBUFT_SSTL18_II_DCI|unisim|vcomponentsOBUFT_SSTL18_II|unisim|vcomponentsOBUFT_SSTL18_I_DCI|unisim|vcomponentsOBUFT_SSTL18_I|unisim|vcomponentsOBUFT_SSTL2_II_DCI|unisim|vcomponentsOBUFT_SSTL2_II|unisim|vcomponentsOBUFT_SSTL2_I_DCI|unisim|vcomponentsOBUFT_SSTL2_I|unisim|vcomponentsOBUFT_SSTL3_II_DCI|unisim|vcomponentsOBUFT_SSTL3_II|unisim|vcomponentsOBUFT_SSTL3_I_DCI|unisim|vcomponentsOBUFT_SSTL3_I|unisim|vcomponentsOBUFT_S_12|unisim|vcomponentsOBUFT_S_16|unisim|vcomponentsOBUFT_S_24|unisim|vcomponentsOBUFT_S_2|unisim|vcomponentsOBUFT_S_4|unisim|vcomponentsOBUFT_S_6|unisim|vcomponentsOBUFT_S_8|unisim|vcomponentsOBUFT|unisim|vcomponentsOBUF_AGP|unisim|vcomponentsOBUF_CTT|unisim|vcomponentsOBUF_F_12|unisim|vcomponentsOBUF_F_16|unisim|vcomponentsOBUF_F_24|unisim|vcomponentsOBUF_F_2|unisim|vcomponentsOBUF_F_4|unisim|vcomponentsOBUF_F_6|unisim|vcomponentsOBUF_F_8|unisim|vcomponentsOBUF_GTLP_DCI|unisim|vcomponentsOBUF_GTLP|unisim|vcomponentsOBUF_GTL_DCI|unisim|vcomponentsOBUF_GTL|unisim|vcomponentsOBUF_HSTL_III_18|unisim|vcomponentsOBUF_HSTL_III_DCI_18|unisim|vcomponentsOBUF_HSTL_III_DCI|unisim|vcomponentsOBUF_HSTL_III|unisim|vcomponentsOBUF_HSTL_II_18|unisim|vcomponentsOBUF_HSTL_II_DCI_18|unisim|vcomponentsOBUF_HSTL_II_DCI|unisim|vcomponentsOBUF_HSTL_II|unisim|vcomponentsOBUF_HSTL_IV_18|unisim|vcomponentsOBUF_HSTL_IV_DCI_18|unisim|vcomponentsOBUF_HSTL_IV_DCI|unisim|vcomponentsOBUF_HSTL_IV|unisim|vcomponentsOBUF_HSTL_I_18|unisim|vcomponentsOBUF_HSTL_I_DCI_18|unisim|vcomponentsOBUF_HSTL_I_DCI|unisim|vcomponentsOBUF_HSTL_I|unisim|vcomponentsOBUF_LVCMOS12_F_2|unisim|vcomponentsOBUF_LVCMOS12_F_4|unisim|vcomponentsOBUF_LVCMOS12_F_6|unisim|vcomponentsOBUF_LVCMOS12_F_8|unisim|vcomponentsOBUF_LVCMOS12_S_2|unisim|vcomponentsOBUF_LVCMOS12_S_4|unisim|vcomponentsOBUF_LVCMOS12_S_6|unisim|vcomponentsOBUF_LVCMOS12_S_8|unisim|vcomponentsOBUF_LVCMOS12|unisim|vcomponentsOBUF_LVCMOS15_F_12|unisim|vcomponentsOBUF_LVCMOS15_F_16|unisim|vcomponentsOBUF_LVCMOS15_F_2|unisim|vcomponentsOBUF_LVCMOS15_F_4|unisim|vcomponentsOBUF_LVCMOS15_F_6|unisim|vcomponentsOBUF_LVCMOS15_F_8|unisim|vcomponentsOBUF_LVCMOS15_S_12|unisim|vcomponentsOBUF_LVCMOS15_S_16|unisim|vcomponentsOBUF_LVCMOS15_S_2|unisim|vcomponentsOBUF_LVCMOS15_S_4|unisim|vcomponentsOBUF_LVCMOS15_S_6|unisim|vcomponentsOBUF_LVCMOS15_S_8|unisim|vcomponentsOBUF_LVCMOS15|unisim|vcomponentsOBUF_LVCMOS18_F_12|unisim|vcomponentsOBUF_LVCMOS18_F_16|unisim|vcomponentsOBUF_LVCMOS18_F_2|unisim|vcomponentsOBUF_LVCMOS18_F_4|unisim|vcomponentsOBUF_LVCMOS18_F_6|unisim|vcomponentsOBUF_LVCMOS18_F_8|unisim|vcomponentsOBUF_LVCMOS18_S_12|unisim|vcomponentsOBUF_LVCMOS18_S_16|unisim|vcomponentsOBUF_LVCMOS18_S_2|unisim|vcomponentsOBUF_LVCMOS18_S_4|unisim|vcomponentsOBUF_LVCMOS18_S_6|unisim|vcomponentsOBUF_LVCMOS18_S_8|unisim|vcomponentsOBUF_LVCMOS18|unisim|vcomponentsOBUF_LVCMOS25_F_12|unisim|vcomponentsOBUF_LVCMOS25_F_16|unisim|vcomponentsOBUF_LVCMOS25_F_24|unisim|vcomponentsOBUF_LVCMOS25_F_2|unisim|vcomponentsOBUF_LVCMOS25_F_4|unisim|vcomponentsOBUF_LVCMOS25_F_6|unisim|vcomponentsOBUF_LVCMOS25_F_8|unisim|vcomponentsOBUF_LVCMOS25_S_12|unisim|vcomponentsOBUF_LVCMOS25_S_16|unisim|vcomponentsOBUF_LVCMOS25_S_24|unisim|vcomponentsOBUF_LVCMOS25_S_2|unisim|vcomponentsOBUF_LVCMOS25_S_4|unisim|vcomponentsOBUF_LVCMOS25_S_6|unisim|vcomponentsOBUF_LVCMOS25_S_8|unisim|vcomponentsOBUF_LVCMOS25|unisim|vcomponentsOBUF_LVCMOS2|unisim|vcomponentsOBUF_LVCMOS33_F_12|unisim|vcomponentsOBUF_LVCMOS33_F_16|unisim|vcomponentsOBUF_LVCMOS33_F_24|unisim|vcomponentsOBUF_LVCMOS33_F_2|unisim|vcomponentsOBUF_LVCMOS33_F_4|unisim|vcomponentsOBUF_LVCMOS33_F_6|unisim|vcomponentsOBUF_LVCMOS33_F_8|unisim|vcomponentsOBUF_LVCMOS33_S_12|unisim|vcomponentsOBUF_LVCMOS33_S_16|unisim|vcomponentsOBUF_LVCMOS33_S_24|unisim|vcomponentsOBUF_LVCMOS33_S_2|unisim|vcomponentsOBUF_LVCMOS33_S_4|unisim|vcomponentsOBUF_LVCMOS33_S_6|unisim|vcomponentsOBUF_LVCMOS33_S_8|unisim|vcomponentsOBUF_LVCMOS33|unisim|vcomponentsOBUF_LVDCI_15|unisim|vcomponentsOBUF_LVDCI_18|unisim|vcomponentsOBUF_LVDCI_25|unisim|vcomponentsOBUF_LVDCI_33|unisim|vcomponentsOBUF_LVDCI_DV2_15|unisim|vcomponentsOBUF_LVDCI_DV2_18|unisim|vcomponentsOBUF_LVDCI_DV2_25|unisim|vcomponentsOBUF_LVDCI_DV2_33|unisim|vcomponentsOBUF_LVDS|unisim|vcomponentsOBUF_LVPECL|unisim|vcomponentsOBUF_LVTTL_F_12|unisim|vcomponentsOBUF_LVTTL_F_16|unisim|vcomponentsOBUF_LVTTL_F_24|unisim|vcomponentsOBUF_LVTTL_F_2|unisim|vcomponentsOBUF_LVTTL_F_4|unisim|vcomponentsOBUF_LVTTL_F_6|unisim|vcomponentsOBUF_LVTTL_F_8|unisim|vcomponentsOBUF_LVTTL_S_12|unisim|vcomponentsOBUF_LVTTL_S_16|unisim|vcomponentsOBUF_LVTTL_S_24|unisim|vcomponentsOBUF_LVTTL_S_2|unisim|vcomponentsOBUF_LVTTL_S_4|unisim|vcomponentsOBUF_LVTTL_S_6|unisim|vcomponentsOBUF_LVTTL_S_8|unisim|vcomponentsOBUF_LVTTL|unisim|vcomponentsOBUF_PCI33_3|unisim|vcomponentsOBUF_PCI33_5|unisim|vcomponentsOBUF_PCI66_3|unisim|vcomponentsOBUF_PCIX66_3|unisim|vcomponentsOBUF_PCIX|unisim|vcomponentsOBUF_SSTL18_II_DCI|unisim|vcomponentsOBUF_SSTL18_II|unisim|vcomponentsOBUF_SSTL18_I_DCI|unisim|vcomponentsOBUF_SSTL18_I|unisim|vcomponentsOBUF_SSTL2_II_DCI|unisim|vcomponentsOBUF_SSTL2_II|unisim|vcomponentsOBUF_SSTL2_I_DCI|unisim|vcomponentsOBUF_SSTL2_I|unisim|vcomponentsOBUF_SSTL3_II_DCI|unisim|vcomponentsOBUF_SSTL3_II|unisim|vcomponentsOBUF_SSTL3_I_DCI|unisim|vcomponentsOBUF_SSTL3_I|unisim|vcomponentsOBUF_S_12|unisim|vcomponentsOBUF_S_16|unisim|vcomponentsOBUF_S_24|unisim|vcomponentsOBUF_S_2|unisim|vcomponentsOBUF_S_4|unisim|vcomponentsOBUF_S_6|unisim|vcomponentsOBUF_S_8|unisim|vcomponentsOBUF|unisim|vcomponentsODDR2|unisim|vcomponentsODDR|unisim|vcomponentsOFDDRCPE|unisim|vcomponentsOFDDRRSE|unisim|vcomponentsOFDDRTCPE|unisim|vcomponentsOFDDRTRSE|unisim|vcomponentsOPT_OFF|unisim|vcomponentsOPT_UIM|unisim|vcomponentsOR2B1|unisim|vcomponentsOR2B2|unisim|vcomponentsOR2|unisim|vcomponentsOR3B1|unisim|vcomponentsOR3B2|unisim|vcomponentsOR3B3|unisim|vcomponentsOR3|unisim|vcomponentsOR4B1|unisim|vcomponentsOR4B2|unisim|vcomponentsOR4B3|unisim|vcomponentsOR4B4|unisim|vcomponentsOR4|unisim|vcomponentsOR5B1|unisim|vcomponentsOR5B2|unisim|vcomponentsOR5B3|unisim|vcomponentsOR5B4|unisim|vcomponentsOR5B5|unisim|vcomponentsOR5|unisim|vcomponentsOR6|unisim|vcomponentsOR7|unisim|vcomponentsOR8|unisim|vcomponentsORCY|unisim|vcomponentsOSERDES|unisim|vcomponentsPCIE_EP|unisim|vcomponentsPCIE_INTERNAL_1_1|unisim|vcomponentsPLL_ADV|unisim|vcomponentsPLL_BASE|unisim|vcomponentsPMCD|unisim|vcomponentsPPC405_ADV|unisim|vcomponentsPPC405|unisim|vcomponentsPULLDOWN|unisim|vcomponentsPULLUP|unisim|vcomponentsRAM128X1D|unisim|vcomponentsRAM128X1S_1|unisim|vcomponentsRAM128X1S|unisim|vcomponentsRAM16X1D_1|unisim|vcomponentsRAM16X1D|unisim|vcomponentsRAM16X1S_1|unisim|vcomponentsRAM16X1S|unisim|vcomponentsRAM16X2S|unisim|vcomponentsRAM16X4S|unisim|vcomponentsRAM16X8S|unisim|vcomponentsRAM256X1S|unisim|vcomponentsRAM32M|unisim|vcomponentsRAM32X1D_1|unisim|vcomponentsRAM32X1D|unisim|vcomponentsRAM32X1S_1|unisim|vcomponentsRAM32X1S|unisim|vcomponentsRAM32X2S|unisim|vcomponentsRAM32X4S|unisim|vcomponentsRAM32X8S|unisim|vcomponentsRAM64M|unisim|vcomponentsRAM64X1D_1|unisim|vcomponentsRAM64X1D|unisim|vcomponentsRAM64X1S_1|unisim|vcomponentsRAM64X1S|unisim|vcomponentsRAM64X2S|unisim|vcomponentsRAMB16BWER|unisim|vcomponentsRAMB16BWE_S18_S18|unisim|vcomponentsRAMB16BWE_S18_S9|unisim|vcomponentsRAMB16BWE_S18|unisim|vcomponentsRAMB16BWE_S36_S18|unisim|vcomponentsRAMB16BWE_S36_S36|unisim|vcomponentsRAMB16BWE_S36_S9|unisim|vcomponentsRAMB16BWE_S36|unisim|vcomponentsRAMB16BWE|unisim|vcomponentsRAMB16_S18_S18|unisim|vcomponentsRAMB16_S18_S36|unisim|vcomponentsRAMB16_S18|unisim|vcomponentsRAMB16_S1_S18|unisim|vcomponentsRAMB16_S1_S1|unisim|vcomponentsRAMB16_S1_S2|unisim|vcomponentsRAMB16_S1_S36|unisim|vcomponentsRAMB16_S1_S4|unisim|vcomponentsRAMB16_S1_S9|unisim|vcomponentsRAMB16_S1|unisim|vcomponentsRAMB16_S2_S18|unisim|vcomponentsRAMB16_S2_S2|unisim|vcomponentsRAMB16_S2_S36|unisim|vcomponentsRAMB16_S2_S4|unisim|vcomponentsRAMB16_S2_S9|unisim|vcomponentsRAMB16_S2|unisim|vcomponentsRAMB16_S36_S36|unisim|vcomponentsRAMB16_S36|unisim|vcomponentsRAMB16_S4_S18|unisim|vcomponentsRAMB16_S4_S36|unisim|vcomponentsRAMB16_S4_S4|unisim|vcomponentsRAMB16_S4_S9|unisim|vcomponentsRAMB16_S4|unisim|vcomponentsRAMB16_S9_S18|unisim|vcomponentsRAMB16_S9_S36|unisim|vcomponentsRAMB16_S9_S9|unisim|vcomponentsRAMB16_S9|unisim|vcomponentsRAMB16|unisim|vcomponentsRAMB18SDP|unisim|vcomponentsRAMB18|unisim|vcomponentsRAMB32_S64_ECC|unisim|vcomponentsRAMB36SDP_EXP|unisim|vcomponentsRAMB36SDP|unisim|vcomponentsRAMB36_EXP|unisim|vcomponentsRAMB36|unisim|vcomponentsRAMB4_S16_S16|unisim|vcomponentsRAMB4_S16|unisim|vcomponentsRAMB4_S1_S16|unisim|vcomponentsRAMB4_S1_S1|unisim|vcomponentsRAMB4_S1_S2|unisim|vcomponentsRAMB4_S1_S4|unisim|vcomponentsRAMB4_S1_S8|unisim|vcomponentsRAMB4_S1|unisim|vcomponentsRAMB4_S2_S16|unisim|vcomponentsRAMB4_S2_S2|unisim|vcomponentsRAMB4_S2_S4|unisim|vcomponentsRAMB4_S2_S8|unisim|vcomponentsRAMB4_S2|unisim|vcomponentsRAMB4_S4_S16|unisim|vcomponentsRAMB4_S4_S4|unisim|vcomponentsRAMB4_S4_S8|unisim|vcomponentsRAMB4_S4|unisim|vcomponentsRAMB4_S8_S16|unisim|vcomponentsRAMB4_S8_S8|unisim|vcomponentsRAMB4_S8|unisim|vcomponentsROCBUF|unisim|vcomponentsROC|unisim|vcomponentsROM128X1|unisim|vcomponentsROM16X1|unisim|vcomponentsROM256X1|unisim|vcomponentsROM32X1|unisim|vcomponentsROM64X1|unisim|vcomponentsSIM_CONFIG_S3A|unisim|vcomponentsSPI_ACCESS|unisim|vcomponentsSRL16E_1|unisim|vcomponentsSRL16E|unisim|vcomponentsSRL16_1|unisim|vcomponentsSRL16|unisim|vcomponentsSRLC16E_1|unisim|vcomponentsSRLC16E|unisim|vcomponentsSRLC16_1|unisim|vcomponentsSRLC16|unisim|vcomponentsSRLC32E|unisim|vcomponentsSTARTBUF_FPGACORE|unisim|vcomponentsSTARTBUF_SPARTAN2|unisim|vcomponentsSTARTBUF_SPARTAN3|unisim|vcomponentsSTARTBUF_VIRTEX2|unisim|vcomponentsSTARTBUF_VIRTEX4|unisim|vcomponentsSTARTBUF_VIRTEX|unisim|vcomponentsSTARTUP_FPGACORE|unisim|vcomponentsSTARTUP_SPARTAN2|unisim|vcomponentsSTARTUP_SPARTAN3A|unisim|vcomponentsSTARTUP_SPARTAN3E|unisim|vcomponentsSTARTUP_SPARTAN3|unisim|vcomponentsSTARTUP_VIRTEX2|unisim|vcomponentsSTARTUP_VIRTEX4|unisim|vcomponentsSTARTUP_VIRTEX5|unisim|vcomponentsSTARTUP_VIRTEX|unisim|vcomponentsSYSMON|unisim|vcomponentsTBLOCK|unisim|vcomponentsTEMAC|unisim|vcomponentsTIMEGRP|unisim|vcomponentsTIMESPEC|unisim|vcomponentsTOCBUF|unisim|vcomponentsTOC|unisim|vcomponentsUSR_ACCESS_VIRTEX4|unisim|vcomponentsUSR_ACCESS_VIRTEX5|unisim|vcomponentsVCC|unisim|vcomponentsWIREAND|unisim|vcomponentsXNOR2|unisim|vcomponentsXNOR3|unisim|vcomponentsXNOR4|unisim|vcomponentsXNOR5|unisim|vcomponentsXOR2|unisim|vcomponentsXOR3|unisim|vcomponentsXOR4|unisim|vcomponentsXOR5|unisim|vcomponentsXORCY_D|unisim|vcomponentsXORCY_L|unisim|vcomponentsXORCY|unisim|vcomponentsX_AND16|simprim|vcomponentsX_AND2|simprim|vcomponentsX_AND32|simprim|vcomponentsX_AND3|simprim|vcomponentsX_AND4|simprim|vcomponentsX_AND5|simprim|vcomponentsX_AND6|simprim|vcomponentsX_AND7|simprim|vcomponentsX_AND8|simprim|vcomponentsX_AND9|simprim|vcomponentsX_BPAD|simprim|vcomponentsX_BSCAN_FPGACORE|simprim|vcomponentsX_BSCAN_SPARTAN2|simprim|vcomponentsX_BSCAN_SPARTAN3A|simprim|vcomponentsX_BSCAN_SPARTAN3|simprim|vcomponentsX_BSCAN_VIRTEX2|simprim|vcomponentsX_BSCAN_VIRTEX4|simprim|vcomponentsX_BSCAN_VIRTEX5|simprim|vcomponentsX_BSCAN_VIRTEX|simprim|vcomponentsX_BUFGCTRL|simprim|vcomponentsX_BUFGMUX_1|simprim|vcomponentsX_BUFGMUX|simprim|vcomponentsX_BUFR|simprim|vcomponentsX_BUF|simprim|vcomponentsX_CARRY4|simprim|vcomponentsX_CKBUF|simprim|vcomponentsX_CLKDLLE|simprim|vcomponentsX_CLKDLL|simprim|vcomponentsX_CLK_DIV|simprim|vcomponentsX_CRC32|simprim|vcomponentsX_CRC64|simprim|vcomponentsX_DCM_ADV|simprim|vcomponentsX_DCM_SP|simprim|vcomponentsX_DCM|simprim|vcomponentsX_DNA_PORT|simprim|vcomponentsX_DSP48A|simprim|vcomponentsX_DSP48E|simprim|vcomponentsX_DSP48|simprim|vcomponentsX_EMAC|simprim|vcomponentsX_FDDRCPE|simprim|vcomponentsX_FDDRRSE|simprim|vcomponentsX_FDD|simprim|vcomponentsX_FF_CPLD|simprim|vcomponentsX_FF|simprim|vcomponentsX_FIFO16|simprim|vcomponentsX_FIFO18_36|simprim|vcomponentsX_FIFO18|simprim|vcomponentsX_FIFO36_72_EXP|simprim|vcomponentsX_FIFO36_EXP|simprim|vcomponentsX_GT10|simprim|vcomponentsX_GT11CLK|simprim|vcomponentsX_GT11|simprim|vcomponentsX_GTP_DUAL|simprim|vcomponentsX_GT|simprim|vcomponentsX_IBUFDS_DLY_ADJ|simprim|vcomponentsX_IBUFDS|simprim|vcomponentsX_IBUF_DLY_ADJ|simprim|vcomponentsX_IDDR2|simprim|vcomponentsX_IDDR_2CLK|simprim|vcomponentsX_IDDR|simprim|vcomponentsX_IDELAYCTRL|simprim|vcomponentsX_IDELAY|simprim|vcomponentsX_INV|simprim|vcomponentsX_IODELAY|simprim|vcomponentsX_IPAD|simprim|vcomponentsX_ISERDES_NODELAY|simprim|vcomponentsX_ISERDES|simprim|vcomponentsX_KEEPER|simprim|vcomponentsX_LATCHE|simprim|vcomponentsX_LATCH_CPLD|simprim|vcomponentsX_LATCH|simprim|vcomponentsX_LUT2|simprim|vcomponentsX_LUT3|simprim|vcomponentsX_LUT4|simprim|vcomponentsX_LUT5|simprim|vcomponentsX_LUT6_2|simprim|vcomponentsX_LUT6|simprim|vcomponentsX_LUT7|simprim|vcomponentsX_LUT8|simprim|vcomponentsX_MULT18X18SIO|simprim|vcomponentsX_MULT18X18S|simprim|vcomponentsX_MULT18X18|simprim|vcomponentsX_MUX2|simprim|vcomponentsX_OBUFDS|simprim|vcomponentsX_OBUFTDS|simprim|vcomponentsX_OBUFT|simprim|vcomponentsX_OBUF|simprim|vcomponentsX_ODDR2|simprim|vcomponentsX_ODDR|simprim|vcomponentsX_ONE|simprim|vcomponentsX_OPAD|simprim|vcomponentsX_OR16|simprim|vcomponentsX_OR2|simprim|vcomponentsX_OR32|simprim|vcomponentsX_OR3|simprim|vcomponentsX_OR4|simprim|vcomponentsX_OR5|simprim|vcomponentsX_OR6|simprim|vcomponentsX_OR7|simprim|vcomponentsX_OR8|simprim|vcomponentsX_OR9|simprim|vcomponentsX_OSERDES|simprim|vcomponentsX_PCIE_INTERNAL_1_1|simprim|vcomponentsX_PD|simprim|vcomponentsX_PLL_ADV|simprim|vcomponentsX_PMCD|simprim|vcomponentsX_PPC405_ADV|simprim|vcomponentsX_PPC405|simprim|vcomponentsX_PU|simprim|vcomponentsX_RAM32M|simprim|vcomponentsX_RAM64M|simprim|vcomponentsX_RAMB16BWER|simprim|vcomponentsX_RAMB16BWE|simprim|vcomponentsX_RAMB16_S18_S18|simprim|vcomponentsX_RAMB16_S18_S36|simprim|vcomponentsX_RAMB16_S18|simprim|vcomponentsX_RAMB16_S1_S18|simprim|vcomponentsX_RAMB16_S1_S1|simprim|vcomponentsX_RAMB16_S1_S2|simprim|vcomponentsX_RAMB16_S1_S36|simprim|vcomponentsX_RAMB16_S1_S4|simprim|vcomponentsX_RAMB16_S1_S9|simprim|vcomponentsX_RAMB16_S1|simprim|vcomponentsX_RAMB16_S2_S18|simprim|vcomponentsX_RAMB16_S2_S2|simprim|vcomponentsX_RAMB16_S2_S36|simprim|vcomponentsX_RAMB16_S2_S4|simprim|vcomponentsX_RAMB16_S2_S9|simprim|vcomponentsX_RAMB16_S2|simprim|vcomponentsX_RAMB16_S36_S36|simprim|vcomponentsX_RAMB16_S36|simprim|vcomponentsX_RAMB16_S4_S18|simprim|vcomponentsX_RAMB16_S4_S36|simprim|vcomponentsX_RAMB16_S4_S4|simprim|vcomponentsX_RAMB16_S4_S9|simprim|vcomponentsX_RAMB16_S4|simprim|vcomponentsX_RAMB16_S9_S18|simprim|vcomponentsX_RAMB16_S9_S36|simprim|vcomponentsX_RAMB16_S9_S9|simprim|vcomponentsX_RAMB16_S9|simprim|vcomponentsX_RAMB16|simprim|vcomponentsX_RAMB18SDP|simprim|vcomponentsX_RAMB18|simprim|vcomponentsX_RAMB36SDP_EXP|simprim|vcomponentsX_RAMB36_EXP|simprim|vcomponentsX_RAMB4_S16_S16|simprim|vcomponentsX_RAMB4_S16|simprim|vcomponentsX_RAMB4_S1_S16|simprim|vcomponentsX_RAMB4_S1_S1|simprim|vcomponentsX_RAMB4_S1_S2|simprim|vcomponentsX_RAMB4_S1_S4|simprim|vcomponentsX_RAMB4_S1_S8|simprim|vcomponentsX_RAMB4_S1|simprim|vcomponentsX_RAMB4_S2_S16|simprim|vcomponentsX_RAMB4_S2_S2|simprim|vcomponentsX_RAMB4_S2_S4|simprim|vcomponentsX_RAMB4_S2_S8|simprim|vcomponentsX_RAMB4_S2|simprim|vcomponentsX_RAMB4_S4_S16|simprim|vcomponentsX_RAMB4_S4_S4|simprim|vcomponentsX_RAMB4_S4_S8|simprim|vcomponentsX_RAMB4_S4|simprim|vcomponentsX_RAMB4_S8_S16|simprim|vcomponentsX_RAMB4_S8_S8|simprim|vcomponentsX_RAMB4_S8|simprim|vcomponentsX_RAMD128|simprim|vcomponentsX_RAMD16|simprim|vcomponentsX_RAMD32|simprim|vcomponentsX_RAMD64_ADV|simprim|vcomponentsX_RAMD64|simprim|vcomponentsX_RAMS128|simprim|vcomponentsX_RAMS16|simprim|vcomponentsX_RAMS256|simprim|vcomponentsX_RAMS32|simprim|vcomponentsX_RAMS64_ADV|simprim|vcomponentsX_RAMS64|simprim|vcomponentsX_ROCBUF|simprim|vcomponentsX_ROC|simprim|vcomponentsX_SFF|simprim|vcomponentsX_SIM_CONFIG_S3A|simprim|vcomponentsX_SPI_ACCESS|simprim|vcomponentsX_SRL16E|simprim|vcomponentsX_SRLC16E|simprim|vcomponentsX_SRLC32E|simprim|vcomponentsX_SUH|simprim|vcomponentsX_SYSMON|simprim|vcomponentsX_TEMAC|simprim|vcomponentsX_TOCBUF|simprim|vcomponentsX_TOC|simprim|vcomponentsX_TRI|simprim|vcomponentsX_UPAD|simprim|vcomponentsX_XOR16|simprim|vcomponentsX_XOR2|simprim|vcomponentsX_XOR32|simprim|vcomponentsX_XOR3|simprim|vcomponentsX_XOR4|simprim|vcomponentsX_XOR5|simprim|vcomponentsX_XOR6|simprim|vcomponentsX_XOR7|simprim|vcomponentsX_XOR8|simprim|vcomponentsX_ZERO|simprim|vcomponentsand2b1|unisim|vcomponentsand2b2|unisim|vcomponentsand2|unisim|vcomponentsand3b1|unisim|vcomponentsand3b2|unisim|vcomponentsand3b3|unisim|vcomponentsand3|unisim|vcomponentsand4b1|unisim|vcomponentsand4b2|unisim|vcomponentsand4b3|unisim|vcomponentsand4b4|unisim|vcomponentsand4|unisim|vcomponentsand5b1|unisim|vcomponentsand5b2|unisim|vcomponentsand5b3|unisim|vcomponentsand5b4|unisim|vcomponentsand5b5|unisim|vcomponentsand5|unisim|vcomponentsand6|unisim|vcomponentsand7|unisim|vcomponentsand8|unisim|vcomponentsbscan_fpgacore|unisim|vcomponentsbscan_spartan2|unisim|vcomponentsbscan_spartan3a|unisim|vcomponentsbscan_spartan3|unisim|vcomponentsbscan_virtex2|unisim|vcomponentsbscan_virtex4|unisim|vcomponentsbscan_virtex5|unisim|vcomponentsbscan_virtex|unisim|vcomponentsbufcf|unisim|vcomponentsbufe|unisim|vcomponentsbuffoe|unisim|vcomponentsbufgce_1|unisim|vcomponentsbufgce|unisim|vcomponentsbufgctrl|unisim|vcomponentsbufgdll|unisim|vcomponentsbufgmux_1|unisim|vcomponentsbufgmux_ctrl|unisim|vcomponentsbufgmux_virtex4|unisim|vcomponentsbufgmux|unisim|vcomponentsbufgp|unisim|vcomponentsbufgsr|unisim|vcomponentsbufgts|unisim|vcomponentsbufg|unisim|vcomponentsbufio|unisim|vcomponentsbufr|unisim|vcomponentsbuft|unisim|vcomponentsbuf|unisim|vcomponentscapture_fpgacore|unisim|vcomponentscapture_spartan2|unisim|vcomponentscapture_spartan3a|unisim|vcomponentscapture_spartan3|unisim|vcomponentscapture_virtex2|unisim|vcomponentscapture_virtex4|unisim|vcomponentscapture_virtex5|unisim|vcomponentscapture_virtex|unisim|vcomponentscarry4|unisim|vcomponentscfglut5|unisim|vcomponentsclk_div10rsd|unisim|vcomponentsclk_div10r|unisim|vcomponentsclk_div10sd|unisim|vcomponentsclk_div10|unisim|vcomponentsclk_div12rsd|unisim|vcomponentsclk_div12r|unisim|vcomponentsclk_div12sd|unisim|vcomponentsclk_div12|unisim|vcomponentsclk_div14rsd|unisim|vcomponentsclk_div14r|unisim|vcomponentsclk_div14sd|unisim|vcomponentsclk_div14|unisim|vcomponentsclk_div16rsd|unisim|vcomponentsclk_div16r|unisim|vcomponentsclk_div16sd|unisim|vcomponentsclk_div16|unisim|vcomponentsclk_div2rsd|unisim|vcomponentsclk_div2r|unisim|vcomponentsclk_div2sd|unisim|vcomponentsclk_div2|unisim|vcomponentsclk_div4rsd|unisim|vcomponentsclk_div4r|unisim|vcomponentsclk_div4sd|unisim|vcomponentsclk_div4|unisim|vcomponentsclk_div6rsd|unisim|vcomponentsclk_div6r|unisim|vcomponentsclk_div6sd|unisim|vcomponentsclk_div6|unisim|vcomponentsclk_div8rsd|unisim|vcomponentsclk_div8r|unisim|vcomponentsclk_div8sd|unisim|vcomponentsclk_div8|unisim|vcomponentsclkdlle|unisim|vcomponentsclkdllhf|unisim|vcomponentsclkdll|unisim|vcomponentsconfig|unisim|vcomponentscrc32|unisim|vcomponentscrc64|unisim|vcomponentsdcc_fpgacore|unisim|vcomponentsdcireset|unisim|vcomponentsdcm_adv|unisim|vcomponentsdcm_base|unisim|vcomponentsdcm_ps|unisim|vcomponentsdcm_sp|unisim|vcomponentsdcm|unisim|vcomponentsdna_port|unisim|vcomponentsdsp48a|unisim|vcomponentsdsp48e|unisim|vcomponentsdsp48|unisim|vcomponentsemac|unisim|vcomponentsfd_1|unisim|vcomponentsfdc_1|unisim|vcomponentsfdce_1|unisim|vcomponentsfdce|unisim|vcomponentsfdcp_1|unisim|vcomponentsfdcpe_1|unisim|vcomponentsfdcpe|unisim|vcomponentsfdcpx1|unisim|vcomponentsfdcp|unisim|vcomponentsfdc|unisim|vcomponentsfddce|unisim|vcomponentsfddcpe|unisim|vcomponentsfddcp|unisim|vcomponentsfddc|unisim|vcomponentsfddpe|unisim|vcomponentsfddp|unisim|vcomponentsfddrcpe|unisim|vcomponentsfddrrse|unisim|vcomponentsfdd|unisim|vcomponentsfde_1|unisim|vcomponentsfde|unisim|vcomponentsfdp_1|unisim|vcomponentsfdpe_1|unisim|vcomponentsfdpe|unisim|vcomponentsfdp|unisim|vcomponentsfdr_1|unisim|vcomponentsfdre_1|unisim|vcomponentsfdre|unisim|vcomponentsfdrs_1|unisim|vcomponentsfdrse_1|unisim|vcomponentsfdrse|unisim|vcomponentsfdrs|unisim|vcomponentsfdr|unisim|vcomponentsfds_1|unisim|vcomponentsfdse_1|unisim|vcomponentsfdse|unisim|vcomponentsfds|unisim|vcomponentsfd|unisim|vcomponentsfifo16|unisim|vcomponentsfifo18_36|unisim|vcomponentsfifo18|unisim|vcomponentsfifo36_72_exp|unisim|vcomponentsfifo36_72|unisim|vcomponentsfifo36_exp|unisim|vcomponentsfifo36|unisim|vcomponentsfmap|unisim|vcomponentsframe_ecc_virtex4|unisim|vcomponentsframe_ecc_virtex5|unisim|vcomponentsftcp|unisim|vcomponentsftc|unisim|vcomponentsftp|unisim|vcomponentsgnd|unisim|vcomponentsgt10_10ge_4|unisim|vcomponentsgt10_10ge_8|unisim|vcomponentsgt10_10gfc_4|unisim|vcomponentsgt10_10gfc_8|unisim|vcomponentsgt10_aurora_1|unisim|vcomponentsgt10_aurora_2|unisim|vcomponentsgt10_aurora_4|unisim|vcomponentsgt10_aurorax_4|unisim|vcomponentsgt10_aurorax_8|unisim|vcomponentsgt10_custom|unisim|vcomponentsgt10_infiniband_1|unisim|vcomponentsgt10_infiniband_2|unisim|vcomponentsgt10_infiniband_4|unisim|vcomponentsgt10_oc192_4|unisim|vcomponentsgt10_oc192_8|unisim|vcomponentsgt10_oc48_1|unisim|vcomponentsgt10_oc48_2|unisim|vcomponentsgt10_oc48_4|unisim|vcomponentsgt10_pci_express_1|unisim|vcomponentsgt10_pci_express_2|unisim|vcomponentsgt10_pci_express_4|unisim|vcomponentsgt10_xaui_1|unisim|vcomponentsgt10_xaui_2|unisim|vcomponentsgt10_xaui_4|unisim|vcomponentsgt10|unisim|vcomponentsgt11_custom|unisim|vcomponentsgt11_dual|unisim|vcomponentsgt11clk_mgt|unisim|vcomponentsgt11clk|unisim|vcomponentsgt11|unisim|vcomponentsgt_aurora_1|unisim|vcomponentsgt_aurora_2|unisim|vcomponentsgt_aurora_4|unisim|vcomponentsgt_custom|unisim|vcomponentsgt_ethernet_1|unisim|vcomponentsgt_ethernet_2|unisim|vcomponentsgt_ethernet_4|unisim|vcomponentsgt_fibre_chan_1|unisim|vcomponentsgt_fibre_chan_2|unisim|vcomponentsgt_fibre_chan_4|unisim|vcomponentsgt_infiniband_1|unisim|vcomponentsgt_infiniband_2|unisim|vcomponentsgt_infiniband_4|unisim|vcomponentsgt_xaui_1|unisim|vcomponentsgt_xaui_2|unisim|vcomponentsgt_xaui_4|unisim|vcomponentsgtp_dual|unisim|vcomponentsgt|unisim|vcomponentsibuf_agp|unisim|vcomponentsibuf_ctt|unisim|vcomponentsibuf_dly_adj|unisim|vcomponentsibuf_gtl_dci|unisim|vcomponentsibuf_gtlp_dci|unisim|vcomponentsibuf_gtlp|unisim|vcomponentsibuf_gtl|unisim|vcomponentsibuf_hstl_i_18|unisim|vcomponentsibuf_hstl_i_dci_18|unisim|vcomponentsibuf_hstl_i_dci|unisim|vcomponentsibuf_hstl_ii_18|unisim|vcomponentsibuf_hstl_ii_dci_18|unisim|vcomponentsibuf_hstl_ii_dci|unisim|vcomponentsibuf_hstl_iii_18|unisim|vcomponentsibuf_hstl_iii_dci_18|unisim|vcomponentsibuf_hstl_iii_dci|unisim|vcomponentsibuf_hstl_iii|unisim|vcomponentsibuf_hstl_ii|unisim|vcomponentsibuf_hstl_iv_18|unisim|vcomponentsibuf_hstl_iv_dci_18|unisim|vcomponentsibuf_hstl_iv_dci|unisim|vcomponentsibuf_hstl_iv|unisim|vcomponentsibuf_hstl_i|unisim|vcomponentsibuf_lvcmos12|unisim|vcomponentsibuf_lvcmos15|unisim|vcomponentsibuf_lvcmos18|unisim|vcomponentsibuf_lvcmos25|unisim|vcomponentsibuf_lvcmos2|unisim|vcomponentsibuf_lvcmos33|unisim|vcomponentsibuf_lvdci_15|unisim|vcomponentsibuf_lvdci_18|unisim|vcomponentsibuf_lvdci_25|unisim|vcomponentsibuf_lvdci_33|unisim|vcomponentsibuf_lvdci_dv2_15|unisim|vcomponentsibuf_lvdci_dv2_18|unisim|vcomponentsibuf_lvdci_dv2_25|unisim|vcomponentsibuf_lvdci_dv2_33|unisim|vcomponentsibuf_lvds|unisim|vcomponentsibuf_lvpecl|unisim|vcomponentsibuf_lvttl|unisim|vcomponentsibuf_pci33_3|unisim|vcomponentsibuf_pci33_5|unisim|vcomponentsibuf_pci66_3|unisim|vcomponentsibuf_pcix66_3|unisim|vcomponentsibuf_pcix|unisim|vcomponentsibuf_sstl18_i_dci|unisim|vcomponentsibuf_sstl18_ii_dci|unisim|vcomponentsibuf_sstl18_ii|unisim|vcomponentsibuf_sstl18_i|unisim|vcomponentsibuf_sstl2_i_dci|unisim|vcomponentsibuf_sstl2_ii_dci|unisim|vcomponentsibuf_sstl2_ii|unisim|vcomponentsibuf_sstl2_i|unisim|vcomponentsibuf_sstl3_i_dci|unisim|vcomponentsibuf_sstl3_ii_dci|unisim|vcomponentsibuf_sstl3_ii|unisim|vcomponentsibuf_sstl3_i|unisim|vcomponentsibufds_blvds_25|unisim|vcomponentsibufds_diff_out|unisim|vcomponentsibufds_dly_adj|unisim|vcomponentsibufds_ldt_25|unisim|vcomponentsibufds_lvds_25_dci|unisim|vcomponentsibufds_lvds_25|unisim|vcomponentsibufds_lvds_33_dci|unisim|vcomponentsibufds_lvds_33|unisim|vcomponentsibufds_lvdsext_25_dci|unisim|vcomponentsibufds_lvdsext_25|unisim|vcomponentsibufds_lvdsext_33_dci|unisim|vcomponentsibufds_lvdsext_33|unisim|vcomponentsibufds_lvpecl_25|unisim|vcomponentsibufds_lvpecl_33|unisim|vcomponentsibufds_ulvds_25|unisim|vcomponentsibufds|unisim|vcomponentsibufg_agp|unisim|vcomponentsibufg_ctt|unisim|vcomponentsibufg_gtl_dci|unisim|vcomponentsibufg_gtlp_dci|unisim|vcomponentsibufg_gtlp|unisim|vcomponentsibufg_gtl|unisim|vcomponentsibufg_hstl_i_18|unisim|vcomponentsibufg_hstl_i_dci_18|unisim|vcomponentsibufg_hstl_i_dci|unisim|vcomponentsibufg_hstl_ii_18|unisim|vcomponentsibufg_hstl_ii_dci_18|unisim|vcomponentsibufg_hstl_ii_dci|unisim|vcomponentsibufg_hstl_iii_18|unisim|vcomponentsibufg_hstl_iii_dci_18|unisim|vcomponentsibufg_hstl_iii_dci|unisim|vcomponentsibufg_hstl_iii|unisim|vcomponentsibufg_hstl_ii|unisim|vcomponentsibufg_hstl_iv_18|unisim|vcomponentsibufg_hstl_iv_dci_18|unisim|vcomponentsibufg_hstl_iv_dci|unisim|vcomponentsibufg_hstl_iv|unisim|vcomponentsibufg_hstl_i|unisim|vcomponentsibufg_lvcmos12|unisim|vcomponentsibufg_lvcmos15|unisim|vcomponentsibufg_lvcmos18|unisim|vcomponentsibufg_lvcmos25|unisim|vcomponentsibufg_lvcmos2|unisim|vcomponentsibufg_lvcmos33|unisim|vcomponentsibufg_lvdci_15|unisim|vcomponentsibufg_lvdci_18|unisim|vcomponentsibufg_lvdci_25|unisim|vcomponentsibufg_lvdci_33|unisim|vcomponentsibufg_lvdci_dv2_15|unisim|vcomponentsibufg_lvdci_dv2_18|unisim|vcomponentsibufg_lvdci_dv2_25|unisim|vcomponentsibufg_lvdci_dv2_33|unisim|vcomponentsibufg_lvds|unisim|vcomponentsibufg_lvpecl|unisim|vcomponentsibufg_lvttl|unisim|vcomponentsibufg_pci33_3|unisim|vcomponentsibufg_pci33_5|unisim|vcomponentsibufg_pci66_3|unisim|vcomponentsibufg_pcix66_3|unisim|vcomponentsibufg_pcix|unisim|vcomponentsibufg_sstl18_i_dci|unisim|vcomponentsibufg_sstl18_ii_dci|unisim|vcomponentsibufg_sstl18_ii|unisim|vcomponentsibufg_sstl18_i|unisim|vcomponentsibufg_sstl2_i_dci|unisim|vcomponentsibufg_sstl2_ii_dci|unisim|vcomponentsibufg_sstl2_ii|unisim|vcomponentsibufg_sstl2_i|unisim|vcomponentsibufg_sstl3_i_dci|unisim|vcomponentsibufg_sstl3_ii_dci|unisim|vcomponentsibufg_sstl3_ii|unisim|vcomponentsibufg_sstl3_i|unisim|vcomponentsibufgds_blvds_25|unisim|vcomponentsibufgds_diff_out|unisim|vcomponentsibufgds_ldt_25|unisim|vcomponentsibufgds_lvds_25_dci|unisim|vcomponentsibufgds_lvds_25|unisim|vcomponentsibufgds_lvds_33_dci|unisim|vcomponentsibufgds_lvds_33|unisim|vcomponentsibufgds_lvdsext_25_dci|unisim|vcomponentsibufgds_lvdsext_25|unisim|vcomponentsibufgds_lvdsext_33_dci|unisim|vcomponentsibufgds_lvdsext_33|unisim|vcomponentsibufgds_lvpecl_25|unisim|vcomponentsibufgds_lvpecl_33|unisim|vcomponentsibufgds_ulvds_25|unisim|vcomponentsibufgds|unisim|vcomponentsibufg|unisim|vcomponentsibuf|unisim|vcomponentsicap_spartan3a|unisim|vcomponentsicap_virtex2|unisim|vcomponentsicap_virtex4|unisim|vcomponentsicap_virtex5|unisim|vcomponentsiddr2|unisim|vcomponentsiddr_2clk|unisim|vcomponentsiddr|unisim|vcomponentsidelayctrl|unisim|vcomponentsidelay|unisim|vcomponentsifddrcpe|unisim|vcomponentsifddrrse|unisim|vcomponentsild|unisim|vcomponentsinv|unisim|vcomponentsiobuf_agp|unisim|vcomponentsiobuf_ctt|unisim|vcomponentsiobuf_f_12|unisim|vcomponentsiobuf_f_16|unisim|vcomponentsiobuf_f_24|unisim|vcomponentsiobuf_f_2|unisim|vcomponentsiobuf_f_4|unisim|vcomponentsiobuf_f_6|unisim|vcomponentsiobuf_f_8|unisim|vcomponentsiobuf_gtl_dci|unisim|vcomponentsiobuf_gtlp_dci|unisim|vcomponentsiobuf_gtlp|unisim|vcomponentsiobuf_gtl|unisim|vcomponentsiobuf_hstl_i_18|unisim|vcomponentsiobuf_hstl_ii_18|unisim|vcomponentsiobuf_hstl_ii_dci_18|unisim|vcomponentsiobuf_hstl_ii_dci|unisim|vcomponentsiobuf_hstl_iii_18|unisim|vcomponentsiobuf_hstl_iii|unisim|vcomponentsiobuf_hstl_ii|unisim|vcomponentsiobuf_hstl_iv_18|unisim|vcomponentsiobuf_hstl_iv_dci_18|unisim|vcomponentsiobuf_hstl_iv_dci|unisim|vcomponentsiobuf_hstl_iv|unisim|vcomponentsiobuf_hstl_i|unisim|vcomponentsiobuf_lvcmos12_f_2|unisim|vcomponentsiobuf_lvcmos12_f_4|unisim|vcomponentsiobuf_lvcmos12_f_6|unisim|vcomponentsiobuf_lvcmos12_f_8|unisim|vcomponentsiobuf_lvcmos12_s_2|unisim|vcomponentsiobuf_lvcmos12_s_4|unisim|vcomponentsiobuf_lvcmos12_s_6|unisim|vcomponentsiobuf_lvcmos12_s_8|unisim|vcomponentsiobuf_lvcmos12|unisim|vcomponentsiobuf_lvcmos15_f_12|unisim|vcomponentsiobuf_lvcmos15_f_16|unisim|vcomponentsiobuf_lvcmos15_f_2|unisim|vcomponentsiobuf_lvcmos15_f_4|unisim|vcomponentsiobuf_lvcmos15_f_6|unisim|vcomponentsiobuf_lvcmos15_f_8|unisim|vcomponentsiobuf_lvcmos15_s_12|unisim|vcomponentsiobuf_lvcmos15_s_16|unisim|vcomponentsiobuf_lvcmos15_s_2|unisim|vcomponentsiobuf_lvcmos15_s_4|unisim|vcomponentsiobuf_lvcmos15_s_6|unisim|vcomponentsiobuf_lvcmos15_s_8|unisim|vcomponentsiobuf_lvcmos15|unisim|vcomponentsiobuf_lvcmos18_f_12|unisim|vcomponentsiobuf_lvcmos18_f_16|unisim|vcomponentsiobuf_lvcmos18_f_2|unisim|vcomponentsiobuf_lvcmos18_f_4|unisim|vcomponentsiobuf_lvcmos18_f_6|unisim|vcomponentsiobuf_lvcmos18_f_8|unisim|vcomponentsiobuf_lvcmos18_s_12|unisim|vcomponentsiobuf_lvcmos18_s_16|unisim|vcomponentsiobuf_lvcmos18_s_2|unisim|vcomponentsiobuf_lvcmos18_s_4|unisim|vcomponentsiobuf_lvcmos18_s_6|unisim|vcomponentsiobuf_lvcmos18_s_8|unisim|vcomponentsiobuf_lvcmos18|unisim|vcomponentsiobuf_lvcmos25_f_12|unisim|vcomponentsiobuf_lvcmos25_f_16|unisim|vcomponentsiobuf_lvcmos25_f_24|unisim|vcomponentsiobuf_lvcmos25_f_2|unisim|vcomponentsiobuf_lvcmos25_f_4|unisim|vcomponentsiobuf_lvcmos25_f_6|unisim|vcomponentsiobuf_lvcmos25_f_8|unisim|vcomponentsiobuf_lvcmos25_s_12|unisim|vcomponentsiobuf_lvcmos25_s_16|unisim|vcomponentsiobuf_lvcmos25_s_24|unisim|vcomponentsiobuf_lvcmos25_s_2|unisim|vcomponentsiobuf_lvcmos25_s_4|unisim|vcomponentsiobuf_lvcmos25_s_6|unisim|vcomponentsiobuf_lvcmos25_s_8|unisim|vcomponentsiobuf_lvcmos25|unisim|vcomponentsiobuf_lvcmos2|unisim|vcomponentsiobuf_lvcmos33_f_12|unisim|vcomponentsiobuf_lvcmos33_f_16|unisim|vcomponentsiobuf_lvcmos33_f_24|unisim|vcomponentsiobuf_lvcmos33_f_2|unisim|vcomponentsiobuf_lvcmos33_f_4|unisim|vcomponentsiobuf_lvcmos33_f_6|unisim|vcomponentsiobuf_lvcmos33_f_8|unisim|vcomponentsiobuf_lvcmos33_s_12|unisim|vcomponentsiobuf_lvcmos33_s_16|unisim|vcomponentsiobuf_lvcmos33_s_24|unisim|vcomponentsiobuf_lvcmos33_s_2|unisim|vcomponentsiobuf_lvcmos33_s_4|unisim|vcomponentsiobuf_lvcmos33_s_6|unisim|vcomponentsiobuf_lvcmos33_s_8|unisim|vcomponentsiobuf_lvcmos33|unisim|vcomponentsiobuf_lvdci_15|unisim|vcomponentsiobuf_lvdci_18|unisim|vcomponentsiobuf_lvdci_25|unisim|vcomponentsiobuf_lvdci_33|unisim|vcomponentsiobuf_lvdci_dv2_15|unisim|vcomponentsiobuf_lvdci_dv2_18|unisim|vcomponentsiobuf_lvdci_dv2_25|unisim|vcomponentsiobuf_lvdci_dv2_33|unisim|vcomponentsiobuf_lvds|unisim|vcomponentsiobuf_lvpecl|unisim|vcomponentsiobuf_lvttl_f_12|unisim|vcomponentsiobuf_lvttl_f_16|unisim|vcomponentsiobuf_lvttl_f_24|unisim|vcomponentsiobuf_lvttl_f_2|unisim|vcomponentsiobuf_lvttl_f_4|unisim|vcomponentsiobuf_lvttl_f_6|unisim|vcomponentsiobuf_lvttl_f_8|unisim|vcomponentsiobuf_lvttl_s_12|unisim|vcomponentsiobuf_lvttl_s_16|unisim|vcomponentsiobuf_lvttl_s_24|unisim|vcomponentsiobuf_lvttl_s_2|unisim|vcomponentsiobuf_lvttl_s_4|unisim|vcomponentsiobuf_lvttl_s_6|unisim|vcomponentsiobuf_lvttl_s_8|unisim|vcomponentsiobuf_lvttl|unisim|vcomponentsiobuf_pci33_3|unisim|vcomponentsiobuf_pci33_5|unisim|vcomponentsiobuf_pci66_3|unisim|vcomponentsiobuf_pcix66_3|unisim|vcomponentsiobuf_pcix|unisim|vcomponentsiobuf_s_12|unisim|vcomponentsiobuf_s_16|unisim|vcomponentsiobuf_s_24|unisim|vcomponentsiobuf_s_2|unisim|vcomponentsiobuf_s_4|unisim|vcomponentsiobuf_s_6|unisim|vcomponentsiobuf_s_8|unisim|vcomponentsiobuf_sstl18_ii_dci|unisim|vcomponentsiobuf_sstl18_ii|unisim|vcomponentsiobuf_sstl18_i|unisim|vcomponentsiobuf_sstl2_ii_dci|unisim|vcomponentsiobuf_sstl2_ii|unisim|vcomponentsiobuf_sstl2_i|unisim|vcomponentsiobuf_sstl3_ii_dci|unisim|vcomponentsiobuf_sstl3_ii|unisim|vcomponentsiobuf_sstl3_i|unisim|vcomponentsiobufds_blvds_25|unisim|vcomponentsiobufds|unisim|vcomponentsiobufe_f|unisim|vcomponentsiobufe_s|unisim|vcomponentsiobufe|unisim|vcomponentsiobuf|unisim|vcomponentsiodelay|unisim|vcomponentsiserdes_nodelay|unisim|vcomponentsiserdes|unisim|vcomponentsjtag_sim_spartan3a|unisim|vcomponentsjtag_sim_virtex4|unisim|vcomponentsjtag_sim_virtex5|unisim|vcomponentsjtagppc|unisim|vcomponentskeeper|unisim|vcomponentskeep|unisim|vcomponentskey_clear|unisim|vcomponentsld_1|unisim|vcomponentsldc_1|unisim|vcomponentsldce_1|unisim|vcomponentsldce|unisim|vcomponentsldcp_1|unisim|vcomponentsldcpe_1|unisim|vcomponentsldcpe|unisim|vcomponentsldcp|unisim|vcomponentsldc|unisim|vcomponentslde_1|unisim|vcomponentslde|unisim|vcomponentsldg|unisim|vcomponentsldp_1|unisim|vcomponentsldpe_1|unisim|vcomponentsldpe|unisim|vcomponentsldp|unisim|vcomponentsld|unisim|vcomponentslut1_d|unisim|vcomponentslut1_l|unisim|vcomponentslut1|unisim|vcomponentslut2_d|unisim|vcomponentslut2_l|unisim|vcomponentslut2|unisim|vcomponentslut3_d|unisim|vcomponentslut3_l|unisim|vcomponentslut3|unisim|vcomponentslut4_d|unisim|vcomponentslut4_l|unisim|vcomponentslut4|unisim|vcomponentslut5_d|unisim|vcomponentslut5_l|unisim|vcomponentslut5|unisim|vcomponentslut6_2|unisim|vcomponentslut6_d|unisim|vcomponentslut6_l|unisim|vcomponentslut6|unisim|vcomponentsmerge|unisim|vcomponentsmin_off|unisim|vcomponentsmult18x18sio|unisim|vcomponentsmult18x18s|unisim|vcomponentsmult18x18|unisim|vcomponentsmult_and|unisim|vcomponentsmuxcy_d|unisim|vcomponentsmuxcy_l|unisim|vcomponentsmuxcy|unisim|vcomponentsmuxf5_d|unisim|vcomponentsmuxf5_l|unisim|vcomponentsmuxf5|unisim|vcomponentsmuxf6_d|unisim|vcomponentsmuxf6_l|unisim|vcomponentsmuxf6|unisim|vcomponentsmuxf7_d|unisim|vcomponentsmuxf7_l|unisim|vcomponentsmuxf7|unisim|vcomponentsmuxf8_d|unisim|vcomponentsmuxf8_l|unisim|vcomponentsmuxf8|unisim|vcomponentsnand2b1|unisim|vcomponentsnand2b2|unisim|vcomponentsnand2|unisim|vcomponentsnand3b1|unisim|vcomponentsnand3b2|unisim|vcomponentsnand3b3|unisim|vcomponentsnand3|unisim|vcomponentsnand4b1|unisim|vcomponentsnand4b2|unisim|vcomponentsnand4b3|unisim|vcomponentsnand4b4|unisim|vcomponentsnand4|unisim|vcomponentsnand5b1|unisim|vcomponentsnand5b2|unisim|vcomponentsnand5b3|unisim|vcomponentsnand5b4|unisim|vcomponentsnand5b5|unisim|vcomponentsnand5|unisim|vcomponentsnor2b1|unisim|vcomponentsnor2b2|unisim|vcomponentsnor2|unisim|vcomponentsnor3b1|unisim|vcomponentsnor3b2|unisim|vcomponentsnor3b3|unisim|vcomponentsnor3|unisim|vcomponentsnor4b1|unisim|vcomponentsnor4b2|unisim|vcomponentsnor4b3|unisim|vcomponentsnor4b4|unisim|vcomponentsnor4|unisim|vcomponentsnor5b1|unisim|vcomponentsnor5b2|unisim|vcomponentsnor5b3|unisim|vcomponentsnor5b4|unisim|vcomponentsnor5b5|unisim|vcomponentsnor5|unisim|vcomponentsobuf_agp|unisim|vcomponentsobuf_ctt|unisim|vcomponentsobuf_f_12|unisim|vcomponentsobuf_f_16|unisim|vcomponentsobuf_f_24|unisim|vcomponentsobuf_f_2|unisim|vcomponentsobuf_f_4|unisim|vcomponentsobuf_f_6|unisim|vcomponentsobuf_f_8|unisim|vcomponentsobuf_gtl_dci|unisim|vcomponentsobuf_gtlp_dci|unisim|vcomponentsobuf_gtlp|unisim|vcomponentsobuf_gtl|unisim|vcomponentsobuf_hstl_i_18|unisim|vcomponentsobuf_hstl_i_dci_18|unisim|vcomponentsobuf_hstl_i_dci|unisim|vcomponentsobuf_hstl_ii_18|unisim|vcomponentsobuf_hstl_ii_dci_18|unisim|vcomponentsobuf_hstl_ii_dci|unisim|vcomponentsobuf_hstl_iii_18|unisim|vcomponentsobuf_hstl_iii_dci_18|unisim|vcomponentsobuf_hstl_iii_dci|unisim|vcomponentsobuf_hstl_iii|unisim|vcomponentsobuf_hstl_ii|unisim|vcomponentsobuf_hstl_iv_18|unisim|vcomponentsobuf_hstl_iv_dci_18|unisim|vcomponentsobuf_hstl_iv_dci|unisim|vcomponentsobuf_hstl_iv|unisim|vcomponentsobuf_hstl_i|unisim|vcomponentsobuf_lvcmos12_f_2|unisim|vcomponentsobuf_lvcmos12_f_4|unisim|vcomponentsobuf_lvcmos12_f_6|unisim|vcomponentsobuf_lvcmos12_f_8|unisim|vcomponentsobuf_lvcmos12_s_2|unisim|vcomponentsobuf_lvcmos12_s_4|unisim|vcomponentsobuf_lvcmos12_s_6|unisim|vcomponentsobuf_lvcmos12_s_8|unisim|vcomponentsobuf_lvcmos12|unisim|vcomponentsobuf_lvcmos15_f_12|unisim|vcomponentsobuf_lvcmos15_f_16|unisim|vcomponentsobuf_lvcmos15_f_2|unisim|vcomponentsobuf_lvcmos15_f_4|unisim|vcomponentsobuf_lvcmos15_f_6|unisim|vcomponentsobuf_lvcmos15_f_8|unisim|vcomponentsobuf_lvcmos15_s_12|unisim|vcomponentsobuf_lvcmos15_s_16|unisim|vcomponentsobuf_lvcmos15_s_2|unisim|vcomponentsobuf_lvcmos15_s_4|unisim|vcomponentsobuf_lvcmos15_s_6|unisim|vcomponentsobuf_lvcmos15_s_8|unisim|vcomponentsobuf_lvcmos15|unisim|vcomponentsobuf_lvcmos18_f_12|unisim|vcomponentsobuf_lvcmos18_f_16|unisim|vcomponentsobuf_lvcmos18_f_2|unisim|vcomponentsobuf_lvcmos18_f_4|unisim|vcomponentsobuf_lvcmos18_f_6|unisim|vcomponentsobuf_lvcmos18_f_8|unisim|vcomponentsobuf_lvcmos18_s_12|unisim|vcomponentsobuf_lvcmos18_s_16|unisim|vcomponentsobuf_lvcmos18_s_2|unisim|vcomponentsobuf_lvcmos18_s_4|unisim|vcomponentsobuf_lvcmos18_s_6|unisim|vcomponentsobuf_lvcmos18_s_8|unisim|vcomponentsobuf_lvcmos18|unisim|vcomponentsobuf_lvcmos25_f_12|unisim|vcomponentsobuf_lvcmos25_f_16|unisim|vcomponentsobuf_lvcmos25_f_24|unisim|vcomponentsobuf_lvcmos25_f_2|unisim|vcomponentsobuf_lvcmos25_f_4|unisim|vcomponentsobuf_lvcmos25_f_6|unisim|vcomponentsobuf_lvcmos25_f_8|unisim|vcomponentsobuf_lvcmos25_s_12|unisim|vcomponentsobuf_lvcmos25_s_16|unisim|vcomponentsobuf_lvcmos25_s_24|unisim|vcomponentsobuf_lvcmos25_s_2|unisim|vcomponentsobuf_lvcmos25_s_4|unisim|vcomponentsobuf_lvcmos25_s_6|unisim|vcomponentsobuf_lvcmos25_s_8|unisim|vcomponentsobuf_lvcmos25|unisim|vcomponentsobuf_lvcmos2|unisim|vcomponentsobuf_lvcmos33_f_12|unisim|vcomponentsobuf_lvcmos33_f_16|unisim|vcomponentsobuf_lvcmos33_f_24|unisim|vcomponentsobuf_lvcmos33_f_2|unisim|vcomponentsobuf_lvcmos33_f_4|unisim|vcomponentsobuf_lvcmos33_f_6|unisim|vcomponentsobuf_lvcmos33_f_8|unisim|vcomponentsobuf_lvcmos33_s_12|unisim|vcomponentsobuf_lvcmos33_s_16|unisim|vcomponentsobuf_lvcmos33_s_24|unisim|vcomponentsobuf_lvcmos33_s_2|unisim|vcomponentsobuf_lvcmos33_s_4|unisim|vcomponentsobuf_lvcmos33_s_6|unisim|vcomponentsobuf_lvcmos33_s_8|unisim|vcomponentsobuf_lvcmos33|unisim|vcomponentsobuf_lvdci_15|unisim|vcomponentsobuf_lvdci_18|unisim|vcomponentsobuf_lvdci_25|unisim|vcomponentsobuf_lvdci_33|unisim|vcomponentsobuf_lvdci_dv2_15|unisim|vcomponentsobuf_lvdci_dv2_18|unisim|vcomponentsobuf_lvdci_dv2_25|unisim|vcomponentsobuf_lvdci_dv2_33|unisim|vcomponentsobuf_lvds|unisim|vcomponentsobuf_lvpecl|unisim|vcomponentsobuf_lvttl_f_12|unisim|vcomponentsobuf_lvttl_f_16|unisim|vcomponentsobuf_lvttl_f_24|unisim|vcomponentsobuf_lvttl_f_2|unisim|vcomponentsobuf_lvttl_f_4|unisim|vcomponentsobuf_lvttl_f_6|unisim|vcomponentsobuf_lvttl_f_8|unisim|vcomponentsobuf_lvttl_s_12|unisim|vcomponentsobuf_lvttl_s_16|unisim|vcomponentsobuf_lvttl_s_24|unisim|vcomponentsobuf_lvttl_s_2|unisim|vcomponentsobuf_lvttl_s_4|unisim|vcomponentsobuf_lvttl_s_6|unisim|vcomponentsobuf_lvttl_s_8|unisim|vcomponentsobuf_lvttl|unisim|vcomponentsobuf_pci33_3|unisim|vcomponentsobuf_pci33_5|unisim|vcomponentsobuf_pci66_3|unisim|vcomponentsobuf_pcix66_3|unisim|vcomponentsobuf_pcix|unisim|vcomponentsobuf_s_12|unisim|vcomponentsobuf_s_16|unisim|vcomponentsobuf_s_24|unisim|vcomponentsobuf_s_2|unisim|vcomponentsobuf_s_4|unisim|vcomponentsobuf_s_6|unisim|vcomponentsobuf_s_8|unisim|vcomponentsobuf_sstl18_i_dci|unisim|vcomponentsobuf_sstl18_ii_dci|unisim|vcomponentsobuf_sstl18_ii|unisim|vcomponentsobuf_sstl18_i|unisim|vcomponentsobuf_sstl2_i_dci|unisim|vcomponentsobuf_sstl2_ii_dci|unisim|vcomponentsobuf_sstl2_ii|unisim|vcomponentsobuf_sstl2_i|unisim|vcomponentsobuf_sstl3_i_dci|unisim|vcomponentsobuf_sstl3_ii_dci|unisim|vcomponentsobuf_sstl3_ii|unisim|vcomponentsobuf_sstl3_i|unisim|vcomponentsobufds_blvds_25|unisim|vcomponentsobufds_ldt_25|unisim|vcomponentsobufds_lvds_25|unisim|vcomponentsobufds_lvds_33|unisim|vcomponentsobufds_lvdsext_25|unisim|vcomponentsobufds_lvdsext_33|unisim|vcomponentsobufds_lvpecl_25|unisim|vcomponentsobufds_lvpecl_33|unisim|vcomponentsobufds_ulvds_25|unisim|vcomponentsobufds|unisim|vcomponentsobufe|unisim|vcomponentsobuft_agp|unisim|vcomponentsobuft_ctt|unisim|vcomponentsobuft_f_12|unisim|vcomponentsobuft_f_16|unisim|vcomponentsobuft_f_24|unisim|vcomponentsobuft_f_2|unisim|vcomponentsobuft_f_4|unisim|vcomponentsobuft_f_6|unisim|vcomponentsobuft_f_8|unisim|vcomponentsobuft_gtl_dci|unisim|vcomponentsobuft_gtlp_dci|unisim|vcomponentsobuft_gtlp|unisim|vcomponentsobuft_gtl|unisim|vcomponentsobuft_hstl_i_18|unisim|vcomponentsobuft_hstl_i_dci_18|unisim|vcomponentsobuft_hstl_i_dci|unisim|vcomponentsobuft_hstl_ii_18|unisim|vcomponentsobuft_hstl_ii_dci_18|unisim|vcomponentsobuft_hstl_ii_dci|unisim|vcomponentsobuft_hstl_iii_18|unisim|vcomponentsobuft_hstl_iii_dci_18|unisim|vcomponentsobuft_hstl_iii_dci|unisim|vcomponentsobuft_hstl_iii|unisim|vcomponentsobuft_hstl_ii|unisim|vcomponentsobuft_hstl_iv_18|unisim|vcomponentsobuft_hstl_iv_dci_18|unisim|vcomponentsobuft_hstl_iv_dci|unisim|vcomponentsobuft_hstl_iv|unisim|vcomponentsobuft_hstl_i|unisim|vcomponentsobuft_lvcmos12_f_2|unisim|vcomponentsobuft_lvcmos12_f_4|unisim|vcomponentsobuft_lvcmos12_f_6|unisim|vcomponentsobuft_lvcmos12_f_8|unisim|vcomponentsobuft_lvcmos12_s_2|unisim|vcomponentsobuft_lvcmos12_s_4|unisim|vcomponentsobuft_lvcmos12_s_6|unisim|vcomponentsobuft_lvcmos12_s_8|unisim|vcomponentsobuft_lvcmos12|unisim|vcomponentsobuft_lvcmos15_f_12|unisim|vcomponentsobuft_lvcmos15_f_16|unisim|vcomponentsobuft_lvcmos15_f_2|unisim|vcomponentsobuft_lvcmos15_f_4|unisim|vcomponentsobuft_lvcmos15_f_6|unisim|vcomponentsobuft_lvcmos15_f_8|unisim|vcomponentsobuft_lvcmos15_s_12|unisim|vcomponentsobuft_lvcmos15_s_16|unisim|vcomponentsobuft_lvcmos15_s_2|unisim|vcomponentsobuft_lvcmos15_s_4|unisim|vcomponentsobuft_lvcmos15_s_6|unisim|vcomponentsobuft_lvcmos15_s_8|unisim|vcomponentsobuft_lvcmos15|unisim|vcomponentsobuft_lvcmos18_f_12|unisim|vcomponentsobuft_lvcmos18_f_16|unisim|vcomponentsobuft_lvcmos18_f_2|unisim|vcomponentsobuft_lvcmos18_f_4|unisim|vcomponentsobuft_lvcmos18_f_6|unisim|vcomponentsobuft_lvcmos18_f_8|unisim|vcomponentsobuft_lvcmos18_s_12|unisim|vcomponentsobuft_lvcmos18_s_16|unisim|vcomponentsobuft_lvcmos18_s_2|unisim|vcomponentsobuft_lvcmos18_s_4|unisim|vcomponentsobuft_lvcmos18_s_6|unisim|vcomponentsobuft_lvcmos18_s_8|unisim|vcomponentsobuft_lvcmos18|unisim|vcomponentsobuft_lvcmos25_f_12|unisim|vcomponentsobuft_lvcmos25_f_16|unisim|vcomponentsobuft_lvcmos25_f_24|unisim|vcomponentsobuft_lvcmos25_f_2|unisim|vcomponentsobuft_lvcmos25_f_4|unisim|vcomponentsobuft_lvcmos25_f_6|unisim|vcomponentsobuft_lvcmos25_f_8|unisim|vcomponentsobuft_lvcmos25_s_12|unisim|vcomponentsobuft_lvcmos25_s_16|unisim|vcomponentsobuft_lvcmos25_s_24|unisim|vcomponentsobuft_lvcmos25_s_2|unisim|vcomponentsobuft_lvcmos25_s_4|unisim|vcomponentsobuft_lvcmos25_s_6|unisim|vcomponentsobuft_lvcmos25_s_8|unisim|vcomponentsobuft_lvcmos25|unisim|vcomponentsobuft_lvcmos2|unisim|vcomponentsobuft_lvcmos33_f_12|unisim|vcomponentsobuft_lvcmos33_f_16|unisim|vcomponentsobuft_lvcmos33_f_24|unisim|vcomponentsobuft_lvcmos33_f_2|unisim|vcomponentsobuft_lvcmos33_f_4|unisim|vcomponentsobuft_lvcmos33_f_6|unisim|vcomponentsobuft_lvcmos33_f_8|unisim|vcomponentsobuft_lvcmos33_s_12|unisim|vcomponentsobuft_lvcmos33_s_16|unisim|vcomponentsobuft_lvcmos33_s_24|unisim|vcomponentsobuft_lvcmos33_s_2|unisim|vcomponentsobuft_lvcmos33_s_4|unisim|vcomponentsobuft_lvcmos33_s_6|unisim|vcomponentsobuft_lvcmos33_s_8|unisim|vcomponentsobuft_lvcmos33|unisim|vcomponentsobuft_lvdci_15|unisim|vcomponentsobuft_lvdci_18|unisim|vcomponentsobuft_lvdci_25|unisim|vcomponentsobuft_lvdci_33|unisim|vcomponentsobuft_lvdci_dv2_15|unisim|vcomponentsobuft_lvdci_dv2_18|unisim|vcomponentsobuft_lvdci_dv2_25|unisim|vcomponentsobuft_lvdci_dv2_33|unisim|vcomponentsobuft_lvds|unisim|vcomponentsobuft_lvpecl|unisim|vcomponentsobuft_lvttl_f_12|unisim|vcomponentsobuft_lvttl_f_16|unisim|vcomponentsobuft_lvttl_f_24|unisim|vcomponentsobuft_lvttl_f_2|unisim|vcomponentsobuft_lvttl_f_4|unisim|vcomponentsobuft_lvttl_f_6|unisim|vcomponentsobuft_lvttl_f_8|unisim|vcomponentsobuft_lvttl_s_12|unisim|vcomponentsobuft_lvttl_s_16|unisim|vcomponentsobuft_lvttl_s_24|unisim|vcomponentsobuft_lvttl_s_2|unisim|vcomponentsobuft_lvttl_s_4|unisim|vcomponentsobuft_lvttl_s_6|unisim|vcomponentsobuft_lvttl_s_8|unisim|vcomponentsobuft_lvttl|unisim|vcomponentsobuft_pci33_3|unisim|vcomponentsobuft_pci33_5|unisim|vcomponentsobuft_pci66_3|unisim|vcomponentsobuft_pcix66_3|unisim|vcomponentsobuft_pcix|unisim|vcomponentsobuft_s_12|unisim|vcomponentsobuft_s_16|unisim|vcomponentsobuft_s_24|unisim|vcomponentsobuft_s_2|unisim|vcomponentsobuft_s_4|unisim|vcomponentsobuft_s_6|unisim|vcomponentsobuft_s_8|unisim|vcomponentsobuft_sstl18_i_dci|unisim|vcomponentsobuft_sstl18_ii_dci|unisim|vcomponentsobuft_sstl18_ii|unisim|vcomponentsobuft_sstl18_i|unisim|vcomponentsobuft_sstl2_i_dci|unisim|vcomponentsobuft_sstl2_ii_dci|unisim|vcomponentsobuft_sstl2_ii|unisim|vcomponentsobuft_sstl2_i|unisim|vcomponentsobuft_sstl3_i_dci|unisim|vcomponentsobuft_sstl3_ii_dci|unisim|vcomponentsobuft_sstl3_ii|unisim|vcomponentsobuft_sstl3_i|unisim|vcomponentsobuftds_blvds_25|unisim|vcomponentsobuftds_ldt_25|unisim|vcomponentsobuftds_lvds_25|unisim|vcomponentsobuftds_lvds_33|unisim|vcomponentsobuftds_lvdsext_25|unisim|vcomponentsobuftds_lvdsext_33|unisim|vcomponentsobuftds_lvpecl_25|unisim|vcomponentsobuftds_lvpecl_33|unisim|vcomponentsobuftds_ulvds_25|unisim|vcomponentsobuftds|unisim|vcomponentsobuft|unisim|vcomponentsobuf|unisim|vcomponentsoddr2|unisim|vcomponentsoddr|unisim|vcomponentsofddrcpe|unisim|vcomponentsofddrrse|unisim|vcomponentsofddrtcpe|unisim|vcomponentsofddrtrse|unisim|vcomponentsopt_off|unisim|vcomponentsopt_uim|unisim|vcomponentsor2b1|unisim|vcomponentsor2b2|unisim|vcomponentsor2|unisim|vcomponentsor3b1|unisim|vcomponentsor3b2|unisim|vcomponentsor3b3|unisim|vcomponentsor3|unisim|vcomponentsor4b1|unisim|vcomponentsor4b2|unisim|vcomponentsor4b3|unisim|vcomponentsor4b4|unisim|vcomponentsor4|unisim|vcomponentsor5b1|unisim|vcomponentsor5b2|unisim|vcomponentsor5b3|unisim|vcomponentsor5b4|unisim|vcomponentsor5b5|unisim|vcomponentsor5|unisim|vcomponentsor6|unisim|vcomponentsor7|unisim|vcomponentsor8|unisim|vcomponentsorcy|unisim|vcomponentsoserdes|unisim|vcomponentspcie_ep|unisim|vcomponentspcie_internal_1_1|unisim|vcomponentspll_adv|unisim|vcomponentspll_base|unisim|vcomponentspmcd|unisim|vcomponentsppc405_adv|unisim|vcomponentsppc405|unisim|vcomponentspulldown|unisim|vcomponentspullup|unisim|vcomponentsram128x1d|unisim|vcomponentsram128x1s_1|unisim|vcomponentsram128x1s|unisim|vcomponentsram16x1d_1|unisim|vcomponentsram16x1d|unisim|vcomponentsram16x1s_1|unisim|vcomponentsram16x1s|unisim|vcomponentsram16x2s|unisim|vcomponentsram16x4s|unisim|vcomponentsram16x8s|unisim|vcomponentsram256x1s|unisim|vcomponentsram32m|unisim|vcomponentsram32x1d_1|unisim|vcomponentsram32x1d|unisim|vcomponentsram32x1s_1|unisim|vcomponentsram32x1s|unisim|vcomponentsram32x2s|unisim|vcomponentsram32x4s|unisim|vcomponentsram32x8s|unisim|vcomponentsram64m|unisim|vcomponentsram64x1d_1|unisim|vcomponentsram64x1d|unisim|vcomponentsram64x1s_1|unisim|vcomponentsram64x1s|unisim|vcomponentsram64x2s|unisim|vcomponentsramb16_s18_s18|unisim|vcomponentsramb16_s18_s36|unisim|vcomponentsramb16_s18|unisim|vcomponentsramb16_s1_s18|unisim|vcomponentsramb16_s1_s1|unisim|vcomponentsramb16_s1_s2|unisim|vcomponentsramb16_s1_s36|unisim|vcomponentsramb16_s1_s4|unisim|vcomponentsramb16_s1_s9|unisim|vcomponentsramb16_s1|unisim|vcomponentsramb16_s2_s18|unisim|vcomponentsramb16_s2_s2|unisim|vcomponentsramb16_s2_s36|unisim|vcomponentsramb16_s2_s4|unisim|vcomponentsramb16_s2_s9|unisim|vcomponentsramb16_s2|unisim|vcomponentsramb16_s36_s36|unisim|vcomponentsramb16_s36|unisim|vcomponentsramb16_s4_s18|unisim|vcomponentsramb16_s4_s36|unisim|vcomponentsramb16_s4_s4|unisim|vcomponentsramb16_s4_s9|unisim|vcomponentsramb16_s4|unisim|vcomponentsramb16_s9_s18|unisim|vcomponentsramb16_s9_s36|unisim|vcomponentsramb16_s9_s9|unisim|vcomponentsramb16_s9|unisim|vcomponentsramb16bwe_s18_s18|unisim|vcomponentsramb16bwe_s18_s9|unisim|vcomponentsramb16bwe_s18|unisim|vcomponentsramb16bwe_s36_s18|unisim|vcomponentsramb16bwe_s36_s36|unisim|vcomponentsramb16bwe_s36_s9|unisim|vcomponentsramb16bwe_s36|unisim|vcomponentsramb16bwer|unisim|vcomponentsramb16bwe|unisim|vcomponentsramb16|unisim|vcomponentsramb18sdp|unisim|vcomponentsramb18|unisim|vcomponentsramb32_s64_ecc|unisim|vcomponentsramb36_exp|unisim|vcomponentsramb36sdp_exp|unisim|vcomponentsramb36sdp|unisim|vcomponentsramb36|unisim|vcomponentsramb4_s16_s16|unisim|vcomponentsramb4_s16|unisim|vcomponentsramb4_s1_s16|unisim|vcomponentsramb4_s1_s1|unisim|vcomponentsramb4_s1_s2|unisim|vcomponentsramb4_s1_s4|unisim|vcomponentsramb4_s1_s8|unisim|vcomponentsramb4_s1|unisim|vcomponentsramb4_s2_s16|unisim|vcomponentsramb4_s2_s2|unisim|vcomponentsramb4_s2_s4|unisim|vcomponentsramb4_s2_s8|unisim|vcomponentsramb4_s2|unisim|vcomponentsramb4_s4_s16|unisim|vcomponentsramb4_s4_s4|unisim|vcomponentsramb4_s4_s8|unisim|vcomponentsramb4_s4|unisim|vcomponentsramb4_s8_s16|unisim|vcomponentsramb4_s8_s8|unisim|vcomponentsramb4_s8|unisim|vcomponentsrocbuf|unisim|vcomponentsroc|unisim|vcomponentsrom128x1|unisim|vcomponentsrom16x1|unisim|vcomponentsrom256x1|unisim|vcomponentsrom32x1|unisim|vcomponentsrom64x1|unisim|vcomponentssim_config_s3a|unisim|vcomponentsspi_access|unisim|vcomponentssrl16_1|unisim|vcomponentssrl16e_1|unisim|vcomponentssrl16e|unisim|vcomponentssrl16|unisim|vcomponentssrlc16_1|unisim|vcomponentssrlc16e_1|unisim|vcomponentssrlc16e|unisim|vcomponentssrlc16|unisim|vcomponentssrlc32e|unisim|vcomponentsstartbuf_fpgacore|unisim|vcomponentsstartbuf_spartan2|unisim|vcomponentsstartbuf_spartan3|unisim|vcomponentsstartbuf_virtex2|unisim|vcomponentsstartbuf_virtex4|unisim|vcomponentsstartbuf_virtex|unisim|vcomponentsstartup_fpgacore|unisim|vcomponentsstartup_spartan2|unisim|vcomponentsstartup_spartan3a|unisim|vcomponentsstartup_spartan3e|unisim|vcomponentsstartup_spartan3|unisim|vcomponentsstartup_virtex2|unisim|vcomponentsstartup_virtex4|unisim|vcomponentsstartup_virtex5|unisim|vcomponentsstartup_virtex|unisim|vcomponentssysmon|unisim|vcomponentstblock|unisim|vcomponentstemac|unisim|vcomponentstimegrp|unisim|vcomponentstimespec|unisim|vcomponentstocbuf|unisim|vcomponentstoc|unisim|vcomponentsusr_access_virtex4|unisim|vcomponentsusr_access_virtex5|unisim|vcomponentsvcc|unisim|vcomponentswireand|unisim|vcomponentsx_and16|simprim|vcomponentsx_and2|simprim|vcomponentsx_and32|simprim|vcomponentsx_and3|simprim|vcomponentsx_and4|simprim|vcomponentsx_and5|simprim|vcomponentsx_and6|simprim|vcomponentsx_and7|simprim|vcomponentsx_and8|simprim|vcomponentsx_and9|simprim|vcomponentsx_bpad|simprim|vcomponentsx_bscan_fpgacore|simprim|vcomponentsx_bscan_spartan2|simprim|vcomponentsx_bscan_spartan3a|simprim|vcomponentsx_bscan_spartan3|simprim|vcomponentsx_bscan_virtex2|simprim|vcomponentsx_bscan_virtex4|simprim|vcomponentsx_bscan_virtex5|simprim|vcomponentsx_bscan_virtex|simprim|vcomponentsx_bufgctrl|simprim|vcomponentsx_bufgmux_1|simprim|vcomponentsx_bufgmux|simprim|vcomponentsx_bufr|simprim|vcomponentsx_buf|simprim|vcomponentsx_carry4|simprim|vcomponentsx_ckbuf|simprim|vcomponentsx_clk_div|simprim|vcomponentsx_clkdlle|simprim|vcomponentsx_clkdll|simprim|vcomponentsx_crc32|simprim|vcomponentsx_crc64|simprim|vcomponentsx_dcm_adv|simprim|vcomponentsx_dcm_sp|simprim|vcomponentsx_dcm|simprim|vcomponentsx_dna_port|simprim|vcomponentsx_dsp48a|simprim|vcomponentsx_dsp48e|simprim|vcomponentsx_dsp48|simprim|vcomponentsx_emac|simprim|vcomponentsx_fddrcpe|simprim|vcomponentsx_fddrrse|simprim|vcomponentsx_fdd|simprim|vcomponentsx_ff_cpld|simprim|vcomponentsx_ff|simprim|vcomponentsx_fifo16|simprim|vcomponentsx_fifo18_36|simprim|vcomponentsx_fifo18|simprim|vcomponentsx_fifo36_72_exp|simprim|vcomponentsx_fifo36_exp|simprim|vcomponentsx_gt10|simprim|vcomponentsx_gt11clk|simprim|vcomponentsx_gt11|simprim|vcomponentsx_gtp_dual|simprim|vcomponentsx_gt|simprim|vcomponentsx_ibuf_dly_adj|simprim|vcomponentsx_ibufds_dly_adj|simprim|vcomponentsx_ibufds|simprim|vcomponentsx_iddr2|simprim|vcomponentsx_iddr_2clk|simprim|vcomponentsx_iddr|simprim|vcomponentsx_idelayctrl|simprim|vcomponentsx_idelay|simprim|vcomponentsx_inv|simprim|vcomponentsx_iodelay|simprim|vcomponentsx_ipad|simprim|vcomponentsx_iserdes_nodelay|simprim|vcomponentsx_iserdes|simprim|vcomponentsx_keeper|simprim|vcomponentsx_latch_cpld|simprim|vcomponentsx_latche|simprim|vcomponentsx_latch|simprim|vcomponentsx_lut2|simprim|vcomponentsx_lut3|simprim|vcomponentsx_lut4|simprim|vcomponentsx_lut5|simprim|vcomponentsx_lut6_2|simprim|vcomponentsx_lut6|simprim|vcomponentsx_lut7|simprim|vcomponentsx_lut8|simprim|vcomponentsx_mult18x18sio|simprim|vcomponentsx_mult18x18s|simprim|vcomponentsx_mult18x18|simprim|vcomponentsx_mux2|simprim|vcomponentsx_obufds|simprim|vcomponentsx_obuftds|simprim|vcomponentsx_obuft|simprim|vcomponentsx_obuf|simprim|vcomponentsx_oddr2|simprim|vcomponentsx_oddr|simprim|vcomponentsx_one|simprim|vcomponentsx_opad|simprim|vcomponentsx_or16|simprim|vcomponentsx_or2|simprim|vcomponentsx_or32|simprim|vcomponentsx_or3|simprim|vcomponentsx_or4|simprim|vcomponentsx_or5|simprim|vcomponentsx_or6|simprim|vcomponentsx_or7|simprim|vcomponentsx_or8|simprim|vcomponentsx_or9|simprim|vcomponentsx_oserdes|simprim|vcomponentsx_pcie_internal_1_1|simprim|vcomponentsx_pd|simprim|vcomponentsx_pll_adv|simprim|vcomponentsx_pmcd|simprim|vcomponentsx_ppc405_adv|simprim|vcomponentsx_ppc405|simprim|vcomponentsx_pu|simprim|vcomponentsx_ram32m|simprim|vcomponentsx_ram64m|simprim|vcomponentsx_ramb16_s18_s18|simprim|vcomponentsx_ramb16_s18_s36|simprim|vcomponentsx_ramb16_s18|simprim|vcomponentsx_ramb16_s1_s18|simprim|vcomponentsx_ramb16_s1_s1|simprim|vcomponentsx_ramb16_s1_s2|simprim|vcomponentsx_ramb16_s1_s36|simprim|vcomponentsx_ramb16_s1_s4|simprim|vcomponentsx_ramb16_s1_s9|simprim|vcomponentsx_ramb16_s1|simprim|vcomponentsx_ramb16_s2_s18|simprim|vcomponentsx_ramb16_s2_s2|simprim|vcomponentsx_ramb16_s2_s36|simprim|vcomponentsx_ramb16_s2_s4|simprim|vcomponentsx_ramb16_s2_s9|simprim|vcomponentsx_ramb16_s2|simprim|vcomponentsx_ramb16_s36_s36|simprim|vcomponentsx_ramb16_s36|simprim|vcomponentsx_ramb16_s4_s18|simprim|vcomponentsx_ramb16_s4_s36|simprim|vcomponentsx_ramb16_s4_s4|simprim|vcomponentsx_ramb16_s4_s9|simprim|vcomponentsx_ramb16_s4|simprim|vcomponentsx_ramb16_s9_s18|simprim|vcomponentsx_ramb16_s9_s36|simprim|vcomponentsx_ramb16_s9_s9|simprim|vcomponentsx_ramb16_s9|simprim|vcomponentsx_ramb16bwer|simprim|vcomponentsx_ramb16bwe|simprim|vcomponentsx_ramb16|simprim|vcomponentsx_ramb18sdp|simprim|vcomponentsx_ramb18|simprim|vcomponentsx_ramb36_exp|simprim|vcomponentsx_ramb36sdp_exp|simprim|vcomponentsx_ramb4_s16_s16|simprim|vcomponentsx_ramb4_s16|simprim|vcomponentsx_ramb4_s1_s16|simprim|vcomponentsx_ramb4_s1_s1|simprim|vcomponentsx_ramb4_s1_s2|simprim|vcomponentsx_ramb4_s1_s4|simprim|vcomponentsx_ramb4_s1_s8|simprim|vcomponentsx_ramb4_s1|simprim|vcomponentsx_ramb4_s2_s16|simprim|vcomponentsx_ramb4_s2_s2|simprim|vcomponentsx_ramb4_s2_s4|simprim|vcomponentsx_ramb4_s2_s8|simprim|vcomponentsx_ramb4_s2|simprim|vcomponentsx_ramb4_s4_s16|simprim|vcomponentsx_ramb4_s4_s4|simprim|vcomponentsx_ramb4_s4_s8|simprim|vcomponentsx_ramb4_s4|simprim|vcomponentsx_ramb4_s8_s16|simprim|vcomponentsx_ramb4_s8_s8|simprim|vcomponentsx_ramb4_s8|simprim|vcomponentsx_ramd128|simprim|vcomponentsx_ramd16|simprim|vcomponentsx_ramd32|simprim|vcomponentsx_ramd64_adv|simprim|vcomponentsx_ramd64|simprim|vcomponentsx_rams128|simprim|vcomponentsx_rams16|simprim|vcomponentsx_rams256|simprim|vcomponentsx_rams32|simprim|vcomponentsx_rams64_adv|simprim|vcomponentsx_rams64|simprim|vcomponentsx_rocbuf|simprim|vcomponentsx_roc|simprim|vcomponentsx_sff|simprim|vcomponentsx_sim_config_s3a|simprim|vcomponentsx_spi_access|simprim|vcomponentsx_srl16e|simprim|vcomponentsx_srlc16e|simprim|vcomponentsx_srlc32e|simprim|vcomponentsx_suh|simprim|vcomponentsx_sysmon|simprim|vcomponentsx_temac|simprim|vcomponentsx_tocbuf|simprim|vcomponentsx_toc|simprim|vcomponentsx_tri|simprim|vcomponentsx_upad|simprim|vcomponentsx_xor16|simprim|vcomponentsx_xor2|simprim|vcomponentsx_xor32|simprim|vcomponentsx_xor3|simprim|vcomponentsx_xor4|simprim|vcomponentsx_xor5|simprim|vcomponentsx_xor6|simprim|vcomponentsx_xor7|simprim|vcomponentsx_xor8|simprim|vcomponentsx_zero|simprim|vcomponentsxnor2|unisim|vcomponentsxnor3|unisim|vcomponentsxnor4|unisim|vcomponentsxnor5|unisim|vcomponentsxor2|unisim|vcomponentsxor3|unisim|vcomponentsxor4|unisim|vcomponentsxor5|unisim|vcomponentsxorcy_d|unisim|vcomponentsxorcy_l|unisim|vcomponentsxorcy|unisim|vcomponents****PROP_DevFamilyPMName=acr2********PROP_Parse_Target=synthesis********PROP_DevFamilyPMName=xc9500xl********PROP_Parse_Target=synthesis********PROP_Parse_Target=synthesis****PROP_Parse_TargetsynthesisPLUGIN_EdifPLUGIN_GeneralPLUGIN_NcdPLUGIN_VerilogPLUGIN_VhdllibHdlPROP_DevFamilyPMNamexc9500xlPROP_DevFamilyAutomotive CoolRunner2XC9500XL CPLDsPROP_Dummydum1CoolRunner XPLA3 CPLDsXC9500XV CPLDsXC9500 CPLDsCoolRunner2 CPLDsAutomotive 9500XLVirtex5Spartan-3A DSPSpartan3A and Spartan3ANPROP_xstVeriIncludeDir_Globalacr2|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.stx|PLUGIN_General|1208817913|FILE_XST_STX|Generic||boot_cpld.stxboot_cpld.stxDESUT_XST_STX|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/_impact.log|PLUGIN_General|1208820299|FILE_LOG|Generic||_impact.log_impact.logDESUT_LOG|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/_impact.cmd|PLUGIN_General|1208817976|FILE_CMD|Generic||_impact.cmd_impact.cmdDESUT_CMD|File||C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_boot_pack-p.vhd|PLUGIN_Vhdl|1201047428|FILE_VHDL|Library||||PackageBody||spi_boot_pack||PackageDecl||spi_boot_pack||Use||ieee|std_logic_1164|all|spi_boot_packDESUT_VHDL_PACKAGE_BODYDESUT_VHDL_PACKAGE_DECLieee.std_logic_1164.allieeestd_logic_1164all|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld_vhdl.prj|PLUGIN_General|1208817909|FILE_XST_PROJECT|Generic||boot_cpld_vhdl.prjboot_cpld_vhdl.prjDESUT_XST_PROJECT|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.tspec|PLUGIN_General|1208817956|FILE_TSPEC|Generic||boot_cpld.tspecboot_cpld.tspecDESUT_TSPEC|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.jed|PLUGIN_General|1208817957|FILE_JEDEC|Generic||boot_cpld.jedboot_cpld.jedDESUT_JEDEC|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.tim|PLUGIN_General|1208817956|FILE_TAENGINE_REPORT|Generic||boot_cpld.timboot_cpld.timDESUT_TAENGINE_REPORT|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld_build.xml|PLUGIN_General|1208817954|FILE_FITTER_REPORT|Generic||boot_cpld_build.xmlboot_cpld_build.xmlDESUT_FITTER_REPORT|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.xml|PLUGIN_General|1208817954||Generic||boot_cpld.xmlboot_cpld.xml|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld_pad.csv|PLUGIN_General|1208817954|FILE_PAD_EXCEL_REPORT|Generic||boot_cpld_pad.csvboot_cpld_pad.csvDESUT_PAD_EXCEL_REPORT|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.rpt|PLUGIN_General|1208817954||Generic||boot_cpld.rptboot_cpld.rpt|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.pnx|PLUGIN_General|1208817954|FILE_PNX|Generic||boot_cpld.pnxboot_cpld.pnxDESUT_PNX|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.gyd|PLUGIN_General|1208817954|FILE_GYD|Generic||boot_cpld.gydboot_cpld.gydDESUT_GYD|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.pad|PLUGIN_General|1208817954|FILE_PAD_MISC|Generic||boot_cpld.padboot_cpld.padDESUT_PAD_MISC|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.mfd|PLUGIN_General|1208817954|FILE_MFD|Generic||boot_cpld.mfdboot_cpld.mfdDESUT_MFD|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.vm6|PLUGIN_SingleModule|1208817954|PLUGIN_SingleModuleFILE_VM6|Module||boot_cpldDESUT_VM6|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.nga|PLUGIN_NGD|1208817955|PLUGIN_NGDFILE_NGADESUT_NGAXC9572XL-10-VQ44 (Speed File: Version 3.0)|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/_xmsgs/ngdbuild.xmsgs|PLUGIN_General|1208817918|FILE_XMSGS|Generic||ngdbuild.xmsgsngdbuild.xmsgsDESUT_XMSGS|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/_ngo|PLUGIN_General|1208817915|FILE_DIRECTORY|Generic||_ngo_ngoDESUT_DIRECTORY|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/_ngo/netlist.lst|PLUGIN_General|1208817918|FILE_LST|Generic||netlist.lstnetlist.lstDESUT_LST|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.bld|PLUGIN_General|1208817918|FILE_NGDBUILD_LOG|Generic||boot_cpld.bldboot_cpld.bldDESUT_NGDBUILD_LOG|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.ngd|PLUGIN_NGD|1208817918|FILE_NGDDESUT_NGD|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.ngr|PLUGIN_NGR|1208817912|PLUGIN_NGRFILE_NGRDESUT_NGRxc9536xlpc44-5|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.ngc|PLUGIN_NGC|1208817913|PLUGIN_NGCFILE_NGCDESUT_NGC|File||C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_counter.vhd|PLUGIN_Vhdl|1201047428||Architecture||rtl|spi_counter|||Entity||spi_counter|Use||ieee|numeric_std|all||Use||work|spi_boot_pack|all|rtlspi_counterDESUT_VHDL_ARCHITECTUREwork.spi_boot_pack.allieee.numeric_std.allnumeric_stdDESUT_VHDL_ENTITY|File||C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_boot.vhd|PLUGIN_Vhdl|1201047428||Architecture||rtl|spi_boot|||ComponentInstantiation||spi_boot|rtl|img_cnt_b|spi_counter||ComponentInstantiation||spi_boot|rtl|mmc_cnt_b|spi_counter||Entity||spi_bootspi_bootmmc_cnt_bimg_cnt_b|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.cmd_log|PLUGIN_General|1208817957|FILE_CMD_LOG|Generic||boot_cpld.cmd_logboot_cpld.cmd_logDESUT_CMD_LOG|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.prj|PLUGIN_General|1208817908||Generic||boot_cpld.prjboot_cpld.prj|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.syr|PLUGIN_General|1208817913|FILE_XST_REPORT|Generic||boot_cpld.syrboot_cpld.syrDESUT_XST_REPORT|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.lso|PLUGIN_General|1208817909|FILE_LSO|Generic||boot_cpld.lsoboot_cpld.lsoDESUT_LSO|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.xst|PLUGIN_General|1208817908|FILE_XST|Generic||boot_cpld.xstboot_cpld.xstDESUT_XST|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/chip.cmd_log|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/chip.prj|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/chip_vhdl.prj|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/chip.syr|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/chip.lso|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/chip.xst|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/spi_boot.tfi|PLUGIN_General|0|FILE_VERILOG_INSTTEMPLATE|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.tfi|PLUGIN_General|0||File||C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/spi_boot-c.vhd|PLUGIN_Vhdl|1201047428||File||C:/cygwin/home/matt/usrp2/fpga/opencores/spi_boot/rtl/vhdl/chip-mmc-c.vhd|PLUGIN_Vhdl|1201047428||File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/_xmsgs/xst.xmsgs|PLUGIN_General|1208817913||Generic||xst.xmsgsxst.xmsgs|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/xst|PLUGIN_General|1207685352||Generic||xstxst|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.lfp|PLUGIN_General|1208816595|FILE_LFP|Generic||boot_cpld.lfpboot_cpld.lfpDESUT_LFP|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.ucf|PLUGIN_AssocModule|1208816596|PLUGIN_AssocModuleFILE_UCF|Module||boot_cpld.ucfboot_cpld.ucfDESUT_UCF|File||C:/cygwin/home/matt/usrp2/fpga/boot_cpld/boot_cpld.v|PLUGIN_Verilog|1208817808|FILE_VERILOG|ComponentInstantiation||boot_cpld|boot_cpld|spi_boot|spi_boot|DESUT_VERILOGAutoGeneratedViewVIEW_ngcAssignPackagePinsTBIND_NGCAssignPackagePinsTRAN_ngcAssignPackagePinsVIEW_TranslationTBIND_CreateTimingConstraintsTRAN_createTimingConstraintsVIEW_Post-TranslateTimingConstraintsTBIND_CreateAreaConstraintsTRAN_createAreaConstraintsVIEW_Post-TranslateAreaConstraintsTBINDEXT_TranslationToFit_xc9500xlTRANEXT_vm6File_xc9500xlVIEW_FitTBIND_genPowerData_CPLDTRAN_genPowerData_CPLDVIEW_CPLDGeneratePowerDataTBIND_XPower_CPLDTRAN_XPower_CPLDVIEW_CPLDAnalyzePowerTBIND_FitToPost-FitAbstractSimulationTRAN_postFitSimModelVIEW_Post-FitAbstractSimulationTBIND_Post-FitAbstractToTBWPreSimulationTRAN_createPostFitTestBenchTRAN_copyPost-FitAbstractToPreSimulationVIEW_TBWPost-FitPreSimulationTBIND_TBWPost-FitPreToFuseTRAN_ISimulatePostFitModelRunFuse(bencher)VIEW_TBWPost-FitFuseTBIND_TBWPost-FitFuseToSimulationISimTRAN_ISimulatePostFitModel(bencher)VIEW_TBWPost-FitSimulationISimTBIND_Post-FitAbstractToPreSimulationVIEW_Post-FitPreSimulationTBIND_Post-FitPreToFuseTRAN_ISimulatePostFitModelRunFuseVIEW_Post-FitFuseTBIND_Post-FitFuseToSimulationISimTRAN_ISimulatePostFitModelVIEW_Post-FitSimulationISimTBIND_FitToLockedPinConstraintsCPLDTRAN_lockPinsVIEW_LockedPinConstraintsCPLDTBIND_FitToCPLDGenerateTimingTRAN_timRptVIEW_CPLDGenerateTimingTBINDEXT_createIBISModel_xc9500xlTRANEXT_createIBISModel_xc9500xlVIEW_IBISModelTBINDEXT_FitToCPLDConfiguration_xc9500TRANEXT_crtProg_xc9500VIEW_CPLDConfigurationTBIND_CPLDConfigurationToCPLDGeneratePROMTRAN_genImpactFileCPLDVIEW_CPLDGeneratePROMTBIND_CPLDConfigurationToCPLDConfigureDeviceTRAN_impactProgrammingTool_CPLDVIEW_CPLDConfigureDeviceTBIND_StructuralToTranslationTRAN_copyStructuralToTranslationForBitgenTRAN_copyStructuralToTranslationForConstraintsTRAN_ngdbuildVIEW_StructuralTBINDEXT_XSTPreSynthesisToStructural_xc9500xlTRANEXT_xstsynthesize_xc9500xlTRAN_copyPreSynthesisToStructuralForTranslateVIEW_XSTPreSynthesisTBIND_XSTAssignPackagePinsTRAN_assignPackagePinsVIEW_AssignPackagePinsTBIND_EditConstraintsTextAppTRAN_editConstraintsVIEW_PreSynthEditConstraintsTBIND_CPLDXSTAbstractToPreSynthesisTRAN_copyAbstractToPreSynthesisForBitgenTRAN_copyAbstractToPreSynthesisForTranslateTRAN_convertToHdlTRAN_copyAbstractToPreSynthesisForSynthesisVIEW_CPLDXSTAbstractSynthesisTBIND_InitialToCPLDXSTAbstractSynthesisTRAN_copyInitialToXSTAbstractSynthesisVIEW_InitialTBIND_InitialToCPLDAbstractSimulationTRAN_copyInitialToAbstractSimulationVIEW_CPLDAbstractSimulationTBIND_CPLDAbstractToPostAbstractSimulationTRAN_copyAbstractToPostAbstractSimulationVIEW_PostAbstractSimulationTBIND_PostAbstractToTBWPreSimulationTRAN_viewBehavioralTestbenchTRAN_copyPostAbstractToPreSimulationVIEW_TBWPreSimulationTBIND_TBWPreToBehavioralFuseTRAN_ISimulateBehavioralModelRunFuse(bencher)VIEW_TBWBehavioralFuseTBIND_TBWBehavioralFuseToSimulationISimTRAN_ISimulateBehavioralModel(bencher)VIEW_TBWBehavioralSimulationISimTBIND_PostAbstractToPreSimulationVIEW_PreSimulationTBIND_PreToBehavioralFuseTRAN_ISimulateBehavioralModelRunFuseVIEW_BehavioralFuseTBIND_BehavioralFuseToSimulationISimTRAN_ISimulateBehavioralModelVIEW_BehavioralSimulationISimTBIND_PostAbstractToAnnotatedPreSimulationTRAN_viewBehavioralTestbenchForAnnoTRAN_copyPostAbstractToAnnotatedPreSimulationVIEW_AnnotatedPreSimulationTBIND_PreToGenerateAnnotatedResultsFuseTRAN_ISimGenerateAnnotatedResultsRunFuseTRAN_copyPreToGenerateAnnotatedResultsFuseForTBWVIEW_AnnotatedResultsFuseTBIND_FuseToAnnotatedResultsISimTRAN_ISimGenerateAnnotatedResultsTRAN_copyFuseToAnnotatedResultsISimForTBWVIEW_AnnotatedResultsISimTBIND_AnnotatedToGenerateExpectedSimulationResultsISimTRAN_ISimGenerateExpectedSimulationResultsVIEW_ExpectedSimulationResultsISimTBINDEXT_InitialToCommon_CPLDTRANEXT_compLibraries_CPLDVIEW_CommonDESPF_TRADITIONALPROP_PreferredLanguageVerilogPROP_SimulatorISE Simulator (VHDL/Verilog)Other MixedOther VerilogOther VHDLVCS-MXi MixedVCS-MXi VerilogVCS-MXi VHDLVCS-MX MixedVCS-MX VerilogVCS-MX VHDLNC-Sim MixedNC-Sim VerilogNC-Sim VHDLModelsim-XE VerilogModelsim-XE VHDLModelsim-PE MixedModelsim-PE VerilogModelsim-PE VHDLModelsim-SE MixedModelsim-SE VerilogModelsim-SE VHDLPROP_Synthesis_ToolXST (VHDL/Verilog)PROP_Top_Level_Module_TypeHDLXST (ABEL)VHDLPROP_DevSpeed-5-10PROP_DevPackagePC44VQ44PROP_DevDevicexc95*xlxc9572xlxc95288xlxc95144xlxc9536xlTQ100VQ64CS48-7PROP_ISimSpecifyDefMacroAndValuePROP_ISimSpecifySearchDirectoryPROP_ISimValueRangeCheckPROP_ISimCompileForHdlDebugPROP_ISimIncreCompilationPROP_tbwPostParTestbenchNamePROP_tbwTestbenchTargetLangPROP_TopDesignUnitPROP_PostParSimModelName_timesim.vPROP_SimModelTargetboot_cpld_timesim.vModule|boot_cpldPROP_SimModelRenTopLevEntToPROP_SimModelGenArchOnlyPROP_SmartGuidePROP_CreateIBISModelVCCIO_xc9500xlLVTTLPROP_xcpldFitDesInputLmt_xc9500xlPROP_CPLDFitterminate_xc9500xlKeeperPROP_xilxBitgCfg_GenOpt_IEEE1532File_xc9500PROP_xcpldFitDesPrgOptionPROP_hprep6_autosigPROP_xcpldFitDesPowerStdPROP_xcpldFitDesCreateGndPROP_xcpldFitDesPtermLmt_xc9500PROP_xcpldFitTemplateOptimize BalancePROP_xilxBitgCfg_GenOpt_IEEE1532File_xbrPROP_UseDataGatePROP_xcpldFitDesVoltLVCMOS18PROP_xcpldFitDesTriModePROP_xcpldFitDesUnusedPROP_xcpldFitDesInputLmt_xbrPROP_xcpldFitDesInReg_xbrPROP_xcpldFitTemplate_xpla3Optimize DensityPROP_xcpldFitDesPtermLmt_xbrPROP_FunctionBlockInputLimitPROP_FitterOptimization_xpla3DensitySpeedPROP_CompxlibCPLDDetLibPROP_CompxlibAbelLibPROP_CompxlibUni9000LibPROP_CompxlibLangAllPROP_PlsClockEnablePROP_xilxSynthKeepHierarchy_CPLDYesPROP_xilxSynthXORPreservePROP_xilxSynthMacroPreservePROP_taengine_otherCmdLineOptionsPROP_xcpldFittimRptOptionSummaryPROP_impactConfigFileName_CPLDPROP_hprep6_otherCmdLineOptionsPROP_xcpldUseGlobalSetResetPROP_xcpldUseGlobalOutputEnablesPROP_xcpldUseGlobalClocksPROP_xcpldFitDesSlewFastPROP_cpldfitHDLeqStyleSourcePROP_fitGenSimModelPROP_cpldfit_otherCmdLineOptionsPROP_xcpldFitDesMultiLogicOptPROP_cpldBestFitPROP_CPLDFitkeepioPROP_xcpldFitDesTimingCstPROP_xcpldFitDesInitLowPROP_xcpldUseLocConstAlwaysPROP_FitterOptimizationPROP_EnableWYSIWYGNonePROP_Enable_Incremental_MessagingPROP_Enable_Message_FilteringPROP_Enable_Message_CapturePROP_FitterReportFormatHTMLPROP_FlowDebugLevelPROP_UserConstraintEditorPreferenceConstraints EditorPROP_UserEditorCustomSettingPROP_UserEditorPreferenceISE Text EditorPROP_SimModelAutoInsertGlblModuleInNetlistPROP_SimModelGenMultiHierFilePROP_SimModelRetainHierarchyPROP_SimModelIncSimprimInVerilogFilePROP_xstSafeImplementNoPROP_SynthFsmEncodeAutoPROP_XPowerOtherXPowerOptsPROP_XPowerOptBaseTimeUnitpsPROP_XPowerOptUseTimeBasedPROP_XPowerOptLoadVCDFileDefaultusfsnsPROP_XPowerOptNumberOfUnitsPROP_XPowerOptInputTclScriptPROP_XPowerOptLoadPCFFilePROP_XPowerOptOutputFilePROP_XPowerOptLoadXMLFilePROP_XPowerOptMaxNumberLinesPROP_XPowerOptVerboseRptPROP_XPowerOptAdvancedVerboseRptPROP_xilxSynthKeepHierarchyPROP_xilxNgdbldMacroPROP_xilxNgdbld_AULPROP_ngdbuild_otherCmdLineOptionsPROP_impactPortPROP_ImpactProjectFileparport0 (LINUX)/dev/ttyb (UNIX)/dev/ttya (UNIX)USB 2 (PC)USB 1 (PC)USB 0 (PC)COM 3 (PC)COM 2 (PC)COM 1 (PC)LPT 3 (PC)LPT 2 (PC)LPT 1 (PC)LPT 0 (PC)PROP_impactConfigModeDesktop ConfigurationSelect MAPSlave SerialBoundary ScanPROP_impactBaud5760038400192009600PROP_ibiswriterShowAllModelsPROP_ISimCustomCompilationOrderFilePROP_ISimUseCustomCompilationOrderAll files (*)|*PROP_ISimLibSearchOrderFilePROP_ISimSDFTimingToBeReadSetup TimePROP_ISimVCDFileName_par_tbwxpower.vcdPROP_ISimGenVCDFile_par_tbwPROP_ISimUseCustomSimCmdFile_par_tbwPROP_ISimVCDFileName_par_tbPROP_ISimGenVCDFile_par_tbPROP_ISimUseCustomSimCmdFile_par_tbPROP_ISimStoreAllSignalTransitions_behav_tbwPROP_ISimUseCustomSimCmdFile_behav_tbwPROP_ISimStoreAllSignalTransitions_behav_tbPROP_ISimUseCustomSimCmdFile_behav_tbPROP_ISimStoreAllSignalTransitions_par_tbwPROP_ISimStoreAllSignalTransitions_par_tbPROP_ISimSimulationRunTime_behav_tbw1000 nsPROP_ISimSimulationRun_behav_tbwPROP_ISimSimulationRunTime_behav_tbPROP_ISimSimulationRun_behav_tbPROP_ISimSimulationRunTime_par_tbwPROP_ISimSimulationRun_par_tbwPROP_ISimSimulationRunTime_par_tbPROP_ISimSimulationRun_par_tbPROP_ISimCustomSimCmdFileName_gen_tbwPROP_ISimUseCustomSimCmdFile_gen_tbwPROP_ISimCustomSimCmdFileName_behav_tbwPROP_ISimCustomSimCmdFileName_behav_tbPROP_ISimCustomSimCmdFileName_par_tbwPROP_ISimCustomSimCmdFileName_par_tbPROP_ISimUutInstNameUUTPROP_xstEquivRegRemovalPROP_xilxSynthAddIObufPROP_SynthExtractMuxPROP_SynthResSharingPROP_SynthCaseImplStylePROP_xstBusDelimiter<>PROP_xstHierarchySeparator/PROP_xstGenerateRTLNetlistPROP_xst_otherCmdLineOptionsPROP_xstVerilogMacrosPROP_xstGenericsParametersPROP_xstUserCompileListPROP_xstVerilog2001PROP_xstIniFilePROP_xstWorkDir./xstPROP_xstCaseMaintainPROP_xstLibSearchOrderPROP_xstUseSynthConstFilePROP_SynthConstraintsFileCST files (*.cst)|*.cstXCF files (*.xcf)|*.xcfPROP_SynthOptEffortNormalPROP_SynthOptPROP_SimModelNoEscapeSignalPROP_SimModelPathUsedInSdfAnnPROP_SimModelIncSdfAnnInVerilogFilePROP_SimModelIncUselibDirInVerilogFilePROP_SimModelRenTopLevModPROP_SimModelOtherNetgenOptsPROP_SimModelOutputExtIdentPROP_SimModelRenTopLevInstToPROP_SimModelGenerateTestbenchFilePROP_SimModelRenTopLevArchToStructurePROP_SimModelRocPulseWidthPROP_SimModelBringOutGsrNetAsAPortPROP_SimModelGsrPortNameGSR_PORTPROP_CompxlibSimPrimativesPROP_CompxlibUniSimLibPROP_CompxlibOtherCompxlibOptsPROP_CompxlibOverwriteLibOverwritePROP_CompxlibSimPathSearch in PathPROP_CompxlibOutputDir$XILINX//PROP_hdlInstTempTargetLangPROP_DesignNamePROP_PartitionForceSynthPROP_PartitionCreateDeletePK ¸–Ét$®$®5__OBJSTORE__/ProjectNavigator/__stored_object_table__:>à®"YÔý%ÕÂùÖõÀ<רî[Ø© XÙ©ŽYÙ©`ZÙ©2 ׫ahØ«ÔeÙ¬BfÙ¬gÙ«æ=ר WبRTÙ¨ÀUÙ¨’VÙ¨d>×§RSا„PÙ§òQÙ§ÄRÙ§–?צOئ¶LÙ§$MÙ¦öNÙ¦È@×¥±KØ¥ãHÙ¦QIÙ¦#JÙ¥õAפßGØ¥DÙ¥ƒEÙ¥UFÙ¥'Z×_cŒØ_œ‰Ù`ÞŠÙ`F‹Ù_®׈½­؉1ªÙŽI«Ù‹È¬Ù‰C¯Ú‹FÉÚHÔÛŠÔ¢ÛØ°ÜŠ•ÊÜ™±ÚŠRËÚV²ÚŠÌÚÖ݉— Ý޾ÚÇíÛW¿ÜÀÚŒÕÁÚŒ’ìÝŒÎÞÍߎèÑÞ<ÐßÃÞŒ†ÂߌgÆÞ»Åßœ¶ÞŠ´߉â»Þ‹:¹ß‹ÏàÒàD8ׯ“}دÀzÙ±{Ù°j|Ù¯Ò9×­pØ­¹mÙ®ûnÙ®coÙ­Ë ׬plجãiÙ­QjÙ­#kÙ¬õÓÙ—oÔÙ”`ÕÙ‘MDמ¦ØÚ“ÞóÚ™üK×~mØžÝÛÛ“lÙ !§Û™ŒeØ~§ÙŸ‡ÙÜ“-bÙéÙžïôÜ™McÙQÚÚ’êdÙ~¹:תŽõÚ™ ÛÚ’§dتÅöÚ˜ÇaÙ«3ÚÝ‘©bÙ«¦Ý—ËcÙª×Üá’f÷ᘆÝá’%Eל“øá˜EL×|eØœÊæÚ–íÙžïÛ–}VØ|“ÙtçÜ–>SÙ}ÕÙœÜèÚ•ûTÙ}=éÚ•¸UÙ|¥îÝ”¼êá•wëá•6úÞ˜9ùߘýÞ™ðüß™ÑíÞ•*ìß• ðÞ–áM×zLïß–ÂFך~ßÞ’GØz‹Þß‘øDÙ{ÍØš¹ãÞ“ÒEÙ{5ÿÙ›ûâß“±FÙzÙ›cþà™øÙšËûà˜AX×c‰©ØcÀ¦Ùe§Ùdj¨ÙcÒ;ש¼_Ø©ò\Ùª`]Ùª2^ÙªG׆°ž؆ç›Ùˆ%œÙ‡Ù†ùN×x?8Øxv5Ùy´6ÙyHׄ£7ÙxˆØ„ڌنم‚ŽÙ„ìO×v2)Øvi&Ùw§'Ùw(Ùv{Y×av›Øa­P×t˜Ùbñ™ÙbYØtVšÙa¿Ùu˜ÙuÙthQ×r ØrE Ùs‡ Ùrï ÙrWR×oûþØp2ûÙqtüÙpÜýÙpDS×mèðØníÙoaîÙnÉïÙn1T×k×ãØlàÙmPáÙl¸âÙl U×iÂÔØiýÑÙk?ÒÙj§ÓÙjB×¢ÌV×g±Iׂ–9Ø£ÇØgè6Ù¤GØ‚ÍÄÙi*7Ù£­~Ù„ ÅÙh’8٣كuÆÙgú€Ù‚ßC× ¹W×ešJ×€ƒ+Ø ð¸Øe×®â#(Ù¢4sØ€ºµÙg)Ù¡špÙü¶Ùf*Ù¡qÙd·ÙeérÙ€Ì ×ÊÖØ‘;îà•2ñà–éàà’!äà“ÚÄàŒŽÇàÃ·àŠ ¼à‹BÕÕjbãæjxäCÞMå{iÉâ†Òã»TæMkyÔù¸Kç ­HÖ¯!ÞàGþç NßVtÃÙÄç"ÕO—©Þˆ¹lßÈFç äðãÛèçó¨á¶§ßp»ÃÜöÔâýr†Þ^ÅMãã˜2ÃÁl‚äA±ßÔöf6Ôk+ÃÆ¢‘Þ`BšÕ‰(ÃÊ häFr~ÞÉ;ËÔû$Bߤ¾ÇçI²åe6Àâ;YÙXOpÖ Ïèyè«ãÏ ùéç±käE·ß^ÖK°êCòëëX•¡â áçŠÖéoDÞUæÞl´¥Ù¶eßYJÃÞg­Èåh.´êDh‡âý8äBb"ßuwåšÿ¦ÖêÅaäG¶1ßRT5Þ¢È;å£I4úB_ä@±;ÙSî1âõz éÀÃhãÇÈÀéÎ}ƒÞ^-åç¨?ßTeIâ ÿéȃûÞÜm†ä@ö¸âÿzGÕF{çp÷ç”üâþyvßCâI¬BÞÅ;Þ²w_å~ åtœëçó¥JÔ oôÞÛ¹Ô³ßæP›äAì¹ã¹0èwE°â]MÖrNÖpèÔø˜êB1YÕñí!åu4šÞ†¬¶é¸× ãÍN•åa4åR©säDÔmãç"—æLÝ¡ßbÐ&ß ˜ÅÔ÷z°Þ·‚RÞ|a-ÔüX½ÜŽ QåVÉŽå_âþæOwÖ g²â%ùìþ9×Ü”!™ÖÀêåm„ÖK ªÖê¿Âç8ÌæMßQß|D†ÞƒqÏÖi®ÞdfïÔñ}¼âoÞÁ‘{ÞødéÇÛéÙ/LÖt¿â“¤Ù¶èŽçýçÂßgaçóToàZ«tÕ µ®Ü‹‰Þž¢Üç¾ÕRrà[áçøÛ¥Þc…éÝ!ßsfëßmÇ'ç ·ÖõéßygäF·ÒêF†ÌÔû¬Öê»/ãÃtÄÞ¹©>Þ£©»ç÷nç(,ÞáÙÞj£3ÔùœŽÖégBÕÞèy Ö†…äA1×è¶?°ßdáÎåi^6ÞÄm,ÃÇr5ãáøWçôbmßZ‚hÖ¯ªãÏ~¤ÖêÉSÞW)´Þe–ãÞØc€Þ°fkÖ©|Ù^1cäGcÐÞi¾}Ù]™êæN.—ß…÷ ÖêÏ+èv¯rÖ ÉßhqÚÔö‚ßë±ÔAäå£áÃÔû°›ß´iÈç.UãÆ@–ÞÌUáå¨Qé䑵çÐ5éÄqÃèTÉè„?%ÃÎP•æOÈÖKàçÒu߮ڡÖêÍ:çóÛÂæP<Ãât"Ôú´Õ¶SÔü>Þâ›<ØSÜìÕòy#ÃÀŠ­êC­!ÃÐÌŸÞbU˜Þ†Mç ƨêC-Uãå:âç’Þ³éçóö¿ßføèçô˜£âÃàçùzç9¹æM$‡胩ãçW«Öê½Ûçy éÞS_ÔñµeÖµ¯ÕÚ±ãÑ&»âé¿ÄêEÃæNC(ç O ߟfPå|–ÖéWÃàì@Þ¤CiäF/Ëâ§ÊçæÙëZ=¼çÿ=xÞ`•ÖéYÍ㺖dÖ·;çôÎ,ÔõÂ岯[Þ}9ÖKðÔñEúÞo÷×Ôú üæP®Ô‰æIåçålìEåUR™ãÌ„ñíY‡Öéu ß›ÚGÞU²óßn¨‘çýŽJÙUý¤ßchoÞ€ÃãBçÔ>îÜêFÑ’æK™OÖn§Þˆ!½ãάÅæK®úâ%jÕˆþÖödÍÞi&åqhàYq¢ÞbíÐåq¨x߯r ÞÞOÞtÞž AÞy°ãË>ÝæNyÞ¯)åRÕ gå~ídäGëç÷IåzÑçÔåÜ—0øÞo]óéÛ½BåTºãÞìår‹ÁæNX³Þ¸aÈã¹ØsÜ] ‹Öém„å^eðâAçóŠ´à¸i ÞtüÔÔßÙÔùð¡è·ÿÏßi¡¤Þ‡‹Âéºk¦߈Þsƒ·Ö0ÃÅìiÖ­½ÕÙuâ­‚Öéá6ÞS œêB§ÜéØg2Þ¢0‡Ö MzÖ aåÞr »ìÿ–9ÕñÑòç]lÖ§AÞT‚}äBØyÕÉŠæO#uß\.¼êETiçôsÔÊKØUëFÕ †~äB"ùx¬æPa~Ø]‡ÖK âÔø™jÞæóÖéi{äC^Áâ¬Þ¶£aÞ~ilÚ[!.ÃÄF¸ÖãÀî¶ÔütòêG…õÔûÌ7×±šÛÔùÔßtßläE­ƒèƒkÜ[d`Ö¿Nç ˜ÕÔú`vÔ‘Xå|Ù4Þx;—Ôû”Yß}™ÖéQIÙV•3ÞRqÝåksæO8=éâŸNß{¬£åc%HÙW-òÜš?Šß„€”éÍ#AãâÊæMN ÃØ>ÿÖöbcãåôLÞ{1¾æNé<ßxýéÊMûçåOÕ sçUãÝ´ç éàKåžB¹Ô£ ÔJî$Þ ·çš\ÜY¸ÃÛŒ éá|äCÈå€\çô,éÞmLvÖ i…ß^¨^×Q”èêG2ãÔ÷–ÝéÖÍqÖ ¼âSÃÖ˜³ìŒå²Å⾃Öéß°çö¸ãÖ$ è‡-‡Ù³Õâêq‰Öéq Ô÷”ß³ŠaÞXù÷æQ=ñÔxøæQ$rç 2—ÖéUìì|‘ß²òÞßu±æOÝîÕò%CÔùd’Öé_ëãÚ2ìvÝç÷ØõæQªêCh2Þw£‹ê@ÅfÔüÈ%å U7ßS„‡ä@»cÖ¹ÑèwÛ/Þw Bßz)1ÃÂ0fäG$ÃÌ(þãÜœ æK ±Þdþ†ãÊxºÔ‡Þ´Š‘Öéa_ÞåÃXÞÆÉãߤÖKÂçþ•“ß`½šêBlß`%›ÖéÝsÖ ås»»ßf`ßqS#ߟþ†Þ±–Ã圷æMüxÖ eCßTýUßW¤ˆÞ__‘è… oÔñ™âÏ]ß}´&ÔøWtÖ GÖ±nÞZ£¶êD£ éÁ•Öâê)5ø®mÞå)éÆå›—-å¡6tç:âå¡ÎÙâ8±á¸mLãäŠرÑÐÖgmÔ êˆ߃ê®æLÁçþ°3ûÃçŠ?ߤ$ß°I>åT"êA;€â襾âÿìÞmäbäGm&Ô yjäEôéæIªß¶‚`ÔûxöæQ^7çôGPÞV‘çfEç §‰Þ„\å}qiéæ÷$ßvfÖ³–è…¶càYÎÕNËåhÆÁågMå埻ÕîÃæÌ»æM9›æKoZçòèÈÜ‹×âéãtå®—qäEJqç <ÞpyÖ cýæO³ˆÖésçè†LØãÙ`/ãá@ÅÔöÂŽæP¸ÕíZ¯ÜÞk;ŸÖêшٲ{ôêGЃäA§8ÞS£rß®BãÁÀ Þµ ^Þ}ÑÊå‚0ÉÔû\žÖD`ß~LÕÒdÕe“å³G¿âþç ׳«:çòÍväD#rãçÜ…ß±y]×S§´éÐùßqë åœ/CÞ¤ÛúÖõ¾–êAö|ß‚s ÖñÞÝ‘êAvzäC™îâèékç õ‡ß_@åpxwå¯/¿æKè•Þ…~Ö8€å]ÍRßW ³ßeyÃåaóØè´(Áé»)æNu:èx¼èÞÙ+ÎåuÌåßl—¬ßdIÞqp@ßy“ËêFAïç¯TåWajÖ«9ÙU&ÃÌöõÞnÅçô}êãÚ”¶çµwäCèÃé¹­„Ôüä×ßj†¸êDÞéÂYâJ\Þ›_Óç3äÔŒÝÔù€päE…µÞÐõu婿J7OÞ{ÉÑç¾]çõ<ߣŒ^éåÇ~å°CÞzHRÞäãåSAeÞÇ™ÖK­Öê¹æL«ãÞ€ÏÔúÐyäC£üÔù,Õò kÔû@ ÔùH[×]K>çó ßœr‰Ù±ãƒÞ°þ[ãÆøíâöæÕ”ºâé{ÔúDãÝN æLy„å±6WéÆÍ ÞÀ¿™سâtäD™«ådúæPÍàå^ýŒÖék¾âÇÔü ÿæNÌZØX=„߃T˜ÖéSÓæOjŒæPòèßm/äålTÍÔúì éãkßb6räEõâe祕éÌYå°žLç ÿ7Ö|€äB'øâþ¥è‡Ã—Ù´Ž¢ÖÈ&ÙQÝzà\ÅmäE£âÖåjCXÙY÷?èyRpÞç­”Öé[Ö6ßsþÀæLŽêA½Þf}ÖKêÔNÆçøöÖKFßU•ðè· ýâ€3ßx+ÞÃCÖÔà ïêÓwÕåŸ#žêBâÖée1ߢkå…wà\U.ß¡yËÞºgoäE{ãÈ®xÞÈvÞ®÷ºìÿÖ%ÔöÞ×µÀ<Ôña{Ù^É™æK„ùßoز߸B>ÞyÓçÊÖéc£ÖêË„äAl©ÖêÁ–ßaUhß0æN¯ìãÙ¾éË=Õò]êçóÀås#ß²Zççô³'ÃÊêÇæL"äÔ÷:6çóoÐÞ»% åbßrÎÃà `ðHMåV1€ãÉjgÖ±¨Ôü¬¾åfµŸæOMÞͯ߷c½æMóæOò–Ùµ$zßÛXÔðñ|çT^Õ ã¯æKÓ‹ÞË*éÃGòåne%Þv.*ÃÃ$ãàvjÞMÚåjÛæèˆYˆç kÿçï˜Ù³ô0Þ¡–Ô¸tÚ\É7Ôûè“Öé]gÞYiôçþ÷ßo@JÔü<³æJ"{Ö _-ßvð\×U¶ßÞkÓ_ÖÁ4ߢ«Vã価ߵ™óÔd#Þu””êA»ÃßNpÕò•xâ­æNŠÃäf¨߈šRÞÆƒÖ ³¥èµXqå­ÿî1µæLd_ßXÚÊÞh޲êD-%ÙRu8ÔðÕßÔûçyå˜íÕòAIÞãg0Õõ:uçó9Þßk¶¤í\YÍåo•…ÖéyÓÔú|yÞ\½‹Þ„Ÿ1éáÍÞç#näE™]ÚYu¹âÿôˆñ7ÔýaÖ½×WÅ¢ÕœÖKAå¤{Öó¦صõæMÂ)ç ŒVÞWÁmÖ¥Jß{ÒÕ}Þ‚’ºåfñÔñ)-ÃÈZÔñ 1ßw†§ÞÎy$ÙS vÞ\Mì&xß\žß›BûæP†¥ÖêÇEãÅjŸn߀`ŸßµÀâþËæLòÏÕ¢·Þ¸ÓpßZôÖKlçõÃᢓ߅a Þ›÷£Ù·ÇuäD^)ÃÉSÔú(ßž…sÞ®_’å`zAéÅ?œÖéÛ¯ç¸~Ö áÆâéÉ?åãØ’/ÃÅ$ã„'Þ µ™߆àãÖø´âë"ÞŸƒæçôéCÔ ôœÖƒÞÊI5ßRìÛßk§ÖêÂ߰ážÔû æL?bÖ»"ÞÂU`Õò± Þœöåný æKR3å¢h—ÞaréÔåÌßi 'ØQË9ãÄœÆêEþ“æMˆÃÞ$ò;ßSºêE†ÖéwåÔõÞ•Þ³§žè´ÂÞÞÖÉÑÔú˜Øâ~¯ådž8ÖzDç 2âJœ«æLÀÃÜBöìýTÞpØ2ÞáÉÀÞgHç [WÙ[£Ôý©£ë[é¢Þµ¼½ìÿ”Þ`ڮ᷆:ÙT†?ÔüeäG óè}ÞrëqÞ[ùæQ.ãÃäæM æK5Íâ‹ÐâQÞæIÈúéÜq¤â-¢߇nô2x½NJ•«î:¥NilåóxKAŇ«$% Ä’‘õÝzQÙDe¹_£6w´ÕíÊ POZ‚ßú¯mp’KFí8¾>Kv›ª’hn|øÂ¿ESÈBŸ°áÈ ì 1»Ùîl°$FÝk/nsvG7¨³ù¬*”’ÙuR‰DÈ‚¼–y3£9 1»Ùîá $F 1ûíý¯$F 1»Ùî ¡$F¼oÖÎwD}†áa‚’Yaý]3B¹Ey‹•ígßÈ@iú ÛZÛ¡J,½ç$ ¯<@Ø6Ü('Ak«Œ·cm'¶ÃvÚ[ÄýKš¶” ôgÐNõaNnŽ@9—z¢’."[Ô-¢¾ËEˆ‚C}ÃJc›{jX3æMÀŠŸ{ÓK¦ì‹ ÓÅOÓ 2.-¼·ƒö?Ž' G¦žyÁ=|»Ïé³Âk3zLÖ’…³$©A:cR€C¡›übÓNýJ©e6u3JŠ…ŠY™cÎ.8Ó¯s¦a8HB…O!¨¸²e3Äâ×fåAJöˆcbîk÷By_ðýMT°·–> äm_aY5/Hn‘w…­ªo‚”o åÀnJ ´«^ÆÄ{tµynuK\©1ÇàG•iÑÌ …K°¥²³yòEo[;³6>M„€à g©÷í_@æï(BJƧÖûNÞ¦ž­;ŒÅkÆ—I*¶B†Îz1¼v2´fØJªï‰žOÖ7|ê'C¡¨[ÜßQnŸœáΩóNޏM¢©<:OëÃÓÍÇ^‰H™ˆàb$u6þ=¸×JŸÌ¢h°¿µ;ꡨਭFiœš÷¢©é×ʯthìïL+·úÑÛ±VÙ”tÊ0¼O[„œõ›6p” / =}=ZOÓµ/é’y¨öáÊ¡©’¬E.—Imz_÷bu&/àL,µ,õbƒ@ôuîܸ^.}DZ„t§ËÃ|Y`鼞^Lò$ÍtÒüIŸu´Ádt9L;‘nÊÅo9x›Þwµ °H… c"m ¶ƒµOá (GÀ˜ÿëC…d bI·HL ®‡Ôa¼¶$N€ )íÃ`E¢§Án\¥j#to0»@|ˆè6â°5c½t¼’•GɉÁÚÄÎ>þê 1»Ù$F 1»ÙîÓŸ$F 1ûí £$F 1ûíR¤$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî ¥$F 1»Ùî/¥$F 1»Ùî>¥$F 1»ÙîP¥$F 1ûíç¦$F 1ûíö¦$F 1ûí§$F 1ûí§$F 1ûí&§$F 1ûíe±$F 1ûít±$F 1ûíè±$F 1ûí÷±$F 1ûí²$F 1ûí²$F 1ûí$²$F 1ûío²$F 1ûí~²$F 1ûí²$F 1û휲$F 1ûí«²$F 1ûíº²$F 1ûíɲ$F 1ûíØ²$F 1ûíç²$F 1ûíö²$F 1ûí@³$F 1û튳$F 1»Ùîe¶$Fªc‡«C¼Lp¸ ¸–1Ð3ïÓ²äN‹Ã:Tð`”Ì*_sK@¹p,’—[ývnTçòZŒHa©÷Šå'«œ ~GNC¼Iÿ|®fÅtÅ]„-Bo…°÷¹µ%˜D(ñÅI_«¨ž“¢ó}…™–’øBxª7†Édíîî2)’Ú²I~lº¥`ž¬RÚ½ÒÐE€â‚«–@WVýZH©ÙB‹Ÿ¢neœšñu¼É)áPLî§ðd‚” 5¬+2JÚtNøŽKçÎfžQ5ݯKx™±Ë‹(kCvÚ=OAúŽºÒÚN'…Å["ƒ†H²±÷›Pã¼ ¿×_~Hzœ;Ó—Û³Ù9d‹ËÅ^@Ρ rIw#äN·.‰@¢NÁ÷2»,¼ªmÜOùÙþ-Lÿ‘£@ÃAôp¾tÒµMM1ºZ¡ô2£ rýRGE´_Q‰ƒv1Œ)sÎz0CŵÎt7¡õ ³< ƒ@¤¢‡ûÀ[ĉÎû’Lù2©ž «lh®£€L܆ÛÍ)›“Îmê'Nó“ðNõ¯·dÕ•S ””ÿ/CºŸ®ØÐ«GÛ¡Æ3ÃöZF‚”—¿…ûavó¿­%LJ÷°ßåçî´e¨ø &bÕJ®Ÿ~`s¼Xq/—Zý†¹Ms‹›C@?`ûnQ+ID¢˜ÍÃE _•¤m† øÝ\J^€»›2§Põ\(7”¹@¨¨&¸IÚÈ_)YuÍ)@Ý©m,ÚDÐ&>ŠéàC)¤ÄñÉÖ³¨3´ðCœ¼zG—úðÞ¾³¡7Mp¤çøK"¬0d– ¯ËHÑÍV‚KFƒ ‡:§)J„¬AyN}•L;µí‡U­ÁOËAÉA¸¸FÇv­}£.0àzšE˜…î­×ES³3èOý#bOZ—|É9Ï¥Xbu[4ðÙCÄ~öªrÓÀÜ¥"÷ÏFƒ’/o^æUÔH|ÉÂðN÷¼À߈ß=+ù\†Ï\ö¢M'¿·]uŠN›ÄJ<—^BЗC á±';©RI‹¢säãë½H€¹©yŸËŸHO“×k`àhþŽ’J”çF’¢B&¬©í„¶æ4À[Bð„³üõ¿ó€ç¶Ýü†°E(¢Âž×|»Y;—çgävA[ ±¹ª½ì|K‘}e¨fMU¶¡Î´Åm¼xôù·ôcFÁ©zÃÔ2£>÷Ó+Ÿ`tGHL¸7iÛ€‰ þ7³‘OÙˆ@ÁÌ åм€Í–eF®`C“GKdºRuÊ]I²”7L)¸Ã&Ûµ­í§?ÐóXoG{­NO$ÝfÀ›¬„ãJ •É~dLÁZy)“ïÜ0HÀˆ«Æ8–þFx‹¿ÅZ K²‹¾Q?º³ÊZ\­”¤O¶·9.€è›ôNg±%·N²›(nÊ[¼ñ}¼»=°ÉrE¬£›Ð^馛kÆns# MΟ¯2Ì&­¼r 1»Ùî°$FX-C;òiNLŸ€¿1;ô$á 1»Ùîw°$FûÒaô°èFxš£VýgPÁ¡Ú&ò²ãÛO¼‘ ¹¤Êw•ÂÔ·ªþ†™N¥µàˆŸM/û 1ûí°$F 1ûí°$F<æ<õÅ(D@‰/u"…æ¤ û;&sM‚º$LLëßgñtÖ8ú–Fª§Žs^Ù@ì½ùûhÇîF’‰½4+§J$A_̈uuB¨uI©mº~;¨Bš…Gˆ‡w¼"ŸÖ潃(ýzS2E¡“ãö@½ã~ïÉe>çkBõ‘3ûAꊢ î2ÝF­T›œßÅÕs¥æß>MO*”€J 4ÅôÖ†SbFË¢N‘•Hx"‹zU5HÚ¼5~ó ¨L]¦JšBDA‡¶[cZ5Æ©‚MHH-š¼ëún0æjƒ=QO˦ h•o¨Ü™™¯n÷ôMó´cа¼¯¹+ur¡F'½h:×9¾UbAŠJ«Ûx³3ï:N œJ•|=tb2›`qàŽ%Aœ¦î÷À:™A|ë«(iKš$—ö µôM媿ÅÅAþͳˆ‰Vîôäý1ÊM^Œ™ÎçÝnËxÃߟÁŽM”£¯ÀBÐ&*m­d‘ò@¦z-’qÓD›7â~µN@¡‡ÜΕÆWÑ{niN1M`‰EÔëQùÏž{’MkEŽrQ`Òè=!j_Є MÙ¿×8 ùƒ¿ôÛ7˜wïE%¨ü¡(e)Ã')}*wAî¡›¨¨®¿ß‚ p£ 0J÷šG2è`õ6Iw¸{ ÀK{ˆ`åCùšcˆP^6¸C;¨Õ‚Á«¿R:ư¶m4KO . Îø¶ö¦<ßFlŽK¥“yCŸ`¾t­òò}ÓJŒÜ ”Ýž†\ã.M¬¥;ëoÑxåirø=„NʤøZâ $r5YÁNWKûœ ·û"yË=þ65ÊýJk·Bÿtlᅮ厛nùIM‘ë)«Ñä›DÁNêOËVôÃcî]G»)@®ÑL´º¹Æ#OcbŒfD5Š"Hž²ºú+|¨H½zH)bO’ˆn³ÿjì;¯ë³¦+ M®¾Ù,ôÉÈKÂ+-WH‹‘K:RÑÓòq…Ê·H픹ïiZ›òS"O%@ܬ†Î³®,`AÆ’»‰G2‡ä¥õ*Ô}’ß Ùgÿ©OÉšói2Klf5þ›Á>aJ“²íÜÞxür@èEN¤EŠ„nJ‰îdiÇÃz J²³„¨õé\½¨L‡•çÜIØ“eüÅH(q¬?ó¢EÎMŸbç™-«K›ñóÍÆå=FJ³ˆ/7î àûócõܤL —S„ð¿ þ¬u—kKi(¢ö¿àèýv¥ ÇC8€g÷)X‹kw¸” °LM­‰ž–ð³ Âcû8Ò³BLK²(jã\Vš—xG}Fé¬{ífwóûKºš4@¾¦ ²¯™·÷¯‚ÅLНöØvÝ «AÊ­ûI²¸é ²ü°"¯óÅKô U<¢_?K >YBˆ‹›ö ¿æ_m7ß?{2@ÍÏ+˜;óÜd!+Ø M–÷Ïn^kå>ýTyL𖰴ظB†½Ö ßãAÐLžz-eb&¸,,âiL§µãU‘ðéqŠðI KZ­bm3ëN´<ãWI–C¥ç“}]E¼V‰h,Ž3·Jª%]K æÑêen&/rLV³ÆÓ%MUê ­b°AA±2„hvåÁ§ŒM÷eÚO4¿ Ÿy'ÞžŸÍFª„½F†·1yÛ¥†€OîÀšÚ²MûŸòÌ·«Ù4ÌYuðU²µB¯F+\¸1\_`#è5¨&V2`9JÊ•Š]îÏ, ¤n!–éF‹M¸fÝ71xïŒÿðÆID°†ì‘älQ˜<úíïHÓˆxdæŸßPØ|©VñcuKôŠK¹ÒØ.z 1»Ùîh¶$F 1»Ùîi¶$F 1»Ùîj¶$F 1»Ùîg¶$F/í½ÉYBl’Lâùãyi~ÓC K|£9¨QFátyp‡/þ@A ˜lйjý!^À¶I!K_·¤”.;;:±æƒB[¿ê7–Å¥Xl섊VrH ° ÂŬŽ5kxñöuHõ¦ßÞeº«ì“üQ=šHïA®†úÎ1d5Õæ‚tNc0èÂ<ŸUÁ‚–ÕS¢Eù¿ª}Ûƒú„}ó“£ìÆŸO¶•5.Z÷• 1ûí³$F 1û펳$F 1ûí³$F 1û팳$F·‹!(UN’‘sw@§žA³ÏxoÃC<˜š{iŽ Ôá°œû`Jb4¼ë[ i¶<&´÷çÜHô°>>@ªgÁ^Ä‹ÅtªE= ¾ÓîºÆÿÀ`d?s!Ic²3:Ò kP !ÂÅM•²v·|\…h‘Vý‰ÙJòž¡ëüÝ–JOsß JH˜Êß4·b(ºÄng_L? _ÐÅ|8… 1ûíC³$F 1ûíD³$F 1ûíE³$F 1ûíB³$FŒÃÓ )Dʉ!X«¸‹Yß®O4ûñM¿Ã£„W¢­vS”åGûˆ_À7!¨Ÿ$Ìy}Ö#@ÒŠÁÞÎ%CÂ!Ç•°~È@õ‡Hp¾q( Hù%ùÃÃC©‹Ec^î.µÜqäˆK¸’{GØ„MIvÌÞ >†D!¥6ø|&MéÀÑa¶|MO§e  €ÑX›òÉ<ÍMƒ¿ äã\8êV0U‡åWo@¾”D rc´Aì 1ûíù²$F 1ûíú²$F 1ûíû²$F 1ûíø²$F¹7 ÇH˳ lÏý',åÙš–«UÓE*ûž¹5T–$Юƒ„«ýK8»/ õ•ý0V 1ûí̲$F 1ûíͲ$F 1ûíβ$F 1ûí˲$F±·:iNP¢5&|Âzì›2‰b¬@ §›Æh;É žZžçÑE BŸ—ñ¦ìçHé…»¨µC±Œ PÚ^Žd±JuÇñJô®3CêŠTnå„KºŒV».¼f ¾]ðËG­Žç @†ê)[GðXMM¬°O§h¦h…ˆÜ³ÇlMgŒ™“]7ž`^ 1ûí½²$F 1ûí¾²$F 1ûí¿²$F 1ûí¼²$FòÐ!ĘI[¯x1ÐÁ™^kÊ[éCìëKv’dºŒÁ) IÍïdj¼Am¼0_¨•´ío¨¦\©Cmœå(ëÇ'¡$_Ò)þH“²øJ_̹{Êòòù_]F¸¨ â£Ú¥—·µ4wE£…VQnpø&S·5‘«âB1¨$г/²:<Àœ'±»éAó“‘…‰Ú{’‘G{rû…FH"­ôå©n ;ì 1ûí®²$F 1ûí¯²$F 1ûí°²$F 1ûí­²$Fm4e!9ZMè™GLr@½ò˜Oáç6‰J¡²"õ¨Ã¢+¨ϤTîyN±Ž4/³x¹±KX3¸gMˆ‚ü%£v7ú½nç‡nJЈÜ=ÇS;@OœÕüDEE䔼ñ| Ì{é¡@PªâiµQµtÖIn¶!Íïß0U»•§­Ü[KܧªíCG€} 3I˜ùÅ“JЕO6èÅoï0>Q\²Š)E݆ ‘Æá˜Ð€½<7H§¼Þ€—v[À¹w(®JuL “_P”ï€u›=Ï­×D¾·æ£Wìñ)¾ˆÆNØÌ¡«~ìXáßCÍÜF7£§F3;ewtðÎL=F@޹ÓK»2j~jG³¸=Û• ×›Xf²ZÆ©DîÝÑuÕ>m 1ûír²$F 1ûís²$F 1ûít²$F 1ûíq²$F o"DƒìK#¨5[ïË5× œVäðL9KrˆÇþßnmû$~"ß”TÄBL¡9­c³SÎ$kOÈwGH°­ó¦r«AÛ;H2§HC‚…c/Í :–ÀÀ‚×À(JµŽKB®‚NÁ¸yÔ¤a²@^¹¿=FàÁ üÑ´ÂqNå½à«ÈôžïQ c{SõFð³„RZC/?Tu¬BðÒßB©ú‚’i•þȦø0cœM˵àì;åÞõ 1ûí'²$F 1ûí(²$F 1ûí)²$F 1ûí&²$FTª>%µLÚ¶zñ±zïðkS^ñÍNêM|ƒc|£~jtßuõÏúH®YÅ‚àÁÃ]Ö©Å sB›¶º½ù)c¿j:T ”A“¸ëW©údV å0@°§´¾OÍhe›ÑNCAÌŽ‚Ž3»U¤Lz>]D¯¾Ýq¤ÄÌBJS Ý3JöŠÎøK)ÒÆ !sÁÆ•/BƒlT/®.õ×y?¹€G’¢×U>Ìó 1ûí²$F 1ûí²$F 1ûí²$F 1ûí²$FÁ;‚]L³£ÿƒZ\õ+f_ò*½E¬È±3”>gfÕØ„VeNHœ.\ú.c[»zâ!dWE_¤A×EHÀáFмºa%Hh¡¨¤@êVˆ‘UJ=}Fç½*t¯0$~gE×F@ž»,åz¹‘i×÷r9LûªY“Ì©8óE¸’Š˜ùHÕ±AÕY–d5’<£UOi«Þí¡Î]ra·f…I™¤zawtM 1ûí ²$F 1ûí ²$F 1ûí ²$F 1ûí²$F³ËÑ «@™ç/`vT?R¸ÛÂ^N‡²‰ZÜI íÁÛ¹`XNN›–¦*ÈŸÇ=δ0úúJ·gìÖ¢RàËcCÝáï@£ó0}•éÔx½8LYØ¿H—¿¦ž=xà3‚ÛaH– w"eøÝP €FÂ]ÐñF‡«Ba=Øåæ'H*M<¡–â;w¢J nÈH²š+AsØi²p 1ûíú±$F 1ûíû±$F 1ûíü±$F 1ûíù±$F䞌֖¯JW›ºÉ¦ÊT9£ô~îhãJŸq–ŠûbQ†QÝ6Ü¥IJ–Å·$Gà¾MT¿wRöhL'«ôžù~Õ JE,N9ÐâI<ª”­çi“VSØÆ½£HF­õ·õÿ‘ÇÊ¢B_KN¹!P2°.$T.{ D.¬bžÐ»¾–ÆZtFÜMî„fÅþ5Òà\Ë(ÚIÔ²Qê)*OŠ… 1ûíë±$F 1ûíì±$F 1ûíí±$F 1ûíê±$FS:¦âLÀˆé—Éò®)©ed_Ô8K­Õ¨±w Õ°u×Kç×I#º $÷%ÓÃŲM‡i@²ƒ²,ÀfÓ!‰ô‰sêN.¶1ɳŒY?`!Ù;›N–>ÄEº”úÚ‚ÞLZošHb ØHîMñõˆUîÕ»J(…Dª’à;Ki!àÈsÖIÀª>dðMuÝÛ½a6s@C~«W¼¤Åv Y 1ûíw±$F 1ûíx±$F 1ûíy±$F 1ûív±$FOñ¿yJð€ñÀDÂö,ó|ï©"¾GC§‡UŸ§f2š;:ôü˜]sL˯ 3+Ñ-é¸À­nL쀵*«—¶Ê:›á!s¡@O |"†&g!™›e›þFr¤MHÕûw¿‰«ôÂOG%¦–2ZÚ”¿ 2Ô»jßH=©s\/ÎÒ<.kì”Cïƒ†í®–º¨ïJ4BlÕEúˆ!©£¼Íî´Aˆ`Ad£½£õK 1ûíh±$F 1ûíi±$F 1ûíj±$F 1ûíg±$FZxIqHá˜JŠÚŠž1!pz¨ñûÝA=³%+š£.úŸD0bkL ŽBß:!¥Ù÷ÿôú¿Þ‚He²­—Ä¢a æ4èîÅG>œ^Š|-w4YXÖ‰0á¥C'£b"OßŠŽµ_M6*ýB9¶+‹;£%ëY'áYí7@ƒ¯þ4o(MKtóîàCB¬ÅÆ„øA+fÔBoõ9hN§ófrv'‰¹!ÇбÖJä‘S£wmp” 1»Ùîo°$F 1»Ùîp°$F 1»Ùîq°$F 1»Ùîn°$F&Žà.±üF4°­iH†ûV 1»Ùît°$F 1»Ùîx°$F 1»Ùîz°$F 1»Ùî|°$F§jLF¸@³ƒ¦çL±È( 1»Ùî°$F°ÆÈvtXLr‹ñ4¡ˆ²x 1»Ùî°$F 1À÷™°$F ½sP¼UIÄ„­»öhMõ¨ 1»Ùî’°$FÐ 0Cq‰¬ÌWçvà 1»Ùî‘°$F 1À÷š°$FìõY.C/Ú@’­=Æø 1»Ùî°$F 1»Ù$F 1»Ùî„°$F 1»Ùî…°$F 1»Ù$F 1»Ùî‹°$F 1À÷—°$F 1»Ù$F 1»Ùî°$F 1À÷˜°$F‹Ò¨°!²Dl“¡ó1ÁgAD 1»Ùîu°$F 1»Ùîy°$F 1»Ùî{°$F 1»Ùî}°$F 1»Ù$F 1»Ù$F 1»Ùî”°$F 1»Ù$F 1»Ù$F 1»Ùî–°$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûíÿ¯$F  ŒtMÓ‘¥7kÜèù 1ûí°$F 1ûí °$F 1ûí °$F 1ûí °$F 1ûí°$F 1ûí°$F 1ûí'°$F 1ûí&°$F 1À÷.°$F¡’º~ìèFâ„¥© ú5 1ûí)°$F 1ûí(°$F 1À÷/°$FS©`ÊõmC ®=íœ@ò®½ 1ûí°$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûí#°$F 1ûí"°$F 1À÷,°$F 1ûí%°$F 1ûí$°$F 1À÷-°$FhòT&ˆBŠ¢r¹ÆmQT 1ûí°$F 1ûí °$F 1ûí °$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûí°$F 1ûí+°$F 1ûí!°$F 1ûí °$F 1ûí*°$F 1ûí)§$F 1ûí*§$F 1ûí+§$F 1ûí(§$FèC©·±(Aá»XнÀ²ñaTé;GÜ”³[^'ämá®X¸OÔ+ÑÀý?pfžÛI´N¶ÍcÒ磢®;‚MŸ¶s©&ñ‘&€…1ûB·¾§Y¡¶,¶?I¡%*CJè¡FQ4é½\‘_Oõ¤Ðõ˨§p•éšw YD£«Vb# º–ªöQÔ)QJWƒˆX èÁ®ò(Cß_Oñ†ÿÑŠM= 1ûí§$F 1ûí§$F 1ûí§$F 1ûí§$F[/ “­AÊê—^4BX½õèe€¬,Nx¡Æp'ŽfÅŒRL^RÎG´ƒ+Jù a›4EˆºÃvIà”$ï# Ç7P÷Š`šH³œsÿžý x„l*£X°"H½TÅ   cì}zeêRO2‚¿Õy›=uå&øÜX”“HŸ”téÖc€Þ" 1ûí§$F 1ûí §$F 1ûí §$F 1ûí§$F¥¥B4^5Eø¤sy•—Ë_ï¼¥ ç£Gè• ð4ŠÛç0B%LT5H§¡gzâom‘U{Ž D*¡à ÿ·8ïÕGöü!E„¢)f O'’&{0ƒAx¥Jœ¼Ñ(ÔƒØ8[lø!ÍŠJ¶¿=ŠeÂ'„uúa3ñN¤Ùº–ÙÑ9DlÉ)Ѐ@!¼¸-ÓˆßñïO,—îF²¬9ëD×Ç 1ûíù¦$F 1ûíú¦$F 1ûíû¦$F 1ûíø¦$F²¿šfü\J…šËË`bV9€¿”þ‘I)¸‰!e–Ì¿½X ÊYTB릷ýRh;/SL=*?ûKH¬ô®ë:ç«òÌXŸòK¢–›ÈÓšïê’½oŒ8ÃC[ªŒKËÅYôZïW#@”„ÇÉ¿`ëÕów‹l•£Nh°M½ÉrÞ^ÙÑ€y±@¾´pnI6Ù]nˆ›ÂpHò‚?sˆúp 1ûíê¦$F 1ûíë¦$F 1ûíì¦$F 1ûíé¦$F^pð<@ @Z…-áb[~ ” CguM‚‡`ÝÕmMä ¥z2u˜zFö«E+¼ÂJyÕacj ;Ne¢%ÌVQ ˜+Þ²å]4K‡§OPó9!„+l3±ÖGr¯xù2b¼’C]ö[Ù@š†TÑs¡vâWÞŸj7°5N‹rdiì<<|$\[kG“Œ8Ø ø­–1Dd³J¾ ¬JHÏ¢¢ 1»ÙîS¥$F 1»ÙîT¥$F 1»ÙîU¥$F 1»ÙîR¥$F 1»ÙîA¥$F 1»ÙîB¥$F 1»ÙîC¥$F 1»Ùî@¥$F 1»Ùî2¥$F 1»Ùî3¥$F 1»Ùî4¥$F 1»Ùî1¥$F 1»Ùî#¥$F 1»Ùî$¥$F 1»Ùî%¥$F 1»Ùî"¥$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî¥$F 1»Ùî¥$F 1ûíU¤$F 1ûíV¤$F 1ûíW¤$F 1ûíT¤$FòèGaŸ‘A)“ê^Dÿ)«c 1ûí£$F 1ûí£$F 1ûí£$F 1ûí£$F 1»Ùî ¡$F 1»Ùî¡$F 1»Ùî¡$F 1»Ùî ¡$F 1»Ùîä $F 1»Ùîå $F 1»Ùîæ $F 1»Ùîã $F 1»ÙîÖŸ$F 1»Ùîן$F 1»ÙîØŸ$F 1»ÙîÕŸ$FÔöeÛ3J廦8µT¶Î(ItâªBÌ qçð“Oì~¿©ÂE¤“?;ûFÜwŒ׺íXI[¿gèf!C9Ø­ï¨îA4¥apÒ·ÚŠÿ¾ñ½òÔäL³œFnÉ^♓١÷Aº„Ùú2ÛôõP] Ç/ÛF%‚$Õ &ЭR‰'9ƒ K¶ÌS)„ñµ 1»Ù$F 1»Ù$F 1»Ù$F 1»Ùî·Ÿ$F¦ ‘ÔvEã¼(Õ„¡O#„d%WßGt§}ºĸQ1ˆ©‚@CÞ½!Nèû¬;°´ª’÷AJ ¦³ƒk€î4çñidCN¢œA0EOÅ“ÓÀj—¡Âð¿›Å&ûÁD?dgKÔN›k|b^O8’rùkø§êFŽ”ôA5®wäñâ7^s‚“y1L™›œsŠ)Ú=­¯íö2Aý‰¢"÷(UÈ»’j¢V§éJ„óÉÆîàq7a˜C¿¾ \z²A–ö½‘ŒfGAO²4¯Ç— Æßt‚‡1C3›Ÿx¡‰Î@Û¶cËÛKL«ýÒô€ÇGËòÂÓFQ@šº²'9‰ÜÃr­VxdÑJŸ:TÒA÷٘͋ä1Nö¯– xÀ!ƒ4û¹ß7G…¥”â>ô3§ »WÅZG ªô Ê–5Y:weà6û“J0 õ@ý±#gš÷]XÇ>ÚLŸ¨'¸uI{'ç;*`ÁÀF‡½Õ¯Þh»}çQcÓBC’+ 29 ÑýŸt'Gã•ÄÆÎ i‡üxú‘yN9¾øm‘¸©é¾ßÆŸ@Œ4Ï'yôþ%àűO\¬|À^FëŸI ž÷£¢C@)šÓŸ£åˆ0 ÞÝAQ‡{Bm¡)vA '/£vh ÜJçTÀL-½uŸˆ¾l`O^©ÆABk'VþïöŽ]Ö‚F>Œ¡ EÀž[o†›CsFb™?}ãÅ+ßvªýè·ËC-Ž£Ç©D±ÒHaa t‡L¨ú˜ì2·ÛGg¢ÝÓ®KRBYê¯%À#üdÊÊ÷M ¤DŸ;¨8Æ~™w›Cô©ÿæFµá¼CÞ¢!IaLì”Øb„àÁ ÆLÏŸ¡I\85ZÍÀºdt1üLz¤t+XŸ½zåUO‘~¡(O°¢=IrÐo¡ƒ7ò…µOh‹Ôƒj݆ºó“Úã¿ûK•ß ÚUë[ù›•ʵG@JëÝÊÿ°ÛR?Xä—n,O†šjØ6ƒ¼¡ñt¾›IÄž^Ö¨Ùw+¾ –ZIˆ”{p7ð«IŽsáAHGI‡¯lß©ZUºUO±ŠD ¯s]Îÿ v7Õo.ŽE‡¿+»çQ_ËU…,¯ÐG’G?6¶ï3㽊ïÌLOû¸€;øNUMUS{)ÒOMüI>>ù¾¿dJ5±¶‚ß?w0ÙøH¶OGz‘SctÔIz EâÔìâH=±è‘`Ò…SÈ9œaA/Š-Pz-X,o[â¨NªµE0™h=žÖ,ÄrKÿYK¦'A23*ĵ =+R²4H ¬sÑÃçO3¼>uXxDˆ¾Ë¸™2„é Nˆ y]ì&¯Mú ®å©O]¨y³…ßý¹kXl©^Ÿ@±¬é½¨¯û´©¥ÐeK¬•x ²*ª?¡ºÔKRÕC®„ ü¡í+ôAH>U ÁH¼¥\O£îÖËÚ/Ô‡F8¶BBP?Mç×SG “gK‘Ð&:×"ùO·B <¥G†ŽCaª®,€ÒI2­£DJŒlq4Áœ:îoCÏÒ²ŽF€˜úœpëÁÂív=´Oé†`¼O.Ânk¡…9O¡þ ïøHîTR%I1›¢ŠÂpŠÈ¥eúšAEµîà*ൢ†3´EÖ›lì`=ø» €¢!‹ÃCÉŠ¨CÛZÅÐ-ËGN·GгbüSÆ\­_qlüLIŒjÿ8Zi®q%IäÃFN(¢ÛýpE3Æû¢Î4¦D¡™X/jìqîßbí_°ÀûMâ…`ñ#ì{³l ³!RJ=š‰I˜¨¿Nè}£Ô•¯I桲-™xG`Ò:™8L…„@ï¿_o\[ki’JœäŸ—G+½0-i#'‰'Á¬_—Gþ» ×c—fhåR° êl5G)°X¯™wð`]㜪õ³®J%‡.QM•^retôZ±¡MfŽeü7ifÝ"ЍyA]ÉLà”¢]—Èó—ú×U¾ócGïªfg¦[´ÁV‡H9äŒNBͯqã1x§øeXc±¤PH§·‹kão8±ÍWØ Ø×ŸM®Ži6À›œ<#©µi[IܤVÿ{[3TL©„—Ü÷¥ExžG¯ITu‡LŸ6À”£F´¢C鎒ƒxè!BÐHÛ¦ƒ#J¼Í .Ø>¿þ¶F$£VZ,õ8(Yúò”¿¦ OË·‡äÝerîªòŽÎ•!Fa„uìjuËî›{„Ä>K©§_ËÁåZ¾ïŽR³Bä¬ R%¯þXg¿:¯ß±A}¯ÇÞõ¼GHÛ~¾éŠkM\½@ +×þÃßÐOöV™NßÁŒ¸NÈseôæå–åBy‡9¦ÑX̽m€n7Aà„[ìKoeRQÊ e!ñ‘ME¬pÄuïé8»°'@¿]N躕UXÎ]Fƒ0 :C±¨¤ ‰Fm÷!"!¹PjxH×®GðäüåÔ9þ‡·(d8N½›ß4xí s+À9xªUDˆýïs5ÈÉ•Ù=\e•H1­éž1»GÙô•J¯wH´Æ„¡bQqCy5mÿAq¸‰¥þùõQZHüÓJá°«J~pYKFîÑ‹B»´«¹ûþ~=6‹h+å\Nó„ù›»¶á/þã»ÆGÛ»¤È¨&þ+ÌíÕ6cK‚£N‰Ÿ#+D‘Òº¶yôMڇߔ*¯ß™Fô¡/©ÿHÔ€ZØR0\ôM9ú|È©.B­’‹ÀèÎú‚%FO÷8ÛÒC“» ÷ä¶’æÀeÊ6ÃI;Å2'Š’J€¯•TDð²š×IýD ªˆnꎺO‘‚¾/¦knŸBŠFpÄ€H›£Ô‹øÄ¹n)°à¨— ñAÕˆB±G'¨Èìÿð§œCé´€ÇË4ûrOb›0c>D8Ž?^ä4‘ósî¾ãáH4»à‰‹’R•9cÓ½.C ±ýôªÓñ\ä½Ó®B\£é¼ 1êà_ÖI,Dµ•¡»Y°‹×Á…öÞˆÐMt£4YÕÊÚéRúø§ˆ†¹F¯”™ýݦp‰”B,YH•s­ocçÕܬpOꑌ¥KüŽÀ tr™=(D.‰µ>DÄÁš´¿Ä%²±MÉ£ ë1ÂÀ¤<³èAjxCe¢õ:±å<@4eºf7K¸„²â}–WŠékŠ=7MJé–Û¸š^aF4¢¸3mh‡DB…ý^ ž ¥µ!Ëé{±BˆWÆ'BÌäÔ]Ç ÇìO:¶+ËÏ5¡Ïu:§˜EÅ£Lù´(©Øf|ÁŒ¤ãH•_$¨§…5"ªC4mOG–¹­ÿB]= "(þQwID°ijg#oÐr¬ï‡(KI:’bÜoç…Îwäž®kLҞΌê™!8à óDM;…¸tÖÖØµbõÛL·¥CÆó•~”«g|Ê×°K‰̉”MmLmËÈY™=@&¹ªU÷Ý:¤õZ©oIêŽ(¨WÿïybÉ ÷ •B[Œni’*X.k?ò U›CyµU34ÚA&Kò"Vj”ÄI¨(YTÞŒ†&D¯·I ›~XÄ$ȳ™hóqˆ×@´×ÞðÁ­8&¿`’0¡™A½§CÌ*W)·$‘ÇThFT  ɬ ïçn§èÑ{K‘€‹ÐW²csuVÃa:IúˆïäÇ iG ~žšþ8D¼Œ<1^¯"*˜9Q¥€@Ÿ¢œ±öÌ%tï^N´š"‡IÅœøÍ…í4„N¥Ç"II™zÿÁZi1˜$þ%Em§ ÁCÁÕ鎅ý·€MzˆxnŽ×Šk‚´lŠÜËM*‚ïÕp20UA,>b|:I;†V-rÖí*}š÷6¿)@Ô©ªº9bÇyYw4{0µM%—*’ê˜^ñ ÜN¦cºL,­Ñ¢`Ö:ÂºËØÃw¦]M_œ…S%¤B‹ÍÀä¿ÃµF9´Ph"–´–‡:ÉøE妀çœ;Å!YÊöó8ÊAІ †ç!Û꥗0éC¦¬x 1fQ…ž}8ŒB>±VfÌÔ’ %êøh8Jô¾Ë.¢xÜ~ÌeiçæH¿&4Y1t£Iû‚KêëÚI§S¥OîXbJ*b½@dœÒ)R„ ³ã€l9piOɼÑ#„“ëqîºù+Cr½ÇZ‡„„Ûi•ÎO€JúŸm¸è+¨É´1Ö#þuFV‹ûöô=cT5=ÿ9?Hõ“/®™bfΙ¤‚GH²E,Ý~í% Ýü™jMò¯Æy~zM[Ikäç»EH›¯çøá‹ û çµDFBe ÌémOËÚµ¡šRÞ·ÏAí¯â=†É>ìY‹Û\ŽõM‡G.ë$'ÆzÐîÌsM*¦Áˆ³í¸}ñ„#ZL$¾ÿ‚^z}ÿí9ÜbíA­«%ÿX§1 >°˜ï@@FcƒˆÈ)}Ç" Hd –”DʦH|׉æÝ…ƒõÅ«H¶‘¥Ñ¦ë§¥K>Ž ÞîeCÖªoß-ˆYAÿëJ£‚UDZ¼ä"ð1ôÉ2ÑdKw  !Çí¹Ø¿ôEq 1I'†¨`çêR§ëâ¾u’>æF¨}áët¯Æ ¾6BfJ±Šûº&¼†u0ÓYóî¼»K¥¿>, wŒ†¡09%Ôý!@²§©hvÂnq z8”}©CƒŠÒ9›±ã7xÑPÂMd¹Î !Øäw§ûÝ"ÄBîŠ8›JdÆ{ÅGöø» ”F½Ð9 ‚¬@«Ôz»-LP£†)õ¤ÐªoÔ¦#jH¬ʾ="AZòÆxÀAo™ßŒ’n>·ÕYt€OUŠ&`mà—àÆ&3 kHCå¸{—Ôq·öZ”調_IAuºr—=™aZ£vUtý Jzª˜Æ®³¹ch,€Jz²ˆÂAÆÉ8”º†1&·A±«·°ºV¢p¼g'I5ªØýƒØ ~ql’ ~ÏDž L¯wd:S®{Cå³L+ròfz+æâóVUN¼f€*:YùnñùºbF¸8©ŒU&éeYóʯNi–‹êáÍy^¯Û‰Îé—@V½»˜Ê}T|–%È›U’Aè½XâÔIÁ DÉ%9*MF„ú>à Ó^a ±©½ŽN™‰Àò^õHR¿!dF.x»EžÝÂ" ‰½4»{âêAb¬±§æ7;§¿ ÊD¢·0ù:Í·O¾ŸÞo~!1Ï*ç ÖBûžûîa­úÌp0Ö øéÑH\%m ‡”LÿôæN®~Μ$KéîË5ÏNÊC;/8ù>¯Ê!߇ð* ðAr›Fz$c]0Ô•>æâšåE¿¸£˜&T«vœÇÆÿO-šz½‚UÕóe-ù´ÖKlCá¡ï÷á˜Î(Ú¡Ž œG”KÊŸWÞ_oÀnt²˜'Gÿ¨§ùèÀQ# ÂwÄ«{•N¬§=?wðVJk·tÛƒcGàµKN%( ›CÜx¿?ïFج0>yŠé2^³\ÝjíHîœÃ‰g'´×ÆTùø M>©_M‡ð^œ¸åG¿;G»ðjû Ù«µf¬§æ0EܼúŸ’‘öTé„,Hû“ ¾Pr]ÀÕh(ÃM‰œI´õbÍ•¡c¡“u(ÈCK›!iа’£Ÿž :òCñ©™HO‡7l®îÛÎ*;D<¾· ægþFµØ“­Cí˜)øbî›·©CàC]¥m¨Qüöï(¼ëÒÄH¨9ùg‰¶Æv›mÄWHÕž‡_x©çêÞ%#cÀtJõ¬0“"ßçÖ—XE!`6@G§’ Îô-T(á5Ku·”˜ÈJÁè—ïOä‚@˜‡kššoTÝ!ãÓÒNZœíSÕ1jfAFÍnìFD‘_¶Yµ†?kújʺäAì®ëFŸZ9x¬vTè·Bˆ¦Á^­T'Ôï,[MZ«1fë¾c‘AžIó@IŠˆÓ)D®Åß²ÓÆ½'÷APŠÄY¦rFXmmmJDòŒfC ±R‘Z?Ó tX(O—ýf7F†P’ _¬JGÇ„N„†½w-ª\Éz9@‡AS˜2÷ý ƒ*MF¶“îÔ¢Œ´TŽ©ÍóL€C²­ G‚¦¨ªUt¥O$Œ$íG˜´'ÛW®pCAõ¹BïD}Å;{2ƒ‚<¾Jß‘j•Ž{„r'OHàÒGÒAÿ´;0Ј׹*âlK08M‹•ߎT«Ë“ês”3ä5òJO¼!=F»‹i™«â°… lKzŸÁOÜÚ¾¸¦$G¿u›EthöQ«&x2¹SD´‡zW ¦?V´ñ£~ùK> _˜Pîk6¡-² ‹çIbª¨Ü·¿ù§áп[&ëO”«Ae6Y©OÞ>=@Dû¾!ÍÝ…He_ƒÕO¸¹RÊ–a¢„ß4©“]MÓ’¹Ñeɬ@Ugƒ#Hر.kÿòÿÄlN7wGO⺲ÐDGàlê®—Y`Hï¥ïSuÌ[“6:–°4› DG»³fé<ˆKðÄ’mîE䀼L³ ´1Ëc®…5G,œfv ¦¼J9:óßaÙN?¶çyg6>‚c…¼hjWùA+º•ÿò;ܾ)ÑnÁK÷†&bRT”ëAèõÍjUIá¼å‚,²äUß3ñcëCKŠ4ă®­/u–G¶²·}L¾IÃOZZ©Ì’1•sOž‘°D<¶å6_,­îc¨TFi«ÑoÐêZÎøBÐ]&Eˆë!GÄ{8ÏPÀ2ÞmFAˆß¥ 1¹ÒÎŽF´³LÅ–Œã¿ÌIÀqÚ¤2 ]ÁEl®Û#Bµ-õÛÿB÷fÁJ¡µÚJ1o1Ifúé´÷ÙŸK€¡,õVކ),þY—\Kî™MsÓìŠÿ¥*ž:‡O—¾6uƒv0a/ÞòT‰J “\2ÏÂÄXóD¦ªfë¡‚FW†ùù–YL§¸F$›ìE×9K>CYšh^}È{ü[ªGªªBåªí×|ú¸©†@53œá}A‘SKñ—¤~¸c'”“*€ßjFˆ Î ¤ FãkÑ:™2­FÁ¢+5¥—+‡n7 UéHƒUè°}î÷Z9²DBͦM-¸¿xnÚf4¡=ZñIÖm%ÙUï—뼞5nÀ»BÍŽ~ µò¼ÓÕÚäHJ¦¡…1aÉí2\7žÉ(Lˆ8°3¬0Š>уm@‹3·W‡¡Ö\»¼ØµML½øGÀØœÆLÈíŽQöC\µoz[wɘ:YèG„Jé¾’,Òñó;9İE¦²Žê”ã-¬K ˜´Jñ»#mùFD€…hÛ²éªN©—t=-ì½ãJ#ô’×BÆ©p$<µ&JëZxX?K„­æ´ôÇãõˆo‘I¸Go’Ö=© Ù·<4êìžæEŒœÖÛË LD=Û>S¯-FU®Ï½  îöz£ÁoRIø…¸ cáIrnPƒC„©Ã¡KÖ—¶Œ‹áöGIׄ|¦r^×pöz@G”HoŒ&· š¡iþ Ú1°Bd¡øÙMÖkU¥Ö{û‘Aô¼iÝåF’x¯žYo”@š¦„öÍ,ƒÓ`ò^‡×Gò¢y$”ÚE-0*¼p°Š¡-Æ÷O}—ŒB/33ªg@¡R}AGÜ„iE ™²ÀwmÆk7O ÍÌ»šÐy|©¿@нq†¿„!àmí1úË©L椠›Ú2_0Á+´€F)ˆšjæIÍ#|ΦºŸL@;‰T´Ê!å–øŽà˜TÔ¶Ló½ú&+ìŸÿ¤2ó)[\«K9¯»]é9ß9ð“ÄDI*°nh9öjgš¢#2dH5·Ãøòº8eÁ$Ÿ¾ ;LšùÞ»P0DOQ?5Gߢ"µ©ÊÚäºÕ7GV®jÆæ¿âA"çÃ@[²‚ ñΖ÷ðÑ ÝœeE¼Õr*†\¯¶û7f<ÿÐOè‡KÏÌ 8—,Ás?çýeM¬u„q`„• ìú•9ÆNF ÉOL’’Wt#§2WÌX­ÂWC⥓,ƒ :LÞ:>»¤[M;jˆ‘ÚócÅB=›@šD†´@ê8~MH¼½(Íòì1¢ÿ‡CLi²ÞxfTñ©ÓýÞÞ×_¡Gô¯A˜¨ MriâtÒšH#¬ZšâÅÊ>ËV¿Æ4N’¨!XÏ$&,(Y(’“­JuŽÏQZìŸø` :ŒK›¢Ñ[ÕÎÆ}n aLxMƒ ”£ qĉZ=BÞŠ.ÖÑ(ýö޵@LLt»WMW¹)?Tï율Ò@O¢2…Õö!‰ÃzÎÇ„O·ã6Z…¦ A>UûáGø·¤Mžeê£Ì=ØÜþTsOÉ{U5V4;ÂÁ7qN¦GÙ.}Ám¼j)¨áìfK”œsRh‡Âþ;)–”ë Nt®”®8&TŒœØ*õÄ|yNU”¹Wù¾Ks¾^¡lõD@ŽþÉÊÏ‹’Ù"N¬\š¯@u½sºd^!" GU:c*ÃO¶“¯\¤Â˜ àîÔÓ¿cKTVô¼„ªÍ¶DÈD)Oœ£Žd2¢8,¨lUí'7ûFü®?E+Âw]Õ /'²Kþ’t}¤^ŸcºK„«]ÎvK?¢`üÜǨt÷ ÷XJãšhN‹Ÿþ<í?m¤³Eú¼Ç&<ˆâxCӪ¡8ÍM¬ª(“¬¹v<`°÷i@&ºD~÷(¢£5–AoÞ<E0ˆÆÞƒȼ}H=+ì|FDƒœ±ÄL*†-_ÆF·è­í§¶ kW—N~C”¿˜cÔôçŸNH…^ %De\¢°.¦˜SjµwKz¬ x<^©Ìpìï!çKòæ®2'ÐSfn[OgA}“?ðqÆù"£Sö=G —_Šf»5Š8\¡µzE؉j\œÁNéÝ!äSJù·ùî–cYÉÖ©•Cà,Oô‘˜îצœ ê?¥rBC•»ÞShw}¡²¢ÏÀ/A…tWé?£×™†OFÊ‘¿C%¶“mx|!†$‰•:E•­üœ²Ò€+%Çé˸³éLd…?1à\ ½:©ojKMµ9áEyL"Q¥¬ÛDE³ ìRst ôÿÏ{2A # уΠÖxdö«0Oއ·€2_õ]+é¸XO¬µP OLƒÓÔ¶ÛML2ŠTÁo='Hh7Â4±ªMO•¥ €Œ?*ŸC.mD!ºîð„×U%ÓÓTMäiL¸š£ªÕ=lm%¾‚sÈB5®¡êòPŸ‹lÔhÉBŸN{†^£uç˜%†WJ„WcGxºH5 ëó,Ûú[~L”Œ…ªðcf«ˆš° _eîHq™A¦†Huðй.Ö`¬#NV•bär'Ä“¼&GäE/™~qÆÈ (¡!¡Ëk ÒAÖœN•ojãÉ;ƒ”F©"ˆEê“—3Ù~öê½>íBHJ"”nãvøqšÐ*¢•C]üOó©šœ–Æq²êÞ±ÕTŸFOâž-3¡ŒÈ§–ë庡C;¶Ôð¬¨Æÿ“žv)°Íµ@d˜ô„F÷By7m¹GÚ‘ß¶éH¨–xm²tHó–á|a,OëµØÚ¦ÇòAߥéK÷‰,èëp’ú* NÖ†ÉÌï¦Pø»‚€ŽJ¼§Jµâu“+ «c;7qÿFë†0~M¯±ë IÊŒ0Eq¢x”GTáþàC ¹Äüö ãZæïÐFдS+ÏP…²aظŸ ² EÉ¿(x!9áCGÊ£†çEý€r¿õt¿;Ò) Bß6©Nи’‰QÁ:‘Á(/<J<¤Ö݉œ-eD#‘4‚DÝ›–ôIØ¿‰ª¦J9ÆQ9Eûƒãù: µFF xÆj[@¡¢Œw 78¥A¯«PˆœL²¦p¡êO …îÿª†33îOk øÏXý7‚8f¨*hGcŽd0i@}0Œ{g5N¡§Ãk6›Rª»¥J_mÏÆG.™›Í*«ñ!Ë´Â,ž# N;»¨¡\ALííù;þü-xNà¬çSÕY‹5ÄÓ/ôÞ%@|¯£ø@;ÂD¸6d´Ð§Ar†qðÈDªÃ žÍC›’ ¥âlÄ©çÑÐø HT¨f,I‘m^>ù«ÇŠŽAþ!¶Ù=!K=ü1?(Fj·§ )4Ï…Ç¢ßfšE´¬û™Z^¾n¹G¸8¾Ï@®½ßr’ÒÒ/~5Pp,¸E÷¼þ±æjib@Zª‚ŽIˆ†©Ô+] 9‘¾ö¼l®2Gž¼$q7ÚÌcÞ¢Ezh4@´˜ñÞÕ@¡™™ØÂ£Àn‹LB©Ü”+ÍŠ¶ÁTž´IìšIÎEt1E5 P½ÄN¢¬m†Òê%R¾Eð¤išIe¼€ËâM¥¤kÆVD¼Ã!˜úI£Ðˆªæ÷ÕJí¤÷Ÿÿ)®«úîc+D¤ŽCrJ­#$ºwœ‡úAí¦ÃV&lh¡6’L}¨rßœóªì>9©HÃGBš€6zÕã-’KÝ_—Fp“9'HÍÖFŒ~Xä-MÆ‘êëŸ*]»À}˜)@F—»Ì¤‡”U¿úTN„£¶ŒNQ—$·Ð¿%,¸W^Q[)Hƒ½˜»í²âE)î­5ÖC.˜¯Gñÿ…[½ZÈ׆JОþ¨L° ¶–à B †G!]pwâce)L×|ÅòsÆÖ S&ˆ¤ÁKj¹ÁÃÑÐa~±Œ;*¸…D¾ÊÿéF&T‹ÁðÕA…»†vÞ½¯AÌF·‘À¶C“¸þ\ç8b0®ø˜ÍD¯þ£ò5Ç8ÈÍ‘ôÀˆGJwk“Èa,çÔXèFéˆ ì³<á>ºÐÔ›Û¯KE¯‘ÌrÉu+ÛÃe¬ð)˜vOö€ŠåßVý9Ýc@­ýI¹œNíp>®)TòèwK¯”Öá‰ÅQ.ýue½~}uBùµ¤T°˜§îEúú¤ÛtMÄ¥ÚøGª@bKÈ»­M}¦Ùå2PŠÍ&ˆò~(pGw”TòR¨°ÛÅ÷Ÿ`J‡Lk‘#â7 \¢08…zVÊC…ÜÕ7©³Y­JBÏB&¦‰„צÁjžøÆbQˆ@!¢Ñ',ñ{‚1MLù=FI¡èA¥…ÿø\ÑðRH@‚”4yÞÍE³ßcï SN ¢“¿¸¹\ƒîßÄO¯ÍJu˜ Üò¯uóz_ ¿áÁF‘‡v˜[ÆÅ aË­ñL2£MeHÂP{nç>qªjC±¡Ÿ+§b·²3r³É¾ºFÞ“awlpö&ëyÁš^…õN~·.áè8#Ì~ȽWHO™ƒÀ»­ºñ±ßà˜æÁBÖöä¹#n —IC”°-Wt©ª~ûÌ/&mFU¡õš0¦\ N{µ1j^M9‹7ª?µa Œc¸-'¨@S›Úpul©1['p±Þ¥L¼‹•&X¾‚ˆÏ¼¶€úsFÊÞ0a5i; XŽ»FñB¦‡³+¼Lþqp=+.N {ó‰e³„Zí IM‚DEÎ¼Õ ‘r> !$Íír£@¨‘AÂbß “ì7A¬üB“>‚qª±'S€®/"DÍŸt ;ž6NišÈti²Lã½T>¢¸|Ôk¦¤ŽOB¯ºêÀ|cîGWìU®ÜûJ¹–ý÷M¾Ñy}®æËJñ±¶¯ÂÔB©2?k"ð‹Jš P»Ò<•r[%ù…±ÏN¥ƒªÀâŽàs.Ú4*|IÀ°·ïŒ[bUûmMõ¸ÍÄHÌ«G~üóZ½]¾1ƒùM‘—(­„óÿ–W£'®æFø•H©Ú·DDfS¶ã"vÆG…¢Á<,h÷e­ŒQtOÓêC÷“¬Ùå®v5ˆ‘J?ñB‹‘ÑMþQà§ù]’ÏÊHh½{:ÔsXÃ]ng4H–³­@A†‰ã–Íê1P­Cñ©‹Ó«®îŠ÷sªJ8®(4É¡ >Eª†mOM’„ µø²˜mP©‚@ÎNH§\X8ÀUÂG¼@¤;An1ŸáNb½Þ[S=Ä"JžoÄŠ¾É©Hmà/L˜­y2P³*´šÏÓ¾N°Cù»TÝ ­]1C*·Y„„h¿î¸—¡çLƒ ¨„K‹™EÎøóI[’ƒ±Bµ%ÓðY'‚\L7ºWvnц9Š54KæÒÖF½ˆÔ_à’#›ÐFq®Uþ¨˜¶‚Ö¦ÝÕ=Ab©•qœ}Û—-·­%Ì3M¯¹ŠM™s±HÍÜêÍD¡¯òMI+¤ô¶ÈÊ„I¢–q 9›¬6pÂåÍŽ@€´"Õ„áI˜_,‡EžMÉŠòm òD£…£WûA„Ñ^ŠxÊçøÒo.KÛ´$.© S•9ÎZâ×ÐC„îoNÃîĪ/ðÄÀCš&þ…eƒ;^‹×¶¦O‡ž¯'°£ÐzûÁ« êi°BÏ“×üFíÑL”1ŒÜŒIN/ Ôþ;{jÜòÅÁÿoKh´·l“ü+&5ÓÚBêEG¥Åk„hi „—ó>gÄK}’Œ OÆG`ë̃3êJœFwš#´™Æ˜ç0?á â†Hƒ•ojã&ß1)|1¹Â–H³‹Úfðugð:½•gLPB€äžG3d?@uKûœA¿æ $½¶”¾r`Š)}Lϸz("£eWÛ½+jAG„“4h}]ÞÞ}'+Ë AŽŒóÖäPæÊY9$Y3ÒJƾ>ÿkqB˜bVÚö#BꌑC;Êfg(þk\D^©œ*Sr‚`³/Õ¹A¼°ü08º«Þµƒ]ãAF¤Æ¤"Y2 ÚÁ0 ðE€¿J†ÂBïrý_gªh+F¾£*Ë/¾z‚·1rjFLÉ£ÅÛêmôz>.çEž[Èá ²fÕ—1GC^¥Çh&?§2R>h«d:×KÀ›Pøþ2X΃£êpNŸ«ýÆyïnS¹ËÎýE鯯Å#â„%s𓹷ýLÐ…Cx÷'›š6/½wèu•HŠ¥¸ ±@] X´ ø ‚ÏFŠÒ&7ooP?ø² öL¥ sºZð‹²iÕÊEe_Hê¡T¸ÅV9¹•'™¢éàM÷¼ä*±¯óOw_¤v†M^£H&ª3¸ |ƒÊûF9N6½Ë!&ùˆ'«µ¤^”Mã­«ú$ç š’GJp…3gù-Öa¨´Ò Þ›B1´L–¿œÊ–!¢îãè'M=¾À)åÀ× ‚eŽœB¿³+oBØ,‚Dý,iG:kJ"§?ÅýÌQ “”â’ÃL1QîËùØk&0À&Hл^%–>Îû[v¶Q/LнV—Ä ¤ežÃØ<%¤A©pT¸=açMˆ”ºÐHP³à³P*8cám¬ÁŒ„@å›Ñl°>ûÇ0ÌÙFà 1C%°`«<Øú HùŒ$IÇ…Óðj)݉‘W™ BzKCK Ò#·­:âÌ…i öJʯ¾1ÿE‚SÆ{#øHL³‘%d̨ ´UW îÒF˜¤‚(J9—Ñࣔ¸öJ±b¤x>>1>-uù¬GÑ‘lÓÈ@L2žÊ$Ý~EUŒ:‚lª!žéŠï|á HO§Í–>Þ÷Ùz«2úÀ@‰•IÏ®6ÒhRŇàNÿ­‹×û™-@~]ùGGM“_– (!c€‹ ”NY¿Èv}ZkJ eQÍOlj ýíº¹OElØ ö9O&ªNö¹r;½ löEHeùTIÌQûÈôš›T}GD›¸š’ÊS½Ÿº¹M°Ü>ñJk÷_.w§ I³9I,zc”A²šœedlG«´e~æ@µ»k¢£MƒoJ8‘›´…–ϱ_x˜ÛOC¶è`·OLˆòKT–‹ÔÓÃ?Å×ÿ2ÌM *3l8 wPK !__OBJSTORE__/ProjectNavigatorGui/PK  Ä‰ÒÒ/__OBJSTORE__/ProjectNavigatorGui/GuiProjectDataÿÿÿÿÿÿÿÿ         PK kE#``6__OBJSTORE__/ProjectNavigatorGui/GuiProjectData_StrTblModule|boot_cpldboot_cpld/boot_cpld/spi_boot - spi_boot - rtl/img_cnt_b - spi_counter - rtl/boot_cpld/spi_boot - spi_boot - rtl/mmc_cnt_b - spi_counter - rtl/boot_cpld/spi_boot - spi_boot - rtl/spi_boot_packPROJECTboot_cpld (boot_cpld.v)/boot_cpldxc9572xl-10VQ44Design UtilitiesDesign Utilities/Compile HDL Simulation LibrariesDESUT_UCFUser ConstraintsDESUT_VERILOGImplement Design/FitImplement Design/Optional Implementation ToolsImplement Design/Synthesize - XSTImplement Design/TranslateDESUT_VHDL_ARCHITECTUREImplement DesignDESUT_VHDL_PACKAGE_BODYDESUT_VHDL_PACKAGE_DECLPK __OBJSTORE__/SrcCtrl/PK "__OBJSTORE__/SrcCtrl/SavedOptions/PK __OBJSTORE__/_ProjRepoInternal_/PK __REGISTRY__/PK __REGISTRY__/bitgen/PK ¬¥6..__REGISTRY__/bitgen/regkeysClientMessageOutputFile _xmsgs/bitgen.xmsgs s PK __REGISTRY__/common/PK Æ;-4­­__REGISTRY__/common/regkeysIncrementalMessagingEnabled false s MessageCaptureEnabled true s MessageFilterFile filter.filter s MessageFilteringEnabled false s RunOnce #/PnAutoRun/Scripts/RunOnce_tcl s PK __REGISTRY__/cpldfit/PK »¶SÕ//__REGISTRY__/cpldfit/regkeysClientMessageOutputFile _xmsgs/cpldfit.xmsgs s PK __REGISTRY__/dumpngdio/PK ¹NÚu11__REGISTRY__/dumpngdio/regkeysClientMessageOutputFile _xmsgs/dumpngdio.xmsgs s PK __REGISTRY__/fuse/PK !6Å,,__REGISTRY__/fuse/regkeysClientMessageOutputFile _xmsgs/fuse.xmsgs s PK __REGISTRY__/HierarchicalDesign/PK *__REGISTRY__/HierarchicalDesign/HDProject/PK çXÕRŸŸ1__REGISTRY__/HierarchicalDesign/HDProject/regkeysCommandLine-Map s CommandLine-Ngdbuild s CommandLine-Par s CommandLine-Xst s Previous-NGD s Previous-NGM s Previous-Packed-NCD s Previous-Routed-NCD s PK '__REGISTRY__/HierarchicalDesign/regkeysPK __REGISTRY__/hprep6/PK áôa‡..__REGISTRY__/hprep6/regkeysClientMessageOutputFile _xmsgs/hprep6.xmsgs s PK __REGISTRY__/idem/PK û œá,,__REGISTRY__/idem/regkeysClientMessageOutputFile _xmsgs/idem.xmsgs s PK __REGISTRY__/map/PK …ò[++__REGISTRY__/map/regkeysClientMessageOutputFile _xmsgs/map.xmsgs s PK __REGISTRY__/netgen/PK e6~..__REGISTRY__/netgen/regkeysClientMessageOutputFile _xmsgs/netgen.xmsgs s PK __REGISTRY__/ngc2edif/PK OUÅ›00__REGISTRY__/ngc2edif/regkeysClientMessageOutputFile _xmsgs/ngc2edif.xmsgs s PK __REGISTRY__/ngcbuild/PK ™EÄã00__REGISTRY__/ngcbuild/regkeysClientMessageOutputFile _xmsgs/ngcbuild.xmsgs s PK __REGISTRY__/ngdbuild/PK ƒJÅx00__REGISTRY__/ngdbuild/regkeysClientMessageOutputFile _xmsgs/ngdbuild.xmsgs s PK __REGISTRY__/par/PK ªÎ++__REGISTRY__/par/regkeysClientMessageOutputFile _xmsgs/par.xmsgs s PK __REGISTRY__/ProjectNavigator/PK ®ú‡'&&%__REGISTRY__/ProjectNavigator/regkeysISE_VERSION_LAST_SAVED_WITH 9.2.04i s PK !__REGISTRY__/ProjectNavigatorGui/PK (__REGISTRY__/ProjectNavigatorGui/regkeysPK __REGISTRY__/runner/PK © p7..__REGISTRY__/runner/regkeysClientMessageOutputFile _xmsgs/runner.xmsgs s PK __REGISTRY__/SrcCtrl/PK __REGISTRY__/SrcCtrl/regkeysPK __REGISTRY__/taengine/PK èîÒþ00__REGISTRY__/taengine/regkeysClientMessageOutputFile _xmsgs/taengine.xmsgs s PK __REGISTRY__/trce/PK ôð ,,__REGISTRY__/trce/regkeysClientMessageOutputFile _xmsgs/trce.xmsgs s PK __REGISTRY__/tsim/PK ë\-`,,__REGISTRY__/tsim/regkeysClientMessageOutputFile _xmsgs/tsim.xmsgs s PK __REGISTRY__/vhpcomp/PK ‹Di×//__REGISTRY__/vhpcomp/regkeysClientMessageOutputFile _xmsgs/vhpcomp.xmsgs s PK __REGISTRY__/vlogcomp/PK û]00__REGISTRY__/vlogcomp/regkeysClientMessageOutputFile _xmsgs/vlogcomp.xmsgs s PK __REGISTRY__/XSLTProcess/PK šþÔq33 __REGISTRY__/XSLTProcess/regkeysClientMessageOutputFile _xmsgs/XSLTProcess.xmsgs s PK __REGISTRY__/xst/PK µ‘û++__REGISTRY__/xst/regkeysClientMessageOutputFile _xmsgs/xst.xmsgs s PK __REGISTRY__/_ProjRepoInternal_/PK º]±¥ÅÅ'__REGISTRY__/_ProjRepoInternal_/regkeysISE_VERSION_CREATED_WITH 9.1i s ISE_VERSION_LAST_SAVED_WITH 9.2.04i s LastRepoDir C:\cygwin\home\matt\usrp2\fpga\boot_cpld\ s OBJSTORE_VERSION 1.3 s REGISTRY_VERSION 1.1 s REPOSITORY_VERSION 1.1 s PK Àp\ØversionREPOSITORY_VERSION 1.1 REGISTRY_VERSION 1.1 OBJSTORE_VERSION 1.3 ISE_VERSION_CREATED_WITH 9.1i ISE_VERSION_LAST_SAVED_WITH 9.2.04i PKßxuhd-3.5.5/fpga/usrp2/boot_cpld/boot_cpld.lfp000077500000000000000000000002371224274632000207200ustar00rootroot00000000000000# begin LFP file C:\cygwin\home\matt\u2f\boot_cpld\boot_cpld.lfp designfile boot_cpld.v parttype xc9572xl-vq44-10 bus_delimiter 0; set_busdelim_onsave 1; uhd-3.5.5/fpga/usrp2/boot_cpld/boot_cpld.ucf000077500000000000000000000020731224274632000207140ustar00rootroot00000000000000NET "CLK_25MHZ" LOC = "P5" ; NET "CLK_25MHZ_EN" LOC = "P6" ; NET "LED<0>" LOC = "P12" ; NET "LED<1>" LOC = "P8" ; NET "LED<2>" LOC = "P7" ; NET "DEBUG<0>" LOC = "P1" ; NET "DEBUG<1>" LOC = "P2" ; NET "DEBUG<2>" LOC = "P3" ; NET "DEBUG<3>" LOC = "P29" ; NET "DEBUG<4>" LOC = "P30" ; NET "DEBUG<5>" LOC = "P31" ; NET "DEBUG<6>" LOC = "P32" ; NET "DEBUG<7>" LOC = "P33" ; NET "DEBUG<8>" LOC = "P34" ; NET "POR" LOC = "P42" ; NET "SD_nCS" LOC = "P20" ; NET "SD_Din" LOC = "P21" ; NET "SD_CLK" LOC = "P22" ; NET "SD_Dout" LOC = "P23" ; NET "SD_DAT1" LOC = "P27" ; NET "SD_DAT2" LOC = "P28" ; NET "SD_prot" LOC = "P19" ; NET "SD_det" LOC = "P36" ; NET "CFG_INIT_B" LOC = "P38" ; NET "CFG_Din" LOC = "P37" ; NET "CFG_CCLK" LOC = "P41" ; NET "CFG_DONE" LOC = "P40" ; NET "CFG_PROG_B" LOC = "P39" ; NET "CPLD_CLK" LOC = "P13" ; NET "START" LOC = "P14" ; NET "MODE" LOC = "P18" ; NET "DONE" LOC = "P16" ; NET "detached" LOC = "P43" ; NET "CPLD_misc" LOC = "P44" ; uhd-3.5.5/fpga/usrp2/boot_cpld/boot_cpld.v000077500000000000000000000053671224274632000204150ustar00rootroot00000000000000`timescale 1ns / 1ps // //////////////////////////////////////////////////////////////////////////////// // Boot CPLD design, only for u2_rev2 // //////////////////////////////////////////////////////////////////////////////// module boot_cpld (input CLK_25MHZ, output CLK_25MHZ_EN, output [2:0] LED, output [8:0] DEBUG, input POR, // To SD Card output SD_nCS, output SD_Din, output SD_CLK, input SD_Dout, input SD_DAT1, // Unused input SD_DAT2, // Unused input SD_prot, // Write Protect input SD_det, // Card Detect // To FPGA Config Interface input CFG_INIT_B, output CFG_Din, // Also used in Data interface output CFG_CCLK, input CFG_DONE, output CFG_PROG_B, // To FPGA data interface output CPLD_CLK, input START, input MODE, input DONE, output detached, input CPLD_misc // Unused for now ); assign CLK_25MHZ_EN = 1'b1; assign LED[0] = ~CFG_DONE; assign LED[1] = CFG_INIT_B; assign LED[2] = ~CFG_PROG_B; wire en_outs; wire [3:0] set_sel = 4'd0; assign CPLD_CLK = CFG_CCLK; assign DEBUG[8:0] = { CLK_25MHZ, SD_nCS, SD_CLK, SD_Din, SD_Dout, START, MODE, DONE, CPLD_misc}; // Handle cutover to FPGA control of SD wire fpga_takeover = ~CPLD_misc; wire SD_CLK_int, SD_nCS_int, SD_Din_int, CFG_Din_int; assign SD_CLK = fpga_takeover ? START : SD_CLK_int; assign SD_nCS = fpga_takeover ? MODE : SD_nCS_int; assign SD_Din = fpga_takeover ? DONE : SD_Din_int; assign CFG_Din = fpga_takeover ? SD_Dout : CFG_Din_int; spi_boot #(.width_set_sel_g(4), // How many sets (16) .width_bit_cnt_g(6), // Block length (12 is faster, 6 is minimum) .width_img_cnt_g(2), // How many images per set .num_bits_per_img_g(20), // Image size, 20 = 1MB .sd_init_g(1), // SD-specific initialization .mmc_compat_clk_div_g(0),// No MMC support .width_mmc_clk_div_g(0), // No MMC support .reset_level_g(0)) // Active low reset spi_boot(.clk_i(CLK_25MHZ), .reset_i(POR), // To SD Card .spi_clk_o(SD_CLK_int), .spi_cs_n_o(SD_nCS_int), .spi_data_in_i(SD_Dout), .spi_data_out_o(SD_Din_int), .spi_en_outs_o(en_outs), // Data Port .start_i(START), .mode_i(MODE), // 0->conf mode, 1->data mode .detached_o(detached), .dat_done_i(DONE), .set_sel_i(set_sel), // To FPGA .config_n_o(CFG_PROG_B), .cfg_init_n_i(CFG_INIT_B), .cfg_done_i(CFG_DONE), .cfg_clk_o(CFG_CCLK), .cfg_dat_o(CFG_Din_int) ); endmodule // boot_cpld uhd-3.5.5/fpga/usrp2/control_lib/000077500000000000000000000000001224274632000166045ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/control_lib/.gitignore000066400000000000000000000000431224274632000205710ustar00rootroot00000000000000/a.out /*.vcd /*.lxt /*.sav /*.log uhd-3.5.5/fpga/usrp2/control_lib/CRC16_D16.v000066400000000000000000000066371224274632000201770ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////// // File: CRC16_D16.v // Date: Sun Jun 17 06:42:55 2007 // // Copyright (C) 1999-2003 Easics NV. // This source file may be used and distributed without restriction // provided that this copyright statement is not removed from the file // and that any derivative work contains the original copyright notice // and the associated disclaimer. // // THIS SOURCE FILE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS // OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED // WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. // // Purpose: Verilog module containing a synthesizable CRC function // * polynomial: (0 5 12 16) // * data width: 16 // // Info: tools@easics.be // http://www.easics.com /////////////////////////////////////////////////////////////////////// module CRC16_D16 (input [15:0] Data, input [15:0] CRC, output [15:0] NewCRC); assign NewCRC = nextCRC16_D16(Data,CRC); // polynomial: (0 5 12 16) // data width: 16 // convention: the first serial data bit is D[15] function [15:0] nextCRC16_D16; input [15:0] Data; input [15:0] CRC; reg [15:0] D; reg [15:0] C; reg [15:0] NewCRC; begin D = Data; C = CRC; NewCRC[0] = D[12] ^ D[11] ^ D[8] ^ D[4] ^ D[0] ^ C[0] ^ C[4] ^ C[8] ^ C[11] ^ C[12]; NewCRC[1] = D[13] ^ D[12] ^ D[9] ^ D[5] ^ D[1] ^ C[1] ^ C[5] ^ C[9] ^ C[12] ^ C[13]; NewCRC[2] = D[14] ^ D[13] ^ D[10] ^ D[6] ^ D[2] ^ C[2] ^ C[6] ^ C[10] ^ C[13] ^ C[14]; NewCRC[3] = D[15] ^ D[14] ^ D[11] ^ D[7] ^ D[3] ^ C[3] ^ C[7] ^ C[11] ^ C[14] ^ C[15]; NewCRC[4] = D[15] ^ D[12] ^ D[8] ^ D[4] ^ C[4] ^ C[8] ^ C[12] ^ C[15]; NewCRC[5] = D[13] ^ D[12] ^ D[11] ^ D[9] ^ D[8] ^ D[5] ^ D[4] ^ D[0] ^ C[0] ^ C[4] ^ C[5] ^ C[8] ^ C[9] ^ C[11] ^ C[12] ^ C[13]; NewCRC[6] = D[14] ^ D[13] ^ D[12] ^ D[10] ^ D[9] ^ D[6] ^ D[5] ^ D[1] ^ C[1] ^ C[5] ^ C[6] ^ C[9] ^ C[10] ^ C[12] ^ C[13] ^ C[14]; NewCRC[7] = D[15] ^ D[14] ^ D[13] ^ D[11] ^ D[10] ^ D[7] ^ D[6] ^ D[2] ^ C[2] ^ C[6] ^ C[7] ^ C[10] ^ C[11] ^ C[13] ^ C[14] ^ C[15]; NewCRC[8] = D[15] ^ D[14] ^ D[12] ^ D[11] ^ D[8] ^ D[7] ^ D[3] ^ C[3] ^ C[7] ^ C[8] ^ C[11] ^ C[12] ^ C[14] ^ C[15]; NewCRC[9] = D[15] ^ D[13] ^ D[12] ^ D[9] ^ D[8] ^ D[4] ^ C[4] ^ C[8] ^ C[9] ^ C[12] ^ C[13] ^ C[15]; NewCRC[10] = D[14] ^ D[13] ^ D[10] ^ D[9] ^ D[5] ^ C[5] ^ C[9] ^ C[10] ^ C[13] ^ C[14]; NewCRC[11] = D[15] ^ D[14] ^ D[11] ^ D[10] ^ D[6] ^ C[6] ^ C[10] ^ C[11] ^ C[14] ^ C[15]; NewCRC[12] = D[15] ^ D[8] ^ D[7] ^ D[4] ^ D[0] ^ C[0] ^ C[4] ^ C[7] ^ C[8] ^ C[15]; NewCRC[13] = D[9] ^ D[8] ^ D[5] ^ D[1] ^ C[1] ^ C[5] ^ C[8] ^ C[9]; NewCRC[14] = D[10] ^ D[9] ^ D[6] ^ D[2] ^ C[2] ^ C[6] ^ C[9] ^ C[10]; NewCRC[15] = D[11] ^ D[10] ^ D[7] ^ D[3] ^ C[3] ^ C[7] ^ C[10] ^ C[11]; nextCRC16_D16 = NewCRC; end endfunction endmodule uhd-3.5.5/fpga/usrp2/control_lib/Makefile.srcs000066400000000000000000000020411224274632000212120ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # ################################################## # Control Lib Sources ################################################## CONTROL_LIB_SRCS = $(abspath $(addprefix $(BASE_DIR)/../control_lib/, \ CRC16_D16.v \ atr_controller.v \ bin2gray.v \ dcache.v \ decoder_3_8.v \ dbsm.v \ dpram32.v \ double_buffer.v \ gray2bin.v \ gray_send.v \ icache.v \ mux4.v \ mux8.v \ nsgpio.v \ ram_2port.v \ ram_harv_cache.v \ ram_harvard.v \ ram_harvard2.v \ ram_loader.v \ setting_reg.v \ settings_bus.v \ settings_bus_crossclock.v \ srl.v \ system_control.v \ wb_1master.v \ wb_readback_mux.v \ wb_readback_mux_16LE.v \ quad_uart.v \ simple_uart.v \ simple_uart_tx.v \ simple_uart_rx.v \ oneshot_2clk.v \ sd_spi.v \ sd_spi_wb.v \ wb_bridge_16_32.v \ reset_sync.v \ priority_enc.v \ pic.v \ longfifo.v \ shortfifo.v \ medfifo.v \ s3a_icap_wb.v \ bootram.v \ nsgpio16LE.v \ settings_bus_16LE.v \ atr_controller16.v \ fifo_to_wb.v \ gpio_atr.v \ user_settings.v \ settings_fifo_ctrl.v \ simple_spi_core.v \ simple_i2c_core.v \ )) uhd-3.5.5/fpga/usrp2/control_lib/atr_controller.v000066400000000000000000000046641224274632000220360ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Automatic transmit/receive switching of control pins to daughterboards // Store everything in registers for now, but could use a RAM for more // complex state machines in the future module atr_controller (input clk_i, input rst_i, input [5:0] adr_i, input [3:0] sel_i, input [31:0] dat_i, output reg [31:0] dat_o, input we_i, input stb_i, input cyc_i, output reg ack_o, input run_rx, input run_tx, output [31:0] ctrl_lines); reg [3:0] state; reg [31:0] atr_ram [0:15]; // DP distributed RAM // WB Interface always @(posedge clk_i) if(we_i & stb_i & cyc_i) begin if(sel_i[3]) atr_ram[adr_i[5:2]][31:24] <= dat_i[31:24]; if(sel_i[2]) atr_ram[adr_i[5:2]][23:16] <= dat_i[23:16]; if(sel_i[1]) atr_ram[adr_i[5:2]][15:8] <= dat_i[15:8]; if(sel_i[0]) atr_ram[adr_i[5:2]][7:0] <= dat_i[7:0]; end // if (we_i & stb_i & cyc_i) // Removing readback allows ram to be synthesized as LUTs instead of regs //always @(posedge clk_i) // dat_o <= atr_ram[adr_i[5:2]]; always dat_o <= 32'd0; always @(posedge clk_i) ack_o <= stb_i & cyc_i & ~ack_o; // Control side of DP RAM assign ctrl_lines = atr_ram[state]; // Put a more complex state machine with time delays and multiple states here // if daughterboard requires more complex sequencing localparam ATR_IDLE = 4'd0; localparam ATR_TX = 4'd1; localparam ATR_RX = 4'd2; localparam ATR_FULL_DUPLEX = 4'd3; always @(posedge clk_i) if(rst_i) state <= ATR_IDLE; else case ({run_rx,run_tx}) 2'b00 : state <= ATR_IDLE; 2'b01 : state <= ATR_TX; 2'b10 : state <= ATR_RX; 2'b11 : state <= ATR_FULL_DUPLEX; endcase // case({run_rx,run_tx}) endmodule // atr_controller uhd-3.5.5/fpga/usrp2/control_lib/atr_controller16.v000066400000000000000000000051441224274632000221770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Automatic transmit/receive switching of control pins to daughterboards // Store everything in registers for now, but could use a RAM for more // complex state machines in the future module atr_controller16 (input clk_i, input rst_i, input [5:0] adr_i, input [1:0] sel_i, input [15:0] dat_i, output [15:0] dat_o, input we_i, input stb_i, input cyc_i, output reg ack_o, input run_rx, input run_tx, output [31:0] ctrl_lines); reg [3:0] state; reg [31:0] atr_ram [0:15]; // DP distributed RAM wire [3:0] sel_int = { (sel_i[1] & adr_i[1]), (sel_i[0] & adr_i[1]), (sel_i[1] & ~adr_i[1]), (sel_i[0] & ~adr_i[1]) }; // WB Interface always @(posedge clk_i) if(we_i & stb_i & cyc_i) begin if(sel_int[3]) atr_ram[adr_i[5:2]][31:24] <= dat_i[15:8]; if(sel_int[2]) atr_ram[adr_i[5:2]][23:16] <= dat_i[7:0]; if(sel_int[1]) atr_ram[adr_i[5:2]][15:8] <= dat_i[15:8]; if(sel_int[0]) atr_ram[adr_i[5:2]][7:0] <= dat_i[7:0]; end // if (we_i & stb_i & cyc_i) // Removing readback allows ram to be synthesized as LUTs instead of regs //always @(posedge clk_i) // dat_o <= adr_i[1] ? atr_ram[adr_i[5:2]][31:16] : atr_ram[adr_i[5:2]][15:0]; assign dat_o = 16'd0; always @(posedge clk_i) ack_o <= stb_i & cyc_i & ~ack_o; // Control side of DP RAM assign ctrl_lines = atr_ram[state]; // Put a more complex state machine with time delays and multiple states here // if daughterboard requires more complex sequencing localparam ATR_IDLE = 4'd0; localparam ATR_TX = 4'd1; localparam ATR_RX = 4'd2; localparam ATR_FULL_DUPLEX = 4'd3; always @(posedge clk_i) if(rst_i) state <= ATR_IDLE; else case ({run_rx,run_tx}) 2'b00 : state <= ATR_IDLE; 2'b01 : state <= ATR_TX; 2'b10 : state <= ATR_RX; 2'b11 : state <= ATR_FULL_DUPLEX; endcase // case({run_rx,run_tx}) endmodule // atr_controller16 uhd-3.5.5/fpga/usrp2/control_lib/bin2gray.v000066400000000000000000000015311224274632000205100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module bin2gray #(parameter WIDTH=8) (input [WIDTH-1:0] bin, output [WIDTH-1:0] gray); assign gray = (bin >> 1) ^ bin; endmodule // bin2gray uhd-3.5.5/fpga/usrp2/control_lib/bootram.v000066400000000000000000000410321224274632000204360ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Boot RAM for S3A, 8KB, dual port // RAMB16BWE_S36_S36: 512 x 32 + 4 Parity bits byte-wide write Dual-Port RAM // Spartan-3A Xilinx HDL Libraries Guide, version 10.1.1 module bootram (input clk, input reset, input [13:0] if_adr, output [31:0] if_data, input [13:0] dwb_adr_i, input [31:0] dwb_dat_i, output [31:0] dwb_dat_o, input dwb_we_i, output reg dwb_ack_o, input dwb_stb_i, input [3:0] dwb_sel_i); wire [31:0] DOA0, DOA1, DOA2, DOA3, DOA4, DOA5, DOA6, DOA7; wire [31:0] DOB0, DOB1, DOB2, DOB3, DOB4, DOB5, DOB6, DOB7; wire ENB0, ENB1, ENB2, ENB3, ENB4, ENB5, ENB6, ENB7; wire [3:0] WEB; reg [2:0] delayed_if_bank; always @(posedge clk) delayed_if_bank <= if_adr[13:11]; assign if_data = delayed_if_bank[2] ? (delayed_if_bank[1] ? (delayed_if_bank[0] ? DOA7 : DOA6) : (delayed_if_bank[0] ? DOA5 : DOA4)) : (delayed_if_bank[1] ? (delayed_if_bank[0] ? DOA3 : DOA2) : (delayed_if_bank[0] ? DOA1 : DOA0)); assign dwb_dat_o = dwb_adr_i[13] ? (dwb_adr_i[12] ? (dwb_adr_i[11] ? DOB7 : DOB6) : (dwb_adr_i[11] ? DOB5 : DOB4)) : (dwb_adr_i[12] ? (dwb_adr_i[11] ? DOB3 : DOB2) : (dwb_adr_i[11] ? DOB1 : DOB0)); always @(posedge clk) if(reset) dwb_ack_o <= 0; else dwb_ack_o <= dwb_stb_i & ~dwb_ack_o; assign ENB0 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b000); assign ENB1 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b001); assign ENB2 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b010); assign ENB3 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b011); assign ENB4 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b100); assign ENB5 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b101); assign ENB6 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b110); assign ENB7 = dwb_stb_i & (dwb_adr_i[13:11] == 3'b111); assign WEB = {4{dwb_we_i}} & dwb_sel_i; RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM0 (.DOA(DOA0), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB0), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB0), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM1 (.DOA(DOA1), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB1), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB1), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM2 (.DOA(DOA2), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB2), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB2), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM3 (.DOA(DOA3), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB3), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB3), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM4 (.DOA(DOA4), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB4), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB4), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM5 (.DOA(DOA5), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB5), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB5), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM6 (.DOA(DOA6), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB6), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB6), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation RAMB16BWE_S36_S36 #(.INIT_A(36'h000000000), // Value of output RAM registers on Port A at startup .INIT_B(36'h000000000), // Value of output RAM registers on Port B at startup .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(36'h000000000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST")) // WRITE_FIRST, READ_FIRST or NO_CHANGE RAM7 (.DOA(DOA7), // Port A 32-bit Data Output .DOPA(), // Port A 4-bit Parity Output .ADDRA(if_adr[10:2]), // Port A 9-bit Address Input .CLKA(clk), // Port A 1-bit Clock .DIA(32'hffffffff), // Port A 32-bit Data Input .DIPA(4'hf), // Port A 4-bit parity Input .ENA(1'b1), // Port A 1-bit RAM Enable Input .SSRA(1'b0), // Port A 1-bit Synchronous Set/Reset Input .WEA(1'b0), // Port A 4-bit Write Enable Input .DOB(DOB7), // Port B 32-bit Data Output .DOPB(), // Port B 4-bit Parity Output .ADDRB(dwb_adr_i[10:2]), // Port B 9-bit Address Input .CLKB(clk), // Port B 1-bit Clock .DIB(dwb_dat_i), // Port B 32-bit Data Input .DIPB(4'hf), // Port-B 4-bit parity Input .ENB(ENB7), // Port B 1-bit RAM Enable Input .SSRB(1'b0), // Port B 1-bit Synchronous Set/Reset Input .WEB(WEB) // Port B 4-bit Write Enable Input ); // End of RAMB16BWE_S36_S36_inst instantiation endmodule // bootram uhd-3.5.5/fpga/usrp2/control_lib/bootrom.mem000066400000000000000000000031751224274632000207730ustar00rootroot0000000000000000000C000F03 101400000000 // SPI: Set Divider to div by 2 // Both clk sel choose ext ref (0), both are enabled (1), turn off SERDES, ADCs, turn on leds 1018_0000_0001 // SPI: Choose AD9510 1010_0000_3418 // SPI: Auto-slave select, interrupt when done, TX_NEG, 24-bit word 1000_0000_0010 // SPI: AD9510 A:0 D:10 Set up AD9510 SPI 1010_0000_3518 // SPI: SEND IT Auto-slave select, interrupt when done, TX_NEG, 24-bit word ffff_ffff_ffff // terminate #// First 16 bits are address, last 32 are data #// First 4 bits of address select which slave // 6'd01 : addr_data = {13'h45,8'h00}; // CLK2 drives distribution, everything on // 6'd02 : addr_data = {13'h3D,8'h80}; // Turn on output 1, normal levels // 6'd03 : addr_data = {13'h4B,8'h80}; // Bypass divider 1 (div by 1) // 6'd04 : addr_data = {13'h08,8'h47}; // POS PFD, Dig LK Det, Charge Pump normal // 6'd05 : addr_data = {13'h09,8'h70}; // Max Charge Pump current // 6'd06 : addr_data = {13'h0A,8'h04}; // Normal operation, Prescalar Div by 2, PLL On // 6'd07 : addr_data = {13'h0B,8'h00}; // RDIV MSB (6 bits) // 6'd08 : addr_data = {13'h0C,8'h01}; // RDIV LSB (8 bits), Div by 1 // 6'd09 : addr_data = {13'h0D,8'h00}; // Everything normal, Dig Lock Det // 6'd10 : addr_data = {13'h07,8'h00}; // Disable LOR detect - LOR causes failure... // 6'd11 : addr_data = {13'h04,8'h00}; // A Counter = Don't Care // 6'd12 : addr_data = {13'h05,8'h00}; // B Counter MSB = 0 // 6'd13 : addr_data = {13'h06,8'h05}; // B Counter LSB = 5 // default : addr_data = {13'h5A,8'h01}; // Register Update // @ 55 // Jump to new address 8'h55 uhd-3.5.5/fpga/usrp2/control_lib/clock_bootstrap_rom.v000066400000000000000000000037621224274632000230500ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module clock_bootstrap_rom(input [15:0] addr, output [47:0] data); reg [47:0] rom [0:15]; //initial // $readmemh("bootrom.mem", rom); assign data = rom[addr]; initial begin // First 16 bits are address, last 32 are data // First 4 bits of address select which slave rom[0] = 48'h0000_0C00_0F03; // Both clk sel choose ext ref (0), both are enabled (1), turn off SERDES, ADCs, turn on leds rom[1] = 48'h1014_0000_0000; // SPI: Set Divider to div by 2 rom[2] = 48'h1018_0000_0001; // SPI: Choose AD9510 rom[3] = 48'h1010_0000_3418; // SPI: Auto-slave select, interrupt when done, TX_NEG, 24-bit word rom[4] = 48'h1000_0000_0010; // SPI: AD9510 A:0 D:10 Set up AD9510 SPI rom[5] = 48'h1010_0000_3518; // SPI: SEND IT Auto-slave select, interrupt when done, TX_NEG, 24-bit word rom[6] = 48'hffff_ffff_ffff; // terminate rom[7] = 48'hffff_ffff_ffff; // terminate rom[8] = 48'hffff_ffff_ffff; // terminate rom[9] = 48'hffff_ffff_ffff; // terminate rom[10] = 48'hffff_ffff_ffff; // terminate rom[11] = 48'hffff_ffff_ffff; // terminate rom[12] = 48'hffff_ffff_ffff; // terminate rom[13] = 48'hffff_ffff_ffff; // terminate rom[14] = 48'hffff_ffff_ffff; // terminate rom[15] = 48'hffff_ffff_ffff; // terminate end // initial begin endmodule // clock_bootstrap_rom uhd-3.5.5/fpga/usrp2/control_lib/clock_control.v000066400000000000000000000104321224274632000216260ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // AD9510 Register Map (from datasheet Rev. A) /* INSTRUCTION word format (16 bits) * 15 Read = 1, Write = 0 * 14:13 W1/W0, Number of bytes 00 - 1, 01 - 2, 10 - 3, 11 - stream * 12:0 Address */ /* ADDR Contents Value (hex) * 00 Serial Config Port 10 (def) -- MSB first, SDI/SDO separate * 04 A Counter * 05-06 B Counter * 07-0A PLL Control * 0B-0C R Divider * 0D PLL Control * 34-3A Fine Delay * 3C-3F LVPECL Outs * 40-43 LVDS/CMOS Outs * 45 Clock select, power down * 48-57 Dividers * 58 Func and Sync * 5A Update regs */ module clock_control (input reset, input aux_clk, // 25MHz, for before fpga clock is active input clk_fpga, // real 100 MHz FPGA clock output [1:0] clk_en, // controls source of reference clock output [1:0] clk_sel, // controls source of reference clock input clk_func, // FIXME needs to be some kind of out SYNC or reset to 9510 input clk_status, // Monitor PLL or SYNC status output sen, // Enable for the AD9510 output sclk, // FIXME these need to be shared input sdi, output sdo ); wire read = 1'b0; // Always write for now wire [1:0] w = 2'b00; // Always send 1 byte at a time assign clk_sel = 2'b00; // Both outputs from External Ref (SMA) assign clk_en = 2'b11; // Both outputs enabled reg [20:0] addr_data; reg [5:0] entry; reg start; reg [7:0] counter; reg [23:0] command; always @* case(entry) 6'd00 : addr_data = {13'h00,8'h10}; // Serial setup 6'd01 : addr_data = {13'h45,8'h00}; // CLK2 drives distribution, everything on 6'd02 : addr_data = {13'h3D,8'h80}; // Turn on output 1, normal levels 6'd03 : addr_data = {13'h4B,8'h80}; // Bypass divider 1 (div by 1) 6'd04 : addr_data = {13'h08,8'h47}; // POS PFD, Dig LK Det, Charge Pump normal 6'd05 : addr_data = {13'h09,8'h70}; // Max Charge Pump current 6'd06 : addr_data = {13'h0A,8'h04}; // Normal operation, Prescalar Div by 2, PLL On 6'd07 : addr_data = {13'h0B,8'h00}; // RDIV MSB (6 bits) 6'd08 : addr_data = {13'h0C,8'h01}; // RDIV LSB (8 bits), Div by 1 6'd09 : addr_data = {13'h0D,8'h00}; // Everything normal, Dig Lock Det 6'd10 : addr_data = {13'h07,8'h00}; // Disable LOR detect - LOR causes failure... 6'd11 : addr_data = {13'h04,8'h00}; // A Counter = Don't Care 6'd12 : addr_data = {13'h05,8'h00}; // B Counter MSB = 0 6'd13 : addr_data = {13'h06,8'h05}; // B Counter LSB = 5 default : addr_data = {13'h5A,8'h01}; // Register Update endcase // case(entry) wire [5:0] lastentry = 6'd15; wire done = (counter == 8'd49); always @(posedge aux_clk) if(reset) begin entry <= #1 6'd0; start <= #1 1'b1; end else if(start) start <= #1 1'b0; else if(done && (entry. // module clock_control_tb(); clock_control clock_control (.reset(reset), .aux_clk(aux_clk), .clk_fpga(clk_fpga), .clk_en(clk_en), .clk_sel(clk_sel), .clk_func(clk_func), .clk_status(clk_status), .sen(sen), .sclk(sclk), .sdi(sdi), .sdo(sdo) ); reg reset, aux_clk; wire [1:0] clk_sel, clk_en; initial reset = 1'b1; initial #1000 reset = 1'b0; initial aux_clk = 1'b0; always #10 aux_clk = ~aux_clk; initial $dumpfile("clock_control_tb.vcd"); initial $dumpvars(0,clock_control_tb); initial #10000 $finish; endmodule // clock_control_tb uhd-3.5.5/fpga/usrp2/control_lib/cmdfile000066400000000000000000000006001224274632000201260ustar00rootroot00000000000000# My stuff -y . -y ../u2_basic -y ../control_lib -y ../sdr_lib # Models -y ../models # Open Cores -y ../opencores/spi/rtl/verilog +incdir+../opencores/spi/rtl/verilog -y ../opencores/wb_conbus/rtl/verilog +incdir+../opencores/wb_conbus/rtl/verilog -y ../opencores/i2c/rtl/verilog +incdir+../opencores/i2c/rtl/verilog -y ../opencores/aemb/rtl/verilog -y ../opencores/simple_gpio/rtl uhd-3.5.5/fpga/usrp2/control_lib/dbsm.v000066400000000000000000000117141224274632000177240ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module dbsm (input clk, input reset, input clear, output write_ok, output write_ptr, input write_done, output read_ok, output read_ptr, input read_done, output access_ok, output access_ptr, input access_done, input access_skip_read ); localparam PORT_WAIT_0 = 0; localparam PORT_USE_0 = 1; localparam PORT_WAIT_1 = 2; localparam PORT_USE_1 = 3; reg [1:0] write_port_state, access_port_state, read_port_state; localparam BUFF_WRITABLE = 0; localparam BUFF_ACCESSIBLE = 1; localparam BUFF_READABLE = 2; localparam BUFF_ERROR = 3; wire [1:0] buff_state[0:1]; always @(posedge clk) if(reset | clear) write_port_state <= PORT_WAIT_0; else case(write_port_state) PORT_WAIT_0 : if(buff_state[0]==BUFF_WRITABLE) write_port_state <= PORT_USE_0; PORT_USE_0 : if(write_done) write_port_state <= PORT_WAIT_1; PORT_WAIT_1 : if(buff_state[1]==BUFF_WRITABLE) write_port_state <= PORT_USE_1; PORT_USE_1 : if(write_done) write_port_state <= PORT_WAIT_0; endcase // case (write_port_state) assign write_ok = (write_port_state == PORT_USE_0) | (write_port_state == PORT_USE_1); assign write_ptr = (write_port_state == PORT_USE_1); always @(posedge clk) if(reset | clear) access_port_state <= PORT_WAIT_0; else case(access_port_state) PORT_WAIT_0 : if(buff_state[0]==BUFF_ACCESSIBLE) access_port_state <= PORT_USE_0; PORT_USE_0 : if(access_done) access_port_state <= PORT_WAIT_1; PORT_WAIT_1 : if(buff_state[1]==BUFF_ACCESSIBLE) access_port_state <= PORT_USE_1; PORT_USE_1 : if(access_done) access_port_state <= PORT_WAIT_0; endcase // case (access_port_state) assign access_ok = (access_port_state == PORT_USE_0) | (access_port_state == PORT_USE_1); assign access_ptr = (access_port_state == PORT_USE_1); always @(posedge clk) if(reset | clear) read_port_state <= PORT_WAIT_0; else case(read_port_state) PORT_WAIT_0 : if(buff_state[0]==BUFF_READABLE) read_port_state <= PORT_USE_0; PORT_USE_0 : if(read_done) read_port_state <= PORT_WAIT_1; PORT_WAIT_1 : if(buff_state[1]==BUFF_READABLE) read_port_state <= PORT_USE_1; PORT_USE_1 : if(read_done) read_port_state <= PORT_WAIT_0; endcase // case (read_port_state) assign read_ok = (read_port_state == PORT_USE_0) | (read_port_state == PORT_USE_1); assign read_ptr = (read_port_state == PORT_USE_1); buff_sm #(.PORT_USE_FLAG(PORT_USE_0)) buff0_sm (.clk(clk), .reset(reset), .clear(clear), .write_done(write_done), .access_done(access_done), .access_skip_read(access_skip_read), .read_done(read_done), .write_port_state(write_port_state), .access_port_state(access_port_state), .read_port_state(read_port_state), .buff_state(buff_state[0])); buff_sm #(.PORT_USE_FLAG(PORT_USE_1)) buff1_sm (.clk(clk), .reset(reset), .clear(clear), .write_done(write_done), .access_done(access_done), .access_skip_read(access_skip_read), .read_done(read_done), .write_port_state(write_port_state), .access_port_state(access_port_state), .read_port_state(read_port_state), .buff_state(buff_state[1])); endmodule // dbsm module buff_sm #(parameter PORT_USE_FLAG=0) (input clk, input reset, input clear, input write_done, input access_done, input access_skip_read, input read_done, input [1:0] write_port_state, input [1:0] access_port_state, input [1:0] read_port_state, output reg [1:0] buff_state); localparam BUFF_WRITABLE = 0; localparam BUFF_ACCESSIBLE = 1; localparam BUFF_READABLE = 2; localparam BUFF_ERROR = 3; always @(posedge clk) if(reset | clear) buff_state <= BUFF_WRITABLE; else case(buff_state) BUFF_WRITABLE : if(write_done & (write_port_state == PORT_USE_FLAG)) buff_state <= BUFF_ACCESSIBLE; BUFF_ACCESSIBLE : if(access_done & (access_port_state == PORT_USE_FLAG)) if(access_skip_read) buff_state <= BUFF_WRITABLE; else buff_state <= BUFF_READABLE; BUFF_READABLE : if(read_done & (read_port_state == PORT_USE_FLAG)) buff_state <= BUFF_WRITABLE; BUFF_ERROR : ; endcase endmodule // buff_sm uhd-3.5.5/fpga/usrp2/control_lib/dcache.v000066400000000000000000000134141224274632000202050ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module dcache #(parameter AWIDTH=14, parameter CWIDTH=6) (input wb_clk_i, input wb_rst_i, input [AWIDTH-1:0] dwb_adr_i, input dwb_stb_i, input dwb_we_i, input [3:0] dwb_sel_i, input [31:0] dwb_dat_i, output [31:0] dwb_dat_o, output dwb_ack_o, input [31:0] dram_dat_i, output [31:0] dram_dat_o, output [AWIDTH-1:0] dram_adr_o, output dram_we_o, output dram_en_o, output [3:0] dram_sel_o ); localparam TAGWIDTH = AWIDTH-CWIDTH-2; reg stb_d1, ack_d1, miss_d1; reg [AWIDTH-1:0] held_addr; reg [31:0] ddata [0:(1<. // module decoder_3_8 (input [2:0] sel, output reg [7:0] res); always @(sel or res) begin case (sel) 3'b000 : res = 8'b00000001; 3'b001 : res = 8'b00000010; 3'b010 : res = 8'b00000100; 3'b011 : res = 8'b00001000; 3'b100 : res = 8'b00010000; 3'b101 : res = 8'b00100000; 3'b110 : res = 8'b01000000; default : res = 8'b10000000; endcase // case(sel) end // always @ (sel or res) endmodule // decoder_3_8 uhd-3.5.5/fpga/usrp2/control_lib/double_buffer.v000066400000000000000000000103421224274632000215760ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module double_buffer #(parameter BUF_SIZE = 9) (input clk, input reset, input clear, // Random access interface to RAM input access_we, input access_stb, output access_ok, input access_done, input access_skip_read, input [BUF_SIZE-1:0] access_adr, output [BUF_SIZE-1:0] access_len, input [35:0] access_dat_i, output [35:0] access_dat_o, // Write FIFO Interface input [35:0] data_i, input src_rdy_i, output dst_rdy_o, // Read FIFO Interface output [35:0] data_o, output src_rdy_o, input dst_rdy_i ); wire [35:0] data_o_0, data_o_1; wire read, read_ok, read_ptr, read_done; wire write, write_ok, write_ptr, write_done; wire [BUF_SIZE-1:0] rw0_adr, rw1_adr; reg [BUF_SIZE-1:0] read_adr, write_adr; reg [BUF_SIZE-1:0] len0, len1; assign data_o = read_ptr ? data_o_1 : data_o_0; assign rw0_adr = (write_ok & ~write_ptr) ? write_adr : read_adr; assign rw1_adr = (write_ok & write_ptr) ? write_adr : read_adr; wire [35:0] access_dat_o_0, access_dat_o_1; wire access_ptr; assign access_dat_o = access_ptr? access_dat_o_1 : access_dat_o_0; dbsm dbsm (.clk(clk), .reset(reset), .clear(clear), .write_ok(write_ok), .write_ptr(write_ptr), .write_done(write_done), .access_ok(access_ok), .access_ptr(access_ptr), .access_done(access_done), .access_skip_read(access_skip_read), .read_ok(read_ok), .read_ptr(read_ptr), .read_done(read_done)); // Port A for random access, Port B for FIFO read and write ram_2port #(.DWIDTH(36),.AWIDTH(BUF_SIZE)) buffer0 (.clka(clk),.ena(access_stb & access_ok & (access_ptr == 0)),.wea(access_we), .addra(access_adr),.dia(access_dat_i),.doa(access_dat_o_0), .clkb(clk),.enb((read & read_ok & ~read_ptr)|(write & write_ok & ~write_ptr) ),.web(write&write_ok&~write_ptr), .addrb(rw0_adr),.dib(data_i),.dob(data_o_0)); ram_2port #(.DWIDTH(36),.AWIDTH(BUF_SIZE)) buffer1 (.clka(clk),.ena(access_stb & access_ok & (access_ptr == 1)),.wea(access_we), .addra(access_adr),.dia(access_dat_i),.doa(access_dat_o_1), .clkb(clk),.enb((read & read_ok & read_ptr)|(write & write_ok & write_ptr) ),.web(write&write_ok&write_ptr), .addrb(rw1_adr),.dib(data_i),.dob(data_o_1)); // Write into buffers assign dst_rdy_o = write_ok; assign write = src_rdy_i & write_ok; assign write_done = write & data_i[33]; // done always @(posedge clk) if(reset | clear) write_adr <= 0; else if(write_done) begin write_adr <= 0; if(write_ptr) len1 <= write_adr + 1; else len0 <= write_adr + 1; end else if(write) write_adr <= write_adr + 1; assign access_len = access_ptr ? len1 : len0; reg [1:0] read_state; localparam IDLE = 0; localparam PRE_READ = 1; localparam READING = 2; always @(posedge clk) if(reset | clear) begin read_state <= IDLE; read_adr <= 0; end else case(read_state) IDLE : begin read_adr <= 0; if(read_ok) read_state <= PRE_READ; end PRE_READ : begin read_state <= READING; read_adr <= 1; end READING : if(dst_rdy_i) begin read_adr <= read_adr + 1; if(data_o[33]) read_state <= IDLE; end endcase // case (read_state) assign read = ~((read_state==READING)& ~dst_rdy_i); assign read_done = data_o[33] & dst_rdy_i & src_rdy_o; assign src_rdy_o = (read_state == READING); endmodule // double_buffer uhd-3.5.5/fpga/usrp2/control_lib/double_buffer_tb.v000066400000000000000000000200031224274632000222560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module double_buffer_tb(); reg clk = 0; reg rst = 1; reg clear = 0; initial #1000 rst = 0; always #50 clk = ~clk; wire src_rdy_o; reg src_rdy_i = 0; wire dst_rdy_o; wire dst_rdy_i = 0; wire [35:0] data_o; reg [35:0] data_i; wire access_we, access_stb, access_done, access_ok, access_skip_read; wire [8:0] access_adr, access_len; wire [35:0] dsp_to_buf, buf_to_dsp; reg set_stb = 0; double_buffer db (.clk(clk),.reset(rst),.clear(0), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(dsp_to_buf), .access_dat_o(buf_to_dsp), .data_i(data_i), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .data_o(data_o), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); dspengine_8to16 #(.HEADER_OFFSET(1)) dspengine_8to16 (.clk(clk),.reset(rst),.clear(0), .set_stb(set_stb), .set_addr(0), .set_data(1), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(buf_to_dsp), .access_dat_o(dsp_to_buf)); always @(posedge clk) if(src_rdy_o & dst_rdy_i) begin $display("SOF %d, EOF %d, OCC %x, DAT %x",data_o[32],data_o[33],data_o[35:34],data_o[31:0]); if(data_o[33]) $display(); end initial $dumpfile("double_buffer_tb.vcd"); initial $dumpvars(0,double_buffer_tb); initial begin @(negedge rst); @(posedge clk); @(posedge clk); @(posedge clk); /* // Passthrough $display("Passthrough"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'h01234567}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'hFFFFFFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h04050607}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h08090a0b}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'h0c0d0e0f}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); repeat (5) @(posedge clk); */ $display("Enabled"); set_stb <= 1; @(posedge clk); set_stb <= 0; /* @(posedge clk); $display("Non-IF Data Passthrough"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'h89acdef0}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'hC0000000}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h14151617}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h18191a1b}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'h1c1d1e1f}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); while(~dst_rdy_o) @(posedge clk); $display("No StreamID, No Trailer, Even"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'hAAAAAAAA}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h0000FFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h01000200}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h03000400}; src_rdy_i <= 0; @(posedge clk); @(posedge clk); @(posedge clk); @(posedge clk); src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h05000600}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h07000800}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h09000a00}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'h0b000c00}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); while(~dst_rdy_o) @(posedge clk); $display("No StreamID, No Trailer, Odd"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'hBBBBBBBB}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h0000FFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h11001200}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h13001400}; src_rdy_i <= 0; @(posedge clk); src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h15001600}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h17001800}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'h19001a00}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); while(~dst_rdy_o) @(posedge clk); */ /* $display("No StreamID, Trailer, Even"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'hCCCCCCCC}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h0400FFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h21222324}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h25262728}; src_rdy_i <= 0; @(posedge clk); src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h292a2b2c}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h2d2e2f30}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'hDEADBEEF}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); */ while(~dst_rdy_o) @(posedge clk); /* $display("No StreamID, Trailer, Odd"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'hDDDDDDDD}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h0400FFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h21222324}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h25262728}; src_rdy_i <= 0; @(posedge clk); src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h292a2b2c}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h2d2e2f30}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'hDEBDBF0D}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); */ while(~dst_rdy_o) @(posedge clk); /* $display("No StreamID, Trailer, Odd"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'h0400FFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h31003200}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h33003400}; src_rdy_i <= 0; @(posedge clk); src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h35003600}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'h39003a00}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); while(~dst_rdy_o) @(posedge clk); $display("StreamID, No Trailer, Even"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'h1000FFFF}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h11001200}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h13001400}; src_rdy_i <= 0; @(posedge clk); src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h15001600}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h17001800}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'h19001a00}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); while(~dst_rdy_o) @(posedge clk); */ $display("StreamID, Trailer, Odd"); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'hABCDEF98}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h1c034567}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'ha0a1a2a3}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'ha4a5a6a7}; // src_rdy_i <= 0; // @(posedge clk); // src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'ha8a9aaab}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'hacadaeaf}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'hdeadbeef}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); src_rdy_i <= 1; data_i <= { 2'b00,1'b0,1'b1,32'hABCDEF98}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'h1c034567}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'ha0a1a2a3}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'ha4a5a6a7}; // src_rdy_i <= 0; // @(posedge clk); // src_rdy_i <= 1; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'ha8a9aaab}; @(posedge clk); data_i <= { 2'b00,1'b0,1'b0,32'hacadaeaf}; @(posedge clk); data_i <= { 2'b00,1'b1,1'b0,32'hdeadbeef}; @(posedge clk); src_rdy_i <= 0; @(posedge clk); end initial #28000 $finish; endmodule // double_buffer_tb uhd-3.5.5/fpga/usrp2/control_lib/dpram32.v000066400000000000000000000062221224274632000202450ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Dual ported RAM // Addresses are byte-oriented, so botton 2 address bits are ignored. // AWIDTH of 13 allows you to address 8K bytes. // For Spartan 3, if the total RAM size is not a multiple of 8K then BRAM space is wasted // RAM_SIZE parameter allows odd-sized RAMs, like 24K module dpram32 #(parameter AWIDTH=15, parameter RAM_SIZE=16384) (input clk, input [AWIDTH-1:0] adr1_i, input [31:0] dat1_i, output reg [31:0] dat1_o, input we1_i, input en1_i, input [3:0] sel1_i, input [AWIDTH-1:0] adr2_i, input [31:0] dat2_i, output reg [31:0] dat2_o, input we2_i, input en2_i, input [3:0] sel2_i ); reg [7:0] ram0 [0:(RAM_SIZE/4)-1]; reg [7:0] ram1 [0:(RAM_SIZE/4)-1]; reg [7:0] ram2 [0:(RAM_SIZE/4)-1]; reg [7:0] ram3 [0:(RAM_SIZE/4)-1]; // This is how we used to size the RAM --> // reg [7:0] ram3 [0:(1<<(AWIDTH-2))-1]; // Port 1 always @(posedge clk) if(en1_i) dat1_o[31:24] <= ram3[adr1_i[AWIDTH-1:2]]; always @(posedge clk) if(en1_i) dat1_o[23:16] <= ram2[adr1_i[AWIDTH-1:2]]; always @(posedge clk) if(en1_i) dat1_o[15:8] <= ram1[adr1_i[AWIDTH-1:2]]; always @(posedge clk) if(en1_i) dat1_o[7:0] <= ram0[adr1_i[AWIDTH-1:2]]; always @(posedge clk) if(we1_i & en1_i & sel1_i[3]) ram3[adr1_i[AWIDTH-1:2]] <= dat1_i[31:24]; always @(posedge clk) if(we1_i & en1_i & sel1_i[2]) ram2[adr1_i[AWIDTH-1:2]] <= dat1_i[23:16]; always @(posedge clk) if(we1_i & en1_i & sel1_i[1]) ram1[adr1_i[AWIDTH-1:2]] <= dat1_i[15:8]; always @(posedge clk) if(we1_i & en1_i & sel1_i[0]) ram0[adr1_i[AWIDTH-1:2]] <= dat1_i[7:0]; // Port 2 always @(posedge clk) if(en2_i) dat2_o[31:24] <= ram3[adr2_i[AWIDTH-1:2]]; always @(posedge clk) if(en2_i) dat2_o[23:16] <= ram2[adr2_i[AWIDTH-1:2]]; always @(posedge clk) if(en2_i) dat2_o[15:8] <= ram1[adr2_i[AWIDTH-1:2]]; always @(posedge clk) if(en2_i) dat2_o[7:0] <= ram0[adr2_i[AWIDTH-1:2]]; always @(posedge clk) if(we2_i & en2_i & sel2_i[3]) ram3[adr2_i[AWIDTH-1:2]] <= dat2_i[31:24]; always @(posedge clk) if(we2_i & en2_i & sel2_i[2]) ram2[adr2_i[AWIDTH-1:2]] <= dat2_i[23:16]; always @(posedge clk) if(we2_i & en2_i & sel2_i[1]) ram1[adr2_i[AWIDTH-1:2]] <= dat2_i[15:8]; always @(posedge clk) if(we2_i & en2_i & sel2_i[0]) ram0[adr2_i[AWIDTH-1:2]] <= dat2_i[7:0]; endmodule // dpram32 uhd-3.5.5/fpga/usrp2/control_lib/fifo_to_wb.v000066400000000000000000000131431224274632000211120ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo_to_wb #(parameter PKT_LEN = 16) (input clk, input reset, input clear, input [18:0] data_i, input src_rdy_i, output dst_rdy_o, output [18:0] data_o, output src_rdy_o, input dst_rdy_i, output reg [15:0] wb_adr_o, output [15:0] wb_dat_mosi, input [15:0] wb_dat_miso, output [1:0] wb_sel_o, output wb_cyc_o, output wb_stb_o, output wb_we_o, input wb_ack_i, input [7:0] triggers, output [31:0] debug0, output [31:0] debug1); wire [18:0] ctrl_data; reg [18:0] resp_data; wire ctrl_src_rdy, ctrl_dst_rdy, resp_src_rdy, resp_dst_rdy; fifo_short #(.WIDTH(19)) ctrl_sfifo (.clk(clk), .reset(reset), .clear(clear), .datain(data_i), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .dataout(ctrl_data), .src_rdy_o(ctrl_src_rdy), .dst_rdy_i(ctrl_dst_rdy)); fifo_short #(.WIDTH(19)) resp_sfifo (.clk(clk), .reset(reset), .clear(clear), .datain(resp_data), .src_rdy_i(resp_src_rdy), .dst_rdy_o(resp_dst_rdy), .dataout(data_o), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); // Need a programmable state machine here. The program is the fifo contents. // All words are 16 bits wide // Word 0 Command { Read, Write, Triggers[5:0], Seqno [7:0] } // Word 1 Length // Word 2 Address LSW // Word 3 Address MSW (should all be 0) localparam RESP_IDLE = 0; localparam RESP_LEN = 1; localparam RESP_ADDR_LSW = 2; localparam RESP_ADDR_MSW = 3; localparam RESP_WRITE = 4; localparam RESP_DUMP = 5; localparam RESP_WAIT_READ = 6; localparam RESP_RCMD = 7; localparam RESP_RLEN = 8; localparam RESP_RADDR_LSW = 9; localparam RESP_RADDR_MSW = 10; localparam RESP_READ = 11; reg [3:0] resp_state; reg rd, wr; reg [15:0] base_addr; reg [15:0] length; reg [15:0] count; reg [7:0] seqnum; reg [5:0] which_trig; always @(posedge clk) if(reset | clear) resp_state <= RESP_IDLE; else case(resp_state) RESP_IDLE : if(ctrl_src_rdy) begin { rd, wr, which_trig[5:0], seqnum[7:0] } <= ctrl_data[15:0]; if(ctrl_data[16]) // WAIT for start of packet, clean out otherwise resp_state <= RESP_LEN; end RESP_LEN : if(ctrl_src_rdy) begin length <= ctrl_data[15:0]; count <= ctrl_data[15:0]; resp_state <= RESP_ADDR_LSW; end RESP_ADDR_LSW : if(ctrl_src_rdy) begin base_addr <= ctrl_data[15:0]; wb_adr_o <= ctrl_data[15:0]; resp_state <= RESP_ADDR_MSW; end RESP_ADDR_MSW : if(ctrl_src_rdy) if(wr) resp_state <= RESP_WRITE; else resp_state <= RESP_DUMP; RESP_WRITE : if(ctrl_src_rdy & wb_ack_i) if(count==1) if(ctrl_data[17]) //eof resp_state <= RESP_IDLE; else // clean out padding resp_state <= RESP_DUMP; else begin wb_adr_o <= wb_adr_o + 2; count <= count - 1; end RESP_DUMP : if(ctrl_src_rdy & ctrl_data[17]) if(rd) resp_state <= RESP_WAIT_READ; else resp_state <= RESP_IDLE; RESP_WAIT_READ : begin wb_adr_o <= base_addr; count <= length; if( &(triggers | ~which_trig) ) resp_state <= RESP_RCMD; end RESP_RCMD : if(resp_dst_rdy) resp_state <= RESP_RLEN; RESP_RLEN : if(resp_dst_rdy) resp_state <= RESP_RADDR_LSW; RESP_RADDR_LSW : if(resp_dst_rdy) resp_state <= RESP_RADDR_MSW; RESP_RADDR_MSW : if(resp_dst_rdy) resp_state <= RESP_READ; RESP_READ : if(resp_dst_rdy & wb_ack_i) if(count==1) resp_state <= RESP_IDLE; else begin wb_adr_o <= wb_adr_o + 2; count <= count - 1; end endcase // case (resp_state) always @* case(resp_state) RESP_RCMD : resp_data <= { 3'b001, 8'hAA, seqnum }; RESP_RLEN : resp_data <= { 3'b000, length }; RESP_RADDR_LSW : resp_data <= { 3'b000, base_addr }; RESP_RADDR_MSW : resp_data <= { 3'b000, 16'd0 }; default : resp_data <= { 1'b0, (count==1), 1'b0, wb_dat_miso }; endcase // case (resp_state) assign ctrl_dst_rdy = (resp_state == RESP_IDLE) | (resp_state == RESP_LEN) | (resp_state == RESP_ADDR_LSW) | (resp_state == RESP_ADDR_MSW) | ((resp_state == RESP_WRITE) & wb_ack_i) | (resp_state == RESP_DUMP); assign resp_src_rdy = (resp_state == RESP_RCMD) | (resp_state == RESP_RLEN) | (resp_state == RESP_RADDR_LSW) | (resp_state == RESP_RADDR_MSW) | ((resp_state == RESP_READ) & wb_ack_i); assign wb_dat_mosi = ctrl_data[15:0]; assign wb_we_o = (resp_state == RESP_WRITE); assign wb_cyc_o = wb_stb_o; assign wb_sel_o = 2'b11; assign wb_stb_o = (ctrl_src_rdy & (resp_state == RESP_WRITE)) | (resp_dst_rdy & (resp_state == RESP_READ)); assign debug0 = { 14'd0, ctrl_data[17:0] }; assign debug1 = { ctrl_src_rdy, ctrl_dst_rdy, resp_src_rdy, resp_dst_rdy, 2'b00, ctrl_data[17:16] }; endmodule // fifo_to_wb uhd-3.5.5/fpga/usrp2/control_lib/fifo_to_wb_tb.v000066400000000000000000000072751224274632000216100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo_to_wb_tb(); reg clk = 0; reg rst = 1; reg clear = 0; initial #1000 rst = 0; always #50 clk = ~clk; reg trigger = 0; initial #10000 trigger = 1; wire wb_cyc, wb_stb, wb_we, wb_ack; wire [15:0] wb_adr; wire [15:0] wb_dat_miso, wb_dat_mosi; reg cmd_src_rdy; wire cmd_dst_rdy, resp_src_rdy, resp_dst_rdy; reg [17:0] cmd; wire [17:0] resp; wire [17:0] resp_int; wire resp_src_rdy_int, resp_dst_rdy_int; fifo_to_wb fifo_to_wb (.clk(clk), .reset(rst), .clear(clear), .data_i(cmd), .src_rdy_i(cmd_src_rdy), .dst_rdy_o(cmd_dst_rdy), .data_o(resp_int), .src_rdy_o(resp_src_rdy_int), .dst_rdy_i(resp_dst_rdy_int), .wb_adr_o(wb_adr), .wb_dat_mosi(wb_dat_mosi), .wb_dat_miso(wb_dat_miso), .wb_sel_o(), .wb_cyc_o(wb_cyc), .wb_stb_o(wb_stb), .wb_we_o(wb_we), .wb_ack_i(wb_ack), .triggers()); assign wb_dat_miso = {wb_adr[7:0],8'hBF}; fifo19_pad #(.LENGTH(16)) fifo19_pad (.clk(clk), .reset(rst), .clear(clear), .data_i(resp_int), .src_rdy_i(resp_src_rdy_int), .dst_rdy_o(resp_dst_rdy_int), .data_o(resp), .src_rdy_o(resp_src_rdy), .dst_rdy_i(resp_dst_rdy)); // Set up monitors always @(posedge clk) if(wb_cyc & wb_stb & wb_ack) if(wb_we) $display("WB-WRITE ADDR:%h DATA:%h",wb_adr, wb_dat_mosi); else $display("WB-READ ADDR:%h DATA:%h",wb_adr, wb_dat_miso); always @(posedge clk) if(cmd_src_rdy & cmd_dst_rdy) $display("CMD-WRITE SOF:%b EOF:%b DATA:%h",cmd[16],cmd[17],cmd[15:0]); always @(posedge clk) if(resp_src_rdy & resp_dst_rdy) $display("RESP-READ SOF:%b EOF:%b DATA:%h",resp[16],resp[17],resp[15:0]); assign wb_ack = wb_stb; assign resp_dst_rdy = 1; task InsertRW; input [15:0] data_start; input [5:0] triggers; input [7:0] seqno; input [15:0] len; input [15:0] addr; reg [15:0] data_val; begin data_val <= data_start; @(posedge clk); cmd <= {2'b01,2'b11,triggers,seqno}; cmd_src_rdy <= 1; @(posedge clk); cmd <= {2'b00,len}; @(posedge clk); cmd <= {2'b00,addr}; @(posedge clk); cmd <= {2'b00,16'd0}; @(posedge clk); repeat (len) begin cmd <= {2'b00,data_val}; data_val <= data_val + 1; @(posedge clk); end repeat (12-len-1) begin cmd <= {2'b00,16'hBEEF}; @(posedge clk); end cmd <= {2'b10, 16'hDEAD}; @(posedge clk); cmd_src_rdy <= 0; end endtask // InsertRead initial $dumpfile("fifo_to_wb_tb.vcd"); initial $dumpvars(0,fifo_to_wb_tb); initial begin @(negedge rst); //#10000; @(posedge clk); @(posedge clk); @(posedge clk); @(posedge clk); InsertRW(16'hF00D, 6'd0, 8'hB5, 16'd7, 16'h1234); #20000; InsertRW(16'h9876, 6'd0, 8'h43, 16'd8, 16'hBEEF); #20000; InsertRW(16'h1000, 6'd0, 8'h96, 16'd4, 16'hF00D); #20000; InsertRW(16'h3000, 6'd0, 8'h12, 16'd10,16'hDEAD); #20000 $finish; end endmodule // fifo_to_wb_tb uhd-3.5.5/fpga/usrp2/control_lib/gpio_atr.v000066400000000000000000000043771224274632000206120ustar00rootroot00000000000000 // // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module gpio_atr #(parameter BASE = 0, parameter WIDTH = 32) (input clk, input reset, input set_stb, input [7:0] set_addr, input [31:0] set_data, input rx, input tx, inout [WIDTH-1:0] gpio, output reg [31:0] gpio_readback ); wire [WIDTH-1:0] ddr, in_idle, in_tx, in_rx, in_fdx; reg [WIDTH-1:0] rgpio, igpio; setting_reg #(.my_addr(BASE+0), .width(WIDTH)) reg_idle (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data), .out(in_idle),.changed()); setting_reg #(.my_addr(BASE+1), .width(WIDTH)) reg_rx (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data), .out(in_rx),.changed()); setting_reg #(.my_addr(BASE+2), .width(WIDTH)) reg_tx (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data), .out(in_tx),.changed()); setting_reg #(.my_addr(BASE+3), .width(WIDTH)) reg_fdx (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data), .out(in_fdx),.changed()); setting_reg #(.my_addr(BASE+4), .width(WIDTH)) reg_ddr (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data), .out(ddr),.changed()); always @(posedge clk) case({tx,rx}) 2'b00: rgpio <= in_idle; 2'b01: rgpio <= in_rx; 2'b10: rgpio <= in_tx; 2'b11: rgpio <= in_fdx; endcase // case ({tx,rx}) integer n; always @* for(n=0;n. // module gray2bin #(parameter WIDTH=8) (input [WIDTH-1:0] gray, output reg [WIDTH-1:0] bin); integer i; always @(gray) for(i = 0;i>i); endmodule // gray2bin uhd-3.5.5/fpga/usrp2/control_lib/gray_send.v000066400000000000000000000025701224274632000207520ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module gray_send #(parameter WIDTH = 8) (input clk_in, input [WIDTH-1:0] addr_in, input clk_out, output reg [WIDTH-1:0] addr_out); reg [WIDTH-1:0] gray_clkin, gray_clkout, gray_clkout_d1; wire [WIDTH-1:0] gray, bin; bin2gray #(.WIDTH(WIDTH)) b2g (.bin(addr_in), .gray(gray) ); always @(posedge clk_in) gray_clkin <= gray; always @(posedge clk_out) gray_clkout <= gray_clkin; always @(posedge clk_out) gray_clkout_d1 <= gray_clkout; gray2bin #(.WIDTH(WIDTH)) g2b (.gray(gray_clkout_d1), .bin(bin) ); // FIXME we may not need the next register, but it may help timing always @(posedge clk_out) addr_out <= bin; endmodule // gray_send uhd-3.5.5/fpga/usrp2/control_lib/icache.v000066400000000000000000000112001224274632000202010ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module icache #(parameter AWIDTH=14, parameter CWIDTH=6) (input wb_clk_i, input wb_rst_i, input [AWIDTH-1:0] iwb_adr_i, input iwb_stb_i, output [31:0] iwb_dat_o, output iwb_ack_o, input [31:0] iram_dat_i, output [AWIDTH-1:0] iram_adr_o, output iram_en_o, input flush); localparam TAGWIDTH = AWIDTH-CWIDTH-2; reg stb_d1, ack_d1, miss_d1; reg [AWIDTH-1:0] held_addr; reg [31:0] idata [0:(1<. // // FIFO intended to be interchangeable with shortfifo, but // based on block ram instead of SRL16's // only one clock domain // Port A is write port, Port B is read port module longfifo #(parameter WIDTH=32, SIZE=9) (input clk, input rst, input [WIDTH-1:0] datain, output [WIDTH-1:0] dataout, input read, input write, input clear, output full, output empty, output reg [15:0] space, output reg [15:0] occupied); // Read side states localparam EMPTY = 0; localparam PRE_READ = 1; localparam READING = 2; reg [SIZE-1:0] wr_addr, rd_addr; reg [1:0] read_state; reg empty_reg, full_reg; always @(posedge clk) if(rst) wr_addr <= 0; else if(clear) wr_addr <= 0; else if(write) wr_addr <= wr_addr + 1; ram_2port #(.DWIDTH(WIDTH),.AWIDTH(SIZE)) ram (.clka(clk), .ena(1'b1), .wea(write), .addra(wr_addr), .dia(datain), .doa(), .clkb(clk), .enb((read_state==PRE_READ)|read), .web(0), .addrb(rd_addr), .dib(0), .dob(dataout)); always @(posedge clk) if(rst) begin read_state <= EMPTY; rd_addr <= 0; empty_reg <= 1; end else if(clear) begin read_state <= EMPTY; rd_addr <= 0; empty_reg <= 1; end else case(read_state) EMPTY : if(write) begin //rd_addr <= wr_addr; read_state <= PRE_READ; end PRE_READ : begin read_state <= READING; empty_reg <= 0; rd_addr <= rd_addr + 1; end READING : if(read) if(rd_addr == wr_addr) begin empty_reg <= 1; if(write) read_state <= PRE_READ; else read_state <= EMPTY; end else rd_addr <= rd_addr + 1; endcase // case(read_state) wire [SIZE-1:0] dont_write_past_me = rd_addr - 3; wire becoming_full = wr_addr == dont_write_past_me; always @(posedge clk) if(rst) full_reg <= 0; else if(clear) full_reg <= 0; else if(read & ~write) full_reg <= 0; //else if(write & ~read & (wr_addr == (rd_addr-3))) else if(write & ~read & becoming_full) full_reg <= 1; //assign empty = (read_state != READING); assign empty = empty_reg; // assign full = ((rd_addr - 1) == wr_addr); assign full = full_reg; ////////////////////////////////////////////// // space and occupied are for diagnostics only // not guaranteed exact localparam NUMLINES = (1<. // module medfifo #(parameter WIDTH=32, parameter DEPTH=1) (input clk, input rst, input [WIDTH-1:0] datain, output [WIDTH-1:0] dataout, input read, input write, input clear, output full, output empty, output [7:0] space, output [7:0] occupied); localparam NUM_FIFOS = (1<. // module mux4 #(parameter WIDTH=32, parameter DISABLED=0) (input en, input [1:0] sel, input [WIDTH-1:0] i0, input [WIDTH-1:0] i1, input [WIDTH-1:0] i2, input [WIDTH-1:0] i3, output [WIDTH-1:0] o); assign o = en ? (sel[1] ? (sel[0] ? i3 : i2) : (sel[0] ? i1 : i0)) : DISABLED; endmodule // mux4 uhd-3.5.5/fpga/usrp2/control_lib/mux8.v000066400000000000000000000022761224274632000177030ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module mux8 #(parameter WIDTH=32, parameter DISABLED=0) (input en, input [2:0] sel, input [WIDTH-1:0] i0, input [WIDTH-1:0] i1, input [WIDTH-1:0] i2, input [WIDTH-1:0] i3, input [WIDTH-1:0] i4, input [WIDTH-1:0] i5, input [WIDTH-1:0] i6, input [WIDTH-1:0] i7, output [WIDTH-1:0] o); assign o = en ? (sel[2] ? (sel[1] ? (sel[0] ? i7 : i6) : (sel[0] ? i5 : i4)) : (sel[1] ? (sel[0] ? i3 : i2) : (sel[0] ? i1 : i0))) : DISABLED; endmodule // mux8 uhd-3.5.5/fpga/usrp2/control_lib/mux_32_4.v000066400000000000000000000016461224274632000203420ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module mux_32_4 (input [1:0] sel, input [31:0] in0, input [31:0] in1, input [31:0] in2, input [31:0] in3, output [31:0] out); assign out = sel[1] ? (sel[0] ? in3 : in2) : (sel[0] ? in1 : in0); endmodule // mux_32_4 uhd-3.5.5/fpga/usrp2/control_lib/nsgpio.v000066400000000000000000000071751224274632000203040ustar00rootroot00000000000000// Modified from code originally by Richard Herveille, his copyright is below ///////////////////////////////////////////////////////////////////// //// //// //// OpenCores Simple General Purpose IO core //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// module nsgpio (input clk_i, input rst_i, input cyc_i, input stb_i, input [4:0] adr_i, input we_i, input [31:0] dat_i, output reg [31:0] dat_o, output reg ack_o, input tx, input rx, inout [31:0] gpio ); integer n; reg [31:0] ddr; reg [31:0] idle_out, rx_out, tx_out, fdx_out; reg [31:0] rgpio, igpio; wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access always @(posedge clk_i or posedge rst_i) if (rst_i) ddr <= 0; else if (wb_wr) case( adr_i[4:2] ) 3'b000 : idle_out <= dat_i; 3'b001 : rx_out <= dat_i; 3'b010 : tx_out <= dat_i; 3'b011 : fdx_out <= dat_i; 3'b100 : ddr <= dat_i; endcase // case ( adr_i[4:2] ) always @(posedge clk_i) dat_o <= gpio; always @(posedge clk_i or posedge rst_i) if (rst_i) ack_o <= 1'b0; else ack_o <= wb_acc & !ack_o; always @(posedge clk_i) case({tx,rx}) 2'b00 : rgpio <= idle_out; 2'b01 : rgpio <= rx_out; 2'b10 : rgpio <= tx_out; 2'b11 : rgpio <= fdx_out; endcase // case ({tx,rx}) always @* for(n=0;n<32;n=n+1) igpio[n] <= ddr[n] ? rgpio[n] : 1'bz; assign gpio = igpio; endmodule uhd-3.5.5/fpga/usrp2/control_lib/nsgpio16LE.v000066400000000000000000000104341224274632000206640ustar00rootroot00000000000000// Modified from code originally by Richard Herveille, his copyright is below ///////////////////////////////////////////////////////////////////// //// //// //// OpenCores Simple General Purpose IO core //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// module nsgpio16LE (input clk_i, input rst_i, input cyc_i, input stb_i, input [3:0] adr_i, input we_i, input [15:0] dat_i, output reg [15:0] dat_o, output reg ack_o, input [31:0] atr, input [31:0] debug_0, input [31:0] debug_1, inout [31:0] gpio ); reg [31:0] ctrl, line, ddr, dbg, lgpio; wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access always @(posedge clk_i or posedge rst_i) if (rst_i) begin ctrl <= 32'h0; line <= 32'h0; ddr <= 32'h0; dbg <= 32'h0; end else if (wb_wr) case( adr_i[3:1] ) 3'b000 : line[15:0] <= dat_i; 3'b001 : line[31:16] <= dat_i; 3'b010 : ddr[15:0] <= dat_i; 3'b011 : ddr[31:16] <= dat_i; 3'b100 : ctrl[15:0] <= dat_i; 3'b101 : ctrl[31:16] <= dat_i; 3'b110 : dbg[15:0] <= dat_i; 3'b111 : dbg[31:16] <= dat_i; endcase // case ( adr_i[3:1] ) always @(posedge clk_i) case (adr_i[3:1]) 3'b000 : dat_o <= lgpio[15:0]; 3'b001 : dat_o <= lgpio[31:16]; 3'b010 : dat_o <= ddr[15:0]; 3'b011 : dat_o <= ddr[31:16]; 3'b100 : dat_o <= ctrl[15:0]; 3'b101 : dat_o <= ctrl[31:16]; 3'b110 : dat_o <= dbg[15:0]; 3'b111 : dat_o <= dbg[31:16]; endcase // case (adr_i[3:1]) always @(posedge clk_i or posedge rst_i) if (rst_i) ack_o <= 1'b0; else ack_o <= wb_acc & !ack_o; // latch GPIO input pins always @(posedge clk_i) lgpio <= gpio; // assign GPIO outputs integer n; reg [31:0] igpio; // temporary internal signal always @(ctrl or line or debug_1 or debug_0 or atr or ddr or dbg) for(n=0;n<32;n=n+1) igpio[n] <= ddr[n] ? (dbg[n] ? (ctrl[n] ? debug_1[n] : debug_0[n]) : (ctrl[n] ? atr[n] : line[n]) ) : 1'bz; assign gpio = igpio; endmodule uhd-3.5.5/fpga/usrp2/control_lib/oneshot_2clk.v000066400000000000000000000033131224274632000213650ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Retime a single bit from one clock domain to another // Guarantees that no matter what the relative clock rates, if the in signal is high for at least // one clock cycle in the clk_in domain, then the out signal will be high for at least one // clock cycle in the clk_out domain. If the in signal goes high again before the process is done // the behavior is undefined. No other guarantees. Designed for passing reset into a new // clock domain. module oneshot_2clk (input clk_in, input in, input clk_out, output reg out); reg del_in = 0; reg sendit = 0, gotit = 0; reg sendit_d = 0, gotit_d = 0; always @(posedge clk_in) del_in <= in; always @(posedge clk_in) if(in & ~del_in) // we have a positive edge sendit <= 1; else if(gotit) sendit <= 0; always @(posedge clk_out) sendit_d <= sendit; always @(posedge clk_out) out <= sendit_d; always @(posedge clk_in) gotit_d <= out; always @(posedge clk_in) gotit <= gotit_d; endmodule // oneshot_2clk uhd-3.5.5/fpga/usrp2/control_lib/pic.v000066400000000000000000000165241224274632000175560ustar00rootroot00000000000000 // Heavily modified by M. Ettus, 2009, little original code remains // Modified by M. Ettus, 2008 for 32 bit width ///////////////////////////////////////////////////////////////////// //// //// //// OpenCores Simple Programmable Interrupt Controller //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // // This is a simple Programmable Interrupt Controller. // The number of interrupts is depending on the databus size. // There's one interrupt input per databit (i.e. 16 interrupts for a 16 // bit databus). // All attached devices share the same CPU priority level. // // // // Registers: // // 0x00: EdgeEnable Register // bits 7:0 R/W Edge Enable '1' = edge triggered interrupt source // '0' = level triggered interrupt source // 0x01: PolarityRegister // bits 7:0 R/W Polarity '1' = high level / rising edge // '0' = low level / falling edge // 0x02: MaskRegister // bits 7:0 R/W Mask '1' = interrupt masked (disabled) // '0' = interrupt not masked (enabled) // 0x03: PendingRegister // bits 7:0 R/W Pending '1' = interrupt pending // '0' = no interrupt pending // // A CPU interrupt is generated when an interrupt is pending and its // MASK bit is cleared. // // // // HOWTO: // // Clearing pending interrupts: // Writing a '1' to a bit in the interrupt pending register clears the // interrupt. Make sure to clear the interrupt at the source before // writing to the interrupt pending register. Otherwise the interrupt // will be set again. // // Priority based interrupts: // Upon reception of an interrupt, check the interrupt register and // determine the highest priority interrupt. Mask all interrupts from the // current level to the lowest level. This negates the interrupt line, and // makes sure only interrupts with a higher level are triggered. After // completion of the interrupt service routine, clear the interrupt source, // the interrupt bit in the pending register, and restore the MASK register // to it's previous state. // // Addapt the core for fewer interrupt sources: // If less than 8 interrupt sources are required, than the 'is' parameter // can be set to the amount of required interrupts. Interrupts are mapped // starting at the LSBs. So only the 'is' LSBs per register are valid. All // other bits (i.e. the 8-'is' MSBs) are set to zero '0'. // Codesize is approximately linear to the amount of interrupts. I.e. using // 4 instead of 8 interrupt sources reduces the size by approx. half. // module pic (input clk_i, input rst_i, input cyc_i, input stb_i, input [2:0] adr_i, input we_i, input [31:0] dat_i, output reg [31:0] dat_o, output reg ack_o, output reg int_o, input [31:0] irq ); reg [31:0] pol, edgen, pending, mask; // register bank reg [31:0] lirq, dirq; // latched irqs, delayed latched irqs // latch interrupt inputs always @(posedge clk_i) lirq <= irq; // generate delayed latched irqs always @(posedge clk_i) dirq <= lirq; // generate actual triggers function trigger; input edgen, pol, lirq, dirq; reg edge_irq, level_irq; begin edge_irq = pol ? (lirq & ~dirq) : (dirq & ~lirq); level_irq = pol ? lirq : ~lirq; trigger = edgen ? edge_irq : level_irq; end endfunction reg [31:0] irq_event; integer n; always @(posedge clk_i) for(n = 0; n < 32; n = n+1) irq_event[n] <= trigger(edgen[n], pol[n], lirq[n], dirq[n]); // generate wishbone register bank writes wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access always @(posedge clk_i) if (rst_i) begin pol <= 0; // clear polarity register edgen <= 0; // clear edge enable register mask <= 0; // mask all interrupts end else if(wb_wr) // wishbone write cycle?? case (adr_i) // synopsys full_case parallel_case 3'd0 : edgen <= dat_i; // EDGE-ENABLE register 3'd1 : pol <= dat_i; // POLARITY register 3'd2 : mask <= dat_i; // MASK register 3'd3 : ; // PENDING register is a special case (see below) 3'd4 : ; // Priority encoded live (pending & ~mask) endcase // pending register is a special case always @(posedge clk_i) if (rst_i) pending <= 0; // clear all pending interrupts else if ( wb_wr & (adr_i == 3'd3) ) pending <= (pending & ~dat_i) | irq_event; else pending <= pending | irq_event; wire [31:0] live_enc; priority_enc priority_enc ( .in(pending & ~mask), .out(live_enc) ); always @(posedge clk_i) case (adr_i) // synopsys full_case parallel_case 3'd0 : dat_o <= edgen; 3'd1 : dat_o <= pol; 3'd2 : dat_o <= mask; 3'd3 : dat_o <= pending; 3'd4 : dat_o <= live_enc; endcase always @(posedge clk_i) ack_o <= wb_acc & !ack_o; always @(posedge clk_i) if(rst_i) int_o <= 0; else int_o <= |(pending & ~mask); endmodule uhd-3.5.5/fpga/usrp2/control_lib/priority_enc.v000066400000000000000000000057011224274632000215040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module priority_enc (input [31:0] in, output reg [31:0] out); always @* casex(in) 32'b1xxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 31; 32'b01xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 30; 32'b001x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 29; 32'b0001_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 28; 32'b0000_1xxx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 27; 32'b0000_01xx_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 26; 32'b0000_001x_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 25; 32'b0000_0001_xxxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 24; 32'b0000_0000_1xxx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 23; 32'b0000_0000_01xx_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 22; 32'b0000_0000_001x_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 21; 32'b0000_0000_0001_xxxx_xxxx_xxxx_xxxx_xxxx : out <= 20; 32'b0000_0000_0000_1xxx_xxxx_xxxx_xxxx_xxxx : out <= 19; 32'b0000_0000_0000_01xx_xxxx_xxxx_xxxx_xxxx : out <= 18; 32'b0000_0000_0000_001x_xxxx_xxxx_xxxx_xxxx : out <= 17; 32'b0000_0000_0000_0001_xxxx_xxxx_xxxx_xxxx : out <= 16; 32'b0000_0000_0000_0000_1xxx_xxxx_xxxx_xxxx : out <= 15; 32'b0000_0000_0000_0000_01xx_xxxx_xxxx_xxxx : out <= 14; 32'b0000_0000_0000_0000_001x_xxxx_xxxx_xxxx : out <= 13; 32'b0000_0000_0000_0000_0001_xxxx_xxxx_xxxx : out <= 12; 32'b0000_0000_0000_0000_0000_1xxx_xxxx_xxxx : out <= 11; 32'b0000_0000_0000_0000_0000_01xx_xxxx_xxxx : out <= 10; 32'b0000_0000_0000_0000_0000_001x_xxxx_xxxx : out <= 9; 32'b0000_0000_0000_0000_0000_0001_xxxx_xxxx : out <= 8; 32'b0000_0000_0000_0000_0000_0000_1xxx_xxxx : out <= 7; 32'b0000_0000_0000_0000_0000_0000_01xx_xxxx : out <= 6; 32'b0000_0000_0000_0000_0000_0000_001x_xxxx : out <= 5; 32'b0000_0000_0000_0000_0000_0000_0001_xxxx : out <= 4; 32'b0000_0000_0000_0000_0000_0000_0000_1xxx : out <= 3; 32'b0000_0000_0000_0000_0000_0000_0000_01xx : out <= 2; 32'b0000_0000_0000_0000_0000_0000_0000_001x : out <= 1; 32'b0000_0000_0000_0000_0000_0000_0000_0001 : out <= 0; 32'b0000_0000_0000_0000_0000_0000_0000_0000 : out <= 32'hFFFF_FFFF; default : out <= 32'hFFFF_FFFF; endcase // casex (in) endmodule // priority_enc uhd-3.5.5/fpga/usrp2/control_lib/quad_uart.v000066400000000000000000000060041224274632000207600ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module quad_uart #(parameter TXDEPTH = 1, parameter RXDEPTH = 1) (input clk_i, input rst_i, input we_i, input stb_i, input cyc_i, output reg ack_o, input [4:0] adr_i, input [31:0] dat_i, output reg [31:0] dat_o, output [3:0] rx_int_o, output [3:0] tx_int_o, output [3:0] tx_o, input [3:0] rx_i, output [3:0] baud_o ); // Register Map localparam SUART_CLKDIV = 0; localparam SUART_TXLEVEL = 1; localparam SUART_RXLEVEL = 2; localparam SUART_TXCHAR = 3; localparam SUART_RXCHAR = 4; wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access reg [15:0] clkdiv[0:3]; wire [7:0] rx_char[0:3]; wire [3:0] tx_fifo_full, rx_fifo_empty; wire [7:0] tx_fifo_level[0:3], rx_fifo_level[0:3]; always @(posedge clk_i) if (rst_i) ack_o <= 1'b0; else ack_o <= wb_acc & ~ack_o; integer i; always @(posedge clk_i) if (rst_i) for(i=0;i<4;i=i+1) clkdiv[i] <= 0; else if (wb_wr) case(adr_i[2:0]) SUART_CLKDIV : clkdiv[adr_i[4:3]] <= dat_i[15:0]; endcase // case(adr_i) always @(posedge clk_i) case (adr_i[2:0]) SUART_TXLEVEL : dat_o <= tx_fifo_level[adr_i[4:3]]; SUART_RXLEVEL : dat_o <= rx_fifo_level[adr_i[4:3]]; SUART_RXCHAR : dat_o <= rx_char[adr_i[4:3]]; endcase // case(adr_i) genvar j; generate for(j=0;j<4;j=j+1) begin : gen_uarts simple_uart_tx #(.DEPTH(TXDEPTH)) simple_uart_tx (.clk(clk_i),.rst(rst_i), .fifo_in(dat_i[7:0]),.fifo_write(ack_o && wb_wr && (adr_i[2:0] == SUART_TXCHAR) && (adr_i[4:3]==j)), .fifo_level(tx_fifo_level[j]),.fifo_full(tx_fifo_full[j]), .clkdiv(clkdiv[j]),.baudclk(baud_o[j]),.tx(tx_o[j])); simple_uart_rx #(.DEPTH(RXDEPTH)) simple_uart_rx (.clk(clk_i),.rst(rst_i), .fifo_out(rx_char[j]),.fifo_read(ack_o && ~wb_wr && (adr_i[2:0] == SUART_RXCHAR) && (adr_i[4:3]==j)), .fifo_level(rx_fifo_level[j]),.fifo_empty(rx_fifo_empty[j]), .clkdiv(clkdiv[j]),.rx(rx_i[j])); end // block: gen_uarts endgenerate assign tx_int_o = ~tx_fifo_full; // Interrupt for those that have space assign rx_int_o = ~rx_fifo_empty; // Interrupt for those that have data endmodule // quad_uart uhd-3.5.5/fpga/usrp2/control_lib/ram_2port.v000066400000000000000000000030151224274632000206770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ram_2port #(parameter DWIDTH=32, parameter AWIDTH=9) (input clka, input ena, input wea, input [AWIDTH-1:0] addra, input [DWIDTH-1:0] dia, output reg [DWIDTH-1:0] doa, input clkb, input enb, input web, input [AWIDTH-1:0] addrb, input [DWIDTH-1:0] dib, output reg [DWIDTH-1:0] dob); reg [DWIDTH-1:0] ram [(1<. // module ram_2port_mixed_width (input clk16, input en16, input we16, input [10:0] addr16, input [15:0] di16, output [15:0] do16, input clk32, input en32, input we32, input [9:0] addr32, input [31:0] di32, output [31:0] do32); wire en32a = en32 & ~addr32[9]; wire en32b = en32 & addr32[9]; wire en16a = en16 & ~addr16[10]; wire en16b = en16 & addr16[10]; wire [31:0] do32a, do32b; wire [15:0] do16a, do16b; assign do32 = addr32[9] ? do32b : do32a; assign do16 = addr16[10] ? do16b : do16a; RAMB16BWE_S36_S18 #(.INIT_A(36'h000000000), .INIT_B(18'h00000), .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(18'h00000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST") // WRITE_FIRST, READ_FIRST or NO_CHANGE ) RAMB16BWE_S36_S18_0 (.DOA(do32a), // Port A 32-bit Data Output .DOB(do16a), // Port B 16-bit Data Output .DOPA(), // Port A 4-bit Parity Output .DOPB(), // Port B 2-bit Parity Output .ADDRA(addr32[8:0]), // Port A 9-bit Address Input .ADDRB(addr16[9:0]), // Port B 10-bit Address Input .CLKA(clk32), // Port A 1-bit Clock .CLKB(clk16), // Port B 1-bit Clock .DIA(di32), // Port A 32-bit Data Input .DIB(di16), // Port B 16-bit Data Input .DIPA(0), // Port A 4-bit parity Input .DIPB(0), // Port-B 2-bit parity Input .ENA(en32a), // Port A 1-bit RAM Enable Input .ENB(en16a), // Port B 1-bit RAM Enable Input .SSRA(0), // Port A 1-bit Synchronous Set/Reset Input .SSRB(0), // Port B 1-bit Synchronous Set/Reset Input .WEA({4{we32}}), // Port A 4-bit Write Enable Input .WEB({2{we16}}) // Port B 2-bit Write Enable Input ); RAMB16BWE_S36_S18 #(.INIT_A(36'h000000000), .INIT_B(18'h00000), .SIM_COLLISION_CHECK("ALL"), // "NONE", "WARNING_ONLY", "GENERATE_X_ONLY", "ALL" .SRVAL_A(36'h000000000), // Port A output value upon SSR assertion .SRVAL_B(18'h00000), // Port B output value upon SSR assertion .WRITE_MODE_A("WRITE_FIRST"), // WRITE_FIRST, READ_FIRST or NO_CHANGE .WRITE_MODE_B("WRITE_FIRST") // WRITE_FIRST, READ_FIRST or NO_CHANGE ) RAMB16BWE_S36_S18_1 (.DOA(do32b), // Port A 32-bit Data Output .DOB(do16b), // Port B 16-bit Data Output .DOPA(), // Port A 4-bit Parity Output .DOPB(), // Port B 2-bit Parity Output .ADDRA(addr32[8:0]), // Port A 9-bit Address Input .ADDRB(addr16[9:0]), // Port B 10-bit Address Input .CLKA(clk32), // Port A 1-bit Clock .CLKB(clk16), // Port B 1-bit Clock .DIA(di32), // Port A 32-bit Data Input .DIB(di16), // Port B 16-bit Data Input .DIPA(0), // Port A 4-bit parity Input .DIPB(0), // Port-B 2-bit parity Input .ENA(en32b), // Port A 1-bit RAM Enable Input .ENB(en16b), // Port B 1-bit RAM Enable Input .SSRA(0), // Port A 1-bit Synchronous Set/Reset Input .SSRB(0), // Port B 1-bit Synchronous Set/Reset Input .WEA({4{we32}}), // Port A 4-bit Write Enable Input .WEB({2{we16}}) // Port B 2-bit Write Enable Input ); endmodule // ram_2port_mixed_width // ISE 10.1.03 chokes on the following /* reg [31:0] ram [(1<. // // Dual ported, Harvard architecture, cached ram module ram_harv_cache #(parameter AWIDTH=15,parameter RAM_SIZE=16384,parameter ICWIDTH=6,parameter DCWIDTH=6) (input wb_clk_i, input wb_rst_i, input [AWIDTH-1:0] ram_loader_adr_i, input [31:0] ram_loader_dat_i, input ram_loader_stb_i, input [3:0] ram_loader_sel_i, input ram_loader_we_i, output ram_loader_ack_o, input ram_loader_done_i, input [AWIDTH-1:0] iwb_adr_i, input iwb_stb_i, output [31:0] iwb_dat_o, output iwb_ack_o, input [AWIDTH-1:0] dwb_adr_i, input [31:0] dwb_dat_i, output [31:0] dwb_dat_o, input dwb_we_i, output dwb_ack_o, input dwb_stb_i, input [3:0] dwb_sel_i, input flush_icache ); wire [31:0] iram_dat, dram_dat_i, dram_dat_o; wire [AWIDTH-1:0] iram_adr, dram_adr; wire iram_en, dram_en, dram_we; wire [3:0] dram_sel; dpram32 #(.AWIDTH(AWIDTH),.RAM_SIZE(RAM_SIZE)) sys_ram (.clk(wb_clk_i), .adr1_i(ram_loader_done_i ? iram_adr : ram_loader_adr_i), .dat1_i(ram_loader_dat_i), .dat1_o(iram_dat), .we1_i(ram_loader_done_i ? 1'b0 : ram_loader_we_i), .en1_i(ram_loader_done_i ? iram_en : ram_loader_stb_i), .sel1_i(ram_loader_done_i ? 4'hF : ram_loader_sel_i), .adr2_i(dram_adr),.dat2_i(dram_dat_i),.dat2_o(dram_dat_o), .we2_i(dram_we),.en2_i(dram_en),.sel2_i(dram_sel) ); // Data bus side dcache #(.AWIDTH(AWIDTH),.CWIDTH(DCWIDTH)) dcache(.wb_clk_i(wb_clk_i),.wb_rst_i(wb_rst_i), .dwb_adr_i(dwb_adr_i),.dwb_stb_i(dwb_stb_i), .dwb_we_i(dwb_we_i),.dwb_sel_i(dwb_sel_i), .dwb_dat_i(dwb_dat_i),.dwb_dat_o(dwb_dat_o), .dwb_ack_o(dwb_ack_o), .dram_dat_i(dram_dat_o),.dram_dat_o(dram_dat_i),.dram_adr_o(dram_adr), .dram_we_o(dram_we),.dram_en_o(dram_en), .dram_sel_o(dram_sel) ); // Instruction bus side icache #(.AWIDTH(AWIDTH),.CWIDTH(ICWIDTH)) icache(.wb_clk_i(wb_clk_i),.wb_rst_i(wb_rst_i), .iwb_adr_i(iwb_adr_i),.iwb_stb_i(iwb_stb_i), .iwb_dat_o(iwb_dat_o),.iwb_ack_o(iwb_ack_o), .iram_dat_i(iram_dat),.iram_adr_o(iram_adr),.iram_en_o(iram_en), .flush(flush_icache)); // RAM loader assign ram_loader_ack_o = ram_loader_stb_i; // Performance Monitoring wire i_wait = iwb_stb_i & ~iwb_ack_o; wire d_wait = dwb_stb_i & ~dwb_ack_o; endmodule // ram_harv_cache uhd-3.5.5/fpga/usrp2/control_lib/ram_harvard.v000066400000000000000000000045731224274632000212720ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Dual ported, Harvard architecture, cached ram module ram_harvard #(parameter AWIDTH=15, parameter RAM_SIZE=16384, parameter ICWIDTH=6, parameter DCWIDTH=6) (input wb_clk_i, input wb_rst_i, // Firmware download port. input [AWIDTH-1:0] ram_loader_adr_i, input [31:0] ram_loader_dat_i, input [3:0] ram_loader_sel_i, input ram_loader_stb_i, input ram_loader_we_i, input ram_loader_done_i, // Instruction fetch port. input [AWIDTH-1:0] if_adr, output [31:0] if_data, // Data access port. input [AWIDTH-1:0] dwb_adr_i, input [31:0] dwb_dat_i, output [31:0] dwb_dat_o, input dwb_we_i, output dwb_ack_o, input dwb_stb_i, input [3:0] dwb_sel_i ); reg ack_d1; reg stb_d1; dpram32 #(.AWIDTH(AWIDTH),.RAM_SIZE(RAM_SIZE)) sys_ram (.clk(wb_clk_i), .adr1_i(ram_loader_done_i ? if_adr : ram_loader_adr_i), .dat1_i(ram_loader_dat_i), .dat1_o(if_data), .we1_i(ram_loader_done_i ? 1'b0 : ram_loader_we_i), .en1_i(ram_loader_done_i ? 1'b1 : ram_loader_stb_i), //.sel1_i(ram_loader_done_i ? 4'hF : ram_loader_sel_i), .sel1_i(ram_loader_sel_i), // Sel is only for writes anyway .adr2_i(dwb_adr_i), .dat2_i(dwb_dat_i), .dat2_o(dwb_dat_o), .we2_i(dwb_we_i), .en2_i(dwb_stb_i), .sel2_i(dwb_sel_i) ); assign dwb_ack_o = dwb_stb_i & (dwb_we_i | (stb_d1 & ~ack_d1)); always @(posedge wb_clk_i) if(wb_rst_i) ack_d1 <= 1'b0; else ack_d1 <= dwb_ack_o; always @(posedge wb_clk_i) if(wb_rst_i) stb_d1 <= 0; else stb_d1 <= dwb_stb_i; endmodule // ram_harvard uhd-3.5.5/fpga/usrp2/control_lib/ram_harvard2.v000066400000000000000000000055741224274632000213560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Dual ported, Harvard architecture module ram_harvard2 #(parameter AWIDTH=15, parameter RAM_SIZE=32768) (input wb_clk_i, input wb_rst_i, // Instruction fetch port. input [AWIDTH-1:0] if_adr, output reg [31:0] if_data, // Data access port. input [AWIDTH-1:0] dwb_adr_i, input [31:0] dwb_dat_i, output reg [31:0] dwb_dat_o, input dwb_we_i, output dwb_ack_o, input dwb_stb_i, input [3:0] dwb_sel_i); reg ack_d1; reg stb_d1; assign dwb_ack_o = dwb_stb_i & (dwb_we_i | (stb_d1 & ~ack_d1)); always @(posedge wb_clk_i) if(wb_rst_i) ack_d1 <= 1'b0; else ack_d1 <= dwb_ack_o; always @(posedge wb_clk_i) if(wb_rst_i) stb_d1 <= 0; else stb_d1 <= dwb_stb_i; reg [7:0] ram0 [0:(RAM_SIZE/4)-1]; reg [7:0] ram1 [0:(RAM_SIZE/4)-1]; reg [7:0] ram2 [0:(RAM_SIZE/4)-1]; reg [7:0] ram3 [0:(RAM_SIZE/4)-1]; // Port 1, Read only always @(posedge wb_clk_i) if_data[31:24] <= ram3[if_adr[AWIDTH-1:2]]; always @(posedge wb_clk_i) if_data[23:16] <= ram2[if_adr[AWIDTH-1:2]]; always @(posedge wb_clk_i) if_data[15:8] <= ram1[if_adr[AWIDTH-1:2]]; always @(posedge wb_clk_i) if_data[7:0] <= ram0[if_adr[AWIDTH-1:2]]; // Port 2, R/W always @(posedge wb_clk_i) if(dwb_stb_i) dwb_dat_o[31:24] <= ram3[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) if(dwb_stb_i) dwb_dat_o[23:16] <= ram2[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) if(dwb_stb_i) dwb_dat_o[15:8] <= ram1[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) if(dwb_stb_i) dwb_dat_o[7:0] <= ram0[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[3]) ram3[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[31:24]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[2]) ram2[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[23:16]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[1]) ram1[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[15:8]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[0]) ram0[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[7:0]; endmodule // ram_harvard uhd-3.5.5/fpga/usrp2/control_lib/ram_loader.v000066400000000000000000000156551224274632000211140ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ram_loader #(parameter AWIDTH=16, RAM_SIZE=16384) ( // Wishbone I/F and clock domain input wb_clk, input dsp_clk, input ram_loader_rst, output wire [31:0] wb_dat, output wire [AWIDTH-1:0] wb_adr, output wb_stb, output reg [3:0] wb_sel, output wb_we, output reg ram_loader_done, // CPLD signals and clock domain input cpld_clk, input cpld_din, output reg cpld_start, output reg cpld_mode, output reg cpld_done, input cpld_detached ); localparam S0 = 0; localparam S1 = 1; localparam S2 = 2; localparam S3 = 3; localparam S4 = 4; localparam S5 = 5; localparam S6 = 6; localparam RESET = 7; localparam WB_IDLE = 0; localparam WB_WRITE = 1; reg [AWIDTH+2:0] count; // 3 LSB's count bits in, the MSB's generate the Wishbone address reg [6:0] shift_reg; reg [7:0] data_reg; reg sampled_clk; reg sampled_clk_meta; reg sampled_din; reg inc_count; reg load_data_reg; reg shift; reg wb_state, wb_next_state; reg [2:0] state, next_state; // // CPLD clock doesn't free run and is approximately 12.5MHz. // Use 50MHz Wishbone clock to sample it as a signal and avoid having // an extra clock domain for no reason. // always @(posedge dsp_clk or posedge ram_loader_rst) if (ram_loader_rst) begin sampled_clk_meta <= 1'b0; sampled_clk <= 1'b0; sampled_din <= 1'b0; count <= 'h7FFF8; // Initialize so that address will be 0 when first byte fully received. data_reg <= 0; shift_reg <= 0; end else begin sampled_clk_meta <= cpld_clk; sampled_clk <= sampled_clk_meta; sampled_din <= cpld_din; if (inc_count) count <= count + 1'b1; if (load_data_reg) data_reg <= {shift_reg,sampled_din}; if (shift) shift_reg <= {shift_reg[5:0],sampled_din}; end // else: !if(ram_loader_rst) always @(posedge dsp_clk or posedge ram_loader_rst) if (ram_loader_rst) state <= RESET; else state <= next_state; always @* begin // Defaults next_state = state; cpld_start = 1'b0; shift = 1'b0; inc_count = 0; load_data_reg = 1'b0; ram_loader_done = 1'b0; cpld_mode = 1'b0; cpld_done = 1'b1; case (state) //synthesis parallel_case full_case // After reset wait until CPLD indicates its detached. RESET: begin if (cpld_detached) next_state = S0; else next_state = RESET; end // Assert cpld_start to signal the CPLD its to start sending serial clock and data. // Assume cpld_clk is low as we transition into search for first rising edge S0: begin cpld_start = 1'b1; cpld_done = 1'b0; if (~cpld_detached) next_state = S2; else next_state = S0; end // S1: begin cpld_start = 1'b1; cpld_done = 1'b0; if (sampled_clk) begin // Found rising edge on cpld_clk. if (count[2:0] == 3'b111) // Its the last bit of a byte, send it out to the Wishbone bus. begin load_data_reg = 1'b1; inc_count = 1'b1; end else // Shift databit into LSB of shift register and increment count begin shift = 1'b1; inc_count = 1'b1; end // else: !if(count[2:0] == 3'b111) next_state = S2; end // if (sampled_clk) else next_state = S1; end // case: S1 // S2: begin cpld_start = 1'b1; cpld_done = 1'b0; if (~sampled_clk) // Found negative edge of clock if (count[AWIDTH+2:3] == RAM_SIZE-1) // NOTE need to change this constant // All firmware now downloaded next_state = S3; else next_state = S1; else next_state = S2; end // case: S2 // Now that terminal count is reached and all firmware is downloaded signal CPLD that download is done // and that mode is now SPI mode. S3: begin if (sampled_clk) begin cpld_mode = 1'b1; cpld_done = 1'b1; next_state = S4; end else next_state = S3; end // Search for negedge of cpld_clk whilst keeping done sequence asserted. // Keep done assserted S4: begin cpld_mode = 1'b1; cpld_done = 1'b1; if (~sampled_clk) next_state = S5; else next_state = S4; end // Search for posedge of cpld_clk whilst keeping done sequence asserted. S5: begin cpld_mode = 1'b1; cpld_done = 1'b1; if (sampled_clk) next_state = S6; else next_state = S5; end // Stay in this state until reset/power down S6: begin ram_loader_done = 1'b1; cpld_done = 1'b1; cpld_mode = 1'b1; next_state = S6; end endcase // case(state) end always @(posedge dsp_clk or posedge ram_loader_rst) if (ram_loader_rst) wb_state <= WB_IDLE; else wb_state <= wb_next_state; reg do_write; wire empty, full; always @* begin wb_next_state = wb_state; do_write = 1'b0; case (wb_state) //synthesis full_case parallel_case // WB_IDLE: begin if (load_data_reg) // Data reg will load ready to write wishbone @ next clock edge wb_next_state = WB_WRITE; else wb_next_state = WB_IDLE; end // Drive address and data onto wishbone. WB_WRITE: begin do_write = 1'b1; if (~full) wb_next_state = WB_IDLE; else wb_next_state = WB_WRITE; end endcase // case(wb_state) end // always @ * wire [1:0] count_out; wire [7:0] data_out; fifo_xlnx_16x40_2clk crossclk (.rst(ram_loader_rst), .wr_clk(dsp_clk), .din({count[4:3],count[AWIDTH+2:3],data_reg}), .wr_en(do_write), .full(full), .rd_clk(wb_clk), .dout({count_out,wb_adr,data_out}), .rd_en(~empty), .empty(empty)); assign wb_dat = {4{data_out}}; always @* case(count_out[1:0]) //synthesis parallel_case full_case 2'b00 : wb_sel = 4'b1000; 2'b01 : wb_sel = 4'b0100; 2'b10 : wb_sel = 4'b0010; 2'b11 : wb_sel = 4'b0001; endcase assign wb_we = ~empty; assign wb_stb = ~empty; endmodule // ram_loader uhd-3.5.5/fpga/usrp2/control_lib/ram_wb_harvard.v000066400000000000000000000067621224274632000217640ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Dual ported RAM for Harvard architecture processors // Does no forwarding // Addresses are byte-oriented, so botton 2 address bits are ignored. FIXME // AWIDTH of 13 gives 8K bytes. For Spartan 3, if the total RAM size is not a // multiple of 8K then BRAM space is wasted module ram_wb_harvard #(parameter AWIDTH=13) (input wb_clk_i, input wb_rst_i, input [AWIDTH-1:0] iwb_adr_i, input [31:0] iwb_dat_i, output reg [31:0] iwb_dat_o, input iwb_we_i, output reg iwb_ack_o, input iwb_stb_i, input [3:0] iwb_sel_i, input [AWIDTH-1:0] dwb_adr_i, input [31:0] dwb_dat_i, output reg [31:0] dwb_dat_o, input dwb_we_i, output reg dwb_ack_o, input dwb_stb_i, input [3:0] dwb_sel_i); reg [7:0] ram0 [0:(1<<(AWIDTH-2))-1]; reg [7:0] ram1 [0:(1<<(AWIDTH-2))-1]; reg [7:0] ram2 [0:(1<<(AWIDTH-2))-1]; reg [7:0] ram3 [0:(1<<(AWIDTH-2))-1]; // Instruction Read Port always @(posedge wb_clk_i) iwb_ack_o <= iwb_stb_i & ~iwb_ack_o; always @(posedge wb_clk_i) iwb_dat_o[31:24] <= ram3[iwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) iwb_dat_o[23:16] <= ram2[iwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) iwb_dat_o[15:8] <= ram1[iwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) iwb_dat_o[7:0] <= ram0[iwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) if(iwb_we_i & iwb_stb_i & iwb_sel_i[3]) ram3[iwb_adr_i[AWIDTH-1:2]] <= iwb_dat_i[31:24]; always @(posedge wb_clk_i) if(iwb_we_i & iwb_stb_i & iwb_sel_i[2]) ram2[iwb_adr_i[AWIDTH-1:2]] <= iwb_dat_i[23:16]; always @(posedge wb_clk_i) if(iwb_we_i & iwb_stb_i & iwb_sel_i[1]) ram1[iwb_adr_i[AWIDTH-1:2]] <= iwb_dat_i[15:8]; always @(posedge wb_clk_i) if(iwb_we_i & iwb_stb_i & iwb_sel_i[0]) ram0[iwb_adr_i[AWIDTH-1:2]] <= iwb_dat_i[7:0]; // Data Port always @(posedge wb_clk_i) dwb_ack_o <= dwb_stb_i & ~dwb_ack_o; always @(posedge wb_clk_i) dwb_dat_o[31:24] <= ram3[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) dwb_dat_o[23:16] <= ram2[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) dwb_dat_o[15:8] <= ram1[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) dwb_dat_o[7:0] <= ram0[dwb_adr_i[AWIDTH-1:2]]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[3]) ram3[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[31:24]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[2]) ram2[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[23:16]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[1]) ram1[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[15:8]; always @(posedge wb_clk_i) if(dwb_we_i & dwb_stb_i & dwb_sel_i[0]) ram0[dwb_adr_i[AWIDTH-1:2]] <= dwb_dat_i[7:0]; endmodule // ram_wb_harvard uhd-3.5.5/fpga/usrp2/control_lib/reset_sync.v000066400000000000000000000017351224274632000211570ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module reset_sync (input clk, input reset_in, output reg reset_out); reg reset_int; always @(posedge clk or posedge reset_in) if(reset_in) {reset_out,reset_int} <= 2'b11; else {reset_out,reset_int} <= {reset_int,1'b0}; endmodule // reset_sync uhd-3.5.5/fpga/usrp2/control_lib/s3a_icap_wb.v000066400000000000000000000044341224274632000211520ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module s3a_icap_wb (input clk, input reset, input cyc_i, input stb_i, input we_i, output ack_o, input [31:0] dat_i, output [31:0] dat_o);//, output [31:0] debug_out); assign dat_o[31:8] = 24'd0; wire BUSY, CE, WRITE, ICAPCLK; //changed this to gray-ish code to prevent glitching reg [2:0] icap_state; localparam ICAP_IDLE = 0; localparam ICAP_WR0 = 1; localparam ICAP_WR1 = 5; localparam ICAP_RD0 = 2; localparam ICAP_RD1 = 3; always @(posedge clk) if(reset) icap_state <= ICAP_IDLE; else case(icap_state) ICAP_IDLE : begin if(stb_i & cyc_i) if(we_i) icap_state <= ICAP_WR0; else icap_state <= ICAP_RD0; end ICAP_WR0 : icap_state <= ICAP_WR1; ICAP_WR1 : icap_state <= ICAP_IDLE; ICAP_RD0 : icap_state <= ICAP_RD1; ICAP_RD1 : icap_state <= ICAP_IDLE; endcase // case (icap_state) assign WRITE = (icap_state == ICAP_WR0) | (icap_state == ICAP_WR1); assign CE = (icap_state == ICAP_WR0) | (icap_state == ICAP_RD0); assign ICAPCLK = CE & (~clk); assign ack_o = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD1); //assign debug_out = {17'd0, BUSY, dat_i[7:0], ~CE, ICAPCLK, ~WRITE, icap_state}; ICAP_SPARTAN3A ICAP_SPARTAN3A_inst (.BUSY(BUSY), // Busy output .O(dat_o[7:0]), // 32-bit data output .CE(~CE), // Clock enable input .CLK(ICAPCLK), // Clock input .I(dat_i[7:0]), // 32-bit data input .WRITE(~WRITE) // Write input ); endmodule // s3a_icap_wb uhd-3.5.5/fpga/usrp2/control_lib/sd_spi.v000066400000000000000000000042651224274632000202630ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module sd_spi (input clk, input rst, // SD Card interface output reg sd_clk, output sd_mosi, input sd_miso, // Controls input [7:0] clk_div, input [7:0] send_dat, output [7:0] rcv_dat, input go, output ready); reg [7:0] clk_ctr; reg [3:0] bit_ctr; wire bit_ready = (clk_ctr == 8'd0); wire bit_busy = (clk_ctr != 8'd0); wire bit_done = (clk_ctr == clk_div); wire send_clk_hi = (clk_ctr == (clk_div>>1)); wire latch_dat = (clk_ctr == (clk_div - 8'd2)); wire send_clk_lo = (clk_ctr == (clk_div - 8'd1)); wire send_bit = (bit_ready && (bit_ctr != 0)); assign ready = (bit_ctr == 0); always @(posedge clk) if(rst) clk_ctr <= 0; else if(bit_done) clk_ctr <= 0; else if(bit_busy) clk_ctr <= clk_ctr + 1; else if(send_bit) clk_ctr <= 1; always @(posedge clk) if(rst) sd_clk <= 0; else if(send_clk_hi) sd_clk <= 1; else if(send_clk_lo) sd_clk <= 0; always @(posedge clk) if(rst) bit_ctr <= 0; else if(bit_done) if(bit_ctr == 4'd8) bit_ctr <= 0; else bit_ctr <= bit_ctr + 1; else if(bit_ready & go) bit_ctr <= 1; reg [7:0] shift_reg; always @(posedge clk) if(go) shift_reg <= send_dat; else if(latch_dat) shift_reg <= {shift_reg[6:0],sd_miso}; assign sd_mosi = shift_reg[7]; assign rcv_dat = shift_reg; endmodule // sd_spi uhd-3.5.5/fpga/usrp2/control_lib/sd_spi_tb.v000066400000000000000000000025741224274632000207510ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module sd_spi_tb; reg clk = 0; always #5 clk = ~clk; reg rst = 1; initial #32 rst = 0; wire sd_clk, sd_mosi, sd_miso; wire [7:0] clk_div = 12; wire [7:0] send_dat = 23; wire [7:0] rcv_dat; wire ready; reg go = 0; initial begin repeat (100) @(posedge clk); go <= 1; @(posedge clk); go <= 0; end sd_spi dut(.clk(clk),.rst(rst), .sd_clk(sd_clk),.sd_mosi(sd_mosi),.sd_miso(sd_miso), .clk_div(clk_div),.send_dat(send_dat),.rcv_dat(rcv_dat), .go(go),.ready(ready) ); initial begin $dumpfile("sd_spi_tb.vcd"); $dumpvars(0,sd_spi_tb); end initial #10000 $finish(); endmodule // sd_spi_tb uhd-3.5.5/fpga/usrp2/control_lib/sd_spi_wb.v000066400000000000000000000053241224274632000207500ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Wishbone module for spi communications with an SD Card // The programming interface is simple -- // Write the desired clock divider to address 1 (should be 1 or higher) // Status is in address 0. A 1 indicates the last transaction is done and it is safe to // send another // Writing a byte to address 2 sends that byte over SPI. When it is done, // status (addr 0) goes high again, and the received byte can be read from address 3. module sd_spi_wb (input clk, input rst, // SD Card interface output sd_clk, output sd_csn, output sd_mosi, input sd_miso, input wb_cyc_i, input wb_stb_i, input wb_we_i, input [1:0] wb_adr_i, input [7:0] wb_dat_i, output reg [7:0] wb_dat_o, output reg wb_ack_o); localparam ADDR_STATUS = 0; localparam ADDR_CLKDIV = 1; localparam ADDR_WRITE = 2; localparam ADDR_READ = 3; wire [7:0] status, rcv_dat; reg [7:0] clkdiv; wire ready; reg ack_d1; reg cs_reg; assign sd_csn = ~cs_reg; // FIXME always @(posedge clk) if(rst) ack_d1 <= 0; else ack_d1 <= wb_ack_o; always @(posedge clk) if(rst) wb_ack_o <= 0; else wb_ack_o <= wb_cyc_i & wb_stb_i & ~ack_d1; always @(posedge clk) case(wb_adr_i) ADDR_STATUS : wb_dat_o <= {7'd0,ready}; ADDR_CLKDIV : wb_dat_o <= clkdiv; ADDR_READ : wb_dat_o <= rcv_dat; default : wb_dat_o <= 0; endcase // case(wb_adr_i) always @(posedge clk) if(rst) begin clkdiv <= 200; cs_reg <= 0; end else if(wb_we_i & wb_stb_i & wb_cyc_i & wb_ack_o) case(wb_adr_i) ADDR_STATUS : cs_reg <= wb_dat_i; ADDR_CLKDIV : clkdiv <= wb_dat_i; endcase // case(wb_adr_i) wire go = wb_we_i & wb_stb_i & wb_cyc_i & wb_ack_o & (wb_adr_i == ADDR_WRITE); sd_spi sd_spi(.clk(clk),.rst(rst), .sd_clk(sd_clk),.sd_mosi(sd_mosi),.sd_miso(sd_miso), .clk_div(clkdiv),.send_dat(wb_dat_i),.rcv_dat(rcv_dat), .go(go),.ready(ready) ); endmodule // sd_spi_wb uhd-3.5.5/fpga/usrp2/control_lib/setting_reg.v000066400000000000000000000022621224274632000213070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module setting_reg #(parameter my_addr = 0, parameter width = 32, parameter at_reset=32'd0) (input clk, input rst, input strobe, input wire [7:0] addr, input wire [31:0] in, output reg [width-1:0] out, output reg changed); always @(posedge clk) if(rst) begin out <= at_reset; changed <= 1'b0; end else if(strobe & (my_addr==addr)) begin out <= in; changed <= 1'b1; end else changed <= 1'b0; endmodule // setting_reg uhd-3.5.5/fpga/usrp2/control_lib/settings_bus.v000066400000000000000000000030551224274632000215070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Grab settings off the wishbone bus, send them out to our simpler bus on the fast clock module settings_bus #(parameter AWIDTH=16, parameter DWIDTH=32) (input wb_clk, input wb_rst, input [AWIDTH-1:0] wb_adr_i, input [DWIDTH-1:0] wb_dat_i, input wb_stb_i, input wb_we_i, output reg wb_ack_o, output reg strobe, output reg [7:0] addr, output reg [31:0] data); reg stb_int, stb_int_d1; always @(posedge wb_clk) if(wb_rst) begin strobe <= 1'b0; addr <= 8'd0; data <= 32'd0; end else if(wb_we_i & wb_stb_i & ~wb_ack_o) begin strobe <= 1'b1; addr <= wb_adr_i[9:2]; data <= wb_dat_i; end else strobe <= 1'b0; always @(posedge wb_clk) if(wb_rst) wb_ack_o <= 0; else wb_ack_o <= wb_stb_i & ~wb_ack_o; endmodule // settings_bus uhd-3.5.5/fpga/usrp2/control_lib/settings_bus_16LE.v000066400000000000000000000040021224274632000222270ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Grab settings off the wishbone bus, send them out to settings bus // 16 bits little endian, but all registers need to be written 32 bits at a time. // This means that you write the low 16 bits first and then the high 16 bits. // The setting regs are strobed when the high 16 bits are written module settings_bus_16LE #(parameter AWIDTH=16, RWIDTH=8) (input wb_clk, input wb_rst, input [AWIDTH-1:0] wb_adr_i, input [15:0] wb_dat_i, input wb_stb_i, input wb_we_i, output reg wb_ack_o, output strobe, output reg [7:0] addr, output reg [31:0] data); reg stb_int; always @(posedge wb_clk) if(wb_rst) begin stb_int <= 1'b0; addr <= 8'd0; data <= 32'd0; end else if(wb_we_i & wb_stb_i) begin addr <= wb_adr_i[RWIDTH+1:2]; // Zero pad high bits if(wb_adr_i[1]) begin stb_int <= 1'b1; // We now have both halves data[31:16] <= wb_dat_i; end else begin stb_int <= 1'b0; // Don't strobe, we need other half data[15:0] <= wb_dat_i; end end else stb_int <= 1'b0; always @(posedge wb_clk) if(wb_rst) wb_ack_o <= 0; else wb_ack_o <= wb_stb_i & ~wb_ack_o; assign strobe = stb_int & wb_ack_o; endmodule // settings_bus_16LE uhd-3.5.5/fpga/usrp2/control_lib/settings_bus_crossclock.v000066400000000000000000000030331224274632000237300ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // This module takes the settings bus on one clock domain and crosses it over to another domain // Typically it will be used with the input settings bus on the wishbone clock, and either // the system or dsp clock on the output side module settings_bus_crossclock #(parameter FLOW_CTRL=0) (input clk_i, input rst_i, input set_stb_i, input [7:0] set_addr_i, input [31:0] set_data_i, input clk_o, input rst_o, output set_stb_o, output [7:0] set_addr_o, output [31:0] set_data_o, input blocked); wire full, empty; fifo_xlnx_16x40_2clk settings_fifo (.rst(rst_i), .wr_clk(clk_i), .din({set_addr_i,set_data_i}), .wr_en(set_stb_i & ~full), .full(full), .rd_clk(clk_o), .dout({set_addr_o,set_data_o}), .rd_en(set_stb_o), .empty(empty)); assign set_stb_o = ~empty & (~blocked | ~FLOW_CTRL); endmodule // settings_bus_crossclock uhd-3.5.5/fpga/usrp2/control_lib/settings_fifo_ctrl.v000066400000000000000000000331621224274632000226670ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // A settings and readback bus controlled via fifo36 interface module settings_fifo_ctrl #( parameter XPORT_HDR = 1, //extra transport hdr line parameter PROT_DEST = 0, //protocol framer destination parameter PROT_HDR = 1, //needs a protocol header? parameter ACK_SID = 0 //stream ID for packet ACK ) ( //clock and synchronous reset for all interfaces input clock, input reset, input clear, //current system time input [63:0] vita_time, //ready signal for multiple peripherals input perfs_ready, //input fifo36 interface control input [35:0] in_data, input in_valid, output in_ready, //output fifo36 interface status output [35:0] out_data, output out_valid, input out_ready, //32-bit settings bus outputs output strobe, output [7:0] addr, output [31:0] data, //16X 32-bit inputs for readback input [31:0] word00, input [31:0] word01, input [31:0] word02, input [31:0] word03, input [31:0] word04, input [31:0] word05, input [31:0] word06, input [31:0] word07, input [31:0] word08, input [31:0] word09, input [31:0] word10, input [31:0] word11, input [31:0] word12, input [31:0] word13, input [31:0] word14, input [31:0] word15, //debug output output [31:0] debug ); wire reading = in_valid && in_ready; wire writing = out_valid && out_ready; //------------------------------------------------------------------ //-- The command fifo: //-- Stores an individual register access command per line. //------------------------------------------------------------------ wire [63:0] in_command_ticks, out_command_ticks; wire [31:0] in_command_hdr, out_command_hdr; wire [31:0] in_command_data, out_command_data; wire in_command_has_time, out_command_has_time; wire command_fifo_full, command_fifo_empty; wire command_fifo_read, command_fifo_write; shortfifo #(.WIDTH(129)) command_fifo ( .clk(clock), .rst(reset), .clear(clear), .datain({in_command_ticks, in_command_hdr, in_command_data, in_command_has_time}), .dataout({out_command_ticks, out_command_hdr, out_command_data, out_command_has_time}), .write(command_fifo_write), .full(command_fifo_full), //input interface .empty(command_fifo_empty), .read(command_fifo_read) //output interface ); //------------------------------------------------------------------ //-- The result fifo: //-- Stores an individual result of a command per line. //------------------------------------------------------------------ wire [31:0] in_result_hdr, out_result_hdr; wire [31:0] in_result_data, out_result_data; wire result_fifo_full, result_fifo_empty; wire result_fifo_read, result_fifo_write; shortfifo #(.WIDTH(64)) result_fifo ( .clk(clock), .rst(reset), .clear(clear), .datain({in_result_hdr, in_result_data}), .dataout({out_result_hdr, out_result_data}), .write(result_fifo_write), .full(result_fifo_full), //input interface .empty(result_fifo_empty), .read(result_fifo_read) //output interface ); //------------------------------------------------------------------ //-- Input state machine: //-- Read input packet and fill a command fifo entry. //------------------------------------------------------------------ localparam READ_LINE0 = 0; localparam VITA_HDR = 1; localparam VITA_SID = 2; localparam VITA_CID0 = 3; localparam VITA_CID1 = 4; localparam VITA_TSI = 5; localparam VITA_TSF0 = 6; localparam VITA_TSF1 = 7; localparam READ_HDR = 8; localparam READ_DATA = 9; localparam WAIT_EOF = 10; localparam STORE_CMD = 11; localparam START_STATE = (XPORT_HDR)? READ_LINE0 : VITA_HDR; reg [4:0] in_state; //holdover from current read inputs reg [31:0] in_data_reg, in_hdr_reg; reg [63:0] in_ticks_reg; wire has_sid = in_data[28]; wire has_cid = in_data[27]; wire has_tsi = in_data[23:22] != 0; wire has_tsf = in_data[21:20] != 0; reg has_sid_reg, has_cid_reg, has_tsi_reg, has_tsf_reg; assign in_ready = (in_state < STORE_CMD); assign command_fifo_write = (in_state == STORE_CMD); assign in_command_ticks = in_ticks_reg; assign in_command_data = in_data_reg; assign in_command_hdr = in_hdr_reg; assign in_command_has_time = has_tsf_reg; always @(posedge clock) begin if (reset) begin in_state <= START_STATE; end else begin case (in_state) READ_LINE0: begin if (reading) in_state <= VITA_HDR; end VITA_HDR: begin if (reading) begin if (has_sid) in_state <= VITA_SID; else if (has_cid) in_state <= VITA_CID0; else if (has_tsi) in_state <= VITA_TSI; else if (has_tsf) in_state <= VITA_TSF0; else in_state <= READ_HDR; end has_sid_reg <= has_sid; has_cid_reg <= has_cid; has_tsi_reg <= has_tsi; has_tsf_reg <= has_tsf; end VITA_SID: begin if (reading) begin if (has_cid_reg) in_state <= VITA_CID0; else if (has_tsi_reg) in_state <= VITA_TSI; else if (has_tsf_reg) in_state <= VITA_TSF0; else in_state <= READ_HDR; end end VITA_CID0: begin if (reading) in_state <= VITA_CID1; end VITA_CID1: begin if (reading) begin if (has_tsi_reg) in_state <= VITA_TSI; else if (has_tsf_reg) in_state <= VITA_TSF0; else in_state <= READ_HDR; end end VITA_TSI: begin if (reading) begin if (has_tsf_reg) in_state <= VITA_TSF0; else in_state <= READ_HDR; end end VITA_TSF0: begin if (reading) in_state <= VITA_TSF1; in_ticks_reg[63:32] <= in_data; end VITA_TSF1: begin if (reading) in_state <= READ_HDR; in_ticks_reg[31:0] <= in_data; end READ_HDR: begin if (reading) in_state <= READ_DATA; in_hdr_reg <= in_data[31:0]; end READ_DATA: begin if (reading) in_state <= (in_data[33])? STORE_CMD : WAIT_EOF; in_data_reg <= in_data[31:0]; end WAIT_EOF: begin if (reading && in_data[33]) in_state <= STORE_CMD; end STORE_CMD: begin if (~command_fifo_full) in_state <= START_STATE; end endcase //in_state end end //------------------------------------------------------------------ //-- Command state machine: //-- Read a command fifo entry, act on it, produce result. //------------------------------------------------------------------ localparam LOAD_CMD = 0; localparam EVENT_CMD = 1; reg cmd_state; reg [31:0] rb_data; reg [63:0] command_ticks_reg; reg [31:0] command_hdr_reg; reg [31:0] command_data_reg; reg [63:0] vita_time_reg; always @(posedge clock) vita_time_reg <= vita_time; wire late; `ifndef FIFO_CTRL_NO_TIME time_compare time_compare( .time_now(vita_time_reg), .trigger_time(command_ticks_reg), .late(late)); `else assign late = 1; `endif //action occurs in the event state and when there is fifo space (should always be true) //the third condition is that all peripherals in the perfs signal are ready/active high //the fourth condition is that is an event time has been set, action is delayed until that time wire time_ready = (out_command_has_time)? late : 1; wire action = (cmd_state == EVENT_CMD) && ~result_fifo_full && perfs_ready && time_ready; assign command_fifo_read = action; assign result_fifo_write = action; assign in_result_hdr = command_hdr_reg; assign in_result_data = rb_data; always @(posedge clock) begin if (reset) begin cmd_state <= LOAD_CMD; end else begin case (cmd_state) LOAD_CMD: begin if (~command_fifo_empty) cmd_state <= EVENT_CMD; command_ticks_reg <= out_command_ticks; command_hdr_reg <= out_command_hdr; command_data_reg <= out_command_data; end EVENT_CMD: begin // poking and peeking happens here! if (action || clear) cmd_state <= LOAD_CMD; end endcase //cmd_state end end //------------------------------------------------------------------ //-- assign to settings bus interface //------------------------------------------------------------------ reg strobe_reg; assign strobe = strobe_reg; assign data = command_data_reg; assign addr = command_hdr_reg[7:0]; wire poke = command_hdr_reg[8]; always @(posedge clock) begin if (reset || clear) strobe_reg <= 0; else strobe_reg <= action && poke; end //------------------------------------------------------------------ //-- readback mux //------------------------------------------------------------------ always @(posedge clock) begin case (out_command_hdr[3:0]) 0 : rb_data <= word00; 1 : rb_data <= word01; 2 : rb_data <= word02; 3 : rb_data <= word03; 4 : rb_data <= word04; 5 : rb_data <= word05; 6 : rb_data <= word06; 7 : rb_data <= word07; 8 : rb_data <= word08; 9 : rb_data <= word09; 10: rb_data <= word10; 11: rb_data <= word11; 12: rb_data <= word12; 13: rb_data <= word13; 14: rb_data <= word14; 15: rb_data <= word15; endcase // case(addr_reg[3:0]) end //------------------------------------------------------------------ //-- Output state machine: //-- Read a command fifo entry, act on it, produce ack packet. //------------------------------------------------------------------ localparam WRITE_PROT_HDR = 0; localparam WRITE_VRT_HDR = 1; localparam WRITE_VRT_SID = 2; localparam WRITE_RB_HDR = 3; localparam WRITE_RB_DATA = 4; //the state for the start of packet condition localparam WRITE_PKT_HDR = (PROT_HDR)? WRITE_PROT_HDR : WRITE_VRT_HDR; reg [2:0] out_state; assign out_valid = ~result_fifo_empty; assign result_fifo_read = out_data[33] && writing; always @(posedge clock) begin if (reset) begin out_state <= WRITE_PKT_HDR; end else if (writing && out_data[33]) begin out_state <= WRITE_PKT_HDR; end else if (writing) begin out_state <= out_state + 1; end end //------------------------------------------------------------------ //-- assign to output fifo interface //------------------------------------------------------------------ wire [31:0] prot_hdr; assign prot_hdr[15:0] = 16; //bytes in proceeding vita packet assign prot_hdr[16] = 1; //yes frame assign prot_hdr[18:17] = PROT_DEST; assign prot_hdr[31:19] = 0; //nothing reg [31:0] out_data_int; always @* begin case (out_state) WRITE_PROT_HDR: out_data_int <= prot_hdr; WRITE_VRT_HDR: out_data_int <= {12'b010100000000, out_result_hdr[19:16], 2'b0, prot_hdr[15:2]}; WRITE_VRT_SID: out_data_int <= ACK_SID; WRITE_RB_HDR: out_data_int <= out_result_hdr; WRITE_RB_DATA: out_data_int <= out_result_data; default: out_data_int <= 0; endcase //state end assign out_data[35:34] = 2'b0; assign out_data[33] = (out_state == WRITE_RB_DATA); assign out_data[32] = (out_state == WRITE_PKT_HDR); assign out_data[31:0] = out_data_int; //------------------------------------------------------------------ //-- debug outputs //------------------------------------------------------------------ assign debug = { in_state, out_state, //8 in_valid, in_ready, in_data[33:32], //4 out_valid, out_ready, out_data[33:32], //4 command_fifo_empty, command_fifo_full, //2 command_fifo_read, command_fifo_write, //2 addr, //8 strobe_reg, strobe, poke, out_command_has_time //4 }; endmodule //settings_fifo_ctrl uhd-3.5.5/fpga/usrp2/control_lib/shortfifo.v000066400000000000000000000046551224274632000210100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module shortfifo #(parameter WIDTH=32) (input clk, input rst, input [WIDTH-1:0] datain, output [WIDTH-1:0] dataout, input read, input write, input clear, output reg full, output reg empty, output reg [4:0] space, output reg [4:0] occupied); reg [3:0] a; genvar i; generate for (i=0;i. // // Simple I2C core // Settings reg map: // // BASE+0 control register // byte0 - control bits, data byte, or command bits, prescaler // byte1 - what to do? (documented in cpp file) // write prescaler lo // write prescaler hi // write control // write data // write command // read data // read status // // Readback: // // byte0 has readback value based on the last read command // module simple_i2c_core #( //settings register base address parameter BASE = 0, //i2c line level at reset parameter ARST_LVL = 1 ) ( //clock and synchronous reset input clock, input reset, //32-bit settings bus inputs input set_stb, input [7:0] set_addr, input [31:0] set_data, //32-bit data readback output reg [31:0] readback, //read is high when i2c core can begin another transaction output reg ready, // I2C signals // i2c clock line input scl_pad_i, // SCL-line input output scl_pad_o, // SCL-line output (always 1'b0) output scl_padoen_o, // SCL-line output enable (active low) // i2c data line input sda_pad_i, // SDA-line input output sda_pad_o, // SDA-line output (always 1'b0) output sda_padoen_o, // SDA-line output enable (active low) //optional debug output output [31:0] debug ); //declare command settings register wire [7:0] sr_what, sr_data; wire sr_changed; setting_reg #(.my_addr(BASE+0),.width(16)) i2c_cmd_sr( .clk(clock),.rst(reset),.strobe(set_stb),.addr(set_addr),.in(set_data), .out({sr_what, sr_data}),.changed(sr_changed)); //declare wb interface signals wire [2:0] wb_addr; wire [7:0] wb_data_mosi; wire [7:0] wb_data_miso; wire wb_we, wb_stb, wb_cyc; wire wb_ack; //create wishbone-based i2c core i2c_master_top #(.ARST_LVL(ARST_LVL)) i2c (.wb_clk_i(clock),.wb_rst_i(reset),.arst_i(1'b0), .wb_adr_i(wb_addr),.wb_dat_i(wb_data_mosi),.wb_dat_o(wb_data_miso), .wb_we_i(wb_we),.wb_stb_i(wb_stb),.wb_cyc_i(wb_cyc), .wb_ack_o(wb_ack),.wb_inta_o(), .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_padoen_o), .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_padoen_o) ); //not ready between setting register and wishbone ack always @(posedge clock) begin if (reset || wb_ack) ready <= 1; else if (sr_changed) ready <= 0; end //register wishbone data on every ack always @(posedge clock) begin if (wb_ack) readback <= {24'b0, wb_data_miso}; end //assign wishbone signals assign wb_addr = sr_what[2:0]; assign wb_stb = sr_changed; assign wb_we = wb_stb && sr_what[3]; assign wb_cyc = wb_stb; assign wb_data_mosi = sr_data; endmodule //simple_i2c_core uhd-3.5.5/fpga/usrp2/control_lib/simple_spi_core.v000066400000000000000000000155221224274632000221540ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Simple SPI core, the simplest, yet complete spi core I can think of // Settings register controlled. // 2 settings regs, control and data // 1 32-bit readback and status signal // Settings reg map: // // BASE+0 divider setting // bits [15:0] spi clock divider // // BASE+1 configuration input // bits [23:0] slave select, bit0 = slave0 enabled // bits [29:24] num bits (1 through 32) // bit [30] data input edge = in data bit latched on rising edge of clock // bit [31] data output edge = out data bit latched on rising edge of clock // // BASE+2 input data // Writing this register begins a spi transaction. // Bits are latched out from bit 0. // Therefore, load this register in reverse. // // Readback // Bits are latched into bit 0. // Therefore, data will be in-order. module simple_spi_core #( //settings register base address parameter BASE = 0, //width of serial enables (up to 24 is possible) parameter WIDTH = 8, //idle state of the spi clock parameter CLK_IDLE = 0, //idle state of the serial enables parameter SEN_IDLE = 24'hffffff ) ( //clock and synchronous reset input clock, input reset, //32-bit settings bus inputs input set_stb, input [7:0] set_addr, input [31:0] set_data, //32-bit data readback output [31:0] readback, //read is high when spi core can begin another transaction output ready, //spi interface, slave selects, clock, data in, data out output [WIDTH-1:0] sen, output sclk, output mosi, input miso, //optional debug output output [31:0] debug ); wire [15:0] sclk_divider; setting_reg #(.my_addr(BASE+0),.width(16)) divider_sr( .clk(clock),.rst(reset),.strobe(set_stb),.addr(set_addr),.in(set_data), .out(sclk_divider),.changed()); wire [23:0] slave_select; wire [5:0] num_bits; wire datain_edge, dataout_edge; setting_reg #(.my_addr(BASE+1),.width(32)) config_sr( .clk(clock),.rst(reset),.strobe(set_stb),.addr(set_addr),.in(set_data), .out({dataout_edge, datain_edge, num_bits, slave_select}),.changed()); wire [31:0] mosi_data; wire trigger_spi; setting_reg #(.my_addr(BASE+2),.width(32)) data_sr( .clk(clock),.rst(reset),.strobe(set_stb),.addr(set_addr),.in(set_data), .out(mosi_data),.changed(trigger_spi)); localparam WAIT_TRIG = 0; localparam PRE_IDLE = 1; localparam CLK_REG = 2; localparam CLK_INV = 3; localparam POST_IDLE = 4; localparam IDLE_SEN = 5; reg [2:0] state; reg ready_reg; assign ready = ready_reg && ~trigger_spi; //serial clock either idles or is in one of two clock states reg sclk_reg; assign sclk = sclk_reg; //serial enables either idle or enabled based on state wire sen_is_idle = (state == WAIT_TRIG) || (state == IDLE_SEN); wire [23:0] sen24 = (sen_is_idle)? SEN_IDLE : (SEN_IDLE ^ slave_select); reg [WIDTH-1:0] sen_reg; always @(posedge clock) sen_reg <= sen24[WIDTH-1:0]; assign sen = sen_reg; //data output shift register reg [31:0] dataout_reg; wire [31:0] dataout_next = {dataout_reg[30:0], 1'b0}; assign mosi = dataout_reg[31]; //data input shift register reg [31:0] datain_reg; wire [31:0] datain_next = {datain_reg[30:0], miso}; assign readback = datain_reg; //counter for spi clock reg [15:0] sclk_counter; wire sclk_counter_done = (sclk_counter == sclk_divider); wire [15:0] sclk_counter_next = (sclk_counter_done)? 0 : sclk_counter + 1; //counter for latching bits miso/mosi reg [6:0] bit_counter; wire [6:0] bit_counter_next = bit_counter + 1; wire bit_counter_done = (bit_counter_next == num_bits); always @(posedge clock) begin if (reset) begin state <= WAIT_TRIG; sclk_reg <= CLK_IDLE; ready_reg <= 0; end else begin case (state) WAIT_TRIG: begin if (trigger_spi) state <= PRE_IDLE; ready_reg <= ~trigger_spi; dataout_reg <= mosi_data; sclk_counter <= 0; bit_counter <= 0; sclk_reg <= CLK_IDLE; end PRE_IDLE: begin if (sclk_counter_done) state <= CLK_REG; sclk_counter <= sclk_counter_next; sclk_reg <= CLK_IDLE; end CLK_REG: begin if (sclk_counter_done) begin state <= CLK_INV; if (datain_edge != CLK_IDLE) datain_reg <= datain_next; if (dataout_edge != CLK_IDLE && bit_counter != 0) dataout_reg <= dataout_next; sclk_reg <= ~CLK_IDLE; //transition to rising when CLK_IDLE == 0 end sclk_counter <= sclk_counter_next; end CLK_INV: begin if (sclk_counter_done) begin state <= (bit_counter_done)? POST_IDLE : CLK_REG; bit_counter <= bit_counter_next; if (datain_edge == CLK_IDLE) datain_reg <= datain_next; if (dataout_edge == CLK_IDLE && ~bit_counter_done) dataout_reg <= dataout_next; sclk_reg <= CLK_IDLE; //transition to falling when CLK_IDLE == 0 end sclk_counter <= sclk_counter_next; end POST_IDLE: begin if (sclk_counter_done) state <= IDLE_SEN; sclk_counter <= sclk_counter_next; sclk_reg <= CLK_IDLE; end IDLE_SEN: begin if (sclk_counter_done) state <= WAIT_TRIG; sclk_counter <= sclk_counter_next; sclk_reg <= CLK_IDLE; end default: state <= WAIT_TRIG; endcase //state end end assign debug = { trigger_spi, state, //4 sclk, mosi, miso, ready, //4 sen[7:0], //8 1'b0, bit_counter[6:0], //8 sclk_counter_done, bit_counter_done, //2 sclk_counter[5:0] //6 }; endmodule //simple_spi_core uhd-3.5.5/fpga/usrp2/control_lib/simple_uart.v000066400000000000000000000051721224274632000213240ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_uart #(parameter TXDEPTH = 1, parameter RXDEPTH = 1, parameter CLKDIV_DEFAULT = 16'd0) (input clk_i, input rst_i, input we_i, input stb_i, input cyc_i, output reg ack_o, input [2:0] adr_i, input [31:0] dat_i, output reg [31:0] dat_o, output rx_int_o, output tx_int_o, output tx_o, input rx_i, output baud_o); // Register Map localparam SUART_CLKDIV = 0; localparam SUART_TXLEVEL = 1; localparam SUART_RXLEVEL = 2; localparam SUART_TXCHAR = 3; localparam SUART_RXCHAR = 4; wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access reg [15:0] clkdiv; wire [7:0] rx_char; wire tx_fifo_full, rx_fifo_empty; wire [7:0] tx_fifo_level, rx_fifo_level; always @(posedge clk_i) if (rst_i) ack_o <= 1'b0; else ack_o <= wb_acc & ~ack_o; always @(posedge clk_i) if (rst_i) clkdiv <= CLKDIV_DEFAULT; else if (wb_wr) case(adr_i) SUART_CLKDIV : clkdiv <= dat_i[15:0]; endcase // case(adr_i) always @(posedge clk_i) case (adr_i) SUART_TXLEVEL : dat_o <= tx_fifo_level; SUART_RXLEVEL : dat_o <= rx_fifo_level; SUART_RXCHAR : dat_o <= rx_char; endcase // case(adr_i) simple_uart_tx #(.DEPTH(TXDEPTH)) simple_uart_tx (.clk(clk_i),.rst(rst_i), .fifo_in(dat_i[7:0]),.fifo_write(ack_o && wb_wr && (adr_i == SUART_TXCHAR)), .fifo_level(tx_fifo_level),.fifo_full(tx_fifo_full), .clkdiv(clkdiv),.baudclk(baud_o),.tx(tx_o)); simple_uart_rx #(.DEPTH(RXDEPTH)) simple_uart_rx (.clk(clk_i),.rst(rst_i), .fifo_out(rx_char),.fifo_read(ack_o && ~wb_wr && (adr_i == SUART_RXCHAR)), .fifo_level(rx_fifo_level),.fifo_empty(rx_fifo_empty), .clkdiv(clkdiv),.rx(rx_i)); assign tx_int_o = ~tx_fifo_full; assign rx_int_o = ~rx_fifo_empty; endmodule // simple_uart uhd-3.5.5/fpga/usrp2/control_lib/simple_uart_rx.v000066400000000000000000000042361224274632000220350ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_uart_rx #(parameter DEPTH=0) (input clk, input rst, output [7:0] fifo_out, input fifo_read, output [7:0] fifo_level, output fifo_empty, input [15:0] clkdiv, input rx); reg rx_d1, rx_d2; always @(posedge clk) if(rst) {rx_d2,rx_d1} <= 0; else {rx_d2,rx_d1} <= {rx_d1,rx}; reg [15:0] baud_ctr; reg [3:0] bit_ctr; reg [7:0] sr; wire neg_trans = rx_d2 & ~rx_d1; wire shift_now = baud_ctr == (clkdiv>>1); wire stop_now = (bit_ctr == 10) && shift_now; wire go_now = (bit_ctr == 0) && neg_trans; always @(posedge clk) if(rst) sr <= 0; else if(shift_now) sr <= {rx_d2,sr[7:1]}; always @(posedge clk) if(rst) baud_ctr <= 0; else if(go_now) baud_ctr <= 1; else if(stop_now) baud_ctr <= 0; else if(baud_ctr >= clkdiv) baud_ctr <= 1; else if(baud_ctr != 0) baud_ctr <= baud_ctr + 1; always @(posedge clk) if(rst) bit_ctr <= 0; else if(go_now) bit_ctr <= 1; else if(stop_now) bit_ctr <= 0; else if(baud_ctr == clkdiv) bit_ctr <= bit_ctr + 1; wire full; wire write = ~full & rx_d2 & stop_now; medfifo #(.WIDTH(8),.DEPTH(DEPTH)) fifo (.clk(clk),.rst(rst), .datain(sr),.write(write),.full(full), .dataout(fifo_out),.read(fifo_read),.empty(fifo_empty), .clear(0),.space(),.occupied(fifo_level) ); endmodule // simple_uart_rx uhd-3.5.5/fpga/usrp2/control_lib/simple_uart_tx.v000066400000000000000000000042571224274632000220420ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_uart_tx #(parameter DEPTH=0) (input clk, input rst, input [7:0] fifo_in, input fifo_write, output [7:0] fifo_level, output fifo_full, input [15:0] clkdiv, output baudclk, output reg tx); reg [15:0] baud_ctr; reg [3:0] bit_ctr; wire read, empty; wire [7:0] char_to_send; medfifo #(.WIDTH(8),.DEPTH(DEPTH)) fifo (.clk(clk),.rst(rst), .datain(fifo_in),.write(fifo_write),.full(fifo_full), .dataout(char_to_send),.read(read),.empty(empty), .clear(0),.space(fifo_level),.occupied() ); always @(posedge clk) if(rst) baud_ctr <= 0; else if (baud_ctr >= clkdiv) baud_ctr <= 0; else baud_ctr <= baud_ctr + 1; always @(posedge clk) if(rst) bit_ctr <= 0; else if(baud_ctr == clkdiv) if(bit_ctr == 9) bit_ctr <= 0; else if(bit_ctr != 0) bit_ctr <= bit_ctr + 1; else if(~empty) bit_ctr <= 1; always @(posedge clk) if(rst) tx <= 1; else case(bit_ctr) 0 : tx <= 1; 1 : tx <= 0; 2 : tx <= char_to_send[0]; 3 : tx <= char_to_send[1]; 4 : tx <= char_to_send[2]; 5 : tx <= char_to_send[3]; 6 : tx <= char_to_send[4]; 7 : tx <= char_to_send[5]; 8 : tx <= char_to_send[6]; 9 : tx <= char_to_send[7]; default : tx <= 1; endcase // case(bit_ctr) assign read = (bit_ctr == 9) && (baud_ctr == clkdiv); assign baudclk = (baud_ctr == 1); // Only for debug purposes endmodule // simple_uart_tx uhd-3.5.5/fpga/usrp2/control_lib/spi.v000066400000000000000000000046011224274632000175670ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // AD9510 Register Map (from datasheet Rev. A) /* INSTRUCTION word format (16 bits) * 15 Read = 1, Write = 0 * 14:13 W1/W0, Number of bytes 00 - 1, 01 - 2, 10 - 3, 11 - stream * 12:0 Address */ /* ADDR Contents Value (hex) * 00 Serial Config Port 10 (def) -- MSB first, SDI/SDO separate * 04 A Counter * 05-06 B Counter * 07-0A PLL Control * 0B-0C R Divider * 0D PLL Control * 34-3A Fine Delay * 3C-3F LVPECL Outs * 40-43 LVDS/CMOS Outs * 45 Clock select, power down * 48-57 Dividers * 58 Func and Sync * 5A Update regs */ module spi (input reset, input clk, // SPI signals output sen, output sclk, input sdi, output sdo, // Interfaces input read_1, input write_1, input [15:0] command_1, input [15:0] wdata_1, output [15:0] rdata_1, output reg done_1, input msb_first_1, input [5:0] command_width_1, input [5:0] data_width_1, input [7:0] clkdiv_1 ); reg [15:0] command, wdata, rdata; reg done; always @(posedge clk) if(reset) done_1 <= #1 1'b0; always @(posedge clk) if(reset) begin counter <= #1 7'd0; command <= #1 20'd0; end else if(start) begin counter <= #1 7'd1; command <= #1 {read,w,addr_data}; end else if( |counter && ~done ) begin counter <= #1 counter + 7'd1; if(~counter[0]) command <= {command[22:0],1'b0}; end wire done = (counter == 8'd49); assign sen = (done | counter == 8'd0); // CSB is high when we're not doing anything assign sclk = ~counter[0]; assign sdo = command[23]; endmodule // clock_control uhd-3.5.5/fpga/usrp2/control_lib/srl.v000066400000000000000000000021051224274632000175710ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module srl #(parameter WIDTH=18) (input clk, input write, input [WIDTH-1:0] in, input [3:0] addr, output [WIDTH-1:0] out); genvar i; generate for (i=0;i. // // Source-synchronous receiver // Assumes both clocks are at the same rate // Relative clock phase is // unknown // variable // bounded // The output will come several cycles later than the input // This should synthesize efficiently in Xilinx distributed ram cells, // which is why we use a buffer depth of 16 // FIXME Async reset on rxclk side? module ss_rcvr #(parameter WIDTH=16) (input rxclk, input sysclk, input rst, input [WIDTH-1:0] data_in, output [WIDTH-1:0] data_out, output reg clock_present); wire [3:0] rd_addr, wr_addr; // Distributed RAM reg [WIDTH-1:0] buffer [0:15]; always @(posedge rxclk) buffer[wr_addr] <= data_in; assign data_out = buffer[rd_addr]; // Write address generation reg [3:0] wr_counter; always @(posedge rxclk or posedge rst) if (rst) wr_counter <= 0; else wr_counter <= wr_counter + 1; assign wr_addr = {wr_counter[3], ^wr_counter[3:2], ^wr_counter[2:1], ^wr_counter[1:0]}; // Read Address generation wire [3:0] wr_ctr_sys, diff, abs_diff; reg [3:0] wr_addr_sys_d1, wr_addr_sys_d2; reg [3:0] rd_counter; assign rd_addr = {rd_counter[3], ^rd_counter[3:2], ^rd_counter[2:1], ^rd_counter[1:0]}; always @(posedge sysclk) wr_addr_sys_d1 <= wr_addr; always @(posedge sysclk) wr_addr_sys_d2 <= wr_addr_sys_d1; assign wr_ctr_sys = {wr_addr_sys_d2[3],^wr_addr_sys_d2[3:2],^wr_addr_sys_d2[3:1],^wr_addr_sys_d2[3:0]}; assign diff = wr_ctr_sys - rd_counter; assign abs_diff = diff[3] ? (~diff+1) : diff; always @(posedge sysclk) if(rst) begin clock_present <= 0; rd_counter <= 0; end else if(~clock_present) if(abs_diff > 5) clock_present <= 1; else ; else if(abs_diff<3) clock_present <= 0; else rd_counter <= rd_counter + 1; endmodule // ss_rcvr uhd-3.5.5/fpga/usrp2/control_lib/system_control.v000066400000000000000000000033011224274632000220540ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // System bootup order: // 0 - Internal POR to reset this block. Maybe control it from CPLD in the future? // 1 - Everything in reset // 2 - Take RAM Loader out of reset // 3 - When RAM Loader done, take processor and wishbone out of reset module system_control (input wb_clk_i, output reg ram_loader_rst_o, output reg wb_rst_o, input ram_loader_done_i ); reg POR = 1'b1; reg [3:0] POR_ctr; initial POR_ctr = 4'd0; always @(posedge wb_clk_i) if(POR_ctr == 4'd15) POR <= 1'b0; else POR_ctr <= POR_ctr + 4'd1; always @(posedge POR or posedge wb_clk_i) if(POR) ram_loader_rst_o <= 1'b1; else ram_loader_rst_o <= #1 1'b0; // Main system reset reg delayed_rst; always @(posedge POR or posedge wb_clk_i) if(POR) begin wb_rst_o <= 1'b1; delayed_rst <= 1'b1; end else if(ram_loader_done_i) begin delayed_rst <= 1'b0; wb_rst_o <= delayed_rst; end endmodule // system_control uhd-3.5.5/fpga/usrp2/control_lib/system_control_tb.v000066400000000000000000000034201224274632000225430ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module system_control_tb(); reg aux_clk, clk_fpga; wire wb_clk, dsp_clk; wire wb_rst, dsp_rst, rl_rst, proc_rst; reg rl_done, clock_ready; initial aux_clk = 1'b0; always #25 aux_clk = ~aux_clk; initial clk_fpga = 1'b0; initial clock_ready = 1'b0; initial begin @(negedge proc_rst); #1003 clock_ready <= 1'b1; end always #7 clk_fpga = ~clk_fpga; initial begin $dumpfile("system_control_tb.vcd"); $dumpvars(0,system_control_tb); end initial #10000 $finish; initial begin @(negedge rl_rst); rl_done <= 1'b0; #1325 rl_done <= 1'b1; end initial begin @(negedge proc_rst); clock_ready <= 1'b0; #327 clock_ready <= 1'b1; end system_control system_control(.aux_clk_i(aux_clk),.clk_fpga_i(clk_fpga), .dsp_clk_o(dsp_clk),.wb_clk_o(wb_clk), .ram_loader_rst_o(rl_rst), .processor_rst_o(proc_rst), .wb_rst_o(wb_rst), .dsp_rst_o(dsp_rst), .ram_loader_done_i(rl_done), .clock_ready_i(clock_ready), .debug_o()); endmodule // system_control_tb uhd-3.5.5/fpga/usrp2/control_lib/traffic_cop.v000066400000000000000000000015261224274632000212560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module traffic_cop(); endmodule // traffic_cop /* Traffic Cop to control buffer pool Inputs Commands Basic Operations Outputs */ uhd-3.5.5/fpga/usrp2/control_lib/user_settings.v000066400000000000000000000035411224274632000216740ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // User settings bus // // Provides 8-bit address, 32-bit data write only bus for user settings, consumes to addresses in // normal settings bus. // // Write user address to BASE // Write user data to BASE+1 // // The user_set_stb will strobe after data write, must write new address even if same as previous one. module user_settings #(parameter BASE=0) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, output set_stb_user, output [7:0] set_addr_user, output [31:0] set_data_user ); wire addr_changed, data_changed; reg stb_int; setting_reg #(.my_addr(BASE+0),.width(8)) sr_0 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(set_addr_user),.changed(addr_changed) ); setting_reg #(.my_addr(BASE+1)) sr_1 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(set_data_user),.changed(data_changed) ); always @(posedge clk) if (rst|set_stb_user) stb_int <= 0; else if (addr_changed) stb_int <= 1; assign set_stb_user = stb_int & data_changed; endmodule // user_settings uhd-3.5.5/fpga/usrp2/control_lib/v5icap_wb.v000066400000000000000000000040361224274632000206550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module v5icap_wb (input clk, input reset, input cyc_i, input stb_i, input we_i, output ack_o, input [31:0] dat_i, output [31:0] dat_o); wire BUSY, CE, WRITE; reg [2:0] icap_state; localparam ICAP_IDLE = 0; localparam ICAP_WR0 = 1; localparam ICAP_WR1 = 2; localparam ICAP_RD0 = 3; localparam ICAP_RD1 = 4; always @(posedge clk) if(reset) icap_state <= ICAP_IDLE; else case(icap_state) ICAP_IDLE : begin if(stb_i & cyc_i) if(we_i) icap_state <= ICAP_WR0; else icap_state <= ICAP_RD0; end ICAP_WR0 : icap_state <= ICAP_WR1; ICAP_WR1 : icap_state <= ICAP_IDLE; ICAP_RD0 : icap_state <= ICAP_RD1; ICAP_RD1 : icap_state <= ICAP_IDLE; endcase // case (icap_state) assign WRITE = (icap_state == ICAP_WR0) | (icap_state == ICAP_WR1); assign CE = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD0); assign ack_o = (icap_state == ICAP_WR1) | (icap_state == ICAP_RD1); ICAP_VIRTEX5 #(.ICAP_WIDTH("X32")) ICAP_VIRTEX5_inst (.BUSY(BUSY), // Busy output .O(dat_o), // 32-bit data output .CE(~CE), // Clock enable input .CLK(clk), // Clock input .I(dat_i), // 32-bit data input .WRITE(~WRITE) // Write input ); endmodule // v5icap_wb uhd-3.5.5/fpga/usrp2/control_lib/wb_1master.v000066400000000000000000000421511224274632000210420ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE Connection Bus Top Level //// //// //// //// //// //// Original Author: Johny Chi //// //// chisuhua@yahoo.com.cn //// //// Modified By Matt Ettus, matt@ettus.com //// //// //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2000, 2007 Authors and OPENCORES.ORG //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // Up to 8 slaves share a Wishbone Bus connection to 1 master module wb_1master #(parameter decode_w = 8, // address decode width parameter s0_addr = 8'h0, // slave 0 address parameter s0_mask = 8'h0, // slave 0 don't cares parameter s1_addr = 8'h0, // slave 1 address parameter s1_mask = 8'h0, // slave 1 don't cares parameter s2_addr = 8'h0, // slave 2 address parameter s2_mask = 8'h0, // slave 2 don't cares parameter s3_addr = 8'h0, // slave 3 address parameter s3_mask = 8'h0, // slave 3 don't cares parameter s4_addr = 8'h0, // slave 4 address parameter s4_mask = 8'h0, // slave 4 don't cares parameter s5_addr = 8'h0, // slave 5 address parameter s5_mask = 8'h0, // slave 5 don't cares parameter s6_addr = 8'h0, // slave 6 address parameter s6_mask = 8'h0, // slave 6 don't cares parameter s7_addr = 8'h0, // slave 7 address parameter s7_mask = 8'h0, // slave 7 don't cares parameter s8_addr = 8'h0, // slave 8 address parameter s8_mask = 8'h0, // slave 8 don't cares parameter s9_addr = 8'h0, // slave 9 address parameter s9_mask = 8'h0, // slave 9 don't cares parameter sa_addr = 8'h0, // slave a address parameter sa_mask = 8'h0, // slave a don't cares parameter sb_addr = 8'h0, // slave b address parameter sb_mask = 8'h0, // slave b don't cares parameter sc_addr = 8'h0, // slave c address parameter sc_mask = 8'h0, // slave c don't cares parameter sd_addr = 8'h0, // slave d address parameter sd_mask = 8'h0, // slave d don't cares parameter se_addr = 8'h0, // slave e address parameter se_mask = 8'h0, // slave e don't cares parameter sf_addr = 8'h0, // slave f address parameter sf_mask = 8'h0, // slave f don't cares parameter dw = 32, // Data bus Width parameter aw = 32, // Address bus Width parameter sw = 4) // Number of Select Lines (input clk_i, input rst_i, // Master Interface input [dw-1:0] m0_dat_i, output [dw-1:0] m0_dat_o, input [aw-1:0] m0_adr_i, input [sw-1:0] m0_sel_i, input m0_we_i, input m0_cyc_i, input m0_stb_i, output m0_ack_o, output m0_err_o, output m0_rty_o, // Slave Interfaces input [dw-1:0] s0_dat_i, output [dw-1:0] s0_dat_o, output [aw-1:0] s0_adr_o, output [sw-1:0] s0_sel_o, output s0_we_o, output s0_cyc_o, output s0_stb_o, input s0_ack_i, input s0_err_i, input s0_rty_i, input [dw-1:0] s1_dat_i, output [dw-1:0] s1_dat_o, output [aw-1:0] s1_adr_o, output [sw-1:0] s1_sel_o, output s1_we_o, output s1_cyc_o, output s1_stb_o, input s1_ack_i, input s1_err_i, input s1_rty_i, input [dw-1:0] s2_dat_i, output [dw-1:0] s2_dat_o, output [aw-1:0] s2_adr_o, output [sw-1:0] s2_sel_o, output s2_we_o, output s2_cyc_o, output s2_stb_o, input s2_ack_i, input s2_err_i, input s2_rty_i, input [dw-1:0] s3_dat_i, output [dw-1:0] s3_dat_o, output [aw-1:0] s3_adr_o, output [sw-1:0] s3_sel_o, output s3_we_o, output s3_cyc_o, output s3_stb_o, input s3_ack_i, input s3_err_i, input s3_rty_i, input [dw-1:0] s4_dat_i, output [dw-1:0] s4_dat_o, output [aw-1:0] s4_adr_o, output [sw-1:0] s4_sel_o, output s4_we_o, output s4_cyc_o, output s4_stb_o, input s4_ack_i, input s4_err_i, input s4_rty_i, input [dw-1:0] s5_dat_i, output [dw-1:0] s5_dat_o, output [aw-1:0] s5_adr_o, output [sw-1:0] s5_sel_o, output s5_we_o, output s5_cyc_o, output s5_stb_o, input s5_ack_i, input s5_err_i, input s5_rty_i, input [dw-1:0] s6_dat_i, output [dw-1:0] s6_dat_o, output [aw-1:0] s6_adr_o, output [sw-1:0] s6_sel_o, output s6_we_o, output s6_cyc_o, output s6_stb_o, input s6_ack_i, input s6_err_i, input s6_rty_i, input [dw-1:0] s7_dat_i, output [dw-1:0] s7_dat_o, output [aw-1:0] s7_adr_o, output [sw-1:0] s7_sel_o, output s7_we_o, output s7_cyc_o, output s7_stb_o, input s7_ack_i, input s7_err_i, input s7_rty_i, input [dw-1:0] s8_dat_i, output [dw-1:0] s8_dat_o, output [aw-1:0] s8_adr_o, output [sw-1:0] s8_sel_o, output s8_we_o, output s8_cyc_o, output s8_stb_o, input s8_ack_i, input s8_err_i, input s8_rty_i, input [dw-1:0] s9_dat_i, output [dw-1:0] s9_dat_o, output [aw-1:0] s9_adr_o, output [sw-1:0] s9_sel_o, output s9_we_o, output s9_cyc_o, output s9_stb_o, input s9_ack_i, input s9_err_i, input s9_rty_i, input [dw-1:0] sa_dat_i, output [dw-1:0] sa_dat_o, output [aw-1:0] sa_adr_o, output [sw-1:0] sa_sel_o, output sa_we_o, output sa_cyc_o, output sa_stb_o, input sa_ack_i, input sa_err_i, input sa_rty_i, input [dw-1:0] sb_dat_i, output [dw-1:0] sb_dat_o, output [aw-1:0] sb_adr_o, output [sw-1:0] sb_sel_o, output sb_we_o, output sb_cyc_o, output sb_stb_o, input sb_ack_i, input sb_err_i, input sb_rty_i, input [dw-1:0] sc_dat_i, output [dw-1:0] sc_dat_o, output [aw-1:0] sc_adr_o, output [sw-1:0] sc_sel_o, output sc_we_o, output sc_cyc_o, output sc_stb_o, input sc_ack_i, input sc_err_i, input sc_rty_i, input [dw-1:0] sd_dat_i, output [dw-1:0] sd_dat_o, output [aw-1:0] sd_adr_o, output [sw-1:0] sd_sel_o, output sd_we_o, output sd_cyc_o, output sd_stb_o, input sd_ack_i, input sd_err_i, input sd_rty_i, input [dw-1:0] se_dat_i, output [dw-1:0] se_dat_o, output [aw-1:0] se_adr_o, output [sw-1:0] se_sel_o, output se_we_o, output se_cyc_o, output se_stb_o, input se_ack_i, input se_err_i, input se_rty_i, input [dw-1:0] sf_dat_i, output [dw-1:0] sf_dat_o, output [aw-1:0] sf_adr_o, output [sw-1:0] sf_sel_o, output sf_we_o, output sf_cyc_o, output sf_stb_o, input sf_ack_i, input sf_err_i, input sf_rty_i ); // //////////////////////////////////////////////////////////////// // // Local wires // wire [15:0] ssel_dec; reg [dw-1:0] i_dat_s; // internal share bus , slave data to master // Master output Interface assign m0_dat_o = i_dat_s; always @* case(ssel_dec) 1 : i_dat_s <= s0_dat_i; 2 : i_dat_s <= s1_dat_i; 4 : i_dat_s <= s2_dat_i; 8 : i_dat_s <= s3_dat_i; 16 : i_dat_s <= s4_dat_i; 32 : i_dat_s <= s5_dat_i; 64 : i_dat_s <= s6_dat_i; 128 : i_dat_s <= s7_dat_i; 256 : i_dat_s <= s8_dat_i; 512 : i_dat_s <= s9_dat_i; 1024 : i_dat_s <= sa_dat_i; 2048 : i_dat_s <= sb_dat_i; 4096 : i_dat_s <= sc_dat_i; 8192 : i_dat_s <= sd_dat_i; 16384 : i_dat_s <= se_dat_i; 32768 : i_dat_s <= sf_dat_i; default : i_dat_s <= s0_dat_i; endcase // case(ssel_dec) assign {m0_ack_o, m0_err_o, m0_rty_o} = {s0_ack_i | s1_ack_i | s2_ack_i | s3_ack_i | s4_ack_i | s5_ack_i | s6_ack_i | s7_ack_i | s8_ack_i | s9_ack_i | sa_ack_i | sb_ack_i | sc_ack_i | sd_ack_i | se_ack_i | sf_ack_i , s0_err_i | s1_err_i | s2_err_i | s3_err_i | s4_err_i | s5_err_i | s6_err_i | s7_err_i | s8_err_i | s9_err_i | sa_err_i | sb_err_i | sc_err_i | sd_err_i | se_err_i | sf_err_i , s0_rty_i | s1_rty_i | s2_rty_i | s3_rty_i | s4_rty_i | s5_rty_i | s6_rty_i | s7_rty_i | s8_rty_i | s9_rty_i | sa_rty_i | sb_rty_i | sc_rty_i | sd_rty_i | se_rty_i | sf_rty_i }; // Slave output interfaces assign s0_adr_o = m0_adr_i; assign s0_sel_o = m0_sel_i; assign s0_dat_o = m0_dat_i; assign s0_we_o = m0_we_i; assign s0_cyc_o = m0_cyc_i; assign s0_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[0]; assign s1_adr_o = m0_adr_i; assign s1_sel_o = m0_sel_i; assign s1_dat_o = m0_dat_i; assign s1_we_o = m0_we_i; assign s1_cyc_o = m0_cyc_i; assign s1_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[1]; assign s2_adr_o = m0_adr_i; assign s2_sel_o = m0_sel_i; assign s2_dat_o = m0_dat_i; assign s2_we_o = m0_we_i; assign s2_cyc_o = m0_cyc_i; assign s2_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[2]; assign s3_adr_o = m0_adr_i; assign s3_sel_o = m0_sel_i; assign s3_dat_o = m0_dat_i; assign s3_we_o = m0_we_i; assign s3_cyc_o = m0_cyc_i; assign s3_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[3]; assign s4_adr_o = m0_adr_i; assign s4_sel_o = m0_sel_i; assign s4_dat_o = m0_dat_i; assign s4_we_o = m0_we_i; assign s4_cyc_o = m0_cyc_i; assign s4_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[4]; assign s5_adr_o = m0_adr_i; assign s5_sel_o = m0_sel_i; assign s5_dat_o = m0_dat_i; assign s5_we_o = m0_we_i; assign s5_cyc_o = m0_cyc_i; assign s5_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[5]; assign s6_adr_o = m0_adr_i; assign s6_sel_o = m0_sel_i; assign s6_dat_o = m0_dat_i; assign s6_we_o = m0_we_i; assign s6_cyc_o = m0_cyc_i; assign s6_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[6]; assign s7_adr_o = m0_adr_i; assign s7_sel_o = m0_sel_i; assign s7_dat_o = m0_dat_i; assign s7_we_o = m0_we_i; assign s7_cyc_o = m0_cyc_i; assign s7_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[7]; assign s8_adr_o = m0_adr_i; assign s8_sel_o = m0_sel_i; assign s8_dat_o = m0_dat_i; assign s8_we_o = m0_we_i; assign s8_cyc_o = m0_cyc_i; assign s8_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[8]; assign s9_adr_o = m0_adr_i; assign s9_sel_o = m0_sel_i; assign s9_dat_o = m0_dat_i; assign s9_we_o = m0_we_i; assign s9_cyc_o = m0_cyc_i; assign s9_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[9]; assign sa_adr_o = m0_adr_i; assign sa_sel_o = m0_sel_i; assign sa_dat_o = m0_dat_i; assign sa_we_o = m0_we_i; assign sa_cyc_o = m0_cyc_i; assign sa_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[10]; assign sb_adr_o = m0_adr_i; assign sb_sel_o = m0_sel_i; assign sb_dat_o = m0_dat_i; assign sb_we_o = m0_we_i; assign sb_cyc_o = m0_cyc_i; assign sb_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[11]; assign sc_adr_o = m0_adr_i; assign sc_sel_o = m0_sel_i; assign sc_dat_o = m0_dat_i; assign sc_we_o = m0_we_i; assign sc_cyc_o = m0_cyc_i; assign sc_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[12]; assign sd_adr_o = m0_adr_i; assign sd_sel_o = m0_sel_i; assign sd_dat_o = m0_dat_i; assign sd_we_o = m0_we_i; assign sd_cyc_o = m0_cyc_i; assign sd_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[13]; assign se_adr_o = m0_adr_i; assign se_sel_o = m0_sel_i; assign se_dat_o = m0_dat_i; assign se_we_o = m0_we_i; assign se_cyc_o = m0_cyc_i; assign se_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[14]; assign sf_adr_o = m0_adr_i; assign sf_sel_o = m0_sel_i; assign sf_dat_o = m0_dat_i; assign sf_we_o = m0_we_i; assign sf_cyc_o = m0_cyc_i; assign sf_stb_o = m0_cyc_i & m0_stb_i & ssel_dec[15]; // Address decode logic // WARNING -- must make sure these are mutually exclusive! assign ssel_dec[0] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s0_addr) & s0_mask); assign ssel_dec[1] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s1_addr) & s1_mask); assign ssel_dec[2] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s2_addr) & s2_mask); assign ssel_dec[3] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s3_addr) & s3_mask); assign ssel_dec[4] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s4_addr) & s4_mask); assign ssel_dec[5] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s5_addr) & s5_mask); assign ssel_dec[6] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s6_addr) & s6_mask); assign ssel_dec[7] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s7_addr) & s7_mask); assign ssel_dec[8] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s8_addr) & s8_mask); assign ssel_dec[9] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ s9_addr) & s9_mask); assign ssel_dec[10] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ sa_addr) & sa_mask); assign ssel_dec[11] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ sb_addr) & sb_mask); assign ssel_dec[12] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ sc_addr) & sc_mask); assign ssel_dec[13] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ sd_addr) & sd_mask); assign ssel_dec[14] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ se_addr) & se_mask); assign ssel_dec[15] = ~|((m0_adr_i[aw-1:aw-decode_w] ^ sf_addr) & sf_mask); /* assign ssel_dec[0] = (m0_adr_i[aw -1 : aw - decode_w ] == s0_addr); assign ssel_dec[1] = (m0_adr_i[aw -1 : aw - decode_w ] == s1_addr); assign ssel_dec[2] = (m0_adr_i[aw -1 : aw - decode_w ] == s2_addr); assign ssel_dec[3] = (m0_adr_i[aw -1 : aw - decode_w ] == s3_addr); assign ssel_dec[4] = (m0_adr_i[aw -1 : aw - decode_w ] == s4_addr); assign ssel_dec[5] = (m0_adr_i[aw -1 : aw - decode_w ] == s5_addr); assign ssel_dec[6] = (m0_adr_i[aw -1 : aw - decode_w ] == s6_addr); assign ssel_dec[7] = (m0_adr_i[aw -1 : aw - decode_w ] == s7_addr); assign ssel_dec[8] = (m0_adr_i[aw -1 : aw - decode_w ] == s8_addr); assign ssel_dec[9] = (m0_adr_i[aw -1 : aw - decode_w ] == s9_addr); assign ssel_dec[10] = (m0_adr_i[aw -1 : aw - decode_w ] == sa_addr); assign ssel_dec[11] = (m0_adr_i[aw -1 : aw - decode_w ] == sb_addr); assign ssel_dec[12] = (m0_adr_i[aw -1 : aw - decode_w ] == sc_addr); assign ssel_dec[13] = (m0_adr_i[aw -1 : aw - decode_w ] == sd_addr); assign ssel_dec[14] = (m0_adr_i[aw -1 : aw - decode_w ] == se_addr); assign ssel_dec[15] = (m0_adr_i[aw -1 : aw - decode_w ] == sf_addr); */ endmodule // wb_1master uhd-3.5.5/fpga/usrp2/control_lib/wb_bridge_16_32.v000066400000000000000000000033251224274632000215340ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module wb_bridge_16_32 #(parameter AWIDTH=16) (input wb_clk, input wb_rst, input A_cyc_i, input A_stb_i, input A_we_i, input [3:0] A_sel_i, input [AWIDTH-1:0] A_adr_i, input [31:0] A_dat_i, output [31:0] A_dat_o, output A_ack_o, output B_cyc_o, output B_stb_o, output B_we_o, output [1:0] B_sel_o, output [AWIDTH-1:0] B_adr_o, output [15:0] B_dat_o, input [15:0] B_dat_i, input B_ack_i ); reg [15:0] holding; reg phase; assign B_adr_o = {A_adr_i[AWIDTH-1:2],phase,1'b0}; assign B_cyc_o = A_cyc_i; assign B_stb_o = A_stb_i; assign B_we_o = A_we_i; assign B_dat_o = ~phase ? A_dat_i[15:0] : A_dat_i[31:16]; assign B_sel_o = ~phase ? A_sel_i[1:0] : A_sel_i[3:2]; assign A_dat_o = {B_dat_i,holding}; assign A_ack_o = phase & B_ack_i; always @(posedge wb_clk) if(wb_rst) phase <= 0; else if(B_ack_i) phase <= ~phase; always @(posedge wb_clk) if(~phase & B_ack_i) holding <= B_dat_i; endmodule // wb_bridge_16_32 uhd-3.5.5/fpga/usrp2/control_lib/wb_bus_writer.v000066400000000000000000000041551224274632000216550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // wb_bus_writer // // WB Bus Master device to send a sequence of single-word transactions // based on a list in a RAM or ROM (FASM interface) // ROM data format is {WB_ADDR[15:0],WB_DATA[31:0]} // continues until it gets an all-1s entry module wb_bus_writer (input start, output done, output reg [15:0] rom_addr, input [47:0] rom_data, // WB Master Interface, don't need wb_dat_i input wb_clk_i, input wb_rst_i, output [31:0] wb_dat_o, input wb_ack_i, output [15:0] wb_adr_o, output wb_cyc_o, output [3:0] wb_sel_o, output wb_stb_o, output wb_we_o ); `define IDLE 0 `define READ 1 reg [3:0] state; assign done = (state != `IDLE) && (&rom_data); // Done when we see all 1s always @(posedge wb_clk_i) if(wb_rst_i) begin rom_addr <= #1 0; state <= #1 0; end else if(start) begin rom_addr <= #1 0; state <= #1 `READ; end else if((state == `READ) && wb_ack_i) if(done) state <= #1 `IDLE; else rom_addr <= #1 rom_addr + 1; assign wb_dat_o = rom_data[31:0]; assign wb_adr_o = rom_data[47:32]; assign wb_sel_o = 4'b1111; // All writes are the full 32 bits assign wb_cyc_o = !done & (state != `IDLE); assign wb_stb_o = !done & (state != `IDLE); assign wb_we_o = !done & (state != `IDLE); endmodule // wb_bus_writer uhd-3.5.5/fpga/usrp2/control_lib/wb_output_pins32.v000066400000000000000000000036351224274632000222300ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Simple 32-bit Wishbone compatible slave output port // with 8-bit granularity, modeled after the one in the spec // Allows for readback // Assumes a 32-bit wishbone bus // Lowest order bits get sel[0] // module wb_output_pins32 (wb_rst_i, wb_clk_i, wb_dat_i, wb_dat_o, wb_we_i, wb_sel_i, wb_stb_i, wb_ack_o, wb_cyc_i, port_output); input wb_rst_i; input wb_clk_i; input wire [31:0] wb_dat_i; output wire [31:0] wb_dat_o; input wb_we_i; input wire [3:0] wb_sel_i; input wb_stb_i; output wb_ack_o; input wb_cyc_i; output wire [31:0] port_output; reg [31:0] internal_reg; always @(posedge wb_clk_i) if(wb_rst_i) internal_reg <= #1 32'b0; else begin if(wb_stb_i & wb_we_i & wb_sel_i[0]) internal_reg[7:0] <= #1 wb_dat_i[7:0]; if(wb_stb_i & wb_we_i & wb_sel_i[1]) internal_reg[15:8] <= #1 wb_dat_i[15:8]; if(wb_stb_i & wb_we_i & wb_sel_i[2]) internal_reg[23:16] <= #1 wb_dat_i[23:16]; if(wb_stb_i & wb_we_i & wb_sel_i[3]) internal_reg[31:24] <= #1 wb_dat_i[31:24]; end // else: !if(wb_rst_i) assign wb_dat_o = internal_reg; assign port_output = internal_reg; assign wb_ack_o = wb_stb_i; endmodule // wb_output_pins32 uhd-3.5.5/fpga/usrp2/control_lib/wb_ram_block.v000066400000000000000000000026231224274632000214170ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Since this is a block ram, there are no byte-selects and there is a 1-cycle read latency // These have to be a multiple of 512 lines (2K) long module wb_ram_block #(parameter AWIDTH=9) (input clk_i, input stb_i, input we_i, input [AWIDTH-1:0] adr_i, input [31:0] dat_i, output reg [31:0] dat_o, output ack_o); reg [31:0] distram [0:1<<(AWIDTH-1)]; always @(posedge clk_i) begin if(stb_i & we_i) distram[adr_i] <= dat_i; dat_o <= distram[adr_i]; end reg stb_d1, ack_d1; always @(posedge clk_i) stb_d1 <= stb_i; always @(posedge clk_i) ack_d1 <= ack_o; assign ack_o = stb_i & (we_i | (stb_d1 & ~ack_d1)); endmodule // wb_ram_block uhd-3.5.5/fpga/usrp2/control_lib/wb_ram_dist.v000066400000000000000000000025751224274632000212760ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module wb_ram_dist #(parameter AWIDTH=8) (input clk_i, input stb_i, input we_i, input [AWIDTH-1:0] adr_i, input [31:0] dat_i, input [3:0] sel_i, output [31:0] dat_o, output ack_o); reg [31:0] distram [0:1<<(AWIDTH-1)]; always @(posedge clk_i) begin if(stb_i & we_i & sel_i[3]) distram[adr_i][31:24] <= dat_i[31:24]; if(stb_i & we_i & sel_i[2]) distram[adr_i][24:16] <= dat_i[24:16]; if(stb_i & we_i & sel_i[1]) distram[adr_i][15:8] <= dat_i[15:8]; if(stb_i & we_i & sel_i[0]) distram[adr_i][7:0] <= dat_i[7:0]; end // always @ (posedge clk_i) assign dat_o = distram[adr_i]; assign ack_o = stb_i; endmodule // wb_ram_dist uhd-3.5.5/fpga/usrp2/control_lib/wb_readback_mux.v000066400000000000000000000041141224274632000221100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Note -- clocks must be synchronous (derived from the same source) // Assumes alt_clk is running at a multiple of wb_clk module wb_readback_mux (input wb_clk_i, input wb_rst_i, input wb_stb_i, input [15:0] wb_adr_i, output reg [31:0] wb_dat_o, output reg wb_ack_o, input [31:0] word00, input [31:0] word01, input [31:0] word02, input [31:0] word03, input [31:0] word04, input [31:0] word05, input [31:0] word06, input [31:0] word07, input [31:0] word08, input [31:0] word09, input [31:0] word10, input [31:0] word11, input [31:0] word12, input [31:0] word13, input [31:0] word14, input [31:0] word15 ); always @(posedge wb_clk_i) if(wb_rst_i) wb_ack_o <= 0; else wb_ack_o <= wb_stb_i & ~wb_ack_o; always @(posedge wb_clk_i) case(wb_adr_i[5:2]) 0 : wb_dat_o <= word00; 1 : wb_dat_o <= word01; 2 : wb_dat_o <= word02; 3 : wb_dat_o <= word03; 4 : wb_dat_o <= word04; 5 : wb_dat_o <= word05; 6 : wb_dat_o <= word06; 7 : wb_dat_o <= word07; 8 : wb_dat_o <= word08; 9 : wb_dat_o <= word09; 10: wb_dat_o <= word10; 11: wb_dat_o <= word11; 12: wb_dat_o <= word12; 13: wb_dat_o <= word13; 14: wb_dat_o <= word14; 15: wb_dat_o <= word15; endcase // case(addr_reg[3:0]) endmodule // wb_readback_mux uhd-3.5.5/fpga/usrp2/control_lib/wb_readback_mux_16LE.v000066400000000000000000000045721224274632000226470ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Note -- clocks must be synchronous (derived from the same source) // Assumes alt_clk is running at a multiple of wb_clk // Note -- assumes that the lower-16 bits will be requested first, // and that the upper-16 bit request will come immediately after. module wb_readback_mux_16LE (input wb_clk_i, input wb_rst_i, input wb_stb_i, input [15:0] wb_adr_i, output [15:0] wb_dat_o, output reg wb_ack_o, input [31:0] word00, input [31:0] word01, input [31:0] word02, input [31:0] word03, input [31:0] word04, input [31:0] word05, input [31:0] word06, input [31:0] word07, input [31:0] word08, input [31:0] word09, input [31:0] word10, input [31:0] word11, input [31:0] word12, input [31:0] word13, input [31:0] word14, input [31:0] word15 ); wire ack_next = wb_stb_i & ~wb_ack_o; always @(posedge wb_clk_i) if(wb_rst_i) wb_ack_o <= 0; else wb_ack_o <= ack_next; reg [31:0] data; assign wb_dat_o = data[15:0]; always @(posedge wb_clk_i) if (wb_adr_i[1] & ack_next) begin //upper half data[15:0] <= data[31:16]; end else if (~wb_adr_i[1] & ack_next) begin //lower half case(wb_adr_i[5:2]) 0 : data <= word00; 1 : data <= word01; 2 : data <= word02; 3 : data <= word03; 4 : data <= word04; 5 : data <= word05; 6 : data <= word06; 7 : data <= word07; 8 : data <= word08; 9 : data <= word09; 10: data <= word10; 11: data <= word11; 12: data <= word12; 13: data <= word13; 14: data <= word14; 15: data <= word15; endcase // case(wb_adr_i[5:2]) end endmodule // wb_readback_mux uhd-3.5.5/fpga/usrp2/control_lib/wb_regfile_2clock.v000066400000000000000000000075311224274632000223430ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module wb_regfile_2clock (input wb_clk_i, input wb_rst_i, input wb_stb_i, input wb_we_i, input [15:0] wb_adr_i, input [3:0] wb_sel_i, input [31:0] wb_dat_i, output [31:0] wb_dat_o, output wb_ack_o, input alt_clk, input alt_rst, output reg [31:0] reg00, output reg [31:0] reg01, output reg [31:0] reg02, output reg [31:0] reg03, output reg [31:0] reg04, output reg [31:0] reg05, output reg [31:0] reg06, output reg [31:0] reg07 ); reg [15:0] addr_reg; reg [3:0] sel_reg; reg [31:0] dat_reg; reg wr_ret1, wr_ret2, we_reg, stb_reg; always @(posedge wb_clk_i) if(wb_rst_i) begin addr_reg <= 0; sel_reg <= 0; dat_reg <= 0; end else if(wb_stb_i & wb_we_i) begin addr_reg <= wb_adr_i; sel_reg <= wb_sel_i; dat_reg <= wb_dat_i; end always @(posedge wb_clk_i) if(wb_rst_i) {we_reg,stb_reg} <= 2'b0; else {we_reg,stb_reg} <= {wb_we_i,wb_stb_i}; assign wb_ack_o = stb_reg; always @(posedge alt_clk) if(alt_rst) {wr_ret2, wr_ret1} <= 2'b0; else {wr_ret2, wr_ret1} <= {wr_ret1, we_reg & stb_reg}; always @(posedge alt_clk) if(alt_rst) begin reg00 <= 0; reg01 <= 0; reg02 <= 0; reg03 <= 0; reg04 <= 0; reg05 <= 0; reg06 <= 0; reg07 <= 0; end // if (alt_rst) else if(wr_ret2) case(addr_reg[4:2]) 3'd0: reg00 <= { {sel_reg[3] ? dat_reg[31:24] : reg00[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg00[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg00[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg00[7:0]}}; 3'd1: reg01 <= { {sel_reg[3] ? dat_reg[31:24] : reg01[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg01[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg01[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg01[7:0]}}; 3'd2: reg02 <= { {sel_reg[3] ? dat_reg[31:24] : reg02[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg02[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg02[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg02[7:0]}}; 3'd3: reg03 <= { {sel_reg[3] ? dat_reg[31:24] : reg03[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg03[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg03[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg03[7:0]}}; 3'd4: reg04 <= { {sel_reg[3] ? dat_reg[31:24] : reg04[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg04[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg04[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg04[7:0]}}; 3'd5: reg05 <= { {sel_reg[3] ? dat_reg[31:24] : reg05[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg05[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg05[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg05[7:0]}}; 3'd6: reg06 <= { {sel_reg[3] ? dat_reg[31:24] : reg06[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg06[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg06[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg06[7:0]}}; 3'd7: reg07 <= { {sel_reg[3] ? dat_reg[31:24] : reg07[31:24]}, {sel_reg[2] ? dat_reg[23:16] : reg07[23:16]}, {sel_reg[1] ? dat_reg[15:8] : reg07[15:8]}, {sel_reg[0] ? dat_reg[7:0] : reg07[7:0]}}; endcase // case(addr_reg[2:0]) endmodule // wb_regfile_2clock uhd-3.5.5/fpga/usrp2/control_lib/wb_semaphore.v000066400000000000000000000032521224274632000214500ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // up to 8 semaphores // After a read operation, the semaphore is always locked // If it was already locked before the read (meaning someone else holds the lock) // then a 1 is returned // If it was not already locked (meaning the reader now holds the lock) // then a 0 is returned // A write operation clears the lock module wb_semaphore #(parameter count=8, DBUS_WIDTH=32) (input wb_clk_i, input wb_rst_i, input [DBUS_WIDTH-1:0] wb_dat_i, input [2:0] wb_adr_i, input wb_cyc_i, input wb_stb_i, input wb_we_i, output wb_ack_o, output [DBUS_WIDTH-1:0] wb_dat_o); reg [count-1:0] locked; always @(posedge clock) if(wb_rst_i) locked <= {count{1'b0}}; else if(wb_stb_i) if(wb_we_i) locked[adr_i] <= 1'b0; else locked[adr_i] <= 1'b1; assign wb_dat_o[DBUS_WIDTH-1:1] = {(DBUS_WIDTH-1){1'b0}}; assign wb_dat_o[0] = locked[adr_i]; assign wb_ack_o = wb_stb_i; endmodule // wb_semaphore uhd-3.5.5/fpga/usrp2/control_lib/wb_sim.v000066400000000000000000000045011224274632000202530ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module wb_sim(); wire wb_clk, wb_rst; wire start; reg POR, aux_clk, clk_fpga; initial POR = 1'b1; initial #103 POR = 1'b0; initial aux_clk = 1'b0; always #25 aux_clk = ~aux_clk; initial clk_fpga = 1'bx; initial #3007 clk_fpga = 1'b0; always #7 clk_fpga = ~clk_fpga; initial begin $dumpfile("wb_sim.vcd"); $dumpvars(0,wb_sim); end initial #10000 $finish; wire [15:0] rom_addr; wire [47:0] rom_data; wire [31:0] wb_dat; wire [15:0] wb_adr; wire wb_cyc,wb_stb,wb_we,wb_ack; wire [3:0] wb_sel; wire [31:0] port_output; system_control system_control(.dsp_clk(dsp_clk), .reset_out(reset_out), .wb_clk_o(wb_clk), .wb_rst_o(wb_rst), .wb_rst_o_alt(wb_rst_o_alt), .start (start), .aux_clk(aux_clk), .clk_fpga(clk_fpga), .POR (POR), .done (done)); clock_bootstrap_rom cbrom(.addr(rom_addr),.data(rom_data)); wb_bus_writer bus_writer(.rom_addr (rom_addr[15:0]), .wb_dat_o (wb_dat[31:0]), .wb_adr_o (wb_adr[15:0]), .wb_cyc_o (wb_cyc), .wb_sel_o (wb_sel[3:0]), .wb_stb_o (wb_stb), .wb_we_o (wb_we), .start (start), .done (done), .rom_data (rom_data[47:0]), .wb_clk_i (wb_clk), .wb_rst_i (wb_rst), .wb_ack_i (wb_ack)); wb_output_pins32 output_pins(.wb_dat_o(), .wb_ack_o(wb_ack), .port_output(port_output[31:0]), .wb_rst_i(wb_rst), .wb_clk_i(wb_clk), .wb_dat_i(wb_dat[31:0]), .wb_we_i(wb_we), .wb_sel_i(wb_sel[3:0]), .wb_stb_i(wb_stb), .wb_cyc_i(wb_cyc)); endmodule // wb_sim uhd-3.5.5/fpga/usrp2/coregen/000077500000000000000000000000001224274632000157205ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/coregen/.gitignore000066400000000000000000000000271224274632000177070ustar00rootroot00000000000000/xlnx_auto* /*log /tmp uhd-3.5.5/fpga/usrp2/coregen/Makefile.srcs000066400000000000000000000013601224274632000203310ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # Coregen Sources ################################################## COREGEN_SRCS = $(abspath $(addprefix $(BASE_DIR)/../coregen/, \ fifo_xlnx_2Kx36_2clk.v \ fifo_xlnx_2Kx36_2clk.xco \ fifo_xlnx_512x36_2clk.v \ fifo_xlnx_512x36_2clk.xco \ fifo_xlnx_64x36_2clk.v \ fifo_xlnx_64x36_2clk.xco \ fifo_xlnx_16x19_2clk.v \ fifo_xlnx_16x19_2clk.xco \ fifo_xlnx_16x40_2clk.v \ fifo_xlnx_16x40_2clk.xco \ fifo_xlnx_32x36_2clk.v \ fifo_xlnx_32x36_2clk.xco \ fifo_xlnx_512x36_2clk_36to18.v \ fifo_xlnx_512x36_2clk_36to18.xco \ fifo_xlnx_512x36_2clk_18to36.v \ fifo_xlnx_512x36_2clk_18to36.xco \ fifo_xlnx_512x36_2clk_prog_full.v \ fifo_xlnx_512x36_2clk_prog_full.xco \ )) uhd-3.5.5/fpga/usrp2/coregen/coregen.cgp000066400000000000000000000010061224274632000200320ustar00rootroot00000000000000# Date: Fri Oct 15 07:50:19 2010 SET addpads = false SET asysymbol = false SET busformat = BusFormatAngleBracketNotRipped SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false SET simulationfiles = Structural SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false SET workingdirectory = /tmp/ # CRC: 983b9b45 uhd-3.5.5/fpga/usrp2/coregen/fifo_generator_release_notes.txt000066400000000000000000000131401224274632000243610ustar00rootroot00000000000000COPYRIGHT (c) 2006, 2007 XILINX, INC. ALL RIGHTS RESERVED Core name : FIFO Generator Version : v4.1 Release Date : August 8, 2007 File : fifo_generator_release_notes.txt Revision History Date By Version Change Description ======================================================================== 09/2006 Xilinx, Inc. 3.2 Initial creation. 02/2007 Xilinx, Inc. 3.3 Revised for v3.3. 02/2007 Xilinx, Inc. 3.3 Revised for v3.3 rev 1. 08/2007 Xilinx, Inc. 3.4 Revised for v4.1. ======================================================================== INTRODUCTION RELEASE NOTES 1. General Core Design 1.1 Enhancements 1.2 Resolved Issues 1.3 Outstanding Issues 2. General Simulation 2.1 Enhancements 2.2 Resolved Issues 2.3 Outstanding Issues 3. Documentation 3.1 Enhancements 3.2 Resolved Issues 3.3 Outstanding Issues OTHER GENERAL INFORMATION TECHNICAL SUPPORT ======================================================================== INTRODUCTION ============ Thank you using the FIFO Generator core from Xilinx! In order to obtain the latest core updates and documentation, please visit the Intellectual Property page located at: http://www.xilinx.com/ipcenter/index.htm This document contains the release notes for FIFO Generator v4.1 which includes enhancements, resolved issues and outstanding known issues. For release notes and known issues for CORE Generator 9.2i IP Update 1 and FIFO Generator v4.1 please see Answer Record 25222. RELEASE NOTES ============= This section lists any enhancements, resolved issues and outstanding known issues. 1. General Core Design 1.1 Enhancements 1.1.1 Error Correction Checking (ECC) feature support for Virtex-5 block RAM FIFO configurations 1.1.2 Full range data count widths now supported for non-symmetric aspect ratio configurations 1.1.3 Option to define asynchronous reset value for full condition flags (FULL, ALMOST_FULL, PROG_FULL). Applies to block RAM, distributed RAM and shift RAM-based FIFO configurations only 1.1.4 Support added for use embedded output registers in block RAM FIFO configurations (Virtex-4 and Virtex-5 only) 1.2 Resolved Issues 1.2.1 Coregen GUI - For built-in FIFOs, GUI reports incorrect number of built-in FIFO primitives used. Change request: 4433738 1.2.2 Programmable full flag is always asserted even when FIFO is empty due to incorrect threshold setting. Change request: 435835 1.2.3 "ERROR:LIT:250 - Pins WEA0, WEA1, WEA2, WEA3 of RAMB16 symbol .. , these pins should be connected to the same signal" occur during MAP when targeting Virtex-4 and Virtex-5. Change request: 338260 1.2.4 Write Data Count and Read Data Count overestimate the number of words written or read when core is configured with this combination of options: First-Word-Fall-Through(FWFT), accurate data count using extra logic, non-symmetric port aspect ratio. Change request: 436886 1.2.5 SBITERR and DBITERR outputs are not driven in behavior models. Change request: 433637 1.2.6 Maximum programmable empty threshold negate value is incorrect. Change request: 433921 1.2.7 Programmable full flag behavior is incorrect when the core is configured with this combination of options: FWFT, non-symmetric port aspect ratio, single or multiple programmable full threshold input port. Change request: 435874 1.2.8 Programmable empty flag stuck high when the core is configured with this combination of options: block or distributed RAM FIFO, single or multiple programmable empty threshold input port. Change request: 443569 1.3 Outstanding Issues 1.3.1 "WARNING:Ngdbuild:452 - logical net 'u1/BU2/prog_*_thresh_assert<*>' has no driver" occur during NgdBuild although programmable empty or full is not selected. Warnings can be safely ignored. Change request: 431975 2. General Simulation 2.1 Enhancements None at this time. 2.2 Resolved Issues None at this time. 2.3 Outstanding Issues 2.3.1 Ncelab warnings during Verilog structural and timing simulations in ncsim for Virtex5 Block RAM FIFOs. The simulations will be successful, but there will be warnings similar to the following in the log file: "memory index out of declared bounds" in simprims_ver_virtex5_source.v or unisims_ver_virtex5_source.v. Cadence does not want to fix this issue. These warning messages can safely be ignored. Change request: 423374, 423375 3. Documentation 3.1 Enhancements 3.1.1 Added clarification on FIFO flag latency. 3.1.1 Added clarification on actual FIFO depth. 3.2 Resolved Issues None at this time. 3.3 Outstanding Issues None at this time. TECHNICAL SUPPORT ================= The fastest method for obtaining specific technical support for the FIFO Generator core is through the http://support.xilinx.com/ website. Questions are routed to a team of engineers with specific expertise in using the FIFO Generator core. Xilinx will provide technical support for use of this product as described in the FIFO Generator Datasheet. Xilinx cannot guarantee timing, functionality, or support of this product for designs that do not follow these guidelines. uhd-3.5.5/fpga/usrp2/coregen/fifo_generator_ug175.pdf000066400000000000000000130300271224274632000223420ustar00rootroot00000000000000%PDF-1.4 %âãÏÓ 1572 0 obj <> endobj xref 1572 126 0000000016 00000 n 0000004860 00000 n 0000005027 00000 n 0000005064 00000 n 0000005201 00000 n 0000005371 00000 n 0000005409 00000 n 0000005487 00000 n 0000005564 00000 n 0000007167 00000 n 0000007614 00000 n 0000008163 00000 n 0000008651 00000 n 0000008993 00000 n 0000011664 00000 n 0000016148 00000 n 0000018008 00000 n 0000030421 00000 n 0000030461 00000 n 0000030522 00000 n 0000030656 00000 n 0000030749 00000 n 0000030849 00000 n 0000030992 00000 n 0000031070 00000 n 0000031221 00000 n 0000031320 00000 n 0000031470 00000 n 0000031550 00000 n 0000031707 00000 n 0000031802 00000 n 0000031909 00000 n 0000032060 00000 n 0000032198 00000 n 0000032318 00000 n 0000032465 00000 n 0000032580 00000 n 0000032663 00000 n 0000032804 00000 n 0000032933 00000 n 0000033061 00000 n 0000033200 00000 n 0000033290 00000 n 0000033411 00000 n 0000033554 00000 n 0000033644 00000 n 0000033768 00000 n 0000033857 00000 n 0000033948 00000 n 0000034058 00000 n 0000034148 00000 n 0000034232 00000 n 0000034339 00000 n 0000034458 00000 n 0000034582 00000 n 0000034700 00000 n 0000034837 00000 n 0000034950 00000 n 0000035114 00000 n 0000035246 00000 n 0000035396 00000 n 0000035535 00000 n 0000035688 00000 n 0000035794 00000 n 0000035900 00000 n 0000036037 00000 n 0000036153 00000 n 0000036255 00000 n 0000036368 00000 n 0000036493 00000 n 0000036631 00000 n 0000036768 00000 n 0000036848 00000 n 0000037012 00000 n 0000037102 00000 n 0000037196 00000 n 0000037370 00000 n 0000037460 00000 n 0000037551 00000 n 0000037722 00000 n 0000037807 00000 n 0000037905 00000 n 0000038051 00000 n 0000038141 00000 n 0000038236 00000 n 0000038346 00000 n 0000038457 00000 n 0000038566 00000 n 0000038713 00000 n 0000038816 00000 n 0000038960 00000 n 0000039082 00000 n 0000039186 00000 n 0000039336 00000 n 0000039427 00000 n 0000039517 00000 n 0000039664 00000 n 0000039789 00000 n 0000039899 00000 n 0000040020 00000 n 0000040158 00000 n 0000040275 00000 n 0000040398 00000 n 0000040512 00000 n 0000040636 00000 n 0000040815 00000 n 0000040932 00000 n 0000041033 00000 n 0000041141 00000 n 0000041248 00000 n 0000041352 00000 n 0000041483 00000 n 0000041669 00000 n 0000041859 00000 n 0000042039 00000 n 0000042223 00000 n 0000042385 00000 n 0000042551 00000 n 0000042708 00000 n 0000042813 00000 n 0000042937 00000 n 0000043064 00000 n 0000043200 00000 n 0000043318 00000 n 0000043435 00000 n 0000002816 00000 n trailer <<4359F7635B12364E94F8D97FF7471EBF>]>> startxref 0 %%EOF 1697 0 obj<>stream xÚäW‹SSW>èν$,‹  )¢ŽûHàAš«ñJG¢Ìj¥±LñQBY]Z¥”VSQ(uSé"bvÇZˆn´.XP÷ëΚ)-èŒ;Öuv÷œ{î¹7Ríþ›rîïü^ß÷ûÎIÚ‰þFH/Ú‚€kxöZâZGÿ% ”wƒ£Qc “ÕeÆìð‡Ê¢b¼è‡FyL<„¥xå±@ëº@@_.i¤6_Ñ€•afË9?¹ÞxleÃJ”—ÜZù>Cì OñmËg š“kŠN¨íU žì¢Û¢N¾dЖª+5Š<¦™¶U:~³²ðÞòÈ}ŠW—ô/ßÏm·Ù.}IϦ'(–|ÔÖýÂo­.A÷šú@(»î//þÕ÷®ws6&#ô›7•ôãÊuƒËÆ5ïüjÞåß;Ñýnæïn^Ó>ݧ K;Þ—TRl¤/†äÝaHµ=dQèuÆeR>h7Ú¾YzJy:ä¬|:àB[QÓž-«'Sk#&æO˜WÞ]VGÝÚ³¥Ðšô2•R²µñ€Q{³É¤x‰KÏ»ei¦Šw–”¶1*MN¥Y)Ó¼SÚ‹}Å ,»÷£½ïïh³¤)/_mjnÝq`Ô$5YG ÆÆÊÎ+ ¾^gÕ°j–÷$uýõ®èYÚŽK†W5yUo«M¾E ìm„,!²ô„ç4á~†ð4ç ¨Ø9œ1ð];BªO8ùœí˜ðn¸%öœ,Ú3“»„–ê“GÃÛu ˜ 2\œq·¢ÆÍ»¾ì¶D×Äñ>?ºf>†­¢µª°†ìBÔ= W§¡gu«ëØÅs%ÑXã†ÕsZ³µ;ш]tS-€–D3Ÿd=C>HÞ+ÜÔÚi’‘V(Î/NU)*n¶õ9å¨É?ì—yöhAÛÌ™Ž¡ÃÁVìðÌlç9žC±„eöÍ…SØM*T›Ðâáõé‘Z:f>æc_iFãém©ÉGÚ‹øJDí9×ѵ].HhjÂÙæ;ÇéòiO·BûÔí!©n*–S…DÎÅÆϦ×svãåKøÎKÎs©ÓîVz.Lß?ùØ 9¬Z€-0fb½‘;Ï׿?À*‚ù7>‚<,F§ldX:b?}‡+Ž’?&5_ß‚á7ÄþõõŽJ¿¿«uLCùÁ6ª›Dþ]•<«ÕÂ鸳Á\ßþ¿ãŸ}݆8,Ò¾"$ôŽ*÷bt”è‰8¼ðl½eC#…rªá¡[qÈ-\_õ’’Ï ›³KÕv O\RZW×?±JOˆ©®´x΢Cjî]ð´ûgc¼Iz¤›Ý«øâjvíDlØD& Ú† â%/ ÛóuIXxx.>r£‡/Žs:‰…e…t2ƒ&ÞlÝõ,‡×hƒÁ™¡W‚ΰ615)—)CÉùnâô™ÄhMúômÎïX3…" |†³ÛR‹r–5sß!r“çâ0-N#`A€qÿe‚³™4ËÍ’½]¨À°z–/+¸Ñ4AÂçÀß ‚I1žO ƒ!0 ¹ãd¾ìÎ'IÄvZ4jçÎ8I9™FŠÓ§ñàéóÅð|@LÅ0 ç·h:\+ÎÑÛ·Iª€¤tñ9~[0‹ø@ëY1WÑ­’Š ñÝaG é…Æ2¢8µM$™vÎOëõ$‚³"Åô“Iñ;q¼¦„Qs6)8axXe|š'hÈ%™Èñ!DØD˜ÐÃÑ í=o#=§‰7dzl®ßqÒsv‘fÖNäÅÙ$±Ãv ™Î'))ͳFó²#$¢õëÿ_û!_ )–ƒ¸)økäõú<ø¼±Fh¨«¯{/D§¬ZeÞ[õ8†NÚåÞ·uþ…Tiݯ h°iÍ©y= Ôô\ R©ùÓò†ŒÍ:YQ¤æóþÓ=Å^͉*ðw…1ôRâíÙ–°ÉE Z^Q”®S†…)1Æ+Ò?rAéüB?‡"‰‚ýƒÅ™Spf?`=ì3H ý&ü5Áç8°ØmGã†?ÿ`ûF­ endstream endobj 1573 0 obj<> endobj 1574 0 obj<> endobj 1575 0 obj<> endobj 1576 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1577 0 obj[/ICCBased 1585 0 R] endobj 1578 0 obj<> endobj 1579 0 obj<> endobj 1580 0 obj<>stream H‰”W[oT7~?¿Â©8¶Ç×Dz@*¥j–§ˆ´„4(”„ò[úoûyÆ>vš¤²;ã¹|óÍxÎY«Î–ãc«În6N%£Ê^[§œÕ)«›ÓåórøâzÿíòôêN¾ÝZõüÅv9ÜÞFµ¿UFÂ?|:CÅáÓzk³ºÝ_ÕØ®Æ¶ê\q‚R889R—PxíY»âÕEMЍM¢îr$FÇ’WlòÁÖ¼¶DËùžNa4…{)†â‘OWÔ3¤¨)ûŸÊÐ\~¸ˆ)’ÓÞÎ)&Å#)þ§ØùÁóå#Ä#tIîljo¢ËG ¶ˆ÷ ZJ.ThΆğÁ XœŽ±ù§Ø Y•²Î1Ö€9h›b·¨ ÒÆ”Y‘tNµì‰Íã†a.º¥ÈN;ª èžGñ:x?»T5¥€ANa`ø,÷d{¬žªöxûûbÔeÔeu1Y}WÖ¨·êäƒQŸ1b¹Ñ+†ã%äG¥+Y]±Úƒ£â*nºÏ¬(ÚØÇ£” ¯Þ¬EÁ~€êŠ”«ýñ(›´ |Ób®duÅš!X¸øôP1`[o'I ñT™4É“üy**PÒ)Ìä‘LjÇ1i0êÉN°\ÖÖL]„á†í:Õ¢Îýȋݟ’e¶ŠÃWŰ(:Rž(.Ò”…xúæb«œ’½ˆ…Í¡pÌP޹Ñ'æI̳ «¢˜{¹DUq1+*ýË_ËÚ‚ÀÈ.…JK]ÁåäRE“„o8GɶU€›Ã9²T¤£ÉÓ,Öi梠ÔÎrk„.mèôðe’kmå\¦™ c:óÑ*9O(cO³Â2,(J3!(† _® áG84Ú×.“®+ô’XÁ]Åe#á¬g1EWEƒœ{¶Î™Ÿ%·ÑÔKãÐuË¢ãÛžRjM­¬ªàÃÙ5ÆÀbb˜˜Çy»&âÛÈ‘ëv#1œ¼°`Ó v%²œ¼'´šaC§¤ZS}âTE½',&>/Î'×ÍEAÔê9âûߢcÊLŸÂ">gµ"“í»"GÇbB®,ð*[ëš ^ššçåøi»r 1ÊYÆÃ*¯Í®µ—#rkuÏÜ¡ãjƒ2p·Aêuµ)kE·!œà•¯„ÁY}̃ÑUìŒ7EïHóîýº7âbnÛn2¾Í¼K̲±Î®W’¡®Œ|Ï–dËø"hraçheŽ­‰U\GÞrÝ)·¡'&5“›;©·×ˆwîûÚÅán“±ë,ŒÄ˜œÖ¡"b‘š:ì:‡£*Œ~ð£dŒ¾O±ö²ü¸»d×Ëê[Å1ò¬ ´SFÞó"Š!ØUÙïçÆµÃÅeLJY/k[#Aõ¢ñ—ì`»Ø÷§)3}™Oy½š–LÛÈ“ŸÏ¹[Ý»õrDo½îÙÛ$4dmPð6G½°6e½ì6…ƒü (4hƒ(´ §Mœ‡¾)¤'Í»wìÞŒïñFóòí?ÇÏT<•öz þuú|·¾²ÊªÝç/€XDÿå[½?*DL[FQ»K¼kŸ-ÏÕTq¿ð7R»ïËæýíé:úvþéT\½;¿¾úxñá`÷ÁÇëVäØü…Cûú8÷‘°Z“ãH=Ù¼?²Ⱦ׿~½9?À¶Ø\ð_uð,nä°ÀÇo~½3¢5Ç~Ymîêy؈7pñ1À}ؽY^'ˆ!L n,X€î>´ò™‡ß®Ïηïþ|ùzý‡ªõõ ^!¨Ý v‰QJ{õúÕ;utzuzóñîúFýµeD?ÑŒšÕ­œYûŸFü$ûa°ïgöibß3û~°OÂ~bö}gŸ6¦³û¯##i endstream endobj 1581 0 obj<> endobj 1582 0 obj<> endobj 1583 0 obj<> endobj 1584 0 obj<> endobj 1585 0 obj<>stream H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= €x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(ЇR¡,¨*T2B-Ð ¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…寒°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 N'çÎ)Î].ÂuæJ¸rî î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîƕƩºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_pß¶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ ¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäü儿 æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 1586 0 obj<>stream H‰\U PTç¾—Ýûï‚°,\î:ÙÅÝ;ŠhVDQZ Qê¾_@l„eWž²º¼[MkS„õU'FS I‘”@LP‰¯J«`"j}T3mjM¬5ɹëY;=‹NÒÉìþÿìžÿ?ß=ç|ß9—çÔ~Ïó†Ôó%-—ä(,s”äegOtÚ}'£¯„©•ð@&`ÅÓ_=]!„uÁæ`ø ¤#Í·O›(ϲ;myieq‰cm±œ\”ít­sº²JöhYžUX(/ñ!ËKÅWY¿HÎ+–³äW–ݱ6ËU ;×È©yEÎ’ÊuyÖ<9«È>Áé’óÈ·¸ÔVœgÏËrå9Š£”ÇÓ‡óç¹À`n¤–‹¸É.žã8n&Ç%¾Äíã¸dª§æ4d©äš¸+\¯âe>ŸßÅßõû¹ß;~ƒª5ª}jY]­nSYB«0Àd–ÌŽ³>J3U³\³OÓ£5hÓµŸúOõÏðßïß0* 3`g@K@oÀ¿†Ù† ˜Øø$¨$èhÐm¤KÕ9tÝÁÁiÁŸèƒôÉú3úÿ†¼’r$¤/tbèk¡‡¼1:úâS\Xö4±œ? *øíR"ˆóÁÙFÈîÓMnŽ`ѨŸŠÑ¸Òˆ+ï`ô] 4ÿàÑäyÐã’þŠâ4a¶³£)‡›Ø¿Aÿwº°Ò+c!z£\P êPø5¨ÅLÚ/H˜F–4&Öa:¨5dL‡4Pc¤£ZCaÖ@$ßVäC¤„VŒüÛ2ÅVéxC»¢Vóå»=l¤ˆ  |4©àÏð@Â&4@û±{ ç«ïÀ]æ©*çó¡_=žR ý–?«ÀŸé*@­¸AÍ7AdR†MðPB÷-ÔBÄÝ-¸ÁŒÃ¸xÔ Û Hy¯÷öí÷æb ¦”Ή‹+½ )f]]™²ñS¥~²ªWÙ(Á ïF=¨a+ªræ ÉTÎt5 Wr!€ÿÂa]„eµtªvûL——¯ŠKËÁ°h ± Þ»eªV©=žgï4w6ÝÿLÛ{üÖÐ!¹ÛžŠ3Êñ—f_PôR± õ`h‡´e £"Äûb?äA$>¾x«5>ñtü¦¶ZjkÁÐI>‡QûÀAÓZ\»ÍnØ÷ñŽŽ«F°bȉ(Œ…/™ÁÀêk¾þÏͽ¯®Ÿ°5Ë,ö—2Jb€‡.°ðð_.8(Á\èܬ´ U8ÓNC¼²'3Üç-`4c ÈsK3öÛ´4T²eù¤ùšrS‚6ðY†×!›…ONÔ4]kLI}ž$i~áѮ͔ŽÚ B2¨Làè„Iý0?‹š[PV¹Þ2„¼Ô9e>y…~HØÅNe»Ò ½q}c½U{8wú[E&ÜV‰›HÌsÚ0‰T5¢ï[˜`¿œމÏÍ__a®v ÷vÖ}ûµéÔ!göËÛxV·Êž–´úìÍ»gšO·wÅ qô<„P J½gä­bU¨`-LÁ¹X¶[´Á~OŠM„5—®i‡b,„Ù i¨2RáŒH” eMÊtiaá±¶SÍGº;Zò–§¬Yf s¤{ŽŽyçëO7>˜qÇ ÞšˆAɯÿÉiK¯Ÿc´vã0R&,êù+ Fl–2œ©‰)öŽK7;›OþíЂôçÚ‘im ßH¿ì>§ôøâ#W§OŸ²<7cÅÊ÷¿3c(öH(ì½3‚L†»ðÁ£­p·¡%b:&â°[~âìÞMwµ€/o[œ±Ø”YX×ù¦¥VCmKí ë 2ôXÅ:Øòÿ=*f*{Ô?tì‡$¬±Ô'KÊùw= *¨€±`Çp¬SîòØœÅpÏ3›“¼ªœ–Üì.¶˜BÎÔa° ‚HšúÐÔÖ4òP¤g>¹a€s Æ­ÿøKkËΜ3^)¹<¹Ù,*û»þ8`¼ö:øál3>fá”`)Ÿœ9Sœš˜UhÁT¦ä«a&•Km•‹–¬*YdÁÙô¸ 0(¿¥ÔãUž™J¹4øf,ŒÅÎÇц;°F ¡AÒcj–‰´²É•‹WM5¡˜FF‚Õƒ'®‚þýé™{-Cá+ù$¦0.&EÝÃ`ÓypÑ„ On±àeÊõIªç›_`.Ø0uŒdºâa­q ú@TÊ7›ä­fSÚ@ôޤ³qÆ)!LG¥>K—:t™f'ý• —.ô’í9üî™ÍÇÉ cËà ¶Œ KÙB!œÆñTØN%Æ×÷q G¢ßù¦ÑòIê¼Ô‡×¾³ˆÇOÆ8-„ðÊ2 ×™pK-òT›4#V³Ìb' ?{±½Õ"nØ#ûŸ}l•._^`9Ãn%ŽÁqW0lÀ:ž;itq5Dë—å/jòMÙô0Œ¬(eÍ­^•Xš|ž]¾+k†y»…j†¥[@'AÉJ¿›Ápo¿c•~Áííùû¨€æ§¬RÞ‚"‰[•*' 9î!ÇcÞ=ÂPºòs”mÄS;XšÎªv@ ¿ú×UÕ•Ei»ÿktÊ.¥ùâÐò? Š ( ˆTqÜŒF¥ÅÑF4D'Bƒ—A1QQԠ㎥ŒkA⢈Fp cjï'·gœûѩԯ®®÷ÿ[î»ïœsσmKZ[aÛx OqÛ™áÃqÛ|*G?ˆVÙØlFÑÃæùû#«„(I·šr›O¹]nÅ™lï:ù|‘ð ‘'`l ôkAYÆFk½†úþNûâÔªÐxSj8N÷C!ÂÊ278Hå¢A!¼ºA9Œd Î‹uŸ˜·l÷ ü÷³ø|SékGpŒ/šY*é_ÿ½ätÝ}Ǫ8ˆá¾åxþ^¤Ùfh›¿ ‰M'ëV§¾¢N…O™:Hÿ½I!зœ‚dѧ‡AA5$í',ŠÞ§ÝK$}ŸvDå_w¬©+¼ùâ·SÕfÍÙ3i4á/}1 @Ð$ƒm’ܰNзԯ»šî8!p}:ëOgKœJ3å6pÜõUšEH 24’’$Xš­°âÇñƨºKL(åÜ—9<- ltô<×ÐYç_JÊ2j'isƒ fúÌ6äVû†ZLÖ³d~û;{ª¡&ñáœЗÁŸ¸°¹0ØÊ…΋ð–g‚HE >ª}¿VSI%5(,ÿrH¶¹¬¥=¡÷ð5¯0°ˆÎFXäÓ6†Ùf± /6ŸôS$[ªÁ,½7MÊ¢—3+G*N¶8šu²·S¯Vü”ž"$B»U_0 í!MÀ0‰ø Ó,j‚ †,²YLy?öñ4yC‘›•HÇ3„5è5†2ȱ„ XÂyE~rn[çÊ6U5èÔ0­“‰Ð§ ³ÿëÙm؇}øN€: u±Ï0ÈþÕ³‡ÿÞ·ReR®¨•+ØW¬´\™§Õ¥¿ô-¤¥5ve„Ùà¤OU6+Dp@§â ’áè·A;º=ÿÜÉë[g&$e®Ù*£]ªà“1yŽ‹£¾{<\ô µâü·Ç$}ê¶„Ü/v¦ØÂ°B¶>/}oµ#:=õ˜ºtZRlÁ%ó¹=—wIæ]Å»öþÙVÚ!¿@q!Èh÷ÅN½¤| âÔwoŸ¸{÷—üÔÖr$ÐOÂte¡HdÖ§¯œ´úK·sµ3ʫ֚ àSKC‡ÀT—§ØÓ;zþŠ5rÓÑÜðÀê¹=DH„9bÊê°Y 5×77K5Û‹"òâlaÿ ”Núð“ ªA¨¹@ò¼>=ž×¾’(Ÿ1ÝêŠ.rÜ:ãÎ,V¾&ú’·{ºxãTR‹Îàc®*¼Y.çRÀŸXãµô¤m=:r¿¥­ÄwL`ÜDï”öj‰âÔ@¿gÜÌ©Šiâîƒtà%ÆnZjŒ1 ðÅÓÓ_ÊŠê ƒ/qpå L_ƒÑS0´Áàñ¬ã,ØÿEB?ñÎÎãgk ×’}wÊ„"aÈË4éî.Jˆøì¥W!;ŸSpQ:ËÙ˜š³Ä0lF4öwk°„€3i7&t€ ô‚ê7ÎÐÛî4´ŽvÚ¨ÿ'á»LÔ7fi¯_jÚ½Õé¿ø€ý£ã§Îsç2Eë»|yÿ¦C‡¶HÄ$òÀv!ô0@Áð|.Ó,9Z‹€E4ô1Ÿ¼üãÙPßI«ý‡“#›ø N¶jG-dTÕЙFqy?§hDèéÿË„1Ÿ­“²`':s•3k¼x¶ª%wrŒ„õßñ+èew‹¶4¡ëg?@©óv÷¾ÇÄÌL^'ÝXwx¼Á3fvÜ:‚·¾ñGt䛃‚–¹ðBí#ÓÔEþ@oîj«^¸sæxr໼¼_ã]Rõ²:déŒxòêLßÐ=£Y«¯øMf‰½þ]lÚÅ!úî["PlFzÄQ ŽzÄfˆÐµ_˜ÑmÐÆøs]ÝŸ V6<è>àôµIìl°b¬ŠVL#Ú7’ïÙ!>.•þ+îÝ'dÀQ :þÇHÝç²U_ŸÓÞÍxºot‘Þ3f~t2í¡{î^pz[cÍàC‡ËkŒ5{ð£0 x( fô‚€;—K¯–ɹXJ·M#³ôÂ2 ÕåWËž¥ÑÕ@5wÞä±Ën´J:¼F9·ìåF~Rú†[„8Âþv T{ LYù ÒædfædÆÄ¹ŠÒ‹çèH*ÛñÖ&å_öom2Bå·6+kj;ìŽP=í N@Ê@6ÎYßJÔ0)¤è›°O©‹ý结õ­¸šnû8×ÇÓådTâ·t¡±¢é.чùµ«æâOÓ9ï.«§ŒÕç/_‘ÇE`K<~©zÈA—Ò9–K•k°Û]¬gEAoéVT”“S$wh³?ÿ<;Ó0;;ÿ¨ gŸ¼Ýuâ.¯’;žêVÌœµ’o²áÓ’£/Ø÷P‚&jÿ[‹êg¼¾wýØcé]jЮMD¼FÕåZ9ͺ“Xp‹×CÀ‹3„[ʸ·Ó=1‘‘ÊWÕîN“ºs7ïìÊÆZì¨o€b'à@dmŒå w|œ+kRú ¹¬ÉÒŸ7ˆ™P±öUJ±,P"B0ìð#6 GzÃH^YaîÅÉX"À8öF?ÇÑL¤ÊØ%ªÝJ©Z9Á—ÊPÕ+{ë\Ë_…I‰›ç6fæäl‘Q£Í>P’½ßºoJa^-¥;ÜD 6ƒFu@Y¬VV*¾"h-Á¨Z,Å[ª”Å ÅcZTuö~¬2RÙåjÅÒ值¨•ËÚ±\hdíP.äby‡â…žlÄÿD»ÿûŽûÙ÷Žûé6÷ûÛ÷÷Û÷xžùbžûa™÷,—÷£—÷ “ý” Cyÿ ÷ ÷ Œ øÀùG õ7Š endstream endobj 1587 0 obj<>stream H‰lSkTT×>ww€À”ÌåÂZsáέ3 塨%¤VI@ÐX‡™‰Œ<†Ç@"&Á<äk¡!ÒGŒKðÕ¦-Š•&Y‰Ôúu MyH”Æ÷Å­¥çj﮳îY÷œ½÷wöþö·¢Q†a"2V,[µ|ŬåÎÂJg¹Ën‹Yâ.t¬Ì+t•V8‡E²ÀÈ!š—Urx`(.ƪ{/ß[§}ÌTƒè#?ŽÌ™zøß¨ / ‚?‚áÇ{Âu§ DÅ0­‡ÒÜ%Õצür)Úþ„·pÁ¼ÙÊžôp_¨ì çJ©wžSZ]]Vî,*“Ò‹ínO‰Ûc+w:b%)µ°PÊVʤlg™ÓSIo§Ó•\e’M*÷ØÎ"›§@r¿ e¸ŠÝåÕ%N)u™d+vÌq{$-«È+s9\6ËYûÿË% ]ÄOEB,„Db%d!ó I&d1!KYʧ ÉÔÕjb¤5Ñ’R@ö’ÆÄìdº˜U„*Yµ^5¢NR¿¥>ªÐ$hÊ5hÚµÚóìcì3’ž.9 ö!œáHÜFÎwA¾Æ’a¶Îùú¦ôJ¿\ÝÉÖÏÁøJ:}®¬¼·ÄË‹ÐÁ/.°ÁÞÂ0„‰6ƒ`,æ1ç*Æ^Ç@q:bi`û¤‡ÿ¹Ó( Ýˆö,c˜x‡ý‚G©CŽr!6”¸ˆ‚ˆ2|VÎo@Í ­V–Û(·h¦Oz¸Q¡òkʃõdŠìå'¶%B4˜‰‘‚;°"‡Õ°ü;``n— ­lBuÖ/Èå‚ððüĉAîX´±Õ¤—#ª€K¬„v‚J6PX(„1†¦Ò+ÇA;?a1²U[7 ‘Òû ·/Ý5q™x?Îm¢9ݦDÀ7‘¡Iäñ—‡Á*r½öѹc-mqÚq9 ?dõ’¯r2ÏËœ«6Oæñh}÷¨´GÚ!èI-¿ Å|‹ïÉÛµO}$¹¥‰…ã÷[´`ÌCéœ|×Ë Ò¬÷)„˜À˜ûEl¢íç–¥YÇÆEùz.Ñ5¥µeýñy¿Ÿž½õR¿éÀŽ@–‰v,wlrósôjÈœdyÃúÿX¡~ ƒÙi3D+öè™<Ï‚ú{V¬ŸÔ OÕŒÏóQ’4†Nšt6DpUòkr8aÑ‘BÙЖcÒK"ì­G/ ¿ÿxûª¢’ÚŠí&4Tiã·¦¯3¹T]~î³›=ǹª·Šš¶5{ü`–}qgÍ®3FŒ¸Ês=OgØ3Kœm½}Gßù EìkéhÙõ¶Ÿ¾tQÿ‚aÚº¯á0X †ª»W>¡ as{¸ÂÖ' ¿930ª%ˆï;í;uØÔÄr[–C„Žë½ïmü•®O¯í7?9?5>Îs댨Ôý’n:¦ƒBQMËz˜Ë;_±{j·ÝøÓ›&™y—…71ò¯3°¦mÏ ti`ýr¢Bþ "@±ùHw¿ÐóQé¼f“Ò|¹Ó; ¡Ê †];ùû”:¹SÇÍ…µŠÎ% iZ$ÔI ·å(`õr#HùÞ †³”ò§}!á\ï䀬áÁÑßÍó«J«Å“›ò÷/bÙùÕ¦:–ù'•§`˜ÖÜç;Þ¥!ã9?¡7ƒº3ï¿øç#¥É"ÿé'ÎQëJi|ôð(ûÊ‚*‘ÿاãzFNtŸ¾Þ”îø@ Ю0JKZÞþ¡ÌÑ䯡™.>×ààÀL Öˆh ]æA‚ÄûÍùó»¿dwÌ2Q+*a-è`ø®A†Óô½-`áFèþŠÿ¼ã‹±ë]ÉIž'ââ]—>¹oြÔm[üÛ#ën ßOQ&”a¾þ1Žgm¥´ýZç“•â=ìUÈä†ÏRê¡‹ýÛîóÀ¼ÓÖP×* ]cmmc­0¿ gm±Âã×_¡Q§¨cbŠxn‡L‘­KMSdó¹þ CXðqˆª+:ýw“ûVnéLY_Áà}f=;óIw×Ãè@¼Ñûb~šÈÝIpê1¡…Å; ÌAÂ(X÷Ãê¹øÅŠ+ÆŽ_wÑʆZ7¹vÒ‰}}>g.+ÂðL.PtnI›9ˆCìÏöl€ ñwìž={LºúW_­¯²ë[˜ ûêxâö˜¿—é¨(„¬Ø×nª@ qŠYºaãúß\a”žïè0|hå¿/}|ðäA‘ÎJU Ъ«Ú'óÚѶ f·²°·š°-:Ñ—V6è =Ö¨—!Dæùÿ 0þ ±‘ endstream endobj 1588 0 obj<>stream 2010-02-23T23:09:26-08:00 2010-02-23T23:09:26-08:00 2010-02-23T23:09:26-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:EC37DC8A1321DF11A166B14B4D8AAB0A uuid:EC37DC8A1321DF11A166B14B4D8AAB0A uuid:8aa329a3-ef07-4a74-9b3b-5335758298b8 uuid:3B02DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 1589 0 obj<> endobj 1590 0 obj<> endobj 1591 0 obj<> endobj 1592 0 obj<> endobj 1593 0 obj<> endobj 1594 0 obj<> endobj 1595 0 obj<> endobj 1596 0 obj<> endobj 1597 0 obj<> endobj 1598 0 obj<> endobj 1599 0 obj<> endobj 1600 0 obj<> endobj 1601 0 obj<> endobj 1602 0 obj<> endobj 1603 0 obj<> endobj 1604 0 obj<> endobj 1605 0 obj<> endobj 1606 0 obj<> endobj 1607 0 obj<> endobj 1608 0 obj<> endobj 1609 0 obj<> endobj 1610 0 obj<> endobj 1611 0 obj<> endobj 1612 0 obj<> endobj 1613 0 obj<> endobj 1614 0 obj<> endobj 1615 0 obj<> endobj 1616 0 obj<> endobj 1617 0 obj<> endobj 1618 0 obj<> endobj 1619 0 obj<> endobj 1620 0 obj<> endobj 1621 0 obj<> endobj 1622 0 obj<> endobj 1623 0 obj<> endobj 1624 0 obj<> endobj 1625 0 obj<> endobj 1626 0 obj<> endobj 1627 0 obj<> endobj 1628 0 obj<> endobj 1629 0 obj<> endobj 1630 0 obj<> endobj 1631 0 obj<> endobj 1632 0 obj<> endobj 1633 0 obj<> endobj 1634 0 obj<> endobj 1635 0 obj<> endobj 1636 0 obj<> endobj 1637 0 obj<> endobj 1638 0 obj<> endobj 1639 0 obj<> endobj 1640 0 obj<> endobj 1641 0 obj<> endobj 1642 0 obj<> endobj 1643 0 obj<> endobj 1644 0 obj<> endobj 1645 0 obj<> endobj 1646 0 obj<> endobj 1647 0 obj<> endobj 1648 0 obj<> endobj 1649 0 obj<> endobj 1650 0 obj<> endobj 1651 0 obj<> endobj 1652 0 obj<> endobj 1653 0 obj<> endobj 1654 0 obj<> endobj 1655 0 obj<> endobj 1656 0 obj<> endobj 1657 0 obj<> endobj 1658 0 obj<> endobj 1659 0 obj<> endobj 1660 0 obj<> endobj 1661 0 obj<> endobj 1662 0 obj<> endobj 1663 0 obj<> endobj 1664 0 obj<> endobj 1665 0 obj<> endobj 1666 0 obj<> endobj 1667 0 obj<> endobj 1668 0 obj<> endobj 1669 0 obj<> endobj 1670 0 obj<> endobj 1671 0 obj<> endobj 1672 0 obj<> endobj 1673 0 obj<> endobj 1674 0 obj<> endobj 1675 0 obj<> endobj 1676 0 obj<> endobj 1677 0 obj<> endobj 1678 0 obj<> endobj 1679 0 obj<> endobj 1680 0 obj<> endobj 1681 0 obj<> endobj 1682 0 obj<> endobj 1683 0 obj<> endobj 1684 0 obj<> endobj 1685 0 obj<> endobj 1686 0 obj<> endobj 1687 0 obj<> endobj 1688 0 obj<> endobj 1689 0 obj<> endobj 1690 0 obj<> endobj 1691 0 obj<> endobj 1692 0 obj<> endobj 1693 0 obj<> endobj 1694 0 obj<> endobj 1695 0 obj<> endobj 1696 0 obj<> endobj 1 0 obj<> endobj 2 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 3 0 obj<> endobj 4 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 5 0 obj<>stream H‰|WÝr⸾ÏSèR®JKþ¿d2é„dìÎÔÖ¹ `ï€Í±Í<Çnw8oy¾î–ɦ¶¸@–Z­î¯ôéòªMÔ¢UŸy¦ ‚4‹B£ÚEuvùyjÔs{G* }¬ÇA¤ šâlu†5ZJü< ¯Ù̬,~š]ÞXeÔlu–“b•«˜%°}¶9 °ù§a¢f‹3ÅíÏ~×7#ï"ö}s/ÿêsQÑ(×…‡-¹n¼‹sùêj÷­¼ÄOõ„¾íïß³ÁˆPŒ¸ì]ÅOܳ‘ŸX|ͮų%bÄ~¿÷’ÀµÿZ®K>?Ö¯þ¢Þ°Úáì̦˜Ê”Å¡‰‚h½(ƒž½ãQjüÈ~à¼M{ç£TÎ}$ë#ýÙ³Ú¤Þy«Á.šóåZ™\¦Ï• dd‚ަˌgúRÅd ‹óÒÏ¥›´Þå"åÂê Ψ¡$ÔȣϽ<…æ¿`AªUW»cß'xëEŒ¢‘%–‰­= ¡ÉO›K`C ìfþݳ¡ žê–ül ˜×¢»¹ü1 )轸y2$¤oþ,­ÀªEž"BQÝÀ_ b·Dvî®L÷`nyr~ØYxßõHå6ß#%~ÆâgÉÙfõšüLõüÂb#ÉWW0ºhŠšWž)D^xÌâ’å[NX7µjŠB­šzsb»Û#ؾ Úµ4/7­ªW?)£<ô Ô)"ö›²ÈœäôßK²z†á\•Hç«o87§ÌÛy ‰EùAé;VÏœó/ÒÊý·d¸aÔ#Td[>y–Ü&OÒ¾…+/푊9Û#ݨú‰ݼdÑJD¹v#ý¬æüÏ%ˆZ"%®?¿t­âòËØR¿™£F`Ê›|6Åv¬¢lŠþüЕ+_+ïO@¡!IÒ# ö€€í3„/ä#ÎÞ® ¸|¹ÞDËÈ>óiÞ¢ðHDÕ•ü#wdm$€%aXè|á~ òjR‡ÅÝèØ¨|5XêIŸríVZÅ¥S®Ê§n«æœdq}ÅñI1ÄÇ£ŒU¨v÷ôt] »]÷9û‘èûœù{óX¸šG*rO”ްëÐ3ºrÞF©í»†ÀÊÒÊ­‰´ö -2TºÑèv4þª†”|¹þú0q£éôÖ3Q¨¿©ëÑôêv0º›ªÁø›úÍ‹)ô‘šLãM^På~ž°f€M%<ó,&§"yïÑÒð×ᤗ±y!ÂÇ'u„GÝÝ>û¢&ÃéÃðj¦f^˜!?Àp"òpöe¨×Ã_<ÏG/"÷žÍqÖÕ7‰zmfrZùý ”`w sc=äPÀ˜ñÍýä–Ê9²<Õ£û±ºŸ¸E¸¶L–ö÷‹ŸÍ l(æL£;áV·C‰õÕ Ïp­ðYzF‡|L‡×.'àÑÄm¹güÆç®ž?ÌMxÂ»È :o4¾º}¼?«O\  B¡ž9}ã{BŒ‚Á «ÛÑÝh†ÓHC@¢×’ÅD³“š ’cºÓ~ó¢„Aúø†SÂi2DòLÙA+fÎ.NsJº±KžåžÆÞ<ÍÂÓ"8¡—4 Ó'i3zr ]óŽšzFpß Ç²8sÁ¤t®NðÞ­‚Uxu‘›‰Ì ‡44ÄïRª(ýÝ <½¡!öœ¦~ÿýYD‡µÜ7äÁ1jÁá^ «Á;í‚z"q­9£Ç^„c(•nGˆW^¬Ýêù·õn8¹ú2àüÊôàêÚ)ý†PaýʽMïºÍ±¾ÍÆÃéTÝHðJÞD \n=Ùè˜ Ô}û˜Ž®oõð8y¸ŸýZ‘äJføº(¶š·}ÃEû/–Џ—SÊuå*Á€?›è¤ßºÈI»¥«h­»ÀNï Zã+4ç+4ã‹ jD„B.‚LW`f^3%zâ¾…Q0 Ø–‡ƒW͉AáÁ ç sÆôÓÝ¨Ž˜£u/Šå¹’±c„m'WtÜOÎv´s²Þ‘Ä?ðwŽ ä‚Ÿzzv<Ø5 —º«õÖã"x£ƒÀæž)Ëu³<~­…tЛ†ùG¬ÇFŽ­4û’)ñwzUa÷poÏó%àõRƒÁßQdî{*òÈÙL½•B3­™+öÏ™=š†øJ²kæÍ©~õ? O?½ ¢ÔÕÖÿ¨BmÁùy`ð@á±G —¼ž‹Ô¨ZøJX×9u¥¿É©uÍsÏ5•eÀ¯²$O0ò&äVîjé%Ky¨¦[ÇFÑ„£C [ìUÇ™ÝWðh:t¶Í«¥ªy…Ó/Òµ,ZiÏ÷å'™÷ˆX`I•°ÔnYÈ7pÙY)yï`•lÈôô×þ–¤`úFº¡È}§›,Ñü–c¨Xåë‘>'\h¼àÆòzëY8é±bÈËN±tSº†Àó z¨"{vU÷­C] ´¨iÉÏTósÂ)ß#ç; õ;¿ÓûO;”âSãpWl‹^ö$ÞœŒ¤ËŠrœEüY” Ê—EWþðB¢Ç…óªöøý·S+§º7–½»¼± ýi%nÂÉ@É(ŽT”ƒ–"§6ï^UÃxR¦Dÿ([¼’Ô—²íꆸVŒ+Ê#Qž÷ºó^u Õ¶WmϨ>f€cU¯×õXuó§5nuÀ־ȶoù“PÐY_9S^Êœ*£äæç.·Ë†Dø­‹+t¸bjY/v›‚;nÕõ˜„?ÏÙÿg½JvÛÊŽè^_ñ–b ?Þy@¯Ü²ÝЈÙEVIÙDHJ )¡“ßH¾£¿±O o²$¶Ä S·^Ý[sÕ©ˆ}C<ÂS—çÏ·Þ+¢šŠ?2”MM¥M…®pî?.ßÉF² %1<`‚¯¥Bß_g!r=õê£0Á8³ú@Nø͵lDOúÌ?çû„Fãš@˘›D–ã ¾7v…¹+s¡S1$ ‡¿M¥œ¾™Q¿ÝoN‚73rò‚.mùO®\í°BÛõâ¸ÖVÛºÈH øˆËªÌ½z"ƒ‰Ô \kz‘_r?¬XÌ ½0j5hã_7+ʕà âš'Gì­»j«ñkòÖû¡qºÎ *o?yŒej—Í øæ û#5½ûÃÃýûâš§cj&GRäî@;ðÇN»N¶$Þ$ÊÒêí:>×@GÃÀýzÍsÍsõ“d?/U²Õ@M×;° %-›>­©(¸=Ä„îÓ_ðLáE ñøÃÛÇÕDÈþóïÔe°ó|žeJÉ+þDýñçÇ 3lE×Ó‘½o>Ü|øks'ÒòÞ æ´lÕ@„ Gqgwô¶øvÎ5ng‘º˜Q#œ›DyQ(îž)šÔ¿<¬Ø1 éŒ'I øÿ#Z®n¹%ŽQ|ë%K®ø;…›_ižÀ°Q¥äXÖÙšòµ¯!Ìsë9ñxÒö—¡OaÞçKÊÃ_g10’}C\‡Óú·7Q·»ã㲌K+¨Û9±)˜áò^ÿþ øï>¡ ª9ŽZ@T‡ H½ëo‹G•L§¬=4±« Nt`ŒÍUó´>p%,uß t“T ßÅn@&¨ :w\Ȥ½øÜÕÔ”¯ÉõŽ-¡ýv=È„©¨ð“`í5§ÐJúü=ÿ<¡-üÄ"g¡±”·YˆÄÕŒ] ›¨nécD½¼Åá¤Lû7þ­|‘ þ ôvs;½s¯wúÿè ÿÔ5EåºPz¿=6D)ªæŠûË”©©¢WË¥få°™y&õØuœ ²—J`»†¹qb`î ¬00j‚ÚË·¢§| Å©ãÊÔ”Œ¼ÜZº/ä×Σhýïôë'6|µ~Ú,×Ǿí‡é‡’8'1“?5OAîÓ¬KÒõ¸¾°Pç6 ÜLõîÍ­Då=Å´r5]ýí—kª¦›/ÂpÛö‚ë¼€mkFɃ`.ÙÊñ2Ùµ½ÑSR~¥çÜèk·ê‚‘õnÐ.êÄìê÷¯úD?Àzî¨;g‹Ã?»v–I1þv·>Ìœç#ƒÖ}Ÿ.o@ÎÓ„1CÛ¹~î%u¢œAJSõ—Þ%A\¢°!±CòÈ!4Cß8ÞTˆÏ‹Kœºä²õô¿ºãV^z¯e}¿·À„ @5tÞLY ܱ±\uõ’|óq½Hn~9,¾m–Çßå %ÈG)Í{ê΀ëííf÷{ún€v¾kÂf@Ï>vMØVFQC¹^ûaTO%ÅS­ *×»&‰c;&0‚&¡—’ ¶Cb(öKÜÈê  A¤.ÙêïUC¤±N"cO¶â{ñß±W‚öšÛO¢ï DmsÎÏÆ±œ®&Ö‰Þs›çðÁQ…T¡¶<%Ìø€‚wÙ‘ï¥,‡í¿šÅÙÈàŽÖ™ß;DPÔ[œÐý_A´žYöGz°¤+áÊ5ÌG)W‚'SƒE",䣂ÍÜ*Šœ9'I"ŽQaÊSÔ­ü^ñfKc^º•k¢!áž%,’à÷ãðY¥¾ÎDmJîH—4?HéQ±Éº©%÷#Õù!j?<ȱ‰I V¯”Þq‚ ¬`)¨ôÊ0T|?µ„àƒÚ¢@*$µÅIªØâ4E‚ÀÛÕõ15Ë£,‡Íq¹¿*›v/KÞÛ‡‡õ~µáuô7<©K“–€Ø yóŸO<Ôׇ;ÚRËåa·@ œQ#nnöŒaáÌ:WDÂͨŽ7¹oÿ«ö~Ee¤—{ƒ"éúÞ&ðÔo؉?„A$3çë~Шf‰jÖ¨ò$Õ˜²K½ü6z“#kG‘¥×ÏFJµ¾ÏÌׯc Žge€MQÏm€G›VÖhH îGåŸOɤO©Foî¥QŽSÕ½nP§ÏŒê@ëíýç ´çR€3BId¡Çt¥9¬/î.,º 1ø)GNÊQP#_k0Ĉ­w$£gèdˆ!ú‰‘ =3ô9 «…R¿5¹/ù¯×ñ|vÝuxX®RŠ*†Xxñyùî1¶aÁÀ(‡Ç ™í8óBrç%„ø'°ìœ—`íY ëÂDÂ3†œÏKpÉL$|¯¢ þ™ v€q7‘ðŒÁÔ³6ØêÎK°9ž—`‘Ig%H®¾ô€Eº8‰Ñ¤Œ Œóo«¦êü¦1ÍáfþñÚ5?¿»%gõøGï_ÑŽ[Ü* ÿr뚯G<¿iøý‚…#£QЬØâ¢4J%·Åçf t‡gŠSPVwkKÉݦZ ™`\@ĸdk’²x]L¢,Éu$fDyQÌë–uRðn› Áÿ&¥»õÃÆ¼ ¦@=|‰(/Š9cL²mͱ÷úî¥8D´Qôþƒ>Ú©µ{IQ}tª¨õÙERÐÙ˜ù7†*o 䬼ÀŠßÚL^‹¤–Cë{¢€'Œ … &Û¤,)¥±½èÁN<ЋÊm,|«”¶† Š8ÕÉ%Œ[?U= «©s*7Öž”î<*=¥r…i´ÎÅ‘áwÞ`¤y7¢u”A¼7ppŠ/P¬a#x"Ù ƒ‚›!Â2U0ª‚¬¡ÇÀ¬ÆM5D&“ÆzÀï Å)îè(ƒ4ï ö9Al(z'ÏÚ¿ä;÷ˆ2æAÔÐΞS&v& }ÆcŠ'SF æÑM1Æ ÎÉJ„ëFa÷H~ÓËÏúN aBéduFú Æ<©¢ ¦jëi, <©„©e™IƆ֠:vLÎtª¤0Ÿiè{µ•³ Íò‚(Ö%¥Tæ@µË9òѽP•ß³*˜B”c±|”“C‘ ;•9Q€ä{–÷‚÷“ópA ©{PȘo|6"¢ –äFH¢Q5òd0YÎQ,¢Éçêõ†KÄ[½`K‘c¦êg8W. +EnUŽRù\\éÏKƒå*ÊvD‘Ðl/¾] áÁŒF/Û‰{õe¢Ð9Y‘p›ÎÅZ>£»±$¼g„b-qÎHvPª“sD¤ô†R\Ð6N’¤p%à7Gµ?åÀ”¬Q ‰IR0HŽÈa‘`yH8N®­¼Àzî©t)–8qÐsÊp c’cûœ"·bÉs"¾@ÏSRJ d€‘BÆÙer’Eö'>£³-ùYÌdÐ|d†P#ŸSr|Î%ñ9ú¢§"!˜Â)ákà3ZŸ3g¡œ5©²qt•Õ½Ð9}m7t@ü¬鈚R³ÕÔPÈ#+‘ê=ñM±ÞMt*@B`Y%Ê) tÀ4>ïõ†P(â¥^@¶7ˆ@õÖª:—¥Ý«×‘¶ ;2ñÌÝ 1 IË•½€žžíÈM@¸uÚ¢¦«6=v4Î¥ŒB!ç?¨®šäŒB¶ïa:þºîtÙS|÷¿CÑo‰£Iw +v\.é€dÇ”ƒ \#õYPqÌ“Š$Ôl e—Ò”廚 ¦dÄ è¢Òù® œ(Ã{ål^)­ Äyû»ù¨°µÁ§.ä±–¸=g(•&rí>€žÞö †Ysô¶n(•xϤËüÛ‡T—´ã  ™¯ŽfRaÕ¢¼^9˜lGKYZ{•‚ÄH™Íˆ‚.­8 =÷TÚ¹R¸2*|Š¿Ø®bx…µÅÉbt²zƒG„hÚ¼“Ás0mÊðœ‘d½(<k'êù#pÔ¬ÎÁÎâN<Àö:éšvHz ÕqÅÀ((I9Eó¤ ‰%ûeûƒä1Ù´ÐÉv*ž'ëq@2ßUñ±‡ÖïßÏ׿ø/id endstream endobj 6 0 obj<>stream 2010-02-23T23:09:27-08:00 2010-02-23T23:09:27-08:00 2010-02-23T23:09:27-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:ED37DC8A1321DF11A166B14B4D8AAB0A uuid:ED37DC8A1321DF11A166B14B4D8AAB0A uuid:3360d11f-e84d-42ee-be52-8ae3516fe379 uuid:3B02DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 7 0 obj<> endobj 8 0 obj<> endobj 9 0 obj<> endobj 10 0 obj<> endobj 11 0 obj<> endobj 12 0 obj<> endobj 13 0 obj<> endobj 14 0 obj<> endobj 15 0 obj<> endobj 16 0 obj<> endobj 17 0 obj<> endobj 18 0 obj<> endobj 19 0 obj<> endobj 20 0 obj<> endobj 21 0 obj<> endobj 22 0 obj<> endobj 23 0 obj<> endobj 24 0 obj<> endobj 25 0 obj<> endobj 26 0 obj<> endobj 27 0 obj<> endobj 28 0 obj<> endobj 29 0 obj<> endobj 30 0 obj<> endobj 31 0 obj<> endobj 32 0 obj<> endobj 33 0 obj<> endobj 34 0 obj<> endobj 35 0 obj<> endobj 36 0 obj<> endobj 37 0 obj<> endobj 38 0 obj<> endobj 39 0 obj<> endobj 40 0 obj<> endobj 41 0 obj<> endobj 42 0 obj<> endobj 43 0 obj<> endobj 44 0 obj<> endobj 45 0 obj<> endobj 46 0 obj<> endobj 47 0 obj<> endobj 48 0 obj<> endobj 49 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 50 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 51 0 obj<>stream H‰äWËvÛ8Ýë+°û„ ^Èìl%òñ̸q”d‘ž…"Ñ»%RCRqò÷]ð¥G%Är÷ñ9@‚@áVÕ­[O‡¥&Ó’°À°8" ÌDJrRN³ÁÓ‹WœÜ•ƒP%x2E8Šdp;€wøJ±fܾQÀ„{y>< ÂÉøvãÆ$&¡]Ÿ—ûp“šŒ§…0º¼££KÏMG×î—\$ŽbšxðIL Ï7ð3q³*¯çÄÓ¡4Î4 ¸÷¿ñ¿ÀéŒxÚ\þÜõ„ ´€Ùø¹³„‡ÖgÄýý½§YÒàcºHíù!ýLó¥ÝöÅx <Šˆ€C5¥‘ôTû@ ”ˆÐ O¥ÒÿÞë‡a ”6Äç…1®µC9;__p‡ ‰ç#g+Àƒ#p)>ÐtAê%±VÒ'D¸)㬆¨¶’['[€ì(fD+¡WBcáX¶à-xY$·“iòŒ³÷ùº"ãyZ’‹u:KêÝÃzwÖînG\ØPÒ’õþ1nJíçd˜gU’U¥ƒFÕPB¸94q ˜äö&"nB GIàáI1Bƒv¶÷á¾Ù__pÚG6?¾ðËùqžƒ ëy®‹ e™žÍfi•æÙdAn’2_Óä +¥s寮{\yZÈ=g1¶ã,Ku²ìd8êwxd¬w6¶‘¸‹Í.ݳr{|ðå<ßðò4ŽÀÖ ’D°«*,²¥l!¢ØEp| /À‰Â~ãK®cKöLEîSGñuì ÷åøÓ*¿+&«y:,€ä!U"`½¼ˆhû³ùpßì¯/8Í#7BlWãE+6_à‡~ðA:AY¦¼qJ¸ß);„t>H0žçÓõR <Ã×ôDùãÁ(ËùD÷|Ò“]+  ‘ ?j5ôy]*P6™Ö)Ò9e8Ÿ¬ª„01D÷dÀ)H”ˬ*òÙzŠtwo†"¤pÈoNpgqãÊœU=ÕõJ‘¢ÐLÑ;î¨ÇåÛ‡¯€áqžä pߪ€­ä|Go÷¾³dFž'ezçA@3dW ‡WI‘&Ù´Qµû5L¬°Ø”T§‰æÃ;PçÀ¨ÛœwBr”$³÷“é‡(PÃØÚ£V‘ß ¹þ†ª²§"U_·ðV¸ôû P.P×H­b„T­}©¥åúet9º&‰•0ŤʡhrYùGsú5õwÏ›ZTZ`;Óêt^ëtX©j-Ú¨JݪÊã¼ÒiI (ïN?õHë΢CJߪü=z¿¡½Ï‹M%Y £¶fµ™m±a'&<›¨Éõ‡¤ø&÷Ç‘+œ)U§5ÛÈudÏ— G&Õº¨‡ö$Aá÷ìþpÁêµ?OÕÛ§U3Kk |m¬îÔM„ÃE>ýƒ\.W‹“{‚m¹eiG@¼@;õ#  3vgG,9rÇïydû°É4ÖøŽnÁQœ7iß#ãAú$ðµ¡=ß¾&“lFÞ¤ÀªŠUòÑÉÈN^fÀ´gžM…óuº°Ï+~$M34 +œ3æU-'}®ˆë·V h2«‹6÷˜h$¬I}©hãâ_± ™}Í’M(ýÆê^àÕ8X$C‹dl‘4ÔWdôòâ 7G¨*¿<ÍÇÜp«¾Ë N´ÏÆß(-JÛsTþ[DÎPA–&‹…?žùún°Vò'Sõ†_± ™±äŽlî‡r§x\%˼ø„{Œ?­’@ã!¤ãc øŸd£* tG=ÃÛê¡Â®…õUÐ/Q++í×_,@¿æ™ÿêÓr™TE:%gå*™Vä«O§úNu8…‚mDñá¿X¾Of ËP”f¸ácÔ»´ô°ûªÜ´(ñãÓs[æoήlݲìz5™z†rG !-‹œ+n€€âÖ^«§E^Ëì÷Ä~4µjoóz…‡=b2uúE„©w¢Ù½ƒÙ0iwvÄ’#wüžG¶Øâ£½d¢§²±ÒÔb­±CæÙmz·vÐâÛ D±¬ã’Z„Èz)L ·Ü#ë#¶?µÊvXƒ:“z‡åvw˜/—åµ ¦‹Ï\ÔŸ·l£h4ôê Nž7ÙìD“A)ªKE߯«š0§ŸWö»¹Õ¦é­‡Œ\µ*RËH÷Täß$@¶[ä:B£~<ÍÅ­X´ÆmÁÇÛ~–›-ø9ÝVqë'äÍ¥ÓÞX„Œ5è¡~ÂÒAÀÍ„êA°#´ö P0—óV”7©"X}ûÚ®íà1hÝ;z™Í’•ã9e•»}ùÌå½#t3WøIêYAcÂFbc’b Ø-f(`€Š ÅC¦™IU5M™k9ˆiçŽöêa{uˆiA›û«¶¯‚¶ÀOíofiK›^ã!–18Ím•+\Ã&°a³›c "¡™sa.‹ê0yGmÖ¡v‘eÁ´)ÓM\ƒÂ’ÅXqðüÚûjÕ¸ È—¸[Ȩ‰Ó‘)ˆœÕfa]&mi¿H²È;·QQ2©ÖˆÞ\-põî {èú¡™øÁÉ_ðãœ%Ô”,Úó×ešÝDPðŒF¤¡K÷æ2nžÌÜ$¿%-IÙ5˯1صc·8-ê~€ê³˜bâ qªl+T—a/.3—©Iq;™}Ç¡íwCÿqíÃç‰ó¨:^í•9dxôŒÕ>àØÄJ˜ˆ¦wèxˆänhù¬­ÅèÍ’¼M«9ÁòWø¯WŒ­ÐÈ0±ÉR­2ÊôTÀN<`t•@tÒÍÝ;Aù­HÞ§ö9ÀY‹+{.7RaÔCÉ´ÖÆÊÔŠXIIo$LM¢&Ù’‹Å0!N»¾È´´Â :Ÿ¬¬Jø‚J@™Óg¤)¶HåÕ{§"9ŠÉ¸Œ ;ÂóZµ[«ÑáõÍ ·-êZí–@O¹hž¬æét² ¯Ë¤ .Ðù‡ŠTAÿÌ/Ücày\æJíyØ• Ý/K«•ê&wRÙÔI=Ž¢ó`+¤@Ý´qÈq¢éŸ\dÍrÐnîÜ3E­ò ™þ×ÉÒó‘Á  ¥¶rÿ›û{RúCVDUê yÃáJD‘èãß~óú‹ ×‰9a×âŽì¶ ËÚƒôð…Ò0;N €K稣û|`];ú \ëÀŽLG¬“³Ò´±¥FQ÷?ǾRÒ¬'yÈotøŸÿæ=ç‹ØKQxáùHc7g`#§WÖ°­ªÀàìM ö×£gÎ9Î;[0¡»¾ßµiv(ÂÖ(¬ðiÁ&ÏÓ²‚ý-Ò÷ë*™µhïšœ¨;éså÷ñBúb<øÿ€“” BE ãDrÈPõ‡¤Ho!Ùàé°ÔdZæ*uÀL¤$'å4Ãï4tb&"K· „&‹Áí AÚ½‚IïÝÞ­a21,‹nçc(êÚuaw¹*B:AHîþ$žhÒÑ444–}‰ÀÚ˜ç’rRòÓ€m@`“,¯¤2.Ì& endstream endobj 52 0 obj<> endobj 53 0 obj<> endobj 54 0 obj<> endobj 55 0 obj<> endobj 56 0 obj<> endobj 57 0 obj<> endobj 58 0 obj<> endobj 59 0 obj<> endobj 60 0 obj<> endobj 61 0 obj<> endobj 62 0 obj<> endobj 63 0 obj<> endobj 64 0 obj<> endobj 65 0 obj<> endobj 66 0 obj<> endobj 67 0 obj<> endobj 68 0 obj<> endobj 69 0 obj<> endobj 70 0 obj<> endobj 71 0 obj<> endobj 72 0 obj<> endobj 73 0 obj<> endobj 74 0 obj<> endobj 75 0 obj<> endobj 76 0 obj<> endobj 77 0 obj<> endobj 78 0 obj<> endobj 79 0 obj<> endobj 80 0 obj<> endobj 81 0 obj<> endobj 82 0 obj<> endobj 83 0 obj<> endobj 84 0 obj<> endobj 85 0 obj<> endobj 86 0 obj<> endobj 87 0 obj<> endobj 88 0 obj<> endobj 89 0 obj<> endobj 90 0 obj<> endobj 91 0 obj<> endobj 92 0 obj<> endobj 93 0 obj<> endobj 94 0 obj<> endobj 95 0 obj<> endobj 96 0 obj<> endobj 97 0 obj<> endobj 98 0 obj<> endobj 99 0 obj<> endobj 100 0 obj<> endobj 101 0 obj<> endobj 102 0 obj<> endobj 103 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 104 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 105 0 obj<>stream H‰äWÛrÛF}ÇWÌ#°e@˜ûÌc$….ßbÇâ–lWJKÑ2‰´)j•ÏßÓsåµãÊÚ»WDLc¦oçtOƒ³óêàá gçW•0sÌjÛiÃúŽ‹¾—øÒ{϶Ëê]%l~­4m˜¾=8º2lq¡í½c=zë”äìj±®´bJvë^1Ná,Ó+ÓyÓóðN¸®ñåá¼:˜ ÆÙü]åI!óL‡8>¿¬zîÙ|AnªZ5ó8 ãÁü‹.ÕøÌæÇU ßz®éìëúææ¦1}§ëîÕÅjÝ´Ït‹Íeóvþ¸úyŽÀ!r ²†a«SN9¨¸ßQeE×»}δ ‡_׳Gêl={~ØÃå²^6­ª·§»Í–ýÓtÉè7Né@ØA[½3m2ú%ÅÓI«÷IŠØ>Åv©è$º-P¥†‰ÜrAU£kgËè4ï¸Ñ%_•ÃiËX”ÅžIt¸û•r%‡°D™øé:g&± ¶¾Â5m¯ÀwÉ­SnZš0St5e%r€ëî8aIXÛ´Ôa©¹LkÇáTG‰‰|Ú`|X›¬õò•$tÓÑÚEý„Ö¶Ok06ž°BE‰:­Œ6d>‘ט3Ò‰$ÁuX*P(Çh"F¥0’$§¢OèfÑ'ó¢e´`dZ«! .¢$…Þ§¨µŠµÍtŸv¸”ÖtÜ¥4K;¬ãžÒD’‹‰„ ¹¨ÞW“*v0½ç)x«ü-‰ |¦éXM´O’O¡{é}‚˜¯˜T ­Ü…Mäçe”„j’ø%é”eªDÖ–G;Ôeá]ª$N‡1ÍXóHÁ^ð°æÐ˜—Ñ*ç1ÂD½Ä7ðNœ’j²Ã¤h³›²8ÚpÎM¼ð)óÑK‹iUMâ .&ŠHÑñD™ ¬­rOHu¸€.Ö 9šI‡%À|é@’ˆhA¦b%ñh„4.©§hçØè£ 7Ì0µŸ㜉qÇ< oÊ2SXßêR¸[d<sµqOD¼ÆÏQCD|´¡‡Ò‹^dÎd/3«Æ8ôPÝ1ÒÌËœ‰ÌÜ1WO¾È&ÖJÉ—,IpåóÍimÄRä^iRµÈÔcl Ce8|rÒ¥Dä \ñ–ÒR›K'´0\`*÷ÆÞÇT‹>_¨¸ƒ&æZç[ÊOvØÞM48eoÙðÎ^€d¼p䦂X[ÄhÓh“s€uJšt@§´Iõãÿ¢«Žë±N¢Èð´CD(l*M•š”É¢¨]ÇQÛÚ öµÌµžZ’òlÌÚK.íSÛN½Ocºlb–iÄPqŠDñÉŽˆdÖ±md6d/2[²—™Mc™o9ÐDÇ”…L×!K @J›M½\H]¤9¯ËÉ’UÖ¡œVÄ“ÖÏÏŽª_«ƒ‡'œ_U‡óê`¦gów•Ç×@Ï<ã†ú³^+6¿Ä‡ÂyÕ⣬G‹˜/â#´Îoªúhsy¹Y³£‹Íâwö¦>zúäMó€¼_½Û±—ËóÕÕn¹mæ*ú>ŠêéArô•‰ÒèIy0ÃI÷ëºcÁŸ®5»µÚ+Ü·úö _ar¶ßB¾–²y;|'µ˜öÇÀ{3dì‘#­ XQÇ¿›/yMinPäu™kl€ÁÃë°qßïÚÕšÍáYÖ³çÑ[ù¼åÅÝôs2~Øüã¾(ó/Çü›ú£õÙz?.ñ»ÞEz_A)®âúMÝÐψãïñoGOƒdt–°2?ŽºÔPP=h}Ò´hõƒ¦¥£ìÕK<ô¨;jZß§iÛ†~Űñð¢iÑ"‰ôzAtðõï ç õŸh-êgû€v¸Ü­x©tÒâN¡¹IJÝ]îÛW_³åó Y;ôŸYàƒ™ä3É€ =y1¢I{ÄHË£„|FÅ$TL@%cÀ5;nZEõ†­õUÓºzG{¶«ÄM×8Yï–ä¬Ï< ˜XÓ* ¡íLõÚ•±ïìûƒcô_Ž ÈŠŸ*Æ…Š¡ëÝ/¤í&õ¿ø°¦B?˜=šÑ_ïm†(kʈï\3ïi°ƒùŸ¸àôct_BB¾s}±Ü¾Ûl/O× â-¯— ºU͞ܭ6ë+vº>c(²a!x;¤ÁFUǧ»Söb³Ý1¸©ë§ÛÓË%.ù«äcž%¦)ÖžîûÂÃý)þ–ÿébR…èZ$ÚgX%zŒp)Kw¯Î—ËÓ3ölƒ:h1 Öÿ}÷èÎdÈ¬ÄØb¤/Š_ä”êa¡ƒ­®ÇºP{;“0‰d±‰ð¬È¤b8Ùѵéj°žºµªOiÍëíYî|oŸC«+ôß3´þPÙý¡f±ýxá[ À‹Û[ÀÏV[jæ÷,†VôöW›$8ƒ÷êìô⢿ßn®ÏßÓ •®Z Àhvvÿ,\¸`Gã÷Àÿ€´”ÏͶ66ÿt³^¯.ÒÇÅìy¾> Û[Öì]ÿíŸÝW_°å;˜Ì?¡‹|Ƨ.–.a!yú¦Ã-¸ÿÚ÷%ÿ{>ÎS"_& •§g¯±·«Ý2ÎTl¶]~º^®«åÕ^’ãÚ5……/éXÿk×ÇRw9~g T†ãMCƒd¸"D& ë¹ô€~˜™å;ŽIžû¦¼K©ãgê»xîUCß½[4zñ/ö«¦¹m[‹îû+°ßÔ*ñÅ·K,»Õ¼všIœñ¢Ý0#1‘( EOkÿúÞ €A‘’Üé‹é¤‘” <÷œs)žúÛb^/ûN:(üǟó쎧\º<)Ï£¥ g¡å÷¶Ò—¢5zn $+NÉëF5[SEvÌ1Õ™¶7¼ÍÅbòΓ Ñ>Þá‚uÐÀ[Ã|ó©‹²‚lÐÚü‰h0V)ùáZØëÇïX8IýzæŽq†§íLìŽ=+£ÙŠ\¯²Åî{òSVÎwËì3âX§qÂl÷¨m‚ÔÄ÷þB`wŠÎÊ¢.²Uñ¨…ÉnOšíuÀÀQ:{;<á£ÑÄ<0è;"£ßœOX”Ämÿ­ƒep‘2°Uøoˆþé—[Ò´xÚ#‘¶JÙõÊ)þñBÑý©z%H)OÜÝDÒÎôjµÞìjr}¿2ìô…ØO"[S 9Ï®c¡~:¤ð莎ȣãj½­ù:tîçâã¹1 ±‘%P~Æ£Ã\;Ô„A e>ÀÔZÁÆ%Hƒ´Õ-ÕŠß#ö¶õ„ÍÓCžaI÷¥m÷ˆ3Ϻ\QàÛ i*ˆ21-ꜼÙ ­jø°9ð§ Æ¦+à˜ˆ,”bôÔ¾rˆŒ<ùëžWßÂÙïòÆíØ“8‚$s]o‘º^ &šhrðÒГ?Šš04ÄŸ@ÄõWêIß¶"±I’¨3:Ý« àç{°YùÉ´¹ºæ6ü7Hõ ±!*far$D™üÔ“¤zëF$m» …«a­û¶f¡åb•“׈VDÁÌ+äÎTÏ,´  <è§HÔ#6È~=¨mþÚÿjÛ G1;žv§PJ ‡ŽÞ´é˜›Q ,@‚^ a3(0\Uµég'…n­ú Æ/‡¾'æ‡keº[^i¢!3wŒ3¼µ«‰5˜1›feQÙªxÌ{¡ŒÀJо©6‹*[¯³@˜é&ÍrÒ,ç$˜v ±!#z¨#èp‰µ”x"QŽNZŠ.úæ¬ÑËú—^²ñî|DÃéš¶0>_‹¢ð´*éÕ*ÁÛZÅ] (‰³B Ûå5yS”Áͧ®î„ [­ dçç18J?K¡p[K ¨Ô؃ۤFù’‰ˆÅa–ކÖV<û€™ƒ€þ1¿ÃmÖŒßâohžÎò Kº/µæE“T±Fó4ˆZ“n#¿DxŠîЧtÝÊÙm7·°c¥Ät0jì"1„0È^X.˜‹mP¾yÀ_·yoìW¼uŸîë_]9$ûrè”HŸ ÆCœ÷ÆÕz[?8ú9ˆꧨÖ׉û©Ð‹ýB-9šd6Í,…:#—›{X³ Bì!…\ë.¤;¹pek:ˆÚæUº÷Gô0ü?>ÿZר$‰˜4ºfJAu[D‚ƒ/¸I‰ ¿5‘‘HO'ëiÔÁŠÀ^Y“_·:_Gи ËC°—æ‰óÜÔzrÀÈ’tÿÆkd”¦m¯™pÁRˆe +iRù’&ö•$ÚÁ,†`f„ìêÏà"¦u\$4#?oøX ªíÎŒ$×›ÊþeSÕc en^„¸Ø2N^Ý™ÿÜÝÃŒp­2“ÿjø@'¦øÌióµ½Bãïà€emnv=:+·ÿ¾OIû#ÐÆ¡¾<[©AØWšñ„!lX/XVfSY¿ÓwåݲڔÅcK*:'·E½$—«Ï¿}@2©l­;äË·#Éz!j¿z¨öˆ'æÝoqN+Èaœ5´4™5"—MƒrfÉ4øÀø–¢K3iç„>æsò‡¹nn«Âü»©ÉË•þi€±¶‘lû‹ÏÀ@˜v½Ü1+xoñ4 šÍøÝÓŽˆÖ0(B´Ty›ÃðÑ0ä5oCXŽüPŸÊX,õiÈöíË»{¸Õö0ƒY ZÃI´»´Ú·¦ö1Jµl‘7çH5nt¡t’j²Péä–@áÔw)ÜDàƒÒQ'ÜéŒÍ´—Ël[ç`áâç´øø±¸»_ÕxÎÐ[Zˆ_)övxøtÆ3gü'—t_6Zhp¼ùQ§}tŠl(}¾Êtó˜Òy^í´I×Y9'ïŠ@ÑE Gú Þmá4ÃìZ§]ŽsØ(Ž„¸î¨)l(1= ÚX9†X˜Qt¦L7;"dfËê å½Ú4OOâƒÕñb†ÉÞ1ãÝ6ÞÝ5…æ€ÃÁ[Vè¯|ÿž 0åÄ ÒO}у‰$r¿ÐѸùu”yóSÚ›FG¤wVu‘­ŠGÔu”ôëÙõ¯Är½©Ž pœ"òíÙÏÌù_ ÚʳHHZç“í©²… QŸ­ajN·«|—ufR|0]ù;»L?\0òsê|~Ò”Fóêæ»¿»Î^S endstream endobj 106 0 obj<>stream 2010-02-23T23:09:28-08:00 2010-02-23T23:09:28-08:00 2010-02-23T23:09:28-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:EE37DC8A1321DF11A166B14B4D8AAB0A uuid:EE37DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 107 0 obj<> endobj 108 0 obj<> endobj 109 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 110 0 obj<> endobj 111 0 obj<> endobj 112 0 obj<> endobj 113 0 obj<> endobj 114 0 obj<> endobj 115 0 obj<> endobj 116 0 obj<> endobj 117 0 obj<> endobj 118 0 obj<> endobj 119 0 obj<> endobj 120 0 obj<> endobj 121 0 obj<> endobj 122 0 obj<> endobj 123 0 obj<> endobj 124 0 obj<> endobj 125 0 obj<> endobj 126 0 obj<> endobj 127 0 obj<> endobj 128 0 obj<> endobj 129 0 obj<> endobj 130 0 obj<> endobj 131 0 obj<> endobj 132 0 obj<> endobj 133 0 obj<> endobj 134 0 obj<> endobj 135 0 obj<> endobj 136 0 obj<> endobj 137 0 obj<> endobj 138 0 obj<> endobj 139 0 obj<> endobj 140 0 obj<> endobj 141 0 obj<> endobj 142 0 obj<> endobj 143 0 obj<> endobj 144 0 obj<> endobj 145 0 obj<> endobj 146 0 obj<> endobj 147 0 obj<> endobj 148 0 obj<> endobj 149 0 obj<> endobj 150 0 obj<> endobj 151 0 obj<> endobj 152 0 obj<> endobj 153 0 obj<> endobj 154 0 obj<> endobj 155 0 obj<> endobj 156 0 obj<> endobj 157 0 obj<> endobj 158 0 obj<> endobj 159 0 obj<> endobj 160 0 obj<> endobj 161 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 162 0 obj<>stream H‰ìWmsÉþ®_1w¯¢õô¼ßÀ`…¡RuåØÂd‰³DÌÏOÏtÏî¬,ÀN¨pW9\…¶{{úåé—éq19x|âb3Q® Axë;ë„ì@I©ñW飸šOÞN”/¯Mã·‡'Î6Èô2!ñAú`4ˆÍÙjb0ºC¾•F@zȇÐrzåºè$äw*tRÑ˳ÉÁ‘ fo'1)QØ,Çg—‰‡§hEj'fg“ô„¾Í®'¯›£'íÔv®9zN¿âñ|•žb3oñHl®Ú©ÇŸS¢¶k¦Eë:ßüË%Ê5´ofOÑ MNô!â…¥Lç1{Hž€Íž×××­“mºÏ‹å"Û·Íçîl}™Õ>š!¢È ¡÷N h0ˆš ¨ç+X¡ “ÕÆ¶³÷ƒ³Sk;cœSè”<ŒI6?ª@~¾| „·¢&îD< ·H ×,‹Ä½lþ"‘d‰å›ù÷ÆÞ,€ß°"¿vè/¾NÇÎå÷¯~«R#>Åí„Eÿp…<\Ÿ}ºœ¯¶âàøÐˆ'¿TŽDÿR•JSµ‚Ù,z•Šž# €NF/.'hC£ÞéÎˉ®føÎ8ÓY¢/²s1È”@©0THv!ºþLØÐ0•‰qÓÄo'i|L!aé3XˆÕ×b.>`]x}'èÄ­ƒ¼ag\m gÜ0ðËWCp¦36öy¸$¶JŒS8˜üíS4²KƒÆÞÇ¢±´W6IÀzM¿ÖĬÚhÏÇêóª‹`óà429äe§ý °“*H‰±$“¥*JÔá ®ÇÞ vNL^¢ L-áR_Ö :|e%ùÊx‡'âKŸþŒ³ç)6û{ìiÌýµ)ŽÅë7RœO|ÀüÛ fô>œLŽ‹¨+™Âèe‚êdØÇÀrSü ®3q=Ä“«­0£ò$b‚ ö$bg)j@º¡Ð½ÞˆYÐv£×ŠGB®Æžá; !“;Æ :'ýFηçHœµ«h@êNG_"Hå¶*F©©:WW"J8Y—ÈÔhaÄ)†J-&gÜh|‚ôXâ0âÒÓ›J2i ÕƒD0€Rí)*dØÐsíñvÌ4“Æ2©ÅY>àƒgŽÍA±D4D³B¼ºè@ˆdS+""Óši¼ÅéD´.sŒ$•Ñ‘ SN0me±Ñs 9U4ؠؕ¸Ã&æŠâtšmeÉLj÷?Ç` 1JÐÀ§9hïÓE¿§^Z†µÐ„«s±§é€f˜g9â¤Ô,'ï&uzBŸÀÀ¡N`ä·>ë VLÓˆ8˜ˆL{ÒàÔˆ4±?ÀÍò¦*4À¡*lo’—’ÐçÉ%E.c ­4Ÿ(óÅ*ÇÁÇ;dåwÚåÔ§ ¨½Œ`õ§¾ hâ’‘®^(žQF5Ág:Z6ÄÙK[t¢ äo1m¨þ”¥Ù¨P§›!bxp( úszšëɹ‘DàH³‚ù` Ýy•ˆ°‚ÁAœTp–ÖÑTñE¼Öëø#¶šï¢Ö’†¨É(ÒÙ­¤/'˜£¹2miso*Ø´±”…áYâA‹ÁKLW®æB‹²/$.­È~glZ}”lãÙ„ Gy"”‘¾ÊÑt‚25Hh?R@‰®, HJÕIñ¯ÔÑú¨Ò¨ \ªHÈPÁˆ_^ÞW0tIÄÀ¡T %•£n œ(ç€ÛÃñô R±K‘“©,« ©Ààž“0„¬â† t@¹~*Z+BÎx’ÐvœšDs‹DIDS)Hs*ŽL¤b\ˆ¹S±øLÅ VUQFÞ_ éÂ=Nt‚¯Kï}ˆõ-äÐ!…#©!q±™<˜MŽP¯˜½DÜLp¿—"?@Ú" Íd1»ÄÕÿ?†$~V‰ÙY~Â0»ž¼nž¬Îçç­íBƒO«­8\®Ï>lî!Ç7âA"Dëš÷ÓÏéê_èF<\lZÛl[Ä¥¹ZüóÓ–Tœ l§ wÍØtíT&ÙŽtuIA·Cíaí§î"2U ‹©1¶}3{бOñ‹'-¦³‡‚éAp; Ø áÓb¹.VâèÉÑóv �vߌ¼¹IÝBä–¿§ÉžYó±ÙO„Ž%t×——ëar/ƒ´ I°#Õö¦³_(Ô-Dn©ñ{šì™ŸPãƒãëh𡂍ZœÜ ÷NÂè^ë:HýT¿xq¿5ͱÀ¦JTn)ÌÇ­uª¹Â¶Y`½áÁÔ`çTß¹ÁÀ%É.{£ðQá-+ûú}}+r«Ž+ÜD*|A Pw)HÅìÛ´8·Ó‚Z Щ]èì.pª'ˆ4ïZ‰ºo3ˆÛ áßëæb§6ÛùÕ¦jœz±ÉçJ¨ÉÀ Á:W{ 8)Ž8 .6b?sõß ÜÁdÏC~pdé>Ä*ä ž@AúqV–K¡Ëq3†H˜‹\÷/7§øÍÏÛÿF¬ßŠÒ"8Ÿ²HêŽ=sßáÜ;föáû2TÊ„âi¤:§q„WÓèuóW¬Ù¼µnÞ~X¬.¸r§ÊøÜg¿«È~àú™ç Ö‹eE¢šRx>köV¼­/L*ÞpÅ¿jñó ‡¾ÆÿÓ®zÿ¬MߨVëÖãïu«ðÅ’¿b/Ò´qÍ|_écÆtرw³ô8¢¿‡Ù´?SFÕW}áåõèï§Ëſٯ¶å¶%øî¯À#p*d¸»Àð›nt©*Ž\’Žý¿À"l1& åXùúÓ3³¸‘ ,ɪHŽ]ª±‹Å^zfº{gÛ–H%øé|ƇÆC! Óð±x¯ê'ï}- #5+m£®7fÔâ5#¨½Y•ŸVÙr™}@0µ³Ë*¡âùãÞ¢ñö1< nÝaÈ,Ùt:«œ‚컢Ïé ¼)_7’>î‰}Ç#×.Á¡.‚³ ,0`J=¡Í= ’Ÿ?CÞXJ"þi¾^É 1E=+0I[b 9²½Â8Z^U7Ì„» \@;×]”äGÃßN%©±2ºGIø‡Y•ÑçåuQwÌDïZåyžöŸ[RxÎÅšTxHҵζÈ]@ÆôñÛèÁ 0}iÖM—·‡A zÊtjŸâGåBå½ÇïrYÞÁ¢¼øìM§'ÞI±¸y ЕÑñØt.“gþîô6ƒàjÝ×¶ôËiOó€È?›y\5ªÇÅ,¿Êñ-‡w °tœ¤IÜîÄ-˜©³‹çªwDS5:×&©30ï²ù«€üʼÊ;hb!‡X k@\”|ÜÜ‚×\½YäroKíMÒ•'ssÌd¸¤‡Ã=Ô­û ¹Y“ö¤«å€ÈÑÉ¥þ Gþj0Áè]$xX͸Ûá&#³@ãÍ‚_,ˆ9”?:¿Ä+  ”ˆT‡¡çréâ£úSŠº£Þ@$»F£ЇB¦oän©þ1M8ÁÄ>Ö «ê¹ÒÅsˆ‚½ý†eÔBAí÷²­9ÑoÀ;(”å2¯Vó oOz¯ò‹Ê;¥ÈÿA6‡ÝØíCÙÞ·[wrÇsɦ³ãf6Û¾n†5š&î yÓ@ÈN¸g®HQ4â#†TVå•”Ow¬“j¼SèØ.+fÞt¾ZÅ­ð˜-`¯Uyý‰ÔVû—N°åÎÆQ¾…îSISô5o#MMËôõ–òO3#Þ†LÎh ø°‚ÿi¾Æ;P°4Wkz7/èÿ>”:pº÷ÚcÑ8™'>Dõuv‚ý'E¹vÁ+ºhuv%i8'LeWï}Rí¿%Hüù*…¬£½94Bû_Ðçdœý…¤Œ7¾Iè‘¡öKÅ_¢•¸O#šM¾Éä± ×ÚŸyoç4ï­_‡80y#¸½¢Þ=ÌC‰Iù1Â͇¥’Œ¼lÐùôz³îº“€ÒAkdípj=+›OËZÛÛËú¬BâdTr0b\´ëRÓ:eÒЩ[µv„Eõ®€*lHA¹ò£Ú¦tTþggó¨È÷³5Èaúnz^{¿c¢ÞÖj²Ìíj·ßÿ~ è'=¡Sq†S¢ýëù¢`kV4N„ûç=Èš ê¸9 ~¹¤¡¿, ù†{ c¼» }–7'ÅÎN:Ž“Î¿ÚAklm²%w³êÑ*`V/W¸+®¤6gØüƒKt„èøVvÂvºë°‡Ÿþò©—¨AÖʦ¿®78Ò9(²U5ÔfˆkuDÂC2Sû¸:º¯ýï…¿·¾).`ô‹òzíQ*0êQ‘ç¾P _÷.4•ûÞ¸xXäÞ©po.þ%¯D D!ÏÜüó¿ùZÂx2Nšy7§u—ÇÂ;¹VâYækï,_€¨òÙ u‡!¨Ûö<|)ýöûÛ¨C݇ÚDõÒ6qVï¦ _®ý Ü"ÿrE­Èô⹯ÅÚsÄÓçµ÷°¼^oÙÛÍÅncÆð×iä—”‚iÂhÊ“Âu?ZÇ=8G½))—‹ê:[°Y÷ó«ê’êä×i(³n„HágkÊ×þ¬‘|ºàQìð›ˆZ£6¬nˆˆnʬ1 ˜DÓGv\û/ß@çÜ¿®VóוpÕÌ#W˜wv)¯?Ò=7 Ñ „™;OHöùV« ‰T®5,iÆ÷¹¨þsö°¯ÞäzªáGÅü迯ªüËÈ2&®yÓ7¯öØ@‘Ù¥}‹è.ÙÇ”fø0µhïq@ë@J^ŠŒ³üJÔOE…à7zO¢…SžUxÈV3>‡¯œåôËÁ¢Ár¬J–ãSÅ)&O~Û=„\™êªèæ­uqŠ]œ"§¸§HâQœ G)æ#Pg"Hkÿ*o:ø<.™qج~Ñ/’à™nð’&xÍ”|ZûKq4ÝXš:–FY)d Å#‰{lÎ>1]S"p–o| KœõÓP ÔÎo$¾¯öBÍ#ä~à"O”È—Ôt©LO Hèð@5Ó$U@‰LøÐq2‚Æø²·y `ÂÑ—Ðó­s¬&:Ü¢%GFm²×i®”ÃýÝÛcÚ»'XrËQŠf¨¦¡3‚­,§$È#ÃHmIÀ¶Yät’dŠ9™bN¦¨—La7™BI¦D’)j’)”d2M2IÌã1ÖïøU±,rÆEeElj9k©°—®¨‚Á(ÁÔKê ¢ ²Áh¾[Œ¬h‰aUDkÊ•™ 2A'Ô‰”žY 5<%AúBK´_gæHAÂh¯­‹ÄÏ,½c–¦·f鄲ôèüÅÿ—¸ endstream endobj 163 0 obj<>stream 2010-02-23T23:09:30-08:00 2010-02-23T23:09:30-08:00 2010-02-23T23:09:30-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:EF37DC8A1321DF11A166B14B4D8AAB0A uuid:EF37DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 164 0 obj<> endobj 165 0 obj<> endobj 166 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 167 0 obj<> endobj 168 0 obj<> endobj 169 0 obj<> endobj 170 0 obj<> endobj 171 0 obj<> endobj 172 0 obj<> endobj 173 0 obj<> endobj 174 0 obj<> endobj 175 0 obj<> endobj 176 0 obj<> endobj 177 0 obj<> endobj 178 0 obj<> endobj 179 0 obj<> endobj 180 0 obj<> endobj 181 0 obj<> endobj 182 0 obj<> endobj 183 0 obj<> endobj 184 0 obj<> endobj 185 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 186 0 obj<>stream H‰ìWÙn¹}¯¯àcU.wrÞdÉRlÀϨc#0üÐi•åvzÑt·"çïsÈKÖ"·cˆÇ°©Š·È»s/IÎ®Š£ó ήv…0µsÌj[kÃšš‹¦‘x é½gÛ¶øP›?+&Œ¿ì ›ï ´w¬ÁKc’œíæëB+¦d ¹nãá%.‚åðÉÔÞ4<~®n}|6-ŽÎãlú¡ðA!óLÇX>] 7l:ÿn‹ÒTÓOX iAç~É¡jŸÙô´˜À·†ë°ö]y{{[™¦Öeýy±\¬«‰Æûçz¾YUï§/‹çS‘cÈ5 SBpÊAÅýŽ*+êÆr¦Epø]yö¢Rµ-Ï~ŽvÞ®ñ"˶š¨r;Ûo¶ì?¦æÑ‹.®àº•’Mx-D  Iª•%Ýÿ¨&¶Våy%Jn« \/5;¾ÞVn _,÷$þ+ ½ñ&Gü˜²RVé[S{HЃª»oÈ>ýĬÐÈœ5¦ÖL[6°>¿ý [#^+²‰Ú+¦MH>O¤8:ÝÌoVízÏŽ^höìô¤øeà®—ø Äl¤åŠsÏEàyv ¶|šÞ ¶*‚«\Hdm@ñ%$ëj$Ñ`¼èV-áOSïš@€ 4¶¹7)Q÷›Ñ®ÎÍ $‡ÌÜYgEëÚ4úk­¤UOæ€%øÈL/9dæ`¸±m—õUÒ)G8øÚyý8d¥É­Ò£IéÈQ.­Ð±rP5<µò¤SH¸¯“t‚ÈÆÉØ$… niîšê扩õ#‰GVJˆ4Ç£AÀÐ#Ý(-8\”@££9ªVÖŽ$zôÐæØP?©už\°û¢¿8ù;ZÙKt…O(máÙ-ã {ÅÞ½oØ%4¢gI9ÊK’t~\@æà7ÍJ’·@D”hU7>fOªZhwPÒG¤%Ú‘UCkY2ô M‹»‘OÒƒV!§ˆ“ë¨=Izü$rÙÈC’Þo¬Ò‘°¶g"Û$ù%ƒ9¦–V’ bûÚ¥ +Ñmjh˜èÁÎ#!BgEcÕèÚÆÙatš×Üè!_•Ãi‡±(‹9£è°÷+å†Âeä§«ÅÒÙêø Ô¸½Cì%wV¹qm耑£«CVˆ\SdØã„é$qlÓPÇ¡æ2›ÇPMC|š`|›¬õC Lð5HÂNÆŽô“0¶Mƒ±´Â EK:­$2¯Ècœ3ÒŠ$Áv8T PŽd‚¢R8’$§È't3òÉP^´$ F¦±ê¢à‚$)ìô=E­Ô6ÐMšáRZÓr—Ò,m7¦<¥)H–#I€fY|,ðØ?“"· ?›êÞR&œ (dǧtkO3¼J©óz4–¦[‘$B¥|D§Dê+>£a)M‚Ã8r¢IÙÖqŒs®Ï¤¢®¦7<o•¿#‘‘Ïát¬F :$ɫнô!å‹’ŠC+wqRðsE’XMÏ@ ²*Qıåd't™y\6Õ NÇ”fŒ9Q°<Ž94&À%Yåœò( Ùhª¸ÃôQSÛñ)1Ί›ò€¾)‡™ÂøN—ÂÞ"iåc#hИV^ý ³×@ˆ÷6tWzäEæLö2³ªCwÕM‘f^æLdæö¹Òxóƒlb¬tŸì~˜ÑÈ’W^ŸÑ×-"÷J“ªE¦c) •áðÉI—‘ƒrt|Ä-,¥!¥6—NlaØÀTî§T‹†ˆ/Í'æ!8aœw)?ša7Òà”½cÃ;7ð$ã'ÁAnAÖb´éh“s€qJš´@§´IOúñ7èªý¸¯’žf‚¦ÒT©I™¼€œ@í:Ö¹ˆÚÖvj_Ë\ë©%)Ïú  ½ä¢Qd?´íÔØ›t`L› e91Ô§"Q|4ƒÌ2ֽ̆ìEfKö2³©#ó-šè˜²éÚe Hi³©— ©iÎãa‰d A•5d(Ç1ÇIëù«“â—âèü‚³«]ñlZ)ÆÙôCî0¸4,¾Ä;‡ãŠMW¸+\á&Õà^Ʀóø8§·Å»òÍb[¡¿”ûj"jS¶²T~®pµ)'†ÍÖ—ìÍ¢‚ùr»o?O4;‹ƒ×Õ7Ñòü¸Bð%{v³XFù~‚‡*kV™òìÅÙÏPgÊÝO¬z?}Yàš%9@jØô”Üñ;œÜy±†7¦¼l¯Ûõe %ëèÊ>è;Ynæÿ†~[îªI7£{øp±ÇË,Ä!ËËð .ýÚÎ.Ù«ÍeK¦'¸¾‰pބߢ|Ù×y ’«ëe»j×ûÙ~±YÃ’À!¶`§fuL«~ÿ„ή÷í ]Sê ;oùc×í|1[²Óv·¸Z³pqÙnSIL6ÉøÆƒfí.ÛUÙnÚ#~mwí~¿X_±ýGÔ¶mÂTÜ qGÁïŽâ/wŸ˜$ß?úÞ7úý¾m“ùÎàéõÓðkä?Ó¥Ù%ÞlÖ€ïfsSéÐfq,Yl¼»‡1ÄãŽî/!ü¶ÓùgAwÀ‡*ðu»Û-V‹Ý~1Oõw³\ÆòùêzÿßQÔwÒ;ÀøœûÁ±£òêÛ²Oèl7WÛÙj5ûײe™ˆQ„g_®Â±I”!eã5olíPÏüþq1OÃE»ÛÞÅbu³ÄU¥ÝÄKÌM8`ªrGèïví6l‘ló!žn» £Ê rv¶œ]=„œ4¢wýùò¨ôíœIbžq }r¦ÕÃðv»¨ÂÅssŸ([v:ÛÏp¹Yïc*ãá½—=˜J!b¨ÇŠàÏKnû´”‹¹E·#$2]´û›ë˜Ý¿m–—lºX¥£Ù›Åf9:ûn6ÍFݱòhž¿¯.ã=+ïjÓƒ`»ôÈ»r‹]¶4•DQ…#yè<³xdþçæfæ•*¯ÖO‚^9j [•ô”2+Gëzµ¹l—»pa{ð 7Vøã ÷µDñEóÚ¸1Q&=fïÊãëëv}¹ø¨”ƒ%¯Ûí‡Ív5[Ï[öâÊ3A±J\16å_\iØe¦; ¹¡%™9™UÔ*,ìÄ“lŒ Mô,ŒÐ,ØÒ\Ô’ (l L6ù’DXŠ2 Päy††„#ÎÀDÏÌKÂ3ÞÌ4œ€±æœ_”ªlð¥³~1Q±e *má刡 >stream 2010-02-23T23:09:28-08:00 2010-02-23T23:09:28-08:00 2010-02-23T23:09:28-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:EE37DC8A1321DF11A166B14B4D8AAB0A uuid:EE37DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 188 0 obj<> endobj 189 0 obj<> endobj 190 0 obj<> endobj 191 0 obj<> endobj 192 0 obj<> endobj 193 0 obj<> endobj 194 0 obj<> endobj 195 0 obj<> endobj 196 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 197 0 obj<> endobj 198 0 obj<> endobj 199 0 obj<> endobj 200 0 obj<> endobj 201 0 obj<> endobj 202 0 obj<> endobj 203 0 obj<> endobj 204 0 obj<> endobj 205 0 obj<> endobj 206 0 obj<> endobj 207 0 obj<> endobj 208 0 obj<> endobj 209 0 obj<> endobj 210 0 obj<> endobj 211 0 obj<> endobj 212 0 obj<> endobj 213 0 obj<> endobj 214 0 obj<> endobj 215 0 obj<> endobj 216 0 obj<> endobj 217 0 obj<> endobj 218 0 obj<> endobj 219 0 obj<> endobj 220 0 obj<> endobj 221 0 obj<> endobj 222 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 223 0 obj<>stream H‰ÜWYoÛH~÷¯èÇ&1싇ßr)£fmD^äa°ŒDKœH¢ARñÌ¿ß:š”D9¶£(É`aÀìK}Ô÷UÕW/ß4±˜5" “(KE(I­Q¢™m.^¾Ÿ*±h.œÖ„0ï"+6êââöæp*³8R4§Ó0Ò<ùúæâåX %nn/2ÜXdÂÑ øùÍú"‚à´ÈÄâfv-­û‹?äxŒ\ËñÅûbƒ­Lü$“u0Jà“s¯­|_q˜È/1öbªà¿7ÿ‚K¾ÄËî©ðÇÏÓ6Œ5ônÞòM”£›ð%îïïƒ8 ÿ*W%ïä_á¬ZÓ¶ïn.tC©Ðph,`ijÁz6…}±€3h¡+DxªL‚›?w—9Z'b¤B­w7Ìp-5uÊ÷üÏ{ŶIœFh€Ww`…†+q –+á—dÜR¾š»‘м‰ü-L¢V‰ØE¡±tU8 öXE„•œÎ–Å|»*Du+Æåb[ ¿Ãúw7øéØÐ`ñ4ìiöŒ€v8ÊP|­}ú$·õ»`¤‘R$OàÁC{\Ïl¢á®ëâ6Ÿ—B¼úTm[q³,ñ~[Î Ú:#êL¥È$ú]Òix‡7Ëü®-€9:É€$*0¡’°ßdÓÖÕ|;kËj³·W œïö2ý^Ép¯4 µÔZÂ^oªºW_ŠúKYÜû7'EiŠ2Îd{DQIÿlëbÊ!Ÿmhäîl¥ºô;{ ÚЩT±›òM Ádu¼¼}o™ÙÙtqi8° „%%Å}àÐÁ ´Ð\b0Òì oÍ‹»Â·x¢Ø´ú›¬­fŸiª •K1À•Ê /Ã!”bZÂÊï‘㯚Ãwi Ñ+Ú»1Fƒæ ïˆç`ÿ÷‡î= 29C€‡?Iee{TÞazL"¢éˆI ¨ó¶Ü,D»,ˆKÏ Ítˆæ) ™A!ÕŸ+>í÷¼DD‰±]LyŽ2C‚Ó”àp<çN@Ô”S­ÓY]›Ã ‚qOÙq!ë¹àOf̲{ÏX2 ÑÉ ¾áÈî,3R}ˆûH¥±²˜+]Ô‡¥gb­Ï.b.®Á‘«š\{ ‰7‘9;3øöÕ]룇¬x°!B䛹x›·9]IÙP¥ ú3Tªò Šëª¦°r×ùº·i°£E*Áòˆ* ™¬K÷¨r” vÆO 8î= GˆÆÐ3Q¨¶“Ð3ßÞѰpKŠæ<ÍvÑØAäcê¯x2_4/0ƒÿP¨±šeþ™|:–‹øôœ;sñ±w²®jžlþ¤C#gþ@”¸¢îÙ–Ô«6M ÅrøÎh;ñªû,ìöaD¥g”®u8HÀKÀÄC` ×Åir0öõC”>Nÿé12€Ij!v§éΦî­è‹ŒuÉ·Ç)8’âÙCœOÃT·Íq?ßî¿jøÚh˜ ”¢æÄtŸ êôqœé<µþûÁp–„©Êž€öü×cü´¬6)­^è>Y“Ù®&{[4åbƒªú¾l—ß"­M…F?-­í™¥õ¨+qøÆ;c<ÆÊ Šæ45v”i%6bÙ.1Ö'X Í¹Up½u×÷bèõ“þ¶~,Ý‚QÉcEE[ŧÍ0ë|n.E§Ø»/ØúŠLùK~¬Ë¶(ó`؇A¡åsñf5!޽­ÖP" J=Ø7î³ýÃi1$Í·Ï¢ã^÷!)o²GR ž¤Üó3¾ýBZï*ÂÙí†êÌY€ ŒäQò(_QCLÖwÜ*úu±i©ŸóǯG±½AƒT·"Çïx2¾âîy P„ÊÙ I»´Ûï®èú|Ðâ-÷!£©nJ×X÷„ÐÚeþqZcˆóB|Q£» ° €èD8ΠŒ¯·´aÉ¿kG¼nãAñvuø 'NöÓMïhÝ%C†r™Ó§ø†]ïùKØÍ@lÚ#-ê;uÏ×böëŸçfo*p½ÆÿTS:=ôŸb0XkÛðF~í"Àà‹/†pœEÕ‰:²iÿ¸HìcáëU€õ l`HÙå‡W¿ (ÄÞ–4Õ´57>m[úóƒ¥Gá7˯þïH6™q¨0 ÄásÕG80…QX1…ãŽÂqOá˜ë>ÕQ8f ÇÒ¯ç:dHbÈí@cLÙ‰äQ4ötŽ÷錳DhÛ:îV/hRL—õ¥˜úŽKV¥#7­Ë÷g…﨎ýøTĽŠ.Œžb´/ÈÑ>’¿åœL0× ýš%óÏü…r’¾ 3¦~» !ü,ÈR# e5ÌŠ¸¸ö™Î¹Ñ‘7Ò0fG×gGÞ¯lýñœyá†òœ¿_Á{݇×.üEZÞSd ép 7üufÏœ:SÔ%?…ñYù¡ÎÌHw/7zG,GXŠ$Dü"=ð[nø»À›XÊ.S?ƒ#ŽB?X±Ni¼fÁ…‹ýö¤VyxÂ5k'0Þ=ïS¶þdôZˆ€ô}Z„u_s±ƒ?šV«äÀãÞó—0âð0— V? q}fĽ¾&¢Öì- ¤u¾f_ZÓhþiEÒ¤ ;çxËüŸ†¦%#‹n)h`q³¬‹fYñÐüŒEký0µâ42Ó¢m%’#ôÒC {„ÞÙQ™J¡ÈœŠš9j_Iš×ôÐ1€¸fÔ0jbäŒY*ù¿¸/®HЯš¦¨9ÇR2‡¡¼SN¿†$¿-cдœÓÁ …èKñ*€‚ö¡ÄÝò Š ,çgT4é í>¬ÉLÙ´Ùö {’’.—nE‚OÁ0Dì ø€”´=é±ÔŠä,wfµm7Ï–F.Ÿ¾ FpzÚ¼@®<ÓÈi{Ùæu|ê@Ëæ`,ÀÜèBFUé!tc ”Ʋ¢åœË¡Y8iÒxF”äâe7—Z?ÙŒì°WPŠ<ëkÞùcà-f6nž¸~™ü[È ía-½d$¨™8ù{ÂÏ:Xh$`tbÿ˦“M›¿µæÌ:v&თ *äy·™Y¡=S`ч¦^ª[jR¶â–5')»oyÍ=d1Ú ÓcJÜÍ‚øþAC k&kä^ËÝ⦑”ïã‡ò™)ô1‹ã©,†'©ôølqî ó \&>\X5¡”Ý‘»Pð§é ÀŠK»›Á×å~uznȈ„¸ö–vÑ`K¯¼Ä€^½z¨ehÏÆ¦Š·su^Õ꫼dÇ QÔH`çǶ’l59Õ°,,æŸ ’âôNO–&Z{f1”—=½z¨t=®s¨±‘W¤Þ¿aüüc_÷ûNݽÖ+uÓ¬ë›ín.z•©N‚û—ãWò‚>?Eß#­6*Bã-R `mJ=ت]=PmôñSçÔ¢SiR¤U‰%³84°)Ý¢¥ï »“¢To’#M2§^# gËQ£Ø·ßÎJ³JE…A˜ÑKtóœoqD?}«äŽ&íšþ7ÊJ9Ô`êkðq±n–{è¿í‹âzœé’U ¬.ìÌOsM‚ó endstream endobj 224 0 obj<> endobj 225 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 226 0 obj<> endobj 227 0 obj<> endobj 228 0 obj<> endobj 229 0 obj<> endobj 230 0 obj<> endobj 231 0 obj<> endobj 232 0 obj<> endobj 233 0 obj<> endobj 234 0 obj<> endobj 235 0 obj<> endobj 236 0 obj<> endobj 237 0 obj<> endobj 238 0 obj<> endobj 239 0 obj<> endobj 240 0 obj<> endobj 241 0 obj<> endobj 242 0 obj<> endobj 243 0 obj<> endobj 244 0 obj<> endobj 245 0 obj<> endobj 246 0 obj<> endobj 247 0 obj<> endobj 248 0 obj<> endobj 249 0 obj<> endobj 250 0 obj<> endobj 251 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 252 0 obj<>stream H‰ÌWKsG¾Ï¯¨c÷Æv«ÞnHBŽ` Kcû@pÒ Æðhd±ÿ~¿¬¬êǬðÚ˜ˆ5Lgv¾óˬj%nG//”¸¹_hßÇ(‚ ½óBöJKið«MJIìV‹ êkëH`þöèäÞ‹«{0ƒLQH<È­Qâþj»pVXӃ金²<Ó+ß'/U~§c/5¿<^.ŽÎ´Pbùa‘È HÂe ¨/oÊR,¯è¿ÇEÛåÏP0¬0„ƒ¿‚¶½GÌbyºè›TŽtß6­—½kúÏëÍzÛvÏŸû«»ÛöÝò»Å‹%+ T(xÑh‘œ0ñå@mнŒO ך~Ûœ½jmš³7ùG¼\mñ`šUÛÙfw¹¿Û‰ß|¯rC^z0Ftª×zÈ­)¦m`Û?´]èmó²Õ m‡Ð'žÚµòà¯7B%fÿShÉOJÖŒÿG3MNë(7Ù'G ›ê†wh(:;yõ+:¾ ‡Êï{'\†zýÓ?Ä–!Uo5À¦ûd…óT|U@qtzwõp»ÚîÅÑë/ŽOOßOÂM˜Ò$¨²JÅ4p® ç5€>$àÝLA‹Û…ªŒÇô߀CX·3Žâõ µA<²÷)Jš`"ß*ùR¨/»q±×1MÝL8O¹ùrfƒçz/ÝŸõR´þx2O¸A£´š¹9O¹ùd”°ÃPõÛbÓÌúú˜ÜŸèC5ZšZŒÎU&h—סTé×ÙÄ6µAø®X0d@öÑä%©#…åTDjv!Žï}H3NÂŒp¯¬ÖE&¢G“„aÇÄY _ yÄÌŨg2¶·!Ì8 vÜÔdMãOY'âKÙ_œü «ì;l…Ÿ1Ú:‰G¡¤x-Þ¾“â±³Œ™Õ¥p†8.À‹ˆ[ͤ g-:âžä8ÛË”«gl¯]|’3fä ÖQ°So•3 KKÅYL&VTSä©\¶^8cÿ j)ÍSœ1nh¹ Ø_2úŒ6ÃqWÎDÆ÷&¸§8“Ü~åuiIÛ]¥…‰Ü)•A›‹Õakû¦Ù9Õ+ï¦xµgd˜æbdfÙáì·6N1eg죟å2øðŠxì|½¢‡8K´â|6õHÏ»ë¨*Œå83œqÚœL‡BºL:e ÅUV€iæxHEÀ§Lûjóà žb%tDG6 ±Oˆ²Ð@,km™Øf0ìÃTJãžQ4 ÇáÔ€Å8² ÎÊâJR‚☰Í8&Ïuq†=xSh;d¡4sJÚå}ÉÚYvèBuàd‘ˆ¥¬E=–2›0Ь J™ˆ³™q¨5›ÅÇŤ=aèŸ/™‡Ò¿Pæ>p%¢fö“J¹]b‰dKé’›ÑÆ…£m‘P3ˆD«Ë^Iµ«!K;|ä d©¶Ë4‚Š·.UI>ØtÀ1Ït;¶³=Å©ZØ^î)׋‹ŠK«ŠYˆâ¼eNž&ƒ_+U¦IÔ™ŠýЖ¹Êt¨GG—%¸Ì CPj•i‹¥á†½*ÅuÔž}ÈÄÄ7Ã@L;“ð%Ûj!”*Ž>bŒ³(R©]vŠ‹QŒ1Ú|ÂŒY §aÀSA\ôœ7×{ÓL+ú`Kál1¬Áµíõ¤L³÷k”à~ޏã£7ŒGQ1S£¬¨ópÃts¦—µ¹c­žÒ¤š ­‹=’µ•SÚUõk7ç³Á F×]éË´˜²c§ak;R 2–BÔ¤"_ñVÊPJ[G'¯0`¶îF™¸ÔZ2ðµe º1O›Ct=¥ÒL"È8³m8ð‘bœD©IÀ ò“$µ“C¹ÚÔ€®2¾(¸R6“Ø>þM¶êHsÂtF Í­e4mYR¾*p˜Ý(†1Û.L2Àì;Sg½¬$›ÄX¬—:4–ýÓÚ.‹]– c9l¸ÊtŰ“>0]†Äª™w²Z¨½}T4Ô(*Zj”Mco5ÑÇR… סJ€@)[(»\7)s¥§#R9ܪj¡¶r>W¸i½x}²ø~qôòB‰›ûÅñrqt„Ë ú†Áùß (º ±[±¼Åç >¦¤Ä¶^^-:zD–‹·ÍÙúæa·¶íà·éZäרÄÔ³öÝò;8±ì ¥û¹ËÓlÍ1If!ÚåÏt,)qMñ,˜ QÒñìÖ>Sm‡í؈Ö7ÏÛKª¹o; ïŸÈ¹jV-T}sµç—,º_Ó›ÔÜ=§•u)Þ0s×vè]s½â»"»ec7óL]Sèkµ¦‚ÛL sœ} á‡ìêIæSÔ_ø.ëO§5~},ÙptøXU ëTîKÉù‚AËo†\`WKo[.5rÄsrä  þ>­Ž°_£é»Ø_2wßjtûá^œm.oèÍqÿX~[ßíšz/õï7ýoÝÖtØV,/í¿¶­êÛ¶Çùà6²[4k{}¹»ç+ò¥›ËkñæÓjGÝÜŠw;‘}cK9úº}ºÁ”,¹Ì-ÞÜ¡"¦¹j¶Å/âüùk#ïZ\’šõ/u³ïòÏzKg¯Î²Æ›ì¨’ÃÓ9Ê‚ƒ0àÀ°»ÇWŸfM@ÄŽÉÄGZG±?ܯċÛ÷«ëëÕ5¹8_ݬ³À=Ë­v÷Ä~±½|¿aÆõ ãﯿˆ™ÿ;Lƒ<€©J½’ø’ú:˜êo S;ºµÅíO¼wΖgGÃ`õ‡`e¨"5AªAï èwâ2›¹ø÷u±Öæãî®%“[ÂPhî°¶ŽÖGx¥Ÿuþ[pŠ‚j\øpZÑy–e_µØêÍÙ› 2ñÈ ÜÌx'”î2 +R'0"ôœ¸8Hܾâ`ü»¡P.Ke)¿vYšo‹B=n8W6Üé›–èÒýj/~¼Ü< \ò’üq½Û¯>w>ÃêäîöxÌ› îÁ·-5ܶl¹mÝљŎ²ù…(Õé)5› ¥=]&Öäa[i“²…W¼Èº,‹Mˆ)Áy©ÁùÚ\_³ÎªüðX5[¼/NVÿ}6ëhj)'e¤*vVõ17‡ ζÌ_Y2öÛ¶HæËYØR Žqrar—/ÎÏ©¨—Û̽§Ç¯p†…fIq¸æEfŸS·Bs.hÄSó@ËÃ4ûOùåÃ>ñš-ˆ<÷€©‡Ž<ªV#^®¶´Ä² À@aAàmv«ƒÉ½2qzi×ÃE­b#Gó–ïWyøÊã—˜yMÞOAÌ£Á—“×á+öö«m·m#ˆ¾÷+øH‘ÊÝ%—dÞ,). 4°a)) X‰¶ØH”AImý÷/¢EUd$@ò"í}—3gæœ Ï] èº@‡½)!i÷ðí¥sU°+þʦöP.s2AÎÄÂCÃÖ03Vg”OC‚FénÏ[ç¼Gû„J)÷AüsÃ:—7¼öW¸è¸Q³ÔïPTŠíÄï§âø ªÞñK(cˆL7Cª@°æ|{æhm’± XK®¦IZ².¸xû z!÷F9­XoJ/ÂÔ†ÚP„è…¡lpÆs^x¿!¹úO¾¡îÜó]çrË×pG@¨p‡ôšA ÍJ°,Б›>HÁDÛ"¹#{pü¥ø¦À&´@ÂuV¼øú„3Å[PÚÐD‰I„×ÊŒÇb¨:ø†gåÀ…‡EÚºu®AK]óÓŠêÖáBæøð­;p…ï"u®G@óE±v±kû&OÑ÷…]UcWµ±vM]Õ`W3v•`×VØ5ˆ]-YR nM[ëÊA nUƒ[ëÊaˆ[[ãÖnëoyýŠJKðÚDÎL þw®‹½K† NÁrÒ8Vun@ð'a»d¨Å™TGÐÙ$Z÷ƒÏ.a°šgÀjT?ñÍ©‰6þ^Àº+t\a5}`|bN|¢ŽJ=”¼‹-€èâwÄ,Ì‚CQßPÝôõK5Û­f1ÊœÚäÅ´¼Fl‰$ò‰êMþòÂi oå¾r.ÖOÐ-X¶Oç%ªîbµ]K•7ÈX³§˜Ôb÷o˜Íy+ÉóOú}û9Yw¾(WFû\©NÖyFŸYä×d$‰wüÄtSpŸ²#æ%'úÕÎäjËÿâ=Öè¯aŒì~Ék¯xçå5½`lµßòY£äÈgÿäx0¥‚ÁÀ+–ËU!ƒH3(¦0IvóLü¿ÚéEï+ý8Q§"Àœ¦†€ic d7Lj´9c a Ô“Œ¸Kè›!£ A@7bc½ŒÛYP‚žñ`†¡oÜǺA¯¨&år%i¯£¡È—gÊã?:½jݺS BÆ¿ß~`ß©ÖO@Ye…s‹§î\¢ÝΊ=@&Qxø¾öùú„—t O÷ý88‘ðLð#H^,Hjü*ÁïíèÃm/ ¢Aýˆ…Ób!öÏ á™Å_s­•kƒÒðh3.ÖÑr‹énÌ—9 »oˆû¾µæ8|g0b'-qQƒ™|‡[‰ï˜(ê[ÐNK6WXNxk8O7d#ûnèi8þµãŒ³iž.œQ¶Î VÅ:ŸeeºÉ¡Ewú8QÇQ2?ª6Ý££r‹õ0wàáùr»€£ŠçÕ¶¤K¼À}(èàÉÏ’IųY1ËÿÅcðã/à„›¬¼_•Ë´˜fÎUAM|Yëa‰ŠÛʱ{upÌp1p“–é2ƒw>ó]uJßß?„ý£ëw)HÞ§XÑ"€kìJP&ýÄ’K¨¡´BÇh ¼ËV®Ä넾»ŠÐaO½æ “PúÖè°aœ0ÒÒ |ì„ î²UÜŒ®¡³.|‡×³nû[ÀªÎø©ð8ï+â¬w›:ìÎÓ×B‰e‚$h]U+¤ÐHðߎa³r',÷ï<¸Xƒj Âaºª¾b:§>ÜÕ\!pû'wž0ކ½6T]Ê1.³‚ï{/Böµï–X `éõVø( œÁ‚Çñ3#`72ÅÅ[ú¤ëli ^ˆÝË+8Oj”vé+ý\Ь*Ë>üÊO{`¿}úäW`Öˆ1@Où{õ&øK®y$ y$»ÈÔ{ÈŒmÔÒB™¢µÎ¯5“‘P!Y÷šÿÞ‘^ÆH€›ÖòHåÖbË…_V¡ˆ…vÁ£Ó9ÿ—«áx;te'¿Md¢6ÑõׇAåÐ:P°Uá/®Y*ªzVéZÉçëM™ÿ¹Ýd³_Æs ÉœYò~ã †8î1» T¶2êóüRð|u|‚s,¨›ãñiÎ…ÏÚ[F·ð2>CÂgTãS >uO-øŒŸCÂa€iˆ”Œê^é dK¾àK6½¼…Þ¨*pû"%ÞÏJ0gMò’˜øLBIú=u´Ã‚/wמ©ˆòx‚¥!ù‰¶C²£Æ9‚3ˆ‡f.AX)Ì2 }nÉ’‚iÈûÐc8I$WBñ$RG­sIãW0®öœd`q¬>夯Ž;Æ6@Q6ŽŽ7vx&cw3Ycj¦ܶ ›"ÌÙ¦Ôª4d›R¶ýت–0ºþ_¢,Ÿˆå¡ÚåÔÇ J H£ô¦oR'­„Ôiûûü —­²õ‰xBù`u¶ù›ÉOÿ 0xabÙ endstream endobj 253 0 obj<>stream 2010-02-23T23:09:32-08:00 2010-02-23T23:09:32-08:00 2010-02-23T23:09:32-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:F037DC8A1321DF11A166B14B4D8AAB0A uuid:F037DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 254 0 obj<> endobj 255 0 obj<> endobj 256 0 obj<> endobj 257 0 obj<> endobj 258 0 obj<> endobj 259 0 obj<> endobj 260 0 obj<> endobj 261 0 obj<> endobj 262 0 obj<> endobj 263 0 obj<> endobj 264 0 obj<> endobj 265 0 obj<> endobj 266 0 obj<> endobj 267 0 obj<> endobj 268 0 obj<> endobj 269 0 obj<> endobj 270 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 271 0 obj<> endobj 272 0 obj<> endobj 273 0 obj<> endobj 274 0 obj<> endobj 275 0 obj<> endobj 276 0 obj<> endobj 277 0 obj<> endobj 278 0 obj<> endobj 279 0 obj<> endobj 280 0 obj<> endobj 281 0 obj<> endobj 282 0 obj<> endobj 283 0 obj<> endobj 284 0 obj<> endobj 285 0 obj<> endobj 286 0 obj<> endobj 287 0 obj<> endobj 288 0 obj<> endobj 289 0 obj<>/Font<>/ProcSet[/PDF/Text]/ExtGState<>>> endobj 290 0 obj<>stream H‰ìWÛrÛF}çWÌã`+„0w o²d¹´[Y‰ŽR[)š%¬y[‚´¢¿OwÏAR¢$ÊŽ])–„¹cЧO÷飓Ҳ^É’Ø%YÊh$.ÕJ°²7n½»ì¦lÍ´ŠaÞ$š lÌòÖ s8eãÌ&‚æd'ÒO¾é´ŽÎ$¬3hex0˘¡°½3j%°¹ oK”e^ [Zw­ßùÙyÔ6±ågþÉÞåcle<`KÆgQÛÁ£ë{óIè³ÈÆŽ±Ø³<Ñ;ÿ†K(‰£å§ÂÏžÔ±•Ðëœú›C7ñ—¸»»‹lÿY z¿áƽɈŽ}ÛiIC)“ðRË`iªÁz:…s°€Qh¡5+$øVžEÿ­.Û6&ÖÚ:Ö±”«f¸–š2õ÷üøNxÛ8â6àx öh¸,²°$‹à–ü'&}7I0Q¸¥ É@ÔÊfM+MW…—&V6¼ž_õnóþb˜³É€uºŸ†yé?C‡Ï×ð_Ž )àÑ8QÕLG€µÿPòxgûù“W¬¢¶D_à,{ $­€0•#`­÷ë,t{ùÏŒš,æ¬s[”ìÝ¢èçttÂÚ2–™HÑ™hŸ«°Tþ„“ÛîtžƒóH—ŸˆHÅ‚ÃyçãùlÒ_ôæÅd\;+·_ž¥ª³\ó¬4‰%—‘Ï„³N&³œ]|Ég_Šü.|³Ûæ,BR 1*«yK`hhÿ‘Ï1Ù?¯ùŽ!¬Oíu/ãŒù•Ư†×"@@ïóÑ$Ò`‚Ù=\˜ZãAOÇo"d$_̺sêa¹Çßäã|Pø‰2|\¸‘€UÒ¨Õ•dV™L÷_ºr“5z[·õ^¾à ¯\>À‹á)Òu@ÛÀw€Ac3Iå,;A”/—é5\ Æ$ÅÏ#ð(H*)öR XÞ@TT€h”rGа !"qòÙÞüßñ¬‰¸¶ª½W‡A\®—â„·]âMhãÝmÄÚEm)hº$_ð)_€G8>uýºû *«Ç¨üƒà+Eß4NŸÀh}|AVÉ.ø2/ó9E^vWv(uPöfL½îÐÏ 0:ƒ^dgô\ù(²T>RùèT>„luúÊ÷€¬MïëŽûˆ|Aøt¸ïƒ¹ºœN|VîþI5”¨'W<ôt2ê†ÍÚIÄéc¹ö«ùŸvÍÜ ’(s{F } "ç¼öÆ«Y”>¯Ã”(› ã|4…«J>ÌGù˜Zs43Ö ÅÄ´qÀñ«iÞ+EJvµðû¦“ÙÜCj [eµ< VåP¦A’ÁÆ+eÁgåœ4q›þ_ƒ½ZÌî<;#ñ!.–aQ2¶á·³É‚Œ|sÛ€]ÅRØÌ_„^/+£SÓUQ›$GŒ¿Ð^Þ:H˜*âÃÈfƆnA)ì‰é«•%TWê<¨ AõÜñÆ÷smoÜñ¥ÙÕ'E”×bêÏBœ×‹™Ó®é"h÷ §¹E¨[6‹PÿO ä×£§Ý(U\¬2±7=Sª¨´‚Ò¦Þ oJ’L^ÌÞ“âEYÔmÔ¶@ŸsIâéÓcÒµè ~üM\|üÐ9¢Ø¼œ^ÎDmT$¿?z/ùÐa¿uiv¸È7t±zLï¯}Ÿ"톱7C܈&×ü3»<~ÿ)"ä®YAO ßÍû>ºøuh( ˜–ŽÌ#VöYš'ÜeÒÕm1˜ÃÖ¨­–ï‘îM]Ê€¨™U@Š:ÙÙf }ö‚eo%ßà•˺+gN7œt¡RBíë¬éËuyrˆè•/Æ ð ã³>0‰P-|§ôzŒ?-ºÀ‡æÞ‡1üƒ³ßP¡ÈÅ m¿ÑÏE¸ƒ í±7a¶âˆâó¶áÝõ÷¬‡~Û$}0{í¬í¶ABë½sBöZìêž"Á˜¥FÍI²BL#CdYF)ŠDØè†‚‡ýêwÝå³¶ß1õûC¤J}¤Ò©Ö1€‘Ü£GQyMØÒ¤ ›…J7`«ò“pk°‰¤‰›©pk?8]áòßõ ?PcN6φ™o’Ê:£ïzËw#i‚™}œö NTÂoär,‚ Zo:`8Äœ‹3¤NÂ| / ’XÜ#ðoB[á„M´æUï6ï/À×&Ö‰„ž¨(GÁË¥iþ`Ñž endstream endobj 291 0 obj<> endobj 292 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 293 0 obj<> endobj 294 0 obj<> endobj 295 0 obj<> endobj 296 0 obj<> endobj 297 0 obj<> endobj 298 0 obj<> endobj 299 0 obj<> endobj 300 0 obj<> endobj 301 0 obj<> endobj 302 0 obj<> endobj 303 0 obj<> endobj 304 0 obj<> endobj 305 0 obj<> endobj 306 0 obj<> endobj 307 0 obj<> endobj 308 0 obj<> endobj 309 0 obj<> endobj 310 0 obj<> endobj 311 0 obj<> endobj 312 0 obj<> endobj 313 0 obj<> endobj 314 0 obj<> endobj 315 0 obj<> endobj 316 0 obj<> endobj 317 0 obj<> endobj 318 0 obj<> endobj 319 0 obj<> endobj 320 0 obj<> endobj 321 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 322 0 obj<>stream H‰ÜW[OI~÷¯¨ÇîѺ©ûeÞQ¢™ÍÌàl´Šòà5ãÈÆ%ûï÷«:U}C@f"LPä®Óu®ßwNU v2Ú{}$ØÉÅHÚÆ{æŒkŒe¼’s…_©Bl=}IW^k7 ßîí_X6»€ÐñàÇw^+Á.f§#£™V ä†k&âCR‚çøÊ6Ár‘ÞIßpI/_NF{‡’ 6ù< Ñ Ì¤PŸ¬FÊcxál2Ãrr5ª¯'_ §H¯ ‰ÔEèlr@ÊÂDåÕÕÕUmycªæÛb¹8­ÇÏßšÙÙªþ4y;z5Aþy†B9˰Õkä¨=Lܯv²á~3OÑÆ¸cÄ«Ã7µn\uø.ý°×óS<¨j^uµž^ž­Ùm#Rm^1t§‹FÊ6—\ôÝô$›ÜÜžYëŘÆróP/YëþÉlp ¤¸é$›ÜÜ‘Œ ¶k«¾Ê6Õ‡Ðø`€C1šÃêíšÊI“¦¢Uã¯ÑlJ…ðM¶ ¢MÙz•f¥ô1,#Ú”|6·Ãm›P|ÈçRO½Ñvñ£-ˆ-QÑϦ·®óâÀüÑ-¶-˜æ©·ØîŸer˳Ì>›~Ûå³lŠj4÷Ôm'ϲmQñϦ·dG y÷i¦á;ª Ð¸î ½¸iø^§ýpJJó¾p†§Þd»š©íN3͇Ð ñs–„u°L#1…Ò¯v­ wù€ÛìCF©O½÷vò€+¨ÈnûÔ/ô8SÖ765KŠÃ´ŠhÿÏéùå JÏ+S£"ÕÏŒÏg‹é’Ì/'§lƒq<88Ca¥w-ôüÆpéL»€^²5"_¬¾.aêô„ýûìë:9‰ FåœüDø AV^œŸÏOߢƒè^ÀÂoóõç³õjz:›³7§é±…ƒ ·集lõföÏÖhûézºš#΋!ï)bA¥1*ÅŒ.fíñ]Û_Ž‘©©Àø=@G­{ãྌ­—\‘Ã7‡ïº°#C& %*<­d…®ñs‹k¿ÉóÇD®>Ѻç‚›Ïw¾¼‡•m]ÄFˆŒ2Á¿ß R¢lÛ ¶&BmâÈ>8rðîý„ý1¿˜_²M—˜ “Å ÌM®^MFÿ`»V‡Þ endstream endobj 323 0 obj<>stream 2010-02-23T23:09:34-08:00 2010-02-23T23:09:34-08:00 2010-02-23T23:09:34-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:F137DC8A1321DF11A166B14B4D8AAB0A uuid:F137DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 324 0 obj<> endobj 325 0 obj<> endobj 326 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 327 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 328 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 329 0 obj<> endobj 330 0 obj<> endobj 331 0 obj<> endobj 332 0 obj<> endobj 333 0 obj<> endobj 334 0 obj<> endobj 335 0 obj<> endobj 336 0 obj<> endobj 337 0 obj<> endobj 338 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 339 0 obj<>stream H‰¤WÛŽÇ}çWôãL°õýì•VaÇND#‚h’»¢Á‹Br½‚ÃyÉßæTu÷LS^%>pª¦».§NU÷(ñ0{ñú­癳ÂÉK%œ´BÇAjqÚÌîg_.f/î´Pbq?KBâ—„ã)ŠÅ~&ad.)‹ÕŒžžžfﺻ7ýÜ ¾»û6ÿ‹×›=¥nÓcKêNý<ào™¥Ë±È¢÷Cè~ö$ùnPý‹¯„ÉA¼¸={±:s(JœW‡™¶ƒ×/s$Êq$9ˆ§§§ÞËÁuÃÇínËþ]÷qX÷löÕb¦TQh8õK£r°vþ@Ȥô :÷N©~ñÓõÜÙ!&cÄ\ ZO¡&Zœ÷Åð÷¯U)8ÑÏ ‰/>EnIá»(KRp»¡³(•¬I( A"@D=ȭɈ93 ÊÖPì€Þ%d¢Hà„]}*€ÍP…ÞPÒzdÉ‹—ÇÕã~s¸ˆßÜFñåËÛ&¤Äå ê4(«Tä8À>MìSb+`˜"Á¨Á8-ö3«n0ÚŠÝÌ›Á&Ó*•Õã–"‘ƒOQR Q ëùUÉ—¼?çB‡ÁDÕ¸˜Ϲø|FÕƒ†™þ'eËïNâ7.T¬ ‹Iñœ‹Ï'ä`P÷Šóþà1,¬ýýÀW‹%¢ý3!‹W!*´£Ð´rÿMl0¢lÙOF=$BÙQ—awHƒb¦ò{È0ý$G…>\ô>Þ‡A7)³'C£¨Ò y@FévA¢mh"›&X]C™e·oÅç2}{û –¯Ð¾?Q—'¡¤øF¼ûAŠõ,¡ˆ˜#U#x;KvpA5KŠ<.I~°!=£ÐjPø©¤¡IõœfÊDI Q¢Xu4*ذã`^*›EJ˜™GA±éª©¦•LÎ3ŠÑ°RÈ[ª+M =³I¦+Í´FS Øç4MZ˜ MÄ|4š†i ÇöMYæ¢jE:XÍDzoÛ(>À®5ÕKebuKPeÌàMºÚ…½jÃË«²†sãY…:e°V–eÍÞ©}*pºPàñáJv¡¤jL*+tKø(«ÊS2€SN_ÚPX“á‘€)ïà6Ð’ÓØå"Åx¥m†Yò1ÑBô©¦Ý•ù[.ÖÉÓ*‡¦Û³Æ™¬1‰’D£ϲ6‘åÀ­ »2Ó×¼˜¸åR¡…4YŽ!w“Vy:D©JÑMÌC<è¼Âù¼ÃÇÈr£Xxš÷~<éòþ‚{ã¥I¶‰a:;sŒtóWYx05yb„‘…‡€AãG¤hGÀPÎ;ÀC.ÙV;œ¯ŠÆ¸$&`œk<€º0Ç@”ÍYäAjš,PÑXwpžÐ•³`xþ† )’Ñ íœÒ\ƒ 5D/ÝXŠ"æRp­š\Ëf?W»ñPø0ÆPø2ÆX5eQ9W󬜬8TÖNHY®Ò%D¤'¹Ö¢jjµªRÌë¾ÈTv:”NÑiÊ™3×*Gé\ÉÓ‡b#¨‚µÎ@T¬s¨2²èbTúDeMTyœº‚Kt¡-‰õ˜ Í:Z ƒ1W.ˆ0jŠ ãS©D†x•qÖ4Iâé|®ø6Ž0åÖæ¡ç¹ü yªNòÔ'Y#ˤ®pߎªñoÖ ËŽšTš¢ÄÍ<ª)j]G5'J#dyHyg'¤ ;_±e,éf±æ›†j‡‰¥SŒ¿ZÀÕ ”z7. !Æ _Æ £š4*çj¢•“ˆÊÚ *‹³É6`B.`f°«Ü¶JÕä‚U µ ×±ÂëÕ7·ô¡«èC÷ËÅìÅ–‰Åý ÃZâ‡?‹/ƒ |Âl°b±Ç•ÿa6G’ÄÄÅÓì]÷Ý©W˜OÝæ~¹Úô?,¾š½ZÌþÏAá«ÃÚ9N½Ófö÷?ˆCþ´Xñ)dŠäi!ZS¿!±)à(¥ÏGzލ'ßÁôŠ…ñÝ_·UÇ‚6Rˆè>'îKââœ;?Ñ6ÑT5wN=Rêóúø4ë¾øñøx‹÷Û³xý¸]oúÅO°i³ÍTMòƒÂ Á&éº:!Ù-ÞoDÞ\*Á×-Ú¾x™WׯþëãÃvÕã^ÑÝösp»ûöo¯þ%z*Ç›ïÄÝ›»oÅëÍasZ^Ž'ñý+]·9•8©Tc H÷Óâì]'ð‡Dw^¶?nÎâB±‘ÙûÇÃê²=Äò°ÇyÕ©GT®[ò‹ã=­f½`sÐôÍ5ÇŒXZÒÉPrb:§s÷†²ðÝ6‰ºCð}À½®»éçšÌ.Ï≑ ý©n·ëç( Æ®l:÷/ÄöpO¯|wìáÞv§=¢Ì‹‹æÐlú‘Á›GœZÜ£[Æ`”Ôâã¨ã/ý!ð¢@bŽÎÙ…ëåá@¾|÷p#ú¹ïVg¨±—ü÷eÍ/=èÛmYäd ’¥Ð ,`ŒtÅ [Ùî?à[v=C±ß.ãî}Máè•­ÐcØåÙæ.#Ú¡Ô@‹å5ɘ¨ÿäÈiô(MG]CE­kóª-kÆ–«ßŸ¸sÏùÕ)Ó[“¨8ÿ”D~$çÞ­Ž‡Ÿ‰ƒÇÙ\®QJñœý y¸e¨E Æ8›þïbäx¸¶°ú6SMãl§zjÁñë›Ã…“V4pÄvëGži7 Þ¸µRªÞc²²šÀ[o€6þ·¹½;ðK¨Ý¤-•±T—@½Ví– Dû1¥p¹Eµ=)cGÊÐŒ蘀¾Ñ-Õ<2%Ü›”]Ù-5…¸¸Z;›¡¶÷¥ð¾Hþ$Êa$}¥€Ó JoNÁLbŒfØC8‹™™i…º_h´x9¿7öíÆ§Ò:TmÇ~;Ð+¯kñÌ8æL˜³±òºú^±ü¡&õ¥<éÑ *Fd÷å}]ÌJÖ´"t!ØÈF¢‘9C„SJÈ•iŒGÂ,ç]ò¥ IÏNq=…º#qE-w––¼Ð-ôb&]*ïå_öLÀ²™´«äÝF^×–y7ðä ñÛËV›¶ó¦ä±tB™ÕàjŽÞnYTÖ¸*©­™AޤF=áz·é'½…UÐÔL|~‚pï}B^®6¢ ÒM„cûÛ ýм‘ °fDÁÝNY5 ÂæÔ«…B0|ÛRÀK´td@léÙ¤6:\Ñ "õ0X­º‰¡5óZ5_ƒÇ23o=Ó˜ž©çâ)[EûIÉj®”²†À¯p…DÒhÝM‹%§ˆÈlKñI‰Éä9oÝHÕv>ŸåϦ0ã›F_²¶º4 ßz¯Ó?ו·ZÏuχö«:ðSû~^[5¸”™62uQÍËG2NÍ%=#…ÁûÂî—qÀbÜh.kØexRÁ঒ˎτæÈÒ§£xh ú*ÔH"EÇÛR¡Žsa0í;üéj•7ŸejZ1-V¦eæ¿Ö!¯û}khªG˜ç]>úÅSÒ‰žxY×Úø\ÊY@¯IUámIñ»¼ÉW»æ5Øò‚^u³ƒôN”‚"²¹æoåîHSmk…DåV2üPBmÂë~w%^[ôªjC89ÿH Ö&O@2‹šäõÎF%*iêìâ½ýp#ºî¤¨±ïòëúæúV¤Ä#}têö“P´÷WÏ})_¤{Ѭ ®Ñ×Ì\ÑçÜ~¸Óòæ9þЇ˜Ê?)»P%49æ‹ßÍ zGõ Í«²$¶Èë 8CʺÓÚHµ66Ž2]É•àò{ é¡ü=F´ç¬x äÕ»"±Oˆ~›3ä…TÆZæXk›7ê¶Ö⫼k¹¸¡€$F/nµKʤ¥w/ÿoñÌj8(Š<‰ô:T€`¢³‰Â#¿@«`q ©,+åzØ“ÎéÜܨéó’kÃãüQ´klÒl`ʱ[ØÈÜò#˜`ç1v÷ë[ÜïüŒ>pÍ(yôEYͽ|Þo2_Ï6«¢êd„HÅñeIÙ Š&Iü5W/=å]Qì9–¸™¤˜¶%&“¼{¥'xR¼þbÔ½çh åÏå—]W¿’>t~¾Ûíü4â\óè_ÙDð©ÔB:ÎÛM]¯›î\O&áTj“;Aí(u‘¥½±’Ð~¿Cñ"*Ô*¬W˜#°=>ɲÔkŠ‹¯ïŽ?Žå¡ DQ-ºà€°×ˆpŸ…Ùœ†§;sÌÔdF=ViªX) [b"m„u™£ºÇøž‰èt¢\ò^€Éà’ìÍxR^·;íwöÕ†_cYóΆ9_ÜùÔþjí£”Uø³"ËOÔ?!>SÁC`‹Î®m_D²jíë/u-×û6¢¹wóNˆ÷þõϵWû(í.ÄÈþôòjÎ_щO±u@A06YQ:Ù´áÙÔÏD:"£šŸs”ªÖ³Nu¶¬d¢•êBÉMÄáï/?‹œËÌô*o¥´ ¤­‰M» ;åGW°©^;nð÷óüØ7‡žÖ,̆<á"¯,MR¤bô¨»Ñæ(·“z¬Ah>ÛëÑòI,ÃÑ8ü.ä¡$yŽXòDì9ò endstream endobj 340 0 obj<>stream 2010-02-23T23:09:35-08:00 2010-02-23T23:09:35-08:00 2010-02-23T23:09:35-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:F237DC8A1321DF11A166B14B4D8AAB0A uuid:F237DC8A1321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 341 0 obj<> endobj 342 0 obj<> endobj 343 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 344 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 345 0 obj<>stream H‰”WYI~÷¯ÈǪո:ïƒ7hŽÝÑ2»#<Ú„VÆ]Ýùè±Ý4üûý"#³ÔÌì€À•Q_|qd–w‹«7;/´ïbÁ…Îy!;¥¥4øÕ&¥$Nýâv¡C}mm˜¿½º>{±9CdŠBâA†hçÍaᬰ¦ƒÜI+=d%x¦W¾K^ªüNÇNj~ùbµ¸z­…«ÛE"ƒ" —w@}µ_H(/áEØjƒåêqÑ(Ý®>Cϰހ ‰¶t±zÉÊÊ‘òûæññ±õ²sM÷u»ÛÚ¥Ãó×nsÜ·V?/^­?DQ€¨à¶F‹m„‰ãµAw2Î1ËŒ–pâ÷Íë´¶ Íëåñ¦?àÁ4}»´Íi}9žÄß©Œbˆ‹ cÄRuZ±"ðdÛþ­]†Î6oZݨÐ.½qâùý©]*ùv'TbñOBK~R²Fü'95¬£Ød—Õ˜[7¼C^‘àÉ«ÌT,LÑ«L=ì?…`à¯æ÷}óï؉MÛÛ©f½éŸj õ¶ÓÒFÎpÖ¶¤ù±†m<ÿØúæøp«OxØž[×éF úæÍÃö¦¯áÿŽúÜŠ…C‚ƒ÷.ˆ¥Åþ&\¿RuV¶î’ÎS¨RÂW/›‡}¸ˆ«·×I¼xy½øuÂj2øCm$M¢vRV©˜¹EWjêÊ   ݇¢KA‹ý‚U )xÓy4äêL;“ *£­ðÈΧ(©nQ+Ö)ò­’/ùü±;ÓÔÍDò”›G6xq®óÒýU/Eëÿæ 7H”V37£ä)7ŒÒè¿0°¾/6Í,©‹Éý…嵯öÐ?¬à +Iè@¦udó„ÖA–5*–5‚¶, l3öaªF]ã:T4ŠÇáÔ€E;² ŽÊâæT@1&L3Æä™g؃7em‡(”fI »¼/Q;Ë]¨œ,;b¡µ¨ÇB³ ÚT¡‰$»™„R³[|ZLÒ†üùy(ù ¥ï35Û Ba?©ÐíïH¶P—Ülmü Q$Ú–jV"Ñê2WRÍF`6dI‡ B¶]^ãVžjQñÔA¥KU‚6}'1¹žé.og=%©Z˜^î)óŤân­bÞD8÷,ÉÝdðKä ËÔ‰:¯ƒb?4e6YƒU’èèò¦kÅ%(µÊk‹%ᆽ*ÅdâÄΰ.5eìl‡/ÑV ¡°8úˆ1ÎP¤Â<£ ¸TÛY4Åô$RL<=eëà®XÃh¶sv±.™£;é°Dò‘¾¢P$š=˜Ò¬$=  }, ºÌ£1Ú|ÂŒQ §a¨§RqÑsÜÌ榙2…õwS g‹a æk¯'Ùà5kp¾ÆœÏÑg|ôá†Öcµf*ÊZUcnènŽ´Öee¢VîÈ•ÃS𰉵u#Ùã²f£JJºª~Íæ¼7XÁè:+}éSfLà0lMG* c!¢ùúˆÏ¢BC¡¶¶Na8Àl21ÕZrákË;èÆa 2£ÊÍ©¥5mR¾*0ônDô¶ “ÐûÎÔ^/#É&12€ñR›Æ²Ûe°Ëra,‡ ³LW ;ɯK“X5ÛÁ™¬j®Gµ*ŠZ-e­¦1ŒZo5ÐRŽ……Z®K(B[(³\7¡¹®§-R%œªj¡¦rÞÜ´^½½^üº¸zóN‰»óâÅj¡¨Ç‡€ü„kgÀw´Úãá_PR₱Ú`µz\¼o®‡ÖÊ.6_Zú¿?\¶Çùý°úyqõÚ %V·‹TæŠhR4~6 ƒ ’ â “([]}ÚžÛ¥†AqsÜ<´K`nö0.м¯ï/ŸzÑúæ¶]‚ÉæØ.ñIÔìv´4Íñ‘vÙf{¸cmÝ_gÙrÈ`ñý¥i!¬—åJPçÌ6yPx~ý×õþ~×·®ÛÝîá|9­/ý™\ôëÍ'Qý[LÌæÐ.qц:Sc˜E—&/%ΡbAú5ŽÞlçmFcˆ4ë»þü“¸'†N­Ö¨°ãþþÑúp#²u‰O¿ÁÇjmb„d{÷H†zCyj—¡Ù‹Û-zôé°oÎhZ£F.¹gÎßΗ~?õ œ‡!ææf{¾ß­¿ÛÕç‘+EŸm¢s5¦ rߣî2O§õMÿL,QÙ²p¥då›nØ:‚ÎV¾cøãqwó4òó2ø9^â†Î†ÌÈ?·ž~ž§œö5qî›zs¿Á(I•©)ߎ%ÔóÎc‡QUü Ì×"ã=;\Ö›Kn’ó£€Jü»˜+osø³;ÜÝ||@òÈäͼBq£ âE*€™³ø=Y…­a†É’›þ¼½;ü—jì‡QæA5{jFªY.Ñ>)7ØÙJ=6_`¬ïw_zŠh}óéRœéŠ+VKV¥ÚX9!“\-òpîwý†æ?&Ik›"½Í­‚qÿTÿüªémÛ¢÷þŠz¡Úˆ%wù!µIIÓÆH‘ ±Û‹4MÅ„)Q!)+n’?‘_Ü7;Ëå‡(Çè¥z’H.‡»3oÞ{Ã;ôm‹( ãD ;N—¼³Ý:¿äEÆ)>;óù%‰%‘êÕà!®Wûq=NŸ7±¢Ä¯¶Ù†÷b5÷Ø ô,D~ªÍTÇÍ|ŽsçEv{Qᆠ¬‚õUÉ"‰Ä ¾MºkêaUíaÇ»2ùoªâ{ ;OÍ‹ñ¸M1: O{ΰsÒ$Ež2-öφ6T0I]Ê8¹:±0ƒt\òý°5Ç óÏ,Årª<¹( ´,1HC" ›Þ²Ê¢?t=x¬—CÛËÎ+hÅ*wŤÈkȺiïÝv[ÜNPr8ÌMRhË"É¥L÷ÿðí–7ÿ½ÖoQ.aƒˆ’áCî(Èël•ÁÒ‹¤ë>%kfªÒ”¢„ÔT½Óß NK¿ÿ|K~‡«€qušelóúIǰÝ;vRÆ@ö+ñ+SþŽÎ»p ,Ô3@òøè`˜ Œzí¡T (äx@6IèÒÁ‰Ú3ô­¢ „V4æ —Üã!ÇC3€´uBvÅ¥CÍÛLŒ¬ÇDÚŸ­·W&•uÞë€&ûÐ ’:úº´tÈqNV­lísÃ%ºŒ ‡ï"öe•ì7¢.™’ùns'þi§QdvZÞdU‘lkCÙTÀ­Ù.\7}¾¾]C1pm'[TZ¡`âcsd¹%&€k¤à›qiSáʹÅô¢ÿˆmR%kzN5&ºx°<êSRô¼Üg7ô.ù…1:Ú‘v|±«<{š¯`åôT÷€ãž}Çxì\Ùt WïR&ž+ö×"©ÅHëjèwÍ40¹øâyü£þ¸÷fLÄ=¥›ÒƒsGSÆ­0±¬+ÍhVšÄíûÙ-- ©¹Æ1f•™×C-Vê4O+8ì'ŠúÏœ ¢µÌ÷[⑞ ù!˜SãáíF‡¡ªEÜõèšûÒ`ÚûxèLÅÛt­è÷æ0#ú\kk[CCHO <”%°Q’fDˆšÈˆA|d7j®>ÐV'÷Ý,+ÛŽEÓ‰0šcÅãlþ™ÿžY›”%bÂV?|޾ÞÍh˜ÀRÍäW0Ì‘S–|73rÊ—ý,£& é4ül]H‡4[ÒZ3qŸ9·£=ŠS”ûí¾¸ŠÇ¼»†¦ÔÞ´ããàN¹Äê#‹}ã§û…Y­FqÆþóóp~Q¡uŽ} £dëß!ŠÚuU˜©¤€wa((©,‚>Ý—Ãè4#r¤ÚH°#<‘–½Þl8ÒVw5…Ž–¶“T2Høÿ}aýÀ å¢U²w…ÑÝ‹ŠtQÏLJ3òÛâñeµU ƒEgÞ©Ï#g~™­´Ö娔›„§?4%Õ8-/g1¯Î±ª:u²Þb`¤ƒ)`ç½3=<¼Ìõ0ФMYÝ bÎÇ#ó€œÄÞÒæn~OÈgE‘oáß ¸BS±Ãëñ` î| ÂÌ:ïjò ]R^`9¼w0³­×LÛØÏw¶È›¢¾¡›J !õI~C[]8æ©Xóã„S“ñíŠî.Û—p,E[(„¹WIMÓRt̬øVg¤!é‹,ƒ-ZçN]ëÙ:Ìš*×Sþ¨ MŸ¼z"¾õÙaˆ—¨œx$~õ‡¾>û2óоòô·úúäå—¡h¡ûfX˜Ap¾ÕÁFºa¤:N;]Ÿ—UþW¹ižU‹+6†ÆÄ>p4ˆÞ5¼’#R:w\ášwÝáq¤+˜ì®)þÛàéIüýÁ3¦ðQœ–Â} ”`qqQ”éõ؇…vÀô½¨¹Ý™qKÄËE¬zè%»Àk·ÌE)øìezý–ά´YE™ú|iœ.æ! 8ö:…ÆIáM)\W›—â #ROÊù©Êü€±Ô‹]¸uW´ÁþiÐs™Œ–¼ r­PKd/ô—®âLô BŒpýO˜çÝ'Ì"Rµ„”v¡^ñÃÓ:i›à[=#º^¼”/êtcßÇbÙ¾Tò»47ša4úNöª£{0‰=½B.+L ”Ç…¦Þ#ŽÆhWø£5aÿ+*†ðM~¤]|e\ ÓgmWD_]¡F+4~+¼¯­ðUt,çGWü-Àù¸Ø' endstream endobj 346 0 obj<>stream 2010-02-23T23:09:36-08:00 2010-02-23T23:09:36-08:00 2010-02-23T23:09:36-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:F337DC8A1321DF11A166B14B4D8AAB0A uuid:F337DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 347 0 obj<> endobj 348 0 obj<> endobj 349 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 350 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 351 0 obj<>stream H‰¬WÛnÛH}×Wô#¹XÑ}¿ÌÛĹ`dƒh°A2m++QKŽý“/ÞÓ]Õ$•8™Y`¡±Šu=ué¦7‹‹Wo•¸9.´ïbÁ…Îy!;¥¥4ø×&¥$îúÅõB‡úÚº,pþöâòèÅæf) ‰¢5J7ÃÂY¬ëðÂI+T~(Zà[ó-åW¾K^ªòNÇNjzùlµ¸x©…«ëEÊŽD®H@}µ_H(/á]/V›E~BÌ«‡Å»æå¿Ú¥ë|óòWú¯ú!?¥¦o¡’š»vð·&êt`Z´¾ ÍgŸ)ßtª}¿z 1¦Ž¥«mçX=§H”+‘P­—kºÇín[ü»æ±ÛöÅì‹+ ”$xÑh¦°ó#€Êñ(¼7Ê´«SÔKg»˜ŒKÕi=…š²0éE ø÷WŠ@ N´ËŒÄÏŸŒÊn3Ã7;Á"©E¸Í?…&R*ÉXÕpQRŠ8?غtp¦ËåÚ—ri?ƒëò0´Vu¦ù —pÕ·¶³ÍÀÚ†c…íôÍV”^óx \ê|éªÿC µ±²;é…C.Bq[]6E )2`° m˜ÆÙOÉù±’L&O.lÕ`ÚÉêcäX ªZpQ³jq!f MyzÃ>ˆräsô¡æ`-1jÒŠµ9é<ÓÕ~ … ÃZiÂÕû4Ò¤`¦ÌÙqriv‹Ûż#m˜cXÞÎZ8Uñ&y) å…¤)ÅXÇJkÃu¿8í9ùÕW¯Èä¿èkÎ\KEý$‡#XChn#\쉑èèõ)ƒe˜‰¡Ðɱ#®^¾{gÚª’¡âSÌXê?íh7j˜ãr“€&D,/­¨ÿ¼Q#Íýäý™DäL‹ ùä Ÿy³€°VS€ØTp–6ÉÎòK8Öçù'ŒZ" çÈB2‹T éÝ­e¨Ì1Ü™®Žy°3ÚTÛÂò. ʈ)J”Ž;×p£%96·V⸠.ß}'”\§ÎwžêD(ƒŽaV¢Iƒ*5I˜pf€ =ó X@RÙ¨Oj|µ¦ Â4ÏŠ::±bÀ­:†T3ñ½ 扮…˜8Tªj¡–òlH å½âñð¼=£ÔlÓÒdTƒÔŽMÐÖ0¸ç ,!«y`")h?îCM@MÈÙ@Æ—&Ó<"II$;3÷T:s‘›e !•I™"DóÙx–CnX=Ë2ñý¥¢ì8âD|,8zbšïÑJNR9’"ЄEžIÏ;)ŸÉ$_/P^Ö‰¢¡·QÏRÀ5eJ{‚gN©x\#S65Ÿ“|‡¨×ƒTïÚélQeš$˜3 ªãd*=wA­Pƒ¨­Rc¬Í4eQÛ­æYÛ±âÀý:…«Cy}[& 'r‘Ê1,Ï•uZ|5\¬^¼¹Ä§×Å«·JÜÏV‹‹—h±Â• CqÁ—‚žp%8ǰ.ÄjËÿ >‡¤„×Õ†žŒX=,š_‡ÝvèÅóÃæ~ß§võ&-™L¸ì‹å!ï—òi_ „®¶T6õ®YÝö¢õÍõa·;œúCAîúÕåbµ2O • Ú ŸçŸ†q6‡²œõ2;C6xs>6Ê<”39#;f)¬£˜’jvDCx_¼ÔäfiTÀ×uA‡qBÀ¨¸g£ÙÔ%ºÍjô86€Ž&wá” >&âwL÷2Y™û÷Ç4ëý§]_|¾X-”WØ‘Â[Õy 8µÍmb¾fÞõXuóÍå½I€÷V™¾w.œ;¨ÕGTñc’Ïoª\‘¸¸<âR|3HZ®ùl±¢ãfõ¥ÌŸ`¬MFºyãÖBQÇøƒöɰá¿Ú} 1Dá‚Dæ¹Þÿ?ê1¶Ú˜q>GJ–K ·8h—ùÒ&íöæ³Ý}/N=-ÈÚ͸wóÄàšQ»jÔO‘§ù²¬ˆÐŽÇ%?öÅÖue¥iUùfØ …·4ÛÃÄé Öhé –֥̳¾·vǵ¤BÝ»âTœÜþ—ñ²YJ†¢ð«t™ÎHi›4wŽ3êÂêJ7aèÈO§ ><°ç6!iª®`‘4¹'¹ç;b`¶«°"ƒ–Æþ ‹B2©îØlŠ—FîjJ¯‰¡ë‹R jfvEm}!1@ƒMšo´I›°ãÝ|^Ð\ØÍØÁ­ÂÞÁÞÙDÁö á RY3UŸÜQc¨qX°ÀM™+=-VuÔ,g§¡yâ+;¹Ñq¢BB‹ŽÅܬ‹j9¹KÞÚwN56ß:âpÙk˜I¢¨^©àa[­§º>QD0Œ°!â|Ü[ÏýrZjU ÕbàoøË){# Eœ×+!Ãlz=’IÎýaø}pß7Án3Wå-K[4‹ö~H¡­áÑS˜EÇÀÚñ­ëN€ÌÚLG: Ï% »ôÓwÙ,úeפ~٫ϺÐ*ø`oT©d“ç°s³»Ýš8š$–&Û¦o$CÒB~f}§¢Þ¾Û²EÊ¥Öåíp¸ßHHª,:Øè!B3SJ؆äië³BBpz#°KP˜ŽÿÖ(HÚÊã Úéä!;ER™]^%O=a3ÓÂæ¼bZ­í©KE§Ùü_+e/‹œðÎs€Kbì(ïNŒ$ýœ}ŸF@ù6ã~a)çWq#ΫØ}dycþE¹L¦Qzrç±ìèS¢wÄPøž endstream endobj 352 0 obj<>stream 2010-02-23T23:09:37-08:00 2010-02-23T23:09:37-08:00 2010-02-23T23:09:37-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:F437DC8A1321DF11A166B14B4D8AAB0A uuid:F437DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 353 0 obj<> endobj 354 0 obj<> endobj 355 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 356 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 357 0 obj<>stream H‰”WÛŽ7}ï¯ðãL”ñúV¾ä X‰$ˆ‰ò€x Ëöv!ËççØUîv£! 4]Õ®Û9UÕÆªwÓÉÙ «ÞÝM.êœU¢¤)*£­3Æã×ùRŠº=ŸÞN.õ×êõÛ“Ó»¨wP&S²2x0)oÕÝáz¢ ‚×Г ÊÖ‡f„ÈõUÔ%ÛÞ¹¬ã—÷Óɧ¬Ú¿Ju¨Š¢væû«ÉÀx‡(‰í÷÷ÓÆ†íþì<ÛÍYá/g₎H]í±±¥jürs¿FÓF¹¸¼¸ÞîÏ_ôáæjûjÿtz¼GýPe RT8šj .¾oHN›¼ÎÙ´lkÞ5ã—›'?oƒN›'¿¶uv~¿9ßîÂæöõ§›[õwÔ¶e1×USOÞ«ÕÎ͵x ‰}ÿ¾Ý%6g[·±i»CêRþºÝîl„þâRÙÂê•3üdM¯ø?8õ„¥@µ6£ Õ^X¸¥ùxÁë†T¤ê«V}¨Fðëã ŠA¼ÎïËÍo·@'oÎßn}Ðvóúpþ“@#ÐíLÈÌp³Õºá<ûxðç6nn>Rû÷x¸¸Û’v…ê7gŸ/Þœ÷ò?¢?/ÔD 8ŨIQR;0jü ®¹ÕÁ!m§KPkXiá“G7‡ÏWçןÔɳSkÕÃG§ÓóÖâñ§Î‘ñ¥Î“ Öæ.ÆÒÕ±ìèT0~躒œºš*¤(¥èuÄD^BSG3¬4(Ë»Ùê K6µqÑ,lmKB¿†²v¹Œaͱ0ß®lŽB¤£¡ï"Vÿ¿˜#aÀ”³«0‹æX˜)Æ: `šQ¿Ÿ~ÅCѹÐwðÐJZƒÓ!QqºJÔúä¨mo‹^­¿ ûté“xðÕ':9fßvºË5-²¥…ùLÕDSYiêœ2WÁ99“ÁÑP0üø¼‚`ŽUPGnxÌnu&èÒJcá‡ÆX8“ê8ÎùÈŠ?}¡¾Uý‹Ó_°;žb!|À rEÝ+kÔ3õò•Qoà»Õû.¢™óx]FÞvuJ4C¶`„Žj(hSzØYŽòQÍRy¬ÍÆh]3æ„åjó*'_ÐVSÔi©yÍŸ–ÆÓ,yÊZÃÎÄ29¶nóœw× g¢ö‰Ži†Ú>ò¾ Õ_°Z7&ÖþÎÚÖuµb³¾1§±:²ÚFû5d|ËÓXKH8³ªW•òØC8ƒFYå™uŽ«ZæXs¿"Ÿ°^¯àß¼¯¬òz6¨räÖìRE…{ÀW†o±‹³¦ÉIDj"Y/rV‡f׬‰| ÈXš»?ÌÄškÕÔ/r•3;pØ'UNFdt,[$X“ØgòÃw‹.ã>$¢Á÷pt0Ž‚« ¸:IRœ¶çò!z‘Ã\…u¬‘²å½TMRêÈȉ,°Šy˜}še6°SÕ\®4•šËéý4Гfþ¢Tž„¿$sŸ‰ìØGmŽSn*|¢®ÐJöq¶ r®Z$'{¥t6£a„Ž˜9 #hS“q-/½©xë Ó•âS(_i|ëçz™+€Žiº¶S0^ *.×6·C5Ï+Ö´iòø­ D‚rD×äd9NÝ2‡fQ?ªUã2µ 3dË-hœm²…G!ÜsTkG9†)܃ø/Î,KOù°:¥Úî! ŠKŒœó*‹"Ès– ·ê°ª£n17TŠçF$ 'š±b ïØGnìBæê¥tA>èÑ8ŽàeX«z‰€†ŒY œìÊY-9†ö…Yª§iî'鸹nÆ{ÓHAþjKáÛâÙ‚±†ÝÀËlÁ|-'˜ÏÅ3¾Ä yô8‹Þ3=ËÞUK4O7WÚû²#Ñ;wÁŠðT4!ZÀ^ÄÎF×]ݾ³¹ž 6ð®ïÊ(ÓâeÇ$.#t:Š$™ˆ^Tæë#þ_$0´}tÚ Ã,ôÝh Cí 7¾ |¢Þ˜GrªÜ¿Reu"™¼òCú*FÉyÈMf‡$у6EÔ®jLrµé@îDù($°ùÂþñoت‹¼Ì kÀŒ•Ž©H2šA–Tìœf7«9EÌ6¥¡Ì>ù>ë²’BQ X/}hǯk[»‘ £|låzÅ,Ë»:ÁLvë%FEï–že殮ŒÞo½PiGA¡·ëŒZ@`K²Ë§æ.#Ò5LU÷Щ\OÄ7­ÇÏN§çÓ? ìqÈ€ endstream endobj 358 0 obj<>stream 2010-02-23T23:09:36-08:00 2010-02-23T23:09:36-08:00 2010-02-23T23:09:36-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:F337DC8A1321DF11A166B14B4D8AAB0A uuid:F337DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 359 0 obj<> endobj 360 0 obj<> endobj 361 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 362 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 363 0 obj<> endobj 364 0 obj<> endobj 365 0 obj<> endobj 366 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 367 0 obj<>stream H‰”WÛ’·}çWàqèG×Çxu)¹Êq%b*©RùæÎréâeErµ’ÿ$›ÓÝÀÌP^% _8ÝúrútƨÍìåÛ÷FmÎ3ïT4Q%§¬mµU§~v7{ùê¸~Ü÷‡‹zùó±êÇW7³—7ç Ög¥ÛÜᇫ»lñoœ1I×2jɨQ[ËmöYÅδ·j?ó©uÖ@áÛÎ:µ›…®u¹›*t«ŽìŠnCNÚÁ¶ÑyC~M†ý}Ó…m—ÌÄŨxÎÅ·3ª,ìèüy(G¾;‰?¹0¹u]œ¸ϹøvQ·]Îûg€mvîû¯KDûgB,¯B4]´žB³ÆGþ÷.³ÁÚàÊyŠ0Ù6ʾM0»›Åܦ*¯C†ùF9™6¹ÄUð‰Öck')³¯ãDQ=äÖFò€:c§RëíDÑ!¥<úÀ†ä'1ÜIܼWßÊôýÍ_gZý¤´ú]™6—'e´úY}øU«ÛYF£A¨òÁûYv­f²¥ÈÖZó3 kZ‰ŸFw­Öæ9͘‰Ñ¾õD±êhP°aÏÁ,š&›Œ1…GѰ骩¦ÎÎ3ŠÁ°1È[›+M ³Iç+͸ÇR ¸ç4“´(0'Û;Ý„iƺֆIY £™Š ^èFк›–€,{­©^*Û(g§5]׆._BŽÁLxB¼’}¬©š.—vJø(›Ê’®(t.gI_»XX#ðhÀ$'¸ ¬æ4vR¤”®4௘5¿&¦}­™žFþYc‹†€u­Cò´Ë£éö¬ñhºLI¢Q»À²íË‘[vµÐСü™[.ZèN䥛¬‘é´)Eï’ ñhe‡r"¤ÄrŒƒXx'ëaxÓÉù‚ûÄJ“Ý$†ñÝ)1d‘®² `žä‰F"M¢CYN€%,F.»© vøPMç³ €q~â„´•€QV²Aj'Y ¢©žà<¡éŒdÁ8ðü#R$£A§sÊr *ÔƒöC)Š(¥àZM6p-'ç¹Ú…C …/CŒ•Qc•s5ÏÊÉŠCe툔ã* PBôi‚ô(×ZTM­V5PŠyÝrÀÔagcé[°Ñ]9£%sk$JïKž!Ѭ­Q±–.0edÑŨô‰M22N}Á%ù8-‰õ5'è05:tÝ• "ŒcÃø­T"cºJ8ÛM’Ä%Ò‡ ¸â»4À$'œ“¡¸ü 2UGyìÑè2©«Ü·“™øÐ¸¶ÙrB¢@ó‚Jc”¸™'3æAíoë¨æDi„ B†TðnD ²[Æ’nÉ«k¾i˜éÐ"±tJ®6p5¥Þ…C…/C…Q“4*çj¢•“ˆÊÚ*‡w“›€ ¹€)`WyÚ*U#«jA¯;c;×ëŸoð»¡]C»H†n„ˆÔ£ù¦§N=6þ¸œ½|¢©åÝ,ãίUVžw䤖{| lf ä¦är=£'µ|š}hÞ¼›/|š7¿È¿zÛè)7ýGrsš/"þV"]ŽEVsLÍæS )4­™ÿºü Atž¬ÏŠ|ÇñMÒò•D‚×,E"A<==Íñ¥é›öóv·eÿ¾ùÜ®{6ûz9³ÑÓÍÔÒ¨VØšèsÑ%ú–ø/$™ù0¼7ÆÏ—¿Q/<1|]àjbÇP3m–sIþÇ[# aÊÍ„Ä_Œ!·¤ÍN•-yŽp›ÊЍ®I (µQ#@DÝê˜\'ˆy|8å:ŠÐûL28a_—@…–nIà C%#¼Ö ü¹@ÃJ…ìÉê @8Vâæ~õp鑊x¡15ÔL>0›˜‡<ÉÕ?P‡ÿ•ЏxaÒós"`é{£šã ÃÚß¾Û*E#0œ??Ñ1“ZêIŸ³g&|hÞ.§9V}s¼}\_¶ÇCa´+¤ª¶øÁ€ËxOc€²-b†—÷=Z£y3_à#«y‡ÚwU@‡Yê0,£ÉúÓ Í¤Öh(zeS»áõШí™v›F­ÔÝã|F6»Ý± >õ§­<Þ•ÿþVÝÑSï(`zÎé4foØ‹Ë3Çx:_ÛƒºÛÒÃññBnöýþxú"60öhV 6l®cƒÈB&ÔÇÇyî°æ„Ý©Á0zÄ$jfõ´åÅË=m]inHÓ±ì0ö¡Ý7¼g+þÖj%yÂy³vÍêö óÞyµß÷‡Kû‚•‡u‰á–›‰àsLlÊ{ùÃ0sJšåm¾_@c²£ŽwsŠJ]d Áu¬/u×DuÒ?¶’ôÃq ï'Bô§ÕrrCÐ#ˆDw9À6èÆêã|Y]Ï<v¼¶ÚðhGájªOÒÑ~»é™˜ÜŽj-¯ LKiÙciÊÇu_7ÁóÈ h½‘~§‘ëqQ#e,QFÕñè£í¾mÌsÜ es/Ä{àš¹æøi+Úþ¬Šª§Öf¸V2²QóCîéý¼æä#ÆO«@!øì°‚x4ìE/ýñÜG€oÎ=ùõ[_¯›öy¾ÑHrgR¼×·²êüBG œàl4Æg=â¹kvåp_kÃ1¬àBÊcN9"R)A©êû6SºVãò ‹¼?`,yÛþ;}.wI/ô—}VõN<ÊÅw~aNIhµC«ySã¤o ÅÁºSò¨áEf!Ô]Ïôñ(aOn4u£;,%^Y'„iÙdNU©0Àñd³LåØ?ÌÍ»Çn›©Ê;aŽkã^¸umê(¬È·þô®åÎÓ5ŒïØe „Q M ÓéºSc½MV :É¢h¼•© ‡=5[ô!3Z¤îÜxh©EÐ?¢àC˜nÊZ¥ò)m ÈâïÚÒ ¤z…ÖÆ’<6`GZ2ùo E޶KNGsHåŠ;ìŸu."DÝ¡MáɦPN~ˆí’'>îËæ‹àCÐÅÑÌïúÏ ÷°w-(Õ6òU=ƒÑ_ìßpŽ’ž |ý—y¹­Xvß»o4—ïÞùÏq@ßÙ™,ÿiñÓ˜6Ü›=×—6&!äPàáèûÆüuñ™˜¼p=Q]gM“÷*<‰ÇbsOÔi?thCOÖyû}¹,¥ ž< ‹’iæŒ`„›÷©|=¦§£QŽؖ˜þ´1eAn[égÂæ—£J¿&/%î­7Ö·‘%¸&k’&”“»÷‹5÷iM'.ɽ}›—YQp‘÷áõÚÎ 5¿¡´QOdz¹›ÇXº°LÜÄÖüžªJüìd›ÈÙ¹t…‚e±ëC ^JúUòÕ¥,X±× ¢©¥U˜±È|>R^[RMÎNô=$o"÷ê+×»KÁƒo.x8Dšt‘f_(}~V¶"3Ñ] IúœûkÖÜXU_OEC#Y(‰N$‚µ 4œHà 5œØ…#“©¹òäÙ½h÷bo.íb.ªõhAÞ2U£Ÿ¸›*ëíôcu2ðOVá*oÊ+ûR¿½cžzÄÕ{«3 ?0‡™€Aä•·z{veÍ î»î^Œ»{!ݽjýR— ФW.jë\—¬ªëöž¼i_g¯öH¾#öÙÿn“cé‘ç«3²‡àl´D¾Aë¯*9 èÁ²ÙL”:pHÙ›•”¹[q{&º–’öAçÏ“!§$6½º]§çœgé; (|ºGê–cQȳs—‰SªóëÁÆ4®Fe Z¢±mu£ªǧ®mÒÒ¬åèc£»mÎf-~1u‡™BßÞeECI]é‘Z߯ÝÉ;ù´kj3ö…&‰GÈÊ]NEJÅQþ©Ò9`trׄRn<ñwšLTûÊ¡]håv©^«ì€ëêáŽÉE#ūά׼ܿrŸ•F Õ­Ät@üÆ!‹&ª³¨`Û$l\Æû¼Ý‹âjèzeÍ:ÕÜ׺¨µ¢·((ZìÌ^º5λU››FèzLþ„À³Mžc7çbz”q?êÁIùM*VW”¼NÅi ãï5¤d•·©ÎÑ$†÷øhyû,v'Á»›¶x0Úvúœ˜  çâùb$–#À|\=”›½ì©T†tÌÿMUT‹ªuþÁmóEÌ}N«²áLXxùVgnì6AnQ°þƒ“O—;Rh(b=@)ó4‰6ʉ(+óq¥ †Ä¸ôŽ…üÃ[ño‰ò=¡Ã¿í2øRU0q|ZR(fè§¡•°ï<^ê•ô"I§ÀÝÉ\«á¨´9kc¢z {䪄  &ÄÈ´3ƒÿ 09zÂO endstream endobj 368 0 obj<>stream 2010-02-23T23:09:39-08:00 2010-02-23T23:09:39-08:00 2010-02-23T23:09:39-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:F537DC8A1321DF11A166B14B4D8AAB0A uuid:F537DC8A1321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 369 0 obj<> endobj 370 0 obj<> endobj 371 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 372 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 373 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 374 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 375 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 376 0 obj<>stream H‰”WÛrÇ}ÇWÌãnJXîÜgóS¢Jª8*GpÅU*?Àà’„2."ó÷9=ݳ™Šc©$ìôNßÎéîÑê~qõö£V÷§… MJ*úØø ÚF›¶µø5¶ë:uìw ËkçiÃüíÕõ)¨Í ÂØvIµxhcrV«Óf¿ðN9Û@î[§4=d%x¦W¡éB«ó;“šÖðËïV‹«£´ZÝ-:2¨:åó¨¯-”—ðÒ"°ÕËÕÓ¢Ò¡^ý =ËzCTøË‘ׄ®V¯YY{RþT===Õ¡m|Õ/½¶²Nj“`š%7t²!tyŠ=ô+Š•$ô¦ubó„Ö±•5*–5¢q,‰l3Zöa‹FYã”$"Á÷pjÀ¡Ùgåp ’ 8&L3Ž)0.Þ²‡`eí†,´a‰¤-ï%kïØ¡ÅoeGXE= Ì6kVÐIv3 Q³[<,&ôÄ¿ ™Gá/JßGF"¶A…Â~:Ûw¼£s]çgk ‘';ô¬D’32WºÂFd4Z¡#$¢´}^ã°Þ•¢â©ƒJoµ$]÷•Äæz¦#¾›ô’¤hazù—ŒƒŠ£—NyÅùÈ’ÜM¿T@^P¦N4y5û¡)³ÉôQ%‰I>ï`˜±Ö\‚­Ñy­aQ·ìUkÆÑöÑv\ƒ¸ø k©)ëf;‚d[,DAqô‘RšEÑ òeÄYÛÍò )f&™bâ™)XG?`ÅÖ°”ÙÅZ˜£Cé°ù ODb؃•f%ñè’(™)>%5Æèòf̜ơž¤âRà¼ÌM;E 믦¾-–5k¬ƒ™°ÁkÖ`¾ÆÌçh}ø¡õ8ŠR3%ÊRUc~ènδÔeA¢TÇS7AkçG°Çea£H„®¢_Øœ÷+XSfen±2c"§á ™ˆ’Tâã#îƒ@[Z'0|À\™mÇP›– ß8ÞA'æ)9´._©n¶#¶if!¹ø•.¥I(2= 5¨Ã$ ªÚIŽQŽ6¬ Q6ˆ‚ØlÇöño2UÇõØ',3Zv¦"Jk:R¡(pèݤ†ÑÛ>N2@ï{[z]F’ëÔˆÆKiÇþilË`oåÀ(F™Žn¯¥Iœží`&‹…Âõè£TC‰¢TK‰²TÓ˜F©·’¨”£ PÊu@ % °E™åÆú Ìe=m‘"aªŠ…Bå¼#68i½ùþzñÃâêíG­îO‹ïV D.­â';#îQ hõˆ;Â=nPm‹Æj³XæGµzZ|ªV5Ž¡êë¶IÕ¦ÆíLWûíf½S/Ÿ?ŽõRÓ†sýóêýâêÆ)(Þ-ºâ,?аDób dg°ሞ0²£›ÃQûM¶]/‘`µS§K½D=WäçüJÕ¡ú²­—€µ:ÕKXmkC¾;§ËÐæÄ9æ‹EK¿V­^³3›Ý²Ç§§§ºrUsÊ™œ›çín»‡—çfsx¼ÊF߬8pÓQ'rXSW>T1NÖ‘Î8²ß¼ó„m‡Sušæ,ã(TFÝæ0õÃ¥‡S¤DŸ·‡ý©¦üU½ ÕúXãFéª>¯Ž5]«؈ÕåÜߪóA­ÛúQî†%n»1á¹ÄM¨EÎs'ð#{î÷÷Û}_0<¼OÛóƒºywóA½eù¾?®Ï †JõÏŸ{~<ƒ…j{ê›ì±%W©F⪠C–#ûúi»#æB¦ vŸÕQ«-‹wòZ}FÂ@¸:|ÙÞ2Éý¬.ÕíÕÕ¥F†( à@ U â¼C)]dOO¸È‹Ô*y”W£+qtÙœ•ø8Õ$P%ú±•èmÈŒ©Žù/½ìRÛ½:?ôÒ‘ÁÒ1¯+¼4ÚH‹©¿î·µ«®?࿾™7ÒT}¨]”Æê×ÑÇ’î¬:ýžñ¡›vÒe·±p«~<õGõö²½íç®q)µsmì=Ú³¥x¢žyV›õ~8«ûËú¸ÞŸû\À nû¸Ýß¿Rw—ý&×tOA\ƒMF›l’ê¾Zï¶çÿÔZ›ê#®¬´jfõa{*%›1 ¿À %/eH”Gpu¸%²ïjGô£›@§ºí³Û¸Àú~Ÿ;âü°>«Û=R~S ”,m<<ë'V([_õ;¶²ÇNᩦúk_#øþ~"‡V—‰LØèÉ´ºéûÛ_Ö˜Ààºú÷M[|¡&ÓÖø_ÚÙjÇ?Ôý.?nòh9<ö9{ŒÁÇ~>©õþ–Ö§Ëý=%Чÿ2_.=jAþ+‡(‰lÏ`›U”C6Q®{@Êe/< ‹fµà<þ}ªº{ư‚V"R.<†ñ¸©îþª­œÂàèÓÙ®;Pn‘ ÃûWÝ‹ŒÈ>y£ÿoÃÊ-÷‹Ý¼ã §<]r½Y7‹D&»Å|'Y ì˪6Ÿ)âM[>‘©¶ò)Ï ‰¯áä4¶m ©âOº1+àíÎè/ʬÀxcÞ’·õÖ•Tèñ_H1LÁ­VD f/¤òI­=ÚN0¹=%×Ù>­ÐÈVlÅðe3¹]a`bû y7ÍÔΣn¢Yél…(-y<Æ%·åÏ#· ߆ãܔƳ[9ya<Ú{)¡\Î9pÌt8ö]=‹üǢ¼ç’ãLá’!s©v@̉'‹è'å#C®)ýŸ ¹¨jneUÌ“r–Q”i哹ï>ŠBy‰-‡ ³aÓ°àu;ßtTf]‡YYîÄÔj·A: Š8´Èb«2¬pñ’+€Wj÷ýkìGèN[ooTäÉ$7îƒÐe‰¸í7 ý^Ÿˆ@×]={ûi/X©ÞIF+³DOKd¥Á,Û)?ÔnÛ¼ˆBe³:¼:ˆªÂæ’[íïB«¥ûã À¨•¹¤£2•ÛÎЪW ç%*¿ü|T4N[biX˜ðáûà×®³æVÜ¡Ã/‚(%ò–0Tö¾þÙøgþ~–7uÜãÝ÷C¥ï‘CµÀí»\Ù° ]ìÔÇx8ÊÂóäÈ';Xã{«4i@°Ùœ ŸøZÚ6Ìh±WH0™ç!ñ.Þ÷™}ÿjø±?ã/SÃó)ádŒÏŠDú95¼‚¡ê©1Blí…Uúùˆga×öää†PƒHYs¡å¥yd†Ž"ÐC‰”A×Ú›Áµq‘žÙòâ´Zëæ‘’½Z&Íì1)ݬíÐõ2_þµõ‹×ß3%5³¤ÞMWÞïéÞíï‡b·2 þxXÏA‚à"°¸¥}¾eR|¶lùCÄ~ m Ù焵üOÁ….ù-ÀHÄ­ endstream endobj 377 0 obj<>stream 2010-02-23T23:09:40-08:00 2010-02-23T23:09:40-08:00 2010-02-23T23:09:40-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:F637DC8A1321DF11A166B14B4D8AAB0A uuid:F637DC8A1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 378 0 obj<> endobj 379 0 obj<> endobj 380 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 381 0 obj<> endobj 382 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 383 0 obj<>stream H‰”WKs$5¾÷¯Ð±ŠÀ5¥·t3,AŒ—=<í²ÝÐãn_¿_fJUêÁ³ÌúàêÌ’òñå—)•Vw«Woßiuw\y§¢Ž*9eÌ0õ8­nW¯^ÖO»iR¯¾¿ÔN}ýúrõêòÔú¨Æ![üáiF› žÚiÔq½'£†ŒjµQ°Ó,k µ€{IÓ¤EùØDlìØ†iÚ¸Á„¦¬ƒQ·"¨ìBzïÚ…`Î5ÕKeâLKPmíl>Û…ƒnxB<“}¬©›Ë ÓÒ> Àº²ÄŘ ÀYÒ],¬xFÀ$;¸ ÌÈil¥H)iÀ_'0|L´}¬iw #ÿ®1ECÀºÁ!yZåÑt;Öx+›)I4ª ,›XŽÜÚ°; ÊŸ¹år¡ÅhENQºÉh™iÔ¥è6ÉFVø ;BJ,Ç8‹…W±yæ“NöÜ(MvM ËÙ)1d‘β `nòÄ# 3ƒ&ÌHÑŽˆ¡,;À£—]+ƒ>Ô Ec}V‹0Î7@HS (1e% ‰¤ö±ÉMuç Õ’ãÀó7.H‘Œmç”áT¨!†ÑÏ¥(¢”‚kÕ,àZ6û¹Ú‡Â‡9†Â—9ÆÊ¨%‹Ê¹šgådÅ¡²vAÊq•f(!úÔ ½ÈµUS«U ”bž÷…lÐuØ™X:ÅlF[öŒ’¹Ñ¥÷%Ï‹¨ ÖF€¨XKè2²èbTúD‹&i§¾à’|l‹Cb=¦b³€Ž€Öè`í™ "Œ^bÃøT*‚€1¥@œµM’¸DúЀ€+¾K3L²Ã9z˹)Su‘—>ÍX&uµ€ûvÒ×6SvHh^Pi‰7ó¤—<¨ýMÕœ(y@È Þ-HAö¡bËXÒÍ"y5cÍ7 Ý-K§Øp¶€«9(õn\BÌA¾ÌAF5iTÎÕD+'+•µ Tg“kÀ„\À°«Ü¶JÕHÁª…ZÐóÎXãÎõÍ÷—øÀ½£]M»H†n„ˆÔ£ù¦§',üújõê ˆ¦®nWwþQeåyENêj‡/»ÕräÕzE¿ÔÕóêçîÍ·ý…B÷æyª·Óž~ånê±%wýEÄãZ¤Ó¡ÈªÇÔì>’B7èþ—«ï„• øód}äPä;Žoª®^K$8f) âùù¹Ç—¦ï†?6Û û÷ÝÃú°c³ß\­Lôt354ª–&ú\t‰¾%þ‰Ff~ ïŽýÕ¯KÔž˜¾^àjb–P3-–}Iþ÷[- aÊõ„ÄWF‚R„n«Ê’Ü#ÜîKeDõX“šQâˆõ0Æä¬ æñ┳; ÷™.d$p¾¾º%ÍoŠ(áX',ðp†• Ù“Õ @¸Tâòþúá4!ðBgj¨¿3ùÀlbò$WÿùBíÿ)Úqñ¤ç߉€¥ï j.¯X˜ßýøÙV)ák’%ùHÀpþü‹¶é4PHúœ}¬A°0 8–y4QRýðazü°™ž Ã]!YµÍ?4¸s•mSÜl·tÚÕýæ¨Ö‚¯[ð…™»Ã‡ÍÍtì1¡:u½WøêqKïÈ!Z¬;ÜÒÿÓ=;×ÈY‡,]´0“iq2õˆøÍ·èfP™›yz¼FÓª5úUwêbÛío7wOÐopù@#¼ß(örQÝPÐȪÎ\ÓÍþÔ_Xž˜¦Ýã-CSb=U*툦(PÉ/”Á#wKQ¬Ñן5Z:„ìó/©è2ÍåÙüßjq¹=¬{:ºßÔ·»‡í´›ö'Áã‡xÔ¸u,ÿSÕ]Ô•QsÕ©ÖÕ AÏ¥ ®T‡ë÷ÛéXW”òŸêýÄuBÙA=SÊÔkš·Ó -ÞœîÕ„ ÄÍþG¨ò€¸?©¿ÃðÜ!Žÿê É~d¸I2kñUÒvê†jH¾QxÛí®i^iø8’dº¥u®¾TϤwt@àÙm@£ÝD±›ÄKÈ!ЫÞuÅêMo©·èåá°ÙHÅø¾²ˆ¾,l Sžsp¹6Ö¤‰‡IòçœØôúpÆô[u¢º0É«áHNc_Ìûìê ‰"¾­g¢§èæbr¹Ø™:¢6¨å†hÅËwÒtZÍɹÍ)-NÅçÓ~óûÓÔdrs zàZBõPH†\=?nN7.“ÄÒ‘­‰]7K’ì©I’¼_¦ÅÃáñtdTŠ’êLÖ{˜&ž’¯ãŸûõ}qsØoþHßO§çiÚ—@o=€;:*› …û%ÑñA®[Ô=bLlöwj8c§@Ï<-§,»‹ôߟ6<3!S³2d÷þZ @@s{¾PÓÝÓ´_ÿ©æ7@!v[Îáx¿y8"^MÙH‰%%€ƒ±N}¥J;•Š4aëùÑV¦ZmöB™+ÄmºçËÈÝmþ*Èr¯rdF 2îqžíž˜ðñYu+½~s}ºVïŸn©Ílw <À…ÇMOý¸ï‰|wuzlh¡Ù¯Õ±¼¿Ûòs–"Cç4/jwJ{mà”{:ödÆtÃ?Ïh},Éät2£/øg)ÿO½3DøÞf<Oô¤8ÎÐKß]ô–î)hÂkyîåqCk@íŸzK#t1ä˜FÕÖZrt€ý—ñjYnÛ‚wÅ*‘&^™›¢X*Ÿì*ÉÖE—%а!!QÊoØß‘oÌôÌ,QIä±àîbw¦§»'Ñ.iè}–uW~LÝ;—¤„ó N&¼cTóûPVýŒ0Àu=´-lsŒÀôæ-E‰b x8*J2nŸ$G¾;©TPDÇŸéT\‡üö«ŸÀO”BÒ0dâ…Ћ§¿gKªGJÉzOºúBˆ…ÒEN‘$WŠ”Ì1Š$5¥äi&ÜŸ ù¢Çÿö!£Wç˜P/½ Ú…ÈØYé.•“õ¼½DÐ@ µ$æ¡É¥vdE%+ ?ò:¼'[ŸÀ;ò_âß¡ª È6 Ì ò…´3®¿%sF”‰8\ ièGeuâ=ƒ]òÀB¾y6™í2W¸aœþ_ÝÚüUqJÖÈlù¯BÊ– î\ÖS»@ý×t³iÈäUNnQJüèèä@'aYDZA¢çâhƒ† ô-’Zo7ç6'cÃOÌY€V¡B_<µ¬úØ «Àü–Ù–E?õ6e%‘-ý7ž%ú3Ä»6d2tÝfP¢‹!Œô¢!_Ú<Ë[3ȶîK•ò@I )k2Û_~eîUô]#$Ñ ’ÇýQ§ )ÓÆƒfhÛ€G}‹ KɽÈfZýu6®Ð÷¥ŽåÏI;@’ƶš·Û÷¬eHyLg%ªMD¬bæ58N@ôÖE§®qìxUu’ºrnn¦–P aìB³:\Ñ5œÅìÈÏqöÀ'¦Õ©}¶Ã¬;ïǵ¨h£ÆwèE=KÞ‹büö†¿íJóŠ,LÿÞ‡œwÓ ÄÌu3tæBÜòÒ»õWPtü±goòt<;Ÿ,ê¼;ãšÿ)‡cc[lËZynû·÷—©€2¢S†±2wðþÚÂÉêv/`Â:ï’í×0ëw: G¹¼½¼¹óy®.ap&ží\˜ÖùŠGgêÓd¢Ðc©„Z*¥£àÖÅXµ‰D´šçgC†«jšïòÚØ]aó£6è,Žcâ9ÿSOý¨½r†Ó¶@5ò€­Ò1D@¡´Òã”áQËô¾ÑQa¶º¨yk)Va)ÌOÖøPʸß5ƒ¸ÍÞììc)êEè~e'­L§38}ÖèÎ…T‡\{í‰×„fªkhê9ÞIkˆ¯Ð>½p±‰ÃfYC²!å…[i/z;q}œ†Rþï|²˜ë”?ËÇ[ë?:­–•÷¦z9} `¬=7ÄBÜDî{÷ãþüeˆ2±Þ^‡æ ÉÕ•ÄeVVsLô}óÀ¹£fúT齞 .ú*g)(И¸DP·¹3üÂr[ÙÛ³¡Š’‘Æ–ªÎ‡]Qû)w±DC¹õ#^ç Û¶Ç=›†ŽÉ]˜šÅ …À„=ú6¨}ÉãN{ÌŒn‡ÂÒqA¤ ÇãºÊ7R …ä\ìV]Ê‘ºÞ.ÊP žŽvØ—}¯èõ‘ Tì~Âó±q¤ožÒüèøÃ`­þUÛ$åE ”ÙªzÖÍÄу^ Ñ«ÎÛIÝ.²Ò+YÓ¸-ÕxQÈ÷ÿñé‹ð zLÂ.ÇC9í!²š“ŸÝ sZ‹¨öfè VW$šŠ*q™%g3çΗKP킎*¬Cvt/Ç,zŠÓ ĶqÈmÝãÞäVËDàhtÄ„DE§“µ¤rú‚ÐL8ÖÉ®x4Q`?-=$Ÿj‡ñ®8§cÇËh}ê_øÀ©:>ÛQ ùpmÔoYg%ÀŒ–’#â+«3e)ÎBôkÖ|ÄÔ\ܬ»q6îÃÍ».¼]D endstream endobj 384 0 obj<>stream 2010-02-23T23:09:41-08:00 2010-02-23T23:09:41-08:00 2010-02-23T23:09:41-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:7A30D4931321DF11A166B14B4D8AAB0A uuid:7A30D4931321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 385 0 obj<> endobj 386 0 obj<> endobj 387 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 388 0 obj<> endobj 389 0 obj<> endobj 390 0 obj<> endobj 391 0 obj<> endobj 392 0 obj<> endobj 393 0 obj<> endobj 394 0 obj<> endobj 395 0 obj<> endobj 396 0 obj<> endobj 397 0 obj<> endobj 398 0 obj<> endobj 399 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 400 0 obj<>stream H‰”WÛrÛÈ}ÇWÌ#2¡¹_¶R©Šå•k·ÊëÚ[~pü@S”D‡"e‘’Öß‘|pNOÏ€€#'Y»lb3}9çtPâº9{ýN‰ëC£}£.ôÎ Ù+-¥Á¯6)%q¿n®êmëhÃüîÙùÁ‹ÕÆ S2Dk”8¬v³Âšv'­Pt‘!2Ýò}òRå{:öRóÍ—Csv¡…ÃU“È¡HÂå8>Ü6‡ˆ"‘ذÂrxjZ»á3Î>7f…¿œ‰¶½GêbxŇ•£ÃÚ§§§ÎËÞµýï›íf×-®ïWûÛîãðsóã€úaŠ@/°5ZÔh#\|?_t/ãEIú…f¬S[%_xý~{Ó4ÌÄò\˜ïW6Fq®÷ÒýÑ(åÔÿ_Ì3aÀ”V³0'ËsaþK1J£Èúmñif<¤>&÷x¨NKZ§“D‹ÓY¢ÊíòWÐ*ý:›Ø§6H߆|BÉ>š<Úu¤´œŠ(ÍŽ{Èâ{ÒÌBíÊ\Y­ËžŽ&É3ÆX uÄlǨg{loC˜Yü¸i,ì ÔŽc>eÒŸ¿ß«þÝù/(?c|Æ$ÒI< %ÅñᣗðˆkÌ —bóx[DÞj¶«X&Ù‚÷¬ÅÙ^¦Œž±½vñYË©"g0=ƒF«–iN–&Ü,'“ +Âu*—½ˉ?,¥yÎrʧ\ìhA,}V›á¼«e²Ç÷&¸ç,“Ú¾ð¼´t°JÓ¡TVLV‡‡aZS½ònªWñHÓZlÀžYuxc±6N5„=Ê,ÏØG?«eŒ5êùØùx‡xô}s*Î{ÃGzή#TXÊqex$k?Zò:”¥ËK§LYG±Êàš-ž7¤²Á§¼öÕú‡xÊ•,ô`¦udó„ÖA–5Ë'‚¶l ì3ŽaꉺÆkQ9Q,xNX´#‡àª,Þ JRœ¦çäg8‚7emÇ*”fK)»Ü/U;Ë]¨œ,;bµfÆ5P&²lg¢fÛÜ4zÂÈŸ/•‡Â_(}‰¨Ù …㤷K¼#Ù]r³µñã‰bѶìP3‰D«Ë\I•ÀhÈB‡œ„,h»¼ÆÛyª¢â©¥KUŠ6}c1YÏôNog=g©§0½ÜsÆ‹AÅ;¶ŠyåyË–ÜM¿$ WP¦NÔyÇ¡)³Ê'è¡J]ÞÁ0c­X‚R«¼VðX7U)ÆQ{Ž!k_:ãºhÊØÙ_ª­BAñ#Æ8Ë"ä9Ë€—k;«ƒ¦˜žTЉ§§H`܈Ÿ0š}ÄÌ.Ö…9z)— ô•Å¢9‚)ÍJæSÒÇr@—™âb§m~œª§aÔSQ\ô\7〹i¦Haý͔³Åð Æk¯'lðšO0_§ÌçÉ3~ŠáÆÖã,ªfj–UU§:ÜØÝ\iÕeE¢*÷„•ÃU𠉵u'°OËÊFµºêùÊæ¼7ø€ÑuVúÒ-¦Ì˜ÀeØJG*IÆD-*òë#> ÚÚ:y„áfël”‰¡Ö’…¯-ï 7æ)9´®O©4Ûdœyˆ6|#Å8É"S“$¡Aå'Ej'5†òjS1Àºe|9à l&±ü›LÕÓúÔ'l3ªìÐLE(­iËòõ'ÞbL½í¤ô¾3µ×ËH²IœÀx©Mc9>í2Øeya,F™^1ì„^—&±j¶ƒ™¬*×§U 5‹ª–šeUÓ©Œª·Zh‘cA¡ÊuD (°…2˵q˜ëzÚ"ÕÂTU•ÊyG¬ð¦õã›óæ×æìõ;%®ÍË¡9»°B‰áª¡o|H‘/òSHÜŠáß ×ø’’OìaÕ,èðO͇öá°û+qßáǶëN¶×›âkÇõý¡CF­è¾ÝïÄñf-.~ºx cdã«·¿ âÓÃAlnýãzrjµÍ¾ö«,páÛãž÷„ùáx÷pGŽw»Ù]ç‹b¹»„ Ç.(*ý^ä›ï»øj/Ñ}~Fa |Hð1¼â M­Ðó\áUgÛ>¶[å` Õ,·ùbsü*:¾$#Rç›—9mQ¥*¶û'$Ýn—Çõnõ5ïËÕªÜ>ÐfÛŠã^\.Ëœ}ã¥@l”¬Ðè%+nrV½ºú¤½á<(ÁHÞÀY+6ãÅ%g¾F¾y‡¸Úß‹åÝ]YnVËc·Àìh7û]=t¼©Fâ^ñ˜m¿t Z7gçôÙ!÷‘‡Õ®Qx]Tœ.%™ln¡í€t””ïS·HxD·`$eª-¾Ðb«a ù†Æš%{Ý`"L÷í*À²ˆ–°$¦ñsñj_>.Iœ¦Ýæÿ—DŸk?ÿ¿vJi@Ôs÷ í…'L±G“66$\ßY¨u{¹Å¸[®ŽŠMü}Zß,7ûûŽ´3ú¹]î¾ÕÐ ÅWз¢ñ£h,×´‡·\ÑÕAGfÌ/Äáau#–‡²Ó³aP<×䌶‘²?Kâ_ˆ²:Ë®TeÇJÏým½„*ïÖ÷Y¤¨®ÓÔzhñw(¶tÁj ћ̄.9Ò¥ ]ÿ¼ rB»¹Ï=¨ášFÈ‚‹|ß%Êžz¦½,Æ‹¬g×n·|t1äžj÷×l¸¡Éž0rÙð–d 2`ÉyKÕ¹çPÈ‹‰»e9O]`‘zëÌ(<íès­N¦3^.KNcIÞÏSh)M`‡ŽîbWÀCDWSÕÌbبlÙ¥Á–=¶ Ôsô<ðüfɘ¢aeY:×¼üùåÿ#‰þÑè³”Ý\-JPÄè0üçO¦ê¢f¹Åán}h¶Ûæ~ÓívÉeÚÂäp?¶»s¬œåÙ£Kcs響ïú™(¨q>n·ípè$H¨2ý«ˆªhß÷íbÞ5ƒŽØ±Ö×òÜ©½RÞlô0ƒïÖ,•„rZ „û_7›Ìž™ÔØ‘ŸL1Mf'w³@ByÌÓúA½G¿‘¢ýV¡uqîçnsØ¡¬Ru[ò‹n›—Ëäp¯Dn3¶ÅÎRµç9Ëp`²0i¤”Åã‡þ6&eù”Ö'evž8µOœŒ‰Âè•P‚”§*\jN×V4ejKºË’¦Öº¼šª|ô’7ÈYþùq˜r¤ö9R„E6创ÇyvfŸlŒë´ô%ŠˆRqZ=Ï3¹¨ÑWV±7 ò¤\À¾·ÄàÎûÒBùø¸XW%ˆ&°)‚*K¾)ËcÁ´¨òwu±Í4ë% –L9ÄÔ5 -A]iäeTàØÇt­6.`aµ­²Z‚‰žºˆiVúý–=QÚæl"«ÜnO«ê)ËóØÕŠ{ZT¦s)‰0<¹˜ 擾Q]//7í!2KÊð‘§GªßE.I*öß*uü$ç)!­›í’Œe+Î|¢¶’é _þ¾n{J.j3%$c½„)÷›v+#ÔEÉæ··šÚG0r·‘7ƒÔ?Ø\(tÜoÀÆò%xwuó,X ;wzü£ YÞŸðf¾»»y¦Eýø ßW*]ƒÆËÝßõ&¥’Š€98JtmꟇD{.üPÆ@eVªÇA±bN˜qøf²~×{ p61š‡‡àC”zXü‹Aƒ¢—®öUBoVblê⇡ýª çF¬ø®Ðç_[4ÕÎÃ[,Ã×W<ÙœöN…|ô:‹ÝxûY,MəΨ<µˆZì¶÷]ßzÞ¶ÛhÆé;« áûC·5„f¥D|fjÔá8&kzÀÆ`ö#ÀË•;íp¨¤ªÏ$²œÎd¬Ý¯8&Y+ô¬à,øÁ}Ãyfq2î!ü­ÔmªúLÒÒéê…]½ ŽhéÿV\¼@ÜÁ7Á—Ž?ƒjă./z‰Â$W¹ïÚ±jB»Î²Üä|ßá1¶æÖX>]LªyZÖùDâUUŸ‰'q¼ªŒÆc¥ñª4Ï2¥qàiÜýÆãQ“¶ˆNLú¹ÓÑã£8ìvò]O`Ùp• '¨‚Íhl°oÔ V k;ÍøC`ŸöŒW@ù¢[ùF/X¶ö±ƒ"gáZâ×0?€ÿSW§OûÁl%)‘†ê‡ÿž:Q#ü››`þ…*'0l‘²\‚™èú¬cï…Ã̠Ю’S³â.‚©DÉçŽ7ÍÂÝÏ„:)ªo…ºœB«œ”úûŒG„QNJÏûýî„YCÅ%ÜŠ‚yدƒQà8çËÃŽÏÚ~~9øtÍÝ99Õc‹áôÝÐ RJ_“ñH”e ›ÂÝh¥Zî°„_5|щ­° Æ÷Cð%’ÜæqÓp9<@©¥¨¨ƒí—þ½$ï¶mw¸Ssv[Üq¡÷è° <-výgTJÒPõßÙ&ÝòÂ:ž7*r.ìùñž+£ñMÍÀÏ‹üqýUÞg,¸y‰™…¬`°‡çZÓBVc °¹ÔUK]™®Zý`UæYîW½¶‰·òDh¯dÄ5È 7´•sïdG~]øÉÎF8Ä2••öFN;ª#("qgmm2Vت€²lîR%œÁò„zwœ 7WèõàŸ ö¦Š½p¯°rfQ"½Å­d×ë+M”REµÓNv™³…"WšD0BüY Gë'Z‰-iA`»Ó°? j…Ù?Pìý{Ð[X?ƒðÿ¬¹ $.’ò²PêÌD£¥Fwý—¿æ("½oÐámÓ/$O5­œLêMãSÓv¹¸n:JTf±»ïäz{2mnô_/¬V Åx½ŽTe…F޾ï` è4 ¦žC:D•Y1ùf”j¶°Åv:U´WV†¯Þþ¡ |Ç÷Déð(ÿ¹˜È~ñV¿½y¥!É^¹ðø1²–õDJ‰lˆa\]F‡Âg{ŠlÊg*' þyW˜Œ¡êé_Sø_ÊÞ×w se)ê„OÍÆTè+¡ÀB‡SîÉ¢©ÉÛHR3 àXD€_ƒOüº…ëÛ×W9G%8 iÁηŠC݈OÊWCYæ•ñÛ?î`5©€¾kð7ÏG3ÈkéÖ€͉ç…&™½O”ÔÒƒ´F@¯µ|>4@½eð¹ÙœÄí+Í> ¹Ð5(X÷§ÎœuòÛGBë*˜© f‚a0ý½¢ýQk˜Â†E]Ÿ)òy»ó§ULiw–¾_µ)—Ú1´ïfXfAìG:Nµš{IdÔ\<+©S(‚7“®WzŸ·‰C)ÄtRIÈ5öEK?øœ/3wv‡dô†e|'!Q<÷2X¸¬ÇPàþ*R3Ë=…|ˆPBÇ!_g™d"¢yóìS2sßKCgÜ7k*KÆ¢TÆ2-ÖCÙáøéüÌÿÂ剴Ix!]¿RÚiË ÙWVÖ—>¨²©ýÜBàºR™ÙR BNl2(vSSjØt9'´ WÜG.!°lƒ„92SþsÏmýDׇUË:ªÔ'7­dë–*YÊ1…]äQ>/ŸÚÓAy'ÚŸ…ì¾`žlFùzÕ Jjõ<« Ðð ºæUeå¼ödháap&áFýg"Àê_O±`Ь2WõÔ:ˆ•þ¾$9:zè“nC•Ø`>aF#™åš<¼Ä¼rE~¾úÔ3úŇŸd4">ÏË‹µµ¾…ï·ÍfDwÿáùªªpß-êtÑ§Õ eÅ<  ´C×i ÀÕÓø ¥N¸i—ÝIZÜ-M_Âázô¢ýr—'“al›ßØC𪨯.—hѤÁé XïÒ þÎ/NÚK­V<ž>ë!ÂjYȳýÂvë½½Èe——OÌ]·Q›³‘.Âa+ƒˆÉ ª˜-‹ÖöL“Ú—Î7wÞð€©Èöûda#ê¾o[Tÿg½ r†à=¯ÈlïÚ‰¥ TŽ\PoÜ€TôR¤ÂÿÅìÚNÒ”*¹ÊØ^¯½³3…+¯/ø©ÿü€·r„C¾ö3§±!Ÿ/ö/ˆ­ØU“ߣ  œôÔf¾ƒQBQí ßoöû¼ªu‰ý]íÚ´fV÷‚öhX§=oÁbQ~·ê‚ߦahËȵ&fÖhZy6„ƃ]ÀDþÙëlûèþ"•Ó›¤ô¤vˆâ||‘Â!d«úóíB¬¤Â#³þ4È ±þð2BÌ‘ÂèÑ$è‡}eÊ gEÝËšcy´ýæÜW‡Ê9Ð,8(¢H¬H8΀Ny{D°¨Š)‚ÈBg®"ÚNS¾Œ`†µäµ8¼aIùÊ`dØ¥ËÃú‹ÃætpÐ5( {)`eMk¢^tcÚŽ)I´2Ý¡çæÙèþi¦h‰’툆Æå5ÐéþÔ.í_üÀ.¾ìýç; endstream endobj 401 0 obj<>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 402 0 obj<> endobj 403 0 obj<> endobj 404 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 405 0 obj<> endobj 406 0 obj<> endobj 407 0 obj<> endobj 408 0 obj<> endobj 409 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 410 0 obj<>stream H‰”WÉrÛH½ó+êt4¡Ú—¹Ù´å°#<½˜3spû@SD›‹š”,ÏßÏ«Ê,ôÖ=á ™ÈÊååËDQ‰›ÙÅ‹7JÜœfÚw1ŠàBç¼ÒRüÕ&¥$Žýìz¦C}m]68{±8y±>AdŠBâA†h§õ~æ¬Öuxá¤*?”SÐ[óµåW¾K^ªòNÇNjzùt9»¸ÔB‰åõ,å@" W,p|¹›Iž#º4^,׳ü„œ—³·ÍåËvî:ß\þBÅ‹~ŸŸRÓ·8’šc;ø³"éþÀ²h}šO>K¾éTûnù IJb(ÿ¨\m;|Äòe¢\É„’x||l½ì\Ó}Þl7%¾k>wëî¸}¾ÒPE–/`-д~~„B;¾‡èJíòØõÜÙ.&cÄ\uZ©¦lLç"%ü¯Š@ N´óŒÄ“;£2‚›¬ðÍV°Ij‘nó³Ð$J%«š.ZJçãS2ëL—›µ+ÍBJ5«)ƒ~Ö.‰Å¡ÍÞ÷×››z³ºo]³9ì‹>g‰ºN5û+ñrw·í‹°Cr¡é÷Ù¶¶8C-pÁ>kþ 7¢0×; /\T©ó…£ÿùIì+MsúÒ d„b’^<;¬v%.^/”OŸ-f¿M†À›2_èYž$e•Š…;H’£ƒö ¨N¦ v31È xà”ØÎ’E謷Ñ-’‘OQf Ö©W%_Gó;!\쬲“£âëV ¤  8˜«<С °~TsÍÁ¹.˜ÿ+:ñ·‹ü*:gý4À ø*Ào?,ÁÛκ4ôaGݤ1^ci†¿ß˜ê‘S=9VS” Ú•®@Øü×ÙTüa©Xøx„¿ »¤\YêVæ„‚ìL-»D©‰GT¢Æ8²H9Ò¤JøðjÊÇ! F'å,‘‡Vvjáó7cª0ð&Q`‘7Õ˜/ÝÅñ½Šß,þ‰ ø ›æ>,èý£PR¼oßIq5 ýwS,X1äðf±,’™ØTÅ`u'ã· ›V9Ïè;›¾!uÄ2ùiVL2Ihšf’0YšÐäi¨òà7¡ Æ}C1xÅ‘XØ8(BgT,dr%ת-bçeø†bRÎ_ï%±fUšT£$Ö "*‰¯ˆ›•L¦)©;?e",¼œÒJÉEõ…Æ+Šû/úR3=¥¢þ¦†#XChn#BìH‘èÓëS%0ÊpC‘“ã@ܽ|“ϲU¥BÅ_1c‰ÚÑnÔpÇí&MˆX^Zÿ¼QƒÌ|òþÌ"r¥ÅA…| ¿y“ €°Vc‚ØTp¶6ÉNêKø¬OëOµ0 D'œ#ÉP.R3¤wg²–¡ž`afº:æÁNb`hS¥…å]”c–h3×0Ñ’ˆÄÔJœwAÁå»ïˆîÙç» O}"”!Ç0éÉt‚:5Z˜pæ€=‰ Ø@RÛˆ'5¿Ê£±‚0γ"¦+LÕ$(¤šÀˆ_!L`åÚˆQC­ªj+Ϧp£¼W<ž·g”š=pYš’ŒŠ`Ú± Úú÷œ„%d5L¤ÚûPÐFr6…qç­É2HRgÉNä=•ÎBd²Œ)¤2)c† Ÿg5dÂêI•‰ï/…üÁŽNt‚? ŽÞ‡˜¦{´Šã„T¤4a‘gÒóNÊßd²¯(/ëDÑÐÛ¨'%` „Z2‰=Á3§IT<.„‘)›š¿“|‡¨×ƒTïÚélQe™$˜3 êãè:= AT¨ITªÔ+™Æ**Ýj•Žæë®B ]äõm}ÅqDªÆ°=wÖiñÅ<¬q±zþzŸ^/Þ(qsš=]Î..A±Ä• CqÁ—‚žTþ|+\ÒÅr‡»ÿ ~ I‰¤—ëáéqö¶y~<ŽâåþC¿¾ßöbµ¿‹Ãñ±EͦÃGƒ7í»å+„³.á"T¢•‡¼“<.ÑF—hðI¨‘,EZÞö¢õÍûíaýQüþäuVû¿=›+qùòò±[­­Bߚé¼=¶ŸÜ¦ýŸ›»»þŠ’Ðø ƒn"øòY .r0ô¯{ÜÜߊ÷›íý|³(²U¡ÓÍ!Wãšc)±Õh|Ãu#Ü¢{(n[ü4„úãfCñæ5àó—Ãê¯Ðü£iÑÚæy;WÍbñG›Ý"þ=•þï3^ U€ôxßžs×j$%.msµ/žˆU†¡Yßn 0MnDÉó¡¨û\ƒm¾«R$™‘³M©¥TQ/~Ä6GT”šI“ù(` ÅEíòò§ïÀº¸e\¸¨\ê1Ó\ŽGÈŸzWG÷œzû\»n:Š£°x†F¾m¸M†ÚdKÞú{yÃJÚ*‹O«Ívõ~Ûsój/š§ Aß6× ÿûØÂMZv»v^ŸcmöWý]ÿö÷b½¥¬cþ‡‘~¸UxÂ)Sœˆ™ë‡\KlFJæIXzbþ©ãáÒ<Ë®N=áW¤ñAçéÂ7ç%dÊ!`Ò˜ýõææá¸FùåînÛï<©Úå‡ް¬#|±8á:x¢Äi½/Á">¹RèU;XÛÍûvž$˜»Å_“絃O£Ù`^^ȹ̼Œò M&Ÿ¹ a ïâ®4þ´¹êOà§oÄJœv»Õñ¿â€Å¡šëv‚pçNwwçÐÜ÷Ô)ßYc&Ri`´¢0Wb×ïp˜ÑZ×–­§@ÝùÁ¦Õù£bq¹áI;6ˆ#-@,´`mædóñâé(䕸³x¶9Ý1#±«sõ>¿OÍC‡Â®ÈðÍíæú^üÞßà@ü«Ý¬ v¹ž¤†ôL¨ëysBß°WæØY  ,äiçýU›¿XåJYƒ.ožþ’Z°n[v;9Pòèüüô*YnÉ‚÷þŠ:" T¶ ÇDØZ&|è±ÃÖtz. IS¤BåÑßOæ{……Ôb9æ` DªÞ–ùòµq¸…yÛóì"’«ƒ6p‚XM¡*O¡—˜ngÚfø´”³büÖ‹=ãDèј4ú Æ`¯÷@êášcRχÐdÍ,¾ }\º¾R²5¡S »èšê#æB*‰îi=v­ü¨ÍRò/ýNÞôl‚_@¨ŒÞl’NØ„4õã\ªÇç GTw¥„šEõʬjMSW›z¹lÚ¶ …;ë¯ÀÎ2)ìài9`δ諦&a[/”Ú6Ò>º ÄØ&;}½˺õ…B?ŸøâÒ'0XK0[† €&ÐðMñZÞïy8Üîbº·ãÍp³ ˆ ಽ<]mä›Z?mtß’¤À³×Õd½Ö·»¶3zážÅÈ:•Mü$N„Tú¾œ9îOšbs{×=Æišâ „‡$Õ¹±¹¥´¨"ìƒ&kw½&¹¾¯Ái –*#¨3=ò,É'µa‡ËËñræ=”®P6Úl4Bõµ„êºÙ6÷R ¥pˆè#¼»[½Ujª]÷‘ÛRõ9Í|O¢ ïbf‹h‹Ó»A”EœàìLTó½Û¬ôç]ÝÔ«•~ÓéŸÝöÄìî4õ8H¾Ä‘¹síMý=\"k×âqs/˜ 7î%ɹæÕ¡BôVVbjo(f2Ø*fôQB™ÚÔh¡§z¶^~ßî~l÷V×úK‰æ¡¹W²+ðâG\eø{bêòÅêä@ï¡3úo°›<úïXÕâáÆz«ÚÖz?ÀØKãÚC¨ÜáŒÖ©×ЄÈÊ•Ñ?wÛGž•A:q&8›ä™x¼½m:„‰#œÔÅz©Ê^:Ì2ü,Í¢þDÚ;è9YÂUöx›³zú׺‹ FDHjزyâJãð?EÓ´S#ðë0¶*`¥ g„Býgƒ¥’T‡_+ýfÔ¹Ïí±§Iðô‚ S(ŒàÜlBçLmמI5ö*ÊbþØ_«xBài<oíˆâ>¦ç¨iúpPPîI(ÓÝßöÒBùË,°D:ùÝ-±Ùq†ƒ…ç·2¨.ÐS+±H@,>™ÆlГ˜H¸£~$1šÉ¤È_ Æ7ip@­„a§FfÁÈsw Rz~O„ ]V”Pl-Äcl|ù$Á¾OÛÿ Ì€7ÚR/,Æ£¹'^§K® ÈýÚ´Mg>ë%wÒ„™hƒƒÜDq¡åýhBždTôÎo%Ò,Å•j‡•#¨ÁNú`OÉ&Ñ9÷Žÿíö9Ó ì3òõ¯Ë¡ˆ}uP-½WÕPÁû‚ƒ_`dÐR2¦ª*p‘cg&’hÖŒâdðœ’W޹–€nʻʑka,Š9¤!#36Fõ}ì:åØËËp>*2L¶úd @‚W b”›Û²ôChÞS+ðßßaez§yÈgÞ3õà}¿üîÂé%ÐäÁqk\YÎK¸m¯> pï‹yÄgj°Vét`Ë«ó%8%?ŒØ“8q¦‹Î(•¤lÖ1»3E“Ȉ•¦$“2“*œpJÄø¾êL¯/Ñíó÷os"›:‘ Š-égúCWlV–Ñ·›õU7¾Ö=Í®Xµ‡%?é¨Ã>/áôÇýzÓÍ QÙiŸ)â´NÑý}:ø"U-t2d¶¤wøòõ’±%X‚—ÌS­˜Õë§;T vzÚõÇ;X  öMµ:¹¹yK­Žÿb­Ú9˜Ä£ÿ¥’f¥µ‘á\Èó'Ì4w þÛ’. ‘;Ö÷è#ê8¢|‘Á÷;›n½õLyµCsPÔgÕú¿Fë]‚\hÔ„í<­¼7B©Õ¯Q€àÒ_ €ÑºŸâEé*¨B?àÅ+胧ZÑfÔŸgP?ã¨Ô#D]öÿÞU)]~3àÕ|êùâiös:Ì ³;£·ajsžôôVÄ:5ìˆu9¦Sû ˆuy¥÷c‹ÉóœˆM‹¬:B¬ï/žºç]uèÔvƒit“<@1;Ÿ†j:””F s=GxsN¹âŠ0z š|T¯75f­+¦1äJޱ›G³¾ÒÉ@ïͨ€!C {3ê MJ+À,åÈh9Ç©"ÙiÞQ-”Aú{ó2³Ö‹ZÕ¦m6PZ;9@þÌ”T©' z‚8—*V°–pB‘áµê-‘ Œ|úcÝÂÁÍ#z$¤{ýP˘“[Ô-¼ºø$úâs«1ÔÍz3dÄJ‹A9º'ĺD¤ ä#ÜMc8…`R‘JHñ I`ÍŠÈÜݯo×a9f¬^HÊ`ä.|… AY<%ÊcÅ‘YxwKGÐ R!úÀ@…E Bb1!ónÎOùà£Ó`Ðî®[s÷®ÏÖºÏxMŽ|Áþe§ß±$$5ôüò· ]rJëi«å¼êÍ}óû ¢&× Ö«’}éÅu›Ùéºã|6]wÔ;‡ØÃ YÉ–ýò 1ékWøL:ÔËWTÅ$à }4JYaå¦?̺ý>Ùðî´ÍͲÅË"©DuÌ“¢ô`Áv¹í?×Ãç +ý41×aƒ¯Š—ÎòŸm`i¿¶nÃ(ú⨗O6H¬&\ñ³ åçnøŸGœ,p endstream endobj 411 0 obj<>stream 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5L/zkB58ufPHn9NF0km407S5PqOnxR7+vdOwWWRR3LPRF9hXviofTX5S/l9beRvJlppCgNfy f6Rqk4oedy4HIV/lQURfYYoec/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/z lh/5NCL/ALZlv/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6 MUPzy8l+VL3zX5ig0GxYLe3UVy9uG6NJb20k6p2pzMXGvauLJnn5CfmbN5E83vperM0OialILfUI 5AR9XnU8UmIPTifhf2+QxQX2iCCAQag7gjFDCfzs/wDJUeZ/+YJ/+JDFXg//ADiB/wApnrf/AGzh /wAn0xSX015n8uab5k0C+0PUoxJZ38RikHdT1V1/ykYBl9xih8XeXtS1z8n/AM1il4rE6dMbbUY1 2FxZyUPJQf5kKyJ70xS+nvzi/NKy8rfl4dX0y5SW+1mMRaE6moYzJy9cf5McZ5V8eI74oeEf840f lu3mbzU/mfU0MmlaLIHTn8Qmvj8aA16+n/eN78fHFJfX2KHYqwb81/yysfO2ikIFh1u0UnT7s7V7 mKQ0rwb8Dv41hKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHIPouPJGcRKJsF ln5XfmTqHkjXBMC02kXRC6jZg/aXtIng6dvHph5buu7U7Njqsdcpjkfx0fYGlapp+q6db6jp8y3F ldIJIJk6Mp/UexHbLAbfOsuKWORjIVIIrC1uxV2KuxV2KofUtOstT0+506+hW4sruNobiF91eNxx YH6Dir4X836L5j/Kv8wL2xsbqS3miSQWF6uxls7pGRW8K8SVPg426Ypelf8AOK35afXtTk87alFW 0sGaHSVbo9yRR5adxGpoP8o+K4qX1Nih4P8A85ff8oRo3/bTH/UPJikJp/zil/5K1/8Ato3H/EI8 UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFIfTv5Zf8AktvKf/bG0/8A6hY8UMlxV2Kvhf8AP7/yb/mT/jNF /wBQ8eKQ+6MUPiH/AJxw/wDJz+Xv+jz/AKgZ8WRZ5/zlH+Vf1K8/xzpMP+iXbBNajQbRznZJ6DtJ 0b/K/wBbFAZp/wA4z/mr/iHQv8K6rNy1rR4x9Vkc/FPZrRV+bRbKfah8cVLOPzs/8lR5n/5gn/4k MUPB/wDnED/lM9b/AO2cP+T6YpL6uxQ8J/5yj/LX9MaAnm/Toq6jo6cb8KN5LOtS3/PEkt/qk+GK Q+a7OXzT5uutB8sRSvePbn6lpFsx+GMTSF23/lBapJ6KPAYpfdnkbyfp3lDytYaBYCsdpHSWalDL M28kre7Nv7dMWKfYq7FUk83+bNN8saPJqN6eTfZtrcGjSyU2UfxPYZRqM4xxsuf2d2fk1WUQh8T3 B8w67r2o63q1xql9JyubluTcdlUAUVVHgqgAZz08spGyX1TS6LFgxjHEbBE+VPLOreZtYj02wqCf innNSkUYO7t/AdzksUJZJcIae0NVh0uI5JgeQ7z3Pp7y7oGn6BpMGmWCkQQjd23d3O7Ox7knOixY hCNB8r1eqnnyHJLmfsTLLHGdirsVdirsVQ2p6lZaXp1zqN9KILOziee4mboscYLMfuGKvhjzfrfm X81PP95e2FrLczSrIbCxTcxWdsjOF8K8QWPix26gYpek/wDOK/5mfUNTk8k6lLSz1Bmm0l2OyXNK vFU9pVFR/lDxbFS+p8UPB/8AnL7/AJQjRv8Atpj/AKh5MUhNP+cUv/JWv/20bj/iEeKC8h/5yw/8 mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/AJN/zJ/xmi/6h48Uh90YofEP /OOH/k5/L3/R5/1Az4si+1NV0uw1bTbnTNQhW4sryNobiF9wyOKEYsXxD5r0LzF+UP5mI1lKwksZ Rd6TdsPhntmJADAUrVeUcg+eKX0n5z85aX5x/IDWtf040iubBhNCTVoZlKiSJ/dW+8UPQ4oeTf8A OIH/ACmet/8AbOH/ACfTFJfV2KHhH/OUf5mfofQl8n6dLTUdYTlqDKd47OtOB95iCP8AVB8RikPm yzi80+UbrQvM8cMlk85+u6RcsPhlWGQo21fskihB6qfA4pfdfkPzjp3nHyrY6/YGkd0n76GtWimX aSNv9VvvFD3xYp/irsVfJn5m+eNZv/Nt5FrtrLaXFk5hisSQVhStRxNaNyHxcv2vlTNRm0uTJKyQ +o9jY8GHAPC34tzLvP46dGJ/4htf99v+H9cq/k+XeHbeOH1b+VGleW7PyhaXWhzLdpfKJbi9pRpJ BsysDuvA1Xj2+ebPS4Bjjtz6vmHbmrzZtQfEHDw7CPcP297MsyXTsZ8wfmL5U0DXtO0PUrsRX2pH 4BtwiB2Rpmr8AdvhX+mRMgHO0/Z2bLjlkiPTH7fcybJOC7FXYq7FXzd/zlX+ZnCOPyJpsvxPwuNb dT0XZoYD89pG/wBj74pDJP8AnGH8tf0B5abzRqEXHVtcQfV1YfFFZA1QfOY/Gfbj74qXkf8AzkJ+ X9x5J89R67pAa30zVZDeWUkfw/V7tGDyRqR9mjUdPY0H2cVD6T/KH8xLfz35NttUJVdTg/0fVYBQ cbhAKsB2WQfGvzp2xQ89/wCcvv8AlCNG/wC2mP8AqHkxSE0/5xS/8la//bRuP+IR4oLyH/nLD/ya EX/bMt/+TkuKQ+nfyy/8lt5T/wC2Np//AFCx4oZLirsVfC/5/f8Ak3/Mn/GaL/qHjxSH3Rih8Q/8 44f+Tn8vf9Hn/UDPiyL7exYvOfzx/K+Lz35SdLZFGvaaGn0uU9WNPjgJ8JQPoahxV8leWPPWqeXN D8yeWZ0dtP1u2e3ntm2aG6T7EgVqUO3Bx4f6oxS9N/5xA/5TPW/+2cP+T6YqX0z5q8y6Z5Z8vX2u 6m/CzsYjI4H2nboka/5TsQo9zih8Y+VtI1z84PzVaS+Yhb2Y3eqSrUrBaRkDgp7fDxjT3IxS+n/z e/K2w81/l8dG063SG90iMSaEiDiEaFOIgFP2XQcfnQ9sUPAv+cbfzIfyr5sfy3qrmHSdZkEZEnwi C9HwozcqcedPTb34+GKS+v5JI4o2kkYJGgLO7EBQoFSST0AxQk2medvKGqXosdO1i0urtgzRwxSo zSKv2mjof3gFdytcVYn+cX5U2/nLS/rtiqxeYrJD9Wk6CdBU+g59/wBlj0PsTkJR6h3XY/ap00+G X93Ln5eb5Mubae2uJba4jaKeFjHLE4oyspoykeIOQfQYyEhY5Fn35Q/mndeStW9C6LS6BeuPrsA3 MbdPXjHio6j9oe9MINOp7X7LGphY/vI8v1PoX8wvzT0Pyr5Yi1SCWO9utRjro8CNVZqgH1CR/ute QJP0d8kZdzx3Z/ZeTUZTAjhEfq8vL3vkTWNX1HWNTudT1KZri9unMk0rdyewHYDoAOgyD6Jhwxxw EIioh9BfkN+b31+KHynr8/8Ap0ShNLvJD/fIOkLsT/eKPs/zDbr1lE1s8h272RwE5sY9P8Q7vP3P cMseWdirGvzF872Hkryjfa9d0ZoV4WcB/wB3XD1EUe3id28FBOKvkf8AKfydqX5n/mS91q7NcWaS nUdduG6MC1RF/wA9W+EDstadMUvtyONI0WONQiIAqIooABsAAMUMW/M7yJZ+d/J17oc/Fbhl9XT5 2/3Vcxg+m/yNeLf5JOKvk78m/Pd9+W/5gva6ur2+n3EhsNctn29JlYqspHjC/X/JrikvYv8AnLxl fyNojoQytqQKsNwQbeShBxUJr/zil/5K1/8Ato3H/EI8UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFITPy3 /wA5W6honl3S9FTy5FOumWcFms5umUuLeJYwxX0jTlxrSuK0mX/Q42pf9SvD/wBJbf8AVLFaZt+U X/OQV55+81voU2ix6ei2slz66TtKaxsi8eJROvPxxRT5+/P7/wAm/wCZP+M0X/UPHikPujFD4h/5 xw/8nP5e/wCjz/qBnxZF9vYsXYq+Wf8AnKL8q/0ff/440mGlleuE1mNekdw2yTU/ll6N/lf62KQh /wDnED/lM9b/AO2cP+T6YqVv/OUn5mfpfXE8nabLXTtIfnqLKdpLylOB8RCDT/WJ8MVD13/nHn8t f8H+TEvL6LjrutBbm8qPiiipWGD24qeTf5RI7DFD1PFXyN/zk/8AludB8zJ5r06PjpmtufrQXpFe gcm/5HAFx7hvbFIZ15T/ADMg86fldYRa1KXfSNRsLfzYCa+pYep8M8oH+6nYKJq7UD12xQUvlt9b ttP5X7zwT3VtcP5UXndTG51T9IBbSgkZkglgCpwESDnE7b8VbCr6PwK8383f8qM/T1z/AIl/R36a +H616vL1Psjjz4bV40yo8N/2u60n5/wx4XHwdEn/AOsaP+1X/wAlMHp8/tcn/XT+mrXH/QuvpW/1 j9H+l6Z+qep63H0+bV9Ou3Hny6d64+j8Wwj/AClZrivry+1R/wCsaP8AtV/8lMfT5/az/wBdP6ap a/8AQuP1mH6r+jvrXNfQ9L1vU9Svw8OO/KvSmPp8/tYy/lKjfHXweuZc887FWH/mR/yrP6lZ/wCP fqv1P1G+pfXOXD1ePxU47cuPjirX5b/8qw+p3v8AgL6l9X9RPr31L+fieHOvxdK0+nFWY4q7FXlX m/8A6F2/xHe/4n/RP6d5L9e9avqcuApz47V40xVO/Nf/ACqT/CWkf4m+p/4a/d/of61z9KnpH0vT r8X910r2xVNfy/8A8CfoE/4J+rfob13r9Ur6frUXn170pirHPzB/5Ub+nl/xv+jv0z6CcfrnL1PQ q3Dp2ryxVjX/AFij/wBqX/h8Vd/1ij/2pf8Ah8VZL+X3/Kjf083+CP0d+mfQfl9T5ep6FV59e1eO KoLzd/0Lv/iO9/xP+i/09yX699Y5ery4Lx5U/wAimKvVcVeW+Sv+hfP8TWf+Ev0Z/iD959S+rcvV /un9TjX/AIq5V9sVepYq7FUs8zf4f/QF/wD4i9H9Cek31/6zT0vS78q/51xViX5c/wDKmP0ndf4D +ofpD0P9K+pcuXo8x9qvblTFWPr/ANCy/pkf8cj9K/Wf2+fP6x6n7XL9rn1rhV7BgV2KpB55/wAG f4cn/wAY/Vv0Fzj9b65/d8+Y9P3ry8MVYx5B/wCVIfpK6/wX+j/rv1Zvrv1XnT6tyHL1eXw8K064 qmXlj/lUP6ZH+G/0P+luL+j9T9D1OG3P0OP7HTl6e3jir//Z uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 412 0 obj<> endobj 413 0 obj<> endobj 414 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 415 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 416 0 obj<>stream H‰”WÛrÛF}çWÌ#°e@˜ûLÞl9r9UY'e®÷ÁñCAc^’²ì¿ßÓ3=¸håÍÆ.˜F_OŸn€RÜ..Þ¼—âö´P® Axë[ëD×JÕuW¥cŒâØ/nÊ—ÇÆ’ÂüéÅåɉõ BßÅ :Üt>-Åi½_X#Œn!·’n’"Ó#×F×ÉôL…¶Sùá«åââJ )–7‹HE6iÀ|¹[t0n¥CbË5ŽËÇE¥ºzùìt¶²Âßœ‰2­Cêbù:KKÆ«ÇÇÇÚu­­Ú¯›íf_7÷_ÛõaWZþ´øq‰ú! @y'  j4.¾Ÿ¯ñªíÂ<ç.eKySÆ««·µi}uõ.]Ä›~]õucªãê|8Š/®•)‹¡.JÝk-Ù*5ÔÂ@àÎøìû_uã[S½©U%}Ý õÊŠ—÷Ǻ‘òÍVȘÅ/ Kw²+ÿEOu‹†yc©¶®–¸0öÖÏÐW4xò(!)z”À¢2‚_íf –²Ôå³Ë;j®V÷ùzîóõ(ÔŒw¶28Ÿž|©âKGöu8öâÝ—ž@Ñå˦¯¥­ ‚¦±°è³w®µÂzÑ(`BÅüûbŸiÜÉÖ(d¯Úh„uDÉL¾x}X?ìúýY\ü|)½xõúrñëݨñ‡Æ 9ÑXI#eHc:MgÉ õSòE¯ÄnAÈJ€åns M¨™I,æT V[$Ôµ.†Žø Î+)¶ŒŽûúý06´*Äi˜‰ä¹0߯lˆbmë:ûw£°Õÿ_Ì3aÐ)%gaFÉsaþG1Raý€úŽ}êYb¢ý}(N9­‰ÓI¢ìt–¨Ô^Ù´Ä%¸JWkbö©4Ò·ìA“O0ÙV» ”–•¥™A‡$®u>Î$4®¹WF)Ö èѤ`øÑaÁ+¢Ž$ðÔLÇ´Æû™DÂÆ‚ާqòáMù^|¯ú÷—ÿÄBù ‹àl"Å£øY|üÔ‰kxÄŠÕz† K†<ÞC·œi±d’-:bŸ•XÓv1¡§M«lxV2Vd5¶§7ÓhE2ÍÉІ›å¤#hE˜¢Ni“w–ŒýÓÀ²ÓÏIƼaea buÁ%¶éœw‘Lt\«½}N2©íϼ/ Yâå€®ÒÆÄöo¤L„ ÕŠÍjñ2pÁO«³²•ÎNùj^é~Z‹ñЙU‡/c”CÐQfy†6¸Y-C¬¯ÈÇÌ×+zˆWß«0Ÿ K=RóîZB%s@Ú\^ÉÊ ’tö|´éh¥æsëd×Yâ²BdÓÙ˜Ÿlà(W’Ћ™Î!;PØ'töŸÁØlá•ÉŸ}zcèbQÎø,b –à}8u`0Ž9D®Êà Š“Ê9a›åœ\ÆÅêÁi>›¡ ©²„Ëæç\µ59 õ%€íX#0¬lfí‡s6 I¶3 µf»¸[LÚã‡þ9®Üsÿ<ϽÏH•}QrœÈpÛ˜5¢a袵,X¢ kÈE‚Q¼Wbé†ÏhtÜr£mÓ_ç±*o0½“\¼7ñ‰D'>Ó7½™ôœ¤Xa{Ùç¯ *¾±eHJ”ç.KÒ4i\‰@–Q¦ITéìeŽC[f,è¥JlÒÈ0ã,3;%ÓYÂ#7\ç¨Rf•Ë1º˜9ˆ_:Ù9¥ÍLÃqµÅƒgÇ!„Y‘‘ÏYz|\›Y´ÅÔ¤Rl<5Ego¬²…VÙGHÝÅ™;G¥ÃÍGûØ€%*GÐ<¬$#€.°âbCcŽ&½aÆ*ÐS?ð‰\®;〽©§HáüdKáÝ¢³EÆg§&ÝÈçl‘û5jä~ŽrÇÇv½œEáLɲ°j¬ÃÓ+-¼,HæŽXYÜÅ š8;‚=K7Š„ÛUìK7糑 ´*»Òñ´hÞ1>—aJ;"'ˆRTÈŸøÑÈ00´etÒ Ã Ì”ÝØÅ µê2ñ•ÉôÅ­m^ì0òË&£LŸfÒ‡|æ!1r¦‘;Y<”^1 J…-%˦±ŒÂ·R(Ó‘Q(tP6Ï»\i;¹œ§#R$¹UÅCiå|"ÖøÒúñçËů‹‹7兩=-^-WZH±¼YHzYáA'òìÐ#Ùµ^,wø±p‹ŸR1n¹Æiù¸øX]v»Ã^\në?|õùñas¬ÓUçºÁÏ›ª¯µjCõµnð˳jÜ ñáíúÑ0(Xq8þ·VQø¿1âê—7/Å«‡ÍöÜlöâêíÕ»úÓò'br!ôc,Õ‘nh!»(‰qTj"¨¡¡[|¥J–w›R(b¬Dݸ*Kvu×êê~Ûïú} VUçÕyƒ¢×«s›45%yü&VÛtÞO5¦7{9ßõâáÔC«#4‹é’{Š*«mÖZŸŒÒmÒùý!g²%ˆLunp²W.V_Vüxõû¶Æ„J‡Ø, ÜòuªÙbmS q‡‘LÕØÔ >Ó-lˆ÷<>× ùÆRÊ_“ÜT ®r‡+8]½À“U‰äÁ?ñ Øƒ{âABnqdyHFÃTò³ }Ïo '$®8_øÁV|™˜ì~ÅÚð®=عNJ²ºKWê|vrNÊ€áò Lô1Œ_×¹Œ_¿>?ké‘hj¥­N¢F˜ýµ8¡7¾z@ êþþp<ŸÄŠ­Óä€O`Éz{¨©¦uâÑgq™X¥ª£x<¢™¡ÚœûÜφәt•RÁ~à¤èŽ’¢èÇZiJ‰x³º׫3J'ö¤ôÖëþtêOíÈ“ÐáÓ¼xŒeJð}ÆCÒ‹›~ŵšªÄëê,N©¶þZÜ(]`Fç»ÍI¬û›ÍíÑæ&…R˜(õ4 J8”ã܃ÉëíÃu'Lfq}³]ÝžÄoÕ ?ÚÖø¬¶‚Êîw÷g’ºêÛou’dèJà§Øñîi²W[qŸ TÕáö˜æ3¦«ÝŽF Ý •¸yØæX’Â}9¡ÇM.Q¶’ˆ2’Æ;‡Ys¾Ãb€7ñâ4×ýÍfÏw,ItÒÕéκmbðÛ½X]_#9Ed¥¢ÔkšÅ¥XNá/‰2”}‡zNw«Ï›ým¡o$(@Æÿ0^>Í"I¿ï§à’Bü{óÎNwô¡£;:sòKX&Œ…BH²ýí7ßˬKvÏ\,EQ••ùò÷d¥d£n²æÍ†ƒ4ŸÎÌÖºuç+ý¼úíæU­îBIïÂo¡Ñê\?íPYø¢ŸíÝéV‡5³ ?7”Iª¢(üU¨Üg8×41 7³wÇã纮q5VÌi·zÊ^DÇï¢Epû¨7T˜"Ê‘Î.ÿ:/\Þ‡øêkMÞ†è^.GRÔ›SꢔIwçŠÑþŽ GÕ/¡ú/~ÞüøÈ‡QaúxËûR Õ õXë4C÷µ^9æ8f s‘-ËÊe‹ËÚ†«bïýó?T4 $-0g³°~ü°ÈK»Âuä¥MþM¢¿oäÏî(Ë•-pnáÓÀIW‹Õ´¬b³ejsü'ø¯½1ýuó}iñ»¢L¯òòm„v1¥7ĉD®¤ŽÂûH$e§…Ðýº¡Jÿ;òÈ¥‰[“}ÎÇxâßmDUR%u< ˆ’¬è>2õ3ngBzÙÈu%1 áð#d0AýXŽöR‡qhc):LJ h2ÝO&|‹ñ@éìkyÁš’Ð-íhkmð#*xÂ[©{ÜØŒNümŽÀ=Ö—:ûÌÑq÷îcÒ†@¤.!øÍÁ7ÑRÂ,#KÂÂdåÁg¡í}°½ìúþä7Ïnì{rtR†ßÝŽ-V6×Ðô 2*º°æÂõöw,yd3YŒ)ÍÇk…Ä~ýlúçz:z@û”†¯÷Ž˜YÎ{Aæ±ü²7¤ö¤Þ0aùý=@[ç“Á¨sX?ö ÚïWwÃ5*Þþ[e(ñ{-L‡øEQ|6€„¬ã±vq²GÂBº´z«¿¤Qü[…'{ÔÍ|ÖÀ¿AƒŸûwSàWáV{aFv}‹âE:Ó\}¿§ßÎ6­cÍ?†×$‹scƒõÀ# ^¡XÌi×{—›ÛCm´ËÌi× Q™W—mÔ¨ÿÂ"5'Ø6T©dHÿÝÈ8fëˆáÄŒ€uÒ) GÛƒ^ÖØGX}ÁÎÄæGÊÌ„¢ì i@_þø÷Àl5ÑžŠºîO’^µâõÆ:S.mx0©wü⦕Üè÷,Mé¿çÖ Ój_þÙžï°ð»#Œcë• ÞCðÒS WôDqc…jÞÚqA-!pnLpÚCð~̰wG›ñ°<°,³Ê»]LD}Ò¶ƒ>¶Hl Lç±Z”i6I”e>Òš™oÈæJ5VœÉsg±Ä«HßïÑ®+Ú„ H=Û¯˪¸v;^WôsfqPrOÄ^ÇBfí5ëãCÇ‘[ŽTÛƒ!"2gŸºõ>Æu¬U\¥“Òð XV®•bí-rRÐí¼ˆÅÙ63…š›NMRAÎØ1`/uíÆFŽÎÖ}ø²<¼Ù[Z¼áoh’ŸÀ¬w‘Á ê¹sÚ˜•³Rß)")?ì‡À†qD|áÅOí­_oXAÍ@çaSm9bG»8poZ’ø÷H(>&µ«ÉIÕä”Þä$jrR19ô7ïêeé•(1%ª;Ud1>ÃI¹PYM鿏•t%:¼òn¥ðQÍ®} ¾¦¾E¥ß"†Äù%ÖçC”fšf·à¯V3§\ä«tdL[âÜýËÔ‘É+ø«¨DB¾F)0pŽŸBN&ƒÍtˆœNZªe¯ôo+¹|Ũܽ™ã'\g˜ö we† ¦Å›É‡3n†Ìfø‚–rþ|ó+®Ráw^ ç”ÒBú˜w„÷í£ì –gÛÏ”Ú}×<7é<Á»hÜ:£@é(¸:;Ñ« GÌ]çºÀW_%:ÒôsŽøòóë†I0¥çÔzîXYRÒÝ:BûZIå ÙàMZâ­T@[  1|*¥…J)I®ÖÉÉd-`Ž<ºÙ’.åħtâD\TáÞ±•œJ„æ IW%æÏÛý_€ÂÂAl endstream endobj 417 0 obj<>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 418 0 obj<> endobj 419 0 obj<> endobj 420 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 421 0 obj<> endobj 422 0 obj<> endobj 423 0 obj<> endobj 424 0 obj<> endobj 425 0 obj<> endobj 426 0 obj<> endobj 427 0 obj<> endobj 428 0 obj<> endobj 429 0 obj<> endobj 430 0 obj<> endobj 431 0 obj<> endobj 432 0 obj<> endobj 433 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 434 0 obj<>stream H‰”WÛ’ÛÆ}çWÌ#±s¿äMZyUv•âØb’•h.%Ñ&— ÉõÚùúœžî@IvœÚª¦ÑÓ—sº{†F½_ܼzcÔûóÂÆ!g•BBTz0Vk‡§u¥uÚ.Þ-ljŸ} …ë¯7·ç¨6g“.Yi¼è”½3ê¼yX¯’>í•¡—º rï>#"ú‡µ©ßl´å/V‹›;«ŒZ½[r¤Š UÛW‡…Ææ%¼kÕj³ 7ļzZ¼íî¾î—aˆÝÝ·üT¯¶ôVºm-¥;õ˄ǚW—£¬U‡Ôýi»Áô?¬¾AŽƒSǧkýZ½äHL¨‘pOOO}ÔCè†_wû]õº_‡ÍñPÍ~µÒeJRTPÍhú ;„_ÀÄÁ{gM¿úiŠzü‹sjik§P )ó¾Ìÿã•aRPý’xþÀBpG‚Øí•¨”ávÏ”å¥6Z°já‚RŽ˜^¼G QÕ¹È:T²P2-/´õNÁs•3Zƒ23˜î´î=s¥î¶õu}Á#w§í¹!úo”ÔNÕ2ŒPªwb-¸ýE=´š£XtTi*#wóò¸ysðݦýàCy8°Å0#&ZLÀôç‰i%¤Éâc³8Á¸dCÆKÏàKµ‡ á]’íö’Š uB{M%=¸4iÀƒ13¶˜ÂÄÖ(äi–%lD3¯ÇÑ Z§P”ˆÃ?׈tÌ6ÒÌ 4hìLqȽ}£~/ã7·Ã8ûcã'œàþI­^«·?hu¿Hü‡9"cx³È8—Š›é4Á¨“í ó—(7k(Î_¾°žòÈÅç^D0‹¤€ 3¤ ³,7 £nhëÑn .|A0ZÅ–\«q¤Á™\‹)ÔX›`ÒÈCÔé ‚Y:ÿ{)oÊ,£1ËKš¢Ñ8¨R 2OÈh;Äy%B#êyYM–¯$ÍQ«E &^O£JÜ\I<Û]‘¡yâF ÃT'Î ‚G ­.$u-KdéÔ¦nH9‰$TlE£x^‹Ax¼!ö鬫 ۇQ×NÖ¸ðŽb•xÍ&Kd¾íuÐÍÇ(ñT³²\âM,;,çøàU`’cL-ïYÐ’6²[’N)ʺÙO¼!é °¶5ãc×¼Á L$Ù_IˆšýâÃbNO Ì’z‹tw®Pûb73X…¦K@D]'¶íÕÒ—qƒHœèûY‰À¤jÑÞ¬¯5£abâ,‡`ëÜÖÖÉŽ6_‚’|ÉæI4ìúŸô©d¾ËdûE ư¦!qßf¸8° ðÑ ’e˜É©®KGÂ]ËiíMÍÐÈ)æ<ן <-Ì Ý¬`/ƒÃ®¿è̸–zŠñJ#K¦Õ@ƒ|r@gÞ, lÍ &U\´]ñ³ü Žõyþ­–F„xGl¡8Ž d&CÇpµ¶:µ"qR™¡µyò3hÚÒÊÂË,IÆ©)JP'•ë¤ÐŠ IJ«HÜ…@wß ¥0˜ëÙAdže¬sšñÀkÞÁLM.]`¢gŒ(h¦ë¤Å×êhÊ Mýl¸Ò¸RªHh3ƒ?åRšÁ<­“„©j•WÝÀ„¨´G”陵 ’–å ³a´ b‚§>€Á=§áY+ “yƒã<´ ´³ŒœO¬áÂ55´–)æJ£ø™šSåÊËB©2Eˆâóù**X;˲Èý¥¡@vqâr,þžr™ÏѶœ:¤I47DâËÒ“Qfɬß.PQ·Žâ¦÷ÙÎRÀH-eNsBzÎòÒH»0F®Nj9'åÑ®¥ÝµËÕ ¢µ4HrWÌãd™ž»àRhA´Ri1¶bš²håÖòlåØpz€ÂUH Ë2¾}LÐÓrj‘&q¢/Ì«>é‡ .V_½¾ÅO¯›WoŒz^¼X- î÷z­ø.œ¾U«®üïñ#HkdµÚ,–õÕ¨ÕÓ¢»ûúî[õjû°=­/Ç“ºÛ®/§í¹_ý´¸¹C¤jõnQšåúBc'f¢•,×›3;®?¨ÈzFQÁ‘&o»Õº_âþ^ºû%nܦÛã ì»m¿t±³¢°¬\çúVßÔ¨iBXzÉÄ–ôÕ¼:?ëÓî?Û³º|èÑ}ÝV}’×»šWoy=«jÞ pèN?Ù.£m1}~üø±_âêßa7u§_SwÙÞ«w°º]o>¨Íþ¸ùYmŽïvïá‚ܯ/»ã;YZK7„ˆû>¨Fo4_¡$oäkýp¯ÛC¿¤ÕÎé7uù­P€Èï†jôæ.33Z--f‰®f™ÖÜìâ‚Âè÷a»u¯A€±„¾E[Ô#AáÐýU,[¶ ÷ ÇΈ cåñd¸B|‹¼™í(ù5Þ\wé‘kîÁ¹®¹yCÕ%04#µÔ1L…ëK™„쳊¥–kåR&#çGø®!©Xfs æ ŸA­ê¯î±=WLm÷qÛ–õqQ·û>âÃqÓ[RøùŒòŒ…¾Ý«Êá@üF„»gɆj+t?3ét©QK7±2†à$„{²nȺúþùëº-b`!lü&•èë^”S+½Ü/§Ý×#ék5rúNh ª4KÍ!,íÛ}ÿœ˜Nû‰éª<ªê¡­sA½xÜí/ËÒÄ(и´ÍÌV57 t$Q-§ÁV2ééÐÕ8 #ÝŠ2%r`?(Æ«ÓØÇh±‘Ž?Ñ¥ôÓH¾ÔÝz@GdüÎíîЃ”TìþÙGªéÕTìN—í¯K¯îþ~S÷ªÇXîžÓ'GyÕån߇®æ‡Øq‘¡RbS‡úÝ‚ÿ›jsƒšÿø¬÷&ÌV©#a]““©r7Ñf§†1ø~w¯žv÷—bà´~xߌíÎÊ?Så™,Ñ4ps£ÇÌ皌ÈdÑ8lAËD´i.éwnuyO#ÍöN«;^ªõãåxÀ˜ÚôKÜ%ºõ~O/M‰êëÔ/§, çÞ`©×gÜÿ—öj[n9¢ïûxR& Ì nU©T©´²³Ž]²â¤ÊO ‰Xƒ¤"€–õûÃ9}Á"E:•}±!p0ÓÓ}úœÓ:àéQتj»} ò©’œœÑ$'QŸkP6š².D™Âtó€èÁ£â¢¬!Q íKY9£ÐÅK¬¡q k(^£òï)üU§*æ€F) ATfpÏ g’[‹GjVço›7{ÕÎÓ[öMdu·e—‘eW•æw‘ü×n½ˆ™$ÄXÅÅEу¢a¨/ Ê/Kªd èá· !EP,;¯Ýb½utâÂ.Ê>s¾ ÝÜû¸©Ÿù>zÕèMŸªµ"…Oåcãmï<£¯ ÍPéLÛ§r9Ÿ Љç0Á.‚a‘[Ô'L³OUÅU¹…!ÓCÆ4- k [¸CühPüÁ†ÕúZüÄÞmÖ}’Ç ¥¾¸ÉæIÒ_{ÏHX·^o›Ö{·ƒ›£$žŒ¼ßnˆ\’1„?³.ƒfïE}F¨4ã ¡öóIÇ¡^­Úçóbí÷ûÿÇê0ÚÒÊòçÿÜÕ¬Šo$ç8lò§ÃÀ¥¹æb6…h2µAE[x—Ô¦þnÓž‡ãa×?!ØΒQÄê0>ñdùÛûÇb½}ª(ßüå—Þh}õ$äPßeÁ“àc'fyßÒ6–n IQ(š“1Ã2Å52I¬è?´xM‹üå™îâh¹£%v!œ×ŒL½Í,ù¨ %¦÷f‹ÃÖ'ÊS˜ÖÕeC­;ɆJ¤†¨œ¬Ï­¨†Q*e„­=eÈS o¼VÖ­XJMdÕ=œ7K9›ø{yøÄÒI¥‚Iðšd*õ =µ»²¹‚õÎR3’+3+‰e}+µT§ÃrcD¡Ø+R[¨"Y§¥.”S‹[ªøýºb'Þ¦©ë½¶øAÖ—ßåbŽdÐ/0+Ñ•ºiÐ&Y¶ï‰U ­Zvøèôz{MÑH60þª±E͇sšÉ ±!ѱ‘$R;%IK¦0KíÁFty8?Ô}S¬Åèq‡±v¸O@” }:xa£ã;H$ìjÓÎþdÔ][†ÊG)_Rs9à ƒàìåÀ ©ݪëUÞ £\exÞÝS ô¼ÞŒÒ¹;®Â.¶gäËfÀ8’€Xg‚ûnÍ”’;jÍa*1:•,ÑšqœRkVš-‚O5ÃË€ÌÆL’…NJ9IgtÕµîîWCt†_’Ï^C¿Ð¸’g{ПÑúMïpyã¢Ñ´c¢íù€ö/LE™Ñ#´ÑYÒPÙÚÔ¦ÛËSšºå™Ðr›Yì½ûôþBz· &¢$ýPÐô.‹©ö¤wÔÕÚZµA½|á!§5vYJݵ_äòH‘“½Ñs 1 Ȥ'™*œâ*ÛÀˆô}_‚Rm_abÈ›€b%s("âOf{env¨å#¤_‰4æ®›)ùoY5°º·²n‡— ;”þúâS¾·ÝÔÏA[žÊol’yžüš7É5Qšç£ÌJç$ ·íY®¯°í›ÅŠ=(s³Ý5ÞúãÏ^RJR¿ÑÿOYÁÍÊ”_#çpèIªô<˜¯¯þEÓÇžjeö/0¶)ÿë O3Ä€jè=UªÊé+À‘“îß;”"›z †ºòÙ°žY´ÊueÚd¦Ê™ÕR:»?vâA²m©/ó§ šx\»õˆÐÚŠYË1©ÒSâ¬BML-Ÿšy|asäõô@XwnåÃ@\¯¸Ýé[ö11³›†¿ônk hþ7tÉ’ó?œj! Ž÷ tVY =xQ¤WNJAžntòšFÙq8ï!Ž‹ÝèÂKŸ "rÇù·ÉD"ïp†ƒ¼¹ã¤qO’?øUŒñGêNç£SBàFDu¤1åÇïE­=]z$J_²½´É¯Ï<¶x0ð"ôBû\¼Kç}l>HïcÔûUA¹}4;ÌÊb»æY‡ÄHeyQoßdÈ2Ä>­<é• C–ñï©ÒŸiÊÂʵ~Èw…1à%÷ɧÉH‡¡éÅHÒçÔjNy¬ÈiÚøW>v,3‹Òþ^SÖåyÎ:Ü3ð"ijÑQÜ/W——¯ãŒÄˆx¨ßâL1Êh¹…7 Å&T§x¼8Žô$‘ÂÆçf|Âêtal‡Ü¨®Ž§+rïÉÁÕ%ÕÍú—„AÆåV ¹á”,xL#À$õâ±Qì±ËñC%C’¸iQØ,ymSú9V½c0âàHîY¤¯V‰ùŵLººèÃXÉhXnù æóÛ«ƒ¨žöÝèM³_é³Td&5?QîØdb$Ï/xl³¹•O¦§„¼Éa=ñô}÷“»ZÓàu[JW.)K4͆bFïŽÚÒlìê2nLmñÇ3Œý—eó<Ôyã'ºÉä|¡|'W?€väs2°fÿÅ4Öä+2xiBgæËåRÆ  ZžRõˆv„l·êžXäëôŸA”¹„™?tÂfš¶¨`žŽFÔ´ÓEJÜCoŸ¼/¿iÏ›e·[LìHã¨6”±C!rÿý9»¾sxD (¨³š âŒï—èHì 9 4ýXd|¿[Ü<šVó÷ÓíÂr=Þúœ†Iø£'ÀMέéQcÕÔrüÔä8£&Âê6)‹ÛLu™ ðXX‰™C}¨³C„ŒÜ=Óa ½òÜÀðJÈÕG¬j;.&-“ÙP¢Ï! u0×ù„g5!á¢ca‰¬È–l´Åõ%ÁJÎqó”®:2ïÏq©œÃø]_°g€[ Ÿ ø¦ÛÝ’YõvJŸ¡ °Å{JO\¢[ë΀'Ê*ðD*>—e+ÿ¼½loѼf±ùñG."µƒÃqêpþ¸ZSmÊ á»^—ÒÅ:¨¢»:$!´ü¿„WKNÅ0 Ü÷]²@U;­»E‰=@|žØ!¸ ~cÇ}ià‘îÇžø½‰bðZè$š,[iJpwz,©P½h—KÐz4E¥¢Ÿã󶞘õ«¢ÍCÎDzêþ„B¡ÝÊÜ7ÚHóê„ß:hùæö§`ÆO³ØDtÌ©®[Ya± ÄÇ÷iˆø!IÍX¦ºÿLö?ˆCD£1ñˆ§±¦ƒûÑ_oÃûØŽœ¤£sHº?€ôÍ@«ª„é.€¼Lan<¤À:*¿=ì(8³žKÿ{È‘¦˜@n9먪q:GÓ313zr¤WqûDÌ}àkÿ*-âÒµøU« È),‚ñh츜½Rl­dŽ€–+Õ7lÌ8™»= úˆ|°¬>5:ðKº±0ÞѰXq÷BѸ炰ƒöIúv@¸ å¢4×5’³##• endstream endobj 435 0 obj<>stream 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 436 0 obj<> endobj 437 0 obj<> endobj 438 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 439 0 obj<> endobj 440 0 obj<> endobj 441 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 442 0 obj<>stream H‰”WÉr9½ó+p¬ê0K…˜[Kn9ì£G옃Ûš,Ils±IJ²ÿ~^"ZòÌ´vÈå½\ ”ânvñæFŠ»ÓL¹&á­o¬m#UÛj<•Ž1Šc7»)_¶¥ÓÝ‹«“«„¾A´xi}0ZŠÓj?³FÝ@n[#$½$%x¦-×D×Ê´§BÓ*Þ¼\Ì.®•bq;‹dPDaÓ ¨/v³ÊsxiØb…åâiV)U/þ‚žf½>*üåH”iB‹×¬,-)¬žžžj×6¶j¾o¶›}=·xÿÞ¬»úÓâÝì·ðCˆòNàh0ÀhLü<^ãUÓ†iÌmŠ–â¦ˆ?V×okÓøêúCzˆ7Ý/ºê깩ŽËóá(]#S=. Ýk-æ²QªÇ’‰À›ñlûzîS½©U%}=Gè•¿~=Ösé ßl…Œ,~%TËo²-ˆÿGNuƒ„yc [ÛDKµ0äÖö{È+<ÚJL…Ìm%²è…”`W»I‚¥,¸\æìꞤ«åW~ž;~…úGf*gÂ628Ï O¶T±¥c¶u8vâÃcG¤hò¸éji«§ÂÂ7”éFÌ,òìk¬°^Ì8!0ÿþE칌[Ù…èU°ŽJEæJ¾x}X=ìºýY\¼¿’Q\¾¾šý>b7jü¡vBLÔVÒHÇèNEÝY"h|D¢ø¢Wb7#f%ÈòN7¹…„:ÔL$}ªz­-jCKõ‹š1V’o]ÎëÏÝØÐ¨ÇnF’—ÜüYïÅÚÆµöïzÉZÿ?˜Ü SJNÜ ’—Üü0R¡}Ïú.ÛÔ“<Ä&Dû7òPŒæ°FFGf£“@¥öʦ!.Q«ô´&²M¥¾Í4ÙD%» ÓhW²2šéÏÄ5Îlj„Ú•se”Êgr4 ;:L(è}EàI‹AMΘÆx?‘Hرc_8ã©ûxò¤¿º?CsõO ”wa©(ž„lÅ{ññS+Ö°ˆ«õ„—,éã¸, n99•%£h‘û¢Äš¦‰=meË’‘Õ˜žÞŒ½É8&Cn“Ž(+â8¥MÖ³dÈŸ—­~I2Ä -› ¶—ÀW\ª6ÍqÉèŒk´·/IFؾñ¼4¤‰²JÓ.e*­˜¬ü•tv\¯&à“îÇXŒÇ™ :ÜXŒ ãÂÊ$ÎÐ7ÁÒûêëñ˜éxEñé{¦¦½a)Gjš]K¬p HËÈðIV®—¤µÏK›–Vê¼b•`š%ŽÄ|ÀÅ´vÅú‡ÅJú0Ó:°…yBkßæ5*–5¼2,ñlÓkö¡‹FYãZ”5²ßñƒvdŒÊà•ƒâ˜0Í8&ǼXÍœÎkÓ£Š%vÞϨ­a‡Ö¶Í'B¦5«‡L³öýšd¦‰$Û‰„R³ÝÏFéñ}þ\Fîsþ|î{ÏLÅ6¨PØOÌtÛÈ'¢ÉÔE;Yk×kd‰2ù„œ”H0*Ï•X²á™6§Ã¢ÍlÛ´Æí<–¢â©ƒJoeïM|&Ñ©žéNo&½$)Z˜^ö%óŤâŽ-C:DqîX’ºIãId3ËÔ‰*­½d?4eVIƒ>ª$QÁ¦L3Ö’K°U2­%,æ„kö*%ó¨ûh#× ~éôë\SÚLN¸Œ¶Xð™ÅÁGaEÌÌs”—k3ÁASLbâ©1X{ÛsÅZ±²‹uÎ]Jû%’ôe…,QìAçf%ñàéBVPy¦ØÄ£I_˜rêûzÊãf07õ˜)¬ŸM)|[4k0×X;5ʯYƒó5œà|8ãƒÛ·GQj¦DYªjÀaûîf¤¥. ¥r®,ÞâˆM¬È–%E’ÓUôK6§½Á Z•Yér·èb£(Pdr$jPºªÚFŸ¯6…¬K¢´Ë 6Ó¦#ÛÇ¿ÑTÖCŸ°™‘ù„âTøÜš&)W8ôn}ˆèmëGÐûV—^Ï#ÉD10€ñRšÆ°Ûy°·ù˜?6Ì2]1Ì(¼ÎMbääg²X(¹|”j(Q”j)Q–j`”z+@s9fJ¹ö,¡2m>Ïr¥íˆæ²·H‘pªŠ…’ÊiG¬pÓúíýÕì÷ÙÅ›)îN³ËÅL¨ÃV𮿣 Å¿îð ªEa.V³9½åÅÓìcõÇi³¿—ÛêƯS}ÿúõ½¸~{ýá$ÞîOçn¹‡[qù°Ùžç›=ïÔŸïf×FÀÞí,Çé…'Ã!9†+Üb‹W°—¼.î;2YOµ­çó+S½Ý‹zî*¸I›jèÙ*ÉN‡m’=ÔsÕøêÌê‡ýIRrÈ ©·<¦D9rEc"¹_>fW‡Çî˜!kÏóåHŽ!MŸ·iTV£aÉôgE ª+ta÷=·ñI3%élÅ 9VT8wýéÀÍ,«UǦþ¬é$ÒºÞ$ÅÝfÏ/§{t¦ ¾ú^Óp<ó"M¦YVw¬€ìfèËõ:!ÏN×4ÇþÅ/ýLXõs‚ЂÁÿ^eËmäVô]_ÑÍÔn½ ýfË’ÇÛš’8qRNJESÅ1Eª¸Øå|}Î]€FS‹5•ÒƒHð¸¸Ë9碬`»€Osfv=öPÝ»œ{½»åÔž Ê‘–ZKT(fRçd,°6Žiäz¡Ât¼Z>—“åòG¶pÚÏ($ƒZª!›ÝínÉ»† ÷B” ¶ øîÉÐ-üd“+PH-Ò§ô±Íß¡9õãž¹XÑ©tg@JÉäÌG€2`û;Ä¥¢—Èj¶Ý鱚ˉËò_œG]xÓº¤ƒc§ÙV ç4L ”ß龺¼qLÐcû-—Âl#ÿ³hŽC<̆ú’~RKÆ;i{uã°Gš'N)åÛD™}òE{–¥$Êiy-™*?¤X ­(\ü«ùÈ…ˆsä·M&$®ô¿•Õ9³ß¦wÏié ÔÎW^ŒýË]ºU„{qjEÙ< ©*6H›¢ô‚¥ { á¡p=¡^ÿù”PªœK„Æ€pš+;¡t-ÅÀ5âÁô%ó]Ên!Eãsá¢6×õuÆUÆA!^›2ÊRF%N¼FE·þ¶¸ÈQñYø ¯õçQŽ\MX ¶é;¶ Äswx¡§…Ä…šHÛJ¥Uulž³¹>h%M1ÑÇìo!·’–l;]9@QDJÆíBBxº˜³TCeÛZŸU\fYK *¸ù ¾j¼C'Àkäoè<„<†ˆ¤ò‡QMó} Kz™Í—{M@õNÀs3¡p¦9\D{á#e¬Ég¡Ûë°²P_Î帕Äf¢§oÁ2_C’»ëÝ¢-]s£ùÎôÀ<…¨® ‰´7}Ö¥0m_2Udª´©¡KÖw;IłጤURÅ5@ý·Ñß·ÿ^UåÂÆ”æéšà…lÄüF`h’ Mû€z2æíþîbp ÀÒÐ ¾o»kERÊ„aF®A®²)uüv¤Ýí´»t/eÄŸL¶oóœÙÛ¨Þ5F¡Vš{`['ÓYv±˜#Û—:4IDͨp>]EÑ $>-½wÉŽuóùןNX¦Aà|ç§-cÅ3fî´úÐQkMo~~1î’9$à*°¦>Ûò Q’½š]/VàhÆGúÃ_d¡Q¼o“~£*<2LEÜL´ÃVñÆ¡Õ<S †üƒËËØ¡È“k}â¬Îjvx:¦ß2A”O„ì ·³]T5Í…‹øó†Þ¾¾¿FCá”:zNŠM‹µAªkó ZdeoËnLå”!R’B»¾¤l…>bfÅônÇjœs‰LƒŒü€¸ÖS׬Wë}šrÎÝ r£C-VZÌPòm˃ mø!ì›·ZüW$öÌiîé~hGÈU¨ãµnÐÝ4*P{#Hž£ICL6åÇÄAwAI@#6Ñ cœê£¦gI4~`LÚºÅ÷•Þ7çÍÐ{v„áÖ´~ÞpEߡ͆†x.Ó¾ûÞRN^èÉx! Ëø¶R%ÓòLVÇóð›¥o(Ï|ñw¾ÁÇ]Ýãø“¥8ð8„” Þ" §‡íÙ£–= ä¦^\éÜl®†ƒWœŠîÕþo¢oá¥á€ƒs$¦i ùÎÇÒ€ˆP7Œøkà$IŠ8X>ÝÌV¡}¹Q©ˆÓEW‹Ö ŸV×¢²sáÅ}°½"«:sJ) ÆIº&ß„¼TäjÌPëוîä«–rQŒ8ðKrö «ŒY–zJ ¤¦¤xš\]\ /‚Võ×YXï—Áé/üð_…X{›Õ6; ¹ÈqLq Ž²õ£º&â0@Ô€JNµöî?‡ç’RyµtGÛpAHËÎõ×™|§¤³fÐ}Œ úÅÀ;6Ø«ý&›YùaÈxdÔkÿáYDgévœ¨`ØÇÿZ'ÖSÒ#$$‡LÕ6”T¢˜å‹yÙWûĪªLƬNÜ;¯§“ù¾ØqNY¶à!ïVj"òé.°¹ügJçߦn“¯¼¾•j{ɇ°,‚¤*‘_ .èÛdÊæ¢0øÈ vùd̹3u=ª=Šö²ÙíQUabµáû2|·%XÖã»ÚÇï×G/Þ¬§{ž¥^|8¶EöúÍqÇ磶0”ü¯¼çÿ(!"xë!,Û6³P!®5˜Ž!QPÊ„63œm²?±§nªì{Vf²£o/l6߯Ýä'x{T²‚¯âÊ2®„–÷î\Þ;gytqôzŒ|M(êÖV–ëH?:_ ë b`ÐDפŸŒklg5UÃÿ«²å—‰pù¸ÞÍ^*TÐÙ S¤~@òÈ!F7³»Íl‹P¦ÒèÔ¸8IzgT‚-v“åbʳ!gòïÙQi‘*_Y7£…‡dbXi¼‹+ô:Z32Þ °èaX9ÔEåÙªÅʲ³©§Ã]Hüß~¨¬²Á1¤–ÞüÍÙãÏ^ÿQÏ£Ó€s<‰ÓºÒsÖ„/‰Ó†”b™ºˆ8µ¾MWtWpúW[ÜåZTøÕZÆàëɇßÇÿ nÚ‘ÁLhQ¦Ð¥·G®‚üÀV]йt·±™º’(¨€Æ¹ñ„º6õÃ;ê ¨o[ãiR£XÉØØÎfyo?¿tèAÓki}H]¡ûJ‡Ê¦^*=N§æ Y‚QÃé&ª¿"›žvY 9J8X[($o.O>†¢P'ášåš ²kª:®ôœtð­ç$½ˆÓÝ™`Ò=XáMO8 €s !ƒkÒâäñûßBI [€›#•d< HW`™°BnÚ$ŒÇ:Bïšrg;²-­”(K¡h‚æòUoE6%íæÑÔÁcý(îTä ñÖÏùïç[ägo/OÿxÿþrüëùÉů—¯..NήÈÇ‘ ô1plT—Mò˜°Ò{LaÙÓî1dÕö|·-˜Â¤ÑMü˜xDeÓût%½Ï¶½¾Mç.6ÀåŠæpWˆÞS1+ mª¶~"fOÞ¾¬OúB£È ¤ _ðÜ–:¿ìº;¾²iFð<}¥®ô^IdTô^ «ºè½².r½WꮿT#Lóø{;‘@ÌØàHLh ¾Q È`ù„¬V¯,•ô|¸2ÔmÃdßÏ)·@€OÁ½P3u[ýŒr!ñiú€ºÝÍH@Mñ>¨µ¯ü(“‘J*KÉÙ›õíd±Òœé3KÛrêðÔ†³ãŠk¹aÕÑôt%ˆÃ Neae›v+˸’¨Ý•¬„]ð¡‘s䪰@õÓ¥(ÒÂÿ•£ÇRô@bC_ÿ…ÄœÏ&W!%ÏKHÄõ˜‘ø pN2mbJwAºzD#`'5BÚ¥a}`TÄmdþNiD›¨+w=Î+ÜjúJƒúî@ht m‘–¦©z Mk&’o÷’ÈÏj¸¸oÿ÷Rn¦EnŽþE•ýKT¦Þ5fð/JL5ˆ³¿á9¦¢òÝÇÏ;MiK<>ÑÑÅD?è* :£zªúö{¨·Û¾r@å •è|M¸œtµ.¤•èp/ÍN]%’U[»¤îœG¬È®û¬ðDL‘ªi™òWï?œ]Œ/ÓÒ n#KeÏm]è¹T;ߤn“ˆ«mê$p®ì¯è®g0úÅsŸÂ"w‡Q÷Ö–‰ÃºÐs½cúê껤´+²ë9Wõ¨4^5 â)°ãßîy‹+zÞêBÏ[ ·­¯SoaåXpE ¨EEw=Ç[ ©5^œ=£‘õ'ç§ïÏÈçOÁå²]!‡é-­ä0‡…*톎®’;›P·‡»žÐê Íªy¤~Ó!.º 8º›Tp¼X«3q7Vp´‰õz¸ë w‰ÓYÍ<\Áâña„c G—“Ž—k}þñ2VІh_AKÃØŽ=Èõå ®€†¡£äÿkVv´Öù&Êh¬XRÖñ>W25<Ö˜bç¬ý’KÀ¿OÒ2iøóQæü²ÞUK ³Z§aî»éÓUK s ;g XÉÜhøãºv«!.ze–Ú˜­ßU¹ ˆÆš‰žDå± }圱¥C\оƚ°]ƒsÖ>‡d|X—ºÇnMûðf=(„5–ÚZØžo:€§«Ñ7tF®Zå6YН¿ç´ò¹•(¿¸qYÀo–ªÝÿ¶›®ê€kÄ,Àœu<®%Á3vl{7.Øüy`Ü¢~ö™Ý"\„7ÁÅ,Ý|¾­ŽàØ/ Îúu7z1€c¿8®!ÀÍYÿ8øŠ§àBSû+ÎüæÛæ™Ì8²M…†"êaùed€‡e¹ˆeExÚïXäý|=}áêÎ,ñ~ÈÃxEßpy=Ÿþö”¢r endstream endobj 443 0 obj<>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 444 0 obj<> endobj 445 0 obj<>stream application/postscript Adobe Illustrator CS3 2008-11-11T12:59:58-05:00 2008-11-16T21:09:40-05:00 2008-11-16T21:09:40-05:00 256 168 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAqAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYqxXWNO0+78y3Bu7WK4KWVrwMqK9Ky3FacgcKEE+k6Qbp7a20CO7kjjSSQxRWqhRIXVf71o+vp t0xVd+goP+pV/wCEsP8Aqtirv0FB/wBSr/wlh/1WxV36Cg/6lX/hLD/qtirv0FB/1Kv/AAlh/wBV sVWyaPZxKGk8rhVLKgPp2J+J2CqNpe7EDFV36Cg/6lX/AISw/wCq2Ku/QUH/AFKv/CWH/VbFXfoK D/qVf+EsP+q2Ku/QUH/Uq/8ACWH/AFWxV36Cg/6lX/hLD/qtirdnpOgXMJk/RNvCweSJ4pIYeStE 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 uuid:7793878D1AB0DD119D558CA4BC145381 uuid:A3660FCB4CB4DD119E9291C17F661F45 765.000000 1260.000000 Points 1 False False ArialMT Arial Regular Open Type Version 3.00 False ARIAL.TTF Arial-ItalicMT Arial Italic Open Type Version 2.90 False ARIALI.TTF Helvetica-Oblique Helvetica Oblique Type 1 001.006 False HVO_____.PFB; HVO_____.PFM Black Default Swatch Group 0 endstream endobj 446 0 obj<> endobj 447 0 obj<> endobj 448 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 449 0 obj<> endobj 450 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 451 0 obj<>stream H‰”WÛrÇ}ÇWÌãn*XÎýâ·ˆ2Ur"»l"åÙ•B@P„2™ößçôtÏîB’§XEl÷öõôefz·¸zukÔ»ÓÂÆ!g•BBTz0Vk‡_ëJ)êi»¸_ØÔ^û@—o¯®OQmN`&]²ÒxÐ){gÔisX¯’^í•¡‡ª¾wŸ²½ŠC‰ÚÔw6ÚòË«ÅÕUF­î…©¢B•€úêq¡¡¼„wí¢Zmô„˜WÏ‹·ÝÍë~†ØÝ|ÿêÕö@O¥ÛöP)ÝS¿LøY3u> ­ú8¤î—HTìÓÿ¸ú A8bLœ®õC>jõ’#1¡FÂA0°44©¢°þ(çCCrÿW¬ñ§“üÄ*çãÜÁÈøÄÁ·˜Bôƒe¬Ã#[ ³ÂD‹—þ|ašE i²8ÆØ,ÎA0.ÙP·¯AÃÒoð¥ÚÃFð.‰z†½d‡bBÝÈ^S@I.Mp€E`ÌŒS¸0% yše ÑÌûqô‚Ñ)%â°ÆÏ%"-ü9ÃÁFšy­™)٘׷ê÷2¾½þëë+¬‰Ÿp* öÏÊhõF½ýQ«»Eʨ˜c!Œ1†ÛEÆ9TÜL¦1F™l?Ç@»YCqæ8øòzÊ#g4Sœ{Æ,’‚™y$“eyMC£G»Upá3ŒÑ*TríÆ‘‘grm¦PcmŒI"Q§Ï0féüï=`4¶º)³lŒÆî.iÖˆFcG‡9P¥@džÑvˆóN„DÔó¶2š-_pš£Ö‹L¼XŸF'´¸¹àx¶3º"ZCóĆK8+0B9D'm™Ò!ÚT…”“pB•ÈV$ŠgZ âNÄ ¹°Og](† 8,ˆJ;¡q `båxÍ&Kd¾itó1r<Õ,„lÅ·xÄ‹†å<£Lö 9ÆÔrðž-i#Ú’tJQèf?±BÒA`m4ãciVpqö*Í~ñ°˜—'Ì’z–™î\¡(8öÅnf° m#æ •Nl!Ú Ò—QA8Näý¬Eà@Rµo–ךÑ01qH–C0‚un´u¢ÑöK°Q’/Ù|ĉ†ý@þ#€>æÌµL¶Ÿå0` kÏm†‹Gf>zc!P’  39Uºq$Õ£k8ÑÞÔ œbÎsÿÙÀ»Ñœ”›,#âeqXÃýié§/$²dZ 4È'tæÍ"ÂÖLbS5ÀEÚ?˯àXŸç_0jiDˆ5B` Åq!s1t ´Õ©iÇIg†6æÉÏ|`hKk /»$§¦(Q:é\'VôØHÒZEâ®(ºûN(…Á\î&0"׉QÓ¬L³Wj’péÂzæÁˆ€æ²qŸ´øZM¤iž wwbÃ@Zu mf0âÓ-¥ÌÝ 1q¸TÍB+åÅ4°‚*F#ãe{fmÅ‚¤e9Èlmƒ˜à­`pÏ©@xFÖÊÀdV°q܇–v–‘ó‰%\¸, Ñ2"Å\H?3@{ª\¸(üQ&!”:)S„h>Ÿ/r †µ³,‹Ü_ t`ç'Öc!ðû”Ë|6ršÆÑ<‰',ËLFÙIt&³|»@EÝ&ЇÞg;KK µ”9Iì ™9ù.52.Œ‘«›ZÎI¹C´ëAiwír±¨ˆ–IîB‚ë8YàJÏ]p+´ Z«´[3MY´vky¶vl8H¿N@á*$ÐeYß>¦ 艜F¤qœÈKeƒUÍë/ß\ãÓëêÕ­QïN‹«ÅÕ ìªÕý¢àf‚û½Võ–Ƙ.Ä«G\ýßácHkd·ÚðSR«çÅÛîþø¤Ögµß®Ogu~xêMr·Ýª>vè—fˆÝúNmöÇÍèÍúp§žŸvç­°6¿möý«¯…t1Ñjõ’ý˜ÑcaÛ“:ÕöpúPíG¶Ÿ;µÞïÕîpÞ>Ö{rr:¯ÏýH‘ʺ Ч­ˆÑ+y<Ò+µlQgé†ÚbKclŽc;? £c;÷'‰|oÎê—õþÃö4TcõKksªH󗩆]|é”èÉðö2f‹,³ÑÕº_â3¦tÿî—øð0Ý¿hAŠß9 e}áºP=QÑhQ¢F8kýÈ…C?TëênÛG»ßõØÝXUšR©'~ñ¨ž™ëjŽ7¾C½ñ›€)jY…€ž…[äbTÉ{‚ÓuëM ¸„€á£Âˆ´°œôÕ–¼¨›×ý2ÀîÍ7'äJ6Ÿwô€:=Àü¹+„y}¿‡ZÆÔqè­ªƒN3¿XõËñŠŽÒjÌÿ¤Øy,¶å¹wä —DmÛ=ݯ7µÇN»ŠXm¼D˜¨»Ý/»»í½„ÒQµUïg 8tz ¸vOmj¦aˆc ^`ºS4K0y|_ãHݮDzéŽmZ¢©4ùòh#<ÕydÎSok_Mm_ý„˜DëâôÛaóPÓIp|üPm"Cúÿ°å¦™ûÂMáÕcèþmÓ”(nŠ­ÿ»ï¿û×õ?þÞ¯~šV•£ v`ñå4‰ÝýÀr™å–QJ83-®O8¢Z¿É*YõÆàLEúÃe,M–­€‰Š4NÔ%þ ‰Ö²U¤“J˜;v¯ÆW ·=QY}wV·µê¾·Ô£Ø+šºM=M"Š\=ïÎ µ"½W¯wÛ÷=Å&Ût•>°\Uº˜d6tèk §h–Ž‹úáþ#Œkíqiq·|½~„ƒd24º—»'l«]ŸÚ Ý›ÅEœÝËÞÐd6O»÷çÝñ ˜HE0¥ÉàÄR¡ái…Ñã1Bs‹©3>ÅÔÕá6ÝáýÚÞÒÆýŽš˜66aJœ¿ø/çUÓÛ¶Dïù{¤ŠH¹ä’ÌÍHâÂ@‰’" %Ê*‘‰DÕH}çÍÌ’+ɲÑ\l‘ÜÏ™7ï½1©<Â2Å!5æÚáÊ'`¯‰’*Ì‘ƒ ɨh_Ò8å íL­"yÕ¬ºUµ^ý ÉÀñòè@UÆ`³ï-¿Ø½4í¾£ÃË&7¿ñRqæ¯zå-rG÷ô×Ñi‰ÁuTy#PMÒ$|23!lù9Çw‡ƒÄ¨¡†ÿ»ˆX..D¯èó†ŸÒ~:ž%%¦‹ýä3²@øGêbø6—”0,ó}ÕU(¤C<¥Ž6§ÑT£#.6ÚZ–ä° Ž\‡Mz¸Å}-»jBqtäp¢ë½ð{Çp¸S» (çT~Ñ»¯„¾q]¾ù:Ò¯+` VLh0PAÀ¦¦ÁºDŠ#2Á‚Æ¿fm£»Õ:®3­Ôúb4…•ÐÏËj 6›z£ß·?‰2¦esÏ4§æ)Ki%ŽêøP>þùdÏ‘O1`X¥ó–™öŠ™"þ j_ð‰ýwÓÒè‚8,„E˜œò€œ\HN™Srâ™ÂP©ßAŠ˜ª3ž˜ò3ÄDe¥&#±éaBnø˜•\–å+µ ¢Â’åa¼¤áÌ?øï+\tácýcO«ÌD„k=FÀY<§—75u*@TÂIA®”°Z ŽnG®$Èp̹_¯‘9 ·ñJÞ\xÝ¥P·E çí¦Z5Æ‹}œçÉ G¥þ4‰RÓ ;!üšžé…î´´ÍJ ´#L§J¬¿“^ÞýŽ÷/{D¥êß\½ÿòþÕô/ÄÀÆà¬!œ"ñWUWþðJ‰òf©V"¡Q1 O Ø½•I{êý¾—²ë̼RW‰ú™;ý¤×óOòµž‹y2tqsð€êbò>Ëq=½%r²j„ôï—$Ò« $ž‰[>TbÙ#çí{­(‘ˆ«Ä*ˆœ#ôä`FÃÛ¦º[×>vW Økátš5ЉšKVbCÌØ´ü^ì×ë—¤ž»zKW»×ˆP›JH ´óÂ:«ö;Å9’ü• fÄÆ´» P6zзà²"Zu`‘6(=†{±P0`À,-±¦Z=êSá¾üüî¤.K!þ×{Q”¸ˆËè’‚`.×Õ½íí²n4(õü¥¾Ä]EŒüå=u«YÕ¡-z¶Lq¢4Î|ðªÎøë $’11È8…‡l€' ­^5z?¨Sì¤mà·†Ó™íïØ˜£W|r(p¡ |ÀMÏðҰ˳“öPÝ04*9ŒÏ 6yÚ4õhÄd›á©ÁV­€<§ëmG¥ö:6š¡vÑ9¬þ©}:Z>w謄˜Ça 6ƒ §"\Þ˜ %T–•Â(‹µ éoŒXú6uLïÐc:î1ÅL—®_ফcöšu¨ZŸÈ‹Ímz2q@J>ÐÄÇOÂhðÆlÀ0¤Ø2Ø 7è-ˆa?ñÃ-·ž$òC’H†} ¢YI²ÄFÁÜö§ÐeÑCïä{‡´B\`¾¤”BûÌpâ1À‚”’Úho ¥wÕ‰T£;6€qÔÁV.×-¶[¶köyè½rw¥ëø QB‘cEލ{©>x^ûJ6½F6‚ò·Öf¡W V›êjœb*d$µ™ë)9%KQ•¯±_1@ÁxpŒ¡a„¡º5‰LIµ´…;bîe…|{„(ѯ÷U§¿ ðð%p0èRmoo^ÄŽ"XGÜW>IR†ÉÊIî̶~±xa§” ú^LJ|¶eY‡qúÙ‘ãKÎGçËó÷`y¿Žù¶¤.ÒõÃxÀï¯wÎÌvô2Ÿ–Ü:’--R›Ý¬é§ËŠ:?žd2wjî‡ žÛ@Ät×Àº¢?bB–½HLF4BrâçÒÈ „¬¥3&Ãç&er0{Øaû8Í'¹®a3K”óÄ&:à‰MtÄ› ùpSþÞTC‘Ù+X:ôôW²Á—HüüDz‘–dÖÝÀpÏ °Ï @ªùß/^BýÄ%lœ0¤Î!Éc¤ï©I9)ÂH3øŽaiñŸ*.¯ endstream endobj 452 0 obj<>stream 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 453 0 obj<> endobj 454 0 obj<> endobj 455 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 456 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 457 0 obj<>stream H‰”WÛrÛF}çWÌ#2!Ì}7GŠ\ÉnâJÌ”—K¦ ‰YŠtHJrþ>§§{pqÉ»©$`Ó·Ó§­ng¯Þhu{\˜Ð¤¤¢ªm´i[‹«±]שC¿¸Y˜X;OæOÏÎA­ƶKªÅM“³Z×»…wÊÙrß:¥é&+Á3= MZŸ™Ô´†~·Zœ]¥ÕêfÑ‘AÕ)Ÿw@}u¿h¡¼„—­ÖX®ž•qõêèYÖ¢Â/Gb\ºZ]°²ö¤ü®zzzªCÛøªù¼ÙnvõÒãþs³Þß×ïW?.¾_!ˆ’P1(lM9º_×EÓ´is›£¥¸)âwÕåµkbuù:_Ô«~‡[õõÒU‡«Óþ C£sC^z´V-ucÌ‹;Ùöoõ26®zU›JÇz‰Ð+¯^~:ÔK ßl•îXüB™–ït[2þ5µ §ÜÚ¦óÄ…±¶~x†º¢À“G©$HÑ£ ÝìÚ0+°Ö%¯ ˜ßQluõ‰¯§ž¯e¾¤¤¾Ñ)D.x¶eŠ-Û‰­ý¡W¯{Å”ÇM_k_=þM7jáQçBã•ji€ %óöµc·ºqÑ›¦sÊ¢Š&Ÿ]ì×÷ýî¤Î~:G½¾»8_ü2A·³ø¡vBLÔVÚi2ÆèNCÝY"hb‡.ùºhÔý‚Õ+Û4æêP7“xô©´¶¨mB—Zâ/8ã¼&ߺ Rׯ»ñ©1©›º™HžsóõÌ/Þ7¡õÿÔ‹hýÿÉ<ã•2zæf”<çæ¿$£ ú0¨ß‹M;«CפÎÿƒ:£ÖÄè$P1: TÛh|â\¥«wÛ4á{±`É&˜’Í£Ý$ Ëë„Ôܰ‡$¡ ±›I¨]¹VÎÙ“P£I°cÓ ‚ÁW‡ï`˜±ÖLÁÖè¼Ö°(·ìUkÆÑöÑvÌA|é ká”u³A²-¢ 8úH)Í¢èyŽ2âpífyÐ3“L1ñÌ ¬£°b kØFÊÕÅZ*G‡Òa‰â£|¢ ì4+‰G dH¢`d¦ø”Ô£Ëo˜1 Ô4|Æ¥Ày3˜›vŠÖ_L)¼[,k0ÖX3©¯Yƒë5îàzޏâ£?´GQ8S¢,¬óðCws¦…—‰ÂÜ+»n‚&ÖÎ`ËR"‘rýRÍyo°‚5eVé+3&r®”£“ “Q’J||ÄG£À ЖÖÉ# /0WfcÛ1Ô¦eâÇ;èÄ<-­Ë[ª›íˆmšYH.~á£KiH¦'A‚ƒ:L’ ÖNrŒr´)`] eƒ(xÍvl“©:®Ç>a *£e‡áRDiM'C*½›Ô"zÛÇIè}oK¯ËHrÀx)MãØ?mì­åeÃ(ÓÃMêÀki§g;¸’ÅB©õ裰¡DQØR¢,lÓ(|+‰ …B×%P@`‹2Ëõ˜ËzÚ"EÂ¥*J)ç±ÆIëûŸÎ¿,Î^½Ñêö¸ønµ8»tJ«ÕÍ¢£¨Züæ¡eè0µºÇ×Â-¾¥ÚÖ¨ÕÓâ]õö×/ëØ6¶ZÕXV/?œ¿þíç•zWƒ¹ÕE½DÒÕ·5ú¿jkœ½«÷¹X«×µôá”~Âu‰3;އÕ[²˜ªC¯6ÐÒÕ©W5ŽÕÅo¿ª—dŸ…çû‡Ý‰}¨ÕÝæÈÒGµÙ]oÖW§Áøê¨Nw|§ê÷«øðÒ‡%Âj1;V95tÓj½XÒç'>™rš»zI¹= `]Ýìj£žö‡Zc"V×õÒdóÙíÓas:õ;¸>íñ…p¬.¸|Ý ¾ž½·Ù¯ö†ü’·–^·äx]/c…ìêe‚ÿ“¢8\… o8¤«ÃÕÀ¡Ë«ž°UMKÊ1ï=íy£ÚÉóG¹A[)1øÈ¨®‡§ô«–ÈØ–…<ú´Õ*?wò˜³[}#‰ÄÁìê¾î)ÂP}Ä¢c«ž|äzfcûv0&ÆS*V•Ss„4ã°S'6uGѧb PÓ[]¾¦k¨^ÌÀ€Ù¸cµãÃÌK±2K¬¦ý’.˜P¨Zî ͹>A]ÿH4Á¿›ÚWÛýÓqdB¾ÉtgmÅœ YÿyÝ:eáf¿{†'™Ÿv ‰~‚i%XpãcÇé_ÕÔ˜›ýAmŽ’ùÓ¸‰îA¡ˆ©½ÚêW§Á —˜’•eûõúápTW'j"u`{ÝIˆín%þëÛžZ#/Þ²Ç_kbŇsrùï½((ÀÐóxâRðîLâ$â%è˜CηÙnÕ~·ý ™+ÔÐp 5jv³í×Ääšw×8âÚÉx#)àS¢Ê“ŽrƤ£¶Éù}±â¡'èìúÏ¥U3P´›€ Ôz»_ÿg†5CÍ Á3ÊLéæéE2›NY-±Ê7êõUÛþxÌu- <Ûý­ù=ÓM]ƒ]w¿š_1ÏÊãW€ÑdêŸÐ¬Tö‡Ý0[¯ÕÇ\ç¿rƒsr?Ò ¿ß?nù0}·ýÕ‘Çø’Êdªãæv·¹Á¤ÞfÈà`7Bóqs:f9™Þû›ú*émÛ Â÷ü I RÈÇÝ7ÃQ4° Ûm/ š¢-6éŠRŒüþâ~³p‘µ$í¡@O¦èá{óæÍ· œáÑú@£Î/~ÁFnl|ûj»é¤&ÅÎ$5$4vÙ)Ì9&´¿ÖÍKE—q&oYV(ͬbQ‘»§ã“ªp_¦Ü—ÑqײçøD»;Q C8´ ŠçEBŒ.vþÓ!‚CùvÁUKlkN‡š]Îk‚ðÿt ‡º^jm=ë»FþŽ;ouÜò¦“Ï«Âj·y^@I9Åbº_q2~]Å_SÅÕo³›_®w€PêGÔûWÈä~(`k±$(ò̺sBas•9®ý¨ì\p´H2¥²cª>P†‡P»˜Uͧ2£È[ þ Hkç”{‚”ZÒ¼”¼¨ì¿–¾¦8|ŒŠ—þƒ« õFüWI••ßùPÔ10´°¯6à%ãC'zhdHƒúƒ(Nh‘1·x Ì3¨ÕÙÂö㶪¦»èêNØÕäJoÂ!ùÀÙÞt¼ /ôÇ)„ÏÝפ0P¬›z²@Ç®·ù¦ü†\^GZ©[àõÑÍà€Ìà€ˆµ ¾M^‡|_QKÉ7íÈ1°ÿÓ€%ÕF/Wí@ÂvFÖ>ÐÏcñ{Q¸¾¹úxÿá×/_îï>ÝÌn?a ×' ~vÈ3ÕÜÑÆx‰}-~—a„¤ý´f±]15¬²‡JºÅ}@ùÁ”žÜ¥•h—MµĶªøk´§ &î²÷ÂÞŽ,ØŒ[ÆsC¥Iµ•JJ¾'¢ËFJ *9§$ß˪-Ç<ÂQŒ¿9¢ä½ ÆQÉDP[CØ$öYÍÒìÃ|f­¼ìº,”› Æ€—3Ê45™ ‚_Ìxzf`$vƒ¢¯¨Ö£v 3ñØlBäXs\$™°îÞA²ý#«WÅ›=9±Ín^8[ˆyIÒÁå3}kùÀ¾Ðã‡b×díiÕâ{­ÀrÌL[lÀy“¼$1µY•d)õÂ[¦ŸŽB±èWv3=⼩&ÕMÉ~²gåK < ¦á’ç5\1ÈlÙ4Ä'M4¹„·»Ñÿ-º¹FºX‡&“c¾b¯Ukꦧ¬“â­HlÂݼdUÑÚl…RkôЮs`€+ÕÕ¾çW%™k]nØéu` ä}fþ·Z££—±)Ï­õ±1a ¶ Pjkê¥FÖ¯hiÔ™3çéµx.¸ˆP—zƒ¦Ø9Ê^EÍa¾º?¿½Á‡S~wÉ“`n¬áÈiußsy~šQs6Ö»œ}„ޱáx6wp)ÁhUjP¡©MG…&ƒÂu¦‡û#ý" ô‡ñø0¶ú?t#ß}óúš?LJ\÷“. ³Cü+lŸÄ×~Ï×á+¾f£`¤­snö±Oä|pg±›î {gÏ^ò¤Æüî¨õ!ÚV4ÌÜuÏÏÅzÓ#žSá¾9Ö€áЀêõ˜Æendœ.ðÌ£€§<ÊÌÆdÊùXeOoÖüí˲̗ú¬Ž‘ˆá«¬‹Ÿž)x.•¡`‰b`k$x´¶ G%eµ¿[Ž©b4rUn˜xwXwOßt‘Cì+v¢T™ÖŸàabá=Žzï ø4:Àý{LÄ E$M§³ÿ¬ÇAqYÃÉœÀÃäÕô €`õ™ü&`W‹5»òxœJ ÞØüï`áö’hÂ1.–{hè¼ Ð1OÁÞÍÓ&T¹üAëkCgÌ?µ¬ôà°ýI¼ûX ïÇ7é4àé\‹¼ÈX1Ma¸ú•úþ¤KÑÕï‹ÊÑ~p<#ó¼Žeˆ:'TbÏÏt##¡‡ã4&“ô÷ìë=ÿÎCãçZœK!ê¶~ä_Y^{Ü¢ì¬nY…Š8&”a$ÆŒGCQ+q”ÊKÙ™ þ?–æ/!âüWw€¨ó'õƺ ÑÐa¾¶]¡<ÉßÄÓ$£áþX¡çöES;tîÍ_NB , Â;H§A¢•ƃñ€ÚÀŠR¸Dªõ`¨ÁÙ ©EaHƒÖûr]ädË1`%~ŒK~O–®Í×å3¿¦Mfwo¼È›&¸T|„Kt§& ƒOÖºxƒ¤À£á?¡?MSŽˆ‰ðCÀ):A9Å£Mú€nM#v£ij,[ºQÈï.ÚÈÊ[¼ýpE0@$ïYm^wßG ö鿇c–o]ë©‹M2Mn A§8Au2Â$ÑÖWï®ÁeGh5Eü-À2‹ ê endstream endobj 458 0 obj<>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 459 0 obj<> endobj 460 0 obj<> endobj 461 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 462 0 obj<> endobj 463 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 464 0 obj<>stream H‰”WÛ’É}×WTìSµõÔýò¸ 1Ø,^í–pf«‘@;ë¿÷Éʪî°xzPWvVæÉ“—ªÖânvñìµwÇ™ }J"úØû T¯RÿÆæœÅa=»™Ø^;O ço/.A¬ŽF•“PxP19«Åqµ›y'¢ó=^x儦‡² rg¿½ }J—w&õÊðËÇ‹ÙÅ•Z,ng™‰,|ÑÀöÅýLaóÞ• b±šÑ0/foäÕu7÷}W/ù_<[ïè)Ëu‡-YºyÄß’W§}]‹.ôQþhd¯»·‹çaÄ:~®q}?bñ„‘h_0ˆ‡‡‡.¨ÞËþ÷ÍvSü{ù{¿Úß³O`¢$’T“›.ÁÎ÷CHÇ7x@âà]ß->Œ¨çÞõ)[+æº7f„šI™÷%ügšIŠ^tsbâÇ Fƒ¹U%w€+ ÃK¥UåªÁEJ1=¸äÉwô¶§dÝ—d9; ð¦åí Èò%å%Iq½+ËÓZn—åµ>6?¡„6¢”]ð Nøˆ8sJýë/b×jŒ|« <ºVØÅ“ýêóýzw/.Ÿ\Î~žT8X³¥9@8µvZ§’xt“¡nªÞQ³t¯r÷38±@ƒícÒb;ó¹ a"ˆ½ nزÕ‡œUé¼&¿:‡ÖWà§Þi7q1 ¾vñ©¥\$&``®©ca d}/æ†Áû>Úÿ ïøÓA~å™saê`|åàçï†\ï|òpÏý$1Á`âÅ?Ÿ˜f±B-›Å) ÚFãËôÕ(Xú÷.{˜Îƺ=Á^4}Ö¾Ld§PT½£`h=`‹ÎœÏ™¨ø Á$œÿ=´ÂT×yV˜Ý9N Q+Ìh?%*g¨LÒÊôaZ‰ÐjZVZQ£¥3IsÔj‘À„³ñ©UD‰ë3‰c;ƒ+Ò¡14 \+¡9Õ‘£‚À§ABë¨ ¯ëÒùº´bU6Ä«ÄdªFv¼®q'â )³O‹3†ÖY³‹QÖ¶®q àÙ‡"qŠMæÀ.\ÛQ×^5ƒÄ1¨fÁ'S}p‰4qÝa8Î`«^yöPc ±Åà Zкî®AÇêºÙ¼!*_imkæ5„<¬yƒ­4‘d{&¡ÔlgïgÓô¤!©†žjsíîT¨È8ö«ÝÄdešF,A"Ê:²…`Ζ.ªÄV}7)8¨¡´7ë+Ålè’aºrÚÚØº£ÍoB >'ý…$höý/úR2Ý¥“ù¦„ cZc¹o\ܳ óÑ2‘+Ë0“bYg_ÕìÑ5œÖN—u=Ŭãú3žg£¹šnV0̈«ƒÃh®¿`õ°®õ™Fª‘òÑy`Øè &U#¼jÛì&ñeëÓø3Z- ñïÙB¶ŒÀ'N† þlmTl;ªÄÖÊô­Í£›ø@ÓæV®Î’¨­Q"uµrm-´¬†Bª¥•+î‚§»ïÈ’ïõùl‚ pž˜e¬Sœä×¼ƒ35jØxf€=ñ «‚â´q4|­ŽÆâØÏš++±qPKu$ ¥'4âÓ-Æ Íãº%b”pªš…–ʳnà 5Q!èÚ¡NϤLµPÃ2 2i¦A_MðÔ1¸ç"3kjÃ$Þ`Â0 m 3ç"kXžZ×ÉúL#»‰šSùÌEæ² !—N¢ø\:‹ ÖL¢ÌõþÒX ; <ñŽz,x~SžÎѶ;¤I7DäKµ'CIt&³~»@Õ:Š›Þ%3 C ¶9H̉Úsõ»T×vaŽl™Ôõœ¬wˆv=Èí®Ï­kƒD{¦Áy-p¦§.¸ˆV* c+¦1ŠVn-ÎVއZ¯#Q¸ UêRß.Ä‘èq9¶H“ت_3ëø¢V¸X=}q‰O¯‹g¯µ¸;Î/fW°+·³Œ› î÷J”ÞáÞèÄâž?VÇòš?§æøÈJ(Å ß‹‡Ù¹Xvsܶ³|×Íq?Ör‹0%×ÝÜZÌ/iªÂ¼¼°2toϱýnFý ذô]Já¸&ÃxB¹ëâ¦ÃÙ"Ó·›!ÉÝú(º Oï»Ð{¹Gßí–Ûòpû+¬Å¡ÓH0 à¾,—7$ÞìNëÃ-4½\® q*¸ÒY ÑÈZìoÅR\]_us|‹É—Ýr)°”›Ž>½›Ý ½6XÉÇõ غ¹“äµeûÕ¯Gzr²'ñh š¹Á§–Em„¡›1@ïeZ° ¦^×ÁIÐÉ+« (~ªÿÃírEü5àlä²m7›ß67ë›¶cO# Áx1ðé3™×rÓÄ7¢Qh"|ZŒ™+%QP¢U8u䮤&¶ÔD¤f¹»û§Í"ñÕëGô¹ò¼}¹e9Û‚œ¸0+ïŠ|×á‹L¶+}Ü„¾’É<ä´"$."UÑüÏnõþд¬ÜïöŸâ´TAx×ôàšjhµEêHþ‹,/®2÷’F­jŒö‘7tŠ|õäß—ûk·ø0öž¥£gõy«¶ÕLþÒõ¤‡é˜jkâAT»t™L8 Ñž¥QÊŽ7òú§çO/¯_/ž¾z…†S£D^w\í>~>µ´é@Í2ƨ\Kü…˜ë݇õêT †*¬þ7»»íZ¼Ûœª`}1ÌïáF˃ØÜÆž^^VÛõòô¹*­Å¦fHqjhŒÔÔ hðùˆRù%©——âŸ7(ŠMG¹?tNž¨ béë(çbqõ÷ŽÊõÙâÝv_ºrÕQ‡ý*^ýøB°ä@­b¥x×E(pKeµ=•Ù1ßì¦ 5¦BY‘a¼÷ËÕŠÜ÷âj7Œã´,[‘.ÔwÞlKçÝî÷h`šM' ÁlÚï5º×mT{_àÁÒ¬zÇV¸|¿üxâ‰y`öØ–{$ž¬Ë´¤Y€_ÁGj+d7¯~ËÆv``ŽÁ  h‘¶…H”‡¤&³ûûÅ[uN7EÙ–g‘çyEv÷és«ªóú"×~’IuÕc9ª^¢õ®i›®¨Ÿû¦ Þí<ÇóÄf¾qö=#mpb‘ÜØ¢¡Ive>Ú²¾ô£Øg|4á?ÌvŸ?wîUS‘™5†hAHWt‚ EOåÔS‰ˆ‹O«;YÛRU@gA}ÜÎŒ®7¥Ô¢3¦)¹lëæA6ºsñ_–8k²ò-è—g•á7Où8±H,3SD¹yÄøzýÕg¦¶€zÏVÚ•¦Ì-‹älÅÚ/»¥‰hÃÖö„ƒ-‚‘dh·ìœßw8³>Hñ ¤g\"g”ŠI™«˜/^œÄQœ–D.¡lÁ„âõJºáèú·Sš7kÍäZÿz‘·Õ¢õ¤«i©c›jÕr‡ uC5ò²j`LN©5[.Ú·œu-ç”RL•¦JIÛEôoÉîfÙQ²ã¾sÍÑÄÀ4fD “8¤8›ÃZ¶?_Áumøžâë4úK,¾=vƒ”‹„+Îö¸n¯†*pKT»…"UÜ®Ó@D7ßî”0ËeÑd$¡Òr×3n&`,¨+%¬Ü p»îV4mðý¾iGÃ$–=‰h:f?÷zÞ˜böJ °’^ÈÐr©ds±x9ŽZˆrl:ÕùÖTžî'ZP eEÞ`Y·8î4¸¼ÕÒQá°I< Ç“Ës"Ju J9û Ý‚07ÿGn½ÒtºÚëŠýTŸ ôoq)·Ì[K\£°ÀPá´æƒeµÓdôŽ!'Kj^+å”Dº[°ÿ›::m¥Pƒ¬£¨o«ðÆwˆÑ-‡$d*"‚ÑØfF[;ä^çÁF`M½ºþÇÞ Þý«ß¹s{üCà>´n¨<ÓÎ^*tÀ×ÿEþã}£Z5xþþãõ/,±/¢$vƒïPJx>cn˜¦àb]ÝŸõ&÷4Í©•1ŒišÚ3µ4º $ ž2ë•>-«¡éB‹Ü³L'ø]K'•!yDQÝ•ð qôªé›á4ø¤éTBEï®5áSr(q {‡KÛ@ˆ„á%uáè%™®ß?kSÞ«’Ò-ÂJUÏWñ>í;zÕ2·ëÕЯÕzÿCÓ±¥¶òØ¿r“ +ÚúX~ŸpÃVÀ&8ä·»UÏCƒí툴®œ•ýÔU‡Þ¢ZŽßÉ!óy©úæ_ Ûïì‘"ütýÛù{?*›Ó4a7.v\dIëîè˜F(ë7ë bãÅa?è³Þì\-lfBrÙÈmDÒûF)¨îy Ùþ<áç]·Í-®õÜW³F^!îùŽG¬k¶1N­‘‹‡{ Èl8ì~w1vàšW‹ÃͶwä}ðUļ khÌæ€ââÔ:³qáA÷ÎTîÇt¨« ) ¢Ào¡gÇ©"^Ì)®•_Iy<þภ–Ðx bøõ®bØ’ }ñÿQ 1 àÿaQ\ÜúqêãÕâÝoŽI%ý‹J ©—ÄÁº²éG©å$ÜÞuÕfSÝpG³Ü$Î7( £Ãö”ÎqVz'ó¯É´ŽcÇlõÊIÚÁcã[ƒyâq-0?Ýš@¿ÖA㸦Ýmn0¢êtå÷­¸aY‹d¨Û _8~êƒuÓ³¦ªöód{¸wêmÛ˜“F± C<ˆ¹rŒÚºQ_Ã(6 üï·ëz\^lôÇÈì=wLS7ð Ðá©WÑV_íf,Q Ç>©"×@Œù@è‰Î'™ÈO2ÍŸ2-›¦îG_¥-ÄWÎè°¸*Ò$bíÓQ™{©BFl}Q(s¡Ö27”â!Þç¤í„C©JΑÂ|_ƒÙ)*PùÍ,æx&>5!ŸŸhA¥§‡ÔŠ*È¡ÒÆB5Å>§ã?w«¡ .Ûa–(Š1SÝ­ü«–œ?ѲŸP¿3v'Ô[&5%2; d¯ëx•ï+=ê^¿ãhÙY7òë,´µÝÁ[ðÌÃo½T¬÷ç8WN;ÍN%ç×ðí¶ÑïῳBÐJû å<)\¤ñ`;è…¬Lç9c½g½/á‡jƒ«eиÝÙªk–”С…¥H8ƒ4ý²[‰#ç×?Ų[i ±‘07 ˆ²4Ý5?ÁƒÜndº+lY–²"/t…Mí#Æ +x§|bd\à¸käQ6/M`aÍëÊŠ×oû,Xöx™G¥DV$6úeë÷gìŒûÁæº7 îÆÆòç9 “PØWÄ6›˦{GM† ’<á›ÑQ(çlúÝF¬Éþ{вš~§Ç‘4.Ö1Ì^°à7á¼`#M‘…©›²bê¦ h §Z£M~ [â„ñûŸËV›ZáÒù?fø endstream endobj 465 0 obj<>stream 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 466 0 obj<> endobj 467 0 obj<> endobj 468 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 469 0 obj<> endobj 470 0 obj<> endobj 471 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 472 0 obj<>stream H‰”WÛrÛF}çWÌ#2¡¹_òæH±ËÙM\‰™ìƒãJÑ$1K‘ /’ó÷{zz¼òfc•‹3éÛéÓ·³‹×=Ì´ïbÁ…Îy!;¥¥4øÕ&¥$öýìf¦C}l˜>½¸û¨l¨QT¶Ô(+›ÎiT¾ÕD  •®J @-”Y®Á\÷ã©.UµPK9íˆnZß~9ûqvñú·‡Ù7‹ÙÅ++”XÜÌE%ñ—ÊBá½!ÁËÅ=¾nñ5%%Áâiö¾ùéê·«—-ÄfA?¦yùÛåÛŸXˆ÷—_·ðØÈß*ÍÑÎqóÆGkóötÌZÕ`9W·ÌÐüahúv.ñ³¼WËãR´¸P4—»ÓöÈÆÄân}[€ÓœÚ9 m|h½½^¯–Ǿlw=/¶§{húæ#ü“ý=tS#Ú‹ïfø®7lú*Ðbq•sÃ]l±Ê+|4å,w7lìi·oñyfšk²¦á{ù¸\o–7ÅÛÍnÏ‹}«<%C¹/¯×Ûv*5·x¦±Þ ŠïÕ›Wo;>¾ p)$™ƒ‘˜efž‘¶5|ähV;¤î›-YÍQ‘ÛÓrO.T³Ü{Æ6å¡‚M…6®Ùµ’DÛþ‘ •ƒ{±{¬ËVJóVãpÙ”G»â舺ƆáãøÇ`Ⴣ9|Täc_`°„©Â«b¨O %4 pÒg o_ˆãŽ•ûíá4~Ì,¾b‚šê·R•YwÖ-y)Î’^œˆézWù³Ý•3§íu¿¿Ùìž&§ÿ²t²z½²÷þÓª8®wÛ!üc¦r·|\#O¬Ÿà ÁÁí†ämYŠŒAž6ÓéKP»êPxûÐï—Ù)£½Zöø˜é·_§è¯o{Q Žv¾¤ò†æŸÿx1ÁSj2ž‰‹z·¤‰ L€93_1rM"; "xZo6b·Ýü‰ä93WOßlúÕ±¿.Iã¿¥XÌKŠã9ä¤ n4‡J¶dÒ4ÛþÓ±&¾boÐ Ðü;#Ñ\â[Ë.ý9ýâòÍÈXx(‡¼é¸[Ö\7»[ýkCl)‚kàîWdû"GõñT5ÉijUUz¨ê™Ç3uËiK3ï:O¸<}óg·€õX‚÷~÷HO'ã¦_ŽóÃúv»¾i ‰5:Z5+Lì¡ØcéñÐåðæ£™™,®d_ló_Z%#|¿¤‰®š¾¹BÖқмm©[OLJ2ýv¿´É]xNnÖ×_ÿ‡ùjÛm[I‚ïùŠy$HG¼ /ysl96°‰ [9‹Å0h™¶t"KZ]rù³ûÁ[Õ=CR’ídÅbŸ$’3=3=ÕUÕ¾º¦kr”>q³ÕÌ´\ToÌ× ãÍ}£SEå‰HÂô‡·ªì£5@Z(W/d»ûº N.>nÂ×ÓÙfÔÕäçO'C)ô«Ó¿\ü5ìåQ!ÞEHyĩe£‹6ø Â…LÏJe‡tôNºÍœï&Dª›÷_¨žZ”¡,Ù–(ìŠÿöm½Þ¼ž¦²=E¤§¸ °€h÷âàäv(Äô‰B`ƒ›P>yÀoW„·´”=®AxÈãxÆ¢ÓQããYíù!lë( Mlêè}÷P‘t}W+|£¼mÑÖO²áåæGEäø¾*«ù<×.æŠešþ&Åô‹Ü]ª¢½GÊW!ÙjKEFÕm¦_]]Bwp.znŸƒHÖÒe.¯.>Ü?^Žþv;:»^Ÿáfò’÷q.Èš ¦â(ÍQm—Br Y|/‚ÇUõô¤F†kÆ <ƒ<¤ÜÄ™¢á2æR8ší—Jäy°ž,f(aW½ô<®twÉE Â8ð<ØÐ°Ëj¸:Â+V?ƒ€›RÐM-·úÈW³3á.làfˆæràxàQ¬{tÁ¾j€Šóâ`¶õ3ø›‰_¢ê žœåÁçŠq-˜F|„ŽØ„1I(G"tæü%´ämVÝ9«9¨ ÌŒ`Í„>û "?.ÚÛªõºJ]´ÕꋵEÇMhfÕcߌ&¾à6AB¤—çCy¤ªT8@Ü=ëržGÆý9Að4u[‰ßœAò×5üê¼7žÊI²`¼nv™¢ã"Z8Õ›—„ù†åÉ—c¨š©§ÈáÊ3Îd± ,ܳï7£< ³G¾2¼ ·1¼ ÃÛ” ¢Æõ%ÎëÖ e#¶}qª1¥I2ÜV;×DobÖÕSM9Sß·t¬pƒ Ø£Ši”ÌÖ3‚šý‹üM°´<¼ä¥Ä˜‚-a˜zôùgnüð:ì±O;‘÷Òà­³Nêû“@k,×+éœù=Ö"ÈØ`é0\}®…VEŸX 3€ÕˆW2yö’ùiè4Ê[÷Ó\ÌZ²µÕ»Y‡¬yš}^êç:iRh˜T¢hz>¾ÃQ´“ÀÌ%кf.‰&°Ðôe.}™K_œÝ]_»Wa’ˆ3•‘¤‚íÈìõûü—nòöËq(›‹qæìêF.”Þõëz£Úv¨4·áègšƒÿ0 8>ée$@vN´kÑ™íqÉzž7ºÅƒP·â@j©ÝŠ»ºÅè*J"G±g4ëêíHHUUIw»a£¸Ïh‡¬¼¯^ ߥ €Ij¤g8ð‹Ò)·¯s÷µÒfp•ÆöyÀǶu K9Dò Û3Yü­þý6™Ž'P‡é¼^ïÂÚàÛ¤V#{ ÃòGõ¦¾?ëI8éÊB.ŒžÿÿÈÂë•2úeÜæ ÜO葜å5|³eƒÙd³4—ÒE9ëKÌf¯bÖêá¼F| Yå¿ÜF¢A´\Î#‰ n©y™ø•þq-!>/—ÀÍŧn'B´ÿäÊYš¶7é x·ƒmç“GðFýh¡G(0¥IÒ´³•T8»'­®8õ[·Ž3¯§Z£óG-š™ØU2/]Å{ý8 ¹Ý®p¢X«{w¸z%wñ$ä«•}®ÌïaF»©€È÷^¶oâŠvm«[ºú=´©p¾5§—ŽÌX Rô­vJ½]æ‹2gÀ¿˜«£ÊµtAVÜÚ¤»ít¶éMçÚ#ꈧjŒKak#®ÑlµÑWŸzã˜ø·ãufÆkÁLdÖãù2ÎòîÊJc ðÏ÷~r}E<ÿ¶2Ç‹•l ’:–¾äxR¿h»£™!Úøôö_cY¹ô¼Pï,È#…s?-ÑücSʢˋlÞÖóȃyÞ{I©¶Ÿe”–ik”Šþz”ðsµ6ypÕü”iÆô^lÀ-ýœ2·ä‰“…¾ÙÞÍÔÅÕ!)Ù4EÓóUÃëcK•š&Q§wx(-œ«‡Ÿ«á¿§äQK*å#­%ð’aíö•hi‡ÇÇ´ˆŽ`|-q'. ¤•î–Yá‹«C8;½æ·j L–©ÌýÇöµ¤¡ý4OtdjSÖ! c-€Ü—œfuSJÝDZw¢0ßqþ [€=¿Æ>#ïó?ÂåHèTz-C®¹,5éj :µWZÏöl6éòðî/ÃniÕ˜Qú”X»È$Ö´ÛB(P¿?×lS½KˆÿÇÀÛYÔϜʟ’3³ÉÙ˜¸P¸TK›kNåEADYnÂ?_ÈfJé´d— ùd·… à×j¶ÝQˆ­êÙHœu/%·îýÒíÅïÍGô§ë»÷æzoÓÍÒ/P’ù¨5‰É ŠDŸ,þ,¤{ñLÄ7 q$Ž;VJýI Ét°ãŸÂóéäÓ±(°÷¸æ·Sˆ¬=€©ÊÌ1þDYlò(é'­ö¶ä3p¶aF‘•:wV4 ”¨‰i}{ Ùìæå4Ö…°í¼´m™% ÈU]݇VtaÎ]G+n×ö OÕ8$.js=}”±s²„ ªÙúÇ¢=òf%%±–áðÛt3¡î×K™èââY†¸Õdä1E/¦”~Yw½§‘#.úQ<螣+R7ÁñB"ÁŸaA{xÏݤì=w²ÑCœ|m Uò†Á¢Ò9óê‰øJ ¶¼'Ó•â„™'ÄÁI®Ç«é¯C6·s‰?½‰`ŠÂ8cl”Ì``¢Võžåwо'%„‰ßóB¿'¡,{e€%tVhøÜòÆÅ&)-ñäʈ¦Z„R”²?È‹4qb®ó3!Ý|ô¸:—Øv#,*:}v? þÉ€4ƒf¯HütG¤äíîŸÄ@ĈvFDi)‹½>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 474 0 obj<> endobj 475 0 obj<> endobj 476 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 477 0 obj<> endobj 478 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 479 0 obj<>stream H‰”WY“E~ׯ¨ÇnõÔ}ðcÆavƒµˆ}À<ÈÙè0#™aÿý~Y™Õݲ ËÆDLwfçùåQ%£Þ.nž¾4êíyaã³J! !*=«µÃÓºRŠzØ.Þ,ljŸ} ë¯7·ç¨6g0“.Yi¼è”½3ê¼9.‚Wɇ‚öÊÐKÕß»OÙˆˆ>Å¡Dmê7›mùã7«ÅÍUF­Þ, 9RE…*õÕa¡¡¼„wí¢Zmô†˜W‹Ÿº»gý2 ±»{ÁOõt{¤·Òm{¨”î¡_&<ÖL]NB«>©û=»Áô?¯¾CŽƒSǧkýZ=áHL¨‘p}ÔCè†?vû]õº?†ÍéPÍ~»Ò`e…’¤¨ š=Ðôvþ  „r|Þ;›úÕ/SÔËà‡\œSK3X;…ZH˜õ2üãSà ¥ ú%!ñõ{cÁ1b·W"Rz„Û}©,“ÚhÁª…‹’rÄôâs ß)¸Šu¨ÅònŒ ØV·;T t/¨.¹SÏŽ•¼lñ0ÝÛu}n¶ç†àoh¡ªm S!!Ï2ÄÚ`ÿþB[‘oU@ZÊH‡Ý<9m>¶Ç‹ºy~kƒúæÉíâ‡Y‡5W‡€ÓoL®…Ç4Yš&ñŽž-ˆÀ º$uXÀ‰C)º!e£ö‹P†fŒ4øèG•=‚ÑC,YS >òkJlsõ'.B¼ñ3ãS¿5 ´O„ , Mcªh¬¿Ê¹ÅÂÜÿküí$?q€Êù8w02>qðÃ_¦ýàCëp`‹aV˜h±ñÒß/L³(!MÇ›Å9Æ%´-Wƒ†¥gð¥ÚÃFð.‰z†½d‡bBÝÈ^S@I.Mp€E`ÌŒS¸0% yše ÑÌûqô‚Ñ)%â°ÆÏ%"-ü9ÃÁFšy­™)Ù˜·/ÕŸeüòö{¬¯ï°&~Á©€Ú?*£ÕsõÓÏZÝ/RFýà aŒ1¼\dœCÅÍdc”ÉvÐùs ´›5gŽƒ/Ÿ¡§Ã­B%×nip&×f 5ÖÆ˜$òuú c–ÎÿÞFc«›2ËÆhìî’fh4vt˜U Dæ m‡8ïDHD=o+£iÐò§9j½HÁÄ«õitB‹›+Žg;£+’¡54OÜh€a¸Ô‰³#ä‘CtÒ–i!}Ò©MUH9 'T‰lE¢x¦Å îD¬ ûtÖUb؀¨´×Ö(!VŽ×l²DvᛆÐA7#ÇsPÍBÈV|p‹G ±hXÎ3:ñÁT`’cL-ï™Ñ’6¢-I§…nö+$ÖF3®1–‘f'0gÅ¡Òìïóòä±€YRÏRÀ"Ó+ǾØÍ V¡mÄ¢Ò‰-D{Eú2*lj¼ŸµHªãÍòZ3&&ÉrF°Î¶N4Ú~ 6Jò%›8ѰÈÐÇœ¹–Éö³ŒaMCâ¹Ípq`Fá£7% Ê0“S¥KGR=º†íMÍÐÈ)æ<÷Ÿ ¼-ÌI¹YÀ2"^‡5ÜÑ™‘–~ŠñJ"K¦Õ@ƒ|r@gÞ, lÍ 6U\¤]ñ³ü Žõyþ£–F„X#¶PG2CÇpE[š†pœtfhcžü̆¶´¶ð²K’qjŠ¥“ÎuÒhE$­U$îŠB »ï„RÌõn#reÐ9ÍêÀ4kp¥& —® p¡gŒh.÷I‹¯õÑ”AšæÙp§q'6 ¤U'ÀÐf#~º¥4ƒy¢[!&—ªYh¥¼šVBÅhd<¢lϬ­X´,™ àm¼õ î9ÏÈZ˜Ì 6ŽûÐ2ÐÎ2r>±„ ×¥!ZF¤˜+‰âghO•+…”I¥NÊ!šÏ竨aí,Ë"÷—†Øyĉ5äXü=å2ߣœ&¤q4Dâ Ë2“QvÉ,ß.PQ·‰â¡÷ÙÎRÀH-eN{BfN~—ÆÈÕM-ç¤Ü!Úõ ´»v¹ZTDË€$w%Áuœ,p¥ç.¸Z­UZŒ­™¦,Z»µ<[;6¤_' p責oÓôDN#Ò8N䥲Áªæaƒ‹Õ·ÏoñÓëæéK£Þž߬7whµÂ• C•qÁ×Šß ß—tµ:àîÿ¿†´Æè¯6‹%½BéqñS÷ìxÙ>¼é-*Ø­7[õr÷ö¸ÞŸ¿RwÏî^œÕãîòNÝž‡ÓQÝîO›Þ º_ûŸWßÁµg×—¢ê¹¾Ð~ЏP;Kžë/“Í™«¿¼È{F÷!Í1¬Öýýҽš›n'ŠÔmû¥sXeýàºT ¬h•Ô¼WOj†h2L¹¶®îûÀ¶4r|³ëuwÜžñ̺¼Û*aõø½ÙU4Pz±SgþL°Ô—³:±„Z«>v„“ªáÜ•ƒŽS,¦´XŒ ]á¬jÆôñawÙªõñžx=LxŠÔtë{µÞ¿j…«ý¥¥+<úh‰ŸptÓ7nåeýz_Û’ÁÝ™þßï*çw~Üoï9¯Ýñr¢Ïç ÜWÊà„Eóu÷Wèjh§÷Ö=1€écË"ˆÝ,ï4v~÷p\€•ÚëÌíõ¥ê—ðÛðI î{\º}û^?¿ê¶l¶ï/•¨ØØŠ çíåUßP÷¡‚9• ÖD b]$`sþÏqó9—NX§ãéCõŠN!XøÈK˜Q+¢^u·ÿüÇ«~P?ž©E²ÚZMŸ ˜„ú–Z¬ŠÉgBáå¼Ýo7aׯhª‰å¸ú‚Sû©Mïé*¸>CÜvlÕóÝ ½œ:Ê©~Q°›kgéŽ9ôvQÔÇQ„ê(P#„nG(;½ôK Ý*yê^¸lYHÁym6Ä TÇ¿¾î)åçÓX ï÷[<=A´=^Ö”}áwP²F2¯M%Œ×L”wT.²*zc(¨5âÝK«ÂÖ’Zê’%c™¾Ë–-ý„Ë”ž ÇÑpj{°_Òš¸Ð£>ðò@Íi»7Ì[oèYG ®°(YC×UcO$ GD•{CУê½iæ*ûîKÞ½hÕ¶zdrG-•ÐlœÆ¤~¾Å"ödí€"‘—[=IMdÏNÌÝP‹›ÍTx°ò³¬m¼XÀ;bÉàfJg†ìÐq·|¿>`ü¢õ¦{²{@çR!—Åx?OÑö¼yØÕî¾.ìõùà\©ŽþËzµì¶Á{¾‚G °¾¾~’xá(É" %ÚÖ®L)"• ûõ[ÕÝCÑI9ìŇÙžžêªê Bwæ6Rªôoêï,=MþÊË0Î0ËÐJ¤{¾>ÌÜ]gd¤óq‚ôÄxF*®˜!\ÔjC,G)¹î†¸A€IN€S`ó´ñ*W„, ‚^X5!wµEÝéüî¡ê@¢ón^-æÿÖ­ŽV‹…©>+!v.ST·säv6:ü¨IŠÒ€@¹êÓà úHô„B) €ᔸ¼ÜhòN=—5æÚˆ´5Õ¼’7IÙÞìôOÐìl,¹åÊR¶±M„P¢NÊê>L‡Z¹fd9¥(F}£æäŒHjH¾î˜u2m-ÏRª!ÿJº“RÈ+pÒ“»K†bðë¼`q  ðØ?‰ñ“"£‹­R{Dda€ƒ<pXow19 ]0ÒÚ|ň+WÎä@¸M(c¶|¬æMË÷¡‘2dq<ÌÜÖ8:rbÊBª5ïÄ€R̓@¥T¨ˆ­!ƒÞu0$ÔPøÏž¾†×ó«_>œ‘÷2Nú ³çºaÕUÞ•æ Î.¤7&AÖ“Ø.†+œ¨Ç:Vh>3.rkŽ ñ7m=ó~>Ô³ã¬(ËC9òy óæ^„•z8&­ývy~¾ùvñg q< E@“ùONüy”•x%w}ÑÀúÕÆeWwØTsÀ"6söÅ×@¼¹•h£çƒœàÂà6‹Å‘ñXÛÖk‰^ŒÞ),Ÿ—kèÒÅ=±4°ëV[¹ð¦RØjZ¿úæ§bÞ(lœù­‚;ûk#?×Âmó®Ç-¯ÜÇ:´¤ÍÊüW ~«óêDåÂýÝw1„^ºÅ‰ùƒËOïÞñ2Šœ—q-,ƒç"…„o¨ú\:ïrQÝŸxŸ,ÇÛLÖ³#Å¿jy÷˜›Í§¼ÞR\D ·Ü¾¤É!Òzûe.ïU×ãŒ×Ë«{ŸG9ÖšI }ÂDÄÌ|tâßÔmç”K ºt—O'Ïž˜Q²c1ßF R!σ8ÔÓ„CúŠ·ßGÆõ•®RÞR ³5™( M#|!ýE‡™)GtA Cá/âf:žáôërìo,@|åƒ(û&"ÈÍYLÉ–Pÿûù®Nì–úKcïŒ É´¤ãé²±!äR ƒã´’"¨ýÁ4€ÿ ÆÉƆ“ókî—ûŸ&_Þ •–!ÌŽ @íè4:U¸ŸèÙú~”Ôò´ßí÷ _79FáK«QB9l_î2l¢£ófëP÷ƒ½R®Ô«< ]0PÅÏ%}àýbÛ8æ^½Ì)›2 ŸXê«ìPÜœ!' —zo¬¶êÁÊÚ’Ürà´¼†°± 6ËΫWݯ¹9B´—ÏùjÐÖ¦'å ·Ú!=ÀÙÔl^ð{Ÿ\aöê¿<7é\ËÌ1U=Rô‘ÍŽ/P´9 ô“ ÂŤ¾ÇN† «|òŒë#V]=ÔÍý>ÜÉ 4¾5ý%ýV…?pÎÄÓ Ü:&Gô¯ªööÚ’¼èk:ÕšÕºþ|˜/j-Ï!ºÑ܃ÝÁíšð`\dùPv¢²_;±dÏjÕÞ¶ã­®7`øB8<À_2|Î.ÆëT9äìÂ'¥ _Ø%ÏÍîО«Â°ùö2Ò6–ÍCPÙŸ+´~½êæK‡¬þö2q"œÄsÇöÌgà>?¥!ŒüÉ(§Öœ®‰ÿí á¤þ'}ú0ñ¾œ õ§AÂÊËa$Jý‰PÿÙrÓÐ Kµ‰ §¾»[dó.ì—*iav¡Ù<ÞÖkkÊîöw}I6»îŸKktg,ÅÔ· ÛÎÃÏ·^cÜ»Þ33/-/K/ê–UÍŽ¦Phrº%Oî¿5ÏýûˆXHÀC¤,ZKP²äŒDá͘»Z…rÕ=€”ð3õõ_ÈàCÿÈl^§š&¦ ñ]Ãq»Ñ­Jî•I{)ÓéëKxÓL‡•®ÙÙ¦€w«óËq¬qêqïÑÅ9DyŒ…ÁýÇ¥ZôÖ¦pÌ[ÔUkpÌÕ­Îïô÷\ebZ5†`X` ö®kÐrß¹™%üôÝûë“oê²sxœüZQ¸…&q EþâqÙvŒ÷B­¶ó#y–CÙßl‘ZWõŒ®ÐÞ€®ÕÆ H—//HêhŃ/›Å/ü©=¦6‘û‹ÌAêi%aH ¤Õ[Õ뻥øsÜF=ÛÅÇ[7!ßÖwZ ©®®Zád‚§†¤ %/&o ³ /„>ô£„ùIÁJ8Àº~s÷&‚$B²0ç gÄ%º\\bütBGà qqÝá îgýŒ2á|™Ã;íÝÃ&ìÙÃfìÞ#Rð{xÐôÉA-Y,‹Æ%Ȳ_G&¼=k3oÚb0J"Š¢HÀ³í´é?×3èçPcý4ðîÝ„oâW×w²C ÒPŒÝ’òЄìÐjúž÷1¡Ü÷>Úÿ>*²gü­$v'9› (¨àâÜ=AôJ„ÿ 00‚˜ç endstream endobj 480 0 obj<>stream 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 481 0 obj<> endobj 482 0 obj<> endobj 483 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 484 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 485 0 obj<>stream H‰”W]sÇ}ׯ˜ÇÝT´ÞùžÉ1˜‚Kâ”ËI¥„¼¶Ed $%ÿ>§§göØÜ(ÐNïL÷ésº{w¥¸™=#ÅÍa¦\‚ðÖ7Ö‰¶‘ªm5~•Ž1Š}7»ž)_nK¦wÏÎN¬0ú6Ñâ¢õÁh)«íÌat»mt‘!2ÝrMt­L÷ThZÅ7¿_ÌÎ.”bq=‹äPDaÓ_ÜÍZž#J `‹–‹Ó¬R¡^|À9ÍçzTøËH”i ‹ÅS>,-~WN§Úµ­š?×›õ¶ž[\ÿÙ¬vwõo‹—³g äS Ê;­Á GàâëxWM¦˜Û„–pâwÕÅ‹Ú4¾º¸L?ây·Å…®ºznªýò¸Û‹Ï®‘ EŸA÷Z‹¹l”êsÉDàÊxöýK=÷©ž×ª’¾žzeÅ“ûz.ìë‘Íß Õò•lKÆÿCSÝ@0o,åÖ6ÑR- ÚÚþt…À£[‰©™¢[‰,º Cð«ÝD`)K^.sv~Kéjù‘ÿî…ú.3••° γàÉ—*¾t̾vûN\~îˆ R>¯»ZÚêTXø„2]‹™…ÎÞ¹Æ ëÅ\Jæí7bËeÜÊÆ( WM4Â:*™+ùìénu×mâì‡såÄ÷OÏg?ب€‰ÚJ)CâÝ©¨; ‚ÆGt!Š/z%îfĬYÞ鯡17°P‡š‰Å¢OUj@mãbh©~Q3ÆJŠ-£Ëº~=Œ qfdy,Ì×3ë£XÛ¸ÖþÛ(ùÔÿŸÌ#a ”’“0ƒå±0ÿŒTèCß³~—}ꉱ Ñþ ŠÓ kät4;•Ú+›†¸D­Ò¯5‘}* ø6{Ðä•ì‚N£]‚ee@j¦ßC×8'jWÖÊ(•÷h4J~t˜PÐÇŠÈ#$ <5ÙcãýÄ"áÇŽca§vìñäIþF|-û7ç?b ¼Ä ø€I¤¢8 ÙŠÄ»ßZq±ZOxÉ–ÇØpËÉ®l¡…"öQ‹5M{Ú4ʆG-CFVczz3ŽV,cL†&Ü“Ž(+âyJ›¼gË Ÿ—­~Ì2àÆ)› ¶· V\ª6͸‹e´Ç5ÚÛÇ,£Ü>ñ¼4t¨JÓ.e*­˜¬ü8;+éì¸^MÀ#Ýs1{&ÙáŘ0®!ìA¡Lp†&¸I.}¬¾^ÇLÇ+4Ä£ïÁ©0í K©©º–Xá–3Ã#Y¹Þ’Ö>/mZZ©ó:ˆU:×lq¼!æ .¦µ+þÐ?|ÀV²Ðƒ™Ö(ÌZû6¯Q±|Â+ÃÏ>½æºœ(k¼åÙ‚çáØA;rÎÊà *ƒbL˜fŒÉ1/Vs§óÚôYHÅ–œv¾Ÿ³¶†Z_Ø6ï™Ö|³8Ä!LPÄÌ<£ôx¹6“-Š#èܬd"  ]ÈTž)61`4é 3dM}_O¹â‚ã¼™ÌM=f ëS ÏÍ'˜k¬©Ák>Áz ;XÏÁ+>İ}ë1ŠR3e©ª!Ûw7gZê²0Q*wàÊâ*ŽØÄÚØìaYÔ(–,W9_ÔœöЪÌJ—»Eçã9 SäˆdÈD”¤¿>â£1Ó©-­“F`¦ÌÆ62ÕªåÂW†wÐóXZ—§Tœìðm˜xÆ?ˆC¡@‘ÉHÔ t£$¨jG9úüjS8Àº¥]>`3m:²üMÕa=ô [ ŒÌ;Káskš<¤\9À лAôÑÛÖ2@ï[]z=$ÅÀÆKiÃñilçÁÞæÆü°a–éÃŒtàun#';XÉâ¡h=Ä(ÕPP”j)(K5 i”z+‰ærÌ,”ríYB dÚ|žåJÛÍe=n‘ba©Š‡"å´#VxÓzöÃùìçÙÙó7RÜfß/fgFH±¸žEBÕâoº ” ½L-îðµpƒo©¶m±ZÍæ¸¤ÉÅiö®úéõåóß/~yõªž¼V—õñªûãÇûc=ÇËä«~ªçºÚ×øÂQÕª›ýòînù~Ó‰‹ûÍæ;±¸]Äa}³]n®–‡C·?vW¢†tÕé¶ÛŠú·ÅË>µðB£ñjŒ~Aß/ž&X˜ÄL¨Ž·ŸÝÞß½¯APÕíñc*±»®1Ï*qÚík‰üª+ ÄÏA¬·âXÛê–#á•z¶%d ™Ÿbû‹‹K‚{Wä´[»½8Þ.3Üyö2O_j 7]e¸» ®fY}"D \w”†)ù˜Š˜I›ö„±À**ªêj`SÕáv·¹B‚ªjÈ \¦S/Òf M««.ñ›B‚ä´/¾y,=2BÖ`^°léRV÷5)z÷Yó½Ýu"B'bL‡|‹è½í9«çh±JlºÃC·_ˆ{hŬê’l‰UÝ€ïBe dO,ÂP4‘&WQTŠ*öÿöõïOÎÿ¼øìRÐór¨b̰êmí"¬‡ÿ×ýdõÇvwÚtW7݃Þ^­W”¢®–5:vª‹£Xþc!·}e”B>í×Çò²r¨3¢½#mUõé¾;ÐMñk-=ð!¢­^§zÿqCõìÇ_ëtO\%ë=æýz{#èè- pˆN%>î×»½Xmv«?Æ¢ŒJW÷–f!\Áq¨þ)¡ZmjM}PrwH‹ûš@­x[Ç·®Pu>é <î'=—ØÈUxùßg¯/^]"Ñ€Ç>IÓÆ¦ D«%¢~îö×›Ýé;æímðÀLÚØ¢ 3qL˜I&:Gìw_*6îåb®¡$‘N¡‘ 3îú:Ô(vý+UÉ“{ò¾hZn ,BšÎ¢¬þZmºI«ªÜ§åA¤¾óܱúЭ¨¹iË1Þw«åý¡KAt FC,m¹Æ4nÒí¯u¥¢„¡D&¸€6É_|èo»ÛÎ ƒcT¡:AP›GG¬V|vý¹Ë^vDW[iê=Z‡_ŽÐÕnKC®Ûsè¿©¯¶Ý¶ úž¯ØG ˆî.¯y3b¹1ÄA¬¦(j  %Ê"J]*JIóýâΜÙåŶ´/E_lŠÜË\Μ3㉞a° ¸VݾÌÞ~šÞ¾%ÜØ„rÍ"yîŒáö*ÇÌ,ôÇ:GÿzJ7bÊ;ÊëºöÈ&u›J¡~pØsØmN‚qìƒáÊ“#ÄÐ} áb@p€Õkˆô–RÆ™?“® ô‡Žæ}.ÜoÊœåËkáY9ï+_RÈ%õÑï[ ÙÈ-{®/Ý^½âÅ©? ‚/nÝ¡Úò™Y6€ü“’+6‹°ÑÞ é<”b‡À&Á¶ËC t÷T§ÀÞ¶;aäÂyGYf—Û®'îF"ÿÒ‡ <·"²Â¹@ßLÍIÂîOÁÚ˜ÖrÝâû¦XW󢮿+ìù£ÚŒë9Q„ *h ð‘ä"戡À’jĸ¢*õ’B*ù$àDvt&Å–=ï<Œ“f¾!*Ùà _‰Þ È€¾¯¶[,QZ†“ögZwhãΤ~§)Èœ¤Òu=è7’`áû*wØcV°]¾b9xSr“@&A/A±ŸëI]†RiÈe-8É‚ITS¬Kõµ »%¤½±V"xæÃ`J½qQn<»@wo~ÂŒ'üf²g‚qøD¾TÛ=Ìhc/F0ù–eê ;†°IÛ+7ÞxÆ­ð¢Ü•ôgs àÝQª[¿¼î~êßâêå 0\:hïÜ =Ʋ;¶–Ñá+"áÖï¿­ªùJ-Êeµ)VŽá@ÓÍ­6ê 4¨èNZ¹q#Úq=1 ŽÙùƒsÉ‚{G·jqc'±e†Æ’ÄKÞ Ù¾èÿœíÏß×Ú¿G*ð§ê£Âã†6=‡|Ý"_?A~$È7c+¤ÌÈ'뀓G¤‹p$RvPØY rš¼>¤A¿ß:Q CMs'2ýú`ìu5£.™*£¡b½‘ºlá#…•p‚½cwvì-v狼é=zm_HÜð¼Tƒ‚Q¨_12Þµm–µnêÜõ —/”JÙ àÙŽ´×ï§íÏÿ¢ : ­ƒæÅ»÷7ÒËÞξLßœýJTç™fE—<ãPÒýlʽàE½Þ65]ïßu]Q>^«_¼ð1}Iñd,Ž{AÒþ»ð±iÆ÷q‹Þ\›`®Í¥…‘MÑ`ÒT…XUÂ*–àíæ_ëØº$évö$ï8ëT’šçÕý‚Ý¥´¨=Ë«ûšþL,ÊþGÜÝNÀ¥x¯zô e£ÝÖ•{íOõÄý–g2ͳ™ÿMYÐÜjü`èKZ¹MzCŸÏhižjnŽƒ4~D™™¾H!¥^I‡eâzrxƒy×¼ºÀËC)¢¸9®ï™DÆ2Ùªo[jpÃÆùLû öÀ©Ë¦¶nþ_ÙT•D:%HèæzÉvb±ƒ×¿j “zÒbd‚õM‘o„›Ô,O?©Óm(\;‘s®eÍ©.¹›î\˜fІƒ·sWÂJ7÷‰–ãë1i·˜ •ÆtˆS8V½ÖåäÆW#X[þ9/KøÊØfÈâ>ƒûˆÎŸ›3û `¤G»`àã3¤ÓG¦îHÇqð瑹².d¤|w}IYÖ:L“>BSúôy”åƒNDuµxíà|24ùg0@ûlq fMD‰ö¸-‹âP¸G/'0l=p¿U l¥ÉÚÂ8ulhš¸¼ùYdbæðWW™¢­Ëù$OhD tbTJ%Í=ÛZÁÁ¼­Ì£#­cñ”„ŽX¦fÕáœÖâ±ÈbúÚ]dä"J%Ëwض¡º¥0õ½×”fö‘¶/DïÎz)ë9<Ámõ ;ÜÆ;jñµÁ¬[ŽˆI¢GÚ‡×WײòêÆïÀÙê›ü¬d<¬äpå´]½3 ©,Ë·¬åÔ­³Ã/©å„­¼³6øÝ£\|´ÄÇD4§fFäSÛ¶„wÁš8!°2#eÁ€¤Auæ|e.Ÿô`(—”À$'ªâŒv- õˆÅšª#1‘.«}9?Tl~®#¦’Kr®læûj‡×|ÅtöB'z’p¨´’H‘ã—LœÓ“!éyA^Ð3%–WX¬°yžcEæVØ(ýÁŠ˜?†·Äƒ[œiHÊ`”%ït{¼zÓ$jÞÐË4Ìj³ˆBÚÌ7~{’¥“Ôo§îI¶†ê¡]À-NöÜùnAÌ™Hº0t°€9KΜ`©{ytÂÐGKQÈÎ-0ñôp!4?c‚ŽˆgÎ}×'¾ÿ-ÀA$¸ endstream endobj 486 0 obj<>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 487 0 obj<> endobj 488 0 obj<> endobj 489 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 490 0 obj<> endobj 491 0 obj<> endobj 492 0 obj<> endobj 493 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 494 0 obj<>stream H‰”WYsÛH~ç¯èGrjE÷}ÌÛÆG&©Mœ‰•šÚJR)E¢meu$’Oþý 4IÙžìlùAˆÆ|8ØVâ¦:y~¥Ä;ҾQZç…l•–ÒÀ¯6)%±ëªëJ‡òÚ:48~{rº÷b¾e) 2Dk”ØÏ7•³"X× '­PøOÞšÇjˆ_ù6y©ò;[©éå³iur¡…Óë*!HÂe 8>]WO]/¦ó Ÿ æé}õ¾¾xÑL\ëë‹KúÏ» >¥ºkàHªwÍ$ÀÏŒ¤Ã–eÑø6Ôß=J¾nUóqú‚0DŸ:üQºÚ¶øÓ3ŠD¹ qßxÙººýs¹Zf|WÿÙηëìö| Lƒ* (IðL£6m??c‚r<ÁÐkšé—!ꉳmLƈ‰jµBMhLç"üî¹"’‚Í™øçW F!ƒKTøz%Ø$5ný¡I”J2W%\()EŒ6:ÄδX¬u.–5}N—º]@R}‰u‰µx±É⡃Uï®gùwÞí ƒß …–"·w@pòL­Ï öÇ/bSz ±¥ÒŠ;ìäl;¿[w›ƒ8yu ì=;;­~u8°fòpá8Ê*sáaš4N£CÏ&ˆ@µ2±®Ä@Á›6D%V•KmFŠÐZoû#+F¶>E‰…´N!®J¾ÌÕ_@¸ØZeGƒâ1Ä·B”´™…Ó2[@ÖÏr.18×ó…@'þv’ rÖzÅ#€ßš‚·­u©¯Ãš<ºQa¼†þ~aŠGiðØÇX<ŽIP&h—·¯‚†Å_gSöÁšÀÇ#ø ºMÊål%dkÂ`°”)àˆJTG ‘FY‚¯ÆýØ£Àè$ŒâÐÊŽ-<.ü±Â€0B \3C¼1O¯Ä_e|uúÖ×KX_૵¿JŠWâýG)UˆP7æ‚} WU„ïP2#›¢èm¢ne|Jí¦Æ}kÓòGŒÐL~ŒÂŠQ$ ¤Æ‘$˜,MhpŠÜûMPãžPô^áHÌÝØ+BkTÌÍär¬E1XÄÖËð„b”ÎÿÞJÂVWi”’°»S5¢’°£Ý˜¨”Àdœ’ºõãN /Çm¥$Z<Ò Ò‹Œ?ZŸJhqu¤±ä§‡B\CãÄ•2•:PV p±× ¤&™EëX4bž„Xã²EÔl‘,ÉìîDt &Â4Údƒ¤È‘eÃ2\èDr>k¬$—É„-'Xv²`ôKA.jÆ ÷0Ä|BSžÞ0IŽ8GJÖ’¢$­ø4'‚g¹øt HÇ´™xõ>õ20LjVG,ͪº­Æå‰}#§¹€‰§;f*|öÙo$²n#Ò@!²ȃ×G¢MýÖ¶·£NUÃx“½”ĆòBÒ‚b®c‘µáe¿8í9ùÕW„öz¨ŸRQ?©!ˆÖКÛkR$úôú„¤fÜÄå䈫‡×p”­Ê*þŠKý§íF î¸Üd ‰Ë‹C+ê?oT/s?yd9Óì P>à7o0¬Õ lªB8[›dGù%ø¬óO0j¡gˆN8G’¡\¤bHïŽd-C9ÁÃéʘ;€¡M¥-,ï’ Œ¢„Òqçn´$ûFâÖJwfÁáÝw`ɵêx7ÂSˆecÕd:A•,L8r@…!(6T6ê“_é£!ƒ0̳¢N£N,p«$Bªð¯[#š¹bÐP©Š‡RÊ£i \(ï‡çí¥fœ–¦ £"¤vì‚¶>÷œL„%f5L¤Ú÷ûPÑFs6…qÇ¥A™G$©#‹dGpO¥#ˆDÿ”q)OÊ!4ŸG9`ÃêQ–‰ï/…ü`Çž':ÁŸGïCLã=ZÄaBŠFÒ@š°È3éy'á7™ìËÊË2Q4ô6êQ °BI™’„=Á3Çÿ—*âÈäMÍßI¾C”ëA*wít´¨Pæ æÈ‚ê8x J!¨J¥UJŒ¥™†,J»•ÔoÏ>¿þЈ 2R:¨ Xh ÌPJ(i -îvËÍ àuâkƳu÷}¹½Û‹ùj;ÿO†´õüÇ|Õñóýl/Še3Á̾tC£dkênA1ÈŒ® NÝèœêg<‰ÔÜí»ÃÅ‹‹KÆYîE·þŠ>cý£É½n³ÄH~>¾»ÚK{úËj±±3b×äb³=ˆð·kø½kà¿Hcù½äzØöQµD¬‚Ѷ@äU´}"IÂxóöòù§óWo¦ÿþ4ýííùÕoÍÄXh5[¿h&pGª7¹‡´vØ%oà “Àªšz ¶ ÝìfëõìóŠóÑP÷SJM“¡ÔhÂ;š~ˆé-TÅarö”Á-–Ü®¿‚&ŽÚýߺú&nƒ‚¯g+z‰F9W×CX2£2f*á[TXU\Ç;ð€ˆ8Ý“4µ8௃Œ0&tßa~@l!ø–½ I ¬ÞßBäìï;‚ÌxÎîʹküŒ²k&ðÕè¡oÑ8_b¶/ðlwXnÑç†ÌÆmûhhðIsÍ6 bjÑ¡Ë¸Ùˆíµ þ¿…HbÇ *êí¨–yhrµH&¶f)n °ëÕì†~ÀÆÂÀ}Ííõ¡i¡¨89Í6ö®„;Êeî@_/Ä|¶ŸGÖ4qR‹›Ùz9Ÿ­V?ЄÝqà~ØLàWÕsXtº^>¿[r÷X!y,—0>ÐÛ-Ô1ä-…žŠÃ–N É;¼¥¢û¸¯1µì ¶Ã.'óîh‚}~ÈËõ6/W|»ÝfÇJÂ×;/û§†eÏ>a´÷Ý!7‘Ô3^b“âìá.3Ãfá/Ŧ»™0@ß7sÃMèÊÖN´2÷µÍ]7²ÍÓ£QíÿË~µ,·mÁ»¿b+' J„±xC7‰z”R;%1¹XU.˜„$Ø©"¡Èß‘äƒÓóXÌûÐ-Äž†Sá)¤Lžýïšýa*0Éþ5r!3®Š÷ßsá¼$ pFë{\àŠ]*ô4ðÕ"© >?ƒ.àÔL”Äéİ}¥=ß4o"Hûbˆ{1%q™2^ùö˜iÖkæŠöz³bîK™Ã—"]¤Ôá],§ó˜B*ã,”Ã}Û»ØI¤Éuz³Ûû;»ån¢0 n¢EÉ´H½G'%]Uóy£•$t„VŠKPnƒÃÓBÉ[àæôjF#cæ]‹¯¤ÿÂ$$}/î~8DÆÞ ;|\ûOìòöÆ'3ךó5Uˆ; ²%©>#&hÜMŒt»çÓ©³àcØq€Â«ÑOm•ƒ¬sfQ·õ·Ä2y×|­÷•Ùpä“OV¶^»¶êÓ@³60Ç•¼úÝO© ß îüëÄ!vÔ›3í¸ô©Ý-©¹øõòÄ|ziÛ‰ô_Ÿª¹ûò&07µòáít“™ù6'4ÖlæË=úл¹Xµé¯S=ŸËoÉÕ!d3%ú—òC_ 04HÐÓ‡zþ%9ú›#{®î É)a1·Šâû7Q( <*÷À€ZÞ$.ƒ<…a%¬¥i>î|fj©Îl׌0›`^óÞ÷Ø"ŠŸ­^ˆÞ§>;(EË yñ¸B­Ù0°Žå ÇAËG1²çÁ§Ùk€³½²è¿=ˆNQ¢l(VdâÍÙ;—-v’Ó ø˜÷0ü7ÄXK沂³>ñ`1†¬bˆ“™dÎñ/|´%,*»%a—p\Àf¤@—>{##žô³æ*ÐÌh܉Ód°,|‘n*k[éÃFLÎõùF‰õ˜æ+=‚êÔÍ $4ü^ã=iÒË3xÊTË⛃mÖãŽÙèí’ì‹“h0$]kH¶©ÂÅÒv•H»¢N3]¹GÊ”ž#®¹ÊGöˤ|¥'R1$F¡ô±p<òâ•Ã/æúä³/BðèP0t!»uÔ«ÑUsAÆ]øP·o/ƒÄÚd€ºí‰²y„5KXš§Š0uäô]»þDOØîô;†á§éC¬MrdÎjr*d^›öïaºR³¤Žàè'ã€ÎÆŒæ"Yfw{üIÙ·;Hÿ²^ÖëªEÞ¿mj—üåKƒF*&r µ‚¼®q4Ð #b÷'»HÒ ÔÖ#¼ŸÑŸì5}‹¦ ôÓCÐß{ |Š]¡ñÌ”ôÐ_ˆþl›ƒ”6INw’Ë1æ#j^?0ÿóÛ˜{QÈÚ2ÀlCZÅØ,2¹…"¯OíԊ¢Xf¾µT ¸dQK&wP›ˆ8‘'?Ö "ùPJÜJ%¦ÉØÏ„yO2 ­ÄÚ'Z­…qwò¬R}`ŸïÝ4÷²C7V¼ƒ"Ç”I?xÝo B¡oÝqüøâJV^¼w;øló*?a at¸©ô5xV0ÿ¬÷D¶Ç=É©+Ã-y”VòtNQÄÞ=Æ¡ÀJ}¢$“b`b;Ðî[oºZŠcúÓ/"MØôÝúã2À…Þ'þˆp—¸À¬;éF{0ðÞUO@g%Ö;kÖâ+üIiâð’«7óuóÌéç³76C?p,8 xf2kÒ2 òȬë7È¢ \¬ ^—e‰¸}]'ùwV¤˜éòdü•tô#á"c¯íNâ ò°äza^$±2Ùž9(ÛÁRÙJ–È-ˆÑáö¯ï“²ÊCïãäàþ8+îaV‹¬_PC.À“ƒØ<;€^žÿ0`ŸÓÈ endstream endobj 495 0 obj<>stream 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 2010-02-23T23:09:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:7C30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 496 0 obj<> endobj 497 0 obj<> endobj 498 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 499 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 500 0 obj<>stream H‰”WÉŽG½×Wä±Ûrçä¹øf†EFÂM[> ¨=À Y`À Ÿï—‘UY£Û€PWDelïED%V½ŸNžYõþËä¢ÎY%Jš¢2Ú:c<~/¥¨ÛóéÝäR¨X¿=9ýÕá ”É”¬ LÊÁ[õåp=QPÁkèÉeëC3Bäú*êmï\ÖÆñËGûéä©SVíßM¥:TEQ;óýÕd`¼CƒÄöˆû»iãÍvÿvžíæ¬ð—3qAG¤®öÙØR5~½¹»»ÛF£i£¿_\^\ow„çïúpsµ}³>=Ù£~¨²P)*Í5† ç’Ó&¯s6-ÛšwÍøõæéoÛ ÓæéËö£ž_ãÁoη»°¹}ûõæV}‹Ú¶,æºjêÉ{µ³Ú¹¹O!±ï?¶»¤ÃæÙÖmlÚîú†Ô¯Ÿn·;¡¿¸T¶°úgå ?YÓ+þN½a)P­ÍèBµni~^Aððª!•©úªUªüú¸"ØÚ^WÌN?T‚üæí'þýzο·Êý"H ¤mމ o¾\÷勸º¹=W/¿WP<@ùvq¾µ´¹ë(|F›^¨‰ÀsŠQ“¢¤v˜ÔbþüI]s«ƒCöN— (ÖV±ÒÉ'o__U'/N]VŸN¯t‹ÇŸ:NÈ©Ž• Öæ†1¦ÓÕéìèT0…h¾’œºš*²`¥èuÄ`^BS'4¬4„9u³Õ%2:–ljÿ¢gÙÛ–(¼>†²v¹Œaͱ0W6G!ÒÑÐF«ÿ_Ì‘0`ÊÙU˜Es,Ì¿cæ0ͨ_‰O¿â¡è\èxèN%­Áé¨8]%j}rÔ–¸E¯Ö_ …}:ôI<øê³o«ÝåšÙŒÒÂ|¦j¢Ž©¬4u\™«àœœÉàh(~|^A0Ç*¨#7 ó¾ Õ°Z7&¶ÿÎÚÖuµb³>1§±:²ÚFû5d|ÒÓXKH8³ª7–òØC8ƒFYå™uŽ«ZæXs¿"Ÿ°^¯àŸ¾{Vy=T9rkv©¢Â=`‰+Ã'ÙÅYÓä$"5‘¬9«C3€kÖD>Pä@,MŽÝæ‡ b͵jꇹʙ8ì“*'#2:–-’ ¬Iì3yŽá»E—q- Ñà{8:GÁUÜ $)Î ÛŒsŠŒ y޽Èa®Â:ÖHÙò^ª¦À)õdäDXÅ< Ì>Í2X©j.WšJÍåôaèI3Q*OÂ_’¹OŒDvì£6 Ç)7>Q‚@Wh%û8[ˆÆ9aW-’ƒ“½R:‰Ñ0BGÌœ„´©É¸—ÞT¼uÐéÆJñ)”{ßú¹Þéà  cšn…íEÇŒƒŠ;¶ÍíPÍóŠ5mš<~k‘ \'Ñ59YŽS·Ì¡YÔjÕ¸Líà Ùr g›láQ÷ÕZÆÑEŽa ÷ þ§3ËÒS>¬ND©¶{H‚â#ç¼Ê¢òœeÂå:¬ê¨[Ì •bã¹ ȉf¬ØÂ;ö‘»…¹z)EúÄ@4Ž#xÖª^" !c';…rVKŽ¡}a–*ÀišûI:.G®›qÀÞô#Rïm)|[<[0Ö£Ø`™-˜¯åó¹x`Æ—4gÑ{¦gÙ»j©ƒæéæJ{_v$zç.XžÊ€&ä@ Ø‹ØÙè¡«Ûw6׳ÁÞõ]eZ¼ì˜Äe„NG‘$³Ñ‹Ê|}ĶN[aø€…¾Ma¨áÆwOÔóHN•ûWª¬N$“WrH÷b”œ‡,ÐdvH=hãPDíÚ¡Æ$W›ŽäN”b@›/ìÿ†­ºÈËœ°ÌX9ᘊ$£dIÅnÀI`v³šSÄlS*Àì“ï³.+)µ €õÒ‡&püº¶e±¹0ÊdžQ®WŒ0ðÀ² I°«Ìd÷й^bônèYônéYönZÊèýÖ •vz»Î(¡¶$»Üy`îò8"]ÃTuÊõDpÓzòâtz5ý#ÀT¨É³ endstream endobj 501 0 obj<>stream 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 2010-02-23T23:09:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:7B30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 502 0 obj<> endobj 503 0 obj<> endobj 504 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 505 0 obj<> endobj 506 0 obj<> endobj 507 0 obj<> endobj 508 0 obj<> endobj 509 0 obj<> endobj 510 0 obj<> endobj 511 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 512 0 obj<>stream H‰¼WÛŽÉ }×WÔcw`õÔý²ò%^À±ËHcY3£.ÎH“ñî×ç°XÕ]ZcY¬^ZdYäá!«Z‰›ÙÕ‹·JÜœfΊ ‚ˆVh=H-î6³ëÙÕÓãú~¿9œÅÕ«…Nâ»§‹ÙÕâäÅú$ä ~xji’ÆSY¥¢8­äT“S%¶ž‡ä’F Æi±Ÿ¹8X­ pƒÑVìfÞ 6™V!iõh²C(rð)J‹m¤Ö)ÚW%¯ò~_ÜB‡ÁDÕl1)ÛâËÕ4üÈô?íPL¾9‰Ï¶Pi°&4[LŠÇ¶ørA&ùçý#Àû!YûíÀW%¢ý#!!*´£Ð´r!?MÙaôƒ·Åž"ŒzH„²"Üîf! *S5¿‡ ÷ÑOrTC´1WÁEzݤœ8EÝ! :ЈÀ(Ý.ˆƒC´Â ¥4íÑ51\s,ÞŠ/eúvñç™ß )~jHÀåA()^‰÷?Hña–PÄà&ªn&æZj,ÝgM”iÔd9ø"Û,'SßG±†…Gõ5kY@vÅ"Ú,£úY6h!¶ÈÝHxEž={К=Zé‹…vEƒ>ͲgÑ^È©…G0­ƒPwà˜Ð!e}!uˆ¼>SrÔ,jv‡”JÒ‘DÏ d’àÊ0ÅbP,8Þ!&]€ME,k?Êla•5» g7»MÍÍžáÍ«X“s˳ 'tb°Ö,Ëš½S}*pºPàñáBv¡¤jL*+tKìQV•%¦(d*'N_ÚPXÃðHÀĹ ´Ìiì¸H1^hÀ_Ë0Ë|L´ýRÓZ1#?×è¢!`í`‘<­rhº}Ö8Ó(I4ªñYÖ&f9äÖ†_É4´(Ê-— -¤a9î&­x:D©JÑMä!4¯pž-|ŒYa ¯BóÞ'ÛÜ›Pšd›¦³“côÈ"^dáAÀÔä‰FF‘"‹€¡Ì`I—l+ƒÎWƒ¢1.‰Éçš@H] È1e9 ޤv¡ÉÕ"ç QœEÆ!Ïß0!E2´S:× B ÑK7–¢ˆ\Š\«fA®ecŸ«ÝìPø0ÆPø2ÆX5eQ9W󬜬8TÖNHÙ\¥Jˆ.6HOr­EÕÔjU¥˜—}Áª;J§è‚4ÅFræZq”Ε<}(>‚*Xk¢bÍ] ÊÈ¢‹QéÅš¨xœº‚Kt¡-‰õ˜ Í:Z ƒ1[aÔ–O¥!âE ÄYÓ$‰K¤ó ¸âÛ8ÂÄÖòÐó¹ü 0›˜‡»=µ™ë°{Y V‡x:óûûÝÇŒ2ÜNEßwkØÁ¼‰ûSM ÷Ýß©­>Ñ¿Åë¿>%C¬ÊîæÕñž†Tñ*]M§\ÎáôS?7`û‰º;÷0è6{q>’ïõ}?/ß÷ÛŸ¹¡798 §†AF±;¢}àù®8!º¡`]ZUÀæ(¥Ó—0—áVj*d¢h™ê‹»ÕÇÛízµïN¨ÀËêp½Zox|¹¨Ò´E ã.¸”ºRRS:„êÜw/ÞõôÅ[ïz9Ýý”Ðt›“8m?åñ™®‡k¼·Ýöæžhw<€ä™ršg0=20Hlw*Ð,—ŠC–T¶(CXrìåßãXhsû|(»‘FePži:pÙ¥j½ÜÜQ© ÞÏ#ôp¦ZjøèÎ[~}<|!FMÙ OtºýÿcÕcÉ2”ß ž¹|·_Ö›Œ¶xý‘{‚úèéê¼"¢¾9ÞÅ›ÕÝjÏ‹Îü¸;}-pýk>v•,]Å!®ˆ%ø9?W7§'=µøB?õÔ#·=±aõO‘Ô$7O(¼Å:ÕÑ[” ÛRºŽm¹±~^•—G81ÝoR£iÖƒ“b$Ψn»¢gìv<"Í<ð‡æ€ÆØ£ÄXë>iºâ ÑKcBÐKw¼¡Õ(ᾬûÇnCØA¹Ê¯¾ZÌ_……nš¥š™d‹ã=šã·`SnÙîí=p¸û‰fNëÿ0ª´Wn endstream endobj 513 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:7D30D4931321DF11A166B14B4D8AAB0A uuid:7D30D4931321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 514 0 obj<> endobj 515 0 obj<> endobj 516 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 517 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>> endobj 518 0 obj<>stream H‰œWÛrÛF}çWÌ#2!Ì}·µ©ì*Ç•2SûàrmÑ4$ÑáE!©(Þߨýà==ÝZy“¬U.bÓ·Ó§{ZÝÎ.®ßku{œ™Ð¤¤¢ªm´i[‹_c»®S‡~v33±¼vž6Lß^\ƒZ!Œm—T‹‡6&gµ:®v3 ä¾uJÓCV‚gzš.´:¿3©i ¿|¹˜]\¥ÕâfÖ‘AÕ)Ÿw@}±µPžÃK‹À+,³Êšzñz–õ†¨ðǑׄ®¯XY{RþP=>>Ö¡m|Õü¾Þ¬wõÜãù÷fµßÖof?,?DI¨¶&‡]‚‰oÇë¢iÚ4¹ÍÑRÜñ‡êêuíšX]½Ë?êºßáÁV}=wÕayÚÔo¡Ñ9Š!/ =Z«æº1fÈE€À“‹lûçzW]צұž#ôÊ«¿Ý깯7Jw,~¡LËOº-ÿAMmƒ‚Eç)·¶éª¹|”÷ß¿S;f|«g¨i:§| Vi!ýÅ«ýêaÛïNêâí¥mÕËW—³ŸF…è,þQçµ¶£ÔNë”ËF6ÔÈ%‚&vhXð´‹FmgT \c°M@o ¡fv‰GK›Akƒ€Ú&t©%ªƒ^Îkò­» ø¶Ÿ“º±›‘ä97ßÎlðâ}ZÿW½ˆÖŸOæ7¨”Ñ7gÉsnþG2Ú eã€úVlÚIº&uþ/Ô¡•°FFGŠÑI ÚFãó¼×à*ýz×±Mc¾ –l‚É!Ù| ˜Dayšö$4!v u6×Ê#{j4Jvlš@0øêGÊXLf²Ç5.ƉDÃŽûžHí8Ä#‡Âå{õ­ìß_þˆÙó3ã †–éÔ£Ò­z«>|lÕgXÄ4¶v‚‹H†8ÞC–·žìÉ(ZTÄ?+ñ®i»ŒžuñéYÉ9#o1h£{+’qLކá$&ÛV„)òÔ>[ɹ~X¶ö9É9nhùLØA_m ™m–ã.’ÑžÐØèŸ“Œrû•ç¥#Mœ#¨*MLÌî¹Ö™4Z1Y=Îâ8;¯ü˜¯.áôã\\ÄžIv¸Ü8—ÆÂegjR˜ä2øøŠxÜt¼¢†8%Ÿh¥ioxª‘™V×*Ìí93œÞ& ’¼Ž²ôy鵕uR«¬Ó, ¼¡“ ¡ËëPì¡X!P¬$¡3œÖ‰ ÌZÇVÖ`,kDãXÙf´ìÃ²Æ J4D‚óplÀ¡ÙgåpÙ’ 8&L3Ž)0.Þ²‡`eí†,´a‰¤-ï%kïØ¡ÅoeGXE= Ì6kVÐI6 •f3»›Ê‡úÉÚŽ9ˆ¢a-œ²n²#H¶ÅBÏ>RJ“(:Až£Œ¸‡»I4ÅÌ(SL<3Fëè¬Xö‘ru±–ÊÑ¥tX¢ø(Ÿ(ˆÄ°+ÍJâ³2$Q02S|Jê£Ë'Ì9 Ô4|Æ¥Ày3˜›vŒÖO¦ÎËŒ5ÖÁŒªÁkÖàzwp=ϸâg~h=Ž¢p¦DYXuÎÃÝÍ™^$ sÏXáC&£‰µóg°ÏËR"‘rýRÍio°‚5eVé+3&r®”£“ “Q’J|}Ä÷¥À ЖÖÉ# ˜+³±íjÓ2ñãtc‡Öå”ê&;b›&’‹O|t)¢Éô(HpP‡QÄÚQŽQ®6¬K¡l/°ÙŽíãÿhªž×ç>a *£e‡áRDiM'C*½›Ô"zÛÇQè}oK¯ËHr:#€ñRšÆ±Û2Ø[¹0ÊaÃ(ÓÃêÀki§';¸’ÅB©õÙGaC‰¢°¥DYØtN£ð­$*t ]”@-Ê,7Ö`.ëq‹ —ªX(¥œvÄ 7­Þ^Î~š]\¿×êö8{¹˜i$ð!Ð*~µ3â; Zlñp‹/¨¶E5«ÙœÁâqV]½¾z§^oï7ý¶ß–§õ~W/¾Ì.®œÂÞ›YW¬æšŠèRt~¶ 3èyXÌüP-îzU‡j»\ïT¶~ÝïúT‡åi wÇÕ¡Ö±‰ËûZÕÑWŸë9>*uÚ«Ï,¹Yïzub³«ýö~¿C¨j·Üöj¹û¬î5>cµÿmý¹?ÖÀ¨RõÇÅd K¦E‘¯8Ø0¤»JŽvµßÝ@ÅVë[ü¸êá1PûûÓ: ö»£ºÙàZÕóPå0æ¼â‚‚`ÏVMöxqe6M7®F~Ò­Q&´t£àÐG¸˜+q9dö#2ûƒ"×¢w0hÄ6?uœØËå±gŒö7¼ýC=§DO÷塯•¾R7ëM$hoQ§Ã’ÞuÕ©ÿLYC1ç…OÜŒc; 9økÅßú˜áR jrmMÕ(áBn¨ ËÕöNµ¡(>õ·àËãút§–jÓŸNýûJ%ç%€'ÕnH[êI„øÔ«L“#’äoö›Íþq½»U«»åa¹‚ùã÷ð’ýó…×RÞTc”x¯º™YXü‹åÿø÷Ÿ(0¾>ðMr. Žâ’ÿ?›MG|¾ ½ö„2ÔkDR]©g>A˜’ h&2rµ07T×?¿VËMÖ"¬!Bÿä1w^îEWmúÕI¡?ª\ÓTí·ÀŒ¸?YÈÕò·%‡°Y~b«=u}~zGqtRÂÅw#âp jaÎ##;>Üßýòô0¡UN8dveëºÃ1é͈ O°ÿ€¸~é¿æà‹]XÒà?Y {H÷xƒBµdiÆq·ù*|,þžò1 |tÂGàCÐô¹V=€‰ÕáDÃñœ7§@›8†þ»§ODFS­Ñ2 ¦zn„³Ò¶˜I$éÕÆÙZuG@™j³æåíØ @ ÍZC¼ùô•_ç {ׯ~áå±¶ô±AOmÌsën§¾Åïz'ÏpInOáJC†æ)\4€)E"R.B¤“‚ܬDŠOÿa» r†àݯð±‘0íÆ±9C%€Jp­ÚE"‰’Âÿ™±Ý¤ .Qlo¼ÎîìΘ¿â"@ß®nÒŸ¦‚‰1õ *ÕÓ¹„t.¡á|VØR„uCPšßãþL &öÇcË3í?yжGB»=C±Âäßö0w¾€‹C¡åÞÊNà24ßÕ }y:/Ø#å®5’ª5Ñò‘ך4þJ&ˆ3‰GÉ-ÆxAPÄ?}ço¦ËÆÒrÁ#i¬Iëÿk<¦Œ o¼_8ærä%e.ƒr[(’tK(ÕL¿ƒópP.Òc ×* ô]vk’[(±ªºÊÎ?Ûš§YFpã(%È`éÈÚCj1“|=Lib":y؉QäÀ£7WÐØÊ:…+§F¼É>¦¡.o+iKç¦F®¤­<„$MNÐWc2p`îÉj1á.£à´!à®ÆÚ2Z‡x=ÄgX€±ñ(Yö"ÜÓ:±~ì´¼ààYü0Ýk1ñ endstream endobj 519 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀ„"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?Ûé];êØé̪ší~Yšª·`˜.¬î>:Ê?R轜?RœJKn¦ÇúkC7¥m!¥_Ž:/LÇÈÇeÇŠKK̽¬šæèB?SËn^;äUl Ü\\Â#@¦m<#}Æþ‚žþj²xà{yO¾ôgJ«?³ÀîTšÊ¶4~ˆmxù}½/NŸ°è?ôx åãþ« Kņú?ÐSÄɪ¿ó·û¨ÿAHíüÕsÿSô‚—§OïfK]3ûÇÛÏ‚^>$iÙ®û¸ä÷)^?ê«ÕâÇu÷žxWÛ°öýå-ô  ÷þj¸ÿ©ú!KÓ§ÄøF×GÃèð—§Oïy,wÞtû‚Wúªõx°ÝGú xäÕ_~çÛ÷û¨ÿAO‡óUÏÃèò¥éÓûÇÇèº~?G’—§O‰ã€×}ÃO¼¥xÿª¯W‹Ô §žUöì=¿yM¾ôxÏ¥\|~ ~>3Ûèº?êx ztþñædµÜø>ä¯õUêñcºôÿÛUÿäyð n£ý>éW÷}|T½:|Hþ˧þ§’—¥O‰ð®û¾ ^/ê«ÕâÇ}è(ñþj¸ÿ©àx¦ßGú xäÕ_Þ}¿rŸ§Oïóÿ‘àx%éÓûÇÆv»ïú<¥x¿ªW‹Ô §Ãùªçþ§”·Qþ‚žxW÷}¼©ztøŸó]÷q÷”½*|O‡Ñt|>Þ/ê«ÕâÇ}è(ñþj¸ÿ©á-Ô §þÚ¯ïú?pRôéýãþc¾þ>ä½:xøýäyJñU^¯;¨ÿAO‡óUÏÃèò–ú?ÐSÿmWÿ‘üT½*|Où®û¸KÒ§Äÿšïü ^/ꪧâÃ}è)ÿ¶«ûþ ÷Qþ‚Ÿûj¿ü*^?¼~;]÷ý½:|Où®ÿÈò•âþ¯àªŸ‹Ô §þÚ¯îú)o£ý?öÕù½*|Où®û¾Š^•?¼ÌwþE+ÅýUTüXï£ý?öÕÑKuè)ÿ¶«ÿÈò¥éÓûÇü×äyKÒ§ÄÿšïüŠW‹úªõø±ßGú íªÿò)o£ý?öÕù½*|Où®ÿÈð—§Oïó]÷ý¯õUSñc¾ôÿÛUÿäRßGú íªÿò*^>'ü×äyKÒ§ÄÿšïüŠW‹úª©ø±ßGú íªÿò)o£ý?öÕù/JŸþk¿ò)ztþñÿ5ßù¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ5ßù½*|Où®ÿÈ¥x¿«ø*§âÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½*xÿšïüŠ^?¼ÍwþE+Åý_ÁU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÍwþE/JŸÞ?æ»ÿ"âþª½~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÒ§÷ù®ÿÈ¥éSûÇü×äR¼_ÕüSñc¾ôÿÛUÿäRßGú íªÿò*^•>'ü×äRô©ýãþk¿ò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸÞ?æ»ÿ"—¥Oïó]ÿ‘JñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTþñÿ5ßù½*xÿšïüŠW‹ú¿‚ª~,7Ñþ‚Ÿûj¿üŠ}ô §þÚ¯ÿ"¥éSûÇü×äRô©ýãþk¿ò)^/êþ ©ø±ßGú íªÿò*ßìàCÌF¿$Vê«ØÇ<¶ß íŒ¬•[Ò§÷ù®ÿÈ­õ[^ÅÏ4à¶‘^<ٱƑôˆÙ»àSfa§Ò@—[Bþ™h«ìÃe®ÉaµŒf8$0;h.>œjG8øßh±ì¯†úM/µÏ®¶5o.{œÝ¦õÎ%X—U¾º™H]c_Kí°³§éxŽÒ¢ÌðìŒËòX-@8dTÐös…ƒc¶’6–„Ñ!FÄ:ÖÉ é©kýœ9Ïm8ôd Ú÷ÑS,hÅÍf‰;ÖµŽvCm VN;aÅÃsC}šÈÕ_ýµ µµÒÚZÿL³ÓÑÍulueåljvã0О®¶úìcà }'k·‘¶œwc@?;yw—šc÷aö…pø–‡Øî;‡ØèÜÿÕÛíqàf„©~ÏÉ,{þÀØ­ÍcÇ ÉÑvNªÏíF;c.¯Ö¥·¶çVòâ k¨ÒÆC)c`LýÝÑ[×\]è -¥¿Iâ=*¬Ç‘¶–IJÎÑ_$Œÿ«´+‡Ä¹Çæ—‡`4›¾ÉÇoµ§óìÐh¾ôÿÛUÿäUûsÃðOc='ü×äRô©ñ?æ»ÿ"•âþªª~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÓ§÷ù®ÿÈ¥éÓûÇü×äR¼_ÕüSñc¾ôÿÛUÿäyK}è)ÿ¶«ÿÈ©zTøŸó]ÿ‘KÒ§Äÿšïü ^/ꪧâÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½:xÿšï¿è¥éÓâÍwþE+ÅýUTüXï£ý?öÕwÑK}è(ÿ¶«ÿÈð¥éSâÍwÝôRô©ýãþc¿ò)^/ꪧâÃ}è)ÿ¶«ûþŠ}Ô §þÚ®êyRôéýãþk¾ÿ£Ê^>'ü×äR¼_ÕUOÅŽú?ÐSÿmW÷}·Ñþ‚æ«ÿÈð¥éSâÍwþG„½:xÿšï¿„¯õURñc¾ôÿÛUýÿGðKuè)ðþj¿»èò¥éÓûÇü×äyKÓ§Äü6»îú)^/ꪥâÇ}è)ÿ¶«ÿÈñæ›}è(ñŸJ¿¿èð§éSâÍwþG„½:xüv»ïú)^/ê«ÕâÇuè)ÿ¶«Ÿúž|’ÝGú ~ªþáíûÔ½:|Où®ÿÈòRô©ñ>EßwÑá+ÅýUT¼Xï£ý?ÍWõ<Û¨ÿAOš«ûÏ·î ~?¼Ìwßô~à—§OïÚéøýP¼_ÕMKÅŽê?ÐSáüÕsÿSÉKuè)çU}»oÞT½:|O»î}å/NŸáô]õ<¯õUêñc¾ôxÏ¥\|~ n£ý?:«ïßèóà½:xóÉc¾óíû’ôéñ#¿ÑtÿÔòR¼ÕUKÅŽê?ÐSá•sðú<ø¥¾ôÿÍWõ</NŸÄ@kþáíûÒôéýâ°èÿ©àx%xÿªª—‹ ô §‰“UyöñàŸuè)¿š®ê~‘ðRôéýãÌÎ×Løý|ôéñ#NÍw~ÃÛÉîR¼ÕW«ÅŽê?î=<ð*¯·aíûÊ[èÿAAäÿ5\Ôý¥éÓâ|>‹£áôxKÓ§÷=ØîÝΟpJñÿU^¯oô ný #Úuô«Ž~Ü»^Ðz5øÍ}¸”7ck*¨L±®’\Ãâ¸×²¯MÐ\I=®&cú¼•ÛRìc€1r+mõ\ÊËØ\Y­n‡O¨sðžë²ø^¶Ë'ê÷D§×W‹CËKD©#RæÖˆÓÇ€Ó„ïɲÿ´?·]-p°¼n–NÝc´¥^ · ö7LÿŸ³þËO¡û?|zUóêÌÆÍ³Úc„•XÿÏoÚ;}Ÿ³¶í“¶}XÛ¾"cXI )w³s¬Ä»@4dÜ(¶Âè,sÁôˆsÆÓñUêëԚŶË}@Ml{Þ×¾æÔ@Îe[£‘¬©u|1Ôð߆2þÍ]¢,sZã9¥§sv–‘*µ" ÌÌ“s˜)mNcÀÆãïôÆÇzwóŽtÈQ.lÎn“¤d¹Û…ŽZóíª¯´9Üpk2ÓùÝ––÷þñûÖE½£]`¶Ð_`uݶ0 fÐÀÐÐàpl´ýjÏ甓{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô#‘@  à%?¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?zR|Pýz}¿z^½?¾ß½%$“┟?^ŸßoÞ—¯Oï·ïII$ø¥'Å×§÷Û÷¥ëÓûíûÒRMÎñ)!úôþû~ô’SZî®ÊíôY]×Ýëq]A²^*þ‘ì°ø§wV¡˜?my{kô‹ ‹}OCÓ2í³ê{~”yÂݹ>­ÎÝ_ÚNIcK˜uÆn0næ9§‘¹ÌWÓþÃM ¨ÖÓs é-ݹísF§vºøê’’Qž,Þ.e˜–2I¯ ±®,hØÝx, ™Ð©œÌpâÃÀàCKw‰q-kby$@X-¿`Ǭ~ímí«£V¨z•4Ø\aï­“#…g'êÍy º}-×}¬‡æ•k-cþ, ‰IN=Gꬵ·¶—=¶ïpifǺ²_¯´Ã©U™]×YMo.uL®Âàe¥¶îØZA×è”:@¶ËwÒ-}´†±À8¿(f~ŸÇè†éÙ[é}-øÂ랣+ik­{£ÊmðIN†çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½WÏêtì+³ríôè¡¥ÏsÀ ñqÐ#Á@ÍÃnf9¡Îu~æ=¯fÝÁÕ½¶4ûÚæòÞá%4>®ýeo^®Û+¡øí¬1Í&Úí/ .pXdzzî5Ùǧ1·ý±®p¶’ lo½Ó·Ó|„?#ÀéÔà‹K ²Ü‹ ·Üö°=îæî}Žu%ĸ»ÒÃkAØà#iÐÁüÕÊ1q±ÁTʃŒ»cCgã=C§³9µ‡Xê½7L³¿–ªœ®,³âýíõùô—Û£8Ì8ÉÔ â;Þí!Ó²oëääNÊèeTk[‰%ïöÏr‹UvõWgC*k*Û^]!Åîs8N´ÒSƒB» ×_ÍaÍ#Ð|¢OíY¡À{ŒŸ„é$ƒ’I$”¤’I%)$’IJI$’SÁýovϯÿWÝöCŸYú«C óº~”†iΫ¡eî/©^Þ’zEµcØæG¾+{¿À—‚F¡ÊyÿW›õ§uãXîšÇ0P!û·ë¿p§à´³1ÆVø¥ÛEO¨º&7´²cÊRSå}s/3¨ÿ‹Þ‡›‘h¿¨=¯×]m&m vÚÚÐ C{s:®»¨õ>·wÖŒOª˜YÇÓÇÝEÕÖû¬Üi›IÉMoø¿ªÏ«X?WþÜà܃’2=!.$Øvìß§ÓæV—Yú³öþ«GZÁÌMê˜íôýf1¶1õ“ô-­Ûws¤¦§ÕNµÕ/êW õkY•“Ҝݙl`¯Ôc¿}£MÜpøËµö‰Òí´ÑÓú†^Ì׃kM`nw7“¯‡’Þú½õnžŠì¬‡äYÔ3Þ—™pÎ#†µ­ú-׉VzçCéýw§¿=…Õ¸‡1í0úÞ8{°D¤§7­ª¿W°^oJ`--q§ZÆ -|{wi'U“×>¶ ~¥Òz?N¿ö_NÉÄfSòÛO«c)p>•uVd{YZ‘õ«e`ž™•õ“&þžv‡PúXâZ×€lsË´!^ê¿R±³GO»2ҪeÙ•†¹å•€°{w}ã””ã³ëW[Ô®±œm-Íé·6¬lßL7Ô¬¾°Û=7° ™ö [×þ¸`SõwªffSm=UõTüT,xlXû~–÷Ì6+¤Èúµõ3£õ.­nm™…¿­Ù[A­­s_µµ´ÝñCêSëÎÀè¸G-ÕŽˆêœ×ìÕôšÆê7 ³³Í%8}cë~}{«tú3ÏL§¥±ÌÆ  ÜüŒ˜ÐXïNÐÖH> ]gëg_V:RÆ#;?'ÑÉc˜6º ˜AkÚKZâÙÓU±Ô~¦¾Þµo\éNî›’6äúLmŒ~€NÒ[®šÌëª'Vú©oWéý;3¨Ùmý>ñü§ÖÒë\;´´4v¤¦_+7¥`cÕÔz×§—uϱqZûîÜfºq©;ÀÙÄdy®¯õž¥Ñ~¶`fdZçôÚ^ê2l¥´dm"Ée•€d28‘%tßY¾«7®äáæÕ™gOÎÀyuè;ˆÚK{ŽULO¨µbõ¡í íÃêÕ:¬Üg€_as Žºfw9ÎѽÒSÎôî¯Õ:Ônì<ŸW#«Z1±[sécRÀòÝ 9Û‰Ý+q½K¯t?­=;£u,áÕ1z«mŽ©•Y]¬cÓ  ¾pžŸñ~ÏØÇ£åõ;²(¥í·§XÖ2·â¹¥î%„nÜ_¯Á]Áú©kzÅ=g«õ:®f-~ž.úÛUu‚ ¿cK¥ç™žRS™Ñ:—ÖN«õ£¬á öUÒóú3S\óP}ƒÑc†Ø ÕÆOÝvk¢ý[gIê½[©7 Üz½¢×VY´W{ ;qÝôü–ÊJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥A‰ƒÊèãáõÌ—†¶÷]ê[}­¡þ¥ úMmfѸ<8ðÐ4E¥Xìv8g§èØ2Mls-ÝTzÏ>Û'Ý´Ž5å%:é$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRK>οÑë±õ?)¡õ¸±à5æÓhÓÂoùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褳¿çEÿ¹CüÇÿäRÿœ]þåóÿ‘INŠK;þqt_û”?ÌþE/ùÅÑîPÿ1ÿù”褩âõ~™o£p²Â Úá Ôý&€®$¥$’I)I$’JRI$’”’I$¥$’I)I$’J^O ¤ñà’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)«—šún«ŠNFEáïk7l`e{w9ömtjö¦²“ºŽ%Nôòle7¶¿RÚä¸0—»ßhÐOŒk ³0_‘u94^ìlŒ}ÍkÀk™docët kOˆ!WÉèƒ%Ö²EÍ&ÐÖ6š‰ê L ú>=ÒRQ×:;‰2© }¤necsݯ`ßwÃ^ÿjô݌ڶǰëÈ ÓÚ55*¦B8ù ªØ¶ïQÌÜ=¡ïÅû˜Ö÷$îê›rÞûr ¿i³cFö\jÜÆ´}´ªJm¯ÓëÜ–9ÔȰ $ïL§¶²šÞ·Òj€ü¦Ig¨78í!Î!¦> ¶OÕÚr*ôÍïi‹\ÑÎÈûdÇw·à¤ÞCkôÅ…£ôZVÐÖþ‰¶7FɉõIå%$ÎëxxXXÙï~.SØÑcDleŒuž«šè;Z.ðD¯ªâ9ÎcÞ+w¬ú»‹º@€N’Ÿö{‡E¯õi’Ñm©ôC›¨‚³¿æ­ãU‹•euQa¶°ñêGésGÒoÑÚ&}©)¾Î·Ò,±•³.¢û+­³«žLm΢>:s¢>6f.QwÙìzfß‚&$Ð §_D¦¶±¢×¥ Àÿr›÷¸ÁOѺ-=%®§ú¡ûC\æ€ðÆ—µÎÝ·vš”¥õz°ª~1¾ÌŽ¡ysÜXÆÕMÎ/qv×wpÿ^tñþ°`Zû)¬Ýe̸ÔïMî-Ûíhs§Ó:]yØY^¥Ž«uK@>ŽEÚ»_ š+™W鹡£!Ì9ÝÝ^Ußh±ƒÀî’<œš1i7dxú;LîâÝÖº[\朖Moô¬‰;\5!ÑÄIÐwåfåýTÆÈcÚ Ö[í{CØæ¶‘ŽZöËd'žTú‡Õºó0íÅnSªmÖ]cô¿§çÚ uoæ“÷$¦ëzïJsýpÖ›_@Ü×7ßS¶?éík¿;5g/(Xqìm¢§º« u‡°ísO˜<¬»>¯ +ôß–}ÎÈÖ‰«*ÆÝmc]æèîÊÀÅêXÍô°n£Ò/¶×zìsºÛ_qh¾R<ï¬XXø•äã¾»ýRÍ»ž*hmŽ,{Þ=¢ZG F«,³¶ío¨ælk·6H˜Gœ,Ü^‰öf}+Ó·2Óc^öŠØI¤ÖHç|T±0º–Táã_AÄ¡­­®±Ž7×µ’N¿FR~•ÔÇQª×†µ®¦ÏMÆ·‹k&ïewÒƒ¦‡EyRé¸^çÚ-»*ÏVçµ¢¶—mmz4Oæ°wW7’—I6áâÜ—f ¯ëæë1ñ1ÿI{ œÒ,¼ŸDÁñ?$”ë$¹¼>uù8Þ¶-6×]oû]nvÙʱߣ‘ÛuÕLÒ~Õ¿µhzž¼kö_Vžú>¡íÙ<ö””ô),œÏ¶·¨^qK«7}†¯T3x 6Þ- 8möµß%AÝK¬PʗꪽԇX1Áu`ÙuokZíÎsX×}uº$§¥Ir¶gõÊXrSª·(Òn{«t1Ãix‡C|¤+YY?XÈ}6‘·íO­‚€áþ™©ƒó«¸‰ðã]RSÐ$¹ãÔ:Ý™y”²iôîmu‡V\CELmŒ“ZZis‹‰±ÚþìªËêÕý¨Ýmïsk`¬zM•‘K¬Q鵄û]¦»JJz-îâJ[ßâW3ƒŸÕ²"ç‹,{Œ[Ké†4‡^ËÝÕ°ÉØÒOŸa C7®ÛG謱¾Ç¸ÚhnííÇõ A®`.öƒ·^5å%=&÷ø”·¿Ä¡Tmu5¹Å¡ÎcKw'ñR‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷¿Ä¥½þ%B,ýæýÇûÒ‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷¿Ä¥½þ%B,ýæýÇûÒ‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷¿Ä¥½þ%B,ýæýÇûÒ‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷¿Ä¥½þ%B,ýæýÇûÒ‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷¿Ä¥½þ%B,ýæýÇûÒ‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷¿Ä¥½þ%B,ýæýÇûÒ‹?y¿qþô”Ï{üJ[ßâT"ÏÞoܽ(³÷›÷ïIL÷»Ä¦Q‹?y¿qþô¢ÏÞoܽ%2IF,ýæýÇûÒ‹?y¿qþô”É%³÷›÷ïJ,ýæýÇûÒS$”bÏÞoܽ(³÷›÷ïIL’Q‹?y¿qþô¢ÏÞoܽ%2IF,ýæýÇûÒ‹?y¿qþô”É%³÷›÷ïJ,ýæýÇûÒS$”Axxkˆ ‚t‘ÄxüT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)<˜Ñ2Áê=;'©_‘K+h±Ž É6¿iÆ}ŽÆ·ƒcƒ¤žÞ))Þƒàž0¹‹z/S«7!î9¿lõl¥¥Ïs7YLßÜÛ\‘ØëÜ«Íè“m/¹ŒÙïÉÈe›‹­—Ø÷ÐÀ÷Iz›%;0bcDËž¯¥fÓÕð²,®Cn¸ÛsIyx±·9¯´ÀÛ°9µ‰ç² úa?ø¡ëûÿ˜¤§Wë!°z€~ÎóãMW>ï¤~(=kê]˜ØWg·Ô²‹U5_vðãíöhöŸÎñFwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷! Û€zŽf É¿ ÙsÚ1²Öí¦ç{]¯1²ÜŸ$¼žå&û¾»‘¦¼hW/ÿ1¬ÿ燬ÿìOþb–/Õ Œ {ÀÍÈê¦û«±Ø¹–ÍEŒ¹–»–ý75°LkÂcIê øpŸið+žÆè}F¼j©°³Ö h¯(Xç;ƒéQ^á64lé3¯NŽ…u¯Æ³6ºœê-Çö¹ÛÿGE.©îÏvÓI)ÞƒÄ%Ásؽ'"ÎDÒÝǧŒwÑ“0/õýî­ÀçOtÝS¡ÝösN5~¦5í¦€\\úÅe®{«`i%Ö´5?4”ô) àµìÁÆe€‹Mmx<‡4~hÉ)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW©(çýVþWªùY¯¦úñh ädZÇX»ÓkXÂÖ—:¸;¤¦ÒJ}c äÛ‰{ÛFM&[œø&ä8ƒÄ¸óàJ ê½4²»>ÐͶ¸±„È—D¶$r’›Iˆ$´È`ŽáW=KA½¿ 1n†±1© '~~mÇ{í2ìm8î¸9ï£Ú qÝ%6$¤³±:÷KÉÅæ² •“¹Ì/ݵ¾Ñ©öž<‚6^y¡¸ßg¨d»-û*ÀÆÇ¦û·o!Â6±%6ä¥%g]Õì©ÞÙ‹²Cé«Óõºæ>Ïç#††x'³©ÞÇú-Ãu¹ÕöŒŠØðCKšÐ×í‡½Û 4$§BJRUguFãÓ”ëÌ{Ùê¶ËÈg¦nÝþH“à†:×H%ÀfS,c­p.ÃqžÂGåá%7RT¿l`›Q¨Û룣Å[#én“Â{:ÏI¯K2êo°Y«¿0‚AùÆž))¸’­ûO§Hi¯Ý_¬2 {wîÜ4ú"~¡×ÖúM¶¶ª²˜÷<=À‰Û5¯y.¢ðyá%7RT]Öºo ½®y­ö´Ík-Üâßln¢?ªtÚÍ¡ù5·Ðpm²b vÀ<ýÚißD”ÚIRÈêØµccäTEí̵”cm0÷’ºÑ¡ì§_Ué–º¶Õ“[ÍĶ­¦wb'ŽtøéÊJm$©ÕÖzM﮺s){ï;ihp—˜ÝíñÐ"Ù‡U‹nk--. 'XŸÈ JN’¦Þ³ÒŸYµ™Uº°àÍÀ’$·‡LÏ‘™‹Šr-mBõ…Ç“ýÞ|$¤É* ëXg+:ÃébbXúi’I­Þ›ÎƶG»„õužžû¯¡ö¶«qÜðæ8ê[Xi/ø{†œ¤¦òJž_UÄÆéç<;ÕªZÆm‘/{…miÓÛî:ÈÑ+:®# ¬8Yslª«ji’×[ciç‚çk )¸’¡W\鯢«­½˜æÚYyeŽ­° Îú3¯ñáÝW§‡úmÈ­Ïm¯¥íݯ¨hø³p‘æ’›i*?·:? ìµÖiaÚë$NÝý‡už!\cØðK €HŸ0’™$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$§7ë'þ'ú‡üC×>ï¤~+ úÉÿ‰þ¡ÿõÏ»éŠt[¾Òú,’I'3©$’IJI$’R‘pg§`z¶sÿ…îBDÁk]Ö:ppz¶huÑî@ì·'É/'®ÞÏÞxQõ«‡Ú4ÁñŸ‡š^?èÙþhLqëØæ´ï2H1¤£} ÆítñuüÒ‘!ÄÉ-×LŽt…†Âòòã®ß ö€9ù'³¯n®sõý)þô”ËíëîãÈøíÓMuScšö‡4ËObUÇ ™pñ;·êŠÆ00j )’I$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåz«™ƒmÙåãdlŠZêÉÚ,cë|ǰ–þsA­çýVþW©$§7#¡×’-\ãë½Ï·kCd¿ìNŽcOr…½Ýê:Ü’mÈõSÃe¾–æ±»ŽÃ7Y=ÖªI)ÉÉè?in@vI¬_cm­µ4µŒ{,õƒ‹w™3¡-Ûߺ´ÞœÖbáãÖñXö»šXÈk¶Ý¥Æ7n=ʸ’Jq­úµSñ驹c±ÛCk~Ý?@núA®i÷‹Ü ñW,é—Q‡súpˆ-¤°Ý>6;t¾Bº’Jsò:..EÅö€êe6ƺ¸¡­¬Útt©_ÒÉ´Ù‡yÃ.¤c=¬hs}6—zm–†=›Ýüä’SŸ™Ñ±òp©ÂkÝU8õ¾šÿ8íu/Æ]Ì5òƒÔºÊ«$Óhm×:Û¼{C®©”A`JÖI%8×}[mìy³-æûluÁ¿¤77 ­"ØÇyGÇè”ÐêÜ×é>‹Ý­œq`ç»ÔžV’I)ÃgÕZé—4㊠\ɇ ŸŽ-d<îÊU³Ñ‡Ú{2^öØÂe4Ñ-wbß@8h´RIN%_VK{–\܆Ü×\G¬( ìyÓЕdtF} \n%µÛêÒÍ m f=®3î—Žt€´’IM:úkkÆÆÇ8Œ[Æ@t q}›Oùê½} •}¬½Þ ¥–7h›>Ïk²*Ö}¾÷æG‚ÔI%9”t:im-¸ú Äh%£_±¹îoùÛõSËèìÊÉuÆâÆY´¾°Ðeõ±õ±ÁÓ Ã"5Z $§+êÍ9Ÿ§ ³h‡7sÑCqœÇ5®a!Á ý/Á\ê=-¹ÌcE¦*³ðÐéªàÖØÑ¨ƒì{xy$”Ò·¦6Ο•‚-sFS®w©–›Þëxï´¹WÌèe²æ>÷´ÞëÞ\мW¨™ú&°BÕI%4kéLgN;Àý#nuŒil¹¶¶þ÷Ÿqn§rìF›ýS{‹Ya¶–mnì†fØÒé÷n{qÅi¤’œvý[¨R1ÝóG¦[´Œo°ú›µÍþlsß²…_Uqj.s/²\¡‚Ðæ±ÕØöƒôM›t~è[i$§ªtL‘Œÿ°Ù“ef†ÿ6Öµ¦†ãÞ¡î €Hð[u5ì`kœ[  Fƒ€¦’JRI fgbàÖË2_°[cj©¡®{Ÿcþ‹Æ9ÄÇ`’“¤„Ìšï sÀ"»?Fýf&·Ã‡›í¸;=O´ÓéÎÝþ£6îýÝÛ¢RRdŽV({Øo¨>±64½²Ñâá: {¡ÓÔºvA"Œº-!æ¨eŒ?¤,uv¼$¦ÊJ}g§[~m,·qé¬e™Oæ5¯kÞ!Í™€Ã!Oª`åÔ˪°¶»¶š]k]O¨%¾Ÿ¬Öo5%6ÒUÝÔzs[•H}®5ÖßQ²ç´Ih×;);3 ­Þ슚Â`8ØÀ&&&| ¤¤É!·#Á…·Vái"¢Ó¼ŽC û£É%)$’IJI$’R’I$”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤,«þÍ‹nFÓ`¥†ÂÐ@$4K¹òEI%8ó³õ¾ÊhsÃÖ{ŽÝ,³Ó©çk^@±¿¤nšµ\³«Šú;:¡¤þWîÔlmCÜÖž §’±_OÀ¨ƒ^=l#Ò‚Ņ̃üÁ B=+ÀÔ÷=Ød0¡‚¡8–°Y!ÃwÓå%5±~±Q‘šÜRêïs˜Ñ¬´‡Ôû‹š\Ö8íØ½£­?ªVÇý›,í$Kq­ Ç ÕN¾S˜æPÀúݽ2çm5ît™Øvü””óŸYzÓJ¿ìÙ dÕeaÏ¢ÆmvÝÀû›`Ç¶Šƒ¾‘ø­ÿ¬oì. øÆ;Àtk$OÉ`;éŠt[¾Òú,’I'3©$’IJI$’R‘0]·¬tóþ–Í“ýîÁ §ÿË=;þ6Ïý·¹²ÜŸ$¼ž«×¹gùŽQ‡Cæ¸0-ÇMHóÕEÕ±ÍÚà N±ç2˜Ò@sš5,?Gq×Y÷iáù¾*NÉsC‹«ááƒÝÉ"g@§öz4öh£Â>jNª·ÐA;ljIH>ÚÿgÐ|#ËÍ«=Fnº‘<òKÒª#hücû”€`D’OÄò’—I$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯RQÎ;ú­ü¯Usº¿MéÏc3oºÆ¹í–¸Œ-{‹ZCZÝÂIIMÄ” ô7vëX6FésDO®Š½ýW.¼;mûk¶à WHkžçG8GŠJm¤©3­ô›ܦC«dMÖzÛ\µ³ÛÇ(Žê]=·ŒwdÔ.q cK€Üã0ÖžïiÐj’›) dgaãc»*ë˜Ú@6¸I;CFÙ’I€¨Mêøɯ½Ì²ÚŸ{=F:¡²·¶·ꆑîxå%7U³:Ž-¹Y´UMn¹ÛHs‹ ‹šÐeÚɲzž%_‘nÊï{+ªç¹Ï°nckvâ;BJm$ƒ›‡“]Vãß]Œ½»ê!Â\ß9RÆbêÌ 0ö˜¹Õ%$Iíx»öZÑd“ -q-?èGŠ({ ¶‡4¸Á ‰Ûã )t’I%)$’IJI$’R’I$”¤’I%)$<œš1qíÊÈx®Šl¶Ã0Ö´I:IUèë=+&Á]9U¹æšò@¿¢·ù·û£év¤¦âJ½ý3k7ÌlÜÝÓá)¾Ñw«\0ÃŽöÀ>]RDr³qq1Ÿ•‘fÚ*nû|7÷ˆ`q4±³1r¨nETö‡5Ä®ú.ÚðÓ¶š¤¤É( ñÈÖA;AÞØ.ýÞySIJUz–ÏÅv3…NcÈÜÛë70üúÈ>tVò2qñ«õr,0¹¬ÝÜòÖIIO7OÔG3/íï´ã4Ev0™,uŽ-cFD¬5Tèú‰›]XÙúõÖÊrǧ55•ã[Œ ¸z&Ý\K{]E}c¥[{±ëʭֲюæƒÅ®i°W?§ëØÚýW¶ªÃŽ®{Ì5­ñ%%<«¿Åæ9éìéÃ5Š[x¥æ¦›§"½Wîá± Ú‹~¤cY“vGÚ?ž¾ë…EŽ h¼±ÐÑ]¬÷1Õ‚×}à­ª:ÏL¿#ìµä7í‹=‡VýÁ¢ÈÙcZui‘â8à£Ý•C«eÖ>÷TÓôœà ˆh¤§¥ýUgNÆÍÇ> ÍÅ« PfÆSSékϽۜCäñªŸSñÓêeÏÝÓëô¿Hl±Ñžýž³K[\Ý®àµqº·MÊ»ìôÞÓ¸\Ë`ip,°5À€ö˜Ž £Ý“Cªe¶5½âªZy{È'kGÀ$§š?R^î¤:…½@[d4?u\[U´n$[‹m$Ã@ (cÿ‹üVbU‰~cí®·XIeb·f+0€s ´0:{•ÐÓÕúeùo§&·äÖç1Õ®æ¹Í‰Âa+;oÚmmEáîh<‘[M–°Ö¶JJr1þª·Ü+«ÈmVá¼¹ÖÓ[ÚëòegÔ¾Ö†Øuw·á yV£¨á_h¢»¹Í66«úžXÁ¶µ¤€J²’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRE·TàXÝÍÎ&«€ó#„t’S^»2MÀ?èh ³qóå'\ñsÛ¸é;+ ™wnÝñGp® êkZÖíh hà J@ËÞû­d7sÀáÇtÁœ‰Ñ¬ŽÞãÿ‘DI%9YNOìLÝ´ÐýðIÒ<Ú5XŽúG⺬ŸøŸêñ\û¾‘ø§E±Ëí/¢É$’s:’I$”¤’I%)§ÿË=;þ6Ïý·¹ §ÿË=;þ6Ïý·¹²ÜŸ$¼ž¹$’ñ¯Á1¤¤“ÁðL’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW¬ž·õu_&«Ý{©ôh¶ÀÝÍqµÕ¿ô'kÙú8s!ÀöZÃùÇU¿•ê9x¸•ú¹W2ŠÆ›ìphûÊJp?欷"ÚòÙ»)Î}æÊÞýâÏsêtÝÉs @{t÷xÒéßPïéÕRÁšÜ“X¶·<ÕéØêòM-°ºÏQó鲯`…×ÕmWVÛi{l­âZöAD'iqhp.€DˆIN ~¨â·ª~ÐõŒ‹/–I¼¶ÖÒ\a­¼8ï =Ÿâ÷‡Œ ß²ÕU/s) {…mÈ­Ïkƒý®p¾AÖ G+¯I%84}Vm=2¬&\Ö[‹“Vf=ìcãÖ¤×Y]–¾wî - º¯Õ›ú§QéýNüš…ý88 ½êlÜð὎´˜q»VúI)å1¾£»¨b32»+êu½¯}˜áÖTëöAâÁµžígâ¯ÿÍ»kéØ8tæþ˜ÜÚn¹ž¡vÝä2È{KµÒ™[aìq!®N’žVŸ¨¬¥ÖF^á‘}YwØê‡«ëVãcÅOŒ{Ž­ƒñBéÿPO±·cg†\ÊAㄯ£¹®sk½#ùG¾«¯Lç5¢\C@䓤§Œø¹õKý\æ–¸’Æ Ö‡;!û}÷8èr4ø-Îõ|àufWF5x×VÖ¸Õ[*cÞç½ûvíÐ07Îak‚A)äLwðIJI$’R’I$”¤’I%)$’IJI$’SWªàþÑéy}?¥öº_O©¶ïiní²&6ÿñw‡öuyN,k6 {Mn¬%ÙY, ³c#lsÙuÄ€$ètÁÍp¤x ÈIO'gÔ ­ê'=Ù`=׋ÌUîYE°ëïð1'Çï%_Q«m¸O·%ŽfÆ`ch ³ÇY7KݹîݿԤ’œ>™õzÌ~—ÓoµÂÜÖ]V÷TÕSši¢°tÜ+®>r£ÕÛ_—‚æX}<v 6û+hn6ökô s§ä·CØ\Z ‡ Hù'‘"%Ö¾È`nçsφwLvOPéùõÙ±ø´™÷W{=7Á‡ªúI)çp¾¨7 ª3.¼·¿»þÒÚ^x{qÆ#¸@#iq&'2t³ºQÉê8ùÍs?GEø¶ÓkK˜úï <8sƒËeh$’œ.ŸõjÌN¡—fH²¼Ge[U-ikZ콌5°9ÏÛ[ÍÎâ{-Ô’IJI$’R’I$”¤’I%)$’IJI$’Sðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJIR=o¤PœºÿBbÎt%ÞŸ†¾áwF~v1k®gÙ\æÜ ´‡AlÎâD$¤é*ôõ ÈmW±î. ˜vç5Ö4m0Dµ¤‚<”ç}dÿÄÿPÿˆzçÝôÅn}fÈ¥6§:mzsÁ-[¶Úú µÿ¤¯ná]Æö½¿‚Š/Oÿ–zwümŸûore¹>Iy=ìÛÿòË/ÿeÿ÷R·¡æ<ŠSì9Y5[Ûµ•²Æ Vʤ½ —çï;R¢m¬5Ïs€k>™:Dx¦4œ<®“Ôƒ.ÆÄÒ¨{é°Y°K±+kÛ$´ú¾ÿã*þÛþß‘eøÎªœ†ÖXMŒ~Ã[K\ÒÖ¸ý.tWKØ9p†üÏñMëU oâ@øƒ•%3Iצ@Þ=Æ™R}Œaî‚îŒ$¦I(‹+0Ýç3‘8!ÂA‘ãðÑ%.’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzÎê½/¨Z]™öF;ê£$49ôØç°›+÷˜  Ç D8ïê·ò½I%04úX¢Š\ ­aÐÖ³u¤ka  ¹Þã  ̧¥µ¸Ø¶âõ ÛUy¶:‡ XÆdÊZK~ÎØi 1>$®‰(Ljy>0’œ ‡°QÖ1ª¦ÐrêýQÇ·i•´fÖû†Ø1 ©uᲬʋz­y”~²· ¹Âl¨þ£àW@” GÁ%)$’IJI$’R’I$”¤’I%)$’IM½[íè¹ÕÖÃcßCÃX\\c£SðY,«1µ±1€±¹v[@®§SQ# Ö0¶‹]Xß 3ÉïªéINÊê;è]–Ìeƒí Ç›ÒXÛè’Æï6‰ôÇÑ÷6z'Û+Ȩ̂$=•ú¶ÙŒÍ„3c².%þ¬jçOÑýØ#•¬’JyVSÓM9ßckƒ-Ìx8Ô»í.±ÆÿE™9Ì|ò;gEXt«GOI,;ŽM9ÔdVçXÑ~Û ŽÝ¶²ßÓÖ¶—f’Jqzÿ´3z†}gÈϪ‡º±¨`c¯c*Ü is·tx­¤’IJI$’R–\Ƴ+S@#(ØÃ‰p˜¦æË›s‹`íh|~u ’JhôF½2ªí¥ô^Íͽ–Î6‚}G=Ú‡x+É$’”³zî-ùXµÕ‰,εø™í¥í—¼´ifæÇy…¤’Jiôq·¦c°Óf3ØÝ¶Ui—‡´òçIß¹Òw~w*âI$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$42’× ZDÉÛȉäüS–ß«­ª’ê­‡¹¾ Þ.uàí.{¶À#ÅIÝ+!Ý=½FâÔ+Û˜_69Õ½·K©c+s›=h3#{ÚÝŽÐ7ä·|’‘»Üñ°ídËäDº#””æc}]ªŒÚó½wØðçm5áµ:–µÁî{´Ü\ïÅ\Géq{ðqœ÷\ãMd’y$–£‹Ølmpw9¡Àyü‘½€Ä?Oä;ÿ"’œ?¬}¤7¤ed3šßKß^ÊØØ|@|µ ËuVk¾‘ø­¿¬™ ý‡œØw¾—€K\50±ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H˜-kºÇOk€p6Ù¡?£Ü†‰‚àÞ±Óɘõlà£ÝØ v[“ä—“ÕýŸý?ÍÜ¢qjÚæ´mps¶À&8)zìðùÿȨ¦=ÛO±Á¤[ôŽš¸Æ“a—0Öl;Ii5hŸ%&b0°8íwÓγòå0Íavݤ}Ó¨‘§œ§~PfàXwÖ¬làϤ¦L£l{‰ÚíÀp8-Å8cžöÙcvšçh'˜×†ø%mâ²ÁŸGP?*aÒZ ûâ>d·ø$¦#¶ _‘´‘0»C®¿IªÝ[KK· $i$Ÿ4ìxx‘¦¤šK‚’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•ê®NFc³+éø ¬ä>·\û..ØÊÚCAÚÝ\\ãˆåZÎ;ú­ü¯NÖÖÛÛ‘°XÒÆ¼òè$|á%1hȪ١Œ±¡Åþ‘.d7ó†à£Xüª¦?R}˜ã7&‘‹†ö6Êžç—XCÈØSkÑΞ®Šý§Õñ!À´#ÈY•t‹kÅg6Ë(¨°â‡±…õšžÛj—òðÍ {¹¤¤®ë}%…¡ÙLÌ®.h4—0´®í9ÑDõÞŽ×}®²×±¶´‰ ±à–çAÚ9'Aª=š‹Hµîp}6¸¾›­É˜í¹öŸ€K¢QŽæ9¶½Þ•Z&55?T¤¤ßµºg´Œ–êýf¸Iiai²w·èè™RoVéöaß›U¾­­s­sé¬è- ˆåSW1ÅB‘}ž–Í¥°Ù/¿¶O“tñWÓhô²©°ºÊó@m­&=¾“1ȰukR1Ô2km/ËÆn;/±•³ô»œÝÍ{ɰ47hnºŸŠ“º×Kml°ä±þ›ò÷87ÔXnÿ£î˜ãT?Ù6YC1ó3,Ê®§Âæ1¯€ÇÖCÞÑî$?˜PgC}N®ê³,fUn‘vÆYé6ެéôXÝ|BJmbu|«¯¡¤ ñÞö¾©—mkÝP°ø˜@wV{ò>͉Žn°ºÐÇ9þ› h-e®. |EŽØ4ÔϘ}1˜yYZèÊ{캢íÁóÈÚß‚ì‹EÞµ9.Dz»n}0MyYmVÖÿk‡©îiäióJLî¥éãç[ePîœÍÖ0:Cˆ¥¹5ÄÞ‰„ÕõZ¬¢¼ºÙ» ë]yÂyØÛ@ýÂøh=ùáÞ‘}¿jiÍp¯9›2X*f§Ò5ß›!³ 7¢×Mgå˜oÈ®÷Pumb²-,£Oh}ޱÊJt’I$”¤’I%)$’IJI$’R’I$”ƒ?+ìXWåìõ=컣´Á…]P2÷ãf±¸·T[¾_º²Ç2ÛÙacf=L~v3±[™‡v#œk°°½ '¸EWö8}Ç&ü‡]”ç:Ç5»HmVÒÆzZ´4zÎqñ<¤¦g­ôÆk˜ v]¹õØÆ†Rls‹ØØ8(~ÝÀ,¡Ö42ÀòËdİգhÛ¥ÀÏwÕ þoWèz%ûMwÒàÐݹ°v7]›}0tï>*y= »ò-»ícra¾°ÖÍ·Ñ.hqÕ¿Ì RR{z·O¨Ô×[.½âºÃZçâóOæ´ÀÞ6ÉRý©ÓáîõÄVC] q$¸–€6_$£<*Œè·‹¾×c‹,TÒÖmhœ­¼k.$O‚Ž7Õº1wš.sê‹©³c ØZç¸4»óÀõ’’ž°]Óðs)¤8õÁ]vYé†ï­öûŸ±Ý™à“õ–œj1í}«’ü{½76¦Ôí–äÐkc‹déʶދö<,;?MV kš-k]¿mo¨oGçϪƒê¯Np}w—_Œ+}8¸îÐc×c‹œÚœí8’™dýc§õV>—z,0µ»€õýF‚ÑYó±jÔñeL°hÖ¸ë YV}XÀºÁvCìºö‡ÅŽ#WYUt—ï¤~)ÑlrûKè²I$œÎ¤’I%)$’IJEéÿòÏNÿ³ÿmîBDÁ.c§íŸVÍ ýîðP;-ÉòKÉëÓllDhïœÌýê²?Ñ·üóÿC6ä6·½Ì×{D̃§€à¦4“ëq$´2gÆ6þEIKdk:™3âfOÍW9;7îÓ»Aä7OÉ"×Õ³cK¤Ë O´}$”É•–K‹‹tl€ |¡1ǤϷ“:8×Mtù 3*ÂÉXò[ú6‚6˶í$÷Vkvæ5Ó2'ˆüR™[;Dn2u'_š’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^Îk\òÑˉø¦Î;ú­ü¯U¬éÌÍê´;.¦d`ÕKâ·Áh¹Îl9Ì:;Û1Ì$¦Ø €F ê PbcEãÑ‹C©Á­µ†‡šØß¢eÀÇ+3 ®š21­ž¥¶¦g¾òãmnuŒ¯"˪qho¦âOià’ž…%_Uê÷zn©­w¡Xq©Çy¾ûèxöì­¶çÌ&Çê½k#ÒkM5¹æŠ\MO#Ô·ÕkìúcÚßNC|õ))è\èëýDÔÛ km§Yö}Ž—~¯eι²gcl`d~2®U“Õ¬éýHÛ3iiÆ–m÷¿»˜×—I| IN¼Ù2监Ó[wHy¾ßZ·\Íï6¸Š®!·0™is†¢©‡\Ë- ?*Š)²Ò×gº²kþa·z@o ÞâÙ.üØå%=@ÀY#3!ýC;÷Æ[sñÚé/{}W5ÏccthÂKn¤åµÝR׳˲Ùd¸¶¡uOc1™c›Ÿ¡ÍÔL÷ )è ¤¹üŽ¡‰V?XÇ«%­{©œýOqoØëØjÔ¸ëÜwO•’ì1fH}]^Œº‘\»a6<3m=ŸQ¥Äˆ×Iv ¤§}$’IJI$’R’I$”¤’I%)$’IJNAˆUzœ~ÎÉÝyÅ“ç$ ôôúp<3Ü_K0Uw}¥¢ÜŒ{,ÈÆ{}²!¯wµâ%ÍžíÔè’ž¢ @À•ÉßÔ:õÁ`¡ôb[’¬–úÍÆÂ´<‡:46¸ÂÕë5Ù}Ý:ºªq¹Æ³k¨câ©ißXwÊtINºK˜é½o4Y…„ ²lmÐÇêÜË)öQµ­»§ºž7[ιÀ—Ð÷1»÷9®­•=ØÖÚêÞíÄ{ݤüG))é\ãºÞ{+vK-µ˜™н&öUemÜÇUcÃZóô] çJê9ù™¶ÇThô_kœÍ¯/"ÓS=Õ½ìnš¸RS®’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$±.Åê_´2¬e6XmÜ(ÉûNÚ«¨Ñ°0Pôý_ä÷ÚBJvÒXØôõwæcßkl¯•Q]ØÏ{wën·uv8@%¤ÎþÌ+¯ÂÍsÜæõ˜ $4WŽ@u$¤¤?Y?ñ?Ô?â¹÷}#ñW¾³tÜóÓo¼çØöQM޳s)Í Kôu4íqÔëÙQwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"`‚zÇOŧճQþÓÝã(–äù%äõé!úv¦wÜÏüЇ£kZéqxs¤°@;{€FÞyLi'Qela% .æwU’Cš Úæ¸v¡ÐCÏŸ>I™EÛÚã 4·ÚI¯ç»²Jm¤ª²«ëk"\òq™‚@‚w;X> :›Ý£ ªÚét~“†§É%6’P¤X*¯Ó2\ fSIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½ID8ïê·ò½WÉ˽™ááÑöœ«Zë6¹â¶1 n{áÇR`CN©)´žOŠn»ÑÊ«ìÏ‚^Âàà6÷ÜÞÝÕln¥^EG$Ôú0Ë=Ve\XÆ9‡‡Fý푯¹¡%7$¥%ç`·n욆öúŒ›%]¸k¨€L¤ìüÆìš[,õØÑ,Ûùú1¬¤¤ò|RB9x¡á†êÃË=PÒöɬ~|OÑóQûvÇ·%·Öú1ÃÖ1Áá›çnÙ:Ù%6$ø¥'ÅQ¯©n:Ük¨nCÙ].³Ó÷烵¶9ÍѺ¨ôöÒ2•Kh.Ø-603wî$”Ø’¢Æ1Ž{ØÐ×XA{†…Äüñó(È66·{ê{ës nýeÑ?FF…W³«Ò.8ôÕfEûžÖ×XhÝéú®±Ìl0¼4ÉúZ”ß“â êØ÷1Ïhq¬îa"v’"GȪǨÔÚrí{ϰ·uì!¥ÃôM¼µÄµÑÏ)ÇRÇ;^/´PÛÀ Ì÷Ÿ£»Û»‰IM¤’I%)$’IJI$’R’I$”¤’I%))>(9™LÃÄ»*Àç2†¹¬‚âa$ ù¨ãæ²çY]Œv=ÕÃ:”ؓ⒥wXéôXÖßskcÁ-¸¹¾™F=ÁÚnõÛ ͹Òý¶½µ¥ÅÏsZ·¹—$¤’b'” Ll?PÐsƒ­±ï}qh nçØç;@4ÕBþ¡MXÕäÔS.{+¤PXíî±ÛµÎs[Ïš½Y´µÂÜk™{[[ýÑ—þšß³°H°²K¿•ÂJoIñJIåRRs u;ïµÜæâH¿c 9îw©é.éJ±‹•Nf5yXîÝU£s §À‚×AIIRI$”¤’@Íͧ¦Ýxw¤^ÚÞö´¸3yÚøá³žÉ):H8™UeÐÜŠwzO'Ós†ÝÍ7uƒJŽf~>©ù;›U¯›@%Œ.ú&Â>ˆ'Û>))°’.C2±ëɬ9µÚÝì]´ý[È‘®º¨fgQ„ÚìÈÜÚ¬±µ@–°»è›ú-'Û>$$¦ÂHX¹5åãדPp®Ñº½ãi-?EÛN£pÔJ*JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)ÍúÉÿ‰þ¡ÿõÏ»éŠè>²â¨Ä=sîúGâÇ/´¾‹$’IÌêI$’R’I$”¤\YéĘ­šŸü/r–-5]Õz}v·{ ¶KO•Ër|’òzýìýæýá!mnáÀë÷ ·ì®þ¿yþôí鸵±â¦ì/åÂxa1¤×ÒÐ ¬h‚HðŸâöWXÇ $ÂØ›·hqüøø:F‡PÐ"Û]·i¥q"O¾CiÓD”‘×TÉÜö·ln“Äñ? ö´8ÑÞb¾I¡´ ÈœÔæÚëÛ.s´,it$¤‚Ú‹œÐöîf®¨ø¤,¬‰f|ãò¡ wž_ $¼0!ÄïÕÝÀ)r\^_î|zšh`ƒí×O¢’’:êZ%Ïh‚Hø'ÔHà’Hy#”bL8ÁÚb;‡ï?zo³”í¢ÿ´wO¸{V’I)£gN²«h¿§=”>ŠßH®ÐçÖYcšó0àùlr> Âë=Öú`ÍÎs‰{œv€5sé$¥$’I)J¾~s±Î-¤}žÓ·%„O©TÕÏmÆ$øJ°’Jktü[0ñ‹eÇ S-ªÇw¦?›kã—5ºnî£Ôº}]Kì™â<þ±WwîcC¿6¾JÚI)7Ñ‹]9›kMå¡¥ÀipnÛâuCê8õ²dAİþ³Tkc¡›¿7ÝýÊÒI) cbW}Ç%õ ¢ç ®sAönÎ €Osª:I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)×¶¢ÐàNùˆŽß<{(3-–ÒOaíן=8î´nüæÌû”=  @ˆ$©:šJb2˜\Ð!ÎÙ»A·S:%fK+{˜A%­Þ`Ž5ìLžœzÌmH‚"bGÛ0J¬C·ûËÄ8ÄH×·Í%,o`sÛXOöCIÿªNû*6Ápt˜çºo³ÕçÞNã&bg]xHSfâj" ¦¤L¤¦'&¶»c¥¯ÓÛ¤ê ñòPÕ–‡m0ãKcÜî„gU[‰$LÄü¤ʘÑY ÁpA è6ö> )‰Ê¨jïhÜ[& ñòLܺ܇{˜îvŽþ(‚šÁÝÌÌŸ?‰Pn-B$NÂK<¤Ì|’Rã%†Æ³i÷’í í™ï=?kàþó¿Ìw÷#ýíxZIñä9”T”á}aꘖtLÚ˜\KéxÒ5íÙe;éŠè>²û¨ãàŠçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^ªd`»?©SFHyéÍ¥ï{Xç5®·sCE¥¤ Õ¾jØþqßÕoåz”‘Ɖ)Øõab>¬w;mu½Ì/qyç’tì±Yײêe;êe´²ª=k ª÷ÙŠü“´FßðŠÞ:È:Ï2¢*¨C‚M¢Ü4 )æÿçe6Z kʶ뢚ª%͘ÔÜjo}îßßAª±“õ™øÇ+Ô®¨¤Ú+hy/«ëÅßk`@&ÙÓ÷OË`áa:¿IØõ§w¦kilŽûb%5X8uzÞ isyÚ °¼’íäý!©Ð¤§1o9ÖR×c2¶Ÿ³úÛÜàÿÖ2,Å Þ7%M¿Yrš÷ZEv‘Š1èas…fêò/Úð5ÞáX<—DÌ|zÚ]Lc[ZÖµ AÜ Ø™ø¦v&#˜êÝENc̽…-qÒáu2’œL߬=Fª®²¬zjÙ½­¹Îp{1ëÊvðØ7íÐù«ýZó^N5™Œ›,e¶°–=¬Ý]m·ó7>q 飷a©…‡BÒÑFÓ¤~îŸöSMµš­­–Tbk{Cšck´Ñ%8÷uðòíÇ¥âöì¤TëÞ\Ñú<›žç8jK½(PÈëYYBú=:[KZ]“¹ÕWtí€Ð?IÅlœLC_¤h¨Õ ôö7o·Vûb4ìØøÏ°Üúku¤m64¸·÷w1ä’œçuŒOã]UWO¬ýαµŸS`¯Ø×RDh‡×r²™c©¡öV+®—í©Áy»%”‡:†ƒþw’Ôû..öÙèW½„¹ØÝÍsŒ¹Í1 “ÉOf=6[]¯`u•O`í¤=ZÄ’ž&ëóÛ…~NN%M¾Ö:«.ÛÝ”±Íõ,µÄ—7kˆ¹kôœŒœžNUŸ¦µÌq ,msƒ³¶ö€~höááÞI¿«I‰6Vד} x• zn¹&ÊëÁXfe¿G¼i )ÊÇÊž‘Ôžû¯½Ø£"lö4Ù}L¹¢£¥q%„vO›Õm«®³ÖúmµÑ¿)„²×>àʉ³ÖÚóá•®p°œëìjK®þuƶýw{Ì{µ×U*ñqja®ªk®³ËƵ¦ ðr’šýQ×YÒó ÏÚYUž‘­Á¤ZÀHnîÜ ÊæÛ×óòl½Õ^öQÔªvOH5QŽË[s[c†Ó¹õÖè¢ÿšë*¢ªCÛ[`X÷Øñ̺ùç_SúÐ*` icÑíiеºh p’œŽ‰‘’üçã[ö†F-wzyo½îqþv§4¹»3È#[`»¬Ý‡‘”üaMUYE5¼Ò^]ê<»óÀ!­Žß5w' -­nM,´3èHÔy ä˜tìUtýš§WQ&¶½¡á¤™%»æ%%99}O6®ŠüŒ_Ö³™˜æWŽÖºÀ3PªO·Ú¬bgz¿³¯£!Ùæ:Ú®Ü6ÃÃiöXêÝYfÞÓ¯ @aá¶ÓsqêmÎ2ëEm&fK¢yÕKìôúâýƒÕhsC¼Èsôâ\Z$¤¦·[ºÚ:>mÔ¸×et½Ì{HA<—ûNüV9ûîs1òžE¯³c0íÈôÝhÜ×îsC„.ìcÚXö‡±Â×A±• ññêcYUL­Œ;šÖ44y 4huINKzÖ[ò*÷½ö5ö½î]tÛ¤ç\{Ñz…ÙWeÑlF=ÖµŽs¿HáëÜÑì ÐÐÐ{|Ó…„jm'£KæTknÆ»Ä6 QU5þ£XÐø#xh‚w<ý-~))æ±úµØ·U“–ü†Òçæ>Ûo³}WA¸Šéc7mxØÝ´ÃLJªÞ§õ5øöÙkz¥y4ä0ZÍ…ÔØÇÜqáÛeõº¹Ý¨]m˜ØÖ°Wm5ÙX;ƒƹ øí"'U"Æ‚áâ"8׿’œ~‡Ô®ê9ù¹[ž0®®‹0i| µî¾¿R9¯§¹m&¸ºâ.î@àOÍ:JR¥Öu}6ë1­4ä°cßh?£«iäXïdy«©‹ZèÜ‚‘0G%4:]™˜>½ïÝ’lxȪ#б¦ dýþwÒەN«„ò2Ùc="®ùþŽwvx{sÙ^ h$€q—ÜÄIù‹Z`Ó-‘0x‘÷¤¦—EÉ9]2œ‡]ëÙd›\FÂÛ$ï«dž™öÇ’¼˜5¢`&L’y%:JRÎë·æcâ2ìf2ÖšqD´rIŸäK¤q´S´H·V’5#O’Jjt‹Û“Ó1ïý¨ØÍϺ6ËÉ÷šìÚénÞÑ â`Ö·F€$’cMI’~e:JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRï{+– q-sÉÄ~TD’SWí y`€`ˆï·w;äù¤ü§µ¯‡0† GµÿÉo»‘ßUi/à’_{˜*ÛY$“ùÎbεۚ76g¾»Ã[ŽZg•mµ±“´Dó©?•I% c²KÜÓ´Ðà òINãàœÛaÆuÍ€v—´:D€u£(úlß¾=Þ2' ) ò,c¶î²ñ Ô8øÏd?µÜÝÛZ\{€ mï`Џ””ÖûKä¡Çql7Ãk$ÇeæY . ÷_vÞgHå[LÖ5³´D’OÄò’šíɱ×5¾Ý®.[¢L÷‰PûORÿ¸mÿ·¶XÒA"KLƒç%8?Xr:èÙ­~0cC÷àÀÓ_’ËwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)JXϹS§ºŠ…Ö _—ŠÁýÓî!ß‘E§ÿË=;þ6Ïý·¹²ÜŸ$¼ž‡í][ÿ+™ÿ±-ÿÒJ…ý_ªcàed_C(ô²j¦‹æ¼9–XÚß º†þq—.âD ‰1¤ó úÙ•ööà:ªÞ÷¾²ËÑÔšØmtWe­ÜÛ,`ó¡òVúQë™éîÉm4Õ›î Öw–нc·nCÃ|ÏŒØkGòN’š};'+#ÖûCXßAþƒ¶N¶³ùÇ üÃ-Ûß™WI%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½+7ж¼z©³+&àçWEA³µ‘¹ÎsÜÖ´kùÇ^ÇóŽþ«+ÓWELÏnw¸ZÚL‚×8?Yð#²JZ»‹±ý{+}\ËD9»gv‚gŽÜ©Uk.ª»k2ËZÃĵÀ8h|Š–Y7×c…Ìs[>.°OÕÛK™fêÛ{Cx’æ ñ¬Ç~Í{Þ‘))Ú¯"›,¶¶:]Cƒ,sCÀóö¸"Ì[õk9õ€ÆÑKisñép`ƒEtú{ñìÀê÷NÉ×B •©^sÍM«Úûý7¹Åϸ¿"»™êŽhfÊö¥ôŽœ‚”ô²>þÛ‘K®²€ïÒR뀳pn¾{ ƧêóÚúmsY¾Ÿ³úeÎÞYéeY“`amU´K^Ý­*®úµÔ=û8×XÖ=qUwÕe–)±»ÜmÕŽã™Õ%=3ÞÊÚ\÷5¢Kœ@y’ƒ•™F g¬Në]²ªØÒûà ˆc.t4c²ÃËú°ûé¸ÔûlÞ7\KÜZqkÇc^òÍHÍÇO>V·PÇË}Ø™xB¯WÏ¢ÒZÇWkC^Ö½­qilÓà’“Ñ—Mîs[¹¯­¬sÙc\Ç4Y»d‡ÎÒ¥‘‘N5/¾÷m®±¹ç’Àj²szVfUÏÈ}t»ÔîÆ{Éa-®úõw§®Ók\ßonÈg¡ezy´–Ñe¹Uµ•õëµWVÂÇûw0»GwÔ$§yÞÓC1óU³:†.o®çKþ‹X×=ÇÜÆhÖ~“Ú>%g„ÆUNìG8o{½Fíõ7ïôí©ä½ãRCÚC¿8„^«ÓïËÊýŠï®ªÝ`qia£!¹IºûÛ Ái)9ëXckvÞms‹=E†ÐCCÌ×·pLÊ·EôäRÌŠ,m´ÚÐêìi––žà¬zºWQÃÏûN>̶6ר×dZæÜámm¯m¿w¦[ ?»ðÖÆ%Yxxµô÷c¿!°án]f¦2msŸamo³x /=’Rzú¾­õl4’Ö²ÿMâ§›Ú™éÙ·k¥Î|QlÍÆªÓKÝúFú~À 'Õ/k`jNÇqá+9¸}\tÊð,f;݈hônmh±¸öÖöîa©Þ™s¬j£gJê6õVu–šñòꮺF÷[Sëßa¹®;µàµÀH"8IN®VMX˜ödÜHª–—XZ ˆhäÃdè«¿¬ôÚß–ÇÜðÚ²Y¹®{EÐ >Ó2<ü •´¿? /*¿M·zÔ ÕÌcäj77U‡GÕ~¢ÃM—_U–¿Ög˜#~QŠ,Û¹Í`½í÷#O§{¨c帲±c´Xuo¨–74X„¯êôÞ1Ȳ۶‡ººku®k\a®x`;A Īý?3¦åý¢–ÙÔf;)s_h6Öæýî-·rA2Ee}Q™¯ÍªŠý<¶1·cÝ`e•¾¢æµÍ}Bæ89®ã·ŠJn}·Ô-ö:ß@?Îzž†ßóô”ªÍƹìeo“k^êŒÚÈkœÂD¨YY]37Þ“Æ7܇Zëë¹ÂÃ[²NDІ×m1ô¹ViÅê§O¯)͵Øn±ïÉ`Ø×´1ôT ;=Áûœ‚<ÒS'"¬\{2n%µRÒ÷ ŒÙ%?%Îe{Å•¸2ÚžÇ2Æ7{w±À‡¡<¨õLk2únN5[E—Væ3q!²x’üŠ•Ý37+-Ù¹›÷4zÞí+e95ÿ<Ó¹ÏÈçhÚ))ÞsØØÜàÝÄ4IIà2ŸýÅ`~ÃÎ~EV\Ìw×p²¦—9ĵ»$¸ÍpÓ±ÐïÝCêþmM·Ö5ä8ÜÛ ^ñé^ƾ×k ‡CÄ—Ì$§]ýO¸´eû*Ê P+­ïs‹šçˆcAwÑi*õ¾›Mxö]i©¹WŒJƒÚà}s?£sbZ}½Ð+è÷~ÍéxO³c°\Ãkès«0ʬ«ônn£W’ÏÕ|¼ŠÝ“‘¶ªYxÅÈf×Zû/x­p}Z?ÚÙ,v§]%%;už›PÏ/º?eìášÁgª .öø+p{Zöê×à|ˆ¹ìŸ«Y¹w[‘nK+9ri¯vÛ\ÚêôDÈÚÖ\×;ƒ Âß¡†º*­ÚšØÖ’8–€S4œ¼lF±ù/²ÛK\f7¿F{IÒOteW©áœìGaä̃$8U˽2?:@öå%%ÇÉ£*¡v;Å•àÛÑvÒZKOq#”UW¦cäâáW’öZú¦Û wVÝ+sšxvߥJ´’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$˜$À“ÂamD€Ò]ôD~ )’J>­A¥ÛÛ´.‘øJN{ÝÎpkOr@ )’I·²'pƒÁ”ò´))I(¶ÊÝô^×FšuKÕªc{f&$q̤¦I(‹kv¡í ÌA¹R ¤¥$£½†!ÃSQ©’6ÔÑ.{@˜’@ÔvIL’P7Ð&l`¸hœYY 4’` ’™$£ê3vÝÃwdL󔔿ýdÿÄÿPÿˆzçÝôÅoýds`ç¶Dšà°ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H˜!Ǭtð×m>­šÄÿÚ{¼PÑzü³Ó¿ãlÿÛ{;-ÉòKÉê½;¿ÓÑjªÈô¬h|ºÇ{OÑÚ?8ÈV ¨—°4¸¸ƒ“šcI®ó—±ÛZá`s\5H»›Ïr U·+h߸¼’ZgA©>ðªÀ¶²í¡í.‰‰¥êÔ^Ý®Ð:DšJBÚí%»‹ôyŸqØ<€|SZókØi%ÌlïÛ<égš;žÆF÷ψ•9±€Ip™$F‰)¦ÆgkÉ@y÷5Ĥ$|‘™KÁ|½ÆZ6»qæLÀ'àˆ.¨˜i10áNAã¶…%1¬80oúGWy©%$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊõ%ü㿪ßÊõS"«ó:8>­¸ø¦—Ûe”®{Úæµµú‘-‰Ý§))º’´» Í>÷Vǹ¶[Ú[;@˜ãò¬¦}`sO­Žç0UK²2šë1Ý“í¯“£‡d”줰OÖKqßoÚ±És¬ý’÷ ÛE7»VW.yõ4l|ÑîúÅ]÷[Žö2§ZÊœ\¨jº¼ghÐKFû[âyÓMRt–K:ù{êhÄxkýkÜàÝžµïÅl5Íw¹›†‚[¯’¬>²½®u¶Qú+›Žì:ƒ¤‘s/»sËâ e_F½û¤§}%‰—õ’Úkµôá9ÁÁ†ÛröÒÌ¢×45Ű×ÁóWzù ÊÂÁ¦Öã;-Ö[ísǤÍû+¥Äžã€RSy%“gRÉÃË·àå½­«Òݶ²I®û­sœÖÇÑ«@£‘Öï³7/’Ê1k¹Op'{«®èô@v¶é)ØIg;¬;f-ŸfulË÷ZðÖ±¥Á¬ìmÜàA‰BëYùXïuXÏ5úUÕcÜÖ }l†c€Æ¸;P750’d–&v~n[1)˵•úÖÖm}U6ùª¦9Ͳ§2v’ÐH×V—Lγ+¥U›fÇXXòïHËks™¹„ÎŽÛ!%7RXôäçž—Ô”-9‡úLc=&‹î©®mn Þa®-÷8§Ëê×S×ëé.>yTúòÑ´<ºíÕÂX6ƒà{¤§]%WªÙ“WLË»~ÓU/²ÐK˜ ƒC]¡˜…Ϭù—Û”Ük+5^ßµtücTÛ›y{ci‹h‰ÜtxIOT’Çè½Füœ»1ì¶ÛExõÛgÚ*e5ö61­a,"}Ѥò¬2òº¥ø•d}™˜µÔòÚÚÇØónù.õèhÛ;ÊJtXÙ[/¢?¨Šß‘eyN¯Ò© ½õ·-Ôl`ýâÁøùÖ?ö}­½™4u ãu`lÜXëØXy†µŽi”é$©õŒ‹±zV^MmµTçÖ`:žÓÏÁVÃêouW9÷NI¡†Ö ®h‰º¶µ }·N))ÕI`?ëCU¸ÔúŒ°4š,s[­£¶ÖŸ¢2ÄùB»—Öj£'Ñ¥ÈxöÛ ÍÔÐØÙbS¤’ÉËêw¿¤Ó—H~=–ä2‡ŠÚ/{G¬i~ÀZC·OjgPÎÇ­ìeÖ¸ŠqžêYëƒvW¢ÿÑ»f€mINâK)–æÛ“‹€Ì«*uÕ[ë­ª¶dM̬0TêÃäûeZé9vfôÚ2¬Ø_`;FXK\ændþk¶ÈIM´’I%)$•³“•‰€ì¼Xu”9¯4–î76vº–j{§Ûæ’›É*'%ù}:Œ»,eŽÈo©5}d1³¯´hgYAë¹Ù]? ¹¸íú67ÕÆÛ.µŽ; kC›;þ¤§E%_§ÙeØ8÷Yk/}µ¶Ç[WógxÝìþNºN¾*¿[ÌÊÀ˜ÀZi±†Ìm»svëƒ!þíÃà’•n›u™ùXËŸs†Ê¿›;ýÐÎð&5×ÅYIJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%0¶¿R§W1¸D¡; …ć N¤ $Ÿ=yF¶ÆÔÂ÷p iÌw„!™IvÝ|Ξã))GåÛ÷7pnÀ!»|yúI›KÜÊê|Qx n€[¦Ó#•'e1 Ë]¹¢\ÈbuT¬¹•ìNý<ÿ8„”ÁøÎqt8$¶Gw¸Î¿ÉNÕ—:›Îâ¡üãÆŠC"²Z5÷q§ò¶~U&¼8;>m0’‘œ}ßœGé šhun؇ö/anýKv÷æý>%íUox,èÝèsÝ1̨ˆw³“§bãçÝ%-ögž\&'SÈ1ô‰ñReo¦C~ø÷Ä47]Æ{%öª “ 5»O‘*~µf·Ø µ“$kôy„”‰˜†°Öµòé’5Ö$iR%1Å·kÀÚâ@ÔhDDƒ*G2‘{è®üâ?y;²êlÈpˆ#NAî5ù¤¦#¦y?~‰Ž3Üéƒy$s¸o/j›²XÝÛšààÒt‚OîóI¹u¸` k¶t'ºJb1ÞÛkv…¬.ãHÜuù”?Ù?ýý'z8ɬ½¬û‰ 1¡‰žþHµºú_ú.þä”ç}aéxUôLëXÂÊ\F¤ëÛ’²ôÅk}aê˜VtLêÙfç>‡¡ç°Ô,—}#ñN‹c—Ú_E’I$æu$’I)I$’JR&Zþ±ÓÚá ÛfŸúr&šÎ¯ÓÜã[f¿úre¹>Iy=_Ù¨ýÏÄÿzÙk pi-Üæ¹Äù¤©þÓûãñI™5>`ðàÓý¯£÷¦4˜6É!Äf9Goåå'â½ûÎàhÚèÚ'Ÿ!•Q˜]1ÙÆå ß“[ 8í$81dÿÒ )‹«¶Í†=3\O2?ï$&à\Kä Aàó¬ø…q$”´1®v’×44ƒ¯wIóÜ¥S=:ÚÙ’§Ä÷*I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^¦æða@8ïê·ò½I%)À<ÿpp!À÷`áŠíÛ?q¦¦}Ì%¿t’SKö/IØ+û%a­¨"AÛéîÜéÛ§<&oDé@ä¹øìµÙ…ÿhuƒqslw¨Y¯ ÝØ+É$¤ ÀÂ`´·Û² —ѼÛ^®$û^âB è½$±Ìû%a¯s^èw2v8¨-Üb8p®¤’šÖtì êì¡c÷nLî`¥Óñ` ø)äábeÒ(Ê©·VÒ×5®ìæýÈ#Å$”ÕwKéίÒv;K!¢ Ì3poºgMÇ¿tÒús­²ãŽÏRÖ†Z@€æ€š40p­$’šß³0 i47Ø÷XѬ½Þ£¶`˵ÕJü,{îeÖ·s«œ76Á¸wÚö7ÀüÑÒIMLŽ•Órm7_Ž×Úè.²\vƒV‘ùº)ŸOªÛeÕm ª»¬e@2“\x+)$¦—ì^’­¬ ¼Í­NñlíÞ7iÝM/§2§R1Øk~ÝÍtº}7²w}®$…i$”Šœj©e¬l–Ýe–¼;_u¤¹ãáªé9­¥Æ¬7§Q@U€5õ·ÉÀ V’IMkú~5îcÎú쩾›,¥ï©áœìÝYlŽÒ:}ž‘¾³}”‚Úîµïu 8î-õ ·#‚UÄ’SQ'¦²ã{qÚ-sýBétoÝênÛ;g»ŽTÙ‹]ͺ¶Ö67ÜwYfÑùÎñøø•a$”ÂêjÈ¥ô^ÁeV´¶Æ;‚ÓÈ*¹é=1Ô wc1Õú®“ï‚ÝÄ“'Úc^Ú+i$¦©é]4×éœjö@nÐ#@+iáè³üÐn=XÛ-­¯{#cœ$ˆslý¦4ü‘IH†.8­µŠÚ[ýV64ÜlÜ<÷JÌl{^_em{È`.#X­Þ£?͸y¢¤’åaâå°3&±kZe³ ƒÆ…¤V1¬kXƆ± ´ :I)I$’JR‹ê®ÂÂö‡¾²5Àîp⤒JaMÐ×6–6¶½Î±Á¢{Îç;NäòÕÖç²Ç4ÔI­Ç–—ÓaI$”Š(ǬUEmª I `†‚â\èÄ’SººÞö=ÍõêÜyi °‘ý—¤’JaMc×éÑ[j®\íŒ%î/qââJšI$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’–sñ$¸ÈQu8’[$™?vßÈ«ý«#c\=ÒAƒÀþ÷—*g) 7ÜvÇvÿ)ÿÉILÎ5Dwts¤Éø'mP[¼‡lÑšD* Èq¢Û4.«pÓƒ×T'ç9„4´à6ž5“#—~h””œãÖgé dNšîÓÃTâ§0þäeÁÒîuÓQBüƒ¨kCKöAýâßÞFcÜls3“ñú?‡))cEDm"G»þŸÒIØõ8AÖdƒ®¤;ò…^ÖÎæ‡~Ö]:”/¶[ÛFÐÝÝùôýH™IIÎ=dC¥ÚêO9«–‚oíNî`Έ_jxCxqðÔ{9Þ”Ýê4°64:ZüRRŽ-3 êN†9‰ü‰Ž%t¹»à@$ˆð… òÜö°\èp26èuà¦v[ÆØ ’âx?¼?*JLh¬´´Î¤:gYh~EâV#t¸±ÅÍ'‘'wàPÆMä8€ÑH:û?yHå=¯ pn®-Òu÷lùxê’’}íx$m$Á×xðÔÊ$÷ 7%æÖ2µåÃÌmž~0‡ö¼ïû„ïóÚ’}dc`纊â°ôÅj}aËÍwFÍc±K긗Ovž -ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹ÓÿåžÿgþÛÜ„‰‚\:ÇO-nãêÙ¤ÿiîñ@ì·'É/'¯’ ú«²·Öáí|îŽLù¦õ.ÿBÎo÷¨6û!ÅìÚÚÐIÁãÁ1¤ÉØÔ¸—<¸=»ü‚G§}-ÇÇÜu¼øý„3¸Ñˆ?áù*#2ÂÖýI·Q«7Æ®ŠJn$ª}®í}£˜hƒ'ß³÷µDûCµaÚ'@=¡ÒDùÂJN’¨s,Ûéò``“£#úÄm%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊõ%ü㿪ßÊõW*ü“–Ì~I)¸’ÎÀÏÈ»ì>¾Ò3°Û‘í¶ÆŠÍŸÙwª!PgÖ;ëÉv>c\e\*{A"ÌJMíyoü%n¬0{¤§ IcÝõ•V\pîu¬m–>¦šý¬®¶dmÕ–óÑYÊë8´=•².{ŸéºÆ5ŽÓÚ÷X@ÜgFòuðIMô–PúÁCšàÊ,}µ¼Ue-,.mŽÈû#}À{œ ‡òGÁEŸX«yÚ1/õXÚ›ú?Ò9ö;ÛNø,l{jS®’Çÿœø¢£c販ôý/P±x´ØÉߺªp÷*~°6ãìÅ´²Ë)ª‚ eÞµ+sšâ6†´j’d–NêŽÎ-Qa©µÖë2Ÿ±­ßeL¼408¸¯lÆš¦Èë˜Øù–a½uŒ­ÖÂ×9Ûà×nJJtRYc¯Uú)¡Å¶·Ôsë}v1ŒõD—1Úûœ4 ýdŸØÜzl¾ÖØÊ«­…’÷=ï¬I.†FǬ$§]%S6ÜŒŒš-Ç4SX’ö¿q±‚Â=œm˜Tÿç%ž+Î;ØskQ[ßXyÞ ¬m'ÝöINºK!ŸXé6ÇQa±õWo  =­u'!þùÛZ¬n©^Ncñ«aÞç5¤‚àEDéD$¦êK;­äјú*õ,¯íšÖâ¶Û,.#wé£GošOZê&ʱ5ÖöTàÉ.·.Ì=Ð]Ã==<{¤§y%Ϭ˜¶YeTÕeÖWcihad¹Î·ìúû½žñûj𝬏·¹ÌǢ˟겪ØÂÏq{žÆÉ.†kYuRS°’¡Òº·í!k…¢ºÅNcžæ¸¸[X·†Ìm˜Uñþ²â]v-&›*~[+±yfàÛ·zDµ®$ÎÃ1Çt”뤱_õ–§ã^qiu™Uï ¨:· mN»sž·@5*ÖoX«§ôús2D¶Æ¼‡5€{7¸îäѪJtYNëõ6Ûq­ÚÃc+°–c궺 Z7H—ZÝOš•]\ÕÓÆfuf±ö›(´6éÝe-sàêÐ l¤§M%„Ï­x÷ãú•cÜ ¦Û^FïKÑ65þøÜÐ1â‰oÖZ1Ø“C«s®¾¶°9Ž%˜ï=ã]I.ÁªJvRYÝg©ÛƒY¯³fFÏRtØÆ²·9ÒDý>þ°UöÓ‡M²Ñ}t¸z•ûYcÝ_¨`˜‚ߢuINªJŽ'W§2ì¬z˜MØ£q¬9Ž.½­××áTõ³ýÍ¡–‡E$dÅ ¸…Ó #c‰’Ô–3zõÏêUS^+‰{«®·—5®;í¶§[É0=?£Ê†/ÖGÝ•Œñh®§—KÇ ]cä»ØÙ¨ý//”î$ªaåÙvEôØØÚ®¬´ƒì¸:KIµÌv£B![IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$Φ9ƒ )x  sN‡àªzY­—¸²à ™öéñçÏÚ$}8ÿ ‡¥þ¼y¤¤þ“7G@$óxNÁÃ@ù[Ô³ìæ½Çíý÷íÝΚýœßU zD´’{}Ãݯº”ÜÑEìkÄ:~D·þ¤„ ªÈ£cÜL‚ö‚töž~p¦×zeÂë µ›ˆ9ŸŽ°’“@MÀ*ÎfSkŠÉ.ý$ï$ÿSý‰žÜ±½À»YÚÅ3«cˆ&tð$}ðuUÏÚv»¤°í™ÐüõS/xeŒ{€¹Åþ˜_äí%'3¦-iZçQÝTwÛ$Ní &Œƒíí2“Æaqmaú€Iq€ÝLs¡ü‰)¹ÁD1‚`rK¼u<ò€ößµîi|¹í$Ã`GÎPëvI Û¹Þâ$ûaÚÈ<û{”Û5°èÕ¦AóˆüŠJ¨7 ëÜ\œààx:8¶ÁGìýSþå³þÛ )ÖOüOõø‡®}ßHüV§Ö:ˆèÙ®~C^ÁC÷€À$i¢ËwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!)c6×u^žÚ^+³Õ|8À~‚îÈ–äù%äö)ƒ¨=Чö~©ÿrÙÿm„«§¨5®\¹Ãhl Ãq‘ÚMÈ ¶2#hª·í {7ÀÄ‘³h/ݺ~JO{ßk]Is™íÕ„èã¿wöRSf‚bÖ™ ètåV­™'gª\ùv×i´‚cäí«²Æúä0¼—W¸ˆ×ó~I)±%V¿[`Æž¡$o˜×dv”Úö¸{·jA°€>;’Si%WnOÒyp-.§B40<\™‡$™d––K^Lƒ mÓãÉIM´•z ž»šâí»Ak^u|« )I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzFY2Ç—5Ìkë%Ž-.cãs ›ä £çýVþWªÙY9-Èf&ü‡ÖûJH`kKX'h'W8$¥ñzf.#Øi ¦¯FŠÜç ­—9Íh +cœZÉÚ>ˆé$¦Ý§äFE~­w8¼ÖI à #lhý¡ÎMÚòŒ:vsž*œæ½ÆN®m®Èiçµ.VIMZúf ns™YnëEå›ß°ZêomeÛZwj`j•=3ƒ5VZž»Y½å²\íÌaqkuyú!ZI% ÆÀÄÄÝöjý=íc\qXÚÍ #A¢ƒ:^,®ÊêØêkm Úç´™;Xö‡CÀ7J´’JsÏ@é¯a ¹¶eŽZÒÀÑ/Ñ»NÝ£HÑ+§aåÒÚ/¬º¶4±¡®{c›±ÍÝ[ší®n„NªÊI)«û+§–zfZÀ÷:Hæ½çvé’æ4ÌÌ„¿ftÿ±A§’ãI’7ú³©™ßîø«I$¦§ìž›6‘ŽÀr ¦è‘¸ÞÛIÞ 䓺OOsšÿLµì²ËZöYcoóæ<|jÞ<•´’S_/§áf–œª……ŸGR;‡AÚDÍq(_±ºo¯öH‹CƒšE–´‡ú£kö·ß®]I%5±ºv-î¿…–=»½å¡¡Åá­cœZÐIö€†Þ‹Ò˜‹[CêÙ!Žx¹Íؼ®¤’šmé5¶››@m¥í³ps„9Ž66=ÚçMJ—ìÌ ÀÆ1Õ†±•ƒ]–VàÊËœÆî­ít÷wV’IH1p¨Å6„z›@ÖVÝ•ÖÀ8kG⎒I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”šGˆN«äbú¯Þ´Ä|øŸ›I )8sIÚ ‡"uK{gná¸v~äÑéXmh/’ïh‰‡1áªo³ns¬:É-wihoo‡ŠJNÂ`8uD§B®’Ç5æ kKIÄÊsEDÉݯòÿ’IM¬„~Áêu8ï |>ï¤~+oë&5°³œ'ÙKÈœu2±ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈJXÔ×UéõY;M¯˜0t¢ãÈ@ì·'É/'±‚›s@.$4$%Sý‘…àÿóÜ¥_NªãL—8´ûÉ-†¸:?Æ“h¹£RàO=¼Riˆ Ïy…]˜nii.kvmH2Oâÿgs]]€ëKCC@éîç‰II÷6vÈÜx¯ÜsOÚáÓcìsà0>$ ‚o´‚BGò Cš6†€CH‚Ù>z¤¤åÍK€$¦ÞÏÞoÞ;ð«Œ(.!À‡#¹``?‚OÅ{ËÃaœèZXÖ˜çÁ%6Kš ðSª¶c<¸8A÷µþš§°U¤”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯Usúks]&×Óº«1íuGkÍVA!¯ü×4U¡ü㿪ßÊô ¬ÏBÆÓ[¶¹´‚àÆµ•Ĺï À’ )Ž?Oôn®Ç\û›EFšÃe¡Îy%£†4 4IÝ?ØwaÞî±Ï×Yµæ×Áþ³°:µyŽk=?L½¯uncý'úvzo¸ ižà§R¯N»ÂÖÙ“f,’i¨Ú ÉðýIJ³¤âØ*cœÿN›sY-‚÷Øn$¸´¸{æ‘¢gtlà?í.®Êí«Õ1êµ—µ–m‘ôŒ)þÖéÞ·×·;hqk„7Z4êî<ÑkÌŶ÷ã×`}µÎö€`F‡ÝdO’šCêçIm¯µ•:ÌF`¸4À5Vw3ûB9Dý‹‡¶ÀçX÷ÚÒ,°¸n.6 ÷èÐÝÛÀ äEÞ ~˜®,±Ö04lÝ5(™]Wsmp 9t8n4¤x\×”ʾ™ŽÌQ‹ºÇ³ÖûAsݹæÏWí]ýu¥Ò1zžÃ{žÇW£]Ylò×þ{^­Qiê¹uæã¼?×5Œ{¥’]`«ó›3¸é¦©bõ, Ýÿd½·ú`9Û$€;L÷§”Ç¥ac’ZÏP’ÓúX|9ޱísdhfÇj¤Ü vŠÀÝ^ü¦kþÃc>_¥vж/Vºú1²-ÅW˜êYNÛE‡ôãp/ˆ 4õ«…öë1Khph¡¬°YcßcÅU³`hÛ¹ÇÇD”‘½º5:Úö9–5Ã{MtŒašFµèd!Yõ{ Yê8lskÆu…´‚h¿šÒíkhf;wVñs]u·ãßQ£#1Ö7vöXXæYµ»‡´ƒ¦„(µÒHº¼ªžÇµts¶ïiÝ¢e%5pº Qwí ¹.·ÔsHÙk«|ns['ôM×h€k“$“ÝPw]é‚n̪²Ð Áv.Ñ1àà~ðÝc]f?¨ß^¯ql»}AL—íÛ;ÑIMä•_Ú?ÒmÂöšÜÖØÒ$’×’ÖÐ7-=»)7? ÷2†\ehl¸m#p;š Du))°’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”‡m̤ù31xQ,©–Fñ1 |Ä$¥›{óXDêDÁò”Ç& ÷0̶dÆš ß‘/@5ÅìqÞf7jÑ1»AÂqC'qúfKœÝ$‘µ%)·5Ï t¸n!#‘@0lh#‘!;*c#lûAhø*rRS‘õ“&ƒÐ³˜Ò_CÀ‚¾ ßHüWAõ”ÐsÜu"‡ÇÍsîúGâÇ/´¾‹$’IÌêI$’R’I$”¤^Ÿÿ,ôïøÛ?öÞä$^Ÿÿ,ôïøÛ?öÞäËr|’òzä’I1¤¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯Uò1o~]y8ö6·Š¬¡åÃt5å¯kšÝ$‡3‰áXÎ;ú­ü¯C¿.ŠÆZí¥í{ç³YXÜ÷¼öhIML.”qr[axs+m¥»[²lɰYs¶ßcv‰ñQÏX–çc6ûr«Æul1e¡òþ\ÀlqÛR¬au<\àÃNñêWê×½¥¥Í5˜¸pÔ|£¨²ç[Û]ºÆ¿)á‚©¥ÎcõÞ]ËO椦…ßVk¾š«³$¸ÒçÒɨ²Ö ß_¤_!§h?OŸ-ì~ŸèfÝ–-Òéý ±ºw?ÜCœ#˜•õœsŒrÝUÕãÃMkG«êÚÅM.—ÈÀy«T\ëk/}6cH,»hvýxšJskú»S,È­ d´ì­¬wëEÎw¨ðK³w·pÑ;~¯‚ãeÙO¶ÂàâíhÓìÀõa÷•¢Ì¬[¾»«±ší{\4ÐêiNrq€y7VzXw·Û?½®œwIM6tjE/y}˜Ïk«º íeà 0¶vöÛ*x2¼€Ëý¸õc iI°‡iÜúŠÑ¾€æ´ÚÀç7{[¸I`üà'Vù¨Ó•‹{ìeWké!¶µŽ,$HÚtIM\~‡‹‹‹C[PÅ}6±i±Ô ¿h»º} ®ö*‡¤ïa955µÚ_[ýZìqhÔ‡ Õh¤’š˜ø.©ùÛq¿'(5¯|l`kƒÊÁvÐ7uÔ•Cêó馯µer[kqkXÜwb†°s{'Ÿ%´’JrÇ@ Tjõ·6`†¥˜Çî ”¿`Ö÷ ‡f®nÑϬ̀Aò,…¨’Jqõcì÷RËÞÃfPË­Ñ"½¥Å´†È– ’³Ò‘MÕØÊ+mBª™é‡³`Üw™op#M5Ñh$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JkÝ•é<²&xö”t Ó·]N¤>tQö·˜ u‘­ ™ ÊJkŒ·šdW!¥Íd™†˜;¼íÈ}[ %­ÝÉÔ¢Šë hÝ̯Å9kLÈD¼S\dÚã kAkLÏç?‚G*ÝÄï,8ðHíÏ Àc€Ðàà˜WXvàÐyt ûÒR ò^ûÒÐ蓯%»ô<"›?Í8ùËòJa­>_$é)ÈúËuŸ°ó[é8Pðd·Aèâ±ôÅtY?ñ?Ô?â¹÷}#ñN‹c—Ú_E’I$æu$’I)I$’JR/Oÿ–zwümŸûor/Oÿ–zwümŸûore¹>Iy=rI$˜ÒRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþWª9ý;íyu=û.­ÔÝé¿cÛeìp=Æêà…x8ïê·ò½ /; ‚Ì›=6™ ‰Ú$ÃX Ñ%4ºwK»Üf=æÊðê½­µÇsžì›E„k¨ z?Eº»ò7úN£)ÙÞÛ.õ6d9î[‰¨¾&•˜ù-¬¸<7yeŒ}nÚIní¶5¦%¥ž§…vAÆ®Ãêî{sÐçVK^Ö=í ylÚJJj~ÏêÖ`7ìš}ls[ñr˜ÇI}.¬ÝQöÁn ?WNNFÔe¶—Yk\ͬ/ôÈpˆq>ïŒ+@ÀJ‡<$§Þ…Ôm­¬95K«²«KšçÇÙU 0ûK¿›‰w’è=Go«³ÚöPG·hʳ$Ù{¿8Á4.Ç`Àê@Щ1Ù;½ ¹Ú$“àS„Ï«—¶¶Voc€­¡öl!Þ£+¶¯`“ >¤ò¯tΛû=×úb«HcknÒ U6—Oh;d#áçãg7~1{›ÁϪÊÁÒÓk»ä¬ÁðIK$¡uÕÑ_©s¶0¶Lò÷7ïs€SqØ%ÀÁ h Ԙ쒔’xØ xðwù®þä·šïîIN%] &œ†[I ÀmÇAeyŒ¾–†=”4ðVz7O»§»ìzêÈ-Ûmì°Ùë¾ ®.Òâg_¥¼x;ü×r[ǃ¿Íw÷$§ ¥õ3ÓÓò›d4c5Î~H{b›+65ž›æîcO$вÛéúA»½Kž\^Dçä kµ³ÜT6@ã…»¼x;ü×r[ǃ¿Íw÷$§5½.æô“ˆÝ¾»ïmÖâAŒ†ÝôòîT®é–ãfU6dd»v×9Îpvu9,þË)c§°[ûǃ¿Íw÷%êšïîIO5Ðzx­¯*¶e¹·×eô:ÐÚ¯kkKýµq/kÏ©3´O Í0»'ì­¯Ö¶Ëæ?÷ðÆ;AÚѰ}Ú­ÍãÁßæ»û’Þ<þk¿¹%8ô «˜ÿѲ¦†Úq±Å„¶—>ÊÀ6º Þf4•Ñ8‚âG¨oÿ5ßÜ–ñàïó]ýÉ)’J;ǃ¿Íw÷%¼x;ü×rJd’Žñàïó]ýÉoÿ5ßÜ’™$£¼x;ü×r[ǃ¿Íw÷$¦I(ïÿ5ßÜ–ñàïó]ýÉ)’J;ǃ¿Íw÷%¼x;ü×rJd’Žñàïó]ýÉoÿ5ßÜ’™$£¼x;ü×r[ǃ¿Íw÷$¦I(ïÿ5ßÜ–ñàïó]ýÉ)’J;ǃ¿Íw÷%¼x;ü×rJd’Žñàïó]ýÉoÿ5ßÜ’™$£¼x;ü×r[ǃ¿Íw÷$¦I(ïÿ5ßÜ–ñàïó]ýÉ)’J;ǃ¿Íw÷%¼x;ü×rJd’Žñàïó]ýÉoÿ5ßÜ’™$£¼x;ü×r[ǃ¿Íw÷$¦I(ïÿ5ßÜ–ñàïó]ýÉ)’J;ǃ¿Íw÷%¼x;ü×rJd’Žñàïó]ýÉoÿ5ßÜ’™$£¼x;ü×r[ǃ¿Íw÷$¥„oõ]ÿ}RQu€€`5ÒKHä·Ä)$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)ÍúÉÿ‰þ¡ÿõ€àw;®ºÚªº§ÓseV×Öð×È ò©Íþƒÿ•Ø¿öË?¹i“N Òíç`ø%Át_ó{ ÿåv/ý²ÏîYw}Wèîëµ–cÔÂqì°0ÖÃXÛe-Új4èçkμ£ÄÉ÷êþ-> Að]üßè?ù]‹ÿm3ÿ"‘ú½Ðˆ tüa=Å,ÿȥį¼WñyØ> Að[¸ßWzdýƒ‚\!Õ0ðâ9!þotü®Åÿ¶YýÉq+ïÕü^v‚.?¶zwümŸûorÝÿ›Ýÿ+±í–r&?Gé8¶¶ül*)¹³¶ÆVÖ¸Hƒ à¤d‰gâ‰;ø·I$Ö$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”©¹ý³U›NÁ‰kKãMÆÚHã¢çe³ üÇ´½˜õº×4@$0n*–?]mþˆÎûSö3lm³@wqÏ> )ÔIUéÙ¯ÎÅ ãËžÐÇ9¯'c‹ –iôG}ŽcH'y‰ìRÔ+‚ îâç"*ìÌkØ^`GqÞyðá» Üö–íØbdÐß”Í$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IL.¦«ê}74>«kØx òή´Xnݯó‡o¸‰ƒôÏp(é$¦SU5Šªhc$4q.%ÎûÉ%IÌkˆ.[¨N’J`i¨»D@ä&â¤$Üdüb?‚t’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµqή¶-{k` nq'…O¨ÿËý7ú™?ùîµc'ùº¿ãëü©)_lÁÿ¹5œ—ÚðîM_ç*êYÌȹûj~%9ub9€8Z¢‘êï/Úa÷nÞ;©·¯b¿%˜µ×k­u‡o³sm{^ñ¾@>“´ú^!%7>×…ÿrjÿ9/µàÿÜš¿ÎT¿çט³}oš½Òàç7é<5²tsí¡ÿ8(ªìšòÙe-Ç{À³o³muWsƒŒý1¼ñ§šJt>Ùƒÿrjÿ9FÜüë}ž»éµÏ-i—Ö—ŒOþrt¸ªl ÚâÈö¥¯mFaä;Üà=…Èy¹ƒ; »)µ¾‘clŠíÃkmf»K‡o”êSkn¦»šm¬kÚ0à'ïS@éÿò~'üE_õ GIJI$’R’I$”¤’I%2Ú.ïM ýá÷îIüü‡äP²Êêa}Ž `åÇA®%3†þðû÷% ýá÷î@ȼ×êÑËš&ÐD<2\ÝyP­f?¯i»œ7³A üès´øL¤¦Ô7÷‡Ü¹(oï¸ÿr­fXk^àÒ[ÚÇXñ íc£Y1»ÁŽÞƼÐà„ºƒÂJa~MT]K‰sòžêë -cí$Ï“VwRÿ”zOþ·ÿm¯@êýfÌ£Km¢¦·í¶²Ëc·=¾b··_oå%; ,÷õÌ:^jÉké¹µz®c€'@Òæ´Nã¢K@>*ëNk«e¾¥6=æ³]¡Íslû†ó2óÙINšJ­ù9u LpÖ2=Pògxs^#´iþ½Û'©ãã^({l{ᤖ@66¦¸’5±Í ~0’›iÀ“±e~×µ½>Ö[šj f×Ã~¬–0¹ÏÙ¿HøN—ð.uøµ\ç2ÇY^âú§Ó$Ž[»Ý”šûÃî?Ü”7÷‡Ü¹2Éê}qÝ?¨ wÔ;ñýA‘'Û{‚¦<~ëö@>0;¤§^ûÃî?Ü”7÷‡Ü¹d³ëO p°»ÕªŸZæ°nú,e–´ÿh|ê>¬bõZ2ò†=5ØXêMìÈ ÜÑa«Û®íH‘§ )½ ýá÷îJûÃî?ܪÕÔ1-Ì·?n]#{èx-w§0,lý&ðåYIH±òkɶú«™Æ·Ñy"vÆY§”<#Cx}Çû–Fþ™Ôÿð÷þˆÇVò.n>=¹ͦ·Xà9!. }É),7÷‡Ü¹(oï¸ÿrÊoQÊǯí=FÜjéôEÏǬ;ÖfòÐÁ.°‡‰;K¶´Jv}`À{«mm¶ÏP´Ƈ5…÷Q½áÛí'Äh’Hoï¸ÿrPßÞqþå—OÖ.›ZÚ –¹ö2¦5'Ô9ö¸íi;éA¨ Ù×ðìÈf;+´¹Öì0ßÑÅo´9ðâ@"·iô¼@INœ7÷‡Ü¹™5?.ìFɲ†V÷˜Ò-/Úù…§uL>¥[ìÅqp¬´8áíÞÃís†£çãX¿òïPÿˆÄü¹ )Ò-\4øÿrhoï¸ÿrOúnø•S?&ìvRÌvÝ“sh¬¿è¶Zç¹î‚CZà:¤¦Ü7÷‡Ü¹(oï¸ÿr£oP"†ueÎØ,©›+Î h‡Øã2á “å úÅ„ñ-«!Ä– ˜+÷Xl{ë˜ÝûÕºK @žS« ýá÷îJûÃî?ܲ³:þ.?«Lå×K­mVmñK²[ƒ\];[&4ó•¦Çnc\ypï )²jnc0õ6¾§\ÐÖ9Œ?9z9h¸OÍf¿ÿTÿá¿óõ IÿKä?"JZûÃî?Ü”7÷‡Ü¹2Ëê]vŽŸvUW>ºÍ8ƒ"€òeï&á·NߣzJua¿¼>ãýÉCx}Çû–E¿Xq†úi‡e×°:6’lª»@‡nöz£<¥[Á꘹îp XÝ _xþô”²IöŸ/¼z[O—Þ?½%,’}§ËïÞ–Óå÷ïIK$ŸiòûÇ÷¥´ù}ãûÒRÉ'Ú|¾ñýém>_xþô”²IöŸ/¼z[O—Þ?½%,’}§ËïÞ–Óå÷ïIK$ŸiòûÇ÷¥´ù}ãûÒRÉ'Ú|¾ñýém>_xþô”²IöŸ/¼z[O—Þ?½%,’}§ËïÞ–Óå÷ïIK$ŸiòûÇ÷¥´ù}ãûÒRÉ'Ú|¾ñýém>_xþô”²IöŸ/¼z[O—Þ?½%,’}§ËïÞ–Óå÷ïIK$ŸiòûÇ÷¥´ù}ãûÒRÉ'Ú|¾ñýém>_xþô”²IöŸ/¼z[O—Þ?½%,’}§ËïÞ–Óå÷ïIK$ŸiòûÇ÷¥´ù}ãûÒRÉ'Ú|¾ñýém>_xþô”²IöŸ/¼z[O—Þ?½%,’}§ËïÞ–Óå÷ïIK$ŸiòûÇ÷¥´ù}ãûÒSG¨ÿËý7ú™?ùî´lÛk®šÜò\ÇGr©€ƒÔ¿ñAÓ©“ÿžëK¨ŠÏÚŸeÝÒûP®c¾ßWø$§*ì,KslËý¥”Ðû›’1¶Rê[kZÖ1ícê&Z"O:¢ãáô<{™}o¼=Žcš7£Ó5£o„ZáóEÝõ;ÿ5Ÿv:[¾§æ³îÇIHY‡Ñ+e¬®Ü†2àÆ½úm¬81G8ù¢ÙOA²·Tö8ÖýòÉt~’¶ÐèÖ~ƒB}ßS¿óY÷c¥»êwþk>ìt”ÄSÑÃñìõo6âÈ®Òïqkˆqkô‡ h죛n }"Ì\g;ckÀ°“ÂÇ'ÍÚ"núÿšÏ»-ßS¿óY÷c¤§G§ÿÉøŸñÔ53vínÈÛlq¡:JRI$’”’I$¥$’I)…™8íyk­c\\5dá¸ëª ò šGåT/wÕ_ZÏ´~Ïõ÷WÔoÝ>íÛµ™ñPÝõ;ÿ5Ÿv:JnÚpì¤RÌ¡CZCƒ«{7KNáû»¡Šzy¨ÕfWª q.u•‡ÿ§%¿IVÝõ;ÿ5Ÿv:[¾§æ³îÇIMÑû8n›šæ½ÁÎc­¥À‡LÜ·TJïícoa 7X ûÉYÛ¾§æ³îÇKwÔïüÖ}Øé)&}ÔÙÔºH®Æ<Œ‹tkÿ´×ø-Kì‘"×V*&Llkœð#ââ¨a;êÙÈoØ>ÃövzŸR#XôýÜ-$”æåô,;í³$zïö¹µ=¡¤¸4ù£æð¾¯×Pªì›üÚßm†ÚÜà¶ÏT±Û÷ ~ Y$”ÖÈÁ«#*Œ§Ùk_ŒI­¬~ÖK´væ÷‘¢Wôì[ò“`vöì–‡×zdº²ö÷ØçÕe$”ÖwOÇvxC{*¤V*sCÙéFÂ×ó"9FǪŒJMq]4³kdèÉSAË8cÿmôþͧ©ëíôù»·””¿ÚñÓ×þ{½fõ>ƒÔw©Ÿ²¬š5Ô·ÐsKœÿðŒq]3)·}NÿÍgÝŽ–ï©ßù¬û±ÒRÔôž“[,iÌsÍí ¼úÌh³hk}Í`KXè‰k¤âXÇãZÊÅuº–V,[Ÿêm ˜§èø mßS¿óY÷c¥»êwþk>ìt”ß©Ý:§½õ¾–¾ÓºÇ‡7s‰ñtÊ'ÚñÓ×þ{½fnúÿšÏ»-ßS¿óY÷c¤¦ÇE{“ÔÞ×ß¶ÎàAÌc÷V.¿Ú_WÚ+o¨ÒÝÛ˜è‘Eûš~aCô±Øq~Íö/w«éz~ýû}¼s*–ï©ßù¬û±ÒSNŸ«]5›YwU¿'•:†ãÙe;[SË]±Žem{`°m‡i M¸) Máî±½Ö´˜ªß´3ˆáè¾§æ³îÇKwÔïüÖ}Øé)..FÄ m7ʬõª­×5Ž‹ “;bÇhJ+¢cÜ.®ó---a¸ÖYS[·÷vZà›wÔïüÖ}ØénúÿšÏ»%6º}=7§Qö|kǤ#c_h~дc⇅evuΠêÜ=MZAäx îúÿšÏ»]éç¤Ùû3ìÛtõ~ÍéÄë½/Ÿ));ò±CÜ Õò=¾?C«bâuJ[C³þÎÖ8<:—U¼=¤=¯{\Zæö-BÝõ;ÿ5Ÿv:[¾§æ³îÇIK~ÊéöÔÆfu+rí¬Ërmm²76ÀÒkkD5Í‘¤¢¿§tW1Œl5† ÞËö½¾›ßk \;žï‘„=ßS¿óY÷c¥»êwþk>ìt”‘ý?£¾ë.~A6_W¡y7Ò7aª_ü­®äB¼ÜœF´4]\ÞÞß5›»êwþk>ìt·}NÿÍgÝŽ’’úµYõНMí|`Ý;H?á¨ðZdã5宺¶¸D‚æ‚4øª<ô#c¿f}“ÕÛïû0«vÙüïKX•^ç}TõŸëþÎõ·SÔoÝ>íÛµ™æRS£ö¼_ôõÿžßïYÙxud]“`ꮥ¹u {+a ·Óôõ¹ßᬨîúÿšÏ»-ßS¿óY÷c¤¦tôÞS¬wÚ7zÅŽ¹¦Ö†¹ì5»~ÑôI5‚cO%.™‡Óºs\[”.¹í u–Zµ®sšÆ7t5 ¼è·}NÿÍgÝŽ–ï©ßù¬û±ÒS§ö¼_ôõÿžßïTs.¦Î­ÒEv5ä[|†¸ûOg‚ï©ßù¬û±ÑðõtäÙÿbûD¿gz‘ǧ¯ )ÑI$’SÿÙ endstream endobj 520 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 521 0 obj<> endobj 522 0 obj<> endobj 523 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 524 0 obj<> endobj 525 0 obj<> endobj 526 0 obj<> endobj 527 0 obj<> endobj 528 0 obj<> endobj 529 0 obj<> endobj 530 0 obj<> endobj 531 0 obj<> endobj 532 0 obj<> endobj 533 0 obj<> endobj 534 0 obj<> endobj 535 0 obj<> endobj 536 0 obj<> endobj 537 0 obj<> endobj 538 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 539 0 obj<>stream H‰ìWËvÇÝã+zÙ“# ûýÈ΢L9Q›p²°µ  ˆ‚M€¦òÉçVW÷Ì€¢-e“d¡£sÄ©šêzܺUÓÐâzvöüR‹ëÃÌ„>%}ì}ª×F)‹¿ÆæœÅíjönfb{í<œ¾=;?±<@UNBáAÅ䬇ånæˆÎ÷xᕚÊ)èýXŒèUèsPº¼3©W†_>]ÌÎ.ŒÐbñn–)È _lg ‡çˆ®l‹åŒžóâ~öƒ¼xÑÍ}äÅ+þ+ž¯vô”åªÃ‘,o»yÄŸ+–Žû*‹.ôQþH ²×ÝëÅ7HÂrCéøÇå×à#Ï8íK&œÄýý}Tïeÿa½Y—ø^~è—ûmqûõHC•Zƒ€ir@Ó%øù=€Úñh¢Kk»ÅOcÖsïú”­sÝ3¦šÉ˜Ï%NøûçšAŠ^tsBâ«£ Á5)‚܈j’;¤+ŸâҪbÕÒEK9czp>Q¡ÑÛžšµ-Í2aÈÀúÖ·‹WâÅöf³ê\ïä¶Srµ;âÙR«4`Ù€¹ï|oä®Áù ø´…ƒÁGá#ŠÎ}(lûûÄ®ŽQAxÔ(t¥ÛÙ³ýòn‹pâìå9èüôÙùìÛ Ý¡-“ôi&´Ó:`´ Vgd {•£ØÎÄ"ƒl“›™Ï}&Eì]pÑ ’Q}ÈIÐUç5ÅÕ9´!û@Ùi7 1*>ñKJ¹HHÀÁ\ÓhÆ‚Àú½š[Þ÷ÑþG)ð‰Ï.ò£èœ Óƒâ£ßþn óyèÖ=úIc‚Áú‹Ÿß˜æ±¦4zrl§ h/«Xƒ°ô×»\üa=8ëñÑôYû²ž¢„¢êm-[Aë‰GtæÆx¶ÈiR%|=å㣓)Käa´›ZÚþS……8‰ Ú9cu}ž_Šßªøòü/Øeß`gü„Oz/´/ů•x;‹ ý÷S,ªbÈár–ðQÊvbÓƒM2½J)@7£)Ïz—‘Ç:R™Â4JUL2Éhžf’1Y†ÐÒ44yð›ÑëQ ^q$6ŠØ[ ™|ɵ)F‹ÔQLÊùôÐ +^çI5Za‘ç8!¢Vøø)P9ÃdZV¦S&Â"¨)­´¢AK'š¨q‘’ 'ëS«Šëc?C(²¡54-\+€¡¹Õ‘«‚¢|¦XCrÄm¤ÈUt¾ŠV,˘bÕøb‘LµÈŽåê_>2Ǵƃ¬ÙÅ‚(²­2î|"ûP4N±Ë8„k'ªìU‹1h'Õ<ødj ¦xÀ×†ë ¶Æ`És„Zcˆ­çXÑŠÖõt-:ÆPåæ?ò¨|…µÉŒkyù€­0‘fs¢¡ÖlfïgÓö¤¡©–žjsîT ÈøìW¿‰ÁÊ´XƒF9²‡`ND—‡Uc«½›Pj©ãÍöJ1:DNÉp ºbšll=Ñö‹7¡Ÿ“~  šãÀþ@5ÓS:™G5 ÃûÈs›bËŠÌŸÞ ”XQ†›‹œ} T»Gwr’.êú³Žùg<ïFwµÝl`W‡ÑÌ¿`õ W>…pb‘j¥ÅAƒ| @ß¼I@Øè1Alªxµ¶ÙMêËø¬Oëϵ8 Ä'¼gÙr>q3Tð'²Q±¨[™éÛ˜G7‰¡Í®î’¨­³Dë*sm%ZV‘*µrÍ» àéî;¢ä{}º› Ü'FrŠ“>°Ì'¸S£…'¸Ñ“º(nó¤å×x4VÇyÖÌ4fbàRu ¥'0âw\Œ˜G¹5bÔp«š‡ÖÊ“iàµQ!è:¡nϤLõPË2œdÒ ƒ2¾ºà­`pÏ)@8FÖÔI|À„aÚFÎE¶°þ´5$×ÉúÄ"»‰ÚSù$‘eL!—I3ù\:©k&Uæzi(Ð; 8ñ‰úYðü>¦<Ý£M'¤iDä Ku&CÝIôMfûv ªM½KfR–@l%s‘Øuæ ‹ºŽ cd˦®ßÉz‡h׃ÜîÚùdQ‘\$Ú îãè;= ÁThI4ª´™Æ*ÝZŽ ‡Ê×(\…*t©®oâô(Ž#Ò4¶Ú×Îz#Ìë¯_žã§×ÙóK-®³§‹ÙÙ"¸räˆ ¾ü¤mèé Žû&6Íb‹ûÿ5~)…þb iq?ûAžï·ÛýNœoöËÎ(ù³øQžÿùO?vO:pMЧƒþ»¯^v¯ß žãx7¡®<ÐR t‹æPƒ_(3/-»è@y¹ï4þ¿oWîÿòxµÞýá d+Åõ+Áñè—ÍòÀ…ñ/Aºâg§X<+ ×Cq ÇùçPªr¿üY\”§ ‘¯þ(º ŸŽoQœ¸Ú½%í³õ¡dsìæ¦÷òv]ŒÞÜWå5,Ÿà}’ÿ"éæêº¼^Á˜X%].IÔ&Ó/½8ɳ¥©)KÙ‹ÅûõAt‹Ÿfs´*‚™sü4£t=€ÏoEPƒ„¥²õö¦›SøMg £íjw¼:®Qëþ†þ\m6ÿ‡»››}ÉC£‰9†9šÞâÝúöpœßïo; ¾É·¥¤ù;øš/“€Kmq2ô³¶$/~Žï ¯ á[=.èÝQ²Q^£ã^V 0¬›S„Cg8 ªÆËÕòH‚¼êàÜÊ7M/Öü°«.Z´z\ð‚0˺š¾% ù9‰N~Oþ|ÁÜšœ »Þౕ£*LÄ #—ÌÜN'Â~µ#&dD¿¿ß³Hl½û-Öbsxõ°u/Ö%y}W;P锥ãE”f >½§­Àþ‚ùcב>µ ‚3XŠTϨÊãŒêÇÊ=Y ¨r¼íæHTË5‰òMg¨ wÔ´$iP>gY{k¾,‹/Ëâ˲øÿ\>š>›¢ÌÍ'ï —ï×ïŽâ»Õ5–ÄêöS;wÈ>¹ÿú`F\ãÀ' Q/.øé±!˲.‰Z©°S®ß‘¸Z¶<#åêö@¢“Oè`¬ÃßÍia^uDÕëÒ3âît€Vë1ËW¦òŠ—9Òî …±<×”—+î³<®ù Bä*ºBþJeÜ„C°ïòä8ä~‡qõ+¿zÃÓVwIñ¼ëè7Š\åíqõaî8zñ×ç_•M¹[ݯnÅU!¬–Ë÷ë#†÷އ­*WàO”‡¾RæÌÄÚÐᔚŸyŸ½[oŽåqÎÍA hô«O1Õeü¸û\mݿɯ–ݶ(ºïWhIf*Îp†Ãì¤1¼( ºhÀŽiK¨lz Éw4Ü{ÎR”í<ÐfÓ-Š£yÝó¸'/äšC¨–•/hY¦ô'ãƒ~µSÌVò—–:‡BO jŠÏ¸|‘ õ$“DÄMÈ€á"8ònê&ÃÃI,Õ`T¯i3òŠŠ “|kçGÆe²Õ¡˜5âmÕÏ>,ú{•Íý¶„¦/ïoEÏ{àÎ᱌¨ó'ÔÜá{áç¦^w8©àëcUJ5 §VDÊ[7"›Ëdsº‰ÙzƒsÉ„@)IÔf„c "\¿~-fRg§ztÝæªt*|Ø'KÐ&@ê°Mœ‘3mnJμÅÚø{GNÚ¯ñ÷I‘gœ»ÁàåX7€’-Ôè‰\Øì±.f7Ìe ß\­8°Ú-8`½¿]À±1` ÐX*E¹–UµCþJ)ùÄÀÿ÷kQ‹³·T“d»iÛÿÛm¬03<Ñ¡Ÿ³¿¿îÿêåÏýnÜ«oåú/^¾É;™ývñN¥oöbÔÌ_œ–Ðç/öçM-ÇýñýyËššÎ¿ÏãQ)=0Ïüçö¹Fœ'‹0Ÿ·Á>e¤¿‚Žò»¡‹þ¹Y^íµyÔƒÏ& ?)QîÏÐLõï¢qƒX ö:g†U›o¬ ƒZ–ò´Ø–Š×]GTºÿ0¢º§¼?Nt=¾¨7Ó$¡¢s‰€ç—ÛOwwýn³|? öáòúç±èYš¯mëú© é|r‘¸Ïƒ|ÐZµÙ*ãŸuÖóùØê¨*’'dsäK¸ÞÕ©ª„¬*ÂkÕh³Œ‹£¨)x>{{.‹Sê;‘Ux\Œèú\:Õ§'ÚÀ¤p»G‘˜k ‹D è!AË8Ð׎¬µ±ß"Ö‹­7HÄw+(°‘ë4²í¥:æUi`J{€"D>|Q5l#Ï;;‚Þ+˜ªÜôÝúrR»›õ掘–Šô=5ä±jÔâ%&t#ˆ‡ìf"=å_® D»„î^Ó$—eKÿ"‹R^.u”ƒ®ö8¾Œ•𓀞^Í)nefëGèˆzÑ@GŠ!–ݵ~Ê+Ü–ërÃ/âYo´ó^`Ó Ä#6[%ƒëœ²û íƒ–âå¤q÷ÌÖÝH³ ûtg¨-v[q2bu%œú~+¾oÕõCr}yßç*²HWÏäò™BŒZ3ÐwuÈÙ¤†ÒEe*«ë“Óc+½n,ö Êm‰†ë£Z‘ÙOjiͨlü¯oé^âùÆ3¤Ð¶°„Eõ¯y¾éd>úFJ·ÓææœGžRºFKû˜é#êT_™oL+ýá´uÃBîÞúlôì2cG™¢ŽM]%kR’;¡°3߸”olêÖš¢isÍ ‡Îµ{IFs¸‘úUVŒ&¸ƒžü÷QæIiG°ÆÀƒ£´3–›+ Á¤ÃPƸƒ9v<Ã××1Ò´Œ4…þä#Qâf•¦ãX„>FÇm†Yò›föêõÙiR±¸Ë ñ…¬O7Ëhƒ.;†ŸÂg¸aPð1O"äxSP´´*éÎôiÐ-ȪjÔÛñò7ˆJ?²KãÓÎêEGŠÇŠóÆ>stream 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5L/zkB58ufPHn9NF0km407S5PqOnxR7+vdOwWWRR3LPRF9hXviofTX5S/l9beRvJlppCgNfy f6Rqk4oedy4HIV/lQURfYYoec/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/z lh/5NCL/ALZlv/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6 MUPzy8l+VL3zX5ig0GxYLe3UVy9uG6NJb20k6p2pzMXGvauLJnn5CfmbN5E83vperM0OialILfUI 5AR9XnU8UmIPTifhf2+QxQX2iCCAQag7gjFDCfzs/wDJUeZ/+YJ/+JDFXg//ADiB/wApnrf/AGzh /wAn0xSX015n8uab5k0C+0PUoxJZ38RikHdT1V1/ykYBl9xih8XeXtS1z8n/AM1il4rE6dMbbUY1 2FxZyUPJQf5kKyJ70xS+nvzi/NKy8rfl4dX0y5SW+1mMRaE6moYzJy9cf5McZ5V8eI74oeEf840f lu3mbzU/mfU0MmlaLIHTn8Qmvj8aA16+n/eN78fHFJfX2KHYqwb81/yysfO2ikIFh1u0UnT7s7V7 mKQ0rwb8Dv41hKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHIPouPJGcRKJsF ln5XfmTqHkjXBMC02kXRC6jZg/aXtIng6dvHph5buu7U7Njqsdcpjkfx0fYGlapp+q6db6jp8y3F ldIJIJk6Mp/UexHbLAbfOsuKWORjIVIIrC1uxV2KuxV2KofUtOstT0+506+hW4sruNobiF91eNxx YH6Dir4X836L5j/Kv8wL2xsbqS3miSQWF6uxls7pGRW8K8SVPg426Ypelf8AOK35afXtTk87alFW 0sGaHSVbo9yRR5adxGpoP8o+K4qX1Nih4P8A85ff8oRo3/bTH/UPJikJp/zil/5K1/8Ato3H/EI8 UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFIfTv5Zf8AktvKf/bG0/8A6hY8UMlxV2Kvhf8AP7/yb/mT/jNF /wBQ8eKQ+6MUPiH/AJxw/wDJz+Xv+jz/AKgZ8WRZ5/zlH+Vf1K8/xzpMP+iXbBNajQbRznZJ6DtJ 0b/K/wBbFAZp/wA4z/mr/iHQv8K6rNy1rR4x9Vkc/FPZrRV+bRbKfah8cVLOPzs/8lR5n/5gn/4k MUPB/wDnED/lM9b/AO2cP+T6YpL6uxQ8J/5yj/LX9MaAnm/Toq6jo6cb8KN5LOtS3/PEkt/qk+GK Q+a7OXzT5uutB8sRSvePbn6lpFsx+GMTSF23/lBapJ6KPAYpfdnkbyfp3lDytYaBYCsdpHSWalDL M28kre7Nv7dMWKfYq7FUk83+bNN8saPJqN6eTfZtrcGjSyU2UfxPYZRqM4xxsuf2d2fk1WUQh8T3 B8w67r2o63q1xql9JyubluTcdlUAUVVHgqgAZz08spGyX1TS6LFgxjHEbBE+VPLOreZtYj02wqCf innNSkUYO7t/AdzksUJZJcIae0NVh0uI5JgeQ7z3Pp7y7oGn6BpMGmWCkQQjd23d3O7Ox7knOixY hCNB8r1eqnnyHJLmfsTLLHGdirsVdirsVQ2p6lZaXp1zqN9KILOziee4mboscYLMfuGKvhjzfrfm X81PP95e2FrLczSrIbCxTcxWdsjOF8K8QWPix26gYpek/wDOK/5mfUNTk8k6lLSz1Bmm0l2OyXNK vFU9pVFR/lDxbFS+p8UPB/8AnL7/AJQjRv8Atpj/AKh5MUhNP+cUv/JWv/20bj/iEeKC8h/5yw/8 mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/AJN/zJ/xmi/6h48Uh90YofEP /OOH/k5/L3/R5/1Az4si+1NV0uw1bTbnTNQhW4sryNobiF9wyOKEYsXxD5r0LzF+UP5mI1lKwksZ Rd6TdsPhntmJADAUrVeUcg+eKX0n5z85aX5x/IDWtf040iubBhNCTVoZlKiSJ/dW+8UPQ4oeTf8A OIH/ACmet/8AbOH/ACfTFJfV2KHhH/OUf5mfofQl8n6dLTUdYTlqDKd47OtOB95iCP8AVB8RikPm yzi80+UbrQvM8cMlk85+u6RcsPhlWGQo21fskihB6qfA4pfdfkPzjp3nHyrY6/YGkd0n76GtWimX aSNv9VvvFD3xYp/irsVfJn5m+eNZv/Nt5FrtrLaXFk5hisSQVhStRxNaNyHxcv2vlTNRm0uTJKyQ +o9jY8GHAPC34tzLvP46dGJ/4htf99v+H9cq/k+XeHbeOH1b+VGleW7PyhaXWhzLdpfKJbi9pRpJ BsysDuvA1Xj2+ebPS4Bjjtz6vmHbmrzZtQfEHDw7CPcP297MsyXTsZ8wfmL5U0DXtO0PUrsRX2pH 4BtwiB2Rpmr8AdvhX+mRMgHO0/Z2bLjlkiPTH7fcybJOC7FXYq7FXzd/zlX+ZnCOPyJpsvxPwuNb dT0XZoYD89pG/wBj74pDJP8AnGH8tf0B5abzRqEXHVtcQfV1YfFFZA1QfOY/Gfbj74qXkf8AzkJ+ X9x5J89R67pAa30zVZDeWUkfw/V7tGDyRqR9mjUdPY0H2cVD6T/KH8xLfz35NttUJVdTg/0fVYBQ cbhAKsB2WQfGvzp2xQ89/wCcvv8AlCNG/wC2mP8AqHkxSE0/5xS/8la//bRuP+IR4oLyH/nLD/ya EX/bMt/+TkuKQ+nfyy/8lt5T/wC2Np//AFCx4oZLirsVfC/5/f8Ak3/Mn/GaL/qHjxSH3Rih8Q/8 44f+Tn8vf9Hn/UDPiyL7exYvOfzx/K+Lz35SdLZFGvaaGn0uU9WNPjgJ8JQPoahxV8leWPPWqeXN D8yeWZ0dtP1u2e3ntm2aG6T7EgVqUO3Bx4f6oxS9N/5xA/5TPW/+2cP+T6YqX0z5q8y6Z5Z8vX2u 6m/CzsYjI4H2nboka/5TsQo9zih8Y+VtI1z84PzVaS+Yhb2Y3eqSrUrBaRkDgp7fDxjT3IxS+n/z e/K2w81/l8dG063SG90iMSaEiDiEaFOIgFP2XQcfnQ9sUPAv+cbfzIfyr5sfy3qrmHSdZkEZEnwi C9HwozcqcedPTb34+GKS+v5JI4o2kkYJGgLO7EBQoFSST0AxQk2medvKGqXosdO1i0urtgzRwxSo zSKv2mjof3gFdytcVYn+cX5U2/nLS/rtiqxeYrJD9Wk6CdBU+g59/wBlj0PsTkJR6h3XY/ap00+G X93Ln5eb5Mubae2uJba4jaKeFjHLE4oyspoykeIOQfQYyEhY5Fn35Q/mndeStW9C6LS6BeuPrsA3 MbdPXjHio6j9oe9MINOp7X7LGphY/vI8v1PoX8wvzT0Pyr5Yi1SCWO9utRjro8CNVZqgH1CR/ute QJP0d8kZdzx3Z/ZeTUZTAjhEfq8vL3vkTWNX1HWNTudT1KZri9unMk0rdyewHYDoAOgyD6Jhwxxw EIioh9BfkN+b31+KHynr8/8Ap0ShNLvJD/fIOkLsT/eKPs/zDbr1lE1s8h272RwE5sY9P8Q7vP3P cMseWdirGvzF872Hkryjfa9d0ZoV4WcB/wB3XD1EUe3id28FBOKvkf8AKfydqX5n/mS91q7NcWaS nUdduG6MC1RF/wA9W+EDstadMUvtyONI0WONQiIAqIooABsAAMUMW/M7yJZ+d/J17oc/Fbhl9XT5 2/3Vcxg+m/yNeLf5JOKvk78m/Pd9+W/5gva6ur2+n3EhsNctn29JlYqspHjC/X/JrikvYv8AnLxl fyNojoQytqQKsNwQbeShBxUJr/zil/5K1/8Ato3H/EI8UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFITPy3 /wA5W6honl3S9FTy5FOumWcFms5umUuLeJYwxX0jTlxrSuK0mX/Q42pf9SvD/wBJbf8AVLFaZt+U X/OQV55+81voU2ix6ei2slz66TtKaxsi8eJROvPxxRT5+/P7/wAm/wCZP+M0X/UPHikPujFD4h/5 xw/8nP5e/wCjz/qBnxZF9vYsXYq+Wf8AnKL8q/0ff/440mGlleuE1mNekdw2yTU/ll6N/lf62KQh /wDnED/lM9b/AO2cP+T6YqVv/OUn5mfpfXE8nabLXTtIfnqLKdpLylOB8RCDT/WJ8MVD13/nHn8t f8H+TEvL6LjrutBbm8qPiiipWGD24qeTf5RI7DFD1PFXyN/zk/8AludB8zJ5r06PjpmtufrQXpFe gcm/5HAFx7hvbFIZ15T/ADMg86fldYRa1KXfSNRsLfzYCa+pYep8M8oH+6nYKJq7UD12xQUvlt9b ttP5X7zwT3VtcP5UXndTG51T9IBbSgkZkglgCpwESDnE7b8VbCr6PwK8383f8qM/T1z/AIl/R36a +H616vL1Psjjz4bV40yo8N/2u60n5/wx4XHwdEn/AOsaP+1X/wAlMHp8/tcn/XT+mrXH/QuvpW/1 j9H+l6Z+qep63H0+bV9Ou3Hny6d64+j8Wwj/AClZrivry+1R/wCsaP8AtV/8lMfT5/az/wBdP6ap a/8AQuP1mH6r+jvrXNfQ9L1vU9Svw8OO/KvSmPp8/tYy/lKjfHXweuZc887FWH/mR/yrP6lZ/wCP fqv1P1G+pfXOXD1ePxU47cuPjirX5b/8qw+p3v8AgL6l9X9RPr31L+fieHOvxdK0+nFWY4q7FXlX m/8A6F2/xHe/4n/RP6d5L9e9avqcuApz47V40xVO/Nf/ACqT/CWkf4m+p/4a/d/of61z9KnpH0vT r8X910r2xVNfy/8A8CfoE/4J+rfob13r9Ur6frUXn170pirHPzB/5Ub+nl/xv+jv0z6CcfrnL1PQ q3Dp2ryxVjX/AFij/wBqX/h8Vd/1ij/2pf8Ah8VZL+X3/Kjf083+CP0d+mfQfl9T5ep6FV59e1eO KoLzd/0Lv/iO9/xP+i/09yX699Y5ery4Lx5U/wAimKvVcVeW+Sv+hfP8TWf+Ev0Z/iD959S+rcvV /un9TjX/AIq5V9sVepYq7FUs8zf4f/QF/wD4i9H9Cek31/6zT0vS78q/51xViX5c/wDKmP0ndf4D +ofpD0P9K+pcuXo8x9qvblTFWPr/ANCy/pkf8cj9K/Wf2+fP6x6n7XL9rn1rhV7BgV2KpB55/wAG f4cn/wAY/Vv0Fzj9b65/d8+Y9P3ry8MVYx5B/wCVIfpK6/wX+j/rv1Zvrv1XnT6tyHL1eXw8K064 qmXlj/lUP6ZH+G/0P+luL+j9T9D1OG3P0OP7HTl6e3jir//Z uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 541 0 obj<> endobj 542 0 obj<> endobj 543 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 544 0 obj<> endobj 545 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>> endobj 546 0 obj<>stream H‰”WÛrÛF}çWÌ#°@˜û`ßl9r9U^'1wóàÊMÁ³©P´åüýžžîÁÅ+'ŽU.Î4¦oçt7Zݬ.^¾ÕêæaeB›’Š>¶>¨®Õ¦ë,~íû^†Õ‡•‰å±ót`ùôâò!¨í„±ë“ê°èbrV«‡íaår¶…ÜwNiZd%x¦G¡íC§ó3“ÚÎðÃçëÕÅ•QZ­?¬z2¨zåó ¨¯ïV”xéØz‹íúqUYW¯ƒže½1*üq$Ƶ¡«õ VÖž”ßUuèZ_µŸwûÝ¡n<ÖŸÛíñ®þuýÃêû5ò‡()ƒÂÑä£K0ñõx]4m—–1w9ZŠ›"~W]½ª]««7ùG½XØj¨W6çãI} ­ÎQŒyQèÑZÕèÖ˜1+Ùö¿ë&¶®zY›JǺAè•WÏîOu£份Ò=‹¿S¦ã•îJÆÁ©mAXtžrëÚÞS-LÜúñxÁ³G©$HÑ£ -H vmX¬uÉ+f—·D­6÷ü{ø÷¤ì?)a·:…8#e-Æà,{IPƒmnÛà56§ Ï;²ìªÃ ?Uç[9¦.¼: °ßQÑ;µò(‰B땪1€òþåêÀßéÖ$jÚÞ)¨ª´ýÅ‹ãöãÝp8«‹×—Ö¨ç/.W?͈è-þQçu¶§ÔNë”é@#jäA{4,ê´FÝ­ˆ \c°m@ï!¡fv ‰GK›Qk€º6ô©£RGy9¯É·îƒ”À×ÝøÔšÔÏÝÌ$O¹ùzf£ïÛÐù¿ëE´¾=™'Ü€)£n&ÉSnþ$mвqDýNlÚ}›zÿ7x(F%¬™ÑY bt¨¶Ñø<ï5j•~½ëÙ¦±ß‹K6QÉ!Ùü0‰Âò:!57ž!IhCìêlæÊ#g8š% ;6- }õÈ#e ,&³8ãZãB¢aÇÏ}áL¤vã‘—Âå[õµìß^þ ³çÌŒß0´L¯•îÔkõî×N]Ã"¦±µ \D2Æñ²„¸õâ”HfÑ‚ÿ¤Ä»¶ë3zֵƧ'%SFÞbÐF7÷V$ó˜ ÃEL¶GY¦ÈSûl]$Xvö)É7´|.ØQ_] ¹Ú,Ç]$³3¡µÑ?%™åö;ÏKGšx€Uš˜˜ÝÖ¹ h´b²z¼7BŠóì¼nuðózu oÿ8ÏÅEœYd‡Ësi^C8ƒBYęڹŒ¾ÆzE2ɰ *öÓ Ü¾ç½èz¿ØÛ0jˆÄ89¡%’œ‘¹Ò6"£Ñ !q íóù¾OTz§%ùèú/$6×3]ÿÝ §$E ÓË?%`¼T\Çuʇ(Î;–än²ø¥ò‚2u¢Éû¨ÙM™mÖ —*ILòùÃŒ½æìŒÎ{ ‹B¸e¯Z3Ž&°®çÄGѸ—š²nq"H¶ÅB')¥E½ ÏQFÜÃÝ"šbf–)&ž™#}ô#V¬a ÛH™]ì…9º”Ž[úDA$†=XiVOP!‰‚‘™âSRSŒ.¿a¦,ÀiëI*.ΛqÀÜ´s¤°ÿbJáÝbYƒ±Æ>˜¼g æk:Á|N˜ñɇ[£(5S¢,U5åáÇîæLK]$JåNXáC&£‰½óØÓ¶°Q$BWÑ/l.{ƒ¬)³2H·X™1‘Óp…Ž^‚LDI*ñõß—ƒ@[Z'0¼À\™]ÏP›Ž ß8>A7æ99´/o©~q"via!¹ø…>¥Y(2= 5¨Ã, ªÚYŽQ®6ì Q6ˆ‚ØlÏöñ6U§ýÔ',3ZN¦"Jk:R¡(pèݤÆÑÛ>Î2@ï{[z]F’ëÕ„ÆKiÇþilË`ïäÂ(/F™®nÆï¥Iœ^œ`&‹…Âõä£TC‰¢TK‰²TÓ”F©·’¨”£ PÊuD % °E™åÆúÌe?o‘"aªŠ…Bå²#¶¸i}ÿúrõÓêâå[­nVÏ×+D>:Å+\;#¾£@Ðúß7ø‚êP˜ëíª¡-Wïªk\öûj¨ñS>Ôø¼1Õñt·9lõæþ¼;Ôæp­^lÎõcí:z^ÃFªNuƒ/¦Tk@U)1µaS›»á<œj—xõPÿºþauqå¼~Xõ%Ò¼ I‹ÎÇ4É‘"6ðXÂD9ÌõíîAÕM€)4DµeµŽûpP÷²>~Ú]×¾øðýPƒL¤U:N áT>sMyÝOgÖØPàY‹¢G©ÀcƒO5> Cê|;¨í±ø&$|ÕJ‚–Ôt_`.òJwF™ˆe†“ÄuIæ•¥«Ÿ‡Íµz}¼êõo†•á_1c VF VÏê^Oˆd4˜ùÕn/‹÷{€pØÿQ7ˆ9…êËê¶nL±¿çgÇíÕÏÏꯎêµBÞ×$7Õ®6™Ql˜×Õi÷þ#×@,Ã`ŒCawjý"ÇhG>©ºsŒ×ä æQà°ŽõÕ««75º»9'ªBÂÝ_©þÝÛóp“­z›Õ>Ö®ºqxŠ$d£ÞÜíÁ©ÎMލ)!IƒE L Gµ;¨+Îò ,VWo§ÁBíÊn€úPÀÛæ›I•<Úš æ?5õ±¡<á͆D¯Þ(*O¬¸êηjVxÔÄv#¨Â@dj¿É6‡šŽ¶;ñHbŠ|§Fí± äÈùöø1«Ò©lŽL¨Yn”œº§ñ «IEâO7¢4‹{8ɦ-5õ-Lé¨éÓ³ ê—Óã]uµ#³™°æ—ÚjÒ¨öŠh«å¼Ýï›õíéøñæöÛØôš>G‹×©aú9—4ã™K/\Âaæ&6íÈ&!­3Ð*c«”±Ê¯ ±€ü?¶«¦Gm Þó+|Lª %vbÇ{Ý©§U[$öš²@‘ ,ýíîÌ{NXUå„íg?û}ÌL,‘lóªñBȹ€¾i …Yë@Ì÷òSTÞ®—YAfApÈÍñ$èR)r;ÉØ¾ßJ¥ŸPGuª¸î¥…tÜ›îr- µZȲ`Ê5oåx‹±%N$V§`moýš Úö×_EU±¤´|€r›TO0üE À\Ö} Ú¡˜ï¯ŒÓ+‰ÿFò<™ûÈë3ëüµÄqóî ÄyP2ÓÉ%Ãíþ^É”ö¨ 1ü) Ë‘ásŠ–Ô3x•8£± «€ÖàQ4®ò?æ­Û1µuÈ'£±H¿1ô=Ü „÷Æ.˜” |ÀÑ­âJ5Ê;ÅØ'by)¿Á%ž:PþX1+ÜoØ¥µŽ¯j‚òâ[Jtа¡®A«Ñ-íƃãB‹(ÎQÆ6õPûߪѼµqs;r6®.®Ú1‹>•ÇB‹{¯¨°£Þ¸{ÅB(48.u`“S«N8Mó¾îq“ÐsóÔjÔy–x¢Â ù;±Wî{-•Iœí3 @+Ù‹ABT^2ÉG'>Fˆò%úh¿¯h5¹ùçevΚÈ/B&øVG†v…Ôša“­>˜^R 䫌R@ÖQ r‡½­Xm!ƒÏjâCÃ#’Iy·Yá s&óUŒµæÇ…8C—F|tb÷<âW=Ù I1ëcöñËÑšO'xøšý`xdqñ endstream endobj 547 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀ„"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?Ûé];êØé̪ší³ ¬‡MU[°LVwe©t^N©N%·Sc}5‡fæ+i½*êѺf>F;.8´RZ^`µí`üÒÝFêyC/É…•[w0ˆÐ)€ÛEß@1¿ «þ ²xà{yOºôÿÍWõ<åI¬«`wѯ/£÷§ô©ñ'ûƒÿGà®^?ê°Ô¼Qî¢?˜§‰“UyöñàŸuè)¿š®ê~‘ðSôêýçs2XéŸÞú<ø&ô©ñpÓ³_ß·Ñä÷)^?ꪥâÇuè)çU}»oÞRßGú æ«úŸ¢½*|O‡Ð||> ý*¼O=Øï¼û~à•ãþª½^(÷Qþ‚ž95Wß¹öýÁ>ê?ÐSáüÕsðú<þE?JŸxýOÇèòSzTøž8 Ü=¿yJñU^¯;¨ÿAO< «íØ{xñ)·Ñþ‚ô«ÑáÒ§ÄžßAñÿSÀKÒªy<Ì–;ï>ß¹+ÅýUz¼Xn£ý?öÕù|’ÝGú |?š¯îú<ø©zTø»ü×ÏýO%/JŸá_÷}¼_ÕUKÅŽú?ÐQãüÕqÿSÀñM¾ôüMUýÿGîDô©ñ?æ?ÿ#ÀðKÒ«ÅÞ3±ßÑå+Åý_Á¯¨ÿAO‡óUÏýO)n£ý<ð*¯îß¼©zTø»ü×ýßGï)zTøŸ øø}¼_ÕUKÅŽú?ÐQãüÕqÿSÂ[èÿAOΪþÿ£÷?JŸþc¾ÿ£÷&ô©ñwùŽÿÈòâþ¯àª—‹Ô §Ãùªþï£Ê[èÿAOýµ_þGñRô©ñ?æ¿îú?zJŸþcÿò<%x¿ªª—Š=ô §þÚ¯ïú<'ÝGú íªÿò<©úTøŸŽÇýÿE7¥O‰ÿ5ÿùR¼_ÕüRñcºôÿÛUýßE-ô §þÚ¯ÿ#—¥O‰ÿ1ÿwÑá/JŸþcÿò)^/ꪧâÇ}è)ÿ¶«ûþŠ[¨ÿAOýµ_þG•/JŸþc¿ò<¥éSâÍþE+Åý_ÁU?;èÿAOýµ_þE6ú?ÐSÿmWÿ‘áOÒ§Äÿ˜ÿü zTøŸó÷ý¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ5ÿùRô©ñ?æ¿ÿ"•âþªª~,wÑþ‚Ÿûj¿üŠmô §þÚ¯ÿ"§éSâÌþE/JŸþc¿ò)^/êþ ©ø±ÝGú íªÿò)o£ý?öÕù/JŸþcÿò)zTøŸóÿ‘JñUU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÌþE/JŸþcÿò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸþkÿò)zTøŸóÿ‘FñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTøŸóÿ‘KÒ§Äÿ˜ÿüŠW‹ú¿‚ª~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÒ§Äÿ˜ÿüŠ^•>'üÇÿäR¼_ÕüSñc¾ôÿÛUÿäRßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"•âþ¯àªŸ‹ô §þÚ¯ÿ"–ú?ÐSÿmWÿ‘Rô©ñ?æ?ÿ"—¥O‰ÿ1ÿù¯õTüXo£ý?öÕù·Ñþ‚Ÿûj¿üŠŸ¥O‰ÿ1ÿù½*|OùÿÈ¥x¿«ø*§âÃ}è)ÿ¶«ÿÈ«Ÿ³€u {1ü‘[ª¯còÛ~ØÊÉU½*|OùÿÈ­õ[^ÅÏ4`¶‘^<ٱƑôˆÙ»àSg(iÃÁãt%Öп¦\*Ç{0Ùk²XmkŽ Ú §‘Â>7Ú,{+Ç¡¾“Kísë­c[Ëžç7Ei½A‡¬Kªß]L¨ ®±Ž/¥öØáYÓô¼GiQfp9—ä°\:€pȨ5ìç Çm$m- ¢bˆu­’AÓR×û8sžÚqèÈ´9XЋšÍv%Íkì†Ú@¬œvˆæ†û5‘ª¿ûd†ÚÚém-¦X+溶:²òãŽD»v°Ðž®´úìcÅ`†>—mw¨FÚqÝz¼»ËÍ1û°ûB¸|KCìwû‡ìñú7?õvû\xÙ¡*_³òv=ÿ`lVæ±ãÐd‡?è»'Ugö›]±–Ôm¥·¶ã[ˈ"º,a ¥3ô{wEo[‡zKio/éUf<´¶%–vˆ:ù$r݇ÚÃâ\çaÜÒðìƒSwÙ8íö´þs½š 7Ñþ‚Ÿûj¿üŠ¿nx~éìg§Œ]lcœËs·;ÓníÄÄhTý*|OùÿȧÆXÍñŽÛ ‰t²Ã}è)ÿ¶«ÿȧßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"x¿«ø"§âÃ}è)ÿ¶«ÿȧßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"•âþ¯àªŸ‹ô §þÚ¯ÿ"–ú?ÐSÿmWÿ‘Rô©ñ?æ?ÿ"—¥O‰ÿ1ÿù¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ1ÿù½*|OùÿÈ¥x¿«ø*§âÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½*|OùÿÈ¥éSâÌþE+Åý_ÁU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÌþE/JŸþcÿò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸþcÿò)zTøŸóÿ‘BñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTøŸóÿ‘KÒ§Äÿ˜ÿüŠW‹úª©ø±ßGú íªÿò)·Ñþ‚Ÿûj¿üŠŸ¥O‰ÿ1ßù½*|OùÿÈ¥x¿«ø*§âÇuè)ÿ¶«ÿÈò–ú?ÐSÿmWÿ‘Rô©ñ?æ¿ÿ"—¥O‰ÿ1ÿù¼_ÕUOÅŽú?ÐSÿmWÿ‘Kuè)ÿ¶«ÿÈ©úTøŸó÷ýÞ•>.ÿ5ÿù¯õUSñcºôÿÛUýßE-ô £þÚ¯ÿ#—¥O‰ÿ1ÿwÑKÒ§Äÿ˜ÿüŠW‹úª©ø±ßGú íªþÿ¢–ê?ÐSÿmWÿ‘åOÒ§Äÿ˜ÿ¿èò›Ò§ÄÿšÿüŠW‹úª©ø±ßGú íªþú?ÐQÿmWÿ‘áKÒ§Äÿ˜ÿü ý*|OùŽûþŠW‹úª©x°ÝGú íªÿò?‚[¨ÿAO‡óUýßG•/JŸšïü)zTøŸó_÷}½+ÅýUz¼Xï£ý?öÕù<Óo£ý?J¿¿èð§éSâÌþG€ŸÒ§Äüv;ïú)^/ꪥâÃuè)ÿ¶«Ÿúž|’ÝGú ~ªþáíûÔ½*|]þkÿò<”½*|O„mÝôxBñU5/;èÿAGóUÇýO6ú?ÐSÇ&ªþóíû‚'¥O‰ÿ1ÿÑû‚^•^.ñúŸÑå+ÅýTT¼Xn£ý>ÍW?õ<”·Qþ‚žxWÛ°öýåKÒ§ÄñÀkþáíûÊ^•>'Ãè>?êx ^/ꦥâÃ}è(ñŸJ¸øýî£ý?:«ïßèóàý*¼O<–;ï>ß¹/JŸìºêy)^/ꪥâÃuè)ðJ¹ø}|RÝGú æ«úžŠ—¥O‰â 5ÿpöñâŸÒ§ÄŸì>?êx ^/ꪥâuüÅ ½*|\4ì×÷ì=¼žå+ÇýUT¼Xî£þãÓϪûvß¼¥¾ôÿÍWõ?D)úTøŸ øø}ôªñ<òXîÝÏ··`•ãþª½^(ŸèÝú~‰×Ò¬väû~åÚôîƒÑ¯ÆkíÄ¡¡¬Hª¡Ëé%Ì>+Ž{*ôÝÒAcɘþ¯%v´»à \ŠÛ‘U̬½…ÅZÖètñj‡7 áᯢüw­²Éú½Ñ)ÇuÕâÐòÒѪHÔùµO+êî57dâW¾ð\Ö²ŠÈϼé*ínçØx´·§¸=Ä<»PA˜"5OízuÔöoô˜ke®®ZèvÇ0¡¯í;z?Hc({0¨ý>àCª©ÑµÁ²­ªVôŸ«•g3Ø`ßdz`QIeÀú\65V²2+Èô 6–ÑôDîž<œ'~N—ý¡ø•ºék½Bÿt²vë·´¥^ p¿ct¿ùñû?ì´ú³÷Ç¥_>¬ÌlÛ=¦8IYõ]ÿ=imö~ÏÙ¶NÝÞ¬mß1ªHQK»›f%¸›€4d\(¶Âè,u€úGRãiøªõõÚ}1m²Àu5Öç½¶>æÔ@þS*ݵRêøc©á¿ ejíakw8Áik¥¥¥¤J­gCÄÈ«ÓÍÈ7 [SšÆ01¸ûý1±ÂÆ»ùǸ %̓õ—¥Œ‡:CÜ!¯ú5Õö‡;Ž fZ{öZ[ßûÇïYt.už¥ ½áÔ?ví°ì`6††È86Zžµ¼S=ïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐŽE†›xêa?¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ”Ÿ?^Ÿßz^½?¾>ô”’OŠR|Pýz|}ézôþøûÒRI>)IñCõéýñ÷¥ëÓûãïII$ø”ýz|}é$¦µÝ]µÛè×UÙzÇW^Ù. ‚HöØ|S¿«ÐÌ·?{XéÌ‹}OCÓ2í“ê{gtyÂݼŒŸV÷n¯í'$Ö74ëŽÜ`ÝÌp<Èö`2¾Ÿöhe@¶›X_Iné{\ÀuÜ'çªJgGPomí³ÆK½<‡1®,hiuÙcÁ`ÝÎ…æãŠÃÁ -õ!Î%­iÉ €°nè9Mõ€+ûC…í«x¦¬C_é*o¨\}ï­“=•œŸ«Ud6àïOuÃ,‡Á‡åZËZÿ‹!%:Tõ,[ª²Ñ{XÚöݽá»6=Õ’ý} –%J¬ÊîºÊkyq©•Ø\ ´¶ÝÛ H:ý²ÇAÈYh²ákí :_’3?O®º´7NÊßKénÀ6ðócÒ ×Z÷G:Mº|Ss¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ«çõ :vÙ¹VútPÒç¹Æ€3 G‚ƒ›ˆÜÌsCœêýÌ{^Í»ƒ«{liÚæòÞá%9ßW>²Ž½U¶²‡c6°ÂÒmeÁÁåâA¤ °‚ ±O]Ç»8ôæ²ñ–×8[Qdzloѹÿ0‚gÃCÀéÔà‹K ²Ü‹ ·Þö°=î?½é±‚mêè:œ±›]N{ßc²78ØýâÛ>æq :’–Î'öïKÿ‹ÉÿÏu«òU ïùw¥ÿÅäÿçºÕô”©)IIEöVÂÐ÷›µ€˜—A0>A%2’”ùªŽê5; ãÐ×^k1{˜=µù9ÜO’Ú] qkC¡Ö€v–ÉŽu×IPæÏ T$@24ˆž€^öÈ1Hôñt$¥%gÝÔÝUÕÑ]@›+}¡Ö?Ó•À%Ú™A¯¯:ça²¼rÇå¶ËÛIŒ¯MþÐwíSˆ’.”0ä"ÀÓ}Çð.´”¤¨R÷½»¶щüw) ÆU%))$’•%))$’•%))$’•%))$’•%)+;ª}bè}"ÖUÔó‹e­ß[^e³íiî£õ› u!yÁͯ bÖm¼´;ØÁËŽæ„”éÉJJË»ë?A§¤Ž²üÆ~Ïy-®àïp‘±ÄûOeo§çÓÔ1†U µ•¸õº§éßcÀ0gB’›2R’’¶ÕMo¶ç¶º«ϱä5­hä¹Ç@S))IXGëßÔðH=V™ï‹n»mm¶·×`cÚd¸H ø’™IJJI$¥IJJI$¥IJJI$¥IJJf¹®šCàƒ#ðN’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%$’INIénÍéÔåݘ,¸9Î ±¢æÀ™ì¿Ø ÿ¹ùßöë?ô’ŸÕÏùú¯ÿÏZ))Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ì Æ¿oÍ1ØØÏý$µIM ÐÞ½ÓÑW’ÿ­Ö³>·X÷[ѰØ÷Wëç¶ËK4>–;uœ|Ôê?òÿMþ¦Oþ{­VêÝ'73©àgbÛMc ·5͹®xý0 ÜÖµÍÖ””åYõ›ªýŽŒ†ŠÛoUk%ºQëÜÊh6Ζ¸¸ùˆ[©ž¦üVd:ö`ý²ààÖ‚ñMuí£ý5®?%yŸWÛÓ*ô} :®5¬ÚúFÐXk;èe[ÜÆL{ý«K ô¿ÙÝ6š®c>Ôw¾÷4Oºç›^Ð㩘óHn˜$]»£éŽÄ¯¥âãÕfç»Xæ°‡sw=îu%为‡naµ ìpvžv‘ÏÍ]§EL¨8˃'Î3ús3›XsÝ_¦é‘¯–ªœ®,“âýíõùô—Û£0Ì8ÉÔ ³©½Úc¦äßÖ/ÉÈ•Òʨ.Ö·KŸìž8å¬|Ëz«ó¡µT1¶½¤»G¹ÌÔ ®ÒšJphØVºþkNiß(†ÛíY¡À{ŒŸ„é$ƒ’I$”¤’I%)$’IJI$’SÂ}o{™õÿêû›ŠsÈ¢ÈÅnÉóº~”†iΫ¡nEŸ²ú㥑mXöŠø­îÿ\!¤på,ÿ«•æýbéÝxÞXþšÇ1´‚»~¥Û„}?§—Ž2±/Å.Ú2*}EÀLoidÇ”¤§ÊºÞ^gQÿ3&ïÒ»¨=¯ cÒfà×mcZhooW]Ôz—Z»ëN'ÕL,çcб†FoP5±×Ù¸ v4Ÿê§·ê}ZÁè5á˜9$dzb\IyÚY¿O§â´zÇÕ–õ©GYÃ˳¦õ))¥õS¬õKº§Uè=VÖådt§7f[X+õïßhÓw*ã.ÇXz'L¶ÓONÏÌ Íx06´Öçx{‰ùy-ï«ÿVèè®ÊÈvE™¹ùïõ2ó.€çÀhEºñ%Yë}§õÞžþŸÔ_SŽæ¹º==ŽƒJJsºÝŸV>¯`6¼Î•=?ikÍ8­²¶ ‹\cnâí$ê²:çÖÏC©ôž‘ÓïwLéÙ8¬Ê³&º}[[K5WUme±£ ûQïú…Ô²°fe}cË¿§˜¡õµÄµ®{žN‘ʻվ¤âgŸn.]ØÝ*¶S‹™VÒý•€°{w}ã’’œvýhëŽú•Ös]c››Ó®mX¹¦°Ãeeõ†Øk{$´™öªöõï­øý]ê™™Õ[WU}UY‚ÚZ±á¿¤}¿H½Áóí€ ér>¬åæô ÎÔzµÙ¯Ì-ýnÊÚ ×5á­cHýß¡õ>¬ì„rX莩Ìx`&ÏI¬l¸m¾i)Âë[sìëÝ[§Ñœþ›OKaf+j Üëò#Ak…V†²G’~µõ«ë~¬t£Žá…ŸŸ’)Éc˜6º ™®i-k‹gMVÏRú›ëõ«:çJêWôŒÜ†íÉ4µ¯côvºé¬ÏŠ'Vú¨þ­Óúv&gP¶Ûºuã!ÙOc\û\;8Ðß.RS¯•™ÒpqéêiÌ˾ëââµùn3]8õ;xnÎ$ƒ#À®{¯už£Ñ~¶ôüÜ‹\î›KÝFEµ6Œ€ÒÛ&»+h†èÈñÔ®£ë7ÕjúöFeyvôüÜ—Ñ‘P 8ÉIoqÊ©‰õ¨u Ÿ}˜V§U›Šý]as Žºgt¹Îú=ÒSÎtî¯Õ:Ô^ì,“fGV´cb‹˜Ã^0õ,-ÚÐçn}Ò·Që½ëWNèÝC;ö¦'Ua ±õ2»+µ‚ ˜hÚ]ø)Sþ/éýŒz>_R¿"ŠžÛz}­ø®i{¿FFéÜ]ª¹ƒõQìêõuž­Ôm깘ÕúX»ØÚë¬DlnéyýéIN_Dê?Y:¯Öž³†:ƒjÀéyŒý©®{ª°z-w·hpn®2xŽë´Xýêå}+ªõ^¤ËÝsºµ¢×VZ+‚÷@;Žï¦¶R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%* KŸ³áõÌ—µ‚÷[ê[}­Çx²™ôšÚý}EÝš8E¦¶¬v¾€Ížƒ$×S«p·uQêØ}¶Ì±Æ¼ÊJuÒI$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRR’I())I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’•%))$’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜’íÅ­À’Hæ|ð\÷__i̶ªpÇéâÆ]c $¿#u¬©»E»Cw èºü㿪ßÊõ$”óìúÁ’ûó˜ÃY«®Øã°º¯Ó´7Ös,k÷n-kGïBë¹µâ´\ʦúZí€8Ü[™è½­uv9­Œtw:…ÓÉJJJyî§‘Ôñºó®Âe™-·¬QŽ7Ûm®½Õ\àÖ»hi®í4CéK7Œ<=ßh5ÖlºûÄݺÝó>ÏL{O=—J’Jy3õƒ:mí¶»ŽEµ´X@e5¸c6ßFm¹ŒlºZ]»žÓ¢ê°€aº€O¸óþiR’’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜‚íÁ®PL‚OâÑ⤣þ¿ÕwýõI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM~¡˜Ü Œ×0Ø1ë6ÑÚO ýhÉ?fñÿvÿ¤Õ߬ŸøŸêñ\û¾‘ø¢³bÇ]ôtÿçNOþVŸýˆoþ“Kþtäÿåiÿ؆ÿé5–’wdö!âêΜŸü­?ûßý&—üéÉÿÊÓÿ± ÿÒk-$¸B½ˆxºŸó§'ÿ+OþÄ7ÿI¥ÿ:rò´ÿìCôšËI.¯b.§üéÉÿÊÓÿ± ÿÒh¸_XìÉÍ£Ì#GÚ šÛ=V¾ Xë5hc{1c"ôÿùg§ÆÙÿ¶÷ @DðÄD‘z=rI$šÖRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW¡egbaµ§&ÀÃaŠÚsÜF¤1ŒÎŽðGóŽþ«+Õ§ÑORsã.Ì?SØâÚLXÂ^Ë7ÖîÓ·k¼BJnãäQ•SnÇx¶·Hoˆ0GÄQ£; "ÇU‘UÖ0KÙ]{€ µ¤‘ª+˜Æã¶™uÍ®½…Ï2÷À‚\tÕË›¯8c²Š«Ìô(v9­×5µd±ºÔ‹jp6³`qtøRSÒ¦sšØÜCw­“Oaæ° zíJÚHÈ«ËXM­:5¢öîØòv€iýÆó„¨7¬ºì{2-4>·µÆÁ±¡¾°y·s½Ï2È$”ôj&Úšç=¡µ8I6ïw†šê¹ÜF}b±Îc¾ÑH¬Øú͇G8Ò65î±Ï.h»åý©ÂÌwIëúW‹rÚÿA¹ßkÉÅ®©’çrö))×§;ö—Q“MÍ‚k±®ãôIàjš¾¡ÓíªËªÊ¦ÊªmŒ±Žkî÷@ùª9¸9®e ./crw=ŒÒPúØ6îwçP~mx°ŽÄº«m©Œ;c+s 49ÁîcÜ©ÖS¯]•Û[m©í²·‰cØCšGˆpЩ*=*›X2î}G™Yºª\}Á¥•°—7†—¹¥Ñæ¯$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’K¨ôL¼®§~ML¥¢Æ87$½ÂØ8ÏÇôvµŸD½ÁÇÝÛ‰INô$¹›zP«7%ÎÃ3Ö²/-Ýe0æ‚#hmráØ‰îUæô6ú´ºÚëÙïÉÈ­üÙ6X÷ÐÁcs@õ ޼€’„ð|;_H˧«a侦—\l½„½Ï6çÜí­‚ÀáX’gÉýC¤™ý·Ö?ö/ÿ0IN·ÖB?`õϸ㼆÷cæ¹÷}#ñAë_QÙ‹ƒvpêýJá‹Sßéß‘¼8éí>Ñí?âŒï¤~)ÑlrûKè²I$œÎ¤’I%)$’IJEéÿòÏNÿ³ÿmîBA·§7©eáaºûñE—8úØÏôíi¹Þ×Á‰P;-ÉòKÉî ø&8KL‰"Fºƒî\¿ü§ÿ.úÇþÅÿæ ñ~§;§ãÞ+Ë¿©ºû«±ØÙ×n¥Ì®æZA–;Þæ² „Æ“ÓÂKŸÆè•cÕCý/P5¡™aÎsñš9¢á.aLŽu)ÑÐl±øÖfÕCÝn>Žý'èñêuEÀ¹ƒW®.RSº’ÀÄè÷?§ÐKÿ° WÓÙïQ¯ÞêÜÓs¼ÊSè/4z8ÔµøÔÐÚhc‰sëísS6u­Os¬$§¡I f5vÊkkÁä81 ½%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊõ%ü㿪ßÊõW"ÌÛ³êéØOe}N¾Ûìi³kæ°09²K޲t )¸’̬lbrœËnc^âk­pl–èI‚G+3­úØUæä]Šê¬Ûýΰ´šs˜þaÁ­INºK5ý´Ùs}¬¦“ý•:C=A;¢ lˆOÔ:ÅX'Ï-mY vòCÚæÒûØ6‰‰ØA””褱°>°œŠ*~N3è¹Õ[ ¾Æä-¨Òƶf= ò…aýw5æ£eî`ikk­îÜ__®ÀÝ5ý¸ø”褲²úËéÅéׇcÐsÚçå<²¦M^´n'°EËêõâTñhÝ’ÊhÚ× ^öVëv6Â;†“ðIN‚Jƒz…÷aßu ©·Óe¬k-.ÚæÒH'Û® *í믡˜®ê†Œ¬wdÎ;_`cA¤ Úpº””뤨þÚéåá¡ÏÕÓvÐXÿEÎq£ê{wq)ÏXÁÚ×5Ïy{C˜Æ1ÅÎÜ÷V[Üîc’Su%™‹×ñ2rþÎÐý¶úg³c úµzà<‘ 0§’ÓIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%1ÿßê»þú¤£þ¿ÕwýõI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’INoÖOüOõø‡®}ßHüWAõ“ÿýCþ!ëŸwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"à:ÇN$€=[5:Ú{‘p=c§$z¶hð½È–äù%äõž­_¾ß¼&ÔCˆtí0cS'Ž<{'ôëýÆýÁDÑ^Ç4 »õqüSJ9ƒÞÁucÍ!‘Q7% mtÈçH•‡Yy~ã&<'ÚçžÉìÆcÀðçÁkƒ}À÷ æç~áûÙÿ’Ks¿pýìÿÉ$¦ƒz nÉ}Ê,ÊÉûkßYl¶ýž“œÀæ¹¾æÌÈ<§=SèÖl¥¡Ís][áÍÛHņ’5=ûˆ*öç~áûÙÿ’Ks¿pýìÿÉ$¤,Á¡ƒ тݔÉíéú>ïj«Ð0³²¾Õk¬m…¥¤3f¡Õº“î{ð tk€ïÊÐÜïÜ?{?òInwù$”‚¾›‡[^`¹æÃê8öúÄ›_• zV%µ2—oØÌsŠ ëé“YðçôaZÜïÜ?{?òInwù$”ÓFÄy¬î°48CÃíûIcå¼zšû`ùªÖtÓ[Ÿ†û,ɾ‰ºÝ¯kß`ØYSâ ŽüÓ><«¹ß¸~öä’ÜïÜ?{?òI)ÏéݬLlfXóeÔzOsÁ;M•RqäI®<™ZJ;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)’J;û‡ïgþI-ÎýÃ÷³ÿ$’™$£¹ß¸~öä’ÜïÜ?{?òI)_áýWßT”FâðKv€Ô·¼x¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)HYW|kr=OE…å€Ä†‰:üRINú×M•½ôc¹û^Æâ᥶l¥äW]Ž‹úFÀ2ÕrήYÑ™Ôýu‚¸ 8m±µ¹ŒsŒn>JÛ0°ë‚Ê+io§Ð?™Ò¯ó?7ÁÝ+ó]Ž{ñ\#ìGg  ‡»G ßK””ÔÅúÂ˳™e«Þæ4jí¤:§ÜK}Jë·h¤·u=®s~ǘí¤Í¦AŽàîᮟƒNÏK¶znßY ×m5î™Úcà¬$§œúÍÖHéwãý%­ÉªÆn}E¥¤ Ûùú=Þ*úG⺬€~Áê»ìïÞ i?%Ï»éŠt[¾Òú,’I'3©$’IJI$’R‘0]·¬tóߥ³F‰?ÑîCEéÿòÏNÿ³ÿmî@ì·'É/'ªõ¿àìÿ5Dd8µÑYÜ׆ïh;ˆëÄꌢæ1íÚæ‚ÓØýé&¹Î%†6É׿»N#ó|TÝ’ö‡Á£Åb 3#tèÔOB?FÝѧoÐA;ˆóñIHiæ¿ sÈù£Ua±›ˆÛ©Ï<J¸¢hÿ_à0"LŸ‰IK¤’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’”ªdõLllƒE°–µ²Æ°º¶6Ç9Œ/pâKJ³´:Ã3­$r]û¤x,®£Ò2²z‡Úi{XÂʸØùi¦Ë,ŸGk«¶CãÞtì’g87ÌÈl L’øN¨8™¸¹•‹1ì lûšôw7‘>k2ÎfSÞçÒÚÖÛ\ŸW#'Ýí@¤'â‰Òú-¸^¨u¢¿PPM¸ð,&æ¹®ßYNž”é²ÚÞ®×õi÷S_ó–1žæ³Üà=Î0ÖëÜžÎÊé™¶ý³«kAáö½Óê×íev6¶í-~æ×É"'º£GAÌ}ξڱ« É72³%Ö~ºr}K]´€ïLÀ'žBJwÛk»\é!®€èi‚a#u!¥ÆÆ´Ãœ\ eb·êþK^þ¢©´ÎöíuÎØÏoѪ7j8ਫO¯SŽÚ³ík]]>‹ÞXj±¯Ü|GÌ”ô (†µ H.hÓÈ;D¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ˆX"uk§RxÛûÄ©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRE—ÖàknæÆç$Ãu y¸pŽ’Jk1ù>¨f€è"vn=§Ÿ4î¶ÁkÛ.Òv02DmÛ¾(äu 5­hÚÐhR]cìd6Cw: î;¤AH‡í§§§r"I)ÈúÉöŸØy¿Co ýñ¹ö6e ±Ým˜ì~×KCs)9^ž®þoYã·))ÕIdõ^§‘Òéö÷ËmW{½1¯¤ë*'k¡¾æÇšÎ£ëQ¾œvØúñïeƒ¨ºšÎVÜ–ŒQesÇ  k£Áø¥=:J—EÌPÁ¯!Î ñ]­¡ìkËYfÐNÝÀqÙSC¨»¤ÙÖ=ZÃ[¬«3phݵ›­IŽtå%;),¾©ÕŸ‡Õñºcv³íÌpªç‰c,y‘Ëtk9ÊÏSêUtÜo´ÜÝ̹Œ“69£· )¶’ÊwÖ,f½ÿ ·Ñ`~Û½€9ÌevmkwnÔX5!FΫ˜:>^c™ö{èÈu-ioªXÑsjÕµ“½Á®íÊJuÒX8ÝO?3!¸¸ùM-õßIÊv>×N£cØh{ik´÷BÔé¹ve`3"æ´Y66ÁYÜÂêžêœXHÉ )´’Ç«7©™WT²ÚÈÉîf3-`¾Ú›¬‚ècü9SÌêÖS×*é ÚÕSUÏÐíÖïlÈ—¹¬ñ=’Sª’Êë=Vî—Óà0aÜ÷Œ×8ecÓc^Ò¯°Od.‡Ö2úŽae­kh±×º‘´µþ“F#¨Ý?œ[yŸ’Jv’Xu^©cq­¹ÿd¢úª{/û?«CœèõcÃæ­t#Íht÷g»/2¼œ†Û^5‚¦4T+>êê»qpqãy )¾’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I*'®t¦‡“ófú;5%æ¯o³ßïí”cŸ†0Ûê‡b¼5̵€¼8XCY´0d4 )°’­WRÀ¹þwnæ·Ó!Íx/k¬h,xšÇ#²)ÈÇ ¬r ›ýé)£õ“ÿýCþ!ëŸwÒ?³õ›;½2“kwÝE‚¸ ‚à'lþôp;¬g}#ñN‹c—Ú_E’I$æu$’I)I$’JR|jÝW§Ö,}3kÿIQ xŠ.àïÈ™Öztéú[?öÞäËr|’òzÙÿË ßûqŸúIR· \ì<œq’ûVMV¸ZZö±•ØÂèi`kœæ¶]" [;ÙûÃï &êƒòà_Ó>˜Òq2z.v˱±v6’×¾—‡lˆq~›[í÷ûäh¯áŽ 3ï¶üq]9-¬‚-,um-Û´4Nîd+¦ÊÇ.Pß™à~)…Õp2H® ÇåILÒCûE:{¾‘™?r“ìc:»€<|S$”Eµ’p;¢<æcòípp–™? Ré$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW¦²šìun{w]¾³àí®dÿšâçýVþW¬¾§Ôrpº[6º³¹öÖçIõª¬ljèzJn]Òú}ì{.¤=¶z›Á.×Ös_aÐèK˜”hˆ1(ô[CƒžÆ9¯o¨÷½Û˜ácI{Ü\aÂu*ŸHêÖuòjÙM.s`žYcês<Ÿlè«;®å´¹e[ë¶ Û\æ¶¶8ZïQöj×Ñ~l$§Dô¼eV Ë, ¼ÔúÞö8zõ^ÒXá¹®v¥§DÐza½÷zn d±¯{@,{ìiikn¯:J…Z_cžêñ·UV+rl™±ÎSNî6Ÿ¡ÄΩóº—Q8¸â»(å4Wï5†:ìJŽÓÉt\aÝ»$§I¦WüÕ&¶úCÌcìkSZæ5c\èkˆ„„÷tžŸsÛcê"Æ;{lcß[ö6[šuc@#ƒ >®»oÛéÀ®“fç?ys‹Ÿ°dÛ¿qão§¸ÏŒ>—Õ2ó]›qu^Ül{¨¥¤¹µ›[söÙßvÝ )½…ÓÛ‹“”]¾Üû…®1­cS5<ê{ø'wKÁ/ªÁYe”º·Ö÷±ÃÕw©`%Ži-sµ-:*}o&×á²ÖT}vcúÅ…Àú™:íÕƒ>Æíƒ)óúí˜y«enª¢æ¹…Ä\òÜgåî`ão·jJm¿£t×–Q™hm–0çÍcÀtÝ<¤z7M5 'kCZ÷‡mc= ÒýÛˆÙí"uÊÌ?XóÎȯ£ú+ò7<½­ut6—Ë$û½]ºžÓÂ'üàÊ}ÙUь׊/Ìs‰hßö†cCݯ;÷ˆ”鞆f+ØIyÜÇ9„vïÚæ8ÎÁÂLé¸,ÚµöË‹œçË=v—9Î%ÇÔ÷IÔ÷YNúÁ”ìщSi}L8?i­×}žÀ'lº{ð<Õ¾Õíê¾)ÔÇÖýykßYc¼H,’BJIGCéÔeŒ¶V}FŠZ\âÊö×èË;d·óˆŸ4[º^ö¾ÛjÞûZXùs¶æúDíÛ»g·tLi+#¬õKu¢—²úpýv´¸5®È¾êI©ºë;ew¢u›:¦%™n§eA­}E³î–ëù͈'‚’›ÙXx¹Œ­™U‹YUŒ¹tÀ²³¹ŽÓÀ¨WÓpjµ÷WHm–\ržàN·z%üÄìÑf7®åž™®v[M¬½ÎcÚåŽv’òi¤§w_Ê{Æ3=zîÕîß³¦\í6Æã¿hûü’S{öUM±ï¢üŒacͯ®›a{Žç;kÚèÜy=¦þœ ‹Y•»Ö©¶XÚɳé¸V׆4žd •C¯eäŒF5˜ô¿(Ø[mÎsêëeo𛫋«ãØ•`uŸØùyw†(¶úÀ¤¹£mW:¦êI!ÐÝRS`ô~œúìªÚ̹†»ÖYi-$:&׸sAÁEËÂÆÌ¬WÒà$‚×9Ž L>·5Úƒ]V[ºîx²~ÍI«{‰>£ƒ…LÉû1²7“îŽÈ-úÁ‘s«¬am¬±Ì¥û‰¬œ†zvHлє”ê·¤tæÔ)ƒX9ÇÞÖÖí\â~‹ܧ_N«Ⲩ¡Ïõ\Â\eûÅ›‹‰.$¼O+"¯¬™—aו^5e¶2Ûƒœç5¦ª©nAØ=ÄvøN¾IïúÇ™C›KñXr]cÚÚësžÖÕVCZÒCaå·DÂJu/é8œ›á{ˆ&Êí²§KZXèžßÍ0é¬c™è_~5U†cÒæ¶ ÛnÂuïªÍÈë}I·WV;nuLsËÜvÕ—VË£h…²°dœÿ²RÊ@õëcl~ø5›Û`üÙ|»‘ óIMñÑ:cYmL©Ìªâ\ú™m­¬ñl±xkñ>ÐHéέÕÙQµ¯Ù¸Úû-wèÜlgºÇ9Ãk‰" Ï«¯ÛìŠÛéè÷ žë¶–ÿ%¾–ªßIêwfnn[j¦Ø©õ²·-¶¦Ýè’ÙÖJmåabfi—K/n×0¶Á¹¥¯Û¼ í ßÑúvC·ÙQÜçÖ÷Ôà^ÆÔèuNi‚Ö4ÆŠâI)¤:/M»j-cÆ ›e«m@5€Ôé˜rÕi•VÇÙc¹Áö}Î k'üÖ€¦’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”ÐÊHwÝé4:'s¶øv'Àø$§4}]¢¡8·>‹w‹}@Öºlºðâ×h~–ß‚Vt‹¬À – &5›rK‹îs«sm—Õ鵞ç·_w A™%ïkvtƒ©o©ðNo!Ï=Œ_ jºIN~7ÕÜ\|ª³Ž7ÔàâZà*4†– ãt?Џî›Óâçaã¹Î2çk$“É'j'®ßQµÁÜæ‡ŸîNnÆÇéàÇ$§ë'H郣åä7–>Š^êöVÆ€â ?ÚÐdvYNúGâ¶þ²dØy­Øÿ}/ZF°±ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H˜-kºÇNVÍ£ú=Èh˜.ÛÖ:y‚Kf€Iþw`ÙnO’^OYèÓþŸæ…QihCœíº úã÷,ÿ1ßÜ r€cݰû¨"w=SK; 9†³aÚ`‚ÐLü“³¬nÀãµßLiîÖ~J#4nÚXG®²D#ÍIùE›Ág¾ cg@é)›h q0âñÀ‚ØüS ËÞ×ÚÑ5ÎÐ #X×à•·ì5€78Ö?ñHdX6Ÿ|GÌ–ÿ”ÄcDmy¤l0 ºŸÒDª³X-ݸI#@"I?Å;½³©æ’ßऒ”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzgÑEe–TÇÙQšÞæ‚æŸä’$|“çýVþW¨Ù{kx¯kÞò ¡.Г”»(¢»mu±–Ùüåht~ó€“óA³¦ôë+~-F±`»fƆ›-Üæ0îêÃ\×´9¦C€sOˆ<ÖXÊë6<ÃG'””±¢ƒkn50ÜÁµ––á¾Ñ j£^.-MÛUVÐd5ŒkD’ À-r•·2§]c¤†08ÉØ'mtĂӵÀˆƒÑ÷9%1v>3œÇºšÜúÉun,i-q2KI|²ª«ÝéÖÖn$»k@’I$˜çRS¹ídn<–´7£ñ)­µµ49Òd†€Ð\I<JY¸øìsÊ«k«nÊÜÖ4´þkH gM¢Þ¡V}°Ù@>rÐÀK\ÉÑ¡ÇG ˆ×…i®ÜÐâ g³†Ó÷ò>þR*ñqkietU[ ËZÆ´{£v€w)þÍêºïF¿Uñ¾ÍÜí°[¹Ñ& B$„¼»¤¤' ØëN=F×]a­¥Ä‚—D˜ )²Š+±ö×[e¦l{Zœ|\à$üÔÁƒ(YTc0¾çmh‰‚`:y¸$¦M¢†[@k@ÃÙÆ~)UE—:š™S¬;¬,his¼]´ ?dÒÛ½ïÒµÐ"ïMºñ«”Ûcç4XvžÚÀwäpIHþÇ„æ z¶=ÂÇ7ÓlŽDjï4]ŒÝ¸4n’w@™<™óLǶÆîoG† ÁxRIH>Å€+jAÛÅ~›6ïýí±æˆ@kšÀ×’ç¶'’áÜ•C­SNAéôÞÆÛU™µÖð× ¶-:vŽ…õfðã_MÅ;XéÇ`Ô|[æ’™m£ÁŸs|wÕkñBÆÄÁĝӯ®º›»´ /$äò]¯(ÿóoê÷þVbÛ5ÿäRÿ›W¿ò³þÙ¯ÿ"’‘3 °EuRÀâKƒZÆ‚\!ÄÀî9Oe— –ÕU­$;kÚ× À@0AÔ ?æßÕïü¬Äÿ¶kÿÈ©3¢ô|G‹ñpqè¹²eu1®ˆ0æ‰IHÝE>¦8æ‚5;#÷„üT¬uÎǨÚè.°ÖÒâD.‰<+.kÖm{ÞàHk\`@'OˆScÚöµÍ2׿Ÿ{¤¦>…šÿI›Ø Zí¢@wÒÆ€÷N+¬àƇ HÓoäÑJG’RR’Pu¬mŒ¬Îë'lF€»SÀÐ'²ÆÕ[¬tíh““÷”É$3‘P±•’wXn† ñ¸ð'´¨}»Ó6KˆÛ®.:Lµ±$F²’“¤ ‰ƒÁ $¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥& $pd|xN’JGözÜÖì|@pä&G!Víîn÷÷y‰:Ghhˆ’J`Új`­">\~U4’INoÖ@?`ußÐ~«ŸwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH˜;¿ltý]êÙ΃ú=ÞÙnO’^O^›kHˆÐùÌÏÞ¡9?»_ùÎÿÈ¡—å6·¸´®ö&AÐö˜ÒLka2Z ™?ÛùM–†–Ñ:|yUÍÙ{&6¸nݧî‚`ö&a"˳Óit™t öŽRS6W´Éqq6cAå$h¤‚ ¸Éø…]™KId¶Y·hlº eY¬—1®:’$é‚JS+c$°FíJ’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^ƒ‘ˆoy>£«ý«„ƒ. ÏwFÎ;ú­ü¯RIMð¯9ï5ɬ5»~‹O¦+Û·d–È7‚ìûe„Td»`qÀïLÈ ©‚FÂ4• ’JE{/û@¾„–=%² ÜsC» °ì°¸Ë=åÜϰ¹µ7{}¿I» qÏ!\I%4ÎÜÛY ¯Ô·Ôõ™>¡i³|:[Øh=ȧÏ¢Šúe…²àgf;BŽ’Jjdá:À÷VFÿMŒa|¸û^^àKƒ¾Óº‡Ø\Û)pk´Ö 's˜cží‡c»¼‚ä’Sžì —TƸ×-ôšZ ‚ÖVêϹõ¸LºG·ûÔ­éÛ›fÍ¡ïÌ“­•´@?›ª¼’Ji;ç+6¦VÂ×}¡µ`c×°NÆòþÈ·ÐëmâYcX|v ùÀ•a$”Ñ«¦½¡ö›íõ,÷5ÐÇÖZÄ2¿R»§›ÂÖ[A³ÔpµîÜaŒhnâǘ–É×É^I%#¥®Ç8A²Ç><¿l¢$’JhuOçºgþ«þ¢Å¯‰VEo¼ÜÖm›Ù±ÅÚ@n²Öþ꣕n eùŽª¶TðæYq k_¨'UùÇÒ?òÇþßgþM%;I,_ùÇÒ?òÇþßgþM/ùÇÒ?òÇþßgþM%;Hw}²çHÿË_û}Ÿù5:z×OʰQ™Eöºv×]­{Œ a¡Å%-~/®ðïQÕ[ØÇ¸ÓC{ªÏÀÉ{Z?DÒ*ôݶZ?šuP?F]géåÝh$’œìÌM•½”Ö×ú…⺃ €.mLö´€á°êc™•bœWדuŽÚýïqaŸÍs÷‰o§Ë{ãòVRIH­e®¶—07en.~çuk™  wïJV6÷RöÃ79›F¤ Îuƒ ©$¦°Ç¸ÙS°4 ýX$i%ÍÙíºu˜Cn&Kkͬ ­€—mØÚÝP.;gt>`+©$¥šÐÆ5€ÈcCA=ÃD'I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)<˜ÓÅ2Ä»§õÔ²®e y¿p«1ÙN£Óô›Oïzšøk3))Û‚’ÆÇÄêÏÌÇɽ¦ªkªŠíÅuvç×êÍÛ˜4¹¦;ü@W]ÓîsœáÔ2š $5¾„ ì&‚RR¬ŸòPý®}ßHüUï¬Ý' ôËò>ÝöãÓc¿Ò—#ÓöRÏk¹v½‡ÄQwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"`‚î±ÓÀ%¿¥³Qýï@ì·'É/'¯IÒwúWÿÑÿȨzk]î/vâÂ@‘á yLi'Õ3kc$±¡¤ó%Uu9 û\×'‡Ak÷|’f5›Úâ6†íöéÙÒx'²Jmê’ªÊ.©¬Û«È!äv$:a'cZíM@û\¤™úNîIM¤”)kÛP}3%ÑÄ“&<”ÒR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯AÊ̯¶>Ƹ¶ªÄ¶ €v5çTaü㿪ßÊô+±vN=äí8ä’’à`†Ïa¹ ¤¥ÆU ZI:ZíÜGbÍHdã¸ÛXAq`;†®i‚Ñæ«UÓ=)»Ô¦ª®-vÂÂý­ÚÓ³°lèS?Y¥"§AqcœÙwБÙ#}°6kXÜ%ßÕñA¿ Xé¸TâÊØÂÑôÞlìA‚cºØÞ×ÖXæ€ ~®†HeŽ°ÃžçÏ$̤¦Ã®¥­Ü릥ÀwÑûû$o¤<°ØÝà[¸HRaTýic¸ofÀ!®hÚÆ:¨öX¨wŠ=­ì ßÃt÷1µ Ö6¤¤íÈÇx–ZÇ™Bb~õ ¬ºñXç½®vÖîp`’àÏÊå (¾Ü¼k,!ÁÆ÷4´€ZêÚ\ïÏ×á*vÐl¸;MŽ Ÿø7‹ùÚ„”§eÔ28µŽF,pc{ùÏÁIÙ40¸ZöÕ±Ûeä4µ¯ÒOƒ‚¯WKª¶5›ËÛ¦òñ%Û^ǤhXhRv»k,m&ÏUÕ9¤´Ö5³l€[0{¤¦Ív  A-p<‚ )(TÇ4=ÏúV=Ï#˜˜hsD©¤¦‡UÖôÐá çU ÿVÅ­Ž1oŠ o,psZ € ÷ìVOTþ{¦áê¿ê,[”_K®u¯kůÞÐ֖ưeÆxILþÍþ‰Ÿæ„¾Íþ‰Ÿæ„T’R/³cÿ¢gù¡FÊicw2¶µÞ QÐîú%9ÖZæØÚÙ[¬sš]í-Z5/sy&dÐö´‡´n`°@;Ñà¡~%9Ñ- sÜZw8¨/ÀºÆµ¯¼f×{HšÝLíkÃxtñø$¦ÁÉÆ ÞnfÙÛ»pÞ<©úµ9¡íÜÒ›"A<<ÕLÌkv¼c‚ç[½€6µ¯mLÔ—6?›û»#UŒê¯¶Àðà÷¸²C¥­{ýG7éíûšRGZeuí'Ô$€@.×äÚÿN·Y´»h'ky1ñ… +±öÔö¹­mn.p-$™ifá9'×sê{7¶\Ͳ[¤™“Þ )c’ÁelÚã¼4—i ßô7k>â B‡Û˜kÞ+y26°mÜæ–—‡tAh%8Æ~úÜë õiDšöûŽÝN¼¨ +X ´z†±Å„[Xê€-Ý©Ú㬤¦Ð!À9¦Zà> ð3ZÖ´1¿E 5³Ì:JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)ÍúÉÿ‰þ¡ÿõÏ»éŠè>²â¨Ä=sîúGâÇ/´¾‹$’IÌêI$’R’I$”¤L5½c§¹Ä4z¶jLè÷!©âU]½[§×kCØm²ZxÒ‹;-ÉòKÉë}z?Ò³üáý雑C¾0c‘Ù önýÇgÜéø¬c›[ ùpçC1ðLi%94^ êÈÈT¬¶º€684 Aû{vÉüèòÝþh¬®Ût$Wé§!%3uô³vç¶7ynãïNÂâÐApÄwƒÁB¡Î÷èï ">å#Im®¹žç»–“ ƒGˆIL…Õ9¡âYô‡„$-¨‰Ïã• c¸ý'Ù. Äîç¼ç]¼¾\èõ s$¦NÈ¡¢KÄü÷ŽÞa8º¢@IyÙˆÖL8ë¶~-vÿÅ0Å$‚çD8’ѨpÜ^Ùã‰IIEÕìÜGÁM¸å¶Öàék'N Úyêät”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½JBbÖžZÄùRôÚDŠÛ¾ÑýÉ)y HM±Ÿ¸ßó[ýÉlgî7üÖÿrJ^BR5´ 5¶=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R+¯ ‹æ#Ê?½B¼±aÚÖïÍ5æ~#ÀÜÜHãÏäQ4ÔDmà@‰Í%0M%°ÓµÎôˤxäG’VdŠÞæm­ÞL¦¼’“¨¨Ái´ŽÄpc‰Rm`ï.âcQçwILMí{`û‰þÈiÿ¿'}›*6†î†îŽ D¦û=:{xžç¿3®¼wHRÚ}2 Öutäû¿”Äå1®ØáÓÛ3È'ø( æ–µÛ>‘.ÆîQÍl3"f'å ü©%ºŽ$ÞÇÁ%09U·W‚Ѹ¶OÀŸà¢ÜÆÓ´€ã܉Ôí;êŠ*¬ Öf~DãR#IÚIlö“1¢JXdƒcY´ÃÉ vŸ›3§Ä ~ÖÆýËí²¬úïkÀ‚Ó?ïñì‰%%8_Xz¥t\ÚÚË}/–ªÊwÒ?Ð}dÿ:ïöw‰\û¾‘ø§E±Ëí/¢É$’s:’I$”¤’I%)§ÿË=;þ6Ïý·¹ §ÿË=;þ6Ïý·¹²ÜŸ$¼ž¹$’Li)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILIyqkc@ $žóà‚Àëgûn^ýßnû_³})õ=}ùèöÛf{r·ÇóŽþ«+Ôäè{$§™ê=k¨×™v#.ô6í!þ›InËhká¾âCØ÷Ç%°¯áõ[íë×ôûèšÛX- sMoc@ÒL9®.—sÈÑk‡8ÂRb'O”óX˜]B¦?¨ÓE-²—æØH6:üƒºöÕSÛµ­ &' ²ºŸW~Ç$l®¬›˜Ú6zLÇs6´ûGºÇ·Íñ]*}ÆfLø¤§#¬ã¿+#§VʪËdÜç6ç9•ŸÑ®&¶?_ ;3³úCð0m{lÖÛ †QÏþmÏ.yèÑà"y]pHàĤ§š·®u))£Ò²nÊÁeÏq{Ëœ ì l€`úCia[ý'ò>÷äT‰'S©I%1ý'ò>÷äRý'ò>÷äT’ILIü½ßù¿Iü½ßù$’SÒ#ïwþE/Ò#ïwþEI$”ÇôŸÈûÝÿ‘KôŸÈûÝÿ‘RI%1ý'ò>÷äRý'ò>÷äT’ILIü½ßù¿Iü½ßù$’SÒ#ïwþE/Ò#ïwþEI$”ÇôŸÈûÝÿ‘KôŸÈûÝÿ‘RI%1ý'ò>÷äRý'ò>÷äT’ILIü½ßù¿Iü½ßù$’SÒ#ïwþE/Ò#ïwþEI$”ÇôŸÈûÝÿ‘KôŸÈûÝÿ‘RI%1ý'ò>÷äRý'ò>÷äT’ILIü½ßù¿Iü½ßù$’SÒ#ïwþE/Ò#ïwþEI$”ÇôŸÈûÝÿ‘KôŸÈûÝÿ‘RI%1ý'ò>÷äRý'ò>÷äT’ILIü½ßù¿Iü½ßù$’SÒ#ïwþE/Ò#ïwþEI$”ÇôŸÈûÝÿ‘KôŸÈûÝÿ‘RI%1Ûƒ]·PN„ö5W5¡³´D™1Üžé)®Ûí75²6¹Ä8G»hŸ8•W«Üz¿Ï*ÙkI‰-Õ¤ö¤§ë ½LôlÑe5¶³C÷éÓMV[¾‘ø®ƒë'þ'ú‡üC×>ï¤~)ÑlrûKè²I$œÎ¤’I%)$’IJRÆuíê<ã±–[ê¾c‹At˚ǟÁE§ÿË=;þ6Ïý·¹²ÜŸ$¼ž‡Öë_÷ÿblÿÞUC'¨õœnŸ•‘s+¤³"ºè³vÿѾƲÂ}VPØd®1?‰ÜH8Li<½_Yz™Í¯Óe±õ¹¹ >›=]js™»Ô±±"|¾Ÿ•õ‚×tç录W—I¥å¢¯TêǸ6O´wñÕoK¼JmRSO§Ý—w­öŸ¡¡ìn{>šð×n;x«‰j’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåz”ÀQÎ;ú­ü¯X?Y1r23±qjk½.«U˜6VúÛ¹—z›¤4mc_Ý%=$¹L\¾³gOvUŒs.³ dSk=G9ØUÕCY§´ -6?NAûwUêøæª›g¨_“—[®µ­Á´ÔòÚÏ´ÖdDâ’ž’ à%æ¹ï¬¸™øøt5ÞV¦Ì,‹k>¶±ì¼YºCD7|Ou_;ª;™öÔê².­ì½Ö3{êû;ñqžíßô¶ˆÐˆæSÔÂMŽ«ëô™[Üß‹ZH\Î3º•4Œ‹Hu´ÙO©NØ.ê7Ú[µ§è§Hò[5Y‘oC±ùDºïNö½Å¡„ìuŒk¶ˆZIKàtþµ•ƒ”×ÔËKF=p ÚïGýÖ?òÛÿe«þõGÜv]ÓXÓgÚ-éc…{·NÚ[XOµ®†¼„O©Þû¶º[I/®·RÂí®ÜSÀ"àœ=ý¼p›_±ºÇþ[ìµÞ—ìn±ÿ–ßû-_÷­¤’S‹û¬å·þËWýé~Æëùmÿ²ÕÿzÚI%9ô¾¥M­²þ¢o©¿J¯EŒÝý¦êÀ'*í¿@®g­âÝ“™„Ú±iÌÙ^C9$¶²ïÐí÷¾xæ’„—-_YÍŧªÍާcÛm{]êl··éK,`fŽÚ<ùDÊê}kçÛq¶íÇÝöjïmAáîp“®œ¤§¥J ÅÂêy÷õ<¬{Ü)¦’CAoº7W鹞Í[c]©.>PÖ-Æ«/¦>ר2}§Ü@a®Æ¸Ù–‰))Ô‚Dƃ” ÄƃºÃê·`eda ÎÜ«^[F[˜ò+mW5¶µ¤@{›±¿3Â~©n>UÝ>üC[ï}ÕúrÇúÆ¡s[g¥`Ñ‘ݸjÙã””íó J Oe—Õòq/èÙÅÅ®Æ/h-{d¼8T8KÛô~õJ×¶þ«…sw=ﮃ‹`Gô¿mÖ {cékà’žˆ‚ ¯‚eÇØ/»£å¿£W/;†-eÔÛX­kàðIuŽ÷¾<=×bíI$Aî9IK$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’g9­isŒ4jIQÒHh{eßDO))šJ½;K÷·h0L÷NëkkCÜàxtèe%2IGÕ®'pƒÆ¿ëâ¤2˜0~))I(6꟣^ ÓǘüzôLz˜ž{Féû’RD”Ôž5˜×Õ àx3üõIK¤¢-¨€CÁ%£^HЄÆú@’ö1Ïp’™¤†rqÄÍÓ~IÅÕx’` îS4”=Z·ìÞ7Lmg”þ­_¾ß¼$§?ë'þ'ú‡üC×>ï¤~+{ë%µ~ÁÏnö—:‡À‘ªÁwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"`‚zÇOŧճQýïPÑzü³Ó¿ãlÿÛ{;-ÉòKÉê½+?Ó?îgþE Ô]éXÀòMŽïhîe jUˆQ6VÖ—9À˜$é1¤×{rË"ÍÍx;†Ó´6[ÌÁ!*êÉ É/’ZíÚ6I&Gtq}%ÛCÛº&'´OäLo¤4<½¡§ƒ:$¤m¡ä·x>דôŒíƒÌÞMnëžÇW.kgp‚518±öW\oplñ=Óªq{cS3à`þ))ªÊ3 ¶Çh! î75Ę#´„fc–—êL´é<É'Iø)ŒŠ XÒ@“¯d@A˜3Ä$¦5‡ ßHêï‰Ô©$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW©(çýVþW¦u´°¸>Æ4µ»Üà!¼n3ÀóILäø§“â|KØ7K€Ú%Ò@â|¤¥'“â…fF=Nk-µ•ºÃ kÜÖ—=¡ÇTD”¼Ÿ;ëõ©²¢cÔc™»˜Ü6Ê‘! ¹Ä9'@‡–÷W‹{ÚaÌ­îið!¤„”ØÃsqq(Åi.Vʃˆ‚v46yòFûPðX½7¤œœ,[-êÙŸh¾Šî{•îh$†ú\ISý—†×þÛÊÚ÷lc½z`¸i´OSä’µ¾Ô<wüß¶þÕÎÝ·Ô®cÇù¤ÿótÿåžwý¹_þ’IN‡Ú‡‚_j ?þnŸü³Îÿ·+ÿÒHVô70Çí<óÿ\¯ÿH¤§QÙ!Â?‚®²ŸvNÛ›•{oÈuVW{Øæ–Šn³†ÖÃô˜;­G=Œ½Á qS ø¤¦[âU|ÌLêÅY•‹«v8¸4ù9­ 8yÒIKɈ<Ž (ÈÙŽ w0¢Û©~ÐËâùÛµÀÎÝuŽé)“­»kÔÃtLžÊþ›àç7·¹ ÈSIK’N¤’™4‰Û#qx ÒR’P7ÐÖz޵‚°vï.hnéÛ¦&tI·RëKlc­f¯¬84Þo!%3I0 ‰â5ãDé)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’Jck•º²cp‰Bv%nq2@t$ö&{êLò‰m‚ªËÈ v˜î„3k.Û´§qL^Ã[ío¹¬Ý$k;|SbŠÃC^a¦DóÚDùÂcŠt‡ÆÒH@‚"=®jNͨcC:’4 wsü¤˜ÆNæ‘ #Q¨=ùÓMuIKŒPÐ@qמÿŸ¿¹Lqœç]´n$¨pÜ^Ùù•'䆗0€Ç̶ tG4ÍÌc€;HÄÈ?³±×_”°Çsl­À‚ÖiÄn'ã©Qý—ÓÿÐ7ñþôA’ÓcY´ûÉ v‘í™óìƒû_þüÇ$¦‡Ö›„Ήc* s(y<ø¬‡}#ñZ¿Xz¦-6¦ï—Òð iöYNúGâÇ/´¾‹$’IÌêI$’R’I$”¤L&µýc§µÀ8lÐê?£Ü†‰‚àÞ±ÓÜf=[8ÿÚ{»Ër|’òz¿³cÿ¢gÜ~ËPikFÝÎq} i _h«ù_æ?ÿ"™¹,tèF×™}. &4˜œJÉ$3´lwóÕ'c9ÛÜl‡Ú6½Àvm¢C.²Hƒ£Zîßœ@ÄïÉkF×;i;ˆÛ'Ÿå$¥U–l.ý¯@d™‘šYà Ü´¸ï$;àó{­$’˜6¦µÄ¢Z´ëÁqïã¹=lôëk&vˆŸ5$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯XŸX:fNvn%U°Ù‰šË0úŒ6Ð\Ë·êGÐ-emçýVþW©$§–ÃÆúÀ0=Km9†Œ†ÛX÷ï~5ucâËìnç6Âר8úEïÛ´š«¡Ù&³“—¾ç‡Ø[ú`qä5®sª5“›æº4’S‘ÕëiÏ.~™•Y‡m k^7¹í!¥à~ŽGç,ÛíúÇ^Pµö±˜˜^Ë@uŒ{™ŒÙs]´·x¸8ËŒŸÔ¤’žc"Ž­•]â3=;)È«¶L[A­ö² <ûËw£Ùk1™,é¹ÌÉ}–»$TûL¹Õk°ÈtZ*6ÖÛj}NÛXHæ#D”åâ1î=8cÓc-³¤º“–ÚÜöÐê·ZѤlwÃæ©ŒWŽ˜ú?g]K3è±íÇ~3E ®ûE`: Ži ju+¦Æs1±ªÆ­§Ó¡­’dÃhŸ¹íG÷JJrúnS£ëNNSXê®Ç 0»ólw§\8iµœ‰ç^ëuVûQýÒ—Úî””ÙYs½CÌCm¸æÑ ¾‡šìc¿5ÍsHãúµö£û¥QÎų.á`ÌÊÆéÒj øþ’—™ù¤§5˜-éç¢b ­É5å;u÷½ÖX÷lÎsœO>”~²ô잯U=2¦EûîºÇ—¶°kinæ5ÞíïÞòUÚºKY“FMÙ™y'ÆÊëµÕlÜXêäút°ðóÝ]INî¯^2†eÙ„ÑKhR/5Ø-Þö6C·ÆÝÐ8…*¯ë ut²¬—€+v÷´`ÃtµÏ³Mç"&{ó¢ÝI%8=ö¹Ì~ewÐ2Ë-kÁÛ`Ås}Ö5„ûšþÝ–ngLëLÉÈÊÇ¡ïwOɱ¸„Ö]N~çd¹­gÒ:Æ‘'ó °I%<Þ^W®‡ÓKòU¾ÆTÚimU?T*Ø'ÜÐÿ ÷OUwXÌ[ÛŒ×X)kšâÇ3s}1Ûvd‚&Iähµ’IO:Ü|¹`ÄÄ}y¸Ù·‡´ÖÂÛ>Ñé7q†Û½ÏaŽJ®rúë1ñÚN_Úmmþ£[é¶çZÆûcÜ\ï£Jê’IO7nV›,¦Ì¡uoôžL¹ÅÙ>†9º°±²]b n#s£?HøöðòRI%<ÓèsðÑs±ëÌÉÙ 2æÜ(sjx†¹Í?ÉE8¹·eú4Öì\œjEg-Õ‘^E¶2¦ÝiÈcIö´¶uݬhº’SŸÐ1¯ÅéUcß[j}n´ Ù0m±ÌúPx+A$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’Sðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I!ÊJYÍuÌ U¸’æÌ™3ã"«öŒ­vÑîÜAÀñ¿ÇÉLäÙ§L9°eƒ÷Ýä’’œzˆ‚ ñ2dÏbfJvVZA.Ý·Fh;!6÷œ{lÑίt40$OåBvm! 5û€Úí"dÏÑs‡Ñ))²qê3¡Ô΄ˆÖt×M|ôv™­Å’eÃéOùÓBÜ“ÚÖ—í¶tÜ[ÙÈÌsÍ®aáÞuoáÊJ\ÕY{‡ùÿKïLi©Â t×¹Oâ½[›2Ÿ¤,¢ —wrÚ¯Ú_46xïéúŸ½ã䒛Р»HÔ“ùJwU$û¡Žì¬ó¯(%ð µÒtƒ¨þkþ¾´Ú燗·fÈÐÇC»â’—ô*™i’}¤·SÁòMöj ’ÀíÉ{AÑ ¼›¼ms`Ál| geXuh—“¤h&=Îhÿ^S`ÓYR„ƒ-3=”[‹PÒâÒ\ÒI‘'wÏT~AkŒµ½Û-7ììäîɱ¯ 0eÅ£NaÛO} j’“}ž°ö¼H-$øòïÇ3¢$•Y¹:æ·ÛµÅÁÀ [£Yï¡ëõOûŠÏûp$¤?Yô {Œw€~+ŸwÒ?©õ†þ¢z6k_ŽÖ°Ðýä>`iªËwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"`—±ÓËFãêÙ¡1ÿiîïªe¹>Iy=z‹ê­õº·6XùoŒò£¾ÿôMÿ?ÿ1PÜçXÐÖ‡€3í&Øqâ˜Òfê)t’ÝO'P{wöLq©tKf5Ôxç]~ˆåe[¸ £k¢î]üŠ2Í;˜d¼¬Ýç ù¤¦êJ§Ú25Ðja‚?—³÷¿,)ý¡À–9ÍkÀ.?š6‡Iâc””ØIT9W‡ì˜ƒ®ã ?AVÒR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯Q³"šˆm .¬Àø)çýVþW ßFE–—Ói¤úN`pƒî.i˜Ó´$¦À €F ðBg9¬isÎÖ·ROeFª3Ë‹MmÖÀð@ŠÃ=2íó£„Èiø¨;-ôšÜÂá.ôÚ^šË\bÇñÒJJoY}5nõ^é·{÷†Ìn?5=í/5ƒïK{€U\ìGåd×ùØÏfSIÐ×!àG&H„,|\Öc1¶Ç©ZÚÝÁ®©yuUžüžÉ)½ê2·.Úò§l}ú!æÜ<‡<ƒàCJ­^ Á‡3`q®bɆ¶û, ™Úáª%¬u}*æ;é6›{Ξò53Ù% é}£_ˆn}Îɳ»¬/ -nçG­âUšzA¼I½ût1—“ÿ¥“ôÆ\ü.¶Õýµ› nÙ{* 8nÝÝtVzN5ôVás\ßkõ×¾Z 9¿˜?6uå%"ÿ›#÷r?ö+'ÿK%ÿ6:GîäìVOþ–Z©$§+þltÝÈÿجŸý,wÕÞ”ÇhÜý‹ÉÿÒËqRê×{ V Ìw?ÞS‹oOÅÂê=1ØÞ«M¹.e÷ÝcK} Ÿ¶ØæòÐxZË?.ªéÊèõTݬfS€ú ‘©=ÊÐIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%1ÿßê»þú¤£þ¿ÕwýõI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$“:v˜æ $¥ÒTþÏßy$6\$w·@w|y¦Y|¤@þ{Ýôü6kíüRs[ ÃÈ÷ ’«6}œÓ'×A&vîžw~ïò”C3­‰ÒuãiÔjçtøöIMÅÖËã>èSV]ê¸Á;Y2tç·y))2J±§ W’úIÜK¹ú¹EôäûÜ %Ó8ñ¹±ùÑÄñ )¶¢êØò „–ðUs^FÓ·p%„ <óÝù~}”Ëženw韻ӉlszJN’¦êòäL˜'Ptá¦ÙàR}Yd‘\¶@Üç8Ææë¤¡>I)¸™­kgh‰$Ÿ‰äªïªÝ¯-—=¦7í¸xï=ÐënA Û»Gé$m‡x–üRSpµ¤‚D–êÓáÙ:ªp¾²íÚ¹Ûµtq±æÿÜçÿ˜Ô”‡ë'þ'ú‡üC×>ï¤~+Së&cz6kÝ–çµ´?p-FžÝÎ×=¯sŸ]eìscª%¶6§¸òݧ…nG))I! ª Í <׸¨ŠÜÖ?Q¤‡<EIJIRwYÀn'Û žiõT Þ_¹„‡~nèI&8ÕGÙ.ÇÜæ¹ ÷1Í­ÛZí–¸lt4É‚’›)!båcæc³'þ¥6NÇÁµÅ‡˜<„T”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJL^ÁË€ŽdùOäN~+n~ýŦ GÇŸ˜’’‹ks‹à\9h"RõkÜY½»†¥²'Å Rky±’âKŽÉî#‰â#æ›ìû‰{ŒÉ-:- Žc²JH.¨¸4=¥ÄH‰!N u–¸»q -?3¹#A$šÁ'””ÑúÊ@è9àèM’çÝôÅmýdÅ£ösÃ,¡äGŒr±ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H¸³Ó§OÒÙÿ¶÷!)bÓUýW§×kw0Ûd…È–äù%äö›ûÃï >­[K‹ÀkLO…_öONÿB>÷zzú}qÚòAÜdˆkƒ€‰òLi6 µ {`ÀÈú>?…µ»n׺K`ó 16»yÜÑ·@ƒ3§Ä§8ä9–êšÖð 3ñIIM•‡ŠË†óÃg_¹&ÛYú.XÐ÷¡z6=Îq>›lí€] Û£¼Ò8ï$8¼ohÚ=ºm‚5Ω))¶ 7´ ½jHí#¿C 5ć¸Dx´0’gã=åÃvÀt’ÒÖµÃË褤æÊÚí¥À;M ¯ J»ñ ´ˆÛƺßÀ+ )I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^ƒ‘Šoyw¨êÿDêÁa ˈ3§taü㿪ßÊõ$”ѯ ñcžÿLXkCOµ§Ó훋dHÇÁCö}æ²Â*2]°8È`w¦dÔÆÈÚF€r´RIHoeî½ÖS²Yd¼‘ºA€Ó? Kz} _·ô5l«P׬U´“Ú~œy-’SEÝ=Îß-©¦ÆØØlÞÇ5­;Aˆiž5DÈ©µ`eµ 5¥·½­h€ƒˆ­&sZö–àyå=}¨¶ÊÚÑU-ôÞaÏt9˜nÃØÖ5Œö‡™<êI)ÄèÝ#;$Y¦Ú™ëzlckq„×E ê\toMg@ËÜÛjÈvÿ_)î©ïq©­É6í¶¦Ç¶ÚŃ¿¸’Jy‡}\ê±þÊßDdîs‰ÞÍæ¶ÖÛ*Œ@Ö{›&»¾ðehàô¼šz«³­m 9·‡XÒM¯7YU­kœXßma…£_»¬’JqOJê6×ögºº*ªÜ«ª¹ŽsÞçdzâ¿nÖlÙëɇyú½Ô†>=šMÛo±ÖJ—ØÜv6êÛV=^á±Îkvý-wJê’IO?Õ£uv³Ó¡¿ÓMù7Wuv°æµ¤c²ßh€a‚¹sŽÖñ«‰ž<”é$§ôþ¬ìw;Ó¡¹-ɾêØm{˜Y’ÛíÎôA‚Í4×ÉIÝ#*ûD :)n>ôØE­`m~¦úŸS˜M…u#nÊÙI%5:N¸8,ƶÏYí}®Þc‡Øû=­`áÞ ÚI$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Oóþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”‡}ì¤àNé€ p'óˆDQ}lÒ“„”Å—µÖmpæx;b{ù¨œ¦ \Y2Dî&{ø'ô×Öv¼÷2à'˜i1¬) Y˵v¤ž$‘´Ÿ¹%,Û·=­ w¹»ƒ½±"‘Ȥ.2?’ïîRmld@"~&O⤒œ¬™5~ÂÎh$ï¥à<ǘXŽúG⺬€ƒÔ äPø?Ï»éŠt[¾Òú,’I'3©$’IJI$’R‘zü³Ó¿ãlÿÛ{‘zü³Ó¿ãlÿÛ{;-ÉòKÉë’I$Æ’’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”±c ’$ñ2Gä)½:ÿwñw÷¤\íÛZÙ€ 23ãðY™™Ùtg\ÊC^ç7 ºë°vE÷Tç{|£îINŸ§_îþ.þô½:ÿwñw÷¬õƒ>êWP´Ö*±ÏxcA¶Ì{dÇvn|§óõ›! c_ö¿GÑ­ÆX ¡×¶__ó›t3çªJz_N¿Ýü]ýézuþïâïïXy=w©×뺬z jûAk^÷‡mÅk,³qh"\µ±ñòHýbÊ}ù•ÑC1­7{¶ÃÍÕP7ç8înÁr’ÏN¿Ýü]ýézuþïâïïXuõ¼ðr½sŽ= ÚÖµúÙö›ñK ¿VŸHi#S«‡*ŸX22ˆµÍ¯Ò.Æ ©„‹¬²ú¬ÜCˆ"jÐ|Œ¤§Ó¯÷z^»ø»ûÖúÁŸe-ôkÇu®i³t¼±­û;²v —·nÓ¨ñÓ…s;$Øzkl¹Ø¸Ù{{Øã_¸T,®¿Y¤z`™3"bS¥é×û¿‹¿½/N¿Ýü]ýëŸÇë¹4ºªúî©ÖUuÅ̶æ;(âÕé7¾íÝÀó•²YìLÖúp ÝîsÂÄwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^œµ¤É5 Gܘ8ïê·ò½WËê}; ÍffMxîx.clpi hH””–ìL\†µ—TËǵ®74ÈÓâ¤úi±¥–VǴĵÍãB;(bæbæÔnĵ—Ô´¾³¸nÄŠ#l©Î-cÚç@ ‘ñ„”­Œãkc^ÿ?zoFæÏMž¡íˆbt…4¤xxIL T™šØw×KA–“$JL¢ŠãÓ©ŒŽ6µ­àÏa⦢Ûjx%kƒ~‘kã )Mª¦ˆmmh’`4.úGOé>ºìa®Æ5ì<±ÀéätMëS³Ôõ³û†Ùøð¤ dA„”ì¸Þ»r}&úÕ³Ó­ñ«X ío‡ÉHÑAa¬ÔÂÇhæ§]ÚˆŽuSI%1,­Ó¹­3Ì€gM¿“D™]u´2¶µŒ5 4€ I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)«kr÷8ÖL{ Oc²#áªVŒ—;p“íkG湺L«I$¦£sªÚác\6nq~¤Ï¾6ž!+“ºÍ›øtÚ Û´O<«i$¦«k½ßH¼ ÍqÙvïÎðŽéy.{„¸ó©.²|ùVÒIMj«È1Ï.Ú6‚ îk:ÇÒòE,ºt¶†Ðˆ’Jr>²UìL×z’C÷{@‘,G}#ñ]ÖOüOõø‡®}ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹ÓÿåžÿgþÛÜ„‹ÓÿåžÿgþÛÜÙnO’^O\’I&4”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•èXô]ûxemýÄuEý·›Zí¿pEÎ;ú­ü¯RIM›Ü70Î’¸îöÌn—uXô sÛCÅnfµÛ¼:}÷X vÔ$’ž/'­a–úg"ñVSÃ_³vúƒëͦ‡—{ £èåJ}LUE,eÏf=í°6Ú‹,Èö·s[¹›KIt‘¯+§I%8]>Ω—Ðs~Ú,9ScYSØöØê}Ì÷SNïyÓh#Ì 5wJ5·p©øöäcââ[†ë*­ÀØÈ¶=W@ú ëÇuÒ$’œ<†á°ïn é¬õ˜úYŒöµ—?ÓÙkñv5ÎZæîØbVÍ>™¥†¦ì¯hØÍ¥ØÐl ü!M$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’S›õ“O«ý@ž=®mÙ8»é«ç÷ÛýëµsZö–¼5Â× xPgôÿû‰Gý´ÏüŠ Ó&<œ¥ÛÇý§ý5ç·ûÒûN4O­\xïo÷®ÃöOÿ¸”ÛLÿȬ›ºM_®ÆÒÆZq¬xxc m²–††–íÛéüQâ_÷êþ./ÚqÓWþ{½/´âÿ¦¯üöÿzì>ÁÓÿî%öÓ?ò)OéäöZ÷2êRâWÞ?«ø¼‡Úq¿ÓWþ{½/´âÿ¦¯üöÿzê±zgNk%¸´As½¾“#Gä£~Ïéÿ÷ûiŸù¸•÷êþ/öœ_ôÕÿžßïFé·RþµÓƒ,cÏ«a†¸ýﺯÙý?þâQÿm3ÿ"¥^&%N«ªÞ8s+kN¾mq"Yø;ø¥I$aRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþWªWÝÔ­êŒÀÁuÎ;¯{ïcŸÃà l{Çznݵ‡hÓqÒUK¾®ã]m6¾ÒçQmÖ4>ºÞÒÛí¹…®iú/×rŠþ‹S¾Ì®kq^ûC[¼—Øm1dnn¦4ä$¤ù=GÝ™HfÑs‹¬/kZÖ™†#Sà…•Õ^6.F0®Öf½­©öØi¯k«}¡ÎqcˆÑœmE»§Õnuy®s…•ËZ#iô¤}þ©@»¢Õf&m-ni©îc,¬u^æXÒÓ£üR:í–Ñ[7c«EÞ‘ s"¿Ñ?|í‘Æ‰_\©ýW§ú/k2hm­Évmiµ´8Ï5´»BR?Wºsém73ÖcqþÌÝàKFófö8jÇn:mãE~®â1íȺÇߜۙÛœm&°Ö’È¥Ú|d¤¤8ŸZ*ÉÅé÷ rËsò>Îú Æê‡ÂcÜ=ÌðúKNÞ¡‡Mÿg¶ÐÛctCˆ „¸  Ó™=•,o«];Æ]^ÿYŸgÉ™ÛCa±~Æï#˜FÊédäº÷Zöµàz•Ø.c_[$HÚtIJÉêÕ³'Ó½™– ê}4׳yyc´†i¦¨Wõ‹hަ¿XfëtU9.± ú¾Ÿ ÙÎÝU«zv=ÔâÓhõ+Ãs\Ö¼Vê†ðàGŸŠ…ý'ûKì×:‡¡¥Ÿ«–7iú¤¦¨æ²Šq™vO¥ëØqôƒ ‹o¥ïsö˜@óR³«c·Œæ‚kÉ uaÞÒæ›\]£emsÁ>GLµ·bÜü+^5í5NàÐÇ ­-$íp%;ús‰N,0`¹†ò\6µ¦§5ÎÔë[œ'ÇT”‡'ëK¢«,eí·Ò},pi1ú`×´î‚?›;ÑëêÝ>ÓXe¤›ŽÖǶóT?sFÂ^ÒѾ$è>ªôüw1ÕÙnæVÊäºAôîmáå±½»dvD?W±~ßNpy6Tç;kØÇƒºçäˆÜÙik¬0BJmáõ< æ½Ø–ú­¬5Îpk€ÚùÚà\Ѹ§„6õ¾”úC2ê$Z×’e»ÃƒCwíº"±:eX•–V÷:qêÆ£èÐÖ;úªXÿW x¬e¹–?)­cxk 5”ýœÖÖm»\íNº¤¦ùêx!ÖWJ›ºË^kT7dû‡¶e'­âãŠÜwl±Ìim•Ø7¼Õ»Ò}aÜð9=“~Ĩ]m¬´·Ô§Ðk=6µ¬¦Ÿ¥€Ý7¨[W¥“evÑ·Ó°5„Û ÂFÐ$ÆÞ!%&ku»Ÿ3Ó,±¡ÏÞ,a°Ö4¸î=»Â±‹”܃kckè~ÇwcÁðs Í¿ê¶ Õ2¿QÃÓ,-.k,iÛ[ª!Ì{KHpqZx® Þ÷_}›ŽÑ c[Um°JJl¤’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥*ŽªÃÕë¿iô›‹meý·:ÊœÜÒ§Ô2þÅ‘™³Ôû=O·dÆí£tHò*8ýk"ßI®ÆkeϤ’÷†‚Ýd說isŸÃÚß)% ¥:É*3.üÌA‘}L¥ÎsÚÇ›1Æ¹ÜæWݧ²°û69`ŸñIJ¥¥µÁw8ýî%MVfcœÂòÈOu2ÑáðE®Ç½Ïh†g@ïâ’’$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜êNÒA ð]ýé÷ÜÜ—Ô0p¶ »ë Ù;Ü;ct|$#µÍ{CØCšà \5))[î?îKqýÇýɬ²º«u–82¶ç½ÆRIH¾±`¨¸ . KZ@&<pIKî?¸ÿ¹-Ç÷÷'„’RÛî?îKqýÇýÉÒIKn?¸ÿ¹-Ç÷÷*Õõ^™m㬪Ÿ{¸­®ÆFîÞZ«I)mÇ÷÷%¸þãþäê·í.Ÿö¯±ý¦¿µ´Ó¸nÜFè))±¸þãþä·ÜÜ£êÕézÛ‡¥·~þÛbgîSIKn?¸ÿ¹-Ç÷÷(ddcâÔnɱ´ÔØ{ÌIÚ5ó%F¼ÌKqŽUw1Øí&à}€7é|’R]Ç÷÷%¸þãþäé$¥·ÜÜ–ãûû”}j}q½¾±nñ\û¶ÎÝÑá(8ÝO§eØjÅɪë -c0 ”ØÜqÿr[î?îN£êWê·P4<²uÚIÑá!%/¸þãþä·ÜÜ«ž¥Ó…ÖPrkÒ µ›„´w‡*Ì$¥·ÜÜ–ãûû”} õ ¬k} ²G° »ÃDD”¶ãûû’Üqÿr…y[e•Wc_e6æ4‚X\$ÒRÛî?îKqýÇýÉÒIKn?¸ÿ¹-Ç÷÷'I%-¸þãþä·ÜÜ$”¶ãûû’Üqÿrt’RÛî?îKqýÇýÉÒIKn?¸ÿ¹-Ç÷÷'I%-¸þãþä·ÜÜ$”¶ãûû’Üqÿrt’RÛî?îKqýÇýÉÒIKn?¸ÿ¹-Ç÷÷'I%-¸þãþä·ÜÜ$”¶ãûû’Üqÿrt’RÛî?îKqýÇýÉÒILFâðv]$ˆçj’I$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JceuÚÇWcCØñc„‚b ÅÅ66ÓK Œy±¯-ƒÜ6¹Àø9EI%1el­¡•´1¢HkD Nãlj)ËZH$[¨'²t’S]dAh4€H:”’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%9ÝC¨ß›M¸9' ÌǾ¿_k,ÞêK˜ýcØO·Ã•™ƒ‡ÖëȤ¬Ç¢¬f2ºÅÍm.­Õ=þ¶Ÿ¥áþ“BéIO)oOë—ôüŒ[h¹ìw¬Úk7 õ²ª…ns¾Ók‹Zñd‡<Ì#ÌÑWS£*¼k2k]S…F°Cžú^ÙÙ_!‡…}$”óvaõ{:‘6Ós±}znöÛk½¦däIý:4v‚`©â`u§Øöf¾æµÙL6–?k]P}²æ<^ç{˜Z CðWB’Jyì^ŸŸ®¡ö–îÄeUå· út[Ûk¬h¹„¿w»w»¶¢úkº‡Qú´ü—’ÌΣŽçÖÙ 0º½•†óß9[I$§# 3Ñξ‹MAÎÅÄÚÆ8õVÃ1½…®lDé µ˜a,¥×ºÁAk.uÒ5Æ{\ÇKÿœ9$8;oœ8]I)ÇÅéùÔg×o«{¨eŽam—´Òìv’K\L»ížGoj…ý?ª ‹ncÝf3º…yÁúÚ)£lЂ׳v×1 m$”óßcë^˜sò>Âk6:Økoô Fæßw©ûÕòIß  ò1:…¶U–ØÖ8ßëämh¨äÒêØÍÖ5Œ&ðÓ¤È]D ‰±IN+3êå6bú޳í"ê‹^ÛlW–^ÒÇÞí¯ŠÛ¦ãª]SªçôÓI«"纼ŠÜËUuk}»ìölo¸G~ãºßI%<¶Kú…½C7 î·-µÚûÛ÷4³í4šëØÛZ*w¢ÎXfuüå«ö|ïØÕR}[.kšndŠîuBÍÏ­®>§íÕþÔ­0˜N¦;§INgCÂÊÆÉ»#/vû«¡¤¹åÿÍ›t#qÖ¹ žþ%f~ËúÁF3j°Ýex·×Md±Ÿg¹ÍöÍ-Þ×gˆ:Ï1Ó$’žrÌn¸Ì\CK/}•Ø^X\šßQ§a1Í#d€ç¾Ï€W:>&m=JüœªÞ êkkìÞ,{mµòÆîvÆís{‚×I%8Ucg·¢Yц澦–²æ:³M±`~ñï|’e¼Îªaõ“öƒ¶÷µÖ4ÞÖ^ëš//w ïSôcцDzÐ$’œ6cäcu'æÙMß³]KZì}áîj!Ææ—¼ÛÆÀ$êg^Ú=*›¨À¢«Ã…̪¶ØçÀ¹¬h1©ˆàñª¶’Jhb6öõlç»õÓkjÜM{\kߺ^]®þíWÒI%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­^D“Ǩõù¦ÿS'ÿ=Ö¯~gÏø$¥áž'îÿjPÏ÷µc[Ÿ^E÷ú¬8ÕfÓ‡ög46[h nm‚\^lÇ•_XY~[1i ¹ÆöÓaõv5̹íyÚN¿¡wµ%;0Ï÷µ(g‰û¿Ú±GÖ\cM¶6’]M­ÃÔfÁ¼9Ísíµ¿@ˆñÝ1úÁö{r†].Rû6\ÒÂØ®Šï,Ò~™÷p’¸g‰û¿Ú…‘mxøöÞe–:Âä4G>K(}fÄœvšÝ¿!ÎihsLm{j%‡ü'¹Ãè£;-ù¿Wò2¬«Ðu”_5n¡ìúMñ„”ߢÑu\Ñk`o1¹¡Ñø© tÿù?þ"¯ú†£¤¥$’I)I$’JRI$’™´rLü<~iCk¨Ç}­Ù‹ë²ºqŽC¬°½í $°£˜INÊK*ϬãÞìlšËo®ŸQÍc˜ép /nÐéh—À%Dýc¡–ÕEÔ>«ßc«}{šâÒÛ2 ûýÇ·d”뤨õ ³iÉÆ8ö6ÛYŇïÒÚl.­ezéßâ–_Tn6G )u¤ ÷¼9 5×9ÕÒÝLÎaÙ%7“´IŽ8êy­èxyivVq¤mc‹ ãp cL;hÐIówu£Ón7áÑq°\l¯q´7ÓÜHçf»~ )q™†à lsàŠÞAøû^'ï¿þÚ÷&Â?©ÑÿÏÈgWëy=7?icNÆßeÚ—UsÝc)s¿àÜæm>ŽÒ’Oµâ~ûÿí§ÿr_kÄý÷ÿÛOþå—_ÖZ±Ž©ö[G­nÂÙ%•²Û@i#nОUœ®3²XÊi?f·í5d—s}C[aƒXpIM¿µâ~ûÿí§ÿrG3 ÞÿæŸýÈ4u<{³ïéÐöec´=Í"ZXOµí{e½þ‰;¼•§}ðIHpó+̲öÕôh´S¿é®»w/Ò+Ï÷µe}[ç3ÿ ³ÿm±•ü«¾Ï‹vFÝÞ…o·lÄìitOœ$¤ðÏ÷µ(g‰û¿Ú±?iÙ‡PÉÏΪÒqÆC°ëc[£Ë]]’ c\è“ñSgÖì4Šñ¬p³g¨ðæmg©yÄÏ¿Þ?7‘ªJv!ž'îÿjPÏ÷µcbýdÆËÚ1è²Ãe¬ª°ÒÍE±áÎ3íS·7‘¢j~±Õ~K(ª‚áêšîx±ŽØÑU—5ÞÒw*>ÞÉ)Ú†xŸ»ýªµyL³6ü6ƒ8ì©îyàú¦Èyzh'«QÕi}Ô´µ¬-ä‡Ýí!ÍÒ`ê;(âÿ˽Cþ#òä$§Hµ ‘'M8ÿjPÏ÷µ3þ›¾%RêY7ÒÌzñËYnUíÇ?PÀæ½åÁ¿œèd4x¤¦ô3ÄýßíJâ~ïö¬Ìž¤:aǧ1ç!÷¼4Ýì¬ûžجv® ³ë²0®/°Ö1Ùº°lõesô¡ zN:öINÌ3ÄýßíJâ~ïö¬\߬ Ç}ø‚²Ìº±ßd×X)vCZZ­†êî'E­Y.­®< ù„”‰ÙLì—>—ß¿€ÆDyïVKZ4$ÏÃý«5ÿø¢§ÿÝÿŸ¨ZOú_!ùR¡ž'îÿjPÏ÷µEeu.°ì+³+-{½1‘NÊl´ ¼{ÍmpômæS¯ ñ?wûR†xŸ»ý«ϬLq·†þ±I­¥æ wz”×h-·ùßlò®ôî«^{œK醋¼´îasëÝí&=Ì<¤¦ü3ÄýßíUò2«§' –ç°vVëI?æÂ2ÎÏÿ•zOümÿûobJtRI$”ç}\ÿðÿªÿüøõ¢²z.V-+ï·c]úJèÈs ½ÇÚïG^UïÚ¿ðßû‘ÿ¤S¸%û§ìEŽá°’­ûCþÿaò?ôŠ_´1á¿ö#ÿH¥Á/Ý?b¬w ”•oÚ¿ðßû ‘ÿ¤Rý¡‹ÿ ÿ°ÙúE. ~éûc¸l¤«~ÐÅÿ†ÿØlý"—í _øoý†ÈÿÒ)pK÷OØ«Ãe%[ö†/ü7þÃdé¿hbÿÃì6Gþ‘K‚_º~ÅXî)*ß´1á¿ö#ÿH¥ûCþÿa²?ôŠ\ýÓö*ÇpÙIVý¡‹ÿ ÿ°ÙúE/Ú¿ðßû ‘ÿ¤Rà—V;†ÊJ·í _øoý†ÈÿÒ)~ÐÅÿ†ÿØlý"—¿týбÜ6RU¿hbÿÃì6Gþ‘Kö†/ü7þÃdé¸%û§ìUŽá²’­ûCþÿa²?ôŠ_´1á¿ö#ÿH¥Á/Ý?b¬w ”•oÚ¿ðßû ‘ÿ¤Rý¡‹ÿ ÿ°ÙúE. ~éûc¸l¤«~ÐÅÿ†ÿØlý"—í _øoý†ÈÿÒ)pK÷OØ«Ãe%[ö†/ü7þÃdé¿hbÿÃì6Gþ‘K‚_º~ÅXî)*ß´1á¿ö#ÿH¥ûCþÿa²?ôŠ\ýÓö*ÇpÙIVý¡‹ÿ ÿ°ÙúE/Ú¿ðßû ‘ÿ¤Rà—V;†ÊJ·í _øoý†ÈÿÒ)~ÐÅÿ†ÿØlý"—¿týбÜ6RU¿hbÿÃì6Gþ‘Kö†/ü7þÃäé¸%û§ìUŽá²’­ûCþÿaò?ôŠ_´1á¿ö#ÿH¥Á/Ý?b¬w ”•Ú¿ðßû‘ÿ¤Rý¡‹ÿ ÿ°ùúE. ~éûc¸l$«þÐÅÿ†ÿØ|ý"—í _øoý‡ÈÿÒ)pK÷OØ«Ãa%_ö†/ü7þÃäé¿hbÿÃì>Gþ‘K‚_º~ÅXî *ÿoÆÿ†ÿØ|ý$—Ûñ¿á¿ö#ÿI%Á/Ý?b¬w „•·ãÃì>Gþ’Kíøßðßû‘ÿ¤’à—V;†ÂJ¿Ûñ¿á¿ö#ÿI%öüoø_ý‡ÈÿÒIpK÷OØ«Ãa%_íøßð¿û‘ÿ¤’û~7ü/þÃäé$¸%û§ìUŽá°’¯öüoø_ý‡ÈÿÒI}¿þÿaò?ô’\ýÓö*ÇpØIWû~7ü/þÃäé$¾ßÿ ÿ°ùúI. ~éûc¸EÔåþ›ýLŸü÷Z6WQéøMks2jÇ/$°Zö°9ÅPêøîë½9á·CY‘3EÀêÆpÓ\Ÿ’¶î£‡ùÍ·çþ’K‚_º~ÅXîkYõNÌ×ç~Ø,ºÇú¤74 ÃÃC›Q%€†ˆ%«¾§Ukn¯/XÂÒÃö’@Ù»nÖ›6€7»@#U£ûG÷mÿØ{¿ô’_´pvßý‡»ÿI%Á/Ý?b¬wsmúžÝá™´0X–ö¬Üк4hÑù¿T^ÇVüœ'VíÛ˜mfÒÁK†ÝÑ«¯~ÑÁýÛöïý$—íÝ·ÿaîÿÒIpK÷OØ«Ã@eýS¥Ã:øÓèØrœ^ˆqiy·sšKGµÄ…®­õvž“•Œi»ebæŸsÜ@—\xZ?´pvßý‡»ÿI%ûG÷mÿØ{¿ô’\ýÓö*Çp“þOÅÿˆ«þ¡¨ê·í o ¿öÿý$—í o ¿öÿý$—¿týбÜ6RU¿hcx]ÿ°÷ÿé$¿hcx]ÿ°÷ÿé$¸%û§ìWî)*ß´1¼.ÿØ{ÿô’_´1¼.ÿØ{ÿô’\ýÓö*ÇpÙIVý¡áwþÃßÿ¤’ý¡áwþÃßÿ¤’à—V;†õ¾‹M®ªÜüzìgµìu¬5O(óƒ Aê8¤õY¨?4SÔ0§Qlÿá{¿ô’_´0¼,ÿØ{¿ô’\ýÓö+ˆwv^OÕ\¼1„z8øáÁû1²N¡Þ Õ†G»Ý§t*¿æƒ1ÝŽþ¤ÌŠÜ\I»/sýãkÿH×µþñô¤êµ¿haxYÿ°÷é$¿haxYÿ°÷é$¸%û§ìWîúò~¨T÷¾¼¼V›K]`ûDµÎaak‹ ›wMm÷DžèøýcêÞ5-¢ŒüVTÉØÏY¦3çÝYý¡…ágþÃÝÿ¤’ý¡…ágþÃÝÿ¤Òà—\C¸hdu>›™Õ:Ux™Tä=·Úç6§µä³Ü&V¿¥_¬oÛúRÑY} —÷’€:†ûE³åwþ“OûCÂïý‡¿ÿI¥Á/Ý?b¸‡p‹+¤ad=÷z`d<:âó^ç·cœê›cISÏšAÄŪ¯P›²*}– Ú]Q›_ê¹°ÇÉd£‹§“%Zý¡áwþÃßÿ¤Òý¡áwþÃßÿ¤Òà—V;…[Ó°î˯6ÊÉÉ©»c^ö»·í!ŽÃv°B•¸8—^Ì‹+¶¸Úé#‚Ke ívÒe²4ì£ûCÂïý‡¿ÿI¥ûCÂïý‡¿ÿI¥Á/Ý?b¬w ¬Âųa:¿ÕÚÖµ¬Í\lÚæá·h‚ ˜~&<½ÌÆÆ¥±.!¬hˆ”?Úþì=ÿúM1걨º<ñïÿÒipK÷OØ®!Ü9øÿXú=TW[²i.cÓÑÈþ•TÏÍú·žû~aê†=µ³*€ÇW.;\Òò?8­ŸÚ^ì=ßúM/Ú^ì=ßúM. ~éûc¸qjÊú©[ÏY¯õE¥ùl÷ìÛ´ØÖÞָؘUšºÏÕºmÓe5½­sÛé5îõÐß[oÒ×…£ûC ÂÏý‡»ÿI¥ûC ÂÏý‡»ÿI¥Á/Ý?b¬w 6}cèUîßC7¸¹Ûm K.1n¥9úÍш#í5k§óÔéUoíø^ì=ßúM/·áxYÿ°÷é4¸%û§ìWî_Vò1ÍYÙÖ:†ä‚ëƒ` ÇÇ;Á#Tk:ïA²·WûO›Á™s„÷i•dgâÆ‚Ý¿ñGþ{Qû~…ŸöÅßúM. ~éûc¸phÁú•DÔÅ•¹Ÿg³7};A{EÛZ èÂÑoPú¬ÐÛ±ƒsò7º+¬ÉsÞç¯×•{íø^Ûé4¾ß…ágý±wþ“K‚_º~ÅXîfýRÇNf+×›XÏ´Kò còÖÿ8í#U ¯úM¢êòñ… ´œ’@Ú×± 5Ö††½ÃlD¥öü/ ?í‹¿ôš_oÂð³þØ»ÿI¥Á/Ý?b¸‡pÓÃêV0jôqs±«¨}}£sZ€0=îÚ<†‰úf^._Yê7bÜËêâ´¾·6AÈ‘-Vþß…ágý±wþ“N3ñ4[T]ÿ¤Òà—V;„OúÁÐw»ü£‹Éÿ ÏŠ¥Ôòþ¬uJ} ®©P«’ʲÀH!Í'¼´‰p´~ß…ágý±wþ“Kíø^Ûé4¸%û§ìWîšÏÕÐÚlêLÈ 2~kŸdH~Óg¨æ‡ À@(¶dýO¶±U™X… ‹À#Óy±›\ׇ×8A•£öü/ ?í‹ôš_oÂð³þØ·ÿI¥Á/Ý?b¸‡p眿ª%î°æco}b‹ÚO¾°ÒÀÛ©†¸‰t•huþ‚¨â€4¥g÷£}¿ÂÏûbßý&—Ûðü,ÿ¶-ÿÒipK÷OØ®!Ü4qóðs~°Öpò*È Â´<Ôðø&êbv•rþ¹ÑjµÕÙŸŒËv½Žµ€‚4 ‰Snv/æ‹>T]ÿ¤Ó}»¸²â-ÿÒipK÷OØ®!Ü"ÿœÿ,qíÖzÏÊ¿êÎU×Zþ°rkZÊòšÖšÆïfÞÃÞï½jý»ÂÏûbßý&—Û°ü,ÿ¶-ÿÒipK÷OØ®!Ü9Õe}R¨¸·7›6›g#G¹›6½Ìß·èÛ.‰K§e}Té­wÙóñ½K Ykïkžà œÑ%Ú¸ÀÛ°ü,ÿ¶-ÿÒi}»ÂÏûbßý&—ÿtýŠâÂ/ùÁÐòÇþÝg÷ª¶õ>™Ö:S0ò©È{,½ÎmOkÈ…‚HiWþ݇àÿûbßý&œgbÏ´Y>T[ÿ¤Ð Åy¦í²’Û¨ð·þØ»ÿI¤‚ŸÿÙ endstream endobj 548 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 549 0 obj<> endobj 550 0 obj<> endobj 551 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 552 0 obj<> endobj 553 0 obj<> endobj 554 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 555 0 obj<>stream H‰”WÛrÛF}çWÌ# ¡¹_×r䲫¼Þ¬¹å‡T ’‘ ,ÒQü÷{zze'›-U‰èFO÷éÓJܯ®^½Wâþ´Ò¾‹Q:ç…ì”–ÒàW›”’xìWw+êmëÈàòîÕõÉ‹Ý Ê S2Dk”8íÆ•³"X×ᆓV(ºÈ§ ·æk5Ñ-ß%/U¾§c'5ß|±Y]Ýh¡Äæn•(HÂe ßV‡×ˆ.›ÝŠ®€yó´ú©¹yÝ®]ç››wü+^õ#]¥¦oq$5í:àgËÒùXdÑú.4¿{’|Ó©öçÍ€0 bJœ®¶?bó’‘(—‘0ˆ§§§ÖËÎ5ÝÃ~Èñ]óG·;²Û6`ª(P’àL£›6ÂÏ_1†PŽoð€Â!zc\»ùuF½v¶‹É±VÖ3ÔDÆ|.2àÿ¼RLRp¢]ÿx1ŠH᛽(&©Üæ{¡Y”J®*\””Ó…1ºsme:*Ö!KÏøWk?ÕHwºy¼kµˆããa;îz‚Ô¼{8DZíÍIlÇ[ñr{Þ œóàö˜õ„8â÷L^l#²SG¥ÎN·‡þÜ?¶JAwª…ø„NDî^ïPáèJÏ}úá;1ÖV¥¤ìUõêåq÷ùÐgqõöD¿xy½úq1( ßäCÝhš”U*æþÁPjʽ#&‚WLAVb€ xÓ…¨Ä~åRÀæB:ëítd0²ó)Jj$ôƒuŠâªäëxþI;«ì"Ĭø:ħJ”´˜€ƒµ¢¡™-õW9W ÎuÁü_øÄßNò«¨œõË“â«?þe ÞvÖ¥©öè…ñ‹3üýÂTÒìqÂX=.IP&h——¸BÃÒ¯³)ûÃb±&”ãþ‚î’ry±[I€‚ìL˜-ûD©…GTâÂ8¶Hi‘%|xµìÇ) F'JàÐÊ.-<=7– a´­feñ^¿–ñûëb ¾Á¶ùÔþI()ÞŠŸ~–âv"êï–\Å„áý*âq–̦*&›¨;¿¥@»iE8£ïlú†<ç#šÉ/£ÅIBÔIÂdi@CÓPåÉoBŒû†bòŠ#1wã¤Q17“ËX«b¶À •áŠE:ÿ{(‰‡ƒJ‹l”Ä# …E#*‰'‰[•L– )©;¿ìDXx¹l+%iÐâ…¦ª½H`üÅúT2 ÅՅƲŸ)ÙÐZ&®$ÈP\êÀYAáâ¤!9HÍr­+¢»| ÄP4.[D],’e¹8Ä«ˆ‰cm²ARìÀ`AdÙo|"9Ÿ5V²Ëä9„­'Šìd1i,ƒª\Ô%·¸Ç—šóô¦Ä`Éq„’£5kYQ“VåtI:_äê?ð ]¡µÊÌ«÷i’ù€)4‘f¡¡ÒìWWËòÄ©€±¤KS™î˜©Hxì¿‘ÉJ´XƒBd9°¯/D›¦Ecн]´”T5Æ›í¥d6” I3U¸ŽUÖ¦œ¨ûÅi_’OQ=ÓxÅq`ÿŒ çšå)õ75LÓºÀsâÀŠÄ^Ÿˆ”PX†›²œ\ TªGoó$[•3Tå)f,÷Ÿv¼5Ü•r³fFlYZqÿy£&¹ô“÷±dšTÊçôÌ[ ÃZͱ©*áÅÚ$»È/á±¾Ì?aÔÂÄŸpŽ=$Ã\äbHï.d-C=Q4¦t¦«cì"†6Õ¶°e—eÄŒ¥+kJ£%95Ri­Tpg½ûÎ,¹N]î&(<׉Y†â,ó ®ÔlaÂ….ô"‚*’ËÆ}RñÕ>š3ó<+î4îÄÊAiÕ™$(¤ZЈ/À4Ïr-ĬáRUµ”ÓÀJ¡¼We<|ÙžQê⡤¥dTLƒÔ®¸à­b𞓉°Ì¬.ù€öÓ>ÔL´ÑÌœ laÜeiH.#’Ô…E² ´§ÒEj–BÊ“2#DóÙx‘5¬^d™ÊûKeØqâ‰O”Ç‚ãû!¦å­âÌDÏâ<"UcŠ}©¬ÓâÙ<ìðbõÃÛk|z]½z¯Äýiõb³ººAƒˆ ^¹0T/øRð•¢Ç·ÂKºØðî¯!)ñé±Ù­Öt‰zmžV?5/>ûs‹ÎjÖÃ(n^ß¼ïX1´øjŽã©ýyóf¥4HàùJ†>šN‘üç+ÅîÿÝoo¯><¶kr𸹠¹Me#®÷Ç]«R—šßÄMk±\šÇV7ý§Ïý¸zŽ}uc9KØùŒ!_Ð*ôx5¶ÀÖÁ\F°ùØ B!Úµo®÷-E8î að@/‘¾d}¶ÙŽ·âC0|@"›áÜg¿±Ž©8wCÖ÷ìøö$vÛ1»ù¥Ûñ‹ÆsÏ&íšø|w%òñ€¤Èô|9M‰Ït•æ%§cj:ó—ÓÁ×€ì’úÂ`}Ûôâó Q|Óß r‡[·-¥£"Dß:¢ö0Œ|ÅÁÍñá<¶{F€BD‹q‘‚€fÃáaßúñ¼=GNõx'ÈÓíñ°Æõ.CrÍ‘"ë†`üGj¡Æ{±?Þ;·®ñžç=÷©+yÙÍØ’KDk=~{±;R98IÛtÈÌ5 g8åιås:éÆý—¬Ûß·|w¿ýeO¬øFÜÅ/‰¬?¯/¢Òp'OÃù£XÞ¼íúñ>ÐãYìJÔÄuÓ‰×w3öž“ß|ǹ¦ç3sÛ·¾9 ¹K¨mds+îrqsïÙ©÷`†¬yg€Êsuþȿ̗xh”}VîO9Ñ-—k5àÛt.·žÀ”ýfÄãv¼ï¿”»kv-Q½Ýg¯pwà2×_Ž|çüLªÂ0<Âi¿áX©`@Ϙ0\ Æ•kO ûܱhlG»™&!5ÃCW¥ãE™WI”ÿe¼Z–ÛF’àÝ_ÑG ‚ä°ñÆÜhYvøà•Â뱞 Â"Ö Á @ÉúŽÝÞʪj€ 4–OÀîêîê̬¬4˜ù›÷qwh}±g8õSqE_F>mC4€AµôO\ëÇ^<™òX3®{4÷ä¥dèAT‘¢§S»ñ2Ø´‘m§*2$úTŒ&Õ®˜„ŒH U.Êòt,új! ÆŒ²Þyð=eãY\ͱï"Ç7–šPù.áz´ p¥}¨7¸wBžþÎøŒÉW€´_QCU!!™×ðݘÌÀ° zÕ©D.Šœx'üYϺ¬_<œZÜÀó­×hx7N™qÐmXŠ­+ouÅéHAIh,6\ʱYSÏN`ÖÕ¶xpñ~ÓG·_¸8"£•!¿;Éïr¨fƒº¼+úÂÜúÝʆÈ+DÈA/´¥C,Xø8îчÈó®" üÒ›ÄD+·^õÌþhYak‚j…2Wo¨²¼b8¢œ !çz¦÷TB¾úhrÄï"úêç<Â-À@Üâcæ}X!£„ì·Âœ“:IÁ”~.£àÉäËG®3úrƒ9$du¤‹™ ý¡Ð 5Ÿ% lTe^ÛtØ3uRrDãÖ‰f&Ÿ› ™{”Qƒ“µ´ÂÑìª]{|Rb¹.™5fÛ™—þ K½*÷þ»ñ^>‚ÚX¾Às2€ÇCá—VËXðÐSiƻ۹Ì2¹¦Ôª²Ky§zzÛ—qÅT™¢—pK&}„Ma'ؼ“4.Þá7fgŽU,³ {%äDtqpËGNñðç\N±8ð0AQª(ŠE™Ç%’|V£s眰ØSÅ £ÐÓ†Q ‰Š˜pðLôÀ~K7m£Êà.€Š³Ñ€1ÉQëBöu©OM#CŸô.¬êø2Ù3ü\ùÀ…[„æ~ðL¸‡0W®=bL Íø*ôù‹$@ÎÆ€J¶§åàtaH%å¹D±|ÌE&®$:7OÃQQZ^`y¬,§•ª·>2úÁŸCeV´—g”—q ¯ØërÏxsÁuTo¾ê­8kÐ^Ön4àf¸žÄ›ZN;X,«ü'ÎÇ6_"‹°¹—GáRž¢V»!ÛlÈåöÛ¯¢-–v‡gÒ )ç·RLÛGRkC­B È`ÄÓÈ…0¸hÈ V›…³EþÒÊäcw ûÏõ¿e öêmÅôJ)¡ÜbAmsg>×Ýgú‚ šºhT~îàG‘–åÚ¥˜ú—ñü¨kåऱ3$+²R)§ò°¤œNÊÁhšÍìE漏˜Áަyä6ÉôQ¿ †M` í¼d€Sç|‘ÀÊ]¶X£·²îùÏ«ÚÆùÂ&ÓòÇO|^ïsEÞ_ê(ûG Ã|&ÓÊìZ?våçtëÞƒ¤¼¯}@W“…mž<~÷Ç ¹b/š2¿¸KÃë^k æ– §ÖÄU”§¡0 Ž>Ȯ腺²Gg|Ù÷KPæ¤Ä^±Íç•@þ“Û_ç³Âé¢P¦ÄÓñºß²¾úù’%8ö¦pÒH†Ã]h•âš.^ywê¨+mwãýÙ`ž–I^ú~ÒžèIêÄŽ,×±. Zt|HÁI¶Ó@Å©ÍþïJç«.1e'02]¹C“–ÊØ¡Ë°Úeü÷_í~Þ=¹ÕV.WâÈ¥~Vé Õîfÿs8'q —=TrÖCŠ{ä5B •$ÐA¹¿:‰[t…Õ…Õja ©°–…>–¬:•%õÜ4Ÿ½þF $ªÿtç Øw~Š·\R9°NÇ;?")`à§žN•¿·³ËÉpIÈ.­¡´¤w~s4^fÓ‹­ÙþFŸ„EÀ»TðRËÛT;>ò¤+¼9ôl1Ñ:ô&Açã…~ó®¹ã< åd®¨}ªØ>˜«mUúT2ïG½¿§^Ô¼mZ÷…¸ÿÉÐx*IM?×ôšS´9iŠ;Øe5ø²å[¸>ªè·PJdœùŽ}i1wÇûúÛ»¾ºúÛ7ß«¢?¹1Æu Áy5²©º#Ù,Ö :×—5…+*Ö…•6TaaXã–:6ÖS÷¹âºKyAÏŠÙ´9yسÀ®Æ®±¤ü;FsÓ:¡‹½â¯›Ίn&޵åÍÄßÅÈÊOþyä®â”¾'ôrk£{Çq¢ÒÍQÓ‹¨FM.¢÷09¢Šûã¹·ü_ ˜X»âtCkzvÊÖ[SfæÌ„À|ÆÀaÞ'^Ãþzç.öÉ]k–ÌŽ.噼Ԫb?#õHòíFý…óŸ‘×v s·­ötUh¹¸†1œDotT5”åÅ;ðÆkåý¼Ø/ž{AWº™v*Î÷5¶2/WX´S”­ÝµŽ‘óegçKå|T´†î‘æ ™‹pcÜ ß´i…u·®V7\ûÍ56zueví¦b¡{”ܸ"/’•uûÜ(\kb؇ ³Ö¥¦¤UŽèG0ySé+Zs¯éS3ýZ5³árRÍl0¸l±vu•¹Þ­«Í¦Úrß×]G_ïQÜjj"²az¨â)zØQ ßdûJHæ8 †­ NǦ1 Ì ¸©OJü½+¤e’67#Ëýšâ¡¨ef£C`0 $ÔáqËà£stÝ ©Ú‰™¶€2€‰FÞÆgÞ9i ù²xBÊù™÷·V3SHcU5>2x=Ô å†¿äMè2XÍ4”˜º…x.Ï…c=z(G§ÎÔ+„ 9›ÌPM«kÊ$áBٜ˶!¡  WsæÍ ƒbÙÇ-’j½+ÁøÌl ™ýP¡ŠÈ°È²Æ’ .̶ÒTŒ;%¥[OR‰ƒ¸× G dê'>stream 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 557 0 obj<> endobj 558 0 obj<> endobj 559 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 560 0 obj<> endobj 561 0 obj<> endobj 562 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>> endobj 563 0 obj<>stream H‰”WÛrÛÈ}çWÌ#2¡¹_’'[¶\v•ãìŠI?Ð$ÑK‘Z’²ìïÈçôô ¨ä$k—Š˜F_ÏénJÜÌÎÞ^*qs˜ißÅ(‚ óBvJKið«MJIìûÙõL‡zÛ:R˜Þ=;?x±:@dŠBâB†h‡Õv欰¦ƒÜI+]d#D¦[¾K^ª|OÇNj¾ùj1;»ÐB‰Åõ,‘C‘„Ë0_ÜÍ$Œçˆ"‘Øb…ãâqÖß.¾ÂΰÝþs&Úv©‹Åk6VŽŒ?5­—kºïëÍzÛή¿w«Ý]ûyñ~öfú!Š@/ -j´.~ž¯ º“qš³ÌÙRÞ”ñ§æâ]k»Ð\|Ì?âm¿Å…iúvn›ýò¸Û‹o¾S9‹¡.J=#æªÓz¨¥+Ø÷ßÛyèló¶Õ í©7N¼¼ß·så!_o„J,~!´ä+%kÅÿƒSÓ°`Õ&»ä¨NܺáxÁ£[©X¢[,º #ø5~B°Rµ._0;¿%‚L³¼çßcÏ¿{aþ\*L¸NEF„£­‹3ËÎÞÔ`¤›.x…Ã~ÉÂãš<Ûf{ÃwÅñ¶¨‰ó_íû Øïè赘9´Dð¾sÂ1×€êþçŸÄ–;^ªÎjª»d…óÔUª4ýÙëÝêá®ßÅÙ‡scÅ«×ç³_FD$ƒ4yÒ$š@e•Š™ ²¦A®t!a`ѧ)hq7#p Þt3¼„†ÙN$#­« ’OQR«£½¬S[%_Zàça\ìtLã0#Ésa~^ÙŹÎK÷G£«ÿ¿˜g€)­&aN’çÂü—b”ÆÈ†õ»âÓLxH]LîðP–´FNG‰§“D• Úå}¯Ð«ôëlbŸÚ }W<ò‰NöÑ䧀ޔ–S¥ÙA‡$¾ó!M$4Ù̕պèDp4*~Lœ@0ÄJ¨#f ûêóÞr% =ÃéÙÆ>¡s匎e‹ -Kû †c˜jQÏxƒ*E‚çáØÅ8r®Êâe«$Å9a›qNžqq†#xSÎv¨Bi–”²ËýRµ³Ð…ÀÉ¢ ¬Å<˜MÎl  L$ÙL$DÍfv;Ñþ|©<þB™ûÀHDÍ>¨Q8N*p»ÄÉè’›œ,ŠDÛ¢¡&-­.{%U6£! >r² íò/ò©6otºT¥ø`Ó‰ÉýL¯ÿvÐs’j…íåž0^ *^ÇUÌJ”çKò4üR¹‚2M¢Îç 8m™U¶ ‡*IttYƒaÆYq J­òYÁc!ÜpT¥Gí9†L܃ø(Î¥§ŒhøRmõ Ч1ÆI© ÏY¼‡ÛI´Åô¨Rl<=Fçà¬ØÂhö3»8æè¥t8‚|ÐW ŠDsS†•ħhH‹.;ÅÅ(N9Úü„9UNÃÐO¥ã¢çºìM3F ç'[ ÏÃŒ5Î^Øà3[0_' æóä?ÅpÃèqµgj–µ«Nu¸aº¹ÒÚ—‰Ú¹'¬ð‰Q6£‰³u'°OÇÊF•ºª}es:l`tÝ•¾L‹);&p¶Ò‘J’±Q‹ŠüúˆïËC¶ŽN^ax€Ùºeb¨µäÆ×–5èyLëS*M4‚Œц'1RŒ£,Ðdj”$zPùQÔµ£Cyµ©à\‰2¾¸›I죭z:Ÿæ„%`F ÍT„2š¶,)_ 8 ÌnCŠ˜mF`ö©³^V’Mâ„ÖKËñim—Å.Ë cyØ0ÊôŠaG<ð¹ ‰U f²z¨\ŸbÔn¨YÔn©YÖn:•Qû­ZÚ± PÛu@ -P` e—kãF0×óxDª„©ª*•Ó‰XáMë͇óÙ/³³·—JÜf¯³³ +”X\ÏèR䋼Ç·bq‡o…|II š+¾‚üqö©Y^]‰Ö7»m/î×÷ýf‹ÃqÙÎ1øÍM‹R›^wâxÛg½‡vŽnŽ÷õ¢ÕiÄîíçÅû}'YD•bñš#¥!¦â˜ÙÓÅ»‹ô»Ü^µ(¯Çåo½X^}[nË›ž=Bðm¹Þ,¿l`CÞçÕýŸ4Ô q¢K»/=y¶ÍU åÐô¹Ð}«Ð½MO2ÕܬÇ~€šjþB"݈Û]‹Îhûoý¾ ©½ÀýØp:_Ö›õñ!ÂÕ&0ü©Z9T«Kµˆè ÅÖ6‡þ˜½\_ì‡æ¸»‡#c}ßÎ%b=©r$Jzÿh©3š50;(ößç½k\+»Ôˆ‹¿ññíKº P%³'@aé#¿9]â“üò°Þ´9yëšõVdjÖ‡ ƒhç¾¹Zçûâá —‰Å·ý–hÍú ®û–Ê\ö­&¼ú¬S,©8Û ˜%A:aæÌ§ôp š48ÃoÓå~!IhvLæžD_×-Q¹æû›ÜÇ9wg.†°NÍÅÇâóEkr»Ý‹,Àî5[ô¸‹¦$‡æ¦Žx Qκ8àyÙ°õîÿó\ÙÓæ sKíAîïwû#zòz—k9üØ®nØmwfaµÛ^¯oöËãz·=p ïÉé~ØÕ? 8ù?Þ.âvù­/Éþhsk¨ì” å»å Œ•‰HÍN¬³Î]¥qÕßo3ð—}ŸÃž°‚«ðwXmiÔiSr™B 0_g2ë‘ÖÜà{Óbá=AE†õÒˆÿ~ÓΉ‹<¹ùêª^ˆ_û›5÷9±™Á(ìóA€æW¬Gô»f·úu)ÿ__òÜ|à™Ë;‡. JEJènqÁÚïZjRZKf‰§Ôd‘ÙaÇ”?°çeNf•@Ä¿š<¹˜ Pü}î_ˆzn‰ß,t›’nåò=[ú©¦0B.O®—ÿa¼J’Û†à]¯À‘JY2A\rsUlǧl®8‡\X*šbLI¶(ÇIÞ‘§{ dU¶A,ƒÁÌ »‘xWˆ¼uD–îðyª'?  ¥@«ÖKز?'&.FŠX6#E`V>:Nèœ =½H”g¬ D£-—™œ`“Ñ0:£s tqîÍ=Ë·îÍEXY©¥/e4œ˜×ð¬ïºu{"!¹Zw»®î»RóZzæ8WUãÆÀÆåz©×U20C„‚°ª ú~óÄØWQ˜ø,§Å#˜[)ê”Òã'1|sß,Ò7 r$ÇôfÖe>ñ>uið0õUºÕ€N6‘€G=·vQÝêw`p£ÌÐ(ÉÖ”–ã0¢I`L£»)Ù«Óõk:œG-<Ýù. ÊÜÇ7õ¹åƒWs+-#é9P‚Ú6ÄxDëXÐúYvÛµb*$1#-›òÉ‚O5Zš®^ìKšÑ8ëƒ$Zm|NvæâQ›½âuÕK=×:Úþ«R,r> §•PvžV¬Ì¯´Zhqd´‡6¨@3µÀ>öö¼R.ºÕ½ïnV ÔË®Ó?"vóm$%îý‹2Ú-7ƒ pcÜ↊P0QÐÐþéÇŠ2ÉÇiV=_r'Üÿ‡“ñ¾ÚÂk§ ¬­¢·jüòÌ@!HOÏÑ #¹’V‰s† ºà²Y7`«†åJ€é8÷5úÖ›*µz.õ©žß’à,ŒF VµL§0&e]DRú-H\ïô"5"œÎðûÎ¥®h¼CÌcîó¨&Ãüº×ÿÕfðK)2Qˆ¤Ô#Ç÷ µ½bd[ÃÎÓ¸uáÙ zˆ2̯å[ŠH-)›VlŒÃÛ±ÿI#”º^œ-¤/e![§÷_Œ¨¦D€ŽDD¥œ·´•¯¨)ËúÁÁIBüÚìÀ¥`,cY Ç@2â WEJ½û6¼Fö×?÷!ø4{¯[äÑ-Ô @øzZñ6ZQ}­kô§S{–Ä À{ßyZôè×lƒa“r Œf¢ŸSïxù[Ü@¤F*È…ðŽš=HÅE¸3"/:å…öQÑ›ò‹=å;S1š¾ô»zNÅsR#Ýsh(tÊ T‚!%y2™âu!ý'p RV•P«|¡î"R,³­Àµç[P"c²ë[¯4¾42c! ,•Ïe ôò?˜‹m£³”£Ï¯'>T5×€{—!ûÒ¢œn·Íäæ…YKö]>Ç»6‰ 9cts“"'0í/Ü?Ç•)ø9³ý¤˜z˜H?4@’IÒÒ ‹ªŠ×Ë 4­±eAÚ86‹Õäôj•šWlñî?Þ;’—â džÁv©Î:Ð ‡ #‡§øpGa3õ—å&vG endstream endobj 564 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀ„"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?Ûé];êØé̪ší³ ¬‡MU[°LVwe©t^N©N%·Sc}5‡fæ+i½*êѺf>F;.8´RZ^`µí`üÒÝFêyC/É…•[w0ˆÐ)€ÛEß@1¿ «þ ²xà{yOºôÿÍWõ<åI¬«`wѯ/£÷§ô©ñ'ûƒÿGà®^?ê°Ô¼Qî¢?˜§‰“UyöñàŸuè)¿š®ê~‘ðSôêýçs2XéŸÞú<ø&ô©ñpÓ³_ß·Ñä÷)^?ꪥâÇuè)çU}»oÞRßGú æ«úŸ¢½*|O‡Ð||> ý*¼O=Øï¼û~à•ãþª½^(÷Qþ‚ž95Wß¹öýÁ>ê?ÐSáüÕsðú<þE?JŸxýOÇèòSzTøž8 Ü=¿yJñU^¯;¨ÿAO< «íØ{xñ)·Ñþ‚ô«ÑáÒ§ÄžßAñÿSÀKÒªy<Ì–;ï>ß¹+ÅýUz¼Xn£ý?öÕù|’ÝGú |?š¯îú<ø©zTø»ü×ÏýO%/JŸá_÷}¼_ÕUKÅŽú?ÐQãüÕqÿSÀñM¾ôüMUýÿGîDô©ñ?æ?ÿ#ÀðKÒ«ÅÞ3±ßÑå+Åý_Á¯¨ÿAO‡óUÏýO)n£ý<ð*¯îß¼©zTø»ü×ýßGï)zTøŸ øø}¼_ÕUKÅŽú?ÐQãüÕqÿSÂ[èÿAOΪþÿ£÷?JŸþc¾ÿ£÷&ô©ñwùŽÿÈòâþ¯àª—‹Ô §Ãùªþï£Ê[èÿAOýµ_þGñRô©ñ?æ¿îú?zJŸþcÿò<%x¿ªª—Š=ô §þÚ¯ïú<'ÝGú íªÿò<©úTøŸŽÇýÿE7¥O‰ÿ5ÿùR¼_ÕüRñcºôÿÛUýßE-ô §þÚ¯ÿ#—¥O‰ÿ1ÿwÑá/JŸþcÿò)^/ꪧâÇ}è)ÿ¶«ûþŠ[¨ÿAOýµ_þG•/JŸþc¿ò<¥éSâÍþE+Åý_ÁU?;èÿAOýµ_þE6ú?ÐSÿmWÿ‘áOÒ§Äÿ˜ÿü zTøŸó÷ý¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ5ÿùRô©ñ?æ¿ÿ"•âþªª~,wÑþ‚Ÿûj¿üŠmô §þÚ¯ÿ"§éSâÌþE/JŸþc¿ò)^/êþ ©ø±ÝGú íªÿò)o£ý?öÕù/JŸþcÿò)zTøŸóÿ‘JñUU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÌþE/JŸþcÿò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸþkÿò)zTøŸóÿ‘FñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTøŸóÿ‘KÒ§Äÿ˜ÿüŠW‹ú¿‚ª~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÒ§Äÿ˜ÿüŠ^•>'üÇÿäR¼_ÕüSñc¾ôÿÛUÿäRßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"•âþ¯àªŸ‹ô §þÚ¯ÿ"–ú?ÐSÿmWÿ‘Rô©ñ?æ?ÿ"—¥O‰ÿ1ÿù¯õTüXo£ý?öÕù·Ñþ‚Ÿûj¿üŠŸ¥O‰ÿ1ÿù½*|OùÿÈ¥x¿«ø*§âÃ}è)ÿ¶«ÿÈ«Ÿ³€u {1ü‘[ª¯còÛ~ØÊÉU½*|OùÿÈ­õ[^ÅÏ4`¶‘^<ٱƑôˆÙ»àSg(iÃÁãt%Öп¦\*Ç{0Ùk²XmkŽ Ú §‘Â>7Ú,{+Ç¡¾“Kísë­c[Ëžç7Ei½A‡¬Kªß]L¨ ®±Ž/¥öØáYÓô¼GiQfp9—ä°\:€pȨ5ìç Çm$m- ¢bˆu­’AÓR×û8sžÚqèÈ´9XЋšÍv%Íkì†Ú@¬œvˆæ†û5‘ª¿ûd†ÚÚém-¦X+溶:²òãŽD»v°Ðž®´úìcÅ`†>—mw¨FÚqÝz¼»ËÍ1û°ûB¸|KCìwû‡ìñú7?õvû\xÙ¡*_³òv=ÿ`lVæ±ãÐd‡?è»'Ugö›]±–Ôm¥·¶ã[ˈ"º,a ¥3ô{wEo[‡zKio/éUf<´¶%–vˆ:ù$r݇ÚÃâ\çaÜÒðìƒSwÙ8íö´þs½š 7Ñþ‚Ÿûj¿üŠ¿nx~éìg§Œ]lcœËs·;ÓníÄÄhTý*|OùÿȧÆXÍñŽÛ ‰t²Ã}è)ÿ¶«ÿȧßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"x¿«ø"§âÃ}è)ÿ¶«ÿȧßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"•âþ¯àªŸ‹ô §þÚ¯ÿ"–ú?ÐSÿmWÿ‘Rô©ñ?æ?ÿ"—¥O‰ÿ1ÿù¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ1ÿù½*|OùÿÈ¥x¿«ø*§âÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½*|OùÿÈ¥éSâÌþE+Åý_ÁU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÌþE/JŸþcÿò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸþcÿò)zTøŸóÿ‘BñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTøŸóÿ‘KÒ§Äÿ˜ÿüŠW‹úª©ø±ßGú íªÿò)·Ñþ‚Ÿûj¿üŠŸ¥O‰ÿ1ßù½*|OùÿÈ¥x¿«ø*§âÇuè)ÿ¶«ÿÈò–ú?ÐSÿmWÿ‘Rô©ñ?æ¿ÿ"—¥O‰ÿ1ÿù¼_ÕUOÅŽú?ÐSÿmWÿ‘Kuè)ÿ¶«ÿÈ©úTøŸó÷ýÞ•>.ÿ5ÿù¯õUSñcºôÿÛUýßE-ô £þÚ¯ÿ#—¥O‰ÿ1ÿwÑKÒ§Äÿ˜ÿüŠW‹úª©ø±ßGú íªþÿ¢–ê?ÐSÿmWÿ‘åOÒ§Äÿ˜ÿ¿èò›Ò§ÄÿšÿüŠW‹úª©ø±ßGú íªþú?ÐQÿmWÿ‘áKÒ§Äÿ˜ÿü ý*|OùŽûþŠW‹úª©x°ÝGú íªÿò?‚[¨ÿAO‡óUýßG•/JŸšïü)zTøŸó_÷}½+ÅýUz¼Xï£ý?öÕù<Óo£ý?J¿¿èð§éSâÌþG€ŸÒ§Äüv;ïú)^/ꪥâÃuè)ÿ¶«Ÿúž|’ÝGú ~ªþáíûÔ½*|]þkÿò<”½*|O„mÝôxBñU5/;èÿAGóUÇýO6ú?ÐSÇ&ªþóíû‚'¥O‰ÿ1ÿÑû‚^•^.ñúŸÑå+ÅýTT¼Xn£ý>ÍW?õ<”·Qþ‚žxWÛ°öýåKÒ§ÄñÀkþáíûÊ^•>'Ãè>?êx ^/ꦥâÃ}è(ñŸJ¸øýî£ý?:«ïßèóàý*¼O<–;ï>ß¹/JŸìºêy)^/ꪥâÃuè)ðJ¹ø}|RÝGú æ«úžŠ—¥O‰â 5ÿpöñâŸÒ§ÄŸì>?êx ^/ꪥâuüÅ ½*|\4ì×÷ì=¼žå+ÇýUT¼Xî£þãÓϪûvß¼¥¾ôÿÍWõ?D)úTøŸ øø}ôªñ<òXîÝÏ··`•ãþª½^(ŸèÝú~‰×Ò¬väû~åÚôîƒÑ¯ÆkíÄ¡¡¬Hª¡Ëé%Ì>+Ž{*ôÝÒAcɘþ¯%v´»à \ŠÛ‘U̬½…ÅZÖètñj‡7 áᯢüw­²Éú½Ñ)ÇuÕâÐòÒѪHÔùµO+êî57dâW¾ð\Ö²ŠÈϼé*ínçØx´·§¸=Ä<»PA˜"5OízuÔöoô˜ke®®ZèvÇ0¡¯í;z?Hc({0¨ý>àCª©ÑµÁ²­ªVôŸ«•g3Ø`ßdz`QIeÀú\65V²2+Èô 6–ÑôDîž<œ'~N—ý¡ø•ºék½Bÿt²vë·´¥^ p¿ct¿ùñû?ì´ú³÷Ç¥_>¬ÌlÛ=¦8IYõ]ÿ=imö~ÏÙ¶NÝÞ¬mß1ªHQK»›f%¸›€4d\(¶Âè,u€úGRãiøªõõÚ}1m²Àu5Öç½¶>æÔ@þS*ݵRêøc©á¿ ejíakw8Áik¥¥¥¤J­gCÄÈ«ÓÍÈ7 [SšÆ01¸ûý1±ÂÆ»ùǸ %̓õ—¥Œ‡:CÜ!¯ú5Õö‡;Ž fZ{öZ[ßûÇïYt.už¥ ½áÔ?ví°ì`6††È86Zžµ¼S=ïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐŽE†›xêa?¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ”Ÿ?^Ÿßz^½?¾>ô”’OŠR|Pýz|}ézôþøûÒRI>)IñCõéýñ÷¥ëÓûãïII$ø”ýz|}é$¦µÝ]µÛè×UÙzÇW^Ù. ‚HöØ|S¿«ÐÌ·?{XéÌ‹}OCÓ2í“ê{gtyÂݼŒŸV÷n¯í'$Ö74ëŽÜ`ÝÌp<Èö`2¾Ÿöhe@¶›X_Iné{\ÀuÜ'çªJgGPomí³ÆK½<‡1®,hiuÙcÁ`ÝÎ…æãŠÃÁ -õ!Î%­iÉ €°nè9Mõ€+ûC…í«x¦¬C_é*o¨\}ï­“=•œŸ«Ud6àïOuÃ,‡Á‡åZËZÿ‹!%:Tõ,[ª²Ñ{XÚöݽá»6=Õ’ý} –%J¬ÊîºÊkyq©•Ø\ ´¶ÝÛ H:ý²ÇAÈYh²ákí :_’3?O®º´7NÊßKénÀ6ðócÒ ×Z÷G:Mº|Ss¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ«çõ :vÙ¹VútPÒç¹Æ€3 G‚ƒ›ˆÜÌsCœêýÌ{^Í»ƒ«{liÚæòÞá%9ßW>²Ž½U¶²‡c6°ÂÒmeÁÁåâA¤ °‚ ±O]Ç»8ôæ²ñ–×8[Qdzloѹÿ0‚gÃCÀéÔà‹K ²Ü‹ ·Þö°=î?½é±‚mêè:œ±›]N{ßc²78ØýâÛ>æq :’–Î'öïKÿ‹ÉÿÏu«òU ïùw¥ÿÅäÿçºÕô”©)IIEöVÂÐ÷›µ€˜—A0>A%2’”ùªŽê5; ãÐ×^k1{˜=µù9ÜO’Ú] qkC¡Ö€v–ÉŽu×IPæÏ T$@24ˆž€^öÈ1Hôñt$¥%gÝÔÝUÕÑ]@›+}¡Ö?Ó•À%Ú™A¯¯:ça²¼rÇå¶ËÛIŒ¯MþÐwíSˆ’.”0ä"ÀÓ}Çð.´”¤¨R÷½»¶щüw) ÆU%))$’•%))$’•%))$’•%))$’•%)+;ª}bè}"ÖUÔó‹e­ß[^e³íiî£õ› u!yÁͯ bÖm¼´;ØÁËŽæ„”éÉJJË»ë?A§¤Ž²üÆ~Ïy-®àïp‘±ÄûOeo§çÓÔ1†U µ•¸õº§éßcÀ0gB’›2R’’¶ÕMo¶ç¶º«ϱä5­hä¹Ç@S))IXGëßÔðH=V™ï‹n»mm¶·×`cÚd¸H ø’™IJJI$¥IJJI$¥IJJI$¥IJJf¹®šCàƒ#ðN’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%$’INIénÍéÔåݘ,¸9Î ±¢æÀ™ì¿Ø ÿ¹ùßöë?ô’ŸÕÏùú¯ÿÏZ))Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ì Æ¿oÍ1ØØÏý$µIM ÐÞ½ÓÑW’ÿ­Ö³>·X÷[ѰØ÷Wëç¶ËK4>–;uœ|Ôê?òÿMþ¦Oþ{­VêÝ'73©àgbÛMc ·5͹®xý0 ÜÖµÍÖ””åYõ›ªýŽŒ†ŠÛoUk%ºQëÜÊh6Ζ¸¸ùˆ[©ž¦üVd:ö`ý²ààÖ‚ñMuí£ý5®?%yŸWÛÓ*ô} :®5¬ÚúFÐXk;èe[ÜÆL{ý«K ô¿ÙÝ6š®c>Ôw¾÷4Oºç›^Ð㩘óHn˜$]»£éŽÄ¯¥âãÕfç»Xæ°‡sw=îu%为‡naµ ìpvžv‘ÏÍ]§EL¨8˃'Î3ús3›XsÝ_¦é‘¯–ªœ®,“âýíõùô—Û£0Ì8ÉÔ ³©½Úc¦äßÖ/ÉÈ•Òʨ.Ö·KŸìž8å¬|Ëz«ó¡µT1¶½¤»G¹ÌÔ ®ÒšJphØVºþkNiß(†ÛíY¡À{ŒŸ„é$ƒ’I$”¤’I%)$’IJI$’SÂ}o{™õÿêû›ŠsÈ¢ÈÅnÉóº~”†iΫ¡nEŸ²ú㥑mXöŠø­îÿ\!¤på,ÿ«•æýbéÝxÞXþšÇ1´‚»~¥Û„}?§—Ž2±/Å.Ú2*}EÀLoidÇ”¤§ÊºÞ^gQÿ3&ïÒ»¨=¯ cÒfà×mcZhooW]Ôz—Z»ëN'ÕL,çcб†FoP5±×Ù¸ v4Ÿê§·ê}ZÁè5á˜9$dzb\IyÚY¿O§â´zÇÕ–õ©GYÃ˳¦õ))¥õS¬õKº§Uè=VÖådt§7f[X+õïßhÓw*ã.ÇXz'L¶ÓONÏÌ Íx06´Öçx{‰ùy-ï«ÿVèè®ÊÈvE™¹ùïõ2ó.€çÀhEºñ%Yë}§õÞžþŸÔ_SŽæ¹º==ŽƒJJsºÝŸV>¯`6¼Î•=?ikÍ8­²¶ ‹\cnâí$ê²:çÖÏC©ôž‘ÓïwLéÙ8¬Ê³&º}[[K5WUme±£ ûQïú…Ô²°fe}cË¿§˜¡õµÄµ®{žN‘ʻվ¤âgŸn.]ØÝ*¶S‹™VÒý•€°{w}ã’’œvýhëŽú•Ös]c››Ó®mX¹¦°Ãeeõ†Øk{$´™öªöõï­øý]ê™™Õ[WU}UY‚ÚZ±á¿¤}¿H½Áóí€ ér>¬åæô ÎÔzµÙ¯Ì-ýnÊÚ ×5á­cHýß¡õ>¬ì„rX莩Ìx`&ÏI¬l¸m¾i)Âë[sìëÝ[§Ñœþ›OKaf+j Üëò#Ak…V†²G’~µõ«ë~¬t£Žá…ŸŸ’)Éc˜6º ™®i-k‹gMVÏRú›ëõ«:çJêWôŒÜ†íÉ4µ¯côvºé¬ÏŠ'Vú¨þ­Óúv&gP¶Ûºuã!ÙOc\û\;8Ðß.RS¯•™ÒpqéêiÌ˾ëââµùn3]8õ;xnÎ$ƒ#À®{¯už£Ñ~¶ôüÜ‹\î›KÝFEµ6Œ€ÒÛ&»+h†èÈñÔ®£ë7ÕjúöFeyvôüÜ—Ñ‘P 8ÉIoqÊ©‰õ¨u Ÿ}˜V§U›Šý]as Žºgt¹Îú=ÒSÎtî¯Õ:Ô^ì,“fGV´cb‹˜Ã^0õ,-ÚÐçn}Ò·Që½ëWNèÝC;ö¦'Ua ±õ2»+µ‚ ˜hÚ]ø)Sþ/éýŒz>_R¿"ŠžÛz}­ø®i{¿FFéÜ]ª¹ƒõQìêõuž­Ôm깘ÕúX»ØÚë¬DlnéyýéIN_Dê?Y:¯Öž³†:ƒjÀéyŒý©®{ª°z-w·hpn®2xŽë´Xýêå}+ªõ^¤ËÝsºµ¢×VZ+‚÷@;Žï¦¶R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%* KŸ³áõÌ—µ‚÷[ê[}­Çx²™ôšÚý}EÝš8E¦¶¬v¾€Ížƒ$×S«p·uQêØ}¶Ì±Æ¼ÊJuÒI$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRR’I())I$’JRI$’”’PG!$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R¤¥%$’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRS]¸µ ’IÏ€> ª¿g=½Fû(ÇÁØ›X û¬õ dA} lÚÓ?°?œwõ[ù^¤’žZî¿Õk¦ìw[S3©Æ.uf½ÖÖæa×’û­ƒ@õ]² |•¼Ž±•E¶¶³\6×ì%¤ý¡Íf6Ú«÷èçú®#lè8ån6¶1Ïsëç‘ùÎ6OÉ )$§Ýc¨Ö.}¯©µ–Új-¯èzyG¹ö±¦[©’ÐëúžV+ì­Í¦vW^×€à©clsšïä¹ï Côž ÿ8ÿä’ILIàßóþA/Òx7üãÿRI%1ý'ƒÎ?ù¿IàßóþAI$”Çôž ÿ8ÿäý'ƒÎ?ù$’SÒx7üãÿKôž ÿ8ÿä’ILIàßóþA/Òx7üãÿRI%1ý'ƒÎ?ù¿IàßóþAI$”Çôž ÿ8ÿäý'ƒÎ?ù$’SÒx7üãÿKôž ÿ8ÿä’ILIàßóþA/Òx7üãÿRI%1ý'ƒÎ?ù¿IàßóþAI$”Çôž ÿ8ÿäý'ƒÎ?ù$’SÒx7üãÿKôž ÿ8ÿä’ILIàßóþA/Òx7üãÿRI%1ý'ƒÎ?ù¿IàßóþAI$”Çôž ÿ8ÿäý'ƒÎ?ù$’SÒx7üãÿKôž ÿ8ÿä’ILIàßóþA/Òx7üãÿRI%1ý'ƒÎ?ù¿IàßóþAI$”Çôž ÿ8ÿäý'ƒÎ?ù$’SÒx7üãÿKôž ÿ8ÿä’ILIàßóþA/Òx7üãÿRI%1ý'ƒÎ?ù¿IàßóþAI$”Än p‚dx%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jkõ Æààdf¹†ÁY°°.ŽÒxYëFH1û7û°ßý&®ýdÿÄÿPÿˆzçÝôÅ-›8Êÿ:rò´ÿìCôš_ó§'ÿ+OþÄ7ÿI¬´“¸C'±Sþtäÿåiÿ؆ÿé4¿çNOþVŸýˆoþ“Yi%ÂìCÅÔÿ9?ùZö!¿úM/ùÓ“ÿ•§ÿbÿ¤ÖZIp…{ñu?çNOþVŸýˆoþ“EÂúÇfNm–a>Ð\ÖÙêµðZÇY«CÙ‹§ÿË=;þ6Ïý·¹'†"$‹Ñë’I$Ö²’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½WËê˜8v¶œ‹ l{KÚÆ±ö í'ômwu`8ïê·ò½ ÁÖÆa@Å4î‘;Íñ’—ÅË£.£uÆ°í²æ9šÛ˜êZlë4Ørjl‹c]¿Y¼¸¬&¿iÉ%=bKÌ^¸l6¶ü™Þûvnii#*\ô>ÎNûê1gZô²w;%¦[º%û¬õ>ŽÇµÍ¯ÓÛôü©)ßAÇÍÂÊ.n6EW¹š¼Uc^Døí&.‘N]wå?%·3Õn;˜Ûl6´PkÚÇ8C‡¹ª`t|¿uÖÔqE´Ó[ZöÖеŸyßæ’V­þžöúŸ¹#w¸çPŽ~¹Øç&‘{$º£c7€ã-™5Xý7©ý¿+2§‡hnsÈ$BÖA ž €Fvy£¬ ™G'ìøûç* c…»»žÐ’žuIs¹ëuåÞÛÙŠk ¼h }1±ÅÁ­q¯ÔhbI0V@È9=1·¾Æ›oºÇúŽØÛ¬k%à»t4 e%:)$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥([mtÔû­vÚëi{Ü{5¢ISUºdôܼz„ÛuVÀLKžÒÑ©ø¤¤Tu®“k*¥ö9ö=Z ÿ)Õ€Ë-ª  ¯maÎ iq Î0Ö‰î{r—5˜õÖâ75QÈ ›úÉÒòºÀ§§ÔÚl½öسÕhÙ@ö8{š^_¨#Ú’æ—9 ‚æÀpQ"Døhs¯Çë·>̶ã[m~­­Àn¹˜µµ'I°>r•ôuÊ™euÙ•pÝaÇxswz¯ª—U¼·oè›o© éÚ"SÐ äfáb–Œ¬Š±Ëä°[cY1Ìn"V6UNÌŒ[êmô½cßW±¹¹Ì­û\==Ú´ ²J?Vns:¥9Ͱ×öwÖ÷W@È÷à6—²4 )ØIaåbõl‹®}wåQ]¯pcXæ·ec®fÐA‚rý¸&hÛûs-¹•µ—µ®–81¬w¶º6–þ¡tÇÂa%=Rí UôýªŸZ¹õ+õ½»~–æÌˆî³úmÙvuŽ¡Œûü\ŸMÎ$î9-eÍa.™ôD)C³§uÓz¥rö‡e|qXý%sên×pîÜJJw¡%ÌÛк…Y¸ù.pÈÆžµ” ynë)‡4Ck—ÄOr¯7¡·Õ¥Ö×[þÏ~NEoæÉ²Ç¾†  š¨\uä”ì'ƒà¹ÚúF]=[%õ4ìºãeì%îx±·8>çml Ä“>Hê$Ïí¾±ÿ±ù‚Ju¾²û¨6}Çä7¼“5Ï»éŠZúŽÌ\³‡WêW ZžÿNüáÇOiöiüïg}#ñN‹c—Ú_E’I$æu$’I)I$’JR/Oÿ–zwümŸûor ½9½K/ ×ߊ,¹ÇÖÆ§hÛMÎö¾ LjÙnO’^OuÁ0!ÂZdI5Ô?råÿæ?ùwÖ?ö/ÿ0O‹õ9Ý?ñ^]ýM×Ý]ŽÆÎ»u.ew2Ò ±Þ÷5L&4žž\þ7@Ì«ªéz­ ËsŸŒÑ͇ sÒds¨áNŽƒeƳ6ªì{qôwé?GSª.̼ítyr’Ô–'G¹ý>€êX×ý€b¾œ†Èz~÷Vàæ˜;æTzŸAy£ÑÆ¥¯Æ¦†ÓCKŸX¯kœê™°û­hØ@"{a%= H8L{0±«°öS[^!Á}èÉ)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW©&,a2á'Ç_à›Ó¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)wÖËYcØíÇæŸˆ:$Öµ cCZÑ kD`oN¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É%N¿ÝüO÷¥é×û¿‰þô”É-T}:ÿwñ?Þ—§_îþ'ûÒRíc[%­ .; >&9)Ô}:ÿwñ?Þ—§_îþ'ûÒR¬ª»Xkµ±‡–<4üC´RD  v >»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)’J>»øŸïKÓ¯÷ýé)GùÆÿUß÷Õ$ÁŒi–´:ŸÊS¤¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)ÍúÉÿ‰þ¡ÿõÏ»éŠè>²â¨Ä=sîúGâÇ/´¾‹$’IÌêI$’R’I$”¤\XéÄ«f§OûOr.¬tàDVÍþ¹²ÜŸ$¼ž³Õ«÷Û÷„Âúˆq¦ jdñÇdþ¸ß¸(š+Øæ·~®0?ŠcIG"`»ÃX1® Ly¤2*"Fã$´ ®™é pë//ÜdÇ„û@óÙ=˜Ìxžç‰êéóIL¾ÓN¢Lä»]v馺ø)±í{Cše§ƒÇåAû%?Õ³º…õ&ãÔû[^lmŒ`©çí>ðDŸhãÁlçýVþW§-i™Èƒ§#À¤§ÿ¬wÓ“f-lªÇ†Nâ[/QKƒÌ—ç§FÎMwYÍséÇ{é¡ã&ªíswoë®Æ-¤éíª];´+tÓA¨ka³ûFí8÷D§ôë$ÖËf dÇÄ„”àþÖê9¥µ:šïnN×Wî, 4d?ÞöXá`šô¼p4@ÍúËyÇ,nÚÝ~±®®CÙoÙ¾Õí.pŸµÙtŒ¦šÄW['t5  :Nƒ”9Áî©…ÍC‹ZHÇ )ÇwZÊ'²º½{Ái¯{Ë+qʧcà{ží4pŽiëùO»« 6ØÊ¬o¸9åöÝIu ¿@ßFLîåmŠëC 2H’f~õ^î›~U96Î1ÝUAÛkÜ$î-]Ló$§7ªä–ägú¹vb\f[‚Æ49å¶í£KÎö†ì×᪯“õ>±‘SF5wÔívç9žŸ¡½ö³p†ŸTðç²è]o-sØ×9†X\->-'…bbÖm-©€ä8ºãï&>”óÇ )ËwYº¼³CZÍ­½Ìp{œ^ðr>ÍK´-úG‘@Ag]êNÇ6ºªuTÝ\ím¯º³»}•ï?¢Þ{Æ»¦ºÉk‹\Â\ÓA<‘àJgÓKÛ±õ±íÓÚæ‚4ãBS {v5W6,±¯Ü=€î£_¨ù¢MŸ¸?Î I$¦3gîó‚Sgîó‚’I)ŒÙûƒüà”ÙûƒüऒJc6~àÿ8%6~àÿ8)$’˜ÍŸ¸?Î MŸ¸?Î I$¦3gîó‚Sgîó‚’I)ŒÙûƒüà”ÙûƒüऒJc6~àÿ8%6~àÿ8)$’˜ÍŸ¸?Î MŸ¸?Î I$¦3gîó‚Sgîó‚’I)ŒÙûƒüà”ÙûƒüऒJc6~àÿ8%6~àÿ8)$’˜ÍŸ¸?Î MŸ¸?Î I$¦3gîó‚Sgîó‚’I)ŒÙûƒüà”ÙûƒüऒJc6~àÿ8%6~àÿ8)$’˜ÍŸ¸?Î MŸ¸?Î I$¦3gîó‚Sgîó‚’I)ŒÙûƒüà”ÙûƒüऒJc6~àÿ8%6~àÿ8)$’˜ÍŸ¸?Î MŸ¸?Î I$¦!ÎܿĂAxŠ’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJBʸãã[êz,/,$4I×àŠ’Jp‡Öºl­ï£ÏÚö0 -³e/"ºìtXÏÒ6–«–urΌΧèˬÅÄëm¨ ÌcœctèÉòVÙ…‡\Q[K}8†üΕ™ù¾.éXÏšìsߊáb;=8ÐÍÚ8nú\¤¦¦/Ö]œÌ (5^÷1£Wm!Õ>â[êW[ý»@ ´} ­»©ís›ö<Çm$nm2 ww•tüvzXõ³ÓvúÈh–»i¯p<ÎÓa%<çÖn²GK¿ìy-nMV3sê-- nßÏÐîðÑPwÒ?Ð}döPt ßgxžðcIù.}ßHüS¢Øåö—Ñd’I9I$’JRI$’”‰‚í½c§˜.ý-š4Iþr/Oÿ–zwümŸûore¹>Iy=W­ÿgùª#!Å®ŠÎæ¼0{AÜ@ç^'Te1n×4žÇïLi5Ît ,1¶N½ýÚq›â¦ì—´8– +I™§F¢zéú6è6;x'uU¸æ‚ ÜGŸŠJ@sHß5ý{žDx·Í« ŒÜFÝHŽx1àúUÄm;Gúø' düJJ]$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½ID8ïê·ò½-¡ÏtÉ€ØG;¿t”ÓÌë]?Õ9OuM¡ô×cÜßh9mgwîÏ'²°Üº¿iŸNÃK¿¬Òu>GÁeõO«¿´:‹² ‚¼{qs5sdXÚl‡KF-qñ˜QÇú¿xme>«²Û^8Ⱥ Ýey.ËÉse¢¥ÜGà’šï¢Ö±õØÇ¶Ñº²×<[‚«‘Õ±±®²›s½µ÷ÚÊË«­¯˜/pãF’Vn'Õܪ2:}ŽuF¬:)©õÖK!ô9ç{?DI÷6Yñ*õÝ+7##/u•^ÚZ)XÖKqý%lsXù$r Jt72\ÝÂY£„‰Äø ¿7¸Ç(X×Ðo©Y^*ÓoòŒ,·t -½î»ÑuN·Ôv„ºÖœ¦eŸWÛËÍÔü¸FoGìGô¿ÑÕºÇ8¥Úr=Í -vÝ4ïÝ%:&VÚKƒ_FÁfí6 f§Æ7°8´¹»€$¶DÀäÂÃÏú½u­Ên- Œ‚Âß´=Ö<ÖúçÔ¹·‘Ó û”æÝÎcžçRÜ›=Sm€»{)hiqhqlÔgâ’š31²º«[ê:I°ípo޾ Q™‘Ž2+±¾“€t¸†Àk*އ“UØö†ã±ÕßeÎÙ«ÇÛêúuÔúˆ04ÜÃ:ù!·êÕ”ãztúæºYl´÷Öûžç:» ŸTA,=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJ@ȲúÜ mÜØÜà˜n¤7ÒIMf?'ÕÃìÐNÍÇ´óæÖØ-{eÚNÆH³»wÅ€àC€ ò¡&µ­Z@à J@ˬ}ŒæÈnçAÇtˆ#Éý¢tôã´îDI%9Y>Óû7èmô¾'ˆóî±ôÅtY?ñ?Ô?â¹÷}#ñN‹c—Ú_E’I$æu$’I)I$’JR/Oÿ–zwümŸûor/Oÿ–zwümŸûore¹>Iy=rI$=ßG_†¼r˜ÒRIàñ ’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊô‡ÓÁŸ÷ô‡óŽþ«+ÒMÿßÒS$• mêwuCƒ‚ú*k1Û{uo°’ç¹6XÈú*ítfÕLe>«r 0jk«d~h‡:Ãñ))’K­tÞZŽ\„ܶXÇn¬Üç;¿l4½²| ðë=Ö×[,õ=g¶–6ÇQÎ{ à 49„nžRS ’6n.YpÇ~òÈ'G6A×7pš`Û¡Tq~°âÚþ¡ö†œZz{¤]aÒÚƒ_ªÆÀtzŒsx牔”ꤨ³«â¿2¬Y,7±®£Ôk˜ç¹Î´lôÞÖ¸@¨SW×zUµ›+¼½­Ûk°—oÝ·cC%ÿAßFb ð’›é*#®t‚æ´e0îõ#l»ù– l>ÑÙ„;Ìp›¬áßU.±Â›-fòÇIkts¶ºÍ¡€íi0LÆ©)¾’ÌoÖÙcŸ]T?hq®ÝΦ\çú~žðÖ‡êè=Uʳqm½øõ¿u¬™àÒý®#k¶’¶“””%’:Õ¾ŽNA¦“N3¬fÖߺâk´Ñî¯ÒöÉô•Çõ<:Æ› ÔCHØùq.Ø=1¶l÷iìRSi$<|ŠrhfEßU£sHø8>h‰)I$’JRI$’”’I$¥$’I)I$«õ ‡bàdå0:Š_kAà–4ºÜ’› *ؘ½uþ¹¦—ºÆ×M|0×:çÁ6^]µ_N.5Bì‹ÃÞÝî5ÖÖW·sžðמ^Ð!©)´’£‰Ö0òk—ShsYe6 ^÷¾Ùk½õ¸H=µ„Ïë-•z¦â[;ZÐÇ—<–ºÆìnÙpsXKHÐÆ…%7ÒYxÚ}\–ýœÔö¾Â[k Àí‡ ¬ÕÚ@ñQ‡[é%Áƒ%Žq8ÉÒ§¶«8žà?Ø’›É*.ϸõWtúÙOèÅEî²âÇŸWwóuŠÝ»hoïؽgúi²Çz.º¿SkÚÝ ö›v†NÖ“Ìj’›é bfãf5îÇqp­ÛÇÖA-ÛÓ«\ :JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)J'ùÆ|ù”OóŒø;ò$¥„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRJ‰ë)¡äßüÙ‡~ŽÍIy«Ûì÷ûÄ{eçáŒ6çz¡Ø¯ s-`/Öm ™$ Jl$«UÔ°.§]ÀÛ¹­ôÈs^ Úë †æ±ÄHìŠr1Áƒk‚æÿzJhýdÿÄÿPÿˆzçÝôÅlýfÎÄoE̤ÚÝ÷Q`® ¸ Û?½ëßHüS¢Øåö—Ñd’I9I$’JRI$’”Ÿ£wUéõ‹LÚÿÒTC^"‹¸$;ò&EÀ už:~–Ïý·¹²ÜŸ$¼ž‡öcÿòÃ7þÜgþ’T­è;'d¾Ã•“U®–½¬ev0ºXç9­—H‚VÎö~ðû‰º Ç¼¸×ôÏ„&4œLž‹²ìl]¤µï¥áÛçbA_¦Öû}þù+øc¨ ûí¿WNKk ‹CË[Kví »™ 鲱ˀÔ7æxŠauD€ ’k¨1ùRS4þÑNžï¤`@&OܤûÂŽ®àO”É%md€è9˜ü…;\%¦GÃD”ºI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•é¦ÿƒ?ïéçýVþW¤>›þ ÿ¿¤¥UUUe»0n}m¤™Óc\ç>.F²ßR D!¡»&†®ximzÏÓ~­oÍ%9uýVéÕ¾‹ìßšþ ÇùÖLÕz`@x#³¢Q[±ÞËlÆ,,>Ó>–[GP… × i˜vßpìŸÍ%9Ý+¢ÑÒ™s1Ÿ¥¿EÅ•‡´K‹A{Z öîÓr>«ôÚ¨mXûñÞ(ôuP×<‡2ÆÚñKÚön˜îV«¯¥–²—<6ÛA5°òí¿J>¤çÆí7Öù“ÀIM!ÒȨ́=ù/~e-mfí¬nêÃÞ÷0µ­ˆvø?Ý ½ šÙP¦û+²Šê®«a®#Ñ0®lmîiÁJ JrÕŽ›ê×dÚ NÇsþ3Emfœµíh”ÕýXÁfCnÞçE"‡µíc‰hkëÜ×–îaÚò=¥k‡âÁ«›ÃÂxü‰æ´_;GŒjRSƒÔzQű˜v¾ìœ€úßu®°ÆYUxä@¬ûvÖߢ'ÏU ¢ãágäfÔíÎÉ.sƒ˜ÉiykŸ¶ÀÝûIlí%hAðI%4¿db}’ü`6ý¥Ï}–†´X}K ÄF°L T²: «È»?ÇÛ“cšæV}&æÙêµÆ×±ÅÛdºtÑm$’š'Ü>™‹q¶šÃl ÈÝÉÖóÌ+i$’”’I$¥$’I)I$’JRI$’”‡‘Ey8öã[>Ìuo× ¦À¢$’“2ðÆ6¶·ÚÐ×°ù*x_h²«ê¹øù4nÚÈw¶ÈÞ×1ò×´F¬9ÍkKœCZÑ$F»k¶vÛÈ ´‰ãGRSFž……FV.K Ëñö Çq°Øç<Ùc¸¸¼cÜP°>­áàVÚê{‹kq,;+k ×e¯s á¶'U­CÕ¯Ôô§ßÄAæ7DñÀ””ç? PXˬ­ÁŒ«x 'c*û;„9±îaMÿ6úÚ›•6oeí½£vžÆí‘Ý“îƒÝjÁQ²ÆVÒ÷­ùç©)0±Ûfq`}ö Àsš o§º6˜‘;µY–ýXÆq¡Âë1«ôÚÂK›±õ‡¹²ÀæØgo}V¯Ú±Îáê kk†º1Óµß8Eà–žG:¯‚Jsº.n5yÍ?¥¾Ðö·s^C]t´Æ1¿™À E# “§u ®®áº¹"’×4xÀJJf’PSnnòÉ÷G‘ïø$¥ÒI$”¤’I%)$’IJI$’R’I$”¤’I%)Dÿ8σ¿"’‰þqŸ~D”¯ðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)!¡”ï»ÒhtNçmðìOðINhú»EBqn}ïú­tØ-uáÅ®Ðý-¿¬éY€:A,Lk6ä—ÜçVæÛ/«Ók=Ïn¾îƒ2KÞÖì :éRßR#àœÞCž6{ ¾@Ô7t’œüo«¸¸ùUf o©ÁÄ´5ÀTi ,ÆéqÝ7¦9ÅÎÃÇsœeÎ4ÖI'’NÔO]¾£kƒ¹Í?ÜœÜÓÁŽIN7ÖN‘ÓGËÈn-,}½Õì­Ä@µ Èì²ôÅmýdȰó[±þú^$´ab;éŠt[¾Òú,’I'3©$’IJI$’R‘0Z×uŽœ­šGô{Ñ0]·¬tóþ–Í“ýîÁ²ÜŸ$¼ž³Ñ§ý?Í '¢ÒÐ6‡89Ût&8'õÇîYþc¿¹@åÇ»aö87PDî"9z¦4–vs fôÁ  ™ù'f#XÝÇk¾˜Óݬü”FhÝ´°Ž']d‰Gš“ò‹7‚Ï}@:ÆÎ€=ÒS6ÐâaÅã€5±ø¦—½¯µ¢k F±¯Á+oØkn6q¬âȰm>ø™-þ )ˆÆˆÚò HØ`t?¤‰Uf°[»p’F€D’Šv?{f#R?Í%¿ÁI%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊô‡ÓÁŸ÷ô‡óŽþ«+ÒMÿßÒR£sÝ.pl@æ|Š£™ÓíÈºÒ }'T ZÿpõÙ"·mÓ€fUæý+?³ù ’Ji3ÒÖ`¿m^ ;gsì¾\䨸—×uÀ6ªª­°×kšÒ×7àNº+É$¦ØwY’rZà×Ôæz-1«[«åÜÛˆQ8w:·°]†ÝÇ#|¹ÍÜâ‹`…y$”Ó8–½âÐOòàÀ+sH>â5î†þŸuŒÚ¢Ç‡1í&ZÍtÒKÛñÕh$’œçaf†âÓeŽkïkN„Å›¶ïÓÚçŸ+±m}²ÖÜ ÞÒ+"–¸?ôa䆯×TÝ4ú@Ìx«•f>ÿ{˜ý×m’7<88·É®|%a$”æcôܚߌ÷–9Ìyeî:»ìì-u-ñ¬ñ(µà½®Çsšj5¹Ä¸“¸ w»Ýýv«É$¦¦=õPöÝ­Ž ´.Ó_wyMV6AÆmîÐT]cH†9»ƒ}0Ò4\I%4¾ÇhÛ´ .{‰Ü}„Ù¸8|"%îeFÖX^ù&]cÁhþë[òVRILvÞÞ?ò)l¼ÿ¼äT’ILvÞÞ?ò)l¼ÿ¼äT’ILvÞÞ?ò)l¼ÿ¼äT’ILvÞÞ?ò)l¼ÿ¼äT’ILvÞÞ?ò)l¼ÿ¼äT’ILvÞÞ?ò)l¼ÿ¼äT’ILbØ.32 †“à?Î3àïÈ‘úlþ×ýK’?Î3àïÈ’•þ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥& $pd|xN’JGözÜÖì|@pä&G!Víîn÷÷y‰:Ghhˆ’J`Új`­">\~U4’INoÖ@?`ußÐ~«ŸwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH˜;¿ltý]êÙ΃ú=ÞÙnO’^O^›kHˆÐùÌÏÞ¡9?»_ùÎÿÈ¡—å6·¸´®ö&AÐö˜ÒLka2Z ™?ÛùM–†–Ñ:|yUÍÙ{&6¸nݧî‚`ö&a"˳Óit™t öŽRS6W´Éqq6cAå$h¤‚ ¸Éø…]™KId¶Y·hlº eY¬—1®:’$é‚JS+c$°FíJ’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^úoø3þþþqßÕoåzCé¿àÏûúJS~•ŸÙü…gõ.¬ìK} ™[žÖ -²û U1¯vÆZǸ¹ä†ö3 A¿JÏìþB ì<;-u·RÛö6·O­vöÈàÁ:$¦Tº×Ó[î¯Ñ{ĺ½Áñý¦èPqú†=ô;"}*ØâÂl†ñ~GŠ>@uµ=Œw¦\ÒÖ¸k¶tžB®pÇc¼×·4:lÕ s§è˜å%$ûf7º-d27ÀËKÁ3äÝu,úoku Ô©ÜPÝŒ^÷:×ïps›OèK‡Ò<ÊìãéRÃi{˜-sƒ¢ÏPíÁ–4þhüä”Ûß6Š€;œÒéí -oýù ¹tzB׸VÂF÷ôš']4)íǦë›e­ k€k€"\ZgþŠ«vµãìÇ—ØXj¶U®çˆú”Ú¯&›êÚáê4¸HÝ ;IT&cŠìÞ:Ú`M¯k¿ °Š’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRþcæïú²ˆ†˜ù»þ¬¤¥ò²*Ʀ웎کk¬yðkD•K§u¼Ì‡Õf=u5‚^ÖÜeF$2æmqþApW²)ªúì¢æ‡ÕhsÓÁk´!=uQNãMaŽxïåÎ\u&;””†üº¨ºŠ^]í­Ú$7ùNð@•+2ñk.µ,âDÄ#æò0™lsÜAs+ÚHÙ»tC½Ðu“œkvÚÁhÙež«Af¡Ûšó$=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥'ƒx¦X—tþ z–UÌ¡¯7îf;!ÃÓ©Ôz~“iýïS_ fe%;pRXØøYù˜ù7´ÕMuQ]¸®±®ÜúýY»sæ—4Lj ëº}Îsœ:†SA$†·Ð=„ÐJJCõ“þ@ê¿ õÏ»éнõ›¤ä™~GÛ²Üzls·úRàDz~ÊYíw.×°øŠ.úGâÇ/´¾‹$’IÌêI$’R’I$”¤^Ÿÿ,ôïøÛ?öÞä$L]Ö:x·ô¶j"£Ýã(–äù%äõé!úNÿJÿú?ùAík½ÅáÎÜXH<$Ï)$ú¦mld–44ž`Dª®£ ‡4kšâðè-c~ãÏ’LƳ{\FÐݾÝ;:OöIM½RUYEÕ5›uy<ŽÄS¬$ìk]£I¨k€t“?IÀýÉ)´’…-{jϦdº8’dÇ’šJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•é¦ÿƒ?ïéçýVþW¤>›þ ÿ¿¤¥7éYýŸÈT¡E¿JÏìþB¨dôß·õ"ÜÊv t4Õ\ŸLÚ\w›Ò%Àíù¤§E$2ÊpqCA>ž; ;Ü^`KµsÉ'ïT1òr±êuY.‹Œ!÷èÖ¶î~f8w‚JtÒT“‘½ía®Ç‡4Tš]f°ýApÑEÝIƪ­© · ¸Õ07é.s@Üg¿nS}$-myMkì a­çR$:±ßÈ•]ýAì—CÀ}À¹­ßé çW#„”ÞIWÂÈ·"·:Ö†:·zoúFý07v+ )I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥!Ÿæ>nÿ«(ˆgù›¿êÊJJï¤~)  õ´ý'ìpr}7úÆø;,…†[‘]v2ßN,²Ç¼½äŽn—÷yž;$¦ÚK?¨_{/c©/ôñ@» 2!ÍqÛµýãhs´”ì˶.,²–š¬†.{\ÿsbC¤h’›©*ŒËyÉn>ÑúW?Ó:+±í´{4½>[òªu„ˆ°DÉ™iÎ>ØçO‚Jm$©ý° j ,cžêÚ^çÐE{ÌÁ¸ˆCý£ªÚý&‚çúœ}ïÕ4é§¶wJJtHÄéÂI)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦'é³û_õ.Hÿ8σ¿"Gé³û_õ.Hÿ8σ¿"JWøFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js~²â¨Ä=sîúG⺬ŸøŸêñ\û¾‘ø§E±Ëí/¢É$’s:’I$”¤’I%)ÍoXéîq ­š“ú=Èjx•WoVéõÚÐöl–ž4¢äËr|’òzß^ô¬ÿ8zfäPï£cLävBý›ÿqÙ÷$:~+æÖÀÂþ\9ÐÌ|INE —ˆ:ƒòò+-®  Ž ‚P~Å^ݲ:<·Dš++¶Ý Ä€GºCiäILÝ},ݹàmÞ[¸ûÓ‡°¸´\qàðP†#Fès½ú;ÃB¹HÒ[k®g¹îå¤Ã`Ç‘âS!uEÎhx–}!á j"C„søÇåCî?Iä6Kƒ@q;¹ï9Æ—o/—:=CÁG‡ )“²(h’ñ¿=ã·˜N.¨Ä’@cD6b5“:ퟋ]¿ñL1I ¹Ñ$´j7¶xâRRQuEûwðS@n9mµ¸:ZÉÓˆvžz¹%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯H}7üÿH8ïê·ò½!ôßðgýý%)¿JÏìþB¤£´É!Ñ1"ãæ–×~ÿýýé)‘ˆ"GHÁ™<β£µß¿ÿDz[]ûÿôG÷¤¦P€ù&!¤@ p›k¿þˆþô¶»÷ÿèïIK–µßH|@?•>šè52|ÏšŽ×~ÿýýémwïÿÑÞ’™$£µß¿ÿDz[]ûÿôG÷¤¦I(íwïÿÑÞ–×~ÿýýé)’J;]ûÿôG÷¥µß¿ÿDzJd’Ž×~ÿýýémwïÿÑÞ’™$£µß¿ÿDz[]ûÿôG÷¤¦I(íwïÿÑÞ–×~ÿýýé)’J;]ûÿôG÷¥µß¿ÿDzJd’Ž×~ÿýýémwïÿÑÞ’™!Ÿæ>nÿ«*[]ûÿôG÷¤X6l“ßÝÉ.ãæ’™»éŠdů&wÿÑÞ›k¿þˆþô”ʺsÏšbI$O$ªm®ýÿú#ûÒÚïßÿ¢?½%2óïãñÕ ˜N¦*;]ûÿôG÷¥µß¿ÿDzJ\5€@k@æ vO:Ï®ýÿú#ûÒÚïßÿ¢?½%2IGk¿þˆþô¶»÷ÿèïIL’QÚïßÿ¢?½-®ýÿú#ûÒS$”v»÷ÿèïKk¿þˆþô”É%®ýÿú#ûÒÚïßÿ¢?½%2IGk¿þˆþô¶»÷ÿèïIL’QÚïßÿ¢?½-®ýÿú#ûÒS$”v»÷ÿèïKk¿þˆþô”É%®ýÿú#ûÒÚïßÿ¢?½%(ý6kþ¥ÉçðwäH4î.&&È#ÇÍ#üã>ü‰)_áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’‘]x¨°\_1Qýêå‹Ö°—~h‘¯3ðáàîâ@?"‰¦¢#oH€ è~i)€Êi-†®w¦] CÇ"<’³$V÷3línòd 5à|”EFH¤v#ƒJ“kïyp‡8ÓºJbohsÛØOöCOýù;ìÙQ´7t7tpb%7ÙéÓÛÄ÷=ùuãºBÐã鑳¨ƒ§'Ýø¤¦')vÇ~žÙžA?Á@g4µ®ÙôŒ pŽ7rŽka™1?-åLh¨Á-ÔpA è6ö> )Ê­º¼Ų~ÿæ0†¤äN§hßTQU`Èn³3ò#ø¨·‘NÒKg´™RÃ$ͦHk´üÙ>!ö¶7î[ÿm•gЯ{^™øèGdI))ÂúÃÕ(³¢æÖÖX éx°VS¾‘ø®ƒë'üÔ³¼JçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^‘n¤‡ÌxŸæþqßÕoåzEí Ï0?$¥mwï»îo÷%µß¾ï¹¿Ü±z§[¿6êYmlô«¥Ôcº—½×Ùq° Å¡ík ‹@ŸùÁ€nÊ¥’çᇗ€êõ¼Tþl6¸ófÑÜh’®ý÷}Íþä¶»÷Ý÷7û–YëõÜ1Nnµ·ÙKm³ØY[-µÔêCýÄšÜfáòBê=c+?#—4šK©ÆYkîu»½¾£Î#Q§))ÙÚïßwÜßîKk¿}ßs¹P³®c1ïo¥s¡þE­iõH¹¸®Ø7϶ÇwGˆÑEýaß±]Õ&‚×í5Û Å?¢.$ˆINŽ×~û¾æÿr[]ûîû›ýË&Ϭx•œË/ÅÆuMQØç¿qÈucHÓÇ´¢;ël{MWzlßmhcœÁ[‹[.ݯªÞÐ’-®ý÷}Íþä¶»÷Ý÷7û–n'[6[]:»îȶ–Uº¦–¶» bK­‡º5"²ãä…‰õ‰¯Âõòh{,muØãú:ØácßXs]m 5³YúdyrS¯µß¾ï¹¿Ü–×~û¾æÿrÉ«ë ;3ÓÜêè eWcY!´š+¸%ÃÜâó´i1óE={Yef›½…ìká¶>»kÇs/Ÿ§k@&ž…%:;]ûîû›ýÉmwï»îo÷ âf3'\ú¥Ïc«xÍuouNÓ/oÒoŠ7¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîKk¿}ßs¹/Q¿Êÿ5ßÜ—¨ßåšïîIJÚïßwÜßîN..€`üoQ¿Êÿ5ßÜ{I2|A|BJWøFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”‡{žÚ濤K@ïɺ"I)«ëe5ä8ˆ¾ÝÝŒ¦~M­k¶¸Ñ,³n=ÚöVÒ’’d\ö ‹Hh|É1á?œ@A™ÜÐÐÙÖ9;ÚÙ*Û+es±¡³Ìi*I)I{šçvÞä‘©É9}§Ö·Úí¥í0"@(Ê>›7ú›FÿÞî’¾ë˜ý±¸ ²øŽC‰Óä„rrÖï!¤I  C»ºÔ’S[íI»Èq4Ók$ù(7*謺%ç€?•´Ï„ UÄÍhlí&Lw'ºJk¶ûMÍl®qÄnÚ'Î%CÕêß÷¯óʶZÒA"Kui=§Dé)ÁúÃoS=4YMm¬Ðýä:tÓU–ï¤~+ úÉÿ‰þ¡ÿõÏ»éŠt[¾Òú,’I'3©$’IJI$’R”±{z§O8ìe–ú¯†ØâÆŸÐ]2æ±çðQEéÿòÏNÿ³ÿmî@ì·'É/'¡õº×ýÄÆÿØ›?÷•PÉê=g§åd\Êé,È®º,Ý¿ôo±¬°ŸU”6'kŒOâwŽO/WÖ^¦skÃôÙcl}nn@ƒO¦ÏWZœænõ,lAˆŸo§å}`µÝ9ùoeUåû¬¯Òiyh«Õ:±î “íüu[Òï›T”Óé÷eÝë}§gè_è{žÏ§f¼5Û„Þ*âZ¤’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^¿MÿßÓçýVþW¤>›þ ÿ¿¤¤9?%™5ß^öf0U >æ·vß„n:„&ô|&úÀ r¾Æú¶mõ$?ÕhÝí~æîÜÝgUv á$”çÕкmF§5&‡‹]mŽ÷‡ºÖ¹Ûî‡=ÄOUÖS[-²æˆ²àÑa“¨`!ºyn*i$¦ éX"×[°—‹/qk\,û0Ù±¡Î“Ê›z~+qN i4›6—8ûž¶„™~°¬$’š™}/ 1Ö:ö»}±½ì{Øík€æ8 \AñQoFé¡W¦K@tn{‰÷µqÜ]3 nªêI)¤Î‘…X­­l®Ãw¦m°µÖ9þ©}.‡þïrG£àlkÇ3Ók[˜÷µí—¹›\ QÚù«©$§>¾ƒÓ*¯Òeo ôÝK¦Ç’êÝ[i,q.— ü‰ÔOóŒø;ò$¥„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$™ÎkZ\ã ’TEô’ÙwÑÊJf’‡¯NÒýíÚ =ÓºÚÚÐ÷8ž:IL’Qõk‰Ü ñ¯úø© €f ŠJRJ º§è׃4ñæ?Þ½£f'žÑº~䔑%u'‡f5ðåH8 Ç?=RRé(‹j ðC‰h×’4!1¾$½ LsÜ$¦i!œœq3ctç_’quD€$˜{„”Í%V­û7ÓgYå?«Wï·ï )ÏúÉÿ‰þ¡ÿõÏ»éŠÞúÉm_°sÛ½¥Î¡ð$j°]ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H˜ ž±ÓÀqiõlÔDÿG»Ä4^Ÿÿ,ôïøÛ?öÞäËr|’òz¯JÏôÏû™ÿ‘CuzV0<“c»ÀÚ;™h•bM•µ¥Îp¦ :ALi5ÞܲLj³s^á´í –ó0HJº²CFòKä–»v’I‘Ý_IvÐöíùé /hiàΉ)hy-Þµäý#;`ó÷“[ºç±ÕËšÙÜ LFŽ,G}•×Ü›þ ÿ¿¤§9Ý;¨ý`}yŒ6U^Æîs@s­°ìpÖÒn& ?gÅaª¢\Hq2à$îq%H9ÍàÂEÎw&RSÏaõ\–²êî·}½–U˜^œµÏÙŽçì/>êÛ»â{J]~ëoe¯i We-%£{-ÈcO¸V4+¡,a ‡èð@÷i·Ý㦈ubâÒ¦ŠêÈ c[wö€’œŒN¥—‘…Õòk7ÓP}"’Kkœahþp&JLÈÈãûEaï{®n]ÂÙk1n¶wVë6·sgÇNË)¥,elcôšÖ€ ó "Ö˜ߣ§FŸ$”óÏúÏ{ql³Ó¥–ã›M¢Òæ5¯BÆÎàçúâ$ö]„8 ?+¢tüš›NÏBí﫬¨<ÿ(µ›¸ÓÚA‚B¾L™<””¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¥O¬¹ÍèùÎa!ÃÒÒ91Ñ âI)ÕîK1òk¢.cZö¸¾ÃîŽaÏ!ü¶QÕ±jºæÕM´d8µî k[¨ û¿u¥ß%Ô³÷Š Øøù È©—0 ±­xÆ Jp0þ°f·›l­—ÒÚÙêZ\}[ìWæKtÛù‘óQÿœY´[edU—u·¹µ²’âÀÚññìuL×GaÔè5]§X2Ù`L´Ñ áằS±ê5+5´´ ؉„”àõ¥Õ,}ïcÛF=Y¦±[½Ïǹ˜í{ô=ÇÛóðV2~²YcÞúkv8±À†¸úcn8º‚ ½ÏÚZ4ÓÍmª3,i™™h×q—}çR˜S@/p­Öm;D¼Ž ô÷GšJqÖ²ó:QÉÙölŒJ¬­þ™p,Éclkw†Ÿg¶š%¹7ôÿAîõëiûKì«.ái>`²][¬Ò{²XÂÒÒÐZéÜØg™å'5ŽúMäjÐèyñINüæ¼ÔÓéÔDZû/7qõÙ¶¶Ì‡óW@DŽ‹¤Ý¾…T¼X( 2¶9ÀµÞí¬Ýù¢`‰y%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¥üã>üŠJ'ùÆ|ùR¿Â7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’SX,­Õ“„J±+s‰’ '±3ßRg”KlV^D°äÇt!›Yvݤx;‰âgæ’™wz…þðÝ€Ä §´ÏšfÒâÆTùÛQ<;W@#´G)ß”¸ìžÉn<˜ÕJÛÛ^Í'ÔѺÚ8„”ÁøÅÅÞø’Kt˜$µÆu×è©ÝYs„Y¼ÉF Ï»Á!ÂZ û´çlüªmxp$ oͦSP=ÄÆód ±!CìmØ[¼ÉgËg§ÄüÓœ¶5›ìi`;¢HüÎx)ŽcxÚGÉ–ö!¾:sÝ%/öcÝúÁ€uyÎñNÚP-¬n‰.qÒoyž}­›Kˆ0¸™Að*bößk}Ífé#YÛà’˜3Vó 2'žÒ'ÎS¤>6’@‚ísRvm@ÔÑ k»Ÿå$ìÆ2w4AïΚkªJ\b†‚޼÷üýýÊcŒç8’í£q$ C†âöÏÌ©?$0<¹„86e°K¢;ù¦ncÚ@&&Aü펺ø$¥†;›en°»N ;q?J쾟þ¿÷¢ –›ͧÞHk´lÏŸdÚøðŸæ9%4>°ôÜ&tLëPk™CȉçÅd;éŠÕúÃÕ1l虵7|¾—€KHײÊwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"a5¯ë=®ÀÛf‡Qýä4LõŽžã1êÙÀ'þÓÝØ v[“ä—“Õý›ý>à£öZƒKZ6îpsˆÓè™HRûE_Êÿ1ÿùÍÉc§B6¸4È#épu1¤ÄâVI ˜í£c¿ž©;ÎÞãd>ѵî°ãhu’D×vüâ~ §~KXâ6¹ÛIÜDhÙ<ÿ)%,ꬳawèÍz$̈üÒÏà5¥Çy!܈—˜3Ü…i$”Áµ5®$}Ðݧ^ Éëg§[Y3´Døù©$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzCé¿àÏûúCùÇU¿•é¦ÿƒ?ïé)N²¶˜s€>€‚ü§2Ë*Ú Àa¤OÓƒáîGa!ÖA£ù ƒè­÷W{§}[¶A {„j;¤¦/Ê`~Æ‚]½­÷ÑÛwL̶¾Ê«`.õ¹ðCG³Ô‰=â4LÜi´n&HöƎߩ۸ëâT«Åª·±í.ý†¶}³°U'Nv€’‘ݘYh`5ÖÍÎg©k‹Dµ¡Îü¡N¼ºÜ+–¾À A$†êF›¶è¤Üv‹]a2 q ·XÐñP-c›¬ Ž`$¦'*²b½Ö‚ÉkIhi´¹ÑaGíÔ Yk·{çFµÎÕ­Üø¨oŠzðª®n{[°VX »lËO»$Ü:ZÏLl sÙÖ½»nŸ?ŠJS³1Úí®q†îÚbI&; ðQCÅ›O°‡¹Î ˆk7ÉãÅ…IøT¼<øx cnâÒâØ2ÑÊ‰éø‘` -Îà s=(~))VfÖÚ÷1®sæ6m ˆ Ú{cpS9t9£q-0!§ÝîÙìñÔ(ý†fç€ÑnÖÈø;ÑËGd?°z޳Ö1[¶úlk·µî²}Ì äñ%'¯!–jZö»±k¤N¼jRõjýöýá5Uzn.NÖ±º dÀö€9q싹Þ'ïIHýZ¿}¿xKÕ«÷Û÷„MÎñ?z[â~ô”Õ«÷Û÷„½Z¿}¿xDÜï÷¥¹Þ'ïIHýZ¿}¿xKÕ«÷Û÷„MÎñ?z[â~ô”Õ«÷Û÷„½Z¿}¿xDÜï÷¥¹Þ'ïIHýZ¿}¿xRÜÝ»¤mçté÷©nw‰ûÐüÏÍßõe%-eímeì!äˆ÷œÛâ£f]uXöX´€Ý ¸ŸiyÑ£°j.Ebæ>§—»¸0D$1‰\¸¹Ï{ß;žâ'ÜÏO³@ДÅÙµ uÙµÎ}`m 0ç‚k-k¸ówà‰^]n {C‹H:ÝûNœÀ˜Rn3Þ]ïk·€Â4‹ \ð|d·ñC«§ÑSƒÚ^H`®Ii0h÷mÜ41¡ )VçVÊ_cZç=¡ÇÓÚC½­ÔF‚×ÍK' Ók+ÝS75Î/µÛG´´@ÿ9@tÚÀç€ùÚZÝÖµÀl`çhF¶¯RÁ`{ëpl³o-'é5ߺ’˜»*–Ùé’Kå­öµÄnpÜÑ xj›í•8\¹ï!µ´µÞâà\ÓÇÑ!§U1C7o%Îvíä’5;=-`Ê,Åe`Üw°Cè C[4hwÅ%2eõ¾¶X\Ðà ŽSúµ~û~ð¥SU¶¦µ€4yÇu-Îñ?zJGêÕûíûÂ^­_¾ß¼"nw‰ûÒÜï÷¤¤~­_¾ß¼%êÕûíûÂ&çxŸ½-Îñ?zJGêÕûíûÂ^­_¾ß¼"nw‰ûÒÜï÷¤¤~­_¾ß¼%êÕûíûÂ&çxŸ½-Îñ?zJGêÕûíûÂ^­_¾ß¼"nw‰ûÒÜï÷¤¦ ²·k>‚‘þqŸ~Dî$½’gWÔ¹1þqŸ~D”¯ðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I!ÊJYÍuÌ U¸’æÌ™3ã"«öŒ­vÑîÜAÀñ¿ÇÉLäÙ§L9°eƒ÷Ýä’’œzˆ‚ ñ2dÏbfJvVZA.Ý·Fh;!6÷œ{lÑίt40$OåBvm! 5û€Úí"dÏÑs‡Ñ))²qê3¡Ô΄ˆÖt×M|ôv™­Å’eÃéOùÓBÜ“ÚÖ—í¶tÜ[ÙÈÌsÍ®aáÞuoáÊJ\ÕY{‡ùÿKïLi©Â t×¹Oâ½[›2Ÿ¤,¢ —wrÚ¯Ú_46xïéúŸ½ã䒛Р»HÔ“ùJwU$û¡Žì¬ó¯(%ð µÒtƒ¨þkþ¾´Ú燗·fÈÐÇC»â’—ô*™i’}¤·SÁòMöj ’ÀíÉ{AÑ ¼›¼ms`Ál| geXuh—“¤h&=Îhÿ^S`ÓYR„ƒ-3=”[‹PÒâÒ\ÒI‘'wÏT~AkŒµ½Û-7ììäîɱ¯ 0eÅ£NaÛO} j’“}ž°ö¼H-$øòïÇ3¢$•Y¹:æ·ÛµÅÁÀ [£Yï¡ëõOûŠÏûp$¤?Yô {Œw€~+ŸwÒ?©õ†þ¢z6k_ŽÖ°Ðýä>`iªËwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"`—±ÓËFãêÙ¡1ÿiîïªe¹>Iy=z‹ê­õº·6XùoŒò£¾ÿôMÿ?ÿ1PÜçXÐÖ‡€3í&Øqâ˜Òfê)t’ÝO'P{wöLq©tKf5Ôxç]~ˆåe[¸ £k¢î]üŠ2Í;˜d¼¬Ýç ù¤¦êJ§Ú25Ðja‚?—³÷¿,)ý¡À–9ÍkÀ.?š6‡Iâc””ØIT9W‡ì˜ƒ®ã ?AVÒR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯H}7üÿH8ïê·ò½!ôßðgýý%)¿JÏìþB¤¢ß¥gö!Y=[ö…¹N¦†Þiª¦=µÐÿDØ÷¼µÄÚLí]ÞI)ØIA¬û63E¶:Ã[7Ye‘¸Ä™vÀÑÇ€T°ó²S›pd›Èôý¶û˜á>Ø ½’S ’«fUÌ6P&·µ­tî>“­#VyBgumk«a°X]³l’àÀÒâZO.ùRSm$.uy,¯kž×1äµÜe®`ÿ¿]™ïáå¾£ÅbÇI *e®á§÷’Sy%^‹íu®­íÓu»_#ŠÞ@þW*ÂJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)Hgù›¿êÊ"þcæïú²’’»éŠd¡môáäÝŽÏRúë{ª¯÷œ *]#1¹Ù}¹/c"Ë^ /.lïô¶Jæ¶<øINšJŽ~e´_HaŠÙÉö—MdìÝÒOdWäÜcë©®mv sãqÜÖ¦©)²’¬ÜÀom;œâ+$ó>·v·l©ce}¦·XÖ¶kŒÁ˜å£]5‰ø¤¤é*UæXñ-{}JÚç47sœúY t÷”ÿmµî¬WX÷–ÃÜǶÒ7iíþnO))¸’…6zµWlmõ×Ç1¸n…4”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SôÙý¯ú—$œgÁß‘#ôÙý¯ú—$œgÁß‘%+ü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’LéÚc˜0’—ISû>@k}äÙp’=ÞÝÝñæB™eò>‘ùïwÓðÙ¯·ðIIÍl/#Ü8*J¬ÙösLŸ\™ÛºyÝû¿ÊQ ̶$TKI×§Q«œ}ÓãÙ%7_[,ñ¸ ±íh¨½ÎqÎí<ûŒû¡LYwªãídÉÓžÝ䤤É*Æœ\VHwé'q.çèråÓ“ïp$—LãÆæÇçGÄ$¦Ú‹«cÈ.[ÁUÍyNÝÀ–$ðÏwåùöS.xe•¹ß¦~ïN$r=±Ì}é):J›«Ë‘2`AÓ†˜gIõe’ErÙsœã›®N„ù$¦âfµ­¢$’~'’«¾«v¼´:\ö˜ÜO¶à=ã¼÷C­¹7níC¤‘¶à\f[ñIMÂÖ’ [«O‡dê¨mÂúË·jçnÖAÑÄh h~Ç›ÿsŸþcRR¬ŸøŸêñ\û¾‘ø­O¬8™èÙ¯v[žÖÐýÀ´ {tñYnúGâÇ/´¾‹$’IÌêI$’R’I$”¤^Ÿÿ,ôïøÛ?öÞä%,fYgUéí®ÃS¯‡$~‚îŲܟ$¼žÅ%Oìy¿÷9ÿæ5*ñrØ×d78@" nŸiQÙ1¤ÜITk/kØ]ºíÒ6‚ýÒ$Ìè¤òû-kêÜæ ºƒ´q/–˜™I)²’«]7û=RIÜHqà‚Häpå*ÝeAþ» ØK˜u0Oo(Ñ%6UkeÁ€9Ú#Ôòç×iÝ Ÿ4‹2¶¹²dÉù¡¿IM¤•_Jÿ¤òIiv¡ÇPí0ï&crI–´³G“:6ˆwù¤¦ÚJ½â÷n Úk‰1øžò¬$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•é¦ÿƒ?ïéçýVþW¤>›þ ÿ¿¤¥7éYýŸÈTÃœÞ (7éYýŸÈU|ΣˆöTñe·Ø ™E5ºÛ Z@s¶°p$$¦ÍŒms,ÚáPGš´Õtú¬k÷DîôNá÷¨º¼ŠYuD–X%¤‚ÓpàJ«ª¹¥Ô¼XÐKIi˜sLòIJm4µÛšÆ‚"º GÜ (œ\bÊëô™²¯æÛ7ú¿z)0@=Ì’RÐ7nº¼ ~U_W£¥l:;kZLm ÓwÑû›¸2}Ä€Oâ%-±Ûƒ@>í¬w;ï!:I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”†˜ù»þ¬¢!Ÿæ>nÿ«))+¾‘ø¤\â ’BkÖîsŒ5²I=€Tðú¶&ee-¶,núm}Oev0 Ý[ÜØ!%6uòÐ}Pgò€~ò¢q±‹žãSwYüáŽb9û‚wÝUnc,xk­;kÆç0>Jp’˜ŠªmÞÝÛ]æ_Ö<¦®šjTư8˃DIÿR¦ ‰cîÑ#§))§_·Ø=€éÀ¤óhB£º^û4sÞAú! mþ¹Õ®hsLµÀGpu:JY­ hkD5  N’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦'é³û_õ.Hÿ8σ¿"Gé³û_õ.Hÿ8σ¿"JWøFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”˜½ƒ—ÉòŸÈüVÜýû‹L@?1!%%Öç5À¸rÐD¥ê׸³{w KdOФÖóc%Ä—“ÜGÄGÍ7Ù÷÷/’ZuZÇd”]Qph{KˆBœ:ê--qvâZ~grG‚I5‚O))£õ”ÐsÁК%Ï»éŠÛúÉ‹Gì,ç†YCÈåb;éŠt[¾Òú,’I'3©$’IJI$’R‘pg§NŸ¥³ÿmîBRŦ«ú¯O®Öîa¶É .=;-ÉòKÉì77÷‡Þ}Z¶—€Ö˜$ž ¿ìžþ„}îþôõôú(ã´1䃸É×ä˜ÒljöÁ‘ô|~ kvÝ®t–Áæ9„bl-vó¹£n€gO‰NqÈs,%Õ45­àgâ’’›+— ç†Î¿rM¶³ô\±¡î5Bôl{œâ}6ÙÛ»A·Gy¤qÞHqxÞÑ´{tÛj'RRSm@n/h2zÔ‘;ÛG~†k‰#p ˆñh`?$ÏÆ{ˆí€è5%¥­k‡—ÑIIÍ•µÛK€vš'^•wã:Ai·t¿€VR’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½!ôßðgýý!ü㿪ßÊô‡ÓÁŸ÷ô”¦ý+?³ù 0Ø3ìÌÞA¶–RæDѹÎiŸí”Fý+?³ù ’J[%ÖèÖ‘\é.í2|Uôû±Øêj‹i.©å­>‘vßmƒé~t5Ç]V‚I)¤pÜçXML´·qÔ4RêãG~k¡AøÙÖUIy‹\ëÃ=¤††ns[íÛãߺÐI%!´Z܆Ù]fƆ=¤4D¹ŽLÝUß‹—.{Û¤ýKù:6³Uä’S_ÜzÜË]¼‡m¬É'ÓoÐ.ÝùÆL« $’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRþcæïú²ˆ†˜ù»þ¬¤¥³ñY™‹‘ˆòZ̆>·8rÙì`ÛÝ´ch& ˜Lï¤~)’SK3ü‹M¬!¦†ƒ"fÍÛÉÞߢ>e+1l³×«{Ÿ`s_êhXÇ\6À êI)¨Ü|”דú':ïwîXçÔ¿œ¯Á,2+©ã ŸQР‚Fép÷îó…m$”Ò5d¿šÝQ“C\ÝíˆfÐ}®á®ƒª‡Ø³=fŸVkÚé{¿›xµÃÏp†­’RަRI$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SôÙý¯ú—$œgÁß‘#ôÙý¯ú—$œgÁß‘%+ü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJC¾öRp'tÀ8ùÄ"(¾¶?é €GÉ JbËÚë 6¸s<±=üÔNSŽ® ,™"w=üú k‹ë;^{™pÌ4˜Ö…,åÚ»ROHÚOÜ’–mÛžÖ†;ÜÝÁÞØ‘HäR Éw÷)6¶2 F ?'ñRINGÖLš¿ag4wÒð cÌ,G}#ñ]Ö@Aêò(|ŠçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^ =ò{3þþ›s[c·=­äÇw'.¨òX~;OåIJ"³© 'Ä€*[iýÖšßîMºŸø?¹©n§þîjJ_m?ºÏó[ýÉm§÷Yþk¹6êàþ楺Ÿø?¹©)}´þë?Ío÷%¶ŸÝgù­þäÛ©ÿƒûš–êàþ椥öÓû¬ÿ5¿Ü–ÚuŸæ·û“n§þîj[©ÿƒûš’—ÛOî³üÖÿr[iýÖšßîMºŸø?¹©n§þîjJ_m?ºÏó[ýÉm§÷Yþk¹6êàþ楺Ÿø?¹©)}´þë?Ío÷%¶ŸÝgù­þäÛ©ÿƒûš–êàþ椥öÓû¬ÿ5¿Ü–ÚuŸæ·û“n§þîj[©ÿƒûš’—ÛOî³üÖÿr[iýÖšßîMºŸø?¹©n§þîjJ_m?ºÏó[ýÉm§÷Yþk¹6êàþ楺Ÿø?¹©)}´þë?Ío÷%¶ŸÝgù­þäÛ©ÿƒûš–êàþ椥öÓû¬ÿ5¿Ü–ÚuŸæ·û“n§þîj[©ÿƒûš’—ÛOî³üÖÿrdmöíãn‘÷(î§þîj[©ÿƒûš’—ÛOî³üÖÿr[iýÖšßîMºŸø?¹©n§þîjJ_m?ºÏó[ýÉm§÷Yþk¹6êàþ楺Ÿø?¹©)}´þë?Ío÷%¶ŸÝgù­þäÛ©ÿƒûš–êàþ椥öÓû¬ÿ5¿Ü–ÚuŸæ·û“n§þîj[©ÿƒûš’—ÛOî³üÖÿr[iýÖšßîMºŸø?¹©n§þîjJ_m?ºÏó[ýÉm§÷Yþk¹6êàþ楺Ÿø?¹©)}´þë?Ío÷%¶ŸÝgù­þäÛ©ÿƒûš–êàþ椥öÓû¬ÿ5¿Ü–ÚuŸæ·û“n§þîj[©ÿƒûš’—ÛOî³üÖÿr[iýÖšßîMºŸø?¹©n§þîjJ_m?ºÏó[ýÉm§÷Yþk¹6êàþ楺Ÿø?¹©)}´þë?Ío÷%¶ŸÝgù­þäÛ©ÿƒûš–êàþ椥öÓû¬ÿ5¿Ü–ÚuŸæ·û“n§þîj[©ÿƒûš’—¶™h`> RldÎü‰·Sÿ÷58}C‚ÁðÚ?"JWøFÿUß÷Õ%æ›[k¸3ûªi)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JkÝ’úž@h-o>1·týê/Ëp‘´{HÕÍýßi( )¨Ü»SÞ^ðÒàÀ #iw¹Nì‹*/ÒZÍÃÌýú®ªÄ’SU¹?Fíæ¶H&w ÑÞ^%1Ê´½Íh‡–&#ý ðòVÒÌj’šÕdZûnôrÍúßÁ¾éÒ©Žñýȉ$§#ë%—þÄÍo§ÐýÞà`G<,G}#ñ]ÖOüOõø‡®}ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹ÓÿåžÿgþÛÜ„‹ÓÿåžÿgþÛÜÙnO’^O\’I&4”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¥%#Ëî $¼¼µ°’dòO‡Áau![:ç«}XÏB¶]mÄÙyw¤ê˜ðÒ$|’S¿òpKO÷‰uýwÕ¹ô½Î溪M‚),n37Dû÷=ÿNŸQ»2¶›l~Eîm¶TëC}^ÿc6êû8h˜ù¤§_ä>à–žî $õj›”0Ýe3nuòÚÃË‹[¨hÞ×s§¶½”GPꃨÓM`3ù5ïØvÜ“[Øý”Ùîôõæk©%%=žî ià>à°1rº…­Ã}Ù9ÿµ†æãú¶1¥·ÅcôRY¸4nÜ{„Üî¶Ìa±¯míÅÜÜqD0‰ê 4gÓûG³fî?7ºJzM<ÜÓÀ}ÁSéßmŒšòl6º«Ëk²Æîg§[ô ¹ÎZ‹?y¿qþô”ËO÷´ðpQ‹?y¿qþô¢ÏÞoܽ%2ÓÀ}Á-<ÜbÏÞoܽ(³÷›÷ïIL´ðpKO÷³÷›÷ïJ,ýæýÇûÒS-<ÜÓÀ}ÁF,ýæýÇûÒ‹?y¿qþô”ËO÷´ðpQ‹?y¿qþô¢ÏÞoܽ%2ÓÀ}Á-<ÜbÏÞoܽ(³÷›÷ïIL´ðpKO÷³÷›÷ïJ,ýæýÇûÒS-<ÜÓÀ}ÁF,ýæýÇûÒ‹?y¿qþô”ËO÷´ðpQ‹?y¿qþô¢ÏÞoܽ%2ÓÀ}Á-<ÜbÏÞoܽ(³÷›÷ïIL´ðpKO÷³÷›÷ïJ,ýæýÇûÒS-<ÜÓÀ}ÁF,ýæýÇûÒ‹?y¿qþô”ËO÷´ðpQ‹?y¿qþô¢ÏÞoܽ%2ÓÀ}Á-<ÜbÏÞoܽ(³÷›÷ïIL´ðpKO÷³÷›÷ïJ,ýæýÇûÒS-<ÜÓÀ}ÁF,ýæýÇûÒ‹?y¿qþô”ËO÷´ðpQ‹?y¿qþô¢ÏÞoܽ%2ÓÀ}Á-<ÜbÏÞoܽ(³÷›÷ïIL´ðpKO÷³÷›÷ïJ,ýæýÇûÒS-<ÜÓÀ}ÁF,ýæýÇûÒ‹?y¿qþô”ËO÷´ðpQ‹?y¿qþô¢ÏÞoܽ%2ÓÀ}Á-<ÜbÏÞoܽ(³÷›÷ïIL¿”Apxkˆ ‚tq'ÍI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IM[[—¹Æ²cÝ{‘ R´d¹Û€pŸh<{Z?5ÍÒeZI%5ËV× á³s‹õ&}ñ´ñ XÌÖlßàîЈnÝ¢yå[I%5[]îúEànl{ˆöË·~w„wLkÉsÜ%ÀItm“àÿȶ’JkU^@±ŽyvÑ´\sYÖ>—’)eÓ¥°<6„D’S‘õ’«ÿbf»ÔÚ»Úˆáb;éŠè>²â¨Ä=sîúGâÇ/´¾‹$’IÌêI$’R’I$”¤^Ÿÿ,ôïøÛ?öÞä$^Ÿÿ,ôïøÛ?öÞäËr|’òzä’I1¤¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯R’¢?œwõ[ù^ªåõJqrŒj¾ûžÃhe:ÂÒNÞ5))¸’.GÚj6Šm¤nÛ¶öÜ`L†»XÕ!•ŽçlkåÚð æ Aù$¤ªSN=M¦† ëoÑctN `à\æ.lnÂJ^JJÝU[}GFé I1ÎI®kµi‘È⤥ÒC7Ô-ô‹¿I§´yâHR’I3\%¦D‘#Ä?ˆIK¤2$p‘ÐIã””¤’äOŠI)I$’JRI$’”’I$¥$’I)I$’JRI!ä_^>=¹˜®–:Ç‘© hÜ”‘%G«7&Êëf&c}R6¾ÊÆ{¹Ç€­[}5,vÒé A:“ >))"I DAà„Ûš>ç@ñ'ò¤¥ÒL×5À–™Hñâ‘K,ôÜèyƒx&˜1Ý%$I g‡Ü†Ëê±åŒvç6A€bZ`ëÊJH’PSÒã Iò )t“HÛ¿óbgÉ:JRI9òzPRR’I$”¤’I%)$’IJI$’R’I$”¤’I%1ÿßê»þú¤£þ¿ÕwýõI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’INoÖM>¯õxô¹·dâî?¦¯Ÿßo÷®ÕÍkÚZð×s\$àAAýŸÓÿî%öÓ?ò(ƒL˜òp^—oöœ_ôÕÿžßïKí8Ñ>µq㽿޻Ùý?þâQÿm3ÿ"²nè}5ý~»KiƱááŒ1¶ÊZ[·l¤wñG‰Þ?«ø¸¿iÅÿM_ùíþô¾Ó‹þš¿óÛýë°ûOÿ¸”ÛLÿȦ=?§GÙhÜTÉÿ©K‰_xþ¯âòiÆÿM_ùíþô¾Ó‹þš¿óÛýëªÅé9¬–âÑÎöúL’û?§ÿÜJ?í¦äRâWÞ?«ø¼ÚqÓWþ{½¦ÝKú×N ±>­†àOô{¼ ê¿gôÿû‰Gý´ÏüŠ•x˜•8>¬z«xáÌ­­:ù´!ĉgâpïâ•$’A…I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^€0Þz¨ÍÜÑXÆ4m$îÜlm“ÇÇóŽþ«+Ô’S3 nÌè³Û’+{*k©cý¬h$ééǹ¿‘]I%4lÇ4‡Zóì&mÜò7qpl¸Àöh„Ìl§âÖæ .lë·kÄûöð\•¦ j4JRS[&«Üi4—˃œ×0;ÜÐ9~ŸQn-ž½{ZáNÁí0Ö‘]ŒqkIâ\Õm$”Ö,ÈnU–4<Öýš5Õ´¢àñ»îC8vÈ'qmŸžusì‘ßýƒÁ]I%5±ñÞËw¼mhi³t†î{ˆ l C·Ç0É¢Òßq9öïi0{6UÔ’SFºr,¾«>Œ5Ò$~’ÃÃÑsKxW‡o§DÓ¶ÚÃ÷¸Ù¸—:·3Ô’gW+ó<¤’š.ÄÉvð ¶ ñ †Ñ¬°L«TUé1Ì7Ôy`™ö—Þ|‘IJI$’R’I$”¤’I%)$’IJI$’R•~¡Žü®Ÿ•‹Y÷ÓeM.Ðö–‚|µVIKãÖ*eMsÚ}6´žÂ<- ÛeuúƒÓ{. âÂ'qãÚŒ’Jh}‹!ŒôØA,«clÚ TY±­™ÖÏrVãeXâý›\w†~{76Ç=œÂ`J¾’Jilµ1Ãùç»ÚD‰¹ïîGÒaÄ•+¨È~As?›pªd·g±ÎqÞÓî:![I%5©Ç{2ì¹ÂwµÀ>dǪç´GõHPmYB»«‡Ãýmžúö åîi ýüUÄ’SMØo¶´ØÒáì/:´U´jç¤÷FcØÚo;í°m.$­¬Òx—IVIM œw±¸˜pZw=\4O&Â~.YvIÔî‘XÛ¹»˜v“;šv‚ÞùŽIMAŠá¨Ê…@ŠA€ËKÞÝ å¥B¼;‹ZÛgl´Ø7Ÿ{ƒ,yÚxsœÝä’S ZæS[ôšÆ‡wÔ4¯ÅM$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJUU‡«×~Óé7ÚËûnu•8¹¥O¨eý‹#3g©özŸnÉÛFèäTqúÖE¾“]ŒÖ:ËŸI%ï »ÉßK^Òç?‡µ¾RKAJu’U:f]ù˜ƒ"ú™Kœç´16cs¹Ì¯»Oeaöls8Á>â’•KKk‚ îqûÜJš¬ÌÇ9…å4<ž êe£Ãà‹]{žÐ  ÎÞÅ%$I$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%,ZÓôš×|@?•-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÛ+ýÆšßîKe¸Ïó[ýÉÒIKl¯÷þk¹-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÛ+ýÆšßîKe¸Ïó[ýÉÒIKl¯÷þk¹-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÛ+ýÆšßîKe¸Ïó[ýÉÒIKl¯÷þk¹-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÛ+ýÆšßîKe¸Ïó[ýÉÒIKl¯÷þk¹-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÛ+ýÆšßîKe¸Ïó[ýÉÒIKl¯÷þk¹-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÛ+ýÆšßîKe¸Ïó[ýÉÒIKl¯÷þk¹-•þã?Ío÷'I%-²¿Ügù­þä¶WûŒÿ5¿Ü$”¶ÊÿqŸæ·û’Ù_î3üÖÿrt’RÁ­oÑkZxü:I$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JceuÚÇWcCØñc„‚b ÅÅ66ÓK Œy±¯-ƒÜ6¹Àø9EI%1el­¡•´1¢HkD Nãlj)ËZH$[¨'²t’S]dAh4€H:”’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕàI1¬q*Qÿ—úoõ2óÝj÷æ|ÿ‚J^â~ïö¥ ñ?wûV5¹Ùõä_ªÃVm8fsCe¶ŠæØ%ÅáÖÌq Uõ…—峚 œom6Q‡c\˞פëú{RS³ ñ?wûR†xŸ»ý«}eÆ4Ûci%ÔØÚÜ=FlÜ×>ÐK[ôÓ¬g·(eÒáE/³eÍ,-Šè®òÈÝ'éŸw )Û†xŸ»ý¨Y×mæ\)c¬ CAts䲇ÖlIÇi­Ûòæ–‡4Æ×¶¢XÂ{œ>Š3²ß›õ#*ʽYEóVàøÚϤßIMú-QUÀm±¶óšŠšOÿ“ñ?â*ÿ¨j:JRI$’”’I$¥$’I)‘kG$ÏÃÇæ”3ÄýßíLþ~Cò ffcac»')þ,΂íI€! žRSbâ~ïö¥ ñ?wûVoPξ®—öºÚì{úZÐX-{[m̯w§YpqÚéJ­ûy¸½4æe{[m•—ûivÚµ%õ¸ˆò9ø$§nâ~ïö¥ ñ?wûV>gZ}X¹Y,¥ÕãbZÚŽU…¥®"Úë·m`îÐ9ÚžáicÜoÇ®ó[©6´?Ò|nná0í¤‰ILrr«¢üZ`¹Ùv:¶žvÖûdÿ™Ë;©Ê='ÿ [ÿ¶×ªý_¨æc溌wÚݘ¾»+§ä:Ë ÞÐÒ@;Ú9„”줲¬úÁN=îÆÉ¬¶úéõÖ9Ž—Âöí–‰|TOÖ:mT]Cê½ö:·×¹®--°S"¿Ü{vINºK?©åeb]ŠúÜïFÛk¦ÆŠÃ«£ÚÉ}“½ŸKÛ'•,¾¨Ül@RëHïxs@k®s«¥º™;œÂ'²Jo'h“,qÔó[ÐðóÒì¬ãHÚÆÆàƘvÑ “æîëG¦Üoâã`¸Ù^ãho§¸‘ÎÍvüRã3 ÀØçÁ¼ƒð %ö¼Oßý´ÿîM„S£þ-Ÿ,ίÖòzn~ÒÆœ¾Ëµ.ªçºÆRçÁ¹ÌÚ| ¥%:ŸkÄý÷ÿÛOþä¾×‰ûïÿ¶ŸýË.¿¬´cSì·ZÝ…²K+e¶€ÒFÝ¡<«8=\gd±”Ò~Ín?ÚjÉ.æú†¶Ã°à7’›kÄý÷ÿÛOþäŽf ½þ?Í?ûhêx÷gßÓ¡ìÊÇh{šD´°ŸkÚöË{ýwy+Nú'à’áæW™eí«èÑh§!Ó]vî_¤V!ž'îÿjÊú·ÎgþgþÛc+ùW}Ÿ컽 ßnÙ‰ØÒèŸ8IIáž'îÿjPÏ÷µb~Ó³¡“ŸU¤ãŒ‡aÖÆ·G–º»$ƹÑ'â¦Ï¬5ØiãXáfÏQáÌÚÏRóˆ5Ÿ¼~o#T”ìCÊçéC@ôœuì’˜g‰û¿Ú”3ÄýßíX¹¿XŽûñe™uc¾È%® °R솴´[ ÕÜN‹Z²][\y ó )²˜3Ù„.}/¿=ŒˆóÞ¬–´hIŸ‡ûVkÿñEOþ»ÿ?P´Ÿô¾Cò$¥CGþ‘K‚_º~ÅXî)*ÿ´1á¿ö#ÿH¥ûCþÿaò?ôŠ\ýÓö*ÇpØIWý¡‹ÿ ÿ°ùúE/Ú¿ðßû‘ÿ¤Rà—V;†ÂJ¿í _øoý‡ÈÿÒ)~ÐÅÿ†ÿØ|ý"—¿týбÜ6Uþßÿ ÿ°ùúI/·ãÃì>Gþ’K‚_º~ÅXî *ÿoÆÿ†ÿØ|ý$—Ûñ¿á¿ö#ÿI%Á/Ý?b¬w „•·ãÃì>Gþ’Kíøßð¿û‘ÿ¤’à—V;†ÂJ¿Ûñ¿áö#ÿI%öüoø_ý‡ÈÿÒIpK÷OØ«Ãa%_íøßð¿û‘ÿ¤’û~7ü/þÃäé$¸%û§ìUŽá°’¯öüoø_ý‡ÈÿÒI}¿þÿaò?ô’\ýÓö*Çp‹¨ÿËý7ú™?ùî´l®£ÓðšÖædÕŽ^I`µía sŠ¡Ô3ñÝ×zsÃn†³"f‹ÕŒá¦¹?%mÝGó›oÏÿý$—¿týбÜ8ֳ꙯Îý°YuõHnh‡††6¢K  J=W}NªÖÝ^^0±…¥‡í$³vÝ­6mov€F«GöŽîÛÿ°÷é$¿hàþí¿ûwþ’K‚_º~ÅXîæÛõ=»Ã3h`°487-íY¸5  th0Ñ¢#ó~¨½Ž­ù8N­Û·0Úͤ=‚— »£V45^ý£ƒû¶ÿì=ßúI/Ú8?»oþÃÝÿ¤’à—V;†€Ëú¦K†uñ§Ñ°å8¼âÒónç4–k‰ 9][êí='+;4ÓvÊÅÍ>ç‡8.<¸ð´hàþí¿ûwþ’KöŽîÛÿ°÷é$¸%û§ìUŽá&üŸ‹ÿWýCQÕoÚÞì=ÿúI/ÚÞì=ÿúI. ~éûc¸l¤«~ÐÆð»ÿaïÿÒI~ÐÆð»ÿaïÿÒIpK÷OØ®!Ü6RU¿hcx]ÿ°÷ÿé$¿hcx]ÿ°÷ÿé$¸%û§ìUŽá²’­ûCÂïý‡¿ÿI%ûCÂïý‡¿ÿI%Á/Ý?b¬w /ë}›]U¹øõØÏkØëX jžPÿçA ƒÔqH:ê³P~h§¨aN¢ÙÿÂ÷é$¿haxYÿ°÷é$¸%û§ìWî켟ª¹xcõqñÃöcd6C½A« w»NèUÍc»ýI™¸¸“v^çûÆ×þ‘¯kýãéIÕk~ÐÂð³ÿaîÿÒI~ÐÂð³ÿaîÿÒIpK÷OØ®!Ü9õäýP©ï}yx­6–ºÁö‰kœÂÂ×6îšÛî‰=ÑñúÇÕ¼j[Eø¬©“±ž³Lf=Î'º³ûC ÂÏý‡»ÿI%ûC ÂÏý‡»ÿI¥Á/Ý?b¸‡pÐÈê}73ªtªñ2©È{oµÎmOkÈg¸L4­J¿Xß·ô¥¢²þûA.ï%u 9ö‹gËïý&Ÿö†7…ßûþ“K‚_º~ÅqáWHÂÈ{îôÀÈxt9Åæ½ÏnÇ9Õ6Æ4’§Ÿ4,ƒ‰‹U^¡7dTû,´º£6¿Õsa’ÉGO&JµûCÂïý‡¿ÿI¥ûCÂïý‡¿ÿI¥Á/Ý?b¬w îÃÆ¾êîµ¥ïª =Î wkØH:‰ ­ÁĺödYXuµÆ×I[-k¶“-‘§eÚþì=ÿúM/Úþì=ÿúM. ~éûc¸ef-˜ƒ Õþ®Öµ­`.l ãf×4‡ »DTÃñ01åîf65-‰q cD@Ô¡þÐÇð»ÿaïÿÒiPÅEÑçþ“K‚_º~ÅqáÏÇúÇÑꢺݓIsÖ˜¾Ž@ôª¦~oÕ¼÷ØûóT1í­™T:¹qÚæ—‘ùÅlþÐÂð³ÿaîÿÒi~ÐÂð³ÿaîÿÒipK÷OØ«ËVWÕJØæzͨ-/Ëg¿fݦƶöµÆÄÀ‚¬ÕÖ~­Óh¶›)­ík˜6ßH¯w¨æ†úÛ~–¼-Ú^ì=ßúM/Ú^ì=ßúM. ~éûc¸i³ëB¯p®ú½ÅÎÛm\yq‹u)ÏÖnŒAi«]?ž£ÿJ«oÂð³ÿaîÿÒi}¿ ÂÏý‡»ÿI¥Á/Ý?b¸‡pÒú·‘ŽjÎȱÔ7$\ f>8qÞ i£Y×z •º¿ÚxìÞܢ'»L«#?4íÿˆº?óÚÛð¼,ÿ¶.ÿÒipK÷OØ«ÃFÔª ¦,¨5Ìû=™»éØò Ø*.ÚÐHF‹z‡Õf€>ÝŒè Ÿ‘½Ñ[ýfKž÷8í~¼«ßoÂð³þØ»ÿI¥öü/ ?í‹¿ôš\ýÓö*ÇpУ7ê–< s1XÖ¼ÚÆ}¢X×ðKç–·ùÇhѨUÔêmW—Œ,i¤ä’Ö½®°´45îb ­/·áxYÿl]ÿ¤Òû~…ŸöÅßúM. ~éûÄ;†žSú±ƒW£‹]Cè³íšÐ4ïvÑä4OÓ2ñrúÏQ»æ_P§¥õ¸9²D‰j·öü/ ?í‹¿ôšqŸ‹ù¢Øò¢ïý&—¿týбÜ"Öƒ½ßå^OøfxüU.§—õcªSèeuJ…\–UÆAi=å¤H#…£öü/ ?í‹¿ôš_oÂð³þØ»ÿI¥Á/Ý?b¸‡päÖ~¨¶†ÓgRf@iûó\û"Cö›=@ç48n’E³'ê}µŠ¬ÊÄ,hhl^›ÍŒÚæ¼8¹Ä‚ ­·áxYÿl[ÿ¤Òû~…ŸöÅ¿úM. ~éûÄ;‡<åýQ/u‡3{ëX~Ò}õ†–Ø=H|5ÄK¤«C¯ôG ý+?½íø~Ûÿé4¾ß‡ágý±oþ“K‚_º~Åqᣟƒ›õ†³‡‘V@f¡æ§‡Á7S´«—õ΋U®®ÌüfXõìu¬¡J›s±4Yò¢ïý&›íØ}Å“ÿoþ“K‚_º~Åqáüàè?ùc‹ÿn³ûÖ~UÿVr®º×õ€Ã“XªÖW”Ö´Ö7{6ö÷}ëWíØ~Ûÿé4¾Ý‡ágý±oþ“K‚_º~ÅqáΫ+ê•EʏäÙ´Û9=ÌÙµîfý»ÿFÙtJ];+ê§Mk¾ÏŸêYË_{\÷\æ‰.Рƀ´~݇ágý±oþ“KíØ~Ûÿé4¸'û§ìWî΃ÿ–8¿öë?½U·©ôìαҙ‡•NCÙeîsj{^@ô,CJ¿öì?ÿÛÿé4ã;}¢Éò¢ßý&n+Í7m”>ÝG…¿öÅßúM$ÿÿÙ endstream endobj 565 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 566 0 obj<> endobj 567 0 obj<> endobj 568 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 569 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 570 0 obj<>stream H‰”WÉrG½ã+êX=!4k_Ž2eÊR„Fvcd`"aa¡ È”çëçeeUwC¢4v0‚Ý™•ëË¥ ZÜÌ.ž¿Ñâæ83¡OID{„êµQÊâilÎYܯgïg&¶cçIàüôâòÄêfT9 …“³ZWû™w":ßãÀ+'4½-ðý’ˆè(ô9(]ÎLê•áÃﳋ+#´X¼Ÿer$²ðEê‹ÝLAyïʱXÍè 1/foåÕ‹nîû ¯^óS<_ïé-Ëu•,ï»yÄcÉÔéPiÑ…>Ê?QAöº{·x‰ ,1¤Ž?N׸>±xÆ‘h_"á º z/ûO›í¦ø÷òS¿:ìŠÙï@¬$P’D“š.ÁηB(Ç#8 pð.mì¿QϽëS¶VÌuoÌj&aÖKðžk)zÑÍ ‰§wF‚b¹U$wW>†I¥UŪ…‹’rÄôbm@^h+ÛS±v¥XvÀfàõÝ©sp g¦×òБç=ÕÈËåV\m—&·7Ì:>?,¡äþúXž·ËåY ìoŠ…'b¹//×âÅ~S]°âvóßå£>k…þ@‹nDiëà)cîCià_þ%ö­‡)7„lB×¾xvX}Ü­÷'qñêÒzñݳËÙO“ BUl> @c¦Ö©4¦ÕдVŒt¯r»œXDƒícÒb;ó¹€yˆ½ nPÙ"Õ‡œuÅyM~umn¿â§Þi7q12¾tñGJ¹HHÀÀ\Ó´Ç‚ÀúVÎ-ïûhÿQ¬ñ·“üÂ*çÂÔÁÀøÂÁOßL!¸Þù<ÔaÇý¤0MF öï¦Y¬!‡›Å)ÚFãËv×hXzz—‹=lgcUO°MŸµ/ß) (ªÞÆQ°h´ž0 ¢3ƳD&O“,a#èi?^0:™¢DF»©D Ê”aa#N¼@‚ÖØGÝÈ—oÄ×2~sùo¬Ç—XC¿ã«ƒÚ?­Ä+ñö׳˜P?Å¢2†Þ̾sÙNdcI¦Wé1ÚÍhŠ3aùåGè1”ÐLaê¥2&‘dHO#ɘ,Ãhi=ØÍ¨‚õ0«PI¥Fì­N¥™|‰µ1F‰ÔaLÒùÿ{@+|5tžd£¾ 9NQ+ìz?*gˆLÒÊôaÚ‰jÚVZÑ ¥3NsÔz‘‚ gëS«ˆ×gÇvW$Ckhš¸VCs©#g†O‡èˆ N¡+é|%­X…˜båø"‘L•ÈŽéjw.VH™}Zc‹@ÖlÀbAÚV× ÖÈ>ŽSl2vášF¥½j>Žã šŸLõÁ-0ÄUÃpžÁVLyöPs ±åà3ZÒºjפc •nö#+Då+¬f\CÈÍ ¶ÂDœí‡J³ÝΦåICSM=Õæ:Ý©@‘ñÙ¯vƒ•i1…(td Áœ‘. •c«¼›´ÔT Æ›å•b4tˆ’átÅ:5ÚØªÑö‹7¡&Ÿ“þŒ4ûüg}Ιjédå0` kì#Ïm‚‹32zC&PbEfR,töÕQ­]ó‰vºd¨ëWÌ:î?ãy7˜«åfȸº8Œæþ Vtí§Î$RÍ´hè›7‰=ˆMÕ¯Ò6»I~Ÿõiþ£„XÃ{¶-GàCF›FåØÚ™¾ytÚÜÚÂÕ]µc”(]í\[-«¡‘jkåwAÁÓÝwDÉ÷ú|7¸NŒ2è'u`š5¸R£„g¸Ðº (.÷I‹¯õјAçYs§q'6 j«Ž ¡ôFü4ŒqóH·BŒ.U³ÐJy6 ¬P ‚®ãêöLÊT 5-ÃA&Í0(ã« Þú÷œ„cdM˜Ä & ûÐ0ÐÖ0r.²„õç¥!ºŽHÖgÙM ОÊg.¨YÆr™”1B4ŸKg9PÚI–¹Þ_ ôÁNN¬Q? žÏcÊÓ=ÚÈqBGñ@Dž°Tg2ÔDßd–o¨ ÚDñлd&)` Ä–2'‰=QgÎ0©ë¸0F¶lêú¬wˆv=Èí®ÏÑu@¢=“à:ޏÒSÜ -ˆÖ*-ÆÖLc­ÝZž­µ_G pªÐ¥º¾]ˆ#Ð#9ŽHãØ*_+ëølV¸X}ÿê?½.ž¿Ñâæ8ûn1»¸Bƒˆ®\1₯¿izú‚㾉M³Øáþƒ_DJa+~‹bñ0“O·»Ãñ$¾ßÝþWÛåM·øvÛ͸ñ³å…–O Û2›$#¾™ú0÷V>íH@þÙÍqo•ËnŽ;´ÜlëËoÛµØìÅrÛ͛܊«tåÕk±ÙÝUöz·ÞŸ–§ S‡ýQ¬?­Öw'¨vï/gFcxàZ‰Å³ü(_D‡–ã'ƽXÞ≛­<”§—G<áÿñ SŠE,Vö†þCh_•nðÔ ÅÏ›úv_N²læÉP€¡O…ïä¼X2à‰V’Oʹ•¢ òçfþïA夯FD ¾)þ³xÈ”Ã3—8ÁyƒpŽ„to¥žf¨gb¯~ìæhXùü)=sÉã·nåÇŽ ¼AÉœ<ÍY¥¥‚’ÿ«×G*Ÿ—}g ççëýú¾tA’§u=#c˽8|¤è{-ï:ŠG6’Žï\rü˜UÉqÉ)>=42~@•HïOât»ä(O5!úåz³j¬õçkH½v,®ùdÛü/c°Þ!5FÃPªŽ'@QÇiß:_§Úù¿JDѧNÓØÔDx&ØŸk,YùW9¥šg¨™ÆB+ùîè}0q?=”>ÑtrMV¥XIK¹hÏ[l I‡¾t:í)[M”-üÚÕ°û’ð¸Rð®+¥¼áW¦6öf˜ý0¬WVÉËýõñvùa³¿¯ïN .-“¯ì¦ Ûš—v3 â/÷%~'7§µø±sôJ)£pÍ@^&wâ®D{-àòFÛÊ'ß Å™)âykôÁŸªþž®:£ä‡ý¡Ó4R Îv}}ÓyÀÈè|u1ú€2„/Á1Ž=àJ/¢ ´wàßçËÕŠP*Hk¯ À?½dì"*ãZ¼ß²VuyR×TÙ[VÝðÁЧéVÜwèM`Ð)w‡ûS[£*«éL 1sÈeHhfŽW«õñ(ïÅR<ÜS¸‡;šsÄs¿<ÑY‰z÷¤° ϱ€{7NñöÙÆùùåÒܶá{~ű)KE<ø::Ž”Ò!¥*Göž€ H  PÉ¿O÷Ì.>bù›/¢vAîvz¾é…÷ó9IÜIÊ}VËèÀÏMn²¦Þ•û^Þeä[Ó5Ó|šf]yÔááé;ÍâaýØ·†B'ZÈÏ›ÖT:!JcâoJÖsÂ"!¿òi¯`ª:¿/Æ8îsG¥(÷ºVÁÄ~µçUuM¤1À½âé?!3ÎÇ£ ¼vW‰ dÈÀœj×Ì45Š|ܵmÓ¢–ßRiˆT % ä!*µpšÒ ‘6GÙþ¢K÷æµ° £Ì GVÑq¡WÂáŧNãK×P‡0øYð˦?`?Ì{Yå-6Y)ùa^Óƒá¯4›0蜔ü^o6¯ƒä+ D½Úrvnªº5OE9éCîß’y¦þøi2×±ji{N„ò ‹6¥+µL8+Jn K"qO¤Rô)¦€UG8V;WúÔÙØ¥€oÆ®QÉl#x¥:…à3çœÚ¤ì*.eRËP2K‡ kßP.GÙŽåR… ¯ô:­“%zÉò;R|ÌÓíÿ€ë&êâŸí2bӢߨÊ-^]¶­¥­:^/¤»’8ž˜Ùh1äÆ{,fWÊÁŠ:¦U‰ÿ€³³_¥E'Ò© }œ‰AB©È¨Æ(|ÑÙE^;¾Êf›z*ƒÑhnÃÐÓ¥¦Q²†`š^zåЦ?ÀÑhtªÈÍA‡ŠUOcÙåœÆ«.³$°ªt0ýÌà…ÁÊ_•–æÇBî£ôÃQú.«{‰·C2@0~MÐàãk°Í-=äN[HÚWVMmŠì&c– ¾º/ë䊇¹¢±x½¾åk>l kHŸê­ƒŸCîR MÔö|WxŸ‘¯‘ÂÕ© HÔ›[*añâ;í5•Å;ïɑѿòÛrà„Ú\C@8`³šÏ'øûêÜõUánDH(w¤rM_0'ð’Ï0I‹øWŸÃƒÂRRò¼nTt:Õ³U¯2:hÂv=è: Zâ:Gõ 3oüÆô9T+ÎAäêXmy³1§RT£Ý6 ÔÄ£/•È#%ª®Xx¥éXP•¨{R#ŦÏu·–Ïó6*P~Ð QOWÙ»õé¦õÖ󦙎ãÕvó©rŸDpæ¡þ3ÏØ ¿á¤c\& %g¶ü·ÊÍ/eg®¬ù -Gk$Ó/;Vp¼p){oפÊQîZ©Ö¤Vjª™ÜèHQcéÛj©÷ê£_ס<ÿlçô“:ßvùß7 ƒË'e…»g3ºkZ»nMæ5]A/! P¯Ør¿ßUÁO?«LÏÒó%P!múrìË »Ñ!ß aÝËàAüáýãáÔ”yÕï ~,p÷áL˜Œò:ݰ±=ßjY׃C"k3݈€¶Þ!Kɱ˜ 17e-!ÈRfSv'ïÞ?\;Z´RR‹¡Ÿ ‘>Šõ.8nDÃnDß>”®H;oÉWñrz͸p±oŽ>bª–qJ$¸x2žˆ|“e}+8C Ûï31Qží ókÓolDíþGżÿˆ}5wøQ«fvü!çQ|Z?Ô®¬•r³»q\¯ÍýýÎ=ò\æbЃwà2‘»ïòæ5מ¸Ðž¨¿ããUàJKW™˜NäüRDô›Þ#œêI¸–…s-µMKƒ²ƒËHoƒ25ÉÍ4Y¨Pu/|ÀúБôxjËY³…]þ!rȺ’¿þø8ϽۅÙp%¼”¾(àðjG§,ß»RžˆS!°±³@ëtüîžZ«2åkõîé§¼¸-² endstream endobj 571 0 obj<>stream 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 572 0 obj<> endobj 573 0 obj<> endobj 574 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 575 0 obj<> endobj 576 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>> endobj 577 0 obj<>stream H‰”WÛn9}×Wð±{µy'{±X`âÄAÈf&Ö A°P䎭ŒÜr$9žì×ï!«ØÙ݉¨Yͺ:Ud+q½8{u©Äõq¡}£.4Î Ù(-¥Á¯6mÛŠC·ø¼Ð¡¼¶.m˜¿=;?z±9Bd…ă Ñ%Ž›~ᬰ¦ÜI+TzÈJðœ^ù¦õRåw:6RÓËç«ÅÙ…J¬>/ÚdP´ÂåP_Ý.$”—ð"ØjƒåêaQ™X¯¾@ÏÞþ(mÐÅê)+—”?Tµ—«š?¶»m_/žÿh6ûÛúãêçÅËò‡( ¼ÀÖh‘£0ñãxmÐŒó˜eŽ6Å"þP]¼®mª‹·ùG¼êz<˜ª«—¶:¬Oûƒøæ•£òJ¡cÄR5Z¹0x²lÿV/Cc«Wµ®T¨—½râ§»C½TòíN¨–ÄÏ„–ô¤dÉøÔÔ4(X°.å&›Ö%.ŒµuÃ;Ôž¼ÊHEF*½Ê`¥‡¤»ÆÏ ¬TÉË3fç7©@¦ZßÑ謹߃0g¤¸®QчIÁAk6gÙØ«5ª¢›&x…ÅaMÂÓ6Y¶UMoÅ醷‰ó==ºØW0z+”Þ7N¸ –ð¥¼ßÿMôÄx©«‘¨nZ+œO¬RLú³ûÍýmןÄÙ›sÀðüÅùâ×I!Zƒ©ó¤iS*«TÌå@#ëÔÈ%‚&´hXð´ ZÜ.R oÞA’šÙÎ$-­­’o£LT½¬SÉ·j=SàÇn\ltl§n&’§Üü8³Á‹s—î¯za­ÿ?™'Ü RZÍÜŒ’§ÜüI2J£eÀú-Û4³:´MlÝ_¨C1ÊaMŒNe£³@• Úåy¯ÀÕôëlK6µAøŽ-˜dLöÑäS@Ç–S©ÙaO’øÆ‡v&IMµ²ZóžˆM†g ¾Zä³£ží± a&Q°ã¦¾°'¤vâáCáüRü(ûËóaöüŒ™ñCK·âA()Þˆ¥¸‚ELccf¸°dˆã²ˆ¸ÕlK&Ñ¢"îI‰³l3zÆ6ÚÅ'%cFÎ`Ð;õV$Ó˜l†³˜L Z%L‘§rÙ:KÆú`)ÍS’1nh¹LØA_2úÌ6CqÉdoLpOI&¹}¥yi“&ÎT5MLÌî¥R™i´b²:œ>†ivN5Ê»)_mÄ馹؀=³ìp¹±6N9„= Ê,ÎØD?Ëeð5ðñØùxE qJ>ÒŠóÞp©Fz^]—P!(G™áôÖ~äuà¥ËK§ ¯£Ød˜&‰§ -oðm^ûbýC >Åš$é OëH4æIZÉk0–4‚¶$ d3òaŠFYãÅ,Áy85`ю䂲²¸lqP¦Åä gȃ7¼¶CJ“„Óæ÷œµ³äÐ…âÀIÞVV ³ ÚÔ$»™$•f·¸YLʆúyÎþO¦ê¸û„$¨ŒâšJ¸5-)_(ônCˆèm& ÷)½Î#ɶbDã¥4%ÿiló`—|aäÆPNW ;©­¹I¬ší J ¥Ö£Â†EaK‰²°iL£ð­$Êtd ]”@†-ð,ׯM`.ëi‹ •ªX(¥œwÄ7­—oο.Î^]*q}\<_-õø‚žpí øŽBV·øF¸Æ”1W›üÆ­ª×ýö´]ï¶ÿYŸ¶û^¬û+ñˡƷ‰¯öׇõííúS­dãª]-›Xuâb·®ñ%U]×Ë$8ÖW?/Î.¬€éÏ‹¶ÄÒ EOcNä’]@Ëç~;vât³=âCîPãk+T]׋Ó^»]·9á]'j_mg½Ä… ÊѦÇX­k| T§mŽ!}©Ü$¥X½ÈtöµLN“3døm½»ïŽ¢^ú*%{§NK²»N|Þ­¯óûÓ÷»N<Ü œì`Y<,áU¢òì÷>Î —àìæºë»­—8ÓªþZ¬ÅÏÕ] n¶Ÿùݦ†1U‰‹×$xK¹(Üòâ4—±p-ù¯º,©²§ýÏ®›}ÿy{}ÈÅl¸4†J£Ò†ø‘Ÿ”ÔBãsÁÇÄ *ó#yxÄŒzõe¡tâ{¶Ÿ”IÐZÎŒ¨Ç¸Wïºcw¿l³•?ኖ T±TfL/ö „²4¶ºx›à’™‰ ºº­—ÜíhÙa¨ªëAtOÕÕhïêŠPé×@5ÕéF|bµýæwñ¡ª7.á€uØÏ‘íxýé~p€ÚêjÔ†ºç^rå%‡Í«“¸Ûöb[ré÷l)9-ݨ÷õ>½±Õ¶ˆ9¦gÄLù˜’8ãK ,ó%‘=“ý´íïî‹ó,Üߥ¯w Ù;[­Õ([Žýdy Ç?@úøÏi1y×@XéKÖq§¿¤\úDùPåV{—ê©rm£(ep.À®ú^ƒlU¿¹ÉãA¡‡AI‚ã„ò¥"B9$»¾êñöîTdȉžò8¡ÞJó‘ê‡j“Ç h„Ù°ïwß™ ëok*ƶÖyúeñºNý›‡ÄÄ©«¢ô:q•rˆ9¯˜º>µ¼èË«þ$6l5‘Ž' Çö¨œ8×J÷{Â|é:u[C[°²»Ê¯.² ƒ¶Éoyp7u‚P¼¿éòìè‘Ñ=€î6¿“ìê™xÿîßï.Wg°þ.ádªÿ¥½ vÜ„è¯ðV" ¶1Ð[»m¥žªv#m¯Q–d‘l Y©ßÑ~pßÌØn÷ЮÔK±±ÇoÞ¼7¦w®»I‚^_](”T}î)÷´i”畺mO­› þ5‰Š@óûþ­q\¤Î̇-eЄry×pØ›§–E¯Œ‚ÎêæaóxjF` E3±õe±'Õ3Ea—åa³!NtÊ"¥»!¡¯Fuß$èÒãâN(ùÓêY=¤¨fSáRJiÎp%üDz€‰‡²ð–ô6p?Cm|gškÂy@>Àæá<%$&ê+ Òœ<Ámà·õôˆh¡¬n>JÃСíÐuCŸ&TQÛx#ŸÁw>3Šªí²E‡ T^ïÕyjû½ÌYnt1§ÌCÊT4LE~>‚5†¹kwÿœ 8¯Exv›ûçV`ŸïK|¦ÂC¥PDdNœìÓŠ •Ñ%`¥I KiÄNjm#?VF”ÁäÊðP2¥ ,MÀò?Â8»ýlöô€pÎÎ.‡npqjçwü–‚hiNÖ¹ÃÑ¡„ë¤.©Ó"Ñ÷~¬‘÷“L:tÌbC -„i´ˆ<éì¿ÃÂÊÐ@§ qÞúÀ«»‚ ’å”.Ñ÷»ÐȦ¡°œw¸A°!°%õ§”ç Nê=&ÃÆ)½èؾñ›jÙ7‚ßEbÆz1CWŒà©QD&«8´ÆtJDî[ãÜwÆHZÂÈ€%x€ù ÏÈ×¶#=4=Çða#Ü“*Iú)[;êÚSSjl¢»+ÕsÆ\F“4úižDM—2¥&`0m‡ÛÀÑÏqŽT*ÌI—IwXêñÿe]Í@›‡×ªTô9îWU­´«PX¨6\™ºèúSgÕû[|ù›h—(P‚´[p…ÂÊjQ€ùU8Kº< –pã28ô—â endstream endobj 578 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀ„"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?Ûé];êØé̪ší~Yšª·`˜.¬î>:Ê?R轜?RœJKn¦ÇúkC7¥m!¥_Ž:/LÇÈÇeÇŠKK̽¬šæèB?SËn^;äUl Ü\\Â#@¦m<#}Æþ‚žþj²xà{yO¾ôgJ«?³ÀîTšÊ¶4~ˆmxù}½/NŸ°è?ôx åãþ« Kņú?ÐSÄɪ¿ó·û¨ÿAHíüÕsÿSô‚—§OïfK]3ûÇÛÏ‚^>$iÙ®û¸ä÷)^?ê«ÕâÇu÷žxWÛ°öýå-ô  ÷þj¸ÿ©ú!KÓ§ÄøF×GÃèð—§Oïy,wÞtû‚Wúªõx°ÝGú xäÕ_~çÛ÷û¨ÿAO‡óUÏÃèò¥éÓûÇÇèº~?G’—§O‰ã€×}ÃO¼¥xÿª¯W‹Ô §žUöì=¿yM¾ôxÏ¥\|~ ~>3Ûèº?êx ztþñædµÜø>ä¯õUêñcºôÿÛUÿäyð n£ý>éW÷}|T½:|Hþ˧þ§’—¥O‰ð®û¾ ^/ê«ÕâÇ}è(ñþj¸ÿ©àx¦ßGú xäÕ_Þ}¿rŸ§Oïóÿ‘àx%éÓûÇÆv»ïú<¥x¿ªW‹Ô §Ãùªçþ§”·Qþ‚žxW÷}¼©ztøŸó]÷q÷”½*|O‡Ñt|>Þ/ê«ÕâÇ}è(ñþj¸ÿ©á-Ô §þÚ¯ïú?pRôéýãþc¾þ>ä½:xøýäyJñU^¯;¨ÿAO‡óUÏÃèò–ú?ÐSÿmWÿ‘üT½*|Où®û¸KÒ§Äÿšïü ^/ꪧâÃ}è)ÿ¶«ûþ ÷Qþ‚Ÿûj¿ü*^?¼~;]÷ý½:|Où®ÿÈò•âþ¯àªŸ‹Ô §þÚ¯îú)o£ý?öÕù½*|Où®û¾Š^•?¼ÌwþE+ÅýUTüXï£ý?öÕÑKuè)ÿ¶«ÿÈò¥éÓûÇü×äyKÒ§ÄÿšïüŠW‹úªõø±ßGú íªÿò)o£ý?öÕù½*|Où®ÿÈð—§Oïó]÷ý¯õUSñc¾ôÿÛUÿäRßGú íªÿò*^>'ü×äyKÒ§ÄÿšïüŠW‹úª©ø±ßGú íªÿò)o£ý?öÕù/JŸþk¿ò)ztþñÿ5ßù¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ5ßù½*|Où®ÿÈ¥x¿«ø*§âÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½*xÿšïüŠ^?¼ÍwþE+Åý_ÁU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÍwþE/JŸÞ?æ»ÿ"âþª½~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÒ§÷ù®ÿÈ¥éSûÇü×äR¼_ÕüSñc¾ôÿÛUÿäRßGú íªÿò*^•>'ü×äRô©ýãþk¿ò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸÞ?æ»ÿ"—¥Oïó]ÿ‘JñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTþñÿ5ßù½*xÿšïüŠW‹ú¿‚ª~,7Ñþ‚Ÿûj¿üŠ}ô §þÚ¯ÿ"¥éSûÇü×äRô©ýãþk¿ò)^/êþ ©ø±ßGú íªÿò*ßìàCÌF¿$Vê«ØÇ<¶ß íŒ¬•[Ò§÷ù®ÿÈ­õ[^ÅÏ4à¶‘^<ٱƑôˆÙ»àSfa§Ò@—[Bþ™h«ìÃe®ÉaµŒf8$0;h.>œjG8øßh±ì¯†úM/µÏ®¶5o.{œÝ¦õÎ%X—U¾º™H]c_Kí°³§éxŽÒ¢ÌðìŒËòX-@8dTÐös…ƒc¶’6–„Ñ!FÄ:ÖÉ é©kýœ9Ïm8ôd Ú÷ÑS,hÅÍf‰;ÖµŽvCm VN;aÅÃsC}šÈÕ_ýµ µµÒÚZÿL³ÓÑÍulueåljvã0О®¶úìcà }'k·‘¶œwc@?;yw—šc÷aö…pø–‡Øî;‡ØèÜÿÕÛíqàf„©~ÏÉ,{þÀØ­ÍcÇ ÉÑvNªÏíF;c.¯Ö¥·¶çVòâ k¨ÒÆC)c`LýÝÑ[×\]è -¥¿Iâ=*¬Ç‘¶–IJÎÑ_$Œÿ«´+‡Ä¹Çæ—‡`4›¾ÉÇoµ§óìÐh¾ôÿÛUÿäUûsÃðOc='ü×äRô©ñ?æ»ÿ"•âþªª~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÓ§÷ù®ÿÈ¥éÓûÇü×äR¼_ÕüSñc¾ôÿÛUÿäyK}è)ÿ¶«ÿÈ©zTøŸó]ÿ‘KÒ§Äÿšïü ^/ꪧâÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½:xÿšï¿è¥éÓâÍwþE+ÅýUTüXï£ý?öÕwÑK}è(ÿ¶«ÿÈð¥éSâÍwÝôRô©ýãþc¿ò)^/ꪧâÃ}è)ÿ¶«ûþŠ}Ô §þÚ®êyRôéýãþk¾ÿ£Ê^>'ü×äR¼_ÕUOÅŽú?ÐSÿmW÷}·Ñþ‚æ«ÿÈð¥éSâÍwþG„½:xÿšï¿„¯õURñc¾ôÿÛUýÿGðKuè)ðþj¿»èò¥éÓûÇü×äyKÓ§Äü6»îú)^/ꪥâÇ}è)ÿ¶«ÿÈñæ›}è(ñŸJ¿¿èð§éSâÍwþG„½:xüv»ïú)^/ê«ÕâÇuè)ÿ¶«Ÿúž|’ÝGú ~ªþáíûÔ½:|Où®ÿÈòRô©ñ>EßwÑá+ÅýUT¼Xï£ý?ÍWõ<Û¨ÿAOš«ûÏ·î ~?¼Ìwßô~à—§OïÚéøýP¼_ÕMKÅŽê?ÐSáüÕsÿSÉKuè)çU}»oÞT½:|O»î}å/NŸáô]õ<¯õUêñc¾ôxÏ¥\|~ n£ý?:«ïßèóà½:xóÉc¾óíû’ôéñ#¿ÑtÿÔòR¼ÕUKÅŽê?ÐSá•sðú<ø¥¾ôÿÍWõ</NŸÄ@kþáíûÒôéýâ°èÿ©àx%xÿªª—‹ ô §‰“UyöñàŸuè)¿š®ê~‘ðRôéýãÌÎ×Løý|ôéñ#NÍw~ÃÛÉîR¼ÕW«ÅŽê?î=<ð*¯·aíûÊ[èÿAAäÿ5\Ôý¥éÓâ|>‹£áôxKÓ§÷=ØîÝΟpJñÿU^¯oô ný #Úuô«Ž~Ü»^Ðz5øÍ}¸”7ck*¨L±®’\Ãâ¸×²¯MÐ\I=®&cú¼•ÛRìc€1r+mõ\ÊËØ\Y­n‡O¨sðžë²ø^¶Ë'ê÷D§×W‹CËKD©#RæÖˆÓÇ€Ó„ïɲÿ´?·]-p°¼n–NÝc´¥^ · ö7LÿŸ³þËO¡û?|zUóêÌÆÍ³Úc„•XÿÏoÚ;}Ÿ³¶í“¶}XÛ¾"cXI )w³s¬Ä»@4dÜ(¶Âè,sÁôˆsÆÓñUêëԚŶË}@Ml{Þ×¾æÔ@Îe[£‘¬©u|1Ôð߆2þÍ]¢,sZã9¥§sv–‘*µ" ÌÌ“s˜)mNcÀÆãïôÆÇzwóŽtÈQ.lÎn“¤d¹Û…ŽZóíª¯´9Üpk2ÓùÝ––÷þñûÖE½£]`¶Ð_`uݶ0 fÐÀÐÐàpl´ýjÏ甓{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô?Z¯Þ zÕ~ðII7¿÷Þ–÷þñûÐýj¿x%ëUûÁ%$ÞÿÞ?z[ßûÇïCõªýà—­W{ÿxýéoï½Ö«÷‚^µ_¼RMïýã÷¥½ÿ¼~ô#‘@  à%?¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?z[ßûÇïCõéýöýézôþû~ô”“{ÿxýéoï½×§÷Û÷¥ëÓûíûÒRMïýã÷¥½ÿ¼~ô?^ŸßoÞ—¯Oï·ïII7¿÷Þ–÷þñûÐýz}¿z^½?¾ß½%$ÞÿÞ?zR|Pýz}¿z^½?¾ß½%$“┟?^ŸßoÞ—¯Oï·ïII$ø¥'Å×§÷Û÷¥ëÓûíûÒRMÎñ)!úôþû~ô’SZî®ÊíôY]×Ýëq]A²^*þ‘ì°ø§wV¡˜?my{kô‹ ‹}OCÓ2í³ê{~”yÂݹ>­ÎÝ_ÚNIcK˜uÆn0næ9§‘¹ÌWÓþÃM ¨ÖÓs é-ݹísF§vºøê’’Qž,Þ.e˜–2I¯ ±®,hØÝx, ™Ð©œÌpâÃÀàCKw‰q-kby$@X-¿`Ǭ~ímí«£V¨z•4Ø\aï­“#…g'êÍy º}-×}¬‡æ•k-cþ, ‰IN=Gꬵ·¶—=¶ïpifǺ²_¯´Ã©U™]×YMo.uL®Âàe¥¶îØZA×è”:@¶ËwÒ-}´†±À8¿(f~ŸÇè†éÙ[é}-øÂ랣+ik­{£ÊmðIN†çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½-Îñ?zh)AIKîw‰ûÒÜï÷¦‚””¾çxŸ½WÏêtì+³ríôè¡¥ÏsÀ ñqÐ#Á@ÍÃnf9¡Îu~æ=¯fÝÁÕ½¶4ûÚæòÞá%4>®ýeo^®Û+¡øí¬1Í&Úí/ .pXdzzî5Ùǧ1·ý±®p¶’ lo½Ó·Ó|„?#ÀéÔà‹K ²Ü‹ ·Üö°=îæî}Žu%ĸ»ÒÃkAØà#iÐÁüÕÊ1q±ÁTʃŒ»cCgã=C§³9µ‡Xê½7L³¿–ªœ®,³âýíõùô—Û£8Ì8ÉÔ â;Þí!Ó²oëääNÊèeTk[‰%ïöÏr‹UvõWgC*k*Û^]!Åîs8N´ÒSƒB» ×_ÍaÍ#Ð|¢OíY¡À{ŒŸ„é$ƒ’I$”¤’I%)$’IJI$’SÁýovϯÿWÝöCŸYú«C óº~”†iΫ¡eî/©^Þ’zEµcØæG¾+{¿À—‚F¡ÊyÿW›õ§uãXîšÇ0P!û·ë¿p§à´³1ÆVø¥ÛEO¨º&7´²cÊRSå}s/3¨ÿ‹Þ‡›‘h¿¨=¯×]m&m vÚÚÐ C{s:®»¨õ>·wÖŒOª˜YÇÓÇÝEÕÖû¬Üi›IÉMoø¿ªÏ«X?WþÜà܃’2=!.$Øvìß§ÓæV—Yú³öþ«GZÁÌMê˜íôýf1¶1õ“ô-­Ûws¤¦§ÕNµÕ/êW õkY•“Ҝݙl`¯Ôc¿}£MÜpøËµö‰Òí´ÑÓú†^Ì׃kM`nw7“¯‡’Þú½õnžŠì¬‡äYÔ3Þ—™pÎ#†µ­ú-׉VzçCéýw§¿=…Õ¸‡1í0úÞ8{°D¤§7­ª¿W°^oJ`--q§ZÆ -|{wi'U“×>¶ ~¥Òz?N¿ö_NÉÄfSòÛO«c)p>•uVd{YZ‘õ«e`ž™•õ“&þžv‡PúXâZ×€lsË´!^ê¿R±³GO»2ҪeÙ•†¹å•€°{w}ã””ã³ëW[Ô®±œm-Íé·6¬lßL7Ô¬¾°Û=7° ™ö [×þ¸`SõwªffSm=UõTüT,xlXû~–÷Ì6+¤Èúµõ3£õ.­nm™…¿­Ù[A­­s_µµ´ÝñCêSëÎÀè¸G-ÕŽˆêœ×ìÕôšÆê7 ³³Í%8}cë~}{«tú3ÏL§¥±ÌÆ  ÜüŒ˜ÐXïNÐÖH> ]gëg_V:RÆ#;?'ÑÉc˜6º ˜AkÚKZâÙÓU±Ô~¦¾Þµo\éNî›’6äúLmŒ~€NÒ[®šÌëª'Vú©oWéý;3¨Ùmý>ñü§ÖÒë\;´´4v¤¦_+7¥`cÕÔz×§—uϱqZûîÜfºq©;ÀÙÄdy®¯õž¥Ñ~¶`fdZçôÚ^ê2l¥´dm"Ée•€d28‘%tßY¾«7®äáæÕ™gOÎÀyuè;ˆÚK{ŽULO¨µbõ¡í íÃêÕ:¬Üg€_as Žºfw9ÎѽÒSÎôî¯Õ:Ônì<ŸW#«Z1±[sécRÀòÝ 9Û‰Ý+q½K¯t?­=;£u,áÕ1z«mŽ©•Y]¬cÓ  ¾pžŸñ~ÏØÇ£åõ;²(¥í·§XÖ2·â¹¥î%„nÜ_¯Á]Áú©kzÅ=g«õ:®f-~ž.úÛUu‚ ¿cK¥ç™žRS™Ñ:—ÖN«õ£¬á öUÒóú3S\óP}ƒÑc†Ø ÕÆOÝvk¢ý[gIê½[©7 Üz½¢×VY´W{ ;qÝôü–ÊJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥A‰ƒÊèãáõÌ—†¶÷]ê[}­¡þ¥ úMmfѸ<8ðÐ4E¥Xìv8g§èØ2Mls-ÝTzÏ>Û'Ý´Ž5å%:é$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥äøðšO $’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜—;qk@0$˜æ|‚ËÌÊ˧¨\Ú w=¸5°Y¹Õ´Ý}Õ=Ð uÈ þqßÕoåz’JyʺÆ}—Ó½Õ0>[wµÃÔ"¼ÂÐٳ٭uAÌúÁ¥ö@æÖë±C™´ì±¯²ïiu¦ÇL‘ô#ùDÊêRÏt”à×ÖrÔ±°è»Ö\ré²wµºÖ0W6î/³h†í >V§ëVN@¨[HkK½FíÏǺæ2sÜÂ_xw‹Zºx1ªP<Sλ¯ç2§šÛQ{*–ÒC·6+©í±çq;l-vä­~Ÿ~UÕ\/Øûi¾ÚKš m"·@;IåVÒILIû­ÿ8ÿäRý'î·üãÿ‘RI%1ý'î·üãÿ‘KôŸºßóþEI$”ÇôŸºßóþE/Ò~ëÎ?ù$’SÒ~ëÎ?ù¿Iû­ÿ8ÿäT’ILIû­ÿ8ÿäRý'î·üãÿ‘RI%1ý'î·üãÿ‘KôŸºßóþEI$”ÇôŸºßóþE/Ò~ëÎ?ù$’SÒ~ëÎ?ù¿Iû­ÿ8ÿäT’ILIû­ÿ8ÿäRý'î·üãÿ‘RI%1ý'î·üãÿ‘KôŸºßóþEI$”ÇôŸºßóþE/Ò~ëÎ?ù$’SÒ~ëÎ?ù¿Iû­ÿ8ÿäT’ILIû­ÿ8ÿäRý'î·üãÿ‘RI%1ý'î·üãÿ‘KôŸºßóþEI$”ÇôŸºßóþE/Ò~ëÎ?ù$’SÒ~ëÎ?ù¿Iû­ÿ8ÿäT’ILIû­ÿ8ÿäRý'î·üãÿ‘RI%1ý'î·üãÿ‘KôŸºßóþEI$”ÇôŸºßóþE/Ò~ëÎ?ù$’SÒ~ëÎ?ù¿Iû­ÿ8ÿäT’ILIû­ÿ8ÿäRý'î·üãÿ‘RI%1ý'î·üãÿ‘KôŸºßóþEI$”ÇôŸºßóþE/Ò~ëÎ?ù$’S]¸5À ‚ ñCÅIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’šýC1¸7潆Æã°ØXÒtvè²OÖ‹Ù¯ÿ·ëþåsë'þ'ú‡üC×>ï¤~(l¸±ÆW}?ùÓwþV¿þ߯û’ÿ7åkÿíúÿ¹e¤eö!âêΛ¿òµÿöýÜ—üé»ÿ+_ÿo×ýË-$¸B½ˆxºŸó¦ïü­ý¿_÷%ÿ:nÿÊ×ÿÛõÿrËI.¯b.§üé»ÿ+_ÿo×ýÈØXÝ“›F%˜O£íÍm†Æ<Ö:ÍCuá‹§ÿË=;þ6Ïý·¹"Ùሉ"ôzä’I5®¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯U²ú¯O±µe\+±í/k6¹Ä´'ØÓÝYÎ;ú­ü¯Y}K§õ»³ÆWHȯêèØÛnõ¸›$ÖösLÈîJt1rñó*6ã8¾°í»¶¹ºÄÄ<Ý=Yx—½ÕÑ}V½ŸM•½®pí¨i$)tütÜ*1}{2œÇÛ‘s·=ïyÞ÷Ÿ 'ŽË˜f^ÅÅÅu5‡Ù^6@¡•0Vú¯sNÑq%ÁáÍÐl;ã¢SÕ$°jý¯³ ¼äÙ6;}!¶TC Û¥®×ÚÙúz*׬¹®Ì9 æV]]aÀÚ ÃÚk--–·Nå%;ÖåâRö×uõUcþƒöµÆLhA(Ítí Á Á˜#VNLÊÍÏÉ ±¸ô_‰]´Ô-q÷ß¼Vç8m!¯ð< [GZõ¬ôŸ{*¥äÐÖÇÚîäz2’ä’<è’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JR¶×MOº×W[KÞãÀkD’T•n§E¹7/‘ºÛ¨²ºÛ1.sK@“æRR~»Ò²me4_êYa ~¤ù–»eµW£Û\ñ¹Á³÷ªøõäUffO©](©¤7q²¸¶v$ù"á‘[ëÒ[_©k#MÍŽSe)©à*®nQ¸ÚÓfÝÞÚÉ }u¿©ªá¹Î×mÁí Œ\*,Ü_®ÝÁÓýÉ)Ò öÓÉA×RÇ>Ƶdž¹ÀðU ËnKÐæÑ½î.F·<Ð9„D¥—FKþÐêbS´sàÙ¹¬æ˜:huIMÔ•!ö×? »ÔcuôÚL‚æ–mƒ§¶A~äƒsMÔ´‡²­£q’ã;ÎíÚé-ˆÝÇÅ%7æµ¥Î!­’`™LË+°n­Í{x–Gà«zN=>–X.õ+$·ÝhxqÝ3¯à†çe6ÊIiÈsª$7a€óq`˜0×7îIMô¤LN£¨½™€9Ói’æ°‰ õ¸¬þŸÍHÓªl¯Õh> qÔ€,Ü_:˜’›‰H'SÀTvf´cž+ãüÛ‹§¶ïR!;›—P|z·}ÅÅ•F­ˆ÷p’›©H˜y…GnemÇh7ZA«È ™¿Ùäߣ¸þ)V̦S[]ëm ¬Y› ý.ø<ó·ä’›É*´×–-cîsΠ=²6G 7ðªÒJRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥'ƒ&X=G£gdõ+ò)em1Á¹&Â×í8Ï£ÑØÖðlpt“ÛÅ%;Ð|Áæ1oEêufãä=Ç#íž­”´¹îfë)‚û›k’;{•y½m¥÷1û=ù9 ³qu²ûúé Sqð $§f Lh™sÕô¬Úz¾E•Èm×ni//6ç5ö˜v6±<öA?Qì'ÿ=cÿbó”êýd#öP¯ÙÞc¼iªçÝôÅ­}K³ ìãÖú–Cqj±æ«îÞ}¾ÃíÓùÞ(ÎúGâÇ/´¾‹$’IÌêI$’R’I$”¤^Ÿÿ,ôïøÛ?öÞä$pQÌÂÄ7á›.qûF3¶ZÝ´Üïkµæ  v[“䗓ܤßwÑ÷r4× åÿæ5ŸüðõŸý‰ÿÌRÅú¡‘x¹Tßuv;2Ù¨±—2×rß¦æ¶ xLi=Dí>sØÝ¨×U6zÁ­å çb°}*+Ü&Æ‘í&uà)ÑЮµøÖf×SE¸þ×;èè¥Õ=À‘ùîÚcÉ%;Ðx„ ø.{¤äYÓ¨š[¸ôñŽú2fþ£_½Õ¸¡Üét;¾ÎiÆ¯ÔÆ£´Ð ‹ŸX¬µÏul $ºÖ‚§撞…$½˜8̰ci­¯àÆ‚Í%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊõ%ü㿪ßÊô‹ŽâÐÒè˜Ìþñ )’KëYù˜ùY­ù,f=4:§VX1ë}†Á¿${Ÿ²@Ü@"<¦uÌ›­Ín>¬f+¬­ã}VŠ\ìÔë¼Iã )ØIbŽ¿{ò*Æ¢†Ýcªm–¹ž¦Öï}µIšÆÖ±Õ{÷AðÕK3#*ÿ«#¨ ]‹“öQ“»ÐÍ{ãÞ×KuINÂK1ùöaõºQk®u¡ŽÇºÇç·sþÐ^C@ý@Àh©7ëM§²q™ö›ý]L{­í[{ZïM…Û⣠op’ž$:¬}•Wa©Ì/c\XâÙip’Ó.Ž¥ÿ¸~öä’S$”eÿ¸~öä’—þáûÙÿ’IL’Q—þáûÙÿ’J_û‡ïgþI%2IF_û‡ïgþI)ù$”É%ù$¥ÿ¸~öä’S$”eÿ¸~öä’—þáûÙÿ’IL’Q—þáûÙÿ’J_û‡ïgþI%2IF_û‡ïgþI)ù$”É%ù$¥ÿ¸~öä’S$”eÿ¸~öä’—þáûÙÿ’IL’Q—þáûÙÿ’J_û‡ïgþI%2IF_û‡ïgþI)ù$”É%ù$¥ÿ¸~öä’S$”eÿ¸~öä’—þáûÙÿ’IL’; H jåF_û‡ïgþI)ù$”É%ù$¥ÿ¸~öä’S$”eÿ¸~öä’—þáûÙÿ’IL’Q—þáûÙÿ’J_û‡ïgþI%2IF_û‡ïgþI)ù$”É%ù$¥ÿ¸~öä’S$”eÿ¸~öä’—þáûÙÿ’IL’Q—þáûÙÿ’J_û‡ïgþI%2IF_û‡ïgþI ã¸4´¶f$´ñð%%+ü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%9¿Y?ñ?Ô?â¹÷}#ñ]ÖOüOõø‡®}ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹€@ë=8“Õ³Ÿü/r& Zî±Óƒ€#Õ³C¨þre¹>Iy=vö~ðû­\8îѦŒü<ÒôiÿFÏóBc^Ç5 7y’@ %é7k§Œk¨×æÈ¤‰&Ihöºds¤(6——vøO´ÏÉ=˜ÍxtmsŸ¨éO÷¤¦_h§_wGÇnškª›×´9¦Zx(#®9ˇ‰Ý¿TV01ƒP8IL’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+ÒMÿßÒÎ;ú­ü¯H}7üÿIK:š^ƸZÝ–ÜØ#k§‘©åôîœãav-$Úm&¶{ÚØÚ¦ mø"_‘F=fÜ‹YMcBûÙ>n…6¹®hsHs\$¨ ø$¤G º§z‹±ÄPíšÇƒ {~Jm¢†Ò1Û[@nÑPh Ûû»x…8#’Jk»—õ úƒÉuÔÔúj6´Xæ¹îL r¡OIé”â *ñiû0Û55Íqh9Ò=ÎÓ“ª¶’JY­kZÐÖˆh$’R’I"ä$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥(ŸçðwäRQ?Î3àïÈ’•þ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥!e_öl[r6›,6‚!¢]Ï’*I)Ãÿ˜¯­öSCžö³ÜvéežO;Zòý#tÕªå\WÑÙÕ 'ô‚¸§v Ûcjæ´ð]<|•Šú~Dñëa”ˆþ`E?æ éXî§¹îà … !À´µ‚ɾŸ))­‹õŠŒŒÖທW{œÆe¤>§Ü\Òæ±ÇnÀí…iýR¶8·ìÙgi"[i<nªuôì œÇ2†Öíìy—8;i¯ps¤Î÷ତ§œúËÖ˜:UøÿfÉ&«+}3k¶îÜØÛî=´TôÅoýdkauÀÞ1Þ£X1"~KßHüS¢Øåö—Ñd’I9I$’JRI$’”‰‚í½c§˜'ô¶hŸè÷vh½?þYéßñ¶í½È–äù%äõ^¸ýË?ÌrˆÈ$:w5Á€lî:jGž¨Ê.­Žn×Zu9”Æ’œÑ©aú;ŽºÏ»OÍñRvKš]_ îI:?³Ñ§°@@íóRuU¸æ‚ Ü~€$ëá^hÕYê3tmÔˆ™àÇ’^•QDãܤ$’~'””ºI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzCé¿àÏûúCùÇU¿•é¦ÿƒ?ïé)0[wXf^CmPYP|Ëé{šüöÀžÑæ‘V-XÖUC} ZÇé@Ú[»sœX>–¤ˆ©¤’žJ¬¦t¬;³±ÙUŒÂmOÊ̦‡PmÇkl®ÚÞßç;¥¾¸Z''¯2æn;‹}ú[[K\ûYkì ìÇ5­Óø­œŠjɯÒÈh¶¹k¶»‰ioÜD©ÉIO4üŽ£‘‰‰•FU¶e×VE–¸ã†X(k½IÌééîÜ~h·õ³]o·s›/¼PÁL˪ ô):8Ť»Ý§ß¡“âšJJpmÍë5ÙkËÝè—^ÑW^UT¶Á¡."—=ÚècWVê­4¼9εØþ›½{«vMÕÙkˆl6ikx‰ì·¤§“â’œŽ›•••…˜o{­{C^Y%‡J¿G[¹ìé#MJǧö‡I¥–W†Êì‹~ÊÂEŸ¤¤^ûe„‹ja$Çrîu ®$žR’’œ::‡QuØ,²Àós%õÐÙ“¹ãu…õnÐÙÚYéÂJê=_.Ü2žê˜ûKo¤3PãCÜk¶ifÐÛíü\t]$Ÿ¤ø¤¥’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJQ?Î3àïȤ¢œgÁß‘%+ü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJ@È¶êœ ¹±¹Ð$ÃupdpŽ’Jk×fI¸ý €"vn>|¤ëž.{w'ea“#níÛ¾(îÀµÂAäBMkZÝ­­ IH{ßcu¬†îx8î‘ø"‘:5‘ÛÜò(‰$§#ë)Éý‰›£vš¾ :G›F«ßHüWAõ“ÿýCþ!ëŸwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"ôÿùg§ÆÙÿ¶÷ v[“ä—“×$’C^5ø&4”’x> ’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊô‡ÓÁŸ÷ô‡óŽþ«+ÒMÿßÒS™Öúã:[]&¦6ºÅ·ß{œÚëkŸé×"¶½î/t€;j´±Ýu”Ue­k_`Ý»ÔièZè5Q³ç¹ù2òæzNàY»~×4È:‰Ô)å¶ÌŠ-­ô_cÆXì.Ž>))ÎéßX03ñòrã׋i©Î¶á§§k#–X ·ÅZgRéöæd0†–ƒ¬A{w°kâÑ!QgÕÌ\v¼a»Ò¦ªœË7Úɡ۫°~•®k€$ ®†:%窶Û,sñëÂôk̺Ëɱ|nÿ[Ü5ñ˜IMïÛ}Òõ¾ÙQ¯x¬8:AynðÑûuÓ²‹:çL/¾»oe/ÆsÛclpÚÜÖù pûÐGD²«jÈÅÊô¯£`auaíÚÚ1»šu B!=ý »‹‹­#u–ÚïhÔÛe7ÏoF>i)´z¯M¦ìªš) 6’àwÖÌø—ñNΧӬ5dÖã‘>ˆém%¦>m!UCm—:ÇÞM~£­ª½ƒÚlȯ2ÐçO»sêh x¦oC ´<^vm¬-ã]öå×Ýí‡ÚAÐÈðIM·õ.žÊýWäVC3-°VD~ð…¼çÒüjñè9Ve—zmmbÝä—;ÉP«êõµãúG,>ÀÊke¦¢ÒÆã±õ7Óôícƒˆ~§wÊ +Ù+8ã ÆŒšñ·Ë-h¨^ÏOs¼ûÈIJÅêØY,¤‹Ë27l¨¸,s«t¡÷0ÁîŸö¯MôÝoÚkôÚí…ó¦â&Žž †?Õ¶Ñ“EÇ$ÜÌv¶¶×k\éeO}”j,æ 6îptó•¿W ¸ì©ùD­õ+kZñHi­Ôº±_­¼5ÍwÀ8Ñ%:˜Ù˜¹^¯Ùìzm‰Ñ푯<öFU°pþÆÛ˜ËlõÐÝ¡žÆW´jd{4VRR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)Dÿ8σ¿"’‰þqŸ~D”¯ðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJIR=o¤PœºÿBbÎt%ÞŸ†¾áwF~v1k®gÙ\æÜ ´‡AlÎâD$¤é*ôõ ÈmW±î. ˜vç5Ö4m0Dµ¤‚<”ç}dÿÄÿPÿˆzçÝôÅn}fÈ¥6§:mzsÁ-[¶Úú µÿ¤¯ná]Æö½¿‚Š/Oÿ–zwümŸûore¹>Iy=ìÛÿòË/ÿeÿ÷R·¡æ<ŠSì9Y5[Ûµ•²Æ Vʤ½ —çï;R¢m¬5Ïs€k>™:Dx¦4œ<®“Ôƒ.ÆÄÒ¨{é°Y°K±+kÛ$´ú¾ÿã*þÛþß‘eøÎªœ†ÖXMŒ~Ã[K\ÒÖ¸ý.tWKØ9p†üÏñMëU oâ@øƒ•%3Iצ@Þ=Æ™R}Œaî‚îŒ$¦I(‹+0Ýç3‘8!ÂA‘ãðÑ%.’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzSvŽ24ž7x4‡óŽþ«+Ô’SßÉùŽþä·%ÿæ;û”’ILw%ÿæ;û’Ýü—ÿ˜ïîRI%1Ýü—ÿ˜ïîKwò_þc¿¹I$”Çwò_þc¿¹-ßÉùŽþå$’SßÉùŽþä·%ÿæ;û”’ILw%ÿæ;û’Ýü—ÿ˜ïîRI%1Ýü—ÿ˜ïîKwò_þc¿¹IWêc#0³ÔõºÂÀ`¢bRRmßÉùŽþä·%ÿæ;û•]ÿX?ò²¯ýŠúE-ÿX?ò²¯ýŠúE%6·%ÿæ;û’Ýü—ÿ˜ïîUwý`ÿÊÊ¿ö(é·ý`ÿÊÊ¿ö(é”ÚÝü—ÿ˜ïîKwò_þc¿¹T/úÀþÌ«Oû´?ôЇÚ:ïþVÓÿ±mÿÒI)½»ù/ÿ1ßÜ–ïä¿üÇr¯Ó³,̦×ÛP¢Ên}¬;Ô˜I†ÏÒðV’SßÉùŽþä·%ÿæ;û”’ILw%ÿæ;û’Ýü—ÿ˜ïîRI%1Ýü—ÿ˜ïîKwò_þc¿¹I$”Çwò_þc¿¹-ßÉùŽþå$’SßÉùŽþä·%ÿæ;û”’ILw%ÿæ;û’Ýü—ÿ˜ïîRI%1Ýü—ÿ˜ïîKwò_þc¿¹I$”Çwò_þc¿¹-ßÉùŽþå$’SßÉùŽþä·%ÿæ;û”’ILw%ÿæ;û’Ýü—ÿ˜ïîRI%1Ýü—ÿ˜ïîKwò_þc¿¹I$”Çwò_þc¿¹-ßÉùŽþå$’SßÉùŽþä·%ÿæ;û”’ILw%ÿæ;û’Ýü—ÿ˜ïîRI%1Ýü—ÿ˜ïîHI±¤5Àé%¤<Â’I)øFÿUß÷Õ%ðþ«¿ïªI)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”ÐÊHw\)hq'o v'“ðIN[~®¶¨v6Kª´Þ‘•ÌJk~=/}{+cañòÖƒ-Ö5Y®úGâ¶þ²d3ösaÞú^-pÖ<ÂÄwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"`µ®ë=®ÀÛf„Hþr& ƒzÇO&cÕ³€Iþw`ÙnO’^OWö|ôLÿ4r‰Å«kšÑ´=ÁÎÛ˜àh¥ë³Áÿæ?ÿ" r˜÷m>ÇAoÒ:jà+v¬ÈX×<±ÖXle-¬x¨hÝ?’ÀÝ®šÅÿX,uÖÕŠlô²ê<½¬Ÿ´7òïOhtºZ29ŽÖô~”Ê«¥¸µŠª;«®Ö˜üÑ¢“º_Msí°ãW¿!Á÷únikÃç¹ Ï’Jjõn£wMÉ®çø·Õml®Œ–R á@suÒB¯Ô:ÖFVâ—V;ÏÚ[¨õë§Öqs6ìh<ÆéþLj¶n¢‹ÃEõ¶ÐǶÆ€è{LµÂ{„ ú_MÈ»íãWmÐF÷ 0FÃÿDÇÁ%52~°SŽ 4žlkFîìÊngk\ès:ð)º®AÊú¯™ku&ÌkI­à‡›ÃƒOm$ ³Ò:SÅØ•“»×% ïÜïQÛ¾.¾:¨u,oFÉÀÃhi²—ÕK †‚àcSñIIkê§®º“dã_Œ(ÚØ”³#Õݤ—m‰…´ªŠ0–ìæÖÁ”özN¼¼°Û>#zÕø¼$¤‰!úÕø¼%ëWâ>ð’™?è;àW?“‘×ÛÖ«Ç£ý1àºÌÇ=Áì¤ÏO»æöñ[–ÞÑSË=îÚv¶@“ <,S™Ö‰'öXÔÏôª¿¹%-ÑþŽþ¿òV´.“•M»*¶ÕfFM·ŠÚñfÖ¼6%ÍÓ²º’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥&  å¦GÇ„é$¤g¨Ì^5ÃXÓn€éÀL1êݽã{û¸é:DÀÓRILMMˆoI:Lr|ÔÒI%9¿YýÔ j1Þ%sîúG⺬ŸøŸêñ\û¾‘ø§E±Ëí/¢É$’s:’I$”¤’I%)§ÿË=;þ6Ïý·¹ ¸uŽŸ´}[4&ô{»Á@ì·'É/'¯M±± ;¾s3÷¨nÈÿFßóÏþA ÛÚÞ÷0{]í2ž‚˜ÒLk­Ä’ÐdÉŸÛùN=$m-‘¬êdω™?5\ädìß»Nì ’4Ý?$|‹_VÍ.“.>Ñô’S&VZA..-Ѳò„Ç“>ÞLèHã]5Óä€Ì« $cÉoèÚÛ.Û´“ÝY­Û˜×LÈž#ðIJeldí¸ÉÔ~jI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzWQéønkròjÇsÄ´Zö°<7Œ?œwõ[ù^²z¦/^wQn_Em&êñö~²¢ù³ÝYs}Í1î‘áÒS§—‹—Y·æ_X;Këpsg˜–üQPúvÝ?Œ|œ—f^ë/Éx¹ïv÷CGÑh˜hì=nGÙð(©—S“VO®û(³en 5·]°ýÄûvLRSÒ¥  Ôð¹×gõì&Ô-mv—ïºææØÀ½,Pv¹„í–WæQºÝ8ïθ݌ûÞüO²·9Âíö@®Ö¶+~­÷n”î$¹ë³:í"æþ‘ÖÓYÜÑVö€ÖU¶Æ83Þç<¼'ட‘›V²Ë]{q\Ë…>½Œ†Üe€î,:IÔ$§ZDĉðîs';)¹LŪ”æÝ]gí%ÎuÞ€¸þu/'R8ööÕ==C¬¿¦²ë_clušÔÊœ2èÚK%ø{žY ú”ô©.o'3­¾üê÷]]67`eeÏ5‹©Úúâ‡4ƒS¿Þãä ®ò’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’Kì^¥ûC*ÆSe†ÝÂŒŸ´íªºßOÕþOyݤ$§m%OW~f=ö¶Êñ™UÝŒ÷·q±ž¶ëwWc„ZHüïìºü,×=ÎoQ¹€’CExäà7RJJCõ“ÿýCþ!ëŸwÒ?{ë7MÏ=6ûÎ}eØë72\Òô¿GSN×N½•}#ñN‹c—Ú_E’I$æu$’I)I$’JR/Oÿ–zwümŸûor&'¬tðZ}[5í=Þ2ÙnO’^O^’§gúg}ÌÿȨz6µ®—‡:K·¸mç”Æ’uVÆXÐÒîaWuY$9 ®kˆ÷j1¼ùóä™”]½®2K}¤‘ùÚþ{»$¦ÚJ«*¾¶²%Ï ‡˜$'sµƒà“©½Ú0º }®—I×é8j|’Si% E‚¡êý3%Àj&`y4”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Ô”GóŽþ«+Ô’R’Iëê¡ö˜kžÊÁ‰÷Xá[ž.pIICnM.}µ‡C¨sYdèœÑ`yö¸"H’'QÈ𔔤•:z®Ù¥ì{Ÿeuæ6ÇÔKlmnvŽ-ÚxVÚD‚ñ%.’ ù˜Ôc[”÷ƒMÆÇ3ÞFϤ!³¨ðQÇΧ ØÐÛ)}A¥ì½†§ºC] iä’› &‘»lÇó{ýÉ…•—´½À¹­‘% Á x’™$«3©b<8‡™fGÙÒÒ.$449|5E~E,²ªœïuîskA,i{= ”‘"@t)¤i$j`||¬_òQÿÂÖÔ””Þõ+ýöýá/R¿ßoÞvôÿªnÏwO;×kwÕ™²@°?fÒàÙ˜ÕZÿ›ŸWÿò³þدÿ"’˜ú•þû~ð—©_ï·ï _ósêÿþVbÛÿäRÿ›ŸWÿò³þدÿ"’˜ú•þû~ð—©_ï·ï _ósêÿþVbÛÿäRÿ›ŸWÿò³þدÿ"’–8KH#Äj?Ù1q)Ħ¼z$WSC&$Ã@ ³:†%—[CKèuš†®ƒÁƒ¢Jl$¡MÕÝS-­ÒËXÛØíx–˜?Þ½_h8Óz›c–ÎÒAò<¤¤‰$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$§7ë'þ'ú‡üC×>ï¤~+ úÉÿ‰þ¡ÿõÏ»éŠt[¾Òú,’I'3©$’IJI$’R‘pg§`z¶jð½ÈJX´ÕwUéõÚÝì6Ù->T\P;-ÉòKÉë÷³÷›÷„…µ»‡¬sÜ*ß²ºwúýçûÓ·¦âÖÇŠ›°¿— à„Æ’w_K@.±  #ŠwÙ]`€“?bnÝ¡Çóãàè C@ˆOmvݦ•ĉ>ù§MRG]S'sÚݱºOÄüTƒØNÐàLGx<ˆøyý&„vЂ?"sS›k¯l¹Îв@¤}Ð’’ j.sCÛ¹š¸N£â²²$8u™óÊ„1Þy|4’ðÀ‡¿Ww¤qÉqy¹ñêi¡‚·]>ŠJHë©h—=  #àœ[Q ‚I äŽPYˆ0ãiˆî¼ýé¾ÌòA.Ú‰-ä8¹íŸ½%'Ö]°<q¶uÑIWn;›mn³pð€wž®VR’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRSü㿪ßÊõ%ü㿪ßÊõ$”¥W©ã_“ˆYŒX/e•[_©; ª±–íqn ;lJ´’Jpòz>~W«u¬Çõí¿ÔcK½J«hªº[¹¶ÐáiöIö·À8jÓúNN7VÊ̹Í{.u†§5À¶9Úöz@›a¤Ø`p­d’SŒî“Ô.¯ìÏ}tS]ÙW×mnsìs²=q\´µ›6zòaÆaW· õEÇÔºêï¤ÔÿN±uTS¹›klɤ¸ˆ»¿~…$”å‘gìœþžÁ]N˳!Õ¹’^÷=¥ÐÑѤðªgý^̲ێ5ÂÚm²›c%åö[m­Ô¹öWp,‹7³s]Ÿ":’S…gBÉq±´¹”ú˜‡×{½kwz"–¸8ÔǶCàëíÈ+£]‡•NMŒ¨=µÜË \Zm4¸z[h¥¡¿£w¶Oy+e$”æž—qëG8Xß²¹¡æ“¸»í-c¨mƒXIÐBÊVú™®úÜê×µÞ˜kˆn÷Qmìe, ÏóŒrJéÒIO=‘ÐzŽNKrnu@>ëm¶šÞ[´Xi,,±ôØw7Ò Lò8Z?XÌô.¢õ%h(ÛUwVê­`²·¯c„´ƒØ„”¾“’Þ²ì²æ}”Xì†A>§ªú™ŽZ[·nÐÖÌÌÊÖT½{</÷¥ëYãù½%7RT½k</÷¥ëYãù½%7RT½k</÷¥ëYãù½%3É0ð|ÿ¹s”t;œ÷‹ŸeMª»¨­ÕZú‹ýK]{^}2%°øƒÝo9î*))æÇÕ¼Ö›ƒÍW‹1ÛC7<° ¢¼wµÀRç¹£as}ñ?šª÷Oé¹8×bWk½Q†ËËòކç^æÁpýøl»·‡–²I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQ?Î7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’‘Ý{j-íñ#Dzƒ2Ùa!­$öÝyóÓŽèÛFàïÎlÁøÿ¹CЪ‚A“¡ù¤¦#)…Íí›´áËu3¢Vd²·¹„ZÝæã^ÄÉá9ǬÆÑ´ˆ"&$pí³© Ä;¼¼CŒD{|ÒRÆö=°eÄÿd4Ÿú¤ï°2£l7@‰Ž{¦û=^}äî2f&uׄ…06n&¢ °ê`ˆúDÊJbrkk¶:Zý=ºN Ÿ%YhvÓ0$¶8ÝÎèFuU¸’DÌOÊ@ü©’ Gƒocà’˜œª†®öŲ` Ÿ$ÍË­Àp¹Žçhïâˆ)¬ѬÌÉð#ø•âÔ"Dì$³ÊLÇÉ%.2Xlk6Ÿy!®ÒÙžóÙö¾ï;üÇr?ÙØ׉¤ŸAñã™EINÖ©‰gDÍ©…ľ—í#^Ý–S¾‘ø®ƒë °zî1Þø®}ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹ÓÿåžÿgþÛÜ„‹ÓÿåžÿgþÛÜÙnO’^O\’I&4”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¥‹L¹ Ÿ‚oN¿Ýyþô‹»k[0&@æ¹bõ6õºŽE8mµÖ3§R[’hª«^ü†ï{½ÿD~iâSµé×û£ï?Þ—§_î¼ÿzÄÉë¹´6×9´m©ù!’]6 BÖ– Z–—{bb8=•½{0eÙSqÜíæºëqp{ rê´‚tx°¼CGÏ””íúuþèûÏ÷¥é×û£ï?Þ°ÏÖƒšü*›K­61•9Ûš=׌gÈÜ^è™á¾ý$ÔõÞ§sª¬UŽ×å:¡C¥ä÷ÛKËÆêÜ=â9%;¾º>óýézuþèûÏ÷¬&}aÌ8ÆÛ+¦·XÊ-¢ ž6Üm^k‡¢OÒ_î¨ï¬7bæ]UŒ ȤÙKZýÖÒNr·64 kÄXöî”õº>óýézuþèûÏ÷¬Î›Ö.ÍêYX¾›EXϲ½ÀÁÕ=¬Ãy'x;‡´GœÊ¤Ë2ÇNÍÌ'!–6Û[]îÈ.a(Ö)ÞC!¢8IOAé×û£ï?Þ—§_î¼ÿzÄ?XÞs.Åo¢ÒÑ]®Æ5Ö¾§9íÞCvóìå­äeY„-Ö̺šÿh/.sšçßÒK·MÍ?”ëúuþèûÏ÷¥é×û£ï?Þ”Ùûƒüà”Ùûƒüà’•é×û£ï?Þ—§_î¼ÿzSgîó‚Sgîó‚JW§_î¼ÿz^º>óýéMŸ¸?Î MŸ¸?Î )^º>óýézuþèûÏ÷¥6~àÿ8%6~àÿ8$¥zuþèûÏ÷¥é×û£ï?Þ”Ùûƒüà”Ùûƒüà’•é×û£ï?Þ—§_î¼ÿzSgîó‚Sgîó‚JW§_î¼ÿz^º>óýéMŸ¸?Î MŸ¸?Î )^º>óýézuþèûÏ÷¥6~àÿ8%6~àÿ8$¥zuþèûÏ÷¥é×û£ï?Þ”Ùûƒüà”Ùûƒüà’•é×û£ï?Þ—§_î¼ÿzSgîó‚Sgîó‚JW§_î¼ÿz^º>óýéMŸ¸?Î MŸ¸?Î )^º>óýézuþèûÏ÷¥6~àÿ8%6~àÿ8$¥zuþèûÏ÷¥é×û£ï?Þ”Ùûƒüà”Ùûƒüà’•é×û£ï?Þ—§_î¼ÿzSgîó‚Sgîó‚JW§_î¼ÿz^º>óýéMŸ¸?Î MŸ¸?Î )^º>óýézuþèûÏ÷¥6~àÿ8%6~àÿ8$¥zuþèûÏ÷¥é×û£ï?Þ”Ùûƒüà”Ùûƒüà’•é×û£ï?Þ—§_î¼ÿzSgîó‚Sgîó‚JW§_î¼ÿz^º>óýéMŸ¸?Î MŸ¸?Î )^º>óýézuþèûÏ÷¥6~àÿ8%6~àÿ8$¥zuþèûÏ÷¥é×û£ï?Þ”Ùûƒüà”Ùûƒüà’— cLµ ‰×ø§Qvà×6$ ƒÄz’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥!Þ÷²¹`—Ð< Ͷg\Øi{A¤HQª2¦ÍûãÝã'òp’¿"Æ;anèÛ/ CŒöCû]Á­Ýµ¥Ç¸Ðîöø«‰@IMo´¾HÚwÃ|6¸òLvQneÂàßyÐu÷mætŽU´Íc[;DI$üO))®Ü›s[íÚâà@屺$Ïx•´õ/û†ßûp+e$$´È>q ÒSƒõ‡#¨š×ã1Ô?qÞ 5ù,·}#ñ]ÖOüOõø‡®}ßHüS¢Øåö—Ñd’I9I$’JRI$’”¥Œû™Õ:{¨¨]`µñYx¬Ð]>âùQzü³Ó¿ãlÿÛ{;-ÉòKÉè~ÕÕ¿ò¹Ÿûßý$¨_Õú¦>VEô2K&ªh±îkÙe­ò ¨oè÷ pòî$@"‘àSO0Ï­™_onª­ï{ë,¸I­†×EvZÝͲÆ:%o§õ¹îžì–ÓMY¾â gyh«Ö;vä<7ÀLøÀám†´p$é)§Ó²r²=o´5ôè;dëk?œpŸÌ2ݽù•q$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Ô Lƾ*#ùÇU¿•êa®<~ )®·Fæ4ÁÜ$ýáçæ«ÕÓ±ëͳ8—Ù}ÙúGnk[!ÐÆÀVyÐx+I$¦;Íž›=CËöÇûQ*[¤4iÆ:I)‹ª©Í,sæih ¨™´PÓ-©$m$4oîñšI)ˆ®°ó`cE„AxqòŸkb G„iâ>×DÁ”×È¢ö=ºÔë>µmm‡¿ÒÚSãaãbÕ]TV)`­Ž:¿hì^}ÇïF‚œ5ÄH„”²I$’”’I$¥$’­Ô²_‡Ó²²ØŸKík]Á,it¹%6RU‡õ•ÍõðuüÕ¿úU?ؾ²ÿ§Áÿ¶­ÿÒ©)´’«ö/¬¿éðí«ôª_búËþŸþÚ·ÿJ¤¦ÒJ¯Ø¾²ÿ§Áÿ¶­ÿÒ©}‹ë/ú|ûjßý*’›I*¿búËþŸþÚ·ÿJ¥ö/¬¿éðí«ôªJm$ªý‹ë/ú|ûjßý*—ؾ²ÿ§Áÿ¶­ÿÒ©)´’«ö/¬¿éðí«ôª_búËþŸþÚ·ÿJ¤¦ÒJ¯Ø¾²ÿ§Áÿ¶­ÿÒ©}‹ë/ú|ûjßý*’›I*¿búËþŸþÚ·ÿJ¥ö/¬¿éðí«ôªJm$ªý‹ë/ú|ûjßý*—ؾ²ÿ§Áÿ¶­ÿÒ©)´’«ö/¬¿éðí«ôª_búËþŸþÚ·ÿJ¤¦ÒJ¯Ø¾²ÿ§Áÿ¶­ÿÒ©}‹ë/ú|ûjßý*’›I*¿búËþŸþÚ·ÿJ¥ö/¬¿éðí«ôªJm$ªý‹ë/ú|ûjßý*—ؾ²ÿ§Áÿ¶­ÿÒ©)´’«ö/¬¿éðí«ôª_búËþŸþÚ·ÿJ¤¦ÒJ›ñ>²4I¿þÚ»ÿJ ^~°QE·°\*cžZ*ºNѺ?œINšHX¶›±(½ÂuUØ@à´8þTT”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’LH’`Iá0¶¢@i.ú"F¿”É%V ÒííÚ H€|%'=nç85§¹ ”É$ÛÙ¸AàÊyŽÚ”¤”[enú/k£M:¥êÕ1½³8æRS$”Eµ»Pöf ŽÜ©RR’QÞÃᩨԎÉjh—= LI j;$¦I(è60F‡Ü4N,¬šI0HIL’Qõ»nỲ&yáJGŠJs~²â¨Ä=sîúGâ·þ²9¿°sÛ"MðXúGâÇ/´¾‹$’IÌêI$’R’I$”¤LãÖ:xk¶ŸVÍbí=Þ(h½?þYéßñ¶í½È–äù%äõ^ßé¿èµ ÕdzV4>]c½§èíœd+TKØ\\A‚I€Í1¤×yËØí­p°9®¤ÝÍç¹*Û•´oÜ^I-3 ÔŸxU`[YvÐö—DĉŽRõj /n×h"Í%!mv’ÝÅú<ϸ‰l@>)­yµì4’æ6wížt‰‡3ÍÏc#{ƒgÄÊœØÀ$¸Ì’#D”Óc3Œµä€ <ûšâNÒ>HÌ¥à¾^ã-]¸ó&`ðDTL´˜˜p§ ñÛB’˜Ö7ý#«¼‰Ô’’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzÇêøweõ:Y^=9¸¶2\öÖ×›+ wèØé>Zh¶óŽþ«+Ô’Sf_UíÕ[=,w×ö—U'ÛŠÛMŽ..ŸRßo”ø¡eu¾¯]Žh«ÍOsqQp´2Ö¼»“úG9»g·’éA#‚«ŒQ™öÝ“’klsœí¡Ñ¸1®qkgh JJq3º×RÆÎ» §Ø[Y}Cé´Ô7lk·à÷Li¢C®Vç3}o—¾šÜh2 YTãúŽÚè;Ùkq§uÐntD˜ðM%%8´º½BÓsÚêö[é¹´ís #{‰vß{¼È†ÄðªaõŒÌœhxß“UU¿0Á¯Ê®Ëîµ 8Çä]TŸåÎ<’’ž{¢õ.¡fe€ÊªÇª[fpû=o6FçåÍwm[òb'OÒ’žg+;#6ðú‹Í5¿enc\Ðæú5äöÝ«Ÿ¯„­>¡Óñ/êý>Ûhm;^\³tx¤ŸÉ)ç[ê"¬‘uµÒp²«ÂÈÈs†û.Õá Ž(s x»Êðú×S¿?‹Ú«¾ªìw¨ßO{_ênsC†íÃkNÑÄê¶ëÄÆ¨9¬¬ëMîŸtÚNíòéÖ~äi:‰ç””²I$’”¨uÿù ¨ÿá[¿ê¯ªýGÙ?' ® vEO¨=Ú€^ÒÙ1á))ËÌêW¨^=W»#3²Þqí-Äæ¶};CÜ ˜þ²×è^î£e­´Vke W2ÏQÖ7ѲI÷·dž9á^mÔµ¦§$|“¶ê;@nã.|N‰)åð2:Î7L£©µŽØqkÞrrŸpºëKXí„¿Ó\Lxð¯?ëc,º· Kš^Á£‡¤Y}X¾¥Þï¢ÿPØ·Ú9?ImzôÆÝ v?"ãꬮMfàì¯Úòò¡%8´}cͲ›­'×E`úÍkÈ{Ý“~+ Z^iîÕýùU>³u¶TüfcÃÅ5ÅÎý-Ö]DþÄßKtIž'ó–Î88xĤSAÔ%îvâ\â÷>K‹œâL£6ÌfcZÐ;Á%8TýaêÙ>ˆª¬f:ïF¸qyÛ«²Âéìo§ äÏe_;ë^C±ZѲ—eá¹ãk¡ÕÚì[2ZZ÷9¤êØÏíOµtÂê}ßìQ.ÄsƒœÆ—4@%ºà4IO;‘õ*€r^êìn-W:—Pÿv [«†ïK×p'pàýÒönn^OÕêò6–ßmôV[E¢²öœ¦Uí²«³ÔoƒÌLJÕm˜ÍnƵ¡ <éÒm¸ìhcZÑÃ@€;ñ )È¿«¿¥±Á[¬­my:ë ì½”–‡½Î.ÑòŸêý×å·&¬‹¬±¦ª„ïppÜmµÍ ƒ§!k›qÜàç\Þ ‰ù$/¤qà?Ø’œ ]8ø‡÷›¯ê9¹Ù6Ûs}:ŽcZÒ×<˜h`Ð$ (nú×Ô…^K«¥¢ë(¦²5‡ÛˆÜÇz–TÐ%ÛïþãÑúôùhdißîLë1œÒÇ5¥‡–‘ Ç”$§©õ¼ïG.™f5ƒÛK+p{Ãý6Ù­µØvA=ëÔj°¦ÿ¬YôÛèÚ(/®×±Ð=@Û+¬2°^aÑd÷ã…´Š\Ðç'n¤ÇDæÜrA-ƒ ‘Áñá%<Ýc5×tüC9 ߸“mÁï¿FÀmh¬N‡äºÅ_ÕÇv‰Žþ _i¯Çò¤¤É ý¦¿Ê—Úkñü©)2H?i¯Çò¥öšü*JL’Úkñü©}¦¿Ê’“$ƒöšü*_i¯Çò¤¤É ý¦¿Ê—Úkñü©)|æþÿÈW2Êzýtõ3Õ2é¿U`ÃmU Þ[°ö™äqâ·sîÉ}pBéÿ¿lwúedßGÖ ¨²—? Xæò†ßâ’›};þMÃÿÂôÿç¶«xôúÔÑ»£S+.XÐÙüR’I$”¤’I%1ÿßê»þú¤£þ¿ÕwýõI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$’IL-¯Ô©ÕÌn(NÃaq!Ä©'BI'Ï^Q­±µ0½ÜGsáfR]·_3§„øÊJQÇyvýÍܰnß~’fÒ÷2ºŸ TAÞ é´ÈåIÙLh2×nh—2ØcU+.e{$¿FÄ?Î!%0~3œ]I-‘ÝÅ®3¯òSueÎfó¸†èA€?8ñ¢È¬–}Üiü­Ÿ•I¯ŽÄ›L$¤gwçúCfš[¶$!ý‹Ø[¿Rݽãù¿O‰DûUA›Þ º7@ú÷Ls*âìä騆øù÷IK}™ç— ‚ Ôò }"|T™[éÀ_¾=Äñ ×qžÉ}ª¨$È nãÁÓäJŸ­Y­ö-dÉýa%"f!¬5­|†:du‰@Ô‰Lq_íÚð6¸5 ʑ̤G$ú k¿8ÞN캛2"Ó{~i)ˆÄ€Féžg_ÏߢcŒ÷:g`ÞIîËÚ¦ì–7væ¸84 “Ä{¼Òn]nÀ˜'Hí î’˜Œw¶ÚÝ¡k ¸Ò·~eöGOÿGÿIßÞŽ2k/k>âCLhbg¿’ínŸþ—þ‹¿¹%9ßXz^}:Ö0‡2—©:ö䬧}#ñZßXz¦:¶Y¹Ï¡Àhyì5 %ßHüS¢Øåö—Ñd’I9I$’JRI$’”‰„Ö¿¬tö¸H6Ù§þƒÜ†‰„泫ô÷8ÀÙ¯þƒÜÙnO’^OWöj?sñ?Þ£öZÃ\Kw9®qþiª´ãþøüRfMO˜<84ÿkèýé& ²Hq™ŽGÑÛùyIø¯~ó¸Z6º€v‰çÇÅHeTf'@×LvqùBwäÖÂA;I LFÙ?ô‚Jbêí³aL×#SÌä;É ¸ùˆD¸<ë>!\I%#m k¤µÍ ëÝÄ’|÷)TÏN¶¶d©ñ=Ê’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW©A<(çýVþWª÷ÒmËdÖËÚÌú“\Þ RSi(*“ï²Ë=!'m‡t4€o©¬ÇÑ%+)t¶‡³sÅ`€DOñIMÔ•KeYN{)–lkt ºÙƒÚ‚YžµUX@ÝS,q--i.kœè€O´À‰IMô–q·*ÊÛcw±¶»~ÐZa€€Ø¿Š%–^÷º²IÃschÖgù`’’›©*˜±÷ÚûIú Ü vµ‡u’ÐcXî«ãªuî£-†ö—Íiiö¿›ú77·!%:i*m¾Òìp\è°û„7y÷DýÛð |ŒËà+.°1Ãl¹‚,.Ðû¢ ””ßIS"ÛzmVI}ìk.ˆ%í÷wÕ¼(]‘u8âö\]nÒÞÚ0È‘í@%%7ÒT«ºÆX)wØ6ûI–¾ûZ÷O†Ðú}÷_SŸv‡OlAi×sHÁá%6•^«‘n/KÌʦ´Qe•’$nkK„…iPëÿòQÿ·Ô9%%oHë.hwínDÿF¯ÿ$Ÿö?YÿËoý–¯ûÑ-|d^Ê õ߈@Ÿ¦"'NÙ}*«®kXá…kšø®°Y¼øƒºvÏäILÿcõŸü¶ÿÙjÿ½/Øýgÿ-¿öZ¿ïWp_WÚs+a’-ƒ?¸ÀyþP*êJq‡Hêí!Î껚5s~ÏX‘á2¬¸{ˆ*û¾‰ø“žÇXÀÐù¹²×NÒ'ó Rd–gÚnÇ¡À3Ó{,~êÃ}‚6mkN²;´óÂ7«” .±Óî ú z{»Ï³]RSu%ŸF^Kí¥Ž0×08¹Í‰ÕáÚmúChÓO4|ñ{±)À°—펳íÓºJl¥A¶kH-v"‡fò&;ë=æ—bu-²íq÷a§Ìë )Ó‚’ÏyÆ\ëZEYûSC\]cˆa1·ß.êÖ°A¸€ÐCZ $0Oîð’“$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥œÆ¼C„‰î2]EN$–É&OÝ·ò*ÿjÈØ×t`ð?½åÊ™Êpƒ ÷±Ý¿ÊòRS3QÄé2G> ÛTï!Û4f‘#Äʃrh¶Í ªÜ4àÀŸõÕ ùÎa -¸ §dÈåßš%%'8õ™úCY¦»´ðÕ8©Ì?£y™pt»tÔB¿ êÐÒý€x·÷‘˜÷ äü~áÊJXÑQH‘îÿ§ô’v=Nu™ ë©ü¡C×µ³¹¡ß¤5€ÀgF—N¥ í–ÁvÑ´7w~}?R&RRsYév…º“ÁNjå [ç{cS»˜3¢ÚžÞ|5žÎw‚%7zÅÍ, ‡V‡”£‹LȺ“¡Žb"c‰C.nø‰"^:¤¤Ÿg`{^ I0uä<52‰À}È ÉyµŒ†íypógŸŒ!ý¯;þá;üö¤¤Yߨ9î"‡Áø¬}#ñZŸXró]ѳXìRƺ‡î%ÀÀÓݧ‚ËwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"`—±ÓË[¸ú¶i Ú{¼P;-ÉòKÉëä¨>ªì­õ¸{_;£“>i½K¿ÐŸó›ýê ¾Èq{6€ö´DA0xðLi2v5.%ÄC.nÿ ‘Æ©ßKqñ÷go>?D! Çn´C¢ĸ~Fʈ̰µ¿@’F­ÔjÍñ«†£â’›‰*Ÿk»_hæ É÷ìýíQ>ÐíXv‡‡ÉÐht‘>p’“¤ªË¶ú|˜X$èÈþ±[IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½ID8ïê·ò½'Ù[#{ÚÉãqò¤¦R|RJ@åEÖVÐ œÖƒÁ$RS$¤øò™®k„µÁÙS¤¥I<”¤ø¥#$tIJ’”že)ü‘¦£^<ÒRò|yå4ž%$’R’AHä”Ò Aê> )”ŸÒO)H˜ïà’JRv(ÌÂÈÃ.ôÆEo¨¼ -³4uO¬]n?H;—l¶¬{[Ç!Íi ¤§Q¹!­ ðŸíCÁf³ —þUÎÝ´8ôÈþ²èAÁ¥½_4‡},§_‡èRS¥ö¡à—Ú‡‚Îq-oVÍ%º8Ó#ãúÿóyÿùiþ}_úE%:$GŠ®ã.$w( 9‡qêy®Û®Òú Çc„kÆÖƒÉ0?”¸$pT^ÆØÝ¯’"Hãͤšæ¸4‡4ðA%,ƶ¶ ëŒh k[ vN’g=ŒžàÑââüRRé÷;ĦL^À7Ù‰‘ÄJJe'‰LI<ê›{$·pÜÝ\$Hø¤p¤x#P’—I$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%1ÿßê»þú¤£þ¿ÕwýõI%)$’INwÕÏùú¯ÿÏZ+;êçü‡‡ýWÿçÇ­”¤’I%)$“:v˜æ $¥àx&Ì :‚©éf¶^âvË€&gÛ§ÇžtS?h‘ôãü4~—úñæ’“úLÜi?Íá8k äoRϳš÷´ôgß·w:kôTZs}V€éÒIì÷v¾éüSsE±¯éùßú’*« q2 Ú ÓÚyù›]é— ¬€NÖn Hæ~:ÂJM4«9™M®+$»ô“¼“ýOö&{rÆ÷íghñ¹½¾ÂJm´pøÎ­Ž ™ÓÀ‘÷ÁÕW?iÚvî’ögCóÕL½á–1îçú`“´”žÌj˜µ¤Ah#GuQßl‘;´$H˜:2·´ÊO…ŵ‡ê%Æsu1·ò$¦äÆ É.ñÔóÊÛ~×¹¥òç¶“ €]9C­Ù$7nç{ˆt“í‡k óíìRSlÖÂC£V™Î#ò)* Ü/¯qpsƒàèâØ³õOû–Ïûl$¤?Y?ñ?Ô?â¹÷}#ñZŸXhê#£f¹ù {Þ‘¦‹-ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹ÓÿåžÿgþÛÜ„¥ŒÛ]Õz{ix®ÏUðâ7ú » v[“䗓ؤ@" ö*ŸÙú§ýËgý¶®ž Ö¸Yp~ç   °7 ÆGhLi7 x&ØÈ¢< Bªß´5ìÜ_7FÍ ¿véù)=ï}­u%Îg·V[£ŽýßÙIM˜ ‹Zf@3¡Ó•Z¶dž©p;åÛ]¦Ò “´R®ËëÂò]^â#_Íù$¦Ä•Zým€8[z„‘¾c]‘ÚR?kÚáîÝ©DFÂøîIM¤•]¹?IåÀ´ºv ÐÀñrf’e’ZY-y2 ·O%%6ÒUè6zîk‹¶í­yÔyýò¬$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•èVT÷åµãhck!ÅìßËš`{›DQü㿪ßÊõ$”ÓwÚl³acËa$‘ _QdðÉNêzcj5ËÅ`l *ÚI)­uVŒ·YVæ²jhk 4€ë7NB¨g‹ªkÜý¢¦9ï-Ü ‹\^h€AŽa^I%9æ¼·ÖúVØÆÚCÿ8ƒl´˼‘Ì—½Ípyná¸ìee›|öî%\I%5°Ûw¯e–‡îsçÆÝÁÖä$*uãæâÖÆÒÂæ¶‡>¾72Ço¯Sß–­T’SAÏÉ`§Ô}€0ººÐÒ,Þúd«ûc²ê …bƸóXv¶vñ¢ºk¬½¶4½ŸEäGÀž’SWí/©Ç,tÇλà´h‡MYÓ`-tÐßB‚9s7n/Lý£å¢¼’JhTrÚæÚúì$–±à4î!§#o ìÕK朆‹·µ‚¶ I¬ hp²gUu$”¥C¯ÿÈ]Gÿ ÝÿPå} /¼¼[±-$WÇTòߥµãi‰î’—µu×6šÜn.Áhi /ƒøðQc>ÏcqÞÆ}¡Ï©‚³5ÖXZe {%Ú«­É-hh/µ”ƒÚó.|EPæîÚZ\âòù;¹‰€Ôhª¿j> }¨ø$¦Ë¾‰ø•›[ì,k$\Òw7s@R[!\9$ˆŽP\d“âRSš~Ý]N ­Þ¨±î&°v;FmÚÖ´˜ÛØ÷™(¥¹m$¹Ö–8Ú k}hújâg±n×´=§–¸>â’šÖfZú\KýV_§Wî°»A©?nùô`n“Hg¨à|K(°@@ðI%!£{)ª§°‡5­c£P`sµ“§oŠªêÉÆ ï,]zd}?SÓpiA¸kÙh$’š6Ôûh¹¦¦—ikœ½Þ§}Ñâ¬ã7m_@Ö×9îedm-kœKFÞÚvEI%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJM#Ä'Uò1}WïÚb>|Oͤ„”œ9¤íÑ:¥½³·pÜ;N¿r hô¬6´Éw´DȈ˜ðÕ7Ù·9Ö ä–»´´7·ÃÅ%'a0 :"S¡WIcšóµ¥¤âe9¢¢dî×ùNÿÉ$¦ÖB?`õ:œw> ŸwÒ?·õ“¿ØYÎì¥ä Î:Ç™XŽúGâÇ/´¾‹$’IÌêI$’R’I$”¤^Ÿÿ,ôïøÛ?öÞä%,jk¿ªôú¬¦×Ì:Qqä v[“ä—“ØÁM¹ N’©þÈÂðùîR¯§UHq¦KœZ}ä–Ã\‚cI´\Ñ©p'žÞ)4Ägˆ<®Ì74´—µ»6¤'ñ?‚³¹®®Àu¥¡¡  t÷sĤ¤û›;dn< ×îH9§‚mp€i±ö9ðHÁ·ÚA!#Žù¡ÍC@!¤AlŸ=RRræ%ÀSogï7ïøUÆàCܰ0Á'â½åá°Ît-,kLsà’›%Í øN©Õ[1ž\ ûÚÿ?ÍSØ*ÒJRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜çýVþW©(çýVþW©$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’HùC#0·xÇ©ö–LNÀ]òIIÒTþ°éØðuþ”ô‚yúÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ¤ýbÿÊìýŠ?úA)úÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ¤ýbÿÊìýŠ?úA)úÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ¤ýbÿÊìýŠ?úA)úÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ¤ýbÿÊìýŠ?úA)úÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ¤ýbÿÊìýŠ?úA)úÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ¤ýbÿÊìýŠ?úA)úÅÿ•Øÿûô‚Jm¤ªOÖ/ü®ÇÿØ£ÿ¤Ÿ¬_ù]ÿ±GÿH$¦ÚJ“Ÿõ…¢ONÇÿسÿ¤®Ìë”ÒûŸÓñöVÒ÷F\˜h“¡IN’HxöúøÔß}jÙfß íÅ%)$’IJI$’Sðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)Û™Hòfbð$¢(YS,âb@ùˆIK6ö=æ± ‰Ôˆ9ƒå)ŽMAîa™lÉ4¿"^€k‹Øã¼ÌnÕ¢cv‚9„â†NãôÌ—9ºI#jJSnkžépÜ BG"€`ØÐG"BvTÆFÙö‚Ñð&T䤧#ë&M¡g0=¤¾‡|#¾‘ø®ƒë( ç¸êEšçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^²º¶N[3ꢇel8öÛ³ •=î{_[[»×k€åª?œwõ[ù^—§_¨-Ú=@ÒÀø×i –Ï„„”䳬æ°zb´å0²§ŸP5Ž´c »£k^@h–V÷¡¿Dz‘?‚ÐÀÊ~^8¹õ:‡nsK'iÍõ[¶žÒРΓӛvEç·3w®÷´8¹¯ k™¯æÑ¢>>=Õ qëmU6v±¢””‘PëÿòQÿ·Ô9_Uz®5¹}3/˜õo¦ÊëÜ`n{KDŸšJhåuÞ¥‰Ô.Ű´bÝ“‹‹ƒvÑìµÍÆ}”¾N¾£,qaà¶:WWý ÷4ÓéM—ÔwnÝU®±¬.ö®ý‘¨óGô°‹ l®·ns,|€fÆíyónÆÁòKœ cc±ë®£k·XXÜ|L$§žÀë=^¼:sífNUNÆm— ÛELuÖ›[h,kLî>í"‹¾°½®s]Œ%Î}tE“ºÊï«áþÏk}KD:kè´vaz ÆØÏA­mP6€ÈÚxÒ4@ÉÀÀµ™¶WUÙ@6Û¶1Ä€8;B’šU}dºÆÚN+A¥’÷zÛ˜l9bµŒÛY{¤ÒNžÀ¢ß¬÷Z+4aú¨{¬ÙúKŸm-l9“ÕIÇiö«x=+¦b` '5·´´¶×ØÖKåï·PÐÖ€cˆ@ìÒ1˜MMi­h‚Òç4ü‹‰ù¤§:¿¬ùz~†q´TÖµÖµ§Õ¹°0ûNØw;î/ëKŽ&ê)5ºüG]Sç{«·ìïÊk^ bÞï“û»u[ Æéµ––SSKsa­Z ZGÀ8 ÙÒú%®c¬Ä¡Æ¦úuËíh›G–Ó”çßõ’ük7dUéýž»}‡ƒi8^‰ÞÖ“ É÷@=ãv“c;©å;¡·2¶]‹sƲmÙ ¥þ›o`Í’ÝÌ…htîŒ(8ß@µì5–´´¶È/i³¶‰ø)»¦;ì.¦³‰§èš;xÓúÚ¤§>îµwOƨº›ò‰®ûívI®«[^>×?Û[I!ÞÑ~³ÝI±·a;ÖvLÚÒ]"‡ËHç9™ ¦ºOu~®ŸÒ)¬Õ^=M­Áí-Ú ‹kÇöƒD¨ät¾•“^VEÛeEÎnàÒ7»Ò÷ypô[É%4›õ“!eY8­m·¾ê±Åv9Áï§'ìÛ%Õ¶4;¾­uFåý»´f]^M®ªÊëmDCj¶Ù¥OtË~¿¦tçgbæ6+8ºæVÈ 7dרèÖaÎûÕ×»îcÞçTK«& i ¶G†„„”â3ëu&ÊíÅõ˯¾¼w ÒàÌÆa´í†êfLjúÇmã(уeƒÎc\Ñais-ô¹ÂžÄ{7¾z-GN$UdµÅÍ;[£œöÜãó±¡ßPÝÓº3äãU9DˆhÈ;¥ÑÉ‘))ÎoÖ–æêÙn#ÛFµ¿F:ÁqvÉ­®ózîÛ úË~êíu^›×¾ÚZàýíu-º¯yk`ûµÓï[ Æé­€Újv톷M’þnã Áé³Óf=-g»ÚØ÷®ûƉ)EËËÊ£!Ù{EµäÛVÖÍhc¶†‡mdǘZ ¶5xX•z8Ìe5É;DžL_Z¿ÞxIICõ«ýá÷„½jÿx}á%$IÖ¯÷‡Þõ«ýá÷„”‘$?Z¿ÞxKÖ¯÷‡ÞRDýjÿx}á/Z¿ÞxIKd7÷þB¹–_õ‚Úz›:¦65ÕUcqì¥Ïs­ö¾ô[:ÊÞÏȹ¸ó‰Srm˜ôͬANâ Èɳ®]m#§VÓkÀ~ÔÍ7Ùúi)·Ó¿äÜ?ü/Oþ{j°…‹K¨ÄÇ¡äÓMu»i‘¹ŒkLˆEIJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%5îÊôžFÙ“<{wJOÊ:éÛ®§R: ¨û[ÌƺȂÖL@å%5Æ[ÍN²+Òæ²LÃLÞ vä>­À†’ÖîäêQEu‰†´næ×✵¦d" ŽÞ )®2mq†µ ‡5¦gó‰Á#•nâ÷– x$vç…`1€@hpðL+¬;ph<ºýé)y/}ih tI×’ÝúMŸæœ|å¿ù%0ÖŽ/’t”ä}eºÏØy­ôœ¨x2[ ŽtqXŽúG⺬ŸøŸêñ\û¾‘ø§E±Ëí/¢É$’s:’I$”¤’I%)§ÿË=;þ6Ïý·¹ §ÿË=;þ6Ïý·¹²ÜŸ$¼ž¹$’Li)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Ô”GóŽþ«+Õl§ÆKK¶šÜ`[è‰ÜÑ$îl¤¦ÚJ¥¹Yï6¢‹X\]®Ú…ĘíÙ Þ£v×ìôšàÒæH¬ysÆš{á%: S÷äÛAh'yAJ5?HP.­¹cߺ¶Àlq¹®'BHIMä•+so«Ö/k XçíŸÌ,'úú©7.ßЗ5¶: ´tû¶ˆk_¤üJJm¤¨S•+­¯,—†Øé n6jýGîy([›oÙîxsj/axsɆ~…†ñ©.Ñ%:I*]MÙŒ£½·:l–AvÚûjxs‹ZTÛ˜_c6Ší`{ä’Òí³#oÚ’›I*ê65Œ€×X÷8DmÖ‡m“dIžgä]÷¿+cm¨úÀ4IqôžÚÁ™¿‚Jl¤©¶Ë˜q ÉÜñ{I:ú@K›ðÞØø#Ô^épÛ5>ÃÒµí‘$ijËàS¢«õ,§aô쬶49Øô¾Ö´ðK]îB·¨ÛéÔd½ìiC½1\‰.Ÿ&ëút>¢?îµßõILÛ‹õ™Í߃¨Ÿ£wþI/²}fýüónÿÉ+6Þúí¼Uauƒ=•LÄÄ5B«ÃNƾÐ×9¤_·qËðTŸs~Ì?NC—h~²Ãg¦Òï2ÒS¢’¡m®ßo¥iÞÆ´4¼ûàÏkküÝ­%ÇÁYÅ3N60=â·“¸¹Ä4îïñII’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’SV×e‡»Ó´nùHøj•¯É.–‡µ¤5ÒßÝk»Ê´’Jj3×uPM¡þÂâ@“ ÓˆJÃ’`fóѧ¶!»v˜ç•m$”ÕhÉwÒsÚ›§´—näO˜ý©ÏsAp—&@Û'¾ØVÒIMj¾Óê0¼»g´©¬ˆýï4R/Èíí?ù4D’S‘õ‘¹?°óNöí?t4#¤uXŽúG⺬ŸøŸêñ\û¾‘ø§E±Ëí/¢É$’s:’I$”¤’I%)§ÿË=;þ6Ïý·¹ §ÿË=;þ6Ïý·¹²ÜŸ$¼ž¹$’Li)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Ó–±ßI¡ÑÄ€*aü㿪ßÊõ á%+Oþº(Šënøh¡—éô´_¹I$”Á•1±íûœ÷L ­ôûùI<”·Ÿ?4Á¬ւߣiðN’JX†‘8‚4Ñ9òÖuøI$”®óÜé=ÓmlÎÑ$A0&<¤’–ÚÍ¡»[´pØ÷'3ë¯Ç”’IJLÁ0Ð'³â$”¶Öh p @@êX¯ÌéùXŒpcò*}Ms¦{KdÇÅXUz®E˜½3/*¨õh¦Ë"Fæ4¸HIN‹_CaÛZ^ñ¯Ì'.Æ! ÖØoÑÇÃEšÞ•×ÐïÚ•ê'ú+ôªÙsÿ-kÿØVÿéT”é¶ú›;@l™1¤“ß„ÿigúÿ¹eþÈëŸùk_þ·ÿJ¥û#®å­û ßý*’3Âñÿ_YÄI$”Å•W[Æ·F ­'ÜcúÎ×Tä4ˆ àD„é$¥iáþ±‘0c€ÖÌ"Bt ¤¥¶¶IÚ$ò`Iø”ý h€’‚’”’PRIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%9¿Y?ñ?Ô?â°ã§u×[UWTúnclªÀZúÞšàyU/ù¿Ðò»þÙg÷" 2cÉÁz]¼ì ø.‹þotü®Åÿ¶YýË.ïªýÝv²Ìz˜N=–Økl¥»M@íy×”x™>ñý_Å£Á(> ¢ÿ›ýÿ+±í¦äR?WºŸŒ'¸¥Ÿù¸•÷êþ/;Á(> wêïB Ÿ°cK„:¦G$"ÿÍîƒÿ•Ø¿öË?¹.%}ãú¿‹ÎÁðEÀöÏNÿ³ÿmî[¿ó{ ÿåv/ý²ÏîDÇèý'Öß…E76vØÊÚ× `<Œ‘,üQ#‡âI$šÀ¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯U3Mc&¿Uµ¹¾›£ÕsšÙÜÞ6µÚ«cùÇU¿•ê`‘Á#à’šVÛ–ç¿Ñ{ZÒç6²Y"H»w"dèƒffK›hekKˆk$Ö+|¸™äº”Ÿ†“IÜc¹ñIMj/µùWÐâÇ>ç@Ô>WýAº†1¹¯­ðÁ±Âys]1ñW𯴏´A±Ûž{“½ü‚t”Ò¶üÊýs!þˆµÚ3ém, ˆ?Ê)W“q8òðEŽ"µÎpÝN8çj»%>çxyINu6äWSû6°µ„Ø[ô’LóôG>*]‘ö{‹‰©Ö°—ÒNïA„1£Ì’´äø¥'Å%53x¾›(’êZ÷úsíx°X~ ˜ó@ÇÊÉ•mn‚–¼5âécßÝ»pˆZIH"L©)γ:êè{ÚÿScŽ×l +cöëæâ4Ô§~^CC^¾Ë€{€k}®› ð-×Å^ª¶R¨m’\L’I=ËœI<)îtÌ™IMLßR›Y} ½Ä:‚Ð ÕÚÖâЊ]ϧv# ,9ñöÔHp?HÉ<|ÖŠpHÐJh_›k}]‚MFÍðÓí ¹µ·ËFÈ]]ïÕÌ缂çbÝ%º¢à8òZ’|Nо~7Ûp²1ýŸi©õ#vÝà¶c¼JJem‘‘{)yûC±ÖÉ>ð œ búUW[¶Øáƒk·ím`°¼óÎéÛ?‘j7%­ho0#îOö¦ø$¦§N.9·ó»Ýö€géï>Ÿ?ÈðZj¿Ú›à—Ú›à’“»èŸY9ìsÃXºæË\HiùŠ诜–GŠ®ã.$w))ËûU¸ôºé¹–?uP @!­q:‚íŸ(Fõ²%ÏŽ˜vÍÑw§»ÏÛª¼ ^Ðö–ºH<Á-:y´‚’šfd>ÚXâ×°8¹ÃlÉx$¬£O½=Ìn.wî–D™ÓèýêÃÚØ+¬lc@kZÝ8$_”Ñ´ÔìËé#kœâ7Fô»mÿ„ðÕ–º–9œX^ìf2a–“_¤ÏŒn&t’µdø¥¹ÜÉIH­²‡5àŸÑÉ:k]°ë§uI®n—zu bœ`¶~ ýå£%>çxRS”÷bœl—Ôíµ‚Ö±žðíí.—ºLû¨\×Í2Ó«Hð<'Ü罹甔¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’ILÂ7ú®ÿ¾©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¥MÌ횬Úv KZ_n6Ò@Ÿ;-˜XWæ=¥ìÇ­Ö¹¢!ƒt T±úëoô@Æp7Øú˜w°°¹›cmš¸»ŽyðIN¢J¯NÍ~v(Èu\ö†9Íy;XL³O¤ ;ì sA;ÌO`’– \sÿ9Wfc^ÂðÃ;ŽóχµØ^ç´·nà ΀öø¤¦i$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦%®Ü\Ò€ ž'Ìx¥~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S³÷›þiÿÉ%~óÍ?ù%$’S×nÜç€#˜ó> I$’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)…ÔÕ}O¦æ‡Õ`-{BÀÃuÂãP6‹ Ûµþpí÷0~ƒyîå$”ªj¦±UM `$†Ž%Ĺßy$©9qÂKu ÒIL 5·hˆ<„ÀüTƒ@$ŒŸŒGðN’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=֯Ȓ`p¨õù¦ÿS'ÿ=Ö¯~gÏø$¥Cx}Çû’†þðû÷,§õ,æd\ý•?œº±À-ÑHõ7—í0û‡·oÔ›×q’ÌZëµÖºáC„7Ù¹¶½¯xß IÚ}/’8oï¸ÿrPßÞqþå™ÿ806¼Å›ëx¬Õì—9¿Iá­Ã£œh•ÛôUvMyu¾–ã½àY·Û¶º«¹ÁÆ~˜ÞxÓÍ%:ÐßÞqþå 쮊,½î–TÇ=Ð ÃFãrÎÿœ}**—mqd{Ò×¶£0òîpÂå+3Ð22›[éQ|WdnCÙ®ÒáÛÅ%7©µ·S]Í6Ö5í˜p÷© tÿù?þ"¯ú†£¤¥$’I)I$’JRI$’™m—÷¦†þðû÷$þ~Cò!ddãâÒëòlm567=æ“|I0RXoï¸ÿrPßÞqþåŸÔ:‹±úiͬzG}l%Žhh²ÖT^öK] tÆ… rªºÛsuBǰ]HŠÜÆkêEöŽ}²\{’Xoï¸ÿrPßÞqþå—•Öꮜ›j­þž-ŒªÌ‹¶™6W]®Üv‡ŸÍ‰ þ=ÍÈ¢»Ø×±¶´=­±¥ê74ê’JZüš¨»—çå=Õ×@ZÇÚIŸ&"¬î¥ÿ(ôŸü1oþÛ^Õú͘9F–ÛEMn7Úme–>Çn{}:Åon¾ßÊJvYïë˜t¼Õ’×Ósjõ\ÇN¥ÍhÆ7D–€|TÖœ×VË}Jl{Íf»CšæØ)÷ æeæ=²’4–voX¯©bôöÍ—XÖß¹à5íqfÖò\âß»â²zž>5⇶ǾI`asjk‰#[Òã )¶¢L,¯Úö·£bçÚÀËsMAŒÚâoÕ’Æ9ð;7é ÓCç_‹MÎs,u•î/ª}2H廽ÑñIK}¯þäÕáô’û^ýÉ«üäØ_Ðèÿ‹gä ?©õÇôþ 1ßP8ïÇõDŸmî6 ˜ñû¯ÙøÀî’µàÿÜš¿ÎKíx_÷&¯ó–{>²`¸X]êÕO­sX7}2ËZ ´>u V1zµ9yC–XXêMìÈ ÜÑa«Û®íH‘§ )±ö¼û“WùÉ}³Ÿ´Õãô”*ê8¶æ[‚·.‘½ô<»Ó˜6~“ˆør¬8§à’‘ceU•eÕÔIû=¾‹œx.,e’ß(°#Cx}Çû–WÕ¾s?ðË?öÛhd\Ü|{r ›Mn±ÀrC\@û’RXoï¸ÿrPßÞqþå”Þ£•_Úz¸ÕÓ苟Xw¬Íå¡‚]av—mh”ìúÁ€÷VÚÛmž¡h%k î8£{öÿ:#ÚOˆÑ%:ßÞqþä¡¿¼>ãýË.Ÿ¬]7 µ´-sìeLkO¨,síqÚÒ*wÒ‚#P³¯áÙÌvWis¬5Øa¿£ŠßhsáÄ€EnÓéx€’8oï¸ÿr 2j~]Ø“e ­ï1¤Z_´ó Nê˜}J·ÙŠâáYhp1ÃÛ½‡Úç GÏÆ±åÞ¡ÿ‰ùrS¤Z ¸iñþäÐßÞqþäŸôÝñ*¦~MØì¥˜ì»&æÑYÑlµÏs܆µ‡@uIM¸oï¸ÿrPßÞqþåFÞ 0E ê˰YS6V œÑ±ÆeÃA'Êõ‹ â[VC‰,0Wî°Ø÷Ö=1»÷«t—@<$§VûÃî?Ü”7÷‡Ü¹efuü\V˜-Ë®—ZÚ¬Ú=â—d6·¸ºv¶Liç+MŽÜƸòàÞR7dÔÜÆaêm}N¸=¡¬s~rôrÐ9pŸšÍþ(©ÿÂ7çê“þ—È~D”´7÷‡Ü¹(oï¸ÿre—Ôºí>쪮}ušqEäËÞMÃn¿F>ô”êÃx}Çû’†þðû÷,‹~°ã ôÓ˯`,tm$ÙUvÝìõG yJ·ƒÕ1sÜá@±»@xõ·s œÍíòÜÂ?Ø’›ßÞqþäòj¦üzI~SœÚàh ëLÏ“QVvü«ÒãoÿÛ{S¢’I$§;êçü‡‡ýWÿçÇ­K¡Púº>-nsZ×K˜ö½º½ÇG4ÁW¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¥’O´ù}ãûÒÚ|¾ñýé)d“í>_xþô¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¥’O´ù}ãûÒÚ|¾ñýé)d“í>_xþô¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¥’O´ù}ãûÒÚ|¾ñýé)d“í>_xþô¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¥’O´ù}ãûÒÚ|¾ñýé)d“í>_xþô¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¥’O´ù}ãûÒÚ|¾ñýé)d“í>_xþô¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¥’O´ù}ãûÒÚ|¾ñýé)d“í>_xþô¶Ÿ/¼zJY$ûO—Þ?½-§ËïÞ’–I>Óå÷ïKiòûÇ÷¤¦Qÿ—úoõ2óÝjãíª¶Qíd»MÄ ÓÍSê_ø é¿ÔÉÿÏu¥ÔEgíO²îƒé}¨W1ßo«üSBî‘nkòÿkÚÐû†HÆœwRÛXÖ±kY2ÐÑyÕŽ•Ñqîmõäö9Žhõ†Ñé‹Ñ·Â-pù¦Ýõ;ÿ5Ÿv:[¾§æ³îÇIJgIèÕ²ÖW”ö2àÆ½‚öÆÚðE³§ô;kuOs oß,õ`~’¶ÐïΟ Ñ[¾§æ³îÇKwÔïüÖ}Øé) Àé!øöý¤ú¸²+°ÜÝÅ®!ůìá-“äý‡£ecÑsKMåÖx{àkâtBÝõ;ÿ5Ÿv:[¾§æ³îÇINOÿ“ñ?â*ÿ¨j:fíÚÝ‘¶Øâ;Bt”¤’I%)$’IJI$’S 2qÚò×ZƸ ¸4hv]ƒk vÙMŒp‡5Îc`ª7»ê¯­gÚ?gúû«ê 7îŸvíÚÌø¨núÿšÏ»%%ÌÄÂÈÁn Ç ¶=¯k鱎x,p±»]p²!À÷p«3¢ô·b¿+=ùAî{ÍŽ²¦XM£m²ê˜ÙÞ"dvÑwÔïüÖ}ØénúÿšÏ»%$oOé m¬9õ^æ¾Ú_xueís¿i<¹ÌÝŽ¾*Þ3ð±¨eä5̬CM–‡º&cq3§PÝõ;ÿ5Ÿv:[¾§æ³îÇII3î¦Î¥ÒEv1äd[£\ý¦¿ÁhŠX܇d‰º±Q2cc\çC ßVÎC~Áö´ë³Ðú‘ǧîái$§7/¡aßm™ ;×x°½Í¨¹í %Á ŸÍ0‡…õ~º…WdØçæÖûl6ÖçE¶z¥Žß¸¸HäëðZÉ$¤7âc_eV[Xsèx¶·F¡Í ´¡NÅ¿!¹6onÉhq w¦K«/o}Žq-VRIMgtüwaW„7²ªEb§1Ä=ž”l-2#”lz¨Ä¡´×ÓK6¶N€Ü•4³†1ßößOìÚzž¾ßO‘·ûyIMln£‹^5U¹Ä9Œh àB£ÔèÀêN»Ôʵ•dP1®¥µÔæ–9ÿá+q]3(»¾§æ³îÇKwÔïüÖ}Øé) 8}¶XÓ~CÍí ¼ÎÑfÐÖ˚ƀ%¬ 1гŒz>%Œ~>úÅuº¦V'cksýM¡¶Ÿ£à7}NÿÍgÝŽ–ï©ßù¬û±ÒSf¼Î™SÞúÛµö»u ÷8Ÿrˆz¦n>*[¾§æ³îÇKwÔïüÖ}Øé)ŸÕÂß×LˆM“ØF64«·_‹m/«í·ÔiníÌtH¢ýÍ?0¡ŒzGØì8¿fû»Õô½?G~ý¾Þ9•KwÔïüÖ}Øé)§OÕ®šÍ¬»ªß“ŽÊCqì²­©å®ØÇ2¶½°X6ô…¦ÜN”Ð&ð÷XÞëZLUoÚÄpô ßS¿óY÷c¥»êwþk>ìt”—£b6›€eVzÕV냚ÇEŒ†É±c´%Ž•Ñ1îWy–––°Ü k,©­Ûû»-pM»êwþk>ìt·}NÿÍgÝŽ’›]>ž›Ó¨û>5ãÒ±¯´?hZN±ñC²»:çPunŽ&­ Žr<w}NÿÍgÝŽ®ôóÒ lý™ömºz¿fôâuÞ—Ï””ùX¡îêù?žßСձq:¥-¡ÙÿgkKªÞÒ ×½®-s{¡núÿšÏ»-ßS¿óY÷c¤¥¿etûjc3:•¹vÖe¹¶¶Ù›`i5µ¢æÈÒQ_Óº+˜Æ ¶Ãoeû^ßMïµ…®ÏwÈÂï©ßù¬û±ÒÝõ;ÿ5Ÿv:JHþŸÑßu—? ›/«Ð¼›‡é°Õ/þV×r!^nN#Z.®ïoošÍÝõ;ÿ5Ÿv:[¾§æ³îÇII}Z¬úÅW¦ö¾0n¤ðÔx- 2qšò×][\"AsA|UNžz±ß³>Éêí÷ý˜U»lþw¥¬J¯s¾ªzÏõÿgzÛ©ê 7îŸvíÚÌó))Ñû^/úzÿÏo÷¬ì¼:².ɰuWRܺ†=•°Ð[éúúÜïðŽÖTw}NÿÍgÝŽ–ï©ßù¬û±ÒS:zoG©Ö;í½bÇ\ÓkC\öÝ¿hú$šÁ1§’—LÃéÝ9®-Ê\ö†:Ë-Ú×9ÍcºÐ^t[¾§æ³îÇKwÔïüÖ}Øé)Óû^/úzÿÏo÷ª9—SgVé"»ò-¾C\ý§³Á wÔïüÖ}ØèøNúºrìÿ±}¢߳нHcÓׄ”褒I)ÿÙ endstream endobj 579 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 580 0 obj<> endobj 581 0 obj<> endobj 582 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 583 0 obj<> endobj 584 0 obj<> endobj 585 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 586 0 obj<>stream H‰”WYsÇ~ǯ˜ÇÙ”°œûx”%Se—Ùœ<Ø®‚$6Šv~}¾žžÙ]H´ã°ÝÛç×ÇÌjq?»zóA‹ûÓÌ„>%}ì}ª×F)‹csÎ⸞ÝÍLl¯'Ë·W¯NA¬N`F•“PxP19«ÅiµŸy'¢ó=^x儦‡¢¾³Ÿ³½ }J—w&õÊðË/³«k#´XÜÍ29Yø"õÅn¦ <‡weƒX¬fô„˜O³äõWÝÜ÷A^¿ãñf½§§,×T²¬wëýY\½}e£øâõ«Ùw“‰B•lF˜ÆN;­Si4L¯¡é­Þ1#è^å(v38±ˆ ÛǤÅvæsû„{Ü ²E0€1'E‡Æq^“_C›ã?páQHí&.FÆç.~m@) ˜kšþXÐX–s‹Áû>Úÿ+ÖøËI~æ•saê``|æà»?M!¸Þù<ÔaÇý¤0Á`ÃÆ¿^˜f±†4Zbl§ h/Û^£aéß»\ìa9«z‚½hú¬}9œ¢€¢êm%à‹Gë *:sa¦<Ý£'¤qDä Ku&CÝIt&³|»@Õ&ЇÞ%3IK ¶”9Iì‰:s†I]Ç…1²eS×s²Þ!Úõ ·»v¾XTD׉öB‚ë8ZàJO]p+´ Z«´[3Y´vky¶vl8Ô~ÂU¨B—êúv!Ž@ä8"c«|­¬7â“yXábõåÛWøôºzóA‹ûÓì‹Åìê "tåÂA† ¾üDk"jºbä;\ÿïñA¤ü.V O³äõãv+®·Ëû“x¿îÐ^ò´>‹tôe#—Ýw|¹}\w?-¾†'Çž2î@ÅQy ?¸›üâ…‚Ôò¼.‚SÍåžY]ÀûªûÐÍq•—›;"³<‹c§ƒ\wsÓ;y¿)‰\§Z¼.£è-`\ºJÀ§óú(V‡ýÝæþñ¸¶Hi¬ËPWUëº^¡V UâTÖ…¸ÃŸ‘P oAZ¹›ò¿ë”üe»Þ­;|XÊ=„0ÝeMŠ<¾S’3ù•*Àã©l«ÆqçßÃãż˜Ue 7K˜#“Ð=%HD_N(Ï»æ¨&ై¶åê/ÈןfU¦#vå0“¯è\‹¿&”nÛì7Te{Ü´ëºçv¤A,Æ•¦ê©æ¬äŽ~×üÖnšu{¨÷Ï€®'GíU¦&꣆ґ-"p|ЛM61îPŽRv8˜ûÂòUtŒ4Ü©Jðþ~¿Â>ÿßË•¸6Œ¶KCb²¼P„J›žß7ÊÖDüùcWF뎙uë#–1ÏÝýGÛJíDuy|n$¨´°ßD|y%ó|üýÛW.Oä7™¬ ÏË7dõ6Y| ¦jÁÊ´`5ZWIÖÊcèó?f:r˜b:ÙWË9)´f¡ØRäžáN¼ùñR:Ï#Xvébj!¾ä„4ÚéSøÑ6+4æ'ͱ^ñظɛJ8 Ö+I†H˜Y(~þ¦ôÜ]NI𢣭 C‡W?$"1zÉ2´yÜÓûÝG³fªB«$“('_XA0ä|I@2u#;0S¥rnÑU®d=Ò¿Å/ °óüMÉç2E˜=hÊ2î^ë8Ìp’ªɉ3JP.¸J C¶W‚…,¨ßÙpe¯¥à¸T½È¾ø"®ŽUF·cw²ÔyÆÚêñJ0–U³j£Œ+÷Ϥ§›ÍéùšãuÆ Gi7Ñ¥>>²ºðÆìS¥a KovõzÇm m’lJÏjLVlÚØÅ9Zíë—fÄŠ¤‰¯]Z¶L"#N¹i kœ¹[Xþÿ;8™Â¾Ùtaø5û®yÖïáR“̦åkâô³ÓMŽrî¯?ž%Þ?¾Zå²BŽ>ÔŸùЬÍÍR˜;ùÚ¥‘Éÿ=AsýEIì&ÃYöÚ¢þ¡Ä×”ëwÔ¿,[βaþPî]Ê¼ì‰ ¦t#&½· ¤ª°YÐF^ЧßÄ•–P›*YRü0zãV[·çC¸ú3¨åéçîíòøh£š²Õ³Œ"<]“4¶Ç½&ˆ½$é›BË«­ƒ/wä[ªb£BÛGÉ>.ëí2jý…FpõágägÎ m˜y}ÒÿG‚zoÈ,ê¿v¡ò û%5ð ‰……Z+¨-¢ÈBƒ™–#aÏC×à ‹.5I‹dº4ì¹#Þ²osWyüúî…Èß°'µ!úÄ¢ä|<øæ™‘½v"d/cÚ„W&ªÑõOUJÒ<k•îê7’‰ö¶×Nª'Šþ|”P "°òØs®Jf§’ ÀÃ\°ÙK!‘!k9t÷N Ó‡Qèrtx—ÞLJ¿ƒÅŒ>C¨â¢`?›+^Xù¶ôÝR¢]¡\LêFEÐ>‚MõÏ4å¡þ¿5µþîÊ>§ì¿ {ÝBŒÖ s»`<¹/Z¢ü\vý”(X´šÍ{ý[S8üÕ„eëw¨²ÇU½”Ìc­­l(Ÿù9:Ô|Ý÷í9´«Å|Ôô„â•§æ‡^× ­†Ø?‹áG;ÐŽø½ç3Ñ£þß0KD•G»sA! *&6¨¦ð©^5 ;ýËÑH«e<©‰XiYz í?®½‘zl›[uOTjºŒm˜=3^£‹A£¹Q5šÓg0´ ¯P£*º×û>h9ùW¾EP®îT J[…Ñ–dB»¨µUó´¥Zýt8÷/À-—*n¥ß[N@¨Ê‡ÔÍBޤÎq¯3IÎ)Ó%èXÖ½œ·@—Ë•}n1Y‹ƒ¬+XTï,sÑÖAõj ï[bjiYÛå½çcÚZ‚¶ÔšˆÑÆß>¿Â,ô 7D{ˆFœÅƒêÌïÚ©#µª°Õ uÒžëÑÄjÖ¶5ôÙM¬2a“–#·8dìr¥@3^Œ=#·è¯ @û…ݬä"0M?ñÌoì9 èö†lúQóq€š>3RLu\»Yцß"¶å¶æÆoÆV~|UÂSz  ŠCú¯~ýº_§ Ä<¤þpÒs‹´d³XL"@çÜ6Sr›KžƒÜ4C=¾9{…>Žã™‹‰ë+ß”C*=VU†ÍåÁÅáOšÅµ€›" ûN0Ä9Ò±dâiCêéß„>m-@MѪÕX³Õ0M}?RÓ»+U'FZ5Íc¸\.csq½Ý‘u}w…M3þÿHö¿F²*DÔ½B²Ê#ÙR¬ðHVÚOC2‚xª ¡OGPVÊ2OêÏ¿| eU€²ò”Q6=ÎAŸ]!}ÞòytåOaŸVúC€9chÍ endstream endobj 587 0 obj<>stream 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 588 0 obj<> endobj 589 0 obj<> endobj 590 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 591 0 obj<> endobj 592 0 obj<> endobj 593 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>> endobj 594 0 obj<>stream H‰”WKsÛF¾óWÌØ !Ì{°7G¶\N­ãÍšÙ=¸r )H¢—"’²’¿_O÷àá’’U.N÷ôóë­no?ju{Z˜Ð¤¤¢ªm´i[‹_c»®SÇ~q³0±\;OóÛ‹ËSP›˜±í’jqhcrV«Óf¿ðN9Û€ï[§4²<ÓUhºÐê|gRÓ¾ü~µ¸¸2J«ÕÍ¢#ƒªS>K@}u¿h¡¼„—­6 WO‹Êµõê ô,ë Qá#1® ]­^³²ö¤ü©zzzªCÛøªùm»Ûîë¥Çù·fs¸¯Yý°x³Bþ`% bPM9º/Çë¢iÚ4¹ÍÑRÜñ§êê]íšX]}È?êm¿ÇÁV}½tÕq}>Õ×ÐèÅ…­UKÝ3ä"@àä"Ûþ¹^ÆÆUokSéX/zåÕ«‡c½ÔüíNéŽÙß)ÓòI·%ã?©©mP°è<åÖ6§^kë‡;Ôž\e¤’ EW,:ìÚ0+°Ö%¯ ˜]ÞQlµ~àßsÏ¿Geÿ.HI%|£Sˆ“‚£­Åœeco jTE·MðÄqÍÌó–,»jË·ê|'bêòÀ§c_û½U –ˆ!4^ù¨–ðQÞÿù›ÚsÇ·ºq‰š¦sÊê*-Mñú°y¼ï÷guñþÒ&õýëËÅO“BtÿhòZÛÑj§uÊåÀ äA; ,ú´‹FÝ/¨¸Æ`›€ÞCÃìf‘6ƒÖµMèRK­Žör^“oÝi—ÝøÔ˜ÔMÝL8Ϲy9³Á‹÷Mhý_õ"Zÿ2ϸA¥Œž¹9Ϲùƒd´ÁÈÆõ{±iguèšÔù¿P‡bTš*FgjÏû^£Wé×»Žm‹ð½X°d’ÍO“(,¯Rsƒ qBb7ãÐds­œ1"“P£I°cÓ ‚ÁW‡!:¶B£cY#ÇœÈ6£e¶hoP¢!<§Æ‘]pV/[Ç„mÆ1ÆÅ[ö¬ÐnÈBæHÚr/Y{Ç},|+I`õ$0Û8Ь &âìf*Ínq·˜”'õ ’y”úE™ûÈH$Ã6¨QØO'pûŽ%:'Ðu~FÛ0hÇ8‘гIÎÈ^éJ5"£ÑJ9Bâ ZAÛg/ò]i*Þ:èôVKòÑußplîgzýw3€žã-l/ÿƒñbPñ:®S¢8§Éâ—È Ê4‰&ÓQ³Ú2›¬AUâ˜ä³à Zs ¶FgZâܲW­GØGÛqâ£h ¥§¬›IɶXˆ‚âè#¥4‹¢ä9ʈ÷p7˃¶˜™dŠg¦H€Ž~ÀŠ5¬a)W´TŽ^JÅGùDA8†=XVbÐ!‰‚‘âSRcŒ.?aÆ,PÓ8ô“t\ œ7〽i§HþfKáÙbYƒ±̤L³×k”àzޏâ£?ŒGQz¦DYºjÌÃÓÍ™–¾,H”αÂ'†l6F´ó#Ø#YªQ8R®¢_ª9Ÿ V°¦ìÊ ÓbeÇDNÕrtd JR‰_ñ})0´etò ÃÌ•ÝØv µi¹ñc zcž‡èò”êf±M3 ÉÅo|t)M¢@“éIèA&IP×NrŒòjS0] eƒ(xÍvlÿ'[u¤Ç9a*£EÂp)¢Œ¦“%ŠÙMj³íã$̾·eÖe%¹N`½”¡qìŸÖ¶,öV^åaÃ(Ó+†›Ôi§g\Éb¡ÔzôQº¡DQº¥DYºiL£ô[ITÚQP(í: „Ø¢ìrcýæBOG¤p¸TÅB)å|"6xÓzóþrñÓââíG­nO‹ïW‹‹+«´ZÝ,4¾Ä¾Zŧ¼ÉðÕúruï…[|Mµ­vjµY,éˆW—ÕÓâSõæþ¡FöÕ¹n›Xý®Vw™<ö§»C>íjȇêZýØß®Y´Wÿ®£iRµ®Ûj÷Ø×¿¬~@0Žƒ¡ªK>P(¡£—¬yöðu“cxUwxÓ¬¾’'2º$/Û>ïzõT/QÜê®^’`¿Wÿ¬—€¶:Ö:T‡["bu\ßßOtÞÜ×K|Vçßù^աʆRµeÎùN½¬—¿jwÞEºÙ|O*®;–¸V—‡ý‰Î¦:¯÷g9ªm9ÀEw×oÎý5XU£2X-¾°4ÐK«× EÁDKYöçþ´]¥ÖêñTÀ q­–×ýÍvßãVWׄˆ¯Ô×5êÐçÕ]OÔöZ±>qÕþ¶gÇøÜÅf¦^ÇÔR Ë®oGu¾ËÉT89,ïœW°ï®L%²"zøº•›þZeT}µg ðŒßþL¨»ê]#½c¤‘}i>áC*àk Í£ÇNnõz}^£û³ªW_þ° ñ‰;v¡Oœ÷ϧ>ç­N›œH¬z4Úù Ný™¢Õ9úëµëZS­7Ùõáá¼EO”lÊXÚa,óI£Ì¦0Ã(Øã4›l’’Â$;±“OÚÒk€ÒÑOLu24å%¡7¿‘ ÍZýãp»Ý¨«Ú¶T$¶£z8öêÕfóXäøC>sú³ ×>¼<Þö»ÉÊ„–a—©Û­?×KÂ|Wju’¼¡«D‘jšnb‰ôž÷@ž(jÌP=ô{¦€ÜfwØü—OunÐ+¦ÞÕ”ùÕ5lò•ë™Ên!/ŸeÐaFýë]‡ê½:ä² ã$ªG¡?? CÆþzÔþN­9ÀæŸ;£Ö1jO¼AîÈ”¡•÷HÀÙœ’£¨ ÷|{«n„q¤˜ð(©–5e#F$¦i[ú†S ÅÂãùC{×»ÛXŠ Œ¾Éƒ.žoïìDÞr<Ê,ËH¢Ss^o»àÆõò?Æ«`GmˆÞù IUk!ŽMÒk[¤=¶»½FÄËF‚¤Pûí÷½'ì²UÕdlgÆÏï——IpÀfq0uÓ´,Ïû®ÞÓaü)Ƙ‘NɸÜâ"îbOä3Rw"4;nySPÞêítÓ¹qm½0¨ÿ˜•¨¯á©!Òå&k†æ)ÖçË8Y€§W`Y¢g.ÿIŸ¦Þ+å ȂԪ¶!bWCŸFò$Ýnû YÍ ¾ãžÛäˆ0\ßó V¯rí(e«y"XH™Öc ñV`Љj‚ ”óìä„7äñ4­˜‡ó©žc#ƒ¯lùL:£ÐzA£6ÀÏþ€§œâ,Ú8é„z¯ûYZ«¹ SîåR^.•»‡(MF:Þ»šŸAÉÌÜÍœåÁ¿˜&õkÝ2†MV錄EnRmƵ·—/L‡˜¨s-,UÈ• Ø­öDêe§¦g¥¥‰%õæwj=¿ÿÍz}'§I›„i¹¡¨€«P$*ØQö‚+Ã5§¼œØÜ'y"P² í…ÅŽçºeAÑjܪÎ$:üC¥{áç娿“ûHú›ýŠÈB`Kñ˜U+ªœï.Eý>ëd´@&ýèH']ÒšÓèØ8•›±Ãò)ìòo¢‚Zsü,!x¯›Xç§à‹ñ¸Ú]F†ºPTmæµ÷â‡qV>ý‡×­Àîý ¦ÊÃäÖ¥šàh¥ñªSó"Z(9ƒ‡­ÒTTºRüü8;Î|…WënŠ*g:Ö­ vÁœâlóÎtrÌŒ ‹‚‰%$=*6;˜ö„Vÿ˜æ´~œb¯s6ðtœ‰ÝW•[Iù\YâùX‘¸o§Êä9(s!ç¾=ÌîîÞ|ê±Á—ÿ‰õJÄÍœYàq„4N4#®”È8ô2“à^Œ–Ô:ŽNiþ`¸8ÊH endstream endobj 595 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀ„"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?Ûé];êØé̪ší³ ¬‡MU[°LVwe©t^N©N%·Sc}5‡fæ+i½*êѺf>F;.8´RZ^`µí`üÒÝFêyC/É…•[w0ˆÐ)€ÛEß@1¿ «þ ²xà{yOºôÿÍWõ<åI¬«`wѯ/£÷§ô©ñ'ûƒÿGà®^?ê°Ô¼Qî¢?˜§‰“UyöñàŸuè)¿š®ê~‘ðSôêýçs2XéŸÞú<ø&ô©ñpÓ³_ß·Ñä÷)^?ꪥâÇuè)çU}»oÞRßGú æ«úŸ¢½*|O‡Ð||> ý*¼O=Øï¼û~à•ãþª½^(÷Qþ‚ž95Wß¹öýÁ>ê?ÐSáüÕsðú<þE?JŸxýOÇèòSzTøž8 Ü=¿yJñU^¯;¨ÿAO< «íØ{xñ)·Ñþ‚ô«ÑáÒ§ÄžßAñÿSÀKÒªy<Ì–;ï>ß¹+ÅýUz¼Xn£ý?öÕù|’ÝGú |?š¯îú<ø©zTø»ü×ÏýO%/JŸá_÷}¼_ÕUKÅŽú?ÐQãüÕqÿSÀñM¾ôüMUýÿGîDô©ñ?æ?ÿ#ÀðKÒ«ÅÞ3±ßÑå+Åý_Á¯¨ÿAO‡óUÏýO)n£ý<ð*¯îß¼©zTø»ü×ýßGï)zTøŸ øø}¼_ÕUKÅŽú?ÐQãüÕqÿSÂ[èÿAOΪþÿ£÷?JŸþc¾ÿ£÷&ô©ñwùŽÿÈòâþ¯àª—‹Ô §Ãùªþï£Ê[èÿAOýµ_þGñRô©ñ?æ¿îú?zJŸþcÿò<%x¿ªª—Š=ô §þÚ¯ïú<'ÝGú íªÿò<©úTøŸŽÇýÿE7¥O‰ÿ5ÿùR¼_ÕüRñcºôÿÛUýßE-ô §þÚ¯ÿ#—¥O‰ÿ1ÿwÑá/JŸþcÿò)^/ꪧâÇ}è)ÿ¶«ûþŠ[¨ÿAOýµ_þG•/JŸþc¿ò<¥éSâÍþE+Åý_ÁU?;èÿAOýµ_þE6ú?ÐSÿmWÿ‘áOÒ§Äÿ˜ÿü zTøŸó÷ý¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ5ÿùRô©ñ?æ¿ÿ"•âþªª~,wÑþ‚Ÿûj¿üŠmô §þÚ¯ÿ"§éSâÌþE/JŸþc¿ò)^/êþ ©ø±ÝGú íªÿò)o£ý?öÕù/JŸþcÿò)zTøŸóÿ‘JñUU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÌþE/JŸþcÿò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸþkÿò)zTøŸóÿ‘FñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTøŸóÿ‘KÒ§Äÿ˜ÿüŠW‹ú¿‚ª~,wÑþ‚Ÿûj¿üŠ[èÿAOýµ_þEKÒ§Äÿ˜ÿüŠ^•>'üÇÿäR¼_ÕüSñc¾ôÿÛUÿäRßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"•âþ¯àªŸ‹ô §þÚ¯ÿ"–ú?ÐSÿmWÿ‘Rô©ñ?æ?ÿ"—¥O‰ÿ1ÿù¯õTüXo£ý?öÕù·Ñþ‚Ÿûj¿üŠŸ¥O‰ÿ1ÿù½*|OùÿÈ¥x¿«ø*§âÃ}è)ÿ¶«ÿÈ«Ÿ³€u {1ü‘[ª¯còÛ~ØÊÉU½*|OùÿÈ­õ[^ÅÏ4`¶‘^<ٱƑôˆÙ»àSg(iÃÁãt%Öп¦\*Ç{0Ùk²XmkŽ Ú §‘Â>7Ú,{+Ç¡¾“Kísë­c[Ëžç7Ei½A‡¬Kªß]L¨ ®±Ž/¥öØáYÓô¼GiQfp9—ä°\:€pȨ5ìç Çm$m- ¢bˆu­’AÓR×û8sžÚqèÈ´9XЋšÍv%Íkì†Ú@¬œvˆæ†û5‘ª¿ûd†ÚÚém-¦X+溶:²òãŽD»v°Ðž®´úìcÅ`†>—mw¨FÚqÝz¼»ËÍ1û°ûB¸|KCìwû‡ìñú7?õvû\xÙ¡*_³òv=ÿ`lVæ±ãÐd‡?è»'Ugö›]±–Ôm¥·¶ã[ˈ"º,a ¥3ô{wEo[‡zKio/éUf<´¶%–vˆ:ù$r݇ÚÃâ\çaÜÒðìƒSwÙ8íö´þs½š 7Ñþ‚Ÿûj¿üŠ¿nx~éìg§Œ]lcœËs·;ÓníÄÄhTý*|OùÿȧÆXÍñŽÛ ‰t²Ã}è)ÿ¶«ÿȧßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"x¿«ø"§âÃ}è)ÿ¶«ÿȧßGú íªÿò*^•>'üÇÿäRô©ñ?æ?ÿ"•âþ¯àªŸ‹ô §þÚ¯ÿ"–ú?ÐSÿmWÿ‘Rô©ñ?æ?ÿ"—¥O‰ÿ1ÿù¯õTüXï£ý?öÕù·Ñþ‚Ÿûj¿üŠ—¥O‰ÿ1ÿù½*|OùÿÈ¥x¿«ø*§âÇ}è)ÿ¶«ÿÈ¥¾ôÿÛUÿäT½*|OùÿÈ¥éSâÌþE+Åý_ÁU?;èÿAOýµ_þE-ô §þÚ¯ÿ"¥éSâÌþE/JŸþcÿò)^/êþ ©ø±ßGú íªÿò)o£ý?öÕù/JŸþcÿò)zTøŸóÿ‘BñWðUOÅŽú?ÐSÿmWÿ‘K}è)ÿ¶«ÿÈ©zTøŸóÿ‘KÒ§Äÿ˜ÿüŠW‹úª©ø±ßGú íªÿò)·Ñþ‚Ÿûj¿üŠŸ¥O‰ÿ1ßù½*|OùÿÈ¥x¿«ø*§âÇuè)ÿ¶«ÿÈò–ú?ÐSÿmWÿ‘Rô©ñ?æ¿ÿ"—¥O‰ÿ1ÿù¼_ÕUOÅŽú?ÐSÿmWÿ‘Kuè)ÿ¶«ÿÈ©úTøŸó÷ýÞ•>.ÿ5ÿù¯õUSñcºôÿÛUýßE-ô £þÚ¯ÿ#—¥O‰ÿ1ÿwÑKÒ§Äÿ˜ÿüŠW‹úª©ø±ßGú íªþÿ¢–ê?ÐSÿmWÿ‘åOÒ§Äÿ˜ÿ¿èò›Ò§ÄÿšÿüŠW‹úª©ø±ßGú íªþú?ÐQÿmWÿ‘áKÒ§Äÿ˜ÿü ý*|OùŽûþŠW‹úª©x°ÝGú íªÿò?‚[¨ÿAO‡óUýßG•/JŸšïü)zTøŸó_÷}½+ÅýUz¼Xï£ý?öÕù<Óo£ý?J¿¿èð§éSâÌþG€ŸÒ§Äüv;ïú)^/ꪥâÃuè)ÿ¶«Ÿúž|’ÝGú ~ªþáíûÔ½*|]þkÿò<”½*|O„mÝôxBñU5/;èÿAGóUÇýO6ú?ÐSÇ&ªþóíû‚'¥O‰ÿ1ÿÑû‚^•^.ñúŸÑå+ÅýTT¼Xn£ý>ÍW?õ<”·Qþ‚žxWÛ°öýåKÒ§ÄñÀkþáíûÊ^•>'Ãè>?êx ^/ꦥâÃ}è(ñŸJ¸øýî£ý?:«ïßèóàý*¼O<–;ï>ß¹/JŸìºêy)^/ꪥâÃuè)ðJ¹ø}|RÝGú æ«úžŠ—¥O‰â 5ÿpöñâŸÒ§ÄŸì>?êx ^/ꪥâuüÅ ½*|\4ì×÷ì=¼žå+ÇýUT¼Xî£þãÓϪûvß¼¥¾ôÿÍWõ?D)úTøŸ øø}ôªñ<òXîÝÏ··`•ãþª½^(ŸèÝú~‰×Ò¬väû~åÚôîƒÑ¯ÆkíÄ¡¡¬Hª¡Ëé%Ì>+Ž{*ôÝÒAcɘþ¯%v´»à \ŠÛ‘U̬½…ÅZÖètñj‡7 áᯢüw­²Éú½Ñ)ÇuÕâÐòÒѪHÔùµO+êî57dâW¾ð\Ö²ŠÈϼé*ínçØx´·§¸=Ä<»PA˜"5OízuÔöoô˜ke®®ZèvÇ0¡¯í;z?Hc({0¨ý>àCª©ÑµÁ²­ªVôŸ«•g3Ø`ßdz`QIeÀú\65V²2+Èô 6–ÑôDîž<œ'~N—ý¡ø•ºék½Bÿt²vë·´¥^ p¿ct¿ùñû?ì´ú³÷Ç¥_>¬ÌlÛ=¦8IYõ]ÿ=imö~ÏÙ¶NÝÞ¬mß1ªHQK»›f%¸›€4d\(¶Âè,u€úGRãiøªõõÚ}1m²Àu5Öç½¶>æÔ@þS*ݵRêøc©á¿ ejíakw8Áik¥¥¥¤J­gCÄÈ«ÓÍÈ7 [SšÆ01¸ûý1±ÂÆ»ùǸ %̓õ—¥Œ‡:CÜ!¯ú5Õö‡;Ž fZ{öZ[ßûÇïYt.už¥ ½áÔ?ví°ì`6††È86Zžµ¼S=ïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐýZÿx%ê×ûÁ%$ÞÿÞ?z[ßûÇïCõkýà—«_{ÿxýéoï½Õ¯÷‚^­¼RMïýã÷¥½ÿ¼~ô?V¿Þ zµþðII7¿÷Þ–÷þñûÐŽE†›xêa?¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ–÷þñûÐýz|}ézôþøûÒRMïýã÷¥½ÿ¼~ô?^Ÿßz^½?¾>ô”“{ÿxýéoï½×§÷ÇÞ—¯Oï½%$ÞÿÞ?z[ßûÇïCõéýñ÷¥ëÓûãïII7¿÷Þ”Ÿ?^Ÿßz^½?¾>ô”’OŠR|Pýz|}ézôþøûÒRI>)IñCõéýñ÷¥ëÓûãïII$ø”ýz|}é$¦µÝ]µÛè×UÙzÇW^Ù. ‚HöØ|S¿«ÐÌ·?{XéÌ‹}OCÓ2í“ê{gtyÂݼŒŸV÷n¯í'$Ö74ëŽÜ`ÝÌp<Èö`2¾Ÿöhe@¶›X_Iné{\ÀuÜ'çªJgGPomí³ÆK½<‡1®,hiuÙcÁ`ÝÎ…æãŠÃÁ -õ!Î%­iÉ €°nè9Mõ€+ûC…í«x¦¬C_é*o¨\}ï­“=•œŸ«Ud6àïOuÃ,‡Á‡åZËZÿ‹!%:Tõ,[ª²Ñ{XÚöݽá»6=Õ’ý} –%J¬ÊîºÊkyq©•Ø\ ´¶ÝÛ H:ý²ÇAÈYh²ákí :_’3?O®º´7NÊßKénÀ6ðócÒ ×Z÷G:Mº|Ss¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ–çxŸ½4 ¤¥÷;Äýénw‰ûÓAJ J_s¼OÞ«çõ :vÙ¹VútPÒç¹Æ€3 G‚ƒ›ˆÜÌsCœêýÌ{^Í»ƒ«{liÚæòÞá%9ßW>²Ž½U¶²‡c6°ÂÒmeÁÁåâA¤ °‚ ±O]Ç»8ôæ²ñ–×8[Qdzloѹÿ0‚gÃCÀéÔà‹K ²Ü‹ ·Þö°=î?½é±‚mêè:œ±›]N{ßc²78ØýâÛ>æq :’–Î'öïKÿ‹ÉÿÏu«òU ïùw¥ÿÅäÿçºÕô”©)IIEöVÂÐ÷›µ€˜—A0>A%2’”ùªŽê5; ãÐ×^k1{˜=µù9ÜO’Ú] qkC¡Ö€v–ÉŽu×IPæÏ T$@24ˆž€^öÈ1Hôñt$¥%gÝÔÝUÕÑ]@›+}¡Ö?Ó•À%Ú™A¯¯:ça²¼rÇå¶ËÛIŒ¯MþÐwíSˆ’.”0ä"ÀÓ}Çð.´”¤¨R÷½»¶щüw) ÆU%))$’•%))$’•%))$’•%))$’•%)+;ª}bè}"ÖUÔó‹e­ß[^e³íiî£õ› u!yÁͯ bÖm¼´;ØÁËŽæ„”éÉJJË»ë?A§¤Ž²üÆ~Ïy-®àïp‘±ÄûOeo§çÓÔ1†U µ•¸õº§éßcÀ0gB’›2R’’¶ÕMo¶ç¶º«ϱä5­hä¹Ç@S))IXGëßÔðH=V™ï‹n»mm¶·×`cÚd¸H ø’™IJJI$¥IJJI$¥IJJI$¥IJJf¹®šCàƒ#ðN’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%))$’•%$’INIénÍéÔåݘ,¸9Î ±¢æÀ™ì¿Ø ÿ¹ùßöë?ô’ŸÕÏùú¯ÿÏZ))Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ìÜüïûuŸúIj$’œ¿Ø ÿ¹ùßöë?ô’_°ÿsó¿íÖé%¨’Jrÿ`3þççÛ¬ÿÒI~ÀgýÏÎÿ·Yÿ¤–¢I)Ëý€ÏûŸÿn³ÿI%ûŸ÷?;þÝgþ’Z‰$§/ö?î~wýºÏý$—ì Æ¿oÍ1ØØÏý$µIM ÐÞ½ÓÑW’ÿ­Ö³>·X÷[ѰØ÷Wëç¶ËK4>–;uœ|Ôê?òÿMþ¦Oþ{­VêÝ'73©àgbÛMc ·5͹®xý0 ÜÖµÍÖ””åYõ›ªýŽŒ†ŠÛoUk%ºQëÜÊh6Ζ¸¸ùˆ[©ž¦üVd:ö`ý²ààÖ‚ñMuí£ý5®?%yŸWÛÓ*ô} :®5¬ÚúFÐXk;èe[ÜÆL{ý«K ô¿ÙÝ6š®c>Ôw¾÷4Oºç›^Ð㩘óHn˜$]»£éŽÄ¯¥âãÕfç»Xæ°‡sw=îu%为‡naµ ìpvžv‘ÏÍ]§EL¨8˃'Î3ús3›XsÝ_¦é‘¯–ªœ®,“âýíõùô—Û£0Ì8ÉÔ ³©½Úc¦äßÖ/ÉÈ•Òʨ.Ö·KŸìž8å¬|Ëz«ó¡µT1¶½¤»G¹ÌÔ ®ÒšJphØVºþkNiß(†ÛíY¡À{ŒŸ„é$ƒ’I$”¤’I%)$’IJI$’SÂ}o{™õÿêû›ŠsÈ¢ÈÅnÉóº~”†iΫ¡nEŸ²ú㥑mXöŠø­îÿ\!¤på,ÿ«•æýbéÝxÞXþšÇ1´‚»~¥Û„}?§—Ž2±/Å.Ú2*}EÀLoidÇ”¤§ÊºÞ^gQÿ3&ïÒ»¨=¯ cÒfà×mcZhooW]Ôz—Z»ëN'ÕL,çcб†FoP5±×Ù¸ v4Ÿê§·ê}ZÁè5á˜9$dzb\IyÚY¿O§â´zÇÕ–õ©GYÃ˳¦õ))¥õS¬õKº§Uè=VÖådt§7f[X+õïßhÓw*ã.ÇXz'L¶ÓONÏÌ Íx06´Öçx{‰ùy-ï«ÿVèè®ÊÈvE™¹ùïõ2ó.€çÀhEºñ%Yë}§õÞžþŸÔ_SŽæ¹º==ŽƒJJsºÝŸV>¯`6¼Î•=?ikÍ8­²¶ ‹\cnâí$ê²:çÖÏC©ôž‘ÓïwLéÙ8¬Ê³&º}[[K5WUme±£ ûQïú…Ô²°fe}cË¿§˜¡õµÄµ®{žN‘ʻվ¤âgŸn.]ØÝ*¶S‹™VÒý•€°{w}ã’’œvýhëŽú•Ös]c››Ó®mX¹¦°Ãeeõ†Øk{$´™öªöõï­øý]ê™™Õ[WU}UY‚ÚZ±á¿¤}¿H½Áóí€ ér>¬åæô ÎÔzµÙ¯Ì-ýnÊÚ ×5á­cHýß¡õ>¬ì„rX莩Ìx`&ÏI¬l¸m¾i)Âë[sìëÝ[§Ñœþ›OKaf+j Üëò#Ak…V†²G’~µõ«ë~¬t£Žá…ŸŸ’)Éc˜6º ™®i-k‹gMVÏRú›ëõ«:çJêWôŒÜ†íÉ4µ¯côvºé¬ÏŠ'Vú¨þ­Óúv&gP¶Ûºuã!ÙOc\û\;8Ðß.RS¯•™ÒpqéêiÌ˾ëââµùn3]8õ;xnÎ$ƒ#À®{¯už£Ñ~¶ôüÜ‹\î›KÝFEµ6Œ€ÒÛ&»+h†èÈñÔ®£ë7ÕjúöFeyvôüÜ—Ñ‘P 8ÉIoqÊ©‰õ¨u Ÿ}˜V§U›Šý]as Žºgt¹Îú=ÒSÎtî¯Õ:Ô^ì,“fGV´cb‹˜Ã^0õ,-ÚÐçn}Ò·Që½ëWNèÝC;ö¦'Ua ±õ2»+µ‚ ˜hÚ]ø)Sþ/éýŒz>_R¿"ŠžÛz}­ø®i{¿FFéÜ]ª¹ƒõQìêõuž­Ôm깘ÕúX»ØÚë¬DlnéyýéIN_Dê?Y:¯Öž³†:ƒjÀéyŒý©®{ª°z-w·hpn®2xŽë´Xýêå}+ªõ^¤ËÝsºµ¢×VZ+‚÷@;Žï¦¶R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%* KŸ³áõÌ—µ‚÷[ê[}­Çx²™ôšÚý}EÝš8E¦¶¬v¾€Ížƒ$×S«p·uQêØ}¶Ì±Æ¼ÊJuÒI$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRR’I())I$’JRIA‰ì’JRI%ð’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JT”¤¤’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJbK·´I#™ðÁ`u«)nn^û^k0êwNevóy~GóULXKƒA–øþqßÕoåz’Jy¾¡õƒ2œË°ÛuT9»HsØÉfËhežÓnâËdµ£Ilò¯buwÛ×oé¯,ÚÖØêÛíkǤö2#ÔṡL¹ñ5ZÒ’Jp1²±Xs.µî·­ã»$Œ[漆ou,®@s [`†ŸŒ¨]õŽìz,s­¦à+È8÷µ¤6ë*n;˜Ö½Ó­¯i‚~mWD”””óùWª¶à ÔÓK¯sAô‰-®¼êñ=Îu‘/c箪ìaÔ)gRµÔtÿEå§yª³x{~•-;Ã>‹g]t+Y$”òõõΩ[‰e­gamvÖNI.¦ÛMÖ4€é¶}¼˜E[˪“c_T–1þ»šKmÙj¹µ´o:×8†ÇÜWBÚØ×¾Æ´ÙÜ9vÝ?$”á?«u6Y{œh®¡ö¡[^ 6}žÚ«}{[$XtÐH…§Ó²,ÉÁªòácž ¸LqZFœ‡y ÒI)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦?¤ðoùÇÿ —é<þqÿÈ)$’˜þ“Á¿çü‚_¤ðoùÇÿ ¤’JcúOÿœò ~“Á¿çü‚’I)é<þqÿÈ%úOÿœò I$¦ »pk€Ô “Äx´x©(ÿ„oõ]ÿ}RIJI$’SõsþCÃþ«ÿóãÖŠÎú¹ÿ!áÿUÿùñëE%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’S_¨f7#5Ì6 zÍ…€Átv“ÂÈ?Z2AÙ¼݆ÿé5wë'þ'ú‡üC×>ï¤~(lرÆW}?ùÓ“ÿ•§ÿbÿ¤Òÿ9?ùZö!¿úMe¤Â=ˆxºŸó§'ÿ+OþÄ7ÿI¥ÿ:rò´ÿìCôšËI.¯b.§üéÉÿÊÓÿ± ÿÒiΜŸü­?ûßý&²ÒK„+؇‹©ÿ:rò´ÿìCôš.Ö;2shijÑö‚æ¶ÏU¯‚Ö:ÍZÞÌXȽ?þYéßñ¶í½È<1$^\’I&µ”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•ê¶gUÀµµdØYcÚ^Öµy- ý]ÝYÎ;ú­ü¯UÛ‹yë#,@¤bšwHyµ¯ˆø”“/2£v9s«Ù.c™¨ÃÚÓÝ9¦!Àîú:óðE2ÝÆNéæVmlÈôêg¥eN¢»löckv{µžRSy%D·;}±šî2^AÜ ¸:ÉÕ³É0‹xÉ9uz{… ‹u‚îno-ñ””ÙIQ¦¼Âj7ú‡mÁÍ¿Á–¿h°6‚FîRksXì`E_¬âgW9:†ˆø$”ÝIê9‘ &îUKëÈõ-uaû^Dl0IÞã@îPÜìµzAÎ6É xÛ´¢œa%: šæºvè$3rqƒ¬,ÜíÎ{¥¤n;}0 H4S“[q«÷†±µƒî=ÄÛ¿]}¼$¦êJ³j¼âÑ[žña5›ß¸nƒÍ ›V[@6:×µÁ†Æ‡ ÃWî ˆ#M½ÒSy%Aõõ\’÷<º¶¹­?›³Þ[µÍ3¿Q²GÙ˜Önu7í3·’à~—`ä”ÙIQ4×q-¸dǤe¡ƒômÝÛç¤ï´ ¢šîÚæÀÞép>£d¼¹Çóe%7TœÜÆ cÔ{·n°ÌèlÔ@-3‰Ÿ½FšóZìfPVÖ7{‰.;ƒŽýÞÿÎoÊJnjkÅn{EŽú,$€åMSÉ®Û>ÓSj/õëcþ/ÕÎämT/f[òmôK–8edAÜ9fíøÊJo¨zµzž–öúœì‘»ÇèòƒGÚF]ž£]èè$Ëd8mwÀ|eF¯´×m ©Ì´z…–ˆ,qq/k¤Ÿ>á%6ÒT^3× ÛiFæë^Òòç];¨Éõç\ßP9Íý=4”ÝI·Øl ŸkÞHN›ˆù€ÒR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI%ƒÔz&^WS¿&¦RÑc’^álgãú;ZÏ¢^àãîíĤ§z\ͽ ¨U›’ç Œa™ëY@—–sA´6¹pìD÷*óz}Z]mu¿ì÷ääVþl›,{è`±À¹ z…Ç^@INÂx> ¯¤eÓÕ°ò_SNË®6^Â^ç‹sƒîvÖÁ`p¬I3ä€~¡ÒLþÛëûÿ˜$§[ë!°zƒgÜqÞC{À‰1ó\û¾‘ø õ¯¨ìÅÁ»8u~¥pÅ©ïôïÈÞtöŸhöŸÎñFwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷! ÛÓ›Ô²ð°Ý}ø¢Ëœ}lgúv´ÜïkàÄÆ¨–äù%ä÷P|%¦D‘#]Aƒ÷._þaSÿ—}cÿbÿóø¿SÓñïåßÔÝ}ÕØìlë·RæWs- ËïsYÂcIéá%Ïãt ʱê¡þ—¨Ð̰ç9øÍÑHp—0&G:Žèè6Xük3j¡îÇ·G~“ôxõ:¢à\Á«Î×G—))ÝI`bt{ŸÓè¥Ø+éÈlw¨×ïuniƒ¹ÞeG©ôš=jZüjhm41ĹõŠö¹Î©›ºÖ„'¹ÖSФƒ„dz »e5µàòÐGÞŒ’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåz’ˆþqßÕoåz’JRIÚ%Àx˜Y}c%íÇ·2–6ŒÊì²—Q¹Å¾ÜYcN¤¹¼m’S¬’Ï«­áÛa­Œ¸–Ôûž}7{vÚ0¯cÞ/Ǧ»'s¶ «x.ÚÜÑÌÎ’›4}\Á¡–1¶Z[slcÛú6¶-sèmU1£ÜɈŽdOD¯§[Ó\_f5Î{ÜÖ^ïSÙè¶°Øw¹°4*»¾°Õ[ni¥ÖÝ‹»Õc uÕ2··tÒú¡ÍðFÅê×äå3˜NõÚfÖí©µÚhb^Ii0J^Î]Ô¶«ò².-ܯu{öXßNÆKjÞtŸ¢zµöÜCœç6½ãc ß]®Ú6÷uMä’ªà}`ȶœf_Šçdd v¹¯` ÿHGæè;NcîEX ˜ÏO ï²àÇÒÏQ¢k²«oeŽqú>Ú]#XóIMÚ:uùVeVçï´8=¤‚Ó¾×ÞO£¬tk´±ÖúU[‰fS²ne5Ò×5¯ôÕ·Û5¯%ÅÄDs›>°Óe·UU±ÕX)¬Ì¿Öû6×8¶ïøé¯’Ju’X¶uŒŠ:&'UÈö´^Ñšà*6¾—j`ßo¸B©Ó>°u À§%ÌvN= dŠƒunM”ý®‘ Ü˵þ©IOJ’ÄÃëÙW[ŽëqvÕ•VˆkÚEOÊu­æÑoa Û­ËÉêwâS1«Ä®§Æ±ö<Û¿é í­ GyIN‚K¬dßÔŽs­ls@­µß—W¨íÜéSk®¾+G§d¿+ «ìXw6ͼo­Î­å³Ø¹²Se$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJBʸãã[êz,/,$4I×àŠ’Jp‡Öºl­ï£ÏÚö0 -³e/"ºìtXÏÒ6–«–urΌΧèˬÅÄëm¨ ÌcœctèÉòVÙ…‡\Q[K}8†üΕ™ù¾.éXÏšìsߊáb;=8ÐÍÚ8nú\¤¦¦/Ö]œÌ (5^÷1£Wm!Õ>â[êW[ý»@ ´} ­»©ís›ö<Çm$nm2 ww•tüvzXõ³ÓvúÈh–»i¯p<ÎÓa%<çÖn²GK¿ìy-nMV3sê-- nßÏÐîðÑPwÒ?Ð}döPt ßgxžðcIù.}ßHüS¢Øåö—Ñd’I9I$’JRI$’”‰‚í½c§˜.ý-š4Iþr/Oÿ–zwümŸûore¹>Iy=W­ÿgùª#!Å®ŠÎæ¼0{AÜ@ç^'Te1n×4žÇïLi5Ît ,1¶N½ýÚq›â¦ì—´8– +I™§F¢zéú6è6;x'uU¸æ‚ ÜGŸŠJ@sHß5ý{žDx·Í« ŒÜFÝHŽx1àúUÄm;Gúø' düJJ]$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½ID8ïê·ò½I%)Q=¦8Í”ïú[eέs‹ý8ah,Üâ@3Ìp¯$’šUtœfdæäX§=ÕoaÖ²††ÔÀ'±(Žé˜½™.¡¾½NsÙh–¸9îõ«H\&ŠÊI)0pë5¹”µ¦ÑYšQßz]7Ÿæ¨k=ÅúN„µÌÒNƒkˆ:+)$¦“º/JsÙaÇõˆcšç¶ l{\;1¿rŸì®7A£í'}ÀçNíûA†ºu–ÁV’IMwtìážêpˆÛöx†Dïˆz§88n¾ÌƒKMÖú~¥‘«½¾©þ¡Ô#¤’šõtìXÖUCZÚöl˜ô‹Ÿ_'óKŒ&Éé¸9v²üŠCÀ\×’[¹…¦$Le:×Óƒ“uz>ª¬{O›Z\Stì'ñPmw¨Ë£šù±áã´‡Zóáª.=ãÑ]®¶†¶u:w'¹<’«bt¾­~%7»«XmlyŠ 4ÜEý‹Õ?òÞßûbü‚Jl$«þÅêŸùooý±GþA”YElªÛMö4Ö¸—ýÖJ]$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’Sðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)"Ëëp5·scs€aº<Ü8GI%5˜üŸT ³@t;7ÓÏšw[`µí—i;"6ÎíßrƒÈ:„šÖ´mh €4 ).±ö2?›!»wÒ $Cö‰ÓÓŽÓ¹$”ä}dûOì<ß¡·Ð~øž#ϺÄwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$÷}~ñÊcII'ƒÄ&IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Õl¶ÒoµfÁè¸2\wnoÑ ®ð*ÈþqßÕoåz”””æßvmmôx°Spnâ*ݸC2ñ?.êÀ¾ß· ½Æ£"K|ïæï’µ%)))©_¤2mÖNFòj{˜\6‘ì |Ð#ËT6ådµîÞàGú3;ý78°·€øÅ_JJJsî~w¦çznŽ€Ö Ÿ¢y$©õ*žûimm.oưîk-_:mÛµ]I%9xÇ-”î5»Õ¨>†—ÄŠX@x:q=“‘{…Íkìs_¼³{#qõ+ä··ÃE¦”””ŽŸSk½B\à÷´8€ hq :8DI$”¥WªÉy¿ø^ßú‡+Hy4ŒŒkqÉÚ.c«.Àx-ŸÅ%!Å0ÜaNáüÖº nÚÂÁ¸ûGuw¤µ¡þ“K(/ýKK`lnïk€?Or–=£ª%µ1¬HhOµy~íIM…K'éEûW—áþÔ^é )É¥·c¶¹¨VN0ÚêY©wè÷z²>“FºƒßàKM¹––8—5¡Ìk›³én¹ìq%Íoæt^JJJsNVXaÕåÓW©,…í°¸­ÞÐæ†Ì}„šýæL ðííЪªªA03q—É1•4”ÖIJ¶cÖ¸5¦ÒÇîwqû¤B…ßÏä ƒ…ÏÇ€èwÒ@ÜDp®IJJJA†Ö6—zM,¤½Æ–[ Óó]{§”t’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Çü#ªïûê’øFÿUß÷Õ$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’TO\éM&ÿæÌ;ôvjKÍ^ßg¿Þ#Û(Ç? a·;ÕÅxk™kxp°†³h`$É hSa%Z®¥sý:îÝÍo¦Cšð^×XÐXð75Ž"GdS‘Ž Xä7ûÒSGë'þ'ú‡üC×>ï¤~+gë6v#z.e&ÖﺋpAÀNÙýèàwXÎúGâÇ/´¾‹$’IÌêI$’R’I$”¤øÕº¯O¬Xúf×þ’¢ñ]Á!ß‘2.¬ôéÓô¶í½È–äù%äô?³ÿ–¿öã?ô’¥o@¹Øy8ã%ö¬š­p´µíc+±…ÐÒÀ×9ÍlºD¶w³÷‡ÞMÕ=åÀ6¿¦|!1¤âdô\í—cbìm%¯}/Ø7;â ý6·Ûï÷ÈÑ_Ã@gßmøâºr[YZXêÚ[·hhÜÈWM•Ž\¡¿3ÀüS ª$àd#]AÊ’™¤‡öŠt÷}#2~å'ØÆuwxø$¦I(‹k$àwDyÌÇä)Úàá-2<~$¥ÒI$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯RQÎ;ú­ü¯T²ó³YžÌ,[Vç1ÌiäÁ~ðÝ+cb4â<ŠJnÙc+a²Ç±¢K 1ûÄís5ˆ{KOÜàvc^0ý)cmk÷Ö~“}¶zŒ^´ dQ~C½µ‡öíÜ\pY;­=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”ÐÊHwÝé4:'s¶øv'Àø$§4}]¢¡8·>‹w‹}@Öºlºðâ×h~–ß‚Vt‹¬À – &5›rK‹îs«sm—Õ鵞ç·_w A™%ïkvtƒ©o©ðNo!Ï=Œ_ jºIN~7ÕÜ\|ª³Ž7ÔàâZà*4†– ãt?Џî›Óâçaã¹Î2çk$“É'j'®ßQµÁÜæ‡ŸîNnÆÇéàÇ$§ë'H郣åä7–>Š^êöVÆ€â ?ÚÐdvYNúGâ¶þ²dØy­Øÿ}/ZF°±ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H˜-kºÇNVÍ£ú=Èh˜.ÛÖ:y‚Kf€Iþw`ÙnO’^OYèÓþŸæ…QihCœíº úã÷,ÿ1ßÜ r€cݰû¨"w=SK; 9†³aÚ`‚ÐLü“³¬nÀãµßLiîÖ~J#4nÚXG®²D#ÍIùE›Ág¾ cg@é)›h q0âñÀ‚ØüS ËÞ×ÚÑ5ÎÐ #X×à•·ì5€78Ö?ñHdX6Ÿ|GÌ–ÿ”ÄcDmy¤l0 ºŸÒDª³X-ݸI#@"I?Å;½³©æ’ßऒ”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)ˆþqßÕoåzÄ«íÿns¼Rh D‹'㢠þqßÕoåz’JdKv†¶yUCš Ã*f÷¹¥ìisZ\ÐKe›Ž²Gúʲ42ª7¾¦Òç³Ó`ÚÀk" ÚðK›ƒ÷¤¤ç"€Ýα­A$ˆ¦'ÈS7+Å€ZÒm$0©ƒ´ÇÀ · ºÜ§<‘]®`¨¸Ãv:ÃÏç9¨¬Ç}y³-Û»w¨ÒÙë áºRÕgbØÆ¼XÖÎÙi"AtÃOžŠG/4¸ÚÀÐv“#žcðP¯ µšŽâ}À~ãlóõ%*ðÃ6òãX n‘ mo©£“¯¾e%2v^3ºËXÆ“Ĉ2ïÁHß@/ÆOGëÇÅa9¦¸°VàýŽfà\Æ}6ñ¶GšLÁØç8Y./õ+.i%¾ÿWoÓ‚7x’’7)Ž®›@ö^àÀI$ ûñú9µí¡ÅÁÁþÝ»&|w÷`‹p~Èl2 ‹¶‚ààíû€âRf l¾ËZ÷m{©-¬ê) ÃdþvÖÏÁ%2¯;Ç5­xý#ZêÉÓp~èÚ9üÕ Ž¡V6ïQ¦úØb ‹>°ØÕJ¬A[X Ë‹"b$Sº;že5ØÝëÜâ7RêK[§Ò‘¿w2ˆ”ÏíTÉipkƒ‹v¸€HØ] Ù“`¬²À}Vî¯ÌêaŠÛX6¹‚ç‘«Nu…Ç^^çIQ«eµXlßé²¶–˜& C\|¯yIIMÎõMUÖl,Ød47wžN“3)% C¿1¤€\fÆÃí²R4X/7WnÀðŒ-Ü o{šA‡éÚ/­þö‚ K¬yo:Ix×É%'®ÆÙ[loÑp‘ýÅIBšý*Y\Éh‚{u1ó*i)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jcþ¿ÕwýõIGü#ªïûê’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥& $pd|xN’JGözÜÖì|@pä&G!Víîn÷÷y‰:Ghhˆ’J`Új`­">\~U4’INoÖ@?`ußÐ~«ŸwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH˜;¿ltý]êÙ΃ú=ÞÙnO’^O^›kHˆÐùÌÏÞ¡9?»_ùÎÿÈ¡—å6·¸´®ö&AÐö˜ÒLka2Z ™?ÛùM–†–Ñ:|yUÍÙ{&6¸nݧî‚`ö&a"˳Óit™t öŽRS6W´Éqq6cAå$h¤‚ ¸Éø…]™KId¶Y·hlº eY¬—1®:’$é‚JS+c$°FíJ’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^¤¢?œwõ[ù^ªgdäTñUz·Ö[¸ ¾°s@Ü~IMÔ• ú—©O®Ñº·±Ïk˜A ±†Ã'ŸsöñÈDv~ÈVCœûÓ¸í­þœˆ’{$¦ÚHºák™]‚°Êa$÷Àø ÙÔ¶W"½Ï5 CC†§`°-;¤¦êH#%¿j8ÄC€:‚Ñ;rš§Ùcì°Ù¶ºžæzmÈgw&O’JN’¬ÜÐDšËNÒø}»=Q÷… 3ÞÐâÊ ¢CIp‘²|}%7U3ò.¡íefs_]Ro­íô÷%¨ú• «CaÁG¨ÆÍƒvœ )¾‡‘sqñíÈp–ÒÇX@䆂ï઻3$ CªÕ’t ñkkÙIƒÊ|û #5Å»¦ö–ÌêÐöGÁ%0§7¬]S.¯¤XYcCÚMô$~rŸÚ:ßþTYÿoÑÿ’Vq2n£’SpE¡‘sÏÎ×™Vð-¹ì±—¼Xúœ^ÙÜÆÙÇ–èIN_Ú:ßþTYÿoÑÿ’Vê7:¦:ú¸Õ빺’ÓTò~™ù¤¤I*ù¯ ¼¼úçµíAvÐÝ“¶Zdëª+3ƒË+$8´9Ò Øê~'Üß¹%6’TÏQh`q¬Û rá¨{^ðLq£ŠÓ\\ÀèÛ¸Ðî`€u’S$ñœ÷R ‡s·<DN×¹ƒO’×[Sït‡2º}V¶#PO'ä’› !PlÚöZíï©æ²øÛº];GI%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’Sðþ«¿ïªJ?áýWßT’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJO&4ñL±.éý@õ,«™C^oÜ*ÌvC‡§S¨ôý&ÓûÞ¦¾ÌÊJvऱ±ñ:³ó1òoiªšê¢»q]c]¹õú³væÍ.iŽÿ×tûœç8u ¦‚I o¡{  ””‡ë'üÔAëŸwÒ?{ë7IÈ=2ü·d=¸ôØçoô¥Àˆôý”³Úî]¯añ]ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH˜ »¬tð oélÔDÿG»ÆP;-ÉòKÉëÒCôþ•ÿôò*ƒÚ×{‹Ã¸°$xHžSIõLÚØÉ,hi<À‰U]FAh>×5Ä áÐZÆýÇŸ$™fö¸¡»}ºvtž ì’›z¤ª²‹ªk6êòy‰§XIØÖ»F“P>×é&~“û’Si% ZöÔŸLÉtq$É%4”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Òuu¹ì±Íõkqå¥Ãi#äRÎ;ú­ü¯RIHÛŽÖzm­¡ñ´qÏÿ8¤qè.,šç<H2ó.Ôç·‰AIH좛\cÈ©<`€DŠk1qíqu•‡9Ó:‘ÈÚt4EI%0ô)õ}]Ÿ¤“ÜAÒc„ßg£Õ7l¡‰v¢cA ?4H)$¤'³cªin¦ ÷u׈Ò8Rv=ik˜3#_Ήÿ©‰$¦/®·¹{CS·ÖOæºÜ>EDcc€Z+h/qɳ韚"I)q±ÛôkŸî3®¾á*´:Ì ª)l¾Ú­k[ľÀïU„’S,»ZÃm’ÓÆ”\ÙnO’^O[ëÑþ•ŸçïLÜŠôliƒŽÈ_³p?î;>ä‡OÅcÚØ_ˇ:‚cI)È¡ ñP~@þB¥eµÔ±Á ðJث۶OçG–èó@€¥evÛ¡"¸÷Hp-< )›¯¥›·< ±»Ëwzpö‚ €#¼ ÄhÝw¿GxhA÷)KmuÌ÷=Ü´˜lò h Ç-¶·KY:qîÓÏW#¤¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¦#ùÇU¿•ê¶gUéø66¬«vXö—µ¡¯y- ö5ÝÕ‘ü㿪ßÊõ]¸·ž²2Û‘ŠiÝ æÖ¾#àRL<Ì|ÊýlgÖ°¸µÌÔA:<4÷T21«®ÆÐÐãKÜÓ[Isß¶ÝãQΫaó°2{Ê™Xõ9kÈ÷89IMGeä2ºŸ%Ûœd†Ì·po»Ø5ƒ0ø¢áºÇäØû §cA»ZÓ¾ÏkLk¤Jµ¸ò=ÒÔ¤§7]o¡Žk™K¾ÐZØþݻΙüTªÉÈw¨÷9ÐÚÜÐÐA-²7ÎÆÏ´ü<–€x{CÜÓ¨ ÈO'Å%4M¶ÛÓÜò\CÃ<±¶C¶èÙ%žà•–±•„Ñ[óì®%á ±[ùÊîíÓ¬‘¡ø§“â’š/ÈÉ/uuÈ{\ö“°?K[ñö8žTñy½â×¹À3Ú @[k7hѮֵXõY ÷ˆyÚÍy:è>äÂêœÖ–½¥¯0Ò bÍ%3I4‰-Ÿp‚Gq<~EdPËo±­°Ä4¼h’’$’bà"H`O‰ì’—IBË©¨´Xö°»è‡'àŸÔ¬ÉÑ.×€$k÷”É$HÔ$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦?áýWßT”Â7ú®ÿ¾©$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’‘]x¨°\_1Qýêå‹Ö°—~h‘¯3ðáàîâ@?"‰¦¢#oH€ è~i)€Êi-†®w¦] CÇ"<’³$V÷3línòd 5à|”EFH¤v#ƒJ“kïyp‡8ÓºJbohsÛØOöCOýù;ìÙQ´7t7tpb%7ÙéÓÛÄ÷=ùuãºBÐã鑳¨ƒ§'Ýø¤¦')vÇ~žÙžA?Á@g4µ®ÙôŒ pŽ7rŽka™1?-åLh¨Á-ÔpA è6ö> )Ê­º¼Ų~ÿæ0†¤äN§hßTQU`Èn³3ò#ø¨·‘NÒKg´™RÃ$ͦHk´üÙ>!ö¶7î[ÿm•gЯ{^™øèGdI))ÂúÃÕ(³¢æÖÖX éx°VS¾‘ø®ƒë'üÔ³¼JçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJb?œwõ[ù^¤¢?œwõ[ù^¤’”9ÕPk/kjm¢ö0²Ç4³cÝ¹Ä¶ÆØDÉ;¤v*úI) U–eT׺*sCÒy·cÜ$ý?z%u\Ì–om¯¤ì‹4iõIi|¼ ‘ü´’SFŒ\† X\ðÐ*6 ýÃmÜÞt°h“(ÊsZlhÓ¾ p®Íäé /ÛGÀ+É$¦ƒªËpª·‹€}•¼´2¹góúNLþ)Û^fëM›ãÔú-1¹ž¤ûêhvi j¼’JiYNSzmm¥¤eRZö3p:‡ÎÒçHàò¡ƒ~=¶VÀC_¤ö8‚EŽc²92>‡â´IMl[Ø)qikqÚæ—ó´¿ÕÝî;¹î¥•FS¾Ðêœv=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJC½Ïms_Ò% wäÝ$”Õõ²šòÄßnîÆS?&ÖµÛ\h–Y·Gží{+iIIH2.{E¤4>d˜ðŸÎ ŒÌ‡nhhlëí ì•m•²¹ØÐÙæ4•$”‡$½Ís€;orHԃ䜾ӌë[ívÒöˆ˜ eM›ýM£ïwIH_uÌ~ØÜÙ|G!ÄéòB99 kwÒN¤†ˆ¡ÝÝ êI)­ö‹¤€Ýä8ˆiµÇ’|”•tV]óÀÊÚgªâf´6vˆ“&;“Ý%5Û}¦æ¶F×8‡â7mç¡êõoûWùå[-i ‘%º´žÓ¢t”àýa·©žš,¦¶Öh~ò:iªËwÒ?Ð}dÿÄÿPÿˆzçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)JXν½S§œv2Ë}WÃlqcOè.™sXóø(¢ôÿùg§ÆÙÿ¶÷ v[“ä—“ÐúÝkþâcìMŸûʨdõ³Óò².et–dW]nßú7ØÖXOªÊ “µÆ'ñ;‰G '—«ë/S9µáúl±¶>·7 A§Óg«­Ns7z–6 ÄO‚·Óò¾°Zîœü·²ªòýÖWé4¼´UêX÷ÉöŽþ:­éw‰MªJiôû²îõ¾Ó³ô/ô=€ÏgÓ³^íÂoq-RIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IM.£ÿ/ôßêdÿçºÕÕK¨ÿËý7ú™?ùîµu%1Î;ú­ü¯P²ç2Á[+6¥î;šÐî#ÅL8ïê·ò½ ü:2\MÃpØk¸’æ»±Ñ%3fM ‡€\Á`i ¤nü”,ÌÆ®Ÿ[{\Ó£`qðlÁx{žû·¹Í‰ÚAôý"öûu»Jo°?kÇ­­…ÛŽÒN×l$KìqÿÉ))=׺« n³kM-#FƒIò ™ŠÆºÖµ¡‚Ã'PÒ$çº{é²ËMŒ³ÓÜÃ[½»Œ2Ó¸AûÐmÀ/0ËKXÆ]×é~û[ç;gÍ%6EµšÃÁxZ°T[sŸak+%Œqc¬$9€u1ä¡öwœ¿´›d{½„Î÷í~ìù¤Ü{e‘oèm%Ʋ٠»émváÏ:‚’™¶ú%¶4D‚?4Iû‚‹óq+÷0má: ãæŽ ö.‡íØ]²}¾Ÿ¤ næ5ŸÁIØ@°µ¯ÚIq³«¶s¨ãbJe“”Ü}Åí$6·Û¤IôâZ<Ú%Ve6†¹¦æ6ÍÎ hæïˆ:è9O“ŒÜ‹¨´»i¢ÏSA%Ã÷g°& ø ×ÓZÊ~«.±À¸IðÙ'†’™Ž£ŠZâׂ[:5hp¯wÂJQ²»:Ncëp{N=À9¦FŒpR8nvóe»½I/öF¦ÆÛ§»!C¨³gJÎ;ªÈ|ÿ\=ñø¤¦çOÊ­˜˜ÕXÒÐÜFZl1¶ÖîóÒUœ\†äÖ]障ӵպ ¢HÔUL,GÝ‹‹cžßDâ6§W´î!ílû÷yx+xxÏÇc…Ø÷n{Ãv=²îÍ )>ÑàLð•qSÉÕçæ’šU出Öz-}~«KœÓìöê`éô‚'ÚqåõY6FÁ"Lè!½9•è?Òýk~Ñ£‹v–»B èxñø*p½=M›Žæ:v‘£muñî{‰’îå%$ûV48ú¬†dhOðDiƒ1ÌkÚUð¯{aÎ5 m¦y-­aUdêûÃ_%u­ÚÀÁ4°ÊJZ›=ZÅ›K$¸m1 µÅ§‰î]Ö>ƽ¥­©ž¡yˆ#¼wMU7W^Ãh'ÞA ^K†…îà’šÌgYe…Ï•š‹uƒ:îÝâ|RJm6°’Ã[šK^ÇA-#±Û#‚¦¡Mn­‡{½KâûÐ\`hÙ1  i)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$™ÎkZ\ã ’TEô’ÙwÑÊJf’‡¯NÒýíÚ =ÓºÚÚÐ÷8ž:IL’Qõk‰Ü ñ¯úø© €f ŠJRJ º§è׃4ñæ?Þ½£f'žÑº~䔑%u'‡f5ðåH8 Ç?=RRé(‹j ðC‰h×’4!1¾$½ LsÜ$¦i!œœq3ctç_’quD€$˜{„”Í%V­û7ÓgYå?«Wï·ï )ÏúÉÿ‰þ¡ÿõÏ»éŠÞúÉm_°sÛ½¥Î¡ð$j°]ôÅ:-Ž_i}I$“™Ô’I$¥$’I)H˜ ž±ÓÀqiõlÔDÿG»Ä4^Ÿÿ,ôïøÛ?öÞäËr|’òz¯JÏôÏû™ÿ‘CuzV0<“c»ÀÚ;™h•bM•µ¥Îp¦ :ALi5ÞܲLj³s^á´í –ó0HJº²CFòKä–»v’I‘Ý_IvÐöíùé /hiàΉ)hy-Þµäý#;`ó÷“[ºç±ÕËšÙÜ LFŽ,G}•×܉hnӯǿŽäõ³Ó­¬™Ú"||Ô’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½J1Æ\ÐO‰MéÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%2„¡GÓ«÷^_¸S(J}:¿p%éÕû%(ÿ8ßê»þú¤˜12Ö€xŸ$é)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$å%,æ‡:‰æ „ƪÜIsfL™ñ¿‘UûFVÆ»h÷n ÀàxßÇãä¦rlÓ‰&Ø2ÁûîòIIN=DAø™2g±3%;+- —nÛ£4›{Î=¶hçWº'ò¡;6ÆÐýÀmv‘2gè¹Ãè”Ù8õÐêgBDk:k¦¾ z;LÖâÉ2áô§üé„!nIƒíkKö‚[:n-ìäf9æ×0 ðï:·ðå%.j¬ˆ=Ãüÿ¥÷¦4ÔáºkÜŽH'ñ^­Í™ÏÒÑK»¹íWí/€Ò[©‰àù&û5É`v„dˆ= è…^MŽ Þ6¹Î‡0`¶>3²¬º´K‹IÒ4ç4¯ )°i¬ˆƒ©BA–€™žÊ-ŨFéqi.i$È“»çª¿ µÆZÞí–ΛövrwdØ×†˜2âѧ0í§¾5II¾ÏX{^$’|ywã™ÑJ¬Ü‹s[íÚâàà­Ñ¬÷‰Põú§ýÅgý¸R¬‚zP=Æ;À?Ï»éŠÔúÃQ=5¯ÇkXh~ò04Õe»éŠt[¾Òú,’I'3©$’IJI$’R‘zü³Ó¿ãlÿÛ{‘0K‡Xéå£qõlИÿ´÷wղܟ$¼ž½EõVúÝ[›,|‡7ÆyQßú&ÿŸÿ˜¨ n s¬hkCÀ™ö“ì8ñLi3uºIn§“¨=»{&8Ôº%³êN¼s®¿Dr„2­ÜѵÑ÷.þE™fÆÌ2@ÞVnsÀ|ÒSu%Síè50ÁËÙûß–þÐàKæµáÀÍC¤‰ñ1ÊJl$ª«Ãƒv LA×q† «i)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¦—Qÿ—úoõ2óÝjê¥Ôåþ›ýLŸü÷Zº’˜—;vÖ¶`I1ÌÿrÄë¶Š²ƒ­Èi¤SïÄfSñr%ÿ¦§cš-Ý´÷w[cùÇU¿•é:ºÜCœÖ¸Ž ‘ðINúÎuvÜÊ+¨×KÝ»Õ/ÜíÙ?eh™;yÜtò]%WÖ ™k1ò½ä›*§kK€{™fŽ­®;£m{¼»’¶àx¶¶wm80%%<«¾²eã`ãÔÛ+7? x²á.õF3òCºÖ¹ó² 65úSíWr:æF9·g¢í…ÎÜââ-,§ÁU^ýg¬vÄñÁÔ­Ã]d‚XÒ@€Hû Ú4 „pBJsp:†fGPu7Š…&­ÛÇÙò<¹Ît{˜EF¼Ç‡ÕhȱÝIÙvW‘ˆKˆ5Öhhú,ckk\,?¼g^†‚‰c $´K†×Ô IO9GÖ<Ì–RàübÇ1æïKqkœq’*c÷ÈsÔ¸"¿ë[g¦Ê\æWì¥ÅÛšZ)Úû¸õÞÜ•»UÕS)©euÚØ@’–ÖÉ;D1©€’œ_ÛŒºªou œ‹qì{ZIw§o¤6Ôo?8o×° hú“£D[ý‰lapqhÜ8t àS¤¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’JcúOÝç±/Ò~èÿ;ýŠI$¦?¤ýÑþwûý'îó¿Ø¤’Jb ·¹ H$gˆòóRQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I;LsRé*gÈ o¼’.G»Û ;¾<ÈS,¾GÒ =îú~5öþ )9­…áä{‡IU›>Îi“냠“;wO;¿wùJ!™‚ÖÄŠ‰i:ñ´ê5sº|{$¦â‹ëe‚7V=­¹Î ‚ñ¹Ð=§ŸqŸt)‚+.õ\`¬™:sÛ¼””™%XÓ+ŠÉý$î%Üý\¢úr}î’é€xÜØüèâx„”ÛQulyÂKx*¹¯#i۸žùîü¿>ÊeÏ ²·;ôÏÝéÄŽG¶9½%'ISuyr&L¨:pÀÓìð)>¬²H®[ nsœcsuÒ ÐŸ$”ÜLÖµ³´D’OÄòUwÕn×–‡KžÓ‰öÀܼwžèu· †íÝ£ˆt’6ü ŒË~))¸ZÒA"KuiðìU ¸_Yví\íÚÈ:8ØóîsÿÌjJCõ“ÿýCþ!ëŸwÒ?©õ‡1½5îËsÚÚ¸#Onž+-ßHüS¢Øåö—Ñd’I9I$’JRI$’”‹ÓÿåžÿgþÛÜ„¥ŒË,ê½=µØjqµðð$Ð]Ø v[“䗓ؤ©ý7þç?üÆ¥^.[àìƒfçD À“í ê;&4›‰*eí{ ·Cb]ºFÐ_ºD™ž_e­}[œÁ·Pv%òÓ#É%6RUk¦ÿgªI!û‰<IŽ¥[¬¨?×t s¦ íå$¦ÂJ­l¸01ûDz€¾\ãí;´æ‘fV×6L™!Àÿ ´7ã))´’«é_ôžI-.Ô8ê=¦ýäÌnI2Âv–hògRÑð?4”ÛIW <^àíÁ»A q&?ÞU„”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”Ä8ïê·ò½WÌê;í¯/!”½à¹tÉÁ:`8ïê·ò½ Ñ×FYlP1 Eò>™°>#žJ_36£v-‚Úö¶cpüT™‘Žýå—VÿOùͯiÛýh:|ÕÛÜÒæÐÆÕ˜0ñþLJmX˜÷³!î¬×½Ï 1®o¸nb<ÒSÔ¦ÜÝuÝN¼|V%–u@üý¿i°o«X 6AÖê‹´gçWºG™T±¿mZ÷Ymy ¿"šÙsQmn mìysœÁîú;F‡¼$§©#Px)¤H“Àîc•‰ÒXoPå6Êñj¥c\×9¢ª¶ípnƹ¯Ü »qðPµe†öã»#qÈÈÛcÀykn7§é—¶6úeñÛŸ”ï—‚Nšu†ÚúÕw€mºê]iama eY”¶·Èh2ú É'˜žÈ wZ£¶eÝ”Xêè³)íØ,c‹r=V×í°áVï©ÒJJz4Àƒ0Aƒ;±mÈêÎèÝ37uùWP½ƒPï^­¾«öŽ+°‡Ÿ)QÉýµ]¯mF÷ØñŽö4{ÞŽ+7Ccaý$“~I)Ü ‚ÞËrŸo¦çZÛ*†úMhª¢Â6Žönƒ(9Nëg#%´:ö’çÐkk=ZE.§sv—zeûùóINêK&ÑÔêè׵޽ù ¹ícÚìƒ@ÈÌÜ6¹ÞÑÑßÚ2çÑfgÙ[^8Íý1ºÏ´> 7›Xlù$§i%‰Cú¹ÉÃõäÿHÐÒÖ·[6¾Ó³cÎݲÝÁÓÙ¦;©Ÿ’l»$z¾[½û=±]¬­Ì»S©"@‘'ÜÂuÏmê.Çž˜üŠé¸Zì¦mµ¯Ù÷†¡¼mÛ"xFų¨ý»d»4b{ý'5š¸‹È¯ípÝíýÞ@ï:¤§hà H ðF¡)D‰ŽâVOÕ¦gSƒö|æØÛ* ôÚæÅmfÀÖ:ùàùBÏ¡½]¦Ûì­u£dØ6oey›KZÒ}1qhÐqüRSÓ¦.kD¸€$è•}a±¯q¾úmvð[X¯kvb×cvKô²$OÉG##®œ×1µ]éÙX‘°º°áè¸þcgßùÄøöIOD’Ìé êMÊ.Ͳ××eeÄY¬xºÀÝ GèöþUGßX•ÓÙs®5ØÆ?"Ç4–‡›¶§¶¦ýݥЦe%=  =Ï:'\ÖWU·!ô›/õimNÉõÛ=+—¼ÖƉÙê5›G~ÚdßÛb±uC)×·,TË ‹hô]Ismee¿œ¼ G‚Jz4–9ëO¤=÷dVÖÑ{›5=Ïߺ±S^×ÖÛàÒè÷ÂÔéG à°ä6ÆÛ.ŸX—<‰0}Íc€=ƒš Jm¤’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’˜ÿ„oõ]ÿ}RQÿßê»þú¤’”’I$§;êçü‡‡ýWÿçÇ­õsþCÃþ«ÿóãÖŠJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I‹Ø9pÌŸ)ü‰Ð/ÅmÏ߸´ÄøóóRQmnqc\ ‡-J^­{‹7·pÔ¶Dø¡ŠMo62\IqÙ0=ÄqI&Á¶ /l¸GÇà¶·mÚàwIlc˜Af&Â×o;š6èftø”ç‡2Àâ]SCZÞ~)))²°ñYpÞxlë÷$Ûk?EÀëãT/FǹÎ'Óm‘½° ´twšGä‡íG·M°F¢yÕ%%6Ôâöã!7­I½± äwáa†¸â7†òLüg¼¸nØÃRZZÖ¸y}”œÙ[]´¸i¡"uáIW~3¤‘áûx×@{øa%)$’IJI$’R’I$”¤’I%)$’IJI$’SK¨ÿËý7ú™?ùîµuRê?òÿMþ¦Oþ{­]ILGóŽþ«+Ô“´™#^4$Ô›c<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd‡‘•_¥“Mw×3²Ö‡¶Gxp!Kc<ùÏÿÉ%±žüçÿä’S.4 (ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’JaF.63K1©®†¸îsjcX ¼Hh¢¨ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’Jd’ŽÆxóŸÿ’Kc<ùÏÿÉ$¦I(ìgÿ9ÿù$¶3Àÿœÿü’JWøFÿUß÷Õ$Á­@Ö"IqçâJt”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJC¾öRp'tÀ8ùÄ"(¾¶?é €GÉ JbËÚë 6¸s<±=üÔNSŽ® ,™"w=üú k‹ë;^{™pÌ4˜Ö…,åÚ»ROHÚOÜ’–mÛžÖ†;ÜÝÁÞØ‘HäR Éw÷)6¶2 F ?'ñRINGÖLš¿ag4wÒð cÌ,G}#ñ]Ö@Aêò(|ŠçÝôÅ:-Ž_i}I$“™Ô’I$¥$’I)H½?þYéßñ¶í½ÈH½?þYéßñ¶í½È–äù%äõÉ$’cII$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’š]Gþ_é¿ÔÉÿÏu«ª—Qÿ—úoõ2óÝjêJRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’œï«Ÿòõ_ÿŸ´VwÕÏùú¯ÿÏZ))I$’JRI$’”’I$¥$’I)I$’JRI$’š÷d¾§ [ÏŒmÝ?z‹òÜ#dA-žÄ‡’5swÅZJ‚Jj7.ÇT÷‡W¼4¸0HÚcÝîS»"ʋǴ–³pó?~Ÿëª±$”ÕnEÏÑ»D9­’ ÅÂtw—‰Lr­/sZ!å€ €HÿH<<•´ s¤¦µY¾Æ°íܳ~‡wðE/ºtªGc¼r"I)ÈúÉeÿ±3[éÀ4?w¸Ï ßHüWAõ“ÿýCþ!ëŸwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"ôÿùg§ÆÙÿ¶÷ v[“ä—“×$’I%$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JjÚܽÎ5“èØìˆøj•£%ÎÜ€$ûAãÚÑù®n“*ÒI)¨Æ\궸X× ›œ_©3杻JÆdî³fþv„CvíÏ*ÚI)ªÚïwÒ/scÜG¶]»ó¼#ºc^Kžá.¼êK£lŸþ@´’SZªòŒs˶ ‚ãûšÎ±ô¼‘K.-á´"$’œ¬•_û5Þ¤†ÐýÞÐ$G ßHüWAõ“ÿýCþ!ëŸwÒ?è¶9}¥ôY$’NgRI$’”’I$¥"ôÿùg§ÆÙÿ¶÷!"ôÿùg§ÆÙÿ¶÷ v[“ä—“×$’I%$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jiuù¦ÿS'ÿ=Ö®ª]Gþ_é¿ÔÉÿÏu«©)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js¾®ÈxÕþ|zÑYßW?ä=h¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Js~²iõ¨Ç õÍ»'qý5|þû½v®k^Ò×€æ¸Cšá  ìþŸÿq(ÿ¶™ÿ‘DdÇ“‚ô»xÿ´âÿ¦¯üöÿz_iƉõ«íþõØ~Ïéÿ÷ûiŸù“wCé¯ëõØÚXËN5 a¶RÐÐÒÝ»`#¿ŠË@žâ¦OýJ\JûÇõûN7újÿÏo÷¥öœ_ôÕÿžßï]V/LéÍd·ˆ.w·Òdhãü”oÙý?þâQÿm3ÿ"—¾ñý_ÅãþÓ‹þš¿óÛýèÝ6ê_ÖºpeŒyõl0×£ÝàWUû?§ÿÜJ?í¦äT«ÄÄ©ÁõcÕ[Çemi×Í¡$K?#‡©$’ *I$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”Òê?òÿMþ¦Oþ{­]Tºü¿Ó©“ÿžëWRR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”ç}\ÿðÿªÿüøõ¢³¾®ÈxÕþ|zÑIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)TuV¯]ûO¤Ü[k/í¹ÖTà>æ•>¡—ö, ŒÍž§Ùê}»&7m¢@?‘QÇëYúMv3Xë.}$—¼4ìk'}-{KœþÖùI-)ÖITé™wæb ‹êe.sžÐÆ<Ø!Ž5Îç2¾í=•‡Ù±Ìlhãøp?ŠJU--®ƒ¹Çïq*j³3æ–@Ðòx3©–‚-v=îxs@ 03:x”‘$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%4ºü¿Ó©“ÿžëWU.£ÿ/ôßêdÿçºÕÔ”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%9ßW?ä=h¬ï«Ÿòõ_ÿŸ´RR’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’ILl®»Xêìh{!ÌpAìAP8¸¦ÆÚia±65å£p{†×8(©$¦,­•´2¶†4I h©Üxñ%9kI€KuöN’Jbk¬ˆ-¦‘áÂI'R’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Zº©uù¦ÿS'ÿ=Ö®¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)Îú¹ÿ!áÿUÿùñëEg}\ÿðÿªÿüøõ¢’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)¥Ôåþ›ýLŸü÷Z¼‰&5Ž%Qê?òÿMþ¦Oþ{­^üÏŸðIKü‹ïõXqªÍ§ìÎhl¶Ñ@ÜÛ¸¼:ÙŽ!*¾°²ü¶bÓAsí¦Ãê0ìk™sÚó´BïjJvaž'îÿjPÏ÷µb¬¸Æ›lm$º›[‡¨ÍƒxsšçÚ k~ãºcõƒìöå º\(¥öl¹¥…±]ÞY¤ý3îá%;pÏ÷µ "Úññí¼Ë…,u„Èh.Ž|–Pú͉8í5»~CœÒÐæ˜ÚöÔKøOs‡ÑFv[ó~¯äeYW ë(¾jÜCÙô›ã )¿E¢ê*¸ ¢Ö6ÀÞcsC£ñS@éÿò~'üE_õ GIJI$’R’I$”¤’I%2-h䙸xüÒ†xŸ»ý©ŸÏÈ~D ÌÌl,wdå?Ó¥‘¹Ð]©04ÊJlC£šÇ1Òà^Ý¡ÒÑ/€J‰úÇC-ª‹¨}W¾ÇVú÷5Å¥¶ dA÷ûnÉ)×IgfäfÓÔ©Ÿ^µÖ6¶=¦×ØY±îs·4h£ºž_Tn6G )u¤ ÷¼9 5×9ÕÒÝLÎaÙ%7“´IŽ8êy­èxyivVq¤mc‹ ãp cL;hÐIówu£Ón7áÑq°\l¯q´7ÓÜHçf»~ )q™†à lsàŠÞAøû^'ï¿þÚ÷&Â?©ÑÿÏÈgWëy=7?icNÆßeÚ—UsÝc)s¿àÜæm>ŽÒ’Oµâ~ûÿí§ÿr_kÄý÷ÿÛOþå—_ÖZ±Ž©ö[G­nÂÙ%•²Û@i#nОUœ®3²XÊi?f·í5d—s}C[aƒXpIM¿µâ~ûÿí§ÿrG3 ÞÿæŸýÈ4u<{³ïéÐöec´=Í"ZXOµí{e½þ‰;¼•§}ðIHpó+̲öÕôh´S¿é®»w/Ò+Ï÷µe}[ç3ÿ ³ÿm±•ü«¾Ï‹vFÝÞ…o·lÄìitOœ$¤ðÏ÷µ(g‰û¿Ú±?iÙ‡PÉÏΪÒqÆC°ëc[£Ë]]’ c\è“ñSgÖì4Šñ¬p³g¨ðæmg©yÄÏ¿Þ?7‘ªJv!ž'îÿjPÏ÷µcbýdÆËÚ1è²Ãe¬ª°ÒÍE±áÎ3íS·7‘¢j~±Õ~K(ª‚áêšîx±ŽØÑU—5ÞÒw*>ÞÉ)Ú†xŸ»ýªµyL³6ü6ƒ8ì©îyàú¦Èyzh'«QÕi}Ô´µ¬-ä‡Ýí!ÍÒ`ê;(âÿ˽Cþ#òä$§Hµ ‘'M8ÿjPÏ÷µ3þ›¾%RêY7ÒÌzñËYnUíÇ?PÀæ½åÁ¿œèd4x¤¦ô3ÄýßíJâ~ïö¬Ìž¤:aǧ1ç!÷¼4Ýì¬ûžجv® ³ë²0®/°Ö1Ùº°lõesô¡ zN:öINÌ3ÄýßíJâ~ïö¬\߬ Ç}ø‚²Ìº±ßd×X)vCZZ­†êî'E­Y.­®< ù„”‰ÙLì—>—ß¿€ÆDyïVKZ4$ÏÃý«5ÿø¢§ÿÝÿŸ¨ZOú_!ùR¡ž'îÿjPÏ÷µEeu.°ì+³+-{½1‘NÊl´ ¼{ÍmpômæS¯ ñ?wûR†xŸ»ý«ϬLq·†þ±I­¥æ wz”×h-·ùßlò®ôî«^{œK醋¼´îasëÝí&=Ì<¤¦ü3ÄýßíUò2«§' –ç°vVëI?æÂ2ÎÏÿ•zOümÿûobJtRI$”ç}\ÿðÿªÿüøõ¢²z.V-+ï·c]úJèÈs ½ÇÚïG^UïÚ¿ðßû‘ÿ¤S¸%û§ìEŽá°’­ûCþÿaò?ôŠ_´1á¿ö#ÿH¥Á/Ý?b¬w ”•oÚ¿ðßû ‘ÿ¤Rý¡‹ÿ ÿ°ÙúE. ~éûc¸l¤«~ÐÅÿ†ÿØlý"—í _øoý†ÈÿÒ)pK÷OØ«Ãe%[ö†/ü7þÃdé¿hbÿÃì6Gþ‘K‚_º~ÅXî)*ß´1á¿ö#ÿH¥ûCþÿa²?ôŠ\ýÓö*ÇpÙIVý¡‹ÿ ÿ°ÙúE/Ú¿ðßû ‘ÿ¤Rà—V;†ÊJ·í _øoý†ÈÿÒ)~ÐÅÿ†ÿØlý"—¿týбÜ6RU¿hbÿÃì6Gþ‘Kö†/ü7þÃdé¸%û§ìUŽá²’­ûCþÿa²?ôŠ_´1á¿ö#ÿH¥Á/Ý?b¬w ”•oÚ¿ðßû ‘ÿ¤Rý¡‹ÿ ÿ°ÙúE. ~éûc¸l¤«~ÐÅÿ†ÿØlý"—í _øoý†ÈÿÒ)pK÷OØ«Ãe%[ö†/ü7þÃdé¿hbÿÃì6Gþ‘K‚_º~ÅXî)*ß´1á¿ö#ÿH¥ûCþÿa²?ôŠ\ýÓö*ÇpÙIVý¡‹ÿ ÿ°ÙúE/Ú¿ðßû ‘ÿ¤Rà—V;†ÊJ·í _øoý†ÈÿÒ)~ÐÅÿ†ÿØlý"—¿týбÜ6RU¿hbÿÃì6Gþ‘Kö†/ü7þÃäé¸%û§ìUŽá²’­ûCþÿaò?ôŠ_´1á¿ö#ÿH¥Á/Ý?b¬w ”•Ú¿ðßû‘ÿ¤Rý¡‹ÿ ÿ°ùúE. ~éûc¸l$«þÐÅÿ†ÿØ|ý"—í _øoý‡ÈÿÒ)pK÷OØ«Ãa%_ö†/ü7þÃäé¿hbÿÃì>Gþ‘K‚_º~ÅXî *ÿoÆÿ†ÿØ|ý$—Ûñ¿á¿ö#ÿI%Á/Ý?b¬w „•·ãÃì>Gþ’Kíøßðßû‘ÿ¤’à—V;†ÂJ¿Ûñ¿á¿ö#ÿI%öüoø_ý‡ÈÿÒIpK÷OØ«Ãa%_íøßð¿û‘ÿ¤’û~7ü/þÃäé$¸%û§ìUŽá°’¯öüoø_ý‡ÈÿÒI}¿þÿaò?ô’\ýÓö*ÇpØIWû~7ü/þÃäé$¾ßÿ ÿ°ùúI. ~éûc¸EÔåþ›ýLŸü÷Z6WQéøMks2jÇ/$°Zö°9ÅPêøîë½9á·CY‘3EÀêÆpÓ\Ÿ’¶î£‡ùÍ·çþ’K‚_º~ÅXîkYõNÌ×ç~Ø,ºÇú¤74 ÃÃC›Q%€†ˆ%«¾§Ukn¯/XÂÒÃö’@Ù»nÖ›6€7»@#U£ûG÷mÿØ{¿ô’_´pvßý‡»ÿI%Á/Ý?b¬wsmúžÝá™´0X–ö¬Üк4hÑù¿T^ÇVüœ'VíÛ˜mfÒÁK†ÝÑ«¯~ÑÁýÛöïý$—íÝ·ÿaîÿÒIpK÷OØ«Ã@eýS¥Ã:øÓèØrœ^ˆqiy·sšKGµÄ…®­õvž“•Œi»ebæŸsÜ@—\xZ?´pvßý‡»ÿI%ûG÷mÿØ{¿ô’\ýÓö*Çp“þOÅÿˆ«þ¡¨ê·í o ¿öÿý$—í o ¿öÿý$—¿týбÜ6RU¿hcx]ÿ°÷ÿé$¿hcx]ÿ°÷ÿé$¸%û§ìWî)*ß´1¼.ÿØ{ÿô’_´1¼.ÿØ{ÿô’\ýÓö*ÇpÙIVý¡áwþÃßÿ¤’ý¡áwþÃßÿ¤’à—V;†õ¾‹M®ªÜüzìgµìu¬5O(óƒ Aê8¤õY¨?4SÔ0§Qlÿá{¿ô’_´0¼,ÿØ{¿ô’\ýÓö+ˆwv^OÕ\¼1„z8øáÁû1²N¡Þ Õ†G»Ý§t*¿æƒ1ÝŽþ¤ÌŠÜ\I»/sýãkÿH×µþñô¤êµ¿haxYÿ°÷é$¿haxYÿ°÷é$¸%û§ìWîúò~¨T÷¾¼¼V›K]`ûDµÎaak‹ ›wMm÷DžèøýcêÞ5-¢ŒüVTÉØÏY¦3çÝYý¡…ágþÃÝÿ¤’ý¡…ágþÃÝÿ¤Òà—\C¸hdu>›™Õ:Ux™Tä=·Úç6§µä³Ü&V¿¥_¬oÛúRÑY} —÷’€:†ûE³åwþ“OûCÂïý‡¿ÿI¥Á/Ý?b¸‡p‹+¤ad=÷z`d<:âó^ç·cœê›cISÏšAÄŪ¯P›²*}– Ú]Q›_ê¹°ÇÉd£‹§“%Zý¡áwþÃßÿ¤Òý¡áwþÃßÿ¤Òà—V;…ò012nªûëõCƒê—;hsLµÞží„ƒÁ#Döàâ]{2,¬:Úãk¤Ž -–ƒµÛI–ÈÓ²í  ¿öÿý&—í  ¿öÿý&—¿týбÜ2³ ÌA„êÿWkZÖ°6q³kšC†Ý¢*aø˜ò÷3–ĸ†±¢ jPÿhcø]ÿ°÷ÿé4ǨbÆ¢èóÇ¿ÿI¥Á/Ý?b¸‡pçãýcèõQ]nɤ¹ŒkL_G GúUS?7êÞ{ì}ù„ ªöÖ̪\¸ísKÈüâ¶haxYÿ°÷é4¿haxYÿ°÷é4¸%û§ìUŽáÅ«+ê¥ls=f¿Ô —å³ß³nÓc[{Zã b`AVjë?Vé´[M”ÖöµÌo¤×»ÔsC}m¿K^í / ?öïý&—í / ?öïý&—¿týбÜ4Ùõ¡W¸W} Þâçm¶.<¸Åº”çë7F ´Õ®ŸÏQÿ¥U¿·áxYÿ°÷é4¾ß…ágþÃÝÿ¤Òà—\C¸i}[ÈÇ5gd Xê’ ®€38ï4Q¬ë½ÊÝ_íÑ,kÈx%ŒsË[üã´hT*¿êu6‹«ËÆ4‚ÒrIk^Æ€×XZ÷ ±V—Ûð¼,ÿ¶.ÿÒi}¿ ÂÏûbïý&—¿týŠâÃO©ýXÁ«ÑÅÎÆ®¡ôYöÍhÀ÷»hò'é™x¹}g¨Ý‹s/¨SŠÒúÜÙ"Dµ[û~…ŸöÅßúM8ÏÅüÑlyQwþ“K‚_º~ÅXî?ëAÞïòŽ/'ü3<~*—SËú±Õ)ô2º¥B®K*Èc ‡4žòÒ$ÂÑû~…ŸöÅßúM/·áxYÿl]ÿ¤Òà—\C¸rk?T[Ci³©3 4È}ù®}‘!ûMž sš7I¢Ù“õ>ÚÅVeb446/MæÆms^ \âAVÛð¼,ÿ¶-ÿÒi}¿ ÂÏûbßý&—¿týŠâÞrþ¨—ºÃ™½õŠ,?i>úÃKl¤>â%ÒU¡×ú£ŠÐ~•ŸÞöü? ?í‹ôš_oÃð³þØ·ÿI¥Á/Ý?b¸‡pÑÇÏÁÍúÃYÃÈ« 3 ÐóSÃà›©‰ÚUËúçEª×Wf~3,aÚö:ÖЂ%M¹Ø¿š,ùQwþ“Möì>âÉÿˆ·ÿI¥Á/Ý?b¸‡p‹þptü±Åÿ·Yýë?*ÿ«9W]kúÀaɬUk+ÊkZk½›{{¾õ«öì? ?í‹ôš_nÃð³þØ·ÿI¥Á/Ý?b¸‡pçU•õJ¢âÜÜrlÚmœælÚ÷3~Ýÿ£lº%.•õS¦µßgÏÆõ,e¯½®{€.sD—hã@Z?nÃð³þØ·ÿI¥öì? ?í‹ôš\ýÓö+ˆw¿çAÿË_ûuŸÞªÛÔúvgXéLÃʧ!ì²÷9µ=¯ z !¥_ûvƒÿí‹ôšq‹>ÑdùQoþ“@‚7æ›¶ÊHn£Âßûbïý&’ ÿÙ endstream endobj 596 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 597 0 obj<> endobj 598 0 obj<> endobj 599 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 600 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 601 0 obj<>stream H‰ìWKsG¾óWôq&eŽúý8Úr䲫¼®DÜõÁö"i‰IEI~ý ôL$ÛJÕ·T%NcÐx|€îQâzröêR‰ëãDû.F\蜲SZJ¿Ú¤”Äa5ù<Ñ¡¼¶ÆoÏÎ^,Ž 2E!áA†hÇÅnâ¬ÖuðÂI+>ä] ·æ¡"ÂW¾K^ªüNÇNjzùb69»ÐB‰ÙçIBG" —5`ûl;‘°y Þ¥ñb¶˜àÄ<»›|h.^·S×ùæâýŠW«>¥fÕ–ÔÚi€Ÿ9­N{^‹Öw¡ùÃãÊ7j?ÍÞ@†‚èS‡?JWÛÎ>bö’"Q.GBAÜÝݵ^v®éþ\oÖÙ¿kþìûm6ûó Q@IðT£4m;ßC:ÁˆïUíìËõÔÙ.&cÄTuZ¡&T¦}‘þ÷+E 'Ú)"ñü+£Á5 |³¬’Z·y&4-¥’ŒU (¥ˆñÁ)Ý( g:$k›ÉÒ©ëòv»£3nÿ*ý²¹ª¼d„ Fê|®Ÿ÷?‰])!4-ÁD-ÐÙËýâv»ÚÄÙÛs“Ä‹—ç“_ªPL®}À«\Y¥bæšEc³°÷c ^u2±€oº•ØL\êdY Bg½í·l Ùù% håÈçèCÉÁZ”¤ïæ¤Cð¼.ömÒ1¬eM¸zŸú5m0 J6# R³™ÜLjzbO`äÔ#˜¸»c†"Á±Ïv#•p‘ˆÈë@¼-mê7°Ä°¾­JpªÚ›ô¥$4”’¦cËZÞQæ‹Óž“OQÝ“xE~@ÿ@÷%õ.õ£Œ` ] ¾àbK‚DG¯OJ`”ÁL y;böð–k«r†ŠO1c©þ´£Ù¨ÁÓM š±<8´¢úóFõk®'ïG‘3Í äƒ<óªa­†aRÀYÛ$[å—àX¯óOÐj¡Gˆv8G’¡\$2¤w£µ–¡ì`‰áÊt¥Íƒ­|@Ó¦R–gIPF Qu\¹† -ɾ¸´ÇQpx÷PrÏ&xâ‰P†u ´¦ÄÔ aÂÈ]yP¬ ‰6ª“_©£!ƒ0ô³¢J£J,p© @ª Fø2 ¡‚yX" QU,*GÝ@˜(ï·‡çé¥f œ–¦ £"¤vl‚¦>÷œ „%d57L¤ Ú÷óPÐFr6†qcjpÍ-’ÔH#ÙÊΩ4rÅ2„r§ BñÙ8Ê VWY&¾¿ðÀŽ=N´ƒGïCLõ-Ë¡CŠDRCê°È=éy&á™Lúååeé(jzu• PR¦$aNpÏiZ*nÂÈäIÍç$ß!Êõ •»v *\sƒ3Ò  Ätí‚J¡QJ¥ÄXŠiÈ¢”[ɳ”cÁëu ®B ]äñm}€–C‹‰a}fÖiq¯p±úùí9|z½ºTâú8y1›œ]@ˆ\¹4Ä|)èIßá ÷M˜4³-Üÿ¯á‹Hâ`š-èI‹ÙÝäCór~š‹óýíî$>6—í7‡ýnýw«\³ZŠ÷ëÓ8ßüö±m?ÍÞ€CK\…²¿ü€SÉã5:ûš‚yœ¨ÙüóoäÍ-HC3o§ðéÕ¬7üpµY‰»vªáÕM;Uð³Ú‰¹Xì·ÛýN´¾YlÚ)àÝ쿉 z|Ý·Ysñ®l\·rsj§v°‚[¯ª­¿>Ç×®yûL,×$>â‚}ðáÐÖW·¨›Ój‰fS6ÑoÃhuó¬ÅbÀw¼Ÿ®?ã24'qh5|6+´bškrF1Ž\®¼Y PÀÝìeæ¦CaJ”ë£8¶Ǫ•Íf…èœðÿ±õM'˜¢R.7Tù)“ß*¢ÁmUH˜„•ûõ€Y»æýzyºù!û¯[Å,Ì­B¾&ê=Qo õæõ©çˆ8jc¹pkDªÇUfêxˆ<©aòÿO›<ÀÃ6kÒæ×ÈÙa¾»f¸d…c Æ?Z…›÷[Hñ´›ýuÎ9óƒ…ï88Y½É?¹¯$̶ÑíìË=d¬‡R÷ÀI&Vål ïÖ»¯·'±\}=Ý|l;4ô£Öv *¡§1õ4â#Bÿþ ÙÍú´ßîq,Ä¥¸[ŸZ8n‰PåÍX¾¸ùIÝã²Ê•`ÿшõ؉õŽ›‘»éëªì¸áï ‰ÒS¯yZ¼C}hÚ;n{gWP¤ îmìj¶ýH³x÷Õí0úá@õÙwòì§ ®Íq…*±Ù ·<¨„ùaÙbÒÝØYY&:PáÝU¼ËŠ÷9òó/VÀ“úÙÁ3½SeLÂqLbÄóuksVøŽ]zEÏÀç Ì&ˆcGü¾Å i°²96à­5ÐG õHû6+@gÙÁ ìk @ÏÛÜÔh~ÉÝ šg¬Â©(èÝ‘j 5°©#섦†•Âßnm¸/8•à{¶ïëG[:†Ü~#|˜…¾¥Û)ÌçU‹œ¥Z?µyäa›Ù~¼Ï-Œ4¸H>h¬r|ÿºš/¿ÓßÜÝ7"ë=©•mðõ(ÿÿOØZ¸ôƒŸJ‡ÐÏ]`5ÿ=òäÓØjSê˜GOcW‘‰ÌHdºB¦ÈLDfD2sXx ç™’õ9ˆ ALÐæY“käŽëÿ2^íº A°ÏWP‚DïÃeŠXr“v™…³Œd Pð÷™Ý½3`Grºƒ{ìÞíÎÌ.C˜v´0­1g [MV `  6Kò3A."t¸0‚ÿC dëÝóH x”[=î¦ñQcÕÌ)#NI±[Af“7Ç©iJ‘ÓÔŸ.Éw+ÏKÀÓ…8N ÇቤüFòE.s]êjÍ…sUË\9Ίj"a‚ðTÕˆ$CšNÚóðàxeó8ó¯žjVÿµ¿ë…ýò¤ P7º5X­;;òÁ4Óökì—†i¦Ê麂[lÒìÞX2›jö3ƒ8Uˆ”)Σä†ÛÔÔº][^³.G‡#'è ¬Ì€ç $B˜Ëô÷âqMŠ•o–Pò¨qÏR\¹z G½•Ø“KpFQHÑAÀ é³­¦>stream 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 2010-02-23T23:09:56-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:7F30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 603 0 obj<> endobj 604 0 obj<> endobj 605 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 606 0 obj<>/ColorSpace<>/Font<>/ProcSet[/PDF/Text/ImageC]/Properties<>/ExtGState<>>> endobj 607 0 obj<>stream H‰”WYoI~¯_‘U«­rÞo‹ÁḦuf%ăմÔt7ãáßÏ—‘u ³»ƒ…º"*Î/ŽÊTâ¾¹¸¾QâþÔh?Ä(‚ ƒóBJKið«MJI7Í]£C}m]X¾½¸dŠBâA†h§õ¾qVX3€ï¤*?%xίü¼T厃Ôôò媹¸ÒB‰Õ]“²A‘„+P_í å^$[­A®žšÖênõz†ôƨðG‘h;x„.V¯HY¹¬ü¡}zzê¼\;üù¸}Üw½ÃóŸÃú°ë>®Þ6¯WȬ(Tð¢Ñ"GaâçñÚ —1ËmŽ;Gü¡½zÓÙ!´W¿–q½ÙãÁ´›®·íñö|8Š?ü Jc^9ô`ŒèÕ õ˜ 'Èöo]Û^wºU¡ëzëÄ¿¾»^yð·B%bÿShIOJÖŒÿGMÍ€‚ërnrH.÷ÂT[7¾C]QàÙ«‚Td¤ò«V~ÈJ°kü¢ÀJÕ¼w•⦿xuXÛmögqñîÒJñòÕeó~Vˆdð/Ož4)O ²JÅR ²Îƒ\#BÂÀ¢OSÐb×ä"(à¼E™[íeʾUòÜ?wãâ cš»™qžsóóÌF/Î ^º¿ë…µþÿdžqƒJiµp3qžsó_’Q#FÔwlÓ,ꆘÜߨC5ÊaÍŒÎe£‹@• Ú•}¯Ð«ù×ÙD6µAøŽ-˜lì£)_sXNE¤fG™ÌñƒiÁÉ“Mµ²Z³LDf ÃŽ‰ F_ yÄÂŨ2v°!,8 vÜÜdBÇ1þ(\ÞˆŸesù vÏ[ìŒÏXZ:‰'¡¤x'>|”â,b³À…9c7àEÄ­RÌ™E‹Š¸g9Î2ôŒ´‹Ïr¦ŒœÁ¢ vî­ræ1Ù¼ 1™„¶Ê˜"OåŠuæLõ3ÀRšç8SÜÐr¥aG|ÉèK·Š»rf2~0Á=Ç™åö•ö¥ÍšøŽ ªycbw÷J•†È«›Õá»ác˜gçÔ ¼›÷«øú‡y.6@f‘7ÖÆyA²ˆ3Ñ/r}ýŠxìr½¢†øJþ —³árô²º.£B= e†¯·ö#§ÐIWH§ ÓQ¬‹LÇ“@bŸ í«=Ì)økæäox¦#ÐØ'™’it,im‰Èf0äÃTJãÅÌÁ÷pnÀbÉeeqØâ (&l3ŠÉ.Îo˜¶cJ‡Óæ÷œµ³äÐ…êÀI–ˆ +«G†Ù„‘&Å0eÎvÁÉ¥Ù6ͬj7Ô(j·Ô(k7MiÔ~«‰r;2 µ]G”Ð [à]®›Á\éùˆT•ªZ¨¥\NÄ'­×ï.›÷ÍÅõ÷§æåª¹¸RB‰Õ]“ï0¸HQÊSV¬v¸(Üã%%öôj jõÔ´¿ΛÝê3Ô «“®PIãÈQuû¬ˆe“s¿ª¬ý¡ýýØõ x¶]b¶çN¾ÝˆO›L«öËùAÜî?áà{KŒO.K­èPg<Ö& }9:|Ú?º^ƒùX_’èù ÉÆÖ${þÆô¶C˜Yæãêmƒ[ÂG–¯(x ÏÁéüÕ›«_)ÜŸÄ]—ï3-‚t{燮GÀýi³Ý¬Ï›OD“ûõaOä]‡¡Üu{ÿíØáœïrtùåyþò°(¬wÕd°r{•÷eNÈRl+ OÊ/ùñ\'±»í4Æ®ý>a²½CŒÍ‘^œ¶ÙqhïÎÛïâøBrס£Z¤·¡hp™ÕsŒâˆQ¤8Š÷\`B$2§ Q„8ìÅi}Ülös='w¢Z؈|a_ÿöf @°J㕇ܴ>aÓE¬RtŸª[`*¡z.âú#äáQ ŸK´êÖª€b„öxÏo7DŸ»\„Õ‹+<ÚR"¼Qí= |cùc5+ ½èѺ©õ%Ü‹«øÜ°é˜rø&æ£í|äì¸ãѹê|™ì”Ò:ØS€ÆôåÁ¿`7šÜ7W»¹´‹­…±˜»ù¶ÛÝæiÔÈè{—ó7T“léõ ·Ó +ºÍ Ú^§P¯¤a\ œ |RYbW.z¤·•6QåÈò#}‡…ôõ+&ÆÁeO¶zúÚdžM)yZ5FI|âRÂf-ºxÆY›¬ÊrÚ5ov^¼:ÀÁûæ/&ÊíÆ endstream endobj 608 0 obj<>stream ÿØÿîAdobed€ÿÛ„     $$''$$53335;;;;;;;;;;  %% ## ((%%((22022;;;;;;;;;;ÿÀÛ*"ÿÄ?   3!1AQa"q2‘¡±B#$RÁb34r‚ÑC%’Sðáñcs5¢²ƒ&D“TdE£t6ÒUâeò³„ÃÓuãóF'”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö7GWgw‡—§·Ç×ç÷5!1AQaq"2‘¡±B#ÁRÑð3$bár‚’CScs4ñ%¢²ƒ&5ÂÒD“T£dEU6teâò³„ÃÓuãóF”¤…´•ÄÔäô¥µÅÕåõVfv†–¦¶ÆÖæö'7GWgw‡—§·ÇÿÚ ?ÜéØ_W™ÒúyÊÄi¾üJ,`m,>£œÖµûçêYº_MÃÅx£–Ç¢ðã[7lƒ¨hðZý5½G§aãFìjk¬nk\Zæ°0û…ª·\ÄÏÏÄxm}äÖ[±£k¸ý+9S@Ž(’Fúê°Ý‹.¨ièÕáüÛ'_ìò›Ô«ý >?Ͳ4þÏ Wþnõsÿh,ÿ>Ÿý+÷¥ÿ7:·ýÁ·ãº¿ùß¹Z÷0÷‹ û+}\z5ø6Éÿ©çò%êUÏ£Oólúž?*Õÿ›[þàYðßOÝüïÞŸþnõoûƒoÇ}?ó¿r^æñW û'}\z5x6Éÿ©çò%êUÏ£Oólúž?*Õÿ›[þàYðßOÝüê_ós«Oô~;éûÿKÜÃÞ*áŸbåo«F¯æÙ?õ<þD½J¿ÑUãüÛ#þ§ÊµæçVÿ¸|7Ó÷:ŸþnuoûƒoÇ}3ñþw”½Ì=â®ö.Nú¸ôjðþmŸù÷%êUþНæÙßû?rÕÿ›[þàYðßLçÔ¿æçVÿ¸6ÿŸOþ•KÜÃÞ*áŸbåo«ý _öÛ;gïKÔ«ý _öÛ;ÿgîZ¿ós«Ü ?ϧÿJ¥ÿ7:·ýÁ·üúôª>æñG ü\¯R¯ô5ÛlíýŸ½/R¯ô5ÛlïýŸ¹jÿÍέÿp,ÿ>Ÿý*—üÜêß÷ßóéÿÒ©{˜{Å\3ì\¯R¯ô5ÛlíýŸ½/R¯ô5Ûlïý•«ÿ7:·ýÁ³üúôª_ós«Ü ϧÿJ¥îaïpϱr½J¿ÐÕÿm³·öRõ*ÿCWý¶ÏüŠÕÿ›[þàÙþ}?úU/ù¹Õ¿î¿çÓÿ¥R÷0÷Џgâåz•¡«þÛgþE-õ¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ©{˜{Å\3ñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿp,ÿ>Ÿý*—¹‡¼UÃ?+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ©{˜{Å\3ñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿp,ÿ>Ÿý*—¹‡¼UÃ?+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ©{¸{Å\3ñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿplÿ>Ÿý*—»ƒ¼UÃ?+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ¨û¸;Å\3ñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿplÿ>Ÿý*—»ƒ¼UÓÅÊõ*ÿCWý¶ÏüŠ^¥_èjÿ¶Ùÿ‘Z¿ós«Ü ϧÿJ¥ÿ7:·ýÁ·üúôª^îñWO+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿp-ÿ>Ÿý*—üÜêß÷ßóéÿÒ©{¸;Å\9<\¯R¯ô5ÛlÿÈ¥êUþ†¯ûmŸù«ÿ7:·ýÀ·üúôª_ós«ÜϧÿJ¥îàïpäñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿpmÿ>Ÿý*—»ƒ¼UÓÅÊõ*ÿCWý¶ÏüŠFÚ@ŸF¯ûmŸù«ÿ7:·ýÁ·üúôª_ós«ûCoùôÿéT½Üâ® ž(²zSñ¬}O®—Y[ ÈmØ=õµ¤{Æ ¨æô»ñ-¹Ÿg®ÆP\`®¡!‡kÜÖêí¡ÚJ¿gJúÁeù9Ãy·-¥–ÔÀk‹d4zÚ}§‘ƒõ“#Ô6a»}ÂÆ>Áèúv½Ö¾¶Ÿ_F’ãæ¢c¦°=×pt“Žqëf32-õúÍsé¬Ö ÞÖ¤Ã+pp%½/9ÏôÆ 7ÆèÙPÐÍgƒ¹ÀBÒgOúÅ^?¡^€¾–¼šKÛ]³½­w®;’DÌ;1~³Yq¹øn.qatšŒúv2á¡È K«"rÆôàߪ¸õœ†tìË6lÂaõZÁéÖ #wˆÓè;îJž‘tcQ´‡ø«o蛽âGx [ìYˆ¬G“Pxi&¯Ïß>Ñ‘·OPÆ“æ¸YUu7+¥¥Œoèx5ø~í=’÷£þ­\úÎHé¹„ÇØ«]ì«Û°npwî ÁÕSõ)ˆ0—Kr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿpmÿ>Ÿý*îàïpäñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿpmÿ>Ÿý*—»ƒ¼UÓÅÊõ*ÿCWý¶ÏüŠ^¥_èjÿ¶Ùÿ‘Z¿ós«ÜϧÿJ¥ÿ7:·ýÀ³üúôª^îñWO+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ©{¸;Å\9<\¯R¯ô5ÛlÿÈ¥êUþ†¯ûmŸù«ÿ7:·ýÁ·üúôª_ós«Ü ?ϧÿJ¥îàïpäñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿp,ÿ>Ÿý*—»ƒ¼UÃ?+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ¨{¸;Å\3ñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿplÿ>Ÿý*—»‡¼UÃ?+Ô«ý _öÛ?ò)z•¡«þÛgþEjÿÍέÿpmÿ>Ÿý*—üÜêß÷ÏóéÿÒ©{˜{Å\3ñr½J¿ÐÕÿm³ÿ"—©Wú¿í¶äV¯üÜêß÷ßóéÿÒ©Íέÿpmÿ>Ÿý*—¹‡¼UÃ?+}_èjÿ¶Ùÿ‘KÔ«ý _öÛ?ò+WþnuoûgùôÿéT¿æçVÿ¸6ÿŸOþ•KÜÃÞ*់•êUþ†¯ûmŸù½J¿ÐÕÿm³ÿ"µæçVÿ¸ŸOþ•KþnuoûƒoùôÿéT½Ì=â®ø¹[êÿCWý¶ÏüŠ^¥_èjñþmŸù«ÿ7:·ýÀ³üúôª_ós«ÜϧÿJ¥îaïpϱr·Õþ†¯ûmŸù½J¿ÐÕÿm³ÿ"µæçVÿ¸ŸOþ•KþnuoûƒoùôÿéT½Ì=â®ö.Vú¿ÐÕÿm³ÿ"—©Wú¿í¶wþÏܵæçVÿ¸ŸOþ•KþnuoûƒoùôÿéT½Ì=â®ö.W©Wú¿í¶vþÏÞ—©Wú¿í¶wþÏܵæçVÿ¸ŸOþ•KþnuoûƒoùôÿéT½Ì=â®ö.W©Wú¿í¶vþÏÞRõ*ÿCWý´Îþ[~àµæçVÿ¸6Oþ•ì—üÜêß÷ßóéÿÒ½Ð÷0÷Šxgâåz•¡«þÛgo=¿yK}_èjÿ¶ÙßËo>KWþnuoûƒgùÔÿé^Ý’ÿ›[þà[þ}?úWïKÜÃÞ*áŸbåz•¡«Çù¶FŸÙãÍ-õ¡«Ãù¶OýO+Wþnuoûƒoùôÿé_¹/ù¹Õ¿îŸ ôÿé_½/sx«†}‹•êUÏ£Oólúž?*[êãÑ«Ãù¶OýO?‘jÿÍέÿpmøï§ïþwîKþnuoûgÃ}?wó¿z^æñW û+Ô«ŸFŸæÙõ<~Tûª:z5x6Éÿ©çò-_ù¹Õ¿î ¼ó¾Ÿ¿ùÔßós«Ü >éû¿KÜÃÞ*áŸbÝú¯Ózve/õñ©tØò]é²a¬®%¼jµÇHúµm7?¼kŸK ÈcjxÜ<:PÀÇ©Žêí68µ®5¸msXÝvÙüŸ}µÞÆ>ºñk¥¶·kÍU±¤•Š´ÌL‰o£,n…¹÷tþN-w;§6ë-/†SMf¤¼B!èý+~3[‡@Jj¬‘î Ð슻éä ÛWÙÛem$´ZÆ8ÆOøDï–XË_Q§ù½¡¡¼ƒ¨6Ý<>Õ4qúoÕëú…=¸,Õ%îÛNØb=ºÌñÛºäþ͉ÿq©ÿÅ¡üÛ>‡îñÇ— ½m¹ívæã°;S»cfO:ú½ás_ó{¨ÿ ü³öÿ¥_ó_¿ôÿ襧‡Ú—¬æÙÓ½ ÐâhkUÔöq±¿¢wŒ‹[ðr¨þµ“‰‘NšÛïu‚“m skÇ.‚K@3q:O-kðèÉ-94ÑyoÑ60>'Ãp0¥^;)¬UUuW[LµŒnÖƒâ(—9]+¯du ÁŒü_Dý]Þã£f»`–í»Ú;Æ«iGôž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I(Åž-üR‹<[ø¤¦I&‹<[ø¥x·ñIK¤£Á#i=Ð0²¬Ìã-­k}m°4’H$¦ÊJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)šJ¦ðgÞ¹/Óx3ï?Ü’™¤¡úo}çû’ý7ƒ>óýÉ)ÅÉ·¨[šh«Õ±¢ì€+®ï³èÊñË&Èà<Ѻ™xøXB쪫¸@Èk®8Âç{ý;ãÚC½ÐD$øý[ªåPÌŠ:iu6 cÕ¶DÄÁvˆŸmëùWÿƒÕÿ’IM6õÌšÙm5Tmv>;2XëÉÞê¬k[_¨[>ófàLp%6OXê,x®ÓŽÖÞë—9¬Šï8öz»¸k´ nòžêË-ꬾ̆ô˜ºàÖØÿ´VIk'hÕú¸ð‰öÞ·ÿ•ø=_ù$”Ò·®f[^Ö±´=Ì­Ûú¬Ü)°¼Ïæ;Ô,r9ìºÉø¬Ï¶õ¿ü«ÿÁêÿÉ%öÞ·ÿ•ø=_ù$”é$³~ÛÖÿò¯ÿ«ÿ$—ÛzßþUÿàõä’S¤’Íûo[ÿÊ¿ü¯ü’_mëùWÿƒÕÿ’IN’K7í½oÿ*ÿðz¿òI}·­ÿå_þWþI%:I,ß¶õ¿ü«ÿÁêÿÉ%öÞ·ÿ•ø=_ù$”é$³~ÛÖÿò¯ÿ«ÿ$—ÛzßþUÿàõä’S¤’Íûo[ÿÊ¿ü¯ü’_mëùWÿƒÕÿ’IN’K7í½oÿ*ÿðz¿òI}·­ÿå_þWþI%:I,ß¶õ¿ü«ÿÁêÿÉ%öÞ·ÿ•ø=_ù$”é$³~ÛÖÿò¯ÿ«ÿ$—ÛzßþUÿàõä’S¤’Íûo[ÿÊ¿ü¯ü’_mëùWÿƒÕÿ’IN’K7í½oÿ*ÿðz¿òI}·­ÿå_þWþI%:I,ß¶õ¿ü«ÿÁêÿÉ%öÞ·ÿ•ø=_ù$”é$³~ÛÖÿò¯ÿ«ÿ$—ÛzßþUÿàõä’S¤’Íûo[ÿÊ¿ü¯ü’_mëùWÿƒÕÿ’IN’K7í½oÿ*ÿðz¿òI}·­ÿå_þWþI%:I,ß¶õ¿ü«ÿÁêÿÉ%öÞ·ÿ•ø=_ù$”é$³~ÛÖÿò¯ÿ«ÿ$—ÛzßþUÿàõä’S¤’Íûo[ÿÊ¿ü¯ü’_mëùWÿƒÕÿ’IN’K7í½oÿ*ÿðz¿òI}·­ÿå_þWþI%:I,ß¶õ¿ü«ÿÁêÿÉ%öÞ·ÿ•ø=_ù$”ÒúÛGUɦš0_eu€ûl4×sÜ÷°4UNü{+uaÛŽ³Ù[·©ÑÐjÅÇ{ßÔjele­²}àu¸K˜?>D¸y©}·­ÿå_þWþI/¶õ¿ü«ÿÁêÿÉ$¤Ý¹ìÀsz‰s³%þ³‹šæ8îæ¿F¸ú-"G}T:ü‰ÿ…êÿ©¸YBÓ`ÊÄû3%®õù24†ƒÐÜÐp\xn5dü˜ JtX#ë=Ø8wä°Ó~[®­€¹µ×e†º]c¿7eþ´b¾ºÛŒËC²]PƳk@{,¸S½»¨ãT”îÈ>FMd4·Ý¼ÃcÄr>P³ð˺•G¨ÚKê{œqiÚÆµ„µ®1ôœèQ `°¿ÔÜ!àÈt‘ºžÄöU¹ŽbXçF26H$GA¦þªº¾—lã² Ö:>Î{¸x‰IÖÔ×msÚ5-$÷.ìõçæg¶Æzxô±°à=GÄi;õweg¥ÕYËθ‹7ý6ÒG¥KElÈ÷wî­€ nú§Š¥„Ddlj»×_«° dN’I¬ I$’R’I$”¤’I%)$ã¼ÿ¤gu~­•ÕNGÖcÒÛ‡›mÒ[Fµ´˜#ÔÚtá%=úKžÈϳëAévgdZüš_½­®¿O ±Žý%®ÜÒbFÑ ê¿_¶ÓÖ~°u쌺éé÷¾¦4Ø3YôE#·C¬¹šJ{Ä–Oú݇—‘‹•ÓïͯÕÂûSÖÜØ'ÚXçAÁÕëW]¡ßÔý?VÆme5ž 0ÝÑØr’d—+о¹äb ò¾±¿2æï4UEfªÜá!’uö÷…¥™×™Ó,Äév²Þ¥Õ®§y§­¶þ’Ó½Ìk À””ì$¹ì¿¯]¢aõÏÒÙ…›p¡¥­˜èqw¨ÒïÍÚfzoÖŸ‘€jÈ÷Ÿ´ƒ—_¤@æÖÉ$þèINâKëŸLÍÉÄ©´äSGRsÙÓòík[]î«éåíòÜÑ(˜?[0óº¾GIÇÆÉuø—œ{íÍLÛ¿ôŽx$5¤²ëä’´–¿[qñ³q1³°30«êz8¹7±¡Žyú!ÍkÜöîŸÎj«õ»*߬=c§åâ°:TNHÛú6µ¯s¬¼›5ÛíØßŠJzt—;õã¦]f!³+¨<Õ…}mm6¾v£Ë›»¶àgÖÜ6uÛº1r®Ì£ÒÜj¯{6Û³ÞH>Ö°>\\’Ä’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’SŸõþDÃÿ‹ÿ¿9h,ÿ«ÿò&ü_ýùËA%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¸ú/ø‡[rõ,3¥ùéûicy/u[[zÜEÿâ³úü‰ÿ…êÿ© )çiéy8Ôî³Øý-Õâ7+Ô-mÀã³ÑnÐÇ?Ù.ÜwD+=£Õ“‘ë[qÈÇén£Ö´1– ZÞÂ;pÝiŽH]BI)£…ÒjÄcim¶>Š· iqX>¤¥•‹’Ûé³1¢Cnݧ°Çš¼’[› ¿ÝŸ7wwÖØŠªnðÖ4 /€ât$ø¤Æ2¶6¶ ¬`†´p줒K-I$’JRI$’”’I$¥$’I)q¡rŸV>ªŒk:½c×eçY~3­mWS‰#S»oÁuI$§žê;#ëBê”Vß°ôöZ܇nhÛ¹®k@dÉç°XÔ}Kê™VºçIÉÛ‘žì¼G4€ZY¼³tÝ$’žI½+ëWë};ªâWÓèè­s¶æÚë®pØ;YìKUµõ—¡Õ×ú5ý2ךê­í±†Zâ4‘Ø­4’SÁu~›õ׫toÙC£âådT)êmÉh‚6T1þé kÇÁKªýOë,Ëé]G¦gY‰ƒVn(È~1w¦ØÝ]Ì5˜Ÿò]ÚI)âz—Õ~£“õ{¥aáôöaYÔ[—~ ÈõƒïÜïVÓî&f½Ÿõs7;ë†vsÛ³§fô·àúáÍÜd¡;´ø.¡$”ð_Vþ«uŽ“ƒÔz]y Á»}]I¹Öì`‡³¸‰íôGñ[?Wz/SÀÏúÇ}ÀR:–Q» ÍÍ~‡ÔÚòÖ“\4+¤I%>eÿ3~¶zX™w`ãßÔð3†E™"nËhvñ¹ï;XÖí€9ògfÏ«}mýk®µÔVzÖ:ZÛ2… ;·{}2%þý4íªíIO ~®ýfê=;£ôìZqq:MÕÙ~s.õYDµ‚ªÇ¸×ÜÏNéB®Ý_¬ZÀÜ,Ú*®‡‡4’æ ÆÐw¢y] I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JR¡‘”:øùŽ-ÞüZâ°×T×5¡ÁÍq|û€‡䯠Œ,6ÜûÅ‹¬-sìØ78°îi.‰ÐêS_#)Ù™˜¹ kun{ZÂ[fý[é’ }ºO»™ì¯!QŽ1êeAîÜý —æ9EINÕÿùþ/þüå ³þ¯ÿȘñ÷ç-”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’Rãè¿áüVAÿ‘0?ð½_õ!h¢ÿ‡ñYýþDÀÿÂõÔ„”ßHx™Äˆ$˜Õfõ\lŒœŒ*Û[m¬M­sìeqµ»eÕ‰Ÿ IN¤ÀM'²Ã~MùÍ­Õz”2Ü£>Ö43v8¬´×ÉÛgNSÖÛ¿h7L¶ý±æ×ôþÇïØ'ù½›vÀíß4”íÁ<–[ëgQ»í˜ùØn£ì› `¤†ku ¶[fâðøÓÉKë ÔXàÁM­u²ÓKœæšëµáæ´CžÖ†ŸtÏÁ%=K®¡Ö®Ë¶‚–·!•êœH¬¾ ǵ­ ³YÜ`ýÈ5u^µnKÚñé ‹k4ïIÏ­ŽvØ^ØÑß3¢Jz$ ÄÆ‹7§dõ òƒm;±ZÇ–ÚêfÓ¿k Ý4!gSm˜·ßum~KÚâNA¯!¶5޹‚ÆÛSå–Òv¹ž$§£Ia Þ½º¡è5Çk=Lw'íp.o¶þWÁ1ÎúÀæšÆ°A¢hq0ÁC¶NàeæÇ‰í”ï$°›ŸÖ¯Î· jý$Wu”’Ý·éÀgÒ­šîwÒù+½:þ¥Ó™œöµ‚ã5°ök@c¾÷‡‚JtMx·ñþä¢Ïþ?Ü’—I4YâßÇû’‹<[øÿrJ]$Ñg‹îJ,ñoãýÉ)t“Ež-ü¹(³Å¿÷$¥ÒMx·ñþä¢Ïþ?Ü’—I4YâßÇû’‹<[øÿrJ]$Ñg‹îJ,ñoãýÉ)t“Ež-ü¹(³Å¿÷$¥ÒMx·ñþä¢Ïþ?Ü’—I4YâßÇû’‹<[øÿrJ]$Ñg‹îJ,ñoãýÉ)t“Ež-ü¹(³Å¿÷$¥ÒMx·ñþä¢Ïþ?Ü’—I4YâßÇû’‹<[øÿrJ]$Ñg‹îJ,ñoãýÉ)t“Ež-ü¹(³Å¿÷$¥ÒMx·ñþä¢Ïþ?Ü’—I4YâßÇû’‹<[øÿrJ]$Í&\ iOyñø'INÕÿùþ/þüå ³þ¯ÿȘñ÷ç-”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)%õ‡;7Ø•â[è›Íž£¶5ä†5¤x#ºÌý©ÖÿîwþWþAǤ,=ZK”ý©ÖÿîwþWþA/Úoþçà5äá+½‰ø=ZK”ý©ÖÿîwþWþA/Úoþçà5äá*ö'àõi.Sö§[ÿ¹ßø _ù¿ju¿ûÿ€ÕÿK„«ØŸƒÕ¤°ºQê9BÜ|»ýzÅ«}ŒaÞù€v+u9DÄÑRI$’’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’—Eÿâ³úü‰ÿ…êÿ© @}ü?ŠÏè?ò&þ«þ¤$¦ó¾“?­ü tÎúLþ·ð)@Ô“Àž> )t–wTËÎDZžˆô±Ë_”ê_sXñÀµ¬{ÆÆ» BÖ UõVè.Üómí°·iAn“ÊJu’Y¸n¼ÓKqqíµ÷n$\5ŒôååÅðGéôdýÈU}dÄp§ÖªÊŸmh{e®,i£`w¨CCé¤EIÛµì¬æ]š/ÃÖW]yOØñeeé¶3÷#„”ÞIf¿ŽöþŽ‹l°?ÒuMÙ-°¥®%àh)qøB&YÄÌÊ~5ä±ûàAÇD\4°r5ì’›çQPt!Fºëª¶ÕSC+¬±@€Ÿwò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹-ßÉwù®þ䔺I·%ßæ»û’Ýü—šïîIK¤›wò]þk¿¹ àLA'PGåIJoÒöïÉÓ7é?û?÷äé)Ïú¿ÿ"aÿÅÿßœ´Õÿùþ/þüå ’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$³úÇU=2¶X+m¡ÂÇ¿u‚¸mMÞí¤µÀ¸ö|RS ’ÂËúÒÌg¾¿³<µ’økœ,¾¢'i‚=Üp|•×õ<‘èWŽ×’ìgd;kÛ]k@amwŽÞ))ÐIdW×Üü¯@b—Wuµ†?u„R^Ý›6¹Æ³w‚§ÿ;³¿ùÛêßöÓ?òI)/ÖçúÆÿú–,¥ Þ½“Õsè¦î™•ÓÛŽm-~KCC·2¿f„û‡?4èìÚÁò}T’I'2©$’IJI$’Sê÷ü±oþÿÑ­]"âñz¥Ý7ªo«§äõn9if#CœÈ±§s·¡W²>¹gUCìWz›KÍ•´7æC“íLß9zd–¾³9†§_…f;lkKê¹Á¹ sÅÅ£Òˆ")ÔîÒeõ²Ë_e-õ« –o¬—ÙUm ~Á:['OïAÕIdW×2 O²ÜVM¡Ä2ÝÚ‡bþulãar#º®K=F»’2>ÍKŧÓs€—¸Ö cíBJtÒU:WPý£„̱_¥¼¸NíâѬa[IJI$’R’I$”¤’I%)$’IJI$’R’I$”¸ú/øŸÐäLü/WýHZè¿áüVAÿ‘0?ð½_õ!%7ô™ýoàR?M¿ßRwÒgõ¿Hý6üÿ}IH2z~SÛfEBǵ»A%ÃÛ3´†ò)7§`µï°PÐë_êYÎÒÿÞÙ;gÇMRÊͯÕײˮ»q®š€/!‘½Þç5  ”õçcXí…â»=CH®ÂâðÖ¼µ¢}ÐÙ%#gI鬆PÖý˜“AÒɉ ;¤7Ú=¼y'oKéÌs^ÌvµÌa­±?@—Žo¸è|SþÑÁ66¶ß[ËœæK\×5®dnkÈ>Ó¯ c3½µ›XÛ^\[žÝçi Ãg_¢RRÕ`aÓI¢ªZÊ‹……‚`¼ã<™hS~=Yê>°ç°ãϱÛÙþkŒ¡[Ô°«Ã~h¹–ãÖaÏ­ÍpÜHhnàvÌ5?õçRC}ppÜ÷úu³$²·=Ä6CÜ3ؤ¥ò0pò^×äRÛÍLñ3>žÇDWVǹŽ{CYÜÂ{ d|œB¯GSé÷Ð/fEma-sÚÒ×?èµÂtqì~׋êz^½~¦à͛ۻq˜lLÏ´è’šg à>»«Èi½¹OÌ´@sÞÓ^Ó·óC4ŽêÕXX”Üû驵Ù`岉h;xh uäcØH®Ö<‡×îoÒn‡‘Ü!åf׌êØXû®»w¥M@¸0K¸µ 6{””ØI íXâZû[ÚÐû+{šÆ»@^'MtMöì-…ÿi§ccs½FÀÜ76L÷„”™$/µâÀ>½p_é{u³ý?KË”ìÉÆ°¼Wuo5khk-çéAÓ„”‘%Nž©EÍ©â»YUîkhµí m›ÚçµÍ÷µ³îfáS†EE·´ŸQ°ò4†kî?”™$,lšr¨eô»sÖ¸xÍñ‚RR’I$”¤’I%)$”.µ´ÓeÏ•1Ïtja£q¹%3IQ§­tûŽ.Ç31Ý—[œ6µµ³nïP“í>ïÀø+ÎÂhvMM¾ &Ƴ÷ùú>i)2HNÊÆkžÇ][]X±¥í¡Ú4¸N€öNÜŠl¯Ô¥Âð[½¢§5ÅÍÖ uƒ$@Õ%$ITÄêtd°¼µøâ^/ØÂïH–ØZ÷hÂ5E9˜mŽuõÓüé/h “ý}¿4”™$Ís];\3Ú!TŸÕñ™eÌ{-kiõ´´ls©g©cY™ ñ%7’A9¸a¯s¯­¢ ÓisÚ6nú;äûgÍ*31ï{ÙSÃYÁAk,ÜØ:¶,n©)2J}R‡Û麻*kku¢·š ½M¤<6@AÅúÁÓrëÀ¶§?oSsëÆÜÂÓ¾°w5óôxâ’$•|,ê3©uØòXÛ,¨——TâÇå#CÜ+ )I$’JRI$’”’I$¥$’I)J?á?²+T”ÂdþV¤¥ÛôŸýŸûòtÍúOþÏýù:Jsþ¯ÿȘñ÷ç-ŸõþDÃÿ‹ÿ¿9h$¥$’I)I$’JRI$’”’I$¥$’I)I$’JR…´QvßZ¶[°îfö‡mpüæî šI) øx¹¾›ji®ß¦´÷3¹°A÷B!®²I,i&dÀ“¸éøÀ•$’R…Š/nCjk-fèsFÙ.¤¸6Œ’Œ’I)ÁúÑüÿOøßÿRÅ”µ~´?Óþ7ÿÔ±e'GfÖ“ꤒI9•I$’JRI$’›ÿW¿å‹ð¯þjé3Ð]Õí‡þ«ù±þ•¾ ®…ô¹Í-õ]¨ï¶?êSíLß9dh Ü/5°ÜÑ´[´o ?š ›‹ŒÑ[[Em’ê€c@a<–ií'ÉBÚn †8ŸfÝÄÁŸWEÍs̆º@Üttûá6dÇõMÞ˜ÞYéŸÝ-ÜlúGéf¿Æ–YSÃ2×48ÇqÐŽçR€ÌkỌêu:™o÷\zŸ^íçvèîyÖRS*(«…• ­.sÌ’}Ïq{Œ¸žIDI$”¤’I%)$’IJI$’R’I$”¤’I%)$’IK¢ÿ‡ñYýþDÀÿÂõÔ… >‹þÅgôùÿ ÕÿRSyßIŸÖþ#ôÛðwýõ'}&[øˆvàDhÖ{LJÁ%5³1/ºêr1¯û=ô·ÜÏQe›w5ÍÜÃËA*Î軲NA»[,\6sµÔØïoº‘㦞kKôŸÉü¹/Ò'ñþä”ä«îû6%½ŽýžíاÑi·oªÍû^FÞt×] {~¯Òáq/s¥Î;Z œ—l'þìž|·é?“øÿr_¤þOãýÉ)ÌéØYã§äד²«ònsÀ{cC"¶Cëk¶Íg<ÊX½ø·cÝMÕ´Ðl§ôB»=)eM6WüÔý#ÉÑiþ“ù?÷%úOäþ?Ü’œK~«Ôúk®»Í~›XÒ6×µ­¹ô¬­Þñq˜wÞ¬Œlõ$nu€ìì†eLÏoL5iþ“ù?÷%úOäþ?Ü’œþ‘Ò?fVêÅÞ°q{ƒ·–4[IuŽÙüÐ’>f%×[FF=ÿg¾À3Ôc™`Øöîiå­ ‡ŸÒ'ñþä¿IüŸÇû’S™C½÷\׸Xæz|¿ô!ó.>Ò(ÞÓÉLß«øÍ¹— k‹Ü6s‹ï°ð7éðZŸ¤þOãýÉ~“ù?÷$§}Z¥ŒÕh­¥©àV5g§M."‡Du®btª±íÂÚÍomÖ]kŽÏ­ çé?“øÿr_¤þOãýÉ)Ì=ûpÙƒ•—ëSW¶·ŠÃ,ÛéÙL=Û‹\v¿ÑÇ ñú=´e×˜ÛØn÷‹§Úæ¼×¥~ýÕŸÑçà´¿IüŸÇû’ý'òîIM>“ÓÒñ~ÊÇú•‚Ó·k§kC‹'t‘:ð4쮦ý'òîKôŸÉü¹%.’oÒ'ñþä¿IüŸÇû’Ré&ý'òîKôŸÉü¹%.‡‘O¯m·Ö­ÕîÆö–Ïâ§úOäþ?Ü—é?“øÿrJqõSÓµµdY[í߀vn-{[\m†µàº&u:£Wõ{mõ ^Aap,$‚ÿô¯±Ú›ËµqÕjþ“ù?÷%úOäþ?Ü’œ–}]­¡ŒuÛê¯akMcRÓŽ]»ÜAìíIå£à[‡ö·Ü Ý‘c©dîÙFç:¶Lžîs¾kCôŸÉü¹/Ò'ñþä”ågt{-£¢Hf[í¾ÉÛZm}̉×vý½üP_õvë{ß’){îu´ ˜[´Ý‘ïs^Ç8¸Ý amþ“ù?÷%úOäþ?Ü’‘âÑölz貦µŒ ÐßÎsoœî‚•—¬2ÅÁÁ¬!ߦ`®ïPµÁ±#Ú5îµIüŸÇû’ý'òîINMs‹Û˜ñmª wª2êï¸i`yê¬ãt¿C¨[Ÿê5Öd46á²>‹kkvÄ´K #¼ùJ»úOäþ?Ü—é?“øÿrJqïúµK÷>‹Zo—o¯%Î{ÛÛµÃt R»êÆ-‚Æ2ûi­ïu¬ÚwY]ŽöYfã3P:ÊØý'òîKôŸÉü¹%5ð0jÀ ãÓ¥[Üö7¡Ü7å ÊoÒ'ñþä¿IüŸÇû’Ré&ý'òîKôŸÉü¹%.’oÒ'ñþä¿IüŸÇû’Ré&ý'òîKôŸÉü¹%.’oÒ'ñþä¿IüŸÇû’Rê?á?²+Sþ“ù?÷$·nq@|AïðIJoÒöïÉÓ7é?û?÷äé)Ïú¿ÿ"aÿÅÿßœ´Õÿùþ/þüå ’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’Jrßõ“¥0[.~ê]k6Ál5Ï-÷$ð(ç«âšî¤àñŽÓ»¾Ÿ¥¡ß²7wݤî‘Ó\÷ØqÛ¾Ñc^á ‘k›eƒCùÎ`)­é¬·}N±ÃÂ^üf€Ð^]êï6,»B’˜bu¼ ˽ \ïW»=‚ÙÜÇ9¤m=‰ÕKö×Jÿ¹-ÿ5ÿù:zf 77!•þ›¢ç9ι­c¥Î$9V÷»Äýé)å:çUÂÌÎÄÇÇ~ë)õ^t =­ÂGˆ!VZY˜Öäà¸uޏ¼÷$2°'ä³£³kÉõRI$œÊ¤’I%)$’IMÞcÕí/18ºÛ­] ²iÓÆ«ê÷ü±oþÿÑ­]! ê!0îÔÍó”G&¡Z¸ ‚GäL2«tmt4¿ü”ßMovç 1˜àŽ>i6Š›ÀÖA’I28å4g2‘<˜$i‰óòS®æX÷1³,çÃC }ž­t&gBIîc_5&ÖÆ™hƒ¯âw~T”É$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¸ú/øŸÐäLü/WýHZè¿áüVAÿ‘0?ð½_õ!%7ô™ýoàR.kbO<$ï¤Ïë—øFüÿ}INSê98¶ÔÚšÆUcIûMí±Õƒ¥nu_ÍÏ;¢‹úþ½ÔVíϦÑ]óÃ[.kÜ6’}¥±¨ÚU¼œ |§î»Ôú%Žkm±sI’×µŽk\>* éX }Žimž«ë.yfýe²í¢gX¤¤8Ýw,ÔÜV[{­.kk]´3d¹îØéùÓ¯ÅB¿¬}5ÂS}¾¯\2ÀÝÍl=Ãpk‰ÔVãíÍ®‘ƒH£Ò4âÏ ïVÝÍiÛ,ݾK=ƒÚtI§V湕‘¶³Do~×Uîö=»¡ào1»„”½O"Ü,¼šq^mǰ×]KÜkvâÖ8ΘXñC§­·Óc®s.6’+n3,ÜeÕVÖ¹–ÚíÖêÅ[gMįÌf5í®×z"Ë7—û}Þ¦íóíÒgLÂkÛfÇ>Æ;x±ï{Þ\Çç=Äko> )]§Ú×8 ZÒñ¾²Ý̾íÍžDVáñ úÁ‹Sfö¸9ï¹µ5‘îô\ö€78ÎÙÛAÞ­è2ÚÅo¤ìkC =íö½›N× lpù¥oEé¶¹®uD¸»Ú÷¶IsŸîÚá»ÜãÏŠJbÞµŠKw5à»i-Û­ms)|ÙîìohöÏ)ëëß•u x8Ô›€µ»ÄY´I‚k!tœ³ôfXZAÞýv¶¶ÿw¸ELÑÞ¦Ì Jë}L®eb—‰:Ö7Ãyþ[’S—õ·?>­»ñÝf[Zw:»Ã›[ioc¹Û¹òñV.ëøÌu[XýŽ'ípSZÛœCµÓK†’“Òzl:1ÚÂ÷9ï,–’÷†‡<–w{¯:(žÓ\X]N퀶 žAÜÒ^7{‰;Wk©ILpzÆ>uÛqõ¨Vç¹Æ kÚÂßasOÒ »ê3ÄýÇûqp1±6ú!ÒÆzmsÞûdîÛ69Æ$+2|RSQž'î?Ü—¨Ï÷îS“┟”ÃÔg‰û÷%ê3ÄýÇû”äø¥'Å%0õâ~ãýÉzŒñ?qþå9>)IñIL=FxŸ¸ÿr^£)IñIL=FxŸ¸ÿr^£)IñIL=FxŸ¸ÿr^£)IñIL=FxŸ¸ÿr^£‹þÅgôùÿ ÕÿR€ú/øŸÐäLü/WýHIMç}&[øÓoÁß÷Ôô™ýoàR?M¿ßRSäÐÌŠ±Ÿ`mùÆšÏ/ ‚ý¿ cäQ•O¯ŽñmD¹»ÛıŎ'4…ŸÖ:NGP¶‹qï×cúWî-sÝTÝ?1¯÷Uëè9Œ¢Æ²º÷Š­Üíõ4¾÷Ã@ï7v£è÷INÛ×¹íaÜêݵàvtAù8çbWŽÜ—Z6G¦ñ'tñµ ~AbÕõ:»¨{]UU2óm”Òò#ÛŽÐö¹õ;Ýú'n€Ùå^;.œNœ(5?#§™-³pcØꟵàÓv””ßǾ¬š…Ô;}djÒZD85°|<Ö '¬ädÕ‘“×9µYYÚð \]nÃ"¸=¡ÛvNÞê?ó.»ñ65¸õZ,}aä:vc‚ö¹õÙîÝSç‚C¾—))ß‚ž%<x\ÞOÕÜçÓE5º¢ÑSë¼¹Î÷c_ËH%í0 xÖt‚þÄÏûEö³Ó²ªÙ]aä4ŠwPÿÑn,>›€;´Ü}©)Ü®ÆZÍõ¸9²D’×}ÄBF~5¬ªûEo°nh!ÇIÛ$€CD÷(]7 ø˜4c=•—T÷º!u$NЫu^™™——]´=­¯Òô¬yùÁgº¿MâÆÀú$„”éØöW·Ô;w¸1³ÝÎ0óSƒà°BÉ·;"Ü›˜÷d2àÝçZ›`³cÚ+Z= —‘h€ÿ«ýLúmmµ^0§xq{="A©Ä†ÚÐï¥ù³©Jz0eÅ¢w x?îN<‡Eβ  Œµîc}V¹Î 6‘_`ö»è¾àæéù½“_ÑsÿFú,c®nK¯}{ƒˆ65͇YÆ–Øçže)ÕûväÜØË;qúGm/†ÿe¤©Ñ‘N@°Ðñ`¦ÇUnßͱ†ÓæVODÈ»§àc×k*ÈÀ«º ƒmkFðÝ&Ï!Ñõ#ÊÅv5ìe¢Ácœàö™¥Ï°/³ÓsN£GsÙ%;{]cëi—Ö{{€í[?M]•ÚÝõ¸9²æÈñi-pù œwÕΣ²eL—°Û±å®³ef³q{ê²,Ýîú:xΫ{ ØôÞA&Ë_#ˆ²×Ú?$¤é$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”£þû'òµIGü'öOåjJ]¿IÿÙÿ¿'Lߤÿìÿß“¤§?êÿü‰‡ÿÿ~rÐYÿWÿäL?ø¿ûó–‚JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I,N¡Ö³±ròkmUýž†¶¼/6í\,í:ûFŸ(ÎêÙ è6u0ÚÞö<°=³è¼ ½Q»ÜÏiá.ù÷INªK§uÌœ¬ÖâÙKv?qeìú ©–º6¾Æ‚øúGEwí]Oÿ+ÿöb¿üŠJs~´?Óþ7ÿÔ±e+o+>î¡^N7¡UfÏNÍáÒâÆnfœÆ†|áWNŽÍ¬'ÕI$’s*’I$”¤’I%6º...OV°dÓ]Ḥ´XƼlo[–t^“en¬áÐÐá̪¶º<ŽÝ7@/^Ý­Ýú®ºÇøV®…ö\H«P4÷ø&Ú™¾rÕ³¢à¼ÚC}?R†c43A]uîÚÞ?;ººïÛ—c]pi¸ì¬î±·?%¶jÝ=ï: !\³%ìt@ —¨çl8Qviõm`pG¡nÙÝ÷ ÆÙ`pkC½ÀçÀ|`hWûCÉ LƒA25áMÖX1Ûd÷èžâ<üüRRT•wd¹º8 i÷ví×þ‘E®ÖÙ¸ kˆÐÎÍ%3I$’R’I$”¤’I%)$’IJI$’R’I$”¸ú/øŸÐäLü/WýHZè¿áüVAÿ‘0?ð½_õ!%7ô™ýoàR?M¿ßRwÒgõ¿Hý6üÿ}IHìÊÆªêè²Æ²ëƒÝUdÁp¬ý¾;ASe•ÙS.c®À×1ü«N¾2¨u^’zƒë{lôl¦»‰ÜË\êÜLj"@ØC„ê *?ós µy¢ÏLS«·{ÍGìw´ÃYè»g?K€’ø),ù¿™ée±ï®ç_w¨Ç9À4·uŽÊÍpݺ`j -¶0·ÓÒXÍ¥àmƒíú-Ö”‘$’IJI$’R•ŽÜ¦aºÀ2mc­®®îckœ>Áeun‹gPʪö_öc[==í¿c‰´j#sDö:¤§C&ŒÌjò±^-¢áº»Ã‡Ž°¤Ëkx{šé9Ìyðs~ù,Vý^ÉcvWk+·±–·vö2Ö Û öMç^GÔ+ú½–Üšm¦ªXûqé–5…ïõ¦MN<{\ÙñS»]µØÚßYÜÛZ[€0Z@ ÏÀ©ÁYy&ë0ñ±ÃšãŒqÜ ‹œE0gcôýå¦x#”²zUÖôìL]´Zìkû)x,¢ÀÐöíŠÛÛppöÄŽ<H*-±}•´Ëê Xßá¸~`ž•}J°Ö²V³‰U›…N5_”Ó°±ïfÙƒüó:Uö×eNªŠÃÚçãÖvµ¡µ²±é¼Ôè-,öÐ`òSºž‚Ëê½73/7'ÆV(#q>׺]´†<êÝ ù’8¯ÐÔb8az•Ëö=ŵ´jÃú_aú@óô’S·.ñÜêu‹GDÌõkvM•9”醗™Ú2¶¹Ó·]×´Ç—*­Vúƒk¼(eªÚ©±º–zžƒ¢5€Òê¸Gç~v²”ô‰*Ý;ؘUc¿é2f¸ qtX:Ñ+))I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)J?á?²+T”ÂdþV¤¥ÛôŸýŸûòtÍúOþÏýù:Jsþ¯ÿȘñ÷ç-ŸõþDÃÿ‹ÿ¿9h$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI(ØÍõ½€Ææ‘? )”¡\c’2ÍM9mÇ»lDJÙ ^Òݤ4ÈÓÝÎí"¼'4½ö6µ»„{„¸#H$k))°’ )x°Xâ4¥¢cA<Ô½þóÿÏw÷¤§ëAý?Oò7ÿÔ±e-¬”†dà¸Æá“ÃYâVr|vm`ù>ªI$‘eRI$’”’I$¦ÿÕïùbßü+ÿ£ZºIS¢æzú½²HŒ_Í$…o‚è]Ž×4·sõ«œŠaÝ©›ç)RUìÄkçÜ~€cgS¤êO'”ßd0ZׂL<suŸli¯tÛ*;¿| Ünî‚){E¬ \?2[¦ÞðRv.›X@i鬀ïÝ~rJl$‡[,k‰vØpÈÝ%)$’IJI$’R’I$”¤’I%)$’IJI$’Rãè¿áüVAÿ‘0?ð½_õ!h¢ÿ‡ñYýþDÀÿÂõÔ„”ÞwÒgõ¿Hý6üÿ}IßIŸÖþ#ôÛðwýõ%5ò³™c+ô­½ö5ï ¥¡Ä6½¡Îvç7÷Â|~¡‡Ðêíl=Û+Üv—³Ø©ö¼<Þ—‹}Ve0[]UÙ_¤fªk’`ŽÌˆóUlú¾ÇgW”ËvÖË ÝµÁ…³K˜§c>‰§I‘ä’™†Ö‘P¬;Ó//hhîLÆï$FÛSÜö1ísª1cA´aÀqóXÕý]½…äe‚ç½e›½­,;M·QÛnÏä·Ò~Ç‘•w«ê}¥Î,íÌkÞëK5°²žck[æ’“ßÔp1é}ÖäV]f×ö“±º§Å¹xäëÇ45Ö1îhs7‰nñ¸Ä¬sõZ¿¢Û€«ìÍÇ Øèk™Q£Ôk[`g¹§PZ~(ÿ°s¯É}¢Æ]{omnkŽØ²»œÍlÙ´º¿Ü%:ÌÄc¬cï­Ž¥­uÁÏh,kôa|£IQÊÍn;ê¯Ò¶û.ÜXÊZa€¹Íî ¾_Kuù/Ée­kÝè–‡³xÝO«ô½íÜ·8åIÝíÁe³exšØÓ ºZÆÒ8Ø’™;ªSê «¦ëì&ÀYSA-ôKZòíÎn€¼'oTÄv@ o÷Xêqoèk.©®ýá´ö9BÙc&ãê¾ûÝ[½õÙ2×~o¦2ÆÞÙÈ'»ß”ÊvÞ£ËݵÖN¬y mŸ4”‘ýF¦ä:Šêº÷Væ²çTÍÍ­Ï‚Îàxp&€ŒìÌ6µÏvEMc\Xç´áËIžG‚§oMË9/³0ÓM¶×}•m;ƒëÚ×=–3ÛcXkƒ‚©OÕzë¡ÔÙw«¥eŽk‹ƒ_[édï±ÂXù¡¿”ìœ`^ ÕƒY °nl´»P®„öQ˜eí¬_Q±åái$×­€ üÞþ :Ÿ«ì¯)÷Ùhµ§ d1®k‰hu¾ŸºÂÈÞé0ŠVž×ÚlÊe¬}gôgpm•ú:Xà;7À”ì×~=»=+Yg¨&½®Ü<[P‚ΣˆöÔýûY{,±Žw´Ô@yqÜ£`~? ðæ»Gl¶¯Q XômpqóUü¼m}âÜ1¬¡¯¬4³s]»˜Z×1 ZZá’“7.£@¹Àפ𬆨4ݵÍ'CTOPÁmöÐëëkèk]q.hk7’Ö‡t$·‚³]õ{"Æì»4ØØ{d½Ïô_¸½Ö8Ä>cŸ4Ù?VÝqynVÏxu`0ˆî{š÷WcíÞ»†„vINÅ·ÑHëPqÚÒ÷Ë ˆ’¢ì¼F¹÷ÔÖÔí¶ö€×;]'CŠÌë;&Ü|jp™¹õ³ìúíØÚÜjÜãê?pOH<üSWõn¶:Í÷z¡Ö=õ—µÅÁ®nCZÓºÇ7Ùë’6µ©)Õ98À¸«€‚öËC¾‰vºOe¶aú¨_Y±ï5±í./hÜæ?H HY”ý\ewºÇÝê°¾»ǵÆ6>«Ø6CWîO™LÏ«6Zü­ì²F݇pk«¾£ØZÓ~k@Ó„”èÝÔpi¥—ºöìx®·5Ív÷9Á›YÜdëκ–¯±3¶à5yÿ'_†«¯«Ž®š«9 ½¤z¶ls‹À}6Oé-yk¢ÌG"õ«ÔggÃsªqôå¬kya-²IçԩƳàSlõnœ¾¶’í—¶vG¨wCe­§‘Ÿ‡¥Öµ¯Ú+‘¼°¹µï çnç Vs>®Vku­s5-˜ãE˜ÓôòœÎܯL9ãc)ôÒÍÛ€²›|à 4”ÜfN5…‚»«y°VöÍ6 x„•ŒÇº·Ý[l­»ÞÂö‡5Ÿ¼àLæ³iè"ž£^`»s\ãI8¾ëæí°7Ay柒#úKÍ™e¶Ö+˱—€j—¶Êý(Üðñ½Ÿ¢ØŸ4”Ýv^#[¹×ÔÖÀvâöµßDÌðgDU‰oÕ¦¾’Ö_²ÒúÞl ‚Ðæ~ŽÆ?k½g@ÓÍlÕXª¦TÝÀÑå%2I$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)Gü'öOåj’øOìŸÊÔ”»~“ÿ³ÿ~N™¿IÿÙÿ¿'INÕÿùþ/þüå ³þ¯ÿȘñ÷ç-”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%8?Z?ŸéÿÿêX²–¯ÖçúÆÿú–,¤èìÚÁò}T’I'2©$’IJI$’Sw <3«Û ™ÅüÐOøVø.…Ù­.Øýê×à°>¯Ëÿá_ýÕÒDèuL;µ3|岨זº\#ž>þé¼Z\HÛßÇR?‚™kI’" Ÿ#!DÔÓij··IŠ hëËe¦Ùîtˆ`{¢SsmisAi¯ŠFšKƒ‹¹±8ŽšÖ·è€>I)t’I%)$’IJI$’R’I$”¤’I%)$’IJI$’Rãè¿áüVAÿ‘0?ð½_õ!h¢ÿ‡ñYýþDÀÿÂõÔ„”ÞwÒgõ¿H‡nF€g¼xà“¾“?­ü Ns[bxIK~“ù?yÿÈ¥úOäýçÿ"©duÔèÀ­Ô³Ö`°wît¼³k{éݬۓ•EЧ֭––X^^íϵ„W·M]ÒS©úOäýçÿ"—é?“÷ŸüŠ¡…Ô²o~1º–×N}n·µÒö††¸6ÞÒæº}¼p…ûc"¸³"ºÛkï®§°¸–šæ~w“íá%:Ÿ¤þOÞò)~“ù?yÿȪ ëÝ=Ïk¹¡ÆŽ©Á‘ïÅÀã[€ñ#à¢Ï¬]6Æ1õú${Z¶ m—–¸´Ó3¿t”èþ“ù?yÿÈ¥úOäýçÿ"¨þÛÂÚl— š÷°¸·é1Ï;CI#Î/Ûx^£*-´=ÄÍf+%ϯm„LÕ¸i))½úOäýçÿ"—é?“÷ŸüŠu˜ã" á[‰ .c¸Ø\ê3Çð))_¤þOÞò)~“ù?yÿÈ¥ê3Çð)zŒñü JWé?“÷ŸüŠ_¤þOÞò)zŒñü ^£<’•úOäýçÿ"—é?“÷ŸüŠ^£<—¨ÏÀ¤¥~“ù?yÿÈ¥úOäýçÿ"—¨ÏÀ¥ê3Çð))_¤þOÞò)~“ù?yÿÈ¥ê3Çð)zŒñü JWé?“÷ŸüŠ_¤þOÞò)zŒñü ^£<’•úOäýçÿ"—é?“÷ŸüŠ^£<—¨ÏÀ¤¥~“ù?yÿÈ¥úOäýçÿ"—¨ÏÀ¥ê3Çð))_¤þOÞò)~“ù?yÿÈ¥ê3Çð)zŒñü JWé?“÷ŸüŠ_¤þOÞò)zŒñü ^£<’•úOäýçÿ"—é?“÷ŸüŠ^£<—¨ÏÀ¤¥~“ù?yÿÈ¥úOäýçÿ"—¨ÏÀ¥ê3Çð))_¤þOÞò)~“ù?yÿÈ¥ê3Çð)zŒñü JWé?“÷ŸüŠ_¤þOÞò)zŒñü ^£<’•úOäýçÿ"—é?“÷ŸüŠ^£<—¨ÏÀ¤¥~“ù?yÿÈ¥úOäýçÿ"—¨ÏÀ¥ê3Çð))_¤þOÞò)~“ù?yÿÈ¥ê3Çð)zŒñü JWé?“÷ŸüŠ_¤þOÞò)zŒñü ^£<’•úOäýçÿ"ݹÑÄ'Äàx%ê3Çð)ÃÚãÉå%)¿IÿÙÿ¿'Lߤÿìÿß“¤§?êÿü‰‡ÿÿ~rÐYÿWÿäL?ø¿ûó–‚JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)K'.®ªz•¥¶¾§VC›sYK?G`~ú¾“Ÿ¼‚4ðÔBÖI%9xë̮܀úñ}&5Ô¹Ì/µŽ°–=À´ŸÍó²±ö^¥ÿ–'þØ©\I%<§[ÅΧ¨cÙ‘”oªÃg§^Ö¶ÍÏöñªI$“™T’I$¥$’I)»ÐW·k¶þ«àøVø®…õÜX@·R4ö€¹Î‡‘E^ÃsÛXv)¸Äþ‘«|õ,'×aŽÀê˜wjfùË'2òcq˜–O»Þtk¶êu2có¾Êw —IlµÜ¶HÛóHêJ›ripN¤42u Åõ¼Î-l‚5ò’–¡·5®»q˜iñ¿Í@ÚÀòÂL$ÁßSÀá7¯_‰jAÐqóIIBûM& —II#øã"’'t™ ÄþB’’$ ËYaplË~ ‚'⦒”’I$¥$’I)I$’JRI$’—Eÿâ³úü‰ÿ…êÿ© @}ü?ŠÏè?ò&þ«þ¤$¦ó¾“?­ü _áðwýõ'}&[øÓoÁß÷Ô”°­‚óéKeÒ~ˆ%ÀGÄ¡ãbcâÿ0Ý’Ö×É>Ö¹£SؽÈy½K–?)æ¶UKòí®pÖZןh ÖÖòòúõ|07t&c…j·²ÊÛed9ÌpàµÂAILäø”¤ø”É$¥äø”¤ø”É$¥äø”¤ø”É$¥äø”¤ø”É$¥äø”¤ø”É$¥äø”¤ø”É$¥äø”¤ø”É$¥äø”¤ø”É$¥äø•>§öOåjuðŸÙ?•©)vý'ÿgþü3~“ÿ³ÿ~N’œÿ«ÿò&ü_ýùËAgý_ÿ‘0ÿâÿïÎZ )I$’JRI$’”’I$¥$’®¼< ¢6’éò„”•%Y¶ä†ûÇ»–¿HÀ;tãâ¥U¯6Ù €uîÙ<¤¤é*ì³$5¥ãÜð4Ž ·M<§•*ï$´?In²§Q%%&I¾àçûÛ¹¡¢ A}ÈFì½¥ÄG´@ÛÞOå))¶’®-¿°ÝôcHåÀaA¹%ºîÚZGŸ‘””ÛIV^mÛ¦¡Ð¸L ðáGwVÿGGùÎINgÖçúÆÿú–,¥w¯œÓ“…ö–±­›¶l$ë¶¿Ê’|vm`ù>ªI$‘eRI$’”’I$¦ï@cÕíÜÐèÅÒDÿ…oŠèͶÁþH\÷Õïùbßü+ÿ£ZºDûS7ÎQ»—88´Kb#Aí;‚BÏæˆdý):“â5Õ$ÐŒJb º8“1ø);·DZIið$$”‹Ð;¬%Äý %­1 –ÉOöv$¸žäHð>Z"$’‘·¦h#PyîÙÊ¢ÜJÀ¥ÎÛ°ž$DpŒ’JG]B·=À“¾&y‘?Þˆ’I)I$’JRI$’”’I$¥$’I)qô_ðþ+? ÿȘø^¯ú´ÑÃø¬þƒÿ"`áz¿êBJo;é3úßÀ¤~›~ÿ¾¤ï¤Ïë‘úmø;þú’šS¤7¨äaZçíf-Ž70‰õjpªƒí‚æ´™KêÉ¢Š+¾öä[KC Îf® ¾»FœÑTÚÌ-¥ÕñºevY’×–×E™$°4’Ú‹æ´]ï ÛÕ°;mlÝ¥Îkw‡;s7 ‰IMn&f-æÊÝ^5Óé°C«cëÜÏä¸:HññCÎú°ü¬œÌŠòEG"Ú­¥»wCEy ÌŸÓ2G¶½ø9—¡}vzìõi p—3÷š9„&õJNI¡ÕÙ[}Wc¶÷únµÞ[íqpÐ\IM Ÿ«†ûwÔksÞø²½Îhsï°5„'Ö‡xíGÃè­ÆÊ«,ú~«4qcb[èU°vƒ^èWÔ0+-ɨ‹gÓ‡·Ýºëxý_§dÚÚ©½ucé÷Ò5áνeÚ4ÊJm0¶hÔ˜nƒROßãæ¤˜9®¤§iŽÄvN’”’I$§'¡fePÚï~;œÜ›²‹#ôÛˆ!À‡0»NÄr¶ØÐçop9çBH˜*ƒúÖ;(mΪÐe•¹›[¹‚’[m¾‹bO$÷õœlfä»&»i8ÍÞXàÒç°¹Ìk˜Ö9ßH´ÆèIMô’Dø¤’”’I$¥$’I)I$’JR¥Ô:c3ì¥Ï¶Ê›SmlÒ÷Vù´5 µÌ#¼Õ_+0ãÙUL¦Ì‹nÞZÊö€\IµìœS“OÕ̦=î}õ8»´³k6µ¥µ¶¯¡KHdÇbL,?«ùÛ‹e¶Òÿ³Y¾vàÐûž[ŒmŸZŸš=KêÛc/`¨_µÎ· p'@™ýOÆ`¹vcƒhk t‚w ~Žœ¤§/©}Y·3+3*œ¯³Ù)v?·w§s6‹,÷OÓcÝ#IñD»êöûƒšú½/T<2Æ–1¶ k$èH\|ïÚ”Œ£ŽêìkE£×!¦³k˜, ÑÅÂC¹-‰îˆÞ¡€àÂÜšˆµÅ•ÃÛîp Ýu ””ÐÀè-Å» šÍ´ Ú\ÆG¶¼o³mi<}ËU‰Ñ.'Û§'“çâªÑÖ:nE¬ª¬†8ÚÖ¾“¸EÆÆÅzˈôÌ«aÍq KL;ÈÄÁûÒS•Ðòòéuw»àå?(0‹6ö¹‘¹¥¯k›2[5쩌{ýGµ¡®°ˆ. AtJγ]çUo¶×Òêö·xôu º6µ£w3å)îëØÿh9 ²¡ŽÃhÒl`w¦Xcœ}΀ÝÑ))¼’‹ƽ¼=¡ÃàD©$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”£þû'òµIGü'öOåjJ]¿IÿÙÿ¿'Lߤÿìÿß“¤§?êÿü‰‡ÿÿ~rÐYÿWÿäL?ø¿ûó–‚JRI$’”’I$¥$’I)g9­â“ MêW$ol$HãÅ+,fÒ`H2<ˆ?Á ìŒÜÓÈŽÚ|’R_Q’á.Õ¢F¿œê‹¶¸´¸jb~ä#ŒAÜ×IÜ,#‰pì<k1M¥ÅîÛêD´I‚Øó·‚JLm­¦öƒæ@á-Õ¼rÀ‚ƒ^=Î.1Ƥ—n‰Dô¶ìs@s˜Ý 'g^S úçc\Ùn… >IzµIÛ IÔqâ iß%Çisšâãhˆ‘bnÝ¡æ` ø䤤âÆ;‡ð#¾‰×0Ù&4"IBû4òãÚbF ƒÌ“ÙA¸diºtøîÓæSc}eѸÒ$x©Hñ ¸Åý $‡3kšG:tüT?etÿô#ïw÷¤§/ë;šoéàH7Ïù¬Yj÷Ö <|lœRÍ¥æðu<³MUøìÚÁò}T’I"ʤ’I%)$’IMÿ« ž±l ýWÿFµtvSežÆ4KœxÄ®[£áâåõg·&¡hf)- ±¾ jÞÒl©ÕŒv³xÛ¹³ bI ‡v¦oœ¶¬ÌĪÑM·Õ]¤n½íkˆñ &cD­ÍÃ¥Û.Ȫ·¯{Z}¢]¡=Õffý[§$¾¶[ébYŒÌGca›Ú"-kNsJ~õnŒG²Ì‹—cKžòàXcÍO/{Zèwº©ƒÝ7N¼¼[šUõØÇF×1íp2v ÷vŸUFž•MMÂpY°Ñï†íi?Õ>áæ¯$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’—Eÿâ³úü‰ÿ…êÿ© @}ü?ŠÏè?ò&þ«þ¤$¦ó¾“?­ü Gé·àïûêNúLþ·ð)¦ßƒ¿ï©)§ŸÒèÎÉÂȱŮÁ´ÚÐÑ«@»ÝÁ®ù*¸_W1ñ1ꥷ>ÏD‹«È³%²ã$À­¬øo;¨· Íi¥öîe–¼°°me[œw¹³ôĪ›:Ž#­5:Á]ž©¥y½Á­w´l$¦¦/Bn6]>»¬ô*®­Žiš˜úÛ`ðµðd(R·¢‹ÝsnÈqƶË.µ¡¤>ÚÍD—ÉÜq G(ìtÒö5™ {^çWê5À°=‘í.žIt4ÙÝM¸v9†—ØÚ©9=¥k+i-$úi<SJŸ«¶Un?ëS]BovÃêZ[eV‰sÞý³é Ä|€Vqz-xæ—KßO¥îÚŠk¶–ƒ©íl¨ßõƒ ›³¨ÙkßÓñþÒý­ÔnÝÅ•IöËd(#ãõ\lœÊñ)s­Æn[_ÐÇ´4÷÷LBJm€íw×M"‚u]G§Øæ¶¼šž^ l< ú_t&gQéïôË2+>³‹*÷s‡ }é)²’®z†Û95PÉx „|Z ø&«©tûEN«&·¶òE$8CÈýÔ”ÓwC}”šíÊÜ]m¯s›Pl×fê£s¾—gr» Õ”2†mÆ÷d—šì 5YX{^Æ·}ošÆ¾?Ä«µðýP8—:ÖR#Ôum“½­ž Fáâr3k¤3k]{­k¬cj‚KÝÅÒH¨4” cX8hNº ;§Y—uüJ})­î6ÐÜ­,Þ+x$C ƒÇ»h;{«xùôdã;.©v8isln%u‰IM„–k:Ð}LpÅ·Õ±Õµ”M[¬ÇXÃ»ÔØ=¬2&Rý½†.¡Íx³:Ë)lmp­õ;Ów¨æ¸€ ý ‰’’$–eX0¬eOk-ìÇ`–€CØH6›àÈñ Ë:žkk´=ÛkL³s ¹“ã~ )´’ ÙBœŒzÇ’ç5¯µ¥¬ué3¨ià#$¥*yý+¨º¯¶0[]M±¾™ïꆴF­"4!\I%8õ}]ôì}ŽË{Üú…{‹`µÁ§Ôl?h%¬½³àB–'@8Ï©ßjsÅvz¯nϦCî± —9îÐÞîòtùë$’œû:O«}޲÷km†´4ú‚¶Ô&É2Ѷb9Têú´ú†=c*k­®mÖM¶4œ}­Ü÷<7ÛD q$”çQÑ«©Õ¸Ú^êD H¥÷=£“þ›ðZtÆDè" G ÒIN]Ëj²»2ýÖ]e»ÛPÛšk¶¸.?I§žÉíèUd;'ív›Ûy>‰ 5ÙHÚæ1²·‚汯0‰'•¦’JaMM¦šél–ÔÆ°©†ºÏÁM$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJQÿ ý“ùZ¤£þû'òµ%.ߤÿìÿß“¦oÒöïÉÒSŸõþDÃÿ‹ÿ¿9h,ÿ«ÿò&ü_ýùËA%)$’IJI$’R’J I)I$’JRI$’”’PRIJI$’R’J I)I$’Jp~´?Óþ7ÿÔ±e-_­Ïôÿÿõ,YIÑÙµƒäú©$’NeRI$’”’I$¦ï@qoW¶]ú¯hÿJßBûžÖ“é;AßoþI`}^ÿ–-ÿ¿ú5«¤L;µ3|å®ü­ŽÚ[fã=îøp™Ù­mΨ6KLLé;¾ý’ÐF¢ALÑÃ@$Ðý¡Û¶íníuŸi Nš):ç7ZZ$†˜=Ä4M @ãDƶI¤A&?Íá%5Ž|3g½ žt€ÝÓÇŽˆ­ºââ †î‰3ÌpG’.ÆŽÉ:JbÇo`t@v£àxü’I%)$’IJI$’R’I$”¤’I%)$’IK¢ÿ‡ñYýþDÀÿÂõÔ… >‹þÅgôùÿ ÕÿRSyßIŸÖþ#ôÛðwýõ'}&[øÓoÁß÷Ô”Ñê}"®¢úž÷úf¦½€ìkŒY²KíXñ³G Bgôz’o¼o°Yk À:§µ³È÷T ¢gõ!„ö7ÑuÛ™e®Úæ·k*,údn>ñ)7©b]KÞ+°Zic_¡s€c´ÿ< {¤¦¨è_ Å©ÙOØ 8o,d°@ m|Ü~(ÝC£aufCeþ—¥[ÇÒ¬‡z‚ÊÝË\—í®˜]^ËØúís«ìl »;‹ Gt³ú«p¬s &Æ×Iȹáì`mm%§é‘¸éÀIMsõsÁϲÛ•g­ëdâñ¹,{bæ„~ŸÑpºvC²1Cƒžl. ÿ:æ>‚ÏL5£°B¿ë-7gQéZ÷àcý¤í-¡Î®©:½»›#ùA«cåfW‰K\ãf3rÃââÖ†áÞé„”×gÕìzî¦ÖØH¦‘O¦ö‡1Û}M¯þ•ÓÌ©3¡µ¢ ì›éŸ|h{. lÎÀXïâ­3©ôë Ey5»x%¤;Hlî׎Çî)7©`;ÓÛ{Lí•LÎâˆIM*¾®ÐÆ[‘eÀÔhجÔê9 w>(èÆìŒ\œœ§]n(ØIcZÛÛ¹­€ÒÝ଻©töíÝ“[E€à$—‚?² ø%_Séö¶§WÇ6ó@wm$yò’šmè×2¶†d¾º3@l5ÌÖÇ[ݵ‡Ì+7`8š=ž—£SñåÃqôÞ¨í¸Ú¢:¾!§Ônç<°ÚÚ@—º±'€ÜѸuÙ¬«`­¾³­c¬`k[±//y7P'Í%4,úºËk¦»2žáM ÇŸN½ÛY;\ÇDÖè0í¿Hr­átª0q¬ÄÇs†3ÁÒcmAÍÚáWƒI÷Gñ¢zþ;ØÇWYy5¾Û××íc=A¹¾ïÒjtl5V±³éÊÅ9”‚ì}»ë°Ah‰dr;Ot”ÒÆú¹‡N;1í"ú™evzf¶6³é1Õ¶jÙ;¥Ç¾Š-ú³†Zëlp¬5¸~â;Yc®cXC½Ðâ>—`YÖ÷ÐË+ýK[W©\Yޱ§ÔÝ´{ZdsÇŠ_·ñE¸U:·‡gYe26¹•:·zgÔx1µÖ{ZG%%1gÕ¾žÌŸµ7w¯-t˜-öÙëlríãÜ1ºU˜ï¦2 ›A{Ù-ú/{EpÖÉ `lé<žÊýañ•8W`6æ;c€®i Údý ù…eOǰ1û«°;m ¥Ì‚[ã;NáâS,¬K/¿æÜjÏ6l ÞK]\xö¸ð¬ª™}B¼[é¥ÌsýXÞöÄVÒæÔ×:L™{Àöê­¤¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)J?á?²+T”ÂdþV¤¥ÛôŸýŸûòtÍúOþÏýù:Jsþ¯ÿȘñ÷ç-ŸõþDÃÿ‹ÿ¿9h$¥$’I)I$’Jk?ÎÜwý'9Ävt~Tþ…ºj }-O¼við„¾ÛWƒŽ¤víóü9S9 ¡%À–qî’5íæ’‘ЬuM¡Ò ]%Ü‚$è å9ªàélÓ-D‚àèãH)»!c©}"{¶ö9Íh™wô¿ò%%1hxi®Æ“¸˜#Q“¯ qí hkà´â@t™çº1µ¾¬-Ð9…eTÉà$·I»¼RR1‹c\È µ¤Î±ÎÝxò)Å §tÄ´k0íß‘HeÖHd‚{p k¯”†MEÍlÃ4ï>~I)‹™m–z%­ÚY°È:ò"‹¨¸¶Y·“Ì¢?&ªÜæºe‚HŽÐ]ü}®¨]³Ú”Œb<É$j ž=°8º^…»½žÐ×w'ˆn­ûˆDûS6ïÚí»7Μqò“rê=ˆ¡¼ ñIL‹A$€Cp:ɘwÇ_ÁGìÿ¹wÿœ?¹íUî‚çLi ™óì…ûW÷Ýþc¿¹%8Ôdà¸Üûw›´y˜†³_Ф¯}`Í£''µK ÄÈ#BÖxª)ñÙµƒäú©$’E•I$’JRI$’›½»º½¾ç616?Ò·Äо‚æ–úÔF¤GýJçºÚίiq‰Åð'ü+|B욃I’cXÚïîL;µ3|å…˜Ï|ó;ZIÔ‘2OÞ›ìö€Z×A“±òe¢gAƨ‡& 'XÃNÄü–ïÖ4ÿ¤%4b»ÛY¶=QìÚI 1•ãd´‡³Û¹³û®ÝØUŠì@-ƒ;ž'ò4”׫g¦\wƒ»^ä¢-L,l8ÉOà?4’R’I$”¤’I%)$’IJI$’R’I$”¤’I%.>‹þÅgôùÿ ÕÿR€ú/øŸÐäLü/WýHIMç}&[øÓoÁß÷Ôô™ýoàR ’0DDóó )£ÔúE=Eõ:Ç–šöhÖ;K6nÚ^ÒXï`‡7P“ú=È7‹7Ø,µšè5½­’$êštW¡ÿ¼?Í?ù$¡ÿ¼?Í?ù$”掆ßK·eZï°’pÞE{«Ñ£!Û@B6GÂêu™,ÜóW¥[„n¬‡z‚ÊÝôšðîà«ÿÞæŸü’PÿÞæŸü’Jrÿææ{ì±Ù6zÞ¶H†¾Ï\àæ´l¤iù¡£`ôü‡_ŠÒÇ<Úçdk˜óð ôÀh®ÃÿxšòICÿxšòI)ÌgÕüZï¦öØâh¤Pö±í!¾¦×{›£‡¨xåJ¾‡S@ßc½#îÐÝì´2#ÚëÛçâ´aÿ¼?Í?ù$¡ÿ¼?Í?ù$”åÓõw¶Ù}·Q£Ý°Ef·PÚÑÃ]ÏŠ›ú(»#''%÷݈6î{+‡´9¯næµ ÒÝZ0ÿÞæŸü’PÿÞæŸü’JrÛÑlmm ÈÛetjÈh ,ƒ[M‘îvÖ ‰ ݸNßC±¬ôMº€H>›ƒxݦàko*Ì?÷‡ù§ÿ$”?÷‡ù§ÿ$’œ¿ù»‰íý#‡µÍ³kX7¹Î±áÚ7Ûµ×<€Ø«8]/Ü\ræãÙ;iŸm{›µÞüÐãîŽ'…nûÃüÓÿ’JûÃüÓÿ’IN^7ÕÜ*(e>½l²»69•†IŽ­ ÖÖ†~t“tQoÕœ×>dž·“¬{®cjpÖã¦éÐÙkCÿxšòICÿxšòI)ÌgÕÎ^OÚšëËNòAÛ=o£©€O$ñºIÇ}[oqm%ïgµ¢cE~Öµ­ »> )˜¥ mŠÈ ³‘¯ÇU'U[§sfyû¶þD0â%–>é àqñQ?k hû[¸˜ÐéòðIIM5—nLÌ&u×_4½ OcÉ‘:ëñ(e‡48¸dˆ?»¾*@å ¤ýË¢~–¿‚JHh­ßLov²ã¡Ômí’8ô»G7wÄ“÷ê çÚ÷î¤Í[H‘Ü{ü”\r¶ûC§g—3ùa%&ôj‚Ý  ¦„ʈƪd‚ïvḓ’e™2à íLí‘ÈñKvFèis¶ºhÓ®Ÿ”˜S[^ÝŸÇâ‰%VÈõCI#pÒ$LåÂ¥Õ?ÓÕÿmŸïIN_Öp=~ŸæoŸóX²ÕÞ¾ÌÆäá‹ö“vÐÑí­ROŽÍ¬'ÕI$’,ªI$’R’I$”ßú½ÿ,[ÿ…ôkWH@" ö\Ï@=^Ý„Õu‘?á[æBöä˜{f4†‘ÿL;µ3|囪­îÜæ‚clŸf?Bd7å&>îö‘£u;G¸§Ÿ8P/swn™Ö#iÙ'Ê%6Åu²¶í`2y:üÔ•F}°†Ép]1âÞ4ø©·íM™sœ¦„¦ÙÐGt”ØIUyÌ×%¼€èÓ·ÎdH&5))t’I%)$’IJI$’R’I$”¤’I%)$’IK¢ÿ‡ñYýþDÀÿÂõÔ… >‹þÅgôùÿ ÕÿRSyßIŸÖþ"àI< ãà“¾“?­ü Gé·àïûêJr:ç\L¿ ôì~üÏRAn<¶²æqÜù×Hýeã9Ô7Ï®ÊaͲÖÛèº%ÞÖ‚×}% ìjëêÚç]_£i?^¾Ãåî(.é9Î±ÎÆ¬ºèõÝ]v¿=RS‰õ‚Ë«¯Ô¨‡:ªì²ÖíÚ×¼c{ ¤ÿHæQlúÅS+/Ö¼–›ÐY­A–Z,’à¶§iʺޛÓÛ·n=mÚ6¶@àLû‚vôì‡ãÖË‹´ç{K÷´’šnëlvcq*l?Ö­Ž.‚ íŽ#iЃâ‘êV³38ÚòÜ\s˜(y–6–\OÚ7lÝ.ú0­Ž›ÓÆGÚF;ó"ÈÖfgÑ(Þ$XÒÆ–Ý>¨"C塇pïí’œÑõƒeô^CÍa²Ý¸1±¯¸9ÎXhnrm¢Æ[lu@µÄoÇv^Ðdíl|U£Òza®ºÎ3 )3SuöÁ¯b$$:GK;ìµËYé4ÄÃK6-¤‚JkþÞ«~McÒü],hƒîk\ÒA m.çÂJ¿Eâêk¸4žð'ùLPÝÓ°^û¬4·~Dœ%¥äF®ÚF¾Ñª5u×[]m cÖ´Á%/¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Ü–ãû®ÿ4ÿrt’RÛî»üÓýÉn?ºïóO÷'I%-¸þë¿Í?Üt˜‚ N ÊGü'öOåjJ]¿IÿÙÿ¿'Lߤÿìÿß“¤§?êÿü‰‡ÿÿ~rÐYÿWÿäL?ø¿ûó–‚JRI$’” ûªa‡º~êÐìÇ®Ââá%Í Ÿ'½%..¨Ä8k>\xÏ ÛmnkœíoÒªI$‘eRI$’”’I$¦ïA²ºú½¦Çµ€âé¸þ¾+¡9x nd¹Þ…M6õ{¬m€bÈ¥jèè0Oƒ@L;µ3|埯NžðdH#Q÷vN-­Ì6Á2|#•‰Oæ‚6€ÝíùÉz.Øê÷K_;Ü~–¢4cgëÓï‚Gö~–žIÛmn 5À— Í#‰CÌݼ¹ÅúÄøÌè4îŸÐÁì>öÖÉÒ@ø¤¦^µRá¸K>—’^µQ;„OÈŸà¢(<¹îä¸4}âfFŸ•1Åa™'Ý;¸ÔDñü¤”ÈäR ç@ŸÖª Ü=ºŒÐÇ5„‰Ý¨£ÿ"Æhqpsƒ‰ AÜ"G‰IIö%)$’IJI$’R’I$”¤’I%.>‹þÅgôùÿ ÕÿR€ú/øŸÐäLü/WýHIMç}&[øÓoÁß÷Ôô™ýoàR?M¿ßRSW©uLN™UVåÝkifѸî|êGÁOö†²Ê칕>»QmŽkIsZײuä£Ò1ú“Ú2œãKj²¿I®s$ÚK˘æÌ4wAoA«{Ÿm¦×¿asœÁ©kè°ÿœhñIMææb8±­¾·ê°´î¯÷Û®­óMŸƒ“h«"«¬-õXðã³vÍÞÙÓvŠ‹:L;[h5{‰©Õ‚ÒâÛ˜ßÎÐÛŒ·¿ˆV0zu˜—6çä:÷6£Q÷ýAsÞèIø¤¦x™ìÊh°Ue5<ÅVÛ°6Ã%°Í¯s»w@õ| ûX Ÿé4¼–€C€Ÿa]Þ»a š1YN#…2æÞëö9ŽsýÍ‘?H÷CÆú¾Ì{1Ü//m›Úæ¼1”5¼qîÇk¿”ÛÆêU_GÚ_[ñ± 9—^kk c£ç ´06—ýª­!®w¨ØÃ{A×’ÝB¡‡õ}˜Õú>¥n¯uo;iÚ÷­mÍÞïQÁßF8C¿êá"±‹{ipöÙc«1·(nkf ç'¿‡É%:ŒÏÁ±Ïmy9Õ6À%¥Ž tëÙÄÏÌÛ–qYE¶¹cì±›,.kwn{]ù‡€VsºÛ—„k~ìzn¶ë‰Ð–9¬s)"}ߥc]1Ù_=;ÙîÏ{CïØÊëq°0Øe§ÏÔIKÓÔp®¨XÛ˜Ù©·¹ŽsC›[Æàç¶tT™…c«my=ׂêC^Ò^Édxì²­ú¼ö ì«!ö}ž¦×];F¥‚ Ò7XÖ j‰änâ Ó:V]?gÈÈ´W{CÎEuë¼½öXÜ×87ÔýÎx0’Pæºvv˜1Øøé€v²fNšDé)I$’JRI$’”’I$¥$’I)J¾V~6#ñÙâÓ—h¢£îÍ#€b'ÅXUsº~>x­™}L/ÝY[ª(Ý!%-û[§ ={/e, u„Xà×1ÅŽylñ!>WP«Êi }÷d:ªª,ÜàÍ»ˆõÀ~ÐYíú´Öã}›íos=2Ò÷´—ší¤X\FÓ"5=Ç ïRéïÏ­•¹õl^Ûi‚í6½²ö–Áˆ))#º†+îtYú-ôHõYë9¬föL]ªwu ³ÔvM!›ý-ÆÆÇ©û“?KÉQgÕö3%÷œ‡ØêÞ’ç5Õšèvðß 7{'ÍCêó°ÛA£*nÇq,¶ÊÍ„ÖYélxuœ†ðY·à’*óðmÙédVÿUÎepñ.ugkÚÝu-#T±³±rßs1ìýÁ–9¤9»‹Cà“ÄꨀӓMæò[S¬&¢kƒî9-ú67ÜÇ8Á2<•®›ÓŽ,i¸Ý¿Ó–†ímU¶¦7I©ñIM‹ïe‹$5kD’ç¸1 |ÊWTÃÄÈû5Î"ÓE™-Hs*’ð L"ߎn»åÞÊl,Ž]´±‡û;‰U:¯DÇê°\÷1ϤU[ØêÜ^,a3®±ðIM“Ô0à×dV×—²½…ãvû5c »([Ô«¯,á²›o¹cìl%°–µÅ¯{\F‡è‚«Žˆ{nŸÑÛêÔ݃I·×±¤î×s¸:@ñEÌéŽËʪ÷Zƶ’×Wú nai—zw:”™ÝC XÚŬy/}ns\ XêØëgÛ jgõ.œÆ±ïÊ¥­µ¦Êɱ¾æ7W9ºê’ÌoÕj†=˜ç%ä?xe€ík™cÙsÜßg©¦Ðß‚±OD}..f@ý-.£'ôd—‡>Ë7µÏ±Ïk¦Ã2ç’›ÍÎÂÑȬþŒ]ôÛüÑ,çèù¥‰—Fe#ÛêsžÖ¼AcY ‰‘-ÑfÿÍÆ›_cò ·ÔÆAi†ØÆ2¯QƒÔÛÿ)háã;IÖœ_eް€Ùu¯u§Ú4¹%'I$’R’I$”¤’I%)$’IJQÿ ý“ùZ¤£þû'òµ%.ߤÿìÿß“¦oÒöïÉÒSŸõþDÃÿ‹ÿ¿9h,ÿ«ÿò&ü_ýùËA%)$’IJI$’R’I$”¤’I%)$’IJI$’Rï}Œh5·{‰ÛÄðˆ— )®Ì‹^ö{b·AÔkîÝô0dïºÖÚæ†€hHï´»™þÇk†ÓÇ2hk@ka pÑ¢JGU–=Âci`w$àŸußèÇùÿùŠ$ƒ¤ê’Jy߬޴å`‡°5 Ýg]¬‘ÀYËSë9þŸäoŸóX²Óã³kÉõRI$‹*’I$”¤’I%6º+òÕ¬ô*“Šwí°=F­×du0ÒF+AÿŒð…õ{þX·ÿ ÿèÖ®‘0îÔÍó–¯Únkš,cZè—V%Çó¸pÓóBvßvÝÎh0—3iÀÄ {«) Æ×ÐÿU¬´»i’s>jÂb‰Dö)ÒR’I$”¤’I%)$’IJI$’R’I$”¸ú/øŸÐäLü/WýHZè¿áüVAÿ‘0?ð½_õ!%7ô™ýoàR?M¿ßRwÒgõ¿Hý6üÿ}IM.¥Õ ëfÚÎöYiu·6††Õ³w¹ÍtŸzUõ®šö5Æí¤íÜÒ×KKÚÛ!ð×Ç:«âcÝ}wÚÀ÷T×±ÀÃË 0G>À«ßÒ1o..u6=ï³iáhclf­>×zmã_4”Ïö¿Mà<J®7@¯–î¹ù7±…Ÿ¥Ú+s}'R+- 0Èqóñ%%72ú…Xø¶ä2-ô¬mNÛ粸sÈ ¼ICoU©¤Œ–Š¢¶[5¸ÞÒë6šÙ'JÉ&aôšéèøÝ2÷z–×ê?÷ì­Í´¸ÈáϧÎèØy­{lÜÀö2²ÖmÛµ…ä kšœ<ÈILÝÕºs^êÍÀ¹ƒqÚ×8ZØkšÒeíÙ:« µkÙ‹>ŒµÍs¯IekwZ½‚À[¸ óÁUÏAÂ94ä’÷YC¬, p‹,7–û˜bLüՌŸN ^Úž÷ú›?œ À­‚¶5°­ ).N@Ç­®Ú^罕±€Á.{ƒF§Ã•S¨u¬l ¡s]¹ôY}oÐ5ưãéIáÎ %¿nÚmÔÚâ@ç9­ì\æ–IøP3úVPeµåßW í®ÚCC½@摨pwt”£Õúx{k6QïmA¡w½çh„ð*TÕÔ[Ó멯¹ÍkÀ}¢¢ðâAôCšE…±¨!ѱ…Âàû›`¶±-†þ³€öð÷jgå¹8&Ðû/·ÒŽû8Ù³sàAs ÚO}® )ºÎ{ClasƒìÔ†±ön÷s]°€F…;ºÇNlT—:ÒÆ×cœÂC‹Ú,‚Ò=Ñ®Š³~¬tÆÑn?¿Ò´ØHáê5ì#{XèÜJ5=Š6Š®µô6±¢¦¶Æ÷{˜Ê€«cÍ%%[§‘>¶Ù¬[îk‡´´ªI$‘eRI$’”’I$¦ÿÕïùbßü+ÿ£ZºEÍý^ÿ–-ÿ¿ú5«¤L;µ3|åI$’ jI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IK¢ÿ‡ñYýþDÀÿÂõÔ… >‹þÅgôùÿ ÕÿRSyßIŸÖþ#ôÛðwýõ'}&[øÓoÁß÷Ô”ÓÎË˪úéÅeosª¶ç K„ŠccKx.ßÉ@wÖ +-u–²›P .Ûq­ ý!ôM­“Ç„«y}?0´ÞvµÌö=ì–mÞÇ8nk¶‰ ΉÓl»ÖôÜÇ[ÞÆˆ, †1Á£ù¶öì’’UÔ±n·&¦êa‰µ¤ v O}§˜(5u †âW—™[ZÌÃE2ûfÆï q$4ß ±ún&6E¹µÍ}ÃkÁs‹#sŸŽ%£ÜâtÐëèØSözÅŒ¤êëØd¿ôHli¢JYÝo§ŠÅÏ{\a»I$úD@ç_]ŠX}VŒÏ\×]¬n;Zç›Îùh‡ZXALÞ‹Ó[oª*!Â6ïÚݾœmfí£ù–p;#ãácc>ÇÒÒÓhãq Á{¸$Ž^RSO«_»æRÚ™[mÇ5Å»ßUb»?•úfêÝ9N:þõ"»Ècà ä±ö ÚÝ3è5­,mnh†¶¸{Á­¬p±¬¤îšÚÐa°4C³êÿM}m¥­²ºšAscÛ¸ ì«i!Ól3^é)k ¦ ÆÙqºßI›9õ+¨¸î-ö‡ZÔlLú2ÛkèkÜÚ\ZIÜGfÓòt/ؽ8\n¸<¸8E†ö[ìnèhÝ[NˆôáQAµÌß¾ÿçç¹Î<Àq$¸Ä$¤ã„’I%)$’IJI$’R’I$”¤’I%)$’IJTz¯T7ìÏ}FÊm·eïo5ÖçºØÈnÝ|¤«ÊQU¯­ö48ÔIdñîi­Úpe®#T”æÎ,Vb‹+±Îk÷6 =¾£ƒ‰ç2²ï4~©Ô/–1­®É¾Ö½ÕÖ}»[g£%»§é4I½ ¥6¡C)ÙKk5 š÷††–¹œròÐyXÈ«#a{íi¬ƒ]¶VHtNïMÍÝÇt”Ó]ÆmŸfikòØjmi–M¥Ø~‘ õ’§§¯ôü€ß³ 2÷ìk*hs¾©¼Ã 7nº™ò”ftŒ ì}•ÖYê˘àÉ«g¦í›¶ÈôÛÛ²ƒ:'O®ºë©¶VÚ^l§m¶ÂFÒÖù #óxILY×ð é®ÍôÙ{ß[`h2ËD˜qÑÏn‘>p‹Óú‹sÝyeneuznx‚öØÆØt;´HtœÝ]íc›eEå¤=ãK_ê½® ´»X:LL \ ñŽÒÑaòç;è´1¿L˜ Sa$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)Gü'öOåj’øOìŸÊÔ”»~“ÿ³ÿ~N™¿IÿÙÿ¿'INÕÿùþ/þüå ³þ¯ÿȘñ÷ç-”¤’I%)$’IJI$’R’I$”¤’I%(€DAä(úl™Ú$j yÊVÝ Ê'ð@­™`mqÜ=¾éÔA“ýÉ)7¡DϦٙ˜©liä á§Vš²ZæúÎÑ ûÈþq#s¥KÒ¼za¥Æ “¼éîY:ûRRqU@@c@<è;¥é׿~Ѽþtj«6œ¢ÒãÁqæFº¤úo6;i!…Ãi“ôDx<$¦ÀcGâ”'UêªöØ÷"’4:ù"zvÿ¥?æ·û’S‹õ£ùþŸñ¿þ¥‹)hýd­íÉÁsž\n³Y®€,äèìÚÁò}T’I'2©$’IJI$’Sê÷ü±oþÿÑ­]"æþ¯Ëÿá_ýÕÒ&Ú™¾r¤’I5$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥ÇÑÃø¬þƒÿ"`áz¿êBÐEÿâ³úü‰ÿ…êÿ© )¼ï¤Ïë‘úmø;þú“¾“?­ü Gé·àïûêJigubeUQcìe”Üò*­ö¸:³Pn•ƒÞUZ¾±3Ó©¶Rë/}5Y–ßg¢×4I†Ã®o%kësÃÜÐ^hq†º7žÐ«þË龫nû5~­`?h·l|6¹%4¿o=ï UŒý®s›%®p"»Þ+`Üâiå&u×»"¡ösèØÖo-{I­ï»Ð‰í‰WÏNÀsÃÎ=eík]´Hݺžó÷§¯ ¶†×CGæ»Ôsµø¤§5ŸX™n^55ÒãëXêK\ENcƒä7n×—ÂT¿ç L'}6:¶oõ.@¢÷€ºN”Á\oHémß·¡êFÿhÖ#î-ŽÁÅ-s[S]'pkL8‡ÐA黟’˜âe¿&»i5ÙU®¦Ê‹šè-Çst:eTéý6Œ_³0›l6¹Î òwL05¢ Dm%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¥ŸÖ:ŽGOû-•UëVûHÉ`þ‹+}uqË›¶c¿ AD±Žsæ‚êÉ,q夂ÒGÈÂJqYõ—õµ6´ûö¾·5¬s¶ÛkÙ]s¹]ê—õ }³1³»íWX½õŸnÙ«{In¦Kdù#™ÓH²Õ™ª6=7NæG’Ÿ#§áe šo¤¯p Äñ€’š·šç)­•º†? 4úN6>†¾æËn–ëù±zûs_eŶÇd8ŠÁ-`, õ ›ŸÂuWGOÁ:ñXµûw<4v–L~îÑÙ/Ó}’¯L?ÕkC@úÍð:öIMZúû ´Ón;Ùmΰ´‡íc.v8´pKdøn—ÔlÏvC_¥[ F–’ ‹,©¶‡:;Ü#þÎÀõoÙëõ*sŸ[öêc·¼ƒü§j|Ôññ1qC›S);ždñ&<’RT’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¥ðŸÙ?•ªJ?á?²+RRíúOþÏýù:fý'ÿgþü%9ÿWÿäL?ø¿ûó–‚Ïú¿ÿ"aÿÅÿßœ´R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”àýhþ§üoÿ©bÊ[?Xñs/~˜Ô? Tmõ ÚÐÓïs|_غ¯þWß÷Óÿ¥“ѳ†q¢@ÕIeW‰Cò/Á½µ°I#Òqø¶ÒIø'Ç«?&¦ÝN ï­Ü¨Ùxl2{ýà²H¿bê¿ù_ßOþ–Pn?Q{‹ysyÖ¯Ãôº¥a^ä?x1Iì]Wÿ+ïûéÿÒÉ}‹ªÿå}ÿ}?úY+ ÷!ûÁµõ{þX·ÿ ÿèÖ®‘`t <꺷äcYYÇôÚl,2âðè›ßØ-ôÓ»W)dT’I ±I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)qô_ðþ+? ÿȘø^¯ú´ÑÃø¬þƒÿ"`áz¿êBJo;é3úßÀ¤~›~ÿ¾¤ï¤Ïë‘úmø;þú’œ®·••Eµ >Ðæ /µìÅ“Y«lú¡Òó£Dù QõÖ [²»=L/¹®;c›S§FÎ×ú¾Ø×ÅnÀ™|T= 93Vì>ÖýÝã$”ãcõë3rpYPeUÜø¹¥Ò÷~ŽòC·è‡W©åTÍë=V¬œì:Þíç ?ÐÆ–ÕQkok‰çP‘>ÿ%Ò6šY+c6èÝ­:@R@ƒ©¡>i)ÄÊúÃkqò[*­à8Ô÷Ùí`Û{‡«íÑãÐú>aXé}aÙ¹cº½­Çh¸˜÷´3vá Û·ì´½*½Ãc}ÎÜïhÕß¼|Oš^•[‹¶7s†×;h’ß|S•~^cú~5õºÐìÌ¡µ´ŠÅ‚—ïsß[Ù;Z Ÿ4 ¬¾Ü|GVëm°=ÏÞC-kE–ÖÖØ6µ¡ìÙïãëXƵ¬k@k hð…M%ÁƶHqhO&c’’œvýb°»³KvMŽa­®w´3Ò‘.h—E³áÖ‡NË»+§ãäÚ+m—}0Ç£R!³©:p¬zá`©›w1»[ >-¡R `€â’—I$’R’I$”¤’I%)$’IJI$’R’I$”¥C¬[“U{Âl‡·Ô®«Ð×µ>ö¹›»ÁíÜ+ê6UU­ÛkcyÚö‡ ø:RS†:õ˜ø·>[Ê}!Sì1kÃØûê6¦ÈØ@Û¡DgÖ ^íÍ¢±M„¶‡ºÓ©Q^ë!ÖþŸ±<-wSKšZêØæ ‚ôDGnÉý*¶ìØÝ‘vˆƒÚSÏUõžÊ±h6±™ÙŽmÜׇXë@›v–·NþKC ¨ädu—b?Óeu×huMvçï®ÚêÜéh€díñ @ÑCœê˜ç4C\Z ÀÑH5Åá 9ܸ'â~I)ÃÀËÏ8xy6Ù~ü›X×úÞ‰cškµäÖ)´}-ScefžŸƒeùÑöçVÛ¯¿Ñ%¡ÔºÙ¨Ô60=à6_÷-Ý­€ @àGÎcÃ[š×0ˆ, Ç„S™VvKúd¶Í÷Ùü\köÆð-5¶Ý§C Ò˜„«Õ2ñú¾-t}‹iêQYxÛïJ½ÎìÙüÂÙ5ÖvKGèÌ× ö˜-öøha>ÆI;D»éÇâ’œk¾°ÙŽluÔ7mwz%sœðç‹3 Ú}K¡ä¥^ɦËú)cZ÷U[ßqkw²êqˬw§ídÛ?%¥v%Á}MÛ]­È h ÆkœÒƒ®½Ñu¸æ5ÁÒyŸŠJqr:Þv%ÙÕU}M^ËÆ3o-iÙ«IŸqñáÝk$dfQS®6ŠX=Bp´Pãg²@“¹¾!jŠª41¡£€#ˆãà–Ê˃[¹Ä:’8$ù$§¿Yjm®¥i­Ž-õ=ÁÎev¸™oЋ ;Ä+õŸ[*š˜ÚÅ7>Ö6ÝåÛvYPØÓϧ>èéÂÑ4Òfka–ì2Ñ«téÇ’BšCƒÅlhÚö8ILÒI$”¤’I%)$’IJI$’R”ÂdþV©(ÿ„þÉü­IK·é?û?÷äé›ôŸýŸûòt”çý_ÿ‘0ÿâÿïÎZ ?êÿü‰‡ÿÿ~rÐIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”×ê_òngþ»ÿ=¹­õ.cK£¹Ú”׊-cñlxö9…›€qkiÚ9O]”Ê™cIÚ67p$´c¿ )"?·È¶?ÍœjxQsŒê`»_ )’I¤‚G!:JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥ÇÑÃø¬þƒÿ"`áz¿êBÐEÿâ³úü‰ÿ…êÿ© )¼ï¤Ïë‘úmø;þú“¾“?­ü Gé·àïûêJrzßÛMÕ Z¬¿m5W{ñåÍ4ìÖ¸Üu0ÒB«×³ë2ÛF;Û\ÈsÉmGÖØli-q{§F†ÇÒåt@ Õ-Îñ>?4”óøc/;'Š˜÷Í•µ®;À¯ 9ÛËCC˜Ý5׺°îª(f}~¨9u^ÿN·âÚåí¥Ìö€gé¶ '’–çG&Jyõ¨Ge°ï}-kvCk­îq{ë¶wi=Õ›ú¿T¨Ø÷6¦S¹ÍkÍvj»~וնŸQõµ×‹/²†Öml®_HšýÐy•²Ú*mÖ\ÖZàÑcû¸2v”•-¥Ä7it‚`@””ã~Öê"ÚÅŒ¬z¯~ÊÃ/h¹ôèwhXÆúŽÓ¿nTð:‡U·"†d²¡U  61í!Ï d‚ œD4û<ü¸Zò|yKR’žk#'¨ã]må–zn»1¬°ÝkÚý‚ÏFŸBZ+˜–¹¿»ÚUœŽ¯š×elk-v=¯ kâÀ]înç²Ïq%‚ZZ#ÏB·$§÷DëºJpŸÕº•6²«½0}vÔ^*~Û¬¥›Yïö–¶Âwã…;2ZϬ.ª÷ígè[²,¬ ÁÁÛhhÙdŸ´îÃÆÈ²«/¬XúVâa®AÛ0HWäu lÛ2Vº¿µ\Æ?Õ±ÍpmD×GÙþ‹Cß p~+¡’y)Àw"RSγëWٰﱬÛ}¡! K «oúS±ÍÞIo¸éÀì|,Þ¥“GR¹¤»!´°ãÔZ+·Óy5a!Îkà8ðOe·¹ÜÉM$ò’œ·U]dtËnÊ#{¯m®µîÜ(yÆ<Ë=Ú–€5S[.×ú.¶ºšê-u6 ß9k­cM.ßµžÖ5ßœ}Ëwq<’”u:ò’œL ü«F®x®ç2Úòj;ˆ`¬0±Ï‰¸á¡ÝðVúÕìÇÆ®×\ê6äQ8¶G¨Ýítr6n$+ÛFýð7ÆÝÝ㘟à‘Á„”¯4’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R”ÂdþV©(ÿ„þÉü­IK·é?û?÷äé›ôŸýŸûòt”çý_ÿ‘0ÿâÿïÎZ ?êÿü‰‡ÿÿ~rÐIJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”æåôVeuœçÃXÀÂ$C}`îãSê§ÀèíĶ›žk}”Õe[›Xiý#ÚñçÚkªÑI%0µž£ |||¾È%ÆA.žGõ|?ª¬$’‘×Pcœí ph$ú"I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’Rãè¿áüVAÿ‘0?ð½_õ!h¢ÿ‡ñYýþDÀÿÂõÔ„”ÞwÒgõ¿Hý6üÿ}IßIŸÖþ3œö“ ‡ û’SÕ«k²1]‘fV k­¦Ð,!¾“ßSeÎ ‚Pm»«ú﫯®™ckš†ÆT]@k›¹¢]µÖni:G¾¿©_ï%êWûÉ)ÄvG]ccô¶XÚ. €ý#}_MÏý×C`1Ãú¤$,ê—u:²Co§Ü+#Ó‰£sà=¥¤Á'Câ¶ýJÿy/R¿ÞIN6V;ÝÕn}tXrv)£%­pkjnß\cnÝ»lëà…—×lË"Ö^ÚëõK[éy58±®q­ö½ºC£ùN[Þ¥¼—©_ï$§ÌÍè™ Î×h·`sisžæ1Íq¨ÕW¨ÓÀ`‘*¾6?PªÊ­Å¤âµ€‹UEŒ·uØáÎô®Üêå›´çI•Ðz•þò^¥¼’žtgýg8­{ªsmuů›‰®ã¨mueà`vŸŸÝ^²ŒÜŽ–ú.}®±Ù›^KZhCÛ ³Ñòájz•þò^¥¼’œœ{ºÕ™,c÷×W¬=bjh h’ÊɲW»]O> î—“wU¿, « ¾§×k˜ãsšÊª–1û€ siù­R¿ÞKÔ¯÷’SÍ—ýdÍéŽe¦Ú,²»}F¶¸°86­µî}LIÏ‚Ðtüãʽ¿«Œ§cÒV;mm`Š›±”‹XÆÎØvêd»§Ã…­êWûÉz•þòJqh·ëô¬µÎxÚÃe^‹&Êî.ûcc˜ÎýõäD12¾°\Fñem©à;uPli¶‘«ŸU|VçýŽ<µÝõ+ýä½Jÿy%8'/¯Œ,gV.vU–åú”m;i-k[]6U»M¬3°3òÝ~uXìµöÐû-k··ßµ£Xm¢¦‚'ºé}Jÿy/UŸ¼’œ1™×öÒE•1Ž:—¹å›Æ×7mæ})ÞAìíËëLsœÚ®ôÍMt7mD»um÷Y¼½¥­ì>ˆålú•þò^¥¼’œK2ºãšûbêiõ6²†¾ÖÖëï{XC¤ŠÛ^`‚¬áäuGõkj¹®L`ôœö¼VC¤Tvâàà_ðhZ^¥¼—©_ï$§¾âæÖ÷c°¼±±KqÉq³Ü?“_–½åž£Ö­v@Ùi5´‡†ÒÚßÖ8µÅî÷ØH‡@O;Þ¥¼—©_ŠJyöåõÛño6}§ÿ²“ŽÚñÄ:Ð,Ü\÷ÔH|µ°Ølö­.£wP­øÿc-tÉ ÜýÕ†¶Ùo±¥¥ä5öW½Jÿy/R¿ÞIN>Þ¥ƒÐ)û;l³0ØC¶ƒl=ç}+|¸üçd¬ï¬ yeuØíØà—2’æ‹ks[]X×WÃ^ù‘G}ïR¿ÞKÔ¯÷’S“Szˆê,¾«.~5žƒ,õj sÚF÷<4·iÙÀ?¶qrm~+^ï´å¿u®fíµ¶º½‘]Ow§;ÇÚ wÔ¯÷’õ+ýä”á»+­»¨º ÛÙC-–ŸJAnÛÛ±Îô¶í‘YÑÎçév s~°YKk¥ïmO¨5ÖXÚ±á¾ñ"lu‘ð[¾¥¼—©_ï$¦¿M~M˜U¿*MÇtË\ÇFã·puuÛìiGÔ¯÷’õ+ýä”É%R¿ÞKÔ¯÷’S$”}Jÿy/R¿ÞIL’Qõ+ýä½Jÿy%2IGÔ¯÷’õ+ýä”É%R¿ÞKÔ¯÷’S$”}Jÿy/R¿ÞIL”ÂdþV¥êWûÉšàçºÃLýíIL›ôŸýŸûòtÍúOþÏýù:Jsþ¯ÿȘñ÷ç-ŸõþDÃÿ‹ÿ¿9h$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’”’I$¥$’I)I$’JRI$’—Eÿâ³úü‰ÿ…êÿ© @}ü?ŠÏè?ò&þ«þ¤$¦ë¦Z@& >8{‡ Ü$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷þëþâ$”¶÷þëþâ–÷Zÿ¹:I)f̸@1§$’SŸõþDÃÿ‹ÿ¿9h,ÿ«ÿò&ü_ýùËA%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¸ú/øŸÐäLü/WýHZè¿áüVAÿ‘0?ð½_õ!%7ÒI$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%9ÿWÿäL?ø¿ûó–‚Ïú¿ÿ"aÿÅÿßœ´R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IJI$’R’I$”¤’I%)$’IK¢ÿ‡ñT>¯€z/Oþã×ÿPñô_ðþ*Õïù§ÿázÿêJo°rŸ3ýéHýÑøÿzÄúÁf-y8ŽÊÄ·6¯K!¡•Pûáîô¶X×l˜0îÊ—«×Ÿ]5Õö£_£Slµ€Îúý-å¦ÚÚït<ÚŸ˜IOQ#÷GãýéKt~?Þ°o»®úùŒkomRCšÀ釸±Íg´m<9BÊzõ&üQiuÅïô&³n(–»n¯ Y‰ì’ž†GîÇûÕLü›)³ •€FHªÎþßNÇé>m óõ’ƺ°nh8Ž,¶¶†“nË}º¶[`pd tÒê_Îô¾¥·ésüÍÜù¤§A$’IJI$’R’I$”¥#´Ú;xø(§ÒùÈ’•#÷Gãýé4D€'O÷ªCö‡¦ß°í™ý7¦Èÿ¿Ù»úÚ,_¬ÖFe ö^ácÖ_µÏ}E±um-©Ä4ûõ„”ô²?t~?Þ”·÷Gãýë/'­»*ÿ³3#ì–4:·±. ßTš…h5›4t™óV0™œÎ­eŽ}ŠúÛ´ØÖî66ºÆë´¼#¼Ïd”éåZjźÖ4n®·½³<µ¤Žê–ºÌ,{¬#u•V÷ž¹¡Çñ)³ÿ dÿÄÙÿPU ±,Ëé=.ªÙ[öœw¼ZÏR°ÑK¤¹››:‘Ý%:ÜêXVUÕús±hÃÝuCqµÌc[H6:ÇéÁØÖKcÝ ñÕVÄÎë9.¬âÙmØíÈ5Ûk…o-!˜î-x¨jÉuŸå%=7ñá%•“”î½EÞ·­fÇ9¢=_QÁäËw6 {» u*:®U×ãWìÏs4hg¦j ûK’I¼É)Ü‘÷ð¥ h12JÈêÙ/êø–2¡n36‚ÀæÖæÙ.~âG¦viR#ã¬~ˆøŸà’•#÷GãýéHýÑøÿz`݉s`»s6´Lˆ·UI§4=õÔ@sZÛ‹ ­­vÇãX$x¤§RGîÇûÒ‘û£ñþõL ×ZK÷ŠÅÍ5ÆÐMréwÉŒ´}ív¤»¶ÈãÎRRiº?ïUzvE™e‹")ɲ¦§µ¬c‡âU•K£9Ô?ðí¿ùî´”ž»ï²¶Ø(¬5à8MŽ˜"uö'ä"šˆò±ßù›ÕYÐêp®ËÚÓC¬¢ âû+kšë+€ý&ƒ¡ÐðyT(Í˺淤à¿íÜF3éÜݵzv>«+n‘¹®Ûà5IOEêdÿ¡¯þÜwþA/S'ý öã¿ò ÿùË]3[­±ÖèÂk“Ƶ’@Š·ra%ýz ÛêÚãâZƳh¨9£hi0[¸ê~|$§cÔÉÿA_ý¸ïü‚«~uìÎÃÆ,mbëyi/–úW< @uaQÁ=u™8U]ëqPõì´?u¡âÂÑ¡ú§A*ÆwüµÓ¿®óÎRJuŒÒtžé·7÷Gãýé;·À,¿¬ °ë.ªÌ† «}¸ô±ïu•°ËÙ i±Úí’@æ‘ <‰þô¤~èü½söffHŸåüßðµ?†?¿Çø-³û§ðz4—9þWÿÍ÷ÿ Rÿ+ÿæûÿ…©pÇ÷Çãüg÷Oàôi.sü¯ÿ›ïþ¥þWÿÍ÷ÿ RáïÇø*ÏîŸÁèÒ\çù_ÿ7ßü-Kü¯ÿ›ïþ¥ÃßðUŸÝ?ƒÑ¤¹Ïò¿þo¿øZ—ù_ÿ7ßü-K†?¾?à«?º£IsŸåüßðµ/ò¿þo¿øZ— |~?ÁVtþF’ç?Êÿù¾ÿáj_åüßðµ.þøü‚¬þéü%Εÿó}ÿÂÔ¿Êÿù¾ÿáj\1ýñøÿYýÓø=Kœÿ+ÿæûÿ…©•ÿó}ÿÂÔ¸cûãñþ ³û§ðz4—9þWÿÍ÷ÿ Rÿ+ÿæûÿ…©pÇ÷Çãüg÷Oàôi.sü¯ÿ›ïþ¥þWÿÍ÷ÿ RáïÇø*ÏîŸÁèÒ\çù_ÿ7ßü-Kü¯ÿ›ïþ¥ÃßðUŸÝ?ƒÑ¤¹Ïò¿þo¿øZ—ù_ÿ7ßü-K†?¾?à«?º£IsŸåüßðµ/ò¿þo¿øZ— |~?ÁVtþF’ç?Êÿù¾ÿáj_åüßðµ.þøü‚¬þéü%Εÿó}ÿÂÔ¿Êÿù¾ÿáj\1ýñøÿYýÓø=Kœÿ+ÿæûÿ…©•ÿó}ÿÂÔ¸cûãñþ ³û§ðz4—9þVÿÍ÷ÿ Rÿ+æûÿ…©pÇ÷Çãüg÷Oàôi.wü­ÿ›ïþ¥þVÿÍïÿ RáïÇø*ÏîŸÁè’\ïù[ÿ7¿ü-Kü­ÿ›ßþ¥ÃßðUŸÝ?ƒÑ$¹ßò·þoøZ—ù[ÿ7¿ü-K†?¾?à«?º¢Is¿åoüÞÿðµ?ù[ÿ7¿ü-K†?¿Çø*ÏîŸÁèR\÷ù[ÿ7¿ü-Kü­ÿ›ßþ%Ãßãüg÷Oàô).{ü­ÿ›Ïþ%þUÿÍçÿ ’áïÇì?Á6tþD>‹þÅgt_Wö¢ZÛ~Í^Âð\Ðv@ Ÿ½gÚ›LþÜã·ìÿà©ô¯Ú³16~ÙÛè³o£ö/N6¡ê{¶øN©pG÷ãöà«?º{Óëÿ÷'þسÿK¥éõïû“‰ÿlYÿ¥Ö_ùOÿ7¿û —ùOÿ7¿û —~?d¿‚¬þéüOK¯ÜœOûbÏý.—¥×¿îN'ý±gþ—YŸå?üÞÿì‚_å?üÞì‚\ýøý’þ³û§ðtý.½ÿrq?í‹?ôºÂê—dc?/#Õc[ëmª—µÄ†=€nu®Ÿà³ÿÊ_ù¼ÿÙ¿Ê_ù¼ÿÙ¸#ûñû%üg÷OàôI.wü¥ÿ›ÏýKü¥ÿ›ÏýK‚?¿²_ÁVtþD’ç¿Ê_ù¼ÿÙ¿Ê_ù¼ÿÙ¸#ûñû%üg÷Oàô).{ü¥ÿ›Ïý‘Kü¥ÿ›Ïý‘K‚?¿²_ÁVtþB©Zζëj¿µ“ìk©±Î´‘p“òYå/üÝÿìŠ_å/üÝÿìŠ\ýøý’þ ³û§ðt½.½ÿrq?í‹?ôº^Ÿ_ÿ¹8ŸöÅŸú]fÿ”¿ówÿ²)”¿ówÿ²)pG÷ãöKø*ÏîŸÁÒôú÷ýÉÄÿ¶,ÿÒéz]{þäâÛéuþQÿÍßþÈ¥þQÿÍßþÈ¥ÁßÙ/à«?ºõØÝvêl¥Ù8€X×0‘Eœ8Gúu{¯Cš'w£[+ÝÄìhlþ ü£ÿ›¿ý‘Kü¥ÿ›¿ý‘K‚?¿²_ÁVtþAÎ…3XÆ45 há­ò ü¥ÿ›¿ý‘MþRÿÍßþÈ¥ÁßÙ/à«?º¡Isßå/üÝÿìŠòþnÿöE.þü~ÉÙýÓø=­”Þ¦ç7ì–Ñ]`j-­ïq>E¶3E‘þQÿÍßþÈ¥þQÿÍ×þÈ¥ÁßÙ/à‹?ºGÒëß÷'þسÿK¥éuïû“‰ÿlYÿ¥ÖwùGÿ7_û"—ùGÿ7_û"—~?d¿‚¬þéüK¯ÜœOûbÏý.—¥×¿îN'ý±gþ—YßåüÝìŠòþn¿öE.þü~ÉYýÓø:—^ÿ¹8ŸöÅŸú]K7#ôÕ?/"×Ý¿Óp¬†¶6z…ÇFþòÍÿ(ÿæëÿd’ÿ(ÿæëÿd’àïÇì—ðUŸÝ?ƒi¸q­ ne @»´ÿBý‹®ÿÜÚí»¿÷¡Tÿ(ÿæëÿd’ÿ(ÿæëÿd’àïÇì—ðUŸÝ?ƒoì]wþæÓÿmÝÿ½ }‹®ÿÜÚí»¿÷¡Tÿ(ÿæçÿd’ÿ(ÿæçÿd’àïÇì—ðUŸÝ?ƒoì]wþæÓÿmÝÿ½ SÓ:‰ÍÇÉÊɪÆã¸»k+xq&»+sí|ê«þPÿÍÏþÉ%þPÿÍÏþÉ%ÁßÙ/à«?ºNöu‡ZãEøÌ«†5ô½ÎÍÂæƒ÷!ú}{þäâÛéuCü¡ÿ›Ÿý’Kü¡ÿ›Ÿý’K‚?¿²_ÁVtþ ÿO¯ÜœOûbÏý.—¥×¿îN'ý±gþ—T?Êù¹ÿÙ$¿Êù¹ÿÙ$¸#ûñû%üg÷Oàßôº÷ýÉÄÿ¶,ÿÒéz}{þäâÛéuGü¡ÿ›Ÿý’Kü¡ÿ›ý’K‚?¿²_ÁVtþ…™¸3 ê½ZÊßeµ¹ÍphÛF¾j>—^ÿ¹8ŸöÅŸú]Qÿ(æãÿd’ÿ(æãÿd’àïÇì—ðUŸÝ?ƒ{Óëß÷'þسÿK¥éõïû“‰ÿlYÿ¥Õò‡þn?öI/ò‡þn?öI.þü~ÉYýÓø7½>¿ÿrq?í‹?ôº^—^ÿ¹8ŸöÅŸú]Qÿ(æãÿd‘1þ×ë7Õý«³Yõ>Í·Žþ¿îHÆ5óƒöÿÙìÞ&ksŸ™™uV9ÔŠZÚku`òù;ì|ò¯*zÝÏÅ ôŸ÷ùÏä}üý$Ä¿ÿÙ endstream endobj 609 0 obj<>stream 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 2010-02-23T23:09:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:7E30D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 610 0 obj<> endobj 611 0 obj<> endobj 612 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 613 0 obj<> endobj 614 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 615 0 obj<>stream H‰”WMsÛF½óWÌLE0f0ŸÇDŽ]Ζ׵emí!•MAR$¨¤ÿû}Ý=€Ž¼Éê ¢3ýñúuÏ@«ÝêÕÛZíÆ•³*è ¢UÆÔQ§nõ°zõú¸½ºá¬^½¿µZýøúvõêvôj;ª¦N-þðkš6üj«uTãv £†ŒjÕ+X®“K*´ºnQ‡•‹µ5 W·ÆªýÊ·µMíRÑÔ5Ó–=BijŸbcá¦1Á:M~uòšý}Ó… uõÂŬxÉÅ·3* ì4éÿò·üí$þäB§Ú¶aábV¼äâÛI„¦n“Ÿp>¼¼¯“µøb1Gtx!Älñ*DÝã(4£]à_gŒ¾ö6ï§£©¡ìê³ûUHµfªò{È0ý,G]G¹ .ÒûP›EÊlÀ5a¡(Rmy@­6˱vˆv¡h‘Rš}`At‹¤Gn?ªoeúñöŸ«Fý¬õ›Òu.ÏJ7ê½úå×FݯŠÜ B‘§>®’­]Ћ%Yž–$_Û^P]ë@üÔM[7~I3g¢W;¢Xq4)ذã`4^j‹´1…GA³é¢)¦u“œ“a­‘w£¯4 ,ô̦&]iæ5†ZÀ¾¤Y¤E¹°ˆØDØiLÓÆÖÆ/ʪ1õRõ|;Ó€ÞÛe È‚7ך⥰±fIPݶµoÓÕ.äèõ–¤p«C¹–K¬‰Mš4,ŸeËrjËû¨¶ØáQ}#š@; »¼#Z–Q}–[´ìàn$ ²‚g d/Œ‹¶ñy‡qYƒ>eÙ‹‡h¯äT6d…G0K¡x˜Ð!y}&uˆ²ž© 9˜CJ9é(¢—M’àb˜bÞwpâ!&“MY"?ɲÃj7iöW*Î~õ¸š ššƒÀË«Dùñ¬Â ,‚•å¦dï´DŸ2œ.dx|¸’]()š6åfIøÈëÂ’6+š”N’~cCfÀÓ&ÙÁm`Nc/EŠñJþZ¹ácb Ñךå.aäŸ5&kX[[$O«šîÀ׊¦M”$µõ,›6²¸µa·Z”?qË¥L‹¦9é&£e:ÄF碷Q†x0²ÂyÙácd9„I̼ ‹÷~:édÆ}á¥IvÃ|vJŒYÄ«,<˜yb„‘… ‡€Aã'¤hGÀP–` ‹A€Kv)ƒΗ YÓº¤f`œ[x!M! Ä@”•,$FÚ…E¨h,;8OhZ-Y0<ÃŒÉhÐåœ2\ƒ5D߸©Y”Rp­ ¸–‹ý\텇̇)†Ì—)ÆÂ¨9‹Â¹’gádÁ¡°vFÊr•&(!º¸@z–K-ЦT«Èżî ٠˰3!wŠÉØ4mÞÓHæFK”Îå<}È6‚ÎX¢`-] óÈ¢‹Qî-š¨eœºŒKtaYË1 èXÚöÊFÏ1€a|*åAÀ¯R ζ‹$q‰t~®ø6N0Ékeèy.?ä ¤LÕYžûD4MžÔÅîÛQ/|4¸¶™¼C¢@ó‚Js”¸™G=çAíoʨæDi„LB†”wvF ²ó[Æ’nÑ© k¾ièåÐ"1wJë¯p5'¹Þ ™S™/S™Q‹4 çJ¢…“ˆÂÚ*‹³É.À„œÁ°‹¼l•¢‘‚ ¥ ×±Åë§÷·øÀÝÑÇ®¦]$C7BDêп|ÓS§ ¼[½z¢©»‡U¿QI9^‘¢º;àK`·ºAn €¼Û®è AÝ=¯~©Þ¼[߸ÚWo>ȯzÛ ô”ªn-©:­o~6"YVkLÍê³'ÉWµ^ÿz÷3‚h%þ<ÙŽŠ|ÇñMÒÝk‰Ç,E"A«A‚8aêáB[cµß‘—Šƒ¹)ÑPóФ+1µSLAb"ÚÕ°=÷Ç=$ò`ªº'ÉH¾óËÝ ú;¼hk[íD}’87ò&oUÏøEܸU¹z—‘^Ù ˆožžhbéjÏAÓEG›@ãJ°¸”q°ý–݆BÅìï»5®9 a²­×4­Ô»³êY?’ëD:¬›êéx:o†3ʦ†#Œ´Õ¹“гÅÍ9#˜£ù ÀVO ŇußñÆ'ùîÁU8£¡|ã«ã@IK¬$oÃÚ Öˢˉ“QLJëuoÞ½á÷hÒë\U:C °˜šÝdF3m‚0ýZ}<`ò8ì¿P’ú7^>0Ž*³_ÕžöÝ¡ÎÍÄ!v÷&MNTçM¿_‹¹ž¸EmuüÜóÛ{ ìÜd=CŽúË–~»ù´§eµz³–N àOjäð/D-Wm·´d @_]d+øÄ¶HÉØ}˜Zˆ¡ìjBÉr@cÏÛAæ?d¢ÍÑv9º7.æJÜ}'Pè Š”¡è×Ô ãö2ÆVê«{%/ Å‘JËOCèpÏê“dôiìNŸ;Fàž–ÙªÎ/Ÿ­8áòÄ“':†".’fšx3[%ÀJæÍ^ÉXUo/(ùn¼:{µœsd˜Ÿ4î6ç±Å2ñm;ŸÈ”ú?ÐNÚWÏ$#ýºÛ­qÑÅlhÑg]Gt{Ý?<ôÛËþ¼¦Ùúå¯F¸¥+¦/nMœÏçÃ0 <\ö{¦Å—¦6n+Oûž5ÔìDáPZ,îKcm0’‰$ˆN6žúíã’D8Ö4{©ÀŽMkº©^^QñÄù¾dAŸiÊH=pò$ë¸Õò‹lk3|¹¦Ö4©›<©ÏÝöq8î6ê]í¾¬µ&°kŽøx’9Öó’Q&„()ˆñ8P7ü—õªémÛˆ‚÷üŠ=R€íФDIEQ Hc ‡"EíÞr¡iJ""QŠHÅQ~}gæí.%9HQ ›Z.wßç̼ÜPÀLŒ¿¨uDÛçúÐÉP,=ÛÀHõ‘ÊŸºŠ—LCÕÃý‚¸g»gÉòàÓ•,éOz᪲½p~<‹4•›óÖ± øcŠÎõK°Ë$¬V²©$§åF”0xcïNà­%g †íh´K›ƒIZ[üÉWåãcje9&ÎÇ3ÉÐqTh¿ÀÐù¯j_¿~×бK<ƒýQ~m¶Ç­ëN]_«z¶¦P]µÙUŸ„ýK…%úùh[ÚêÚ `ýC~ÿW³b|Ç>¾£CU".³D‘©ÖIÐ8Ϫ—ÚÀëKS|F³X­Ô&I?ëÿ×Ö| \3õAÀ¹ÑÞºj–žA(,däAA$·4bÚj”Š×í×N@ë.Z“ËèDá6öÂí]Û[[ÈÑÔ‘éÊÞCE#̰²O˜mþìAü>Ú  Xªü~@ß=ÕýK]£]_v¯BàGE/#×å»Óµ»Ë‘0ʠЕsÒ1rh`ÔvëY¢Ù;[!R6÷ñÎ' ·;`;|¿.»úÎ7íô{ƒO¤0»ý½§G›/»KYq¦‚²X#c_#?kfeùÿ¸ÙXHxïäþV³×ŒHómC¹R8·Rû&9X±Š°Up«cy}׌çÊy”ÄžC¿@¬‹ Ìæ8Èûÿ¶+\ÕNº®jßÜz‡®Â19 ÇýˆðЬ0M§¦ZxïäVb<õâ{…àLÐG?q¬ˆ×ôbž¼s¨»Ñ34Ê0¯3Ô¼Í=zýÒå%ïçÈ ¾c=âËQaàÉyhàö¹}j‘gÝÆ‰ûM)ñomÝ{y½~h¼ÉB¾Ï¼“×m–êÄñЬä³Ý±£µ¥£áͲ©<ÓÂÖe|ð“M w\©¿VõÞÚœ¼¸ ¼·°z¤ÞA29¤.ùëáqt9‚ÎòÉ™¤Jãø¡í7îeÝTkçu\Ç¥ø^²)¼†Ç8¤^•Ñe*FQn0ŒÃ‘íºçðåˆÓh»ZǪõÝã›LÚÝ endstream endobj 616 0 obj<>stream 2010-02-23T23:10:07-08:00 2010-02-23T23:10:07-08:00 2010-02-23T23:10:07-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:8030D4931321DF11A166B14B4D8AAB0A uuid:8030D4931321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 617 0 obj<> endobj 618 0 obj<> endobj 619 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 620 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 621 0 obj<>stream H‰”W[sÅ~ׯ˜Ç] ­ç~9oÄŽS\ÅC N)²b‹#KF’1ù÷|==³#s ©D;½Ó×ïëžY%ngoÞ)q{œißÅ(‚ óBvJKið«MJIÖ³3êkëhÃôíÅåыՠS2Dk”8®v3g…5äNZ¡è!+Á3½ò]òRåw:vRóËW‹ÙŵJ,>ÎI¸¼ê‹û™„ò^$[¬°\<ÍkÛůÐ3¬×G…¿‰¶GèbqÅÊÊ‘òûæéé©õ²sM÷Çf»Ùµs‡ç?ºÕþ¾ýeñÕìõùC ¼ÀÖh‘£0ñr¼6èNÆiÌ2GKqSÄï›ë/[Û…æú»ü#Þ¬wx0ÍºÛæ°<íâwß©EŸ…ŒsÕiÝçR 'Øöí;æ»TÕHSwÉ ç‰SªPþâj¿z¼_ïNââí%6½ººœ}?‚!ü¡¾“&Qÿ)«TÌ` 5µq  í –¦ ÅýŒ PH=xÓytðje;‘84´îµ¶Hv>EID¹¬Sä[%_ð²;ÓØÍHrÎÍË™õ^œë¼tÿÖKÑúçÉœq¤´š¸$çÜüM2J£aC_õûbÓLpH]Lî_àP–°FFG£“@• Úåi¯ÀUúu6±Mm¾+ Ù“}4ù БÂr*"5Ûï!‰ï|H õ5ceµ.{"0% ;&NJÐûJÈ#f ,F=Ùc;ÂD¢`Ç}aO vìã)GÂå;ñRöï.¿Åäù ãWŒ,Ä“PR¼ï‘â1‹™Ô¥Hú8ÞA·šì*’Q´@Ä•8ÛÉ”«gl§]<+2rc6ر·*ÇdiNb2 ´¢š"Oå²õ"ð3¨¥4ç$CÜÐr™°½¾dô™m†ã®’Ñß™àÎIF¹ýÆóÒ’&N JÇÄ\©L­˜¬§†aœSònÌWqö‡q.6`Ï$;\m¬caˆ2‰3vÑOré}õ|E\ßzEåL²²jÈÃõÝÍ™V^ÖJTæµÂ×G™l\M¬­Š=,+URàªúÍio°‚ÑuVúÒ-¦Ì˜ÀiØ G*AÆRˆšTäë#>œJJikëä†ÌÖÙ(—ZK&¾¶¼ƒnÌcph]O©4ÙdœXˆ6<ó‘bE’©Qà ò£$ˆµ£C¹ÚÔ`]2¾(¸R6“Ø>þ¦ê°ú„%@F•š¡¥5mR¾*pèÝ(úÑÛ.Œ2@ï;S{½Œ$›ÄPŒ—Ú4–ýÓØ.ƒ]– c9l¸ÊtŰ#x]šÄªÉF²Z¨X>*j•-5Êʦ!Ê·šh¡c©B¥k_%P ”-”Y®•¹®Ç-R% UµP¡œvÄ 7­×o/gßÏ.Þ¼Sâö8{µ˜]\¡Äâ㌮šø "?ä9†oÁÊÅ=¾nño±¢ÿžfM×.~…ªeUúüɪùT­ÁçšÍЍŸ!÷Íõþ žÚ9ªÑÚ¹î|³9­Åþa}X¶sßœZÙ…fÓΑM³§ ºÙih>-m˜#¡æŽ^™fý[üz-Ö»å‡-›Y·@§ÅʦÅe´¹åW;6³,;ÉÁÏMûËâ+ä•8/|¡)kÈù*'B)•¼o~ú`¡ômÑ)µ ¾Œ5BÖÀS­ÂÏ­XînÈÝÍò´›à \É›‡ÇÓ¹0nLqç¢h®¾üv”¸_õ{¥­þqPõþ­¿Qªìh°dÏãþÃÕ?À]ú³hï[ÌætlNm®?ˆO)ãúECt¹`%8Ùƒ/Ÿg±5Wßý¸˜Vcæ¦1k]5>$ÆLÀôdÝKÈ&|9ákåŪ\~ƒ4¿~^/qà}¸þx¿ØnÅñ´<Áéþ‘êrÌÈqp&C—š,¢4C”@:ïØª¶ÉTa=T5LJõê´ù½’ÌwCí9Ù{Þ¹T°[mÛ<ŠVÿ7ûûå¦å±!ÉfFuµÜ‰ýnû©å‚ø>¬[˜ççÇ#/n8 ±Ù!ÒåIŒÍ¶(6 êfj¾ °Üþ¡jö‡ûån…QÉËœpvsýåõw9ŠœÚâ³€þ°÷ëåñ±‚}#>|B87ë‡5þÛ¶ŸÄ }“Ð`0ù$¨ˆù±ÀöN‡åf·ÙÝR H‡2¡„†Ð6{nÎèZÆ&4Ϩ¤,ÿÅÉúO¸4Ì'ʨàf›qº“Ÿg-“öoæQî,Aïç&¥Æ•,1l€ I S±ÆÙs»kq­¡ó†^»¥${ybÿ¥KS˜°ÙÀ…åŠ'Ú5ÌvÝÜî–Û#õ±6¹iÃú÷åöOÖ«®¹i,‰¾çWèQÞÂŽuu¯>xc aØ%›dŠÝ‚-Jq„­Y6–L*üú=ýq%Ù 05ì‹-]ݯî>}úô¾èJ (ÏÌÝwSð0D!^ÕŽo쪖bŒ8HˆËÛeùXyŠtÙã¡ü3„?DÑäߢ›«ÿIîé¢8*r¦Ý{N`I”ÇÎó5Ô)3 ånØë‚T’¼ >éc]«Úh–ò0P Ê[b}¸°ɇ/ÞŸx˸P…¥..ú9Ü8 K@– ¯Ä5î³Q‘Šû¸ÎÑr‰#)ýOž# ˆÿ‰ ÿP$%D/€*è ççÀÕBV 8Ü܉¬­ø‘@í¶ÜaCס×ñ§%B´~9œ¡ož€õâÇlz¥”yÚêîʲaË{¢i¹Žƒ4é†<„¬Ð+¼{^äùUCõd&¾^U­\ùD+*Ù.(n†}w7%ãÚrH®ôÜXÀut>"‰œ ÎyüÕ„J݆½JdÉ®.*—^ë ö‡“ eÃE¯6eKÿÍ¥£ØƒM†"¸•£ˆZFè*ÚR.M¿Z9¬¯<5؈ÉM¿†‡ QѼ/a n›t`ý¼‘ÑÕ’Óp‚Á÷,Á!ÂjûÊ ‘±°çêŒûLlØÌ4Mò‡óíƒ<9˜c´ó sóe¹…¯šª«ŠºúêˇüeÙ@v›ÝÚã¨=ö—¨rñ•ß­€Ì8k­ˆøM •àOc@ÒóÃŽ=@<(œG,H¬»”9­Ü$g7Ü>…\Wub¦i…ù|WyÞËmä:bjyè›(êkSÆÞ ·ä‘ 7RPW×ßoÏúzÇCÈ^äžÛr³†«©n%UKý—>çŽ^"†[šj± 8ÓZàL…((¹ÐÝîéS#SÙA¼3ÞA/{ÊVãê7ÕðãA­‰\o«j¾“:Æ*WuÉ-— wê2¸b.¥Â†Ør±ÙÓc;”þ©1³Ø ŽêD”{Š´ŠKÏ ªß²êGzPfp”ÛYð¸ÔzHfÔfž#k¨G;ã@œIn[“ÛâpËäVâ-£Óå¼rB!ÑÈ¢EÐà /¡Ô¾|FÞÈà %c/ëøžææn„‘Ø ä§)JÔÁ·ŠÂ›ý„œÚL?—Ï.0`Ã'ÜV^HËÊSFyÌ‘âlEå–<+©Âx¢ñs?ObjWIÀÐlÿM{¢Û7Lð}ÜÔ€ã¸õ}ÄÜC†‹+£`»ltÁVjFÅF4š -%Õh™)%NU6Ôƒ¨,J¬M¡Êšm¢X'šh>UË=*¶kŸ›£]üVDÝk³¥h¹ÕÂû[Õ‹®(ÑÊQ4©tž ¹U¥O‰Ú»XÞôý¨m-;±“5oÔi,¦½µy0ÊéÍÈ2Þ¸¥Ýr„jdŸÌí¥ÍÔo<²,²sµH}l;µÛÛïlÄL'fêP)eŒúh´&§µžTR;jÌâ ÔNðÁ+Ö¤P¨ÄN$˜x÷œÓÂØ–ÌêtÄ;& /?ÊßÕõ)šyŸå!_à®â;##wÁhn²ãj–Шþ‘›> h~Ò¾z‘BizÛm ­/*_¢t»YUó­æOÀÄOf¤B¾ (ÀcÀKÅj½­Ë5°QjN€,Žzä|Ϛ⦖—%­¼’3 å3 Ã«phÿ˜õ‡¤"‰'Y"¡ÓQí¦&Ÿœ÷ ²}5M/µwû”ÊÎWþ0¡!@–†Pâ«nTÁ­úÏ]U£U Òº©¾I$Z!%:!Û ù'e´Ðó -Q:Y'!<2Þx2F,ÆM–šHµh”I‚ %y5I}-¦˜ˆ0ÛË?bÒm´Â\›ÓÅ­ˆ£œqé¤j §¥üœzR†‚ìé–¯xìì^×9Ï€US‰g» •&~,˜åk}ûJ­Ž‹à#µn¨ )·ëú”·)gÁõdJÖÑ ¡khïuµÆ'£øè!|äh‚N-ß6ÂVKŠ&H?Ôr¿=D£ #lŒn'ÐçR0£ÓJ."T áËŠ+6ÕZ?Ðð¼/üƒo ¢H‰h!"5âž) •Aké±X¨²,µá5ñ˳\žq—[ù€6e)ó«n±*©ÝÌý>¤yÖeWÀ³72§'ü(ÎFµÌ˜áfÊ9PÄàô ÷KSìÈá Ù³bRó\ωJó2Sl÷5:F:ìÂsl‡ðLÊé$ÉÝ×¾ËÌTìà´¨sÏ„ö§¸W1‘2 ¹>|ÞW~€è‰Éªà»ÑUuåVþ¤¸IÙ‘æ Qä.¯§7¹_w¯+¼Ò;=½ÚÎ3i,é¿4»S×ËžhU•$š&ÿš^£fˆÝ'ɼëINù\L¢žÙ-õk)ïÀ—a&™¢ïšËR)¢|^Ê„½Îßùm+¦¬›"½töh·š¡]LK «ávŸ /<Î%òå@ŠÃ‘«ûÉ!`€SpðTÔmôT5r(r‡¤ö@s½Wb¿9yþ®ê¸°­¼hįƒ‰T!CÑãö ÑãᎆÁÚÏQÿ&†Jñ¾?¤éOƒw»ªÓJÄÍŠ.GY*dc-^lxœ+)›qvÍñŒ’d„¦( Ö'°hõïµ·IŽ „wß¿:9}±Yì YÁéÅs¿¼x~rú¼M‚E Tè=þw(ôTµ‹æÄdˆ6ꛃ‹€%. ¢l0uWbïÏ'DÔy¦Ñ…ólnsÃo Bä±gÞ6¸NN_^™`Ùž XBzB~¤hD­O¬ãfù0TC‡RÏP ^ü³?ê—k@"RL`‚KåzÉ,& ÿg&m ªˆ¨c azjîŽ*äRþw6gÇÌ¢ ß6]ùtâÂ7[‘ñÁ¬5µóD°+·;è–,Uãó8ò‰ìH¿<ÁŸE]-ZRüÝú÷àk-6Œ#rÃé‘K!tfvž Câg2m$9¸‰ˆ‰q:Cª$P3¬ü” ¥!MÇ#ºÐúÛ|ksôki†ñŸ |¾xóûõû‹§óÿü_¬M€KgÒ±µ~èÈZ £!¬µf6ÏÜØ¶š’t¼È[ûÐF7‡iøI,3Ms¶ñìâíõ¿ƾ Î24œþžc×õIì"Ðf6 ‰}Þ*JóYœ!26ƒ\pN<âgîÔ_ÀNT7¿y§Ø¹Q8æqÌœd “ú$N MéçÔV±Óÿ:¨ú&P@v£ÎPÐÁ%s7’›Ú8Æ½Ó I)Çæ¡x%)yF ¦@Qäî`D}$-rË‹AÚ¸³ß~ ý½}DZ¡Ã&1‰˜aèÈ>ä„E‡2Øç ˆâdlM kíxD}Û>kÄÜ!Q\ŽœËzûž¿þÇOÁÖäÐÿÎAÛ¥®mp¶†Ä>ƒ‰þuHæ<¡@ƒÌ& ÍÂG(êç ïçùÁˆ®‘YìÅCsøŽnfÉ-Q½„ºË‹ÌX†©ï÷—3ß¼üxþûëׯ½<»úõ㳫«³ËI<¯}-ÿ9/Ä s|à:òºÔ8±c/ &¦Îm6ò_?Xõ×󭿨AФ÷”‘£k’b´ׄ†3‡9ÿc¾Z–Û¸à]_¡£tàïŽ,‰~T,*&i«\*/ÉM¶ÿÿ–,0vÉ2±K»F-zÐ=ÓÃ×7OYù±æžíÛ9ÕÏ<Ñzõvy+ß­Z¯ ÌsAÄuàæi³?³krm$L uMqRhTeš¾®Ž°´¨Ôµ@_ñ}²þ•QR­Ä •‹¥Ÿh £¡KaXBðwƒøŒîOµ…sӥǥ¬ÑõtÉ¡Àzø0¨ÛúZ³¥±6Î ¢höŠÅ{¾y‚‰“¶ì¯dòñk˜|*ÀÀ¶Ñ`†•ñæþÙös8¢|ß9IÖÕÔšÚ´ ð¥8û¹‹$)§hEW6IÔ(MTˆ<’ñOpè¥ ͉•µÎ§àŒ‚‹äÍ_Ì¡¼…eÒÿÿü8J¤€¶zÎx:)h{ËtøÉP¬-“Á‡§‘5Ê)&Ã$ë '+ìk›\(ÓØdé}ì(Ùãrƒ‡¬|2ŸaW<Î:îdPô½n}2uš‹Øäbô°p jlô”'nvq߸‘§WÎd_7Î:_íô0>Îsz °lu °Ýêøª¼Õ1@^ëø ¯uã¬S6ËÜûõóúÌ]Né+*k7[±q³|ÛdU+Œlgù ›×qÖqŒ ÄÆhmÝ,Þð\7Ë*TªsB5*L¡‘ id)U«PÂöúFsЃ¬#)kêæžFËöXÉëòÃÃãv·?[– ˜—ið‘® dgdײ<ªgœ&0$@Y‹aÐÉøœó zÆi¡ ×7í5‡FH{Œõú]-þ5¾~Eë©ß†:2$ÔcßìM æ.i ¹ûýB({ÓõÒ6(Sh„J³.Ô0i4×ìµÝ96¥qÒ)01àœÒ æã­7ŸW›7 íÓY`Ëe­’K6b¢UZ2™Ž¤CÄ‚ ’©òæ8é8XƒÎ§4$pH «‡?v_.c2²B ÊZ¡ù¾I}Œ±è³œÈråÌAÄAéü1}(/òšE Œ³(_:©¯ eò‘,ÇqÎq¤´Á A­èç[/ð¤ïï/’õY@6úä 'ñYžåDã8gæ9M÷´6òü´¾´©BjuÒ6"m¸Æ&b†uÿQðˆ®^â³Dˇ¾]=]ÿwu†@t£5H¤:„B,] uúxe¬î ®ba~ƒèóQ”Á@–ÊÀGPÂÁ^“r©P êŸt7‹âõ%K“HG•ÀºT˜M3s¿{·Ymßí—ÛíjC½m÷+TO»hëê¥Ð¤zxr0¾ªžrÑ×UµR…o#CR¬ÞÏÄ©H:¦Á™Bœ.n'$)£Õ,GÐ£ÄÆIs, VøiнF’õêíòVJÙnyòÛ?Ø?TEHì± ”ÒøaQÝÜï7ÛÏŸWfi:o]Sæš”YÐ@©Å(h 5Ò2š‰—IÒÔ(8œŽÓX¬¡išÍUü¼¦¥GáITø hàÙàKä¥D@§mI«Bé[\,$„ ùú=ég{·>xãg¸gJ¥&ËWqýç•¶²3˜ß‹ó/ŠosÈ‚‰BêøíÕþÿ·ºiùØ endstream endobj 622 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 623 0 obj<> endobj 624 0 obj<>stream application/postscript Adobe Illustrator CS3 2008-11-11T12:59:58-05:00 2008-11-16T21:09:40-05:00 2008-11-16T21:09:40-05:00 256 168 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAqAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYqxXWNO0+78y3Bu7WK4KWVrwMqK9Ky3FacgcKEE+k6Qbp7a20CO7kjjSSQxRWqhRIXVf71o+vp t0xVd+goP+pV/wCEsP8Aqtirv0FB/wBSr/wlh/1WxV36Cg/6lX/hLD/qtirv0FB/1Kv/AAlh/wBV sVWyaPZxKGk8rhVLKgPp2J+J2CqNpe7EDFV36Cg/6lX/AISw/wCq2Ku/QUH/AFKv/CWH/VbFXfoK D/qVf+EsP+q2Ku/QUH/Uq/8ACWH/AFWxV36Cg/6lX/hLD/qtirdnpOgXMJk/RNvCweSJ4pIYeStE 7RsDw5r9pT0OKp15Phhh0MRQoscSXV6EjQBVA+uS9ANsCU6xV2KuxV2KuxV2KuxV2KuxV2KuxV5/ dfmN5mguPTi8rXF7Hyug8kHrD0/QD+mjB4RVmKrWm1G+Hkfhwq3afmVrt1pEl/H5auGIhhmgCs7p N6rFSqMsZ3XiRSle/Q1xpWYaDqjappUN8yLG0pcFUbmv7uRkqGoKg8a4FR+KuxV2KuxVh/mbXdG0 XW57rVryKxtXt7OFZ52CR82luSAWOw6HrhVGeWby0vNWvri0njuIHtbQpNEyuh/eXPRlJBxVkmBX Yq7FXYqgNbmSGzjdgSDdWabeMl1Gg/FsVR+KuxV2KuxV2KsW07+7uf8AmMvf+oqXChMvKv8AxyD/ AMxV7/1GS4EpvirsVdiqVeZdWutK0z61bQC4kMsUZDCQqqyOFZ2ESSPRQey4qx+289eYJ7lYH8uz 27TFEjMvqUSV50i9OUiIiqwlpyQacKDrhVB6X+ZHmOfUPqF15am5qbb17mBpGhgNxbpcOk3KIMrx iVQVofoxVM9H8/xy2V9e67bfoW30+3gubppixMYmkmjo4KqRx9EHp38N8Csg0jXtE1m3+s6RqFvq EH+/bWVJlFfEoTTFUdirsVS7/DXlz/q1Wf8A0jxf804qlEl1+WcdxHbO2kC4mYpHDS3LlhSvwgV2 5Cvzwqq3Y/L2zu3tLuLTLe4RebxyxwIQvEvuWAH2QW+W+BUy/wANeXP+rVZ/9I8X/NOKu/w15c/6 tVn/ANI8X/NOKu/w15c/6tVn/wBI8X/NOKu/w15c/wCrVZ/9I8X/ADTirv8ADXlz/q1Wf/SPF/zT irDPNn5e+T9d1aaw1DTITaRw2c/pQqIKuslyKFouLUPfffCqb+StB0XQ9Qv7LSLGGwtRbWh9KBAg J9S4HJqfaPud8VZbgV2KuxV2KoPVafVUr/y0W3/URHiqMxV2KuxV2KuxVhVro+kXBuprixt5pWvL zlJJEjMaXUgFSRXphQjvLHl3y++kln0y0ZvrV4KmCMmgu5QOq9hilNv8NeXP+rVZ/wDSPF/zTgV3 +GvLn/Vqs/8ApHi/5pxV3+GvLn/Vqs/+keL/AJpxV3+GvLn/AFarP/pHi/5pxVCahp/krTkikv7P T7VJpBDE0sMKhnKluIJX+VSfkMVQwb8vG09tRWLTWsVdYzOIoSvNqcV2Xq3IUwqtvvKvkPzLpF3p y2tnNaXC+lcPaLErqDvQSRiqnAqI8r+QvJ3lWH0tA0m3sDx4tMi8pmHg8z8pG+lsVT/FXYql3oeY /wDlus/+kSX/ALKcVY1L+WOmy6mdUki09tQMrXAuTaz8xKzmQsD9b2qxrhtVC7/KxNRuJbrWLyHV LueMxTXFxbOjMpRoxtbzwKCqOeJAFOv2t8bVlnoeY/8Alus/+kSX/spwK70PMf8Ay3Wf/SJL/wBl OKu9DzH/AMt1n/0iS/8AZTirvQ8x/wDLdZ/9Ikv/AGU4q70PMf8Ay3Wf/SJL/wBlOKvPvzE0T8wd TvXttB1m3sNQVLKR7tIpIQIQ91yBrJPy3/ZIofamFU//AC/sNesbm9g1zVF1e/Frac7tYEtgfjuN uCEj6fwxVmeBXYq7FXYqgNbhSazjRiQBdWb7eMd1G4/FcVR+KuxV2KuxV2KvGvOvlj8y9Wt7o+VP MqaZH9bvK2LRCMsRcybi6UPItfCmFWfeWIPMB0k8L20C/WrzY2shNfrctdxcDviqbeh5j/5brP8A 6RJf+ynArvQ8x/8ALdZ/9Ikv/ZTirvQ8x/8ALdZ/9Ikv/ZTirvQ8x/8ALdZ/9Ikv/ZTiqXa15ZvN ahgi1OayuI7aX6xADazDjKEeMOON0NwsjYqk0/5YyTWI059SjOmfui9k1uzozQUEJLvO0v7tVVVU PxoOnXDaE30XyrdaItwumTWdut04knAtZ2DOFCcviujTYb06nfrgSnNrFq6y1u7m3lip9iKB4mr4 8mmlH4Yqi8VdirsVdirsVdirsVYd52Xzwb2MeXrx7e3aD96qwJJSQsyVV2SSh4SF9wfiRNuJapVB QX/nZNItdPmgvpr+CZnutRVIokmhq/BIyRM6MCY2blEdgRU13UIjy5qPnZLqKXXIZXtxarHLbxRA t9ZVY1aXlwSquVdgNuNe/wCypSL8xPzDbyxePqS6Nd3pmSytfqwHpyHnJdGq7PyO2y98VRHljzVq V/eahrItpdEhhsbEy6brSLblzJNdCodDI8ZqAFqDXpwqahV6Hp14b2xhuzBLamZQ/wBXuF4SpXs6 1ND7YFRGKuxV2KoDXPW+pR+jQv8AWrOtf5PrUXP/AIWuKo/FXYq7FXYqlOu6zNYy21tEiRvdkqt9 c1FrERSgdl6uxPwJVeXTkMVeT+YvzRvvJul3Jn0LUdZeO81DnqUcaRWZ43sw+KVPU4Up0Kff1wqy 97zX7ryk9toK3FlqBvbhluWh5KEF7IzLtXqNsULbPUfPkFvqMFxbXtxPdO/1G5VISsI9WRgWqIyo aFo0UKj8WUk9cVVLK+8+i+sfXimXT4Hl+uIyCSaZHaIxAOI0CmMCTkafFXt1CrOLW49eES+m8Va/ BKvFhTxGBKrirsVdirsVdirsVdiqX3vmLQLG9t7C81G2t767dYra0klRZpHf7KpGTyNflirGj551 +3JN95fmiR5pBAV5vW3idlMjcEfjsoajUO/TDSGSaFrC6rayziJ4DFcT25SRXUkRSsiP8aoaSRhX +nAlMcVdirsVdirsVY7fD/nZbn/mDtf+TtzhQp6Rp9lL5pvLySFHuoLS1WGVhUoDJc1416E1pUYp ZNgV2KuxV2KoDWpkhs43etDdWiCni91Gg/FsVR+KuxV2KuxVbLFHLG8UqCSKQFXRgCrKRQgg9QcV YlolpbWllNbW8YigjvL0JGv2QDdymgHhvhQnHlX/AI5B/wCYq9/6jJcCU3xV2KuxV2Ksf83+Y9S0 RNPay059QN3cejNw5fu14FuR4g9SKfwOKsc0/wDMLzvqUV9Nb+T57SOyt/V/012jZ5BD6jRooQs5 9VWjXgGrsxpUDCrKYPMD29jqF7r0celWunytHJcPIfSZFp++5MqUQ8h+OBUx0/U9N1G2W50+7hvL Zvsz28iyoe+zISMVROKuxVg+ofkt+XF5r9rr/wCiI7bU7adbj1Lf93HKytypLDvEwY9fhr74qyf/ AA15c/6tVn/0jxf804q7/DXlz/q1Wf8A0jxf804q7/DXlz/q1Wf/AEjxf804q7/DXlz/AKtVn/0j xf8ANOKu/wANeXP+rVZ/9I8X/NOKu/w15c/6tVn/ANI8X/NOKu/w15c/6tVn/wBI8X/NOKsfvPL+ gjzFcoNNtQgs7YhRBHSpluKmnH2woRvlqysrTWtSS1t47dWtrQssSKgJ9S53IUDFLJMCuxV2KuxV B6qAbVARUfWLY7+IuIyMVRmKuxV2KuxV2KsKtdH0i4N1NcWNvNK15ecpJIkZjS6kAqSK9MKEd5Y8 u+X30ks+mWjN9avBUwRk0F3KB1XsMUpt/hry5/1arP8A6R4v+acCu/w15c/6tVn/ANI8X/NOKu/w 15c/6tVn/wBI8X/NOKu/w15c/wCrVZ/9I8X/ADTirv8ADXlz/q1Wf/SPF/zTirv8NeXP+rVZ/wDS PF/zTiqX6/5B8qa3o91pVzp8MMF4npyS28UUcoWoJ4PxPE7Yqs8oflz5L8nxMnl/S4rOR1CS3O8k 7gb0aWQs9K70rTFWSYq7FXYq7FXYq7FXYq7FXYq7FWO3v/KSXX/MHa/8nbnChU0T/ju6h/zC2n/J y5xSn2BXYq7FXYqgNbgWayjRiQBdWb7eMd1E4/FcVR+KuxV2KuxV2KsW07+7uf8AmMvf+oqXChMv Kv8AxyD/AMxV7/1GS4EpvirsVdirsVdirsVdirsVdirsVeca1+den6X5v0/y1JoOqrLfXKWwvZ7d ooPjNOUX23mp4KuKtajqX5iteX/1Sfja3Rl+pUs7sG1WsKx15WjGQ8Y5W/1n8BhQhxN+ZJhUSanJ 9YKx+tJHZXIjLN6bOEVrRiODiUVJ3Urt8PEqpj9e8xyWraWk+p28pvHnm1iayllQ2rM7RwQKiRy8 lHpoS6L+0anYFVQstY/MCG4/0r1LmBvqZPG2uVK+l8N0o/0QV9YqHH8oJHWhxVmv6fsf99Xn/SFe f9UsCXfp+x/31ef9IV5/1SxV36fsf99Xn/SFef8AVLFWP3mt2Z8xXLendUNnbDezugdpbjt6Ve+F CN8tXcVzrWpNGsihba0B9WKSE/3lz0EioTilGeaPM1n5dsI727gnniklEAW3UOwdlZlqCV2PGnzO BUisPzZ8tXl3Z24hu4V1CVLeznkiHB5pJHjCUVmdaGPcsoX3w0qtJ+Z/l63MhvEmgiRmAkAWXZeQ +JY2Z0aqfYYch1IpjSpz5Z8z6b5isZb2wDiKKeW2cSAKecTcT0J2PUHAqvrZmFlH6IDP9aswQf5D dRcz9C1xVH4qwK2/Ofyi1hDdXaXVm00QnEEkLMwjZ40BPGv+/QfoPtU0qPT8zNElsob2CGZ7eb1y rN6cZKwOEJUO68ixYfCPiA6gY0q7SvzN8r6pqlpp1m8zTXiuYmaPivKMqGQ1Na0aoP2T0BrtgpWW Yqwq01W1hN1E6XBZby8qUtriRf8AeqToyRsp+g4UI7yxrlkmklTHdk/Wrw7Wd2w3u5T1ERxSm36f sf8AfV5/0hXn/VLArv0/Y/76vP8ApCvP+qWKsGv9T/Mktf8A1ScVuHlfT+VneKluhNuY4n/0Vmeg ilBbxetNlAKqUU35jhLdZdSleVfq/wBclWyuVV6InqmJDaEpxk59SeQK9hxKhXm1PzedNt9Otf0j Hdpeepe6pcWsjI9s/M+nbiOMSfASg+NFOx64qg9OX8zpEun1XXHSRI51sobXTrvi7PDwhMjm2Upw kHM0Ddadt1U51HzfP5U8v61q+ove6rBYgSWMMlrNA5gRVr6sxgRPULs2524he9SVKP8AIH5iWnnO x+t2+k6lpqcQwa/tzFG9f99Sgsrj5YFZZirsVQd9qOj289vbX11bwz3DqLSGeRFeSSvwiNWNWavS mKsT1L819M0+4lSXTL9oIpZo/rSxfumW3lEMsiMxAKhzt2PY8vhw0qP0L8wdN1jVjpkVtNFMiTNL I5jMam3ZVejKx5L8alXHwmvzoFQdr+amjSm3E9pc2n1p7f0frCpF+5umZEmYSMhCKVHI07ilcNKy fRNYs9Z0yDUrNuVtcLyjNVJoeleJYbjelcCo7FXYq7FWO3v/ACkl1/zB2v8AyducKFTRP+O7qH/M Laf8nLnFKfEA9cCsIbSvzIW7uWt7u0Fu9xObcz0keONpJTCUpEOKCJo1Kbnkta0JqVWRab+apklM lzpacUrAUQ0eWr/HLVK1ZeKnj2rTFDOVREFFUKPACgwJQWtTJFZxs/Q3Vogp4vdRqPxbFUdirHPN GneaLi9sJNClgijhSX11uKekX5wtHzTg7OvCORfhZaEqe2yqTSaf+bInjMVxpTW3GIlHQ80clfWK kIF+JeQPzNO2FDI/LNnr1vZyrrskE9yJaW8kChf3AVSqv8KfEH59B4YEpzirFtO/u7n/AJjL3/qK lwoTLyr/AMcg/wDMVe/9RkuBKb4q7FUv1/WYtG0uS/khluODRxpbwKXkd5pFiRVUVJ+Jx0HTFWJw fnBosjuJdPvYFiLl/UVA5VG4Fkj5cpPiIP7sMOPxVphpUwl/MbTY9Cs9VNpP/p141hb2w4s7SoX5 EcCwK/um3H9uNKlWn/nNoupJcyadpl/cw2STyXkwjCpF9Xh9Zg7VIXl9gV/aBHY40rJrXzLp9zaX 8mpw/o230xlj1B75olhSTiJCPU5FCFV0PLpvT7QIAVN7a6trqFZ7aZJ4H3SWNg6EezLUHFVTFXYq wLU/yQ/L++8zWvmVbOS01a3uEuWkt5WVJWQ14yRtyWh/yOJxVNLy4/LuzJS7vbOFgzRlHuaNyUvy HHnWq+i/Lw4mvQ4Vb1jRvy8t+EerxWaGNPWijuXFQkbLHzVXatFaVVqO7U74FRdpo/lDUo3e0SC8 jjb03aOUyKGWh4khjuMVRKeWNCReKWoVfBWcDf5Niq7/AA5o3/LP/wAPJ/zVirv8OaN/yz/8PJ/z Virv8OaN/wAs/wDw8n/NWKpBeaDpI8xXKCD4RaWxA5v1MtxX9r2woRvlqytrTWtSS3TgrW1oSKk7 +pc+JOJSyTArsVdirsVQerKrWqBgCPrFsaHfcXEZH44qjMVdirsVdirsVYVa6Pp05upZYeUjXl5y bkw/4+pB2OFCO8seX9IfSizW9T9avBXm/QXcoH7WKU1/w5o3/LP/AMPJ/wA1YFd/hzRv+Wf/AIeT /mrFXf4b0X/lm/4d/wDmrFVv+GdDqG+qiq/ZPJ6j5fFiqHj8keU4pXmi0uFJZCC8ighmK9CSDU0x tUPCvkOWQRQ3No8jKjCNbirFZRWM0D7hgdsKoPUPLPkjzhoeoaVbXCyW9wvo3M1nNydAT+yWLrvx IBII+7AqJ8k/lr5O8lwPFoFj9XklAE9w7vLLJTuzOTT/AGIAxVk+KuxV5trun/nmfNunS2Gqaa3l gXSfW4YIPTmFvy39VZncuAOvpyqT4YqmF5+VunXdxPdSpY/W7hpJHuPq05YSSmQtIoa6ZQwMzEGm 23gMNqrXH5e3F3cx32oahHearEhiTU2hmhuBGW5cFNtcwIg/1FHj13xVM9G8uX+i2htNNuLO3tmc ymIWs5HN6c2+K6O7Ecm8WJY7knAqP9DzH/y3Wf8A0iS/9lOKu9DzH/y3Wf8A0iS/9lOKu9DzH/y3 Wf8A0iS/9lOKu9DzH/y3Wf8A0iS/9lOKsfvIde/xFcg3lqX+p21SLWQCnq3FNvrH8cKEb5aS9XWt SF1LHK31a04mKNogB6lz1DPLX78UskwK7FXYq7FUBrkImso0LFaXVm9R/kXUT0+njiqPxV2KuxV2 KuxVhVpFq5N0YLm3SI3l5xR7d3Yf6VJ1YTID92FCO8sQeYDpJ4XtoF+tXmxtZCa/W5a7i4HfFKbe h5j/AOW6z/6RJf8AspwK70PMf/LdZ/8ASJL/ANlOKu9DzH/y3Wf/AEiS/wDZTirvQ8x/8t1n/wBI kv8A2U4q70PMf/LdZ/8ASJL/ANlOKsT/AOVT6erRPC9vBJEpRZIo7xWMZQoYyReV4UZtuxYkUJOG 1b1Tyl5r0nyxq0flK7gXWbmP/RWMT8w3qM6qr3FxLGiK0rtTjTc7VOKo/wAgWn5mwWX/ADu+oafd zlRwSygdZA3f1JeSRn5LEPngVluKuxV51q/53+XNN822PldtN1Rr69uFt1me0khiHJqclEgWWQdx wQ1xVT1W8/MF5L99NvpIhI8v1VJLK6PFR6rwlP8ARDT/AHTGwYn9tvDChCxx/mOZoWfW5kt6H1ov 0dec6CNWC19I7tNyHLl8K9Q/QKqs93+ZFwkLQ30tlMLcRTFrO4lQv6QjL8Pqg/eepylDV47qvEgG qrM9M1oRWEKX5up73jW4lSwu1QyNuwQejsik0Wu9OpJ3wJRX6fsf99Xn/SFef9UsVd+n7H/fV5/0 hXn/AFSxV36fsf8AfV5/0hXn/VLFWP3mt2Z8xXLendUNnbDezugdpbjt6Ve+FCN8tXcVzrWpNGsi hba0B9WKSE/3lz0EioTilkmBXYq7FXYqgNbaZbKMxKGf61Zgg/ym6iDnt0WpxVH4q7FXYq7FXYqw q01W1hN1E6XBZby8qUtriRf96pOjJGyn6DhQjvLGuWSaSVMd2T9avDtZ3bDe7lPURHFKbfp+x/31 ef8ASFef9UsCu/T9j/vq8/6Qrz/qlirv0/Y/76vP+kK8/wCqWKvP57r8zTOZUv29ARuhtlsrkMzO nAurm0+Hi680+dD0woUUk/NBjKx1J4ikkckKNZ3b8kjHExFxaqKNXkzGPqKUIOyqMin8+xBLRtQu J0jljP6R+pXMbMnAFyYWtpdhIWqnL4hxoV3GKqsPm/XvLHlvVtc82Sy6ibSKOWK2tbK4gQKsa+r+ 8lhjFfVZlBYgFVB2JIClOvIP5k6L52sjd6ZaX9sgUNW8tZIozX+SYcoX+SvXArLMVdiqnNbW8/D1 okl9NhJHzUNxddwy16EeOKqmKuxV2KuxV2KuxV2Ksdvf+Ukuv+YO1/5O3OFCpon/AB3dQ/5hbT/k 5c4pT7ArsVdirsVQOsypFZxs5oDdWiD5vcxqv4nFUdirsVdirsVdirFtO/u7n/mMvf8AqKlwoTLy r/xyD/zFXv8A1GS4EpvirsVdirsVdirsVWT28FxE0M8azRP9qORQymhruDtiq8AAAAUA2AGKuxV5 fJN+aC3PrLrTyWzgs1ommyxNGz8jxSZrKWqIeH2kqVr3woRFnq35hPZy2N3cTw6g86zLq0WnSNbJ AqLzgjjMPqcpJQePNDxjNeZcUxSqWHmTz3aXMcupWdxqFqv97DaW0okYceIp6tvbrWpLN8Y7U22x Qo6lcfmPJJdLp+sPbwzSPJbNLpk7yRATSFIwRaBeDQGNW5KzBhXlTYqUDbXv5uiP1J9RrIYnMkP6 OmdVlKsVWKlrFyo3EKzuPEjtihMNa1n8xL3UDPpBk0vTWjURWs1nM1wrqrFjLS1uY/jZhThJsFH8 5KqUvSX83HaRm1t4lCMEi/Rkhq/BVQh/qew51Zqr7YoZ+NftLWxrL9euXgiq80llcq0hRd2bjAiA tTsAMCWIeR/zm03z1KI/L9rcQSKv75b21mKKw7GeD1IVFOnNgTiqeW1497qCXkihHudMsJnRTUAy NcMQCfCuFCO0T/ju6h/zC2n/ACcucUp9gV2KuxV2KoPVkR7VAyhh9YtTQiu4uIyD9BGKozFXYq7F XYq7FWLad/d3P/MZe/8AUVLhQ1pWoX0FlFb2qRtzfVLiRnEjkLBekcVSMFmJ9XoMUpHoX53+W9V8 0L5XS2vjqapLJcSfU540UR9hE4+s1PvGMCqep3H5jya1Ld2OsSRaSZG9PTBpkwcRVIHGd7SQ8igU /ECAxPVRTCqnBrP5lRW+o21w0893cQoumXkVi/oW8gZubSBoInZjHw/3WVMldkSgxVC2cn5vvLOL 3XVjgWGVbT0NKnMjStz9J5S9qVHHkv2RT4em5xVOrnVfNhtJ7K2nvxeiczW+pSWBEBt1c8IGAtnc yOlObeiAP2TtuoSiS4/NtbqFhrAlgFwyyomlzxVt1JKP8drKVd60ahPGm3KuyqM03WvzGtY5YtQa TUJJ4nSzmTT5kWCZlQLJdH0oyyqQxCxIepBJ2bFUDNefm6bdSmpcbipEirYTFACqDkhayBJB5sAa b9dsVTvyxc+b7fUnm8watdXtkBIYreLTZUBLlSgfjZo/7schUPv4YpQkn5r60l1wfyy8dq4LQ3j3 LFSpDFOaRQSyo7BKceOzED3xpUVafmm93p8skWk8dVFwscOkS3KJOYCiyPPICp4COpQ0DKZBwVic aVV0381dLuLqOK/g/RcLmj3N0zxxrRa7s8aLRnIVTy33PtjSobUvzQ1e0ku4rfy4940Uji2kiuQI 5Yo5pImYs0QZX4xiRVCspVtmrsWlQVt+cmoSoJW8szLC8TzIfXowVVZh6okijWPZNwWqOlCdsaVE 6/8Am81hrCWWmaHNrFk5JGq20y/VmURo59N1Vw7Vk4ha7lTvscaVRk/ODUxEWi8tSuUjLyl52RC4 Z1CxP6DcxtGeR47P/knGlZvaa7YT6VDdXkkNu0sCy3FuZVk9MsnJkJ25cenTAqW+UvPn5fa7DFbe WtWspwo/dWULLFIq7na3YI6j/Y4qkmlaxaI9qDHckrpOnoaWty26+tWlIzUeB6HthQnvlq7iuda1 Jo1kULbWgPqxSQn+8uegkVCcUskwK7FXYq7FUBrcRlso1DFKXVm9R/kXUTU+mlMVR+KuxV2KuxV2 KsKtNVtYTdROlwWW8vKlLa4kX/eqToyRsp+g4ULvLOp2j3Vu5MkMcEesSSyTxSwIq/X42rzlVF2H XfbvilX0/wDMD8utZ80Q6Tp2pWmpa7HHK0Rtx6xjjUfvKTqGRflz3wKgtQ8/eZ7XVJLaPylcS2CT SxDUTK4TjG7IsjRrBI/FuBaor8NCKk0wqpQ/mjdmw1CW50KS21G29L6hpkkxWa75ymNyivEjhUAE hPA0QgsF6Y0qlb/mV5uuJZ4o/JF6ht4p5HeaVo0Zoi4jWM+iS4lUIQaV+I7fD8Sqb3PnTUYbSfjp aS6rbzmNtKjuGadrdHKPcqiwtJ6fw1Tkg5e1RVVJ5PzO80R3UMUnku9ijluGtTI8pPF0J5tSOKQM lKcSp+OtFrQ0VRVh+ZWoTxTLc+Xri0v/AEZJbCzeUcryRBGVjt+SI7/bbm3CigchyU1DSoSD81Nd mmonlC+EDUMXJnWdh6fMqYTD8Lg7cS3040qZ+VvPGvazq0Vld+XJdMt5bZrr6zNK/JFEjxKjRyQQ nmSlSAaAEb4FYxJ5p82Jc1Nl5e+pSAshieGWePlyKI6NdRIxHFVZg9N69qYUK9n5y1C4s5beSy0a 11wzq0UchDWiWgRWlLXAcRySCTlElGUts/AJiqrYefIEuY/0zptnb2X+7ZbdIrhh8NAQkMsz/E5r 9g8QN/HFVHUvM3mRJLpNOtPL0yeo7WU8skSUiSaRQjxic8meFUcPyXc8SncKoOy85+bpgryaToKC SNn9J5YYzE1GKq7+vJyI4gHitCe4G+KvRP0l5K/5atN/5GQf1wJd+kvJX/LVpv8AyMg/riqndal5 H+rTepc6e0fBuarJByIpvSh64qw78pfMH5HT8bPyMlraX5SjQPC8d4Qo3DSTDnJ9Dtiqe6P9q0/7 Y+m/8z8KE10T/ju6h/zC2n/Jy5xSn2BXYq7FXYqgNbeVLKMxrzY3VmCP8lrqIMfoUk4qj8VdirsV dirsVYtp393c/wDMZe/9RUuFDWgSRxXFpJIwSNE1lndiAoUahGSST0AxSktgfyO1TzssemppV75o Mcpb6oiyclA/eGVogYWYf5e+BWZ/4a8uf9Wqz/6R4v8AmnFXf4a8uf8AVqs/+keL/mnFWGeYtSbT NVltbHyAmqWkTojXkSRpUMiOzKnotyoZAoodzXpTCqGtfNGi+tex6j5RtrFbe3mls5GRf9MliClI bZJbeB3MvIhPh5Eq1FIoSoULHzNc3d9BZj8teBlYc7lljFuIyiPzWQwDlQs6kbbqKE8vhUpnBqNk 1hM1z5T0+21cQxy2WlOyepcySRJKyR/6OJCIvU4uwjIDA+BoqlN95rltg7D8tWaONokMjpEob1wD Gy0gb4aE8+VOFKN8VBihOfL2oWuqasbC48kLYw8m/wBPeFDDxTmDXnDE3Oqrtxp8W5DLxxSlGief /wAyj5jI8wadp9p5ZimKST2yTz3UkTQuY5I1jllO0yqsgMdRyFOQ5MqrVv54/NaW7himsNMtoJLl TLc8JJVjtZDCaFRdIzSxK0vOg4llHGo+ItK9E/xHo3/LR/wkn/NOBXf4j0b/AJaP+Ek/5pxV3+I9 G/5aP+Ek/wCacVd/iPRv+Wj/AIST/mnFXf4j0b/lo/4ST/mnFVK68yaELaYyTc4wjF04PuKGo+z3 xVhn5TfmN+WOuQDTPJ+nyaWyjlJZLZNEoIFSXlhV4a+7PU4qm+j/AGrT/tj6b/zPwoRifpK21Ca6 tPRZZ4YomSXlUGJpGqCvj6uKq/6U8wfyWn3yYpd+lPMH8lp98mKu/SnmD+S0++TFXfpTzB/JaffJ iqncXuvTxhGW1ADxyVBk6xuHH4rihU/SnmD+S0++TFLv0p5g/ktPvkxV36U8wfyWn3yYq79KeYP5 LT75MVd+lPMH8lp98mKqFhBPDAwnZWlkmmmfhUKDNM8tBXfbnTFCnoTok1q7gsiprJZVUuSBqEdQ FUEt8gMUsF0rzP8AkTqf5jfVdO0UDXkjmM96bJreEAAchJE4RmdqihMX04q9B4+Q/wDlis/+kQf9 U8Vdx8h/8sVn/wBIg/6p4q7j5D/5YrP/AKRB/wBU8Vdx8h/8sVn/ANIg/wCqeKu4+Q/+WKz/AOkQ f9U8VS/zA/l+LSLhtC03TZ9WPBbRLm1pAGd1UvLxVW4IpLNx+Kg2qdsVYfFrPmRvKlW8t6Knm93D rbPZFbNLcQB35OksqtIZw0SATb1VmCryIVTnyldvdX9+3mXRtJsNPUD9HRQ2atMxaR/7yRZJ0+GN Ur8AqW26Yq9LwK7FXYq7FXYq7FXYq0yq6lWAZWFGU7gg9QRiqXr5e0mOGOC2iazt4V4xW9nLLaxK K12jgaNPwxVY/ljR2EI9OVPQhjto/TuLiP8AdRV4KeEi8uPI7tviq3/C2keN1/0mXf8A1VxV3+Ft I8br/pMu/wDqrirv8LaR43X/AEmXf/VXFXf4W0jxuv8ApMu/+quKu/wtpHjdf9Jl3/1VxV5z+efm DT/InlW1vbI3J1G7vYIoEN5dGsUbCWfYy0o0acP9litM+07RfL+o6fa6haPdSWt5Ek9u/wBcu/ij lUOh/ve4OKoj/C2keN1/0mXf/VXFXf4W0jxuv+ky7/6q4q7/AAtpHjdf9Jl3/wBVcVd/hbSPG6/6 TLv/AKq4q7/C2keN1/0mXf8A1VxVevlzSkihijWaMW/q+kyXFwj/AL9xJLykWQO3JxX4icVV4dH0 yKaG4Fusl1bqyQ3c1Zp1VzVlE0heSh/1sVRmKuxV2KuxV2KuxV2KuxV2KvLT5z/MU2kamG1S7aOd 2ZY+aq4gWSFN5F6y1jPh4t9rDSGfR+YtJWNBJdB5AAHcRuoJpuaUNMCV3+I9G/5aP+Ek/wCacVd/ iPRv+Wj/AIST/mnFXf4j0b/lo/4ST/mnFXf4j0b/AJaP+Ek/5pxV3+I9G/5aP+Ek/wCacVd/iPRv +Wj/AIST/mnFXf4j0b/lo/4ST/mnFXf4j0b/AJaP+Ek/5pxV3+I9G/5aP+Ek/wCacVd/iPRv+Wj/ AIST/mnFXf4j0b/lo/4ST/mnFXf4j0b/AJaP+Ek/5pxVBarrOnXVvBBbymSVruzKoEetFuomJ+z2 Ariqf4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FWE3Hn/W4L25tW8s3dIZpI4bj4vRlSOaZOYYRmnKOJXAp3PYAsVRH+ONQfRbHVF0 O6hF1IyzWs6uJolU/tKiP8T9Vr8NOpGKoDTfzO1K9MjL5X1BYqBraTi3GQGIyfaKAbsNv8nfr8ON Kqx/mVdmzubyXy5qEEcDQRRwyoVmkkm4VVU49i9BvvTtjSqg/MLUjfWkR8tXy2l1J6L3BVuUTesk VXQJ0CyVND1FOlWxpVO7/Mq7tr2e0by3qDSxhjAqrVp1XnvEKb04Dl4V+VWlWf8AKzr9Z/Rfypqo b1BEXWLkn97JGXrT7I9OtffpTfGlUo/zQ1hlvkbyjqUdxa+qIlZG9ORo5REF58K/GfiXipqvE9zR VML3z3qsFprksfl29kl0qX0rROD8bv8AfenyQqjEJQhuVDtXwwKli/mxftCLkeVNUW3MUslJIZVk DxuVVOPpn7a/EKGgFa0oORpWfWkzT2sM7RtC0qK5icUdCwB4sPEdDgVVxV2KuxV//9k= uuid:7793878D1AB0DD119D558CA4BC145381 uuid:A3660FCB4CB4DD119E9291C17F661F45 765.000000 1260.000000 Points 1 False False ArialMT Arial Regular Open Type Version 3.00 False ARIAL.TTF Arial-ItalicMT Arial Italic Open Type Version 2.90 False ARIALI.TTF Helvetica-Oblique Helvetica Oblique Type 1 001.006 False HVO_____.PFB; HVO_____.PFM Black Default Swatch Group 0 endstream endobj 625 0 obj<> endobj 626 0 obj<> endobj 627 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 628 0 obj<> endobj 629 0 obj<> endobj 630 0 obj<> endobj 631 0 obj<> endobj 632 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 633 0 obj<>stream H‰”WÛnÛH}×Wô#¹ˆè¾_7N$@6[‹4¯Û¥ë|sñŽþŠWý€O©é[8’š‡vàÏš¤ãeÑú.4_»}¹¦A”$x¦Ñ›6‚Ÿ1 A9¾Á¢7Öµ«O3ꥳ]Lƈ¥ê´ž¡&4¦s‘ÿó•"’‚í™øû=£Á-*|³l’Z€Û<šD©$sUàBI 1>Xg:é¡­L‡ÅÚçbi?!0ŽëÖºN7P< T]¼¯÷÷»~ß·¶³ÍÀµZgé¸= cáñWh¤­ÈÍç(\€lSçs›½ÿ›J§â 9¡¸ÏÎ^6Ÿ÷ýpgoÏ­Ï_œ/~ªú¸3yD€ve•йü0SgŠ£Cç&@ :™‚Ø/ ˆÁ›.D%v —ºdTŠÐYo§#;#;Ÿ¢Ä>€rZ§0®J¾L×wB¸ØYe«³âiˆ_ QÒd,ÎdÈlY?ʹ`p® æ/A :É' rÖ×&Å“?ý0 äÒT‡=ytUa¼†½þ|aŠG†4{œ05 ÊíòVаø×Ù”ýÁ^°&ðñþ‚î’ry/[‰€‚ìL˜- ¬¥*Q‰ ãÈ"a¤*KðáUÝS„(‡V¶¶ð¸ök…¡Š¸lf¼7ϯÄ÷2¾:ÿ,±7°,>Á·jÿ(”oŇR\/B„ú»š VL®¾FÉT6E1ÙDÝÉø-´›Vˆ3úΦoÈs1B3ù: +*$ ¤j$ &KÓœ†"O~TÁ¸o(&¯p$ænœ¡3*æfrkQ̱ó2|CQ¥óÇ{@IØí*UÙ( <…ª•„«‰J Lê„”Ô¯;,¼¬ÛJI´x¢)J/"²>• ÐâêDcÉÏ mp Õ‰+ d(*u ¬@áâ¤A9À5$Ë,ZÇ¢›| ÄÀ—-¢f‹dIf‡p3¢1QL£M6HŠXY6,Ãe€N$ç³ÆJr™<…°åËN–“ƨâÁEÍ1¨Å= 1ŸÐ”§7ƒ$G8GJÖ’¢$­ø4'‚g¹øt HÇ´™xõ>M20Ljv',Ínq·¨Ë§FN=rOwÌT$øì³ßHd%ÜF¤Bd9¯OD›¦¬1lo«œª†ñ&{)‰ åAÒA1×±ÈÚð‰²_œöœ|Šê+Wì¿"èkM}JEýM F´†.ÐÜF±'E¢O¯OHJ`–ÁM YNŽqõð2޲U9CÅ_1c©ÿ´£Ý¨Á—› 41byqhEýçšdî'ïO,"gšÊçøÍ«ÃZÍaSÂÙÚ$[å—à³^çŸ`ÔÂÄpŽ<$C\¤bHïNd-C9ÁÃéʘ[Å€¡M¥-,ï’ Œ˜QBé¸s 7Z’S#qk%ÆYpx÷Yr:ÝM ðT'bäª:L'¨R³… '¨ÐUÅ’ÊF}Rð•>š3ó<+ê4êÄ·êL(¤ªh„p!T4Ïr)Ĭ¡R¥”'Ó@¸PÞ+ÏÛ3JÍ8-M £"¤vì‚¶>÷œL„%f5L¤ÚOûPÑFs6…q§¥A™G$©‹d+¸§ÒIl–BÊ“2#„æ³ñ$lX]e™øþRXÀvœx¢üYpô>ÄTïÑ"ÎR4’"ЄEžIÏ; ¿Éd_.P^–‰¢¡·QW)À%eJöÏœ&Qñ¸G&ojþNò¢\R¹k§“E…2H0'TÇÙUºA­P@”V)K3ÍY”v+y–v,ì×H•j¶ƒÈYì&÷E~$€ß#:ŒM.Ð7peÖùÌR"«üœ“gűU]æãÐ3û¹e€}݈Ýa¸eTë)Rrv‘h2tþå`ªÒØL òѼ¿„.Xµ«Oó$¼ÿ¹ÙÜ4_â£7D"öÆzû‡ÖCºGDÞ·HÂ5VQ7ÏÄz¸æÊHÔ¤øue*§äKÝ.±´ÅÙU³¾Î:¨ì~,@¦~›¥,BóôÌéûQP‰âô~D¨À¨ëc¬9dýp˜;q¸Íªéõ)§¶û.¥8GD©³·5¥ g^±€³”™uĬjº êªïÐù×Ö1/>%ÆÍ°€¬2Ú ™›}hþ{Ù9žìƒ\ª«³œgYOÎsž‡VC…ï°ç4ö¢ˆ_¶”ÂC·5ÏþGzqÏ·ØÝ“ &Æ• _,4Cùëˆ:MÔ)W;=9+àKߺ¼Øi›2Pø9‡ç/^_¼¯óš†·(,šºO¿^©ò­ÀŒõä>C9ù—ëÍÈž7‡áf{ûùÖ3Vãn ¥yst¸É ÂN'ë_Íû?rÉ×»Ýá¾½¸¡ KCŸšÏy§„¦a’ò–¼îo¶m_èçïÔ^áoÏÄŒþŸÐjÙM‚÷~EŽŽÔT8ŽƒÝ}I= Jˆ/@…bцŠÿïì#A«^PØÄk¯gwfèø!ôü{=Xc£³a6y©£@n‘ BÎx%Dï>œc§ n· *¯t¦ÏôñK~a¨a-*W“ñW¼§€Ã)ŠŸ,„Ó‡Ù]ê¯ ZïÅôµyß~oñI&-Î!yIdthùÄ‚“¹°#9ÍqŸ=è¢Ú²Õb9²XÝNW—ãj¯üõ”0¼•iϤ%®'J‹k†TÓáT5ëçjGk–J(¶¤¯Ñ’5U| 4í[Mæú[C]™ÛÈDW” hU0£”˜`?c!3?¤ï‰ˆånn>;•ù³´&:ìÁcÏ-Ñ=_7:X¿n ϲþذRyt]Gç$d ÿu:%KâÙF s&)ÞHÐÀñ4s¡å OˆÙ‚´;Ýú¼WzÓrÿuI©a_ÀŠLpQ+i ÷xâ8„æ D­ø2I‚j‡´LÇeÆi™%—©L¡ˆp! מ©kÕöбj“mØòPkO9ÝmöžÐqiÓIk-³Ýñ$ÙŸ×7? rˆE+ endstream endobj 634 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 635 0 obj<> endobj 636 0 obj<> endobj 637 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 638 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 639 0 obj<>stream H‰”Wmo7þ¾¿‚wÑšïäöÛÅŽƒÈ½èЂ|pÙVjI©$×Íýú{†3\íÎõ#Ðr8ïóÌ4ꮹxýÞ¨»cccŸ³J!õ!*Ý«µÃ¯uÃ0¨Ãº¹mlªÛ>Ã|÷âòÕêbÒCV:eïŒ:®vMðÊ»ô ½2ôQ„`™¶b?Dmʞͽ¶¼ùrÙ\\[eÔò¶H¡T(_n á¬h8¶\a¹|jZ»ågÈ9–½Â{b}áºZ^±° $ü¡}zzê¢îCÛÿ±yØìºEÀ÷ýj¿í>.ß6¯–ˆ¤¬¨X³GŒ>CÅ÷ýõÉö:Ï}ÖÅ[ò›<þÐ^¿é|ŸÚëËz½ÞáõënáÛÃÍiP¿ÇÞ/ƸÈõäœZ˜ÞÚ1I¾|bÝÿê©÷íëζ&u ¸Þõ÷/‡na"è›e&¿PVó—Ñ5â?©©ëQ°äŦû!ε ãêŠO¶J¦²dжJ²èƒ„ ×ÅY©qEÉÙå=ȵ7_ø÷´æßƒò?H¦¤¡79&.8i Õ+Vë+»Z»@Ù@VPô».ö¶ÝuÀx ÐâN=mP”ОîÕ©#C÷e{­.÷‡uM×oÀóF5€H1öA…¤É£¨þ›Ú1Þµé½E˜¶¼ ‘0eòWûÕãv½;©‹w—pïåÕeóÓ¤ ƒÃ?ê;íê?ãÉ¥hcKm\=èÓ€vJ‡dÕ¶¡„ž¢ë#:øje?£4´¥àîã5àòÁm3DÀ÷Í„ÜÛãìOÓX|Ï,:\m¼ÏS @™ù™ûg±Œ¶F¼Â?¯¨!ÎÈo¤ò¼7ÕÈΫ(+Œ82œÝ6Ž”²N² eŒ“uV«"ÕL‰Ì0CÊ:V}èˆä+Qè§ufó„ÖIˈe‰d=SëLŽm¸*Q׸?‰„PpNx´#›à¨<®Zâû„iÆ>EÎKpl!:Yû1 c™"a˾D< ©Z8²¤Uij¤Ù¥qÍFÒD”‡…JóÐÜ7“ò¤±~Q"OR¿$}Ÿ8Ù² Û$Ýa`ŽÁKê†0[»8JÅzá03ˆdoe® µ‰³¡¥1³Z²Ê×ø¡‚Ч®Ÿüð Å<ÓåßÏô¥Jaz…çœ/N*.ã&&òsË”ÒM¿  Y¦N´e Û¡)³*t¨ÅæP88ÍX† ¶¦¬ 4JÁ[5†óh#ÛÐcO¢q-˜r~Æ%Úª!IÏ6rÎ3/É<{™p ÷³8hŠÙI¤˜xvš ¬SsÅβŽ\ª‹µTŽ.¥ãÅGùD@(–-8iV"Ÿ-1‹€•™rVg}9aÎQ ¦iÄ“ .GŽ›ó€¹é¦™Âú›)…³Å±çëh'Õà5Kp½Î\ϳ®øÙF[½¨˜©^VTãcws¤—5¹ç\áõ!“³‰µçdŸ—µ•"åªòµšóÞ`g묌Ò-NfLâ0|-Ç NfID *óõ'Iƒ¤¶¶Na8À|zàT[ÍÀ·ž9èÆ<-­ë)5Ì8’Î3 Ù§ol 9O¼ÈÌÄI`ÐÄI„ÚIŒI®65X×B¹(AÒæÖÿ“©z^Ÿû„)¨ŒË¥HÒš^†T¬ìz7«ÑEôvH“ÐûÁÕ^—‘äuÎÆKmÏöilË`×ra”ƳLW ?©¯¥I¼™qp%«†Z볊†êEEKõ²¢éFÅ[ Tà(Y¨p³HÚ’ÌrëÂ$Íu=m‘JáRU µ”óŽXá¦õêÝeóSsñú½QwÇæå²¹¸öʨåmCo<´*eŽ8îÕr‹·Â^RZ[µ\5 z aÌ/Ÿšív½Ý¾v†žgí‹.´ª[ÄvµÜÖ‡£ºÝÔÓasZ«›Ý§²uèðê íºƒš¡½aâ—ý¦ðw—oKN,¯ŠAà¢ZÄÅ·X|!v¿w Ì¥b›ýî¨~YŸžÖëúe³»9|-Ldóõáæ«Zí?­UQ¾€öž%¨6È„DGÈçã×n:¶»Õý¡Ãc.´ûÝæ?7°Øž:«0©nVu¯#•í±[Xl;¤­U«‡ýêWÖ¢ºØ~¢Í‘u[Tmv"ò¢ó-eˆyÔÃþŽ7ís»*i\Ý<¬»jûPÈSov" N÷k²&zy÷æDb®}*1Ü¿›jº+ŸÂÒ—d]\;Æ=C 6Êa#f øSî¶t˜ï„’Ë/þ‰J¼I`‘R¥–Ý€î†IC®îdwÍkx xäV-Ô5>}Év Ü+ ¨j•çEGx²âw~Ó9+‹ç³ìz6º¨ºŽërqýzs×Ê!žba¶È _”¥ýAìY¶‡Aï¶¾xˆUµè?VûX´îV§ŽJ¹¡|{À¢I;Êñ Þl¿<¬·k°„JeþÂÊü‘‚óýmÙS7êúÍõêiü÷,XXÞ\Ä¿fù/¢úÓšÕœˆŒd^´EiÛ_ C‘½Úooªê«e)·Ihb«lè±åðƒ{׉Þx­Þ6WûÕãv½;©‹w—xÙ¾¼ºl..BG…BiC…¡[;ýVÇÕ®q.–+©¢ó/ÙÒ—ˈq]T#&ðv ßwM§ŽEÞFºN¸¹¼›Ë[šËä|Ì#¨ô0,,F}FAŸ”Wï KKÃò[¹íŸkzÏVº·AÚ&<ʧMtÜàêå4’2[\×’ ˆËXƒsƒ~NŠO—YÅHúù€¢aˆ`¸^? s1ô’)@f–ŸÏ^hQvîh‡ž¼þËv¹äH’Ü@t¯Ã4Âÿáw˜[Ð@@7tÿÝÐÜ3Uf$W ¼®0~‚d6üèÄüõ¿¿ÿûoü§½o¼ìĺ𳠇Õ÷-U›Ûä¿ ôs¿þ–‡" “÷W·…ÿ‡ô¶(G²Ï]Ë:‘\e"öÝZvÅS¬×:²+'ÄÆý©¢ÉUf²N>«ã5‹r$ë\ݪ‰«t—“ÇÚörŠ(²mm7‘  ø:÷8ÙP¤¼‹n$“zzŸŠd¸:a‹Ú$ÔkóDØ“—œL$Rg{ìsg¿3þ±s©" .¬*:‘\e&¯ý»%~÷MQŽdŸƒ“u"¹ÊDpÃUž‹†uÚØIG¥a i¾Ò²N>ˎ⧉r$𨼋„,_©-)äñ¶MÏ+ÊÔJ]ýêDâ*­óäC±p™´"Ê‘,êê}*’é+mv_¬%±^›Ÿ!Ê4¸Tf,!W™ ~dr¨Vq'±n°èv"‘¼O.?e "é°¨ÌW$eþ›vÒ¡XÝ.›WŠHH§ŽÞ§"i¾Ðþž|8–ýŒì⤄¼?=ýÊàê´Ÿ¥cOŽdGl/ü…Í*ÝIÈUfbÿÎ"±°ÃÅG Ceºr•‰ÌròáX¶Ã»ø(’i•WAñuÎq²¡H\\”øS•#¾Îõ e \VT롆~E"Ñ*í’B.ha}‹‹2¨Ÿ÷©Hº¯Ò.©µÄWkÒä\åHàO™®„\e"v[•.¾²‹lOÙ¼ 1®ât"2“uòáXØà2 Ce¾²|¥vK!Ž… .>Šdá2_ )¾R»®ÅÚ¶Á‡ø(!“ºúÕ‰D+íÏsòáXØà2 ô¢Éã*ívMíÉ»¸ÛU&Ÿ¢À¡[T"¹ºLöɆ#Ý•¬HI¹_ ù(óß´“Å*ØßK”#K¥; i¾R»®Dz¾ª(Gòþ’¯Q \µžl(RÅg'e¤QOïS‘T_§]Rë- \æ !ð¨T‘«LÄn«Ò»Ä ï¢HƒG›Ó‰ÊLÆÉ‡b5ìp™ƒ„À£2a ¾R»¦Dz¾E؃‡Ê|EòÑå¿é'ŠÔ±ÂÅI éÔÓ¯N$®Îþž|8v¸ÌAB6õô>Éë+¸—y#w»Ê~¦ç('Ä<ºeÂr•™àb–ÉØã⥄À¥Ò±„\e"vO!Ž…=.“É„K¥? )¾R»°ÅšØã⥄À¥ÕéDâ*]Ïɇca‹—"Y…ºzu"y|¥ ÛVfc_EBìÒ~›Ó‰ÊLlÛÊ'~Áþ2à Á¡-ž#Là­' e—Ù|d¾b—¶¼ôª¯ò]'ŽÔÉW7’EýêDâÊ´{jȸ¿0¿ w$»RG¯L$ÅÕ¹ÇɆBmx_voB&uô>ÉpuŽ»V¦}Ãûr•‚§öœN'(3é–à°³¬×"ʑإÝD&€«Ëä=Ùp$8¿‹n$vgoUŽäõuÚ5ÕxØGñÙE=—ÈDÒ\el8”íë"ÝJÈK½OE²|µžt86öå@j¥ž~u"q…Ú5e×Dz«¬Ê«‰þ”éJÈÕ%Ò°g‡Dzmvš(Ò`PÕ‰ä*3'ŠÕ°¯—(G‡N§‰«Ô®)äñl_7™ƒHì*«òjøèòŸ´“ EêØÖònÒ©§÷©Hš¯Ón©Ú%–µø(!0èëd"Ñ:í’š„²‹Ì~c°pB`PéNB®2“yÒáXØÞò}M*ó•é µK ùp,[ßbÙ&ü)Ó•âëœãdC‘&Ö·ô+!“zzŸŠdø:íŽB> û[|Éz¨§_H\¥vGuÂe ¼‹b•ž‘«Ìäµ|ä›»°Áåí$UH®2;®Šœ3ãÅçã%#ðèët"q•Ú-e{Iba…Ë$$&•KÈU&²Ëɇca‡‹—"Ùp©LBBНÔî«*'õضÄU8ûËåDÐ*çóœ\8ÎK³su=±Ë:zu"y\•ö­B:`¿" ,ºD&’þË;–[—P¶ÁGá@Š9tòt%ä£ÌÓN:«`ƒOQŽ¢Ió…Úu…|86øåH^jêW'Wi­'ŠU±ÂÙGiÔÕûT$ÕWZq/o‰…¾D9’E]½OEr•‰Ø}UF“X¶ÄWå@ì)mX Ë÷²LFâ <*–«Ìd#….NŠ¤Ã¢RD$W˜ÿ¤Ÿl(T·>ÅI E«Ó‰ÄÕÙß“ÇÂ'%dSOïS‘¼¾P»¦Ų«L*Ó•ê븖§D—/lBàP™¯„\åßÿúÏÿYµ[àéßhPªËfŽ_þd-n|N ÃÄÖBáQ]ÐÛ¢‰Ý„íH®2‘×öÂâQµblþôdϧŠN$W™É:ùp,Uù%; çr:‘¸Jmñ#Že£Z‹(b„ܱ (¾Î=N6iÛ¨¾]t#™ÔÓûT$ÃÕÙlõ×&¡lRûaOðÐOK¿2‘HÍ6¿ÝAªÙÑKáHì ¬Ut"¹ÊLl)ÈOƒöØrYS”#±ƒð¢ÉU&RÚɇbÙ Q;)#ð¨4,!ÍWZÖɇcÙzyš(GÊ»HÈò•ÚêG>ËöË|E9Z©«_H\¥¶ú‘Ų¢¶"Ê‘,êê}*’é+m¶Ö’X¯ÍÏå@\*3–«ÌÄVƒŒ|³ #3,ºH$E#ï“ ²õRe "é°¨ÌW$eþ›vÒ¡X½ØìH éÔÑûT$Íj«ùp¬i³#NJÈûÓÓ¯L®N[ýö“‹#ÙÑ a3‡Jwr•™Ø¿òÓ  ìpñQBàP™®„\e"³œ|8–íð.>ŠdšCåÕDP|sœl(ÒÄ%þTåH†¯s=H‡CÙ—Àz¨¡_‘H´J»¤ ZXß⢄ êç}*’î«´Kj-ñÕš49W9øS¦+!W™ˆÝV¥‹¯ì"Ûò3 #æÏUœN$Pf²N> \¦ !p¨ÌWB–¯Ôn)äñ°ÁÅG‘l8Tæ+!ÅWj×ò¡XÛ6ø%dRW¿:‘h¥ýyN> \&!þÀ£St"y\¥Ý®©=yw»ÊäS”8t‹J$W—É>Ùp$Ûß½‰r &å~%ä£ÌÓN>«`/QŽ.•î$¤ùJíºB>ËVøª¢ÉûK¾F)puÖz²¡Hœ”‘F=½OER}vI­·H,lp™ƒ„À£REB®2»­Jï +¼‹r mN'(3'ŠÕ°ÃeÊ„%døJíšB>Ëvøa:*óÉG—ÿ¦Ÿl(RÇ '%¤SO¿:‘¸:û{òáXØá2 ÙÔÓûT$¯¯tà^æÜí*û™ž£œóè– KÈUf‚‹Y&c`‹——JÇr•‰Ø=…|8ö¸LB$.•þ$¤øJíÂB>kb‹——V§‰«t='Ž…=.^ŠdêêÕ‰äñ•.l[™U| ±KûmN'(3±m+ŸøûË€'‡¶ xBŽ0·žl(”]fó‘ùNˆ]ÚòÒ#¨¾Êwd8R'O\ÝHuô«‰+Óî©!ãþÂü2Ü‘ìJ½2‘Wç' µá}Ù½ ™ÔÑûT$ÃÕ9ìZ™ö ïËUžÚs:H Ì¤[><‚Ãβ^‹(Gb—v™®.“÷dÑàü.º‘ؽU9’××i×TãaÆgeö\"Isu–u²áP¶¯‹t+!/uô>ÉòuÖzÒáXØØC”©•zúÕ‰Äj×”]oË®²*¯&øS¦+!W—HÞéµÙi¢HƒAU'’«Ìdœ|þa¿Zv㸱达¢–Õ¨Íg‘5;¿dÄÐX±Õ†B`Šì(è–¶’ÿ~Î%YU¼dµÚ ˜…`$mŸº/^ÞÇaæKÓ¾vÌrP‡ö…)N 6Eñä¾°¯5«ƒ+Sìj* ÙÍEtˆ&ódh[³»Y@L–Ó¨U#º<'¸”2Ì-kÖG 5¨/ÌÔ?'˜T/˜+02¼1rà 5(ËÎ-çHÂÉ}Ñöfóu¡eõµ€ôåAÁ¤(žÜÖ7kÙ è©?Yu- ²Ü¬64ÏNÁ2d»ùÜ„ßn^5ݯñ“Ž_Ä´4}ù­}yÏõÔZ"Üøõ¯ƒzw7{úøzÓÈömÛ¨ei[3¢Ik°'¬PsëµUCK¿^ø5»Žâ—à^B»V#›£4 OƒLÉý³¡‰B)õ \Îôí‰îüEµ'ÁÒ Aé`–F¡]sÙÖöwÇ=^4ï—ïFzÖ€Ök¢uI9v9oöååHääÀå¨1ÉßÚ‡ûöÅíדïÈÅbëvsÝtûo$r‚%àÁO@7,¶IÐç«îåýÝJ‰îÝÍJtûrÙÑíþ²y›y5kíG¯_ÓÍ?Ò+z@&²-¢¹)¹hs¯Òu–"»ãJ¡W¦ã.4M(:éÓÖÃÿ©®9Ý–z}ïŽê} w¡Ö^âý™ÝEwvÿåöúxV±þqæ±&)EvÇ•ŽL ï.òªRåÚ˜£•zE%§E÷ ÅGõþ¦¬<Ô;&úÑ^ ©µ¨P¿,µÿX…Oƒ‹JaŒ¤ÁŠÆïâ±lMµî[ƒ÷’4.ß ÙN7Gˆw´ÕHËÁ Gr;„øI&Y[íŒ2º²L·¬Âí1n’I–ÁXŠ˜3$ÙgP˜ú9Âí±ØÖ̰ňÔ™‘dÆÒú.Å솵40à fhÕÜðŒ$3=åe¹°ÄéI&Yî=ú…e9C’ì#9Âíñj’I–ø ?W†$;ïf¸0dkn×÷kÁ]O@2ßû)¬âzô¼$8³Š£íÃt0à;€ÔZ%‚Ëèmí{\$²`0ôlÏŒTˆ£âñµ•À}r³¸<­<3R!P¢ùPYÉ$f³¨¿ÒH…Xêס¶¥e˜Lc¸£’*\×èsSþ[M^lX'ËÈl4„*Ì1ŠM¡I¸ÖŒ$˨ËP‹È²ejÏdv¡IB9gZ3’,C‹k–íBCxÈ=9Ú$™€dÔU+uY¶K2’ÉÐØ¡µ¡™ÌŒŒ–ED‹È²eŒŠÉÐðtqXe23’,[Çé"²l™VÝCŸûÂÚ,»« I–¡%õ!dÙ2-6ËdÈ—ˆ+*Óš‘dY¶ï9²lyËXBò¥e\~™ÖŒ$Ëãâ_D–-gn²dN)¬gèd'õõøï¤S[ÉT£‘Cnk‘[™ÆÔˆ$ÚJŽøµQ¹YPTfvªT*ÛŠE弊 |`¼jÚÓ¹WÉÆ>?q¶'ÎöÄÙž8Ûg{âlOœí‰³=q¶ÿ{ÎvѼØ4ÏNu+ÛÍçÆ­…À üIM¥§Ò"sÚìšîüçÍOçý{µù£9ë^iݞȵÐ~h7¯šîôvOŸžb:ËØ¯(W>~Ÿ’O´lÄOh,´›ÿ6WÝC{¹Ò¢»ßÿÖ®NŒèNW¿lÞfÖôÚá¯AKF÷kiҎζÛ#JE+ Qa …›ß÷÷<Ƙ·¨ö×Aƒ_~oÏî¿Ü^“Àë >ymqô;`ÒàÅз_¯ï bäz¶U³ƒ{×·¸„KnÆ<‹Œå]"³’ôš”•Õ7%‰/8â’Ð@_º)Ës ^K%­ ¿³—¢»ê.÷«i»Û‡›öå}•âAÀرlÜ=Üì¿3=o5zß´h ™!cþl,*M¹¡íQhÎôí‰Ææp(–`Î.Ñ4vF¡]sÙVÖwÇÜ]4ïå$ T¦µDï°Çrؽ¸½+ ݘTЇ«òªCæQàßV¢kîÛ7û*ûÚšCVÔ˜üo¡´Q.ÚKªmm…‹æ_Þß­”èþ^)ÛÝÀÉ>´Ýù —5 jD¿Öûð;øp¦ql¼«B`wLã@ÁÝc_êïÏõ›z¦yQÐð ôÀqLŠØžõñ”d¶•Vt8¾y§ŒZMç·,£4oHeÎ(Ý¥sC&5ÉL-µ—¢•ôʰ‰ ab)žÜüˆn›b.ÕŽy Ù%¾¨ï‡ñŠvsr&±Yd¼´Bé±3Z¤ÊñÔ™}8ã‡WóH;G;Ú„q*Pu« SZF;jø°bŸÎ2£„§ `2 ©Ä•€ç’!PÆ:KÛQ¸Ê!g‘¹VÓ61>ãR³Ô$ˆ!IëpRðPKŔЊ.8*%åôãÙÙ8„Æ0…ÁéLfBX˜‚R+ó0'©Yä&Ì¥Rë‘0Igð$ŠÂrX«æó³ÿœ—O¯GžvQЈ¾wéËæÓÂÕ@‹8;_òã©ÁÒë+;Þ$4‰xXÔ¶RzìtÃZ zT Ô†JÒ鮺Ÿ?‰9£™Ë®‹Ó+‹7!,`z|†êð$5ÉÐÇv†¨õÈêòÔû ¨ÊÓ,S}ŒûùÕ LëùJ"òMøÿóO/Ï?¾ÛÌD÷ø«¤·´oúVb¨Ò~D¥K1O8À3<©ÚLàTU剩ì]œÇÓb€BU‘'¦*°u1ÎO¨ë …ª*OLÕaëâcáôjäHU剩 ì]œ¥nàô!›ÂWl„4غKÛš¡PU剪Z€­‹sçKYOUUž˜s„­_÷ ÝÊ&å¨*OL•aï×=ƒ'чª"OLUùwÝ ßËV8TUybªÎ¿ëÖø^¶îBí| Ég>j¢À6©›F3ã¥fõQ•'¦’š€ìR7¸º” ì]Už˜JzpÌ``]ÊPEž˜ªÁÖÅXú°K½ÀªÊS°uqîO¨6Ó]¨S剪Îãƒwî O¦ëe:E˜&ÃÆÅ7>‘ÚLâHU剩*lüºg~‘ÚLáHU剩:ìüºgèVž#U•'S•B€½‹óÉ·rÈÔDž˜ñ(ŠÕ7…ƒ.¥Œ`¦*rÀ4Ò|¥m:ÍŒ°™*OL%5‘ÁYêæ„)ü§ÊSIMTpuS˜‘réà3Už¨ê8`ïÃùºI0(Syb¢[ãø„j3‘CU•'¦*°uqÎO¨ë …ª*OLÕaëâ\ŸPm¦q¨ªòDU1ÀÞ¯{ïåqr¨*òÄŒ#lýºgè^ƃCU•'¦Ê°uqN|/câPU剩*ý°cák+g:E˜F:N/Jל4#œžª¶l¥ù±µÌtþ%Íϸ²sþÚ'ã²V唕˜sæL•윿öỬ•9e%æ9ÔH±“¯c¤ ÷bˆBÆ¿o3#ÓöJvÎß?ñ`>-׿þN²éÿú;ר2¼þýï¦O¹Í~CןÿüŸîrÙµÝ6‚èü|Å&“Š&ŽFF’ ä‚­üÿ0l‰ìfU‹ðÀöBWñ°È­’~üÏ~—}‰ù³EûoNfø5¿Sõ§ËäÜñÓLrL>C剪Æ#rrîϭɹ?ÿÌGUž˜sΛsøÂÈý Ÿl†ÈS°õË f(TUybª^¹“s¯Ái¦×éä3Tž˜ª¿8Lν̧™êB*OT5Þ~Ìy¼’L3SU•'¦Úaï—¾WM#‘CU‘'¦J°õËÞ a†BU•'¦ª°õËÞp§™Â¡ªÊ“¡Ÿ“qå{9^÷ÕFE˜m„_ö©1Íô–É&ÒdŸéÓlrÞéVêg×ä3Tž˜ª`NΉn¥~C剩*ìý²OW˜¡L‡Èm­¨vð={¦68Ó!rÀ4­¥68½6RS™È‰ªÊS%úUÇíè‰ÚÌÁ‰ªÊSع8·é§·eŽTUž˜ê„½‹³ÔÍN3”éy¢¢aëÍ8JÛÀâqãPU剩ØúuÏÐ¥ŒR.p€ªòÄT¶~Ý3t+£”  ª<1U…½‹s¡{ ‡ª"OTµKKÀùÅ“ïå8TUyb*© 8À}ë¡Î3ªª<1U«‰pß{¨6sp¨ªòÄTRp€»Ô àž9UUybªö.έn0ŒêB=ù’M#Ç[oƇô à8TUybª¶.ÎR8ÍP¨ªòÄTyÞº|/Ä™‘¦©°ñë¡[yH·Àé©ÊU¥¿îº•‡´ Ÿª<1gi 8¾´ñ­LGª*OL%MÇ—v¾•m†þÀ!òÄD­(àQ”RÏt¡L‡ÈÓHKÀé¥Òµ™ê*OT•¥&àô’Ô œ^œ¨ª<1Õ;oιÕͧ—#Gª*OL•`ïâ,u§×Ù$¾‚d#¤ÀÖÅXÚ&Ñ …ª*OTUl]œ+_Ê|r¨ªòÄœ#lýºgèV)8@Uybªö~Ý3xeçPU䉩2ÿ®Kâ{Y‡ª*OLUùw] ßËR]¨•o!ù4R[M$8À"uSh¦½ÔÌ>ªòÄTRp€UêW—r½«ÊSIOÀ¶ ¬J¹ÀªÈSغKßÀV©8@Uybª¶.ε‡j3Õ…:Tž¨êܾñΡg:P¦Cä€iظøÆ©Í쩪<1U†_÷Ì©Í$ŽTUž˜ªÂί{†nåY8RUy2T{°wq>ùV6™šÈ3nE1ûîa£K)#˜©Š0´D_i›J3íÃl†ÊSIMà,usÂŒ” þC剩¤&28·ºÉÌH¹Tð*OTµm°÷æ¼IÝì0(Syb¢¶.Ʊ‡j3‘CU•'¦J°uq>z¨ó …ª*OLUaëâœ{¨6S8TUy¢ª`ï×=ƒ÷r;9Tybƶ~Ý3t/ãÆ¡ªÊS°uqÞù^ÆCU•'¦ÊôÃŽ‰¯eÌœé9`é8½(]sÒLŒpzªòDU»”œ^l]{Ú¥Y`ß*òÄTÒÅ.e§·K·Àé©ÊS%غ8KÛÀé5R œžª<1Uî6õ¹Ý΃Ì3á }BÞ_œg¿s8a­¶ã=ƒ³'jöiéÖøâ<“v’±ÀZíÜÒΞ<ªÉ§½Ú—ßy¢]Æ#Í+5r–8û¾QÍ>…Ïæe&ß)_@Ê Æ/€N¦}>YƳïLÚ3¡Â½hße–ñãìÉ£BËxvžI{²p/Ú×¥¥ü8{ò¨fŸ0¥<;O$úK2•¥ü8;ÒU³Oµ˜gc¡ÃJ…ƒï3óRž˜ªÿŒ_HåœHdLOdÀÌC̹?Œ^ÈÊùc¾i­þà›f1çþH}!+ç>½§¥úÓ{ ¢Æ£^ÈÂøc dKšf*Ÿq¯6V¾ëÐi¥Þ¡ÓÌ fÜËù…¬œ?ö"0­Õ_`æ!æÜ_1^ÈÊùc¯3ÓZýufšÄœû‹Ò Y9ôÌ–ïdÓÈ j<^ö^ÈÂøcï•ÓR…SVbƉ3U²rþØÛñ´V┕˜óΙ*Y9ìZ+º”1çÍ…º¹à#ŸßøP™Ö s Òøz!+ß}lÙJãckš©üKŸq/dåü±OÆi­Ì)+1çƒ3U²rþ؇ï´ÖÁ)+1çÈ¡FŠ|…l-e¸Müû1ãÐ2-¯dåüùŠçÙRžï…ši¤Î· žµ%úNV¾B¤g7X©´Œ+Ì bÎÒ³Ç+Y9 i=›OXK¼ÀÌ æ|P¦FVÎB"¤,kí.åAÌyãP7Ž=ÒéÅ3@Ê×-â”Qãzr¦JVÎ2S!åë&”²s.œ©’•³ )_7¡”•˜sâL•¬œ…ìs̲ÔÁ1+1ãÝ…ºsðh,`ƒ”e©èRŽüKªÁe\îŸ_9!åëVqÊI¥m®¯då,DšnF‘ ‡¿P‰9KÓæW²r"M 7£‘šNšyˆ9KÓ¦W²r"M KI…ãÖ1c)Úý•,ŒHY–’Ç,1ãà2 .÷Àç—+¤ÜÖÊ'§¬DsáL•¬œ…dHùºU”²sNª’•³b¾nròÈ · KÓ¾“•¯)_7á”#ÿ’òæ2Ý\î‘ϯ}ÝÎ)ËZÁ¥ø—”NÎTÉÊYH”ÛZIZþB%æœ)ÔV¾B¤|Ý¢ñïÄŒÎTÉÊYˆ4-Ü‹$#˜ot‰FN|…HÓ½h¤¦J31çà .utnähM{À½8NNY‰:•3U²r"M ÷â(œ²sÎê+_!R´p/ŽÄ)+1ã3U²r!åëVqʃ˜³4m~%+g!R¾nÂ)¢Î»4íñJVÎ2S¿q[{嘕˜qáP•,Œ$HY–Êœ²3Nœ©’•³R–µ¤ÁñÄœ£Ë4rîä,dƒ”¯[#þ…ƒ˜sp¡üÆç¥iáf4UØñ/DcåT•¬œ…HÓÎKE©ðB#1ãÌ¡*Y hE{À͈‰SVbÆgªdå,DšnFÜ]Ê;ÿ’šŠ3œ;9 ü|Š›KyuÞNUÉÊYf*Ä|Ý*Œyó•¦M¯då+$CÊ×M(e%æ,M»¿’•³R¾nB)+1çÝeºsîä,dƒ”e-iq¸JÌyãP7Ž}ãÓ '¤,+I‡ãß7ˆ‡Ê™*Y9 )òu«°0ß̉*Yù ‘¦…{ÑT”±s>8Q%+g!­i#Ü‹ žiæ!æ]¦‘s'g!ŸNas)oüK C { ÓÛN)Úù^lçI)Æ¢ {}%+g!R–µ ¥lÄœejdå,䀔¯[…)1giÚ㕬œ…ÄïˆKI…yˆo.ÔÍñü¶3@Ê×M8åAÔ¸žœ©’•³ÌH¹­U¥ÁáTbÎ…3U²r’ eY+sÊJÌùàP•¬œ…HÓÂq5U+*˜Äœ£K5ròä,Dš–Š.æÈ?¥\¨ÁÆ ”V´nF‘O4ó5.Ò´Û+Y9 ɲ¬U8e%æœ9S%+g!Ò´p3J┕˜³4my%+癜ßi«÷Z6SN²AÛ£öH/.Éí‰}ž³oS%’“Ö±¼øÌ¤õNÝÀ¹uJ:ÀÇ“ã;‡7Ÿ™dÍ}Ä™¾lñÌ63©w`³q™{l<©S<³ÏDJ¸›Ïï.ôÿe›¢™=fï°&צª5’“}Šfö™Iû÷ ‡'jMëññ$ñõê>Ÿ¯ýóëÏ?¿Êwí5:´úö7¼Ô¾½Íÿ¼¾þðŸýöó׿üí÷_þúã/¿ÿýO¿ýã?ÿûõëϯvC«ÖòïTÿOwÙ$iŽ1tß§èTˆÿâyžUÉ ûþ&$1“ÈW3ý"A‰ÐwÞÿíçßÿýë?ƦF5i+‡ñ”ŽVù;>ÝÇö÷¿ÿþóÏ‡ÔÆbã¿ãûÝÿ-ã—í£Ç=sÊ6®Û±—´l,¥q‡`d,•ë ¦ÈeÜ•Œñ¤ñ¸k\}Då‰: ¿…Õ9ãnfæÈ™|¦ÊUeÚ:œQ%ÝÌÜ/>S剪íÎå UGª UDž¨ªÓÖ¯{æ UgNêTy"ªhëùo¨:sØPE剪ƷÜIXðÅ«µB(*OT5¾H+`ÁWb73!ÑŠÊUvÊt€e|ë²1>™éE䉪F=‘íh´ÍÒQ—Gcÿ- ŒZ¼ŸZ·H!Qy¢ªdF-rÀ(8~lE剪ª xÜ0ú‘'ª:ië×=c"FÁ‘Ëi_rã2ªé ÷¥Xxín#•'ê×cô"¿öh8NtŠPM¦mÃ7½®3&PQy¢*TEŒÿ3Ï ®.S㉪úûªª/ªˆ×Íà wû~›AîÏvŽUDw>ö;9‹ÊU¥ŸrЫ‡™WGñÐá‰ÊUÚ:œ³½5ñ»‹C•'ªj´w8×'ÔuÄ„*"OD…³™Î?T;;wª¨Š%ò™*OT5:"’1š¦Ðz%’Í+r@5£ öEÑðÒ¨•L6S剪:mΨš“fNéTy"ªhçÃ?;B03&RQy¢ªL{‡s|3Õ™d2‘'*ª´õëžyBÕ™bC•'ª:ië×=cžÊÐl¨¢òDTñ ­Ã¹Û§2tª¨—1ÛPE剪Ð쌺áÕQ.¼õ©òDU£'"`DßTšA»ÐŠÊQ%ô½ }C«'´  ¨™ùt©žö94>ƒ´`FëÐêC{•'ªB[Ð ´]¢C'(*OT…º w° vxu”  ¨ßP×êTy"ªiëùo¨:l¨¢òDUyÝúu<™êH²™N‘ª©´ñëé…—.6RQy¢ª“6çfŸÊÚl¤¢òDTí Ã¹Û§²6RQy¢ªH{Î-اrÌp¦"òDE£*(‹–ìCÙÐ/´ó)r@5è :½†¾¡;¥¡]èôD剪ÐôîµÑ7ü£\èðD䉨NÔÞ9ê&ѵGMÎ+‰?õè´ÖÈ(UröäQ­>ã„Îøá¼’qô±ÑZã K&gOÕâ3îåöá»NŒ§7—u¥Az‹«ï'jõiöl>fêòE¤u2þædFÎŒÙw%ã9é¹­:3žÎž<*ö™³óJÆMØé¹_3åéìÉ£Z}I™2>xæ{¤ª™òtväU­>猙yÄÖøŽ3Á¿3ëRž¨êy‹=8íñ-ä½.–¿æ½.–™IÔø½‡>ÈÎùW¯¼e­çÊ[F^ ¾ïUúAv¾¿rk/ ½·6ÈÎùWêZóÇ!Í–¤%šÕg%ãc°ÓááÃNÒz|<)öñz}~ÿü£/Ö;µz«îykð½šémü "š·Ãbü¾±‹ñû櫨S剪2mýÒÛ“fþOw™ëhn$AØï§hs´€u¦Ž1„=f1Û€Œµµ†ðÓÑû²2+3Y¡éQE‘ òŠ•}¦ÊVU±÷ƒ*`):TYª.¶~p-3Í„:U–j?;Ï2^fœ•T–°ê~}YœïWŠeæ~5Y|¦ÊVÝï`‹óýb$fάÅgª,aÕý"¹8_owËÈý’¸ØL‘%¬:ß|ÛõïG¾¡¹øŽÿ×òþ×üRÎ’ù²Ì¦ó…›&•%¬Š:½ùº/fÔ5I*KXUtz÷7Ë2’uz$²„UMlýàï®eæüz[\š¾ƒ•Ë‹¿Qßû»qñí:RRYÂÎaÝø0F§È{í "X“Ķáï@×(©,aú@DŒ©‰ëîe—©±„Uý¾Ù=#×µ"îúæU6ƒ4´Œ=#\m´JΤ²„Uñ#;që5ôŒ\­"T–°*‹­Ã9éGbK:TRYª*öçr…ºŽ¨PId ©º[‡q»Ceç®C%•%ì,Ûà8g®PyÆëPIe «ÒºõãQ—e:Ó)2€5El¾Y_•=ëHIe «šØ8œ«¾*{3‘6} *Ÿ×[r¨rWW%fd¤¬²„U¨ˆÕ99T\}‹÷Âgª,aÕèˆ ŒÑ4YŒ W‚°¹E°f„“¾(¹4j% ›©²„U]lΨš&fš‰tª,!•÷bçÃÙ»;ÒuFEJ*KX•ÄÞáîLy&ªLId ‹ŠØúqÎ\¡òLÖ¡’ÊV5±õãœQW¥¯:TRYBªàÄÖáÜõU黕T–°s{ÎÁ«ë2*‰,ajBÄ¢¾.CÒ¡’ÊV¡'¤3êF®Žr‘[Ÿ*KX5z"ˆ è›"fÐ.âIe ©"zBÜ}#Vhq€¤²„UQìÎè›.f‚N•T–°*‹½Ã9Ý©®3*URYª&öçr§Ê3U§J*KH•œØûqÎ\©²sש’ÊvbïÇ9£®Ìäuª¤²„UIìÎQ_™)êTIe «ŠØ;œ³¾2SÑ©’ÊV5}w§ª¯ÌÔLªM_‡ÊgŒ¶'˜Ð:bõŒŽ{'•%¬B[ˆÌhñÍèq‚¤²„U¨ qfÔŽ\%#NT–°ªŠ½ÃyL‹˜3:Fn}Š,aU[‡q»C]gt¨Se ©J[ÎÅÝ¡òŒ×¡’ÊV¥uëÇ9reÊ#Qg:E°¦ˆçHÏré¬#%•%¬jbãp®úª,UGJ*KHUØ9œ»¾*«Ó‘’ÊV±÷á\½¾*nj̔D–°hT…È¢F}QVô‹ØùÀô„8½Š¾Ï”Šv§G*KX…ž÷^}#0ÊE‰,!UCMˆÃk£n¢x,ÒÅI‘ÈE±s‡;ÑuF&J"KXT>d-݉òHÖ‰N‘¬ibÛÇ9rÊ3UJ*KHÕØ÷qÎtV×’È6bãø{uEv¯%‘%¬Jbç0ŽúŠ32 Y¢²n¾Y_½èD§ÈÖÔ;¾±`÷§oÕ×cG¥äGr©¤+ñÁy%᣸.ÖÅ"œ-¹T«Ï8¡œW2Ž>T±Ö8蜄³%—jñÏåúà»NŒ«7åu¥Az «ï#jõ©úlfÊ™ò!HíÂø¨“m83–¾+‘&®‹Ñª3ãélÉ¥’>3cé¼’ñ$ìâºo3åélÉ¥Z}¥,2^xæ}Ī™òt6äV­>mÆ,åˆ:¬ñ§‚¿gÖ¥,aÕu[Ðôñ-ä~\,¿æ~\,3“°ñýz ;ç?ò–µ®GÞ2rö½¥dçû¢§ö²ÐýÔ#aã»ÈÆøEÅÃ+ÍâYFº>ÞÙhdcüâò\–ª:a"l\>žÁÎ÷Åõ¿¬”uÂDØ8ê@‰ìœ_ü ³¬uÄ7`_oõ&ô n¾…-+9±S7Ð|»{ ;ß½HòBóERŒ¨h¾¡>ñ‹_†—¥ŠN˜gè;ß¿Î/+%06¾¿ÈÎùÅŸ$ËZ×'É2rö½?uÈÎ÷ÅŸUËJ÷gÕ¢š„œçÛÙ9¿øãך‡bæ"ì|v>ó‹?q—µ²N™;'ê;_ RÆJѤ< “iй+g'RÆZÞ¤< 9æU™Ù9c¦‰”S¥R&ÂÎUgJdç R>d- b&ÂÆY‡Jdc DÊÇITÊDØ8šL£Î]9ƒx‘2Ö &å ï¤¡Ò™z“»×ç—º~:egRvúNJ£bs{$;gt¬8®¡ AüB"쌖Ídç ‚–5T.É_8 ;£eã#Ù9ƒŒš¢Kú»¨™‹°3z6<’3ˆ9c-4¸¸6ˆ°³3©:“¼Ó'›Èy¬»Î™9•J•ÈΤˆœ±VÕ9aç¬S%²sI"çãT©œ‰°sÔ©Ù9ƒ‘óqsÐwSô&Uo’ú£9'Ñ9;}7…®S%²sÆL9µBÓ9açªS%²sÉ"g¬UtÎDØ9éT‰ìœAиâÚª¤jvFã¦G²sA㊥PåâñL„Q¸á‘lŒðè[Ñ(MžÕÌEÈØ£oý#Ù9ƒ påZhrqeaç¢3%²sI"e¬•uÊDØ9éP‰ìœA‚ˆkEó Ø×›L½É=èãóN¤|œ*ò$äìºÎ”ÈÎ3M¤|œD¥L„«Î”ÈΤˆ”“¨”‰°sV¡N°ó‰"e¬”tÊDØ8šL£Î]9ƒx‘2Ö &å ï$çL¦ÎäîÕùÅŽ¶W†CKÕ$Ó9v´m|$;g1í׿‚Ê¥"f&ag´­$;g´mk¡Ç“š¹;£mŸÀÎ]+WB‹13 “iP¹kg'RÆZÞ¤< ;;“©3¹;}~­‰”ÇZ­ë”‰s«:S";g²Æ|œ"36Î:T"c€$R>N¢R&ÂÆQgJdç DÊÇItÊAßIÍ›L½É=èó«]¤ŒµœIÙé;©v*‘3H1µjS1OÀ¾EgJdç 2šV¬StÆDØ=ɳ/þ5ë›X ý-g&a_ôìØù‚ eåžÐßQÍ\„G˺þHv΃´¬X« ¿ÅA!ç‚–-dç RDÆX«ÊŒï¿Ùµè<‰ì\AÒ1–É:b"lu D6ÆA$|œ"ð$lìMžÞdôÙ'>N¢ž„œsÿxú{犉¦O ÿZ2-êxëúñü‡¯ïýñ¨*êð#ä)ៗõ)aUQ§“>…l˜G} DvÎ AwCF'5svö©÷G²sA‹çuF{5srNèÛúHvΘA‹óK£›ø…Dعêk›ÈÎ,– ìÄ•A„Q¸ñ‘lŒ¢Hù8Eêz'ÂÆÁdtîÊÄ‹”S¥Sž„Éԙܽ>¿ØuCÄ®S&BαéP‰ìœAŠˆkUóì[t¦Dv¾+ϨñX8ÄLíÊF<ÇÆ3ʺ,OÙqf‹/ž—ã©%}4Oâq_ZŸ•ŒªOŽC?ž«%飸'Ÿ•J}’¬3} …ãYmVÒÎÀVãºvÙXÒ–xVŸ…àµc¶:÷*\Ôßx-¡hV•„3¬Å¯@-(MâÍê³’ñê×Åáá5ŽÒº|,Éúòº}^oÿyûùó­~8çFYŽÿîÞozé>ø–ß?·/ß¿þôëû/ÿøöËßßýöÏŸ~ûן¾}ý| o:ï Ixì;Œ2ªã6›ë€CÃ9àŽ ÅefNà(Ý nÉëí;U!Ä÷䯳zïaˆÏ»0.)ïÆf}@åov*š6Œð]°Çÿ~ùýûoŸ_ßÿýíûÑ}ùü?åUÓâ6 Dïù>&‡¸ú¶|tã´PšfI½”J(4…BhaÙþÿ¾'ɲ•H/›e4’ß|½™Y}>,$ÆpŠP/=ô‚3 5Ьò®Z#ï@KPZv}xK'ÉZh%"ܸpÔ¬%'®ñFG¹¨ÖMm<ÌÚÑ×¢–B·^H¾l)wµ3­®À¢8ˆðvÛ°Y±ü°!JÆ‘ÑBà×1‰¬¦cm–0LVsèƒ D‡•aCCigJ£ŠmAÉÊÌ$éRÔMÇ=“«4Ü}~èýʈe·’ŠÞäßî¸Ù?®ÐÃ_Òª9ú$)ÐK®÷søYkÒ‘( WHâ­GðK¶ üð?V@¼Ük‡+2Qáð$) k2ÂqVÊ*ŠìY8<^z°&q XÈÝÇÝžyóæ4lø¹PµÇÃ1?Ç#OD nM'C20–}¶£‚+B’$…}œxBKËf­ÉfT’të 9Œ,´°À©Xb¦² cFœYâéPpEkÕžŒgçZ-ØÌ3­ÂxªdÖ9_Ý 8o|0¹j”€ÛZî·`Z $Z±kf L¦$&?íÚŠÓïÏ´gU†^yî³&뜯nE⋬Bãó·>xCg”/Ó>ÕðQYqáhš0úH,#ˆç(9O’dMѬ”ÛdJÖʦhÉa†ûòÒý4Àv‡)×úŠ;WëD“Øüe†]þz=U›?¡0§œ×uK6©ý÷"é­uéä÷ëé%e’f×Foµ˜$À` ¬`³RYrž$óÜ’ôt‘[£Ö”[`DÛªyn]ܺo|Ü<1„X4ÓÆ»X‡SYãmÑ'£¾ß5÷uÁ mô?Ü´Ýmÿa¿ùE endstream endobj 640 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 641 0 obj<> endobj 642 0 obj<>stream application/postscript Adobe Illustrator CS3 2008-11-17T09:07:01-05:00 2008-11-17T09:07:01-05:00 2008-11-17T09:07:01-05:00 232 256 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADoAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8AmfkfyH5MvvJuh3t7odnc XlzY201xPLCjPJI8QZnZiCSWJqThVPB+W3kAUp5e0/bp/o8f9MVQer+RPIen6TeX0fliwuHtLeWZ IPQjXmY0LhOXFqcqUrQ4q8/stc8j3L7/AJf2cNvSWkkibnhA8q7i3Ma8miKfFID/AChtwFUek3kZ b6exvfJ+jW93BaSXbRBywIiupLUnmbREEamPkzsQQD9k0OKqqS/lq0ahfLGjyXS3EcM0MbxMOLxJ JG8R9Lk5l5n0VKr6gUmuKu08+QbmWeP/AAhpRWCxk1BbiBkmgl9LmPRik9FAz/B8W22/XicVS463 +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 XYq7FX//2Q== uuid:732A27FCADB4DD119839D0C3128C31E0 uuid:742A27FCADB4DD119839D0C3128C31E0 612.000000 792.000000 Points 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 643 0 obj<> endobj 644 0 obj<> endobj 645 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 646 0 obj<> endobj 647 0 obj<> endobj 648 0 obj<> endobj 649 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 650 0 obj<>stream H‰œWYsÇ~ǯ˜ÇÙ”±œû¨¿>fV‹›Ùų×ZÜg&ô)‰ècïƒP½6JYü›s÷ëÙ»™‰íµó$pþöâòÄêfT9 …“³ZWû™w":ßã…WNhz(Zà;û9Ñ«Ðç tygR¯ ¿|²˜]\¡ÅâÝ,“#‘…/P_ìf ÊsxW6ˆÅjFOˆyñ0{#¯žwsßyõŠÿųõžž²\wPÉò¾›Gü-™:*-ºÐGù)d¯»·‹ÂrCêøqºÆõøˆÅSŽDû ñððÐÕ{Ùÿ¶ÙnŠ/ëW‡]1ûýHƒ•Jƒ€hr@Ó%Øù@åø(¼K»Åû1ê¹w}ÊÖŠ¹îCÍ$Ìz‰þç3Í E/º9!ñ·;£ Á 1‚ÜŠ*’;„+¿†I¥UŪ…‹’rÄôà¼íU@[ÙžŠµ+Å2aˆÀúZ·Î÷F¢xP]½ÏwwÛõnݹÞÉ}­Õ²P§Íal8~@#mDi¾à ðÙæ>”6ûù/bß:-r É ]ûìâéaõq·ÞŸÄÅËKÅ“§—³'}ìlÀNà֩”3eh¦ªwtnFºW9ŠÝ N,"ˆÁö1i±ùÜG€1aÄÞ7¨lŒêCNŠúåt^“_C›®?páSï´›¸Ÿ»øÐ€RH``®i&cA `}-çƒ÷}´ÿS¬ñ§“üÌ*çÂÔÁÀøÌÁ_M! |ê°c‹~R˜`°÷âŸ/L³XC-16‹S´Æ—¬Ñ°ôï].ö°œU=Á^4}Ö¾ìe§( ¨zG 8À:Ðz€ŠÎ\Ï™µŠhq}ÆqlgpE2´†¦‰k04—:rV`ø4pˆŽ¸†º’ÎWÒŠUQˆ)VŽ/ÉT‰ì˜®q3b…”Ù§5¶dÍ,D¡m¥q`ìCá8Å&s`®iTÚ«æcà8ªYðÉTÜâC\5 çlõÁ”g5Ç[Î1£%­«vM:ÆPéf?²BT¾ÂÚhÆ5„<Ь`+LÄÙžq¨4ÛÙílZž40ÕÔS-`®Ó Ç~µ›¬LÛˆ9(D¡#[æŒtyP¨[åݤEà ¦j0Þ,¯£¡Cä ‡ +Ö©ÑÆV¶_¼ 5ùœô#NÐìòzÌ™jéd¾ÈaÀÖØGžÛ;fd>zC&PbEfR,töÕQ­]Ɖvºd¨ë)f÷Ÿñ¼ ÌÕr³€aD\]Fsÿ«ºöSg©fZ 4ÈGtæM"ÂFbS5À«´Ín’_Ʊ>Í?cÔâ€kxϲå|âb¨àÏh£bÓ¨[;Ó·1nâC›[[¸ºK¢¶bŒ¥«kk£e54Rm­\ã.(xºûŽ(ù^Ÿï&0׉Qâ¤L³Wj”°ñÌzâAWÅeã>iñµ>3ˆã°„‘·¡‹/C@¼Å} “Íõ(ZùóOß Ô´8uÔ-οŠnÒf_§Ûõ=Âs²2€íƒÊ¡{äñ;qºÅû(ו¿F}Åþ ÙÁE–>nãúÑ«íò´9ì·›»êâ×õéa½Þ‹GuÁ«ˆÏÿ·.nÌçNÉÍsÝjÉG®¾âé[Àô½Ÿ[l3ƒÅ0©#¹G½Hè|@âKí>·ºôÃÜbùÈ[üÄï;úª ” eð±(—ø§F¦·Øe„ð ˆÉÀƒÞ¡èc¾Þ 'Ïí|(úV~,î|åî«Óþq<ÈßkP¢Y»/ÿQŠ»"á‡0)ÜRÊð⃲ÚëKTºA{yÄ-ðXöˆÇ>PaÓa3«KƲ-°,`>M³üµ›g²iÍu¾­' rŽR'´è€E7–n˜FëëjÂúØí–÷›ÿ¬háT[¢ÍÅH+Ÿ—åsõ k½aä©ô–ïh%¹\­ÅqS$oöËmyÀ<Ü2oÕavåmdÓ)áH˜N2‚Ò©­KÜíJLË2ÃEqØoŸ–ÛÍ5bÀx­7÷¢½ï(íãÝzuÚ|Zó*£½q}Ø-¯§Ú‹ŠÆ«ÌàtÜÚÁmd·W‡{¬g,S€‹ŒW4Û¡”w1*(µ“øX6ûzÈe…nø‘¶3u aÆZw<ÄLìÛ+¬ã)k;ÌŒ¤ÕQr@ãÒP‰wÍî8‹eËìeW¥Écqpp·V-p$-2OD\?[ЧŽÖî²7àõ¨J~€«îq*B‰'PÓ»²ç¦Àq¸[ßó#»-±ã©ÊJS}<ŠwÛåù®¶å´‘ úž¯Pí“´X]F)o°Ë»Ä¸Ûµ•T¹ 2Â%Nö7v?xût.›'Ð\{úrÎéřΟî³çJ¾Ÿr%ÐA°¤i8ÜOÐùõ';LŽç¤€ßayG7s¶àð²¯SN ÔURòE¿<×*Þ Ëû~¤ëí*cø°Öu±ò5å–xM¼vÀ1tjЛîrWÕ:W Ùz‹xr8#dbZ4ØÚL/°NÙ>5¢aŸí¹¡u)Õ‚49Û—Ÿðʾ›üm™ { ¶kÿ°Í¿ú§²Ü5–Ï2.8ˆØ^ÃC N’*¡}©í2ÝsrÚadÎÁƒ:ÁßÄÈcVLZÕ 6ÃZ#Îu¸ÊØérèÎñƒz[:3¡çk &L~¿él–ŸTVºâB/æ›Ý:•™Mk|AyPÊ<Û!ÞüÌ7€^‹/äõ¿ãŸÅti²y#öù?üp«KÏgìcÏ_¼ÿÏÚ¦ Ä_Q»j« ‚Š]C¼Õ¬Ý„°I¿2G‰üÏ#-XF‹Z£Ü¦Õ?ØxCšÒK)cuÉ»ÝÛÏûÖÇc¾:´®IíšxS@è)X@Ÿ»‹¥Je8E†s+_w¸ŒÙÚWà#ÕbÙU¿`2ÔqM¨~hd•¯øÕQ$ÛSb—:Šr—4)Q7DœæôœË¢‚†7Q8 ¿.27™îAfË©Ù.Á‰|`.uO§*ÕѺøx9Ì¢ØRqа´Á½¸Wx¨À„††r_ä¨e=p^vg’[&½‚—ƒßŽÙþÍÚµ®‰]íWUTo21’â<ö%ItNUSñÕ§óuG0м^Ëë#óz†@@ƒE)%ó&™rþ 4JW2¾a¹ü²Ç¶EVd5eìeªÂÔBYV¦qqj{%ÔŠ‚£ª`‡ÇRxÊ–#¾;Üö´ßPxÒˆqD WÀBåqŠƒÑKñÃ"9ænJ ±`!ò–EÈHfÒz<ž.¶°y›¦KÓrÒçÛì™ç¼õCæ‘#o̹™„¯[ÊÄûpš¦^ÒDÞQ3*ÊvÃpq4Bé¾³³o.¬(6$Q»ÜQg8’vÒe ¡ò,rºÕ9Ýx¤b{Ïyù›Á,é\Œ(¸ÒB…>å—Ò )pÖ=8:@e*ëêŽÀò)@Ðκ>’8åXjo½0jðª9Ôþâúeq+Ðmå‘¥¨ê£X—„Ù0§tãÄñ<$^ê¸Ôz¾ô!àI…0´¤×ñ>k|¹€ìÔICÉ×Ê:HJ5qÈ8]w󔧢ᳺ#ç‹BæV>UFº›ÝNVï·/‘Ç â›e‰¬}¶zÜîÙ¸¤­b£Bèpñ­ˆ<Å€#{tCy<Žžºƒ¿È®( µ£Ÿø½…ýÒK$*Q•÷6?Û½V©·tH¬C€H‹uÈxO?©+3 C}Ú&° }ìÖnŒ}#†Æêm{Å~M÷ƒîô€¿ÿ‰¤þ9ù}¶;ƒOÃñäɬ ï0ÉÊL½óÌÂÀ\u7b5¼v ^Ÿ®R öý€qªŠ=¼õÎA)†×t&ýÕöéÁÍ7DÕÓ;]vàAš= Ù::ø¦W¾§U·ªŸÁ ð°ozUöÕ@~‡°& aæýmÉÔwÐP•ëD± ÌoÆ«¬ëu¼›àdz;O]©†¡Œ¾¿Ð}^H ;丅7Ú%t¹E°â©;¼ÇVmßN.Ç•nqn¤Iâi{üñfÒ^7Õ39tsûgŸ ¥;)×S°}?°{üÉs£×/öuy„v'´“9™ð6ËèHÔN÷­Ø³ï=ÉïØ1É û“w^D[c He‹v*8×Ç»"k—½›¿ ¸íbEÔNÌŸøôO„¡BQ$Irr„¹$¢>)±‚„ «ZÆóUÿÑÖ®´DmWÇ*0­›Ùí'´OvS=ÉNî¶Ì¼Ç?¯o„ ‰¬Kóä-jÚª jëd “àâ d¯>°œ§Þ)ˆ.-pÝËoP±ñ * NÞp¾€º¶‹o8¿2ÿ¿òaŸ5 endstream endobj 651 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 652 0 obj<> endobj 653 0 obj<> endobj 654 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 655 0 obj<> endobj 656 0 obj<> endobj 657 0 obj<> endobj 658 0 obj<> endobj 659 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 660 0 obj<>stream H‰œW[s[·~ç¯À#N'<:¸íS-G»u=‰ÙɃãé0-Ò¥H™¤Í¤¿¾ßbsÑÈqSk<»ÀÞ¾½Tânvõâ­w§™ömŒ"¸Ð:/ºVé®3øj“RÇõìÃL‡ºm˜î^]Ÿ¼XÀ ]Š¢Ã¢ Ñ%N«ýÌYaM ¾ë¬P´ÈB°L[¾M¾SyOǶӼùl1»ºÑB‰Å‡Y"…" —O@|q?ë <‡•Ž-V —™´±Y|„œa¹Þ+ü±'Ú¶®‹ÅsVŽ„ßÉËåÒø®u²ýu»ÛÃú×vu¸oÞ/^;_ ~°¢PÁ 1Ú_÷×Ývqês—½%¿ÉãwòæecÛ oÞäx±Þca亙[y\žGñÅ·*{ÑÇE®cÄ\µZ÷± °²uÿ³™‡ÖÊ–*4s¸.øëñ™+þv'TböwBw¼R]ø95-¬£Øº69ª…!·®ßC^‘àÑVF*¤h+ƒE ‚^ã' VªÆå f×J‘Ëþž×ü= ûç‚TÉ„kUôNHõŠÕZÇÊž¯O#4€ ’~×øVË}ƒ—("îÄe‹¤8yÞˆsC†6y{-®Çu…ëêy+f¼opAÌ5À£¨ú“Øs½wªµaê6Yá<Õ”*%õü°ú|¿ÞŸÅÕëkųç׳FiHÿ¨ï:“¨ÿ”U*æd 5µqõ  íŠ*MA‹û¥@!ôàMëÑÁ;p¨•í„ãÐк—ÚÁ¡®õ)vTè(.ëÙVÉ—øº[ÓØÌˆó”™¯GÖ[q®õû£VŠÔÿÌf)­&fÎSf~'¥Ñ°¡Gý¾è4“<¤6&÷òP•·FJGŽ¥G• Úåi¯P«ôu6±Nmà¾+ éD%ûhò #¹åTDh¶?Cßú&êkΕպœ‰ÈÑ(`è1qAo+!Ž˜9ÐõäŒmmŽ‚7¶…3Ú±÷§\ ×oÅ×¢{ýLžW˜1²t¡:ñZ¼{߉[hÄ,6f‚Káô~¼/Âo59U8#o‘÷$ÇÙ¶K=c[íⓜ!"g0fƒ[«œ±O–FáÄ'“PV„)âT.k/œ!Xvæ)Îà7¤\.Øž[]ô¹Ú û]9£3¾5Á=ÅÅö‰ç¥%IÜ"È*ML\s¥rAÐhÅdu¸5| ãèœj•wãzµwÇbÎL¢ÃÓÆÚ8®!œA¡LüŒmô“Xz[}½Â;¯È!îÈGRqÚŽr¤§Ùu„ ×€rîní{N¦C!]&2…Žb• š9ž¤rÀ§LûªýÞ|%ÝàDGV 1Oˆ]¡Q±,´eN`Á° S%*÷S‘(܇cíÈ&8*‹§VqŠ}Â4cŸ<ãâ [ð¦Ð¶Biæ”°Ë~‰ÚY6èB5àºr"X‹x,0›ÐÓ,  LÄÙM8”šÝl3¥'ôùó%òPòJßF"jÖA…ÂvRÛ%>‘l.¹ m|/Q8Ú–jR"Ñê2WRÍF`4º’Ù‰® í2g|ªEÅS•Þ©|°éÇäz¦Ç¿ô§Jaz¹§ŒƒŠÇ¸ŠùùyÏœÜM_* WP¦NÔ™ŠíДYe ºT‰££Ë'fЊK°Ó*Ó K [UŠqÔžmt‰k?‰zºÔ”±“¾D[5„‚â`#Æ8ñ"äÙË€W¸ÄASL"ÅÄÓc$@×cÅF³Ž˜³ ºdŽ¥=‰ä#}E p4[0¥Y‰=X@AúXt™).F1øhó 3Dœ†¾žJÅEÏq3˜›fŒèGS w‹a Æ´×£l0Íœ¯áçsÐÀl¸¾õØ‹Z3ÕËZUC®ïnŽ´ÖeE¢Vî€~}”ÉÆh‚¶n{ k6*§¤«Ê×lN{ƒŒ®³Ò—n1eÆÃÖt¤âd,@Ô "?ñéÀP ­­“G.0[gc—jÝqákË'èÅ¢ßi¼¼¥¥’kÚr²llü¨“w,µoæxíÊu9)ÎqúÜÌ|x8Ïb¹ÛýTËÃz»ÞŸÅ±QŽ$™»¬ `uµc݇տÅϲy¿x…xÇ«E yñœCâà(.ùãó]ÿýoÍâã€Ò¤rÀãø<Ã⌟2ºÜ7¨hy+.Çmƒ Èsƒüȵ€7D’3Ù•¹éò]¸u‡’ Ń ð7›/îv­1xð>òVþôã7ÕÕOTõó/¢™ãZÛ}YΛõîYY—`Ec#sòô8o°äºð×ȯØD%˜HòÓçmeÜ>ÚÚ-ÏÛÃþ´Ù>¿¬Ï—õz/å[íýÿæÅñ¢¡s¼(žÛÆSI>2õ;–¾lF_Ðþœ~Ò0å‘Ì#_tè¼ ñ—ÅvG‹”çç–—4š©ü0–zàfb_·0‹³£,ujÐ0’æFUK-@ù½¯zïÄÄ—³—Mé’zSƒÛ#˜49À‘4=Hýy¯º®¶‘$úίУ<'öHý¡–òFŒÉa†@̰{òã€o°ÍØf“ìߘùÁ{ouKVË|äiŸlIÕ]ÕU·nÝæƒt TOô¦GÎÔÁ%u¾:%²Mº‰³OAÄaÀ¾’t,¦+ObÜ·>Øzì6‚¨Çurs?¹]“'7=”G¥7¨¤øP´Ó-¶b‘®šÂÑ?xóËI˜ß^Á¼3ò6‰.o$‚Í·¥Ïúz°Ô "ÅQ縪!Ç̪àïûdþp?•Ñô†LÝê”Íl<ÈcMÖj¾Ãxö'r2ÚíJ„ ¡WÔóGšÎX]² ³ .'‹ÖàŸï‚&HâÁ? úa=]mfaÂû®]H™È‡â*bûÜËÈ'Ù~ôáãø_²Ïrµe­0Feð‡Ä}Sû!w§ùÖ wù¸f®mà›23çœÄP>6kÿp7Y ¦È|s#p Øáú§‹«IóûÙ6Pš9Ë}{Ò·RF¿éª§ôvÙä:€IÜüÑÆ¿´zE²aì–[X¿Éõõlã+Á–…Èg‚Õn–«ù¤þ°\¼IÖÓ鳓¼ÔÿXˆ>¹º ±ô/fÿ•£&Cwv]wè9ÀßÄ‘W “[‡Z95º$h”– Ü"bàG»æWi£2sªÑ~Û6ÊQ¼e”üÑãõy°éj3E¾uúŒ–§ý¢®"L²­É÷~`·A6ãûáG™Xï÷ñƒ†øò8ƒtL7Þn&•„Ú>­)¥*1i²xø2Õèj¹¸™Ý>Ö¹iü {ê±Íf÷›¾„éh8Ln¦“Í#óGbõ,-ßf‹-Ljç.â‹ñÆ»¯‡®‘¡«ÙíóÉ6-Iî2hÖr´ä¡~ùŸ™Ø_{é8½ÈÔ#ÁÁ:™/ƒ Ö×`“ɼÄd†ìüþÐ#U?>Û'E[Þÿõ®Çúò4’§•o_Æ#®  èiÈÄÒ9Ë¿’¯œæK¯5BkŸO’´x.½çáÝôê+X÷Íß aL.o \vui Á¿êÀ~hòÒŸWþånŽ¿¹Üï"⮉j¸œÏÙWàƒjíÒ¯o“wõéü½p„˜seÖxØj4Sk“ñ®{?]%FÁI¢Çx÷è'»\×Ýu¢kJ!FzÆ µj‚;¦ŒJé#¾”NRDrg“‡•_5ïeéŒâËÃîÛls—LàBò´’hºNgAì]ÝKÔ`ÓA;¾ÊE¯{”[¢üz*„¼&ŠUÎλÂZž|™ù=f?–´‰P9'N%6÷^!ÈÙ\}¶RÎæp6iÈW¿á4 1øÝxmó»,DØÞÖúÔ+ç‰4O0¸ ;ô²­ìoPÖ€L0 80‡#r UèiËEh¬öÏ(o€c¨org2îU»C æˆfu¾Ný3ŠâDIú8#»¥ä—w'1x ö«zÛÄøýéD‡ Ë§€«pÉ)Lb3; “Í¥Å$ܼ¬;¤¨jÒï³ ¢8/n\g䯎38îûý68UÞ)F¿µf§iÙ´•&Ñ™€Z¡N¸j2É(…ˆD_Ù”$ãŸ1€!Gw¢¦s(tÒ"– ±‚Šì1Óllyß È?E´;ò¯ýÃéKùcÑr!âNⲸ1ÊC¡Àn¹òÒŸh6LbÈ™ÚÉ™vUKîéöx>Ã}Î7Lë^èß`:—«•·^?,¥û×Ի‚Šôó59{ØZ‚«¦ ‡Ç‚§Äù3`H5sM}?¥—gŸ‡Ç¿#ªÂjj€³yŽ˜´ïEéÅ{e*S×~JޤgOˆm(Nü=1sŠp]zÑ3HoCQ•µ.ÖæÈ«]VrÝYÍtÀwÛe-¿>~ ýâø˜>sC yÉÜ’‡:˜}<D¾ïQ¥}>ìAa¥Çò’ëM™3ÎÂsg§ï?>NëívÃ.š°÷‡’:Í[T@”î ìßߪÖOÈ0Eé…+ä茺Ƥ‡Çþ÷ô’qU–_œˆITÛù{ÇqØã²}l߀ÞÉo£áøüÝÑxt†e¹Và(À-¼Ø9YK†ŸR¹õþÆ©GÿIÃñ)Æ¥ï¼ã^þ]¨Ê•¬Ö…Èñ(XyÇ£1n?°(ô¯`ÊÀ;šµ`£®¦{¸ñØ’lC m‚… g¼…õŸ¶{說¢=‚£p4‰®ÐÓ4Âkà2?*™+W€°<ËIÁ~9°æ—ŠZ÷ºÔl³'ö¯ ËH_00´ÛïrÔè»*úEhñ§XgºÊú¥ïN½|†Pˆ§ ˜‰2'ÅX–†‘­ t\Zþ£ßÀ&ÿÆJ›|KLò!Ùûõý¹Jn×{Lé,ÙÓðSà .G•É|û"ƒ¶ÆÝá¾õŒƒ>lÛ`6¹ÈDAû˜–IQa Tm›S½*"=¥#”¶t‘ ÒaÛ&%R[Nˤ¸È2á¢`—Ež˜Á"òä@Û‘‰s[Ežòm‹È"UE&9FA´Má`¢sn`òÈ„Ã-òTèÖ‘'ü*` eòÇ“ÃTäÊbd—Udƒ™a#_â)|™ å|á®"K-Ù`@‘/Á¥£ôhpVùÒèEùÒÀ1,4º Œ|a|:ùBϺ tí"_P‹…Ž|a¨Yt.°—-"_‘q¹ j;åÊM·\¹ê– Ö):­S.vZt*4Z§Zè´Nµ2¡Ñ–­ÊNµlUtªdwªeÑjqµ,{MªuÞâîª(qŒÖ¯SÖ ƒs]™ù 2OœÛ¤ÂÍê6Ú1›¿ºðÚHAã·RŠ¿¼$n ]´Zc¦´ývMæ¯/:ß{7ÞÞmJ{-Z/üUh‰„îC¯ÚpÑÍ5²èr•['¿0e”Y­c0Æ“ƒÓûGTaÚZ^"ÎFûõKÎì¼@æ” ˜îÍÍœ^ŒyCÀ@1è^hpLÔh•d9Qï<̹?ýÁ[Ò¿œZ#®š7÷ÍŽW±êU»o¶«.“Ýæ¯u¾÷&ü‰<†`ÆM¨à¤‚Î~%ÑŸÒãåíì w¥K¹‘1¥¼ ”’R´X) =}À}‰W¥ÃûÉíú-s›!ïÆ¶ŒP1Üè 5g›iÐþµªRgQ¤fœÝòáû¦°¾oÇ ¬­ Í*Ӷ—ʲK©}ms¿³ê~ïæ—gÒƒ^×lTƒ1“ôà–p"§¡€²N7’ª(L/GGìm9¶JpeŽèŒ‚b×Û7<¤bâ5šVÐ5¹¤s05t~*ÔÖ µÍr^ ñK7°¹+lr><é.ž¿ºÛùžÏ+Üú ÞЭbRF»&ó×?J“\È ŠêU¤IK£w›¦|Ú”gWÍ,D¡¡DŒÀ ¼‰ÀÌ‹,µÕ,P†Y¥³JÀ‚s ”³m‡%¦Ÿ©š7âZÐd¿*Т¢1jL×~öK^@&žÍ¬ŒøÜdÂáúéÖÄØ ¢‰1¼iLjUÙŽ°1© 0–1v[/dÅÏàh´Õ:lSâ6é„x¤9&¤Â9 i tLc ’2¹ØÔYÛÔ(¤)ŠÖ‹°äùøÐF Â|TƒIˆäó>©mø{CD5¹ÖŠ´ÑdÛPqù1F·CmŒj] uÖüL¬Ð…¸€)ëiÏféààÑÙáñ)£¾l‚†´© 2…=Ûu•g)|fQƲ%kÀ›Æ¹dÇßï¬ù™êsAÌHõ/Ž›v~^阜*ÑÄã¬ü¿ÎØnó׃zvÆþ÷rém*¢ð_ÉòfÑÈñk „¢H@CH¬PD²¸é‚~?ǯ±ï¥M²Vm­ñõt<þÎRqLGbÃ5kû Ýq¨ÚškÏ*TšÃÀƒëÐõTÊ&ùæ‚@ÀŽÕŽàN˜ï©½áZ=ʯ&‡hè­U˜N\F×ëwÛ_j‚qÑ¡Ã+Ÿßá•ðlÔæ ÏN]9¨…TžÎ6É2D¢”V›U"ñaØ­`ù8l-dÇW.K,ÿ#ÃLØéžs)¢ÔÒº„X-#¶YYŒ°|Ñõï^ x ±;Y9ŠU‘"Ã0þ5 œïJI®ÓQwmuer EÜäÀÕ„è LŽÝ³]Y†›uµªhÓðH”d³c`n¯°NÓͧ‹_ƒu2H“Cœ)gû3±N³ÓåMÏX'ëÓ) +WNÀt] ÈðòçøýñfsŸ‰@ëˆp»¹½»ÂU‘Ó+ãq ¸ • €ãuRÌ´/ó_sØà™j—äÜ)*O­Xs¨‘sýBÙ’åÃs$ÂYNªäj•dõÓûõŸ‚ÊÅ nø¾eå–/ÔÝ—ƒ“¨!ha/¨[({ÎÕ‚V *ù QrA>/½^¼Ý¬Ù]<+˜µ”IÎR€TŠª¿€í±xÓN…b/$ÞO âD/û…¼ç¼½ 4—ÅAÊÈ’èv·Tb¸{ó5zsÀ4y*çš‚iÏù›Æi’]¾‰Ô^wQ-&&>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 662 0 obj<> endobj 663 0 obj<> endobj 664 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 665 0 obj<> endobj 666 0 obj<> endobj 667 0 obj<> endobj 668 0 obj<> endobj 669 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 670 0 obj<>stream H‰”WÛrÛF}çWÌ#°eBs¿ä-–#—³ëueÅ­}pü@SÍ„‘ŠœïØýà===€²ìÍ–ªDt£§/§O7%6³‹××JlŽ3í»Ep¡s^ÈNi) ~µI)‰ûõìv¦C½mœß½¸ï pÕ¦Îgšýë/¢¯L œˆCqBž]¼:¬öëþ$.Þ^Ú$^¾ºœý4á9°3yD; ƒ²JÅÜ~Ì”¦™*ÑÁÜ„ T'Sû‚d¼éBTb7s© c¢õv8²C2²ó)JâÚi¢¸*ù:]_ ábg•„_†ø­%m $à`®h&CF `}«æšƒs]0ÿW |âOùEtÎúi€AñE€Ÿ¾Y‚\ú°gnÒ¯±÷ŸoLõXR=9VS” Úå¬@Xúu ùÃ^°&”ãþ‚î’ry/[I Ù™0Z ÖRލÄql‘(Ò¤JøðjÊÇ! F'Q–ÈC+;µð´ö§ a´lÆ<ÊÞ¼¼_«øúòïXb?bYü‚gzÿ(”oÅûRÜÌBDÿÝ‹¢r¸žE<’™ØTÅ`u'ãs ÐM+Ê3úΦg䱎A&?R“L¤¦™$L–æ44 Uü&tÁ¸gƒW‰™ƒ"tFÅL&—s­ŠÑ"v^†g“rþ÷P»]¥I5Jbƒ§0!¢’x¸)P)ÁdZ’ºóS&ÂÂË)­”¤A‹gš¨r‘’ñgëSÉŠ«3e?C(²¡54-\I€¡¸Õ«‚ÂÅACrÀkH–‹h]Xå!†¢qÙ"êb‘,ËÅ!ÞŒø@LÓh“ ’b "˦ÈxàÉù¬±’]&Ï!l=Qd'kŒAc9©êÁE]b0Å=†¸œÐ\§7%KŽ#”}¨5XËŠZ´*§KÑ!ø"Wÿé ¬Uf\½OƒÌL‰4»3 µf7û4›¶' Œ¥ôX˜ÊtÇ EÂc¿ø V¢mÄ4"Ë=x}&Ú4(Sìí„"PJÕo¶—’ÑP>pJšSPëXemʉº_œö¥øÕWöOzª™žRQ?«aÀÖОۈ{V$~ôúD „‚2ÜÄåäJ Ò=z'Ùª\¡*O1c™ÚñnÔpWÚÍš±eqhÅüóF rá“÷g±TšTÈÇôÌ›d„µĦª€k“줾„Çú´þ„Q B|Â9ö gà"7Czw&kꉢ1…™®Žy°“ÚTiaË. ʈ1K´®0×¢%9©P+•¼3 ŽÞ}G”\§ÎwžûÄ(CŽaÒ–ùwj´0áÌ7zAÉmcžÔü*Æ Â8ÏŠ™ÆL¬ªŽ A!ÕF|À…0y”k#F ·ªz¨­<›>På½*ãáËöŒR¥,ÍIFÅ0HíŠ Þúï9ËÈê20‘h?ìCÍ@ÍÈÙÀÆ·†ä2"IY$;q@{*… ²Œ)¤<)c† Ÿg5aõ¤ÊTÞ_* ôÀŽN|¢<ß1M÷hÇ ©ÉxÂb™I_v=“Ù¾¾@yY'ЇÞF=)K Ô’¹Hì‰2sšEUÆ…12yS—çdy‡¨¯©¾k§³EEr`Î,¸£îô4S¡&Q©Rs¬d«¨t«uV:V _G ð*T ‹e}[F Gq‘ª1žtÖiñdVx±úáí%>½.^_+±9Î^.fWð+·³„7¼ßK‘/hI`Œé…x±Ç«ÿCR"‡Åãì}³Úµâæ°úU´¾Ùö§õý-4¦Y®Ö->Ÿš®KˆÅ'–ÅÇõ§åïÛÃ=Ùnéÿ©ÞZöûC/Î}®ýí6+6í\u¾y¸_žXqhÉu/Y<}¶|ø4ÏYl{rqõæê]NïejDûañ#*7M¯™‹W\’‹U¾Âû{.n{ÓÎÑÑfÝ# ®R³ZîÄé ±Øöõn;Ç+ss·îGsÔ€ôùŒ  Ú9žøÍvÃ*”ÐΩäS å!ç£ñbö’(XòAr>¥RC•¢›¥á¸dM%_eõ›•ÍÕ»d»þ¼ZßÄrÇ'ÄáŽ0÷Í=µG5Œ¨Éˆš¦?2DóšÓ¤°b‘Ùœ.máÁò¾Uø˜lQ¯)/×ìà]lí<7;ÿ½Îm†âçæ?°ÿÛ_n»¬º&´ü€ÃðœsÊß§«cæ§ÇUOÀaØÌ8?W²û÷›þfä¸a¹Ê“¸Ì]"¾)WÕ|—A/¿ Qëñ#ˆH°pÍ‹ÿŒåàO2œG¿[nˆ#–\ØPÈ·™åo&?I[¨bbóÉâöpÏ){*dD`†Ùö¸¿ÏøvŒÎ•áÆÀ¦È å+|Ö oé»Mšã3ÂËBøKn ÁÒ*lêæ×\òwâåDóïߊe#^m'ÐGe€Zìµæ#™Äæçô´¾!Û’×Ww‹×¡#¸öÏ´63l‚ä°ˆ˜¢‡{ŠäòèY|ö6vž7ˆÀEó\˜ UX†Û°/ƒ^àç ghŽ'úÅH,OkÐí¦ÝĺO™ kq[lûo×ú<Ê4…¢ØîïˆÆ¡Èë=¶Á²xÙfÆÞ[²ìâ-W÷„!à ßyÈ“ÆÞIÌ=ÒehJxl‚eÝ›ÌÈRùÓ‘fB ›»,؇ã¶ßä}’5Ô^lçt7;¬Lžª6ªÐæ~ûñ÷œR‹Í[R¹œ3X*ökÐ÷V)Ú i‹ÝÜQXIз›~¹; Þ&€ÿèWŸŠtè%Ì1·æ€Ò¹æšã¤è¤ßN”úÅe¯‡YâÀm/³[×'½09MfFÒ8ÂÆfÞPãÜV€#ÉuWÄÆ<ñc+Š%E"É êË šìo"4Lt×ËÙËù¨Ú­4ÆÍÎ&¹£ÎôIg&_®¯nê£j<_€‚î]"-¦qãeí¿Kˆþ_B‘.í˜ý-ÏéÐþŸzµ¯Õæ‹ÿ~E}Šy•É ™X®¸A»,¼Ã&ÒŒ*L9Q(h–U~?²Räš©ÙO¬–iÇÒÄ ÍaNÄ"›>&Ë%#‚ð³;/ãÝf«(Š‹³ í„l6°¦M#”O!‘ç6Tæ÷ý1Q/|Qši«iãzb1 Z/¯sÿ—+™Ü÷1»4ÆÓ/(“w¸ þë¸l¥üû ‘ yÛ{Ä zvš4¥|â•£1˜)Ösì@ÿì{VV¿„-¤ßM¤µ*8Ë¥µ¨ñy­»›K&kOgüß²:2 Y„f‡vÇ"ï¡)‚Ó¸$ƒ'x¾ºc¶Ÿ”eørî¿Ta¢¡„A%¹ ¡œ±¬Õñ„+ rqbêä­hÒm49äáè6HëÈ6÷*'Ý£)C€”´­:XU‚ÂànnÎTëùÞU&ª‘SZ”üIÄÕa°¶®Çx³Ø¾êÁÿVúÎ/"ª¯¸ï•ªÎª½Ÿ_MdµØ´ºº®î…¯ö:‹ ö.Y–É¢:`“ !èž!ÇLö^Ls‡XÿŒ ¬…;ÕZ  ©4$iî"]÷,>¥Ð=jå:8Œv{å¯U>„R#çtqôhyôÒâÜ-   x§C:8F}pxˆq×ÒV G‡Ãež¼ö6ÊXùŒë‹#²Ñ¤Þ÷:ü"ùZäŒLQ­\éüÝt÷­ƒZQá´E»AΕ¨0ùµ}h·¡ËjwÐcu;+ŽSÄ.¥Ù}kМ®1™ûë¤ ±£ÝGç|ùíîJŽúÓ4Ú ^@1½Üö™C„/ªø¹‘ ¿\fø\ LDÉBúVlj¬’!¸ÊPH~ÑGA©h]Þ‹Zî]ýôpU„£®W–]•Q,ÿêD xk]_œ(Z¶O¤,JËâDÙ/ùônÔq‡£žq"rU®“|¢‹ñ§£x&ÙVd™i´€õ…ä "ʲ$àœK–â|Ég’óȈõ‹Óå•’4´[ŧ“ n%úrÃh‘v$,õ<Íë$“Ù2 øÆ=t-7Æ*‹Cæ]$”+ !†÷¼o•r¸yûTß*«GF¸¢o‡–ýç6®Ò”¶’ÏnÜz<Ÿ}r´£a5½{W´aâÕ¢ ÉK˜Ô_«=:iè\v .¹á1ã”9r²ï˜ùóù-ÓʈþYþKˆ¾…Uñc ƒ4]NòË>¤Ã¨§Ž„šxŽ7Vs &åL‘{gÝV¦ªÃŵ¶Ì3 ~Î3ù¤<Qœ§êð–ÒnkÃ`É]áH!ìv39̦/»)Î^E\ðÉí4ˆâ"Ö”À”$T¹T°”XCc+d—±–¢‹púâ{yâ^,¦)æ"„šÖùQàèìÍôý :gFkÃg°9R½Ø'¦˜}’]³( òDŠÄB;턺êƒÓ³óÉôÓƒ™Z \Û2Ó`)3µ®²s³Sr1ÜSËaÌS¹b€3hGÓói…©á &¸¶>Ò c\Ê×8 xkªgC™-€ëŒ*³>Ñ£—#ÍCß ä‰dÑÒ9űBé“=lT[4Oé/^®Ÿ^ž¿{çO\jo˜%;î“aÔãéãH2aºVè¿;= xˆiÈO ¹qÃݘevÊ.»ƒ g$ùxÊ5c7æZ`7m›À›’M^Ù'¢wõœl†/'@ðQb endstream endobj 671 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5L/zkB58ufPHn9NF0km407S5PqOnxR7+vdOwWWRR3LPRF9hXviofTX5S/l9beRvJlppCgNfy f6Rqk4oedy4HIV/lQURfYYoec/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/z lh/5NCL/ALZlv/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6 MUPzy8l+VL3zX5ig0GxYLe3UVy9uG6NJb20k6p2pzMXGvauLJnn5CfmbN5E83vperM0OialILfUI 5AR9XnU8UmIPTifhf2+QxQX2iCCAQag7gjFDCfzs/wDJUeZ/+YJ/+JDFXg//ADiB/wApnrf/AGzh /wAn0xSX015n8uab5k0C+0PUoxJZ38RikHdT1V1/ykYBl9xih8XeXtS1z8n/AM1il4rE6dMbbUY1 2FxZyUPJQf5kKyJ70xS+nvzi/NKy8rfl4dX0y5SW+1mMRaE6moYzJy9cf5McZ5V8eI74oeEf840f lu3mbzU/mfU0MmlaLIHTn8Qmvj8aA16+n/eN78fHFJfX2KHYqwb81/yysfO2ikIFh1u0UnT7s7V7 mKQ0rwb8Dv41hKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHIPouPJGcRKJsF ln5XfmTqHkjXBMC02kXRC6jZg/aXtIng6dvHph5buu7U7Njqsdcpjkfx0fYGlapp+q6db6jp8y3F ldIJIJk6Mp/UexHbLAbfOsuKWORjIVIIrC1uxV2KuxV2KofUtOstT0+506+hW4sruNobiF91eNxx YH6Dir4X836L5j/Kv8wL2xsbqS3miSQWF6uxls7pGRW8K8SVPg426Ypelf8AOK35afXtTk87alFW 0sGaHSVbo9yRR5adxGpoP8o+K4qX1Nih4P8A85ff8oRo3/bTH/UPJikJp/zil/5K1/8Ato3H/EI8 UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFIfTv5Zf8AktvKf/bG0/8A6hY8UMlxV2Kvhf8AP7/yb/mT/jNF /wBQ8eKQ+6MUPiH/AJxw/wDJz+Xv+jz/AKgZ8WRZ5/zlH+Vf1K8/xzpMP+iXbBNajQbRznZJ6DtJ 0b/K/wBbFAZp/wA4z/mr/iHQv8K6rNy1rR4x9Vkc/FPZrRV+bRbKfah8cVLOPzs/8lR5n/5gn/4k MUPB/wDnED/lM9b/AO2cP+T6YpL6uxQ8J/5yj/LX9MaAnm/Toq6jo6cb8KN5LOtS3/PEkt/qk+GK Q+a7OXzT5uutB8sRSvePbn6lpFsx+GMTSF23/lBapJ6KPAYpfdnkbyfp3lDytYaBYCsdpHSWalDL M28kre7Nv7dMWKfYq7FUk83+bNN8saPJqN6eTfZtrcGjSyU2UfxPYZRqM4xxsuf2d2fk1WUQh8T3 B8w67r2o63q1xql9JyubluTcdlUAUVVHgqgAZz08spGyX1TS6LFgxjHEbBE+VPLOreZtYj02wqCf innNSkUYO7t/AdzksUJZJcIae0NVh0uI5JgeQ7z3Pp7y7oGn6BpMGmWCkQQjd23d3O7Ox7knOixY hCNB8r1eqnnyHJLmfsTLLHGdirsVdirsVQ2p6lZaXp1zqN9KILOziee4mboscYLMfuGKvhjzfrfm X81PP95e2FrLczSrIbCxTcxWdsjOF8K8QWPix26gYpek/wDOK/5mfUNTk8k6lLSz1Bmm0l2OyXNK vFU9pVFR/lDxbFS+p8UPB/8AnL7/AJQjRv8Atpj/AKh5MUhNP+cUv/JWv/20bj/iEeKC8h/5yw/8 mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/AJN/zJ/xmi/6h48Uh90YofEP /OOH/k5/L3/R5/1Az4si+1NV0uw1bTbnTNQhW4sryNobiF9wyOKEYsXxD5r0LzF+UP5mI1lKwksZ Rd6TdsPhntmJADAUrVeUcg+eKX0n5z85aX5x/IDWtf040iubBhNCTVoZlKiSJ/dW+8UPQ4oeTf8A OIH/ACmet/8AbOH/ACfTFJfV2KHhH/OUf5mfofQl8n6dLTUdYTlqDKd47OtOB95iCP8AVB8RikPm yzi80+UbrQvM8cMlk85+u6RcsPhlWGQo21fskihB6qfA4pfdfkPzjp3nHyrY6/YGkd0n76GtWimX aSNv9VvvFD3xYp/irsVfJn5m+eNZv/Nt5FrtrLaXFk5hisSQVhStRxNaNyHxcv2vlTNRm0uTJKyQ +o9jY8GHAPC34tzLvP46dGJ/4htf99v+H9cq/k+XeHbeOH1b+VGleW7PyhaXWhzLdpfKJbi9pRpJ BsysDuvA1Xj2+ebPS4Bjjtz6vmHbmrzZtQfEHDw7CPcP297MsyXTsZ8wfmL5U0DXtO0PUrsRX2pH 4BtwiB2Rpmr8AdvhX+mRMgHO0/Z2bLjlkiPTH7fcybJOC7FXYq7FXzd/zlX+ZnCOPyJpsvxPwuNb dT0XZoYD89pG/wBj74pDJP8AnGH8tf0B5abzRqEXHVtcQfV1YfFFZA1QfOY/Gfbj74qXkf8AzkJ+ X9x5J89R67pAa30zVZDeWUkfw/V7tGDyRqR9mjUdPY0H2cVD6T/KH8xLfz35NttUJVdTg/0fVYBQ cbhAKsB2WQfGvzp2xQ89/wCcvv8AlCNG/wC2mP8AqHkxSE0/5xS/8la//bRuP+IR4oLyH/nLD/ya EX/bMt/+TkuKQ+nfyy/8lt5T/wC2Np//AFCx4oZLirsVfC/5/f8Ak3/Mn/GaL/qHjxSH3Rih8Q/8 44f+Tn8vf9Hn/UDPiyL7exYvOfzx/K+Lz35SdLZFGvaaGn0uU9WNPjgJ8JQPoahxV8leWPPWqeXN D8yeWZ0dtP1u2e3ntm2aG6T7EgVqUO3Bx4f6oxS9N/5xA/5TPW/+2cP+T6YqX0z5q8y6Z5Z8vX2u 6m/CzsYjI4H2nboka/5TsQo9zih8Y+VtI1z84PzVaS+Yhb2Y3eqSrUrBaRkDgp7fDxjT3IxS+n/z e/K2w81/l8dG063SG90iMSaEiDiEaFOIgFP2XQcfnQ9sUPAv+cbfzIfyr5sfy3qrmHSdZkEZEnwi C9HwozcqcedPTb34+GKS+v5JI4o2kkYJGgLO7EBQoFSST0AxQk2medvKGqXosdO1i0urtgzRwxSo zSKv2mjof3gFdytcVYn+cX5U2/nLS/rtiqxeYrJD9Wk6CdBU+g59/wBlj0PsTkJR6h3XY/ap00+G X93Ln5eb5Mubae2uJba4jaKeFjHLE4oyspoykeIOQfQYyEhY5Fn35Q/mndeStW9C6LS6BeuPrsA3 MbdPXjHio6j9oe9MINOp7X7LGphY/vI8v1PoX8wvzT0Pyr5Yi1SCWO9utRjro8CNVZqgH1CR/ute QJP0d8kZdzx3Z/ZeTUZTAjhEfq8vL3vkTWNX1HWNTudT1KZri9unMk0rdyewHYDoAOgyD6Jhwxxw EIioh9BfkN+b31+KHynr8/8Ap0ShNLvJD/fIOkLsT/eKPs/zDbr1lE1s8h272RwE5sY9P8Q7vP3P cMseWdirGvzF872Hkryjfa9d0ZoV4WcB/wB3XD1EUe3id28FBOKvkf8AKfydqX5n/mS91q7NcWaS nUdduG6MC1RF/wA9W+EDstadMUvtyONI0WONQiIAqIooABsAAMUMW/M7yJZ+d/J17oc/Fbhl9XT5 2/3Vcxg+m/yNeLf5JOKvk78m/Pd9+W/5gva6ur2+n3EhsNctn29JlYqspHjC/X/JrikvYv8AnLxl fyNojoQytqQKsNwQbeShBxUJr/zil/5K1/8Ato3H/EI8UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFITPy3 /wA5W6honl3S9FTy5FOumWcFms5umUuLeJYwxX0jTlxrSuK0mX/Q42pf9SvD/wBJbf8AVLFaZt+U X/OQV55+81voU2ix6ei2slz66TtKaxsi8eJROvPxxRT5+/P7/wAm/wCZP+M0X/UPHikPujFD4h/5 xw/8nP5e/wCjz/qBnxZF9vYsXYq+Wf8AnKL8q/0ff/440mGlleuE1mNekdw2yTU/ll6N/lf62KQh /wDnED/lM9b/AO2cP+T6YqVv/OUn5mfpfXE8nabLXTtIfnqLKdpLylOB8RCDT/WJ8MVD13/nHn8t f8H+TEvL6LjrutBbm8qPiiipWGD24qeTf5RI7DFD1PFXyN/zk/8AludB8zJ5r06PjpmtufrQXpFe gcm/5HAFx7hvbFIZ15T/ADMg86fldYRa1KXfSNRsLfzYCa+pYep8M8oH+6nYKJq7UD12xQUvlt9b ttP5X7zwT3VtcP5UXndTG51T9IBbSgkZkglgCpwESDnE7b8VbCr6PwK8383f8qM/T1z/AIl/R36a +H616vL1Psjjz4bV40yo8N/2u60n5/wx4XHwdEn/AOsaP+1X/wAlMHp8/tcn/XT+mrXH/QuvpW/1 j9H+l6Z+qep63H0+bV9Ou3Hny6d64+j8Wwj/AClZrivry+1R/wCsaP8AtV/8lMfT5/az/wBdP6ap a/8AQuP1mH6r+jvrXNfQ9L1vU9Svw8OO/KvSmPp8/tYy/lKjfHXweuZc887FWH/mR/yrP6lZ/wCP fqv1P1G+pfXOXD1ePxU47cuPjirX5b/8qw+p3v8AgL6l9X9RPr31L+fieHOvxdK0+nFWY4q7FXlX m/8A6F2/xHe/4n/RP6d5L9e9avqcuApz47V40xVO/Nf/ACqT/CWkf4m+p/4a/d/of61z9KnpH0vT r8X910r2xVNfy/8A8CfoE/4J+rfob13r9Ur6frUXn170pirHPzB/5Ub+nl/xv+jv0z6CcfrnL1PQ q3Dp2ryxVjX/AFij/wBqX/h8Vd/1ij/2pf8Ah8VZL+X3/Kjf083+CP0d+mfQfl9T5ep6FV59e1eO KoLzd/0Lv/iO9/xP+i/09yX699Y5ery4Lx5U/wAimKvVcVeW+Sv+hfP8TWf+Ev0Z/iD959S+rcvV /un9TjX/AIq5V9sVepYq7FUs8zf4f/QF/wD4i9H9Cek31/6zT0vS78q/51xViX5c/wDKmP0ndf4D +ofpD0P9K+pcuXo8x9qvblTFWPr/ANCy/pkf8cj9K/Wf2+fP6x6n7XL9rn1rhV7BgV2KpB55/wAG f4cn/wAY/Vv0Fzj9b65/d8+Y9P3ry8MVYx5B/wCVIfpK6/wX+j/rv1Zvrv1XnT6tyHL1eXw8K064 qmXlj/lUP6ZH+G/0P+luL+j9T9D1OG3P0OP7HTl6e3jir//Z uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 672 0 obj<> endobj 673 0 obj<> endobj 674 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 675 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 676 0 obj<>stream H‰”WÛrÛF}çWÌ# !Ì}°o±¹œ¬ãÊš)?Ø®-š„(z)R!é(ŸŸÓÓ= à’w7vÙÄôLßNŸî´ÚÌ®^¾Õjsš™Ð¤¤¢ªm´i[‹_c»®SÇ~v73±l;O¦»W×§ V'cÛ%Õâ¡ÉY­N«ýÌ;ål¹oÒô•à™¶BÓ…Vç=“šÖðæ‹ÅìêÖ(­w³Ž ªNù|ꋇY å9¼´l±Ârñ4«|[/>CϲÞþr$Æ5¡«Å +kOÊï«§§§:´¯š?·»í¾ž{<ÿÙ¬õÇÅO³È¢¤T G“CŽ.ÁÄ·ãuÑ4mšÆÜæh)nŠø}uûªvM¬nßäõ²ßãÁV}=wÕqy>Õ¡Ñ9Š!/ =Z«æº1fÈE€À“‹lû·zW½¬M¥c=Gè•W?<ë¹owJw,þ^™–Ÿt[2þ5µ §ÜÚ¦óÄ…Kmý°‡º¢À£­ŒT¤h+ƒE¤»6L ¬uÉ+f×÷T [-ù÷ÜóïQ¹RR ßè"œ,é›užÝô§Ú@EßÔ¡1Õ¾Ç+õ´EQ|u¾WçšÝçí^]Ž}ëwðy«f„ˆ!4^ù¨æàQÖï¾S{æ{«g¦i:§| Ni¡üÕÍaõå¡ßŸÕÕëkߪ7׳_Geè,þPßµ¶£þÓN딋66ÔÆ%‚&vhW°´‹F=̨©Ç`›€ÞAB­ì&†6ƒÖµMèRKD¹œ×ä[wAðm7>5&uc7#Ésn¾ÙàÅû&´þïz­ÿ?™gÜ RFOÜ\$Ϲù/Éhƒ†êbÓNêÐ5©ó£Ũ„52: TŒNÕ6Ÿ§½Wé×»Žm‹ð½X°dLÉæ;À$ Ëë„ÔÜp†$¡ ±›H¨¯¹VÎ9“P£Q°cÓ‚ÁW‡cd™N=)ݪ×êýÇV­a³ØÚ ."âx YBÜzrJ$£hQÿ¬Ä»¦í2zÖ5Ƨg%—Œ¼Å˜nì­HÆ19…“˜lZ¦ÈSûl]$—úY`ÙÚç$—¸¡å3a |µ)d¶YŽ»HFgBc£N2Êíwž—Ž4q‹ ª41qM̵΄ ÑŠÉêqk„ÇÙyÝèàÇ|u wçâ"ÎL²Ã«siÌ!œQ&q¦&…I.ƒ¯¯ˆÇMÇ+jˆ;ò+­4í O52ÓêzB…9 =g†»Û„A’×Q–>/½¶²Nj•`š%tr tyŠ=ô+Š•$tƒÓ:±ƒyBëØÊŒehK"ÛŒ–}Ø¢QÖx ‘à>phGvÁY9¼jIP¦ÇoÙC°²vCÚ°DÒ–}ÉÚ;vècqà[9‘VQO³Ãš´ÀD’ÝDB¥ÙÍîg£òÄ¡~A2R¿(}‰dØ…ýt·ïøDçºÎOÖ6 "1NNè E’32WºRÈh´RŽ8ˆVÐöy×ø®Š§˜ÞjI>ºî+‰Í|¦—7è9IÑÂôòÏ //ã:åCçKr7Yü¼ Lhò:jöCSf•5èR%‰I>Ÿ`˜±ÖLÁÖè¼Ö°(·ìUkÆÑöÑvÌA| ká”u“A²-¢ xñ‘RšDÑ òeÄ[¸›äASÌŒ2ÅÄ3c$°Ž~ÀŠ5¬a)Wk©½”Kå‘ö`¥YI|ñB†$ FfŠOI]btù†¹dšÆO¸8oÆsÓŽ‘Âú«)…»Å²cu0£jðš5¸^—\Ï‹®øÅ‡Z£(œ)QV]òðCws¦…—‰ÂÜ VøúÉÆhbíüì˲T£H¤\E¿TsÚ¬`M™•AºÅÊŒ‰œ†+åè$È$@”¤¿>âÃI`hKëä† Ì•ÙØv µi™øÆñ zc‡Öå–ê&'b›&’‹_ùèRE’éQà £$ˆµ££¼Ú °.…²A¼Àf;¶£©zY_ú„%¨Œ–†K¥5 ©P8ônRCˆèmG ÷½-½.#Éuê‚ÆKiÇþilË`oå…Q.F™^1ܨ¼–&qzr‚+Y,”Z_|6”( [J”…M—4 ßJ¢BGA¡Ðu@ Ø¢Ìrcýæ²·H‘p©Š…RÊiG¬ð¦õãëëÙ¯³«—oµÚœf/³«[§´ZÜÍè­ÊyŽiîÔâß |Iµ„Äb•Ÿ0@O³÷Õvÿø¥žÃ~uVªëÖsÓ„êgüTêzŽá\55¨Ôâ~{¢ÝT©u/OÛÚ4±ÚÐ9[íë9Þ‚+µ}xܱ¤è÷g²îªŒ˜J-ÕDs¿©?.~šáûËF$ܪÅMŽì‘81¶rœ»^Õ¡Ê¡Ú걞·ø¹Zžö$^d#‡`ªsTwÂ$º:ªO‡ó½:ß÷êé¸=÷j¹_«ì{^œ“f‹ÂRÅ»eçÇZƒUtµ¬ç¡Z34äüñ°%熜x„󙗻Æ··5Þ¤«•º;Õ*Ù­68VíòÖòL+‹’ˆYÙ=Ûî >Ð âÿ/"%…;FBL’›M~”#MNúêÖ0i—°†ŸðÑb#€H™5„¿!,æù‘Á¸}uûFývZÖÚ „J9#z}ØŸµ!ªrVüÑûËOº5Êâc-¸â0gðñb¾;ÂåDu{óØ£ijåy{Ø‹õo¶€¥êšÁ¶èïÙ6“:SóÔ¯Î[)“ì$<©Ž¨<àw•]Ѷ­ŽrúSÊÄúÔß/ÿØ¢º‡;ðüöÕ¦«nߊ'‹žâZ%ÏÀ±3”¡Ï|Øê@ÄÊØ’ ij<Õ¸ªÓaµ]žû5‰NçåùËéBçìhDgªžïÄËÔ5Ê2Ïüذµ†‹¥ˆ.ïîû½„Òï—ŸÐx[>”w—'^ô¤á«#…0D‡ýÛš˜ûª&n€'$ÚfщASûÃ9K9Ž/„î.¾Wëåy9õ¹^÷ëÚóâ|àøËL¼"pf¨°—;‡°X|Çøš¡ê‰1 e|ž¦aø©žGDÓ–NáÞþPQ7éê†êßU¯~¡™XZsIê‰Û^WkõDz5Ì•mîMM±ú”ʹÓhׯyBmjƒCðÄTî˜ÊñÒ÷5_(êÝ¿þýÃõÏõâó…ú¸„´MP«ÿâ¼Ú–ÛÈq軿‚­­HÓÍ&Ùä¼y|IeËŽ³¶3Ù©LUJ«È²vd)cKÉÌßï@²©‹Ô¾Øj Aà8Èyëbâþ> ¯R½É‘¤)­9#õæN%Ç"² £K·4¿º­b¹•´:&í•€ó#àá¦Úˆ38±B¬W¨{‹»Ž£lŠJë5PˆXóΜáDE!4Õ*ž¶FÊq±ä3`0×i/ÙJ°O¿¢­tì ©Ô]üX,äÿÓ[†ãxÄx@ý†·äçˆ6? :ºçQjsq%1ðDÑä]¡TÅ7gätÙ\µZfO”ÀÅh’J„¯RRr&µÐÉd*ßOÒã(£Ú´I9…˾Q2S¹GzPÿ@hyç*fü| Ý™OäDnn¢?R\ béá|0$èZuàBNb'\rqS-á½5 Rå ·«tˆì-Ù«óµ|ÅU€ä+ã86 ôLNéÚçÝÅÃÛêÏÍôiØØÙr•7‡Ô5ùP-‡®¾r±Å“«oên1žå¢ EäÀÇu*â` Z²Lzbî(&vJkR]Ò|%_ÒÈA{ Y´LMŒR¹ù‚+ÉE½Uì蓨Λ t’¦ ›Vâþ«T<}MÏšávrǸ#ʧ£S;á'ï$¼ÎD2Ó®×o¤vÊÇ•Ð4ªm˜^ð$ò>~ÇŸpøœÅ–3AhÆw?©Uš0¹²±Îø*°D@ŒÀÏV“µöu@ø›þ>íM¤‰ÿjZ Zip•ž{dGË«ŽùÐ iv—W7·ŸÎß_\pÇãç j¡rSó Ñ5®ì/éúBþvµžþ,u<ÚDU5¯2…ê°Ð¥úÞ%¡~Ùȯùb=œ/csèÀž'üë•ÊÿˆÐè ѺW/íZ¡³V&þö²  q#Bçï^?©Ï«Rq¿Öêióå‹ü^ųD"g:õÆÐ Ñ}¾eÖÔrI¬Ž/ú¨Pú޶ºâ~,š×ÚèÒ£gâè{&µLû˜Ü*¤@µ­ŠÑtìTÚdbƆžÀþMcáÒÇ‚Ø »!å¸mÒ7n,%5oî’€0jœïv9PyLÉïÞæÀÓh]Ý&L7MÛåçùü‘{;Ñ×ñš»þLÕB¢c)à&!lñiªÉx‰®«¾ˆæ#†.çÌ»ÚJVód…öj‡dYtù¦tD㤦5Œ”-´yPÅ/C<©9Øé–LIš˜*Ô¨¢ Õ!æ_|°4šTQM‰Ã}ªû¹”|Ð?ïÊt¹FØxðìžÊ½“—ƒ2=ý½œÜãQ1]-W æ 2¶Ô5’`‡öŸ“ÅjòG_p9€{ã(ÃáGGç ¼*ˆž\¼Ìk~ &9"ÆzºÕ×ÎNtù±Æ¥‚3UĄēÿvQ‹©§³á0sý?–ÑJ} yÆÓVúÄ>¾ÅN`ŸÐv²’Ù–‘I,ZìŠ!ÞpŒ<éqÎáÇá„ph|‹û˜É€Ó‡i‚6RÝ[»×36LÄúÍ’“­y®‰ƒLˆÀ`üY­6ë‘P#Ú‹¦¯²`i+wk!ƒÛ¥/ðíá™òcuõëÙõùÅÏ5[ÅŒ|Óê^ËdTµ©£aŽslÝ~dhÕnáw=0r!Þb?h¶‘¤Ñê×. 9êÖší’49÷¿‡×Ô<<ñx±ãvhüj)³¸;•ob쟡B µç´Ó ³À&Ê?¦c•‘!à*䲌. ß”ABµÌù`·pŸJ› ‰3­LŽ4Í(—7ƒšà@­vŠŸÊ åÃþïÔ©È¢þ˜Ý¶”‚ʇo–.!k ŸãXƒÞ<|YL¦KžjÖã¼Op^I…Q²ªNV+T'Hþ&ÌþQ–ÚÌIóåLÄnîçrÆZ€ÐF\³—ʱȋ:‹Sfsz)2fíãÀ3½¢“În9þ ¢ ×È -ç”¶¨‡Z=NîŽ~:yrjò¤jjfMù/ >M–GÚc4²àá­1ÀÇÿº-4rL£þ 'SF]ª£Ÿ^ßh5{4­š«½ŽL‹D5­,òŠó˜pÛ€•¤µ¿ÒkÝýrÛg‚—ŠG¨Š?uM0ÊY@ÜàÍ~©ô—aÏE<…=UþRMDú°ï(•a7e {:(®”a7ˆMðEØ{©,ãÑ4ê2ìIë7užr Oôàð’Àg—ïn‹^JF¢i×¶ìsieËHׂ×&f™^×5[ ¤ò‚}¦¡0Š&š‡Xx|qyusûé¡ [a‰+[†š¤KS³T–±–ËùbOëk-*VÝ ò¥€Ø,÷íwàuuõ:{w²¡ø'‹ãÊ–Å`ŽMmJ‹³ToBØn!"j½d±&ºkYYÓØÄŸL]˜}‹éŽHïñ§“«÷o3õÕ5×0 ‘žeù‹+\ÜkÊdÆ¡o)*©%ôBIà5B ·u^(íÈN‚nðìëêüýÅEªëÉÂŒÝlaÝt[„n¶/‹dˆÜ-…0în™q›,p›ḭ̂Íff¡$’Q»£ó–Æ,»K7óÈ’W@t°Ût„’¡BuB.ÝŒ2‹=-6ø ®ì!å endstream endobj 677 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 678 0 obj<> endobj 679 0 obj<> endobj 680 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 681 0 obj<> endobj 682 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 683 0 obj<>stream H‰”WÛ’G}×WÔcõê©ûeß``ìÅØ‹XbCÍ ¬ËXÒxàï}ª²ª»4ŒYoÁ(³³òròdvµd׳‹ç¯%»>ΔëC`ÞúÞ:&z©„Ðø«tŒ‘†ÙÇ™òõ±±ÉàüéÅåѱÕJ/b`?„FKv\ífÖ0olV&Ó| z£¿U#£ôÈõÑ ™Ÿ©Ð EŸ,fWŠI¶ø8‹)‹Ìf _lg‡çˆ.´c‹Õ,ýB΋»Ù;~õ¢›ÛÞñ«Wô—=véWäC‡#‘º¹ÇŸ%I§}‘YçzÏÿpIr¼—ÝûÅHBScéøGå*Ó;àÃO)is&”ÄÝÝ]çDoyÿe½Yçø–éWûmvûl¤¡ -ñŽÁ4 iü| „v<€‡èÜÊnñyÊznM¢Öl.{¥¦Tc2¦s~ó\HÞ²nžx|`dBpŽoX1‰Òå˜"QHQ°ªé¢¥”qúaÐü @+ݧfms³´ªmK¹PÛ®^±7Ç΢1RòkÄV½FÏ,gKü·û€ñË}g{w:tÀßó}j¢æ›Šêï Õše*: 8™õ¨=ö.“îí?Ø®ò.å#³(•ɺ‹§ûÕívØØÅËK+Ù“§—³_ÖIMH£!”!“¦Ò„•èàqD²ѳí A42ðN÷>H¶™ÙØ{@Ó(|oœlŒè] "±Í5ÈqetuÖþ"„ ½‘¦ 1)¾ ñ{JŸ€ƒ¹Lê3Zë{5׬í½þ¿R »Èo sƵFÅ7~ùn ÎôÆÆ±[òh›Æ8…-èÿ~cªÇ’Òäq̱zlAÚ+›7²aÓ_kbö‡-a´/ÇüyÕGió–6"%ä1~²@,)ŽÈH±dS¤¦Jøp²åã£S–ÈCIÓZ¸ôh>|iõLy”-zùšýUů/ÂJû«ã3Þèý“‚½dïÞ öaæúo[,ŠbÌáõ,àÝucS£MP½)@7%SžÁõ&> Ou„2¹6JQ4™D4H¶™DL–¢Ôiª<úè‚¶(F¯82G…ïµ ™L6çZ“Eèð(šrþ÷›^Ʀ)°Ï£oˆ(^ ¶*F˜´I¡z×2N´´’" Z8ÓÔ@•‹)w¶>¥ð ¸<Óò3†J6i µ…K0$µÚSUPØ0j’ì…"¹ˆÆQ³U>àƒ/›-‚*Ñ\âžDB¤˜Zél%9ÐXYÖEÆÕ€NDë²Ær…0õD‘­¨1F¡¤ª‹w1Å Š; q9¡¨N§K ’,E(5:_k0†µhYN—¢½wE®þ=ðÂX«L¸:G™èSÒlÎ4©5›Ù§YÛž060”ÒCi`,Ó2¯ýâ7X1m#Ò YöäÁ©3ÑÄñ@ÑèboŠ @)Ua¼É^BC:O))JA¬C••.'ê~±Ê•âc÷4NRØß辦=%Ëm쾆#X}ïinBlIéÕëbÅ”á&ø,G[•y’ÌÊòÓ†ø§,íFw¥Ýd S‡’Ä?§å(>9wfJ¥ÙA…| ÞyM@XÉ)Alª x±ÖÑ4õE¼ÖÛú#FÍÑ kÉCÔ” Ô á왬„¯'ŠFfÚ:æÞ410´±Ò”]â¥fS–h]a®.D‹b$R¡V,yglºûN(Ù^žï&(õ‰P†|Ó’éuj²ÐþÌ5º‰ ‹ ¶Oj~•GS~šgIL#&V U' ²ŸsÞ70OrmĤ¡VUµ•gÓ@J£œ“e<\ÙžA¨â¡”¥(É ¡lqA[Ààž“0„¬*è€rã>T´V„œñd¡íyk’\F$Ê3‹hiOų‰,S 1OÊ”!ÈgÂY ‰°ª©2–ûKE!½°Ãˆ(¯KÏ}ˆí­â4!U#h ³ >N¨Óm¢BM¢R¥æXÉ4UQéVë¬t¬8¾N@á*T  e}ç' 'q‘ªÑžtÖ*voV¸X={y‰O¯‹ç¯%»>Ξ,f\ëË?ÒnÀô¦{ðbK_«#“Ù }õàÓ ßVl±Â×ÀânöŽ¿ØÞìÝ\ ~ê0Ù| ©·|wêÞ/~˜]\!m¶À·»ž!t/ÂѧÙ¸˜ü“]á¨ãû÷j~`§OëÿO‡+¯äëäÐðÃiø2‡™å¦›qžL®~Î1Ÿ?f¿Þ®7ÙɉŒÖ»Îá»zA¾_usK–³’.]ŸšL@ Ô4ÏIIJj½½I#¶Ãî´<­³°ß=Jq‘!Ü#‡«Û Y±c‡/B¾¾Nq_í§å1Ù/wx®ð!°éQ’J—Ý_åø9|¤ð×Óa™Ž®¾®6|#Øþ#Û,OÃRà+€¥ù×N ‡¿=t’³7ÇŒÜÛÎ'X©f@qÊÊÇ«ßvû»Íð™y~ÝÍñõÉÊK‰ôú  ø¤( É‚ÇiŸœü1Ö¿²ãíj5siûûùІï¯ËívùkÊ— IaQŠ/QîŸB½K ËÃf=äRl½û°^e”A)ÃOë}®{—ŠJ½4ÑK*LX¦)ý’Úa2‡ïô\νÅt–ªT©êÙ—nžH¶Ü"¼ßlöêf8¤~ϱÁI™ƒž‘ùÛ¡qëڡɹŒCcš™¹Êu¬¯o!Ð ƒÏ8næxâ¹ËÁh`ŒõMW€]¥Ivü´FŽß%X?²%;}½Y¯–vo$€°p`“ÐE‰"÷»>éŸò´ ìö82a¹ rN‰-–“’0"¡Tº*È&Ë©Xþößÿ}öS·ø,ç½z|ùã½fáSÆ6{R{ÒU®™g =mŽi1ê´­?õK; D#/†ë¢Ð”‰ŸƒP.â7šñ²$Á`<ñÕ<†ŽÌóóp¦=¨¥CL×®5ˆg¸û®#¤ûŽ¢‰ûÇ®9êÙôtä ŒjdPä9 e¤·§€nÍãôYÒø) ÍëÃmªmµÖ'ô <ÖeHïÄ(ü jöIVß}¸¸Z}yÁQÃìàE1ÈF/YO’Ò&9ËÜ9Èk9eä?Q™PAþ¢‚K€G*ä´b»}ûH©µi-]!óU³©œ†>Ù]ÁƒrÆrL(ïž‹É{×j÷xo fœ'ˆ;>rùÚÆðú_rm õ”N¡AT°¿ˆ4q:qY|¶Ù… øJC·åx#iû9Ó$”ÅPÃIJ_Ø…ã·óL†…5_í~öåö¥SV‚”ç[:å)!éáu*@%Vp|}Û´"`S°‘wÈI”µUÜHÅt@ &ƸI¬ÓîU½Œ=ܶªüô¸¦ 6wëæhªñT{§3КSÙntsµåe!Ó,d„‚“F¸ Gõeû¨Cz¢/ŰÓºSŠÃVúêR¦+–|Ó6s·%0 ص¸ØR¨…ºxcõ×êËŒK ÔÂRÜ ÎÄr½ü‹dæ ªÚ£ûr˜”lÆ^‹ ½b€‹ðýê÷ë?ß½ÿíú¿¬­@ÿ]µìaÑsÀ,álŽªAÅÄŸJÂa©¯d¨?3'´^©u\¢FäÖÍbAJ“#6ß´…æÏÞÇqêÒŸM¿Nå¦*;uËñW¬Öy¢è¾ŸG¨OÙôDПzT¨þiÄl¿šÌOe›¶RB>žZ5/„šu7¶ªo—±Š £Râõ•—«=ž²ï'R-Ê!7&_3eÌÀGfáëý}{ì„sD6hGòqJ‡(Ò4Ξt|/G´˜ã"…G¢Ñ$+6œÅXøE؉üs3ÆÊùûXï÷vTTŸŒ+€÷l°®‚jl\LnŽ‘f‹÷­à`*Š1ê%’Zæt‰Ô”¡”š6ÀÀEpMk Þ=Q¬µ¡"|™ÇÞØgâ^°äÞØÍü•À ¼«oï¤da?~o6w Ô9nÙ6-TT×NGQRæÏ ‚Þþùæêl]‰—›^DE3p±;wÁ\ã”H ËËôLöéuÓ–"{ªÈž+²?нSÝc™ÐËïÝZ—hí­s·Ãýºn(KX­}µUUÇÂé‚ Æ¹›'®!¯Äù%½à.>hµ¤zÃ×<=¦¡PF"Èöy#ˆ>ôSæª_‹­–à63Fd«ð×Q¥©Ük¥Ú¾S/m¡€ï5(¥p*c>Éd»ÞÚe.JÚ"`«¨ŒÏZäl¨ëïÚÃ=r(“šºZúq»LEŸ mŠI’ÊG49 ÖéZ› ƒs‹Ôk‹¢d){™à=áÐH]‰vQ5Vé­ÎšFnM:fîÎVïDäÐ[ªØ•¯ ÀfßnþâþÓzð'ÏÀãÓÍ%ÞÍ—}¬M_ s)(Ó§ª¿ÈIˆ4TÅYõ'¬©U5tÊWkåt]/½UÖ–ªYJößFÌ`ä§…mú :\ô]éfM¢€LmŒ“aýûTéÇ]_æe?¥gXþ9¬EÙÜ*Ï‹þÔ±–u±Õj]ç¦ÙÓ÷ûrØüõí»W«OcŽ*Giîe,í3–ö7e”Mh •ýwœQK[»¤-‘ëS­O•Ý¢´ÂŽHâi„{’Á£àÖ£OAªÌúŸùÒS!ÓIdTæ2#EÔ¤‡[û¶Ògô¨asŠUC¤©ù&B僓ýþà¶ }1Ÿ±2ëtñ”ò0Ëb› ÎrjRJëxâÉÈMˆܨg¬ÛÛÓaÆ® ’¹üÉ~±Ç|ô«ÇUq<ÕŸ€3:s0ú«ýÉÀ”‚¨eç&@3Å¡>‚µ.¹ÇKÖPêÃJTq@¨Ñ\6[Ýø¡jIJU ªÁo߈&üK¹ÿݵ¤ê]Éàs…RC7Á¡z±{ñêm»9ÝcŸàÕû7hÿ~ûæÅ«7Ç,ذBœ£Êðk¤ñ›&epÜ4/LŠØØ·@Èóà~0à5ºWƒCž8ƒ¸â²²KfzK\N¾I£©%É&‰®ùh :2ÉGû “å¾3¾AÜõ׸Sƒq†2  Ác‘ƒ¹Aœö¾a™•Þ±4,Kß³‘E¼-JtQTŒ ñ"‰£ÑXÊh´/xyõŽö ✿Æúm½ z†‚`fo,œæðö€‡ùÔÅ^ aˆÓxäªoÑëø‹äÆþ¶b(9èûd—MŽÅ¸ „÷}ŠwÇú£¨d5«9 L¯²ÈõS’l©JoÕÐ×E–eSÇ€T]¿<§àGÌ –,9^ ß9rØ ãCó@›ÞA-è¯ûªc€äTª’nGƒàXeÈcvà˜þ±ÑÍýæÔüˆ~X–h¸f~vÝ9±(¸GN £TÆdVÏAà Ë€Ä^$¦])Ñmø©qj~ļ~ü‘î:¥’aP‰{CÒN¸¹)ÅKÐK¶nw ³€Q ‡dÈŸ Ib̪…KãµkÀcv)nó´nýtä§a—ÕÈŠ·¿_k‹l¿Y7-Rù…¨IÀ,…c0„/RùØÉ˜ÇïÄOD1ç-KaÌŠÆöSé“sá÷®¾ßÌV;š• Ií~Dw¤n²å qõŠ©\ú‹“ ð#æuÔN¤ûÊgÉsÅÈí`·›Yˆô—>&2ƒôLžYÄ,S*>Árýq¼L©Ÿ“NnR¼,sï(Î[ÚAä-@Û’:…¤vMw¬;I—{σŠw³“¡b=š#NŒUZ/¨}þúað(loÏ*‡ëÆûûü¯^ý¼ž ð¡ Ÿ”€ÔŽi‰UA!ð$0È:æ‡0HäCA/Nb^ðÈn¯ïÊ®”üuž17ËW ÊîÆ¡ƒ$Ö•¤vM§¬; i2€ä⢌œ“o`"±=«‚Ëi\;œ§ëŒkgb ãK € 5Ëæø-›×‰ñæ0‘Ø%¿+ï¾Jºª|¹D¶°¿þ™\HjGÐ"®¶pY=ŒÎJ8ªÒE`‘unÏìU¯ †…c¢i’+‹èÌq=‹F׃¡ìГf¯dØŽ{‡ÊL£ YÈ“˜¢@Rø"•îäÄÓ€€îœBL$MRöUÅõÂ^ç–qOàMˆ)sn³<¦šMZ4ÈžñëL[+ož€aa‡˜HUPËBCJg¡†áŠ¿ñÖG_í³^Ž™žXv¤ÝCûˆª‰æú.ÜqWЋ£Éíë]ùlmT͘äù»Ø Úfyˆ‰ÒODeÇ\.[׉óÖ¤ÌG4“ßïªÇ Ö?Ùzðt1×7úâú±Š&«›_€ý…W;À(Wb†%Ò|IÂ~KPÚówEÊ|¾×Æ?6–b{´ö1[ß²fð¹*…W¹ñgÜAâ/_À,c¦»rÞzMNT=l×Y§ŽãL~o¢'.7h¸á:¹n7fìõÐú*ñ·Po€€Q±Ä W¤ù’Œ·A‚КXK6÷Úè·ËÁ£ÅŽh+®e¶h˜±×VöUä­lýWR ƒY-ÇLC[ó%3-Gµ5aqÞ\€’ys ˜ü~y[C;›] Ü¸Àæ¶Ý—;à¶H϶ƒÝ%ª ×9bî/b<Éw²'ùIfjŽÊW½¿È:yë¬×cãò6XŽ^±ø÷Ï¿~Âç?Ÿûó¿OþüñùùÇ?ÿŒŸÿ÷íI ï~+~7ÀŸ{ ´q€ši?ô‚;±È®þ¦ J²‰pš‘fŒsL“ìnXí£\×¹JeÉòzš©% ž¾Í˜i‚êàæ@Æ%%£z Ê3(¸´Û$¤ÑMÔ«`Ç1/àûÚk€éäwäç[T¹ž`ÝÅúƒH%I©L¦ŽYvôÞ`RMtÍÓ8µ?b^ìÛñn"wÃÊïhÈÇf€ZÐ_÷UÇI¦*!cD– 8VÙ2Í]3&Óœ5uÑÏcàÔüˆ~X–h˜– ?ôŽÌcÙ ¾:øH  M^Ȭžƒ†A–‰]n» )ÑmÔLGj~ļ~ü‘AÈ}øÙ†º:÷†¤  ™Q¼½dëvÇ9 È{f›!ym È…  .×®Y9åX·Ë o°Ë*_Ì:¼ýÇp&dÖÍA‹T~!j0Ká˜F#Þ"UÆÀˆ›ø‰(ð#æñ¼eé!lËR£§ÃÕ ¿wÞøÍì É­CIjGÐð#º“ u“-‰¥‰2zlà¤À˜×Q;Abî11‘çŠÛ Àn7³!é!.}Ldé™\Æ=[#aO¥À'¸óQ®Ÿàø°ê礓›1 qï(Î[ÚAä-Ðáî ©AÓëNÒåÞó _2:iÐ*Ö3¡9âÄX¥õ‚Úç¯Âöö¬r¸n¸¿ÏÿêÕøØïÀë úI Hí™–Xu”Oƒ¬c~ƒD0ôâ$æ!^ß•])ùë<§+ÊW ÊîÆ¡ƒ$Ö•¤vM§¬; i2€ä⢌œ“o`"±=«0Y¯ÎŽS„uüJr ãK € 5Ëæø-›×‰ñæ0‘Ø%¿+»šÕ×@IW•/·ƒÈ–LoˆJR;‚qµ•.?ŒÎJ8ªÒE`‘unÏìU¯ †…c¢i’+‹èÌq=‹F׃¡ìГf¯dØŽ{‡ÊL£ YÈ“˜¢@Rø"•îäÄÓ€€îœBL$MRöUÅõÂ^ç–qOàMˆ)sn³<¦šMZ4ÈžñëL[+ož€aa‡˜HUPËBCJg¡†áŠ¿ñÖG_í³^Ž™žXv¤ÝCûˆª‰æú.ÜqWЋ£Éíë]ùlmT͘äù»Ø Úfyˆ‰ÒODeÇ\.[׉óÖ¤ÌG4“ßïªÇ Ö?Ùzðt1×7úâú±Š&«›_€ý…W;À(Wb†%Ò|IÂ~KPÚówEÊ|¾×Æ?6–b{´ö1[ß²fð¹*…W¹ñgÜAâ/_À,c¦»rÞzMNT=l×Y§ŽãL~o¢'.7h¸á:¹n7fìõÐú*ñ·Po€€Q±Ä W¤ù’Œ·A‚КXK6÷Úè·ËÁ£ÅŽh+®e¶h˜±×VöUä­lýWR ƒY-ÇLC[ó%3-Gµ5aqÞ\€’ys ˜ü~y[C;›] Ü¸Àæ¶Ý—;à¶H϶ƒÝ%ª ×9bî/b<Éw²'ùIfjŽÊW½¿È:yë¬×cãò6XŽ^±ø÷ÏŸ?Ñë˜íÞó>BüAcºÇ³ë䞤æ—X>IÁ@Ò‰ÅEb=~ƒóí$w=rMâ¢ümˆKÙßö·êa2kæ¨åÔ¿H|‰£§–0V~ø$ãÜ"Ï ôfïän\¡áB¢†SàJÐiçjE´ Êém…+;“Y!G-²”Ù)ÓÉ/´ÝykZ:hÍõ‹„ÄO$•$53™¾8jzgåIЃIH5Qv´P“ìB̨E–2{ß$ßiÌ-¿DМ¿ Ôr’þµîz™—¢§f%Ý—Fu瘝±ð!•ÇžA’I·!dºÕë}GæÝ`‚5­ðþ”„FîHìr±$2q¬r‚»¼ {)O>µÊMâù°j¹èbBj„:ˆÓŽF°IäŽ"?ÿAB“ ™¸ V¹SŽ< VßcÆTU£QdF¤È;"df(ª×׎ÌN™´+9åš0ŠHý$JÙ5ª¤“¸ V¹SŽì¤aÌS±$½ƒ7çØNž!§a@šá%˜¶^p£8K‰åCn¹b »Ø”t’iTTÓ–Dvb¸"²=Hx\;F ýù"ׄ¯i ónC¦©Â£dš<^’ºTALêŽwÄ*7Ï)gäÓåÅÙÓ‰Gn4øêLúûM8ÉY½é ïoF¿1XÈ–bRR@j“2Mˆj•ÈNîˆP%,þ–6šA¿8ü“H÷§dºÕt šs ¢éA"UX_‰gȪEdr}2i³“ú!‚j.óä ©~Èšç΃X6É™‰ûb•{çÈNPÍCH-¹¡ Y]Hi‡j‘PþÇ;U Ûf'õC>ÈdRóIJï”Ï$&ÝŸ9ˆjx×ÈNõz®JÔzd¼1ÈêBJ;Tî‹#³w&][–ÝÀû¤C¼3z½(«ƒè‹!Ä]°Êrd'X½eQ¡Ò§,‘;U__]Hi‡jùj…„4š0²ðH!DËÏ$Ú! ™&Dõ’yZIIIÚ=¡‹ÒîY fÉŽAi*yMkoÊË:èWËr%B¹J•Át Wäh…xþ¬Z¤Ê%©¦ÄóaU§–q‘m<¥ß)¢£‰˜Ååg~––]Ž>¾i'b¾‚uÞ‰®žåê´.×sãâ ±ªé@";Áê]Ž$æ.‘Q€ƒ”%%¥ªå«ˆ ±{6aì½âÁ”’š”¥A¢ GJb=Tî”#O2Vo‰U å–vsÕ’ÎÕ…,íCVÛ:PËÓ 9µˆX Üä܉rî Ú8$ÖCåN9²´Nñ}F Î2 'âÌ¿£gÜñ«ÞÙA†ƒî²Ä`—DR¸n<Þ?ô þ•fbV?$È-©2 ˆõиGŽ; ² ›‹IVã0ƒDi[”ÌüDµÈŠÌΙ”ˬñ^$»bjòIî.åv“ÍPë¡rïÙ‰çóì$c ùeÿ³ú`¶pYäxSÓ#ù·k-âéÈhÈÀ£`™šä”@Z‘S2Wä–8l€IÁ½¯l)ÛUõ÷=Èú}ûêFUÁ3ë¡Z¤©S»ÚáÝóaU¥Ác‘õòûêõ`”¸ V¹SŽÌ»A¤DTú(ûÓi8ñÈ_½á[yU”Lý„4²ïFG¥òäC* Ryì$™tB¦ Q½ÞwdÞ &XÓ ïOI`äþ€Ä.÷gK’!wÁ*'ø·Ëk²G‘òäS«Ü!ž«–‹þ!&¤F¨ƒ8íh›Dî(!òó$4ɉ»`•;åÈ“`õ=fLU5EfäAм#Bf†¢z}íÈì”I»B‘S® £ˆÔŸA¢Ô(]£J:‰»`•;åÈNÆ 9eKÒ;ysŽí$árv¤^‚ië7гX>ä–+²‹MI'™FE5mId'†«!"Ûƒ„ǵcÔ`П/r=AøšfÐ0è6dš*]^|=xäFÓ‰¯Î¤¿ß„“¼‘Õ;‘žðNðfôƒ…lé &%¤9)!Ó„¨¦Q‰ì$áÞˆUPÂâoi£ô÷‹ÃÏR 2è—•$– æ 9íA¢œ6È]47&ž=«Ü Gv⫳ªÓ<±H“óÉIÎ_H¾yUÛéY½o’ï„:íF¾Þ^ÞãIn>†Avý)é$Ã…ª)<Í ²§'ž«¦£Yƒ¯ŽJ»dȤ?ß¼ªíý¬»ñ÷×?¿,t\éüÛÆÿÅÑ3n‚Ùè;=HÉNjzIîbNJ|I ç7ö‰û¹–“ötv[Õžò»#·§Øî|˜”j9m©å·uC—x7ð³ŽsϘxg·VäéBTñQ…¦Å|Η[ÒƒD¶§ÂîÕ™ÔpªY‘Ù)“6;©"¨æszÜqPñë‡ã±l’3wÊqœ v‡"ÞÛÌ‚ã4Ý"k1©áT-²"³ÓMÒm³oú!‚røÜ©ù$¥wÊg’92¾9+±|ª†wì$=ÝŽƒÊƒ¬Å¤>ßx‡¸]pvÊkÆ,ÞQû“IäŒ>.Êê 1J†L,Ÿ*÷Å‘àß–E…S–Èý©¬{u&5œªå«}HÒh°Èz@¡—"1ˆ––In.HJ,Ÿª—ìÈÓ:HJJ’÷{[”¼#ÐeiTù,٨ἦWPÚýjY®D(W©Q–§­Ü+*D)œÄò©Z¤Ê%©¦ÄóaUÚA!•Ÿ¤QrMöFˆ»`Õë}GæÝ ó¬óþÄpõ,¤u¹´ƒ¬bå2I•=ªÙ Vïr @â* %7HiR?ªå«ˆ ±{¶]ì½â‰”Bš«AV±ò ™¤ÊÕŽ<ÉX½%V”;qäAJâÕ…ÔjùjòÛe“l» áù[EVà2ˆßud ·*£ÜýOÓ ƒ»qF§ÎWn¡ÆXHq‘ñž’å9#’w‹h©ä*ÉMN QNˆ7oÎLÒGeêìíS”ëf&'¤'9 BTéQ½‘4Œ@»Á]=ˆ¡šQ0Œÿ¸ëÿâ|#ºŽŸƒÇÞuj†[bYšàFí–$–ÙCSÆ%3Èßþ´%;ù'ÆÏk gy“TÞ&­í <’l¾ö4L(j8Ó\ãQ2Í>‹¤.ub“ê¢Äò¡rÓùœ³F>]ºwŠñÈíœt„x†¬ZäÌÞ‰ô„Û€7£ßø•-Ĥp€Ô oJ‰åC5Jd' —“ˆPë$,þKƒÎÀ“{ËÏIà)I,UyÛƒDyÛ wÑÜ„X>Tn#;ñÕYÕiRÙ¤ÉûÉIÞ¿Ï™UË)Í@äý%ùN˜:íF¾Ã• oú –øv9ˆ9Ñ©Hã S‘_Uéª÷‡ìnÀWGõŒ]2d²|½qØé¿þÙ•Ùð=ŒÎç—f§{í☸©‰ßÆAÌI‰Üçë3ö‰û¹–“F½™«õoéÉù-ƹŸ¤|TÛiûÈŸµuCŸx7ðÉÆÄÝ ·¼I¤S2]ˆ*>ªÐ” P[HÙ¨zæ~’NÕ&2Ù.§LÚì…~‰ R˼9Hª²§Ë¹ó –MrfâN9ŽÔåPÄ{›Ypœ6¿s^‹I §j“PþÇ)Õ’ÛfçóK¥:H'RóIJï”Ï$&Ýš˧jx×ÈNõfU=Y‹I}ž9z<‰ÃN™`͘Å;êz’þíÎèÄ¢¬¢•^ˆåSå¾8²ü¶,*ü¦,‘;ÕÑ’ORéھڇD!!扬”u)ƒhi™ä–[\ˆåSµÈyZIIIz{9¥·ÛÛ@&E€š%;5’eZ{J^Ö.Œ,G"”«T r$@ŽÆNˆåSµI•CRM‰çêN­Þ&UšÈˆ’k²7BÜE?ÛJ‰Ì»A$æ+Xçý‰áêY$Hërh1Z…¤ÊÕÙ Vïr@bî%7HiR?ªí«ˆ ±{¶Tì½âŠ”Bš«A¢Œ:BÒGeê<ÉX½%V”[šÇAv‹WòIêGµ}µy›ÇÑ`˜ÒØ»E´Tr•€ä&'a('D[E%飲GõFv‚ö)Êu3H““Ò“œ!ž3«6Ù‘Ù;‘0ïÚjœç3õêÒf Òê‡9- úá2HϯÆsÜIMÜvL²›Œ$JCsZÕ&;2;gR.³Æ{‘ìŠZG@B>ÉÝ¥ b²BÒz¦Kí“ÈNO—“’r“ȨΡÉêBj9TÛiÿ’†9©á®“Àí2]@fIi=!ëÖ$g¤Ýr)r”Ôr¨–£72{dR®^*»ÎvU­)ƒD©D omò ™¤ç™WµISïvµc7<VUx6Ù]‰¯^Áé Ó«Ü)GæÝ R"î›(ûÓi(òÈ'_½Qµò ™¸‹~ `Ùw£ã¾òäC* RyÜ$™tBJj9TËû™wƒI…¿ÂûS2•󻜟A,I†LÒz¦+ÁZ]n w(ò8(ÃUN‚’ZÕvÑ?ĄԈû&ˆSÜM]*H®R!ÙÕÉ3bùP¥GU´bõwšªj4&Íȃ¹¥”Œ Eµ|½‘Ù)“v…"o¹&ŒIR‰R£@Þå ±|¨Ò£z#;iv/‚»zC'4£` ÿq×ÿÅùFt?'¼ëÔ ·Ä²4ÁÚ-?H,²‡¦ŒKf¿;5ühKvòOŒŸ×Îò&¨¼MZÛx$Ù |í1h˜PÔp¦¹Æ£dš}I]êÄ &ÕE‰åCå¦ó9g|ºt ïã‘Û9éñ YµÈ™½é ·oF¿ñ+[:ˆIá©AÞ”ˇj•ÈN.'¡ÖIXü—'÷*–Ÿ’ 2À R’X.8ªò¶‰ò¶A ±|¨Ü Gv⫳ªÓ¤²I“÷’“¼!ž3«–SšÈûKò0uÚ|‡+ÞôA,ñírs¢S‘ÆÞy§"'¾:«ÒUïÙÝ€¯Žê»dÈdùzã°ÓÿüýÇFÿ‡Ñð=ŒÎç—f§{î"HNNjZåd’±ò!÷©ŠéŒì¤­Nl«ÚêÖvä¶Jï^IN§jûj©¸i¬ºšðxw‚íoc©ºq%Oo¶òä’jz—ÈNP¨}þÜ*$²­ê¹¼ )Õ&;2{gÒf/Ä»JíÓ厃j^?$˜ä“Ñõ™ä,䣊éŒì•:QµyÖ9r›_>¯Î¤|T›ìÈìý%é¶Ù ýAÏ|)½Óê“ø÷dx*¦3²“´z³­J«Û‘QçcÕ™”Ê]pdvʤ£ËÊâ•>™DÎèÍ¢¬£d(ä£r§Ù‰¯Î*vKYÖê«Öî|˜”j;m…„4,ÚŒ€%¥´ ¢i’›ËØA>ªEÞÈñ‰“’’ôô{[”žŽA—¥qdÉŽ@9%ËôJ»À—J–CÊUj”°eµ•{åBÅÊ“òQmR娀TÓg<%O;¸×ê«e¥{äQ–MöFH¹OÕòþFæÝ ó¬óþÄpõ,¤u9´ƒìò•âI¦ QÙ}Fv‚Õ»¸‹Lz2Dk «3)÷©Ú¾ú‡˜»gÛÅÞ+Þ›”&Ф| ²ËWŠ'q¬²ûŒ<ÉX½%V”;qäAJâÕ…”ûTm_íCâ&m´=¥-ï“D´]r¹€äö!QNÈÓN¸/V¹wŽìMW\PÊ %qæÿ’æ_ÿ› hL~þÙ1Ø%‘®—<û®W—¦cV?$ȹÑO”»fÝgÜIMÜ„L²Œ$J{£¤ÆSµÉŽÌΙ”ËLÎ@²+jÅ ù$w—Ê3Èl—K²) Dç^E¯ ‚ÿg½„Ñ#{ÿÓNPd‚GŽw\)”ÀR”Íb¾XÝÙˆåóÖÏn$cµüŠý]ß;@~¶ƒ‘SóM o“hÏZÅò’>Ëž$ÑA'x×%ÍX.¤99ÛAŠœ­NÕçqGf×L ~-•÷!Gü+1HZ²«K '1¬Z¤énħûcù°ªÒ ³Èê+lõz LJj8Uæ”#ón)/Fýé4úXäNã‘­ÞЄÊë$Ä\ôcÌÒȶ/†|óæ£$®n"½9§(‹™³¨>§ÑŸd¯e¤b„*¼%a’ۺܖAb’ …\*óÅ‘`õ.oÈtÒ›a­r„ÔKµ|õ‹D!5àñâ½£Íl¹£îHÍÄ7ÉPÈ¥2§y¬¾Çš©ª‘FŸy"¯z©>_40‘S#m¼Þµ=¾È¹×LƒŽ‘„aH*Ò AªÈ®Z©]äR™wŽl¤a¬‘›0H“›“ô§Bj;U‹¬ÈìH‹è<ÞÍ0àðHÙ å"N®!È.Q©]$œªi]"‰¸P"Š{¸±¸ñ´C²€¿M3h˜Yt2M:%Ó4ô‘Ô¥ ¥~) §ÊLçsòùté.@ö\c‘Ï>`á8…²}Ь™d“?ÛdOxFØuw˜_dï‰rÔ ÕË‘( §j:’ÈFæâ,J¸1½Kk. ©â3¸B’cÙ$Ùƒ‚9FÎy ç âŠæ&$œªEšœ3HHJ,Vušcir@r’ŽUI;UŸ÷™wc“ì&¤Nû“ݘMøÙµhäs÷™4Îð>ÍLe¯ÎªôTw‘ÕiØê¨Ã¡K†L>_;;ýýë¿Ue#~2£«úCó–ûvqLƒƒÔħ1H < ĪÎÈFuyñÍgU‹Ü¨„ÚêLr:UËW»Hàßyì=Ôê&A¹NÜâÛIœœÆ$ÒäRMïÙŠvô¢é^"Gª¤9¤\ªE¢ÿ‹w&möY¼¨Ú2£’êEÖDjùdt‚Qrr©B:#A1÷ET µHä†*\du&åR-âË_¼SuqqöYˆà È27€”ÞiõI¢t‚J.UHgd#‰ú>S%ê -2*ð²:“r©ÌGf§L:ºª,Þ õ9ãé ²:HJ¯äR™SŽlÄVgH;ILYÖêTks:I¹TËi»HâÓh¶h3<–”Ò2ˆ¤I´Tr©>²#‡7NJJÒîýL”vw¸€L¡5KvÊ)ùLkÊËèOËrI|yJ•Av/—äh•\ªEª\õËGÉn(m­N ål4Êr”½RÜ©ú¼ïȼDB~|ì¼?Á?=Ë…i].í QF%!Ó…¨¢;#Áê].HÈ]"£,{)_BŠ;UËW¿HÝl»Ø{ŹIiñMÊ× AF#!æ‚UÑ‘'«·Ä*â¤Ádµsu!Ūå«]d5˜³ h{Ê7r h»äqÉí"Anˆ¶“JÌ«Ì;G6‚¦+¬)$'”\gSS*i~Ññëß¹@Æäç—ƒ]IþqxäÙw}º4ƒ´z/÷D¢ Ì5k¢;ãN‚l¼ç&d’Õ`ÌÀ AÚ%5œªEVdvΤ<1ÊHñ Z1@|>‰ëRy‰²BÌ«¢;#±|ÞúÙd «–_±¿ë{ÈÁÏv0r r¾©ámíY«Xþ22°ìIÝt‚w]ÒŒåÒI𓳤ÈÙ ©áT}wdvͤà×RyrÄ¿²ƒ©% E‡^!æ‚U‹4݈QN‰åêJƒÎ"«¯°Õë10)©áT™SŽÌ»A¤¼Aö§Óèc‘;G¶zC*¯“sÑ1K#Ûnt¼òÍ›’¸º‰ô朢t.Bf΢úœF’½–‘Šªðn”„aHn Hèr[‰I2r©ÌG6‚Õ»¼! {ÐIo†µÊMR/ÕòÕ/…Ô€wÄ‹÷Ž6³I䎺#5cß$C!—ÊœräI°úk¦ªF}fäAм>Bê¥ú|ÑÀDN´ñz×öø"ç^3 :F†!©Hƒ©Z »j¥v‘KeÞ9²‘†±Fn MnHLÒŸ ©íT-²"³w"-¢óx7ÀÃ; e$”‹8¹† »D¥v‘pª¦u‰l$âB‰(îáÆâÆcüÐÉþ6Í afÑmÈ4éX”LÓÐGR—J4H”ú¥$œ*3ÏÉkäÓ¥»ÙsEn<ûx€Q„ãlZÈöA³f’Mþl“=áa×Ýa~‘½$ÊQƒT/G¢$œªéH"™‹³(áÆ@örü-­¹€¦ŠÏà IŽtd“d æ9çA‚œ3ˆ+š›pªirÎ !)±|XÕiŽY¤É]ÉI:V%íT}ÞwdÞM²K˜:íOvc6ácd×¢‘ÏAÞotfÒ8Ãû 43•½:«ÒSÝEV§a«£‡.2ù|í8ìô÷¯ÅQ1P2b«ˆ8ߊE2®ÜÜ¡QDúKÜ"шO ù$þRùxF6‚wÛJèRáµ·=[‘Ñ„"« ¹TŸ¯™•/v¼œÑ¿Þ'A©öëY*¼íé$¹5É·¬4É™‰ùb•gäIF>ݳ ¤gÏ‘;:ïÙ»™¡¨>²#³w&x9}æÝ@)éVÇWx’VƒäâƒäÌÄ÷SeÞ9²äcÕ©ðÚÇ,‘Az–Õ™ä|ª>²#³÷M’C<Çw#9<åžo >7Z}×ù&(ñýT §Ùâ/*¬¼Di^Vg’ó©Z¾ÊEœ’ö”–Å;Þo$2ÞødõüÄ$C&¾Ÿ*sÊ‘Øê¬jOs)YÖB+²äÃ$çSõ9Ý‘Ù;5òfx<ôRZ©­òâƒ„Ê ñýT}dGž›Ò’™‹ú¼ì @‹Â çC²L÷{à!õIö¥Ì 9,Z†ª+*V!ŸÄ÷Sõ‘Ùv¡Ìÿáo,ŸƒÔ$k¡,ÇÄú’ž$C&ùR-ïõ"^HHR;ïOÀãíù‘$f~È ½p†BÂ¥ò¯jG6‚§>wQ¡ð]"£Ç.«3É—êóµ#³S&CªÜPÐÂÈÝ)IîÈ._–!“p©ü«ªZ*#J®“s¤È¹ƒø ç.$_ªéB"³Ó—Ôñ šœÐ>ï“„Çk‘qI‰Ç$#åkU¾,g&æ‹Uæ#A>Mž$¸‹Œ²ìä!b²ê#;2{'’Ó(»QŸ(—e€x€ åu¹ Â÷…TR:ÁH¤FÖ€”õÍ ;H¼²™œ¨>²#³i&ÓnåmHÿÊUÄŸ$g¹’ »8YÎLÂûÍV™wŽl$?-ËóÒk•È(ÃqŸC7Rê?3¿ïoÄ=]þl—˜<<Þ{ö]Ñ›Êùƒ´.E¤V)UBÂûÍV™'Ž<É»:©@‚»H ¼Ö˜Ì‚ô:Bf΢úœîÈìIÁ<'· #‹$g⛜ù AÎ\Hø¾i' 2 ˇU í${޲ÕQ‚ü>…˜ V-ïí"á²Ëåh’†ÁwGá¦ô¢q8Wù¶ù_ ‰Ý >ýµßHB£¡H!»lŒr>ó«ÜRå¶Lä¶IïgêMNd? .ŸyêQÒ÷–2w¿EdGR²jÕvºGöΤbûª|5c’ÞÒL:ÈéX^!“u>¢JêDvÒ°É 2I«]7Ë@#Ä+d•»àÈì”HKxlä&ÔA[“G´YyvÜ¥B&îbÜšD^ÙÏF´T“ì!cE1¡…¬ Eõú¢]‹œ:iy’ö«ÉØ{Àä=9{”ç*´ky=…º–×ÌÄ}•{g“ÈNmDøöiÕû~ÆÍšÿîƒÞùÿBèì’HO¿ñ~åþ‘Aû‘‡´C½¤Vi=“ìfä¶™¸mV¹Éqïk³áoÖl2Ä hI%((™fÐ‘Þøºaå‘îš’‚·OîÈéB^.wÄ*7Í‘t,62†NÒL"£»f= !-]ª×é‰ÌÞ‰ Üå<ø4F ågE9 ÒÊ>I–N%d¹Õr*‘xvVeZu^R5U¾7&%-©hûÜqÙ9“þë©ÈY-CØhaòäF]É dâì^¼$²Ÿf» ÄëaH¿ÉY<û¸W(%-]ªí½Hbb¡`Íêt>&¾+“ôÊ7u‘À·YÉt¡ª—œÈó4éJ¼VÔ›œʳ£#—! iéRmïõCVöÿö‹{à öNN°°íw.~‹þÆ&‰…gK%ñ£ŠùŽì¤ÑLè*¼µJd¼©Jv!ÕëëDf§çóH˜ÁöD1IGË]TxÊML¾ŸIJíR3÷Ū˜ïÈ‹Ìzvç_*aü ÃÛŠý*²w!«BQ½äDfïL:f0ãÓx dŽ]$ߤï×Áë‰IjfÇ­rïÙ êÙ¯ƒ«ðìÄ#ƒ “ìLÌnÕKNdöN(ä5•ý!‚×!Êl r¦Ä™}’k’Ç­šN5²“LS¢«2uhœ©C—q³[µ}Õ JúšÌØ;^ƒ “$È™ =»Ýs£8n•;åÈN:Í…®êÔ}7©&¹ð>$“z˜˜Ýª×é‰ÌÞ‰Ä26:ŒˆÖ/­e’3•®ä“èì($Ž[õ’yÈJÊ™]0.ål’\f—d›ßS`00ª9—º*ä°££f®Ô¬’Ý$Ž[õ’ÙO¡®ÿáÏx=iEr¡-gF&E*dbÕöÞ>$ Ieot>)þJäGj’3^®ì g] IU|T'²“ò«6DUhâôÈhÂ{œ,ã&öQ½¾NdvÊd¬a½W¬‡r7@Î8éÙë=r IU|TM[e4<.Õ$U¾w˜ä{bÕr!‘ÙéİâüRzGN' c—üº@BQ1*Jûš$É’%Ä}±Ê½sd'Fƒ¡«Ð–K—ÈhËA2!^!«^r"³w"%ü,f9öËrY&ÈHÒ^'{Á ½ŸNÊA˜…´Ìº?³ÂN22g²ŠÕKNd6Í›Òh| %á¯\¥IâMÌäJ‚œæä53IÏgŽÊ½sd'öë&ÏÈhM"£ çó= 'µý½ê{ÿ¸·ËK‹Ø ’øn˜MåûéCšHkÒª„¤ç3Gåž8ò"OvR¤ð!5q.œdÖ²jÕëôDfïLê¯$¹†*Š|ç ±Ëw>I’ï\Hz?Óo’d›$%^«@úMÎåÙÑ‚ƒü>…¸ VmïýC’ñØD9ŸŽùUn H©r[& r[„¤÷3õ&'²ŸH—Ï<õ(é{K™»ß"²#)Y5‹j;Ý#{gR±}U>š±GIïi& ät,¯É:Q¥Gu";i؈d™¤U‰Œ®›e â²Ê]pdvJ¤%<6rê ­É#Ú¬<;HîR!w1î M"/‚ìg#ZªIö±"ƒ˜ÎÐBV…¢z}Ñ®EN´$ߪÐîÈNÚ3Þ€õ;8‘ñr¤*Ù…´[õú:‘Ù©“¹»ä‘0ƒÅÇû"-ÐQáY(7±Þ¥ž7°KÍB>*÷Α™õ¬Î¿U Ã"GF1²w!å£zɉÌÞ™tÌ`Ƨ1ð¬×áÄÉ7é-I= 1IÍB>ªÐîÈNPÏzŽ oA6‰ 2L²3)ÕKNdö~H yMeˆàuˆ|&ñ)ñÍ>‰O’o…ù¨B»#;ÉÏ”xTùéÐ'r~:ôÉΤ|TÛWý ¤¯ÉŒ½ãoHÙž™ðd·gn< ù¨B»#;éÏ\xTýé¾BªI.¼ɤ&å£zžÈìH,s`£ÃˆhýÒZ&ñ©t'Ÿ$5.PÉGõ’9¤´& Lˆ»`UÌwäEžì¤IáCjâ\ 9É$ÄìV½NOdöΤþJ’»aØ‹ÜØå&L’ä&q¬zI’-m’”x=¬é79Û•gGcr[„˜Ýªí½HR#ž (çÓ1ÕÊm)UnË$An‹wÁª—œÈñ‰c]>óÔ£¤ïÝ%?5wÙœ”¬šEµîÁ‡½3©ØÉ*ŸFÍØ®¤#4“>rúXŽ7I•ûâÈNö$O&iU"£gs„ØGUã™i OÜ„:h—òȃö-Ï’»TÈ$}Tî”#/ò?Ùå’#6Ñ}NÑ'0ôÿœcŽÐ@v¹ÿvJ¢%UÉ‹ Ñ/f‘%«iÙÏž4£Ù£G|+Ì:Y ÉŸ¨åë(³Ó—Œr­O ™½WŒ]N¾2 g»²\‰60«'Q׊þ&áeÞYÙH¥=É¢Ð÷èaÊ•¶+ËΤø;j‘£ÌÞ‰´ðô}æ#v)“é´o-RŠ4¤Av‹Šþ&!ßQf½ß»Ý(G‚Z<ÛÒÔЋAñWˆ%Ó ²e>†6º–ô”6&% _D¹% §7E(NRÚÏôãíךŽ_KóK'ÐàS®Ã U®&DI̤ø;j™<Êl›HOŽ¢;Ú‘¦2ÈÙ£föA¢´.!!ßQÓ©(±ìi#Z¤hªx/VBŠ¿‚¶Ï­ËΙ´§…$g‘ig2áL{•%ÏÔ¦¢¿IÈwÔ"´u#Õ)±z8 ¤ÝälQ–½ß›–sÁQÛ{ûÀ$»„m¬Ñùdç°WñÍä´©Q’°ž)79:Ãû$M‰eç(r“³WYv4ä´/K2€){ZÈÞ~G¢Ûä»÷ÆV1k­ÉÁîw¬}“8~ƒøÄ3äEâåê­l¤ÒìçßzJ)¢ŒoA(’]H½£–¯£ÌNÏ =`ÖZŒIš¸k…FŸn’åE ’J“š…|¢Ì;+O2êÙ½|FôÌ8ÚnÏ~Ó»ô‰Zä(³w& ³VæÓèø&ȼ:I¼IÛ_«Ä©YÈ'ÊÕ[ÙêÙMߢÐâ÷‡Á”Az–ìLÒ'j‘£ÌÞ©±¸8§¯DÐô½Ì gÙ¹&F%Ÿ(Woe#‘¦A‹ŠÔxM9Rãõ&éµ}•qJÚœµØ;~:™AÎìgÙó=*ùD¹z+i4éYT£6»IÉ’ m?d©‡IúD-§G™½ñiŒ`t=^ZË gΜÉÑiPÉ'j‘£ì^3Z@¿€—³rQ¤;d›îßS`ÐÑü’œKA~•-¨Y3jVVœOÔ"GÙ½:¾ë3VÏEj’\hËQfŒAz’ ™¤xGmïõC¼æTFçü“<¤9SãÌr&Ëo2]H”·²‘„ KT¢A2¼¶=%Zv&)ÞQË×Qf§LúœÁØ{yj‘»r¦DË^îIRˆ¹à(oåI¢£™pF R佃ø ï]HŠwTη2;52çψ aO’“Œ]ò×â’™PÚ× Av'!æ‹£Ì;+É47Z2¤&ÊpìäC&$ç;j‘£ÌÞ‰$÷då4êå² /¤½ ÷‚Y¢/Ñ F!5r HÙÏLÙAzäÌBr¾£9Êlš  ^ùRÀL.Wi“œåJ‚œæòMÌGùx+ÉOËòy鵊2Úp”÷ Ä*ä¨åô(³w"ÙcWr«Ü Ö¥Ô* Lˆ¹à(oåIÞì܇”À¹@b HHÎwÔrz”Ù;“ò¤ w#Ç'$¹ ¾ÉM$ÈMb.8j‘ [Ú Ñ)±z8 ¤ÝälW–ÙÉm’óµ½· BŠÇ'ÈËù4Lµr[@R‘Û2ˆ“Û"Ä\pÔ"GÙ¿:¹É3o=JÚÞ]â[s“ÍIɬY¢¶Ó=ø°w&;YáÓ(Û•t$š¥œ>ýMÂ'Ê|±²‘Š=IÆ“Ajeôâ(cŽü‰*þVf§DjÀ'HnBé´K™r§}˲ƒÄ&2 Ÿ(sÊÊ“ ûÙ“fÔ {ôˆo…Y'k!ùµ|evú’ñA®õ)!³÷бËÉWälW–+Ñfõ$êZÑß$|¢Ì;+©´'Yºñ=L¹ÒveÙ™G-r”Ù;‘ž¾/Â|¤Ó.e2ö­EJ‘†4ÈnQÑß$ä;ʬ÷{·åHP‹g[šºº`1(þ 1@¢dšAC¶ÌÇÐF×’žÒÆÂ¤$á‹(·äô¦ÅIJû™~¼ýZóÏñki~é|Êu¤ÊuÁ„(‰™G-“G™méñɱóAtG;ÒT9{ÔÌ>H”Ö%$ä;j:e#–£"mD‹MïÅJHñWÐö¹uÙ9“ö´ä,2íL&œi¯²ä™ÚTô7 ùŽZ„¶±n¤:%VG´›œ-ʲ÷{Ób.8j{o˜d—°5:Ÿìö*¾ƒœ65êQÖ3å&GgxŸ¤)±ìRnrö*ËŽ†œöeI0eO ÙÛïHt›üýóߟ1ÿ‹­bÖš“Ã&Hh î hi“¸EB1âÓ"®)Áú}fé,Rפ7¢‚‘b—yë ó‡"¹˜ÄOÔrq”Ù—üû‰=`²ò¯ÓIZ¶ûŽB[O7É­I=_ê&5 U¢–÷£ü’Qu?[ç=;U2êATÏ79:ì”IÕÙ{G¿·î¾u@âMZ RˆRó!Ë×ÑYÙ­}ï(4ëžEYÈÌortØ×!ÉÅ95ý#‚fíùòNqoöAÞIï­‰¹`EâšÙÞ÷>ÈÛ·N\íqç2ëá¨í¢|ˆSÒæDÄNÑ\å¼&´=¯)nWxÈòutikúÚNÛj}LJe´â%»Y!G-_G™ñiŒEdÝ£ïJäýVòAB啬gÚM–ò{ Ý)Iï”¶ƒú¼œ @k!` mºOAÇ—!ɹÌd*[0úiæBMÆŠ²ž©7YÊë@º>cõ\¤&É…æ÷ÇŽ¤'©PÈtÁQÛ{ý/$¤9)Ñùÿ$ÏŸ’AÞIney§½U¡éB¢\¸•$|–»D¥5Üme´ÓØ%»Y!G-_G™2és.bïå©EîÈ;¹íì…š•UÈÄ\p” ·ò$Ñ­9mE R佃ø ï]ɨP¢¦ Qf§FòTÆ(ÚëÝHÀ($] .)ñ˜Ó¤} ²Û—ÕÌÄ|q”yge#yÍr; Mxá­99ùH ± 9j‘£ÌÞ‰$÷då4A.ËñAÚër/˜% 1×$:Á(¤FŽ)û™ð[zäÌBfqµÈQfÓL°”ôÊÇæd¹Jƒø›ä,Wä4§ðêb¾8ʼ³²‘ü´,Ÿ'^«(£ Çýz1‚ÙsÖ‡ùiþŽyìvù{\fI=ˆïŠ™RÞ?~¶.M?k•V%Äêå(óÄÊ“¼Ù) $¸)sÄ “Y³D-§G™½3)O r r|B’w⛼óA‚¼s!æ‚£9Êvñ‰N‰ÕÃQ í&gÛ ¯‹âäïSˆ¹à¨í½}HR<>6^ΧaZ•Û’ŠÜ–AœÜ!æ‚£9Êv MžyëQÒöÞ26´Id·Q2k–¨ít8ì FüÕÑi”ˆýGzHÍÒ±@NDz …¸;Ê|±²‘ŠmG‘AjeüŒ2б 9*»[™©¹ ¥ÓeÊö(Ë›T(ÄÝQ攕'Aö³ÿ„·ž³#Me¬3´Y¡D-_G™¾d*×§„ÌÞ+,'ß³kY®D»–Õ“¨kYÍBÜeÞYÙH¥htA*£©‚Ïýø½õt¾ãÿ1„Ðw@4Ø%‘ž¾_ù|¤Ó~d2v¨EJ‘Ö3ÈnF¡|È'ÊLö{_åHP‹gšºº41Èwˆ%Óÿ³]&I–¤0Ý×)úaÌÃ9úiÖ»ºÿ¶€;‘«¬ÿ ®Ïƒö„œ¹ -cù‘î⪒„·OîÈéB–®•‰fÏFC©Y<£»F­“ü±ZJgÖN¤Ç'ÇÎÕ莖Ÿéä,H3ú Q:•’ÕT*žXt¶Š´ê,R4T¼7&!ù6Ú:·_VΤ=-$©E¦eÈgZ˜,x¦®ʇ|¬¡5«©N‰åÃV í&g=²èý^¡„äÕÖÞ>$0É.aÍjTŸì&¾ƒ4Çw÷"î%å&ÇÏÐ>ISbÑÙ ¤Üä,LáÍ9¦.2É«­´|ÈŒþßîÿ±Ác[óƒ¬g…—ÞI?ƒøÄ“$¼Óï™åg‘Jóž FJ)â¯B(‹IüX-Ç3ë:5‹=`¾ZOÇ$ íÜ5±BËO7Éòm ’J“œ…„*VKûñü’‘OçßJįÙíén*U2òUÏ79~X)“†i*³öŽ®.é$ñ&m÷yËÄÉù¥ëøYÑwW7+ôðžÅ³$Þäøa]Ô'\œ³Ó_"èá^&@3Ëèƒ\óSÁ~‰4¹ÍíätMó©kÆð!3ŸxÏ„â™u1isZb¥èÐN¦;3§Yô|ÏrD–®ãg‘F“™)mÔ7)Y<£C‡,Ñ…Ì Ùjé:žY)ŸÆÈDÒ=Ú±4€AÎ\8ƒ¢Ó›’u¦Ýdy~‹Ò’t&83èðR€ ×BÀ®Á‘Rt KIêR0ªÛ‚áM#j2–œu¦Þdy^UézÆò¹HM Í3Ê80HO’¡©‚­¶öú!^HHs€¢úÿ$/Ë)Èðft3Î …LbåÂíÙHzJîb•hæ3Ïh§{ ‹áCf†éžÅ3+eÒç¸ÄÚ 4¹ g ³èåú„˜ ¶ráöÈ÷®dd(VS…xf¥g8Â’1WпDF!ùu¸¤Äc|“ö5H5Gˆéb+ÓΞdÖÌ M85ñŒÖíä‘b²Õ"4’v"É=ÙG©"Èe ^ H{@î“D&¦šœN0©‘m@Ê>ÞdKYÈLN¬9žY4ì*½rRxжAüMr–+ ršSxýbºØÊ´³g#ùiYž'^«xFŽû{èÅfÏ™æ§ùóØ­òç¨Ì“zÝ3¥|ÿøÛº4ü­UZ•Ë—­L{žäNV Á}H  $™l„ÌœÅj)=žY;“ò¤ · Ç'$ùÎA|“ï|Ýj…˜ ¶Zäx¶jÄ':%–[´›œm'¼*ГߧSÁV[{û ¤x<6^êÓ0­ÊmIEnË Nn‹SÁV‹ÏV &gÞ|”´½·Œ mÙm”ÌœÅj+Ý#kg‚Q¿:ªF‰Ø¤÷€Ô, ät,ËPˆ»­L{6R±íÈ 2H-⣠4B,C¶ÊîöÌJ‰Ô€ÇFnBé´G™çN{”E‰M2ân+SÊž'Aô³ÿ„7Ÿ³#MÏ Ygh!3C±ZºŽgVú’é¹>%dÖ^1`9yO@ήe±íZ–O¢®e9 q·•igÏF*mD£ƒ R1M/xîÇçÖÓyÆÿc¡w@|°J"-<}åóH§ýÈÜtÚ¡)EZÏ »…ò!+Ùï}m¤#F-ž húÐ¥‰A¾M SÍ =!g.CËX~¤{€¸ª$áí“ûrº¥+äce¢Ù³‘†ÅFÆÐAjÏè®Q+Á$¬–Ò㙵éñɱs5º£ågz9 ÒŒ>H”N¥äc5•Šg#­"­:‹ ïIH¾¶Îí—•3iO Ij‘i2Ç™& ž©+…ò!«EhÍjFªSbù°H»ÉY,z¿W(!ùcµµ· L²KX³Õ';‡…‰oÆ Íñݽˆ{I¹Éñ3´OÒ”Xt¶)79 SxsŽ©K†LòÇj+-2£ÿûg´²Ó?±Õ5mn‚Îjª‘P>Ä-ⳟqQ ¾)¯~©k¤)vë·¼a‘à?äcµÈò¬J‰ô0ç+ÖŽoßÏöƒG Ý$•&ù0qý%Û‹zf)â5ÖKa³Î¿üàï¼çèJªYõ|“ㇵ3i³7et~{S¶¼>Ht&S;HÍAr>g^íJ¼ÆZ¤a&Ìâ¿g‰Îd©8V¬ëäâš7AŸ÷ü-òN€o,%ãÎOù[æ3¦ô"^c-×t·­â𠉼ýxÇŠ«ï …|¬–öåY«Á¤­Ùrô~Äs^3áŽÎÄê“×$¹s>g–®ßÈŠµêƒw&(ik.ÜVmuh&%KtüOÈ’³ÕªÆò¬õ!âã˜Ø¨`ÏÃn?Ó1HÝíg2 òΠ+e:óÊú•´ÓD_ÏÝ陸ޔ¤w }¶¹Mn™`ú-˜æ$…)˜SÕm¹:š+L¦Žféž3KÑ— fMRNôܘÄHO]H½­–®ã™• iM¥›ø'y~¥yçË]ÈÔ>H,œ³œqQÉ«b-’ž’»X¥5rnÏè˱K>Bêmµ”ϬÝHš*:&±øVÃH‘¾RËM®'Ä¿~r|Ä]nV1N¨—D·Ìá hQßÙÇbgnÃÓÌÏ!Û«&óœÊ¨1 œü®@\Râï>%dÖ„ú]¿Ï¸ËÏ’}b-’×$¹­Ð£SÏ™æ›Po?V‹Ï\ "Éá¯Ü“XŸ(—k€xíT üëC»Ÿpêc•aGy2Ë5² HÙ™L·ƒôÈ©‰«¥ùxæ*0Áf+×%…§xé8 WçRâ_¢PθËÏÒ~b-bù°U~Z¾I¯Ub¡GGy…ÄÕÒ~ßgÜÇ‘þ`=ÙËhž>£­c1ú9’AzóGò8°,g¬v?,¹`Ý*,¹D¬dÒ¨@®f¦Ä¿d73Ÿï3ó:(‰w,#hÐ^†œAª B g²|˜Äx[¥|{fíFòPQ&¹¥ÓB¸ˆÏòœ•NëŸå#dÖgLä²4ÊS*$Þ±&A†Éí'­åIrm6ô÷sòç ‹"·@|°n&?ŸµúÁ(çä)Áƒp‘«% ¯ŸÓ¤üÇjVBI¼c©Oiò–ƒÔ$£ȵ² Iù¶ZäxæjiO‘”§?µI7$Üä¬u–“ðú9ͬLh¿×C‰5 ìbÔОå  kƒ”/“¥z;¥20hXë¦åÇU¹% «D—["dþ‚‰rKäŒ)ïXFЊuâ¤Ê-Á*ù0Iù¶ZJgÖN¤Çÿæjt÷Ä,]äê]Bf5@®(g¦®_ɉå^Ïgñ4b²U|r¿IÑàñÞü„¤|­Z¿\& ۘܞžŸ’äÅɺ. ±zåÙó8e>cª~#'–{=W§ä¶ËäØr¢û²¢,Ppìh*¢Wíÿº“¢ fBwõÿ=EŒJ;C¶×žÌw|ÚÑ'-„;çéWD±²nÏÜŸCj(XÛu¬†€ÕŽoØ"ª‚JVÇ9*˜¢?³êúE0´=tíßk¼ëô»Ü‹Þ?òZh4Ú¹0ÙùZ­Ê³rÝÿûóß×Sý*ÉÙM°zÊØºHjø¯µH,<€2Yï¸ú1Ò_áÞƒì"­5ñƒ·æýÛ¤ø!+#4ìR¥Dfºg=®OBâÏFñ¤´!ù0YÛ„!Uœ3V©¨±‚ Çäo)ãû1rt%}[ÍêÉñõ3ÁÒU+wcÌzIüàõˆI¢3¹ké5IÎçÌS»’¨±Œàex_ðd˜f•èL¬ŠcÅu‘Žà‹Ë…ÿî_é™Xo5 S¦Q!·B-¢³'y3%QcÙù°U~µøRÞ§Š:¢d(äceµ•çn0WKUúÝ2k€ä!3ªÝŸê'R:cuý"Ëúƒ7&)Ù²Õxu–H«ÿ’ªä,äceÝpó0EHÌkÆ£†EÈþ+?·c3mÞÁ…Ü q3*yÊúIÆÑÇó z&Ûj \:â$¹M¼É.ïÉü¶Lk‘Æ4Ì{ê¶9ES²SIÑvºçŒUô%ˆÙ‹´š›eîXd‰.¤{+«ëxæJ‰$ì~yrí)Ò$y{I“ß6%wí‹èŒ*gBVòÔN±Œ”«Õ)V…ÐíymSòÒ½•Uz¿K<·`Y4¹âƒëfÒñùØê· F¹ OGœ$ IŸ#RñcuwBIö±6éWò–ƒô"£ˆ[Ù„”ê­ŒÏÜ "#á)’öÌ«Q“E’'g­Ûé0IŸ£lñcµ ~=”X7A‚SŒäY>P]ã”êL¬ê×)µÁÀZW¸1£^¡Ë-X%¦Ü!÷´H–["gvEB²µ ¤X'¾EºÜ  ’“R½•Uzíè“Âóô+¢XY7ŽgîÏ!5¬mƒ:VCÀjÇ7lUA%«c‹LÑŸYuý"˜@Úºöï5Þuú]îEïy-4í\˜ì| ­‡VåY¹îÿýùÏŸ1äŽü7 ß÷ {†[·o’<Ù•/Ã&-m²zéÉhjµº¢ž`ô¿Ÿ„c…(]<¼†Ý¢7ORR«C̳ÖN_Wº‡ÙC w§_?KW†'!LÎGH(+ÖÄM\y*U4–|ÿ9ŠÈŒâªQ“äÃ$%µ"’ãn0Áh?«ôªÑ³ø©PÐ,Ñ™ÜÝI9KÎçŒÕ%$h,#ø¶om>V ½‰g(Bn’«Ëüh¥‡|§cðÝ(ëû¯|i÷4j± ›¬ÙódÈgvŽedçÃVø¾Ã‡´(±  )J†LRR+«ôxÖn0n·*ýi÷_›=Wd‘$º°ÉhIr>g¬®/9±¬?íöÇdgÈVPØáI.U¢Ca[“œ™¤¤V§æYûC$b>—†á¿y°h-’K#aH>ó”õ“ä#´ŸRôÌ ‚Ʋ¶@¯’]™XÕ-ÛÀƒùÔÆ´«õ$n›Ó8GÂ&e&I÷œ±Š¾Jå,òuûIPê,u I+«ËBîœÅʈyÖn0Y³öàþä„y¼‰ŸtÕá Ô‘ÿ:Bîþ€E EÏX¥Lv7N,#Pó$¯Ý"CîȔˑá­^’Æn)ˆ9³ô3ŸL9‹Œî‰jƒÝîtðœ°* ìFœ0)pyºIçAi”ž\” o•‹zÖF0iXbäê,"UÄĉšû*—äÅ‘ÎX]Lví'–‘[µ c˜#¥‰ùŽC22¼•ÕnžµDj¼j“«SÆUä Èò(1ØÍY{‰äûž°’~€R¤1˜Då“z2#^<AnÒ"Mn’’á­¬ æYû¤]3tîTÍWÒ*¼äÉÝ,ZD8éŒÕõ‹ô! EÏì ™tZïODFG†·Ú•‚¤þ£DZÂC—¤?ˆY^…ìþ ’ÀópKåÒ0˜Ì¿çç’H¿¡ó˜¬þ§ E¯µ’q¬´È=‰SIÇþÖ¸­`Ç“‹’²\!w#@ŽàíœùL(J¬ÒËHÇŽ'Ÿ'H«ò‚ô.×BÉðVVéñ̵oR–瞮ޢtÓ  H›"f Nð„ìþL¼]Ÿ E‰uãÄz2œïds§¿·“¶Æ2ÿ¾é®Æšøï .¸l&IڵؤÒâ¸ý”kOœz ¹±H‹"g‚óceŸXF ãªã‹ ¹( Y/!ùcõ’Ô~tƒÈÈx­¸=s ŠHjž8ñr·ĉ œ ÎÏÓ ŠeÂ-£ôê7»Aö&Vuß60X «4¦Ò ¸ÝV/]JÒ&GÌbðg‚ócEWZ7´Ìm«A _|rvK¡ü±²Jg®ÈÌXÝäšL¼‡S.Hr)”¤MœÊ™ðñcÄb=Ý™UÉέ äÅùC¬ßòM1È΢ç’ûÂd^9éT»â{šÜ%é!A–J9>~ŒX,ë fÏ¢dgÈVôô!CîH-r·„ä•uãxæþRCÁZÇw«ü·ñbÕ?GÒ&¤šÍŸ ?›üŸørÙ±ã¸Áð~žâ,G¦]÷ËÒш£H€5‰Bà…-+-üúùYÕUſΑ3ZŸ¯IÉ®æãÊÔúÚÅoýè(uŒ0©“â*ù¢Éˆ)›Ä6_}žz¾`]Lc¶íkgÒ;Q#f'9èw#$9½1‘¤µLë[Úò e–ì¡U¶-d5›vâk-²šŽ]|K.Z |åŽæV!¶ìÄ=É2‘wèKÝæV-sFÊÄðYƒxÔiKZ Õ’e¯º„M;q޵ñöF64ÁªV#å}#{²ƒn=®Iˈóž|^2#."†Ï}Ã&Òɉ,c«ð‰üÑdÄ5ìp¤ªÖà«,Eß`Ð%"í4 ÉÓ¨ÊÄt3¡JæÜð˜>kîÖ ³^+’,…öá,y¨‰s¬5" ªèlhRa/R~’šr»å/NÄtRu %3âº&묑ŸÔìiÒ=ÔZžîćH§WÕ lÚ‰s¬µ²áÊNl"bÖ0i5…†ùkh¦eb:Ù&X%s†u“øUhO;!°LsA¢`Ni6m G TFÔ<*¯S¨mÔ‰I˜i6á·ÓI¨4›(™Ñ5©s:é¬j‚mv*µ§¸‰¸+­ך{u¤Š8l†¹êØÅ|G· „+ÚFL'£Ÿ—Ì‘’ø¬Aâak%-ÔnžrA¼­ä&îJkD:,sìjšóXÓ˜dq„êˆ ;ÙjÓɪq&°ÌˆT“’ø¬“ÀÃP‚ÖI<Û IAûC¤ùLZƒ Ëœ M0Q™¢óãÝ‘hJËNPõÛ!Òò²*š ,3"Õ¤gc5ª¹£n'¤Ðý©4cm¤ìZ“¸r#ŠœY=å3M9BJÞ ×0 zvòV—ĈRžˆuÌIŒY=5’õ $d J§/LÊ®å[æDh‚¥,ÓÕ þ°‘ŠÈVÔˆ´«Ü^•̈K“û:kîÖJư„Xè,”o[ÈC"eױ˜ E¢=b¢« ú#.‡§¦¤AOŽì%äï”!Ý!Pb0‰Ò'uz¦t@rØI1t“„$ºILÊ®5²0,s^4IG5Yg*ú#Jˆ*xn'-Y 1PáT2#®[$JH ,Ó=Ô$«e°}Ò ¼0n¤ìZ=R—odC‘äÐèå§¢ùP1‹e/Dz~Š*Ýç²-•7HÂ`R/ë§”«~£Îc²ú´Œ‚¾ÖLÊÒ⠽݉­L2ö·¤‘v<º( ÎÓE!Ò² ^÷Y˘ÀdDºÎ$cÇ£Ï$Eêƒ 9Óµ`Rv­鲬cï$ˆå쎜,eÓ *T©˜lHÏOU¯G¡eL`2²±Î: <¬s²²>ƒ »K3’úOêeº+±&~Z ¶&NŽkÑIT‹c·ŽZv²U/"-B ]’1›ö:k”q®ãB ]σ¥5‰K7²¡HñèV:=s —v²/"-= [$³Ù9“¡Î…›Fil×o;Ÿ~WQG{ –ÂH‰‰jìfã^º˜¸NV1³f—1›tT‹c'E-s]«¨…Ïž>oK!¥5"]–uìŠTÕ®IE?¬t)@²¥KÁÄu²•@’1WvgÙ©‘I÷Pk¡‡ ЋßôMià7`6“:/šÔÛ@™J‡-to@L¢{ÃÄÄÐRI2æÊΠ㬑ÌžI÷Pk¡¤»+RènÄ@w‹ˆ¿ÒÙX–u~‰&`­Ów+üMúEáú·׉ªši—1Wv:Áø2µ~£v`ñ[¿:J#LꤸJ¾h2bÊf'±ÍWîþúx÷ñ—ÇÏw˜ð ü;ÿ×9w$‹MS.9ú|¼<~¹3—ÇOòŸßï>Þÿòó‹î}ñ€7êî_¾ýû‹?þtáÊåÁa×À ÷ø ƒhžJíþ××¬u¨0pËÛÄEòþÍ?ß¾}ñøŸ;<È.‘½ûßþã½<ûá ¾‚æ¾; æ Óž~èÎÀ𡣎·'ï_<`–uÍç#ö3ĉH9TGuHwÕ¢"6iL¥÷?¾ìB“G —ÞÿëõÏoÞ¾ÿEÎxc&^0þâ“”‡¯þöNøëÇ;{ù邲/¿_î\Æ,‚!¡>/%Þ¡Ü&\¸A~‘i©}=ÙÉ×ãqs:„&±m KÉã]'¼uM0ªE¯‰;YÛñèE®ÁÈg­ÖÂF‹çDðõ’‘ ÷_ÙIÈ"G!Ã[%1 …@Q+­P1ãµ™šŸ4 òÉ¢“/­` ƒ¦¦ˆEõ$ƒôgµ‡ò`‰xÑŠZË×Còµ@ˆ¨$¤ÊèœÊjbk%g<µ²|áe#î<«O!綬ŠXîo4µj,]AÆMDK7V”›£".Èäïõ­”åÓjw>¢‚yáÚ\McrÎ:û};E­MË¥ØvG—DDðœY1esÔ“Bó…†?!RÛìEþ}ýôße;bõí¼ƒŒz&ËR©áüÌ*§"ßG¶SKÉÄtÔ6N;‹lgýv÷ù/ÏìÀW)óÒÃñ¾¤º§³ºãFå*ß4Œ¼:©î²ÿà㯳käoÄê#iD·øª¥4¿²³šÍ$oÞ"Æ*·Æ«ˆ¤äD씚 Tμ2+¢aG‘=3’äguàIöÒÄ‹ONòý+w•ÚÝÇ/ ¨ø: | 2§h‚¹Ýd×™QœVÔï=Hëóþ­”ú(Ayú½íW–Ç©èÐ}^ð×)ß"@Ô(LbQE)݈¯WA§©QÇ=dVœÃŽ"{¶$íÏêÀWš o¼ƒV>€ï©¹¿ˆpíÍm‹J¼¾SÒ¡½ŒŠÔ>ìO·§Ì mØQdO‘dûYøÖE—•%ÉÌö=IŽ=Éñ*É»·˜ Pé<¦X¦‡þ©HDg¥‡È hšYä*1Èñ³žÿõLć—ï0µ…ÃÉÃQÑÐàˆ/‡kµ'%§6>|+ÑÝ‚ÇÜÉ– ©IÓB@™Â0C2}ZT‡´èzÍ+¹¥$Še×àÃê|&¿´”ŒdÀ´ ;ŠÐQý•<ãñ߸ô2ÇX¾£ºÏÊòQƬiùÞµ% ·Œ—Áb󭈞}è$ªø…‚÷t ¤À¦MJ¸VS"8à• ¹€E®í”2•U%|È1ý˜W¶ús¦µ²Úœd Ë8Íâ|i£Šñ‹ô.j2²‡jRÒ}õ$’\@§eälYl˜vUeó’5á$ç[—­G™\Ï1—ªµ0ðc ø-5©O;3ßËÁ‘ðÄÈø” MÐ1Ø—uœ£tL‘9µ¡J;ëΞ$†“(o–Ìè KfTpSÛ¶·ÞÌ ¾¬I}‰l‡_›éiw"3µZ#ލ@Ñ|ÛO—ƒƒh˶¥¿;ˆ~¢µÄŽû#-íϰ3üYZzÑŠWÕùY,ľ ÷ªG™¥bZ¹&Ó Š×Ÿu؇o&¼?âw­KntcËÃ',™tŸ}:å ”ºº†éÅyt©—“{z—RÎ.5-Ì.¥dz—R‡Üp EÅÆ¢‚!kÊÓRN§¦…é”’éN©Cn8e`(íʰmcÄRN§¦…é”’éN©C®òrm\ÕNa%tÅ>Ù)mátjZNi™î”:äF¦2¾ONw´jüÄD)§OÃÀÌ“é.­#nxTÒ‘[‡žU4óïNY8]š¦OJ¦ûD‡ cã¡üÍA+>ºþ-ú~Ž¥¨ïh985¨Âgtx=sN™9—3W`ZA]û³Î (ïÿc²Œq„Bº{c ýÈl½ÿu¤ñ«¬MËBèêÓ<‹œCdó*qx|Jy2Va¿>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 685 0 obj<> endobj 686 0 obj<>stream application/postscript Adobe Illustrator CS3 2008-08-05T09:40-04:00 2008-08-05T09:40-04:00 2008-08-05T09:40-04:00 256 100 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAZAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FUtu/M3lyzMou9V s7cwEicS3EScCrRKQ3Jhxo1xEN+7r/MMVVLXX9Cu9MbVbXUbW40tAzPfxTRvbhU+2TKrFKL332xV ZB5k8uz2/wBZg1WzltuRj9dLiJk5iMyleQalfTUvT+XfpiqUz63o0Pm+1mm1MRxXGls9uGeNbSRW mVlkWQv8TkdKLuu9cVTU+ZfLg3Oq2dP+YiL/AJqxVMsVSPzLeWdne6DNd3TWkQv5PiqqxNTT7tis zMyBUCgtXf4gu3cKov8AxL5c/wCrrZ/9JEX/ADViqOgnguIUnt5FmglUNHLGwZGU7gqwqCDiqTee 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 uuid:55620400F462DD11911580E57B1A8C3F uuid:56620400F462DD11911580E57B1A8C3F 14.000000 8.500000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 687 0 obj<> endobj 688 0 obj<> endobj 689 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 690 0 obj<> endobj 691 0 obj<> endobj 692 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 693 0 obj<>stream H‰”WÛrÇ}ÇWÌãnJXÎý’·ˆUVERlÁ¥rÑz`Ë‹ 4†òßçôôÌ^*ŽÅRa§gúvNwï¬7‹“·Ÿ”¸9,´ïbÁ…Îy!;¥¥4øÕ&¥$öýâz¡CݶŽÌwON^¬™¢x!Z£Äa½]8+¬é wÒ EY žiËwÉK•÷tì¤æÍ׫ÅɹJ¬®‰ Š$\>õÕýBBy /­ÖX®žÓíê+ô ë Qá#Ѷó]¬ÎXY9R¾hžžžZ/;×tßî6wÛvéðü­[ïîÛ/«w‹7+äQ*x£Ñ"GaâûñÚ ;ç1Ë-ÅM_4ç?´¶ ÍùÇü#Þö[<˜¦o—¶Ù_w{ñoߩŅŒKÕi=äR€À“ lûçv:Û¼mu£B»DèÿxØ·Kå!¿Û•XüJhÉOJÖŒÿ„SÓ°`å&»ä¨Fnݰ^Aðd+# R´•Á¢R‚]ãg+Uóò³Ó["È4—ü{ìùw/ìß R… שèNÈôšÍZÇÆÎúCë  ÒoZßéfÛ¢Æ-nÄÓHqÍñV[rt›·{qºÛ÷®ßQÏwbáPÁûÎ ÄR<ÊúóßÄ–ë]ªÎj¤©»d…óTSª”üÉÙnýxßoâäý©3âõÙéâÇ Éàõ4‰úOY¥b&m¬©k]HhWTi ZÜ/ˆ…Ôƒ7Go ¡V¶3‰CCëAkƒ€dçS”Tè(.ëùVÉ—ø¾;ÓÔÍDò’›ïg6xq®óÒýU/EëÿOæ7`J«™›Qò’›ÿ‘ŒÒhØ0 ~_lš©‹ÉýªÑÖÄè$Ðbt¨2A»<íj•~MlS„ïŠC6QÉ>šüБÂr*"5;œ!‰ï|H3 õ5seµ.g"8š$ ;&Î |%ä³£ž± a&Q°ã¦¾p&P;ñ”WÂé'ñ½ì?~Àäy‡‰ñ#K'ñ$”ïÅÅ)®`³Ø˜.E2Äñ ²ˆ¸ÕìT‘L¢#îE‰³L=c;íâ‹’1#g0fƒz«’iL–Fá,&“PV„)òT.[/’‘?,¥yI2Æ -— vÀ—Œ>W›á¸«drÆw&¸—$“Ü~çyiIo°J¯‰¥R¹ h´b²:¼5| Óìœê”wÓzµïþ0ÍÅœ™e‡«µqZC8ƒB™Å»èg¹ ¾†zE^Á!Þ‘Ï´â¼7q¤çì:B…k@9Î ïníI^‡²tyé”)ë(ÖY¦Yâù@*|Êk_í¡XÁS¬$¡78­#И'´²¬Q±¬´eI`›Á°S5ê÷§¢Q$xN X´#»à¬,®Z%(Ž ÓŒcòŒ‹3ìÁ›²¶CJ³¤¤]öKÖβCª'ˉX`-ê±Àl°fU`"Éf&!j6‹ÛÅ„ž0ðçKæ¡ðJßF"j¶A…Â~RÛ%>‘l.¹ÙÚøA£H´-'Ô¬D¢Õe®¤ÊF`4d¡ÃGB´]^ãŸjQñÔA¥KU’6=“˜\Ïtù·3€^’T-L/÷’€ñbPqW1¢8ïY’»Éà— È”©u^Å~hʬ³½TI¢£Ë'f¬— Ô*¯, {UŠqÔž}ÈÄ5ˆO¢a]jÊØÙ _²­BAqôcœE‘ òeÀ-ÜÎò )¦'™bâé)X7`ÅF³˜Ùź0G—Òa òA_Q(ÍLiVP>]fŠ‹QŒ1Úü†³§a¨§RqÑsÞŒ榙"…õ³)…w‹a Æk¯'lðš5˜¯ñó9Z`ÆGnh=Ž¢ÖL²VÕ˜‡º›3­uY‘¨•;b…¯2ÙM¬­Á—•*)tUýÊæ¼7XÁè:+}éSfLà4l¥#• c¢&ùúˆ§C¶¶NaxÙ:eb¨µäÂ×–OÐyJ­ë[*ÍNg¢ Ï|¤'Q ÈÔ$HÔ ò“$¨j'9†rµ©`]‰2¾(¸›Ilÿ'Su\}Â0£Ê ÍT„Òš¶ )_8ônCˆèm& ÷©½^F’MbDã¥6eÿ4¶Ë`—åÂX^6Œ2]1ì„^—&±jv‚™¬*×£Z 5ŠZ-5ÊZMcµÞj¢¥ µ\”P¶Pf¹6ns]O[¤J˜ªj¡R9ïˆ5nZoÞŸ.~\œ¼ý¤ÄÍañzµ897B‰ÕõBáK,â‹@ ~Ê“ _]>¢.W÷ø^¸Á×””ÊŠÕz±¤GœX=-.šÓÝýýn+N7»u‹¯×ü&>ìŽ- núöËêœXvBJÙG~ >Ñå); ㊌ç§Ä¶?ßö[ñÔ.ñù×ìÛ¥‚õ»c/.·W$³h=äôM_ØŽÍeÝÙ=ôûËv‰ÆhŽ-íÜí¶ÚóØ[¯÷¤[wí<6÷~`…Ëm¿{,'6ðN æ–¼éænÓ‹’câ5ª—>+¥XåTtFLR>Í›÷ÿZýÒ®¾Ž œðqƧ—ãñü(=ƒ eˆP$…€Usy ™jÊOßÊ.B±#²@p€ÿæŠ~RóŠ~ 66o œÉ¦žh/²ò]9P²Zú†Ä'$%+Q·%'5Äh9Ä ö‹»ƒ¸\¯û‡#¹0MEd‰ãm/ö-¾pó”šKrwÕšLGÖÎUÄï”>?ørì¦Å»…²WPx³Ý¡æ,•C$D®:ÜfßÛþÛQ¬7Yi·þvÖ”uÿê…*ä~‰Á‹L!´™W6Í ?jàzYƒº’x@x®©ÀF\ÍÑÇÏ€5OW}KÔ‚i"òÐïý!:™îÂ.>ù¢ùùÃÙ›ŸÎï??~žGŒrPKƒîaµ÷L®ÕÌäÝv\³uVhayVä'eèN!¼EMÉ2.ÈŽ@ІSz¿»êbw-~ê/¯ÄGÐÞ’‰ä;jíÝöO†Æ­ÄVzÄÙœW`ûü‡óâm¿¥ªÚís‘vûãAŸvâ>‡Ab„‚rÅgÏ4¿&˜üךӛ k/‹ò-ÅÜì9 ›[ñksÎ'>ÓˆpXi$¾úµe+9GÊ0SˆÄÍ0ué4 QÝ”wÜÝàQšI£è!%YRÚæGG£ÍBlNÖ–ðUäYEx¦n¸¤¦øíÕ¶Û6’Dßç+ú‘,ÈnÞ‹2v´06“,lMŒ`,h‰²‰ÑmEÊž|ÉüênR”ƉƒÝ—„2›ÝÕU§Î9 ’ºãÛ§z!‹É.s$Ø…2ÈqìK>±%? hËEÙ–ôÿV…èƒc+—-Ô­z.+G™~‚œþçP5Ì2ÜE6)Qj—ƒØ™[®À6Œã»éÌo™É–™`×ç ïì¾/™5”Dïnœžáò8ëz(³ÌCW¥DŽx'Õ”k‘ŠùÜ% èæ5tù±ž?ÒÍéUÍo_VìK Š(l~¼l`IaÕÌ7`=êæK‘ÂƾcÃP•ç@Ý}8*HÞB³ô4Ø4Œ]0â:Ð|€U}vômmó½@ð¶dp e½¢ši‹<Æ&`¦‘à¬w«Š¡·°V›–ÊÁ·ÜП@Új þ¡2†YŒ?Û»¿dº´zåÇŽHÜ€•Ú[êå~!TÇlÊ *”J]_ò’n¾…Wu\ŒsoÄ&…g›¢)îQ*¡4»ã;#|—2d9gÈ ƒ+S‚øª”¹°ÌG\†´Ý¹ ¡àÊï`Ü¢…£g“ÂE¥¹o–ªMy/YSé@·P1~¨¤N\@–P,YâM$…žâ1®Mà"5ÿdâÐ|½Í¶íÈ™Ãèu’ô-QµÞµ_Pº×š¾—؉Ðn²úD½[Qª‰YXó-IE˜òtõ©C®¥ "hÄL¸¥˜Ù­‚7{âÝàIcµé=1Å;÷’%S÷÷ýç``‰Pƒ t÷¬«½úðëìÈÔB&…cy±µŸCq±ñ<•”U-Á8 Ôˆ$1'iÒñ•f¾ –«ò"æœ ÇY÷ã›w×W§.¼gÂ;†Ð±›’˲'ÐM±xpú{%û%õ$,ǹŽúTg]´'º)Hýp0 ñËï°¿áMdžÖÐ/I–­rŸ+Tó(¦øYÔ¨¡e$B¡3×È9w†röY¬ä.!CÏg7ÍXè‡Í¼êt&³®–€ìMe§œÏ{Ìlr¬*[µ’OJˆ@³RÏGö}!\Œžh·=Õ†§Ò™þ ›²]‹û¤ÿ/<<“úL|Ï'*m"-º¨ˆ-§]TÌ?kæ[ÔsðûæAqçâËHyTô†ÝYÒÔYÿò ’¬ÔnÃLºE%OÃÔ$ÙæÚù €CìŽ4–òDv¼éXˆÎfž#K‰7Wÿ~ûžÆ­ v"j^RÛ¶”ºP)„K¦<±#%Ëh®ª oL¶æà«"î£P{ÚRlçóÃ^`Òqóà¾nè|„8;¤üA(j9ÊÌðœ^G㆗ïþ9hé42}/¯»™ÕRÑXì刔KT†ôK¸Çœ¤ÕC,Ž-÷n P)z7êJ-Ù‰f¯ƒGìÂxÞ2æ³@ª¯$×DªN¥ºâ‡©H¥ÐNâçÉ.M±Ìkˆ/ê3_áã›Xø^  ©ð1UˆTK²¨äɾ~`š8$PVe½­#I›q§ ˆSNè·õÀÒ¾X 3]hÌädwYR†Ü'%:õî½ÒW–Sî+ÃUÙ´ÒÐÏ[ë܇&°ÂbøÔŽ4¬ø¬jpnžçóô%Šæ­OÇYsq'ÇØâûj›+H€µ–ÆM{$2ŽRAîº?&v.jeüïÃf{<;º­iËÆ±ùgÃN »áõHÃY¤é‰vœ:ˆš¯Ç.8¢9)qsæÊîÃÔY Qu«ÛB]GCÖš¨ø¯ï¯ÞÞLß}¸; ªà)äÈã›ûЉpßÊÿ ‰uL‹Ø¦ØN?Ø!`¯hF">XÒJÈÙ~íöRlU:Ñ»`aêù¶57úÄùŸF’"k´ñBLÑYñ²sl)KæâÛû[º:q θZmŸIn[qÄ;Èú”xJªŠRÖBMOåª^½"3ˆ[É®B)j.T){ñKx¥zÎWŠÇ§aëþ‹M_1΢´8‘ÖÁTÃäÃèbãAV oí³Ag~3þiqÞQ^îÜjmŸ3¾T wôÃ)úæuÖ:ÒýËû\ÞÃÜó}@³Æ$¢¢|(f3L”Ô~e8 îÃ(V¶ñ”¡ÌXQ ²ÇþücêK»ñÉÂãz½[UÜçkl]mZ6Ç%uu7ý¨e.Ürÿo¤ÇG·;¡ƒy½ì/š‹Ë¤˜n²dfH­Z†dáÅBÁ^Mkkø›þq#ú‘waJ­ì“Uî&ƒ)qeìÂ\­F3>êÑ-æ]%àÃÃ#'¥›œ‡1~ˆ `š«Dgã('w²þ¡KüÈyFéetñõšI©’ä©l™óê0¢+!-&51¦|ìu@jÌ,…Þ†4ãv’Ê |<ÝûH}Fùؤ9èa’Dž‹ÎÄF ºëÍ¢ÚUøgÓªËÕvþ{CèM$ ·„¢+Ïésßt±Ÿé uƒA Þð‘@f3ã e‘ÊËO&Ç  2¬œ1ÿ¿PÅßûФ»€Rɇ¤.×=ÚäÛ\ÕM»¯ïD7o~áFùZ$݆¯ ÅäNîCa~>Ô«vÃû•£cÔ§¿}|zl•åÏøÁ1è£(ð̬?X‹/þDpº€Âçð X£4¥5IbwÙžÞ\n×k0a€Œ¦ ~ëj‘Óÿ ˜Êe¾+ýCæÿ ½ _J æìùì0A·õ²U7Õb‚ôa· IØQkE¼B”Ü|„àž“økò*PÈ•#h²Ò9÷îÈÝ‘>}¿…‚‚`ÌüI“qÏv‹ >stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 695 0 obj<> endobj 696 0 obj<> endobj 697 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 698 0 obj<> endobj 699 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 700 0 obj<>stream H‰”WÉrɽã+êØ=!4k_Ž#RPhÂ2=d…C£D€$d,5ï—•UÝ Š#CbWv./_.]Pâfröú7‡‰ö]Œ"¸Ð9/d§´”µI)‰ûÕäz¢C}m)œ¾=;?xqu€0È…ă Ñ%W»‰³"X×á…“V(zÈV[ó½ˆè•ï’—*¿Ó±“š_¾œOÎfZ(1¿ž$ $’pYæóíDÂxŠèÒx1¿šÐ0Ï'›Ù›vê:ßÌ.ù¯x½ÚÑSjV-LRsßNþ,øtÜ—³h}š¯žN¾éTûiþ @ѧŽœ®¶?b~ÁH”ËHÄããcëeçšîÛz³Îñ]ó­»Úo³ÛWs0 Q(IðªÑ‚MáçG €!”ãP8Doœiç_ÔSg»˜ŒSÕi=@M¤Ìv‘¿­˜¤àD;%&~¾1Š\“À7QTR ¸Í ¡ù(•,\U¸()#¦‹âG¶2k›‹et-aá²Í.ÅûCëP¥šÄÖAÍ\#øo·Dšó}ë{w¼oÁhöTDÓl*«¿£­Ö"·¢w S¸€ÜSçsÓ}øIìjßé…CªB•®;»Ø_=lW»£8{{—ç“_G]&MFCY¥bnL˜¦ +ÑÑÇ T'SÛ ‚ Þt!*±™¸ÔP3„ÎzÛ›lFv>EI]âZ§(®J¾ÎÚŸ„p±³ÊŽB ‚ïCü^‰’6p0U4¡!³²~”sÅà\Ìÿ-þr’ß@å¬èßøõ‡)xÛY—ú:lÙ£ÆklÁð× S=HƒÇcõ8&A™ ]ÞÈ KMÙ¶„5¡˜Gø ºKÊå-m% €0h –ƒR#LTâÂ8ÖHi”%|x5îÇ> F'JàÐÊŽ5<}Æa´ze‹ž¿–ñ»ó¿c¥ý‚Õñ_ ÔþQ()ÞŠŸ¤XNBDýݘ‹"è1¼›D|›’éTA¯u'ãs´›V„3úΦgÎC1¢™ü8JŒ$H‘$L–æ44 õÜûM¨‚qÏz¯0‰¹{A茊¹™\ÆZƒFì¼ ÏFéüï= $6½J£l”Ä>OaÔˆJâ³àÆD¥•qBJêÎ;^ŽÛJI´x"©j/²>• hqu"±ì§E:´†Æ‰+ 2—:pV¸ØKè¤æs9ZWŽF\eƒC‘¸¬uÑH–ÏÅ!îIlÇ4Úd…¤ØÁ‚ÈgSθ°Er>K¬d—És[-ÊÙÉ£—XU=8|‹9·¸Ç ÍyzSbðÉq„’£5kYP“Vź$‚/çê?°A®ÐZÏÌ«÷©?³)4‘ds"¡Òl&·“qyb_ÀXR¥€©LwÌT$|ö‹ßÈd%ÚF,A!ò9°¯OŽ6õEbоµ”T5Æ›õ¥d6” I3U¸Žõ¬M±¨ûÅi_’OQ=‘xÅq ÿ„ §’±•*·±§&Œi ]๱eAâO¯ODJ(,ÃM ùœ\ TªGWs:[•3Tå+f,÷Ÿv¼5Ü•r³‚fFlYZqÿy£úsé'ïO4bÉ4;¨”è›7B†µbSU‹¶Iv”_Âg}œ¨…ž!¶pŽ=$Ã\äbHïNÎZ†jQ$¦t¦«cì(†6Õ¶°e—eÄ€¥+kJ£%Ù7Ri­TpgÝ}–\§NwžëÄ,ãè|f ®Ô a‰.ô(‚* ’ËÆ}RñÕ>2Ã<+î4îÄÊAiÕ$¤шŸs!Œh僄KU=ÔRžL”By¯Êxø²=£ÔÅCIK3Ȩ˜©]qÁ[Äàž“‰°Ì¬.Ù@û~j&ÚhfÎÖ0î´4t.#’Ô‰F²#´§ÒIj–BÊ“2 DóÙx’5¬e™Êý¥²@ìØóÄå³àø}ˆi¼Gëq˜*‘<',–™ôe'Ñ7™õëÊË:Q<ô6êQ X¡¦ÌIbO”™Ó|Te\˜#“7uùN–;D½¤z×N'‹ŠÎe@‚9Ñà:¸ÒãÜ Dm•б6ÓEm·šgmÇÊCé×(\… u±¬oëÃ@ôpF¤JLÑ/•uZ<™‡+\¬^½=ÇO¯³×9L^Î'g34ˆ˜Ó• 2\ð¥à'ZÎÊU˜oqù¿ÁÏ!)±¤æW“)="ùãäc3[ߎӭÁ²Ù·x§›ûåtÖR»5‹Íf:oq/lnË«ýÃÍ-¦³7³KG×üs•%‹¥¸¼[Ý·¸ãÂò¸Þgé®ý4ÿ@-M¸Beœù!ÃÔø¥à±4C³†¡ÍoWâ:Ãk§(Zó¸‡oßËvªezMðŽ·EšÁ§øÄo [ÌZúÿC;ÅVÃV©™ÿÖŠvê›ëÕâˆÍC1_‰;ˆ¡~ßÜ}ÍÀµBs;¢v~ÁFF·^®âˆ­o!6Ÿ[Ù¬7kr ?ˆã^löûÿL·«¢± ØÐ ²Ü­¾]‘cMk°)~¥Ñeº„”CÙŒæèœ rFMZ…½ðM°sn‹¯‹5å¶AXGÀ6`’#åý6#˜‘Ö"ŽÈÂó%ü6¢x_·º9’Eå×ïᘬ¤ášÃ½ÖÍzwC֢ĕ:c0ZuªÏ“˜óÈäûfÕNsÓ,ÅD½³ër ·«XæJ!Ì¢UDÖúÐg¹ÉĦœáz7И?¡ëá3¡–£3ø¢^]¾ r’øbàÃ7÷‡–‚éeîBlêBê7’Q#f76G Ù\ 2¿º§Ñ4¢‰Ån™ûçînµ(AÄâá¸ß‚‚¬yU=ÿ!ö»ÖÓÜ‘ÔáŽJAéÎâìzr­*ôùá€Q¸¸|žïÄåîjU³#Ì4Y"gƒ½†lhFÄ€ÕÜï·ææ…(ƒœx1$¸:§¡º¸ ½ºyõöó·ó/ÃÜc/cûÈÓZ0Ú2P(+°\-ü¸"ŠMs\-ó±kI°¬ä–v7À V@EKÉ~žî?'}@•s58}Ásð- WÈÍ=õ£& ò¾54âŠvª®RúŒ¿’âoo÷˜ÍFÙc£ð½A®ù! zO+´!n‹ Æ¥RÍŠ÷79jêÏ—Y'4/rT—Ç/ê^9è“Â`cŸ/ÜÇæ_?#àßÞ\œnm“o´ƒEåÏÕ}D3ÉU3\µ”«ö¢ªõn¹¦R¡J ñu±ù/ûÕ²Û6’E÷ùŠZJ@¤&‹ïÞI{ÌLHœéfÑP$ÊÖD–‘ŠÇ?2ß;ç>ê!’N€^õÞXæañ²xëÞsÎÝm|UšQÚüœh…þ>èVôÐù£Aƒã„¡ Û? è½òN(ýš~ììÓ|A{3/)9KÍËÛ£O'Úiºõ¡ˆŒ’ʺÏåü@*çÄm»[RŒ†öNÌé<òÅœ8µæx¤µ¨É¢Š4#IóÀòI¾˜@KáU;;2ãf3E‘§«ßèpÖ7óE¥uÀÜÍdi™,i1‘îzÝvúäÒ¼?ì„é{´ ¶»’8 Q%È3µÐk–Fá¤÷”b?³s8{É$½·½Ы‰§EÄÜR}Û7:Sðµne¿ú¬¯oõ(5C††ó¡ îgŠ'U’бR1µ×‡ýj ‚ ÁXô#IŸRÍ@”úÏœ;“îÇÄøÚhü1Ÿm†4‡­áÑ&iîo¨SF4—F«ÿEExNÒEÖu-,zeiXì°w|óܵ'Çd(ã¦~&a² uê‘ÞOãö3µûÍ>àï~ÿå×ï·yú\%åµ?sÞá‰ýßNÌAG¾Þ×_ø^»¹Å)l‡ìƒÒM1RNæóûßßþí¯ƒ„–)Üuâº=/¬|Ùµœ¼UV& S^×øe&ΩÙ;þ™¦:M°ß;Z! œÓÆÍ!è¡ÿðuFä9qÓ†WJySa»îÄ÷x² þÉ+¡…mؔɃÆÝp¯rNT…qUNÄÿ‰d`+KM¿dØzeCP[#‹ã,UõfÛ£†Dò¹¡ùÔRf‚~Éæ­„sÍç¥ÈvבÉï ‚,› æIÕKêE=EñûÑcâá"(?趃Ym6;²x«½¼‚w’Š ä1þ) ÀWñïg6Mm×K;Ë£Ÿ‰oJð3!}gÔ4nƒ“>¶ie™õꬎC\ËŒ.©š3¯[ð½#ýýÜ®÷í…)!eãË >R­ ¤{]}$T©üü$öŠv»‘ézl]ÊÔ“`â!h$9˜ËnÊ0&uþGÙ)÷õ’UÚàdIç¥÷ð‹Œ†ÞdTha’,ld¦uÌéæ<€Ž„õqÖô‹Ì°ÿ¼ª(žù€±‹y4U9e#‹LmäÒ¼9<©}?‹Rž°µ“Yõ= YGÓ—p›tõ˜«M eyXm¾LJRtór^0ºJ£tç}¯GÏcRTB÷sÖ’pÞV^¶?>jÂÁE6Jw²²>¤}–”š‘Y Š“i~â¡“v²Ü±Ïÿ¢| bÓõ8õJ.s @ÎOŽ}&’pÄýqÓÂÒÑ繩”Ú¦t•b`Èuô â~^Ã-¶2ÂzÎXoÄûÕ\íE÷ úÍyžJ î…eý|+÷ï ΓÜQÁ^, C.æ^̉h*]§®¦VÊX‰'ì˜NôNKc/+ A´))"†ÉŨåÞ¿¸ïœSR{£§Æx¿sÔq+ˆÍÕy–ä#q>†Ý])î™4 ,¸UD*÷W×jFž¾®²âcÁv¹yˆMŠ·(óBÊÕŠ©¼N»¬žy7sù®¢'6sI+´èÀJ%w+òíT[ÉŒo(LìB£k»¡ëš$’Mÿ{ÒXª`áÒJl6!þô0šÑ–‡]æO¶!gnæ(E-­ž¢",R w‡yœ8ûɧóƒ IY-⺢å:ó•L¹¤â ¶"‘” *á©#K‰Ô¿?š¡9¼”š´qérfcGÔeS[H?m'<¾÷!ýKqý´Þ·KJãÍ?l=KÒ‘\¡: yÑÕoW7fÛ®zŨ{‹¥ZæÕžöP³l*çîkYµêZ¹ég)&zxK‡igÛvÝï¾µFÃ.H{W2ZldáCG¦V榫kžd¦x2ýãqêI¡B6Z³n©CbÄÚâ×TEoœU“oœ{‰[ðçVäR„Žá£:¦s~3?Åö[NaýĿȳó~}{X?ÏÃu=eõÓJ+LdRD­H4 zÀ êEÔu )+ ‡–‡C¬€DH'øÛÝI"ô‡ŽGšÌï$)Ó0ÊÔ¤¹~<íXd{V6|–:>mì{ed?^ˆqT|qM[KgK­l+•=ÒÐ$ ýùë±oÄÚº‰ù+Ú±Îx?¥*8W”ƒŒ>ë$»YÓ~›Cë‘Ožd•yÔë\÷D/œõB†`b©Ý“L©[¹;ºq–uìµîd¥×¦ýJËóÙYÛ½s–Aà^¨ò3½#“÷º-»ÊIŠ´ÕLŽ$tæfÞTìŸRÚóéVï¶rM»b“µ@¼ÿÝIg·²à¬ëO.¬ÉåÆbNtQé¦kÙt³d—˜þ'­Á½¹)Êt™”¤Ó÷èNÙzä!W½ÚÝÎ ±ÿ í4ømÔH¾àËêçK(sH–…°Jˆ{$Ÿ²>/¤´á"f±ÃD2Z¹³«d®Z]I/^ÑÓhNZ~@ ¥ÕL.0™°”˜Ç]¢½?läñС¶=P óD?·Ô%_º·Í«eVKÚþD'^ïÄaO0xšº^Vy8ðE4 Et{%ÎoGQáíHßfñDtby‚¡cgn©tî6P?K0q#û2¶AÖ›Rûã Š¡(…—+léú¯ˆóvLÌXvvˆmç6 ·´,xÁµSTylóþ ñ[V@”ˆ^JÀ^#¾ÝË˸RjW)¿ÜpØÄ.a,‹ 2Sš ”ß›fp¹9µ¯¶¯~zÛ•fÝ(fVÁ…áצè·ÈÓ­(¶ÂìÌ+[¢B1yV)æ0TÝ}@è“ÊìÁ;§EnKEâ8’ œ«4Š\6ý: 3*|át”}=”gq\oZØ8ðÁSM5&Bj°vZÄ+è=œvfŒ€è¦ãDHU,«º¾ˆLé*/"‘ò™8RVà×80·A—Ea&j:L˜ß²‹$”¯‹”N Ít˜ÉÔÒE’sJ×EJÇHá ³qb$’Ç‘3J`Ç#¹E–8’Ùe]]Ÿ¥ Æ1dÙ3q"|Yq)2X\ôÈÁCuUÃD@ RÁঠ¦Çø6o&âDHR¢L/ #¡|]ät©ž‰ÊÕ”q- å+n‰)¤~&N„ÔÍÒfM-¾”ãL Í3qb~/9ŽÈ¹®Š8ΩÓgâìAâ©ù7„îÑäæïæÕOùhÍm÷B×/týB×/týB×2ºþø*Ú¦ˆ˜Ù#ž‡3d¸(«)Ä3s@3#Gˆçj‡xjvaF@àê€8®ÆÝGq{{ÄsµÕqìºÃÀâùÜ#ž½}œ1âù< ŽÏ‡‘#Ä3|@Ÿ‡w‘ÒÇqˆcøaäqœÇð>ÌRù0IÊqÜð"Gù>ÊÒ¸0p"0 !^âDÀÇ#^Â' ÃÈ1â„Â#^|œ1â…" N(†‘#ÄK‡G¼Pø8cÄKG@œt #Gˆxéðaƈ“¹¬íàÕ% NK›ƈS—€8uFޝ7qêâãL •ã§7ÃÈ §7.ÎRû8q 4Œ!^“’ò3…4>N@DK†‘cÄ©”Gª ‹óT*DN}‡8•F¦1ãE·^tëE·^tëE·^tëÿG·0oeøF4H¤[ *Ä&Å4ÉÇñJ6ˆ!A· 2¥G@¤I>Š}&î>ŠëuË!ÿc¿ìzë¶‘0|~….í|"ñC”.»±³hê&Ýø¤Á¢(r4 ,Üm.ú÷wFâ¼3"© ¹èf û1õ’¢ÈyHµ”tU•’É™S#Øõ–µ”×D„œ¸“lˆz –B_5“ðÔ¸“l¼KIpƒˆ”LJ3×õ,%¹ )᩹lˆz –’à“ “É–À[BÔR’\ur\ÕWÕF½%D-%É5Q'!Çï$o PKIpM %“’E¶Í5@½K¡§šÀIx &+’ QoÀR’Ü pžJ;ÉJŒ·@`©œÜ"pžšv’ Qo3KrƒÀI&§l ¼%D-%É5QK!gØI^î[‡·oÞ:¼uxëðÖ_Æ[tßJþ“ÕVê¨DsB‹¨£@à¨m®uÖ ÔP9£FP Ô6õQS!¬ ÔNÒOM`'²C¶± ÔV¨š$¤&ª&¨i›«@U%^BG5—@à¥m®xJ~‡”$£A`%CVylRõw•”I"DŒ#mc¨¡@GRÕÚ@GÛ\ § ÔERu\´ÍU nÊ@E$!5Q@DÛ\Sþ]-$5Q ²YÇåïj%Pº© ms¨’À?Ò ðü³Í0>ùä|@ Ÿm®•‘€PLK‹À<†d?ls €‰2H‰&ÊN‹b¡¨i›»ÜŸ:*<‚k‚ _ä¢õ\r$íä(1õÕ;ç´È´“cˆVoÔjÉiy'ÇÔj!Z«%§&Z™‹œåFqTæ£2•ù¨ÌGeþ¿ªÌtfæ¿ÒϦ2 Ñ:LíÃZDë0rP«‹dC´Vg¢¥9WÀTf¤¸ÜG“‹ê-DkµtU-Ö&g­çE°!ZÏ…hõ–àšhõFNÜI6D+<ê9úª ê9žw’ AÍ@…—à‘ oRš¹¨@Pò%·APóñÔÜ6Dµ Hpƒ@H†(ŠdK !ªI®‰j9®ê«j£ê¢¢äš¨(ãw’ L¨:$¸&P‡IÉvÙæ vKÐSMà<ßɆ¨o@`InØO¥d%Æ@ ðMNnøOM;Ɇ¨“@` InÈä´“-¥„¨“$9%šC·éKœ¤9ÃNòr£8¼uxëðÖá­Ã[‡·þ2Þz8Å!Ñl4Þ¥"}ñ)6U¦G ’rJù»ú¨Ìx4â#ØGb+ î)C {@`I©Ùdð4›|ßåš¹\Yh~½‘%T,c1—E´Yæµ5áœ|˜hÕ.ëmä鼺ûþ‡Ë¿ðaýfT‘—úëÆi™Ù é«ö4Þ|D—¨döGJ¡7¥uNß|‰áÙ &T›=]¼Ô€Žß‚b,!Ÿ£}Š7NØ€™b¢!¾§QD“ây…ÒìÂóííh¼›hÀ“%t–è·$ô4vÄž]ÑÂ}Íö)šÐaØ }8Â}m’IñSØVz¿!½ú²œ@Õ"šKÖ¦1$xºïº ™iÉÙÉä”a°]’Ê8nº ´¤œÔ0ö4ä-‰ë²Ô§Ò@CNŸ ´˜éÒ»Mï´®èõm2¬Âd?r¤Ÿb²Ói‰Îöþ@¥`rôÑ:þ7…ÈÿúHµá㻺Ç1ŸòJÀK+Òº–£ÇzF&qÌ*DJMóþo~g=7Ø™²¶„ðjãŠBS>ðI§ô è°ÂŸ-B gß&>”ÔªùüOe9t~;®"Þ¾^ÞM–8Z½£}aiƒ÷CŽ!å4Ñô~Ý|l_®:®g—щ’ÎV«Ë΃OŽW"­UÚüo 늼ºísU6S[Œ‘Þ,pÅží{È'7$a}3i£ï!9†”óÁSûU°7µkÙ¾`j‡zj‹1òÞa¹Ø7a…!J} I1¤œ žØ¯ØýÞ´.ÎI_²b]yâ— 8,ÎÀì¤À·ÙÁœ†2à&}n‚µjFÞ{æ‘9w#$YĹßfQr `NXÒ¢´‹VD£­Í3BGgz™Ø¡›ðq};´ªò†Ø¯.Fé ÔšiÊuU¿%WOžÒ·=óèôœÙ8U’0É›‹3Ma)uùøåZüUOªº^³Ê-¡3uK,XäR®{ÚA_wM)‘µ»ót/ÇœOv›Û ‰©€=JüY}í\!ßTÇ/) >—„ßNTÎ}œºDpvcç©Ïžö÷Í@‡mšÞß9½é>4V«\2íj¥]½l&ÙÕòØ:|mß‚–a,wÖ™ï¬Ór úæþû——·ÛËÐZÄâÄ3¹¨n=d †ŠsäÈÁÀ´‰•ž¾ Ó7W0žN¾ß.ç_Ún¼>'šlºöô®Ï¯çyó¼œç‘ÜHŸÌoúò¾Ð^ì˜rf¢Ë ÙdÒBšÓg ʯñ&`Z¯€÷Ö&ë{kÍÔÄ3 DEpˆþóGdÖi†¤m–!Ù>cò‰–äd')òóîóÇdò,!cÒ6ë4™>cxonƒ÷gÆçÉ$ä1!cÒ6ë˜L1Ѧ[Ë“ ‰jjp_0MG„ŒMÖ™êEö]°«;Ît.¢ºó¹#² ë4A†dÚ,c²} Ý¿OOþñ@ÿ;hÝÓùT1u>Ìç©ã¢è¹&¾§Ò¹üÝu.øsˆni‘Æ\9û~”Ò9ttœé8Ó…D{k z7žçåøD_ŒKvT¬¸2Ð ^‘ÀRE=7è,!d-£’¸”SQN—¹©÷´œãs%’Êé“§ÇîÝÇî“jxuûöéýw\lš>×ÝZä4±—[ÒÆË×þKOÇzOú°‰”LùéêÇë©§rýííõÏ—ç§^u4£Ô„>ë´6yýâöîÕ³û—×¾¿z³4ó”iÈtËXÚpçw/ ¦/™_™W* TO—M9ÏôžJèûÓw½méìiÝiš’1Ó9ögŠLúï"S;ÜKwEf>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 702 0 obj<> endobj 703 0 obj<> endobj 704 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 705 0 obj<> endobj 706 0 obj<> endobj 707 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 708 0 obj<>stream H‰”WÛnÉ}çWôãÌÂõý’7[¶ vœ¸0Ê–èð"“T´û÷9ÕÕ=AN²6lN×tÝNªîQâvvñöZ‰ÛÓLû.F\蜲SZJƒ_mRJ⸞}›éP_[G¦o/.O^¬N™¢x!Z£ÄiµŸ9+¬é wÒ EY žé•ï’—*¿Ó±“š_¾ZÌ.®´Pbñm–È HÂåP_ìfÊsx‘l±Ârñ8kœmß¡gX¯ 9m;ÐÅâ5++GÊ_šÇÇÇÖËÎ5Ýï›ífßΞïV‡]ûuñ~öfü!Š@/°5Zäh#Lü<^t'ã4f™£¥¸)â/ÍÕ»Öv¡¹ú”ÄÛõ¦Y·sÛ—çÃQüÛw*GÑçE¡cÄ\uZ÷¹ ðdÛþ­‡Î6o[ݨÐÎzãÄËûc;WòÍV¨ÄâBK~R²fü?jj:,XG¹É.9âÂP[׿C]QàÑ«ŒT,HÑ« =ì?)°R5/_0»¼£™fyÏ¿ç5ÿ…ýKAªTÂu*úÀ' dzÅf­cc¯×§Ö@E¿m}§›} Ž7 -nÅãEqÍùNœ[rt—_¯ÅåḮpýŸ7bæ@ˆà}ç„ b®eýù±g¾KÕY4u—¬pž8¥ å/^V»õþ,.>^:'^½¾œý:*C2øC}'M¢þSV©˜‹6ÖÔÆ5‚.$´+Xš‚»•@!õàMçÑÁ[H¨•íDâÐк×Ú" Ùù%ä²N‘o•|!ÀÏݸØé˜ÆnF’çÜü<³Þ‹s—îÏz)Zÿ2ϸA¥´š¸$Ϲù/É(† =ê»bÓL꺘ܟ¨C5ZÂZŒNU&h—§½Wé×ÙÄ6µAø®X0dLöÑä3@G Ë©ˆÔl¿‡$¾ó!M$Ô×\+«uÙQ£Q°câ‚ÞWB1K`1êÉÛÙ&;nì {µcO9.¯Åϲ¿¾ü+&Ï{LŒïY:‰G¡¤ø(¾|•â1‹™àR$}×EÄ­&»Šd-*âž•8ÛÉ”Ñ3¶Ó.>+2rc6ر·*ÇdiNb2 ´"L‘§rÙz‘ õ3ÀRšç$CÜÐr™°½¾dô™m†ã®’Ñß™àž“ŒrûÁóÒ’&NT•&&މ¹R™4Z1YN Ã8;§:åݘ¯6âìã\lÀžIv¸ÚXÇÂeg좟äÒûêùŠxìt¼¢†8#ŸhÅio8ª‘žV×*Ìå83œÝÚ÷’¼eéòÒ)SÖQ¬²L³Äó†T6ø”×¾ÚCÿ°‚§XIB'8­#И'´²¬ÁXÖÚ²$°Í`؇©uûSÑ(œ‡cíÈ.8+‹«V ŠcÂ4ã˜<ãâ {ð¦¬mŸ…Ò,)i—÷%kgÙ¡ Õ“eG,°õX`6¡_³‚*0‘d;‘Pi¶³»Ù¨<¡¯Ÿ/™‡R¿Pú>0Q³ " ûIn—xG²ºä&kã{"ѶìPŠD«Ë\IµÑ¥>r² íò×øTIÅSL—ª$lz"1™Ïtù·€ž“T-L/÷œ€ñbPqW1o¢8w,ÉÝdðKreêD×A±š2«¬A‡*IttyÃŒµb J­òZÁb)¸a¯J1ŽÚ³™˜ƒø$ê×…SÆNvø’mµ Šƒã$ŠTç(náv’M1=ÊO‘À:¸+Ö0šmÄ\]¬KåèRÚ/Q|”¯(‰f¦4+‰ ¤EA—™âbCŒ6Ÿ0C¨ièùT=çÍ8`nš1RX?™R8[ k0ÖX{=ª¯Yƒë5ìàz¸âƒ×·GQ9S£¬¬òp}ws¦•—‰ÊÜ+|}”ÉÆhbmÝö°¬Õ¨’R®ª_«9í V0ºÎJ_ºÅ”8 [Ë‘J±Q“Š|}ćS¡@[['0`¶ÎF™j-™øÚòº1‹CëzJ¥ÉŽ ãÄB´á‰ã( L‚•%A¬åÊÕ¦b€u-”ñEÁØLbûø7šªÃzè– 2ªìÐ\ŠPZÓ–!å«Þ¢½íÂ(ô¾3µ×ËH²I `¼Ô¦±ìŸÆvì²\ËaÃ(ÓÃŽêÀëÒ$VMvp%«…ZëÁGeC¢²¥FYÙ4¤QùV-t,(Tºö(¶Pf¹6ns][¤J¸TÕB-å´#V¸i½ùx9ûuvñöZ‰ÛÓìÕbvqe„‹o3…/±ˆ/)ø)O2|uù^.vø^¸Å×””ÊŠÅj6§G\]³/Íåa·;ìE šËíaÕâÓÆ5ÿbÁÕ»«O­Å‡góB\ovmêLóßlÏËý:?N¼ùïëeþ½ie#–û›¼Ÿí\!—fsæýâÓ}þ][¥›åysØ·_ådèƒ,ç’(Ÿè’F‰ä£Õ‰SÍ‚2·²’œÏŒÇfsûó‰Ü´sàÛ¥ÆÎñ&4);#@ò=ŽP[¼ÎV€vdz)qºk=eøxKGÕœÿhÑŒÍýfµÜ²äñ¸É¢3ü;–"}ðÝØPÖ©Y¶‡ûõ1çÜå8ÅËç­dÁ²S‹˜ž®NØ¡P l÷ͺ?Äù®D@¥{Á>ú@ ©¦šÛâq³Ùߊ μ 3Çg—Ý >h ‚™R ÐfŸýݬ—'2›òC˜7GäC r‡o×9õ¤Å åFêØ¼ùø·Å?ÚÅ÷h]Ü•ûÍ8ó¸Hß¶ËÛŽ™E`6§Íî!³3Ó´g¤aJ*ƃѰ¨ ½Úœ€B{±9ñ*C”\…`lΰ€}®…<:•Îʰ«\ËМj›¡6u^åšÚfßJÅþ@±¬î–ûÛ0àÅÿˆ)[§óòÌ)}c[ËÛ%îÑRûUÙt~<ˆÃ{ÄîÐ0Ïæ ‹*»©,²Ä¬eÝI{îëâÄ&9¸ó$ q•x×j¼Ï›Å/´µ¥ýbm¿iëE gõó÷’ËpõÛ‡“þÃ]Vûq·šžñ} £ÌwÄÕ|*³«ƒØKD²ßþ‘_dÉrµZߟóã!Ÿ&–噺ÿá¼Ú–ÛFŽè»¾b”Hs€Á-oŽ|Y'›UÊÖ®’²R.˜„HÄÀ%@)þûœ¾ R´×• ÄÌ`¦§ûôéÓÙ\“Xz´DB¨ºð.]ðß#›öÐûuTù²óÆÕµœ-.)8)¶«°{“sƒ¨ñ.œ“‹_’Ä ­Ð9¼m„^„wù [±–вõ5Ð,¥ØvEjWÍÁDLájuIû[Ù?túR±Þ’AHÑ|UËK#(@J4Ä+J*Šœ®§]qáþ0wïyO½gúW#ïù`»µ<»¹ySËϦÜêäWy+cƒ:Ë]°Ò…½>[|ažÁ{)‚äW©C ±ÕQ°¡é( psøˆ+{½ô:r˜–òÄבu²SçBp)^c²¶d§LþJrìú$•b`͹ô|.=K"ÄdQ¤“ØsQqÁªYœI^žxÞæÞó(€Ê+(æ)÷‡=î±7«²/ %ÚçJj …;®J­¢µ²E/Ç/èÊ–ë­xZü<С[ÊiêY‡‰“ð.D©ûT«¹:ÍëÕxЫüË."ãMÊj•LtÞDQcÁOH±nS~¡;¿×wG~}®ã]¶‹†çrãŸøy€])Ô‰À `þ›¹@ãaâp å.xÔ¯¶aÄ™°.Í¡aÔÅâˆ,Øß olÛ§0Gý .‚Ù^\V÷Â#¡çÁ’Ë+[ÒˆY­~´­ô6‰‰GÞMûX ‡Â:ÿÁ]8& îÎDB%Mò! v»–+¤l¦šÔ•̧t04»tÇ\ŠÏë•j'Î÷Hr’µ¤ àr+¿Ž1زà¾Ý?”ŒÆŒk—îÉnÅ­Ka.]…ÂÓ Ö\˜æÄ½Ð®¢g5 «ÕúÅúŠŠ¥n Òq–z=ŸÑXk’ž—DŠžu6ÉzHï(h@„7^îÎüÁ'þ‹3¼Ë•O7eHRƒ™ŽDö@c"Ò\.ðȧË+Úþ‚[T~t=#§¦º‰Æ¥ 3ÚD>ºÔÕç»È'¤`‡öÇ©€]y&Y¶Í½tT!|z4岯+Ù l»xd5—D“ŽÌ ³\F·À³ ¢„'´7-ÿ ¨ÒI‚(;æ’ÎM¾Ä3•ÖΑR5[ÝÐïóÄØØéO¢”+à¿ðOEó™EºlžѳFè9X®®ß¿¦Üy[5Ôâµ{óö×w„ã”S굤2SÃàõ®ò©=FYŽÄß"Q¦n®ZW’\¹ëÁýÎ wTöûö†Z7’TH'ˆÒ€ÍsšÓÆÃ €sW±Æ&ñŠH³¸äJƱÆåÌŒÐø¦^oîBn4øSo·‡®‡Ÿ€¦Z•Ñ‹«.5ËNê‚é–ÍEä&™MšP±ŠÔñÔqLLìî´Ú#¬yàfÂov¡¶¾@9¢ÖV<̵w.…ÄW&P²V&þec”T¼MŠÓ»C®ÜZœÄ/—”Eð¥iC3 -é´jµ®Ž;›çu+*M,¶Nd6š!^v.qÄ“ì;ˆbî„TIÜ¡ˆÁ;g¥ÊíûO/¯þvTTCë&Šßf,Ô„µ¾¤ŽH`ñF%$ô¾IY¶;á ¤Z’N¤’м•"¿­zíWªr¹A}BƒÐu÷‡­è#ä#Ãô®ñ ñ±Â°§*ýˆ½E2éxE‚|²È›ºâÊs3×6^°£Ã™¶Ÿƒ^(só÷¯Þýb¨šMÉúçs1Õ1÷"c[n&Ó@0?i))íDóy“[RÌáh‰,)+Ó}m–&dÒÕíOìY b_é;Ùòs¹m—_Ì3@§7;ÄÕÏßÄlDµJ?’D‘ƒÊÚ’ÌL¤ƒßÂlAÔAª íðG)'.¢IŠŒýSbÇa 0ž¸Leý±Ä!æÛiâ°»³ç½òÛËŸß½:q •#m-©rßXPÒV‰4ØUͪjzÓ6c¨RÖÐg—œ?í W‰ÖîE†Ÿ,T„Ôíu’{ €b§ö\š§ïY+c¨[<×Zƒ–H|pZû†üc”;P“åÙíRÞÇ'ÕÍ—®,Š&?v©¯]Òô"âd/¢¥”IK'å!¤5uýëù|B#ÇMI¸Ðmå3é>´%YÍÅ'·ºEÃmÎXùØÜEBŠò\36 ñA¿ª®75“0Ó# ú¡¯†¢Qyð/–†2cßA®z6ÕQV@âõ°ë¿òZ<6)1Éó´ˆÀ$.¤æå ,¬WrjÓöC*Ìõ˜ïñ!*¤ÈUá@…ä›Û7lè …H)¯ Py L¹ýcâ[$´ñXƒõt on¡º‰öHòÜH4´Œh×F.CÌ8#½^#Z"®U*1ØnŽÀ1ÝànGðtcϦêbHUàgK–œ15„ôÂÞç²Q€‹`) z‚¯èûº0¨~”Iyø"?¬h/‚~§OL {:‘¨¡Ið …' U@VÂâç´®C Yú,=¢!=r¹ ÄÂKðÞ7âÉ ˯K¾Uñ š‹L|9”ûLò(#h°j(±Ä‹oÜêCtS¢ÝƒpØ”;¶@TuI£ŸÙ–ß_¾#[øz7š“Âû–—¨„®ÅYW‹Z]Ž=OÙñUï%ß÷]?ã´~j•¨BRͽ/·²Ç¬ßèT{Xo̶]O·^OŸ,¤Nò“Œ‹òÈÓ'ºˆBàíÛ}ïµÙ€LÚ~5»m¹¬:¦úooÈ)²@02sŒz1“»à “2ïGþœ•0ñ  à )ŠyF¹iÑó²åÑX Ô­ÿœ½—‚Ž–1LYN†EÆ:¥Ð~­³•¼ÃFà¬?3HîHÜeÉÞµ,8èú½ßÖ8™˜…”9…Ÿå”‚;'‘Š'ƒáN¥Ü›zÈÇtÞ‚U"ê”^Œ›ñkñg=-’Ó’9(c*Q†B¸ˆµ¨Ür»ÄXfHñO@d"ŸÇÃ×LWNe.I Æ}Á| ßÚ›RØ•Ö?Õ=·€™3Wíþ¸BCF¥ÁÞ¬cs_ßpÀlšR “››‡‹$¡†Ç¿oý»K2y×õÃ;aþŠ{ÿOæ£#j@Û$„ýï…Y]¼xû!2ëî‚Z²ÌÑQ¤¾œåG\RÌáûíE”å(¦KtdXCfh½Æ%~d\’ :I4]¢#ã’<¥hL—èȰÄEt‰d²ÄŒK’œ0>]¢#ã’‚<2½´–$”y2½´–|¸øÈ®Œr°Lr@¥ôПÔôE “2hàÄq’¼¸êR³ìÌbnã,JèÙ$ãg‚uˆê¢/Žªb ¶ ŸQÊE\G‚Û÷Ÿ^ÿB“¨? œ²ÉS”Mš{ý÷Üü‹æÏ0Àš\7rÉѮ벣뒬¬GbðÔQ’%ê’(.þGyµãØ ÃÀ«ä ËE¹ ¤z››Ô¹@öþm82?¶à`«G G&9´5f"à2šñ°Æ8ÒWñS}Hö-"LÚÁŽ ¹&ç‘B£Šˆ*šÎÿƒ«e€á±áx•vy6#•4ÆOµ¢M>"u̾ót¹ ÕˆpÑÁñSÌGdÔ"ß?uX0‡t"`”ƒ€uTmIw„l/󖯥†>Z09…žù¿>Þ~üús9—x;¦5ZÌD^ßqÅ0tq¿5‹ÞñûïÇãÀÝÄŽ«h_¢/§Ž7‚ƒÊŽºF‚…ZÌ«[Ëó’ 1~Fõ+c¿õ•0ùªÛ@;ohEy±Áz¸‚¨=Ýòœ\+h]—Ô?:ïÙâϦ_iÓçoNY©ë,›Sbºó8/† ž}ÞÝqg;I[kñ­ã&ò7t¥Îi˜,ÕÒfÉLòD‚dk«s£É.zC}ßÙ>µkÇ{Æ–,¡/jnŒìœØÇSF› Æ6¢ ì<´lãˆÜ ì§“Bq/È-õUbžú¼É{N<µHL\HT‡æòt,²=T+ò¹€c>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 710 0 obj<> endobj 711 0 obj<> endobj 712 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 713 0 obj<> endobj 714 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 715 0 obj<>stream H‰”WÛrI}×WÔc÷ƨ]÷Ë#ؘ€õ¬c1<0Će[„-1’ŒÙ¿ß“•UÝ-a&auegååäɬj%n&'/ß(q³›hßÅ(‚ óBvJKið«MJIl—“ë‰õµu¤pøöätçÅba) ‰¢5Jì뉳"X×á…“V(zÈ» ·æ[1"¢W¾K^ªüNÇNj~ù|699×B‰Ùõ$‘#‘„ËØ>»ŸHlžÂ»4^ÌzB̳ÇÉûæüU;uoÎ/ùW¼\®é)5Ë[R³m§?s^í7e-Zß…æ‹§•o:Õ~˜½F†ƒèSǧ«mç˜q$ÊåH8ˆÇÇÇÖËÎ5Ý×ÕÝ*ûwÍ×n±¹Ïf_Ì€4DQ $Á ¨F 4m„!„PŽ'p@áà½q®}¢ž:ÛÅdŒ˜ªNë!ÔDʼ/rÀo_*)8ÑN ‰gŸŒ"W$ðÍ(*©E¸Í/BóR*Y°ªá¢¤1=X?jÐÊtT¬û\,£kÙ(.Ûù¥x»k £Tsߺ3¨™kÄÿÖW(Psºi|¯÷Ûø‡fCE4Í]Eõ/Ðj%2½œÂäž:ŸI÷î_b]yGñH/Rª°îäl³x¸_®÷âä×SðéùÙéä·ë¤É ƒ"Pk(«TÌd@‡iê°âö^Ð:‰¢DZÙ±†§C`,0°F^ A£gˆ£LÑÓ7â{¿9ýFÚkŒŽO8)PûG¡¤øU¼ÿ ÅÕ$DÔß±(‚>†7“ˆ³)™‘Nô:Qw2>%Ý´¢8£ïlzb=ä#ÈäÇ^Š`IBÔ8’„ÎÒÜ€†º¡®{» U0î Ao[bfc/Q1“ÉåX«`Ј—á Á(¿ŸJbÒ«4ÊFIÌóFDTÇ‚•TÆ )©;?f"4¼ÓJIj´x ©Ž*)0>•  ¸:X¶Ó»"CãÄ•ŠK8+\ì%´Róº,­+K#yCˆ¡H\Öˆºh$Ëëb÷$Þû4Úd…¤Ø€Á€ÈkSÖ¸ðŽä|–XÉ&“g¶î(k'«^b9¨jÁá,fLq&.;4çéMñÁ+ÇJŽ>Ô¬eAMZ•Ý%é|YWû7é ¬u͸zŸú5o0&’ÜH¨4w“Ûɸ<±/`,©ÇRÀTº;f(Žýb72X‰¦KPˆ¼lÁ냥Mý†"1Eߎ(%Uöf}) 凤9U°Žu­MÙQç‹Ó¾$Ÿ¢:’xÅ~ бd¼K•ÛØ±„cXC¸o#\ܳ ñÑë Ê0C^'W•êÑÕœÖVå U9ÅŒeþidzQÃ\)7+hFÄ–Á¡óÏÕ¯ Ÿ¼?Ј%Ól B>8 3oÖj“ª^´M²£üŽõqþ ­z„x‡sl!ŽÀE.†ôî`­e¨;ŠÄfºÚæÁŽ| iS¥…-³$(#†(QºÂ\Sˆ–dO¤B­TâÎ(8ºû(¹NÎ&<׉QÆ:†QxÍ;¸Rƒ† ¸Ð#ª(H.ó¤ÆWy4d†~VÌ4fbÅ Pu ©F0âs.„Ìúbp©ª…Zʃnà ¥PÞ«Ò¾LÏ(u±PÒÒdT ƒÔ®˜à©`pÏÉ@XFV—†‰¼Aû~jÚhFÎÖ0î°4´.-’ÔF²#4§Ò "ËBÊ2DòÙxV²LåþRQ ;ö8ñŽr,8~bÏѺ:¤J$7Dà‹¥'}™It&³~½@yY;Š›ÞF=JC Ô”9ỈÒsš—ª´ cdò¤.çd¹CÔëAªwít0¨h]$˜ ®ã`+=vÁT¨ATªÔ+™†,*Ýjž•އÂ×(\… t±ŒoëÃô°Z¤JLÑ/•uZõ뿞âÓëäå%nv“ç³ÉÉ9ìŠÙõ$áf‚û½ù†Ú˜.ij{\ýoð1$%¾f‹É”='ï›ÍZìo—-nâh§¾9»|;vD¢³×ð‘ØG†_|bv–íáD€=I–š?ž]¼:kgŸ†ˆPÌÄAÙge<Šì[´¾YíZ°¼óÝnÙâË­Ùî—WbuMïö·9ˆå¶U(f³«‰7ë¥Ølñ î7õU‹¤L6øXeW$KM±¿ZsBHVœ¿:¿ìŽRÓ()ñçŸç–áD[–äŒ.É!³©!×ÙÑÔºh$| öh–êÆõ¨8ÞxE8øfNÇf·$@ Qx¼]®V¡DʼüâÍzS0iXC0 Ø…€’¿á„”Å3øIq$<¾OqPC9Mej´˜d9Ú_ÁØžß·SŠ÷óÝR\~^nçûU;ÅDl6-¾­šuñö]²zŒ¿˜åoÙÅŽc»Åšýžï›s@êÜ<äR*¿¶øRiìo\£dvG´Gñ=nä}Y¥qï.kß=ìöˆw¹ËØ@þqy;ÿ²Úl3Ù®Äc“‘cd¯yóü­B¼—ëÍÇí*+ìô‹4ÓÐ6{pšP»nAÔz±ü嘀.=MÇó·lDÅd´&Ù³‘`±Ñ5Ì’=ÕFõÔD(Äý¿¥&š4“2·›åV¯¯rÛmW@0¿ûME’à¢_PT[P”’Ô,Ë쟺ÕÄ~ßGìr—ãÍõ…l›;ñg3§AEd¾âœVD=Ý,æÔ)}–Ûi€ô™9 y5¶ä¶ûÆUøzåéà;£àÝïÿ}vúï£Yp¨ŽÉõæÏ3zSŠ¢ŽáU=¼ªÀûŽú{.2”b³X¨ýylj…ðtps‡[?ènOÂù­ëS˜uCB²\úªU©ê¥’ò ñ'-áð*Q‰ªüE}},E7Ú ¸DT0H1q‡˜Œ¤€òàÿLˆ¬/èIh?XSž¡n %—¸d ~¡l³$Õâ9T{Ì@FxiâdHv/ Ûxjµû¢Ç»o}Ÿ«Ö‹ 霃žtaÁÏA±iÅ›Q1q>æýƒS›×¬õÍTgÅ/܈dêÃöÐˤ1þh´0œû·àÏħYLÁeÚ@šô{g$ 7`ŸÆR¨DcæТ×6¦…Œi|3u<ËâJ¢?“ô¤\±,¹Üå‰$”¸Äô0¾Ç°F½çDE]·y6³µÙË„’¶Få¦\ù¼Ž6܈ÈNREÝKÁ_±‰Æ%v5 vÍÔE/4·2a`¬t{’ðJ¶~s€mÊ£ñÞ€îÙ~RôÆ~†ŽÝ¦0wqð?Ãì ÚÔïù~Ô¦à»,g¯žÊ­9¹&<sÅÖy}~€ô RŸ‘xa<¶…Ú1Å#ÇĬ!ú ¸ö;0&(?ö<»Êgæ[Ç×tQˆŽ$dV(©;6Èt%ÊÔvã¹È‡ÈÅÂ!±Âƒ¸—"lÑ-­¤gJñòËõÝÜéùà endstream endobj 716 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 717 0 obj<> endobj 718 0 obj<> endobj 719 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 720 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 721 0 obj<>stream H‰”WÛnG}çWôãL°õ½{ò¶–,¯½qŒØ4²€c,Š¢èH¤CÒQò÷{ª«z8cÈ» §jºërêTuQ›ÙÅ‹wFmŽ3»œU © QéÎX­~­ëû^Ö³Û™Mõµ´`úöâòÕêeÒ}V:eïŒ:®v³à•wôA{eè¡l‚gz»>jSÞÙÜiË/Ÿ-f×Vµ¸õdPõ*”ؾx˜ilžÃ‹F`‹ÄÅ㬠±]|Â>Çû†¨ðÇ‘XßE„®W¼ÙÚü¡y||l£îBÓý±½ßîÚyÀóÝjÿÐ~\¼š=_ ¨²P)*,Í9ú ߎ×'Ûé±í÷íε Ã;Ô½*HeAŠ^°è6Á®‹“SóŠ‚ÙåÈ5ËÏü{ZóïAùï)©DèLމ NÈôŠÍúÀÆ®ÖÇ6@Eß´±³Í®Ç„zÜ¢(¡9Ý©SKŽîÊ뵺ÜÖ®ßÀç­š"ÅØ’š[€GYÿüÚ1ßµé¼Eš¶ë½ ‘8e„òWûÕ—‡õî¤.^_b÷³«ËÙO£2ôÿ¨ï´ë©ÿŒ7&—b -µq K=Ú,í“U3*Aê)º.¢ƒï¡¡VöM@CÛa×=Ò]ì³&¢ƒ\>òmú(ø¶›;›û±›‘æ)7ßÎlðBuø«^d×ÿŸÌnP)k&nΚ§Üü—dŒEæõ±é&uè»Ü‡¿P‡jTÂ*F'—l(ÓÞ€mô|Ï6­CøA,8² &ÇìÊ`3…LFj~XCšØÅÔO4Ô×\+o­¬É¨Ñ(aØqyÁà«G¹h`1ÛÉßù”&;aì kµã —ïÔ·²wù#&Ï+LŒOY¶WÊhõZ}ø¨Õ ,b;7ÁE4Cï ËˆÛLV‰f-*žÔßé¾ ç|gC~RsÎ(8ŒÙäÇÞªf“§Q8‰Éõ aŠaÍ$;\m¼Ïca ˆ2‰3w9Nr| |E<~:^QCœ‘_íÊÓÞT#;­n T˜&pf8»m4EN"†"ãDÎjU6À4k"/èeAì‹«=ôoˆ+iè'9³‹yBrÒ"ƒ±¼#YÏšÄ6“c®î¨2îO²C48Ç<Ú‘]pVW- ŠcÂ4ã˜"ã{ˆNd?da,k$my/YÏCª‚–Y`•íY`viyƒ˜Hs?ÑPiîgw³QyÒP¿(™'©_’¾OŒD¶lƒˆÂ~z;ô¼¢÷]&²‹ÃÑX/+Ì„"Ù[™+}­Fb4´”#fB ڡȸÆ÷•T ãrä¼ÌM7F òWS g‹ãŒ5ähGÕ`™wp½Î+¸žg \ñ³0´GQ9S£¬¬:ç†îæL+/+•¹g¬ðõ!“Ñ„ìÃì³X«Q5R®º¿VsÚ¼ÁÙ:+£t‹““8 _ËÑKY€¨Ie¾>âÃI`hk딆Ì×Ù¨{†Új&¾õ¼‚nÌãâ\O©~²"é<±}úÊGŸó( ÌŒ‚M%A¬å˜äjS1€\ å¢l›ëÙ>þ¦êY>÷ kP#+,—"IkzR±nà лY !¢·Ce€Þ®öºŒ$ß«3/µi<û§±-ƒ]Ë…QF™®~T–¥I¼™¬àJV µÖg• 5ŠÊ–eeÓ9Ê·š¨ÐQP¨tP¶$³Üº0‚¹Êã©.UµPK9íˆnZÏ__Î~š]¼xgÔæ8{¶˜]\;eÔâv†,„¥ñÇOø,ÄœPwP«AÍÅ>6ø Òµ\¬ -gš÷»›õáö~ß×<¶¯`Ò³Iú,*ËFÓãóÅ‹5X‚¥9}òÅÞân­¾ˆÍGu{¿Ü¨_±ÛW»:á*‚®ØŠâiÞÿxõüíõo~nŸÎ‘ tÎ ;PÈêWÜþÒªv›íQ}9®oÔi¯¶»›íjyjç˜aͺõMYpº[žÊÃR• w}>›.}h-¾öÍq‡o–7jÿy}Xž¶û"luGo]sqµZ·"Üwì`nAEò0§B 05NšÒ¹í±ƒlÚ¯V_Gõ±¹ãÖ;Õ"êvÞ6ôˆéÛ¹E ËÚj5ØÀ’-=f³o¶ ü.åaÝâðmêÆå®>PBì¾æÝ/[]߯<6}lm—µ~ø|ú³5F#¶Ž!ÄQ:X —Í=VۚæçxJ´«;Im¿ÛÌÐŒÌDÄ÷éŽ^|Ç0V< ÃIYZë¸Šš«¸ºß¯~%C_s’®…æiJ¾½ú÷åÿœð=oбg>†¡˜¡ò±#7ï éÈÈj.˜o·œº„Q-Y¥f·)ø_¿¼f¹`ˆoö낃-8ìö¥†T‹Âb /¡¢¿Í®ÕÝr·)u•êW^©ãi „Úߊwj‘ë7hÝíiÄc14âñ|ê ÷šâŠJê‰H»ýnN‰IVÈJ•<ž_V'¢Aj¶¿¯•£Î²®—QFåN†nL4uŒÌ0cëÐQ ÿ×ü-µkîˆmÔ¼jÑö8Š@8tyjy»fXª€š+`m1„Q¼1 fYðEÖªYåùż%:Ñj >?95û2­K8ô¦cØ…!/È]o7-†>yÖ1Ëìü¼ˆF—%ß‹W[ùëuñ+pžçØ?–eÓîæX~ï–¿–ß-ŸÈÖFž‹ï¶›/½ç•ê¶5ÞžF OLÖ3#Ñ’ ¨Çíé®Úx‰±_Ö|^ï ûûe×"7r…áûþ}9¤WªÒçmì $@è½ÈUplØMÛaÿ~NIuÞóÖ9½ÃäÂ8ÄB&z,=*UKJÿ,ãî%\_ÊÝðVž½ò<æ‡=mƒÿñqû9û¹¿LçT^úç<-—á<”¯‚áü僼ñ~xû$¯¾§³¨ò,O—üM½¼ŽËßQ^ÜOï?Ëý2ž>ŸÒ ryM«¼aYAçFÞ7!Ò&yZ Yåh&ÛA7oaÐ]rŸÙ»”Û-Ëδ=D¹YŒy–gC–)ä™§p®ý¨è!2KZd¶È<ÉWMn®\È,ë>×~Tô™äo&c\䲚K×pªí `!PV]Òrò«\Tsác™À¾!ûQÑCdO±¹™ä¡“‹j.|(˜²=Däá^‡f’s’ÛsaONþ\õ¨è!’VY\¯l–¨t„kYãÀ¶•mß¶®©!«XãÀ¶5mß¶¢©!ëWãÀ6j¶oZËT ÒÅlZÇöm«˜‰5«q`Û V·Ñ/8#A­¶­]uåRÂN5l[µê6š¥†;…j¶^íÛV+5DbmjضRíÛÖ)5DbUjضFmÛT¨jˆ„zÔ8np Nû¶µI‘X‰¶­KuU‚3T©qlk¯£IG“Ž&MúŸi’¬“¹¯ä;Áª€ ÉîË’ï Qka€6)±©%«‘ó±B)±"©'k’ó±N)±.©'+“óA­XT ÕZX³”X£Ô‰UÊyˆX¹@P*˜#A«œ‡ˆõ ½RÏ‚b9«ª¥ž;Ýr&h™k—z"±z9+š+˜z"±†9ëZ%ԱꉄJæ<7ò nJ¬fjŽÄzæ›3 å!홌åL<yšdÄ<yîeÄ|yžå¨Æ\VdimH <òú”„¶dÚ£¹ò1ñyõuÓÜ9W£É¥r+¹ô©ç †>¾ˆAj9äæTS'CžØ3grKrã)ïŒ40YåQhF¼–SñÇ^î¦15d¨«K=JæáÒO<@”§+G•ìê\TP&Gn&Y N}YÒ1ãÚ_ÊÓ®¹o—‹NûuåÑš]ªr¿Ês°R-r*¿bóÖ©·Ð³ï¡ºÖA-ØvçÙRõýN¾¥*JæQæ®_\¨‡wY»Ô¾èõ­oˆ,?Ìz‰ðßÿ¸[qéø)qØç¿[q|³“µ7'¯ŠëÝ:Hwç2Áõn”3KASyÑàþ„‹Œ‹aeŸ•…l2:¶¸Ö}ü’åÓV(y»ó>îg¢}Âw}ûWù×’ù™ùÇiÛ½¬>åv\ûú©yýÍ{h {HÃ60 ¤¶¬ës{’8¦¡¬Ð“<<}Z_>¦Æ°ß2jÀ˜lŸ:&:IS7ï™ÒáËç…#¢ã·ñàxŒG÷¨£¡„ь˺}çÐxºT¿=^6žÖ°íSÇD'‰3$É_Ƒǔ˯>¼|ŽÃþ(©³dûÔ1Ñ.õ M|MžÇgŸˆò ­™¯c–ïº~ÿ)þ}êeÙ!qžåUÙmç³tZAJn In©u-ƒÓ£"±£~:~Ù<5#Ü/YGˆy²}ê<Ù.n¨8˜—±+½³Ƨ® yëó’cÜÞL¼*S“·ÕŸ’ëéoÏ~ÔbtTýZÑg«_÷ÑÈC¿bž›ÿo5¼èå" Ù‰ß-eu.ó‚ÕQ³m¿ þ{óYç>’äÓc)o†Ì«]Çñ‹ìƒO)ÕðŸcåÃî;žþ7ÖK©Lïö¢yér)•å’ì\^bËö¸>¾;ýýá§/o~ß?ýpþÓ篾||“»‡¼ÿðæ?ì—KÜÆF÷ó+f9 0 V‹e¢`I±Í8B‚á( cäE ?÷²y¿ûÕ­v ,4B„’N7O‘ÕÅÃâ÷¯¯n¥ài”3»•_Z«róþ݇—ߪL·zËz}«iš6ÝÍ‹o¶OUyóÓê*e;ôîÃïUþüÍæ–d,I.§””Ìûü훳xÎIŽ–véÓ_?|õýÛ·›Y6œëlæý¾{V‡›¿¼|÷êíw:ÀûÍ/;CÍá$vÙöÈ`úì®Yj#‹ÌÈù†¹~-û³ÌW½þ÷õguw%'xJÃHß*e–®­ûs¾v·½IH‹®‹¼Íu[`F¦ù´n»£,/^³|ÿÙzèª÷‘'®6šÌ¥DÏN>9Õ{˜$™Ã‰Í¹žÊ²²¹'ûQ½‡HΧ­ØI¶üS3©=9ÔY$½ÌÄÞAØÈ–žìGõ"ºÀs%³ü¼rQ•<=±£zÏyt©ÌYؼ4æžœê=DY*/æ¼ècMÎÇô"³.žå,·èyN/‘óQ½‡‰$:q2ò$¯uks†=Ùê=D&Ùu-¼”s•§O.ìéÉ~Tï‘~ñ½g’Œ'øQÔ£¨GQ¢>ñ¢ê‹gžW}åäÔñ° I²–.[ðñÔñ°™§'¶à!â©AØ`î Âù4LSCt¨•4cä:—†ŒòÜl<½Tç†,òÂ?è8f9åÊùײ4dä”ùBGyhVY§DæQÎymˆŽÅ“1®²œjjˆ,ÝÄ“QYº|éUñc³xjå”ùÒ«¬îeiHɧuá ÕmEÍÍêÖ熞 LJJzc–´žT³]MúKÈuŽ“tbÜn’y[îy‘ÙÞÞ÷ißþ“œÞ(5”%´Ì4PÖ3kgmFèŒÊuWíF•‚È'Ì}g•ÛQî5òè]#Õó±¼$öxU~>~6ºÏ®b¿®O]i;;4Ǻ\×…2╼Jü¦ ÄgÙ¿cÓìžHxÏ`ß¹»ú³DSÿüúÓ/>ŽÞ^óVNÙYÉ6¡¤$ ‰;à@–XòCè+rצT·Hž%Â8²þÝÖnìX¿Þ™üzõ‡û+yê C¹äÏþO}–o…ôv‘ûþÓ•<ÑÊ,;ù;kWôï*Ê›éÙýÏW/ïiz˪ý™è¢Š®”²úEàwu°ÿˆ8A| ‘v¤m‚¿æð¿1«£Ô­fùÇçOkÙ§ußm”xêߺG–¿—\êyÛ]v¾ ºÉìºúß_ñµa–ž˜FfõK³IáB^îhü.`)×ôßÁý+Ë7Ç¡+ýRcÅ´¶oDçØÞñmntYÇUwX…Z`› €nEâ+¾jÍB$&Eo£¯8üoÜFeÒç}Zÿ‡Û(ëmt;žJ•Ê–"ë|ÿâêo7¯Þ¿º¿~÷ñÇ¿_óË¿>þóÏÊpóãOŸýpÿZï»Q7zÿÏòä™·w\yé¯dd›¥Aj>H͇SÕžÎQwrL§¤;w|KŸoÛ—ÝŸóµ»Ë3•©ªPYªU¶~2S7ï^|xþöΈœ®üL·ò[å±/󡟽üöüQÖ—¹[ÙaËžiûìåÿtÿ×m"ói‘÷=P>,ç‰üþÛÿa¿lzä6®(ºï_ÑËQ5øQüZ:£X‰fd!0‚@°”…ÑÛ@þ~^±ëÞwùŠFœEbx@x1î£æa³X<¬zñæËW¯ó¾[‡//åZû)ƒÙoßùæÙÜÜ}ñêåýúïÏ›u·s;ý¸žâþõÛÇR¼.Y,m 5Øz½ŸÒššBìòóïÎe±å«m†vH9êZy„ØÀŽiÚ˜­«Ý¼1×ävTíbÛˆØ&D«’êóz@eÐØZZuÚÛ¤_ï>-;ävTíQbKì±sZ쥗t8k‚£jÏU<íeêG5ÏÃeiu8wH9ªö±UÓÌjž&».ÕT S[„Ø>Æö«êm3vê©I9ªö­nƒNãd[Ê©Oê©I9ªöÉ%m§¹½4ËfLwÈí¨Ú#$Ù i^ÔlG÷“ÎÜ=r;ªö±íXÚLŒ¾· ¦Sw¬U¶âï7SÙÖoK»™Ê5)GÕ!yÓÔl~±=¡á÷Õ¤U{¬ì'Yþ©;Rw¤îHÝÓL-um¥š7…R8ֶ¸;Ä{#f[ƒ¯ kËaÍ‚G ûVˆÔ¬xj"5 ž«xØ7¯Ì5ñšïkMh3”+Z„ eÊn–Œ t+( d$Ü‹BÂŽÑŠhE‹fŒ;QX1žÅŠ’¼J;v4ìhØÑ°ßnÃl6̶6µa ž,#͸ìoVðñŠ‘0Z4×„Õ !ìAÉ$Õgdkkà#a¸`Ù!,Wð(aË ‘tOM¤]Áskâñ‚¹&^¯àâ=a¾ ©€ç+X„xÐ@<`ðÔÄ ÷øN×Z,›dÑn‰ì:;(-ön²sß¶°í¤v½%¶_F9hè.ö5óeš'öãf»‘L6~“‚9Ÿ'É1ól?V%¶“m‡N½yl6¹¤·´Í¼!6/¹ÂÞ¦`—ä<ý:Lú9Ÿ&©Ã¡eÒAÁmôƒ¬í0ÇK²w—ƒ)ŸFDZ·ÎóF;ç©Å.Y¯856ƒÇQA>Í"Žd/Í.ÍbïV-}k?vR`Uíåæ°LË ›”ó¼!eRúA£Í®`!nÆEA>ŽAZlê í†Øme ò‹µ•Kì9K:Q†6ÙÕ+lÏó†ôÝe™å ó“mkùåY]–òÞìÛÅ,yêäÑ· læò²íÒ´ÎëdD—߈ëòàöã’ÞÆ¢™ôDö#›eÒÇ»y˜m.Î]Ú!Ÿ8PòÅ;;^<ù ±ósyñ‡Ó_¬Vù¿¿ûìñ)/Úœ¬qýiêì<£LS!KžQ£¼žù±/¯(z„lÏe+ÏßÝÂùëþŠO¿<Ùð4Mnì¿ò¿ý˜gU‹e@?œ?šKÛOÝp¶¿]~¦òßÁŠšÇòî¾}öøýéÅc5süžû\âæ|{ûÂyıº˜a”ëç<Rœ¼6~‡×Oí¹Öûòëþ€Ÿ¹%y2Ïiþ/nI_n‰m-&[™óßÙöwîL¿ÅG´\‡¼·}²UÓ†ßáuÐSzlhÿ§+õùÄ—·ôhÛ°:Y ô ëoüè|úÔý‡»_¾ÃŸè«íŠèýïNŸ;¹ÜÝ'1VÆîÖ’ïÄ¢¿¯!qJó;^"x„Ä¢ÙPüº?àçžD{K]þŸ_ü$vùI|^VÍögì”÷§oï~zÿùÃû>œß||ÿáüòóOøÇ³¾¹{ÿÝÇg{ü*?¾)¯ôò¢&%{ů«÷Ζ`y¡PÈ:V½Mšó÷væáü¯ó/:êÁ–ÉÆò2™ßêí[ëºRÝ¿äkû£Õ.¶0óâÂÖ€V>Ö·wß<››»/^½¼_¯ò¹ ýl¡Á^ÔëÀܽ¹ÿû^ý1›]Ý•çÝeX¦„{ñõ:¢6 ùߦË4ÙoÈÿöâO~üëúo¶ ²™ýIKŸnƒýöëûo¾|õ:ð»õÄý%Í£­Àìôö¶Ë‚û×oK7ÿ-À¥zÆ( endstream endobj 722 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 723 0 obj<> endobj 724 0 obj<> endobj 725 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 726 0 obj<> endobj 727 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 728 0 obj<>stream H‰”WÛr7}çWàqf+á~y\˦×^;ªÄôúÁvm±(J¢C‘ŽH™Þ¿ßÓh`f()NRª=¾œ>ÝÀ(q=9{ùN‰ëýDû.F\蜲SZJƒ_mRJân5¹šèP_[G §oÏÎ÷^,÷™¢x!Z£Ä~¹8+‚u^8i…¢‡¼ rk‹½ò]òRåw:vRóËgóÉÙL %æW“DŽD.k`ûüv"±y ïÒx1_Nè 1Ï“ÍìU;uofü+^®¶ô”šU‹-©¹k§? ^ve-Zß…æ›§•o:Õ~ž¿F†ƒèSǧ«mç˜?çH”Ë‘pÇã±õ²sM÷}½Ygÿ®ùÞ-w·Ùì‹9†( ”$xÕh¦°ó#€Êñ(¼7.´ó/CÔSg»˜ŒSÕi=„šH™÷EøýKÅ 'Ú)!ñϯF‚køf#ŠJjnó“м”J¬j¸()GLÅ´2ë6ËèZ6Š…Ë6»ï÷­Ca”j®á[w5sXàßöjÎw­ƒïíá®þ¡ÙQM³©¨þZ­E¦¢w€S¸€ÜSç3é>üCl+ï(é…CªBÖ=ß-ïoWÛƒ8{{Žâ<{~>ùeÄz iràÔÊ*3Ðaš:¬x"PLAÜNàÄ ‚àM¢›‰K]4#A謷ý– ‚‘OQ+P\ëùUÉ×^û.vVÙ‘‹AðØÅï(i!SE2ZëG9לë‚ù[!ðŽ¿œä#¨œõc½à‘ƒ_~˜‚·u©¯Ã-[t£Âx)þzaªÅÒ`±±Zƒ LÐ.OdÂÒ¯³)ÛÔ°&”íö‚î’ryJ[I4@4àÃA©‘[TâÂ8ÖHäi”%lx5æcï­“(JÄ¡•kx:Æaä4z†8Ê='þ(ãwç?c¤½Æèø‚“µ? %Å[ññ³—“Q7Æ¢úÞM"ΦdF:UÐëDÝÉø”tӊ⌾³é‰õGŒ “{)‚Q$ RãH:Ksꆺîí&TÁ¸'½Ul‰™½ tFÅL&—c­‚A#v^†'£tþ|(‰I¯Ò(%1ÏSQI n TJP'¤¤îü˜‰ÐðrL+%©Ñ≤:ª\¤`üÉøT2€âêDbÙNïŠth W`(.uଠp±—Ð:HÍë²´®,Xæ !†"qY#ꢑ,¯‹AÜ“xCLìÓh“’b"¯MYãjÀ;’óYb%›Lž]غ£¬¬>z‰å ª‡³˜}0Å=š¸ìМ§7ů{(9úPs°–5iUv—¤Cðe]íÞ¤+°Ö5ãê}ê×¼Á˜H²9‘Pi6“›É¸<±/`,©ÇRÀTº;f(Žýb72X‰¦KPˆ¼lÁë“¥Mý†"1Eߎ(%Uöf}) 凤9U°Žu­MÙQç‹Ó¾$Ÿ¢z ñŠý@ÿ@%ã]ªÜÆJ0†5tû6ÂÅ- ½>(¡  31äurÅQ©]ÍimUÎP•SÌXæŸv<5Ì•r³‚fDlZ1ÿ¼QýºðÉûX2Í*äƒ:óFa­†1©*àEÛ$;Ê/áXçŸÐj¡Gˆw8Ç’á\äbHïNÖZ†º£HLa¦«mìÈš6UZØ2K‚2bˆ¥+Ì5…hIöD*ÔJ%£»ï€’ëÔél‚Àse¬cÕ×¼ƒ+5h˜pb€ =ò Š‚ä²1Oj|•GCaègÅLc&V U j#>çBÁ<¬k! —ªZ¨¥<éÞP å½*íáËôŒR %-ÍAFÅ0HíŠ žú÷œ „edui˜È´ïç¡f fäl` ãNKCëÒ"Ih$;2@s*¸ ² !¤Ü)C„ Ÿ'9aõ(ËTî/:°cï(Ç‚ã÷!¦ñ­Ë¡CªDrCî°XzÒ—™Dg2ë× ”—µ£¸émÔ£0BM™“Äœ(=§y©J»0F&OêrN–;D½¤z×N'ƒŠÖ¥A‚9Ñà:¸ÒcL…D¥J±’iÈ¢Ò­æYéXq(|€ÂU¨@Ëø¶> @Ë¡EªÄýRY§Åƒ~Xâbõâí9>½Î^¾Sâz?y6ŸœÍ@1Ç•K#F\ð¥à'e|G'84ó[Üÿ¯ñE$%æÅ|‰Õü8ùØ\|kuêR³º»ÚìZ”›cûyþv-ÛÅ[ŸÍæ>žnËl’Ì¥l®&›ó›•h}³û–ÅÕfq->5Ålb³¨ž ïüyތåFÕ\üçů³7Úù—!SôµÙoÈ~§ôˆ»qvü©ë}‹.kD;õÍý~u)»T,Xo/ñÖ5ëvŠO…f¹8¬²üp³8ˆ…8Þ­[ ¿æÐN`³»¯«»Åa½Û¬¸ß²é{zëšår…÷û+l«MÞÙ‰œäT£Ühº—A¥eËP!à)øØ%zðÍâš Â5?î[|56bQT÷«»Ãê’€ðH¿±¹Ó¬¶”KîðÓ¬‘aïa½]#5Šs½(+Ò5 Á$(ÛìÕŒ]^Ð q¼)1lZÆä´Š-„Ë8{ÿæÍI aAf2Uå0”00 ¹€\­Å~¿âÈÙv"³*£kdg¢sÑU¾·†Ë{¶vJAt/öÿÛ.oîZMì¶»û}ͯÁ¶Üì–¿Ñò!g5zœ¢Oeû±ùð+¶ü÷üÍ¿Oû‡FE´Ã£ú0½ª¼í@RTèñâÉ5WħÔìŽëíu~ª¢@ø—;ÐlDme!Ëvw(iºqšGa:úaveÇË›Åöš@öì`_‘ùêŽÑ[óËY¦Ø+ð@7³ Æge†6oÛÝvš7]®ö‡»V•ŽIÍò°þ¶úÔæw]ÁèdzˣÒ*âÆ€Q“Ãt® T {ñTt‹["tl¾nVâ‚Û¶â@n0Ô ÞþéLS •&Ggç{\„÷Ø/·Ù߸гÌÊõõ=²ÃA˜›È:dh§xÕ:ÜÎðC>iêæ;ט÷±/„®´ßä9²¹f~Oˆô–ÌŠ-¶—4|Ú\Âáâ·¬ÌÜ@é¨HŠz[ÌVíˆ(ÝŶØ*ó Ï­¡¨¯¶Ùä]Ý]-–«Ÿr~;Ý=àñßêtå†Þt}§ç6¿\Q£S×öÖô±Wõ •qTˆ˜¹—}³ºÚÕ'‘û˜1ü?ûåÖã¸q„Ñ÷ù|œVc5IñŒµã‰³‹Ýq.ȃ¡{̑ƣQþ÷©êîúªÈ¢ìÄbðegûHý‘êËé꽎$ oŸbKóÖÆïñ’­y}V|\¥/‘ÓW»8×iXø´¸.>þ÷½rìzÃ̆zØÇñÛÑŽ™ \EÅn ½ÍÜßÞûù›?†®âÛçF¿¾Ž’dGü½UE5AµvgKÀæ›}ŸNƒ¨´ýÕÕñùPlo_nž‹ô¸üz\Ôuó3ç•×ïÖ´|Åë+ŽQü_eíˆtº(IÍGÖk¾ø¿@£z’ n–kwâ¿{Þß½ 7ðù6mÍÇG~8¬¹£"Š<4pô5_héÍêT^jY–®#^ecÍp8>=íŸcÉý’꫸îžèM:®2S%ö¼}|Ü~rÙÆ_¸Mu½ _3Ò%4¹»ŸÜgƒ.ñ:/ñ(~½¢ò.-â¿÷ôÃÏÓñíø?÷Ûƒîдe¯îY é¦W“©¯b‰”¿¹Ê÷Õü2Óu«U›Üâò¥Ÿõ—ïŽòocÑ”ÚÃÎÝ!}ëß7ÃE¼Îäu}yÒ\¬ùIݺ-³óîø-;ÝïìÌßÒAÒcÝÊš`ë–42úÕoC“é®›ÝPiû¿{ÿö«o]ÁCŠkÑõ©2‹/oE>¢sÅ™ã}:|¶/éîg)Î;ek·(Žÿ2K3™÷W™,އ›üÁêúæöa‡š™ªó²ß”vÓ…©Æx…|VÞùÆÔñ\­ÒÅÛ-¿0ï`²þ:ù+>óü Ÿí‡kƽ\ß0Ÿ2›¼ìø’ð¿Îj£³ÚØY vVoŸ^~˜VÓ²«Âì¼RM Ïm:dFN [‡Îô 0NèOÎ.«‘7 ÈÌ.f­Iû¯s³Ö`»Ñ òÉòÓÇÄ-ßѺ¸ÏxŒ·5ˆÈééQ@\có¬îcÑB—Úw¸Á‰páÛ¨[à¦l/Z¶_ KªÖé˜ÍËûï«÷üs:Þôi/_¾êyf¶ì`Z/wùÓ›Ô¦*yý+.Ë:º> çwé Çüýg‰-êôÁ*–!Ó_¾›³w¹¦Q(‹’â»2 œ~ÂJ“Üœø'ü>-â‡TŒÞ¹ÙÅçÇ{nþ®ø=?¤æoòóKY)ヵԃ5¯Ø?lwñ\àû"MDüÿö»\/~x¸Ûm‡C¬£É˜TX•ñ¬¤íÆ'âq}zx¹çoöû]üß°aWiç÷*mL~½//ãÔ…n]”õú‚öTµ¡ßX”mAeÈóÍÙíÙgoMqu(h}T-½6ý-ãO¡¿›º/W;Z›â¡8++¾-6ëŽ íâÑÚþ}_ ‘”'ïibÆ0 µ€^ª9}LÝo($hˆܧëÇmÎð©ƒI 5eæ9 d]›ç8З|´ …øXC:ºæ’Î̓ږªÞÖÄ8ÐU&¥ÔkH+&óœ†ÆÖŽ‹Të´ëÑ›Ä j@C_¤]fÃckçÇúfÛ‡øXC6ä•r4AÛÊÄxК”RC|¬!5ùŽþšÕ<¶‰ñ€ôZÚ¥‘C|¬!ï?»ƒèåi`:ãAoRJ ñ±–¬iáŽæˆK莨)¥†øXCÊÀ÷7û ÐLÆÒ\U‡™CÝ1»Ñ”¬y4íŽp€. ó)†¬©ØÝبz<3¾pŸ®kfR“B!•6—Œ[V6׿DÊ@~Å¿èˆùTÔÅ×ÅÙg_}(‹»ÃbâÅÄ‹‰/&þåLüá¬liLÈ*](µ¥;Êzd]‘ê8ÅX6#՜≱¨É™ L0D+D½*òD=ŠÈw’lˆºVˆªU’=Q•"§:‘lt+@í*Áž@§Hǹ¨qA X<ÉÕäd O’ Qé‚À±’[°ç—/ñž“°ÞÜ:Ö»òœIiþõk¼ù$,<öj¾ò(Y/öâs„S{5§@åQÂÙqýŸ$œØ«A8)*Ï™´÷RÂùâÓ{EâÓ¤ò(.öâ3Ä'öŠÄç =œA•YˆÏ Ÿ80Gâó…žéÂ,ÄgP!2qŠ9™/â)3¨23g '÷ŠóÅW-æã™½Ï >ƒú ê3¨Ï >ƒ~“ôz³Õ÷q}9À|™íK˜ç$SÉI0•E&ˆÏX"á4©5_DƒiBÂÙAq$œµG' ç=‘p Ô!˜l>5‘°ñ•FïEwq$èwíÂ~;A­éiõÂ#„mv‚ÓÓ èníÂî:Aeéiý£M%aA鉄½¬=BØKÖ‘žHXG÷D‚^º½$aiŽ„utO$襛ÑK¯#Ì‘xÕɳjnF/ Ž¾W$KðDâÏì½—½—½—½—½—¿¦—¯·q²»Æ®“iÎÈ»9ÉîüªLÆ&ØîÓ´ !) ©7åO¢‰`¿°(±û^Õk?KM¶¦mbWw7õŽVÝiM“Ux^!c¾÷OçwÈçJ,õ±}[m‡!ß÷§³›'Ö6Š&€!]X„<ì¥i9yó™šÕ@îïÔ°8÷µòŽy‚©fÌl\¬!›utØÕ›ç׸ˆÆÆ×rÌ‚çšh²æŠªÖ¦×Ù’‡×:*8–‡‚ÐQ­ÇèRIž\IÏJY-B‹åñA’W’;`ÌskГ[ÖD‹ÙÂøÐ[mÌcë¤ÉSkÓÓRÖD‹”#xÒvÕÕû. Žüä×KÖKÖKÖKöÿ^2{&³²Ø—’‘0\ëã¾?Ö&a˸*Ö ÄëF˜ÁÜ {ðDÂâ‘°x 8˜#ñ执mâñèÁ‰wžHXFšYF–â¼´DÂZÒËZ‚xaŽÄ{IO$,(Í,( ƒÉ½"aCÅI©_!RUF´˜[d½ðñ®’0£ð4;Zy„°¬ )4 ‚”ž- ØVO),‘xK+¯+ˆÇžH¼¦•Gˆ÷Äs O$ÞÓÊ#„…%`P)Ž=[ާÅÞØÞØÞØÞØÞØwjìëÍîéëó%võØ•Ú"(ésÅùM=ŽØÓçÊISƒì§õ{Æ#ôó8b)iŠ„¥Äúh+GìåqÄ2Ò Ëø\>B#Ÿ6ôñ8B ) €%|®ž®rÄG,M‘°|Ïõ©a+Gìßó¥sw$(ÖŸžeÊGÞ»çÊS‹¬õåˆ{¡f\Û ¨™®/GèÚóãÒ) “Õ8@ËŽ#V‹+#aµt}9b¿Ž#–Šk#a©t}9b³Ž#Ö‰k#at}9B§ž(’Ë")I’Õù°÷©÷©÷©÷é³Oöüd}X¦UEÂ*¥ñ¾-À.qM$¬ˆ‹„*âö`‰„í"a¿@¼XE€7K,m¯¯ˆ÷«ˆð‚Ñ »F/Ûœo}ì=£#VŽV–ÄÛVÄxÝh‰„Í£—Ý#aé°SlX")Í*D*HÂî=Å °^X„xIXÀ¢‰€ ¬,BXF¶°X"@Ïl$ˆW±Hð.V!^KïcÑà…¬,B¼› ^Ê¢ À[YY„° l&´ ¡gÇñœ×;Ú;Ú;Ú;Ú;ú_tÔžGí<ë¢%a6Wû†ÓÖ$ì&WEÂ’‚xIIN˜džHØR¶ÄÓ s$ÞNñ´ÍB¼¦ O˜#ñzÒ {J3{ Â~B€÷“–HXTzYT(Ì‘xA鉄M¥™M%aB¹W$l¨x")õ+DªJˆs‹¬!ÞUfžaG+–•€!…¦AÒ³EÛ â)…%oiåâuñ˜Â‰×´òñ¾‚xNá‰Ä{Zy„°° *Å‘ ±gËñ¬ÚÛÛÛÛûN}½%»ò÷a’Æ:AQ3¶¥IPT_ KÂÆ:AQin=x"Ac ±$,*Í‘°¨êi›…°±$,*Í‘°¨î‰u3K‚¤R‹ê–HÐX÷¢±$,*Í‘°¨î‰u3ëEõ½"AQÕɳ„ ÞX'(*Ì-²^x„°±NPTzE­=BÐX(*5 R’ZY ±$,*-‘°¨µGK¢Ò ‹Z{„°±$,*=‘°¨µGëEuq$%©•%?ÇöÆöÆöÆöÆöƾWcí9v¶WÛ —Æ’°¨óã>ÏC“°¨\  â%aQan=x"acIØX/*Ì‘xQÅÓ6 ñÆ‚xQaŽÄ‹JO$l,Íl,“ q^TZ"acéecA¼¨0GâE¥'6–f6–„Eå^‘°¨â‰¤”°i, ‹ZÌ-²^x„xcIXTx„E­^Þ~Èÿùùöáóðñí_·O«]’Ëòb™É³òíóíÃßþòÏoÿœ7ÚÛ²’ß}þîø¡ý±ùWi·Ôدþž×}ýqz|øæÿñöým¸/˘^> û}–ýùš¿~ܾþÓwŸ—|ûvíeNú 5NÓý‘ï>vk¦Y¿ì£·¨€Ù.»¤‹,éÃɲl÷|Z„”oD4ÛblSb#z·A*«v›I·ÊÃ?Ÿ %»½ãY<ùQÈö; Nίšr1&%vEX5N¤´È=öHœÓ)dÉ{é'–ý~z¦´ïü>-§ÍŸaËn×rÚNd;Ré‹’}òô ñÕ²ÇïúŠ=®^L?f§çìD±KŠ9ÉÈA¬øÿ‘â4É®™}hut•8l6›E{ÎNx)ÌaêäÍONÒì‡"m„_+ bš!e3KJGqÈy‹bê#C‡9yt'´î-9«¦\F\‚“Ñw27†¾zÖ_"?ßúƒ”o”Ô‚6Ý<^¿½úEÈ–|¿¥[ßI’ìI ÂQu»‹û&ý¹eãá¼c‡¤Î· <é–˩ǾÐu\rFÚ<¢fºB¤5¤‘¶=½M´ TÒÒG•´ TÒ¢¤%7JZB”´ô•’¶!FZF*i›#-#•´ô•’–%-#•´äGIKˆ’–¾ª¤%@IKH%-yQÒ2RIÛ>2Ò¢¤e¤’¶ù1Ò2RIK_)i™HK€’–Ü(i QÒÒWJÑãH#-Ù(i›g£#•í+#mCn.~‚¶yŒ ò5§­)ÉtÅõ¹ ž'€ð -"É*XN´ˆNÔÂô- å%G}z§£º–Ñ$r©kohˆ¼êØDa2KáY)¾2¤}…¬2§B B;©¬(] ÍHbüpwu5i†° 9Šœ›¾ƒä=ñþ×ßnÿ\\ “ÜT]kÅ©irÈw·ÉM€FìÛ±ÐG†´b\]‹nºŸ4ÑÜLzަ)WÝt÷ñÝ kÙ¶(5K+WÄPèj¨‚º÷ÔOššiB=¶•ŒÙ)“8~ƒÿ;œæÝœ¶¨¿XÐíCÙ>¥†M#Õƒ”kW5îõÝ­–ä’­¼_­˜§yyqòh‚„Ò|[>¼` ÑòÔ뺅'Ľ4dvÎô6¯uô‘×A Âë”ç¼NÒgè6eÈò»È;¡3øu;Ô WxðaK·(·ð+˜“=À}È"ø¢'is)5¢æµÛe“žW˜ÕhÛO“L0‘Q¾ZŒÔHÛ®é6¶Žº›ÌOªà?Ö0!‡IKõîPÍçWš¥:¹PCS@º“”1¢€}ZÒ£jš¹zSb~wb~·±«º›=À½Á_ê°…LI‡•£Ï$ p'a§ƒX&(T8tyÍî7Ã4OФÏUØ)"nˆ-8ƶ° 5à2ÉACèp·1¤‘f_£Ø˜i~\ »Ÿå[VLë¯{óöcû¯t0HDœ A)U$Â2åÚüUZõ°•aÇ‚ msàa’Mš.LJª Z((QÖC7œ9°Â2ÙÔ øA…‰g·ÏŠhPîÀƒ" ŠÙ*ãf{*D­ë³‚b”;° ØFƒ¢Cd s §ÄAe)€ókŠñÌA+ýf£A¹e­Ï…µ>ï%§É1i#t,fa'óï¡t+´ä G¡_¡‹UnÃêqwq¿úvÖUÛ³á7m&zQ7Y^ƒ:Œ_,bÓÖÔ‡óVÇ:Ä‚„CÄÓWIÖˆ‘Y/O)ŽÚ¼vÍ“m^m¬«»›=€gÊ©ì¿T nAÃdÒó0Ñí‹vÁBÏè67mT¸j³ÓN‰^µp‘æ^öVˆ/uØrÅh«çá¥ÚŒ*¤É„csIÖaÑíYPìË+·±‡2/íïù9U&¿ÚáGä`D1uã3Ä`T1H{¶³B&ˆÕøY1ƒ¤12_‹Ü¢­µæ…>§êëW:ú˜¶FÆïüŒ-ÎÒ% Ì¿Â~,kÈb±É 5!¢ 3M£#àÌŠ¯GÌšM¼2ž~ïÏëûÇË7¡_ÿûc·úéÛÝã×ËÔ­¿ü½»üëög>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 730 0 obj<> endobj 731 0 obj<> endobj 732 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 733 0 obj<> endobj 734 0 obj<> endobj 735 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 736 0 obj<>stream H‰”WÛrÜÆ}߯˜GÀ¥1÷¿E”©ØÅIiSyPéZ‚Ëuí…^,Eó;œÎéé,ÀPI,•´èÆô圾b³¸zÿQŠÍ°P® AxëëDÛHÕ¶¿JÇÅ©_Ü-”/·¥ó»W׃ëJ߯ Z\´>-Ű>,¬F7ÐÛÖIÉ‘é–k¢keº§BÓ*¾ùvµ¸ºQBŠÕÝ"’C…M'`¾Ú/Z/¥Eb«5ÄÕÓ¢²¡^ý;ÍvcVøË™(Ó8¤.VïØXZ2þT===Õ®mlÕü¶ÝmõÒâú·f}ÜןW?-~X?TA€(&ÀÅ·ó5^5m˜çܦl)oÊøSuócm_Ýüœ~Äûþ€ ]õõÒT§î|<‰¯®‘)‹¥îµKÙ(5bÉDàÊxöýzéS½¯U%}½Dê•z8ÕKé ß¬~#TËW²-ˆÿGMuƒ‚yc [ÛDK½p©­ï¡®(ðäVb*d¦èV"‹.È~µ›XÊ‚Ëeήï©@ºêø÷ÜóïI˜ï3S¹¶‘Áy.8y ×kvk,;{×µ%6À о©]£ªC¯Ð$lÄÓE±Õù^œk tŸn÷âúxê ]¿¢Ÿ·baÑÞ¹Æ ëÅRù‘pýQ| ýÇë¿bóü„ñ V–ŠâIÈV|Ÿ>·â±‹µžñ’5c¡ È[ÎNeÍ$[Tľª±¦icbO›FÙðªæ‚Èj¬Yo¦ÑŠfš“¡U8ËIG´q œÒ&ïYs©Ÿ—­~MsÉV65ì¨A¬6¸Ômšó.šÉ×ho_ÓL±áià‚Ÿfme#ö¡ x¦ûiŽÆãÌ,k¼²¦½3h€YüÐ7ËqŒ5ö!ò1óµ‰ÚàÙ÷Â*Ì{Þ÷ê2B˵•–‘ᙬܨI²Ï¢M¢•:ËA¬“\³Æñ˜¸˜dWüa.ØÀQ®¤¡'3É(ì ’}›et"[xeXãÙ§×C‹"ã½([d žsScÆ!•Á+TNŠs–âœób5Gp:ËfD!k2ì|?£¶†Z_Ø6Ÿ™Öl2ÍÚ2ÈLiv3 •f·¸_LÊãÇú¹ŒÜçúù<Ïž™Š}P£pœ˜é¶‘OD“©‹v&k7Zd2ù„œµH0*ï‹Xªá™6—ÃN¢ÍlÛ$ãõ<–¦âm‚NoeïM|¡Ñ©Ÿé¥ÞÌzMS¬°•ìk æ‹IÅK¶ éå¹gMš&_j ›Y¦ITIö’ãÐöX' zX’F›N0Í%·`«d’%<æ‚kŽ*%ó¨Çh#÷ >uF9÷”6³.£-|fñ#„0Ë"fæ9K·k3ÃA[LMbã©)½¹b ­ØGHÕ…œ+G/›£ˆâ£|Ù kGÐyXI}‰€†t!¨¼Slâ’£IOŽ ÔÔý”;.8ÆÍ<`oê)S_l)<34[0ךTƒe¶àz]Np=/¸â—v=΢ôLɲtÕ‡§›‘–¾,L”νp…¯Š¼Ù˜MÈÆ^Ⱦˆ¥E“ËUìK5ç³ÁZ•]éò´è¼c<Ã0¥1'2Tà×B|e2µetÒ ÃÌ”ÝØF¦ZµÜøÊð zž‡äò”г¾ 3Áø1b“,Ðdr’$zPº êÚ FŸ_Y K¡´Ë6Ó¦#ûÇ¿ÉV½È—9a *#ó Å¥ðy4M^R®p˜Ý Æ1ÛÖO`ö­.³žW’‰âÂÖKÃñimçÅÞæÁü°a–éÃLêÀr#g'¸’ÅC©õ%F醒Eé–’eé¦ ŒÒohnÇÌBiב%´@¦Íç]®´Ð\äéˆ —ªx(¥œOÄoZ?|¸^\½ÿ(ÅfX¼]-®nŒbu· /¼æ·"]¤-&‘¶«=¾6ø>j[¼o­Ö|åÅêiñ©º9žÄù¾züªéc¦êë¥l\5Üw·Ãº+jW=ÖK<•«¡ت?‰uw õПE'ÖÇÃpƪ«?¯~Zà{GJÀiÅêbÎâk·{ìb­ïG v÷Ý×äø¶¿Ý®;òªs+¶‡‡Ç³H~–ÅR-(‡;JoÇz2Áx8žÎÛ[®ý¡û²ÛÖ`¬:l(àN¨bhAÄ''ÀØê¾Æ«tEP!P^ëûî°É·Ïì¦Û³¿u·Û¥‹g‘$k±f){_C«Çí¹¡è~&Ï`GqÉoÉb`³„Wtt;ÐÿÝn82þÕwc­Ö dÜÒþLxçíñ€lžÅðø@èûÛ7düåY<À=²:~ÝÞnÁÀãaû+È?¹>¨¯1Žë“•cŸÝá–úMwî¹€ÒÚ»#PÄê$ún}/îvݦÎÝv‡æêå0/ª‡I(Mh9Ööpw<í;‚”ørD¤®D@W F;ˆŽU=#LøúÛ±áè›éÈŒâ2ž/ýîXcgTOuˆ€ÑP¸Ä; Ѹ«©Ç55GJ²ÊòAŒyÑáX9¬Ÿ'J ¼„êF¨†ÓøÒ£ï·Ç5Ûñ.9ãz!ìæÔí÷õÒƒ€]ŸxÅø }Ï1®®,€!¸Ãú°@µôE6¢þÏñþý/œf-¥D§½ù—xè6½*¹¤µÝÊâ#™“%ØYý‚Ý¢y·HE /ENWRÓˆp:âã&-˜Ìtæ\qô¿Ž›š–:ûÛ‹±Úï»/4²Ê›ÇÝ.ãûö"s2â5¦ÄQ¥WÛÜ>+xóãÍÏâ}èOÝ™ª¹ÄjâÁЯ¬yꞇtq>¦H"ÒËë¥mÔ!ä¶¹¥ÆÖÕÝöЗÒsÁ|.X*´w„$mº—6Œ¯†4à÷$HZ2ß3ÔÕJ2ÖeIÚ³^m½mKø¯ð‘,AË‹HE ˆSi]Ø úp ´HIDJɨù÷ofvIJîIƒôEâe¹;;;ó]ÈVÍNá‡Õ*Í~äƒÐÜè¨1àhL†6î#õ|#pFç+ ç¼ù ÚÀø„ØEÛ_Å# €Vd|¾5œl 'Ãá.¶1³IL†câwعæ›~ÏwœøÜ9Œ´@Ê=ü_ÇŽqkç¼\r¢ºˆ\ Á"-ê»w›ÉE6—ø6ë-Í Ø#ó÷Ä•”)Â$þg¡ƒ²b*ÂGûÇOÁÿKGøíéHÆt$Ótà@8šÌ¦ÃLÓI:’1’ŒØ&#òËÎ;×ö„ù{QÖü~zØ#Œ«'ŸÁøúYà¬E”µÙ'[‘Ç“6tuH:½æ»wž ÚCØ ?Z0©ÆŽÐI¢/OJ@ꙪŸ9}Ä%i6cœ™\%fäUáºõ”ë˜èБؕÛÍmî¤Bf¢èJŠq;ýöpÿöÛïÞSø!“5gá+yÿxª‡Ð±•bñy_µ3ߟž-R‚c ²ª¶?ÕUwY4ZÔ5"xqÌ£ÒHRmžÛ;Ôvè“Ø@êNðÎÛÁüPª`@*AnÎ Ö 6‰FRÝUxrç„~£JÄëñÔ@$„ x<èĕι(…gª­.q’]&™CÍ×VTk=£¦ é$Ð „\€3±úåÒû]û§•r ®ò™ð± äx.èa¨ùÛbôÈF-"Uß[\¦„$-}Î]ìïøÆ“üR…^èÑS¦r_¬)!¦Lu¯4­Æ”ø–Ñ1¥D 0œ’¸|™4ŠÙ¶ÉOÀççSÝ“r†!Ú¾†²ã ò‹Z]¹ B€Dp¹!®ÊÉ/ém±S¸~òoåêÃ;ÄûúGeP•²íµ-Ï0Ñ\Œ $ “Á œ¸"˜¦D±½ÛŽ%o´A@å1÷Æù ˆÂu’ø2‡§øÇ²šÂQ“5wf” ±Ê¯©º °bÙ›ùÚ˜Nͤ܊™Ãª¢``uÜVN¸ "ÑP:;¾Ñ¶m×K3Š&ÈI:lä€ ¶Ø‘ûKo.æQ3ðu ‡Ô*¡ÓÆià0׬Р(&xgâRƒÖª%€Ö#LK Òç!‡Íf8‘[´ ÕP¡ƒÝçŒ!à}ýjÓ6" ?z•<+w•õÿjN)a=ƨz¾@†ŠžZhè*¹cé´ßÒð7Ë0@-?FX°™™Fr:蓎ªz»å“=@:Y>½âsšÅQQ”ئ ”¶ö—`$1¶ˆªEªú鳉A¬Or” ž[’ûv&tW# ¨"O˯·z­½œš3I]OÕU4FªyäÕSY}”G©®µ%€@Cv¤pAtªÃ;ìþ*¹¥¬ÆÀ´^Ðð OQ±ÏíÙÊ“*ˆ°Ä_½‡s þÀî"T‡¼ßÉšrÞçüB"pëè6l9E(§’‹ ÍjË€úðý^Ÿy¥^Ê Š/DžÆ>µD Ñ¥ È8û`œ} ¦ã@z¥“Ó€ #Á¦ívð:B§‚œ”µQij¦BÁI£ÇDŽK\®IÙ}²°yŸ‹†Çöp²‹1ƒa9ÀHÂb"J—¼ä²K*3BeO›Ø‚g[ê0±GsEN콡ÿ…3 Û]Šb@åüΚÛR:ˉQe‹—šGá_µ„·³æ‡"uœXvÔ@”¥yrå½2w¡rßCÑà5Û*l#Ñfz(7œ.ïÚ±äfý=ŽeeåOÀž€)ÄP®G!?UʳBñRB è¥+²I{ÁÀ®J’l•D65"_1Z“9©â­¾!©ùy¹õ®ñ}£kÏHéÒ« Œ£˜à\ç3ºôŠÏEÝ€—å–0\Z‹b3«ì²µ¦r¯æ3JýcS}¢¥ÝÖÝK ôJ ûý{uy ;ùt;®¸X­ÒìG†úDÙAFàB±ªçø¶†à²*|L|³¤&OJosàݶ a4T·`Ã~ÞOÄ)ªgõ’`Nù Z€jT.ŽìZµ©·µˆ…nF‹RG¬„Ũ>³|º?ãö§Þk”4#¹r#`ša·ç~ºxcU.í?¯x;tÀ+¼­Zr¾(n*jí·ŠÜ¿[z÷í¦râasàcM…ÐS!Óï«òÆÂ2i–ɆŒ;0cœÕ¥¯eKQT˜„Î;<´Í`óf/LÝž¿x\¹\ZÆ_8æµ¾*Q$Òž4¯ç6”r Ž— U¬-ZuC­2|"±*;ÊH€Ó.Æ] Ýmu¦   8Q¹$Џ÷0èƒM5áò…Ю}H8Wi>'3ÿ8ÍÁ!\jÖ»œk¦ï~Ù˪”ÛMÑWÌâ¥'ZözÇ¡÷އS¿¼jQé9ú_¯ ï¿­C#seLE'K‹f {FZ4“ÍÇc‹få™ÿk±!³a,nRÇÜ/e^ì¥MÝùõ ƒ{<Ã/ºš¸!§ŒðæòjI_Ñ-žÅBµˆä†¤™8‡”ÖzB(J'(¢,ÿð¨§w xæA !”Ž‘ Ðq$Ào¶A(Ú-b(Ãbnj[óüeÍ'®&Uv8E“r™¯gæH_0ˆ¤ "Ö&Ar.V,w9ŸZ#œsÕžÿ³DUûï~xóøóL¼çËu”MäþÊ!^¨ˆ÷x¢2zaÆ=RGB\7Ñ̄ڸ’+ ~Ù2M®Ä¹qK];Ãv#*’M€õ6Ô¢;I7wa&œ.§v–(öR•µ kä ŽqïùÑ­ ºc¡7÷A¬*Ì0åÇ,\'ÖvÕ®êo¼ãß|—Á‚0 †ï>ÅŽÄ„D‰zð®Æ‹y2.Á}{Û¿žl´ÝÒýÿ7èõÓƒ»2j->”œE"ÁÜpëbe¡Â§G3/‰Ø4yÿ aÔöóùh¶e!Èq}à ¦j‹›"³„)• ë:°í'äae‘ ä0ë5©ÀmK*”hY󽦳wE©wÃ5Ž$ÛU£É{3M’J›T˜¦v0!Öh ãßT÷Ù—4N®A‘ ’SCb;îwj²ø¿å:;Öè,Ùù&9°ÕÊw” —>òHgáah™4“ø…b”4‘Nº¿˜\SˆÑ—Âçx˜®°W•‚2B’µïòÙ[€É·¬J endstream endobj 737 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 738 0 obj<> endobj 739 0 obj<> endobj 740 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 741 0 obj<> endobj 742 0 obj<> endobj 743 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 744 0 obj<>stream H‰”W[sÇ~ׯ˜ÇÝZÏýrÞÀÄà$ˆÊ¡(!˶8²”X2&ÿþ|3ݳ»’ É)WYÛ½}ýú2³J\MN^¼Sâj7Ѿ‹Q:ç…ì”–ÒàW›”’¸]N.':Ô×Öe÷'§;/;0ƒLQH<È­Qb·ØLœÁº/œ´B凢¾5Ùˆ(¿ò]òR•w:vRÓËg³ÉÉ™JÌ.');I¸"õÙÍDBy ïÒx1[LòbžÝO>4g/Û©ë|svN¿âÅr“ŸR³l¡’šÛvð3'j¿eZ´¾ ÍWŸ)ßtªý8{… ѧŽ?JWÛÎ1{N‘(W"¡ îïï[/;×tßVëUñïšoÝb{SÌþ<Ò`E’/ -дv~„B9Á…ƒ÷Æ¥vöeˆzêl“1bª:­‡PS&½H¿¡¤àD;ÍH<ýÀ¨Œà*3|³,’Z„Û<šH©$cUÃEI)âü`Qü¨ÑV¦Ëź)Å2º–-ÇBe;;ïw­Ca”j®à[w5s˜ãßæjN·­ƒïÍþ¶þ¡Ùæ"šf]Qý mµ¥½œÂäž:_šî÷ŸÄ¦ö]ŽGzáªPÜu'Ï·‹»›åf/NÞœz)ž=?ü:êz iÊÀ y4”U*–fÀ„éE™»ŵNe¿*ù:kßqábg•¹]üU’6d$``ªò„†‚ÀúQÎ5çº`þ¯Hã_'ùÀ*gýØAÏxààצàmg]êëpCݨ0^c †_˜j‘C,ö1V‹c” Ú•¬Ð°ù×ÙTìaKXX=Â^Ð]R®li+s@ 8ÀrPjÄ€ŠJTG){e ^û±÷‚ÑI9JÄ¡•Kø|Œ6ÂÈ $òêâà-zúN|/ãw§o±Ò^au|ÁIÚß %ÅñᣓQ7Æ‚} ï&gS2#™Êèe¢îd|ŒvÓ*Ç}gÓ#ôGŒh&?öÂŒQ$ RãH&KÓš< •îí&TÁ¸G½U¨ÄÒ=#tFÅÒL®ÄZƒDì¼ 0FéüóP›^¥Q6JbŸ§0jD%q,¸1P)Adœ’ºóãN„„—ã¶R2Z<àTGµs0þ`}*Ðâê€cÉNï*Ëä54N\I€¡¨Ô²ÃÅž“é 5ÑLZǤ‹¢b`Ž+Q³D²D³AÜ“H!&òi´)I‘ƒQhÃ4®¤‘œ/+ÉdòäÂV ¦¬>zŽ¥ ª‡³˜|P‹{ 1khÊÓöA”#œ£5k‰Q“V¬ÍI‡à™®ö)éÖJ®Þ§ž&Ã0eÎú€“K³ž\OÆå‰}#§¹€‰§;(Ž}¶ ¬”·qPˆB²àõiS¯ÀÃòvÔ"pÀ©jŒ7ÉKIh(($M!(Æ:VZÖ¨ûÅiÏɧ¨Ž8^‘ÈtÌk)¾s0‚5tæ6ÂÅ 1½>eP£ 31:9vÄÕËWóL[U2T|ŠKý§íF s\nЄˆåÅ¡õŸ7ª§¹Ÿ¼?ˆœi1P!ä3oÖj›ªÎÒ&ÙQ~ Çú8ÿ„Q =B¤áYH†"p‘Š!½; µ Uƒ9†;ÓÕ1väC›j[XÞ%A1D‰Òqçn´$ûFâÖJwAÁå»ï€’ëÔánÃSeÐ1Œê@4iP¥  P¡G H*õI¯öÑAæYQ§Q'V ¸UÀj#>çBÁ<е‡JU-ÔRL)p¡¼W<ž·g”š-pZš‚ŒŠ`Ú± Úú÷œ„%d5L$íû}¨ h£ 9H¸ÃÒdšG$©‰dGòžJ.r³ !¤2)C„h>rÈ «GY&¾¿Tò{œHƒGïCLã=ZÉaB*GÒ@š°È3éy'å3™äëÊË:Q4ô6êQ X¡¦LIbOðÌi" adʦæs’ïõzê];,ªLó€s Au,P¥Ç.¨jµUjŒµ™†,j»Õß­J²ì|OÜÕF”ܧœ8Þé|Ñ­é›>ýÀX¾<;ïrä³ëì1ßí–·™q»Ú/wj±ß`ÀÍòù÷n³_­3£VžWRfIÐ7_—›br˯/rкÙe檼ÚW÷гR Ö^ÌïØE‘œýD ¹>!G •âQéL-]6,2–šJ—Jé ¡Š h’,WÀ «ò»£ˆKZ‘C]30$údHÇ—tŠþy~GóÝŽÞÜîw”ÉÉY¢©Ðß Öp³R6¿üvþâS†ýýë×,Í3°6zßÙ5±Ý,J¥vË‚zé£q¥9êÜ:|+ÕR(/ZìTgÎôRäfhÑTªÙS)W›ÃžèÄÛ-K,KÂx9Ïtlö­Ê“õy»¿.v–⢾™‹Å$þhŽ ÈWd4Ì­Íÿï¿Áé§çOgO?ž¿;;&äo/FqZé›Þ2ðG+æô`Îò¨Sã±ÜqÁ:žœq¥*( Âø‡ª¨Ôƒ¬¸>×ó¯K© ·Xoÿ‹¿ëBn/óÿ‹åzþw«”–m¥óRÓì õ“cdržžÒ³<»^íÄÿX¯Ò7Ž#ú}Å|$“™îžS¬”µì8‚] `Â,9<¹kýû¼:º§‡\G6Ârjjú¨zõêÕáé´9ì“vOØùr=SñY Xa²'kOøÿ4žxÓŒ‰êŽ8@ÈTäL€œQÈ%ÏÍöŒ–íBq?òÞØ®TЮ`%P œ¾%ÀËÏoöÿ)?Rh|ýM“×í^ÀŽëRµ$ûóîqÀiÚýé¸ÁEД¤Œ¬xqÛCDW\ÅH^5D!5(‘nÝà:Ǥý÷¹Ùj¿ì?o:Á&®­•£'½ää^æŒ8¤(®‚P1ÌM¿¹d¬‰ƒQ<祯|7Îéd(`w…\»4ñÆ”¯@QKú`±7¿ âO9V –g ~s¸$Dž‚'rE9lSáÀZûvÕðç-Çkž‰\ ¤.¹Ç#‰ýz¡xQ ùzW1Ô}ÈLŠ­„‡±Îe}"8XÅóg6â¾Hº¥X@MŠ.\je9 ¬à¯°+ -­æ¤‚“jè«©Ãr 7,˜::R±?œ’AqSÿf+(}ªËq)‘'ݘ‹hM™šhõ L‘x´à!Wq*&¯òz V侮Ýhªš›KZÚ€èÀÓFyz6®SëE”×!9ðqž¤I+tª"EIfzn6[–qüˆâ’è¡`PŠxI%Ðf‡“áó§m», g+šV„6§ÎpìȺ–<¶”V#¼hGoP³™ñÔ¤ûÅ7 ñø#uõ§¸üÔ+joŠcVêAo:%CGrD0?ùÃzqÉ¢”ËŽE+:4ÄÓ¾;5ûS÷&ùD+)[Û,&ë~Û »§v¾Ynú–@Êâ€>4¶Vv4*ƒLî*í:9TAñ¢CÕ£ój Ýý’ÖêëLËèÝÇû;¾ë{&cž õœÃ‘±(ï>}?íC;ÌEšdâJuH>«vÚT>hSÂwqûæ–ÆÌæE:R«Ý‹¸iN,¾ß~¡×ÊNspÕª]è±ü5ó‹.5àÕÇ/ tVRgG®ûEîeå#Ë©æ$ƒÜžg¼U`O¾n´Ä”¯©¹{&ÕOP8ï¨CËÉêü:¬A¦îpÖç9grÀÁܦ:ý\²ÖhÇ-ÓK¢ÌÄ”œqLN"-Ö2,1–$³´9a©K^6íb3Ÿ è7û§ó‰=0M¯ÊOê‰p‰1éwW_ϬyW_!=¯”êÃm8SÜÙ³‘/ŠÉh’ò H‡^³¢#ÊÈEJ±æ| ÊälÑ-é~bßóGtK¾¡m" >ÉD$ŸÍÇDH›%s3ÊT†€ÓqJb6‹Ž$ÃjHVúzýÅSˆê5{-Ýõ ‹Q=K*øß><ÜÝφ" ²¦ÊêHÖ¤Vñ÷óØ—[ÜA ÊF½ü(hçK%(ºGŽ%10ëÌÕ‰‡•“âÈîÞßÎî¾rX×K°pV­¸€)8ôÒ»Nöœ‡¦úÍÏ’sæ7bÖ;ô 'YF>\)Jö’÷#·i Ú†MÁ¯àGZë92Ç$[]j°¨8F¤FS´Ž­j½þ¥Þ~ƒñTÄæR…öv+Ÿ°üîÆ–)qâDc>Aï OÜù™T˜•¦½LOvú«ó^²þ¶‘ne©A®d«Äk-aDOR¢qƒ”Ù€¯Tñ*I/‘"<"eEf./&±û–Ê•úT::†¢$¡‰»‹NXB¶–•»Mmؼ’ÍßKƒw"ghEÒà´éfA†cCª§¦›Ú‘Tù’•NÖ6óµ×~:e”Ò=šów]‘Ì;Ä E»ùþZzÛê‚Á¼+Ž“•‘HÎ&¬>ŒÓÖ±ºO®Ž¢k=,L鼂äÖ2{^DH>é‘Á?|n¢à ]Ã31ÏrÛ¬D?¢¡±Ôß’u‡Ò‚ö9wƒnÊ-—yÖš!=ùe‚\Hʳ—ãæ¤ÝïÐwðO¬çýi³Í^…ë\"]Þ&%¯—ƒZRÈG:¡aJj–e ½mçÍY^·^y7òÌdé}.ß¹ú‰lƒ&AæjÍ ®dR*›zôMâ÷—B²RHD6T¿äBœñöâÐ%W ¡®LýjGè9vÀ(8»5‘H«0È §œ<Ž´§WY…âRVî®â}©4f8ëù±F³z¢É°kŸÛý7Œ¢pw-ßzj^yT% â`N Ëå–Ð PdöºAþÆH\S…È+ 8‚ä ÑÁ/ªJA•ÈNH pÈCkíKâE‰F¡IÚƒ–‡cO æíª®ðÓEsjÐPwP}%¬~g×ýxÿùÏ·³ÛÏï>~ú0„°L¢¦Dp±&θˆºæ.5ÿ Mç°uóÜJüÑW·‡ù¿èaþe®‚âZ´ÛæËØþC›u~¶¨+!^úa ›È…ÝzMæeD.þ}rOʹÀ–€²9×DÁ͘à=:®ôm+Ϥ8“ä[bk’ôÆ k°ÃYý~Ù$“ˆƒzdÔjõô•œ¾Iòéù‡©è,ÉQ|Ô9vÜ&C}YÔ¾‡p3Þȼ´¢†}¦žITn¹}&è&ÌëÆÒÛ7Cy‚yÒäWÂ$ÆÀ߯5†‘\„Qƒ2¦ÛC@Õ–[«Úå[øžÅæa³ï¿E*gë£øv2†±¼Óôôê«ä¡=É[IÉç¿›qVMi)ݹC—I\™™Ô&ÇöHþ‚;þÿ_’Ÿ2‚·M¬ðó?Òdqó‡÷6Yu7¶B~²:)"YåÉ.Xr(8“lo\Š '\Ôy´¶]ÔùT5,Y죖Þ'CÖÓ4ÞÊ["@ÛæE죖ȧ¨a)cµD>5@’W±ZzŸx·yo‰î…wÖè^jé}l½—Å{yKïó$”á$¡lÚ @€C PjaŠÇ™~;뉠ÄÙRÇŤ?-O§ ‚ÂÔÓÂeÌ ÐH®´y‚¿– s¤\T[ 2绿þ@,†2Ú0•Ó,ƒâD½\S+‰<ʲÊVÞåö,ƒò&êDo<©_ ׿û@¯÷Ÿ³YI•‰¬ÚÂg Xå<«Y­Ü4'<ÅB))Ï‘¥œR˾º° Ï€8£#øärƒc¿Nni8Z¨Ôêè+ŸÁ~e[Rq½OQMë:^ÇVéÔfC "T¾º°`åÚqö.u-áRÂÄÀPOc÷á3pŒ£ÌMìô3Öû5Å{hÉ/¿º°`嬾è}2ªO¯SP¼‡-´NôÕ…+¦Ÿ’ªÚÅëT%VÎH<‹¿º°k©þêQ“Äëd¢(Íd;£|iÁʶÖë}  /ÖÉ(ÅÀB¹(â¯.,X,Ã\Ùûähôé`â”|P1uF(&<ö5Düå–k¤“¥ŸaÒ8Jr”.’½& lGO%#'²è jèWˆ¾Éëé ½Å³sW ,„ƔѭšeÒÏz‹_§?Š_'úJ׉VÖu~õ„»«^Çawµ;õt‚¢oúÓY‚$8)/( $qv7£\‰Õ—K¿y–Z.Žhsï6>_ݼr¢¥›—º9a¨¦îÖß|ˆmïÒ_|€_ÝÚ–5Ñ£n…­µýÖ5^fLË9“ð(¯räˆaÖïK2)2këô;ü‡TöÿÛ/Qš8i1X˜¢° Å|þ-`á‹㳇!ÝaÒéñnt8ÞõW°¹µ ×¡Þ[!k!øqB2Õ ÏŸÚãݺ£@­íŒ˜ÍL8çK7¾Ú ™ÛJ»ìB¹×‘K9¬ËGíA¼Îõúþœh÷‚æÅWø#à¡R÷¨*äÒb_»ÊÖ9ŠÔ÷€˜õN{Ì7wO̱+bê1ªÇp¨ž”ázÁ5WḰ,¢£SR þÂßR$×6:Õ¹röùWÒYÙ¥?§¦ÁoNÊ~cŒ\&UޝÚ ˆ×,ô{Aóâ«Nc¬7.ÂÖX„ØŠs¶"^g,“h÷‚æÅWˆ“4ÙI&ÉI:føžaÍMÖ1ÒQeÖ1ã*  u¶i¤…aXÎã|HWûÑ¿=N>2å·ŸRøŒm±Ñºü”2œ§ºâŽí‹nhVúøœ–©$ "q!¶Œ ܹ[O âuFOí^мø²€RÛ#I{%ÿtís¤WÂyìÕñS·ÿ_⢠·Éᄘ£‚Ý*|ÎôQ¯3ö‘h÷‚æÅ—Ľ-ÓÖsi@SœÃbÚ:GÖ1¾L§x7³Ž¹³¾¦/8ªÌœÇ[L8rüû-òóáìË> X*þñlÞp—ê˜âwÏaÙ¸Šx$¢ ÓjÆ*¼XA§šñ ¯­Î1HèÃX†ºü%„s¾~ië endstream endobj 745 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 746 0 obj<> endobj 747 0 obj<> endobj 748 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 749 0 obj<> endobj 750 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 751 0 obj<>stream H‰¬WÛnÉ}çWôãL`ŽúÞ=‹ ÀZ^2àõÆbâ¯r,ÑáEKR«õßçTW÷\9±`ÌtMWÕ©S—n*q;»x}£Äíi¦}£.4Î Ù(-¥ÁS›¶mű›}žéP>[G¦_/.O^¬NÙF!ñ"C´F‰Ój?sVXÓ@^’<Ó'ß´^ªôMÇFjþør1»¸ÒB‰ÅçYKE+\ÚõÅn&¡<‡ `‹–‹ÇYåe½ø=Ãz=*ü1mèbñŠ••#åÕããcíeãªæÍv³¯çï4«Ã®þ´x3ûiø!ŠD/°5ZÄh#L|¯ º‘qŠY&´„›¬®®kÛ„êê]zˆ×Ý/¦êê¹­ŽËóá(~÷J(ú¸z0FÌU£uK&o6°íÔóÐØêu­+ê9 WNüx¬çÊC¾Ù Õ²ø…Ð’ß”,ÿINMƒ„ë(6Ù´ŽjaÈ­ë¿!¯HðèSb*f¦èS"‹^H vŸ$X©—Ïœ]ÞQ‚Lµ¼çç¹ãçQØ2S9®QÑN8Y Ó+6k{ÕjGl€$ý¶ö®ö5j¼B!ÐâVÚG(Pdj5¨ü(ªÚQŒ!_Y X—DŸ\¦Í´lÿGSuX}ÂdFåšSrkÚ<¤|Q`èÝ(zˆèmF ÷)½žG’mÅÀÆKiËþilçÁ.óE06Ì2]1ì(¼ÎMbÕdg²X(¹|”j((Jµ”¥š†0J½•@s9fJ¹ö,¡2m!Ïrm܈æ²·H‘pªŠ…’ÊiG¬pÓúéíåìâõ·§ÙËÅìâÊ%Ÿg ¿¯"îùRðÍ1ÌUÜ>Äb‡ß·ø…$‰‰Åj6O¯Z,g«_އÛ:®:ÖJᱬç´Úí–ÿªñ#ÄVÛN\=l·bqwìjWîÛµx¿ÜßÒJ¼O²ó±ž+\mj`¯VçÍaª?-Þ¡e„ôÛ)L/ ŸmqHøWÉ‚ ô'l‹»NÜV€áÃíqI˜€æ3¡©ç¾:ßåaöÕ Î}uWËŠ  "‹Òîuw¬h¿NÈœkqý•bñ*!P‰ô¦€8ìE »ÝïÝq¹Ÿ»åù!¹´U²¬+q¾[žÅï±Ïu ~yîHí øË¯"y›wsü@‘( ìÃ3;E$§¤vu}õNlNde³»ßv»nîÖ/h½Ü#ˆ¶Z‹Í~µ}XOšJ|>l·‡ÇÍþX“¤ü'd±PœIX¢Äuް$„à¯R†ø·Å—!uyWO”ì1ëŒùê ƒ ¾Þz‚võ<Qûs=Ç4DaIì8oè#óº¨c‹_Ir߉_«—õ½V=¤=Ûó¨lj]íÅÉ®SŠæ fÈœï3g3 wâp${¸‚YÊj¬!K¾ÚÖhãŠ\h*ÛdŸä×µ‚«w‰ëKŠÊT.¯ÝŽa“á”Ò‚ãiJMŸÒÀh®÷£â!âr‹ŠQÕaõoø¥7rÛÂíé'r¹_ ®ÝhSÈlmóëñ|÷ký$•%‘xz‰+ëw&qá/…›¯»]w>nVˆ—˜üù°ŸŸŠLür8žÅ§ûnuÆ$@³ÿŸá c “9áyß-ש‹ßÖT)7g*‹¢"Þöëen˵(ÙÁ0StûIV“-ÕC@}l¨(uun×Ín÷Di ŸX7v{8êsP§”÷NÉç¸ýoGäŠau†ùŽ1•Æï#’c‡Ë>Ÿš>·Ä]àùÖÍ$Äû^øòyýÏT—9®Mxå©?1ãôf}ß÷¹¤fO?™ÇíxÂeÁòyYÍÌÜ3éA¬Eðj¾6 UÌn )AWâ·ýoݰ¢Ý~êGŒÕ¸7¥ª0žXÉ8¡#~úèhd*€&0Š÷‚Ü|=Ø%f—“ÿK…„Xp›:#"câ’ʹ¤$esIÙ\RÖ3™ k0I•‡=0ÿd61ºdndÑŠÍŽ²ÓI*ÕAt£jA¶ÄŸ|U÷‰ŸÝ5KÙm-†{EB‘^b‡\S©[t!Ñ4MH2;Ã=‰’M<˜é‰/shÒš¾ÈLAB¨ QF rÜc¤êÈ4­Ô·…ÈÛ>lÅxLi¶_;ˆ*Lʹèp˜ƒéïŒH#B_O ?YhÆî#Q0‰­§ÃxMе=¡’z^ ɱî9Ës¹n½˜$WBšåAÄ0BO,·_ÑüwwðÒ”L¼çe2MB2ìýHQ+!A’¼  ÁÞ”ëX>š#{º!GXÊíŒLè$otñå$_ÃP{ÍâМ†I"µD…œ¦/û„tÍÈE²CBóZ敜G9ãÃËå¶·ßÉå¦@§Z(“Be!/Yê¸ÅJ€Ð¢8꛸Eá'›¡gs&óh ªÐØç ×ËQBM½JÆ÷-YQRjp§b‰‡Ñ¼~8 .~§ñÈêÉMǼgn/¿ hO52œ(Ÿ2û$#÷ƒ´"ý„{¶ôª:>"à쉻í¾ÓŽ%t4EÜÑtt긥)$+ni<Õ ajPÞ/•ü2lûý7z¯€ýN(‡¼5µXÌ: }Bt³Æ ÿOÕ®šSÍÇa9ÎDÂg²¡‚ˆó8&[~ïµë“v \Œ MÓá4D1)l~ãÜîÿ?w9Ÿ[•ÿËaèŽì¨Qú Ó(ðéö݆ӻÅ2N—sr9.—/‚×÷ ÉJÀ–„çI·¸ü÷ùâ«ÐMKÔ/»Ü?Ñ£€üQ-tF7ˆ1/÷gw.ŸÝ‘Çî €ŒÒx©;lì…À|v‡8Ãgd‹v`µ!æùjÑnù{l²‘²¥'V¹ aÐŒe/°×2xílÁÀic'›²(9i–‘ß¿yî¥<+ìćåä*Ò/Ý‹„}¥`X "[Ö¼q?ŽÐïA6£¬Ÿ0Iô]g>QŸQ@nÒÿÛhÓq¹Ý‹@Ið5à1"yN*F½<W³<2æTö‚d@ç"êžœŸN¤r»[Ž÷Òä;ŽÌ’@¹5ë^FdãƒJ/¸I±t…† 0žQ‰K:s§=Ôn·ú=Hw¨™Jx~Z\"`ú ŒÚˆ¨äÍHç¨R±ùÚlw É$öCs$£ùá篙øUY¡X¼ýå]轚õZ>"Ëù· š˜ÅÆ7Û;Ë…:ªæ‚~ Ÿz’!¤•ø`w»fCÙ¿oûGêÙØ1? …YB®fXï¯àH_ûK1¤mÒ–õäæ4+—“fΖ¬"½žts®)²:JIj”ÀвyIŽS1·R³Ô©ƒîöMÚ£K…ò”H׊)ÈJï‹è"~.«÷~~ûï×?¾¿ýGãÉ TÍ,s.(¹ý31Û#FÀHZ(?ÞwQÔOûÓç™D6$C!uŽÛn9">UùL ^ºb Ò‚ƒÁìºa`tQúoX§u_NÍ. šr£N¸l;Ò­it¶ª×ã{´ÌØ+R­A€ð•Žt‘Ç ~[¦ÌáLèÙbÊL-xMd>¾øoÃóJÀ[‘¶„Ü¥–rÑìƒÌ²Ã$‹wey©>8>ÊšFePÅl%¸ß^‡µ8Y°Ëý “Fj3Êo+h½2—h­ÛãkéÿZ[T‹¯f¬ž{ÇJÁ†zÂ.à˱kZ}ìòÐ1ð1ÍÑ똸Ŷ—gD_Ö‰_¬Oò|dê"ɸׇ½ß=#Ä ¿ûZ¬w2ЯɑÙâ³éô…"gWi:Ϩºù"uÒµ¡v‹))JK7h/‘ˆrFÕ}R2+A‘£bxðÈi|Kk08‚¿‰®ÈF¢ÊRRN€WH99ÑÒ¨„OÀŒ/2 õ!ä ü‚ýÙžúµÃnÃ`Â)5!G5F;AÕ#ˆ”8%s‘?{ ‘G¯{«ž½åƒ·Ž<•ªN~‘·òp°ÜÁî{ G}Âq6IÉôh-÷5<.ŒH´.»k· ÎÒ³±³ð;pªàLÃÙ°þZz+ ,ãè0ÙЖÔÒþꮂ9‘’RßWâíב“àr›°VÚªÁFfóœ5 ãü£Öô³ wbÙn:º™GyÞÞ똴º×7Nºí÷±¥ùœuvdõf)ÞôâÍbò¦Ÿ½ÉËÀ¥g§¿oÓ˜]~C<ÆÌí~CµJ &Éè¼OIMqÍ7ÊU´$üvèöòÐÓX7qš ®:sÔ M{¹Ô£l(``[(æµB ¿X|äWþ¬D'ÐI§’Ô™ãÏ’„/Y(ký}ùg@ Éß©¡[º]>†«7úµ“wR÷¤1ÌÒ¼I–ÜÏl%·7bpRûcXÖxù°Lˆ´¬Žf ÞÕ7u_‰Ú¨L‘Â] ?\à"ñ£¼¡`ZBKÔ ¤½¥s¡u uZ8.eÐfòúBàΩÀeÕ*7ç'&S¿½GÖTœL4ޤbE:,mÞœäÛŽß¹ºsê^Ñ+‘1ó[ÆÊ9ÏR§ˆDY­ùIiµZe3§¦ùDÞzâ_D 2™ØÙÒí¡ÚùÒ=‡Úá…äVrEDЩŸUŒ¹%SË(ÂHØå†¬“Š…éM¥`[Zð IYâ ¥¦V'ãŤ¦b½`n:^¢$6~}{õåÊ––GÊXx¦Ô*äêoß™=§0™пHï¬Lé«Mõ20º»ú+lþ‚Pþ棧ë¡} kþ•šöêû·7Îl†+W·êÛùUn3ó08€Ëk³»ÊRÈüÈBÞ£ïr:·±…ŽD6y…ÛèHdSò,¶Ñ‘ÙÆ[´VP'³M‰l²š“3²Ñ‘Ȧ(¨òc™m\d…ƒ#ßèH´NФ±M™mÐób$öq™mn¦öÆò?jo¨_)!Á Ÿ­\a\·#jIVôG¦ÇÂŽœB‘CÊ<ŸFpPл .ŠÛåg#>]åéÙ¬‹¬œSh‹Ø&÷â¸yœÔåç#à€©y–ËÝÊáróÊ®ÈÄݳ ÖaL븲XÕ”œÑHuêxÖÅV®í¥ ‚ß)MH\¢ôµ`b+#YÀDŽX€Øzã'`X†’ª2z–Írú3 ]Ø26RðN9ä[õÿ÷õãñé–Þ \çàÚc¦¢1ŧßÞ>_þ<¿#iƒ8‚pÚjÊÃã€]¤µ|¡%·þð÷ëËÏžžðy8ÅÒà˜N ùÝïÏÜvÖÔ©©®j3D¥˜bˆ"'¦Îí)5,ÓvÆi*LÑ®²/\~c“ŒEl;¾™t| ír@›Å0û)È¡‚vÚš–­¢)vê6lÏÕ!è8ìüœ0«KêÙ©x>,®è¤µu#k€Yßœ²ËrLûìÓ:ÕÐåZ34 @nu÷i¦WÎ1™^L¹5½R¶õ“ÓõžolÉ~«Œtä³#Ħ,ìv4+Î E&Ÿ—ث̋€˜[Øex7.ÙOùó¼N#¢¯Æ¾nô¸è†bm÷áa&§¾… `õ½$¢Œæâƒ¬ÎK_v­ßp$’ïüW+¦>i&ߺ.×ë;bŸ³Õ5S€›­nE¼Š/nb]ö¬Yú ú›ù*›#&b"L×€˜TüërÀš”‚Ï ûsë£Ë¤b ctI¶–4(øžnDôÒ0ªiŠ#~bÏa]¡Üªø>ÌÊçïf÷™²+-KŸ¸b)%$O½·»ÿ •Õ*G endstream endobj 752 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 753 0 obj<> endobj 754 0 obj<> endobj 755 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 756 0 obj<> endobj 757 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 758 0 obj<>stream H‰”WÛnG}çWôãÌ®9êûeßÙ2lÀëÄb,’`AI#‰^^’²’¿ßS]Ý3CÉöf!@œ®©®:uêÒ=JÜÍÎ^_*qw˜ißÅ(‚ óBvJKið«MJIìûÙíL‡úÚ:R8}{v~ðâúa) ‰¢5J®·3gE°®Ã '­PôwAnÍs1Ñ+ß%/U~§c'5¿ü~1;»ÐB‰Åí,‘#‘„ËؾØÌ$6Ïá]/×3zæÅãì—æâM;wo.Þó¯xÝoé)5}‹-©Ù·ó€Ÿ%¯Ž»²­ïBóÙÓÊ7j[¼à †ÐñÇájÛyð#/‰r ƒx||l½ì\Óý±Z¯²×üÑ]ï6Ù쫘†( ¤$xÕhÁ¦°ó-ÀÒñ8xo¼jGÔsg»˜ŒsÕi=BM¤Ìû"þéµb’‚휘øîˆQÄàŠ¾Y‹¢’ZÀm^ÍK©dáªÂEJ1=X$?j”•é(Y›œ,£kÚ §íâ½øéÐ:$F©æ¾ug3׈%þmo æ|×:øÞ÷-øÍŽ’hšueõw”ÕJäRôt {ê|.ºŸÿ&¶µîôÂ!T¡JÕ½Ü]?lúíQœ½;Gr¿y>ûqRõ`Òä†A¨5”U*æb@‡iê°âuœ€@u2±™Á‰‚àM¢ë™K]5A謷Ö5ÀÈΧ(©*\ëùUÉ×^ûŠ ;«ìÄÅ(xîâ÷J”´˜€¹¢ ™-õ­˜+çº`þ/¼ã/ùÌ2gýÔÁ xæàÇo†àmg]ò°a‹n’¯1Ã_OLµX ŒÕâ”e‚vy"+,ý:›²=L kBÙa/è.)—§´•( ¨JMØ¢'ƱF"O“(aëi=^Ð:‰P‡Vvªáé˜ l„‰hÐèq”)z~)¾ñåù?1ÒÞbt|ÄIÜ? %Å;ñËoRÜÌBDþÝ”‹"0\Î"Φd&:U0èDÝÉø%ÊM+Â}gÓÖc1¢˜üÔKL$$HM‘$t–æ4Ô u=ØMÈ‚q_ V±%æj¡3*æbrkŒ±ó2|A0 çÏ%1éUšD£$æy “BTÇ‚›•T¦)©;?­Dhx9-+%©Ñ≤:ªµH`üÉøT2 ÄՉIJÁéК®$ÈPœêÀQAàâ ¡uš×ei]Yq7„ŠÄe¨‹F²¼.qOâ 1±O£MVHŠ  ˆ¼6e«ïHÎg‰•l2yva뎲v²ú$–AU g1ûà÷hâ²CsœÞ¼rì¡ÄèCÁZÔ UÙ]‚Á—uµxC®ÐZ×Ì«÷iXóSh"ÉúDB©YÏîgÓôÄ!±„KSéH8ö‹ÝÈd%šF,A"ò:°¯O–6 ŠÄ};)8(¡j´7ëKÉl(’fªpëZ›²£Î§} >EõDâûþ‚žJ¦»T¹=•0aLkè÷m„‹ ½>)¡° 31äurÅQÉ]ÍimUŽP•SÌX®?íx6j˜+éfÍŒØ28´âúóF ëROÞŸhÄi6P)Й7A†µbRU‹¶Iv_±>?¡ÕÂÀïpŽ-$Ã\ädHïNÖZ†º£HL©LWÛ<؉4mªeaË, ʈ%RW*×”BKr(¤RZ©àÎ,8ºûŽ,¹NÎ&<ç‰YÆ:†IxÍ;8S£† '8Ѫ(HN×IÅWëhŒ Œý¬¸Ò¸+¥TG’ jB#>çB˜Ð<®k"F §ªZ¨©<éÞPå½*íáËôŒR %,Í £b¤vÅO}ƒ{N&Â2³º4Lä ÚóP3ÑF3s6°†q§©¡ui‘¤N4’ 9•N\P±ŒRî”!ŠÏÆ“¨`õ$ÊTî/•:°ãÀï(Ç‚ã÷!¦é­Ë±CªDrCî°XzÒ—™Dg2ë× ”—µ£¸émÔ“0B ™ƒÄœ(=§y©J»0G&OêrN–;D½¤z×N'ƒŠÖ¥A‚9Ñà<Ž8ÓS\ D-•бÓE-·g-ÇÊC©×‘(\… u±ŒoëÃHô¸[¤JLÑ/™uZ<é‡k\¬^½;ǧ×ÙëK%î³ï³³ ˆXЕ .øRð‰ èZˆ–[lpý¿Ã‘”‹ëÙœiñ8û¥ùa¿»k±+4û×ÓÐ,[¼7Íf³¼jµê|³îūͧc‹Ëjóç?Äåj‹GÝܱÞ.î³`ßøa·¾i[¼<Ëð.N]~ p¸Ð cÁJ*>£ZܯZÛÚ9nçØ}:²`·ývyµî-xlÄŸ»ÑÎ}s܉C˼àw«v®p{—7çñ!‚䦇բtŸ‘*4J/3"­FDš!QTMöðy¹~èÅín£}:‹—‡C¿?®v™«-‹¶7â†UêÛ­ØÝŠÂPb†æÂÕt‘®8,á%UÞ¿þ÷«w?´¾Yüë”aø“™ãgø©OòîN`ßÏí–’Ð@/¶›«~O˜NÞ÷«L²mÄjK{I÷âÍÅ{†®b>æ8«G_JkuÈÓN–yO6úßÚ9ñ¾lh³ÎvI¢Æxrš<˜¦4Q ܃zv:×8=èÛö Mø8«4qj^ˆvñq¤WãSz2­¡`3k2=²ŽYñ-2bãtö7XS º žè«þ~ùyű߬n©¡bs˅ɺ{bÛ5¨û’qõ°ZçàÊ{·°Å äkî3Œ»@$Ùqf9…”¾„¾¿6¢Ã¡°Þ]ÿ‡cøðÝ»­6q³Ê’ª ?\= R2ñá»Ü7Uð±Å2 ·»ŸÍþxÿk Ö8Ê NCÎØïì:X!6ö™€,zªÁüÍ ž=µ*‰ \ÄÀ»[.Û~KèÉHÏ%} MX*{¸˜}³y ›GÊŠÏ6¯zq·o5ÅÙ/”“Øì¹Œ‡ô²˜Åî{à¶yF¸ lºf)ç•›cåñAãáï(¹«ƒ¤¸+}y:Bg )ùõ©Ð\Ç'S…¬â¤¥®¤ã›ªÖq;Çu ï—å±üôÄNðBÐߨ ¡(gªÇ«zƒ9»F#O+úÙÒ.•Y¼ õ Hñó{Xh/ú Ï€Òüdý3:5<‹Ú9Z?Ìȹ‚[çìÓ’Ç\ƒqLÎ÷I¯¶·3ú¾¿bÉ`©ð.Ò8Ží¸6ê]Ã-šÂàRÅV"‘Zuÿ}ÏwŠ¢6›}X¬ÈÎ|×sÎW±ùrxC?—d“ˆÅš ×ñà™ìøàRÔQ ýº& ¢ìËìKÏ5 ‹äjÌð$§P„ø–Ç‚¼Jœ-ƒüº%4 Añ3Ë(±ÈôbF£ ¡6¥.ÝÙSàQÎT¥¾âZ 3ÈÿmŠ…‚k¶HbHœY«bÔ@ ì÷nN]z|î ñ]ììÉéÌ!Ü82Õ¢l„3‹Ç¢ÙmË#ØZH$œñ®ŸIUwšêßì·Õ Fð›ÞR3y(ñJC|XJ GJÝ£üƒ¡ø#£~¢JvS2šb#{G‘ÔÔ[þ_ÑðŒ pÇÃ`âLX¢*aéÈ ;ÀtúÖÖ2f¢ëQGøî@UÏ{ò&¢Ùì`äM!î–AWŠYËeQVPoßô©){XìþlÑDâÃ|¨Ë&ÿŽQ¨©#]ñø¸0?ñÿÎõ¿Uå*tÐR¬Œl-”; ÀóQ¢x¥F»ËqnêÐ矿ᛟ_ß¿þöæÓ—÷—>-Y˜hýM¤³V4 ‘¢U¶ž—ï"‰ÒàE„»¹‚?’ô F‰{Q&£á\¹Y“4Ì›uÒµ`¬mWþÛ”O%º±[‹<ßOnàS¶-E£èÊ3vþ¤¡ cˆ ½›s~¢N °?£ü€($\ „Iè,\ý@€»Ÿ^™×=%Ü‹h¨\n2ŠW÷G©òºÚ“>„Ý®úËåà 6–°­!¦«˜‚!ÖFk50„.S ߌÁË¥Iˆ$?JmÉ DƶrIà ½r®+ã­UæèRžõÙxà* ÉgLÕ¾p©.òo5Èp~ÜÊ)U?áj4£ì‘-zƒØPñètPsYö:7”ܪú_¸„À\ÿO‡£qý<‘³V }Êò•9, ‘F60Ê´ÇÝ ÷_¬ ‡¦R&oZË9G–¨ƒ,]N®»B[”­òc/#¬ ¶Ä´úíX0´›Š%E/» 1¼(ÀÇ ¸v=eŒÃ3Ô­²;<'ù:ëð?KMá8gÄËäì‘Ø˜Š@>ÕBz±µqbô³Å+mLU<6uf8OÇ×Ì(?tÚAÂE²Ï^v­ZÎR]¬l«º`íUQIã*ڣ˫9ƒCMFaòâbÔ‹drÉFàeqGã• ¡[¡½\xD¡¡‰¸…©“¡hš¡Î߯Ií«¶Gw ìŽk™ z——µ‹~eþH(RðÈ‘;[ˆ1è`’ˆžæAÏmt}ðhY¦Cʼý$óŽ^·ÐA 3X53SÚ"_­Bc˜ssB‚“ .é¸.ötqæ @ƒ^UAÀ¢ cQñX4d³>B—IbŠ ü©TÙ/P¥Ü°ð‹œý¶Ú‘¬@­õ.ÏTVùe"œŠü~Ãh»]12õä§uðûûûÀŽRzñÔÕ±n~ðýeö#÷U¢Ô%»^0Sˆ‡FD$-bÖ1TăJ]b¦%‚3í0cÄ*Š‚è¹Îõ“h?¼t“m2éa9Dû’6v“é÷UÙ¬›j¥#. œc­£‹g혣ÔrôW¹«Ét(3íBòLÒÒÂn)Ò1ä’°Jìç~^7U2•R%2 z sö„’€»ÝJÑ?ÙVK‹LÖœ¹ Ý·øTntàÍœ•yxõc(ùš;c§Ê€á¼õÀÑ.††‚Ô¶XôäøLN DF!)z—ÅÄ8\^Bp.”Øæ†œ í¸ƒXW'p-”n!ÓzÌò\bÓ@ ÁC`=>Lâ·þa\ˆYë¸OÚ€§^AÁÕ7ñ,%1N žž$<¢ÊWÕJKû9†»IøöÇÁì»ÃÐÏÅæ¨5­ÔŒ2HÍŒÄ[`ê¹ÜL•ÿæ}&0ÉP5kk€u„c©OÐy­«•<ÓXÁºÜ3@Vp<ŸV¤ž7uÿÁkbYðXïú6Vë³gÅç–d&\BÒ°ø„ýÞD<ý¹ØÿŽ*?"ÅI-RSÖ kHâ”ÁØÇýž<1­¾Ò‹CËŠqLQœ«Ë r7¤¦êjHÏ.ìXfïèâÄ‘Wââ–ø¯â7$ѹžêˆÐyB–Æ ÕÚð®ikÞ±Õ/ìøn90²A)£P^)†¼´ÇÜUÃy›üìô6‰÷Ûû›ß½ù"‘ò€ÞŒRŸBîø}¨n¾~gZ®Ýf1o–]×iÛúæ¯/œ¤›¾òQA ÿ…¿“ùG,“CHÿóO߬n¾šº¿¡{Â8§³Ìn| ³t±ŒS³½‰`¨YÖ‡Éj øKhYŸ&ë93‰íº>×ã Ç{¼}ú/áÕ®× D{…J#Åš—ÏËR‘Œ ˆ_ðÊ\©0Ê›Fÿä ‡ä gïZP¡½‡‡ÃἩÖñj£A¡¯÷/µ^ð0ue¬÷/µ^a(Tú¾Þ¿d=y¼·_²îúHûÇ—ºÞ±>mã~ýKÖÏp×»‡—|÷óånk/?ÿÛ§zŠ(èƒàCoØ/mrÑQ4wÿù$¥§'ZºöŸž AD± ¹’ãpg•{úÂA†©KCŽÚÕå(ÉÅž#ÇœèwŽKá G$§`‘!GôrÔ.·œ¥äÜÔðr¥áµ5.W§ß®É!Òãßäî[½”Ïg=‹ÅÙžQ"çèÍžAH½Bœí+CŽâ¬ýIÉQô\W”>îGåŒ>·ìÅ%ÉÖ4ÀgÌÜt©jÆ>Á0òK81þs1r~½ù÷+Úå€f…)pV¡L“Ð Ä6p*%Y¥¬:vÖåšeEœ®4Œ¾µMEêˆäùµ£tÄÈY•ì´ËÍ ?R ÅÊÁÛ €¹ó•ºm¯½Þ~ùúù¯ç÷¿<ýØZ(|5µߥu@ê\‘ÌÑœ° ÄIÜ©ö¯™3‘6Ý÷/ÜrKí) –÷6Ê‹Ðà7ƒÌáF‰ñË¡û¢È«âœÒÈå–lÊøÑ4kVÞWˆ‘³xÐ.4+üw èæøE9+Ž™çÕ)j'g†¥âü6ˆÊíjä£5cG´†ôÖ,:‰1rÖ$ê´ËÍ ?Ràüæf5; endstream endobj 759 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 760 0 obj<> endobj 761 0 obj<> endobj 762 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 763 0 obj<> endobj 764 0 obj<> endobj 765 0 obj<> endobj 766 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 767 0 obj<>stream H‰”Wmo7þ®_Á»Eµæ;¹Åá€ÔqÜHÒ‹Ui(òZV!K>IŽsÿþžáûâ:×k‚DËYÎÌ33Ï ¹J¬gg—WJ¬3í›Ep¡q^ÈFi) ~µiÛVºÙÍL‡òÚ:Ú0}{v~ôbu„0È6 ‰¢5JW»™³Âšr'­Pô”à™^ù¦õR¥w:6Ró˳³WZ(±¸™µdP´Â¥P_ÜÍ$”çð"l±Ârñ8«¼®¿Cϰ^ ‰¶t±xÉÊÊ‘ò‡êññ±ö²qUóu³Ýìê¹Ãó×fµ¿«?.^Ï.ˆ¢(¨à¶F‹m„‰oãµA72N1Ë„–pâÕ«ŸkÛ„êÕ»ô#.»LÕÕs[–§ýA|ñJ(ú¸z0FÌU£uKNžl`Û¿ÖóÐØê²Ö• õÐ+'^Üê¹òo¶Bµ,þ^hÉOJ–ˆÿ¤¦¦AÁ‚u›lZG\jëúw¨+ štèH°œŠÍö{HâÚ‰„úškeµÎ{"j4 vLœ¤ ÷Õ"Ž˜$°õdml‰‚7ö…=ڱǓ„ó+ñ­è¯Îßbò¼ÆÄø#K·âQ()Þˆ¥¸†EÌbc&yÉ’Çd¸ÕdW–ŒÐ¢"îY‰³lSöŒm´‹ÏJ†ˆœÁ˜ vì­HƘ, &Ó‚V”SÄ©\²ž%Cý r)Ís’7´\"l//}b›aÜE2ÚãÜs’ql8 | cÔN5Ê»1mÄ™ÆmÀž j\Y¬cn`0ñ›è'{_=ÇNÇ&jƒ³ï‰VœrÞQîõ“È(Z®­rÎdí{IZ‡¼tié”Éë(VI¦YâyC›7ø6­}±‡¾`OXIB'3­#И´2¯ÁDÖÚ²$°Í`؇)e{QÖÈœscmÆ.8*‹+TŘ0¥“ç¼8üÉkÛG¡4KrØù}ŽÚYvèBqàdÞsZ³zÌi6¡_³‚Êi"Év"¡Òlg·³QyB_?Ÿ#¹~!÷sàLDÍ6ˆ(ì§Íév-ïhmN]ë&kã{,Ñ6ïPŠD«ó¼hK5gCærøÈ dζKk\ÏÛB*ž&`ºT9ø`Û'“øL—z;IÐs’¢…©äžp¾8©¸d«˜6Î;–¤n2ø%¹œeêDÖA±š«¤A‡%Itti§kÅ”Z¥µ‚Å\pÃ^•âdËħN¿Îœ2v²Ãçh‹…³8øˆ1NP´9óŒ2àvm'qÐÓ£H1ñô8X×çŠ5Œf1Uë\9ºlöKåË Y¢ÙƒÉÍJâÁécVÐy¦¸ŀѦ“cˆ5 =Ÿ2ã¢ç¸9˜›fœ)¬ŸL)œ†58×X{=ª¯Yƒë5ìàz¸âƒ×·£(œ)( «†8\ßÝiáeÉDaî+|UäÉÆÙÄÚº!ÙòT£Hr¹Š~©æ´7XÁè2+}î“gLà0l)G›AÆœˆTäk!>ˆrrjK뤆̖Ù([Nµ–L|myÝ„ÇÅ¡u9¥ÚÉŽ ãÄB´á‰6Æ L@‚ƒÊ‚ ÖŽb ùÊRr€u)”ñYÁå´™–íãßhªë¡OX‚ʨ¼Cs)BnM›‡”/ ½E½íÂ(ô¾3¥×óH²­2€ñRšÆ²Ûy°Ë|̇ g™®vT^ç&±j²ƒ+Y,”Z>  ŠÂ–‚²°i£ð­šé˜³PèÚg Èi y–kãFi.ëq‹ —ªX(¥œvÄ 7­‹7ç³³Ë+%ÖÇÙ‹ÙÙb¡„‹›}šàž/EzHcL·‹;|¬ño±¢ÿg“2Ä¿/~Ÿ½r¬‹+žÄ¡Ž·/ñ!%%|ÒfÞn¶'¬ .y(^ŸäÁôÔúP½‚©XýL•´yñŽk.hRÒójW§  ”»Ó÷T§{D‡ÕþËæz¼{ÍE©B æDp“‚IüÓU÷•5?×àxµÙ¦ÅæôŸ¤±‡F¬rØFWSÄ™ $Úß䜂Åw)b´s¦=QÜ6TûõayWÏ1þ*ü¨jùyÛ‰îî—ÔA'ñ[•ÙÛæÖÃ4Š8(†BÚQ6yÿîòÓÅ›_ÿú´ŒŸÞ_\ýôéÅÕÕÅûÅ´ }à8íÍ`Òe„Ä ²õ[M=ËíZÏ/ÀÎÂð@FM*Ûã¨:‹ŒY6ƨ?@ž¢MPùÓÛ‹Ë‹‹?C {醓á‡|%X_Ý&*#ËžÊZÏ5~À%ƒBm¯IYzAãƒ_ÎW›¬¹z s vW¤ã«¼ût»ÈîÄÔÓºÛu‡å©X]'åÄ üRj=lnr´š£+ú”ÅY?Ïs¶=ôMõvê8ÇeªáV…kÑ“S†,ÎÚ”¡ˆ™4Ó˜`X,‰û‰h‰Â$¼£.ÖÕCmªã‰z²Ôà®:™ÜKž5xfSÃHOVÈï»´Úi_öž¿{Q»žA øéˆüÃ,¾D&aÏTHç>uîå¯?‹ÿr^m;ncGð}¿â<’ÁH¯"7A{¼c õÞñn‚,pHŽD,E*"5cå7’NU÷áEÛ çE"Ésé®®ª~Ä%Öª ²o¤Îát´ ñCHK™å[c9ôœÁ¥´mè¯;¨e'rè™.oå‹à[‰›H Ø…qÉcÈ""^$ÓRFÁäq0ÏËH:7‹í<3€!C%Ô@#9ì,%(‹³ŸšKWàu[g>kÄ9ÛH° ÚÊͬ(ÇeŸ¼…ÀÁk9…¼†,ò3­ ¤St/”¨¡‚%hx^tK7¶d/h©Þ üè÷ó9ðïó¡ê5±uRnnoîølúªæà Às¥øjàÉ]À=;zÓ0Å´­}UÝA5ezÎý'•«‡2ÏŽ*᥹¤ì—„¸—'Ò^ i#œ3Ú.J%neL- Ý^-LÂ¥ªÎ@³ä¼eseÎ İòüÏòûŒ0ÏjŸý¼íôI<¢"²µÏ5ekb-¤ PQ}Y˜çmÙH.w­ Yã¸Ë4AyAôDïÏFGYs1ð>Õ¼ÐàH=f<»çHJh0fÉXòù]“—SöìéÒc9Ë Æ5-ç+Jò¶é3ËÒ.*Äi:å,ЕìJi£ü×Q7‘AÛ§ñ¦øµ«]ž3™ht&ÜøÞ¢€Ž`§¬B¨s;cE%Ö_†Á\V·# “ç<•ͯî•`õ`¢Ø ÿoHp÷Aê«æŠÐ­Åc/BŸ›¥¥NUe`ø§»Ž%g‹fuÝ!É£ÿ5(”ÿ(§×ò”U>ùAHÀoå>¢D.-33i‘xýÐ S[fî'ó‘$Ñ ®QS0mÄ&oA æÂŒÀ?¥ñçƒùçÃZ7¯î_ýóúîã» Ó„eÙéM€ŒG@†gžiJŠÙfO%¼¹PìsÝæ¿™ü”ƒ/à‹²ÎN®·Š&%º ¬åY-ÓDI®Ø hÔØÙª³%¾²k¿?´Ì…ð¡žF‘UN q}V"ýÈ­<¡»9¨m×~æM­òâ;Þ#a^$v‡YÈûªm.š©—]d°^/ãpØçÔò¬¢`l3¬Ä%ç'¦dOmaº­+v͸ÅN´W^,JtOÜN·¯¨l#”VX¡A«DÕ-Ÿ`ÑjóXfýÑJn9œÞªñêÐò~lYe¦±Ñ³ _"q†o“#¾‘)áNÖ©º"Ää-ñ¤œöFݺì€@oÝ)å¬Úík}VîÊÄ}ÍíÐQ¬lІmóå©éŠø”¤sm¿nŸ+½hôÕÍ÷–€îï=kàÏÜÐX/FÉ%™ÓŽ}kòéc"|+ÿ w±—8Û­ jþL¨ M¯J™Ééiž!¶’«{7?3p¡³'™’k€í£¼S÷ žÕG¶|§a CÇjL™F_+YlDõ¡ÁR¯Þ×—ÙÄë×.ÅŒKÐU2¿/9¢ŒÜÜIïyÍSŒ,¼Ûé¶9±ª‹ÝÇ¥;meí¶PÓ?ã ìu]‹H6näŠË¦X¶»N¾Ñšh]1>ègíå¡ß¢+:OåH"ä·&TõP®¬ßüé´Û•ý¡Êq^Fò]Û,ºa̼oÑZ¼êöeÞƒa@ _ÛŽÿíÛIGzA*…—™ÚÙÛ‚Hù‰º…pf·¦È¬)Ì¥—ÄëI,WÞÜëW¥ï:­'ÿ…d¤1»OÊ%Ejñ7úMV뽸'ÄE [¤ ¾~{$vBt/+àësCi§á‹Œý~t`ÇxE³à1HÖ/nœ`ÁƒÈ¼¸B-¨Ñ…Ñ Ò4•M^É¡c**«íg7¢pU:C_~B_€³³„'¾L\4Ê-cæ£Ø ‚ù™!&3Co"™ ÿ,1¬‘,>Éxȹ#2W„ÿ;ºÂÿJŠšÿˆ‚UȇÉ7N árB;«\>|/ÖÎ[ûâ+™ »#ke€Þ“/FNm?äJ f6=<ö8O‰Ð¥„„#²ƒpF¬|d¬V>? ]YàÌ*jÞ¿z£‡î­7oÕÆÒ¼‚v Š=JãíGüÖXo}”êÛ½ï«<«ë“µ³û J^ö£K5OHë4º©Cõï’* .-©ö›žÇ·3Ål¿‰u²Ž Š8Ü»>›É±¬ûY?'­IóëîÊà PÁfcNíQ´³5ù¶m;ëçé“y®úmÕ ¨^{«äò|’7{<5 Ü*—â\³Š`Bp(¹‡Vó¾ì¤z×ö®¨»»²ßê[:JR· {g®Û— c·ôY M¡Uµ%e,‚œŽ"7(M¼yMd;•y/AÐèØjâhN5'ÄG**RÅØxx—¶[¡Å73zÚ—Wš@=Ï´3•ðËÀ¶uY´­„®4™€Æ†ž6²¸±p°‹^ª®?‚qm—>Xó‹ªÒ43¶ö‡jWõL|!½YYîéÜÇVõæÎ¥e•‡±¶' Wé¼m­z80Þ–ßÒŽê̆^”Ý,p+CyCpi‘ÄŸjp}Q3ô0äKsûˆ8ZPmJ‘€¦, 9/ýçQ”Ö´C@˜4Z©; )%Bñœ°‹u\Ѝ#ÞøH0g^Ë/ï?¼úQrÿÝ·7—Õx ¾§£PÔ\öPÁØCÉ•;êÅ1.Y¥» ‡º‡ê¼Éú 'AçØõ/;/„`ŒÙY9t,ì‹&2^‚æ…0’ÓÊ’“éYþ[70UË4Ç݃^$=À ôdæ¹Ò œBLcg*aŠÆe1Ìaºt)Öæïnê‰õ O=–X'‰ÙQ Þ¼Ò‰OgË?ë¬E/Èþµ¢ÞÜkÏuI½S™‡¶Ö ˜ «å-k@º3Ïé•_Ì=e.Õ( Èäw—}ªvGåà`ùá<£µ_Ù•vºïPö-C}×2Ò 9m|õ2°ñÚQ ]i,i2ìòÖ·œO× äÖN.®­ÒÉ+©dGj&%Þnõ26£hxV4:)´‰u]”Ž ÍØxR%5;•¬ì¡–£úûí•}ϲPE3Öc"†^£4GÙ6A‘;í¤Ä˜6yùÔ˱K9ªxLJ“|`ðbJýuéví“ÎÔ«e°u‰»ç9IÉ¿HÎÑà{ª¾L.÷[eêŽ)#þºjÓdµ¾¢XegÏÛîIYmÚc¿?öÝHÝ - ¹x[6‚r¡&È+í»^cäŠ# {,y¡¸˜½lÿb¢G¡S>¼œãf;2ã½på×w~0oKI°µ_Zvo?Þ.õÛ?^w±É;%3ÓåÍw:¼hOÎ:IÒݣƒ“ œR6ƒèÔÊ~ÐøÃé¦)t=Y#‰¡,´2›ïP†A:w7/ÚTS‘½«ÇªÔÖÓ°¨YΤt˜·ã~/gtxÿHx³|«ŽÓÖE¸\¥«&Šm„*ÉøÎMÕr©>C•0 ÙÖ7(‡7X¬j¥ :´[;û’*ª}U©ÁÐÇ0\gM€Œâ7ÖÌÖÙPV{°IÜÇdzƒ¤¢_:™‡r›=Uzl¥ËY„ëlÓÙ•å—’»º¤ŒQ =+…ÿùkf-×u=§ºú¯Ùga†D͘?&ZA¼ûH ¤SÄnPÎQ8E7!vQ[±ó0Éà¥/Òô·Åºv="æÞM׈&ìŠÇÒÚØ§¥Þcç¾XÍÛ-Ÿ§¨øÄs6úÂѾ¦5¡>X€‹Rdz£‘•Øä³R¤KD2 üA­íÂé‘%àa¬Êeµ9j–&\È…!žßÛ¥üAÍÏÍ^0Ó;köÞ‹@ÿñjÛ­«¢ïç+öcƒDÙ¾Û¼U@)¥'¢BUE-‘Pv+H$~Ÿ5¾ÍØNTU=½¼lÏeÍ8=ù|åx$ïÿ¸PúÉÍEþ. ŽÔÿÊ ã¢&ܳÛú´)„ç«¢"½£ÿ&zðÒÇO¶Weò¹~Çãz%òtø[bÄ0GUY¾}]Ö’ÏOwLÈKF¾D-ør߯7:yê®´:ð¹èêæóJã,¥•U­Ô׃ºF´?V,S{>ÔåÕéЕœv›q86=hwÌ,qûçãéíÛ§œ‡e‘œ¶áRzê ôçéçûyàm&ùü ÿÝ~³eÓå÷û¾}8}õ⬷ëÛ“ŽpF<*ƒ¤üvt‹µÈ@ìps2JÃâ¦YÆC{B˜j˜ Qbª…1}ׄ$0Í"0ÇóG`ªE`ªÂh‰©!‡#1Õ§!Fú§YĽÐvLðò^ÕÂí"<&÷jÆœØ&™*ÿ!Éì‘ò;8¸+\þuÐÍTÜß\±Ô¡ªÜn²\ÔŸZSd±¹3"ïtñ• åNŸ\Èÿ:›òÖBFß<÷íËHK1ÄêàÒ†w›±¥¶èk{àYÒ# ‡¾ÔOmÔóúÍO/Þ]þøúêW`ú¢Éqä¸|EŸP&2{‘Hxui¤– ͽ\»!ˆ{I- EBÇ¢dÃÜ«G $9 «& `'%±{( Ùy,I³,4óIbŠmD¬˜X‡½ÄŸ1rß  ˆG ^ „áU“ÌÔˆ¨:“¨bœ¼:†*¯G‹\5[àf4.¥½Ä ÷s¦3\N–4¯š,`v{Q Æ8T'™y¼],c"pUYCÔ¼áÕ`Æ›¡nÈ †-§ZXUys˜÷jÚ¹b˜¹a:ó™êÖs¹ÖŸ: T„fve¨Z1ö” ÑÉ; M潦ïÝ1íQŠR1 {§º·EDÐJyë.¿}ëé;wÈc;[ƒ"ÀöÃÎh ekTi.dÑ’]-슣Ō÷us·ÇÉÒ¥’”Í*ã‹‚T ©Œ)*ƒ–D)IM¥†ÞÛ,À jÃð¬Ì7K8)xn °Q!:;Õh5x¹à˜ÊÃ̇-­¥­fn˜GÓ+ëˆ ÷y’Sx#®’ÚY’D*°µy‰0 îhFà5“´Ž’tÀ ÇæÉ‚yp‘,,¨*š,xÕd3j<§cðÍóó$ôˆ(/áPtÊÈ{ÎL'%·À൙§æAŸÑ¤ ±Ã™ÇÄ¥3›r‹ž‚ý=qmŒ“¥ÏGœÜÐIRéVZGÖí‚(6ãc™ {‰bÉE"ŠVëræz‹ãÝ+6ÓMëÜÇr…¦[¹ ±`zâÚ¨fKãaMk<‡½O·tééçéåŠé{uÌc¥åð~AÊØ¡´Bë­Ï‰Ø”.˱éó6ûKSf ê/r/HØY•D¬q²‹ÜÌmeí¦Ô;ãÜ_Óž§(ѧ§®w³t\Á#VUžµ{>(ðžU³(Zšá¤J®³e’IÁ#VUÁ\yØaS¤Ö½Ž%K2‰FIVM’§O =eñÇqjjñÖÙÙ2‚G¬Ró4ÑxØÒº>Qëú¢ˆÜPDkY .´Æ#V¹a¯µ„׋ì¬Þ8Iyx(ò¤…Jß?ŽMs,ÞYåìXnþðÞ1Q_0÷Ž¡ó%„j™¬,^[Þ牨¾»š…_kãJâ L(ï.4ÅÚŽö}²Ü*¶¹…æ6Û1ùžïYjêZÑÝ3æ‹þòìåwÏ›£«Ë$yI&ïÉÒÝ]ô E8­cΧÿx' endstream endobj 768 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 769 0 obj<> endobj 770 0 obj<> endobj 771 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 772 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 773 0 obj<>stream H‰”WÛnG}çWôcOŽú~ytäÈp€ÄLc±ˆƒMÑ^‘²ì¿ßS]Ý3CYñf!@œªé®Ë©SÕ=ZÜÌ.^½Õâæ83¡OID{„êµQÊâרœ³¸_Ï>ÎLl¯§ço/.A¬ŽPF•“PxP19«ÅqµŸy'¢ó=^x儦‡² zg¿V#"zú”.ïLê•á—?,fWFh±ø8ËäHdáË l_ìf ›çð®l‹ÕŒžóâqö›¼zÝÍ}äÕþ¯Ö{zÊrÝaK–÷Ý<âgÉÒéPeÑ…>ÊO¤ {Ýý¾ø AXbHœ®q}>bñ’#ѾDÂA<>>vAõ^öŸ7ÛMñïåç~uس?.€4TI $1,Mhº;ßB¡Ïà€ÂÁ» ¶[ü1F=÷®OÙZ1×½1c¨™ó¾Ä¿{¥¤èE7'$^ÜMnHäVÔ%¹C¸ò{aXTZU¬Z¸()GLÅO´²=kWŠeM+ÅÂe»z#Þ;Âh-oàÛô5óR,ñoÉËCçá{ºï€”*¢•Û†ê_ ÕF*8…È=÷¡î_߉}ãÅ£‚ðHUèʺ‹—‡ÕÃn½?‰‹Ÿ/ƒ?¼¼œý:a=´¥aPj í´N… è0CV½ƒÇè^å(v38±ˆ ÛǤÅvæsÍD{ܰe‹`TrRÄ ×yM~u­×þÆ…O½ÓnâbT|í⯔r‘€¹¦-€õ­œ[ Þ÷Ñþ_!ðŽœäWP9¦ÅW~ýf ÁõÎç¡;¶è'… S0þóÂ4‹5¤Ñâc³8AÛh|™È„¥_ïr±‡)ál¬ÛìEÓgíË”vŠŠh€8®€ ­' lÑ™ ãyE&O“,a#è)/hLQ"£ÝtE C`ª°°'^°‚FÏG¢—oÅßeüöòŒ´Ÿ0:þÀIÚ? ­ÄÏâ·ß•¸žÅ„úû)U1Äðv–p6e;YÓÚdz•žS€nFSœ)ô.?#y¤2…©—ª˜D’Q =$£³ 7 ¥nhò`7£ Ö?£¬bK*l±·:2ùkSŒ+RT|F1IçÏ­0éužd£æyŽ"j…cÁOÊK¦ ieú0e"V5¥•VÔhéLÓ5.R0ál|jAq}¦qlgpEkh M× `h.u䬠ðiЕa¹ŠÎWÑŠUÙS¬_V$SWdÇr5ˆ{oH™}ZcË‚¬Ù€Å€(²­2®¼#ûP4N±ÉØ…k;ªìUó1hÕ,xœÅìƒ)ÐÄu‡á<ƒ­>Xòì¡æbËÁ9V´¤uÝ]“Ž1T¹Ù¼!*_am2ãBdÞ`+L¤Ùži¨4ÛÙílZž40ÕÔS-`®Ý Ç~µ›¬LÓˆ5(D‘#[æLtyØP5¶®wŠÀAMÕ ½y½RŒ†‘C2‚®X§&´ùâM¨É礟h‚f?Xÿ §šé.]ocO5 ÃûÈ}›àbÇŠÌGoÈJ¬(ÃLŠEξ:ªÕ£«9ÉN— u=ŬcþϳÑÀ\-7/0Œˆ«ƒÃhæ_°z+ŸB8[‘j¦Å@ƒ|t@gÞ$ lô &U¼®¶ÙMòË8Ö§ùg´ZâÞ³…l9Ÿ¸*ø3Ù¨ØvT­Ìô­Í£›ø@ÓæF WgIÔVŒQ¢t•¹¶-«H•Z¹Æ]Pðt÷Qò½>ŸMP®£ 9ÅIXæ\©q…g¸Ðº.P\6æI‹¯ñhÌ Žý¬™iÌĆA¥êJO`Äç\Œ˜G¹bÔp©š…Vʳnà µP!èÚ¡NϤLµPÓ2dÒ ƒ2¾šà©`pÏ)@8FÖÔ†I¼Á„aÚFÎE^aýyiH®-’õÙŠì&hNå3D–1„\:eŒäsé,"¬™d™ëý¥¡@vpâõXðü>¦<£M;¤i7DäKµ'CIt&óúv ªu7½Kf’†@l)s’˜µç ‹º¶ cdˤ®çd½C´ëAnwí|6¨H® íÙ ®ãh+=uÁThA4ª´™Æ,ÝZžŽ ‡Ê×(\…*t©Žoâô(Ž-Ò4¶®¯•õF<é‡.V?þ|‰O¯‹Woµ¸9Î~XÌ.®@±À•Ë F\ð•à'mø$¼Epb±ÃõÿDJáÌ_¬ -g¿É—ËÓR\ö'ñ^^v»Ã^\n«Î(ù§¸z}õF¼Ùo¿¼ïD÷ûâ'8sì,ãT|•šH^#eW‘Sœà '÷à©›û>IѸz ÁÈ}7ÇG”<‰ÃÃé®›G¨(–ê.³»rFg¸[¼d£nÈA¾|±xñŸË7ï~Yt‹?Æ)y{Ø‚)Y#‚¡’Z®VˆÐËûåi½ý"î;ƒ‹´\ws|È»Ãýé(N·k y_Wî>¬ïI>|¤ÿ‡ûNãb/¯)'bùiI ³ÜtøÖ“Ûå‡íZlöbÉε/gº-ŸgDÐo¨F²ÈÃêOrGé;|ºJñï-Z:E˜‰Õr/ŽXå]§åzµùAË/´ `—âqsÝyy¢P³¼³\ XJ|x8–7§[„¿[~Þ”Xv;ÎeñÝPâÕlŽGt|‰ý‘샃m(Ð oÌ{@E ¬ïN·ï;¼ò²ï攄xý±ˆ‚ÃÉ%^˜8BÐHkîJièÍ 9nxõfÍö8$Mç0Zs¬ûœæà6Hj`ñ¸[n·(æéØQ•)CJêÃc©[ àûV¹jûIép#l\¯ÈVÅnSþŸîö«BP}}- ¢¤§œœ¼%º·ˆçæê%X ÃðºsrG-%6Xùi}Ý—ÐÅ”T4Ïö«Ã½X^îî¶ÝóO®¿_•ҥ╵{ŽÄ@+¼.dšS(_Äé êÛõ‘¤KIõaÕ OŒô±qˆÉVœ 8è|bÉòø 5Ñ“ä{½&`Ž­ÕúÓ6²­ÚôÈm.ÛÈ—%€Äˆ/LÔòÓæz]ˆs ×W¥Y^wFbâÁë5±Qa«XoÊË›ÛÑUöbqË­læcÍýt,ô¦Wá9ZWK‚©p½Yað ihÆàháLÊt‰(Á5¹Š²0Wb˜´ eB3"ÍãD´o~ލÚ'r“ˆwŠòò¿´WÛnÛV}ÏWð‘D*¯‡d1 u&€1Ó èK€bÑ2‰TEÊÿ}×Ú{’’í´):/º‡‡ûì˺È~¿ÊË«p}ðv¾Xqívvohºöµ¬>°,a÷ ˜Þlšvœo[ý°¶K$S`gŒý¶k‡ºôLÄ¡ù™lqÇ­Šð<œõFÖ®ÛÍ9 =ЯÇÉíõqÁ ׈~áH:ýÊø%W²x2?Y:#Éÿð)î9¢á“rNJcïE¹5ø€45°Þ«y 瀙œbdxmÐ’Ž–’Æqœ&—»y?åã4YY{– ÞlkvÎÕ¿ÿõÚ3×FF¸¿×ÉkAãG)A±Êü ¬¥ñxœÈpí<~Á'6MÍÛ=¤<§0ÙA¯·ö˱éev–2Û킠ðåG-l&ƒÇÆÄ)|¥¾­rRµçFõ1"F~¨‘ð3­sÝbÄk|P4Ä”ŒnVÊéè±Éê¿`¨÷q}llùcpÒj%«¢H4©°ED¤á©Îý»åÏ9©\7S¹ÊH¢•÷;=±íao1ÝË£S÷ºÐbb/—(­þ«1.øA‰×½ !£Ü&®nU÷ô­Hw¦!“¼,Öäyå¤ ôMÝ7ÛUFYƒS»ÑEÇ;( #èˆ6q6Ѩ‰ê¨oJUh¤4©U¥À~‡—^;©têqð2Ô¼©ÚËG9E#rªåTI9…§%­¥¤MÒ™JÝ“P´óÑì%·3‘EéÔQæHÌÄ\ YTƒ ë‘%UdIB*}½à¥± TùI]¦ç£:3$ÂX÷¼¼à‰ªh&÷¢tB:K¨’<öÜu[ÕÉ‚“À¶”Ž"M×’:0Œ-Þhöê;耷b$>-Vt Ë,ÔÆµ uS{Y i¤óÊ7šûLLƒ,šÄ“DÏtÄQù2ÉLú½ñé¥áSAξål]¨YM›ˆ¤×¾ KŠK•¬z­ð}hʈßôbбDÊX@u¬Ìè.lÁ½ê o-d‡Æîõ‹,œL˜5Cˆó|Æ(Gv! 'L2ñžË˜Z"0ITÜÈ}bb¾`M’1§Q~iM8¥.|͘óÐCÒ©1€è½Ç-Eƒh5Õàvó…ˆqsƒe–Î=H2Ô`F<Å¥a3™­ž‚kH;‚é"¬ y³‹YËÃÉ*Ê‹/Il2£åäNðÏ#­ þÄyRþÄÑŸ`-”ÇdOä•K;—6 Í[Y}¿`Å´à[Êà‘ Z8AuéY>—(…ŠÎë¥Ê ˜Œ‹ìÔ¨-£@Œ=çÜSÞ—žµ@x<ðÌÇ$¾W‘ÿz6‹Œà"wOÙó«¦>Wtε^Á¯Æ`jcî‚ìÔËÈ!·™•F\èÁ–uÌ;Ø æE7vÚ J4ѹ ‘ÈL0IÿeT¯ÁÜߌE‹ñ&§;ú&¿Ô1Ó\Ê[_´¹f5Â[ˆÓ/Á¦Û¯›vEMûûäoMÞÖf¨uõ ¦&«—n45"èïT舵¡rwêkÄn9úÈA ¹×¡ÁÁ7fo$ 6¢ñªÊ‹ò9™ñ†!ñÒq•z=³w<çÒ8F«Â=«)á,ÎÎ <Œ³\—+ò¥cy­ÝK2ž„ÖXl)E<Ä<#Í'70 $ß²›…Õñ(;?RSÒÕláÿãx;»_ËIx+¯_%¯ô×Ç ;Y “2ÑÚ7°‹Uù¤oâjJ‚4ž¤À§l–‚)cs1ÏZÊÙKZ{‹,»õ›¡Q&M®nëUðFSõ5±È%)µ4òz° ,84p;ÅqÖqËj•eùÓQõÝ/¾Ùw’C7¢\6©P=†“clô°šBλ·¨þ°þ¢¿íR…DÊ)e3U÷eèZ´ìå ný?ààçú®dŒç[~¦àr"Éd$S1ÂÛà|ùßëvP7«Ù)<\¤Ò²òr*'{‹h´3/ìm1º[ébÃÄÔZ*…ú+Nš6ˆ34P ê¹Ùk1&-æõß/G´}Ro×Ã:¸£ù)¼†É8(¤EÄÛ™¦‹ªqn®îfn®a‹„Žæ‹RÂûv÷øiœŸ¦ZUN¢•±C¤Ô[ ãä®EâÁªÈÓ)Î"SIPˆÀ·1Œ«ˆÛ¨@AF{‰¢WahVø:ßÊ&"ô ÅIÖ¬u!Šov!üY šVÏ£/¦àÊK†ÔêÞüT³o´ƒÕx™USåý×n÷h]ζ”æsbxuqî{« ß[M¾·Ô‰+DN¨Më½u;ª´hlS°¾— ¬*O.9M¦~0rK"«´‡ªe‡ß~/WT)åÐIdnBÉ-¨UÄÈÑLØ“¼×\Š[½³^0SGQ”úÛÖֺņ‚C8-P;lõÎ1ß}S‹<-Â傉²?µ8$TèÐD¨Ò±[݉•ÿŠªÃÊ«C„\ê1%"8ÏdôæoÊcc_˜ƒ¸VŒÃ}¼ wýš\ªaÖè>ÐòhcïeÑc0Ô{ľ>6ÚQ;Yúè­!Úà¡8Ëqêe*á'$‹š-$½cjwl™ÔÎÄg6Ê,½rΤ2ñ¼]hPPé²Õ¯[»iñûWªòó °4 ÁØÄ9$¦.ä—€t`ßvYéóÄkÁéLZDû½ùƒW.îvJÕ0|%Ùå;fß!{‘Ò8—|U´ï™ç)ºCÛRâx§Sz­£õî½rïÊjÉ^?‹»÷bšq†&løË¬Ô„Ž_ýA­" öµÙˆwò“ÿõH(Ç ÑÜ`¬4"ò/r¨‡ ðÒ»Çsñ³ˆã\$_zŒÙKZá càKf ³í&Î!3¹íÆzfy×ûÃŽÎ* ÷¬†Zs͹åÀñO£ ‰žNç;—½<‚sË·­¸³åLòmðñt8è3°Td&ïC ÅÙ=Мì1è—Ô¤'wÍ5VžOåG’¡¹ÊÀU(œódª~I³çüØb`¯÷˜x‘_8Ú ¶ «t”q\°5ÞÊuêé‚¡]u‚r"WnK ÊáªáNr•‡ËUØ%‘Ü©¢ƒ3Wfå]?CÕ™t’òúŒ®¿ôä,¨ô*Á d5åqìél¦Rø“x”oX³8üY㸹ÉF1bô®¿²î)p çØk‘‘<ÿŽ©þ1çÌ‹ÌWå*\ŽüG3“ø°Ô,¾múáØ|> õ&øðægáàß g¾å÷†“–«xìïð§S³–MË—/}6gµ#6ˆ¿êö{hoL‚õ_Tkýßë_æþl"ðþ_Y„q¿ï $/“Ù$ª¬dUøñ¾¹‚õ!Óÿ@$³ ¿7—M}ý|;üóæUì0Çeç;'Z%ÆÄgëWw¯€‹¬p«RV¤Uñ™bÒK]‘%ùs+²r•8]ÁíÏÞb+¦·XÀ~~¥ /ÊŠ®zÜö¸XD•œ*¼ÌÒ8èo[ÿ¼+!3ÿ>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 775 0 obj<> endobj 776 0 obj<> endobj 777 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 778 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 779 0 obj<>stream H‰”WÛrÛÈ}çWÌ#2!Ì}°o±¼rÙU»®”™Êƒíš‚D:$¡%AÓû÷9==ƒ‹JN²V™D7¦o§O7@)7o?Jñx^(W… ¼õ•u¢®¤ªko¥›¦§vñ°P>ß6–ÌïÞܞ؜¡ôuD‹Ú£¥8oŽ k„Ñô¶6BÒE4BdºåªÆÕ2ÞS¡ªß|½ZÜÜ)!ÅêaÑCÑOÀ|uXÔ0^"JÄVˆ«ë¢p¦\}ƒf»!+üq&ÊT©‹Õ6––Œ?×ëµtue‹êÇn¿;–K‹ëÕ¦;”_Vï¿®P?TA(M€‹Ÿçk¼ªê0ϹŽÙRÞ”ñ§âî]i*_Ü}ˆ_âm{Ä….ÚriŠÓºïN⻫dÌb¨‹R÷Z‹¥¬”jI@àÊxöýÏré+S¼-U!}¹Dê…:•Ké ßí…lXýJ¨š¯d+þ=Õæ¥Úꪱą±·v¸‡¾¢Á“[©¢[,º #øÕnÖ`)s].av»¥ébýÄß}Ëß'a~IH¥NØJç¹áä\oØ­±ììM{.-¡TÐôÇÒUª8–àx"ð(®;4ÅýVô%ÚÆÛ­¸íNm†ëðy'„ðÎUVX/– àQÕÿú›82ßkY…2UÕaqJ&Êß¼é6—C{ìÅÍo·ÎŠ×onÿ˜´¡ÑøGsWë†æO)ClÆXÑç *ß`\ÁÒÆ+qXP $J÷NW¼‡†FÙÌ4­«=ª+ׄšˆr+)¶l\"ÀÏÃØP©ÐLÃL4/…ùyeCk+WÛ¿%YýÿżRrfÔ¼æ¿#Ö¨’O=ëCS…Æþ…>d§)­‰ÓI¢Éé,Q©½²qÛKp•¾­iاÒHß&š|‚É.èø PÒ²2 43œ!«œofškî•Q* èѤ`øÑaÁ«A!jà1¨ÙSïg ?v g<ãOz$Ü~?«þãíïØ<ï±1¾ae©F\…¬ÅoâÓ—ZÜÃ#v±Ö3\’fÈã#tyËÙ©¤™d‹ŽØ5ÖTuÑÓ¦R6¼¨+²kÖ›i´¬™ædhÎrÒ hE˜¢Ni£÷¤û§e­_ÒŒyÃÊFÂĪƒ‹lÓœwÖLθJ{û’fZž.øiÖVVÒÙ)MÀ3ÝOs4gfYã•Ř0å΀³ø¡ n–ãkà!ò1óµ‰ÞàÙ÷Ì*Ì9o {õ¬2ª–{+-W†g²rƒ&Ê>‰6ŠVê$±‰pÍÇštÀ5QvÙæ‚ åJz2“ØÂž Ù×IÙÂ+ÃÏ>½æ:[dïEÉ"iðœ›:03ÁU¼B¥¤8'l)ÎÉ1.Vs§“l†*¤bM*;ÝOU[íÏlN„k2 fí™ d‚‰4û™†Z³_l“öø¡.UîSÿ|šgÏHÅ>ˆ(§IpÛ†O4&Aר™¬Ý`‘4ʤrF‘`TÚMî†g4êÔ8‰:¡m£Œ×ó&“Š· ˜^ËT¼7Í3Ž|¦—z3è%M¶ÂV²/)//Ù2ÄC”ç5qš4¾‰@6¡L“¨¢ì%Ç¡í±‰ô°$ 6ž`˜!K¦`­d”%<¦†kŽ*%ã¨Ǩæ ~ê râ”6³.U›=ø„â#„0Ë¢IÈs–o×fVm15©OM‘€ìí€[hÅ>Bì.äÔ9zÙD4íKI£8‚NÃJê1éB2Pi§ØĘ£‰Oޱ ôÔ|JŒ Žëf°7õ)È϶žš-kÈNMºÁ2[p¿ÆÜÏÑw|Œa‡Ñã,2gr–™Ucv˜n®4ó2#‘™;b…_i³1šÁÅܬIíÊö¹›óÙ`­ò®tiZtÚ1žË0¹MJ2$ rQ_ ñƒ(Á Í£W`&ïÆºa¨UÍÄW†OЛð´9$ç§T3;áë0óŒ£ a’H&'I‚ƒÒMŠ ÖNjôé•%c97J»d`lºaÿø?Ùª£<Î kЙN(n…O£iÒ’rÙ€“Àì1¤ˆÙ¶~Rfßê<ëi%™FŒ`½ä¡1ŸÖvZìuzLF™^1̤,§!1rv‚;™=ä^12r™-9Ë̦±ŒÌ·\h¢cB!Óu@ H°ù´Ë•¶˜³<‘¬áVe¹•ó‰ØàMë×ßn7o?Jñx^¼^-nîŒbõ° _&xͯE¼ˆ[L"m#VüxÄ†«Õ&^ÕJ¬®‹OŦ»{ñõr.A×B\w%hVô[QºbM‡õÖ.’¯»{5E_.Ue‹x°{ Ï}÷¨èûsq=%7­¸oqº)žúíç:[TâÝC¼ý¶WܵŮ\J¸¼GXÎã©$¹ÝìøèŽÜ v{.—ø-Y¤³‡²®t±ÞÇ[üÙÒYœDùeõÅûªÑ±ÕF!ƒ ƒ~»>Æl¨V*s½ßw×õ×}› ŽÅ”KÀYl_•)w€ÆèGa­ ü½F„%]¢©1Æî,¢ƒPœJ)‹Ëq³.—T[ßÞu|I¸·¡ÛS”¾î’ɹ¤Ï¨ƒµ§úŸC÷½½¯b Ëœn„¯g9“&g¢S"wÝI´?Ö‡§}û uÆ?»‹Øî¸ÿS\έè¯@lT‡çNÑ]zÑ=äBƒ‡£Xè§‚ï¯6$WùâR)¦ö[J™º‰¤ñð¢ïÏÅSºÑQ·tñ=âlùܽX‹¡°óY¥!NT¾{W.1>Å݇ˆÔ=TÃF „Bz =”¨xKõXð½õtñ¸í©²G±=ÀÑG³#B홹ފtìJ2A%dÞ§û"JGjŽÌáw¥.6ëd×f=–ßÀe‡¡L=Šô:^_A„ŽF@a2»S© ¹•u¦Øé'1®wïî>ÄÁ|ÅC¬iˆ' RÈçsà ±Übä?.ëS¨hM@Ô8H ü³èR÷—~»ÔÒvGw"ÚOÉ¢û÷p?#ú¹_÷4%KÚ°3Å01Öã§Èˆ0py(ãômºc߯%q,i¦5ž‹`‰ QÕâ”f(⼞vÉBlöÝuÅ¿GbÜç@Èßw‡5º†¾¹zž°›;Å{¶~>cx.ºø½CØÕ·q!+¼á½fÜ Ãò•‰±¿P¾ïÄzÈ;nÓ'ⱋÌm0ðH"ë~×aD7›ËéŒI…É©$²ïˆf¦8ïŽ.TüÞ«­·mä ÿ•y$[IïTQð:qtÝ®<¬€¦(‰ˆDjE*¶ÿ}ÏwΙ!uÙ¦ûÒ—X!g8gÎå»|7Õr]Y\–ؼʩ4ïÎWÚòðíö×ê&½±Ûœ<ÐpÌÝ#’ªEÑÉ| ¨z­·[óRiÚÃSõÕö³Äw\×Q{«mU[ís*$ÈÙ…HfœÄvzŸ‡ono¾ÝÒþ/Oÿz<½VFö5·à7šNøfÝ(»¡#ŒQ´/˜DøCöà CµÑCT§U iNÃÿ2 t ‡k³¹Q`0›I#÷iJ$´¥ü "P“¤ÙŒÄ*ô%¦fgÕUwõ¡ë¹jS TN¡‘_ï°4w~LÀàøïv;}ÜÚãzc>}an¡KOƒ¼¸ILùˆ\Û-P~͇޻º6à( s¿a Їޚ'²,¡ˆ÷Å‹¾Üêßþ]þŠê¡¢$|÷D?^᪤õ/¼o*}ZðͨúI†’wéÑø¥ø’CH1£ú¶I c–ü€¢vNµ?"î?ô[ÉaØ·$D-Ýy¿óPpÒmv]Ç_ \ µ8£Õ0Ó¡úü3×Ð î¦,0ë~bVµüçÐá/Ù‡)ø*º¨EÎ@u|ò’EšY") gyçTÆ;"¤Ìáú¥ýb+ X_¢/S­õìÝ}½{|öM ý»«š¾`‰kE¢J«R÷V…„ Ulq’Ê–ûÜêÙK¹P%ÌÏ WÐ^94êË» ñZ,,tËn1–ý©• ¯›™§N,ȇ~¤ýlpgé™;HN­\î7µ8¸‹Ðöé-ÖÆpky}<ðH,ž)7m3³”RéCï×+±.¹’5} ï þ4ÔU‹sf8‘¦Êþð#Ê]þÒ\› ¢N #Ÿ‘¶¹€Žp ‰ÒZÁÍ•9eE½.5n–„)½tUGâþØ6ƒ7qê3!ï5º­“¡ž&¨ÞTûîD†“iàÙÛèãí ÿCòãß…^ŽT¹Ä+ª’ijˆÆW<…‰‡¥Hi×mÏ¡œãAä*‡PúÍŒ«pÑ‘ƒlsÍè"÷a¥ÞЕÔg;8.ÅʆÓÁÀöZÓÄ¢btxèwNb΃Q¢7ŽQ¬ˆÙ½ïvU µ®Ià˜` 7%T“UŒHÜ×MŒz«FØX4Âzðõ´èŹNµ0ñDdY&2bÏÈÜ¿¢7|¹Iˆ86ºÕÝBÈ‚Pš_o¬@£DtÕ–µZNÆ$)I”GF jnA ÚŽpêtÌÂ1¯cOîÈ¢íæ³CFÑU¦n˜háMs oÑUKaH<}ÞîL°°lY’ª‰Ó9›ì9hËæjÀ¾nª†«rìØL±‡ =ölì˜@Üç9÷r ¼‰H![^”_^H³"u7Ã#˜ºßÏlp=©eA³Óéu]=ð6lðx<§Ñb–d¹`X0ÏOáE¦TP‡Å‚#î=Í„Nã® Ü*bìðV§R–'Œý3ƒAÕð.ÑCmÇ6’1•'nnm2ˆ—Ì{{ä”ÄÜÇŽA£r•*º®b6<ð40’2“É’ûÿb(jWÄ©=ô§Ò暌ðÛú ndU>° æ«P‰¡, Ÿó!‡@›bË‚2ò,HÏ~nRÃ$Ÿ9äªØÆù ÷Õ¦Þ·‡ÊÜ”%,FXaùGŽÑ‡cáÿ³IíI2>u•ùøÖËJó+Oi»®K’ˆ?1¯!5RŽâp0EÚAê~Øûp†Rµ=¡µ=ž©ò6"Óh&_ñ7µ ÿgžy-E*ËÞðšŒÔóÔ #e3a}I($jr/Øcî¥7u­ „𔾑s4ª¾ùÀL¡ (i‚Ñ ‹:]×v›ZNæß, =f½]ÝH>þEzÍU.H‡®»ýòðíð©j*Š…èÓÓgÈÕ™(Éψ7ž!ºØ"a‘ÁB ã »ÎC­é¡+ê•DÀaʘ:ROó¯·Yê 72ßò•sH'ùut¡á:ec d„ô˸iD¹^$ +'üæ°‚»ª³Kæ‰torM8ÆIpý.¿YYJ§]œ•’ȃQRW†xð ÌôfÛ®%‘!a$,š(W8p¨å]ÏÕà¾YH+EjÜxñ_ÖJ[Ûß<-ëPĺ²®L>à¼Yæé'rû‰Bö4øDf´`™^õ¡ëZ¹](|¦­<3$¾MN7bCÆâ…Í_ý£b1) î7EY¶»]»,äºèÁº)Y¢%,ð´nÆú‚•[ÙN¢î§U|ÜRf{º*¶ÛéxÖ.Õ³ê«XÒyÇõÆ”ªšédôt?P¨;êRTÂsi và i¦ÿP_ö: Aîy —Ž”Xqì‹“‰† ‰ÚJ‚p ù!ðöÌîìÿihh‰“;{÷vf¾±¡½]˜5|Ùêz;*KÆF¬âsDÏ öñQí~¾1¶Ý0h·1~h|ø™ÉâbZ ?2ùÜù* ŠéIº±¥P(æëM®Ÿ+¢Wk×yà¢z85ðµ7î«ÆŒeã¡p™™m—õWÔÔü¿kßaN"û9ê5Ç%[ä£ÿ§9c7ä&ANðDOƒ­y€RFY25 œÔƒ6€ØÆŒ=6aGÖá¡×À“{H…i2¨˜\ãß¹È<æý8=},â5¼z?s±²©²¢bÙ²õ’¨*ðnǠàŸžRÌ%Ÿ¿T¹©øYMiPYt:D(ˆÌGnoj aêîžZŠèw¥bKÁÝ)¼Ê=­– "y瀤.ôÌ€&®àm[ ­¹@+HRM­™Žkðj e{ ›tÐË÷µš‰1xµÂÊd{*­ªzÅ2q!Ñ]ÊSQt%’ìÙ´¿\j»Š˜ò›Â®òbJM‡ÍÆRÕaŠP¦"Mò-Ò šÜYÓ*A¹S¸íëЀm];¡Îí„wöA¨šQ——¨³‚­:“BÇÉ×z“l¶ÅzXë±ç<{ËyÐpŒgZÐH’è©Õá²M¡zμYx3³p<žÈ¡ó€ 9£3~¦ûF¼”ÐO0ì$ÂbE¯¡“»Ô²Åc][dkf·*Üá7íï`-5ƒ³0¹ˆ8*Ö!R97è  ,ÅÓgi‡B›7œ(m]-gÖņ—P»Ëé,¯—“ ö6n«vûxó-Àš tÍ endstream endobj 780 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 781 0 obj<> endobj 782 0 obj<> endobj 783 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 784 0 obj<> endobj 785 0 obj<> endobj 786 0 obj<> endobj 787 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 788 0 obj<>stream H‰”W[oÉ~÷¯èÇ™žôýò ÐaÑ*FûÀ¢£Áq¯|ac‡°ÿþ|ÝU=3N€Ý#$2US]—¯¾ªi+q3;{}©ÄÍa¦}£.tÎ Ù)-¥Á_mRJân5»žéP_[— Nßž¼X  2E!ñ C´F‰Ãr7sVë:¼pÒ •Ê)è­yªFFù•ï’—ª¼Ó±“š^¾XÌÎ.´Pbq=K9H _lg‡çˆ.‹å,?!çÅÃìcsñ¦»Î7ïé¯x½Úå§Ô¬ZIÍ];øÓ“tܳ,Zß…æ«Ï’o:Õ~Z¼E†’JÇ?*WÛαxI™(W2¡$Z/;×tßÖ›u‰ïšoÝr¿-n_-€4TQ %Á ˜F 4m„ŸŸ!„ÐŽïà€Æ!zã]»øsÌzîl“1b®:­ÇTS6¦s‘þðZHÁ‰vž‘xþÀ¨Œà:+|³l’Z¤Û<šD©$cUÓEK)ãü`Ñü¨A+ÓåfmK³Œ®m˹PÛ.Þ‹‡Ö¡1J57ˆ­;ƒž¹Fôøow…5çûÖ!öîx×ÿÐìsM³©¨þZ­E¡¢w€S¸€ÚSç é~ÿEì*ïr>Ò ‡R…bÖ½Ü/ï·«ÝQœ½;÷^¼xy>ûmÂz iÊÀ  y4”U*2`Âtž0Ž'd :™‚ØÎÄ ƒàM¢›™K]4E謷Ñ ’‘OQfV ¹Ö©W%_gí!\쬲“£âiˆ¿*PÒ†ŒÌUžÐPÐX?«¹æà\Ìÿ•ø×E> €ÎY? 0(žøí§%xÛY—†>lÉ£›4ÆklÁðïS=rJ£Ç!Çêq ‚2A»²‘›ÿ:›Š?l kðt—”+[ÚÊœPÀ„Ѱ”š(pD%jŒ#‹”#Mª„¯¦|¢`tRÎyhe§>¦ ayõŒyð=¿?ªøòüW¬´·XâKÞ?%Å;ññ“W³Ñ7Å‚C—³ˆoS2›ªl¢îdüžtÓ*ç}gÓw䱎A&?ŠI& RÓL&KÓš< Uü&tÁ¸ï(¯8 E茊…L®äZ£Eì¼ ßQLÊùç= $6½J“j”Ä>OaBD%ñYpS R‚É´ %uç§L„…—SZ)™-žhj ÊÅœŒ?YŸJP\h,ùBe›¼†¦…+ 0µ:PUP¸8h²¤&™EëX4bY„XãŠEÔl‘,Éì÷$:Å4Úƒ¤ÈÁ‚(²aW:‘œ/+ÉeòÂÖ,;Yc KIUßbŠA÷b>¡©No8IŽ"p>Ô¬%E-Zñi.:Ïrõè@Ža­2áê}d:`¦¬Ùœhrk6³ÛÙ´=qh`äÒ#70ñtÇEÂgŸýF+åmD4¢È€Á=§a YÍé€öÃ>Ô´Ñ„œ daÜik²Ì#’Ô‰E²yO¥“™,c ©Lʘ!ÈgãI ™°zReâûKE!°ã€àÏ‚£÷!¦é­â8!U#i MXä™ô¼“ò7™ìëÊË:Q4ô6êI X¡–LEbOðÌi adʦæï$ß!êõ Õ»v:YTYæ æÄ‚ú8z NOCj•*5ÇJ¦±ŠJ·Zg¥cÅù:…«Cy}[F Gq‘ª1lÏuZ<š‡%.V¯Þã§×ÙëK%n³‹ÙÙüŠÅõ,áf‚û½å!/ Œq¾/¶¸úßàÇ”øŒ.–³y~ĺ[<Ì>6ýáЂˆÍª…Z5wÇõ~'ö×âó¾Å}µ9ÞŠãí ©íÜ7ï._”¿ýîJày®Äçuk³aQï¯!82Å9Ñ~Z¼éüKUI±xYÒ%’¦,®úc/–ûûݱ“œ§Ç};W-šõîj½ì+¤Ô?5¼Í†®Y‰‹7ïÅú ú#ÅŸ×ð^ç*Ò(`–8ÃylVý¡c=¡žÛ~“ÛæºÍ~Åõ};Çý¸Ù°º+ÎÏ. á¯$–ÐSî€ùúU:€ ê ø/sÙçûûÒ]î€-@âGGóbuÛ·:GþºÞßq¬öÚ{üZ"aipa`Y‰t¾(`Yz,Hú=Wš‹EÁvûe“ûl›-š×™†„]+›cŸIq(m÷‡u9œ_܈wÈLalˆ>¾´ãùry—»„çZàîx4­m>´s srV½úv¼ëÅ Kœâ YþÑ>\z¢Ò¿P…¶TÈ0>_<ÿïùûøëâ)ßI…»À@==´\r2Snîû»~w\­® ŸöùÿÏ+ÑçJÚÜó>C*êávµ¨\gø®2íLsÈoú‚F(Ø™F|©â¡LÅjwë]ž§BÑgÅך&Œ™ÊéNˆZ’®9+Jyõm¹*”ùR§µ¤”»x,yìVý “ÒMË¿ó‹ýè7¬Úã=:ÁC¢°ÂO†Ÿ²Š”å°Ûìu£eCÀ]îXÛb×4ë~SŠº[KÍXûŒ¡Øã~ÇeÖ`ëö‚ÔÓ8šëJÂâM·–8,[¼ò¾ÓÍzOúg™YºyÄN&5>f"e"ý‹ŒFÙ¦Q^yÛ¾Àð·ø¼B:–”kžnÐyFÄ<.Ëc˯ÍýÎö…UÅàŠ 8öñ¦9?à†~ ƒºwe±áKVpŒ2èºØ"¾íc] 7âëÚ|nç)öW2´òÉÁ,ÌË Ó¸/4Ì£ÍÍ€åy®ûªu4È®¹^ïV…Ç[”Ÿ»óµßÜÿ÷jím¹¢ßû+æ#YDß"ƒÅ»Ù]`Ó­ŠE Z¢,¶²hˆ”ÿûžsï̈&o‚.úÅ–¨áÌû8† ú²Ëeáê0ša¼úÙŸ·‰oG¶ R¶âTKÚtPÇ©Í"{/βbœ3Ùªòœd§ì¥`»{Ї®= â8ig?<*f·Íq ÅU¹À)æ"&Ðaî‡æ´« íè¾UÍÛPÎ4‚øb]¿¦?#_¦¤ð(§aþ%Ö*¨•ΞÝaáYcN$ ŠåMpÙ‡ê@ðHЫ@–`A1\Âdž/À•X°envØ# N½fp0Oü@nZ$Rž ¦’$L ¤*ÉHÍVc”7SÖ7È,?!j·ÒMOZ–vÐÄÚ%ö[çÔILáè“ûäÅ.yúeÁÞ–N|iþÒ=5Í)\­tXl³“Æ©\ãàe툣E,Ñ-a"gOq0÷ žk¶­PL‡ iØjƒ³³%Ð^›æMHípa” öQ””ó‘{‡ð¾bäbQesÒ‡‡ó`îkÔ)ÁB ^‘H¡Òç ÄÉÚ­ ; „ö0‰x3ÓäŒgâ‡_>|üÇú·÷ØâÃßÖÿzy‰, Öe*$™˜h×pýïÑÜéãܼÿ€-g;¦Ð+ ÑøØ@;ƒÔ·Q­<Ø7'm¢„z€¥K‚¥Yï[¹¾þÝ*™$í™C=èÇR÷DÌä ç:Züþ¸8D,À×tG䫞ت˲a™-8u1™½B¡¢´6Šx£]C…ÝÑMdðeTã\º‚’‰(ïÒs8اÃÞ®µožïtÿ=‡R?~Ôñ‡ætq¹y˜‘(ÒX•m“ÿ=“ ¶ßWžE³‰´Š|ß$¶o>…ªÅ—!ƒe_hØÌ-DÔAR¿Ð ô%üñÐ=95­·ÌO3U¯Ð7Hç¹kc· Ö¥ÒU°S> êB4Ž÷hOJ!'Î|)xÌ_,Û­Ó³;nuVzcµö®Ýì‰9Ú‡æØ æ¹ ·<}%JÊyP·ºèPßlÛr‘ÑÆGþÒNµ=¹=ÞékË©6ë†ËˆŒUC>W ™S ™˜:ÕzÕ`äM%W#„×iÄvJ†D{¼æH¬ÌªL‹Ùl¶Ìœ›ÙÐ|éë¼j?È'+Úåy/¢U .¨oíãVHc¼»\I^¾,<ƒÉÁ£ã ¥™M‡¬.$ò$xPg)©Ç=gä™gS ת<ô¹¾³p;¸—ýk2x×­—n›ºÖ.+I/.œnOa$@âN§LÔ¤Xd.µA£íoà46swd Ñž­ ƒßt÷‡ÆÇÔ;KH¾ÙLÚþ0RS1Ì+eåE‘/­L@7÷B=„Mm'ÕÅKgŠàÇf'ö´ƒ†’Y(u¢9¤ÀÌy|•q|Ô²°ë(Ⲛj Fœ§Î<±lÒ’¬]ÿF• “:2Vj^Á¡ l&7Éâ Âç©-¾éé^ÓàîLÕ÷lõYм˜ì)/ú6ŠR+›ÏûöÖ‚öà#ßiÛt* ·¶=À#îà¥Ó’ôæ–O ÙU°·«Ûîd‘ÿ­¦h½ŽõÂÑ ”òùù.ŠVå÷ãÌØUc˵1$£ÔVP$ÓƒCv¼ªP©HÑ’T¼håjÑBÈœ•‚TäosêHÜE>⪫¹¨'«xÖa¯öEÅž¢bGQRLä\€k…ô.ìJÔa®KSÕ¥˜ì¥ - hÕ ò).“¥(μ÷gÚ¶pºýWÓÔù©øæì²wü2›Ô3á¬çËY¯ LäDù B÷¤‰;pîÞ?*£îD~C9Üüz³6Úä÷a îÕ-CÎÿP¾z)‰9÷íQâÎ|èX|g5¸ãÖò3/‚; |ûæ§@°úŸìkpŒž`ÞŸ˜_º¸}×n r¸êÒó¤òÑ‹!³ÙûûoRxyÅô®–e’§—©É*7•ê-+ôö¦rc´ùbúAee뛇¦ï-õÁxVäû}À,êìêg  ûFåăð’¤ÜL1‹‰˜ÅãÙnx«ú¼Ê·ÁuV2ë~п=Õ-8 ·zð SghB"úQB~ÙëZ Šh6i@KÓKçZH¾ þYñE¿|”£—ÜÜûÞ åŒ¬¶â¡ÔáLæhÛÊkƒþKv»Þ4ÌUÌäJ›ða#x¡ï‘§‚s¨7©°¥éžP¨\õwdÓ¼©uY¯m:e  Ô÷§Tázk*HQ Æç&¿È^"üî|•OÆa‹E)jœç3Qçn^ãÄnu¢Ö£}æÓˆU¬Di𹚠Ã)*.HVL£þâÞðÐ5’5ÿƒRJ~À\®R®{’s.‹Oú[Ï¿œL6?•þÝ£,,Ý0; eù<÷Ka_4.®“üÙÐØyÅ+Æìl¥™^`Ó 9×øõ§iÝ÷—Áºù”Sxg¿ËFî0÷Ê«YûB2®Ý0ÕJnü ]ÇÕ.µÚ’ mäõŸ•V*Oj±vM-ljNB"µ:^àø§d©½‡£H⛟o>rZ c鑡Ó96µ˜*ßgÓÉçúpßõƒ~ƒ-€w«¿A'ªã‹"|×fÓ+š~s|)9ØíeY4ía–%® ¬"ãŠÐBüL™´Ì.XÈiËA‘¹ûF<­ÊÙ[Äw’WÉ*ví±éŽDŠ4æ±>œîKx¨–qY¬ì¶#ÂÁ«¾H8rº/L_ø†}·Wïp)€:¶Öî‘VL«ñ ôUã;»ÉiÏãrê7Ƕ¦8誼œðh„ß‚p^‘g±SäêÙb°‘ýÈÒîtgí¢J+2 ýÿ TYI*¶ Ä(«A`Wèòz+ØÞÙ‡[M,Ôà%›")Á°ÆE5#/¼Ó|[Õ u/óAG¡š“•4”ÉØO|ÔÜê:YÌM ÊW­Š‘pö– .­¹XÂ:†Tšô ÊéQÖ²Q åÅ,P÷ˆxÕ?†œºAÿõ"ÁªŠ‹k66vГŽëƒ‘›oÝæ?fó¼9ˆÛP숖ú‚‰ú:#'²\ºo‘VËœ<;©KœzÜZ¹ÂXába*:^oiþÚAUûšc }÷ ù8I•ZE&ù±S_È™²Íȧm˜ª¼€Íh»íÔR€&þ3á’œð5?‡bYr0õA×bñs¯šyM@ß™%¯h‚ò›5¢¾&Y<,—9jòTr°$4¥3G§~¡ûp]?$úªPºc®­®Quнʨk³|à±ÇM›ÄŸÎ'b„­3FFuº€h¥m}\Ù“¾ÆIEúÔzÜݸWšÍP'Yy²‰áÚ»c}@¬¹O¢W|9îûö¶•_FÈVRýû M9ÍtOH†nÒ³ÏïìÒ[XE1‰œŽþ­†¿^Ç#å™Â_û»(Z•ßOH‚«&9ú·%oùéŽìtË·¡5E¼òFPºç¾9òÎ*1†}w¾Û›cgdBJ·TС´âH¹r_cŒè:Ý.—®³.·7)T5~,¢2û?å`Ö’ƒ£¸ -©Ü¹=nÄÉ(G–ÐV?ƒ+Ž{äA¿lý¿ebPø-ä =r$Cwj±D>]67ódäiû±[]@ž ûVÑ=µrHÄòSA\g&I‘’{õ=ØÃlÉ=1°#ɬÀ?Lï©é›aоR7æ‡$ÃZ·õ—æS†“"Ìî4‰/…­›ÆWúøJ[‡úHQ‚¾Oša¯ò‹]Ó‚“h²;$¿“-ó&™x(–ópfh#Šœ¸Öè“A«Œ'‘>pu-¯8D&ÔY*"{ø²R”V-â„Ê;!˜ŒVf¡d›[8¹Iô((§U•O[}á¤7~Oã 0õ_Æ«e7nÞó>Êâ5%êÕ›‘ôØXlÛCA±X4—´‹lþRòkk,zò‹”Æ9ŠÂõ£ÀEÇIê‡ÇÖ%3´È(  ii$š¥+DD»Â|еšõ–ˆÀ‡E¤!`‘ìõHšïmèµ/‰œ€È×…sÇ©F 7ñ{ȹÞv!-57¡"¡Ì­ªÇÓùýEA¸¿ï¢w¥g“Ÿ$x?ϪÌþî*ž{©Gu†Æ²Ñ"œ+_¢E~ ç³P ¨ÂæÊ_¾×¾&Z˜b\í_yJòƒÍ^9æYÂŒë &Ä(Ûfœl2cê ‘®ñøé\«¢ù\Tiâo§f+©ƒjD–æQc>‰ü/¸E1_ÁJ~:º’Þ30)Ü50›'`R“ŠìÏ›Òâ©%A1Û„”@ƒ€t óû27väòêäd)—üº¼½°î¡eH[à¼G¶>·ªg̓>}•'óMïšYspÕîmêˆ}½2g^‹ô'C ­õØPÖ9e!+w6b#[ç\q÷>Š»8Ù ',„©CÔîd¼7»aá[·_Þðí·}Ô#ý¿ÇR»ù{¼íûépGA†ÔÕ úBdI>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 790 0 obj<> endobj 791 0 obj<> endobj 792 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 793 0 obj<> endobj 794 0 obj<> endobj 795 0 obj<> endobj 796 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 797 0 obj<>stream H‰¬WÛŽ¹}×Wð±;°zx';oã¹1Öv²#ü†!hÚ32f¤‰$¯¼ŸS,²/c9ɱa«YM²N:Ud+q7;{u£ÄÝ~¦}£.4Î Ù(-¥Á¯6mÛŠ]7û2Ó¡¼¶Ž&Lßž]ì½Xía ²BâA†hûÕf欰¦ÝI+=¤EðL¯|Óz©Ò;©ùåËÅììZ %_f-m(ZáÒ ,_<Î$ÏáEØb…áâ8«¼¯_±Îðºþ2mèbqÉ‹•£Å«ãñX{Ù¸ªù¾~Xoê¹Ãó÷fµ}¬?-^Ï®ˆ¦(@TðS£EŒ6b‹ŸãµA72N1Ë„–pâÕõßjÛ„êú]ú¯º LÕÕs[í–‡íNüî•Pôqô`Œ˜«Fë>–Lžlà½ß×óÐØêU­+ê9 WNœ?íê¹ò°¯„jÙüBhÉOJ–ˆÿKNMƒ„ë(6Ù´Ž´0äÖõïW$xô*13Sô*‘E´û?I°R%.Ÿ9»¸§™jùÄ¿‡ŽwÂþ53•3á}à„Ó´õŠ·µŽ7»ìöµ#6À ’~WûFW›¯ ܉ãIqÕá^jrtŸ^wâb»ë ]ÿ‚ž×bæ ˆà}ã„ b®AEýá/bÃz—ª±aꦵÂyҔʒ?»Ü®¾=v›ƒ8{sÔ///fÿ¥¡5øCu'MKõ§¬R1%e¬©Œ ‚&´(W¨´ Z<Î( ¡o ~€…JÙN,­ûU$ßFIB‡¸¬Sä[µ> àçn\ltlÇnF–Sn~YïŹÆK÷g½äUÿ{0'Ü SZMÜ –SnþC0J£`CÏúcÞÓLòÐ6±u"eÓ k´éhÞtT™ ]êö Z¥_g[ÞSÀwyC{BÉ>štèH°œŠÍösÈâÚ‰…êšseµÎs"r4 û˜8¡ ÷Õ"Ž˜,Ø1êÉÛØ&…}ÜØæ*ÇO>.nÄÏ¢¿¹x‹Îóã+Z–nÅQ()ÞˆŸ¤¸ÅŽèÅÆLxÉ–Ç l¸ÕdV¶ŒÐ"#î¤ÅÙF¶‰=cíâIË‘3h³Á޽Ë“¥V8ÁdZÈŠ8EœÊ¥Ý³eÈŸ—Òœ² ¸±Ê%Áöø’Ñ'µÆ],£9¾1Á²ŒcÃiàc£vªQÞuh#Îô0ÆhæLPãÊbmks €‰ÿØD?ÁØûêuМð­õÜÑòìg½¯ç†Ü>u»/õ´TÛÝcwKÖPýV“ÉW¢Ÿ&Å‘ž\µ¦7¶:Ü‹íŽm6…ÿ÷ÛoäO"áš`s|IHdð{ŽÐ%œŽÑ½G”¶‚/LÄ+0¢ªïµ$G»DÏRÔ¾úe{·s¦Z‰/øÕÕ¶&¢w"jªBâ«s´>t´ê¶{ÚÃVìj™?[-o‡W»åa½Ýc‡X5 øÙµa-(M%1ð“2tbÜþ x4)H"ñûwŽÇIŠèê{Îç#ñ«§‡N¼×pE@Çç@µÉþ~ª=‡ïHŽÒêjÏhÄ~µ)Q²Óë$«õÝ7Š>«¦ožÊÎkʰòÉ©=ÒC²äDÆ>‚¬hâg¿=î!3RMêYnnÁ£ÖywŠðVÜ.KŠJ§E+’ÙP>]uØ7âÃ}·9Ö6s‹Ï3…Zí! ù ¡|øõóöz;å‡ZVà$ΠU¢ô*–û}·;t· j½ø:x¤;>³N9¬®ßÿò OήoÙújŠžLa¨¯–;‰Ãã¾ñLîÆŒâºíPÅß¾¦Ba¤Ià/žÑãxg`‰—ËóÅùçÔI&€CE§\ߣða•oVF¨ºÇnƒ´$Qä†p³†RI+kÔ"Ji¹{ø£VJ¡¼à<Šã‰$¢YëOsŠ~xõv‚ùÃÚÀ©êÛTsŠ»PT@K@ë­²©c¶wB ýÝ–ž¹¹ey>GA8mNb»zó÷Å?ĦÆàú&opv è\ïin a&öÿʸýíGbñò¥Ð'}RÈ:±CçŽ*n»äoÅM/çÛHÒ¼Á\. ÄñÐo4ÄP½ÝºgÅ¡uuÕŸ7:þ›ýrÛm#9Âð=Ÿ¢/‡@HOϹ}§•­À›¬ŒÈÜ8À&0šòrM“ IÁñkä‰ó÷¡ªšÝ³äb¡›“ú8óÏ©¿ªšÚŸÀKõf¯ÎèŠÛãé¬ï}<žÕáAÝøÕù‡j×X8«¬Æa6ƒŽ¥å¼š*ÎË4œ½}LÉís§dÂ=ùƒºW§§õzs²Å¾/žv¶^Ùò¶QgÜŸ¡°šzKU„u~Y/}éññ>ý°^?ùy<©ƒ¿öóÏ[KÛÛP5·§íþuÆ3{•5F^qe;øÔµëÏjóñÓ†΢³«Þ–»ýáìþ”’o[߃S{gïmŒõ\gÿÕ‰S2™íÐÔêqaþÂÓqUn¤•<íÏÛ»)øc¿ù÷YáöïÔzg/Ívok´H\(¿Mz‡ÒŠtø‚Þj/¬X*±-U.Û›\åÒi]–Æd+%Øz÷ ç_éoÚ¦>.\êùx¿?m1Pìí*pWËê—R¹l/ÛP+O=¬ÔÏÊß÷œΛ£¬\·hý-Â˃Áq£[dCtKã•®BÜÑJVÙ"„–mK9ê¥FÛ:ࣇøD±t.Øìè>í0ºÐ¶d àj+ïÖî†íi¿½û̧&Té05¹o­³²(ýÈäÊ ?È2<ÈÛÃ~qúöåËæìôsç€#6ö®N›õYÝÝûŸ¶~¾ÆÈö?†'mð>6ŒOöV ƒ‰ý —;`mÿœ/Œ•ú¼Ò¸¾ƒJ?MØ`á~¨ §pµ‰»µR‰CQúan“¾7êÊ6y{Ë!œëxö/—¦oò““·™ô´Üÿ°ìé›BN ÓprbO®[¹3;øqeƒ gqµžÛö¿~‰Í;á^Þ¥®ÍÅ“ó3w"f̶t oŒ¸e¨yCñÿœõµûë­ý«øÑ}ÇI7 èÏúõj¦;L`ƒê ͳ¬½‰F¼J73ÌŒèK¡–ÆþXcT‡uþǺmðî$¿7¶„F¿7­¶äW÷oWNäè~9z8½¾Ä3«T2Ž¥LÛ¹-¸E Núö…¹xhê0‡†Ëƒ=8fØ­ÔïëаE‹Ÿ†Ñ#Ðî"Æ6øn5Qî¡®…¢N6=f×Í4w9v—]è[Üù.ޱë• ô®—»w¹ã§ðëÆÿÖŽQk(ÔBÝà«o¯ÚMŸüOaû#Å¢èºÐÍ:Ðî7«üP*¼Û,ÛŽ?ÿ&j“A¸·xý;¨}G°f Î/Üô•®HÊ<Þ­J^@!Úqn“í9ìx¿wy~àÅÁ8…ât¾Ç7u}xr¿îç¶ ŸO–=̵í‡÷ÃÑíæOé-®&üñÖÿ¡¾nqŒÕ?;ê¶~ãÈÞ¾õ›pxwô~wVêzç¶Á<ˆû­‹Ï'vÈ.#<-Ê k5šè€ùÆ`±té:Õu Ÿ•{ÍÅ'4ð« s«fúx‡EÒÀ®³Î! Šêߤ¢lÆHØk—åD¤ÁK&Öf”ŒÕ k✜„½òœˆÔ0cAœŒe‰Ö'çÄï•çD/_UÙÇÉU…ëâœâ÷Ês"‚é¸é/î3f›®»¸«#Äï•çÄÄv_'—hCõÅ]ÍIØ+ωæCÛT$¹6Xzï$''´Wž³‹rêe5£ä“PßÕöÊs"2`4ë†8¹ÇÜyqÊûä)éÑQ}‘‹ÏÖ\çÄï•çìlÑW¿ P}UúAÍ^üñ]¥>&1'1'1ŸUÌw³º4K´OQûV—øVÕc„}KR°X6É Ë–¤`ùi›2-IÀæ1 Í8d„fIŠÖŽ9Æ!#„KR"@Î`Á8$',X’"€… @좜ˆ]IÊNRÈ6¬Çæ„ÕJR°jH,ÎÈ{•d`ÏT’š’*I±ío²l²l²ì÷µ ½Ì®`}¡±ªiÐû1"Z%9ÓˆˆX”“1+ɉˆÈÆ„Ýâ䜰\INDÄ7&¬åŒö+ɉˆ(Ç„ £œŠ%91a눈d”“±,ɉˆˆHäYÈÉI$Z’³‹rØ="¢%çD\Kr""úaÝ(&¢[’1 ÇÁ9a“×é&''ŸÑAôÁ¡D³ìb‰ˆq½Yöf#b\’qˆG99ã’œˆˆƒLØ8NÎ —äDDdÂÆQÎaã’œˆˆƒLØ8Ê!l\’vˆG99ã’œˆˆƒDÆ…œœDÆ%9»(‡$"ÆQrNĸ$'"â VŽb2 Æ%)™°qœv0Éq}prprprð|7kt·„2¢ öÍÝÕc„}KR°X6É Ë–¤`ùi›2-IÀæ1 Í8d„fIŠÖŽ9Æ!#„KR"@Î`Á8$',X’"€… @좜ˆ]IÊNRÈ6¬Çæ„ÕJR°jH,ÎÈ{•d`ÏT’š’*I±n²l²l²ì÷µ ½¬­Ðß.4#"Vµz9”zŒˆVINDÄ4""åäDÌJr""²1a·89',W’ñ ëE9#„ýJr""Ê1aÃ(g„°bINLØ:""åäD,Kr""âyrr‰–äì¢vˆ¨FÉ9×’œˆˆ~DX7ŠÉ€è–¤DD dÂÂqpNXÁ$ÇuºÉÁÉÁÉÁgt}pÐëØA"bˆîº1"Æ%9‰ˆq”“1.ɉˆ8È„ã䜰qINDÄA&låŒ6.ɉˆ8È„£œÂÆ%91a‰ˆq”“1.ɉˆ8Hd\ÈÉId\’³‹rØA"b%çDŒKr""aå(&b\’q ÇÁ9a“×'''ŸÑÁw³¶ÂQê*r ×V5:j3Fظ4'"ì 6ŽsrÂÆ¥9a…q’œ2.͉;(„ŒãœBÆ¥9a…qœ3Bȸ4'&ä 6ŽsrÂÆ¥9a‰ˆq”“1.ÍÙE9ä 6Ž“sÂÆ¥9a™r“6.M‰;(„Œ“àœqiŽíƒÿšiÓ/«¦UM×8Ãêª_öC¯Ú ˲Ôq3{¯ö“­“­“­Ïjë»Ù_fZ}¯fU_-‡Á>Zµ8D]š%¾Xз•Ûö»ÕìÅM­´Z=Ìzˆ\֪ĿðµªÛeoìŠìÚìÕêˬT«µýïë¬x÷áúÏš¯~™-Úe[v­ÂgiJ£V¯f?ÙŸ_Í›²¸šëª,Vîÿ«×o¼]Íÿ±ú~Ö-ueŒª–©[»‹ÝãõíÙ/Ã)r# ß_1gNڡݶÛí|#D—\HöE§èD6»'" ˆ¢û÷©êîz«zÊ ÌJˆ×Bb—‡ök·íz¦†ó_ÙÅ.«ý1Ð6yE„ä@/ú²\Þʱ–bHO ¹LE9—`_èBv„ž¡Í릶:-…Ûs#2fKøJ¤jGÕJ›“ ‰Ý0¯GIÇ4ÉFr"XW„çì(ú-¬@êiÉkBG4T3t3®O•í¨Ž]YrÖS<Õ*¦ò%°$u­¯7£RGûmK§ŽaEè%»§´3”“Vd %vTŠ´ä¸"•ÖlO‚?$J6g(T(+ÂÕPWk.¤¼X?B¸ÍôöŒSíè-ìnd’`ÊŠÐ[´ïžݰb÷ç9)ÿyýF+•¯|åyq ásIôL5ÊÕg:’Êtבã‰äÜ~ó§›|â5ûL¥ÜÍßqø³€5r ±Ð够=×'ÿÌT_¼ûÐ/Ð=J=MÒ,ˆÎ†d8Ý9,÷Àa>uýj‡gdÑš£d=×´k_wïÛ;›"ß+.˜ÏÝÙ´ìì-ÝÉݵí‘ÞæÌY^¾`´à²Ú±÷ÒúŒlŒæ(9½¨tV_wwœU¤m¥:£ âÙguúùÇ—4ÌÆ'bêÙWÑ´§Ä6“Ú*èùj&I¹Ò¶¤O\|yF¶Ns<1¾úrÓñµm×Õ8p‘V{Vû—óè¹! Ôt%ÞÓaê)„pŸ[„›ø©§À(OædC¨+i´sEn ‹Mnnëó*Ç“9Ù’Ž:¬`çêy[m°4¦bÝž&›Ø ½Íñ¤ï]Ž's²!Ô-æ!Û¹¸G)É&{¸ñC:j£=‰ž+;Ù}÷$vÉåx2'¿2É™¾n†Õ\´«¡®æò$7rÚɆЧy;×È»jÏ¢Eʱc7™ÙÎƒÝø]Ž's²!Ãx¬ýêp>d{UûŠ; +RïÈ!¡ßM ›61üFÄÀÍCä$›zâŽü]°M"ÅAH± @­Ha#µA¤°1È)t©sRÕuen2š¡ PõPâHõ%ޤä+/åTOPðHq@€X©ÿh±Kª'ZìHq@бRûRè:'Ù§4c î¤È‘Ú KÙcÌé¿Å ©xd6Èxšâ€@ ÕŽÔ©§)ܧQؼ±ycóÆæ ô)Sw±ê?%êIJ“@å œ D¥Hrƒ@å ¼1$ØÁIŠ!ª!Zù’㉖>r< Ñê—dO´üOr Q,ÄÔû’ã‰)xäx AÍc.Or#§lˆŠu/É "•cˆÖ>J]bdt9ž ü…hýƒÈ$«@ê9g6 ›61lbømˆaêÆŽ:ˆÁ<Ê»Ôc©c“ ¼1ʼ-x”·$7Ê£dOTÈñŽ@2$±ã„%Ù#äxO ¢0—'¹‘ÓN6De7Hrƒˆ0ÈøBˆ ~Ü]Ž'p†•!É R]Ž'÷ê76¿l~Ùü²ùå ¿L}É8R³­7@` "aš–À(Oà !ê XB’–À(Oà xC4!Á¨%LJ;×õ†µ„${¢–@Ž'ð’á !j IöD-Oà $à 1–X’=1–@Ž'ð’á Xsy’9ídCÔ °„$7ˆhƒ€7„¨7@` ÉmÑåxoQo€À’Ü Õåxr¯¾dóËæ—Í/›_Îð ÷%™Š&ÇÞxC‰X"÷t¾ä‚Kè(OÄ ð†±’D,¡£<o(o€ˆ&ì,aSÚ¹†À °’=%4Çñ†&‹7@` ${KhŽ'â MoQKH²'j ÍñD¼¡Éâ %b Ë“ÜÈi'o(K ¹AMè Ä ð†±rdt9žˆ7@à %b $7Hu9žÜ§/Ùü²ùeóËæ—süÂkG¾Oa¹±«Ç>Ì­Ëï¯. ©¦‹»Žþ,¿ö‘½45ÿ‹7ì®^_ìŸ=úùÛïÿt¸ú÷Åe>æŽn ýìjWwW.~âÿ~tHÝþá!ôÝþjúûáÏßþåǧW‡\ýñb8†¾Öí`¥ OCxÄã§œ÷øêtq´Zºã!W³ÜÒ1&¶dG§0L¤k)†ôdÒ@FR£ô…¬ÐÙï(}¡eO/'깫#gR©æRµ£j=–š ‰Ý0¯G ­5­ ÇÚ¢ó[žk°£"mÍ ÂK·&t2Cµ1CG1ãŠðTÙŽ*áØ• ›¸žjä©V1Tƒ¥Z’ºŽÖgmšØZÑæ$rTÊP$»§´3”“Vd %vTŠ´äÕ7ÊDw<Ø“H9K6g(T!+·¿®Ö\ès(Öþ–é-ì'ò}ZÚÏ,2dÊŠŒT{öÝs Vìþ<¿;þóþúV&™uö(Na!|.‰ž©ÆÙò }Æ_¢©pO4çö›/8Ýó¶=¸‹¡³æ'Öea{Њ…n'ýì¹@ùg¦ã ÙÇEºG‰+º/X YpºsX4î!ÃtêúòŒ.Zr,YÏ5íÚ×]ÀûöÎ&ö2ïÚgïlXvöŒ^óäîÚþOoóæ¬N/_0ZpYmŒØ@‰{iyF7Fr,9½¨tV_wwUÇ‚®gTAöYéçŸtµ)TZ°íFÿ–“ù=%¶ÖÖ@Ï×v‚³@RæYÒ'.þüŒnvy§då«/7ÝýNâÏÿÃê¬öÝrèÈ߬†i—ù;‚Ü©Â~ú𢹭¦®sŸüøý÷gu¢²œìc±Üh,Bnt¬tŒi¾ãi^¨!ìõ bÏÀô…¿óÂB>Ö;¦@¯LÝ‹4ÂüÊÿü׫¿ßûí:– Å:PÅ´Ãsã+ïlÉüÎBì— yfnyË.eºQ9šg„8íenGùÿãq öˆ~ÐÛ†îÈ1½Áퟎ™»ÏJoO¿ŒÜ| ?íÿöîpòþ凛Ýwo>ܼ»=Änÿâúfj«ÏÚQy˘ù¬íáÏÀ¿#½[ ;–øËHÝÑ+gNšè\>ã%#@.ã§_òÙÍ‹µ_ïÁž‡Ý/“f<ieW·õX‡iÂéîN} ÌÃ4Ïî—‹Kú¨êM{}Á¿ñw”ÿÑ$ô­„îT¿qèöÿ¤o(ûW‡Kºû›]:\ûKúëöÃ囹<éçÉò1z—Ž¿´pZŒœ;MAç?÷úí«›}{Ý¿>tøæÃ!Ó4ôPÝó¯/éãþ?ôLÝ¿aÞï/ßO#ÞÞ\O?—Gn§§ýÿõîùß¾‡Ðà¾aÊÚÝBY¢Þíž.™KÚ¯óœ¯_ßð£ï¦Õ¼¼Þ=\Ïõç ûݳnqï§—§Öx\6˜~éùüi멼Çÿ'»lr†(|/ÊÇ!RU ¨XÐJ”XD¥IÕ„Eoßoü“@»‰¢ŒÇ3ïÍäÙ#ôº$ÎÓ°Ùn^Õö“ì‹ B \H”™Ä‘ mã#ðãZ]J8¹oDn™W¤fa»—T?å»>BŠRf˽ò{ua-m>££LÚƒcZаÎê‰ÉÚNüøÞ®æ ±œ™R¤Psj>å²SÚ93.¬3ؤôª±ôs¶mNç¯3¦WëK{üèDçdB •–É`gSC¢9áJ<Ô~‚vdK©œÎv!‘Ã!f¢Mêõðf P:—¡Ýa´fõDôÅŸ*"…’? _¤"ÎMJ)÷pžë²ß¯ýù¤öË`™ ¿•å6‘`è!d¶ºÖ—~Z7éï(ÉB-*yÒãV3U™¨¦Ê£A{^U¨ŠCHƒÝšâ¿ÿ2Ú‹¢¼Û?ÙÓþ1¾.irNlŽsc‡<üЇuçÔ±ã#G‚'‡{:/ù[+„EŠ|EY"mÜŒ“ ½˜;ˆš©P››>ÕÛ$È1ÇqÁ¯h\,™ endstream endobj 798 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 799 0 obj<> endobj 800 0 obj<> endobj 801 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 802 0 obj<> endobj 803 0 obj<> endobj 804 0 obj<> endobj 805 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 806 0 obj<>stream H‰”W[sÛ¶~ׯÀ#Ù‰hÄ5og’™ÔÓFóɃ"Ó¶ztq$ªnûëÏ삤7íÏXÜÅ^¿½Tânvñö£wÇ™vMÂ[ßX'd£´”-~uc‡nv;Ó¾›ÎO/.N¬Ž`zƒx>˜V‰ãj7³FxcXi„JY |Ó~ËFDéÈ5ÑI•Ïth¤¦ÃW‹ÙÅ•J,ng19QØ,õÅv&¡<‡wÙ:±XÍÒb^<Î>UWïê¹m\uuM¿âm·KO±êj¨ÄêPÏ=~–Dõ{¦Eí_ýîåªFÕŸïDKA ©ãÒÕ¦qÀG,^S$ÊæH(ˆÇÇÇÚÉÆVÍëÍ:û·ÕÍj¿Ífß,€4XA $Þ ˆ4M€ï!„PŽgp@áà½r¾^ü6F=·¦ ±mÅ\5Z¡Æ$Lzþõ­"¼õìB%än¾iUÈÍds¬…1J„ÆIÿ c’Î?ï%±éUœd£$öyô“FT¯;*FˆLRR7nÚ‰prÚVJ¦A gœâ¨ôb Æ­O%=Z\q Ù\%™´†¦‰+ 0•ÚSV`Ø0pí¥&šIc™lÅ*+øà™c³DÐ, Ñl÷$R‘|¶ºÍQ‘ "Ó-Ó¸F´.sŒ$“Ñ‘ S4˜¶²ø8†‚*,ÞÅäƒZÜaˆYCSž®eDYòÀ9:_r0†%iÅÚœ´÷Žébß“‚—–a-4áê\hRh¦ÄÙœqRi6³ûÙ´0´±´…á]âU+Æ(Q:îÜ–-Ê¡‘¸µ"ÇQ°éî;¢du¾›ÀpT'Btð“:MT©Q¢õg¨ÐŠ$•ú¤ÄWúhÌÀó¬¨Ó¨ ܪ#H`H5ŸsÞO`éRˆ‘C¥*J)Ϧ¸PÎ)ÇÛ3HÍ8-MAE0HmÙm}ƒ{N²š&‚vÃ>Ôt« 9ãI¢µç¥I4HTgÑL ¤=Ï\¤fCˆyRÆÑ|&œåVO²Œ|)(¤vp" ~-X:÷!N÷h!Ç )IáiÂϤã”ÞÉ$_.PN–‰¢¡7AORÀð%eJ{‚gN©x\£6oj~Oò¢\b¹kdzE•hßžIPG Té© j…Di•ci¦1‹Òn%ÏÒŽî×(\…ºÀëÛ8?=’ãˆNËò\Y«Å“yXábõæÃ%>½.Þ~Tâî8{µ˜]\Á®XÜÎ"n&¸ßK‘Ò’°!M¦Xlqõ¿ÃÇ”ð¹XÍæxÄÇÜâqö©Zܯõ¼­Ä-þ7¾êê¹ntµìOõ‹ :ÔÊîD=wªX8ÿ?Õ¸oWûCŸd]ÕÝ$åÀ¶\µ¯çª±ÕA\%ÚVïjÙ˜êêšl¬ö;–[ßÑù©8+vÓ/ÎkSvrŸŒºJ¬IgWcU¬ÀÁ?t»Âر–XmH~¿ú/=Ple›Œ†êaÓm¡rîß?ï¿þ¼x\Aèté]¼Î£`‹rf„¿lb›‹_~¬ÑHÕ‡Fü´ßÍà‡êÏdÏWÛm×Ö+±<>t«>¡ èñiP-)Â~½'ù|´$››ý#ŵ"K­B0\äþ¾Æ'#Ù$Ô$è‡Sx"›Ä£æƒ±? UÿÀ¿ U‰›îTîb+ø9ëñ«:•9wu-ú=E7GxœRh/-D™ž0‘„ªg‹KÕ4¹ìslÔê¶V˜}ü€2U‡IÏ»„©ú&) ¼Å=1:‘¥Qí:ÕoC†6ˆÓ§¦ÄxWIÅlèN0û@ðîS×ÃÞœœ÷¬Ìä¡Ö²„²LeT%t”1= £ò! zXR¡4>ž0{CµFðHÅB¥Å2‚K¨ºêxzxH ‰hÔ0"uúó2«ÄŠÕË:aˆx‘ ¡^š߈è'"ê…Ð/Õ“ËÆÁ>éq¥‡…l’ ¸ ”ôËœ"¢É„H{FÜvËžJE£î)?œt»å—Mw#¾ü™î6]2Az=Ë ¾¹·Wýzw'N»õ×S*NÈÐxÌîaÝwb¹»(~*SÚWËñ¸¾éÑÀ÷ÝŽ3-~þyšW§c¿ß®ÿZçLã¢Ñ6ý}Nä꺿'U–¥òñåõ/oÄÛ3íª]wXöûCíq‰@p`sã¿ÊÙßt·3žüÓ¦Ïàæ!N›™e³}žØ!Ç܈©s†Y"§™Z)¡b‡­µø¯$'yuê±®NÜg—ûÚ§•ÓgHïk•+FbˆNWÛœöïXGr§„ðÿX¯¶Ý¶±+ú®¯8da)<‡w}H2"Å$l)0Z¢lÎH¢KQqý÷]ûrHQVnE_léè\öeí½Ö&3rÂÐm𫤠©¹~ixÓJþ!g8Y18/Ã<°üU®¦(IDÕ êøsCι ½ q>þjî!•šî¤;6ðÁȉ8=+ÞÜÕ²úÄý &¨…8ÍPf£p©iĨIèl>À0ÖØ˜ëÕçCÑÐA{n›r%µ == “­^eÇW¡±rºkîÿ bG?JvMÃßöô ¿VÀ±ê›eµÙð ¡e%_–!JM>V½Ü·¢ƒ9qtBÜLÍ}eë-nvd°V…ÚzR‘º¼ª9“ìîç¦ìÑ”!š(DÃL^s‚S7à4eœ.FBåRôÿ"Ò¿¶Ù}>o©)–DÞ‘Ö=3I O¥¼¶d0£äÐY/.däú°ÙhR „ÅQR’!)™¼Êî¦Þ>öÏf½©î¥°ra>¸¿ ©_÷Í—Ú´» gL»£0¥¾§ú§Ncšj{i·ÂíZ̽îSËeL1Fm-«` ¶ÂDAd‘4ë{zNTƒÑ¢×†°nàõ¯|;q´#Ž– [”žÜ“Õ»–Ã%xŠõ§'óXu}SmØ/oËÜ*JP4°ç¸D^âºZ.ë=?§à­Ù.œFJ¹·™ú?ü ^JF9t1¸üõÊ#¯)”wIÕpmóŠP~‘8âInOj‹Úý¹kúýñD‚ëSd Ç"e³ã8Ä#‡$Ê!.Œsºš‹¦ßs .Ø´ƒ|©;$ý°áßW¼ù¡âƒ@ÂÍHáNF‘ûëöÀôݱ 3_Tr ¥ÍN9”-rJà›†(ÄæšlIæ!U¯z¨Ýí‘çu;¥T6n­ô‹šZÕÈYÝQÐæ5¯'Ô’S=Q%®DT){·uÇþSéî è-vAaþfƒŸ~§Í+Nn%ú¢¯ ÃN;™-E™…@ˆý¸ðöí“Ç2r°;lïjákãi}‚û¡èsí¸NbD+]=õ6öÑwÎËó–¥®èHEüÇÿ›¢Ý‚Zd(ÛÑK+H»H&2ÊÚJŽTáB‚ÂÇÆ#2˜eóÄË™w¢¡ñü a 6>4¢VŠr")]'?4RµÙ¨2Õ’Ó0ù9?ÂÔ$rhc_Kò•âDaÎóÑB.|õ«58½.Éi¼˜P Ý|hûú2¼ù»cÙ]"‘) ºó"ML Þ»Ùª<”R{ ]É.E™ùHFb%šä`"õ¬q C 8A|ÆÊö½PæÓƒnPÚþ3µ(½…›ÔÊY”åcâ$Rl\RøXA´˜ý-œ1L¼ôPíü§Z>tµJaFýmmö²¸ÀPÀ‹É…ŽœR¾‚e7ÌpQ9(ÈXŸ¶—î6”6F䌹¶Ý÷fÏcVÜïš5”ÊNfžGKÝw§[¤i`¡êüd¨œ0ë¦Ãu·XZ‡±Ÿ½ðC7Ìš¯Þî3³Üs2­Ù/w±TK>"=Ò<âÙ<¸?t¸Èå”Ò$¤{ç6W=r?C †ˆ‹³nTÎÚ>¨2s Ü÷º3fPä~ÚŠâ¬^…-gÁm¸' ãE™ ’éƒÍœ‰3и#0¿4j$êß•/›ûÃÈn.!FHæÜY"‚gqyÄ(ùÈ(:Åz&̤#Ó¨4g’ X^ÖT¹Ç¨—Tc£mኦW-iY9ªù(ÎÓ™¶,Ã"‘>:Ðòß裻`¹$D— {çÃ<ˆ=“·(àÝ"·Ñ ­6<§ÊWïv@|³—ao-!Ì¥SE¬dR"g™‘:ÓŽûçžúìXX5Ž”Çl§·Uþ*#\˜kÒAIÐvÛz%v`äáEojÓyÍ:ª“D¥’œ¨•#TÞqqŠšu·f–`äþ%-¹öÓ5÷NšY¯âŸ¥¸cq³dHã‹ìE˜z)MÒ|¸}ªYVÝ=K Š"t¥0¥³a,zNô—w•~66R#™ §Ê4ÊnQØlëmÛ=Ó¤7'¢¥ûXBâ:þÞ’t'“)@+Øe*ʇ©ØÒ,E'Lý 96zS’ŽÒ½p4Z—’+§ãHzÌÍ/g û‡~4è6xMß’à`þvý`6Ÿh!,NˆÓù‚\Éæ“¼ŒcJú}RÆÑ5ãðbð€b0Pô²°I’0CWÄJ‘ýL_¢è³ “’²ùÙF´"ó_¹H m_ø`3\f²Ô.lAo šbA¬&¼m·[ØþvÓ.…7ÿ”Æ‹Òúí"IïjÏÆ:/|ßàܟ抙èµÈù÷ã Z¦i>œuÃÓ¬ ~iö}×Ü GÍÕë÷Ô„åLR&Ù!qŽy"¸~hÖ½¹ªïqåŒ3“vÔ&oͦŸ7»‰<ÁÅþÀ}=ö ŠEKæôŒ¼”)/ýk~E¹(„ÒŒgÀ°¤¦^‘·Þ믵|§šeVžc˜Bÿ'ÑF¿Øà^6tç¯5‰ü0ç¡Ãêj®R¬8ÇJ.‹ˆ mŽr>¯÷J¨Ãؘ•^jÍYâS7I’¢=@“v$h‰`Â\¾€¢ð륾í¦Â.†7vúê|êØK˜Ä¼ÑvE…qi~©zF°áfòÕDu»ª;ê ß𓲔‰q2>6¸©{7_ÊUw¡uÁF­X8£že'N!"y™Ž-"ä{”he¼£ù;þ6$¢«w}ÈóQÄÚ+•¾N‹=¥Ð³ƒ~åðžÿë–5ï&0,ÍõáñQŽtŒ•„ïB ·¹^Õ™z§Þö,o’0ÆÖŽ­2~=}«§·Ð|ôSãögzƒKŒÂdBÍñ޶Ã,ÉšâÝ–% " zeAïУ`d×]6‡Ä€ÆÎ³“*–ë>´;¯ñ›%©µÎ(\¤ó,Š4I¸sÚÔMÎßrŽX´ ]Ðîé|ÿ®ìæQ`1Q’è¿ßÌl†[ák‚‘§„`kñ³ZWÏÖ3WƲÃÑ?ìˆË²4yBßxCâÒ3l„¤êôºé#ºc|DÍÈ#ØŒþSf0dØÈ;…¹È#éW‹(/’XÔ¦w>c–ÐóèÐr–Z€w#…EŠ¡\O_ð;b蛨F³³;†hr(ιA Õ!¸À‚¶ÂR lTzsßÜÌ ‘áIý˜¤@—ËbãJê26™Èî…sÿœÿ§I)BœÅüM:èúTà-‘-™}ƒž¦éw‚„ù':ÁdwjžLbÞ›Ù«\;s¿ŸQH3sp\ J)ôb‘˜-b“!®ñ°²™]c ZŸ] ðC^ogq„ø ¹Œ»Æ=äÞdAmfë¿À$«cEœ¡?".Ê%Ô ”h™[ù'Ñv0,ùÕ“=3]£Ê’ûè_ Væ1¨$'ï¹É{ºa|nº 'Ž_C‚ö}™ihìDŽäEaÂäôõ Öjê¾á†ØÒ©/ô÷Ñ‹é‚l=qâŒíq"èÛEß·* ÉËoåÜïÍ?Y9“óó@dF±ý|ð‡¢@ RÜ EQ€©ýŠ…JŒPQàˆfÜ5î®J' rèkE1uVÿM«"AK‹ãªÐ•I„¬„è<”'÷êŽñÚéÂýö»Åvt“çtÃøÜtá¦ö‡p*Mþ¯8ýFü–Ñ“•siøRØ…H¥‰ É:Bª®LÊ•0Aê°k܃©^l^œúT§îž…*‘©+¡ª+g¡zç 3Þ:]8óX>ÿñÒéÂOÂÿ<Îh|ñdåS- E? H¤Ýȯ€þ핎ÃbÉJfyóÉì°XüOãôbã= "ÒÎÇû/ëUŒÛ0 ¿“IMZ¢åµC§v(Z Cæ ª¥èÿÑ£m)¶#Y2ÉA<’"ïBÔ0bùª†lh=$Òè )iÙÆè‚j!ü¥Sb×.«ú‘ajuÎéÀb…ºžïŸ/OG£ WoøWÞ€ó…ÁAíÀÆÎZä#öS«;'üÒÍJM ïyÌ ÆmE"æÄ$E—ˆym©ž$>õ#ik\gë' I‹ôÙAv ûÔrrŸ®qúò= ZýïNBÌÔ*(A]Ö }v‘ºÜ`õ’Ác|o ɨX±N6{0aô9Ô;z O›:[!ô€ .:ÏŸp°S7Þ4ƒ'v°I/s¯ Ö‹ÿî9úüÜE ' @žqÚ¿òHúI¤¢°½yPa߿׿ˤК¾å-…¶qA¦K©hz“l×ÚÅ—ƒŠŠE4°ua#ïh[Qx-’JßBHîÁUŸ~ÍúšøÅ"›#™å¿Qâ²Õéïà²[ƒ´rñå ©Gð/À‡B endstream endobj 807 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 808 0 obj<> endobj 809 0 obj<> endobj 810 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 811 0 obj<> endobj 812 0 obj<> endobj 813 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 814 0 obj<>stream H‰œWÛnG}çWôãÌBõýâ·X² p¼ Çj$Ò+‘ IGþü=ÕÕ=œ‘åÍzmØœ®éº:UÝ£Äíìüõ%n3í»Ep¡s^ÈNi) ~µI)‰}?»™éP_[G¦oÏ/^¬™¢x!Z£Äaµ9+¬é wÒ EY žé•ï’—*¿Ó±“š_¾\Ìί´Pbq3KdP$áò¨/îgÊsx‘l±Ârñ8k|lŸ¡gXoˆ 9m;ÐÅâ’••#åÍããcëeçšîëæn³mçÏ_»Õî¾ý´x;{µ@þE ‚Ø-r´&¾¯ º“q³ÌÑRÜñÇæêMk»Ð\½Ï?âu¿Åƒiúvn›ýò¸Û‹¿|§rC^z0FÌU§õKO6°í_ÛyèlóºÕ í¡7Nüô°oçÊC¾¹*±øLhÉOJÖŒÿ¦¦¦CÁ‚u”›ì’#.œjë†w¨+ ‰——³_FeH¨ï¤IÔÊ*s1ÐÆšÚ¸FÐ…„vKSÐâ~F%PH=xÓytð$ÔÊv"qhh=hÝ! Ùù%ä²N‘o•|!À÷ݸØé˜ÆnF’çÜ|?³Á‹s—îG½­ÿ=™gÜ RZMÜœ$Ϲù/É(† ê÷Ŧ™Ô!u1¹¨C5ZÂZŒNU&h—§½Wé×ÙÄ6µAø®X0dLöÑä3@G Ë©ˆÔì°‡$¾ó!M$Ô×\+«uÙQ£Q°câ‚ÁWB1K`1êÉÛÙ&;nì {µãO9.>ˆïeÿáâgLž·˜Ÿ1²tBIñN|ü$Å5,b3Á¥H†8>@·šì*’Q´¨ˆ{Vâl'SFÏØN»ø¬ä”‘3³Á޽UÉ8&K£p“I aŠ<•ËÖ‹äT?,¥yNrŠZ.vÀ—Œ>³ÍpÜU2Úã;Üs’Qnò¼´¤‰SU¥‰‰cb®T&VLV‡SÃÇ0ÎΩNy7æ«8ûÃ8°g’®6ÖÆ1‡°D™Ä»è'¹ ¾¾";¯¨!ÎÈ'ZqÚŽj¤§Õu„ s@9Î g·öƒ$¯CYº¼tÊ”u«¬Ó,ñ¼!• 8ehí«=ô+xŠ•$t‚Ó:²yBë ËŒe -KÛ †}˜ªQ׸?"Áy86`ю삳²¸j• 8&L3ŽÉ3.ΰoÊÚY(Í’’vy_²v–ºP8YvÄkQf†5+¨Iî&*ÍÝl=•' õó%óPêJßF"j¶ADa?©ÀíïH¶@—Üdmü Q$Ú–jB‘hu™+©V#0²”ÃGB´]^ãŸ*©xê€éR•äƒMO$&ó™.ÿvÐs’ª…éåž0^ *.ã*æMç=Kr7ü\A™:QçuP쇦Ì*kСJ]ÞÁ0c­˜‚R«¼V°X nØ«RŒ£öìC&æ >‰†uá”±“¾d[-„‚âÉGŒqE*Ès”·p;Ƀ¦˜eЉ§ÇH`Ü€kÍ6b®.Ö¥rt)–(>ÊWŠD³Sš•Ä' ¤EA—™âb§m>aNY ¦aàSa\ôœ7〹iÆHaýdJál1¬ÁXcíõ¨¼f ®×i×ód+~òá†Öã(*gj”•U§<ÜÐÝœiåeE¢2÷„¾>Êdc4±¶îöiY«Q%¥\U¿VsÚ¬`t•¾t‹)3&p¶–#• c¢&ùúˆ§C¶¶Na8Àl21ÔZ2ñµåtc‡Öõ”J“AƉ…hÃ)ÆQ ™ *?J‚X;Ê1”«MÅëZ(ã‹‚+°™Äöño4UOëSŸ°•Qe‡æR„Òš¶ )_8ônCˆèmF ÷©½^F’Mâ„ÆKmËþil—Á.Ë…±6Œ2]1쨼.MbÕdW²Z¨µ>ù¨l¨QT¶Ô(+›NiT¾ÕD  •®J @-”Y®Á\×ã©.UµPK9íˆnZ¯Þ]Ì~™¿þ Äíaör1;¿²B‰ÅÍŒ¾aðA E~ÈsL!p+÷ü=±:ä×ü=†4 Ó‹¾#³ÍU †5›Û/û–>uš¾kºy6vŽ7®Q±ý´x;SÙY_=à€ú%ÙXÍÑ.>ãñÆ¡ZÞŸD¯?6‡õîñÐ"Gì$[çW‰CGEn’'›í]¾ù™,â&Š}¼mNûLÞv&xW1&;÷­¥÷¿.&¦4á*û@W‚‚žã!–ÛkÑúæØÎQf bÓ‹5ćõ’„©ùw ¶5›í­8ln·Ë»ƒ¸ÙíÅR\½¹z/7Ç5žÕ +–‡‡~U qêsÜ}çø¢‘`R Á!Xa¿x©îšÚ/ÕÕßõKÿµ_}!vZ¯Xt$eŠ®\†ÝUÝ6ä‹vš†ò¢=ÈMµ6!qõ‡”ÔlH•TKçV£:GK\ùÓh;Ø~ËS€r­3‹@6Cš5F]ü\ byŠñ (®ž$nFÍs½<.y¡Ê¦¹‡W ·«6P§æçÍ_ýuæ«!þÃ|µí¶‘Ñw~ÅÓSºIFøÿ—ç§qõoG)”°îO·¥XC–›É5i„šîúqáçKêŠøýtu{×m":E®Ö8”/wqwÛ]]w1ô›¼í[.Š6xÜj'ú6®ü ^Þ,7_çñ%ü×»¾Üõâ1ý+ÓÞ5-§É÷ë.ž pç»FLÐ#˜6å¯óôoê_"¦î¸{AŒŠ(®è‹˜~J_²ýªlÛéôáøˆzRdÔçÆo’aRãe§-!ÿ‰ƒË3™jÀ†BóÇ”»+¢Ðs_Žzt2)Î?Nÿ€Ã×'ù`™F Ãø£b훎‘éž$:Õ(ÏÏHhk„6 ÉûNY,µÌuz/BmåÌb¯ÁI±ðožtçh§€¼‚>¨·¾Ü"¹Tt ª“xx‚]äøÓùïñ÷TÆaúŸ+hšÓÖRP.ÿOK!ì,Œ&–*BÌŒík5Ä«òíª\®¼÷1¯«9]»Iï<ë×>P²˜'ê^™nõ“˜eA>4ˆWÑø¾áú"çÅÒ@žåïS©t¯ðtæñéÓô’Ï/&L„÷PÔ¢B±ã6À)2£[Í'ou×ñ¢²•^C»Âî3è~BDÿÆ_»·šŠMv’~D÷®ï>ÒÌ#i摊¤jg^gÌ„Ëè1„J_L$JÖ‹IFšêqáð¡Ù„Ù¨Ds›Œ0gfTwÌ&#ÍF£TâÈYm Âl èzë¹MF˜§A‰›$ YÐyïxäaÙIé²á⩬ù³èLd·ü1“‚T›’­fS‘f“³Ål Òlr¶˜MAªMÉV³©H³ÉÙb6i6)]Ì$Õ¢d«™T¤ÚœOÞÆzÛ¢‘iµ_È+ .‚äÚÏ¢J¼ÚÃ+=@LF w2ᕳԛ„Èœ·fý1ØG:‹}ÄQ)þH‡õñm=}xò¼bü2dbT‹^i§ö2ª9ZúügúºûOqCCOkÕh[›l‚»óð 0„ô„xF“~°V)3/"Y´%Ƨƒb©Éˆë“{mO 5™ä«‚NäT´QZÅ*-ÅöQh~3D¤N6m•êSk2Ä¥Ölˆ–©ÅÛ>ÆÄbH”[†¯²vŒ8¢!âbë±}ùcˆ‰ÍØVéžü"©="Tl϶–6Ù4D‰Øžl•ò‰t·"DÌtÌ•qŸ¶³¥HáHyi§c»6ä"‚þGíÁFŒ¸1éYy‘2KUò’I=¯b6¨…L™eŸ†ŒÎZLNQ¿ÛÖæùOèN©ìÐAà[”õv–šÊܺ,²BÙ-2mSÅÕ8j]0dìcµiq”}2ÓÁG‹ à^`ÁÇ<ƒ‡9¾'m—@Y´ÜoÈ!"E²i«ðÎõnàÞˆi–u<âÜ“$jc¬21$GlU†’‡!ޤaˆí“‡!ޤaˆ­Ê×Àt ˆ×ÀvI l@I`[S®¿©H*{ÖLleOV6OK”ÍfÄËëÜ͘ºäØAfS]&Bú49ùó9~n'Rø‰z¶5䩤týLën5Ÿ\NNžÝ|ø²œ_ßu'gO]ß>{JLròB‚Ô..'t´Œ‚èÍT¨L¡°§rpÒ˜åäé­í>Üv»¥ÍüýÇ(lÄLÜ ý†¤\^}ž¯Þß]Ý\gîùì {|"3Xö=žhÿõ sT÷µÓÝYG±JŠ•êÖºÐ+éf$Ué!3ØG5ˆòó÷¶¤M¦PÌ&ÉAHƒëPh%´¨&(„^ä5‘¢˜xÇBÄËŽê ·ãŒ§LJøý¡‘ªË¡)Pœrþ“bÑ–†1D›Ëüãè Šg$î®?ÎF5º²÷CÃ\DmKh`îâʾ ]ŒU¦¶U„§§v <‹^…ûÇ6ol DâЪƒÐÝB·h>|ã¡¡³Y}=b(G«Â·D,„Ô‡»lOÞªAÄchÛeodüþ ñ=ôÐh¡/÷ñ©§æ•²A‰4FmGc†M†h{ 7=‰6>—ÅÄ-„çH^µ™$žŸ ì€Ôƒ¯Œ“BHçSò_º~àFx€µÅ«#„—Ùƒ–rotp°6bup„ðÎ4ûu&nXâ8`cì>jÖpGÈÆûØÙ–{FûÀ®”ÈD€Æb]Y aWJ‰#4ëJ‰ƒå=(¾ ­‹µU[ºÒQMÈAWê‡t%ƸÅrâ}i×ú’;àHéBæÈâ•Ð)ýÇqp¤tsd ñ´{PDé™Cåªtsq mÌÕ®®¡zSÀn롢͠m24jkã\ÁÚ†îÁ šR^ñ×­,ÚÒ5& ’pÀ®q>ÎsËuhw×pGÒ5Í‘1´»k¸#éšæÈÚØ5µ7•‘ÚÍ‘1´1#ÛÛ—FQT®Š«é¨‰QsßýâI¬4:ÉÎø|Œì¯úÊ1;:—Ö ¶T ‰÷µîuîÉ ¼*qxég^‘Ç4Èž§Oª|±(ŽøEÏ\omwña2=}9\UF—`ÖG‹­»LOÓ™¾›Yo°«Äs?¿Y]ÝÍÉ„r”¤ŠüíÕçùêýÝÕÍõ`sh‰ë;ÖTeŠ,ß7 ¡ôLÑX•þ”$k ƒw?í–8ZAÖ«ƒ [×j¥á£Ç´÷°¥5ò‚ûþŽÙãÞ€¥`[tEÒ‘½l w_ÛïíôB­=ÆkÐFæÛïÞ¯ñ’½| ªoÑU†]ƒ¾#`<ÜŒö£ä‡£ài†R ×àÈéI«gºÉÀi’Ö A±z›é j¡6œ‰r"›,ÖEù±1^/@º›MJÀP¼Ó‹«ÿ)7ê+W_g.€7Ýk$ endstream endobj 815 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-05-01T10:38:30-04:00 2009-05-01T10:38:30-04:00 2009-05-01T10:38:30-04:00 256 112 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAcAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq8L842X5vL5w 1Gz0ibUm0drv0be4iefj6GuQ8GkV68R+j54uSkH92rfs4VQPmSL845tO0u6fUda2udQMkFhatHND a22qWkUCzBEczs1ukk0bFOTLX7Sl+Sr0b8vNT/MO81/zHH5nh9HToLgppamJo+KiaUARv6USyxtC I25B5N+rCvBQrPMVdirsVdirsVdirsVdirsVdirsVdirsVYd+ausa9pXlq3l0KWWHULnUrCzVoFt 3lK3NwsTJH9aDQB2DUUvsD1xV59p35xeeLS90nSbyyS8le7nt7+a4WGO5f0tRktWhHpTRRG4hhQS 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 uuid:2B2C2DBD5D36DE1195BCC5A2AFB21F7D uuid:2C2C2DBD5D36DE1195BCC5A2AFB21F7D 612.000000 792.000000 Points 1 False False Helvetica-Bold Helvetica Bold Type 1 001.007 False HVB_____.PFB; HVB_____.PFM Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 816 0 obj<> endobj 817 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 818 0 obj<> endobj 819 0 obj<> endobj 820 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 821 0 obj<> endobj 822 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 823 0 obj<>stream H‰”WÛnÉ}çWôãL`Žú~É›-™† xiᆢ$:¼xIjéýûœêêžÊ^gâtMu]ΩªîQâ~rõê½÷ljö]Œ"¸Ð9/d§´”¿Ú¤”Äa5¹›èP_[G —o¯®^,™¢x!Z£Äq¹›8+‚u^8i…¢‡¼ rk¾#"zå»ä¥Êïtì¤æ—/æ“«™JÌï&‰‰$\ÖÀöùv"±y ïÒx1_Nè 1ÏÏ“OÍìu;uofïøW¼Zíè)5«[Rsh§? ^öe-Zß…æwO+ßtªý<ƒ ѧŽ?NWÛÎ1¿áH”Ë‘pçó¹õ²sM÷m½Ygÿ®ùÖ-÷ÛlöåHC( ^@5Z i#ìü  :~€ˆƒ÷Ƨvþeˆzêl“1bª:­‡P)ó¾Èx¥¤àD;%$ž0Š\“À7QTR‹p›gBóR*Y°ªá‚RŽ˜,Èee:"k›É2ºÒF±0m³wâñu F©æ¾ugÀ™kÄÿv· ¨¹Þ·¾w§C üC³'M³©¨þ†²Z‹\ŠÞNárOÏE÷ñobWëŽâ‘^8¤*T©º«›ýòq»ÚÄÕÛë Ä‹›ëɯ£ª’&7 H ÖPV©˜‹¦©ÃŠwÔqBª“)ˆíN "Þt!*±™¸Ô@3„ÎzÛoÙ Ùù%UȵN‘_•|íµ?qábg•¹ß»ø­%m $``ª¨CCF `ý,çƒs]0ÿW¼ã/'ù0gýØA/øÎÁ¯?MÁÛκÔó°e‹nDŒ×˜‚á¯S-–‹}ŒÕâe‚vy"+,ý:›²=L kBÙa/è.)—§´•P@„A0” °E%&ƱF"O£,aëq=ö^Ð:‰¢DZÙ±†§C`,0°F^ A£gˆ£LÑë÷âÏ2~ý FÚŒŽ/8)ÀýY()ÞŠOŸ¥¸„þÝ‹"ècx?‰8›’éTA¯u'ã(7­(Îè;›~°òˆÅäÇ^Š`IAjIBgin@CÝP׽݌û ·Š-1Wc/Q1“˱VÁ ;/ãtþ÷P“^¥Q6Jbž§0*D%q,¸1P)Aeœ’ºóãJ„†—ã²R’-^Hª£Z‹Œ¿ŸJ”¸ºX¶Ó»"CãĕЩœ.öZ©y]–Ö•¥˼!ÄP$.kD]4’åu1ˆ{oˆ‰}m²BRlÀ`@äµ)k\ xGr>K¬d“ɳ [w”µ“ÕG/±Tµàp³.q&.;4çéMñÁ+ÇJŽ>Ô¬eAMZ•Ý%é|YWû7é ¬u͸zŸú5o0&’l.$DÍfò0Ó{cI=SéH8ö‹ÝÈ`%šF,yØ‚×K›ú Ebо•”T5Ú›õ¥d4”’æTÁ:Öµ6eG/Nû’|Šê‰Ä+öý'=•Œw©r{*aÀÖÐîÛ[$>z}"PBAfbÈë䊣Â]ÍimUÎP•SÌX®?íx6j˜+t³‚fDlZqýy£úu©'ï/4bÉ4¨èÌE„µĤª€m“ì(¿„c}œB«…!Þá[H†#p‘ÉÞ]¬µ uG‘˜R™®¶y°#hÚTË–Y”C” ®T®)…–d_H¥´R‰;£àèî; ä:u9› ðÌ£Œu #xÍ;˜©AÄ Lôȃ* ’iã:©ñÕ:2C?+®4®ÄŠA)Õ$¤ÁˆÏ¹F0ëJÄ aªª…JåE7ð†B”÷ª´‡/Ó3J],”´4à µ+&xêÜs2–‘Õ¥a"oоŸ‡š6š‘³5Œ»¤†Ö¥E’ºÐHvd€æTºpAÅ2„r§ ¢øl¼È V²LåþRQ ;ö8ñŽr,8~bÏѺ:¤J$7Dà‹¥'}™It&³~½@yY;Š›ÞF=JC Ô”9ỈÒsš—ª´ cdò¤.çd¹CÔëAªwít1¨h]$˜ æq°ÀL]p)Ô j©Ôk1 YÔr«yÖr¬8”z€ÂU¨@Ëø¶> @Ë¡EªÄý¬ÓâI?,q±zùöŸ^W¯Þ+qœ¼˜O®f°+æw“„› î÷RähcºÏ·üy°<æ×ü9…o,‰Cu¾ÄgÁü<ùÔÌZ8iÖ÷‡VÉfÕNµÅ寱S¼q–íçù›‰Ê6ÈjÓ㪃í7dc9iD;ÿ‚Ç{×Z×Wä(ÑûOÍña>¶è¨’±«YâØóÅQ6XÞpóºõÍ/E·ä‰›ºT#]“}?ËÎ{ƒ|©ôÔ`sóîÜõŠ1ÝÊ{=|šAoJ_ hå ,ûf±»§‡=>àùø°øÏzw/ŽëûÝbs$ñÝþÅìu;6Íì8¯Ob±ËrºæØ¢0š¯«åI§õžq˜*;ÊŠo3ºB—hdÆ-ǯ8˜ý°WY|Nus×Nq”6§ÕA,Ïî~³çs%©#FÙiWí¡x³½õi•ó£Üf¯òí ü Ü#HÍqu8ñÓÂ`ZzozöÏ“æåÛÌÿõܘ‚¹7½ûÀî;ñ¢%¬Plø"k–‹Ç#ù·ØíÅA° B ùűFx¿_.[¼)}ÕÚ›gdÚ™¨Œ«FgG´úS\{tÁHsLêß# ÓeÒ\&MW,Äjûõô‡XÜý˜»áÄÝþ‘i?D5j±”5·GF°tâÐGÊÓ¦5ãÙ1–¦#‘û7?)ãQ£Â¢E1fÑâÜwÈ-rëü²ßMl·«"¢=Íz)ž©ô˜Ð.øaMêf/¨ÆgëÃñ4ýØ…°'<‘Ä­Å<'­2ž94KŒ+eF½((M®w·d‡%¢¨hhëæu«QˆÔäÍ0WÎÔ‘šuš9íù·ì^!‰Åq*ìm†)2‚¤h†)§úÈláBpN¨W±©ÿe¼êšÛ6’à»~Å>.‰ >T•_âä|•ŠsŽR¾ªèÊ’ … È(þýõ|ì„ël‹ÅîìlOwÏNj Ì‚ê¯ÇJÞÒ¡cù-1Þñu|i,ýÇ©¼½æ(uê%?0Ê´85¬YÚâ—*K×ñmx)¨e¢"Ôànšý}[ïën¬„îpŸQ9á´/n%ø0^ Ùé å] ¾³À4Ýš3‰£VC-ïx£î¸_Ñé·²~:£Ó8=­¯ba›ÖÊ• | f XÕÌc#Õt££~›-lÿ2Ï‚.è‰yõn&œ>´ðÝÜ5]P Øs¿±æ6Àœqúª7ß1ŒUàã2ø’%ž’­Wú€×1oQˆ67Q%nD Êà^ VˆËiJr·T•×»» ƃ8f¿œpËÐÕ<ÀÿÅëLí.ÜLp7Ã^ŸZ¤& Zܲޕn }ôæÚÊßK_§ ÂøZRR ¿É¦ÅáSkJ QÚÛ0Lx5ÕfÓ0ž Ê'Þ‚ä$B.±ˆ¾R’,¦­oåyEµOÎh“ãã¨ûþØÌ‹L3ÛCµvÆ¢‰nQÙ$ ÞÜÕÁƺ—¦FB0-ÕSøQù•[d—ÆbK”p_Ʀj ÁOwÌxÇÇ AVîAÎÉõì"˜ãÛ[›XÃXÕwÕCÓJ@½ÅÌudÔÃsW§ö×Oúò¹br&LÊ“Âz÷£\4µVb<¹š?‚ÏŸ°ä—ÞݼûòýÇß¹9_Ã%DÞâX%/x2)E8E‚`Î )· g+ƒ©N•«%‰ ZÀŸ}#r%ÀF„ºáÏ·aœâ?KìLT(“;úÔ{Ÿg9÷ÁÅùyÎ¥\Óƒ¹gö‡µy ‹lúãÐõ ëC³ª7 =â}`©¶„‘è'6¢VNE_<ìÕ”b~=ô»ó—$`1þ°¯Xû}µ -Ù;è÷{-6Oæ5—‘DpmHÛ, Ô‡Îìꮦˆƒör†&TÉr™¾ˆ&Ó3GKž+U ñ^¥ãýFE—r¶;V‡ªcÃê=Â0Èãa4l)ܘë%Æ81—\Tv1ZlÞ!Lviºy¥E‹"/—Ï(Ôº È’‰Û…ì®èHy.´„D¶¬¨l78JïDÑjuø»ú«ü=Vü¡›Ù3 õˆx&HÑUâÚ1ëPí…¯‹`Õ:Y:¿Š“². ÍpMÖû$OœRds¼c¼–¹Kê1ÛÍÂü½¬Ð>ä$ë—ÂcÞÏMr¦;Ï+ÅËN¬)c¶uÂur\ŒPÖÚB,?û/2S|.¤qYžà2i/ýƒòaƒ=å‡rÉAq…´XäÃæ§tÞ„%uH}±—èvõ>f©#gïIvâRäœ*áàLIznÔŸ “ADíÆ õ8QÈÈ\’)Q¡êw`ÂbBõCá1u‚.FÏÞ‹ðÆ“ã3ÇP~Åló’¹pI.\B÷˜¬ß0ÎÄb+еõˆ¦'òÜå $ñfëŠ9fU`âL‚c ü~᫘Ü`ØQÈgp(Q‘>¦ ÁÛý¦ŸÁ3³ÙrîËå°¥¦ø;µ´/¯ó–Ý«•Ó[2ûþÕ©móaQçÛè™Þœ™²í µ[ãæž4Ì™˜GIÏÍ7·Tñy˜¡´›¬'´\Kj”ýúOøbñÕ²Õw-2ÀUê¿Á?˜,+Ì>¡åÃVßVïõ}øfÄ•´ ×Ê•ë•ÆþBã¶ö"Æ Ï@$s%ó$^ÜxŠ—f¼¡ZxÓBÁÔ˜w®nŠ8™"Áo¥½Û`ªöX£è&%·¤ÃS=µ©PÔÄq_Kc:»S·Å·îÔ1"ÑÁ+FÛzVŒ+î«'à þXãl+饄L)©7B¬Ó3Z„h¤å_¶×iqÞš2- =­åO¿ájã·Æ™ÞO,‚øÚB[ÈüÉžù¡+ÆŽù^0„NîU#g˜9Ý#q{ÄY:3µ/ØÙ2Iò¿hŽ>B Cöj#'ò]¢³)æ¾?ˆãe  µÑç±YWR9-¹@ÜÞ“ašcÃ@‚ì ©å%Pž,ï£ô@dñ•~³¿[º¶›rÉ14²ü’&éšuKcšNu-×L-R±­iPÓgXo’ã¤RýÄÀJ°§ea¯Sn1ABî •ôRñ%ÈVKÌ¡¡wÉì<ã@FªÜ¯mÄÙøËQz§Égý=ïÄÚG¶³Œ_éŠ ùplGºéûê0Ê"J ÷E*´†„1˜ú¿œqlºž¢c¿Þ%*2"Ÿ¢¤,NM!õd€¾GÒ©‚†îi@T^‚ÉWÓ0LþŠFnMàô@!—ÒJRX*€+ñÿl²èøôp/ÍF/-ÚÍrheˆÉ¢úðÁf%ÌÌg'vAûD ß²1u5UJMÅTSxa97q0Q| _|Ô.Ì8ÚÜMZÕwÕƒ|ÜH;öýàŒ¥ lîb/9jºÖˆ†Èë(L¶–¢m¨åK8\)Œ;îXj_ýòö£ÐqÑ•Õ~6¦…Jþ‰¨¬œ—®c#´7™ZÉÔÇÛGyx’;ÝÒV® íÍVl5°KZ`U¯+'CœÊÕÈ3º#aÛŒµñØóRåèé™BAž°Ï+ u2|ñyyºø a AHpÉ.󬔯Õ†âtéq1ÊÆ3¿4à/J&m^ä¼Ä–«¨•&«Ú1oÀeW¬dP»'pÇK^Šx3!¢H™QhÊAÔ¯bÂLø(d°Gž±z/4ç꼩sž.Ë‹E–‘ÛŠÍNêÔ«Y”i´ÿºúD fâú2BÈMX’g¯Â˜â?ìôm-ÏDÖl]® êÖÒIz× Ž:ÿà–5©¼¸Â)ÊÀêh¤Ñ/¹E› &ÍÓEÄñGzŠ©’ÿcHüÚ°Ú%«µI¯ø‡«kÝÉ:?ée=ÄœÖó¦  kn,,ùNØ’ä[Ú ¬ü©â1ÀïZÆ~“w•ü9|UmE¤˜S›é‡ÙåÁ¯Ð/ö¢ïo.¾¢Âë‚îÐ$)bNQ%ŠÃšC}ñùéøRuVZ”‹eê&ÆòÆó¶ÿÄ´ààÿÁ¿GóGJ8µÆŠ þwd6oúÍšÝpa:YšeŽê-K³÷#i Ëšf¦½°Y‘l:GGNs’$“9nd2'eE™Îёɜ•PÆÓ9:rš“XYi'sÜÈdNšc$™ÎÑ‘Ét?Yù?Ú«]7®ˆöúŠ-Îå›LiÙEÄ "¹WRÞ4ú gÈyÝ»ÐZl¨¸ÂÙáÙ9sècÄlJ@|삘ÍýÍã¼ÓÜ!^È_„žƒH# ©’&©Ï=3#¨²…Àß@‰{¤2‚ò‚Š8°Ðç„äuÎyÛùI-×Ç)ŒÈyR¦'ÖÐ3#ÛàÚÛ©b‡ŽrA¶NˆWXÁ·Ï\C^wäñ–B^±3ù=Àí l1f9”ym@pôÁÉg9^bSUrAuÅ€ YTYÓéjP5 2èÒf"ykëú fwY(·2‘û›ïžêéÓÓ Œ›Z,ô¡´ù%?OŸþúÆë(ù}š$¢k"¸Ó˜6Ÿ/V}¾ùç•vUÅ5tô¢õ t¨7Æìíu,[šìÈÿ¢¶pa _p…f‘¤ ,Rw¿þòÃÿ൷v¢ÙR‘!pÞíÛŸß?¶Ÿ¶ëç°¥ >È=ΡKKß½§ŸÀBǃá¨-Ž¥ÉY”:ŠÄ!‘ª"ã´Iüı.Ø€òkR#Dª"ì‘×^¶ªŒuCP!aoÓ¶µÊü õ¶Cú*u[…+žQ(’¶8‹Ý#¢„¨Ÿ©H^6¶*…Iu¡HwH޳#œŸBõ抰vkù@jrÞmöŒs2¨ÏöHY6º*#nªbŒI0AßS§™Ÿ‰ð’G÷ ÄV!n"b‡€–òÞ&)fï§RX{¤-[Õò¤o_ûª¤±Ô'3Y&Ò1”+­î#b¤ï›²¹eúvœßQÝÄÚî± ‰J=2BgÃ3…ªï“ÄÛ€AØFü\"êdzË7ßîJ‚þfP´KYm§»hs8„/\÷UÛWü8äxÚ7¯ˆ«±"ÿ1@htáˆç›k¤~{טè®%P®7ªEq-2±Ñ8ÔÏ%âøý¶›Cår–Ä( ì\J£)Y¾xm¾•éA;RØO—ß?<</ˆ¥D?^°ÖÆ …R2U ‚ØX 1¿¤Œ‡ðXp«x,8„Ç‚C¸æ YcÁ­â±`ˆŒ¬ª6?2<²Æ‚[ÅcÁ#k,8„Ç‚ó³Æ‚ÖXpkÖXpÀ h*¥Ø ¬±`«d,ø¸WY–\D$!3adE°ªäIÞ%UEØf¬•Ui3âT/jµáxŽc©zF®”7]4ÕÂFB±&*ïÛw¿ýñð× š_E*ä5*“M8'àjƒ—.Kiñs‰¨ÇÞß~;ÏÞzãìálYÑ]ÀÈwÙ!ò¦‘}ÕFwQ?Ùïõ<{çJb÷_b˜O’/ÑPú òv±±­g×µÀÄFÃP?—ˆÏß÷ÛN3Ê}s6–ÑN:öߥ ¢wh˜{9©ÄYtrj¼ó‚™zgd/ªKØÖx1?#®½xÕù…~Ú²1$†ec«"U†—ëGî9«$uüÄ’Ô8L$©CX’ºU,IÂ’Ô#K’:?,I=²$©[ŹpçÂ#ÜQæ‡ïйC[%¹ðS“«E9U«E9U«Eôˆœ-Rµ9²õ%£;þÖÊ<žÐÙè™w %|o …N˜ùµ>’³rÁ5jc|$~²ßë C¥YuýÅ ˜¡,°Ôa0‚ ,õ¸F­…!…ëãÕFÃP?Ùïõ|`<Ü_N½Ûe`‡©D“«-õb“Kt†!GT Cü8ä8Ÿ ŒÄPã«gÊc~½m)W|ÂéãvúÛžD-0Á)‚ÆáÇ † Og#ˆÚ$(’Lê]m1›¼M1èl1<•*.ÏÙ¢6ï"J³QÄlpÁDyÎF³éi‘»Ù¢6úâPEÔæþæM!Ï endstream endobj 824 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 825 0 obj<> endobj 826 0 obj<> endobj 827 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 828 0 obj<> endobj 829 0 obj<> endobj 830 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 831 0 obj<>stream H‰”WËv¹Ýó+°ìžc¶ðzv¶déØ'Š'cÎÌÂö‚¢Ú'|($e9Ÿ[( :r’±ÍF5ªêÖ­ÐJÜÍή>*qwœißÄ(‚ óB6JKið«MÛ¶âÐ;Ît(¯­£ Ó·gçG/VGƒl£x!Z£Äqµ›9+¬i wÒ EI žé•oZ/Uz§c#5¿|³˜]j¡Äâë¬%ƒ¢.í€úb;“PžÃ‹°Å ËÅÓ¬ ²^ü =Ãz=*üe$Ú6ÐÅâ‚••#åOÕÓÓSíeãªæûz³ÞÕs‡çïÍj¿­¿,ÞÏÞ.?DQ€¨à¶F‹m„‰ãµA72N1Ë„–pâOÕå»Ú6¡ºü~ÄU·Ãƒ©ºzn«Ãò´?ˆo¾Q EAƈ¹j´îcÉDàɶý[=­®j]©PϽrâõáž+ùz#TËâWBK~R²Dü?rj$,XG±É¦uT Cn]ÿyE‚G¯S13E¯Yô@J°kü$ÁJ•¸|æìüždªåÿž:þ=ûsf*gÂ5*úÀ ' dzÅf­ccݱvÄXAÒïjßèjW£Æ+-îÄÓIqÕé^œjrtŸ^wâ|è ]ÿB=¯ÅÌ¡ ‚÷.ˆ¹yõ?‰×»TÕS7­ÎSM©\ògûÕã¶ÛÄÙõyÐâÍÅùì£4´¨ï¤i©ÿ”U*¦d 5µqAЄíŠ*maf;£(„¼i<:x µ²HZ÷Z’o£¤BGqY§È·j}.€»q±Ñ±»I^róãÈz/Î5^º¿ê%kýÿÁ¼à™Òjâf¼äæ¿£46ô¬o³M3ÉCÛÄÖý…<£ÖÈèh6:ªLÐ.M{…Z¥_g[¶© à»lÁMT²&:,§"B³ý’øÆ‡v"¡¾æ\Y­óžˆ†'ô¾ZÄ“£žì± a"Q°ãƾ°'P;öxò‘pþQü(úçÇäy‰ñ'F–nÅ“PR\‹O_¤¸…EÌbc&¼dIã#d¸ÕdW–ŒÐ"#îE‰³l{Æ6ÚÅ%CDÎ`Ì;öV$cL–Fá“iQVÄ)âT.YÏ’!\Jó’dÀ -— ¶—À—Œ>U›aÜE2ÚãÜK’ql8 | cÔN5Ê»qÚˆ3=Œ1Ú€=Ô¸²Xǵ=(€‰ÿØD?ÁØûêëxìtl"78ûžiÅiÍ;â^?‹Œ¢åÜ*Ç‘áLÖ¾—¤uÈK—–N™¼Žb•`š%ž7´yƒoÓÚ{è Vð„•$t2Ó:²9Aë ó•ÈA[–¶ û0E£¬q/ÊY‚snlÀ¢ÍØGeq…Ê ¦còÌ‹3ìÁ›¼¶}J³$‡ßç¨e‡.Næ1ÓšÕc¦Ù„~Í *ÓD’ÍDB©ÙÌîg£ô„>>GrþBîçÀLDÍ6¨PØO›év-ïhm¦®u“µñ½F–h›w¨I‰D«ó¼hK6³!s:|d2³íÒ×ó¶OTºT9ø`Ûg“ê™.õvBÐK’¢…©ä^0_L*.Ù*¦M„sË’ÔM¿T@.³L¨Ó:(öCÓc•4è°$‰Ž.í`š±V\‚R«´V°˜nØ«RÌ£öìC¶\ƒøÔé×¹¦Œìð9Úb!d1Æ Š63Ï(n×vM1=ŠO™À:¸ž+Ö0šmÄ”]¬sæè²Ù/‘|¤/+d‰f&7+‰(H³‚Î3ÅÅ(Œ6CÈièë)W\ô7ó€¹iÆLaýlJáÌ0¬Á\cíõ(¼f Î×°ƒó9XàŒ>\ßzŒ¢ÔLAYªjˆÃõÝÍ‘–º,L”ʸÂWEžlÌ&ÖÖ dË’"Éé*ú%›ÓÞ`£Ë¬ô¹[Lž1ð%m3%¨È×B|e2µ¥uÒÃfËl”-S­%¾¶¼ƒnÂãäкœRídGqb!ÚðÌGãŠL@¢•AU;Š1ä+Káë’(㳂˴™–íãßhªë¡OX‚̨¼Cs*BnM›‡”/ ½E½íÂ(ô¾3¥×óH²­Àx)McÙ?í<Øe¾æÃ†Y¦+†å×¹I¬šìàL %׃R E©–‚²TÓF©·h.ÇÌB)מ%”@¦-äY®Ñ\Öã)NU±PR9íˆnZo¯ÏggW•¸;ÎÞ,fg—F(±ø:StTáž/?)‰ )Ù±ØâàHRJ/«Ù<=F±xš}ªÞnoºÛÛîVüÚÝ­§ÊUw8ŠõN¼ÙìW5}òTÿ¿¾¾ËÝ­¸|wùA\/W‡ýQÔ_ïazŽk¥E²ìà >ûø\ý¾>ÔsC¦N]m¢êûÜ¿#q Wu5>-|õ½Öøî’Ëñ&ÌŽac“—¿\½>~®ÏÙ¥eBèS-ñ‘h¬û:}âàpùÎôæâ¾µ¯n6õœîW6\Ãçu=G *z½]Òs¨V‡Ÿq±Úi»­ÄòÛrÍš›¼åfÓ¿×Ô¼ÕèUu8ußç0ZùxÕ+2Ùo ðÝ'ñà™P´V‚—43%¤’EÍrfá•XÉàS·ÙäÇ›G`©Ö›Óü¶@Í¥ã~T² ×©ÅÿöîBìO§4•Ú’¸é¶ÝP0ÇDßéÒéÐ{2¥°€FÐÜ\ ‘§¹Êw+ŸË* ¦µôà?_îÅó€!Íì=¤’Ëqï ÙøúJ} Û%Y,ôZ'úi5¹úé5Ž åå¥vÁ)¤ìwE±Þøþº-õáŠÏ¦š E„ÕRíEXå?ãh¿ Ì™°p|QNê~”½ØºG’Ñ¢dq«ò¹ù’N…¦¯àâÆ6Q°ïû«+ð žÁöà-Á;.ª‡¾qH5Y^òª‰Ê' ×Ý¥tÆtT ]‹i ëZÒáQË#oxº+oˆO4¥~BCãƒz§pz â¹)‹ÍV ‚Ë¥ !µ œ?§TK€Î¶c5çTá=1.„˃âB ¢•îµÒæ<ºy¼œ—m¹£tôìø·ñYðÖuŸ5§Þ_”ªÐ…ý°PRÕ…šÝ;\õ9X`÷¡Ýn·›Ä+fàCÔV5îF;bøÈÒÝ\ßn7K« ¸/WëÅø–*ó€áõ‡SØŽ%eŸæ€JÀ§VÑŒ "[°£ ÚËA`APÐT)ÒõÍJeAž²â6Hæi3óÒ¼ õ ~¿X'Õc+GÙ⹂G.Þª vKÛÌò8ó¨™Hõ¸Ž´·ò®À»‰_‹õýâ ‡ ¯®°^_ŠÁZÄ/HzIy-Tlù§,¶ZÙ‹Øß½ÜÀ}o”ŠÍéÊsžªE—0õAØ›œ+¯91£QéçÂ;ÖD }þ ©4.¹·˜Œ²ŠXû<98j“ŒmmRÏF2yWþ®æDìü‹­ÉÁ{ÃWђÙ.±Rz¡àÜ-Ey8WIF % W±Õ‰€å g >a-ª,Dç"*`G£‚nUÚSÚ{ø±)Ói'«‹?. ðÉ1\‹æžéÓfZϽŸ š¨»Tþ.¥8«p!Ø»XŠ’wåöâ(GÆ‘~“Ì ¬ñ8Mã²–O4¡-Ù*Åý…ôº+?²FŽ4[hñà¬+:IÒ†ö Ú¾ýP´ê«4˶À£Í4+L Ç‹;N œý&à(~)_^‹š¾Œ`j1‚n™} 8ÃJ—kèøÖN¡ãž„N£Ð t¸bã´õX ÙD¾¾¿päZ2*OVTÆV}ðB† G+#×TÇ0çþ…ÌPœ·Ö@…ôŸ+A‹“",s¥$*R0‡Å=Cm†Ó %µ/ZN>Ĭíô½‰Ò³<]$×VKÑFz ä3Rö—CµD•7b»åGý¡šOªI€3áÜjV×ÿDóM#§“žÇ/6[-šŠLú@¿{ÏÂxZÒøA&ƃÊ:ò…âøTœ8«ˆmx/6Üe6¼PñTѰ:“.WÂ"¢T§“‡¡]Ó†©L %ûˆÖÂD1š;Zt^D˜NWTµÍ_–³§N¬ÇG¥ÜÆ¡ò3°hÐ!«D+!Ì+5äÊåžÒU_ù¤A9JmãJ­å´Ä‰›Õ¶øc±¾“ïãx¨ß“-¯®·ƒÁˆû?ùžRàQ¶µ¸cKÝðéÐõTb”òÝ,é#)óvõçÜ3»Y¤úô5ÎèÊ[¥hÂ/þ§^5iûì}]¦×óPü$tóýóôÌÞ¬Æõ•ó×Ò4ë»Í–þ@曥8ŠNLxyƒd€äÌxŠIø `?íL7ÀÂGŽ¨Šƒk`Š}N Æ‹E„±21Nñ%ìOW?²z'8Ö5:ÖáIÔøí‰2ª>¡2—3òʉ $$QÞÉÄJßWëDÐêD `I=Ç>«?Í: ñä2>Ê} ï´ü^'Cü]‹õ&?ЈQiNyì·ý¸ØBk2–‘ÿŒJE­Ž¢Έ:—‹SI¯/¯Õò;@v¹ºÙ~œjsÕGiæ?2ï¡[dÜ3xè ç4qìú×ü-ùƒ†÷L&ÛâxÖ*‹™!«ÜžÇoWú™¨wÌrNеÌû‚ßÀzë‚»¸þvضðúÅ|F ±1jbòÝ“âÞhháZÔPÄ=æïÇüÃ0°!é)˜‰÷ $ œóøà¦ü{<ÉêIÍdþ² ï6z•#Ø'bSIK®[ªúoW2܇ [ª‹3 bg3kQÃk]¯_º[!fÙZñ7ÜN™(‹‹NHmžÕ«Ål¥Qç G’4ˆP®Çì!Ë…QP"²îÕ3«™ØŠþHâù(Ý ¶Î¾]I#yj,ウ´÷1÷èÒµ|ÝÀR²Ù?|™&м.F†Ëgæ,Øáózøìº¶ê<>Çõé3\üV áûâ¾ðÅ›âØÕƒ0âŸÿÔÅòÙwßÙâ|ƒ „â¢xf[eZ9w™"²­Ã¶®1ô>[2DÆ%®¯Bò%12.Á…„æKb$-ñ¦®×eK†È¸Äƒ5š<—!2.éÐ$>Ïeˆ¤%¢omžË—@£Íw"i‰u®j½ÍK#iÉ^äx°É}ñAêoQ‡¹Ì÷¸šl ö¥égþäÅñÈHè̦¶ÒÖñ_ÓûªîÐÚ¡F>½vJÂV×ÚÀ¿Ö„VþÀRW'5-ß¾úõåër|ë`^¼kÙâ"ø @`¡:èP{§sÞ»YW—ÏaÞ¢VUMí&K~þñÕþۃׇ3WÃJr™ÃF¡€Í1²„‡ïÿÈ€zk`LÞá8Á<ÊÓ¤€Óa0…D{×U¡éå…œÜe)ÚSµâ±¥¼êt}ËZ•ûo~:þwJÄ‚IÃ÷0ðÁɶXRïìÑûAÁ¡•†ÇYX+O0Fz¶bö£&æ8FððVßÝ»VN‚s€‚y\д†KMß›<2Ù†íÉ‚Ú|ã¶ú<œÑùŒ{KÓf¿r€Oލ¤ßYÂê‘ë¸ÃƒµM“GøP~gL´>äWwCWkw"HrݸOü÷f'Bgµ“Okð6;gáîm¿³¦ƒ>t;âîÉ#¾ÆYuþÆw¯­É#bâvÖÐ䘄 ,¾ëª<îCÖ;`5)´¼»‚3M&–7™|Cé  ;Ü€J(S)åm(V8¡†BƒšMŠMIᥩ¥pRºj–ý H åžÓda9 ‹‘û·&"¬±¡üD ©+8ÓdbLd²€Šúóf¦$ö~l3 †Ô‰-Œˆ,> 5§] endstream endobj 832 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 833 0 obj<> endobj 834 0 obj<> endobj 835 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 836 0 obj<> endobj 837 0 obj<> endobj 838 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 839 0 obj<>stream H‰”WÉrG½ã+êØ=!4k_æfA¢BŽ9A£ƒBIÈXh4忟W•YÝ RÖx‚Dgv®/—ªVâvrñ潷ljö]Œ"¸Ð9/d§´”¿Ú¤”Äa5¹™èP_[—Îß^ÌŽ^,`™¢x!Z£Äq¹›8+‚u^8i…ÊE |kž³Q~å»ä¥*ït줦—/ç“‹K-”˜ßLRv$’pEêóíDBy ïÒx1_Nòbž?N>5—oÛ©ë|syE¿âÍj—ŸR³j¡’šC; øYuÚ3-Zß…æŸ)ßtªý<ÿA ¢O”®¶>bþŠ"Q®DBA<>>¶^v®é¾­7ëâß5ߺå~[̾ži°¢@I‚hÚ;?B¡ßÁ…ƒ÷&¨vþuˆzêl“1bª:­‡PS&½Hx£¤àD;ÍHüt`TFp¾ÙI-Âm^M¤T’±ªá¢¤q~°(~Ôh+ÓåbmK±Œ®e˱PÙ.¯Ä‡cëP¥š[øÖAÍ\#ø·»FšÙ¾uð½;Zàš}.¢i6ÕßÑVkQZÑ;À)\@î©ó¥é>þCìjßåx¤© Å]wñj¿|Ø®v'qñnŒxùj6ùuÔõ@Ò”Aòh(«T,Í€ ÓyÂØ;ú8!ÕÉÄv'oº•ØL\ê 1Bg½íU6Fv>E™»ŵNe¿*ù:káÂÅÎ*;r10ž»ø½%mÈHÀÀTå -€õ£œk ÎuÀêÿ 4þv’Ï rÖôŒg~ýa ÞvÖ¥¾[²èF…ñ[0üýÂT‹Ò`±±Zƒ LЮld…†Í¿Î¦b[šÀêö‚î’reK[™ €0HÀ–ƒR#TT¢Â8’HÙÓ(KØðjܽŒNÊQ"­ìXÂçC`Ì0°F^ ‘WÏoÑÙ{ñW¿Ÿý‚•ö3VÇWœ¨ý£PR¼Ÿ>Kq= õwc,˜ÑÇð~q6%3’©Œ^&êNÆï1ÐnZå8£ïlú=ä#šÉ½0cIBÔ8’„ÉÒ4€&OC¥{» U0î;ŒÞ*TbéÆž:£bi&Wb­ŒA"v^†ï0Féüï= $6½J£l”Ä>OaÔˆJâXpc R‚È8!%uçÇ /Çm¥d´xÆ©Žj/æ`üÙúT2 ÅÕÇ’ÞU–Ékhœ¸’CQ©e†‹='ÓAj¢™´ŽI#–E!ÄÀW$¢f‰d‰fƒ¸'‘BLäÓhS’" ¢Ð†i\ H#9_8V’ÉäÉ…­L;Y}ôKAU g1ù ÷bÖД§7ìƒ(G8GjÖ£&­X›“Á3]íRÒ1¬•&\½O=M †aÊœÍ'—f3¹›ŒËûFN=rOw,P$ûl7X)o#â …dÁë3Ò¦^9†åí¨Eà€SÕo’—’ÐP>PHšBPŒu¬´6¬Q÷‹Óž“OQ=áxE~ ÿ §œ±–âÛØSF°†.ÐÜF¸Ø#ÑÑëS%0Ê0C¡“cG\½|5Ï´U%Cŧ˜±ÔÚÑnÔ0Çå&MˆX^ZQÿy£zšûÉû3‰È™òÁA>óFa­†±©*à,m’å—p¬óOµÐ#DΑ…d(©Ò»3ZËP5˜c¸3]ó`G>0´©¶…å]”C”(w®áFK²o$n­Äq\¾û(¹Nï&0<Õ‰PèD“Uj0áÌzäA±€¤²QŸÔøj „ažuubÅ€[u ©F0âs.„Ì] 1p¨TÕB-åÙ4Ê{Åãáy{F©Ù§¥)Ȩ©› ­`pÏ)@XBVóÀDRо߇š€6š³$Œ;/M¦yD’:“Hvd ï©tæ"7ËB*“2Dˆæ³ñ,‡Ü°z”eâûKE!رlj4øXpô>Ä4Þ£•&¤r$ D  ‹<“žwR>“I¾^ ¼¬ECo£¥€%jÊ”$öÏœ&Rñ¸F¦lj>'ùQ¯©ÞµÓÙ¢Ê4H0gTÇÁUzì‚Z¡Q[¥ÆX›iÈ¢¶[ͳ¶cÅûu W!†.òú¶> @ä0"•cXž+ë´x2K\¬^¿›áÓëâÍ{%n“—óIÂ…×z)ÊCÞ ÎÀ¹ÆœÍ·¸óßâ+HJŒü| jþ8i~ÙŸVíüëäâ‰ùÍD£4è¼}U„qØfᬦ³Æ§æŸ¢õÍZÜ`U³n§ª³Íá´ú6mfãZÝÅF\þ ”mÞü$¾<¬7xö͉օصÏâòíe!¯Ú©„øQ<ÒëÓË]¯îW»ëU‹Û1sN9†åf¿ü­ˆ³~jÄbw_\~¼œ‹ÅæqñçÙÛ‡ã*¿=ݵ&ðüyþódÊ #/¬5mŸÓžæG€^ò^m¿¬®ƒn®ÉàêZìN÷fê›C«q#hVùin×ÇÓêpë(þLö©íby(~Uè´±?z/N{ÆaÛf£÷›Õö §;b‰’u‰ÂP Q9©¦Ë|Ýpê5äeÐ}$ªæžOõÊÇ»Õø­w·Hg%V†-B_ˆº¾^ð’C 뾡w ¼~\ì]ã-àPë=äçDq+b¹ßn÷;AµžbÔšlåËC;ÅþkÐ[…‡æÂoh÷åÛvêðêò*ƒ>Åù’û4‹•>õµðÀ“Ê+Uë€/±šÚÝ §ÍñEA¼ºúsjÞ ½.g8›ãê$þXlJœ¥ø¾¹!3,°8ñ;ó~Ô}’ãX‰õQË`=©ûû=Rº~Qj+àõfóp<'.KF¡x¸˜q©;–ý Äq‰ïM@£phõ>‡Å€¬sïÄæö•Œy^Ú©¶XÚ<ȡѦXÍK'“7µ•³ ôYÙ)†vJöÉoyª06Ò•µÔƒ^ÆMs¶/±8N%Ù)2x}8ìb¶?VËÓ 1»[-s¯‡æ7t%%XwØó5h4%_½áîÊÞòFï Î4:i]~ó„Ó׳YžÛ²ê2û˜‹gšR†PÊP‹ nÚ<ÿû6Ø!¯¶+B ïnHû–JÿP†£,GzÁ ¯º¥…×ô݉Ýïmîj¦–X)ž}ñ|u ‰ø2}cg’,f#÷…sút÷Á—Z‚úÎ-’_I=fžs=Ʀ Š1)rÅñÇóä®^=ü-N¤&…ã!ÜÀ]HºrÛ˜‚÷á?ßE·‡¶¹0å–oÚÒÕp×ÎÁmV¨qç“Øõ,m•«Ž¢þíörŃĦ¯ûXŠôy·-B‰¬g˜¬änÅ”‚0ºÍž+yMpitê`ÀÈ@ßóÙ(ePLY.(QBsIöC—}¹÷è£EšD 3ùêYoñÌD¤t»‚‰#ÐGŒ…AÒW<§wÑ@Î7o‘SÊBç›",)á÷H*\)37ò^K(Q³W)FWä=M'^-Á̽‹ ‹ qùÃH\î_¾¡ùÖs±ÈEp¨îä¥4VÑQ½ß±’ؾν&…‰ I¹g‰zÚVJ*à¨NyŸE¼Y3D;„ ¹:ª¾`ÁØ@¶ Î6ˆ_á{ú#rVAX¬)Å]gd_ûX}r#%"Hʲ\-ÅĈ„íëš9qÓ.Kó……bÛ"í UÝrMËf[– ÓG‰O>vZQ¯sj´ÈÅ1ùQbÏm”q2jÒ5xŸ&${@iû¹r¨  ôhvÏ-Ø`©D‹‚û­#k¿†©¢?#ÄA®†~1ßµg ÞüP6å¶ÐW\ã€2ŠŽÈEü ¥ì{Õà›\$jêÎ? öæï^Ýίïïì9¾!HF®1ê1Ç‘3MnÂZqp$X‚¶Ÿ;êêwe8§z”/ù¯Ë޲ø‰û똘£„s§Ö[À‘ jœ,À–áôÔÊLVU’KÃnå?õŠ¥95{aüz×qCÒ´Bè)göH®òéŒC‰"j½¦"9ÑKçàĉ ©ºÉ®Ëñhj!V,“FdÙî¬`ºs·V»™ü£• fŸ¤klê¥àøÝå$ð.é%ÕžžC(tÇó‚Bö1í²Þ_¶ewHè'Þ²iwü=±8[÷ÅŽ÷ÇY‰ÌP¹¾·:«²’•Ž)6å¦Ý~1Åv‹,¨.´ #•Ý™¶©¿0˜d°]Õ’ƒèÍÂ{ŸÞÎ.‹]ÁuÙá;Lü( òÿð»÷ó£>7 ƒðÔ³ž˜äi˜ùY†']£>™Å«RŸŠON’H”ÑFç}²³Û,«Ê|¦[·ÏBúˆ'aÞƒÅæ¸Èùïüß8ƒ?眑gÙç j¡½Ãç“”RI)@úcB·/…¨ã¦Á¬„^TˆyW›8h`šž”°H¯“7:WhZ©¼e·§JG–¢ø@dÂ`¢º¢É¦«V®¬'!®Y¸u¤Âò‹o¨>Áû‚Yd»ªœc ”ðiC"Ò±bû‰óH†ñ=hm(À³±âþEG2á&ÄÔ8<Ìï§ú^ gѶ®âE0j*Ub§‰4°>:”šˆÍ­E)MìA¹'ã ƒE®‡Ÿ7ÜíT»ê3Uw*:Ó¶×£.ýã‚™ìîžþ®mß¼bB`M¡.{¹S9„zªŸuLïéP¸1.Ê–_îÄqèýb¾Ÿíï—ñý<³)˜»dÌ,ŠnQ,™ÀCf@bÜòi·¾ _Ïëò˜¨€Ù¿ óÇ9ço!×Å¢xÏ  ’•PwåVtËz£¨‡(šåÙ°³SÉ󑬂ËÒS† ¢¯ :´‹Å~«3]¬i\E@‰d h¾˜öQ|ý^ÞÖb/¸U‰\«‚4.X”qrÇ+ëBw¶á$Êá[í¤­Â¡øTQéëÂX9•÷ì|é‹n˜xðk·F$T®õ£ÆW—‡Ò<ÖÅJø†gÊâsZ]+ÑÞbNÉz¥D§!ùŒÂ |+š$ø¡$‚ê/Â^ ~ëÑ]|sð‘Aسª¶ ê‚¥Oº£0ƒGÌA0ØáŒ»”H Ê C$BŒA!&Z- Lg?]pãcÕÖÈ,h†ãsP)ž4[s_4¬ÔaŠ+U#9Ñ5UqÙœãdû5 ñ’™:Ç(! m_3’Wè#ISË#Ê#”•”ü,¥ƒ C r,Ep ûZòlŠ®Ûoˆü qmb“´ãËÒ<}T<•ö}©;„m‰NkWQµ (V.™uÑɼ‡²ÔìÖÈyîŸØ¢ûDŒœ‰MFýßãøÃ{¸¶B¿Ð«ÛUµ0MÉ–¶\vì´¨ù¢Í‹_dœ¿¶x’.0óZp7ułܯ/DñR—BDÊ_‹ÍSÍþ/ΰs¨MÁŸÀ@ÏtA@ÀȬéŒúJþ#Áb6.&vèL Þé‘x7Ñf•[Ô¦ÿôœ?›\ú~*'„€Ÿa•[iU8Z{îÖˆ ¦¤o¦–Y,v+Y² 3°îu!3vRç¼·ŒÔƒ[¸žã¢oârÁOìÉfú°ë‚%ý<ùy'üs!rŽ÷Ø'ìrª‚3r®õ¡ívXª¤OàQfëeÁFe'ÿÌn+?PH‡¸$Þ£t1¤l†F@:Í3éèGX“’ç3óÍ‹¦~°›âäc¹Ú?§÷DAožlÌ'9µ"Üp»Ò·¥T@kö§|ÿ÷ŸâºÞ< ¦R%¿WZ”¹÷ò´’m:Ù§d Skqݲ¶*†6ú$![~ýŸb2ü&ƒ,õcæäV&ºÔ8p˜$OPMBj ö";%Á~Øpr„3>ËuKCfƒ¹º#ú ½÷ssï°ÍÍ(‰vDñ§Ô "\&qNh”Áz¯oGK m¥X¶æC%›¢Z˜ d9¢J*ô«,š&ºøRŽm'ô´ÙL¦,c¯'ÐvAG¤Þ/ºˆ -gÀÕb(ém-G @ëG2¡B‚ÀÊ–lI‰³R~ˆê@]UbCwT4”¶¾ž3ÄpXåãçfó"ŽQ¬Vk÷•°Ãµ›Ý?ÂægdçæÙDæùa‰fÑÿž™å‹ï~xgͪÚcS™6ÉýºZöj>ðÊ3™Y®mý䡟fpDI·“'\âß]v‰Yt8-Sl‡ÿ–Åÿc@¢[4䷜麿úÏåëçõ€Ö L¨ä”Pò}?§7À´µ¹AýÅl®€í$æ/_ß^©§òÒžƒ)Z¾¿y}7 gÞGžúäAIO¡Ã¯¤€û"ô‚ÁN&5¦pí€G„†#Íú ©ž‰IBR˜ˆSø3@háÈ X ? ¢Jf¹?Ë Ì»~óvþ/½EÇÆ’ÍÔŸeq?‚„G9r*3‹˜Òq¬ŸcÕx$§š-Jdõ`ˆâ„ó.8ÊB/ÒÜ$(‰,MhŽ»N?"P:Ù‹SÐ#üþè€4ß(‹F¿_6=rÜF¾Ï¯˜£b`g›_MòïÚ9ÄŠâÌ9 "ÑÚÎßÏ[ì®·Š£•´F"{˜gØìâC²Xœ¢ÆªiSiAšJi"¸ªæê ÐUv'ûIW…u’GžúÁÍ,”é]˜ØR§6Ó„9qý¬Øø=NY~ú©ó3õSQ›ö)æ&wOo#uä‹àcÎ Þ…ÒßžÊË:–œ#!aW•‰à]¨r\?¸ãô’'RNÓÄd, 5OÝävª5zR°Y&Y Ë:‘Ššl’‘JŠ0½KVW)n¡äÖN“lý™öiA =?ô"ÅJʑ˙ß*%¢çiºŠl•&‚…;uŒ´×ºïøŒ„ÓbÂM>k–ÖR‰[:zX±—±ê¶•ß±»•ÈÊGá0è{¢m{aoSšÔ'ckíý¼þj$¡‡çg|Ëùñ’°½‹9¢9l¯¡h¶CQ¥dÏv²äp4…µ[äÜÔÞli°_7•?ñ–¤z³ÑæÑ>¡bZÄüQÝ_–e±8‚lÝÓx*ÖæÛpDìǼ«÷Ôp‹!Ù(>p,$ÌCí‰ù&ìU)•?r~>»ûyáü^Å(“‰,˜‚G–ËG˜ ª"›Ø0´G®u¼ÞŽÏ/ÃÃäâè ÕñÓå&ÊåFA}Eƒ(R £"”„žI$fÔSR¸6i$bßF6ö²RÉ;‘oß%¡Ô©«5Sô- Úè:!”̤â¾eÛZRn‘q[Ë^Í.÷j)8ÇRu¥<Õ$=°ôÉ õ©®ÐAnDŠ ’#kË#gJò*3zO±¹õ0Ϋuu³_"Ró ×{s3«M8ùìÅ‘ùMs6ý’qœÿÞoH,ôSë(anp8«‘IŽï^þz|ë6óvŪŒF&–ê'âÛÛ0¬éS–êõ}Â~ ê{[ê² roÿû›µwð<º?qCAÝ#ÕÈ“÷g–ýySd{…ãM—$[F=ÿûïž¿8_þ6ÔZÖ‡$7"”9}wGÔ•%“H¥‰ƒÍYP£#ݸƒ·¿%¨þðfŒ-¬õª©üïþ4EÇ&+(xkƒ9ÆQž¯(ñJÕãñjqIS°)•9{ÈÛ÷7ßIJÊi÷UÃÕR,É›}oŸÆ¡#ñ®£O´iŸjƒ›K^¯Úäèš|zpm$w\6RØõ`K ‡&Ïí/é¹MmpFŒ ¡mS¾Vd¬Ô½rÌïšžlÜw°×T¸o² ·w< ý\£ ©.eT»OŽÉõ°Åd=0(×f ʿ周°Ø×ž½(ô„ôþô¨\»)öÀ¨\›]•{Ë#Q!‹Hß.*$‡ÞÃü¹ö¨Ø£rmö¨Ü[‰*É._}TY–åÓ–úˆÊõ°GÅ•k³GåÞâËh÷£šAR·T&;2ÍÒó¸`…†èÁЍoÏ„Æ&iË鋦¿Ñ‹‘«7i•·×Ñ_.Œz§*’|þ I –C—žä¹_%Éz¡o$óãÀ¿XUøÃíÎøx8”QxcFŒH} …—œýxz•3ýõáöþ§—¿¼yõöçãíó;L_ßßIðr$b]Hðû¿¡£®+k9æ2ÖAàoïÖãˇãGq÷ÝÇ(*NáãM<•TÃù/òÃí·!cí\0y¨âtœçí§¤¿À÷þËeô†ƒ=àÌ»‘ ä /~¸ì PÑD­P¾†c®I>nöáßÈø1Vz’6x³9[¥Žÿ9ŠÇ(# £Š…òƒT¬•QG »,ÌI„ƒœQÊn‹çŠ` ¦Œ%’]›„¥*g7àÐ^$c@yÂgW áõAŽ1Gì× £2¦(ëž`í«¬O#ëøôm"b˜ÚÈÊi¾MÁ.Ù†L‚„“oƒ"N_×Éb©uj“°"òÔ§)‰LàÒ|HímWÄY<#8ú§(jZ,ãêãÚà¦ÓÓ4rÜúòÒ§6¨†ÇáKÁ ¦8É L2 %“P2 %+1É$”¬Ä$“P2 %“P²“LBÉJL2É.™ß)™„’•˜dJ&¡äŽ=‡M²“LBÉ$”LBÉJL2 %+1É$”LBÉ$”¬Ä$“P²“L²KæwJ&¡d%&™„’ITrÂâ¢dJ6¢’¨d#*™„’¨dJ6¢’¨d $¡@#›@û®¨@ 4¢P N)·M HB$HBJL *1$HB$ºJI¸JP²“L²KæwJ&¡d%&™„’I(¹÷q'3É L2 %“P2 %+1É$”¬Ä$“P2 %“P²“LBÉJL2É.™ß)™„’•˜dJ&QÉ·Œ–£I& d#*ÙˆJ6¢’I(ÙˆJ&¡d#*ÙˆJ6¢’I(ÙˆJ&¡d#›dû®’¨dJ6¢’Pr §V]yF`’I(™„’I(Y‰I&¡d%&™„’I(™„’•˜dJVb’IvÉüNÉ$”¬Ä$“P2‰J. ²´/Ï(ÙˆJ6¢’¨dJ6¢’I(ÙˆJ6¢’¨dJ6¢’I(ÙÈ&Ù¾«d#*™„’¨d#*ù|7¤PÜ`P¿Å¼•Ô¸!ÖH‚B$âšíy͸DŽ#µ6 A.köT^Okmž@rÆeÔ“ŠWßVC}"º¦§ZDÌ}"¸^¥ì .¼½û~¤ „0 ÚC)´ÓÚü R,yê#NX9ƉÔ1Áî¡’±L½Ó´bœ©N7Åeê§Ê¥1yÒ2n“ÓSó—§AôzÂFq$/hõýä€aÉÝÖ «MOEÙZÅ,ÜéU95„œ}7Ã*ëD0,?rÙ 5¯W¤­~ ÊF/ÝÏy®ùæŽ[=­‹Ÿ‰Üã)L–so(EÚGˆlr*«WÁžÑ÷\°ýJíiH!ÓS)cÞàù°€`ýåsÅ:Çg]J?>¼|ë.³íÛÈËË:6¹™9D¶’¬n9VÛàéˆ9• /|†ôa?¯¿zþÿ^w>|}9ÈBÀÖ^ð·ÿþ)²)‘>’Ìøå „äb(u|–¼ yöçw¯~ýñ§ß]þy¸ýbÂñòú€•.–ãåþðì—‡í·´ýÐýºÿtüu~ ›©gûíïÓSÈÏ|ê_×Eìãý]|è•üòÍå£s˵`²‘lÂ>.[ÛP-ûyŸø¹ý|¯ûÀÜfdû¶–òô¹½ñÃåøîÕ,\'öáZ¶ªþùz^Ãi ñóÎë7Ïïÿ`oÆÄ endstream endobj 840 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5L/zkB58ufPHn9NF0km407S5PqOnxR7+vdOwWWRR3LPRF9hXviofTX5S/l9beRvJlppCgNfy f6Rqk4oedy4HIV/lQURfYYoec/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/z lh/5NCL/ALZlv/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6 MUPzy8l+VL3zX5ig0GxYLe3UVy9uG6NJb20k6p2pzMXGvauLJnn5CfmbN5E83vperM0OialILfUI 5AR9XnU8UmIPTifhf2+QxQX2iCCAQag7gjFDCfzs/wDJUeZ/+YJ/+JDFXg//ADiB/wApnrf/AGzh /wAn0xSX015n8uab5k0C+0PUoxJZ38RikHdT1V1/ykYBl9xih8XeXtS1z8n/AM1il4rE6dMbbUY1 2FxZyUPJQf5kKyJ70xS+nvzi/NKy8rfl4dX0y5SW+1mMRaE6moYzJy9cf5McZ5V8eI74oeEf840f lu3mbzU/mfU0MmlaLIHTn8Qmvj8aA16+n/eN78fHFJfX2KHYqwb81/yysfO2ikIFh1u0UnT7s7V7 mKQ0rwb8Dv41hKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHIPouPJGcRKJsF ln5XfmTqHkjXBMC02kXRC6jZg/aXtIng6dvHph5buu7U7Njqsdcpjkfx0fYGlapp+q6db6jp8y3F ldIJIJk6Mp/UexHbLAbfOsuKWORjIVIIrC1uxV2KuxV2KofUtOstT0+506+hW4sruNobiF91eNxx YH6Dir4X836L5j/Kv8wL2xsbqS3miSQWF6uxls7pGRW8K8SVPg426Ypelf8AOK35afXtTk87alFW 0sGaHSVbo9yRR5adxGpoP8o+K4qX1Nih4P8A85ff8oRo3/bTH/UPJikJp/zil/5K1/8Ato3H/EI8 UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFIfTv5Zf8AktvKf/bG0/8A6hY8UMlxV2Kvhf8AP7/yb/mT/jNF /wBQ8eKQ+6MUPiH/AJxw/wDJz+Xv+jz/AKgZ8WRZ5/zlH+Vf1K8/xzpMP+iXbBNajQbRznZJ6DtJ 0b/K/wBbFAZp/wA4z/mr/iHQv8K6rNy1rR4x9Vkc/FPZrRV+bRbKfah8cVLOPzs/8lR5n/5gn/4k MUPB/wDnED/lM9b/AO2cP+T6YpL6uxQ8J/5yj/LX9MaAnm/Toq6jo6cb8KN5LOtS3/PEkt/qk+GK Q+a7OXzT5uutB8sRSvePbn6lpFsx+GMTSF23/lBapJ6KPAYpfdnkbyfp3lDytYaBYCsdpHSWalDL M28kre7Nv7dMWKfYq7FUk83+bNN8saPJqN6eTfZtrcGjSyU2UfxPYZRqM4xxsuf2d2fk1WUQh8T3 B8w67r2o63q1xql9JyubluTcdlUAUVVHgqgAZz08spGyX1TS6LFgxjHEbBE+VPLOreZtYj02wqCf innNSkUYO7t/AdzksUJZJcIae0NVh0uI5JgeQ7z3Pp7y7oGn6BpMGmWCkQQjd23d3O7Ox7knOixY hCNB8r1eqnnyHJLmfsTLLHGdirsVdirsVQ2p6lZaXp1zqN9KILOziee4mboscYLMfuGKvhjzfrfm X81PP95e2FrLczSrIbCxTcxWdsjOF8K8QWPix26gYpek/wDOK/5mfUNTk8k6lLSz1Bmm0l2OyXNK vFU9pVFR/lDxbFS+p8UPB/8AnL7/AJQjRv8Atpj/AKh5MUhNP+cUv/JWv/20bj/iEeKC8h/5yw/8 mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/AJN/zJ/xmi/6h48Uh90YofEP /OOH/k5/L3/R5/1Az4si+1NV0uw1bTbnTNQhW4sryNobiF9wyOKEYsXxD5r0LzF+UP5mI1lKwksZ Rd6TdsPhntmJADAUrVeUcg+eKX0n5z85aX5x/IDWtf040iubBhNCTVoZlKiSJ/dW+8UPQ4oeTf8A OIH/ACmet/8AbOH/ACfTFJfV2KHhH/OUf5mfofQl8n6dLTUdYTlqDKd47OtOB95iCP8AVB8RikPm yzi80+UbrQvM8cMlk85+u6RcsPhlWGQo21fskihB6qfA4pfdfkPzjp3nHyrY6/YGkd0n76GtWimX aSNv9VvvFD3xYp/irsVfJn5m+eNZv/Nt5FrtrLaXFk5hisSQVhStRxNaNyHxcv2vlTNRm0uTJKyQ +o9jY8GHAPC34tzLvP46dGJ/4htf99v+H9cq/k+XeHbeOH1b+VGleW7PyhaXWhzLdpfKJbi9pRpJ BsysDuvA1Xj2+ebPS4Bjjtz6vmHbmrzZtQfEHDw7CPcP297MsyXTsZ8wfmL5U0DXtO0PUrsRX2pH 4BtwiB2Rpmr8AdvhX+mRMgHO0/Z2bLjlkiPTH7fcybJOC7FXYq7FXzd/zlX+ZnCOPyJpsvxPwuNb dT0XZoYD89pG/wBj74pDJP8AnGH8tf0B5abzRqEXHVtcQfV1YfFFZA1QfOY/Gfbj74qXkf8AzkJ+ X9x5J89R67pAa30zVZDeWUkfw/V7tGDyRqR9mjUdPY0H2cVD6T/KH8xLfz35NttUJVdTg/0fVYBQ cbhAKsB2WQfGvzp2xQ89/wCcvv8AlCNG/wC2mP8AqHkxSE0/5xS/8la//bRuP+IR4oLyH/nLD/ya EX/bMt/+TkuKQ+nfyy/8lt5T/wC2Np//AFCx4oZLirsVfC/5/f8Ak3/Mn/GaL/qHjxSH3Rih8Q/8 44f+Tn8vf9Hn/UDPiyL7exYvOfzx/K+Lz35SdLZFGvaaGn0uU9WNPjgJ8JQPoahxV8leWPPWqeXN D8yeWZ0dtP1u2e3ntm2aG6T7EgVqUO3Bx4f6oxS9N/5xA/5TPW/+2cP+T6YqX0z5q8y6Z5Z8vX2u 6m/CzsYjI4H2nboka/5TsQo9zih8Y+VtI1z84PzVaS+Yhb2Y3eqSrUrBaRkDgp7fDxjT3IxS+n/z e/K2w81/l8dG063SG90iMSaEiDiEaFOIgFP2XQcfnQ9sUPAv+cbfzIfyr5sfy3qrmHSdZkEZEnwi C9HwozcqcedPTb34+GKS+v5JI4o2kkYJGgLO7EBQoFSST0AxQk2medvKGqXosdO1i0urtgzRwxSo zSKv2mjof3gFdytcVYn+cX5U2/nLS/rtiqxeYrJD9Wk6CdBU+g59/wBlj0PsTkJR6h3XY/ap00+G X93Ln5eb5Mubae2uJba4jaKeFjHLE4oyspoykeIOQfQYyEhY5Fn35Q/mndeStW9C6LS6BeuPrsA3 MbdPXjHio6j9oe9MINOp7X7LGphY/vI8v1PoX8wvzT0Pyr5Yi1SCWO9utRjro8CNVZqgH1CR/ute QJP0d8kZdzx3Z/ZeTUZTAjhEfq8vL3vkTWNX1HWNTudT1KZri9unMk0rdyewHYDoAOgyD6Jhwxxw EIioh9BfkN+b31+KHynr8/8Ap0ShNLvJD/fIOkLsT/eKPs/zDbr1lE1s8h272RwE5sY9P8Q7vP3P cMseWdirGvzF872Hkryjfa9d0ZoV4WcB/wB3XD1EUe3id28FBOKvkf8AKfydqX5n/mS91q7NcWaS nUdduG6MC1RF/wA9W+EDstadMUvtyONI0WONQiIAqIooABsAAMUMW/M7yJZ+d/J17oc/Fbhl9XT5 2/3Vcxg+m/yNeLf5JOKvk78m/Pd9+W/5gva6ur2+n3EhsNctn29JlYqspHjC/X/JrikvYv8AnLxl fyNojoQytqQKsNwQbeShBxUJr/zil/5K1/8Ato3H/EI8UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFITPy3 /wA5W6honl3S9FTy5FOumWcFms5umUuLeJYwxX0jTlxrSuK0mX/Q42pf9SvD/wBJbf8AVLFaZt+U X/OQV55+81voU2ix6ei2slz66TtKaxsi8eJROvPxxRT5+/P7/wAm/wCZP+M0X/UPHikPujFD4h/5 xw/8nP5e/wCjz/qBnxZF9vYsXYq+Wf8AnKL8q/0ff/440mGlleuE1mNekdw2yTU/ll6N/lf62KQh /wDnED/lM9b/AO2cP+T6YqVv/OUn5mfpfXE8nabLXTtIfnqLKdpLylOB8RCDT/WJ8MVD13/nHn8t f8H+TEvL6LjrutBbm8qPiiipWGD24qeTf5RI7DFD1PFXyN/zk/8AludB8zJ5r06PjpmtufrQXpFe gcm/5HAFx7hvbFIZ15T/ADMg86fldYRa1KXfSNRsLfzYCa+pYep8M8oH+6nYKJq7UD12xQUvlt9b ttP5X7zwT3VtcP5UXndTG51T9IBbSgkZkglgCpwESDnE7b8VbCr6PwK8383f8qM/T1z/AIl/R36a +H616vL1Psjjz4bV40yo8N/2u60n5/wx4XHwdEn/AOsaP+1X/wAlMHp8/tcn/XT+mrXH/QuvpW/1 j9H+l6Z+qep63H0+bV9Ou3Hny6d64+j8Wwj/AClZrivry+1R/wCsaP8AtV/8lMfT5/az/wBdP6ap a/8AQuP1mH6r+jvrXNfQ9L1vU9Svw8OO/KvSmPp8/tYy/lKjfHXweuZc887FWH/mR/yrP6lZ/wCP fqv1P1G+pfXOXD1ePxU47cuPjirX5b/8qw+p3v8AgL6l9X9RPr31L+fieHOvxdK0+nFWY4q7FXlX m/8A6F2/xHe/4n/RP6d5L9e9avqcuApz47V40xVO/Nf/ACqT/CWkf4m+p/4a/d/of61z9KnpH0vT r8X910r2xVNfy/8A8CfoE/4J+rfob13r9Ur6frUXn170pirHPzB/5Ub+nl/xv+jv0z6CcfrnL1PQ q3Dp2ryxVjX/AFij/wBqX/h8Vd/1ij/2pf8Ah8VZL+X3/Kjf083+CP0d+mfQfl9T5ep6FV59e1eO KoLzd/0Lv/iO9/xP+i/09yX699Y5ery4Lx5U/wAimKvVcVeW+Sv+hfP8TWf+Ev0Z/iD959S+rcvV /un9TjX/AIq5V9sVepYq7FUs8zf4f/QF/wD4i9H9Cek31/6zT0vS78q/51xViX5c/wDKmP0ndf4D +ofpD0P9K+pcuXo8x9qvblTFWPr/ANCy/pkf8cj9K/Wf2+fP6x6n7XL9rn1rhV7BgV2KpB55/wAG f4cn/wAY/Vv0Fzj9b65/d8+Y9P3ry8MVYx5B/wCVIfpK6/wX+j/rv1Zvrv1XnT6tyHL1eXw8K064 qmXlj/lUP6ZH+G/0P+luL+j9T9D1OG3P0OP7HTl6e3jir//Z uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 841 0 obj<> endobj 842 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-21T10:30:56-04:00 2009-07-21T10:30:56-04:00 2009-07-21T10:30:56-04:00 256 48 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAMAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9QalqmmaXZve6ndw2NlF T1Lm5kSGJeRoOTuVUVJp1xVQbzH5eWxXUG1S0Fg/qcLszxCE+irPJSTlx+BUYtvsAa9MVR6srKGU hlYVBG4IOKpBaeb/AC3Hbxwpcu/oqIm4QzSUZBxZS0aMvJTs1DscKo7TvMWj6jcm2tZy1wEMnpPH JExQEKWUSKlQCwBp0qMCpliqT3Ov6Npt5NBdTMlxK/P0lR5WoscY5cY1chdxue+KrV85eXTJGhuW jMrpEjSwzxqXkYIi8nRVHJmAFT1xVOsVS/WtS07TYra7v5fRhWdUV6E1kkVkRaAFiWLUAG9aYqhP 8ZeX/wDf03/SNc/9U8aVNbK9tb20iu7WQTW8yh4pF6EH59PkcVa1Dh9QufUrw9J+fHrTia0riqVL 518tuoaO5eRDuskcFw6MPFWWMqwPYg40qO0zXNL1NpkspvUkg4+tGyPG6h68SVkCtRuJoadsVR2K pH/ifQLKWWzkuH9eOSRpY0iklK85XPxekrgV3oDvTFVa181aFdXUVpFcMJ5yVhSSKaLmyqXKqZEU E8VJp7Yqm2KpZq2r6Xpl1ayX0piaZZY4AFZyx+BmAVAzE0Wuw6VxVDSedvLccbSSXEiRoCzu1tcg ADckkx7AY0qdxyJIiyRsHRwGR1NQQdwQRiqE1i6s7TT5Lq8kENrbtHLNMSAqKkisWYnoopU+2KoA ec/LxFRNNT/mGuf+qeNKmOm6pYalA09lL6saOY32ZWVwASrKwVlNCDuMVRWKpDB5s8vW8Mdt9Ydm gREcJDNLxPBTxZo0ZeQBFRXCqLsPMui392LO2uCbpkaVYZI5ImZEKhmX1FTlxLrWnjgVM8VSjUNf 0bTNU9G8nZLmeBXjiVHkZo43YFgsas1FLipO24xVYPOXl3kqtcvHzZUDSQTxoCxCiruiqu56k40q dYqlPmTRbrVLe1NndJaX1jcpd2k00RuIeaKyESQrJAXUrI3RxQ0PbFWFt+UeozaRb6Vda3A1vYX0 uqafJDYGB1u5fWkDSqtx6MiLPMH9MRqpA496hVl2pap5hWKa1sNInkvCvpwagzWq2gkYUErIbgzc FJqV4cu2Ko3QNPg07RbKzhb1EiiUGbqZGI5PIx7tIxLMe5OKofzDYXcq2uoaenqajpsolhiBCmWJ /gng5MVX44zVamnMKT0xVZ+n9WrT/DWpfP1NO/7LMVWeWrW9a41LVNSjEOoXswRbfkrtBawilvCz KWXl8bStxJHJzvTFUz1TTbXU9NudOu1LW13G0UoBo1HFKqezDqD2OKpRZat5jtbSK2vtEvL67gHp S3lu9iIpyh4iZRJcxOvMDkVKinTFVF4tV1fzBplxe2Umm6ZprPLFb3LwPJcXbxuiMBbyTqFhj5H4 juWr+zirJ8VY7CuqaJf30Vrpk+oaZdyfW7b6s9sphlmJNxGVuJoPhaT96CK7u3SgxVQ1u/8AMOp6 XNYW2k3elG6X07jULmWz4wQH++YfV7iaTnwqEouzEHtirJoIIYII4IUEcMShIo1FFVVFFUDwAxVJ tZsb2DVrTXNOt2uZ4ka1vrSNo1ee2f4l4mVo05wy/EvJh8LOOpxVv9P6tvTy1qPt+806h/6fMVd5 R065s9LeW+KPqt/PLdak8Z5KJ3bj6atQVWFEWJfZRiqJ8x6Q+q6TNawyCC8UrNY3J39K5hYSQybb kB1HId1qO+KoSHzBrnox+v5ZvxMVHqiOXT2QNT4uLNdKSK9DQfLFVPTodRvfMZ1XULdrGOG3e206 xmaJ5QGaN552MLyoOR4oByqAv+UcVZCQCCCKg7EHFWMaUdX8v2z6RHpF1qNjaOy6ZcW0loALU0aO FhPPAwMNTENqFVU1qTiqnrB1jXfqeny6ZPpmmG5il1OW7e2YSxROGW3Rbeadv3snHlUU41HfFWV4 qx+9ttS0zzA+qafZyX1pqEIj1G0gaFJBPDQQzr68kKGsZMb/ABV2TwxVu617zAbaYWflq9F3wYW/ 1iWwWH1KfD6hjuncJX7XFSadBiqO8u6cmnaJaWol9dwnqT3PeaaU+pNMfeSRmc/PFUP5n0y7urW3 vNOUNqulzLdWSkhRJQFJYCx2AmiZk32DUb9nFWv0/qtaf4a1L5+pp3/ZZiqnoFrfPqmo6rqMfoXV 2sUdvZsUaS3tYmkEas0ZdKyMWkPFj1p+ziqcXtnbX1nPZ3SCW2uY2injPRkcFWH0g4qk2k3/AJgt YbfT9Q0u7u5YW9B9USS09KVFbilwwadJaslHcensagV2xVG675h0vQ7aK41FpQk8oghSCCe6leQo 0nFYrdJZD8EbMfh2AxVJpPzR8lJE8y3VxNCjxxerb2F9OjPMQqBGigcP8TKh414syqaMwBVZTHIs kayKCFcBgGUq1CK7qwDA+xGKrLMMLSAMgjYRrWMdFNB8P0Yqx3S4NY1mO51H9N3dpby3VxHaW1vH ZGNYYJWgRgZbeVz6np+pUt+1iqN/QGq/9TJqP/IvTv8AskxVSg8v6uJLivmHUVBkHFvT074h6a/F /vJ9H0Yqq/oDVf8AqZNR/wCRenf9kmKu/QGq/wDUyaj/AMi9O/7JMVUp/L+rmS3p5h1FgJDyb09O +Eem3xf7yfR9OKqv6A1X/qZNR/5F6d/2SYq79Aar/wBTJqP/ACL07/skxVSvPL+rm0nC+YdRkYxt SMx6dRjQ/D/vJ3xVTI1XSdd0tLjVbnULHUTNaNHcJarwuBH68ThoIYGpwgkU1NKkYqyPFXYqpWoY RtyQRn1JPhHgZGo3+y64qq4q7FVJg31uM8AV9OSsncGqUX6f4Yqq4q7FVK6DGNeKCQ+pH8J8BItW /wBj1xVVxV2KuxVSswwtIAyCNhGtYx0U0Hw/RiqrirsVUlDfW5DwAX046SdyavVfo/jiqrirsVSj zL5U0TzLbW1rrNut1aW0/wBZFtIqPG7+lJEBIrqwIAlLDuGAOKpDp35T6BYzTyrd3kr3C2SuZDbh j9QljmiLPHCjyEvAK+ozcQSqcAaYqyK+8s6Df3DXN5ZRzzsAGkataAUHfFUDY+TPKbWVuy6bGVaN CCwPKhUdaHrhtU8tLS2tLaK1tYlht4FCRRIKKqqKAAYFVcVULbh611xrX1Rzr0r6SdPopiqvirsV ULnh61ryrX1Twp0r6T9foriqvirsVWXEywQSTMCViRnIHUhRXFUPqekabqkCwahbpcwo4lRHFQHU EBh7ipxVL/8ABXlX/q2w/cf642rv8FeVf+rbD9x/rjaqNn5M8ptExXTYyPUlHxA1qJGB6Hp4YbVW /wAFeVf+rbD9x/rgtXf4K8q/9W2H7j/XG1UX8meU/rsS/o2PkY5CBQ8aBkrXfrvthtVb/BXlX/q2 w/cf64LV3+CvKv8A1bYfuP8AXG1UbzyZ5TWJS2mxgepEPhBrUyKB1PTxw2qt/gryr/1bYfuP9cFq 7/BXlX/q2w/cf642rv8ABXlX/q2w/cf642qjY+TPKbWVuy6bGVaNCCwPKhUdaHrhtVb/AAV5V/6t sP3H+uC1d/gryr/1bYfuP9cbVRTyZ5T+uyr+jY+QjjJFDxoWelN+u2+G1Vv8FeVf+rbD9x/rgtWx 5K8qjcabDX5H+uNq81sPLv5jpFF9ctdbkshaRR3lkusKLuXVFWXneQz/AF08LX4kBi9QVND6Xwnk qjE8s/mTqFjaWOrSX6XGmuwub621BrRL1rjVIpGki+rXKyiOKxEq8ZgpHIBASAcVZF5xk8r299bw 6lqCWs626hElvXhcxhmAYgyKW3B+I7nxwqkH1zyH/wBXmD/uJv8A9VsUO+ueQ/8Aq8wf9xN/+q2K u+ueQ/8Aq8wf9xN/+q2Ku+ueQ/8Aq8wf9xN/+q2Ku+ueQ/8Aq8wf9xN/+q2Ku+ueQ/8Aq8wf9xN/ +q2KsN8zWcd1rj3Oj+a47GxjSzWNE1HmzlppFuyoluTCOELq37yFiSBxI3qpSWC482zTagLnWbaC 3dLo2oGsW7t6kcbpAkfAxFI5nmWRS7s6+lRiOXxKqUd/5xFvJHJqyGWQIUmXUtPLRlLZ/XFDcIpD 3LL6Gx+BR6lDyqqmPmC51w2Ni2la5Ek5sLZ75I9UtDKt6j8J0Bmk9JvUWf1CRRf3NFpy3VSq11Dz smkXYm1CJtRcST24XV7IAepNbBYFdriQK6ILgjkrJQruacQq9O0+88nmwtjfaxbC9MSfWgmpuVEv Ec+P77pyrihX+ueQ/wDq8wf9xN/+q2Ku+ueQ/wDq8wf9xN/+q2Ku+ueQ/wDq8wf9xN/+q2Ku+ueQ /wDq8wf9xN/+q2Ku+ueQ/wDq8wf9xN/+q2KpbYanp8l/Mms6q6aOiH/Dsk900Mc0HrSCd1kEi+qV lHBSSf3YQj7VSqmX1zyH/wBXmD/uJv8A9VsVd9c8h/8AV5g/7ib/APVbFWDaiytrepyWuqt+jlkR olXWo1E8HOyLRW4N1WKT047teTenu4+LoyKVPSGZrk2uoao6WU19NdxztrUdYbBoJY4bKRo7symZ X9Niy8l/yyRUqt6w95beXNOXRtbWTU4dPX69E2sQF5L1pbfmPVuZJhURmcqR8ANOooMVSG7u/P8A NC8UGrwRySyzgz/payRI1+H0zGBJK7R8eYSpD8+LNRQVKqa+aLrzAkkn6B1tJLdoYjCf0nZCZZpI gHVxLKIyIpLerUO/rnjXgAqqCudQ85R6csFpfwvdRW8PKc6vaAPK0NsH4M88h+CZZy/NRVT8JrxI VepC88h/9XmCv/bTf/qtih31zyH/ANXmD/uJv/1WxVFaVdeSTqlmINWhknM8YiQai7ln5jiAvqnl U9qYq9LwJdirsVUrRWW0hV0EbiNQ0Y6KaCoHXpiqrirsVUoVYSXBZAoMgKsP2h6aip+nb6MVVcVd iqlMrGS3KoGAkJZj+yPTYVH07fTiqrirsVUrtWa0mVEEjmNgsZ6MaGgPTriqrirsVdiqlaqwjYMg Q+pIeI8DIxB7/aG+KquKuxVSZW+txsEBQRyAydwSUoPpofuxVVxV2KqV0rGNQqBz6kZ4nwEiknt9 kb4qq4q7FXYqpWistpCroI3Eahox0U0FQOvTFVXFXYqpKrfW5GKAIY4wJO5IL1H0VH34qq4q7FX/ 2Q== uuid:6B50541A0376DE11B5FD86E51C67BD21 uuid:6C50541A0376DE11B5FD86E51C67BD21 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 843 0 obj<> endobj 844 0 obj<> endobj 845 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 846 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 847 0 obj<>stream H‰¤WÛrI}×WÔc÷ƨ]÷˾-6& ‚!kc<¹m‹±$äõ°_¿'+«ZÝ`f™XPWVåõœÌêVânvöêJ‰»ÃLû.F\蜲SZJƒ_mRJbßÏng:ÔmëèÀt÷ìüàÅêa) ‰¢5JVÛ™³Âšr'­Pô•à™¶|—¼TyOÇNjÞ|±˜]j¡Äâv–È HÂåP_lfÊsx‘l±Ârñ4k‚nŸ gXoˆ 9m;ÐÅâ‚••#åëæéé©õ²sM÷Çúa½mçÏt«Ý¦ý°x3{¹@þEB/p4Zäh#Lü8^t'ã4f™£¥¸)âëæòuk»Ð\¾Ë?âU¿Åƒiúvn›ýò¸Û‹ûNå(†¼(ô`Œ˜«Në!—R<ÙÀ¶ÿÙÎCg›W­nThç½qâŸ÷í\yÈ×B%ÿ"´ä'%kÆÿSÓ°`å&»äˆ 'lݰ\ðh+W*–JÑV.=ì?X©š—/5;¿'€L³ü̿Ǟ÷Âþ½Tª á:}`ÀÉ™^±YëØØEhUUèw­ït³mÁñD ÅxZ×ïű%G÷y»ç»}_Ëõ|^‹™!‚÷.ˆ¹Fñ(ëýMl™ïRuV#MÝ%+œ'N©Bù³‹ÝêqÓoâìíypâÅÅùì· Éàõ4‰úOY¥bm¬©k]HhW°4-63‚@!õàMçÑÁP+ۉġ¡õ õ€€dçS”DtË:E¾Uò…?vãb§c»IžsóãÌ/Îu^º¿ê¥hý|2ϸRZMÜœ$Ϲù“d”FÆ¡ê›bÓLpH]Lî/àP–°FFG£“@• Úåi¯ÀUúu6±Mm¾+ Ù“}4ùБÂr*"5;œ!‰ï|H õ5ceµ.g"0% ;&NJ0øJÈ#f ,F=9c;ÂD¢`Ç}áL vâ)WÂù•øQöWç¿bò¼ÁÄø„‘¥“xJŠ·âúƒ7°ˆYl̤.E2ÄqYDÜjrªHFÑ÷¬ÄÙN¦\=c;íâ³’SFÎ`Ì;öV%ã˜,ÂIL&VTSä©\¶^$'ü j)Ís’SÜÐr™°ƒ¾dô™m†ã®’Ñß™àž“ŒrûÂóÒ’&n J×Ä\©L­˜¬·†aœSònÌWq÷‡q.6àÌ$;¼ÚXÇÂeg좟ä2øøŠxìt¼CÜ‘ßhÅio8ÂHOÑuTæ€rœîníI^‡²tyé”)ë(VY¦Yâù@*|Êk_í¡XÁS¬$¡œÖ‘ hÌZYÖ`,kmYØf0ìÃTºÆûSÑ(܇cíÈ.8+‹W­Ç„iÆ1y®‹3ìÁ›²¶CJ³¤¤]öKÖβCª'ˉXÊZÔc)³ ÚT)I&‚æav?Áü|É<üBéûÀ•ˆšmQØO*åv‰O$[J—Üdmü Q$Ú–jB‘hu™+©¢¸²Àá#!Kµ]^ã5>URñÔÓ¥*É›¾‘˜Ìgzù·“='©Z˜^î9׋‹Š—qó!ŠsÃ’ÜM¿D WªL¨ó:(öCSf•5èR%‰Ž.Ÿà2c­˜‚R«¼V°X7ìU)®£öìC&æ >‰†uá”±“¾d[-„RÅ“ã$ŠT*ÏQ¼…ÛI4Åô(SL<=®ÖÁ µb £ÙFÌèb]£—Òa ð_Q(ÍLiVŸ<€>]fŠ‹Qœb´ù†9eLÃÀ§Â¸è9o®æ¦W ëo¦îÃ\k¬½¡ÁkÖ`¼N'Ï“Füäà ­ÇQTÎÔ(+«Ny¸¡»9ÓÊËZ‰ÊÜS­ðõQ&WkëNÅ>-+URàªúÍio°‚ÑuVúÒ-¦Ì˜ÀiØ G*AÆRˆšTä×G|8•2”ÒÖÖÉ# ˜­³Q&.µ–L|mù½1Á¡u½¥ÒäDqb!Úðã( L‚•%A¬åÊ«M­Ö(ã‹‚+e3‰íãßhªžÖ§>a Qå„f(BiM[†”¯ z7Š!Dô¶ £ ÐûÎÔ^/#É&qªÆKmËþil—Á.Ë c¹l¸ÊôŠaG8ðº4‰U“ŒdµP±>ù¨l¨QT¶Ô(+›NiT¾ÕD K*]‡*¥l¡ÌrmܨÌu=n‘*a¨ª… å´#VxÓzùö|öÛììÕ•w‡Ù‹ÅììÒ %·3ú†Áù!Ï1…À­Xlð­p‡/))Q©Å «ÅÓ¬YÜ÷¢]|‚Ä𢗙X\Ìš«¯/ß¿çŃ%œ k¸‚am.i,²y݈åö¦¼h?,Þœlkaþ¤: 亹ȾZß¼/J#`Å ¤lõGw ûÛ=Û9 Ü|neóx<ˆå¾ÅÇ[jz±Ýž¥o²¦oçªsÍÝúpìëþ Å*àuÙÎÑ\M=*îúm¿_û¼¹Úm>®·Ëãn¿^><|m^é}Ó‘=_’œãÓÖz02-AnÊ9Ò“âh_ߊ#ª¾Úmo×wp&Q —¯/߉ÇCh‘r#ŽO;±ÞÞôŸ{Ð7ý–2QNÃs³ä¸Ë®xÚ¯°ú°[ý~ø¢Ôd7S à¥OÀç!¸‚½‚øŸB sÝ.ݘ÷å‘ýlWë<Ž,×½4Õ»÷âÄ¥YuÃDÿœŠü®†ËÁÒܦ$ ©²±C]kDÛP{`nåì¸óèÀöqó‘B1HVÇî–‡`àleÃѯ¾®ú—æûɧÑ>†ÿò^eËm#Ið]_·&D úà7[‡C³¾F–íÝGL@$%ÑÁCC>þ~³ª)kekb^D¡QÝèº2³îD¾‡ñ\ÛÙÖ¶4—¸ÿdŸæ´wwé{8Ø/K¨¢æK&d>ºšKÉ]óOúÐÐè¢÷9'o9'0rU×Óõ&šÕ̇—j5o €cA5³11E8$z¹åÏ Kˆ÷ìû”†$­e¯èïthjE¢ÔQkbK|èjµm( -C_ºÜÎæ›ˆë4ÓÜ­¬hä?•éHCßåµìBú£ XÆ©‰Ÿ5'ž¬×ðèlùi:ÞÌVËAØ÷¥’64–öÎ5£:GŸ‘ÌÐñ]]Rݒ昃!P­#1Y'€ÔxœËæ&ÉE¿Z"d‹¢®·XÂ!··«5ñŸ@¡¼"U¢ºý§òɳ&/.ëAjÖ¦]‡´#œØ³Ö 9€~<Y¾äsB€QÆËk = B§ô£cÒ! "“¥¢—“QŽ -$¹ð)@š\m ÊV*,˜3~P÷^vÿž?EìŠø%c¿A€éË3¡4©‹fé}Bó¥EQÕm¦_%L%~ýv°ot¾Èˆ›À  G§ož?Ml\§Ñ‡›)2ztDÄRËÜÑÃÉ: <)J -ž%0¢ç"þ”pdÿ‘ròˆr^µÄÀ4®¸/×\T© ¦ËŠ#eþl<9”’E ßËæº=^ŸSL(†ò¸ä[‰â¼]ËÚÒy¶™}\gHÇ!cT„Á=}†wÌ‚,ã÷p#Š z–Oº–mEpt¼øEjÔ·5P4€ÀWdÏçÔA”D‘Ä7 C®¹•©J)ôDMËh±šÈ–©ðÞ!œ û>Ï&M˜Aìc$q%‰îj2™XTs¡uÒ¡Q`X,pÚ´™»ÒÖN(™ N>ÝêH·rß0B–’D?aѱC#9DkÂæìÕo'Go¿3)åi1‚?"™ødyq|—pÚ=Y›ÎÃ=ÖÇõ4’x%#ŠóÊ”67ì·Èp”U#'¡‰ °}'ŽYÝÛU-θʕDÍÇÑà°z;ßÔO˜j@r‘,®bC*S¯%­RG6è}/£ð[Á*žsÒ/g›Ÿ:qµʬ¶—½“duç ÙŠÖŒ…­*à ³]q¸_¾RžV ùq5oçÍüJ¸y;¢“ì›M «M%œÝL¦Tþ>–'k`¬ŒÕcG µ¢O(f •(D5 ÉcJâ┊™ëìŠ7ˆ`eP Éá:_dç¤?hð­vN7eA!oVµÇ2ºüÖ4ë6¬­)&¤hDýÌ–›éõšÙ]¾@åÌnç¡ÑÔ¥Î{B±­uÓ "s¼¥¿i|Цœ¬¯, ªÎ:”a€ÑqÊïb¾QE€Ê5×êmBÀV5&|N„<É[’HÕò[‡7|µÝ>±-¦z¹ k‡dŒˆ{”1Œ¡LàÐ.Ÿ§L T 4OÈÆ•Ð9©’øR†„ç²ÙÜŠ<šbƒí:úñ‹Dzéô:øá3šj £ èÞšiØÇ ®¹¢D•išy…²0 ¬–Ó W» <¶¡Jþrk×£¦ötšÝ¡at;•rŸ› œ¹"1Ý&”º‰ÈFäʨsËÒ€j€êœB*5Ù©ª?â§ÑÛÕa3Tr5ˆdk5ú0à*µ4?6x4#΀®¬ëÍd@’%uÍe ÖEjµÚ+ÂŽTƒH×Ûj]-7ë' BJjEÄy\ à8O£S꤯Ò?¡üÅO´qÀ(em£:”5iý¯š± ÃÅò%)Ú*?T;.~IšŠcrŽ©ôÊ #ÃT„_ƒCüåÿÏôh¸…ȨªáxŽæ|zà_Ün¾%JQ¦óI6^±ð¤²LÜvG"DR7͉xM%¿½Îvçí—†.Smóã?´o}̼0t¡Ó®—IŽØUs¹ó—Õv>éËZ§\¾ÇëºÅ«æÀKÆšÛ’&U $8púyº”ú_m¯oºNpÔ ›­´­ìÄÓžJ”!¸$̺c¦à"–¿Ûˆ»Ù1Û “LÌž2äi TѵTšn£àC¥ýgtŽÊe1¯q©‹¤$4©(+ ÷ëðv*Ï(.MÕhŒ *âÄk1ØûusldåňyE‡Un_Ü9ƨ÷"ÒBoÃ$\è%ÒN1RÕl¥×Ütº²#~ÔöIø –úÔ*×ãǬk‚¦ó߆ÂqX*éª%b?‰Žeñ™ß¾ÙkI)Ea¦[a£mx¬åÆY¹šKdói8$z.¿S ½y'Ä·ì[É>ÚŽV8yxrÁéV9v‘ÏŠÚ~qàŠ¡yœ‡G]bdÓx ÖíóÕÁ³‹®´\š•^Òãâ-2ƒÄkCçƒ6=!Øâà×£ÚGã:ʘS~5ǿΖQ=^RÛ¶äù*T9ù4:^-ªÙ¥-©3ΧդY Ný…4•8·ä{ 3ïËLn5¦ÿ —ý„9}‰lô2:øõù[]×h Í"/N@rGÖä)•ÕˆâR_¸ni~ðöà÷½¹O=>e}™*Ž&U¦AýY7ͼgcÓÌ©ÁŠìBT¡°îGS¡áŠ ÐzÐRVR0ãçž¼"¢û9ß;gIß §úΆ%q¶½§õ©q¾ïE½é¢ï‹…<Ëž‡øf‘Øœ?œ;>{Œkï%²AGyT%¢¿$®©ÕY¨È䈫£Ä©Ü5Vp†¦‹w6pº,+²ëçÐÆ Ê&ÏQgîJÝÓÄdñÑ¿Q¼Ú!´Š!¶ÄÓ÷2,íxi‹T‰aã%żT}ŸÒÌ›ÁŠìzˆ—D‰?âåëÄeñû“óÓ¯ÉÙñ5C÷!FéË=eÔdHdfº¥àk 鞣ð ìÆà¼¢HérE›9ö¬µ÷…¬È®‡”+œÎKÏÀŸ¾{ñâçëÕ"4ìõ¼sÀ„"W»Þ9h mÞ܆èYØžwMãËî®Æ;Œ®tÁ»,‡"p “œ±Š½óZ‹w'/ß\ü÷cXE!pkÀƒAwµKâžuÐ&¾ÌéÔ‚g Zðá†agƒŽÒv°"»îw¯,Lɰ ÉÆÚ'>?~vÙS6”\—½°´“=Kdš÷³gAà®ìçÊ”©·¶¿vÝç^™Zo,ãrnI¦”¾~wñóÞ9Ì8®¥®ÐÐfKÿ‘/XDH `á¬oWæí )‰²,i]û+ݮѱB©¸>VóYeª;“ªw7qð~ÿ^øc¥W Ö6Ë•ÀØ»WÇ †u‘lñº‹ä¯ÿ±H¶|ÐD²¥ƒÎ¤¡ƒÝM÷FÒÀU<%BÈrá}RdñÓgÇb½Àí$VlQÖË|Ù-u¬gQ³e^0„hÈí& ¬,Ȧ‡L18ññÍy¢³øõó?™þ†jéül«eèç?V-m›jiÃØ™„0îí4 JSÌ=Ô¤ß ¤°ÏF:2DÒ%èåár | Ý€š¾8ï/àó|håC¼{KTåÐ  «†FÀG­†F¸²²+¤ç¬õ–ŠT?´BpìðZhë†×r–[a`…AnÇH¥ºÔ#‹ÈÌÀ }DZå4© ­2î‡Vh ›­P¹®ZAørhEd8024Ö0¦<‡ /oü^LÝ‹)ht7¦FíÅ”ëÌ—KoW …÷þ³” H½ïGwMœÚ¤p\d‘•ë8ZÙ.b·ýûýxg$ ¯»u Èb,†w†÷<<ì0uõS—{L]Sj‡¦4N{1Ê¡ åEõ;<­Ÿ½žÉÞcJkõ˜Ò@=¦ôh‡©õ˜Ò=¦VêT„©«ltªHk–Ab9ýEÃTñ:,VVßЈÎÕhvɬ ÂUE¡[CFA{å•3I{AH6k/¸ÈíÅ$ñU{YHÃj/i¨\Æ‚+ µxíE¡Ö¨½ \µ—ïA]Ž^Ô½5äÚ2¨A”w*´ßƒŠ€êAÍîTµXUBíAMP‹öJ+ͺ¢ï{LáÓ’uðMákL…P;Lc=À4jˆ¹mÊ+®:´àSç5Zði —éÌd )„*šh¢Ã’ÉY5Zj4:ÕÈ2«Ã‚O³×u Ÿ¢ß”„Z£®S•i¦½óScê·+ËÌ$"[ïݦj‡)|ê¼N5|Úc ¡ö˜ºx€)„Úc ¡º¢ëBí1…Pa/åeK)|Úc Ÿö˜B¨=¦j)„Úc*„Úa*„ÚajëBMV„ê»èaÔª'K€Q£ž,Á0tƒ‚‹Í ¨â"¦•×ÏWâU{хʉ¡k¬vbèêÉâ!T2©¼øÃx—‡PSˆÚ‹©³ö «’Šöò+¸Q{Q¨:vø4•kŸv˜ÊfØaê!Tä†öŠ˜B¨9&íå0…Pe¹™{A¨¦ði)|Z¬›Þ# ³‡ÈÛ‹ë#/,[ÜŒàVÆJ¢¾­ÀHm~¾<úø”]EâÈÎM –-bÊDòLew‘C& ßc-I>-Ï”²<¡îÚ¢uä-3KfÑ¢oÿ{´¢4¬UÑö&‰V~wÑÞ» ŸI¤ðm:g¡©ˆJîe¹=Ùí^‹“7?ŸŸý*ûÌC÷—lID 2ˆ2µÌµVóÓýïÈÃɤêœ#ùDô~ñüüöâüÃå‡áÙëÍÝr}=¼|õòÍðÓç㥋õÕúnýç1ü—·m[Ò2Š—0°a1ÎN¸Ø«×r/305Íhz÷bºé3Å"ŠX UzLä‹È±i,yj˜ 4ÎX¾-óÆè Ëühü£¢!ck’P SC"ÊùÛç¯ï’ãí4²iÝÛ›èëXøm¡éÈr9Õ“gE(qñ—ÐQ"6è+׿Ð׈5@V|±Ñ~‹T¢Ð[–¡ c>Xöè[@xÔiüçceº-…Y¶Ø;= $ÓÕ*@xƒhîZ¿ ôR6a+ 7¡ ´,Q¨óA<ê3Š&Í…nAõ×·­[ÆGºšžy¿øåØ™ÅææB¿ §ßÿØZîß4t4ÝX¶•$LÚd”¡'+`EÄ à‘dôsi‚! ‘íŽ$Ö4qqt`¢™íe:ÃX–Ÿ‰±Ô–Žžæ-"¡p¤)ã¡í¢Ì£™63Ó´9`ªÒv4¹¶«ˆâ‰vÜ^„¯šS°Û…fœå˜ª)ã.™Æ°Ek"w¦ÍÞ$K•«íí” Ô´2M÷‰ÈÂ8˜^L’ô8"éÅ`|;¶AäRQHŽ–ÈœËxȦ JT†ÚúáàÓ³›ñɶ¡HȰâhqm5Ü㠤ň¤˜}ò{Ónqíûk[¯dpÕíM›¹I e Lû±™ö¦*Il^ýçAd)a§Þ…Ô,IÇ@ý˜0EÚTD¨u%¢föªØ„lVDåÅb' j±÷G:™¾à… b%+CjOÂcùËÏ8ÖÉxäBÞûvx-xaY4L•·°iº–H´³BÄÓѼ§õÕ¾æw! 3=a²F–ŠT[÷²JxÉIäÃBý[Ëøn”í Z¦¼Më±ÈXÄ)/h wr °êÝþ÷t`sôñaN®kœ˜Ód2Þ:%AÜRãÆÕÆœ‹·Ï^½8=}ºdh³i,\7†<]lkÙ_¬Ðc1HnºZ(2…·…´óaÔ%77L‡¾^tt‰¼5[“ë¨ë¹Fov}«62t(>¡Ù‘|”ü:†+ïÂ"(ÅfѧZ O@JÔudmm«‰kÛ×΢D¿Ý'Q•ìfqÊÈÎÝÇÒø×>ÎþÔSã ,•É»yœ;“ŽÓEQ]iŽg¤ ™3°™Ñ"žBñflódÚà%zSv²Mv§Ì^‰¨l(é‚5¶–ÍÎâ„ÏÛ,Þž:´ìO½®¿y—ˆ¶c]X: f}j"+úδٛ<™·‹ÝÁ{LûƒØ$¢Ô øåÁY*ã£ëáûÅ7ŸÖÃÇco7Ÿ‡7¿ß­o®Ï7ãÚ%‹ˆÏä"&P;gqôåæüÓíwÇÑ,†wÓîvw9/…Ó'7Wçëë­–?¬³‡LT‰@ô—r”‘ú¿Lî=4ÁDåcN˜áW„k€™EÖûý öÀv“e¡hY öѬ™ÿ‡S—\‰ZéÏòuzyþaÐ)ú[€4HBó endstream endobj 848 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 849 0 obj<> endobj 850 0 obj<> endobj 851 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 852 0 obj<> endobj 853 0 obj<> endobj 854 0 obj<> endobj 855 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 856 0 obj<>stream H‰ìWKo9¾ëWðØ½ˆÚ|?ö¶qâ ’`ÆÌ!ÈÁ‘e[-e,y=?¿b‘Ý”­d3sØÓ€լ.Ö㫯Šl%®g'oΕ¸ÞÍ´bÁ…Áy!¥¥4øÕ&¥$îW³«™õµu¤pøöätçÅra) ‰¢5Jì–›™³"X7à…“V(zÈ» ·æ¹Ñ+?$/U~§ã 5¿|¹˜œi¡Äâj–È‘HÂe l_ÜÍ$6Ïá]/Ë=!æÅãìSwö¶Ÿ»ÁwgùW¼Ymè)u«[RwßÏ~.xµß–µèýº{ZùnPýçÅ;a8ˆ1uüqºÚøˆÅ+ŽD¹ ñøøØ{9¸nøs}»Îþ]÷ç°ÜÞe³¯@¢(P’àT£š6ÂÎB(ÇP8xï‚é_§¨çÎ1#æjÐz 5‘2ï‹ðooƒœèç„Ä¿¾E®Ià»[QTRp»BóR*Y°ªá¢¤1=X?jÐÊ T¬»\,£kÙ(.ÛÙGñÛ®w(ŒRÝ5|ëÁ f®ø·¹DºÓmïà{³¿ïè¶TDÓÝVTÿ­Ö"SÑ;À)\@îið™t¿ÿCl*ï(é…CªBÖ¼Ú.îV›½8yв¼|u:û¥a=4¹aPj e•Š™ è0MV¼ƒÇ ¨A¦ îfpbAðfQ‰Û™KC4 ÖÛqË-‚‘ƒOQ+P\ëùUÉ×^ûŽ «lãbÔ¬eAMZ•Ý%é|YWû7é ¬u͸zŸÆ5o0&’ÜH¨4·³›Y[ž80–Ôc)`*Ý3 Ç~±¬DÓˆ%(D^¶àõÁÒ¦qC‘˜¢oŠÀAIU£½Y_JFCùÀ!iA¬c]kSvÔùâ´/ɧ¨žH¼b?ÐÐSI»K•ÛØS ư†!pßF¸¸cAâ£×'%”a&†¼N®8*Õ£«9­­ÊªrŠËüÓŽg£†¹RnVÐŒˆ-ƒC+æŸ7j\>y K¦Ù@…|r@g^Öj “ª^´M²M~ Çz›B«…!Þá[H†#p‘‹!½;XkêŽ"1…™®¶y°4mª´°e–eÄ%JW˜k Ñ’‰T¨•JÜGwß %7¨ÃÙç:1ÊXÇÐÔ×¼ƒ+5i˜p`€ ÝxPEArÙ˜'5¾Ê£)ƒ0õ³b¦1+…ªHHÕÀˆÏ¹˜§u-Ä$áRU µ”ÝÀJ¡¼W¥=|™žQêb¡¤¥9Ȩ©]1ÁSÀàž“°Œ¬. yƒöã<Ô ´ÑŒœ ¬aÜaih]Z$©d4§Ò "ËBÊ2EòÙxV7Y¦r©(ÐGœxG9¿1µs´.§©É ¸ÃbéI_fɬ_/P^֎⦷Q7)`„š2'‰9QzNóR•vaŒLžÔåœ,wˆz=Hõ®­Kƒs Áuœ,p¥[L…D¥J±’iÊ¢Ò­æYéXq(|€ÂU¨@Ëø¶>L@OË©EªÄýRY§Å“~Xâbõúý)>½NÞœ+q½›½\ÌNÎ`W,®f 7Üï¥È4$ÐÆt!^Üáê!)qÑ\,±Z<κßoVÑ/¾ÂBb šFÙX¼ÊÚ˜÷ÐþÔ½ýðîõé¢÷ÝùË·‹×¿þÚ^¼›üº–™f—É>ð„ áèS'Ö=În×ÏÕ`;q±ÃÒw»Õý~u)`v»âñ¾Çw[·Þ¯ÄöÛ Ï¶»ïçøë.ö¼Ûãk¦Û¼€26íÖ›ë,¾eeñe½ûî{…ØÊ¶{Ú³Þåÿ›¯¬·Üóï%¦Øápn‘¹ÂGŽF§Ýma+(É‚ }ààÖ5b®09„ ~XQ´šÀxø,î{m«ô⪎ ¹xKx]ÑFáÛj¹¾Z/HÄu=HC;ºmÖÊæ¨¹¦¯ŽÄÌŒjê‰.F®sz ºt×ûÁuìfn¨Kl|R݇*o㌠ç–8ã©ö¶Öž}ÑÃþ…¸Ü>|¹]åâÂ¥êV÷¹¬e…º¢¨TÑ%“ *(c&ØSXÀ“ÇŠx ˆ¶ˆ9ýÄí:Ï\Ÿ5(+.úyWøõøAŽô¡G\įïöýŠ7«FoË×—|‘Xn«iÞ<œç$)ꀫfÅ-L|ØîWÿdL¹¸ñ­í?„WÛrÛÈ}×WÌ#i`.¸øÍºxË©Úu")q\µEQˆ5pPŒóÉçt÷à&ùòBƒ™ž™îÓ§O+hÒµ³*Ñ,ÙØË±nkümoŠ®è ¶¼4!A»—±î(ƒ‡¹²üTqjzü굎ÜôýÇ77ï~UûͶå+`ŽžÃ× F:@îÝÝ©hŸöÈÙñ(/Ï’ú‰­_³A£Ü˜¹E7Zô%ëò™ $+Hе½ÛmñjC÷k Êœ‡ô:‰ðDhXOö³£.™rà3fAß)VOØ`ð€?¦õ×F>mù(iÐ2óspõñwa't€@yöe¢Lóô9T§²ª(í?*J2¨Ø Ô?Œº/Ôæ—̇T$¶>Vô̱ʼu¸€!üçœu8ÿrÚ®©dŽw*€&糃à¨ÑEcÄ?°T¶ê€4qö3ìA'ÇS¾ßs¨éŸø5¨ŽE‚ÌMà#u[ÐÑ‚ïr"ÊÁ Ô|çAõß,°ÿœŠÑ¡º×݆`Ï%Ïjx°ewýo$Ê”ºÁÙ.ÑØ†ÄCò*MX,ÞTê¡è7eÕ‘ù:,XÏäüüý¢ )èŒ;©± ›LYyQÐI©J?—M»ì’^wg& &§D'ü’IàŸ˜†JÿžŠŠQO4ÏåCÑA2øw*µ”þDõà§‘™1ã¬ßÅ8¿#jqgn2nª'³&6sF$õiˆ2J AÚ–ªi%³ ©Þ"aŽ,븥—mw.M‚ÿH9Èÿ#ªç»<±¥RÌv¤(‡–«XwÎí’-æj¸ÈK 6²Ëp›}H—…oºNÜÁš¼KÊRw­Þù÷U³ý¢ˆ›6†cLäë*q†a;ÆËkć²ëÛò^ðj&]¢â(÷‡ªØuOe(G&Q-!݇ۡáÓ,­Y¡ €=q¨ÜsØù› ¨b7f1ó‡ºéëF²J¬úç±l%‰Š‡ÑNÊÀ8æ(ã­€)â’r(Ù_Û ÿÝ‹5…Ën SÙ„/›«kV¶ŠØÛ›å݆ÍUj~¼!_ûî/óºé•Sù}öVmº¯õvÇ–´hc”ŽæØù»©Ågú0”h_tA`Ög9?Å&Y#ѵ… ÓįRÝ‹úw ͎¼ ›WBŸƒëzsO=˜ ãeðÖO+ÿÃMX r­ÕG¾ 붨XÍFZ´þt{7À=ÖwQŠ^ ¿À!AŠä6Iv.ÿT£‰C©fä" xâ–ÿ͸°mø!õÂ< †wT.:@-n‡=ÓÃ;å9ç éÏÁR‰Âæ$”_ÈDÐé-¢x·ôA,9ñûXÅ´/"ðߊbCôw”N g8 ò¦‹ SA·é€!â¸&ˆ,D$¥¨üDOSÎËtâ ™Pp-êEk‰mµ©dQEŒX÷Eëçž+©¬Ê(ÉM0¼¾6ÿTŠ ¿´©N–¼´õä€6Õ&éxêD‡V)1cBë™P:T+Ù—q‡º–¦ò}æ¬M†¯^xŽL&aæT%‹¥¯Þ‘>ùàYÀ¾ qÝw ­7UõUõÍ2ÓGYë‰Î Ä·_ŒMæGlw*û*6ÛœoüÐFåssÀCÛJoÃ(ø¢øpÌ6ØSq̘ƒ3ÈUõØ µ1Ö‰›‘ü±ØC¬Up‚ ¬÷«¹¯œø/;‘ØL|¥|­eˆ¨74)Gåä8V__òû–ÔéÔ„jBà©ÍTôø„/ã=JÈK/¾GAsªU×ozô¬w»2ôÈŠYš¢¶3…ÞÃY %³&T5{{’O[:ã¼9QÔH+.—PЇÁÔ¡àN©/÷e-í5¸_h‡²ƒàe®„Á…iðǰÇIúU 9TÆ»9Thcm§=7åƒzªJ.¹ ¸©%jWˆ?¸áÎ B5“·Û°xK©pxE8h”†üDœ;œÒ¾¨¾±iöû¦~Ã%óCýP xªqY½„Ü€Âà—·2r1z8WW¤+p+ÆQ7r$íX*õbóA&ojÿv»+ý$f¨2w?«.±A3©.¯e<ÑI–q;ˆ*ghíp˜UNÈñåcøßt;õVüÁé(Ô¡ {qP £”‰;(P” È=Ö†.x,™9jį߅)mÃ3žI‹Z4$€TÑùÔÍIŸIwŠêÍ ôš¶—-è[ë­?á뉹Ovm©Šó¨ÞÑÌC¨Å²ìKj7†¯ýDYÕÉzÕÉFù+(CD]†nÖŠ/^æóp_)´^_IVÂ3¬, Áç¤ÁXñpÈÇñA ÔY­_ö`ó~£#â~#Ú‰¹ÚZÜ7p²Úöù®ºò N„?r›~q3˃‡‚Ýz?S«¥"@3”§ÉKAÜ\ý~ý[x÷Ç\³^èNÝ$³²öã’%ƒÚX[¦ßW¿ãâØd‘†àèW ®òw'ƒì6þÁ·+ÃÐcÅ‘ˆÄ0ÀÇÀç 0Ãòܯ&|ï½ý×0Ž©sD7ü‰Œ­÷¥¼4"]NdE¦–òaf—@¢Ä £…‡Öo7œv=( @Æš×JÂLÎ5S_Ú<{0ð6z(ˆåáPÎ߈4ºUëÒì›á>Ýü Þ«¥T°Ùâ;ÞÁ§ëŸÊè‰ôqеãün¹»íEç¤âã¹* þgí˜ôL4øÈÚä(¬¹%Ú9ŒŒ”@}Rd’—‘ 6s;¶ž¸Ç>› p-÷ªÕX¬èÁYåòx$Dï1xx¢¹«/¦ÿZ݈‚§Ó2—Þ…yJ…2ŒÚ'ÿ­÷~ [CX©÷œâ¥oždÒѯiÃʆÜT¬B¢VíG‡IöµF ª­ábëo`§8O—t(³ÒãéHº„O»âíoýNz åsêÉF›Æ ªë–YÞ #»åh~¨ÿ(¶¬¸¾$Ü×mx ¸ôSÛùÇs hþY¶¾Õ¢áÈŸ«‹~Y%"«Þÿí—w|Öë;ŽYš­“²/D¤<4ºœ¸-ÎÏÞ\5Û#isõæ×K0ÞÅÕåÙŸg…Ý@™¸,];äÅŠWbéJÖjZL¦s3ÎÙŸ}R5{#1(î%RÇÃÃíåogZý9ÞNêìÍ/·Z=ug¡w.W.…œÈsX2礇‘ #h l»EÆÑˆK%f1’¯ãÔÌW ;¡óçó‘j’à>ÙÉHÅÙHŽóèùyl„V!™hƒïÌì¸Á:žG[ÄÓÎìj¸5qé|$¹$é|QŠ„‰–#¸g¶0œù´^¼Àažxáõê,¶hš@ Ó bG.žÏq€¨™ß!Nä([Œ$ñb$Ÿ]¼Cú™åH¶¶ÙÜŠŽ-qÏl€„Clàò×aÙcIhç·(]©Ó3ËVC>'óÍ-@§Ù|•Íà黬ƒ¸Î pN4ŽEâåz±ÒF§ó[XlšêE ô:…˜pIÄ)†@$Ø‹€âG0@qšœŒ|BŠ¿A¥(Ò öaŽAh¨0Ov^îåè|mº8!üÍoá@y:‡v^=÷˜3è,´]¤êZËŽ:Á^Ž=Gª³Û³¿Äpq7Õ¦l –zϨm2 Y€kྔävу|Ÿ„¨1á:f¾¡ À™Ñ:sUÁéßR(h]Œôå°8Í\Dù2É3ŒPh ¸˜L2ÆÏ±õ†C7Øù?ñeÓ›·q…ѽ~…–n¿!g†Cr›È .`)ë.xQTÝd‘þü>Cò9wøÊª¥à…¬£Ëù¸œ3¼÷)aœ/ß½ê*åÄü饥«¥Ý?yîq;iCSž±Ó K`žODgo«"<11›ÇéÈõ•ˆ·]Àv Ÿž¾vÉ-ÛÝ]ÔÿŒºH[ñƒ·5(wà ÎÚõêõ5Ñ>´[5v¨UÏù´¦µô[>BØ£tä:OJù[NÿL“¾WË´N¯Jx{tܳ>¾$ëW;ж[MÑjØ¥®¼YPOtyµÚ$öí˜Ø¦ÇéÈu¶ZÞßtÏe^ìªrúõô’¤_­^{V¹5Ö^æ¬naÉõD´(}UbõÄÄ=N'™jIÓ<“ô¬Jf­e}MÒßÝííÜxô©*Óѧ¾Ë/x×[R¡:h¬½äÔ9jŠH„cØ6ãtä:}zo»€o­¿Òöu|Å+)/Hü”Š®ÅÔ}¾s+Çù»çÚÇd=¥N·‹ÉóešÆSŒž*Ë)FÍT=¥Poyª§&]Bó)…­›O)Ýq§ê}ë)…cRswJá {n8¥Pï»5 }ŒžR³ÙÇè$ä>‡eÕS¹Ïak-ÓiïeÕS§wQ]·µÏaYôT-§˜QÞö!º›öcdºÔu:Å衵Oa©j!‡>…¥ªWæSL֥ѧ°¨W•}Ì4ëþ;­gÒS¹žbÔ¬Mýñ)EOM} K»ùêiœ²·x]L^.Ór'ë©ÓÖõeËë)ƒº§õ”ÁTu™ŸBt™ §a’.tfÔCiËàªË¢]á:×!¸n®Cp‚ë&á:×!¸n‚ë\‡àºI¸Áu®›„ë\‡à:×MÂu®CpÝ$\‡à:×MÂu®Cp‚ëé\‡à:×MÂu®CìºA¸Áu®›„ë\‡àºI¸Áu®CpÝ$\‡à:×MÂuˆ]àºI¸±ë\‡àº ®'­bi®±ëAì:׃Øõ v‚ëAìz»±ëìz»Áõ v=ˆ]‡àz»Ä®±ë\b׃Øu®±ëAì:׃Øõ v=ˆ]7 ׃Øõ v‚ëAìzÃu®±ëAì:׃Øõ v‚ëAìz»Ä®Cp=ˆ]b×!¸äp=€]‡àzÃõv=ˆ]‡„ëzkëñÂu®CpÝ$\‡à:×MÂu®CpÝ׸Áu“p‚ë\7 ×!¸Áu®›„ë\‡àºI¸Áu®›„ë\‡à:×Ò¹Áu®›„ë\‡Øuƒp‚ë\7 ×!¸Áu“p‚ë\‡àºI¸Áu®›„ë»Àu“pb׸Áu\WF.k¯:À¦,ºž¬9À– 9Àެ¸ çw °ßè °ÝËm€Û« °Ù‹m€×k °ÕH °Ó+m€Ñ °Ïë|€°`™vÙ•6pˆìßñ`¶Ø‰v`… 0`ö`} °`yv×u‡¹ünq ðphËï¶`i ÂÙ:oë餅`-mMÂ[âB0×$Ô…à.yM°€¾ü5 ! Aa“p‚Ä,† ±Ix Ad&›„Ê\† ³IØ Ag>Cú Ñ”†à´IH Ájˆµ6¯!ˆ Ál“P‚Ûä6 »!è Áo‚›„á‡à¸IH±å47 Ï!€éT7Áõ2Ž—AG?\b׃Øu®±ëAì:׃Øõ vbרõ v‚ëAìz»Áõ v=ˆ]b×!¸Ä®±ë\b׃Øu®±ëAìz»n®±ëAì:׃Øõ ‡ë\b׃Øu®±ëAì:׃Øõ v=ˆ]‡àz»Ä®Cp=Èáz»Áõ ‡ëìz» ×§¢|½ë\‡àºI¸Áu®›„ë»~ß1l7Áv¶C°Ý$l‡`;ÛMÂv¶C°‚í&a;Û!Øn¶C°‚í&a;Û!ØÁöƒt¶C°‚í&a;Û!¶Ý l‡`;ÛMÂv¶C°Ý$l‡`;Û!Øn¶C°‚í&a;ͰÝ$l‡Øv¶C°Ý$l_µöÔWñA°‚í&a;Û!Øn¶Cø²CpÝ׸Áu“p‚ë\7 ×!¸Áu®›„ë\‡àºI¸Áu®›„ë\‡à:×Ò¹Áu®›„ë\‡Øuƒp‚ë\7 ×!¸Áu“p‚ë\‡àºI¸Áu®›„ë»Àu“pb׸Áu\¿¿Ù×õûíÍX’RV··Tkr\uæµ “ß$–1'½í¬3›72êDm ¦½Ô.´£ê¢;Öƒ”´Wzki ›’.¡6ÌAÚÂÆ2îë™5çÜ¢’V8L¢Ù•è4Îz¹jOÒŽ½íº5†yJæËw±û?;[ºšíþú±6r½äeìGn¹9-)éòMuíær#3LG®¨½áì¿Ýüðp#ŸÓRoýÓ‡!ߦ:è+RÛ£:WºÚnu y_ò­þ3jSüç·_ÿ³ýyo~½yw7üíá_7ÄI¿Üv?KË}‹¿Ú€v½¬ºÕú·™åÒ8­=Ƀ®ˆ $öèa:r•ª–ó·›ý™œçA_î5-¯Éùû>éã ’~µƒGÝEËÜoRwwÓ‰è†k·m‡°I†éÈU®”ô7œý¹¤Kˆ\ÆéU}OwúïKò}^¼v¬oåTºíµË8ÕéDŽ»×k'$¶wŒÒ«$µl¿ÕÜÏåZjäuȯÉõ»»–äïË­Nù…ÏIêÜݼË/xWj¿ö}î=o%Eç‘ÄÛÅé,8„M3LG®R§Wð†³o/áûŸòž·§o£äV nw×»nÊKÎ?UßìRU”ú÷ëvÇ0OI_!üe³ÝýD«³š‡aÙJÙayE —=…ÿøå¡å°1µw«“X:ÙÇ óñSûë°uxïU¡ÉÅí¯m„i ù|÷ÏŸŽ!Ò$K/YÝ‹ƒöõñÓÏ~|8k”U‹—Ý¢}®ûýïÙ–U}°†«É~øøðáóçm¶¢Æ¦hQªòk^7÷iî"H'ƒRKåí\[OÃó ÝMÖKš§¯Çí†Y–µ™ë^ÖÅ8së+×n®¢n«”ÔŴˬnëñ8×DO©a[u1*†Zƒã°/ýLcÙª‡YA‚ì…@«“[32§úÒeƒöÎ8YëXªäWI¼.óQ‰·a°éUí`[`»ºbý Ç Žðô,Ï­?k÷zi¦ ûYþ#gC«×ûöI^ö³q>ƒú“95/Æ4NóösR_zÿã'Íø³¦ùý¶Üþýö&‹U2­mi½#d*Ú×xtG_nûüŽê#dy™Òeë—Ú˲lj—­!Ìÿc¾Š‘„`ï+(- äHR3–>Â:Gÿïn !É@cáØ1Éííq·,I-hc»„ÜJ ŒåЊúØíZȲ’Ò ç’’1H22méµ YŽ!oŽNÉâJBÆé˜m$cu:!Ó­xÄ܆d…ÁÜ1J!<6©{R×¾ÝQ ýcšr'%Èáø*„"Ò…ç<U„NœqÞCsÙEß/,^äº5žµŒ×%1V]77Ž MȶÏ3— ¦Üá¼#VWø;ÄJ¾íŠ3…3(?™ßT1)˜vÚÇÿ¯¾q:÷‡·…áÏ´ endstream endobj 857 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 858 0 obj<> endobj 859 0 obj<>stream application/postscript Print Adobe Illustrator CS3 2008-11-14T15:03:35-05:00 2008-11-21T14:30:04-05:00 2008-11-21T14:30:04-05:00 256 124 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAfAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FVK6uY7a3e eQOyRirCKN5n/wBjHGHdvoGKsS8r+V9K1Oyn1jXNJgn1DUrmef0ryKKeS3hMrCG3qwfgVQcnSu0j PiqJ1Xy7p2jSWmt6DpcVvcWMlLyGxgVJLiyl+CePjEAXKfDMqgElkCj7WKo8+btKH+6NR/7heonr /wBG+KpP5Y8saTqlrca1relQ3F9qVzPKkV7FHNJb24lcQwfGHMZC/G6fsyM/TpiqJ1Xy1p2kPba5 oGmRW95p8lbmCxgWN7mzk+G4i4xhS5UUmRdyXRQOuKo8+btKAr6Go/Rpeon/ALF8VSjy15X0jVIb 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 uuid:417532B186B2DD119645F4A33292DAD9 uuid:7736E3CB02B8DD118801E675FA8D8A94 uuid:b1ac9fe8-11a3-4422-b8f3-ae4b8085b7a8 uuid:5D20892493BFDB11914A8590D31508C8 Print 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Cyan Magenta Yellow Black Default Swatch Group 0 White CMYK PROCESS 0.000000 0.000000 0.000000 0.000000 Black CMYK PROCESS 0.000000 0.000000 0.000000 100.000000 CMYK Red CMYK PROCESS 0.000000 100.000000 100.000000 0.000000 CMYK Yellow CMYK PROCESS 0.000000 0.000000 100.000000 0.000000 CMYK Green CMYK PROCESS 100.000000 0.000000 100.000000 0.000000 CMYK Cyan CMYK PROCESS 100.000000 0.000000 0.000000 0.000000 CMYK Blue CMYK PROCESS 100.000000 100.000000 0.000000 0.000000 CMYK Magenta CMYK PROCESS 0.000000 100.000000 0.000000 0.000000 C=15 M=100 Y=90 K=10 CMYK PROCESS 14.999998 100.000000 90.000004 10.000002 C=0 M=90 Y=85 K=0 CMYK PROCESS 0.000000 90.000004 84.999996 0.000000 C=0 M=80 Y=95 K=0 CMYK PROCESS 0.000000 80.000001 94.999999 0.000000 C=0 M=50 Y=100 K=0 CMYK PROCESS 0.000000 50.000000 100.000000 0.000000 C=0 M=35 Y=85 K=0 CMYK PROCESS 0.000000 35.000002 84.999996 0.000000 C=5 M=0 Y=90 K=0 CMYK PROCESS 5.000001 0.000000 90.000004 0.000000 C=20 M=0 Y=100 K=0 CMYK PROCESS 19.999999 0.000000 100.000000 0.000000 C=50 M=0 Y=100 K=0 CMYK PROCESS 50.000000 0.000000 100.000000 0.000000 C=75 M=0 Y=100 K=0 CMYK PROCESS 75.000000 0.000000 100.000000 0.000000 C=85 M=10 Y=100 K=10 CMYK PROCESS 84.999996 10.000002 100.000000 10.000002 C=90 M=30 Y=95 K=30 CMYK PROCESS 90.000004 30.000001 94.999999 30.000001 C=75 M=0 Y=75 K=0 CMYK PROCESS 75.000000 0.000000 75.000000 0.000000 C=80 M=10 Y=45 K=0 CMYK PROCESS 80.000001 10.000002 44.999999 0.000000 C=70 M=15 Y=0 K=0 CMYK PROCESS 69.999999 14.999998 0.000000 0.000000 C=85 M=50 Y=0 K=0 CMYK PROCESS 84.999996 50.000000 0.000000 0.000000 C=100 M=95 Y=5 K=0 CMYK PROCESS 100.000000 94.999999 5.000001 0.000000 C=100 M=100 Y=25 K=25 CMYK PROCESS 100.000000 100.000000 25.000000 25.000000 C=75 M=100 Y=0 K=0 CMYK PROCESS 75.000000 100.000000 0.000000 0.000000 C=50 M=100 Y=0 K=0 CMYK PROCESS 50.000000 100.000000 0.000000 0.000000 C=35 M=100 Y=35 K=10 CMYK PROCESS 35.000002 100.000000 35.000002 10.000002 C=10 M=100 Y=50 K=0 CMYK PROCESS 10.000002 100.000000 50.000000 0.000000 C=0 M=95 Y=20 K=0 CMYK PROCESS 0.000000 94.999999 19.999999 0.000000 C=25 M=25 Y=40 K=0 CMYK PROCESS 25.000000 25.000000 39.999998 0.000000 C=40 M=45 Y=50 K=5 CMYK PROCESS 39.999998 44.999999 50.000000 5.000001 C=50 M=50 Y=60 K=25 CMYK PROCESS 50.000000 50.000000 60.000002 25.000000 C=55 M=60 Y=65 K=40 CMYK PROCESS 55.000001 60.000002 64.999998 39.999998 C=25 M=40 Y=65 K=0 CMYK PROCESS 25.000000 39.999998 64.999998 0.000000 C=30 M=50 Y=75 K=10 CMYK PROCESS 30.000001 50.000000 75.000000 10.000002 C=35 M=60 Y=80 K=25 CMYK PROCESS 35.000002 60.000002 80.000001 25.000000 C=40 M=65 Y=90 K=35 CMYK PROCESS 39.999998 64.999998 90.000004 35.000002 C=40 M=70 Y=100 K=50 CMYK PROCESS 39.999998 69.999999 100.000000 50.000000 C=50 M=70 Y=80 K=70 CMYK PROCESS 50.000000 69.999999 80.000001 69.999999 Print Color Group 1 C=0 M=30 Y=70 K=0 CMYK PROCESS 0.000000 30.000001 69.999999 0.000000 C=5 M=70 Y=90 K=0 CMYK PROCESS 5.000001 69.999999 90.000004 0.000000 C=5 M=90 Y=75 K=0 CMYK PROCESS 5.000001 90.000004 75.000000 0.000000 C=30 M=0 Y=95 K=0 CMYK PROCESS 30.000001 0.000000 94.999999 0.000000 C=60 M=5 Y=95 K=0 CMYK PROCESS 60.000002 5.000001 94.999999 0.000000 C=30 M=0 Y=10 K=0 CMYK PROCESS 30.000001 0.000000 10.000002 0.000000 C=60 M=10 Y=5 K=0 CMYK PROCESS 60.000002 10.000002 5.000001 0.000000 C=80 M=5 Y=10 K=0 CMYK PROCESS 80.000001 5.000001 10.000002 0.000000 Grayscale 1 K=100 GRAY PROCESS 255 K=90 GRAY PROCESS 229 K=80 GRAY PROCESS 203 K=70 GRAY PROCESS 178 K=60 GRAY PROCESS 152 K=50 GRAY PROCESS 127 K=40 GRAY PROCESS 101 K=30 GRAY PROCESS 76 K=20 GRAY PROCESS 50 K=10 GRAY PROCESS 25 K=5 GRAY PROCESS 12 endstream endobj 860 0 obj<> endobj 861 0 obj<> endobj 862 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 863 0 obj<> endobj 864 0 obj<> endobj 865 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 866 0 obj<>stream H‰”WM“ÛÆ½óWÌH…XÌ÷ŒnÑÊ«²«lW"¦rPù@s±\:\R&¹ZÛ¿>¯§{@@µJbm©ˆî™þz¯{0Ðj»¸yÿA«íyaB—’Š>v>¨¾Ó¦ï-~Í9«Ó°xX˜X—§ óÕ›ÛsP›3”±ÏIõxècrV«óæ°ðN9ÛAï{§4=#D¦¥ÐåÐë²fR×^|»ZÜÜ¥Õêa‘É¡ÊÊ—0_=-z/¥Gb« ÄÕË¢‰®]ý;ËvcVøãLŒëRW«wl¬=l^^^ÚÐw¾é~Ûíw‡véñü[·9>µ?­¾[|³BýP% bPØšjt .¾ž¯‹¦ëÓ<ç¾dKySÆ›»o[×ÅæîÇò£Þ<Øfh—®9­/Ç“ú:]²ë¢Ô£µj©;cÆZ<¹È¾ÿÙ.cçš÷­itl—H½ñêoŸNíRèw{¥3«ÿªLÏOº¯ÿNm¢óT[ßeO½påÖkàO– RI¢¥=üÚ0#XëZWÌn‰ Û¬?ñïeàß“ro)aÂw:…È„“r½a·Î³³wùõ„PéÛ6t¦9´èñ@ÂV½ì@Šo.êÒR Ç²<¨Ûãi¨pýŠ~Þ©…GCÄ:¯|TKð¨êýE¸ß{Ý9ƒ2M—òzJKËß¼;nžŸ†ÃEÝ|“zûîvñ÷ ÙâÍ]o3ÍŸvZ§BÆØÐ× º˜1®èÒzZ¥Ç`»€ ÞCC£ìf6£Õ õ]È©§FGs9¯)¶ÎAàëa|êLÊÓ0Íka¾^ÙÅû.ôþÏF«ÿ¿˜W€)£ga®š×Âü—b´ÁÀÆõ'ñig<ä.eÿ'x¨N%­‰ÓI¢ât–¨¶ÑørÚkô*ýz—Ù§±Hß‹K>ÑÉ!Ùò0‰Òò:¡47î!MèBÌ3 Í5s匑= M †›fŒ±2êHEÉÌö¸ÎÅ8ÓhøñÓXØiÇ|ä•pûA}­ú·?àäù'Æ/8²LV/J÷ê{õñ§^ÝÃ#Îbkg¸ˆfÌãt yëÙ.ÑL²#þUw]Ÿ zÖuƧW5׊¼Å1Ý4ZÕLsrtÎr²mE˜¢Ní‹wÑ\ù³À²·¯i®yÃÊ—†5ˆÕ§PºÍrÞU3Ù:ýkšimx„§Y{Ýéà§}èÞéq𣋨3ËWçÒ´7° 0‹Ÿºf9ޱÆ>D>n~l‚¼û¾°Jóž÷„½ù¢2ª–¹Õž+Ã;Ù„QSä(¢/¢×Vä¤6Å®YxC– !9T˜ 6”+ièÍLrbçɱÈÑ8ÖDö-ǰբʸ‰…hðž›:p3ÁU9\¡$)Î §ço9B°"»± mX#e˺Tíô±ð½ìH«˜'ÙÆQf-0‘f?Ó5ûÅãbBOù Ryþ¢Ìsd$’aÔ(' Ü>óŽìºìg² £…hŒ“zÖ"É9/re#2½Ð'Ñ Ú¾È¸žçÚT|š Ó{-ÅG—¿ÐØÒÏt©w3€^ÓT+œJþ5ãÅ â’­SÙDy>±¦L“Å/5”iM‘£æ8tzlн,Ic’/;fÈš[°7ºÈ…pËQµfMà}æħÎ(KOY7Û¤Úê! Š×)¥YYç,#n×nVbfR)N<3Erô#Vla ûH…]ÈÂ]6Gäƒ>1áV†•Ô×hÈÄÀÈ™âSR×]ys\«§qì'鸸nÆç¦"ù‹S ï ËŒ5ä`&l°ÌÌ×uóyõÀŒ_cøqô8‹Ú35ËÚU×:ü8Ý\iíËŠDíÜ+Vøª“Ñ„ìüì«XÙ¨¡«ÚW6ç³ÁÖÔ³2È´X9c"—á*Y’LD-*ñµDƒ@[G§ax¹z6ö™¡6=7¾q¼ƒnÂSrH®o©<Ûû4ó\ü"FNi’šLO’Dê0)‚ºvRc”+KÅr%Ê1ð›Íìÿ'§êU¾Î kÀŒ–†©ˆ2šN©P 8 ÌnRcŠ˜m'`ö½­³.G’Ëꊎ—:4ŽãÓ±-{/AyÙ0ÊtÅpX–!qz¶ƒ™¬*××µjµ[j–µ›®eÔ~«…J; µ]G”Ð[”³ÜX?¹ÊÓ©¦ªz¨TÎ'bƒ›Ö7ßß.nÞÐj{^¼]-nîœÒjõ° /\ó{UÊ)¦‘¶S«'|lñ}ÔãkK­6å d®^›ÕãpjñÅbš¡ Ù{تãÃUp%”#Ù@Ê¥¸Ïëýó 6GÞ0º’äÍææ.üEŒ;eIi5?/Ûvõ öXî~¥3òr*à’ŠÖ_^Y ' ›ô=--xø©`ŒSˆêîY·Ôy8œw—ÝçÖxnr_šŠ6®Yä‡ãEí‡ÖD7î®ÍžìÅKj`h4Z{®Ô°]YRLu.3w»2%P§Ôþ(î6xáß%ÄSeré.JáÄ$Î-}¿ÚB¹!( 8æ: ¸ tNh1: vÔ˜ƒÝ2ÕÍ)„ðlVÚ˜„¥Ua.3+X Îï…¹ Ó÷±ùLJ‚áJv ‡ ™ìÇä&óƒ—a±¤fîÊ$ ›Ó T\*—YÜæK( í›Q¯÷âî4PŒÈñ^†®¬oާJúá8÷‰më‹ìƒ…(×SÞÏ×ðŽÂKˆ£ƒcR×…tÙ|Ä[+b#]¥æüá^'#q1äíüôTbçæ~·¾ {Žô»Ú¬ŸY}¦ó$7ÃYIî™NY~8UƒÅÝVVØÜ\ªb-¿ŸÄ”Îtõýpè9A÷´;T‡”¢8Ïç‹x¸ þÃzÕõ¶­Ñ÷þ >’@¬p—ßí“oA&pœ\ (- –%W’¯ãþúž33KR”ÒEKwwvæÌ9gê8¼xf?ïoјv¥]d‡S9Ìh®_Á?úa=oׇ»oÖ‡a®YL‡< ôÁ“¢•!ó’ÉÙj3£¾¹ø. 7],,‰ ¹ Õv@‡Œõ·vq#]쬋‡ëlË ÷ƒ´2.H Ì÷¸†DÖÎYÔãö€œ’ûŽåVØXÙff,·>|û`ñ|È877dxTrKŽ Û$5Æ&ë€É¬4™oî%õµlë!Ô@Ù=P''¾ÿt­6ú¹„°»m#ó½ý0o£îbTÊmª ¯Ã}–÷-^[Ú)’‚B^ýN øøyøÌJ¦‹×Ëi²já?‰*œ>o§»á{TÕT}žºÑ1Ü4aeHXÚ˜O˜¢(ÅmuMšaÕ™éƒ>xØn”¶3½f}r ªíj–£fsÛO‹A O4&oâž –¤#1ýöZM;âÖ𽋫å~+×µÚ<ºo÷Sô÷÷eèé‚=Y(tÁ÷ Rþ¤J¥=¢*CÔ”F¤QùD@Ëy;g;†b3} Ad9bE .Õ¤¥“¬ܳ7ƒYemo*»ŸÞ%®!±ˆ´íB³lÛV?jfùÆ(a4{ž­pó¯ñ‹!hH$ª'¦ÇWtåƒãËþø<ð÷tþ5‰¦7¤Î‚QJÉ5ýÍ`ßo` „ÓûsœœÆ& lá̶g{° Ål™†(dÖKȲý…ߣ'ˆa ÄRA ç¢Âx=‘ááYL#gÂàD´íLሠÈã0²®4òû²ÕsÒÔ"Ñ׉s¥Œ*ô@‘@…NK˜ P‰LW×ò»Y·ä€"~Ћ7î¼ ‹@7( _{-÷¤jš?C®ÅÜwO³,[ ‰ëÇŽ€ùEÓ†¦Â5e`ÒÇ/:ïýf±Ðï«vdºgA_£U£¢Æ´PË4Èò΋ſ_}{ó÷“V:s£•\„ãåÝ“ge+Ê“‡ÅW¯zN>Z5àD;eôt«º~d3GQ”Í,ñó+_}¼>H].DðÊX.½üó$ä)º%ÿùñ_â‹O—‹.£C÷¢È³”’:ŠÂwø@Éh–Àzê™ǹ۵ªpN¦sÆ™àf®_Þêßåâv¨°©åTýä ÖU–!ìžw% <§¹ NsÑU?Â}N*ú½)G†2æ87ëäçpÍüT²äÈœØØyomþ–ƒärGuõô¦ëÚÿVñã6øéf0÷‹0y^èoÅrØ—÷LWÅNCž\É®â\ûÏG& ͦ!_üêR×Ü?Þ#½Á³>Z«cÕòý ¿U±vI‰˜ØÈȨºÚNÛG+Ý(ü ‹žø»Ùg/÷íÐ2¤yj¯Î>ë½ê]ôÐn—›9h<‡Á”9›ÃÆp ¯.ÿöÿ‹u´ÎõÇ ¿&ˆ†ÁsÓ«Bf4\ÁóÞ-Q FÀ–½®¬eÞ(„óämµœrmLœ‹HïÃa“™yÚ.ÍÊܽ0¾užþÒÎŒ|2ÄfÃÕ¬»& %F}*TqH­ôó™–ƒŸæ,n)Sxûa…;¨HÁIøÂ<èéÁÖl°¿Á«ÛQuج¥½k)Fc¢mòúqË{뤣ŠbŒoØuˆÐÝ®!~HJ˜o°ø'%¿@,Ÿ./‹ `¦Á ï o¿8Ü3AZŽwýŸ“ÑÞ½ÿxýíâh_X#Ÿ"Éz·[µ¿€Y˜'ª€ÀEL…«OÞ"þpõþ¯zœh§“Ü»ª_Ñ#’B’¡¯){Õ+P34 Øú=­ä9û2ƒqÏ„ZÎ2Q`Vjkˆ¥•‹{ äþtð'À™uÁ8_«…{78ˆ“í>1Ò.V¾Þ&4ø2.P§ ùƒ¾’—[Pú’JEÀ‰<$™Ì!”ºÍ6Ê䡎¢õ¤ªœa@ãÕpïºiáù¤d“ƒÈ~GŽâ«o¯.%&!¸X‰…ÅÙfÏóAtñöâ½þ¦†Ý;ŸBc[ãܹ#-ÚÒÑ‘cˆœéüYéF“dlé>EôöœVøûD¦¯ÖiåOáëzÜR°ò¾2hÅGÀcû4ƒÖH u ¸üá6^¯¥/Ê;ç—}ë ·wŽïZ?m¡,h,cQ= vÆÆû <$[á²\¸¬]ë{ ôC¾F¥¦ÂXë±'YMè*á<»3NÜÌfÛP·l9¯Æuó¾× Ó*1r2÷±iH]‚‡ÙF®QiÐh@LO~—A1²¸ï¿*Ö'ì?L˜ûvÒKÊ9°íx‘£l kYY ¹¨.·à¶œfÙÊP€· E¶?–û B„©´Ç‚,¶ä³² Jç2ÐD[Ä7¦sÉäst³é2há2Ø»°,³º?©éÛª ¸YÄ\]I/L¨y*Âä8†ú/ÁœwyÊ3S²ëcÊv¾ü™ð(Ò«_è„\¶ÆŸAGMð®4ß!XÉôµ¾!èéÀþ¢¹ÿ(k€W±ÍgÙãéŤñcy ®ð4Ceö·ò´ò’•ÏÅEh½À, Ʊ>ç± Ìžg+ZJ:$6‹3oUkÐQºüŒ+ʲ¿¿+‚vµyaúL¢¨vÂÜS™ é’FÝ)þª=åP;“¿ôãÌ)Û°Cx!|gBRq®Ü-´¥o¡W [ó{MLÚD¾â¤?Êê²{'ü5h¼Ú•Ñl§“F´›­ÿ„Xšc¯̉*ËâQÚEæ^_°Zù™/»09M™5¬uÓÃûÅ€t7uý?†P†0ØÞ#T?Ónºy±V s:suYE9|`“‡z›UÒûuâ\!sUOœô§—6ÊÉ'gè\\ýÙÉw^5C’Ëz d2.|{¾{–Z³…<°‚²8B%U[$2Ê™†%ã^!ÆbO¿ü9)Ýßn8ñít `\7Ð KP ’åÍ G‘.S–…¿Ñˆx&ú.º:÷"z½”]ª‘ëlÔuî¤{Õ´íò;%¬ ”‰Å}+¿Îu#mØ ÒOŽtì\ï'o—d,•ÿ%",¦8 Èèèq*÷j&¢áœcñÁ§(DT`ÿ&§;¹ïú¿ÃÔG ¬…24Èe›¸:C¥&eZ•Ýwü|ÎÅãj]¬¦ 9"^(÷³ â;%ͽ”+:+“V½_²ª£fô>R³Œ5“¡S6¨'Y ¿:Ú¢÷ÎivJ¡¡¸ÿ[(©%%s~ ‘t(#@[ž\ ̉?4h. ç5;#+ 9Ý;WÁôMÊ¢öÃy@ÑØ(ó1•”ôZÑ`oìQµÉÓÝ¡heöáv5s(ivn8 üñ§ëä¬É+âéõûO×âÓü}N>gÔ;&eKa/-rèM“gÙí5<’ÙçõQ{ë,XfX9Ìve–S7Áu6Þ3E5°ËÕÔ¤¨ÉÔ¸Õª³øPi=/JjP+NÆL¾4Ëô¾¦;Ø,ït_Æ,ØkÆêÕþ˜®5·íΚ‘Up/£J)ë~QñkÙ.ðN)M.2+y°v3á©Úãu¦Ë¿b š(þšœ ‡êXçX ïÁ…p¾’sã4eÙÎ<œ”odèiŠ¢ê‚;bnuP‘F ²¡QþOÁ‚¥Ù:Ã`-CÿUÄE=!‹ý*äA>}© yóNlÓ‡ë0«yÜ%u&Ù<<•ÍõsØðÞÆ2aóNv¬›:—åܲ¶tË  n9ìÈN]}8È¥5`u.&þRLæ[Fü»º†}—&2 }§³ýòVa|»\Üb´EošoË\*i(2WT.Ì?<ÍvYmž,óÿf¿jZÛ‚è=¿b2DêjµRoÆ)9b0.9ä`L¢8†bƒ¥¶¿ofW+Éq’CO=ɳoGóñf^ŽRb?„Ã’£ey£p‚# ׉9tÄS®håÐÖ^P6–±zwªL Œ?GªÒyÄׯoŠA¹àFïEúÚ ‘t’´P`žÒ¾Jb\ð 4ä~µ™/¾ÏRW) Ž|+Wâ²þe²Ò¾‹»™½ò£lyKOà п!ÚÅüU‘.2YQ€võgh·À*`?FbÞsrzy» ”ƒºqšùešsÎéû!YÝlnæ3G Éd¾Y,Ü­©hKÚ^d@ÌéáS˜•cóh¨x Yš¿@3ŒFÅ–'Óí‘€i#¦‹˜Q'T>R"·È‡PXoŒòËkÚ‹©‡äîØÒòC+çW1Þ~ ñ|¢øGÀª)»4©ô£=‡p´–*ù\ ¯^f,i¨+ %|/!yàïÉÊbïb&Þ6M}jë§kÑÒÎò8 çŸnwØv0á-Ÿ›AŒ ‹è 2J™ën«ú’ÔBz‚i[¤cÿ’úw}hôŸÓ¾­›ð§=v,! 3Ð`:¢›ÐPÝ—Z°{úuÚvØxrZ6)]´C~[cÿË3HVEe×3¥©Ä”Ãê¥Ä©¾z¾Bug¦äWU0Pl©Ì } ŠªªFÚZ4ó‚Ágõ„ó½ÁGCU€ÞÅEïzã-¾,+¼t²ânͤ+5V¿æñÏ“p쎓¤à£Rì:]ž]Àž ]Ðh°×”…A÷M€ÙŠéKò‚ñw,(VÓ |6i€‚;÷8! ü: ŸòK‹ö| endstream endobj 867 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 868 0 obj<> endobj 869 0 obj<> endobj 870 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 871 0 obj<> endobj 872 0 obj<> endobj 873 0 obj<> endobj 874 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 875 0 obj<>stream H‰”WÛrI}×WÔc÷j×ýòfL@Àxg,vbC+˶X]Œ%cدßS•YÝ-cX6auegååäɬj%®''¯.”¸ÞO´ïbÁ…Îy!;¥¥4øÕ&¥$î–“«‰õµuYáøíÉéÞ‹Å S2Dk”Ø/¶gE°®Ã '­Pù¡ì‚Üšïň(¿ò]òR•w:vRÓ˳ÉÉ™JÌ®&);I¸¢í³ÍDbóÞ¥ñb¶˜ä'Ä<{˜|hÎ^·S×ùæìœ~Å«å6?¥fÙbKjîÚiÀÏœV‡¯Eë»Ð|ñyå›Nµgo„¡ úÔñGéjÛyà#f/)åJ$ÄÃÃCëeçšîëj½*þ]óµ[ì6Åìï3 Q(IðªÑMaçg!”ã P8xo‚kgŸ†¨§Îv1#¦ªÓz5eeÚ)à÷¯œh§‰ç·FeWYà›µ`•Ô"Üæ™Ð´”J2V5\””"ÎÅ´2].Ö¦ËèZ¶ •íì\¼ß·…Qª¹†oÝÔÌ5bŽÛK¨9ݵ¾·‡»ø‡f—‹hšuEõ3hµ…ŠÞNárO/¤ûÇob[y—ã‘^8¤*³îäånq¿YnâäÝiHâÅËÓÉŸ#ÖISEÈ­¡¬R±¦s‡±wð8!ÕÉÄf'oº•XO\ê  Bg½í·¬Œì|Š2³ŵNe¿*ùÚk?pábg•¹ß»ø\’6d$``ªr‡†‚ÀúYÎ5çº`þ¯hÇ/'ùTÎú±ƒ^ðƒ?š‚·u©¯Ã†,ºQa¼Æ ¿^˜j‘C,ö1V‹c” Ú•‰¬@Øüël*ö0%¬ ¼=Â^Ð]R®Li+s@  8ÀpPj$À•¨0Ž4Rö4Ê6¼ó±÷‚ÖI9JÄ¡•kø|Œ6ÂÈ 4òèâà)zz!~”ñÅéio0:>á¤@í„’âøðQŠËIˆ¨¿cÁ‚>†‹IÄÙ”ÌH§ z¨;Ÿ€nZå8£ïlzb=ä#ÈäÇ^X0Š$¡@jIBgij@“»¡®{» U0î Ao[bac/Q±É•X«`Ј—á Á(ÿ=”ĤWi”’˜ç)Œˆ¨$Ž7*%¨ŒRRw~ÌDhx9¦•’¹Ñ⑤:ª\ÌÁø£ñ©dÅÕ‘Ä’ÞUÖÉchœ¸’CQ©e‹½$¯ƒÔ´æ¥u¼4bQ6„XâŠFÔ¬‘,­Ù îI´!&òi´) I‘ƒQֆ׸ÐŽä|‘XI&“'¶î൓ÕG/±Tµàp“¢¸GóMyzÃ>håÈçèCÍÁZÔ¤ïæ¤Cð¼®ömÒ1¬uM¸zŸú5m0 S–¬$¹4ëÉÍd\žØ0rê‘ ˜¸»c"áØg»‘ÀJy‘…(ë@¼>ZÚÔo`‰a};¢pªíMúRÊ ISбŽu­ ï¨óÅiÏɧ¨I¼"?ÐÐcÉx—âÛØc F°†.PßF¸Ø ÑÑëS%0Ê0CY'ÇŽ¸zùjž×V• ŸbÆÿ´£Ù¨aŽËM š±<8´"þy£ú5óÉû#È™òÁA>óFa­†1©*à¬m’å—p¬óOhµÐ#D;œ# ÉP.R1¤wGk-CÝÁÃÌtµÍƒù@Ó¦J ˳$(#†(Q:f®a¢%Ù‰©•8î‚‚Ëwß%שãÙ§:ÊXÇ0ª­iUjÐ0áÈzäA±‚¤²Oj|•GCaègEL#&V ˜ªHH5‚Ÿs!Œ`Öµƒ„JU-ÔRumàBy¯¸=4˯ó(4›7áæv½l}§ñ¯å É¿¬Zp¯ÙÝí[|'5ÔT#þØXñÀzüX–ŸhÅf)nwË»V¡bÍfbs+¾þú¾ý8{3ÑøÑ  ³—øJ“,Ÿ-(DðŒBÜc¯oÄÕîN´¾9ܬöb±Û^­®ïïThæ‡ÕѨf+æw­6Å÷åêªU¾¹jm“cY¸=ˆ+~ÞmD `Z#˜â7_Zk:Ç‘Ÿp5*an–¢XͲE€¡Ù/"Çæ=¾æÇ2øe¾¾_vÅzù[ìK5èëUfGQÝ;ŠÅù8+™–Ä€šÉŽ´ÅÅ»±ÓâGûb6WUñæ;àJÀŒåXö7»†o¾(ö&—8WRV›ÕöZ\–ú®Z„… ®ïæ› ôÃÍr+rÖx®æÄa•Lò›Ûûõ~)P<ï¶K±Xïÿfl9ÆGТÓjÆÍåý]®Þ¶kgŸžF˘|• ÇpýRáI¤2±”†=fˆYl¾–n(` 8aªNn„S©lRe¯(iÂJV±`¥ŒVëšØz·½5³0ã׿vÛò´ü)„C— M(½â‰b0Ï M%q½%hËS¹<Ø”/Ôy.0ÑÙ(Îfâãýz-ÎÖóë½økYˆ’9ÿ÷6hd6'2€ìbw%dy-ØéG‘2ð®{—®’Vs³¿Î”[íÛ©ÉÓ%·y~Œ¨tþ òk§®´ iê³ÊÑ3ÒxÝfØyqZà‡)ì M€îçûvZhO½˜ yE{6÷1羑h›Ë›ÅMÑßå„;¶²G÷Sݳ“„v³·ƒ@ÙÉP}‘Sâ!¿Oˆ ?ªY¸è³ß¨Oúz(|¸Š¼ø¶È¼Ü嬻LRìdn3:9Y *Óìn—w¢ônîZ¿ý·â,u·ˆ~„¨Ô;äÙ–Œq¡µWÿáN-u~~üüÎVŸ‰³÷oß>Ïß¾;¿˜ý3/˜ÂÕÏã1Чg™móí¥øÛ_ç¯hóU¡Ý¼F/.—ÿå¾ìš«È0|ï_1—Ç)|¤‘&¹Z ¤HBA€ªMU.RØÄY;»üû¼-©ß–l¦ ¨JåÊžçH}´žî9=ή®eqƒÞì§ïä_Å ¸ÆJËhZÁÅøDV ®Úã'Ÿáf"ÈŽOä V¥ý\‚çâú0UÝÖ+Êi²‹ewJºi»ƒÑ1—Tt¸F>(ƒÞ«é¢K8˜Ûí©ïÅòMµÜÄWÜ=~6]”ǃ ·iL7ùÉ;Oß|-ÕÜüÓUíp-ñwõá=¦woS]UîZ}xýúæªXüôÇÛ¸~®}¤8ð’Þ.ËãÇš†±ö /ç^ÄüØžÏêpç5EöçÓ"uœgÕ8ÔBã¬Ä•DœÜ•ÓJë–—‚B¶yÃÄR·ÝÍaj¸öëǸÞWÅâ˜w/¥hs¸›mÚù¼ZØ„>5Ã@²eH8‹øGîv”œ0æÉ’ûtSînOÖµ“-‰£åâRiýëG–PâÝ‘6­Ê^WDß*þDÝÇQu[lÿù¶>)ûqŽÅÇÝôêx“äxzìÄ\WoÛ¯gõY¤”o'ˆ8äQ¹ò‹Û½­ nZû+v õ‡“r K£k›}þ”ýtÀW_ñ‰µ-»l ˆšw0k8ÿX®w­ò6©]þA´î~Ý^µÔW!eÎ[wrsÒM¡ùê+ozßÞôP¶ºÔ¿ÎÅHþæô_D³ËQ¾V¿$šÓÿA4#§ÍŸHñÁü®Y÷ò8ÖsÛp%«"ˆKün¿©Æ/¾Ñö¦4ª¿—¹I°&B)®±]ç-—vWµ–¨|Qû 2©™îùÍe)Tê=Èu°§åßÖ÷lzU;£ ö¾½ò¡ô’p-˜ûªÄª[Q•„iazw#f½”‡K}ð9ï<·–|>?ºÿèÃë›wò5zÿéÃüãäG\ e ‚#lkù¼Ý±Ÿ›Ëoqö%<þ²{þâx™w­ÚÓ­ýgÙ¾us²™¨Cñý‡æÓ:,+Î*.ÓÕYÝRr­Í»£ï'dïé÷˜û?¤¬žÂôt:ºÿ»—Ëôöpäò÷ø¸‰Û¶OÉ·órx‡’Ë£—Gšóº$ÙǼ–ÕïsšcÝGkYp"9O뜱\yõâÓ^.«’KÈÐùntíu—X¯ó_}Õŵ‰ÞêõÛ)Qºqdƒ·¹ïÅ-ψ „d·åÔ-·÷¡@†ïm–JºY²'{Ý%ìõ¶ó‹'z«—m§Ãíd/ðŸ´Yñ ‰Ómg#·¶3AA0@7ËFºY²'{Ý%ìõ­¶óK'z«W·‡Ûi½Þ%¤=ê—PÎýšÈÀH/XE8‚Ò' 72\Oò~Y‡NXó&ûcdÅÁ¹4ÙÀõã$Üï{’ñ]‡^,>b{’ÊúŒøw.õãà0ç~~A-· ½|?¡‚éˆ÷%™uµ* n|ø$¿Ëê÷Âc·ç<’­4îH %~ºar*Þ‘ «öÔÃ2nØÓ0ã¿ÜïN@Yæ~œ€*!¡ºî –µ½ð_q¦¹x1d•½'nûÜo{X±¬mè”P}.·Av]|þms¿_!/û0,aCE²ô!g,sØä8§=JÓž ìÛ|HFÆñnŸ7?ÚÃ&G\—ÃgˆYÉÚ VÂõ@LjRrY®-’/îï‚. µÄþöß%šúÏ®ùÚ¯)EÛÝZmA< ž†”BÚçñ-_Ÿ©ÑvOÞKµz«4óyÛZv¸UšÅÆÏ®§±‚ʹí ºë±–œ´ <½ýª¸j§2C”hŸ+“˜–l¯Õ¾ŸÙkmÂå0wIÔ_‘¾ÙDYw9˜l©™­æ1%]M÷ŠFïôJØW\¡®MÂuÃtºqn‘î²M-l#.ƒM-B…å ‚d ¾`Yƒh$ m|¹o#1µõm 5¬}¬Ý-~hƒ¯ÁmëÛ,iSêÛÀÕ±|KAþóKß+œqýއ"þ ô¸ö•à =nòfØÑ KŸÝ>ÄØµ‰HµÁ÷Ký¼ mp\yðD®é¥k#i= M ]—û&ÈiÚ¤ˆëé†6nÚc¨‡¤ïW‘‚¤ZéÛ 2†WE|Æþ°bDäÃÐÆíW7¬¡2çaåýy ¹ì‘ú6°itý¡GdˆmKC·ßÒ°ôeÃIô‡Q§!mm–’6»6Èn9Kw¥6é›@¯C¼Ç9Ü ‡.5ÅïørE½×/= ñs¿…øòE%² mP‡Æmh#:é—Ž¨Åmë¿¿BöÅk]T‰ëÚ/]*I3}ñÁ2´Áí[ úŒi˜1"eŽahƒ:„{ˆ¸¡C¸($ á ÉmVŽJióÃÊQ^7¬ñC¼˜0ñPæ!ÞqQÅë‚CüïaÁ HÜQû¦!àBe> bv©¬û"¹Ôd©ÀdIBY’P–$”¥“% eIBY*1Y’P–$”¥“% eIBY*¡, (Kʲ‘N–$”% e©ÄdI¢²$ ,•˜,I(KÊR‰É’„²$QY*0Y’P–$”¥“% eIBY*1Y’P–$”¥“% eIBY*1Y’¨, (K%&KÊ’„²l¤“% eIBY’P–JL–$”¥“% eIBY’4Yê³É’„²$¡,•˜,I(KÊR‰É’„²$¡,•˜,I(KÊR‰É’„²$¡,•˜,IT–ß¡.:“%eiDeiDeiDeIBYQYQY’P–FT–FT–$”¥•¥•%‰ÊÒ€ÊÒˆÊR‰ÉÒˆÊ҈ʒ„²4Òdi@eIBYQYQY’P–FT–Fš, (K#*K#*KÊÒˆÊ҈ʒ„²4¢²4¢²$¡,¨,¨,I(K#M–T–$”¥•¥•¥“¥•¥•¥•% eiDeIBYQYQY©²ä3eiDeiDeIBYQYQY’P–FT–FT–$”¥•¥•% eiDeiDeIBY¡,á2ÙK“¥“% eIBY’P–JL–$”% e©ÄdIBY’P–JL–$”% e©„²$ ,I(ËF:Y’P–$”¥“%‰Ê’€²Tb²$¡,I(K%&KÊ’De©ÀdIBY’P–JL–$”% e©ÄdIBY’P–JL–$”% e©ÄdI¢²$ ,•˜,I(Kʲ‘N–$”% eIBY*1Y’P–JL–$”% eIÒd©Ï&KÊ’„²Tb²$¡,I(K%&KÊ’„²Tb²$¡,I(K%&KÊ’„²Tb²$¡,î öÅd©ÀdIBY’P–$”¥“% eIBY*1Y’P–$”¥“% eIBY*¡, (Kʲ‘N–$”% e©ÄdI¢²$ ,•˜,I(KÊR‰É’„²$QY*0Y’P–$”¥“% eIBY*1Y’P–$”¥“% eIBY*1Y’¨, (K%&KÊ’„²l¤“% eIBY’P–JL–$”¥“% eIBY’4Yê³É’„²$¡,•˜,I(KÊR‰É’„²$¡,•˜,I(KÊR‰É’„²$¡,•˜,IT–áß´—Mä¶E÷õ+j90I$õ± ’,² âiÀ‹ c2¤md<ÿ~.Uºç=¶cÀ°é:Eª$^ê¼ÇI¯‡žYeË2ˆeIJ„ Ë –eË‚,ƒX–A,K² bY±,!–eË2ˆei² bY±,!È2È%Ë–%Y±,ƒX–dIJ rÉ€,ß%f]±.!è2ˆuĺ„ Ë Öeë‚.ƒX—A¬Kº ré2€u A—A¬Ë Ö¥Iè2ˆuĺ b]BÐeë‚.ƒX—A¬Ë ]ò]±.ƒX—tĺ b]BÐeë2ˆu A—A¬Ë Ö%]±.ƒX—t]ê^ç¶%]„.!è‚.!èÒ$t A—tiº„ Kº4 ]BÐ%]š Kº„ Ë‹$]BÐ%]š„.!Ö%]š„.!è‚.MB—t ±. Ðed A–&!K²„ K“%YB¥IÈ‚,!ÈÒ$d ±,ÈÒ$d A–dy‘$K²„ K²4 YB¥IÈ‚,!ÈrÉÒŸC–d A–&!K²„ K“%YB¥IÈ‚,!ÈÒ$d A–di²„ Ë}Òû²'Y„,!È‚,!ÈÒ$d A–di²„ K²4 YB%Yš K²„ Ë‹$YB%Yš„,!–%Yš„,!È‚,MB–d ±, B–d A–&!K²„ K“%YB¥IÈ‚,!ÈÒ$d ±,ÈÒ$d A–dy‘$K²„ K²4 YB¥IÈ‚,!ÈrÉÒŸC–d A–&!K²„ K“%YB¥IÈ‚,!ÈÒ$d A–di²„X–}Óh)q¥?£J€M °(ö¤šØ’KÒG¬H€ i€ ö#Àz4°ùl9ìÆ „6#Àb4À‹€K‹|¶ "ÀNX‰`!.ú3:؆ËЬB€Mh€ö À4À‚K` @Àe@>[€ø`ýl¿ „üvÀêØ|ˆ`ï =€­°ôçù#ÊØx Ï߬;€mg€ìvÀª3Àt‹`Ï 9€-°ä pŵå4U8Î $Ár4Ás&!:¦ƒ :“pÙA°Iè‚ï ÏãPç]$I‚õ hÏ$¼±ø˜Ï$ÔÁ}ägöƒ ?ˆýg„`@ 4 B  š„!x‚M„TÁ…&!Cˆm@‡&áCB„`Ä‹$%Bp")B°¢Ih‚MBŒÌAËþr„`Gz4 ?B$Cš„"!8‚$MÂ’4 Á“&!J¦„ J“p%IJ|wûÝóm—b¦rŸôßõg¥¦ýhÚäºÏEKùürS/Y¶¥Ýõï2·íüW/Êý‡÷ßÝÞüù‹çÜ~ûGÉt¾?£±Û¶ëzÏ¿¿½ù÷ã«âošîîñͧû÷ßÜ¿ü0NÕN¯Ísx=÷â>ÝÇYóÓ<ëÕ{|ûîÕ¬uÝü‹¯osá6¿þùÛ<ïð­š6½=Ç ¿üÉkK~îçŸû7xÛUúRîëù­6ÃÔK¹, á<˜éšµo£"¯”Z!ÿ¼•^”–í|—Ú7„ÇÔcV‘ëÛÈ×ù)‰ë|ó›Û|ÿñþ+þæÏl°E5t;TêÑ·½Èg6Ø_ß|õñ‹·s{óí§÷¿ÿòÅßžÿ”–¿ê}Ÿ¶Ï%9õ|{ë?¼½ùö»»þÿøj*ìI5á1¯O™ÎÁÿÛ†ü¹YÿÇvüÌ. “hí5dÿåD¯1‘_èü5vÑ¿N¼žm—L;ßß–½=‰ãí²¶§]õíã‡Û¼Ê_zƒ®1/·¯î¿æ²«¥ÍÓµªbZ¢Í@WQAœ%›Ö·ã¼ÿòrþvÓê¦1¾?.3‚—[Ué]—#FTumÇ6§‹¼&šTw©"éŦ.é*#ÈÃ5"^dÕѳôU/.¢²ðhž^MR·Ãïc+ù:¯Hn*<¦¨ûZë£Ü½*ôIÎ` ^a ù«Ø®g[ýšhV;ûŸ4äÕ÷Ÿêe­žD×õ‹ˆB[̤9tž8Ô›¨£9ûƒ¥7q]U‰ìgo“fUµÃg¥«¶85êpuê 3ÐînKžÔ´’zaQƒ{H™¨u^óeÔ9ûHª† “ÔU­eÎd×&8ê@Ô nÃuŽ®Íe ËÓ²³µ×㊪œòO=41]¦LÚs^‹¢C&æYêIÖaI‹:Þc]rœ‡†tõÒ}—f¢ðZ^ÓRzÿ¿DñíÃ=k-ëpýÈzbÒ,#úY#íÿ~"Ȥ}†ë(ãiªQ€û0K*]‡‡PêÓ<,þRù2Êxˆ¯è¯ÞP¦IÒö:^xW|Ë„ [æ9_çP~%o•*w—aMUäŸÖaM«Ž©S­9Ζ7]GO­ DvÖ´.ÊoxëÒ†OÊnÏÏ]•ï4mQv{~ÊZ”]Ë Z•ø4¯QvGÞo:Éiµ†ûU±+Óp?:h¬ÃëX×ù<ŒdR´~yôCÎTŽ(½e˜µ)½áuìªixëÞÃ=ïJo\?¼•qEÕ§Ÿ•Ýð6žÇÄApMåvXä¦×¼ ‚k³Šõ ¸¦³É´Q×°æíÖtꙆmÒäñ2å%mòø:¼Œ­7ðÃÆi2{™‡ë¨’Ouˆâ[†Y2ù:¼ŒùdêQŸz ›ª»rVæ~=|}³î*ŸªIKH›KíJ®Ó ó½Zç¿übK\u¯›üÜ5Ú`ú U”y­¹lkŒ6ޝjÛŽ‹äYgûVt3³n¼Ê3=UÓåxìõ¾35±[S­emÚ<¥Ü‹V®öL´½åìwÛ¥ÙLÝÄzvÚ OÝHQ‘5¢¿ïzÔ¶­HSÎ{éÝq?’hÖ<Å‹ôdëOw6xý»·aŒYçòÎ^\óes”Iànªúb<Ñ×I-Í4'·Ê«vº.Ç…ª¯S¢ZÊúúTù´÷lÀ·‰qS˜¦¤>»V(`(Æ)î§.ŸŒ¶k‡iýHÇ“qöìæ4NtÓ´Ü{èXƒåI„š¦ùþpñkcåÇÃâx_Xû‚¡Âù mUЦ±;F«?`¥_¿='¿íæ<š®9†ÎÓuT´œÿÿ–±Õ2vSÚëd Íà˜¼Sò?½T¬ýçîÁWúïƒ"’}ßè5“ÊíýùcùÔ(÷Òç±0Ÿ¯v½{ùÓ››··ûO/õjýìÑe‰|ÝìfÆcè[ײљSN²F>5¥lÐeŽ¡OTÓ›zÎëQ-+é5×)µšºe=ª.?Œû—öŸ<²Ëô¿½· =zÓ¬hù_wñäé7W×ßþ×'Or_ZQ¦êI¨ìÖ7{¹yfº1í/Ò!-EtW“viiÖß4Ñyýí/Ͼù‚v×[{éS¾.µ‡]ÞÃA)cÓtûn˜ƒFœ·Q[$ Lrøûôe¯÷­†’¯ƒ%å4²ëÛõÒ0É—Ç¢´¸n“Zw µtþfŸÔÒ4uŸ-YÚ9]ŠŠ¤v]·jq É‹½é°-m=ÆBª1RZw µêø_?©U-íœN·"ݪ ÍôJôÇzˆGPZÔ¹K\‰Lè×ŃßhTÛJÕ²¹•Ó5RV©D.¢P;¯©’ÒƒF¡Û$÷4h^­Æ¬dcígÒ#iˆï”“÷©®‘”¨Ì›6”ù›"2wQÉi«oeÊqª³Ÿ6@½t]Môטb¤}3háëo=LÛª‚’Refu/½¦¿´Ó†Œ‡®éæ,lJ}|+‚6ã¦Õ´(O«Ö+?ô̩ɢ{5æ«€{è—T}+¦¶}]Có_–´!’hÓž¯ziÑHÒüëENº5û¦Fjåãf§’ÒÎí§nÒ…N½íj«’`6mäsšNª„fiPÇÓ¦Ò¨P]m^RššªÛi:Œ‡Ò¬ŽS=¡í8Tý z9¤mŠ)ºRζºê[[µQ"Ç‘¹?ѱ¦³h‚õn¥%_{U³ùݲÄV(Ô“hÚŒ}Òï?Aòl´¡C=”œï òfvs9ùc}…䣿^Œ"Ýzh~Œ2ŠNíñuãv*¢wWÞ7Ú©ãüoÞÝÕ1mé?–µäçN3gtuBæûÞ0*Ÿr^ûóîÅÙ×ïöÏߟ_´ÃÙëÛ›ýù…kÏþþîíÍùw×_3ާ\&1é>ŸÇîÓ“v¦H;wI½Æ¿_wW÷¥†]“rÕ:p½.Øû¹ÉË{öìêº$nì«Bx?vëRn¯Bª»j^_¥¿@t¦dÌÐVE’&œÃ{4sJªKŸ29%LÚMe’Y¾š¶_Gf¢;n¨­ìÅÁe©ÊtËrhÓ&i[¤6D—A·lÊhˆSÝW7+lOÀ¬'˜c%!À¬`a ÀìÀú` ÈÇ·Ý3@=€ÍX<¼íø¶uKg€s+°q°oëf€m˰k¨°i‹f€gk°eKf€c+À°ùÚ:ç ‚c$+¤² ‚f<ƒ šI˜±j\3 Ù ØA7“ð báA9“p‚t¬3 í xA<“0‚zÜ3 ù ØA?“ð‚€ „  I8AB.­V¼¯-„`! ©,„`! !XhBl! MÂBB°Ð$,„ØBB°Ð$,„`! MÂBB°Ð$,„`! MÂBB°Ð$,„`! !XhB°b “FÖ õË#ˆ- b M ¶0ˆ- b !X¤XÀB°0ˆ- b !X¤XÀ±…, b ƒØB±…Al! ƒØÂ ¶‚…Ala[Á ¶0ˆ- b !XÄÁÂa>Lm-¡ àT  þ _aŸåó7îê`žâÞX;cÒΠœÆÂà›º¶ ›®ª`š¢ž ™– Yᘊ`Ø¢ý¨_ 3À°#¨ 3À0 3À°Â0æo + 3À0 + 3°aþÆ0 + 3À0 + 3À0 + 3À0 + 3À0 + 3À0 3À°Â0 3°aƒF´ µbAìXKf–±fAìY‹Á´ Eµv ‚lAl[ëÁ· E¸6.ˆ•ƒà\KÄÖAÐ.ˆ½ bñ ˜Äê±{ä bû‚X?þ±€Al`+ÁÁ –0ˆ-¼Ú=~z¹û˜©mß endstream endobj 876 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 877 0 obj<> endobj 878 0 obj<>stream application/postscript Adobe Illustrator CS2 2010-02-23T22:30:02-08:00 2010-02-23T22:30:02-08:00 2010-02-23T22:30:02-08:00 256 180 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAtAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FUkn88+SoI4pZ/M GmxRT/3DveQKr0jSb4CX+L91NG+37LKehGKo3Udf0LTJI4tS1G1spZlZ4Y7maOJnWPdyodlJC13p 0xVeNY0hr5bAX1ub5+XC0EqeqeCo7Ujry+FJUY7dGB7jFUn07zdpr2UX1Szv7iCMGFZY7WV1JiJj ajhQGoykVGx7YVTPS9cs9SlnhiSaG4tgjTW9xE8MgWSvB+LgVVijAHxBwKmGKsc0/wA26c9nELWz 1CeCMeksqWsrqTEfTajBQGoykVGx7bYVTLStesdSmuIIVmhubXgZ7e4ieGQLLX034uBVW4MAR3B8 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 uuid:3335F2090E21DF11B723F15DE4291FC5 uuid:3435F2090E21DF11B723F15DE4291FC5 endstream endobj 879 0 obj<> endobj 880 0 obj<>stream application/postscript 2010-01-25T14:42:22-05:00 2010-01-25T14:42:22-05:00 2010-01-25T14:42:22-05:00 Adobe Illustrator CS4 256 72 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgASAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4qh9Q1Cz0+1a7vJPSt 0Kh5CCQObBFrxB25MN+3fbFWP2H5m+RtQvbKystTE9xqLMtoFhn4sygMVaThwQ0YUDkVxVHnzh5d GqNpZuj9dWVbfj6U3AytT4Fl4emzLyHIBvhqOVK4qhovOPl/UdPg1XTZHv7RbsW0bwo68p3UxhE9 QIG+KTgd6K1eRHFsVR0utXcUbyyaRerHGpZyDauQoFTRUnZj8gCcVTKGaKaJJoXEkUih45FNVZWF QQR1BGKpfqOoLa6jaRJbTXdzNHN6ccJSoRDGXZvUaNaVKivL9eKuOtPG8Qu9PubSKWRYhPIbdkDy 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 1SVvUKFFgkUBHZlWh+zTFUSs/mHkOVlaBa/ERdykgew+rDFUJ501HXtO8vS3OgWy3erGe1ht4Xja ZaXF1FDI7IskFRHHIz7yKBSpIFcVYLF59/NCNLxNT0e3s5IpEWOeKzvLqJVAnWQcYpOc3OaBI0Ze NOYYqRTkVR2h/mRr8kmqReYbGPR7mK39XT7aeN4R9Z+MfVBNJJxu32U8olUUOwNQSqhIvzB/MSyh tV1jR0Nx69q9+9tZXZjSxuJoEkkXjJP8cayyVXkT8NeNK4qyD/Ej6h5fW6vJZNLuIL+e2mYK9sB6 bSrH8UwHIPGFaoqCTiqt5ZtrjUlvbt9Vu5bUTCK0ZJRwZEjUuwYDf94zL/scVTr9Cf8AL/ef8jv7 MCqLaL/pcS/X77eOQ/3vw7MnXbrvtiqt+hP+X+8/5Hf2Yq79Cf8AL/ef8jv7MVUYNFrLcD6/fbSA by7f3aHbbpiqt+hP+X+8/wCR39mKu/Qn/L/ef8jv7MVUbPReVpA31++3jU/FL8X2R1264qrfoT/l /vP+R39mKqN1otIlP1++/vIx8Mu+8ijw6eOKq36E/wCX+8/5Hf2Yq79Cf8v95/yO/sxVRn0WktuP r99vIRtLt/dud9umKq36E/5f7z/kd/Zirv0J/wAv95/yO/sxVRXRf9LlX6/fbRxn+9+Hdn6bddt8 VVv0J/y/3n/I7+zFXfoT/l/vP+R39mKqNrotYmP1++/vJB8Uu+0jDw6eGKq36E/5f7z/AJHf2Yq7 9Cf8v95/yO/sxVRs9F5WkDfX77eNT8UvxfZHXbriqt+hP+X+8/5Hf2Yqo3Wi0iU/X77+8jHwy77y KPDp44qp6b5gsLeF7LVdQgiv7KRoJvXkjjdwprFKQSP7yIq5ptU4qjF8x+XmYKuqWjMxoqieIkk9 h8WKphirsVWSwQSlTLGshQ8kLAGh8RXpiq/FUBq96bOKC49GafjLQxQcKmqMN/UaNafTiqA/xZ/2 qr377X/qvirv8Wf9qq9++1/6r4qpN5r/ANKjP6Lvto3HGtrxO6bn9/1HbCqr/iz/ALVV799r/wBV 8Cu/xZ/2qr377X/qviqlD5rpJP8A7i741kBoTa0HwLsP3/TCqr/iz/tVXv32v/VfArv8Wf8Aaqvf vtf+q+KqVp5rpawj9F3zUjUcmNryOw3P7/rhVL9S/Nby9pl6LLUILi1uTEJwkhtlHpNIIufL1+PE OQDvt1O2NKgdU/OXylbTW9rKtyJrlYLi2EPoSiWJ2dkZGjmZWDC3foe3uKqovS/zd8qarP8AV9NY 3c5do1iinsmZmReTcFFxVwF3qtRTAqhb/nV5OmimkcT2gt2ZJkvjbWTqY3EbHhdTQvxEh4cqU5fD WoIxVMovPVjeujWlpcziCdopvQks3CyLG3KOTjcGhWtSD7YVRv8Aiz/tVXv32v8A1XwK7/Fn/aqv fvtf+q+KqS+a/wDSpD+i77eNBxra8Ru+4/f9T3wqq/4s/wC1Ve/fa/8AVfArv8Wf9qq9++1/6r4q pW3mukZ/3F3zfvJDVja13dtv7/oO2FVX/Fn/AGqr377X/qvgV3+LP+1Ve/fa/wDVfFVK0810tYR+ i75qRqOTG15HYbn9/wBcKqv+LP8AtVXv32v/AFXwKpXPmusY/wBxd8v7yM1U2tdnXb+/6HvhVuHz vp9yCbK0urtUosrRiFfTkKhmib1JYzzStGA6Hata4FVo/NXORU/Rd4vIgcibWgr3NJziqeYq7FXY q7FUv1q1lu4YLeO4a2Z5ftqocGiOaMCRtt9+Kpb/AIWv/wDq6t/yIj/rhV3+Fr//AKurf8iI/wCu KqLeWL4XUafpaSpjc09BOOxTrv132xVW/wALX/8A1dW/5ER/1xV3+Fr/AP6urf8AIiP+uKqMPli+ aScfpaQ8ZADWBKD4FPw79N/vxVW/wtf/APV1b/kRH/XFXf4Wv/8Aq6t/yIj/AK4qo2nli+e1hcat IQ0akF4E5bgddzviqW61+VGma24k1S5+syAKFkMfBlCc+PFkZSpHrPuPHG1Qd7+T2hN9SmlmZ5bE xR2spQs6j60k45MZKsTMoZmYknetamratWP5HeWrDV7XV7SRotQsg4tpqOQnqoUf4GkKGqsRuMbV av5GeXFjETXM8sarwVJpLiUABi4/vJm3BZqHruR0JxtUbov5Y2HlyM22j3j2kN7dyXMyLHzDTSRH kx5u1BSMbDb2xVOv8LX/AP1dW/5ER/1xV3+Fr/8A6urf8iI/64qor5YvjdSJ+lpKiNDT0E47l+m/ XbfFVb/C1/8A9XVv+REf9cVd/ha//wCrq3/IiP8AriqjbeWL5oyRq0h/eSD4oErs7DxO223tiqt/ ha//AOrq3/IiP+uKu/wtf/8AV1b/AJER/wBcVUbTyxfPawuNWkIaNSC8CctwOu53xVW/wtf/APV1 b/kRH/XFVG58sXyxgnVpB+8jHwwJXd1HiNt9/bFWrXyMLIOLLUZY1mb1Zw6JJynYASSCtOPqEcio 2rWmNqiY/LF8kiudUZgpBK+igrQ9OuKv/9k= xmp.iid:D658D5C1E909DF11B446AAB9898C26FD xmp.did:D658D5C1E909DF11B446AAB9898C26FD converted from application/postscript to application/vnd.adobe.illustrator saved xmp.iid:D658D5C1E909DF11B446AAB9898C26FD 2010-01-25T14:42:22-05:00 Adobe Illustrator CS4 / uuid:233875376962DD119256DEF3CF9D532F uuid:243875376962DD119256DEF3CF9D532F uuid:233875376962DD119256DEF3CF9D532F uuid:233875376962DD119256DEF3CF9D532F False False 1 14.000000 8.500000 Inches ArialMT Arial Regular Open Type Version 3.00 False ARIAL.TTF Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 881 0 obj<> endobj 882 0 obj<> endobj 883 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 884 0 obj<> endobj 885 0 obj<> endobj 886 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 887 0 obj<>stream H‰”WÛrÛÈ}çWÌ#Z@˜û̾ÅÒÊeW9®”¹ÎƒËZŠ’è¥H­H­œ¿ÏééPÉIÖ.œF_NŸ¾Ðêvqöö“V·‡… }J*úØû †^›a°¸›sVëÅÍÂÄzÛyR˜ß=;?µ:@‡œÔ€CLÎjuXíÞ)g{Èýà”¦Å‘éVèst¹gR?¾ùf¹8»4J«åÍ"“C••/0_Þ/wˆ2Ør…ãòyÑÄÐ.¿Áβ݈ ‰q}tµ¼`cíÉøKóüü܆¡÷Mÿ}³ÝìÚÎã÷÷~µ¿o¿.ß/~Y"ˆ’Q1(¨&‡]‚‹ãuÑôCšc ZÂMˆ¿4—ïZ×Çæòc¹¨·ë~ØfÝv®y¼:îÕŸ¡×ŘAÖªN÷ÆŒ¹øå"ûþµíbïš·­itl;@o¼úûÃcÛéùf«tfñOÊ üK5ãÿQSÛ£`ÑyÊmè³§^8ÕÖ÷PWxr«0•„)ºUÈ¢d¿6Ì ¬uÍ+gçwT Û\=ðõ¸æë£r? SR ßë"œ<ë»už]¬­'6À Š~Û†Þ4»=Þ èp«ž7(ŠoŽwêØR »r{­Î÷ëJ×èçZx4D ¡÷ÊGÕGYÿëojÇý>èÞ¤iúì”ÔSZZþìb¿zº_ïŽêìÃy2êÍÅù⟓2d‹?4wƒÍ4ÚiJ10ƆƸ"ècƸ¢Ks4ê~A%ÐH=ÛLðe7“x ´­¶4ô!§Í弦Ø:i€‡ñ©7)OÃL$¯…ùqfcïû0ø¿E¬þÿd^ ƒJ= s’¼æ¿$£ 6ެߋO;«CîSö¡Õ©Àš8§3 ÚFã˶×èUºz—Ù§±€ïŃ%Ÿèäly˜D°¼NHÍ:$ }ˆy&¡¹æZ9cD'¡F“„áǦc¬ŒN2Àì{[g]V’ËêÄÖKÇñimËbäEP6Ì2½b¸Iø,CâôLƒ+Y=ÔZŸbÔn¨(j·T”µ›NiÔ~«‰J; µ]G–ÐB[”]n¬ŸÐ\ÏÓ©.UõPK9ŸˆÞ´~ùp¾8{ûI«ÛÃâÍrqvi•VË›…Æ÷UÂ{þ øí1|°á!­–÷ø¸ÅÒ0àk¹ZtôïïËçÅ—æ|¿ßµX2Í»ÝõúaÝ"í¿vGu¾Ý¯Z|¿¸æ÷ŸÕ›§rg³=v›]ûuùÑG§ï¢¼ü(±#0—Øåeu`lå{ŒâÓW  byÕv)õ¹ù­í2>^š-®¨K³n;‹wôÔ8QèÊ ÛÄ€ò»¶¤¾¼(9‚Ð1GÏîUۅ溤¸nñ5ÖÜlŠmvëƒ:Þµèßf]tþ¼jñ8j¶O­#݃Úß@a ËÀNö|çø ×¶Ãëq£öGLsàP|÷Q¢Üâþ3|‰þØê’ÈSÖ|h þ/¶Œ`×â3¦¹VE•­ ã¨êŠ/ku³¤ÚŸÍ¶”èØv:¡Í€–‚t!? ³³Ù©KÐ _ï(6—mgð£Ç ¸Ò™+uÙÆìÕ26]¶Ëo§¶0X¥1jäXCS#–Ê<¶Æb$r<ª?¯¶O¨Fh6µÛ#ݧ¢w}]…üsër³)4uB§1ü ]Q彵ɉ„´3šï¸GàŸ6 D¶ù ×WõySîÀyÑÌTd|ü„âaxá!Bîqµâ!‡–ªÈ^wE—šl£xìÝåÞ_ÃÄ»zS¨c:Oթ޶÷Xäa„UÓ¨¸-狞Àò­M!]qùv0“nÈHÏR«¯¿¯ÖGõ¹õ¥áZ ‰ê|洞<àRW«Õþ¾í"~ÝSac³ß+«-)¹f¿úÒ¡,žÐè´S¸Ž‰öœ>5 ÷j™e+û ½ÝQߣki\&‘^`ZJó™®–Ò/zWÔÖÀçÍoëk† —5¡HõDãæ¹$½âùXR[?ªýqM>—Ü µ>q«‡‘[3.]Ÿe!0­% öv½BwC’›^-ïxÿb¢AJÉ {Gäá×å;Ê’, (±ËºÈ¸Ž‘Mkr¹‘´¸üt¹YíÍ‹»múzK¥­æi¬ßÓ´gš&+,wIaQ`6 L6GÌj†uXÈÐ*ÑÍ*¿ß?Bþô3©ãp,•oâ,[ïwáÁÁÛ!çăà»ýr`AQ¦­wMjÜGë ýÊ“û¹ì—°Sp8îQ'Ë™~Öä|_H>*‹/¾‹k0…ñ« åõõ]Ø6œL·«™{Œ'ý¬›Xc_ ¸ž´ÇÇÊ! Õí6l¦x&þ{yóq³Â6þ°üm'~DÉ¢“ú’ˆµ¾cìél£µã·ûxF®0+‹¼”ßu9ÃÚÞá.±½Šææö¾Ù­¯]ndå¶/z†æ5¥i¿NàE–Ž'ëWõ0¸cùá¿9!B¿Fï˜Çr—r-fOÒ²œÂš2¸e„ú¿‘3\·Ê¾y^ì­Ôó:^&bÒÜÌÛÙÇý§¹1R5=’!§eiÃã핬¬4à £Áfœ§úµ ! %ªeFsûÛ*¾Æ€„×â &D&¼ á WŸÃY´Ðb!‘¿ã4D¢ËÚU.´r;ŒNøküÝà¸Îû‡ƒóæå¢ïrmá;F èµÆ•Ò ³ªà‰U°QýÄűIé(Õ®Ø4ý%ö–|w³±~Š7)nRR;ËwCÍÕ4D¹¾yW>ÖË›¹Ä×C´r³Üü¡/ÒªZ]£pí…>ä3tÇŒbãæÄÀõ>h‡”U}|&*–+ÇU\’‹ù$FY"·0”íuzºŠ¿%{BáÿXæj’µ<1³ëØà.µßj·‹Ï¥HëÓàG=ÖÂŰmÂ^ÆÆu0u'hÓŠPöF•(· ¹ÿÙÙõ]LñUÊ݈ü!}ªÓ#¬¾…¶¬Çœ‹]>Cé976gOO5/Ö»ývýNnV&αXkáy¬up%ðÎ×gmªIýÆêôüÃúj/ÑÆ"ž=•늛Êoøñ>\1¤–i^Ým6鉌f:ÌN犩WsnRa6‡z b”Ò±–ÿqFÎ峸¶ ²nËyrOÔqÚ¯¤ÎMdÈmÈË‹Hf@z ·ða×Üœô¸eNús“~:‡C`ÄÏØ˜?¯Nž¼¸½¼»‰<9}>ÚæÙ‹ç'Ï.r±.–THš ƒíØ ÖÌ¡˜EBð¸\ëQ&àÿ.ÔWø¿‡„äm Gœ½}þúO" Tìè§Aíèe)ggÑ&Éë’ý©þÉÚñË_{Ën1înËn¥êœwí,Vž¯s¨þˆŽþ÷kN›“'ߟwÍõØ0cß ?…e(Øà´«8Lظȳ›“[ÑyG‚6ð}‹¢À·X1œQ Î.\ BüU¼Ô»…K0˜Eà$8)mÙ‹GÍ‹dD:¹ê%äȈZ´$¸ÚòS¶•Ø—ýXìg©ã Ò!Lõ*S<-ˆ…¨Û©"8?lÕ3V´GZ–ÓrÕ[¢_-©0SWÎÂzÌt¨ú1/$zA¦nQySµ¦®…HqöûÕÀ‚¹­÷(6K‚iõÕ[¸ùŒ8‡ â0Qç*‚‰U?ý´¨ÖÝ ¢ƒê%³¡ZÓ®óø&á-Ê #)ˆ(ß”lr&84íôÁ[êd¼E|k°®ì¤\ñ-ÝlrŽý8ÓŒCØ™^ÛGÓp°=ªi´‘ÁNpB&ihH‰“÷(Æ‹)¾uõÝÉ¿¢Da YœávÄã åJ7ôH×lW'ošo8 ]Eö#Vw‡½H 3!^®X±dÅþœ»¦j8 ìòÆUè ߺ|«ÎÏ3ãlاÞ°)|oÊžŽ ß*‡ù?v^S*í=©x”`ï;ýmZÜ/ð$Ëih±µº±ìû˜°Ÿjàßúsçrâô<5À-zœÇŸó7WÚ¡ÀÇ|v¥µ ×U»9eXÿ_ß:+uß0Þ¾EzÃû7éÕÁ$vÑ™¡h3LØSå¥i@imª6«rk yQ¶q µ]ÙfÄç§²TýP6E«ÚÈm²j"åøX6AÅ‚¼­TŠjÞ•SÛ“)§>ô~áz_µAýdësÇ¢©¦îD¼µÈÜÂÕÔ>ìÀ›c5Ô0~ªfnQö{[¶Áÿ]_¹È…X—M2m5sTަþ.R¦¯f.·;[½õ‹ÁT3Gª´S5sdZ;”AïQçô®ì§ŸpiëLÕi:•AïQ@M¾œzãÔõ®jc‰²‰—’ªœzÊLNÀ² ÜSå{/µG•ï½ØÆWm°ª|ï‘*]•ï=Î]ÛVSÇyìÇ2è=jm?TSw²{«©cC¢eEr*ÚX\}ÕÄ¢p­¦ÞMa³mP$KiV¶ÁÝÓWCF®ÈEµhcl¶jê[´ÊwÚØmÕx ¥©Ê÷…ý䪩·"°rê±UÂ;¹MV ïÆiQEÆmk¬šXD¢nƒ-P%¼ó¨,úrê¸8!CÕ'ŽSU´ciKÚ’„¶L¤°% mIB[’ЖJ²-IhK%Ù–$´%‰Ú’€¶T’mIB[*ɶ$¡-IhKÚRI¶% mIB[*¡- hKÚR mI@[’ЖJ²-IhKÚRI¶% mIB[&RØ’„¶$¡-•d[’Ж$jKÙ–$´% m©$Û’„¶$¡-•d[’Ж$´¥’lKÚ’„¶T’mI¢¶$ -•d[’Ж$´% m©$Û’„¶T’mIB[’Ж$´e"…-IhK%´%mIB[’ЖJ²-IhKÚ¾›\)Kt¥ª2‚” (Jô¤j2lI”dÙ‘ ¨HjHýMA&ý¨€zL ÛQ娀nT@5&ͨ€bT@/&@-êoZQ¥˜¨¿©D4bYˆ èCÔaÙ† (Cta… Є (²Pƒ Ô‚éw– :P˜@6  Pý—@ÖŸÚOå—@vŸªOÍ—@Ÿõžþ¦öÈÖS@é) óPy dã) ðȾS@Ý) íPv®S@Õ%@ÓéoŠN=§€šK [N%§@g±¶²W³ä2QËe¢šS’=—‰Š.5]&ª:º.• m—‰ê.“ä» Tx$4^&ª<:/•^&j½LT{$ô^&*¾LÔ|$ª¾ Ô}™¨üHÔ~¨þ2Qÿ‘P€™¨3Q’Й¨3Q *ÉÌD=˜‰Š„&ÌDU˜Ir!e˜‰Ú0Õ! }˜‰ 1“ÿP_?=’[eÆ÷ý)jÙƒ”Æ®Ëö6 ,Ø ‘–X h˜‘‚èDJåës®ûžçÜÛ0“U‘èúíªòëz|í""$1â&FE„*FœÅˆ»ˆÆH+cÀiDhcÄqŒ¸Žç¡¡'2âFFIK*q&w2àPF\ʈS‰Ðʈc¡–úëÔµÖÕ¡–µlÒÕ¡–µD¨¥%µD¨¥%µD¨%âZÔÒ’Z"ÔÒ’Z"Ô¡–µ´¤–µD¨¥…ZÔ¡–j PK„ZZRK„Z"ÔÒ’Z"Ô¡–MºZ"Ô¡––Ô¡–ˆkiH-j‰PKKj‰PK„ZZRK„Z"ÔÒ’Z"Ô¡––Ôq-jiI-j‰PK„ZZRK„ZZRK„Z"Ô¡–MºZ"ÔÒB-j‰PK„ZZRK„Z"®e™êåXºZF\ˈkiI-#®eĵŒ¸–µŒ¸–µŒ¸–‘VË€k‰Pˈk‰Pˈkq-#®%B-#®eĵD\Ë€kq-×2àZF\K„ZF\Ëo;s/zq/#î¥%½Œ¸—÷¡—÷2Òz Ðˈ{q/zq/#î%B/#îeĽDèeĽŒ¸—½Œ´^ÜK„^FÜˈ{q/zq/zq/#îeĽ´¤—÷q/îeĽŒ¸—½Œ¸—zYj,î}/z‰ÐË&]/z‰ÐK„^ZÒK„^ZÒK„^"î%@/-é%B/-é%B/z‰ÐKKz‰ÐK„^Zè%@/zi¡—½Dè¥%½DÜ˵´¤–µD¨e“®–µD¨¥%µD¨%âZRK„Z"ÔÒ’Z"Ô¡––Ô¡–µ´¤–µD¨¥%µD\K€ZZRK„Z"Ô¡––Ô¡––Ô¡–µD¨e“®–µ´PK€Z"Ô¡––Ô¡–µTƒÎ}ïk‰PK„Z6éj‰PK„Z"ÔÒ’Z"ÔÒ’Z"Ôq-jiI-jiI-j‰PK„ZZRK„Z"ÔÒB-j‰PK µ¨%B--©%B-jiI-j‰PË&]-j‰PKKj‰PKĵ4¤–µD¨¥%µD¨%B--©%B-jiI-j‰PKKj‰¸–µ´¤–µD¨%B--©%B--©%B-j‰PË&]-ji¡–µD¨%B--©%B-×ò: ÓÙÕ2âZF\KKjq-#®eĵD¨eĵD¨eĵŒ´Z\K„ZF\K„ZF\ˈkq-jq-#®%âZ\ˈk‰¸–×2âZ"Ô2âZF\K„ZF\ˈkiI-#®eĵD¨eĵŒ´ZÔ2âZF\K„ZF\ˈk‰Pˈkq-jq-#®%B-#­–ס–×2âZF\K„ZF\K„ZF\ˈkq--©eĵD\Ë€kq-#®%B-#®e„Znº@>–Zi •¯Ð•Ò@( tÒ@&¤’"Ù 4Hƒ éײAúh RGq4ÐFil2£.6 ‹~M D±Môk’h ˆ D=4é¡há+t)4PB!lÈ Ál¯A 4À) è_ƒäÏ@ý įAÚg }Ê× á3¸{~Mö¤z¢g y’× Å3¼éܨؽB×:©k@éüšÐèœÌ5Hå DÎàÆ}û0ß~¾i©¨Ÿl}²ÕÄËëƒ.ôsC´¾<4§­® õvÛµ*=ÕA¡Hý¾ËÞïµM{ÿJ³>õ¾yŸzÁÌŸÙ¾6Y¿úe8‚~³Ë9¼§Bp××ïE'ù‹ï[¿÷×χ‚?­·Iÿk`ªº+éÇ¢Sòüò 0¯».¯èYå»B]ÎÛOï¿xüó»ç=üþs¹Í·çÚv×e6Ýž¿yxüÏë?­þ—Úê×ùtûáãí/Æ]ëµ³yߟÞîÛüç۸—9ë ûò^ŸÞ~È…ùÏÈëóýáYxÜëTëÿßïõûº¾~ÿEÕ=”*í¦3[¯ôU×Öq¬È¿%ºütþ꬗²]Ò¶)»¶p˜ÿŽòñw¿Ú›}æbXêm«k3ý$‹Žù ×Âßÿú㻯æíñ»OnÿüáåÝߟÿÔuU×Uù §}ªï-|ÿð•ÿüùáñ»ïoúïÇ7WŒnî“~¯ûÕ]¦kãßʵÃ=#Ó¼?Õ|yšmÛÈ›×ý…óë¼בмÏ5À«îúšˆ2鯬âlZïíÿ´O]úèÄe Åê®òty#Êó¼\7–lS˵wG_k݈K9» ´JÛ×¹?ÄéVÞ„¯¬µ‚Ö´ýq›t‡ÑݯÕ[Ñ^Gѽté·Ñrw¿¯ýqÞH·.ñ&ëvÔeP½‰+C>p6YW­úÖ¥Û¦N hù^oßûµ\~+ÚKÊ\Î~›ñ½ë[鯬›L]ì×J~Ñ2d×}×R·9µ ¯K-‹®ÕÆ¢ÅÍ®ãô¢þ,Ã^e~Zs·md¿Ö/Ýq”¯½æ«­q´>éöÒŠ®hMÜÉ]_P?Ô^´Ä-ÃqTÔ]?ê^tß܆½´€(ü–)ë Ø}8Œ?ûðNºZ§}ØI‹Ž2žS-°÷³?;k]ƒsw-žŽéÞˬ¼G¿×\s?r¿–½h~ëÞgÙ®§Ã^4¿ÒŸÓUK”2íƒh~#h|Ûp˜²^k‰^4¾þ›¯º1•¥?;ëµþ¶Ñ½>t‡iËú^4½}Øë®é­Ã9Õ ñ˜–A4¾£ôÇÑé1õó[µh¬GÝ^íQ¦—CÏÃ$´L¦wÖ‡ÁþB)ZìÍÃ-Z°•ôй®ƒè1a3oõÎ>ˆê0œÒ²hxÃϱÔ'ËáçXT™iï?riÏ«½hzû°—tÊðÑ+Àmïè/8]¢:]ÃgÞ4¾³?¥eÓø†Ÿc¹k|Ë<ˆž¢¦þ2(woé/•¢‡ÆyØi×ô†ßcÑ“ç1üËQ×ÃGÖ3ÌQ†Ö…Ó°—:ZÆ“ªg¥ch\95Àµ¿â¶I·éþ:'Uqºoƒ-GŽAö§áÊØóãh~gNë_¥ÿÛªñ O}t‡îljù±Îƒ¯a/µ¼ ¿ÇîA××ŪeD×åuÔ¤(¡úaÔ—šžn°§–3ç­n¿è¹rÛ·«¹ïµèýÒZ¶^‰[m³Æ{ŸêãgQZÎmíoÙÚf¹kºlÇܤßëZ|­:çué0×ǺZÈë2×YŸ´ ¨¯×úÓP¥µõ­îQîS½?Ì×g­ÁÔõ)Ó ëZB¬:mç<ܑ׺„ÓwÕe¢OФßëúùœó$g¶ÀØ+`, ÆŸ#ü}€üú[bÀ¡àÈ3@à8îvˆ:€c€Ó5±Óó‘:¢ÎD‚¸ƒ ðL$ò =ÇžÑáðW0‰?€ÀQ ÀD,€@<€@DŸt¿½øAXD0 LDD€°""@XD LDD€@ Â"‚£ïC Bª,"„°!,"„°!UDaBª"B‹Â"@ B‹Â"@ B‹Â"„°ˆ³æÃÐtôFÆ)Cõ_Oïû@§pOýSBSÃ]s±8\®lXÜnÖêúánùcøÜ¼ÿh½²j¸i<ÝM¢>†£fñs9ü¢27Ñ=1ÄZr{¯ÆBn˜MÑís,þ½«¡É3#xÕ¬øßçf±Q7êq½Ýa–˜\m–[˜R÷iÞur½Qó Y™Ð®V›í6†BÜí}ùM™éÊõ´\SRdÃÑêÏ%ç§—ÇßJ¡Ñ1vjE«Þô¥ì",Yž”˜[í:Ú+ZФµÔø¾ìÌâà˧£Raeµ †¾ú´íz[ú?=º<ür’8hJ]Ì+"?#­0z&C§„§«û¦mé òYÜëØÅ|†04—’GBç ãµ÷91Ú›å<ÅuhõÅT®IÜÏK‚~nÞ5V=«Wó¬ ¡lÏi×Q§6ìéºÖAGÜÍ 0}™×‹ß+X«y¥+gŒÚ:ª;í3i åÏô’ï©^[§u(Åørá~œ7Ôj:TÍd¨Y#zMêÐÚi×¶ÚOÚþM-(ñ[×NkÌÞ™›¥³]>Ó&Rïsn¢ñ]"=[RyRî*+zqºžïï–Úíݬ×%ÉÍ2KJÝþmþ¯9nw:‹ûÒÑ$1JÃ$KQ² )ŽYì-"}{?N‡rmšMkÆ”7#e¹üýßâh)Žmò*êLàd=~ (W=lþ0e¢{ endstream endobj 888 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 889 0 obj<> endobj 890 0 obj<>stream application/postscript Adobe Illustrator CS2 2010-02-23T22:33:03-08:00 2010-02-23T22:33:03-08:00 2010-02-23T22:33:03-08:00 256 176 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAsAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FUkn88+SoI4pZ/M GmxRT/3DveQKr0jSb4CX+L91NG+37LKehGKo3Udf0LTJI4tS1G1spZlZ4Y7maOJnWPdyodlJC13p 0xVeNY0hr5bAX1ub5+XC0EqeqeCo7Ujry+FJUY7dGB7jFUosPNunNZxC1s7+eCMekssdrK6kxHg1 HCgNRlIqNj2wqmOla9Y6lNcQQrNDc2vAz29xE8MgWWvpvxcCqtwYAjuD4YFTHFWOad5v02SxhNpZ 39xboPSSaO1ldW9M8GowUBviUio2PbbCqZ6VrlnqUlxFEk0NxalPWt7iJ4ZAsgJR+LgVVqEBhtUE dsCphirHNP8ANunvZQ/VbLUJ4EX00lS1ldW9P4DRwoDCq9Rse2FUz0rW7PU2uI4VlhntWVZ7e4ie GRea8kbi4BKt2YbVBHUHAqYYqxzTvN2nPYwG1stQntwgSOVLWV1YJ8NVYKAw2+0Nj1GFU00rWrPU zOsKyxTWrBJ4LiNoZF5KGU8XAPFgdj06+GBUTfKrWVwrBmUxuCqfaI4nYdd8VSiLzjYToJbazv7i 3avpXEVpK0cig0DowFGVuoI6jFUdpWt2Wpm4SASxzWrhLi3njaKVCyh1JRwDRlOx6fccVRN8qtZX CsGZTG4Kp9ojidh13xVJ4POenXMKz2lpf3NtJvDcRWkrRyL2dGp8St1B7jFUfpWtWWpicQCSOW1c R3EE6NFKjMgdaowBoysCDiqIvgpsbgMGZTE/IL9ojienXfFUot/OenXMKXFpaX9zbSjlDcRWkzRy IfsujU3VhuD3GKphpWs2mprP6CyRyW0giuIJ42ikRiiuKowBoVcEHFVe+CmxuAwZlMT8gv2iOJ6d d8VSiDzjYXEKT21nfz28oDwzx2krI6Nuroabqw3B8MVR+k61Zaos/wBXEiS2snpXME8bRSxuUWQc kcA7o4IPTFURf8PqNzzBKek/IL9ojia0r3xVJ7fznp91BHc2tnf3FtMokgnjtJikiMKq6Gm6sNwc VTHSdastUSc2/qJJay+jcwTI0Usb8FkAZHAIqjqw8QcVRF8qtZXCsGZTG4Kp9ojidh13xVWxV2Kv N4/yD8jRBxHLfx81lQ+lc+kQJVuIzQxqh2iuhHStCkcakEA8lU51n8v212a7/SuqyrbXNt9RaKyi SBpLcO0iid5PrHJlY1BiEYO9QQaBVLYvy51mx1291TTdSY3uoQi1utWuXT6y8XpRxLyhgt4YeUPp 8ouNN+pIJGFWa6LbW1ro9jbWq8baC3ijgUilEVAF2qe2BUDq+kag+qWmr6S8SX0CSW1xHPyEc1vJ 8QVigJDRyKGQ0OxYftYqh7u3873lrNaM1jZLcAxG7gkmeaJHFGeMNGq+ooJK12rTFU20W1tbTR7G 1tF4WsFvFHAlKUREAUUqewxVB6tpeotqVtquktCt7Ej29zHcchHNA/xAEoCQ0cgBU0OxYftYqhL6 288X1nNZl7GxFwDE15byTNNFG+zPGGRR6gWvGppWmKpxo9vbW+k2VvbLwtobeKOBaUoioAopU9hi qC1XTNS/ScGq6S0K3axtbXUVwWWOWEnmlSgY8onrx26M3jiqDv7PzrqNlNYytY2cV0PSlubeSZpk ic0cxhkUc+FeJrsd8Kp1pMNvBpVlBbLxt4oIkhWlKIqAKKCtNsCpfqulan+lrfV9IeFboRNa3kFw XWOaGvOMkoGIeJ+XHbo7YqgdYg853elXdtO1jZwTIyT3Ns8zzJAf7z0gyxj1ClQp5bHfCrJYIIYI I4IUEcMShIo1FFVVFFUDwAwKlGp6TqK6xFrGkNCt2YTaXkNwWWOaINziYsgYh4nLcdujt7YqgdYt vOF7pN3aXTWVpbTIyXNxbPM8ywH+89MMsY5tHUA8tjvhVksMMMEMcMKLHDEoSONAAqqooFAHQAYF SfUtJ1NNZTWNIaEXMkH1W+guC6xyxq3OF+SBiHiZnA26OfbFUDrNr5uv9JurO8aytLSZGW6mtXme YW9f3ixhljHN46qDy2Jr2wqyeOOOKNY41CRoAqIoAUKBQAAdAMCpRqOmaomrLqukGATyQfVr2G4L qkiI3OF+SBiGjLOBtuGPgMVS/WbXzbf6TdWd4bK0tJkZbua2eZ5hB/u1YwyRjm8dVB5bE17YVZRH GkaLHGoREAVEUUAA2AAGBUk1HSdUj1savo7QCaaD6tf29wXVJQjc4JAyBiGj5OOm4b2GKoLWbPzb qGk3VnfGytbKZGW8ltXmkm+r1rIiB1jHJ46rXltWuFWUKqooRAFVRRVGwAHQAYFSW/0nVItZOraO YBLcQC3v4LguqSCNuUMgKBqOnN1O24I/lGKqF3L50FnOZYtPRQjlmjlnLBaHdaxj4qfjhVkWBXYq 7FWEecPMnnzTvMEdvomkC+0lbeF55zbvJ++mmkjK+ok6MvAKjEJBJsasUXfFVPyV5j8/6ve2B1ez jsrGS3umvVbT7q2f14JUSL03nnJRZEm5APFy+BqbGoVTTVdTN3Houl6fqJFxqMy+vc27J6qwQwtP I+4bjzZFjO37eFUZ/hqf/q96l/yMh/6pYFd/hqf/AKvepf8AIyH/AKpYqgtIupNM1hLG91OS6tb6 wS6s5btkDepC/G4oQqbFZ4SAffCqf/pPTf8Alrh/5GL/AFwK79J6b/y1w/8AIxf64qpWmq6cbSEm 9hkJjUly6gtsN6E98VVf0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/riqlaarpxtISb2GQmNSXLqC2 w3oT3xVV/Sem/wDLXD/yMX+uKqV3qunC0mIvYYyI2IcOpK7HegPbFVX9J6b/AMtcP/Ixf64q79J6 b/y1w/8AIxf64qpXeq6cLSYi9hjIjYhw6krsd6A9sVVf0npv/LXD/wAjF/rirv0npv8Ay1w/8jF/ riqld6rpwtJiL2GMiNiHDqSux3oD2xVV/Sem/wDLXD/yMX+uKu/Sem/8tcP/ACMX+uKqV3qunC0m IvYYyI2IcOpK7HegPbFVX9J6b/y1w/8AIxf64q79J6b/AMtcP/Ixf64qpXeq6cLSYi9hjIjYhw6k rsd6A9sVVf0npv8Ay1w/8jF/rirv0npv/LXD/wAjF/riqld6ppwtZit7EjCNqOHUlTQ7gA70xVHY q7FXYqlSebPKztcqms2LNZCRrxVuYSYRAaSmUBvg9M7Ny6d8VR1tqFhdGlrcxTkxxzj0nV/3U1TF J8JPwvxPE9DTbFWKaT5k8p2ZtSmnPZ3E5htjdrYmFC87rGoLqi0V5GHthQzLAl2KoD9GadfWlqb6 2t7xo4xwd4kdRyUcinJdg3EdBiq3/DXlz/q1Wf8A0jxf804q7/DXlz/q1Wf/AEjxf804qo2flvy8 bSAtptk7GNSzrbxcWPEbj4Rsfliqt/hry5/1arP/AKR4v+acVd/hry5/1arP/pHi/wCacVUbPy35 eNpAW02ydjGpZ1t4uLHiNx8I2PyxVW/w15c/6tVn/wBI8X/NOKqN55b8vC0nK6bZIwjYq7W8XFTx O5+E7D5Yqrf4a8uf9Wqz/wCkeL/mnFXf4a8uf9Wqz/6R4v8AmnFVG88t+XhaTldNskYRsVdreLip 4nc/Cdh8sVVv8NeXP+rVZ/8ASPF/zTirv8NeXP8Aq1Wf/SPF/wA04qo3nlvy8LScrptkjCNirtbx cVPE7n4TsPliqt/hry5/1arP/pHi/wCacVd/hry5/wBWqz/6R4v+acVUbzy35eFpOV02yRhGxV2t 4uKnidz8J2HyxVW/w15c/wCrVZ/9I8X/ADTirv8ADXlz/q1Wf/SPF/zTiqjeeW/LwtJyum2SMI2K u1vFxU8TufhOw+WKq3+GvLn/AFarP/pHi/5pxV3+GvLn/Vqs/wDpHi/5pxVSuvLvl9LWZ002yjdU YrI1vFRSAaMfhPTFU2xV2KuxVh13+VugXFq1v9avo0lkvHuf3wkEkWoy+rc2/CZJUjidqbRKp261 qSqjPLXkeHQLiKa31W+uVjsrfTjDcfVSjw2nqegW9KCJ+SCZhUMK96nFUl1Dyl5x1HRJLaK902J5 4lETiKYiNtirqRIRVDuvbChkgTzrTefTa9/3U/8A1UwJd6fnX/f+m/8AIqf/AKqYqpWiedPqsNJt MA4LQLFMVGw6ES0phVV9Pzr/AL/03/kVP/1UwK70/Ov+/wDTf+RU/wD1UxVStE86fVYaTaYBwWgW KYqNh0IlpTCqr6fnX/f+m/8AIqf/AKqYFd6fnX/f+m/8ip/+qmKqVonnT6rDSbTAOC0CxTFRsOhE tKYVVfT86/7/ANN/5FT/APVTAqldp50+qzVm0wjg1Q0UwU7HqTLSmFVX0/Ov+/8ATf8AkVP/ANVM Cu9Pzr/v/Tf+RU//AFUxVSu086fVZqzaYRwaoaKYKdj1JlpTCqr6fnX/AH/pv/Iqf/qpgV3p+df9 /wCm/wDIqf8A6qYqpXaedPqs1ZtMI4NUNFMFOx6ky0phVV9Pzr/v/Tf+RU//AFUwK70/Ov8Av/Tf +RU//VTFVK7Tzp9VmrNphHBqhopgp2PUmWlMKqvp+df9/wCm/wDIqf8A6qYFd6fnX/f+m/8AIqf/ AKqYqpXaedPqs1ZtMI4NUNFMFOx6ky0phVV9Pzr/AL/03/kVP/1UwK70/Ov+/wDTf+RU/wD1UxVS uk85/VZuU2mMvBqhopgpFD1JkpT54VYjD+Yf5gSWV68vlie0vGt9Rn0iKSzupVkaP0ZdOWYwlhGZ YpXEiMVbmhHwn4cCoCx/Mn81bw3czeVZNPUTRDTNPuLG8eW4glko5luY39K2a3hpI3NTzJ4L8QOK p35W84ec7mWzu/MkVtpOkfV7ltQluLK5suM8U0ccPGW5n+BZVn2EkfIlGpsQQqoHzt+YQsbi9j0l biK5N/Fopis5pEeSOXjp7u0FxcMYJ46s0rJEvQjYglVPfKHm7VdWuYoNS025sml06zueUljeW6C7 f1ReQs8yBF9NkTipNSDX4sVYrd61Z6Vpy6hb6/IXsDFcS2rX3qq0MLq80XAsQeUSso/DCh6J/iXy 5/1dbP8A6SIv+asCW/8AEvlz/q62f/SRF/zViqjZ+Y/Lq2kCnUrOMrGoMf1iM8aKPhryPTFVb/Ev lz/q62f/AEkRf81Yq7/Evlz/AKutn/0kRf8ANWKqNn5j8uraQKdSs4ysagx/WIzxoo+GvI9MVVv8 S+XP+rrZ/wDSRF/zVirv8S+XP+rrZ/8ASRF/zViqjZ+Y/Lq2kCnUrOMrGoMf1iM8aKPhryPTFVb/ ABL5c/6utn/0kRf81Yqo3nmPy61pOo1KzkLRsBH9YjHKqn4a8h1xVW/xL5c/6utn/wBJEX/NWKu/ xL5c/wCrrZ/9JEX/ADViqjeeY/LrWk6jUrOQtGwEf1iMcqqfhryHXFVb/Evlz/q62f8A0kRf81Yq 7/Evlz/q62f/AEkRf81Yqo3nmPy61pOo1KzkLRsBH9YjHKqn4a8h1xVW/wAS+XP+rrZ/9JEX/NWK u/xL5c/6utn/ANJEX/NWKqN55j8utaTqNSs5C0bAR/WIxyqp+GvIdcVVv8S+XP8Aq62f/SRF/wA1 Yq7/ABL5c/6utn/0kRf81Yqo3nmPy61pOo1KzkLRsBH9YjHKqn4a8h1xVW/xL5c/6utn/wBJEX/N WKu/xL5c/wCrrZ/9JEX/ADViqldeYfL0lrNGuo2crOjKsX1iMciQRx2bv0xVHahqOn6bZyXuoXUV nZwgGa5uHWKJASACzuQo3NNziqWDzz5JIlI8waaRDGs0xF5B8Eb8OLt8eyt6qUJ2+IeIxVHWeuaL ez/V7LULa6n9Jbj0YZo5H9F6cZOKkng1RRumKodPNnlZ2uVTWbFmshI14q3MJMIgNJTKA3wemdm5 dO+Ko621CwujS1uYpyY45x6Tq/7qapik+En4X4niehptirErbzB5cENpbXehT28UrQW3O4t4WRXl dYow5DE/bYCvHChlf6M03/lkh/5Fr/TAl36M03/lkh/5Fr/TFVGy0vTRZwA2USUjT4GjUsPhGx+E bjFVb9Gab/yyQ/8AItf6Yq79Gab/AMskP/Itf6Yqo2Wl6aLOAGyiSkafA0alh8I2PwjcYqrfozTf +WSH/kWv9MVd+jNN/wCWSH/kWv8ATFVGy0vTRZwA2USUjT4GjUsPhGx+EbjFVb9Gab/yyQ/8i1/p iqje6Xpps5wLKJ6xv8CxqGPwnYfCdziqt+jNN/5ZIf8AkWv9MVd+jNN/5ZIf+Ra/0xVRvdL002c4 FlE9Y3+BY1DH4TsPhO5xVW/Rmm/8skP/ACLX+mKu/Rmm/wDLJD/yLX+mKqN7pemmznAsonrG/wAC xqGPwnYfCdziqt+jNN/5ZIf+Ra/0xV36M03/AJZIf+Ra/wBMVUb3S9NNnOBZRPWN/gWNQx+E7D4T ucVVv0Zpv/LJD/yLX+mKu/Rmm/8ALJD/AMi1/piqje6Xpps5wLKJ6xv8CxqGPwnYfCdziqt+jNN/ 5ZIf+Ra/0xV36M03/lkh/wCRa/0xVRvdL042c9LKNz6b0REUMfhOymh3xVb5g0Kz13SpNMvHljt5 XhkZ7eRoZQYJkmXjIvxJ8UY3Ug+BB3xVjLflF5bj1NdTsLq/0+9jlaeB4ZlkSOR44YmZYrhJ4uRW 2HJ2UsxJLE7UVVdH/LW20HUZ9T0XVLtLydHDwXjC4s2lm9ATXD28f1c+o62y/ZdVHZabYqtk/KvR p9PFrPe3nORrtr545KpMmoSerdwCK4FwkUEj0+GOjAD7RNSVUf5a8jw6BcRTW+q31ysdlb6cYbj6 qUeG09T0C3pQRPyQTMKhhXvU4qkt35T83ajoTW0d7YobiFRFI0UwdGIBR/7w/Eho3zGFDJPT86/7 /wBN/wCRM/8A1UwJd6fnX/f+m/8AIqf/AKqYqo2KeczZW5WfT+Pppx5xT8qcR9r951wqren51/3/ AKb/AMip/wDqpgV3p+df9/6b/wAip/8AqpiqjYp5zNlblZ9P4+mnHnFPypxH2v3nXCqt6fnX/f8A pv8AyKn/AOqmBXen51/3/pv/ACKn/wCqmKqNinnM2VuVn0/j6acecU/KnEfa/edcKq3p+df9/wCm /wDIqf8A6qYFUb5POYsrgtPp/H035cIp+VOJ+z+864VVvT86/wC/9N/5FT/9VMCu9Pzr/v8A03/k VP8A9VMVUb5POYsrgtPp/H035cIp+VOJ+z+864VVvT86/wC/9N/5FT/9VMCu9Pzr/v8A03/kVP8A 9VMVUb5POYsrgtPp/H035cIp+VOJ+z+864VVvT86/wC/9N/5FT/9VMCu9Pzr/v8A03/kVP8A9VMV Ub5POYsrgtPp/H035cIp+VOJ+z+864VVvT86/wC/9N/5FT/9VMCu9Pzr/v8A03/kVP8A9VMVUb5P OYsrgtPp/H035cIp+VOJ+z+864VVvT86/wC/9N/5FT/9VMCu9Pzr/v8A03/kVP8A9VMVUrxPOItJ zJPp/piNufpxTh+PE141k6+GFWQYFdirsVdirsVeZQ3mlGGM/wCJ7hqqPiOoEE7dSOe2FC/63pP/ AFMs/wD3ET/zXiqUeZr++js4n0DzDJNdq0peOXURwIFtMYg3KWPY3HpA0YGnhirGb/VPzC4RXWn6 563o245W51WOJJ5hPKoPB2kcB4RE5HrpwqftnbFUN/ib822AUS2qMTbAsdXqqhkJuW2uqni/2R/x LFVW81/8z0e0FrfxyRJp8ct076lHze/NuecFPriKE9em47dCcUrvI/mL8yLrVFj803sdrpTq7fWo tVX1FIVfTARbmYkNQk8hWp7U3VZ/9b0n/qZZ/wDuIn/mvFDvrek/9TLP/wBxE/8ANeKpTpXmC5ub uW0vteuE0m2Wuk3pn9BrvlQ3Babl+9+ryfu/8mu9euKpt9b0n/qZZ/8AuIn/AJrxVTuLzShBIR5n uFIViGGoEkbdQOe+Kqn1vSf+pln/AO4if+a8Vd9b0n/qZZ/+4if+a8VU7i80oQSEeZ7hSFYhhqBJ G3UDnviqS+Zb7U1ntBovmK5eNg4mK6lFRZecfpmb1pA3o8PU5+l8daUxVJ7XXvPrrfS3GoCJkjtk soBqSPykEirdybXi1HAs0SMy1oOTKcVUDf8An82GlTz+YniuKzyazDFqkNEQ3sfppGD6hk42helH Qnu3LYqoFfNP5xejIzfVPV9MNEg1mo5+sAQT9Z/3zU/jX9jFKYX2s/mLHBoyWerRzSGJG1uR9QUE SiZFdIh9bUBTGWavxbDsaDFCF0XzH+aTzQfpu7ht7aW4lF7JFqi1gthEnB4gt1KXcvyJB8PfZS9F +t6T/wBTLP8A9xE/814od9b0n/qZZ/8AuIn/AJrxVTuLzShBIR5nuFIViGGoEkbdQOe+Kqn1vSf+ pln/AO4if+a8Vd9b0n/qZZ/+4if+a8VWveaUEYjzNcAgGhGoFj/wPPf5Yq9MwJdirsVdirsVQFnp unGzgJt4HJjQlxGoDfCNxsOuKq36M03/AJZIf+Ra/wBMVd+jNN/5ZIf+Ra/0xVRs9N042cBNvA5M aEuI1Ab4RuNh1xVW/Rmm/wDLJD/yLX+mKu/Rmm/8skP/ACLX+mKpVeTaPpmm2Ustit3JctHBDHbQ xs8kjIWqqtwFOKlj7YVUf0laf9Szef8ASPb/APVTFDv0laf9Szef9I9v/wBVMVVtBv8ATdTgFnJZ NDPZwwyNBcRIvwThuMiBSy8XaNunhgSmv6M03/lkh/5Fr/TFVG803ThZzkW8CERuQ5jUhfhO52PT FVb9Gab/AMskP/Itf6Yq79Gab/yyQ/8AItf6Yqo3mm6cLOci3gQiNyHMakL8J3Ox6YqgdSvdHsr6 KxTSXvbmSJp2S1gibhGrBQX5FKcifh+RxVQ/SVp/1LN5/wBI9v8A9VMKEBrfmTSrCxZp/L13E81Y rcfVYGZpCpICqHJagBY7dASdsVTrSZ9G1FriIad9VuLVlWa3uIY1cB15I3wlgVbtv2OBKYfozTf+ WSH/AJFr/TFVG803ThZzkW8CERuQ5jUhfhO52PTFVb9Gab/yyQ/8i1/pirv0Zpv/ACyQ/wDItf6Y qo3mm6cLOci3gQiNyHMakL8J3Ox6YqrfozTf+WSH/kWv9MVd+jNN/wCWSH/kWv8ATFVK707T1tJm W3gjZY2IkMa0UgH4uh6YqjsVdirzPzp5C/MjVta1O40XzO+n6ZeIot7UXFzEYnMADlTEKpSe0tyv BvsvP/NRlUVqGg+fl8pL5cs5mn1b60biPXGu7iK2+ri9NwIJZPrD6itYB6VFL9QOdK0VRHkjyr58 0rWnutc1tb/TZIbnjYCW4m9GeaeNkCPP8TxpDFReZ5KWbcg7Kp1ap5zNrCVm0zjwWnGGalKDpSSl PlhVV9Pzr/v/AE3/AJFT/wDVTArvT86/7/03/kVP/wBVMVUrRPOhtYSJtMoUWnGKbj0HSklKYVVf T86/7/03/kVP/wBVMCu9Pzr/AL/03/kVP/1UxVD6fpWu3V7pd7qlxaG209Hlgt7SN1Bmki9JX5M7 LRY3kAAH7WKsjxV2Ksfm0vWDfWmq6VPaxSPZC2vIpkd43CsskLJ6bJT0+Un/AAWKqvp+df8Af+m/ 8ip/+qmKqV2nnQWsxM2mUCNXlFNx6HrWSlMKqvp+df8Af+m/8ip/+qmBXen51/3/AKb/AMip/wDq piqldp50FrMTNplAjV5RTceh61kpTCqI0fStSh1G+1PU54Zru7SGBFt0ZI0ht+bKPjZySXmcn6MC pxirF/MFxa23mW0nvpIooV02+FpLcFVhE3KEuCzfDyMY7/shqbcsKou70zVm1n9M6Nc2oW7tY7e4 WdHkVxC7yQujRuv+/wB/wwKu9Pzr/v8A03/kVP8A9VMVUrtPOgtZiZtMoEavKKbj0PWslKYVVfT8 6/7/ANN/5FT/APVTArvT86/7/wBN/wCRU/8A1UxVSu086C1mJm0ygRq8opuPQ9ayUphVV9Pzr/v/ AE3/AJFT/wDVTArvT86/7/03/kVP/wBVMVU7lPOQtpS82mcAjcqxTUpTetZKffhVP8Cpd5h16x0H SZtWv+QsrdoxcSIAfTSSRY2lapX4I+fN+/EGgJ2xVhei/nn5S1fV7XS7e1vYp7p4YlM4toqSTAfB 6bT+s5ikJjl9ONuDKeW1CVU51b8zPL+n+aH8rLHPe68sUMyWVuIuTid2UKGlkiQMiqHbkQOJFCSa YqreUPzB0bzXc3sOlw3AGn0FzLMsaoHZ3QItJGZqiItyUcKbcuQZQqj7PzH5eW0gB1KyjIjUGMXE RC/CNh8R6Yqrf4l8uf8AV1s/+kiL/mrFXf4l8uf9XWz/AOkiL/mrFVGz8x+XltIAdSsoyI1BjFxE QvwjYfEemKq3+JfLn/V1s/8ApIi/5qxV3+JfLn/V1s/+kiL/AJqxVRs/Mfl5bSAHUrKMiNQYxcRE L8I2HxHpiqt/iXy5/wBXWz/6SIv+asVd/iXy5/1dbP8A6SIv+asVUbPzH5eW0gB1KyjIjUGMXERC /CNh8R6Yqrf4l8uf9XWz/wCkiL/mrFVG88x+XmtJwNSspCY2AjNxEA3wnY/EOuKq3+JfLn/V1s/+ kiL/AJqxV3+JfLn/AFdbP/pIi/5qxVRvPMfl5rScDUrKQmNgIzcRAN8J2PxDriqt/iXy5/1dbP8A 6SIv+asVd/iXy5/1dbP/AKSIv+asVY5+YMHlTzX5Q1HQ5tWskNzGfRmMsLtHIu4ZKutG6ite/hir GPy1/LDQ9E1C+stG8wapd6ZaQwhnjvmWBrqYu0gEcHGMcI1j8T8R3wq9A/wrB/1ctS/6TJv64FUr zyrD9Unpf6i59NqI15Lxb4Tsd+hwqoWGoW2ia5faVqGpH6u8MF5YyX04L/GXimjV5DUhDErf7PAq bf4l8uf9XWz/AOkiL/mrFVG88x+XmtJwNSspCY2AjNxEA3wnY/EOuKq3+JfLn/V1s/8ApIi/5qxV 3+JfLn/V1s/+kiL/AJqxVRu/Mfl57WZV1KzkZo2Cxm4joxIPw/aHXFU3xVSu7O0vbWW0vII7m1nU xz28yrJG6MKMrowKsCOoOKoN/LegMlwg0+CP603qTvFGsUjSeq04k9SMK4cTOZA4PIOeQPLfFVE+ UPLD2zW1zpkF7G7mWU3qC7eSQhBzkkuPUd24xIoLE0CqOiiiqMtNH0mzkElnZW9tIFZA8MSRtxdz Iy1UDYueRHjvirGINetI4I4z5UvAUUKRTTm6CnU3IJ+7Cq//ABFZ/wDUqXn/AAOm/wDZVirHpvzk 8gQXrWdxpU1vcRu0UonWwiVGVp1PN3uFRRW0k3Jp0/nTkqr6H+ZXk7ULWBbDRnmIiZhEH0wyBITw kYq10r0VhQsVxVZH+b35eyQ+sLJFiqyh5J9IjB4yNESOd2tV5oQGGx7Yqul/NnyDEA0lgioWRC/r 6QVUyo0kfNheUXmqEry69sVVbP8AMTyl9aj0hdGYaiiKFsjLpZlYeiJaopulaRfT+LkopT6cVaH5 peRSoYWEfElQG+saPQmReaf8fn7S7jxGKtN+afkdYJrh9MCW8DxxyzvLpKxhpYhNGA7XYU84zyWh 3GKoS0/N38vFjtYBYosjwJKkbT6TUIVTiWLXakV5rTkAT4YqyP8AxFZ/9Spef8Dpv/ZViqnc6/Zv bSp/hO8PJGFKacK1FOouSR92Ktx+bvLt1V9M0SbUrcBCbiCO0RA0kay8P38sLclWQcvh2O3UEYqv /wARWf8A1Kl5/wADpv8A2VYqp3GvWclvLH/hO8PNGWlNOWtRTr9ZNMVY7H+dv5cOSP0ZLGQhk/er YRbCOKTj+8uF+Pjcx/B9qtRSqsAqmVp+Zfk67tHu7bSTJbxRLcTSCTSgI4ZBVXkrdgopHdqYqgpf za/L6ew5/UUSO5iBjEtxpMDESx80qHuwy8lau61piqOj/OLyhbyx2sdq0TSyPEiJc6UqmaPgHjqL zj6g9Rfg+1v0wKiL383tAsvrYu7SeFrFTJeRtcaZziUU3dPrnIfaHbuPHFVLUPzb0BXTTpLC6a7v isFvaLPp5kdp0LRjil07KGXfkRSmFVp/NryfetGptPrLcxFEDdaRIebkgIv+mHdihFPb2wKop+an kZ7W4vF00fU7R0iuLozaSIkeRQ6KZDd8fiDbb4VQsn5t/l9cQtClgpaa2M4Uz6UhELKtGcm6/d1E i05DFWQr5ksWUMvlW7ZWFVYDTSCD/wBHWKt/4is/+pUvP+B03/sqxVbLr1pLE8Q8q3lZFKjbTl6i nVbliPoGKsxwK7FXYq7FXYqxCDy55plgjlGrWSiRVbi2nzVFRWh/0zCq/wDwv5q/6vFj/wBw+b/s twKkM35OLNqbapJcacb9pjctP9RugfVJhJagv6f8esfamx/mapVCaT+SllbPb39q2nRTC2a3jDWV 2/GGfk0kfF79l+IytXbucVbH5F2nqCRrmzlkCzJzlgv5WIuQRMSX1FiWcNQsd+n8ooFdF+RVjFfy X8c1iLua7XUZJPqt6a3SNIyycTqHHYzPtSm/TFURpn5SGGWLUba4sYblo7ajGzuyQLa3a3hBBvyP ghlZem/ffCqXTf8AOO+hTJIkg04rKY2kX6pegMYUMcZNNR7Kx/X1wKjB+R9oNPj04TaeLGKeK6jt xaXgUTQIY43/AOOh1CGh8e9cKpWv/OOvl68jjuJVseUkMSkNb6hXgiqFVv8AclvTiOuBWc/4X80j YaxY/wDcPm/7LcVU7jy55qit5ZRq9ixjRmAGnTVNBXb/AE3CqH0v8vtY0iBrXTtahNqxEhF3ZvNJ 6rqPXfmlxCKSy8pacdix3pTFUZ/hfzV/1eLH/uHzf9luBVk/lzzVFBJL+lrJvTVm4jT5qniK0H+m 4VY8PyRtBJJKsunLJKsqSMLK7FVmM7SDa/8A2vrcv306KtArdl+SdvZPcvaT2EMl3DFbzSJaXgf0 4OPpKjfpCqen6a8SlCKCmFVKP8lbbTuV7BNZGaCJFQm1vXbjbus0ajnqDf7sjDe7VJrU1VUrH8gN KsY0itXsY44xOqKba+aguolhm+1qJ+3Gir9G2BUTqH5I22oXk95d3FjJcXJBnYWt6oYBi/EquoKv DmxcrTiW+KnLfCqvL+VU1vqI10Xlm+pWoaWKX6pdseXorCxCm/KcniiRWNKtxFegxVL5f+cf9Hlu ku5BprXCeiFlNneVpboI4h/x0NwEUCnem9cCq9r+R1pa6SdIt5rCPTTPHdG2FpelfWiNVep1CtfH ffvXCqAuP+cfNEjhuZj9Rk526wzL9WvyZIoeDIhrqO+8KH5jArMbbyf5jtreK2g1WwjggRY4kGnz UVEHFRve9gMVVP8AC/mr/q8WP/cPm/7LcVWTeXPNEUMkratZOsalmRNPlDEAVoD9cO5+WFWX4Fdi ryOyT8+oru3S+M8sbW6yGSCTSZIhdPLGPTuecNtKsKRrIWWEOwrtI56Kp/5g1Pz5e3d3P5XivPqk dky2KPDb2qNe8Jy/rpqEcdx3g9Ix/AW5BzQHFV0XmHzNpWuapqvml/0d5VaMnSYJnskZHWGJ3jmK O7vIzLJ6QjcjZ+Vf3ZxVuG0uNH8t6Pr91fXZvYjZy6w093cPAY7krHcloZJGiVYvWLii7ccKouTV NK8zeZ7fT9P1Q3OnWdnNcXp028dAZpJY44FeW1dT8KpL8PLwwKttfNei+XYtW0/WNUjjl0yaV7VL y5BuJbaSJbmPiZmMknH1GiB3Pw4qho7WbRPL2i6/dX1211EbNtaae7uJIWS6AhnZopZGiRY2m9XZ RxC4VRj6npXmbzNDY2GqG506ys5Z7s6deOgaaWVEhDS2sin4FjlqpbuMCqdt5s0jy5a6vYaxqcYu NKmme0iurkG5nt3jF1EE9VjJJxEhiB3JK98VUIrWbQtB0PXbvULp7mJrT9NyXF3cPA63SiCZ2ilk aGNUkmEtQBxC+FcVRZ1HS/M/maOzsdTNxptjZPNcHTrySNXnnmRYuUtrIlTGsMnwlv2wadMVUbfz fpfl6w1ix1XUYzfaTNcm1t7q4BuZ4WT61bqnqMZZaJKIgdySvc4qsW0bQNG0LWbjUbqR4XtU1me6 vLiSKRLlPq7yNHLI0KATSrISqjjTsMVRCXmn+aPNLw2WqNc6Rp9ikk/6OvJI0a4uZmEdZbWRCSiW 71Xl+0DTpiqHbzbpmhaNren6jqaLqeltdi2hnuAbqWJkNzbCP1G9WQiKVIwakkjrXFVW5s28s2Wj 6rd6hcsYJoINcnubyeSF1uENuZDHLI0MYFzJG9VUUA7DFVSO707zR5mlistUa50nT7KNpP0deSRo 1zcyuF5S2siEmNID8Jb9oGnTFUG/m/T9E0LW9Ov9Uj/TOlNeJa281wpupkZTPZhA7epI3pTRpXcl h44qibix/wAMWuj6lc6jcusEsNvrdxdXk8sLrPGYfUKTSNFH/pLxtVVFBXtiq+K507zT5lnWz1R7 nSdPs4iTp15LHG1zcyyfaktZE5FI4BsT+3iqCfzfY6N5d1nTbzVIxrumG9itLae4U3coPKSyoHb1 HZopYhy7nCqMurJPK6aRqM2o3LQRTR22s3N5eXEsLJNE0QlZJ5Gjj/0kxmoAoCcCugu9O80+ZrlL PU3udI06zg+LTryWONrm5kkLcpLWRORSOFdif28VQc3nKw0ny1q+n3WqxDzBpn1y3tbaa4X63IQW NlQO3qOzxSRfF3JwqjL22g8qtpGoTajc/VBMtpq1xe3k8sJWaJlSVluJHjQ/WBGKin2jgVu3uNN8 0+Y7v6rqclzpOn2sCodOvJYomuZ3laTlJayJyKRxx7En7WKpfP5wtNL8qarptxqsX+I7AXdpaW81 wv1qV+TLZNRj6jNJG8R5UO5wqmF3bW/lafSb6TUbn6k0hs9VnvryeWHjJCxjmYTyPHGfXjRdqfbw K61uNN80+Yr5rbUpLnSdPtreOM6feTRRNczNK8pL2sicysYipU7VOKrNJ82aNaaNPper61BBqtg9 zaSLcXCLdMsMjJDLR2Ds0kPB6964qzHFXYq7FXYq7FVGyNbOA8/UrGh9SlOXwjeh8cVc5P1yIVWn pyVB+19pOnt4/RiqtiqQReZZBM1jZ6beao9pFD9Zubc2yRh5Yw4X/SJ4G5cSGPw9xiq0+Zp49Uso b3SLuwiui0CTzmzdRI5XgD6NxM4DEcenUjFWQ4qo2RrZwHn6lY0PqUpy+Eb0PjiqC1vVotKjF5Kj Sqq+mkEQQzSSTTRRRJHzKLVnkC7sNyMVS3U/OlxpsKS3fl7U1Esiwwxo1hJJJI/2UREu2ZjsTsNg CTsCcVTHy1q8Wq6RDcokkbpyhnimCiRZIjwbkEZ13pyFGOxGKo5CfrkoqtPTjoB9r7T9fbw+nFXX ppZznn6dI3PqUrx+E70HhiqtiqihP1yUVWnpx0A+19p+vt4fTirr00s5zz9Okbn1KV4/Cd6DwxVW xVRQn65KKrT046Afa+0/X28PpxV16aWc55+nSNz6lK8fhO9B4YqrYqooT9clFVp6cdAPtfafr7eH 04q69NLOc8/TpG59SlePwneg8MVVsVUUJ+uSiq09OOgH2vtP19vD6cVdemlnOefp0jc+pSvH4TvQ eGKq2KqKE/XJRVaenHQD7X2n6+3h9OKuvTSznPP06RufUpXj8J3oPDFVbFXYq8+/MRPza+vTTeTm rZx2UYjgWSyVnunkkVyEuoX58EMbbzRqPCQ/DiqzUNT/ADCi8sy2dpBqEvmSS8R7BZI7NZjYCdfU E11HFNpcchiWTj348duZxVFeSD+af6af/FCoNHaG5kg+K2adJDPGsEMxgVVYrCjtzQAHlQgFRiqd 2lt5yNrCRqum0MakcdOmp0HSl6v6sVc1p5y+tR/7ktMJ4P8AH+j5+Q3TYD690PfFVX6p5z/6umnf 9w6f/suxVd5X0qewsJJLq4jur2/l+tXU8MfoxsxjSNAiFpKBIo0UfF27dMVX+YNKk1S3FrHIkE1F mguWX1DHNBPFNE3p8k5LzjBYVHzGKqX1Tzn/ANXTTv8AuHT/APZdiqlaW3nI2sJGq6bQxqRx06an QdKXq/qxVSuND1+91LT/ANKahZzWdrL9aeK3tJIJHaIho15PdTjiJeLn4P2QO+Ku8wXlhYeZtHv9 TlS3sIbXUALmZgkMc9IZAWZqBT9XinNT+zyxVZpmm6x++v8ARtWsfqepmK5KtaPcKJBBHCxjkiuY F4t6INOPWuKohbTzl9ak/wByWmA8E+P9Hz8ju+xH17oO2Kuu7bzkLWYnVdNoI2J5adNToetb1v1Y qq/VPOf/AFdNO/7h0/8A2XYqpLaecvrUn+5LTAeCfH+j5+R3fYj690HbFXXdt5yFrMTqum0EbE8t Omp0PWt636sVVfqnnP8A6umnf9w6f/suxVSW085fWpP9yWmA8E+P9Hz8ju+xH17oO2Kuu7bzkLWY nVdNoI2J5adNToetb1v1Yqq/VPOf/V007/uHT/8AZdiqktp5y+tSf7ktMB4J8f6Pn5Hd9iPr3Qds Vdd23nIWsxOq6bQRsTy06anQ9a3rfqxVV+qec/8Aq6ad/wBw6f8A7LsVUltPOX1qT/clpgPBPj/R 8/I7vsR9e6Dtirru285C1mJ1XTaCNieWnTU6HrW9b9WKqv1Tzn/1dNO/7h0//Zdiqktp5y+tSf7k tMB4J8f6Pn5Hd9iPr3QdsVbubbzittKz6pppUIxaunzAUA33N4w/A/LFU+xV2Kpdr+vWGhad+kdQ 5LZLLFFPMoBEQmkWJZJKkfArOORFaDfoDirFNO/Ofyjf3GpWsMd2t3pNjJqN/bukfOOOKCKd0NJC PUHrenStOasK0AJVTzQfOdlrOoz2Mdnc2rxfWDDLcCHhOtrctazNH6UsrALKn+7FUkEUHWirdr50 8npawo+uaYjqihkW7g4qQBUD4zsMVafzp5N+uRN+nNOIEcg9T65BtVk2+33p+GKq3+NvJn/V/wBO /wCkuD/mvFVK086eTltYVbXNMRlRQyLdwcQQBsPjOwxVp/Onk365E36c04gRyD1PrkG1WTb7fen4 Yqrf428mf9X/AE7/AKS4P+a8VUrTzp5OW1hVtc0xGVFDIt3BxBAGw+M7DFWn86eTfrkTfpzTiBHI PU+uQbVZNvt96fhiqWecb/yB5o8s6hoN35g01Ib+JovV+s27mNj9mRVZ6clO4xViv5PflV5Z0vTL y6sb/ULi2luXitZotQnhikSFVjkcCzeGNx9YWXid/hp88VZZrVhB5ekh1qC4u47e1ntFvXub66ni e3nka3k5rcSyIBF6wlr2piqZXfnTyc1rMq65pjsyMFRruDiSQdj8Y2OKqv8AjbyZ/wBX/Tv+kuD/ AJrxVRTzp5N+uSt+nNOAMcY9T65BvRn2+32r+OKt3fnTyc1rMq65pjsyMFRruDiSQdj8Y2OKqv8A jbyZ/wBX/Tv+kuD/AJrxVRTzp5N+uSt+nNOAMcY9T65BvRn2+32r+OKt3fnTyc1rMq65pjsyMFRr uDiSQdj8Y2OKqv8AjbyZ/wBX/Tv+kuD/AJrxVRTzp5N+uSt+nNOAMcY9T65BvRn2+32r+OKt3fnT yc1rMq65pjsyMFRruDiSQdj8Y2OKqv8AjbyZ/wBX/Tv+kuD/AJrxVRTzp5N+uSt+nNOAMcY9T65B vRn2+32r+OKt3fnTyc1rMq65pjsyMFRruDiSQdj8Y2OKqv8AjbyZ/wBX/Tv+kuD/AJrxVRTzp5N+ uSt+nNOAMcY9T65BvRn2+32r+OKrrnzl5Qkt5Y49b02SR0ZUjN3BRmIoFPxjriqfYq7FVG8srO+t ZbS9gjurSdSk9vMiyRup6q6MCrA+BxVLrzyb5QvZI5b3Q9PuZYmkaJ5rWGRlaZ2llKllNDJI7O3i xJO+KonT9B0LTrm5utP061s7m8PK7nt4Y4pJm5M9ZGRQXPJ2O/cnFUjt/OE0VvFF/h7UV9NFXiHs CBxFKAm6BOKubzhKbhJf8PalVEda87D9oqen1r/JxVU/xrN/1L+pf8FYf9leKqdt5xmit4o/8Pai vBFXiHsCBQUoCbrfFXN5wlNwkv8Ah7UqojrXnYftFT0+tf5OKqn+NZv+pf1L/grD/srxVCWP5iaY wXT7bTb2XUrReN7psf1f1LYKF4eq8kyR0kDVj4ueQr4HFVdvOEpuEl/w9qVUR1rzsP2ip6fWv8nF VT/Gs3/Uv6l/wVh/2V4qp23nGaK3ij/w9qK8EVeIewIFBSgJut8VcvnCUXDy/wCHtSq6Itedh+yW PT61/lYq6584zS28sf8Ah7UW5oy8S9gAailCRdbYqlMX50+X3vZbJtN1CCeKVoP9IFpbxvKknpMk Us1ykcpEnw/u2O+KrYPzh8tTajDHb2s9xcX0dLdIbnTJSywCR3aiXbcVUBqsTTt1xVRf87vJ91YT sqMYm9SEmS80uJSQxjO7Xg2LAgMNj1FcVRNx+dPla24+vDJGGMQ5G60viPXjMsJZvrlFEkalkLfa 7YqrTfmho9tqU8NxYXEN2sa+rBJc6YsiqgeSrRm8BUcCWr4Yqhbv84/Lb6fbt9RuXTVFjWxjE1hz mF04gi4ot0ZOLSMFLcfh79DiqIl/OHy5E0iywSRtFUSq13pQKlXMR5VvdqSAp/rbdcVUl/N7y2Ly +P1WYNaRR/XWN1pnGJfVeMeofrfFT6lV3PXb5qoeT87/ACfdQLDHE8rXqypAn1rTBzCBw52vKhP3 bfH0/DFU+tvP6XVvHc2uiX89vKoeKaKTT3R1PRlZbsgg+2KuXzhKLh5f8PalV0Ra87D9ksen1r/K xV1z5xmlt5Y/8Pai3NGXiXsADUUoSLrbFVT/ABrN/wBS/qX/AAVh/wBleKqa+cJRcPL/AIe1Kroi 152H7JY9PrX+Virc3m+aeGSH/D2on1VKUZ7ED4hTcrdE/cMVZTirsVdirsVdirA9Ts9a0nTEv9R1 i1hhZoYuCaVdXEnqzusccYjhundmLuF2XCqCt9SguIYJo/OGjCK49EI0lq0TCS6QSW8TpJfK6Syp VkRl5Gh22xVTfW7COwttQfznoyWV7O9rZztZyBZpIpfRk9Kt78ao/wBp1+ED4q8d8VdHrWnsqh/P Pl2OYxLM8JROSq0frVI+v9PT+Kv8u/TFV0erWspuxD5w0aU2EM9xfJHaO7wxWzBZHeMXxk4gts3G h8dxVVNdL07VNWtBeaX5l0q/tGJVbi1tHmjJHUB475l2wKp2P5farb3Uurw6skeq6iqnUxNavJA3 AAQLHELhDH6S8lPxtyrU4VRp8teahIE/S1lQgnl+j5aClNj/AKb3rgVd/hfzT/1eLH/uHzf9lmKr IfLXmt4kdtVskZlBZDp81VJFaf72dsKtjy15qMhT9LWVAAeX6Ploa12H+m9qYFam8tea0id11Wyd lUlUGnzVYgVp/vZ3wqxu/wDyN06/uPrN1+i3uDcNdvKLC5Rnndi5eQpfL6hBJ48q8RsKDAqlpH5F WGkzn6hJZw0Ukhra+kjb1Y2gbkj6iys3psVqR0b3xVzfkZaQrLMs1pPLS4ekkF/Izvcx8JjWTUW+ KVAFLddl/lFFVr/kBpMgcO9iRIYWcfVr6hNvG0MRp+kf2I5GH04qitS/JmPU76a4vbizknkALyi1 vYwS6LE/EJqCgFo4ESSg+JQA1RhVdN+T5VrS6W4spJtLWI2KC1vKKbVne3FPr/FjGZXCcgaBiOhp iqFvfyE0u9ubi5uW0957oFbiT6peqXDTeua8dQHWTf8ADpgVuL8i9Pit9SsImsY7TVOL36LaXgSV hJ6i9NQqCroDtSnyJxVQufyA0nm13/oMlwkU8aAW98CUnD+og/3I0o/qsPkadMKsm0nyDrGkadBp um6jYW9jbLwghWwnIVak9WvSep7nAqKHlrzUZCn6WsqAA8v0fLQ1rsP9N7UxVqby15rSJ3XVbJ2V SVQafNViBWn+9nfCq/8Awv5p/wCrxY/9w+b/ALLMCrR5a81GQp+lrKgAPL9Hy0Na7D/Te1MVal8s +aVjdv0rZScVJ9NbCVWag+yCbw0J+WFWXYFdirsVdirsVQWsaLpWs2X1HVbVLyzMkcrW8oqjPC4k TkvRgHUGh2PfFXmnmjyf+QHlJoW16xi08TtFcxVa9ZGNkVhjJETOvweuBxPWpNDQnFULqWtfkBeW 1noVxPLqB+tz2cFjz1OSeSee4jNwshZg8q+q6v8AvGI2+HpiqF1y6/5xwin1TSdUSQrayiXV5GGp soubB/q6h5VJaSQNcGvEty3LdsVTzyNp35KazbXWj+XLf4rixM19p8j3ayi11OGENyMr/wC7I4Yq 8W22P7W6r0HRdA0nRLZrXS7f6vAxQsgZ33ihjt03csdooUX6PHFUfirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqB1PQtE1UAanp9tfhQVUXMMcwALKxA5ht uSKfmBiqEHkvycJBINB04SK7yK/1SCoeSnNweH2m4ip74q648l+Trl5pLjQdOmkuGd7h5LSBzI8j Kzs5KHkWaNSxPUgeGKonTfLvl/S5Gl0zTLSxldFjd7aCOFiiABVJRVJApsMVTDFXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/wD/2Q== uuid:3535F2090E21DF11B723F15DE4291FC5 uuid:3635F2090E21DF11B723F15DE4291FC5 endstream endobj 891 0 obj<> endobj 892 0 obj<> endobj 893 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 894 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 895 0 obj<>stream H‰”WY“G~ׯ¨Çj‡ÕS÷±o0xØe 3òúˆA#Ù:°¤ñ˜¿_VVu·coL„¦3;Ï/ªÖâÃìâ鵎3ú”Dô±÷A¨^¥,þ›s‡ÕìýÌÄöÚy8{qy by3ªœ„ƒŠÉY-ŽËÝÌ;ïñÂ+'4=-ðý’ˆèUèsPº¼3©W†_>^Ì.®ŒÐbñ~–ɑȠ¨/¶3å9¼+Äb9£'ļx˜½–WϺ¹ïƒ¼zÉÿÅÓÕŽž²\uPÉòÐÍ#þÝ0uÚWZt¡ò÷@T½îÞ.ž#ËA ©ãÓ5®ÀG,žp$Ú—H8ˆ‡‡‡.¨ÞËþõf]ü{ùG¿Üo‹Ù@¬$P’D“š.ÁηB(ÇWp@áà]ÆØ-~£ž{×§l­˜ëÞ˜1ÔL¬—8àŸžj)zÑÍ ‰GŒ&×Är#ªHî®ü^&•V«.JÊÓƒCñ“A[ÙžŠµ-Ų¦•bá²]½?;Âh-?À·é-j楸ÁÏî’—ûÎÃ÷ît耔{*¢•›†êoh«µ(­<à>"÷܇Òt?'v­ï(„GªB×®»x²_ÞoW»“¸xq‰‚<~r9ûqÒõ@Ò–Ah4´Ó:•fÀ„š°ê}œîUŽb;ƒ‹b°}LZlf>÷ÐL±wÁ *£ú“¢®@q×äWçÐfíO\øÔ;í&.FÆ—.~k@) ˜kšÐXÐXßʹÅà}íÿküí$¿p€Ê¹0u00¾pðã7S®w>uزE?)L0Ø‚ñï¦Y¬!‡›Å)ÚFãËFÖhXúï].ö°%œU=Á^4}Ö¾li§( ˆˆ£`9h=a@Eg.Œg‰Lž&YÂFÐÓ~¼`t2E‰8ŒvS‰@‡À”aa#N¼@‚VÏGÝ¢—×âÏ2¾¾ü7VÚs¬Ž_pR öB+ñB¼~«Äí,&ÔßO±¨Œ!†ëYÂÙ”íD¦1™dz•¾Æ@»Mq¦Ð»üzÌ#%4S˜z©ŒI$ÒÓH2&ËðZš†Fv3ª`ýWƒU¨¤Ò#öV§ÒL¾ÄÚ£Dꃊ_aLÒùë= 6½Î“l´Â>ÏqÒˆZáXðS r†È4!­L¦‰ ¦m¥ Z:ã4G­)˜p¶>µŠhq}ÆqlgpE2´†¦‰k04—:rV`ø4pˆŽÊ0]Iç+iŲ(Ä+ljdªDvLWƒ¸'±BÊìÓ[²f ¢Ð¶Ò¸°Fö¡pœb“9° ×4*íUó1pÕ,xœÅìƒ[<`ˆ«†á<ƒ­>˜òì¡æbËÁ9f´¤uÕ®IÇ*ÝìGVˆÊWX͸†šl…‰8›3•f3»›MË“†¦šzªÌuºS"ãØ¯vƒ•i1…(td Áœ‘. •c«¼›´ÔT Æ›å•b4tˆ’átÅ:5ÚØªÑö‹7¡&Ÿ“þŒ4ûüg}ΙjézûœÃ€1¬±<· .¶ÌÈ|ô†L ÄŠ2̤Xèì«£Z=ºšítÉP×SÌ:î?ãy7˜«åfȸº8Œæþ Vtí§Î$RÍ´hèÌ›D„Ħj€Wi›Ý$¿Œc}šƨÅ!Öðž-dËøÄÅPÁŸÑFŦQ9¶v¦ocÝĆ6·¶pu—DmÅ%JW;×ÖFËjh¤ÚZ¹Æ]Pðt÷Qò½>ßM`®£ :ÅI˜f ®Ô(aã™.ôă®ŠËÆ}Òâk}4fÇyÖÜi܉ ƒÚª#H`(=Ÿs1N`éVˆ‘Ã¥jZ)Ϧj¡BÐu¦<Ý£'¤qDä Ku&CÝIt&³|»@Õ&ЇÞ%3IK ¶”9Iì‰:s†I]Ç…1²eS×s²Þ!Úõ ·»v>[TD׉öL‚ë8ZàJO]p+´ Z«´[3Y´vky¶vl8Ô~ÂU¨B—êúv!Ž@ä8"c«|­¬7â³yXâbõËK|z]<½ÖâÃqöx1»¸Bƒˆ®\1₯?iÐOÂ:ØHb±Åýÿ¾ˆ”Bà‹%?Y±x˜½–דŸº9B»åÝa¿ÛßÅ«ÕquêÞ.žÃ…c—Ÿâ¡<в™böp^TËçbyq·]ÇO°Ûa>ä¡Ó¸QJvQ‰U‡•#áM¬wïOâ¼~u½èæ¸KQ"О¾õð‰)OؾgûûƒøùÕ‹t¯žÐ£(Þ±ÕÍiÏVæÍÌŸ@tS­ÆÌ¶ªaÃæå¿þIöðOÜî;|¨È-ù¸épÑ–kDìä®Ã¢|ÓQ†ë#ýîw›O啸ùý†…6å÷¦›£…ä;¦Vâ}G`ïaÀɃ81Jï6ûå¯âգߪ Å-[8žüðîþ´º%A)îœØâ»½-yÌégKIäØˆw¾Œäú}©À `ÎËb½ý¸Y!·ˆÜ4bwºéÐÚòTÂ[w°EI‰ý{ÄØá ¡ Ëýv»ß]¬a` ë·««Ý-[cÎI,)¡"S´®Êã³nnúT‰—cµPk=6´ÂÍŒº1à•ì>@ÈÀýÛþ ¶3B›€®@AVëƒþ±q˜q‰î’§Ìu©Ä”byŠ.=ñâ \ú×'Ü阘[‡’œ;r9‰cäbyÔ±T"õž=àÏ»Ë{iúðaàØ“5;‡ÎÎðOw m:íJ*1^]‹‡›¯Ýî®»Ô?§;u°D’ˆœÖ½k#6Ô«è‡õÉG„¡BQˆÓg¯q È0v˜?½ ÌŠaÑ`FEIþ½<ù ÀàÙÉèÚÞ¢¬ åõ!5?p&7ê7?' B{®>0ÃQDM¸ ØÆ„cŠBÐѧg¥tÄvÊ ¼‚;JÒ2ù’ë?«/éafp ó…ŽùtÎxgöu½óX€°Çuq#¬Ä.ú RptÓÀgciRCU>.ê9 6¾;e?ºS¥óù ú ‰ì,YäkuS\®XŸ›Ò nî8›éâû‹ýù”RQ,(!TÎÿÞÔ"©½@ñÛú>~ñü]N›à©¤ÍTÓfhÓm3»àlVŠí9¿ÇþÝþ?bÙþ%²;õ’^v0TH9½RN®YÎT5SÄLÀÍQ¨á›¥¹±³‚Ë ÷×Í1s‚™÷A›ìÉ:MÒêŒáMŸçÑ3ýOê•üÙ ×o,÷¸çˆAúà>ãoŠ[Ð lÖ ÍÖ´$¸¥¸añáËMž¯ºü¶Ø,Ÿìã<À3 y£|ús¶@lïFåýÙšúHãF6éßLˆ4•ÍLhë;Æfµ[éÇêr£ÐQÖ3Êz¡/Öï×^$tfO£ì餴„;…9MaNþñ™þ`Ø$Î^•È…àpÒL÷×7²ëƒ_ìîQÁ9=%«у|ws†Ç¨‰o³À +viEEàÄ[4ýáRJ D@ó Í"0/’·1&Ünç’o àѓ۱;½…q4E·Ã½3Ýíé§:}äöÊ|”­Î彄û§ O”áùm!9~}ÇGÀ6þá¡‹¿ ÐXþ-‚§‰HSI94jåÉáO¢W¨øÀ@o‘"å銯²<âýrDhChÿ!>â8šAÈ $8ÄG(Wò$šÙ‚D#Ð>Î8 úB4 Ëd3ÏBSÎÆ‚“Y³QLõãûlhZ?ø·%¯5;|c€¡7~÷[‹wÀÄvVÓXxÒ…å/³f?Ï•–LjgEJ§…eí€ƒÚÆ‹7ì  žŸ“iæx‹ÍØ¥Ç\bðY³ÍL‹¥pð0µ»ñ#´éCƒ ®É?"SB›)èXFÅÌ~b“ìC‹gg´mŒ5‘mcpt¶ˆÙ’ ¡½+2 øÛº5iÄKŽ7„¬0/;Ô-4Zx¨,p³u‹š;8¢ü——JÝä±Ä1‘wv€¸{§¨BÝm©å2e†'t?‘3¼TœÙ޼ laλ퀒Ÿ1ŽÊ=Ñ’2†É0³°@Ô‡Ö#b½_x†t{dq2eu.ž ™Ø*„%˜Ø$¶Ž¦ã´66–êØ#oÐuÔqt³¥ñ\1Õ³ S=WKõ ed!N®´iÙjhWHuŒ>`ÍÔ:®–âÄçHã¸fÇ3¤:Æ…(¦:®–W«¿ä…»% endstream endobj 896 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 897 0 obj<> endobj 898 0 obj<> endobj 899 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 900 0 obj<> endobj 901 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 902 0 obj<>stream H‰”WÛrÛF}çWÌ#2!Ì}fßbÉrÙU^W,nåÁvm1$1¡@…¤¢(_¿§§gpqÉ»»l¢Ó·Ó§€·‹³·WRÜÊ5!o}ch©ÚVãWé£8t‹›…òå¶±t`~÷ìüèÄæ¥oc-.ZŒ–â¸éÖ£èmk„¤‹d„ÈtË5ѵ2ÝS¡iß|½Zœ]*!ÅêfÉ¡ˆÂ¦0_Ý/Z/¥Eb« ÄÕÓ¢ò¡^ý ;ÍvCVøË™(Ó8¤.Vl,-®žžžj×6¶jþÜî¶}½´¸þ³Ùìï믫÷‹7+ÔUÊ;£Á Fàâûù¯š6ÌsnS¶”7eü¹º|W›ÆW—ÓxÛõ¸ÐUW/MuXŸöñ‡kdÊb¨‹R÷Z‹¥l”jÉ@àÊxöý¯zéS½­U%}½Dê•?>ê¥tÐowBFV¿ªå+Ù–ŠÿGOuƒ†yc©¶¶‰–¸0öÖ÷ÐW4xr+!2Rt+Ed¿ÚÍ,e©ËeÌÎï¨AºZ?ðï©ã߃0ÿÈHåNØFç¹áä\oØ­±ìì¢;Ö–Ð*húmíUõ58^$ÜŠ§-šb«Ó8Õè.ÝîÄùþи~Ÿ·baAï\c…õb©Uýó¢g¾·²1 eª&aqJfÊŸ]ì7÷]g΃¯/Î?MÚ5þÐܵ:ÒüI#eHÍÀ+ã’Aã#Æ,^‰ûµ@¢tïtã0Á;hh”ÍLc1Ðj°Ú!¡¶q1´DtËXI±et™ßcC£Bœ†™h^ óýʆ(Ö6®µ7J¶úÿ‹y! :¥ä,̨y)Ì)F* ¬P¿Ï>õ¬± Ñþ>§9­‰ÓI¢Ùé,Q©½²iÛKp•~­‰ìSi¤o³M>Ádtz¨@iYPšÎÆ5ÎÇ™†æš{e”Êgz4)~t˜A0ÄŠ¨#$ <5;cãýL#áÇNcጧqòÉ„ó+ñ½ê¯Îÿ‰ÍóãW¬,Å“­ø >mÅ5‰9sJ›Ù —«-|FqŒB˜e3òœ¥Ç[¸™ÕA[LM*ÅÆSS$ {;`ÅZ±º 9wŽ^JÍGû²AÖ(Ž ó°’zŒBº TÞ)61æhÒf¬=õŸ2ã‚ãºìM=E ò7[ ÏÍŒ5d§&Ý`™-¸_ã îçè;>ưÃèq…3%˪±;L7WZxY(̱Â×GÞlŒ&dcG°G±t£hr»Š}éæ|6Ø@«²+]žwŒç2LiGÌI† D)*ðë#>œ2 Ú2:i…áfÊnl#C­Z&¾2|‚Þ˜§Í!¹<¥âì„oÃÌC0þ›1„I ™œ$ J7)‚X;©ÑçW›‚äÒ(í²Í°éÈþño²UGyœÖ 32ŸPÜ ŸGÓä%åŠ'Ù bH³mý¤̾ÕeÖóJ2QŒ`½”¡1ŸÖv^ìm~aÌF™^1̤,ç!1rv‚;Y<”^1 J…-%˦±ŒÂ·Rh¦cF¡Ðu@ Ȱù¼Ë•¶˜‹<‘¢áV¥•ó‰ØàMë͇óÅO‹³·WRܯW‹³K#¤XÝ,è­HiI$nÄêß ·ø’j[8[mÒU«Äêiñ¹ÚÖ Vu¬—øŽ«Ä¾ß%ù¹^â…¶µ«ö}'6¬Ýo~#Íõþ~½íéŠÿ?ÝuôsùîòcES½ýžëkˆ¦ºÞž8Ⱦ_³qÄ Y‚ô›»CM_W8ÀÿªUªu1«ñUõb7‘nùÖFlÙ•è»M‡«XëÃs-¥®È%|]½çï©Í1ÁÃߣ-^Î1±häêBÂâ29ÝÞ>æ|ºz©èå»2Kܱ•VɉauàB›¬ XGÀ.éoCÉ›ØRƦÚ=O‡õ©;ŠzÉ`ÝðõíQÜìó!ÂÕ=m“Ø£J]Ý œN&Ó”•¤¬è&Ûea}ìÄþF\}ºZÕôDñ©ìKÍÜènàêÓ±Ã*z¾`g?·*À¨§ Þõ× Ýî¡+WýIœïö›¶®úM¼Þí“ |šB±î“|-.¶¨EQv[üV¿ÔøòµÕ#%lªSÇŧ?bÎQ|©Þôë¤ü¥–®Ô'>uÇî$2ð /ÿ©gŸ««g ¦ƒÌ5Þ¤¹W ŒÞ?‚¡•Èr—8I}©R}?×KÌhõéßèÜÙ§‹š`¥k$E·iRxNì0'É+‚$,ÈqÜ%v>SC ¬(Å;¥Ö;>'6ûÇþÔޝ˜ZûÇÓÃãáa*¨TUXañOµ"„‡¹E1€ä”ü‡›0AféÞú*`½ýƒVIÚ"Ëqàò鎽õd&™íë#[gWtª¯»Íú\O+'„Ò“pÀõ.·G‘:‘“IM§=—¸ú;¸òô—N5e”ó½F*vOE9¿"¤±ãÖ×´ÛÀ:ò‹PA$‰j½8’"ÒFW+wûÛ-m3Ñ§Ž¥TBµéh%öÒNS m5ÞÔ)æ2EÓB‹¯²ÿ_6ÍmäF¾óWÌQL™ô3˜ßbÙÚrbÇYI)ç¶E‹”Ä$jIÚNþ}ÞÐoc´J¶RqÕlŠ1ø|ÐÝ£C7zhˆƒù*_WÈ¡K˜ÇèâuúE¼ü”dŒÑôüM’QfŸ]¥æ‡Í>Ês„¾'ÙñäEjF&‡ë^÷xá´8­>oÉ­÷•…[9ýC äÇêþK îGÑ< |ï»è‡„‰Mµz|Lia»IÉf™ÄÏ-.oS_ùëq{Ÿç¶ÐÉ=«{éÇêX}»Ý^ÝVI”B}ØvˆiNõ©žQöå:5^ÈÜsR§ ¹ÅH7<ݬ2S߯â _§Ôw‰Ž®Swûy/[ô"¥¼ÕúJÛ#®Izæá&¥ëiÎzÜì·ik×ibqµ)¾›KÏgÕ¸‡ã|åP!Úc}»ÇùBêŠ ê‚ù"HŽ:ÈO©âº–-rúìî>š4»E7Q³Ô6læòÿ^;’(Ìêð¾k;ÅI»Þ‚Ÿ ¸ÝŽ}š«‹7ü(!3·Xo+™¢#®>†B^Űî$'­îV‡c±i2r±iñÖ‡'Óˆ äÓ2 UÌY­,ÕI´ÕÆ¥´SS/¯žºœ˜…Oþ²;n^Í/¶bgLÙ»r#Ìm«f@B–Ô½Ð{ƒP´ìkĺÝÜAÌ}R?V$±dåÉ|¶wÛãmu&Ûµø4÷(ô©õâl¤—Uj|w·¸D”W{XæB1NÀY¥8özSnpxRÂÈÕMVoOO‘©®QŽ&¤\–|‘œ‰ö"Nùâõ»Ë·ççÕ*ÿ¸ÖÃðK?6)Òy¼÷p=ç‘sě܃Ëáfî{yÈß?o¤c„†Ûô¹M%êmþ—5bí )€îÒDÐþkŠî«¹“ûžá~“^ÏS¾—Õc‚Àýµl0r¤\ªA&”î(þZ]£ÜˆµqêlÿX¬ÄN€‰IºÜ=ägäV¤u çä—‚³ñ¹ŠOª=ÄܦGÜîXòµ…º1CâV\N‹lõ.`ºèÇ:XXœŠÛS‹Ë ¹âëÿ:©@›o„Ã3“Éú?øß-ÇɳñÂ,¥±ãû€¾t# €8]—_k¿ºËWåï‹ótM%JIþ‘À-‘l%r"¡Ýä_7黤îFRÒÙ/SRË/îä&5ø’ÛïµÛªM?,æ’œšLë\Ö©òÿ½¦á´‚üý¦à³*Ãsªx׈r¡—R ÞÇWÕ¨œV£ÞöFK„:F— %˜ ½ˆ_ÿ*çÓp¸Ùu0ÇàÆi]ê÷â_syWÁÜO¤Ìmsž^|âÛ~?¾Š%c̹gñ§w’vÆüåcú’ÂíJ^^¤á)R5îs|ÿtýÉ?âÔÞ^F_}íÄÞЈõlfŒ‡H3»ž½|³»úr/o¯/?œ]õúÍéìõ¥]™!åtÙÈü§o‘É›±êºnÙ¸.&—§‡®º:T¨R›Þùô.ôñ{^®ÒKWóôýŸÓ½tùÍRö¶E”"a”sx3;¹˜\]¹‚}ÚÞ“óéÃ(ËPÖ¿ñPŒò:ÐHq‹’3Æüpö·÷ïå7ì×/i·†¶ê$àÁÅ ó8×…lY=ÄMûT=`gÿ„!~Æ¿oU[}¨f/¸ðÕÍaj¨ãew ² Õý, g·HhJîf³Ù{ýÌÇY@Íu€ïÆ {|òÇ÷>NWŽª¤i{å?ée{ãâ}p±Z8ùëùÇ~ú>;ÐàÁ—«s8uÔÁÅÊ3I+×ëeÐG}‡±BÇôã$ý€J©Ç£Fć0i#†»² dwP´hÓá} FÙ5ÐØ”m° “¡B·”*­lâ—’dŠ6ˆ(I±hÓ€~˜´ñËŸE›‰ƒmD~²ôŸíd>RWùÉÒ=^âêÉÒ¥„ï'KG Ù„ÉÒñ‚$â”m Ò¤™&K¯;¨8YzB¢-—F„W˜uWDþ±›´Aìé›IØÊ¥¦/—þu˜´Al|ÙF^j&CõÍ24ݤ Þn]yè±ÓÒfDɈ%*1 I(! %Tb’PBJ¨„PBJ¨Ä$$¡„$”P‰IHB I(¡“„’PB%&! %$Q (¡“„fRHHB I(! %Tb’PBJ¨„PBJ¨„6 BfPA5@T@ÿT?µOÊÇïꪧ€æ¨xêjG Ö¨t è*G Æ) pêAÖßÕ6”@]ËÀT#PÓT4õL5#PËT2ê¿«bj˜¬¯‘“]i˜SŒ„Ž‘P2%f 5#¡gJ(M#¡jJÌ5ÊFBÛ”˜n$ô„Â)1ãH¨ SbÒ‘Ð:ÕŽ€Þ)1ñHh^&…z$t„ò‘Ð>%¦ ý#¡€Jh $¡ƒJ(a‹ß’PB#*¡•„Q ¨„$*¡•ЈJHB ¨„FTBJhD%4¢’PB#*¡•„Q d ¨„$”ЈJ¨Ä$4¢Q ¨„$”ЈJhD%$Q ¨„FTB“§ÔŽm)¡“„’PB%&! %$¡„J(!%$¡„JLBJHB •˜„$”„*1 I(! %Tb’PB•€*1 I(a&…„$”„’PB%&! %$¡„J(!%$¡„JLB¨|Y𑘄$”„*1 I(! %TB (! %Tb’PBJ¨Ä$$¡„$”P‰IHB I(¡“„’¨„”P‰IHB 3)$$¡„$”„*1 I(! %TB (! %TB ƒC‘8ö…„$”ЈJhD%$¡„FTB#*!‰Jh@%4¢’PB#*¡•„Q ¨„$”ЈJhD%$¡„FTB#YB*! %4¢*1 ¨„FTB#*! %4¢Q ITB*¡•„^Ì~™ù* )%·ØÆ5Ké/þ¨ö›Ù§êaæªoÕÌlµaR»ôNææ;Ì)’;v‰€£èÈË0F×} 0V7Npb] Fˆ8”¤©kìtÑKãdƒü„ ËÞO‚-MãJÇê0L¶~˜ô°¨¾™,jœ<Õ¹ek\#Xæ0–¤÷˜ò¤g³jA Bï'OA 6´ik¬Ô» bH°~ZuõÝ„t˾|¦i0ãrwÚ¶^ºà'¤ÅŒ'ý"D¸n( ÂHßLž‚Qm˜ŒÕcC¹;-äíÛI?cCVIp~uùT¨Y&»ã1z$Ía„qŒ "ôÉùe"Âál:¬"„JŸ¼!ÁûQΆmÙå±)úyJʈ§m.f?Îê倻*ùìº^>û:ŒÕáêÁæëÖÛFGî=‰ÈŽ)«lú¥®\å¯ ŸºþÃÿ|}¿Ó\ž>UFgíGÛ„ÑGÇÊp˜HÚ;öŽð+žsʤ˜âºë»rNÏ} û3]õÿ9™­éé*‹žð‹›tôØ3˜é÷麘“ÓJÂkTH˜J$àõËY, .wm>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 904 0 obj<> endobj 905 0 obj<>stream application/postscript Adobe Illustrator CS3 2008-08-04T17:13:47-04:00 2008-08-04T17:13:47-04:00 2008-08-04T17:13:47-04:00 256 92 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAXAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FUhtv MPlnTInt7vVrW1kae6k9O6migf4rqXlRXavEOGUHvTFURB5v8p3E8cFvrVhNPKwSKKO6hZ2ZjQKq hqkk9sVTbFUDriwtpU4mcpF8PJlHI/bFNqjviqFfzn5PR2R9d09XUkMpu4AQR1BHPFUVp2u6HqbO um6jbXrRgGRbaaOUqD0LBC1MVR2KpVqd7pdjqltd390lokdtcD1JmWOLi0tuCWkYgA8uIA71xVS/ xt5M/wCr/p3/AElwf814qmtpeWl5bpc2c8dzbSCsc8LK6MAafCykg7jFVXFUhi1/y1pkt1De6rbW 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 +L/+km5/6qYq7/D2mf8AF/8A0k3P/VTFVk3l3SmidX9fgVIatzcHam+3qb4q9CwJdirsVdirsVdi rC5P+VWfWbn9Mf4e/SX1if6z6v1T1a+q1PU9X4+fGnKvfFVv/IFf+/b/AOnDFXf8gV/79v8A6cMV Ub3/AJU79Vf6v/hn1tuHP6lx6iv2d+mKq3/IFf8Av2/+nDFXf8gV/wC/b/6cMVd/yBX/AL9v/pwx VX0j/lXH+IbP9BfoP636U/p/Uvqv1nnRf7v0vip6fqcvb2riqyf/AJU39Yl9f/Dv1j1H9f1PqPP1 OR58678uVeVe+Kqf/IFf+/b/AOnDFXf8gV/79v8A6cMVUbX/AJU7SX1v8M/3renx+pfY/ZrXv8ts VVv+QK/9+3/04Yq7/kCv/ft/9OGKqN9/yp36lcfVv8M/WPTf0ef1Ljz4njy4/FSvhviqt/yBX/v2 /wDpwxV3/IFf+/b/AOnDFXf8gV/79v8A6cMVUH/5U79eh4/4Z+relL6n+8XLnyj4U7Upyriqv/yB X/v2/wDpwxV3/IFf+/b/AOnDFXf8gV/79v8A6cMVUbf/AJU76tz6v+GeHqD0OP1KvD00ryrtXny6 bU964qrf8gV/79v/AKcMVd/yBX/v2/8ApwxVRvf+VO/U5/q3+GfrHpv6PP6lx58Tx5cfipXw3xV/ /9k= uuid:273875376962DD119256DEF3CF9D532F uuid:283875376962DD119256DEF3CF9D532F 14.000000 8.500000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 906 0 obj<> endobj 907 0 obj<> endobj 908 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 909 0 obj<> endobj 910 0 obj<> endobj 911 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 912 0 obj<>stream H‰”W[o¹~Ÿ_ÁÇ™E5æý²oI› 6Ö"‚`áʲãT–v-»Þþû~‡‡œ¡'Ý€Ež9×ï\H*qݼ:WâúÐi?Æ(‚ £óBŽJKið«MJIÜmº«N‡úÙ:b8þz²€dŠBb!C´F‰Ãz×9+‚u#>8i…¢E–Ýš¯Éðˆ>ù1y©ò7G©ùã‹Uwr¦…««.‘!‘„Ë_Ýv X—Ƌպ£|^=vû³×þ?{Ç¿âÕfG«Ôoˆ¤þnXü\ðî~_öbðcèÿíiçûQ ŸVoà„a'¦ÐñÇáj;zà#V§ì‰rÙvâññqðrtýøÇÍö&Ûwýãz›Õ¾\i¢@J‚`hÚ=ßC!Ïà€ÄÁzÒ°ú2{½pvŒÉ±P£Ö³«‰˜Y.²Ã¿¼R RpbXý À(Bð†¾ßŠÂ’¸ÛÿEhÞJ% VÕ]¤”=¦…Eò£FY™‘’u›“etMùÂi;{'~9 ‰Qª¿†m=äÌõâÿv—HP¿Ü¶w÷wðýž’húmEõw”ÕÈ¥èà. ö4ú\t~»ZwäôÂ!T¡JÕœî×·›Ý½8y»ŒA¼8]v?7U$Mn$ZCY¥b.t˜¦+ÖQÇ ¨Q¦ n;1ð x3†¨Ä¶si €¦!„Ñz;‰láŒ}Š’ªɵN‘]•|íµo˜pq´Ê6&fÂ×&~¯@I (X(êÐÑXß‹¹úàÜÌÿåKüé ¿2€ÌYߘ_øù»!x;Z—¦<ܲF×$ÆkLÁðçS5—f“Uc ‚2A»<‘ –~MY¦„5¡ˆGè zLÊå)m%9Ðaæ€ ¥DTâÄ8æHd©‰:¼jëq²‚ÖIä%üÐʶž–` #4VÀA£gö£LÑå¹øVÄçËŸ0ÒÞ`t|ÁIÜ? %Å[ññ“—]ˆÈ¿k±(„ɇó.âlJ¦á©„‰'êQÆç(7­ÈÏèG›žÙÏqĈbò­•Bh>WB¸(V è@ÿ„wöZÅ 2n–¥x~ð8ø°ðð@öwXJX ä.oPGøúc1¬Ù0 å×êq5P>8ÿO.‰ÝzPx õŸïME¹ßíù‹€ô{ØÜçù‘ò~öúìx¼aÊgÊ«Ëõðzw¹ù ‰$< àaÏú™U,·ûõ 5úñ/¸Šqe±è~’È5Ͼb‚gM)¹ï Ýÿúþœb]A§Éõ¶ïOA\em/Wxj¼Ê¢¥"Fy 0±0ȬÐûðz uM“ ©Hc[Iü¸ÂwÕœî×·›Ý½8y»D[½8ÍS¢vŽ|E™Å¯£¦Ã/ª3·¡·y&:dYYq¢› MOzò8Öž§L)pƒBS‘Dê2#²sô~ô ±D—Ï(”ÄPçÓ"OŸ©Û֯˿ÿmX}©€dmŒœÐŽ‹9Ôb÷=ÝçËŸ:-ÞP„(§GAƒRÓ ¤ùa1J}Ä@¡›…ÎgkÝo„D›RiŒ@”òͧ¡DÌSãg!#%t-ÁùÔȪ"Lö–ój²¨DÕìÊØ7"·=œ? %à)‚«Õ,”(fÛQ$gÆ'"‚í †,R5ôL X:?‘ t¡`ï¿xŽ;<øñëvx…VKç;•÷)~èí@bàÔ¥Ú8¨!7c:bbš ¢ÂÄ(bb æÖÙßêÈŒ‘jÍ™˜ŽÌ˜‹&2¼Š õeêñÓ41"7CÌÔ©â9Î×}ŽÏ€äÈsÐ_pÌŸïT±`2DÚÒ?¹h_é–á,*`}âÐJAÓy;nÙoŸA;C.b‹œ8¿>ë3(“Ôï÷åÉ¡‰ì.Ô Ÿ}ý<µ7P¹sˆa{Ьwñàpj’KœNä Î•¤y¢Èy¼vÀ/‘”ùÉjÞÝüº{suuxw}{øc­V¨A ÿû½+ {lßPxþÜKÝ_U‘•ÒÇ=œïØÜÄ{ qRþ¦LÿîÔájNþ¦f¸|ýútߨ ^ÞÖ§?Æ>;škàIäÞAÞ|ã±-±9ó$‚2«¶ˆúôLÊòÄ(Yz„ÈÌÊXr\·)è("#‹ï½áE-BÇ–M‰Iœ[leh“…½ÐÉ”ƒg²p 'ö}öè¨xMRÒdÈ ¿¼NËë€ÀðÏd wN´ÏÈw6į̀¨1 £½ v¦X31\/ö*ÿ ./¤½É¢/+yA`s—“J"»øýðÑfeœ4Ú³ :'Ût%,IÄž=`õŰ4KgD¬—ˆÓ€ð]­"¼dxª—jƒ’¯á$Ƚ‘{YƒÂ5õYw£¡±$mh£sEB„r•òsá ´1ŠÌ˜ë)GÓƒ‹ œ†£ˆ‰){›à£ÈŒ¹8Æ–Ž›ZüQ¶¤Q¸Ï–Éû§²eÜ‹eKôŽ+²e¦tû [bØõ[J¼x.ã6[üŽÌ‚` É6FW)oÆ(r´°Üä°ö#x";_*Tºž6¦õ´‰1ËyórÞ3—eæDŠCIo^=N™©?ñcC˜áaº|[6Ž´ 9ø—ò¡®âüm˜?ÇÙkó•°ÑŠƒž¬W³×5Ø–]èFÐ^KÊ·õÁ¼@FåzÇB"ÊÁ"št‰OaoQNª:—º냶RéNc˜·‰E4ëªûÑ<üè½–Ø--|AÈŽ§¨Ê” M`üx}øùæô |s{ùüÅe¿‡Ð"\Ѽˆ»qù½‹8yuøéÏËíÍgMÓÚdÞ¾¹~§SͰ9lt~†œë'H…[€Ú ËI…Xš›šîÒÑ áoè-Æ>Šñ!yÄ}-EÒô•ú”FŸ¢zHM辺±šbô_ÜV|Ÿ\-oÜ[$c‚÷h²ö lƒ_´H¬µ˜Y4+Ö"¹zG“%le6êl̪gSNòÅŒMVá‘eA žޏý<ú´ `o_Gv´9šÍ ¹°ƒ’Âyû>¹ŒmRä%§ÉPÁ\„$ˆ»˜m ÜCf1æƒ ¨³X$°ÓœÍ [ÆZ³¿Þ5†d¨¼X)/¸áÉá­Ü Öu ^©ZŽº¨,&=š¤.1&rñìcÔCjZ”´•T{±!,E ©6*É㘎˜uçdc11¥ \£ÈŒhiuÆtdÆS¤Å-c9S˜à÷ÔCÁB¢zHÅ«z„Áéü©ÎGÔCè_â»»/Ôçšz(r´Ã÷²SÈéQãûuÛ^2­‹›ÿ¢¾·­wU ºãA¬à$ël;2mÝ]›u¶iÎÖd©³5ˆ:Û™Õ­Eš³YÝÙZ¤9[“¥ÎÖ êlM–:[ƒ4gk’ÔÙZ¤9[“¤ÎÖ"ÍÙάîl ¢Îvfug»"t¶ó*º³51êlÍ“ÕÙZ¤9[“¥ÎÖ"ÍÙš,u¶iÎÖd©³5ˆ:Û™Õ­Eš³YÝÙšÖè¬ÃY÷må&œ"„u.­1A³¬]*½Z„Yb²í „ζ[O“¥hͨ¸t.˜–iFMLGFL·ž3f 3F­§‰éÈŒQëib:2bŽÒ‰çúÄ4}Mftd £ Ýzš˜ŽÌµž&¦#Ç ;̨@! ÒÿK3ŠÞñ%Å¢ÇS?»%‰-ùgèø5|æÎý`Ds~¬%Ç›€à;R(\A€‚•Mªb|[§™ú‰A¹sÁÇ,¢IÖˆÖ(oh}Rµ´#†yn·ˆf}„åÂ)Üÿ܈~÷Ã7Ïþ`ð¹7 endstream endobj 913 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 914 0 obj<> endobj 915 0 obj<>stream application/postscript Print Adobe Illustrator CS3 2008-11-14T15:37:22-05:00 2008-11-21T11:23:17-05:00 2008-11-21T11:23:17-05:00 252 256 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD8AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9IHzp5OWEzNrunCFUSRp DdwcQksDXUbE86cXt43lU90Ut0FcVROm+YfL+qac+p6ZqdpfabHy9S9tp45oF9MVesqMyDiOu+2K qWlebfKurqG0nWbHUFKyODa3MMwKQlBK37tm2QypyPbkK9RiqI07W9G1JnXTr+2vWjSKWQW80cpW O4T1IXPAtRZU+JD+0NxiqNxVhWg+bUjtv0ZpWiXWpvYqDeHTntvq8LzO7rF6l7cwMz8KOwFaBh4j FU0/xRrf/Uoat/yN0n/svxVGeXvMVtrcFy0cE1nc2Nw9pfWN0EE0MyBX4t6byxkMjq6srkFSMVTX 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 uuid:09DCF3098CB2DD11A9A0ECB91C07E66B uuid:29DD43B4E8B7DD118345A3CC9BB35786 uuid:b1ac9fe8-11a3-4422-b8f3-ae4b8085b7a8 uuid:5D20892493BFDB11914A8590D31508C8 Print 8.500000 11.000000 Inches 1 False False Helvetica-Oblique Helvetica Oblique Type 1 001.006 False HVO_____.PFB; HVO_____.PFM Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Cyan Magenta Yellow Black Default Swatch Group 0 White CMYK PROCESS 0.000000 0.000000 0.000000 0.000000 Black CMYK PROCESS 0.000000 0.000000 0.000000 100.000000 CMYK Red CMYK PROCESS 0.000000 100.000000 100.000000 0.000000 CMYK Yellow CMYK PROCESS 0.000000 0.000000 100.000000 0.000000 CMYK Green CMYK PROCESS 100.000000 0.000000 100.000000 0.000000 CMYK Cyan CMYK PROCESS 100.000000 0.000000 0.000000 0.000000 CMYK Blue CMYK PROCESS 100.000000 100.000000 0.000000 0.000000 CMYK Magenta CMYK PROCESS 0.000000 100.000000 0.000000 0.000000 C=15 M=100 Y=90 K=10 CMYK PROCESS 14.999998 100.000000 90.000004 10.000002 C=0 M=90 Y=85 K=0 CMYK PROCESS 0.000000 90.000004 84.999996 0.000000 C=0 M=80 Y=95 K=0 CMYK PROCESS 0.000000 80.000001 94.999999 0.000000 C=0 M=50 Y=100 K=0 CMYK PROCESS 0.000000 50.000000 100.000000 0.000000 C=0 M=35 Y=85 K=0 CMYK PROCESS 0.000000 35.000002 84.999996 0.000000 C=5 M=0 Y=90 K=0 CMYK PROCESS 5.000001 0.000000 90.000004 0.000000 C=20 M=0 Y=100 K=0 CMYK PROCESS 19.999999 0.000000 100.000000 0.000000 C=50 M=0 Y=100 K=0 CMYK PROCESS 50.000000 0.000000 100.000000 0.000000 C=75 M=0 Y=100 K=0 CMYK PROCESS 75.000000 0.000000 100.000000 0.000000 C=85 M=10 Y=100 K=10 CMYK PROCESS 84.999996 10.000002 100.000000 10.000002 C=90 M=30 Y=95 K=30 CMYK PROCESS 90.000004 30.000001 94.999999 30.000001 C=75 M=0 Y=75 K=0 CMYK PROCESS 75.000000 0.000000 75.000000 0.000000 C=80 M=10 Y=45 K=0 CMYK PROCESS 80.000001 10.000002 44.999999 0.000000 C=70 M=15 Y=0 K=0 CMYK PROCESS 69.999999 14.999998 0.000000 0.000000 C=85 M=50 Y=0 K=0 CMYK PROCESS 84.999996 50.000000 0.000000 0.000000 C=100 M=95 Y=5 K=0 CMYK PROCESS 100.000000 94.999999 5.000001 0.000000 C=100 M=100 Y=25 K=25 CMYK PROCESS 100.000000 100.000000 25.000000 25.000000 C=75 M=100 Y=0 K=0 CMYK PROCESS 75.000000 100.000000 0.000000 0.000000 C=50 M=100 Y=0 K=0 CMYK PROCESS 50.000000 100.000000 0.000000 0.000000 C=35 M=100 Y=35 K=10 CMYK PROCESS 35.000002 100.000000 35.000002 10.000002 C=10 M=100 Y=50 K=0 CMYK PROCESS 10.000002 100.000000 50.000000 0.000000 C=0 M=95 Y=20 K=0 CMYK PROCESS 0.000000 94.999999 19.999999 0.000000 C=25 M=25 Y=40 K=0 CMYK PROCESS 25.000000 25.000000 39.999998 0.000000 C=40 M=45 Y=50 K=5 CMYK PROCESS 39.999998 44.999999 50.000000 5.000001 C=50 M=50 Y=60 K=25 CMYK PROCESS 50.000000 50.000000 60.000002 25.000000 C=55 M=60 Y=65 K=40 CMYK PROCESS 55.000001 60.000002 64.999998 39.999998 C=25 M=40 Y=65 K=0 CMYK PROCESS 25.000000 39.999998 64.999998 0.000000 C=30 M=50 Y=75 K=10 CMYK PROCESS 30.000001 50.000000 75.000000 10.000002 C=35 M=60 Y=80 K=25 CMYK PROCESS 35.000002 60.000002 80.000001 25.000000 C=40 M=65 Y=90 K=35 CMYK PROCESS 39.999998 64.999998 90.000004 35.000002 C=40 M=70 Y=100 K=50 CMYK PROCESS 39.999998 69.999999 100.000000 50.000000 C=50 M=70 Y=80 K=70 CMYK PROCESS 50.000000 69.999999 80.000001 69.999999 Print Color Group 1 C=0 M=30 Y=70 K=0 CMYK PROCESS 0.000000 30.000001 69.999999 0.000000 C=5 M=70 Y=90 K=0 CMYK PROCESS 5.000001 69.999999 90.000004 0.000000 C=5 M=90 Y=75 K=0 CMYK PROCESS 5.000001 90.000004 75.000000 0.000000 C=30 M=0 Y=95 K=0 CMYK PROCESS 30.000001 0.000000 94.999999 0.000000 C=60 M=5 Y=95 K=0 CMYK PROCESS 60.000002 5.000001 94.999999 0.000000 C=30 M=0 Y=10 K=0 CMYK PROCESS 30.000001 0.000000 10.000002 0.000000 C=60 M=10 Y=5 K=0 CMYK PROCESS 60.000002 10.000002 5.000001 0.000000 C=80 M=5 Y=10 K=0 CMYK PROCESS 80.000001 5.000001 10.000002 0.000000 Grayscale 1 K=100 GRAY PROCESS 255 K=90 GRAY PROCESS 229 K=80 GRAY PROCESS 203 K=70 GRAY PROCESS 178 K=60 GRAY PROCESS 152 K=50 GRAY PROCESS 127 K=40 GRAY PROCESS 101 K=30 GRAY PROCESS 76 K=20 GRAY PROCESS 50 K=10 GRAY PROCESS 25 K=5 GRAY PROCESS 12 endstream endobj 916 0 obj<> endobj 917 0 obj<> endobj 918 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 919 0 obj<> endobj 920 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 921 0 obj<>stream H‰”WÛr9}×Wð±{*jóNö¾mì8•Tͤf£©}H¥¶4rÛVV–©Oþ~²/Y'»I*iM8ÈVânqñú½w§…öMŒ"¸Ð8/d£´”OmÚ¶Çnq»Ð¡¼¶Ž6Ìß^\ž¼Øœ ²B⇠Ñ%N›ýÂYaM¹“V(ú‘”à™^ù¦õR¥w:6RóË—«ÅŵJ¬n-­piÔW å%¼H[m°\=-ª(ëÕ'èÖPá/#Ѷñ€.VW¬¬)¨žžžj/W5mwÛ}½tøýW³9<ÔWo¯Vˆ¢(¨à¶F‹m„‰ïãµA72Î1Ë„–pâÕõ›Ú6¡º~—âu·ÇSuõÒVÇu8Š/¾Q ÅAƈ¥j´bɉÀ/Øöõ24¶z]ëJ…z è•<ÖKå!ßî„jYüBhÉ¿”,ÿNM‚u›lZGµ0rë†wàO^¥LÅœ)z•’E?H vŸ¬T‰Ëçœ]ÞA¦Z?ò³ïøyöo9S™ רèNÈô†ÍZÇÆ®ºSí(È H¿«}£«}¯P´¸O[âªþ^ô59ºO¯;qy8v%]ŸQÏ[±p(ˆà}ã„ b©‘<ŠúŸ¿ˆ=×»TÕS7­ÎSM©\òW‡Íù¡Û÷ââ×ËØŠ—W—‹ß'4´¨ï¤i©ÿ”U*&2ÐÆšÚ¸ hB‹vE•¶A‹‡Q zð¦ñèà$ÔÊv&qhh=híH6¾’ Åe"ߪõ¹¾ïÆÅFÿÄÍDòœ›ïG6xq®ñÒý¬—¬õÿóŒ0¥ÕÌÍ(yÎÍ‚Q †¬?d›fÆCÛÄÖýÅh†51:šÎ€*´KÓ^¡VéélË6µ|—-²‰JöѤ3@G‚åTDhvØCßøÐÎ$Ô×Ì•Õ:ï‰àh0ì˜8KÁà«E1I`1êÙÛØf;nê {µã€' —ïÅ÷¢ù&Ï[LŒOYºOBIñ«øðQŠXÄ,6f–—,p¼‡,·šíÊ’ Z0âž•8ÛÈ6eÏØF»ø¬dŒÈŒÙ`§ÞŠdŠÉÒ(œa2-ÊŠrŠ8•KÖ³däÏ —Ò<'qCË¥‚$ð%£OÕfw‘LöøÆ÷œdÛgž—–4qŠ€Uš˜8&–J¥‚ ÑŠÉêpjø¦Ñ9Õ(ï¦õj#Îþ0Åì™E‡«µqZC؃B™áŒMô³X_C½Wpˆ3ò­8ï Gé9»Ž²Â5 G†³[ûA’Ö!/]Z:eò:ŠMR€i–xÞÐæ ¾Mk_ì¡XÁV’Ð NëÈ4æ ­ƒÌkT,kmYØf0ìòÆý)kd Îé‹vd•ÅU+ƒbL˜fŒÉs^œaÞäµ¢Pš%9ìü>Gí,;t¡8p2ïˆ9­Y=æ4›0¬YAå4‘d7“5»ÅýbBOøó9òù ¹ïg"j¶A…Â~Úœn×òŽÖæÔµn¶6~ÐÈmó5+‘huž+ma#p6d¦ÃG!s¶]Zãß–¢â©ƒJ—*lûĤz¦Ë¿%è9IÑÂôrÏ 8_œT\ÆUL›çKR7<©€\Î2u¢Në ØM™MÒ C•$:º´ƒÓŒµâ”Z¥µ‚ÅL¸a¯Jqµg²åÄ'ѰÎ5eìl‡ÏÑ !gqôcœ¡hsæeÀ-ÜÎâ )¦'‘bâéi&°nÈkÍ6bbëÌ]J‡%È}Y!K4{0¹YIúpCë1ŠR3e©ª17t7GZê²d¢Tî˜+|}äÉÆÙÄÚº1Ùã²°Q$™®¢_Øœ÷+]f¥ÏÝbòŒ †-t´d̉(AE¾>âÃ)§!§¶´Na8Àl™²åTkÉ…¯-ï ó”Z—Sªí2Î,D¾ñÑÆ8A"S¨Aå'APÕNb ùjSr€u!Êø¬àrÚLËöño2UÇõØ',3*ïÐLEÈ­ióòEA w£ ¢·]˜D€Þw¦ôzI¶c0^JÓXöOc;v™/Œù°á,ÓÃNxàun«f;˜Éb¡p=ú(ÕPP”j)(K5a”z+ærÌY(å:d %Óò,ׯMÒ\ÖÓ)¦ªX(TÎ;bƒ›Ö«_/¿/.^¿Wâî´x¹Z\\[¡ÄêvAß0ø "ý 9†>ÅÉ&Vü=±9¥×ü=¶ÄW}á¬6øX=->T«u½Œ±i«?ëe‹j‡'rSuõÒà>+›7,Ó SµõÇÕ[¨ß-¡AµÂÒ¾Ø$'& —…d^Üt·Û} È Äã$úûN|YïÎÝInÓêpîϽx<û“¨}usN>è#ŽnÅ£3:°ìà¸ÝßAñ©ƒ[kàP5B8?Šõþ&yÈ/_jôUYô‚—}mªuß5à ãJ(–ø¾SRӽ͎È`pLΧî˜@:6$ö‡bó±^º”K·©eãªímm«¯bM*WïþXÐhÏ©ë97/°4•Øöâ–Úöv}ÞqŽúý/Þ·"´¾º~sýŽžóp?Ÿ·°¡i†¹þqVÏ»ƒâ<¬~Ia+®ú¥8 ñ°ß}E‰mjϤé°ù·Ø|Ýì8£Ð%ìëc­ÑNU'Ö_ÖÛÝúÏóµ8%¾qR_¹ž:q{8Šþ¸ÞŸÖ›~{Ø“9üOlÁ;û¶£o±¾í»”Àã„ÑâèFQjÙÆWWÔ‰›˜¸Ùž4m“ yÒÕŽß­Oµ«º›!TªÈ¼Ũš@Ř‹[(âðžµÅéë~sŸö‡ó)“GG'ÞÚçüMp¥ÀÈ?Z™ô!‹×Üj?°”i]¦ ›ÉT8õõ7ê‡zIA4¹éJ”ÔÜW-¹!efè·CO*Tô–*³¿_Óþj¤óþ¦;ÞZ$ðð$NÛ»ýzGɽé;¼Ü÷‚¨%Ÿ×-O:­èƒo:n쀸úÇÕ¿^ýV¯>ƒóèäw‘V@—³Jö 0ƒÿ)Šw'»˜ö<óÇúDÝ”[ s©ïnDj ¤šFò€58ܳ$`w¨ó9Ø”÷uÿañ]›Å_N³åCyžäx¡Óez<¾Ø´~vö¶'Kޏø;ýW¹CÑ’ëFš>!ËÈP¥Å–\áðE]ÃæpŠ‰ÚœgÛñÁÏø}V„•²9+ Šwx£ƒzÞÇ’÷#Ôm2‚=*‡o@˧,—”ÇÙF©XîøõÐÕ¶¦;gšçeaÛ\LßÊpLÙ=HTÆåDºó‡{½I¶sîâÅÒrÈ\°ÿÌb>“Ñ&3{z¹ôüùM^C:­p•Iûs[âƒF]Ì ‘%”¤ÆäÉ%£>\ænäëŠ.'|+ü&¬ƒõÈ4”“Ó-³½†¶ÔðÑ–È€»2…Ä‘û¡öù=ÍqöËÙrÒÝòˆY’ÖÄÅ/ùG@R~[F dèóªï]yN)jÅǧW×—§cÿ¥‡L”áðÚßœ]` $;ŒìÓ—KñÿMþZù|ÝÎOn7· |ê~Ï3õG ÜP§»x^gêt5<þ”x>ê FNÿbixKÔª2ו'm\k>mˆ7ÆCjâ×h£-ã©ÅÔ«?Ïlý§#¦2N¤+ÝV6gRíâå2ò|ìü--©R©õ/˜~2®< ’÷(ùsN¹vkÀK°Ÿž=ÆÎ°¢Ã¬“±Ó–c~ÿlÿùáÑÀ dk Žç“Ñõ‚lL/óÉ~†G!jZjv°^g[=ÙO1`_ø¡¾>)¢Ô8©ÜLj´%þå÷ˆ‰õÏøèö>("ÓcNm8ÑÆìRôzÁŸùôßTÛ ?p±”JÃ&ý¤Ÿù Þä(,ðŸ¸Osâð#~ûŽ­±TôºÓ6$¶¾NûõrHü++‰Bãó&9z½L =9ÚQ@ Ò ÇäZkËr¡Ý×ÀéËÍX5P<8˜ˆ7A°Ìäà˜²ï+4‡ºBÙBº&ò·­’ÇîÞ•N®` cžþë1LÖ¨áê伯«h¹g‰ÈåXÕê¾¹CõpÓZ:¤³ÎLämïZh7ó˜_ä|ïÚ$çòV\Ïa=ÙËây ‡ÇÍ*Ômv_œ|:#ÝÝß‹ãðèñžÈ`„ºõé¿£ÐÀd”iÔÞ®Ñ'n" E…bD»ð´˜°§¥u"6Qè46¦üæÓÉü¤äPÁev°VC’„¬}à®ãL~ì=û#).úî;OH™zÇÀ:¯ª1ZðEéHeËæt¶s<œßµçáÞ;zø/ŽgýeØÙýý¡Þ_íh‹Þ‡ñ ‡ ¿ì:¿ªe‹ß’qŽfåh aí¢’– L¯¬GT ÉY|Êm2äB¼¬°Lë .¢, mfp*•FyÀÁ$c^_˜'òî³ãD àY²Ê@¥…™%®Ö"Êâ½ê(Óc-*ez,¦§Ò3‹7ëàdgÃÌ4<Û±|¸sŸ  êåE-ú5È; 3 y2È,‘7×6 ¥fð>â™M,:ÎFX ¬9Ô$^˜ŸÙ.r'¼_5Å™Å̓œâÃÂr¸ó§‡µ¥ Úò•æ“Ríÿþ:o{ߺ¼aŠq<гfñ@‹“³ßt„Oµå¤O±@¬Cº„O±t „´V Ÿjé>‡’3üÀ† óÜŽ_¸'@@3U@VJüwhV‚! ±ûT„@rŽ4ú@SÓo°øv‹¯Ç/¨´B5³&Ñ  VL“r¡ô|YÅy26N}'WvõG,`”KÖ$³S"2!ÅroBØåP·ìXOk³Jäòž«¯@±´CGP“¸t±Ë·?oÎ!ɶÛáüâ\av emkvÞÜÈŽ3¾Snñjñ¼ƒ»,†B7[FÖ€a™’¯–s(`úýÕâ|©85TêæÝ»¥!Ùœ\§ï#Æ}ÀY@èý׆Gž ¯Ò3kc,Îæ©@¤žªa›Ÿ PaØË¡ I<pZZÐàÁ)ºÓ~¤¡Å‚ x€´ƒq¶Ä©Á‡Õ¿'Q9bØtòpè"À¶A8?ŸA7 -=pMľòÙQØ–G‰‰ºˆï~?bùº½\Ä’$"ÈBéŒÞÌ Þûž}«ñhôÙ%ˆU-zÐ&,`6ܹa²û(7Ɯҳ Ú@Ÿ[Üš@Ôƒ&Ÿ/Ô ˜¬Swv€Ùɺ™…à,¶vŠÙ–ýTgudWóù‹…e….1XdSk“†&´%ˆˆ´ØœÌÕ¦R³p*iˆ«4.†OžÕ‚AGvÈvy\tŸji>FC­‚˜vŸfé>ȳSÒ¥º.B› —ji>÷ްPXïø8>n΃ì=t~bb™žf›z÷–ù1Ÿ¿9?ð"˯$Gþæþ*‚GKI³´”Xça‘j–î3AkŽ2µÍr_jùÊ‚JPƒ¦éCfAsËe}˜_¨ªôìºÓìº+5µ±5•¹õåòî¹5ÅÑÿÏæ–~ÀÜBa¾Õ[$s#ÈœêS$˜¤­òÔV¬ŽlMÍÂÌ[Òyt˜ÃÓr ì<~‹XÀ¶»@`™ 9f ¦S#€>äçgIÙ) ×aKó¨ø ÌNQZJÔ¶ª½©©½=aõ"®ï¨W͘ØK`©æ^-~¼Ž/—+$ðôz³{°©up•3ARôB|i…˜D!JÅßÏ?n.KK¸úPGæqKäõéÅyyF”º  ÀÿÌÿèy„c[µH£®¸Î¿£|Á…ô£~e™éÝE²VNB<‡ôRµZºTu˜A{!U…¥HÕU¥ª´d©Ú£ªT•–,UET–ªÂP¤ª*RUXŠTQEªJK–ª=ªJUiÉRµGU©*,EªŠ¨"U…%KUT¤ª´d©Ú+Q¥ªð)RU,œ¥j7T©ÚƒªT-´À‚9NVHÕjèR•ë+/¥ª´¸yP%Ýr¸ópZµ¦C ˜ÉõI‘3Z#Ôg÷©áS´¦ð)áS´¦ð)–îSµf÷©–îs}° ²&xý›RŸ"!ÅroBšú¤˜™Ã»Ô'ñÿ7¦?),xÔÿƒþä ƒ´Zº%_0µ®@¥%+PU$¨° Ú£ª•–¬A{T¡ÒU¨**TXŠ QE† KÑ¡"ªèPiÉ:TDe!* Y‰ö ªD…¥(ÑU¥èÜB-Ú+QŨð)jT¬\Ô¨´d5*¢Š•–¬GETÑ£Ò’õ¨ˆ*‚TXŠ"íQU‘JKV¤=ªJRÑuøE^ ¡7à®Y˜ç˜t—ˆÆÝ1ÐYdaa”Qmü4‹Ô¤Ö£¼VjR«ÇÔÇ]“ Ÿji>UvŸfé>Y‚ —bèE —ji>÷£É-§hÒ¯‡J´ö¡Š4B‹™òë*Òžfi ©úSøTK÷)úSøTË}‰mŠÔÃü(IcvÀ(óÚ©JRõðIÆA6‹_¡ŸÁK‡•Zë;‡Ø¯¤E-ù?e`rcH™÷DABÀŠ Øù¶ÈÁE0+›@™CšµP5Àö·¥²Tr_¬È¹/ 6Ò°…©ê3°Dî‹Ât‘Ð51É–fƒ¼/êêëÌ`3$Æ endstream endobj 922 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 923 0 obj<> endobj 924 0 obj<>stream application/postscript Print Adobe Illustrator CS3 2008-11-17T08:45:24-05:00 2008-11-21T11:26:06-05:00 2008-11-21T11:26:06-05:00 252 256 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD8AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9Bj80fyzMbSDzdopjQhX f9I2nEM1SoJ9TYniafLFU5v9c0TT9N/Sl/qFtaaZRW+vTzRxQcXpwPquQlGqKb74qpW/mby3cWjX lvqtnNaI8Mb3EdxE0Ye5CGBS4YqDKJk4D9rktOoxVFWGpadqNv8AWdPuoby35vH61vIsqc42KOvJ CRVWBVh2OKojFWFaD5tSO2/RmlaJdam9ioN4dOe2+rwvM7usXqXtzAzPwo7AVoGHiMVTT/FGt/8A Uoat/wAjdJ/7L8VRnl7zFba3BctHBNZ3NjcPaX1jdBBNDMgV+Lem8sZDI6urK5BUjFU1xVK/NLRL 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 A8d/DFU70sAXFAKAKQAPowKmuKuxV//Z uuid:712A27FCADB4DD119839D0C3128C31E0 uuid:2ADD43B4E8B7DD118345A3CC9BB35786 uuid:b1ac9fe8-11a3-4422-b8f3-ae4b8085b7a8 uuid:5D20892493BFDB11914A8590D31508C8 Print 8.500000 11.000000 Inches 1 False False Helvetica-Oblique Helvetica Oblique Type 1 001.006 False HVO_____.PFB; HVO_____.PFM Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Cyan Magenta Yellow Black Default Swatch Group 0 White CMYK PROCESS 0.000000 0.000000 0.000000 0.000000 Black CMYK PROCESS 0.000000 0.000000 0.000000 100.000000 CMYK Red CMYK PROCESS 0.000000 100.000000 100.000000 0.000000 CMYK Yellow CMYK PROCESS 0.000000 0.000000 100.000000 0.000000 CMYK Green CMYK PROCESS 100.000000 0.000000 100.000000 0.000000 CMYK Cyan CMYK PROCESS 100.000000 0.000000 0.000000 0.000000 CMYK Blue CMYK PROCESS 100.000000 100.000000 0.000000 0.000000 CMYK Magenta CMYK PROCESS 0.000000 100.000000 0.000000 0.000000 C=15 M=100 Y=90 K=10 CMYK PROCESS 14.999998 100.000000 90.000004 10.000002 C=0 M=90 Y=85 K=0 CMYK PROCESS 0.000000 90.000004 84.999996 0.000000 C=0 M=80 Y=95 K=0 CMYK PROCESS 0.000000 80.000001 94.999999 0.000000 C=0 M=50 Y=100 K=0 CMYK PROCESS 0.000000 50.000000 100.000000 0.000000 C=0 M=35 Y=85 K=0 CMYK PROCESS 0.000000 35.000002 84.999996 0.000000 C=5 M=0 Y=90 K=0 CMYK PROCESS 5.000001 0.000000 90.000004 0.000000 C=20 M=0 Y=100 K=0 CMYK PROCESS 19.999999 0.000000 100.000000 0.000000 C=50 M=0 Y=100 K=0 CMYK PROCESS 50.000000 0.000000 100.000000 0.000000 C=75 M=0 Y=100 K=0 CMYK PROCESS 75.000000 0.000000 100.000000 0.000000 C=85 M=10 Y=100 K=10 CMYK PROCESS 84.999996 10.000002 100.000000 10.000002 C=90 M=30 Y=95 K=30 CMYK PROCESS 90.000004 30.000001 94.999999 30.000001 C=75 M=0 Y=75 K=0 CMYK PROCESS 75.000000 0.000000 75.000000 0.000000 C=80 M=10 Y=45 K=0 CMYK PROCESS 80.000001 10.000002 44.999999 0.000000 C=70 M=15 Y=0 K=0 CMYK PROCESS 69.999999 14.999998 0.000000 0.000000 C=85 M=50 Y=0 K=0 CMYK PROCESS 84.999996 50.000000 0.000000 0.000000 C=100 M=95 Y=5 K=0 CMYK PROCESS 100.000000 94.999999 5.000001 0.000000 C=100 M=100 Y=25 K=25 CMYK PROCESS 100.000000 100.000000 25.000000 25.000000 C=75 M=100 Y=0 K=0 CMYK PROCESS 75.000000 100.000000 0.000000 0.000000 C=50 M=100 Y=0 K=0 CMYK PROCESS 50.000000 100.000000 0.000000 0.000000 C=35 M=100 Y=35 K=10 CMYK PROCESS 35.000002 100.000000 35.000002 10.000002 C=10 M=100 Y=50 K=0 CMYK PROCESS 10.000002 100.000000 50.000000 0.000000 C=0 M=95 Y=20 K=0 CMYK PROCESS 0.000000 94.999999 19.999999 0.000000 C=25 M=25 Y=40 K=0 CMYK PROCESS 25.000000 25.000000 39.999998 0.000000 C=40 M=45 Y=50 K=5 CMYK PROCESS 39.999998 44.999999 50.000000 5.000001 C=50 M=50 Y=60 K=25 CMYK PROCESS 50.000000 50.000000 60.000002 25.000000 C=55 M=60 Y=65 K=40 CMYK PROCESS 55.000001 60.000002 64.999998 39.999998 C=25 M=40 Y=65 K=0 CMYK PROCESS 25.000000 39.999998 64.999998 0.000000 C=30 M=50 Y=75 K=10 CMYK PROCESS 30.000001 50.000000 75.000000 10.000002 C=35 M=60 Y=80 K=25 CMYK PROCESS 35.000002 60.000002 80.000001 25.000000 C=40 M=65 Y=90 K=35 CMYK PROCESS 39.999998 64.999998 90.000004 35.000002 C=40 M=70 Y=100 K=50 CMYK PROCESS 39.999998 69.999999 100.000000 50.000000 C=50 M=70 Y=80 K=70 CMYK PROCESS 50.000000 69.999999 80.000001 69.999999 Print Color Group 1 C=0 M=30 Y=70 K=0 CMYK PROCESS 0.000000 30.000001 69.999999 0.000000 C=5 M=70 Y=90 K=0 CMYK PROCESS 5.000001 69.999999 90.000004 0.000000 C=5 M=90 Y=75 K=0 CMYK PROCESS 5.000001 90.000004 75.000000 0.000000 C=30 M=0 Y=95 K=0 CMYK PROCESS 30.000001 0.000000 94.999999 0.000000 C=60 M=5 Y=95 K=0 CMYK PROCESS 60.000002 5.000001 94.999999 0.000000 C=30 M=0 Y=10 K=0 CMYK PROCESS 30.000001 0.000000 10.000002 0.000000 C=60 M=10 Y=5 K=0 CMYK PROCESS 60.000002 10.000002 5.000001 0.000000 C=80 M=5 Y=10 K=0 CMYK PROCESS 80.000001 5.000001 10.000002 0.000000 Grayscale 1 K=100 GRAY PROCESS 255 K=90 GRAY PROCESS 229 K=80 GRAY PROCESS 203 K=70 GRAY PROCESS 178 K=60 GRAY PROCESS 152 K=50 GRAY PROCESS 127 K=40 GRAY PROCESS 101 K=30 GRAY PROCESS 76 K=20 GRAY PROCESS 50 K=10 GRAY PROCESS 25 K=5 GRAY PROCESS 12 endstream endobj 925 0 obj<> endobj 926 0 obj<> endobj 927 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 928 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 929 0 obj<>stream H‰”WKsÛH¾óWô‘ÜŠè~?ö–ØcWR•MÍZS{Hå ‘©XYYÊHòxöß/Ð@“M%“­TňÆãð¥Äçæêî^‰Ï§Fû>F\è²WZJµI)‰ãÐlÊkëÐ`þöêúäÅúÊ SdˆÖ(qZïgE°®‡NZ¡ð!Ÿ½5ߪ!#|åûä¥Êït쥦—o–ÍÕ­J,7MÂ@" —-àøò©‘pxÑ¥ñb¹nð r^¾4ÛÛ·ÝÂõ¾½ý@ÅݰǧÔIí±[ø³"é|`Yt¾íï%ßöªû´|IJb,þQ¹ÚöðËÊD¹œ %ñòòÒyÙ»¶ÿc»Ûæø®ý£_ž²ÛŸ–€4¨¢€–/À4Z@ÓFðó#!hÇwp€ÆAô6ªnùeÊzál“1b¡z­§TÓ¹H ÿr§¤àD·@$^`"¸E…ow‚MR鶯„&Q*ÉX•t¡¥”1>ØÖhezlÖSn– S¹oíëõùyµ·oo?ˆ›áëù œ~¢lE&—wpªI½Ï4ú×ßľ0 #H/$/óèêæ°~~ögqõþ:)ñææºù¹â1`cò¬Hve•й½03g†£3d z™‚xj ˆ ‚7}ˆJì—úÅVŠÐ[oÇ#;HFö>E‰}†vY§0®J¾LÏŸ„p±·ÊV!&Å·!~+@I p°P8s!£`ý¨æ’ƒs}0ÿW tâ/ùMèœõu€QñM€ŸX‚·½uiìÃytUc¼†½þzcŠGNiò8æX<Ö (´Ë;Vañ¯³)ûƒ¹·&ðñþ‚î“ryïZ‰ ÁÀ˜0Y@w¥*Q‰ãÈ"a¤ªJðáUÍÇ1 ŒNÂ,!­lmáq­× >B,p™Lyð^¼¾Vñýõ?`I½ƒeðv?ôþE()Þ‹Ÿ¤xhB„þ» VŒ9Ü7¾6ÉT6E1ÚDÝËø=ÐM+Ì3úÞ¦ïÈS1™|…U& ¤êLL–¦48 Eý&è‚qßQŒ^áHÌl¡7*f2¹œkQL±÷2|GQ•ó¿÷€’°»UªªQ6t •„Õíj R“º %uïk&‚…—5­”ÄA‹3M T¸ˆÉøÙúT2ÅÕLcÉÏ mp Õ…+ `(ju ª@áâ¨A9HM2‹Ö±hÄ:1°Æe‹¨Ù"Y’Ù!Ü|è@LÓh“ ’"D– Ëð±§Éù¬±’\&O!l9Á²“%ƨ±”TñààëJ1ˆâ†˜OhªÓŽA’£\£¥kIQŠV|š‹Á³\ü:¤cX‹L¸zŸF™† 5»™[³k›º=ql`äÒ#70ñtÇ E‚Ï>ûVÂmDhD–yðz&Ú4`a{[Qp©Æ›ì¥$4””’¦c‹¬ Ÿ(ûÅiÏŧ¨.4^Q°¿èRSŸR|¿ºÔ`kèÍm„O¤Hôéõ A Œ2¸‰!ËÉq î^¶Q¶*W¨ø+f,ñO;ÚÜq»É@"–‡VÄ?oÔ(3Ÿ¼ŸYD®4;(Oð›Wek5%›ªÎÖ&Ùª¾Ÿõºþ£F„è„sä!ÊÀEj†ôn&kÊ Öf¦+cl†6ZXÞ%A1e ­cæ&Z’#‘˜Z‰óÎ(8¼ûN(¹^Íw(<õ‰P9†ª$Ó êÔdaÂÌ5ºŠ Ø@RÛˆ'%¿Â£©‚0ͳ"¦ LÕ $PHUÁ?ÐB¨`žäÒˆIC­*J+gÓ@¸QÞ+ÏÛ3J͸,MIFE0HíØm}î9KÈj˜H´÷¡& &äl ãæ­A™G$©™E²•ÜSiÉ2¥ò¤LùlœÕ€„ÕU•‰ï/ü`Ç':ÁŸGïCLõ-â4!E#i MXä™ô¼“ð›Löååe™(zuU,PJ¦"aOðÌi adò¦æï$ß!Êõ •»vš-*”y@‚™YP'Ôé:Q¡$Q¨Rr,dšª(t+u:˜¯Ppbè"¯oëÃô$N#R4†í¹³N‹‹yXÃÅê§÷×ðÓëêî^‰Ï§æÍ²Qpôp¯—‚žàÂé"D÷bùWþÏð#HÂÌ-×ÍŸà‹¿|iÚ×ëóój'nßÞ~7Ã×óc·üÒ\ÝBŠb¹iRq™pß8¸ÿè˜âqÛÑ-|»>n»Lw{îTËën¡z×B8´Ø>}=Ï«n¿ÒÚ}·Ðíz '4·­8?âß+zÿ0ùÕyµÀ'Ýn÷ŸÉ¹8ƒeûˆv«s%€ÏOËwPR ’´Æ¤XÞ$ka³Öçíïà “7ìx¾~¥hØË¹hq8^„Qx-ðU”8EYeÌg!44®q£¹œb„#W¬Úª¡U­ÃFd } MD42ãÛ –i/2ƒéÀš)Ô”Ôþpžeèi6ù{X˜z<„vj¼è`ÐÛÇv?¬‡Ó©sØêãv÷Ï~ᛡaÖ¦JSÎ+.t}ØŸ¶'h!ØærÛ= ¢óíË*Gj\–l¦Ñ¯KûÄéR†¬ƒ1ZÌÒ½6¶†>Ž iN¢ž†0cxÀçíÿÏ)e’!©q÷ *Lûö¾ýuX¯žQá± :䤱÷¤†1xÀÐÁ±œÌ®ƒþ\B ;†ù€?ÔrVØmtì7øò@´'qÈÉmsv@c¶C„vxöçÕyKÙeê8/ØCmö@¹øv3ä„´Äß'þ²_˜‰õܰÍ(L:”õ|ì”ǾÀÓªôm»ß잇ýšË„;R”¡â UÆxcòð “ÇÜrò¤^u²Å*P}Ø÷âíž±Ó©ÈÙ ì”- …̰ļñî†ýpÄ$qƒ€²º=æF"BÐȪcymùvlY©~(ªÝÀ´ã-QÅB—¾ý€T€I¥§2³2^<Ö¦Å8<cþžão»>¼ >”~N¸­ø%òз‹’Ù%ÆîÜ”àWnØá÷í¥7dÆÆVlhÛfצ=>=åwfÁ]?u¸†iÅšµ»õÜ–y°…ÉfßüžŽ9»9DáÎ>"BúÇ--´*$ð unÊ‘ nŠfßó¸ÞkÐêHŸÉü¤`mÙˆ—éùG-?ñ¨½ÙÖ êÛ‹¾~ÿJÜÀz:‚œw'¡Y¿¢AlŸs½¸(ÀPÀgJÜ?n7ç,!åNóåóíö¿´WÛnÛF}ÏWì#7‰./K2h Nl­cCV6 Èm ‘EW—ù~qgÎì®Hù‚º°Èå^fgΜ9“Ù¼WfÞ–4ßlW’ŸK$í†þ§æÔP‡ø9üÈË©Žù q ¥ z™š\†{£á6%›MéKæ•l׌¿ñQý}ÍÁ;yë1oÝÛzX¥¾TÍ4‚»^ή6ΠE®Û0t5•)×[ç “ 3¢µ,u‚üßâ§ïæxH;G!‚‹øã¨¸Z¾"šH UW?|ЉšÙ’g©Ï3‚Úu=Z»=ͼMo)ÒxÔ`ħQüJ¾ÇÿŒÌºÔ¢éß´BßÖwIü}]FÉk9€–ôÚfAQlîÞÍ’vC°Rí³I±[Ð/¤—{ç0QH4¸¨š)äN¸žÂ>˜)Lî¶ÜèŸÿ­´àù„ 0IðTô¹YS/GÐdÎwg³Lvs…¸!HY ¿ÈÈ”Cô€¼oM£9üpIuøn#dÌ÷©ÈM<.鼪çµ_N˜%ÅÑ—cÉüGÊñE”´íƒC qHᲆÇ,à 3¨(L÷NZ%RaHl¹™f `Ø&¶ë®ñ÷nÀ¦“k/¢ÔÜU‚h]G¢—ÎÒXÔN0 sYÚꤸu¹è´ÑF'·ÒŒ¨¤óÈÎE³Võ¤ÑÔºñ}†ÔšÝ<ŠCI\a*öšÅН@&¹ Ëò4n8*NeìÙJÈ‹misÉôš¨rŸ9Ñû£ÑÐÙ•bBýŸA¤w5ZµÈ‘„êæ£†Qc(ŸEkV=º]Lx0–’GÙŠ@ n´!®?ýÚîüBæÛ2·ddL¾%ŒÏ¾×j*l:Óqt3e õHã÷fΛ{G@o•³>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 931 0 obj<> endobj 932 0 obj<> endobj 933 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 934 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 935 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 936 0 obj<>stream H‰”WÛr¹}çWàqfËáÌV*U¶´RÙU޳³ûàõC$:¼hIÊrþ>§ÑÀ\T²¯kÅAúvút£ÄÝììêZ‰»ãLû&F\hœ²QZJƒ_mÚ¶‡nv;Ó¡¼¶Ž6Lßž½X! ²BâA†hÇÕn欰¦ÜI+=$%x¦W¾i½TéŽÔüòÍbvv©…‹ÛYKE+\ÚõÅv&¡<‡‰À+,O³*êzñz†õú¨ð#Ѷñ],.XY9RþX===Õ^6®j¾®7ë]=wxþÚ¬öÛúÓâÝì—ò‡( ¼ÀÖh‘£0ñíxmЌӘeŠ–â¦ˆ?V—okÛ„êòCúWݦêê¹­ËÓþ ¾øF¥(ú¼(ô`Œ˜«Fë>— žl`Ûÿ¬ç¡±ÕU­+ê9B¯œxýp¨çÊC¾ÞÕ²ø•Ð’Ÿ”,ÿšš ÖQn²iqa¨­ëß¡®(ðèUB*f¤èU‹H vŸX©’—ϘßSLµ|àßSÇ¿aÎHåJ¸FE¸àdL¯Ø¬ulì¢;ÖŽÐ*(ú]í]íjp¼hq'žÖ(Š«N÷âT“£ûôºçûCWàú|^‹™!‚÷.ˆ¹x”õï?‰ó]ªÆj¤©›Ö ç‰S*Sþìb¿zÜv»“8{Þjñæâ|öë¨ ­ÁÔwÒ´ÔÊ*S1ÐÆšÚ¸DЄí –¶A‹íŒJ zð¦ñèà $ÔÊv"qhhÝkml|%ä²N‘oÕúL€o»q±Ñ±»I^róíÌz/Î5^ºõ’µþÿd^pƒJi5q3H^ród”FÆõm¶i&uh›Øº¨C1šÃšNU&h—¦½Wé×Ù–mjƒð]¶`È&˜ì£Ig€Ž–S©Ù~I|ãC;‘P_s­¬ÖyODF ÃŽ‰z_-òˆI‹QOöØÆ†0‘(Øqc_بûxò‘p~-¾•ýõùß0yÞab|ÆÈÒ­xJŠ÷âã')n`³Ø˜ .YÒÇq YDÜj²+KFÑ¢"îE‰³lzÆ6ÚÅ%CFÎ`Ì;öV$ã˜,ÂIL¦­Sä©\²ž%Cý °”æ%É7´\"l//}b›á¸‹d´Ç7&¸—$£ÜþäyiI§ªJÇÄ\©D­˜¬§†aœSònÌWqö‡q.6`Ï$;\m¬caˆ2‰36ÑOré}õ|E ¥Y’ÓÎïsÖβCŠ'óŽ˜aÍê1ÃlB¿f•a"Éf"¡Òlf÷³QyB_?Ÿ3¹~!÷}`$¢fDöÓf¸]Ë;Z›¡kÝdm|¯‘%ÚæjB‘huž+m©F`4d.‡„Ìh»´Æ5¾-¤â©¦K•“¶}&1‰Ïtù·€^’-L/÷’€ñbPqW1m¢8·,IÝdðKreêDÖA±š2«¤A‡*IttiÃŒµb J­ÒZÁb.¸a¯J1ŽÚ³Ù2ñIÔ¯3§Œìð9Ûb!d1ÆImFž£ ¸…ÛI4Åô(SL<=Fëàz¬XÃh¶Su±Î•£Ki¿DñQ¾¬%š=˜Ü¬$<€>fgŠ‹Q 1Út Y ¦¡çSf\ôœ7〹iÆHaýlJál1¬ÁXcíõ¨¼f ®×°ƒë9XàŠ>\ßzEáL‰²°jÈÃõÝÍ™^$ s¬ðõ‘'£‰µuØÃ²T£Hr¹Š~©æ´7XÁè2+}î“gLà4l)G›ƒŒˆ’Täë#>œ2 ÚÒ:i„á³e6Ê–¡Ö’‰¯-ï ó¸8´.§T;ÙdœXˆ6<óÑÆ8Š$S£ ÁAåGIkG9†|µ)`] e|Vp6Ó²}ü?šªÃzè– 2*ïÐ\Š[Óæ!å‹Þ¢½íÂ(ô¾3¥×óH²­Àx)McÙ?í<Øe¾0æÃ†Q¦+†Õ×¹I¬šìàJ ¥ÖƒÂ†EaK‰²°iH£ð­$šé˜Q(tíQ2l!ÏrmÜæ²·H‘p©Š…RÊiG¬pÓúåýùì×ÙÙÕµwÇÙ›ÅììÒ%·3E‡¾¤à'%Q#%› [|,ÜáSJJTq±šÍÓ£‹§ÙÇê·õ¡ž[|YT§/BÕÕø°Õ×ZãïÜ‹åîFŒ7!ßaÏ×ÃjîÄå߯^‹7ëÍiþv'.ß^~8ŠúÓââ³}c¥ðÒÍYß*"…‡x0 rhgP mq߉åêô¸Ü$‹5ÆY%nº‡ÓýQÜîâ„÷¿Õ„ZµFX¡:œº¯%â"§ ð©&qÉ’bqÁ0ØÞîyÉWR­ç€®r5î×RBÊÕÕkü…iñ¯zÞVµ‚Qì‹ÕéꔵÖH›åok ÐÒTby¨èXub½»ÝðžÇn·ênèYÁô«yŽ j ŽåhqD•¢¹-eŽxª[`bª} xƒgú m_íŸÖi¹Ã+SÝ6wTeS-O+Â}Wãx¨Ž¤§ªWâé~½º«ûåI•mSbÖØÒ ~d/§åi½ßýÌe_,×]R:QâÒHéP&’rø‹”!þuñy HÞÕ‰ ‘ž2Î÷Ûí~'ö8®owàB‡?»“8ßìWÿ~æ¹ø%@$†ÄúÇ8/°›À5Z„X‚QélµLˆ¤úú*Ë_ÂìòwÚÜV—‹zHþnÉ’Œ¢MïIPA“äÉ@÷½<âç¡]Áw„”õiâ7kz|‹˜ˆ´âзkÞRÏ5øÊ‹/5˜ ?Á]GÔëkÐcûÀ»-Š0-wâ Ošˆƒþ`)=?në'2Ú Ì¹ÅÒÔÜCê=…(%Õ§ÔrJ`BM¥Ùݬww M±O±ÝïŸÄ’æG~`š‹uZ¹YÄj¿ƒrD‡Ìu&muG UQ›y7¯8eê½Õr³zܤmDú„Ø3)=ð`âÁÅ‘<÷žf˜ø²<’ª;6Ï ¾øéÇ l{4òxàÎ@0®*í‘ê€IåÖTn*ö:-v‰Åâº6©à4“ˆáôžÓ´O=]"ñx¿¿é¾WÕSNeÊý—ýrëiÜŠ¢ð;¿Âv‚¯Ç¦-}è´ŒF3b* âJ(›D vˆÐüûÙk¯ãc' PgÚJ•xJ|;—½×ÙëÛˆëätqù°šwå%êj&ƒ¦ÐÁ²c]œi½CQÎr%ìæ÷å¥lFg‹€¹íü`¨ŒVô§™ìÈø»"£ïT‚Æ?}/ú#ðvõäÙûK.cÈØ(ì$аä~Ç.`cÜÈÊs|FíÚ¾²ØÁ11ü>‡ô:Ì}T:{ÃÕ»½”Ú’_‘V¢Ç‘e§°eGîÉ8we2>Ÿò9Šœ5-@â2‰ÿ_'µ›i†Ž¿QþÅ ‚bÃ(fU¾¡òßCñµ÷{7­ÄãZœ9FMº&ùè*p-Í/‰Ž®8´:¤'G+S÷nž¯Q@NESã¿;£w¼ßNŸCÇá=ãb‚˜±iK„jÉeæßþY®0fS1³ø/u[xŸšfFoé×s2Ì=lÚ2øW:µÄíÈ[ÖÛßÂ×™&FøÍ{Ãþf]Û—ÿ:ñsQKX.`2À»d5–ÏQŠæ¼¸” <èєģ weË~—jXÝliŸ‹FÕxuß¿-gÙ@Ö³Þ“žk#š¾åÚ 0,6ºAö‚¶ÏË´Ìü½ô©6ï¥./IÅRS7¥qO‡&Oò©®”2QÒT­íõB»P™ÉšÚ'ä+F1Õ†O+ªün6„ÚŽé‡ÚÕ¥ ³Q”¿Q1Ø G[kí™ó)çd_W¸¾Îh_—ô}]ľçNÚ$¾Pcñ¹_-Ô j*ñÙéaéôø&ÖÒ/àìõ篚Åx!Í`s’¯*§vˆu¿VÚ7òúŒoÙVŽè¿D[Ç[ÔöµœËò;Ÿ2„ÿ`G;Ç ­3h¡ÖD<ÎS(lâÄHÝ&´FêHR¨õn]ÖWsVsª´}m˜^¦oJ0 eŸ}S­x$G6r¨-wrÿ¯Qæ]÷”h÷$ÖªPF@kÝ·k•z…Ÿüà^¾ýø—•¾Œ,ÿŽÅÒþ¬£²„Ûæ’˜ ­eþ䟨.Wªè$£Çª˜;‰djG~F"aá*s¼‰³fŒR™†#gÅfŠoâÖ=HÙn£{xq7Ê_37dîÇÃQêté‚ð‘¿£ØÚ=½^>2BZqÁê÷†öeÀæ`œÙ-P("E”ÑŠ@mÿó½¶4Þ²{‡’ŠÌßj@âJùؾÛ󴼨$m B,L«ÍÓL8ÉQÃϽÛFKZªÀkó+¥0³äQY¾Ñn+ó»©XÂÙ¾‘k¡‘–÷­ñï¿mwÕ×¼öªÞÉ&’ÜQ3hɉƒž½ éé¹d¨cüzºGj’Šô`y‰àŠÄx"Ë[•;ÕÎϧ[QSq*‰z Q÷n¸Læ¿ñ˜³Üÿ$ Íè0ºäXv rèj®Š&y%¬gm©)Zѱ½wë¹í솳.•>3ýøƒt&\ƒU¸œ[à¿L¾–Ü$N2ºò ÿã´“D8ðŸ_bÔ vˆš»ƒ”ôˆŠ¾'Aή:ŰŒ­Aæ«c^ÓòKšaeߨËVEµ OEÖÂÇ1Öç@¥5CZ3Jk×öë*ˆaô¡¯”b€±E¨KÛ¡59­[®Gwu¥sö»Ž>]ð²õšjD¡²BÒuŽÂH¦²È3;þ9Ëû]NµD±áÓÖôÉjGÔÓƒÙ(‚|öÀwÄ8‹n˦nKœÇÍûR…çñ¾.ý×,K¡€·n'^/ý/ ¶¦=Ç endstream endobj 937 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 938 0 obj<> endobj 939 0 obj<> endobj 940 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 941 0 obj<> endobj 942 0 obj<> endobj 943 0 obj<> endobj 944 0 obj<> endobj 945 0 obj<> endobj 946 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 947 0 obj<>stream H‰”WÉrG½ã+êØ=!4k_t³(Q!%‡MLø PLÀÂÆBàPþûyU™ÕÝe'pèά\_.]Pb=¹z{«Äú4Ѿ‹Q:ç…ì”–Òà©MJIW“»‰õغ,pyzu}òbq3È…Ä‹ Ñ%N‹ýÄY¬ëpà¤*¿-ð­yÎFDùÈwÉKUÎt줦ÃW³ÉÕJÌî&);I¸"õÙn"¡<…wi¼˜-&ù 1Ïž&››wíÔu¾¹ù‘žâíjŸßR³j¡’šc; x̉:˜­ïBóŸ)ßtªý4ûA ¢O?JWÛÎ1{M‘(W"¡ žžžZ/;×tŸ7ÛMñïšÏÝâ°+fßÌ€4XQ $Á ˆF 4m„o!„Pޝà€ÂÁ{M;ûmˆzêl“1bª:­‡PS&½Hÿë­"‚í4#ñÝ€QÁMføf+X$µ·y!4‘RIƪ†‹’RÄùÅiÙ… ƒ3].×®”Ë„\?ÌÏ­ë,UÈ5ûE«žV°þ@·lDé09´R@J©ó¥—~ù‡Ø×vÊN$œ"¡¸™®^»Õþ,®Þ_'#^½¾žü4jfdÊÛÜñÊ*K18:{G{" ¯:™‚ØMàÄ ‚àM¢Û‰K]@Æ#F謷½ÊÁÈΧ(s±Q3ëTö«’¯#ô.\쬲#㹋?*PÒ†Œ LU¼PÐXßʹÆà\Ìÿiüí$Ÿ9@å¬;èÏüôͼí¬K}vdÑ ã5–[øû…©9¤Ábcµ8A™ ]Y´ ›ŸÎ¦bÃoM`õ{AwI¹²|­ÌLM$à3¯Ôˆ•¨0Ž$Rö4Ê6¼÷cr”ˆC+;–ðy·6ÂÈ $òFâàåx}+þ*ãÛë˜ôï±~õJŠ÷âã')–“Q7Æ‚} ·“ˆON2#™Êèe¢îdüí¦UŽ3úΦ¯ÐC1¢™üØ 3F‘$H#I˜,Mhò4Tº·›Pã¾Âè­B%–nì+3–fr%ÖÊ$bçeø c”ÎÿÞJb«4ÊFI,éF¨$¶½•DÆ )©;?îDHx9n+%ó Å NuT{1ã/Ö§’-®.8–ìô®²L^CãÄ•ŠJ(+0\ì9™¸kšIë˜4bQB ÌqE"j–H–h6ˆë)ÄD>6E )2`° m˜ÆŸ4’ó…c%™Lž\تÁ´“ÕGϱTµà¢fÔâCÌšòô†}åÈçèCÍÁZbÔ¤ksÒ!x¦«ý@ A:†µÒ„«÷©§IÁ0L™³½àäÒl'÷“qyb_ÀÈ©G.`â鎊„Ï>ÛVÊÛˆ8(D¡Yðú‚´©W`Žay;j8àT5Æ›ä¥$4”’¦c+­ kÔýâ´çäST_p¼"?ÿ /9c-õW9Áº@sábGŒDŸ^Ÿ2(Q†™ ;âêåw¦­**þŠKý§íF s\nЄˆåÅ¡õŸ7ª§¹Ÿ¼¿ˆœi1P!äoÞ( ¬Õ 6Uœ¥M²£ü>ëãüF-ô‘†sd!ŠÀE*†ôî‚Ö2T æîLWÇ<Ø‘ mªmay—eÄ%JÇk¸Ñ’ì‰[+qÜ—ï¾J®S—» Ou"”AÇ0ªѤA•$L¸0@…yP, ©lÔ'5¾ÚGCa˜gEFX1àV@CªŒø—Âæ®…8Tªj¡–òbH å½âñð¼=£ÔlÓÒdTƒÔŽMÐÖ0¸ç ,!«y`")hßïCM@MÈÙ@Æ]–&Ó<"I]H$;2÷Tºp‘›e!•I"DóÙx‘CnX=Ê2ñý¥¢?رlj4ø³àè<Ä4Þ£•&¤r$ D  ‹<“žwRþ&“|½@yY'ІÞF=JK Ô”)Iì ž9M¤âq!ŒLÙÔüä;D½¤z×N‹*Ó< Á\HP Té± j…Dm•cm¦!‹Ún5ÏÚŽî×(\…ºÈëÛú0=ÈTŽay®¬Óâ‹yXàbõæý5þz]½½Ub}š¼šM®n‡˜ÝMn&¸ßKQ^ò’Àç ñl‡«ÿ†¤´FÌ“͇Cë;ÕœWí§Ù÷0aÉ„FÐRÌ^q¤ñ)^ ‚š=Aó¥øaÞNñß ÊûÅŸbÓNEsjñ¿¦ËvšŸ«ü0Í]> Íg¶Ù¯øPÌOâÜN±ešûvªðX‰ýcfÄf÷ëê(wb±%³‡Åïô"ªözuÊ3wl…½&Ž­Æ³Êgî²E•q8ЧÌÍfSmˆÃÃê8gjsØ‹ÃbñxŸ)ã‚`u¾àŒ‰Æâ<’€ùæ²»ìÕæÔf¢9€29¸„çܾ–8½/§¶²Ûirªð­hS}Ò¬‹!ÓìYÙh\É›-óE,–Vu9õµx|XΙ™#o–%‚hoæÍ‡Ü÷›õ}ÇËÌÐ2ÃòK‘+o _NgÑ ¾lÄ~½•7KÁ}8짯7ÛóŽnÞÝüxz‰µ*^v»æTĪ õ±¹Fí[ô|j~óýRÜž‹ ^çÇ¥øy5_Š÷‡åŠqªÊÀIÙ ì뾟úâ½Û=lW»ÕþÜæ‘*Ýrº\ÔÏw½+Ÿ¿œÙó^Éíc¢Õ?à F|kóÂJ’6I2´.ɫDzÀ´˜F1-G­bMµÊó¹ËÕÝf¿:•ÆG}ŸŽ›syy8Ïân;_ŸœkþËz¹õÆq#Qø}~E?v™1¯MvÞd]ŒÄR䕯ñ.’…!Kc­Yöê#ÿ~OÉ"[·uvƒ Öôáýã)I[<бuB¡ûTéò$‘eñè¨ãX'¤qn)ÚpŒ ÝqÛÛÏÝIÇÃqI>×)àPøñ3E`è»+ltuÌl„º÷›ìþ—)ïÜ º¿H“½Db3ýí’¾&ŠÕ½¤ÿ8¨Ö¡êô±è{x÷¤}¸Ì .rµ£«[ð¿íRÚúž’ÕÈÅgiyð܋øáŽÃ…2°MG?§Ê£­”×¾'‡fqЦtò¯Ô8´~µ:B€NJYËê‰ÃH&KÇG>²Ý²¡ÿ'ÏYš‚n…nÄiæºë @/v>ŸÞQrì^lãÂñrg;=ƒòÞEò±åõçŸg“XíèpÏ Ó4Ë’x<ñ×ðôñ×ÃVéX+æê·÷_ëß‘¾á‚·ü^O´T\hpáBܰÆÈeιt9@áÖ`n9e…ÿÎëqÃ/­oI „£°ÂwÝ(ü„ÅüŽÿ¿v®;èè½gè½ç"¥D OÖØ}Z¸ ùÌL¢\.Žñ>,à{¿ CW j€ñ ø}jÌ< ææb[ÅÑhnVܬš:vî©­c1k°më ©Y;«òxP5üÓo6D‹G°5upï¢{zS犚M7.åÇY`±³•+ì…n«(º2¶Ýø‰¢É7uþÆ›ú×na¬Ã¢Ú[¹q®ÐÜÊ °GO· zŽñM ûjñö ±‡JÍJO049gí¦{û…œPí Ú£·ýæãŠ‹OS£?º;þÞt·Ÿ»GæA£²ø…§²¹y›j¦ù]F  v¼ôiåbfŒa ߺÑÐÂL„@€‘ÂñÅùÕÉå –ê)³Ù~p«#m®x²Sÿ3}÷[¿½ÿú·!Sv‰ò2"&`‹%ÂÝ!kgØy'Ó{o÷÷i¦|izÅ(ná‘|s å©Å¯ýÖþÁáñú}nïÅY‹<†¬€š¼9–XkøŠþúž'…ºpçéÔkîdýÝl°wGï·¶_£\MõŸ˜›NµÙ=Ú#:[³tئwÔ0Hg¹é3~·×ÑFü^×ßàu[½î²×6'pŽîÏȼ†ØèüINìtßw{—°v`ks!y›líaNùšû‚EŸL­³©ÉϬ±ƒïzøeÃß×pTè¹Ë‹Týêq É ‡#gtbáQÖ†kY²ðàú‹¦ V [ˆý÷„;›ÜŒ¤‰Y’‘QðšöÐô8Ú8äž£ÍØ8z÷“û7ë¯5.\ÅÅ`¶º™†‰=<½{ 2Ý“a ž>|% ðìCb̾ZÅìÏ_¶°rbE¾× çwÿ#~p ïðQ-ŸæÕy¼·?ïìòÖÀá‡lkežˆˆ„>/pgkÉGë! ýô4|½ß>$·ºþmúþyM«à|ôßEÓ=ê/ó-IÁÕ¤`Û¤@¡@§6Ç&§…‰Ý)§:®å¨ÞBJ !¥ƒØ ))„”¸/‚ýÙç*œ¦&œBJ 94Æ(éÀr:˜R:˜úÜb(p2ˆÔÍSÉL5Zí ר}ä!źšŽi$Ê'\ãÅöÍØÞ@ ŠM‰õ„èpU»9½’öžæö/7nKw¦R›ZkÌF(54δv<Ù¶†¥g`|®‹™yv”Lë™Qô¤JãNãšœXÓíÖp™¥cÓyY¢Z['Ö¥ƒ2¼ž†±léŸmÏ#· 4…Cz8B©˜1í Àu$A’>æÅ†^GÏ~¾ÌˆÍýã3â„U”áÐ/YÓÇ㜠ÁÆ\lº€Å˜jw„4‡_¦¶yîþ?2vîŒA¶›‚t¬!2@ú5„‘L?FX@r˜± ’ `— »ÁÒœuq+€xÅP_êù©  endstream endobj 948 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 949 0 obj<> endobj 950 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-21T10:40:12-04:00 2009-07-21T10:40:12-04:00 2009-07-21T10:40:12-04:00 256 56 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAOAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYqkek615 ftNJsLZ9Tt1MVtAB6skcTlfSUqWRmqtVoaYqj7bXNFuZlgttQtp5nrwijmjdjQVNFUk9BiqNxVA6 4sLaVOszmOM8eTgciPjFNqjviq1/MXl9HZH1O0V1JDKZ4wQRsQQWxVWtNW0q9cx2d5Bcuo5MkMqS EDpUhScVRWKoDVDbrc6bJPL6Xp3LuhI+EkWs1QxJHEBOTV9sVW/4l8uf9XWz/wCkiL/mrFUVZ6hY Xqs1ncxXKoaO0LrIAT2PEnFVfFUtvprG31W2ubq4WD07a4H7yipwaS3DMXJAFG4gDvXFW/8AEvlz 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 uuid:6E50541A0376DE11B5FD86E51C67BD21 uuid:6F50541A0376DE11B5FD86E51C67BD21 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 951 0 obj<> endobj 952 0 obj<> endobj 953 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 954 0 obj<> endobj 955 0 obj<> endobj 956 0 obj<> endobj 957 0 obj<> endobj 958 0 obj<> endobj 959 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 960 0 obj<>stream H‰¬WÛrÇ}ÇWÌãnÊXÎýâ7‰Ur,©,!уJ•‚@„ 4†ÎßçôôÌ^d2V*‘JÂNïôíôéžY%®gg¯>(q}œißÅ(‚ óBvJKið«MJIÖ³«™õµu´aúöìüèÅêa) ‰¢5JW»™³Âšr'­Pô•à™^ù.y©ò;;©ùåóÅììB %W³DE.ï€úâv&¡<‡‰À+,³&Úvñz†õú¨ð—#Ѷó],^°²r¤ü©yxxh½ì\Óý¾ÙnvíÜáù÷nµ¿m?/~š½\ ˆ¢PÁ l9ÚOÇkƒîdœÆ,s´7Eü©¹xÝÚ.4ïòxµÞáÁ4ëvn›Ãò´?ˆúNå(ú¼(ô`Œ˜«Në>—žl`Ûk硳ͫV7*´s„Þ8ñìîÐΕ‡|³*±ø¡%?)Y3þ“šš ÖQn²Kޏ0ÔÖõïPWxô*# Rô*ƒE¤»ÆO ¬TÍËÌÎo¨@¦YÞñïiÍ¿a,H•J¸NE¸àdL¯Ø¬ulìÅúØ:B¨ è×­ït³kÁñD ÅµxØ (®9݈SKŽnòëµ8ßÖ®ßÀç˜9"xß9႘k€GYü‹Ø1ߥê¬FšºKV8OœR…òg/ö«ûÛõî$ÎÞœ''ž¿8Ÿý2*C2øC}'M¢þSV©˜‹6ÖÔÆ5‚.$´+Xš‚·3*BêÁ›Î£ƒ·P+ۉġ¡u¯µE@²ó)J":Èe"ß*ùB€§Ý¸Øé˜ÆnF’ÇÜÊWŠD³Sš•ăÒÇ¢ ËLq1Š!F›O˜! Ô4ô|*Œ‹žóf07Í)¬¿™R8[ k0ÖX{=ª¯Yƒë5ìàz¸âƒ×·GQ9S£¬¬òp}ws¦•—‰ÊÜ+|}”ÉÆhbmÝö°¬Õ¨’R®ª_«9í V0ºÎJ_ºÅ”8 [Ë‘J±Q“Š|}ćS¡@[['0`¶ÎF™j-™øÚòº1‹CëzJ¥ÉŽ ãÄB´á)ÆQ ™ *?J‚X;Ê1”«MÅëZ(ã‹‚+°™Äöño4U‡õÐ',AeTÙ¡¹¡´¦-CÊW½E"zÛ…Qè}gj¯—‘d“Àx©McÙ?í2Øe¹0–ÆQ¦+†Õ×¥I¬šìàJV µÖƒÊ†EeK²²iH£ò­&ZèXP¨tíQ l¡ÌrmÜæº·H•p©ª…ZÊiG¬pÓzùæ|öËììÕ%®³ç‹ÙÙ…J,®fô ƒ)òÍ1t8€‹[þžXókþ›ã+¾p+|H,fŸšÅ²ÇØ¥æK;OøÐh¶ø6ͺܧccˆy~aUÖ¦ý¼ø f®g˜¬…Åør“7ŠÓÍZ´¾9´ô©E>Tç›å¥¸ÛNíÜ6ôò žs ô?ÂCO4×yq¤×÷$QÍ];§p/—§µØ–]§õnõ/qy¿§=m-bz|8lNÙõþn}Xf_›ý®Ë9œ]SÑÉÏpå'%µÀ½Šn¦€“’¾¦†.Ω½ÝïæÏï7ÛÓ|³¯/ÞD¬©çûÛÛýNd0§"z)C4Ïê™óŸ÷«VËæW±Ü]Š‹ ñ~ @Þì/׬;¯ÊÀJYôGA3”ñõíÝv}»ÞZÂfyBnÇ’Û“DÁ ·¹?%ÊÿÂû$GpzT ããé+FÜWÛåõɹFÜß]â!RuÁô†7hœ»“aðÓs±"~Z·èð¦2º ËRdwù`Šl¨x`ãþ)H´C¡¹ ZÑETSA´ÄP¨±ÕnÙÕsfò}«š »mu§›ÓœV©!ưüu+P‡&óµ<‚ì®Y݈e}õe»_ýÊ:´í};Çlžµ ÿ¿ÁfÄÿC;×è*z}ÉçÅÆ ›Us(Â/÷Ô f Úºª!Þ?ãÞyó³[¥«‘j]dpEt¶£ÒKé°?L=º˜T[âÿ5—ÜÓs©çœz‚sy.žKa4—ròe2išLàÞÐïôd¤®MÍ©5)€ù&Þl×§/sL™MØ]—cU¿:‰ŠB‘þYà!‹ty§õ(•˜iͦ§Z”%™܉”ÚòiÝp…š3€¤5z*T‹NõÆbQt‘ Æ­6!¸ª€­2jb•-„;Œ¡¶÷h",Ƙ €õŧcƃ@ŠxÙ- ¯tuqr gL <ƒhA") Jè=U?òÐ=ˆ÷¨31e&·ÿžžg€T)kæV?>Ï#>½ÒõÅœ•;’ü=+Atõù?†`öó]v±¨‰%Ôþí|MQ¬«"Š‘>…˜³Œ ö¤ÆÄxo„4ùC\#,‘ÀÔºÅR¶oUˆ¸&kaDRZ¿«Ì áü `ƃ.²:CƧ3£—EzU®ì‘`Wôå&mŸ3BÊóòMVÿe# ›i‹V1tœk •IŽ$ÌÓ9 oŒ®²E+Òz¶}Ø W÷[]QOž8nÛã’T¶‹ކž¼«ëº/ ”9n Ip°îæ\ÿDósÕÞâÄ®eH<€šÈ…]Ùº¹@àGOHô²Ç—Îâð(}aŽ­|Ôо°íªš´ §ÊÉ('Zf|Tæ:{åeå²ä(_ÔP߈£ª()ns ôŒê˜æD¶4îBs‚/ã÷ž0ºrÙÁ ´ÎÁE%^Ã0K(Ǭü1߇8S…£ƒÿ5~sÇÃb?·ipÁѺÁ—…R—ùqÁ¥Û|g°Þ`=2:ȾÚL®•УMG’=¬8œ·—¦.Ûhrl[Gqú•0ÊÖ«2Àœ-…Cy; xôzèèÞ‰ÌÎ펢øe†,y–jŒÄ½Â£bÛM YmK+*¶n#öM1@K_u̺SOt:¢ „ޏÚ÷Þ™¯¤iªüXkv.ïk‰ÎèÏî¶¾¾ïD)[ûNh´ÆnOTžŽn “U$ÿ±‚^1Ò%cÚÊj 7øEyI Bkáðxlm#<bS O«~óò¨z φͶ«56»Ì˾‰­è@ÑàŽÛñuúÌÛFþ`jD~D endstream endobj 961 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 962 0 obj<> endobj 963 0 obj<> endobj 964 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 965 0 obj<> endobj 966 0 obj<> endobj 967 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 968 0 obj<>stream H‰”W[sG~ׯèÇ™ÔjÜ÷˾ÁÔ&&$X,„J)²0bmÙ‘Dþý~§O÷LË8l¶\eÍ9s®ß¹tW³“J\ígÚ1ŠàÂ༃ÒRüj“R»õìÃL‡úÚ:8~{rº÷bµ3È…ă Ñ%ö«íÌY¬ðÂI+=d-ð­ùšˆè•’—*¿Óqš_>]ÌNδPbña–È‘HÂe ¨/nfÊsx—Æ‹ÅjFOˆyq?{×ý«Ÿ»Áwg¯øW¼Xoé)uë*©Ûõó€Ÿ%S‡ÛB‹Þ¡ûÃå»Aõïß#ÃAŒ©ãÓÕvðÀG,žq$ÊåH8ˆûûûÞËÁuß›ëMöïº?‡ÕíM6û|¤ÁŠ% ^@4Z i#ì|  „r<‚ ï]týâÓõÜÙ!&cÄ\ ZO¡&f½È¿y¡¤àD?'$žÜEnˆá»kQDRp»ͤT²`UÃEI9bzpZF!èàÌ@åºÉå2¡ë|yèÝ`¹B®Û®z¥ðû¥‚õ;ºe#r‡yÈ¡•RJƒÏ½ôö;±­íDN$œ"¡J3<»]}¾Yoâäå)"zúìtösÓÌÈä9¶ÔñÊ*s18š§xG{" ¯™‚¸™Á‰AÁ›!D%®g. öF¬·£Ê5‚‘ƒOQR±Q3ëùUÉ×ú .VÙÆÅÄøÚÅï(i!sEƒ2Zë[9ל‚ù¿B`¿äWP9ë[#ã+?3oëÒX‡¶èšÂxåþ~aªÅÒdqŒ±ZlAP&h—­BÃÒ¯³)ÛÃð[Šz„½ ‡¤\^¾VR@S& 8ÀÌ+Õ0 ¢ƱD"OM–°áUÛ£ŒN¢(‡V¶•ð´Û[†Ðxm”)޲O/Ä_e|qú#&ý{l„O8Pû{¡¤x)Þ½—âr"êïZ, cŒábqä$ÓÈTÆ(õ ãc ´›VgôƒMÐS1¢™|ë¥0šH ¤ÚH&Kóš†Jvª`Ü#ŒÑ*TbîÆ‘°2cn&—c­ŒI"^†GM:ÿ{(‰®R“’XÒ)4¨$¶½kJ "mBJêÁ· /Û¶R’-qª£Ú‹Œ?ZŸJ´¸:âX¶3º"ZCmâJ Å¥œ.Ž¢î™.¤u…4b•B …ã²DÔE"Y¦‹A\X!&öi´ÉI±ƒ‘iShœø¬‘œÏ+ÙdòìÂVB;Y}ŒËAU .êâƒ[Ücˆ‹†æ<½)>˜rì¡äèCÍÁZfÔ¤UÑ.I‡à ]íVÒX+͸zŸFšL‰8×G*Íõìã¬-O Kê±0•鎊„c¿Ø V¢mÄ"Ó-x}DÚ4*Ž)ò¶i8(©jŒ7ËKÉh(8$Í!¨‚u¬´6E£î§}I>Eõ€ãûü€rZ-õ£Œa Cà¹pqÃŒÄG¯OJ((ÃL ™N®8*Õ£7ÑVå U9ÅŒåþÓŽw£†¹RnÐŒˆ-‹C+î?oÔH—~òþH"–L³ ùä€Î¼& ¬Õ 6U¼H›d›üŽõ6ÿ„Q #B¬á[H†#p‘‹!½;¢µ U£pLéLWÇ<ØÆ†6Õ¶°e—eÄ%JW:×”FKrl¤ÒZ©ÄQpt÷Prƒ:ÞM`x®£ :†¦L³Wj’0áȺñ Š€ä²qŸÔøjM„ižwwbÅ ´êR50â+-„扮…˜8\ªj¡–òhX¡Ê{UÆÃ—í¥.JZšƒŒŠaÚ¼õ î9ËÈê20‘´÷¡f fäl` ãŽKCt‘¤Ž$’m ОJG.¨Y¦Rž”)B4ŸG9PÃê&ËTî/:°ãˆk”cÁñûS»G+9MHåHˆÀËLú²“èLfùzò²N½ºIK Ô”9Iì‰2sšIUÆ…12yS—s²Ü!êõ Õ»v:ZTD— æH‚ë8YàJ·.¸jµUjŒµ™¦,j»ÕÇTÓMeK6Ù 1WM²³7çd5$|´èN–% ‡u]40¾¹ÎOÎ_¾ºXüZtŒ–îH£ø˜Oé¼ë~zM¤^ЯëH™9dÂz«“ÊFß5κ·¯}rúC¿ø4ËsMðåM›) ô!M=—Å—$‰-Ç’ùÆÚyÚtcœeÎL™³å€2z ìm4Üq×д}\n/{´¾ïö—ÿÙlû9­îJì¹,b¹ëµ„&f ~hF¼h …ÿ×_Äææn¹:¬/Åo_X`)Ê7ÒwäÎv4vÄHèœâgx¤u¬ÅŽÕÈÝ ¡ædmSÍOzÜ­º'Yw®Ña@<¨¦âʼú÷ó×gçy‹¼¢4 µp#Ȩê“ö܇›*n]ÇÑ=ìùb¦>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 970 0 obj<> endobj 971 0 obj<> endobj 972 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 973 0 obj<> endobj 974 0 obj<> endobj 975 0 obj<> endobj 976 0 obj<> endobj 977 0 obj<> endobj 978 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 979 0 obj<>stream H‰ÄWÛrÇ}ÇWÌãn*XÎý¢7‹URDËár¥dU A ÐhZŸÓÓ3‹]ŒíJªb•‰ÞéÛéÓ=³JÜMÎ^_+q·ŸhßÅ(‚ óBvJKið«MJIì–“Û‰õµu´aüöì|ïÅba) ‰¢5J웉³Âšr'­Pô•à™^ù.y©ò;;©ùåËÙäìR %f·“DE.ï€úì~"¡<…‰Àf ,gO“&úvöz†õú¨ð#Ѷó]Ì.XY9RþÐ<==µ^v®é~]­W›vêðük·ØÞ·go'¯fÈ¢(Tð[£EŽ6ÂÄóñÚ ;Ç1Ë-ÅMh.ß´¶ Íåûü#^/7x0ͲÚf7?lwâß©EŸ…ŒSÕiÝçR€À“ lû‡v:Û¼nu£B;Eèß<ìÚ©ò¯ÖB%ÿYhÉOJÖŒ£¦¦CÁ‚u”›ì’#.këúw¨+ ³ÍpÜU2Øã;Ü)É ·Ÿy^ZÒÄ)‚ªÒÄÄ11U*‚F+&«Ã©ácfçT§¼òÕFœýa˜‹ Ø3ÊWkãCØ¢ŒâŒ]ô£\z_=_WÔgäWZqÜŽj¤ÇÕu„ s@9Î g·ö½$¯CYº¼tÊ”u‹¬Ó,ñ¼!• >嵯öÐ?¬à)V’Ð NëÈ4æ ­ƒ,k0–5‚¶, l3öaªF]ãþT4ŠçáЀE;² ÎÊâªU‚â˜0Í8&ϸ8ü)kÛg¡4KJÚå}ÉÚYvèBuàdÙ ¬E=˜Mè׬  L$Y$TšõäÓdPžÐ×Ï—ÌC©_(}‰¨Ù…ý¤·K¼#Ù]r£µñ½F‘h[v¨E¢Õe®¤ZÀhÈR9YÐvyk|ª¤â©¦KU’6}%1™Ïtù·#€NIª¦—;%`¼T\ÆUÌ›(Î{–än2ø%¹‚2u¢Îë ØM™EÖ C•$:º¼ƒaÆZ1¥Vy­`±ܰW¥GíÙ‡LÌA|õëÂ)cG;|ɶZÅ£ã(ŠTç(náv”M1=ÈO‘À:¸+Ö0šmÄ\]¬KåèRÚ/Q|”¯(‰f¦4+‰@H‹‚.3ÅÅ(Ž1Ú|³@MCϧ¸è9oÆsÓ ‘Âú«)…³Å°cµ×ƒjðš5¸^Ç\Ï£®øÑ‡ë[£¨œ©QVVóp}ws¦•—‰ÊÜ#Vøú(“ÑÄÚº#ØÇe­F•”rUýZÍqo°‚ÑuVúÒ-¦Ì˜ÀiØZŽT‚ŒˆšTäë#>œ ÚÚ:y„á³u6ÊÄPkÉÄ×–wÐyXZ×S*vG¢ _ùH1¢ÉÔ HpPùAÄÚAŽ¡\m*X×B_\Í$¶ÿSõ¸>ö KPUvh.E(­iËòUƒ@ïFчˆÞvazß™Úëe$Ù$Ž`¼Ô¦±ìŸÆvì²\ËaÃ(ÓÃêÀëÒ$Vvp%«…Zë£Ê†EeK²²é˜Få[M´Ð± PéÚ£ ØB™åÚ¸Ìu=l‘*áRU µ”ãŽXà¦õêê|òýäìõµwûÉËÙäìÒ %f·ú†Áù!Ï1…À­˜Ýó÷ÄbŸ_ó÷Ø_iô…3[àCbö4ùÐÌæí4Æ.5ÿh§ Í¿À¦Y¶SƒûtllÙ0Í/L£Ê:´goaæn‚iaÀZX¼À—›”¸á‘z ìEÜ,oW›å^>-Eë›]KŸZäCu¾™ßˆ‡íîÐNmC/oá9Bz¢¹Ë‹=½~$‰jÚ)…{3?,źì:,7‹/âæq)[ÚZÄôø´[²ëíÃr7ϾVÛM'rg—†ÑTtô3^ùIIT”¾=áII_sCçܾÝn¦/WëÃtµ—o.ßï_ ØÔˆ7››åÃ6‡ìE'‰nîq" ‹ÞjÆé|½]´ø0 Í?Å|s#®ø;ß݈¿.ÒÕöfÉO«1¨,ú°šŒƒÚ¾¹X/ïÉ=6? á}É÷Yöب¨Í‹=ÿ qâ³ÄÁ‘R‰§‰Ó—‘#n×ó»=’sx|¸ÁC¤’ã¨ixÓähÑMM¦E~ÿHïu“_ƒ$s‘-æM‚©A´`”þ€ðTa* Äý¿l©ô|KõȨgÉ-¸¥Â ¥à·o*MMÅ]©¥ ¥¹¡ô°¡â醊ÍI½¢Ö*dóR—µä†ËÉßNò€fŸ3Ò2Ïý#UOÁÄQü.ÚÊÀÀ Lcêžh ’SpIøGB²ŸRG/#7ì4ßÜpáh¤¸ n™¹+[\ÝánÞJ ¦¨àSMe€ÊN¸V6*ÐâE1­Ù4ŽÎåpé„ÉlÝ–ñ„!„d\sÓSÄw-Š ›m^í@Oycи…–Íèí^üðfåw9Q´ì;6ŽµÈ¦ÁÜSX~™nY&(Îw+°Hp"­üæ}–?dË](qö±býMN1ÑÉÍSÚêÎ .¸»Õ¹ÞŸYù9ÙëÕÝf¾Þ#-ÜܡҼ#(ÑÔpš/Ž—Ÿšówù©Öi„-\èÑÉâ*\ùåu;¾ùnö7˜ö^’y]féÑ}­vÃþæÝÕ{n²ëÙß_]±ªúéUÓÛ¶Dïýmq‘¡|º}þ´ýûáé¾x~¸GÒ®0ÚŸ‹-Pµ´¦%dhùùéñU{j’BOÊ]óáô9”z©~?¾ÜݽŠÇlJ@:§]Æ †¤µ©nñe!8íÑ9®¯ªB£MHJ$g㿟ÊË_N™¥kN/·{½6ßÒõåÙ9‚±åæbµ¾™H¶ƒÔP@?4ÕN²'ã‰ãí(ß“Áä’YöîòìtQGœõj™kÖÞ>¼]³Tåµ¾_^±¢Œ÷]ã=¿BÞQ`ˆ“?ŠY×_î f=e|’oñü†-¡¸ ËHV„€©•:ûì»FðÙ§†u‡U±Aÿ’ã`ÀPAwbbª¼²Okå'Û£÷¨-I¡]!¢~°ƒÄ1ŠÁe*†vi²:ä#4‰WzÀG@³š9é Ïnz™Ò¬Þ«!}¤<<2¤¿#%Á(Uö›,{;½¿À;Ñe3«$a•”YÅã{­-ÿbA’yÌ\‰x`r/ÿ‘bä<üb]L2ŒWÆáàÐt‡o'‡ža°”mv>ó™`,ÉàU‡0ÌÍæÃ4ÉXgöHƧ€‹ë™ åï:€îÓKèéÄ’m¼I Ëì3ËrL-ìÅÈÕ;þ†’æúTÁñ(× ·Ã©NßþFò3޽v&ºLLë÷çh‹¢¶Öªloè¿$þ‰ M· zY(O¥±É^Kë²ÎJ •Ö>T\ãД~)Í1ÚËö¼ØK¯ŠÅÍŠ¨%Ÿõ•0¡Øz‘GÅ«ó^?·ê‹E° 0ÄÕµ ÎàµS_üO Ëäq7†õ¿wòNB eö`ÌaCŒ‹È{­²k¹£»Ò*‚áW[Cþ,7šÂ³(˜ä¾Eo%†4 ˆCzË4ä0Yr³Š‹(pߥ¸€]—üÎ~_×سFÑO#£ÕæŒèˆC@G-èȸð®ù:*,ûèpæþ¨zþðCþ ?Qlu7—4 Mföõ®§_,¢2HTqÀITþˆÊâKfœÕèõi•?œòGlÙƒÐà.·²§ £–¡Èf€ Ì$qf"¾°Ôÿ=_ ·ÇD4©!Od– EÃÚp—í\×ó‚MmÍ—¶PM·poòkU(ñ|oÚ%ü‡ý|Õ¢p¬Qƒ‹˜° ;ÉVw”)¡<M²±y$ÃEa]¯#QŠüÙÕ‘˜8ä“s322ˆ*ê§td7Ü¢©høí:²ò(<µŸÒ‘•³ƒm¤£Œ 8C›Rq:äp—ÓXE2sÒAž]:´Â’m÷o"28 aç®Â3ë©«p©Ö4¸ï“ô㊤ÀÍIz‡ñ³_!§€c=ÿ™ÐOÃÏ»)¶×«žv`ÁnÞ¿$ð ÿÛbÇ}Ÿ„jˆ„(“Fk}F0èM™úu»¹õãêè7?*ù°«Ó!h|Sµõ¿=8Mœ endstream endobj 980 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 981 0 obj<> endobj 982 0 obj<> endobj 983 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 984 0 obj<> endobj 985 0 obj<> endobj 986 0 obj<> endobj 987 0 obj<> endobj 988 0 obj<> endobj 989 0 obj<> endobj 990 0 obj<> endobj 991 0 obj<> endobj 992 0 obj<> endobj 993 0 obj<> endobj 994 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 995 0 obj<>stream H‰´WÛrI}×WÔc÷Ϊ]÷˾€Á;X, Aheá1È’Ç’Ç3¿'+«º[Ø0ÌÆ#¬®ì¬Ì“'/U­ÄåäàÙ¹—Û‰ö]Œ"¸Ð9/d§´”¿Ú¤”Äíròi¢C}m)ì¿=8Úz±ØBdŠBâA†hÛÅzâ¬Öuxᤊò.È­y("zå»ä¥Êïtì¤æ—Of“ƒ-”˜}š$r$’pYÛg׉ÍSx—Æ‹ÙbBOÀ<»Ÿ¼oNž·S×ùæäŒų嚞R³l±%5·í4àgΫݦ¬Eë»Ðüîiå›Nµf/Â0ˆ>tüq¸ÚvüˆÙ1#Q.#a÷÷÷­—kº?®VWÙ¿kþè›ëlöé LCR¼€j´`ÓFØù`éx„$Þ›ÚÙçõÔÙ.&cÄTuZP)ó¾È€ß>SLRp¢‡7 FƒW$ðÍJ•ÔnóO¡y)•,\U¸H)#¦§eg@g:J×uN— #ºNç»Öu–3äšõ¢U ¿V²~Cµ\‰\az(¥€Rçs-½û‡X×r"'NP¥˜Ž7‹»ëåz'^·'ÇG“ŸGÅ ‚LîpK¯¬R1磩qŠw”'Âðª“)ˆë œ Þt!*±š¸ÔD<„ÎzÛoYŒì|Š’’œY§È¯J¾¶Ð7\¸ØYeG.ÁC¿U¢¤ Ä L5^Èl¬ïÅ\18×ó· ðŽòdÎú±ƒ^ðÀÁÏß ÁÛκÔçáš-ºQb¼Æp ?ž˜j±@,ö«Å1 Êíò U(Xúu6e{h~kBÙa/è.)—‡¯•( k èy¥FlQ‰ãX#‘§Q”°áÕ¸{/hD(C+;Öð4ÛÇaä4Qe8‹oE|~ôþá3äþ^()^‰÷¤¸˜„ˆü»1EÐc8ŸD9ÉŒtª ×‰º“ñ1ÊM+Â}gÓ#ë!ŽQL~ì¥FH¤ÆH:Ksꆺîí&dÁ¸G½Ul‰¹{AÀÈŒ¹˜\ÆZƒFì¼ FáüõP\¥Q4JbH§0*D%1íݘ¨” 2HIÝùq%BÃËqY)I÷$ÕQ­Eã÷Ƨ’%®ö$–íô®H‡ÆÐ8p%A†âTŽ { ­îy]–Ö•¥‹¼!ÄP$.kD]4’åu1ˆëoˆ‰}m²BRlÀ`@äµ)kœø¼#9Ÿ%V²ÉäÙ…­;ÊÚÉ꣗XU-¸¨‹.q&.;4ÇéMñÁ+ÇJŒ>Ô¬eA Z•Ý%è|YWû7é ­uͼzŸú5o0…&’¬ö$”šÕä×É8=±O`,¡Ç’ÀTº;f*Žýb72Y‰¦Kˆ¼lÁë½¥Mý†"1EߎJJ¨íÍúR2ʆ¤‚*\Ǻ֦ì¨óÅi_‚OQ}%ñŠý@ÿ+‚¾–Œw©¨•0aLkè÷m„‹k$>z}"RBafbÈë䊣’=ºqÓÚª¡*§˜±\ÚñlÔ0WÒÍ š±ephÅõçê×¥ž¼ßÓˆ%Òl R>8 3o„ k5Ĥª„m“ì(¾„c}B«…ž!Þá[H†¸ÈÉÞí­µ uG‘˜R™®¶y°#hÚTË–Y”J¤®T®)…–d_H¥´RÁYpt÷XrÚŸMxγŒu £<ðšwp¦ ö p¢GTQœ6®“НÖÑAúYq¥q%VJ©$A ÕˆF|¥…0¢yX×D NUµPS¹× ¼¡$Ê{UÚ×é¥.JXšAFÅ4HíŠ žú ÷œL„efui˜È´ïç¡f¢fæl` ãöSCëÒ"Iíi$;2@s*í¹ b ¤Ü)BŸ{1PÁêQ”©Ü_* t`Çž'ÞQŽÇïCLã9Z—C‡T‰ä†Üa±ô¤/3‰ÎdÖ¯(/kGqÓÛ¨G!`„2‰9QzNóR•vaŽLžÔåœ,wˆz=Hõ®ö­Kƒ³§Áy,p¦Ç.¸*ˆZ*c-¦!ŠZn5ÎZŽ•‡R¯Q¸ êbßÖ‡èa9´H•˜¢_2ë´øª¸X=}u„O¯ƒgçJ\n'Of“ƒØ³O“„› î÷RäÎÑ5^Ì®ùó`±Í¯ùsjЬˆ˜-&ï›Ù¼â¢šÿ¶S\U³Â/Hj–íÔŒ®Æ…i~a]Öªý0{1QÙ0™Åh0À/Åìß0Þˆvö—ø£Åo0A4^ iñxËOWëåV´Sßì~]ŠÛVyøÕùf~‘_ÜlnwíÔ6â°e¨ô`l5—y±w´TÍM;¥h.æ»eÞ»*j»åzñg–\Üñ›ÝF”wâþö ê››åí<;ºÚ¬»åÁ‰a¦ÆWd.ó.ß7N fâš"Bn\~*±½Þ¬§Oî®V»éÕZœŠ>„qɺ~`øÿ~sö¬Â¶ÑcægØî°Ý7aƒ¥¿%ÍÇ޹†j:ù:+0Ü>›Ã‡¸®'u ó'yÎ/;>l‘WÛÌÚ@Eøñ(£ÍÛ×3d]9¸M9ëæo«ÃÎïg]£YÍ:ŽvÖÎ4‹¼Ô˜E5rÕ÷šK¥Xç|mhf‹ÛVæ õÌv{µ&8烥0P÷ÍbÅu¹Y|YízŽÑÌ/W›Ë«…à]ØQò¬.­†yš§ˆX5bAƒšÕôuFSÌW¨õ õ ­ãÒ [xر"<w L¸9¦, E]Aß­Ëÿ±^5½mAôž_Á#Y w¹dnilEÜØHzQU6êP†¥üïûÞÌ’"-Š1šœ$’»3³³3ï½¹ß!ÎÝC¼Ò—†zõÈQY{\}_ᔃDÀåâvùþ+€µ!Xìøòy¨ gjÇJª‚‰cæ–T‹Ÿ™zR!j?è‚Ñ£ÕBó>WÂ$lõÒÑv}T 9\¢ dÈÔ=á4z²«-€-ŠMi,iÍ"²Uæèé¹^¾5|x•¼Yõ†ÀFlV ôŽUëàq\.ô ãÇ_—§*5‰&ârv÷ ÒÅðÈký¸Í>ÜAÖàÓJs«-ÜmÁœ@5@ äÙ În#ïDéè2ùû)‘/îôÏ=:=æbøF7µÙýY ãØcŸ>7Ô‚ÞaéF lݲT#ùØã„·úvËšÈ>=}ßñ ´œvQ«¤ L_BÜ!…þqyõÝTõ€¾bí! ˜¦žß`I6}`šÂÞ4 „oÏ¡æ‰pVÅ€i¥gÓ^Y;„3ôsgÙl·Œ—#ðÓ®w`_™o/·‹h3E0U•€˜óN9¢(ñÖ!’ö%į´Õ; tÏYdä„;^G“Z… â ÉWiÿ.Å#fDå&센’FGÏŠÁãÞ+ÝœÀW“‹Äa5¼Í¾%‹Ä;}¹èÂRìÛ]«Ý^wÁý1åPÁ>'Ø{ì‹À¾©‚Wáá ˆCÝË··Æ‚/Rðuµgƒ%-™£e×HÙùÿYvzÛ?U:9°½ýžäëw%öLîN¿8pEy V³£¡{¸ mLY'¡õñ5"… ÄS2÷¿S¹X¤õd¹iÔ¹¯†ÚC%×DŸúBú´ÞcxrŸå9•]/ ÖjûEÙNxNZ²å¤Ñä‰òŒ“¹6àC"ñM{û Ý^4Æ5âØûìÆ °¢Ö ½ù<dÁ IæÚÍêüE|Eh›´‡nkz¥üÉù¦ N³4Èy7âèE½{ùš)£Ü¬+ïdpÔëùðîäT˜jøbZ£"Cæªïis ¨Â¡êGMÆ2ä…ÃFEuBúFæC¤¯ë¥oì¤o;éëŽ3ƶ..{z^{yæ;ÑrØ ÆÎýàÖeúÝf'•¶s%ô˜–3$ù*Kµ»/[=A'Òô‰%šþR–)tâ 5í¥¦‘{ÏrK{î¨Êú"›Ñbògh±ò ZÌí Â'f€*¼¨­Rº&$AVãŠ7õßîŠÐ ¨³"2 ‘Lˆ×Em†ʳ ¶DÜ[,XêJ´‚Ç©-xâû‹ø]D ªB *ð”ñô € Y¦à§d™4†SåýêÙ?Ï* ³^>¼ø‘ôßTúÑ{/Cå~+{e°;ÙŽ% e'-ˆe±y´ Ô5›xnˆ'ÎÛð3f ÷ã¼=æÌ PÚ‹è4KÆ6]Žnã7ú$™ª¤•”(Ù6ØÍDõ’q_y~f{º0éÞCÃKžºbg`Skž+ÌxE]òÒf¼8ý™[ýnç½PÚ»Ùš®)/¿^Íuº¨åotû”Fß“§·ÃFg—Òæ&µy-m^§6'„®ÉÁÈÚæµ¶9§0¾“Fçiuél“==´òy©›¤ÑùœZ}"ú»—wÌ꾈©ïe¬ 2ÅMÏcüñn@ Ìg:<P¦2tj;ÉuçÐòPTÅ 2ä<'"ù;WÊKô5½,4ÉcºÎ~gΡÅl¬EX)ÊéaM%3ÄrÚS•5ÃîI^ô‰ë.ßSN!W¿ñ×çÜ®ohÄyË£1rõËÈNõúÍ[, ¥¥0:]—O¡[#—‹80ù'ÚžãéDeïêˆgD]$mA$ÚÂkxÝæ„›ª !8À ¡ÅÁ&ñÁæ)l²ÁCè—o¶![nñc¢Õ‹wW™l»lûý.(êÈ~p¼î-³u¿ÂÖƒrˆQe3FïñgÖA÷ÞŒ ñ¸}ƒÚ·3ö™ÀijøO€Àбp endstream endobj 996 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5L/zkB58ufPHn9NF0km407S5PqOnxR7+vdOwWWRR3LPRF9hXviofTX5S/l9beRvJlppCgNfy f6Rqk4oedy4HIV/lQURfYYoec/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/z lh/5NCL/ALZlv/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6 MUPzy8l+VL3zX5ig0GxYLe3UVy9uG6NJb20k6p2pzMXGvauLJnn5CfmbN5E83vperM0OialILfUI 5AR9XnU8UmIPTifhf2+QxQX2iCCAQag7gjFDCfzs/wDJUeZ/+YJ/+JDFXg//ADiB/wApnrf/AGzh /wAn0xSX015n8uab5k0C+0PUoxJZ38RikHdT1V1/ykYBl9xih8XeXtS1z8n/AM1il4rE6dMbbUY1 2FxZyUPJQf5kKyJ70xS+nvzi/NKy8rfl4dX0y5SW+1mMRaE6moYzJy9cf5McZ5V8eI74oeEf840f lu3mbzU/mfU0MmlaLIHTn8Qmvj8aA16+n/eN78fHFJfX2KHYqwb81/yysfO2ikIFh1u0UnT7s7V7 mKQ0rwb8Dv41hKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHIPouPJGcRKJsF ln5XfmTqHkjXBMC02kXRC6jZg/aXtIng6dvHph5buu7U7Njqsdcpjkfx0fYGlapp+q6db6jp8y3F ldIJIJk6Mp/UexHbLAbfOsuKWORjIVIIrC1uxV2KuxV2KofUtOstT0+506+hW4sruNobiF91eNxx YH6Dir4X836L5j/Kv8wL2xsbqS3miSQWF6uxls7pGRW8K8SVPg426Ypelf8AOK35afXtTk87alFW 0sGaHSVbo9yRR5adxGpoP8o+K4qX1Nih4P8A85ff8oRo3/bTH/UPJikJp/zil/5K1/8Ato3H/EI8 UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFIfTv5Zf8AktvKf/bG0/8A6hY8UMlxV2Kvhf8AP7/yb/mT/jNF /wBQ8eKQ+6MUPiH/AJxw/wDJz+Xv+jz/AKgZ8WRZ5/zlH+Vf1K8/xzpMP+iXbBNajQbRznZJ6DtJ 0b/K/wBbFAZp/wA4z/mr/iHQv8K6rNy1rR4x9Vkc/FPZrRV+bRbKfah8cVLOPzs/8lR5n/5gn/4k MUPB/wDnED/lM9b/AO2cP+T6YpL6uxQ8J/5yj/LX9MaAnm/Toq6jo6cb8KN5LOtS3/PEkt/qk+GK Q+a7OXzT5uutB8sRSvePbn6lpFsx+GMTSF23/lBapJ6KPAYpfdnkbyfp3lDytYaBYCsdpHSWalDL M28kre7Nv7dMWKfYq7FUk83+bNN8saPJqN6eTfZtrcGjSyU2UfxPYZRqM4xxsuf2d2fk1WUQh8T3 B8w67r2o63q1xql9JyubluTcdlUAUVVHgqgAZz08spGyX1TS6LFgxjHEbBE+VPLOreZtYj02wqCf innNSkUYO7t/AdzksUJZJcIae0NVh0uI5JgeQ7z3Pp7y7oGn6BpMGmWCkQQjd23d3O7Ox7knOixY hCNB8r1eqnnyHJLmfsTLLHGdirsVdirsVQ2p6lZaXp1zqN9KILOziee4mboscYLMfuGKvhjzfrfm X81PP95e2FrLczSrIbCxTcxWdsjOF8K8QWPix26gYpek/wDOK/5mfUNTk8k6lLSz1Bmm0l2OyXNK vFU9pVFR/lDxbFS+p8UPB/8AnL7/AJQjRv8Atpj/AKh5MUhNP+cUv/JWv/20bj/iEeKC8h/5yw/8 mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/AJN/zJ/xmi/6h48Uh90YofEP /OOH/k5/L3/R5/1Az4si+1NV0uw1bTbnTNQhW4sryNobiF9wyOKEYsXxD5r0LzF+UP5mI1lKwksZ Rd6TdsPhntmJADAUrVeUcg+eKX0n5z85aX5x/IDWtf040iubBhNCTVoZlKiSJ/dW+8UPQ4oeTf8A OIH/ACmet/8AbOH/ACfTFJfV2KHhH/OUf5mfofQl8n6dLTUdYTlqDKd47OtOB95iCP8AVB8RikPm yzi80+UbrQvM8cMlk85+u6RcsPhlWGQo21fskihB6qfA4pfdfkPzjp3nHyrY6/YGkd0n76GtWimX aSNv9VvvFD3xYp/irsVfJn5m+eNZv/Nt5FrtrLaXFk5hisSQVhStRxNaNyHxcv2vlTNRm0uTJKyQ +o9jY8GHAPC34tzLvP46dGJ/4htf99v+H9cq/k+XeHbeOH1b+VGleW7PyhaXWhzLdpfKJbi9pRpJ BsysDuvA1Xj2+ebPS4Bjjtz6vmHbmrzZtQfEHDw7CPcP297MsyXTsZ8wfmL5U0DXtO0PUrsRX2pH 4BtwiB2Rpmr8AdvhX+mRMgHO0/Z2bLjlkiPTH7fcybJOC7FXYq7FXzd/zlX+ZnCOPyJpsvxPwuNb dT0XZoYD89pG/wBj74pDJP8AnGH8tf0B5abzRqEXHVtcQfV1YfFFZA1QfOY/Gfbj74qXkf8AzkJ+ X9x5J89R67pAa30zVZDeWUkfw/V7tGDyRqR9mjUdPY0H2cVD6T/KH8xLfz35NttUJVdTg/0fVYBQ cbhAKsB2WQfGvzp2xQ89/wCcvv8AlCNG/wC2mP8AqHkxSE0/5xS/8la//bRuP+IR4oLyH/nLD/ya EX/bMt/+TkuKQ+nfyy/8lt5T/wC2Np//AFCx4oZLirsVfC/5/f8Ak3/Mn/GaL/qHjxSH3Rih8Q/8 44f+Tn8vf9Hn/UDPiyL7exYvOfzx/K+Lz35SdLZFGvaaGn0uU9WNPjgJ8JQPoahxV8leWPPWqeXN D8yeWZ0dtP1u2e3ntm2aG6T7EgVqUO3Bx4f6oxS9N/5xA/5TPW/+2cP+T6YqX0z5q8y6Z5Z8vX2u 6m/CzsYjI4H2nboka/5TsQo9zih8Y+VtI1z84PzVaS+Yhb2Y3eqSrUrBaRkDgp7fDxjT3IxS+n/z e/K2w81/l8dG063SG90iMSaEiDiEaFOIgFP2XQcfnQ9sUPAv+cbfzIfyr5sfy3qrmHSdZkEZEnwi C9HwozcqcedPTb34+GKS+v5JI4o2kkYJGgLO7EBQoFSST0AxQk2medvKGqXosdO1i0urtgzRwxSo zSKv2mjof3gFdytcVYn+cX5U2/nLS/rtiqxeYrJD9Wk6CdBU+g59/wBlj0PsTkJR6h3XY/ap00+G X93Ln5eb5Mubae2uJba4jaKeFjHLE4oyspoykeIOQfQYyEhY5Fn35Q/mndeStW9C6LS6BeuPrsA3 MbdPXjHio6j9oe9MINOp7X7LGphY/vI8v1PoX8wvzT0Pyr5Yi1SCWO9utRjro8CNVZqgH1CR/ute QJP0d8kZdzx3Z/ZeTUZTAjhEfq8vL3vkTWNX1HWNTudT1KZri9unMk0rdyewHYDoAOgyD6Jhwxxw EIioh9BfkN+b31+KHynr8/8Ap0ShNLvJD/fIOkLsT/eKPs/zDbr1lE1s8h272RwE5sY9P8Q7vP3P cMseWdirGvzF872Hkryjfa9d0ZoV4WcB/wB3XD1EUe3id28FBOKvkf8AKfydqX5n/mS91q7NcWaS nUdduG6MC1RF/wA9W+EDstadMUvtyONI0WONQiIAqIooABsAAMUMW/M7yJZ+d/J17oc/Fbhl9XT5 2/3Vcxg+m/yNeLf5JOKvk78m/Pd9+W/5gva6ur2+n3EhsNctn29JlYqspHjC/X/JrikvYv8AnLxl fyNojoQytqQKsNwQbeShBxUJr/zil/5K1/8Ato3H/EI8UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFITPy3 /wA5W6honl3S9FTy5FOumWcFms5umUuLeJYwxX0jTlxrSuK0mX/Q42pf9SvD/wBJbf8AVLFaZt+U X/OQV55+81voU2ix6ei2slz66TtKaxsi8eJROvPxxRT5+/P7/wAm/wCZP+M0X/UPHikPujFD4h/5 xw/8nP5e/wCjz/qBnxZF9vYsXYq+Wf8AnKL8q/0ff/440mGlleuE1mNekdw2yTU/ll6N/lf62KQh /wDnED/lM9b/AO2cP+T6YqVv/OUn5mfpfXE8nabLXTtIfnqLKdpLylOB8RCDT/WJ8MVD13/nHn8t f8H+TEvL6LjrutBbm8qPiiipWGD24qeTf5RI7DFD1PFXyN/zk/8AludB8zJ5r06PjpmtufrQXpFe gcm/5HAFx7hvbFIZ15T/ADMg86fldYRa1KXfSNRsLfzYCa+pYep8M8oH+6nYKJq7UD12xQUvlt9b ttP5X7zwT3VtcP5UXndTG51T9IBbSgkZkglgCpwESDnE7b8VbCr6PwK8383f8qM/T1z/AIl/R36a +H616vL1Psjjz4bV40yo8N/2u60n5/wx4XHwdEn/AOsaP+1X/wAlMHp8/tcn/XT+mrXH/QuvpW/1 j9H+l6Z+qep63H0+bV9Ou3Hny6d64+j8Wwj/AClZrivry+1R/wCsaP8AtV/8lMfT5/az/wBdP6ap a/8AQuP1mH6r+jvrXNfQ9L1vU9Svw8OO/KvSmPp8/tYy/lKjfHXweuZc887FWH/mR/yrP6lZ/wCP fqv1P1G+pfXOXD1ePxU47cuPjirX5b/8qw+p3v8AgL6l9X9RPr31L+fieHOvxdK0+nFWY4q7FXlX m/8A6F2/xHe/4n/RP6d5L9e9avqcuApz47V40xVO/Nf/ACqT/CWkf4m+p/4a/d/of61z9KnpH0vT r8X910r2xVNfy/8A8CfoE/4J+rfob13r9Ur6frUXn170pirHPzB/5Ub+nl/xv+jv0z6CcfrnL1PQ q3Dp2ryxVjX/AFij/wBqX/h8Vd/1ij/2pf8Ah8VZL+X3/Kjf083+CP0d+mfQfl9T5ep6FV59e1eO KoLzd/0Lv/iO9/xP+i/09yX699Y5ery4Lx5U/wAimKvVcVeW+Sv+hfP8TWf+Ev0Z/iD959S+rcvV /un9TjX/AIq5V9sVepYq7FUs8zf4f/QF/wD4i9H9Cek31/6zT0vS78q/51xViX5c/wDKmP0ndf4D +ofpD0P9K+pcuXo8x9qvblTFWPr/ANCy/pkf8cj9K/Wf2+fP6x6n7XL9rn1rhV7BgV2KpB55/wAG f4cn/wAY/Vv0Fzj9b65/d8+Y9P3ry8MVYx5B/wCVIfpK6/wX+j/rv1Zvrv1XnT6tyHL1eXw8K064 qmXlj/lUP6ZH+G/0P+luL+j9T9D1OG3P0OP7HTl6e3jir//Z uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 997 0 obj<> endobj 998 0 obj<> endobj 999 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1000 0 obj<> endobj 1001 0 obj<> endobj 1002 0 obj<> endobj 1003 0 obj<> endobj 1004 0 obj<> endobj 1005 0 obj<> endobj 1006 0 obj<> endobj 1007 0 obj<> endobj 1008 0 obj<> endobj 1009 0 obj<> endobj 1010 0 obj<> endobj 1011 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1012 0 obj<>stream H‰¬WÛnG}çWôãL°õý’7G²Œd}I,z…cZŠ–èRŽ’¿ßS]ÕíœM‚ذ9]Óu;uªºÇ¨óÅÁ³£Îw ‡œU iQéÁX­~­+¥¨ífñqaS{ím˜¿=8ÜEµÞA˜tÉJãA§ìQ»õõ"xåÝyÐ^z¨JðL¯âP¢6õ̓¶üò›ÕâàØ*£V… ª¢BÝõÕÕBCy /­ÖX®î]Îýê'è9Ö£Â_ŽÄú!"tµ:beHù]wßG=„nøõâòâº_<ÿ:¬o®ú÷«ïOWÈ¢¬TŠ [³GŽ>ÃÄ—ãõÉ:ÏcÖ5ZŠ›"~×Ûû!uǯêz¶¹Æƒë6ýÒwÛÓ»›­ú%¦F1æE¡'çÔÒ ÖŽ¹xò‰m¿é—iðݳÞv&õK„ÞõävÛ/M„üâR™Ââ(«ùÉè–ñÿ©©P°ä妇ˆ ûÚ†ñêŠO^U¤² E¯*Xô@J°ëâ¬ÀÆ´¼¢`vø‰ äºÓ[þ½ÛðïVù¯)©DLމ NÈôšÍúÀÆŽ6»>@E?ïã`»ëï@Zœ«û %twŸÔ]OŽ>Õ×ux³Ý4¸~Ÿ/Ô"€)Æ!¨ÔÒ<ÊúíWêšù®Íà-Ò´Cñ*Dâ”Êݬ?_m®ïÔÁ‹C ùÍÑáâ‡IŠÃê;í õŸñÆäZ ´±¥6n © ]ÁÒ’¬ºZP ROÑ | µ²ŸIÚŽZ—H±dMD¹|0äÛ”(ø²››ËÔÍDò˜›/g6z aˆ:üY/¢õÇ“yÄ *eÍÌÍ^ò˜›ßIÆX4lQ¿›nV‡2äþDšQ kbt¨j\²¡N{®Òoð…mZ‡ðƒXpdLŽÙÕ3Àf +˜ŒÔü¸‡$qˆ©Ì$Ô×\+o­ìɨÑ$aØqyÁè« \%°˜íl|J3‰0õ…=‰ÚqŒGŽ„Ãõ¥ìO_bò|‡‰ñF–-ê^­^¨wïµ:ƒEÌbçf¸ˆdŒã²Œ¸Íl—H&Ñ¢"áQIðƒ.=çò£’}FÁaÌ&?õÖ$Ó˜<ÂYL®€V„)ò4¡Zɾ~Xj÷˜d7´B%ì(/ce›ã¸›d²'.…Ç$“Ü~æyéI§ªJÇÄÒ˜J­˜¬§FÌiš]0ƒ‰aÊWŸqö§i.>aÏ,;\m¼ÏSaˆ2‹39Îr}|E<~>^QCœ‘´ò¼7ÕÈΫæ€ œÎnGI]'Y†º ÆÉ:«uU€i–DÞPdC,u›=ô+DŠ•$t‚Ó:³‹yBë¤e ƲF²ž%‰m&Ç>\ÓhkÜŸDC$8§<Ú‘]pVW- ŠcÂ4ã˜"ã{ˆNÖ~ÌÂX–HÚò^²ž†Ô-;²À*êY`vi\³‚˜Hr9“Pi.Ÿ“ò¤±~Q2OR¿$}Ÿ‰lÙ…ý;ÞQ¼@WÂlíâ¨!ëe‡™Q${+s¥´j$FCK9bæ ´ ê×øÒHÅSL×F’O¾<¸Êgºüû@Iš¦WxLÀx1¨¸Œ›\7QœW,©ÝäðK ‚2u¢­ëdØM™uÕ C•$6‡ºƒaÆÚ0µ5um`Q îØ«1Œ£ìCæ >‰ÆµpÊùÙŽ(Ù6 IPÜûÈ9Ï¢(‚Q‰eNš•Ä{ dÌ¢`e¦„œÕ>F_O˜}¨iù$ŒË‘óf07Ý)¬L)œ-Ž5k¬£Tƒ×¬ÁõÚïàzî-pÅ÷>ÂØzEãL‹²±jŸG»›3m¼lH4æî±ÂׇL6Fkö`ï—­M"åjú­šóÞ`gÛ¬ŒÒ-NfLâ4|+G‘ ³Ñ’Ê|}ć“À ж֩# ˜o³Q†Új&¾õ¼ƒnÌÓâкRe¶#é<³}zà£ä<‰$3“ ÁA'Ik'9&¹Ú4 °n…rQ‚Àæ ÛÇ¿ÉTݯ÷}ÂTÆÈË¥HÒš^†Tl z7«1DôvH“ ÐûÁµ^—‘ä‹Ú#€ñҚƳÛ2ص\å°a”éŠá'uàµ4‰7³\Éf¡Õz¡EÑØÒ¢llÚ§ÑøÖ: ®#J €À–d–[&0·õ´Eš„KÕ,´RÎ;b›ÖÓ‡‹ÏNŒ:ß-¾Y-޽2jõqAß0ø Ъ>Ô9f¸W«+þžXïêkþ[â+¾pVk|H¬îïºÕi¿Ìy(ÝúeÁ‡Fw‰_`Ómú¥Ã}:w^6,ë ×YY»þýê;˜9_`Z8°ðå¦5.6䀞2{Qg›×›ºû´Q}ì¶=>µùÀ§mwz¦no¶wýW€Ž^„ïÁ"×’4wçxÜѫϴ¶ÝmTlwvz·Q—²çns½þM}Þ¨»Ú*âGýÝÜn¶M­Çu½»¸¹jB€&ù- :À€nHóïÒW¿¦z$38ÉRXýT‘Ö•¤#Ð8hP¼FñçûíÅ]} |ÕÇËÓó]óú|{†‡D§oºš=ÈØUëûÏôÞuõ5P=U@2 ‘’ÒH HâEóî÷Äy­lþoG0üeñ1‚׋¦°¦öK¤ +w2s'ÖŒ—Œ'èÓ©JU •þ¯ŒJDV,vê33ºrÕ0WI÷R¶1_IBœ­î€0¿S\9F–íÑ=ÎÜù Tf—`¦µçæ¤Xõ¸Ï¡¬§½¶†ki©”'¯@wÎ:Z|-N,;Á<µ¶3{¼ØøëÍ)˜Rº3Ê€|ß;"È /·=uM@“ÕVŸI%> ßnƹt>s>.¨E*µÙÐ3 ¼ažà‡©’‹,6?dJÿo=–dá&˘גÍìà)39S’ƒQ×XÁUÄrõõžô ÷ ài¿;µ_?v»´ÌU7’¼@cxÚÉcÓLÀ M‡AGdž|Ï€+Mea@CË ¯/%¿’×á¯K®/åÅߣ×q ߌX#ÚDDùÑÈoAµ‰«Ì1Kæ¶¹ ì±}{Ÿ¡$`P‡>Sp½v’¨,«äÑ–E ®Ž€x%_…+MŽ¡aH]¡©LÆ6ÅÕÖôyÓ,k*íákÇ0€­GÓ•Þc=ý’ÌdÙÝdY‡«õb9MtvćÙü~ǴܼÞh 'ÓÕz*氜܊CäQÕô.ª~IÎ=SÊ…êÐà„ 4&<­gStÇ \ªæbz=ÖÓùÃznžÂ䥰F}Œƒ¾(F¦Mø¼ €ÐUV¡´N'«é#•ȯÕ#ËзfrÔ‹Äȸ¼V»]1+VÌa™ËXk&Ô Ã,ÿF˜9Ü·ƒ,èì]†íæ„Tí ¶+sÖy#ýmXmÿÙÁÉã»õ¦ݶÞ<èäô·lË·)›!ö`nëÒµw8§8r¶n4mC1ò™eˆ¯×ãÂJE;b…#8ÝNê™’Ts;ùóc‘4Z¬’‰äŸ#Ø2D%¤*@Føê)YÞÝO¦›ù,ùü¤ &Èú«…ëüH -'_è)Cq™!ó1°nËú^ýð²íè$¦ :€ÏìžÞxñçz© ü…Bæõ€7ÇèQŽæžY{X=¦l ®-M4«pÂÉAÅÒ¤1Ûjÿ»dG :6p¦0[¸2‹4r4ßœîcg/Î>ºà`g¨ÛA|2Cdøq`ðßCÒ½ÉÃv(MLšép«(]*JÛ€ÒÄ @š±¸Ð¤½Nf•`4e)FW$Òu£«ˆÑ>²Ç5C\ÿø@‚.F"x©›öBté[‘zÈåÊ>(`Zƒ°¥–óEÍî ¨Ç%WúV0 Ç÷[ß7ügG󰋃Ó[øÒîÐòn àkЬìÕÐe1ìòq¨'Ÿb+}øÒ‹ÃË>ï?@©p¶$g¨AžÇán½3"¬f}h‡­ÌÚ>E ¶a`•uÓP#øHº~½vOn¸£Í½8ªNDar‘V¶‹Èî´Z79o1Ô–]‘$_1Ö˜Ë÷tIþÔÚœ‰f4û7A¶¸h²`ä•BŒš*[´¸Ô2ñgU#鵌ˆwÉcHÌЗ“¨–"ÇæVåFä@FÛ -çÿF›o!G7 °}íÑGћ׌Í-‰Ðì ¿JÂÏÿ×ðË_B Ö‘@ºðÛÇ Qy—bÛ€òþ'åŽ{…Xë æ×Ý£M¥G‹½´ÝG(†¹Mײ«èyQ,ï;ŸÌ@%c†l=S(‘ÌDT³2a’y1\½®W:Ka\¬Œ«zm¤;³Ô3 /:<ÍÇŒé n’ ë$AÙ,C³döðØRʾþ`Èg¹S3õŒ9[õáÍ -FZ(3ÀÇsŒ)Ô??¼=“>š¹F˜êØ’ÑÐˇ k•Fˆéiõ-… |)hÁ×âKñ¥,"¾¸â~N ›rbž©°¦Ô «ó¶ë¤JfpГ¶†3ïÛ`á&&÷ëä“MÆQ-*È9AÁ+*úÏ€¦®´¤&S<ó‘ª;Ý“9)â±×ëLÏ¡×M‘<…%Ý\Ý.›º±JKÕ÷ävPö1ð&_×Zz$ÕņÍÑtÒÌ“°(IJt¬I—\É^Ë–¡Ù1“Ñýåj)wF¾¼]—y6Іv¹®“õM"ã.å|²cš0ØNß©ï%“á ÒÊs]ùÈ»<;© ØÈýie5fO7Bƒü>dzñjEW4fcMh~ºŸ×ú· }1³p]áž÷Å^DäàXCSŠs±q³™l•8ltÀú‡öלýÆ ý~oëòãÉ9aZø+Z¿ž%ì•\‰µÛ$7«É¢9Èç#¿ïöLmt…&ŽXëTÛù6:btDftº ô½_’P¿»Ò­ çIýÇ29Aj Æ9uÝK]?¢C -ì¹çÙÚ³+ÔxL¡(üÁår¶Jæ¯n^e¾àK~üÆoä6“¥¬²Â{…ëï¦S[Ax^¥üœUËU(¥®xsÚäÉ´ÁKà¡ø8-J—™¤™ÖíþB~Â~\H÷¦É¢]A=òÞ ¢Ç–²nX‡¸í®p‡døªd8 ÃÕ¾›ö mžÂIÁîºdO%Uö„¹Ýæ!OxSª¤y½Ü®‚ø¸}È3ˆ˜( ŠöUp¹Uí_í_a½º{÷qz¸=xJ°å&/ø£Žp)›Ið…Ø˜Ÿm·Óh½‹ÎPê gôdD%Òà/=kà"5ãŠ5mL¾_†&oel΂½÷|6ÁØÃŸMUl_aÐŽ{Vü+À ¹ýâ endstream endobj 1013 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1014 0 obj<> endobj 1015 0 obj<> endobj 1016 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1017 0 obj<> endobj 1018 0 obj<> endobj 1019 0 obj<> endobj 1020 0 obj<> endobj 1021 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1022 0 obj<>stream H‰¬WYsI~ׯ¨ÇîU»îƒ}̘€`f-vˆy’lÄêðX2†¿_Ufu·Àf™ˆ GX•YYy|yTµד³ç—J\&Úw1ŠàBç¼ÒRüj“R·«ÉÕD‡ºm]8Ý=;?x±8€dŠBb!C´F‰Ãb7qVë:l8i…Ê‹r |k¾eã¼å»ä¥*{:vRÓæÓÙäìB %fW“” ‰$\‘ÀñÙv"qx ëÒx1[Lò >Ïî'ïš‹íÔu¾¹xC¿âùj—W©Yµ8’šÛvð3'ê¸gZ´¾ Í'Ÿ)ßtªýcöNr¢®¶>böŒ¯7ëbß5Ÿ»Å~[Ôþ<Ò`E”/ -дz¾‡B:À‰ƒõ&¦vöqðzêl“1bª:­WS¦s‘~û\HÁ‰vš‘øéÀ¨Œà:3|³,’Z¸ÛüSh"¥’ŒUu)%óÂiÙ§ƒ3]N×¶¤Ë„\¿Ì­ë,eÈ5»E«~¿T°þDµ¬E©09”R@H©ó¥–~ÿ‡ØÕrÊF$Œ"¡¸˜ÎžíwÛÕî(Î^+)ÅÓgç“ßFÕ „Li€›K^Y¥bI2:GçÎaó¨OÄáU'SÛ ¬¸¼éBTb3q© yÄõ¶?²7²ó)Êœm$Í:•íªäk=bÂÅÎ*;210¾5ñgEJÚ¡€‚©Ê \@ë{1Wœë‚ùK.ЉòHõc=ã¿}7o;ëRŸ‡-it£Äxé~<1U#»4hì}¬Ç (´+“V¡b󯳩èC÷[øx„¾ »¤\™¾Vf‡Ú& 0€¦WjÄÀ•(1Ž$R¶4Š:¼×co½“²—ðC+;–ðy¸:ÂÈ $òHüàéx~)‹øòü5Zý%FÂGÜÈý½PR¼ïþb9 ùwc,˜Ñûp9‰¸s’ÉTF/u'ãC ”›VÙÏè;› ‡8bD1ù±fŒ‘CœÀÄÝ  ÷>ëVÊÓˆ8HD¡iðú„´©?ÀÃòvT"0À¡j´7ÉKIh(È%M.(Æ:VZ>Qç‹ÓžƒOQ}ÅñŠì@þ+€¾æŒO©¨ä`kèõm„‰-1]½>eP£ 51:96ÄÙËOîL[U"T|‹Kõ§ÍF uœnЄˆåÁ¡ÕŸ7ª§¹ž¼?‘ˆiQP! ä;oäÖjp“ªÎÒ&ÙQ| ×ú8þ„V =BtÂ9Ò yà"%CzwBkê æ®LWÛ<Ø‘ 4mªeay–eÄà%RÇ•k¸Ð’ì ‰K+±ß—¿J®S§³ Oy"”AÇ0ÊÑt‚25H˜p¢€=² X@RÚ¨NªµŽ†ÂÐÏŠ**±bÀ¥:€†T#ñ™Â殉8”ªª¡¦ò¤è'Ê{ÅíáyzF©Y‡¥Éɨ©« ©`ðÎ)@XBVsÃD: }?5m4!gIwššLs‹$u"‘ìHAžSéÄD.–Á…T:eðÅgãI ¹`õ(ÊÄï—ŠB¾°càkÁÑ~ˆiR}k§“A•in`N$(ƒÊôØ•Bu¢–Jõ±ÓE-·g-ÇŠ×ëžB ]äñm}€È¡E*ǰ½Îž_*q}˜®?­Z|¥6‡Œ¡jÄbNG-^úÍ|‰Mݬ–0¢èž„‚ÌÇ>¸·Šýåêæøá_¢úæøa u>«—Ù‘Å|'Þ¯ð³)lÝÜÑr~ÌŽ¤f™%CSN¿ÿR¶ÊzIŠ>­y±»æ„h…E3Áýìî"†ß4Å­ Âó·/DqO¼ÿRP©(ÀD”6»¢¹|É.TÈâ°Ø!#0eÐÙH9"Ù ˜ÍÛ)¾Só¾â»N5ü¢ÃQ§Scpï6–¦eÃ4ši_ æÖÀfJóTxuŸ]F.^­w«CMêýíúX7ûÛ£¸Ú̯s]#în–X ‰°ŽÚΦÙ-¾Ú¿Ëû9vl÷b.ŠÆ"$ö7«ÛR¶])ñ0Sv{ªò8ŠöïÆ'<ŠêñQàsÛ*_fEhÊŒ†H®vl_Qô›Öd 2×XòÖ]¦us“+R7K '6,s\üîVˆA”ÙÚ+ò±V!š ç!©ÿv$ããH¦IõW*M×Js„‚84*® ©¿›+ªH:¶‚®KF~(Éo@ÅÕ&AziNNµÚ€Xìr7ñP˜µJåÊž·`ª\S- ›§Î4ÏÕhŸ‰'l€g7¦Õ €Ö “P“ößo×¥oŽÐ¾j³&ñk[ò³/ó—â2Øç)w¡”}(ÓþàÈuáÄÛ›²@¶ùrÌi¿Œˆ]Ù^С/âÙ]¡K…>àG¶ö¦0oŠ+¸B¶y$IòoW"Æ“*ò%……¶¨L/¼úïU²ÛDDïù gbfzïcB1 J)Rd…Í \ò÷¼WÕ³8cƒ'/][W½~UÕ–†ÞWV›yÔ«_¬?Þ®¾°­ø`xÇeGó·b®îk>«ÙUõdyrU—Ü–&wÈ“Ê=&ÛAiôŽ_-—(VÌ ©»)À¦†ËCÉÏ ¤_žó¡ãÎÏøé«k¨ë?4‚‹Í§#—F³Šx~}ôäB`6Ê=cSé³×‹ócÞÕ!½‚Í7´M§Í&D§Ýßá±&éþÿ†×¸^í€WWðŠ¡Õoµ k°ÊO¢5 ZÑ]ŽA…øExÊ!ñIhz>RéõKµ…‚KcGÕÛLbRþ>tzöý½ü¾«9ˆÉµŠ—d+]ÄÅÃd×høR‹ˆ2T//ß– *nwe@åÙ³ëÅ U±!ãF„‘Œ¡ ìõîÀ-„ÈmÌ£Õs|‘+<¥g˜¸fŒå¶ø{uút!ÉFÏL›\€Ï?Óz.5ÿÌ´‘«·c"%ôé¡ “-T• •’âzz;®£RiT*5ÀjT"J£bKоܸy U"J£D*}¼=…Z¡Ð¬š«b ˜; ø´KNêú;wí÷¢vÕºæ›éëÎêËš­–+’b—ýý^`‹ƒ’Ž­¶à·IÆNHËN 5$<ÔT]U§‡m1ó×´j„?N§´Ú±*6Ù,™ùbF:3˜V!UY„ °¢lÂŽ*²ò…ÀµÎ‡,ö[˜-°\ÍQ¥ÀÈÞÔÑ 1wÚ[9É|ÂbÇla=ù´ú¼¾­Y˳ʳÕ]-¬1„D÷çì‰ÌΗûÙúë÷ÕÍOìFX%D LÎÒ2<ºJ'¯ÃŸú™o†s˜™pw¼Ð¤w×d›¾JÕéã#&âÐ@ÁbãÛ¿ Ñ݃\ãzxx&d¬P“\o -„yp“к¨—mÀ\fÞ6üh¨š[z¹{ðá€4’ô‹#NcÆQ¶zê}˜Ãà «§ƒz1 ˜ÅÍlvü †Jôõ<6Â)2&guºîô;ÇWô±?ª.§â.|” ¦‘‰dƒqn¶ÇÐI¸ÄßÙÐ4ì’H<pbK› ÅûDfUML•±9g ÀlŸËÖ ºs³éÀ%ttµã{±=3Iõº,øi")àÑÃ6û€-Ý)~s¿9/)è19βñ¹+Ñ&#KÌSJÛ-•Fº,ïŠÖ· ƒ'Ô[ÙŠÖ¢dú6$ÚÖ)Цºûå (Ú-£¾—Ýš…Ab@â/Všë endstream endobj 1023 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1024 0 obj<> endobj 1025 0 obj<> endobj 1026 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1027 0 obj<> endobj 1028 0 obj<> endobj 1029 0 obj<> endobj 1030 0 obj<> endobj 1031 0 obj<> endobj 1032 0 obj<> endobj 1033 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1034 0 obj<>stream H‰´WYsÇ~ǯ˜ÇÝT°œûPž,ÊdÉU’ãŽT~€€%  ‚¢ýïóõôÌbW&“¨Ê±ÊÄvÏôõõ13JÜÎ.®?(qû0Ó¾‹Q:ç…ì”–ÒàW›”’8ö³›™uÙ:Ú0]½¸|ðbõf) ‰¢5J<¬ö3g…5øNZ¡è# Á2-ù.y©òšŽÔ¼øz1»¸ÒB‰ÅÍ,‘B‘„Ë; ¾ØÍ$„ç°"áØbrñ4k’l¿@ΰÜàþ±'Úv®‹ÅVŽ„?6OOO­—kºß6Û;;|ÿÖ­»öçÅw³oˆ¬(Tð[£EŒ6BÅËþÚ ;§>Ëì-ùMl®Þ¶¶ ÍÕ÷ùG\÷{|˜¦oç¶9.O‡£øì;•½â"׃1b®:­‡X ø²uÿØÎCg›ëV7*´s¸Þ8ñÍý±+þf+Tbö_…–ü¥dø¿äÔtHX°Žb“]rT çܺa yE‚GK©X¢¥ }ô?I°R5._0»¼£™fyÏ¿§ž¾*H•L¸NE8á¤T¯X­u¬ìMÿÐ:B¨ é·­ït³oQã ˆ[ñ´AR\sº§– Ýåå^\Ž}…ëWÔóFÌ "xß9႘k€GQÿô±çz—ª³aê.Yá<Õ”*%ñæ°zÜõû“¸xw© çõ›ËÙ£<$ƒÿ¨ñ¤IÔ€Ê*s6ÐÇšú¸ºÐ…„~E™¦ ÅnF9Pˆ=xÓy´ðêe;á8t´¤¶ðHv>EI•Žê²N‘m•|©€—͸Øé˜ÆfFœç̼Ù`ŹÎK÷µVŠÔÿÌ3f*­&fΜçÌü‡`”Fdžõ]Ñi&yH]Lî+òP•·FJGŽ¥G• Úåq¯P¬ôëlbÚÀ}W4Ò‰RöÑäC@GrË©ˆÐì°‡8¾ó!M8ÔØœ+«uÙ‘£QÀÐcâ‚ÁVB1s 1êÉÛÙ&=nl {õãàO9.?ˆ—¢ÿpù£ç;ŒŒ_0³tOBIñN|üYŠ54b3Á¥p?>€á·šì*œ‘·Èˆ{–ãl'SFÏØN»ø,ç‘3˜³ÁŽ­UÎØ'K³pâ“I(+Âq*—µÎ9XJóçì7¤\.Ø[2ú\m†ý®œÑß™àžãŒbû•¦%I#È*Lœs¥rAÐlÅhu86| ãèœê”wãzµ‡ÇböL¢ÃÝÆÚ8®!ìA¡LüŒ]ô“X[C½Â;¯È!É/¤â´7åHO³ë®å82ÞÚœL‡BºL:e Å* @5saÎQ §a¨§RqÑsÜŒæ¦#ú‹)…³Å°c ÚëQ6˜f Î×yçó¬3~¶á†Öc/jÍT/kUãpCws¤µ.+µrÏXáùQ&£ Úº3Øg²f£rJºª|Íæ´7XÀè:+}éSfLà0lMG*NÆD *òõ/§C¶¶Na8Àl21ÔZrákË;èÆ4s'®þ~ýxý¸ÙžæÙEOCÔܨôlj³Wo¯¾x%.»Ýa/.·‡U‹wlhþ• ]ýtµàæU Œ(‹®ªª\Í }=Íšô€ÿÝaÝ‹·»ûm¿ë÷§å ÐëÅ/@F¿Tg6áMè`ÌPTÍûégáR¤‡EŃӷ:Q@|E©yO6-fbS+eÿ¸ûÔñ!7âþ¸ÙmN›Ï}‹£­y U#VKYµ5µ\cQ7ýZ-†3u:9=2‡$â2í¯ûûÓÝßD;÷ÍénužÔKrdµÜ‹O=~¶™ ¼›GþDéÁVjÖ´“Ê ÒŸ~ÏKù{ÍŠ>oÊÇþ¶äF+Œ^Ì1ø¯%¦Jí5ôMb·„ëßŠìžøô{F¥¢(/v\ÈèxIF¢ÄåFþŒö7…–/¶?.5»ñùöš‘Ú^Ül—·”A׈Çû5>"5.. oÚ2ΦÉÍ×ibÇ2Z})²Æ¼IpƒSsçB/3/nÏÑé^â¾ÿ'ã£ØîbQG‹fãZhééòd ½?sÿD)CÐ:iܱ/ƒ’#°høQ§!†€£CÖ „A“ΚÄÑp\²¶3VbÒ°ìv•,½yþoçJN¿|®¤¡?Ô×–®…åøDP(,ž tÿ•£É ØT-].@ë¡£”a>…Ƙ´ÀGZ #íß´W]OäFü+~´/ZðŒçËyC{ŠnˆÀ¡èVB+‚8Â!à…Ÿªî±×»ÞÝ#‡òëñLO»»¦ªf¨5X;T›¤UžØºðØÌ¥þtʾ¹q™Î+ÜÆ°Õ¢ªQLcYIË G’™Li[>üš7Ȥ rZ) îñ¹,) «Y§Ó ½±åwy‚há›ZÈ,QYL!³¦bÌ·ÏÅ(ïnÈ€8¿3 ¨UðnäJ0]ùZ êdL˜ñòI±×L®’7'2þ(;€÷#?\÷¸Óõò‰-͘?¬€Š[x;…¨pùµz¾–ÜÝ>,î)Þ;n4c-¹j‹m^™Òœ—gŸçU.h>“´ghoÐãÖµn¸u£ßOÏÿDXì@=š—•/'f^}°E†6—Ó‹wËÅT|-O+åŒòåɧ+D’ gB ÈÌs,A¢ýÅ "æ„h‹êd4ä—D«“~©©é†~Ã|i[ÊZ4Tºü0-¯™E°Q‰ A_>üõümñ÷¤ðùî}Mhè„®m)8Dh 7pŸ(¿?Ü¿êYéØÌ8—wÿÀR}5îõ âë—Ky&­UÊaK…ïtnñ¤†AµbŒ*çP ‡Z X97höñ~Õb‡ƒ¬ë\ÇðˆÚŒ‹ãÃ#$ˆOg'—ªoÞr°Ö€Í¹Õ0B«‰­å´?õÙ ’‚/'Ó†ÜxWOëfüÀŠú¾ÑMì¼[nð²·ä$W>ëiËOìdþ‰Þ-؈Եìé» öÔ5K-gVGç€è5r„KZÍZ´–¥xºÁ=©ñ8 NÞ¢Žx[ðnˆòÖóFekõíry X1 dÉ.çÉŒ^ú`®õ¦°WÇä•Án}”y=>H×RÒºr[ìêõxëØœC7ƒzãvÅÈeØC®i«µGzI®ïÒ¤¦~ƒ&¹%søÌÒTFAtžT“u)‰.¥¬K Þg£=­(S÷<æôކ‡þVÆ(RòƒJEpÓŠ@¦–òúZQ©äYLÒ†°Û·°´[²t3di‚¹úûC+<Øfž&öÜ9­¢òtTž¶@|T–ŽÊÑKî"³•ÇL¸Ö%ÂÒ±ÌYÞ`‚œîYœtÜsÕÜ­5êcŒ dÝÖ×ÉuZ"˗亰¥zË…›!hbP€üdñŒ„wÕÎ4íjeFµ÷±Á;jgpHWŠ3š‘šmøW€TbÖ endstream endobj 1035 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1036 0 obj<> endobj 1037 0 obj<> endobj 1038 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1039 0 obj<> endobj 1040 0 obj<> endobj 1041 0 obj<> endobj 1042 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1043 0 obj<>stream H‰œWY“E~ׯ¨Çî ÔS÷Á>á1ã0‹aÁbyp„,µ=ƒ¤að¿ç«Ê¬îÖx̲1êÌÎóË£ª•x?»zñZ‰÷§™ö]Œ"¸Ð9/d§´”¿Ú¤”ıŸ½›éP_[—.ß^]Ÿ¼XÀ 2E!ñ C´F‰Ój?sVë:¼pÒ •ŠøÖ|ÌFDù•ï’—ª¼Ó±“š^>[Ì®n´Pbñn–²#‘„+P_ìfÊsx—Æ‹Åj–Ÿóâaö¦¹yÙÎ]ç››oéW¼è÷ù)5} •ÔÛyÀÏ’¨óiÑú.4¿ûLù¦SíO‹¯„¡ †ÔñGéjÛyà#Ï)åJ$ÄÃÃCëeçšîÍvSü»ænuس_.€4XQ $Á ˆF 4m„¿B¡Oà€ÂÁ{“T»øeŒzîl“1b®:­ÇPS&½HÿðBHÁ‰vž‘øâÀ¨Œà&3|³,’Z„Û|&4‘RIƪ†‹’RÄùÁiÙ… ƒ3].×®”Ë„ \_/Ï­ë,UÈ5ûU«~?T°~C·lDé09´R@J©ó¥—~ü‡Ø×vÊN$œ"¡¸™®žV÷»~W¯®ZìÙóëÙw“nB¦ ÀÍ-¯¬R±“£óä°{ô'òðª“)ˆÝ ^ BÞt!*±¹Ô¤ÅŒ¥þÓŽv£†9.7 hBÄòâЊúÏ5ÐÜOÞ_HDδ¨ò™7‰k5ˆMUgi“ì$¿„c}š¨…!ÒpŽ,$C¸HÅÞ]ÐZ†ªÁÃéê˜;ñ¡Mµ-,ï’ Œ£Dé¸s 7Z’C#qk%Ž» àòåwDÉuêr7á©N„2è&u š4¨R£„ ¨ÐŠ$•ú¤ÆWûhÌ Œó¬¨Ó¨+ܪ#H`H5Ÿi!L`éZˆ‘C¥ªj)/¦¸PÞ+ÏÛ3JÍ8-MAFE0HíØm}ƒ{N²š&’‚öÃ>Ô´Ñ„œ $aÜei2Í#’Ô…D²yO¥ ¹YÆR™”1B4Ÿ9ä†Õ“,ß_* ùÀŽN¤ÁÇ‚£÷!¦é­ä8!•#i MXä™ô¼“ò™Lòõåe(zõ$,PS¦$±'xæ4‘ŠÇ…02eSó9Éwˆz=Hõ®.U¦y@‚¹ :ލÒSÔ 5ˆÚ*5ÆÚLcµÝjžµ+ܯ#P¸ 1t‘×·õaz$Ç©Ãò\Y§Å£yXábõå«k|z]½x­ÄûÓìÙbvu»bñn–p3Áý^Šò—„ˆB‹ÅŽ>V§òš>§æøÈŠhÅjö¦Y,Û9.Ú©yÛÎq5VÍ¿©éÛ¹1X]eyyaôiZ|…/‹÷3,ƒÈ¥X<Çw—”¶ËS‹xëþÝfߟÄù¶­oŽ­ò0 ªóÍr-îÇs;·M~ùžK ù?ÂÃRjÞâ”_ßgŽjîÚyw½<÷bËRç~¿ú Ö÷½8²(³óãÃqs.®wýqY|mû’ÂÕ!vS$ ÊnÖÂé|ÁÈ@æ|PHd6¯9µÿlŽ0&›sŽÇ#%ËqóG«ñîÅr¿£še”@î¡™;qóï_ˆg÷›íy^âQùv†›ä€'Úñ$§Íf/n^Þ|{ú\¼Ü¯û»~¿n¿Ì`ÕcÕŽe(Ze¿?·h³F\o«Vãó¶ùõT‚+.ç:Ϭ#&es¾ìÙ ž]ñüú åq-¾ïQµWòkæu 7 a d­u/^îî¶ýa,ÏÀý”õ®nô§ÚׯÈí[ š!“æ›Ã¹'eî}å'`éG`½i>Ïeÿ&ÿÛœBjjîïwoû#Äá¸;nv›óæ÷¾u(Ë)WG5bµ$•U‹ï04*^ê¦_ T€j…Ý–0®£û8$[Eñ oÿ)Ú¹oη˜óټ̬–{ñ¶Ç϶°W­jîém _©YgÉÜÂÐ~û¡¼*Ïk2ôû†öïk%ÖVâ×ù“¬eˆ‹Qɼø!ˆi^ ¸Ñ¥7ÑøÍ]´è­xûAÔç ˆkz¹ÃÇ,&{¬ÙäQµÍŽzyòq4ˆ ëù¶OåË’ÿDxß?ÿùÑ}ý¯ËÐòÑ9% Ès@‡Çöç¦|Fø‹:•ÿñûŸ¯axÚã&•L&{KíÈÁgH¶lµœ."»ÅêsÈ 3^¶c~>¶Zc‘ÎË:–M[Xýoù}lîóöl•ÊýÖQ´Ÿ ¢Ž2èš('ŒÎÿ¦ØOž)8zëXǧϔaÃç³DüÉzÕô6 Ñ¿âãº(àý²cnM"4UI©"!«…’(-‡ü{Þ›YÇN .‰íÝùØ™7o¾-›ù½¦ü׿.g\}htÓR Ìé²þ‹ë—Ñ?šL4ʦL»Kþ¡ˆ%D¬Šdß'lh½õéJ6/Q7%&s“W*·,lÜ@¸ó˜ÊÔ¾7?+¦Ã›yv¿˜¯š%R¸%b³øò Q\kºV9r`–»lñsÓÜ>”P­²!y~°[Úe0Úû,ì~b'¥ú|øG.Qr\àÑÖìpŸ‰t¶). q±É ¤Ü:æ[Š? „ªÃïùò:YKÐOöit½nоÛW½×Ívþì2÷„©µ¾"À<‡î*ˆ}®_—<\—,s:×÷©@®7úž6úù!ÙÉÆígU;`Hk«[Õ™]Úy–ÈH+ÉØÂ/§ÝÈïÍvÑêÈ&êU2d$ËâúB)®ÄÌz˜RÈD³2}B²§Z…Óh}ÔK`‹qè`uÌdHCó4°K-ef€3³ü ÎZQàu+oóâ|¯ÀGôÔ™9õ\ê}šjõ|†µPÙhfFÉ×Ì\0ÿ`:EGfù‰Ô½ Hmlòaz²‡42ÓKéµWzo'o¿Œ>è—)MX??†r˜)±~1?ªâÿ‰{Ñj-ä(Ú£€UŸN$ ‘-èì;nÄÌ •TG”õ3ØÐÌzØ_?F;ð¡" eêSì·lþ–à¯<óð¿—¿DίÇl*¸´„Êâ(̧TÞ—WD0œø-ÿ£ùqýB%!:ºe{Jzf‹Ô àëé›÷Ø^2»ý†‘à|òiÁyÑ-´¿ÞPÙ°U «}ï97¦Úw/Û;­µï½}¦ö{¢RûtÒX™ÇëîŸj?ñ/µÏæ÷¸öížuûlí{ðˆƒÚªCÃplÇoEÉô endstream endobj 1044 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1045 0 obj<> endobj 1046 0 obj<> endobj 1047 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1048 0 obj<> endobj 1049 0 obj<> endobj 1050 0 obj<> endobj 1051 0 obj<> endobj 1052 0 obj<> endobj 1053 0 obj<> endobj 1054 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1055 0 obj<>stream H‰¬WÛr7}çWàqf+3¿År䲫ì$kfóàrmÑÔH¢CQ IYößïº1/åÝTÅ.›Ó=@_NŸn`”¸^œ½|§Äõa¡}£.´Î Ù*-¥Á¯6]׉}¿¸ZèP^[—Ìßž¼X  ²‹BâA†h‡õnᬰ¦…ÞI+TzÈ›à9½òmç¥Êïtl¥¦—Ï—‹³ -”X^-ºdPtÂåؾ¼]HlnàE"°åâòqQuº^~Â>Cû†¨ð—"Ѷõ],_ÐfåÒæ÷ÕããcíeëªöËf»ÙÕÃó—v}w[X¾^ü´DþPE ‚X-r´&žŽ×ÝÊ8YæhSÜ)â÷Õūڶ¡ºø9ÿˆ—ý¦êëÆVûÕñn/>ûVå(†¼RèÁѨVë!O6íßê&´¶zYëJ…ºAè•?ÞïëFyè7[¡:Rÿ ´¤'%KÆÿ£¦¦EÁ‚u)7Ùv.qa¬­Þ¡®(ðäUF*2RéU+=¤M°kü¬ÀJ•¼q¾øuR‡ÎàOjt3Mjlª•Õš×DÔh’0ì˜8ƒ`ðÕ!˜5°õlmm3‚7õ…5!õ㟠çïÄSÙ¿;‹Ñó#ãf–îÄ£PR¼ï?Hq ‹ÆÆÌpaÍÇ;è"âV³U¬™D‹Š¸“g[ÙeôŒmµ‹'5cFÎ`Î;õV4Ó˜lš…³˜LZ%L‘§rÙ:kÆú`)Í)Í7v¹LØA_2úÌ6CqÍdoMp§4“Üþ¤iÓN#¨j™8'¥2!ÒlÅhu86| Óìœj•wS¾ÚˆÃ?Ls±kfÙáncmœrk@”Yœ±~–Ëàkà+â±óñŠâüfWœ÷†K5Òó꺄 q@9Ê ‡·öƒ&ËE—E§ ËQ¬ó˜&§/ð]–}±‡þ¡ >Åš4éOr$ó$ÉA² ÆÒŽ -iÙ †|˜²£È¸@ñÖà@œ°hGrAYYܵ8(Š ÓŒbò„‹3äÁ–í…Ò¤á´ù=gí,9t¡8p’WD†•·G†Ù„A¦ ŠaJšíL“J³]Ü,&å CýQ“DòÓ1Ü®£eè:7“v°F[^¡f‰Vó\éJ5¡!¹>R’ÑvYÆ=¾+¤¢©¦KÅÉÛ}£1™ÏéöogÒ”]˜^ð"PqW1/JqÞ’&w“Áo"c”S'ê,E~Ò”YçéPM]^A0CVDA©U–,rÁ yUŠpÔž|ÈŽ8ˆo¢AfN;[á9Ûb!0Š£ã,ŠŽ‘§(®áv–Gšbz’)&žž"9¸+Úa4Ùˆ¹º¹réV:ˆ(>ÊÇX£ÉƒáfMêÑé#oÐúpCëQ…3%ʪ17t7eZxY(̱ÂçO6B²u#Ø£XªQ4\®²¿TsÞ´Áè2+=w‹á( [ÊÑq‘(IEº>âˉa`hKëä†Ì–Ù(;‚ZK"¾¶´"ݘ§ÅIr9¥ºÙŠ ãÌB´á]Œ“(@25 T~’Dbí$ÇÀW›‚äR(ãyƒcØLGöño2UGyìÒ 2ŠWh*EàÖ´<¤|Ù@A w£BDo»0ɽïLéuI¶#/¥i,ùOc›»ä #6„rºbØIHæ&±j¶‚*Y,”Z> J…-%ʦ1·’(Ó‘Q(tP¶À³\7¹ÈÓ)*U±PJ9ïˆ5nZ?½9_üº8{ùN‰ëÃâùrqva…Ë«Eú†Áù!Ï1…À­XÞÒ÷Äú_Ó÷Xƒ¯´ô…³\ãCbù¸x_-WucÛUë¦Ã‡FµÅ/°©úº1¸OÇÊò‚&¿0•aÙÕ–¯aæziaÀZX|/7)q±IÒS$/ⲿÚìúƒ8Þô¢öվƧVH>ði[­.ÅýÝþX7¸Téõ|·¡˜j•´±ºÆã!½zH²®îk¤¢«ËÕ±[^sìwë¯âò¡Ç»´”Õ'ýÝÝ÷û²­Æu½ÚÜíڜРÐ8¿Àz Ú!Í¿Hÿ4ݤ: äã~sÌ @qµ]]ê„x¸¿Äƒ#°ÉNTøR·T0¶]q1zØ0ÁJÀggÀw%þ S¼È°òÞ„¨x R-'xîÕßgxN3$¾ÃËH9ù /GV¦@Òÿ×x ad¦"fª)3Ãif†jVÀº / 5¹J7R‚/?)”PûtÖàðA£§”pª ¹¦<¦ìþµÙÞáöÈJG0âK­ñãÅjw)Æ%&×’Wä’6N\üòòGñüa³=6Ä„-1 H¥/’Ój³¯.~><¯v—ý}¿»¬—Ÿ1Ý3ܤ“J÷»cf™8ßÞ­k-ñøÇ!—]6£ À:bR'NñlÏž ]ü~±ÿìQµ7w—½x•SºMEsÕý¶¿…£Õà˜•ú©ªuׯ lÎéíÚY CWãò§(Ä .E9–g©¤oë§M.ó&…a«C¦KfÛîáöc¿wWâ~¿¹å÷i¹jó¹npVý¡np°Ub½â§5*Z&Õâ_Ì‹ ö»DA\?ÙØÍâ1½ÄS*+¬¯o`p'>fÚ­W)HÌÚuæ/zôCs»ÑÇǯa) !ƒZâXdôÈAǼÜäyôysY»„‚B{í®©ß_½üízðþx“¥_Ó‹CªÊ2É»oSBº"á˜1Ü|îic™1׆C¢â03VÈôpì÷ÿ>ßþÁ˹”¸@(œÿc)ÃPJÃ3bðÿC}Õô¶mÑ{~b)»Ü%—ìÍí ˆc®£ˆ€@°Xˆ"¹¶{ð¿ï{3ËO}ØEséE"¹3;ûæ½'·ø !ºQzÐø-`ëËïz åh­qþ1_¬^%× ǹ36"ÙŽ(*ôο¼9y×DÈú˜K½P'ë¡ËZ¼Š‹38-{öÂ@eCÏ»ѯp5ó‡äfŽÜ± S:ðŸ gû¿\ÿtÍhXŠGjM>Ú©®å¤(ÊÀ ”&d?[ Êj5ÒgvT)ÛÅ5¯Åµ$;)<¢hºQ.eüo­cZÍ”e’V ÂõÌ¿úæÊˆèmÒc‹VßµmîE­†&µ–ÌSƒèXVMJ‰g ™:vär¾üÚ'>˽ˆ8Û¤o„Ø©FWT$ÿ‡Ô\íZ_!6ÛrØärT‡ï“·AEóè~Dœ:€Ï¬Áëcr(Ú(ß$óuš<}˜Þ^Ëû]jXßèþˆ£F°šø2’92`I*Tý­,Z­Œ…Õ‹o«ù™n}‘ñ'©ÇænÜÝc4=‹ù8KûÙ [WeÄpå+ß ¬è@øè}J1øpþ'î'Ñ9ÁÉuìÍzôyôálúöËÑ{]⊠GÙÎ’hŠõ†)­®ùt€#䀖¿ãÁR=iÙßÔòù˦âÚ§‡GpÒŽÎŽO¦´Yú6M››z™H^i9þH‹g€Ô»Vc"5]@&rQ q'µ*6ø%NIMi¡:NyÃKÞ*“Ø’§¾É7bV\r˜QÔ¶/+¾ÔE®¼Ke7gõ!ö¯Ä®@•¯ F–ÈÜd±–ù;ÑÊÓCæÌ­fˆÓ`Êí(ÝÄffÜcÖ63àøã “Y[ÑÙÙètlgéKìŸ'_ç÷Z£AA/—ß“_nÏ'P"rBþßm‚s &‘WÙjІ²¨py³‘ªªšõ°)›¡ 5…s¹kw‹›‰°‹[‰ƒG_Òq@Ìß0a…n\ï3t-oµKÞˆÖ‚Ôáò!`Ô#.DœT…—/€)l½Î”æ‚e»¬¾;ÛT©.¦Â|, .Ò!¦w CJÍ ª^Ïû›ù÷ÅŠ¥46¹×KO ºI‚Â#®9Žr*eQµ|L?nç—×W(ÖtBœÞì[E‰6H.R§Ú™l¤>ñÐÒÐä·ÉÚ ¾>`ƨ˜óHÂL™eú霌øÑTÛ¤ 164‡T÷ÁMŒz»[Y üª]ÚÃW7ú3ø*<ÁWã¡Ø¸ZV„R*y銅ûZ_Âg¢™ÇúuÉ[ ¤+Ößôã½nDÖ’÷¸á\??D;ÉIýY·S?ã¨e(ÉCfÆ6¶^IÀ¯,ʲü‚oë=’©zÍUѲ¸¾ÐA._íà;—¸Š]s¾ì²ª8l°ˆ‰°bj3‚ä¥~U.ÌÉÍ'½ñ¾¡úŠ«P•m2£±›”šûªs¶Ö`ã ^¨Ê7L•3$À59’<Ä󇑲QìÿbßQ\Ó6J®èPb4„óx¶³† ‡6òŽ…ªg¡WMtJƒÑýõÁfNÚ R–°È~ùeU òk¥«Õj_vé²®»ã¥ìtWWJxBu©’Jg\¥²žÍEØK¢P¸lµ|gYoZ_iº±Wûq«!Ñ}#ª\éÒyÍá¬ÁàÄ:®Qw¢Ý±4ßΈ¸>çr2P<§÷Ÿ¾N+ì…‡«ÂÊvÔ\ÛHêX$ˆêsH‘ž¡&WRl=8utŽÀAå‹$Ç…ô}\_e\~wýí`‚ÔQØÆh¨Ài•ÓÑ<L´ku´]7/Ъ… î»ódFÓN‚¶„¯¡ôN{Âz}¿¸ ¡kÙÌÕ3r×™ÁS˜¡¸§l»õ `C{öˆaس‡/h ;©Gƃà;ÛNá™ï.¥ÝÎêںΣu½çß³¢˜»b‚^7®ßÅÜ–uŒÔÂæùÐ{¿wFië5^ÚAŒ² ;f84ƒ;¢p>d0¢ «#éINír°Io2¤ã_σgEÒ•N#)ë·EÒm›ê>¢m÷Œ,¢m÷ F¢k¥½ßÎ÷Õ=6üœ>­ü¿÷i[<¡½©|¼g®ïP•uÓ¦»Ýï,b, h9`8ãÙ‹rØ·yïX€³×ª[7œYš7¸1c-Ÿ¥Ï*Vl·ZŠ\%ÕÌÔǸ­jXfPXqÔ·üGë†Eú…K!!,Øìf%Ñ6KŸëFiœåÈËGKmßžÚ– Cõ5= ;yÑE»Ô#€^ö7+w$¿-òAòÿ‹Ì·¾x"ómVö3ƒ!­©žÈüÊ>‘ø€mþ`E… endstream endobj 1056 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1057 0 obj<> endobj 1058 0 obj<> endobj 1059 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1060 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1061 0 obj<> endobj 1062 0 obj<> endobj 1063 0 obj<> endobj 1064 0 obj<> endobj 1065 0 obj<> endobj 1066 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1067 0 obj<>stream H‰¬WÛnÛH}×Wô#¹é¾_æ-qbc‚Í&³Q2A´–ì(%%¯“¿ßS]Ý$娙`aÀb«ërêTuS‰«ÙÉù{%®ö3íûEp¡w^È^i) ~µI)‰ÛÕìr¦C}m)¿=9Ý{q±‡0È…ă Ñ%öÛ™³"X×ã…“V(zÈ» ·æG1"¢W¾O^ªüNÇ^j~ùb>;9ÓB‰ùå,‘#‘„ËØ>¿žIlîà]/æ3zBÌóûÙ§æì×¶s½oÎÞò¯8_mé)5«[RsÛv? ^ve-Z߇濞V¾éUûyþAbHœ®¶½>bþ’#Q.GÂAÜßß·^ö®é¿­7ëìß5ßú‹Ýu6ûj¤!Š% ^@5Z i#ìü  „r<‚ ïM2íüëuçl“1¢S½Öc¨‰”y_ä€?œ+)8Ñv„Äó£Á5 |³E%µ·y&4/¥’«.JÊÓƒÓ²7 Agz*×u.— ¸þ¹8´®·\!×l/Z¥ðû½‚õز™az R@J©÷™K¿ÿCl+ȉ„Sd T!ÓÉËÝÅÝõj{'oNˆöâåéì· ›Ép‰òÊ*s‘Ñ9š:§¸?‘‡W½LA\ÏàÅ „àM¢›™K}@ÊA護Ö ¢‘½OQRµQ4ëùUÉ×zÂ…‹½Uvâbüè⊔´ €NQç… ÐúYÎ5çú`þV¼ã/'ùƒ”Îú©ƒAðƒƒß~š‚·½ui¨Ã5[t“ÂxéþzaªÅÒhqˆ±Zœ‚ LÐ.OZÆÒ¯³)ÛC÷[Êö{A÷I¹<}­¤€Ú&Œp€¦Wj"À•¸0Ž5yšd ^Mù8xAï$Šqhe§ž†ûT``#L¼@ƒFÊG™Ž§ïÅS¿?ýZý5FÂWœ¨ý½PR¼Ÿ>K±œ…ˆú»)E0Äð~qæ$3Ñ©‚A'ê^ÆÇ ›Vgô½M¬Ç6Y!)6`0 òÚ”5Ž|Þ‘œÏ+ÙdòìÂÖeídõ1H,U-¸¨‹¦¸G—šóô¦øà•c%GjÖ² &­Êî’t¾¬«ýÀ‚tÖºf\½OÚ7˜I6G*Íföe6-O Kê±0•„s¿Ø V¢iÄ"¯[ðúhiÓ°¡HLÑ·ŠÀAIU£½Y_JFCùÀ!iA¬c]kSvÔùâ´/ɧ¨H¼b?ÐÐCÉt—ŠúQ ư†>pßF¸¸fAâ£×'%”a&†¼N®8*Õ£+7­­ÊªrŠËüÓŽg£†¹RnVÐŒˆ-ƒC+æŸ7jX>y¤K¦Ù@…|t@gÞ$ ¬Õ &U¼h›d'ù%ëÓüZ- ñçØB2‹\ éÝÑZËPw‰)ÌtµÍƒø@Ó¦J [fIPFŒQ¢t…¹¦-ÉH…Z©ÄQptùQr½:žMx®£Œu “:ðšwp¥F Ž p¡'TQ\6æI¯òhÌ Œý¬˜iÌÄŠA¡êRM`ÄgZ˜Çu-Ä(áRU µ”GÝÀJ¡¼W¥=|™žQêb¡¤¥9Ȩ©]1ÁSÀàž“°Œ¬. yƒöÃ<Ô ´ÑŒœ ¬aÜqih]Z$©#d'hN¥#D–1„”;eŒä³ñ("¬žd™Êý¥¢@vpâåXpü>Ä4£u9vH•HnˆÀKOú2“èLfýzò²v7½z’†@¨)s’˜¥ç4/UiÆÈäI]ÎÉr‡¨×ƒTïÚéhPѺ4H0G\ÇÑWzê‚©Pƒ¨T©1V2YTºÕ<++…¯#P¸ èbßÖ‡èq9¶H•˜¢_*ë´xиX½zsŠO¯“ó÷J\íg/泓3ØóËYÂÍ÷{)ò ´1]ˆç×üyp±Ï¯ùsªÃGVæ³OÍ|Ñv¸h§æ?m‡«±j6øHͪíŒÁèjlQèò Ó˜²Níçùk|Y\Í0 "—bþß]RbÂv~Šb~/b¹º\oW{qø²­on[…Oò¡ð³XŠ›Ýí¡ípÆ6ôú¾{PL³ il®ð¸§Ww´ÖÍM‹,t³\VbSt«íÅw±¼[‰ÃŽT‹øQ»›ÕmÝÖâVÞ¬wÛ^䌬$Ø)ª=ŽBä9QrŽɺ–O"‰™QÄÝãQ$ïoׇü@ŠËÍâjßÂJ#în–x„FnÃJàÕb5©üþŽÞ›&¿n ¬@uŠŸ„^d¸„ÑŸB„IHW¨ÿ3Dêi²™lá'd‹\|?!ÛH5 „þgF"#ÝÓMMé§[hŽŠÂ¸‘¯»3ÃM 2å<a~ÂwœÐø^Tç$7W=׿ˎ³û¸¾…= lTB^‚æ[«ñ¿³â¬íðAؼ˴>GzÍóü(^Ð K)á‹·YoÝz+Î~-úoKtOŽm®Ôcl¸%6 ®/ÿØâ0ƒynµÛÃê[×RÇZÄç€Nç›3 ìr„ÏÅþî†JBĬ±Û¶žÀw±Û®Ä‹»õ&o9°©6IÞ7‰ûõá LϨÔ묳<|ÉÖØòe6‘Ÿí3‘ž ̨Ým^ß‹3zf®!ûÄ»– nv¼Ä8Ð*ðŒeÿc½êzÛ6‚à_ᣘ@ ïƒ<òш¢ˆbJ¡¨ƒµ]Gˆ*¶^üï;s»ü’DÛ@û$êîvooonfwÃŒ¼SC&»“Á'q“\<ÈuWËðNwIæÍ°éŽÀÓ™íu0ô¬ëNUŠ» ê^Ȇg•§xþB‚Ó(T‡«ÿZÏ´Yªˆ9>¬‡ $E@=Zö²Ã™¯oë»m½ÁiÏ=)yÎë@)Á‡ƒëÁç3iˆºœ,O¯>Î?_¦Cö›¢€¤²¡|å[9.z/èì ”<ûý¸/ª,kuœV9ºƒâAJ­¯ËÅoWg_ÄÝÚÆV×zQi²ÒˆÍƒ0a2žæw|àÕän‚ó<ˆìüý]«ƒ´½8?=Ky%ËOóÅŠ{K fzÖrŒéó‹ÇÿxŸ½xºô®½¿\ñ¾z\Çeï·)=ñeD 7¹Û¦Ó 5_ÈFF‰äåŒv>˜ßñ^Z¡Gq-IZ­˜>]ÌùFŒqÜïrr>5—é»<ù»~ÚÝ>^]ËÝü‚þlï/«%ßÎ!‚êâÕ„Ò°¾¸œˆÞ‹o?êÛø&¬#=cìäãgrtì˜èøaÙÝ•‰¯ ;§(?”š+Ñ)ÊÊøAtûliþ`©*Ép îzLⳂ!,–t?¡Ü ¸˜<ý¬­·zmÉ“PNR?¦6£ª'‘*ïåž¶) .3ëêëÝíMò׳,¨-{«„›¤pÌ¥5‘}fG@æ}ÁöÒ£JÍ™¼ï!ìüCJ¢9Ý´4 P¶Yü8WÄþa!…ï*ší¥GÄöÁqçaº€ÝbÝ^`/°‘ÇíþldÞ$¿=9q}ù-U¿ŒÊo%òkT~ml#6òtƒ°6"Àe#Àf¢ÛöU§çͰ¸ïCç¢[‘಑`ÓÌF F\¶/¿+­;Ij ‰J·Wå-5ôµLÒ|L~Q 9<2ã‡ê›íën0–¬8®»‡<å*»¯¶YÙÞ…o$WÄ3ó! n¡”‮H&Ó–©â—Èü@%«Nx´pøšòe/át"JÿsGœ(ç“S>R«%²è–M˜c¡< ?Ò¬†ßF÷^8Î%½°¦ƒÞÓ앚ã—ë÷j*¼@›8Èç¨ÑV%¨±+®:m¦huäȳCoÀ‡)›˜íÐa$ÂT(oêˆáD“G!Í]dºíæ9 ¯Œ¯$iNHÂyâW¹2zTÓ“µ‚ùŒàºIîÕF¶xŒZ]ïÀšÇù^J$µ[G*,µ›&àüà ³Cª,²Pì£r¤º:F“›(äóuš”˜LPšìÅÔ„ƒ®Ì ïˆ'¯ØÒICVYúŽm™ËK>LÎbW̆ ÌV9™ÍsOt¶2Û™«sÔ±³€P*ÐV·.®h{ËYÈ"g"ÈPz'}fcâÚCÅ–ý`³©[ÁSdû1ànìñšÀ Žñ‚Mà ><$^…<˜Y3«iô…eFÒØÙÊlgÞlŸçÜ÷X€oJcµ/¥17å+IòU5LÒáŠÒ “T²&Éáp°Â™l,%f3Ä`{iœA14“BL­ùH&}f%“¾}Á›2éJ'™ŒöÇ2é …ÛáÍ ¯p_anã+˜‰þ.Ýmü+Àßåy endstream endobj 1068 0 obj<>stream 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 2010-02-23T23:10:11-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5L/zkB58ufPHn9NF0km407S5PqOnxR7+vdOwWWRR3LPRF9hXviofTX5S/l9beRvJlppCgNfy f6Rqk4oedy4HIV/lQURfYYoec/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/z lh/5NCL/ALZlv/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6 MUPzy8l+VL3zX5ig0GxYLe3UVy9uG6NJb20k6p2pzMXGvauLJnn5CfmbN5E83vperM0OialILfUI 5AR9XnU8UmIPTifhf2+QxQX2iCCAQag7gjFDCfzs/wDJUeZ/+YJ/+JDFXg//ADiB/wApnrf/AGzh /wAn0xSX015n8uab5k0C+0PUoxJZ38RikHdT1V1/ykYBl9xih8XeXtS1z8n/AM1il4rE6dMbbUY1 2FxZyUPJQf5kKyJ70xS+nvzi/NKy8rfl4dX0y5SW+1mMRaE6moYzJy9cf5McZ5V8eI74oeEf840f lu3mbzU/mfU0MmlaLIHTn8Qmvj8aA16+n/eN78fHFJfX2KHYqwb81/yysfO2ikIFh1u0UnT7s7V7 mKQ0rwb8Dv41hKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHIPouPJGcRKJsF ln5XfmTqHkjXBMC02kXRC6jZg/aXtIng6dvHph5buu7U7Njqsdcpjkfx0fYGlapp+q6db6jp8y3F ldIJIJk6Mp/UexHbLAbfOsuKWORjIVIIrC1uxV2KuxV2KofUtOstT0+506+hW4sruNobiF91eNxx YH6Dir4X836L5j/Kv8wL2xsbqS3miSQWF6uxls7pGRW8K8SVPg426Ypelf8AOK35afXtTk87alFW 0sGaHSVbo9yRR5adxGpoP8o+K4qX1Nih4P8A85ff8oRo3/bTH/UPJikJp/zil/5K1/8Ato3H/EI8 UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFIfTv5Zf8AktvKf/bG0/8A6hY8UMlxV2Kvhf8AP7/yb/mT/jNF /wBQ8eKQ+6MUPiH/AJxw/wDJz+Xv+jz/AKgZ8WRZ5/zlH+Vf1K8/xzpMP+iXbBNajQbRznZJ6DtJ 0b/K/wBbFAZp/wA4z/mr/iHQv8K6rNy1rR4x9Vkc/FPZrRV+bRbKfah8cVLOPzs/8lR5n/5gn/4k MUPB/wDnED/lM9b/AO2cP+T6YpL6uxQ8J/5yj/LX9MaAnm/Toq6jo6cb8KN5LOtS3/PEkt/qk+GK Q+a7OXzT5uutB8sRSvePbn6lpFsx+GMTSF23/lBapJ6KPAYpfdnkbyfp3lDytYaBYCsdpHSWalDL M28kre7Nv7dMWKfYq7FUk83+bNN8saPJqN6eTfZtrcGjSyU2UfxPYZRqM4xxsuf2d2fk1WUQh8T3 B8w67r2o63q1xql9JyubluTcdlUAUVVHgqgAZz08spGyX1TS6LFgxjHEbBE+VPLOreZtYj02wqCf innNSkUYO7t/AdzksUJZJcIae0NVh0uI5JgeQ7z3Pp7y7oGn6BpMGmWCkQQjd23d3O7Ox7knOixY hCNB8r1eqnnyHJLmfsTLLHGdirsVdirsVQ2p6lZaXp1zqN9KILOziee4mboscYLMfuGKvhjzfrfm X81PP95e2FrLczSrIbCxTcxWdsjOF8K8QWPix26gYpek/wDOK/5mfUNTk8k6lLSz1Bmm0l2OyXNK vFU9pVFR/lDxbFS+p8UPB/8AnL7/AJQjRv8Atpj/AKh5MUhNP+cUv/JWv/20bj/iEeKC8h/5yw/8 mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/AJN/zJ/xmi/6h48Uh90YofEP /OOH/k5/L3/R5/1Az4si+1NV0uw1bTbnTNQhW4sryNobiF9wyOKEYsXxD5r0LzF+UP5mI1lKwksZ Rd6TdsPhntmJADAUrVeUcg+eKX0n5z85aX5x/IDWtf040iubBhNCTVoZlKiSJ/dW+8UPQ4oeTf8A OIH/ACmet/8AbOH/ACfTFJfV2KHhH/OUf5mfofQl8n6dLTUdYTlqDKd47OtOB95iCP8AVB8RikPm yzi80+UbrQvM8cMlk85+u6RcsPhlWGQo21fskihB6qfA4pfdfkPzjp3nHyrY6/YGkd0n76GtWimX aSNv9VvvFD3xYp/irsVfJn5m+eNZv/Nt5FrtrLaXFk5hisSQVhStRxNaNyHxcv2vlTNRm0uTJKyQ +o9jY8GHAPC34tzLvP46dGJ/4htf99v+H9cq/k+XeHbeOH1b+VGleW7PyhaXWhzLdpfKJbi9pRpJ BsysDuvA1Xj2+ebPS4Bjjtz6vmHbmrzZtQfEHDw7CPcP297MsyXTsZ8wfmL5U0DXtO0PUrsRX2pH 4BtwiB2Rpmr8AdvhX+mRMgHO0/Z2bLjlkiPTH7fcybJOC7FXYq7FXzd/zlX+ZnCOPyJpsvxPwuNb dT0XZoYD89pG/wBj74pDJP8AnGH8tf0B5abzRqEXHVtcQfV1YfFFZA1QfOY/Gfbj74qXkf8AzkJ+ X9x5J89R67pAa30zVZDeWUkfw/V7tGDyRqR9mjUdPY0H2cVD6T/KH8xLfz35NttUJVdTg/0fVYBQ cbhAKsB2WQfGvzp2xQ89/wCcvv8AlCNG/wC2mP8AqHkxSE0/5xS/8la//bRuP+IR4oLyH/nLD/ya EX/bMt/+TkuKQ+nfyy/8lt5T/wC2Np//AFCx4oZLirsVfC/5/f8Ak3/Mn/GaL/qHjxSH3Rih8Q/8 44f+Tn8vf9Hn/UDPiyL7exYvOfzx/K+Lz35SdLZFGvaaGn0uU9WNPjgJ8JQPoahxV8leWPPWqeXN D8yeWZ0dtP1u2e3ntm2aG6T7EgVqUO3Bx4f6oxS9N/5xA/5TPW/+2cP+T6YqX0z5q8y6Z5Z8vX2u 6m/CzsYjI4H2nboka/5TsQo9zih8Y+VtI1z84PzVaS+Yhb2Y3eqSrUrBaRkDgp7fDxjT3IxS+n/z e/K2w81/l8dG063SG90iMSaEiDiEaFOIgFP2XQcfnQ9sUPAv+cbfzIfyr5sfy3qrmHSdZkEZEnwi C9HwozcqcedPTb34+GKS+v5JI4o2kkYJGgLO7EBQoFSST0AxQk2medvKGqXosdO1i0urtgzRwxSo zSKv2mjof3gFdytcVYn+cX5U2/nLS/rtiqxeYrJD9Wk6CdBU+g59/wBlj0PsTkJR6h3XY/ap00+G X93Ln5eb5Mubae2uJba4jaKeFjHLE4oyspoykeIOQfQYyEhY5Fn35Q/mndeStW9C6LS6BeuPrsA3 MbdPXjHio6j9oe9MINOp7X7LGphY/vI8v1PoX8wvzT0Pyr5Yi1SCWO9utRjro8CNVZqgH1CR/ute QJP0d8kZdzx3Z/ZeTUZTAjhEfq8vL3vkTWNX1HWNTudT1KZri9unMk0rdyewHYDoAOgyD6Jhwxxw EIioh9BfkN+b31+KHynr8/8Ap0ShNLvJD/fIOkLsT/eKPs/zDbr1lE1s8h272RwE5sY9P8Q7vP3P cMseWdirGvzF872Hkryjfa9d0ZoV4WcB/wB3XD1EUe3id28FBOKvkf8AKfydqX5n/mS91q7NcWaS nUdduG6MC1RF/wA9W+EDstadMUvtyONI0WONQiIAqIooABsAAMUMW/M7yJZ+d/J17oc/Fbhl9XT5 2/3Vcxg+m/yNeLf5JOKvk78m/Pd9+W/5gva6ur2+n3EhsNctn29JlYqspHjC/X/JrikvYv8AnLxl fyNojoQytqQKsNwQbeShBxUJr/zil/5K1/8Ato3H/EI8UF5D/wA5Yf8Ak0Iv+2Zb/wDJyXFITPy3 /wA5W6honl3S9FTy5FOumWcFms5umUuLeJYwxX0jTlxrSuK0mX/Q42pf9SvD/wBJbf8AVLFaZt+U X/OQV55+81voU2ix6ei2slz66TtKaxsi8eJROvPxxRT5+/P7/wAm/wCZP+M0X/UPHikPujFD4h/5 xw/8nP5e/wCjz/qBnxZF9vYsXYq+Wf8AnKL8q/0ff/440mGlleuE1mNekdw2yTU/ll6N/lf62KQh /wDnED/lM9b/AO2cP+T6YqVv/OUn5mfpfXE8nabLXTtIfnqLKdpLylOB8RCDT/WJ8MVD13/nHn8t f8H+TEvL6LjrutBbm8qPiiipWGD24qeTf5RI7DFD1PFXyN/zk/8AludB8zJ5r06PjpmtufrQXpFe gcm/5HAFx7hvbFIZ15T/ADMg86fldYRa1KXfSNRsLfzYCa+pYep8M8oH+6nYKJq7UD12xQUvlt9b ttP5X7zwT3VtcP5UXndTG51T9IBbSgkZkglgCpwESDnE7b8VbCr6PwK8383f8qM/T1z/AIl/R36a +H616vL1Psjjz4bV40yo8N/2u60n5/wx4XHwdEn/AOsaP+1X/wAlMHp8/tcn/XT+mrXH/QuvpW/1 j9H+l6Z+qep63H0+bV9Ou3Hny6d64+j8Wwj/AClZrivry+1R/wCsaP8AtV/8lMfT5/az/wBdP6ap a/8AQuP1mH6r+jvrXNfQ9L1vU9Svw8OO/KvSmPp8/tYy/lKjfHXweuZc887FWH/mR/yrP6lZ/wCP fqv1P1G+pfXOXD1ePxU47cuPjirX5b/8qw+p3v8AgL6l9X9RPr31L+fieHOvxdK0+nFWY4q7FXlX m/8A6F2/xHe/4n/RP6d5L9e9avqcuApz47V40xVO/Nf/ACqT/CWkf4m+p/4a/d/of61z9KnpH0vT r8X910r2xVNfy/8A8CfoE/4J+rfob13r9Ur6frUXn170pirHPzB/5Ub+nl/xv+jv0z6CcfrnL1PQ q3Dp2ryxVjX/AFij/wBqX/h8Vd/1ij/2pf8Ah8VZL+X3/Kjf083+CP0d+mfQfl9T5ep6FV59e1eO KoLzd/0Lv/iO9/xP+i/09yX699Y5ery4Lx5U/wAimKvVcVeW+Sv+hfP8TWf+Ev0Z/iD959S+rcvV /un9TjX/AIq5V9sVepYq7FUs8zf4f/QF/wD4i9H9Cek31/6zT0vS78q/51xViX5c/wDKmP0ndf4D +ofpD0P9K+pcuXo8x9qvblTFWPr/ANCy/pkf8cj9K/Wf2+fP6x6n7XL9rn1rhV7BgV2KpB55/wAG f4cn/wAY/Vv0Fzj9b65/d8+Y9P3ry8MVYx5B/wCVIfpK6/wX+j/rv1Zvrv1XnT6tyHL1eXw8K064 qmXlj/lUP6ZH+G/0P+luL+j9T9D1OG3P0OP7HTl6e3jir//Z uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:8230D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1069 0 obj<> endobj 1070 0 obj<> endobj 1071 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1072 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1073 0 obj<>stream H‰”WÉn7½÷Wð8d(nÅ%·X^N`h‚ Œ‰,Éd[R"~YÅn¶1NâÁtU³¶÷ªŠ-«.¦“gV]ÜO.êœU¢¤)*£­3Æã×ùRŠº;ŸÞO.õ×êõÛ“Óû¨÷P&S²2x0)oÕýáv¢ ‚×Г ÊÖ‡f„ÈõUÔ%ÛÞ¹¬ã—OöÓÉs§¬Ú¿ŸJu¨Š¢væû›ÉÀx‡(‰í÷Ó¦„íþì<ÛÍYág₎H]ퟲ±¥jüfóøø¸FÓF¹º¾ºÝîÏ_ôáãÍöíþåôlú¡Ê @¥¨p4Ô2\|;ßœ6y³iÙÖ¼kÆo6ÏÙ6Ïk?êÅù-üæ|» ›»wïÔßQÛ–Å\WM=y¯vV;7×"@à)$öýûv—tؼغMÛRßúùÓÝvg#ôW×ÊVÿ¨œá'kzÅÿÁ©× ,ªµ]¨öÂÂ-ÍïÀ+^5¤² U_5°êC5‚_W[Û늂Ùée%ÈoÞ}â߇sþ½Sá'AJ˜ msLLxõP]Øm vöôü~K  Ò/¶Q»Íí=¾A#TáB=^Ú<\ª‡m tÙ^Ÿ«Ówç®Ïèç+5"ŨIQR;ðjÕü n¹ßÕÁ¡L§KPkOYiù“§Ýœß>¨“W§Özòôtz=ðP<þ«ƒg|©hƒµ¹±9vuŽ{ :Ì+Ú´$§n¦ÊEí)z1Â×ÐÔY+ a¢ÝluŒŒŽ%›Úéè®@¶Æ¶%J|; eírà šca¾]Ù…HG`òQÄêÿs$ ¨rvfÑ ó/ÅX‡‰M3ê7âÓ¯x(:úºSIkp:$*NW‰ZŸµuoѬõ—BaŸÎ#}¾úD+ÇìÛ%àrM‹lFia>S5QÇTVš:ØÌUpNÎdp4 ?>¯ ˜cÔ‘›³[ :¤´ÒXø¡1Τ:s>r'œž©oUvú+VÏK¬ŒØY®¨Gez¥Þ¼5êOxÄ2ö~…‹hæ<ΠËÈÛ®N‰fÈŒÐQ mJCÏí(Õ,‘ÇžMaŒÖ5cN¡îÂUN¾ ­*¦¨ÓRó.š…?,?¦Yò†µ†5ˆerlÝæ9ï®ÎDíÓ µ}æ…ª%®°ZW&­!ênÅj%\1§±:²ÚFû5d\þi¬%$œYU‡o›òØC8ƒFYå™uŽ«ZæXs¿"Ÿ°^¯à—äWVy=T9rkv©¢Â=`‰+Ãåíâ¬ir‘šHÖ‹œÕ¡À5k"(r –&ÇîóñæZ5õ ¯rfû¤ÊɈŒŽe‹äkûLžcønÑe|@‰…hp!ŽÆ‘CpUßZ’ç„mÆ9Eƅ΢qANØU‹äàd¯”ÎFb4ŒÐ3'amj2¾ãKo*Þ:ètc¥øÊWßú¹~ý‡@Ç4Ý Û‹Ž)/_ã6·C5ÏÖ´iòø­ D‚rD×äd9NÝ2‡fQ/Õªq™Ú †²å4Î6Ù£î9ªµŒ£‹ÃîAüM4ËÒS>¬ND©¶{H‚â#ç¼Ê¢òœeÂgxXÕQ·˜*ÅÆs#ÍX±…wì#7v! sõ«tA>èÑ8ŽàeX«z‰€†ŒY œìÊY-9†vÃ,U€Ó4÷“t\Ž\7〽éG¤ µ¥p·x¶`¬!G7°Á2[0_Ë æsñÀŒ/1h=΢÷LϲwÕRÍÓÍ•ö¾ìHôÎ]°ÂŸ²ÙMȰ±³Ñ5BW·ïl®gƒ ¼ë»2Ê´xÙ1‰ËŽ"If¢•ùó9 m¶Âp…¾Ma¨áÆwOÔ/摜*÷[ª¬N$“WrH_Å(9Y Éì$zÐÆ¡ˆÚµCI>m:;Q>Š l¾°ü?lÕE^æ„5`ÆÊ ÇT$Í K*vN³›Õœ"f›ÒPfŸ|ŸuYI¡¨¬—>4ã×µ-‹ÝÈ£\6ŒrýÄ,Ë»:ÁLvë%FEï–že殮ŒÞo½PiGA¡·ëŒZ@`K²Ë§æ.#Ò5LU÷Щ\OÄ_ZÏ^N¯§˜ÂÒõ endstream endobj 1074 0 obj<>stream 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 2010-02-23T23:10:08-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:8130D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1075 0 obj<> endobj 1076 0 obj<> endobj 1077 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1078 0 obj<> endobj 1079 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1080 0 obj<>stream H‰”WÛrä¶}Ÿ¯À#éZq‰;P•J•­õnÅUv’Õ¤ò`ûavDI´ç¢ˆ£•½_ŸÓh€ÄÈÚx£ » ôåôé(Åíêõ»+)n§•5ÂK/‚Ju½ÃêfõúÍqû¸'ñúûKÙ;ñÍ›ËÕëËɉí$ú.jüáWõ:*üJ#eÓö@VY•b0ÝE…ײÓV‰ýʆÎ( …í´2b·rº3Q׊¾ëš·ìKß¹z7½òÆJò+£“Éßg](ßé +‹â%ŸÏ¨xP°ÓÇÿËCÞòÅIüÁ…ŒÑ¾r±(^rñù$|ßéèfœ÷/ïºhÌ—_,æˆö/„˜-ž…(µW–BSÒúôkMLƒëœÉû) ºH(Û.Àìnåc'WÓ{È0Ü"ÙRl ÷¾SUÊÉ€í}¥(b§—éÕå«^|'zñ‹].OBöâ{ñãϽ¸^EÑÛ„"Ï\­¢é¬—Õ’,ÏK¢ëŒ/(”ì¤'~Ê^w}/_Ò,™ÈÞv–(VÍŠdئ`$^JªER‚˜Ì#/“é¢)¦e œ³a)‘w/Ï4,t‰M}<Ó,kµ€yIS¥EY_E¬ìèŠiR™N¹ª¬“QÖ"¨çôBzoê§Î5ÅKabTMP©uçt<Û…¬ˆ-v8T_±ÆÓÈ6ï&ɨ~’5Zˆw¤n$ò¼"Í@ÈŽ-(Å ŽÞ¡lÖ O“ìØ‚E´gr,²Â!˜Ú€/8&tH^ŸIí¯OÔ„‹ŠÍ!¥œt`Áñ‚>Ip%˜BÞwpì!D•Yö,+7˼ÃH;kvg*Înu·Z šš=ÛV±&å–fŽèÈ`¬IîKöVrô1Ãi}†Çù3ÙúR¢Ñ1¯P5Mà#, KtVô19ýÞøÌ†§L¼#µêS;.Rgð×0Ì}:&jˆžkê]ÌÈ?jTÖ°¦3HžVY4Ý>i¬fŽ”$U»$+’ìSkÃnÏ44(L-3-zÍrðÜMJòt½ÌEׇ¸W¼Â:ÞáBH²÷³˜yå«÷n>éxƽò€ÒDSŰœ£Cá, Æ*OŒ0²0ãà1hÜŒíðʼ,I¢gࢩe°Ãº²!k´b1ÆÙÊ© 9¢,gÁ1‚ÔÖWY ¢¡ìHyB£%g‘pHó×/H‘Œ­ç”J5(PCt½K‘E.EªUµ Õ²ÚŸª]yÈ|˜cÈ|™c,ŒZ²(œ+yN k¤LªÒ %D*¤¹Ô¢hJµŠ\Ìó¾à ² ;ås§¨ŒM¯óžž3W’£´6çé|¶áeÆZ1kî™G]ŒrŸHÖÉãÔf\‚õuqH,Ç”¯ÐP´>sA„‘K `X:•r„  g)gu•$.‘ÖU àŠo ï0†‡žK凜䩺ÈKŸ°¦Ï“ºXÀ};ÈÊGk›Ê;8 4/¨´D‰›yKÔþªŒê”(y@ðrÖ,HA¶®`›°¤›E°bÆ:Ý4d=´HÌ¢ÝÙ‚TÍÙ@®wå"b"óe23ªJ£p®$Z8Y€(¬] 28›L&ä &ƒ]äºUІ V,”‚žwÆw®o¿¿Äî-}ìJúØE2t#D¤ý›nzâaÀÂoÖ«×oA4±¾YEÜù{…M+bë=¾nWÈ­ë튞Ôúiõcóöoí…í\óöïü+Þ zŠÍÐbKlÚ Ÿ K§c–E‹©Ù|t$¹¦“íÏëï„æ ÒçÉvJ¡ðw\º©BZ¿áHpÌR$ÄÓÓS‹/MÛt¿»1ù·ÍoÝö¸Of¿]¯”·t3U4ª–ú\4¾%þFf| ïM´íú—%ê KÌ_/p5QK¨‘ó¾Àÿëd0åÚ Bâë{# Á‘®Ù‰¼$¶·y%‹½ìKR3Jï ¢îzŒfÄ,¾@Œ0šbô6Ò…Œ„”°-¯@…ŽnIó›…çŒp¬ø1ކ•pÑ’Õ @¸TâònsŠx®±%Ôÿ$òÙÄ<äI®þý•8üY´Éãâ…IŸžKßÕ\^%a~÷Ï/¶JÑ0L•¼ËÉ{&埞h› õ§Ÿ²Ÿ;Ç0 h®î‡í¸Ù‰7Ã4ÞÄåñ0×ÃÃæ4â‰éb2ÏŠùô Aoݘ©É<ñÆÞH‚œà]ß“ØÆí…æÃQÛ<°G¢·›ãG8›ÄæúzÌKÆVwª9Ò5‡´¥@¨.t-‹ÒqW¥üÌTŒ˜äq¼F-Á¿”Y´Í‘&qC Wâ±½À¬l&¨›ñpËËÅén<&<Æ 2v|@ )j…44\tyä6D3d|ø ðÛôÅI„ËÉ9^P‹Ð?LÃéßÙ+ÆÒŸ@ã äj©æŒø€QÕ%ú]‚ß?N'ñ!½D¡“<ðt3 -ez¢7››7š‘â!Cÿx÷u›`ñÊVñ …׎·IÿøÐbäÁèµØ®iç‡áæX”ìIï3±D‚®Oƒ‡N‰\Ï…A½Éù|nÇÃÔÑÔiÖm$3O¨#2‡2©$3HÜc‡Ø”·iëæãfÜm¨Ül7¼ùyBn¾ùý°½+„ª9‰ùm2ðS“«s³)¦83g.*S•÷W-…Ë;r-%}e¨jƒžk—¹ûS[°›rD4;"˜I<÷`Í«Ý7Wï¯Ög4ºUßÈÙµœ]¿"ßÔ;ªáê\ÐÞ`R=/ÒÌ9Yjt<݉ínØÌ¬ µ0ž·„%õËЂ[$x.šn¦’rYuº/­"΀Bš)DëoÇ –‰ õZr†‰J Šr†â/À6üµ†B>Ã-ŸËù)ÝÐ,›¹4,0•›TŠ…#1D·Wg©žŽ)û4$|YõJœ—îh_/ÖíyÙžÇJgtfL>—Æë Öf,›ñÓpEXôÿnHè£LÇí¯âú¸ßŒ¹ /p3 DxVg:û³7•gkK-shéæ"žîXܶ²¹ü|"þØ&Á2ÁæÄã4\¿Âch áÀêGZ˜!J ·9-±B‘Æ!Í&1ŠE8®Xü„£cNqCÿ~=Ÿ©ƒN›Óбãuuâ;§½þê3­0Ql¦ù½%Ú•Á@m8~ÚðyfÒ­GåqUbWÄäá6¿Ý¦¸xÓnwÄàRżÀp¤·÷t{’@‚>¶";øÌ ¸]yˌԹÿ@Å4£Nã¾½À­ÁQãP9Þˆ¹ÍMž†Ûc²ð…aÃó^àñ››¡æ²ØoÇÿ²^m»m[Yô½_ÁG °ñ.ö-ã:í q¸)2ƒy(ñX"J‘“²âüÆÌwíËáÕŽã €“G‡ç²÷Úk­½½P>­òŒdK!ÃyBçÆšÈӮțí^ÇJ‰ÀÁ4)²v–œoÌ>½ÏQM1adé€ýcVó…@ŸJ™ÿ™ay”—m#ÿ3Íøp-©Û†Š‡ê¥jˆð:û&m+ÄBw8ˆ50s©…h–¡Ò€ÁìŽ`†&aŽgf^5ÕnWðˆ³0xJ;>bÝ›OWï†ês¼² Î^þ•P…®ˆc¬¨G®8»ù‰ês ÖˆPÒfÈUJ9ﻛΠL¯×ßÇ]¾×Y¥“–&Ài ‘ 4ò?Ëðj‚`–#Â_ 5Jb$â«¿”÷ã¶îýŽ÷)»p'B’äaøšAxîòÍ©V½ymi­û™œæµê9n Y*ëU*)= ´š²‘×mzª[n4“©Z{ö c™nOâêI`‹†zaÏÐS ΆßOM ~Ó‘ŸônÜn#»^šáô²´—ŃS•<2ÐüYÛ{Ñ݆×ô6BMª}e%mCN¬²ÎÈs,úÊgæ–³»KØ ^•ø~JEÙÓy,œ.༩¨ˆÒ@(ZlÉx’…‹bY¡÷b|z/ÆçHoXÃ*®Ë;§¯Å™9š2\ÈHÓ†š§9›B>V0ãÇLZUÍ dÎÍëk€DÖßÑ:ïi6» Åg£¿1„Y^؈œø|îCëºÜµOŒ„{¬“.ôË hm(%;th+ñ'%œýñÄ#·Û§©7ŸÆLå÷©óEÔúÈJo·j9Æó[‡Ÿs·IænÓ #ÜëG¹¥I©‹°å€®åyGñ§fkÛÝ{­3yãj#˱¶m/UÞ…ƒêÑ‚ƒU&Ê-*?©¦™ýG#‘zúRÁÓ¦.Ÿ½‹÷ #öšD¹ }I}ªÄPÅídDÜr°<Ö!`ÑÝ5çüÂnJq‚Ë݃wb²MbtÖwýšÝUd§É›²]‹¤û–¶õ8ÐÉL/QÈ¥ÎýžÈZ„NÌB­N$§V‹MüƒËºÈÊIÖ-àS±‹z–›–ÏG¤ »[kòãˆ@ˆbW0¸^9>ñ`wRH” ($Y2êñ=¸Éº÷Ý¢Ãã쟷Îà Ùÿ1À/•aó2µJ¤0éñ(¾'''‘‰cD€Ê‘Àá|×ÂO<_^cåq§ºq€A® ‘eí¢ÃˆÛ¾¿âpÚŒÙñ>ßxªÓ¥êñœ¬Ðzß‘“î;­.«kÁwÇë|—7âÖ+n b6  …(£du3®~R­Ò¾¯NEÆÇ ôh2¸Õ©lòÂÙTÍÞj:~ ®ÅÎÛ ž!ìoäj1k MØBµm l•ò`¶)QÂDn© ŠõH=u­ ô/Crι\¡ŠF /’0 ü¦«Ëü\æ¡Ìßò¡½UÏhS‚‚%‘V:·h‘ƒF%/¦=¨ö¸•Q´¤‹K‡œf†n'/êÞG›9ù‰êÔÐm—ºÐ󌫰u]£¶fkñqîÓâddõ’ƒš z Oz ÚØÎ䲎œmÍHuz[R‹}骭-·•fí7¦feÂ~ÿ0{6]°1öù?ì˜×Ë}zDÔ@¤,PŒíh? ƒ±ë`CÀŽ>vfÙr¢¨\â© m¥ÉVõ<б-´UWhDƒ´òe…²(ç.õ“'r7—¨9íÏþ¬‡ÝרŒ#ÏñVXÜ#ê9<‘õ\Kÿ&|§M%ÖÍçÚ!]ÉÄ-QPòÛ®42L°:Wwò(,tÁôiÌ(;ç¨éÛ9‰° À,ô…"š³ö–²j¹sÎ2NÌ¢>PqûƒY¶²8‚R‹J~„žðãÿÊ‹¼ü kÜ•Uã¨û6"î*ºÎ–úÙ®l¬Aw.½uÒ·ÀqMYQ0àòr×Z"1žÊž\aÝ<ÈŒCÊ·gÇ“|ËõgŒ"&CM$#ý„{„(]¾ýõ«¢´ÖÀõmŸ‹PÏÉšŒ¶¬£‰î¶>õ¹Ü΄¼’¥Ò¾ðAŽ”ÿQÚ OÂ$¶¾%—L;·§rÛRÈÉɵÞìÁ±“úpùïIæÈû¨]ÚH;ç@žîX•.¸¥tÎfð­õ` rvD ý’YpÇf¨‡`ÿ*ìÆ³¶|47ÝfuåΨuÑD‡04<ùŠùÕ»QÈ)Ê«¯€†ž I,Ÿà=¤2Ì´RM‰SšI§²fëýÔ¾~˜ «7nSÏáºXïv€ð='†'¢—zù,gº~Ÿ3[NóÊïç鼩ëü×M¾uÞœŠ‚Cpu86ϱ¦ë†=ó³jµÕSmýH&1'oî )zT¹ÔÜ–#-ÍšÈIœÌöëÃ|±f÷@(€±‘:wÈÚçGGtÕ‚í·,pÁp»…[ÇxAÝ@Àö«ít«qê¼h¯ý'’÷æ·o¹óF-©Ï€»ûðp‚É×o¯ûýçɂ褼H§‹¨ù6–¾ß‡¦_ Y´ôÝğд1”Mç¶HwŒíñí‘ÅØŸœV.uýþÿG·OZ+±xÉõÿcïu Ù eøŠ—žç%½¨úí=¢^Xˆ>"ë&03PÌT w o Iw¨–ˆÛ¹ÁÍå0^gÚ;q`?üŒ8$ë'öùP0&¢v;?²Û!Õ–…DŒ`»…DßíÕåvÏCÈ.!%âzE…*éY¤ÅCàûånJÈmKÔc̨Ÿ¹pÎTßÉlOc°:…™t°¡ß Ý1éþ- ìÁú=Â÷¬Ev¬ä·Yd±é²,ÇYìêzœÄP“ˆ JúT‡õGÓD¡m'³ ¢óB«äu–>stream 2010-02-23T23:11:37-08:00 2010-02-23T23:11:37-08:00 2010-02-23T23:11:37-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:8330D4931321DF11A166B14B4D8AAB0A uuid:8330D4931321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 1082 0 obj<> endobj 1083 0 obj<> endobj 1084 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1085 0 obj<> endobj 1086 0 obj<> endobj 1087 0 obj<> endobj 1088 0 obj<> endobj 1089 0 obj<> endobj 1090 0 obj<> endobj 1091 0 obj<> endobj 1092 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1093 0 obj<>stream H‰”WÛr7}çWàqf+áLÞb9rÅkÇ•Syp¹R45’èð¢”ÿýžFs‘¥8±ÊÅAÝ}úôe0JÜÌÎ^]*qsœißÄ(‚ óB6JKið«MÛ¶âÐÍ®g:”mëèÀt÷ìüèÅêam2Dk”8®v3g…5 äNZ¡è!)Á3mù¦õR¥=©yóÅbvv¡…‹ëYKE+\:õÅv&¡<‡ `‹–‹‡YÕúzñ z†õzTøc$Ú6ÐÅâ%++GÊ難‡‡ÚËÆUÍ_ëÍzWÏžÿjVûmýañzöãñCˆ ^àh´ˆÑF˜x¯ º‘qŠY&´„›¿¯.~ªmª‹wéG¼êvx0UWÏmuXžöñÙ7*¡èã"èÁ1WÖ},™<ÙÀ¶­ç¡±Õ«ZW*Ôs@¯œøáîPÏ•‡|½ªeñwBK~R²Düœš ÖQl²iÕÂ[×ï!¯Hðh+13S´•È¢R‚]ã' VªÄå3gç·” S-ïø÷ÔñïA¸ï3S9®QÑNxâÈõô{¶uy×%ÂW ᯗñ’%ÇõÍNÔ¾:ßïŽë+–:µ‘£QÀ°câ„‚ÞW‹8b’ÀbÔ“3¶±!L$ vÜØÎêÇO~/œ_Šç¢¿<ÿãç5ÆÆ'Ì-ÝŠ¡¤x+Þâ 1™ð’%=ŽKÈ"p«É©,¡EFÜ“gÙ&ö &‹OJ†ˆœÁ¬ vì­HƘ,Íà &Ó¢¬ˆSÄ©\²ž%Cþ ¸”æ)É€Z.l//}ª6ø‹dtÆ7&¸§$£ØþäiI¯d•F&Þs¥RAÐlÅhuxuøÆÑ9Õ(ïÆõj#.a‹ 83‰÷k㸆p…2Á›è'±ô¾úz;¯È!^”´â´7åHO³ëˆ®å82¼Àµï%iòÒ¥¥S&¯£X%˜f‰çm>àÛ´öÅú‡2™Ùvi»|[ŠŠ§*]ª|°í#‰IõL_vBÐS’¢…éåž0_L*nä*¦C„sË’ÔM¿T@.³L¨Ó:(öCSf•4è¥J]:Á4c­¸¥Vi­`1'ܰW¥˜GíÙ‡l¹ñ]Ô¯sM;9ás´ÅBÈ,>bŒmfžQ\Åí$šbz)&ž3up=W¬a4Ûˆ)»XçÌÑ­´_"ùH_VÈÍLnVP>fgŠ‹Q mzà Q §¡¯§\qÑsÜÌæ¦3…õ£)…w‹a æk¯GÙà5kp¾†œÏÁg|ðáúÖc¥f ÊRUC®ïnŽ´Ôea¢TîÀ•ÃS;bk벇eÉF‘ätý’Íio°‚ÑeVúÜ-&ϘÀaØ’Ž6ƒŒ™ˆTäë#>13 ™ÚÒ:i„áfËl”-S­%¾¶|‚nÌãäк¼¥Úɉ ãÄB´á‘6Æ ™D *? ‚ªvcÈW›ÂÖ%QÆg—i3-ÛÇÿÑTÖCŸ°™Qù„æT„Üš6)_z7Š"zÛ…Qè}gJ¯ç‘d[10€ñRšÆ²Ûy°Ë|aÌ/f™®v”^ç&±jr‚3Y,”\>J5¥Z ÊRMC¥ÞJ ¹3 ¥\{–P™¶g¹6nDsY[¤H8UÅBIå´#V¸iýøö|öËììÕ¥7ÇÙ‹Åìì %×3ú†Áé!Í1àV,¶øV¸Á—””‹ÕlŽG ô0{_-n;q}¿ÙˆëÍòæ(–‡Z!ÛU'VûÝq}Õ•uíª«z®_‰zî«»îXuu$Y¬ÖÛ5¯OëUÚgkõ‡Åë}]!ýR,^&˜T„Á·lñ*M€pY­–õ¹¨î8Ýv_Äòx¼¯çèjÛ‰ÚW§Û|âÄöq¯5ô‘DRl.›»½~Ãs –W ÛþŽÜµUwXžÈ.à#V;7°F•KK乀޴D[&ë·ËϧQU²âªe-aëznaH{µw›VW+0Z×; Šõ[c:ú ï­6lg¿úCä=öÕ¶ž¸agë]øÏ.Z.°-qŸìÙFs¸$ÈÕoÞ¾»\ü~ñë›7õâÓP:éjíF:}° ×d¦ùÅHKÉÇÏÍýò°ÜºîJœöâc‡¥í#êÅSbWuWÚ¢´ßeŽ5½}ð¡õˆcÕ»Õ1»%ª5Ñ·æR•©²ØÝP9tW7Ø_?â4ï“<üö¿ßÏßüwB OÙ1=”67 ¹z¸íRúµ6Xûð…jó…ìw âór½Y~Ütb³_-O¨­!éÕÅOï¾C/‰åîêbb%âkâIÈ_å ñËÔðt˜Î öçôKj¸Å…¡ï|Ãû(ÔW)“xXË–’yB-Õ$åŽ:¯Kɇõq öy•æ‚­nòÞW©ÐØ5æ™ÀþI.†©'#ƒÂT³ ê»' 6­Ž´Š•¸N½s_SÚ6›´ÕˆEÒDÆ4ñ¶Ë/CÂ××$Ú~8›'ò-v÷ÛÝ_m¨_iȬ¾¬6iF˜»ÓCÀK‘&jK]/ih”™Dì9€TW\6´‘êdž¢WFa2™•éØW„Œº–—âøfýÐU¤ŸÊ—äTG éÊlÄ´2Ê<ß·6Þ»#&Ûj!ÎôôÅ‘9*‰ëýáñ £{ìsóÍHð¦ÌpœÍ£úÿ¬—Í²ÛÆ…÷y ,”H¿$SÉB±u-\RYÚ¤|«T¸H¢D4úš~ ùsNwþè:N²"03=Ýç|M‘BðÄ^Ú‡Ž;Õ´¥žOÝt—½„¼”E%ºµ èm]îl&F^ó Ànۙɋ¾8•œŽçµ’0D~ƒCó¥`ÜQM¢ˆ˻ΰùa˳5Uhöy%w5ÔŸ¤Š`¥±n¡=ë«­¤4æ­uô¯´’Ø’j×läaŪMýÕTäK>ðÐÅ{äfߨWJMIˆØZd¡ $õöøœ®Lî5[P¿´tùæÛÌÒ “„^»ªÿÏÀ…ãʳá\¿|¨ö§]—×esjMËlü(Hš™‚œµþuK æüòSrà 1'ò­HN¼Yÿõ2”—¢@Í dÞ~ ¡ÉÒ|ÝÙ†>Ø;ùF§¿É¬¸>wt/[‰Wš­.·QšsKmÿÍ÷ï?þëJû.ÝÛmÔéžpÂŽ#WT£ ±–F´&¾Ë0x 4L>4S2Ó„ÆQg‹q•Ý&_ GXå 1$ÉÂwBt»÷ÛyLåY‹×ÏGÍŠ. r骚-’¯+Gj '¹¿}ÿ‡ï^taYBÚ'cŸÏXÆómñ+y'÷!ËIî=l?Lî 83ßäëQ‹–BwüÞÈø¤ÿª/d>màÍ€þS{y0÷Ý€£›Ò› ÿò`®ÓÇ£}uÙÞƒÍÿ¿LÐ{ó HüWò‹ƒÎe@Ô²ŸëòP&(Â9rÿ.hèÑü®FŒ°9Z޳ñÑž¹™é׳'¹›=ÑX·þ`ö|m‘ަ‰nï¸ärOÁ ÃÈŸºzqf™joÊ#éÕ1ë›Yé©–Fs†³$vMŠV†Aìú1!£¹–U&œ]â³óNU*íèD… oœ|ɼµ¨f!{,n[°Œˆ(“bo½×އ”ÕXM#¢î¹¦áçhŠB=`Þè…+'±øÕ^`hˆ]øg¡!Ž& ñ÷E’õCi0t³åp:OÂQÎö[mëßnóC‡šAkF K²ë+ïËwe[mjåsÕm¥Ò¾mx^*sPäai†‹ ÍûÇŽ¯pžEÙiôrÔÄܯd³„*AàIlÒC°ükOjƒJBù“6iÍ©“uíìqWÖ«³F8¨’,ï7a¿Ä0v'h¨’ä EÂøíõi·SÉ)TE§&(‘!ºL£.Whb“ Žh¯sD=šÅ¿G,Ù5›c¾ßçOA8“,€§1)g|#º}ALK7“\„Yä% fJÜLƒ8ÌÒ°oÏU»›nç¶²|ô¯€²1Óû–ôþ‡wÿøtÓ*¢ì¢pþRž=²#Y‡­‚ÎðçZ4´Áµà$Ã8þ [Êb Ô”Ý+²Ìàå‹Qæ'ƒ;æÃ’ÖPŽQÏN¨9þ´Ó»è8KzDuæÈ=±Ým~®XÜ$ɬ ²‘ªJ nŽÈíŸÊ_ª§J/© ‘o7(ÆÙ³ÛÚ(=ÈÜ7ÄÓrU¡ZÀln؆aäÖ™ì,ËÆ1ë³/e¢ˆËÖn‰šó‹Ì`ŠÖ¤ª¼sú°‡·g¹ŽPÏÍÔsÑ©e[ùÙb®MäªÿBŽjCUŽ;±U^j´eç•R™·ÑsÄ žÎ[4·ó~Îw§ÒÒ(‚e,‹Q$²Þ»,-²€fuôžÎb›^%?µ€ôshŽÝ£Ï–H™©ìÔ³õ’‡Z}aSç;¹h£TÏ4ÄÐuQù×¼›“²ž¾luãÐôIj¢´–Ü‚ÖíÉÎT¹­ƒ6ˆ¨a*jDáp}¤Z i[±o¢@aé,üme,›PþžZõ³N z:Å-ª'Lÿ¬ó‘¹:oé=2ŽfÙÚKáÁ C±¹Õ7Z¶y8ªÓ(Õw¾ÿeþÑ»¬íhŠ–×å·;P Øu”lu}MÇT“«dŒGSv€i½Já¶6Я1Û›Ë6'ЖÊò‡wñJ¾Ú–…dÉ4˜I¦ÈÐVKù"Ÿ¬48)'ýŒäÏ‚'ƒ Â¤ø`šòz®¯q3öu¯mö l•þækAáN_8º¯ËMÞYÜA@rˆºeAÈl1ÚxªÇF¨i·¤Œ´X”oËTá¼'J7÷©ÄÚE\ÕÁj©Qög!ô3UóÞ֚̈eÀ&¯ÒyäJY,ˆ0a¢k™ÁéØÿÉ«Wî€4[¦Ñ î€ýR”Ñ¢!KÕË^m&Iö¿û¢Ì³ÈÜ8=ôƒq >¦Š´i×Ûº(\Kêã /Ë_Ì 3xôkœÃÓ© ´/”dï&z[‹À=¯ÄDäÕ˜Pƒbw‡£Ü¨ìãuÜÒàó±BªicÇ$36,Òz:•ä#üñ7/þ^sõŸ¿ª ½òžŸV»ÏŸ:Uóo¾«žaˆîþŠŽDš´Q38 .nŽB)VqP¨Ð.þzßÝKj©èÖæãîåî’{¯NÖ²,ç´Â0tlzÇžŽÕÉ–%Só¬ÿB‹‰ˆ®qÕ³cqq¹`Rw¦àÆUrØË—¾f2¶{Š’ Ê"Öc-æK7û]Gˆ’f¸± bNЍio4¢M]¹Œ*G5ôbZaÚìªs+çƒr,Ó¸£|Ø»ÔÊTHM],ÆÛ§&Äí„îš<”¡å|\/Фâ‡\õ÷¬o´}ŸÍ¢bؤb «;ÉÂV¨6èºÚ3ô|p{EEPA8ÉäGAàϹØèeƒ¼ªP_»ãä-À “܆ endstream endobj 1094 0 obj<>stream 2010-02-23T23:11:37-08:00 2010-02-23T23:11:37-08:00 2010-02-23T23:11:37-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8430D4931321DF11A166B14B4D8AAB0A uuid:8430D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1095 0 obj<> endobj 1096 0 obj<> endobj 1097 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1098 0 obj<> endobj 1099 0 obj<> endobj 1100 0 obj<> endobj 1101 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1102 0 obj<>stream H‰”WYoG~ç¯è}›Ñ†£¾û€-[† ;FÖLò`—¤$Ú)‹Tÿû|ÕÕ=3ôµY»ª«ëøêè%.'§ÏÞ(q¹ŸhßÅ(‚ óBvJKið«MJIÜ®&ê¶u$p¼{z¶÷b±3È…ÄB†hûÅvâ¬ÖuØpÒ E‹| |k¾fÃ#Úò]òRå=;©yóñlrz®…³‹I"C" —%p|v=‘8<…ui¼˜-&´‚ϳûÉÛæüy;uoÎ_ó¯x¶ÚÒ*5«GRsÛN~æLv…­ïBó‡'Ê7jßÍ^À ÃNô¡ãÃÕ¶óÀGÌž°'ÊeO؉ûûûÖËÎ5ÝŸëÍ:ÛwÍŸÝbwÕ>i°¢@J‚hÚ=?B!ßÀ‰ƒõ&…vöaðzêl“1bª:­W ó¹ÈÿúL1HÁ‰vJH<º0Š\Ã7QDR w›Ÿ„fR*Y°ªî"¥ì1-L0¤ª3%ë:'ËØÞk؃ßoׇÖuªY‰'s^åÅFœíZßÜm™IîaÇuºÙ.ÅVó%63óëct¦àý ·¹H½Ð ’:ŸËñ÷±­IžJ/@ªÔãé“Ýâîzµ=ˆÓWg á<~r6ùeÔÙä^B~¨k”U*æ:Aóij¾b%žà‚êd âz+.oº•ØL\êP1Bg½ílàì|Š’ y·N‘]•|mÃï˜p±³ÊŽL Œ¯M|ªHI (˜*jÞáZ?йúà\ÌÿåŸøÛA~e©³~l g|eà—†àmg]êópÍÝ(1^c@†¿Ÿ˜ª±¸4hì}¬Ç (´ËÃZ¡bé×Ù”õa€XÊñ}AwI¹<À­$‡‚ìL$`sC©GTâÄ8–Hdi%tx5®ÇÞ z'‘—ðC+;–ðt?Œ:ÂÈ $h* ~”{öF|/â7g?cÚ½ÀTù€K¹¿JŠWâí;)–“‘7Æ¢0zÞL"®­dF2•ÑËDIõ-ÊM+ò3úΦoÐC1¢˜üØJaŒb(—%¢.É2]â Åbb›F›,+0™6…Æ«O$ç3ÇJV™<›°õD¡¬6zŽe§ªu±Á%îÑÄ儿8½)6˜rl¡ÄèCÁZfÔ U9]‚Áºê| HW`­4ãê}êi>` LÄÙq(5›ÉÕdœžØ'0–ÐcI`*Ý3 ÷~ѬDÓˆ9HD¦kðúˆ´©?P8¦ÈÛQ‰À@ U£½Y^JFCùÀ.ivA¬c¥µ)'ê|qÚ—àST_p¼b;ÿ /9ãS*êor0†5tû6ÂÄ53_½>(¡  51d:¹b¨d^íD[•#Tå3–ëO;žêJºY@3"¶ ­¸þ¼Q=]êÉû#‰X"Í *䃺óFa­1©*àEÚ$;Š/áZÇŸÐj¡GˆO8Ç’a\ädHïŽh-C=Q8¦T¦«mìÈš6Õ²°e–eÄà%RW*×”BK²/¤RZ©øQpôøPƒúx6á9OŒ2èFy`šOp¦ Žp¢GTœ6®“ê_­£!‚0ô³âJãJ¬”R@CªŒøÒ aó@×D NUÕPSyÔ | $Ê{UÚ×é¥.JXšŒŠaÚ<õ Þ9ËÈêÒ0‘hßÏCÍ@ÍÈÙÀƧ†èÒ"II$;R@s*™ b\H¹SQ|6Å@«GQ¦ò~©(Ð…{œøD¹Æs´’C‡TŽä†Üa±ô¤/3‰îd–¯(/kGqÓÛ¨G!`„2‰9QzN3©J»0F&OêrO–7D}¤úÖNGƒŠèÒ ÁIp œé± .…êD-•êc-¦!ŠZn5ÎZއR¯Px èbßÖ‡èZ¤rL‘/™uZ|Ñ <¬ž¾:ç×é³7J\î'g“Ósˆ˜Ñ“ øRðŠÆDPô,DËÍ®ñü¿Ä‘$b1™Ò s`v?yÛ<º¹Ù|«O- ²¹›Ö»¼ÚŠGÚw³0aÙDÂã'[È 2€G PÏêI¡&Ý´Â}UÏZgšu«›ë•XÚ)é­oÊrÞâ¯ù¸Ú·SÜ8ìhóŽ6usÓNñ©Ò,iÏÑÃJ\”íͦڬì bÀÌœöbs‰¥(ïp06«¢û¶Uø‹¹ dz)GC‡Äùós^½&SqmZ}#Hè‘] —5ÏNX_èõ•ÚÆ»äL£HívX”ŽÌêÿ’~ìàÿtúoñôÓÝœùJôoÏ_¿|Ô²8£xbóôÉ?J[(n‹VÀd©Ia/ÈæçÝaõ }ú4q!oá5=@©ƒrOª|Fä^®.ð Øî×KrŒ*‹J{Ç4Z–\ó ü]ïÅ᪈‰Íü°Ú.>‹Ýk¸¸Û°à2°ÄÜÌYþ’ÕÞÝ, £ªÝ^ŠåÝŠy|Õ|»š/ǬÔ*#wæ{q½Ú’ŧ¥Xo¹¦OÏöxqîyd‰ýb;¡^LÆä"Ï5H”¶¦‡®!ÈαÀ7-Å<´™c‰C‹)-0<]OÉRˆ—úƒ-nv²€ºÊyúþ°“èn_‡r}ë9öíl·]lîöˆõAkiœýÖÒù—‡Ín3Ï…d®&ž9_±(ƒ~æàQÔâÂÈj‘fB¯.ô†›­Ùý©i ýÃÕüÇàî6¢+–ÝSósó,W{æ]nÂh÷¸¿Zmig.Îmiô¾|)γÈó– <M»ÕÉiõò‹éóëe×Û¸u„áûü ^’©mˆ_¢X¤6ûä"»ÅÖAPt€¦h› E "eE¿£ýÁ}ß™á!%ÙÞÚ›"ÏÇœ93ï<çc-IbË_X¥ÂUP\!pÜÍÞu¯ìÚ!à}Ôí^\ÔÈ_Ÿ{Qø& Ì©ßþBKŽÈ) ÃQ¾{÷:®xПEPjújdÌ\>}éÝUr DD:óódû¨=p }Kë—º'þ!e˜§[&º¥ü\WE߬DHG7ôÌʼMtk-è õ£˜p.áN²ÔŠN3¨k{¹YŠ­JTW–¢ÁtÛÉtcJô ¤„•‘\Ü*¬æá“ë*D$e%V~ü*¤1ÑwÚâRÖÉpH­nò$V9ùXHˆ(CŽR©R­.K Ѐ°. ÀZÛÈ.…Ö‡ùáÙÌ=â-u0pàKÖGê7Ó4–Ø¡rTâq¹ 5O‹þdîì(Þ`{MÆOã:.~bžÎlt7µÕ+Zœ…pù³Ye»ë»SÁ?×h‘¦Ï×ÕÐÕÁp¬ƒ®°kIÿ J5¸¾§ssôXy ‹ùóÁªT«84Áü§/L@CéTJÀ[( œìebÓŸ%€ëyÁ ¿ L3¯a§@ÁÀò 40’`ˆ_Ç€x¹´šo8`,'؇8Ê^ :)“˜Ë ~Ößë]ßþ?i IÃH $/ÐFÌh i <¡ä¨ôÃFÊÈV Cï±+ôÞ#¨²1±Ø%îÆFïî…ô­Û}fÆñ?4‘Dûp@¾ :ÖÈàNc‹u~¶Ç%¢øPh€Å˜ì FkÕûúþ‚;›E:¢‘#Ì2¡0%kä©€ÆØ=Äøm˜‘ f„+ ÿÄH‚Ššs°Ð B%dH"ü¨­S¥ÝBYì¥áȨqÏJäµ½ŸÅ *“©¦<¼ËÝÈMeŸ¥QQ-‹°õεK«Ðoò5p©†“sÆj©µª khä·Ri®¨~H·÷?ÿ-HÙL®ð z¡OŠ4 œZ¦ô&§iQwÚÀÔÃPµS£$VUÙY™µˆªÛAI9•‚ùDüÂ69ë¾Û«ú ’Ò"'Ä’Ç¢WDŸ¬Éc!Mu‚kS©øœ ŠÐÀ dÝÀ–©T[vf"§ßUÖçš½ëpIꫨ­MãÙØ³ÍêÑJ¢ßkÛNdY¤c¬ê´*ÎpÌÄaE8a…xØÿuÇW …÷¶Û·®yí}F×0{÷•tˆÓlFÜ GÜ‘÷¯Äغ…ÔÄj{¡h×Яl4Š»òw gÕ¼ƒ Ëg(šž"äôðrA®BæØo[±©Jøƒ“¯¼ƒ9H¯€ç“ºb@j‘$u#Gñ” ¾øæÙ\OÍþo™çid'üüÛ»7·o~{‹™Ÿ~ùx{ŠbÙÍ*Jg˜Dî2ÃÉ/ý,ewJ¨qžF²çF”?ƒyÖ‘*ˆGžJÁûÐz{ªçíR:ÎÏ–Ý$qœ={4ÿó;;™kÙ 4&ôËV¹;U_?´ECUazasÞ¯’‰OÝS½F}@É($LêRã^nDù6Õ¹,‰×šÊk÷›»j'Er—h™†Ø;Ä2o:ñ× .Š™Xlt¹àLÈl@ECãZ(Z õ7¯¤ÿ²URÊãÎ;ÃVÑÕ ¬½u·)¼W—+÷ÛŠpF֌ឧªb…Dßïb<ëBPrzm[k¹qT˜jL×hv\Q3V^X÷%‰ìÅ£ 5òs?.䆈WNוfÑe-Q!ùü-‘"QŸ&Ñqg;Ü$Iºrµ˜ƒ4á¼qéWs+r¾ ÷½m‡®O+úí­ÑßuŒ¢Ÿ%™ø7Œ#WúeÏ0wõ×ù ìÎÎíßÒC2ΙŸ3-eÜ7:äA8“ƒI‡nÂ|µzA†fÉ }ÍUq<Õ‚x¼½d۵ÿˆ Ti0 aNDðŠ,üÝ R¢ÚºM}æ8™¢cÛ jŒ¿*[¼Ÿ ƒÎS6JYiêŽIÃå!(¹GñPҼЄ€õr” Éö•tK>Eh¥_êVÙÝYœÌE=rѳ2pá8ÄOR£?|’<¾Û£tQ­ð¡%Ý`õ¡€I§~ÛºÍÄ+Bs=Gëò1`ÈÂÉ:åhÁZªúD.Û`—²Ð¹šÉ0jàIIw|š<Ü3Â}tL•´Åu… ^Ô~5P»nKVô:L²`]÷Û5üèÝUÃa…,ŠòÓè<Úª’ô3\|Ôf©r°uÁ–ò}€¸RWåÝ5‰üÞ~:ŽZ‹YE9ØÀ¢™$CÌ:/‡ ƒ®‰Œ˜úÊÛ‡çsÿÃe,¦ñ2tþΦþØ ÕŸ5Ccë´ðÂôPÍÉŒÈJ¸“4K¿ÛG(Ĭ o‚0JÑP†!¯Ì²&*Ìâ:ÑŽ¼› †#b"ù k3>©ã¤½ CV3ìp®²j‡Ûztà%~(ˆCy> sƒ·;öˆônWI^h£Y$spwßmŒ–®#Ðxn½m´ÌÜöº§ ƒÑmÅe{®»5¯l¨±Ìá±ÚU<ôûYˆ(Â[ò r§iÒ(‹-¦‡Ìc˜ Ñj=5¾qßéà‹dÚÙ¢ää9–¸’FËû×¾Gã‡v4¦-U ¾=x¥¤¬ø’X!§P!d õ{|ÇV‘6p”0±~Ë>stream 2010-02-23T23:11:39-08:00 2010-02-23T23:11:39-08:00 2010-02-23T23:11:39-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:6C6822DA1321DF11A166B14B4D8AAB0A uuid:6C6822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1104 0 obj<> endobj 1105 0 obj<> endobj 1106 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1107 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1108 0 obj<>stream H‰”WÛrÛÈ}çWÌ#°eB˜û o±´rì*¯kKLöÁ놂D8$¨%iÓÎ×çôô .*9ÉÚeݘî>}ú@ŠÇÅÕ›;)O 媄·¾²NÔ•Tu­ñ«tÓ4âØ.ÊçÛÆÒùݫ듛”¾n‚¨qQû`´§M¿°F]Aok#$]D#D¦[®j\-ã=ªZñÍ׫ÅÕ­R¬ 9°ñÌWûE ã%¢Ô¶Ú@\]EÊÕgØi¶Pá/#Q¦r€.V7l,-,.—KéêÊÕ·n×õåÒâú[µ9ìËO«w‹ŸWȪ @”wGƒAŽ&ÀÅñ¯ª:Ì1×-á&ċ۷¥©|qû!þˆ7m ]´åÒÇõùp_]%#Š!/‚îµKY)5ä’ˆÀ•ñìûïåÒW¦xSªBúr è…}:–Ké ïvB6¬~%TÍW²Îÿšê óÆRnuÕXê…±¶v¸‡º¢À“[‘©˜¢[‘,º #øÕnV`)s^.qv½¥ébýÄ¿ç–Âþ%1•*a+œç‚GŽì@¿c_wOm$|R~·Þ‰ÖœºÇ^”®¸>ô§îžu Í_¬ÏTÑJ(úS¦ìôt'M᫬°^,¤ÌûIôÜ󵬌BªªjŒ°ŽúJ¦¶¿º9l¾ìÛþ,®Þ_˺¯o®¿NjÑhü¡á«uCC(”!V³¬h–3„Ê7˜Y´jã•Ø/¨Ôz§+‡1ÞACólf‹©VƒÕˆêÊ5¡¦nG‡+)¶l\ꂇ±¡R¡™†™h^ óã̆(ÖV®¶6J²úÿ“y! J¥ä,̨y)ÌIF*L­Xß'ŸzV‡¦ ýuÈN¬‰Ó ÐätTj¡ .ѬôkMÃ>•|›œaÒ ÚŠ8EžÒFïI3ÖOƒËZ¿¤qÃÊÆ†4ˆU»M3œq•öö%Í$·?xa²Ä£U¥•‰gÅRÊØ´[±Z-.øivVVÒÙi¿š€?ÍÅxœ™e‡÷c´‡p2êàf¹ ±†~3_¯¨!”ϬÂ|6,ÕHÍ«k‰îi93<À•4QöI´Q´R'9ˆM4€kÖ8>Ф®‰²Ëþ0?là+iè1Nr` û„d_'Ë^Öxöé5ÇÐÙ"Ëx‰JIƒâÔÁ8rÎÊà}+bLØfŒÉ1/Vs§“l†,¤bMJ;ÝOY[íÏlN„Dk2‰fí™ d¢‰4»™†J³[l“òø¡~.eîSý|š{ÏLÅ>¨Q8N“è¶ ŸhL¢®±3Y»Á"i”I'ä¬E‚Qi¯4¹žÙ¨S9\`ubÛFïòMn*Þ:èôZ¦ä½ižitìgú03‚^Òd+l/û’‚ùbRñF.C±8Æ!ÌP4‰yFéñ*nfyÐS“L±ñÔ” ÈÞ\±…Vì#ÄêBN•£·ÒADñQ¾d4Š#è4¬¤# !]H*í‚1šø„³@MýÐO©ã‚ã¼™ìM=e ò³-…g‹f æ²S“j°Ì\¯ñ×sôÀcØaôE2wÕ˜‡¦›3Í}™™È;reqÕLØ„lìHö(æjdM*W¶ÏÕœÏh•w¥KÓ¢ÓŽñœ†ÉåhȈÈI~}Ä'f¢!Q›G'®0<ÀLÞuÃT«š_>AoÌÓ✟RÍ섯ÃÌC0þYŒ&„ 4™œ€DJ7I‚ºv’£O¯6™ȹPÚ%›hÓ ûÇ¿ÉVåqNXƒÊÈtBq)|M“–”Ë ³Ä³mý$̾ÕyÖÓJ2ÀzÉCc8>­í´Øëô˜6Ì2½b˜IXNCbäìW2{ȵcänÈ(r·d”¹›Æ4r¿åDS;&r»,¡m>ír¥í„æ,OG$k¸TÙC.å|"6xÓúùýõâ×ÅÕ›;)O‹×«…D¢µà+¼vz|G¡@«=¾ñU«Íb/½X]Å]{þò$Öý½øÛaw/Vݾÿè»õ¹;ô§rõyquk„«‡E“Ä ZX,±‹à<‡¹,>¿mÛ^<–È»hKD Eßá¹gX‹Û··ñòC¹Ä[i!.]Ï[Qº¢ëïK´¶}jûû¶?‹Í.ž9lþE‡îûu¤XP…ø½À­P\È›*¶íyÛåæú½`Ç'ºã ñåÔ– ¹¸'†çƒ(?­Þ(²¬Q×Õ §ârR讘LTLå-Ž]¹DÝ‹¯-a9—K»%§€-.t‡ðStçöêXâ{RR>ªÒÅ:y¢„¢dt¢+ðp8’¿þpþ½$M(^EÿÛVlƒŒOÖ ½FUpƪªèz@BópȦ8öëréŠ]‰—yü´ªøqúÎb¿Ù"f 8ôÝ¿ÛÈ);rµeô1; DÌ້š‰îØB$GD•,bäû’Î2×ËŒýåj ¼N”ƒ *ï´âQÑ—5"ž*”NoÁ ~ÎÛŽº¡‰áÓMÇÖ¬=ô¯_%}îØn1±-ę暯èÀh(JGOb½Ó±öÛS»9·ÑÉ¡›öÈ|QõѰÑ)éÕOœ£ÍƒH/V1IòW´1•ǘA(Îíñ—ˆréVÏ×ç-~T‘Z!p¦ ÀùÛ^°qÇ]¸ÿ³üŠo_ÖÇžæÏ¢}ËGOêË7-m&šÔ צ,6‰o¯â)˜|›uðsZ?´»ï©›sÌçݬÇJ§±ìûCÌõ6Å}%VÛD÷f¼#ð×Äýد®8Á¼e ÖV´OÉæðÔè?ÔWÝnÚH¾ß§qeV-xlƒíæG¢ ìFZ’*!ÒV{9Ø+Sã4É>È>ïž¿LÒdu¥Ò+{Û!8)lp#”ÙšÄvÞRžbjAÌ­fŽœMgà…3ÙÌz f h4^üÅ{NQùˆÁDTˆ¬HTæ}» °ií™´2Ë2‹È¡%³? B·wdqw2Ѭy¶“F£­ûP—ÑaSÉ.w[7àèP’+|oh¿¦–wf¥ÐÑÆ¶*︈DX,ÅçØ–kÑU;àxTÓŠƒõPÞrÇâ{µ%SDVÈ™óå?µ­â60iõ¡'È”¯® H5VPƒa¾@`n¼4"ê­9÷qÆc›q½Á`ΧÏùô(ËœýÍ­PB‹rÎOÑçЙª+ùƒH•P#:Ÿ) PÒoI€Òîó…¼Y ªœqÑ'ä¼5'À`²³h¿ ©± ›‡4™Í6ÊÚÅ @¯‡ç®¡EBôË2!' K³µOnä1}’‚oøÖ»o‡ØÑ`)©?X¡àXåÊ ƒ7mD†µ’gr`™2øtG±ˆxVðJG®êy ä#žLe;'ÉbÙ¯¥„b_æ_Î,Ÿ•—Ø/0ªA;.§ÙöªÆîîû Úèu/ÜѢSͺóé}‡Óâæ¾{W]®hµ¬«Ëùtߥšþ<þA‹Á'u ´g¨Âíè¨Ï˜B½ ’l͆tì† úU.Àoà wãˆxÕák:¦ÞvÃÁøû„FèÑq¦J¿§àžÍÖn8óºÒûŠ+ìß“ÒÛ9G_W‚MG7 ØgLÄ?ºï)?€±ÐCXüš"b¢-äDz©-T,ÊN?šõ­LŒ;‘3ÒãʳÌÚó6‡£IV<øÀÙ«*O@š¯’úzB·áKjÞ%{ð-ÏE@ß¾«MñU4§Ö,‘kY•°¾¤ÃQ_Ö¢Aòé»çÌé´ËŒ:9þmïyDÛ Sõ˦þ¬øã‘ñ~dœŸã¼â¼†þGAülleÝx‰„tuüoä ÏrPÄøxL“ÌJ<üõàp~©€$çê¶Îd‡: §ÄÎXŽ.7F§*—pf¡?fûtZ®™w ¿!%•4Ixr› ޱ¸•ÇE±‡8†OZÃxö€ûTRÈk:I]e2Ýõ Ï…4ß!½åæqj'O÷ yhWÚ|œáÉêy}aNÒ¡Þ†tˆðÉù„Ò©Z\;œè5ÕN—ï/¸>hQͰ>-Ýyºè¤ Þ7®’ů-ÅÇŒ !ãsZœ^œ}î=.æÿõò´¼­·.ކ´8ŸlÝlšlr<–÷‡Ôäü’`òåht h1:;«”ywN^´ØÞÉ©j5nh©ýýrI‹LUY’¢ Œ³7ê©ß0Û²«ezx¨Žlõàã`òûé Ë¿OlôpòË¿ Ût- endstream endobj 1109 0 obj<>stream 2010-02-23T23:11:37-08:00 2010-02-23T23:11:37-08:00 2010-02-23T23:11:37-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:8430D4931321DF11A166B14B4D8AAB0A uuid:8430D4931321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1110 0 obj<> endobj 1111 0 obj<> endobj 1112 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1113 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1114 0 obj<>stream H‰”WÙvÛÈ}çWô#0g÷¾ä-–—xNó@Q‡$’²ìŸÊ7¦–n 9–3½PUèÚnÝ*4”¸[¼x{¥ÄÝqá¬*ˆh…ÖÔâÐ/n/^›Ç]¿?‰ï/”’âå«‹Å‹‹£›£]2ð¿Zš¤áWY¥¢8nöèU£W%®»ä’FuÆi±[¸ØY­@á:£­Ø.¼él2µBvÒêÉd ¹ÈΧ(-„‘:X§0®J^Q¼o†Ð¡3QU!fÅs!¾]Q‰ ÁLÿW„lò»‹ø*„J5¡ 1+ž ñí"‚ìLòλg€÷]²ö÷_<æŒvϤ˜=ž¥¨LÐSÓÊúu6‘Ãè;o³=fu—e×Ep»]„Ô)â*=ÜG?ËQuÑFê‚‹ø Õ%ÀåIÀx½~‘âf‘ ‰ÁÍ yÊàj‘l炪Ždy:’|gCzF¡U§òSIÓI©žÓÌ•(é:‡+&9v”Œ‚‡ÊÇêR@LæQPäºhŠk%‚óŒbr °Qgš,ôÄ&™Î4ó#`ŸÓTeab.Të~LÅ4¥m§}ÕV›QÕ"PÏ›™øÜÖ-@^ŸkJ”Â6LÄꚠʘΛtf5zUE‚#)œ×ãº`"õRÃÑi¢L“†äà³lIN¦“Ýf¾•0ôšÃ+v+…A¿¦„0¨Ä«û^¼i—ÐÀæ]+aøE Œ^XŸ€'8ÃGúáˆGm#€c@±ØŒŸ6¾ÁÝôùW¬‘c¡9¶Gm×âç|v›÷ŸÅ©§ ðZ‡÷ši* ¼{(¿Íý~ÜŽwh›/ü³§ª¡TLóù5ýf¸eŸÃFìûÓ–ùÌé{ÎÇ7{®æ†3ÊÅšÄëþ>Ÿú4Œ‡uö!(ÁeÉ·'äIcè&D˸‘ ¿Ó¡Å1{l H›Ó#¸ÇÖb^˜Eh¸¹ãžÏïÆ8¯xÛÙfÛµ¸{Äê~`#±ÉáhéeØ<^ÿ¶ 67"4å¦'ë#‚ð ¡x9å1/È Â£ûЈۑõâȧ!;ú]#¾A’,NH™woH¸Ädk(Ÿ $â³ËÍDZµ0p `öâËøÈ̺áÈé.“:/QàYf5ÿÃãT¥ «•š'MƒÓâeŠ}h2ÎïÇ›~{ü­™±IU3£ç±,^1—"ÉÈ% ŽØî%\Κ‡‡ñp:ŠÓÓ(N_àmú£oÝ©í;L‡žQŸÏÉõúˆX„LR8€“‚äŸ6!¡?y?º¸üÛkîÄê;FfzÉ*;wàE”7¤ýåxêw‚É£šñc¿9‰ñ˜Ñá,w7#‡PÎåY%ßfŠ8ŠXƒ3¸5½XZ[ šëm=¿O÷â§?®yõg±Þ߈ŸZ¥,¿è±¦Ãÿ¶é2µJÔ_Íß´ÐÊÊ|‰Î qèAσÈ8Þ2Íñ¬†AI烶äÊžùHtìyb6‡^÷7XÀMZ³b‹ ÃH Ø$V™qÓ´†ˆUP³2è 97!—'dÕ&þ1;ô7÷ã„°¸F×܇?Ô=æ DÙîèCÁzÄK%áášË‡WLÃ4‚a%žäYŒ0‹tïS«­s…7¡6Ý µËt‰‘š«~‹Þ,lqÉÜ·Ä(xGì2ƒ-ý—C«q³2Óìròay3>íÅv8žrãszÊ™¼™ØiNk¹Ø›åZÅÌuÜ^8GY¸þF‰_‹-®a¸¨â¿äWËŽÛF¼ç+˜ Hñ)1G?€1ÀXØb  %êS¤ RÙlnùóTu÷ðå]'÷\vÅá°»gº»ªºk¼ƒv=jÛ#eYc„£¯v†$¢ù ¯íØ8½:£ë™B6Ú% X)FTqRx¨•’F!En¢>éÕĶÇ2i2]ÈBÓà§À˜>Œq™f {£cªí7g"_QdãŽÜúßzSÌ¥äÕ%I6ÜUÔkÛ0̜Ֆ֕k–ÖþE÷*s^¤sã=ö.Ì ]v¾¯›nL±)ÛÚ¯Œ¥ëí1 LvFêÓ_€gõ° ÑðÃWÅ#°ŠgZÐ ›ø%– 3À ´ìŒsÍ duæèìˆA“‹HbG þm[Z?ì»"ÔP°°¿Õ vÖ)ºgtÍ›."Ó+µ\+Ä]÷(…¹ÀBC™>S¦O|í*Ø„Aä€#%⬆L[  «†[Ø$—žTR˜aá¹8ÕÚvÛÖ$[ú;“ …J¤¶¼JæbÉ\ŒÌ ê›finN4­éwõ< w—›ªÉÐQpI-ÃqÒD¾ƒ‡î¶G1Žu‘A/žy-$‡»^‰[R@0Œtɬì¬C•€{¢Z³ÐñßÉásÿµ;  ǸöÆ£Q6ùls”’t4 ^ôÑsq3ŸÂÞ¶€ÃúÌÈ}™¦0HçìÊ}q«:ظj2?.„ÁØWÇÖKæm6xD½$\%é‰.+Äš‡“<ÖB§™G`\wJëä:z ©W\.•Èpe×ë·F°ÿ U¨}•pÄáJ?¼›Ì­Ž‘sw%·dDødüw¤ãŽo©Yd¹æy([¯$‰_EMù:CìOˆŒgt°ÃMœT·UƒÙá£oR5W©­ï²t5Ö©IBþ‡w¿½|ûcpÿû mã»,LÒQv7ýQL| <̶9ŸŒâÔ(uh°'“. ®—¸±°ŽxÏ£òçÑXÖ ráhâvM°¦ä×BT h-çÆ¶* γDlêÒ¦Þ ¼#(Sß•ë>Øëþzº”v(È]+Rôi–ç<øš£åtƒJ˜ÖÀšM+t]ˆÜÅ/ì¹Z¨¤ìÊ@ @ ž0­é;Ø|¶Ò( Ÿ,„_ýw¯p?R “A'Öùr5ï;Àü_«AR÷ÿ®†|8÷]”ŽÊ Gªî™1$ªRý–#½”+^§FdX¬¢b$`·‹¾át0¨ U’ ”$ó¿$R=¨¼: ‹Ž­/Í¢y-,¯R£X\ª%ñˆ‹ícæNºZÙfï\È 1‰¸”°Þÿ ‹¯Þš}±“ã.”Wîâ('õò´äv%‚žrçjb¿9¨Ú\æT ! u°ãl1ž¹ô.]¦X{ŽÎâu8éÛ […Â8ÆÉ‡ M ª…\„$6}FÙCcÇVqjêí9œ$~q-²µxK7]׿ ñçútnÚSeïÈŸâ Âc•>wÞ2»1Ü éó¹øTá |µÃÅ…Wž/Ýc®" ØÎÅ#ßÑ£u3’®6óì|)+Ì‚¢ ¤¯×€ºrèâ0…ÃD©F´ž¨º¬æb­9T–ou—hÝ…“ºK¬î¢¾î"­»PêN÷áè*¤9Â\“æà¼<ý™ WbWj+6Ü„† Z6I.&ÛdëÙÝ þÔtå÷ u±~•ã:Và1‡ÄÛ¬ÙxsÖ‹‰ú¶S˜Þì½S­jW^JýUïÜàŒ:ŸÂAŸÛ)në¶á%„vwG]Çt±ÛnÒsòª¢z˜,å¸Q„Pbƒpm×MâÚÀùD$ ¾òš<ŸN­×–•®—²¾íÊÝB+ ;µ¥Ã± M5B|ìÝБÞù†&¹éRkySÀWlF 'E‘fbv›Â<4ÛvÐú8TfGÞv7½ äšèYÈejqd2!¬s }nµdÕ5VÖþ'ËıЫ¤¨üíë]Sê=ƒ{7£ ×±‹°‡êF)¢óÚÛE^š«tî}Dì#”SÕ-Oµ¦By:Ø I=M…¢ ÐËáPí¯ï¿ùG€bIåˆ endstream endobj 1115 0 obj<>stream 2010-02-23T23:11:40-08:00 2010-02-23T23:11:40-08:00 2010-02-23T23:11:40-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5J/zkB59ufPPn9NF0ktcadpchsdPij39e6dgksijvycBF9hUdcVD6b/KX8vrbyN5MtNIUBr+ T/SNUnFDzuXA5Cv8qCiL7DFDzn/nL7/lCNG/7aY/6h5MUhNP+cUv/JWv/wBtG4/4hHigvIf+csP/ ACaEX/bMt/8Ak5LikPp38sv/ACW3lP8A7Y2n/wDULHihkuKuxV8L/n9/5N/zJ/xmi/6h48Uh90Yo fnl5M8qX3mvzFBoNgwW9uorl7cN0Z7e2knVK9uZi417VxZM8/IT8zZvInm99L1Zmh0TUpBb6hHIC Pq86nikxB6cT8L+3yGKC+0QQQCDUHcEYoYT+dn/kqPM//ME//Ehirwf/AJxA/wCUz1v/ALZw/wCT 6YpL6a8z+XNN8yaBfaHqUYks7+IxSDup6q6/5SMAy+4xQ+LvL2pa5+T/AOaxS8VidOmNtqMa7C4s 5KHkoP8AMhWRPemKX09+cX5pWXlb8vDq+mXKS32sxiLQnU1DGZOXrj/JjjPKvjxHfFDwj/nGj8t2 8zean8z6mhk0vRJA6c/iE18fjQEnr6f943vx8cUl9fYodirBvzW/LGx876NRAsGt2ik6fdnb3MUh AqUb8Dv41jKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHK30XHkjOIlE2Cyz8 rvzJ1DyRrgmBabSLohdRswftL2kTwdO3j0w8t3Xdqdmx1WOuUxyP46PsDStU0/VdOt9R0+Zbiyuk EkEydGU/qPYjtlgNvnWXFLHIxkKkEVha3Yq7FXYq7FUPqWnWWp6fc6dfQrcWV3G0NxC+6vG44sD9 BxV8Meb9E8yflX5/vbKxuZLeWNZRYXq7GWzuUZA3hXixB8GG3TFL0n/nFb8tPr2pyedtSiraWDND pKt0e5Io8tO4jU0H+UfFcVL6mxQ8H/5y+/5QjRv+2mP+oeTFITT/AJxS/wDJWv8A9tG4/wCIR4oL yH/nLD/yaEX/AGzLf/k5LikPp38sv/JbeU/+2Np//ULHihkuKuxV8L/n9/5N/wAyf8Zov+oePFIf dGKHxD/zjh/5Ofy9/wBHn/UDPiyLPP8AnKP8q/qV5/jnSYf9Eu2Ca1Gg2jnOyT0HaTo3+V/rYoDN P+cZ/wA1f8Q6F/hXVZuWtaPGPqsjn4p7NaKvzaLZT7UPjipZx+dn/kqPM/8AzBP/AMSGKHg//OIH /KZ63/2zh/yfTFJfV2KHhP8AzlH+Wv6Y0BPN+nRV1HR0434UbyWdalv+eJJb/VJ8MUh812cvmnzd daD5Yile8e3P1LSLZj8MYmkLtv8AygtUk9FHgMUvuzyL5P07yh5WsNAsQDHaRgTS0oZZm3klb3Zt /YbYsU+xV2KpJ5v82ab5Y0eTUb08m+zbW4NGlkpso/iewyjUZxjjZc/s7s/JqsohD4nuD5h13XtR 1vVrjVL6Tlc3Lcm47KoAoqqPBVAAznp5ZSNkvqml0WLBjGOI2CJ8qeWdW8zaxHpthUE/FPOalIow d3b+A7nJYoSyS4Q09oarDpcRyTA8h3nufT3l3QNP0DSYNMsFIghG7tu7ud2dj3JOdFixCEaD5Xq9 VPPkOSXM/YmWWOM7FXYq7FXYqhtT1Ky0vTrnUb6UQWdnE89xM3RY4wWY/cMVfDHm/W/Mv5qef7y9 sLWW5mlWQ2Fim5is7ZGcL4V4gsfFjt1AxS9J/wCcV/zM+oanJ5J1KWlnqDNNpLsdkuaVeKp7SqKj /KHi2Kl9T4oeD/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/zlh/5NCL/ALZl v/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6MUPiH/nHD/yc /l7/AKPP+oGfFkX2pqul2Grabc6ZqEK3FleRtDcQvuGRxQjFi+IfNeheYvyh/MxGspWEljKLvSbt h8M9sxIAYClaryjkHzxS+k/OfnLS/OP5Aa1r+nGkVzYMJoSatDMpUSRP7q33ih6HFDyb/nED/lM9 b/7Zw/5Ppikvq7FDwj/nKP8AMz9D6Evk/TpaajrCctQZTvHZ1pwPvMQR/qg+IxSHzZZxeafKN1oX meOGSyec/XdIuWHwyrDIUbav2SRQg9VPgcUvuvyH5x07zj5VsdfsDSO6T99DWrRTLtJG3+q33ih7 4sU/xV2Kvkz8zfPGs3/m28i121ltLiycwxWJIKwpWo4mtG5D4uX7XypmozaXJklZIfUexseDDgHh b8W5l3n8dOjE/wDENr/vt/w/rlX8ny7w7bxw+rfyo0ry3Z+ULS60OZbtL5RLcXtKNJINmVgd14Gq 8e3zzZ6XAMcdufV8w7c1ebNqD4g4eHYR7h+3vZlmS6djPmD8xfKmga9p2h6ldiK+1I/ANuEQOyNM 1fgDt8K/0yJkA52n7OzZccskR6Y/b7mTZJwXYq7FXYq+bv8AnKv8zOEcfkTTZfifhca26nouzQwH 57SN/sffFIZJ/wA4w/lr+gPLTeaNQi46triD6urD4orIGqD5zH4z7cffFS8j/wCchPy/uPJPnqPX dIDW+marIbyykj+H6vdoweSNSPs0ajp7Gg+ziofSf5Q/mJb+e/JttqhKrqcH+j6rAKDjcIBVgOyy D41+dO2KHnv/ADl9/wAoRo3/AG0x/wBQ8mKQmn/OKX/krX/7aNx/xCPFBeQ/85Yf+TQi/wC2Zb/8 nJcUh9O/ll/5Lbyn/wBsbT/+oWPFDJcVdir4X/P7/wAm/wCZP+M0X/UPHikPujFD4h/5xw/8nP5e /wCjz/qBnxZF9vYsXnP54/lfF578pOlsijXtNDT6XKerGnxwE+EoH0NQ4q+SvLHnrVPLmh+ZPLM6 O2n63bPbz2zbNDdJ9iQK1KHbg48P9UYpem/84gf8pnrf/bOH/J9MVL6Z81eZdM8s+Xr7XdTfhZ2M RkcD7Tt0SNf8p2IUe5xQ+MfK2ka5+cH5qtJfMQt7MbvVJVqVgtIyBwU9vh4xp7kYpfT/AOb35W2H mv8AL46Np1ukN7pEYk0JEHEI0KcRAKfsug4/Oh7YoeBf842/mS/lTzY/lvVXMOk6zIIiJPhEF6Pg Rmr9kP8A3bf7GvTFJfX8kkcUbSSMEjQFndiAoUCpJJ6AYoSbTPO3lDVL0WOnaxaXV2wZo4YpUZpF X7TR0P7wCu5WuKsT/OL8qbfzlpf12xVYvMVkh+rSdBOgqfQc+/7LHofYnISj1Duux+1Tpp8Mv7uX Py83yZc209tcS21xG0U8LGOWJxRlZTRlI8Qcg+gxkJCxyLPvyh/NO68lat6F0Wl0C9cfXYBuY26e vGPFR1H7Q96YQadT2v2WNTCx/eR5fqfQv5hfmnoflXyxFqkEsd7dajHXR4EaqzVAPqEj/da8gSfo 75Iy7njuz+y8moymBHCI/V5eXvfImsavqOsanc6nqUzXF7dOZJpW7k9gOwHQAdBkH0TDhjjgIRFR D6C/Ib83vr8UPlPX5/8ATolCaXeSH++QdIXYn+8UfZ/mG3XrKJrZ5Dt3sjgJzYx6f4h3efue4ZY8 s7FWNfmL53sPJXlG+167ozQrws4D/u64eoij28Tu3goJxV8j/lP5O1L8z/zJe61dmuLNJTqOu3Dd GBaoi/56t8IHZa06YpfbkcaRoscahEQBURRQADYAAYoYt+Z3kSz87+Tr3Q5+K3DL6unzt/uq5jB9 N/ka8W/yScVfJ35N+e778t/zBe11dXt9PuJDYa5bPt6TKxVZSPGF+v8Ak1xSXsX/ADl4yv5G0R0I ZW1IFWG4INvJQg4qE1/5xS/8la//AG0bj/iEeKC8h/5yw/8AJoRf9sy3/wCTkuKQmflv/nK3UNE8 u6XoqeXIp10yzgs1nN0ylxbxLGGK+kacuNaVxWky/wChxtS/6leH/pLb/qlitM2/KL/nIK88/ea3 0KbRY9PRbWS59dJ2lNY2RePEonXn44op8/fn9/5N/wAyf8Zov+oePFIfdGKHxD/zjh/5Ofy9/wBH n/UDPiyL7exYuxV8s/8AOUX5V/o+/wD8caTDSyvXCazGvSO4bZJqfyy9G/yv9bFIQ/8AziB/ymet /wDbOH/J9MVK3/nKT8zP0vrieTtNlrp2kPz1FlO0l5SnA+IhBp/rE+GKh67/AM48/lr/AIP8mJeX 0XHXdaC3N5UfFFFSsMHtxU8m/wAokdhih6nir5G/5yf/AC3Og+Zk816dHx0zW3P1oL0ivQOTf8jg C49w3tikM68p/mZB50/K6wi1qUu+kajYW/mwE19Sw9T4Z5QP91OwUTV2oHrtigpfLb63bafyv3ng nura4fyovO6mNzqn6QC2lBIzJBLAFTgIkHOJ234q2FX0fgV5v5u/5UZ+nrn/ABL+jv018P1r1eXq fZHHnw2rxplR4b/td1pPz/hjwuPg6JP/ANY0f9qv/kpg9Pn9rk/66f01a4/6F19K3+sfo/0vTP1T 1PW4+nzavp1248+XTvXH0fi2Ef5Ss1xX15fao/8AWNH/AGq/+SmPp8/tZ/66f01S1/6Fx+sw/Vf0 d9a5r6Hpet6nqV+Hhx35V6Ux9Pn9rGX8pUb46+D1zLnnnYqw/wDMj/lWf1Kz/wAe/VfqfqN9S+uc uHq8fipx25cfHFWvy3/5Vh9Tvf8AAX1L6v6ifXvqX8/E8Odfi6Vp9OKsxxV2KvKvN/8A0Lt/iO9/ xP8Aon9O8l+vetX1OXAU58dq8aYqnfmv/lUn+EtI/wATfU/8Nfu/0P8AWufpU9I+l6dfi/uule2K pr+X/wDgT9An/BP1b9Deu9fqlfT9ai8+velMVY5+YP8Ayo39PL/jf9Hfpn0E4/XOXqehVuHTtXli rGv+sUf+1L/w+Ku/6xR/7Uv/AA+Ksl/L7/lRv6eb/BH6O/TPoPy+p8vU9Cq8+vavHFUF5u/6F3/x He/4n/Rf6e5L9e+scvV5cF48qf5FMVeq4q8t8lf9C+f4ms/8Jfoz/EH7z6l9W5er/dP6nGv/ABVy r7Yq9SxV2Kpb5l/QH6Av/wDEPo/oT0W+v/WP7r0u/LFWI/lz/wAqY/Sd1/gP6h+kPQ/0r6ly5ejz H2q9uVMVY+v/AELL+mR/xyP0r9Z/b58/rHqftcv2ufWuFXsGBXYqkHnn/Bn+HJ/8Y/Vv0Fzj9b65 /d8+Y9P3ry8MVYx5B/5Uh+krr/Bf6P8Arv1Zvrv1XnT6tyHL1eXw8K064qmXlj/lUP6ZH+G/0P8A pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:6D6822DA1321DF11A166B14B4D8AAB0A uuid:6D6822DA1321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 1116 0 obj<> endobj 1117 0 obj<> endobj 1118 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1119 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1120 0 obj<>stream H‰”WÛnÜÈ}Ÿ¯è—äÂCõ½›y‹åµ± x…& ó%3YYößçTW7/‚œd-Ã*vÝN*’JÜ®.Þ])q;¬´obÁ…Æy!¥¥4øÕ¦m[ñЯnV:”ÛÖÑåÝ‹ËÁ‹n€2È6 ‰ ¢5J Ýq嬰¦ÞI+]$#D¦[¾i½T鞎Ô|óõfuñV %67«–ŠV¸tæ›ÃJÂx(‰m:ˆ›§U¥¤¬7ŸahØpL œŠ¶Gîbó†­•#ëÕÓÓSíeãªæÛn¿;Ök‡ëoMw:ÔŸ6¿®~Þ¨¢RÁ EÚ?NØÝȸLZ¦t)qJùcõö—Ú6¡zû!ýˆwý¦êëµ­¶çÓƒøê•²ë¢Ôƒ1b­­ÇZ2¸²}ÿ½^‡ÆVïj]©P¯‘zåÄßîêµòÐïöBµ¬~%´ä+%KÅÿ£©¦AÇ‚uT›lZGd˜šëÆ{h,:<»•Š)º•À¢ 2‚_ãVªÔå3f—wÔ Smïù÷ÜóïƒðÍHåN¸FEæ 7ŲOήv‡ZÙFW€¼‰Õ~ËÝ?ï[oY/þU·ò‰ÅG RW§ª7ýÀF°+ªlr,P~Ùwbå@–à}ã„ b­,!òÏŸÄ‘‡AªÆj@ ›Ö ç‰o*ÏÃÅ›S÷xègqñþR’×o.W¿ÏzÔü£©”¦¥éTV©˜:…!×4ä%…&´fP¸ ZVÔȃ7Ç|ï¡¡A· øëÑjŒdãÛ(i À<ëÅV­ÏìøqÛy˜™æ¥0?®lŒâ\ã¥û³Q²Õÿ_Ì aÐ*­a&ÍKaþK1JcšÃˆú!û4‹>´MlÝŸèCqšÓš9%š.U&h—ž d¥_g[ö© ÒwÙƒ!Ÿ ²&=!t¤´œŠ(ÍŽgHãÚ…††ž{eµÎg"z4+~L\@0ÆjQGLxŒzqÆ66„…FÁ›Ç™@ó8擟—WâGÕ_]þ†µô+ÖÉgì3ÝŠ'¡¤x/>~’ⱨYà’5cWÐEä­§²f–-:â^Ô8ÛÈ6¡g°³\|Q3Uä vp°óhE3ÏÉÒž\ädZЊ0EÊ%ïY3õÏKi^ÒLyÃÊ%ÂŽÄ’Ñ'¶λhfg|c‚{I3«í /LK–xÄ «´2ñ Y+•A»«Õá‘âc˜WçT£¼›óÕF¼„y-6àÌ¢:¼øXçÂe‘gl¢_Ô2ÆùŠ|ìr½¢‡x€>³ŠËÙpÔ#½ì®#T˜Êqexdi?j’²è’è”Ér]2€kÖx>Ðæ¾M²/þ0?là)WÒÐãäÈ4ö ÉAfŒe‹ -kû †c˜bQd¼\e‹¬ÁqîÀb9Weñ–“✰Í8'ϸ8üɲ«Pš5¹ì|?Wí,t¡p2ŸˆÖl3Ì&Œ2¨ iö µf¿º[ÍÚÆþù\yÈý yî#5û ¢pœ6ÃíZ>ÑÚ ]ë²ñ£EÖh›O¨E¢Õy¯´¥ѹ>r2£í’Œ÷¡¶Š·˜.U.>Øö™Æ$>Ó§]ô’¦Xa{¹—ŒƒŠ71Ó!ÊóÀš4M¿D —Q¦IÔIŠãЖé’=TI££K'fÈŠ)(µJ²‚ÇÜpÃQ•bµç²eâƒi”3§Œ]œð¹Úâ!d§1ÆEmFž³ xE·‹:h‹éY¥ØxzŽäàF¬ØÂhöSw!çÎÑ[é(¢ùh_6ÈÍLVRO@H³Î;ÅÅ(¦mzÂLU §aäSf\ô\7〽iæHA~¶¥ðl1lÁXCözÖ –Ù‚û5à~N¸ãS 7ŽgQ8S²,¬šêpãts¥…—‰ÂÜ +‡«v†&dë&°'±t£hr»Š}éær6ØÀè²+}ž“wLà2liG›“ŒˆRTä×Gú¨b2´etÒ ÃÌ–Ý([†ZK&¾¶|‚Þ˜çÍ!¹<¥Úʼn ãÂC´áYŒ6ÆY ™š% *?+‚X;«1äW›‚äÒ(ã³Ë°™–ýãÿl«Nò4'¬AgT>¡¹!¦ÍKÊN³Ř"fÛ…Y˜}gʬç•d[1!€õR†Ær|ZÛy±Ëü˜6Œ2½bØYXÎCbÕâw²x(½žb6”, [J–…MS…o¥ÐLÇŒB¡ëˆ(a y—kãf0y>"Eí*J+—ÑáMëç÷—«ßWï®”¸V¯7+¼;Hüá'­.|fI-6þ„è|28þtÀ}4­ñy&ÑÌM·¢+¼ÀmžVÕÕùá±;?>l÷âýéºßõæóêâ­JlnVôy”¤ Šã[`â)Ž·ìÈ’Kò®°dáócµ¹ëÅp~¨|õX›Š$Qê5¶Zu8]×®êk˜¹ AAú*ßÚ>Ô*4mÕ‹ëžoìê5ÞE«Ûc-Χ(gïóÙÓ×Ýu/êO›_WôqFïÑRlÞp~SzŠÓÛŠÃ)æ ÚJl».¥h«m½¶Õ¹Ç ‘ÜnòÅÛ_Þ~ôwÛ¯»ÓƒØž9äºÄDšZ‚"92HWÀΑϦ; gÃîðˆXT?bbkTçÝé(λCß°_´T{py*ŇÒH3Fœ0*˜à|Úí÷bŽ!.¶¢ÛŸ†žû!¶÷8  ø¶;lSµOûªûÞíÙe®³$ô¬Nì€ 1=2bÆ3¡ P»ï@8e0 r_ %Òý[\ŸÛÝq7'2Ûáû±»KIg§ÒZMŸÏðHCä1Oâˆ}ˆßNä*]k ç…±åéq ³tâŸÄ‚¤Ýö8µ;åñ  tÇp2ô£’ò/¢£È® ¤JðlÁ²í@âýHm«ïÃŽÕÄIÌ P Ð‰¤4¡ö élµ»§kÐñüÔ÷©m ·ÈÂcñŒ¡6©NWí嘜 ¯Èpwì¨J_=^é6׺ùiäo7r:1¹?Ü÷(á1aè+ ¬«Wyœî³öÔ±~^ÕÄp±=^‹›bòå±?‚ˆ?:I¨çBïv÷4&總©5­vÙ§ŠÑfQbm‰= ¨eQFH®`w¼®×š£jÔópØË ÖŠôûïµR r“œHjx”ø* ÷#*6cÝ*`wJÐR2·ý‘ Uê6´=-ÅTíÝšd$:BÛNUX;°ù¾G½W°rH¸zî%!tDÓMu-þñ²Ëe§A Ã{Ÿb–¸¨¦ƒRp«UF5Æ-iÅ4êåíýÎeZ+`ÎeÎæ®/n´Sx"…*kˆÏ:õñ>¾˜Û.ë&<û» _áüî~ö‰ÿiøÝž*cšù‰&íöº˜ð+ €íÅø&‘³{ãF«jky|97¨í@Ϧ»·ã´>3•Î#ƒQ˜7ñèø×•COcáTéaU“è¡ëYòßJe³´ìžÌ pck프Æ)`B5Ã}; á_Óûö0 8¾é»Ð è(m7Ôª¡Õ«>_Ýö ›ý¿8h43<åy ÍYŒ”ëf|~²¯Q‹zD.6.Ć(}vž‘¾O¡“†³¾/rða…g™ü&Û“r%¨&¶Kˆ¢Þi޲€sˆKÙ¢o‹Ø^>ü0 Ñ÷š endstream endobj 1121 0 obj<>stream 2010-02-23T23:11:41-08:00 2010-02-23T23:11:41-08:00 2010-02-23T23:11:41-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:6E6822DA1321DF11A166B14B4D8AAB0A uuid:6E6822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1122 0 obj<> endobj 1123 0 obj<> endobj 1124 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1125 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1126 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1127 0 obj<>stream H‰”WÉr9½ó+}ªš–°/GorØ=îi±cÔTIfHYîþúy‰ª@[îðHVf¹¼|™@)q·¸x}¥ÄÝqá¬ðCòR '­ÐqZÜ‹ÛÅóÕââR %V·‹$$þ“pyEŠbµ[HYÊAJãÅj½ '‡§ÇÅûîòM¿tƒï.ßñ¯x=îé)uc-©»ï—?×,E½B÷Ù“ä»AõVo„á .^½Xs(J×û…¶ƒ×V/9år$ÄããcïåàºáËf»Éþ]÷eXvÙì«ÕB¨¢Ðpê–F+ä`#ìüzHø;Çœ[òý¾S2'ñUìKgƒ?±TƒÖsÀ‰6åG9ìß^+†*8Ñ/ÉÔ³O€GŽRøn+Ê’Ô#èîŸB³(Ụ6a5‰0û C´†qsf@¸ÖP(€£| 9mW_`Fó„¡·A¬´ž¸rñò°~Øû“¸øù…RZ<ù¢‰!åÔå ¥I¨× ¬R1Gjb¡Ó‹F Æi±[¸8X­ pƒÑVlÞ 6™V¼¬ž¶l‹|Š’J)u°N‘_•|Éü{.tLT‹Yñ”‹ïgT=hØ‘éÿòP¶üp߸Pi°&4.fÅS.¾ŸDƒAå+λ'€ÇаöǯKD»'B,ÏBT&hG¡iåBþu6eƒ`Ë~Š0¢/ e7D˜Ý.BTæj~棟å¨Ðï1W3ïà›”³'C£¨Ò y@FévA¢mh#›fX]C™i/®Ä÷2½zñ/ ˜·hà?¨Ë£PRü,Þâf‘PD̉ „*O\-’\PÍ’"OK’lHO(´T ~*ihV=¥™3QÔ(VMŠlØå`^*›EJ˜Ì£ ²éª©¦•LΊɰRÈ[ª3M }f“Lgšy¦°Oiš´(0šˆói¦)CÚ7eU˜Œªé€53 è½mK òAv®©^*Û(«[‚*coÒÙ.äèUã KR8ÏÇ ÁÄ\K¥»¬‰2Mš,_d›ådêû(ÖØáéÀbM ]Ùm–Qý,´ïÈÝHxEž=[К-ZéËíŠ}šeÏ¢=“SÝPÁ´BõÀ1¡CÊúBêy}¦&ä¨YÔl)•¤#ˆžÈ$Á•aŠeCÙAÀ±‡˜t69°¬ý$ó«Ü¤Ùži¨8ÛÅÇÅ\ Ð ÐìÞ¼Š59·<«pD'‹`Ͳ¬Ù;Åѧ§ ÎdjAªÆ¤²B·4°ª,1E!S8qú҆†G&Þ‘Û@˜Ɩ‹ã™üµ ³ÌÇD Ñךv3ò[.ÖÉÓ*‡¦Ûe3¬1‰’D£Ÿemb–CnmØ•LC‹ò§Ür©ÐB–cànÒŠ§C”ªÝDâAó çy‡1Ë!LbáUhÞûé¤ãý÷ÆJ“lÃ|vrŒtŽgYx05yb„‘… ‡€Aã'¤hGÀPæ`I—l+ƒÎ× Ec\³0Î5@H] È1e9 ޤv¡ÉuGΣ8‹ŒCž¿aFŠd4h;§t®A…¢—n*E¹¹VÍ‚\Ëf®vã¡ðaŠ¡ðeб2j΢r®æY9Yq¨¬‘²¹J”]lžåZ‹ª©ÕªJ1Ïû‚7¨:ìt(¢ 6Ò”=’3׊£t®äéC±TÁZ3kîUF]ŒJŸ(ÖDÅãÔ\¢ mqH¬ÇThÐÐŒ9sA„Qs `X>•J„ `ˆg)gM“$.‘Î7 àŠoãï°–‡žÏå‡\€ä©:ËsŸ°F–I]-à¾Uãß®A—šTš£ÄÍ<ª9j]GuN”FÈ4 xHygg¤ ;_±ÍXÒÍ":1aoªZ$–N1þlA®æd Ô»qQ1Qø2YÕ¤Q9W­œ¬@TÖÎPYœM¶r“Á®rÛ*UëjAÏ;c;׫Ÿ_Ї®¢Ýç«ÅÅ%–‰ÕíÃZâ?ÖÒ÷™ðÉÑÏj‡;ÿ¾~¤”F¬ÖV‹÷ݳOŸÆýÍæK¿Ô%îžõVo¯V‹ÿâ“PxÄë°{‰“ï~\üçbÏŸë#>'‚L‘¼ 2Dkêw$6§ô IÏ5Í·D‡a0¿ÊÂôîß?lÕåA%~Ñ-'ïKò—bÎ??Ñ6ÑXgéûœ>=9 ûe¼¿=Üï®÷ëQ¼ÙçÇÓæ°ïWÀ²fËÊUËüËÎÓ9[&[‘¬.«‚ö×ñxx¸ïU|Ó¿6ÛÍ_Ù´¸Þ߈_zƒÐý§Ýým¯bWÂÈ5¸¸´ì;U×ùAážè,\Ûêü- ©â¹fÔ/1æ;Ê‹Þ÷!‰b„wº–b{(±Q,©£±_ô¾+&èñòM‹Î{kˆe«—œyªîqÍÊî/ÉŒéÞSø¡½Ÿû%ºÖÐÝýf<Šzé)Ýeòž=g»;NGÚ»>ìo£Í/z¸§H-i°,Gµ¬aa»¦^*Á©8a£98Bâv¼>qeL‡XŽãv\ŸÆqóp¿Ù߉õP‘£ •êÄúáx:ì6œĹ…ÃvÊGqu‘ØÅ_ž¦ðJa…Ln[Š^uÛžªpx$°dÇjqºþ½¬ ž=æÕ´Vä‚y+RÉéra3Ç %į±˜ ¥J¡JÞ\Ÿ®sÅ÷7pê:±»þ²Ù=ìħ¦=*< Ç 4qí¨È†?_oÆ#ÛÁæÞ‡®ÅçkÔ‚éNœéŸ½íÄá¶'Ö‰ãõîÓ–_‹Ë7—x˜©ÀÙëWIጇY¦Jþ®·…(Èí˜Q²I¢Ä¤®ôÆff¶r5Žâ§_‰±T ´4‹êÖ„½î¨ üÐmrÑ|û%¾¦xWºœ ‡Ôšó“ØÎN3{š}4^ò¼£;>gfŽ…©t¦ôØ›Ëwâõ¸‘"Zõe©ÞÕÇq<Õn|¤+‡i «‰Ê_<>stream 2010-02-23T23:11:42-08:00 2010-02-23T23:11:42-08:00 2010-02-23T23:11:42-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:6F6822DA1321DF11A166B14B4D8AAB0A uuid:6F6822DA1321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 1129 0 obj<> endobj 1130 0 obj<> endobj 1131 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1132 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1133 0 obj<>stream H‰”WYoG~Ÿ_Ñ»Q¶ÝWõ‘70‡ˆDäò€x@‹!Fö ‰ùùùº«z¦-IÀB3USçWG÷Zõn:{zaÕ»O“‹:g•(iŠÊhëŒñx:_JQw—ÓÛÉ¥þ9PX=;ÿÕá˜É”¬ ^LÊÁ[õépœ(¨à5ød‚²õ¥)Ásýu‰Æ¶o.kãøãÃýtöÄ)«öo§R ª¢¨I@}3(ïàÅ °ýäþ~ÚXã¶û÷Pô¬8‡…?Å»Ú?bmKUûåæþþ~¦þru}uÜîï_ôáöfûjÿóôxÀÊ H¥¨ š’ &¾pHN›¼Ú´pkà5ä—›'϶A§Í“_ÛC=½<âÅo.·»°¹{ýùöNýµmQÌyÕГ÷jgµss.‚ÞBbÛ¿owI‡ÍÓ­ÛØ´Ý!ô ©î¶;Á¿ºV¶0ûGå ¿YÓ3þ¢zŠ¥@57£ ÕfXŠKó7>5¤² U?5°êKU‚]g° –´ˆ³zðØh»ùpÉÏã~^}Q~ ¤À4À¨•»t[^àÿmë Ãíð¸{»uVÇÍíÝÍëãáR=;v ÃãnKÀíf ¼Óæõç«Ûcë#ÚùJM„hSŒš%µs«9ÿñƒ:r»«ƒC’N— (ÖŽ²ÒñgnÝ\?«³ççÖzõðÑùôb¨BñøWçÎøRçÏks«ÆØÕ1î!èT0®hÒ’œº™j,@MÑëˆ ¾§ŽrXqíf­kDdt,ÙÔ>Go²Õ·-Qêÿm7”µËet3pN¹ùvf³"ÑßéE´þ2'Ü TήÜ,œSnþ%ë0¯iFýFlúUŠÎ…¾£ݨ„5£«@­OŽÚ¶·hÖú¤PئóŸÄ‚¯6ÑÊ1ûv¸\Ã"›‘Z˜e*'ê˜ÊŠSÇškœ™Œ ÃŽÏ+f_yäÆÅìV2A‡”V ;4ú‚Lªó8Ç#'Âù…úVöç¿`ñüŒñËu¯¬QÏÕËWF½E¬bïW¸gŽã¼Œ¸íJJ8C´¨äPЦ4ô|ÐŽòIÎ’y,¹Fo3Æ„]ló*&_ÐVSäi©YÎR?,?ÅY↵†9ðerlÝæ9îÎd¢ö‰Nq†Ü>ò U‡ªZW&N‰µ­!ênÅj%1§1;²ÚFû5dýiÌ%$Ȭ²ÃÕ&„<ödÐ(«8³Îq•ËìkîWÄÖë5Äù•V^ÏÕ¹uu©¢Â=`‰3ÃÑíâÌit’IÖ Õ¡)À4s" ˆ¥Ñ±ÛÃü°B¬±VN=À+Ù€Ã>©t2B£cY#¹ÀœÄ6“g¾kt×'ÑÄÑ@À8² Î*à¦%AqLØfSd\ȳ‡è…sÖ1GÒ–ï’5vH©; #Y`õ,0û4Ó¬`¦Ê¹^qji®§?§¡ÎÂqA$ìªErp²WJ¯Fb4Œ”#fÂÚÔh\ãKo*Þ:ètc%ùÊWßú¹^þà  Sœ®…íE§ŒƒŠ»¸ÍM¨ÆyÜ6MÏÚ@$(×ItN–ýÔ-shõP­—©I0Ì -· q¶Ñ¥àž½ZË8ºÈ>LáÄO¢™–žòa%%Ûn! Š‹œó*Š"Ès” —ð°Ê£n17dŠçF$@'š±b ïØFnÕ-•«·Ò™DñQ>QŽc^†µ²hȘEÁÉN¡œÕch'Ì’jšæ~’ŽË‘óf°7ýˆ诶ÎÏŒ5èè†j0Í\¯E‚ë¹XàŠ/>h=Ž¢÷L²wÕ’ÍÓÍ™ö¾ìHôÎ]°ÂO ÙlŒ&è@ Ø Ù«Ñ9R®®ß«¹ž Vð®ïÊ(ÓâeÇ$N#ôr 2 =©Ì×Gü¸Ú>:m…á }7šÂP;ÃïKÔóXœJ÷Sª¬$’É+ 9¤¯|”œ‡(Ðdv=hãDíÚ!Ç$W›Žè^(E6_Ø>þ[u¡—9a*cEÂq)’Œf%»ÙÍj³MiȳO¾Ïº¬¤PÔ‚ÖKšÀþëÚ–ÅnäÂ(‡ £\¯a¨Ó2$Á®$¸’ÝB¯õâ£wC¢wK²wÓ’Fï·ž¨´£ ÐÛuF - °%ÙåÎÓs§Çé.U·ÐK¹žˆnZŸŸO/¦DÓ¨ endstream endobj 1134 0 obj<>stream 2010-02-23T23:11:43-08:00 2010-02-23T23:11:43-08:00 2010-02-23T23:11:43-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:706822DA1321DF11A166B14B4D8AAB0A uuid:706822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1135 0 obj<> endobj 1136 0 obj<> endobj 1137 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1138 0 obj<> endobj 1139 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1140 0 obj<>stream H‰”WÛnÉ}Ÿ¯èÇ™À3êûeß,Ê2dÀëMÄM†@S”Í,/IYÆ~}Nõe¦ËcæTMw]NªîìSsñúV°OÇÆhf‡`¹`†k&ýÀ%;¬š‡ærÞ\\K&Øü¡ Œã/0WÏæÛ†ÃHÏΕeóeCOOOÍûöú¦ëÍ`Ûëwé—½^íè)´«[B{èz‡ŸE’Nû,³Î®ýjI²í ºó7B¥ .fGË–ÇŠ`Ç宑z°Òü*E"LŒ$ñôôÔY>˜vø¶Þ¬£Ó~–ûm4ûjÞH•gN-ÃR¯´‡ÿ…€þã@Î5ù~ß “Pç±÷F ÿX/)§€mŠÒ§°-Tΰ®'S/¿A8®IaÛ ËKB‡ ÛL&‘ÃwNmÄjpa"ö;¯UÂͨájE †ò$Ä´MyB€Õ†Þ:á°’räÊÅÕ~ù¸]íNìâíLÍ.¯fU !¦ÎÉU@½¡…ð1°P [3˜¦X˜SbPF²mcü ¥€Â Jj¶i¬tPµyi9nÙ >Øà9•’K§ ¿"Øœù\H7(/*“â9?Ψx°ÃÃÿå!oùé$¾s! •«\LŠç\ü8 Ç…Êœ·Ï¡¡õÏ_,戶τ˜-ž…(”“†B“¸øktˆ=:Açý¡G_Êfð0»i\Däj|æ½d/Ðï>V3ïÝ «”£Ã]¥( y@JÈz ¢­h#&XàMCži³[ö£Log¿bÀ¼Aÿ‹ú¸<1ÁÙ[öþg÷M@1'FвM ¢=“CÙÁÔ\ñbB‡äõ™ÔΧõ‘š½L¢LæRNÚ'Þ¦<IpE˜|ÞwpɃ2²ì’,í(§Z˜Q³9ÓPq6Íçf*hh¶ Þ¸*ibnqVሠ,‚5ʼdoDŠ>d8ËðXw&W R4*䲦 |d€Ea‰Ê 2À!¥ÏµË¬IðpÀ”vÄ6<¦±IEòþLþê3ÇD Ñkê]‰‘ßkdÖ°zÐHžV4Ý6jŒJ(I4ª²Q–ÊGÙÅÖ†]žh¨Qþ[.dZp•dïR7I‘¦ƒç"]ù4ÄL+ŒM;¬÷Qvn3¯\õÞŽ']ÚŸq¯< 4AW1LggŠ‘nÀþ, †*OŒ0²0âà0hìˆípÊiXE—€ º–Ácˆ¬Q&°Ég* ¤,L1eS)FÚ¸* TÔ—1Oh”HYDâüuR$£Aë9%c Ô-7c)²˜JkU-ˆµ¬öÇjW2Æ2_Æ £¦, çJž…“‡ÂÚ )«4B Ñø éI.µ(šR­b ó¼/ÒQ†t¹SdƆ«¼‡§Ì¥HQ“ó´.Ûp"c-ëÔ",ºå>IãE§&ãâ«‹Cb9¦\µ€Ž€Úè Ô™ "Œ˜bÃâ©”#?K8«ª$q‰4¶W|íG˜Ò­Óг±ü3iªNòÔ'IÃó¤.pßö¢òoW'óŽšTš¢ÄÍÜ‹)jYFuL”FÈ8 Ò²FOHA6¶`±¤›…7lÄ:Þ4D=´HÌ¢ìÙ‚XÍÑ@®wå"b "óe 23ªJ£p®$Z8Y€(¬ Ò8›t&ä f»Èu«M*X±P zÞKܹ^½Ñ‡® ÝËysqelþÐ`XsüáGkPP304›oqçÿÔôÈ‚“¸„8jÞ·/¿|Yíî×ߺ^¤Ð^væošWóæßø&d¬ïqôVÍ?þÂvéûbyÄ÷„ãÁ“»;¯UùÄ&Gž·éÙ£¨ñšh0 ¦WQßýõ§­šø5¨=eˆRö6gïp+NÄ'Ú&<:«äÓ÷1}zR ƒÙþÐa™mWjֲ߇ÅvuZŽŒ‹k™Ì Ş'˜7–.ÊÑ|üzå¾8!Ó×7×ïØo®Þ¡]DëÙt'PÔ¶8ÐÉA(öãƒÀ•ÐhØå"÷rDs~*æ|Ñõž\}ìz|·‰vƒ_…ßU×+…/E”·8%Ú ÑÒ­ˆ4à}ZÁÒUÊ%”d4N›hžu¶½_—‡AµkP?WGvú àc1Ý%Á‰‰B^E˾Œh¾è4bcëÝrÝbÆZ¨|ÚÑgðñ~½û+öÏÙ;ö°Þ¬Ø×ÅæqÅ»û¨¾‡Q]!˜‡ÅãæÄ¢ñžÎ.‡k:^Hj/øˆ¥AGMˆ±ga{êzGÿ‰îºåEmð£ÛåùT£†à%õîBhù»ÑcñmæÕ¼‹Ÿe(†‰1~=„ jwÝJÉ%?̹%ÍI›tTÐMTHºëdaⳬtp¡1ÿì'ò,'m¹ÿ¿9±£nÔ·Í¢¥KµC¢qÈ#DÀ‚I® ‰2EŸ~*åA×E¢fœzܨ‰ÏänÆS¡F~øÀªWY€ýí4"]üJ܉u½^¬#e¦§‡ÉÉÀQGT‚ è¼Òã¢é&x$h(Îû®{À(0I¤l¦  Ú@ÓtC¾—0‡˜G2ÎSÖûL³„AwM\M/¼ŠŠQ0u šP,ˆ8¦i†ý6%2%’"ùIKæÔeÔÌ'œJ¬'ǜʞӘBî6×õaÛò@è9¬>pµ$Zÿ‰mœ×Ô¼IÈaä†ÿçîCŸêM½šI‰òð‹2ÀëOªXR©¼!‘§,Ðù•º‡åŪ£íïÏS ñ”YÒG2‹Ú îøv©x¨–/‚û·¸ )ùûPmŸ? U‹\ó×Pr1RðeÏ2ñ”,~ù‡âIc\Æ-¡ŸM“j>ºî §9ìXÑu[ Ñ%‰ù!¾Ï ÚÇwÿßÅøÝT›Ñ›÷ºiÅíää5YÜn–´KXI+X»OI´ªÅërÓ µŸ>/À&ýîÄèsÜÕú] ËØ$àÍû.*¼”öɨ×Bd£œBÙqdÈPd*9[ [ˆS®?Áîú÷MÔÓË?!ño®¡_\.I’µ!ûÔfòMCSä\ÑäyåVÃáó}Gò°uèXŽ÷ÈbžÔ+ì8ïto°Þx ò6‹-…¦vW—ñ‹”6£þ³’>+ߨ"©¿†Õ±y«7/3ª??êœá(¿Ñ&AL¯(¬Oàõžk̲z+(Z˜ÀïÀh“£À2°M› Ç-ãöPoi3i'<è ¿ØÖ»GQ„šjWŸÂ 2,18ƒ÷T Û¶9££ølÀW øLT§Ÿb|fŸa|f„O…a\Þ×ûöŒÔÌg°R ÖY¤I4`œ]°!L3Ù[@±ÊN Æ2™@‹q:MÙâéh“ îÂßHJZ5ÜÏ˜Š øæñÊjj¾.§Ñ%jè ‚ªw_]½^I¼Bu–Æ tQ0ПU Ôç ,¦…ˆCˆp›yòc3;¶cƒŸ®›\<7øãŽ'ÇçÌyƒ&Û>stream 2010-02-23T23:11:44-08:00 2010-02-23T23:11:44-08:00 2010-02-23T23:11:44-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:716822DA1321DF11A166B14B4D8AAB0A uuid:716822DA1321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 1142 0 obj<> endobj 1143 0 obj<> endobj 1144 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1145 0 obj<> endobj 1146 0 obj<> endobj 1147 0 obj<> endobj 1148 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1149 0 obj<>stream H‰ÌWÛnÇ}߯èÇ™@3ìû%o%  G7ñƒ`kjµ¢³»¤wÉÐþçƒsª«{.ÔR‰$°i§kºªNºt›ÅÙëK%6Ç…ö}Œ"¸Ð;/d¯´”¿Ú¤”Äa½ø´Ð¡¾¶Ž6Ìßž½¸:BdŠBâA†hÇ«ýÂYaM¹“V(zÈJðL¯|Ÿ¼Tù޽ÔüòÅrqv¡…ËO‹DE.ï€úr·PîàEØò ËåâQÒ¶ËŸ hXq€…¿ EÛÞ»X¾dmåHû}óððÐzÙ»¦ÿåz{½o;‡ç_ú«›]ûÃòÍâÕ@˜ ^`k´ÒF˜x° º—qZf¸œ ¿o.¾imš‹¿äñz½ÇƒiÖmg›Ãêîæ þá{•Q qô`ŒèT¯õKaO6°í¿¶]èmóºÕ mèÏom§<ä×[¡‹Ÿ -ùIÉñ¿Iªé‘±`Å&û䍯äºá‹ O^e¦baŠ^e²è”`×ø,‚KXŽ£z~ nzÕÜ®ùwÿ‘¯/þ\ˆ*‰™€£‘¢Ì9!kç7­߇µx×3+°ƒäV»õÝúЪØëæX9ùU{- ‚÷½.ˆNƒ! íû?‰=WµT½ÕˆE÷É ç©pT)ì³—7W÷»õþNœ½=W¨¿/ÏßMÈN¨½¤IÔfÊ*3åèVMÝZ!ô!¡+Q‹)h±[Ñ aozFÝBBkg‡¾ÕƒÖˆdïS”TÎàÇ:E¾Uò%ÍO»q`&¦©›‰ä”›§#¼8×{äùwz)Zÿy0'Ü UZÍÜŒ’Sn¾ŒÒhË0°¾+6Í,©ÉýŽ0Q³ *ö“ Ý.ñŽd uÉÍÖÆE¢mÙ¡f%­.s%ÕlfC–tøÈ daÛå5në©OTºT%ø`Ó#‰ÉõLw|;#蔤jaz¹Sæ‹IÅ•[ż‰pîX’»Éà— È–©u^Å~hÊ\e :TI¢£Ë;˜f¬— Ô*¯,–„öJ÷3ZkÏ>dâėϰ.5eìl‡/ÑV ¡°8úˆ1ÎP¤Â<£ ¸kÛY4Åô$RL<=eëà®XÃh¶sv±.™£[é°Dò‘¾¢P$š=˜Ò¬$=  }, ºÌ£1Ú|ÂŒQ §a¨§RqÑsÜÌ榙2…õ£)…³Å°sµ×“lðš58_ãÎçh3>úpCë1ŠZ3e­ª17t7GZë²2Q+wäÊá)MØÄÚº‘ìqY³Q%%]U¿fsÞ¬`t•¾t‹)3&p¶¦#±QƒŠ|}Ä7d¡¡P[['0`¶ÎF™˜j-¹ðµåtcž&‡Öõ”J³AÆ™…hÃ#)Æ ™š€D *? ‚ªvc(W›ÊÖ5QÆWh3‰íãßdªŽë±OX‚̨²Cs*BiM[†”¯ ½Å½íÂ$ô¾3µ×ËH²IŒ `¼Ô¦±ìŸÆvì²\ËaÃ,ÓÃNòÀëÒ$VÍvp&«…šëÑG­†Š¢VKEY«i £Ö[ ´”ca¡–ëÀJ ÐÊ,ׯMh®ëi‹T §ªZ¨©œwÄnZ¯Þž/¾[œ½¾Tbs\¼X.Î.¬Pbùi‘•Äßü€ëš¨ºK-wøXØàSJJ”èò*?á6²|X¼o.î·[±ü|hñašuÛáÊÚ?ßl?ŠçÇãúp'Ú–o`/´D§._.:H¸ß’)¶ò·éë´Ù¶]“Í=~M¶HêøúKJY1ÚÈh™ kÒ8—ëµh;\FšÃj¿Y‹ûýÇõA¼;´ø"ÓÍÍæ°ÚíV?n릋íjsìÛ.*|{¹FI­³¿®:ìèÈÂͼz45~\^¾ˆ?qü¡Äÿíz³º[ÿãÇÉYР>†ð9ð–£è[ßCþ*¼:æ$+q¼Ú/З(~9Dç‡è<Ûû­í0û›wmgpˆ¦hnZÝ›Dò«]‹òl2§-FP#2¥ðžšgm§{ßü“±Ü®6`GÓ j\(¤l Õìà˜AL(AVŒ6Šr¢‡ïBñ9IJ7âî¦À)ã”ñ¶ƒZ¸žw°šQkü¿ú‘ÞùåðŠä®¾¾½ûõ‰´Å&—¿¢tˆŽ[d‹¼|µZ3Ê÷Í·7Þ=æ’‹òë< jʯs5Y®¦Ž£ñRm:¶yy½:›“2Ÿ[ŒlѱÅç7ûãÝj71m” ÷íýöîú–­£IÐD ík˜© ŽT±ùÜJÄwÚ—VN9‡Âò§áéÞžûuCYŒÍ«ê»\ޏçärtÍ dŽc%öoö·lñ>ëß}xwsø¿Ç÷ðv‚ª‰]ÝÐ2®¹;æm†èÀô-÷7C9M¸(ˆ˜’Œ«ÅiÕA\^E2o‰_ âUxk’7)åŒV![W =wV}¾2Ú‚2i%‘ô‹ŸÑÓo1Êà!¡G8&𯴬êòdÕ,b¦‚³YÇ«â,¯P àUÑñÊxu€›Ì öz¯•Ð^c’ ò ’ÈÈU˜I>2 ÖÇ\:a’;aRðLü€{ÂrÕ$/³\RÒùö(â‚#]Äù³•40ÕºcO¬/‡ê¥l 뺲¡ƒô!mîK ÚÃŒxeDØeä$—Ýn@ñNE”3ñØ„‰è™B´ÚŒº¡5 Y¾ ìå§Å0@/ôî “â ^ß?‘¡×”h×/ÙÒtÐú‚Ÿ}¢–°d†`ÝJÜ»Öc5ª¦[<Âú„é7›}+´¹«wu«zæ³²ÜS ûoäþRÿ£¾Uô^Ö4kP"Ìh…ÓaÀBÛ‹8Ѻ›æfIfò·Ý(:É@µ¨ÚJ}oíu©45×—^&àtÛrª ÆšîžÓ<5UÝÔ_Û/töƒ/9\ÙD› E(ëÄdNÞ‡ å²ÒSºòÒYܱÜ3%{J໺ZÄHnpþëÍžt=%-h’ÆZ‚ºÑàæÍ¸z7V'û!v&‰wÜ^jˆê2§ÞÕÇ4 ç&Y´)F!%Øíý­Œüµ¼¯ëmÜÀ”?¢9´"häÅj#˜æ˜îü!je¬…òàáÞÏt^c-@Rùe ›š­O)gT¢û”tt„ŸR"·ËQlº#µõ¢,‰p9ÌéË£AŒK/éÃLÉ\Žhic¥R-Ϫ@‹ö"xŽÑ* -tÞˆVñ\w×}\¦? 4ÓV¦bÓ²ö ¢â0LÇ»Y“ª…X;­­ ç9'ÈÅŒå¨å‡p›BL£Â}'›ÿfº¤„ø±=ô‰¨3B,d9±Ã¾šéû~ObÉ-R!0† L‘œÕt£:tžŸDeCôüžÆÐfûT­çµºýÚ6›5í`]޹6C©é¤ÙîÚ‡2£7¬Ÿódñ0«V+ºçJ $Ê2¶ÀãîÄ·@Ë÷R×¶ÕZÝ¢Š_Ò1fQ䟇ãñFa‡2ªáf¹ámxô:Þ€Ï _bþK þ˜¢½´ÖÅÐYJé,9:Ë;~®øZÐÖëù:l(;~:ab!Lf=©“Žw\¹£ä‡ºŠÉó¾¡\„¡9µR%è›|y:éš, ÂÈà<ÒÚ ýÓÇὫÕë§Ïõ‚EËB„q½Pwõc³CD4å¶„¾.‹Ã˜‚¤ôf„Ï^¨X§í˜Ë´ÅX â ì…rvJü¡éÅ12Û¯V,¶vGÃ8 .ó4¶4µÈ³–WdÆÇ"¸OµR¬R„ñ95ˆc%sBývÉ—>ýkôbÄ éŠlúÃu Ò~öv–¢»Þ%õ>5€¬B©VO„ë[âÑ=]®è3?ó:Üjjq ud©}d}Jí;Ò5„Ý3ÖÐ`Ü@PeÿââV& êQ£Æ]ú45=O©/úžWôQuaQ A-¶_Žžj„ðGõ„  Ö%ÚÆß×·jÖ¬jBÓã9® 4Á1M‘‚¼©—Õ~Õªß?¼%%ܶÍúQB~}ÿ"·8O Hy~iú&ndtñÛÖ/(¸²e[R ‚AˆÿÁOä4sнAçBŽPd”=£r\;6xu½ój¾£—EVr._f¸µhµ›¯ãr(Ò~9,ÍÔcg@Ç žpnÿh`~bcBO|wåO¾ûŸ|Ï)‡~ÊÀj>ÇóTƒnâ»-° wh@hOæÀB-M}·å8†Ú“23ƒ vÉϧc0ÎOÆ`@„£ôÈ +Ç1èROÆ  s‚Ãx’vÒ)Ý©¨ô§¹D\=a„“Ôó¹õÿ 0tB~ endstream endobj 1150 0 obj<>stream 2010-02-23T23:11:45-08:00 2010-02-23T23:11:45-08:00 2010-02-23T23:11:45-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:726822DA1321DF11A166B14B4D8AAB0A uuid:726822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1151 0 obj<> endobj 1152 0 obj<> endobj 1153 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1154 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1155 0 obj<>stream H‰”WÉrɽ÷WÔ±Û¡nÖ¾„O%*Fòx,8|Pè@‰€Ô ¨ñgø‹ýª2«» Íc1BèÌÎõåRÕJ\wg/ß(q}è´ŸbÁ…Éy!'¥¥4øÕ&¥$î7݇N‡úÚº,púöìüàÅúf) ‰¢5JÖ·³"X7á…“V¨üP´À·æk6"ʯü”¼T厓ÔôòÙª;»ÐB‰Õ‡.eG" W$ ¾ÚwÊ#¼KãÅjÝå'ļzìÞö? £›|ñ3ýŠ—›Ûü”úÍ•ÔßcÀÏ%QÇ;¦Åà§Ðò™òý¤†w«WÂPsêø£tµ<ð«ç‰r% âññqðrrýôy»Ûÿ®ÿ<­ïöÅì‹+ ”$xÑh¦°ó#ô”r5NpÈÎmöý¶W²$áNc þ‰QMZ/§¬Tu¤°ÿùRTÁ‰a̦ž~<*ã¸Í ßA÷O„&RÂ7y­A£°w~°!N½e¦\±} Z/þS­ÝÅX{”ÎLªL¥Ò“îï/÷›ãæ~P ¼CòwtÒV”îó hš|é³ýEÜÖVËÞ¥y Åvöüný°ßÜÅÙës¥¼xöü¼û¥éôTÃH“ò8(«T, €©ÒyªØý”³^M2±ïàÅ „àÍ¢»Î¥)ˆ†&ëí¬²C4rò)ÊÜ Rc–Tö«’¯óõ.NVÙÆÅÂøÚÅï)iC†F•§2¸€Ör®187ó…@:ɯ tÖ·fÆW~ùa ÞNÖ¥¹{²èšÂxÍþ|aªEi±8ÇX-¶ (´+[X¡c󯳩ØÃf°&°z„½€±W®lf+s@AN&,p€… TÀŠJTG){j²„ ¯Ú~œ½`vRŽqhe[ ŸË0°/òM¼9Ï߈ïeüæüoXc¯°(~Åé€Ú? %ÅkñöWÖ†ñ®Å‚s oºˆó(™F¦2f™¨'¿Å@»i•ãŒ~²éô’GŒh&ßzaFIBTIÂdi@“§¡Ò³Ý„*÷ Æl*±tãÌ“Q±4“+±VÆ"'/Ã7M:ÿ{(‰½®R“’Xß)4¨$וDÚ„”Ô“o;^¶m¥d´x©Žj/æ`üÉúT2 ÅÕ Ç’ÙU–Ék¨M\I€¡¨Ô²ÃÅ™“é€Ã©ÐLZǤë¢b`Ž+Q³D²D³AÜH!&òi´)I‘ƒQhÃ4®¤‘œ/+ÉdòäÂV ¦¬>fŽ¥ ª5û ÷bÖД§7ìƒ(G8GjÖ£&­X›“Á3]íRÒ1¬•&\½O3M †aÊœÝ '—f×Ýtmyâ\ÀÈ©G.`â鎊„sŸíF+åmD¢Ð,x}BÚ4+0ǰ¼mZ8Uñ&y) å…¤)ÅXÇJkÃu¿8í9ùÕ¯Èä¿èKN«¥¢þ&‡#XÃhn#\쉑èèõ)ƒe˜‰¡Ðɱ#®^¾ŽgÚª’¡âSÌXê?íh7j˜ãr“€&D,/­¨ÿ¼Q3Íýäý‰DäL‹ ùâ ŸyM@X«%@lª 8K›d›üŽõ6ÿ„Q 3B¤áYH†"p‘Š!½;¡µ Uƒ9†;ÓÕ1¶ñ¡Mµ-,ï’ ŒX¢Dé¸s 7Z’s#qk%Ž» àòåwAÉMêt7á©N„2èš:MT©E„TèÆƒbIe£>©ñÕ>Z2Ë<+ê4êÄŠ·êR50â.„æ…®…X8Tªj¡–òdH å½âñð¼=£ÔlÓÒdTƒÔŽMÐÖ0¸ç ,!«y`")h?ïCM@MÈÙ@Æ–&Ó<"IH$ÛÈ{*¸ÈͲ„ʤ,¢ùl<É!7¬n²L|©(ä;Î8‘ ŽÞ‡˜Ú=ZÉeB*GÒ@š°È3éy'å3™äëÊË:Q4ô6ê&,PS¦$±'xæ4‘ŠÇ…02eSó9Éwˆz=Hõ®NU¦y@‚9‘ :.¨Ò­ j…Dm•cm¦%‹Ún5ÏÚŽî×(\…ºÈëÛú°½ËˆTŽay®¬Óâ‹yXãbõâõ9>½Î^¾QâúÐ=[ug°+V¸:Ãî÷R”‡|ï̈x±Úãæo!™aZ­»1?Âçê±{Û_NÃè½ìŸŠ‡Ã€,ûÍý m?pÙ¯|àôüâVèïðì÷Û1  bWbMìûAáÓ„¹‚Ôn†wkÖ{ÐóýîjÀëaÄÕ²¿Çàí»Õ«ÊùCGŠÕó.:®†‹UWÂ=ŠÍçõfs%Ž7qû°ps líîƒ K2ßlõb e­¦ÐEÅÔáf;Œ¸ïö»ˆeGì£î¯ùÍḹ?>stream 2010-02-23T23:11:46-08:00 2010-02-23T23:11:46-08:00 2010-02-23T23:11:46-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:736822DA1321DF11A166B14B4D8AAB0A uuid:736822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1157 0 obj<> endobj 1158 0 obj<> endobj 1159 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1160 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1161 0 obj<>stream H‰”WÉn7½÷Wð8d(nÅ%7[^Nbh‚ Œ±ìÈd[r"~YÅn¶0Jb BwU×új!eÕ‡éäù™Un'uÎ*QÒ•ÑÖãñt¾”¢nΧ÷“Kýs *°þzrzÕáÌdJV/&åà­º=\OTð|2AÙúÒ”à¹~ŠºDcÛ7—µqüññ~:yæ”Uû÷S©UQÔ$ ¾¿š ”wðbØþr7m¬‰ÛýG(zVœÃÂ/‡â‚Žˆ]ퟰ¶¥ªýzsww·FÓF»¸¼¸ÞîïßôáÓÕöÍþÅôtÀÊ H¥¨ š’ &8$§M^mZ¸5ðòëͳŸ·A§Í³_ÛC=?¿Æ‹ßœowasóöë§õwÔ¶E1çUCOÞ«ÕÎ͹x ‰mÿ¾Ý%6Ï·ncÓv‡Ð7¤}¾ÙîlÿâRÙÂì•3üfMÏø?Šê5*–ÕÜŒ.T›a).ÍßPXTxøÔÊ‚TýÔÀª/U v}œÁB2XÒ"ÎêÑg`£íæó9?¯ßñóâ›zü“%…@¦9F D ­ê¤Z;ý´%à}s®~Ûz 3oŠóöêüëùÍÖfí6·“/èÚ 5‚J1jR”ÔΡšÚ?¨kîjcupÈÅéÅÚ8VûäɧÃ_Wç×_ÕÉËSk“züätz5€]<~êx_ê˜Ù`mncZ]Ö‚NS‰^,É©«©m‘VŠ^G ê%8ubÊC˜[7k]""£cɦ¶3ð d«o[¢”ùa7drÝ œcnÎlöB¤#êü^Dëÿ'sÄ JåìÊÍÂ9ææ_’±c™fԯĦ_Õ¡è\è;êÐJXƒÑ!P1º Ôúä¨-u‹f­O …m:ðI,øj­³o«Þå¡ÿm³LåDSYqêôr­‚s"“Q£!aØñyÁì« Ü8°˜ÝJ&èÒŠca‡F_IuçxdñŸž©‡²?;ýûåÃG,&WÔ²F½T¯ßõ±q½_á"œ9Ž3ð2â¶+)á Ñ¢"t”CA›ÒÐóA;ÊG9KFä±ËR½uÎV®Í«˜|A[UL‘§¥f]8Ký<°4þg‰ZÔvæÀ—ɱu›ç¸;g‰Ú':Ærû 3TMœ¨j]™8 vÖ¶†¨»«•p6ÄœÆì;ÒØ¯!ã„Oc.!Af•n0!䱇 ƒFYÅ™uŽ«\f_s¿"ž°^¯¨!NÂ{Zy=TkäÖեР÷€%Î '´‹3§ÑIHj$Y/tV‡¦Ó̉,PD –FÇnóà ±ÆZ9õœ®tfû¤ÒÉŽeäsÛLž}ø®ÑiÜ’DC88GãÈ.8«€ •Å1a›qL‘q!Ï¢:ÌYXÇI[¾KÖØ!¥î€ŒHdUÔ³ÀìÓL³‚˜*çrÅ©¥¹œþœ†ò¤¹~Q2OR¿$sŸ‰ìØFmöSn*,Q‚@WhEû8kÇ‘°«ÉÁÉ^)½‰Ñ0RŽ˜9#hS£q[/½©xë Ó•äS(÷8¾õs½ã‡@Ç8] Û‹Ž1/Wn››PóŠ9mš<žµHP®“è,û©[æÐ4ê¡Z9.S“`˜A[nAãl£-,JÁ={µ–qt‘}˜Â=ˆÿ|fZzʇ•D”l»…$(.>rΫ(Š ÏQ&ܵÃ*ºÅÜ)6ž‘hÆŠ5¼c¹U´T®ÞJgÅGùDA8Ž=xÖÊ^< !c';…rVKŒ¡0K¨išûI:.GΛqÀÞô#R ïm)œ-ž5kÐÑ Õ`š5¸^‹×s±À_|Ð4ý×µ-‹ÝÈ…QF¹^1ÂP¦eH‚]Ip%»…^ëÅGï†Eï–eï¦%Þo=QiGA¡·ëŒZ@`K²Ë§æN#Ò9\ªn¡—r=Ü´ž¾<^Mÿ0á˜ÍI endstream endobj 1162 0 obj<>stream 2010-02-23T23:11:45-08:00 2010-02-23T23:11:45-08:00 2010-02-23T23:11:45-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:726822DA1321DF11A166B14B4D8AAB0A uuid:726822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1163 0 obj<> endobj 1164 0 obj<> endobj 1165 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1166 0 obj<> endobj 1167 0 obj<> endobj 1168 0 obj<> endobj 1169 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1170 0 obj<>stream H‰¬WÛrÇ}ÇWÌãnÊXÎýò(Q¢J®R䈰“*Ù4’pÂ!(SþûœîžÙ]H¤Ë®„|ÀvïL_NŸî™5êzqòæÜ¨ëÃ"x‡µQA{eó ­ºß,®/W‹“3«ŒZ]-ŠÒø/*ðŠ’Õj·Ð0²ÔƒÖ.ªÕzAOO‹ÝÙÛ~†Ø½—_õfsGO¥ÛôØRºû~™ðs!ÒþʪCê~‹$Ån0ýO«o„“ NNQ­ŠQ‡õÝÂú!ZH«W‰ ‰ñøøØG=„nø¼½Ý²ÿÐ}Öû›}½ZØUVN£ÂÒì•|†?BÀÇ8sO¾?vFsé8öeðƒÃŸZšÁÚ)àB›øÑf ûû7F JAõK2õâWÀcÇ-)bw«ê’Ò#èîeEÔð]S±’F˜ˆ}Ð){'¸7 \ï( P>†N;´W ˜1{ÂÐÛd’VÖŽ\9yµ_ÚmîÔÉ»Sc²zùêtCáÔõ`µ+¨×`<­¡HÀBK,4j«`šbQÉ™Á«v‹o apÖ«ÛEtƒ/n®@^ÞŽ[n‹bÉšJ©mòÁ_SbÍü96 .›™‹Iñ”‹ç3j,ìèò—<Ô-:‰¯\˜2x—f.&ÅS.žO"éÁ¡ò çÝÀchxÿçokD»'B¬B4.Ù@¡Yÿ_Ø`F'øºŸ"ÌèKB9 fo© †¹Êï!Ã|Ž“œ ú=s0ð> v–2:ÍÍCl"ˆÀ;_‡€hg ´‘/“,ÈaCi§çê¹LÏOÿŽó-øêCàò¨ŒVïÔÇŸ´º\sb¡Écç‹â‡ÌlI•Ç%%>•'Ö &?v4«žÒL™aJkŽFŒÁKól‘1 ¦ð(6Ý4Í´Ñ…ÀyB16yks¤)`ad6ér¤™ÖXjÿ”f–Ò,b>"ÝŒidz²LF3é€u 轟—ÀðAv¬i^Û(oç5Î Ñ•£]È1š™',)é8Ÿ0$—¹–Kw¬ÉºŒ–S¬²g¹¸ö>«5vD:°D“häPwdÏ2ªÏ²C ÉîFÒØ$+xBŽbÁZ±èu¬;l¨ô)ËQ,D{$—¶¡*"‚™H̓Ą©ë+©S–õLMÈÙŠhÅRªIg1£,ÐH‚‹aÊuCÝAÀ‰‡\l¶T9‰lã(Ëo¨¹=ÒPqn7‹©@  Ù ¼¼J4œÏ*ÑEÀ"XYÖ-û`$úRá ©ÂÓ‘R+HÓ¸RWØ9Mà£lK\UèR.’¾ö©²FàÑ€IvpXÍiÜJ‘r>Ò€¿^`Ö|LÌ!úR3ß%ŒüZc«†€õƒGò´* év¬ N4®P’hTY¶.³œ¸µaW =Ê_¸åJ¥…v"ç$ÝdL‡¬M-ºË2Ä“•!ÊŽ˜3Ë)båUš½ãI'û+î3(Mñ³¦³Sb¤p>Ê"‚€e–'FYqH4qDŠv$ eÙ–°˜¸âç2ØbÛP5.5ãÂÌi%¢¬d!1‚Ô!Ͳ@EsÛÁyBãŒdÁ8ðüMR$£AçsÊr Ô£c)ª(¥àZÍp-gû¹Ú3•c •/cŒQSs-ÏÆÉ†Ccí„”ç*PB y†ô$·Z4M«V3P‹yܲÁ´agSí[±Ñ®îÑ’¹5e5Ϙªd*ÖV€hXK˜:²èbTûĈ&§¡â’Cš‡ÄvL¥Ù:æ@çŽ\aÌƧRLù(⬛%‰Kdˆ3pÅ÷y„Ivx/C/rù!W eªNòÔ'¢ÑuR7 ¸og3óo×dë‰Í *MQâfžÍ”µ¿m£š¥2R1ø )È!6lKºYä F¬ù¦aæC‹ÄÚ).-àjŽj½g.*!Æ *_Æ +£fi4εD'µTg“Ÿ ¹‚)`7yÞ*M#kZA;c;×ëw§ô¡kèC÷åjqr†ejuµÀ°ÖøÇ¥T,^­v¸ó_ãëGkíÔj iõ¸øØ½øõ×ÍÝåös¿´%îNûŸVß.^¯ÿÁ'¡Šˆ7`÷'ßýfñÏ¿©;ù¼Xð9‘tÉämÐ){×¾#±)á8¥OHzΨ)߆ÁôŠ…ñÝ?þ´ÕÀƒ>kü"¢+I>Öä.Å’??Ñ6“ …yú™Ò_òc^½ÿ~¥>l›õCïÐ]ô¦»ý´Q«>SÝv·½»fdNμø*Í?ÜÞ0œÑ5äjLÿ’y³y†ûY Üm¯?Ý÷a·‘˜îtiØ…‹%1ãÃM­^± ÑBǽí¨~»CËIwÓë!wûÇën6Šób@Øî°éÑd݃úíâ”îü’{uµ¿Ç« ×ûÝnÏa`¯Ž¸—1Xa¡—$„;µ¾Ý¯ÿ­úØýÌ^¼û¦'ØÔåöðp¿ýùÓÃæ’^ã…b«K8¢–¸èõ›ñ8÷büâîRßl«ï®z,OþÃæZ4‡‡Í=û½8p6@—‰Ž½={/Zu…×í€ïîÕáwÞ{·¾ahL·¿Û:Ж*W+À*°;¼ù±«Õ/­Í0ŒQƒ ?·;ÿp¾êW¿L\Á±¬™-u±ñ-ML+NóÇþrCÙ2ö_aZaÃÌôh/`C—V{¶ÒâË~‰AÕ½SgýÒ!™·H˜¼§:+ …ªçîwÁFlºŽwà ]'˜˜]Õñóƒú ˜ècäI0¾Ä#L§º–™Œ‡Å@`àu_µÎÒàóDBDŒW³~úÃV²Ï¶ AîôwŽçΡ®æÜ8Va…Y!ý¤RÇ»¤…L7•—Ô:¢àêÖ“aZ¸%ÐCGýÁ–/©uT¥ü³ô¡V¾Æÿd¿ Üµ!ö}ä^¸hÍÐÓ²©#n‹±'¨hB~Õ €&™gZá¯>]{Rv\}œ¥úîùê hcãÁÍþ‘jSˆìÔ13.P/¥nEÕBu…AÐÅ-®mØôà'˜!&Ž`”âñ‚Á¼SBå –HÃe”à‡>8Xß’Èuÿæó’¥‹¼[Ú8wßõ¶{óBâ!SÄ´~I¾ñ"NÔKú5 )¸V_>T»Û;uö–f=fÂQÌÙé̱‚Õã–ˆ|£^ï~Þ\^҉ [Ö~A7°êš– !—”4¥µG$<pskã‡v~¢[âÓÊu²LžŸ nGô©õ!Þ™këäö¡øuúVâ„©7\†FH²@ò¯å x…äýª/¸TÓEÂv÷×õ݆$ĵ¤ªþ—ø²é#7Âð}~E¥ši~³s[IöÙ5²YM’Ë^ Y6¼¶dIJ7ð¿Ï[lÖ[lim Œ…!ÏÌÓ$»ù°šUôm1NCãWrùcoû^œ´$8<­¿[{,R>¢ÞKòÈC¥ Ÿ3ö0úúUsúQö…„õJë/?pŸöÓý¹ßͯwCîãð~¯ÑD,Cý$ùýF¶8ynL²½ÿ8ÍåÏ¡žÂU$cï[$¤þWŸï®!àÁà%°%·«÷ë Fò_ÏÄ’^9]Ç._¬/U¶mxï{Lg)±ó£˜¶Œ½Îøî¾U,ŸäIpø‘” Ñ,ÎØe·–ÔØª ç6Õu»™¥HÀ¿^A˜Ê÷ŸOeŸGJ×_NeÚA^SwºXÄR»àxòf:—ïíÖoÖ»H*8Þr޼^²{÷uùl¨†Šþl¤ú/FjưN~©(cp¨úJ¬¶]äõ©T²½·Pm·~¤®ºß-•ã¦Èoqƒ<†ÏÚã³´øÜ¯‹£ºÆ‘dÈïî?ݵ܇ÕÁ±^X«êwíR«šÖ]¿‡FϽ2h¿S ù.¡áO$ˆÝm…uT™*‚JЬ¡ìÆÃÜåZnŸbgì•=ÖðæÅ¡U2Ö9¹:î‚|—s/ˆ>Hà!Uµ£@>9—ìâZ“sÆÙº_È= µ,‚…úzxú°ìK^×ý‹Ðð¥õó²GMî–z~¡¶½¶™¶{È Ö TÖ+|e]Ëÿ3=M=:æYRâBrMžÞµ² T¨°*ík ©ßßHÊ_7øˆ”ÿᬥù¾4OŽM»Ÿ!³N1#¯Å)ÌI²GF“§÷7»—»Ãå»ë·7w¦Ã³ ‡Éž_^ìζ²u­ŸEZÿê”GDg‚û%·ÞZ1·w¡HžÞ;ïRiŸ).­¼›-c_üøƒdb)Á–4ÉD³œf.‘Ë× íz*Ç~ë{&?¹Ú$o„eîUÞÉñð°WÅyók½þ·[õçö>c‚ ¹ «*ךø¿ ã¯øû÷§gÓîðý•Ÿ^ÝïÒ ce™"¯Äév' ç¹(x»»Âͺí|ªˆÊ<%_ö%%´5‚úv Ø'ÜØ¹ÅÕ<6qRØÄM›YBbh2ãådž14™Ql`}Æ68Ô0´‰x[eßAæË¦k[óЦVôòc›Šãî>¶q-:†6¥ì—2Î<ìQÛ&NÜ|h’åsœ¹¼ ùmPM-¡Ž’I(™D%+0É$”L¢’˜dJ&¡äNÉ$”LBÉJL2 %“P²“L¢’ (Y‰I&QÉ!`ÍË ÙˆJ6Ò%P²•l¤K& d#*ÙˆJVb’¨d#*™„’¨d#*™„’tÉT2 %¡ä\$ÙŒ’I(™D%+0É$”L¢’˜dJ&¡äNÉ$”LBÉJL2 %“P²“L¢’ (Y‰I&QÉq{) L²•l¤K& d#*ÙH—L@ÉFT²•¬Ä$QÉFT2 %QÉFT2 %é’ ¨dJ6BÉ(åÁÉ$”L¢’˜dJ&QÉ L2 %“Pr'ƒdJ&¡d%&™„’I(Y‰I&QÉ”¬Ä$“P2ºÏ!’I(™D%+0É$”L¢’˜dJ&¡äNÉ$”LBÉJL2 %“P²“L¢’ (Y‰I&QÉ,î(ÙˆJ6Ò%P²•l¤K¶2R%QÉFT²“lD%QÉ$”lD%QÉ$”l¤K6 ’I(ÙˆJ¾Úý ÔãÆRËç‰vÎÁgrÒA]£Îzªls»ûçt·s­ÔŽË¾†¡*÷)ïSŽV•ûŒ™—J£´ú©`®up˜ŒcŸšPë¿<ä’GPäøiCYNç6$í]ú„É2û`òp›Ž`›A"fSÃH¦ÇN©àYÃà7-Ë0½¼¤zNbÄôòfŒ„WÇ• Á|ª:å„g>Ì/Œ‹ÐuËfEÞ¿eC0¡4tzpâ“cÉÜÏDps+æÖS"kˆW¢-’£‹„–ëW"‰³®Sb›ˆð‘0¶q"Þ–Ð^^½—¼)³ËC›«Ýßpä¬Ù—4Ég;éâ‘ç´L÷×wö¼XîRÚóŠ˜\Hðt²õÍR²Ö½Çs¿µ6]^Æy?&çåŸú ùÍîyµ;?îd˜Ã4ã_ÿêÙ}ãºaî~:ÞŠÃbÅy—Jû”mR¬œüôþæ·×ïN¿îOaßMÇ—;ýƒ/w'ï×ka½„]+å~iúmÛmÆŒj¿ö|ÓkÞ'özû°“÷^ïõÙN7råÉñ‹ l{µÉ†ÒÅmdçG²{ªµíûøÛÝî3k+/A”$ô_¯íå_ÿ~DÊØ ×…½([Ux¸®ï§ÿ¶ëúäÙÞ˜W»Ã÷Wø¸ßy ÈAAj‡I)0µ ørw¸|wýñöæîÃtxváü<_^|æ…ðÙ2×IAÌ¡ˆ´ÃÅ}ž®ï§/Ê»øñy¸³ïótæ±cFòÔ??Š{\†rGipõ`Â-TÛ•cÓ¯/)>Cˆ®]µê2PÌH±2ÿо’þEÁŒÔ'u@ ¹Õ¢(;¶êXôb1"S/ØZCÆr«p0ð,w¢Ûf»I±ô»‡"#“ žCj»?IÀfáÇ6H°u®cœ?}Í›6aïÛí̽dQ€Ò¥¸26Aîs­3‚+nlKKdC› 'mÚ¸V mÂl3«°¦Ù± $-›6R•ÍÌksÜÌUŽÏЫ†L×˪»Ä`Y‰Y&¡e%f™„–Ih™D-+0Ë$´LBËJÌ2 -“вZ& eZVb–Ih™„–•Ðrð¾í®f™„–¨eZ6¢–¨e#Ý2-QËFÔ2 -QËFÔ2‰Z6 –¨eZ6¢–¨e³œÐ?ÔѲ³LBËJÌ2 -“Ð2‰ZV`–Ih™„–•˜eZ&¡e%´L@Ë$´¬Ä,“Ð2 -+1Ë ZoB¹s¬€Š;0à (Xý*P½ý·ÙU@¹ è¶S«€fPlôª¿©U­v`RЩ*í€F#F›£”’Щ•JB«FT«õj¤‹% Y#ªÖˆº%¡\#j׈ê%Q¿T°5LBÅFÔ±•Lb–3ª`T¿ƒe%f™„–•˜eZ&¡eµ¬À,“Ð2 -+1Ë$´LBËJh™€–IhY‰Y&¡eZVBË,íh™„–¨e+Õ²µlD-é– hÙˆZ6¢–IhÙˆZ6¢–IÔ²µlD-“вµlD-“ÐòÕÿ_û(§Öxa–Í ‡Ô}.nC0Ë0S1¥šG÷ÛaœüäHâuhó>AÇ­­Y'²Šø&KÒb%¡H ]Ö)±IDÕR†a„„P†[ÙK¬mÖcgÅ«‘&ù̹Èg™Ó2Ý_ßµÇÍÒ>,ëã†ÿÐ^6½Q#A¾ûWÌq‚„ãþrw_IÂJì"ÐÆœ„’ˆ€Ä@~ÿ¾m»Þ*OH@B‡ OØõTw¹¦‰y]ìò²žg×>íµëõ<ÍÀY®ŸÈ¶ôëMOŸ¸ zð‰kû€åê·‚ËîÙÔ¡è Xþ­?ýèúšâr€‰Ù›n`Ä…ì›ç]Êóß#o÷¯¿]„aûñëÉ»éEwúëÑí¦ë™"¦žÎ»ýÃÉô mairýƵiw»4É0ÔîÖ¶÷›Q¨šõùx÷^žuï «Ör1=˜b-Ò*¼ô¹†__ûˆ_­ÚÇÀ¦øOªöc½hÛ?]¡`צ~{mìÏ_½™À6U²$Çi’$}?^øî•ü¸+ââåöÛÝé_—øsèðQèñ‰ÂBe@¨=*sËHl ¹îNÏ¿~øqsõåûîôå"ß=;?û¹5‡š Ê"¾}E9‡´Ó³Ã¸ûpØ=(ï쟿ÛË=ʵ}öŸâK屟Ú[ÿ{gÇ0ÔË£Pçå=·Lólø¸Ø– (V|khYZ5`=¶Ó ÎÉ>,ò{Úb÷Å.ÇÙͨ]Ì!ú|ÓçÖn‰uyð­‹÷ø…ã…”¤€zŒ ýSuü ÁŠÆ·kFÓ§¦j,fžFpT3Ïj18Ä }–ºž¶¯˜û15Ñ^õF –w™pJði®~Ó"çO N9޶KHLØôÁQup¶¾ñ.gÛ'ö)³} !¸M¬”¡š>‡‡¡Œ¦«HØmŸRûdÃr%#'eÓ)=êoÁ†îp KCµ}pªÅ†ÞöMçÐS˜¿ÃF³ÕLBÍ$Ô,D5“P3 5 QÍ$ÔLBÍ$Ô¼£™„š…P35“P3 5 QÍ$Ô,D5㡽f!ª™„šI¨Yˆj&¡fj¢šI¨™„šI¨y%F3 5 ¡fj&¡fj¢šI¨Y5ŸP}Œe”L Ž D±&ÁâWõˆ]‘K nW j ĬËÿ‹WÑJ VP*8 JÛ‰ ãTˆJ%¡Uj¢^I(–„f…¨Zº%¡\Ú]‰ÑKB¿B(˜€†I¨˜„Ž…¨dZ¢šk†÷`5 QÍ$ÔLBÍBT3 5“P³ÕLBÍ$ÔLBÍ+1šI¨Y5P3 5“P³ÕLBÍB¨9âLT³­$Ô¬D4+Í$Ô¬D4+Í$Ô¬D4+ÍJD³Õ¬D4“ˆf¢Y‰hV"šI¨Y‰h&QͧâÁÞHT3 5“P³ÕLBÍ$Ô,D5“P3 5“PóJŒfjBÍÔLBÍ$Ô,D5“P³jNŠõæðFBÍJD³ÑLBÍJD³ÑLBÍJD³ѬD4 QÍJD3‰hV š•ˆf%¢™„š•ˆfj¾\.Ori­/~9r'LIpHñÈœzà|ÃÞHÞþ7¥ìˆ_΂äðºiC`¦V3K»÷&g@Æ•ÊmÆ è7óBU³%—Ö`¦ ˆ=yóº1·œè˜àF¼® øvõ,R[;MDH)Z0â}7cÖpŒ‚ ÇjɈ(ƒ&#¤’ (ˆ(nÆ센‰ &\Z­™8¯E3MÄ"Oi´ùÍ_ÑÚŒAf¿!ˆ2Øi"B*fyÄ„ˆÒf̈¼årDjµë.Ž»Òf;fìåÍÄ7˜%ëÐûhó±ßj¾´­ú±Ú礡ô>™i“w}vÎÔ™¼ƒ-0l|_vˆql½Úßk²Å<`ÞÇ/Ügmk—4WÐ!ÎXHË^5-±€JóYûdä;Í÷™ç.á<×OîyܸÞXzÜÜçÇ]vϦÛ}ÂnÀ¿õ§/X³´ºT“»éB\h)Ú2Kyþ›â"äíþõ·«“0ìo?~=y7½èNŸ£´»ÝtÝaÏ þ »é¼Ûÿ8œLŸÐ–&‡*8®M»Û¥I† }Nam{¿5Ìë~iù|<_ yÖ½ƒ®ZËÅô`†eEXåµG©ü…òµsž»ÄføñwO†cÀ¹SÎQ¿“áýù«7ÓîÛÕV¸$öp,[T?Î+ Pɛ׋—gÝÿ ÃYGR endstream endobj 1171 0 obj<>stream 2010-02-23T23:11:48-08:00 2010-02-23T23:11:48-08:00 2010-02-23T23:11:48-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 4/vnU/3jD+RSNv5j7ddhotJxnil9P3vJ+0XbfhA4cR9Z+o93l7/ue65u3z92Ksf8/eTdP84+VL/Q L2irdJW3npUxTrvFKP8AVbr4io74q+O/y3806r+Vn5mlNURoYYZW0/Xbbc/uiwDOo/a4EB1PcfPF L7ihmimiSaFxJFIoeORTVWVhUEEdQRihiP5r+fbfyP5KvdZYqb1h9X0yFv27qQHht3CULt7DFXyx +Rn5fXPn/wA+NfaqGuNKsJPr2ryvuJpXYskTHxlcEt/kg4pL17/nL4AeSNFA2A1If9Q8mKhNf+cU v/JWv/20bj/iEeKC8h/5yw/8mhF/2zLf/k5LikPp38sv/JbeU/8Atjaf/wBQseKGS4q7FXwv+f3/ AJN/zJ/xmi/6h48Uh90YofnT5b8w6p5d1yz1rS5fRvrGQSxN2NNmVh3VlqrDwxZPvbyF500zzl5W stf080S4Wk8BNWhnXaSJvdT08RQ98WLIMVYT+dn/AJKjzP8A8wT/APEhirwf/nED/lM9b/7Zw/5P pikqn/OU/wCWv6N1aPzpp0VLLU2EWqKo2juqfDIadpVG/wDlD/KxUPTf+cbfzH/xT5NXSb6XnrOh BYJCxq0ttSkEniSAODfKp64oL13FXx//AM5MfmM3mXzcnlvTpPV0rRHMbCPcS3p+GRtuvp/3a+/L xxSHvP5E/lsvkjyXEl1EF1zU+NzqjU+JSR+7gP8AxiU0P+UWxQ9HxV8l/mb5k13/ABjfReZIJIr6 FuEcS7wrD/uv0STujDcHv33rmpy6Oc5EmW76h2PPFDTxGEenvve+t7c2K/4htP8Afcn3L/XK/wCT j3uz/MHu+39j6t/KdfKzeS7Ofy63qW8w5XUrgCY3FB6iygVoy9KeFKeObLTYYwjQ+L5l23mzT1Ev F5jkOldKZjmQ6lhHmf8AKjQde8xWusSkw8WrqNugoLkL9mpFOJ7Me48DvmDm0MZzEvn5u+0Pb+bT 4JYhv/NP838dPNmsUUUMSRRII4o1CRoooqqooAAOgAzNAAFB0UpGRs8yuwodirsVfOP/ADlX+Whm hh886ZDWSELb60qDqnSGc/6p+Bj4cfDFITz/AJxc/Mf9NeWn8qX8vLUtEUGzLHeSyJooH/GFjx/1 eOKl5J/zkB59ufPPn9NF0ktcadpchsdPij39e6dgksijvycBF9hUdcVD6b/KX8vrbyN5MtNIUBr+ T/SNUnFDzuXA5Cv8qCiL7DFDzn/nL7/lCNG/7aY/6h5MUhNP+cUv/JWv/wBtG4/4hHigvIf+csP/ ACaEX/bMt/8Ak5LikPp38sv/ACW3lP8A7Y2n/wDULHihkuKuxV8L/n9/5N/zJ/xmi/6h48Uh90Yo fnl5M8qX3mvzFBoNgwW9uorl7cN0Z7e2knVK9uZi417VxZM8/IT8zZvInm99L1Zmh0TUpBb6hHIC Pq86nikxB6cT8L+3yGKC+0QQQCDUHcEYoYT+dn/kqPM//ME//Ehirwf/AJxA/wCUz1v/ALZw/wCT 6YpL6a8z+XNN8yaBfaHqUYks7+IxSDup6q6/5SMAy+4xQ+LvL2pa5+T/AOaxS8VidOmNtqMa7C4s 5KHkoP8AMhWRPemKX09+cX5pWXlb8vDq+mXKS32sxiLQnU1DGZOXrj/JjjPKvjxHfFDwj/nGj8t2 8zean8z6mhk0vRJA6c/iE18fjQEnr6f943vx8cUl9fYodirBvzW/LGx876NRAsGt2ik6fdnb3MUh AqUb8Dv41jKNu17K7TlpZ98DzH6fe+QtR0+902+nsL6Fre8tnMc8LijKy7EHK30XHkjOIlE2Cyz8 rvzJ1DyRrgmBabSLohdRswftL2kTwdO3j0w8t3Xdqdmx1WOuUxyP46PsDStU0/VdOt9R0+Zbiyuk EkEydGU/qPYjtlgNvnWXFLHIxkKkEVha3Yq7FXYq7FUPqWnWWp6fc6dfQrcWV3G0NxC+6vG44sD9 BxV8Meb9E8yflX5/vbKxuZLeWNZRYXq7GWzuUZA3hXixB8GG3TFL0n/nFb8tPr2pyedtSiraWDND pKt0e5Io8tO4jU0H+UfFcVL6mxQ8H/5y+/5QjRv+2mP+oeTFITT/AJxS/wDJWv8A9tG4/wCIR4oL yH/nLD/yaEX/AGzLf/k5LikPp38sv/JbeU/+2Np//ULHihkuKuxV8L/n9/5N/wAyf8Zov+oePFIf dGKHxD/zjh/5Ofy9/wBHn/UDPiyLPP8AnKP8q/qV5/jnSYf9Eu2Ca1Gg2jnOyT0HaTo3+V/rYoDN P+cZ/wA1f8Q6F/hXVZuWtaPGPqsjn4p7NaKvzaLZT7UPjipZx+dn/kqPM/8AzBP/AMSGKHg//OIH /KZ63/2zh/yfTFJfV2KHhP8AzlH+Wv6Y0BPN+nRV1HR0434UbyWdalv+eJJb/VJ8MUh812cvmnzd daD5Yile8e3P1LSLZj8MYmkLtv8AygtUk9FHgMUvuzyL5P07yh5WsNAsQDHaRgTS0oZZm3klb3Zt /YbYsU+xV2KpJ5v82ab5Y0eTUb08m+zbW4NGlkpso/iewyjUZxjjZc/s7s/JqsohD4nuD5h13XtR 1vVrjVL6Tlc3Lcm47KoAoqqPBVAAznp5ZSNkvqml0WLBjGOI2CJ8qeWdW8zaxHpthUE/FPOalIow d3b+A7nJYoSyS4Q09oarDpcRyTA8h3nufT3l3QNP0DSYNMsFIghG7tu7ud2dj3JOdFixCEaD5Xq9 VPPkOSXM/YmWWOM7FXYq7FXYqhtT1Ky0vTrnUb6UQWdnE89xM3RY4wWY/cMVfDHm/W/Mv5qef7y9 sLWW5mlWQ2Fim5is7ZGcL4V4gsfFjt1AxS9J/wCcV/zM+oanJ5J1KWlnqDNNpLsdkuaVeKp7SqKj /KHi2Kl9T4oeD/8AOX3/AChGjf8AbTH/AFDyYpCaf84pf+Stf/to3H/EI8UF5D/zlh/5NCL/ALZl v/yclxSH07+WX/ktvKf/AGxtP/6hY8UMlxV2Kvhf8/v/ACb/AJk/4zRf9Q8eKQ+6MUPiH/nHD/yc /l7/AKPP+oGfFkX2pqul2Grabc6ZqEK3FleRtDcQvuGRxQjFi+IfNeheYvyh/MxGspWEljKLvSbt h8M9sxIAYClaryjkHzxS+k/OfnLS/OP5Aa1r+nGkVzYMJoSatDMpUSRP7q33ih6HFDyb/nED/lM9 b/7Zw/5Ppikvq7FDwj/nKP8AMz9D6Evk/TpaajrCctQZTvHZ1pwPvMQR/qg+IxSHzZZxeafKN1oX meOGSyec/XdIuWHwyrDIUbav2SRQg9VPgcUvuvyH5x07zj5VsdfsDSO6T99DWrRTLtJG3+q33ih7 4sU/xV2Kvkz8zfPGs3/m28i121ltLiycwxWJIKwpWo4mtG5D4uX7XypmozaXJklZIfUexseDDgHh b8W5l3n8dOjE/wDENr/vt/w/rlX8ny7w7bxw+rfyo0ry3Z+ULS60OZbtL5RLcXtKNJINmVgd14Gq 8e3zzZ6XAMcdufV8w7c1ebNqD4g4eHYR7h+3vZlmS6djPmD8xfKmga9p2h6ldiK+1I/ANuEQOyNM 1fgDt8K/0yJkA52n7OzZccskR6Y/b7mTZJwXYq7FXYq+bv8AnKv8zOEcfkTTZfifhca26nouzQwH 57SN/sffFIZJ/wA4w/lr+gPLTeaNQi46triD6urD4orIGqD5zH4z7cffFS8j/wCchPy/uPJPnqPX dIDW+marIbyykj+H6vdoweSNSPs0ajp7Gg+ziofSf5Q/mJb+e/JttqhKrqcH+j6rAKDjcIBVgOyy D41+dO2KHnv/ADl9/wAoRo3/AG0x/wBQ8mKQmn/OKX/krX/7aNx/xCPFBeQ/85Yf+TQi/wC2Zb/8 nJcUh9O/ll/5Lbyn/wBsbT/+oWPFDJcVdir4X/P7/wAm/wCZP+M0X/UPHikPujFD4h/5xw/8nP5e /wCjz/qBnxZF9vYsXnP54/lfF578pOlsijXtNDT6XKerGnxwE+EoH0NQ4q+SvLHnrVPLmh+ZPLM6 O2n63bPbz2zbNDdJ9iQK1KHbg48P9UYpem/84gf8pnrf/bOH/J9MVL6Z81eZdM8s+Xr7XdTfhZ2M RkcD7Tt0SNf8p2IUe5xQ+MfK2ka5+cH5qtJfMQt7MbvVJVqVgtIyBwU9vh4xp7kYpfT/AOb35W2H mv8AL46Np1ukN7pEYk0JEHEI0KcRAKfsug4/Oh7YoeBf842/mS/lTzY/lvVXMOk6zIIiJPhEF6Pg Rmr9kP8A3bf7GvTFJfX8kkcUbSSMEjQFndiAoUCpJJ6AYoSbTPO3lDVL0WOnaxaXV2wZo4YpUZpF X7TR0P7wCu5WuKsT/OL8qbfzlpf12xVYvMVkh+rSdBOgqfQc+/7LHofYnISj1Duux+1Tpp8Mv7uX Py83yZc209tcS21xG0U8LGOWJxRlZTRlI8Qcg+gxkJCxyLPvyh/NO68lat6F0Wl0C9cfXYBuY26e vGPFR1H7Q96YQadT2v2WNTCx/eR5fqfQv5hfmnoflXyxFqkEsd7dajHXR4EaqzVAPqEj/da8gSfo 75Iy7njuz+y8moymBHCI/V5eXvfImsavqOsanc6nqUzXF7dOZJpW7k9gOwHQAdBkH0TDhjjgIRFR D6C/Ib83vr8UPlPX5/8ATolCaXeSH++QdIXYn+8UfZ/mG3XrKJrZ5Dt3sjgJzYx6f4h3efue4ZY8 s7FWNfmL53sPJXlG+167ozQrws4D/u64eoij28Tu3goJxV8j/lP5O1L8z/zJe61dmuLNJTqOu3Dd GBaoi/56t8IHZa06YpfbkcaRoscahEQBURRQADYAAYoYt+Z3kSz87+Tr3Q5+K3DL6unzt/uq5jB9 N/ka8W/yScVfJ35N+e778t/zBe11dXt9PuJDYa5bPt6TKxVZSPGF+v8Ak1xSXsX/ADl4yv5G0R0I ZW1IFWG4INvJQg4qE1/5xS/8la//AG0bj/iEeKC8h/5yw/8AJoRf9sy3/wCTkuKQmflv/nK3UNE8 u6XoqeXIp10yzgs1nN0ylxbxLGGK+kacuNaVxWky/wChxtS/6leH/pLb/qlitM2/KL/nIK88/ea3 0KbRY9PRbWS59dJ2lNY2RePEonXn44op8/fn9/5N/wAyf8Zov+oePFIfdGKHxD/zjh/5Ofy9/wBH n/UDPiyL7exYuxV8s/8AOUX5V/o+/wD8caTDSyvXCazGvSO4bZJqfyy9G/yv9bFIQ/8AziB/ymet /wDbOH/J9MVK3/nKT8zP0vrieTtNlrp2kPz1FlO0l5SnA+IhBp/rE+GKh67/AM48/lr/AIP8mJeX 0XHXdaC3N5UfFFFSsMHtxU8m/wAokdhih6nir5G/5yf/AC3Og+Zk816dHx0zW3P1oL0ivQOTf8jg C49w3tikM68p/mZB50/K6wi1qUu+kajYW/mwE19Sw9T4Z5QP91OwUTV2oHrtigpfLb63bafyv3ng nura4fyovO6mNzqn6QC2lBIzJBLAFTgIkHOJ234q2FX0fgV5v5u/5UZ+nrn/ABL+jv018P1r1eXq fZHHnw2rxplR4b/td1pPz/hjwuPg6JP/ANY0f9qv/kpg9Pn9rk/66f01a4/6F19K3+sfo/0vTP1T 1PW4+nzavp1248+XTvXH0fi2Ef5Ss1xX15fao/8AWNH/AGq/+SmPp8/tZ/66f01S1/6Fx+sw/Vf0 d9a5r6Hpet6nqV+Hhx35V6Ux9Pn9rGX8pUb46+D1zLnnnYqw/wDMj/lWf1Kz/wAe/VfqfqN9S+uc uHq8fipx25cfHFWvy3/5Vh9Tvf8AAX1L6v6ifXvqX8/E8Odfi6Vp9OKsxxV2KvKvN/8A0Lt/iO9/ xP8Aon9O8l+vetX1OXAU58dq8aYqnfmv/lUn+EtI/wATfU/8Nfu/0P8AWufpU9I+l6dfi/uule2K pr+X/wDgT9An/BP1b9Deu9fqlfT9ai8+velMVY5+YP8Ayo39PL/jf9Hfpn0E4/XOXqehVuHTtXli rGv+sUf+1L/w+Ku/6xR/7Uv/AA+Ksl/L7/lRv6eb/BH6O/TPoPy+p8vU9Cq8+vavHFUF5u/6F3/x He/4n/Rf6e5L9e+scvV5cF48qf5FMVeq4q8t8lf9C+f4ms/8Jfoz/EH7z6l9W5er/dP6nGv/ABVy r7Yq9SxV2Kpb5l/QH6Av/wDEPo/oT0W+v/WP7r0u/LFWI/lz/wAqY/Sd1/gP6h+kPQ/0r6ly5ejz H2q9uVMVY+v/AELL+mR/xyP0r9Z/b58/rHqftcv2ufWuFXsGBXYqkHnn/Bn+HJ/8Y/Vv0Fzj9b65 /d8+Y9P3ry8MVYx5B/5Uh+krr/Bf6P8Arv1Zvrv1XnT6tyHL1eXw8K064qmXlj/lUP6ZH+G/0P8A pbi/o/U/Q9Thtz9Dj+x05ent44q//9k= uuid:746822DA1321DF11A166B14B4D8AAB0A uuid:746822DA1321DF11A166B14B4D8AAB0A uuid:04cc0f3e-4992-4257-8c3f-0fad522485de uuid:3902DB5D1EF9DD118941FA0A30D9FC80 Xilinx-Logo application/eps Print endstream endobj 1172 0 obj<> endobj 1173 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-30T12:14:16-04:00 2009-07-30T12:14:16-04:00 2009-07-30T12:14:16-04:00 256 56 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAOAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYqlU19pV lrNzLd3kdvI9vbKVmZY1oHnKlWYipNWqPbFVT/Evlz/q62f/AEkRf81YqmEciSIskbB0cBkdTUEH cEEYq3iqTWOraFZQyQy6jBExuLpys8iRNVrmQt8LNWgeoB70xVFReYNBlkSKLUrWSWQhURZ4yzMT QAANuTiqPxVA66sLaJqCzuY4GtphLIo5FVMZ5EDatB2xVqXzBoMUjxS6laxyxkq6NPGGVgaEEFti MVVLXWNIvJfStL63uJacvTilR2oO9FJOKovFUv1lrVUtZLmX0UjuY3D0FKrU/ESRQeJxVr/Evlz/ AKutn/0kRf8ANWKoq01CwvUZ7O5iuUU0ZoXWQA9aEqTiqviqV3V1p1pq/wBYurlLci2Cn1SqJxMm x5sQK17Yqv8A8S+XP+rrZ/8ASRF/zViqOguILiJZoJFmhcVSSNgykexGxxVfiqURalo1je6iLi+i gkluVZ0ndIqMLaEUXkfiHHia++Kqw8yeXTsNVs6/8Z4v+asVTHFXYqkmla15etNKsbY6nbr6dtCF E0sccnH01KlkLVUlaGmKo631zRLmZYLfULaaZ/sRRzRuxoKmigk9MVRuKoHWVha0jEzlE+s2hDAc jyFzGUFP8pqAntiqOxV2KsS8+WGvXT6ebGC9vNPjE4vLPTLwafctMyr9Wk9czW37qOj815b1U8Wp TFWKT6b+bt1oVvpVp9b03V7fV724l1m4uba4gksZlvPQjUpKJWC+pCoDwKFNGCfDTFWdWWu6NpWl afb6vdx6RdG3jJstSvY5LlaChDzPI5lIIIL8jXxxVLdCSDX/ADVqWvTWyTadDBHYaLcsoZZY1lkN zKpOxDyoAvbiqsPtYVZP+jNN/wCWSH/kWv8ATArH9O1XS/Ldxc6Jql5BY2kTevpEtzIkSNbSkn0V ZyorA/JOI6JwxVGS+fPJUUMk36dsHWNWYrHcwu54ipCqrFmb2G+KoPyVowbS5tS1XT1g1XVbqe7u 4JUUtFykKxRb1+zEq1psWq37WKpxqPl7Sb6xns5LaNEnRkMkaqsiEjZ0YCqsp3U9jiqV6Z5z0iGz Ftr+p2djrNoTBfwzzRwEyRmnqqjsD6copIn+SwxVD+ZPOejTaHd22hXtnq+r3cbQWNjbyxXDO8ik cmjRiWRFq7/5IOKp5p3l7SbGxgs47aN0gRUEkiq0jkDd3YirMx3Y9ziqA8zaNSxj1LSbVBq2lSC8 tEiVVaYICstvtT++iZkFdgxVu2Kr4vPnkqWGOb9O2CLIqsFkuYUcchUBlZgyt7HfFUq17VtM8yT2 GiaVNBqltLcJNq8lu6zpFaxMKozIWCmZiFoeqc8Ksp/Rmm/8skP/ACLX+mBUh1mO30DWLTX4lS30 +YLYa1xARFjdiba4alB+5mYqT0CyMx+ziqN/xv5LrT9P6bXw+twf814qlVrNZeZfN31uGOO70XSI ClvdqBJFNeygcyjiqusML8QR+07jquFWTfozTf8Alkh/5Fr/AEwKkMd7p3ljWLm0vZ4bHR9R5Xlh LM6xQxz1AuYOTEKvNmWZR1JaT+XFUaPO/ks1pr+m7df9Lg/5rxVLPKVkmpXer+Yb+xVX1KdBY+qg qbGKFPq7UYdX5s7dxXifs4qyGbRtImieGWygeKRSkiNGhBVhQg7dxiqR6R5i0vRoH0XXNSgtLvTm 9GCS8mSJri2oDBMDIVLngQjn+dWxVXvPPnleOzkksdTs9RvONLSxtrmGSWeVto4kVWJq7ED2xV3l Dy5a2Hlyxiu7WJr6SMT3zNGAfrE3xygBqlVVm4qv7KgDtiqvr/ly3vtLliso4rXUYys+n3IQD07m Fg8THiAePJQHHdajviqHsPP3laaxhmvdTs9Nuyo+tWN1cRRzQSjaSKRWYEFGqMVde+b/ACvcJBBa arp15cy3VqkdutxDIzFriMVVVepZftL7jFV8f5g+QpIJp4/MulPBbcfrEq3tuUj5nivNg9F5HYVx VWi86eTpb17GLXtOkvYyBJardwGVSzBACgfkKs6jp1IxVZJ578jxQRXEnmLTEgnkeGCZry3CPJFx 9RFYvRmTmvIDcVGKrrnzx5LtXukudf02B7JxFerJdwIYZGJASUM44MSp2bwxVNLK9sr60ivLK4ju rSdQ8NxC6yRup6MrqSrD5YqoxBP0zdETcnNtbgwUPwjnPR69Pj3H+x+WKozFXYq7FUHpAQWsnCb1 x9ZuiXoRQm4kqnxfyH4fo2xVGYq7FUHrYQ6Nfh5vq6G2lDT0J9McDV6LuePXbFUBc67qbarc2Gm6 at4tmsX1id5xCBJKC3pgcHqVTix/1hirv0l5q/6skP8A0mj/AKpYq79Jeav+rJD/ANJo/wCqWKoP U9R8zH6pz0qKGlzGVpeV5tvRNotq4VRn6S81f9WSH/pNH/VLArv0l5q/6skP/SaP+qWKu/SXmr/q yQ/9Jo/6pYqg/wBI+Zv0zX9FRep9Wp9X+ubcfU+3X0qe2FU60XVF1TTYrwRGB2LxzQMQxjlhdopY yR14SIy4FRuKuxVB2AQXWpcZvUJuVLpQj0z9Xh+DfrtRtvHFUZirsVdiqD0QINGsAk31hBbRBZ6E eoOAo9G3HLrviqMxV2KoPVwhtY+c3oD6zakPQmpFxHRPh/nPw/Tvirzc/kYkFnosVhrUom0q0FrK 959cuEkZQgWSDjewS2QHFvgt5UB2B+EFWVT1Py2uFkhc6y7FLTTLWZjboWkfSUujDNQsUr9ZuY5u JQgGOm/LZVjqfkKZYriO+16UxSWV5ZQW1mLy2hiN3FBCH4tezyMiraqGgL+kw4gIoXdVNf8AlU9y 0PmS3k1kC21+1vLWKGOCQJbtfytLJII3uJI6hm6QpEG6vzb4sVZxqMusRiP9G2tvck19UXNw9vx6 U48IbjlXfwxVJ47vzf8ApW4po2niT0IOU36QuKMOc1FB+pU+Hc9O/wByqK+t+c/+rXp3/cRn/wCy HFXfW/Of/Vr07/uIz/8AZDirvrfnP/q16d/3EZ/+yHFULpl35v8Aqz8NG0+JfXuKodQuASfXfk29 kftn4vp7YqivrfnP/q16d/3EZ/8AshxV31vzn/1a9O/7iM//AGQ4qhdWu/N/6KvfU0bT5o/Ql5wr qFwxccDVQBZKTXp1xVH+XdNvbOC7nvxGNQ1C6kurkQO0kYqFiiVXZIy3GCKNSeI3GKprirsVQepn /eT9z63+kx+Pwdfj28PfFUZirsVdiqDr/uZp6P8Ax7f70b/z/Y8PfFUpt7TzNpl1fx2FpZXWn3F0 91betdywSJ6yq0qlFtp13n9R68v2sVRH1vzn/wBWvTv+4jP/ANkOKu+t+c/+rXp3/cRn/wCyHFUL ZXfm/wCs3/HRtPjb115udQuAJD6EXxCtka7UXanTFUV9b85/9WvTv+4jP/2Q4q7635z/AOrXp3/c Rn/7IcVd9b85/wDVr07/ALiM/wD2Q4qhdJu/N/6KsvT0bT4Y/Qi4QtqFwpQcBRSDZMRTp1xVFfW/ Of8A1a9O/wC4jP8A9kOKu+t+c/8Aq16d/wBxGf8A7IcVQupXfm76vH6mjafKnr2/wrf3DEH10o9B Zr9g/F17YqyTFXYq7FXYqlus62mliItaXF163Kn1ZVbjxp9rkyda7YqkkfnHjqM9w2maiYJIYY44 vTj+F0aQu1PVp8Qdfuw0hEf45g/6tOo/8iov+quNJd/jmD/q06j/AMiov+quNKp3P5hafa28lzc6 dfQW8KmSaaVIUREUVZmZpQAAOpONKgfL/wCYum3mnG4tLe71KB57hkurf0Jo+LTOyoHWYj4FYLTt TGlR7fmBYrMkDabfieRWeOIpCHZUKhmC+rUhS61PuMaVf/jmD/q06j/yKi/6q40qH1Lzj9Y066t7 fTNRinmhkjhl9OMcXZSFaolqKE9saQqQfmDYXCs8Gm30qK7xsyJCwDxsUdSRL9pWUgjscaSqf45g /wCrTqP/ACKi/wCquNK7/HMH/Vp1H/kVF/1VxpUPe+cfW+r+lpuox+nMskn7uMckWtV2l71xpCOh 87aO9le3MqT2z2Hp+vazR0mPrnhBwVSwb1XqiUP2hTAlR/xzB/1adR/5FRf9VcNK7/HMH/Vp1H/k VF/1VxpUN/jH/cl9Y/Rmo/V/R9P0vTj+3yryp6tOm2NIWXv5paBYXFtbX1vc2txeNwtIZzbxvK1Q OMatMC5qw6eONJU4/wA2vLEtxNbRJNJcW0iQ3EKtbF45JH9NEdRPVWZ/hUHqdsaVTT84vKMmoLpy GR9QdmRbNZLUzF1JDKIxPyqCpBFO2NKjLXzj6U948mmai6TzCSBfTjPBBDGhXeXb40ZtvHGkKk/5 g2FuqvPpt9EjOkas6QqC8jBEUEy/aZmAA7nGkqn+OYP+rTqP/IqL/qrjSqdv+YNhcwR3Ftpt9Pbz KHimjSF0dWFQysJSCCO4xpVPTfOP1fTrW3uNM1GWeGGOOaX04zydVAZqmWpqR3xpCI/xzB/1adR/ 5FRf9VcaS7/HMH/Vp1H/AJFRf9VcaVTm81/Xmt7WCwv7aSS5tv3zoioFE6FwxWQmhUEHbGlZTgVJ fO2iXWu+T9a0W0eOO61KyntYHlJEYeaMopcqGIFTvQHFXnlz+Umuy296iWukxrfJLHp9h6sn1fQZ H2F1pZW2UtKT+8YcYvjHwsBiqtqv5R6tqtjq1hfLp8sItdZh0KWVnlPr6xffXUnmRoaQNb8VRTGz k7nbpirNtYtH0+ysrPRtGea1hDIltY/VYI4VFOKhJZIFAPYLiqSrd641w9uPL1/6saJI6+pYUCyF gpr9ap1jOFCpz8w/9S5ff8jdP/7KsVdz8w/9S5ff8jdP/wCyrFUt8x6V5g1ry/qOkHQr6AahbS2x m56e/D1UKcuP1ta0r0rilg+t/lJc6ybu60rSr+zmnWO3M92LDUWL2083reqby+dpRIXUfEdvTQgm gxVqL8mtfjZpDa6jdScDEv1xdOmRojcwXnpTqL5PVjaeKYutRUSlRSm6qGvvyT8z3S+kYr5oFhSO JZ4tPmb1BBaQPI5Ooqr1+oKyqV2Y78sVTrzh+XusapJrGoSaZf28V5bJzhdNOuI43jeFrib0xeKX MsNnFHQbrx2O9MVSmw/JrzVaWFracNRdooJ4ri54WCyu8q3wSVG/SJ4Mv6TctXlyKr9nFWb+T9C8 y+XvLtrpEuj3t7JbmVmuF/RlupMsry0SGO7KRovPiqrsAKDbFU55+Yf+pcvv+Run/wDZVihTmu9c h4ep5dvx6jiNKSWBqx6dLrFUDd+Vdf1O7OuPYS2l1pfpDT9NklgrdfFyn9X0pZItlNIOb/C9W2Bx SmXPzD/1Ll9/yN0//sqxQ7n5h/6ly+/5G6f/ANlWKqf1vXPrH1f/AA7f+rw9SnqWFONadfrVOuKs d81eUvNGu30E6aVeWsH1S4sLyJhYSPJBdSQyP6Ugv4vSkH1cBW4tStaYpSx/y682Mlon1G646SiR 6LWKwLIEvLe8Bu2/SNbg8rNFJX09ix6moVTbQ/KXmHTLyxvG0e+mmtbe/inAOnoskupXcd5LIoN6 /BRJGQqb7HrtuqwiD8lda9RoLW3vUgtrNNPuLb6tpgDzeijOzyC9WVopC3qvEHoXNeVa4qmMP5Q+ ZF1SG+ltb2dbeLT0hgeDSgA+nvasW5LeqeEi2dFTonqOR9puSrvMv5P+YtXur2eC1v7UXM7TwRum nTC35c5awkX8RWQXM8svMfzUNaA4qgLn8kfN8ttHbxi8jiit4oUR7XTJkZkgtIHMscuoMjqwsFZV 4/CxrU0xV6Xog16LRbCJNE1G6RLaFVupZNPEkoEYAkcfWhRm6nbFCN5+Yf8AqXL7/kbp/wD2VYq7 n5h/6ly+/wCRun/9lWKrornWIbm1a60G9hgNxAjTNJZMqepKqBmEdy70BbeinFLNcCuxV2KuxV2K oeOO6Gozys9bVoYViSvSRWlMhp7qyfdiqIxV2KuxVD2EV1HAy3L+pIZpmVq1/dvKzRrv/LGVGKoj FXYqh9RiupdPuorR/TupIZFt5K04yFSEaorShxVEYq7FXYqh72K6k+r/AFd+HCZWl3IrGK8l28cV RGKuxV2Kof0rr9I+rz/0X0ePp1P95yryp/q4qiMVdirsVQ9rHdJPeNM/KOSYNbCteMfoxqR7fvFY 4qiMVdirsVQ+mx3UWnWsV2/qXSQxrcPWvKQKA5r3q2KojFXYqhtQiupYFW2fhIJoGY1p+7SZGkG3 jGGGKv8A/9k= uuid:3B0F9C07247DDE11ABFED599EBFEC7EE uuid:3C0F9C07247DDE11ABFED599EBFEC7EE 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 1174 0 obj<> endobj 1175 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-30T12:17:20-04:00 2009-07-30T12:17:20-04:00 2009-07-30T12:17:20-04:00 256 60 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAPAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYqgdSFuLnTZJp hF6Vw7xgioY/VpgVJ/ZohZqnwp3xVV/Sem/8tcP/ACMX+uKqsNxbzgmGVJQNiUYNT7sVVMVQOpC3 +s6a80vpGO4ZowRUO31aYFSf2aKWap8Kd8VVf0npv/LXD/yMX+uKqsNzbzgmGVJQv2uDBqV8aYqq YqgdWWAi0M0vohLmNlPEsCwrRfavjiqr+k9N/wCWuH/kYv8AXFVSG6tZyRDMkpX7XBg1K+NDiqri qB1hIXtIxLJ6Si5tCGC8qstzGUWgp9pgFr2rXFVX9J6b/wAtcP8AyMX+uKqkN3azkiGZJSNyEYNT 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 uuid:3F0F9C07247DDE11ABFED599EBFEC7EE uuid:400F9C07247DDE11ABFED599EBFEC7EE uuid:3E0F9C07247DDE11ABFED599EBFEC7EE uuid:3D0F9C07247DDE11ABFED599EBFEC7EE 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 1176 0 obj<> endobj 1177 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-30T12:26:41-04:00 2009-07-30T12:26:41-04:00 2009-07-30T12:26:41-04:00 256 48 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAMAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9QalqmmaXZve6ndw2NlF T1Lm5kSGJeRoOTuVUVJp1xVQfzH5ejtjdPqlolqteU7TxCMcYfrBqxam0P7z/U+LpiqIvXhfTp3J 5QtC5LIQaqVO6np06Yqlp85eXeTKty8nBmQtHBPIhKkqaOiMrbjqDjSovTNe0rU5JYrOYvLCFaWN keNwrkhW4yKpoSh39sVR+KpLP5k0LT9Ru7SedhdhkllhSOSUhXjVUYiJX4huBpXqQcVXwebdAnuI rdLhllnYRxCSGaIM56LykRVqe2+KpviqW6tq2maZPbz383oh1eOLYtyZmT4QqhmZtuw6VxVDf4y8 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 uuid:205C5BC3257DDE11ABFED599EBFEC7EE uuid:215C5BC3257DDE11ABFED599EBFEC7EE 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 1178 0 obj<> endobj 1179 0 obj<> endobj 1180 0 obj<>/Border[0 0 0]/Type/Annot>> endobj 1181 0 obj<> endobj 1182 0 obj<> endobj 1183 0 obj<>/Font<>/ProcSet[/PDF/Text]/Properties<>/ExtGState<>>> endobj 1184 0 obj<>stream H‰ÄWÛnI}ï¯ÈǪÕv9ï—yÃ6F ±hìbv%­L»1 v›énùü9‘‘YÆfvöe±PWFeÜΉˆÌRâzqôâB‰ëýBû.F\蜲SZJƒ_mRJb·^|\èP_[GæoNö^¬ö™¢x!Z£Ä~µ]8+¬é wÒ EY žé•ï’—*¿Ó±“š_÷‹£3-”è?.I¸¼êýíBBy /õ+,û‡E£dlûÏP4¬8„…?EÛÎ#vÑŸ²¶r¤ý®yxxh½ì\Ó}ÛÜl¶íÒáù[·º»mß÷¯Ï{Q@*x­Ñ"Iaâé€mÐŒó e—§ß5g/[Û…æìMþ/Ö[<˜fÝ.m³»<ÜíÄo¾S9Š!/ =#–ªÓzÈ¥ 'ØöÛv:Û¼hu£B»DèϾîÚ¥òon„J,þ»Ð’Ÿ”¬ÿ ©¦cÁ:ÊMvÉQ1ŒäºáˆÓW©X¢W,z %Ø5~Æ0.y¹‚Ù³¯@ }]óïöŠ7ßÄÉOªBBð&1ãÙD&œíZ¶vú¦%4ÞömìT#οþ ÷mÈ\ÐóϺ¿´ÞbÛe~ssŸuÖ¢õM¿Éfnùg{]aü…¾ ‡4‚÷.ˆ¥¨„Æ?ÿ&¶ÜRuV#}Ý%+œ§ZS¥ŽNïV÷·ëíA½>Q`üøôdñó„Ÿdð:RšD©¬R1³„×Ôà5„.$42Ê7-nÄÜÁ›Î£·o ¡&·3‰C«ëAëÉΧ(©PuÖ)ò­’/•ñ´;ÓÔÍDò˜›§3¼8×yéþª—¢õß'óˆP¥ÕÌÍ(yÌÍ’QÔo‹M3ã!u1¹¿ÀC5ZšZŒÎU&h—Ï…b¥_gÛÔá»bÁM”²&Ÿ:RXN¡'¬öÄw>¤™„ž¹²Z—=M†g ¾òˆY‹QÏöØÎ†0“ }£›úž@ý8ÄSΊ“ ñTö'ÿÀHz…Iò³L'ñ ”¯Å»÷R\Á"†´13\Šdˆã²ˆ¸ÕlW‘L¢#îQ‰³L=c;í⣒1#g0ü‚z«’iL˜Ò*Îb2 eE˜"Oå²õ"ù3ÀRšÇ$cÜÐr¹` |ÉèsµŽ»J&{|g‚{L2ÉíW˜–4q¼€U™8?–Jå‚ ÙŠÑêpœø¦Ù9Õ)ï¦õj#.aš‹ Ø3Ë—kã´†°…2‹3vÑÏr| õŠxì|¼‚CžßiÅyo8âHÏÙu„ ×€rœíI^‡²tyé”)ë(VY¦YâyC*|Êk_í¡XÁS¬$¡£Ö‘ hÌZYÖ¨XÖÚ²$°Í`؇©u‹UÑ(ˆSíÈ.8+‹;X ŠcÂ4ã˜<ãâ {ð¦¬í…Ò,)i—÷%kgÙ¡ Õ“eG,°õX`6aX³‚*0‘äf&!jnŸzÂÀŸ/™‡Â_(}‰¨Ù ûIn—xG²ºäfkã"ѶìP³‰V—¹’*Ñ…9YÐvy ~ªEÅS•.UI>ØôÄäz¦Ï;è1IÕÂôr /·tó&Šó–%¹› ~©€\A™:QçuP쇦Ì*kСJ]ÞÁ0c­¸¥Vy­`±nØ«RŒ£öìC&®A|, ëRSÆÎvø’mµ Š£ã,ŠTç(®çv–M1=ÉOO‘À:¸+Ö0šmÄÌ.Ö…9º•KúŠB‘hö`J³’xô€‚ô±(è2S\ŒbŒÑæfÌœ†¡žJÅEÏy3˜›fŠÖßM)œ-†5k¬½ž°ÁkÖ`¾ÆÌçh}¸¡õ8ŠZ35ÊZUcnènδÖeE¢VÃS𠉵u#Øã²²Q%…®ª_Ùœ÷+]g¥/ÝbÊŒ œ†­t¤d,@Ô¤"_é{Ša(ÐÖÖÉ# ˜­³Q&†ZK.|myݘ§äкžRi¶#È8³møÎGŠqŠLM‚D *?I‚ªv’c(W›ŠÖ•(ã‹‚+°™Äöñ2UÇõØ',3ªìÐLE(­iËòUƒ@ïF1„ˆÞva’zß™Úëe$Ù$F0^jÓXöOc» vY.Œå°a”éŠa'<ðº4‰U³ÌdµP¹}Ôj¨QÔj©QÖjÓ¨õV-åXP¨å: „(°…2˵q˜ëzÚ"UÂTU •ÊyG¬pÓzþúdñóâèÅ…×ûÅq¿8:³B‰þゾaðA E~ÈsL!p+ú[þžXíókþÃGš„é~…ïˆþañ®9kQaÍæú~×Ò§N³n—šnžÍÉÒ¶ïûWØw½°t›ÁgˆèO³CÞ5bß"ÒæS+»ÐÜ=ìÅáÓZ´¾9}ó¶§ßlÒÁ$¾_šýºÅ@kôâ·Ë¸Í=œu¶ÉJïvØ`±Ùâ74Wë¯ëí+m³‡¬ºº¹[}ÉÊâÃøxþìµøp¹__Ñ–³—goXjö"g°,á/ñ)!A!%A 4ÿnÚþ3LŒ¤ìŒÁÝtÈõE»ÎOÿs~Ñó΂9¨W .ï\ÒVœ…Ù`Ûå}€}IÃ÷¶%>0%}éT‘‘ü îi2 Ù?Î̦h—¾!VfF,3b+ѹÅt(ÐÁ\6>ˆÂt-1ʉӓ,!0khºÌš³æqµÉ¿ûÃŽ>Ü@Û@`®¨Â›V¸¡áJ8!.g+ý8q”Ëøe» ÍÙ›} ¶aÔ’‰[nîï¨Í-ð¿ð{fx}æ1Ëô@½ç“KÔ{hÔì #``)r°ÿZžƒàLôGàŒúíÛ„YÛ\¶J7»ëònM«81„ÛRœåÇÔlZ|_Úæš^ß—½»jPÔ¾=:‹ˆ@ó_ª`ˆÂ”%L†0ñA[FÆ/¼iDH•ér«’}ŒÌæ§âE³—R×ó‘Íavfs<PPHžšv¿>àEöKK3É“ôæå×jM¥…¾kvâå6W4M„¼‡ ,ÿÄ «U„a™Ç$€zj¾PQ±òz|¹Ï;¨N7W" ÎáI:J¢þÿJ¨û!¡É “p–üŸ›ëÌÜ}Á• å¼ä¥û#­tÞ´Z;ô{¨´æ–}ÛcJˆóõùë<`(UÞà× Aò›{ìâqO“ ë­_n¯èUÖûºÎ›A3žC>>D?17Æ£Æ:Ãu4Ä%AóìK&þtC³æ‰8DVFÎq»¤ÊºlM>¡®²ÂPÏûLº;T ‘.ÅB'Ì@/Rꜻ5Îæ£Ó»ÕýíÕxôúDi#ާ½ü~㸭(ü¾Å>Ê´š!9CÎk¤´@£­¤ÀE†]4°ÔÊ¿‡3<çJìæ%y¿åp‡—ï½¼»=Jtóªé±nYûg˜‹æb]smŠÊP­Ñ÷ç°Ô¿aƘúwA«²×oç­W÷ßÝ~óuÍGuù .45{/u·ïöoï\5·¤M°{{䮆4VSV«+W{"¬1š‘p¯kdžeÖ/êñ­ßíAù ~ÿ9§óËsíKBíKÒVÐÙÌXniïå'4héHÞðs <…Úö &®åhœÞ›äí’qõyב£ÙìÇ`ËÐùõc°ŽÜYqCÃÙ YSå0ÑÅùîÆÔ¶8oý˜zWEêÇÌ—Z~»1¨Öã4 Å !ì‡`á(<ݘXuV‘ò°òˆÔ° +È,qXyÀ%w?fÂuXzM&ë°ô¹^é†w†èe–ŽíËÛÚ™ð7KŸOûè,° ‡~'d§<¥a \-ýÒqÿ„½[?¦ÔÛê:ŒÁÿr>…´Â‚zïY.9í÷²% YW7lh*õB…‡—ýºS¶²\Ò¶öO•p ! ¤\6ìhG6ˆ1÷óÄi½lkê bº„þ©ˆ{»-R÷/ `Ã+Ó$,+®Á²¶­jIxå¥'°{[æ,x奟'cYë03äû‡¶ oœ‚u–~L‚KÊÝ4 ~mqÈvY¦~¡)¬xå>:)b¡CtRÄœK?Ï‚e­ÃÌ –‡÷Y±ë°Î2\Ïu?KÉûyìȆUM}Hä±iHu?ñ~x«i®J‡uÆO%ŒAâ k­:Ûeú €Îl^‘R‚GTMâÜOgÆœºr>☇>2Är®Wüþæ cž^ÀQ˜q\j§°À½Ï…iÇ!>~ §À¢zŠÃÑô·1 tÏ)îGê˜ç×Äó¼ýÓ÷È ?·‹ý~.•ç“×yLN_<žjòœâyÂíŸGTë›.—’pVß#sÌ¡Æcó’÷¿K:âñ«¿}|ó"NW?ÿç‡ÿ|üêtógD|>?¾=…KAšÎw§«Ÿž^<~ïâñr?òñÕùçã+>6aY±}÷¯á)$=õîùC5Ó´ßúäCoê7_>~vƒ“ñˆ’7åÏG¼q|¦Ÿ“aƒÿ¸ŸûÄ£ƒ@OËïÞá«»¿~ûxþøf 87öéy°êŸï+ÒÊ麯ÿ=Ô 4B+äH°y=_㾆DôñÍéÕùÞirÍX8!5Ôj‡PÖÜØH=+ë%íE.ûÙYãÞòôµ®n‘ŸAjÌȨÎ5v$]Òô$^Rž*XE͹&(%sÚPdžy°èº&Åe¯uz*N 4 ýúôdF˜§adÐÍKO¶£ú©€£?„4¢HÁ¬”KZ‡yp7šk!ëêsÔˆþ¯Ä4ì^\‚ÝË[? šÏ9¥`ÿ† Æ¥à0 áAõ›—!ÛiB K$Iv„@Š4`C$ü  ØÉA@7"¦/¨x–CDv˜PúABAü™†˜P:b@ILh‰ˆ41¡'&ED¦˜Pº""YLh‹IÓE@¾˜PcBeDäŒ ¥‘5&ÔÆ„Þ˜P™cBuLäÚ¹‚ìÜ!±;"rGDî4"wôYîˆÈ¹# wDä‰Ý‘;"r‡ÄîˆÈ¹CbwDäŽÝ!°;"rGDîˆÈ»#"wH쎈Ü‘;"r‡ÄîˆÈ¹³m{ãß¹CbwD䎈ÜiDîè³Ü‘;$rG@îˆÈ»#"wDä‰Ý‘;"r‡ÄîˆÈºC`wD䎈Ü‘;$vGDîØ¹#"wDä‰Ý‘;"t'E¿awDäŽ Ý1¡;$tÇŸéŽ Ý¡;tÇ„îˆÈºcBwDäŽ Ý1¡;"rÇ„î˜4wäŽ Ý1¡;&tGDî˜Ð¹cBwLèŽ Ý‘;&tÇDîäaÜ!±;"rGDî4"wôù´—Mo$E †ïý+æ˜ ¥©×וÍràCÀÎ !„²h"åïóº{ì²'›ˆË*‡ž<]媲߶]ª%ª!ªª%ª!S;JT;JT;B¦v”¨v”¨v„Lí(Qí(í˜ÚQ¢ÚQ¢ÚQ¢Ú2µ£Dµ#djG‰jG‰jG‰jGÈÔŽÕŽÑN 耊½H)QíL"Ú™D´#D´3ÿíL"ÚQ"Ú™@´3‰hG‰jgÑÎ$¢%ªID;“ˆv”¨v&íLrÖŽÕÎ$¢ID;“ˆv”¨v&í(QíL"Ú™D´3‰hG‰jgÑÎ$¢ãÿ–D}­ƒ/A´Æ¶]?á ŠM .m¥!~|¹Âä¾Ýj!EÊÉ‘²ŽQí¬÷@^– êÔ-Á¯­ŒR%K îì~rìkÛšo% êI lÙ™!+WGp¬1ì¬BØr±¤â %:yÇbílbv–;Ž•í¤°cw†sv;†ÎI͘¡¸† è!؃R‚,“õ) Œœw(wl¹[;ǪÎrÁ±²Û¾¤VÀ9»# ç´® ÞÖl<9a„`]JÑËÖ¥ªÁÖ¡þ4Å[ߺŒ©Må:¿•§mËšÔ,“­&©‘Yh&s\'‡Vü¬XÏ0æñ×?æVsÄÏ«f,wfU¦"}½›C²tËöÀO‰˜yûɇ×ÚNøòZÛÖ:.Ÿ("@¢çŸ R´Í%öR>œîዘù‹À3qFâg¡Ý?^}ûpwÃÕûßþ¼þéôÅòéçØK<œÞ.ií`út»\ýóx}úïòþ ‹”z~ux¿¿’iü‘äó»_ܬ€ª#³Þ]NJÈ2絞tÇo^Ÿ^ îLÑâð„0ñ’Ãeˆºw&è'Ä÷c­õLp3Jpîýÿ÷êö›ïO‡‡;ïk‰é㥟ÅË_†4¢$µÒ¿îvö.ˆ(nr+—ê´3MÐÃÝ’"\Ç©ê<æ~ùá`¾æ‚¼h+~„ªÚ•pñ«+·mMqOD]Sq¥/4;™29€^¦rv5„Ö„¨bk–äu$7 ¹-q ž•¥Òp}Ópvà‡ºÝÉ„d´~[éÓYíaæÊbœƒæÁ81g'6h3[Â*ºYh]²sifE§èX\”*×5CP®­S3AÓè‰,AôruÑk6~íM%rñsNÍh³sjFAªÅ¹õg ÀŒ¦¨%h¯ÖsRkkö>ía¯ß†dÌr[FßÔøX“pUõ>E«ŽÜÔY²î!D=$k‡?ªÓ 4NÍjŽ[FøÞÄÏ©‡«F·g'tdÍi…›ÚÑÝ,¤ºìœJEÝ©‡è1¬\KÙ‘º÷s·ïÕú‡JÚ»CÊÖ{;¨€-GA§T~—»ójCÉù§!‚ÉÙA‹¸u¬“ ;NªÔÑí¹ÿûvQ0ß:ߣŒÎt.|øÔǰ“¸ƒÂm‚¬‡ÛJìÃ6gbŠGýÁ,\LJfŽ+JÖιßr5™Çå»gú¤ê-­bhãë*ÖÕ›ÛŸßøZ±_2öŠp¼¨[ßÞœøÍ w‹Ä]õØ8ì½úêËs!yýõ«å?EGÍ endstream endobj 1185 0 obj<>stream 2010-02-23T23:11:54-08:00 2010-02-23T23:11:54-08:00 2010-02-23T23:11:54-08:00 256 52 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgANAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9C+evO1h5U0hrqakt7LV bK1rvI/if8hf2jmNqdQMUfPo7Tsrsyery8I2iPqPd+3ufMuratf6tqM+oX8pmurhi0jn8AB2AGwG c9KRkbPN9T0+nhhgIQFRCa+SfJuoeatYSytwY7aOjXl0R8Mcdf8AiTfsjLMGE5JUHE7U7ShpMXFL eXQd5/V3vYPPH5Q6Ve+XoI9BgW31HTY+Nv0HroNykjd3JqQx7+3TaajQgw9HMfb+14vsv2iyQzE5 jcJnf+j5jy8ngMsUsMrwyoY5Y2KSIwoyspoQQehBzTPokZCQsci9S/KD8tTqMsfmHWIv9x8R5WNu 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 uuid:756822DA1321DF11A166B14B4D8AAB0A uuid:756822DA1321DF11A166B14B4D8AAB0A uuid:2ce10ee7-ab7e-47a1-ab74-ba52a175e9b1 uuid:9BE66E38ACF8DD11A109F7C6E663E7AC Xilinx-Logo application/eps Print endstream endobj 1186 0 obj<> endobj 1187 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-30T12:20:15-04:00 2009-07-30T12:20:15-04:00 2009-07-30T12:20:15-04:00 256 88 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAWAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FUBqZtludN knl9L0rh3So2JFtMCGNRxATk1fbFVv8AiXy5/wBXWz/6SIv+asVRVpqFheoz2dzFcopozQusgB60 JUnFVfFUuvZbKDVra5ubhYPTtbn7dFTgZLfkxckBeJCinevtirv8S+XP+rrZ/wDSRF/zViqLtby0 u4vWtJ47iKpHqROrrUdRVSRiqtiqVyXWnWer3dxc3SQVt7VHEpEaKPUuCh5sQCWJbb298VX/AOJf Ln/V1s/+kiL/AJqxVHQXEFxEs0EizQuKpJGwZSPYjY4qvxVKfr2k2OpX0l1exQPKYgVmZYgOKbcW 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 uuid:410F9C07247DDE11ABFED599EBFEC7EE uuid:420F9C07247DDE11ABFED599EBFEC7EE 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 1188 0 obj<> endobj 1189 0 obj<>stream application/postscript Adobe Illustrator CS3 2009-07-30T12:22:41-04:00 2009-07-30T12:22:41-04:00 2009-07-30T12:22:41-04:00 256 88 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAWAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FUDrKwNZp6 0hjQXNqwYDl8S3MZRe32mAFe3XFVn+JfLn/V1s/+kiL/AJqxVEWep6belxZ3cNyY6c/RkWTjXpXi TStMVROKpfqz2kc+nTXMwgWG4d1Zvski2mryYkBQELNX2xVr/Evlz/q62f8A0kRf81YqirS+sbyM yWdxFcxqeLPC6yAGlaEqTvviqviqW389hbarbXN3crb8La4UeoQqcWkt+TF2IAo3EAd64q3/AIl8 uf8AV1s/+kiL/mrFUbbXVtdQrPbTJPC1eMsbB1NDQ0ZajriqpiqVS3ml2WsXU91eR27Pb2yFZmWN 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 GQPT4A3EmhB6mvhir//Z uuid:430F9C07247DDE11ABFED599EBFEC7EE uuid:440F9C07247DDE11ABFED599EBFEC7EE 8.500000 11.000000 Inches 1 False False Helvetica Helvetica Medium Type 1 001.006 False HV______.PFB; HV______.PFM Black Default Swatch Group 0 endstream endobj 1190 0 obj<> endobj 1191 0 obj<> endobj 1192 0 obj<>stream H‰Œ”kTgÇg“ 5FeÄ&‚H¯E©ÑŠ"¡ h"‰I$rVn*‘@¢¹–ñâ /`¼u]ƒB]/¥XTÜ=ÞºµOâK×8Ýý°§ö¼ïùxÞyfÞç÷ÿŸÁ1[ Çñië¾\¼6xv°4Yª–¥(3væk7ÛëY~³6ÎjžÕíîâ¾Ä=Ò½Éýò'Y³ãÐ0olßÒÇòPcÿ8ËOQ?‚PK·ü¹±©Iј,W*äòE³ˆê=b]OûÆ Û$:5 ë„!³ 3ƒ_¢m¬#êÉ£ÐLì8t¡ƒ_OòP’5RceÈŒžCT-Õû‹EF› ‚($kÒŒ;w¦iv µ¤ E°eÚÖyPTP·3 úê.ÔAcQcßz|ï‚ØRe]E»¯õ›³èNà“—íÿûOkn*ÊSÓ}eKÃÂ4K¾X™õCWWÍ`¯ÈŽ^þORšÎQ1ê£-6V9˵ùMN0p¬ë4&ý9¦bþiÙNSµ]=gï7?âP1™eI9IYÛ÷:i?KY½º"Ç‘g Öœ×Øß¢b  …ÓˆSãÀ |øT-x·‚ p`²ŠÙÕ@ 74Ñ-D||-wD o‡õLÿe”Dƒ;P÷`ó!À"7˜(¤jwí €ƒ&·"äÍG>qÈ qÐT!EZWipø¹˜>–R9„i÷œˆ JØï~ªFÎ%û{ˆr5ð@¨)>D|GæD"U/LÉ«ªÙ³r™ó’ÈaGo˜` íK®NÏ•ê„Ay„œ¼¬¿bèì¼¢ë·ù!=^ØÃ [Oìoõ‘:¥2_)`¬bS#0ǼÂf!u?«ÐO‰NŒÆ–ª 0Þ¦Qdð–0ŒÅâüÒ s‡ñG0÷±+ lìGP–·tÞëWºw‚ÂB"¿,¿¬ ¼ L_VÆue¸!/DbØÀ•hµ„a[Á×_óÝò\òBc.qêdSYðòú*±Ë†•ˆÜ¶®Ô´K´å±*£:º*ª<ÚéOG»ö6 @n “y0qñ=ĉܤڱuÌ ß“oy‡‡X ebjÿú5Á6ð²]!KØ&ª5ÏߊKœCdB¢Â‘+òA©|Ä¿†ÁCXl!è'½¼–Éæy8ïÖ ¨Œ¬Ñ‹ª…gªÍç í2ËÓ!üìlF6Æ2—ÐÅ™D…¾ÒPQQ©«àJÚÞ]ò;°…@xìØD®ÈóÓùúùVp%9ZBŸhÈ u‰2®k»ÈLÜ(ú¦´CFvÂòÄÀ„õfŠcVú˜}SßæØ×ñ€1â0óç¥î#ÖœôÑŠó1½1"jøsyP€'‘ÀÃd°}Ô«UmÞ'„ÔȵSw.ðßxž›/¬ÒÔp[ú-éJ¾_ÈçÞ B¯=hî¼ÛƸZóœŽ:Ùjæ÷wœ¾×.Â?(.&"™I“>íT¾ÏMöÆ!¨zBí¦.þƒAYÔó+øÂ>xúüŠœã\ ¢ëΘPßVRùoÚË=*ŠûŠã‹8;ä\£“5ìnœ1ЧæT“j{<‰¢©Q©V«‚¯ÊC"¨H–§ËkÀ ì 3»°†‡¨€¼Eå!®ËC㻾ªµm$U’F+A¥©éñΞߞc#BD̓žöì3³g~¿ùÞÏû½wÊè«§ *% }€^E l’n™$,ëÊ›¾ºy«¾ç[1ËÔ"—9óüÍeœôØ.In4ö%nF¿èPè6ôâE½Ò¢aÜ÷ºào@ÿ2+w9%²®â§g•ÎEà/.‚ â,édQ*±–¥vâ7N}Ò¥Sä]Åã⥓_-òrD8y²IÞ¤ã¬r%^©Ä ¼>à«E(·Ò5ƒyÎ k&Œ/©hªCOõŠÓ«”Zyô°á‹Ý¨o·ó-CLb¼ŽUm•*´™oÕ5³R…n5áæ$K¹zWõåOÊéÚË–·!’(ÐÆ|¬NK0Æst€´ìoZí¬]ZfÖ †bC©*­ÜP“Qææ|&*‚N: E•É7 ¿åñã/$Xèx ú ­ßû!ՇϔÑ9áz#“NÄ’|£ÐÔØÈ6¹{î”Ãæk ¾¯L³M53IÝ¿YüÅ™¨Îi˜Igʽ¸Õ¬ÖWXãîIuG¦J¶È”Ÿ®²„˜-ê>¢ä÷”ó¸x_»„FMZ¼ 7…HÞÅP÷ůG[këøMÏ帟O›ú«ˆXž×3 ›pÂ1Ææ²÷‘¨¯wuÌêQfa³cjz^?˜ßaUÓ‘,Ã~¦-©%)J½°ž<þIWA;½ÛfåÛ4zjØï~ÍÌ_¾ñˆT£˜&‚ñ\iÃiZ«LvžC!.y„ÝS‘›”A‡'cí˜p+&ÜâîY*ï>STqŠ1Ǿ†7á]5øâAD~tª<ˆ[Æ.]ºLX‚!´F-Ã!PŸõýEi­=ÎÔàÚ˜¼ñHãç‰Fýž‰YãcÚ  [/ñÀx}$Q6°Ûn'À–C›mÏŠÓ÷XÖ+]M2È*L ”Þ@µ` ¸+·°1F•žfÒ±¡&J_Ž“ÁšÏw³Ÿ¹{ÖË/\øfæDþù‚z›Ü¸25(%Ó-]?Õôžf !p€4×7åvhÎÌÉ,dòLBŸš·ÊcŸœkd›s›r›„æÃîS#äÙë¹T6#;Ge4„å¬Ðø‡ò‚–2r ™”¾ëB7—ÐÅì0ñ†TõoÈμS…vz³°‘ßèûŽ ÏáQ‘|”†Š3ðQQÒ‰ÎAv˜*¹¢œ!dŠˆ§0\f`?BÂÒ@}+ƒpø\ù?ÑÿÐ`ÿ!ýKõß“=ÕWö‚~çZr(!9:Î_š_Ž íüѶvîø@Öñi–¬•±­nV+`q‚í±ì¯RD¸Áˆ“lãñÛz7 žÅÞÊí\vŽÖgù&Í× `<îNðî‡qàËPÿ¾xĈˠ=©19@½—ÁŽ®¢vº8p^-zUƒ²ÐR4E# ,Áët %þdÕU_2àEÖåZ -t]ANÌá_H0ìîAÞ2ÕìŽôX¬‹L„—Afì2öi\pDÏ>W‡¿xIÙ,T[ éü‚"K%ßaÆýo=Àúðë¥ÍžCƒ¼I.-š Ò \7Ñ<ŸÆ€79¢F t$_TÃÛ5*·×p\ƒt#L08܇¢w…ð‘†>â·­»øØU9„üüÐm#~è-2ÆšDÇf¦¤'h¶Ç[JtŒ!+ï}‚³äsVÍécMG˜Ó×,×ÏátOz!N8 óp¬pCY`…oÐWD=_)TVT²¥’âxA/$îÚ^¡B·à"”‚±ª¢fg5¯² Ä>RÇE±Q‘Q‚ÖÝ3š4~œ”’B£zTIÀGÿß„KÍNÿä3cÈ.¨¦‘狊vF’CÝ€jŠ%«ù*áàùKìïuÇ1ëåüOÝ´ò´ ÙñYaéªä$¤rU8}ýžA†EíåÚ&þ©ju\yV—¹R°Iº"9-«Õ†KìP‰³ í»ˆð'ÿi…pI«}x“y–nA£¾Ehli˜‚Ì:!Í<ÄHôí<ö9{ˆ2ùÛn{éaðÅ5;kKjÜ9Õêô¶e˜´eóš;êí'¡Ö …:ºM,l£Zñ€<¼Sý¸ÌM’LQë¼y'™àŠØâ"µx”|––]¢Ä…²!¡!BÈËÈ„šHçvñӳz|SÐKnR@@‚Í¡z2tT=rÇàÑ7 ¼ðè«…íh:¸£P þäý%vßX˜Ž&A“çX¨„·ñT쇖ÏAÐ\ä÷,‡…ðn7(àF±gÐ<fí‡Îæá vÿ“ºᎠx8¨ËkÕôÿaã”Ù˗͉‹3[㘂P"§¬Œ-Ó€Èî`§5ùÈtÆ(_Ëù°>¾¾ÂR„¨©îA²tò¦ï@.ÀßH —=òæ ÈeY!4>²x8ÈŸG Ù‚•k§1¦ø6A“ž™Ëg0Yi»ãKwÅ©`9Ê-Ö—$'ª*ø½BEE[-±Ñ q–”2<+õ¸_úà"¸¨¯…t£t†ÜC_µÊGX7ýð÷×ÞO‚¾"ÁîxÝ6¾²gQ#Ümˆê¡não„Õb…²Ýr¤ “Þ¼²z®¹£7¡w¦œ÷ƒ™z†ºþ¯´?GOWO›µf¦—W³-›Î¼Lh·È·r!Y[èäWâ®jà-˜q³•Ïj@o–0T/·3ÄvEÝ£ýê!›1©–n夛£ó}=5O‰ŽÚjµ_uûà?”W{PSÙãÍ]'ër½#Iœ{·jµëN_ÝõQ×GWk±Ž`}ä•òò!,$÷’›’ð  €¯]±je»ëÔ]é"²µîζ֙îœK{ãck»NýëÌÜ{Îù}¿ïüÎïûN¬oþBlØ^¾¦ÿOFìFî ã5z°’ï±j³Ò´ éäcç/2—Ì#DJ "ÁÆé§#üûvãv‰y?³/ZÜÉ7}ޏkµG­5* òÀeܧºöd–ì;áã}͆áá0üѯÁf7> d8õj­~ŠÂ o%À ºµ,"À7¯&DB°ÐÆõµÆµgŽ€8À±{ rZ€S¦J“Q\Woª7—HJ<ÿ¬átëhG™].‘3 ΃-{ë#ECüÆÑ–+®+l lc×;ÏÙ[š‘'°6…N¥’“S™”ÀÚ=ÒD×W䈵ú’rNDÃgˆ]ý2«*Ä ¶Â­? “A26ÊNƒxëWTË&ÁßÚ_Ûiu °+à'¬ßÜP[Óˆ¼0©t•’’ƤÂô鯾NW(ÖWêiÌ ®dw ˜»¸ïøm§s™ëåÓ7Á×áPŠý˜Ý‹èítUìi0:âT`Û#t%•&0GÛv蛩¦Š©¼6c³¦ZÓ«’¹Ìküö.{—vD¨pü¹ë˜ót¨U…8¦…Ø[ØŒ×g#.Îo´º\”+Pw Nrzó="øsà+ÀQg{GŸÓ êç¢.Eá¯à N§á|^|"ß“mÁf2Yƒ\øe¾}"0¦Á(h-È)P¦ëDYzD6˜Æ†ªaî° T8Zê›ëšE/ =™åЩ:U!`$`!2Ù¿àjW±³ YÐT¨n:NÑ4%h6¢DÝúVýpòÈ*˜ÓK©±¸P ½¢SÅQ.W[õÉ=ë~6ñ n#* Oݸ{ |'Tw÷LßéQÛC¦&°±)Nía´iÕêPŸÁkðú¼´wî‹iCuf$‰Ÿ¤¨uQ¤¾‡¾è³µ¨ßpÑØC¸Om¯¤—o2sÓÊ-ˆœ–Ó2¹Ü ãz[V]F…1{DÿŠÖq¡Å¶âXs•zPÝÅ•«ÖŽÈ¸ur™ÜÀ9”òr$ 5U ½ü^†»üÆdC4§Eµ\yE듉lJ¡I’$ñuÜ4K9Â!5ø¼^Ú7wIµ]ÛÅ< ®Š„ëàCÁ•¬ž·eöV?„ á(¯v•G2"9ò·MoÅ£wÆoNß`W‡zk¼6Ÿ•CbþÌ}gà–ë)ªA„ëJ®êdC/„x'cÛ@Þ],ä‚øÊ‚¥JˆŠ±þ o5:‹•ÀÒÁ¼ÉŠŸ"G×ÖÚJµŽã(SlК¨UK×׋A8 –$]‚oÈʲ¤DŒù%Úö½Ób7Û,VQƒÝa:-¹òà{¤Åúỳuå%E…%‚c2y^º$1©s¸§õ´ßA;9—(ÊJ†³óØ7À¾ŽUÈ5[ÙpÝÇÎåÓ ¸Öz@£)e\F[ŒÇsÈ™+ÔA‚ÓET1],À†êËûº‘cþAÍ€¤Í_Ùâ!}‚ xý÷nŠÁìð?ÁØ9éþ‚Ì,2&𻏻g{/]¿óçþwÖÂ;wo8¸Í×Lá"Õ‹·M= úÇóÞÁcƒëø€å¼ÕCÔKnŠ’Èd¥j™Q’–ŸS HPÄ…¯÷@ÐzðÚ§¹jªˆfoiR L,‘I–¯ºVƒw¼cþrrkȪDØÊÃsÁ¦4AgŸåë¿NO`j6ŒÝ…7Ieö8IA¦¾PA®‰EdÅï cÃpÁÍeàÍ6·¡ªšÀÔ€÷°båwÔ8 XcAcÒU‹tµ´³]ÌΠßçmñì\N£2r”DZf¢òˆdñþ¿>³>6’FþÕÏö«Hᛪ à@Øâ nûh¿ä û ü“®÷VTj2}T’ 5˜¥¤}ôá…Û„Ù‡§)5…©dni^Q~‘ 6%+j¹Jî¾ Þ¾uoÀVE8»Ô5HNRRö! |=ê.˜C‚¥ü«£¦š«$ã¨t8ÄÙð1 &„/|L‚&Èy|äÝ ùv6ì<øjún).4I2RJYdÔ.WÊÔq»ÄGÐéH.:fB`7šI«tB§Õè èØ@Céæìóùó}T÷!ˆÛ·ÌC«.À:ä øµîk­'4„Í‚°»¨o¿ÿqBë1Ö®ïïc&¢¾{' Ÿc͘¯™­g…xk¿Îéî“[k—$E¨±dœ2].^<©ôÒ…buÒÍ‘ˆ–S¨"±²åø@ yç­=Œäå WŠWèhAð·C·W˜O ×ò±Lo‹×éptU÷=3ÔÐ9@öµ·Ÿ¾(nÒ7•5\Èmkði\døÁÁ©›¾‘ß~áݾÀ®Ï[6s߸ëôäo.Ÿì0’X§Ù4è¯l“¤#=’äþoܲÎ"„ºœj‚FŸ–bðÔÐNð¦ã/“ ÓÿœL€Ì¸'¤¢ý×.ŒÞ:ÿ.{Ð7ÓÑá~Ö9þcj4 ‚Ý€sóËós‰­áð¿W«Bxî¸lM‡Ì¥à…LÞŠ ìwØ}É&áZSrážüÈrQFÚ\£/³æ2&W.†¹¯X ã‡Ù?àʬL¥²-Ëínos»3Û•ˆ¿ÁnÿôÂgáç^¥*ä2à­œÀnckþ€ûè2ÍûE„²(»¸PR\j`JI[2Úïïó’¾SΛãœË?Ì>ÄÝÿä¼ÚƒšJ¯8ˆ÷^ºëÆÊåÎ’¤Þ»¾ªuËÖî ⢨+ø¬ºâ“ä¡@ÉI@HÂKI „@Â#@HA@(¨ã 닎ëŽlmÑîÖÑúÚ.Ûž‹Ÿuz£c}TÙngîÜ¿¾ïœßwÎïw–f›MlIII§¤4§Ú^òóUñ·*ÚÌ,ßÛ\Ubd˜4޼š˜WÖölI|5Ú4Anƒ:¤ÅÈ…wm˜™HNh®—0È &e4d4Hù@}‡™ím…ZûL<:zÃÆÍQKÖù°ÿ]?^ädœìiNÜG†=ÆBô¦P¿©0ñàØËÉ–ì•z=†d×çÍ#<ÃG«ËÇö7Òñ‚í³4ZþÓ¨ðÊÝTnq íh41²êÌ‚±‹È‹–cw…6‡cR e†üó²ßqeåmüx!½ÿ<ø©òH,†KÔÿ)&òºKN7ðÿQ?*k^ŒÔÁÎw¸·Þ†£·=@+¥ÀÜÁû{Ïzˆ¼‘ŸïT4 ÿ: &2F6œº;€Æ!ê£Ø9sw0?ÜvÜüëFmÏëv_évþeM»À½÷Ö0þ ùÕ-üÓ!„¤õÈÞ¡Å¢­¬e¿Š9êO>äýÄÙ×§D%äfgÑäƒùK0Õ·bXL‘_UWh+è–Ú®ÃW…?_ì‹°eóÖ‡W;ãžøeÈgØ÷zݹÝ8ìÁN~ nˆ nßX|Ï#º÷5vҲʭIX}dXÕVaJr~Þnƶ1~ûg¿ÌêûfçÓûñZci…ž¹ˆŸ¶:t3úY¸=„Itžwöå'àF” Ïi£t»±Ìj—6s•ÉUšÇÒáÓzKizIöKa\L§Î;8Ûë3Ò*ézœGwsS°^ñ{ø“1ë¸×ýa²ƒ¼ÏzQ¨›8üʼnú]ÝwB^‹åçÈ”báv¹ùà ÊÕàMTœD“ ±Nâöt™“VTf)E»w*ù¥©%b±€\JÆc‚W«ØòZr%å0™Bö°Åc"lÍŠU¿É:ô5 }oZ@ÿ¦ôµš¬4™ré¶C•ªÚE[8ÅÛÞ¢xžÄ aWÚ¼ÊX;ZÇÍþ7¸e0žP{í&M‹ÆÇJ$©Eª¤$‘&iÂô]D· «Q—çg v¦ÉEôö)²ðŒpI½ ÝXauQU… ºB[SBÕ`V"V§ŠÕĺ®¶©Œê²Ì²>,~<;†Útµž<(y A'õ*íAa"·õÀJ‘ªL•§úƒÍ§¨B½¿L`¬*³hè.—Ýu¬*&&Vã²kU5©ªs,þü¿£o±^ü>dÕt9Ë|øúv7Ÿ7^j>çI\†9Mý5Íf ßâ2ÂmUªÄD‘&ñ8Ì¢Ö+3y*å9ý9ú {{Vôîh>·ãГkɵäÙøé8oéónúÒ­™eå`›ØT2ºa?S!«(¯Ò„ë'8ú9 ÂÈÐE๻ÉÕùÈSª׫L*“\ÇÅaZ‚~…‚±¼|Ea.7£ßÄM-um ¶«÷}HÛ?ÑÜrE¹\—Ï7•ÔkêMÜ5nmŒ·_”fk•ù•|×TyiT`óª?äÇÚÐzXÏÅîØMмÍnÁ jUU:É 5–Ð/ò÷,uª•!¯&ŽŸ<ž•¾V! ÙËWá9é•U Fާ-Æ *òk…ÃíǾle ’ïü¦¡¥Q÷ºl‰ÔI*‘(I#rÙ²¨°fUuA¦ @U°7—æùu²üN÷A :<Ø06˜²sêNUüG34s'LÈ[)ØñªËXÃ>Ó¾+B˜†Ë’Ó“ÒSÐB39!)¾LêÓUrPÓõýˆêû Ó{u}Ú^:Ï\€eìYU$DBœ½’ *õÁ2¢Á›ú:ïH‘ÖƒuU=W°–¸R×uÁHÏܘŽ&1h-Av¬Ê‰_#£/ÊtIA.É ŸCbÀèÕ©óŠ€gB¥²ÝÁzÚ¬£yÔ“ìÓ²‰—ü.?ä6*H¹:‡ì|XÀ™½¢k¹h¤×s\p¹…IÍ3é ²ºÎ ç6õÓª¨ÁLnt’åE,ðóF?—ºÜôœM Ši £Ä”‘!‘Êè=„…bGWKÏpDÁ86‘"ëO^v^k¹îIFÉõ¢\‘"1Ÿ¿'0eaäòê\Øß8öûñS²=e»`<Éæ`°“¡Ó÷ºÒ3뼺ÌðÎixÇ žMpñ4Ù®dy£K)tëC3~֨炙Ñ®TËs÷Ð…Šôâ,¡V™ˆ¬ôâ2“«Uë+0ÔMôåë3kîRÈ'MÊLQ£+J`ÐQB¬Ø»³ˆ–Â{&bg©bŸE@^VÂù~ýØ +Ça6ë†iÐq<±H¾ƒVJác“ßQ¤w0œ8AÔêK ®.×®¬Cã9¡Œ~™Nx¿æ› ÈnN÷J'„‚OC°Óƒ%F7Sh+š‹æ¡0´ü‘?l…p˜s¹šÇ‰8‚‰Á0MAKQ0𦢠®FLƒi°‚¸ê2–0èߟ`ÿ:ûzœŠŠ™‰qûÃp„‡r{{÷,›vŒqŒ‰–¤÷®œœŠ~˜œzša”u“w›a}€™Š›´›y€Ž•—~ª„œ|°pÈ^Ä’Á¬Ëå5”FWM“Ÿš¥¨ñpQ?N}LpwŸùEŸûŽ•÷•÷ž•üþ ß ß– ÷áøÞ ÇO€Ï endstream endobj 1193 0 obj<>stream H‰DU Piî&t‡3˜´šh:‚Ë**‚ÈÈ!Ê•f<D‡U“<ØYfÖA§¶jÄòbqdÊEeðtJtÆ‹£f ŒìF#"¾Ž/VmÃÌ®Õ]¯º^¿ïýßûú½×$áìD$)MJNHý8ez¢vƒQkÈÍÖŒ8}yÉsæ'zxc8½+y7—š˜ßâ [½ ZÚ0‘M•N$¹¯zaAáf]îºÏ ª©ÙÓTAa¡!3FìÜQ6bÃU19YZUÚf½A›§W©ó³ t…:A› RÅlØ Í Wé´z­Î(xÿÏE•«WiT&G›§Ñ­W¬U%åæ6jU1 *M~ά*WÀꋲô¹9¹]®VÿO¤p®$á)!”á#'æD4A,˜@äDADA¤R΄˜ˆû‰ÓÄ5â)éK&’5N¾NéNߊd¢hÑ ç`ç g£ó)Š¥²©#Ô ÊJJ—Òßзè÷bVü™xØì¢p©pvÕ¹îq½éúÆ-Ô­Èí¨ÛOn/ÜÝÜ'¹×z¸y,ñ8íééïÙì …$MR&9$¯`¯¯Î1³ÇäŒy ¥¥qÒ_ÎW±àûŠÃ¸v9ê0`Ö¾ój.òJ·¾UѾö\=w©ùpó9ÌCùµé+Vj‹”;+¨‡Ç!”]'W/þF‰Ç±…5_l·y"dñŒ õÜ)™O:G?w¿…¬ç·ˆêæü8„cq¯3\lôU¸ óÀÐÞáÒíØ"áVÓù&Ùk\ìî‹·2ƒŒ/å³O“û1çe¢Çõ©•m%3“—™"Ï-z°TùÙõ‡_žU@ø j)~4£clunÔ È™A¡ÓÙÇw43Ði¾aJ ~¹~»év¿±«‹]”zîî÷5·­ƒÿ\¼fÑŠQ‚B 6Á&Ùù¾Ð^86È Áø {»ý»Öc\ÅN ?.Z>]ÁØjÞÎÓ èa°½ v]Ÿ£@o§F"…c9TõÍoe•‰M{ÖÖŸžœ‹‹@n¶q57:ƒðð¬ç-Sýa™5|•óï#©q°äY¾RÄŸç嬣r_I#ëüÛƒD/ô”ÖBî·ñAËþŒZj˜Æ*{…N4ּϢ^Ó ¥¾³° †ûT=Œ÷)‰¾Ü {M°Ñ,{hƒG¶$›Ph”Ý‹…Xšá8§M ^ZÀáBÚß1›…[´ð>ø™MHázbÕaŽáMõï\”¿Š7£\‰÷i›ƒa!M3ýZì±l™‡Ù´¤n“…b!_‹ìñ»XðøótãbjQ†3q#‡9“an+ ÜL#þ„d^’ãSÀ"aÉÐKð¾?d@Y-'©vÃe3ùÄÆ«^‹žxC ¥í!bðÁi[( jÆ›Qê°©(ã0UªÜÛ,Ph!-6ï°°Ž8ØÆO²8&A!?ßâ8ò>‹¯¥%‚ž¦ÿ…Á"0±0dÁ!!fŠÅñ·÷Y6ZҳɼÆ­f8b‘]zÍkû˜ËüheÁ@Ïߺ(i¹RóÉ’²u L[ þà©ÃƒÀš†6¢´Ž³ÒbÄi](Wà“q9.ŒªD/pòåÖÕ·e‚—âÕóÆ{—9¦¤&€ú‘‹÷B½¸RLvÛxwzÆ:Ü኿@zywìµÙ³üG¶wµÑžULö ¼SíY¬ÿ(YLÛd¶û“û@o„­l¬8±!ÂNßÃ<%_íï¨Çé2‚³ê,Ê+â‘–ÉÓ%䉽,PŸh:(ÑØÆGC3\ PNãP00rŒ°´-vß!¿ÍkFö”|Êá¿„W PgNgènd‰†ém’Ñîબ‚Ë(¨(xãÀ¨€d•0lÔh¼KŽ]<9ÔDEÅ#^%4xESqw1†%ˆ`»£$¸SjÜ÷ot÷5˜¨[ÙÚª©úkúÿûõ{ïÿ¾÷½g`+Aäª[غƒ+Û×eEEÄ÷Üy›€‰ì!êk vÙWLÙÌpÿ“ÿæ$°ŽµY’Mîp‘îF%‡³·0#‰ÐPd2€¬ŽGQ7P—-0Î]Çç²öÖo© yÇœlO”qpoìDuÄÒ:²·ÐbK =¬8}!h ,Á]¸k .Á ºK`ìºK HiãÙ×ÝH¸€;N‚†N–iÂwç[zEÏ QqªêÉX.ïϰfüŠögˆi—ìêÛllóF*g¡ð;¹vŸ>oÖª$ó/:´ <.NµTñR* Uîiçíu€w˜^öS‘ÊŸ¹j¿¸ãÐ)…Ž¿ÚŸ§lm‡òFX×hÔZáß­}D߉P!à ޞ¹££æ —— Â¯¶ ó Öæ¯/]¾of8­;¬žÒ'÷uì‘ Ñ« ½lÒÃpuò€µÂé†Ñà7,-BťĪÔFv«Ñx†”¾w o‘ª¥:ÖÊ6Êõ‹¡n0ãˆø*z Ï£9§Vªàÿ/ݯG— 3uC¯´QA~%T-ÂØÜ¨Š)ÊüÃç’Hæ)}OÁF}ýûݪT‡‰§øÄ-ïV˜€{PPÑpg66*:W]ÞÍli5ä¹¼eÈxâÝêò†Œf÷wm•Ç¥¦põ­L$Ò|A¨tÇ‹hñ·ö ßFþpÿüéâ#ŠôaRNnÒßÍ…Û6mÈW/‰¶VÚV™ÓVnÞ­ÂW"˜007åÐxôÉP ÇˉlÌÀ·ç¹påÚ¶›àòvš·Õ³cº=²‚u­‡±)Æ¿hPDµ[J?_éÌålqþŽâ¸Ûf}ÂÀüÃA@U\»øý)ž6È ¤ô'V‘yÀvY:ƒâŒ€É!Å 6åA²Óù”ǪTsÓíô îP‹®ÉNÙ±:Ö‰]Ì8|0¡þp ཿ„›ÕþBXz\B´_[ †Ü=ú¸šc‰£¶ªäjR2Khsõ¨J4’™ ‚q0æ ¶Õü¡ä¤¿šQ GýÑç†Áè/ÿ¶½ªDÍ&?G6ŠÒwòôê' Cgò°KTCfN˜q D…¬Ã°J°ÔK[ Tà~d!Tþãºøñ¡æqß§2£‡ƒ7¼ìº"±›G ·ïU¯|±·&ç3OR#Un¸TÛ@Ï¿Ž ´Qm#S Æz®Y3@>‹‘«ƒ/‹Çóv–lÍ[¿~«R/f-[žµÜÜoÚ¬pµÏÈ×Ý1‹¡aea5¼IÙ»4žOò²~gf¦¾Èïb¿#Y¿³€ øu+²ìgn¹Ð´EÀœv¯<нêlßÃþ¬š”ØV+]\9¡¿A^¸Àš]xCûÌ©í3¤¿³N™þ=ãžü¹ïöǿ۟ønÏ¡2¯ûÊÞ+Œ«~x1ÿHø.zù¦Ó÷íì¿Ïÿduûáuå÷U`ýú‘õUñûäîr¡û">Ÿb`eêôýø+ÀîcÛÚžãû'Ëíb·ª(ñ³“ÒüÌ.ìñÛò+v)¾ï-W õ÷³¢8ý8À² ùûdůBK?Gì;ÄÂ! –þø4â[f—x³\ ûy‹NÜz«Ì.ÜñÝR»ßΊS÷Ï~pöî)ÆÚëo¯ÿð¹Îüƒ­Bô{Òw—ï&ßó¿çþÒÀ†JÊo—ß&¿sçÒßSäŸølZ»ƒ `Äþ»ôoéßîÀÖôo©ßö¿K—úî%÷ÃÛE4¸)6ÅGÚ øæÓ{/½<µ3=dºü9¶µ6‡´¥ËXhþ–ü-þHõ»Ìók'ß͓竘÷3iÞï¬Yßµf±}_4í»@ÿ_Îìr œ+Åÿóp^çzÌýã€ÈOwQ€^ Ü@ endstream endobj 1194 0 obj<> endobj 1195 0 obj<> endobj 1196 0 obj<> endobj 1197 0 obj<> endobj 1198 0 obj<> endobj 1199 0 obj<>stream H‰”T{PSW¿—ph# ׸In›D7]+¾íú€¡ÛŠZÔ"UycW  Ï`^A0rcnCø @ED¢âc­à*:ã®VmµV«;ýCÏ¥—ö&b[gÜ™íÜ™ïÜùΜó}¿ßïûòô€`ÆBÃÖ®Zò„!(Ø Úà …#˜&b@TQð>ƒ‘ø䙉|Œœ`®aù²,^«½žy«½¼c}×ûÝ‹ìæ)‘SnùN]8õÛiAÓžû¦û¾ðËEg£}Ów‹|D>$l˜€Ähz¤zIv.,Kb³È+‚ÙMÕ!T$|L²9ÔÄøX±zgA6ÎK1èeÈQÓQâhw7ÞÍ[Û̈’ȳÔð÷UÕ[÷Á<¤ËÔEtuÆ»ØâV*1°òTÚ<£@b@d¬Ó 100€°ÅÖvsŠyg£¾÷ Ù`hÁ› -<pG=LÞ»_rEc̃Ìã8˜CugëÎyµmúÔöF•Q›©xJKmx¾¬úè˜ó–Ðv¤¸:»IÞ&Æ(AømÀ+À6Ð=Z”Ó)¬ÑV—hø8ˇ  QϤQO|ãBý¤×ýãNù‘/€•¡±©“ÍFØ0ô<›Ú¢^¬RÛÂ7S ±Äô ‹Tˆ¢|z8%Ñ:.7pQ™> é1#z†/ãÃlqüxÖ]áÉ‘öŸîò¿Í¹¾nHpjSPÕ§Æ,ʉGEGÑl1£O;a@:p›NÉ×uF­ÀgR˜©úÁ±¾‰‰û“=–Tû‘íè÷àÚØ;“M^Ñ•Ú ¦ü<þí,t¸ÒYí¬î/®à¢7L±±D,¦d¢ß£è‚;v˜v`tÖ½êÓÜUõŠÉªã %1ÅyeZžvg‘¡ÐoàÒj_ Q=Õ¸Ô5#é&}MßFÔVÁaƒœež;gÀ‡„ö“újÿ2ʘˆ-eÒ4«OE'øÏ%ø:­äÆ6i¿ÀÉϊФbÔ̘g`úË60÷æˆðHß5ûiì∺°ùW‘ô!¿I¶Úö–¯Û•$¤¾Ü@¡Ô*OmS‚@ðø¡ë࿆:¤Î\k®4>­l¯±î'x­„¥‰3Æâqq4l±>õ"Ž4Öé] —â4Ãí¯(&{äb¸F>åT©6·}fn¹‰2Fà‘[â\"•Éœ†ø­)Ÿ·Ï-M¬Ÿ_Sê"«ÔMVœ[&CΘNNš¬Ëlq¹c#M¡³Òd™\dùYêÞ1f/|“&$ d昈Þï[BùRŸSFz¦}ãO°ì4°ƒDac/‡ª¦–Q¡T9µ ÁÀBcÞ Ì` Å}B }Àׯ= 4P¸úÆ4w.ú<¤§™hÚgjÃ.ŽfÏööŸ£T•Wå ²«½C׉é`Ês€ï•§¨? µÌã<–Í ôhþKŸ6ô–!ùƒ¸áßYnr°?Ñ@õ év[èvU€¸œWþßû“íÑèxspG …,Û,Œ`êÕMiÍ©õ<ðeGš;ÚñSOk{e¡9{a3Z‘gµ/û/À ¾¢ 3ÜއLz3ýµ7%ÀG=Dþ4ä7z âù"£ ½AJI§9h=oí”뢎.„Dç(…Šì¨Kø”Çõ̇©ôñ½Œî ~dú碙ÛûŠ7³X9T ’~übÉyìÇsmƒg…‡ô_åÏeû—¶ Ðë[B[oñ‡/õ]9ž-oø€ÊI½="4Ð L¾ìdké—x3kë :›°ÂPQ\Ä7°Ê–#ÝÌ6TjAüsqÿ¹„?[¬Ó+¨ zÃ~¾¼®¼Ánåí±í­jÀÀ4æ²qýÞr{ÿüo´[^Ñ®·¾ö¾Ëâ·×½êfâÊ™ðØ3)oi¥ß`ñ3(â”ÊŒ;²øhõ·Ãžhdôú?AÿZòw]Fq¼EËE#¦NÂÑÓ‰÷½¥ÊC²¬òH íHÞ ³å GêeƒÄeÉ|þÎ2—#×S‚šäzй([ßueïn»¹VxŸŒ×U"hDŽQ+ÿÇQÚG{éþË&û‡¯Œ2@ùˆc¬Ø]náï!*‰*Qi3YMf®ƒõúe‰c‹e¬^Ã>Ü®­ÚÂ{2~ù† Ïšº­–½o¿Ùì@’Éxròv"ÙU—~q›Œ5z5_£/*ÈP㫜ù;Yj ï–?+Ìõ;3£6’8å æ†Êz/ô=ÏOÎØ«ê«ê‰Šï¸k‚çE' cƒ%A©^8SôÆ©v*ú½œYÒÖ-˜Vc,Ó Uy™¢ÀœÊ­²¶VìLXZ#lŸ…Øâ÷HhŒ…†BAA°&Fÿ‡\­¾–C~æô;<Ñ,´ sŠô͵ŽÚ¯«B›Ó6ôUŸW£½µªki×hš„ºxMÒ.y¼ä­ñ[½rrs 1ÐLúpìié5ÉX^&®Í&ªçªs½¶F%S ƒù©ömG~¦„åwz.£f!eÿe»ì£šºÏ8.µ2ŽÏáž8¸÷œ{ÕZ»³:»uS«¶¾TwꬊX0Þ ò–n^HrH¢@È{$„.áÝðP@íª«2{\릞Îu]íÖþâ¹ng7h·nÝÿ¿ó{žçó|ßç÷Ôê$BäœKiŸýh&<‘”¨’Ky2U×[[>ÊZ4‹ÁSuž"%‚Z ƒÛdµ4w6Yðo¢†"Ã1UeyÊ1USMÄ÷Xä•*=©—áôóôOؾ®E.ØíÓ ôÎl””;–À¯×s¶v7ycl–¢‰‘¸ˆ‡ÿ´¼ ªØ­óÐ\kσ(Õ&¬Ú÷Vnš§_£×²w…8ŸÞ[¾¾‰©¯ð7}‡OMw6y›=øRëçX'k±grä2—ßsRX©QXYLð¥iq^ÍA–²D~¸Iоå,âñö.þœÖ Òï\%Gì„3Á?£/±á´·Áijo0§ÀY\-WÇ=ouÞ±÷²(»ËâB»]2nw6›BL£'S"y“ •*´j. ª™gRÄR‰XI°`Ÿ‚¯=WÏ×hkÔ„ætmJú,þà“ĺu¶275W©,*EÅb[Ÿ—êt„ø°ŠH­·tèlèð—(?Nõw9\!ïí^³àÌ9@2Ê~ö 6€êYb<ùôçW`Ëß^«à¿¬‚¿Pwô ö´«“N¬ß™%º¡¬a{n£¼!”9òâ?ÒÙÀKaô^AQ7¾}RšI‡éj¥lüwåÇ=7&Áj¤£¾³ÁÝ×Z§,u8^"il’àL‹„k+GK‹Éš\|ÉYîW®WÜÁ ñMúW³ ­þB]"³Ö´‘ï€^ÃÝ‚l8±Œý”°âA~rh/ïDÚ¾ž[ØÂdpÊ‹P’$¢çD€Ó¯'ª£ËAâYË`I´ „Øö°;2†ô6ññ7Îd¾ƒ•–”‹ôM)÷¢›Z¼¦ÎïÉñ?ïZþr ½† W)ÐǤUVeJ‡iÑâo4ÌtÕa䯇#]hg£DV-ØYOàð¤4ƒ·µxÅv¦,'±:­ ’ c¶£ih1{›<ÆNëbî¾ÖÎh–ÆØ÷m±@ŒfŚܣخ4¯ßµù¬†gŠ•½ªÌÆë5åªrUE*Üc#)[¸%Øœj½î¼O-±ÂžÀ«h«[C¶ãv#4a™°Mbu]“ÝU²Þx×h!fªÍE×Ì%‡)õCú×¢>f%#À/Ùƒš 49‘+É.8ê ò±ÉŠ-“|‡%Ÿ˜PL 7"¾ñ|8ØåŸE.ç œbÜøæQTfʳ"Óýþ©Ð°„GaÆlˆŠ¶…ŒC˜§˜cÉcæ^+Å«4'ßÖ² «ÿRn„”ûÁœãõÀoÕÿ²fÿL½­­?˜ßûÎ l¹e|×þ¡*êû{'k{eka•TÈŠ¦ë·-ܰWNxÅ#uKƒ“YË jºê¥;ØjZ'/XÜ¿XRìûÞȺ‹mÕê®öò3·Nø-Õ6ãð”MÓ6NÛ$Ù8ݳ¸ªµ¢­¬C²š=·9¦9Nî7{vK0]>ö(ûQV¾T¢·ÿÉZ!œ²XDÎ(\¿€uòLPOžÜÞœ£Xé$ߜՓ!U:#{åK`¡ªù`°]’û›µ9·9¯T*{^Üe¯ÏnÚ l”V±–V´5J73ú¬)k§m—_øxÉó/›¦I4f¥6gI·²´µ•ÈU9çº%pO)¬ tÈ’nlîf3`ëE~ÝwYÖYÇgîÜ"5¿yVEqbuf$°‰{êûëÛv&— =6›oÏ^3ïû Ñål˳Nê›Ý³Xz÷Öî©[ä ¦TVwçÀÀßLRvë||7ý®ú½÷»¼œðœí¹Ó»:å„ÏçW”–TM-“˜‡phq~QeiÍô‰I3fö@œiíú;Y-¾vçú½óŸNÛ'?u×Ì]3vÕO‘ÈoH®Oiï,ë(i+/þÍ(ñ[<×F?J:ì¡y0 ŸyiV/UÍùi5çwUÿ÷þ‰lßgOý³¥›½|þO×ù¿û¦~ŸÚËñ}ÞÔ?‡'pâúÎÇÝÃÃ÷ã€È÷Ÿ¢FCr" endstream endobj 1200 0 obj<> endobj 1201 0 obj<> endobj 1202 0 obj<>stream H‰Œ•{PSgÀï%¹÷‚Æ(Ä‹yh4‚‚XÄuVÜÚ© ë­"âhxŠ $_Ÿ› OKJÓêÒ’õ3_¥Åpó±1FcØS`ØdO,XˆÍ&°÷1,|,¶Ê›Ï Ä…­Àva=ØÜ Ä£ð&Ò£Äã± ZP*ôž'¦ÇȽÔÏ1^¾^ì(zô¤Ñß‹Þ Œ9 ÿilÆØŸÆµëõNò~â³Ê$Zɳñt¯/;aÖ„©].3ÉÃå·k§&.žØ?É0é™Ò¢ü‹Ýïá:ó}ú!Aäoà:!%Y«mKët´ž:Õ•Ò– ’\;ÄuÒ™Ì*½5Gv=«.?õ©“ó$l‡­-­rqäPj>~ dhJ¥Ñ¿…HŠ¢ä(ò:’Á”es3ážà J9hjÀÿ •/²@Á§ZI?AÂä4r¤¬@ÞþÈSÙ¬'`Ê?®ƒ "嵤hÊ¿”|ßh|…WÀvÁ4‘þãC罎¢Fé†âµÛSË*פ#ᆆRq$¬¼zNø’®ÐmK,I©-—ÂÇduKcWý²:)¿o? !¾··‹Õ¶¼¡Ü|¼ ® }(‰F†çH0 åâÁ"'wÉ_J$€†¡i4ŠÏD+ÐoP`ŠâW÷ÂfÌAKT…ëè{¦­²«j£­‘¼Ò ‰ ß1лSYvÙ|å²üu»|ï+Ń&æoÄ\ÙFŒw´ ¤XÉ}M3,[Å(v3ÅÛTÏ×Pi:cºYa"R(ðbºØ®Ïæ‡"Mõ{+‘ÎêêOÈá&"û}ëeIÝœ4¤^^$«  lyuúÿÁJØ=n_§¼÷ Šn8öQKãÑ‹à)mr>õY‡'‹î‘ÈFƒéC2V—›nQ.qWýa¤è%wÑT¾(£k:+ïýîea‰ÙàM>¶òrç$ÎöGsPÀJ s{ƒ®ûìÀÛ`<,ƒQNÍ«›»¬ v‘Êþz$@9ZxQð¨nø>Ž ŽÔ¦lÚ¢4³¶¾ú›G²›Ýß¶\SØíU»ª¡‘@Q¨Ÿ¾¹?(&fÛï""³î ´ïS‰÷æq-0 w:œ†‹¦]:yéó›²ÄÇ›ãÓ¦ÛØiªÒrºžY»&Û’“#o'k¿!Õ»ëzKÚ*йç 5Fbó Û¸o¿yŸHÓxö ›ž/ÆfþÏ‚~á›cÅ~éþ˜;Ͻ›ïÓ (`(Gò=— t7" [)[¶S^XVj´(׸m_fœl{{ùŠÛ¶ÞšaÛÑ`< C{¸§ÄB2’'hÑóÅ%™…Y9&ÙVwʦ•=r¤Õ|ƲÎJlgŠëšäv¶Öº[é!ã ŸþÙ ´‰Ã'¦>èùlsº\v÷Æ7èÃÃ"`’@ äGØ Oè£äÓo¶ áìÍKÕÅU¶|wUhýt?³_!¼Þ™9?pUv¨j+)ù ÊÝf:h®ÛU]*«)a²µòç«©ŒÊ¢meÊôBÂ@µ1¬ãÌs·HSGò÷Äãþ.y†w£ñÕ*–’ >:vÿÄS9‚›g)+È÷,1æ’bÙE"¾-ºÄ œÇ?‡@Þéîvº Eÿ.ÙCl—·BVú–@茂yWû c{TÕsˆv²º«öF]kE½´#(Ú¦@ih9¢P*‡wÑx(¸s÷#Ç5þŒÂM}Ü­W\ˆÀÍ{¸ ¢é_`ô2=¬ÓÙcvŠ4»IH…XCÐØ”®š]5Å´øE×’îê5ü^~¥_胂ûsQŠŸ5­ÏʬªÎT‰M_ÂA'˜û\®»#]”Ö¿8“»êOotas˜ä!{‡0šut1] É#ì‹+•Ŭªö}¢•”\Å>†ÉvBr ³fd2[ŠŠ, >Ãe.009 ÉM#“ÿQ¼ÑÛ[Ϊ³ÓÜ)ÒX¯:©è½ÀX;TÕµõJ$‘†`¢Ü¼ lƒbÓ&†Õª`?Å~ÖÄ4¹k]&Oî+˲ªjÖ¤¥ÕÜZÅ?ìÉVÑÔD²"†(0ç›7+‘¹¹U¬A%†`Óðaºp¥só;Á³ÐUwZòì#ЇxèW˜_"ÿ’Ø <ø×xgPZKvE‰²²ÜX™cN1I©N¦ýêBŸù¬HÓAÅ[sX£­²VV±ÇrÈ!‡å#Œgߨ2 ¸f0ö% ^tÖ:ÀuÞç4rj˜ìruL°„Òó÷ÿ€Ýv®ÜT™fÉôÍ,*xî¶õª ¶Pï o­Ê}†€hHÂŽÄÌp%T ‚È‘p)Uq=¶‹¢mݪ«[ÝU—­«ußoÚa;ƒ`µèÛºïí_“—÷~¿ù|>ßïçóýŽ® žü® ’,Ùow=~+„Ì,˜L•“þ(ãÉ÷—ët©¸ í¹ô?†éç¨[þßÔY‹ŽYñBsÎÚyC¶þ_ÞýK ëÍÖãà è‡Ã3éyàq1xOÅ“ ŽÑ½À±=ôEàŽøÿ¿€¦/)ÑAc EHâ#¹nMN UD2«nÌ,p[Öõ¥Â& #Ȱ°0*lÜäÑAh~¡œ&3S3¤â 7ëZ¨ææf¢™OsÓz™zMÉHÙ?dÇÄB 𤦄©è¿¼µúøþ6L/r£øˆÿÀoY!? épwˆ}áOñßCK{v  ÂŸ!}çh”(ƒ¯Ä"o °ûÛn¥»æC¤•8Ú(¦wÀ£”Œ #ˆˆˆp*â5B1¬/Ó¼({lWL»HJJ é$JºÿŒ3kÀtGú“V 3ƒqeTŒ¼ÇÀ `3Ĩ€œy˜=ø&'àÞËLa¼˜éA Æø1îË€'ðÓÛüØ™4n*^'¨µ,¬“‘~ö׈F¿0L鸨¼F·ý«uƒ×šØ5KÒÒò©4<3Ó e Þ}z“ý€g5LóøËÉÄòá±zs4uÐ7óCÏ ªGÁÜ &þ7˜¯Í™˜7ÎyÍ^·i>®ÖèÔhŽ‚÷!«ÎJYëˆzî¤{#åiúû®—ÀxÆy7ƒ#²HÅ®ÓÚ‘k} P¸Q»1c=¶ëÒµÔ>yf÷«àãûëϽgøVÈ·"®¡CüEûér¯ëŒ,ÆŠxA6þÉüs%õ˜ÆUoXiX‹2Œ‹3gî…õÞ³«ÈoB ³ÊC±Áâ9‹çm[t¸3Ëùâ6ÃçbŽY¢â]p°ò¦sZž`¹=†þxw>=•‚±üšÚܬB<_“Ÿ­Sé—¹µò©ËyEÇÔz·‰ä$ÂÃs5qÜdµ¦hg^µJÔÊ×÷ê ùEùzQqamn ÆÈùoiZå­Á1¾ÃvŽì¦ÆëqdŸK… Ôï 6€•ýwÀj t¼¥ÛÔ0ã!ŸYÀ,ʺÜ1 }þ¥H~],lˆ¨Gz¯ò‡f*˜ŠÜÍt—0«*ÃZ).6—é°î<¨ ö!·áÏ»:¶ihËCRÈ腾⛠¥ ÎH/§5Æ:Sy%ªçNí #‰øø.x#áN-TIš³bEZ„2c&2ÿ‚Øp…>ÙÕücƒ”½ë:ˆ|ozÍZ}6„ÌkÔÕRµu5œ[›`I^2¥.%ŠHaϵåÚ(›mœGüdaóܸÐìÄ`lk´ ¶æTuCÅùz3úeÝÎ¥8RÆÌq’g„&JPI’Å~¹Åpª ï0BåCdu2ZxWÇÉî¡âµ%»Þ ®Hˆú!P˜]°xo¤*B EÁ§´Ð‚RmL‡‘ô ÔXÅ­l©‡’íÊôt[C­·Õ´Ys¶-íø\üÌ÷¦û¶yònÌo´Íé°¥µâ(z¿ÑgOҔ߅DV6²§My|wÕ¡ Œäus`¦°ë-ÝBý‰‚Îâö“›)*¾0 —h|Û.ˆ—©×-3Ø•©àƒŽNcU ¶¿3«J—$ªQÆ%øÉÓ^Kß­Ã'ÓâóðÂu,ÝGÞÍ»dôÂK¯Ðµ³ƒ%ž­I­#]F'A%Ea ¯J݃/ö‡Ö‡ïÞê)F*™1—'ð+Ku®±C>ùþŽÆ‡+]W:s­ ƒ&8–’QÙzm‰H[Bšp§ç…Û6Iüg'üóʲoþÖnOˆ:ˆ±]s,:ð3vðk0 Žà H¶Ÿ×—ÆOÂ`ìG=Œ£$!;u7æ/…>Ú®òõ3“nΞ=6Cýy¬êXF$ N‰E'mîëÇ¿›…׋¬Ç‡†°TJIÇM~XÛqcWÉæA?N¡Š'¿üï²»[z×rä8=•"?-JCeÚpÜw-„ÜÜ¢IY(†“” ©Òtç$øOzˆ9'‘éÚLL›™¦–‘¡»f|®³SíÝvâ Žx %Óí-ø‰øqpŒ‡ çöADXˆ|R×zauFFV^È&ùo™Šnб,?«îv=ôðSðÎÄg`>x'8"ý>È3úí$Ô_‚´)fªru™8òÈÇågÚŠnÞ¬Š ÁÃâ6ˆW·m¹¨Ä‡>K¶@éûä2qäaES6Æ^ã½R¤e–¶äïÀxö‚Ù_´ÏÄ'ªÀZr%—f4W˜ŒåÅ8i¨ KÑÇ€8šs+5ûÙ÷©˜€ãÂ+¦›¶¤l]µ"åÊ©S–ÓqöêêO.Ÿ[u»ãpc]^PÕDAKM¹¤ÿz_£ÚWì;7d5&Ð6ƒ§w_îE‡G¬þËÀñÑcሪÙÍ©Ú6¬j§jô«í$p]S‹íh•ZiÆ,Š¢Äb¶0µº:ê?”WipSUm‹÷½¢Ì˜G4 &0ƒ¨²ºÛ8SG@ nPHºÅ6i‹¶MlÓ6IÛ’6m^R’†’<*iI›4”âêˆHÝѱ.¸àLUļã}¤h‹Óù“™w¿sïwÎ÷ÓÓ… Ü8„+Éc‡T=Òs<’rífýK²e+üŒ¼,%'½—%ÀËäø’ k¯ŽÕýçð¿†s‹çÔï“DLý”H%k[2Ë_0*®®D~3q³ W]¬È‹¨ûú"Ýñ=ê.lþ3Q{2Mù/g0‚飔‚¬EuT[«E+)#,î"`e+#éÛÓy G60Ø2…\é)–~{ÜÒÑ¢]ðéíð‘h2%~et 㺇‡'Û+¾›<2UÒî_ݦK‡ì"^²ëüµ z– ƒAvGç¶wö ]Œßå—„£è&bjUJ¥%”äø#j´?ië¯pé7Ì£ààÊÌ."'4ñçØR¼„á"_“=ÿt€ÏñuÙÅß4uâZ´pJÇ¥mp,m¼Ï wDìÿ™¼šùa[Øž˜ùP¨>2s”òRLù7ôkCY—@Æ|BZZVéW•?F_%€ñ¯åJœ¬^©ãÿQl¶±“W,upb¼pžá@búÔ>8æÂéS°›+ %÷,@óÑÌÁÙð.¸ôëàÝð޾Bód¶‘å‚YfxëGƒ-ç~&„Bô8M0QwÌűä{èÙ²Ó½µÍ&ÚŬ²ªi•JmWqï¦×ÚV¿I\oµÐfi!Æ‚*eu‘ˆêER8ÖKÐs•yºüÊ<MP'³` ›­b—Ûå’îç”[å´\¾‹9J²›X=uÎE¼Ÿ{U»DÄЫ `¸D>Õ ×ãì…ÒÐ C…¾ZM‹¨Õª3¤õíð‡ÞýFHµ£kcí,¢Ù‹£îå®Ò½‹à\áÏAO[\Ò;—D)h êŸûÊÐYÖUîQÖÓ½¶>Úî,‡Í!é ˜Ö¾*õ§çb©p®œ7Á³‚Ú™Ù*ö2N¯Má. °*h…BnWpˆÐmVO¥·PÜ^¶lЫåJII™w»^VÓP9Ôv°æäü(Šùd0;‘Ït¶mõ6‰X®Ý¼d4]sñ-€ÇêµÅùLÒÙÈð«…¿¾žšL¹ïŸX².ñ€ BæÑ¹y‹—4-̘e®oDb%šB` ÕÀë ôªSo(”ÉEjr·mÀ>pú{^—1Ëá»[[âÒ|¢^ÖÔ«×IнÏà»°Ô‡j˜µù­fzí#ìR¸@Mnè¶§Ãv÷ÈŽ©Òm»MÉŒ©¯_y7Ø2x 8-q›àoý¡74 endstream endobj 1203 0 obj<> endobj 1204 0 obj<>stream H‰lTkTSW¾n4FÍõVrƒ¹·«cE| c‘"EŠODÄAŒB4E(Ð@2  å%‚¼ÂS¡ŠF@[l%X‘ø@a*Î0v©ØsñÒ:ÖÌŸY®³Ö÷cïó³÷·Ïù•Ä`0æoßùõ6·ÍŸ{ŠÃÅ1ÒH™GŒ8\4•ZJ ä|«$ŽiËù„ÚDU¾W½_/€ ºšY r6¸7÷Š-~‘Y0M®²¨ØhiHh ±4è/Ä*G‡u˧pÃ4:N¡ãÊi\=ÓqG‡it$\‚e‡$„w¬Ë]–VK¬ÎX™á¹p=3ˆidy²…l³u¢õ›I3gfr6pÀ¬c³þà¶Î^1{ÓìÁ9Ñsúçžœ;É«AræyÎëAcÑáOÆæ7Øplù[ùw1wµàºmì‚5 Æ .Á•ùMÆ9Ð`yÈQPÄ<{¦Î1¹„ X~ŒgG"ÅVhˆ<$,´8¡¬¡¤¡ª<¶$ ç*+'ˆJ†Á ZÍ–àÖÄ.t±û¦eb\¼,Žb;a”u-5àã=k¶ü–f=Æ€Õ`M¡ÂÕ8¡ö C÷ïä èïàƒ…µ`/` ^möUR3eŸâ e+\Ü´ÊÈê‰%Š*ïCôà yE*O5ä6f7°¿øÓKùõIôþޝôÌR 6×ÎÔæñ×M–<¡¦ò×'Áˆ^wé:µ]]š.Ž(óÂWðþte®ËË(É(rÓ`ü™%€n£š,päÃí}fì­û­Åû|!î¢8%Ép·¡¥í¶à^s «“ÏòOÜ}íÊ¥׳cY&Ý­Éô³ÆÄöžÌ†OJª$®²¼¨)?òÚ‹À¥GNCÈHI zŘ|MÛ×@ôïÍ«Îâ:2jªío ;7ñM¨R!z-=—P\7ÕŸí/…ø¬sÝá§ÕÆã±O%ÂÙ¥eÙåd|äZ ½ýNÊRäîyÑœ¯Ë×åáòL˜›V 6t’»ç¼|2yOÏ7œb)'&$G¤ñ×%ÑÂtênh;;šÎ)aÖæÂ ]\æi¬LW’Õ$Ì1Â}̳…jÍY¼ #5¦æ1‘ѧäî”Ì-ñpÂWh†z+õ¦ö1ÕôuJ µ¯žäœtïR¸:„ü Xà ZUi¨¼.iðrølÅ¥XŽ.÷åjOëÎà1™)þI{”!ü ¶ÎÄ[‚Ñu ^ÂK.´^Å~wïzÅI Õºv7¦5©ÛÛuíÒ_wódŒüªöõUû oïŒô}xŠjõ†.£ <îÊ6•‚wÕ þnFÆ@!ø}Påíæ ¡f,q íé}Ú W82ÄàŠŒeÄ×,r÷ÛèoXìOñ)>¶È@€Y#wîÖ ËZO·¶c#·—oöô÷=D¤ÿ±t°±—ßÛØe|$()JQžÃ³µ´àÙäx†‚g$÷ ½`p@ï•ú†îÉL±)Ôêuz½^­çˆ~‹G€ëSÀ<hSÇÒ„„jBÔZ&R 0CwGzã6žJ…u55é5 br•-ÌžÁœi›Ì&déCôoûŒb‰nm ¸!ÑÑÕÁöΟbv=û‡Ì ?ììgâª-õBdäþÕþk¯0¤ïé®Fg!2ºk’‹v†•Ë]1ç€õë¤mÌ7ûïב>}?T~øb;v·Åô »N¼Ãc÷vß!Wy¤ÜZ¿˜ÚlY ,Ѽ°lIÎavbéÅ‚Ç~轎?~WC÷4}GO™OPó(déµ-¯MÆïÛ„:µÒçø†07¾[˜¿Ï—ŸÚ+18ˆ%«ÑJg·E^.®ë#n?h~ýÿ¯õ€WÀšwyüoãHRÿöcþƒ„Þ¯>bKx¬€9nùðzÜM¾%À;+ɦNÿC_çãúçüdýÊHx˜d|„I2Ò>@ ”ЇÏi€ˆ)JÈ@Ú*xßNlGZÉC{PäÛIëɺÉU _¡‚‘ÖVƒ¶^g0Ôލ‚µ7Ž×Æeçb¹¹…Â×ÀæyÊÖ&¥'(±øï’"ÕÂÀ4XÆjÖ6ëšš›ÔÍS¼#éòôã©Y|UNj¾:oíl³“@uÌzª¦Â™\•V~¤Ü2€êúÈJ¹Øm ›XŽÕp¹&'9Kciâ5ŠÁl¤fí¤6U.K;¢â#áª#p­¶BWYU­®âˆŠ5eê½^{†#EÀú9àbo]ÊÖä i ,{yo +K· S™~õ¾}þ:?z¯55Ž>c"1ÏLQ¢e_P!¡ébüù-ѧiÙL$ú—kG¨9v‹ð½tÉ·cäŸFFë0|Á’|I ˜íÙWó¿gŸßáQà.ð³Wî\…Sv‹äÔB£¼§ àýÏÁŠ®‡Â\CR¼“W”½€ú« ý¦íÇàüêI”éq9Òz\&ßO‰1ô„<ú Fj†:Щ¶©ØÓmWi«tUÝÝênŽ(—ùèÆ™f° k°ÿ^îAM]yçá l—Ò•»™&÷޹ÛÖqÛ©ú¢­Zå¡¶øBAHp«Ð@ IH’{CnBB^¼I@@ ¸DP@ŵ‹;¾Ö¡ë²ŠVœ®ëTíÎÚž›½ììÞݵÖNÿ¿çœïïóûþ¾ç\M¿|™NáU°’ ID’€Oæ2ñ’‰‹^€SøðK¶Ñï7÷£àí'»è­ôþx:™ÎÛ·Çbûs’.ÒÉ›ëO @Ç©"_ÜÃ)ðÈ ƒ"p ~Æ$ˆA¬yHo…ô[6›ÐYPI:HGk<ÕkêC§ R«]µ±L-cÎÓÑp>)‹PXfx÷]"A\l”¢p¯QRb” ¸hìyLÏ9zI!.fª—1ÕûÈËSwð©˜øN?i<‰‘.£Ëh7uÚ/ԢŬ²]ªÜÊŠ\œ«ÏÎ&£|Éœ9ª³Õš†ð8UXŒ‡J¢ô^øpQÿbÏéŽ&û»Iß‹tO’²YÝfuËJŒ%([§¿0M5LG‚Ïl@2é” ´`þ˜É½‰~Ÿ® Ó'é‰= ¾Ãë®/£ß¤w­¢3éé•©OÀ°ý8Ža¡ü˜Ÿ8HÖ ¾è …¼iž c<;‚Ùù8=oŒÑ1’¿o øÁ]ªÌ챺k<\³ÇmnCýõ›i¿Y"•XBŒBÇ}žJæ…Áý¼ ^ŘSXû—ð4¬,C‘•žNî õÿâ¢Ét¼C(ŠûŒãYÜjJvλ3»™±š¤uRc¬/!©Fb´b"¾ð&oÜÇq·ÜûÞÇÜÜûwpo¼äNä]$ˆB‚hÀ€#Š1ÉLÚŽš´ãôwÎúG—ÖéLí$Ú¿Ÿ™ý}÷y>ßçe©Jvoc c—äS¥µƒ ÞyPxu9Ø ¬PSÈrÀÓç¾@ÏäGŽîß}¤4/à ³åY°²ìPNV.Ip¤ÅT¡NÞBwNÅÿ<¨ó ôq¾8²ømm.½•­¬SÕ©Œ°¡†[_…@¢µËÞiõ¤vzþÖ•]„Ãb ¹{lÁT›¬¨QŒ©†Z%Q&Ûð.¥Ô¨5j5©×Vëx²-ìry…¢\U+dßLÒsӭ殇×s‹$fLª–{¼!×ÕÒ½:*UßÔ¢w`½‘Ž(1Ðsb"r³ý›  =€“éÎ,ІÃ])EÓ—ÝW|vt¹›~Iw²{Ôȸ§uˆ|4<Žq»™f»÷4TíÛP¦¼VŽŸÏÙ–¾/åò9½‰¼Å%Š+É„3 }YÊâo²,^“Óú5¶…°öÝWð ÒJvø!o¸ÙíÄÜ •Z_£—»iíÿ%d..cÅ‚ö¤>’[ÉáUz¤mDòW.QTÿÝgjð–2g‹ïAÊâ©9;BH:‰G/+£_Lµ«f|!ðsûé¶bÑTäD ý,û¸p•ÇE1  2 †cš–\¤cÔS˜Rã±×y×*nóoy<ìÁÁ³C0·Ë wH¶o BÊ›$b³{‹N¢QÚú¯6È$êáæ%Ý ›AsQY~L¥AmTÈ÷ºŒ÷éÁªupåZݳdÊâ6{ fÊ3@}Êøf6%ü0÷Q|l¼ý×…†¯‘ïã/ˆÕRÆfºb0rgàdω~Ìf¦dò:IŒ@¾¢shLš kE:î3#rï…LŽF¯mÖyD%9âJü`Iú¡Ì4ƒ‰Ý V/›½ >ÞÇÁGyy‡v1Á(H,Í& h\Ò¦R›§Î!į‹^®|ÍL±g½Á¿µÜ ߘº˜ Ÿ=Ãü€I%—$u¢æ¥rúg|ú¹FŠ}É 1KçfÆV)á¸âÑê/葤dÇÍzò]dêG_¶Rì°•iÓûtó­èTçä'WG»`_$ìnÅÜJ)bî’J‰¤9P­Póì‹^øoƒí¯ÈÊÀ³ sæ¤Ãú$fåèoèMð̓Úùå`-źxe`´Ÿ8{ñøw‹è‚Ùßäó”R.N/Ë8H¯ QôõØ;÷ñ¾^VZÍôô•vðÊ…Ó„»9laVlÿ®÷¶ èU™û‘¸JÉÃ’i›ø—ö…xd3a ØÄjþöÓ‹#°³Åk`Z²…ësè¤Ão<’#ç`åÜ&_¡Ê`ÕúÚÔ>,r8ƒÄXÛ¹¾®Q¸w¢$Ì¢}µ·?x^N'¾U€LA™ÿjíÿ–ع”hJU©ÉÓäYtˆ¤Wðé$êpªU¶EÖÔäX‹(¾üäå{:²LLáAÌÈd<1žÀBœæ¾¦^kŒ˜ÍZY‹e¦ñ aYi¶ø˜cÜÖÇ(©Í%Ûø4Ê¡—9´læ8±-mày6Òî½¾8<ýÇOF1dÒçÐ)KC¼?þÛþ”hD= 6ÌpCÈ7Q°–¥ÏÖæP¹°äx¯ªC®29~’êêèžD§3x® ʳÙÇЉÑî1¹‘ñ¼ÄÐ K¯µÇÖ ·—ÙJ°}{ óó >Ÿâ£éý•s}L)¡~M«"ÝžY¸³¬Ðâ·W$ Æ× ¥ € m]@¾D.â(+ƒî†ôBõ(´Ú|x·¿;6~’¡0› I«r¦Ò3š<&Ñ4ÜV·Þƒÿ‘ä…ôEņ"Ìõ¹k:0EyÙy©\¤©¢·±«”ù5Õ:ƒ‚ÍXëñ&,";É”™`û²yïòuVÔ(– ‚ Â5öùLï ¼w°g°ó´ÅÈ.£WAȺ'­8Ÿ0‡rÉMKæ`zYó=`C¬ÔÚÙ;%ªLm)•->’Z‘¶éÕ}y°J.Ñ)1ÊàuøÍ>‹Ÿ@ÖM€ðÓY£tU ‘LÆW^Ú3j%#dÊüðO#íÈ$ø2¾™å¬šl³;aãT¼Éyéý?U¢Â²,ÿ˜@Ì`åxîê×82©òCH»FFêÅEÖ7 Ä)l˜HÜ ××ë1%e¨UH»”«8¢.€ƒI¾A¨Õ°…0[’ÑÓlôcþ–s€h0@Û~ÿö¯èU莞ôyðSð<8p¿ƒyÀsôÇОoý}È[ˆ‚‚€Ìkvø)×IÍwŸ•”øoücªJI ãm„p†m¡„˜ž†•±±¬¶§×÷ –Fe‘™5À§±¨œž¼·‚ž…„]duq€ £‚‚¤„§ˆœy𮼠¨¯Âµš›…zF™šà‘ƒQS5aofT…»ȃ€Õ<vq…|Q8œ¡ž¦¥¡¿š#h‘–McMoy[Dg|~’ˆI€§û¨µ÷sÙRvøxw¨w´“È®„ûHІ‹††Z²k·ÔÅÃÀµ»È¨Í£ÔÖ÷!øL€”t‚pƒs‰hû|ViDl^Rd\ex|†¢¥—š÷V®Ž±Œ¨¢Æ‚–|~€†hX9S–y»¨‘•”’“›tn|zû‡Šz‹z{q™hª¨½¿©¥ª­¨°¤±‰\û6hxLqVUpg^Vhp¤³‘Œ‘Œ’ù÷±Ÿ÷ì³s£y¿¢÷ Ã÷ ¢÷¤÷Íï€øùEûæ+¢Æž˜Å´ûÙ€Š~†…t‹zw÷JŸzt‹‘Š˜–÷Ù´Åž~P¢÷MëûŸ€y™›•ˆiû¼q‡gˆw÷ ŸgŽ¥Ï€÷ËŒ÷,ü“÷*øû¾jˆ~f€w÷2Ÿ€fˆ˜¬Ÿ€÷Àœ˜Ž™ ¯€ûûûÈyùEû—÷‹÷¥’üÀ‹wŸùEŸûŽ•÷•÷ž•üà µ ß øˆ÷ù [û" endstream endobj 1205 0 obj<> endobj 1206 0 obj<>stream H‰TAOÄ …ïüŠ9j<@YSݤá²^zX5¶zga¨$¥‡þ{ë@¾Þã1ôÔ?õÎ& ¯Ñ«ëtÄůQ!\p²Úª´SÝÕ,Ð,¶%áÜ;ã¡ë}ËÍ%Å nƱ¹c·@_¢ÆhÝ”+÷üý#W†5„/œÑ%` h4„žÎ2<ËVá_qܯÜìo{K £tBÇX{åxx€Nÿï“ÃêbÔ§Œä÷6oÛVT2…š#¯T,:Îx¦ì´kŠgùï5£ZcÌñëPjÈÏ:¼Î-øP’”E¾¹p3 endstream endobj 1207 0 obj<> endobj 1208 0 obj<>/DW 1000/Type/Font>> endobj 1209 0 obj<> endobj 1210 0 obj<>stream H‰ÜW TSg~YD¶&èŒCõJH Êf !às Á$Äh­5 ÍÆ{¢B¢"hµÔW*j+*Z—â2=SŽ Š[EÆmdœj]ê¾:ÿƒ*hëÌ9sÎÌ™3ïÿ¼wïÿÝûÿïÍ}A‚ôCJ2*Eƒ¥/j5ÇD(Ti"£fß»JÀ÷KP§3P ü`Ç  vŽ3×ö=˜‡ ¡ì›k-Ê)üðîi …xÆ!3nÈþóÖ‰8‚DtBûX3TøŠY.œåwÌ6jZa&6ÊNavZ&ƒ¤M’‰ C6B{·Í0ÍÉdqj¡ý9ˆvƒ ï"õB Aü—NwÎôÝý[„y Œî›~"‚.ø„Xú<@Ý‚;\¯ð²Ñe¼Ì·à2T]`2R´׳g†Éá èd./‚Ë`3ÜÙ vÍDE}4ë•"‰Ý· 1"$â@¬ŽPpŒ¤o¼êí·¨nî•&^çâijiuÏekܾï¡nfaL¡ ¢þø¼«µ¿‰9¼jAyãàFîSÔû%WRr}&Œ¾Íee±y‚þ:œ°h,¹v %òI (qªÐAL•@h_àó ˜Ý$‘ŠÐðž‰^K‹ Ê`sZì¹@ƒÔ%†Fõ #”*ŽÉ’±tL;ÈärE¦V‘"CMaqÃÁ«k ƒxÇ Gc¤Qèp^ 'Š–þ,þïoÀµ¦ï™38˵ž{ÓåBNJÀmót‘Xâ ÜÁÝYËßãï=®MÓšß~4:|穇^ï»w­ò™W¿–¿ünš~xX¾£ºanèõz?rÊ´oóºé†Õé'U±»ÄF½+°1oÉé`}äécBÎìØ¯—l®ÏsíVBðVÝŠ™A«­e cÒ–M©ß{ºÓK|²>n““úµ”`A^ñþ«çpFž¸VÚQ|zÓý-EœÎ¥Iy!›"†^üX€W<Íe|2a¥±Ñ¿¶ôþž}Â=Çu+¦z‡Ö}ÑS ¾@ˆÙeœÚé^ý å·õÏøÞcá*?«þ/fYcÅš‹lçêð†…û¯òóVn<œcLNZº$8jypż§Ùžï<8ñæo±Ìäÿ•mò›A©úÙ©å•¡·„“ÿÿ’x‹tÚãxÐ?§ñb§ü7îôߢøâ|x¿8Ô—žðxbv 'ì8…ºª‘ÒóaæÒ)]g¸Y¿uAeZå¹zÿI–s¼c%WÚÔü¼üÓÔ3Xü’k§¸ïUo]7mÂ'&…j/ߎþ´.¶NìuñŽcH÷ØÉœUI³VÕ²G”ÜÊoY°wÒóÝ¥-íUõ%ÁX²Ÿõäòí ÝúßIÖÄß/Ù¨ßp&¿òqÝ´Õ<›–l~_<£k“Áú•„¶MîXñáç–¯N;#Œ!ƒRÀØm!‡)æìî·”åÅxF<üäÂ¥]UWç×þ¾<2Ú«z{Ûü¶€E¬+^¡:îÊÏÓ¾8>.õÔ݃ ¦ï&ˆC£šW]þÓ¨´[miWÐõ¾¥Í%­ 3kž, —F<="¼y~ûµ,™3U,š‰º½6Àá[Ãb2˜L¿¢œ*û¬í-»oÙ«êñ¼¾Œ™0¡ ¿rêoŽP4*í xøËŒ;l6œ0Y V qäP…™ùF«…4ã ä²î”“Æ¢èË”¤Å¨è˜¸˜¸ ¨›ñÁœ„4Mé1J*,,”@CJL[$ìÀÒB9ˆ¢Hy¦†^ÃA8%ÀXÔxŽDDçµ$]›Bçr¬t$šØã'&Å’k¡à‚X [ $ ¢dXL„ƒ„zyè VK¶²8ì  JÊG½h{®€™¥‘ PZððÆH3,=Êa—ú¡>=Gá¡Æ³m{¶tHkX€^÷rÈÑAt»}1ÏÃ<<`ðz¹ÞÔ{2Ý R_yâÝÙ¿p๭X¦â=q„ç5K~£Ù{é”ù¯1]Ø[­Uøw!ØÇ>úу£NÛ’ǾÚŽ®ŒÒOß½ijh˅?r®üÔ^õh+ÿ·¾Lœí¼üØ1Q5Ãá«VÌ 8ƒŸKœö¤µÖeñ>üPÁÍ oÁ¸Œ³8GCvª«·T§WITê“ÜÅ·¼bt»Ì ÉŠu Òõ­K;²‹6®?¦j¾¿ø6kpñ€øM7gÎâØŒ·ç ÊGœmô!÷sG}=ôÀõ¦Ey‡÷åì\« þžŸ;ýñÜ¢Š-9¼ÍcŸvAeº?Æç†Þ’Ѳ#>û’à³IGæØÒûoKò€…¼ÞÍ9º9g»£ó¶€ÍD”O¿ú²Ù,&§u•Óƒí*Eg–úWýí¸¼Ë¼üÞˆcö„»|÷ZÓ¡Üf=ü*Dƒh&lã9{*Dé/¿Þ/»þ,¦G)£ !<6…ä¹£P7;¶†G›ºÙ!P=¸&¬tˆ™¢œd|dä¿(ŒµnÖ^—›U¯5[H` ʒc1(Xº †N6œ¤«†Àsp·›p0س…"A> a$ )Âb¢¬E<2ß87Q€rˆeÆAï!¼ôK×K&a0QtC„­‰Âm¸C!“0¤IÒ©…‹,VƒÑJ3yÕ[ç½i£ 4k…ØÝ@€+ˆ ÈÖTÿß¿¿RS85°¨ÉåѨ×n ²rþì–]`ùxPh¯@ –}7N »R‚aÚý„·3Ò¿zØÉñ]Cn7eÒä…ÿ¦m…ý®í•U®Þ">7ÙfäÕ;¨Öhé«ãBâ¦8§§|wÿÆŠ—¦½ ƒ¯7dÖŠÑ~މO3nFM‘.T êo‰¯N•Ù§´T¥‰Gff~¿hۓǚĒe}Ì27\•5qÍ ÚË÷…¬¦¶‰Ù!iwnˆæe[ µ¹!–›oí{*7v.]=Ú/«Ç¯'íw:|ýi£oËÆòD}Q#Ü%R<_ÄO¦å›_¶¢¨q_Æó„©„òRèuù¨ãÕ0»]hù:72ÉÀÔiºŸò‹ÁŽ÷†‘xg[Á@¼óö¾§ ñËÁB·L¼ie„ƒ¿|{¿¹T` KÀæ@´Ãi2üáŒxÂaýÞÇþ|8gà6¸BP0# ˆÅ°ÆÂZØÓ93± ¼á †10ƒ¨A¦ »ÉMð/œÃÜ!ð{.ö?'Óð ,ÆÕ·ÂN8 `Îh ×ÑõÏůÀ+J8¤Ã ¸Í;óÀ á”A-Ü'¶d?icÅ*±AüjÙ€ØCVŸ0Ø ¥8î\¤lŸh&¦‹ÏÃp´¾Q×ÂY\ëH §Yšî•/–#}Ñf´Å ÑøBÀ‘×á5郢¥ý€†ëŠC@ #±ÂGû±â­†lØ„(Š ŽÂòYJ.‘Ç´ÕÐÞ_ê+õíSÓñ­è.>Ã5úÂ(´v>,‡TÔÜ [`;j–âZBi‡bOˆ#ñ$$Ÿ¬'È :ž~O_³þ̈M`Á,”e°föÒ€ïðÓíÐ]ýÅTä’ ç2ô¤ ✋`$‡´.¥Ù+G©@>kP¾[p¥ÀCŒ91ÊÈ89Š™Mæ@ò{MÉrŒT“Óä,i#OèdjO§S?@£é šD h­¤5ôý­œÁ,‘}ÄÊY;Ï®²&¸9œŠ‹á’¹­\÷-×Î=át<ð(¶¼ŠßÓ±Wç¥ ÇŠb˜¸I,@y€@4cÁ ñø£WÃqG‰FT+`%Jr·m‡ÝÈž½cP _c”Ö¡ëá 4!¾[Ð Ïá%’£ÇgJF‘÷‰ò;‹¸£,D?¥ ¢!y¤y®$U(gÈMD©C„A4˜.¡)4ƒn¢;èNz‚ž¡×Ñ"“ '†2wæÅæ³¶„%±íìcö ÛÍJX5;Ãê9ÊÍàü¹n-WÀíåŽrç¸Fî&/çø\” ¾Š?Å·HŒ%æ’É¥¤Z*1H3h5ÐÁp*¡ªwî“l2€TÂg¤•qLCèjH¯-w™X¡fàóp·ý-|\¥SÉ|N"ZEB`Îö²9ÐÀÇ%ó' ävÀ¯ü7 âséçŒò¹¬ƒ¼¤å°òèòŽ21˜ô%ÙObÄdÂL°áÌà:Î –Ô†ÖHjp”JØt6ÃÀ[ûÙ]4Si`DÚ@Å~c¼Zƒ›¸®ð¹»«Ýµä‡,ü-­²HÆ–…±Iâ—j¯,É„…m¢åÑJ~›´…™:Ô%CËRe2CgÒÎ4Óahp:áʆTNRêý•þa¦Í´ýáÑþ(M&ãÐiЬž»–2®ôÝsîyÜsî¹÷îãSrTëééþ†¿«³£½íé§¶µ¶lmÞâkò66l®÷¸7©Oºçuµ5öêªÊŠ ¶rkYiI±Å\$K¢IÀ·Vh «} …zTð¨;vøX_M¢ ¹F  ŠúÖÛP%a˜)ë-5´<ô5KmÙR[µ$VÅ~_“VúqHU²dß`ùó!UWè}ƒï7xÁctJ°ãr¡‡¶O„JJ˜öŸH…!/c1Õà¸Ù׳Y r´Z=š!ÕÝÄ`¸êpg†¹³¢µj(LkÔKòîprŒ ÆÃ!‡Ë¥ûš( Žª#Ô^Zæ5L h„¡bJFe’MÎ)™¦…ÔkY+Œ$¼ÅcêXò@œòIÅ(÷bÜ­þþû£.n ÆÏ®Õ:øTØ>©°n*uV¡oÆ×j]¬Õu}9w_"Õ‡¡_Ã*Fb FãÎèqJÎ`H…Í„Íjy~ãj˜I‡Z¤öª©Ã \›Ú…¡®ÙÚZm>jÃJj8®ºhCÕ“¡™ H ˜«Ñ”šõ_SÆZ¾\ØLiY).YËŒ¯ê Î0g\dhµ²„e¤>‹;‚*£ fWqNí¬o‡Ôh;šá¥ô¢c¸"“´(˜HY;™œùS“Ûª*©/w€zÿïë%É‚Dt[¿Ʋ}²º×P¿ÂS¯—66²-"qM1Çn£ÿ´¯éx– ¨G­ , `m“zg3–ßåb |.«Ávè©Áør_Ç,hÍ^r ¦YXÑTîašS+šU÷„Š;ù*>¿*©ìYý—Y«6„':)©úêñe}$¦F÷Å•p*Q¨mdx]oYß¾ª+ptC0Î;¸Ç9xC‹›òÀª1ëÄ‹©àÆ¿hl걬$ã®4$Dé£ÖÄŽåV7»\ÿ§S6ÿ9ó2È#·Bš´Ó»¾ßµ®¿.½â .2¼/•2¯Õ+šlYêÆvïÒ»·È/e\{]>Ƨ*»¾|µCÌÀÓUH na ÅØ.vÀþ4t¢náCݨs£ýw ô ®#ŸGùNÄçˆ&D ¡ F:bâˆA®~…8‡¾~æÏ(âŒ7ý*L{áI¤6á.Ô ·¡^tÀá¨(ó`üm¦bˆ"ï6„ ©Žùäÿ†ý]¢mþ9¼á#hGß.Ó¨ÂÜ·£®ÝÔ½âŒwªpœ_Š%‡‘î4…PùÏàÿ„cc'}ü"„Ñ÷YÁ Ûù8¿àã~A¤aÔW"Z„Ÿáœ¼°y–ò:ÒI´‰¢¯õÛ±žÌu€ÿö#mÆq÷ó„ä-¸ˆôhÿ”ð6¯Œ¸~‚«…>Ï`­@a^ÉV¤ÿD<÷Bƒt"8þÁÊoƒC¬vø„Ÿ,ÔôúÂ8þ=8\¨1Ã&K¸'Üà:dȟǹ+â\ó“àÃÚ|SºK~„µŠ¸I¤ý 8^;¢ ÑU@§é*1#,¨a§8£ ’ZÑw Æf{u[1O…üwò7(æÙŒu ¬ø‹;¡}¼¼ bk«XÄ÷EüÎ1(¹ˆ>Çп›kÁï “Ü¥e@·åßämÜÁe *ò?4(ú’‹°1P 6®ÎGHžŽoín£í1ÚfÖrͳÍNg–Û2û6#M³u H6i–[µÎ–z›Ó_ÏúÕZ×·œ7gjœ·ïÖ·:_õ·:O#šDZÏìêgœGê|çÈ+GÎ mPU…«l+—µ,¹ýþžŠ¢Š¢¶t–üVëÒ¿‘ÒsRúy)=&¥Ÿ“Ò}Rú)½EJ{¥´[Jo’*d›l•KåbÙ,˲( 2'ƒ\‘ÍßÔ¼ìðWˆVFDµ‚Á[9Ö²ƒŽwŽÈ~ÝÑ |„‹Äzi»7’•òC´Í¡ÒÀþx†i¥”{5K`8ž%y&:ã`Oíy $æ¼£@uDèÂ(DFú ¦f‰oT&µ—P["ýv¨:Þcï±u—wô…Ó$ ­÷Ñe÷®½"'>'9Æ>¾ÈKs’óM‰Ic(MÒ4“¦ ©½Ž^ˆÄât¦N§­ŒÉ×éd.pM›bï 5<ŽHÐsÇ'ìôÔˆ¢d´k…Obdt‚Ñä8½¦Ž‡¨¦†”L`ê1ê)¦¨¡ L…‡ã™)m<4Ða5Òç!JF2ÓëÂýx%Ü<4’‘ÿ1KFØ,btú1§™:Ê"N³ˆÓ,bT‹Ó±^ˆgdèÕñácÐ9ÎbÆ¥J8\zo•õh·±n].ûËŽ ÅÅø^W‚`*_À`*Ü0LUÊ^ù *ûË].Çä‚ÊŠârµ¼Ç¼_»^dØÃ“!Ìd>¿Àšµ9[½:{Îpì„_xŒqѺ´'Die&a”³håy®¶HF ÔÈ ívoÔºèïÏù£Öþ~kÎ=þœŸ¡e««ÜUîÆ÷6Nv)^6IÞ÷Š  Öö{"ð èý·@›DØ”•ÔLM̌Ęn_›>ãÚµÓ¯19BèkàƒÑ°ƒqHp|<È p1ÔÁÛtõR”³ø<›Èـì¹@YN ïÃ(›‘AŽq”ÍÄÀÇxÊfŠ_ƒ²Y€ì/P6ƒ“PHeAjZbrªÂJ…ŒTßü¼ü ‚s~QA~QbIf~žBAN²ž‚KbI"Eú ÂósJA"Å žy@}†––º@ÂHOÁ1'G!(3=£¤X!(µ8µ¨,5ÅÇÏÓÙÙY;¸27)?Ç7?—!„¡’¡€!•!!‘!H+0¬â† 0Û—!Ÿ!ˆK ªœ¼" D&Å3Á*€"9@ýz@– X<‘B“ôá.S`Êä0”ÂÕÅ<4Ä>CK 4`Ð…²ŒÀ¢Ž@9@:¨'膰®  yÅ@\ÄP$S|ü€&9ƒ¡6ОJ†\†$°m¾@ûAªÓöæÝWD@-%²Ôyh+8521ýïd½eå‹€ä™äÕg)ÄóÛ|åå /öØc ¢7ù\yøÿÿ?;ŽçÜ@.7,åb³b endstream endobj 1211 0 obj<> endobj 1212 0 obj<>stream H‰lU{Xןa™™•Ç";4»d|E£XP¨@75%ˆƒR € ËK`?Þ( VH>Ä êDˆ¢{}Ÿ±ŠFˆ±VÓDÓÄ4_±çÚ»ýì]bü§ýæ›óͽsÎo~çœß=Ã2Ž ˲n‹¢"Þ‹2L_`^]e*°oMÂZsÄž.udË ñE÷ÃyâݠҽÝSjR3,k.^`Î/)ÈÊÈ,òšš:ÍË/8(xµÁ¾£ÖoÔε³GíœQ8jƒ¼ÂÓÌF“×Ò’Â"Sn¡WD^ª¹ ß\°¢È”6ÓË+<'Ç+ÆŽ\èc*4ÓÝ_(2,½Ë(Æ™aT£á˜ 㙆y—aÂf>Ãxf‘çÀ$:0 i¢Œ£`|Ä ±îìdÖÀ&²—ØïBŽ;w›úuƒšˆáb«xú *S›Ö¨a.ìSp¾)ùðbó~rŠ;Í“pJšÎÛgxxƒ@«ú%ÓTͼdfW3ýg_2ùÕLæKfÝ|yßþ†>‰—Å+x/xIç#ì„@N¼üƒuß%\_IJ82it±œ¯°/øX^ü3(øµ„z~=eÙ÷Ô'—ë§.¹L|µØMâ­ È‘ª©°ãªðÍ5,üBð¥>ƒ%qW)׋á}Óx]ËðD©ô™´|ÌäðÛÈL2ål™¼ÓýÉØ¬!pºKœ:`,§‚Uˆ= *p2¬’”U8³P :VöJíæÃ©¦•ùÙ¹myÝ]:u*2ñÅCö[ì«À›_„H‰Í6ö?WûŠ9UÂ¥ÌA«Uk¡_ê­œvMw)3¹õ}íš5Ö—èƒ 2|«ƒ•õ9’*5Ó÷’‹·CÎS]l½´N˜RJ¼‰Óìü»êtU½µgÎh@h58ôXŠÒšu-qÛ¢6G)U›>DsíD üDBñ!”Åq²†£œ-™hÔÇle°ÂAJ¦ÀÔ±²_€PÐsÏÿÚwzXÓVs¸ò€îZfhk”6|Qþòßé VáÆí¶ _|ž0·¼¾b}…®*;İj )"†ñÑ‚ªòDœ‡Í4Å1V褨[aX,{´ä¬îpvBc‚–(Â}|/ú륫-çŽèiwç/ò-PÖäe×g×Öm©Õ.¹Á·|´Ã¢§¶§À@´f©EJ¯ø Ñ õOD·n£3C–žò¬ƒúæ¼ÆßoNUª*À&Ùû±ô ìW¤OJ?]–N²òHþñ£êH£ãÿì©`‹=h«=èÍÿ”K–P¡/ [íâÙ[Ì>éUàª%$xèÍlH7OPƒõ'Ä>Äá ¼ š$d —N|%«--ÅeÎŽ–pR‘\t R$ŽàxGŠ>ù±NÄ Û;>Ù³OÙxàmšÖÚ–êýº;™ÁÛBµd‡‚$9œøCŠ Ú ›x"Xj+”ïÛŒ!2ÿ‚è.%ØÕÄØ ä{6c¨ {Gq^á@ ô-/‚ìElÂ" ûRéäÙ%à 2N(ŽÌ¨’µdNôà@qóÙç™ =ú0Yr„ðiƒ´žS½)Ë@âý%ñ…”ÁÁ½‡®è!|TjñL”k…Ú„ëh6!’.iÓ0"™ò°=ªµˆ‡?ïça¯õ!J¨Š•@l„@dSËd3’ ûX´b3bûœ<§Àwp=n2Ä“Bb}¼Ñ¬+/2×åiWývpÓÿC&«…£å\á…Å×µàÝþø+=×_ñ¶B$*0¦_„ÌÛ±Yv]¹)¿³²QGÏG 7ˆH¢|‰'µ¤†ƒJ9KþÒfœK;悯ðàAWÒŰþÀn¿7Aœ…Àboì”I±PúîˆXäç6£÷ëìn"ø'uºã±±‘Éñ OÈxx‘©òg6cMEaã¦Ø\¸n&bn—͸d´ãvŒï\¤ì ëäÙ¢r×qÄ×® J±Gòp¶ŽÄ ¼ýÇP†X ¿¢qà„ô4Rˆ‘¼çOüè¼!Zz6æü´¤“7JD4Œ#!Tâ×Vð˜{Œ„¼«³7x‚]4á]ï¿TW PTWmÄß¿ãLAìoCì/ÿ»L4ÔhA‚ -`¾€,Š‚„}E5ˆ‚Æ% h£WP†}—~ –.Ñ6A&ÆD±„8–1÷;—”óbj¦ª«ºªû-÷wιç]”m5?®èG{ÿ¡†*Bµ9l•ízcµx¢øpMV²IØ‘¸u£à½dç2È¥ —RΉ¹ÉÖk­PMÒ ù$6I.!êZ#­–+“¯A‰¦5õZüE¡#Ü­ ü ‡s‚Ä„ ”Ï=´Ü78¡ ýqBQ:ÃÅÆÇÇÆGnÎ[ùÞ©†â¼F¾¡j}ZÈ•í:¢ÏÒóåeGNŠÎ3©I ÛøíÛ¿Úÿ¥ÈÅ -æSRvf¥Ð¡úìÃÙ‡sUG)ú x Þ¢´[ƒhî>‡_‚%ÆÃ å‚©öÛ²ÞhŠû¸^,X›8¨go”ž`5ÔñL6d"E|†5©ÚsÕÂ;Ú‡A·ð/6üù½QV>Du¥N•)ÏÐà0¾s©0 â`¼ò|Ó®âÁÍ_oJÒÒ;\o®dÿ…Cïoo~ÒXB ä6‰5@“!’p¥ ®x AkHTÝšo]ñôTÝ9ÕêüÄ3´míèËW’#ÊE®V1ÓK–³Ü?1lQ˜¯ÞÇ ‹'ϱ¿ÿE~ºÈ•lëŽEÑ I¥O;”¤õúlõ„ÅŸæW\Œâ¾„„¥kU³!­¦ôžn Ã1À;o ³‘€»ù3ÊQ¾*³8ŒÁ„bêN¥L5k hMõáŽÍf$Ç :»ƒ¢Ö7HêtéÞbÑúïQsÃ׿‚KÒ[ Z¸3¥n¬cÝö»¶ _T7§ø‹­ú²*±¦üص6-ܦRk’#ˆúÄc¼ü#!’ëâzågƒKGJOYtˆ@W9‚yB0^º©¤¦ªg¾WÂRÚ ­öüâ’$뉺€6â6É÷'IÏÙ5³p¼bB•\=ªVÊL?Á@©AÙB—hSC;÷ü•¹¦4.fFC}q%õ^Â1¼¹;œÉl‹Ÿ²¸²îÌ A³ ·ÔªDÝP nÌ]‚!Ò %Ì Q”ëEf1^$’©Jø‚á} fæüi eÐHêÁÏR¾=X¬ŸÔÅâxj^ƒÌM‚R§âñ] …œYp… ŒÕòÚšÒ¶•J9m «~m j‚ž¿§²oÿû’XBÃÍëTô”@ý»5ª©¡áÞK{ä>zg¸Wsi Ïß|•!fÁʨn11p)r“ q‚ ¶0«(¥P¨JZqÎ_¤ÛøQ¿œÉ+¾]ØÉ—–d&ŸÏlÉŽˆÒF³Ù«²isôå-rM^Í _Ü못B.e»›† ®ié  ¹üg!5•…GOèÅ3†½üùÚŒµ"mðÂhq›Àzœ³š „Ùèâ3—Ç(þí?Ý~Êæ+©ëêDå§ÈóáÑU‡£?ÂÀr¨{o•4\‡ó3¡&®¦-ç™ù0ßÛg¹ —I0W±­‹Ž.瑟> 5´VT™ÚÆ­ös-U´ÜùìNH¤åŽÓ¹MÂaÞ~|Òõà9ýøÒ‰ºÁB?! 6Z\o†—W-å’KšÍW˜U..ÉA|ÐʯO­׌1\ÑæÈÓhöKœ£ÇMGGt¡%¸w÷–· ^¥ÁÊ«9W;€áA(ž˜h– ˜ØÑ{ 1ZÊGåךQn9¡|8Ûí˜,îJÙ³a“ÖoÕ˜iœ$[ŒDÓ¯ËlÃWU ¬$4À¢¯Á,âZ²š¨Ë fÆVÙš2DÅrÝ>le¤G‰3 aÎÈØOùv,̼q÷TSˆ#Ùiþ1ø×Ežù‡}…mË™­—Hîáaä}#Xˆt {:{ šÙ.^“ÞŸßÙýø_­Ï`lù‡Ò`o|ÐDOR;øÎÌžlözÒ]T-ô _é/@ŠÒzG â‰#ìcë¯oçä­DLq »&ÒÖjÈ»%®—û7<”‹4`½­YÈ(¢› ÊU¶ÆPsâ1Ñ׊òКÇFÀ¢Ñ"h®m³!SÙ°Æ5!Õnïq2L+æÅŠJ #kþ¬Ç–²Íµ ÷kuÔƒO𖍤!yêéqNS6fѤáFÙ³A‚yzt[jˆQÝAÌéa&5†ë–ûlˆä±\SÝÖ¦°SBnrò¾¼Xĺ8±"5²ÔŸ_'rÝõc¥ËÖ¯ˆ? gس§Jëùûæo±å·Á5í/k'|nnVÆA±dýžð0-VîzÏH/Tf©Ý1£|åê+vœ9-KŠ>ÈëïÁ{CxÓ1Ã6Ôv–_ãëŒi:sÌÓ™™-¡«î%A(7D›}G>¶šï㺂îÀôÌ೪”CÛòóµÿeºüBšŠâ8®Ù½g”(¸Ì¸‹»‡¨@ß [Í4ÃD“á®ÙfMŒT+ËÖ¦0Ò1ü3nîA·!b)SS[Ú}¸¶¼Š`„h[ëÉ?ôÔCÅoø“è\{éõÎùýøïï÷ýœÛþw¼:&ËÛ[­ar«jIèf•ßH¿ —®åÝ÷ÙÚ51qíRïÌz"¾Pêi‡×éæ ñ@ûraðU ¿, ^ž#$éá7 µ§”øÒæ~;TÊ'h[öÏfº˜GÕï–hl÷Ä€Mk ¶‡_pà¢`ˆ}Y…™ÅÂú ż¤Ç‘/c¡žÎ¼ÛJ]2”¯ž]1Á|Ú†ô%©°ÐCLµÕ·Ê46ko°EÛô¬#æ`\ÙE/±ô[^Úøæ3O^kf"½ëQ­Ú~…j9*´$ÒåŒÐré›û#*WX£Wêp1BÌ V‡#y° @½N˜b!i/Yaã ÆQ¤Vý+‘Îü{2jÕ4€ ŽA–A­:Fk=*ÔC!£ŽÁIÈab2VoXL¡|3/£Iˆ³p³õ걈)À"S?­-øìÇœl áån\¾ŸÝ{a/‘ɇ?Žü`=ìÜ® endstream endobj 1213 0 obj<> endobj 1214 0 obj<> endobj 1215 0 obj<>stream H‰\S}LGß½ãXbé!·.wšªUD¤¢ EEä@cpATNÄÜyx€ö…F¯~ BAð³Z ùÐ\€›SR *ůkEZÅϨií[3$íÞñ_3“ßLÞ̼÷û½÷†$ÜdI’¾ËW,‰™mÈ7fk3VnÒeoÏ×:æ‰,)úºyÊÄO3.ùDjWpçÈ‹¹s„_t©k[ìIM$ˆŸÏa‡ñ®P¼T2’4ì6䘌ÙY[òÔS3¾RÏŠ’0"Ä…³\ê¯]8Ç…s]®ŽÊ4lÒªW™ró´ú\õÒmcŽÁ¸1O›¬VGétêD§ç\u¢6WkÜ!Yÿ/€ ¥A,"ˆÅ±ÄXF+ä„@ã%Ù„Œ>D1LF‘§ÈaY²ìˆ\&äÕn„Û·^¥—t’Å¢C.:p Ó9êH¡”…(A¨ ”6Õ- +] Z|P˜©ÚC— j¹«;Ö\žÃÆjvæ&ðÕIŠšúûµ÷ØÆ†ƒ¦:þâîò-[ýuTù†µå©,OžÏÓ–e7c><îoëF]0—: ÓÚ²rM\Ú‘Ì%) »þ0 ±àý« H^ò$½NĹlÊ— ï ¾ú½÷ ¨›¦ Üsx© f@@ôýž‰—ðZ‚½(88z‰A=‚£D/œ!@¶ã%‚ûØ«t›ê®Ô{Î9!€>h5ÔP´¥­Ð’y«4™ŽîdS2·døæ=Ù)ì½AoàéÁµÐ5êõ¥Hwá"UwöBc{çèÂïx|ë—ã¥Wú[YyÈ|ŒoÈ+Þœé[(gÔÇ6)5àa…óVÚ.>pvú1ŠîhÞß®ÿ‰;µCW•ÊjâôëRxÚ~O\5„‡ ƒÂ¥;PA]o½×ô3ÛfÛ«áqE„àü=ð‘]H z·ôÌp"|ˆÝfãIØïít 7oÁ—3Sæ/Æî˜]þzpäÁŒ‡°F¬LrV à…³jï¬ð'’2~¶3Íûš ê9zp(#ªe¶2+-K*Æ/x¢04Z#ÑjCxdRõhÓ+”Ž·ÀJÉ‘â`ùœ¥Á‘¿ê{ ø6b÷nŒ«j¥Y¡Éªs–êX¾ÌPü9M§)›yp]GÁñ¢Ó§ý{‡«Ú8ڎЮœV>Þ ¡ITíú¤ªU,–E'‡ËsÎìâ»Sí¥Íô‹ö]åµZ²ý%»ÍþQX¶oóráLs*×#ਃʳXòŸ°ôÿvó™óJJI˜d•‹'Ú³U±sõ¢-±lÎöÒê~[;¦z(‚J„+IÂÌaWQX„©ë᣺ÚÛœrOµØ_…§WÃós8¦ØŠÊß6•PhúLtLøO€˼Ö endstream endobj 1216 0 obj<>stream H‰dU{TgŸ!™/1hÆAMÜLPJ}ðYyHäa*ˆUتUjq¥ÈCPÔU×=Šˆ¨==]pAKµº¶õ‚Eñ…µ§jW=RQ bjÄbc#(ÂÞ‰7vÐ=ûÏž™ó½î7÷üîïwïš’ºQ4MOž¯›“0gÚ\ãêb£9;SjX½¦È8lŒÔ´0VºYî&L{c$½Þøz&£©¥‡Ê5µ”Ï;½Y—Ëeò~ ½àÖèú #QRn4]ytN~AIaöŸW™µ“3§hC"ÂÃü‡Ç™oƈá1"X›•o0j•˜ÌÆ\“V——™_X_¨7³µÚØÕ«µo<˜´…F“±°X<ýTm¶I«×š õYÆ\}aŽ6¥69;/ß\R`ÔÆ&iõyYAù…Úlñ[S‘Á”•­/Ì6šÿ?TŠJAQ£<©‰ê]Š r£BݨpŠšMQqîT E¥J©tšZBQ"o””’Q훨CÔ ½‰>I¹åºUK|$»%u’ߤ©ÒýÒ©‹ñg60g‰–T“³dH¦”UˆÜÝ¿á6"jDÇÇ(?ƒÇ·žŒ§Þó3ÏåŒ<Ñ•¬~9Øø+Ýe8÷9, 2"*Š;ÖÒëá¦Î;‹8Áƒ;˜ÛD±Î"\·Ðuvh²K„hxÆaür?¿åñç^¼8çƒñ»7øeAf`Fæ úÆÈ€ŒÓ~Em±PÚªµ4ì·K‹¸D’²e[üÍ=Â]¥v™¢Ü*œ²(÷DvÁq;Ûㄹ »?…Q0^Ýw2~QPzÞì|`:Ãþ¦‹ÞŽ~îB‘Õ¥${ŽÔ~ÿ{ský¸þ«ÖfPª`ì *4l{ F™±„ƒ€ý­PlQ=ÝÎî¹vÖÎ>3´sUûvU©Ù—×^mAÈä´»áÉ­|0ù4²6²Ãà^r¼qÓe5$Ý ÈìKÏ'}ÉWÈØg§*/÷«êß‘8SôÈújläžÏ^ÂhuÿW‰úP]AÏ>߸a×®¼?Ä´ ËÄøuI„/ †kó–ÅÉð¾k!×0¦ bd!ÏUà],ioƒ L±ÑB¸HX‚ÐÃÁ%›‹"rl+e¾;vîÐ%õã;i~¡ ã‚gÍ?ùp«ˆCjÀcåS5œ€èxG<@’¼¢Øœû†ˆ·Ð§ºáR·D(ª8˜´e‘j\¹ 10¨2쌎¾Ønº¢î9s¤¡Ž?ùÀå»*˜…ªïæ-ýÈX¤)«`î…ù i;¾<åï<ŠÍœµ©Åô±°ÿtÝLߌÎûoäî±ÑuÂzIˆ\KP!8÷š0ÝÝA.Ám˜æ–V÷v×zÙ0¶ƒmgQž²'tîîD;ÛÇ:„-Âîáü ÆY(ÓøèšYÃöÅæf¤…©²Ëcî.Ô||õÞ_O«!ò.ÐÀ4¯íð¯çYÇ7Õ?~óBÅö‰y˜Æ=¸¥÷G·÷ÌóP‘ÿËÕ›çnöˆ7v¶qó4Ü>{ð¦½ïŸ)+æ-]#2Ô : üdQžéï‚Ã}l?TÃfîfË×Wóe ¾_´8rššuÌÑ7þ¼%I(‡Ø^÷î)‚U(ÂëÇÉÑÈàµÝ3À[Seá̬µýÊ¿¾hHˆB~zñr^,¸òøa@ùø[ ‹895ÉçaWUÒ·KÅb1eŒ6zŸsŒDXFîg42«œÝ40½ä>™¯mÈàSAð£X\n…½XcUÞs@‡#Ù!Æãôâ ž°P ƹ¡ óyœC¦º¦spƒˆöÐGÑ…Wø±exV°ÔÕÜjR=O´¢JƒwˆÃÅr°H¼fy²Ö/jñb?3‰bÏ:›Ði£{%Î? ;9ÿeÈ0EFTb®Á£0Ãf^‚J8TÏŒúéÜd5&¦‚7DÃý¿ƒ÷~3*ðŠ=bé_°ÒAÛ+éô†z[Z  e0Syl$ŽptÆYƒQ‡ºˆÉ¨äqQhE¢,6(°Ñ6‡æ…ƒ~öCàksm48D°å Ĥ¥Ûì‚Rlc@ÕD¡AÙ Á.´Wvµ3@; Dqímp§{…b|, ‡Ñè%fbpx‰à£íâ Ávñ0ZÓë A`ÂZ¬@aÐC4A-Ô>iÞHyÕ V!<íA뱄<¸‘ü¦Ù*_ô(Iò9%f{0™[™z=M“÷íåL±i‹$Mo‚÷€$\ ü’gÛQßÄè?_ñÅuÐ}5×;Ÿ®BÉ^Ͱ‚N¹†Ï’}N9¥ƒr‡S¥6×¢€ârP zð¢«_ûJ„á)WAÄÆSæ%ÄjÐT¹:QÏ0¡“ñ§·;•¸›H U,”—D£/ÒåB³DhÆÑÜEWó™bckR‹0¥Uy²ûýNØÖÅ6°Ç`Ò­Ú˜¶Ê(¼¦ô^p@¤×[Ìî¸7L0ƒ¡ cŒe ¬iá+adEq!:Ì ( sd³ŒAìhqTØH\øH6YÄ1œ(ŒÁ ‚pµ?Òç’SÔ·Ôg4þ¼É{ÏyÞçyÞsi;ÐdsrK§3²JÎŒ†–+˜A +¯ Íß}_ûÃÏw>¶õòÌ©‚†Ë_qÖÖ¦F‹0NÏUÏsåÕ-|JÃ.Œ¼|YM.\äaÓX†<ÿÌ}GŠ{GïMµÞlâAfîxÇlòö¯°kǤ8\ªüL„3ÌT@°Šž¨§‹¯Ø²¿åàÐ$@„'…‚ ­Í*y1ÃÛf5ÅTlêiÉ ÚXféã1Çbl |c† `xRgw3²‡,®°“²ëëîqâd5YN â0ù9bîXŒXE9„Ã3·Ág©Eˆ¥*²óuúùwk}¿€löé&@-0Hù[PûÐ/2ÃÒÅ =«F e¬Q\7ÜäPHD Ã1`àÐíÏÛô õgÊÍ »|ÒÉf`a70f ŠE!¦ðXÄñU yRöOCÔ‚r`Ä8ó«´4ì oå¦i¸°ì/A&HJ Ž&ƒ/F< g¤å^kÛUáÞGWg®y»v‚À.ŽÏ-’‘ü[ïþø·Ý3—¬¥ÌP.ÈVD9X¤LvF=Aß0·÷›Ìµµ&~®«¬ª«âžÍy)QˆN9ðЕ)J™´?¾2OöÆÓ2ôˆÌ"þ÷5Èêò‚VVC1‹ÉFúß8™¾ÕcëëÏÒGÐ# ñ—–^çÕDÚ÷Àïµ/8¸Pº9wjðp-›¡ä†7@baOhO|\~VQ o„+êM½ýd(ÎÞx¸lÍ;Èã÷"íïª!ZKv*'Å@Ø+YYµË*RL”ô;Ù/Nu¸ç̆¾T6I¨Øë–T¢¶:º¯¹ÕÚî«}¹Œ7RÌü¬†”‚~š‚±û“•®¼(çH×J»ô”]Fl1ê÷…EÎŽÁĶ v¸$ÆLHÂ`äx‡jº‹ì%(»P•šzUdo(Ï€jš÷G­2þâÛó !αS{½mu>Î¥cE°ÔS…·Š¦ÿñV" t§ Áý㬆~¤rŸGI¢Ö›„ŸÿU«-"'éØm¥ÿ®?O’5!O·¸®œ £¬}dük¾ÇAÕ×\¨«æŽäéµ'ÝP¦VÝ ÒkìRÀŒŒDBx×íÆ8ScØÁð':½=wµåZcC7?uŠ.?yiP€5Ú3*ô¥Êû"‰>L™T©’¬j$r$íAùóù¬ðàT»|i X+œ_ê³ñ$¾0eIäþÅdÝ4@s©Ì$½*‡»ÐÁB*4+p…~˜Ž~®@)ØL¾: §ˆF9 Âx‘XÚ¾¡oÇ" >stream H‰dTkPgíf˜i_ŒqÚf•–éѵÖ' Šº ÃÓ +   ‚ŠÈc@y("Æ€!«7<"@E„ÚUH´P×H¢1.úÃÅEÖmë²UÛƒ›[[]uªë~Ý÷žïÜs/MYZP4MOõ[»ÚÛß{ÁŠÄ´äXS²Wb|”9>[æiyª¥Þ°Þœ3ŰޔbJÞ£Dÿ‡!E+5…¢¦QOQzŠšMQFŠr£(ŠòÒP>åGSþT Š ¦¨Êe) JEùRqT%õ5­¥çÓ+éºËÂÞ"Ýâ¡ÊQ•¥zmi°Üe™gù“z–:KÝ© Õ”jG­ö $ûIô¿$HTÉŸA+÷vDâj ùy,)Çð‡ ŸCVÞá0çrgØÍ9ÓûôUL[þ1˜óŠ[€Ë× ÚŠ=r!¡»%•¼O¾È=u@7©R -Th´Áù 8ÓëT²ÝÜ•¸¦5ë¢ÃÃwW}ßÚP߬ǣ–ÿÓþL:ýÙS%—ÂgõÙ—½3“w¤[ P§Å}¸Ý…Gë¯ß€X´tµ¶ìMº&,”à€}8SüQp‹‘ÁÐ ™û¸v^«Ó½‚v)‘ D%ÿy)Gp¼Üã Fÿ;ùí,‰¨ })÷.wˆ0q´'*,0¿…Ε‡Uò0æs-£ÃÁ 1²œ¼–¾#º6 ra3å»ÖÄ –3õ¹ ™5ú‡Ñh™»—÷òHNòê\Ôgn¶¼ÍŸí9â/d b£Žîà19mÓöºÏ#X6Ý(;y^Ïfæ^|dÔ5×{N´ÜªÏ9rAPq!PNÝS j ›É^—o@"ã€%ÎØœkÒC*º‹?2læè*WÜ”t—™¤úºÔ. Ï`0‚˜Ç¹­ñ[>ïK°ènl¹º,D¯$‡ }[‚ Å+ ¸M]êÈ Mqî¼ÑµYúñî‘Ë—³2«ã ;¤3ÇccŽEóèé‚VHã˜äVÒ“+ß´ cò¼gÙL ^Rô°&îrÆ(ª"ÇÔFo8±‘GÛhVŠ8yd&ض¶œ¨¹¢¨ÃxN‰NDzÿN7Ÿ;ýý÷Ú·ÜJˆ8©œí-LI±Q¸þ“ÍNþ¸kk*^%°ÃЭüí€ ç¸uÙŠ[~ènoét{‹Qo¦ŸGnÃ<Š+¿–³8˜7ç1P9š¥”u‚!< ‚óÐEq¶ù²„L‘: ÃàöÜkMþÀDÜ0öDÔÂÒ4V~I°H<¥q\«…¸Ø;ºÊCXɰoj+¯Ä5F5}·¨Q²É«”*Ræ«Ôšàr¥ß",]…Îïk壤{%Aœ¤ÈÚmM< –a›«³.dVéã·”mâ7îKŠؾ³1ÏM„\âª|‘̵ëß–^à¿;%`»y98Gè¦!èS ¶Â.ÔÎ0=ÐY#Ú¡+Ø Ø<€ez1Ÿ›ïî`Pÿ¤ëëg0±ÙÃ_i/é—à81Ý/’ÙªÃòMØÍ±`ÚtÌ߸!#Τg‡/¡›Ø?êå.Â=‚³`*“yºuGÓžÿ œÀ>²?Â9­ ô ›},•ŠÔ醞ö-KþÛ%7x¶Cn‡Ž­?•s2焾*;¡~%¿Ò?,2D`;:1T ó ¢¬#èŽ [_w±îüÕÊq%§Ï–œá« ²’šK„€à%Ý€d| i’÷3¶œ-–+`רä[¨Ç)Åê”ü?«·¹ú¤ðŒž-¿Ú”½¿V`«%†-/ûT¦,&´(Œ_2Ç4­ÀÕ™#°eu‡› «3Æ•äÍúØ&Ö/cãêÍ'Š’õìæN{†-Çé“q­å` σêÙ­§æUeJ»)ê7ýÛ/©÷ÇÌ óá=>mº&€—bz̆é"N÷ïa0ƒ¶¯övööÕœ¿¯ì™A£YÝÈ ÄJlºÜi^žCfk)­ÆP&~gt‚?ïrø›JªÑUìG_ÆTv,C¿º²7é£ù‹ªzMW\‹Ñv M!º0A(„±[å_aH1{˜ØÁ°µëÐ×"Õ~wŒT³[ÀWý€ Iü«hR÷j¾‡-?áuæ- ©µ—;Jq~Ø•–k èóÑÀ<æ@™Üq”Á@z玃ÿò2w´.<™@&æMÒÊÃSÿ#À›0 endstream endobj 1218 0 obj<> endobj 1219 0 obj<> endobj 1220 0 obj<> endobj 1221 0 obj<> endobj 1222 0 obj<> endobj 1223 0 obj<> endobj 1224 0 obj<> endobj 1225 0 obj<>/DW 1000/Type/Font>> endobj 1226 0 obj<>stream H‰ÜW TSW¾YD6:u(^@”%„6¤BÀ§`"µVMƒD³‘÷)*-‚VK-âJEmU\êR\¦gtèÑ#J…âV‘±êHj]ª-.(èÜUÐÖ™s朙3gÞ;÷¼÷ÿ÷»ÿÿÝÿÿoþÀ %€Æ'©ð”‰ÙÝwæ$^ Ux„øØ÷‹ÑûE¤Óèó)øyx]ÞQpâ²m9æ£ñ»f€=#ÇT˜}ä/ °ámÖ‰EÙj„^HŽ1 Å`o¾ôüƒ™šƒ'.®@r'¬r“U¯±wD>#«`3kçØXn¡h@‹ÖLêš4€ i¿Òf'lŠÆQ3ðŸ‹dä0zoú ]èIûE—àæÜ溄”M({èÊpbÖ:—ªÉ`ˆÝ°A\ç¾&‡°™\^(—Áf8F3ìZ%–Ž h|6ú–ø€±½·è ¬À@¡ñ}cðe{lÇÛšï— ]W¥NÒ×:ÜÇafÁL/AEý©Å×·=ݸviyÓð&•æ#ÌõWQ*ýD<{“ËÊ`óC4„ݨ2æX ÚžGRPNPVûlñPÌ›ðnÏBˆ[ô"± é›è_i4PEiÍ6£%ª{¾QO@¥ÕJ‰£°ˆ>t¨\SqI"žŠ«ß†©T–®–% a>8v4|Ùæ;Ô5v4-ŽÀFc蚊ÄXqD¤øWñ¥ëÆœÁ¬Ò¥(îÌÒRpFïæ ÃD¥>{¸{·ðxºNiWµåuœˆ Ù{öË;Q¿Ü¨|ê2¨õ¯œú§æ”ï©iXxs^¦9kÎ×¹Þ=Ç2oÏœ^Íî Óyf–ú4åVóÏ ?wÒ‹³0æËªmõio܉÷ß©Y=ßo©¬abÊÊYõ›cÎu»„©]Ëd¡¢~¥$XˆWœçº÷9o¾Qò¤è\]çŽÂnN÷Є܀ºÐ ËˆŠ§ÂEŒ§®Ñ5yn)éþÿœÆóò_»Ó‹âóøð~OÌžp8ãа[ +­ùMI/AYXD—ôvííúK+S*/Ö{N7^äë*¹âæ–gå%ŸÇãªnœåŽ«Ù¹qÎÔ[]Ýz™â ß‚ý´1f{˜Ëå{ÖQÛ]'ÏäD+Š[ÔŠÖÂÄ6~ëÒƒÓŸí/ií¨®/öÇ=LgVífh6ùF´>®³xkææóþĵ¶ÏY÷ç )‰†wÂæõìc2X¿SÐæ™OVÏøÔøÅ™"[¨.À7 NÞàÝH1»ðŸG ›¶£,7Ú9ôÁ‡—®ì«¾¾dˤòø—šÝíKÚ½—7±®¹j¸?È?MùìÔ”ä³c4÷ýšŒŒ ŒhY{õ/ãS~l3§ä_kÀ6¹—´·ÅϯíZ"õ~|Üëöw»odHlÉaÂù˜Ãe3îµ,&ƒÉô(Ì®¶,ØÝºŸ1ØRÓPOädÌD­ý¨¿>C‘˜¸/á!/*Bj5› »Þ¨5A•5›*ÐÚ ˜ž§3Ia'¡TÒ[’c°(q †½(IZŒˆŒŽŽŠ9ïþÇIˆ“±¤¾E ¢|´D Ez«9u`+i¤¬öÂpiºŠöaµÛDPW•D¶HH×µ(UD×rŒø-llŸè$cŽ‘Bñ$(5iIFÂ0˜fÔÛ­$¢ÐÏC£5³´”Ñjùb>æB¯ç ˜*±ó¤goŠ–4 £GY-bÌ­/NJ"Ëlµd‰}1ZÃòòî7/E­ö^³Ïçù¯™G†¯ž"à ½3ÓÁ`€úÊÓ#·fýý¦÷‘gæ"‰‚×e ÉmýAµ9"æÊYÃߢ{ðÁmÕÝÄ7*/x˜}â½û'læª['¿Ø‚­‰Èœ»¿nv`Îꆫ?r®ýÔQýp'ÿÍŸ]h»úÈ:M1Ïê®”-ö>O\Œ‡œŽ„ ¦•qnü@Ám¿¯á²Ø÷t 8'†u+kvÔ¤VŸ+ÏLpÝq‰Öì34$Ê6Æ‹7=i[ñ$£Q¸uÓ‘`EKçÇwYËîyÇÕ=Ú–¾€cÖÝ]"(s¡ÃÇüŠ;þË #7›—ç6ÎÞ»Aíÿ-?gî£E…;²yÛ&?î±ûu—½{¬s¢Û­Lm@Z랸¬+‚O¦ßœ:dW‚:È›œï0çBovÞ°™Àøô«;›Íbrj±ÒrZb°KK°ù%EÕߟ’öVý2æ¤%þg¾cƒþ¿pf=ú*Äüh&lã{(æ…Ñ_~ý_vCXL§€² <6Cä¹ã1;f†G/u°zxmpÉ(EÙȸððq068XK¬zµÁHB=a§ŒÙF½–" ±÷ÀÐÅFô©±Ù„°è !ÔZ² ‘"a‰`$$)»QO™ ydžn¡§ eBÊ@Àþ ¼°KŸ—t»VOÑ µ&Š0 !&Á¾œS!ŒˆŽDiÔ¢)É'"Íšg¡´ˆ•ÆHQ alÉËPIÎVh7æ(ºIŠccc^1¡Äd‚JA¢"õd"K¥2¥Z‚ËyS$J¥D®Æe*˜„«¤©4,Jò3µè¤`µ8Á?,T£Žˆ僔Á0%4(*hÁ«9ýʆU‘¼J¢œ§ÖÈxZ-ìî A†J \Áð´¿r? ¶LŸ2<SÓ³áXHNâ³ôYBX¥¤''iL‰ ÌÌЭ€’$¯„ùbpç&d®Hæ³Ó ²ô9¼.™OÔÃP’($!›OHL\a0e`ŠÞ°TÌI®éºˆTAƒ ¥Lòñt£×’æýôL}ª^–šž"/<$œ$<]ø©Ü(7²Ú’@\òT9ŒàΚÁ©Â0p‚Ú}£|p’\7ÀIä ävöÃÎC9+ØqN?qB¶èÙôÁ›xàLá3Ót2>3ráõꉹý“n m&gᴃﰺG¨Ô¶ïÊ‹¾’ó~¹kËþAfSc~@þŽÚUÍËÙ@;›äsñŸFÌZ·üð#Û+¯løÌÂ8}c|à/[Ñ ‰æK?Ÿ¾²‘–¢y^½Á2Ã?Ú.¼Té7tTÕþ¹ºûN:ÓÒcÛµÊ:v21êJÕ¬–=/.ñq—ÝÙ3ÃÇ·ùÅE.Š"zœÁŽ`º|Åáþø7Å ”539…0 ª+¬—ð’9¥z±ÐPc ö,îùøÁ‰´Â†¶Nžl_ðíâ%¡O}UPauá˜zÉŸŠg‡,¼zCxÕÑïç™mµÌŠíì»N—¾çV}ÙÇæÝeg¦ÇZV”ž¬ì¬ÙR‘×¥»lëÚ°³_€ŠîÜà>°Š"üŽ VØôÿߕء/FÔ\ñïvz[¼î«€Ò®=¶ÚaA'w£CˆŒ0 +ño‡B®ðöžê=cáOB´*å¥ÌÚXÖ;3²£íæ-÷ÅêÐèt°$â™ùäm/¸ ‡ôßI¾½åZÑþÏvköù¥¿Æ ê¢,]{~fÖ¼<ÒÔE–ï6;òèáǾºF»Ç®:ç&ë{ó›ÛâЧ„ª´nÏ«vù5Õ¸IwØ=a„ sãðFMúú„(ûþ7J¢x)bЛ>pÕòÈïÿ Œ?A NŒoäþŸ:Þ8¢$âXRHBë×H¿5ð$Á³ U£jÒhâAÓài€Ö|t‡iGS‘A¤OC«áW…žâzT"Rf#Œë€»Þ¾0–o,ʨÆëÅ÷ÏQ1È~HI iGç‚Üù‡ ¤‘iº o ú ÝÀ¿ž|´ÆŽ£aH®FQ/v”ã¿ànT,¬r2€»ôýêB?`[ì‹Ëð à±!…¢.¦ÕŒÀÓ è¥Á™X xȼM(â Rõ¤”Ô‘ÒBÅѾL;kÃúp™ #‚(4,¤…" ¬¬Cˤšp£pÞŠë@‡VÜ xD<É\ðº€-”––Òw™ f æ>2cA6ƒXäˆx䊼À*5¬:'¡Ð*ù€ÕàË"T‹êÐN´FÍ褰&ºŠn ^ðŽ@°ËÏÄ1€8€àbðGùTàí¸7ƒ~gq'V› Ö›´\CjÈr–œ#ß“ÛäyH!ÊœZBé¨lj7µ:O§é:z'}¾Æ`¦Aô” kËÆ³å€õœ9—Ás›¸¸cvy€]óážJDy`ÉjTŠÊÄ]; 8‚ŽÚÑ=Á@ß+KÌÄ*€£qx!Öâ¥8¯°è¼×ã#`K'à2¾Šoâ¿á½„%ödò€}áDCbHÙJ¶‘íd?Dd#9A.“`ãmòl´ l(;j¥¦QÔ"j%µ†:HµPW©nØ7)=‡ö¥£éx°½¾Mß…$ Ÿ2ÞÌ»€4&‹)`Ê™ÑÝL7+½bÃŽdg±kÙZ¶‘íb_rvœ=ç q NÃer¹Ü>î6wÇ쀹Ò<ÝÜ ñ@û}>,{BtŸ"ñì䈯B4,§¬€‹rH¹LótÒ(hÇi°;ìÔuÔK™£÷è6C-B™ŒŽ²àî£zœMâýT:€vs¹ø¥¥º©ÝŒ+;ËäORCíãò8-w4}DmfÒ8V2帞̅Œ6àô?F‹aå2 µ¡u¨ç"3Tmv[B®µ’ñ¸œÙEý†®£ÔLž;8†i§>DÞÈI‘;r†Xg­pàúùÌðñš6U!Ÿ"óô˜qÝaVýMi™Uõ°¬Ü¾=êd×Hº[Cƒa'F­øgd6Á°>4*4µaÌǦÉ'œRüÌ}LÖ*•^eT},ŠÍZ£j48å<·&è™+HA¿¬‡§öC‰Ä|k‹«Hœší÷ÈýK#îÖ¢½Ž¯tqE­aT×Ün¤cº¥§3 £^XjHéÇ-¢É # +𩹋]R]¤&º†#"`EÓX¿¨jßÂ6¢¢Ù®ÈêMÂ Üøx©'fx¬Íö›ÄLv»,Þrˆ/ؚ˥mØÀîÑ‹­ÅȶéåÍîÖZH·ËZKFaTŠliÃ’;l—–<GA›Þæe™âŽsäisE4S”E.,DV“E¦"‹Õ£ nç7ð:$Z­I-‹µö†•þÑ-šÐp—pŠÇñøøå¢¥¢Y·ÄÔ£Ž–¨:ÁÖð(ªj@‘jT•ÊÓqE¶+j1RÇýÑ…)•ÊŽ:4ÏLdTÀ¢j›øjh+½a³Ãá–Éaޏ‰Cì˜ ªš!*ÿÖvMÙíÇGÂ;‡HŒm¬ü·¥Á Š-t¼òm*˜_¥‹ÒY*ˆ÷R¡²Ö`§ê0˜¡‚t‘ ¶w¨PñS˵dÁeÄð#>GAé$Úü>l'ë0»~`™¥‚5Œú)Žø Ç’ä°|ë;ô­¤?#o;|ï¡óˆ;@|_‡ï{ÐÕtÜÚOÇúªø§Á%€1[¿ ÿjcøX*=h ãÑž4ÅüăàÇ(o‚Žñ¹J‡PÿAè^šµ¹èˆkÇXè ë\FמDΓËÖâ ߀ó>g½Ÿåœà|Vž…å]¿=G°±Ë°kïØ¶Ž_æ;üßsÿ7¤ø2ðm/ñû·ãnج¸?­|Ïõ}_Úîïí«FÙºy)’ÊYŒ²”Eÿwé"ƒí±n÷@oÃü>%Ì«)!õQÒSMæP_'y¶Ë%Ó}ç¶wBžÖE8Ëå\Îp9Íå./r9Åå—~.Û¹ôqéåâá²ËV.Ý\¬\,\Ì\Ï7 €÷ÁÁUð+pü¼ à,8 ^'À àg`< `Þæë¼é—W¹¼Ìå%.?çò—.réâ"r©àbâBôàwàø x\o‚7À,x œ?S ¹½sUåªÊûó%ဧ_ÌŸóÏŠùcb>+æ3b~¯˜O‰ùÝb~—˜ˆù°øUé^I–¾"­•ÖHMRƒ´Jª—ìÒ ©Z²I’d•,’IÂ=ª­4‡L¡¡^!¤]HP(.kÿRJ‚mç.­Bé´ú…†{›´.—f:¢y”„rQ~xÈÁ>:æHʇŽ9 D¨ÁõŸGÓ’Rh`êmZ'ÜO"®›fÅu¿™wÞ¼îÍ3o^÷6 ç¨3;½‡îÐð§‡p×è’LšMw \”¨7âÝÍuÖTeÃ|¢g¤·Á>¾MŸÜΦ§oYH8MUx÷Vãc®°»ÇÝÃBxc±Ð ög„šžzÀéxK8m„ìp×a)ñ%ÞmæiüÖ›1IÅS+^,W„‰,eª(›ç„¿µÍß°ß ‡þŠkGû¦:g]³³Î9m¦[Ó&š§ŠKÿêš¶\bïÒãôIEÙ*ãÛ½ùÍZÁRS[_A%Sü¼H±Þ"Ì™†¨¦íFc7±K[G»Ðh%³h[Ö¯oiYß¦ÎÆÆzªø@¹zëïjp·³¦uíÖOf׎ï¬;cª·Ê§nÅçÿÔéY×¶¯gæ ¹ËáÓü$´|égüÿç|²£šž_üþ'2l35¡Äm ì#†m…}Ò°Eê¦2ÉR‰Ò‡ô7ÃH.¶‰V ~3µ eöP»©Í°­°÷¶H9Ó¼Ùñ©\zdtR>#wtwwºqÙ,ïH'rÙ‰ìÞIÙ›Ío”{2yeMȃ©‰Tî@*¹‘Whg:äá©ñ”<”ÍìŸLgÇ&Zåþ±Äk=üH0Ðçs=šI‚ ÷`jd&–û¼þáÑ” g2{pBÎdG²rzÿìNæbÉÔã±Ü>9»wÙ$²¹ÛFòRË=E9JÓÒ$Étt`‰»©“܆µ¾ÈI 3K`¯žËêçÐÂFØ=”Á)Óàb[z)M!ë®I=óÓÚ{è€o#G–LCh7CûÑFÖZh…·Vâsõõ0=BA PùÈE"{ ùIC'ô#è'C1Ôú¬l÷—œ?Œ™±Õà™I¬ÄA}žX#@†Ÿ•c`ù1ä¤èq½î>øØ.Ý}ß²z­…UÞȟ„jj£c´O‘V7Ü[ö &èqÓ4]»òÚ»{j·Þ”’þH¾Txvžiñ=ñ Ñü€íšØ¡?ãÆþo¹$9Û endstream endobj 1227 0 obj<> endobj 1228 0 obj<> endobj 1229 0 obj<> endobj 1230 0 obj<> endobj 1231 0 obj<> endobj 1232 0 obj<> endobj 1233 0 obj<> endobj 1234 0 obj<> endobj 1235 0 obj<>stream H‰D}LwÇï m±’j{Äž¹»e Ã…1§t‹¬ –®X6l4a‰x-Ç,BK®Ûˆ £FëP$¾˜ã-›32˜ ƘÀÂ2› æ6Ñs–u«Cìå¹ñÛ²ÿØž?¾|ó|Ÿçù<8-ÁpWåšòLÛŒÏæð¥¼Ëfå–LZ¤p1>Z\‡´èÀbåâf)T¬€ãªîE““ฯ%ËQîloìs±ÏX“ØÔô-›’—tóM_ÒôVWä°ðìNÓÅ—9YƒÝêÊçâ‹6°¬®´”}2ÁÉ ¼“*"îg°6'˱.+âË8a?ë(fsmv‡ËSγ:=ËÙ‹6:ÖÉ:Xœ¶"'Øxçÿy,R8¶ [=ebfláÅ¢0)v ÁI–KÜ’Y%«tOÂ;cP1©îéfîƒáT('L<Œ“õ 5õ1ã×j¤ÐæšSQü¡ÙÑ“LЬNÛ¢°Äx:>©¤@¢@.з2§åă.ß`ïš?´h ÚÁ!"ž‘]¯=7*ê·w·si†r=C<¬yé8 ¯ö|Õ×6^xÇ^cAA£„N÷”xJ}=‚Bº01.ΉgÉɬGµÊÌDT¿—ôW3°Î&%fAáèt¾¬I@ OöƧº ŽN‘åøòüfÚÞ>h…Õ¬€çúa+Ȳ‡7´2Ä8âú¥Ü…½Í~ à —üw܇¢ÎÒÊÊ1ý7bÒ˜úÃÐ+wáxøž1²»®Áÿ˜šê.3ïŽVx”è‘=h­§*±P“zÓôóüÐÀµš(µžñY'¨æúºÚFæK¹÷Hµ÷(å©>ßÊÀgrРd‡È-Hu‚†;ÈH=Ù/îJ7Ø;>ýº¾·Ž¼¡õ\ÃÅ%È+bb@Ý>­Ÿ÷ô¶`ä;Eù^Ð(/!y7’g yèy!Ç}å0§y-_ÈE+ßí9I¿ Ë=ÓˆbÁJbv°oùn„_ŽP§µJõ—Ê/ôjFÆÏ_†(Ÿ¹¤&Â0ùEËAõÍ xƒ„[<'6§¡9Ñ—Q’„¢ò ¯ÌÐð8í¯X9RýT<~¯¯Ý>í•î ¹ÒÝô§¥ •4ÂúF´]„•µ/«—Ó-Yžøb—ÁåâÐ*‘$ÿ`ɺÄÕ endstream endobj 1236 0 obj<>stream H‰bd`ab`dd”ôñwsuqÖöHÍ)K-ÉLNÔõOÊÉ,,MIšþfü!ÎRÏÃôC†Gì·ÕïÒ_5¿ÌYå0þï–[À ¨þÌîæaÿ>—ÿû"Áµ?,„˜§¯pÎ/¨,ÊLÏ(QÐHÖT0´´0Õ‘æ`ÒDZ(8¦ä'¥*W—¤æ+xæ%çä%–¤¦è)(8æä(€M(V(J-N-*ŠÂ]©Y¬¨PR”˜’š›X”­Ÿ¦à“™—_RYªà讘—¢Ÿ_¤ Ô[\šTœ™’™X”™Z¬‡éK `dpb`fddaŸð}ý8PsÅýâÍ+BëŸyÝùÞúXxÍwå ¢›'Î<ñ^úÞæÜð¢æ²Nùߪ•¬Â[~«UÖ©ÆKž÷{ýñÀî kå„s’û¦'ß”ž?cbÿ,ùÓì ÍÒ• SÊ?Èþ]ê·ÎôÄߢQ¿Ûå¾_ûí-*¼ÅÕ:ÌÒ3o푳fl›(÷qæÂÉ3§qðUÌû™4ïwÖ¬ïZ³Ø¾/šö] ÿ/ç v¹Εâÿy8¯s=æ0¤Ï²» endstream endobj 1237 0 obj<> endobj 1238 0 obj<> endobj 1239 0 obj<> endobj 1240 0 obj<> endobj 1241 0 obj<> endobj 1242 0 obj<> endobj 1243 0 obj<> endobj 1244 0 obj<> endobj 1245 0 obj<> endobj 1246 0 obj<> endobj 1247 0 obj<> endobj 1248 0 obj<> endobj 1249 0 obj<> endobj 1250 0 obj<> endobj 1251 0 obj<> endobj 1252 0 obj<> endobj 1253 0 obj<> endobj 1254 0 obj<> endobj 1255 0 obj<> endobj 1256 0 obj<> endobj 1257 0 obj<> endobj 1258 0 obj<> endobj 1259 0 obj<> endobj 1260 0 obj<> endobj 1261 0 obj<> endobj 1262 0 obj<> endobj 1263 0 obj<> endobj 1264 0 obj<> endobj 1265 0 obj<> endobj 1266 0 obj<> endobj 1267 0 obj<> endobj 1268 0 obj<> endobj 1269 0 obj<> endobj 1270 0 obj<> endobj 1271 0 obj<> endobj 1272 0 obj<> endobj 1273 0 obj<> endobj 1274 0 obj<> endobj 1275 0 obj<> endobj 1276 0 obj<> endobj 1277 0 obj<> endobj 1278 0 obj<> endobj 1279 0 obj<> endobj 1280 0 obj<> endobj 1281 0 obj<> endobj 1282 0 obj<> endobj 1283 0 obj<> endobj 1284 0 obj<> endobj 1285 0 obj<> endobj 1286 0 obj<> endobj 1287 0 obj<> endobj 1288 0 obj<> endobj 1289 0 obj<> endobj 1290 0 obj<> endobj 1291 0 obj<> endobj 1292 0 obj<> endobj 1293 0 obj<> endobj 1294 0 obj<> endobj 1295 0 obj<> endobj 1296 0 obj<> endobj 1297 0 obj<> endobj 1298 0 obj<> endobj 1299 0 obj<> endobj 1300 0 obj<> endobj 1301 0 obj<> endobj 1302 0 obj<> endobj 1303 0 obj<> endobj 1304 0 obj<> endobj 1305 0 obj<> endobj 1306 0 obj<> endobj 1307 0 obj<> endobj 1308 0 obj<> endobj 1309 0 obj<> endobj 1310 0 obj<> endobj 1311 0 obj<> endobj 1312 0 obj<> endobj 1313 0 obj<> endobj 1314 0 obj<> endobj 1315 0 obj<> endobj 1316 0 obj<> endobj 1317 0 obj<> endobj 1318 0 obj<> endobj 1319 0 obj<> endobj 1320 0 obj<> endobj 1321 0 obj<> endobj 1322 0 obj<> endobj 1323 0 obj<> endobj 1324 0 obj<> endobj 1325 0 obj<> endobj 1326 0 obj<> endobj 1327 0 obj<> endobj 1328 0 obj<> endobj 1329 0 obj<> endobj 1330 0 obj<> endobj 1331 0 obj<> endobj 1332 0 obj<> endobj 1333 0 obj<> endobj 1334 0 obj<> endobj 1335 0 obj<> endobj 1336 0 obj<> endobj 1337 0 obj<> endobj 1338 0 obj<> endobj 1339 0 obj<> endobj 1340 0 obj<> endobj 1341 0 obj<> endobj 1342 0 obj<> endobj 1343 0 obj<> endobj 1344 0 obj<> endobj 1345 0 obj<> endobj 1346 0 obj<> endobj 1347 0 obj<> endobj 1348 0 obj<> endobj 1349 0 obj<> endobj 1350 0 obj<> endobj 1351 0 obj<> endobj 1352 0 obj<> endobj 1353 0 obj<> endobj 1354 0 obj<> endobj 1355 0 obj<> endobj 1356 0 obj<> endobj 1357 0 obj<> endobj 1358 0 obj<> endobj 1359 0 obj<> endobj 1360 0 obj<> endobj 1361 0 obj<> endobj 1362 0 obj<> endobj 1363 0 obj<> endobj 1364 0 obj<> endobj 1365 0 obj<> endobj 1366 0 obj<> endobj 1367 0 obj<> endobj 1368 0 obj<> endobj 1369 0 obj<> endobj 1370 0 obj<> endobj 1371 0 obj<> endobj 1372 0 obj<> endobj 1373 0 obj<> endobj 1374 0 obj<> endobj 1375 0 obj<> endobj 1376 0 obj<> endobj 1377 0 obj<> endobj 1378 0 obj<> endobj 1379 0 obj<> endobj 1380 0 obj<> endobj 1381 0 obj<> endobj 1382 0 obj<> endobj 1383 0 obj<> endobj 1384 0 obj<> endobj 1385 0 obj<> endobj 1386 0 obj<> endobj 1387 0 obj<> endobj 1388 0 obj<> endobj 1389 0 obj<> endobj 1390 0 obj<> endobj 1391 0 obj<> endobj 1392 0 obj<> endobj 1393 0 obj<> endobj 1394 0 obj<> endobj 1395 0 obj<> endobj 1396 0 obj<> endobj 1397 0 obj<> endobj 1398 0 obj<> endobj 1399 0 obj<> endobj 1400 0 obj<> endobj 1401 0 obj<> endobj 1402 0 obj<> endobj 1403 0 obj<> endobj 1404 0 obj<> endobj 1405 0 obj<> endobj 1406 0 obj<> endobj 1407 0 obj<> endobj 1408 0 obj<> endobj 1409 0 obj<> endobj 1410 0 obj<> endobj 1411 0 obj<> endobj 1412 0 obj<> endobj 1413 0 obj<> endobj 1414 0 obj<> endobj 1415 0 obj<> endobj 1416 0 obj<> endobj 1417 0 obj<> endobj 1418 0 obj<> endobj 1419 0 obj<> endobj 1420 0 obj<> endobj 1421 0 obj<> endobj 1422 0 obj<> endobj 1423 0 obj<> endobj 1424 0 obj<> endobj 1425 0 obj<> endobj 1426 0 obj<> endobj 1427 0 obj<> endobj 1428 0 obj<> endobj 1429 0 obj<> endobj 1430 0 obj<> endobj 1431 0 obj<> endobj 1432 0 obj<> endobj 1433 0 obj<> endobj 1434 0 obj<> endobj 1435 0 obj<> endobj 1436 0 obj<> endobj 1437 0 obj<> endobj 1438 0 obj<> endobj 1439 0 obj<> endobj 1440 0 obj<> endobj 1441 0 obj<> endobj 1442 0 obj<> endobj 1443 0 obj<> endobj 1444 0 obj<> endobj 1445 0 obj<> endobj 1446 0 obj<> endobj 1447 0 obj<> endobj 1448 0 obj<> endobj 1449 0 obj<> endobj 1450 0 obj<> endobj 1451 0 obj<> endobj 1452 0 obj<> endobj 1453 0 obj<> endobj 1454 0 obj<> endobj 1455 0 obj<> endobj 1456 0 obj<> endobj 1457 0 obj<> endobj 1458 0 obj<> endobj 1459 0 obj<> endobj 1460 0 obj<> endobj 1461 0 obj<> endobj 1462 0 obj<> endobj 1463 0 obj<> endobj 1464 0 obj<> endobj 1465 0 obj<> endobj 1466 0 obj<> endobj 1467 0 obj<> endobj 1468 0 obj<> endobj 1469 0 obj<> endobj 1470 0 obj<> endobj 1471 0 obj<> endobj 1472 0 obj<> endobj 1473 0 obj<> endobj 1474 0 obj<> endobj 1475 0 obj<> endobj 1476 0 obj<> endobj 1477 0 obj<> endobj 1478 0 obj<> endobj 1479 0 obj<> endobj 1480 0 obj<> endobj 1481 0 obj<> endobj 1482 0 obj<> endobj 1483 0 obj<> endobj 1484 0 obj<> endobj 1485 0 obj<> endobj 1486 0 obj<> endobj 1487 0 obj<> endobj 1488 0 obj<> endobj 1489 0 obj<> endobj 1490 0 obj<> endobj 1491 0 obj<> endobj 1492 0 obj<> endobj 1493 0 obj<> endobj 1494 0 obj<> endobj 1495 0 obj<> endobj 1496 0 obj<> endobj 1497 0 obj<> endobj 1498 0 obj<> endobj 1499 0 obj<> endobj 1500 0 obj<> endobj 1501 0 obj<> endobj 1502 0 obj<> endobj 1503 0 obj<> endobj 1504 0 obj<> endobj 1505 0 obj<> endobj 1506 0 obj<> endobj 1507 0 obj<> endobj 1508 0 obj<> endobj 1509 0 obj<> endobj 1510 0 obj<> endobj 1511 0 obj<> endobj 1512 0 obj<> endobj 1513 0 obj<> endobj 1514 0 obj<> endobj 1515 0 obj<> endobj 1516 0 obj<> endobj 1517 0 obj<> endobj 1518 0 obj<> endobj 1519 0 obj<> endobj 1520 0 obj<> endobj 1521 0 obj<> endobj 1522 0 obj<> endobj 1523 0 obj<> endobj 1524 0 obj<> endobj 1525 0 obj<> endobj 1526 0 obj<> endobj 1527 0 obj<> endobj 1528 0 obj<> endobj 1529 0 obj<> endobj 1530 0 obj<> endobj 1531 0 obj<> endobj 1532 0 obj<> endobj 1533 0 obj<> endobj 1534 0 obj<> endobj 1535 0 obj<> endobj 1536 0 obj<> endobj 1537 0 obj<> endobj 1538 0 obj<> endobj 1539 0 obj<> endobj 1540 0 obj<> endobj 1541 0 obj<> endobj 1542 0 obj<> endobj 1543 0 obj<> endobj 1544 0 obj<> endobj 1545 0 obj<> endobj 1546 0 obj<> endobj 1547 0 obj<> endobj 1548 0 obj<> endobj 1549 0 obj<> endobj 1550 0 obj<> endobj 1551 0 obj<> endobj 1552 0 obj<> endobj 1553 0 obj<> endobj 1554 0 obj<> endobj 1555 0 obj<> endobj 1556 0 obj<> endobj 1557 0 obj<> endobj 1558 0 obj<> endobj 1559 0 obj<> endobj 1560 0 obj<> endobj 1561 0 obj<> endobj 1562 0 obj<> endobj 1563 0 obj<> endobj 1564 0 obj<> endobj 1565 0 obj<> endobj 1566 0 obj<> endobj 1567 0 obj<> endobj 1568 0 obj<> endobj 1569 0 obj<> endobj 1570 0 obj<>stream Acrobat Distiller 7.0.5 (Windows) UG175,FIFO Generator Core,IP,Core,FPGA,Virtex FrameMaker 7.2 2010-03-01T21:53:16-08:00 2010-02-23T23:06:19Z 2010-03-01T21:53:16-08:00 application/pdf Xilinx UG175 LogiCORE IP FIFO Generator v6.1, User Guide Xilinx, Inc. Fully verified first-in first-out (FIFO) memory queue for applications requiring in-order storage and retrieval. uuid:d0f8280e-2ce5-4c22-92d0-27e6bf99bf51 uuid:1c19589b-ff35-4ff5-8051-5f088c33982e endstream endobj 1571 0 obj<> endobj xref 0 1572 0000000000 65535 f 0000043543 00000 n 0000043691 00000 n 0000043818 00000 n 0000043970 00000 n 0000044146 00000 n 0000049902 00000 n 0000062320 00000 n 0000062354 00000 n 0000062778 00000 n 0000062878 00000 n 0000062985 00000 n 0000063093 00000 n 0000063201 00000 n 0000063302 00000 n 0000063403 00000 n 0000063504 00000 n 0000063610 00000 n 0000063717 00000 n 0000063824 00000 n 0000063931 00000 n 0000064031 00000 n 0000064131 00000 n 0000064232 00000 n 0000064340 00000 n 0000064441 00000 n 0000064542 00000 n 0000064643 00000 n 0000064744 00000 n 0000064845 00000 n 0000064946 00000 n 0000065047 00000 n 0000065148 00000 n 0000065256 00000 n 0000065357 00000 n 0000065458 00000 n 0000065559 00000 n 0000065660 00000 n 0000065768 00000 n 0000065873 00000 n 0000065980 00000 n 0000066081 00000 n 0000066182 00000 n 0000066282 00000 n 0000066389 00000 n 0000066496 00000 n 0000066597 00000 n 0000066697 00000 n 0000066803 00000 n 0000066909 00000 n 0000067038 00000 n 0000067201 00000 n 0000070051 00000 n 0000070553 00000 n 0000070661 00000 n 0000070769 00000 n 0000070877 00000 n 0000070985 00000 n 0000071092 00000 n 0000071199 00000 n 0000071300 00000 n 0000071407 00000 n 0000071515 00000 n 0000071616 00000 n 0000071724 00000 n 0000071825 00000 n 0000071933 00000 n 0000072041 00000 n 0000072149 00000 n 0000072257 00000 n 0000072358 00000 n 0000072466 00000 n 0000072574 00000 n 0000072682 00000 n 0000072783 00000 n 0000072891 00000 n 0000072999 00000 n 0000073100 00000 n 0000073208 00000 n 0000073316 00000 n 0000073417 00000 n 0000073525 00000 n 0000073633 00000 n 0000073741 00000 n 0000073842 00000 n 0000073950 00000 n 0000074058 00000 n 0000074159 00000 n 0000074267 00000 n 0000074375 00000 n 0000074483 00000 n 0000074584 00000 n 0000074691 00000 n 0000074798 00000 n 0000074906 00000 n 0000075014 00000 n 0000075122 00000 n 0000075222 00000 n 0000075329 00000 n 0000075430 00000 n 0000075531 00000 n 0000075640 00000 n 0000075747 00000 n 0000075853 00000 n 0000075983 00000 n 0000076175 00000 n 0000081049 00000 n 0000093465 00000 n 0000093503 00000 n 0000094061 00000 n 0000094191 00000 n 0000094293 00000 n 0000094395 00000 n 0000094497 00000 n 0000094599 00000 n 0000094701 00000 n 0000094810 00000 n 0000094912 00000 n 0000095020 00000 n 0000095128 00000 n 0000095230 00000 n 0000095338 00000 n 0000095447 00000 n 0000095549 00000 n 0000095658 00000 n 0000095767 00000 n 0000095875 00000 n 0000095984 00000 n 0000096090 00000 n 0000096198 00000 n 0000096300 00000 n 0000096409 00000 n 0000096518 00000 n 0000096620 00000 n 0000096729 00000 n 0000096837 00000 n 0000096945 00000 n 0000097054 00000 n 0000097162 00000 n 0000097264 00000 n 0000097372 00000 n 0000097474 00000 n 0000097583 00000 n 0000097692 00000 n 0000097801 00000 n 0000097903 00000 n 0000098005 00000 n 0000098107 00000 n 0000098216 00000 n 0000098325 00000 n 0000098433 00000 n 0000098535 00000 n 0000098637 00000 n 0000098739 00000 n 0000098848 00000 n 0000098950 00000 n 0000099052 00000 n 0000099154 00000 n 0000099256 00000 n 0000099358 00000 n 0000099460 00000 n 0000099560 00000 n 0000099752 00000 n 0000104936 00000 n 0000117352 00000 n 0000117390 00000 n 0000117684 00000 n 0000117813 00000 n 0000117915 00000 n 0000118017 00000 n 0000118119 00000 n 0000118222 00000 n 0000118331 00000 n 0000118440 00000 n 0000118550 00000 n 0000118660 00000 n 0000118767 00000 n 0000118877 00000 n 0000118987 00000 n 0000119090 00000 n 0000119198 00000 n 0000119301 00000 n 0000119411 00000 n 0000119513 00000 n 0000119623 00000 n 0000119726 00000 n 0000119918 00000 n 0000122761 00000 n 0000135177 00000 n 0000135215 00000 n 0000135613 00000 n 0000135717 00000 n 0000135819 00000 n 0000135921 00000 n 0000136023 00000 n 0000136132 00000 n 0000136234 00000 n 0000136364 00000 n 0000136473 00000 n 0000136582 00000 n 0000136691 00000 n 0000136800 00000 n 0000136909 00000 n 0000137018 00000 n 0000137120 00000 n 0000137228 00000 n 0000137336 00000 n 0000137444 00000 n 0000137552 00000 n 0000137660 00000 n 0000137768 00000 n 0000137876 00000 n 0000137984 00000 n 0000138092 00000 n 0000138200 00000 n 0000138308 00000 n 0000138416 00000 n 0000138524 00000 n 0000138632 00000 n 0000138740 00000 n 0000138848 00000 n 0000138955 00000 n 0000139061 00000 n 0000139237 00000 n 0000142663 00000 n 0000143013 00000 n 0000143143 00000 n 0000143252 00000 n 0000143361 00000 n 0000143470 00000 n 0000143579 00000 n 0000143688 00000 n 0000143797 00000 n 0000143906 00000 n 0000144015 00000 n 0000144124 00000 n 0000144233 00000 n 0000144342 00000 n 0000144451 00000 n 0000144560 00000 n 0000144669 00000 n 0000144778 00000 n 0000144880 00000 n 0000144983 00000 n 0000145086 00000 n 0000145188 00000 n 0000145291 00000 n 0000145400 00000 n 0000145509 00000 n 0000145618 00000 n 0000145727 00000 n 0000145836 00000 n 0000146040 00000 n 0000150462 00000 n 0000162878 00000 n 0000162916 00000 n 0000163322 00000 n 0000163425 00000 n 0000163527 00000 n 0000163629 00000 n 0000163731 00000 n 0000163840 00000 n 0000163949 00000 n 0000164058 00000 n 0000164167 00000 n 0000164276 00000 n 0000164385 00000 n 0000164494 00000 n 0000164595 00000 n 0000164697 00000 n 0000164805 00000 n 0000164935 00000 n 0000165043 00000 n 0000165151 00000 n 0000165259 00000 n 0000165367 00000 n 0000165475 00000 n 0000165583 00000 n 0000165691 00000 n 0000165799 00000 n 0000165907 00000 n 0000166015 00000 n 0000166123 00000 n 0000166231 00000 n 0000166339 00000 n 0000166447 00000 n 0000166555 00000 n 0000166663 00000 n 0000166771 00000 n 0000166877 00000 n 0000167053 00000 n 0000169787 00000 n 0000170161 00000 n 0000170291 00000 n 0000170400 00000 n 0000170509 00000 n 0000170618 00000 n 0000170727 00000 n 0000170836 00000 n 0000170945 00000 n 0000171054 00000 n 0000171163 00000 n 0000171272 00000 n 0000171381 00000 n 0000171490 00000 n 0000171599 00000 n 0000171708 00000 n 0000171817 00000 n 0000171926 00000 n 0000172035 00000 n 0000172144 00000 n 0000172253 00000 n 0000172362 00000 n 0000172471 00000 n 0000172580 00000 n 0000172689 00000 n 0000172791 00000 n 0000172894 00000 n 0000172997 00000 n 0000173099 00000 n 0000173209 00000 n 0000173312 00000 n 0000173516 00000 n 0000176204 00000 n 0000188620 00000 n 0000188658 00000 n 0000188896 00000 n 0000189026 00000 n 0000189187 00000 n 0000189336 00000 n 0000189485 00000 n 0000189622 00000 n 0000189781 00000 n 0000189929 00000 n 0000190080 00000 n 0000190230 00000 n 0000190381 00000 n 0000190532 00000 n 0000190674 00000 n 0000190891 00000 n 0000195305 00000 n 0000207705 00000 n 0000207743 00000 n 0000207893 00000 n 0000208023 00000 n 0000208290 00000 n 0000212780 00000 n 0000225196 00000 n 0000225234 00000 n 0000225384 00000 n 0000225514 00000 n 0000225721 00000 n 0000228789 00000 n 0000241205 00000 n 0000241243 00000 n 0000241393 00000 n 0000241522 00000 n 0000241703 00000 n 0000243460 00000 n 0000255876 00000 n 0000255914 00000 n 0000256096 00000 n 0000256265 00000 n 0000256395 00000 n 0000256541 00000 n 0000256688 00000 n 0000256840 00000 n 0000257070 00000 n 0000261523 00000 n 0000273923 00000 n 0000273961 00000 n 0000274135 00000 n 0000274265 00000 n 0000274430 00000 n 0000274564 00000 n 0000274701 00000 n 0000274919 00000 n 0000278266 00000 n 0000290682 00000 n 0000290720 00000 n 0000290878 00000 n 0000291008 00000 n 0000291159 00000 n 0000291364 00000 n 0000295984 00000 n 0000308384 00000 n 0000308422 00000 n 0000308660 00000 n 0000308790 00000 n 0000308950 00000 n 0000309057 00000 n 0000309225 00000 n 0000309393 00000 n 0000309550 00000 n 0000309659 00000 n 0000309843 00000 n 0000310023 00000 n 0000310205 00000 n 0000310373 00000 n 0000310541 00000 n 0000310760 00000 n 0000316647 00000 n 0000329063 00000 n 0000329101 00000 n 0000329283 00000 n 0000329413 00000 n 0000329518 00000 n 0000329626 00000 n 0000329732 00000 n 0000329841 00000 n 0000330047 00000 n 0000335379 00000 n 0000347795 00000 n 0000347833 00000 n 0000347983 00000 n 0000348112 00000 n 0000348305 00000 n 0000353227 00000 n 0000365643 00000 n 0000365681 00000 n 0000365927 00000 n 0000366056 00000 n 0000366162 00000 n 0000366267 00000 n 0000366376 00000 n 0000366485 00000 n 0000366593 00000 n 0000366700 00000 n 0000366808 00000 n 0000366917 00000 n 0000367026 00000 n 0000367134 00000 n 0000367238 00000 n 0000367347 00000 n 0000367553 00000 n 0000373445 00000 n 0000385861 00000 n 0000385899 00000 n 0000386065 00000 n 0000386194 00000 n 0000386301 00000 n 0000386407 00000 n 0000386651 00000 n 0000392547 00000 n 0000404963 00000 n 0000405001 00000 n 0000427476 00000 n 0000427514 00000 n 0000427672 00000 n 0000427801 00000 n 0000427907 00000 n 0000428112 00000 n 0000432581 00000 n 0000444997 00000 n 0000445035 00000 n 0000445185 00000 n 0000445314 00000 n 0000445519 00000 n 0000449785 00000 n 0000462201 00000 n 0000462239 00000 n 0000462397 00000 n 0000462526 00000 n 0000462632 00000 n 0000462861 00000 n 0000467633 00000 n 0000480049 00000 n 0000480087 00000 n 0000480253 00000 n 0000480382 00000 n 0000480535 00000 n 0000480686 00000 n 0000480891 00000 n 0000485864 00000 n 0000498280 00000 n 0000498318 00000 n 0000498476 00000 n 0000498605 00000 n 0000498710 00000 n 0000498903 00000 n 0000503560 00000 n 0000515976 00000 n 0000516014 00000 n 0000516164 00000 n 0000516293 00000 n 0000516498 00000 n 0000521008 00000 n 0000533424 00000 n 0000533462 00000 n 0000533636 00000 n 0000533765 00000 n 0000533918 00000 n 0000534071 00000 n 0000534223 00000 n 0000534440 00000 n 0000538901 00000 n 0000551317 00000 n 0000551355 00000 n 0000551505 00000 n 0000551634 00000 n 0000551815 00000 n 0000553560 00000 n 0000565976 00000 n 0000566014 00000 n 0000566212 00000 n 0000566342 00000 n 0000566447 00000 n 0000566553 00000 n 0000566659 00000 n 0000566763 00000 n 0000566869 00000 n 0000566975 00000 n 0000567193 00000 n 0000569574 00000 n 0000581974 00000 n 0000582012 00000 n 0000582162 00000 n 0000582292 00000 n 0000582516 00000 n 0000585477 00000 n 0000635366 00000 n 0000647782 00000 n 0000647820 00000 n 0000648082 00000 n 0000648212 00000 n 0000648320 00000 n 0000648491 00000 n 0000648644 00000 n 0000648788 00000 n 0000648958 00000 n 0000649128 00000 n 0000649298 00000 n 0000649449 00000 n 0000649557 00000 n 0000649661 00000 n 0000649769 00000 n 0000649877 00000 n 0000650049 00000 n 0000650156 00000 n 0000650337 00000 n 0000654232 00000 n 0000666648 00000 n 0000666686 00000 n 0000666844 00000 n 0000666973 00000 n 0000667133 00000 n 0000667357 00000 n 0000670518 00000 n 0000719107 00000 n 0000731523 00000 n 0000731561 00000 n 0000731727 00000 n 0000731856 00000 n 0000732001 00000 n 0000732146 00000 n 0000732339 00000 n 0000737171 00000 n 0000749587 00000 n 0000749625 00000 n 0000749791 00000 n 0000749920 00000 n 0000750101 00000 n 0000750285 00000 n 0000750509 00000 n 0000754122 00000 n 0000800207 00000 n 0000812623 00000 n 0000812661 00000 n 0000812811 00000 n 0000812940 00000 n 0000813121 00000 n 0000817110 00000 n 0000829526 00000 n 0000829564 00000 n 0000829722 00000 n 0000829851 00000 n 0000829979 00000 n 0000830216 00000 n 0000833493 00000 n 0000878600 00000 n 0000891016 00000 n 0000891054 00000 n 0000891220 00000 n 0000891349 00000 n 0000891495 00000 n 0000891641 00000 n 0000891834 00000 n 0000896779 00000 n 0000909195 00000 n 0000909233 00000 n 0000909399 00000 n 0000909528 00000 n 0000909681 00000 n 0000909835 00000 n 0000910059 00000 n 0000913329 00000 n 0000953015 00000 n 0000965431 00000 n 0000965469 00000 n 0000965619 00000 n 0000965748 00000 n 0000965941 00000 n 0000969086 00000 n 0000981502 00000 n 0000981540 00000 n 0000981690 00000 n 0000981819 00000 n 0000982043 00000 n 0000984429 00000 n 0001031405 00000 n 0001043821 00000 n 0001043859 00000 n 0001044017 00000 n 0001044147 00000 n 0001044252 00000 n 0001044494 00000 n 0001048897 00000 n 0001061297 00000 n 0001061335 00000 n 0001061485 00000 n 0001061615 00000 n 0001061859 00000 n 0001068594 00000 n 0001081010 00000 n 0001081048 00000 n 0001103523 00000 n 0001103561 00000 n 0001103743 00000 n 0001103873 00000 n 0001103978 00000 n 0001104084 00000 n 0001104190 00000 n 0001104323 00000 n 0001104516 00000 n 0001107505 00000 n 0001119921 00000 n 0001119959 00000 n 0001120109 00000 n 0001120238 00000 n 0001120457 00000 n 0001141191 00000 n 0001153607 00000 n 0001153645 00000 n 0001181333 00000 n 0001181371 00000 n 0001181545 00000 n 0001181674 00000 n 0001181783 00000 n 0001181891 00000 n 0001181996 00000 n 0001182213 00000 n 0001186687 00000 n 0001199103 00000 n 0001199141 00000 n 0001199323 00000 n 0001199452 00000 n 0001199560 00000 n 0001199669 00000 n 0001199775 00000 n 0001199880 00000 n 0001200085 00000 n 0001206227 00000 n 0001218643 00000 n 0001218681 00000 n 0001218863 00000 n 0001218992 00000 n 0001219097 00000 n 0001219202 00000 n 0001219307 00000 n 0001219413 00000 n 0001219618 00000 n 0001224114 00000 n 0001236530 00000 n 0001236568 00000 n 0001236718 00000 n 0001236847 00000 n 0001237064 00000 n 0001242522 00000 n 0001254938 00000 n 0001254976 00000 n 0001255134 00000 n 0001255263 00000 n 0001255368 00000 n 0001255611 00000 n 0001285819 00000 n 0001298235 00000 n 0001298273 00000 n 0001316836 00000 n 0001316874 00000 n 0001317040 00000 n 0001317169 00000 n 0001317271 00000 n 0001317377 00000 n 0001317595 00000 n 0001322729 00000 n 0001335145 00000 n 0001335183 00000 n 0001335341 00000 n 0001335470 00000 n 0001335575 00000 n 0001335780 00000 n 0001345203 00000 n 0001357619 00000 n 0001357657 00000 n 0001357823 00000 n 0001357952 00000 n 0001358056 00000 n 0001358165 00000 n 0001358370 00000 n 0001364642 00000 n 0001377058 00000 n 0001377096 00000 n 0001377254 00000 n 0001377383 00000 n 0001377489 00000 n 0001377682 00000 n 0001380841 00000 n 0001393257 00000 n 0001393295 00000 n 0001393445 00000 n 0001393574 00000 n 0001393779 00000 n 0001405502 00000 n 0001417918 00000 n 0001417956 00000 n 0001418114 00000 n 0001418243 00000 n 0001418348 00000 n 0001418566 00000 n 0001428867 00000 n 0001441283 00000 n 0001441321 00000 n 0001441487 00000 n 0001441616 00000 n 0001441762 00000 n 0001441870 00000 n 0001442112 00000 n 0001447948 00000 n 0001460364 00000 n 0001460402 00000 n 0001460568 00000 n 0001460697 00000 n 0001460802 00000 n 0001460908 00000 n 0001461126 00000 n 0001467251 00000 n 0001479667 00000 n 0001479705 00000 n 0001479863 00000 n 0001479992 00000 n 0001480135 00000 n 0001480365 00000 n 0001486715 00000 n 0001499131 00000 n 0001499169 00000 n 0001499327 00000 n 0001499456 00000 n 0001499562 00000 n 0001499792 00000 n 0001506490 00000 n 0001518906 00000 n 0001518944 00000 n 0001519118 00000 n 0001519247 00000 n 0001519353 00000 n 0001519457 00000 n 0001519564 00000 n 0001519794 00000 n 0001526701 00000 n 0001539117 00000 n 0001539155 00000 n 0001539305 00000 n 0001539434 00000 n 0001539664 00000 n 0001545193 00000 n 0001557609 00000 n 0001557647 00000 n 0001557797 00000 n 0001557926 00000 n 0001558156 00000 n 0001564311 00000 n 0001576727 00000 n 0001576765 00000 n 0001576939 00000 n 0001577068 00000 n 0001577174 00000 n 0001577280 00000 n 0001577385 00000 n 0001577615 00000 n 0001583771 00000 n 0001596187 00000 n 0001596225 00000 n 0001596399 00000 n 0001596528 00000 n 0001596631 00000 n 0001596740 00000 n 0001596845 00000 n 0001597075 00000 n 0001606033 00000 n 0001618449 00000 n 0001618487 00000 n 0001618661 00000 n 0001618790 00000 n 0001618895 00000 n 0001619000 00000 n 0001619108 00000 n 0001619313 00000 n 0001625183 00000 n 0001637599 00000 n 0001637637 00000 n 0001637803 00000 n 0001637932 00000 n 0001638038 00000 n 0001638144 00000 n 0001638375 00000 n 0001644000 00000 n 0001659163 00000 n 0001659201 00000 n 0001671617 00000 n 0001671655 00000 n 0001671813 00000 n 0001671942 00000 n 0001672048 00000 n 0001672253 00000 n 0001679135 00000 n 0001691551 00000 n 0001691589 00000 n 0001691755 00000 n 0001691884 00000 n 0001691987 00000 n 0001692093 00000 n 0001692298 00000 n 0001698091 00000 n 0001710507 00000 n 0001710545 00000 n 0001710711 00000 n 0001710840 00000 n 0001710946 00000 n 0001711052 00000 n 0001711283 00000 n 0001719214 00000 n 0001731630 00000 n 0001731668 00000 n 0001743630 00000 n 0001743668 00000 n 0001743818 00000 n 0001743947 00000 n 0001744152 00000 n 0001751588 00000 n 0001764004 00000 n 0001764042 00000 n 0001764216 00000 n 0001764345 00000 n 0001764450 00000 n 0001764559 00000 n 0001764667 00000 n 0001764910 00000 n 0001773507 00000 n 0001785923 00000 n 0001785961 00000 n 0001837533 00000 n 0001837571 00000 n 0001837737 00000 n 0001837866 00000 n 0001837974 00000 n 0001838082 00000 n 0001838299 00000 n 0001844490 00000 n 0001856906 00000 n 0001856944 00000 n 0001857118 00000 n 0001857247 00000 n 0001857353 00000 n 0001857459 00000 n 0001857564 00000 n 0001857809 00000 n 0001868934 00000 n 0001881350 00000 n 0001881388 00000 n 0001908010 00000 n 0001908048 00000 n 0001924642 00000 n 0001924680 00000 n 0001924846 00000 n 0001924975 00000 n 0001925080 00000 n 0001925186 00000 n 0001925417 00000 n 0001934710 00000 n 0001947126 00000 n 0001947164 00000 n 0001973790 00000 n 0001973828 00000 n 0001973978 00000 n 0001974107 00000 n 0001974300 00000 n 0001978487 00000 n 0001990903 00000 n 0001990941 00000 n 0001991099 00000 n 0001991228 00000 n 0001991334 00000 n 0001991577 00000 n 0001997206 00000 n 0002009622 00000 n 0002009660 00000 n 0002026320 00000 n 0002026358 00000 n 0002026524 00000 n 0002026653 00000 n 0002026759 00000 n 0002026868 00000 n 0002027100 00000 n 0002031402 00000 n 0002043818 00000 n 0002043856 00000 n 0002108190 00000 n 0002108228 00000 n 0002108386 00000 n 0002108515 00000 n 0002108620 00000 n 0002108864 00000 n 0002114520 00000 n 0002126936 00000 n 0002126974 00000 n 0002191296 00000 n 0002191334 00000 n 0002191484 00000 n 0002191613 00000 n 0002191843 00000 n 0002196207 00000 n 0002208623 00000 n 0002208661 00000 n 0002208819 00000 n 0002208948 00000 n 0002209123 00000 n 0002209341 00000 n 0002213442 00000 n 0002225858 00000 n 0002225896 00000 n 0002226086 00000 n 0002226215 00000 n 0002226321 00000 n 0002226429 00000 n 0002226534 00000 n 0002226640 00000 n 0002226748 00000 n 0002226966 00000 n 0002232373 00000 n 0002244789 00000 n 0002244827 00000 n 0002256906 00000 n 0002256944 00000 n 0002257134 00000 n 0002257263 00000 n 0002257369 00000 n 0002257472 00000 n 0002257578 00000 n 0002257686 00000 n 0002257793 00000 n 0002257998 00000 n 0002262085 00000 n 0002274501 00000 n 0002274539 00000 n 0002274705 00000 n 0002274834 00000 n 0002274940 00000 n 0002275048 00000 n 0002275241 00000 n 0002277786 00000 n 0002290202 00000 n 0002290240 00000 n 0002290430 00000 n 0002290559 00000 n 0002290665 00000 n 0002290770 00000 n 0002290873 00000 n 0002290978 00000 n 0002291085 00000 n 0002291278 00000 n 0002295169 00000 n 0002307585 00000 n 0002307623 00000 n 0002307853 00000 n 0002307982 00000 n 0002308091 00000 n 0002308199 00000 n 0002308306 00000 n 0002308412 00000 n 0002308519 00000 n 0002308627 00000 n 0002308735 00000 n 0002308838 00000 n 0002308945 00000 n 0002309053 00000 n 0002309258 00000 n 0002313422 00000 n 0002325838 00000 n 0002325876 00000 n 0002326127 00000 n 0002326256 00000 n 0002326363 00000 n 0002326470 00000 n 0002326578 00000 n 0002326686 00000 n 0002326795 00000 n 0002326902 00000 n 0002327010 00000 n 0002327118 00000 n 0002327227 00000 n 0002327335 00000 n 0002327443 00000 n 0002327650 00000 n 0002332229 00000 n 0002344646 00000 n 0002344686 00000 n 0002344876 00000 n 0002345006 00000 n 0002345113 00000 n 0002345217 00000 n 0002345324 00000 n 0002345434 00000 n 0002345630 00000 n 0002349166 00000 n 0002361583 00000 n 0002361623 00000 n 0002361831 00000 n 0002361961 00000 n 0002362068 00000 n 0002362175 00000 n 0002362282 00000 n 0002362389 00000 n 0002362498 00000 n 0002362607 00000 n 0002362828 00000 n 0002366989 00000 n 0002379406 00000 n 0002379446 00000 n 0002379627 00000 n 0002379757 00000 n 0002379861 00000 n 0002379965 00000 n 0002380073 00000 n 0002380281 00000 n 0002383948 00000 n 0002396365 00000 n 0002396405 00000 n 0002396613 00000 n 0002396743 00000 n 0002396850 00000 n 0002396957 00000 n 0002397064 00000 n 0002397171 00000 n 0002397280 00000 n 0002397388 00000 n 0002397596 00000 n 0002401981 00000 n 0002414398 00000 n 0002414438 00000 n 0002414646 00000 n 0002414776 00000 n 0002414950 00000 n 0002415057 00000 n 0002415164 00000 n 0002415271 00000 n 0002415380 00000 n 0002415488 00000 n 0002415696 00000 n 0002419622 00000 n 0002432039 00000 n 0002432079 00000 n 0002432233 00000 n 0002432363 00000 n 0002432547 00000 n 0002434326 00000 n 0002446743 00000 n 0002446783 00000 n 0002446946 00000 n 0002447077 00000 n 0002447210 00000 n 0002447443 00000 n 0002452333 00000 n 0002464734 00000 n 0002464774 00000 n 0002464991 00000 n 0002465122 00000 n 0002465261 00000 n 0002465412 00000 n 0002465520 00000 n 0002465628 00000 n 0002465735 00000 n 0002465869 00000 n 0002466002 00000 n 0002466222 00000 n 0002472114 00000 n 0002484531 00000 n 0002484571 00000 n 0002484752 00000 n 0002484883 00000 n 0002485015 00000 n 0002485198 00000 n 0002485385 00000 n 0002485606 00000 n 0002490695 00000 n 0002503112 00000 n 0002503152 00000 n 0002503306 00000 n 0002503436 00000 n 0002503670 00000 n 0002507675 00000 n 0002520092 00000 n 0002520132 00000 n 0002520286 00000 n 0002520417 00000 n 0002520661 00000 n 0002525377 00000 n 0002537778 00000 n 0002537818 00000 n 0002537972 00000 n 0002538103 00000 n 0002538311 00000 n 0002541184 00000 n 0002553601 00000 n 0002553641 00000 n 0002553804 00000 n 0002554001 00000 n 0002554132 00000 n 0002554340 00000 n 0002556802 00000 n 0002569203 00000 n 0002569243 00000 n 0002569397 00000 n 0002569528 00000 n 0002569712 00000 n 0002571490 00000 n 0002583907 00000 n 0002583947 00000 n 0002584110 00000 n 0002584241 00000 n 0002584349 00000 n 0002584569 00000 n 0002588403 00000 n 0002600804 00000 n 0002600844 00000 n 0002601025 00000 n 0002601156 00000 n 0002601295 00000 n 0002601433 00000 n 0002601572 00000 n 0002601780 00000 n 0002606108 00000 n 0002618525 00000 n 0002618565 00000 n 0002618719 00000 n 0002618850 00000 n 0002619034 00000 n 0002621268 00000 n 0002633685 00000 n 0002633725 00000 n 0002633879 00000 n 0002634009 00000 n 0002634193 00000 n 0002635957 00000 n 0002648374 00000 n 0002648414 00000 n 0002648595 00000 n 0002648726 00000 n 0002648833 00000 n 0002648939 00000 n 0002649046 00000 n 0002649336 00000 n 0002656357 00000 n 0002668758 00000 n 0002668798 00000 n 0002681984 00000 n 0002682024 00000 n 0002695777 00000 n 0002695817 00000 n 0002707998 00000 n 0002708038 00000 n 0002708210 00000 n 0002708341 00000 n 0002708448 00000 n 0002708555 00000 n 0002708806 00000 n 0002715526 00000 n 0002727943 00000 n 0002727983 00000 n 0002745522 00000 n 0002745562 00000 n 0002763049 00000 n 0002763089 00000 n 0002763801 00000 n 0002772709 00000 n 0002777528 00000 n 0002778180 00000 n 0002778845 00000 n 0002779363 00000 n 0002779774 00000 n 0002780237 00000 n 0002785285 00000 n 0002785594 00000 n 0002786012 00000 n 0002792100 00000 n 0002792618 00000 n 0002799727 00000 n 0002800137 00000 n 0002800443 00000 n 0002800676 00000 n 0002800880 00000 n 0002801016 00000 n 0002808355 00000 n 0002808682 00000 n 0002813701 00000 n 0002813934 00000 n 0002814307 00000 n 0002815822 00000 n 0002819071 00000 n 0002821165 00000 n 0002821688 00000 n 0002822076 00000 n 0002822507 00000 n 0002822996 00000 n 0002823262 00000 n 0002823635 00000 n 0002823860 00000 n 0002824056 00000 n 0002830731 00000 n 0002830857 00000 n 0002831100 00000 n 0002831261 00000 n 0002831416 00000 n 0002831729 00000 n 0002832123 00000 n 0002832424 00000 n 0002832667 00000 n 0002833741 00000 n 0002834261 00000 n 0002834427 00000 n 0002834662 00000 n 0002834780 00000 n 0002835340 00000 n 0002836389 00000 n 0002837514 00000 n 0002838753 00000 n 0002840030 00000 n 0002840414 00000 n 0002840757 00000 n 0002841482 00000 n 0002842312 00000 n 0002842922 00000 n 0002842972 00000 n 0002843022 00000 n 0002843072 00000 n 0002843122 00000 n 0002843172 00000 n 0002843222 00000 n 0002843272 00000 n 0002843322 00000 n 0002843372 00000 n 0002843422 00000 n 0002843472 00000 n 0002843522 00000 n 0002843571 00000 n 0002843620 00000 n 0002843670 00000 n 0002843720 00000 n 0002843770 00000 n 0002843819 00000 n 0002843869 00000 n 0002843918 00000 n 0002843968 00000 n 0002844017 00000 n 0002844067 00000 n 0002844117 00000 n 0002844167 00000 n 0002844217 00000 n 0002844267 00000 n 0002844317 00000 n 0002844367 00000 n 0002844417 00000 n 0002844466 00000 n 0002844516 00000 n 0002844566 00000 n 0002844615 00000 n 0002844665 00000 n 0002844715 00000 n 0002844765 00000 n 0002844815 00000 n 0002844865 00000 n 0002844914 00000 n 0002844963 00000 n 0002845012 00000 n 0002845062 00000 n 0002845112 00000 n 0002845161 00000 n 0002845211 00000 n 0002845261 00000 n 0002845311 00000 n 0002845362 00000 n 0002845413 00000 n 0002845464 00000 n 0002845515 00000 n 0002845566 00000 n 0002845617 00000 n 0002845668 00000 n 0002845719 00000 n 0002845770 00000 n 0002845821 00000 n 0002845872 00000 n 0002845922 00000 n 0002845973 00000 n 0002846023 00000 n 0002846073 00000 n 0002846122 00000 n 0002846172 00000 n 0002846222 00000 n 0002846272 00000 n 0002846321 00000 n 0002846372 00000 n 0002846423 00000 n 0002846474 00000 n 0002846525 00000 n 0002846575 00000 n 0002846625 00000 n 0002846675 00000 n 0002846725 00000 n 0002846775 00000 n 0002846824 00000 n 0002846874 00000 n 0002846924 00000 n 0002846974 00000 n 0002847024 00000 n 0002847074 00000 n 0002847123 00000 n 0002847173 00000 n 0002847223 00000 n 0002847273 00000 n 0002847323 00000 n 0002847373 00000 n 0002847423 00000 n 0002847473 00000 n 0002847523 00000 n 0002847573 00000 n 0002847623 00000 n 0002847673 00000 n 0002847723 00000 n 0002847773 00000 n 0002847823 00000 n 0002847874 00000 n 0002847925 00000 n 0002847976 00000 n 0002848027 00000 n 0002848078 00000 n 0002848129 00000 n 0002848178 00000 n 0002848227 00000 n 0002848277 00000 n 0002848326 00000 n 0002848375 00000 n 0002848425 00000 n 0002848474 00000 n 0002848523 00000 n 0002848572 00000 n 0002848622 00000 n 0002848672 00000 n 0002848722 00000 n 0002848772 00000 n 0002848822 00000 n 0002848871 00000 n 0002848920 00000 n 0002848969 00000 n 0002849018 00000 n 0002849067 00000 n 0002849116 00000 n 0002849166 00000 n 0002849215 00000 n 0002849265 00000 n 0002849315 00000 n 0002849364 00000 n 0002849413 00000 n 0002849462 00000 n 0002849511 00000 n 0002849560 00000 n 0002849610 00000 n 0002849659 00000 n 0002849709 00000 n 0002849758 00000 n 0002849808 00000 n 0002849857 00000 n 0002849906 00000 n 0002849956 00000 n 0002850005 00000 n 0002850055 00000 n 0002850105 00000 n 0002850154 00000 n 0002850204 00000 n 0002850254 00000 n 0002850303 00000 n 0002850352 00000 n 0002850401 00000 n 0002850451 00000 n 0002850500 00000 n 0002850549 00000 n 0002850598 00000 n 0002850648 00000 n 0002850698 00000 n 0002850747 00000 n 0002850797 00000 n 0002850847 00000 n 0002850896 00000 n 0002850945 00000 n 0002850994 00000 n 0002851043 00000 n 0002851093 00000 n 0002851143 00000 n 0002851193 00000 n 0002851242 00000 n 0002851291 00000 n 0002851340 00000 n 0002851389 00000 n 0002851438 00000 n 0002851488 00000 n 0002851537 00000 n 0002851586 00000 n 0002851635 00000 n 0002851684 00000 n 0002851733 00000 n 0002851782 00000 n 0002851831 00000 n 0002851880 00000 n 0002851929 00000 n 0002851978 00000 n 0002852027 00000 n 0002852076 00000 n 0002852125 00000 n 0002852174 00000 n 0002852223 00000 n 0002852272 00000 n 0002852321 00000 n 0002852370 00000 n 0002852419 00000 n 0002852468 00000 n 0002852517 00000 n 0002852566 00000 n 0002852615 00000 n 0002852664 00000 n 0002852713 00000 n 0002852762 00000 n 0002852811 00000 n 0002852860 00000 n 0002852909 00000 n 0002852958 00000 n 0002853007 00000 n 0002853056 00000 n 0002853105 00000 n 0002853154 00000 n 0002853203 00000 n 0002853252 00000 n 0002853301 00000 n 0002853350 00000 n 0002853399 00000 n 0002853448 00000 n 0002853497 00000 n 0002853546 00000 n 0002853595 00000 n 0002853644 00000 n 0002853693 00000 n 0002853742 00000 n 0002853791 00000 n 0002853841 00000 n 0002853890 00000 n 0002853939 00000 n 0002853988 00000 n 0002854037 00000 n 0002854086 00000 n 0002854136 00000 n 0002854186 00000 n 0002854235 00000 n 0002854284 00000 n 0002854333 00000 n 0002854382 00000 n 0002854431 00000 n 0002854480 00000 n 0002854529 00000 n 0002854578 00000 n 0002854627 00000 n 0002854676 00000 n 0002854725 00000 n 0002854774 00000 n 0002854823 00000 n 0002854872 00000 n 0002854921 00000 n 0002854970 00000 n 0002855019 00000 n 0002855068 00000 n 0002855117 00000 n 0002855167 00000 n 0002855216 00000 n 0002855265 00000 n 0002855314 00000 n 0002855364 00000 n 0002855414 00000 n 0002855463 00000 n 0002855513 00000 n 0002855563 00000 n 0002855613 00000 n 0002855662 00000 n 0002855711 00000 n 0002855760 00000 n 0002855809 00000 n 0002855858 00000 n 0002855907 00000 n 0002855956 00000 n 0002856005 00000 n 0002856054 00000 n 0002856103 00000 n 0002856152 00000 n 0002856202 00000 n 0002856252 00000 n 0002856302 00000 n 0002856352 00000 n 0002856401 00000 n 0002856450 00000 n 0002856499 00000 n 0002856548 00000 n 0002856597 00000 n 0002856646 00000 n 0002856695 00000 n 0002856744 00000 n 0002856793 00000 n 0002856840 00000 n 0002856890 00000 n 0002856940 00000 n 0002856990 00000 n 0002857040 00000 n 0002857090 00000 n 0002857140 00000 n 0002857190 00000 n 0002857240 00000 n 0002857290 00000 n 0002857340 00000 n 0002857390 00000 n 0002857440 00000 n 0002857490 00000 n 0002857540 00000 n 0002857590 00000 n 0002857640 00000 n 0002857690 00000 n 0002857741 00000 n 0002857792 00000 n 0002857843 00000 n 0002857894 00000 n 0002857945 00000 n 0002857994 00000 n 0002858043 00000 n 0002858082 00000 n 0002858108 00000 n 0002858175 00000 n 0002858330 00000 n 0002858470 00000 n 0002858614 00000 n 0002858758 00000 n 0002858902 00000 n 0002859046 00000 n 0002859190 00000 n 0002859334 00000 n 0002859478 00000 n 0002859624 00000 n 0002859778 00000 n 0002859913 00000 n 0002863970 00000 n trailer <> startxref 116 %%EOF uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk.ngc000066400000000000000000001534661224274632000222070ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.4e $3f24g<,[o}e~g`n;"2*413&;$>"9 > %10?*nhel%fmyz cnpfc`h(|dz$Sni fhdl[}jipV;=t<7P2bnh*kah92:?7=>=0593477339:=<95?8122?45<9'::>6?6:HLSQQ11592=?IR\Y__6iazt=3;>5863;80>=:432006>5?l29x>=>?ff662(363=;n794FNQWW>uthoVof|ywPtipfwm:4294996:5IORVP?vugnUna}zv_ujqavnXizyn~y2<:1<11>2=AGZ^X7~}of]fiur~W}byi~fPndebp`:4294:h6:5IORVP?vugnUmyabPtipfwm:4294986:5IORVP?vugnUmyabPtipfwmYf{zoyx1=50?07?18:79KPRW]]0omyoPcnwmp92=87;i784@UURVP?tcWmkmRm`uov?0?699k1>6B[[PTV9swYci}kTob{at=694;2<=H3==68;;72:41=119?;;9CFB1=?MJL:74:491230>?780805;:497230>?1>0>054864:;EB<45MU3:8FPUXAGLD=6M;;BC;E7=DM880OEKLK^NJG@HTMV^R\H=4CMP:?FIJE@^_II?;;BMQAZABFLXJXDAA_HLEK2=DZLK_II?4D59GF3@33MHI>>5KPN78@UTF8<1O\_O>5:FSVD423MZYM>:4F9:;6>@C;2LOO95IDBG7?CBDX=1MHIH<;GFS0>@CXL>0JK6?5:Dbhvc63N90KCJ>;H08M545FNW18MJD53EE=7AANDDF4?II@AJKG86BZT348HPR5WE>0@XZ<4:NVP10H69:1E=?=4N010?K73;2D:9>5A1718J4143G;3?6@>929M655H4::1E?>=4N270?K50;2D85>5A4018J1243G>>?6@;629M0<55A6618J3>43G<2>6@83:L446=I?890B:<<;O507>H0<:1E;8=4N640?K10;2D<4>5A7808J=53:L;66=I0:90B5:<;O::6>H>;2D2<>5A9018J<443G38?6@6629M=25VFZ]k0\D@PBTQJ@]d5\PN68P\VB;:1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UiecQwos2345YUmzgx<=<;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_ckm[}iu89::S_k|umv276=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwYeagUsc>?03]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?2^Pfwpjs9:90Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTnd`Pxnp3456XZly~`y?<3:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^`jjZ~hz9:;=R\jstnw565<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXj`dTtb|?010\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4567W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;=R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?03]Qavsk|88:7X> gsd-vc)`kq$h`fv re]sjqtXj`d7<3<>;T2,cw`)zo%lou lljz,vaYwf}xTnd`31?02?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl?6;463\:$kh!rg-dg}(ddbr$~iQnup\flh;;78;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ>219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^014>S7'nxm"h gbz-gim'{nT|cz}_ckm[6413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=6:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4566:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2328Q5)`zo$yj"ilx/aoo})ulVzexQhc=2=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`848582_;#j|i.sd,cf~)keas#jPpovq[be;:78;7X> gsd-vc)`kq$h`fv re]sjqtXoj682>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP10d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^02b>S7'nxm"h gbz-gim'{nT|cz}_fa\770<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm7<3<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8485>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1<1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:46;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP0378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX9;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP2378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX;;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>3:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2>>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8692?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:46;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\773<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ~hz9:;??4U1-dvc(un&mht#mcky-tvZvi|{Uiec2?>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>2:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:56;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag682?>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ?219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^314>S7'nxm"h gbz-gim'~xT|cz}_ckm[7473\:$kh!rg-dg}(ddbr${Qnup\flhX;;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0105?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789;9:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012165=R8&myj#|i/fa{*fjlp&}yS}`{r^e`858582_;#j|i.sd,cf~)keas#z|Ppovq[be;978;7X> gsd-vc)`kq$h`fv ws]sjqtXoj692?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1=11g9V4*aun'xm#jmw.bnh|*quWyd~Ril_13e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]25c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[77a3\:$kh!rg-dg}(ddbr${Qnup\cfY4:?1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyij2?>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;978=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<3<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo595>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]360=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU:>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]160=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU8>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5969:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z6502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_00;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T>?64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y4:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWqey<=>?249V4*aun'xm#jmw.bnh|*quWyd~Ril_ymq4566:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWqey<=>=369V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYulVnhSdQndeqvf5678=9h7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$Aljk_sf\`fYnWhnoxl?012\g|:66:90Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}:<4:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos04543\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dz=?95Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"C|uc]gmc`X{UyhRzbp630<>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWjs7=3=n;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\g|:668;8n6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq84869:h0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qwos>0:47502_;#j|i.sd,ci6)zm%l~< hrea1*wbd'{nThnQf_10;?P6(o{l%~k!hl1,q`*au9'myhnS7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS9=>;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoXe|r;<=<30?16?P6(o{l%~k!hl1,q`*au9'myhn gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k\ip~78987=3=<;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoXe|r;<=<31?3277=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236979::;0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]nq}678;692><4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;012?P6(o{l%~k!hl1,q`*au9'myhn0>_RU374=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236929;;1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^ov|567:5>5=>84U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;0]PS54f3\:$kh!rg-dh5(ul&my=#|iwgv,VDKXZMUNBRHXFU31=>S7'nxm"h gm2-va)`z8$yjzh{/SCN[WC@G\^TIC?=b:W3+bta&{l$ka>!re-dv4(un~l#_OB_WCOMAYA_O^:=>=4U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe302>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c9$Ce?55Z0.eqb+ta'nf;"j gs3-vcqa|&i~~Qiwgv\wqgsmVLXARHId0/Jj474;2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[CUJWOLo>>84U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe0.Mk5?3\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\BVKXNOn9!D`>13:8Q5)`zo$yj"ic0/pg+bt6&{l|jy!jmqvz[cqa|Vli>:5Z0.eqb+ta'nf;"j gs3-vcqa|&of|ywPfvdw[l4b3\:$kh!rg-dh5(ul&my=#|iwgv,ahvsqVl|jyQf_np34565n2_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^mq45679;?0Y=!hrg,qb*ak8'xo#j|>.sdtbq)r{lxTzlbfd3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTe>>4U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXaVey<=>?369V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUbSb|?012240YT_9987X> gsd-vc)`d9$yh"i}ar,qwqu(zhgTi`~{y^da[lYhz9:;< gsd-vc)`d9$yh"i}ar,qwqu(zhgTi`~{y^da[lYhz9:;!re-dvdu)zz~x#ob_dosp|YajVcTc>?01:;5c=R8&myj#|i/fn3*wb(zhgTzlbfd^dtbq443\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu110>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|?8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{9208Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7<3?>_HLU[54d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<0<257e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|32?326f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2<>032b>S7'nxm"h gm2-va)uxg~y#naznu>3:4`<]9%l~k }f.eo4+tc'{zex!lotlw8486n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:568l0Y=!hrg,qb*ak8'xo#~ats-`kphs4:4:i6[?/fpe*w`(oe:%~i!}povq+firf}U;=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T=!re-qtkru'je~byQk1=2=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:66;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7>3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><2<15>S7'nxm"h gm2-va)uxg~y#naznu]g5Z65;2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V:T=??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P1318Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\5Z7592_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V89?6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R?000;?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkWohTe?;4U1-dvc(un&mg<#y}/fubw+qt|z%ym`Qiumn\m7e<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTeRa}01236c=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUbSb|?01225=543\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQ`r123447?WZ];>k5Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]j[jt789::8<!ws-dsdu)z~x#ob_gwohZoXg{:;<=;<2d9V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYnWfx;<=>63528Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYpzVnjxlQlotlw[lYflm:;<=Qly=3=05=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclV}ySio{a^alqkrXaVkoh=>?0^az8683:2_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSz|Pd`vb[firf}UbSljk0123[f;;7;:8;5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vir0>0>1^QT415<]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmU|~Rjnt`]`kphsW`Ujhi>?01]{kw:668;??6[?/fpe*w`(oe:%{!hwea2*rbdmq~$Aljk_vp\`drfWje~byQf_`fg4567Wqey0?0>1518Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYpzVnjxlQlotlw[lYflm:;<=Qwos>0:473?2_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSz|Pd`vb[firf}UbSljk0123[}iu4:4:=R]X1558Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYpzVnjxlQlotlw[lYflm:;<=Qwos>0:47X[^88>6[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~9329V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos34503\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUhu1?1389V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[f;97;:?l5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_ymq85869:k0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rv`r=3=544a3\:$kh!rg-dh5(pz&m|hn?!weaf|q)caolT{Q}d^vnt969:o1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'~xThlzn_bmvjqYnW98m7X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`U:>k5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbS?64U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~TeRokd1234949;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'~xThlzn_bmvjqYnWhno<=>?<2<2`>S7'nxm"h gm2-sw)uidU|~Rka_h317>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz<259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex4==;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[}iu494:=RGAV^21g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?1100`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey0?0>13a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?3?>1g9V4*aun'xm#jb?.vp,suhsz&idycz30?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=3=5c=R8&myj#|i/fn3*rt(yd~"m`uov?6;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9599l1^<"i}f/pe+bj7&~x${}`{r.alqkrX88o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW8;n7X> gsd-vc)`d9$|~"ynup,gjsi|V8:i6[?/fpe*w`(oe:%{!xpovq+firf}U8>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2?>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?5;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64;49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1=1209V4*aun'xm#jb?.vp,suhsz&idyczPd0]364=R8&myj#|i/fn3*rt(yd~"m`uov\`4Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl8U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th3:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;97897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90?0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=1=64=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y7::1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U;S<<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_000?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[4Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q<229V4*aun'xm#jb?.vp,suhsz&idyczPd3]0[4433\:$kh!rg-dh5(pz&}{by| cnwmpZhh|9:;=<84U1-dvc(un&gna"j`uu]j[5713\:$kh!rg-nah)cg|~TeR?>7:W3+bta&{l$ahc dnww[lY688=0Y=!hrg,qb*kbe&ndyyQf_0323>S7'nxm"h mdo,`jssW`U:><94U1-dvc(un&gna"j`uu]j[456?2_;#j|i.sd,i`k(lfSdQ>4058Q5)`zo$yj"cjm.flqqYnW8?:;6[?/fpe*w`(elg$hb{{_h]2241<]9%l~k }f.ofi*bh}}UbS<9>7:W3+bta&{l$ahc dnww[lY608<0Y=!hrg,qb*kbe&ndyyQf_335?P6(o{l%~k!bel-gkprXaV9::6[?/fpe*w`(elg$hb{{_h]753=R8&myj#|i/lgn+air|VcT9<84U1-dvc(un&gna"j`uu]j[3713\:$kh!rg-nah)cg|~TeR9>6:W3+bta&{l$ahc dnww[lY?9?1^<"i}f/pe+hcj'me~xRgP90g8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM03e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL335c=R8&myj#|i/lgn+bbj&mg$Aob_SCN547a3\:$kh!rg-nah)`ld$oa"C}al]QEH759o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ9:;m7X> gsd-vc)jmd%lh` km.OqehYUID;?=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=8?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?91g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB163e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL3;5c=R8&myj#|i/lgn+bbj&mg$Aob_SCN5<7b3\:$kh!rg-nah)`ld$oa"C}al]QEH46m2_;#j|i.sd,i`k(omg%h`!Br`o\VDK49l1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ<8o0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE<;n7X> gsd-vc)jmd%lh` km.OqehYUID<:i6[?/fpe*w`(elg$kic!dl-NvdkXZHG<=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF4348Q5)`zo$yj"cjm.egi+bj'V|j~d`key2345:6;78=7X> gsd-vc)jmd%lh` km.]uewoillr;<=>315<12>S7'nxm"h mdo,cak)ld%Tzl|fneg{456748?5>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=35:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896:;3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?5=85=2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0<0=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238785=2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0>0=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238185=2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;080=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238385=2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0:0=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238=85=2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;040>e:W3+bta&{l$ahc geo-`h)cg|~Te1>11g9V4*aun'xm#`kb/ffn*ak(lfSd2>0?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<03=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>26;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84599o1^<"i}f/pe+hcj'nnf"ic dnww[l:6<7;m7X> gsd-vc)jmd%lh` km.flqqYn48?5=k5Z0.eqb+ta'dof#jjb.eo,`jssW`6::3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0<911g9V4*aun'xm#`kb/ffn*ak(lfSd2>8?3f?P6(o{l%~k!bel-d`h(ce&ndyyQf<0<2a>S7'nxm"h mdo,cak)ld%ocxzPi=0=5`=R8&myj#|i/lgn+bbj&mg$hb{{_h>0:4c<]9%l~k }f.ofi*ace'nf#iazt^k?0;7b3\:$kh!rg-nah)`ld$oa"j`uu]j8086m2_;#j|i.sd,i`k(omg%h`!kotv\m9099l1^<"i}f/pe+hcj'nnf"ic dnww[l:068o0Y=!hrg,qb*kbe&moa#jb/emvpZo;07;n7X> gsd-vc)jmd%lh` km.flqqYn404:h6[?/fpe*w`(elg$kic!dl-gkprXaV::h6[?/fpe*w`(elg$kic!dl-gkprXaV;:i6[?/fpe*w`(elg$kic!dl-gkprXaV;;=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U:=e:W3+bta&{l$ahc geo-`h)cg|~TeR?;1d9V4*aun'xm#`kb/ffn*ak(lfSdQ>50g8Q5)`zo$yj"cjm.egi+bj'me~xRgP173f?P6(o{l%~k!bel-d`h(ce&ndyyQf_052a>S7'nxm"h mdo,cak)ld%ocxzPi^3;5a=R8&myj#|i/lgn+bbj&mg$hb{{_h]15a=R8&myj#|i/lgn+bbj&mg$hb{{_h]05a=R8&myj#|i/lgn+bbj&mg$hb{{_h]75a=R8&myj#|i/lgn+bbj&mg$hb{{_h]65a=R8&myj#|i/lgn+bbj&mg$hb{{_h]55a=R8&myj#|i/lgn+bbj&mg$hb{{_h]45a=R8&myj#|i/lgn+bbj&mg$hb{{_h];5a=R8&myj#|i/lgn+bbj&mg$hb{{_h]:52=R8&myj#|i/scn[wc`g|~Tic?k;T2,cw`)zo%yylck.pg[wusWhyyijS7'nxm"h rrvahn)ulVxxxRm`mc32a>S7'nxm"h rrvahn)ulVxxxR|jg=2=5`=R8&myj#|i/sqwfim(zmUyyQ}ef>2:4c<]9%l~k }f.pppgjl'{nT~~zPrde?6;7c3\:$kh!rg-qwqdkc&xoS}{_sgd[57c3\:$kh!rg-qwqdkc&xoS}{_sgd[47c3\:$kh!rg-qwqdkc&xoS}{_sgd[77c3\:$kh!rg-qwqdkc&}yS}{_`qqab473\:$kh!rg-qwqdkc&}yS}{_`qqabYc9;:0Y=!hrg,qb*tt|kf`#z|Prrv\evtboVn9=n5Z0.eqb+ta'{ynae ws]qwqYdgdh:h6[?/fpe*w`(zz~i`f!xr^pppZehek;:i6[?/fpe*w`(zz~i`f!xr^pppZtbo5:5=h5Z0.eqb+ta'{ynae ws]qwqYumn6:21S_YQHNE`8\ZEHZLUBBKA9;Yfa[Lba3QncS]|fmWgqwlii991Sh`QBakmqR`ttafd:<6Vkm^OjjjtQm{ybccm4amolwqYbey~rn6ocmnqw[cskd?1imnezpe9aefmrxVgj~fk}3:aooa=ci}kTob{at)2*`>bf|hUhcx`{(0+g?agsiVidycz'2(f8`drfWje~by&<)e9geqgXkfex%:&d:fbpdYdg|d0=0i;ecweZeh}g~787>17:famqcuz?1oec&?)79gmk.6!>1oec&>0(58`lh/98#<7iga(00*3>bnf!;8%:5kio*20,1bnf5;92:5kio>27;169gmk:6?730hd`31983:2=cag6:4384dhl?5;0384dhl?7;00(:8`jss 8;"46j`uu*26,>bh}}"::$64dnww,41.02ndyy&>8(58`jss ;#<7iazt)1*3>bh}}"?%:5kotv+1,199gkpr;9:437iazt=37:==cg|~7=807;emvp971611ocxz3161ocxz31?58`jss4;4<7iazt=1=3>bh}}6?2:5kotv?1;169gkpr;1720iigi2oeg1>cjx}s8>6hffn]dakcui}eyS{:P3-"[mioip)ID^H.Heogqeqiu(8:%=#><159emciXpedsS<8w18]1gim4:2lbjbQwloz\53~61V8h`f"iigm\c`hbzh~d~Rx;_2.MKKC+FFDN?oj4fhdl[}jipV;=t<7P2bnh(coagVmnbh|ntnp\r1Y4$riTdl}Piov\gim:8%iTdl}Pssqw95*dW{nTjk~=0.`[mgtW{nThlzn_bmvjq;6$jUoecQxievk94?+kVbjRy}_ecweZeh}g~6=!mPftno[cjfozUyyQyam?2(fYneyfnah`{aukljZr~xl79 nQzsd]figccllnT~hi20-a\swYazl{6=!mPurg\`jssW{y1<"l_tlgaw`kg~Ugcz3?,b]kevYh~lxm`by20-a\twckghnT`lzjnb{>4)eXlfSzgkti?2=)eXezmdbRxnl<3/gZtcWmo{xe3>6-a\lduX}gnn~kb`w<2/gZnf{Vkgab}{_gwoh86+kVbjR||t<3/gZbf|hUhcx`{_vkgpm;2$jUcm~Qxr^c`o86+kVxiRklc<2/gZehedeeSnb`cj?3(fYpzVkhgRb`w<2/gZtcWyd~Ryfduj>0)eX}zoTjzh{_ecweZeh}g~6=!mPh`q\eikh{}Una}zv=1.`[wbXlh~jSnaznu]tmaro5<&hSbxjrgnlsZjh4:'oRy}_qlwvZqnl}b68!mPpsmd[`kw|pUu}k20-a\swYci}kTob{at^uj`qn:=%iT|kco`f\v`at58&hSiazt^pppZpfd4:'oRfns^fbpdYdg|d1="l_qplcZ`rdeUdk|h^lfcdrbWkg1<:#c^uq[acw|a7::!mPpsmd[`kw|pUdk|h^lfcdrbWkg18"l_qplcZcjx}sTxe|jsi]bwvcu|V|j`0:#c^jbwZpfd`n6oi|Vigg55agb`vmib?3f|n~kb`w`9svjaXmdzu<:4psmd[`kw|pUdk|h)2*51=wzfmTi`~{y^vkv`uo 8#:86~}of]fiur~W}byi~f'2(37?uthoVof|ywPtipfwm.4!8<0|ah_dosp|Ys`{oxd1=50?3a?uthoVof|ywPtipfwmYf{zoyx%>&1c9svjaXmdzuRzgrdqk[dutm{~#=$?m;qplcZcjx}sTxe|jsi]bwvcu|!8"=o5rne\ahvsqV~c~h}g_`qpawr/; ;o7}|`g^gntqX|axneQnsrgqp95=87;i7}|`g^gntqX|axneQaefcwa-6.9k1{~biPelrw}ZrozlycSckhaug+5,7e3yxdkRkbpu{\pmtb{aUeijo{e)0*5g=wzfmTi`~{y^vkv`uoWgolmyk'3(3g?uthoVof|ywPtipfwmYimnki1=50?;8twi`Wog`<=4psmd[cskdV~c~h}g(1+27>vugnUmyabPtipfwm.6!890|ah_gwohZrozlyc$?'>3:rqkbYa}efTxe|jsi*0-4311`9svjaXn|fgSyf}erj\j`af|l";%)028vaYci}kTob{at)0*55=ulVnjxlQlotlw,6/682xoSio{a^alqkr/< ;;7jPd`vb[firf}6;2<>4re]geqgXkfex1?1119q`Zbf|hUhcx`{<3<24>tcWmkmRm`uov?7;753{nThlzn_bmvjq:3294:<6|k_ecweZeh}g~783;4re]fj3=ulVxxx>5}su58wgosm{x?7~||t59wvpc>3|doihcov78rdjnl?1|~Rolk79tvZekc8:0{Qkauc\gjsi|!:"==5xr^fbpdYdg|d$<'>0:uq[agsiVidycz'2(33?rtXlh~jSnaznu*0-46<{UomyoPcnwmp-2.991|~Rjnt`]`kphs494:<6y}_ecweZeh}g~7=3??;vp\`drfWje~by2=>028swYci}kTob{at=1=57=pzVnjxlQlotlw81<768:0{Qkauc\gjsi|5>596y}_dl5?rtXzz~vLM~8d`9CD}7=N3>1=v];0;0;7?>=9:82<3;0b?<8:59'672=:;:0q^=j:3:0>=<6;;3;=k4n92f8W0c=:1i1<7?<2822b?g>;l1X?h4=8b83>45519;m6l7=<6;;3;=k4n92f8rQd1290:6<4jezQ74?4?;321=><600d9e<5c3-8:h7;i;W011?4|}?=1=6{98;28y!d72o1i>5850;14>6<4?rB9=o5U39874g=900j644r$c:96=0<,;886?6:;h0ae?6=3f8h47>5$c096fb3:1(o<52bf8jg7=:21d>n;50;&a6?4dl2di=7=4;n0`0?6=,k81>nj4nc390>=h:k91<7*m2;0a<>he93:07b75$c096g>20bo?50:9l633=83.i>7<88:la5?7<3f8=87>5$c0962>65`27194?"e:38<46`m1;18?j41:3:1(o<526:8jg7=<21d>;?50;&a6?4002di=7;4;n054?6=,k81>:64nc392>=h:he93=07b<:e;29 g4=:>20bo?58:9l63c=83.i>7<88:la5??<3f8=h7>5$c0962>;o50;&a6?4002di=7j4;n05=?6=,k81>:64nc39a>=h:?21<7*m2;04<>he93l07b<97;29 g4=:>20bo?51198k73c290/n?4=799mf4<6921d>8m50;&a6?4002di=7?=;:k17c<72-h96?;>;o`2>5=!d52;?:7cl>:398m75d290/n?4=509mf4<432c9?o4?:%`1>7363gh:6954i31b>5<#j;099<5ab086?>o5;00;6)l=:372?kd62?10e?=7:18'f7<5=81en<48;:k172<72-h96?;>;o`2>==<6=4+b38114=ij80276g=4783>!d52;?:7cl>:`98m722290/n?4=509mf47363gh:6n54i360>5<#j;099<5ab08g?>o5<;0;6)l=:372?kd62l10e?:>:18'f7<5=81en<4i;:k105<72-h96?;>;o`2>46<3`88:7>5$c096075<#j;099<5ab0826>=n:ho1<75m20a94?7=83:pD??m;%`;>77d3fkm6=44}c77>5<6290;wE<>b:&a5<1=3n86hktH33a?_5?28a;3:>40=910:87o5108:>43=9:0:47?n:`82=?75200::7?::06956<693w/n54=889'1f<2:2.8o7<77:&0b?4?02.jn7oj;h0af?6=3f82i7>5;h0aa?6=3f8947>5;n0`5?6=3`89n7>5;h0:3?6=,k81>464nc394>=n:0<1<7*m2;0:<>he93;07d<65;29 g4=:020bo?52:9j6<2=83.i>7<68:la5?5<3`8im7>5;n0;`?6=3f8h47>5$c096fb3:1(o<52bf8jg7=:21d>n;50;&a6?4dl2di=7=4;n0`0?6=,k81>nj4nc390>=h:k91<7*m2;0a<>he93:07b75$c096g>ll50;&a6?4fl2di=7?4;h0be?6=,k81>lj4nc396>=n:h31<7*m2;0b`>he93907d>>50;&a6?44;2di=7?4;n01b?6=,k81>>=4nc396>=h:;o1<7*m2;007>he93907b<=d;29 g4=::90bo?54:9l6=g=831d>5:50;9j6d4=83.i>75$c096d5n3:1(o<52`18jg7=;21b>n=50;9j6=d=831b>?m50;9j6a6=831d>oj50;9l6f4=831d>?750;9l6f6=831b>om50;9l630=83.i>7<88:la5?6<3f8=97>5$c0962>;<50;&a6?4002di=7:4;n055?6=,k81>:64nc391>=h:?:1<7*m2;04<>he93<07b<:f;29 g4=:>20bo?57:9l60c=83.i>7<88:la5?><3f8=i7>5$c0962>;l50;&a6?4002di=7m4;n05e?6=,k81>:64nc39`>=h:?31<7*m2;04<>he93o07b<98;29 g4=:>20bo?5f:9l631=83.i>7<88:la5?7732e99i4?:%`1>71?3gh:6:64nc3957=!d52;387cl>:098m7?7290/n?4=929mf4<532c94k4?:%`1>7?43gh:6>54i31e>5<#j;099<5ab083?>o5;l0;6)l=:372?kd62810e?=k:18'f7<5=81en<4=;:k17f<72-h96?;>;o`2>6=!d52;?:7cl>:498m75>290/n?4=509mf4<132c9?54?:%`1>7363gh:6:54i314>5<#j;099<5ab08;?>o5<>0;6)l=:372?kd62010e?:9:18'f7<5=81en<4n;:k100<72-h96?;>;o`2>g=?6=4+b38114=ij80h76g=4283>!d52;?:7cl>:e98m725290/n?4=509mf47363gh:6k54i363>5<#j;099<5ab0824>=n::<1<7*m2;065>he93;:76g=3483>!d52;?:7cl>:008?l45i3:17d75$c096d>65f2`694?"e:38j46`m1;18?l4>k3:1(o<528f8jg7=821b>4l50;&a6?4>l2di=7?4;h0:e?6=,k81>4j4nc396>=n:031<7*m2;0:`>he93907b<7e;29?j44<3:17d50z&a=650;194?6|,k218l5G2338L77e3A9>7)89:3`e?!3f2;1b?44?::k75?6=3fh?6=44}c027?6=;3:15<>{e:9=1<7=50;2x g>=??4H33a?M523-<=6?li;%7b>7=n;00;66g;1;29?jd32900qo<>1;291?6=8r.i47;?;I015>N59k1C?85+6781fc=#=h097d=6:188m6d=831b8<4?::ka7?6=3fh?6=44}c026?6=;3:15<>{e:9<1<7;50;2x g>==91C>??4H33a?M523-<=6?li;%7b>7=n;00;66g<>50;694?6|,k218k5G2338L77e3-?j6?5f3883>>o393:17dl<:188kg2=831vn?>i:187>5<7s-h369h4H302?M46j2.>m7<4i2;94?=n<80;66gm3;29?jd32900qoN59k1/9l4=;h1:>5<>ie<3:17pl=1883>1<729q/n54;f:J164=O:8h0(8o52:k0=?6=3`>:6=44ic194?=hj=0;66sm20:94?2=83:p(o654g9K677<@;;i7);n:39j7<<722c?=7>5;h`0>5<1<75rb01a>5<3290;w)l7:5d8L7463A8:n6*:a;58m6?=831b8<4?::ka7?6=3fh?6=44}c32f?6==3:12900e>j50;9j04<722ci?7>5;n`7>5<55;294~"e03>o7E<=1:J15g=#=h097d=6:188m6b=831b8<4?::ka7?6=3fh?6=44}c32`?6==3:12900e>j50;9j04<722ci?7>5;n`7>5<55;294~"e03>o7E<=1:J15g=#=h097d=6:188m6b=831b8<4?::ka7?6=3fh?6=44}c32b?6==3:12900e>j50;9j04<722ci?7>5;n`7>5<;7>55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c36=?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<n7>55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c36`?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<54;294~"e03>m7E<=1:J15g=#=h097d=6:188m17=831bn>4?::ma0?6=3th::=4?:583>5}#j10?j6F=209K64d<,6g<9;29?l262900eo=50;9lf1<722wi=4k50;794?6|,k218n5G2338L77e3-?j6?5f3883>>o4j3:17d=k:188m17=831dn94?::a5d6=83?1<7>t$c:90f=O:;;0D??m;%7b>7=n;00;66g>o4j3:17d=k:188m17=831dn94?::a5d5=83?1<7>t$c:90f=O:;;0D??m;%7b>7=n;00;66g>o4j3:17d=k:188m17=831dn94?::a5<>=83?1<7>t$c:90f=O:;;0D??m;%7b>7=n;00;66g>o4j3:17d=k:188m17=831dn94?::a5<0=83?1<7>t$c:915=O:;;0D??m;%7b>2=n;00;66g>o4l3:17d:>:188kg2=831vn<9n:187>5<7s-h369l4H302?M46j2.>m7<4i2;94?=n;m0;66g;1;29?jd32900qo?8b;290?6=8r.i47:m;I015>N59k1/9l4=;h1:>5<>ie<3:17pl>7b83>1<729q/n54;b:J164=O:8h0(8o52:k0=?6=3`9o6=44i5394?=hj=0;66sm16f94?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rb0:f>5<2290;w)l7:5a8L7463A8:n6*:a;08m6?=831b?o4?::k0`?6=3`>:6=44oc694?=zj82m6=4::183!d?2<:0D?<>;I02f>"2i3=0e>750;9j7g<722c?=7>5;h`0>5<1<75rb0;3>5<2290;w)l7:5a8L7463A8:n6*:a;08m6?=831b?o4?::k0`?6=3`>:6=44oc694?=zj83:6=4::183!d?2=i0D?<>;I02f>"2i380e>750;9j7g<722c8h7>5;h62>5<1<75rb06e>5<2290;w)l7:428L7463A8:n6*:a;58m6?=831b?o4?::k75?6=3`h86=44oc694?=zj8?96=4::183!d?2=i0D?<>;I02f>"2i380e>750;9j7g<722c8h7>5;h62>5<1<75rb073>5<2290;w)l7:5a8L7463A8:n6*:a;08m6?=831b?o4?::k0`?6=3`>:6=44oc694?=zj8?:6=4::183!d?2=i0D?<>;I02f>"2i380e>750;9j7g<722c8h7>5;h62>5<1<75rbba94?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbb`94?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbbc94?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbb;94?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbg094?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbg394?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbg294?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rbdd94?2=83:p(o654c9K677<@;;i7);n:39j7<<722c8h7>5;h62>5<1<75rb02g>5<3290;w)l7:5`8L7463A8:n6*:a;08m6?=831b?i4?::k75?6=3fh?6=44}c33g?6=<3:12900e>j50;9j04<722ei87>5;|`24g<72=0;6=u+b987f>N5:81C>o413:17d=k:188m17=831dn94?::a55g=83>1<7>t$c:90g=O:;;0D??m;%7b>7=n;00;66g1<7>t$c:90g=O:;;0D??m;%7b>7=n;00;66g1<7>t$c:90g=O:;;0D??m;%7b>7=n;00;66g1<7>t$c:90g=O:;;0D??m;%7b>7=n;00;66g1<7>t$c:90g=O:;;0D??m;%7b>7=n;00;66g1d<@;8:7E<>b:J01>"1>38ij6*:a;08m6?=831b?i4?::k75?6=3fh?6=44}c330?6=<3:15<>ie<3:17pl>0283>1<729q/n54;b:J164=O:8h0D>;4$7496g`<,6g<9;29?l5c2900e9?50;9lf1<722wi==<50;694?6|,k218o5G2338L77e3A9>7)89:3`e?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjml1<7:50;2x g>=??4H33a?M523-<=6?li;%7b>7=n;00;66g1<7>t$c:90g=O:;;0D??m;I16?!012;hm7);n:39j7<<722c8h7>5;h62>5<1<75rbef94?2=83:p(o654c9K677<@;;i7E=:;%45>7da3-?j6?5f3883>>o4l3:17d:>:188kg2=831vnim50;694?6|,k218o5G2338L77e3A9>7)89:3`e?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjm=1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjm<1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjm?1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjm>1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjon1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjoi1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjoh1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zjok1<7:50;2x g>=??4H33a?!3f2;1b?44?::k0`?6=3`>:6=44oc694?=zj8986=4;:183!d?2=h0D?<>;I02f>"2i380e>750;9j7a<722c?=7>5;n`7>5<54;294~"e03>i7E<=1:J15g=#=h097d=6:188m6b=831b8<4?::ma0?6=3th:?l4?:583>5}#j10?n6F=209K64d<,6g<9;29?l5c2900e9?50;9lf1<722wi=>950;694?6|,k218k5G2338L77e3-?j6:5f3883>>o393:17dl<:188kg2=831vn<=9:187>5<7s-h369h4H302?M46j2.>m794i2;94?=n<80;66gm3;29?jd32900qo?i2;291?6=8r.i47:l;I015>N59k1/9l4=;h1:>5<>o393:17bl;:188yg7a;3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg7am3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg4783:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg47:3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg47<3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg7a=3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg7a?3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg7a13:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg7aj3:197>50z&aN59k1/9l4=;h1:>5<>o393:17bl;:188yg7d=3:1h7>50z&a5;h11>5<>o3=3:17d:9:188m11=831b854?::k15`<722c9=k4?::ma3?6=3f>?6=44}c3a=?6=l3:1>o493:17d==:188m65=831b8<4?::k71?6=3`>=6=44i5594?=n<10;66g=1d83>>o59o0;66am7;29?j232900qo?l4;29`?6=8r.i47l:;I015>N59k1b?=4?::k05?6=3`996=44i2194?=n<80;66g;5;29?l212900e9950;9j0=<722c9=h4?::k15c<722ei;7>5;n67>5<5d;294~"e03h>7E<=1:J15g=n;90;66g<1;29?l552900e>=50;9j04<722c?97>5;h65>5<>o59l0;66g=1g83>>ie?3:17b:;:188yg7d?3:1h7>50z&a5;h11>5<>o3=3:17d:9:188m11=831b854?::k15`<722c9=k4?::ma3?6=3f>?6=44}c3`e?6=l3:1>o493:17d==:188m65=831b8<4?::k71?6=3`>=6=44i5594?=n<10;66g=1d83>>o59o0;66am7;29?j232900qo?l8;29`?6=8r.i47l:;I015>N59k1b?=4?::k05?6=3`996=44i2194?=n<80;66g;5;29?l212900e9950;9j0=<722c9=h4?::k15c<722ei;7>5;n67>5<5d;294~"e03h>7E<=1:J15g=n;90;66g<1;29?l552900e>=50;9j04<722c?97>5;h65>5<>o59l0;66g=1g83>>ie?3:17b:;:188yg7dj3:1h7>50z&a5;h11>5<>o3=3:17d:9:188m11=831b854?::k15`<722c9=k4?::ma3?6=3f>?6=44}c3ae?6=l3:1>o493:17d==:188m65=831b8<4?::k71?6=3`>=6=44i5594?=n<10;66g=1d83>>o59o0;66am7;29?j232900qo?md;29`?6=8r.i47l:;I015>N59k1b?=4?::k05?6=3`996=44i2194?=n<80;66g;5;29?l212900e9950;9j0=<722c9=h4?::k15c<722ei;7>5;n67>5<5d;294~"e03h>7E<=1:J15g=n;90;66g<1;29?l552900e>=50;9j04<722c?97>5;h65>5<>o59l0;66g=1g83>>ie?3:17b:;:188yg7ek3:1h7>50z&a5;h11>5<>o3=3:17d:9:188m11=831b854?::k15`<722c9=k4?::ma3?6=3f>?6=44}c3aa?6=l3:1>o493:17d==:188m65=831b8<4?::k71?6=3`>=6=44i5594?=n<10;66g=1d83>>o59o0;66am7;29?j232900qo?mf;29`?6=8r.i47l:;I015>N59k1b?=4?::k05?6=3`996=44i2194?=n<80;66g;5;29?l212900e9950;9j0=<722c9=h4?::k15c<722ei;7>5;n67>5<5d;294~"e03h>7E<=1:J15g=n;90;66g<1;29?l552900e>=50;9j04<722c?97>5;h65>5<>o59l0;66g=1g83>>ie?3:17b:;:188yg7d93:1h7>50z&a5;h11>5<>o3=3:17d:9:188m11=831b854?::k15`<722c9=k4?::ma3?6=3f>?6=44}c3`6?6=l3:1>o493:17d==:188m65=831b8<4?::k71?6=3`>=6=44i5594?=n<10;66g=1d83>>o59o0;66am7;29?j232900qo?l3;29`?6=8r.i47l:;I015>N59k1b?=4?::k05?6=3`996=44i2194?=n<80;66g;5;29?l212900e9950;9j0=<722c9=h4?::k15c<722ei;7>5;n67>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3bb?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3b`?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3bf?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3b=?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3a2900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3a2?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3a0?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3a6?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3b3?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c021?6=;3:1o2>3:17d;8:188kdb=831vn?>n:180>5<7s-h36;>4H302?M46j2.>m7??;h75>5<>{e91=1<7=50;2x g>=>91C>??4H33a?!3f28i0e8850;9j12<722ejh7>5;|`233<72:0;6=u+b9854>N5:81C>N59k1/9l4>c:k62?6=3`?<6=44o`f94?=zjj>1<7=50;2x g>=>91C>??4H33a?!3f28i0e8850;9j12<722ejh7>5;|``7?6=;3:1o2>3:17d;8:188kdb=831vnn<50;194?6|,k21:=5G2338L77e3-?j60;66and;29?xdem3:1?7>50z&a:7>5;h74>5<53;294~"e03<;7E<=1:J15g=#=h0:o6g:6;29?l302900clj50;9~f455290?6=4?{%`;>34<@;8:7E<>b:&6e?443`?=6=44i4594?=n=10;66and;29?xd6010;694?:1y'f=<1:2B9><5G20`8 0g=:81b9;4?::k63?6=3`?36=44o`f94?=zj8>26=4;:183!d?2?80D?<>;I02f>"2i38:7d;9:188m01=831b954?::mb`?6=3th:?44?:483>5}#j10=?6F=209K64d<,>o2?3:17d;7:188m0?=831dmi4?::a5=?=83?1<7>t$c:926=O:;;0D??m;%7b>74>o203:17d;6:188kdb=831vn<:n:186>5<7s-h36;=4H302?M46j2.>m7<=;h75>5<>o213:17bok:188yg74=3:197>50z&a:7>5;h74>5<>ifl3:17pl>2d83>1<729q/n5492:J164=O:8h0(8o5e:k62?6=3`?<6=44i4:94?=him0;66sm16594?3=83:p(o65629K677<@;;i7);n:0`8m00=831b9:4?::k6;I02f>"2i3h0e8850;9j12<722ejh7>5;|`26a<72<0;6=u+b9857>N5:81C>o2>3:17d;8:188m0>=831b944?::mb`?6=3th:>k4?:283>5}#j10=<6F=209K64d<,>o2?3:17bok:188yg70;3:1?7>50z&a:7>5;h74>5<5<4290;w)l7:728L7463A8:n6*:a;0;?l312900e8950;9lea<722wink4?:283>5}#j10=<6F=209K64d<,>o2?3:17bok:188ygd>29086=4?{%`;>36<@;8:7E<>b:&6e?7d3`?=6=44i4594?=him0;66sm10c94?3=83:p(o65629K677<@;;i7);n:058m00=831b9:4?::k6;6=4::183!d?2?90D?<>;I02f>"2i38>7d;9:188m01=831b954?::k6=?6=3fko6=44}c375?6==3:1o2>3:17d;8:188m0>=831b944?::mb`?6=3th::;4?:483>5}#j10=?6F=209K64d<,l5f5783>>o2?3:17d;7:188m0?=831dmi4?::a531=83?1<7>t$c:926=O:;;0D??m;%7b>7g>o203:17d;6:188kdb=831vn<87:186>5<7s-h36;=4H302?M46j2.>m75<>o213:17bok:188yg71=3:197>50z&a:7>5;h74>5<>ifl3:17pl>3e83>0<729q/n5493:J164=O:8h0(8o52`9j13<722c>;7>5;h7;>5<>{e9?o1<7;50;2x g>=>:1C>??4H33a?!3f2;n0e8850;9j12<722c>47>5;h7:>5<5<2290;w)l7:718L7463A8:n6*:a;18m00=831b9:4?::k6=>;1C>??4H33a?!3f2;h0e8850;9j12<722c>47>5;ncg>5<;I02f>"2i38i7d;9:188m01=831b954?::mb`?6=3th:>;4?:483>5}#j10=?6F=209K64d<,n5f5783>>o2?3:17d;7:188m0?=831dmi4?::a57e=83?1<7>t$c:926=O:;;0D??m;%7b>1c>o203:17d;6:188kdb=831vn<5<7s-h36;=4H302?M46j2.>m784i4494?=n=>0;66g:8;29?l3>2900clj50;9~f40d290>6=4?{%`;>35<@;8:7E<>b:&6e?253`?=6=44i4594?=n=10;66g:9;29?jgc2900qo?9b;297?6=8r.i478?;I015>N59k1/9l4m;h75>5<>{e9;91<7;50;2x g>=>:1C>??4H33a?!3f2<1b9;4?::k63?6=3`?36=44i4;94?=him0;66sm16294?3=83:p(o65629K677<@;;i7);n:0g8m00=831b9:4?::k6;I02f>"2i39?7d;9:188m01=831b954?::k6=?6=3fko6=44}c35b?6==3:1o2>3:17d;8:188m0>=831b944?::mb`?6=3th::94?:583>5}#j10=>6F=209K64d<,95f5783>>o2?3:17d;7:188kdb=831vn<=j:186>5<7s-h36;=4H302?M46j2.>m7;>;h75>5<>o213:17bok:188yg7513:197>50z&a:7>5;h74>5<>ifl3:17pl>2983>0<729q/n5493:J164=O:8h0(8o51e9j13<722c>;7>5;h7;>5<>{e9?n1<7;50;2x g>=>:1C>??4H33a?!3f2;o0e8850;9j12<722c>47>5;h7:>5<=>:1C>??4H33a?!3f28l0e8850;9j12<722c>47>5;h7:>5<5<3290;w)l7:708L7463A8:n6*:a;a8m00=831b9:4?::k62900e>l50;9j7a<722c?=7>5;n`7>5<o7>55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c3:b?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c36a?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<47>55;294~"e03>h7E<=1:J15g=#=h097d=6:188m6d=831b?i4?::k75?6=3fh?6=44}c36e?6==3:12900e>l50;9j7a<722c?=7>5;n`7>5<52;294~"e03?i7E<=1:J15g=n=<0;66and;29?xd6<>0;6?4?:1y'f=<2j2B9><5G20`8m03=831dmi4?::a54?=83<1<7>t$c:921=O:;;0D??m;%7b>4d>o203:17d;6:188k0b=831dmi4?::a540=8391<7>t$c:924=O:;;0D??m;%7b>7>>i2l3:17pl>7483>3<729q/n5494:J164=O:8h0(8o5269j13<722c>;7>5;h7;>5<>ifl3:17pl>1983>3<729q/n5494:J164=O:8h0(8o5279j13<722c>;7>5;h7;>5<>ifl3:17pl>6283>0<729q/n5495:J164=O:8h0(8o54:k62?6=3`?<6=44i4:94?=n=00;66a:d;29?xd6;o0;684?:1y'f=<1=2B9><5G20`8 0g=:01b9;4?::k63?6=3`?36=44i4;94?=h=m0;66sm13394?3=83:p(o65649K677<@;;i7);n:3d8m00=831b9:4?::k6;6;;0>463>3886=>;6;<0>563>2d862>;6:m0>:6s|22094?7dsW8886P=289]6f4;_0;a>X51l1U>>?4^313?[45n2T9>h5Q23f897452<901??>:53897612=;01???:538976a2=;01?>j:538977>2=;01??7:538947e2k901650=j:1v?6;:181[4?<27:?:4m4:p6f`=839pR?mi;<3;5?3134;=87;9;|q1e`<72<>pR?oj;<03348;;7=6;<032?5>348:<7=6;<03b?5>348;i7=6;<30f?5>34;:n7=6;<32g?5>34;:h7=6;<32a?5>34;:j7=6;<363?5>34;>57=6;<36f?5>34;>h7=6;<37b?5>34;>>7=6;<364?5>34;>=7=6;6?<5o;1?452f180=>;bn39270??d;1:?877k39270??b;1:?877i39270??5;1:?877<39270??3;1:?877:39270j8:2;89a0=;016h84<9:?g0?5>34;8?7=6;<304?5>34;8m7=6;<303?5>34;8:7=6;<3e6?5>34;m?7=6;<3e`?5>34;mi7=6;<3eb?5>348;<7=6;<035?5>348;>7=6;<037?5>348;87=6;<3e0?5>34;m97=6;<3e2?5>34;m;7=6;<3e34;m57=6;<3ee?5>34;mn7=6;<3eg?5>34;i<7=6;<3bb?5>34;ji7=6;<3b`?5>34;jo7=6;<3bf?5>34;jm7=6;<3b=?5>34;j47=6;<3a34;i;7=6;<3a2?5>34;i97=6;<3a0?5>34;i?7=6;<3a6?5>34;i=7=6;<3b3?5>34;j:7=6;<36g?5>34;>i7=6;<3634;>m7=6;|q15o4=042>g253gy]6f5<5;;86>74=332>6?<5;;96>74=33:>6?<5;;36>74=042>6?<58<;6>74=0;f>6?<58k;6>74=0c1>6?<58k86>74=0;:>6?<58336>74=0;4>6?<583=6>74=05:>6?<58=j6>74=05a>6?<58=h6>74=05g>6?<582n6>74=0:e>6?<583;6>74=0;2>6?<5ji1?452cc80=>;di39270m6:2;89`1=;016i;4<9:?f1?5>34o?6>74=ed97<=:ll08563kd;1:?8bd2:301kj5389>bf<4127mn7=6;6?<58i>6??j;<3a=?46m27:o94=1d9>5f0=:8o01c9815`=:9j31>77b34;im7<>e:?2fa<59l16=ol520g894dd2;;n70?me;02a>;6jo09=h521b2964c<58i:6??j;<3`6?46m27:o>4=1d9>5d2=;016=4h5389>5d7=;01v?mj:181[4d027:;i4m4:p6fe=838pR?m8;<34g?d33ty9oo4?:3y]6f0<58=i6o:4}r0`e?6=:rT9o85216c9f1=z{;i26=4={_0`0>;6?00i86s|26;94?4|V;<=70?m0;`7?xu5?>0;6?uQ277894ga2k>0q~<86;296~X5>=16=lk5b59~w7122909wS<93:?2ea::50;0xZ70534;jo7l;;|q136<72;qU>;?4=0ca>g27>52z\125=:9hk1n95rs352>5<5sW8>j63>a88a0>{t:>:1<77}Y:?o01vP=6e9>5g1=j=1v?6?:181[41k27:n;4m4:p62`=838pR?8m;<3a1?d33ty9;h4?:3y]63g<58h?6o:4}r04`?6=:rT9:4521c19f1=z{;=h6=4={_05<>;6j;0i86s|26`94?4|V;<<70?m1;`7?xu5?h0;6?uQ24f894g02k>0q~<9f;296~X5=j16=l85b59~w7d>2909wSo950;0xZ7d534;:i7l;;|q1f3<72;qU>o?4=03g>g252z\1f5=:98i1n95rs3`7>5<5sW8jj63>1c8a0>{t:<81<7:7p}=5183>7}Y::o01vP=3e9>5f7=<81v?:j:181[44k27:o=4;1:p61b=838pR?=m;<3ab?263ty98n4?:3y]66g<58hn69?4}r07f?6=:rT9?4521cf904=z{;>j6=4={_00<>;6jj0?=6s|25;94?4|V;9<70?mb;62?xu5=k0;6?uQ255894df2=;0q~<:a;296~X52909wS<;5:?2gd<392wx>8650;0xZ72334;h57:>;|q112<72;qU>9=4=0a;>17:7>52z\107=:9j=18<5rs376>5<5sW8?=63>c7875>{t:<>1<7:7p}=5283>7}Y::<01vP=349>5g?=<81v?>8:18084703>:7039i7p}=0983>7}::921n95221c913=z{;;96=4<{<027?26348:=7=m;<026?d33ty9=>4?:3y>645=j=16><;5579~w7612908w03h?70u22039f1=::8818<52207912=z{;:26=4;{<024?d4348;j7l<;<03a?d4348;m7ok;|q14a<728ip1???:c68945e2k901:2f894542:n01<=?:2f8945f2:n01<=8:c1894512k901<<;:458944d2<=01<<<:4;894472<=01<;l:2f8943b2:n01<;7:2f8943f2:n0q~;a939o70h?:2f89``=;m16==j53e9>55e=;m16==l53e9>55g=;m16==;53e9>552=;m16===53e9>554=;m16h:46>j4=e697a=z{;:i6=4=7z?14`4<:50;1x977>2k901??7:c1897722hn0q~<>7;2952}::831n9521739f6=:9?:1n>5218g97a=:9h:1?i521`097a=:9h91?i5218;97a=:9021?i5218597a=:90<1n>5216;97a=:9>k1?i5216`97a=:9>i1?i5216f97a=:91o1?i5219d9f6=:90:1?i5218397a=:9h>1?i5218d97a=:9h;1?i5rs335>5<69r79=54m4:?`g?5c34ii6>j4=bc97a=:k008h63j7;1g?8c12:n01h;53e9>a1<4l27oj7=k;6b<5mn1?i52db80`>;al39o70hl:2f89cd=;m16jl434862>;6:m0>;6s|13294?4|58;i69?4=003>db7>52z?25f<3927:>94nd:p573=838p1298b`>{t9;k1<717<588i6lj4}r36b?6=:8q6=8953c9>50?=;k16=8l53c9>50b=;k16=9h53c9>504=;k16=8>53c9>507=;k16=k<53c9>5c5=;k16=kj53c9>5cc=;k16=kh53c9>656=;k16>=?53c9>654=;k16>==53c9>652=;k16=k:53c9>5c3=;k16=k853c9>5c1=;k16=k653c9>5c?=;k16=ko53c9>5cd=;k16=km53c9>57b=im16=>k5599>50e=;k16=8k53c9>50>=;k16=8o53c9~w42e2903w0?:7;62?873n3h?70?;8;74?87313?370?;a;7;?87393?=70?:8;62?873?3?>7p}>5283>40|58?<6o:4=0a6>13<58h269;4=0a7>13<58i=69;4=0a4>13<58ij69;4=0a;>13<58i269;4=0aa>13<58hj69;4=0`g>13<58hi69;4=0``>13<58hn69;4=0`e>13<58i;69;4=0a2>13<58i969;4=0a0>13<5ko19:5213391<=z{8>h6=48{<36=?2634;><7l;;<372k>012=<012=<01:54894e52=<0101<:6:448942f2<301<=k:448943d2=;0q~?:5;295=}:9:63mc;74?876i3?<70?=9;74?xu68z?21a;<3`1?2?34;i57:7;<3`0?2?34;h:7:7;<3`3?2?34;hm7:7;<3`7:7;<3`7?2?34hh6884=00;>01<589m6894}r356?6=;r7::<4;1:?225<3927::84nd:p536=839p1<8?:c6894>62<=01<8<:458yv7f=3:1>>u218g97g=:9h:1?o521`097g=:9h91?o5218;97g=:9021?o5218597g=:90<1?o5219g97g=:91l1?o5218297g=:90;1?o521b7964`<58h26??i;<3`0?46n27:o;4=1g9>5f1=:8l01c8815c=:9jh1>77a34;ih7<>f:?2fg<59o16=om520d894db2;;m70?mf;02b>;6k909=k521b3964`<58i96??i;<3`7?46n27:4<4nd:?2e1<4j27:5k4i3:1=5u218g9f1=:9j?1?=521c;975=:9j>1?=521b4975=:9j=1?=521bc975=:9j21?=521b;975=:9jh1?=521cc975=:9kn1?=521c`975=:9ki1?=521cg975=:9kl1?=521b2975=:9j;1?=521b0975=:9j91?=52164913=:k=0>;63>7686=>;6>m0>56s|18194?2|58k;69?4=0;4>g2<58<=6884=0c2>17519y>5d6=j=16=n;5309>5g?=;816=n:5309>5f0=;816=n95309>5fg=;816=n65309>5f?=;816=nl5309>5gg=;816=oj5309>5gd=;816=om5309>5gc=;816=oh5309>5f6=;816=n?5309>5f4=;816=n=5309>g1<2>27h?7;8;<343?3?34;=h7;8;|q2=1<72:q6=l<5409>5<>=j=16=;95599~w4?d290:mv3>a38a0>;6k<08>63>b8806>;6k=08>63>c7806>;6k>08>63>c`806>;6k108>63>c8806>;6kk08>63>b`806>;6jm08>63>bc806>;6jj08>63>bd806>;6jo08>63>c1806>;6k808>63>c3806>;6k:08>63l3;75?8e52<=01<8j:458940d2<=01<9?:4;894162<30q~?65;290~;6i:0?=63>988a0>;6>>0>:63>a5875>{t90n1<7?7{<3b7?d334lo69?4=0a6>65<58h26>=4=0a7>65<58i=6>=4=0a4>65<58ij6>=4=0a;>65<58i26>=4=0aa>65<58hj6>=4=0`g>65<58hi6>=4=0``>65<58hn6>=4=0`e>65<58i;6>=4=0a2>65<58i96>=4=0a0>65<5j819;5216291==:9>;1955rs0:g>5<3s4;257:>;<3:5?d334;357;9;<355<>=<816=4>5b59>5=>==?16=575599>535==?1v<6m:18587>?3>:70?7f;`7?87??3?=70?78;74?87?13?270?98;7;?xu60h0;6:u2184904=:91o1n952195912=:9121955219;912=:9?>19:52194910=z{8=36=4={<34=?2634;<:7ok;|q23`<72;q6=:o5409>53b=im1v<9i:181870j3>:70?9e;cg?xu6090;6?u216a904=:9?l1mi5rs04b>5<5s4;;<35f?gc3ty:4?4?:3y>5=c=<816=585ae9~w4>42909w0?7f;62?87??3ko7p}>8583>7}:90:18<5219:9ea=z{82>6=4={<3:5?2634;357ok;|q206<72;q6=9h5409>511=im1v<:9:181872:3>:70?;a;cg?xu6<=0;6?u2142904=:9=21mi5rs066>5<5s4;>=7:>;<37=?gc3tyn?7>55z?`g?2634o<6o:4=c;912=:jh0>;63mb;74?xud03:1:v3lc;`7?870;3?<70?97;74?87103?<70?80;75?87093?=7p}ld;296~;dj3>:70l6:`f8yve0290530==>16=;65589>53b==?16=:;5599~wf`=838p1n75409>fgg<fc<2?27h<7;8;01g2<58>:6874=00;>00<58;=6894=01e>0017<5kl1mi5rsdf94?3|5o;1n952106912=:98k19;5212f912=:9;319;5rsg694?4|5o:18<52c18b`>{tmj0;68u2f18a0>;6<90>463>3e86=>;6900>463>19862>{tn<0;6?u2eg875>;d93ko7p}jb;292~;bn3h?70?;0;7:?87393?<70?>9;7:?87603?<70?=1;7;?xu6880;6?u211f904=:99?1n95rs023>5<5s4;;o7:>;<330?d33ty:<54?:5y>55e=j=16nk4:6:?`4?3134i:6884}rde>5<5s4;;n7:>;<337?d33ty:<:4?:2y>55d=j=16o=4:8:?`5?3?3tymi7>52z?24d<3927:n:c689f7==01vil50;0x9`1=<816hk4m4:p`d<72;q6i;4;1:?ga?d33tyn>7>54z?f2?d334h26884=cc913=:jk0>:6s|d883>7}:m<0?=63kd;`7?xub93:1?v3j5;`7?8df2<201ol5599~wa>=838p1h:5409>`fa152z?241<3927mo7l;;|qe3?6=:r7:<>4;1:?ef?d33tym:7>52z?247<3927mm7l;;|qg7?6=:r7oj7:>;g217<5m<1n95rse394?4|5mn18<52d48a0>{tl90;6?u2db875>;c<3h?7p}j8;296~;c>3>:70ll:`f8yvc>2909w0j::5389gb=im1vho50;0x9a2=<816nh4nd:p55c=838p1km5409>g74nd:p546=838p1ko5409>g1:50;0x94542=;01<=::`f8yv74;3:15v3>328a0>;6;;0>;63>3886<>;6;<0>463>2d86<>;6:m0>563>2g863>;6::0>;63>20863>{t9:;1<7=t=013>17<589j69?4=011>db59z?275i4:8:?26c<2>27:>>4:6:?264<2>2wx=>o50;7x945f2k>01<<;:448944d2<<01<<<:4:894472<<0q~?<8;297~;6;>0?=63>37875>;6;00jh6s|12494?4|589=6o:4=01:>0052z?2b7<3927:n44;4:p5a`=838p1c5870>{t9l31<7g2<58k<69?4}r3g3?6=:r7:ji4;1:?2g0<3<2wx=ho50;0x94`c2k>01:538yv7c03:1>v3>fd875>;6k?0?86s|1d`94?4|58ln6o:4=0`1>1752z?2bc<3927:o:4;4:p5`e=838p1c9870>{t9ln1<7g2<58h?69?4}r3gf?6=:r79<<4;1:?2g<<3<2wx=hk50;0x97662k>01v3=03875>;6kh0?86s|1dd94?4|5;:96o:4=0`5>1752z?146<3927:oo4;4:p5c6=838p1?><:c6894d02=;0q~?ke;296~;58=0?=63>b`870>{t9o;1<7g2<58h369?4}r3``?6=:r7:j94;1:?2fg<3<2wx=h>50;0x94`32k>01v3>f4875>;6jj0?86s|1d394?4|58l>6o:4=0c:>1752z?2b3<3927:ni4;4:p5`4=838p10?=63>bd870>{t9l91<7g2<58ki69?4}r3g5?6=:r7:j54;1:?2fc<3<2wx=h:50;0x94`?2k>01v3>f8875>;6k90?86s|1d794?4|58l26o:4=0cg>1752z?2bd<3927:o<4;4:p5`0=838p1c3870>{t9l=1<7g2<58km69?4}r3g1?6=:r7:jn4;1:?2g6<3<2wx=h650;0x94`d2k>011?o521c197g=:9k81?o521c397g=:9h=1?o521`497g=:9;o1mi5rs04:>5<3s4;<;7ok;<35a?3>34;=n7;9;<35b?3>3ty:8?4?:2y>57`=im16=?:5599>57d==?1v5<5s4;:87;9;<36g?d33ty:=>4?:5y>542=im16=?85579>57e==116=>h5599~w4722909w0?>a;7;?876>3?o7p}>1683>1}:98k1945213491==:9;31955210:9ea=z{8;:6=4={<32e?gc34;9n7;6;|q21=<72=q6=9>5579>50>=j=16=<75569>54>==11v<;n:18787383?<70?:a;`7?87613?=70?>8;7:?xu6<90;6?u21529ea=:9:l1945rs062>5<5s4;?=7ok;<30a?303ty::;4?:3y>530=im16=;;5579~w4002909w0?97;cg?871=3?<7p}>6983>7}:9?21mi5217791==z{8<86=4={<351?3>34;=?7;k;|q42wx=::50;1x940b2<201<8i:44894122hn0q~?>2;290~;6:=0>563>27863>;6:k0>;63>188b`>{t>00;6>u213491<=:9;91mi5213:91==z{191<70?<58;368j4}r5:>5<5s4;9o7ok;<31f?3?3ty3>7>52z?22f<2127:;84:d:p3d<72;q6=;m5ae9>53d==>1v:l50;0x94172hn01<8i:4:8yv1d2909w0?81;cg?871n3?<7p}8d;296~;6>=0jh63>6286=>{t?l0;6?u212g91<=:9:l19i5rs9394?4|58826874=03:>0b=4:8:?264<2l2wx=4h50;0x94?a2k>01<9::448yv7f93:1>v3>a08a0>;6?<0>;6s|14g94?4|58?n6o:4=035>00>h4$33b>=?<7>52z\17`=:;>09?h5+20c9=5=z{;>m6=4={_00`>;4?388h6*=1`8:f>{t:=o1<7a;c1?xu5vP=3`9>72<5;h1/>75?3-8:m78k;|q10<<72;qU>>94=259661<,;;j6;k4}r06f?6=:rT98:52368102=#:8k1:k5rs37b>5<5sW8?:63<7;072>"59h0<<6s|24;94?4|V;>>70=8:366?!46i3=:7p}=5983>7}Y:=>01>952568 77f2>80q~<:7;296~X5<:16?:4=429'64g=?:1v?;9:181[43:278;7<;2:&15d<0<2wx>8;50;0xZ726349<6?:>;%02e?123ty9994?:3y]616<5:=1>9>4$33b>20?7>52z\173=:;>09?;5+20c932=z{;>36=4={_001>;4?38896*=1`84<>{t:ho1<7a;:7?xu5jh0;6?uQ2cc8961=:kk0(??n:978yv4ek3:1>vP=bb9>72<5jj1/>7ea3-8:m767;|q13<<72;qU>;84=259630<,;;j65o4}r043?6=:rT9:852368120=#:8k14o5rs355>5<5sW8=863<7;050>"59h03o6s|26794?4|V;<870=8:340?!46i32o7p}=7583>7}Y:?801>952708 77f21o0q~<83;296~X5>816?:4=609'64g=0o1v?9=:181[418278;7<90:&15d<>92wx>:?50;0xZ73a349<6?;i;%02e??53ty9;=4?:3y]60c<5:=1>8k4$33b><57>52z\12`=:;>09:h5+20c9=1=z{;2:6=4={_05`>;4?38=h6*=1`8:1>{t:1:1<7a;;5?xu5?o0;6?uQ27`8961=:?h0(??n:858yv40m3:1>vP=6`9>72<5>h1/>70?3-8:m77n;|q13g<72;qU>;94=259631<,;;j64m4}r04e?6=:rT99i5236811a=#:8k15i5rs34e>5<5sW8>o63<7;06g>"59h02i6s|29694?4|V;2?70=8:3:7?!46i33m7p}=8`83>7}Y:1k01>9529c8 77f2h:0q~o850;0xZ7d6349<6?l>;%02e?g33ty9n84?:3y]6g6<5:=1>o>4$33b>d352z\1ec=:;>09mk5+20c9e3=z{;in6=4={_0`<>;4?38h46*=1`8b3>{t:ji1<7a;c;?xu5kk0;6?uQ2b48961=:j<0(??n:`;8yv4di3:1>vP=c49>72<5k<1/>2909wSb:m2g0=838pD??m;|l5f2<72;qC>5<5sA8:n6sa6cc94?4|@;;i7p`9bc83>7}O:8h0qc8mc;296~N59k1vb;lk:181M46j2we:ok50;0xL77e3td=nk4?:3yK64d52zJ15g=zf?i:6=4={I02f>{i>j81<7vF=1c9~j3e22909wE<>b:m2f0=838pD??m;|l5g2<72;qC>5<5sA8:n6sa6bc94?4|@;;i7p`9cc83>7}O:8h0qc8lc;296~N59k1vb;mk:181M46j2we:nk50;0xL77e3td=ok4?:3yK64d52zJ15g=zf?n:6=4={I02f>{i>m81<7vF=1c9~j3b22909wE<>b:m2a0=838pD??m;|l5`2<72;qC>5<5sA8:n6sa6ec94?4|@;;i7p`9dc83>7}O:8h0qc8kc;296~N59k1vb;jk:181M46j2we:ik50;0xL77e3td=hk4?:3yK64d52zJ15g=zf?o:6=4={I02f>{i>l81<7vF=1c9~j3c22909wE<>b:m2`0=838pD??m;|l5a2<72;qC>5<5sA8:n6sa6dc94?4|@;;i7p`9ec83>7}O:8h0qc;l8;295~N59k1vb8hi:182M46j2we:=>50;3xL77e3td=<<4?:0yK64d7>51zJ15g=zf?:86=4>{I02f>{i>9>1<7?tH33a?xh18<0;63:1=vF=1c9~j360290:wE<>b:m25>=83;pD??m;|l54<<728qC>5<6sA8:n6sa61a94?7|@;;i7p`90e83>4}O:8h0qc8?e;295~N59k1vb;>i:182M46j2we:<>50;3xL77e3td==<4?:0yK64d7>51zJ15g=zf?;86=4>{I02f>{i>8>1<7?tH33a?xh19<0;63:1=vF=1c9~j370290:wE<>b:m24>=83;pD??m;|l55<<728qC>5<6sA8:n6sa60a94?7|@;;i7p`91e83>4}O:8h0qc8>e;295~N59k1vb;?i:182M46j2we:?>50;3xL77e3td=><4?:0yK64d7>51zJ15g=zf?886=4>{I02f>{i>;>1<7?tH33a?xh1:<0;63:1=vF=1c9~j340290:wE<>b:m27>=83;pD??m;|l56<<728qC>5<6sA8:n6sa63a94?7|@;;i7p`92e83>4}O:8h0qc8=e;295~N59k1vb;>50;3xL77e3td=?<4?:0yK64d7>51zJ15g=zf?986=4>{I02f>{i>:>1<7?tH33a?xh1;<0;63:1=vF=1c9~j350290:wE<>b:m26>=83;pD??m;|l57<<728qC>5<6sA8:n6sa62a94?7|@;;i7p`93e83>4}O:8h0qc850;3xL77e3td=8<4?:0yK64d7>51zJ15g=zf?>86=4>{I02f>{i>=>1<7?tH33a?xh1<<0;63:1=vF=1c9~j320290:wE<>b:m21>=83;pD??m;|l50<<728qC>5<6sA8:n6sa65a94?7|@;;i7p`94e83>4}O:8h0qc8;e;295~N59k1vb;:i:182M46j2we:8>50;3xL77e3td=9<4?:0yK64d>7>51zJ15g=zf??86=4>{I02f>{i><>1<7?tH33a?xh1=<0;63:1=vF=1c9~j330290:wE<>b:m20>=83;pD??m;|l51<<728qC>5<6sA8:n6sa64a94?7|@;;i7p`95e83>4}O:8h0qc8:e;295~N59k1vb;;i:182M46j2we:;>50;3xL77e3td=:<4?:0yK64d7>51zJ15g=zf?<86=4>{I02f>{i>?>1<7?tH33a?xh1><0;63:1=vF=1c9~j300290:wE<>b:m23>=83;pD??m;|l52<<728qC>5<6sA8:n6sa67a94?7|@;;i7p`96e83>4}O:8h0qc89e;295~N59k1vb;8i:182M46j2we::>50;3xL77e3td=;<4?:0yK64d7>51zJ15g=zf?=86=4>{I02f>{i>>>1<7?tH33a?xh1?<0;63:1=vF=1c9~j310290:wE<>b:m22>=83;pD??m;|l53<<728qC>5<6sA8:n6sa66a94?7|@;;i7p`97e83>4}O:8h0qc88e;295~N59k1vb;9i:182M46j2we:5>50;3xL77e3td=4<4?:0yK64d7>51zJ15g=zf?286=4>{I02f>{i>1>1<7?tH33a?xh10<0;63:1=vF=1c9~j3>0290:wE<>b:m2=>=83;pD??m;|l5<<<728qC>5<6sA8:n6sa69a94?7|@;;i7p`98e83>4}O:8h0qc87e;295~N59k1vb;6i:182M46j2we:4>50;3xL77e3td=5<4?:0yK64d7>51zJ15g=zf?386=4>{I02f>{i>0>1<7?tH33a?xh11<0;6>3:1=vF=1c9~j3?0290:wE<>b:m2<>=83;pD??m;|l5=<<728qC>5<6sA8:n6sa68a94?7|@;;i7p`99e83>4}O:8h0qc86e;295~N59k1vb;7i:182M46j2we:l>50;3xL77e3td=m<4?:0yK64d7>51zJ15g=zf?k86=4>{I02f>{i>h>1<7?tH33a?xh1i<0;63:1=vF=1c9~j3g0290:wE<>b:m2d>=83;pD??m;|l5e<<728qC>5<6sA8:n6sa6`a94?7|@;;i7p`9ae83>4}O:8h0qc8ne;295~N59k1vb;oi:182M46j2we:o>50;3xL77e3td=n<4?:0yK64d7>51zJ15g=zf?h86=4>{I02f>{i>k>1<7?tH33a?x{zuIJHw:jn:6ffgc05=tJKNv>r@ARxyEFuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk.v000066400000000000000000000122661224274632000216750ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_16x19_2clk.v when simulating // the core, fifo_xlnx_16x19_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_16x19_2clk( din, rd_clk, rd_en, rst, wr_clk, wr_en, dout, empty, full, rd_data_count, wr_data_count); input [18 : 0] din; input rd_clk; input rd_en; input rst; input wr_clk; input wr_en; output [18 : 0] dout; output empty; output full; output [4 : 0] rd_data_count; output [4 : 0] wr_data_count; // synthesis translate_off FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(5), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(19), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(19), .C_ENABLE_RLOCS(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(1), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(0), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(1), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(1), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(2), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("512x36"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(15), .C_PROG_FULL_THRESH_NEGATE_VAL(14), .C_PROG_FULL_TYPE(0), .C_RD_DATA_COUNT_WIDTH(5), .C_RD_DEPTH(16), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(4), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(1), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(5), .C_WR_DEPTH(16), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(4), .C_WR_RESPONSE_LATENCY(1)) inst ( .DIN(din), .RD_CLK(rd_clk), .RD_EN(rd_en), .RST(rst), .WR_CLK(wr_clk), .WR_EN(wr_en), .DOUT(dout), .EMPTY(empty), .FULL(full), .RD_DATA_COUNT(rd_data_count), .WR_DATA_COUNT(wr_data_count), .CLK(), .INT_CLK(), .BACKUP(), .BACKUP_MARKER(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .RD_RST(), .SRST(), .WR_RST(), .ALMOST_EMPTY(), .ALMOST_FULL(), .DATA_COUNT(), .OVERFLOW(), .PROG_EMPTY(), .PROG_FULL(), .VALID(), .UNDERFLOW(), .WR_ACK(), .SBITERR(), .DBITERR()); // synthesis translate_on endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk.veo000066400000000000000000000061571224274632000222230ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_16x19_2clk YourInstanceName ( .din(din), // Bus [18 : 0] .rd_clk(rd_clk), .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), .wr_en(wr_en), .dout(dout), // Bus [18 : 0] .empty(empty), .full(full), .rd_data_count(rd_data_count), // Bus [4 : 0] .wr_data_count(wr_data_count)); // Bus [4 : 0] // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_16x19_2clk.v when simulating // the core, fifo_xlnx_16x19_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk.xco000066400000000000000000000045451224274632000222220ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version K.39 # Date: Fri Sep 11 04:33:27 2009 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = False SET asysymbol = False SET busformat = BusFormatAngleBracketNotRipped SET createndf = False SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = False SET foundationsym = False SET implementationfiletype = Ngc SET package = fg456 SET removerpms = False SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = True SET vhdlsim = False # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=false CSET component_name=fifo_xlnx_16x19_2clk CSET data_count=false CSET data_count_width=5 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET fifo_implementation=Independent_Clocks_Distributed_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=15 CSET full_threshold_negate_value=14 CSET input_data_width=19 CSET input_depth=16 CSET output_data_width=19 CSET output_depth=16 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=No_Programmable_Full_Threshold CSET read_clock_frequency=1 CSET read_data_count=true CSET read_data_count_width=5 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=true CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=true CSET write_data_count_width=5 # END Parameters GENERATE # CRC: 60b85dda uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk_fifo_generator_v4_3_xst_1.lso000066400000000000000000000000631224274632000272370ustar00rootroot00000000000000blkmemdp_v6_2 blk_mem_gen_v2_6 fifo_generator_v4_3 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt000066400000000000000000000125601224274632000311100ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk_flist.txt000066400000000000000000000004151224274632000234410ustar00rootroot00000000000000# Output products list for fifo_xlnx_16x19_2clk.ngc fifo_xlnx_16x19_2clk.v fifo_xlnx_16x19_2clk.veo fifo_xlnx_16x19_2clk.xco fifo_xlnx_16x19_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt fifo_xlnx_16x19_2clk_flist.txt fifo_xlnx_16x19_2clk_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk_readme.txt000066400000000000000000000026261224274632000235630ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_16x19_2clk' in directory /home/matt/gnuradio.git/usrp2/fpga/coregen/: fifo_xlnx_16x19_2clk.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_16x19_2clk.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_16x19_2clk.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_16x19_2clk.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_16x19_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: Please see the core data sheet. fifo_xlnx_16x19_2clk_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. fifo_xlnx_16x19_2clk_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_16x19_2clk_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x19_2clk_xmdf.tcl000066400000000000000000000051261224274632000232250ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_16x19_2clk_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_16x19_2clk_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_16x19_2clk_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_16x19_2clk } # ::fifo_xlnx_16x19_2clk_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_16x19_2clk_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x19_2clk.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x19_2clk.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x19_2clk.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x19_2clk.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x19_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x19_2clk_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_16x19_2clk incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk.ngc000066400000000000000000001761121224274632000221720ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.4e $2604g<,[o}e~g`n;"2*413&;$>"9 > %10?*nhel%fmyz cnpfc`h(|dz$Sni fhdl[}jipV;=t9>P2bnh*kah92:?7=>=10927>7)881986=<22087=b<;z8;<=hh444.14=39;1?<7GAPTV9`lh;;00;2<:4418LQQVR\3ndyy2<9;2=5`=32@D[YY4rne\ahvsqV~c~h}g<283:73<<3CE\XZ5psmd[`kw|pUdk|h^cpw`ts4:0;2?;44;KMTPR=x{elShctx]wlwct`Vdnklzj<283:4b<<3CE\XZ5psmd[cskdV~c~h}g<283:72<<3CE\XZ5psmd[cskdV~c~h}g_`qpawr;;3:5>95;:HLSQQ2=G\^[YY4kauc\gjsi|591<3?m;58LQQVR\3xoSio{a^alqkr;;3:5=o5;:NWWTPR={UomyoPcnwmp95=87;0:9599847?3?F9;1=O959CBA1?3C53>N?75:=109:0>?789>05=>62:;56>G7:2K:>6O=2:C0=>GTQGIT^HI<;CW1<>DR[VCEJB?4C59@E=G53JO:>6MGEBI\HLEBFZOTXT^J3:AOV<=DGDGBXYKK159@KWCXOLDN^LZFOO]JJCI03JXNMYKK1:F0?AVH=2N[^L>:;ERQE4385KPSC00>@?0180JI=4FEA7?CBDM:1MH]:4FERF1>@fdzo:7J=4GOF2?L45A1168J467<2D:<<:4N0210>H68:>0B<>;4:L24020668J46?<2D:<4=4N037?K768=1E=459M54333G;::95A1057?K760=1E=<7<;O310>H6:9>0B<<>4:L26722568J442;2D:?>5A1518J4343G;=?6@>729M5=5H5=:1E>;=4N350?K4?;2D95>5A3118J6743G99?6@<329M7157<;O637>H39:1E8?=4N510?K23;2D?9?5A639M36=I?990B:?<;O507>H0=:1E;;<4N918J=243G2>?6@7629M<25H>8:1E5<=4N800?K?4;2D28>5A9418J<043G30\L\[a:RJJZDR[@NSn6^FN^@VWKGJM:1[^H?4Q99QEH71P8N=7^AZRBG0?VVH<2^R\H=<;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_ckm[}iu89:;S_k|umv276=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwYeagUsc>?00]Qavsk|8987X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySoga_ymq4565W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;?00]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3454XZly~`y?<3:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^`jjZ~hz9:;6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4565W[oxyaz>209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=2=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj979:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf585><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1=1219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^214>S7'nxm"h gbz-gim'{nT|cz}_ckm[4473\:$kh!rg-dg}(ddbr$~iQnup\flhX:;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU8>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123470<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<<<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp3454582_;#j|i.sd,cf~)keas#jPpovq[be;878;7X> gsd-vc)`kq$h`fv re]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<2<2b>S7'nxm"h gbz-gim'{nT|cz}_fa\44`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ76n2_;#j|i.sd,cf~)keas#jPpovq[beX:8l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV99:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=2=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6:2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?6;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0>0=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ65=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR?=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ45=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR==9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6494956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2848512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><3<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0>0=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W9837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\57><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmThS7'nxm"h gbz-gim'{nT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/sf\tkruWniTtb|?01015>S7'nxm"h gbz-gim'~xT|cz}_ckm858592_;#j|i.sd,cf~)keas#z|Ppovq[goi4849=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0?0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<2<14>S7'nxm"h gbz-gim'~xT|cz}_ckm[5473\:$kh!rg-dg}(ddbr${Qnup\flhX9;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU9>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR==6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4567:?1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678;8;7X> gsd-vc)`kq$h`fv ws]sjqtXoj6;2?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1?1219V4*aun'xm#jmw.bnh|*quWyd~Ril<3<14>S7'nxm"h gbz-gim'~xT|cz}_fa?7;7a3\:$kh!rg-dg}(ddbr${Qnup\cfY79o1^<"i}f/pe+be&jf`t"y}_qlwvZadW8;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU9=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS><9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi33?06?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W98>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_006?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`W;8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_20:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7<3<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;97827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?6;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?33?0;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;TS7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S><:;T2,cw`)zo%lou lljz,swYwf}xTknQwos2345423\:$kh!rg-dg}(ddbr${Qnup\cfYg{:;<<<:;T2,cw`)zo%lou lljz,swYwf}xTknQwos23474f3\:$kh!rg-dh5(ul&my=#|iwgv,VDKXZMUNBRHXFU31g>S7'nxm"h gm2-va)`z8$yjzh{/SCN[WBXMGUM[KZ>_00:?P6(o{l%~k!hl1,q`*au9'xm{kz R@O\V@AH]]UNB<=<;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTJ^CPFGf273=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^DPIZ@Al8'Bb>64U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe3.Mk76;:1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ@TEVLMh?=9;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTJ^CPFGf1)Lh402_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[CUJWOLo> Ga100;?P6(o{l%~k!hl1,q`*au9'xm{kz elrw}Z`pn}Umn?94U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZo5m2_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^mq4567:o1^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_h]lv56788827X> gsd-vc)`d9$yh"i}ar,qwqu(zhgTi`~{y^da[l573\:$kh!rg-dh5(ul&mym~ }suq,vdkXmdzuRhm_h]lv5678:90Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;=!re-dvdu)zz~x#ob_dosp|YajVcTc>?0132<65<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi^mq45679=;8>6[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZoXg{:;<=<9339V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUbSb|?0126764<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi^mq45671:887X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq55<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex;<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw=64<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?32[LHQW98h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq84869;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?6;76:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:476n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:768l0Y=!hrg,qb*ak8'xo#~ats-`kphs484:j6[?/fpe*w`(oe:%~i!}povq+firf}6920>e:W3+bta&{l$ka>!re-qtkru'je~byQ?1d9V4*aun'xm#jb?.sf,vuhsz&idyczP10g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_33f?P6(o{l%~k!hl1,q`*twf}x$ob{at^116>S7'nxm"h gm2-va)uxg~y#naznu]g5969:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl86:2?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?32?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2868592_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V:9=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R?=1:W3+bta&{l$ka>!re-qtkru'je~byQk1^015>S7'nxm"h gm2-va)uxg~y#naznu]g5Z55<2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYig}:;<<<7;T2,cw`)zo%l`= xr.etev(p{}y$~lcPftno[cdXa;?0Y=!hrg,qb*ak8'}y#jyns/uppv)uidUmyabPi3a8Q5)`zo$yj"ic0/uq+bqf{'}xx~!}al]eqijXaVey<=>?2g9V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYnWfx;<=>>1910?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkW`Ud~=>?003;[VQ7:o1^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQf_np34566<88n7X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_h]lv5678;<9i6[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k\kw6789?8>h5Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]j[jt789:2?S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|:8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{6368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr>;;1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQwos>3:47XAG\Tn5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:568;9o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^zlv95998;m7X> gsd-vc)`d9$|~"ynup,gjsi|5:5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7=3?i;T2,cw`)zo%l`= xr.usjqt(kfex1<11g9V4*aun'xm#jb?.vp,suhsz&idycz33?3f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^22a>S7'nxm"h gm2-sw)pxg~y#naznu]25`=R8&myj#|i/fn3*rt(yd~"m`uov\64c<]9%l~k }f.eo4+qu'~zex!lotlw[6453\:$kh!rg-dh5(pz&}{by| cnwmpZb64949>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1?1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>1:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;;78:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm87?3<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_102?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[4463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W;8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S><;;T2,cw`)zo%l`= xr.usjqt(kfexR``t123540<]9%l~k }f.ofi*bh}}UbS=?9;T2,cw`)zo%fi`!kotv\mZ76?2_;#j|i.sd,i`k(lfSdQ>0058Q5)`zo$yj"cjm.flqqYnW8;:;6[?/fpe*w`(elg$hb{{_h]2641<]9%l~k }f.ofi*bh}}UbS<=>7:W3+bta&{l$ahc dnww[lY6<8=0Y=!hrg,qb*kbe&ndyyQf_0723>S7'nxm"h mdo,`jssW`U::<94U1-dvc(un&gna"j`uu]j[416?2_;#j|i.sd,i`k(lfSdQ>8058Q5)`zo$yj"cjm.flqqYnW83::6[?/fpe*w`(elg$hb{{_h]152=R8&myj#|i/lgn+air|VcT>=?8;T2,cw`)zo%fi`!kotv\mZ469>1^<"i}f/pe+hcj'me~xRgP2334?P6(o{l%~k!bel-gkprXaV88=:5Z0.eqb+ta'dof#iazt^k\61703\:$kh!rg-nah)cg|~TeR<:169V4*aun'xm#`kb/emvpZoX:?;<7X> gsd-vc)jmd%ocxzPi^0452=R8&myj#|i/lgn+air|VcT>5?8;T2,cw`)zo%fi`!kotv\mZ4>9?1^<"i}f/pe+hcj'me~xRgP3058Q5)`zo$yj"cjm.flqqYnW:::;6[?/fpe*w`(elg$hb{{_h]0541<]9%l~k }f.ofi*bh}}UbS><>7:W3+bta&{l$ahc dnww[lY4;8=0Y=!hrg,qb*kbe&ndyyQf_2623>S7'nxm"h mdo,`jssW`U89<94U1-dvc(un&gna"j`uu]j[606?2_;#j|i.sd,i`k(lfSdQ<7058Q5)`zo$yj"cjm.flqqYnW:2:;6[?/fpe*w`(elg$hb{{_h]0=40<]9%l~k }f.ofi*bh}}UbS9?9;T2,cw`)zo%fi`!kotv\mZ36>2_;#j|i.sd,i`k(lfSdQ9179V4*aun'xm#`kb/emvpZoX?8<0Y=!hrg,qb*kbe&ndyyQf_935?P6(o{l%~k!bel-gkprXaV3:i6[?/fpe*w`(elg$kic!dl-NvdkXZHG:=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF==?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?>1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB133e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL305c=R8&myj#|i/lgn+bbj&mg$Aob_SCN517a3\:$kh!rg-nah)`ld$oa"C}al]QEH729o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ9?;m7X> gsd-vc)jmd%lh` km.OqehYUID;<=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=5?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?61d9V4*aun'xm#`kb/ffn*ak(E{kfS_OB20d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM322b>S7'nxm"h mdo,cak)ld%F~lcPR@O154`<]9%l~k }f.ofi*ace'nf#@|nm^PBI746n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK5;8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE;>:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG99f:W3+bta&{l$ahc geo-`h)JzhgT^LC=70d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM3:2b>S7'nxm"h mdo,cak)ld%F~lcPR@O1=4c<]9%l~k }f.ofi*ace'nf#@|nm^PBI67a3\:$kh!rg-nah)`ld$oa"C}al]QEH579o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ;8;m7X> gsd-vc)jmd%lh` km.OqehYUID99=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF?>?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@=;1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB343e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL155c=R8&myj#|i/lgn+bbj&mg$Aob_SCN727a3\:$kh!rg-nah)`ld$oa"C}al]QEH5?9o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ;0;n7X> gsd-vc)jmd%lh` km.OqehYUID>:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG?<e:W3+bta&{l$ahc geo-`h)JzhgT^LC81d9V4*aun'xm#`kb/ffn*ak(E{kfS_OB80g8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM806?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;878=7X> gsd-vc)jmd%lh` km.]uewoillr;<=>311<12>S7'nxm"h mdo,cak)ld%Tzl|fneg{456748;5>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=31:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896:?3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?5185>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0<;1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349716;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2>7?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;9149:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<0;=60=R8&myj#|i/lgn+bbj&mg$S{o}ioff|56785;5>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=03:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}678969=3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?6785>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0?=1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349436;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2=5?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;:?49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<35=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|56785832?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>1=;423\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7>3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?7585>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0>?1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349556;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2<3?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;;=49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<27=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567859=2?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>03;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7?50=6:W3+bta&{l$ahc geo-`h)X~hxbbikw012386?9:<1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<1=1249V4*aun'xm#`kb/ffn*ak(Wkyecjjx1234929:<1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<1;1249V4*aun'xm#`kb/ffn*ak(Wkyecjjx1234909:<1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<191249V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349>9:<1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<1711d9V4*aun'xm#`kb/ffn*ak(lfSd2?>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg311<2b>S7'nxm"h mdo,cak)ld%ocxzPi=32:4`<]9%l~k }f.ofi*ace'nf#iazt^k?5786n2_;#j|i.sd,i`k(omg%h`!kotv\m97468l0Y=!hrg,qb*kbe&moa#jb/emvpZo;9=4:j6[?/fpe*w`(elg$kic!dl-gkprXa5;>2f:W3+bta&{l$ahc geo-`h)cg|~Te1?8>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg319<2b>S7'nxm"h mdo,cak)ld%ocxzPi=3::4c<]9%l~k }f.ofi*ace'nf#iazt^k?5;7a3\:$kh!rg-nah)`ld$oa"j`uu]j87699o1^<"i}f/pe+hcj'nnf"ic dnww[l:597;m7X> gsd-vc)jmd%lh` km.flqqYn4;85=k5Z0.eqb+ta'dof#jjb.eo,`jssW`69?3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0?:11g9V4*aun'xm#`kb/ffn*ak(lfSd2=5?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<34=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>13;7a3\:$kh!rg-nah)`ld$oa"j`uu]j87>99o1^<"i}f/pe+hcj'nnf"ic dnww[l:517;n7X> gsd-vc)jmd%lh` km.flqqYn4;4:j6[?/fpe*w`(elg$kic!dl-gkprXa59;2f:W3+bta&{l$ahc geo-`h)cg|~Te1==>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg332<2b>S7'nxm"h mdo,cak)ld%ocxzPi=17:4`<]9%l~k }f.ofi*ace'nf#iazt^k?7086n2_;#j|i.sd,i`k(omg%h`!kotv\m95168l0Y=!hrg,qb*kbe&moa#jb/emvpZo;;>4:j6[?/fpe*w`(elg$kic!dl-gkprXa5932e:W3+bta&{l$ahc geo-`h)cg|~Te1=11d9V4*aun'xm#`kb/ffn*ak(lfSd2;>0g8Q5)`zo$yj"cjm.egi+bj'me~xRg35?3f?P6(o{l%~k!bel-d`h(ce&ndyyQf<7<2a>S7'nxm"h mdo,cak)ld%ocxzPi=5=5`=R8&myj#|i/lgn+bbj&mg$hb{{_h>;:4c<]9%l~k }f.ofi*ace'nf#iazt^k?=;7c3\:$kh!rg-nah)`ld$oa"j`uu]j[57c3\:$kh!rg-nah)`ld$oa"j`uu]j[47b3\:$kh!rg-nah)`ld$oa"j`uu]j[466m2_;#j|i.sd,i`k(omg%h`!kotv\mZ769l1^<"i}f/pe+hcj'nnf"ic dnww[lY6:8o0Y=!hrg,qb*kbe&moa#jb/emvpZoX9:;n7X> gsd-vc)jmd%lh` km.flqqYnW8>:i6[?/fpe*w`(elg$kic!dl-gkprXaV;>=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U::e:W3+bta&{l$ahc geo-`h)cg|~TeR?61e9V4*aun'xm#`kb/ffn*ak(lfSdQ=1d9V4*aun'xm#`kb/ffn*ak(lfSdQ=00g8Q5)`zo$yj"cjm.egi+bj'me~xRgP203f?P6(o{l%~k!bel-d`h(ce&ndyyQf_302a>S7'nxm"h mdo,cak)ld%ocxzPi^005`=R8&myj#|i/lgn+bbj&mg$hb{{_h]104c<]9%l~k }f.ofi*ace'nf#iazt^k\607b3\:$kh!rg-nah)`ld$oa"j`uu]j[706m2_;#j|i.sd,i`k(omg%h`!kotv\mZ409l1^<"i}f/pe+hcj'nnf"ic dnww[lY508o0Y=!hrg,qb*kbe&moa#jb/emvpZoX:0;o7X> gsd-vc)jmd%lh` km.flqqYnW:;n7X> gsd-vc)jmd%lh` km.flqqYnW:::i6[?/fpe*w`(elg$kic!dl-gkprXaV9:=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U8>?j;T2,cw`)zo%fi`!hdl,gi*bh}}UbS>:>e:W3+bta&{l$ahc geo-`h)cg|~TeR=:1d9V4*aun'xm#`kb/ffn*ak(lfSdQ<60g8Q5)`zo$yj"cjm.egi+bj'me~xRgP363f?P6(o{l%~k!bel-d`h(ce&ndyyQf_2:2a>S7'nxm"h mdo,cak)ld%ocxzPi^1:5a=R8&myj#|i/lgn+bbj&mg$hb{{_h]75a=R8&myj#|i/lgn+bbj&mg$hb{{_h]65a=R8&myj#|i/lgn+bbj&mg$hb{{_h]55a=R8&myj#|i/lgn+bbj&mg$hb{{_h]45a=R8&myj#|i/lgn+bbj&mg$hb{{_h];5a=R8&myj#|i/lgn+bbj&mg$hb{{_h]:52=R8&myj#|i/scn[wc`g|~Tic?k;T2,cw`)zo%yylck.pg[wusWhyyijS7'nxm"h rrvahn)ulVxxxRm`mc32a>S7'nxm"h rrvahn)ulVxxxR|jg=2=5`=R8&myj#|i/sqwfim(zmUyyQ}ef>2:4c<]9%l~k }f.pppgjl'{nT~~zPrde?6;7c3\:$kh!rg-qwqdkc&xoS}{_sgd[57c3\:$kh!rg-qwqdkc&xoS}{_sgd[47c3\:$kh!rg-qwqdkc&xoS}{_sgd[77c3\:$kh!rg-qwqdkc&}yS}{_`qqab473\:$kh!rg-qwqdkc&}yS}{_`qqabYc9;:0Y=!hrg,qb*tt|kf`#z|Prrv\evtboVn9=n5Z0.eqb+ta'{ynae ws]qwqYdgdh:h6[?/fpe*w`(zz~i`f!xr^pppZehek;:i6[?/fpe*w`(zz~i`f!xr^pppZtbo5:5=h5Z0.eqb+ta'{ynae ws]qwqYumn6:21S_YQHNE`8\ZEHZLUBBKA9;Yfa[Lba3QncS]|fmWgqwlii991Sh`QBakmqR`ttafd:<6Vkm^OjjjtQm{ybccm4amolwqYbey~rn6ocmnqw[cskd?1imnezpe9aefmrxVgj~fk}3:aooa=ci}kTob{at)2*`>bf|hUhcx`{(0+g?agsiVidycz'2(f8`drfWje~by&<)g9geqgXkfex1=50?58`gosm{x=7iga(1+5?aoi 8#<7iga(02*3>bnf!;:%:5kio*26,1'8;ekm,42.?2nbb%?:)69gmk.6> =0hd`'16+4?aoi 82";6jfn)3:-3=cag"9%:5kio*14,1<'8;ekm,74.?2nbb%<<)69gmk.5< =0hd`'24+4?aoi ;<";6jfn)04-2=cag"94$94dhl+6'8;ekm,66.?2nbb%=>)69gmk.4: =0hd`'32+4?aoi :>";6jfn)16-2=cag"8:$94dhl+72/03mce$>6&7:fjj-5>!?1oec&;)79gmk.2!?1oec&9)79gmk.0!?1oec&7)79gmk.>!?1oec2?>69gmk:687=0hd`310<4?aoi4885;6jfn=30:2=cag6:8394dhl?50803mce0<817:fjj9706>1oec2>8?58`lh;904=7iga<0<4?aoi4;:5;6jfn=02:2=cag69>394dhl?66803mce0?:17:fjj9426>1oec2=6?58`lh;:>4<7iga<3:=3>bnf5822;5kio>1:2=cag68<394dhl?74803mce0><17:fjj9546>1oec2<4?58`lh;;<4<7iga<24=3>bnf59<2:5kio>0<;?69gmk:417<0hd`33?48`lh;<7<0hd`35?48`lh;>7<0hd`37?48`lh;07<0hd`39?58`jss 9#<7iazt)3*<>bh}}":<$64dnww,47.02ndyy&>2(:8`jss 89"46j`uu*20,> 20hb{{(05*<>bh}}":4$64dnww,4?.?2ndyy&=)99gkpr/:9#37iazt)02-==cg|~#>?'7;emvp-44!11ocxz'25+;?air|!8>%55kotv+63/?3me~x%<8)99gkpr/:1#37iazt)0:-2=cg|~#?$64dnww,66.02ndyy&<1(:8`jss :8"46j`uu*07,>:&8:flqq.4= 20hb{{(24*<>bh}}"8;$64dnww,6>.02ndyy&<9(58`jss =#<7iazt)7*3>bh}}"=%:5kotv+3,199gkpr;99437iazt=32:==cg|~7=?07;emvp974611ocxz315<;?air|5;>255kotv?538?3me~x1?8>99gkpr;91437iazt=3::2=cg|~7=364dnww876902ndyy2=1?:8`jss4;8546j`uu>17;>bh}}69;364dnww87>902ndyy2=9?58`jss4;437iazt=13:==cg|~7?<07;emvp955611ocxz332<;?air|59?255kotv?708?3me~x1=9>99gkpr;;>437iazt=1;:d=cg|~7?44?>99gkpr;;04<7iazt=1=3>bh}}6?2:5kotv?1;169gkpr;1720iigi2oeg1>cjx}s8>6hffn]dakcui}eyS{:P3-"[mioip)ID^H.Heogqeqiu(8:%=#><159emciXpedsS<8w41]1gim4:2lbjbQwloz\53~38V8h`f"iigm\c`hbzh~d~Rx;_2.MKKC+FFDN?oj4fhdl[}jipV;=t9>P2bnh(coagVmnbh|ntnp\r1Y4$riTdl}Piov\gim:8%iTdl}Pssqw95*dW{nTjk~=0.`[mgtW{nThlzn_bmvjq;7$jUoecQxievk916+kVbjRy}_ecweZeh}g~64)eXlfSzgkti?74)eXezmdbRxnl<3/gZtcWmo{xe3>6-a\lduX}gnn~kb`w<2/gZnf{Vkgab}{_gwoh86+kVbjR||t<3/gZbf|hUhcx`{_vkgpm;3$jUcm~Qxr^c`o86+kVxiRklc<2/gZehedeeSnb`cj?3(fYpzVkhgRb`w<2/gZtcWyd~Ryfduj>0)eX}zoTjzh{_ecweZeh}g~6P2bnh[coagVmnbh|ntnp\r1Y4WqyS<:4ftno3>oi|Vigg55agb`vmib?3f|n~kb`w`9svjaXmdzu<:4psmd[`kw|pUdk|h)2*51=wzfmTi`~{y^vkv`uo 8#:86~}of]fiur~W}byi~f'2(37?uthoVof|ywPtipfwm.4!8<0|ah_dosp|Ys`{oxd1=50?3a?uthoVof|ywPtipfwmYf{zoyx%>&1c9svjaXmdzuRzgrdqk[dutm{~#=$?m;qplcZcjx}sTxe|jsi]bwvcu|!8"=o5rne\ahvsqV~c~h}g_`qpawr/; ;o7}|`g^gntqX|axneQnsrgqp95=87;i7}|`g^gntqX|axneQaefcwa-6.9k1{~biPelrw}ZrozlycSckhaug+5,7e3yxdkRkbpu{\pmtb{aUeijo{e)0*5g=wzfmTi`~{y^vkv`uoWgolmyk'3(3g?uthoVof|ywPtipfwmYimnki1=50?;8twi`Wog`<=4psmd[cskdV~c~h}g(1+27>vugnUmyabPtipfwm.6!890|ah_gwohZrozlyc$?'>3:rqkbYa}efTxe|jsi*0-4311`9svjaXn|fgSyf}erj\j`af|l";%)028vaYci}kTob{at)0*55=ulVnjxlQlotlw,6/682xoSio{a^alqkr;87;97jPd`vb[firf}686=0:;sf\ak04ws]geqgXkfex%?&119tvZbf|hUhcx`{(3+24>quWmkmRm`uov+7,753~xThlzn_bmvjq:4294>7z|Peo48swYu{}wKL}7l3:BC|40<6;;h>5k4<16dek4293;0b?;=:59'61`=:=h0q^0<6;;h>5k4<16de?V2>2::26=4>33`6=c<491::7^5<6;;h>5k4<1922?a57;3:1=7?tS229756==3;8>o;6f;123c`<~]h?6=4>:08250}T;908<=4::011f0?a2:;v{:0;38q07=82w/mh46;c137?6==>08689tH365?_4?2;qh6o4r$c49755<,;>n6>>=;h106?6=3`9?=7>5;n133?6=3f9;=7>5;h10f?6=3`9887>5;n0g4?6=,k:1>k94n`d94>=h:jl1<7*m0;0e3>hfn3;07b5$c296c152g58jd`=>21d>n750;&a4?4a?2djj794;n0`k94n`d9<>=h:j=1<7*m0;0e3>hfn3307b5$c296c152g58jd`=m21d>n>50;&a4?4a?2djj7h4;n0ab?6=,k:1>k94n`d955=i5jj0;6)l?:3d4?kga28907b290/n=4=f69mec<6=21d>o650;&a4?4a?2djj7?9;:m1f2<72-h;6?h8;oce>41<3f8i:7>5$c296c15<#j909j:5aag82=>=h:k>1<7*m0;0e3>hfn3;j76a=b283>!d72;l<7coi:0`8?j4e:3:1(o>52g58jd`=9j10c?l>:18'f5<5n>1emk4>d:9l6a0=83.i<77`03gkm6k94n`d965=i5l80;6)l?:3d4?kga2;907bo>50;&a4?4a?2djj7<9;:m1ec<72-h;6?h8;oce>71<3`85$c296d052`48jd`=:21b>:m50;&a4?4f>2djj7=4;h04f?6=,k:1>l84n`d90>=n:>k1<7*m0;0b2>hfn3?07d<89;29 g6=:h<0blh56:9j62>=83.i<75$c296d052`48jd`=i21b>:=50;&a4?4f>2djj7l4;h046?6=,k:1>l84n`d9g>=n:>;1<7*m0;0b2>hfn3n07d<80;29 g6=:h<0blh5e:9j63`=83.i<75$c296d05<#j909m;5aag825>=n:?i1<7*m0;0b2>hfn3;976g=6c83>!d72;k=7coi:018?l4113:1(o>52`48jd`=9=10e?87:18'f5<5i?1emk4>5:9j631=83.i<77g13gkm6<94;h051?6=,k:1>l84n`d95==o5>;0;6)l?:3c5?kga28h07d<91;29 g6=:h<0blh51b98m707290/n=4=a79mec<6l21b>5;50;&a4?4f>2djj7?j;:k1<1<72-h;6?o9;oce>4`<3`83?7>5$c296d0=54i3:1>5<#j909m;5aag815>=n:1;1<7*m0;0b2>hfn38976g=8183>!d72;k=7coi:318?l40=3:1(o>52`48jd`=:=10e?8n:18'f5<5i?1emk4=5:9j60`=83.i<77g13gkm6?94;h11f?6=3k8?;7>51;294~N55}O:=<0(o853g9l7`<722wi>:4?:9a9a=<69984Z3:953}b28?1=94>2;30>46=k3n1n7?>:g827?722j0:87k5b;31>47=990m6i4r$c49750<,==1?i5+2b8041=#:o08<85+a88bg>o4;:0;66a<1c83>>o4;?0;66a=5283>>i4;00;66g=5783>>o49=0;6)l?:236?kga2910e>?<:18'f5<49<1emk4>;:k057<72-h;6>?:;oce>7=>i48h0;66a<3g83>!d72:>;7coi:198k65b290/n=4<419mec<632e8?i4?:%`3>6273gkm6?54o21`>5<#j9088=5aag80?>i4:o0;6)l?:212?kga2910c>;:m06a<72-h;6>=>;oce>7=!d72:8j7coi:198m64?290/n=4<2`9mec<632c8>:4?:%`3>64f3gkm6?54i205>5<#j908>l5aag80?>o4<80;66a=5c83>!d72;?h7coi:198k73f290/n=4=5b9mec<632e9944?:%`3>73d3gkm6?54o37;>5<#j9099n5aag80?>i48>0;66a<0083>>o49o0;6)l?:203?kga2910e>?j:18'f5<4:91emk4>;:k05a<72-h;6>7=>o4810;66g=5683>>o4<;0;66a<3483>>i4;h0;66a=5583>>i4;10;66g<3583>>i5l90;6)l?:3d4?kga2910c?mi:18'f5<5n>1emk4>;:m1g`<72-h;6?h8;oce>7=!d72;l<7coi:598k7ee290/n=4=f69mec<232e9ol4?:%`3>7`03gkm6;54o3a:>5<#j909j:5aag84?>i5k10;6)l?:3d4?kga2110c?m8:18'f5<5n>1emk46;:m1g0<72-h;6?h8;oce>d=!d72;l<7coi:b98k7e5290/n=4=f69mec7`03gkm6h54o3a3>5<#j909j:5aag8e?>i5jo0;6)l?:3d4?kga28:07bom50;&a4?4a?2djj7?<;:m1fd<72-h;6?h8;oce>42<3f8i57>5$c296c15<#j909j:5aag822>=h:k=1<7*m0;0e3>hfn3;<76a=b783>!d72;l<7coi:0:8?j4e=3:1(o>52g58jd`=9010c?l;:18'f5<5n>1emk4>a:9l6g5=83.i<77`03gkm6k94n`d95a=i5l=0;6)l?:3d4?kga2;:07bi?50;&a4?4a?2djj7<<;:m1g3<72-h;6?h8;oce>72<3f8in7>5$c296c1854o3`3>5<#j909j:5aag812>=h:hl1<7*m0;0e3>hfn38<76g<0g83>!d72:;;7coi:198m66b290/n=4<119mec<632c86773gkm6?54i22`>5<#j908==5aag80?>o5?o0;6)l?:3c5?kga2910e?9j:18'f5<5i?1emk4>;:k13a<72-h;6?o9;oce>7=!d72;k=7coi:598m71f290/n=4=a79mec<232c9;44?:%`3>7g13gkm6;54i35;>5<#j909m;5aag84?>o5?>0;6)l?:3c5?kga2110e?99:18'f5<5i?1emk46;:k131<72-h;6?o9;oce>d=!d72;k=7coi:b98m716290/n=4=a79mec7g13gkm6h54i34e>5<#j909m;5aag8e?>o5>l0;6)l?:3c5?kga28:07d<9d;29 g6=:h<0blh51098m70d290/n=4=a79mec<6:21b>;l50;&a4?4f>2djj7?<;:k12<<72-h;6?o9;oce>42<3`8=47>5$c296d05<#j909m;5aag822>=n:?<1<7*m0;0b2>hfn3;<76g=6483>!d72;k=7coi:0:8?l41<3:1(o>52`48jd`=9010e?8<:18'f5<5i?1emk4>a:9j634=83.i<77g13gkm6l84n`d95a=6=4+b181e3=iio0:i65f29694?"e838j:6`nf;3e?>o50:0;6)l?:3c5?kga2;:07d<72;29 g6=:h<0blh52098m7>6290/n=4=a79mec<5:21b>5>50;&a4?4f>2djj7<<;:k130<72-h;6?o9;oce>72<3`8=m7>5$c296d0854i37e>5<#j909m;5aag812>=n:hfn38<76g=5483>>o4:=0;6)l?:206?kga2910e><<:18'f5<4:<1emk4>;:k067<72-h;6><:;oce>7=!d72:;j7coi:198m67?290/n=4<1`9mec<632c8=:4?:%`3>67f3gkm6?54i235>5<#j908=l5aag80?>i48k0;66a=5e83>>o4:k0;66l=4e83>4<729q/n;4k50;9~f75429086=4?{%`5>6><@;>h7E<;6:J12>"3n398;6*;5;08m7?=831b?<4?::ma6?6=3th9?h4?:283>5}#j?0846F=4b9K610<@;<0(9h53258 13=:2c957>5;h12>5<5<4290;w)l9:2:8L72d3A8?:6F=6:&7b?54?2.?97<4i3;94?=n;80;66am2;29?xd5;j0;684?:1y'f3<4k2B98n5G2548L70<,=l1?>94$5796>o513:17d5}#j?0846F=4b9K610<@;<0(9h53258 13=:2c957>5;h12>5<5<2290;w)l9:2a8L72d3A8?:6F=6:&7b?54?2.?97<4i3;94?=n:k0;66g<1;29?ld62900co<50;9~f75e290?6=4?{%`5>6d<@;>h7E<;6:&71?4>oe93:17bl=:188yg44i3:187>50z&a2?5e3A8?o6F=479'00<53`826=44i2394?=nj80;66am2;29?xd5;00;694?:1y'f3<4j2B98n5G2548 13=:2c957>5;h12>5<>{e:=>1<7:50;2x g0=;k1C>9m4H365?!222;1b>44?::k05?6=3`h:6=44oc094?=zj;>86=4;:183!d12:h0D?:l;I072>"3=380e?750;9j74<722ci=7>5;n`1>5<54;294~"e>39i7E<;c:J103=#<<0?7d<6:188m67=831bn<4?::ma6?6=3th:?54?:483>5}#j?08m6F=4b9K610<,=?1>6g=9;29?l4e2900e?j50;9j74<722ei>7>5;|`27<<72<0;6=u+b780e>N5984$5796>o513:17d5}#j?08m6F=4b9K610<,=?1>6g=9;29?l4e2900e?j50;9j74<722ei>7>5;|`27g<72<0;6=u+b780e>N5984$5796>o513:17d5}#j?08n6F=4b9K610<,=?1>6g=9;29?l562900eo?50;9lf7<722wi=>j50;694?6|,k<1?o5G25a8L7213->>6?5f2883>>o493:17dl>:188kg4=831vn<8<:186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f403290>6=4?{%`5>6g<@;>h7E<;6:&71?4>o5l3:17d=>:188kg4=831vn<8::186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f401290>6=4?{%`5>6g<@;>h7E<;6:&71?4>o5l3:17d=>:188kg4=831vn<;j:186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f43c290>6=4?{%`5>6g<@;>h7E<;6:&71?4>o5l3:17d=>:188kg4=831vn<;l:186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f43e290>6=4?{%`5>6e<@;>h7E<;6:&71?2>o493:17dl>:188kg4=831vn<;::186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f434290>6=4?{%`5>6g<@;>h7E<;6:&71?4>o5l3:17d=>:188kg4=831vn<;;:186>5<7s-h=6>m4H36`?M43>2.?97:4i3;94?=n:k0;66g<1;29?ld62900co<50;9~f431290>6=4?{%`5>6g<@;>h7E<;6:&71?4>o5l3:17d=>:188kg4=831vn<=>:186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f457290>6=4?{%`5>6e<@;>h7E<;6:&71?2>o493:17dl>:188kg4=831vn<==:186>5<7s-h=6>o4H36`?M43>2.?97<4i3;94?=n:k0;66g=d;29?l562900co<50;9~f454290>6=4?{%`5>6g<@;>h7E<;6:&71?4>o5l3:17d=>:188kg4=831vnno50;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnn750;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnn650;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnn950;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnk>50;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnhh50;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnhk50;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vnhj50;694?6|,k<1?45G25a8L7213->>6?5f2883>>o5l3:17d=>:188kg4=831vn<>m:187>5<7s-h=6>74H36`?M43>2.?97<4i3;94?=n:m0;66g<1;29?jd52900qo??a;290?6=8r.i:7=6;I07g>N55<>ie:3:17pl>0883>1<729q/n;4<9:J10f=O:=<0(9;52:k1=?6=3`8o6=44i2394?=hj;0;66sm11:94?2=83:p(o85389K61e<@;>=7):::39j6<<722c9h7>5;h12>5<=7):::39j6<<722c9h7>5;h12>5<=7):::39j6<<722c9h7>5;h12>5<=7):::39j6<<722c9h7>5;h12>5<=7):::39j6<<722c9h7>5;h12>5<5<3290;w)l9:2;8L72d3A8?:6F=6:&7b?54?2.?97<4i3;94?=n:m0;66g<1;29?jd52900qo??2;290?6=8r.i:7=6;I07g>N5;5+4g8072=#<<097d<6:188m7b=831b?<4?::ma6?6=3th:<<4?:583>5}#j?0856F=4b9K610<@;<0(9h53258 13=:2c957>5;h0g>5<>{e99:1<7:50;2x g0=;01C>9m4H365?M413->m6>=8;%66>7=n:00;66g=d;29?l562900co<50;9~fab=83>1<7>t$c497<=O:=i0D?:9;I05?!2a2:9<7):::39j6<<722c9h7>5;h12>5<=7E<9;%6e>6503->>6?5f2883>>o5l3:17d=>:188kg4=831vnil50;694?6|,k<1?45G25a8L7213A8=7):i:214?!222;1b>44?::k1`?6=3`9:6=44oc094?=zjmk1<7:50;2x g0=;01C>9m4H365?M413->m6>=8;%66>7=n:00;66g=d;29?l562900co<50;9~fa3=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fa2=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fa5=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fa4=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fcd=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fcg=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fc?=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~fc>=83>1<7>t$c497<=O:=i0D?:9;%66>7=n:00;66g=d;29?l562900co<50;9~f472290?6=4?{%`5>6?<@;>h7E<;6:&71?4>o493:17bl=:188yg76:3:187>50z&a2?5>3A8?o6F=479'00<53`826=44i3f94?=n;80;66am2;29?xd6900;694?:1y'f3<4j2B98n5G2548 13=<2c957>5;h12>5<>{e9821<7:50;2x g0=;k1C>9m4H365?!222=1b>44?::k05?6=3`h:6=44oc094?=zj;:36=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;?6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;8j6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;8h6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;8n6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;:j6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;:h6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;:n6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;;6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;96=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;>6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;<6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;26=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;i6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;;o6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;8;6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;896=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;8?6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;8=6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;836=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8k=6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4?7290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn:18g>5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8h86=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4d1290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8h<6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4?6290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn<7=:18g>5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8386=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4?2290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn<76:18g>5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj83<6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4??290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn<7l:18g>5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj83m6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4?c290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8k:6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4g3290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8k>6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4g0290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8k26=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4ge290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8ko6=4k:183!d12k90D?:l;I072>o5:3:17d<<:188m72=831b>84?::k05?6=3`986=44i2694?=n;<0;66g<6;29?l4313:17d<;a;29?jd22900c><50;9~f4gb290o6=4?{%`5>g5<@;>h7E<;6:k16?6=3`886=44i3694?=n:<0;66g<1;29?l542900e>:50;9j70<722c8:7>5;h07=?6=3`8?m7>5;n`6>5<55;h10>5<1<75f3483>>o4>3:17d<;9;29?l43i3:17bl::188k64=831vn5<7s-h=6o=4H36`?M43>2c9>7>5;h00>5<1<75f2483>>o493:17d=<:188m62=831b?84?::k02?6=3`8?57>5;h07e?6=3fh>6=44o2094?=zj8226=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj82<6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj82>6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8286=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj82:6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=n6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=h6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=j6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=36=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8==6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=86=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=:6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj82m6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj82o6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj82i6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8=m6=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj8<26=4::183!d12:k0D?:l;I072>"3=380e?750;9j6g<722c9h7>5;h12>5<5<2290;w)l9:2c8L72d3A8?:6*;5;08m7?=831b>o4?::k1`?6=3`9:6=44oc094?=zj;>;6=4<:183!d12=h0D?:l;I072>"3=3k0e9?50;9j07<722ejn7>5;|`170<72:0;6=u+b787f>N5984$579e>o393:17d:=:188kdd=831vn<:l:180>5<7s-h=69l4H36`?M43>2.?97?9;h62>5<>{e9;31<7=50;2x g0=9m4H365?!2228<0e9?50;9j07<722ejn7>5;|``6?6=;3:1o393:17d:=:188kdd=831vnn?50;194?6|,k<18o5G25a8L7213->>6<84i5394?=n<;0;66anb;29?xdd83:1?7>50z&a2?2e3A8?o6F=479'00<6>2c?=7>5;h61>5<=7):::048m17=831b8?4?::mbf?6=3thin7>53;294~"e>3>i7E<;c:J103=#<<0::6g;1;29?l252900cll50;9~fgg=8391<7>t$c490g=O:=i0D?:9;%66>40>ifj3:17pl>1583>1<729q/n;4;c:J10f=O:=<0(9;51c9j04<722c?>7>5;h60>5<5<3290;w)l9:5a8L72d3A8?:6*;5;3:?l262900e9<50;9j06<722ejn7>5;|`26d<72=0;6=u+b787g>N5984$5795<=n<80;66g;2;29?l242900cll50;9~f47e290>6=4?{%`5>1b<@;>h7E<;6:&71?4f3`>:6=44i5094?=n<:0;66g;4;29?jge2900qo?;e;291?6=8r.i:7:k;I07g>N5a:k75?6=3`>96=44i5194?=n<=0;66anb;29?xd6:k0;684?:1y'f3<3l2B98n5G2548 13=9h1b8<4?::k76?6=3`>86=44i5694?=hik0;66sm10594?3=83:p(o854e9K61e<@;>=7):::0:8m17=831b8?4?::k77?6=3`>?6=44o``94?=zj8;:6=4;:183!d12=i0D?:l;I072>"3=320e9?50;9j07<722c??7>5;nca>5<53;294~"e>3>i7E<;c:J103=#<<0=7d:>:188m14=831dmo4?::a55`=83?1<7>t$c490a=O:=i0D?:9;%66>2=n<80;66g;2;29?l242900e9:50;9leg<722wini4?:283>5}#j?0?n6F=4b9K610<,=?1=;5f4083>>o3:3:17bom:188ygd029086=4?{%`5>1d<@;>h7E<;6:&71?713`>:6=44i5094?=hik0;66sm15194?3=83:p(o854e9K61e<@;>=7):::328m17=831b8?4?::k77?6=3`>?6=44o``94?=zj8>?6=4::183!d12=n0D?:l;I072>"3=38;7d:>:188m14=831b8>4?::k70?6=3fki6=44}c371?6==3:1o393:17d:=:188m15=831b894?::mbf?6=3th:8?4?:483>5}#j?0?h6F=4b9K610<,=?1?:5f4083>>o3:3:17d:<:188m12=831dmo4?::a577=83?1<7>t$c490a=O:=i0D?:9;%66>4b>o3;3:17d:;:188kdd=831vn<<=:186>5<7s-h=69j4H36`?M43>2.?97?k;h62>5<>o3<3:17bom:188yg75;3:197>50z&a2?2c3A8?o6F=479'00<582c?=7>5;h61>5<>ifj3:17pl>1d83>6<729q/n;4;b:J10f=O:=<0(9;51d9j04<722c?>7>5;nca>5<55;294~"e>3>o7E<;c:J103=#<<08;6g;1;29?l252900e9=50;9j01<722ejn7>5;|`aa?6=<3:1o393:17d:=:188m15=831dmo4?::af=<72=0;6=u+b787g>N5984$57964=n<80;66g;2;29?l242900cll50;9~f426290?6=4?{%`5>1e<@;>h7E<;6:&71?7d3`>:6=44i5094?=n<:0;66anb;29?xden3:197>50z&a2?2c3A8?o6F=479'00<6?2c?=7>5;h61>5<>ifj3:17plm9;291?6=8r.i:7:k;I07g>N57:k75?6=3`>96=44i5194?=n<=0;66anb;29?xd6990;684?:1y'f3<3l2B98n5G2548 13=?2c?=7>5;h61>5<>ifj3:17pl>4c83>7<729q/n;4;6:J10f=O:=<0e9>50;9leg<722wi=?650;094?6|,k<18;5G25a8L7213`>;6=44o``94?=zj8;m6=4::183!d12=o0D?:l;I072>"3=3;m7d:>:188m14=831b8>4?::k70?6=3f>36=44}c374?6==3:15;n6;>5<7>57z\077=:98>18>5210`901=:98=18952103904=:99l18<52102904=z{:9;6=4>ez\11a=Y:<>0R>=n;_10<>X5=:1U?>;4^22b?[5412T8m6P=589]60>X4:m1U??m4=36g>6c<5;9h6>?4=312>67<5;9i6>?4=31b>67<5;926>?4=367>67<5;>86>?4}r100?6=;rT8?95222a9f4=:::;1n<5rs222>5<5sW9;=63>188a6>{t;=;1<7=t^262?873>3>:70?;1;62?xu4:k0;6::t^20a?844;38270<<2;0:?844938270<34;;n7<6;<33e?4>34;;57<6;<3334;;?7<6;<336?4>34;;=7<6;<334?4>34n>6?74=e696<=:l:09563k2;0:?876=38270?>2;0:?876138270?>8;0:?847038270f;0:?845i38270<=b;0:?845k38270<=d;0:?845m38270<=f;0:?847i382701;0:?846:38270<>3;0:?846=38270<>6;0:?846?38270<>8;0:?846138270<>a;0:?846j38270<>c;0:?846l38270<>e;0:?845838270<=1;0:?845:38270<=3;0:?845<38270<=5;0:?845>38270<=7;0:?845038270<=9;0:?87?138270?78;0:?87??38270?76;0:?87?=38270?74;0:?87?;38270?72;0:?87?938270?70;0:?870m38270?8d;0:?870k38270?8b;0:?870i38270?89;0:?870038270?87;0:?870>38270?85;0:?870;38270?82;0:?870938270?80;0:?871n38270?9e;0:?871l38270?9c;0:?871j38270?9a;0:?87?n38270?7e;0:?87?l38270?7c;0:?87?j38270?7a;0:?870n38270?84;0:?871138270?98;0:?xu48>0;6?uQ3158945b2k80q~=34i<6?74=d796<=:m=09563j3;0:?8c52;301ij5289>`f<5127on7<6;7?<5oh1>452f`81=>;a138270h7:3;894g12;>270?60;07=>;61k0984521c3961?<58h86?:6;<3a2?43127:n94=489>5g3=:=301938?563>95810<=:9081>974=0;0>72>34;297<;9:?2=3<5<016=47525;894?02;>270?68;07=>;61h09845218a961?<583m6?:6;<3:`?43127:5h4=489>5d6=:=301:36:?87f<38?563>a3810<=:9h91>974=0c6>72>34;j;7<;9:?2ed<5<016=l6525;894g>2;>270?nb;07=>;6ij0984521`d961?<58ko6?:6;<3ba?43127:n=4=489>5g4=:=30q~k;50;0xZ7eb34;3;7l=;|q1b1<72;qU>nj4=0:5>g452z\1gf=:91?1n?5rs3d1>5<5sW8hn63>858a6>{t:o;1<77}Y:j301<6=:c08yv4bn3:1>vP=c99>5=7=j;1v?kj:181[4d?27:4=4m2:p6`e=838pR?m:;<34a?d53ty9io4?:3y]6f2<58=o6o<4}r0fe?6=:rT9o>5216a9f7=z{;o26=4={_0`6>;6?k0i>6s|2d:94?4|V;i:70?8a;`1?xu5m>0;6?uQ2b28941>2k80q~h:50;0xZ7dc34;<:7l=;|q1a6<72;qU>om4=056>g452z\1fd=:9>91n?5rs3g3>5<5sW8i563>738a6>{t:ml1<77}Y:k=01<9?:c08yv4cl3:1>vP=b79>53`=j;1v?jl:181[4e=27::h4m2:p6ad=838pR?l;;<35`?d53ty9hl4?:3y]6g5<58;6>h0i>6s|2gd94?4|V;n=70?7f;`1?xu5nl0;6?uQ2e7894>b2k80q~kl50;0xZ7b534;3n7l=;|q1bd<72;qU>i?4=0:b>g452z\1g3=:9>l1n?5rs3gg>5<5sW8in63>758a6>{t:l81<77}Y:hl01<87:c08yv4f?3:1>vP=7g9>5g4=;81v?o::181[40m27:n=4<1:p6d2=838pR?9k;<3bb?563ty9m>4?:3y]62e<58kn6>?4}r0b6?6=:rT9;o521`f974=z{;k:6=4={_04e>;6ij08=6s|2`294?4|V;=270?nb;12?xu51o0;6?uQ26:894gf2:;0q~<6e;296~X5?>16=l75309~w7?c2909wS<86:?2e=<492wx>4l50;0xZ71334;j;7=>;|q1=d<72;qU>:=4=0c6>6752z\137=:9h>1?<5rs3;;>5<5sW8<=63>a2805>{t:0=1<77}Y:?l01:238yv4>=3:1>vP=6d9>5d6=;81v?7;:181[41l27:5k4<1:p6<5=838pR?8l;<3:a?563ty95?4?:3y]63d<583o6>?4}r0:4?6=:rT9:45218a974=z{;2m6=4={_05<>;61h08=6s|29g94?4|V;<<70?69;12?xu50m0;6?uQ274894??2:;0q~<7c;296~X5><16=495309~w7>e2909wS<94:?2=3<492wx>5o50;0xZ70434;297=>;|q1<<<72;qU>;<4=0;7>6752z\124=:9091?<5rs3:4>5<5sW8=<63>93805>{t:ho1<7939:7p}=ae83>7}Y:1>01vP=829>5g0=;81v?om:181[4?:27:n84<1:p6dg=838pR?6>;<3a0?563ty9m44?:3y]6=6<58h86>?4}r0b;6i?08=6s|28394?4|V;?m70?6b;12?xu50?0;6?uQ24g894?72:;0q~<<2;297~;5;:08=63=338a6>;5;809n6s|22194?4|5;986o<4=316>1753z?17`<49279?n4=b:?17a>k50;0x975b2k801?:?:538yv4493:1?v3=33805>;5;80i>63=34876>{t::i1<7=t=31`>g4<5;9o6>?4=363>1454z?17g=83op1?=m:c08947d2k;01<=7:3f8945>2;n01<=n:3f8945e2;n01<=>:3f894572k;01<==:3f894542;n01;bn38o70kj:3f89`b=:m16==l52e9>55g=:m16==752e9>55>=:m16===52e9>554=:m16==?52e9>556=:m16h84=d:?g0?4c34n86?j4=e096a=z{;9=6=4:1z?17<l4=d:?16g<5l279>n4=d:?16a<5l279>h4=d:?16c<5l279=4=d:?164<5l279>?4=d:?166<5l279>94=d:?160<5l279>;4=d:?162<5l279>54=d:?16<<5l27:444=d:?2<=<5l27:4:4=d:?2<3<5l27:484=d:?2<1<5l27:4>4=d:?2<7<5l27:4<4=d:?2<5<5l27:;h4=d:?23a<5l27:;n4=d:?23g<5l27:;l4=d:?23<<5l27:;54=d:?232<5l27:;;4=d:?230<5l27:;>4=d:?237<5l27:;<4=d:?235<5l27::k4=d:?22`<5l27::i4=d:?22f<5l27::o4=d:?22d<5l27:4k4=d:?2<`<5l27:4i4=d:?2>h50;1x97232k;01?:<:c3897272hh0q~<;2;29b~;5<=0i>63>3d8a5>;6;m0i=63>6281`>;6>=09h63>6481`>;6>?09h63>5d81`>;6=m09h63>5b81`>;6=k0i=63>5481`>;6=:09h63>558a5>;6=?09h6s|25394?76s48??7l=;7b<5j31>i52c981`>;d?38o70k::3f89`2=:m16i>4=d:?f6?4c34no6?j4=ea96a=:lk09h63ka;0g?8`e2;n01ko52e9>b<<5l27m47576=ik1v7;62?877n3>970?>0;61?xu68o0;6>?t=01;>7d<58926?l4=01b>7d<589i6?l4=012>7d<589;6?l4=011>7d<58986?l4=32;>7d<5;:26?l4=337>7d<5;;m6?l4=30b>7d<5;8i6?l4=30`>7d<5;8o6?l4=30f>7d<5;8m6?l4=32b>7d<5;:i6?l4=32`>7d<5;:o6?l4=32f>7d<5;:m6?l4=333>7d<5;;:6?l4=331>7d<5;;86?l4=336>7d<5;;=6?l4=334>7d<5;;36?l4=33:>7d<5;;j6?l4=33a>7d<5;;h6?l4=33g>7d<5;;n6?l4=303>7d<5;8:6?l4=301>7d<5;886?l4=307>7d<5;8>6?l4=305>7d<5;8<6?l4=30;>7d<5;826?l4=033>dd57z?27=<4927:?=4m2:?26<<3:27:>l4;3:?26g<3927:>54;0:?25c<3:2wx=>:50;0a87403h970?n6;10?87>839870?6b;10?87e939870?m3;10?87e>39870?m4;10?87e=39870?m7;10?87>939870?64;10?87>:39870?63;10?87>=39870?66;10?87>139870?67;10?87>039870?6a;10?87>k39870?6f;10?87>l39870?6e;10?87f839870?n1;10?87f<39870?n2;10?87f;39870?n5;10?87f?39870?na;10?87f039870?n9;10?87fj39870?nc;10?87fn39870?nd;10?87fm39870?m0;10?87e:39870ll:50894462=90q~?=d;292~;6;008=63>308a6>;6:00?=63>2`875>;6:k0??63>22875>{t9:?1<77=;;<3b7?5334;j97=;;<3b3?5334;jm7=;;<3b5<2s4;8m7=>;<306?d534;9m7:=;<31f?2334;9?7:<;|q273<72;ip1<=n:c0894g12:?01<7?:27894?e2:?01:27894d42:?01:27894?32:?01<7=:27894?42:?01<7::27894?12:?01<76:27894?02:?01<77:27894?f2:?01<7l:27894?a2:?01<7k:27894?b2:?012:?01nu212`9f7=:l<08=63>a7802>;61908:63>9c802>;6j808:63>b2802>;6j?08:63>b5802>;6j<08:63>b6802>;61808:63>95802>;61;08:63>92802>;61<08:63>97802>;61008:63>96802>;61108:63>9`802>;61j08:63>9g802>;61m08:63>9d802>;6i908:63>a0802>;6i=08:63>a3802>;6i:08:63>a4802>;6i>08:63>a`802>;6i108:63>a8802>;6ik08:63>ab802>;6io08:63>ae802>;6il08:63>b1802>;6j;08:63ma;62?875:3>?7p}>3g83>6}:9:o1?<5212f974=:9=81mo5rs01g>5<4s4;8h7l=;<372?2534;?<7:=;|q222<72:?p1<8<:3`894032;h01<8::3`894012;h01<;j:3`8943c2;h01<;l:3`8943e2;h01<;::3`894342;h01<;;:3`894312;h01838?m63>9c810d=:9k;1>9o4=0`0>72f34;i:7<;a:?2f1<5j70?61;07e>;61=098l52180961g<58386?:n;<3:1?43i27:5;4=4`9>5038?m63>9`810d=:90i1>9o4=0;e>72f34;2h7<;a:?2=`<5525c894g62;>j70?n4;07e>;6i;098l521`1961g<58k>6?:n;<3b3?43i27:ml4=4`9>5d>=:=k01ab810d=:9hl1>9o4=0cg>72f34;ji7<;a:?2f5<5:08=63>5c8a6>;6<:0??6s|14d94?4fs4;=?7l=;<3b2?4534;2<7<=;<3:f?4534;i=7<=;<3a7?4534;i:7<=;<3a0?4534;i97<=;<3a3?4534;2=7<=;<3:0?4534;2>7<=;<3:7?4534;297<=;<3:2?4534;257<=;<3:3?4534;247<=;<3:e?4534;2o7<=;<3:b?4534;2h7<=;<3:a?4534;j<7<=;<3b5?4534;j87<=;<3b6?4534;j?7<=;<3b1?4534;j;7<=;<3be?4534;j47<=;<3b=?4534;jn7<=;<3bg?4534;jj7<=;<3b`?4534;ji7<=;<3a4?4534;i>7<=;1447>53z?221<4927:9n4m2:?206<392wx=;>50;0a871<3h970?n6;00?87>838870?6b;00?87e938870?m3;00?87e>38870?m4;00?87e=38870?m7;00?87>938870?64;00?87>:38870?63;00?87>=38870?66;00?87>138870?67;00?87>038870?6a;00?87>k38870?6f;00?87>l38870?6e;00?87f838870?n1;00?87f<38870?n2;00?87f;38870?n5;00?87f?38870?na;00?87f038870?n9;00?87fj38870?nc;00?87fn38870?nd;00?87fm38870?m0;00?87e:38870m=:5389f7=<;1v<;6:180871=39:70?:d;`1?873<3>87p}>6083>7d|58<>6o<4=0c5>72<583;6?:4=0;a>72<58h:6?:4=0`0>72<58h=6?:4=0`7>72<58h>6?:4=0`4>72<583:6?:4=0;7>72<58396?:4=0;0>72<583>6?:4=0;5>72<58326?:4=0;4>72<58336?:4=0;b>72<583h6?:4=0;e>72<583o6?:4=0;f>72<58k;6?:4=0c2>72<58k?6?:4=0c1>72<58k86?:4=0c6>72<58k<6?:4=0cb>72<58k36?:4=0c:>72<58ki6?:4=0c`>72<58km6?:4=0cg>72<58kn6?:4=0`3>72<58h96?:4=b3904=:k90?>6s|14c94?5|58<=6>?4=07f>g4<58>?69?4}r356?6=:kq6=;85b39>bg<4927:m;4=5:?2=5<5=27:5o4=5:?2f4<5=27:n>4=5:?2f3<5=27:n94=5:?2f0<5=27:n:4=5:?2=4<5=27:594=5:?2=7<5=27:5>4=5:?2=0<5=27:5;4=5:?2=<<5=27:5:4=5:?2==<5=27:5l4=5:?2=f<5=27:5k4=5:?2=a<5=27:5h4=5:?2e5<5=27:m<4=5:?2e1<5=27:m?4=5:?2e6<5=27:m84=5:?2e2<5=27:ml4=5:?2e=<5=27:m44=5:?2eg<5=27:mn4=5:?2ec<5=27:mi4=5:?2e`<5=27:n=4=5:?2f7<5=27h<7:>;|q217<72=q6=8k5309>500=j;16=9k5439>513=<81v<;>:186872l39:70?:5;`1?873l3>970?;e;67?87383>:7p}>5183>3}:952157906=z{8>m6=48{<36f?5634;>?7l=;<37g?2534;?h7:<;<37a?2634;?=7:<;<37f?273ty:844?:3y>503=;816=9j5ac9~w4202909w0?:3;12?873j3ki7p}>4983>7}:9<>1?<5215a9eg=z{8>j6=4={<362?5634;?i7om;|q260<72;q6=>?5309>57?=ik1v<<;:181874839:70?=8;ca?xu6:?0;6?u2120974=:9;k1mo5rs004>5<5s4;8?7=>;<31f?ge3tyn=7>55z?`e?5634o>6o<4=c5907=:j10?>63m9;61?xud>3:1?v3la;`1?873<3>970?;5;61?xudj3:1>v3l9;12?8d02hh0q~m::1808e>2k801<:;:56894272=90q~ml:1818e?2:;01o65ac9~wf2=839p1n65b39>515=<;16=9;5459~wfb=838p1n95309>f<4?:2y>g24;4:?204<3:2wx==950;7x9c6=;816==l5b39>fa<3:27ii7:=;<`e>14g4<588969<4=03f>1767<5kn1mo5rsd`94?5|5ll1n?52130904=:9;91895rsg094?4|5lo1?<52bd8bf>{tmh0;6>u2ed8a6>;6:80?>63>22876>{tn:0;6?u2ee805>;en3ki7p}j9;297~;bl3h970?=1;62?876n3>:7p}if;296~;68k08=63>028a6>{tnl0;6?u211c974=:9981n?5rs025>5<3s4;;m7l=;<`g>17<5ko18<52bg875>{tnm0;6?u211;974=:99;1n?5rs026>5<4s4;;57l=;<`f>15<5kl18>5rsga94?4|58:36>?4=023>g452z?24=;g467<5mi1n?5rsd294?2|5l>1n?52b6875>;e03>:70l6:538yvb02909w0k<:2389ad=j;1vih50;1x9`5=j;16n54;3:?a=?243tyo:7>52z?f6?5634nj6o<4}rff>5<5s4o96o<4=c;901=z{o=1<767<5oh1n?5rsg494?4|58:96>?4=gc9f7=z{o?1<767<5o31n?5rsg694?4|58:;6>?4=g:9f7=z{m;1<76s|d183>7}:lj08=63k4;`1?xudn3:1>v3kb;12?8b42k80q~mj:1818bf2:;01i<5b39~w`0=838p1i:5309>fd`6<4927in7om;|qf7=>;<``>dd52z?ee?5634i;6ll4}r33`?6=:r7m57=>;dd52z?ei:56894772=>0q~?>3;296~;69;08=63>158bf>{t9881<79t=031>g4<58;?69?4=03a>14<58;<69<4=032>14<58:m69=4=033>1553z?25<<4927:=54<1:?25gv3=09805>;61908>6s|1d294?4|5;:36o<4=04;>6752z?14<<4927:5o4<2:p5`d=838p1?>6:c08940>2:;0q~?le;296~;59=08=63>a7806>{t9o<1<7g4<58=?6>?4}r3g=?6=:r79=k4<1:?2f4<4:2wx>=?50;0x977a2k801<9i:238yv7ci3:1>v3=2`805>;6j:08>6s|21094?4|5;8j6o<4=0:b>6752z?16g<4927:n94<2:p655=838p1?e2:;0q~?kc;296~;5:j08=63>b4806>{t:9>1<7g4<582h6>?4}r3g`?6=:r79>i4<1:?2f3<4:2wx>=;50;0x974c2k801<6k:238yv7cm3:1>v3=2d805>;6j>08>6s|21494?4|5;8n6o<4=0:f>6752z?16c<4927:5<4<2:p651=838p1?a2:;0q~?m9;296~;58h08=63>93806>{t9l;1<7g4<58?4}r3ae?6=:r79v3=0b805>;61=08>6s|1d194?4|5;:h6o<4=04`>6752z?14a<4927:584<2:p5`2=838p1?>k:c08940c2:;0q~?md;296~;58l08=63>97806>{t9l?1<7g4<58?4}r3aa?6=:r79v3=11805>;61108>6s|1d594?4|5;;;6o<4=053>6752z?154<4927:544<2:p5`>=838p1??>:c0894162:;0q~?l1;296~;59;08=63>9`806>{t9l31<7g4<58=96>?4}r3`6?6=:r79=>4<1:?2=f<4:2wx=ho50;0x97742k801<9<:238yv7d<3:1>v3=14805>;61m08>6s|1da94?4|5;;>6o<4=056>6752z?153<4927:5h4<2:p5`b=838p1??9:c0894112:;0q~?l6;296~;59>08=63>9g806>{t9lo1<7g4<58=<6>?4}r3`3?6=:r79=54<1:?2e5<4:2wx=hh50;0x977?2k801<97:238yv7d03:1>v3=18805>;6i808>6s|1g294?4|5;;26o<4=05:>6752z?15d<4927:m?4<2:p5c7=838p1??n:c08941f2:;0q~?la;296~;59k08=63>a2806>{t9o81<7g4<58=i6>?4}r3`f?6=:r79=n4<1:?2e1<4:2wx=k=50;0x977d2k801<9l:238yv7dk3:1>v3=1e805>;6i<08>6s|1g694?4|5;;o6o<4=05g>6752z?15`<4927:m:4<2:p5c3=838p1??j:c08941b2:;0q~?lf;296~;5:908=63>a9806>{t9o=1<7g4<582;6>?4}r3g4?6=:r79><4<1:?2e<<4:2wx=k650;0x97462k801<6>:238yv7c93:1>v3=23805>;6ih08>6s|1g;94?4|5;896o<4=0:1>677>52z?166<4927:mo4<2:p5cg=838p1?<<:c0894>42:;0q~?k3;296~;5:=08=63>ab806>{t9oh1<7g4<582?6>?4}r3g0?6=:r79>84<1:?2ea<4:2wx=km50;0x97422k801<6::238yv7c=3:1>v3=27805>;6il08>6s|1gf94?4|5;8=6o<4=0:5>6752z?162<4927:mk4<2:p5cc=838p1?<8:c0894>02:;0q~?k7;296~;5:108=63>b1806>{t9ol1<7g4<58236>?4}r3g44<1:?2f7<4:2wx>=>50;0x974>2k801<66:238yv4483:1>4u219;96g=:9121>o5219596g=:91<1>o5219796g=:91>1>o5219196g=:9181>o5219396g=:91:1>o5216g96g=:9>n1>o5216a96g=:9>h1>o5216c96g=:9>31>o5216:96g=:9>=1>o5216496g=:9>?1>o5216196g=:9>81>o5216396g=:9>:1>o5217d96g=:9?o1>o5217f96g=:9?i1>o5217`96g=:9?k1>o5219d96g=:91o1>o5219f96g=:91i1>o5219`96g=:91k1>o5216d96g=:9>>1>o5217;96g=:9?21>o521039eg=z{89h6=4={<33b?ge34;:j7:<;|q206<72;q6=9=5ac9>514=<81v<:;:181873<3ki70?;2;61?xu6<<0;6?u21579eg=:9=818>5rs063>5<5s4;?>7:;;<374?2?3ty:><4?:3y>577=ik16=?>5409~w4452909w0?=2;ca?87583>97p}>2283>7}:9;91mo52132906=z{8;n6=4={<32a?ge34;:j7:;;|q25c<72;q6=?>5459>54`=<11v:850;0x94262hh01<:?:568yxu5i>0;6?uQ26d8971=:>l0(?:::828yv4f=3:1>vP=7d9>62<5?l1/>9;5909~w7g32909wS<8d:?13?40l2.988467:p6d5=838pR?9l;<04>71d3-8?977j;|q1e7<72;qU>:l4=35962d<,;>>68<4}r0b5?6=:rT9;l5226813d=#:=?19i5rs3c3>5<5sW8<563=7;04=>"5<<0=46s|28d94?4|V;=370<8:35;?!43=37}Y:>=01?952658 7222>:0q~<6d;296~X5??16>:4=779'613=?81v?7m:181[40<279;7<84:&100<0:2wx>4o50;0xZ714348<6?9<;%071?143ty9544?:3y]624<5;=1>:<4$366>2252z\134=::>09;<5+257930=z{;3<6=4={_044>;5?38<<6*=44842>{t:0<1<7<3:1>vP=6e9>62<5>m1/>9;5789~w7?42909wS<9c:?13?41k2.98848a:p6<4=838pR?8m;<04>70e3-8?979m;|q1=5<72;qU>;74=35963?<,;>>6:m4}r0;b?6=:rT9:55226812==#:=?1;i5rs3:f>5<5sW8=;63=7;053>"5<<07}Y:??01?952778 72221:0q~<7b;296~X5>=16>:4=659'613=081v?6n:181[41;279;7<93:&1005750;0xZ705348<6?8=;%071?>43ty9454?:3y]637<5;=1>;?4$366>=252z\125=::>09:=5+2579<0=z{;kn6=4={_0;1>;5?38396*=448;2>{t:hn1<7vP=839>62<50;1/>9;5889~w7gf2909wS<71:?13?4?92.98847a:p6d?=838pR?6?;<04>7>73-8?976m;|q1e=<72;qU>:;4=359623<,;>>65m4}r0:g?6=:rT9:l5226812d=#:=?14i5rs3;2>5<5sW8>j63=7;06b>"5<<03i6s|29494?4|V;?n70<8:37f?!43=32m7p}<2c83>7}Y;;h01?9533`8 7222080q~=<2;296~X4;;16>:4<339'613=1:1v>=;:181[54<279;7=<4:&100<><2wx?>l50;0xZ65e348<6>=m;%071??23ty88<4?:3y]717<5;=1?9?4$366><052z\1`5=::>09h=5+2579===z{;l=6=4={_0`b>;5?38hj6*=448:=>{t:o?1<7vP=cb9>62<5kj1/>9;59b9~w7`52909wS7ef3-8?977i;|q1b5<72;qU>n74=3596f?<,;>>6l>4}r0fb?6=:rT9o5522681g==#:=?1m<5rs3gf>5<5sW8h;63=7;0`3>"5<<0j>6s|2da94?4|V;i>70<8:3a6?!43=3k87p}=ec83>7}Y:j>01?952b68 7222h>0q~:4=c29'613=i<1v?k6:181[4d:279;72wx>h650;0xZ7e6348<6?m>;%071?g03ty9i:4?:3y]6f6<5;=1>n>4$366>d>52z\1fc=::>09nk5+257916=z{;o>6=4={_0aa>;5?38ii6*=44860>{t:l>1<7vP=b`9>62<5jh1/>9;5569~w7c72909wS7d?3-8?97;6;|q1``<72;qU>o94=3596g1<,;>>68o4}r0g`?6=:rT9n;522681f3=#:=?19o5rs3f`>5<5sW8i963=7;0a1>"5<<0>o6s|2e`94?4|V;h?70<8:3`7?!43=3?n7p}=d`83>7}Y:k901?952c18 7222:4=b39'613=>91v?j7:181[4e9279;7kh50;0xZ7b1348<6?j9;%071?053ty9jh4?:3y]6a3<5;=1>i;4$366>3552z\1`1=::>09h95+257921=z{;lh6=4={_0g7>;5?38o?6*=44851>{t:oh1<7vP=c79>62<5k?1/>9;5689~w7cc2909wS7d73-8?978m;|q1`2<72;qU>lh4=3596d`<,;>>6;m4}r135?6=:rT8<<52268044=#:=?1:i5rs224>5<5sW9;;63=7;133>"5<<0=i6srn974>5<5sA8?:6sa84:94?4|@;>=7p`75883>7}O:=<0qc6:a;296~N52we48m50;0xL7213td39i4?:3yK610i7>52zJ103=zf1?m6=4={I072>{i0?:1<780;6?uG2548yk>1:3:1>vF=479~j=042909wE<;6:m<32=838pD?:9;|l;20<72;qC>984}o:52?6=:rB98;5rn944>5<5sA8?:6sa87:94?4|@;>=7p`76883>7}O:=<0qc69a;296~N52we4;m50;0xL7213td3:i4?:3yK61052zJ103=zf1{i0>:1<70:3:1>vF=479~j=142909wE<;6:m<22=838pD?:9;|l;30<72;qC>984}o:42?6=:rB98;5rn954>5<5sA8?:6sa86:94?4|@;>=7p`77883>7}O:=<0qc68a;296~N52we4:m50;0xL7213td3;i4?:3yK61052zJ103=zf1=m6=4={I072>{i01:1<7?:3:1>vF=479~j=>42909wE<;6:m<=2=838pD?:9;|l;<0<72;qC>984}o:;2?6=:rB98;5rn9:4>5<5sA8?:6sa89:94?4|@;>=7p`78883>7}O:=<0qc67a;296~N52we45m50;0xL7213td34i4?:3yK61052zJ103=zf12m6=4={I072>{i00:1<7>:3:1>vF=479~j=?42909wE<;6:m<<2=838pD?:9;|l;=0<72;qC>984}o::2?6=:rB98;5rn9;4>5<5sA8?:6sa88:94?4|@;>=7p`79883>7}O:=<0qc66a;296~N52we44m50;0xL7213td35i4?:3yK61052zJ103=zf13m6=4={I072>{i0h:1<7f:3:1>vF=479~j=g42909wE<;6:m984}o:b2?6=:rB98;5rn9c4>5<5sA8?:6sa8`:94?4|@;>=7p`7a883>7}O:=<0qc6na;296~N52we4lm50;0xL7213td3mi4?:3yK61051zJ103=zf>3j6=4>{I072>{i?0h1<7?tH365?xh01j0;6l3:1=vF=479~j2?b290:wE<;6:m3<`=83;pD?:9;|l4e5<728qC>984}o5b5?6=9rB98;5rn6c1>5<6sA8?:6sa7`194?7|@;>=7p`8a583>4}O:=<0qc9n5;295~N52we;l950;3xL7213td51zJ103=zf>kj6=4>{I072>{i?hh1<7?tH365?xh0ij0;6984}o5a5?6=9rB98;5rn6`1>5<6sA8?:6sa7c194?7|@;>=7p`8b583>4}O:=<0qc9m5;295~N52we;o950;3xL7213td51zJ103=zf>hj6=4>{I072>{i?kh1<7?tH365?xh0jj0;6984}o5`5?6=9rB98;5rn6a1>5<6sA8?:6sa7b194?7|@;>=7p`8c583>4}O:=<0qc9l5;295~N52we;n950;3xL7213td51zJ103=zf>ij6=4>{I072>{i?jh1<7?tH365?xh0kj0;6984}o5g5?6=9rB98;5rn6f1>5<6sA8?:6sa7e194?7|@;>=7p`8d583>4}O:=<0qc9k5;295~N52we;i950;3xL7213td51zJ103=zf>nj6=4>{I072>{i?mh1<7?tH365?xh0lj0;6984}o5f5?6=9rB98;5rn6g1>5<6sA8?:6sa7d194?7|@;>=7p`8e583>4}O:=<0qc9j5;295~N52we;h950;3xL7213td51zJ103=zf>oj6=4>{I072>{i?lh1<7?tH365?xh0mj0;6984}o5e5?6=9rB98;5rn6d1>5<6sA8?:6sa7g194?7|@;>=7p`8f583>4}O:=<0qc9i5;295~N52we;k950;3xL7213td51zJ103=zf>lj6=4>{I072>{i?oh1<7?tH365?xh0nj0;6984}o:35?6=9rB98;5rn921>5<6sA8?:6sa81194?7|@;>=7p`70583>4}O:=<0qc6?5;295~N59:182M43>2we4=950;3xL7213td3<54?:0yK61051zJ103=zf1:j6=4>{I072>{i09h1<7?tH365?xh?8j0;67l3:1=vF=479~j=6b290:wE<;6:m<5`=83;pD?:9;|l;55<728qC>984}o:25?6=9rB98;5rn931>5<6sA8?:6sa80194?7|@;>=7p`71583>4}O:=<0qc6>5;295~N52we4<950;3xL7213td3=54?:0yK61051zJ103=zf1;j6=4>{I072>{i08h1<7?tH365?xh?9j0;66l3:1=vF=479~j=7b290:wE<;6:m<4`=83;pD?:9;|l;65<728qC>984}o:15?6=9rB98;5rn901>5<6sA8?:6sa83194?7|@;>=7p`72583>4}O:=<0qc6=5;295~N52we4?950;3xL7213td3>54?:0yK61051zJ103=zf18j6=4>{I072>{i0;h1<7?tH365?xh?:j0;65l3:1=vF=479~j=4b290:wE<;6:m<7`=83;pD?:9;|l;75<728qC>984}o:05?6=9rB98;5rn911>5<6sA8?:6sa82194?7|@;>=7p`73583>4}O:=<0qc6<5;295~N52we4>950;3xL7213td3?54?:0yK61051zJ103=zf19j6=4>{I072>{i0:h1<7?tH365?xh?;j0;64l3:1=vF=479~j=5b290:wE<;6:m<6`=83;pD?:9;|l;05<728qC>984}o:75?6=9rB98;5rn961>5<6sA8?:6sa85194?7|@;>=7p`74583>4}O:=<0qc6;5;295~N52we49950;3xL7213td3854?:0yK61051zJ103=zf1>j6=4>{I072>{i0=h1<7?tH365?xh?3l3:1=vF=479~j=2b290:wE<;6:m<1`=83;pD?:9;|l;15<728qC>984}o:65?6=9rB98;5rn971>5<6sA8?:6sa84194?7|@;>=7p`75583>4}O:=<0qc6:5;295~N52wvqpNOCz;`7?1fm?:m4pNOBz2~DEV|uIJuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk.v000066400000000000000000000121001224274632000216520ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_16x40_2clk.v when simulating // the core, fifo_xlnx_16x40_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_16x40_2clk( din, rd_clk, rd_en, rst, wr_clk, wr_en, dout, empty, full); input [39 : 0] din; input rd_clk; input rd_en; input rst; input wr_clk; input wr_en; output [39 : 0] dout; output empty; output full; // synthesis translate_off FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(4), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(40), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(40), .C_ENABLE_RLOCS(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(1), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(0), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(0), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(0), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(2), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("512x72"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(15), .C_PROG_FULL_THRESH_NEGATE_VAL(14), .C_PROG_FULL_TYPE(0), .C_RD_DATA_COUNT_WIDTH(4), .C_RD_DEPTH(16), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(4), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(0), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(4), .C_WR_DEPTH(16), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(4), .C_WR_RESPONSE_LATENCY(1)) inst ( .DIN(din), .RD_CLK(rd_clk), .RD_EN(rd_en), .RST(rst), .WR_CLK(wr_clk), .WR_EN(wr_en), .DOUT(dout), .EMPTY(empty), .FULL(full), .CLK(), .INT_CLK(), .BACKUP(), .BACKUP_MARKER(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .RD_RST(), .SRST(), .WR_RST(), .ALMOST_EMPTY(), .ALMOST_FULL(), .DATA_COUNT(), .OVERFLOW(), .PROG_EMPTY(), .PROG_FULL(), .VALID(), .RD_DATA_COUNT(), .UNDERFLOW(), .WR_ACK(), .WR_DATA_COUNT(), .SBITERR(), .DBITERR()); // synthesis translate_on endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk.veo000066400000000000000000000060171224274632000222100ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_16x40_2clk YourInstanceName ( .din(din), // Bus [39 : 0] .rd_clk(rd_clk), .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), .wr_en(wr_en), .dout(dout), // Bus [39 : 0] .empty(empty), .full(full)); // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_16x40_2clk.v when simulating // the core, fifo_xlnx_16x40_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk.xco000066400000000000000000000045501224274632000222100ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version K.39 # Date: Tue May 11 20:27:53 2010 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = False SET asysymbol = False SET busformat = BusFormatAngleBracketNotRipped SET createndf = False SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = False SET foundationsym = False SET implementationfiletype = Ngc SET package = fg456 SET removerpms = False SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = True SET vhdlsim = False # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=false CSET component_name=fifo_xlnx_16x40_2clk CSET data_count=false CSET data_count_width=4 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET fifo_implementation=Independent_Clocks_Distributed_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=15 CSET full_threshold_negate_value=14 CSET input_data_width=40 CSET input_depth=16 CSET output_data_width=40 CSET output_depth=16 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=No_Programmable_Full_Threshold CSET read_clock_frequency=1 CSET read_data_count=false CSET read_data_count_width=4 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=false CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=false CSET write_data_count_width=4 # END Parameters GENERATE # CRC: 6bcb05e1 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt000066400000000000000000000120161224274632000310760ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk_flist.txt000066400000000000000000000004151224274632000234330ustar00rootroot00000000000000# Output products list for fifo_xlnx_16x40_2clk.ngc fifo_xlnx_16x40_2clk.v fifo_xlnx_16x40_2clk.veo fifo_xlnx_16x40_2clk.xco fifo_xlnx_16x40_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt fifo_xlnx_16x40_2clk_flist.txt fifo_xlnx_16x40_2clk_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk_readme.txt000066400000000000000000000026241224274632000235530ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_16x40_2clk' in directory /home/matt/sourcerepo/fpga/usrp2/coregen/: fifo_xlnx_16x40_2clk.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_16x40_2clk.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_16x40_2clk.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_16x40_2clk.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_16x40_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: Please see the core data sheet. fifo_xlnx_16x40_2clk_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. fifo_xlnx_16x40_2clk_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_16x40_2clk_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_16x40_2clk_xmdf.tcl000066400000000000000000000051261224274632000232170ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_16x40_2clk_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_16x40_2clk_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_16x40_2clk_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_16x40_2clk } # ::fifo_xlnx_16x40_2clk_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_16x40_2clk_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x40_2clk.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x40_2clk.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x40_2clk.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x40_2clk.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x40_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_16x40_2clk_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_16x40_2clk incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.asy000066400000000000000000000021111224274632000222350ustar00rootroot00000000000000Version 4 SymbolType BLOCK TEXT 32 32 LEFT 4 fifo_xlnx_2Kx36_2clk RECTANGLE Normal 32 32 544 672 LINE Wide 0 80 32 80 PIN 0 80 LEFT 36 PINATTR PinName din[35:0] PINATTR Polarity IN LINE Normal 0 144 32 144 PIN 0 144 LEFT 36 PINATTR PinName wr_en PINATTR Polarity IN LINE Normal 0 176 32 176 PIN 0 176 LEFT 36 PINATTR PinName wr_clk PINATTR Polarity IN LINE Normal 0 240 32 240 PIN 0 240 LEFT 36 PINATTR PinName rd_en PINATTR Polarity IN LINE Normal 0 272 32 272 PIN 0 272 LEFT 36 PINATTR PinName rd_clk PINATTR Polarity IN LINE Normal 144 704 144 672 PIN 144 704 BOTTOM 36 PINATTR PinName rst PINATTR Polarity IN LINE Wide 576 80 544 80 PIN 576 80 RIGHT 36 PINATTR PinName dout[35:0] PINATTR Polarity OUT LINE Normal 576 208 544 208 PIN 576 208 RIGHT 36 PINATTR PinName full PINATTR Polarity OUT LINE Wide 576 368 544 368 PIN 576 368 RIGHT 36 PINATTR PinName wr_data_count[11:0] PINATTR Polarity OUT LINE Normal 576 432 544 432 PIN 576 432 RIGHT 36 PINATTR PinName empty PINATTR Polarity OUT LINE Wide 576 592 544 592 PIN 576 592 RIGHT 36 PINATTR PinName rd_data_count[11:0] PINATTR Polarity OUT uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.ngc000066400000000000000000004036501224274632000222250ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.4e $7134g<,[o}e~g`n;"2*413&;$>"9 > %10?*nhel%fmyz cnpfc`h(|dz$Sni fhdl[}jipV8@t>8P2bnh*kah92:87=>?4193456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0127?5650;1;495?8122?45<9'::86?>:HLSQQ50?37?47=AGZ^X7OKDS@?55<76;:0=<4FNQWW>uthoVof|ywPtipfwm:683:5>:5>1;KMTPR=x{elShctx]wlwct`Vkxh|{<0294;4038;1EC^ZT;rqkbYbey~rSyf}erj\j`af|l6:<7>11g925?OIX\^1|ah_gwohZrozlyc0<>50?05?47=AGZ^X7~}of]eqijX|axneQnsrgqp9772949:6?>:HLSQQ0;2=5d=6:3E^X][[:ecweZeh}g~7=<4?>0f8570f8570385?OIX\^1HD^N<183:47<93CE\XZ5DHRA85<76880=7AZTQWW>AIWI5:1<3?=;08LQQVR\3ND\O2?:1<2?72<:9:;>6<74:1355753:<1EC^ZT;fjj952294:86=9:NWWTPR=lf0>;50?f87v4789ll888"50970>2DKJ>099;:1:47?36D8;1=>9599847?3?F9;1=O959CBA1?3C53>L?7:HIF09;6>>7<22;<=<48333?=11:;7?<671;12:95667;7?D650=1J:LO7;@FGVD:76k1JHI\N<0294;?99B@ATF48437LJKR@>1:==FLMXJ0>07;@FGVD:3611JHI\N<4<;?DBCZH6=255NDEPB828?3HNO^L27>99B@ATF40437LJKRC>3:g=FLMXI0<>50?;8EABUJ5;;255NDEPA848?3HNO^O2=>99B@ATE4:437LJKRC>7:==FLMXI0807;@FGVG:1611JHI\M<6<;?DBCZK63255NDEPA8<833HO;845NSXL@[WC@<2H84=:4B@CB7>DR:11IY^QFNGM2?F40OL6N2:AF57=D@LI@SAGLEOQF[Q_WM;1HE95LLJC7?FJLJ:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6JF6:FJE969>2NBM1?16:FJE949>2NBM1=16:FJE929>2NBM1;16:FJE90902NBM1950?48@LG;?7<0HDL30?48@LD;97<0HDL32?48@LD;;7<0HDL34?48@LD;=7<0HDL36?:8@LD;?3:5:6JFB=5==>BNXH6;6=08;EKSE96912NB\O2?:1<4?AOWJ5:5:6J@A=2=2>BHI5;5:6J@A=0=2>BHI595:6J@A=6=2>BHI5?5:6J@A=4=<>BHI5=1<384DNC?3;0384DN@?7;02NDN1919:FLTD:7294<7IA_A=2==>BHXK6;6=08;EMSF96992O?7HMN029FJD5@CKY90JI^;;GFSA0=Aieyn=6I<;FLG5>O53@:97D?=;H01?L5?3@DBX]Q?099JJLRWW9;37D@FTQ]36==NF@^[S==7;HLJPUY7<11BBDZ__17;?LHN\YU;:55FNHVS[51>3@DBX^ZNTD58MKOSW9:<7D@FT^223>OIA]U;>:5FNHV\461=0ECG[_1:4?LHN\V:2;6GAIU]3E2=NF@^TK7:KMMQY7M>1BBDZP0G58MKOSW8:<7D@FT^323>OIA]U:>:5FNHV\561669JJLRX9>=0ECG[_0:4?LHN\V;2;6GAIU]2E2=NF@^T=O94IOKW[4E03@DBXR?K7:KMMQY6M>1BBDZP1G58MKOSW;:<7D@FT^023>OIA]U9>:5FNHV\661=0ECG[_3:4?LHN\V82;6GAIU]1E2=NF@^T>O94IOKW[7E03@DBXR1BBDZP2G58MKOSW::<7D@FT^123>OIA]U8>:5FNHV\761:8;HLJPZ52?2CEEYQ<669JJLRX;>=0ECG[_2:4?LHN\V92;6GAIU]0E2=NF@^T?O94IOKW[6E03@DBXR=K7:KMMQY4M>1BBDZP3G48MKOSWH<0ECG[_C18MKP43@EI>6BF2:NL2>JHIMOO;6B@GHABH1=K]];?7A[[259OQQ513E__?RJ9;MWW7ZJ33E__8;5CUU6\@0=J[NEE96CZXB[`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`<;O226>H6;2D:<95A11:7?K771:1E=<:4N0320>H69:>0B0B<=?4:L27423268J453<2D:?8:4N0150>H6;>>0B<=74:L27<5?7C?;059M51733G;?>95A1517?K73<=1E=9;;;O3721=I9==?7C?;859M51?43G;>86@>5168J436<2D:9?:4N0700>H6==>0B<;:4:L21325968J43>;2D::95A1727?K719=1E=;<;;O3571=I9?>?7C?9559M53033G;=;>5A1668J415<2D:;>:4N0570>H6?<>0B<994:L23227818J4>33G;3<95A1937?K7?:=1E=5=;;O3;21=I91=?7C?7859M5=?43G;286@>9168J4?6<2D:5?:4N0;00>H61=>0B<7:4:L2=32H50:1E>4=4N220?K56;2D8>>5A3218J6243G9>?6@<629M725H2=:1E9;<4N708J24?_Sgpqir6;:1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UiecQwos2344YUmzgx<=<;T2,cw`)zo%lou lljz,I}iuW{nT|cz}_ckm[}iu89:9S_k|umv276=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwYeagUsc>?02]Qavsk|8987X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySoga_ymq4563W[oxyaz>329V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]amkYg{:;<8Q]erwop4543\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWkceSua}0125[Wct}e~:?>5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQmio]{kw678>UYi~{ct010?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[goiWqey<=>7_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]q`Zvi|{UloRv`r1234ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw6788UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4560W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;4R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?08]Qavsk|89?7X> gsd-vc)`kq$h`fv Mymq[qkwWkgyh>P0^zlv5678Vrd0<0=1268Q5)`zo$yj"ilx/aoo})JpfxTx`~Pv`nva5Y7Wqey<=>?_ym?7;56;:1^<"i}f/pe+be&jf`t"Cwos]wiuYqienPxnp3456Xpf6?2<=8;T2,cw`)zo%lou lljz,I}iuW}g{S{ocud2\4Z~hz9:;R>Pxnp3456XZly~`y?<3:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^`jjZ~hz9:;=4U1-dvc(un&mht#mcky-N|jtX{U{by|Pbhl\|jt789S7'nxm"h gbz-gim'Drd~Ry}_qlwvZdnfVrd~=>?7^Pfwpjs9:90Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTnd`Pxnp345>XZly~`y?<3:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^`jjZ~hz9:;5R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?01]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3457XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:9S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?3^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2341YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789?T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>9_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1233ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw6781UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=7PRdqvhq76=2_;#j|i.sd,cf~)keas#C=>5:W3+bta&{l$knv!cmi{+K3592_;#j|i.sd,cf~)keas#jPpovq[goi4949>6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<>1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=3=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj949:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf595><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1:1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=7=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj909:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5=5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb161209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=;=65=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ6582_;#j|i.sd,cf~)keas#jPpovq[goiW88:7X> gsd-vc)`kq$h`fv re]sjqtXj`dT== gsd-vc)`kq$h`fv re]sjqtXj`dT:?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ8219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^:14>S7'nxm"h gbz-gim'{nT|cz}_ckm[<413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=6:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4566:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?2348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678:8=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01612>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:>>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123270<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<:<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp345>582_;#j|i.sd,cf~)keas#jPpovq[be;878:7X> gsd-vc)`kq$h`fv re]sjqtXoj6:<3>328Q5)`zo$yj"ilx/aoo})ulVzexQhc=0=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`868582_;#j|i.sd,cf~)keas#jPpovq[be;<78;7X> gsd-vc)`kq$h`fv re]sjqtXoj6>2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo181219V4*aun'xm#jmw.bnh|*tcWyd~Ril<6<14>S7'nxm"h gbz-gim'{nT|cz}_fa?<;473\:$kh!rg-dg}(ddbr$~iQnup\cf:>68l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV::j6[?/fpe*w`(ojr%oaew/sf\tkruWniT=?>4U1-dvc(un&mht#mcky-q`Zvi|{UloR??1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_33e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]05c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[17a3\:$kh!rg-dg}(ddbr$~iQnup\cfY29o1^<"i}f/pe+be&jf`t"|k_qlwvZadW?;m7X> gsd-vc)`kq$h`fv re]sjqtXojU<=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS5?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ6279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:76;=0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi311<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5;5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>1:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm7?3<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8185>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1;1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:16;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi37?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4149:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=;=60=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnU;>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]263=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnU:24;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?31?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7>3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;;7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?0;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?35?0:?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;7:3<6;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7;?7827X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3?<;4>3\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{olSi?39?0;?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`Wm;T gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\07><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:<>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012;60=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:2>:5Z0.eqb+ta'nis"nbdx.vntZpfd|o;S=Qwos2345403\:$kh!rg-dg}(ddbr$x`~Pv`nva7Y7Wqey<=>?209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=2=67=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj9776;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag6:2??4U1-dvc(un&mht#mcky-tvZvi|{Uiec2=>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>0:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:36;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag6>2??4U1-dvc(un&mht#mcky-tvZvi|{Uiec29>338Q5)`zo$yj"ilx/aoo})pzVzexQmio>4:77<]9%l~k }f.e`|+ekcq%|~R~ats]amk:?6;;0Y=!hrg,qb*adp'iggu!xr^rmpwYeag622?>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ?219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^315>S7'nxm"h gbz-gim'~xT|cz}_ckm[46582_;#j|i.sd,cf~)keas#z|Ppovq[goiW;8;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT??>4U1-dvc(un&mht#mcky-tvZvi|{UiecQ;219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^714>S7'nxm"h gbz-gim'~xT|cz}_ckm[3473\:$kh!rg-dg}(ddbr${Qnup\flhX?;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU3>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR7=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4567:?1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678:8=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01612>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:>>;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123270<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<:<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp345>5>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>6219V4*aun'xm#jmw.bnh|*quWyd~Ril<1<15>S7'nxm"h gbz-gim'~xT|cz}_fa?558582_;#j|i.sd,cf~)keas#z|Ppovq[be;978;7X> gsd-vc)`kq$h`fv ws]sjqtXoj692?>4U1-dvc(un&mht#mcky-tvZvi|{Ulo1=1219V4*aun'xm#jmw.bnh|*quWyd~Ril<5<14>S7'nxm"h gbz-gim'~xT|cz}_fa?1;473\:$kh!rg-dg}(ddbr${Qnup\cf:16;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5=5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh050=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm39?3e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]35c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[4473\:$kh!rg-dg}(ddbr${Qnup\cfY688l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV8:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT?f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP50d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^42b>S7'nxm"h gbz-gim'~xT|cz}_fa\34`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ>6n2_;#j|i.sd,cf~)keas#z|Ppovq[beX1;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi30?04?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`48:5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>2:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7>3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8685>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1:1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:26;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi36?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4>49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=:=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn622?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\473<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT=?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\55423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS?<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[6423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS9<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[0423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS;<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[2423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS5<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[<4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?30?0b?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7==0=9:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6484956[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2878512_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj><2<1=>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:090=9:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb64<4956[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2838512_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj><6<1=>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:050=9:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6404946[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2[54?3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?P13;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U:S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S9<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X=;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]56==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R9=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W1837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\=73<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ~hz9:;?;4U1-dvc(un&mht#mcky-tvZvi|{UloRv`r123773<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ~hz9:;8?;4U1-dvc(un&mht#mcky-tvZvi|{UloRv`r123173<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ~hz9:;:?;4U1-dvc(un&mht#mcky-tvZvi|{UloRv`r123373<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ~hz9:;4?;4U1-dvc(un&mht#mcky-tvZvi|{UloRv`r123=6><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)JimnT~iQkc^k\eabt}k:;<=??399V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYulVnhSdQndeqvf567888846[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@okd^pg[aeXaVkoh~{m0123515?3\:$kh!rg-dh5(ul&my=#i}db0-vae(EhnoSjPdb]j[dbc{|h;<=>>62:8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NeabXzmUooRgPaefpqg6789;3?:5Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"Cnde]q`ZbdW`Ujhi}zb12347503\:$kh!rg-dh5(ul&my=#i}db0-vae(EhnoSjPdb]j[dbc{|h;<=>;369V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYulVnhSdQndeqvf5678?9<7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$Aljk_sf\`fYnWhnoxl?012;7f=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*KflmUyhRjl_h]b`aurj9:;S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWjs7<3=7;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\g|:66:20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qly=0=7==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*Kt}kUoekhPws]q`ZrjxVir0>0<8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[f;<7937X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pcx>6:6><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUhu181399V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.OpqgYcaolT{Q}d^vntZe~4>4846[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_b{?<;5?3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzTot26>2;8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYk}}6;2>o4U1-dvc(un&mg<#|k/fp2*btck;$yhn!Bst`\`l`aW~xT~iQ{mq]oqq:687927X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?5;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz32?1:?P6(o{l%~k!hl1,q`*au9'myhn gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?1;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz36?1:?P6(o{l%~k!hl1,q`*au9'myhn gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?=;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzTtb|30?1b?P6(o{l%~k!hl1,q`*au9'myhn!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu484856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq878412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<2<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey090<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu4<4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq838412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<6<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey050<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu4048<6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#igif^uq[wbX|dz7<3<7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX8;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]26<=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeR??289V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaV;:>55Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZ4502_;#j|i.sd,ci6)zm%l~< hrea1*wbd'{nThnQf_20;?P6(o{l%~k!hl1,q`*au9'myhnS7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS:<7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX0;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]:74=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236969;;1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^ov|567:5:5=><4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;0?17?P6(o{l%~k!hl1,q`*au9'myhn.fpgg7(ulj%yhRjl_h]nq}678;6:<3<:_RU371=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx12369776;2886[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#jPdb]j[hs89:90<>13017?P6(o{l%~k!hl1,q`*au9'myhn.fpgg7(ulj%yhRjl_h]nq}678;6:<3:<4:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnWds<=>=<02=04503\:$kh!rg-dh5(ul&my=#i}db0-vae(zmUooRgPmtz3454;994?S^Y?369V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=33:1YT_8997X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k\ip~78987=<0<3:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnWds<=>=<03=567<]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSdQbuy2347:66:80Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]nq}678;6:2<=>;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoXe|r;<=<32?11?P6(o{l%~k!hl1,q`*au9'myhn6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#jPdb]j[hs89:90>0>309V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=6=77=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx12369299:>0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]nq}678;6?2399V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=6=547X[^:8=6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#jPdb]j[hs89:9080<2:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnWds<=>=<4<274=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236909;>1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^ov|567:5<5=#|kc.pg[aeXaVg~t=>?2=5=70=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236919WZ];?85Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZkrp9:;>191_RU27<=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236919WZ]:S^Y?309V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=:=70=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx12369>9WZ]9?<5Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZkrp9:;>171329V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=;=5<553\:$kh!rg-dh5(ul&my=#i}db0-vae(zmUooRgPmtz3454;1788?6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#jPdb]j[hs89:9040=0218Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`Ufyu>?03>::665i2_;#j|i.sd,ci6)zm%l~< }fvdw+WGJW[NTICQIWGV26<=R8&myj#|i/fn3*wb(o{;%~kyit.PBIZTBOF__SH@>2c9V4*aun'xm#jb?.sf,cw7)zo}mx"\NM^TBHLBXN^L_=<=<;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTJ^CPFGf273=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^DPIZ@Al8'Bb>64U1-dvc(un&mg<#|k/fp2*w`pn}%hy|Pfvdw[vrf|lUM_@QIFe3.Mk76;:1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ@TEVLMh?=9;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTJ^CPFGf1)Lh402_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[CUJWOLo> Ga100;?P6(o{l%~k!hl1,q`*au9'xm{kz elrw}Z`pn}Umn?94U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZo5m2_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^mq4567:o1^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_h]lv567888>7X> gsd-vc)`d9$yh"i}1/pescr(}zoyS{ocie0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7<3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;97827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?6;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz33?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7832g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U;]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e7'ng~t#ib[4_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1>1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?5;443\:$kh!rg-dh5(ul&mym~ }suq,g5)q9585>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?33?00?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5929::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';793o5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?P1^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=RTmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X=Vddx=>?000:?P6(o{l%~k!hl1,q`*auiz$yy} c0-`ewt~fl~7<3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o gsd-vc)`d9$yh"i}ar,qwqu(k8%hm|vndv?6;4>3\:$kh!rg-dh5(ul&mym~ }suq,g4)di{xrbhz33?0:?P6(o{l%~k!hl1,q`*auiz$yy} c0-`ewt~fl~7832g9V4*aun'xm#jb?.sf,cwgt&{y"m>/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g4)`e|r%k`U;]/enw+kt:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[4_-chu)ez887X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1>1229V4*aun'xm#jb?.sf,cwgt&{y"m>/w3?5;443\:$kh!rg-dh5(ul&mym~ }suq,g4)q9585>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?33?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5929::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';793o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P1^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=RTmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a2+s7X=Vddx=>?0003?P6(o{l%~k!hl1,q`*auiz$yy} cnos476<]9%l~k }f.eo4+tc'nxj#||tr-`khv6:01^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j75=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np3456492_;#j|i.sd,ci6)zm%l~l}!rrvp+wgjWlg{xtQib^k\kw6789;:j6[?/fpe*w`(oe:%~i!}al]ueiocWo}mx?=4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov10>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|88>7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{1107?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs:;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz<259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq25<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex8<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw272<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~<>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu:10>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|0827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?4;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw30?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2>>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6:2R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq585>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}949W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8685k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<2<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw34?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs783Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6>2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:26Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}909:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=4=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<6<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0:0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7436;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>::Zts:h1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>3:7d<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|311<1a>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1??>^pw6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2>>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx7>36:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|36?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0:0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz525>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:>68l0Y=!hrg,qb*ak8'xo#~ats-`kphs4949<6[?/fpe*w`(oe:%~i!}povq+firf}6:<3?i;T2,cw`)zo%l`= }d.psjqt(kfex1?11g9V4*aun'xm#jb?.sf,vuhsz&idycz32?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=1=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?0;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9399o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;>7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5=5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~743?i;T2,cw`)zo%l`= }d.psjqt(kfex1711d9V4*aun'xm#jb?.sf,vuhsz&idyczP00g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_03e?P6(o{l%~k!hl1,q`*twf}x$ob{at^335`=R8&myj#|i/fn3*wb(zyd~"m`uov\64c<]9%l~k }f.eo4+tc'{zex!lotlw[67b3\:$kh!rg-dh5(ul&x{by| cnwmpZ26m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY29l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX>8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW>;n7X> gsd-vc)`d9$yh"|nup,gjsi|V2:i6[?/fpe*w`(oe:%~i!}povq+firf}U2>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2?>318Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?5585:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95;5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2=>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?7;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64=49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1;1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>5:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;?7897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:050=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=;=64=R8&myj#|i/fn3*wb(zyd~"m`uov\`4Y7:81^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8U:>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th0338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\677<]9%l~k }f.eo4+tc'{zex!lotlw[a7X;;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T8??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P5338Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3\277<]9%l~k }f.eo4+tc'{zex!lotlw[a7X?;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T4??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P93;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6?2?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV:R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT5\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28185;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86>2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y2Wge<=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h>"mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d:&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`6*efz{seiy2<>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.abvwim}6?2?h4U1-dvc(un&mg<#y}/fubw+qt|z%h>"ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV:R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT5\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185;2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~86>2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W=Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y2Wge<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4502_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`Rhm_h06?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkW`8h7X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_h]lv5678;n0Y=!hrg,qb*ak8'}y#jyns/uppv)uidUmyabPi^mq45679:i0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GjhiQxr^fbpdYdg|dSdQnde234577;j1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234444k2_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSz|Pd`vb[firf}UbSljk0123515d3\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnT{Qkauc\gjsi|VcTmij?012226e<]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmU|~Rjnt`]`kphsW`Ujhi>?013;7g=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclV}ySio{a^alqkrXaVkoh=>?031a?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabX{UomyoPcnwmpZoXimn;<=>;3c9V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZquWmkmRm`uov\mZgcl9:;<;=m;T2,cw`)zo%l`= xr.et`f7)minty!Baef\swYci}kTob{at^k\eab789:38<5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vir0<>1429V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZquWmkmRm`uov\mZgcl9:;0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GjhiQxr^fbpdYdg|dSdQnde2345Yg{6:<3?>489V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZquWmkmRm`uov\mZgcl9:;5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vrd~1<11060?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabX{UomyoPcnwmpZoXimn;<=>Pxnp?7;76<:1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234Z~hz5>5=<:;;T2,cw`)zo%l`= xr.et`f7)minty!Baef\swYci}kTob{at^k\eab789:Ttb|35?3251><]9%l~k }f.eo4+qu'n}oo< xdbg{p*KflmU|~Rjnt`]`kphsW`Ujhi>?01]{kw:268;:S^Y?429V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZquWmkmRm`uov\mZgcl9:;7;:855Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vrd~191103\WR7302_;#j|i.sd,ci6){%l{im>.vf`a}r(EhnoSz|Pd`vb[firf}UbSljk0123[}iu4>4:=Pxnp?3;769VY\?964U1-dvc(un&mg<#y}/fugg4(pljosx"Cnde]tvZbf|hUhcx`{_h]b`a6789Usc28>032[VQ3<:1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234Z~hz5=5=?:8;T2,cw`)zo%l`= xr.et`f7)minty!Baef\swYci}kTob{at^k\eab789:Ttb|37?31[VQ7<:1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234Z~hz525=<:<;T2,cw`)zo%l`= xr.et`f7)minty!Baef\swYci}kTob{at^k\eab789:Ttb|39?320==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclV}ySio{a^alqkrXaVkoh=>?0^zlv9?998;T_Z><7:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\g|:76:=0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rmv<0<03>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXkp692>94U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^az8684?2_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzTot2;>258Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZe~4<48;6[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pcx>5:61<]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVir0:0<7:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\g|:?6:=0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rmv<8<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXd|~7<3=6;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]oqq:687937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qcuu>2:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVf~x1<1399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[iss4:4846[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pltv?0;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUgyy2:>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZjr|5<5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_mww828402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzT`xz38?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYk}}622>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^zlv969;01^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sua}<02=7==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWqey0<0<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\|jt;:7937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qwos>0:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVrd~1:1399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[}iu4<4846[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pxnp?2;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUsc28>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZ~hz525?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_ymq8<85n2_;#j|i.sd,ci6){%l{im>.vf`a}r(l`lmSz|Pre]wiu:76;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV:9j6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcT=>>4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~TeR??319V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf_031b>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k\67`<]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\mZ55n2_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoX<;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV?9j6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcT:?h4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~TeR9=f:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRgP83d8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^;0=>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k\eab789:7==0<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRgPaef3456;97937X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`Ujhi>?01>1:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\mZgcl9:;<1=1399V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf_`fg45674=4846[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcTmij?012?1;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[lYflm:;<=29>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^cg`56785=5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbSljk01238=8402_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoXimn;<=>39?3g?P6(o{l%~k!hl1,tv*tfeV}ySh`Pi000?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by?=5:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp465<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw772<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~?>95Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu710>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|?8?7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{7368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr?:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by7=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4949o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az858Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?5;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw31?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2=>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp692R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq595>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}959W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8185k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<5<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw35?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs793Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6=2?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:16Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}919:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=5=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<9<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir050Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs753 gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8469:l1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQwos>24;Yu|;k0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPxnp?5;4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<3<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1=12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6?2?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;=78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8385i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=5=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc27>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx753?i;T2,cw`)zo%l`= xr.usjqt(kfex1>1219V4*aun'xm#jb?.vp,suhsz&idycz311<2b>S7'nxm"h gm2-sw)pxg~y#naznu>2:4`<]9%l~k }f.eo4+qu'~zex!lotlw8786n2_;#j|i.sd,ci6){%||cz}/bmvjq:468l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4=4:j6[?/fpe*w`(oe:%{!xpovq+firf}6>2f:W3+bta&{l$ka>!ws-ttkru'je~by28>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<9<2b>S7'nxm"h gm2-sw)pxg~y#naznu>::4c<]9%l~k }f.eo4+qu'~zex!lotlw[57b3\:$kh!rg-dh5(pz&}{by| cnwmpZ76n2_;#j|i.sd,ci6){%||cz}/bmvjqY688o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW;;n7X> gsd-vc)`d9$|~"ynup,gjsi|V9:i6[?/fpe*w`(oe:%{!xpovq+firf}U?=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T9e:W3+bta&{l$ka>!ws-ttkru'je~byQ71d9V4*aun'xm#jb?.vp,suhsz&idyczP9308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?4;443\:$kh!rg-dh5(pz&}{by| cnwmpZb648:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1:1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>6:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;>7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0:0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=:=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:>6;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;T gsd-vc)`d9$|~"ynup,gjsi|Vn:S><>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_502?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[0463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W?8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S:<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_902?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[<453\:$kh!rg-dh5(pz&}{by| cnwmpZb54949?6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1??>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?5;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54;49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1=1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>7:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;=7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90;0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=5=67=R8&myj#|i/fn3*rt(yd~"m`uov\`7:?6;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm8753<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_102?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[4453\:$kh!rg-dh5(pz&}{by| cnwmpZb5W8:9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^115>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z2592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V?9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R8=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^515>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z>592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V3::6[?/fpe*w`(elg$hb{{_h]353=R8&myj#|i/lgn+air|VcT=<94U1-dvc(un&gna"j`uu]j[466?2_;#j|i.sd,i`k(lfSdQ>1058Q5)`zo$yj"cjm.flqqYnW88:;6[?/fpe*w`(elg$hb{{_h]2741<]9%l~k }f.ofi*bh}}UbS<:>7:W3+bta&{l$ahc dnww[lY6=8=0Y=!hrg,qb*kbe&ndyyQf_0423>S7'nxm"h mdo,`jssW`U:;<94U1-dvc(un&gna"j`uu]j[4>6?2_;#j|i.sd,i`k(lfSdQ>9048Q5)`zo$yj"cjm.flqqYnW;;<7X> gsd-vc)jmd%ocxzPi^0352=R8&myj#|i/lgn+air|VcT>1^<"i}f/pe+hcj'me~xRgP2234?P6(o{l%~k!bel-gkprXaV8?=:5Z0.eqb+ta'dof#iazt^k\60703\:$kh!rg-nah)cg|~TeR<9169V4*aun'xm#`kb/emvpZoX:>;<7X> gsd-vc)jmd%ocxzPi^0;52=R8&myj#|i/lgn+air|VcT>4?9;T2,cw`)zo%fi`!kotv\mZ56?2_;#j|i.sd,i`k(lfSdQ<0058Q5)`zo$yj"cjm.flqqYnW:;:;6[?/fpe*w`(elg$hb{{_h]0641<]9%l~k }f.ofi*bh}}UbS>=>7:W3+bta&{l$ahc dnww[lY4<8=0Y=!hrg,qb*kbe&ndyyQf_2722>S7'nxm"h mdo,`jssW`U?=;5Z0.eqb+ta'dof#iazt^k\140<]9%l~k }f.ofi*bh}}UbS;?9;T2,cw`)zo%fi`!kotv\mZ16>2_;#j|i.sd,i`k(lfSdQ7179V4*aun'xm#`kb/emvpZoX1830Y=!hrg,qb*kbe&ndyyQbel>3:4g<]9%l~k }f.ofi*bh}}Ufi`2>0?3b?P6(o{l%~k!bel-gkprXelg7=<0>a:W3+bta&{l$ahc dnww[hcj4885=l5Z0.eqb+ta'dof#iazt^ofi97468k0Y=!hrg,qb*kbe&ndyyQbel>20;7f3\:$kh!rg-nah)cg|~Tahc314<2e>S7'nxm"h mdo,`jssWdof0<811`9V4*aun'xm#`kb/emvpZkbe5;<2 gsd-vc)jmd%ocxzPmdo?5<8612_;#j|i.sd,i`k(lfS`kb<0<2e>S7'nxm"h mdo,`jssWdof0?>11`9V4*aun'xm#`kb/emvpZkbe58:2 gsd-vc)jmd%ocxzPmdo?6686i2_;#j|i.sd,i`k(lfS`kb<36=5d=R8&myj#|i/lgn+air|Vgna1<:>0c8Q5)`zo$yj"cjm.flqqYjmd69:3?n;T2,cw`)zo%fi`!kotv\i`k;:>4:m6[?/fpe*w`(elg$hb{{_lgn87>99h1^<"i}f/pe+hcj'me~xRcjm=0::4?<]9%l~k }f.ofi*bh}}Ufi`2=>0c8Q5)`zo$yj"cjm.flqqYjmd68<3?n;T2,cw`)zo%fi`!kotv\i`k;;84:m6[?/fpe*w`(elg$hb{{_lgn86499h1^<"i}f/pe+hcj'me~xRcjm=10:4g<]9%l~k }f.ofi*bh}}Ufi`2<4?3b?P6(o{l%~k!bel-gkprXelg7?80>9:W3+bta&{l$ahc dnww[hcj4:4:56[?/fpe*w`(elg$hb{{_lgn818612_;#j|i.sd,i`k(lfS`kb<4<2=>S7'nxm"h mdo,`jssWdof0;0>9:W3+bta&{l$ahc dnww[hcj4>4:56[?/fpe*w`(elg$hb{{_lgn8=8612_;#j|i.sd,i`k(lfS`kb<8<5g>S7'nxm"h mdo,cgk)okgl"jlbg`,mc`ed&kgl#obd_lgn[bcim{kc!yamkg*fusz&xjaaa`pZ2^*wgj&{%}>R``iokw*wgj'mz2t4 }al4`?P6(o{l%~k!bel-dfh(`jdm%kocha/ldafe)jdm$naePmdo\c`hbzh~d~"xnlhf-gvru'{kf`ba[0_-vdk)z&|9Scafnhv-vdk(ly3s5#|nm7a8Q5)`zo$yj"cjm.eai+aeen$ln`in.oefgf(een%i`fQbel]dakcui}ey#{ocie,`wqt(zhggcb~T2\,qeh(u'8Tbbgaiu,qeh)cx0r2"ob6b9V4*aun'xm#`kb/f`n*bdjo'miajo!nfg`g+djo&hggRcjm^efj`tf|fx$zlbfd/appw)uidfdc}U<]/pbi+t(~;Uecd`ft/pbi*bw1q3%~lc>b:W3+bta&{l$ahc tlr\vdkXzmUnb5Z0.eqb+ta'{kfSjPeo34?P6(o{l%~k!}al]qabir|Voe=>5Z0.eqb+ta'{kfSz|Peo3g?P6(o{l%~k!}su`oo*tcW{ySl}}ef03?P6(o{l%~k!}su`oo*tcW{ySl}}ef]g576<]9%l~k }f.pppgjl'{nT~~zParpfcZb59j1^<"i}f/pe+wusjea$~iQ}su]`khd6l2_;#j|i.sd,vvredb%yhR||t^alig76m2_;#j|i.sd,vvredb%yhR||t^pfc9699l1^<"i}f/pe+wusjea$~iQ}su]qab:668o0Y=!hrg,qb*tt|kf`#jPrrv\v`a;:7;o7X> gsd-vc)u{}hgg"|k_sqw[wc`W9;o7X> gsd-vc)u{}hgg"|k_sqw[wc`W8;o7X> gsd-vc)u{}hgg"|k_sqw[wc`W;;o7X> gsd-vc)u{}hgg"y}_sqw[duumn8;7X> gsd-vc)u{}hgg"y}_sqw[duumnUo=?>4U1-dvc(un&xxxobd/vp\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,swYu{}Uhc`l>d:W3+bta&{l$~~zmlj-tvZtt|Vidao?>e:W3+bta&{l$~~zmlj-tvZtt|Vxnk1>11d9V4*aun'xm#}{bmi,swYu{}Uyij2>>0f8Q5)`zo$yj"||tcnh+rtXzz~T~hiP00f8Q5)`zo$yj"||tcnh+rtXzz~T~hiP1`9VW@TXIECJ_n5ZSDP\RLUNJEO87[ML9:TJARYSQYO87ZKN3:UFFg=PZ@^NSKG]SUa8SWOSMVGDHHQNc:UQMQCXEFNNSO?k;YKOMK^*PMH+<#?/SUWA$5(6(HYHED;4XNP@]3=_[]FBN:5WSU]DJA1^c`VZye`Xjrrklj465lljf8`drfWje~by&?)e9geqgXkfex%?&e:fbpdYdg|d$<>&e:fbpdYdg|d$$94dhl+56/03mce$<:&7:fjj-72!>1oec&>6(58`lh/9>#<7iga(0:*3>bnf!;2%;5kio*1-2=cag"9<$94dhl+64/03mce$?<&7:fjj-44!>1oec&=4(58`lh/:<#<7iga(34*3>bnf!8<%:5kio*1<,14'9;ekm,6/03mce$>>&7:fjj-56!>1oec&<2(58`lh/;:#<7iga(26*3>bnf!9>%;5kio*7-3=cag">%;5kio*5-3=cag"<%;5kio*;-3=cag"2%;5kio>3:2=cag6:<394dhl?54803mce0<<17:fjj9746>1oec2>4?58`lh;9<4<7iga<04=3>bnf5;<2:5kio>2<;117:fjj9466>1oec2=2?58`lh;::4<7iga<36=3>bnf58>2:5kio>12;1:08;ekm87>9?2nbb1<6>79gmk:56>1oec2<0?58`lh;;84<7iga<20=3>bnf5982:5kio>00;?69gmk:4=7<0hd`33?48`lh;<7<0hd`35?48`lh;>7<0hd`37?48`lh;07<0hd`39?58`jss 9#<7iazt)3*<>bh}}":<$64dnww,47.02ndyy&>2(:8`jss 89"46j`uu*20,> 20hb{{(05*<>bh}}":4$64dnww,4?.?2ndyy&=)99gkpr/:9#37iazt)02-==cg|~#>?'7;emvp-44!11ocxz'25+;?air|!8>%55kotv+63/?3me~x%<8)99gkpr/:1#37iazt)0:-2=cg|~#?$64dnww,66.02ndyy&<1(:8`jss :8"46j`uu*07,>:&8:flqq.4= =0hb{{(5+4?air|!?";6j`uu*5-2=cg|~#;$94dnww,=/03me~x%7&7:flqq:7611ocxz311<;?air|5;:255kotv?578?3me~x1?<>99gkpr;9=437iazt=36:==cg|~7=;07;emvp970611ocxz319<;?air|5;22:5kotv?5;>18:flqq:59720hb{{<30=<>bh}}69?364dnww872902ndyy2=5?:8`jss4;<546j`uu>13;>99gkpr;;:437iazt=17:d=cg|~7?84?>99gkpr;;<4<7iazt=1=3>bh}}6?2:5kotv?1;169gkpr;1720iigi2oeg1>cjx}s8>6hffn]dakcui}eyS{:P3-"[mioip)ID^H.Heogqeqiu(8:%=#><159emciXpedsS?Ew37]1gim4:2lbjbQwloz\6N~4>V8h`f"iigm\c`hbzh~d~Rx;_2.MKKC+FFDN?n74fhdl[}jipV8@t>8P2bnh(coagVmnbh|ntnp\r1Y4$riTdl}Piov\gim:8%iTdl}Pssqw95*dW{nTjk~=0.`[mgtW{nThlzn_bmvjq;6$jUoecQxievk960+kVbjRy}_ecweZeh}g~6=!mPftno[cjfozUyyQyam?2(fYneyfnah`{aukljZr~xl79 nQzsd]figccllnT~hi20-a\swYazl{6=!mPurg\`jssW{y1<"l_tlgaw`kg~Ugcz3?,b]kevYh~lxm`by20-a\twckghnT`lzjnb{>4)eXlfSzgkti?02)eXezmdbRxnl<3/gZtcWmo{xe3=05:/gZnf{Vehh|ilnu>4)eX`hyTmac`su]eqij:8%iTdl}Prrv>5)eXlh~jSnaznu]tmaro588'oRfns^uq[del59&hSx}j_da`95*dWjefab`Pcmm`o86+kV}ySlmd_mmt95*dW{nT|cz}_vkgpm;69%iTy~kPfvdw[agsiVidycz21-a\lduXiegdyQjmqvz95*dW{nThlzn_bmvjqYpam~c1<<#c^muaw`kg~Ugcz3?,b]tvZvi|{U|eizg=03/gZvugnUna}zv_u{sa86+kV}ySio{a^alqkrX`nd0?=,b]sv`jhimUyij}21-a\`jssW{yS{oc=1.`[mgtWmkmRm`uov>4)eXx{elSk{cl^vkv`uoWgolmykPv`n>6521$jU|~Rjjpuj>652?$jU{~biPelrw}ZrozlycSckhaug\rdj:=%iT|ah_dosp|Ys`{oxdRo|sdpw[sgk5=&hSeo|_wcoma;7$jU{~biPftno[qnumzbTm~}jru]uei;58=='obcoogmpZhfel7mekaPxml{[7M;?U9oae#c^tbhlbXdf}6nbd_gkekZabflxjxb|Pv5]0[}usW8>0jxbc7:kmpZekc11eknlzimf;?jpbzofd{l5rne\ahvsq8>0|ah_dosp|Ys`{oxd%>&159svjaXmdzuRzgrdqk,4/6=2zycjQjmqvz[qnumzb#=='>4:rqkbYbey~rSyf}erj+6,733yxdkRkbpu{\pmtb{a"8%<:4psmd[`kw|pUdk|h)6*51=wzfmTi`~{y^vkv`uo <#:86~}of]fiur~W}byi~f'6(37?uthoVof|ywPtipfwm.0!8>0|ah_dosp|Ys`{oxd%6&159svjaXmdzuRzgrdqk,0`8twi`Wlg{xtQ{hsgplZgt{lx$='>b:rqkbYbey~rSyf}erj\evubz}":%vugnUmyabPtipfwm.3!890|ah_gwohZrozlyc$8'>3:rqkbYa}efTxe|jsi*5-45#:?6~}of]eqijX|axne&7)018twi`Wog`Rzgrdqk,2zycjQiumn\pmtb{a6:<7>11`9svjaXn|fgSyf}erj\evubz}";%a:rqkbYa}efTxe|jsi]bwvcu|!?"=l5rne\bpjkW}byi~fParqfvq.1!8k0|ah_gwohZrozlycSl}|esv+3,7f3yxdkRhzlm]wlwct`Vkxh|{(9+2e>vugnUmyabPtipfwmYf{zoyx%7&1e9svjaXn|fgSyf}erj\evubz}6:<7>11`9svjaXn|fgSyf}erj\j`af|l";%a:rqkbYa}efTxe|jsi]mabgsm!?"=l5rne\bpjkW}byi~fPndebp`.1!8k0|ah_gwohZrozlycSckhaug+3,7f3yxdkRhzlm]wlwct`Vdnklzj(9+2e>vugnUmyabPtipfwmYimnki%7&1e9svjaXn|fgSyf}erj\j`af|l6:<7>16:pg[fjl991yhRjnt`]`kphs 9#:<6|k_ecweZeh}g~#=$?>;sf\`drfWje~by&>0(32?wbXlh~jSnaznu*25,773{nThlzn_bmvjq.5!8:0~iQkauc\gjsi|!9"==5}d^fbpdYdg|d$9'>0:pg[agsiVidycz'5(33?wbXlh~jSnaznu*5-46038vaYci}kTob{at=33:450:pg[agsiVidycz31?33?wbXlh~jSnaznu>1:46028vaYci}kTob{at=5=55=ulVnjxlQlotlw8=8682xoSio{a^alqkr;17?0~iQjn79q`Ztt|:1yy94sckwawt33zxxx95{rtg:?phcm{lgcz;4v`nj`3=pzVkhg;5xr^aoo46<{UomyoPcnwmp-6.991|~Rjnt`]`kphs 8#:=6y}_ecweZeh}g~#=='>1:uq[agsiVidycz'10+24>quWmkmRm`uov+6,773~xThlzn_bmvjq.4!8:0{Qkauc\gjsi|!>"==5xr^fbpdYdg|d$8'>0:uq[agsiVidycz'6(33?rtXlh~jSnaznu*4-46<{UomyoPcnwmp->.991|~Rjnt`]`kphs 0#:<6y}_ecweZeh}g~7<3?>;vp\`drfWje~by2>0?30?rtXlh~jSnaznu>25?69981|~Rjnt`]`kphs48;5==5xr^fbpdYdg|d0<0>0:uq[agsiVidycz32?33?rtXlh~jSnaznu>0:46<{UomyoPcnwmp929991|~Rjnt`]`kphs4<4:<6y}_ecweZeh}g~7:3??;vp\`drfWje~by28>028swYci}kTob{at=:=55=pzVnjxlQlotlw8<823~xTic84ws]qwq{GHy;:>55O@y39B?2=9rY=87;6c;;9564>88=1>l?iezl7b1<63g>m97:4$5d1>1cd3tY=>7;6c;;9564>88=1>l?ie:Qe2?3f=3:1=><600596d7an2Y=>7;n5;29564>88=1>l?if:f6=c<7280:w^8;:4;`><<6;;3;=:4=a0df?sR60=0;6<4>:36:V032<3h644>33;352<5i8ln7):j6;d4?S2a;38py<>>:09v554=82w/=:m51g9a1<`=83<<6>497zJ7a1=]=10?w<:51282a?7c2t.:444:9g9'0c7==0o0e;>m:188k37?290/=:k56318j41c2910c;?8:18'52c=>;90b<9k:098k347290/=:k56318j41c2;10c;?i:18'52c=>;90b<9k:298k37b290/=:k56318j41c2=10c;?k:18'52c=>;90b<9k:498k37d290/=:k56318j41c2?10c;?m:18'52c=>;90b<9k:698k37f290/=:k56318j41c2110c;?6:18'52c=>;90b<9k:898k371290/=:k56318j41c2h10c;?::18'52c=>;90b<9k:c98k0`2290/=:k56128j41c2910c8h;:18'52c=>9:0b<9k:098k0`c290/=:k56128j41c2;10c8hl:18'52c=>9:0b<9k:298k0`e290/=:k56128j41c2=10c8hn:18'52c=>9:0b<9k:498k0`>290/=:k56128j41c2?10c8h7:18'52c=>9:0b<9k:698k0`0290/=:k56128j41c2110c8h9:18'52c=>9:0b<9k:898k0`4290/=:k56128j41c2h10c8h=:18'52c=>9:0b<9k:c98m34b2900c8o<:188k0?c2900e;?;:188m36c2900c89?:18'52c==090b<9k:198k00a290/=:k55818j41c2810c88j:18'52c==090b<9k:398k00c290/=:k55818j41c2:10c88l:18'52c==090b<9k:598k00e290/=:k55818j41c2<10c886:18'52c==090b<9k:798k00?290/=:k55818j41c2>10c888:18'52c==090b<9k:998k001290/=:k55818j41c2010c88::18'52c==090b<9k:`98k003290/=:k55818j41c2k10c88<:18'52c==090b<9k:b98k005290/=:k55818j41c2m10c88>:18'52c==090b<9k:d98k007290/=:k55818j41c2o10c8;j:18'52c==090b<9k:028?j32l3:1(<9j:4;0?k70l3;:76a:5b83>!70m3?2?6`>7e826>=h=7d86=6=i9>n1=>54o47b>5<#9>o194=4n05g>42<3f?>57>5$05f>0?43g;21d98950;&23`<21:1e=:j51698k031290/=:k55818j41c28207b;:5;29 41b2<387c?8d;3:?>i2??0;6)?8e;7:7>h6?m0:m65`56794?"6?l0>5>5a16f95g=;?4?:%34a?3>;2d:;i4>e:9l127=83.:;h4:929m52b=9o10c88n:18'52c==090b<9k:328?j32n3:1(<9j:4;0?k70l38:76a:5583>!70m3?2?6`>7e816>=h=<91<7*>7d86=6=i9>n1>>54i404>5<#9>o199o4n05g>5=5<#9>o199o4n05g>7=54i400>5<#9>o199o4n05g>1=5<#9>o199o4n05g>3=5<#9>o199o4n05g>==5<#9>o199o4n05g>d=5<#9>o199o4n05g>f=5<#9>o199o4n05g>`=5<#9>o199o4n05g>46<3`?:87>5$05f>02f3g;;:k656<72-;07d;>0;29 41b2<>j7c?8d;36?>o28o0;6)?8e;77e>h6?m0::65f51g94?"6?l0>8l5a16f952=32c>>i4?:%34a?33i2d:;i4>a:9j17e=83.:;h4:4`9m52b=9k10e8!70m3??m6`>7e82a>=n=;21<7*>7d860d=i9>n1=k54i402>5<#9>o199o4n05g>76<3`?::7>5$05f>02f3g;;:k64g<72-;5<7sA>n86*>8887a0=h9>h1<75rb`394?7=83:pD9k;;%3;=?g63fk;6=44}c74>53;mh7<;9zJ7a1=]=10::vj515827?762881j7?j:b82`?772l0:>7?;:0g9560;d9a?e=u-;357;n2:&e7??a3-?o68o?;%40>0g63-;<:7?8a:k54f<722e>on4?::k54c<722e?j;4?::m557<722c?j44?::k6f3<72-;nh4?:%34a?3en2d:;i4>;:k6fa<72-;nn4?:%34a?3en2d:;i4<;:k6fg<72-;nl4?:%34a?3en2d:;i4:;:k6f<<72-;n54?:%34a?3en2d:;i48;:k6f2<72-;n84?:%34a?3en2d:;i46;:k6f1<72-;=4?:%34a?05;2d:;i4=;:m55c<72-;32e==;4?:%34a?05;2d:;i4n;:m550<72-;j84?:%34a?0782d:;i4?;:m6b1<72-;ji4?:%34a?0782d:;i4=;:m6bf<72-;jo4?:%34a?0782d:;i4;;:m6bd<72-;j44?:%34a?0782d:;i49;:m6b=<72-;j:4?:%34a?0782d:;i47;:m6b3<72-;32e>j>4?:%34a?0782d:;i4n;:m6b7<72-;i:4?:%34a?3a82d:;i4?;:k6ac<72-;ih4?:%34a?3a82d:;i4=;:k6aa<72-;in4?:%34a?3a82d:;i4;;:k6ag<72-;il4?:%34a?3a82d:;i49;:k6a<<72-;i54?:%34a?3a82d:;i47;:k6a3<72-;32c>i84?:%34a?3a82d:;i4n;:k56`<722e?jh4?:%34a?3702d:;i4?;:m7ba<72-;<;4?:%34a?3702d:;i4=;:m640<72-;<94?:%34a?3702d:;i4;;:m646<72-;<=4?:%34a?3702d:;i47;:m7bc<72-;32e?jn4?:%34a?3702d:;i4n;:m7bg<72-;m>4?::m6=a<722c>ok4?:%34a?3c02d:;i4?;:k6`2<72-;h;4?:%34a?3c02d:;i4=;:k6`0<72-;h94?:%34a?3c02d:;i4;;:k6`6<72-;h?4?:%34a?3c02d:;i49;:k6`4<72-;h=4?:%34a?3c02d:;i47;:k6g`<72-;32c>oi4?:%34a?3c02d:;i4n;:k551<722c>m94?::k7bd<722c=>k4?::m54`<722e==>4?::m7b2<722e==<4?::k54a<722e>;=4?:%34a?3>;2d:;i4?;:m62c<72-;:h4?:%34a?3>;2d:;i4=;:m62a<72-;:n4?:%34a?3>;2d:;i4;;:m62g<72-;:44?:%34a?3>;2d:;i49;:m62=<72-;::4?:%34a?3>;2d:;i47;:m623<72-;32e>:84?:%34a?3>;2d:;i4n;:m621<72-;:>4?:%34a?3>;2d:;i4l;:m627<72-;:<4?:%34a?3>;2d:;i4j;:m625<72-;9h4?:%34a?3>;2d:;i4>0:9l10b=83.:;h4:929m52b=9810c8;l:18'52c==090b<9k:008?j32j3:1(<9j:4;0?k70l3;876a:5`83>!70m3?2?6`>7e820>=h=<31<7*>7d86=6=i9>n1=854o47;>5<#9>o194=4n05g>40<3f?>;7>5$05f>0?43g;i2?=0;6)?8e;7:7>h6?m0:o65`56194?"6?l0>5>5a16f95a=:l4?:%34a?3>;2d:;i4=0:9l10`=83.:;h4:929m52b=:810c8;;:18'52c==090b<9k:308?j32;3:1(<9j:4;0?k70l38876g:a`83>!70m3?i?6`>7e83?>o2j;0;6)?8e;7a7>h6?m0:76g:b083>!70m3?i?6`>7e81?>o2j90;6)?8e;7a7>h6?m0876g:ag83>!70m3?i?6`>7e87?>o2il0;6)?8e;7a7>h6?m0>76g:ae83>!70m3?i?6`>7e85?>o2ij0;6)?8e;7a7>h6?m0<76g:ac83>!70m3?i?6`>7e8;?>o2i00;6)?8e;7a7>h6?m0276g:a983>!70m3?i?6`>7e8b?>o2:>0;6)?8e;77e>h6?m0;76g:2783>!70m3??m6`>7e82?>o2:<0;6)?8e;77e>h6?m0976g:2583>!70m3??m6`>7e80?>o2::0;6)?8e;77e>h6?m0?76g:2383>!70m3??m6`>7e86?>o2:90;6)?8e;77e>h6?m0=76g:1g83>!70m3??m6`>7e84?>o29l0;6)?8e;77e>h6?m0376g:1e83>!70m3??m6`>7e8:?>o29j0;6)?8e;77e>h6?m0j76g:1c83>!70m3??m6`>7e8a?>o29h0;6)?8e;77e>h6?m0h76g:1883>!70m3??m6`>7e8g?>o2910;6)?8e;77e>h6?m0n76g:1683>!70m3??m6`>7e8e?>o29<0;6)?8e;77e>h6?m0:<65f50694?"6?l0>8l5a16f954==<4?:%34a?33i2d:;i4>4:9j146=83.:;h4:4`9m52b=9<10e8>i:18'52c===k0b<9k:048?l37m3:1(<9j:46b?k70l3;<76g:0e83>!70m3??m6`>7e82<>=n=9i1<7*>7d860d=i9>n1=454i40g>5<#9>o199o4n05g>4g<3`?9o7>5$05f>02f3g;290/=:k555c8j41c28o07d;=8;29 41b2<>j7c?8d;3e?>o2:80;6)?8e;77e>h6?m09<65f50494?"6?l0>8l5a16f964=i>4?:%34a?3b<2d:;i4>;:k6a7<72-;i<4?:%34a?3b<2d:;i4<;:k6a5<72-;hk4?:%34a?3b<2d:;i4:;:k6``<72-;hi4?:%34a?3b<2d:;i48;:k6`f<72-;hl4?:%34a?3b<2d:;i46;:k6`<<72-;o?4?:%34a?3dj2d:;i4?;:k6gd<72-;o44?:%34a?3dj2d:;i4=;:k6g=<72-;o:4?:%34a?3dj2d:;i4;;:k6g3<72-;o84?:%34a?3dj2d:;i49;:k6g1<72-;o>4?:%34a?3dj2d:;i47;:k6g4<72-;32c>o=4?:%34a?3dj2d:;i4n;:m6e2<722e><44?::k6b4<722h?ik4?:083>5}#9131m<5G4dg8L1c33fk;6=44}c6e4?6=93:18887a0=O5}#9131545G4dg8L1c33A??7)hi:733?!ga2;1b944?::k51?6=3f;3<7>5;|`7`f<72:0;6=u+19;9=<=O5;n3;4?6=3th?h=4?:283>5}#9131545G4dg8L1c33A??7)hi:733?!ga2;1b944?::k51?6=3f;3<7>5;|`7`d<72<0;6=u+19;9=`=Oo7>5;h46>5<5<on7>53;294~"6000256F;ed9K0`2<@<>0(kh56028 d`=:2c>57>5;h46>5<888:a>N3ml1C8h:4H468 c`=>8:0(lh52:k6=?6=3`?h6=44i7794?=n9>l1<75`19294?=zj=n26=4;:183!7?133o7E:je:J7a1=#io097d;6:188m33=831b=:h50;9l5=6=831vn9j7:187>5<7s-;3577k;I6fa>N3m=1/mk4=;h7:>5<5<3290;w)?79;;g?M2bm2B?i95+ag81?l3>2900e;;50;9j52`=831d=5>50;9~f1c5290?6=4?{%3;=??c3A>ni6F;e59'ec<53`?26=44i7794?=n9>l1<75`19294?=zj=o:6=4;:183!7?133o7E:je:J7a1=#io097d;6:188m33=831b=:h50;9l5=6=831vn>5<7s-;3577k;I6fa>N3m=1/mk47;h7:>5<5<2290;w)?79;;`?M2bm2B?i95+ag81?l3>2900e;?50;9j20<722c:;k4?::m2<5<722wi>ol50;794?6|,82264m4H5gf?M2b<2.jj7<4i4;94?=n>80;66g95;29?l70n3:17b?70;29?xd5jl0;684?:1y'5=?=1j1C8hk4H5g7?!ga2;1b944?::k55?6=3`<>6=44i05e>5<888:g>N3ml1C8h:4$`d96>o213:17d8>:188m33=831b=:h50;9l5=6=831vn?m?:186>5<7s-;3577l;I6fa>N3m=1/mk4=;h7:>5<>o6?o0;66a>8183>>{e:j;1<7;50;2x 4>>20i0D9kj;I6f0>"fn380e8750;9j24<722c=97>5;h34b?6=3f;3<7>5;|`1g7<72<0;6=u+19;9=f=O7=n=00;66g91;29?l022900e<9i:188k4>72900qo0(lh52:k6=?6=3`<:6=44i7794?=n9>l1<75`19294?=zj;i?6=4::183!7?133h7E:je:J7a1=#io097d;6:188m37=831b:84?::k23c<722e:4=4?::a6f3=83?1<7>t$0::>>o1=3:17d?8f;29?j7?83:17pl=bb83>0<729q/=5759b9K0`c<@=o?7)oi:39j1<<722c==7>5;h46>5<5<55;294~"60002o6F;ed9K0`2<,hl1>6g:9;29?l062900e;;50;9j52`=831d=5>50;9~f6d?290?6=4?{%3;=??c3A>ni6F;e59'ec<53`?26=44i7794?=n9>l1<75`19294?=zj:h<6=4;:183!7?133o7E:je:J7a1=#io097d;6:188m33=831b=:h50;9l5=6=831vn>hn:187>5<7s-;3577n;I6fa>N3m=1/mk4=;h7:>5<>i6090;66sm3g`94?2=83:p(<66:8c8L1cb3A>n86*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`0b`<72=0;6=u+19;9=d=O7=n=00;66g91;29?l022900c<6?:188yg5an3:187>50z&2<<<>i2B?ih5G4d68 d`=:2c>57>5;h42>5<80;66g95;29?j7?83:17pl;0383>1<729q/=5759`9K0`c<@=o?7)oi:39j1<<722c==7>5;h46>5<888:e>N3ml1C8h:4$`d96>o213:17d8>:188m33=831d=5>50;9~f163290?6=4?{%3;=??f3A>ni6F;e59'ec<53`?26=44i7394?=n><0;66a>8183>>{e<9?1<7:50;2x 4>>20k0D9kj;I6f0>"fn380e8750;9j24<722c=97>5;n3;4?6=3th8jn4?:583>5}#91315l5G4dg8L1c33-km6?5f5883>>o193:17d8::188k4>72900qo=id;290?6=8r.:4446a:J7a`=O0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb3c0>5<4290;w)?79;d:?M2bm2B?i95+ag801>of;3:17do;:188k41>2900qo<69;290?6=8r.:444>019K0`c<@=o?7d;j:188m30=831b=5<50;9l52?=831vn?oj:180>5<7s-;357:jd:J7a`=O0e8k50;9jb1<722e:;44?::a6d3=8391<7>t$0::>c?<@=on7E:j4:&bb?523`k86=44i`694?=h9>31<75rb3;b>5<3290;w)?79;334>N3ml1C8h:4i4g94?=n>?0;66g>8383>>i6?00;66sm2c294?5=83:p(<66:5gg?M2bm2B?i95f5d83>>oa<3:17b?89;29?xd5i?0;6>4?:1y'5=?=n01C8hk4H5g7?!ga2:?0el=50;9je1<722e:;44?::a61<7>t$0::>4673A>ni6F;e59j1`<722c=:7>5;h3;6?6=3f;<57>5;|`1f4<72:0;6=u+19;90`b<@=on7E:j4:k6a?6=3`l?6=44o05:>5<53;294~"6000m56F;ed9K0`2<,hl1?85fa283>>of<3:17b?89;29?xd51j0;694?:1y'5=?=99:0D9kj;I6f0>o2m3:17d89:188m4>52900c<96:188yg4e:3:1?7>50z&2<<<3mm1C8hk4H5g7?l3b2900ek:50;9l52?=831vn?o7:180>5<7s-;357h6;I6fa>N3m=1/mk4<5:kb7?6=3`k?6=44o05:>5<54;294~"6000:<=5G4dg8L1c33`?n6=44i7494?=n9181<75`16;94?=zj;h86=4<:183!7?13>nh6F;ed9K0`2>i6?00;66sm2`;94?5=83:p(<66:g;8L1cb3A>n86*nf;16?lg42900el:50;9l52?=831vn?7j:187>5<7s-;357??0:J7a`=O0e8k50;9j23<722c:4?4?::m23<<722wi>o:50;194?6|,82269kk;I6fa>N3m=1b9h4?::ke0?6=3f;<57>5;|`1ed<72:0;6=u+19;9b<=O63>i6?00;66sm28d94?2=83:p(<66:023?M2bm2B?i95f5d83>>o1>3:17d?72;29?j7013:17pl=b483>6<729q/=5754df8L1cb3A>n86g:e;29?l`32900c<96:188yg4fj3:1?7>50z&2<<4?::kb0?6=3f;<57>5;|`1e5<72=0;6=u+19;9556<@=on7E:j4:k6a?6=3`<=6=44i0:1>5<8887aa=O5<1<75`16;94?=zj;kh6=4<:183!7?13l27E:je:J7a1=#io0896gn3;29?lg32900c<96:188yg4f93:187>50z&2<<<6891C8hk4H5g7?l3b2900e;850;9j5=4=831d=:750;9~f7d029086=4?{%3;=?2bl2B?ih5G4d68m0c=831bj94?::m23<<722wi>lj50;194?6|,8226k74H5gf?M2b<2.jj7=:;hc0>5<1<75`16;94?=zj;k96=4;:183!7?13;;<6F;ed9K0`2>o60;0;66a>7883>>{e:k21<7=50;2x 4>>2=oo7E:je:J7a1=n=l0;66gi4;29?j7013:17pl=a583>6<729q/=575f89K0`c<@=o?7)oi:278md5=831bm94?::m23<<722wi>lh50;194?6|,82269kk;I6fa>N3m=1b9h4?::ke0?6=3f;<57>5;|`0a6<72:0;6=u+19;9b<=O63>i6?00;66sm3e;94?2=83:p(<66:023?M2bm2B?i95f5d83>>o1>3:17d?72;29?j7013:17pl6<729q/=5754df8L1cb3A>n86g:e;29?l`32900c<96:188yg5b=3:1?7>50z&2<<4?::kb0?6=3f;<57>5;|`0`d<72=0;6=u+19;9556<@=on7E:j4:k6a?6=3`<=6=44i0:1>5<8887aa=O5<1<75`16;94?=zj:o=6=4<:183!7?13l27E:je:J7a1=#io0896gn3;29?lg32900c<96:188yg5cj3:187>50z&2<<<6891C8hk4H5g7?l3b2900e;850;9j5=4=831d=:750;9~f6`629086=4?{%3;=?2bl2B?ih5G4d68m0c=831bj94?::m23<<722wi?h950;194?6|,8226k74H5gf?M2b<2.jj7=:;hc0>5<1<75`16;94?=zj:nh6=4;:183!7?13;;<6F;ed9K0`2>o60;0;66a>7883>>{e;o81<7=50;2x 4>>2=oo7E:je:J7a1=n=l0;66gi4;29?j7013:17pl6<729q/=575f89K0`c<@=o?7)oi:278md5=831bm94?::m23<<722wi?ij50;694?6|,8226<>?;I6fa>N3m=1b9h4?::k52?6=3`;3>7>5;n34=?6=3th8j>4?:283>5}#91318hj4H5gf?M2b<2c>i7>5;hd7>5<888e=>N3ml1C8h:4$`d970=ni:0;66gn4;29?j7013:17pl1<729q/=5751128L1cb3A>n86g:e;29?l012900e<6=:188k41>2900qo=i4;297?6=8r.:444;ee9K0`c<@=o?7d;j:188mc2=831d=:750;9~f6cf29086=4?{%3;=?`>3A>ni6F;e59'ec<4=2cj?7>5;hc7>5<888245=O5<31<75rb2d6>5<4290;w)?79;6f`>N3ml1C8h:4i4g94?=nn=0;66a>7883>>{e;lh1<7=50;2x 4>>2o30D9kj;I6f0>"fn39>7do<:188md2=831d=:750;9~f6c7290?6=4?{%3;=?7782B?ih5G4d68m0c=831b:;4?::k2<7<722e:;44?::a7c0=8391<7>t$0::>1cc3A>ni6F;e59j1`<722cm87>5;n34=?6=3th8in4?:283>5}#9131j45G4dg8L1c33-km6>;4i`194?=ni=0;66a>7883>>{e;l;1<7:50;2x 4>>28:;7E:je:J7a1=n=l0;66g96;29?l7?:3:17b?89;29?xd4n>0;6>4?:1y'5=?=o2m3:17dh;:188k41>2900qo=jd;297?6=8r.:444i9:J7a`=O0(lh5349je6<722cj87>5;n34=?6=3th8i?4?:583>5}#9131==>4H5gf?M2b<2c>i7>5;h45>5<5<53;294~"6000?ii5G4dg8L1c33`?n6=44ig694?=h9>31<75rb2g7>5<4290;w)?79;d:?M2bm2B?i95+ag801>of;3:17do;:188k41>2900qo=jf;297?6=8r.:444;ee9K0`c<@=o?7d;j:188mc2=831d=:750;9~f661290?6=4?{%3;=?7782B?ih5G4d68m0c=831b:;4?::k2<7<722e:;44?::a753=83>1<7>t$0::>4673A>ni6F;e59j1`<722c=:7>5;h3;6?6=3f;<57>5;|`041<72=0;6=u+19;9556<@=on7E:j4:k6a?6=3`<=6=44i0:1>5<888245=O5<31<75rb221>5<3290;w)?79;334>N3ml1C8h:4i4g94?=n>?0;66g>8383>>i6?00;66sm31394?2=83:p(<66:023?M2bm2B?i95f5d83>>o1>3:17d?72;29?j7013:17pl<1e83>1<729q/=5751128L1cb3A>n86g:e;29?l012900e<6=:188k41>2900qo=>c;290?6=8r.:444>019K0`c<@=o?7d;j:188m30=831b=5<50;9l52?=831vn>?m:187>5<7s-;357??0:J7a`=O0e8k50;9j23<722c:4?4?::m23<<722wi??;I6fa>N3m=1b9h4?::k52?6=3`;3>7>5;n34=?6=3th8=44?:583>5}#9131==>4H5gf?M2b<2c>i7>5;h45>5<5<54;294~"6000:<=5G4dg8L1c33`?n6=44i7494?=n9181<75`16;94?=zj:3:6=4;:183!7?13;;<6F;ed9K0`2>o60;0;66a>7883>>{e;0:1<7:50;2x 4>>28:;7E:je:J7a1=n=l0;66g96;29?l7?:3:17b?89;29?xd40o0;694?:1y'5=?=99:0D9kj;I6f0>o2m3:17d89:188m4>52900c<96:188yg5?m3:187>50z&2<<<6891C8hk4H5g7?l3b2900e;850;9j5=4=831d=:750;9~f6>c290?6=4?{%3;=?7782B?ih5G4d68m0c=831b:;4?::k2<7<722e:;44?::a7=e=83>1<7>t$0::>4673A>ni6F;e59j1`<722c=:7>5;h3;6?6=3f;<57>5;|`0e=<72=0;6=u+19;9556<@=on7E:j4:k6a?6=3`<=6=44i0:1>5<888245=O5<31<75rb2c5>5<3290;w)?79;334>N3ml1C8h:4i4g94?=n>?0;66g>8383>>i6?00;66sm3`794?2=83:p(<66:023?M2bm2B?i95f5d83>>o1>3:17d?72;29?j7013:17pl1<729q/=5751128L1cb3A>n86g:e;29?l012900e<6=:188k41>2900qo=n3;290?6=8r.:444>019K0`c<@=o?7d;j:188m30=831b=5<50;9l52?=831vn5<7s-;3577n;I6fa>N3m=1/mk4=;h7:>5<>i6090;66sm1ba94?2=83:p(<66:8c8L1cb3A>n86*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`2gg<72=0;6=u+19;9=d=O7=n=00;66g91;29?l022900c<6?:188yg7di3:187>50z&2<<<>i2B?ih5G4d68 d`=:2c>57>5;h42>5<80;66g95;29?j7?83:17pl>c683>1<729q/=5759`9K0`c<@=o?7)oi:39j1<<722c==7>5;h46>5<888:e>N3ml1C8h:4$`d96>o213:17d8>:188m33=831d=5>50;9~f4e2290?6=4?{%3;=??f3A>ni6F;e59'ec<53`?26=44i7394?=n><0;66a>8183>>{e9j91<7:50;2x 4>>20k0D9kj;I6f0>"fn380e8750;9j24<722c=97>5;n3;4?6=3th:o?4?:583>5}#91315l5G4dg8L1c33-km6?5f5883>>o193:17d8::188k4>72900qo<<1;290?6=8r.:4446a:J7a`=O0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb31:>5<3290;w)?79;;b?M2bm2B?i95+ag81?l3>2900e;?50;9j20<722e:4=4?::a66>=83>1<7>t$0::>>o1=3:17b?70;29?xd5;>0;694?:1y'5=?=1h1C8hk4H5g7?!ga2;1b944?::k55?6=3`<>6=44o0:3>5<54;294~"60002m6F;ed9K0`2<,hl1>6g:9;29?l062900e;;50;9l5=6=831vn?=::187>5<7s-;3577n;I6fa>N3m=1/mk4=;h7:>5<>i6090;66sm22694?2=83:p(<66:8c8L1cb3A>n86*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`176<72=0;6=u+19;9=d=O7=n=00;66g91;29?l022900c<6?:188yg44:3:187>50z&2<<<>i2B?ih5G4d68 d`=:2c>57>5;h42>5<?h50;694?6|,82264o4H5gf?M2b<2.jj7<4i4;94?=n>80;66g95;29?j7?83:17pl=7b83>1<729q/=5759`9K0`c<@=o?7)oi:39j1<<722c==7>5;h46>5<888:e>N3ml1C8h:4$`d96>o213:17d8>:188m33=831d=5>50;9~f7>4290?6=4?{%3;=??f3A>ni6F;e59'ec<53`?26=44i7394?=n><0;66a>8183>>{e:181<7:50;2x 4>>20k0D9kj;I6f0>"fn380e8750;9j24<722c=97>5;n3;4?6=3th94<4?:583>5}#91315l5G4dg8L1c33-km6?5f5883>>o193:17d8::188k4>72900qo<70;290?6=8r.:4446a:J7a`=O0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb35e>5<3290;w)?79;;b?M2bm2B?i95+ag81?l3>2900e;?50;9j20<722e:4=4?::a62c=83>1<7>t$0::>>o1=3:17b?70;29?xd5?m0;694?:1y'5=?=1h1C8hk4H5g7?!ga2;1b944?::k55?6=3`<>6=44o0:3>5<54;294~"60002m6F;ed9K0`2<,hl1>6g:9;29?l062900e;;50;9l5=6=831vn?9n:187>5<7s-;3577n;I6fa>N3m=1/mk4=;h7:>5<>i6090;66sm21d94?2=83:p(<66:8c8L1cb3A>n86*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`152<72=0;6=u+19;9=d=O7=n=00;66g91;29?l022900c<6?:188yg46>3:187>50z&2<<<>i2B?ih5G4d68 d`=:2c>57>5;h42>5<6=4;:183!7?133j7E:je:J7a1=#io097d;6:188m37=831b:84?::m2<5<722wi><:50;694?6|,82264o4H5gf?M2b<2.jj7<4i4;94?=n>80;66g95;29?j7?83:17pl=1283>1<729q/=5759`9K0`c<@=o?7)oi:39j1<<722c==7>5;h46>5<888:e>N3ml1C8h:4$`d96>o213:17d8>:188m33=831d=5>50;9~f776290?6=4?{%3;=??f3A>ni6F;e59'ec<53`?26=44i7394?=n><0;66a>8183>>{e:8:1<7:50;2x 4>>20k0D9kj;I6f0>"fn380e8750;9j24<722c=97>5;n3;4?6=3th95}#91315l5G4dg8L1c33-km6?5f5883>>o193:17d8::188k4>72900qo0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb345>5<3290;w)?79;;b?M2bm2B?i95G559'bc<1991/mk4=;h7:>5<>i6090;66sm27g94?2=83:p(<66:8c8L1cb3A>n86F:4:&eb?0682.jj7<4i4;94?=n>80;66g95;29?j7?83:17pl=6e83>1<729q/=5759`9K0`c<@=o?7E;;;%de>3773-km6?5f5883>>o193:17d8::188k4>72900qo<9c;290?6=8r.:4446a:J7a`=O0D8:4$gd9246<,hl1>6g:9;29?l062900e;;50;9l5=6=831vn?8m:187>5<7s-;3577n;I6fa>N3m=1C995+fg8555=#io097d;6:188m37=831b:84?::m2<5<722wi>;o50;694?6|,82264o4H5gf?M2b<2B>86*if;424>"fn380e8750;9j24<722c=97>5;n3;4?6=3th9:44?:583>5}#91315l5G4dg8L1c33A??7)hi:733?!ga2;1b944?::k55?6=3`<>6=44o0:3>5<54;294~"60002m6F;ed9K0`2<@<>0(kh56028 d`=:2c>57>5;h42>5<<0;66a>8183>>{e:??1<7:50;2x 4>>20k0D9kj;I6f0>N2<2.mj78>0:&bb?4>o1=3:17b?70;29?xd5>=0;694?:1y'5=?=1h1C8hk4H5g7?M333-lm6;??;%ce>7=n=00;66g91;29?l022900c<6?:188yg7a13:187>50z&2<<<>i2B?ih5G4d68L02<,ol1:<>4$`d96>o213:17d8>:188m33=831d=5>50;9~f766290?6=4?{%3;=??f3A>ni6F;e59K11=#no0===5+ag81?l3>2900e;?50;9j20<722e:4=4?::a656=83>1<7>t$0::>"an3<:<6*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`2bc<72=0;6=u+19;9=d=O5;h46>5<888:e>N3ml1C8h:4H468 c`=>8:0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb0dg>5<3290;w)?79;;b?M2bm2B?i95G559'bc<1991/mk4=;h7:>5<>i6090;66sm1ga94?2=83:p(<66:8c8L1cb3A>n86F:4:&eb?0682.jj7<4i4;94?=n>80;66g95;29?j7?83:17pl>fc83>1<729q/=5759`9K0`c<@=o?7E;;;%de>3773-km6?5f5883>>o193:17d8::188k4>72900qo?ia;290?6=8r.:4446a:J7a`=O0D8:4$gd9246<,hl1>6g:9;29?l062900e;;50;9l5=6=831vn5<7s-;3577n;I6fa>N3m=1C995+fg8555=#io097d;6:188m37=831b:84?::m2<5<722wi=k950;694?6|,82264o4H5gf?M2b<2B>86*if;424>"fn380e8750;9j24<722c=97>5;n3;4?6=3th:i>4?:583>5}#91315l5G4dg8L1c33-km6?5f5883>>o193:17d8::188k4>72900qo?jb;290?6=8r.:4446a:J7a`=O0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb0gb>5<3290;w)?79;;b?M2bm2B?i95+ag81?l3>2900e;?50;9j20<722e:4=4?::a5`?=83>1<7>t$0::>>o1=3:17b?70;29?xd6m10;694?:1y'5=?=1h1C8hk4H5g7?!ga2;1b944?::k55?6=3`<>6=44o0:3>5<54;294~"60002m6F;ed9K0`2<,hl1>6g:9;29?l062900e;;50;9l5=6=831vn5<7s-;3577n;I6fa>N3m=1/mk4=;h7:>5<>i6090;66sm1d794?2=83:p(<66:8c8L1cb3A>n86*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`2a1<72=0;6=u+19;9=d=O7=n=00;66g91;29?l022900c<6?:188yg7b:3:187>50z&2<<<>i2B?ih5G4d68 d`=:2c>57>5;h42>5<8>50;694?6|,82264o4H5gf?M2b<2.jj7<4i4;94?=n>80;66g95;29?j7?83:17pl=5983>1<729q/=5759`9K0`c<@=o?7)oi:39j1<<722c==7>5;h46>5<888:e>N3ml1C8h:4$`d96>o213:17d8>:188m33=831d=5>50;9~f731290?6=4?{%3;=??f3A>ni6F;e59'ec<53`?26=44i7394?=n><0;66a>8183>>{e:>20k0D9kj;I6f0>"fn380e8750;9j24<722c=97>5;n3;4?6=3th9994?:583>5}#91315l5G4dg8L1c33-km6?5f5883>>o193:17d8::188k4>72900qo<:3;290?6=8r.:4446a:J7a`=O0(lh52:k6=?6=3`<:6=44i7794?=h91:1<75rb371>5<3290;w)?79;;b?M2bm2B?i95+ag81?l3>2900e;?50;9j20<722e:4=4?::a607=83>1<7>t$0::>>o1=3:17b?70;29?xd56=44o0:3>5<54;294~"60002m6F;ed9K0`2<,hl1>6g:9;29?l062900e;;50;9l5=6=831vn>87:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd4?90;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb24f>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th8:i4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f60a290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl<6c83>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`02f<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn>88:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd4>?0;684?:1y'5=?=1l1C8hk4H5g7?!ga211b944?::k6g?6=3`<>6=44i05e>5<888:f>N3ml1C8h:4$`d96>o213:17d;l:188m37=831b:84?::m2<5<722wi?8>50;194?6|,82269kk;I6fa>N3m=1b9h4?::ke0?6=3f;<57>5;|`01d<72:0;6=u+19;90`b<@=on7E:j4:k6a?6=3`l?6=44o05:>5<54;294~"6000:<=5G4dg8L1c33`?n6=44i7494?=n9181<75`16;94?=zj:?26=4<:183!7?13>nh6F;ed9K0`2>i6?00;66sm35`94?2=83:p(<66:023?M2bm2B?i95f5d83>>o1>3:17d?72;29?j7013:17pl<5983>6<729q/=5754df8L1cb3A>n86g:e;29?l`32900c<96:188yg5313:187>50z&2<<<6891C8hk4H5g7?l3b2900e;850;9j5=4=831d=:750;9~f63029086=4?{%3;=?2bl2B?ih5G4d68m0c=831bj94?::m23<<722wi?9950;694?6|,8226<>?;I6fa>N3m=1b9h4?::k52?6=3`;3>7>5;n34=?6=3th89;4?:283>5}#91318hj4H5gf?M2b<2c>i7>5;hd7>5<888245=O5<31<75rb276>5<4290;w)?79;6f`>N3ml1C8h:4i4g94?=nn=0;66a>7883>>{e;=91<7:50;2x 4>>28:;7E:je:J7a1=n=l0;66g96;29?l7?:3:17b?89;29?xd4==0;6>4?:1y'5=?=o2m3:17dh;:188k41>2900qo=;1;290?6=8r.:444>019K0`c<@=o?7d;j:188m30=831b=5<50;9l52?=831vn>;<:180>5<7s-;357:jd:J7a`=O0e8k50;9jb1<722e:;44?::a76`=83>1<7>t$0::>4673A>ni6F;e59j1`<722c=:7>5;h3;6?6=3f;<57>5;|`017<72:0;6=u+19;90`b<@=on7E:j4:k6a?6=3`l?6=44o05:>5<54;294~"6000:<=5G4dg8L1c33`?n6=44i7494?=n9181<75`16;94?=zj:>m6=4<:183!7?13>nh6F;ed9K0`2>i6?00;66sm32`94?2=83:p(<66:023?M2bm2B?i95f5d83>>o1>3:17d?72;29?j7013:17pl<7d83>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`0<0<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn>6;:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd40:0;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb2:1>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th84<4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f6>7290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl<7g83>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`03f<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn?h;:187>5<7s-;3577n;I6fa>N3m=1/mk4=;h7:>5<>i6090;66sm2g394?2=83:p(<66:8c8L1cb3A>n86*nf;08m0?=831b:<4?::k51?6=3f;3<7>5;|`1bg<72=0;6=u+19;9=d=O7=n=00;66g91;29?l022900c<6?:188yg4a03:187>50z&2<<<>l2B?ih5G4d68 d`=02c>57>5;h46>5<5<54;294~"60002h6F;ed9K0`2<,hl146g:9;29?l022900e<9i:188k4>72900qo:;9;291?6=8r.:4446b:J7a`=O0(lh52:k6=?6=3`?h6=44i7394?=n><0;66a>8183>>{e<<;1<7;50;2x 4>>20h0D9kj;I6f0>"fn380e8750;9j1f<722c==7>5;h46>5<888:f>N3ml1C8h:4$`d96>o213:17d;l:188m37=831b:84?::m2<5<722wi89k50;794?6|,82264l4H5gf?M2b<2.jj7<4i4;94?=n=j0;66g91;29?l022900c<6?:188yg2283:197>50z&2<<<>j2B?ih5G4d68 d`=:2c>57>5;h7`>5<>i6090;66sm45a94?3=83:p(<66:8`8L1cb3A>n86*nf;08m0?=831b9n4?::k55?6=3`<>6=44o0:3>5<?n7>55;294~"60002n6F;ed9K0`2<,hl1>6g:9;29?l3d2900e;?50;9j20<722e:4=4?::a01b=83?1<7>t$0::>>o193:17d8::188k4>72900qo:;8;291?6=8r.:4446e:J7a`=O0(lh58:k6=?6=3`?h6=44i7794?=n9>l1<75`19294?=zj=><6=4::183!7?133i7E:je:J7a1=#io097d;6:188m0e=831b:<4?::k51?6=3f;3<7>5;|`70d<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn9=>:180>5<7s-;357:jd:J7a`=O0e8k50;9jb1<722e:;44?::a06d=8391<7>t$0::>1cc3A>ni6F;e59j1`<722cm87>5;n34=?6=3th?>h4?:583>5}#9131==>4H5gf?M2b<2c>i7>5;h45>5<5<8m7>53;294~"6000?ii5G4dg8L1c33`?n6=44ig694?=h9>31<75rb50`>5<3290;w)?79;334>N3ml1C8h:4i4g94?=n>?0;66g>8383>>i6?00;66sm42;94?5=83:p(<66:5gg?M2bm2B?i95f5d83>>oa<3:17b?89;29?xd3:h0;694?:1y'5=?=99:0D9kj;I6f0>o2m3:17d89:188m4>52900c<96:188yg2403:1?7>50z&2<<<3mm1C8hk4H5g7?l3b2900ek:50;9l52?=831vn9<7:187>5<7s-;357??0:J7a`=O0e8k50;9j23<722c:4?4?::m23<<722wi8>950;194?6|,82269kk;I6fa>N3m=1b9h4?::ke0?6=3f;<57>5;|`763<72=0;6=u+19;9556<@=on7E:j4:k6a?6=3`<=6=44i0:1>5<8887aa=O5<1<75`16;94?=zj=8?6=4;:183!7?13;;<6F;ed9K0`2>o60;0;66a>7883>>{e<:?1<7=50;2x 4>>2=oo7E:je:J7a1=n=l0;66gi4;29?j7013:17pl;2383>1<729q/=5751128L1cb3A>n86g:e;29?l012900e<6=:188k41>2900qo:<4;297?6=8r.:444;ee9K0`c<@=o?7d;j:188mc2=831d=:750;9~f147290?6=4?{%3;=?7782B?ih5G4d68m0c=831b:;4?::k2<7<722e:;44?::a065=8391<7>t$0::>1cc3A>ni6F;e59j1`<722cm87>5;n34=?6=3th?=h4?:583>5}#9131==>4H5gf?M2b<2c>i7>5;h45>5<5<8<7>53;294~"6000?ii5G4dg8L1c33`?n6=44ig694?=h9>31<75rb53`>5<3290;w)?79;334>N3ml1C8h:4i4g94?=n>?0;66g>8383>>i6?00;66sm47294?3=83:p(<66:8`8L1cb3A>n86*nf;08m0?=831b9n4?::k55?6=3`<>6=44o0:3>5<>h7>55;294~"60002i6F;ed9K0`2<,hl146g:9;29?l3d2900e;;50;9j52`=831d=5>50;9~f13b290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;6283>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`727<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn989:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd3>=0;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb546>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?::4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f13a290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;7483>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`73f<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn99m:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd3?h0;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb55:>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?;54?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f110290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;7783>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`736<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn97m:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd31h0;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb5;:>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?554?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f1?0290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;9783>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`7=6<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn97=:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd3180;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb5;3>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?4k4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f1>b290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;8e83>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`77=n=00;66g:c;29?l062900e;;50;9l5=6=831vn966:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd3010;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb5:4>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?4;4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f1>2290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;8583>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`7<7<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn96>:186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd3090;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb5c2>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?m=4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f1?a290>6=4?{%3;=??e3A>ni6F;e59'ec<53`?26=44i4a94?=n>80;66g95;29?j7?83:17pl;9d83>0<729q/=5759c9K0`c<@=o?7)oi:39j1<<722c>o7>5;h42>5<5;|`7=f<72<0;6=u+19;9=g=O7=n=00;66g:c;29?l062900e;;50;9l5=6=831vn97::186>5<7s-;3577m;I6fa>N3m=1/mk4=;h7:>5<>o1=3:17b?70;29?xd30h0;684?:1y'5=?=1k1C8hk4H5g7?!ga2;1b944?::k6g?6=3`<:6=44i7794?=h91:1<75rb55e>5<2290;w)?79;;a?M2bm2B?i95+ag81?l3>2900e8m50;9j24<722c=97>5;n3;4?6=3th?;h4?:483>5}#91315o5G4dg8L1c33-km6?5f5883>>o2k3:17d8>:188m33=831d=5>50;9~f1bb29086=4?{%3;=?`>3A>ni6F;e59'ec<582cj?7>5;hc7>5<888e=>N3ml1C8h:4$`d965=ni:0;66gn4;29?j7013:17pl>b583>6<729q/=575f89K0`c<@=o?7)oi:318md5=831bm94?::m23<<722wi=o=50;194?6|,8226k74H5gf?M2b<2.jj7<<;hc0>5<1<75`16;94?=zj8h96=4<:183!7?13l27E:je:J7a1=#io09?6gn3;29?lg32900c<96:188yg7e93:1?7>50z&2<<4?::kb0?6=3f;<57>5;|`2f5<72:0;6=u+19;9b<=O75>i6?00;66sm1`d94?5=83:p(<66:g;8L1cb3A>n86*nf;00?lg42900el:50;9l52?=831vn5<7s-;357h6;I6fa>N3m=1/mk4=3:kb7?6=3`k?6=44o05:>5<53;294~"6000m56F;ed9K0`2<,hl1>>5fa283>>of<3:17b?89;29?xd6ij0;6>4?:1y'5=?=n01C8hk4H5g7?!ga2;90el=50;9je1<722e:;44?::a5dd=8391<7>t$0::>c?<@=on7E:j4:&bb?443`k86=44i`694?=h9>31<75rb0;`>5<4290;w)?79;d:?M2bm2B?i95+ag817>of;3:17do;:188k41>2900qo?6b;297?6=8r.:444i9:J7a`=O0(lh5229je6<722cj87>5;n34=?6=3th:5l4?:283>5}#9131j45G4dg8L1c33-km6?=4i`194?=ni=0;66a>7883>>{e9031<7=50;2x 4>>2o30D9kj;I6f0>"fn3887do<:188md2=831d=:750;9~f4??29086=4?{%3;=?`>3A>ni6F;e59'ec<5;2cj?7>5;hc7>5<888e=>N3ml1C8h:4$`d966=ni:0;66gn4;29?j7013:17pl>9783>6<729q/=575f89K0`c<@=o?7)oi:318md5=831bm94?::m23<<722wi=4;50;194?6|,8226k74H5gf?M2b<2.jj7<<;hc0>5<1<75`16;94?=zj83?6=4<:183!7?13l27E:je:J7a1=#io09?6gn3;29?lg32900c<96:188yg7>;3:1?7>50z&2<<4?::kb0?6=3f;<57>5;|`1b6<72=0;6=u+19;9bd=O7g>of=3:17b?89;29?xd5nh0;684?:1y'5=?=nm1C8hk4H5g7?!ga25;hc5>5<888e`>N3ml1C8h:4$`d962=ni:0;66gn4;29?lg22900el850;9l52?=831vn9??:180>5<7s-;357h6;I6fa>N3m=1/mk4=0:kb7?6=3`k?6=44o05:>5<54;294~"6000mm6F;ed9K0`2<,hl1>85fa283>>of<3:17do::188k41>2900qo?6e;291?6=8r.:444id:J7a`=O0(lh5399je6<722cj87>5;hc6>5<6gn3;29?lg32900el;50;9je3<722e:;44?::a0fd=8391<7>t$0::>c?<@=on7E:j4:&bb??43`k86=44i`694?=h9>31<75rb2`7>5<4290;w)?79;d:?M2bm2B?i95+ag801>of;3:17do;:188k41>2900qo=6d;297?6=8r.:444i9:J7a`=O0(lh5349je6<722cj87>5;n34=?6=3th8>44?:283>5}#9131j45G4dg8L1c33-km6>;4i`194?=ni=0;66a>7883>>{e;881<7=50;2x 4>>2o30D9kj;I6f0>"fn39>7do<:188md2=831d=:750;9~f6d4290>6=4?{%3;=?`c3A>ni6F;e59'ec<4>2cj?7>5;hc7>5<>i6?00;66sm38a94?3=83:p(<66:gf8L1cb3A>n86*nf;15?lg42900el:50;9je0<722cj:7>5;n34=?6=3th8>54?:483>5}#9131ji5G4dg8L1c33-km6>84i`194?=ni=0;66gn5;29?lg12900c<96:188yg5693:197>50z&2<<4?::kb0?6=3`k>6=44i`494?=h9>31<75rb3a4>5<2290;w)?79;dg?M2bm2B?i95+ag82g>of;3:17do;:188md3=831bm;4?::m23<<722wi?o<50;794?6|,8226kj4H5gf?M2b<2.jj7=9;hc0>5<1<75fa483>>of>3:17b?89;29?xd41k0;684?:1y'5=?=nm1C8hk4H5g7?!ga2:<0el=50;9je1<722cj97>5;hc5>5<888e`>N3ml1C8h:4$`d973=ni:0;66gn4;29?lg22900el850;9l52?=831vn>??:186>5<7s-;357hk;I6fa>N3m=1/mk4<6:kb7?6=3`k?6=44i`794?=ni?0;66a>7883>>{e;k;1<7;50;2x 4>>2on0D9kj;I6f0>"fn39=7do<:188md2=831bm84?::kb2?6=3f;<57>5;|`0=d<72<0;6=u+19;9ba=O60>of=3:17do9:188k41>2900qo==6;291?6=8r.:444id:J7a`=O0(lh5379je6<722cj87>5;hc6>5<t$0::>cb<@=on7E:j4:&bb?513`k86=44i`694?=ni<0;66gn6;29?j7013:17pl<9883>0<729q/=575fe9K0`c<@=o?7)oi:248md5=831bm94?::kb1?6=3`k=6=44o05:>5<55;294~"6000mh6F;ed9K0`2<,hl1?;5fa283>>of<3:17do::188md0=831d=:750;9~f66b290>6=4?{%3;=?`c3A>ni6F;e59'ec<4>2cj?7>5;hc7>5<>i6?00;66sm33g94?2=83:p(<66:gc8L1cb3A>n86*nf;;;?lg42900el:50;9je0<722e:;44?::a7gg=83?1<7>t$0::>cb<@=on7E:j4:&bb?313`k86=44i`694?=ni<0;66gn6;29?j7013:17pl0<729q/=575fe9K0`c<@=o?7)oi:248md5=831bm94?::kb1?6=3`k=6=44o05:>5<55;294~"6000mh6F;ed9K0`2<,hl1?;5fa283>>of<3:17do::188md0=831d=:750;9~f6??290>6=4?{%3;=?`c3A>ni6F;e59'ec<4>2cj?7>5;hc7>5<>i6?00;66sm33694?3=83:p(<66:gf8L1cb3A>n86*nf;15?lg42900el:50;9je0<722cj:7>5;n34=?6=3th:m94?:283>5}#9131j45G4dg8L1c33-km6?=4i`194?=ni=0;66a>7883>>{e90n1<7=50;2x 4>>2o30D9kj;I6f0>"fn39>7do<:188md2=831d=:750;9~f7b229086=4?{%3;=?`>3A>ni6F;e59'ec<582cj?7>5;hc7>5<888e=>N3ml1C8h:4$`d966=ni:0;66gn4;29?j7013:17pl=d683>1<729q/=575f`9K0`c<@=o?7)oi:0`8md5=831bm94?::kb1?6=3f;<57>5;|`0gd<72=0;6=u+19;9bd=O7>>of=3:17b?89;29?xd5l00;684?:1y'5=?=nm1C8hk4H5g7?!ga2;>0el=50;9je1<722cj97>5;hc5>5<888e`>N3ml1C8h:4$`d96<=ni:0;66gn4;29?lg22900el850;9l52?=831vn?h?:180>5<7s-;357h6;I6fa>N3m=1/mk4=3:kb7?6=3`k?6=44o05:>5<54;294~"6000mm6F;ed9K0`2<,hl1?=5fa283>>of<3:17do::188k41>2900qo0(lh5389je6<722cj87>5;hc6>5<50z&2<<4?::kb0?6=3`k>6=44o05:>5<53;294~"6000m56F;ed9K0`2<,hl1>>5fa283>>of<3:17b?89;29?xd6i;0;6>4?:1y'5=?=n01C8hk4H5g7?!ga2;90el=50;9je1<722e:;44?::a5d3=83>1<7>t$0::>cg<@=on7E:j4:&bb?503`k86=44i`694?=ni<0;66a>7883>>{e:m:1<7:50;2x 4>>2ok0D9kj;I6f0>"fn38n7do<:188md2=831bm84?::m23<<722wi>nk50;794?6|,8226kj4H5gf?M2b<2.jj794i`194?=ni=0;66gn5;29?lg12900c<96:188yg4bj3:1?7>50z&2<<4?::kb0?6=3f;<57>5;|`1af<72:0;6=u+19;9b<=O7b>i6?00;66sm2df94?3=83:p(<66:gf8L1cb3A>n86*nf;;7?lg42900el:50;9je0<722cj:7>5;n34=?6=3th9ok4?:583>5}#9131jl5G4dg8L1c33-km6;5fa283>>of<3:17do::188k41>2900qo0(lh52e9je6<722cj87>5;n34=?6=3th9oi4?:483>5}#9131ji5G4dg8L1c33-km64:4i`194?=ni=0;66gn5;29?lg12900c<96:188yg4b;3:197>50z&2<<4?::kb0?6=3`k>6=44i`494?=h9>31<75rb2a`>5<2290;w)?79;dg?M2bm2B?i95+ag81g>of;3:17do;:188md3=831bm;4?::m23<<722wi=5o50;194?6|,8226k74H5gf?M2b<2.jj7<<;hc0>5<1<75`16;94?=zj:>n6=4=:183!7?13l37E:je:J7a1=#io0:56gn3;29?j7013:17pl<4b83>7<729q/=575f99K0`c<@=o?7)oi:0;8md5=831d=:750;9~f62f29096=4?{%3;=?`?3A>ni6F;e59'ec<612cj?7>5;n34=?6=3th8854?:383>5}#9131j55G4dg8L1c33-km6<74i`194?=h9>31<75rb265>5<5290;w)?79;d;?M2bm2B?i95+ag82=>of;3:17b?89;29?xd4<=0;6?4?:1y'5=?=n11C8hk4H5g7?!ga2830el=50;9l52?=831vn>:=:181>5<7s-;357h7;I6fa>N3m=1/mk4>9:kb7?6=3f;<57>5;|`005<72;0;6=u+19;9b==O4?7<729q/=575f99K0`c<@=o?7)oi:0;8md5=831d=:750;9~f14a29096=4?{%3;=?`?3A>ni6F;e59'ec<612cj?7>5;n34=?6=3th?>i4?:383>5}#9131j55G4dg8L1c33-km6<74i`194?=h9>31<75rb50a>5<5290;w)?79;d;?M2bm2B?i95+ag82=>of;3:17b?89;29?xd3:00;6?4?:1y'5=?=n11C8hk4H5g7?!ga2830el=50;9l52?=831vn9<8:181>5<7s-;357h7;I6fa>N3m=1/mk4>9:kb7?6=3f;<57>5;|`760<72;0;6=u+19;9b==O4?7<729q/=575f99K0`c<@=o?7)oi:0;8md5=831d=:750;9~f17a29096=4?{%3;=?`?3A>ni6F;e59'ec<612cj?7>5;n34=?6=3th?=i4?:383>5}#9131j55G4dg8L1c33-km6<74i`194?=h9>31<75rb272>5<5290;w)?79;d;?M2bm2B?i95+ag82=>of;3:17b?89;29?xd3;;0;6?4?:1y'5=?=n11C8hk4H5g7?!ga2830el=50;9l52?=831vn<6m:187>5<7s-;357hn;I6fa>N3m=1/mk4<7:kb7?6=3`k?6=44i`794?=h9>31<75rb0:g>5<3290;w)?79;db?M2bm2B?i95+ag803>of;3:17do;:188md3=831d=:750;9~f4>a290?6=4?{%3;=?`f3A>ni6F;e59'ec<4?2cj?7>5;hc7>5<:187>5<7s-;357hn;I6fa>N3m=1/mk4<7:kb7?6=3`k?6=44i`794?=h9>31<75rb3g4>5<2290;w)?79;dg?M2bm2B?i95+ag861>of;3:17do;:188md3=831bm;4?::m23<<722wi?i650;194?6|,8226k74H5gf?M2b<2.jj75<1<75`16;94?=zj;oj6=4::183!7?13lo7E:je:J7a1=#io02;6gn3;29?lg32900el;50;9je3<722e:;44?::a7fb=83>1<7>t$0::>cg<@=on7E:j4:&bb?4b3`k86=44i`694?=ni<0;66a>7883>>{e:jk1<7;50;2x 4>>2on0D9kj;I6f0>"fn38m7do<:188md2=831bm84?::kb2?6=3f;<57>5;|`1`4<72<0;6=u+19;9ba=O7`>of=3:17do9:188k41>2900qo0(lh51`9je6<722cj87>5;hc6>5<6=4::183!7?13lo7E:je:J7a1=#io09=6gn3;29?lg32900el;50;9je3<722e:;44?::a6`>=83?1<7>t$0::>cb<@=on7E:j4:&bb?4d3`k86=44i`694?=ni<0;66gn6;29?j7013:17pl=c883>0<729q/=575fe9K0`c<@=o?7)oi:3a8md5=831bm94?::kb1?6=3`k=6=44o05:>5<54;294~"6000mm6F;ed9K0`2<,hl1>h5fa283>>of<3:17do::188k41>2900qo=k6;291?6=8r.:444id:J7a`=O0(lh5289je6<722cj87>5;hc6>5<t$0::>cb<@=on7E:j4:&bb?4>3`k86=44i`694?=ni<0;66gn6;29?j7013:17pl0<729q/=575fe9K0`c<@=o?7)oi:3d8md5=831bm94?::kb1?6=3`k=6=44o05:>5<55;294~"6000mh6F;ed9K0`2<,hl1>k5fa283>>of<3:17do::188md0=831d=:750;9~f6b4290>6=4?{%3;=?`c3A>ni6F;e59'ec<5k2cj?7>5;hc7>5<>i6?00;66sm3b594?3=83:p(<66:gf8L1cb3A>n86*nf;1b?lg42900el:50;9je0<722cj:7>5;n34=?6=3th9i94?:483>5}#9131ji5G4dg8L1c33-km6?m4i`194?=ni=0;66gn5;29?lg12900c<96:188yg7f?3:197>50z&2<<4?::kb0?6=3`k>6=44i`494?=h9>31<75rb0cb>5<2290;w)?79;dg?M2bm2B?i95+ag812>of;3:17do;:188md3=831bm;4?::m23<<722wi=4<50;794?6|,8226kj4H5gf?M2b<2.jj7<9;hc0>5<1<75fa483>>of>3:17b?89;29?xd6i00;694?:1y'5=?=nh1C8hk4H5g7?!ga2:=0el=50;9je1<722cj97>5;n34=?6=3th9i=4?:483>5}#9131ji5G4dg8L1c33-km6?:4i`194?=ni=0;66gn5;29?lg12900c<96:188yg5c=3:197>50z&2<<4?::kb0?6=3`k>6=44i`494?=h9>31<75rb2f7>5<2290;w)?79;dg?M2bm2B?i95+ag81=>of;3:17do;:188md3=831bm;4?::m23<<722wi=l>50;794?6|,8226kj4H5gf?M2b<2.jj7<9;hc0>5<1<75fa483>>of>3:17b?89;29?xd61o0;684?:1y'5=?=nm1C8hk4H5g7?!ga2:20el=50;9je1<722cj97>5;hc5>5<888e`>N3ml1C8h:4$`d963=ni:0;66gn4;29?lg22900el850;9l52?=831vn<7?:186>5<7s-;357hk;I6fa>N3m=1/mk4=6:kb7?6=3`k?6=44i`794?=ni?0;66a>7883>>{e91o1<7;50;2x 4>>2on0D9kj;I6f0>"fn38=7do<:188md2=831bm84?::kb2?6=3f;<57>5;|`2e6<72=0;6=u+19;9bd=O61>of=3:17b?89;29?xd60j0;684?:1y'5=?=nm1C8hk4H5g7?!ga2;<0el=50;9je1<722cj97>5;hc5>5<888e6>N3ml1C8h:4i`094?=h9>31<75rb5a5>5<3:3:18882<4=Od}f2k08=7==:07953<4;3;<6>:5198~ `c=<2.nj7:4$`590>"f03>0(l754:&be?2<,hh186*nc;68 4>22:1/=5853:&a4?2<,k;186*m2;68 g5=<2.i87:4$c790>"e>3>0(o954:&a"em3>0(oh54:&`4?2<,j;186*l2;68 f5=<2.h87:4$b790>"d>3>0(n954:&`"dm3>0(nh54:&g4?2<,m;186*k2;68 a5=<2.o87:4$e790>"c>3>0(i954:&g"cm3>0(ih54:&f4?2<,l;186*j2;68 `5=<2.n87:4$d790>"b>3>0(h954:&f"3mk0?i45+ae87?!7?;3;<46*i0;18 c7=;2.?il4;e89'e`<33`?m6=44i7294?=n1<0;66g66;29?l7??3:17d?78;29?l2b?3:17d:j8;29?l5c290/=:k53b9m52b=821b8;4?:%34a?5d3g;5<#9>o1?n5a16f96>=n<=0;6)?8e;1`?k70l3907d:<:18'52c=;j1e=:j54:9j07<72-;:6=4+16g97f=i9>n1:65f4183>!70m39h7c?8d;58?l5a290/=:k53b9m52b=021b?h4?:%34a?5d3g;5<#9>o1?n5a16f9e>=n<00;6)?8e;6;?k70l3:07d;=:18'52c=<11e=:j51:9j14<72-;n1?65f4g83>!70m3>37c?8d;68?l2b290/=:k5499m52b==21b8i4?:%34a?2?3g;5<#9>o1855a16f93>=nn1<65f6e83>!70m35<#9>o1:h5a16f90>=n>00;6)?8e;4f?k70l3?07d87:18'52c=>l1e=:j56:9j22<72-;n1<65f7783>!70m3=<7c?8d;38?l12290/=:k5769m52b=:21b;94?:%34a?103g;5<#9>o1;:5a16f90>=n?;0;6)?8e;54?k70l3?07d9>:18'52c=?>1e=:j56:9j35<72-;n1<65f7b83>!70m3=i7c?8d;28?j>2290/=:k5859m52b=821d4>4?:%34a?>33g;5<#9>o1495a16f96>=h080;6)?8e;:7?k70l3907b6?:18'52c=0=1e=:j54:9l3c<72-;n1:65`7e83>!70m32?7c?8d;58?j?7290/=:k58g9m52b=821d4h4?:%34a?>c3g;4;n:`>5<#9>o14i5a16f95>=h0k0;6)?8e;:g?k70l3807b6n:18'52c=0m1e=:j53:9l<<<72-;n1965`8683>!70m32o7c?8d;48?j>1290/=:k58e9m52b=?21d5?4?:%34a??63g;4;|`7g2<72=81<7>t$0::>4>63A>ni6F;e59Y1=?533821?712:91=:4<4;3;>x"bm3>0(hh54:&b3?2<,h2186*n9;68 dg=<2.jn7:4$`a90>"60<087)?76;18 g6=<2.i=7:4$c090>"e;3>0(o:54:&a1?2<,k<186*m7;68 g>=<2.i57:4$cc90>"ej3>0(om54:&a`?2<,ko186*mf;68 f6=<2.h=7:4$b090>"d;3>0(n:54:&`1?2<,j<186*l7;68 f>=<2.h57:4$bc90>"dj3>0(nm54:&``?2<,jo186*lf;68 a6=<2.o=7:4$e090>"c;3>0(i:54:&g1?2<,m<186*k7;68 a>=<2.o57:4$ec90>"cj3>0(im54:&g`?2<,mo186*kf;68 `6=<2.n=7:4$d090>"b;3>0(h:54:&f1?2<,l<186*j7;68 `>=<2.n57:4$dc90>"bj3>0(hm54:&f`?2<,=oi69k6;%cg>1=#9191=:64$g297>"a9390(9kn:5g:?!gb2=1b9k4?::k54?6=3`3>6=44i8494?=n91=1<75f19:94?=n?6=4+16g97f=i9>n1?65f4283>!70m39h7c?8d;68?l25290/=:k53b9m52b==21b8<4?:%34a?5d3g;5<#9>o1?n5a16f93>=n;o0;6)?8e;1`?k70l3207d=j:18'52c=;j1e=:j59:9j7g<72-;26=4+16g90==i9>n1<65f5383>!70m3>37c?8d;38?l36290/=:k5499m52b=:21b9=4?:%34a?2?3g;5<#9>o1855a16f90>=ni6=4+16g90==i9>n1465f4`83>!70m3>37c?8d;;8?l20290/=:k5499m52b=i21b:k4?:%34a?0b3g;4;h4g>5<#9>o1:h5a16f95>=n>j0;6)?8e;4f?k70l3807d8m:18'52c=>l1e=:j53:9j2d<72-;n1965f6983>!70m34;h55>5<#9>o1;:5a16f95>=n?<0;6)?8e;54?k70l3807d9;:18'52c=?>1e=:j53:9j36<72-;n1965f7083>!70m3=<7c?8d;48?l17290/=:k5769m52b=?21b;l4?:%34a?1>3g;4;h5`>5<#9>o1;o5a16f94>=h0<0;6)?8e;:7?k70l3:07b6<:18'52c=0=1e=:j51:9l<7<72-;n1?65`8183>!70m32?7c?8d;68?j1a290/=:k5859m52b==21d;h4?:%34a?>33g;5<#9>o1495a16f93>=h190;6)?8e;:e?k70l3:07b6j:18'52c=0m1e=:j50:9ln1>65`8`83>!70m32o7c?8d;18?j>>290/=:k58e9m52b=<21d454?:%34a?>c3g;5<#9>o14i5a16f92>=h0?0;6)?8e;:g?k70l3=07b7=:18'52c=181e=:j50:9~f1e?290?>7>50z&2<<<6081C8hk4H5g7?_3?2hqj6o4<1;11>43=9?08?7?8:2695="fi3>0(ll54:&bg?2<,82>6>5+19497>"e83>0(o?54:&a6?2<,k9186*m4;68 g3=<2.i:7:4$c590>"e03>0(o754:&ae?2<,kh186*mc;68 gb=<2.ii7:4$cd90>"d83>0(n?54:&`6?2<,j9186*l4;68 f3=<2.h:7:4$b590>"d03>0(n754:&`e?2<,jh186*lc;68 fb=<2.hi7:4$bd90>"c83>0(i?54:&g6?2<,m9186*k4;68 a3=<2.o:7:4$e590>"c03>0(i754:&ge?2<,mh186*kc;68 ab=<2.oi7:4$ed90>"b83>0(h?54:&f6?2<,l9186*j4;68 `3=<2.n:7:4$d590>"b03>0(h754:&fe?2<,lh186*jc;68 `b=<2.?io4;e89'ea<33-;3?7?88:&e4?5<,o;1?6*;e`87a<=#il0?7d;i:188m36=831b584?::k:2?6=3`;3;7>5;h3;n;7>5;h6fn1<65f4783>!70m39h7c?8d;38?l22290/=:k53b9m52b=:21b894?:%34a?5d3g;5<#9>o1?n5a16f90>=n<;0;6)?8e;1`?k70l3?07d:>:18'52c=;j1e=:j56:9j05<72-;n1465f3d83>!70m39h7c?8d;;8?l5e290/=:k53b9m52b=i21b844?:%34a?2?3g;4;h71>5<#9>o1855a16f95>=n=80;6)?8e;6;?k70l3807d;?:18'52c=<11e=:j53:9j0c<72-;n6=4+16g90==i9>n1965f4e83>!70m3>37c?8d;48?l2d290/=:k5499m52b=?21b8o4?:%34a?2?3g;5<#9>o1855a16f9=>=n<>0;6)?8e;6;?k70l3k07d8i:18'52c=>l1e=:j50:9j2a<72-;n1>65f6c83>!70m35<#9>o1:h5a16f92>=n>>0;6)?8e;4f?k70l3=07d97:18'52c=?>1e=:j50:9j33<72-;6=4+16g932=i9>n1>65f7583>!70m3=<7c?8d;18?l14290/=:k5769m52b=<21b;?4?:%34a?103g;5<#9>o1;:5a16f92>=n?90;6)?8e;54?k70l3=07d9n:18'52c=?01e=:j50:9j3f<72-;6=4+16g9<1=i9>n1<65`8283>!70m32?7c?8d;38?j>5290/=:k5859m52b=:21d4<4?:%34a?>33g;5<#9>o1495a16f90>=h?o0;6)?8e;:7?k70l3?07b9j:18'52c=0=1e=:j56:9l3a<72-;n1<65`8d83>!70m32o7c?8d;28?j>d290/=:k58e9m52b=921d4o4?:%34a?>c3g;5<#9>o14i5a16f97>=h000;6)?8e;:g?k70l3>07b67:18'52c=0m1e=:j55:9l<2<72-;n1;65`9383>!70m33:7c?8d;28?xd3k00;69<50;2x 4>>282:7E:je:J7a1=]=10jwl4m:23977<6=3;=6>=516800?7?2t.ni7:4$dd90>"f?3>0(l654:&b=?2<,hk186*nb;68 de=<2.:484<;%3;2?5<,k:186*m1;68 g4=<2.i?7:4$c690>"e=3>0(o854:&a3?2<,k2186*m9;68 gg=<2.in7:4$ca90>"el3>0(ok54:&ab?2<,j:186*l1;68 f4=<2.h?7:4$b690>"d=3>0(n854:&`3?2<,j2186*l9;68 fg=<2.hn7:4$ba90>"dl3>0(nk54:&`b?2<,m:186*k1;68 a4=<2.o?7:4$e690>"c=3>0(i854:&g3?2<,m2186*k9;68 ag=<2.on7:4$ea90>"cl3>0(ik54:&gb?2<,l:186*j1;68 `4=<2.n?7:4$d690>"b=3>0(h854:&f3?2<,l2186*j9;68 `g=<2.nn7:4$da90>"bl3>0(9km:5g:?!gc2=1/=5=516:8 c6=;2.m=7=4$5gb>1c>3-kn695f5g83>>o183:17d7::188m<0=831b=5950;9j5=>=831b8h950;9j0`>=831b?i4?:%34a?5d3g;4;h65>5<#9>o1?n5a16f95>=n<<0;6)?8e;1`?k70l3807d:;:18'52c=;j1e=:j53:9j06<72-;96=4+16g97f=i9>n1965f4083>!70m39h7c?8d;48?l27290/=:k53b9m52b=?21b?k4?:%34a?5d3g;5<#9>o1?n5a16f9=>=n;k0;6)?8e;1`?k70l3k07d:6:18'52c=<11e=:j50:9j17<72-;n1>65f5183>!70m3>37c?8d;18?l2a290/=:k5499m52b=<21b8h4?:%34a?2?3g;5<#9>o1855a16f92>=n<6=4+16g90==i9>n1m65f6g83>!70m35<#9>o1:h5a16f97>=n>h0;6)?8e;4f?k70l3>07d86:18'52c=>l1e=:j55:9j2=<72-;n1;65f7983>!70m3=<7c?8d;28?l11290/=:k5769m52b=921b;84?:%34a?103g;5<#9>o1;:5a16f97>=n?:0;6)?8e;54?k70l3>07d9=:18'52c=?>1e=:j55:9j34<72-;n1;65f7`83>!70m3=27c?8d;28?l1d290/=:k57c9m52b=821d484?:%34a?>33g;4;n:0>5<#9>o1495a16f95>=h0;0;6)?8e;:7?k70l3807b6>:18'52c=0=1e=:j53:9l<5<72-;n1965`7d83>!70m32?7c?8d;48?j1c290/=:k5859m52b=?21d5=4?:%34a?>a3g;4;n:f>5<#9>o14i5a16f94>=h0j0;6)?8e;:g?k70l3;07b6m:18'52c=0m1e=:j52:9ln1865`8983>!70m32o7c?8d;78?j>0290/=:k58e9m52b=>21d4;4?:%34a?>c3g;5<#9>o15<5a16f94>=zj;nh6=4::183!7?13li7E:je:J7a1=#io09n6gn3;29?lg32900el;50;9lb0<722e:;44?::a6`7=83>1<7>t$0::>ce<@=on7E:j4:&bb?4b3`k86=44i`694?=ni<0;66ai5;29?xd5m?0;6;4?:1y'5=?=nl1C8hk4H5g7?!ga2;l0el=50;9je1<722cj97>5;hc5>5<ij50;694?6|,8226km4H5gf?M2b<2.jj75<1<75fa483>>ia=3:17pl=cb83>3<729q/=575fd9K0`c<@=o?7)oi:49je6<722cj87>5;hc6>5<>i6?00;66s|61`94?0|V?:i70700;655Q6038Z1`13W<;i6P:a79]2449;_731>X28=1U9==4^421?[3792T><=5Q4gd8Z1`d3W>mn63;eg8b4>;3lh0=963;cg851>;3l00=963;d9851>;3l>0=963;e3851>;3m80=963=b`823c=::kh1=:h4=3`f>41a348ij7?8f:?1g5<6?o16>n?516d897e528=m70;5k=0:;k522b7952`<5;hh6<9i;<0a`?70n278<;496:?040<1>278<9496:?046<1>278278=i496:?05f<1>278=o496:?05d<1>278=4496:?05=<1>2785<496:?0=5<1>2784k496:?0<`<1>2784i496:?0278m5496:?0e2<1>278m;496:?0e0<1>278m9496:?0e6<1>2788i496:?00g<1>27884496:?002<1>27888496:?006<1>2788<496:?07c<1>278?i496:?07g<1>27?>h496:?76f<1>27?>l496:?76=<1>27?>;496:?761<1>27?>?496:?765<1>27?=h496:?75f<1>27?o;4>869>0f0=<019m9:67891e12>>019m9:61891e12>8019m9:63891e12>:019m9:6a891e0282<70:l7;6f<>;3k>0<463;c6842>;3k>0<963;c6840>;3k>0;3k>0<=63;c6844>;3k>02><5=i36:84=5a;>23<5=i36::4=5a;>25<5=i36:<4=5a;>27<5=i36:>4=5a;>2e<5=i26<68;<6`=?2b027?o4488:?7g<<0>27?o4485:?7g<<0<27?o4483:?7g<<0:27?o4481:?7g<<0827?o448c:p25b=839pR;>k;<6ge?70n27?ok4>7g9~w0?c2909wS;6d:?1b=<6091v;n4:9:?1fd<21279no4:9:?1f`<21279nk4:9:?1g5<21279o<4:9:?1g7<21279o>4:9:?1g1<21279o84:9:?1ff<21279ni4:9:?174<21279?44:9:?17=<21279?:4:9:?173<21279?84:9:?171<21279?>4:9:?177<21279?=4:9:?16c<21279;n4:9:?1<1<212794>4:9:?1<7<212794<4:9:?1<5<21279;k4:9:?13`<21279;i4:9:?13g<21279;l4:9:?123<21279:h4:9:?12a<21279:n4:9:?12g<21279:l4:9:?12<<21279:54:9:?122<21279:84:9:?121<2127:i>4:9:?2ag<2127:il4:9:?2a<<2127:i54:9:?2a2<2127:i;4:9:?2a0<2127:i94:9:?2a7<2127:i<4:9:?02=<21278;=4:9:?02`<21278:i4:9:?02c<21278:o4:9:?02d<21278:n4:9:?022<21278:;4:9:?02<<21278;h4:9:?0<3<21278484:9:?0<1<212784>4:9:?0<7<212784<4:9:?0<5<21278;k4:9:?03a<21278;n4:9:?1b1<21279j<4:9:?1bg<21279j54:9:?1b2<2127?5o4:9:?7=d<2127?544:9:?7==<2127?5:4:9:?7=3<2127?594:9:?7=6<2127?5?4:9:?7=4<2127?5=4:9:?74:9:?7<7<2127?4<4:9:?7<5<2127?m<4:9:?7e5<2127?5k4:9:?7=`<2127?5i4:9:?7=f<2127?584:9:?7wS8>4:?7`f<2127?hl4:9:?7`g<2127?i?4:9:?7a4<21278n54:9:?0f2<21278jl4:9:?0bg<21278jh4:9:?0bc<2127?<=4:9:?744<2127?4:9:?157<21279=<4:9:?155<212794:9:?724<2127?:?4:9:?723<2127?:94:9:?720<2127?::4:9:?71c<2127?;84:9:?73a<2127?;n4:9:?73g<2127?;l4:9:?73<<2127?;54:9:?732<2127?;;4:9:?731<2127?;>4:9:?7g3<2n27?o:4:f:?7g=<2n27?o44:f:p272=838pR;?7;<1e`?7?82wx:?<50;0xZ370349mo7?70:p27b=838pR;;87?70:p27d=838pR;?j;<637?7?82wx:?o50;0xZ37c34>;>7?70:p27?=838pR;?l;<635?7?82wx:?650;0xZ37e34>;<7?70:p271=838pR;?n;<1eb?7?82wx:?850;0xZ37>349mi7?70:p273=838pR;?9;<1ef?7?82wx:??50;0xZ372349mm7?70:p1<2=838pR89?;<6:f?7?82wx94<50;0xZ00a34>2m7?70:p1<7=838pR88j;<6:=?7?82wx94>50;0xZ00c34>247?70:p1=`=838pR88l;<6:3?7?82wx95k50;0xZ00e34>2:7?70:p1=e=838pR886;<6:0?7?82wx95l50;0xZ00?34>2?7?70:p1=g=838pR888;<6:6?7?82wx95750;0xZ00134>2=7?70:p1=>=838pR88:;<6:4?7?82wx95950;0xZ00334>3j7?70:p1=0=838pR88<;<6;a?7?82wx95;50;0xZ00534>3h7?70:p1=2=838pR88>;<6;g?7?82wx95=50;0xZ00734>3n7?70:p1=7=838pR8;j;<6;=?7?82wx95>50;0xZ03c34>347?70:p12`=838pR8;l;<6;3?7?82wx9:k50;0xZ03e34>3:7?70:p12b=838pR8;n;<6;1?7?82wx9:m50;0xZ03>34>387?70:p12d=838pR8;7;<6;7?7?82wx9:o50;0xZ03034>3>7?70:p12?=838pR8;9;<6;5?7?82wx9:650;0xZ03234>3<7?70:p1j<7?70:p12i7?70:p1<1=838pR89=;<6:`?7?82wx94850;0xZ01634>2o7?70:p1<3=838pR88n;<6:1?7?82wx95j50;0xZ03a34>3m7?70:p1=4=838pR8;;;<64b?7?82wx9:950;0xZ03434>=838pR8hm;<0`7?7?82wx:=950;0xZ0`f348h>7?70:p250=838pR8h6;<0`5?7?82wx:=;50;0xZ0`?348h<7?70:p252=838pR8h8;<0ab?7?82wx:==50;0xZ0`1348ii7?70:p254=838pR8h<;<0af?7?82wx9kk50;0xZ0`5348im7?70:p11d=838pR8<8;<6`=?1f3ty>844?:3y]170<5=i26;h4}r77>8524b;92a=z{<><6=4={_710>;3k00=o6s|55494?4|V<8870:l9;4a?xu2<<0;6?uQ530891e>2?k0q~;;3;296~X2:9168n75689~w0252909wS;>f:?7g<<102wx99?50;0xZ07b34>h5788;|q605<72;qU92g52z\65f=:5<5sW?:n63;c985`>{t=:n1<77}Y=83019m7:7`8yv34j3:1>vP:199>0f>=>h1v8=n:181[36?27?o5499:p16>=838pR8?:;<6`?:4?:3y]142<5=i36;94}r702?6=:rT>=>524b593d=z{<9>6=4={_726>;3k>0=j6s|52694?4|V<;:70:l7;4g?xu2;:0;6?uQ502891e02?i0q~;<2;296~X28o168n956c9~w0562909wS;?e:?7g2<1i2wx9>>50;0xZ06c34>h;786;|q66c<72;qU9=m4=5a4>3>>7>52z\66a=:5<5sW?9o63;c784e>{t=<:1<737}Y=;k019m9:7f8yv33m3:1>vP:289>0f0=>j1v8:k:181[35027?o;49b:p11e=838pR8<>;<6`2?0f3ty>894?:3y]140<5=i=6;74}r70=?6=:rT>;3k?0=;6s|11694?76s4>m<7?8b:?1=<<2m279mh4:e:?0`<<2m278ih4:e:?044<2m278=54:e:?04:e:?00c<2m278?o4:e:?775<2m27?=n4:e:?7g3<>=27?o:465:?7g=<>=27?o4465:p0a6=839p19j>:77891b7282;70:lf;7`?xu3l80;6?u24e395=6<5=n86l=4}r6gf?6=;r7?hn495:?7`d<2k27?ho4>819~w1bd2909w0:kc;3;4>;3ll0j?6s|4bd94?5|5=n;6;;4=5ae>4>734>o?7o;;|q7`d<72:q68io5192891be2??019jj:`68yv2c:3:18v3;d8823c=:41a34>o?7?89:p0a0=838iw0:k9;3;4>;4:j0:;k522cc924=::kh1:<522cg924=::kl1:<522b2924=::j;1:<522b0924=::j91:<522b6924=::j?1:<522ca924=::kn1:<5237:924=:;>:1:<5237g924=:;?n1:<5237d924=:;?h1:<5237c924=:;?i1:<52375924=:;?<1=:h4=24:>37<5:=n6;?4=2:5>37<5:2>6;?4=2:7>37<5:286;?4=2:1>37<5:2:6;?4=2:3>37<5:=m6;?4=25g>37<5:=h6;?4=3d7>37<5;l:6;?4=3da>37<5;l36<9i;<0e3?70n279o:4n4:?1gf2wx8i;50;0g82c03;3<63=30855>;5;00==63=39855>;5;>0==63=37855>;5;<0==63=35855>;5;:0==63=33855>;5;90==63=2g855>;5?j0==63=85855>;50:0==63=83855>;5080==63=81855>;5?o0==63=7d855>;5?m0==63=7c855>;5?h0==63=67855>;5>l0==63=6e855>;5>j0==63=6c855>;5>h0==63=68855>;5>10==63=66855>;5><0==63=65855>;6m:0==63>ec855>;6mh0==63>e8855>;6m10==63>e6855>;6m?0==63>e4855>;6m=0==63>e3855>;6m80==6s|4e694?4fs4>o;7?70:?7=g<1927?5l491:?7=<<1927?55491:?7=2<1927?5;491:?7=1<1927?5>491:?7=7<1927?5<491:?7=5<1927?4k491:?7<`<1927?4i491:?7899>0f1=912019m7:0:;?82d13;346s|4ef94?5|5=o96<9i;<6f5?70n27?hh4>789~w1c7290841a349mm78>;<1ef?06349mi78>;<1eb?0634>;<78>;<635?0634>;>78>;<637?0634>;878>;<631?06349mo78>;<1e`?0634>?578>;<665?0634>?j78>;<67a?0634>><78>;<67g?0634>?n78>;<67`?0634>?47?8f:?702<1927?8l491:?725<1927?9i4>7g9>00c=>8168;=5609>037=>8168;<5609>030=>8168;:5609>033=>8168;95609>00`=>8168:;5609>02b=>8168:m5609>02d=>8168:o5609>02?=>8168:65609>021=>8168:85609>022=>8168:=5609~w1ba2909hv3;e082<5=:9j>1:<521ba924=:9jh1:<521bc924=:9j31:<521b:924=:9j=1:<521b4924=:9j?1:<521b1924=:9j81:<5221d924=::8=1:<52204924=::8?1:<52206924=::891:<52200924=::8;1:<52202924=::9o1:<5221f924=:9o31:<52213924=::9:1:<521gd924=:9oo1:<521gf924=:9oi1:<521g`924=:9ok1:<521g:924=:9o=1:<52242924=::<21:<52245924=::<<1:<52247924=::<>1:<52241924=::<81:<52243924=::=l1:<5225g924=z{:8o6=4={<11g?023499i7?89:p77e=839p1>3k87070{t:m21<733<5;n26<96;|q1`d<72;q6>n>5649>6ad=9>30q~7}::j>1:8522d5952?52z?1g0<1=279ii4>789~w7e?2909w041>3ty8n44?:2y>7g>=><16?o95649>7gg=9>30q~=m7;297~;4j>0:4=524029e6=:;kk1m95rs2d:>5<5s49mm78:;<1fa?7012wx8=950;0x96`e2??01>m7:05:?xu3810;6?u23gg920=:;j31=:74}r63=?6=:r78jk495:?0gd<6?01v9>n:18182783<>70=lb;34=>{t<9h1<733<5:in6<96;|q74f<72;q68=<5649>7f`=9>30q~:?d;296~;38:0=963::77896b028=27p};0783>7}:;oi1:8523b5952?52z?0ba<1=278o84>789~w743290>w013<=70<=f;3;4>;48m0j:63<258b2>{t;>;1<76t=3c0>d2<5:=h6<6?;<3:g?g3349;h7o:;<6`2?2034>h;7:8;<6`h57:8;|q1e6<72:q6>l=516;897?>282970u228;952?<5;3j68k4=3`3>0c52z?1e`<6?016>n95a79~w741290>w0i3<=70<<0;3;4>;48m0j863<258b0>{t;>91<77t=3c6>d2<5:=o6<6?;<3:g?g434;2n7o;;<13`?g434>h:7:n;<6`3?2f34>h47:n;<6`=?2f3ty9m84?:2y>6d3=9>301?7n:0:1?84e83l?7p}=9`83>6}::0k1=:74=3;a>0c<5;h:68k4}r0:789>6a3=i:16>i95a49>6a?=i?16>no5a59>6ae=i=16>h85a59>6ab=i=1v?<8:18684f>3k870<6b;45?844:3;3<63<248b2>;48l0j:6s|36694??|5;k=6l:4=25e>4>734;2n7o<;<3:e?g3349;i7o:;<6`2?2e34>h;7:m;<6`h57:m;|q1e3<72:q6>l8516;897?e282970u228`952?<5;3h68k4=3`1>0c57z?1f4<6?016>i95a59>6a?=i:16>no5a49>6ae=i<16>h85a49>6ab=i<1v?<7:18684f?3k870<6c;45?844;3;3<63<248b0>;48l0j86s|36794??|5;k<6l:4=2:3>4>734;2m7o<;<3:=?g3349;i7o<;<6`2?2d34>h;7:l;<6`h57:l;|q1e2<72:q6>l9516;897?d282970u228a952?<5;3o68k4=3`0>0c56z?1f7<6?016>i75a59>6fg=i:16>h:5a49>6ae=i:16>h85a29~w74>290>w0l3<=70<<4;3;4>;4:?0j:63<0g8b2>{t;><1<77t=3c;>d2<5:2:6<6?;<3:=?g434;247o;;<13b?g234>h:7:k;<6`3?2c34>h47:k;<6`=?2c3ty9m54?:2y>6d>=9>301?7k:0:1?84e;3l?7p}=9e83>6}::0n1=:74=3;f>0c<5;h?68k4}r0:2?6=0r79n>4>789>6ad=i=16>ih5a59>6a6=i=16>h:5a59>6`7=i:16>h85a79>6`4=i:1v?;48o0j86s|36594??|5;k26l:4=2:1>4>734;247o<;<3:3?g3349;j7o<;<6`2?2b34>h;7:j;<6`h57:j;|q1e<<72:q6>l7516;897?b282970u228g952?<5;3m68k4=3`6>0c59z?1f1<6?016>ih5a49>6a6=i<16>h=5a59>6`3=i<16>h65a49>6`6=i:16>h?5a59>6`4=i=1v?3;3<63<268b2>;4990j:6s|36:94??|5;kj6l:4=2:0>4>734;2;7o<;<3:2?g3349:<7o:;<6`2?2a34>h;7:i;<6`h57:i;|q1ed<72:q6>lo516;897?a282970u228d952?<5;k;68k4=3`5>0c59z?1f0<6?016>nk5a59>6fg=i?16>i?5a59>6`3=i:16>h65a59>6`2=i:16>h>5a59>6`7=i<1v?;4990j86s|36;94??|5;ki6l:4=2:7>4>734;2:7o<;<3:1?g3349:<7o<;<6`2?3734>h;7;?;<6`h57;?;|q1eg<72:q6>ll516;897g7282970u22`2952?<5;k:68k4=3`4>0c57z?1f3<6?016>nk5a29>6`5=i:16>ho5a29>6a7=i:16>h65a29>6`4=i<1v?;4980j:6s|36c94??|5;kh6l:4=2:6>4>734;297o<;<3:0?g3349:=7o:;<6`2?3634>h;7;>;<6`h57;>;|q1ef<72:q6>lm516;897g6282970u22`3952?<5;k968k4=3`;>0c57z?1f2<6?016>hl5a59>6f`=i=16>h95a59>6`g=i=16>i?5a79>6f?=i=1v?;4980j86s|36`94??|5;ko6l:4=2:5>4>734;287o<;<3:7?g3349:=7o<;<6`2?3534>h;7;=;<6`h57;=;|q1ea<72:q6>lj516;897g5282970r79n54>789>6`d=i:16>hm5a59>6f`=i:16>i?5a49>6f?=i:1v?<::18784f<3k870<<1;3;4>;4:00j?63<138b7>{t;>81<77t=3c7>d2<58o86;;4=25f>4>734;2?7o<;<126?g334>h:7:6;<6`3?2>34>h47:6;<6`=?2>3ty9m94?:3y>6d2=9>301?oi:g68yv4>;3:18v3=ag823<=::jl1m8522b`9e1=::m91m>5rs0`4>5<3s49n?7o<;<3`6?7?8278mk4n6:?0==2wx8;650;:x96c42h>01>j6:7489114282;70?m4;c7?82d>39i70:l7;1a?82d039i70:l9;1a?xu4m:0;6>u23d1952?<5:n26<6=;<1fa?`33ty8h44?:2y>7a?=9>301>jn:4g896`72c282<5=:;hl1m95238:9e1=z{=;4n90m86s|3ec94?5|5:nj6<96;<1gf?3b349m=7;j;|q0g3<721q6?k>516;896e>2h>01>mn:`7896ee2h<01>ml:`6896ec2h?01>j::`6896e?2h80q~?ma;290~;4m?0j?63>c482<5=:;k:1m;5238;9e3=z{=4n3:?2f7;4n80m86s|3e`94?5|5:ni6<96;<1gg?3b349m>7;j;|q0g5<72>q6?k?516;896e>2h901>mn:`1896ee2h901>ml:`7896ec2h>01>j::`78yv7ej3:18v3;6k?0:4=523c29e1=:;031m95rs54`>5<>s49n;7o;;<1gg?0134><;7?70:?2f7k8:05:?85ck3;3>63{t;mi1<7=t=2f`>41>349oh7;j;<1e7?3b3ty8o<4?:7y>7c4=9>301>mn:`6896ee2h?01>ml:`1896ec2h901>j::`18yv7ek3:18v3;6k>0:4=523c39e3=:;0k1m;5rs54g>5<>s49n47o;;<1g`?0134><47?70:?2f4=839p1>k7:05:?85cl3;3>63{t;mn1<7=t=2fg>41>349oi7;j;<1e0?3b3ty8o?4?:9y>7c5=9>301>mm:`6896ed2h<01>j?:`1896b62h901>j=:`1896b42h901>j::`48yv7el3:18v3;6k10:4=523c39e1=:;0k1m95rs54f>5<>s49n57o;;<1ga?0134><57?70:?2f5k6:05:?85cm3;3>63{t;mo1<7=t=2ff>41>349oj7;j;<1e1?3b3ty8o>4?:9y>7c2=9>301>mj:`1896ea2h901>j?:`6896b62h?01>j=:`6896b42h>01>j;:`78yv7em3:18v3;6k00:4=523c09e3=:;0h1m;5rs54e>5<>s49nm7o;;<1gb?0134>kn:05:?85cn3;3>63{t;ml1<7=t=2fe>41>349n<7;j;<1e2?3b3ty8no4?:6y>7c3=9>301>mi:`6896b72h?01>j>:`4896b52h?01>j<:`7896b32h90q~?mf;290~;4mk0j?63>c`82<5=:;k81m95238`9e1=z{==;6=46{<1ff?g3349n<789;<64f?7?827:mh4n3:?2ea;4n?0m86s|3d294?5|5:o;6<96;<1f5?3b349m;7;j;|q0ff<72j9:`1896b62h>01>j;:`68yv2093:15v3;4m80=:63;7b82<5=:9hn1m>521`a9e1=:2785n4n6:p7`e=839p1>kl:05:?85b93;3>63{t;l;1<7=t=2g2>41>349n>7;j;<1e7c1=9>301>j7:`6896b12h>01>j8:`18yv20:3:15v3;4m;0=:63;7e82<5=:9hi1m>521``9e1=:kk:05:?85b:3;3>63{t;l81<741>349nj7;j;|q0f`<72=q6?k6516;896b02h>01>j=:`4896b42h<0q~:99;29<~;4m=0j?63=51851>;3?<0:4=521``9e6=:k;:05:?85bn3l?7p}6}:;ll1=:74=2a6>d5<5:i<6l=4}r134?6=:r78<;4:e:?040<6?01v>>l:181857>3;3>63<13823<=z{:8j6=4={<132?701278>h4n5:p6c`=838p1>>::4g8966328=27p}<0c83>7}:;9?1=5<4=232>41>3ty9jh4?:3y>752==l16?==516;8yv57i3:1>v3<0582<7=:;8:1=:74}r0e`?6=:r78<>4:e:?047<6?01v>>6:181857;3;3>63<0g823<=z{;lh6=4={<136?3b349;=7?89:p75>=838p1>>=:0:1?857m3;<56s|31594?4|5:::6<6=;<13`?7012wx?<950;0x967c2?l:05:?xu4::0;6?u230f95=4<5:826<96;|q06g<72;q6?6;296~;49j0>i63<1c823<=z{:896=4={<12g?7?:278>54>789~w6722909w0=>b;7f?856i3;<56s|33394?4|5:;i6<6=;<113?7012wx?<:50;0x967f2?6:05:?xu4:90;6?u230c95=4<5:8=6<96;|q056<72;q6?<755d9>74>=9>30q~=>f;296~;4900:4?52337952?52z?05=<60;16??:516;8yv5?j3:1>v3<9086a>;4190:;45rs2;4>5<5s492=7?72:?0=a<6?01v>l::18185>93;<563{t;1k1<70c<5:2m6<96;|q0=3<72;q6?4>5190896?d28=27p}<8883>7}:;1l19h5239g952?52z?0v3<8d86a>;40m0:;45rs2;7>5<5s493i7?72:?0=d<6?01v>68:18185?l3?n70=7c;34=>{t;091<74>5349257?89:p7<4=838p1>6l:0:1?85>03;<56s|3`094?4|5:k368k4=2c4>41>3ty8mh4?:3y>7d>=91801>l;:05:?xu4j?0;6?u23`:952?<5:hj6l84}r1b5?6=:r78m:4:e:?0e3<6?01v>ok:18185f?3;3>63o9:0:1?85e:3;<56s|38d94?4|5:k>68k4=2c7>41>3ty8mo4?:3y>7d3=91801>l>:05:?xu41l0;6?u23`691`=:;h91=:74}r1be?6=:r78m94>839>7g6=9>30q~=n9;296~;4i:0:4?523`d952?55z?2g1<1=279819>5=g=i=16=5l5a49>5=e=i=1v70?7a;34=>{t9jo1<7:t=0aa>33<582i6<96;<3;`?g234;3i7o<;|q2gc<72;q6=no5649>5=e=9>30q~?k0;290~;6k00=963>8e823<=:91l1m8521829e6=z{8n:6=4={<3`p1a28=270?61;c6?87>:3k=7p}>d283>7}:9j<1:852182952?53z?2g0<1=27:5<4>789>5d7=i<1v70?62;34=>{t:;91<733<58k:6<96;|q135<72>?5649>62e=91:01;6i;0:;45218d9e6=z{;9i6=4={<003k>7p}=3b83>7}:::<1:8521`6952?52z?170<1=27:m84>789~w75b2909w0<<4;46?87f>3;<56s|22d94?2|5;986;;4=0c;>d5<58k<6<96;<3b=?g23ty98=4?:3y>664=><16=l6516;8yv4393:1>v3=31851>;6i00:;45rs301>5<5s489j78:;<3:b?7012wx>8o50;0x971d2??01?89:0:3?xu5>:0;6?u2296920=::?o1=5>4}r04=?6=819>5d4=i:16=lo5a49>5d5=i:1v?8=:18184?;3<>70<9d;3;4>{t:>21<7:t=3:0>4>734;2i7o;;<3be?g334;j?7o:;|q124<72;q6>5<5649>63e=91:0q~<87;297~;50;0:4=5218g9e6=:9hk1m>5rs343>5<5s483=78:;<05f?7?82wx>:850;4x97>6282;70?6e;c5?87f<3k?70?n5;c7?87f?3k>70?n6;c7?xu5=o0;6?u2292920=::?k1=5>4}r041?6==r794=4>819>55d1=i=16=l85a29~w73b2909w0<8f;46?84113;3<6s|26694?2|5;=m6<6?;<3:`?g334;2j7o:;<3b2?g13ty99i4?:3y>62c=><16>;651928yv40;3:1?v3=7d82<5=:90n1m>521`29e6=z{;?h6=4={<04`?02348=;7?70:p624=83>p1?9k:0:3?87f03k?70?n9;c7?87f83k?7p}=5c83>7}::>h1:85227795=653z?13g<60916=l75a29>5d6=i<1v?;6:181840i3<>70<94;3;4>{t:?l1<74>734;j<7o9;|q2aa<72;q6>=h5649>5c?=91:0q~?i6;296~;59>0=963=0082<5=z{;:h6=4;{<023?7?827:4l4n3:?26}::8<1=5>4=0:a>d5<582h6l;4}r3e0?6=:r79=8495:?2bc<6091v?>n:187846=3;3<63>8e8b0>;60l0j863>8b8b2>{t9o91<733<58ln6<6?;|q14<<72:q6><:5192894>c2h901<6j:`78yv7a:3:1>v3=12851>;6nm0:4=5rs32;>5<3s48:?7?70:?22wx=k?50;0x97752??010;6>u220095=6<582m6l=4=0;3>d352z?154<1=27:jo4>819~w761290?w0<>1;3;4>;6180j863>938b1>;6190j:6s|1dd94?4|5;;;6;;4=0db>4>73ty9<84?:2y>646=91:01<7>:`1894?52h>0q~?je;296~;58l0=963>f982<5=z{;:?6=4<{<03a?7?827:m<4n4:?2=770<:8;3;4>{t:=i1<733<5;?<6<6?;|q10g<72;q6>;m5649>600=91:0q~<;a;296~;5>k0=963=5482<5=z{;>26=4={<05e?02348>87?70:p61>=838p1?86:7789734282;7p}=4683>7}::?21:85224095=652z?122<1=2799<4>819~w7222909w0<95;46?843n3;3<6s|25194?4|5;4>73ty:h:4?:3y>5c?=><16=h=51928yv7b83:1>v3=00851>;6mk0:4=5rs0fe>5<5s48;<78:;<3fe?7?82wx=ik50;0x94`a2??014}r3gg?6=:r7:ji495:?2a2<6091v70?j6;3;4>{t9mk1<733<58o>6<6?;|q2`<<72;q6=ko5649>5`2=91:0q~?k8;296~;6n10=963>e382<5=z{8n=6=4={<3e3?0234;n=7?70:p64>=838p17}:9lk1:852186952?52z?2a<<1=27:584>789~w77e2909w0?j8;46?87>>3;<56s|20a94?4|58o<6;;4=0;4>41>3ty9=i4?:3y>5`0=><16=46516;8yv46m3:1>v3>e4851>;6100:;45rs33e>5<5s4;n878:;<3:e?7012wx>?>50;0x94c52??01<7m:05:?xu5:80;6?u21d3920=:90i1=:74}r0;1?6=:r7995495:?2eg<6?01v?69:181842?3<>70?nc;34=>{t:1=1<733<58ko6<96;|q1<=<72;q6>8;5649>5dc=9>30q~<79;296~;5==0=963>ag823<=z{;2j6=4={<067?0234;i<7?89:p6=d=838p1?;=:77894d628=27p}=8b83>7}::<;1:8521c0952?52z?10c<1=27:n>4>789~w7>b2909w0<;e;46?87e<3;<56s|4ba94?7>s49=47;l;<144?3d349=i7;l;<15`?3d349=j7;l;<15f?3d349=m7;l;<15g?3d349=;7;l;<152?3d349=57;l;<14a?3d3493:7;l;<1;1?3d349387;l;<1;7?3d3493>7;l;<1;5?3d3493<7;l;<14b?3d349h4n4:p764=838p1>87:778963728=27p}<5b83>1}:;?21=5>4=25f>33<5:826l:4=272>d552z?035<1=2789l4>789~w602290?w0=80;3;4>;40?0=963<298b7>;441>3ty8:>4?:5y>73c=91:01>6;:77896402h901>:n:`18yv54?3:1>v3<6e851>;4=>0:;45rs241>5<3s49=h7?70:?0<6<1=278>:4n5:?00=750;0x960a2??01>;6:05:?xu4>=0;69u237d95=6<5:2>6;;4=20;>d3<5:>h6l=4}r101?6=:r78:o495:?010<6?01v>8?:187851j3;3<63<80851>;4:?0j963<458b7>{t;:>1<733<5:??6<96;|q01c<72=q6?;o5192896>72??01><::`1896252h90q~=<6;296~;4>j0=963<57823<=z{:<:6=4;{<15g?7?82784?495:?06388:778963528=27p}<5e83>1}:;?=1=5>4=25g>33<5:8?6l=4=21f>d552z?023<1=2788k4>789~w63e290?w0=96;3;4>;4?j0=963<258b1>;4;j0j?6s|32194?4|5:<26;;4=270>41>3ty89h4?:5y>73?=91:01>9i:77896422h?01>:?:`18yv53l3:1>v3<5186a>;45<5s49><7h;;<165?7012wx?9l50;1x963f2:k:4g8962e28=27p}<4d83>6}:;n6<96;|q00<<72:q6?8755d9>71d==l16?97516;8yv53k3:1?v3<588e0>;453z?01=<2m278844:e:?002<6?01v>:n:18085203l?70=;9;3;6>;45<4s49>;7;j;<173?3b349?97?89:p71>=839p1>;8:g689620282970=;8;34=>{t;=91<7=t=275>0c<5:>>68k4=260>41>3ty88;4?:2y>700=n=16?9;51908962128=27p}<4083>6}:;;4<80>i63<3g823<=z{:>96=4<{<160?`3349?=7?72:?007<6?01v>=k:180852;3?n70=4>5349?<7?89:p76d=839p1>;=:4g8965c2=m:05:?xu4;l0;6>u23409b1=:;:n1=5<4=21f>41>3ty8?n4?:2y>71`=n=16?>l51908965d28=27p}=f483>7}::o>1:8522g4952?58z?1b1<60916>k=5a59>6cg=i<16>k85a49>6``=i:16>hk5a59>6c6=i=16>nm5a59~w7`52908w070{t:o;1<76t=3d2>4>7348m?7o<;<0ee?g3348m:7o;;<0fb?g3348ni7o9;<0e4?g4348ho7o:;|q1bg<72:q6>kl5192897e02h?01?ml:`18yv4a13:1?v3=f9851>;5n>0=963=f`823<=z{;l<6=4={<0e3?7?8279jl4n3:p0fc=838=w0:;9;7`?82293?h70:;f;7`?823m3?h70::0;7`?823k3?h70:;b;7`?823l3?h70:;8;7`?823?3?h70:;a;7`?82183?h70::d;7`?822m3?h70:93;7`?82193?h70:92;7`?821>3?h70:94;7`?821=3?h70:97;7`?822n3?h70:85;7`?820l3?h70:8c;7`?820j3?h70:8a;7`?82013?h70:88;7`?820?3?h70:86;7`?820<3?h70:83;7`?82683;<563;c787a2=:1c034>h57:j7:p045=838p19:6:778915628=27p};3e83>1}:<=31=5>4=57e>33<5:h?6l=4=511>d5:n7>52z?714<1=27??o4>789~w121290?w0::1;3;4>;3>>0=963;3:o0j?6s|40;94?4|5=>m6;;4=51:>41>3ty?894?:5y>01`=91:0198::77896d52h9019v3;4d851>;3;10:;45rs560>5<3s4>?i7?70:?721<1=278n?4n5:?76<d3<5=8o6l=4}r622?6=:r7?8n495:?773<6?01v9:>:187823k3;3<63;63851>;4j80j963;248b7>{t<8?1<733<5=9>6<96;|q705<72=q689l5192891062??01>l?:`1891442h90q~:>7;296~;396=4;{<67`?7?827?:>495:?0f4:4n3:p044=838p19:7:778915428=27p};3d83>1}:<=21=5>4=57f>33<5:km6l=4=53e>d5:=7>52z?702<1=27??=4>789~w15d290?w0:;7;3;4>;3=m0=963;39m0j?6s|40694?4|5=>j6;;4=517>41>3ty??k4?:5y>01g=91:0198?:77896d72h?019<>:`18yv25m3:1>v3;3086a>;3:l0:;45rs511>5<5s4>8=7h;;<606?7012wx8?m50;1x915e26}:<:h1j95243g95=4<5=8m6<96;|q76d<72:q68>o55d9>07e==l168?o516;8yv25l3:1?v3;3`8e0>;3:j0:4?5243f952?947>53z?77<<2m27?>l4:e:?76=<6?01v9;3:k0:;45rs505>5<4s4>847;j;<619:7?89:p07?=839p19=7:g68914?282970:=9;34=>{t<;>1<7=t=514>0c<5=8=68k4=507>41>3ty?>:4?:2y>061=n=168?851908914028=27p};2383>6}:<:<19h5243691`=:<;81=:74}r611?6=;r7??;4i4:?761<60;168?;516;8yv2583:1?v3;3486a>;3:;0>i63;21823<=z{=886=4<{<601?`334>9>7?72:?766<6?01v9?j:180824<3?n70:=0;7f?826m3;<56s|43394?5|5=9?6k:4=503>4>534>9=7?89:p04e=839p19=<:4g8917b2u24219b1=:<8o1=5<4=53e>41>3ty?=i4?:2y>066=n=1686}:4=555>33<5:326l;4}r666?6=;r7?9i4>819>025=><16?465a49~w1332908w0::e;3;4>;3?=0=963<998b7>{t<<21<7=t=540>4>734><578:;<1:e?g43ty?9;4?:2y>037=91:01998:77896?>2h90q~::7;297~;3>;0:4=5246:920=:;0k1m85rs57a>5<4s4>=:7?70:?73f<1=2785n4n5:p00?=839p198;:0:3?820i3<>70=6b;c6?xu3=h0;6>u247795=6<5==i6;;4=2;a>d5>o7>53z?722<609168:j5649>7;41m0j?6s|4bf94?42s4>2n7;l;<6:e?3d34>257;l;<6:2;7;l;<6:2?3d34>287;l;<6:7?3d34>2>7;l;<6:5?3d34>2<7;l;<6;b?3d34>3i7;l;<6;`?3d34>3o7;l;<6;f?3d34>357;l;<6;3;7;l;<6;2?3d34>397;l;<6;0?3d34>3?7;l;<6;6?3d34>3=7;l;<6;4?3d34>j=7;l;<6b4?3d34>2j7;l;<6:a?3d34>2h7;l;<6:g?3d34>297;l;<6;e?3d34>2080q~:md;296~;31h0=963;c88;a>{t33<5=i265m4}r6af?6=:r7?55495:?7g<v3;97851>;3k00356s|4c594?4|5=3?6;;4=5a:>=>i:7>52z?7=6<1=27?o4477:p0g3=838p197=:77891e>21<0q~:m4;296~;3180=963;c98:6>{t33<5=i365k4}r6a6?6=:r7?4k495:?7g=b2??019m7:9`8yv2e83:1>v3;8e851>;3k103m6s|4`d94?4|5=2h6;;4=5a;>=?ji7>52z?7{t33<5=i<64<4}r6b=?6=:r7?4;495:?7g222??019m8:9a8yv2f?3:1>v3;85851>;3k>03n6s|4`494?4|5=286;;4=5a4>=gj97>52z?7<7<1=27?o:479:p0d2=838p196>:77891e02120q~:n3;296~;3090=963;c68;3>{t33<5=i<6584}r6`0?6=:r7?m=495:?7g3<>:2wx8n=50;0x91?a2??019m9:9g8yv2d:3:1>v3;9d851>;3k?03o6s|4b394?4|5=3o6;;4=5a5>=dh<7>52z?7=f<1=27?o;47a:p0g`=838p197::77891e12130q~:m8;296~;30h0=963;c78;<>{t33<5=i=6594}r6b6?6=:r7?;h495:?7g32wx=o850;0x94?b28=270?6f;c7?xu3kh0;68u24b`952?<5=i=6484=5a4><0<5=i36484=5a:><052z?1g2789~w4d22909w0?6d;34=>;6i>0j?6s|17394?e|5;n>6l:4=3f4>d5<5;n26l;4=3fa>d5<5;nm6l=4=3g`>d5<5;ii6l=4=3g4>d5<5;o>6l:4=3g3>d3<5;no6l=4=3a`>41>3ty:::4?:4y>6ad=i<16>ih5a79>6`g=i<16>i=5a59>6ae=9>30q~?94;297~;4kl0j863;4kj0:;45rs052>5<5s48o<7o<;<0`g?`23ty:<>4?:2y>6a6=9>301?mj:`4897b42h?0q~?9f;296~;5kl0j963=db8e1>{t9?81<7:t=3af>41>348nh7o9;<0``?g1348n;7o9;|q1ag<72;q6>hl516;897cc2h>0q~7}::jh1=:74=3ag>d552z?1ga789~w4142909w041>3ty:<84?:3y>6`1=i<16>h6516;8yv77k3:1?v3j8:`7896e22h>01>m8:`68yv7203:1>v3=c`823<=::j31m85rs07b>5<5s48o=7?89:?1`62wx=8m50;1x97c22h<01?k?:`4897c128=27p}>7183>7}::l21m;522d49b0=z{8<;6=4={<0`=?g1348n>7h:;|q220<72;q6?i>516;896b12h<0q~?98;296~;4l80:;4523e59e3=z{8j<:05:?85d?3k>7p}>6b83>7}::l>1m;522ef9b0=z{8n3k=7ps|55`94?4|V<8<70;8:404?!2b;3;<>6s|55;94?4|V<8=70;8:405?!2b;3;70;8:406?!2b;3;<86s|55594?4|V<8?70;8:407?!2b;3;<96s|55494?4|V<8870;8:400?!2b;3;;96s|55794?4|V<8970;8:401?!2b;3;;46s|55194?4|V<8;70;8:403?!2b;3;;o6s|55094?4|V<;m70;8:43e?!2b;3;;h6s|55394?4|V<;n70;8:43f?!2b;3;:46s|55294?4|V<;o70;8:43g?!2b;3;9?6s|52d94?4|V<;h70;8:43`?!2b;3;9i6s|52g94?4|V<;i70;8:43a?!2b;3;8;6s|52f94?4|V<;j70;8:43b?!2b;3;?<6s|52a94?4|V<;270;8:43:?!2b;3;?56s|52`94?4|V<;370;8:43;?!2b;3;>>6s|52c94?4|V<;<70;8:434?!2b;3;>?6s|52:94?4|V<;>70;8:436?!2b;3;>86s|52594?4|V<;?70;8:437?!2b;3;>96s|52494?4|V<;870;8:430?!2b;3;>:6s|52794?4|V<;970;8:431?!2b;3;>;6s|52694?4|V<;:70;8:432?!2b;3;>46s|52194?4|V<;;70;8:433?!2b;3;>56s|52094?4|V<:m70;8:42e?!2b;3;>m6s|52394?4|V<:n70;8:42f?!2b;3;>n6s|52294?4|V<:o70;8:42g?!2b;3;>o6s|53d94?4|V<:h70;8:42`?!2b;3;>h6s|54094?4|V<8o70;8:40g?!2b;3;>i6s|54394?4|V<8h70;8:40`?!2b;3;>j6s|54294?4|V<8i70;8:40a?!2b;3;=<6s|55d94?4|V<8j70;8:40b?!2b;3;==6s|55g94?4|V<8270;8:40:?!2b;3;=>6s|55f94?4|V<8370;8:40;?!2b;3;=?6s|55a94?4|V<8:70;8:402?!2b;3;=86s|55694?4|V<;=70;8:435?!2b;3;=:6s|52;94?4|V<:i70;8:42a?!2b;3;=;6s|53g94?4|V<:j70;8:42b?!2b;3;=56s|5g394?4|V6s|59g94?4|V<70;8:446?!2b;3;:56s|59594?4|V<6s|56f94?4|V70;8:476?!2b;3;956s|58`94?4|V<==70;8:455?!2b;3;9m6s|58c94?4|V<=>70;8:456?!2b;3;9n6s|58;94?4|V<=?70;8:457?!2b;3;9o6s|58:94?4|V<=870;8:450?!2b;3;9h6s|58594?4|V<=970;8:451?!2b;3;9j6s|58494?4|V<=:70;8:452?!2b;3;8<6s|58794?4|V<6s|59094?4|V70;8:4d6?!2b;3;846s|5gd94?4|V6s|61094?4|V<6s|63394?4|V?;>70;8:736?!2b;3;>=6srnd5;>5<5sA>n86sae6;94?4|@=o?7p`j7`83>7}O0qck8b;296~N3m=1vbh9l:181M2b<2wei:j50;0xL1c33tdn;h4?:3yK0`252zJ7a1=zfl2;6=4={I6f0>{im1;1<7vF;e59~j`>32909wE:j4:ma=3=838pD9k;;|lf<3<72;qC8h:4}og;3?6=:rB?i95rnd:;>5<5sA>n86sae9;94?4|@=o?7p`j8`83>7}O0qck7b;296~N3m=1vbh6l:181M2b<2wei5j50;0xL1c33tdn4h4?:3yK0`252zJ7a1=zfl3;6=4={I6f0>{im0;1<7;3:1>vF;e59~j`?32909wE:j4:ma<3=838pD9k;;|lf=3<72;qC8h:4}og:3?6=:rB?i95rnd;;>5<5sA>n86sae8;94?4|@=o?7p`j9`83>7}O0qck6b;296~N3m=1vbh7l:181M2b<2wei4j50;0xL1c33tdn5h4?:3yK0`252zJ7a1=zflk;6=4={I6f0>{imh;1<7vF;e59~j`g32909wE:j4:mad3=838pD9k;;|lfe3<72;qC8h:4}ogb3?6=:rB?i95rndc;>5<5sA>n86sae`;94?4|@=o?7p`ja`83>7}O0qcknb;296~N3m=1vbhol:181M2b<2weilj50;0xL1c33tdnmh4?:3yK0`252zJ7a1=zflh;6=4={I6f0>{imk;1<7vF;e59~j`d32909wE:j4:mag3=838pD9k;;|lff3<72;qC8h:4}oga3?6=:rB?i95rnd`;>5<5sA>n86saec;94?4|@=o?7p`jb`83>7}O0qckmb;296~N3m=1vbhll:181M2b<2weioj50;0xL1c33tdnnh4?:3yK0`252zJ7a1=zfli;6=4={I6f0>{imj;1<7vF;e59~j`e32909wE:j4:maf3=838pD9k;;|lfg3<72;qC8h:4}og`3?6=:rB?i95rnda;>5<5sA>n86saeb;94?4|@=o?7p`jc`83>7}O0qcklb;296~N3m=1vbhml:181M2b<2weinj50;0xL1c33tdnoh4?:3yK0`252zJ7a1=zfln;6=4={I6f0>{imm;1<7vF;e59~j`b32909wE:j4:maa3=838pD9k;;|lf`3<72;qC8h:4}ogg3?6=:rB?i95rndf;>5<5sA>n86saee;94?4|@=o?7p`jd`83>7}O0qckkb;296~N3m=1vbhjl:181M2b<2weiij50;0xL1c33tdnhh4?:3yK0`251zJ7a1=zfj3<6=4>{I6f0>{ik021<7?tH5g7?xhd100;6i3:1=vF;e59~jf?e290:wE:j4:mg5<6sA>n86sac`294?7|@=o?7p`la083>4}O0qcmn2;295~N3m=1vbno<:182M2b<2weol:50;3xL1c33tdhm84?:0yK0`251zJ7a1=zfjk<6=4>{I6f0>{ikh21<7?tH5g7?xhdi00;65<6sA>n86sacc294?7|@=o?7p`lb083>4}O0qcmm2;295~N3m=1vbnl<:182M2b<2weoo:50;3xL1c33tdhn84?:0yK0`251zJ7a1=zfjh<6=4>{I6f0>{ikk21<7?tH5g7?xhdj00;65<6sA>n86sacb294?7|@=o?7p`lc083>4}O0qcml2;295~N3m=1vbnm<:182M2b<2weon:50;3xL1c33tdho84?:0yK0`251zJ7a1=zfji<6=4>{I6f0>{ikj21<7?tH5g7?xhdk00;65<6sA>n86sace294?7|@=o?7p`ld083>4}O0qcmk2;295~N3m=1vbnj<:182M2b<2weoi:50;3xL1c33tdhh84?:0yK0`251zJ7a1=zfjn<6=4>{I6f0>{ikm21<7?tH5g7?xhdl00;65<6sA>n86sacd294?7|@=o?7p`le083>4}O0qcmj2;295~N3m=1vbnk<:182M2b<2weoh:50;3xL1c33tdhi84?:0yK0`251zJ7a1=zfjo<6=4>{I6f0>{ikl21<7?tH5g7?xhdm00;65<6sA>n86sacg294?7|@=o?7p`lf083>4}O0qcmi2;295~N3m=1vbnh<:182M2b<2weok:50;3xL1c33tdhj84?:0yK0`251zJ7a1=zfjl<6=4>{I6f0>{iko21<7?tH5g7?xhdn00;65<6sA>n86sad1294?7|@=o?7p`k0083>4}O0qcj?2;295~N3m=1vbi><:182M2b<2weh=:50;3xL1c33tdo<84?:0yK0`251zJ7a1=zfm:<6=4>{I6f0>{il921<7?tH5g7?xhc800;65<6sA>n86sad0294?7|@=o?7p`k1083>4}O0qcj>2;295~N3m=1vbi?<:182M2b<2weh<:50;3xL1c33tdo=84?:0yK0`251zJ7a1=zfm;<6=4>{I6f0>{il821<7?tH5g7?xhc900;65<6sA>n86sad3294?7|@=o?7p`k2083>4}O0qcj=2;295~N3m=1vbi<<:182M2b<2weh?:50;3xL1c33tdo>84?:0yK0`251zJ7a1=zfm8<6=4>{I6f0>{il;21<7?tH5g7?xhc:00;65<6sA>n86sad2294?7|@=o?7p`k3083>4}O0qcj<2;295~N3m=1vbi=<:182M2b<2weh>:50;3xL1c33tdo?84?:0yK0`251zJ7a1=zfm9<6=4>{I6f0>{il:21<7?tH5g7?xhc;00;65<6sA>n86sad5294?7|@=o?7p`k4083>4}O0qcj;2;295~N3m=1vbi:<:182M2b<2weh9:50;3xL1c33tdo884?:0yK0`251zJ7a1=zfm><6=4>{I6f0>{il=21<7?tH5g7?xhc<00;65<6sA>n86sad4294?7|@=o?7p`k5083>4}O0qcj:2;295~N3m=1vbi;<:182M2b<2weh8:50;3xL1c33tdo984?:0yK0`2:7>51zJ7a1=zfm?<6=4>{I6f0>{il<21<7?tH5g7?xhc=00;65<6sA>n86sad7294?7|@=o?7p`k6083>4}O0qcj92;295~N3m=1vbi8<:182M2b<2weh;:50;3xL1c33tdo:84?:0yK0`251zJ7a1=zfm<<6=4>{I6f0>{il?21<7?tH5g7?xhc>00;65<6sA>n86sad6294?7|@=o?7p`k7083>4}O0qcj82;295~N3m=1vbi9<:182M2b<2weh::50;3xL1c33tdo;84?:0yK0`251zJ7a1=zfm=<6=4>{I6f0>{il>21<7?tH5g7?xhc?00;65<6sA>n86sad9294?7|@=o?7p`k8083>4}O0qcj72;295~N3m=1vbi6<:182M2b<2weh5:50;3xL1c33tdo484?:0yK0`251zJ7a1=zfm2<6=4>{I6f0>{il121<7?tH5g7?xhc000;6e290:wE:j4:m`=e=83;pD9k;;|lg5<6sA>n86sad8294?7|@=o?7p`k9083>4}O0qcj62;295~N3m=1vbi7<:182M2b<2weh4:50;3xL1c33tdo584?:0yK0`251zJ7a1=zfm3<6=4>{I6f0>{il021<7?tH5g7?xhc100;6i3:1=vF;e59~ja?e290:wE:j4:m`5<6sA>n86sad`294?7|@=o?7p`ka083>4}O0qcjn2;295~N3m=1vbio<:182M2b<2wehl:50;3xL1c33tdom84?:0yK0`251zJ7a1=zfmk<6=4>{I6f0>{ilh21<7?tH5g7?xhci00;65<6sA>n86sadc294?7|@=o?7p`kb083>4}O0qcjm2;295~N3m=1vbil<:182M2b<2weho:50;3xL1c33tdon84?:0yK0`251zJ7a1=zfmh<6=4>{I6f0>{ilk21<7?tH5g7?xhcj00;65<6sA>n86sadb294?7|@=o?7p`kc083>4}O0qcjl2;295~N3m=1vbim<:182M2b<2wehn:50;3xL1c33tdoo84?:0yK0`251zJ7a1=zfmi<6=4>{I6f0>{ilj21<7?tH5g7?xhck00;65<6sA>n86sade294?7|@=o?7p`kd083>4}O0qcjk2;295~N3m=1vbij<:182M2b<2wehi:50;3xL1c33tdoh84?:0yK0`251zJ7a1=zfmn<6=4>{I6f0>{ilm21<7?tH5g7?xhcl00;65<6sA>n86sadd294?7|@=o?7p`ke083>4}O0qcjj2;295~N3m=1vbik<:182M2b<2wehh:50;3xL1c33tdoi84?:0yK0`251zJ7a1=zfmo<6=4>{I6f0>{ill21<7?tH5g7?xhcm00;65<6sA>n86sadg294?7|@=o?7p`kf083>4}O0qcji2;295~N3m=1vbih<:182M2b<2wehk:50;3xL1c33tdoj84?:0yK0`251zJ7a1=zfml<6=4>{I6f0>{ilo21<7?tH5g7?xhcn00;65<6sA>n86sae1294?7|@=o?7p`j0083>4}O0qck?2;295~N3m=1vbh><:182M2b<2wei=:50;3xL1c33tdn<84?:0yK0`251zJ7a1=zfl:<6=4>{I6f0>{im921<7?tH5g7?xhb800;65<6sA>n86sae0294?7|@=o?7p`j1083>4}O0qck>2;295~N3m=1vbh?<:182M2b<2wei<:50;3xL1c33tdn=84?:0yK0`251zJ7a1=zfl;<6=4>{I6f0>{im821<7?tH5g7?xhb900;65<6sA>n86sae3294?7|@=o?7p`j2083>4}O0qck=2;295~N3m=1vbh<<:182M2b<2wei?:50;3xL1c33tdn>84?:0yK0`251zJ7a1=zfl8<6=4>{I6f0>{im;21<7?tH5g7?xhb:00;65<6sA>n86sae2294?7|@=o?7p`j3083>4}O0qck<2;295~N3m=1vbh=<:182M2b<2wei>:50;3xL1c33tdn?84?:0yK0`251zJ7a1=zfl9<6=4>{I6f0>{im:21<7?tH5g7?xhb;00;65<6sA>n86sae5294?7|@=o?7p`j4083>4}O0qck;2;295~N3m=1vbh:<:182M2b<2wei9:50;3xL1c33tdn884?:0yK0`251zJ7a1=zfl><6=4>{I6f0>{im=21<7?tH5g7?xhb<00;65<6sA>n86sae4294?7|@=o?7p`j5083>4}O0qck:2;295~N3m=1vbh;<:182M2b<2wei8:50;3xL1c33tdn984?:0yK0`2:7>51zJ7a1=zfl?<6=4>{I6f0>{im<21<7?tH5g7?xhb=00;65<6sA>n86sae7294?7|@=o?7p`j6083>4}O0qck92;295~N3m=1vbh8<:182M2b<2wei;:50;3xL1c33tdn:84?:0yK0`251zJ7a1=zfl<<6=4>{I6f0>{im?21<7?tH5g7?xhb>00;65<6sA>n86sae6294?7|@=o?7p`j7083>4}O0qck82;295~N3m=1vbh9<:182M2b<2wei::50;3xL1c33tdn;84?:0yK0`251zJ7a1=zfl=<6=4>{I6f0>{zutJKOv?>2985==>6l;3vLMLt0|BCT~{GHuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.sym000066400000000000000000000034521224274632000222620ustar00rootroot00000000000000VERSION 5 BEGIN SYMBOL fifo_xlnx_2Kx36_2clk SYMBOLTYPE BLOCK TIMESTAMP 2009 9 3 17 25 13 SYMPIN 0 80 Input din[35:0] SYMPIN 0 144 Input wr_en SYMPIN 0 176 Input wr_clk SYMPIN 0 240 Input rd_en SYMPIN 0 272 Input rd_clk SYMPIN 144 704 Input rst SYMPIN 576 80 Output dout[35:0] SYMPIN 576 208 Output full SYMPIN 576 368 Output wr_data_count[11:0] SYMPIN 576 432 Output empty SYMPIN 576 592 Output rd_data_count[11:0] BEGIN DISPLAY 32 32 TEXT fifo_xlnx_2Kx36_2clk FONT 40 "Arial" END DISPLAY RECTANGLE N 32 32 544 672 BEGIN LINE W 0 80 32 80 END LINE BEGIN DISPLAY 36 80 PIN din[35:0] ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 144 32 144 BEGIN DISPLAY 36 144 PIN wr_en ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 176 32 176 BEGIN DISPLAY 36 176 PIN wr_clk ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 240 32 240 BEGIN DISPLAY 36 240 PIN rd_en ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 272 32 272 BEGIN DISPLAY 36 272 PIN rd_clk ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 144 704 144 672 BEGIN DISPLAY 144 668 PIN rst ATTR PinName ALIGNMENT BCENTER FONT 24 "Arial" END DISPLAY BEGIN LINE W 576 80 544 80 END LINE BEGIN DISPLAY 540 80 PIN dout[35:0] ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY LINE N 576 208 544 208 BEGIN DISPLAY 540 208 PIN full ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY BEGIN LINE W 576 368 544 368 END LINE BEGIN DISPLAY 540 368 PIN wr_data_count[11:0] ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY LINE N 576 432 544 432 BEGIN DISPLAY 540 432 PIN empty ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY BEGIN LINE W 576 592 544 592 END LINE BEGIN DISPLAY 540 592 PIN rd_data_count[11:0] ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY END SYMBOL uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.v000066400000000000000000000125011224274632000217120ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_2Kx36_2clk.v when simulating // the core, fifo_xlnx_2Kx36_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_2Kx36_2clk( din, rd_clk, rd_en, rst, wr_clk, wr_en, dout, empty, full, rd_data_count, wr_data_count); input [35 : 0] din; input rd_clk; input rd_en; input rst; input wr_clk; input wr_en; output [35 : 0] dout; output empty; output full; output [11 : 0] rd_data_count; output [11 : 0] wr_data_count; // synthesis translate_off FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(12), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(36), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(36), .C_ENABLE_RLOCS(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(1), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(0), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(1), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(1), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(1), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("2kx18"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(2047), .C_PROG_FULL_THRESH_NEGATE_VAL(2046), .C_PROG_FULL_TYPE(0), .C_RD_DATA_COUNT_WIDTH(12), .C_RD_DEPTH(2048), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(11), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(1), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(12), .C_WR_DEPTH(2048), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(11), .C_WR_RESPONSE_LATENCY(1)) inst ( .DIN(din), .RD_CLK(rd_clk), .RD_EN(rd_en), .RST(rst), .WR_CLK(wr_clk), .WR_EN(wr_en), .DOUT(dout), .EMPTY(empty), .FULL(full), .RD_DATA_COUNT(rd_data_count), .WR_DATA_COUNT(wr_data_count), .CLK(), .INT_CLK(), .BACKUP(), .BACKUP_MARKER(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .RD_RST(), .SRST(), .WR_RST(), .ALMOST_EMPTY(), .ALMOST_FULL(), .DATA_COUNT(), .OVERFLOW(), .PROG_EMPTY(), .PROG_FULL(), .VALID(), .UNDERFLOW(), .WR_ACK(), .SBITERR(), .DBITERR()); // synthesis translate_on // XST black box declaration // box_type "black_box" // synthesis attribute box_type of fifo_xlnx_2Kx36_2clk is "black_box" endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.veo000066400000000000000000000061611224274632000222430ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_2Kx36_2clk YourInstanceName ( .din(din), // Bus [35 : 0] .rd_clk(rd_clk), .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), .wr_en(wr_en), .dout(dout), // Bus [35 : 0] .empty(empty), .full(full), .rd_data_count(rd_data_count), // Bus [11 : 0] .wr_data_count(wr_data_count)); // Bus [11 : 0] // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_2Kx36_2clk.v when simulating // the core, fifo_xlnx_2Kx36_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.vhd000066400000000000000000000134041224274632000222310ustar00rootroot00000000000000-------------------------------------------------------------------------------- -- This file is owned and controlled by Xilinx and must be used -- -- solely for design, simulation, implementation and creation of -- -- design files limited to Xilinx devices or technologies. Use -- -- with non-Xilinx devices or technologies is expressly prohibited -- -- and immediately terminates your license. -- -- -- -- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- -- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- -- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- -- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- -- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- -- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- -- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- -- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- -- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- -- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- -- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- -- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- -- FOR A PARTICULAR PURPOSE. -- -- -- -- Xilinx products are not intended for use in life support -- -- appliances, devices, or systems. Use in such applications are -- -- expressly prohibited. -- -- -- -- (c) Copyright 1995-2007 Xilinx, Inc. -- -- All rights reserved. -- -------------------------------------------------------------------------------- -- You must compile the wrapper file fifo_xlnx_2Kx36_2clk.vhd when simulating -- the core, fifo_xlnx_2Kx36_2clk. When compiling the wrapper file, be sure to -- reference the XilinxCoreLib VHDL simulation library. For detailed -- instructions, please refer to the "CORE Generator Help". -- The synthesis directives "translate_off/translate_on" specified -- below are supported by Xilinx, Mentor Graphics and Synplicity -- synthesis tools. Ensure they are correct for your synthesis tool(s). LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off Library XilinxCoreLib; -- synthesis translate_on ENTITY fifo_xlnx_2Kx36_2clk IS port ( din: IN std_logic_VECTOR(35 downto 0); rd_clk: IN std_logic; rd_en: IN std_logic; rst: IN std_logic; wr_clk: IN std_logic; wr_en: IN std_logic; dout: OUT std_logic_VECTOR(35 downto 0); empty: OUT std_logic; full: OUT std_logic; rd_data_count: OUT std_logic_VECTOR(11 downto 0); wr_data_count: OUT std_logic_VECTOR(11 downto 0)); END fifo_xlnx_2Kx36_2clk; ARCHITECTURE fifo_xlnx_2Kx36_2clk_a OF fifo_xlnx_2Kx36_2clk IS -- synthesis translate_off component wrapped_fifo_xlnx_2Kx36_2clk port ( din: IN std_logic_VECTOR(35 downto 0); rd_clk: IN std_logic; rd_en: IN std_logic; rst: IN std_logic; wr_clk: IN std_logic; wr_en: IN std_logic; dout: OUT std_logic_VECTOR(35 downto 0); empty: OUT std_logic; full: OUT std_logic; rd_data_count: OUT std_logic_VECTOR(11 downto 0); wr_data_count: OUT std_logic_VECTOR(11 downto 0)); end component; -- Configuration specification for all : wrapped_fifo_xlnx_2Kx36_2clk use entity XilinxCoreLib.fifo_generator_v4_3(behavioral) generic map( c_has_int_clk => 0, c_rd_freq => 1, c_wr_response_latency => 1, c_has_srst => 0, c_has_rd_data_count => 1, c_din_width => 36, c_has_wr_data_count => 1, c_full_flags_rst_val => 1, c_implementation_type => 2, c_family => "spartan3", c_use_embedded_reg => 0, c_has_wr_rst => 0, c_wr_freq => 1, c_use_dout_rst => 1, c_underflow_low => 0, c_has_meminit_file => 0, c_has_overflow => 0, c_preload_latency => 0, c_dout_width => 36, c_msgon_val => 1, c_rd_depth => 2048, c_default_value => "BlankString", c_mif_file_name => "BlankString", c_has_underflow => 0, c_has_rd_rst => 0, c_has_almost_full => 0, c_has_rst => 1, c_data_count_width => 12, c_has_wr_ack => 0, c_use_ecc => 0, c_wr_ack_low => 0, c_common_clock => 0, c_rd_pntr_width => 11, c_use_fwft_data_count => 1, c_has_almost_empty => 0, c_rd_data_count_width => 12, c_enable_rlocs => 0, c_wr_pntr_width => 11, c_overflow_low => 0, c_prog_empty_type => 0, c_optimization_mode => 0, c_wr_data_count_width => 12, c_preload_regs => 1, c_dout_rst_val => "0", c_has_data_count => 0, c_prog_full_thresh_negate_val => 2046, c_wr_depth => 2048, c_prog_empty_thresh_negate_val => 5, c_prog_empty_thresh_assert_val => 4, c_has_valid => 0, c_init_wr_pntr_val => 0, c_prog_full_thresh_assert_val => 2047, c_use_fifo16_flags => 0, c_has_backup => 0, c_valid_low => 0, c_prim_fifo_type => "2kx18", c_count_type => 0, c_prog_full_type => 0, c_memory_type => 1); -- synthesis translate_on BEGIN -- synthesis translate_off U0 : wrapped_fifo_xlnx_2Kx36_2clk port map ( din => din, rd_clk => rd_clk, rd_en => rd_en, rst => rst, wr_clk => wr_clk, wr_en => wr_en, dout => dout, empty => empty, full => full, rd_data_count => rd_data_count, wr_data_count => wr_data_count); -- synthesis translate_on END fifo_xlnx_2Kx36_2clk_a; uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.vho000066400000000000000000000073721224274632000222530ustar00rootroot00000000000000-------------------------------------------------------------------------------- -- This file is owned and controlled by Xilinx and must be used -- -- solely for design, simulation, implementation and creation of -- -- design files limited to Xilinx devices or technologies. Use -- -- with non-Xilinx devices or technologies is expressly prohibited -- -- and immediately terminates your license. -- -- -- -- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- -- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- -- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- -- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- -- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- -- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- -- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- -- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- -- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- -- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- -- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- -- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- -- FOR A PARTICULAR PURPOSE. -- -- -- -- Xilinx products are not intended for use in life support -- -- appliances, devices, or systems. Use in such applications are -- -- expressly prohibited. -- -- -- -- (c) Copyright 1995-2007 Xilinx, Inc. -- -- All rights reserved. -- -------------------------------------------------------------------------------- -- The following code must appear in the VHDL architecture header: ------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG component fifo_xlnx_2Kx36_2clk port ( din: IN std_logic_VECTOR(35 downto 0); rd_clk: IN std_logic; rd_en: IN std_logic; rst: IN std_logic; wr_clk: IN std_logic; wr_en: IN std_logic; dout: OUT std_logic_VECTOR(35 downto 0); empty: OUT std_logic; full: OUT std_logic; rd_data_count: OUT std_logic_VECTOR(11 downto 0); wr_data_count: OUT std_logic_VECTOR(11 downto 0)); end component; -- Synplicity black box declaration attribute syn_black_box : boolean; attribute syn_black_box of fifo_xlnx_2Kx36_2clk: component is true; -- COMP_TAG_END ------ End COMPONENT Declaration ------------ -- The following code must appear in the VHDL architecture -- body. Substitute your own instance name and net names. ------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG your_instance_name : fifo_xlnx_2Kx36_2clk port map ( din => din, rd_clk => rd_clk, rd_en => rd_en, rst => rst, wr_clk => wr_clk, wr_en => wr_en, dout => dout, empty => empty, full => full, rd_data_count => rd_data_count, wr_data_count => wr_data_count); -- INST_TAG_END ------ End INSTANTIATION Template ------------ -- You must compile the wrapper file fifo_xlnx_2Kx36_2clk.vhd when simulating -- the core, fifo_xlnx_2Kx36_2clk. When compiling the wrapper file, be sure to -- reference the XilinxCoreLib VHDL simulation library. For detailed -- instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk.xco000066400000000000000000000045561224274632000222510ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version K.39 # Date: Thu Sep 3 17:25:43 2009 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = False SET asysymbol = True SET busformat = BusFormatAngleBracketNotRipped SET createndf = False SET designentry = VHDL SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Foundation_iSE SET formalverification = False SET foundationsym = False SET implementationfiletype = Ngc SET package = fg456 SET removerpms = False SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = True SET vhdlsim = True # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=false CSET component_name=fifo_xlnx_2Kx36_2clk CSET data_count=false CSET data_count_width=12 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET fifo_implementation=Independent_Clocks_Block_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=2047 CSET full_threshold_negate_value=2046 CSET input_data_width=36 CSET input_depth=2048 CSET output_data_width=36 CSET output_depth=2048 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=No_Programmable_Full_Threshold CSET read_clock_frequency=1 CSET read_data_count=true CSET read_data_count_width=12 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=true CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=true CSET write_data_count_width=12 # END Parameters GENERATE # CRC: 2ae9f6ef uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk_fifo_generator_v4_3_xst_1.lso000066400000000000000000000000631224274632000272640ustar00rootroot00000000000000blkmemdp_v6_2 blk_mem_gen_v2_6 fifo_generator_v4_3 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt000066400000000000000000000130711224274632000311330ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk_flist.txt000066400000000000000000000005611224274632000234700ustar00rootroot00000000000000# Output products list for fifo_xlnx_2Kx36_2clk.asy fifo_xlnx_2Kx36_2clk.ngc fifo_xlnx_2Kx36_2clk.sym fifo_xlnx_2Kx36_2clk.v fifo_xlnx_2Kx36_2clk.veo fifo_xlnx_2Kx36_2clk.vhd fifo_xlnx_2Kx36_2clk.vho fifo_xlnx_2Kx36_2clk.xco fifo_xlnx_2Kx36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt fifo_xlnx_2Kx36_2clk_flist.txt fifo_xlnx_2Kx36_2clk_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk_readme.txt000066400000000000000000000037471224274632000236150ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_2Kx36_2clk' in directory /home/matt/gnuradio.git/usrp2/fpga/coregen/: fifo_xlnx_2Kx36_2clk.asy: Graphical symbol information file. Used by the ISE tools and some third party tools to create a symbol representing the core. fifo_xlnx_2Kx36_2clk.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_2Kx36_2clk.sym: Please see the core data sheet. fifo_xlnx_2Kx36_2clk.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_2Kx36_2clk.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_2Kx36_2clk.vhd: VHDL wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_2Kx36_2clk.vho: VHO template file containing code that can be used as a model for instantiating a CORE Generator module in a VHDL design. fifo_xlnx_2Kx36_2clk.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_2Kx36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: Please see the core data sheet. fifo_xlnx_2Kx36_2clk_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. fifo_xlnx_2Kx36_2clk_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_2Kx36_2clk_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_2Kx36_2clk_xmdf.tcl000066400000000000000000000064101224274632000232470ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_2Kx36_2clk_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_2Kx36_2clk_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_2Kx36_2clk_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_2Kx36_2clk } # ::fifo_xlnx_2Kx36_2clk_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_2Kx36_2clk_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.asy utilities_xmdf::xmdfSetData $instance FileSet $fcount type asy incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.sym utilities_xmdf::xmdfSetData $instance FileSet $fcount type symbol incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.vhd utilities_xmdf::xmdfSetData $instance FileSet $fcount type vhdl incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.vho utilities_xmdf::xmdfSetData $instance FileSet $fcount type vhdl_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_2Kx36_2clk_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_2Kx36_2clk incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.gise000066400000000000000000000022471224274632000223520ustar00rootroot00000000000000 11.1 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ncf000066400000000000000000000000001224274632000221520ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.ngc000066400000000000000000002634641224274632000222040ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e $56140<,[o}e~g`n;"2*726&;$9,)<>;.vnt*Ydo&lbjbQwloz\77~4>V8h`f agn3847=7081:?6?!039244=5<288?>?=;249MKVR\3nbb1=::1<20>512F__\XZ5dnww863=87n0?~6D@_UU8svjaXmdzuRzgrdqk81<76;?097GAPTV9twi`Wlg{xtQ{hsgplZgt{lx094?>3781?OIX\^1|ah_dosp|Ys`{oxdR`jg`vf81<768n097GAPTV9twi`Wog`Rzgrdqk81<76;>097GAPTV9twi`Wog`Rzgrdqk[dutm{~787>12596>LHW]]0{~biPftno[qnumzbTbhintd>7>58602?1CXZ_UU8geqgXkfex1:50?3a?011c96>JSSX\^1{Qkauc\gjsi|5>1<3?46595=<053?K?7;ONA394B1=?:=;?75:=159;A=G630805=:491230>?780805;<4A108E44<4A7;8EV_IKVXNK>5MU3:8FPUXAGLD=6M=;BG26>EOMJAT@DMJNRG\P\VB:2IB?6MCR89@KHKN\]OO=95LOSG\C@HBZH^BCCQFNGM4?FTBI]OO=6J=;EK0?AVH=2N[^L>:;ERQE4385KPSC06>C3<2OHM=<4F308BA5O53@:97D?=;H01?L5>3@DBX^ZNTD18MKP53EC97AA9;MMB@@B03EELENOC4:NVP70JR\:UG86BZT548HPR3WE?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<<=3:L276=I9=>0B<:>3:L216=I9?90B<9<;O3;7>H61:1E>==4N330?K45;2D9?>5A2518J7343G8=?6@=729M6=5=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M015>5A9218J<243G3>?6@6629M=25VFZ]k0\D@PBTQJ@]d2YDY_MJ3:QSK1=SQYO8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4567W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;=R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?03]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3455XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:;S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?1^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2347YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7899T^h}zlu315>S7'nxm"h gbz-gim'{nT|cz}_ckm858592_;#j|i.sd,cf~)keas#jPpovq[goi4849=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0?0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<2<15>S7'nxm"h gbz-gim'{nT|cz}_ckm818582_;#j|i.sd,cf~)keas#jPpovq[goiW98;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT=?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ=219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^114>S7'nxm"h gbz-gim'{nT|cz}_ckm[1413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;?3^QT476<]9%l~k }f.e`|+ekcq%yhR~ats]dg969:91^<"i}f/pe+be&jf`t"|k_qlwvZad4849<6[?/fpe*w`(ojr%oaew/sf\tkruWni7>3328Q5)`zo$yj"ilx/aoo})ulVzexQhc=6=5c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[57a3\:$kh!rg-dg}(ddbr$~iQnup\cfY69o1^<"i}f/pe+be&jf`t"|k_qlwvZadW;;m7X> gsd-vc)`kq$h`fv re]sjqtXojU8=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS9<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=4996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^61=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0=0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6484956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2878512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><2<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:090=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W9837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\57><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh gsd-vc)`kq$h`fv ws]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?7;463\:$kh!rg-dg}(ddbr${Qnup\flh;<78;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4U1-dvc(un&mht#mcky-tvZvi|{UiecQ>219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^014>S7'nxm"h gbz-gim'~xT|cz}_ckm[6473\:$kh!rg-dg}(ddbr${Qnup\flhX<;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0104?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789::>;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123571<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?2005?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt78999m6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0120[VQ7:91^<"i}f/pe+be&jf`t"y}_qlwvZad4949<6[?/fpe*w`(ojr%oaew/vp\tkruWni7=3328Q5)`zo$yj"ilx/aoo})pzVzexQhc=1=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8186n2_;#j|i.sd,cf~)keas#z|Ppovq[beX88l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV;:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT>f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP4348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;878=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<0<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo585>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>0:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm783<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[5423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS<<:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[7423\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olS><:;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[14>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?30?0:?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;7=3<6;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7;:7827X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3?7;4>3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?34?0;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;TS7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S><7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X<;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?0378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv5679;?0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVrd~=>?2378Q5)`zo$yj"ilx/aoo})pzVzexQhc^zlv567;::0Y=!hrg,qb*ak8'xo#j|>.sdtbq)Je|rT^LCPRE]FJZ@PN]8:??5Z0.eqb+ta'nf;"j gs3-vcqa|&GfyuQ]AL]Q@ZCIWO]MX??P13d8Q5)`zo$yj"ic0/pg+bt6&{l|jy!Bmtz\VDKXZLMDYYQJN031`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<1<1`>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj<0<1g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_10`?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykP1278Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQbuy2344:76:<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Yj}q:;<<2?>016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;979=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?31?31<>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~Tjo<8;T2,cw`)zo%l`= }d.eq5+tao~$i`~{y^dtbqYn:o1^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_h]nq}67899;7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j[hs89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXa::0Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;?>5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=>>1410?P6(o{l%~k!hl1,q`*auiz$yy} r`o\ahvsqVliSdQ`r1234431;:1^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789::95=<;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?00:077=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34565>:80Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;:?==;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?07117>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw064<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?32[LHQW98h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq84869;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?6;76:m1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:476:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQwos>0:445k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=6=547f3\:$kh!rg-dh5(ul&x{by| N032b>S7'nxm"h gm2-va)uxg~y#naznu>3:4`<]9%l~k }f.eo4+tc'{zex!lotlw8486n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:568l0Y=!hrg,qb*ak8'xo#~ats-`kphs4:4:j6[?/fpe*w`(oe:%~i!}povq+firf}6?2e:W3+bta&{l$ka>!re-qtkru'je~byQ=1d9V4*aun'xm#jb?.sf,vuhsz&idyczP30g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_501?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28585:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95;5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2=>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?7;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64=49=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R>=1:W3+bta&{l$ka>!re-qtkru'je~byQk1^315>S7'nxm"h gm2-va)uxg~y#naznu]g5Z4592_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9V99=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R:=4:W3+bta&{l$ka>!re-qtkru'je~byQaou23445a3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]`}969;o1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[f;979m7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Ydq585?k5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567Wjs7?3=i;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Uhu1:1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sa{{<0<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pltv?6;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]oqq:46=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5>58=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We080;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Ttb|34?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qwos>6:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW=8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV?8;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>7:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;080=a:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/qplcZ`rdeUb??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVg~t=>?3218Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy234674:2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[kis89::>;5Z0.eqb+ta'nf;"z| gvcp*rus{&i9#iazt^k1270<]9%l~k }f.eo4+qu'n}j#y|tr-`6*bh}}Ub:?<9;T2,cw`)zo%l`= xr.etev(p{}y$o?!kotv\m2>582_;#j|i.sd,ci6){%l{l}!wrvp+fijx;8h7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXa:>0Y=!hrg,qb*ak8'}y#jyns/uppv)uidUj``a|t^dvhiYnWds<=>?369V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`RgPmtz345668>9=7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?03402>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}6789<?319V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYnWds<=>?1171b>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVcTaxv?012137`<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTeRczx1234355n2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`RgPmtz3456018n0Y=!hrg,qb*ak8'}y#ob_vp\akYn98l0Y=!hrg,qb*ak8'}y#ob_vp\akYn9V;9?6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at368Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr6:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by<=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp6433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d8><4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;87;:SD@Y_10`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey0<0>13a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7>3?>2e9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6822b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{682<<=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz5>5=f:W3+bta&{l$ka>!ws-ttkru'je~by2=>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<2<2b>S7'nxm"h gm2-sw)pxg~y#naznu>7:4c<]9%l~k }f.eo4+qu'~zex!lotlw[57b3\:$kh!rg-dh5(pz&}{by| cnwmpZ76m2_;#j|i.sd,ci6){%||cz}/bmvjqY59l1^<"i}f/pe+bj7&~x${}`{r.alqkrX;8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW=897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<15>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^115>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z25:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1:1209V4*aun'xm#jb?.vp,suhsz&idyczPd3]364=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd3]767=R8&myj#|i/fn3*rt(yd~"m`uov\`6:76;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm97=3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<3<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6?2??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P0338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\577<]9%l~k }f.eo4+qu'~zex!lotlw[a5X:;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T???4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P4368Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_omw45669>1^<"i}f/pe+hcj'me~xRg30?3;?P6(o{l%~k!bel-gkprXa5;;2<64U1-dvc(un&gna"j`uu]j8479911^<"i}f/pe+hcj'me~xRg313<2<>S7'nxm"h mdo,`jssW`6:?3?7;T2,cw`)zo%fi`!kotv\m9736820Y=!hrg,qb*kbe&ndyyQf<07=5==R8&myj#|i/lgn+air|Vc7=;0>8:W3+bta&{l$ahc dnww[l:6?7;37X> gsd-vc)jmd%ocxzPi=3;:4><]9%l~k }f.ofi*bh}}Ub0<71169V4*aun'xm#`kb/emvpZo;97;37X> gsd-vc)jmd%ocxzPi=03:4><]9%l~k }f.ofi*bh}}Ub0??1199V4*aun'xm#`kb/emvpZo;:;4:46[?/fpe*w`(elg$hb{{_h>17;7?3\:$kh!rg-nah)cg|~Te1<;>0:8Q5)`zo$yj"cjm.flqqYn4;?5=55Z0.eqb+ta'dof#iazt^k?638602_;#j|i.sd,i`k(lfSd2=7?3;?P6(o{l%~k!bel-gkprXa5832<64U1-dvc(un&gna"j`uu]j87?99>1^<"i}f/pe+hcj'me~xRg32?3;?P6(o{l%~k!bel-gkprXa59;2<64U1-dvc(un&gna"j`uu]j8679911^<"i}f/pe+hcj'me~xRg333<2<>S7'nxm"h mdo,`jssW`68?3?7;T2,cw`)zo%fi`!kotv\m9536820Y=!hrg,qb*kbe&ndyyQf<27=52=R8&myj#|i/lgn+air|Vc7?3?8;T2,cw`)zo%fi`!kotv\m9299>1^<"i}f/pe+hcj'me~xRg35?34?P6(o{l%~k!bel-gkprXa5<5=:5Z0.eqb+ta'dof#iazt^k?3;703\:$kh!rg-nah)cg|~Te161169V4*aun'xm#`kb/emvpZo;17;=7X> gsd-vc)jmd%ocxzPi^222>S7'nxm"h mdo,`jssW`U:=:5Z0.eqb+ta'dof#iazt^k\55703\:$kh!rg-nah)cg|~TeR?>169V4*aun'xm#`kb/emvpZoX9;;<7X> gsd-vc)jmd%ocxzPi^3052=R8&myj#|i/lgn+air|VcT=9?8;T2,cw`)zo%fi`!kotv\mZ729>1^<"i}f/pe+hcj'me~xRgP1734?P6(o{l%~k!bel-gkprXaV;<=:5Z0.eqb+ta'dof#iazt^k\5=703\:$kh!rg-nah)cg|~TeR?6179V4*aun'xm#`kb/emvpZoX:8=0Y=!hrg,qb*kbe&ndyyQf_3223>S7'nxm"h mdo,`jssW`U9=<94U1-dvc(un&gna"j`uu]j[746?2_;#j|i.sd,i`k(lfSdQ=3058Q5)`zo$yj"cjm.flqqYnW;>:;6[?/fpe*w`(elg$hb{{_h]1141<]9%l~k }f.ofi*bh}}UbS?8>7:W3+bta&{l$ahc dnww[lY5?8=0Y=!hrg,qb*kbe&ndyyQf_3:23>S7'nxm"h mdo,`jssW`U95<84U1-dvc(un&gna"j`uu]j[6703\:$kh!rg-nah)cg|~TeR=?169V4*aun'xm#`kb/emvpZoX;8;<7X> gsd-vc)jmd%ocxzPi^1152=R8&myj#|i/lgn+air|VcT?>?8;T2,cw`)zo%fi`!kotv\mZ539>1^<"i}f/pe+hcj'me~xRgP3435?P6(o{l%~k!bel-gkprXaV>::6[?/fpe*w`(elg$hb{{_h]653=R8&myj#|i/lgn+air|VcT:<84U1-dvc(un&gna"j`uu]j[2713\:$kh!rg-nah)cg|~TeR6>6:W3+bta&{l$ahc dnww[lY>9j1^<"i}f/pe+hcj'me~xRgPnnv34576m2_;#j|i.sd,i`k(omg%h`!Br`o\VDK69o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ99;m7X> gsd-vc)jmd%lh` km.OqehYUID;:=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=??i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?<1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB153e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL365c=R8&myj#|i/lgn+bbj&mg$Aob_SCN537a3\:$kh!rg-nah)`ld$oa"C}al]QEH709o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ91;m7X> gsd-vc)jmd%lh` km.OqehYUID;2=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF>>f:W3+bta&{l$ahc geo-`h)JzhgT^LC=10d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM302b>S7'nxm"h mdo,cak)ld%F~lcPR@O174`<]9%l~k }f.ofi*ace'nf#@|nm^PBI726n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK5=8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE;<:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG9;f:W3+bta&{l$ahc geo-`h)JzhgT^LC=90g8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM23e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL135c=R8&myj#|i/lgn+bbj&mg$Aob_SCN747a3\:$kh!rg-nah)`ld$oa"C}al]QEH559o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ;:;m7X> gsd-vc)jmd%lh` km.OqehYUID9?=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF?8?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@=91g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB363e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL1;5c=R8&myj#|i/lgn+bbj&mg$Aob_SCN7<7b3\:$kh!rg-nah)`ld$oa"C}al]QEH26n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK388l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=;:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG?>f:W3+bta&{l$ahc geo-`h)JzhgT^LC;40d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM572b>S7'nxm"h mdo,cak)ld%F~lcPR@O724`<]9%l~k }f.ofi*ace'nf#@|nm^PBI116n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK308l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=3:i6[?/fpe*w`(elg$kic!dl-NvdkXZHG>=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF9=?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@;>1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB533e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL705c=R8&myj#|i/lgn+bbj&mg$Aob_SCN117a3\:$kh!rg-nah)`ld$oa"C}al]QEH329o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ=?;m7X> gsd-vc)jmd%lh` km.OqehYUID?<=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF95?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@;61d9V4*aun'xm#`kb/ffn*ak(E{kfS_OB60d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM722b>S7'nxm"h mdo,cak)ld%F~lcPR@O554`<]9%l~k }f.ofi*ace'nf#@|nm^PBI346n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK1;8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE?>:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG=9f:W3+bta&{l$ahc geo-`h)JzhgT^LC970d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM7:2b>S7'nxm"h mdo,cak)ld%F~lcPR@O5=4c<]9%l~k }f.ofi*ace'nf#@|nm^PBI27a3\:$kh!rg-nah)`ld$oa"C}al]QEH179o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ?8;m7X> gsd-vc)jmd%lh` km.OqehYUID=9=h5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF4 gsd-vc)jmd%lh` km.L2467>3\:$kh!rg-nah)`ld$oa"@>043:?P6(o{l%~k!bel-d`h(ce&D:<:?6;T2,cw`)zo%fi`!hdl,gi*H680;37X> gsd-vc)jmd%lh` km.L254?<]9%l~k }f.ofi*ace'nf#C?>10;8Q5)`zo$yj"cjm.egi+bj'G;:?<74U1-dvc(un&gna"ikm/fn+K76=830Y=!hrg,qb*kbe&moa#jb/O3234?<]9%l~k }f.ofi*ace'nf#C?>90;8Q5)`zo$yj"cjm.egi+bj'G;9=<74U1-dvc(un&gna"ikm/fn+K75;830Y=!hrg,qb*kbe&moa#jb/O3114?<]9%l~k }f.ofi*ace'nf#C?=70;8Q5)`zo$yj"cjm.egi+bj'G;95<64U1-dvc(un&gna"ikm/fn+K74901^<"i}f/pe+hcj'nnf"ic N0125<=R8&myj#|i/lgn+bbj&mg$B<=<189V4*aun'xm#`kb/ffn*ak(F89>=45Z0.eqb+ta'dof#jjb.eo,J450901^<"i}f/pe+hcj'nnf"ic N01:5<=R8&myj#|i/lgn+bbj&mg$B<:>189V4*aun'xm#`kb/ffn*ak(F8>8=45Z0.eqb+ta'dof#jjb.eo,J422901^<"i}f/pe+hcj'nnf"ic N0645==R8&myj#|i/lgn+bbj&mg$B<;>8:W3+bta&{l$ahc geo-`h)I9>;37X> gsd-vc)jmd%lh` km.L2=4><]9%l~k }f.ofi*ace'nf#C<>199V4*aun'xm#`kb/ffn*ak(F;9:46[?/fpe*w`(elg$kic!dl-M607?3\:$kh!rg-nah)`ld$oa"@=70:8Q5)`zo$yj"cjm.egi+bj'G82=55Z0.eqb+ta'dof#jjb.eo,J67602_;#j|i.sd,i`k(omg%h`!A323;?P6(o{l%~k!bel-d`h(ce&D89<64U1-dvc(un&gna"ikm/fn+K50911^<"i}f/pe+hcj'nnf"ic N2;2<>S7'nxm"h mdo,cak)ld%E88:W3+bta&{l$ahc geo-`h)I<0;<7X> gsd-vc)jmd%lh` km.L65==R8&myj#|i/lgn+bbj&mg$B8?>8:W3+bta&{l$ahc geo-`h)I=:;37X> gsd-vc)jmd%lh` km.L614><]9%l~k }f.ofi*ace'nf#C;8199V4*aun'xm#`kb/ffn*ak(F<3:46[?/fpe*w`(elg$kic!dl-M247?3\:$kh!rg-nah)`ld$oa"@930:8Q5)`zo$yj"cjm.egi+bj'G<>=55Z0.eqb+ta'dof#jjb.eo,J31602_;#j|i.sd,i`k(omg%h`!A6834?P6(o{l%~k!bel-d`h(ce&D<=55Z0.eqb+ta'dof#jjb.eo,J27602_;#j|i.sd,i`k(omg%h`!A723;?P6(o{l%~k!bel-d`h(ce&D<9<64U1-dvc(un&gna"ikm/fn+K10911^<"i}f/pe+hcj'nnf"ic N6;2<>S7'nxm"h mdo,cak)ld%E48:W3+bta&{l$ahc geo-`h)I00;<7X> gsd-vc)jmd%lh` km.L:5==R8&myj#|i/lgn+bbj&mg$B4?>8:W3+bta&{l$ahc geo-`h)I1:;37X> gsd-vc)jmd%lh` km.L:14><]9%l~k }f.ofi*ace'nf#C78199V4*aun'xm#`kb/ffn*ak(F03996[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<1<12>S7'nxm"h mdo,cak)ld%Tzl|fneg{456748:5>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=32:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896:>3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?5685>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0<:1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349726;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2>6?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;9>49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<0:=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|56785;22?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>2:70<]9%l~k }f.ofi*ace'nf#Rxnrhlga}678969<3<9;T2,cw`)zo%fi`!hdl,gi*Yqi{cehhv?012?6485>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0?<1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349446;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2=4?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;:<49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<34=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567858<2?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>1<;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7>40=5:W3+bta&{l$ahc geo-`h)X~hxbbikw01238785>2_;#j|i.sd,i`k(omg%h`!Pv`pjjac89:;0>>1279V4*aun'xm#`kb/ffn*ak(Wkyecjjx12349566;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2<2?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;;:49:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<26=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567859>2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>0:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896?2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>6:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}67896=2?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>4:73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}6789632?;4U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>::4c<]9%l~k }f.ofi*ace'nf#iazt^k?4;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84699o1^<"i}f/pe+hcj'nnf"ic dnww[l:697;m7X> gsd-vc)jmd%lh` km.flqqYn4885=k5Z0.eqb+ta'dof#jjb.eo,`jssW`6:?3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0<:11g9V4*aun'xm#`kb/ffn*ak(lfSd2>5?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<04=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>23;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84>99o1^<"i}f/pe+hcj'nnf"ic dnww[l:617;n7X> gsd-vc)jmd%lh` km.flqqYn484:j6[?/fpe*w`(elg$kic!dl-gkprXa58;2<0>f:W3+bta&{l$ahc geo-`h)cg|~Te1<=>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg322<2b>S7'nxm"h mdo,cak)ld%ocxzPi=07:4`<]9%l~k }f.ofi*ace'nf#iazt^k?6086n2_;#j|i.sd,i`k(omg%h`!kotv\m94168l0Y=!hrg,qb*kbe&moa#jb/emvpZo;:>4:j6[?/fpe*w`(elg$kic!dl-gkprXa583240>e:W3+bta&{l$ahc geo-`h)cg|~Te1<11g9V4*aun'xm#`kb/ffn*ak(lfSd2<0?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<23=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>06;7a3\:$kh!rg-nah)`ld$oa"j`uu]j86599o1^<"i}f/pe+hcj'nnf"ic dnww[l:4<7;m7X> gsd-vc)jmd%lh` km.flqqYn4:?5=h5Z0.eqb+ta'dof#jjb.eo,`jssW`682e:W3+bta&{l$ahc geo-`h)cg|~Te1811d9V4*aun'xm#`kb/ffn*ak(lfSd28>0g8Q5)`zo$yj"cjm.egi+bj'me~xRg38?3f?P6(o{l%~k!bel-d`h(ce&ndyyQf<8<2`>S7'nxm"h mdo,cak)ld%ocxzPi^22`>S7'nxm"h mdo,cak)ld%ocxzPi^32a>S7'nxm"h mdo,cak)ld%ocxzPi^335`=R8&myj#|i/lgn+bbj&mg$hb{{_h]254c<]9%l~k }f.ofi*ace'nf#iazt^k\577b3\:$kh!rg-nah)`ld$oa"j`uu]j[456m2_;#j|i.sd,i`k(omg%h`!kotv\mZ739l1^<"i}f/pe+hcj'nnf"ic dnww[lY6=8o0Y=!hrg,qb*kbe&moa#jb/emvpZoX9?;n7X> gsd-vc)jmd%lh` km.flqqYnW8=:i6[?/fpe*w`(elg$kic!dl-gkprXaV;3=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U:5=?j;T2,cw`)zo%fi`!hdl,gi*bh}}UbS??>e:W3+bta&{l$ahc geo-`h)cg|~TeR<=1d9V4*aun'xm#`kb/ffn*ak(lfSdQ=30g8Q5)`zo$yj"cjm.egi+bj'me~xRgP253f?P6(o{l%~k!bel-d`h(ce&ndyyQf_372a>S7'nxm"h mdo,cak)ld%ocxzPi^055`=R8&myj#|i/lgn+bbj&mg$hb{{_h]134c<]9%l~k }f.ofi*ace'nf#iazt^k\6=7b3\:$kh!rg-nah)`ld$oa"j`uu]j[7?6l2_;#j|i.sd,i`k(omg%h`!kotv\mZ56m2_;#j|i.sd,i`k(omg%h`!kotv\mZ579l1^<"i}f/pe+hcj'nnf"ic dnww[lY498o0Y=!hrg,qb*kbe&moa#jb/emvpZoX;;;n7X> gsd-vc)jmd%lh` km.flqqYnW:9:i6[?/fpe*w`(elg$kic!dl-gkprXaV9?=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U8910312>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^698;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W133260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9:;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W153260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9<;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W173260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9>;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W193260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_90;:>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W213260=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_:8;:>;5Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W2032573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;8:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX312573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;>:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX372573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;<:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX352573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;2:=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX3;2573<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:::=?;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX232570<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:;:=<<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY1154423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q98=<<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY1754423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q9>=<<;;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY62572<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP<;:>95Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W60310>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^0988?7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU6>1368Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\<769o1^<"i}f/pe+hcj'nnf"ic wskwaZesze8;7X> gsd-vc)jmd%lh` km.uqmqcXk}xg=4U1-dvc(un&xxxobd/sf\vvrXizxnkRj>219V4*aun'xm#}{bmi,vaYu{}Ujkh_e02g>S7'nxm"h rrvahn)ulVxxxRm`mc3g?P6(o{l%~k!}su`oo*tcW{ySnabb03f?P6(o{l%~k!}su`oo*tcW{ySkh<1<2a>S7'nxm"h rrvahn)ulVxxxR|jg=3=5`=R8&myj#|i/sqwfim(zmUyyQ}ef>1:4b<]9%l~k }f.pppgjl'{nT~~zPrde\44b<]9%l~k }f.pppgjl'{nT~~zPrde\54b<]9%l~k }f.pppgjl'{nT~~zPrde\641<]9%l~k }f.pppgjl'{ySi?>7:W3+bta&{l$~~zmlj-qwqYc:8=0Y=!hrg,qb*tt|kf`#}{_e12`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF0>QDDB80[H?k;YKOMK^*PMH+<#?/SUWA$5(6(HYHED;4XNP@]3=_[]FBN:5WSU]DJA1^c`VZye`Xjrrklj465lljf8`drfWje~by&?)e9geqgXkfex%?&d:fbpdYdg|d$?'k;ecweZeh}g~#?$j4d`vb[firf}"?%k5kauc\gjsi|5>1<394dckwawt13mce$='9;ekm,4/03mce$<>&7:fjj-76!>1oec&>2(58`lh/9:#<7iga(06*3>bnf!;>%:5kio*22,1.?2nbb%?6)79gmk.5!>1oec&=0(58`lh/:8#<7iga(30*3>bnf!88%:5kio*10,18'8;ekm,70.?2nbb%<8)69gmk.50 =0hd`'28+5?aoi :#<7iga(22*3>bnf!9:%:5kio*06,1'8;ekm,62.?2nbb%=:)79gmk.3!?1oec&:)79gmk.1!?1oec&8)79gmk.?!?1oec&6)79gmk:76>1oec2>0?58`lh;984<7iga<00=3>bnf5;82:5kio>20;169gmk:607=0hd`318<5?aoi484<7iga<32=3>bnf58:2:5kio>16;1>08;ekm8729?2nbb1<:>69gmk:5>7=0hd`326<4?aoi4;25;6jfn=0::3=cag692:5kio>04;169gmk:4<730hd`33483:2=cag689384dhl?7;00(:8`jss 8;"46j`uu*26,>bh}}"::$64dnww,41.02ndyy&>8(:8`jss 83";6j`uu*1-==cg|~#>='7;emvp-46!11ocxz'23+;?air|!88%55kotv+61/?3me~x%<:)99gkpr/:?#37iazt)04-==cg|~#>5'7;emvp-4>!>1ocxz'3(:8`jss ::"46j`uu*05,><&8:flqq.4; 20hb{{(26*<>bh}}"89$94dnww,1/03me~x%;&7:flqq.1!>1ocxz'7(58`jss 1#<7iazt);*3>bh}}6;255kotv?558?3me~x1?>>99gkpr;9;437iazt=30:==cg|~7=907;emvp972611ocxz317<;?air|5;<255kotv?5=8?3me~x1?6>69gkpr;9720hb{{<32=<>bh}}69=364dnww874902ndyy2=3?:8`jss4;>546j`uu>11;>bh}}695394dnww878?3me~x1=?>99gkpr;;8437iazt=11:==cg|~7?>07;emvp9536h1ocxz33483:==cg|~7?808;emvp959?2ndyy2;>69gkpr;=7=0hb{{<7<4?air|5=5;6j`uu>;:2=cg|~75364eeke6kac=2of|yw=f:djbjY`mgoymya}_w4\5)&_aecet-M@RD"Dakcui}ey,<kn;gkekZ~kfqU8>u=9_3aoo)`nnfUlick}aumq[s0X9%qhSeo|_hlw[fjl59&hSeo|_rppp86+kVxoSk|jq<3/gZciikfnS}{_r{mg87+kVbjR|k_ecweZeh}g~64)eX`hyTc{k}fmmt95*dWyxn`bok_mcwake~59&hSiazt^uj`qn:;?&hS`}hoo]uei;6$jUyhRjjpuj>77*dWlxycQfnkg`pliiW}s{i0>#c^jbwZsillxm`by20-a\lduXiegdyQiumn>5)eX`hyT~~z21-a\`drfWje~byQxievk90*dWakxSz|Pabi>4)eX}zoTinm20-a\gjkjggUh`bmd=1.`[rtXijaT`by20-a\vaYwf}xT{dj{h<7/gZstmVl|jyQkauc\gjsi|4:'oRfns^coijusWlg{xt3?,b]q`Zbf|hUhcx`{_vkgpm;2$jUdzh|ilnu\hjq:8%iT{Qnup\slbs`4?'oR~}of]fiur~W}s{i0>#c^uq[agsiVidyczPwhfwl83+kVzyiaand^pfcv;6$jUocxzPrrv\rdj:8%iTdl}Pd`vb[firf}7; nQrne\bpjkW}byi~fPndebp`Yqie79?!mPws]gauro5:8'oR~}of]fiur~W}byi~fPndebp`Yqie7> nQrne\ahvsqV~c~h}g_`qpawrX~hf68!mPh`q\rdjnl4:'oR~}of]eqijX|axneQnsrgqpZpfd48? nabpnlfjqYiido6jdh`_ynm|Z55p:nbd,b]ueiocWee|1="l_qpjiZ`nnfUu}k2500{73*dWyxdkRhzlm]w}uc:9%iTahc`rx]w}uc::%w9i6hffn]{hk~X;;r8:R0|ah_dosp|Ys`{oxd%>&159svjaXmdzuRzgrdqk,4/6<2zycjQjmqvz[qnumzb#>$?;;qplcZcjx}sTxe|jsi*0-42"=;5rne\ahvsqV~c~h}g<583:4dvugnUna}zv_ujqavnXizyn~y&>)0`8twi`Wlg{xtQ{hsgplZgt{lx$?'>b:rqkbYbey~rSyf}erj\evubz}"8%vugnUna}zv_ujqavnXflmjxh&;)0f8twi`Wlg{xtQ{hsgplZhboh~n094?>89svjaXn|fg=>5rne\bpjkW}byi~f'0(30?uthoVl~`aQ{hsgpl-7.9:1{~biPftno[qnumzb#>$?<;qplcZ`rdeUdk|h)1*56=wzfmTjxbc_ujqavn/< ;>7}|`g^dvhiYs`{oxd1:50?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2g>vugnUmyabPtipfwmYf{zoyx1:50?3b?uthoVl~`aQ{hsgplZhboh~n$='>a:rqkbYa}efTxe|jsi]mabgsm!;"=l5rne\bpjkW}byi~fPndebp`.5!8k0|ah_gwohZrozlycSckhaug+7,7f3yxdkRhzlm]wlwct`Vdnklzj(5+2g>vugnUmyabPtipfwmYimnki1:50?48vaYddb;;7jPd`vb[firf}";%<>4re]geqgXkfex%?&119q`Zbf|hUhcx`{(3+24>tcWmkmRm`uov+7,773{nThlzn_bmvjq.3!8:0~iQkauc\gjsi|5:5=?5}d^fbpdYdg|d094?>49q`Zci>2xoS}{3:ppp2=tj`~n~:4ssqw0>ru}l30ycjjrgnls0=qieco:6y}_`ah2>quWjf`==5xr^fbpdYdg|d$='>0:uq[agsiVidycz'1(33?rtXlh~jSnaznu*1-46<{UomyoPcnwmp-5.991|~Rjnt`]`kphs =#:>6y}_ecweZeh}g~787>15:uq[`h13~xT~~zr@Arf5==GHq;1J7:51zQ00?5a=3?1=>;o162?0<,:?86>:k;|Q06?5a=3?1=>684>33`4=2<6:=lo7{Zm9;295?7=913p_>:53g791?74:k=2;7?=4gf8 62f2<:0Z>;;:3yv1<<63|?j6=5r$c09f>d4n10;68?53;72M5302P9o7o3;90;66a<5983>>i39<0;66g;4183>>i4nj0;66a>o3;00;66g;3383>>i4k00;6)l;:2g`?kd42910c>m7:18'f1<4mj1en>4>;:m0g2<72-h?6>kl;o`0>7=!d32:oh7cl<:598k6e3290/n946cd3gh86;54o2a2>5<#j=08in5ab284?>i4k90;6)l;:2g`?kd42110c>li:18'f1<4mj1en>46;:m0f`<72-h?6>kl;o`0>d=!d32:oh7cl<:b98k6de290/n946cd3gh86h54o2`:>5<#j=08in5ab28e?>i4j>0;6)l;:2g`?kd428:07b=m6;29 g2=;li0bo=51098k6d2290/n94kl;o`0>42<3f9i>7>5$c697`e5<#j=08in5ab2822>=h;k:1<7*m4;1fg>he;3;<76a!d32:oh7cl<:0:8?j5fm3:1(o:53da8jg5=9010c>mi:18'f1<4mj1en>4>a:9l7fc=83.i87=jc:la7?7e32e8oi4?:%`7>6cd3gh861?hm4nc195a=i4k:0;6)l;:2g`?kd42;:07b=m8;29 g2=;li0bo=52098k6gc290/n94o<;o`0>5=!d32:k87cl<:398m61c290/n946g43gh86954i25a>5<#j=08m>5ab286?>o4?00;6)l;:2c0?kd42?10e>97:18'f1<4i:1en>48;:k032<72-h?6>o<;o`0>==!d32:k87cl<:`98m613290/n944?:%`7>6g43gh86n54i251>5<#j=08m>5ab28g?>o4?80;6)l;:2c0?kd42l10e>9?:18'f1<4i:1en>4i;:k02`<72-h?6>o<;o`0>46<3`9=h7>5$c697d55<#j=08m>5ab2826>=n;?h1<7*m4;1b7>he;3;876g<6`83>!d32:k87cl<:068?l5113:1(o:53`18jg5=9<10e>87:18'f1<4i:1en>4>6:9j731=83.i87=n3:la7?7032c8:;4?:%`7>6g43gh86<64;h151?6=,k>1?l=4nc195<=o40=0;6)l;:2c0?kd428i07d=73;29 g2=;h90bo=51e98m6>5290/n94o<;o`0>76<3`9=j7>5$c697d5<54i247>5<#j=08m>5ab2816>=n;?91<7*m4;1b7>he;38876g;2983>>d4<00;6<4?:1yK71><,kh1?974oc394?=zj=?1<7?50;2xL62?3-hi69;4o5694?=zj;h1<76i:043>4>>sA9?46T=c;3546=n3;:6<;513827?732h026<8516821?702h0::7??:8820?742881=<4i:|&af?5aj2.9j7=i9:&07?5ai2.jh7l?;h63`?6=,k>18=k4nc194>=n<9i1<7*m4;63a>he;3;07d:?b;29 g2=<9o0bo=52:9j05g=83.i87:?e:la7?5<3`>;57>5$c6905c;46`m3;28?l27>3:1(o:541:8jg5=921b8=;50;&a0?2702di?7<4;h630?6=,k>18=64nc197>=n<991<7*m4;63<>he;3>07d:<0;29?j2793:17d:>3;29 g2=<8>0bo=50:9j044=83.i87:>4:la7?7<3`>:=7>5$c6904265f40294?"e<3>:86`m3;18?l27n3:1(o:54068jg5=<21d?8650;9l736=83.i87=91:la7?6<3f9>j7>5$c69737?<7>5;h62e?6=,k>18=n<831<7*m4;62f>he;3;07d:>8;29 g2=<8h0bo=52:9j041=83.i87:>b:la7?5<3`>::7>5$c6904d9=6`m3;28?l26n3:1(o:54338jg5=921b818??4nc197>=n<8i1<7*m4;615>he;3>07d:=6;29 g2=<;=0bo=50:9j073=83.i87:=7:la7?7<3`>987>5$c6907165f43194?"e<3>9;6`m3;18?l25:3:1(o:54358jg5=<21d?8950;9j7c`=831b?8l50;9j017=831d8>=50;9l06>=831b8><50;9l7f?=83.i87=jc:la7?6<3f9h47>5$c697`e3:1(o:53da8jg5=;21d?n;50;&a0?5bk2di?7:4;n1`0?6=,k>1?hm4nc191>=h;j81<7*m4;1fg>he;3<07b=l1;29 g2=;li0bo=57:9l7f6=83.i87=jc:la7?><3f9ij7>5$c697`e1?hm4nc19`>=h;kk1<7*m4;1fg>he;3o07b=m9;29 g2=;li0bo=5f:9l7g1=83.i87=jc:la7?7732e8n;4?:%`7>6cd3gh861?hm4nc1957=i4j;0;6)l;:2g`?kd428?07b=m1;29 g2=;li0bo=51798k6d7290/n94kl;o`0>4?<3f9hj7>5$c697`e5<#j=08in5ab282f>=h;jn1<7*m4;1fg>he;3;h76a!d32:oh7cl<:0f8?j5dj3:1(o:53da8jg5=9l10c>mn:18'f1<4mj1en>4>f:9l7f5=83.i87=jc:la7?4732e8n54?:%`7>6cd3gh86??4;n1b`?6=,k>1?hm4nc1967=1?l=4nc197>=n;>i1<7*m4;1b7>he;3>07d=8b;29 g2=;h90bo=55:9j72?=83.i87=n3:la7?0<3`9<47>5$c697d53:1(o:53`18jg5=121b?:;50;&a0?5f;2di?7o4;h140?6=,k>1?l=4nc19f>=n;>91<7*m4;1b7>he;3i07d=82;29 g2=;h90bo=5d:9j727=83.i87=n3:la7?c<3`9<<7>5$c697d5o4>m0;6)l;:2c0?kd428;07d=9c;29 g2=;h90bo=51398m60e290/n94o<;o`0>43<3`9=47>5$c697d55<#j=08m>5ab2823>=n;?<1<7*m4;1b7>he;3;376g<6483>!d32:k87cl<:0;8?l5?>3:1(o:53`18jg5=9h10e>6::18'f1<4i:1en>4>b:9j7=2=83.i87=n3:la7?7d32c84>4?:%`7>6g43gh861?l=4nc195`=o4>o0;6)l;:2c0?kd42;;07d=94;29 g2=;h90bo=52398m604290/n949o7>5$c6907`9j6`m3;08?j25i3:1(o:543d8jg5=;21d8?750;&a0?25n2di?7:4;n60a?6=,k>18>h4nc194>=h<:n1<7*m4;60b>he;3;07b:8m7>5$c6906`14<@:>m7E=;8:&7f?2>oe=3:17bl9:188yg55n3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd4;m0;694?:1y'fg<3:2B88k5G35:8L7g<,<=18>;4$5`90>o5l3:17d=::188mg3=831dn;4?::a764=8391<7>t$c`97c=O;=l0D>:7;I0b?!302=9>7):m:39j6a<722c897>5;n`5>5<53;294~"ej39m7E=;f:J00==O:h1/9:4;349'0g<53`8o6=44i2794?=hj?0;66sm32a94?2=83:p(ol5439K71`<@:>37E1523->i695f2e83>>o4=3:17dl::188kg0=831vn>=>:180>5<7s-hi6>h4H26e?M5302B9m6*:7;601>"3j380e?j50;9j70<722ei:7>5;|`07`<72<0;6=u+bc877>N45;h`6>5<5<4290;w)lm:2d8L62a3A9?46F=a:&63?24=2.?n7<4i3f94?=n;<0;66am6;29?xd4;90;684?:1y'fg<3;2B88k5G35:8L7g<,<=18>;4i3f94?=n:l0;66g<5;29?ld22900co850;9~f65e290?6=4?{%`a>14<@:>m7E=;8:J1e>"2?3>896*;b;68m7b=831b?84?::ka1?6=3fh=6=44}c10e?6=<3:1;50;9jf0<722ei:7>5;|`07<<72=0;6=u+bc876>N4o5l3:17d=::188mg3=831dn;4?::a76>=83>1<7>t$c`907=O;=l0D>:7;%6a>1=n:m0;66g<5;29?ld22900co850;9~f621290?6=4?{%`a>14<@:>m7E=;8:&7f?2>oe=3:17bl9:188yg53=3:187>50z&af?253A9?j6F<499'0g<33`8o6=44i2794?=nj<0;66am6;29?xddl3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddk3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddj3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xddi3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xdd13:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd6880;694?:1y'fg<382B88k5G35:8 1d=:2c9h7>5;h12>5<>{e99:1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjol1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjoo1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zjon1<7:50;2x gd=<91C?9h4H26;?!2e2;1b>i4?::k05?6=3`9>6=44oc494?=zj88<6=4;:183!de2=:0D>:i;I17<>"3j380e?j50;9j74<722c897>5;n`5>5<54;294~"ej3>;7E=;f:J00==#84?:583>5}#jk0?<6F<4g9K71><,=h1>6g=d;29?l562900e>;50;9lf3<722wi=?:50;694?6|,kh18=5G35d8L62?3->i6?5f2e83>>o493:17d=::188kg0=831vn<<<:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh<:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh=:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh>:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoh?:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qoki:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qo?>d;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#5}#jk0?<6F<4g9K71><@;k0(8954278 1d=:2c9h7>5;h12>5<>{e98h1<7:50;2x gd=<91C?9h4H26;?M4f3-?<69=:;%6a>7=n:m0;66g<1;29?l522900co850;9~f47f290?6=4?{%`a>16<@:>m7E=;8:J1e>"2?3>896*;b;08m7b=831b?<4?::k01?6=3fh=6=44}c32=?6=<3:15<>ie>3:17plj9;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#54;294~"ej3>;7E=;f:J00==O:h1/9:4;349'0g<53`8o6=44i2394?=n;<0;66am6;29?xdb?3:187>50z&af?273A9?j6F<499K6d=#=>0??85+4c81?l4c2900e>?50;9j70<722ei:7>5;|`f2?6=<3:15<>ie>3:17plj5;290?6=8r.in7:?;I17b>N4<11C>l5+568770=#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#54;294~"ej3>;7E=;f:J00==#4?:583>5}#jk0?<6F<4g9K71><,=h1>6g=d;29?l562900e>;50;9lf3<722wi=<<50;694?6|,kh18=5G35d8L62?3->i6?5f2e83>>o493:17d=::188kg0=831vn:187>5<7s-hi69>4H26e?M5302.?n7<4i3f94?=n;80;66g<5;29?jd12900qo?>0;290?6=8r.in7:?;I17b>N4<11/8o4=;h0g>5<>ie>3:17pl>0g83>1<729q/no4;0:J00c=O;=20(9l52:k1`?6=3`9:6=44i2794?=hj?0;66sm14;94?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9<21<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm14494?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9i4?::k1a?6=3`9>6=44ic794?=hj?0;66sm14594?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9?91<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm17094?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9?;1<7;50;2x gd=<81C?9h4H26;?!2e2;1b>i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm17294?3=83:p(ol5409K71`<@:>37):m:39j6a<722c9i7>5;h12>5<>{e9i4?::k1a?6=3`9:6=44i2794?=hj?0;66sm12594?2=83:p(ol5439K71`<@:>37):m:59j6a<722c897>5;h`6>5<5<3290;w)lm:508L62a3A9?46*;b;68m7b=831b?84?::ka1?6=3fh=6=44}c306?6=<3:1?50;9j70<722ei:7>5;|`274<72=0;6=u+bc874>N4o5l3:17d=>:188m63=831dn;4?::a526=8391<7>t$c`971c<@:>m7E=;8:k04?6=3`>o6=44o`d94?=zj8n7E=;f:J00==n;90;66g;d;29?jga2900qo?99;290?6=8r.in7;7;I17b>N4<11b?=4?::k02?6=3`h36=44o`d94?=zj8<36=4;:183!de2<20D>:i;I17<>o483:17d=9:188mg>=831dmk4?::a531=83>1<7>t$c`91==O;=l0D>:7;h13>5<>ifn3:17pl>6783>1<729q/no4:8:J00c=O;=20e>>50;9j73<722ci47>5;nce>5<54;294~"ej3?37E=;f:J00==n;90;66g<6;29?ld?2900clh50;9~f413290?6=4?{%`a>16<@:>m7E=;8:&7f?4>o4=3:17bl9:188yg70;3:187>50z&af?273A9?j6F<499'0g<53`8o6=44i2394?=n;<0;66am6;29?xd6?>0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>a583>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6i:0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>a083>0<729q/no4;3:J00c=O;=20(9l54:k1`?6=3`8n6=44i2794?=nj<0;66am6;29?xd6i90;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>a383>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ij0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>a`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ik0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>ae83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6il0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>b783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6j=0;684?:1y'fg<3;2B88k5G35:8 1d=<2c9h7>5;h0f>5<>ie>3:17pl>b483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6j>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>b983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6k;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>c083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6k90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>bg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6jl0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5m?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd4810;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5m10;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=e883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5mh0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=ec83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5mj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=ee83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5ml0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=eg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f383>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n:0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f583>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n<0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5n00;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=f`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nk0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=fe83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5nl0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=fg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd4890;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl<0083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd48;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0e83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=54?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5::0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`101<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2d83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?44?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`116<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=5583>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th95}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5980;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`14c<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1183>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=?4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59:0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`151<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1483>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=44?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59?0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`152<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=1`83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=o4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59j0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`15a<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2183>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9=h4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd59o0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`164<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2383>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>94?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5:<0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16=<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2783>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5:00;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16d<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2c83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9>n4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;90;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`16a<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=2g83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?<4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;;0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`176<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3583>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;<0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`173<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3c83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?54?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;h0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`17`<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=3b83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th9?i4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;o0;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`105<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4083>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98?4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`106<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4483>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98:4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5<10;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`10<<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4`83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th98i4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`10f<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=4d83>a<729q/no4m7:J00c=O;=20e?;50;9j63<722c9;7>5;h0;>5<>o413:17d=n:188m6d=831b?9l50;9j71e=831dnl4?::m03?6=3th99=4?:e83>5}#jk0i;6F<4g9K71>>o5?3:17d<7:188m63=831b?54?::k0=?6=3`9j6=44i2`94?=n;=h1<75f35a94?=hjh0;66a<7;29?xd5=80;6i4?:1y'fg;4?::k13?6=3`836=44i2794?=n;10;66g<9;29?l5f2900e>l50;9j71d=831b?9m50;9lfd<722e8;7>5;|`117<72m0;6=u+bc8a3>N4;50;9j7=<722c857>5;h1b>5<>i4?3:17pl=0483>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5890;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fd83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6nm0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fb83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6nk0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f`83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n00;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f983>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n>0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f783>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n<0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f283>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n;0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>f083>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n90;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>eg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6ml0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>ee83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6mj0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>ec83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6mh0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0c83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58h0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd5810;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl=0683>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd58?0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>fg83>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6n=0;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>e883>0<729q/no4;1:J00c=O;=20(9l52:k1`?6=3`8n6=44i2394?=n;<0;66am6;29?xd6m10;684?:1y'fg<392B88k5G35:8 1d=:2c9h7>5;h0f>5<>ie>3:17pl>8783>1<729q/no4;2:J00c=O;=20(9l54:k1`?6=3`9>6=44ic794?=hj?0;66sm19594?2=83:p(ol5439K71`<@:>37):m:59j6a<722c897>5;h`6>5<5<2290;w)lm:518L62a3A9?46*;b;68m7b=831b>h4?::k01?6=3`h>6=44oc494?=zj:>96=4<:183!de2<;0D>:i;I17<>"3j3i0e9950;9j0=<722ejj7>5;|`071<72:0;6=u+bc865>N4o3?3:17d:7:188kd`=831vn<><:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{eko0;6>4?:1y'fg<292B88k5G35:8 1d=911b8:4?::k7o3?3:17d:7:188kd`=831vn<:n:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{ek:0;6>4?:1y'fg<292B88k5G35:8 1d=911b8:4?::k75<4290;w)lm:438L62a3A9?46*;b;3;?l202900e9650;9lec<722wio<4?:283>5}#jk0>=6F<4g9K71><,=h1=55f4683>>o303:17boi:188yge729086=4?{%`a>07<@:>m7E=;8:&7f?7?3`><6=44i5:94?=hio0;66smbg83>6<729q/no4:1:J00c=O;=20(9l5199j02<722c?47>5;nce>5<:i;I17<>"3j3;37d:8:188m1>=831dmk4?::afa<72:0;6=u+bc865>N40;66g;8;29?jga2900qoll:180>5<7s-hi68?4H26e?M5302.?n7?7;h64>5<>{e9>31<7:50;2x gd==:1C?9h4H26;?!2e2:1b8:4?::k726=44o`d94?=zj89=6=4;:183!de2<90D>:i;I17<>"3j39n7d:8:188m1>=831b844?::mbb?6=3th:<84?:583>5}#jk0>?6F<4g9K71><,=h1>95f4683>>o303:17d:6:188kd`=831vni?50;694?6|,kh19>5G35d8L62?3->i6?:4i5594?=n<10;66g;9;29?jga2900qo?66;290?6=8r.in7;<;I17b>N4<11/8o4>a:k73?6=3`>36=44i5;94?=hio0;66sm15`94?2=83:p(ol5529K71`<@:>37):m:0c8m11=831b854?::k7=?6=3fkm6=44}c300?6==3:15;nce>5<55;294~"ej3?>7E=;f:J00==#5;|`g7?6==3:1o3?3:17d:7:188m1?=831b8l4?::mbb?6=3th:?l4?:483>5}#jk0>96F<4g9K71><,=h1=k5f4683>>o303:17d:6:188m1g=831dmk4?::a5=3=8391<7>t$c`914=O;=l0D>:7;%6a>63>ifn3:17pl>2d83>1<729q/no4:3:J00c=O;=20(9l5269j02<722c?47>5;h6:>5<5<2290;w)lm:478L62a3A9?46*;b;3:?l202900e9650;9j0<<722c?m7>5;nce>5<:i;I17<>"3j3;27d:8:188m1>=831b844?::k7e?6=3fkm6=44}c11g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a77d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg55i3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;;31<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo==6;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm33794?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c110?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a775=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg55:3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;;;1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=>e;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm30f94?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c12g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a74d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg56i3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;831<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=>6;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm30794?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c120?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a745=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg56:3:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;8;1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6>m4i5594?=n<10;66g;9;29?jga2900qo=?e;290?6=8r.in7;<;I17b>N4<11/8o436=44i5;94?=hio0;66sm31f94?2=83:p(ol5529K71`<@:>37):m:2a8m11=831b854?::k7=?6=3fkm6=44}c13g?6=<3:1o3?3:17d:7:188m1?=831dmk4?::a75d=83>1<7>t$c`916=O;=l0D>:7;%6a>6e>o313:17boi:188yg5713:187>50z&af?343A9?j6F<499'0g<4k2c?;7>5;h6;>5<>{e;9k1<7:50;2x gd==:1C?9h4H26;?!2e2:i0e9950;9j0=<722c?57>5;nce>5<54;294~"ej3?87E=;f:J00==#5G35d8L62?3->i6?74i5594?=n<10;66g;9;29?jga2900qo?=c;291?6=8r.in7;:;I17b>N4<11/8o47;h64>5<>o3i3:17boi:188yg7393:197>50z&af?323A9?j6F<499'0g<6l2c?;7>5;h6;>5<>ifn3:17pl>4383>0<729q/no4:5:J00c=O;=20(9l51d9j02<722c?47>5;h6:>5<>{e9:n1<7;50;2x gd==<1C?9h4H26;?!2e2;90e9950;9j0=<722c?57>5;h6b>5<5<2290;w)lm:478L62a3A9?46*;b;1g?l202900e9650;9j0<<722c?m7>5;nce>5<53;294~"ej3?:7E=;f:J00==#=831dmk4?::a5=4=83?1<7>t$c`910=O;=l0D>:7;%6a>75>o313:17d:n:188kd`=831vn<6<:186>5<7s-hi68;4H26e?M5302.?n7<<;h64>5<>o3i3:17boi:188yg7?93:197>50z&af?323A9?j6F<499'0g<6=44i5:94?=n<00;66g;a;29?jga2900qo?8b;291?6=8r.in7;:;I17b>N4<11/8o4>e:k73?6=3`>36=44i5;94?=n26=44i5c94?=hio0;66sm19`94?3=83:p(ol5549K71`<@:>37):m:318m11=831b854?::k7=?6=3`>j6=44o`d94?=zj8226=4::183!de2:i;I17<>"3j3o0e9950;9j0=<722c?57>5;h6b>5<5<4290;w)lm:438L62a3A9?46*;b;03?l202900e9650;9lec<722wi=;l50;194?6|,kh19<5G35d8L62?3->i6?>4i5594?=n<10;66anf;29?xd6>j0;6>4?:1y'fg<292B88k5G35:8 1d=:91b8:4?::k7o3?3:17d:7:188kd`=831vn<=i:186>5<7s-hi68;4H26e?M5302.?n7<=;h64>5<>o3i3:17boi:188yg70l3:197>50z&af?323A9?j6F<499'0g<5:2c?;7>5;h6;>5<>ifn3:17pl>6d83>6<729q/no4:1:J00c=O;=20(9l5219j02<722c?47>5;nce>5<54;294~"ej3?87E=;f:J00==#=831b844?::mbb?6=3th8>h4?:583>5}#jk0>?6F<4g9K71><,=h1?6g;7;29?l2?2900e9750;9lec<722wi=4650;794?6|,kh1985G35d8L62?3->i66=4?{%`a>03<@:>m7E=;8:&7f?7e3`><6=44i5:94?=n<00;66g;a;29?jga2900qo?=d;291?6=8r.in7;:;I17b>N4<11/8o47;h64>5<>o3i3:17boi:188yg7?m3:1?7>50z&af?363A9?j6F<499'0g<03`><6=44i5:94?=hio0;66sm18694?4=83:p(ol54b9K71`<@:>37d:9:188kd`=831vn<:6:181>5<7s-hi69m4H26e?M5302c?:7>5;nce>5<53;294~"ej3?97E=;f:J00==#t$c`917=O;=l0D>:7;%6a>4>>i3m3:17pl>9683>1<729q/no4:4:J00c=O;=20(9l51b9j02<722c?47>5;h6:>5<5<3290;w)lm:468L62a3A9?46*;b;3`?l202900e9650;9j0<<722e?i7>5;|`27`<72<0;6=u+bc862>N40;66g;8;29?l2>2900e9o50;9l0`<722wi=:m50;794?6|,kh19;5G35d8L62?3->i63290>6=4?{%`a>00<@:>m7E=;8:&7f?453`><6=44i5:94?=n<00;66g;a;29?j2b2900qo?7c;291?6=8r.in7;9;I17b>N4<11/8o4=2:k73?6=3`>36=44i5;94?=n26=44o5g94?=z{=9;6=48{_604>;6;?0?463>35873>;6;h0?m63>2d87=>;6:j0?;63>2e873>{t<;o1<7<>{_156>X3;11U8>84^274?[24;2T?<<5Q4258Z1653W9=<6P<5g9]70cX3;h1U8?j4^50`?[25j2T?>l5Q43;896372=>01>=j:27896572:?01>=m:278965f2:?01>=6:278965?2:?01>:9:27896222:?01<8::c:8yv70n3:1>vP<599>52`=j?1v9==:184[24:278>k4<1:?07a650;0xZ6`134;847l9;|q705<724=0:g>11<5:8o6974=20f>11<582n6994}r617b<5:996?j4=212>7b<5:9;6?j4=21b>7b<5:926?j4=21;>7b<58::6?j4=023>7b<5ol1>i52fd81`>;al38o70?=7;0g?875>38o70?=5;0g?875<38o70?=3;0g?876l38o70?>c;0g?876j38o70?>a;0g?876138o70ji:3f89ac=:m16hi4=d:?gg?4c34ni6?j4=07:>7b<58?36?j4=075>7b<58?>6?j4=074>7b<58<86?j4=041>7b<58<:6?j4=043>7b<58?m6?j4=014>7b<58936?j4=011>7b<589:6?j4=3g6>7b<5;o=6?j4=3d2>7b<5;lh6?j4=220>7b<5::?6?j4=226>7b<5::=6?j4=224>7b<5::36?j4=3g4>7b<5;o36?j4=3g:>7b<5;oj6?j4=3ga>7b<5;oh6?j4=3gg>7b<5;on6?j4=3ge>7b<5;l;6?j4=3d1>7b<5;l86?j4=3d7>7b<5;l>6?j4=3d5>7b<5;l<6?j4=3d;>7b<5;l26?j4=3db>7b<5;li6?j4=3dg>7b<5;ln6?j4=3de>7b<5::;6?j4=222>7b<5::96?j4=326>7b<5;:?6?j4=320>7b<5;:96?j4=322>7b<5;:;6?j4=0df>7b<58lo6?j4=0d`>7b<58li6?j4=0db>7b<58l26?j4=0d;>7b<58l<6?j4=0d5>7b<58l>6?j4=0d0>7b<58l96?j4=0d2>7b<58l;6?j4=0ge>7b<58on6?j4=0gg>7b<58oh6?j4=0ga>7b<58oj6?j4=32a>7b<5;:j6?j4=32:>7b<5;:36?j4=324>7b<5;:=6?j4=0de>7b<58l?6?j4=0g:>7b<58o36?j4}r3;3?6=:rT8jn521959f3=z{=926=470z\77<=:;;l1>i5232f96a=:;=:1>i5232a96a=:;:o1>i5232d96a=:;:h1>i5235496a=:;=?1>i52ce81`>;dk38o70mm:3f89fg=:m16o44=d:?e7?4c34l96?j4=g396a=:n909h63jf;0g?8c>2;n01h652e9>a2<5l27n:77b<58;86?j4=031>7b<58;:6?j4=033>7b<58:m6?j4=057>7b<58=86?j4=054>7b<58k?6?j4=0c0>7b<58k:6?j4=0c3>7b<58k96?j4=0c`>7b<58kj6?j4=0ca>7b<58ko6?j4=0cf>7b<58h=6?j4=0`7>7b<58h>6?j4=0`4>7b<58h36?j4=0a1>7b<58i:6?j4=0a3>7b<58hm6?j4=0`f>7b<5;:o6>:m;<02>4<4c9>612=;=h01?62e348;i7=;b:?154<4=h535`897772:>i70<>2;17f>;59:088o52206971d<5;;>6>:m;<02=?53j279=;4<4c9>641=;=h01??n:26a?846j39?n63=1b800g=::8n1?9l4=303>62e348:i7=;b:?15c<4??535`897452:>i70<=4;17f>;5:<088o5223:971d<5;8=6>:m;<013?53j279>44<4c9>67g=;=h01?62e3488=7=;b:?177<4>=535`897532:>i70<<7;17f>;5;<088o52224971d<5;9i6>:m;<0066c=;=h01?=l:26a?844l39?n63=3g800g=::=:1?9l4=362>62e348?>7=;b:?103<49=535`897222:>i70<;7;17f>;5<1088o5225;971d<5;>j6>:m;<07`?53j2798o4<4c9>61e=;=h01?:j:26a?842839?n63=50800g=::<81?9l4=0:5>7b<582<6?j4=05e>7b52z\750=:9>=1n;5rs0g3>5<5sW9h563=048a2>{t9ml1<7dd83>7}Y;j=01?><:c48yv7cl3:1>vP654=j?1vm;;<034?d13ty:h44?:3y]7f4<58ln6o84}r3g;6nj0i:6s|1e494?4|V:hm70?ib;`5?xu6l<0;6?uQ3cg894`f2k<0q~?k4;296~X4jm16=k75b79~w4b42909wS=mc:?2b=2wx=i<50;0xZ6de34;m;7l9;|q2`4<72;qU?oo4=0d5>g052z\0f<=:9o?1n;5rs0af>5<5sW9i;63>f28a2>{t9jn1<7cb83>7}Y;k?01:c48yv7dj3:1>vP5c6=j?1vl=;<3fa?d13ty:o54?:3y]7g7<58oo6o84}r3`3?6=:rT8n=521da9f3=z{8i=6=4={_1bb>;6mk0i:6s|1b794?4|V:kn70?ja;`5?xu6m>0;6?uQ3bd8976e2k<0q~?j6;296~X4kl16>=o5b79~w4c22909wS=ld:?14<2wx=h:50;0xZ6ed348;47l9;|q2a6<72;qU?nl4=324>g07>52z\0gd=::9<1n;5rs0g2>5<5sW9h?63>fg8a2>{t9mk1<7cg83>7}Y;hn01vP5`>=j?1v>o;:180[5?82799<4<5:?117<4=2wx?l<50;1xZ61a348?i7=:;<064?523ty8m<4?:2y]72c<5;>o6>;4=36`>6353z\03a=::=k1?85225`970=z{:3m6=4<{_14g>;5<108963=48801>{t;0o1<7=t^25a?843>39>70<;7;16?xu41j0;6>uQ36;897242:?01?:::278yv5>j3:1?vP<799>617=;<16>9<5349~w6?f2908wS=87:?17c<4=2798=4<5:p799;<00a?523488h7=:;|q0==<72:qU?:;4=31a>63<5;9h6>;4}r1:3?6=;rT8;95222:970=:::k1?85rs2;5>5<4sW9;5;?0896s|38794?5|V:=970<<4;16?844=39>7p}<9583>6}Y;>;01?==:27897542:?0q~=63;297~X4?916>>>5349>667=;<1v>7>:180[51m279>i4<5:?16c<4=2wx?4>50;1xZ60c3489n7=:;<01g?523ty84k4?:2y]73e<5;826>;4=30b>6353z\02g=::;21?852235970=z{:2o6=4<{_15e>;5:<08963=27801>{t;1i1<7=t^24:?845:39>70<=4;16?xu40k0;6>uQ37:897472:?01?<>:278yv5?i3:1?vP<669>64c=;<16>>2908wS=96:?15f<4=279=i4<5:p7=>=839pR>8:;<02e?52348:n7=:;|q0eg<72:qU?584=33:>63<5;;<6>;4}r1be?6=;rT84852207970=::8<1?85rs2c:>5<4sW93863=12801>;59=0896s|3`:94?5|V:2870<>1;16?846:39>7p}6}Y;1801?>i:27897772:?0q~=n6;297~X40816>8:5349>65c=;<1v>o::180[50i2798k4<5:?116<4=2wx?4j50;1xZ60a348?87=:;<00=?523ty85?4?:2y]732<5;886>;4=30f>6353z\026=::9n1?85220:970=z{g7<58<>6>>4}r30g?6=:r7:?o4<5:?205950;33874j3h>70=39:70?:5;`6?872?39:70?93;12?871:39:70?91;12?871839:70?:f;12?874?3h>70?<8;`6?874:39:70?<1;12?xu6;k0;69u212`9f3=:9:>18l5213a90==:9;n1855rs21g>5<5s499j7=:;<10`?d13ty8>k4?:4y>77`=j?16=:75489>5=3=<116=5?5469>5=?=<>1v>=l:185854l39>70=70?76;`6?87??3h>70?8f;`6?xu4;80;6>u2320970=:;:;1n;5232296`=z{:996=4={<106?d1349887:8;|q07c<72:q6?9>5349>76c=:l16?>h5b79~w6272909w0=;0;`5?853:3><7p}<3c83>7}:;:i1?85232`9f3=z{:9;6=4<{<105?523498<7l9;<100?2?3ty8?h4?:2y>76c=j?16?>h5349>714=<11v>=<:187854i3h>70=<9;`6?85403h>70=<4;ce?xu4;?0;6<;t=21:>g0<58::6>?4=023>67<5ol1?<52fd805>;al39:70?=7;12?875>39:70?=5;12?875<39:70?=3;12?876l39:70?>c;12?876j39:70?>a;12?876139:70ji:2389ac=;816hi4<1:?gg?5634ni6>?4}r101?6=<0q6?>65b79>6`3=;816>h85309>6c7=;816>km5309>755=;816?=:5309>753=;816?=85309>751=;816?=65309>6`1=;816>h65309>6`?=;816>ho5309>6`d=;816>hm5309>6`b=;816>hk5309>6``=;816>k>5309>6c4=;816>k=5309>6c2=;816>k;5309>6c0=;816>k95309>6c>=;816>k75309>6cg=;816>kl5309>6cb=;816>kk5309>6c`=;816?=>5309>757=;816?=<5309>653=;816>=:5309>655=;816>=<5309>657=;816>=>5309>5cc=;816=kj5309>5ce=;816=kl5309>5cg=;816=k75309>5c>=;816=k95309>5c0=;816=k;5309>5c5=;816=k<5309>5c7=;816=k>5309>5``=;816=hk5309>5`b=;816=hm5309>5`d=;816=ho5309>65d=;816>=o5309>65?=;816>=65309>651=;816>=85309>5c`=;816=k:5309>5`?=;816=h65309~w6262908w0=;6;`6?853=3h>70=;2;ce?xu4<=0;6<9t=265>g0<58=?6>?4=050>67<58k?6>?4=0c0>67<58k:6o;4=0c3>g3<58k96>?4=0c`>67<58kj6>?4=0ca>g3<58ko6>?4=0cf>67<58h=6>?4=0`7>g3<58h>6>?4=0`4>67<58h36>?4=0a1>67<58i:6>?4=0a3>67<58hm6>?4=0`f>67514y>713=j?16oi4<1:?`g?5634ii6>?4=bc974=:k008=63i3;12?8`52:;01k?5309>b5<4927nj7=>;67<5l21?<52e6805>;b>39:70k::23894742:;01gc<3027o=7:8;1?<5m>1845rsb:94?3|5jn1n;52190902=:9>h18l5219c902=:9?o1855rsbg94?4|5ji1?852cg8bb>{tk>0;68u2cb8a2>;60;0?563>8c873>;6>m0?463>7b87e>{tl90;6?u2cc801>;c93km7p}l6;291~;dj3h=70?73;64?87?j3>270?9c;6;?870k3>27p}k2;296~;di39>70j<:`d8yve2290>w0mn:c4894>42=301<9m:5;894>f2=301<8m:5:8yvb32909w0m6:2789a2=io1vn:50;7x9f?=j?16=;o5499>52b=<116=5:5469>5=e=<11v<<=:185877939>70?=7;`5?877;3>370??5;64?877?3>270??8;6:?xuak3:1?v3>008a2>;6<80?463>3e87<>{t9981<763<58:86lh4}rda>5<4s4;;<7l9;<376?2?34;8h7:n;|q241<72;q6jk4<5:?240bc27:8?4;7:?27`<302wx==850;0x9cc=;<16==95ag9~wc?=839p1kk5b79>517=<>16=>k5469~w46?2909w0hk:278946?2hl0q~h7:1808`c2k<01<=i:55894242==0q~?>8;296~;6:>08963>1e8a2>{t98=1<763<58;h6o84}r315?6==r7:>;4m6:?246<3?27:<84;8:?242<3i27:<44;7:p540=838p1<<::278947e2k<0q~?=0;290~;6:<0i:63>0487=>;68>0?;63>0887<>{t98?1<763<58;j6o84}r32b?6=;r7:>94m6:?242<3027:<54;7:p542=838p1<<<:278947>2k<0q~?>e;296~;6::0i:63>0987<>{tm=0;6?u2f2801>;b13h=7p}j3;296~;a:39>70k7:c48yvcc290>w0h=:c489f`=<>16h<4;8:?g7?2f34n>6994}rg1>5<5s4l:6>;4=d59f3=z{li1<7:t=g39f3=:l80?563k3;64?8b22=20q~k>:1818`72:?01h85b79~w`d=839p1k>5b79>`6<3027o87:8;|qf4?6=:r7nj7=:;g0g0<5m>1855rs02f>5<5s4;:h7=:;<327?d13ty:54e=;<16=<<5b79~w46d2909w0?>b;16?87693h=7p}>0c83>7}:98k1?8521029f3=z{8:j6=4={<32=?5234;;j7l9;|qge?6=:r7n57=:;g063<5mo1n;5rse:94?4|5l=1?852de8a2>{tl>0;6?u2e7801>;ck3h=7p}k6;296~;b=39>70jm:c48yv72m3:1>5u2dg801>;6>:0i:63mc;64?855k3><70==b;64?855i3><70==9;64?85503><70==7;64?855>3><70==5;64?855<3><70==3;64?855:3><70==1;64?85583><70=>f;64?856m3><70=>d;64?856k3><70=>b;64?856i3><70=>9;64?85603><70=>7;64?856>3><70=>5;64?856<3><70=>3;64?856:3><70=>1;64?85683><70=?f;64?857m3><70=?d;64?857k3><70=?b;64?85713><70=?a;64?87393>27p}i4;296~;cm39>70ll:`d8yv`22909w0jk:2789gb=io1vk850;0x9ae=;<16nh4nf:pb2<72;q6ho4<5:?ab?ga3ty:ni4?:4y>545=;<16=n<5b79>g5<3?278>i4;8:?06`<302wx=?650;0x94752:?01n>5ag9~w44>2909w0?>1;16?8e62hl0q~?=a;296~;69908963l2;ce?xu6:k0;6?u211d970=:k:0jj6s|13a94?4as4;>57:7;77751c=io1v<;;:18787213h=70?93;16?873m3><70?0;6?u214:970=:9=n1mk5rs070>5<2s4;>47l9;<356?5234;?i7:7;<30`?2>34;?h7:8;|q200<72;q6=885349>51g=io1v<;>:184872>3h=70?90;16?873i3>370?;b;6:?873l3>270?;c;6;?874m3>j7p}>4583>7}:9j7=:;<37e?2034;?n7:7;<30b?2?34;?h7:7;<37=?2134;?o7:8;|q203<72;q6=895349>51d=io1v<;=:185872?3h=70?91;16?873j3><70?;d;6b?873k3>270?g0<5;:o6>l4=33;>6d<5;886>l4=367>6d<5;8n6>l4=31:>6d<5;>m6>l4=370>6d<5;??6>l4=32f>6d<5;;:6>l4=32e>6d<5;;;6>l4=331>6d<5;;86>l4=337>6d<5;;>6>l4=33:>6d<5;;=6>l4=334>6d<5;;j6>l4=33a>6d<5;;h6>l4=33g>6d<5;8;6>l4=33f>6d<5;;m6>l4=302>6d<5;896>l4=307>6d<5;8>6>l4=30;>6d<5;8=6>l4=304>6d<5;826>l4=30b>6d<5;8i6>l4=30`>6d<5;9;6>l4=30g>6d<5;8m6>l4=312>6d<5;996>l4=310>6d<5;9?6>l4=314>6d<5;9>6>l4=315>6d<5;9i6>l4=31;>6d<5;9j6>l4=31f>6d<5;9h6>l4=31g>6d<5;9m6>l4=363>6d<5;>:6>l4=361>6d<5;>=6>l4=360>6d<5;>>6>l4=364>6d<5;>36>l4=36:>6d<5;>j6>l4=36g>6d<5;>i6>l4=36`>6d<5;>n6>l4=373>6d<5;?:6>l4=371>6d<5kn18:52bb87<>;6<;0?m6s|14a94?2ds4;==7l9;<03`?5f348:47=n;<017?5f348?87=n;<01a?5f348857=n;<07b?5f348>?7=n;<060?5f348;i7=n;<025?5f348;j7=n;<024?5f348:>7=n;<027?5f348:87=n;<021?5f348:57=n;<022?5f348:;7=n;<02e?5f348:n7=n;<02g?5f348:h7=n;<014?5f348:i7=n;<02b?5f3489=7=n;<016?5f348987=n;<011?5f348947=n;<012?5f3489;7=n;<01=?5f3489m7=n;<01f?5f3489o7=n;<004?5f3489h7=n;<01b?5f3488=7=n;<006?5f3488?7=n;<000?5f3488;7=n;<001?5f3488:7=n;<00f?5f348847=n;<00e?5f3488i7=n;<00g?5f3488h7=n;<00b?5f348?<7=n;<075?5f348?>7=n;<072?5f348??7=n;<071?5f348?;7=n;<07<7=n;<065?5f348>>7=n;<`f>11<5kn1855215090<=z{8?i6=4;cz?225279>4<9:?101<41279>h4<9:?17<<412798k4<9:?116<41279994<9:?14`<41279=<4<9:?14c<41279==4<9:?157<41279=>4<9:?151<41279=84<9:?15<<41279=;4<9:?152<41279=l4<9:?15g<41279=n4<9:?15a<41279>=4<9:?15`<41279=k4<9:?164<41279>?4<9:?161<41279>84<9:?16=<41279>;4<9:?162<41279>44<9:?16d<41279>o4<9:?16f<41279?=4<9:?16a<41279>k4<9:?174<41279??4<9:?176<41279?94<9:?172<41279?84<9:?173<41279?o4<9:?17=<41279?l4<9:?17`<41279?n4<9:?17a<41279?k4<9:?105<412798<4<9:?107<412798;4<9:?106<41279884<9:?102<41279854<9:?10<<412798l4<9:?10a<412798o4<9:?10f<412798h4<9:?115<412799<4<9:?117<4127ij7:8;<`f>1><58>:69o4}r36e?6=65b=;116><65399>675=;116>9:5399>67c=;116>>75399>61`=;116>8=5399>602=;116>=k5399>647=;116>=h5399>646=;116><<5399>645=;116><:5399>643=;116><75399>640=;116><95399>64g=;116>64e=;116>676=;116>64`=;116>??5399>674=;116>?:5399>673=;116>?65399>670=;116>?95399>67?=;116>?o5399>67d=;116>?m5399>666=;116>?j5399>67`=;116>>?5399>664=;116>>=5399>662=;116>>95399>663=;116>>85399>66d=;116>>65399>66g=;116>>k5399>66e=;116>>j5399>66`=;116>9>5399>617=;116>9<5399>610=;116>9=5399>613=;116>995399>61>=;116>975399>61g=;116>9j5399>61d=;116>9m5399>61c=;116>8>5399>607=;116>8<5399>fc<3027:8>4;8:p56?=839p1<=8:278945?2:?01<=n:`d8yv74?3:1>v3>368a2>;6;h0?;6s|12194?4|58996>;4=017>d`57z?27727:?;4;9:?271<3127:?l4;9:?26`<3?27:>n4;9:?26a<312wx=>;50;0x94562:?01<=9:`d8yv75n3:1;v3>308a2>;6;?0?;63>3587<>;6;h0?463>2d87<>;6:j0?m63>2e87e>{t9?31<766<58<26lh4}r35a?6=:r7:;=4;d:?22`6g804>;6>008<63>698bb>{t9?n1<7=t=04e>1b<58<26o64=04g>d`52z?22c4<5:p5g4=83?p1<86:24894d02k<01:27894>e2=201<8k:558yv71?3:1>v3>69804>;6>>0jj6s|1c394?3|58<36>84=0`5>g0<58i;6>;4=0:a>1g<5866802>;6j<0i:63>bg801>;60h0?m63>6c873>{t9?h1<7g><58d2==0q~?9a;296~;6>?0i463>6`8bb>{t91n1<7?8{<351?5134;j877522=j?16=:75499~w4162909w0?83;`5?87013><7p}>7`83>6}:9>=1>h5216d96`=:91?1mk5rs05;>5<5s4;<;7=:;<34=?ga3ty:5>4?:3y>5d2=;<16=475ag9~w4?a290?w0?n4;`5?87fm39>70?69;64?87?:3>37p}>9383>7}:9h91?85218:9ec=z{83n6=4:{<3b7?d134;jh7=:;<3:=?2?34;3>7:n;<3:5d7=;<16=4;5ag9~w4?d29070?65;64?87>>3>270?73;6b?87>03>270?67;6;?xu60o0;6?u21`2970=:90>1mk5rs0;a>55d4=;<16=485ag9~w4?c290=w0?n2;`5?87fk39>70?66;64?87?;3>370?68;6b?87>?3>27p}>a683>6}:9hi1n;521c4970=:9>i18:5rs0c6>5<4s4;jm7l9;<3a0?5234;5g3=;<16=:l5469~w4g?2908w0?nd;`5?87e?39>70?8c;6;?xu6i00;6>u21`g9f3=:9k21?85216`90==z{8h86=4;{<3a7=:;<3;e?2?34;=i7:8;|q2ff<72=hp1:c48976c2;201??7:3:897442;201?:;:3:8974b2;201?=6:3:8972a2;201?;<:3:897332;201?>j:3:897762;201?>i:3:897772;201??=:3:897742;201??;:3:897722;201??6:3:897712;201??8:3:8977f2;201??m:3:8977d2;201??k:3:897472;201??j:3:8977a2;201?<>:3:897452;201?<;:3:897422;201?<7:3:897412;201?<8:3:8974>2;201?:3:897552;201?=<:3:897532;201?=8:3:897522;201?=9:3:8975e2;201?=7:3:8975f2;201?=j:3:8975d2;201?=k:3:8975a2;201?:?:3:897262;201?:=:3:897212;201?:<:3:897222;201?:8:3:8972?2;201?:6:3:8972f2;201?:k:3:8972e2;201?:l:3:8972b2;201?;?:3:897362;201?;=:3:89f7=<>16o=4;8:p5gd=83>iw0?l0;`5?847l38<70<>8;04?845;38<70<;4;04?845m38<70<<9;04?843n38<70<:3;04?842<38<702;04?846;38<70<>4;04?846=38<70<>9;04?846>38<70<>7;04?846i38<70<>b;04?846k38<70<>d;04?845838<70<>e;04?846n38<70<=1;04?845:38<70<=4;04?845=38<70<=8;04?845>38<70<=7;04?845138<70<=a;04?845j38<70<=c;04?844838<70<=d;04?845n38<70<<1;04?844:38<70<<3;04?844<38<70<<7;04?844=38<70<<6;04?844j38<70<<8;04?844i38<70<38<70<;3;04?843=38<70<;7;04?843038<70<;9;04?843i38<70<;d;04?843j38<70<;c;04?843m38<70<:0;04?842938<70<:2;04?8e52==01n?5499~w4df290?nv3>bg8a2>;58m09:63=19812>;5::09:63=45812>;5:l09:63=38812>;5;5==09:63=0d812>;59809:63=0g812>;59909:63=13812>;59:09:63=15812>;59<09:63=18812>;59?09:63=16812>;59h09:63=1c812>;59j09:63=1e812>;5:909:63=1d812>;59o09:63=20812>;5:;09:63=25812>;5:<09:63=29812>;5:?09:63=26812>;5:009:63=2`812>;5:k09:63=2b812>;5;909:63=2e812>;5:o09:63=30812>;5;;09:63=32812>;5;=09:63=36812>;5;<09:63=37812>;5;k09:63=39812>;5;h09:63=3d812>;5;j09:63=3e812>;5;o09:63=41812>;5<809:63=43812>;5;5<<09:63=46812>;5<109:63=48812>;5;5;5;5=809:63=53812>;d;3><70m=:5:8yv7e13:18lu21cg9f3=::9n1>85220:960=::;91>852256960=::;o1>85222;960=::=l1>852241960=::<>1>85221g960=::8;1>85221d960=::8:1>852200960=::891>852206960=::8?1>85220;960=::8<1>852205960=::8k1>85220`960=::8i1>85220f960=::;:1>85220g960=::8l1>852233960=::;81>852236960=::;?1>85223:960=::;<1>852235960=::;31>85223c960=::;h1>85223a960=::::1>85223f960=::;l1>852223960=:::81>852221960=:::>1>852225960=:::?1>852224960=:::h1>85222:960=:::k1>85222g960=:::i1>85222f960=:::l1>852252960=::=;1>852250960=::=<1>852251960=::=?1>852255960=::=21>85225;960=::=k1>85225f960=::=h1>85225a960=::=o1>852242960=::<;1>852240960=:k:0?46s|28f94?4|5;o>6>;4=22b>d`52z?1a027:i54<5:p6d>=838p1?k9:278966e2hl0q~e8801>{t:k91<763<5:;=6lh4}r0g3?6=:r79j<4m6:?2b1<4=2wx>oo50;0x97`d2:?01><>:`d8yv4cm3:1>v3=fb8a2>;6no0896s|2c`94?4|5::86>;4=204>d`52z?046279<;4<5:p6ge=838p1>>;:278964?2hl0q~{t:kn1<763<5:826lh4}r0f5?6=:r78<84m6:?14=<4=2wx>ok50;0x96612:?01>v3<078a2>;5800896s|2cd94?4|5::<6>;4=20a>d`52z?042279>7:278964d2hl0q~{t:0o1<763<5::26lh4}r0`6?6=:r79i:4m6:?2ad<4=2wx>4h50;0x97c?2:?01>>l:`d8yv4d;3:1>v3=e98a2>;6mk0896s|2`294?4|5;o26>;4=22g>d`52z?1a<27:in4<5:p6d7=838p1?kn:278966b2hl0q~ee801>{t:h81<763<5::m6lh4}r0`2?6=:r79io4m6:?2a`<4=2wx>l=50;0x97cd2:?01>??:`d8yv4d?3:1>v3=eb8a2>;6mo0896s|2`694?4|5;oo6>;4=232>d`52z?1aa27:j=4<5:p6d3=838p1?kj:27896752hl0q~f0801>{t:h<1<763<5:;86lh4}r0`e?6=:r79ik4m6:?2b7<4=2wx>l950;0x97`72:?01>?;:`d8yv4dj3:1>v3=f18a2>;6n:0896s|2`;94?4|5;l96>;4=236>d`52z?1b727:j84<5:p6dg=838p1?h<:27896702hl0q~f7801>{t:hh1<763<5:;36lh4}r0`b?6=:r79j94m6:?2b2<4=2wx>lm50;0x97`22:?01>?6:`d8yv4c83:1>v3=f48a2>;6n10896s|2`f94?4|5;l=6>;4=23b>d`52z?1b327:j44<5:p6dc=838p1?h8:278967e2hl0q~0i:63>f`801>{t:hl1<763<5:;h6lh4}r0g7?6=:r79j54m6:?2bg<4=2wx>o>50;0x97`>2:?01>?k:`d8yv4c<3:1>v3=f88a2>;6nj0896s|2c394?4|5;lj6>;4=23f>d`52z?1bd27:ji4<5:p6g4=838p1?hm:278967a2hl0q~fd801>{t:k>1<763<5:8;6lh4}r0go;50;0x97`b2:?01><=:`d8yv4c13:1>v3=fd8a2>;5880896s|2c494?4|5;lm6>;4=200>d`52z?1bc279>?:27896432hl0q~{t:k21<763<5:8>6lh4}r0gg?6=:r78<<4m6:?141<4=2wx>o750;0x96652:?01><9:`d8yv4cl3:1>v3<038a2>;58<0896s|33f94?42s48;h7=;c:?166<4>7535a8972a2:>h70<:4;17g>;598088n5221d971e<5;;86>:l;<021?53k279=:4<4b9>64g=;=i01??l:26`?845839?o63=1d800f=::;81?9m4=306>62d3489;7=;c:?16<<4?l535a897572:>h70<=d;17g>;5;;088n52226971e<5;9=6>:l;<00f?53k279?54<4b9>66b=;=i01?=i:26`?843939?o63=47800f=::=91?9m4=36;>62d348?m7=;c:?10f<49k535a897362:>h70==d;ce?xu5080;6?u221f972=:;9k1855rs20f>5<5=r79=54<4b9>612=;=i01?62d348:87=;c:?15<<4<8535a8977e2:>h70<>d;17g>;59o088n52233971e<5;8?6>:l;<01;4<4b9>67g=;=i01?62d348897=;c:?17d<4>k535a8975d2:>h70<;0;17g>;5<;088n52257971e<5;><6>:l;<07=?53k2798i4<4b9>61d=;=i01?;?:26`?842:39?o63<2d8bb>{t:1i1<761<5::j6974}r0:3?6=:r79>>4<7:?04g<302wx>;h50;0x97232:=01>?9:5;8yv42i3:1>v3=2d803>;48k0?56s|27794?4|5;926>94=235>1>52z?10c<4?278><4;8:p627=838p1?;<:25896462=30q~<82;296~;5==08;63<2687<>{t:>91<761<5:8<6974}r042?6=:r79=<4<7:?06<<302wx>::50;0x976a2:=01><7:5:8yv40=3:1>v3=11803>;4:10?56s|26594?4|5;;96>94=20:>1?52z?156<4?278>l4;8:p62?=838p1??;:258964f2=30q~<8a;296~;59<08;63<2c87<>{t:>n1<761<5:8h6974}r04f?6=:r79=;4<7:?06g<312wx>:m50;0x97702:=01>v3=1`803>;4800?46s|26d94?4|5;;i6>94=22:>1?52z?15f<4?278{t:191<761<5::o6964}r0;0?6=:r79=k4<7:?04a<312wx>5850;0x97462:=01>>j:5;8yv4??3:1>v3=23803>;48o0?46s|29:94?4|5;8?6>94=22e>1?52z?160<4?278==4;8:p6=b=838p1?<7:25896762=30q~<7a;296~;5:?08;63<1187=>{t:1h1<761<5:;:6964}r0;a?6=:r79>44<7:?057<302wx>5h50;0x974f2:=01>?=:5;8yv4>83:1>v3=2c803>;49:0?46s|28394?4|5;8h6>94=230>1?52z?175<4?278=84;8:p6<4=838p1?{t:0?1<761<5:;>6974}r0:2?6=:r79??4<7:?052<302wx>4650;0x97542:=01>?8:5;8yv4>13:1>v3=35803>;4910?46s|28a94?4|5;9<6>94=23:>1?52z?170<4?278=54;9:p62=20q~<:7;296~;5;k08;63<1c87<>{t:61<5:;j6964}r062?6=:r79?l4<7:?05d<312wx>8l50;0x975b2:=01>?l:5;8yv4203:1>v3=3b803>;49k0?56s|24;94?4|5;9o6>94=23`>1>o7>52z?17c<4?278=i4;8:p60b=838p1?:?:258967c2=30q~<:e;296~;5<808;63<1d87<>{t:61<5:;n6974}r056?6=:r798;4<7:?065<302wx>;>50;0x97242:=01>?i:5:8yv4193:1>v3=44803>;49o0?56s|27194?4|5;><6>94=203>1?52z?10=<4?278>?4;8:p630=838p1?:6:25896452=30q~<97;296~;5{t:?k1<761<5:8?6974}r05;750;0x972d2:=01><;:5:8yv41j3:1>v3=4d803>;4:<0?46s|27a94?4|5;?;6>94=206>1?52z?114<4?278>;4;8:p63c=838p1?;=:25896412=30q~h5221696`=::991>h5221096`=::9;1>h5221296`=:9oo1>h521gf96`=:9oi1>h521g`96`=:9ok1>h521g;96`=:9o21>h521g596`=:9o<1>h521g796`=:9o91>h521g096`=:9o;1>h521g296`=:9ll1>h521dg96`=:9ln1>h521da96`=:9lh1>h521dc96`=::9h1>h5221c96`=::931>h5221:96`=::9=1>h5221496`=:9ol1>h521g696`=:9l31>h521d:96`=:9;o1mk5rs0:;>5<4s4;3:7=:;<3;3?5234;357oi;|q2<3<72?q6=585b79>5=3=<>16=5j5499>77b=<>16??k5489>5=c=<11v<6?:181870n39>70?71;ce?xu0<3:1>v3>0987e>;6800?i6s|7683>7}:l=0?m63k5;6f?xu61h0;6?u218;90<=:90=18h5rs06e>5<5s4;?i7:6;<37g?2b3ty::94?:3y>57e=io16=>h54`9~w4262909w0?;1;ce?87383>37p}>4383>7}:9=81mk5215190<=z{89o6=4={<30`?ga34;?<7:8;|q27c<72;q6=9>5489>56`=io1v<:<:18187383>j70?;3;6f?xu6k:0;6?u219f9ec=:9131855rs0:1>5<5s4;3>7oi;<3;5?2?3ty:4>4?:3y>5=5=io16=5:5489~w41b2908w0?71;6:?87?13>j70?8d;ce?xu60=0;6?u219390d=:91>18h5rs05a>5<5s4;5=g=io16=5m54`9~w4>e2909w0?7b;ce?87?k3>27p}>8b83>7}:9131845219a90`=z{89n6=4={<30b?2>34;8i7:j;|q23f<72;q6=:j5489>52e=o4;339'711=111v9=6:181[241279n7:<9:&002<>12wx8?650;0xZ14?348i69<7;%173?g53ty8m94?:3y]7=6<5;h1?5>4$264>307>52z\03c=::k08;k5+355934=z{:k:6=4={_14a>;5j39{t;h:1<7i0(>:8:648yv5>m3:1>vP<7c9>6g<4?k1/?995769~w6?d2909wS=89:?1f?5012.88:488:p797;<0a>61?3-9?;796;|q0=d<72;qU?:94=3`9721<,:><6:o4}r1:=?6=:rT8;;522c8033=#;==1;o5rs2;;>5<5sW9<963=b;141>"4<>07}Y;>901?l53618 6202>o0q~=65;296~X4?;16>o4<739'711=?o1v>7;:181[509279n7=81:&0029?;%173?>63ty85<4?:3y]73c<5;h1?;k4$264>=452z\02a=::k08:i5+3559<6=z{:2m6=4={_15g>;5j39=o6*<468;0>{t;1o1<7:8:948yv5?k3:1>vP<689>6g<4>01/?995869~w6>e2909wS=98:?1f?5102.88:478:p7=g=838pR>88;<0a>6003-9?;766;|q0<<<72;qU?;84=3`9730<,:><65o4}r1;5<5sW93:63=b;1;2>"4<>03o6s|3`c94?4|V:2>707}Y;1>01?l53968 62021o0q~=n8;296~X40:16>o4<829'711=0o1v>o8:181[5?:279n7=72:&002<>82wx?l850;0xZ6>6348i6>6>;%173??63ty8m84?:3y]72g<5;h1?:o4$264><452z\02c=::k08:k5+3559=6=z{:396=4={_150>;5j39=86*<468:0>{t;1=1<7:8:848yv2483:1>vP;319>6g<3;91/?995969~w6cc2909wS=l9:?1f?5d12.88:46a:p7`d=838pR>m7;<0a>6e?3-9?;77m;|q0ad<72;qU?n94=3`97f1<,:><64m4}r1f=?6=:rT8o;522c80g3=#;==15i5rs2g;>5<5sW9h963=b;1`1>"4<>02i6s|3d594?4|V:i?707}Y;j801?l53b08 6202h:0q~=j4;296~X4k816>o4k<:181[5d8279n7=l0:&002li;%173?g33ty8i<4?:3y]7gc<5;h1?ok4$264>d352z\0fa=::k08ni5+3559e3=z{:nm6=4={_1ag>;5j39io6*<468b3>{t;mo1<7:8:`;8yv5ck3:1>vP6g<4j01/?995a`9~w6bf2909wS=m7:?1f?5e?2.88:4nb:p7a?=838pR>l9;<0a>6d13-9?;7ol;|q0`=<72;qU?o;4=3`97g3<,:><68m4}r1g3?6=:rT8n9522c80f1=#;==19i5rs2f5>5<5sW9i?63=b;1a7>"4<>0>i6s|3e794?4|V:h9707}Y;k;01?l53c38 6202?:0q~=k3;296~X4j916>o481v>j=:181[5fn279n7=nf:&002<1:2wx?i?50;0xZ6gb348i6>oj;%173?043ty8j94?:3y]7f`<5;h1?nh4$264>3252z\0g`=::k08oh5+355920=z{:l96=4={_1``>;5j39hh6*<46853>{t;o;1<7:8:7;8yv5bn3:1>vP6g<4kh1/?9956`9~w6cb2909wS=l3:?1f?5d;2.88:49b:p7`0=838pR>l7;<0a>6d?3-9?;78l;|q0`g<72;qU?lj4=3`97db<,:><6;j4}r1g4?6=:rT8mn522c80ef=#;==1:h5rs2d`>5<5sW9mo63=b;1eg>"4<>0=j6s|34:94?4|V:?3707}Y;o<01?l53g48 6202>80q~:>5;296~X39<16>o4;149'711=?<1vqcm50;0xL62?3tdh8<4?:3yK71>7>52zJ00==zfj>86=4={I17<>{ik=>1<73:1>vF<499~jf202909wE=;8:mg1>=838pD>:7;|l`0<<72;qC?964}oa7e?6=:rB8855rnb6a>5<5sA9?46sac5a94?4|@:>37p`l4e83>7}O;=20qcm;e;296~N4<11vbn:i:181M5302weo8>50;0xL62?3tdh9<4?:3yK71>>7>52zJ00==zfj?86=4={I17<>{ik<>1<73:1>vF<499~jf302909wE=;8:mg0>=838pD>:7;|l`1<<72;qC?964}oa6e?6=:rB8855rnb7a>5<5sA9?46sac4a94?4|@:>37p`l5e83>7}O;=20qcm:e;296~N4<11vbn;i:181M5302weo;>50;0xL62?3tdh:<4?:3yK71>7>52zJ00==zfj<86=4={I17<>{ik?>1<7<0;6?uG35:8yke1>3:1>vF<499~jf002909wE=;8:mg3>=838pD>:7;|l`2<<72;qC?964}oa5e?6=:rB8855rnb4a>5<5sA9?46sac7a94?4|@:>37p`l6e83>7}O;=20qcm9e;296~N4<11vbn8i:181M5302weo:>50;0xL62?3tdh;<4?:3yK71>7>52zJ00==zfj=86=4={I17<>{ik>>1<73:1>vF<499~jf102909wE=;8:mg2>=838pD>:7;|l`3<<72;qC?964}oa4e?6=:rB8855rnb5a>5<5sA9?46sac6a94?4|@:>37p`l7e83>7}O;=20qcm8e;296~N4<11vbn9i:181M5302weo5>50;0xL62?3tdh4<4?:3yK71>7>52zJ00==zfj286=4={I17<>{ik1>1<73:1>vF<499~jf>02909wE=;8:mg=>=838pD>:7;|l`<<<72;qC?964}oa;e?6=:rB8855rnb:a>5<5sA9?46sac9a94?4|@:>37p`l8e83>7}O;=20qcm7e;296~N4<11vbll9:182M5302wen=950;3xL62?3tdi<54?:0yK71>51zJ00==zfk:j6=4>{I17<>{ij9h1<7?tH26;?xhe8j0;6:7;|la55<728qC?964}o`25?6=9rB8855rnc31>5<6sA9?46sab0194?7|@:>37p`m1583>4}O;=20qcl>5;295~N4<11vbo?9:182M5302wen<950;3xL62?3tdi=54?:0yK71>51zJ00==zfk;j6=4>{I17<>{ij8h1<7?tH26;?xhe9j0;6:7;|la65<728qC?964}o`15?6=9rB8855rnc01>5<6sA9?46sab3194?7|@:>37p`m2583>4}O;=20qcl=5;295~N4<11vbo<9:182M5302wen?950;3xL62?3tdi>54?:0yK71>51zJ00==zfk8j6=4>{I17<>{ij;h1<7?tH26;?xhe:j0;6:7;|la75<728qC?964}o`05?6=9rB8855rnc11>5<6sA9?46sab2194?7|@:>37p`m3583>4}O;=20qcl<5;295~N4<11vbo=9:182M5302wen>950;3xL62?3tdi?54?:0yK71>51zJ00==zfk9j6=4>{I17<>{ij:h1<7?tH26;?xhe;j0;6:7;|la05<728qC?964}o`75?6=9rB8855rnc61>5<6sA9?46sab5194?7|@:>37p`m4583>4}O;=20qcl;5;295~N4<11vbo:9:182M5302wen9950;3xL62?3tdi854?:0yK71>51zJ00==zfk>j6=4>{I17<>{ij=h1<7?tH26;?xhe:7;|la15<728qC?964}o`65?6=9rB8855rnc71>5<6sA9?46sab4194?7|@:>37p`m5583>4}O;=20qcl:5;295~N4<11vbo;9:182M5302wen8950;3xL62?3tdi954?:0yK71>57>51zJ00==zfk?j6=4>{I17<>{ij:7;|la25<728qC?964}o`55?6=9rB8855rnc41>5<6sA9?46sab7194?7|@:>37p`m6583>4}O;=20qcl95;295~N4<11vbo89:182M5302wen;950;3xL62?3tdi:54?:0yK71>51zJ00==zfk{I17<>{ij?h1<7?tH26;?xhe>j0;6:7;|la35<728qC?964}o`45?6=9rB8855rnc51>5<6sA9?46sab6194?7|@:>37p`m7583>4}O;=20qcl85;295~N4<11vbo99:182M5302wen:950;3xL62?3tdi;54?:0yK71>51zJ00==zfk=j6=4>{I17<>{ij>h1<7?tH26;?xhe?j0;6:7;|la<5<728qC?964}o`;5?6=9rB8855rnc:1>5<6sA9?46sab9194?7|@:>37p`m8583>4}O;=20qcl75;295~N4<11vbo69:182M5302wen5950;3xL62?3tdi454?:0yK71>51zJ00==zfk2j6=4>{I17<>{ij1h1<7?tH26;?xhe0j0;6b290:wE=;8:mf=`=83;pD>:7;|la=5<728qC?964}o`:5?6=9rB8855rnc;1>5<6sA9?46sab8194?7|@:>37p`m9583>4}O;=20qcl65;295~N4<11vbo79:182M5302wen4950;3xL62?3tdi554?:0yK71>51zJ00==zfk3j6=4>{I17<>{ij0h1<7?tH26;?xhe1j0;6l3:1=vF<499~jg?b290:wE=;8:mf<`=83;pD>:7;|lae5<728qC?964}o`b5?6=9rB8855rncc1>5<6sA9?46sab`194?7|@:>37p`ma583>4}O;=20qcln5;295~N4<11vboo9:182M5302wenl950;3xL62?3tdim54?:0yK71>51zJ00==zfkkj6=4>{I17<>{ijhh1<7?tH26;?xheij0;6:7;|laf5<728qC?964}o`a5?6=9rB8855rnc`1>5<6sA9?46sabc194?7|@:>37p`mb583>4}O;=20qclm5;295~N4<11vbol9:182M5302weno950;3xL62?3tdin54?:0yK71>51zJ00==zfkhj6=4>{I17<>{ijkh1<7?tH26;?xhejj0;6:7;|lag5<728qC?964}o``5?6=9rB8855rnca1>5<6sA9?46sabb194?7|@:>37p`mc583>4}O;=20qcll5;295~N4<11vbom9:182M5302wenn950;3xL62?3tdio54?:0yK71>51zJ00==zfkij6=4>{I17<>{ijjh1<7?tH26;?xhekj0;6:7;|la`5<728qC?964}o`g5?6=9rB8855rncf1>5<6sA9?46sabe194?7|@:>37p`md583>4}O;=20qclk5;295~N4<11vboj9:182M5302weni950;3xL62?3tdih54?:0yK71>51zJ00==zfknj6=4>{I17<>{ijmh1<7?tH26;?xhelj0;6:7;|laa5<728qC?964}o`f5?6=9rB8855rncg1>5<6sA9?46sabd194?7|@:>37p`me583>4}O;=20qclj5;295~N4<11vbok9:182M5302wenh950;3xL62?3tdii54?:0yK71>51zJ00==zfkoj6=4>{I17<>{ijlh1<7?tH26;?xhemj0;6:7;|lab5<728qC?964}o`e5?6=9rB8855rncd1>5<6sA9?46sabg194?7|@:>37p`mf583>4}O;=20qcli5;295~N4<11vboh9:182M5302wenk950;3xL62?3tdij54?:0yK71>51zJ00==zfklj6=4>{I17<>{ijoh1<7?tH26;?xhenj0;6:7;|l`45<728qC?964}oa35?6=9rB8855rnb21>5<6sA9?46sac1194?7|@:>37p`l0583>4}O;=20qcm?5;295~N4<11vbn>9:182M5302weo=950;3xL62?3tdh<54?:0yK71>51zJ00==zfj:j6=4>{I17<>{ik9h1<7?tH26;?xhd8j0;6:7;|l`55<728qC?964}oa25?6=9rB8855rnb31>5<6sA9?46sac0194?7|@:>37p`l1583>4}O;=20qcm>5;295~N4<11vbn?9:182M5302weo<950;3xL62?3tdh=54?:0yK71>51zJ00==zfj;j6=4>{I17<>{ik8h1<7?tH26;?xhd9j0;6:7;|l`65<728qC?964}oa15?6=9rB8855rnb01>5<6sA9?46sac3194?7|@:>37p`l2583>4}O;=20qcm=5;295~N4<11vbn<9:182M5302weo?950;3xL62?3tdh>54?:0yK71>51zJ00==zfj8j6=4>{I17<>{ik;h1<7?tH26;?xhd:j0;6:7;|l`75<728qC?964}oa05?6=9rB8855rnb11>5<6sA9?46sac2194?7|@:>37p`l3583>4}O;=20qcm<5;295~N4<11vbn=9:182M5302weo>950;3xL62?3tdh?54?:0yK71>51zJ00==zfj9j6=4>{I17<>{ik:h1<7?tH26;?xhd;j0;6111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), .LO(\BU2/U0/grf.rf/gl0.rd/rpntr/N11 ) ); LUT3_L #( .INIT ( 8'h7F )) \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<3>111 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), .LO(\BU2/U0/grf.rf/gl0.wr/wpntr/N11 ) ); LUT2_L #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_SW0 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), .LO(\BU2/N16 ) ); LUT2_L #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_SW0 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), .LO(\BU2/N14 ) ); INV \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<0>11_INV_0 ( .I(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count ) ); INV \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<0>11_INV_0 ( .I(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count ) ); LUT2 #( .INIT ( 4'h2 )) \BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_1 ( .I0(wr_en), .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), .O(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ) ); LUT4 #( .INIT ( 16'h2333 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_1 ( .I0(rd_en), .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), .I3(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ) ); LUT4 #( .INIT ( 16'h6AAA )) \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<3>12 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count3 ) ); LUT4 #( .INIT ( 16'h6AAA )) \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<3>12 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count3 ) ); LUT3 #( .INIT ( 8'h08 )) \BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1 ( .I0(wr_en), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ) ); LUT3 #( .INIT ( 8'h10 )) \BU2/U0/grf.rf/mem/gdm.dm/write_ctrl ( .I0(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), .I2(wr_en), .O(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ) ); LUT2 #( .INIT ( 4'h9 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<5> ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [5]) ); LUT4 #( .INIT ( 16'h9000 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i78 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]), .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i62_392 ), .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26_387 ), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ) ); LUT4 #( .INIT ( 16'h9000 )) \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [0]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .I2(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000156_391 ), .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_not0001 ), .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158_380 ) ); LUT2 #( .INIT ( 4'h9 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<4> ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]) ); LUT2 #( .INIT ( 4'h9 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<3> ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [3]) ); LUT2 #( .INIT ( 4'h9 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<2> ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [2]) ); LUT2 #( .INIT ( 4'h9 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut<1> ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [1]) ); LUT4 #( .INIT ( 16'h5450 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000105 ( .I0(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_not0001 ), .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000079_390 ), .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ) ); LUT4 #( .INIT ( 16'h9009 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000063 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000063_389 ) ); LUT4 #( .INIT ( 16'h9009 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000027 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux000027_388 ) ); LUT4 #( .INIT ( 16'h8421 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), .I3(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/c2/dout_i26_387 ) ); LUT4 #( .INIT ( 16'h5450 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000107 ( .I0(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026_383 ), .I2(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/comp2 ), .I3(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000069_386 ), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000 ) ); LUT4 #( .INIT ( 16'h9009 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000067 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]), .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000067_384 ) ); LUT4 #( .INIT ( 16'h9009 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]), .I3(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux000026_383 ) ); LUT2 #( .INIT ( 4'h2 )) \BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1 ( .I0(wr_en), .I1(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), .O(\BU2/U0/grf.rf/gl0.wr/wpntr/count_not0001 ) ); LUT4 #( .INIT ( 16'hECA0 )) \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000183 ( .I0(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115_379 ), .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026_377 ), .I2(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000158_380 ), .I3(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000063_381 ), .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000 ) ); LUT4 #( .INIT ( 16'h9009 )) \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), .I3(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]), .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000115_379 ) ); LUT4 #( .INIT ( 16'h8421 )) \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000062 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [2]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000062_378 ) ); LUT4 #( .INIT ( 16'h8241 )) \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [1]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .O(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or000026_377 ) ); LUT4 #( .INIT ( 16'h2333 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21 ( .I0(rd_en), .I1(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), .I3(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), .O(\BU2/U0/grf.rf/gl0.rd/rpntr/count_not0001 ) ); LUT3 #( .INIT ( 8'hA6 )) \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<4>11 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/N11 ), .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count4 ) ); LUT3 #( .INIT ( 8'hA6 )) \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<4>11 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/N11 ), .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count4 ) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX11 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N5 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N7 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [0]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1011 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N45 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N47 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [10]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N9 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N11 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [1]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX11111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N49 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N51 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [11]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1211 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N53 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N55 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [12]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1311 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N57 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N59 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [13]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1411 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N61 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N63 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [14]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1511 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N65 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N67 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [15]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1611 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N69 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N71 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [16]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1711 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N73 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N75 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [17]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1811 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N77 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N79 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [18]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX1911 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N81 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N83 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [19]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2011 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N85 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N87 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [20]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N13 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N15 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [2]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX21111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N89 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N91 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [21]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2211 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N93 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N95 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [22]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2311 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N97 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N99 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [23]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2411 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N101 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N103 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [24]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2511 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N105 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N107 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [25]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2611 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N109 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N111 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [26]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2711 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N113 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N115 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [27]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2811 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N117 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N119 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [28]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX2911 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N121 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N123 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [29]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3011 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N125 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N127 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [30]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N17 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N19 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [3]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX31111 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N129 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N131 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [31]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3211 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N133 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N135 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [32]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3311 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N137 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N139 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [33]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3411 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N141 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N143 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [34]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX3511 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N145 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N147 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [35]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX411 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N21 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N23 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [4]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX511 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N25 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N27 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [5]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX611 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N29 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N31 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [6]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX711 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N33 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N35 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [7]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX811 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N37 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N39 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [8]) ); LUT3 #( .INIT ( 8'hE4 )) \BU2/U0/grf.rf/mem/gdm.dm/inst_LPM_MUX911 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/mem/gdm.dm/N41 ), .I2(\BU2/U0/grf.rf/mem/gdm.dm/N43 ), .O(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [9]) ); LUT4 #( .INIT ( 16'h6996 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [0]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), .I3(\BU2/N16 ), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_110 ) ); LUT4 #( .INIT ( 16'h6996 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [0]), .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), .I3(\BU2/N14 ), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_120 ) ); LUT3 #( .INIT ( 8'hA2 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_REGOUT_EN11 ( .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), .I2(rd_en), .O(\BU2/U0/grf.rf/mem/dout_i_not0001 ) ); LUT2 #( .INIT ( 4'hD )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_not00011 ( .I0(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ), .I1(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ) ); LUT4 #( .INIT ( 16'h8E8A )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux00001 ( .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb_176 ), .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), .I3(rd_en), .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ) ); LUT4 #( .INIT ( 16'h6996 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00021 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), .I3(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0002 ) ); LUT4 #( .INIT ( 16'h6996 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00021 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]), .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), .I3(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0002 ) ); LUT4 #( .INIT ( 16'h40FF )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001<0>1 ( .I0(rd_en), .I1(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), .I3(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ), .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [0]) ); LUT3 #( .INIT ( 8'h6A )) \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<2>11 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .I2(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count2 ) ); LUT3 #( .INIT ( 8'h6A )) \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<2>11 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), .I2(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count2 ) ); LUT3 #( .INIT ( 8'h96 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00011 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), .I2(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0001 ) ); LUT3 #( .INIT ( 8'h96 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00011 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), .I2(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0001 ) ); LUT3 #( .INIT ( 8'hF2 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001<1>1 ( .I0(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]), .I1(rd_en), .I2(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]), .O(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [1]) ); LUT3 #( .INIT ( 8'h08 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux00031 ( .I0(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [4]), .I1(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [5]), .I2(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux0003 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0000_Result1 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0000 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0001_Result1 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0001 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0002_Result1 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0002 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_rd_pntr_gc_xor0003_Result1 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0003 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0000_Result1 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0000 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0001_Result1 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0001 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0002_Result1 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0002 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/Mxor_wr_pntr_gc_xor0003_Result1 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0003 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count_xor<1>11 ( .I0(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .I1(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), .O(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count1 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count_xor<1>11 ( .I0(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), .I1(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), .O(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count1 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor00001 ( .I0(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]), .I1(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), .O(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0000 ) ); LUT2 #( .INIT ( 4'h6 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor00001 ( .I0(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]), .I1(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), .O(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0000 ) ); LUT2 #( .INIT ( 4'h4 )) \BU2/U0/grf.rf/rstblk/rd_rst_comb1 ( .I0(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2_90 ), .I1(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ), .O(\BU2/U0/grf.rf/rstblk/rd_rst_comb ) ); LUT2 #( .INIT ( 4'h4 )) \BU2/U0/grf.rf/rstblk/wr_rst_comb1 ( .I0(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2_92 ), .I1(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ), .O(\BU2/U0/grf.rf/rstblk/wr_rst_comb ) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ), .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_almost_full_i_mux0000 ), .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), .Q(almost_full) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i ( .C(wr_clk), .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ), .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), .Q(full) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i ( .C(wr_clk), .D(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i_mux0000 ), .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), .Q(\BU2/U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i_370 ) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_0 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [0]), .Q(dout_3[0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_1 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [1]), .Q(dout_3[1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_2 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [2]), .Q(dout_3[2]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_3 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [3]), .Q(dout_3[3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_4 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [4]), .Q(dout_3[4]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_5 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [5]), .Q(dout_3[5]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_6 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [6]), .Q(dout_3[6]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_7 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [7]), .Q(dout_3[7]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_8 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [8]), .Q(dout_3[8]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_9 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [9]), .Q(dout_3[9]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_10 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [10]), .Q(dout_3[10]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_11 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [11]), .Q(dout_3[11]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_12 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [12]), .Q(dout_3[12]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_13 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [13]), .Q(dout_3[13]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_14 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [14]), .Q(dout_3[14]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_15 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [15]), .Q(dout_3[15]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_16 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [16]), .Q(dout_3[16]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_17 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [17]), .Q(dout_3[17]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_18 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [18]), .Q(dout_3[18]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_19 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [19]), .Q(dout_3[19]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_20 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [20]), .Q(dout_3[20]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_21 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [21]), .Q(dout_3[21]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_22 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [22]), .Q(dout_3[22]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_23 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [23]), .Q(dout_3[23]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_24 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [24]), .Q(dout_3[24]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_25 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [25]), .Q(dout_3[25]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_26 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [26]), .Q(dout_3[26]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_27 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [27]), .Q(dout_3[27]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_28 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [28]), .Q(dout_3[28]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_29 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [29]), .Q(dout_3[29]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_30 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [30]), .Q(dout_3[30]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_31 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [31]), .Q(dout_3[31]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_32 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [32]), .Q(dout_3[32]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_33 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [33]), .Q(dout_3[33]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_34 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [34]), .Q(dout_3[34]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/dout_i_35 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/mem/dout_i_not0001 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [35]), .Q(dout_3[35]) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM72 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[35]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM72_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N147 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM71 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[35]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM71_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N145 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM70 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[34]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM70_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N143 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM69 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[34]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM69_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N141 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM67 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[33]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM67_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N137 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM66 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[32]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM66_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N135 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM68 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[33]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM68_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N139 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM65 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[32]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM65_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N133 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM64 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[31]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM64_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N131 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM63 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[31]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM63_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N129 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM62 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[30]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM62_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N127 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM60 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[29]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM60_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N123 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM59 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[29]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM59_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N121 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM61 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[30]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM61_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N125 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM58 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[28]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM58_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N119 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM57 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[28]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM57_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N117 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM56 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[27]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM56_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N115 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM55 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[27]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM55_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N113 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM53 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[26]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM53_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N109 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM52 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[25]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM52_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N107 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM54 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[26]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM54_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N111 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM50 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[24]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM50_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N103 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM49 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[24]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM49_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N101 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM51 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[25]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM51_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N105 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM47 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[23]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM47_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N97 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM46 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[22]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM46_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N95 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM48 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[23]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM48_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N99 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM45 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[22]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM45_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N93 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM44 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[21]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM44_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N91 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM43 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[21]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM43_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N89 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM42 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[20]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM42_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N87 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM40 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[19]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM40_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N83 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM39 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[19]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM39_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N81 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM41 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[20]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM41_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N85 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM38 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[18]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM38_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N79 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM37 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[18]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM37_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N77 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM36 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[17]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM36_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N75 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM35 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[17]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM35_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N73 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM33 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[16]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM33_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N69 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM32 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[15]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM32_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N67 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM34 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[16]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM34_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N71 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM31 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[15]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM31_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N65 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM30 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[14]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM30_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N63 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM29 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[14]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM29_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N61 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM28 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[13]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM28_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N59 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM26 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[12]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM26_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N55 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM25 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[12]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM25_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N53 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM27 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[13]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM27_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N57 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM24 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[11]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM24_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N51 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM23 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[11]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM23_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N49 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM22 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[10]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM22_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N47 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM21 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[10]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM21_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N45 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM19 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[9]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM19_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N41 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM18 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[8]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM18_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N39 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM20 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[9]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM20_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N43 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM17 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[8]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM17_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N37 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM16 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[7]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM16_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N35 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM15 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[7]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM15_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N33 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM14 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[6]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM14_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N31 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM12 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[5]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM12_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N27 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM11 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[5]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM11_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N25 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM13 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[6]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM13_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N29 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM10 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[4]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM10_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N23 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM9 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[4]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM9_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N21 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM8 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[3]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM8_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N19 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM7 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[3]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM7_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N17 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM5 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[2]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM5_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N13 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM4 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[1]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM4_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N11 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM6 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[2]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM6_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N15 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM3 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[1]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM3_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N9 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM2 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[0]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl1_296 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM2_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N7 ) ); RAM16X1D \BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM1 ( .A0(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]), .A1(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]), .A2(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]), .A3(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]), .D(din_2[0]), .DPRA0(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]), .DPRA1(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]), .DPRA2(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]), .DPRA3(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]), .WCLK(wr_clk), .WE(\BU2/U0/grf.rf/mem/gdm.dm/write_ctrl_294 ), .SPO(\NLW_BU2/U0/grf.rf/mem/gdm.dm/Mram_RAM1_SPO_UNCONNECTED ), .DPO(\BU2/U0/grf.rf/mem/gdm.dm/N5 ) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_35 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [35]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [35]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_34 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [34]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [34]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_33 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [33]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [33]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_32 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [32]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [32]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_31 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [31]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [31]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_30 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [30]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [30]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_29 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [29]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [29]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_28 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [28]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [28]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_27 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [27]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [27]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_26 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [26]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [26]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_25 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [25]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [25]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_24 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [24]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [24]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_23 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [23]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [23]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_22 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [22]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [22]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_21 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [21]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [21]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_20 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [20]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [20]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_19 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [19]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [19]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_18 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [18]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [18]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_17 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [17]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [17]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_16 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [16]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [16]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_15 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [15]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [15]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_14 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [14]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [14]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_13 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [13]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [13]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_12 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [12]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [12]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_11 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [11]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [11]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_10 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [10]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [10]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_9 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [9]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [9]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_8 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [8]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [8]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_7 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [7]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [7]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_6 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [6]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [6]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_5 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [5]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [5]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_4 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [4]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [4]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_3 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [3]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_2 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [2]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [2]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_1 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [1]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/mem/gdm.dm/dout_i_0 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]), .D(\BU2/U0/grf.rf/mem/gdm.dm/_varindex0000 [0]), .Q(\BU2/U0/grf.rf/mem/gdm.dm/dout_i [0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_0 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_1 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_2 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [2]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_3 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d3_4 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_4 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [4]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_3 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [3]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_1 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_0 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]), .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d2_2 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [2]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_4 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [4]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_3 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [3]) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_1 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]), .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_0 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_d1_2 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d1 [2]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_2 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count2 ), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [2]) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_0 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count ), .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [0]) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_1 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count1 ), .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_3 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count3 ), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/wpntr/count_4 ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/Mcount_count4 ), .Q(\BU2/U0/grf.rf/gl0.wr/wpntr/count [4]) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i ( .C(wr_clk), .CE(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_not0001 ), .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/prog_full_i_mux0003 ), .PRE(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), .Q(prog_full) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_4 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [4]), .Q(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_5 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [5]), .Q(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad [5]) ); MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<0> ( .CI(\BU2/N1 ), .DI(\BU2/U0/grf.rf/gl0.wr/ram_wr_en_i1_197 ), .S(\BU2/rd_data_count [0]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [0]) ); MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<1> ( .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [0]), .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [0]), .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [1]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [1]) ); MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<2> ( .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [1]), .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [1]), .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [2]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [2]) ); MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<3> ( .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [2]), .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [2]), .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [3]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]) ); MUXCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy<4> ( .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]), .DI(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d2 [3]), .S(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [4]) ); XORCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_xor<4> ( .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [3]), .LI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [4]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [4]) ); XORCY \BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_xor<5> ( .CI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_cy [4]), .LI(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/Madd_diff_pntr_pad_add0000_lut [5]), .O(\BU2/U0/grf.rf/gl0.wr/gwas.gpf.wrpf/diff_pntr_pad_add0000 [5]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_0 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [1]), .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_1 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state_mux0001 [0]), .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/curr_fwft_state [1]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i ( .C(rd_clk), .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .Q(empty) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb ( .C(rd_clk), .D(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i_mux0000 ), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .Q(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb_176 ) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_0 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_1 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_2 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [2]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_3 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_d1_4 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_2 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count2 ), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [2]) ); FDPE #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_0 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count ), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [0]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_1 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count1 ), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [1]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_3 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count3 ), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [3]) ); FDCE #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gl0.rd/rpntr/count_4 ( .C(rd_clk), .CE(\BU2/U0/grf.rf/gl0.rd/gr1.rfwft/Mmux_RAM_RD_EN_FWFT21_160 ), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/Mcount_count4 ), .Q(\BU2/U0/grf.rf/gl0.rd/rpntr/count [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_0 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0003 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_1 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0002 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_2 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0001 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_3 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_xor0000 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_4 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gl0.wr/wpntr/count_d3 [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_0 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0003 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_1 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0002 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_2 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0001 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_3 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_xor0000 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_4 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gl0.rd/rpntr/count_d1 [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_0 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [0]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_1 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [1]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_2 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [2]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_3 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [3]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_4 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_0 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [0]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_1 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [1]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_2 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [2]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_3 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [3]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_4 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_0 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [0]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_1 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [1]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_2 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [2]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_3 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [3]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1_4 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_0 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [0]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_1 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [1]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_2 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [2]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_3 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [3]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1_4 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_0 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0003_120 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_1 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0002 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_2 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0001 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_3 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_xor0000 ), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin_4 ( .C(rd_clk), .CLR(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]), .D(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_gc_asreg_d1 [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/wr_pntr_bin [4]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_0 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0003_110 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [0]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_1 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0002 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [1]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_2 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0001 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [2]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_3 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_xor0000 ), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [3]) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin_4 ( .C(wr_clk), .CLR(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]), .D(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_gc_asreg_d1 [4]), .Q(\BU2/U0/grf.rf/gcx.clkx/rd_pntr_bin [4]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/wr_rst_reg_0 ( .C(wr_clk), .D(\BU2/rd_data_count [0]), .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_comb ), .Q(\BU2/U0/grf.rf/rstblk/wr_rst_reg [0]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/wr_rst_reg_1 ( .C(wr_clk), .D(\BU2/rd_data_count [0]), .PRE(\BU2/U0/grf.rf/rstblk/wr_rst_comb ), .Q(\BU2/U0/grf.rf/rstblk/wr_rst_reg [1]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/rd_rst_reg_0 ( .C(rd_clk), .D(\BU2/rd_data_count [0]), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [0]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/rd_rst_reg_1 ( .C(rd_clk), .D(\BU2/rd_data_count [0]), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [1]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/rd_rst_reg_2 ( .C(rd_clk), .D(\BU2/rd_data_count [0]), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_comb ), .Q(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/rst_d1 ( .C(wr_clk), .D(\BU2/rd_data_count [0]), .PRE(rst), .Q(\BU2/U0/grf.rf/rstblk/rst_d1_93 ) ); FDPE \BU2/U0/grf.rf/rstblk/rd_rst_asreg ( .C(rd_clk), .CE(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ), .D(\BU2/rd_data_count [0]), .PRE(rst), .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ) ); FD #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1 ( .C(wr_clk), .D(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ), .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ) ); FDPE \BU2/U0/grf.rf/rstblk/wr_rst_asreg ( .C(wr_clk), .CE(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ), .D(\BU2/rd_data_count [0]), .PRE(rst), .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_95 ) ); FD #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1 ( .C(rd_clk), .D(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_94 ), .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/rst_d2 ( .C(wr_clk), .D(\BU2/U0/grf.rf/rstblk/rst_d1_93 ), .PRE(rst), .Q(\BU2/U0/grf.rf/rstblk/rst_d2_88 ) ); FD #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2 ( .C(wr_clk), .D(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d1_91 ), .Q(\BU2/U0/grf.rf/rstblk/wr_rst_asreg_d2_92 ) ); FD #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2 ( .C(rd_clk), .D(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d1_89 ), .Q(\BU2/U0/grf.rf/rstblk/rd_rst_asreg_d2_90 ) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/rstblk/rst_d3 ( .C(wr_clk), .D(\BU2/U0/grf.rf/rstblk/rst_d2_88 ), .PRE(rst), .Q(\BU2/U0/grf.rf/rstblk/rst_d3_86 ) ); FDC #( .INIT ( 1'b0 )) \BU2/U0/grf.rf/rstblk/RST_FULL_GEN ( .C(wr_clk), .CLR(rst), .D(\BU2/U0/grf.rf/rstblk/rst_d3_86 ), .Q(\BU2/U0/grf.rf/rstblk/RST_FULL_GEN_87 ) ); FDP #( .INIT ( 1'b1 )) \BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i ( .C(rd_clk), .D(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_or0000 ), .PRE(\BU2/U0/grf.rf/rstblk/rd_rst_reg [2]), .Q(\BU2/U0/grf.rf/gl0.rd/gras.rsts/ram_empty_fb_i_85 ) ); VCC \BU2/XST_VCC ( .P(\BU2/N1 ) ); GND \BU2/XST_GND ( .G(\BU2/rd_data_count [0]) ); // synthesis translate_on endmodule // synthesis translate_off `ifndef GLBL `define GLBL `timescale 1 ps / 1 ps module glbl (); parameter ROC_WIDTH = 100000; parameter TOC_WIDTH = 0; wire GSR; wire GTS; wire GWE; wire PRLD; tri1 p_up_tmp; tri (weak1, strong0) PLL_LOCKG = p_up_tmp; reg GSR_int; reg GTS_int; reg PRLD_int; //-------- JTAG Globals -------------- wire JTAG_TDO_GLBL; wire JTAG_TCK_GLBL; wire JTAG_TDI_GLBL; wire JTAG_TMS_GLBL; wire JTAG_TRST_GLBL; reg JTAG_CAPTURE_GLBL; reg JTAG_RESET_GLBL; reg JTAG_SHIFT_GLBL; reg JTAG_UPDATE_GLBL; reg JTAG_RUNTEST_GLBL; reg JTAG_SEL1_GLBL = 0; reg JTAG_SEL2_GLBL = 0 ; reg JTAG_SEL3_GLBL = 0; reg JTAG_SEL4_GLBL = 0; reg JTAG_USER_TDO1_GLBL = 1'bz; reg JTAG_USER_TDO2_GLBL = 1'bz; reg JTAG_USER_TDO3_GLBL = 1'bz; reg JTAG_USER_TDO4_GLBL = 1'bz; assign (weak1, weak0) GSR = GSR_int; assign (weak1, weak0) GTS = GTS_int; assign (weak1, weak0) PRLD = PRLD_int; initial begin GSR_int = 1'b1; PRLD_int = 1'b1; #(ROC_WIDTH) GSR_int = 1'b0; PRLD_int = 1'b0; end initial begin GTS_int = 1'b1; #(TOC_WIDTH) GTS_int = 1'b0; end endmodule `endif // synthesis translate_on uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.veo000066400000000000000000000054421224274632000222140ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_32x36_2clk YourInstanceName ( .rst(rst), .wr_clk(wr_clk), .rd_clk(rd_clk), .din(din), // Bus [35 : 0] .wr_en(wr_en), .rd_en(rd_en), .dout(dout), // Bus [35 : 0] .full(full), .almost_full(almost_full), .empty(empty), .prog_full(prog_full)); // INST_TAG_END ------ End INSTANTIATION Template --------- uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xco000066400000000000000000000047241224274632000222160ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version 12.2 # Date: Fri Oct 15 07:50:15 2010 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = false SET asysymbol = false SET busformat = BusFormatAngleBracketNotRipped SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false SET simulationfiles = Structural SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 6.1 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=true CSET component_name=fifo_xlnx_32x36_2clk CSET data_count=false CSET data_count_width=5 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET enable_reset_synchronization=true CSET fifo_implementation=Independent_Clocks_Distributed_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=24 CSET full_threshold_negate_value=23 CSET inject_dbit_error=false CSET inject_sbit_error=false CSET input_data_width=36 CSET input_depth=32 CSET output_data_width=36 CSET output_depth=32 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant CSET read_clock_frequency=1 CSET read_data_count=false CSET read_data_count_width=5 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=false CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=false CSET write_data_count_width=5 # END Parameters GENERATE # CRC: 8e84ee7f uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk.xise000066400000000000000000000112031224274632000223630ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_flist.txt000066400000000000000000000005251224274632000234400ustar00rootroot00000000000000# Output products list for _xmsgs/pn_parser.xmsgs fifo_generator_ug175.pdf fifo_xlnx_32x36_2clk.gise fifo_xlnx_32x36_2clk.ngc fifo_xlnx_32x36_2clk.v fifo_xlnx_32x36_2clk.veo fifo_xlnx_32x36_2clk.xco fifo_xlnx_32x36_2clk.xise fifo_xlnx_32x36_2clk_flist.txt fifo_xlnx_32x36_2clk_readme.txt fifo_xlnx_32x36_2clk_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_readme.txt000066400000000000000000000030221224274632000235470ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_32x36_2clk' in directory /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ fifo_generator_ug175.pdf: Please see the core data sheet. fifo_xlnx_32x36_2clk.gise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_32x36_2clk.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_32x36_2clk.v: Unisim Verilog file containing the information required to simulate the module. fifo_xlnx_32x36_2clk.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_32x36_2clk.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_32x36_2clk.xise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_32x36_2clk_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_32x36_2clk_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. fifo_xlnx_32x36_2clk_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_32x36_2clk_xmdf.tcl000066400000000000000000000050631224274632000232220ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_32x36_2clk_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_32x36_2clk_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_32x36_2clk_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_32x36_2clk } # ::fifo_xlnx_32x36_2clk_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_32x36_2clk_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_32x36_2clk_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_32x36_2clk incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.asy000066400000000000000000000021101224274632000222670ustar00rootroot00000000000000Version 4 SymbolType BLOCK TEXT 32 32 LEFT 4 fifo_xlnx_512x36_2clk RECTANGLE Normal 32 32 544 672 LINE Wide 0 80 32 80 PIN 0 80 LEFT 36 PINATTR PinName din[35:0] PINATTR Polarity IN LINE Normal 0 144 32 144 PIN 0 144 LEFT 36 PINATTR PinName wr_en PINATTR Polarity IN LINE Normal 0 176 32 176 PIN 0 176 LEFT 36 PINATTR PinName wr_clk PINATTR Polarity IN LINE Normal 0 240 32 240 PIN 0 240 LEFT 36 PINATTR PinName rd_en PINATTR Polarity IN LINE Normal 0 272 32 272 PIN 0 272 LEFT 36 PINATTR PinName rd_clk PINATTR Polarity IN LINE Normal 144 704 144 672 PIN 144 704 BOTTOM 36 PINATTR PinName rst PINATTR Polarity IN LINE Wide 576 80 544 80 PIN 576 80 RIGHT 36 PINATTR PinName dout[35:0] PINATTR Polarity OUT LINE Normal 576 208 544 208 PIN 576 208 RIGHT 36 PINATTR PinName full PINATTR Polarity OUT LINE Wide 576 368 544 368 PIN 576 368 RIGHT 36 PINATTR PinName wr_data_count[8:0] PINATTR Polarity OUT LINE Normal 576 432 544 432 PIN 576 432 RIGHT 36 PINATTR PinName empty PINATTR Polarity OUT LINE Wide 576 592 544 592 PIN 576 592 RIGHT 36 PINATTR PinName rd_data_count[8:0] PINATTR Polarity OUT uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.ngc000066400000000000000000003316701224274632000222620ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.4e $4g64g<,[o}e~g`n;"2*413&;$>"9 > %17?*nhel%fmyz cnpfc`h(|dz$Sni fhdl[}jipV?:>u=9_3aoo+h`g81;56>?0123456382:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789>0<=6?4:2;452<8J:?=6?<;0,35<=683E^X][[:ecweZeh}g~757>11b924?IR\Y__6jPd`vb[firf}626=0>c:33>JSSX\^1{Qkauc\gjsi|531<3:415235>433;:;01877586:29=6D@_UU8gmk:4=3:5=95<6;MVPUSS2me~x1=::10>5833<>>9<594:43G54<>;80:4:468;50>0>I880:N:46BA@6>0B:2=M>66?4::3454<0;;0595601;1?<0330<=5<<49;KMTPR=IMNYM1650?31?<;>586m231EC^ZT;rqkbYbey~rSyf}erj?1249:>LHW]]0{~biPelrw}ZrozlycSckhaug?GCL[K79364AEFQE90902KOH_O37?c8EABUI521<364AEFQE9>902KOH_L30?:8EABUJ5;546OKDS@?6;>GCL[H7:364AEFQF919i2KOH_L38;2=<>GCL[H74374AR[MGZTBO=1I?5>;;CCBE6=E];20NX]PIODL5>E53J6MGEBI\HLEBFZOTXT^J2:AJ0>EKCH>0OAEM3:AOV<=DGDGBXYKK159@KWCXOLDN^LZFOO]JJCI03JXNMYKK1:F1?AO13MCJ0=08;EKB8469?2NBM1?>>69GMD:6:7=0HDO312<4?AOF48>5;6JFA=36:2=CAH6::394DHC?52803MCJ0<617:FJE97>6?1OEL2>>69GMD:587=0HDO320<4?AOF4;85;6JFA=00:2=CAH698394DHC?60803MCJ0?817:FJE9406>1OEL2=8?58@LG;:04=7IGN<3<4?AOF4::556JFA=12>5803MCJ0>?16:FJE959>2NBM1:16:FJE939>2NBM1816:FJE919>2NBM1616:FJE9?9>2NBN1>17:FJF9776>1OEO2>1?58@LD;9;4<7IGM<01=3>BNJ5;?2:5KIC>21;169GMG:617<0HDL31?58@LD;:94<7IGM<33=3>BNJ5892:5KIC>17;1908;EKA8739?2NBN1<9>69GMG:5?7=0HDL329<4?AOE4;35:6JFB=0=3>BNJ59;245KIC>05?69?2NBN1=>>79GMG:46?1OEO2;>79GMG:26?1OEO29>79GMG:06?1OEO27>79GMG:>6>1OE]O30?58@LVF484<7IG_A=0==>BNXH686=08;EKSE959?2NB\O2?>69GMUD;97=0HD^M<3<:?AOWJ591<394DHRA86813MEJ0=08;EMB8469?2NDM1?>>69GKD:6:7=0HBO312<4?AIF48>5;6J@A=36:2=CGH6::394DNC?52803MEJ0<617:FLE97>6?1OCL2>>69GKD:587=0HBO320<4?AIF4;85;6J@A=00:2=CGH698394DNC?60803MEJ0?817:FLE9406>1OCL2=8?58@JG;:04=7IAN<3<4?AIF4::556J@A=12>5803MEJ0>?16:FLE959>2NDM1:16:FLE939>2NDM1816:FLE919>2NDM1616:FLE9?9>2NDN1>17:FLF9776>1OCO2>1?58@JD;9;4<7IAM<01=3>BHJ5;?2:5KOC>21;169GKG:617<0HBL31?58@JD;:94<7IAM<33=3>BHJ5892:5KOC>17;1908;EMA8739?2NDN1<9>69GKG:5?7=0HBL329<4?AIE4;35:6J@B=0=3>BHJ59;245KOC>05?69?2NDN1=>>79GKG:46?1OCO2;>79GKG:26?1OCO29>79GKG:06?1OCO27>79GKG:>6>1OC]O30?58@JVF484<7IA_A=0==>BHXH686=08;EMSE959?2ND\O2?>69GKUD;97=0HB^M<3<:?AIWJ591<394DNRA86863L>0I?M?3:GME6=BFK>0J=972:D;6>@C;2LOO95IDBG7?CBDX:1MH]:4FERF0>@A?O?0Jlb|e09D7>AIL81B>6G?2:K26>O5:2C846GAIUR\45>>8:KMMQVX8;20ECG[P^20<>OIA]ZT<964IOKWTZ6202CEEY^P07:8MKOSXV:<56GAIUQWEQC03@DBXR>?7:KMMQY79>1BBDZP0358MKOSW99<7D@FT^273>OIA]U;9:5FNHV\4311BBDZP1358MKOSW89<7D@FT^373>OIA]U:9:5FNHV\531969JJLRX9H=0ECG[_0@4?LHN\V;H;6GAIU]2@2=NF@^T=H94IOKW[4@03@DBXR1BBDZP2358MKOSW;9<7D@FT^073>OIA]U99:5FNHV\631H94IOKW[7@03@DBXR=?7:KMMQY49>1BBDZP3358MKOSW:9<7D@FT^173>OIA]U89:5FNHV\73198;HLJPZ5??2CEEYQ<969JJLRX;H=0ECG[_2@4?LHN\V9H;6GAIU]0@2=NF@^T?H94IOKW[6@13@DBXRO9;HLJPZD43@D]?6G@B39OM7=KG?1GCLJJD69OKBODIE>0@XZ>4:NVP70JR\:UO:6BZT2]O0>JR\=?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH79;1E=>5A1168J466<2D:=1E=<9;;O32<1=I98387C?=4:L26522368J444<2D:>9:4N0060>H6:?>0B<<84:L26=2359M56633G;8=95A1207?K74;=1E=>:;;O3011=I9:33G;85>5A1568J427<2D:8<:4N0610>H6<:>0B<:;4:L2002=86@>4668J42?<2D:84=4N077?K728=1E=8?;;O3661=I9<9?7C?:859M50?43G;=86@>6168J406<2D::?:4N0400>H6>=>0B<8:4:L2232759M52633G;<=95A1607?K70;=1E=::;;O3411=I9>33G;<5>5A1918J4?53G887CH5=:1E>;=4N357?K409:1E>5=4N3;0?K57;2D8=>5A3318J6543G9??6@<529M7356@82:L;6>H>;2D2:>5A9618J1X^[OC_@58WWPFDVH?7^]]A59PWWD33]S[I><4U1-dvc(un&mht#mcky-N|jtXzmU{by|Pgb]{kw6789UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=?PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0121[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567;VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<9Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?017\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4561W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;;R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?01]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3457XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:9S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?3^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2341YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789?T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>9_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1233ZTb{|f=??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2?>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>2:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:56;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag682??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2;>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>6:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:16;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag6<2??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec27>328Q5)`zo$yj"ilx/aoo})ulVzexQmio]365=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ7582_;#j|i.sd,cf~)keas#jPpovq[goiW;8;7X> gsd-vc)`kq$h`fv re]sjqtXj`dT??>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ;219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^714>S7'nxm"h gbz-gim'{nT|cz}_ckm[3473\:$kh!rg-dg}(ddbr$~iQnup\flhX?;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU3>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123471<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<=?=6:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4566:>1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?1005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78989;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0121570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<><8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34555:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?4358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678=;9:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012662=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;9<<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp3450502_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>91004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789<9>o5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r1232Zdcl98=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01513>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:<=?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1>1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<0<14>S7'nxm"h gbz-gim'{nT|cz}_fa?6;473\:$kh!rg-dg}(ddbr$~iQnup\cf:46;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5>5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh080=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm36?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>4:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg9>99o1^<"i}f/pe+be&jf`t"|k_qlwvZadW9;m7X> gsd-vc)`kq$h`fv re]sjqtXojU:=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS??i;T2,cw`)zo%lou lljz,vaYwf}xTknQ<1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_53e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]65c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[37a3\:$kh!rg-dg}(ddbr$~iQnup\cfY09o1^<"i}f/pe+be&jf`t"|k_qlwvZadW18=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<1<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5;5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>1:70<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlm7?3<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8185>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1;1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:16;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi37?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`414996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^211>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV;996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^011>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV9996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^611>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV?996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^411>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboV=996[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^:1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0=0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6484956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2878512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><2<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:090=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64<4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2838512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><6<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:050=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W9837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\57><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z1502_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj>_906?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw67898>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0006?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678;8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0206?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678=8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0406?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]{kw678?8>7X> gsd-vc)`kq$h`fv re]sjqtXojUsc>?0602?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?4;463\:$kh!rg-dg}(ddbr${Qnup\flh;978:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7>3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`33?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?0;463\:$kh!rg-dg}(ddbr${Qnup\flh;=78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d7:3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`37?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?<;473\:$kh!rg-dg}(ddbr${Qnup\flhX8;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR<=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_203?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\076<]9%l~k }f.e`|+ekcq%|~R~ats]amkY2:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV<9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS: gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?012263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;=?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234475>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>=269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567:88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01113>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:8>?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2341403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=:>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567=;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?04312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:=>55Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r1232475?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>923`8Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?Uihi>=6:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4560:>1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?7003?P6(o{l%~k!hcy,`hn~({U{by|Pgb>3:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg979:91^<"i}f/pe+be&jf`t"y}_qlwvZad4;49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7?3328Q5)`zo$yj"ilx/aoo})pzVzexQhc=7=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`838582_;#j|i.sd,cf~)keas#z|Ppovq[be;?78;7X> gsd-vc)`kq$h`fv ws]sjqtXoj632>f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP10d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^02b>S7'nxm"h gbz-gim'~xT|cz}_fa\74`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ26n2_;#j|i.sd,cf~)keas#z|Ppovq[beX=8l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV<:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT;>348Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`a;:78=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<2<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5>5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>6:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7:3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8285>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk161249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY7:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ>249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY5:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ<249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY3:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ:249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY1:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ8249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY?:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=2=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1?1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9585>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5959:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=6=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1;1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95<5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5919:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=:=6==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R>=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W8837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\67><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh946[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg^f2[04?3\:$kh!rg-dg}(ddbr${Qnup\cfYf{{olSi?P63:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U<>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z>5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp3451402_;#j|i.sd,ci6)zm%l~< hrea1*wbd'DkohR|k_ea\mZgclzi<=>?111;?P6(o{l%~k!hl1,q`*au9'myhn>64U1-dvc(un&mg<#|k/fp2*btck;$yhn!Baef\vaYckVcTmij|uc234573;>1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&GjhiQ}d^f`[lYflmy~n=>?0314?P6(o{l%~k!hl1,q`*au9'myhn73b9V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYulVnhSdQndeqvf5678Vir0<0<8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[f;87937X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pcx>2:6><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)J{|hThdhi_vp\vaYseyUhu1<1399V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.OpqgYcaolT{Q}d^vntZe~4:4846[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_b{?0;5?3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzTot2:>2:8Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-NwpdXl`lmSz|Pre]wiuYdq5<5?55Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"C|uc]gmc`X{UyhRzbp^az828412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sa{{<1<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWe0<0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[iss4;4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_mww868412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sa{{<5<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWe080<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[iss4?4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_mww828412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sa{{<9<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey0=0<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu484856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq878412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<2<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey090<9:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[}iu4<4856[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#@}zb^fjbcYpzVxoSyc_ymq838412_;#j|i.sd,ci6)zm%l~< hrea1*wbd'Dy~nRjffg]tvZtcW}g{Sua}<6<0=>S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWqey050<0:W3+bta&{l$ka>!re-dv4(`zmi9"jl/ekebZquW{nTx`~30?0;?P6(o{l%~k!hl1,q`*au9'myhnS7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS><7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX<;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]66==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeR8=8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnW>837X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k\<7><]9%l~k }f.eo4+tc'nx:"j|kc3,q`f)ulVnhSdQ6309V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=2=77=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx12369699:;0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]nq}678;6:2><4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;>012?P6(o{l%~k!hl1,q`*au9'myhn0<2:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnWds<=>=<2<274=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236929;;1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^ov|567:5>5=>:4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;03274=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236939;;1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^ov|567:5?5=>?4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;278Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`Ufyu>?03>5:ZUP9:;0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]nq}678;6<2>=4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;0303>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS`{w012182869VY\<><4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;312?P6(o{l%~k!hl1,q`*au9'myhn1614248Q5)`zo$yj"ic0/pg+bt6&nxoo? }db-q`ZbdW`Ufyu>?03>;:1YT_99=7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k\ip~7898743:PSV301>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS`{w01218=8X[^:8=6[?/fpe*w`(oe:%~i!hr0,dvae5&{nh#jPdb]j[hs89:9040<2:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnWds<=>=<8<26d=R8&myj#|i/fn3*wb(o{;%~kyit.PBIZTCWLDTJZH[13;8Q5)`zo$yj"ic0/pg+bt6&{l|jy!]AL]QABIR\VOE=?l4U1-dvc(un&mg<#|k/fp2*w`pn}%YM@QYAMKG[CQA\8;8?6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWOYFSKHk1248Q5)`zo$yj"ic0/pg+bt6&{l|jy!lusp\br`sWz~jxhQISL]EBa7*Ag937X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXNZGTJKj>-Hl2565<]9%l~k }f.eo4+tc'nx:"hxfu-`qwtXn~lS~zntd]EWHYANm88:6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWOYFSKHk2,Km7==R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^DPIZ@Al;'Bb!re-dv4(un~l#hctx]escrXnk8<7X> gsd-vc)`d9$yh"i}1/pescr(mdzuRhxfu]j6`=R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSdQ`r12347`<]9%l~k }f.eo4+tc'nx:"hxfu-fiur~Wo}mxRgPos234575=2_;#j|i.sd,ci6)zm%l~< }fvdw+pubzV|j`dj=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs494956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw848512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<3<1=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0>0=f:W3+bta&{l$ka>!re-dvdu)zz~x#n> glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`4*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0=0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>2:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64;49?6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z<2<>318Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t28185j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(~8U;Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`4*p6W8Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l0.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0]7[kis89:;=?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:76;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>2:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2=>3;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}682?h4U1-dvc(un&mg<#|k/fpbw+tt|z%h="ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!re-dvdu)zz~x#n? glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV:R.fop*hu5;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~86;2?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><0<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:56;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:0>0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0>7:7d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W9Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y6Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[7Yffm:;<=?=b:W3+bta&{l$ka>!re-dvdu)zz~x#n? v0]0[dhc89:;=?l4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x>_5]mkq6789;9<6[?/fpe*w`(oe:%~i!hr`q-vvrt'jef|=>4U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXaVey<=>?309V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUbSb|?01225c=R8&myj#|i/fn3*wb(zhgTzlbfd^dtbq443\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu310>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{3368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr3:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by;=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp3433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d;?:4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov;6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1>12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5:5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4849o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az848Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?6;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw32?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2<>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp682R|{289V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5>5>n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}929W{~956[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az8085k2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<4<\vq4>3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw36?0`?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7:3Q}t3;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6<2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:06Vx>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:76;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?5;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<3<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1=12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6?2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;=78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8385i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=5=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc27>3f8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx743Q}t0d8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{<1<2b>S7'nxm"h gm2-va)uxg~y#naznu>2:4`<]9%l~k }f.eo4+tc'{zex!lotlw8786n2_;#j|i.sd,ci6)zm%y|cz}/bmvjq:468l0Y=!hrg,qb*ak8'xo#~ats-`kphs4=4:j6[?/fpe*w`(oe:%~i!}povq+firf}6>2f:W3+bta&{l$ka>!re-qtkru'je~by28>0d8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{<9<2a>S7'nxm"h gm2-va)uxg~y#naznu]35`=R8&myj#|i/fn3*wb(zyd~"m`uov\54c<]9%l~k }f.eo4+tc'{zex!lotlw[77b3\:$kh!rg-dh5(ul&x{by| cnwmpZ56m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY39l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX=8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW?;n7X> gsd-vc)`d9$yh"|nup,gjsi|V=:i6[?/fpe*w`(oe:%~i!}povq+firf}U3>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2?>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?5;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64;49>6[?/fpe*w`(oe:%~i!}povq+firf}Uo=1=1239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>7:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;=7897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0;0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=5=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:?6;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T2:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2=>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}682?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^6Z&ng:"`?=f:W3+bta&{l$ka>!ws-dsdu)z~x#n? glw{*bk\9T$la~ bs3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR8V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP?P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV:R.fop*hu5;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86;2?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><0<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:56;90Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:0>0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>7:7d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W9Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y6Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[7Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0]0[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_5]mkq6789;956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw858512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<0<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0?0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs4:49j6[?/fpe*w`(oe:%{!hw`q-svrt'j8$k`{w.foX4X(`e8$f=?h4U1-dvc(un&mg<#y}/fubw+qt|z%h>"ibuy,di^7Z&ngx"`}=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\:T$la~ bs3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR9V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP8P hmr,nw75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64949?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2>>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28785;2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8682?=4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x><5<1f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y7Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[4Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]1[dhc89:;=?l4U1-dvc(un&mg<#y}/fubw+qt|z%h>"x>_2]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z=5Z0.eqb+ta'nf;"z| gvcp*rus{&ida}<=8:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZ`eW`8>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_h0`?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkW`Ud~=>?03f8Q5)`zo$yj"ic0/uq+bqf{'}xx~!}al]eqijXaVey<=>?12a8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYpzVnjxlQlotlw[lYflm:;<=??3b9V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZquWmkmRm`uov\mZgcl9:;<<<!ws-dsae6&~nhiuz M`fg[rtXlh~jSnaznu]j[dbc89:;=9=m;T2,cw`)zo%l`= xr.et`f7)minty!Baef\swYci}kTob{at^k\eab789:9?o5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678=9i7X> gsd-vc)`d9$|~"ixdb3-saebp}%FmijPws]geqgXkfexRgPaef34561;k1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234=273\:$kh!rg-dh5(pz&m|hn?!weaf|q)JimnT{Qkauc\gjsi|VcTmij?012\g|:66=:0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GjhiQxr^fbpdYdg|dSdQnde2345Ydq5258?5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vir050>15;8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYpzVnjxlQlotlw[lYflm:;<=Qwos>2:47XAG\T<9=4U1-dvc(un&mg<#y}/fugg4(pljosx"Cnde]tvZbf|hUhcx`{_h]b`a6789Usc2=>0377>S7'nxm"h gm2-sw)`mi:"zjleyv,IdbcW~xThlzn_bmvjqYnWhno<=>?_ymq86869=>0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GjhiQxr^fbpdYdg|dSdQnde2345Yg{6?2429V4*aun'xm#jb?.vp,crbd9'}oohv{/Lcg`ZquWmkmRm`uov\mZgcl9:;5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vrd~1811060?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NeabX{UomyoPcnwmpZoXimn;<=>Pxnp?3;76<11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234Z~hz5=5=S7'nxm"h gm2-sw)`mi:"zjleyv,IdbcW~xThlzn_bmvjqYnWhno<=>?_ymq82869VY\<9=4U1-dvc(un&mg<#y}/fugg4(pljosx"Cnde]tvZbf|hUhcx`{_h]b`a6789Usc27>0303>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXkp6;2>94U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^az8484?2_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzTot2=>258Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZe~4:48;6[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pcx>7:61<]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVir080<7:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\g|:16:=0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rmv<6<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXd|~7<3=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]oqq:66:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rbzt=0=7==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWe0>0<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\hpr;<7937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qcuu>6:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVf~x181399V4*aun'xm#jb?.vp,crbd9'}oohv{/LqvfZbnnoU|~R|k_uos[iss4>4846[?/fpe*w`(oe:%{!hwea2*rbdmq~$A~{m_ekebZquW{nTx`~Pltv?<;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)J{|hThdhi_vp\vaYseyUsc2?>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.OpqgYcaolT{Q}d^vntZ~hz5;5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_ymq878402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzTtb|33?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYg{6?2>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^zlv939;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sua}<7<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXpfx7;3=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]{kw:?6;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&nbjkQxr^pg[qkw4949j6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcT!ws-dsae6&~nhiuz ws]geqgXkfexRgP23d8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^11b>S7'nxm"h gm2-sw)`mi:"zjleyv,swYci}kTob{at^k\07`<]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\mZ35n2_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoX>;l0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&}ySio{a^alqkrXaV=9j6[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcT4?h4U1-dvc(un&mg<#y}/fugg4(pljosx"y}_ecweZeh}g~TeR7<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz ws]geqgXkfexRgPaef3456;97937X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`Ujhi>?01>1:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*quWmkmRm`uov\mZgcl9:;<1=1399V4*aun'xm#jb?.vp,crbd9'}oohv{/vp\`drfWje~byQf_`fg45674=4846[?/fpe*w`(oe:%{!hwea2*rbdmq~${Qkauc\gjsi|VcTmij?012?1;5?3\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[lYflm:;<=29>2:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^cg`56785=5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbSljk01238=86l2_;#j|i.sd,ci6){%ym`Qxr^gm[l75;2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov261=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at207?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=2=5c=R8&myj#|i/fn3*rt(yd~"m`uov?5;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9499o1^<"i}f/pe+bj7&~x${}`{r.alqkr;;7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5>5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~793?i;T2,cw`)zo%l`= xr.usjqt(kfex1811g9V4*aun'xm#jb?.vp,suhsz&idycz37?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=:=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?30?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28485:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64<49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=181239V4*aun'xm#jb?.vp,suhsz&idyczPd0>4:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;078:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S5<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54149=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R>=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^315>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z4592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V99=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R:=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^715>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z0592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V=9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R6>6:W3+bta&{l$ahc dnww[lY79?1^<"i}f/pe+hcj'me~xRgP1058Q5)`zo$yj"cjm.flqqYnW8::;6[?/fpe*w`(elg$hb{{_h]2541<]9%l~k }f.ofi*bh}}UbS<<>7:W3+bta&{l$ahc dnww[lY6;8=0Y=!hrg,qb*kbe&ndyyQf_0623>S7'nxm"h mdo,`jssW`U:9<94U1-dvc(un&gna"j`uu]j[406?2_;#j|i.sd,i`k(lfSdQ>7058Q5)`zo$yj"cjm.flqqYnW82:;6[?/fpe*w`(elg$hb{{_h]2=40<]9%l~k }f.ofi*bh}}UbS??8;T2,cw`)zo%fi`!kotv\mZ479>1^<"i}f/pe+hcj'me~xRgP2034?P6(o{l%~k!bel-gkprXaV89=:5Z0.eqb+ta'dof#iazt^k\66703\:$kh!rg-nah)cg|~TeR<;169V4*aun'xm#`kb/emvpZoX:<;<7X> gsd-vc)jmd%ocxzPi^0552=R8&myj#|i/lgn+air|VcT>:?8;T2,cw`)zo%fi`!kotv\mZ4?9>1^<"i}f/pe+hcj'me~xRgP2835?P6(o{l%~k!bel-gkprXaV9:;6[?/fpe*w`(elg$hb{{_h]0441<]9%l~k }f.ofi*bh}}UbS>?>7:W3+bta&{l$ahc dnww[lY4:8=0Y=!hrg,qb*kbe&ndyyQf_2123>S7'nxm"h mdo,`jssW`U88<94U1-dvc(un&gna"j`uu]j[636>2_;#j|i.sd,i`k(lfSdQ;179V4*aun'xm#`kb/emvpZoX=8<0Y=!hrg,qb*kbe&ndyyQf_735?P6(o{l%~k!bel-gkprXaV=::6[?/fpe*w`(elg$hb{{_h];53=R8&myj#|i/lgn+air|VcT5<74U1-dvc(un&gna"j`uu]nah:768k0Y=!hrg,qb*kbe&ndyyQbel>24;7f3\:$kh!rg-nah)cg|~Tahc310<2e>S7'nxm"h mdo,`jssWdof0<<11`9V4*aun'xm#`kb/emvpZkbe5;82 gsd-vc)jmd%ocxzPmdo?5086i2_;#j|i.sd,i`k(lfS`kb<04=5d=R8&myj#|i/lgn+air|Vgna1?8>0c8Q5)`zo$yj"cjm.flqqYjmd6:43?n;T2,cw`)zo%fi`!kotv\i`k;904:56[?/fpe*w`(elg$hb{{_lgn8486i2_;#j|i.sd,i`k(lfS`kb<32=5d=R8&myj#|i/lgn+air|Vgna1<>>0c8Q5)`zo$yj"cjm.flqqYjmd69>3?n;T2,cw`)zo%fi`!kotv\i`k;::4:m6[?/fpe*w`(elg$hb{{_lgn87299h1^<"i}f/pe+hcj'me~xRcjm=06:4g<]9%l~k }f.ofi*bh}}Ufi`2=6?3b?P6(o{l%~k!bel-gkprXelg7>:0>a:W3+bta&{l$ahc dnww[hcj4;25=l5Z0.eqb+ta'dof#iazt^ofi94>6830Y=!hrg,qb*kbe&ndyyQbel>1:4g<]9%l~k }f.ofi*bh}}Ufi`2<0?3b?P6(o{l%~k!bel-gkprXelg7?<0>a:W3+bta&{l$ahc dnww[hcj4:85=l5Z0.eqb+ta'dof#iazt^ofi95468k0Y=!hrg,qb*kbe&ndyyQbel>00;7f3\:$kh!rg-nah)cg|~Tahc334<2=>S7'nxm"h mdo,`jssWdof0>0>9:W3+bta&{l$ahc dnww[hcj4=4:56[?/fpe*w`(elg$hb{{_lgn808612_;#j|i.sd,i`k(lfS`kb<7<2=>S7'nxm"h mdo,`jssWdof0:0>9:W3+bta&{l$ahc dnww[hcj414:56[?/fpe*w`(elg$hb{{_lgn8<81m2_;#j|i.sd,i`k(okg%koch.f`ncd(iolih"och/cnh[hcjWnoeio{os-ueioc&jy~"|nmmmlt^6Z&{kf"!y2^llmkos&{kf#i~<6y15*wgj9k1^<"i}f/pe+hcj'}g{Sob_sf\ak7d3\:$kh!rg-nah)seyUym`Q}d^gm545<]9%l~k }f.pbiZtcWld:;6[?/fpe*w`(zhgT~hi`uu]fj45<]9%l~k }f.pbiZquWld:h6[?/fpe*w`(zz~i`f!}d^pppZgtzlm9<6[?/fpe*w`(zz~i`f!}d^pppZgtzlmTh<1d9V4*aun'xm#}{bmi,vaYu{}Uyij2?>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi31?3f?P6(o{l%~k!}su`oo*tcW{ySkh<3<2`>S7'nxm"h rrvahn)ulVxxxR|jg^22`>S7'nxm"h rrvahn)ulVxxxR|jg^32`>S7'nxm"h rrvahn)ulVxxxR|jg^02`>S7'nxm"h rrvahn)pzVxxxRo|rde14>S7'nxm"h rrvahn)pzVxxxRo|rde\`4473\:$kh!rg-qwqdkc&}yS}{_`qqabYc:8i0Y=!hrg,qb*tt|kf`#z|Prrv\gjke9m1^<"i}f/pe+wusjea${Q}su]`khd69l1^<"i}f/pe+wusjea${Q}su]qab:768o0Y=!hrg,qb*tt|kf`#z|Prrv\v`a;97;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W9;o7X> gsd-vc)u{}hgg"y}_sqw[wc`W8k0Y^K]_@NJEVe<]ZOYS[G\ICNF7>PDK01]EHYPTXRF7>QBI:1\IOl4WSKWAZ@NZZ^h7Z\FTD]NKACXIj1\^DZJ_LMGAZD6l2RB@D@W-YFA$5(6(Z^^N->!1!CPGLO23QEYOT84XRVOMG1gkefyShctx`8eikh{}Umyab9;cc`opvc3kkhgx~Pm`phaw5bf|hUhcx`{(6+g?agsiVidycz'8(f8`drfWje~by&6)e9geqgXkfex1>1f:fbpdYdg|d044?>69gflrbz{<0hd`'0(48`lh/9 =0hd`'11+4?aoi 8;";6jfn)31-2=cag":?$94dhl+51/03mce$<;&7:fjj-71!>1oec&>7(58`lh/91#<7iga(0;*2>bnf!8";6jfn)03-2=cag"9=$94dhl+67/03mce$?=&7:fjj-43!>1oec&=5(58`lh/:?#<7iga(35*3>bnf!83%:5kio*1=,0?&7:fjj-55!>1oec&<3(58`lh/;=#<7iga(27*2>bnf!>":6jfn)7*2>bnf!<":6jfn)5*2>bnf!2":6jfn);*2>bnf5:5;6jfn=33:2=cag6:=394dhl?57803mce0<=17:fjj9736>1oec2>5?58`lh;9?4<7iga<05=3>bnf5;32:5kio>2=;01oec2=3?58`lh;:=4<7iga<37=3>bnf58=2:5kio>13;1508;ekm87?9>2nbb1<17:fjj9576>1oec2<1?58`lh;;;4<7iga<21=3>bnf59?245kio>01?69?2nbb1=:>79gmk:46?1oec2;>79gmk:26?1oec29>79gmk:06?1oec27>79gmk:>6>1ocxz'0(58`jss 8#37iazt)33-==cg|~#=<'7;emvp-75!11ocxz'12+;?air|!;?%55kotv+50/?3me~x%?9)99gkpr/9>#37iazt)3;-==cg|~#=4'8;emvp-4.02ndyy&=0(:8`jss ;;"46j`uu*16,>bh}}"9:$64dnww,71.02ndyy&=8(:8`jss ;3";6j`uu*0-==cg|~#?='7;emvp-56!11ocxz'33+;?air|!98%55kotv+71/?3me~x%=:)69gkpr/< =0hb{{(4+4?air|!<";6j`uu*4-2=cg|~#4$94dnww,18:flqq:68720hb{{<03=<>bh}}6:>364dnww845902ndyy2>4?:8`jss48?546j`uu>22;>bh}}6:255kotv?658?3me~x1<>>99gkpr;:;437iazt=00:==cg|~7>907;emvp942611ocxz327<;?air|58<255kotv?6=8?3me~x1<6>69gkpr;:720hb{{<22=<>bh}}68=364dnww864902ndyy2<3?:8`jss4:>5m6j`uu>01?6902ndyy2<5?58`jss4:4<7iazt=6=3>bh}}6>2:5kotv?2;19?2ndyy26>99f`l`5fnn>7hctx11?coagVmnbh|ntnp\r1Y4$)Rb`d`w BMQA%Abflxjxb|/11,2*556=2lbjbQwloz\144;?U9oae<3:djbjYdgrT9<V8h`f"iigm\c`hbzh~d~Rx;_2.xgZnf{VcexRmck<2/gZnf{Vyyy3?,b]q`Z`umx7: nQgar]q`Zbf|hUhcx`{=0.`[aoiW~coxe3<6-a\lduX{UomyoPcnwmp87+kVl~`aQil`ep[wusWkg1<"l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1>8#c^opcjhX~hf6=!mPre]gauro5<;9 nQgar]vjacunee|1="l_icp[djjgz~Tjxbc=1.`[mgtW{y1<"l_ecweZeh}g~T{dj{h<33(fYoizU|~Rolk<2/gZstmVoho0>#c^alihiiWjfdof3?,b]tvZgdcVfd{0>#c^pg[uhszV}bhyf29-a\qvcXn~lSio{a^alqkr:9%iTdl}PamolwqYbey~r1="l_sf\`drfWje~byQxievk946+kVe}ihcov]okr;7$jU|~R~ats]tmaro50&hS}|`g^gntqX|pzn1="l_vp\`drfWje~byQxievk946+kVzyiaand^pfcv;6$jUocxzPrrv\rdj:8%iTdl}Pd`vb[firf}7; nQrne\bpjkW}byi~fPndebp`Yqie7>=="l_vp\``vs`4?:>!mPpsmd[`kw|pUdk|h^lfcdrbWkg18"l_qplcZcjx}sTxe|jsi]bwvcu|V|j`0:#c^jbwZpfd`n68P2bnh(fYqiecoSaax=1.`[utneVlbjbQ{yqg>144;?&hS}|`g^dvhiYsqyo6vugnUna}zv159svjaXmdzuRzgrdqk,5/6<2zycjQjmqvz[qnumzb#=$?;;qplcZcjx}sTxe|jsi*1-42vugnUna}zv_ujqavn/= ;?7}|`g^gntqX|axne&9)068twi`Wlg{xtQ{hsgpl-1.9=1{~biPelrw}Zrozlyc$5'>6:rqkbYbey~rSyf}erj? ;i7}|`g^gntqX|axneQnsrgqp-1.9k1{~biPelrw}ZrozlycSl}|esv+<,7c3yxdkRkbpu{\pmtb{aUj~k}t=:94;7e3yxdkRkbpu{\pmtb{aUeijo{e)2*5g=wzfmTi`~{y^vkv`uoWgolmyk'1(3a?uthoVof|ywPtipfwmYimnki%<&1c9svjaXmdzuRzgrdqk[kc`i}o#?$?m;qplcZcjx}sTxe|jsi]mabgsm!>"=o5rne\ahvsqV~c~h}g_ogdeqc/= ;i7}|`g^gntqX|axneQaefcwa-0.9k1{~biPelrw}ZrozlycSckhaug+3,7e3yxdkRkbpu{\pmtb{aUeijo{e):*5a=wzfmTi`~{y^vkv`uoWgolmyk38;2==>vugnUmyab>3:rqkbYa}efTxe|jsi*3-45vugnUmyabPtipfwm.1!890|ah_gwohZrozlyc$:'>3:rqkbYa}efTxe|jsi*;-430c8twi`Wog`Rzgrdqk[kc`i}o#<$?n;qplcZ`rdeUdk|h^lfcdrb 8#:m6~}of]eqijX|axneQaefcwa-4.9h1{~biPftno[qnumzbTbhintd*0-4ga:rqkbYa}efTxe|jsi]mabgsm!<"=l5rne\bpjkW}byi~fPndebp`.0!8k0|ah_gwohZrozlycSckhaug+<,7d3yxdkRhzlm]wlwct`Vdnklzj<983:3=ulVigg<>4re]geqgXkfex%>&119q`Zbf|hUhcx`{(0+24>tcWmkmRm`uov+6,773{nThlzn_bmvjq.4!8:0~iQkauc\gjsi|!>"==5}d^fbpdYdg|d$8'>0:pg[agsiVidycz'6(33?wbXlh~jSnaznu*4-46.991yhRjnt`]`kphs 0#:<6|k_ecweZeh}g~7<3??;sf\`drfWje~by2>>028vaYci}kTob{at=0=55=ulVnjxlQlotlw868682xoSio{a^alqkr;<7;;7jPd`vb[firf}6>2<>4re]geqgXkfex181119q`Zbf|hUhcx`{<6<24>tcWmkmRm`uov?<;753{nThlzn_bmvjq:>294:<6|k_ecweZeh}g~753;4re]fj3=ulVxxx>5}su58wgosm{x?7~||t59wvpc>3|doihcov78rdjnl?1|~Rolk79tvZekc8:0{Qkauc\gjsi|!:"==5xr^fbpdYdg|d$<'>0:uq[agsiVidycz'2(33?rtXlh~jSnaznu*0-46<{UomyoPcnwmp-2.991|~Rjnt`]`kphs <#:<6y}_ecweZeh}g~#:$??;vp\`drfWje~by&8)028swYci}kTob{at):*55=pzVnjxlQlotlw,4ws]geqgXkfex1<1119tvZbf|hUhcx`{<2<24>quWmkmRm`uov?0;773~xThlzn_bmvjq:268:0{Qkauc\gjsi|5<5==5xr^fbpdYdg|d0:0>0:uq[agsiVidycz38?31?rtXlh~jSnaznu>:>58682}ySio{a^alqkr;17?0{Qjn79tvZtt|tJK|h=>;AB{5?@=<3;p_8k55779=?74:0::;754:&7fa<3j>1v_8m55779=?74:0::;733;352<5i82<7^;l:44f>5<6;;3;=:4=a0:;?a3103:1=7?tS4g9133=13;8>4>>7;0b5=0<~];n=7>51;395`c|[43b3_>ii74=r9?31<6s+1e;952=e=?21<78<:2857~N3io1Q9<4;{b8a>40=9<0v(>i2l>0;6)?kb;7f5>h6lh0;76a:d783>!7cj3?n=6`>d`82?>i2l<0;6)?kb;7f5>h6lh0976a:d583>!7cj3?n=6`>d`80?>i2l:0;6)?kb;7f5>h6lh0?76a:d383>!7cj3?n=6`>d`86?>i2l80;6)?kb;7f5>h6lh0=76a:d183>!7cj3?n=6`>d`84?>i2ko0;6)?kb;7f5>h6lh0376a:cd83>!7cj3?n=6`>d`8:?>i2j10;6)?kb;7`6>h6lh0;76a:b683>!7cj3?h>6`>d`82?>i2j?0;6)?kb;7`6>h6lh0976a:b483>!7cj3?h>6`>d`80?>i2j=0;6)?kb;7`6>h6lh0?76a:b283>!7cj3?h>6`>d`86?>i2j;0;6)?kb;7`6>h6lh0=76a:b083>!7cj3?h>6`>d`84?>i2j90;6)?kb;7`6>h6lh0376a:ag83>!7cj3?h>6`>d`8:?>o2m:0;66a:6b83>>i2>?0;66g:ce83>>o2k?0;66a:3883>!7cj3?>o6`>d`83?>i2;10;6)?kb;76g>h6lh0:76a:3683>!7cj3?>o6`>d`81?>i2;?0;6)?kb;76g>h6lh0876a:3483>!7cj3?>o6`>d`87?>i2;=0;6)?kb;76g>h6lh0>76a:3383>!7cj3?>o6`>d`85?>i2;80;6)?kb;76g>h6lh0<76a:3183>!7cj3?>o6`>d`8;?>i2:o0;6)?kb;76g>h6lh0276a:2d83>!7cj3?>o6`>d`8b?>i2:m0;6)?kb;76g>h6lh0i76a:2b83>!7cj3?>o6`>d`8`?>i2:k0;6)?kb;76g>h6lh0o76a:2`83>!7cj3?>o6`>d`8f?>i2:00;6)?kb;76g>h6lh0m76a:2683>!7cj3?>o6`>d`824>=h=;<1<7*>dc861f=i9mk1=<54o406>5<#9mh198m4n0fb>44<3f?987>5$0fa>03d3g;om7?<;:m666<72-;on7;:c:l2`d<6<21d9?<50;&2`g<2=j1e=io51498k046290/=il554a8j4bf28<07b;=0;29 4be2i29o0;6)?kb;76g>h6lh0:465`50g94?"6lk0>9n5a1ec95<=?i4?:%3gf?32k2d:hl4>c:9l16e=83.:ho4:5b9m5ag=9m10c8=m:18'5ad==!7cj3?>o6`>d`814>=h=;21<7*>dc861f=i9mk1><54o43g>5<#9mh198m4n0fb>74<3f?:o7>5$0fa>03d3g;om7<<;:k7b5<72-;on7;>3:l2`d<732c?ik4?:%3gf?36;2d:hl4>;:k7a`<72-;on7;>3:l2`d<532c?ii4?:%3gf?36;2d:hl4<;:k7af<72-;on7;>3:l2`d<332c?io4?:%3gf?36;2d:hl4:;:k7a<<72-;on7;>3:l2`d<132c?i54?:%3gf?36;2d:hl48;:k7a2<72-;on7;>3:l2`d3:l2`d3:l2`d3:l2`d3:l2`d<6821b8ij50;&2`g<29:1e=io51098m1bd290/=il55018j4bf28807d:kb;29 4be2<;87c?ka;30?>o3lh0;6)?kb;727>h6lh0:865f4e;94?"6lk0>=>5a1ec950=8:9j0a3=83.:ho4:129m5ag=9010e9h9:18'5ad==890b!7cj3?:?6`>d`82g>=ndc8656=i9mk1=i54i5d1>5<#9mh19<=4n0fb>4c<3`>m=7>5$0fa>0743g;om7?i;:k7ad<72-;on7;>3:l2`d<5821b8ih50;&2`g<29:1e=io52098m1b3290/=il55018j4bf2;807d:k3;29 4be2<;87c?ka;00?>o2il0;66l;b183>4<729qC8lh4$0g5>1d73f;o47>5;|`24=<7280;6=uG4`d8 4c128:37b??7;29?xd283:1n94>a182a`}O67=9<0897=<:`8`>40=j3996<;537801?532:91?<4r$0g5>00e3-;>m7??6:&63?3112.>h7;9a:&2`6<6l>1b9n;50;9l1=`=831b9n650;9l0f7=831d9nl50;9j0f2=831b95=50;&2`g<20=1e=io50:9j1=4=83.:ho4:859m5ag=921b95?50;&2`g<20=1e=io52:9j1=6=83.:ho4:859m5ag=;21b9:h50;&2`g<20=1e=io54:9j12c=83.:ho4:859m5ag==21b9:j50;&2`g<20=1e=io56:9j12e=83.:ho4:859m5ag=?21b9:l50;&2`g<20=1e=io58:9j1f2=831d9;h50;9l1a1=83.:ho4:e09m5ag=821d9i850;&2`g<2m81e=io51:9l1a3=83.:ho4:e09m5ag=:21d9i:50;&2`g<2m81e=io53:9l1a5=83.:ho4:e09m5ag=<21d9i<50;&2`g<2m81e=io55:9l1a7=83.:ho4:e09m5ag=>21d9i>50;&2`g<2m81e=io57:9l1f`=83.:ho4:e09m5ag=021d9nk50;&2`g<2m81e=io59:9l1g>=83.:ho4:c39m5ag=821d9o950;&2`g<2k;1e=io51:9l1g0=83.:ho4:c39m5ag=:21d9o;50;&2`g<2k;1e=io53:9l1g2=83.:ho4:c39m5ag=<21d9o=50;&2`g<2k;1e=io55:9l1g4=83.:ho4:c39m5ag=>21d9o?50;&2`g<2k;1e=io57:9l1g6=83.:ho4:c39m5ag=021d9lh50;&2`g<2k;1e=io59:9j1de=83.:ho4:ae9m5ag=821b9ll50;&2`g<2im1e=io51:9j1dg=83.:ho4:ae9m5ag=:21b9l750;&2`g<2im1e=io53:9j1d>=83.:ho4:ae9m5ag=<21b9l950;&2`g<2im1e=io55:9j1d0=83.:ho4:ae9m5ag=>21b9l;50;&2`g<2im1e=io57:9j1d2=83.:ho4:ae9m5ag=021b9h=50;9l0f`=83.:ho4;d09m5ag=821d8nk50;&2`g<3l81e=io51:9l0fb=83.:ho4;d09m5ag=:21d8nm50;&2`g<3l81e=io53:9l0fd=83.:ho4;d09m5ag=<21d8no50;&2`g<3l81e=io55:9l0f?=83.:ho4;d09m5ag=>21d8n650;&2`g<3l81e=io57:9l0f1=83.:ho4;d09m5ag=021d8n850;&2`g<3l81e=io59:9l13e=831d9;850;9j1<>=83.:ho4:989m5ag=821b94950;&2`g<2101e=io51:9j1<0=83.:ho4:989m5ag=:21b94;50;&2`g<2101e=io53:9j1<2=83.:ho4:989m5ag=<21b94=50;&2`g<2101e=io55:9j1<4=83.:ho4:989m5ag=>21b94?50;&2`g<2101e=io57:9j1<6=83.:ho4:989m5ag=021b9nj50;9j13b=831b8n;50;9j1`2=831d9n950;9l1fe=831d8n<50;9l1fg=831b9n850;9l16?=83.:ho4:5b9m5ag=821d9>650;&2`g<2=j1e=io51:9l161=83.:ho4:5b9m5ag=:21d9>850;&2`g<2=j1e=io53:9l163=83.:ho4:5b9m5ag=<21d9>:50;&2`g<2=j1e=io55:9l164=83.:ho4:5b9m5ag=>21d9>?50;&2`g<2=j1e=io57:9l166=83.:ho4:5b9m5ag=021d9?h50;&2`g<2=j1e=io59:9l17c=83.:ho4:5b9m5ag=i21d9?j50;&2`g<2=j1e=io5b:9l17e=83.:ho4:5b9m5ag=k21d9?l50;&2`g<2=j1e=io5d:9l17g=83.:ho4:5b9m5ag=m21d9?750;&2`g<2=j1e=io5f:9l171=83.:ho4:5b9m5ag=9910c8<9:18'5ad==!7cj3?>o6`>d`827>=h=;91<7*>dc861f=i9mk1=954o401>5<#9mh198m4n0fb>43<3f?9=7>5$0fa>03d3g;om7?9;:m665<72-;on7;:c:l2`d<6?21d9i2;l0;6)?kb;76g>h6lh0:n65`52f94?"6lk0>9n5a1ec95f=?l4?:%3gf?32k2d:hl4>f:9l165=83.:ho4:5b9m5ag=:910c8<7:18'5ad==!7cj3?>o6`>d`817>=n=>31<7*>dc863d=i9mk1<65f56:94?"6lk0>;l5a1ec95>=n=>=1<7*>dc863d=i9mk1>65f56494?"6lk0>;l5a1ec97>=n=>?1<7*>dc863d=i9mk1865f56694?"6lk0>;l5a1ec91>=n=>91<7*>dc863d=i9mk1:65f56094?"6lk0>;l5a1ec93>=n=>;1<7*>dc863d=i9mk1465f4g294?"6lk0>=>5a1ec94>=ndc8656=i9mk1=65f4dg94?"6lk0>=>5a1ec96>=ndc8656=i9mk1?65f4da94?"6lk0>=>5a1ec90>=ndc8656=i9mk1965f4d;94?"6lk0>=>5a1ec92>=ndc8656=i9mk1;65f4d594?"6lk0>=>5a1ec9<>=ndc8656=i9mk1565f4d794?"6lk0>=>5a1ec9e>=n1<7*>dc8656=i9mk1n65f4d194?"6lk0>=>5a1ec9g>=ndc8656=i9mk1h65f4d394?"6lk0>=>5a1ec9a>=ndc8656=i9mk1j65f4eg94?"6lk0>=>5a1ec955=3:9j0ag=83.:ho4:129m5ag=9=10e9j6:18'5ad==890b!7cj3?:?6`>d`823>=ndc8656=i9mk1=554i5f6>5<#9mh19<=4n0fb>4?<3`>m:7>5$0fa>0743g;om7?n;:k7b0<72-;on7;>3:l2`d<6j21b8k:50;&2`g<29:1e=io51b98m1`4290/=il55018j4bf28n07d:i2;29 4be2<;87c?ka;3f?>o3n80;6)?kb;727>h6lh0:j65f4dc94?"6lk0>=>5a1ec965=4?:%3gf?36;2d:hl4=3:9j0f5=831b9l<50;&2`g<2i:1e=io50:9j1d7=83.:ho4:a29m5ag=921b9l>50;&2`g<2i:1e=io52:9j1<`=83.:ho4:a29m5ag=;21b94k50;&2`g<2i:1e=io54:9j121b95850;&2`g<20l1e=io57:9j1=3=83.:ho4:8d9m5ag=021d9:>50;9l0a4=831b9lk50;9a0gg=83;1<7>t$0g5>46?3A>i56F;ag9l551=831vn9lm:182>5<7s-;n:7:m0:J7f<=Ok3:1?7>50z&2a3>i6lm0;66sm4`594?5=83:p(3A>jj6F;d:&223<2k01/=<852:k66?6=3`?m6=44o0fg>5<2n7>53;294~"6m?0mj6F;b89K0d`<@=n0(<89:4a:?!76>380e8<50;9j1c<722e:hi4?::a0d3=83?1<7>t$0g5>4633A>i56F;ag9K0a=#9?<19n74$035>7=n=;0;66g:6;29?l3a2900e0e>3-;::7<4i4094?=n=o0;66a>de83>>{e<0k1<7;50;2x 4c128:?7E:m9:J7ec=O5<e78246=O>o6lj0;66a>de83>>{e6g:2;29?l3a2900e029K0g?<@=km7)?>6;08m04=831b9k4?::k2`f<722e:hi4?::a0db=83>1<7>t$0g5>4643A>i56F;ag9'540=:2c>>7>5;h7e>5<5<jo7>54;294~"6m?0:<>5G4c;8L1ga3-;::7<4i4094?=n=o0;66g>db83>>i6lm0;66sm32;94?2=83:p(o2:3:17d;i:188m4bd2900c50z&2a3<68;1C8o74H5ce?!76>380e8<50;9j1g<722c>j7>5;h3gg?6=3f;oh7>5;|`1`c<72<0;6=u+1d49554<@=h27E:nf:&253<53`?96=44i4`94?=n=o0;66g>db83>>i6lm0;66sm2d294?3=83:p(o2:3:17d;m:188m0`=831b=im50;9l5ab=831vn?k>:186>5<7s-;n:7??2:J7f<=On7>5;h7e>5<5<7>55;294~"6m?0:"69?097d;=:188m0d=831b9k4?::k2`f<722e:hi4?::a6`2=83?1<7>t$0g5>4653A>i56F;ag9'540=:2c>>7>5;h7a>5<5<2290;w)?j6;336>N3j01C8lh4$035>7=n=;0;66g:b;29?l3a2900e039K0g?<@=km7)?>6;08m04=831b9o4?::k6b?6=3`;oo7>5;n3g`?6=3th9i:4?:483>5}#9l<1==<4H5`:?M2fn2.:=;4=;h71>5<>o6lj0;66a>de83>>{e;hn1<7:50;2x 4c128:87E:m9:J7ec=#98<1>6g:2;29?l3a2900e029K0g?<@=km7)?>6;08m04=831b9k4?::k2`f<722e:hi4?::a7`6=83>1<7>t$0g5>4673A>i56F;ag9'540=:2c>>7>5;h7a>5<3;;<6F;b89K0d`<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo=j2;290?6=8r.:i;4>019K0g?<@=km7)?>6;08m04=831b9o4?::k6b?6=3f;oh7>5;|`0a6<72=0;6=u+1d49556<@=h27E:nf:&253<53`?96=44i4`94?=n=o0;66a>de83>>{e;l>1<7:50;2x 4c128:;7E:m9:J7ec=#98<1>6g:2;29?l3e2900e8h50;9l5ab=831vn>k::187>5<7s-;n:7??0:J7f<=On7>5;h7e>5<e78245=O>o2n3:17b?kd;29?xd4m>0;694?:1y'5`0=99:0D9l6;I6bb>"69?097d;=:188m0d=831b9k4?::m2`a<722wi?h650;694?6|,8o=6<>?;I6a=>N3io1/=<852:k66?6=3`?i6=44i4d94?=h9mn1<75rb2g:>5<3290;w)?j6;334>N3j01C8lh4$035>7=n=;0;66g:b;29?l3a2900c50z&2a3<6>91C8o74H5ce?!76>38i7d??a;29?l77j3:17b?k6;29?xd5k:0;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900c50z&2a3<3j11C8o74H5ce?l3?2900e<;m:188k4b12900qo619K0g?<@=km7)?>6;0a?l77i3:17d??b;29?j7c>3:17pl=c583>1<729q/=h851758L1d>3A>jj6g:8;29?l072900e50z&2a3<6>91C8o74H5ce?!76>38i7d??a;29?l77j3:17b?k6;29?xd5k<0;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900c3:1?7>50z&2a3<3j11C8o74H5ce?l3?2900e<;m:188k4b12900qo619K0g?<@=km7)?>6;0a?l77i3:17d??b;29?j7c>3:17pl=c783>1<729q/=h851758L1d>3A>jj6g:8;29?l072900e50z&2a3<6>91C8o74H5ce?!76>38i7d??a;29?l77j3:17b?k6;29?xd5k>0;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900c50z&2a3<3j11C8o74H5ce?l3?2900e<;m:188k4b12900qo619K0g?<@=km7)?>6;0a?l77i3:17d??b;29?j7c>3:17pl=c983>1<729q/=h851758L1d>3A>jj6g:8;29?l072900e50z&2a3<6>91C8o74H5ce?!76>38i7d??a;29?l77j3:17b?k6;29?xd5k00;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900c50z&2a3<3j11C8o74H5ce?l3?2900e<;m:188k4b12900qo619K0g?<@=km7)?>6;0a?l77i3:17d??b;29?j7c>3:17pl=c`83>1<729q/=h851758L1d>3A>jj6g:8;29?l072900e50z&2a3<6>91C8o74H5ce?!76>38i7d??a;29?l77j3:17b?k6;29?xd5lj0;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl6<729q/=h851728L1d>3A>jj6*>1781f>o68h0;66g>0c83>>i6l?0;66sm3b794?2=83:p(>o183:17d?kf;29?j7c>3:17pl6<729q/=h854c:8L1d>3A>jj6g:8;29?l72j3:17b?k6;29?xd4kl0;6>4?:1y'5`0=9?:0D9l6;I6bb>"69?09n6g>0`83>>o68k0;66a>d783>>{e;j<1<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd4l>0;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl6<729q/=h851728L1d>3A>jj6*>1781f>o68h0;66g>0c83>>i6l?0;66sm3b594?2=83:p(>o183:17d?kf;29?j7c>3:17pl6<729q/=h854c:8L1d>3A>jj6g:8;29?l72j3:17b?k6;29?xd4l90;6>4?:1y'5`0=9?:0D9l6;I6bb>"69?09n6g>0`83>>o68k0;66a>d783>>{e;j21<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd4l00;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl6<729q/=h851728L1d>3A>jj6*>1781f>o68h0;66g>0c83>>i6l?0;66sm3b;94?2=83:p(>o183:17d?kf;29?j7c>3:17pl6<729q/=h854c:8L1d>3A>jj6g:8;29?l72j3:17b?k6;29?xd4l;0;6>4?:1y'5`0=9?:0D9l6;I6bb>"69?09n6g>0`83>>o68k0;66a>d783>>{e;jk1<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd4lk0;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl6<729q/=h851728L1d>3A>jj6*>1781f>o68h0;66g>0c83>>i6l?0;66sm3b`94?2=83:p(>o183:17d?kf;29?j7c>3:17pl6<729q/=h854c:8L1d>3A>jj6g:8;29?l72j3:17b?k6;29?xd4l=0;6>4?:1y'5`0=9?:0D9l6;I6bb>"69?09n6g>0`83>>o68k0;66a>d783>>{e;ji1<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd4lm0;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl6<729q/=h851728L1d>3A>jj6*>1781f>o68h0;66g>0c83>>i6l?0;66sm3eg94?5=83:p(>o6=k0;66a>d783>>{e;831<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd4910;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900c50z&2a3<6>>1C8o74H5ce?l3?2900e;>50;9j5a`=831d=i850;9~f671290?6=4?{%3f2?71?2B?n45G4`d8m0>=831b:=4?::k2`c<722e:h;4?::a743=83>1<7>t$0g5>4003A>i56F;ag9j1=<722c=<7>5;h3gb?6=3f;o:7>5;|`06f<72=0;6=u+1d49531<@=h27E:nf:k65<e78222=O5<5<3290;w)?j6;353>N3j01C8lh4i4:94?=n>90;66g>dg83>>i6l?0;66sm33;94?2=83:p(>o183:17d?kf;29?j7c>3:17pl<2983>1<729q/=h851758L1d>3A>jj6g:8;29?l072900e669K0g?<@=km7d;7:188m36=831b=ih50;9l5a0=831vn>6m:187>5<7s-;n:7?97:J7f<=ON3io1b954?::k54?6=3`;oj7>5;n3g2?6=3th8444?:583>5}#9l<1=;94H5`:?M2fn2c>47>5;h43>5<5<54;294~"6m?0:::5G4c;8L1ga3`?36=44i7294?=n9ml1<75`1e494?=zj:3m6=4;:183!7b>3;=;6F;b89K0d`>o6lo0;66a>d783>>{e;0o1<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd41m0;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900ck3:187>50z&2a3<6>>1C8o74H5ce?l3?2900e;>50;9j5a`=831d=i850;9~f6?e290?6=4?{%3f2?71?2B?n45G4`d8m0>=831b:=4?::k2`c<722e:h;4?::a65>=83>1<7>t$0g5>4673A>i56F;ag9'540=:2c>>7>5;h7a>5<3;;<6F;b89K0d`<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo019K0g?<@=km7)?>6;08m04=831b9o4?::k6b?6=3f;oh7>5;|`140<72=0;6=u+1d49556<@=h27E:nf:&253<53`?96=44i4`94?=n=o0;66a>de83>>{e:9>1<7:50;2x 4c128:;7E:m9:J7ec=#98<1>6g:2;29?l3e2900e8h50;9l5ab=831vn?><:187>5<7s-;n:7??0:J7f<=On7>5;h7e>5<e78245=O>o2n3:17b?kd;29?xd5880;694?:1y'5`0=99:0D9l6;I6bb>"69?097d;=:188m0d=831b9k4?::m2`a<722wi>=>50;694?6|,8o=6<>?;I6a=>N3io1/=<852:k66?6=3`?i6=44i4d94?=h9mn1<75rb34b>5<3290;w)?j6;334>N3j01C8lh4$035>7=n=;0;66g:b;29?l3a2900c50z&2a3<6891C8o74H5ce?!76>380e8<50;9j1g<722c>j7>5;n3g`?6=3th9:54?:583>5}#9l<1==>4H5`:?M2fn2.:=;4=;h71>5<>i6lm0;66sm27594?2=83:p(o2:3:17d;m:188m0`=831d=ij50;9~f701290?6=4?{%3f2?7782B?n45G4`d8 4712;1b9?4?::k6f?6=3`?m6=44o0fg>5<54;294~"6m?0:<=5G4c;8L1ga3-;::7<4i4094?=n=k0;66g:f;29?j7cl3:17pl=6583>1<729q/=h851128L1d>3A>jj6*>1781?l352900e8l50;9j1c<722e:hi4?::a635=83>1<7>t$0g5>4673A>i56F;ag9'540=:2c>>7>5;h7a>5<3;;<6F;b89K0d`<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo019K0g?<@=km7)?>6;08m04=831b9o4?::k6b?6=3f;oh7>5;|`1f4<72=0;6=u+1d49556<@=h27E:nf:&253<53`?96=44i4`94?=n=o0;66a>de83>>{e:k:1<7:50;2x 4c128:;7E:m9:J7ec=#98<1>6g:2;29?l3e2900e8h50;9l5ab=831vn?oi:187>5<7s-;n:7??0:J7f<=On7>5;h7e>5<e78245=O>o2n3:17b?kd;29?xd5im0;694?:1y'5`0=99:0D9l6;I6bb>"69?097d;=:188m0d=831b9k4?::m2`a<722wi>lm50;694?6|,8o=6<>?;I6a=>N3io1/=<852:k66?6=3`?i6=44i4d94?=h9mn1<75rb3ca>5<3290;w)?j6;334>N3j01C8lh4$035>7=n=;0;66g:b;29?l3a2900c50z&2a3<6891C8o74H5ce?!76>380e8<50;9j1g<722c>j7>5;n3g`?6=3th99=4?:583>5}#9l<1==>4H5`:?M2fn2.:=;4=;h71>5<>i6lm0;66sm25d94?2=83:p(o2:3:17d;m:188m0`=831d=ij50;9~f72b290?6=4?{%3f2?7782B?n45G4`d8 4712;1b9?4?::k6f?6=3`?m6=44o0fg>5<54;294~"6m?0:<=5G4c;8L1ga3-;::7<4i4094?=n=k0;66g:f;29?j7cl3:17pl=4b83>1<729q/=h851128L1d>3A>jj6*>1781?l352900e8l50;9j1c<722e:hi4?::a61d=83>1<7>t$0g5>4673A>i56F;ag9'540=:2c>>7>5;h7a>5<j6=4;:183!7b>3;;<6F;b89K0d`<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo<;9;290?6=8r.:i;4>019K0g?<@=km7)?>6;08m04=831b9o4?::k6b?6=3f;oh7>5;|`10=<72=0;6=u+1d49556<@=h27E:nf:&253<53`?96=44i4`94?=n=o0;66a>de83>>{e:h:1<7:50;2x 4c128:;7E:m9:J7ec=O5<54;294~"6m?0:<=5G4c;8L1ga3A>o7)?96;7`=>"69?097d;=:188m0d=831b9k4?::m2`a<722wi>4k50;694?6|,8o=6<>?;I6a=>N3io1C8i5+17491f?<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo<6d;290?6=8r.:i;4>019K0g?<@=km7E:k;%352?3d12.:=;4=;h71>5<>i6lm0;66sm28a94?2=83:p(n7>5;h7e>5<e78245=O3?h56*>1781?l352900e8l50;9j1c<722e:hi4?::a61<7>t$0g5>4673A>i56F;ag9K0a=#9?<19n74$035>7=n=;0;66g:b;29?l3a2900c13:187>50z&2a3<6891C8o74H5ce?M2c3-;=:7;l9:&253<53`?96=44i4`94?=n=o0;66a>de83>>{e:021<7:50;2x 4c128:;7E:m9:J7ec=O5<54;294~"6m?0:<=5G4c;8L1ga3A>o7)?96;7`=>"69?097d;=:188m0d=831b9k4?::m2`a<722wi>>j50;694?6|,8o=6<>?;I6a=>N3io1C8i5+17491f?<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo<019K0g?<@=km7E:k;%352?3d12.:=;4=;h71>5<>i6lm0;66sm22`94?2=83:p(n7>5;h7e>5<e78245=O3?h56*>1781?l352900e8l50;9j1c<722e:hi4?::a66?=83>1<7>t$0g5>4673A>i56F;ag9K0a=#9?<19n74$035>7=n=;0;66g:b;29?l3a2900c50z&2a3<6891C8o74H5ce?M2c3-;=:7;l9:&253<53`?96=44i4`94?=n=o0;66a>de83>>{e::=1<7:50;2x 4c128:;7E:m9:J7ec=O5<54;294~"6m?0:<=5G4c;8L1ga3A>o7)?96;7`=>"69?097d;=:188m0d=831b9k4?::m2`a<722wi>?m50;694?6|,8o=6<>?;I6a=>N3io1/=<852:k66?6=3`?i6=44i4d94?=h9mn1<75rb30a>5<3290;w)?j6;334>N3j01C8lh4$035>7=n=;0;66g:b;29?l3a2900c50z&2a3<6891C8o74H5ce?!76>380e8<50;9j1g<722c>j7>5;n3g`?6=3th9>44?:583>5}#9l<1==>4H5`:?M2fn2.:=;4=;h71>5<>i6lm0;66sm23:94?2=83:p(o2:3:17d;m:188m0`=831d=ij50;9~f740290?6=4?{%3f2?7782B?n45G4`d8 4712;1b9?4?::k6f?6=3`?m6=44o0fg>5<54;294~"6m?0:<=5G4c;8L1ga3-;::7<4i4094?=n=k0;66g:f;29?j7cl3:17pl=2483>1<729q/=h851128L1d>3A>jj6*>1781?l352900e8l50;9j1c<722e:hi4?::a672=83>1<7>t$0g5>4673A>i56F;ag9'540=:2c>>7>5;h7a>5<3;;<6F;b89K0d`<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo<7d;290?6=8r.:i;4>019K0g?<@=km7)?>6;08m04=831b9o4?::k6b?6=3f;oh7>5;|`1de83>>{e:1h1<7:50;2x 4c128:;7E:m9:J7ec=#98<1>6g:2;29?l3e2900e8h50;9l5ab=831vn?6n:187>5<7s-;n:7??0:J7f<=On7>5;h7e>5<e78245=O>o2n3:17b?kd;29?xd5010;694?:1y'5`0=99:0D9l6;I6bb>"69?097d;=:188m0d=831b9k4?::m2`a<722wi>5950;694?6|,8o=6<>?;I6a=>N3io1/=<852:k66?6=3`?i6=44i4d94?=h9mn1<75rb3:5>5<3290;w)?j6;334>N3j01C8lh4$035>7=n=;0;66g:b;29?l3a2900c50z&2a3<6881C8o74H5ce?!76>380e8<50;9j13<722c>n7>5;h7e>5<e78244=O>o2j3:17d;i:188k4bc2900qo=9f;291?6=8r.:i;4>009K0g?<@=km7)?>6;08m04=831b9;4?::k6f?6=3`?m6=44o0fg>5<55;294~"6m?0:<<5G4c;8L1ga3-;::7<4i4094?=n=?0;66g:b;29?l3a2900c50z&2a3<6881C8o74H5ce?!76>380e8<50;9j13<722c>n7>5;h7e>5<e78244=O>o2j3:17d;i:188k4bc2900qo=9a;291?6=8r.:i;4>009K0g?<@=km7)?>6;08m04=831b9;4?::k6f?6=3`?m6=44o0fg>5<55;294~"6m?0:<95G4c;8L1ga3-;::764i4094?=n=?0;66g:f;29?l7ck3:17b?kd;29?xd4>k0;684?:1y'5`0=99;0D9l6;I6bb>"69?097d;=:188m00=831b9o4?::k6b?6=3f;oh7>5;|`01`<72:0;6=u+1d490g><@=h27E:nf:k6n7>5;n3g2?6=3th89i4?:283>5}#9l<18o64H5`:?M2fn2c>47>5;h36f?6=3f;o:7>5;|`011<72=0;6=u+1d49531<@=h27E:nf:k65<e787f==O5<5<>7>54;294~"6m?0:::5G4c;8L1ga3`?36=44i7294?=n9ml1<75`1e494?=zj:?i6=4<:183!7b>3>i46F;b89K0d`5<3290;w)?j6;353>N3j01C8lh4i4:94?=n>90;66g>dg83>>i6l?0;66sm34c94?5=83:p(>o6=k0;66a>d783>>{e;=o1<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd4=00;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl<4b83>1<729q/=h851758L1d>3A>jj6g:8;29?l072900e50z&2a3<6>>1C8o74H5ce?l3?2900e;>50;9j5a`=831d=i850;9~f63029086=4?{%3f2?2e02B?n45G4`d8m0>=831b=8l50;9l5a0=831vn>:7:187>5<7s-;n:7?97:J7f<=ON3io1b954?::k21g<722e:h;4?::a710=83>1<7>t$0g5>4003A>i56F;ag9j1=<722c=<7>5;h3gb?6=3f;o:7>5;|`0<6<72<0;6=u+1d49557<@=h27E:nf:&253<53`?96=44i4494?=n=k0;66g:f;29?j7cl3:17pl<8383>0<729q/=h851138L1d>3A>jj6*>1781?l352900e8850;9j1g<722c>j7>5;n3g`?6=3th84<4?:483>5}#9l<1==?4H5`:?M2fn2.:=;4=;h71>5<>o2n3:17b?kd;29?xd4090;684?:1y'5`0=99;0D9l6;I6bb>"69?097d;=:188m00=831b9o4?::k6b?6=3f;oh7>5;|`03c<72<0;6=u+1d49557<@=h27E:nf:&253<53`?96=44i4494?=n=k0;66g:f;29?j7cl3:17pl<7d83>0<729q/=h851138L1d>3A>jj6*>1781?l352900e8850;9j1g<722c>j7>5;n3g`?6=3th8;i4?:483>5}#9l<1==?4H5`:?M2fn2.:=;4=;h71>5<>o2n3:17b?kd;29?xd4?j0;684?:1y'5`0=99;0D9l6;I6bb>"69?097d;=:188m00=831b9o4?::k6b?6=3f;oh7>5;|`03g<72<0;6=u+1d49557<@=h27E:nf:&253<53`?96=44i4494?=n=k0;66g:f;29?j7cl3:17pl<0883>1<729q/=h851128L1d>3A>jj6*>1781?l352900e8l50;9j1c<722e:hi4?::a750=83>1<7>t$0g5>4673A>i56F;ag9'540=:2c>>7>5;h7a>5<3;;<6F;b89K0d`<,8;=6?5f5383>>o2j3:17d;i:188k4bc2900qo=?d;290?6=8r.:i;4>029K0g?<@=km7)?>6;:8m04=831b9k4?::k2`f<722e:hi4?::a75e=83>1<7>t$0g5>4643A>i56F;ag9'540=02c>>7>5;h7e>5<5<9;7>55;294~"6m?0:<<5G4c;8L1ga3-;::7<4i4094?=n=?0;66g:b;29?l3a2900c3:197>50z&2a3<6881C8o74H5ce?!76>380e8<50;9j13<722c>n7>5;h7e>5<e78244=O>o2j3:17d;i:188k4bc2900qo:=4;291?6=8r.:i;4>009K0g?<@=km7)?>6;08m04=831b9;4?::k6f?6=3`?m6=44o0fg>5<9?7>55;294~"6m?0:<<5G4c;8L1ga3-;::7<4i4094?=n=?0;66g:b;29?l3a2900c50z&2a3<6881C8o74H5ce?!76>380e8<50;9j13<722c>n7>5;h7e>5<e78241=O>o2n3:17d?kc;29?j7cl3:17pl;1g83>0<729q/=h851138L1d>3A>jj6*>1781?l352900e8850;9j1g<722c>j7>5;n3g`?6=3th?><4?:483>5}#9l<1==?4H5`:?M2fn2.:=;4=;h71>5<>o2n3:17b?kd;29?xd39=0;6>4?:1y'5`0=o203:17d?:b;29?j7c>3:17pl;1283>6<729q/=h854c:8L1d>3A>jj6g:8;29?l72j3:17b?k6;29?xd38h0;694?:1y'5`0=9?=0D9l6;I6bb>o203:17d8?:188m4ba2900c50z&2a3<3j11C8o74H5ce?l3?2900e<;m:188k4b12900qo:?8;290?6=8r.:i;4>669K0g?<@=km7d;7:188m36=831b=ih50;9l5a0=831vn9?>:180>5<7s-;n:7:m8:J7f<=O=831b:=4?::k2`c<722e:h;4?::a046=8391<7>t$0g5>1d?3A>i56F;ag9j1=<722c:9o4?::m2`3<722wi8=:50;694?6|,8o=6<88;I6a=>N3io1b954?::k54?6=3`;oj7>5;n3g2?6=3th?5}#9l<18o64H5`:?M2fn2c>47>5;h36f?6=3f;o:7>5;|`747<72=0;6=u+1d49531<@=h27E:nf:k65<e787f==O5<5<;<7>54;294~"6m?0:::5G4c;8L1ga3`?36=44i7294?=n9ml1<75`1e494?=zj=:o6=4<:183!7b>3>i46F;b89K0d`5<3290;w)?j6;353>N3j01C8lh4i4:94?=n>90;66g>dg83>>i6l?0;66sm41a94?5=83:p(>o6=k0;66a>d783>>{e;oi1<7:50;2x 4c128<<7E:m9:J7ec=n=10;66g90;29?l7cn3:17b?k6;29?xd3;:0;684?:1y'5`0=99;0D9l6;I6bb>"69?097d;=:188m00=831b9o4?::k6b?6=3f;oh7>5;|`774<72<0;6=u+1d49552<@=h27E:nf:&253db83>>i6lm0;66sm42094?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi8>:50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<:?1<7;50;2x 4c128::7E:m9:J7ec=#98<1>6g:2;29?l312900e8l50;9j1c<722e:hi4?::a060=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm42594?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi8>650;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<:31<7;50;2x 4c128::7E:m9:J7ec=#98<1>6g:2;29?l312900e8l50;9j1c<722e:hi4?::a01d=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm45c94?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi89750;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<=21<7;50;2x 4c128::7E:m9:J7ec=#98<1>6g:2;29?l312900e8l50;9j1c<722e:hi4?::a011=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm45494?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi89;50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<=>1<7;50;2x 4c128::7E:m9:J7ec=#98<1>6g:2;29?l312900e8l50;9j1c<722e:hi4?::a015=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm47;94?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi8;650;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e6g:2;29?l312900e8l50;9j1c<722e:hi4?::a030=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm47794?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi8;:50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e6g:2;29?l312900e8l50;9j1c<722e:hi4?::a037=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm47294?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi88h50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<6g:2;29?l312900e8l50;9j1c<722e:hi4?::a00b=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm44a94?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi88l50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<6g:2;29?l312900e8l50;9j1c<722e:hi4?::a00?=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm44594?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi88850;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<6g:2;29?l312900e8l50;9j1c<722e:hi4?::a002=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm44194?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi88<50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<<;1<7;50;2x 4c128::7E:m9:J7ec=#98<1>6g:2;29?l312900e8l50;9j1c<722e:hi4?::a006=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm45d94?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi89k50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e6g:2;29?l312900e8l50;9j1c<722e:hi4?::a03c=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm47f94?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi8;m50;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e6g:2;29?l312900e8l50;9j1c<722e:hi4?::a03g=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm47194?3=83:p(o2:3:17d;9:188m0d=831b9k4?::m2`a<722wi88650;794?6|,8o=6<>>;I6a=>N3io1/=<852:k66?6=3`?=6=44i4`94?=n=o0;66a>de83>>{e<=n1<7;50;2x 4c128::7E:m9:J7ec=#98<1>6g:2;29?l312900e8l50;9j1c<722e:hi4?::a01e=83?1<7>t$0g5>4663A>i56F;ag9'540=:2c>>7>5;h75>5<>i6lm0;66sm4`;94?5=83:p(5<4290;w)?j6;354>N3j01C8lh4$035>4>5<e78225=O5;h33f?6=3f;o:7>5;|`14d<72:0;6=u+1d49536<@=h27E:nf:&253<6m2c:t$0g5>4073A>i56F;ag9'540=9l1b==o50;9j55d=831d=i850;9~f4`229086=4?{%3f2?7182B?n45G4`d8 47128o0e<>n:188m46e2900c50z&2a3<6>91C8o74H5ce?!76>3;n7d??a;29?l77j3:17b?k6;29?xd6n:0;6>4?:1y'5`0=9?:0D9l6;I6bb>"69?0:i6g>0`83>>o68k0;66a>d783>>{e9o81<7=50;2x 4c128<;7E:m9:J7ec=#98<1=h5f11c94?=n99h1<75`1e494?=zj8l:6=4<:183!7b>3;=<6F;b89K0d`<,8;=65<5<53;294~"6m?0::=5G4c;8L1ga3-;::7?j;h33e?6=3`;;n7>5;n3g2?6=3th:ik4?:283>5}#9l<1=;>4H5`:?M2fn2.:=;4>e:k24d<722c:N3io1/=<851d9j55g=831b==l50;9l5a0=831vn5<7s-;n:7?90:J7f<=Om:188k4b12900qo?jc;297?6=8r.:i;4>619K0g?<@=km7)?>6;3f?l77i3:17d??b;29?j7c>3:17pl>ec83>6<729q/=h851728L1d>3A>jj6*>1782a>o68h0;66g>0c83>>i6l?0;66sm1dc94?5=83:p(5<4290;w)?j6;354>N3j01C8lh4$035>4c5<e78225=O5;h33f?6=3f;o:7>5;|`2a2<72:0;6=u+1d49536<@=h27E:nf:&253<6m2c:1<7>t$0g5>4053A>i56F;ag9'540=:m1b==o50;9j55d=831b==m50;9l5a0=831vn?>l:187>5<7s-;n:7?92:J7f<=Om:188m46d2900c50z&2a3<6>;1C8o74H5ce?!76>38=7d??a;29?l77j3:17d??c;29?j7c>3:17pl=7183>0<729q/=h851778L1d>3A>jj6*>17816>o68h0;66g>0c83>>o68j0;66g>0e83>>i6l?0;66sm21g94?3=83:p(5<2290;w)?j6;351>N3j01C8lh4$035>035<5<e78220=O5;h33f?6=3`;;o7>5;h33`?6=3f;o:7>5;|`0b7<72:0;6=u+1d49536<@=h27E:nf:&253<602c:1<7>t$0g5>4053A>i56F;ag9'540=:91b==o50;9j55d=831b==m50;9l5a0=831vn?9=:180>5<7s-;n:7?90:J7f<=Om:188k4b12900qo<>0;297?6=8r.:i;4>619K0g?<@=km7)?>6;3f?l77i3:17d??b;29?j7c>3:17pl=7583>1<729q/=h851708L1d>3A>jj6*>1781`>o68h0;66g>0c83>>o68j0;66a>d783>>{e:881<7:50;2x 4c128<97E:m9:J7ec=#98<1>i5f11c94?=n99h1<75f11a94?=h9m<1<75rb355>5<2290;w)?j6;351>N3j01C8lh4$035>745<5<e78220=O5;h33f?6=3`;;o7>5;h33`?6=3f;o:7>5;|`046<72<0;6=u+1d49533<@=h27E:nf:&253<6l2c:t$0g5>4073A>i56F;ag9'540=n01b==o50;9j55d=831d=i850;9~f6g>29086=4?{%3f2?7182B?n45G4`d8 4712;h0e<>n:188m46e2900c>3:1?7>50z&2a3<6>91C8o74H5ce?!76>38i7d??a;29?l77j3:17b?k6;29?xd4;?0;6>4?:1y'5`0=9?:0D9l6;I6bb>"69?09n6g>0`83>>o68k0;66a>d783>>{e;;91<7=50;2x 4c128<;7E:m9:J7ec=#98<1>o5f11c94?=n99h1<75`1e494?=zj:k36=4::183!7b>3;=96F;b89K0d`<,8;=6?m4i02b>5<5<5<55;294~"6m?0::85G4c;8L1ga3-;::75;h33g?6=3`;;h7>5;n3g2?6=3th8?84?:483>5}#9l<1=;;4H5`:?M2fn2.:=;4=c:k24d<722c:N3io1/=<852b9j55g=831b==l50;9j55e=831b==j50;9l5a0=831vn?k6:186>5<7s-;n:7?95:J7f<=Oo8:186>5<7s-;n:7?95:J7f<=Om:188m46d2900e<>k:188k4b12900qo=64;291?6=8r.:i;4>649K0g?<@=km7)?>6;0`?l77i3:17d??b;29?l77k3:17d??d;29?j7c>3:17pl<3583>0<729q/=h851778L1d>3A>jj6*>1781g>o68h0;66g>0c83>>o68j0;66g>0e83>>i6l?0;66sm33394?3=83:p(5<2290;w)?j6;351>N3j01C8lh4$035>7e5<5<e78220=O5;h33f?6=3`;;o7>5;h33`?6=3f;o:7>5;|`076<72<0;6=u+1d49533<@=h27E:nf:&253<5k2c:t$0g5>4023A>i56F;ag9'540=:j1b==o50;9j55d=831b==m50;9j55b=831d=i850;9~f65e290?6=4?{%3f2?71:2B?n45G4`d8 4712oo0e<>n:188m46e2900e<>l:188k4b12900qo=nf;291?6=8r.:i;4>649K0g?<@=km7)?>6;6e?l77i3:17d??b;29?l77k3:17d??d;29?j7c>3:17pl0<729q/=h851778L1d>3A>jj6*>1781g>o68h0;66g>0c83>>o68j0;66g>0e83>>i6l?0;66sm38094?3=83:p(5<2290;w)?j6;351>N3j01C8lh4$035>7e5<5<e78220=O5;h33f?6=3`;;o7>5;h33`?6=3f;o:7>5;|`13<<72:0;6=u+1d49536<@=h27E:nf:&253<5j2c:t$0g5>4073A>i56F;ag9'540=:k1b==o50;9j55d=831d=i850;9~f71d290?6=4?{%3f2?71:2B?n45G4`d8 4712;;0e<>n:188m46e2900e<>l:188k4b12900qo<>a;290?6=8r.:i;4>639K0g?<@=km7)?>6;02?l77i3:17d??b;29?l77k3:17b?k6;29?xd5?10;684?:1y'5`0=9??0D9l6;I6bb>"69?09i6g>0`83>>o68k0;66g>0b83>>o68m0;66a>d783>>{e:8<1<7;50;2x 4c128<>7E:m9:J7ec=#98<1>h5f11c94?=n99h1<75f11a94?=n99n1<75`1e494?=zj;oi6=4<:183!7b>3;=<6F;b89K0d`<,8;=6<64i02b>5<5<53;294~"6m?0::=5G4c;8L1ga3-;::7?j;h33e?6=3`;;n7>5;n3g2?6=3th9ii4?:583>5}#9l<1=;<4H5`:?M2fn2.:=;4>0:k24d<722c:1<7>t$0g5>4053A>i56F;ag9'540=:=1b==o50;9j55d=831b==m50;9l5a0=831vn?ki:186>5<7s-;n:7?95:J7f<=Om:188m46d2900e<>k:188k4b12900qo639K0g?<@=km7)?>6;0b?l77i3:17d??b;29?l77k3:17b?k6;29?xd4jo0;694?:1y'5`0=9?80D9l6;I6bb>"69?0>?6g>0`83>>o68k0;66g>0b83>>i6l?0;66sm2g694?3=83:p(5<2290;w)?j6;351>N3j01C8lh4$035>cb5<5<e78220=O5<5<e78227=O5;h33f?6=3`;;o7>5;n3g2?6=3th9jl4?:483>5}#9l<1=;;4H5`:?M2fn2.:=;4;e:k24d<722c:k650;794?6|,8o=6<8:;I6a=>N3io1/=<851178m46f2900e<>m:188m46d2900e<>k:188k4b12900qo649K0g?<@=km7)?>6;db?l77i3:17d??b;29?l77k3:17d??d;29?j7c>3:17pl<5483>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd4=:0;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl<5083>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd4"69?0n7d??a;29?j7c>3:17pl<4e83>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd4"69?0n7d??a;29?j7c>3:17pl<4883>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd4<>0;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl;0c83>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd3800;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl;0683>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd38<0;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl;0283>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd3880;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd4nm0;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl<5g83>7<729q/=h8514d8L1d>3A>jj6*>178f?l77i3:17b?k6;29?xd39<0;6?4?:1y'5`0=9"69?0n7d??a;29?j7c>3:17pl<0183>0<729q/=h851778L1d>3A>jj6*>1780<>o68h0;66g>0c83>>o68j0;66g>0e83>>i6l?0;66sm2gd94?2=83:p(3;=96F;b89K0d`<,8;=6;5f11c94?=n99h1<75f11a94?=n99n1<75`1e494?=zj:i96=4;:183!7b>3;=>6F;b89K0d`<,8;=6?64i02b>5<5<e78220=O5<5<e78220=O5;h33f?6=3`;;o7>5;h33`?6=3f;o:7>5;|`1b`<72<0;6=u+1d49533<@=h27E:nf:&2535;h33f?6=3`;;o7>5;h33`?6=3f;o:7>5;|`0f`<72<0;6=u+1d49533<@=h27E:nf:&253<5=2c:t$0g5>4023A>i56F;ag9'540=:01b==o50;9j55d=831b==m50;9j55b=831d=i850;9~f7`2290>6=4?{%3f2?71=2B?n45G4`d8 47128l0e<>n:188m46e2900e<>l:188m46c2900c50z&2a3<6><1C8o74H5ce?!76>3827d??a;29?l77j3:17d??c;29?l77l3:17b?k6;29?xd4k80;684?:1y'5`0=9??0D9l6;I6bb>"69?0996g>0`83>>o68k0;66g>0b83>>o68m0;66a>d783>>{e:oi1<7;50;2x 4c128<>7E:m9:J7ec=#98<1h6g>0`83>>o68k0;66g>0b83>>o68m0;66a>d783>>{e;kk1<7<50;2x 4c128?27E:m9:J7ec=n9931<75`1e494?=zj=3?6=4na;294~"6m?0:hh5G4c;8L1ga3S?:6lu=f;13>47=9;0:57?n:0195g<6<3;h6p*>5487?!72>3>0(<>j:59'55`=<2.:==4;;%325?2<,8;9695+10190>"6m;087)?j3;18 4702=1/=<654:&25<<33-;:m7:4$03a>1=#98i186*>1e87?!76m3>0(<4;;%316?2<,888695+13690>"6:<0?7)?=6;68 4402=1/=?654:&26<<33-;9m7:4$00a>1=#9;i186*>2e87?!75m3>0(<"6;<0?7)?<6;68 4502=1/=>654:&27<<33-;8m7:4$01a>1=#9:i186*>3e87?!74m3>0(<=i:59'516=<2.:8<4;;%376?2<,8>8695+15690>"6<<0?7)?;6;68 4202=1/=9654:&20<<33-;?m7:4$06a>1=#9=i186*>4e87?!73m3>0(<:i:59'506=<2.:9<4;;%366?2<,8?8695+14690>"3j?0?n95+10690>"6m90:h85+14597>"6=1087):m5;6a0>"69<0?7d;6:188m0g=831bjo4?::keg?6=3`;n87>5;h3f1?6=3`>i>7>5;h6a7?6=3`>96=4+1e`904=i9mk1<65f4183>!7cj3>:7c?ka;38?l5a290/=il5409m5ag=:21b?h4?:%3gf?263g;om7=4;h1g>5<#9mh18<5a1ec90>=n;j0;6)?kb;62?k7ci3?07d=m:18'5ad=<81e=io56:9j7d<72-;on7:>;o3ge?1<3`926=4+1e`904=i9mk1465f4b83>!7cj3>i7c?ka;28?l2f290/=il54c9m5ag=921b844?:%3gf?2e3g;om7<4;h6;>5<#9mh18o5a1ec97>=n<>0;6)?kb;6a?k7ci3>07d:9:18'5ad=?6=4+1e`90g=i9mk1;65f4283>!7cj3>i7c?ka;:8?l1f290/=il5789m5ag=821b;54?:%3gf?1>3g;om7?4;h55>5<#9mh1;45a1ec96>=n?<0;6)?kb;5:?k7ci3907d9;:18'5ad=?01e=io54:9j36<72-;on796;o3ge?3<3`=96=4+1e`93<=i9mk1:65f7083>!7cj3=27c?ka;58?l17290/=il5789m5ag=021b:k4?:%3gf?1>3g;om774;h4f>5<#9mh1;45a1ec9e>=n>m0;6)?kb;5:?k7ci3h07d8m:18'5ad=?01e=io5c:9j2d<72-;on796;o3ge?b<3`<26=4+1e`93<=i9mk1i65f6983>!7cj3=27c?ka;d8?l00290/=il5789m5ag=9910e;850;&2`g<012d:hl4>1:9j20<72-;on796;o3ge?7532c=87>5$0fa>2?5<#9mh1;45a1ec951=dc84=>h6lh0:965f8083>!7cj3=27c?ka;35?>o?83:1(3g;om7?n;:k4g?6=,8ni6:74n0fb>4d<3`=i6=4+1e`93<=i9mk1=n54i6594?"6lk0<56`>d`82`>=n>j0;6)?kb;5:?k7ci3;n76g91;29 4be2>30b5<#9mh15l5a1ec96>=n1?0;6)?kb;;b?k7ci3907d7::18'5ad=1h1e=io54:9j=1<72-;on77n;o3ge?3<3`386=4+1e`9=d=i9mk1:65f9383>!7cj33j7c?ka;58?l?6290/=il59`9m5ag=021b5=4?:%3gf??f3g;om774;h:e>5<#9mh15l5a1ec9e>=n0l0;6)?kb;;b?k7ci3h07d6l:18'5ad=1h1e=io5c:9j!7cj33j7c?ka;d8?l>?290/=il59`9m5ag=9910e5950;&2`g<>i2d:hl4>1:9j<3<72-;on77n;o3ge?7532c397>5$0fa>5<#9mh15l5a1ec951=dc8:e>h6lh0:965fa383>!7cj33j7c?ka;35?>of93:1(4d<3`3h6=4+1e`9=d=i9mk1=n54i8:94?"6lk02m6`>d`82`>=n0m0;6)?kb;;b?k7ci3;n76g72;29 4be20k0b5<#9mh1m;5a1ec96>=ni:0;6)?kb;c5?k7ci3907dol:18'5ad=ik1e=io50:9jed<72-;on7om;o3ge?7<3`k26=4+1e`9eg=i9mk1>65fa983>!7cj3ki7c?ka;18?je1290/=il5c49m5ag=821do94?:%3gf?e23g;om7?4;na1>5<#9mh1o85a1ec96>=hk80;6)?kb;a6?k7ci3907bm?:18'5ad=k<1e=io54:9lfc<72-;on7m:;o3ge?3<3fhn6=4+1e`9g0=i9mk1:65`be83>!7cj3i>7c?ka;58?jdd290/=il5c49m5ag=021dno4?:%3gf?e23g;om774;n`b>5<#9mh1o85a1ec9e>=hj00;6)?kb;a6?k7ci3h07bl8:18'5ad=k<1e=io5c:9lf3<72-;on7m:;o3ge?b<3fh>6=4+1e`9g0=i9mk1i65`b583>!7cj3i>7c?ka;d8?jd4290/=il5c49m5ag=9910co<50;&2`g1:9lf4<72-;on7m:;o3ge?7532ei<7>5$0fa>f35<#9mh1o85a1ec951=dc8`1>h6lh0:965`ce83>!7cj3i>7c?ka;35?>idk3:1(4d<3fi<6=4+1e`9g0=i9mk1=n54ob194?"6lk0h96`>d`82`>=hj10;6)?kb;a6?k7ci3;n76and;29 4be2j?0b5<#9mh1j?5a1ec96>=hmo0;6)?kb;d1?k7ci3907bk8:18'5ad=m?1e=io50:9la0<72-;on7k9;o3ge?7<3fo86=4+1e`9a3=i9mk1>65`e383>!7cj3o=7c?ka;18?jc6290/=il5e79m5ag=<21di=4?:%3gf?c13g;om7;4;nfe>5<#9mh1i;5a1ec92>=hll0;6)?kb;g5?k7ci3=07bjk:18'5ad=m?1e=io58:9l`f<72-;on7k9;o3ge??<3fni6=4+1e`9a3=i9mk1m65`d`83>!7cj3o=7c?ka;`8?jb?290/=il5e79m5ag=k21dh:4?:%3gf?c13g;om7j4;nf5>5<#9mh1i;5a1ec9a>=hl<0;6)?kb;g5?k7ci3l07bj;:18'5ad=m?1e=io51198ka5=83.:ho4j6:l2`d<6921dh?4?:%3gf?c13g;om7?=;:mg5?6=,8ni6h84n0fb>45<3fn;6=4+1e`9a3=i9mk1=954obd94?"6lk0n:6`>d`821>=hml0;6)?kb;g5?k7ci3;=76ajd;29 4be2l<0b2d:hl4>9:9lad<72-;on7k9;o3ge?7f32en57>5$0fa>`05<#9mh1i;5a1ec95f=1<7*>dc8f2>h6lh0:h65`d883>!7cj3o=7c?ka;3f?>idm3:1(1e=io50:9lb3<72-;on7h8;o3ge?7<3fl>6=4+1e`9b2=i9mk1>65`f583>!7cj3l<7c?ka;18?xd48<0;694?:1y'5`0=9?;0D9l6;I6bb>"69?0:i6g>0`83>>o68k0;66a>5b83>>i6l?0;66sm2g094?3=83:p(5<3290;w)?j6;350>N3j01C8lh4$035>7>5<5<56z\6g1=:;921==m4=22e>46c349;n7??d:?041<68j16?==511a8yv2c83:1;=uQ4e08Z1e53W?ho6P:c`9]0f7:0R86i;_6`b>X3kl1U8nj4^5a`?[2dj2T?ol5Q4b;8Z1e?3W>h;6P;c79>0gg=99=019o::4d891?f2;5m90:hn522d395ae<5;o96db9>6`3=9mi01?k9:0f`?84b?3;oo63<18854>;4910=<63<16854>;49?0=<63<14854>;4:j0=<63<2c854>;4:h0=<63<28854>;4:10=<63<8b854>;40k0=<63<8`854>;4000=<63<89854>;41o0=<63<9d854>;41m0=<63<9b854>;41k0=<63<55854>;4=;0=<63<51854>;4;4;4;3810=<63;07854>;38=0=<63;03854>;3890=<63;4nj0=<63;9582a1=:<0>18o=4=5;7><1<5=3?6484=5;7><3<5=3?64:4=5;7><5<5=3?64<4=5;7><7<5=3?64>4=5;7>=`<5=3?65k4=5;7>=e<5=3?65l4=5;7>=g<5=3?6574=5;7>=><5=3?6594=5;7>=0<5=3?65;4=5;7>=2<5=3?65=4=5;7>d4<5=3?6l?4=5;7>d6<5=3?64h4=5;7>=b<5=3?65<4=5;7>de<5=3?6lo4=5;7>d?<5=3?6l64}r7`2?6=;rT>o;524`795ae<5=3j64bc3ty>i>4?:2y]1`5<5:l96<>m;<1bb?77k2wx9lk50;51[3fm27?5n4:2:?7=g<2:27?5l4:2:?7e1<2:27?m>4:2:?7e7<2:278?44:2:?1``<2:279hk4:2:?1a5<2:279i<4:2:?1a7<2:279i>4:2:?1a1<2:279i84:2:?1a3<2:279i:4:2:?12d<2:279:44:2:?12=<2:279::4:2:?123<2:279:84:2:?121<2:279:>4:2:?127<2:279n?4:2:?1f4<2:279n=4:2:?1ec<2:279mh4:2:?1ea<2:279mn4:2:?1eg<2:279ml4:2:?1e5<2:2795k4:2:?1=`<2:2795i4:2:?1=f<2:2795o4:2:?1=d<2:279544:2:?1==<2:279>n4:2:?16g<2:279>l4:2:?16<<2:279>54:2:?162<2:279>;4:2:?160<2:279>94:2:?034<2:278;=4:2:?02c<2:278:h4:2:?02a<2:278:n4:2:?02d<2:278:44:2:?02g<2:2784>4:2:?0<7<2:2784<4:2:?0<5<2:278;k4:2:?03`<2:278;i4:2:?03f<2:278;o4:2:?04<<2:278<;4:2:?055<2:2784:2:?717<2:27?9<4:2:?715<2:27?8k4:2:?70`<2:27?:k4:2:?72`<2:27?:i4:2:?72f<2:27?:o4:2:?72d<2:27?:>4:2:?71=<2:27?8i4:2:?70f<2:27?594:a:p13e=838pR88l;<1b`?7cl2wx9nj50;71[3dl27?m:4:2:?7e0<2:27?m;4:2:?7ea<2:27?mn4:2:?0ea<2:278mn4:2:?0a5<2:278i<4:2:?0a7<2:278i>4:2:?0a1<2:278i84:2:?0a3<2:278i:4:2:?0a=<2:278i44:2:?14=<2:279<:4:2:?143<2:279<84:2:?141<2:279<>4:2:?147<2:279<<4:2:?145<2:2799=4:2:?10c<2:2798h4:2:?10a<2:2798n4:2:?10g<2:2798l4:2:?10<<2:279854:2:?17`<2:279?i4:2:?17f<2:279?o4:2:?17d<2:279?44:2:?17=<2:279?:4:2:?173<2:2794h4:2:?1;4:2:?760<2:27?>94:2:?766<2:27?>?4:2:?765<2:27?=k4:2:?764<2:27??>4:2:?774<2:27???4:2:?771<2:27??84:2:?773<2:27??:4:2:?77=<2:27??44:2:?70g<2:27?8l4:2:?70<<2:27?854:2:?702<2:27?8;4:2:?700<2:27?894:2:?706<2:27?594:9:p1`4=838pR8j8;<1f=?7cl2wx9h>50;0xZ0b1349n47?kd:p1a`=838pR8j:;<1f3?7cl2wx9ik50;0xZ0b3349n:7?kd:p1ab=838pR8j<;<1f1?7cl2wx9im50;0xZ0b5349n87?kd:p1ad=838pR8j>;<1f7?7cl2wx9io50;0xZ0b7349n>7?kd:p1a?=838pR8mi;<1f5?7cl2wx9i650;0xZ0eb349n<7?kd:p10b=838pR8=6;<65=?7cl2wx98l50;0xZ05?34>=47?kd:p10g=838pR8=8;<653?7cl2wx98750;0xZ05134>=:7?kd:p10>=838pR8=:;<651?7cl2wx98950;0xZ05334>=87?kd:p103=838pR8==;<656?7cl2wx98:50;0xZ05634>==7?kd:p105=838pR8=?;<654?7cl2wx98<50;0xZ04a34>>j7?kd:p107=838pR850;0xZ04c34>>h7?kd:p11`=838pR8>n7?kd:p11b=838pR834>>57?kd:p11g=838pR8<8;<663?7cl2wx99750;0xZ04134>>:7?kd:p11>=838pR8<:;<661?7cl2wx99950;0xZ04334>>87?kd:p110=838pR8<<;<667?7cl2wx99;50;0xZ04534>>>7?kd:p112=838pR8<>;<665?7cl2wx99=50;0xZ04734>><7?kd:p114=838pR8?i;<67b?7cl2wx99?50;0xZ07b34>?i7?kd:p132=838pR8=i;<65b?7cl2wx9;=50;0xZ05b34>=i7?kd:p134=838pR8=k;<65`?7cl2wx9;?50;0xZ05d34>=o7?kd:p136=838pR8=m;<65f?7cl2wx98h50;0xZ05f34>=m7?kd:p10c=838pR8=<;<657?7cl2wx98850;0xZ04?34>>47?kd:p11d=838pR8?k;<67`?7cl2wx99>50;0xZ07d34>?o7?kd:p1f5=838pR8l7;<0f3?7cl2wx9n?50;0xZ0d0348n:7?kd:p1f6=838pR8l9;<0f1?7cl2wx9oh50;0xZ0d2348n87?kd:p1gc=838pR8l;;<0f7?7cl2wx9oj50;0xZ0d4348n>7?kd:p1ge=838pR8l=;<0f5?7cl2wx9ol50;0xZ0d6348n<7?kd:p1gg=838pR8l?;<0gb?7cl2wx9o750;0xZ0ga348oi7?kd:p142=838pR9h?;<6:0?g03ty>=?4?:3y]0``<5=3?6:o4}r725?6=:rT?ih5248693==z{<;;6=4={_6f`>;31=0<:6s|51d94?4|V=oh70:64;56?xu28l0;6?uQ4d`891?32>>0q~;?c;296~X3m01684:5729~w06e2909wS:j8:?7=1<0:2wx9=o50;0xZ1c034>2879>;|q64<<72;qU8h84=5;7>d352z\7a0=:<0>1;=5rs424>5<5sW>n863;9585b>{t=9<1<7<37}YvP;e09>0<2=>k1v8><:181[2b827?5949a:p157=838pR9jj;<6:0?0>3ty><=4?:3y]0ab<5=3?6;64}r6eb?6=:rT?hn524869e1=z{=ln6=4={_6gf>;31=0=;6s|4gf94?4|V=nj70:64;45?xu3nj0;6?uQ4e;891?32??0q~:ib;296~X3l11684:5659~w1`f2909wS:k7:?7=1<1;2wx8k750;0xZ1b134>2878=;|q7b=<72;qU8i;4=5;7>=752z\7b3=:<0>14=5rs43b>5<5sW>m963;958b7>{t=831<7<3=m7p}:1983>7}YvP;f39>0<2=?m1v8?9:181[2a927?5948c:p143=838pR9kn;<6:0?1e3ty>;31=0==6s|17`94?c|5=hi60j:7>53z?7e2<2n27?m84:6:?7e3<6lm1v9o8:18182f?3;oh63;a8824d=z{=3j6=4<{<6:f?3a34>2m7?kd:?7=`<68k1v9o::18082f=3;oh63;a786b>;3i00:5<3s4>j87?kc:?7e6<6lj168l<51ea891?b28n=7p};a083>70|5=k?67=5==k16?5<55c9>7=7==k16?5>55c9>72`==k16?:k55c9>72b==k16?:m55c9>72d==k16?=755c9>750==k16?<>55c9>75b=9mi01>>l:0f`?84b13;;o63=fd824g=::oi1==o4}r6b4?6=:2n3:1>:u24`095ab<5=<268l4=54;>0d<5=<<68l4=545>0d<5=<>68l4=547>0d<5=<968l4=542>0d<5=<;68l4=57e>0d<5=?n68l4=57g>0d<5=?h68l4=57a>0d<5=?j68l4=57:>0d<5=?<68l4=575>0d<5=?>68l4=577>0d<5=?868l4=571>0d<5=?:68l4=573>0d<5=>m68l4=56f>0d<5=0d<5=0d<5=0d<5=<868l4=57;>0d<5=>o68l4=56`>0d<5=3=6<>m;<6:0?7b=2wx8l650;1x91gc28nh70:nc;3gg>;3i00:h;5rs5ca>5<50r7?mi4>de9>7db=9mi01>ol:0f`?85b83?i70=j1;7a?85b:3?i70=j3;7a?85b<3?i70=j5;7a?85b>3?i70=j7;7a?85b03?i70=j9;7a?825?3?i70:=6;7a?825=3?i70:=4;7a?825;3?i70:=2;7a?82583;oo63;1g86f>;3:80>n63;3286f>;3;80:hn5242091g=:<:>19o5242791g=:<:<19o5242591g=:<:219o5242;91g=:<=h19o5245c91g=:<=319o5245:91g=:<==19o5245491g=:<=?19o5245691g=:<=919o5rs5cb>5<5=r7?mn4>de9>65>==k16>=955c9>650==k16>=;55c9>652==k16>==55c9>654==k16>=?55c9>656==k16>8>55c9>61`==k16>9k55c9>61b==k16>9m55c9>61d==k16>9o55c9>61?==k16>9655c9>66c==k16>>j55c9>66e==k16>>l55c9>66g==k16>>755c9>66>==k16>>955c9>660==k16>5k55c9>6=b==k16>5m55c9>6=d==k16>5o55c9>6=?==k16>5655c9>6=1==k16>5855c9~w65f2909w0=<9;7e?854j3;o:6s|32;94?5|5:9264>0`9~w7c?2909w04b13ty9in4?:3y>6`6==o16>hj51e48yv4bm3:1>v3=e086b>;5mo0:h;5rs3d3>5<5s48n>7;i;<0e5?7c>2wx>k=50;0x97c423?m70{t;9;1<70`<5::967de==o16?lh51e48yv5fk3:1?v346e3ty8hk4?:3y>7`6==o16?i851e48yv5bi3:1>v3;4jh0:h;5rs2ga>5<5s49n>7;i;<1af?7c>2wx?hm50;0x96c42ll:0f5?xu4mm0;6?u23d691c=:;ko1=i84}r1fa?6=:r78i84:f:?0fc<6l?1v>ki:18185b>3?m70=l0;3g2>{t;o:1<70`<5:i:67f2=9m<0q~=m8;296~;4m00>j63490:?127<6lm16?><511f8967a28:o7p}<7383>0}::jh1==l4=25a>4bc34;ni7??b:?05c<68j1684:5429~w7ee2908w0;5k:0:hk522e6950d53z?1g6<6l?16>n:5599>6a3==11v?jk:18184c<3;o:63=e8824a=z{;?j6=4:{<0`g?77i279o9490:?126<6lm16?><511`8967a28:i7p}<7283>3}::ji1==l4=25`>4bc34;ni7??a:?2aa<68k16?0q~6<;m;|q1g1<72:q6>n:51e4897e22<201?j9:4:8yv4d:3:1:v3=d482`3=::lh1==o4=3gg>46d348nj7??d:?1b3<68h16>k<511c8yv42j3:19v3=ce824d=::j?1:=5227695ab<5:986<>k;<114?77l2wx?::50;4x97ec28:i70=8d;3g`>;6mm0:l;<6:0?223ty9oi4?:2y>6fb=9m<01?m::0fe?84c>3;>n6s|2b794?5|5;i>6i851e4897cc28:i70;5n?0:o7>55z?1g`<68h16>n85619>633=9mn01>=<:02a?85583;;n6s|36794?0|5;in6<>m;<14a?7cl27:in4>0`9>5`d=99h01><3>=7p}=cd83>6}::jo1=i84=3a5>4ba348o;7?:b:p6f0=839p1?m9:0f5?84d?3?370m;<0e2?77k279j?4>0b9~w73c290>w0;5k>0=<63=6782`a=:;:>1==j4=202>46c3ty8;;4?:7y>6f`=99h01>9i:0fg?87bj3;;m63>e`824g=:;;;1==m4=5;7>1153z?1gc<6l?16>n951ed897b?28?i7p}=c683>6}::j=1=i84=3a;>0><5;n26864}r0`4?6=?r79h54>d79>6c7=99h01?h;:02a?84a03;;n63=fd824a=::o<1==j4=3d:>46f3ty99h4?:4y>6a6=99k01?m7:728970028no70=<4;33f>;4:80:5<1s48o<7??b:?0<5<6lm16=ho511c894c>28:i70==1;33e>;31=0?46s|2e294?5|5;n;65c9~w7e?2908w0;5k00>463=d`86<>{t:j;1<79t=3f:>4b1348m87??c:?1ba<68k16>k6511c897`a28:i70;5n00:5<2s48o=7??a:?1g<<18279:54>de9>763=99n01><=:02g?xu4?10;6;u22e3955d<5:2:60c9>774=99i0197;:5;8yv4c93:1?v3=d082`3=::j31=ih4=3fb>43e3ty9o44?:2y>6f?=9m<01?mn:4:897be2<20q~l;<0eb?77i279j84>0c9>6c?=99h0q~<90;291~;5l;0:46e3499>7??b:p72?=83e9824d=:9l=1==l4=201>46f34>287:n;|q1`7<72:q6>i<51e4897ef28nm70{t:jk1<74b1348oo7;7;|q1ff<72il51e4897`f28:i70;4890:54z?1`6<68h16>;o51ef8965128:j70==3;33e>{t;>k1<78t=3f0>46e3489o7;i;<1;7?7cl27:i:4>0`9>775=99h0197;:5a8yv4c;3:1>v3=d282`3=::mi1=8l4}r0a`?6=;r79hn4>d79>6cd=99h01>>=:02b?xu3;h0;68u23bf955g<5:i>6;>4=560>4bc34;m:7??b:?7=1<412wx=k950;6x96ec28:i70;4i<0:53z?0ga<6l?16?n;51ed896b128?i7p}6}:;j?1=i84=2a5>0><5:n<6864}r3e0`9>657=9mn01>o::02a?85>:3;;n6s|42`94?0|5:in6<>m;<1`2?0734>?87?kd:?2b3<68h16=k;511`891?32:k0q~=le;297~;4kl0:h;523b495a`<5:n<6<;m;|q0g3<72:q6?n851e4896e02<201>j7:4:8yv5e?3:1;v346d349ih7??c:?0f`<68m16?n=511`896df28:27p}>f883>1}:;jl1==o4=321>4bc349j:7??d:?0=6<68m1v9=l:18585dn3;;n63;3<<0:hi521g7955g<58l?6<>m;<6:0?5e3ty8ok4?:2y>7f`=9m<01>m8:0fe?85c03;>n6s|3b594?5|5:i<6;4jm0:n;|q2bd<72=q6?i>511c8976428no70=n6;33f>;41:0:5<1s49o<7??b:?0g=<1827?8;4>de9>5c2=99k01<39h7p}6}:;m:1=i84=2a;>4ba349o57?:b:p7f>=839p1>m7:0f5?85d13?370=ka;7;?xu4j=0;68u23e;95a0<5:hh6<>m;<1a`?77j278nh4>0b9>7f5=99i0q~?ib;290~;4l80:k;<1:0?77l2wx8>k50;4x96b628:i70=l9;43?823?3;oh63>f2824d=:9o81==l4=5;7>6b53z?0`4<6l?16?n751ed896bf28?i7p}6}:;j31=i84=2ab>0><5:ni6864}r1a1?6=>r78hl4>d79>7g`=99k01>m?:02b?85d:3;;m63r78h?4>0`9>7fg=>91689651ef894`528:j70?i1;33f>;31=08i6s|1ga94?2|5:n96<>m;<031?7cl278m:4>0c9>7<2=99h0q~=k2;297~;4l;0:h;523bc95a`<5:ni6<;m;|q0gd<72:q6?no51e4896ee2<201>jl:4:8yv5e>3:19v346e349h>7??b:?0g4<68j1v9:?:18585c;3;;m63;3<00:hi521g3955g<58l;6<>m;<6:0?5a3ty:ji4?:5y>7a5=99h01?>9:0fg?85f03;;h63<94824a=z{:n86=4<{<1g7?7c>278oo4>dg9>7ae=95<3s49oo7?k6:?0g5<68j16?n<511a896e628:j7p};4083>3}:;m>1==o4=2a`>36<5=>j60c9>0<2=<91v46e3ty8h94?:2y>7a2=9m<01>ml:0fe?85cl3;>n6s|3ba94?4|5:ih67ab=9m<01>l6:02b?85d<3;;m6396=4:{<1g1?77i2794h4:f:?70g<6lm16=hh511c891?32=80q~?if;290~;4l<0:m;<1:2?77j2wx?i;50;0x96b228n=70=ke;36f>{t;k81<7=t=2ff>4b1349i57??b:?0g1<68k1v>?;:18185613?370=>8;3g2>{t;8o1<74ba3499?7?k6:p761=838p1>?6:0f5?854j3;;o6s|30194?4|5:;36864=234>4b13ty8=i4?:3y>74>=9ml01><=:0f5?xu49;0;6?u230591==:;8<1=i84}r12g?6=:r78=:4>dg9>777=9m<0q~=>1;296~;49?0>463<1482`3=z{:;i6=4={<122?7cn278>=4>d79~w67f2909w0=>5;3gb>;49o0:h;5rs204>5<5s499o7;7;<11f?7c>2wx?>?50;0x964d28nm70=<6;3g2>{t;:21<74b13498n7??a:p770=838p1>7}:;;h1=ih4=216>4b13ty8>84?:3y>77g==116??751e48yv55n3:1>v3<2`82`c=:;:>1=i84}r110?6=:r78>44:8:?06=<6l?1v>d79~w6>02909w0=7c;7;?85?j3;o:6s|38394?4|5:2h62wx?lo50;0x96>d28n=70=nf;33e>{t;1<1<70><5:2j67}:;1k1955239;95a052z?0v3<8886<>;4010:h;5rs2:f>5<5s49357?kf:?0=6<6l?1v>6k:18185?03;oj63<9382`3=z{:3j6=4={<1:b?3?3492i7?k6:p7d2=838p1>7i:0fe?85f13;o:6s|3``94?4|5:3m67k:0f5?xu4i:0;6?u238g95a`<5:k36752z?0=f<202785o4>d79~w6g62909w0=6c;3gb>;4i?0:h;5rs2c3>5<5s492n7?kf:?0e0<6l?1v?:8:18684703?m70<:0;3g`>;58h0:l;|q14<<72;q6>=955g9>65g=9m<0q~j63=0b82`3=z{;:o6=49{<031?3a348;i7?k6:?155<68k16><<511c8977328:h70<>6;33`>{t:9l1<70`<5;;;6==55g9>644=9m<0q~<>3;296~;58;0>j63=1582`3=z{;;>6=4={<035?3a348:;7?k6:p64?=838p1?>?:4d8977f28n=7p}=a883>0}::?k19k522c095ab<5;m;<05a?77i279;=4>0b9~w70e2909w0<99;7e?841k3;o:6s|27f94?4|5;<368h4=34f>4b13ty9:k4?:7y>631==o16>:>51e48971528:i70<84;33e>;5??0:52z?123<2n279;?4>d79~w7142909w0<95;7e?840<3;o:6s|26794?4|5;4b13ty9;:4?:3y>635==o16>:751e48yv40j3:1>v3=6386b>;5?j0:h;5rs3;4>5<5s48i>7;i;<0b4?7cl2wx>4850;0x97d62n;<05a?77j279;=4>0e9~w7?22909w0m3;oh6s|2`594?5|5;h;60`9~w7?32909w0l3;oh6s|2`494?4|5;km64=50;0x97gb2n;<040?77j279;;4>0e9>62>=99i0q~<62;296~;5im0>j63=9c82`a=z{;k?6=4;{<0b`?7cl279;94>0b9>620=99k01?97:02a?xu5180;6?u22`a91c=::0k1=ij4}r0b7?6=;r79mn4>de9>620=99h01?97:02b?xu5190;6?u22``91c=::031=ij4}r0b6?6=;r79mo4>de9>62?=99k01?9l:02a?xu50o0;6?u22`c91c=::021=ij4}r0b5?6=:r79ml4>de9>62e=99k0q~<<5;296~;5=90>j63=3d82`a=z{;9?6=4={<07b?3a3488h7?kd:p610=83>p1?:i:0fg?847i3;;m63=0b824g=::9o1==j4}r007?6=:r798h4:f:?17f<6lm1v?:::180843m3;oh63=0b824f=::9o1==o4}r006?6=:r798i4:f:?17g<6lm1v?:;:181843l3;oh63=0d824g=z{;9:6=4={<07g?3a3488m7?kd:p615=83?p1?:l:0fg?84683;;m63=13824g=::8>1==j4=335>46d3ty9?=4?:3y>61d==o16>>751ef8yv43:3:18v3=4c82`a=::881==m4=337>46f348::7??b:p67`=838p1?:n:4d8975?28no7p}=4083>6}::=k1=ij4=337>46e348::7??a:p67c=838p1?:6:4d8975028no7p}=4183>6}::=31=ij4=334>46f348:m7??b:p67b=838p1?:7:4d8975128no7p}=3g83>7}::=21=ij4=33b>46f3ty9484?:3y>6d6==o16>5k51ef8yv4?<3:1>v3=9g86b>;50m0:hi5rs3:0>5<5s482i7;i;<0;g?7cl2wx>5<50;0x97?c2i3?m70<78;3g`>{t:>o1<70`<5;2<64655g9>6=0=9mn0q~<=3;296~;5;l0>j63=2b82`a=z{;896=4={<00`?3a3489n7?kd:p677=838p1?=l:4d8974f28no7p}=2183>7}:::h19k5223;95ab52z?17d<2n279>54>de9~w77b2909w0<<9;7e?845?3;oh6s|20f94?4|5;9368h4=305>4bc3ty9=n4?:3y>661==o16>?;51ef8yv46j3:1>v3=3786b>;5:=0:hi5rs372>5<5s489n7;i;<3f3?7c>2wx>8<50;0x974f254:f:?2ad<6l?1v?;::181845?3?m70?jb;3g2>{t:<<1<70`<58oh6?;55g9>5`b=9m<0q~<:8;296~;5:=0>j63>ed82`3=z{;h86=4={<0;`?3a34;nj7?k6:p6g2=838p1?6l:4d894`728n=7p}=b483>7}::1h19k521g395a052z?1d79~w7d02909w0<79;7e?87a;3;o:6s|2c:94?4|5;2368h4=0d7>4b13ty9n44?:3y>6=1==o16=k;51e48yv4ei3:1>v3=8786b>;6n?0:h;5rs5;4>5<6=r78;<4:6:?035<2>278:k4:6:?02`<2>278:i4:6:?02f<2>278:l4:6:?02<<2>278:o4:6:?0<6<2>2784?4:6:?0<4<2>2784=4:6:?03c<2>278;h4:6:?03a<2>278;n4:6:?03g<2>278<>4>d79>0<0=99k01>=m:02a?xu4<<0;6?u236391c=:;de9>7=5==o16?>8511`8963a28:j7p}<4583>7}:;>:19k5234f95a054z?035<6lm16?5<55g9>763=99k01>;::02b?xu4<:0;6?u237d91c=:;de9>7=7==o16?>;511a8963428:j7p}<4383>7}:;?o19k5234`95a054z?02`<6lm16?5>55g9>762=99k01>;>:02b?xu4<80;6?u237f91c=:;de9>72`==o16?>:511a8962a28:j7p}<4183>7}:;?i19k5234;95a054z?02f<6lm16?:k55g9>765=99k01>:k:02b?xu4;l0;6?u237c91c=:;<=1=i84}r155?6=de9>72e==o16?><511c8962>28:j7p}<3e83>7}:;?319k5234495a054z?02<<6lm16?:l55g9>764=99i01>:8:02b?xu4;o0;6?u237`91c=:;<21=i84}r156?6=de9>72b==o16?>=511a8962e28:j7p}<5583>7}:;j7>52z?01`<6=k16?8h51e48yv52:3:1?v3<5e86<>;4==0>463<5382`3=z{:?>6=4<{<16`?72j278994>dg9>703=9m<0q~=:0;297~;4=j0>463<5386<>;4=90:h;5rs270>5<4s49>o7?:b:?017<6lo16?8=51e48yv53m3:1?v3<5c86<>;4=90>463<4d82`3=z{:?:6=4<{<16f?72j2789=4>dg9>707=9m<0q~=;c;297~;4=h0>463<4d86<>;45<4s49>m7?:b:?00`<6lo16?9h51e48yv53i3:1?v3<5886<>;4463<4`82`3=z{:>o6=4<{<16=?72j2788n4>dg9>71b=9m<0q~=;8;297~;4=10>463<4`86<>;4<10:h;5rs26a>5<4s49>47?:b:?00d<6lo16?9l51e48yv53>3:1?v3<5686<>;4<10>463<4782`3=z{:>26=4<{<163?72j278854>dg9>71?=9m<0q~=;7;297~;4=?0:9o5235495a`<5:><675d=9m<0q~=?9;29<~;4800:hi5231:955d<5::m6<>l;<13f?77k278<94>0`9>755=99h01?hl:02`?857=3;;n6s|31594?5|5::=68h4=233>0`<5::36;48k0:k;<0eg?77j278<84>0`9~w677290?w0=>0;3g`>;5m00:k;|q04`<72:q6?=j55g9>75e==o16?=h51e48yv57k3:1>v3<0b82`a=:;9l1==o4}r6:=?6=9mq68?95579>070==?168?;5579>072==?168?=5579>074==?168?>5579>04`==?168??5579>065==?168>?5579>064==?168>:5579>063==?168>85579>061==?168>65579>06?==?1689l5579>01g==?168975579>01>==?168995579>010==?1689;5579>012==?1689=5579>7c4=9m<0197;:5`1?xu4nk0;6?u243591c=:<8>1=i84}r62a?6=:4>de9>06?==o16?l7511c8917228:j7p}7}:<;<19k5240195a0:h7>54z?763<6lm168>655g9>7d>=99k019>m:02b?xu4n00;6?u243791c=:<881=i84}r62g?6=84>de9>061==o16?l6511a8916>28:j7p}7}:<;>19k5240395a0:n7>54z?761<6lm168>855g9>7d1=99k019>8:02b?xu4n>0;6?u243191c=:<8:1=i84}r62e?6=>4>de9>063==o16?l9511a8916228:j7p}7}:<;819k5241d95a0:57>54z?767<6lm168>:55g9>7d0=99k019><:02b?xu4n=0;6?u243291c=:<9n1=i84}r623?6==4>de9>064==o16?l;511c896`a28:j7p}7}:<8l19k5241a95a0::7>54z?75c<6lm168>?55g9>7d3=99i01>hk:02b?xu4n<0;6?u243391c=:<9o1=i84}r62<4>de9>065==o16?l8511a8916628:j7p};0`83>7}:<8>1955241c95a0:97>52z?751<6=k168<;51e48yv2703:1?v3;1286<>;38h0>463;0982`3=z{=:i6=4<{<627?72j27?dg9>05d=9m<0q~:?6;297~;39;0>463;0986<>;38?0:h;5rs52:>5<4s4>:>7?:b:?74=<6lo168=751e48yv27<3:1?v3;1086<>;38?0>463;0582`3=z{=:<6=4<{<625?72j27?<;4>dg9>051=9m<0q~:?2;297~;3990>463;0586<>;38;0:h;5rs526>5<4s4>:<7?:b:?741<6lo168=;51e48yv2783:1?v3;0g86<>;38;0>463;0182`3=z{=:86=4<{<63b?72j27?dg9>055=9m<0q~=ie;297~;38l0>463;0186<>;4nl0:h;5rs522>5<4s4>;i7?:b:?745<6lo168=?51e48yv5ak3:1?v3;0e86<>;4nl0>463dg9>7c`=9m<0q~=id;297~;38j0:9o523ga95a`<5:lo6=51ef8912227<:02`?xu3:10;6>u242395ab<5=>868h4=2;1>46d3ty?>44?:2y>064=9mn019:;:4d896?528:j7p};2c83>6}:<:>1=ij4=565>0`<5:386<>n;|q76f<72:q68>;51ef8912027;:02`?xu3:m0;6>u242495ab<5=>368h4=2;7>46f3ty?>h4?:2y>061=9mn019:6:4d896?228:h7p};2g83>6}:<:21=ij4=56b>0`<5:3>6<>n;|q775<72:q68>751ef8912e279:02b?xu3110;6?;t=54:>00<5=<36884=544>00<5=<=6884=546>00<5=00<5=<:6884=543>00<5=?m6884=57f>00<5=?o6884=57`>00<5=?i6884=57b>00<5=?26884=574>00<5=?=6884=576>00<5=??6884=570>00<5=?96884=572>00<5=?;6884=56e>00<5=>n6884=54e>00<5=00<5=00<5=00<5=?36884=56g>00<5=>h6884=227>4b13ty?4n4?:3y>03?==o1684:5f99~w1>e2909w0:98;7e?82><3o<7p};8`83>7}:287k<;|q7<=<72;q68;;55g9>0<2=m;1v968:181821<3?m70:64;g2?xu30<0;6?u247091c=:<0>1i=5rs5:7>5<5s4>==7;i;<6:0?ba3ty?4>4?:3y>036==o1684:5dd9~w1>52909w0::f;7e?82><3l=7p};8083>7}:<287jl;|q73c<72;q688m55g9>0<2=lk1v99j:181822j3?m70:64;fb?xu3?m0;6?u244c91c=:<0>1h55rs55`>5<5s4>>57;i;<6:0?b03ty?;l4?:3y>001==o1684:5d79~w11>2909w0::6;7e?82><3n>7p};7983>7}:<287j;;|q733<72;q688=55g9>0<2=l:1v99::181822:3?m70:64;f1?xu3?=0;6?u244391c=:<0>1h<5rs550>5<5s4>><7;i;<6:0?b73ty?;?4?:3y>01`==o1684:5cg9~w1162909w0:;e;7e?82><3on7p};9283>7}:287h;;|q7=4<72;q68;j55g9>0<2=mj1v97?:181821k3?m70:64;ga?xu30o0;6?u247`91c=:<0>1il5rs5:f>5<5s4>=m7;i;<6:0?c>3ty?4i4?:3y>035==o1684:5e99~w1>12909w0::8;7e?82><3o?7p};7c83>7}:<=n19k524869`<=z{==;6=4={<67g?3a34>287mj;|q7=0<72;q684851e4891?32oi0q~=53z?13<<68k16>:m511a8971?28n=7p}=1983>6}::8=1==l4=33b>46d348::7?k6:p5gg=833p1?km:02a?84bl3;;m63=eg824f=::o;1==o4=3d7>46f348mm7??a:?045<68h16>k;511a897`d28n=7p}>cc83>3}::o;1==m4=3d7>46c348m47??d:?045<68j16?=<511a897`528n=7p}>c`83>0}:;kl1==m4=2a3>46c349ih7?k6:?0f<<68j16?n:511a8yv71i3:1?v3=fe824f=:;981==l4=3df>4b13ty:n94?:3y>6cb=99n01?h=:07`?xu6jk0;6>u22gf95a0<5;lj6<>k;<0ef?77l2wx=o<50;0x97`f28:h70{t9j21<746d349;<7?k6:p5fe=838p1>>?:02g?84a13;>o6s|1bg94?4|5;lm6;4k=0:5<5s48mi7??c:?040<6=j1v<7l:18184a>3;o:63=f4824a=z{8h;6=4={<1`7?7c>278o<4>0e9~yv36<3:1>vP;f19>15<3n91/8lk51ba8yv36:3:1>vP;eg9>15<3mo1/8lk51bf8yv3693:1>vP;ed9>15<3ml1/8lk51bg8yv3683:1>vP;ee9>15<3mm1/8lk51bd8yv37n3:1>vP;eb9>15<3mj1/8lk517a8yv37m3:1>vP;ec9>15<3mk1/8lk517d8yv37k3:1>vP;e89>15<3m01/8lk51668yv37j3:1>vP;e99>15<3m11/8lk516d8yv37i3:1>vP;e69>15<3m>1/8lk519c8yv3713:1>vP;e79>15<3m?1/8lk51878yv3703:1>vP;e49>15<3m<1/8lk518a8yv37?3:1>vP;e59>15<3m=1/8lk51`78yv37>3:1>vP;e29>15<3m:1/8lk51c28yv37=3:1>vP;e39>15<3m;1/8lk51c38yv37<3:1>vP;e09>15<3m81/8lk51c18yv37;3:1>vP;e19>15<3m91/8lk51c68yv3793:1>vP;dd9>15<3ll1/8lk51c78yv3783:1>vP;de9>15<3lm1/8lk51c48yv2an3:1>vP;db9>15<3lj1/8lk51c58yv2am3:1>vP;dc9>15<3lk1/8lk51c:8yv2al3:1>vP;d`9>15<3lh1/8lk51c;8yv2ak3:1>vP;d89>15<3l01/8lk51cc8yv2aj3:1>vP;d99>15<3l11/8lk51ca8yv2ai3:1>vP;d69>15<3l>1/8lk51cf8yv2a13:1>vP;d79>15<3l?1/8lk51cg8yv2a03:1>vP;d49>15<3l<1/8lk51cd8yv36j3:1>vP;f79>15<3n?1/8lk51b28yv36i3:1>vP;f49>15<3n<1/8lk51b38yv3613:1>vP;f59>15<3n=1/8lk51b08yv3603:1>vP;f29>15<3n:1/8lk51b18yv36?3:1>vP;f39>15<3n;1/8lk51b68yv36>3:1>vP;f09>15<3n81/8lk51b78yv36=3:1>vP;e`9>15<3mh1/8lk51b48yv37l3:1>vP;dg9>15<3lo1/8lk51b58yv37:3:1>vP;d59>15<3l=1/8lk51b;8yv2a?3:1>vP;d29>15<3l:1/8lk51bc8yv3fm3:1>vP:ad9>15<2il1/8lk51e28yv3d<3:1>vP:c59>15<2k=1/8lk51e38yv3d>3:1>vP:c79>15<2k?1/8lk51e08yv3dl3:1>vP:ce9>15<2km1/8lk517f8yv3b;3:1>vP:e29>15<2m:1/8lk517g8yv32l3:1>vP:389>15<2;01/8lk51628yv32j3:1>vP:399>15<2;11/8lk51638yv32i3:1>vP:369>15<2;>1/8lk51608yv3213:1>vP:379>15<2;?1/8lk51618yv3203:1>vP:349>15<2;<1/8lk51678yv32?3:1>vP:359>15<2;=1/8lk51648yv32=3:1>vP:339>15<2;;1/8lk51658yv32<3:1>vP:309>15<2;81/8lk516:8yv32;3:1>vP:319>15<2;91/8lk516;8yv32:3:1>vP:2g9>15<2:o1/8lk516c8yv3293:1>vP:2d9>15<2:l1/8lk516`8yv3283:1>vP:2e9>15<2:m1/8lk516a8yv33n3:1>vP:2b9>15<2:j1/8lk516f8yv33m3:1>vP:2c9>15<2:k1/8lk516g8yv33l3:1>vP:2`9>15<2:h1/8lk51928yv33k3:1>vP:289>15<2:01/8lk51938yv33i3:1>vP:269>15<2:>1/8lk51908yv3313:1>vP:279>15<2:?1/8lk51918yv3303:1>vP:249>15<2:<1/8lk51968yv33?3:1>vP:259>15<2:=1/8lk51978yv33>3:1>vP:229>15<2::1/8lk51948yv33=3:1>vP:239>15<2:;1/8lk51958yv33<3:1>vP:209>15<2:81/8lk519:8yv33;3:1>vP:219>15<2:91/8lk519;8yv33:3:1>vP:1g9>15<29o1/8lk519`8yv3393:1>vP:1d9>15<29l1/8lk519a8yv31<3:1>vP:3g9>15<2;o1/8lk519f8yv31;3:1>vP:3d9>15<2;l1/8lk519g8yv31:3:1>vP:3e9>15<2;m1/8lk519d8yv3193:1>vP:3b9>15<2;j1/8lk51828yv3183:1>vP:3c9>15<2;k1/8lk51838yv32n3:1>vP:3`9>15<2;h1/8lk51808yv32m3:1>vP:329>15<2;:1/8lk51818yv32>3:1>vP:299>15<2:11/8lk51868yv33j3:1>vP:1e9>15<29m1/8lk51848yv3383:1>vP:1b9>15<29j1/8lk51858yv31>3:1>vP:679>15<2>?1/8lk518:8yv31k3:1>vP:6b9>15<2>j1/8lk518;8yv3d;3:1>vP:b99>15<2j11/8lk518c8yv3d93:1>vP:b69>15<2j>1/8lk518`8yv3d83:1>vP:b79>15<2j?1/8lk518f8yv3en3:1>vP:b49>15<2j<1/8lk518g8yv3em3:1>vP:b59>15<2j=1/8lk518d8yv3el3:1>vP:b29>15<2j:1/8lk51`28yv3ek3:1>vP:b39>15<2j;1/8lk51`38yv3ej3:1>vP:b09>15<2j81/8lk51`08yv3ei3:1>vP:b19>15<2j91/8lk51`18yv3e13:1>vP:ag9>15<2io1/8lk51`68yv3b:3:1>vP:d69>15<2l>1/8lk51`48yv3b83:1>vP:d79>15<2l?1/8lk51`58yv3cn3:1>vP:d49>15<2l<1/8lk51`:8yv3cm3:1>vP:d59>15<2l=1/8lk51`;8yv3cl3:1>vP:d29>15<2l:1/8lk51`c8yv3ck3:1>vP:d39>15<2l;1/8lk51``8yv3cj3:1>vP:d09>15<2l81/8lk51`a8yv3ci3:1>vP:d19>15<2l91/8lk51`f8yv3c13:1>vP:cg9>15<2ko1/8lk51`g8yv3c03:1>vP:cd9>15<2kl1/8lk51`d8yxhem90;6?uG4`d8ykdb93:1>vF;ag9~jgc52909wE:nf:mf`5=838pD9oi;|laa1<72;qC8lh4}o`f1?6=:rB?mk5rncg5>5<5sA>jj6sabd594?4|@=km7p`me983>7}O52zJ7ec=zfkon6=4={I6bb>{ijll1<7vF;ag9~jg`52909wE:nf:mfc5=838pD9oi;|lab1<72;qC8lh4}o`e1?6=:rB?mk5rncd5>5<5sA>jj6sabg594?4|@=km7p`mf983>7}O52zJ7ec=zfkln6=4={I6bb>{ijol1<7vF;ag9~jf652909wE:nf:mg55=838pD9oi;|l`41<72;qC8lh4}oa31?6=:rB?mk5rnb25>5<5sA>jj6sac1594?4|@=km7p`l0983>7}On:181M2fn2weo=l50;0xL1ga3tdh52zJ7ec=zfj:n6=4={I6bb>{ik9l1<7vF;ag9~jf752909wE:nf:mg45=838pD9oi;|l`51<72;qC8lh4}oa21?6=:rB?mk5rnb35>5<5sA>jj6sac0594?4|@=km7p`l1983>7}O9;296~N3io1vbn?n:181M2fn2weo52zJ7ec=zfj;n6=4={I6bb>{ik8l1<7vF;ag9~jf452909wE:nf:mg75=838pD9oi;|l`61<72;qC8lh4}oa11?6=:rB?mk5rnb05>5<5sA>jj6sac3594?4|@=km7p`l2983>7}On4?:3yK0d`52zJ7ec=zfj8n6=4={I6bb>{ik;l1<7vF;ag9~jf552909wE:nf:mg65=838pD9oi;|l`71<72;qC8lh4}oa01?6=:rB?mk5rnb15>5<5sA>jj6sac2594?4|@=km7p`l3983>7}Ol50;0xL1ga3tdh?n4?:3yK0d`52zJ7ec=zfj9n6=4={I6bb>{ik:l1<7vF;ag9~jf252909wE:nf:m=c5=83;pD9oi;|lb13<728qC8lh4}oc63?6=9rB?mk5rn`7;>5<6sA>jj6saa4;94?7|@=km7p`n5`83>4}Oj7>51zJ7ec=zfh<;6=4>{I6bb>{ii?;1<7?tH5ce?xhf>;0;65<6sA>jj6saa7;94?7|@=km7p`n6`83>4}O51zJ7ec=zfh=;6=4>{I6bb>{ii>;1<7?tH5ce?xhf?;0;65<6sA>jj6saa6;94?7|@=km7p`n7`83>4}O51zJ7ec=zfh2;6=4>{I6bb>{ii1;1<7?tH5ce?xhf0;0;63290:wE:nf:me=3=83;pD9oi;|lb<3<728qC8lh4}oc;3?6=9rB?mk5rn`:;>5<6sA>jj6saa9;94?7|@=km7p`n8`83>4}O51zJ7ec=zfh3;6=4>{I6bb>{ii0;1<7?tH5ce?xhf1;0;6;3:1=vF;ag9~jd?3290:wE:nf:me<3=83;pD9oi;|lb=3<728qC8lh4}oc:3?6=9rB?mk5rn`;;>5<6sA>jj6saa8;94?7|@=km7p`n9`83>4}O51zJ7ec=zfhk;6=4>{I6bb>{iih;1<7?tH5ce?xhfi;0;65<6sA>jj6saa`;94?7|@=km7p`na`83>4}O51zJ7ec=zfhh;6=4>{I6bb>{iik;1<7?tH5ce?xhfj;0;65<6sA>jj6saac;94?7|@=km7p`nb`83>4}O51zJ7ec=zfhi;6=4>{I6bb>{iij;1<7?tH5ce?xhfk;0;65<6sA>jj6saab;94?7|@=km7p`nc`83>4}O51zJ7ec=zfhn;6=4>{I6bb>{iim;1<7?tH5ce?xhfl;0;65<6sA>jj6saae;94?7|@=km7p`nd`83>4}O51zJ7ec=zfho;6=4>{I6bb>{iil;1<7?tH5ce?xhfm;0;65<6sA>jj6saad;94?7|@=km7p`ne`83>4}O51zJ7ec=zfhl;6=4>{I6bb>{iio;1<7?tH5ce?xhfn;0;65<6sA>jj6saag;94?7|@=km7p`nf`83>4}O51zJ7ec=zfk:;6=4>{I6bb>{ij9;1<7?tH5ce?xhe8;0;65<6sA>jj6sab1;94?7|@=km7p`m0`83>4}Ol:182M2fn2wen=j50;3xL1ga3tdi51zJ7ec=zfk;;6=4>{I6bb>{ij8;1<7?tH5ce?xhe9;0;65<6sA>jj6sab0;94?7|@=km7p`m1`83>4}Ob;295~N3io1vbo?l:182M2fn2wen51zJ7ec=zfk8;6=4>{I6bb>{ij;;1<7?tH5ce?xhe:;0;65<6sA>jj6sab3;94?7|@=km7p`m2`83>4}Oh4?:0yK0d`51zJ7ec=zfk9;6=4>{I6bb>{ij:;1<7?tH5ce?xhe;;0;65<6sA>jj6sab2;94?7|@=km7p`m3`83>4}Oj50;3xL1ga3tdi?h4?:0yK0d`51zJ7ec=zfk>;6=4>{I6bb>{ij=;1<7?tH5ce?xhe<;0;65<6sA>jj6sab5;94?7|@=km7p`m4`83>4}O51zJ7ec=zfk?;6=4>{I6bb>{ij<;1<7?tH5ce?xhe=;0;65<6sA>jj6sab4;94?7|@=km7p`m5`83>4}Oj7>51zJ7ec=zfk<;6=4>{I6bb>{ij?;1<7?tH5ce?xhe>;0;65<6sA>jj6sab7;94?7|@=km7p`m6`83>4}O51zJ7ec=zfk=;6=4>{I6bb>{ij>;1<7?tH5ce?xhe?;0;65<6sA>jj6sab6;94?7|@=km7p`m7`83>4}O51zJ7ec=zfk2;6=4>{I6bb>{ij1;1<7?tH5ce?xhe0;0;63290:wE:nf:mf=3=83;pD9oi;|la<3<728qC8lh4}o`;3?6=9rB?mk5rnc:;>5<6sA>jj6sab9;94?7|@=km7p`m8`83>4}O51zJ7ec=zfk3;6=4>{I6bb>{ij0;1<7?tH5ce?xhe1;0;6;3:1=vF;ag9~jg?3290:wE:nf:mf<3=83;pD9oi;|la=3<728qC8lh4}o`:3?6=9rB?mk5rnc;;>5<6sA>jj6sab8;94?7|@=km7p`m9`83>4}O51zJ7ec=zfkk;6=4>{I6bb>{ijh;1<7?tH5ce?xhei;0;65<6sA>jj6sab`;94?7|@=km7p`ma`83>4}O51zJ7ec=zfkh;6=4>{I6bb>{ijk;1<7?tH5ce?xhej;0;65<6sA>jj6sabc;94?7|@=km7p`mb`83>4}O51zJ7ec=zfki;6=4>{I6bb>{ijj;1<7?tH5ce?xhek;0;65<6sA>jj6sabb;94?7|@=km7p`mc`83>4}O51zJ7ec=zfkn;6=4>{I6bb>{ijm;1<7?tH5ce?xhel;0;65<6sA>jj6sabe;94?7|@=km7p`md`83>4}O51zJ7ec=zutwKLNuj308fa=3c>kivLMLt0|BCT~{GHuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.sym000066400000000000000000000034511224274632000223140ustar00rootroot00000000000000VERSION 5 BEGIN SYMBOL fifo_xlnx_512x36_2clk SYMBOLTYPE BLOCK TIMESTAMP 2008 7 28 22 45 53 SYMPIN 0 80 Input din[35:0] SYMPIN 0 144 Input wr_en SYMPIN 0 176 Input wr_clk SYMPIN 0 240 Input rd_en SYMPIN 0 272 Input rd_clk SYMPIN 144 704 Input rst SYMPIN 576 80 Output dout[35:0] SYMPIN 576 208 Output full SYMPIN 576 368 Output wr_data_count[8:0] SYMPIN 576 432 Output empty SYMPIN 576 592 Output rd_data_count[8:0] BEGIN DISPLAY 32 32 TEXT fifo_xlnx_512x36_2clk FONT 40 "Arial" END DISPLAY RECTANGLE N 32 32 544 672 BEGIN LINE W 0 80 32 80 END LINE BEGIN DISPLAY 36 80 PIN din[35:0] ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 144 32 144 BEGIN DISPLAY 36 144 PIN wr_en ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 176 32 176 BEGIN DISPLAY 36 176 PIN wr_clk ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 240 32 240 BEGIN DISPLAY 36 240 PIN rd_en ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 0 272 32 272 BEGIN DISPLAY 36 272 PIN rd_clk ATTR PinName FONT 24 "Arial" END DISPLAY LINE N 144 704 144 672 BEGIN DISPLAY 144 668 PIN rst ATTR PinName ALIGNMENT BCENTER FONT 24 "Arial" END DISPLAY BEGIN LINE W 576 80 544 80 END LINE BEGIN DISPLAY 540 80 PIN dout[35:0] ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY LINE N 576 208 544 208 BEGIN DISPLAY 540 208 PIN full ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY BEGIN LINE W 576 368 544 368 END LINE BEGIN DISPLAY 540 368 PIN wr_data_count[8:0] ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY LINE N 576 432 544 432 BEGIN DISPLAY 540 432 PIN empty ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY BEGIN LINE W 576 592 544 592 END LINE BEGIN DISPLAY 540 592 PIN rd_data_count[8:0] ATTR PinName ALIGNMENT RIGHT FONT 24 "Arial" END DISPLAY END SYMBOL uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.v000066400000000000000000000123001224274632000217420ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_512x36_2clk.v when simulating // the core, fifo_xlnx_512x36_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_512x36_2clk( din, rd_clk, rd_en, rst, wr_clk, wr_en, dout, empty, full, rd_data_count, wr_data_count); input [35 : 0] din; input rd_clk; input rd_en; input rst; input wr_clk; input wr_en; output [35 : 0] dout; output empty; output full; output [9 : 0] rd_data_count; output [9 : 0] wr_data_count; // synthesis translate_off FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(10), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(36), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(36), .C_ENABLE_RLOCS(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(1), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(0), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(1), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(1), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(1), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("512x36"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(511), .C_PROG_FULL_THRESH_NEGATE_VAL(510), .C_PROG_FULL_TYPE(0), .C_RD_DATA_COUNT_WIDTH(10), .C_RD_DEPTH(512), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(9), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(1), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(10), .C_WR_DEPTH(512), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(9), .C_WR_RESPONSE_LATENCY(1)) inst ( .DIN(din), .RD_CLK(rd_clk), .RD_EN(rd_en), .RST(rst), .WR_CLK(wr_clk), .WR_EN(wr_en), .DOUT(dout), .EMPTY(empty), .FULL(full), .RD_DATA_COUNT(rd_data_count), .WR_DATA_COUNT(wr_data_count), .CLK(), .INT_CLK(), .BACKUP(), .BACKUP_MARKER(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .RD_RST(), .SRST(), .WR_RST(), .ALMOST_EMPTY(), .ALMOST_FULL(), .DATA_COUNT(), .OVERFLOW(), .PROG_EMPTY(), .PROG_FULL(), .VALID(), .UNDERFLOW(), .WR_ACK(), .SBITERR(), .DBITERR()); // synthesis translate_on endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.veo000066400000000000000000000061621224274632000222770ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_512x36_2clk YourInstanceName ( .din(din), // Bus [35 : 0] .rd_clk(rd_clk), .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), .wr_en(wr_en), .dout(dout), // Bus [35 : 0] .empty(empty), .full(full), .rd_data_count(rd_data_count), // Bus [9 : 0] .wr_data_count(wr_data_count)); // Bus [9 : 0] // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_512x36_2clk.v when simulating // the core, fifo_xlnx_512x36_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.vhd000066400000000000000000000134021224274632000222620ustar00rootroot00000000000000-------------------------------------------------------------------------------- -- This file is owned and controlled by Xilinx and must be used -- -- solely for design, simulation, implementation and creation of -- -- design files limited to Xilinx devices or technologies. Use -- -- with non-Xilinx devices or technologies is expressly prohibited -- -- and immediately terminates your license. -- -- -- -- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- -- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- -- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- -- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- -- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- -- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- -- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- -- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- -- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- -- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- -- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- -- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- -- FOR A PARTICULAR PURPOSE. -- -- -- -- Xilinx products are not intended for use in life support -- -- appliances, devices, or systems. Use in such applications are -- -- expressly prohibited. -- -- -- -- (c) Copyright 1995-2007 Xilinx, Inc. -- -- All rights reserved. -- -------------------------------------------------------------------------------- -- You must compile the wrapper file fifo_xlnx_512x36_2clk.vhd when simulating -- the core, fifo_xlnx_512x36_2clk. When compiling the wrapper file, be sure to -- reference the XilinxCoreLib VHDL simulation library. For detailed -- instructions, please refer to the "CORE Generator Help". -- The synthesis directives "translate_off/translate_on" specified -- below are supported by Xilinx, Mentor Graphics and Synplicity -- synthesis tools. Ensure they are correct for your synthesis tool(s). LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off Library XilinxCoreLib; -- synthesis translate_on ENTITY fifo_xlnx_512x36_2clk IS port ( din: IN std_logic_VECTOR(35 downto 0); rd_clk: IN std_logic; rd_en: IN std_logic; rst: IN std_logic; wr_clk: IN std_logic; wr_en: IN std_logic; dout: OUT std_logic_VECTOR(35 downto 0); empty: OUT std_logic; full: OUT std_logic; rd_data_count: OUT std_logic_VECTOR(8 downto 0); wr_data_count: OUT std_logic_VECTOR(8 downto 0)); END fifo_xlnx_512x36_2clk; ARCHITECTURE fifo_xlnx_512x36_2clk_a OF fifo_xlnx_512x36_2clk IS -- synthesis translate_off component wrapped_fifo_xlnx_512x36_2clk port ( din: IN std_logic_VECTOR(35 downto 0); rd_clk: IN std_logic; rd_en: IN std_logic; rst: IN std_logic; wr_clk: IN std_logic; wr_en: IN std_logic; dout: OUT std_logic_VECTOR(35 downto 0); empty: OUT std_logic; full: OUT std_logic; rd_data_count: OUT std_logic_VECTOR(8 downto 0); wr_data_count: OUT std_logic_VECTOR(8 downto 0)); end component; -- Configuration specification for all : wrapped_fifo_xlnx_512x36_2clk use entity XilinxCoreLib.fifo_generator_v4_3(behavioral) generic map( c_has_int_clk => 0, c_rd_freq => 1, c_wr_response_latency => 1, c_has_srst => 0, c_has_rd_data_count => 1, c_din_width => 36, c_has_wr_data_count => 1, c_full_flags_rst_val => 1, c_implementation_type => 2, c_family => "spartan3", c_use_embedded_reg => 0, c_has_wr_rst => 0, c_wr_freq => 1, c_use_dout_rst => 0, c_underflow_low => 0, c_has_meminit_file => 0, c_has_overflow => 0, c_preload_latency => 0, c_dout_width => 36, c_msgon_val => 1, c_rd_depth => 512, c_default_value => "BlankString", c_mif_file_name => "BlankString", c_has_underflow => 0, c_has_rd_rst => 0, c_has_almost_full => 0, c_has_rst => 1, c_data_count_width => 9, c_has_wr_ack => 0, c_use_ecc => 0, c_wr_ack_low => 0, c_common_clock => 0, c_rd_pntr_width => 9, c_use_fwft_data_count => 0, c_has_almost_empty => 0, c_rd_data_count_width => 9, c_enable_rlocs => 0, c_wr_pntr_width => 9, c_overflow_low => 0, c_prog_empty_type => 0, c_optimization_mode => 0, c_wr_data_count_width => 9, c_preload_regs => 1, c_dout_rst_val => "0", c_has_data_count => 0, c_prog_full_thresh_negate_val => 510, c_wr_depth => 512, c_prog_empty_thresh_negate_val => 5, c_prog_empty_thresh_assert_val => 4, c_has_valid => 0, c_init_wr_pntr_val => 0, c_prog_full_thresh_assert_val => 511, c_use_fifo16_flags => 0, c_has_backup => 0, c_valid_low => 0, c_prim_fifo_type => "512x36", c_count_type => 0, c_prog_full_type => 0, c_memory_type => 1); -- synthesis translate_on BEGIN -- synthesis translate_off U0 : wrapped_fifo_xlnx_512x36_2clk port map ( din => din, rd_clk => rd_clk, rd_en => rd_en, rst => rst, wr_clk => wr_clk, wr_en => wr_en, dout => dout, empty => empty, full => full, rd_data_count => rd_data_count, wr_data_count => wr_data_count); -- synthesis translate_on END fifo_xlnx_512x36_2clk_a; uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.vho000066400000000000000000000073751224274632000223110ustar00rootroot00000000000000-------------------------------------------------------------------------------- -- This file is owned and controlled by Xilinx and must be used -- -- solely for design, simulation, implementation and creation of -- -- design files limited to Xilinx devices or technologies. Use -- -- with non-Xilinx devices or technologies is expressly prohibited -- -- and immediately terminates your license. -- -- -- -- XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" -- -- SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR -- -- XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION -- -- AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION -- -- OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS -- -- IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, -- -- AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE -- -- FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY -- -- WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE -- -- IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR -- -- REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF -- -- INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -- -- FOR A PARTICULAR PURPOSE. -- -- -- -- Xilinx products are not intended for use in life support -- -- appliances, devices, or systems. Use in such applications are -- -- expressly prohibited. -- -- -- -- (c) Copyright 1995-2007 Xilinx, Inc. -- -- All rights reserved. -- -------------------------------------------------------------------------------- -- The following code must appear in the VHDL architecture header: ------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG component fifo_xlnx_512x36_2clk port ( din: IN std_logic_VECTOR(35 downto 0); rd_clk: IN std_logic; rd_en: IN std_logic; rst: IN std_logic; wr_clk: IN std_logic; wr_en: IN std_logic; dout: OUT std_logic_VECTOR(35 downto 0); empty: OUT std_logic; full: OUT std_logic; rd_data_count: OUT std_logic_VECTOR(8 downto 0); wr_data_count: OUT std_logic_VECTOR(8 downto 0)); end component; -- Synplicity black box declaration attribute syn_black_box : boolean; attribute syn_black_box of fifo_xlnx_512x36_2clk: component is true; -- COMP_TAG_END ------ End COMPONENT Declaration ------------ -- The following code must appear in the VHDL architecture -- body. Substitute your own instance name and net names. ------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG your_instance_name : fifo_xlnx_512x36_2clk port map ( din => din, rd_clk => rd_clk, rd_en => rd_en, rst => rst, wr_clk => wr_clk, wr_en => wr_en, dout => dout, empty => empty, full => full, rd_data_count => rd_data_count, wr_data_count => wr_data_count); -- INST_TAG_END ------ End INSTANTIATION Template ------------ -- You must compile the wrapper file fifo_xlnx_512x36_2clk.vhd when simulating -- the core, fifo_xlnx_512x36_2clk. When compiling the wrapper file, be sure to -- reference the XilinxCoreLib VHDL simulation library. For detailed -- instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk.xco000066400000000000000000000045471224274632000223040ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version K.39 # Date: Thu Sep 3 17:24:24 2009 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = False SET asysymbol = False SET busformat = BusFormatAngleBracketNotRipped SET createndf = False SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = False SET foundationsym = False SET implementationfiletype = Ngc SET package = fg456 SET removerpms = False SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = True SET vhdlsim = False # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=false CSET component_name=fifo_xlnx_512x36_2clk CSET data_count=false CSET data_count_width=10 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET fifo_implementation=Independent_Clocks_Block_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=511 CSET full_threshold_negate_value=510 CSET input_data_width=36 CSET input_depth=512 CSET output_data_width=36 CSET output_depth=512 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=No_Programmable_Full_Threshold CSET read_clock_frequency=1 CSET read_data_count=true CSET read_data_count_width=10 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=true CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=true CSET write_data_count_width=10 # END Parameters GENERATE # CRC: b7f2a9ba uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.gise000066400000000000000000000022671224274632000234630ustar00rootroot00000000000000 11.1 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36.ngc000066400000000000000000003062401224274632000233010ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e $45640<,[o}e~g`n;"2*726&;$:,)?40493456712:;<=>?01274>6789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123454<80;0=>5>.130?46=AGZ^X7OKDSC?=?699l1:<7GAPTV9twi`Wog`Rzgrdqk8<<76;?0==4FNQWW>uthoVl~`aQ{hsgplZgt{lx044?>378553CE\XZ5DHC?50<76890=;4@UURVP?BHI5;>6=0>2:3;>LHW]]0oec2>7;2=5>433;98?0086?IR\Y__6IA_A=394;753:81EC^ZT;FJF956294:?6==:NWWTPR=LFH7?<4?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]L33;2=57=32F__\XZ5DNRA86<7681=>6864:4:=32<09:;866J8@38=1=>8939748;;845=44<13CE\XZ5AEFQF9>=87;n744FNQWW>uthoVof|ywPtipfwm:?29499675IORVP?vugnUna}zv_ujqavnXizyn~y27:1<11>?=AGZ^X7~}of]fiur~W}byi~fPndebp`:?294:n675OTVSQQ55NDEPB858?3HNO^L2>>99B@ATF4;437LJKR@>0:==FLMXJ0907;@FGVD:2611JHI\N<7<;?DBCZH6<255NDEPB8=8f3HNO^L26:1<;?DBCZH62255NDEPA858?3HNO^O2>>99B@ATE4;437LJKRC>0:==FLMXI0907;@FGVG:2611JHI\M<7<;?DBCZK6<2l5NDEPA8=<7611JHI\M<9<0?DJK12KXUCMPRDE0?GS502H^_RGAFN38G7=DM880OEKLK^NJG@HTMV^R\H<4CH68GIMF<2IGGO=4CMP:?FIJE@^_II?;;BMQAZABFLXJXDAA_HLEK2=DZLK_II?4D39GG7=CA?1OEL2?>69GMD:687=0HDO310<4?AOF4885;6JFA=30:2=CAH6:8374DHC?50<76>1OEL2>5?48@LG;97<0HDO32?48@LG;;7<0HDO34?48@LG;=7<0HDO36?48@LG;?7<0HDO38?48@LG;17<0HDL30?58@LD;994<7IGM<03=3>BNJ5;92:5KIC>27;169GMG:6?7=0HDL319<4?AOE4835:6JFB=3=3>BNJ58;2:5KIC>15;1?08;EKA8759?2NBN1<;>69GMG:5=7=0HDL327<4?AOE4;=5;6JFB=0;:2=CAK695384DH@?6;14=7IGM<9<5?AOE404<7IG_A=2==>BNXH6:6=08;EKSE979?2NB\O2?>69GMUD;97=0HD^M<3<:?AOWJ591<394DHRA86813MEJ0=08;EMB8469?2NDM1?>>69GKD:6:7=0HBO312<4?AIF48>556J@A=36>5803MEJ0<;16:FLE979>2NDM1<16:FLE959>2NDM1:16:FLE939>2NDM1816:FLE919>2NDM1616:FLE9?9?2NDMR\JG79GKG:76>1OCO2>0?58@JD;984<7IAM<00=3>BHJ5;82:5KOC>20;169GKG:607=0HBL318<5?AIE484<7IAM<32=3>BHJ58:2:5KOC>16;1>08;EMA8729?2NDN1<:>69GKG:5>7=0HBL326<4?AIE4;25;6J@B=0::3=CGK692:5KOC>04;?69GKG:497<0HBL33?48@JD;<7<0HBL35?48@JD;>7<0HBL37?48@JD;07<0HBL39?58@JDXZLM<7IA_A=2==>BHXH6:6=08;EMSE979?2ND\O2?>69GKUD;97=0HB^M<3<:?AIWJ591<394DNRA86843LDJ?6KABc9FJZCDKVXNMIm4EO]FGFYPZ@^N>6H=2:D;1>@FDZO97KJ<;GF@0>@CKL90JI^;;GFSA1=AL[O?7KH7009D7>AIL81B>6G?2:K26>O5:2C846GAIUR\45>>8:KMMQVX8;20ECG[P^20<>OIA]ZT<964IOKWTZ6202CEEY^P07:8MKOSXV:<56GAIUQWEQC03@DBXR>?7:KMMQY79>1BBDZP0358MKOSW99<7D@FT^273>OIA]U;9:5FNHV\4311BBDZP1358MKOSW89<7D@FT^373>OIA]U:9:5FNHV\531969JJLRX9H=0ECG[_0@4?LHN\V;H;6GAIU]2@2=NF@^T=H94IOKW[4@03@DBXR1BBDZP2358MKOSW;9<7D@FT^073>OIA]U99:5FNHV\631H94IOKW[7@03@DBXR=?7:KMMQY49>1BBDZP3358MKOSW:9<7D@FT^173>OIA]U89:5FNHV\73198;HLJPZ5??2CEEYQ<969JJLRX;H=0ECG[_2@4?LHN\V9H;6GAIU]0@2=NF@^T?H94IOKW[6@13@DBXRO9;HLJPZD43@D]>6BF2:NL2>JHIMOO;6B@GHABH1=K]];?7A[[259OQQ533E__8;5CUU6\@0=J[NEE96CZXB[`?Hgmg{\n~~g`nb9Nmkiu^lxxeb`<;O226>H6<2D:<=:4N0220>H68;>0B<><4:L241286@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<73:L271=I9:;87C?;3:L216=I9?>0B<8;3:L236=I9190B<7=;O00?K47;2D9=>5A2318J7543G8??6@=529M635H>;:1E59=4N870?K?1;2D2;>5A9918JIL92Z?7]O]T`9SMKYE]ZCOTo5_IO]AQVHFEL90\_K>;P38V`=UIDH::R]>8^Q02d=UMHNTJD\\Tb9QADBX_@N_DROl;SGB@ZQNL]BTN<5\129PMHYDGEFB_DAA_BJFGN0<[F_YOH94SSTBHZG03ZX]MAQM4:QPVD2<[ZXI86ZVPD11?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4562W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;:R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?06]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3456XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89::S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?2^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2346YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789>T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>:_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1232ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678>UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=6PRdqvhq7592_;#j|i.sd,cf~)keas#jPpovq[goi4949=6[?/fpe*w`(ojr%oaew/sf\tkruWkce0<0=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<3<15>S7'nxm"h gbz-gim'{nT|cz}_ckm868592_;#j|i.sd,cf~)keas#jPpovq[goi4=49=6[?/fpe*w`(ojr%oaew/sf\tkruWkce080=1:W3+bta&{l$knv!cmi{+wbXxg~ySoga<7<15>S7'nxm"h gbz-gim'{nT|cz}_ckm828592_;#j|i.sd,cf~)keas#jPpovq[goi4149<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS= gsd-vc)`kq$h`fv re]sjqtXj`dT9?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ9219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^514>S7'nxm"h gbz-gim'{nT|cz}_ckm[=413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=>=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45679;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0004?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789;:>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123671<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?3305?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789>9;6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0127570<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<8<8;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34536:?1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?63:8Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?;:>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123274e3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8Pbef363=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;;?94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23427582_;#j|i.sd,cf~)keas#jPpovq[be;878;7X> gsd-vc)`kq$h`fv re]sjqtXoj6:2?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1<1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<2<14>S7'nxm"h gbz-gim'{nT|cz}_fa?0;473\:$kh!rg-dg}(ddbr$~iQnup\cf:26;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5<5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0:0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm38?3e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]35c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[47a3\:$kh!rg-dg}(ddbr$~iQnup\cfY59o1^<"i}f/pe+be&jf`t"|k_qlwvZadW:;m7X> gsd-vc)`kq$h`fv re]sjqtXojU?=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS8?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ91g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_63e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb];63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6;2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?5;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0?0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc959:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2;>348Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`a;=78=7X> gsd-vc)`kq$h`fv re]sjqtXojUjkh<7<12>S7'nxm"h gbz-gim'{nT|cz}_fa\evtbo5=5>;5Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef>;:73<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\773<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT8?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\173<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT:?;4U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\373<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmT4?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:76;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>2:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2=>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl8682?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:36;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>6:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<29>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86<2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:?6;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012360=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89::>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012160=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:8>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012760=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:>>85Z0.eqb+ta'nis"nbdx.pg[uhszVmhSua}012560=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[}iu89:<><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj959:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*quWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&}yS}`{r^`jj919:81^<"i}f/pe+be&jf`t"y}_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.uq[uhszVhbb171219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^314>S7'nxm"h gbz-gim'~xT|cz}_ckm[7473\:$kh!rg-dg}(ddbr${Qnup\flhX;;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_703?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\376<]9%l~k }f.e`|+ekcq%|~R~ats]amkY?:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg959:91^<"i}f/pe+be&jf`t"y}_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/vp\tkruWni793328Q5)`zo$yj"ilx/aoo})pzVzexQhc=5=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`8=8582_;#j|i.sd,cf~)keas#z|Ppovq[be;17;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS4<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr${Qnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+rtXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#z|Ppovq[beXpfx;<=6<0:W3+bta&{l$ka>!re-dv4(un~l#@czx^PBIZTCWLDTJZH[200e?P6(o{l%~k!hl1,q`*au9'xm{kz Mlw{[WGJW[OLCXZPEO326a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=2=6a=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e=3=6f=R8&myj#|i/fn3*wb(o{;%~kyit.avvwYao~Tyo{e^21g>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_016?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPmtz3457;879=7X> gsd-vc)`d9$yh"i}1/pescr(k|xySkyit^qweqcXe|r;<=?30?301>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_lw{45664848:6[?/fpe*w`(oe:%~i!hr0,qbr`s'jy~Rhxfu]ppdrbWds<=>><0<26==R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSkl=7:W3+bta&{l$ka>!re-dv4(un~l#hctx]escrXa;l0Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^k\ip~789:8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\mZkrp9:;<<<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;87827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?5;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz32?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7?32g9V4*aun'xm#jb?.sf,cwgt&{y"m?/fov|+ajS8W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c1-dip~)odQ9Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a3+bkrp'mfW>S!glq-iv4a3\:$kh!rg-dh5(ul&mym~ }suq,g5)`e|r%k`U;]/enw+kt::1^<"i}f/pe+bj7&{n$ko|.sqww*e7';7<3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o=!y1=3=66=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7;:7887X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1=1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?0;4e3\:$kh!rg-dh5(ul&mym~ }suq,g5)q9V:Tmcj?01226g=R8&myj#|i/fn3*wb(o{kx"}{s.a3+s7X9Vkeh=>?000a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z4Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\7Zgil9:;<<45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp969:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=3=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1<1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|595>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_5[)od;%a</fov|+ajS;W%k`}!mr0e?P6(o{l%~k!hl1,q`*auiz$yy} c0-dip~)odQ8Q#ibs/op6c=R8&myj#|i/fn3*wb(o{kx"}{s.a2+bkrp'mfW9S!glq-iv443\:$kh!rg-dh5(ul&mym~ }suq,g4)q95:5>>5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?31?00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5949::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7?3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o?000a?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5Z7Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\6Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P4^llp567888;7X> gsd-vc)`d9$yh"i}ar,qwqu(kfg{4U1-dvc(un&mg<#|k/fpbw+tt|z%hc`~>289V4*aun'xm#jb?.sf,cwgt&{y"|nm^gntqXnkUb?=5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=><1:W3+bta&{l$ka>!re-dvdu)zz~x#ob_dosp|YajVcTc>?01317>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|;>0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|Vidycz>259V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjq45<2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfex><;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw072<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~>>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu410>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|>8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{83;8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp6;2?m4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76Vx>45Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]`}979:j1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=[wr512_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRmv<3<1g>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0Pru0:?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWjs7?37:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=7=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0;0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;?78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;Yu|;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?4;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<0<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1<12`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{682?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;<78j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8085i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=4=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc28>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx74311g9V4*aun'xm#jb?.sf,vuhsz&idycz31?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=0=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?7;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9299o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;=7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5<5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7;3?i;T2,cw`)zo%l`= }d.psjqt(kfex1611d9V4*aun'xm#jb?.sf,vuhsz&idyczP00g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_03f?P6(o{l%~k!hl1,q`*twf}x$ob{at^02a>S7'nxm"h gm2-va)uxg~y#naznu]05`=R8&myj#|i/fn3*wb(zyd~"m`uov\04c<]9%l~k }f.eo4+tc'{zex!lotlw[07b3\:$kh!rg-dh5(ul&x{by| cnwmpZ06m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY09l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX0;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;7<3<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><0<16>S7'nxm"h gm2-va)uxg~y#naznu]g5949:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8682?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?34?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28085:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc95<5>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<28>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?<;463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W98:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S<<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_302?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[6463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W=8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S8<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_702?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[2463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W18?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?12d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>2:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8784n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:46:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4=48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6>2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0;0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot28>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>::17<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp9776=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Zjr|5;58;5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567We0<0PIOT\416<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp949<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4:4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~783:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy2:>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww828382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;07>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yk}}6229?4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1??>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_ymq878382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\|jt;;7>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6?29>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1;1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<7<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?3;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:?6=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz535?=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhn7==0=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2>>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<3<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>0:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8185n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:26;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4?49j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim6<2?h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWyko050=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi26>3g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_00e?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^336`=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\67c<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[64b3\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Z25m2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaY2:l1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbX>;o0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcW>8n7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$hdhi_qlwvZvflV29i6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimU2?55Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?5584?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=2>>258Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_`fg45674;48;6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwimUjhi>?01>0:61<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg[dbc89:;090<7:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQnde2345:26:=0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugcWhno<=>?<7<03>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]b`a67896<2>94U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoSljk01238=84?2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]seaYflm:;<=26>3c8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSd==;T2,cw`)zo%l`= xr.etev(`xo$|~}h psmd[cskdVcTaxv?01100>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{4564989?7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==>92:8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-svjaXn|fgSdQbuy23467>WZ];??5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yffm:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[dhc89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq014>S7'nxm"h gm2-sw)`hy%{~z|/bmnt64c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?4;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?5;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?6;4c3\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%hm|vndv?7;543\:$kh!rg-dh5(pz&m|m~ xsuq,cd`)k:%laxv!glY3Y+aj9'g:?>5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?32?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9595>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#mPaof34566:o1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?P1^cm`567888m7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^0\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2b9V4*aun'xm#jb?.vp,crgt&~y"|nm^coijusWog`Rg<4:W3+bta&{l$ka>!ws-dsdu)z~x#ob_`nnkvrXn|fgSdQbuy2345523\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXiegdyQiumn\mZkrp9:;<<=m;T2,cw`)zo%l`= xr.etev(p{}y$~lcPamolwqYa}efTeR``t12354YNF_U;>55Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]efZo5=2_;#j|i.sd,ci6){%l{l}!wrvp+wgjWog`Rg=d:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>=e:W3+bta&{l$ka>!ws-dsdu)z~x#ob_gwohZoXe|r;<=>>1e9V4*aun'xm#jb?.vp,vdkX{UnbRg>1g9V4*aun'xm#jb?.vp,vdkX{UnbRg>_000?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs:=1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~by?=4:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmp7433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d??:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov761=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}?986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at707?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs?;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz7259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq?512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<1<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0=0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7=31:Zts:01^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=1=6f=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1=1_sv1=>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir090=c:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4=4T~y<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;=78h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?1;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>5:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot29>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1912b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5=5Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4149o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8=8Xz}8j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8585i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=3=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2=>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?35:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|37?0b?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050=a:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZ~hz535>i5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]{kw:>6Vx=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7<3?i;T2,cw`)zo%l`= xr.usjqt(kfex1?11g9V4*aun'xm#jb?.vp,suhsz&idycz32?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=1=5c=R8&myj#|i/fn3*rt(yd~"m`uov?0;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9399o1^<"i}f/pe+bj7&~x${}`{r.alqkr;>7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5=5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~743?i;T2,cw`)zo%l`= xr.usjqt(kfex1711d9V4*aun'xm#jb?.vp,suhsz&idyczP00g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_03f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^02a>S7'nxm"h gm2-sw)pxg~y#naznu]05`=R8&myj#|i/fn3*rt(yd~"m`uov\04c<]9%l~k }f.eo4+qu'~zex!lotlw[07b3\:$kh!rg-dh5(pz&}{by| cnwmpZ06m2_;#j|i.sd,ci6){%||cz}/bmvjqY09l1^<"i}f/pe+bj7&~x${}`{r.alqkrX08o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW0897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:0=0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=3=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:56;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7?3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><5<16>S7'nxm"h gm2-sw)pxg~y#naznu]g5939:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl86=2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?37?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28=85:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9535><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<5Z0.eqb+ta'nf;"z| wqlwv*eh}g~ThS7'nxm"h gm2-sw)pxg~y#naznu]g6959:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;6?2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<35?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18385:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5=5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?27>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?=;463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W98:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S<<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_302?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[6463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W=8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S8<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_702?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[2463\:$kh!rg-dh5(pz&}{by| cnwmpZb5W18:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S4<=;T2,cw`)zo%l`= xr.usjqt(kfexRj<<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g7979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44149>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?171209V4*aun'xm#jb?.vp,suhsz&idyczPd2]364=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U9><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q<209V4*aun'xm#jb?.vp,suhsz&idyczPd2]764=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y2:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl:U=><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>Q8209V4*aun'xm#jb?.vp,suhsz&idyczPd2];64=R8&myj#|i/fn3*rt(yd~"m`uov\`6Y>:=1^<"i}f/pe+bj7&~x${}`{r.alqkrXff~;<=?>7:W3+bta&{l$ahc dnww[l:76820Y=!hrg,qb*kbe&ndyyQf<02=5==R8&myj#|i/lgn+air|Vc7=<0>8:W3+bta&{l$ahc dnww[l:6:7;37X> gsd-vc)jmd%ocxzPi=30:4><]9%l~k }f.ofi*bh}}Ub0<:1199V4*aun'xm#`kb/emvpZo;9<4:46[?/fpe*w`(elg$hb{{_h>22;7?3\:$kh!rg-nah)cg|~Te1?8>0:8Q5)`zo$yj"cjm.flqqYn4825=55Z0.eqb+ta'dof#iazt^k?5<86?2_;#j|i.sd,i`k(lfSd2>>0:8Q5)`zo$yj"cjm.flqqYn4;:5=55Z0.eqb+ta'dof#iazt^k?648602_;#j|i.sd,i`k(lfSd2=2?3;?P6(o{l%~k!bel-gkprXa5882<64U1-dvc(un&gna"j`uu]j8729911^<"i}f/pe+hcj'me~xRg324<2<>S7'nxm"h mdo,`jssW`69:3?7;T2,cw`)zo%fi`!kotv\m9406820Y=!hrg,qb*kbe&ndyyQf<3:=5==R8&myj#|i/lgn+air|Vc7>40>7:W3+bta&{l$ahc dnww[l:56820Y=!hrg,qb*kbe&ndyyQf<22=5==R8&myj#|i/lgn+air|Vc7?<0>8:W3+bta&{l$ahc dnww[l:4:7;37X> gsd-vc)jmd%ocxzPi=10:4><]9%l~k }f.ofi*bh}}Ub0>:1199V4*aun'xm#`kb/emvpZo;;<4:;6[?/fpe*w`(elg$hb{{_h>0:41<]9%l~k }f.ofi*bh}}Ub090>7:W3+bta&{l$ahc dnww[l:268=0Y=!hrg,qb*kbe&ndyyQf<7<23>S7'nxm"h mdo,`jssW`6<2<94U1-dvc(un&gna"j`uu]j8=86?2_;#j|i.sd,i`k(lfSd26>048Q5)`zo$yj"cjm.flqqYnW9;=7X> gsd-vc)jmd%ocxzPi^323>S7'nxm"h mdo,`jssW`U:<<94U1-dvc(un&gna"j`uu]j[476?2_;#j|i.sd,i`k(lfSdQ>2058Q5)`zo$yj"cjm.flqqYnW89:;6[?/fpe*w`(elg$hb{{_h]2041<]9%l~k }f.ofi*bh}}UbS<;>7:W3+bta&{l$ahc dnww[lY6>8=0Y=!hrg,qb*kbe&ndyyQf_0523>S7'nxm"h mdo,`jssW`U:4<94U1-dvc(un&gna"j`uu]j[4?6>2_;#j|i.sd,i`k(lfSdQ=169V4*aun'xm#`kb/emvpZoX:9;<7X> gsd-vc)jmd%ocxzPi^0252=R8&myj#|i/lgn+air|VcT>??8;T2,cw`)zo%fi`!kotv\mZ449>1^<"i}f/pe+hcj'me~xRgP2534?P6(o{l%~k!bel-gkprXaV8>=:5Z0.eqb+ta'dof#iazt^k\63703\:$kh!rg-nah)cg|~TeR<8169V4*aun'xm#`kb/emvpZoX:1;<7X> gsd-vc)jmd%ocxzPi^0:53=R8&myj#|i/lgn+air|VcT?<94U1-dvc(un&gna"j`uu]j[666?2_;#j|i.sd,i`k(lfSdQ<1058Q5)`zo$yj"cjm.flqqYnW:8:;6[?/fpe*w`(elg$hb{{_h]0741<]9%l~k }f.ofi*bh}}UbS>:>7:W3+bta&{l$ahc dnww[lY4=8<0Y=!hrg,qb*kbe&ndyyQf_535?P6(o{l%~k!bel-gkprXaV?::6[?/fpe*w`(elg$hb{{_h]553=R8&myj#|i/lgn+air|VcT;<84U1-dvc(un&gna"j`uu]j[=713\:$kh!rg-nah)cg|~TeR7>9:W3+bta&{l$ahc dnww[hcj494:m6[?/fpe*w`(elg$hb{{_lgn84699h1^<"i}f/pe+hcj'me~xRcjm=32:4g<]9%l~k }f.ofi*bh}}Ufi`2>2?3b?P6(o{l%~k!bel-gkprXelg7=>0>a:W3+bta&{l$ahc dnww[hcj48>5=l5Z0.eqb+ta'dof#iazt^ofi97268k0Y=!hrg,qb*kbe&ndyyQbel>22;7f3\:$kh!rg-nah)cg|~Tahc316<2e>S7'nxm"h mdo,`jssWdof0<611`9V4*aun'xm#`kb/emvpZkbe5;22<74U1-dvc(un&gna"j`uu]nah:668k0Y=!hrg,qb*kbe&ndyyQbel>14;7f3\:$kh!rg-nah)cg|~Tahc320<2e>S7'nxm"h mdo,`jssWdof0?<11`9V4*aun'xm#`kb/emvpZkbe5882 gsd-vc)jmd%ocxzPmdo?6086i2_;#j|i.sd,i`k(lfS`kb<34=5d=R8&myj#|i/lgn+air|Vgna1<8>0c8Q5)`zo$yj"cjm.flqqYjmd6943?n;T2,cw`)zo%fi`!kotv\i`k;:04:56[?/fpe*w`(elg$hb{{_lgn8786i2_;#j|i.sd,i`k(lfS`kb<22=5d=R8&myj#|i/lgn+air|Vgna1=>>0c8Q5)`zo$yj"cjm.flqqYjmd68>3?n;T2,cw`)zo%fi`!kotv\i`k;;:4:m6[?/fpe*w`(elg$hb{{_lgn86299h1^<"i}f/pe+hcj'me~xRcjm=16:4?<]9%l~k }f.ofi*bh}}Ufi`2<>0;8Q5)`zo$yj"cjm.flqqYjmd6?2<74U1-dvc(un&gna"j`uu]nah:26830Y=!hrg,qb*kbe&ndyyQbel>5:4?<]9%l~k }f.ofi*bh}}Ufi`28>0;8Q5)`zo$yj"cjm.flqqYjmd632<74U1-dvc(un&gna"j`uu]nah:>6>>0Y=!hrg,qb*kbe&mia#immf,dfhaf&gmnon mmf-ahnYjmdUlick}aumq+sgkam$hy| r`ookjv\8T$ym` }/r1\jjoia}$ym`!kpscn*av60q9="ob1c9V4*aun'xm#`kb/uos[wgjW{nTic?l;T2,cw`)zo%fi`!{mq]qehYulVoe=<94U1-dvc(un&xjaR|jgnww[`h6l2_;#j|i.sd,vvredb%yhR||t^cpv`a582_;#j|i.sd,vvredb%yhR||t^cpv`aXl88;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR>>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR?>d:W3+bta&{l$~~zmlj-q`Ztt|VxnkR<>d:W3+bta&{l$~~zmlj-tvZtt|Vkx~hi=0:W3+bta&{l$~~zmlj-tvZtt|Vkx~hiPd003?P6(o{l%~k!}su`oo*quW{ySl}}ef]g64e<]9%l~k }f.pppgjl'~xT~~zPcnoa5a=R8&myj#|i/sqwfim({UyyQlol`25`=R8&myj#|i/sqwfim({UyyQ}ef>3:4c<]9%l~k }f.pppgjl'~xT~~zPrde?5;7c3\:$kh!rg-qwqdkc&}yS}{_sgd[57c3\:$kh!rg-qwqdkc&}yS}{_sgd[4g<]ZOYSLBFARa8QVCUW_CXEOBJ3:T@G<=QAL]TXT^J3:UFE6=PMKi0[_G[E^OL@@YFk2]YEYKPMNFF[Gb<_[C_IRYFDUJ\Ea=PZ@^NSZGKTI]A5a=_AECET VKB!2-5%US]K*;"<.NSBKJ1>^HZJS=7U][LH@4?]USWNDO;6V\T^T@Gg=_WJEYIRGAFN48\adXAml0TifPPsknR`ttafd:<6Vkm^ObnjtQm{ybcc??;Yfn[Hoig{\n~~g`nb9bhhit|Vof|ywm;`nnkvrXn|fg:6lncjws`>dfkb{S`o}kdp0?fjll2njxlQlotlw,5/c3mkmRm`uov+5,bbf|hUhcx`{(5+g?agsiVidycz'5(f8`drfWje~by&9)e9geqgXkfex%9&d:fbpdYdg|d$5'k;ecweZeh}g~#5$h4d`vb[firf}626=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&6:fjj-4.>2nbb%=&6:fjj-2.>2nbb%;&6:fjj-0.>2nbb%9&6:fjj->.>2nbb%7&6:fjj969?2nbb1??>69gmk:697=0hd`313<4?aoi4895;6jfn=37:2=cag6:9394dhl?538>3mce0<950?58`lh;9>4=7iga<0<5?aoi4;4=7iga<2<5?aoi4=4=7iga<4<5?aoi4?4=7iga<6<5?aoi414=7iga<8<4?air|!:";6j`uu*2-==cg|~#=='7;emvp-76!11ocxz'13+;?air|!;8%55kotv+51/?3me~x%?:)99gkpr/9?#37iazt)34-==cg|~#=5'7;emvp-7>!>1ocxz'2(:8`jss ;:"46j`uu*15,>bh}}"99$64dnww,70.02ndyy&=7(:8`jss ;2"46j`uu*1=,1'7;emvp-57!11ocxz'30+;?air|!99%55kotv+76/?3me~x%=;)99gkpr/;<#<7iazt)6*3>bh}}">%:5kotv+2,1.?2ndyy&6)69gkpr;8720hb{{<02=<>bh}}6:=364dnww844902ndyy2>3?:8`jss48>546j`uu>21;>bh}}6:5394dnww848?3me~x199gkpr;:8437iazt=01:==cg|~7>>07;emvp943611ocxz324<;?air|58=255kotv?628?3me~x1<7>99gkpr;:04<7iazt=0=<>bh}}68<364dnww867902ndyy2<2?:8`jss4:9546j`uu>00;g;50?:8`jss4:?5;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY60}e8:>o4fhdl[}jipV?:>u=9_3aooZ7?|f9= kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;?6hffn]{hk~X=88s?;Q=cmi\5=rh;?&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3>8-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1>8#c^opcjhX~hf6=!mPre]gauro5<;9 nQjrsmq[lhmmj~bccQ{yqg>4)eX`hyTycjjrgnls86+kVbjRocmnqw[cskd4;'oRfns^ppp87+kVnjxlQlotlw[roc|a7:4)eXx{elSk{cl^vkv`uoWgolmykPv`n>5573$jU|~Rjjpuj>5543$jU{~biPelrw}ZrozlycSckhaug\rdj:=%iT|ah_dosp|Ys`{oxdRo|sdpw[sgk5=&hSeo|_wcoma;7$jU{~biPftno[qnumzbTm~}jru]uei;688?'obcoogmpZhfel7mekaPxml{[075p:nbd_0:wk60+kV|j`djPlnu>4)eXx{cfSkgio^vzt`;6cq;3 nQrne\bpjkW}s{i0?#c^ofijt~W}s{i0?#}248bl`hWqfetR;>2y15[7ekcV;3xb=9_gkekZabflxjxb|Pv7]2[}usW8>0jxbcd:kmn`eslkci|k;hliafrtj`~n~94iov\gim?3gmhnxgcd99lr`tadf}j7}|`g^gntq6<2zycjQjmqvz[qnumzb#<$?;;qplcZcjx}sTxe|jsi*2-42vugnUna}zv_ujqavn/< ;?7}|`g^gntqX|axne&:)068twi`Wlg{xtQ{hsgpl-0.9=1{~biPelrw}Zrozlyc$:'>4:rqkbYbey~rSyf}erj+<,713yxdkRkbpu{\pmtb{a636=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y&9)0`8twi`Wlg{xtQ{hsgplZgt{lx$:'>b:rqkbYbey~rSyf}erj\evubz}"3%vugnUna}zv_ujqavnXflmjxh&:)0`8twi`Wlg{xtQ{hsgplZhboh~n$;'>b:rqkbYbey~rSyf}erj\j`af|l"<%5rne\bpjkW}byi~f'1(30?uthoVl~`aQ{hsgpl-4.9:1{~biPftno[qnumzb#?$?<;qplcZ`rdeUdk|h)6*56=wzfmTjxbc_ujqavn/= ;87}|`g^dvhiYs`{oxd%8&129svjaXn|fgSyf}erj+3,743yxdkRhzlm]wlwct`!2"=>5rne\bpjkW}byi~f'9(36?uthoVl~`aQ{hsgpl9?=87;j7}|`g^dvhiYs`{oxdRo|sdpw,5/6i2zycjQiumn\pmtb{aUj~k}t)3*5d=wzfmTjxbc_ujqavnXizyn~y&=)0c8twi`Wog`Rzgrdqk[dutm{~#?$?n;qplcZ`rdeUdk|h^cpw`ts =#:m6~}of]eqijX|axneQnsrgqp-3.9h1{~biPftno[qnumzbTm~}jru*5-4ga:rqkbYa}efTxe|jsi]bwvcu|!3"=n5rne\bpjkW}byi~fParqfvq:>294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8k0|ah_gwohZrozlycSckhaug+2,7f3yxdkRhzlm]wlwct`Vdnklzj(6+2e>vugnUmyabPtipfwmYimnki%6&1`9svjaXn|fgSyf}erj\j`af|l"2%4re]geqgXkfex%=&119q`Zbf|hUhcx`{(5+24>tcWmkmRm`uov+1,773{nThlzn_bmvjq.1!8:0~iQkauc\gjsi|!="==5}d^fbpdYdg|d$5'>0:pg[agsiVidycz30?31?wbXlh~jSnaznu>;>5823{nTic84re]qwq5uu{}837yc/^ad+coagVrgbuQ:13z02Z4ddbU:4ya<6/ldk1=sz|o27x`kesdokr3<~hfbh;5xr^c`o3=pzVigg<>4ws]geqgXkfex%>&119tvZbf|hUhcx`{(0+24>quWmkmRm`uov+6,773~xThlzn_bmvjq.4!8:0{Qkauc\gjsi|!>"==5xr^fbpdYdg|d$8'>0:uq[agsiVidycz'6(33?rtXlh~jSnaznu*4-46<{UomyoPcnwmp->.991|~Rjnt`]`kphs 0#:>6y}_ecweZeh}g~757>15:uq[`h13~xT~~zr@Ar``==GHq?=>7H54;3xW1c==991;7?<2c4g6?4f:k=pb96=:09m0=5=>2.?4=4;7`9~W1e==991;7?<2c4g6?4f:k=0_<5<6;;h=h?4=a3`;?V2d2<:n6=4>33`5`7<5i;h37i;?6;295?7|[=o19==57;306g0c:38j>o94vU3;e?6=93;1=n>tS5g9155=?3;8>o8k2;0b6g1<,==86<{#9>o1=55m51494?5a2:08jvF;709Y01<5s8=1==4r$0:e>0613->;>4?::m64d<722e><94?::k622<722c>9k4?::m7`2<72-;3<7:ia:l23c<732e?h;4?:%3;4?2ai2d:;k4>;:m7`0<72-;3<7:ia:l23c<532e?h94?:%3;4?2ai2d:;k4<;:m7`6<72-;3<7:ia:l23c<332e?h?4?:%3;4?2ai2d:;k4:;:m7`5<72-;3<7:ia:l23c<132e?ok4?:%3;4?2ai2d:;k48;:m7g`<72-;3<7:ia:l23c54gc8j41a28807b:l2;29 4>72=lj7c?8f;30?>i3k80;6)?70;6ee>h6?o0:865`4b294?"6090?jl5a16d950=8:9l0ge=83.:4=4;f`9m52`=9010c9jk:18'5=6=!7?83>mm6`>7g82g>=h8187bd=i9>l1=i54o5f:>5<#91:18ko4n05e>4c<3f>o47>5$0:3>1`f3g;54gc8j41a2;807b:ma;29 4>72=lj7c?8f;00?>o31l0;6)?70;6bb>h6?o0;76g;9e83>!7?83>jj6`>7g82?>o31j0;6)?70;6bb>h6?o0976g;9c83>!7?83>jj6`>7g80?>o31h0;6)?70;6bb>h6?o0?76g;9883>!7?83>jj6`>7g86?>o3110;6)?70;6bb>h6?o0=76g;9683>!7?83>jj6`>7g84?>o3i?0;6)?70;6bb>h6?o0376g;a483>!7?83>jj6`>7g8:?>o3i=0;6)?70;6bb>h6?o0j76g;a283>!7?83>jj6`>7g8a?>o3i;0;6)?70;6bb>h6?o0h76g;a083>!7?83>jj6`>7g8g?>o3i90;6)?70;6bb>h6?o0n76g;9g83>!7?83>jj6`>7g8e?>o31?0;6)?70;6bb>h6?o0:<65f48794?"6090?mk5a16d954=5<6290;wE:81:&2tH552?!7?n3n<7bj9:188yg24290j:7?74;3`4~N3?81Q894>6z0;>71=:00h644n:c823?772;k1h7m5d;34>7g=:10:<7l5a;;96<<5?3w/=5h551;8 11==9=0(9j551:8 41>28=h7d;=3;29 4>72<8?7c?8f;28?l35:3:1(<6?:407?k70n3;07d;=1;29 4>72<8?7c?8f;08?l3583:1(<6?:407?k70n3907d;>f;29 4>72<8?7c?8f;68?l36m3:1(<6?:407?k70n3?07d;>d;29 4>72<8?7c?8f;48?l36k3:1(<6?:407?k70n3=07d;>b;29 4>72<8?7c?8f;:8?l37k3:17d;:e;29?l3193:17b;95;29?l3613:1(<6?:43b?k70n3:07d;>8;29 4>72<;j7c?8f;38?l36?3:1(<6?:43b?k70n3807d;>6;29 4>72<;j7c?8f;18?l36=3:1(<6?:43b?k70n3>07d;>4;29 4>72<;j7c?8f;78?l36;3:1(<6?:43b?k70n3<07d;>2;29 4>72<;j7c?8f;58?l3693:1(<6?:43b?k70n3207d;:d;29?j37n3:17d;=d;29 4>72<8n7c?8f;28?l35k3:1(<6?:40f?k70n3;07d;=b;29 4>72<8n7c?8f;08?l35i3:1(<6?:40f?k70n3907d;=9;29 4>72<8n7c?8f;68?l3503:1(<6?:40f?k70n3?07d;=7;29 4>72<8n7c?8f;48?l35>3:1(<6?:40f?k70n3=07d;=5;29 4>72<8n7c?8f;:8?j2?=3:17b:62;29 4>72=387c?8f;28?j2>93:1(<6?:5;0?k70n3;07b:60;29 4>72=387c?8f;08?j2?n3:1(<6?:5;0?k70n3907b:7e;29 4>72=387c?8f;68?j2?l3:1(<6?:5;0?k70n3?07b:7c;29 4>72=387c?8f;48?j2?j3:1(<6?:5;0?k70n3=07b:7a;29 4>72=387c?8f;:8?j2?13:1(<6?:5;0?k70n3307b;=f;29?l30;3:17d;<9;29 4>72<9j7c?8f;28?l3403:1(<6?:41b?k70n3;07d;<7;29 4>72<9j7c?8f;08?l34>3:1(<6?:41b?k70n3907d;<5;29 4>72<9j7c?8f;68?l34<3:1(<6?:41b?k70n3?07d;<3;29 4>72<9j7c?8f;48?l34:3:1(<6?:41b?k70n3=07d;<1;29 4>72<9j7c?8f;:8?l3483:1(<6?:41b?k70n3307b;?a;29?j37<3:17d;97;29?l2??3:17d;;4;29 4>72<>>7c?8f;28?l33;3:1(<6?:466?k70n3;07d;;2;29 4>72<>>7c?8f;08?l3393:1(<6?:466?k70n3907d;;0;29 4>72<>>7c?8f;68?l34n3:1(<6?:466?k70n3?07d;72<>>7c?8f;48?l34l3:1(<6?:466?k70n3=07d;72<>>7c?8f;:8?l34j3:1(<6?:466?k70n3307d;;f;29 4>72727272723:1(<6?:473?k70n3307b:74;29?l37l3:17d:78;29?l30<3:17b;90;29?j31>3:17d;:f;29?j2c?3:1(<6?:5db?k70n3:07b:k6;29 4>72=lj7c?8f;38?j2c=3:1(<6?:5db?k70n3807b:k4;29 4>72=lj7c?8f;18?j2c;3:1(<6?:5db?k70n3>07b:k2;29 4>72=lj7c?8f;78?j2c83:1(<6?:5db?k70n3<07b:lf;29 4>72=lj7c?8f;58?j2dm3:1(<6?:5db?k70n3207b:ld;29 4>72=lj7c?8f;;8?j2dk3:1(<6?:5db?k70n3k07b:lb;29 4>72=lj7c?8f;`8?j2di3:1(<6?:5db?k70n3i07b:l9;29 4>72=lj7c?8f;f8?j2d03:1(<6?:5db?k70n3o07b:l7;29 4>72=lj7c?8f;d8?j2d=3:1(<6?:5db?k70n3;;76a;c583>!7?83>mm6`>7g825>=h8187bd=i9>l1=?54o5a1>5<#91:18ko4n05e>45<3f>h=7>5$0:3>1`f3g;54gc8j41a28=07b:md;29 4>72=lj7c?8f;3;?>i3jj0;6)?70;6ee>h6?o0:565`4ef94?"6090?jl5a16d95d=d:9l0a?=83.:4=4;f`9m52`=9l10c9j7:18'5=6=!7?83>mm6`>7g815>=h8187bd=i9>l1>?54o5`b>5<#91:18ko4n05e>75<3`>2i7>5$0:3>1ga3g;4;h6:`?6=,82;69oi;o34b?7<3`>2o7>5$0:3>1ga3g;2m7>5$0:3>1ga3g;247>5$0:3>1ga3g;j:7>5$0:3>1ga3g;j87>5$0:3>1ga3g;j>7>5$0:3>1ga3g;j<7>5$0:3>1ga3g;2:7>5$0:3>1ga3g;=83.:4=4:5b9m52`=:21d98950;&2<5<2=j1e=:h53:9l100=83.:4=4:5b9m52`=<21d98;50;&2<5<2=j1e=:h55:9l102=83.:4=4:5b9m52`=>21d98=50;&2<5<2=j1e=:h57:9l104=83.:4=4:5b9m52`=021d9:?50;&2<5<2?;1e=:h50:9l126=83.:4=4:739m52`=921d9;h50;&2<5<2?;1e=:h52:9l13c=83.:4=4:739m52`=;21d9;j50;&2<5<2?;1e=:h54:9l13e=83.:4=4:739m52`==21d9;l50;&2<5<2?;1e=:h56:9l13g=83.:4=4:739m52`=?21d9;750;&2<5<2?;1e=:h58:9l13>=83.:4=4:739m52`=121d9<>50;9j15d=831d84:50;9j107=831d9;:50;9a02b=83;1<7>t$0:e>a1<@==h7E:81:mg2?6=3th?;h4?:083>5}#91l18:<4H55`?M2092e:;i4?::a6d6=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e<a2jl0D99l;I645>N3:2.:??4:629'a0<63`>>6=44i5d94?=h9181<75rb54:>5<4290;w)?7f;ae?M20k2B?;<5G439'564==?90(h;51:k71?6=3`>m6=44o0:1>5<>h7>53;294~"60o0hj6F;7b9K027<@=80(<==:440?!c2281b884?::k7b?6=3f;3>7>5;|`722<72<0;6=u+19d9`6=O<>i0D99>;I61?!74:3?=?6g;5;29?l212900e9h50;9j5=7=831d=5<50;9~f10?29086=4?{%3;b?ea3A>o3=3:17d:i:188k4>52900qo::c;291?6=8r.:4k4k3:J73f=O<>;0D9<4$011>0043`>>6=44i5494?=n8083>>i60;0;66sm47494?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a033=83>1<7>t$0:e>a4<@==h7E:81:&f1?0>o6080;66a>8383>>{e1<7:50;2x 4>a2m80D99l;I645>"b=3<0e9;50;9j0c<722c:4<4?::m2<7<722wi8;h50;694?6|,82m6i<4H55`?M2092.n9784i5794?=n8083>>i60;0;66sm47g94?2=83:p(<6i:e08L11d3A><=6*j5;48m13=831b8k4?::k2<4<722e:4?4?::a642=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd59:0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<7>54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn??>:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm20294?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`14c<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg47m3:187>50z&25;h6a>5<=m50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=nb383>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4d7290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9hl1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:mh4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?nd;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0c`>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5dd=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6ih0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?;i:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm24g94?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`11a<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg42k3:187>50z&25;h6a>5<8o50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4`f290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9o31<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th:j54?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo?i7;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb0d5>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a5c3=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd6n=0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm25g94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25f94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25a94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25`94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25c94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25;94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm25794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d:94?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d594?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d494?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d794?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d694?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d194?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d094?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d394?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1d294?2=83:p(<6i:e28L11d3A><=6F;2:&277<2>:1/i84>;h66>5<>i60;0;66sm1e494?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`2`0<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg7c<3:187>50z&25;h6a>5<4H55`?M2092.n97?4i5794?=nd083>1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f4ea290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e9jo1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th9?l4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo<<9;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb31;>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a661=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd5;?0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn?=;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm22194?2=83:p(<6i:e28L11d3A><=6*j5;38m13=831b8o4?::k7b?6=3f;3>7>5;|`177<72=0;6=u+19d9`5=O<>i0D99>;%g6>4=n<<0;66g;b;29?l2a2900c<6=:188yg4493:187>50z&25;h6a>5<7>5;|`1`3<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn?j::186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd5l=0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb3f0>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th9h?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f7b7290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6f2=8391<7>t$0:e>11e3A>44?::m23g<722wi>n=50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6gg=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1g7<72:0;6=u+19d902d<@==h7E:81:k75;n34f?6=3th9n54?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<53;294~"60o0?;o5G46a8L1163`>36=44i00:>5<8g8276=O<>i0D99>;h6;>5<h1<75rb3a3>5<4290;w)?7f;64f>N3?j1C8:?4i5:94?=n9;31<75`16`94?=zj;h?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:kl1<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm2c094?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl=bd83>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd5j90;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4el3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn?ll:180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f7gd290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a6`?=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e:l=1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi>h;50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm2d194?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<7>55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a6`7=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo<84;290?6=8r.:4k4k2:J73f=O<>;0(h;56:k71?6=3`>m6=44i0:2>5<8g8g6>N3?j1C8:?4$d792>o3=3:17d:i:188m4>62900c<6=:188yg41n3:187>50z&25;h6a>5<50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a75?=8391<7>t$0:e>11e3A>44?::m23g<722wi>k:50;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th8<54?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`1b6<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj::=6=4<:183!7?n3>h1<75rb3d2>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm31794?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e:o:1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd48=0;6>4?:1y'5=`=<>h0D99l;I645>o303:17d?=9;29?j70j3:17pl=eg83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=?3;297?6=8r.:4k4;7c9K02e<@==:7d:7:188m44>2900c<9m:188yg4bm3:187>50z&2=831d=:l50;9~f66529086=4?{%3;b?20j2B?;n5G4638m1>=831b=?750;9l52d=831vn?kk:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?=?50;194?6|,82m699m;I64g>N3?81b854?::k26<<722e:;o4?::a6`e=83>1<7>t$0:e>4543A>=7>5;h3;5;|`1ag<72=0;6=u+19d9565<@==h7E:81:k75<8g8g4>N3?j1C8:?4$d795>o3=3:17d:m:188m1`=831d=5<50;9~f67c290?6=4?{%3;b?b73A>>6=44i5`94?=n8383>>{e;8i1<7:50;2x 4>a2m:0D99l;I645>"b=3;0e9;50;9j0g<722c?j7>5;n3;6?6=3th8=o4?:583>5}#91l1h=5G46a8L1163-o>6<5f4483>>o3j3:17d:i:188k4>52900qo=>a;290?6=8r.:4k4k0:J73f=O<>;0(h;51:k71?6=3`>i6=44i5d94?=h9181<75rb23:>5<3290;w)?7f;f3?M20k2B?;<5+e482?l222900e9l50;9j0c<722e:4?4?::a74>=83>1<7>t$0:e>a6<@==h7E:81:&f1?7>o3n3:17b?72;29?xd49>0;694?:1y'5=`=l91C8:m4H552?!c2281b884?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0o<6F;7b9K027<,l?1=6g;5;29?l2e2900e9h50;9l5=4=831vn>?;:187>5<7s-;3j7j?;I64g>N3?81/i84>;h66>5<>i60;0;66sm33:94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj;396=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e:0;1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd5190;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg4?n3:187>50z&2=831d=:l50;9~f7>7290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a62`=83>1<7>t$0:e>4543A>=7>5;h3;5;|`13`<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb35`>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm3c`94?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7gg=83?1<7>t$0:e>a5<@==h7E:81:&f1?0>o3n3:17d?71;29?j7?:3:17pl0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<7>5;|`0g5<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>lj:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4jo0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2a2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8o?4?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6ea290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d29K02e<@==:7)k::79j00<722c?:7>5;h6e>5<5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7a6=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=k1;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;m>1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?i=50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3e494?3=83:p(<6i:e38L11d3A><=6*j5;38m13=831b8;4?::k7f?6=3`>m6=44o0:1>5<55;294~"60o0o=6F;7b9K027<,l?1=6g;5;29?l212900e9l50;9j0c<722e:4?4?::a7de=83?1<7>t$0:e>a7<@==h7E:81:&f1?7>o3j3:17d:i:188k4>52900qo=ne;291?6=8r.:4k4k1:J73f=O<>;0(h;51:k71?6=3`>=6=44i5`94?=n8383>>{e;hk1<7;50;2x 4>a2m;0D99l;I645>"b=3;0e9;50;9j03<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi?ll50;794?6|,82m6i?4H55`?M2092.n97?4i5794?=n50z&25;h65>5<>i60;0;66sm3`494?3=83:p(<6i:e18L11d3A><=6*j5;48m13=831b8;4?::k7b?6=3`;3=7>5;n3;6?6=3th8m54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6g2290>6=4?{%3;b?b43A>>6=44i5494?=n8083>>i60;0;66sm38;94?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;021<7=50;2x 4>a2==i7E:8c:J734=n<10;66g>2883>>i6?k0;66sm39g94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<9683>6<729q/=5h546`8L11d3A><=6g;8;29?l7513:17b?8b;29?xd40j0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg5>>3:1?7>50z&2329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>7::180>5<7s-;3j7:8b:J73f=O<>;0e9650;9j57?=831d=:l50;9~f6>?290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a7<2=8391<7>t$0:e>11e3A>44?::m23g<722wi?5850;694?6|,82m6<=<;I64g>N3?81b854?::k65?6=3`;347>5;n34f?6=3th85>4?:283>5}#91l18:l4H55`?M2092c?47>5;h31=?6=3f;5;|`0<1<72=0;6=u+19d9565<@==h7E:81:k75<8g873g=O<>i0D99>;h6;>5<5<7>54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:3:6=4<:183!7?n3>h1<75rb2:3>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm38294?5=83:p(<6i:55a?M20k2B?;<5f4983>>o6:00;66a>7c83>>{e;>o1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4mh0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g:>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8i54?:483>5}#91l1h<5G46a8L1163-o>6<5f4483>>o3>3:17d:m:188m1`=831d=5<50;9~f6c0290>6=4?{%3;b?b63A>>6=44i5494?=n0<729q/=5h5d09K02e<@==:7)k::09j00<722c?:7>5;h6a>5<6=4::183!7?n3n:7E:8c:J734=#m<0:7d:::188m10=831b8o4?::k7b?6=3f;3>7>5;|`0a1<72<0;6=u+19d9`4=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2e2900e9h50;9l5=4=831vn>k<:186>5<7s-;3j7j>;I64g>N3?81/i84>;h66>5<>o3n3:17b?72;29?xd4m;0;684?:1y'5=`=l81C8:m4H552?!c2281b884?::k72?6=3`>i6=44i5d94?=h9181<75rb2g2>5<2290;w)?7f;f2?M20k2B?;<5+e482?l222900e9850;9j0g<722c?j7>5;n3;6?6=3th8??4?:583>5}#91l1=>=4H55`?M2092c?47>5;h72>5<5<54;294~"60o0:?>5G46a8L1163`>36=44i4394?=n9121<75`16`94?=zj:9?6=4;:183!7?n3;8?6F;7b9K027>o6010;66a>7c83>>{e;:?1<7:50;2x 4>a28987E:8c:J734=n<10;66g:1;29?l7?03:17b?8b;29?xd4;?0;694?:1y'5=`=9:90D99l;I645>o303:17d;>:188m4>?2900c<9m:188yg53=3:187>50z&2=831d=:l50;9~f621290?6=4?{%3;b?74;2B?;n5G4638m1>=831b9<4?::k2<=<722e:;o4?::a711=83>1<7>t$0:e>4543A>=7>5;h3;5;|`00=<72=0;6=u+19d9565<@==h7E:81:k75<8g8276=O<>i0D99>;h6;>5<h1<75rb27a>5<3290;w)?7f;307>N3?j1C8:?4i5:94?=n=80;66g>8983>>i6?k0;66sm34a94?2=83:p(<6i:010?M20k2B?;<5f4983>>o293:17d?78;29?j70j3:17pl<5e83>1<729q/=5h51218L11d3A><=6g;8;29?l362900e<67:188k41e2900qo=:e;290?6=8r.:4k4>329K02e<@==:7d:7:188m07=831b=5650;9l52d=831vn>;i:187>5<7s-;3j7?<3:J73f=O<>;0e9650;9j14<722c:454?::m23g<722wi?;k50;694?6|,82m6i>4H55`?M2092.n97?4i5794?=n1<729q/=5h5d19K02e<@==:7)k::09j00<722c?n7>5;h6e>5<8g8g5>N3?j1C8:?4$d795>o3=3:17d:9:188m1d=831b8k4?::m2<7<722wi8?j50;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn95<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<;31<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`76=<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:=6;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=8>6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a072=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;2283>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<9>7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f146290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm43294?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th?=k4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg26m3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8m6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9?7:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{e<8=1<7;50;2x 4>a2m>0D99l;I645>"b=3;0e9;50;9j03<722c?j7>5;h3;7?6=3f;3>7>5;|`753<72<0;6=u+19d9`1=O<>i0D99>;%g6>4=n<<0;66g;6;29?l2a2900e<6<:188k4>52900qo:>5;291?6=8r.:4k4k4:J73f=O<>;0(h;51:k71?6=3`>=6=44i5d94?=n9191<75`19094?=zj=;?6=4::183!7?n3n?7E:8c:J734=#m<0:7d:::188m10=831b8k4?::k2<6<722e:4?4?::a045=83?1<7>t$0:e>a2<@==h7E:81:&f1?7>o3n3:17d?73;29?j7?:3:17pl;1383>0<729q/=5h5d59K02e<@==:7)k::09j00<722c?:7>5;h6e>5<5<8?7>55;294~"60o0o86F;7b9K027<,l?1=6g;5;29?l212900e9h50;9j5=5=831d=5<50;9~f155290>6=4?{%3;b?b33A>>6=44i5494?=n8283>>i60;0;66sm42394?3=83:p(<6i:e68L11d3A><=6*j5;38m13=831b8;4?::k7b?6=3`;3?7>5;n3;6?6=3th??=4?:483>5}#91l1h95G46a8L1163-o>6<5f4483>>o3>3:17d:i:188m4>42900c<6=:188yg25n3:197>50z&25;h65>5<5<2290;w)?7f;f7?M20k2B?;<5+e482?l222900e9850;9j0c<722c:4>4?::m2<7<722wi8?950;794?6|,82m6i:4H55`?M2092.n97?4i5794?=nm6=44i0:0>5<8g8g0>N3?j1C8:?4$d795>o3=3:17d:9:188m1`=831b=5=50;9l5=4=831vn9??:186>5<7s-;3j7j;;I64g>N3?81/i84>;h66>5<>o60:0;66a>8383>>{ea288n7E:8c:J734=#m<0:56gk9;29?lbf2900c<9m:188yg2183:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1`294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?6f;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4k50;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90i1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>j3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18:94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo?67;297?6=8r.:4k4>2d9K02e<@==:7)k::0f8ma?=831bhl4?::m23g<722wi=4850;194?6|,82m6<N3?81/i84>d:kg=?6=3`nj6=44o05a>5<53;294~"60o0:>h5G46a8L1163-o>67c83>>{e90>1<7=50;2x 4>a288n7E:8c:J734=#m<0:h6gk9;29?lbf2900c<9m:188yg7>;3:1?7>50z&2t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm18294?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<83;290?6=8r.:4k4>2g9K02e<@==:7)k::ba8ma?=831bhl4?::kgf?6=3f;5;|`15=<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e9k<1<7:50;2x 4>a288m7E:8c:J734=#m<0986gk9;29?lbf2900eil50;9l52d=831vn?9>:186>5<7s-;3j7?<0:J73f=O<>;0(h;51`9j`<<722com7>5;hfa>5<>oci3:17djm:188mae=831d=:l50;9~f4d?290>6=4?{%3;b?7482B?;n5G4638 `3=9o1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb354>5<2290;w)?7f;304>N3?j1C8:?4$d7964=nl00;66gka;29?lbe2900eim50;9l52d=831vn?8m:187>5<7s-;3j7?=f:J73f=O<>;0(h;52c9j`<<722com7>5;hfa>5<8g826`=O<>i0D99>;%g6>4b>i6?k0;66sm1cc94?5=83:p(<6i:00f?M20k2B?;<5+e482`>oc13:17djn:188k41e2900qo<>e;290?6=8r.:4k4>2g9K02e<@==:7)k::368ma?=831bhl4?::kgf?6=3f;5;|`2ff<72=0;6=u+19d957`<@==h7E:81:&f1?433`n26=44iec94?=nlk0;66a>7c83>>{e:;:1<7;50;2x 4>a289;7E:8c:J734=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a5gc=83?1<7>t$0:e>4573A>5;hfb>5<>i6?k0;66sm33c94?3=83:p(<6i:013?M20k2B?;<5+e4814>oc13:17djn:188mad=831bhn4?::m23g<722wi88o50;694?6|,82m6<N3?81/i84:0:kg=?6=3`nj6=44ie`94?=h9>h1<75rb34b>5<2290;w)?7f;304>N3?j1C8:?4$d7957=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7k:180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th94l4?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f634290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb263>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>87:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f65a290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb3;`>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?66:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f636290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb21f>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn?7m:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f601290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb273>5<2290;w)?7f;304>N3?j1C8:?4$d7966=nl00;66gka;29?lbe2900eim50;9l52d=831vn>=k:186>5<7s-;3j7?<0:J73f=O<>;0(h;5229j`<<722com7>5;hfa>5<>5fd883>>oci3:17djm:188mae=831d=:l50;9~f7>0290>6=4?{%3;b?7482B?;n5G4638 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9>h1<75rb252>5<3290;w)?7f;31b>N3?j1C8:?4$d79ga=nl00;66gka;29?lbe2900c<9m:188yg51k3:187>50z&25;n34f?6=3th9m?4?:583>5}#91l1=?h4H55`?M2092.n97mk;hf:>5<>i6?k0;66sm37794?2=83:p(<6i:00e?M20k2B?;<5+e486?lb>2900eio50;9j`g<722e:;o4?::a71`=83>1<7>t$0:e>44a3A>7c83>>{e;:i1<7:50;2x 4>a288m7E:8c:J734=#m<0>7dj6:188mag=831bho4?::m23g<722wi>4750;794?6|,82m6<=?;I64g>N3?81/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7c83>>{e:1<1<7;50;2x 4>a289;7E:8c:J734=#m<09?6gk9;29?lbf2900eil50;9j`f<722e:;o4?::a675=8391<7>t$0:e>44b3A>5;hfb>5<8g826`=O<>i0D99>;%g6>74>i6?k0;66sm23494?2=83:p(<6i:00e?M20k2B?;<5+e482a>oc13:17djn:188mad=831d=:l50;9~f4e3290?6=4?{%3;b?75n2B?;n5G4638 `3=9l1bh44?::kge?6=3`ni6=44o05a>5<7>53;294~"60o0:>h5G46a8L1163-o>67c83>>{e:kh1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=b883>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg4e?3:1>7>50z&25<7s-;3j7?=d:J73f=O<>;0(h;5109j`<<722e:;o4?::a6g5=8381<7>t$0:e>44c3A>5;n34f?6=3th9n<4?:383>5}#91l1=?j4H55`?M2092.n97?>;hf:>5<8g826a=O<>i0D99>;%g6>47>i6?k0;66sm39d94?4=83:p(<6i:00g?M20k2B?;<5+e4825>oc13:17b?8b;29?xd40m0;6?4?:1y'5=`=9;n0D99l;I645>"b=3;:7dj6:188k41e2900qo=7b;296?6=8r.:4k4>2e9K02e<@==:7)k::038ma?=831d=:l50;9~f6>>29096=4?{%3;b?75l2B?;n5G4638 `3=981bh44?::m23g<722wi?5950;094?6|,82m6<N3?81/i84>1:kg=?6=3f;5;|`0<0<72;0;6=u+19d957b<@==h7E:81:&f1?763`n26=44o05a>5<52;294~"60o0:>i5G46a8L1163-o>6h1<75rb2:2>5<5290;w)?7f;31`>N3?j1C8:?4$d7954=nl00;66a>7c83>>{e;>l1<7<50;2x 4>a288o7E:8c:J734=#m<0:=6gk9;29?j70j3:17pl=c483>7<729q/=5h513f8L11d3A><=6*j5;32?lb>2900c<9m:188yg5>i3:1>7>50z&25<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th9j44?:283>5}#91l1=?k4H55`?M2092.n97<=;hf:>5<?5fd883>>oci3:17b?8b;29?xd5nk0;6>4?:1y'5=`=9;o0D99l;I645>"b=3897dj6:188mag=831d=:l50;9~f7`d29086=4?{%3;b?75m2B?;n5G4638 `3=:;1bh44?::kge?6=3f;5;|`1ba<72:0;6=u+19d957c<@==h7E:81:&f1?453`n26=44iec94?=h9>h1<75rb3df>5<4290;w)?7f;31a>N3?j1C8:?4$d7967=nl00;66gka;29?j70j3:17pl=fg83>6<729q/=5h513g8L11d3A><=6*j5;01?lb>2900eio50;9l52d=831vn?h::180>5<7s-;3j7?=e:J73f=O<>;0(h;5239j`<<722com7>5;n34f?6=3th8>n4?:483>5}#91l1=>>4H55`?M2092.n97j:;hf:>5<>ock3:17b?8b;29?xd4:k0;684?:1y'5=`=9::0D99l;I645>"b=38;7dj6:188mag=831bho4?::kgg?6=3f;5;|`036<72:0;6=u+19d957c<@==h7E:81:&f1?763`n26=44iec94?=h9>h1<75rb3d4>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb24g>5<5290;w)?7f;31<>N3?j1C8:?4ie:94?=h9>h1<75rb301>5<1290;w)?7f;305>N3?j1C8:?4$d7960=nl00;66gka;29?lbe2900eim50;9l57g=831d=:l50;9~f4e7290=6=4?{%3;b?7492B?;n5G4638 `3=:<1bh44?::kge?6=3`ni6=44iea94?=h9;k1<75`16`94?=zj=?36=477;294~N3?81/=5h51968^12=ir21>;4j:07956<6j3l1=;4>4;3`>x"6:>087)jk:59'``<33-nm695+e187?!c62=1/i?4;;%g0>1=#kh0hi6*j6;68 `1=<2.n47:4$d;90>"bi3>0(hl54:&fg?2<,ln186*je;68 ``=<2.m<7:4$g390>"a:3>0(k=54:&e0?2<,o?186*i6;68 c1=<2.m47:4$g;90>"ai3>0(kl54:&eg?2<,on186*ie;68 c`=<2.:<=4;;%335?2<,8:9695+11190>"68=0?7)??5;68 4612=1/==954:&24=<33-;;57:4$02b>1=#99h186*>0b87?!77l3>0(<>j:59'55`=<2.:==4;;%325?2<,8;9695+10190>"69=0?7)?>5;68 4712=1/=<954:&25=<33-;:57:4$03b>1=#98h186*>1b87?!76l3>0(=4;;%315?2<,889695+13190>"6:=0?7)?=5;68 4412;1/=575409'a1<33-;3n7<4$555>4>23-><;7?75:l:`?687826>h60>0986`;79826>h3?00986*lb;af?!7?k390e9750;9j0d<722c?;94?::k`=?6=3`2<6=4+1929l1?65f19g94?=n;?0;6)?70;16?k70n3:07d=;:18'5=6=;<1e=:h51:9j76<72-;3<7=:;o34b?4<3`996=4+192970=i9>l1?65f3083>!7?839>7c?8f;68?l57290/=5>5349m52`==21b>k4?:%3;4?523g;5<#91:1?85a16d93>=n:m0;6)?70;16?k70n3207dl1=65f3e83>!7?839m7c?8f;08?l5d290/=5>53g9m52`=;21b?o4?:%3;4?5a3g;5<#91:1?k5a16d91>=n;00;6)?70;1e?k70n3<07d=7:18'5=6=;o1e=:h57:9j72<72-;3<7=i;o34b?><3`?26=4+19291==i9>l1<65f5683>!7?83?37c?8f;38?l31290/=5>5599m52`=:21b984?:%3;4?3?3g;5<#91:1955a16d90>=n=:0;6)?70;7;?k70n3?07d8=:18'5=6==11e=:h56:9j24<72-;3<7;7;o34b?1<3`<;6=4+19291==i9>l1465f5g83>!7?83?37c?8f;;8?l3b290/=5>5599m52`=i21b9i4?:%3;4?3?3g;5<#91:1955a16d9g>=n=k0;6)?70;7;?k70n3n07d;n:18'5=6==11e=:h5e:9j17<72-;3<7;7;o34b?`<3`2=6=4+1929<0=i9>l1<65f8583>!7?832>7c?8f;38?jd0290/=5>5b79m52`=821dn84?:%3;4?d13g;5<#91:1n;5a16d96>=hj;0;6)?70;`5?k70n3907bl>:18'5=6=j?1e=:h54:9lf5<72-;3<7l9;o34b?3<3fkm6=4+1929f3=i9>l1:65`ad83>!7?83h=7c?8f;58?jgc290/=5>5b79m52`=021dmn4?:%3;4?d13g;5<#91:1n;5a16d9e>=hih0;6)?70;`5?k70n3h07bo7:18'5=6=j?1e=:h5c:9le2<72-;3<7l9;o34b?b<3fk=6=4+1929f3=i9>l1i65`a483>!7?83h=7c?8f;d8?jg3290/=5>5b79m52`=9910cl=50;&2<52d:;k4>1:9le7<72-;3<7l9;o34b?7532ej=7>5$0:3>g05<#91:1n;5a16d951=818a2>h6?o0:965`bd83>!7?83h=7c?8f;35?>iel3:1(<6?:c48j41a28=07bll:18'5=6=j?1e=:h51998kgd=83.:4=4m6:l23c<6121dnl4?:%3;4?d13g;4d<3fh36=4+1929f3=i9>l1=n54oc694?"6090i:6`>7g82`>=hi00;6)?70;`5?k70n3;n76a6e;29 4>72k<0b<9i:0d8?je0290/=5>5c79m52`=821do84?:%3;4?e13g;5<#91:1o;5a16d96>=hk:0;6)?70;a5?k70n3907dm7:188m4>c2900e99::188m2e=83.:4=48b:l23c<732c5$0:3>2d7g81?>o0?3:1(<6?:6`8j41a2:10e:850;&2<5<0j2d:;k4;;:k41?6=,82;6:l4n05e>0=>1<7*>8184f>h6?o0=76g83;29 4>72>h0b<9i:698m24=83.:4=48b:l23c5$0:3>2d7g8b?>o1n3:1(<6?:6`8j41a2k10e;j50;&2<5<0j2d:;k4l;:k5g?6=,82;6:l4n05e>a=8184f>h6?o0n76g9a;29 4>72>h0b<9i:g98m3?=83.:4=48b:l23c<6821b:54?:%3;4?1e3g;;:k53?6=,82;6:l4n05e>44<3`<=6=4+19293g=i9>l1=>54i7794?"60907g820>=n>=0;6)?70;5a?k70n3;>76g73;29 4>72>h0b<9i:048?l>5290/=5>57c9m52`=9>10e5?50;&2<5<0j2d:;k4>8:9j<5<72-;3<79m;o34b?7>32c5$0:3>2d5<#91:1;o5a16d95g=n1<7*>8184f>h6?o0:o65f7883>!7?83=i7c?8f;3g?>o1m3:1(<6?:6`8j41a28o07d8<:18'5=6=?k1e=:h51g98m=d=83.:4=47a:l23c<732c357>5$0:3>=g7g81?>i>;3:1(<6?:808j41a2910c4?50;&2<5<>:2d:;k4>;:m:4?6=,82;64<4n05e>7=818:6>h6?o0876a7e;29 4>72080b<9i:598k=b=83.:4=462:l23c<232e2o7>5$0:3><46`>7g84?>i>i3:1(<6?:808j41a2110c4750;&2<5<>:2d:;k46;:m:d=818:6>h6?o0i76a66;29 4>72080b<9i:b98k<3=83.:4=462:l23c5$0:3><46`>7g8e?>id:3:1(<6?:b38j41a2910cn>50;&2<5;:p10b=833ty>9o4?:6gxZ1?33W?=:6P:659]0=2X3191U85h4^5:f?[2?l2T?4n5Q49`8Z1>f3W>356P:709]126X2>01U9;64^47b?[3212T>955Q5458Z0313W?>96P:559]105m70::c;6e?821>3>m70:95;6e?821<3>m70:9f;6e?821m3>m70;51:0>=63=93865>;5180>=63=91865>;50o0>=63=81865>;5?o0>=63=7d865>;5?m0>=63=7b865>;40l0>=63<8b865>;40h0>=63<89865>;40?0>=63<85865>;40;0>=63<81865>;4?l0>=63<33865>;4;:0>=63<35865>;4;<0>=63<37865>;4<<0>=63<47865>;4<>0>=63<49865>;4<00>=63<5c865>;4=j0>=63<5e865>;4=l0>=63<5g865>;3=103;63;59822e<5=?36:o4=57;>2><5=?36:94=57;>20<5=?36:;4=57;>22<5=?36:=4=57;>24<5=?36:?4=57;>26<5=?36;h4=57;>3b<5=?36;m4=57;>3d<5=?36;o4=57;>3?<5=?36;64=57;>31<5=?36;84=57;>33<5=?36;:4=57;>=5<5=?365<4=57;>=7<5=?365>4=57;>2`<5=?36:k4=57;>2b<5=?36:74=57;>3c<5=?36;=4=57;>=d<5=?36574=57;>=>52z\7<0=:;?k1=5<4}r76b?6=;rT>9k5247595=7<5=?h6<6>;|q130<72;qU9=:4=356>4>53ty>;>4?:2y]125<5:=96i74=250>a?=7>569y]107<5;k;69;4=57f>13<5=?o69;4=57`>13<5=<=69;4=546>13<5=13<5;;869;4=331>13<5;;:69;4=333>13<5;:m69;4=32f>13<5;:o69;4=32`>13<5;<;69;4=37e>13<5;?n69;4=37g>13<5;?h69;4=37a>13<5;?j69;4=37:>13<5;?369;4=36f>13<5;>o69;4=36`>13<5;>i69;4=36b>13<5;>269;4=36;>13<5;><69;4=365>13<5;>>69;4=0f5>13<58n>69;4=0f7>13<58n869;4=0f1>13<58n:69;4=0f3>13<58im69;4=0af>13<5;n<69;4=3f5>13<5;n>69;4=3f7>13<5;n869;4=3f1>13<5;n;69;4=3ae>13<5;n:69;4=3g:>13<5;o369;4=3g4>13<5;o=69;4=3g6>13<5;o?69;4=3g0>13<5;o969;4=3g2>13<5;=?69;4=356>13<5;13<5=8o69;4=50`>13<5=8i69;4=50b>13<5=8269;4=50;>13<5=8=69;4=506>13<5=8?69;4=500>13<5=8969;4=502>13<5=8;69;4=53e>13<5=;n69;4=53g>13<5=;i69;4=53b>13<5=;269;4=53;>13<5=;<69;4=535>13<5=;>69;4=537>13<5=;869;4=531>13<5=9869;4=511>13<5=9:69;4=513>13<5=8m69;4=50f>13<5=8<69;4=53`>13<5=;:69;4=533>13<5=?369o4}r15b?6=:rT>563y]131<5=<269;4=544>13<5=<369;4=54e>13<5=13<58h:69;4=0`3>13<58km69;4=0cf>13<58ko69;4=0c`>13<58ki69;4=0cb>13<58lj69;4=0d:>13<58l369;4=0d4>13<58l=69;4=0d6>13<58l?69;4=0d0>13<58l969;4=0g;>13<58o<69;4=0g5>13<58o>69;4=0g7>13<58o869;4=0g1>13<58o:69;4=0g3>13<5;9j69;4=31:>13<5;9369;4=314>13<5;9=69;4=316>13<5;9?69;4=310>13<5;9969;4=312>13<5:;>69;4=23g>13<5:;h69;4=23a>13<5:;j69;4=23:>13<5:;369;4=234>13<5:;=69;4=237>13<5:8369;4=2`a>13<5:h269;4=2`b>13<5:hh69;4=2`g>13<5:i;69;4=2`f>13<5:hm69;4=2a2>13<5:i969;4=2ae>13<5:io69;4=2af>13<5:n;69;4=2f2>13<5:n?69;4=2f1>13<5:n869;4=2f6>13<5:n=69;4=2cg>13<5:kh69;4=2cf>13<5:kj69;4=2c:>13<5:ki69;4=2c4>13<5:k=69;4=2c;>13<5:k>69;4=2gb>13<5:o269;4=2g;>13<5:o<69;4=2g5>13<5:o>69;4=2g7>13<5:o869;4=2g1>13<5:o:69;4=24f>13<5:13<5=?36974}r11>k5233:95=452z\7`2=:<831=5<4}r1e7?6=:rT?h;5240:95=47>52z\7`0=:<8=1=5<4}r1e5?6=:rT?h95240495=452z\7`6=:<8?1=5<4}r1fb?6=:rT?h?5240695=452z\7`5=:<891=5<4}r1f`?6=:rT?ok5240095=4;j7>52z\7g`=:<:91=5<4}r63a?6=:rT?oi5242095=4;h7>52z\7gf=:<:;1=5<4}r63g?6=:rT?oo5242295=4;n7>52z\7gd=:<;l1=5<4}r63e?6=:rT?o45243g95=4;57>52z\7g==:<;=1=5<4}r636?6=:rT?o:5240a95=452z\7g0=:<8;1=5<4}r1fg?6=:rT?o95240295=4;47>52z\7g6=:<;n1=5<4}r633?6=:rT?o?5243a95=4;:7>52z\7g4=:<;h1=5<4}r631?6=:rT?o=5243c95=4;87>52z\7fc=:<;31=5<4}r637?6=:rT?nh5243:95=4;=7>52z\7fa=:<;<1=5<4}r634?6=:rT?nn5243795=452z\7`a=:<;>1=5<4}r1ea?6=:rT?hn5243195=452z\7`g=:<;81=5<4}r1eg?6=:rT?hl5243395=452z\7`<=:<;:1=5<4}r1ee?6=:rT?h55240d95=452z\7`4=:<8o1=5<4}r1e52z\7fg=:<8h1=5<4}r1e1?6=:rT?nl5240c95=4i<7>52z\7=`=:<<214;5rs5cf>5<5sW>2h63;5986=>{t7}Y<0h019;7:448yv2fj3:1>vP;9`9>00>==<1v9on:181[2>127?954:4:p0d?=838pR977;<66;3=10386s|4c594?4|V=k?70::8;43?xu3j?0;6?uQ4`18913?2>47;l;|q7f7<72;qU84h4=57;>0di=7>52z\7=3=:<<219l5rs5c4>5<5sW>2963;59866>{t9:=1<7mt=55f>41c348io7:7;<0bg?2?348no7;>;<0ff?2?3483j7:7;<04g?2?3492<7:7;<14a?2?3498>7:7;<171?2?349>n7:7;|q1e4<72;q6>l>54g9>6d4=9>h0q~:93;295=}::h:1=5?4=545>4>5348o;7:m;<0g2?2e348o97:m;<0g0?2e348o?7:m;<0g6?2e348o<7:m;<0`b?7?9279h<4;b:?1a<<3j279i54;b:?1a2<3j279i;4;b:?1a0<3j279i94;b:?1a6<3j279i?4;b:?1a4<3j279;94>809>623=91;01?8i:5`8970b2=h0q~>h7?72:?71f<3>2wx88k50;0x913b282970:90;f:?xu3>10;6>u247;90c=:=57>52z?72<<60;168;l5d89~w13d2908w0::d;6e?822k3;3>63;618ge>{t4>534>=47:i;<65f?bf3ty?9k4?:5y>030=91;0198::0:2?821<3;3=63;61823g=z{=<96=4=6z?720<60;16><:54c9>645=<<54c9>647=<>54c9>65`==k54c9>65b==m54c9>636=8h54c9>60c=8j54c9>60e=8l54c9>60g=8754c9>60>=9k54c9>61b=9m54c9>61d=9o54c9>61?=9654c9>611=9854c9>613=5a3=5a5=5a7=54c9>5f`=4>434>9n7?73:?76d<60:168?751918914?282870:=6;3;7>;3:<0:4>5243695=5<5=886<6<;<616?7?;27?><4>829>076=919019?i:0:0?826m3;3?63;1e82<6=:<8h1=5=4=53b>4>434>:57?73:?75=<60:168<9519189171282870:>5;3;7>;39=0:4>5240195=5<5=;96<6<;<607?7?;27???4>829>067=919019=?:0:0?825n3;3?63;2d82<6=:<;=1=5=4=53`>4>434>:=7?73:?755<60:1688o5d`9>00>=91o0q~:9a;297~;3>o0:4<5247g95=7<5=i70=>d;6a?856k3>i70=>b;6a?856i3>i70=>9;6a?85603>i70=>7;6a?856>3>i70=>4;6a?85ej3>i70=m9;6a?85ei3;3=63;4jm0?n63;4jl0?n63;4k80?n63;4ko0?n634>6349nm7:m;<1f=?2e349n47:m;<1f3?2e349n:7:m;<1f1?2e349n87:m;<1f7?2e349n>7:m;<1f5?2e3ty?:n4?:3cx910b282970?m2;6a?87e93>i70?m0;6a?87fn3>i70?ne;6a?87fl3>i70?nc;6a?87fj3>i70?na;6a?87ai3>i70?i9;6a?87a03>i70?i7;6a?87a>3>i70?i5;6a?87a<3>i70?i3;6a?87a:3>i70?j8;6a?87b?3>i70?j6;6a?87b=3>i70?j4;6a?87b;3>i70?j2;6a?87b93>i70?j0;6a?844i3>i70<<9;6a?84403>i70<<7;6a?844>3>i70<<5;6a?844<3>i70<<3;6a?844:3>i70<<1;6a?85503>i70=9e;6a?851n3>i70=9a;6a?xu5=>0;68u220690c=::?:1=5<4=335>ag<5;;36i74=33b>ae53z?151<60;16>4j5d89>6=g=l01v??::181846;3>m70<>6;34f>{t:9k1<7=t=330>4>53482o7jn;<0;=?bf3ty9=:4?:3y>644=<6516`8yv4713:1?v3=1382<7=::0i1hn5229;9`f=z{;;26=49{<025?2a348:m7?8b:?15f?4kc:p65>=839p1??>:0:1?84>j3nj70<78;fb?xu59k0;6?u220290c=::8i1=:l4}r033?6=;r79==4>839>6565db9~w77c2909w0=k54g9>676=9>h0q~5<5s48;h7:i;<017?70j2wx>=:50;1x976c282970<69;fb?84?>3nj7p}=2483>7}::9i18k52234952d53z?14f<60;16>475db9>6=0=lj1v:18687e:3>m70?ia;3;6>;6j=0om63>b78g=>;6j10oo6s|1`;94?3|58h96<6=;<15=?b>349>?7j6;<174?b>348m97jn;|q2f6<72;q6=o?54g9>5g2=9>h0q~?n8;291~;6j80:4?5237;9`g=:;<91ho523529`g=::ol1hl5rs0`6>5<5s4;i<7:i;<3a2?70j2wx=l950;7x94d7282970=98;f:?852:3n270=b683>3}:9hl18k521c:952d<58hj6io4=0``>a?<58hn6il4=0a3>ae55z?2ec<60;16?;65dc9>704=lk16?>h5dc9>6cb=lh1vm70?ma;34f>{t9h?1<7;t=0cf>4>5349=;7j6;<165?b>3498i7j6;<0eg?bf3ty:no4?:3y>5db=ae82<7=:;?=1ho523439`g=:;:o1ho522g`9`d=z{8ho6=4={<3bg?2a34;ii7?8b:p5d5=83?p13n270=:0;f:?854l3n270839>730=lk16?8>5dc9>76b=lk16>k75d`9~w4e42909w0?na;6e?87d<3;349?j7j6;<10g?b>348m47jn;|q101<72;q6>;>54g9>61c=9180q~<;3;296~;5=o0?j63=4e82<7=z{;?=6=4;{<06b?7?:279=;4k9:?15=6}::ad<5;;j6io4}r075?6=:r799i4;f:?10g<60;1v?;;:181842l3;3>63=1`8g=>{t:=:1<71`<5;>j6<6=;|q116<728m51908977d2m301??j:ec897472mi01?<=:e`8yv44n3:1>v3=5c87b>;5<00:4?5rs371>5<3s48>n7?72:?15`=4k9:?167>k50;0x973f2=l01?:7:0:1?xu5=80;6>u224c95=4<5;8;6io4=301>a?52z?11<<3n2798:4>839~w7372908w0<:9;3;6>;5::0o563=278ge>{t::i1<71`<5;>=6<6=;|q10c<72;q6>865190897412m30q~?kf;296~;6nh0?j63>e982<7=z{8nn6=4={<3e=?2a34;n;7?72:p5c6=83>p1de83>7}:9o218k521d495=453z?2b=<60;16=o85dc9>5g>=lh1vm70?j5;3;6>{t9lo1<74>534;i47j6;|q2`g<72;q6=k854g9>5`2=9180q~?jd;291~;6n?0:4?521cc9`<=:9ki1hl521cg9`f=:9j:1ho5rs0fb>5<5s4;m97:i;<3f7?7?:2wx=hm50;6x94`2282970?mc;fa?87em3n270?l0;fb?xu6l00;6?u21g690c=:9l81=5<4}r3ff?6=;r7:j94>839>5gc=lh16=n>5d89~w4b?2909w0?i3;6e?87b93;3>6s|1dc94?5|58l86<6=;<3`5?b>34;h87jn;|q2`2<72;q6=k<54g9>5`6=9180q~?j9;296~;6n;0:4?521b69`<=z{;9;6=4={<07a?2a3488m7?72:p67`=838p1?:k:5d8975>28297p}=2d83>7}::=i18k5222:95=452z?10g<3n279?:4>839~w74d2909w0<;a;6e?844>3;3>6s|23`94?4|5;>269h4=316>4>53ty9>l4?:3y>61>=>:51908yv4513:1>v3=4687b>;5;:0:4?5rs30;>5<5s48?:7:i;<006?7?:2wx>?950;0x97222=l01?=>:0:1?xu5;k0;652z?2a=<3n27:h;4>839~w4ed2909w0?j7;6e?87c=3;3>6s|1b`94?4|58o=69h4=0f7>4>53ty:ol4?:3y>5`3=v3>e587b>;6l;0:4?5rs0a;>5<5s4;n?7:i;<3g5?7?:2wx=n950;0x94c52=l013>m70;6190o563=8`8ge>;3=10?<6s|1g`94?4|58n>69h4=0;3>41e3ty:jn4?:3y>5a2=v3>d287b>;61;0:;o5rs0df>5<5s4;o>7:i;<3:7?70j2wx=kh50;0x94b62=l01<7;:05a?xu5890;6?u21e290c=:90?1=:l4}r035?6=:r7:ok4;f:?2=3<6?k1v?>=:18187dm3>m70?67;34f>{t;l:1<7:t=31b>1`<5:oj6<6=;<3:34>>47=9;|q124<72;q6>>754g9>5<>=9>h0q~<92;296~;5;10?j63>98823g=z{;<86=4={<003?2a34;2m7?8b:p632=838p1?=9:5d894?e28=i7p}=6483>7}:::?18k5218a952d52z?171<3n27:5i4>7c9~w7002909w0<<3;6e?87>m3;41e3ty9:44?:3y>667=516`8yv4bi3:1=8u22e5903=::m<18;522e7903=::m>18;522e1903=::m818;522e2903=::jl18;522e3903=::l318;522d:903=::l=18;522d4903=::l?18;522d6903=::l918;522d0903=::l;18;5244c9`g=::?k1=:l4=3c1>ag52z?1`2<3n279o94>7c9~w7eb290?w0;5m00?j63=9e8ge>;5k<0o56s|2`c94?4|5;n=69h4=3a0>41e3ty9oi4?:5y>6a0=91801?k7:5d897?d2m301?lm:e;8yv4f13:1>v3=d487b>;5k;0:;o5rs3a`>5<3s48o97?72:?1a2<3n2795n4kb:?1f<l650;0x97b32=l01?m>:05a?xu5kk0;69u22e695=4<5;o=69h4=3;a>a?<5;h<6i74}r0b3?6=:r79h>4;f:?1g5<6?k1v?mn:18784c;3;3>63=e487b>;51k0on63=b48g=>{t:h<1<71`<5;hm6<9m;|q1g<<72=q6>i<5190897c32=l01?7n:e;897d42m30q~1}::jl1=5<4=3g2>1`<5;326il4=3cg>a?52z?1`4<3n279nh4>7c9~w7e?290?w0;5m:0?j63=9`8gf>;5j80o56s|2cc94?4|5;i?6964=3`b>41e3ty9o84?:3y>6f2=9;301?m::05a?xu5j10;6>u22b190==::kk185522c:952d53z?1g6<6:016>oo519:897de28=i7p}=b783>6}::j8185522c:90==::k<1=:l4}r0a=?6=;r79o?4>289>6g>=91201?l6:05a?xu5j=0;6>u22b390==::k<185522c6952d53z?1g4<6:016>o8519:897d028=i7p}=b383>6}::j:185522c690==::k81=:l4}r0a1?6=;r79o=4>289>6g2=91201?l::05a?xu5j90;6>u22cd90==::k8185522c2952d53z?1fc<6:016>o<519:897d428=i7p}=ad83>6}::ko185522c290==::ho1=:l4}r0a5?6=;r79nh4>289>6g6=91201?l>:05a?xu5ij0;6>u22cf90==::ho185522`a952d53z?1fa<6:016>lk519:897ga28=i7p}=ae83>6}::ki1=?74=3c`>4>?348jh7?8b:p6a`=83?p1?k7:0:1?87>93n270?60;fb?84?13n270::8;1f?xu5ll0;68u22d595=4<58396i74=0;2>ag<5;226il4=57;>6b55z?1a3<60;16=4=5d89>5<4=lh16>565d89>00>=;j1v?jl:18684b=3;3>63>958g=>;61:0om63=898gf>;3=108n6s|2e`94?3|5;o?6<6=;<3:1?b>34;287jn;<0;3?b>34>>47=n;|q1`d<72h=5190894?12m301<7::ec897>02mh019;7:2;8yv4c13:19v3=e382<7=:90=1h4521849`d=::1<1h45244:97==z{;n36=4;{<0f5?7?:27:5:4ka:?1<363=728gf>;5?80on63=768gf>;5>k0o563=6`8gg>{t:>81<71`<5;=86<9m;|q12f<72?q6>;k5190897142m301?9>:ec897102mk01?8m:ec8970f2mh0q~6=4={<134?751279j84>7c9~w67b2909w0=?0;34f>;49<0?j6s|2g194?5|5::26964=3d7>1><5;l86<9m;|q1bc<72:q6?=7513;897`3282370{t;;=1<741e349:h7:i;|q0gg<72k:5509>7a3=91801>k6:5d896272mi01?hi:e;8yv4a:3:1?v3<0987<>;5n:0?463=f3823g=z{;ln6=4<{<134>899>6cc=9>h0q~==6;296~;4810:;o5230a90c=z{:ij6=4:{<0e7?36349o87?72:?0a=<3n278?k4ka:?1b`k?50;1x96602=201?h=:5:897`628=i7p}=fe83>6}:;9=1=?74=3d1>4>?348mh7?8b:p773=838p1>>8:05a?856j3>m7p}0}::o819<523e195=4<5:o<69h4=21e>ae<5;lo6i74}r0e4?6=;r78<;4;8:?1b4<30279j=4>7c9~w7`d2908w0=?6;31=>;5n80:45522ga952d52z?043<6?k16?w063;4;l0om63=fb8g=>{t:ll1<7=t=226>1><5;l;6964=3ge>41e3ty9jo4?:2y>753=9;301?h?:0:;?84aj3;6<9m;<12=?2a3ty8o:4?:4y>6c6==816?i?5190896c22=l01>=j:ea897`e2m30q~;5ml0:;o5rs3db>5<4s49;87?=9:?1ac<60116>ko516`8yv55:3:1>v3<05823g=:;8218k5rs2a5>5<2s48nj7;>;<1g4?7?:278i94;f:?07a><:5:897cb2=201?kk:05a?xu5n00;6>u2311957?<5;on6<67;<0e=?70j2wx???50;0x966428=i70=>7;6e?xu4k<0;68u22dg914=:;jl1=5<4=2g0>1`<5:9o6im4=3d:>a?53z?047<30279ii4;8:?1af<6?k1v?h7:180857:3;9563=ee82<==::o21=:l4}r114?6=:r787c9>740=m;:18684bl3?:70=le;3;6>;4m;0?j63<3b8ge>;5n10o56s|2d`94?5|5:::6964=3g`>1><5;oi6<9m;|q1b3<72:q6?=?513;897cd282370{t;8l1<741e349:87:i;|q037<72;kp1?km:43896de2=<01>l6:54896df2=<01>ll:54896dc2=<01>m?:54896db2=<01>li:54896e62=<01>m=:54896ea2=<01>mk:54896eb2=<01>j?:54896b62=<01>j;:54896b52=<01>j<:54896b22=<01>j9:54896gc2=<01>ol:54896gb2=<01>on:54896g>2=<01>om:54896g02=<01>o9:54896g?2=<01>o::54896cf2=<01>k6:54896c?2=<01>k8:54896c12=<01>k::54896c32=<01>k<:54896c52=<01>k>:548961428=i7p}<0`83>7}:;8?1=5<4=20b>ae52z?05a<60;16??o5dc9~w6752909w0=>c;3;6>;4:h0om6s|30394?4|5:;i6<6=;<11e?b>3ty8==4?:3y>74g=91801>v3<1882<7=:;;h1h45rs22f>5<5s49:47?72:?06f839>77e=l01v>=70=9a;65?851l3;41e3ty94h4?:3y>6<5=<116>4<516`8yv4>03:1>v3=9282<==::0n1=:l4}r0:b?6=:r795>4>7c9>6d4=l01v?6k:18184>:3>370<61;34f>{t:0=1<74>?3482o7?8b:p6=e=838p1?7>:5:897?728=i7p}=9783>7}::0;1=564=3;a>41e3ty94o4?:3y>6<6=<116>5h516`8yv4>=3:1>v3=9182<==::0k1=:l4}r0:0?6=:r794k4>899>6h0q~<8b;296~;5090?463=7g823g=z{;2>6=4={<0;4?7?02794l4>7c9~w7?b2909w0<70;34f>;5i;0on6s|26c94?4|5;=m6964=35f>41e3ty9494?:3y>62`=91201?66:05a?xu5?00;6?u226g90==::>n1=:l4}r0;7?6=:r79;h4>899>6=>=9>h0q~<88;296~;5?m0?463=7b823g=z{;296=4={<04`?7?02794:4>7c9~w7>62909w0<8c;3;<>;50?0:;o5rs2;g>5<3s49in7:i;<1b3?7?:278:;4kc:?0<61}:;k318k523`795=4<5:<>6il4=25e>a?53z?0f<<60;16?nj54g9>71`=lk1v>7l:18785ei3>m70=n6;3;6>;4><0om63<808g=>{t;k:1<7=t=2`b>4>5349hi7:i;<17b?bf3ty85h4?:5y>7ge=6::e;8yv5e:3:1?v3lk:0:1?85c93>m70=:1;f`?xu4i;0;69u23b290c=:;hi1=5<4=24;>ag<5:2o6i74}r1a2?6=;r78o=4>839>7a2=63<668ge>;4000o56s|3c694?5|5:hn6<6=;<1g6?2a349>=7jn;|q0e4<72=q6?oh54g9>7dd=91801>87:ea896>e2m30q~=m5;297~;4jo0:4?523e190c=:;<81hn5rs2c0>5<3s49h=7:i;<1b`?7?:278:44kc:?01}:;j818k523`g95=4<5:<26io4=2;b>a?53z?0g7<60;16?i854g9>705=lh1v>m<:18785dl3;3>63;4;j0on63=f68g<>{t;ji1<7:t=2f5>4>5349nm7:i;<174?bf348m97j6;|q03f<72;q6?lj54g9>7<>=9>h0q~=8b;296~;4ij0?j63<96823g=z{:=o6=4={<1ba?2a349257?8b:p72?=838p1>on:5d896?228=i7p}<7983>7}:;h318k52386952d52z?0eg<3n2785;4>7c9~w6112909w0=n7;6e?85>:3;41e3ty8;:4?:3y>7d>=v3;4190:;o5rs2:f>5<5s49257:7;<1;a?70j2wx?4o50;0x96?>288270=6a;34f>{t;1i1<7=t=2;;>1><5:2n6964=2:`>41e3ty84k4?:2y>7<>=9;301>6j:0:;?85?n3;1><5:2j6<9m;|q0d282370=7d;34f>{t;121<7=t=2;5>1><5:2j6964=2:;>41e3ty84o4?:2y>7<0=9;301>6n:0:;?85?j3;6964=2:;>1><5:2=6<9m;|q0<<<72:q6?4;513;896>?282370=79;34f>{t;1>1<7=t=2;7>1><5:2=6964=2:7>41e3ty84:4?:2y>7<2=9;301>69:0:;?85??3;1><5:296<9m;|q0<0<72:q6?4=513;896>3282370=75;34f>{t;1:1<7=t=2;1>1><5:296964=2:3>41e3ty84>4?:2y>7<4=9;301>6=:0:;?85?;3;1><5:=n6<9m;|q0<4<72:q6?4?513;896>7282370=71;34f>{t;>l1<7=t=2;3>44>349ji:18785b13;3>63>988g=>;6110om63;59800>{t;mo1<7:t=2g;>4>534;2m7j6;<3:=?bf34>>47=<;|q0`a<72=q6?h95190894?e2m301<7n:ec8913?2:80q~=kc;290~;4m?0:4?5218a9`<=:90h1hl5244:974=z{:ni6=4;{<1f1?7?:27:5i4k9:?2=fp1>k;:0:1?87>m3n270?6d;fb?822038m7p}1}:;l91=5<4=0;e>a?<583n6io4=57;>7c54z?0a7<60;16=l>5d89>5<`=lh1688652e9~w6b02908w0=j1;3;6>;6i90om63;5981g>{t;:=1<74>?3498o7?8b:p77c=838p1>==:05a?854;3>37p}<3983>7}:;:91=564=21g>41e3ty8>k4?:3y>765=9>h01>=;:5:8yv5413:1>v3<3582<==:;:o1=:l4}r104?6=:r78?94>7c9>763=<11v>=n:181854=3;3463<3g823g=z{:9:6=4={<101?70j278?;4;8:p76d=838p1>=9:0:;?85383;713=91201>:i:05a?xu4<80;6?u2357952d<5:>=6964}r17f?6=:r788;4>899>706=9>h0q~=;2;296~;4h6=4={<173?7?02789<4>7c9~w6242909w0=;7;34f>;4<10?46s|35f94?4|5:>36<67;<166?70j2wx?9:50;0x962?28=i70=;9;6;?xu4<5:?86<9m;|q010<72:q6?97516`896162m301>8l:e`8yv5183:1>v3<5c82<==:;??1=:l4}r163?6=:r789o4>7c9>70e=<11v>8>:181852k3;3463<67823g=z{:?36=4={<16g?70j2789i4;8:p734=838p1>;k:0:;?851?3;4?:3y>70c=91201>87:05a?xu4=h0;6?u234g952d<5:?m6964}r150?6=:r789k4>899>73?=9>h0q~=:6;296~;4=o0:;o5237a9`<=z{:=;6=4<{<15a?2a349=j7:i;<145?70j2wx?;k50;6x960b282970=82;fb?850;3nj70=9d;f;?xu4>k0;6?u237c90c=:;?i1=:l4}r66f?6=:07e=07g=07>=073=075=077=5479>04`=04b=04g=04>=040=042=044==5479>064=?5479>066=07c=04e=046=;l516`8yv2283:1>v3;2e87b>;3=10h;6s|45d94?4|5=8h69h4=57;>g1?i7>52z?76g<3n27?954m5:p01b=838p19{t<=h1<71`<5=?36o?4}r67=?6=:r7?>;4;f:?71=v3;2587b>;3=10ji6s|45494?4|5=8869h4=57;>f3?97>52z?767<3n27?954nd:p012=838p19<>:5d8913?2hi0q~:;3;296~;3:90?j63;598bf>{t<=81<71`<5=?36lo4}r675?6=:r7?=h4;f:?71=50;0x917c2=l019;7:`58yv24m3:1>v3;1c87b>;3=10j:6s|42f94?4|5=;j69h4=57;>d38o7>52z?75<<3n27?954l4:p06d=838p19?7:5d8913?2h>0q~:0?j63;598b7>{t<:31<71`<5=?36l<4}r60950;0x91732=l019;7:`28yv24>3:1>v3;1287b>;3=102j6s|42794?4|5=;969h4=57;>gc>;7>52z?776<3n27?954md:p000=838p19==:5d8913?2j90q~::5;296~;3;80?j63;598ag>{t<<>1<71`<5=?36ol4}r667?6=:r7?>k4;f:?71=v3;2687b>;3=10i46s|45c94?4|5=;h69h4=57;>g28j7>52z?754<3n27?954n9:p062=838p19??:5d8913?20o0q~==a;296~;4:h0:;o5233`9`g=z{=?26=4={<66e?70j27?954l9:p7`d=83?p1>9>:ec8960d2mk01>9=:05a?82203><863;598`<>{t9?:1<7ag<5;896<5f6=9;k0q~<=4;296~;5:?0on63=23823g=z{8i96=4={<3`0?be34;h<7?8b:p560=838p1>6s|4`g94?4|V=3o70:<:5;g?!2083;?h6s|4`f94?4|V=3h70:<:5;`?!2083;>;6s|4`a94?4|V=3i70:<:5;a?!2083;>56s|4``94?4|V=3j70:<:5;b?!2083;>m6s|4`c94?4|V=3270:<:5;:?!2083;>n6s|4`;94?4|V=3370:<:5;;?!2083;>h6s|4`:94?4|V=3<70:<:5;4?!2083;>i6s|4c;94?4|V=k=70:<:5c5?!2083;>j6s|4c:94?4|V=k>70:<:5c6?!2083;==6s|4c594?4|V=k?70:<:5c7?!2083;=>6s|4c494?4|V=k870:<:5c0?!2083;=?6s|4c794?4|V=k970:<:5c1?!2083;=86s|4c694?4|V=k:70:<:5c2?!2083;=96s|4c194?4|V=k;70:<:5c3?!2083;=:6s|4c094?4|V=3m70:<:5;e?!2083;=;6s|4c394?4|V=3=70:<:5;5?!2083;=46s|4`594?4|V=3>70:<:5;6?!2083;=56s|56194?4|V<=870:<:450?!2083;=m6s|54f94?4|V70:<:5f6?!2083;<>6s|4g594?4|V=n?70:<:5f7?!2083;70:<:5a6?!2083;8j6s|4d594?4|V=i?70:<:5a7?!2083;?<6s|4d494?4|V=i870:<:5a0?!2083;?=6s|4d794?4|V=i970:<:5a1?!2083;??6s|4d694?4|V=i:70:<:5a2?!2083;?86s|4d194?4|V=i;70:<:5a3?!2083;?96s|4d094?4|V=hm70:<:5`e?!2083;?:6s|4d394?4|V=hn70:<:5`f?!2083;?;6s|4d294?4|V=ho70:<:5`g?!2083;?46s|4ed94?4|V=hh70:<:5``?!2083;?56s|51094?4|V=no70:<:5fg?!2083;?m6s|51394?4|V=nh70:<:5f`?!2083;?n6s|51294?4|V=ni70:<:5fa?!2083;?o6s|4gd94?4|V=nj70:<:5fb?!2083;?i6s|4gg94?4|V=n270:<:5f:?!2083;?j6s|4gf94?4|V=n370:<:5f;?!2083;><6s|4ga94?4|V=n:70:<:5f2?!2083;>=6s|4g694?4|V=i=70:<:5a5?!2083;>>6s|4d;94?4|V=hi70:<:5`a?!2083;>?6s|4eg94?4|V=hj70:<:5`b?!2083;>86s|51c94?4|V<:j70:<:42b?!2083;>96s|49794?4|V=2>70:<:5:6?!2083;>:6s|51694?4|V<:?70:<:427?!2083;>46s|53d94?4|V<8m70:<:40e?!2083;>o6srn`f:>5<5sA><=6saaec94?4|@==:7p`ndc83>7}O<>;0qcokc;296~N3?81vbljk:181M2092wemik50;0xL1163tdjhk4?:3yK02752zJ734=zfho:6=4={I645>{iil81<7vF;709~jdc22909wE:81:me`0=838pD99>;|lba2<72;qC8:?4}ocf5<5sA><=6saadc94?4|@==:7p`nec83>7}O<>;0qcojc;296~N3?81vblkk:181M2092wemhk50;0xL1163tdjik4?:3yK02752zJ734=zfhl:6=4={I645>{iio81<7vF;709~jd`22909wE:81:mec0=838pD99>;|lbb2<72;qC8:?4}oce5<5sA><=6saagc94?4|@==:7p`nfc83>7}O<>;0qcoic;296~N3?81vblhk:181M2092wemkk50;0xL1163tdjjk4?:3yK02752zJ734=zfk::6=4={I645>{ij981<7vF;709~jg622909wE:81:mf50=838pD99>;|la42<72;qC8:?4}o`35<5sA><=6sab1c94?4|@==:7p`m0c83>7}O<>;0qcl?c;296~N3?81vbo>k:181M2092wen=k50;0xL1163tdi52zJ734=zfk;:6=4={I645>{ij881<7vF;709~jg722909wE:81:mf40=838pD99>;|la52<72;qC8:?4}o;2e?6=9rB?;<5rn87:>5<6sA><=6sa94c94?7|@==:7p`65c83>4}O<>;0qc7:c;295~N3?81vb4;k:182M2092we58k50;3xL1163td29k4?:0yK02751zJ734=zf0<:6=4>{I645>{i1?81<7?tH552?xh>>:0;6;|l:22<728qC8:?4}o;55<6sA><=6sa97c94?7|@==:7p`66c83>4}O<>;0qc79c;295~N3?81vb48k:182M2092we5;k50;3xL1163td2:k4?:0yK02751zJ734=zf0=:6=4>{I645>{i1>81<7?tH552?xh>?:0;6;|l:32<728qC8:?4}o;45<6sA><=6sa96c94?7|@==:7p`67c83>4}O<>;0qc78c;295~N3?81vb49k:182M2092we5:k50;3xL1163td2;k4?:0yK02751zJ734=zf02:6=4>{I645>{i1181<7?tH552?xh>0:0;62290:wE:81:m==0=83;pD99>;|l:<2<728qC8:?4}o;;5<6sA><=6sa99c94?7|@==:7p`68c83>4}O<>;0qc77c;295~N3?81vb46k:182M2092we55k50;3xL1163td24k4?:0yK02751zJ734=zf03:6=4>{I645>{i1081<7?tH552?xh>1:0;6<3:1=vF;709~j;|l:=2<728qC8:?4}o;:5<6sA><=6sa98c94?7|@==:7p`69c83>4}O<>;0qc76c;295~N3?81vb47k:182M2092we54k50;3xL1163td25k4?:0yK02751zJ734=zf0k:6=4>{I645>{i1h81<7?tH552?xh>i:0;6;|l:e2<728qC8:?4}o;b5<6sA><=6sa9`c94?7|@==:7p`6ac83>4}O<>;0qc7nc;295~N3?81vb4ok:182M2092we5lk50;3xL1163td2mk4?:0yK02751zJ734=zf0h:6=4>{I645>{i1k81<7?tH552?xh>j:0;6;|l:f2<728qC8:?4}o;a5<6sA><=6sa9cc94?7|@==:7p`6bc83>4}O<>;0qc7mc;295~N3?81vb4lk:182M2092we5ok50;3xL1163td2nk4?:0yK02751zJ734=zf0i:6=4>{I645>{i1j81<7?tH552?xh>k:0;6;|l:g2<728qC8:?4}o;`5<6sA><=6sa9bc94?7|@==:7p`6cc83>4}O<>;0qc7lc;295~N3?81vb4mk:182M2092we5nk50;3xL1163td2ok4?:0yK02751zJ734=zf0n:6=4>{I645>{i1m81<7?tH552?xh>l:0;6;|l:`2<728qC8:?4}o;g5<6sA><=6sa9ec94?7|@==:7p`6dc83>4}O<>;0qc7kc;295~N3?81vb4jk:182M2092we5ik50;3xL1163td2hk4?:0yK02751zJ734=zf0o:6=4>{I645>{i1l81<7?tH552?xh>m:0;6;|l:a2<728qC8:?4}o;f5<6sA><=6sa9dc94?7|@==:7p`6ec83>4}O<>;0qc7jc;295~N3?81vb4kk:182M2092we5hk50;3xL1163td2ik4?:0yK02751zJ734=zf0l:6=4>{I645>{i1o81<7?tH552?xh>n:0;6;|l:b2<728qC8:?4}o;e5<6sA><=6sa9gc94?7|@==:7p`6fc83>4}O<>;0qc7ic;295~N3?81vb4hk:182M2092we5kk50;3xL1163td2jk4?:0yK02751zJ734=zfh::6=4>{I645>{ii981<7?tH552?xhf8:0;6;|lb42<728qC8:?4}oc35<6sA><=6saa1c94?7|@==:7p`n0c83>4}O<>;0qco?c;295~N3?81vbl>k:182M2092wem=k50;3xL1163tdj51zJ734=zfh;:6=4>{I645>{ii881<7?tH552?xhf9:0;6;|lb52<728qC8:?4}oc25<6sA><=6saa0c94?7|@==:7p`n1c83>4}O<>;0qco>c;295~N3?81vbl?k:182M2092wem51zJ734=zfh8:6=4>{I645>{ii;81<7?tH552?xhf::0;6;|lb62<728qC8:?4}oc15<6sA><=6saa3c94?7|@==:7p`n2c83>4}O<>;0qco=c;295~N3?81vblk4?:0yK02751zJ734=zfh9:6=4>{I645>{ii:81<7?tH552?xhf;:0;6;|lb72<728qC8:?4}oc05<6sA><=6saa2c94?7|@==:7p`n3c83>4}O<>;0qcok50;3xL1163tdj?k4?:0yK02751zJ734=zfh>:6=4>{I645>{ii=81<7?tH552?xhf<:0;6;|lb02<728qC8:?4}oc75<6sA><=6saa5c94?7|@==:7p`n4c83>4}O<>;0qco;c;295~N3?81vbl:k:182M2092wem9k50;3xL1163tdj8k4?:0yK027<7>51zJ734=zfh?:6=4>{I645>{ii<81<7?tH552?xhf=:0;6;|lb12<728qC8:?4}oc65<6sA><=6saa4c94?7|@==:7p`n5c83>4}O<>;0qco:c;295~N3?81vbl;k:182M2092wem8k50;3xL1163tdj9k4?:0yK02751zJ734=zfh<:6=4>{I645>{ii?81<7?tH552?xhf>:0;6;|lb22<728qC8:?4}oc55<6sA><=6saa7c94?7|@==:7p`n6c83>4}O<>;0qco9c;295~N3?81vbl8k:182M2092wem;k50;3xL1163tdj:k4?:0yK02751zJ734=zfh=:6=4>{I645>{ii>81<7?tH552?xhf?:0;6;|lb32<728qC8:?4}oc45<6sA><=6saa6c94?7|@==:7p`n7c83>4}O<>;0qco8c;295~N3?81vbl9k:182M2092wem:k50;3xL1163tdj;k4?:0yK02751zJ734=zfh2:6=4>{I645>{ii181<7?tH552?xhf0:0;62290:wE:81:me=0=83;pD99>;|lb<2<728qC8:?4}oc;5<6sA><=6saa9c94?7|@==:7p`n8c83>4}O<>;0qco7c;295~N3?81vbl6k:182M2092wem5k50;3xL1163tdj4k4?:0yK02751zJ734=zfh3:6=4>{I645>{ii081<7?tH552?xhf1:0;6<3:1=vF;709~jd?2290:wE:81:me<0=83;pD99>;|lb=2<728qC8:?4}oc:5<6sA><=6saa8c94?7|@==:7p`n9c83>4}O<>;0qco6c;295~N3?81vbl7k:182M2092wem4k50;3xL1163tdj5k4?:0yK02751zJ734=zfhk:6=4>{I645>{iih81<7?tH552?xhfi:0;6;|lbe2<728qC8:?4}ocb5<6sA><=6saa`c94?7|@==:7p`nac83>4}O<>;0qconc;295~N3?81vblok:182M2092wemlk50;3xL1163tdjmk4?:0yK02751zJ734=zfhh:6=4>{I645>{iik81<7?tH552?xhfj:0;6;|lbf2<728qC8:?4}oca5<6sA><=6saacc94?7|@==:7p`nbc83>4}O<>;0qcomc;295~N3?81vbllk:182M2092wemok50;3xL1163tdjnk4?:0yK02751zJ734=zfhi:6=4>{I645>{iij81<7?tH552?xhfk:0;6;|lbg2<728qC8:?4}oc`5<6sA><=6saabc94?7|@==:7p`ncc83>4}O<>;0qcolc;295~N3?81vblmk:182M2092wemnk50;3xL1163tdjok4?:0yK02751zJ734=zfhn:6=4>{I645>{iim81<7?tH552?xhfl:0;6;|lb`2<728qC8:?4}ocg
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_flist.txt000066400000000000000000000006451224274632000245520ustar00rootroot00000000000000# Output products list for _xmsgs/pn_parser.xmsgs fifo_generator_ug175.pdf fifo_xlnx_512x36_2clk_18to36.gise fifo_xlnx_512x36_2clk_18to36.ngc fifo_xlnx_512x36_2clk_18to36.v fifo_xlnx_512x36_2clk_18to36.veo fifo_xlnx_512x36_2clk_18to36.xco fifo_xlnx_512x36_2clk_18to36.xise fifo_xlnx_512x36_2clk_18to36_flist.txt fifo_xlnx_512x36_2clk_18to36_readme.txt fifo_xlnx_512x36_2clk_18to36_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_readme.txt000066400000000000000000000033151224274632000246630ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_512x36_2clk_18to36' in directory /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ fifo_generator_ug175.pdf: Please see the core data sheet. fifo_xlnx_512x36_2clk_18to36.gise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_512x36_2clk_18to36.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_512x36_2clk_18to36.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_512x36_2clk_18to36.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_512x36_2clk_18to36.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_512x36_2clk_18to36.xise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_512x36_2clk_18to36_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_512x36_2clk_18to36_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. fifo_xlnx_512x36_2clk_18to36_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_18to36_xmdf.tcl000066400000000000000000000052231224274632000243270ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_512x36_2clk_18to36_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_512x36_2clk_18to36_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_512x36_2clk_18to36_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_18to36 } # ::fifo_xlnx_512x36_2clk_18to36_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_512x36_2clk_18to36_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_18to36_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_18to36 incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.gise000066400000000000000000000022671224274632000234630ustar00rootroot00000000000000 11.1 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.ngc000066400000000000000000002413621224274632000233040ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e $5a540<,[o}e~g`n;"2*726&;$:,)<6;.vnt*Ydo&lbjbQwloz\144;?U9oaeP37vl5=(iof;0<85?0123=>6789:;<=>;0:23456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?013856=6&9;87<>5IORVP?GCL[K757>11g924?OIX\^1|ah_dosp|Ys`{oxd1750?05?46=AGZ^X7~}of]fiur~W}byi~fParqfvq:>2949:6??:HLSQQ712@D[YY4KI@>21?699:1::7AZTQWW>AIF48?1<3?;;0:9KPRW]]0ocxz31683:4=5:28:86<<3232?76==:HLSQQ112906?IR\Y__6IAM<2394;753:<1EC^ZT;fjj952294o7>}=012ec131%<;0895;0GD25>2=AGZ^X7JFPC>0>586:2>1CXZ_UU8GKUD;;3:5=68=;7;7?3?>>=138??;;9G;E4=><23;<4<49768=30>9;126D@_UU8B@ATE410;22@D[YY4rne\bpjkW}byi~fPndebp`:?294:4675OTVSQQG502KOH_O30?:8EABUI5;546OKDSC?6;>GCL[K7:364AEFQE91902KOH_O38?c8EABUI531<364AEFQE9?902KOH_L30?:8EABUJ5;546OKDS@?6;>GCL[H7:364AEFQF919i2KOH_L38;2=<>GCL[H743=4AMN:?DU^FJUYIJ=4BT0;?GSTW@DMC<5L2:AF57=D@LI@SAGLEOQF[Q_WM;1HE95LLJC7?FJLJ:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6JL2:FJ2>BNI5:5;6JFA=33:2=CAH6:=394DHC?57803MCJ0<=17:FJE973601OEL2>5;2=3>BNI5;>2;5KI@>2:3=CAH692;5KI@>0:3=CAH6?2;5KI@>6:3=CAH6=2;5KI@>4:3=CAH632;5KI@>::3=CAK6;2:5KIC>24;169GMG:6<7=0HDL314<4?AOE48<5;6JFB=34:2=CAK6:4394DH@?5<813MCI0<08;EKA8769?2NBN1<>>69GMG:5:7=0HDL322<4?AOE4;>5;6JFB=06:2=CAK69:394DH@?62803MCI0?617:FJF94>6?1OEO2=>69GMG:48730HDL33083:2=CAK68=384DH@?7;02:2=CAYH7>374DHRA86<76>1OE]L33?48@JG;87=0HBO311<4?AIF48;5;6J@A=31:2=CGH6:?394DNC?518>3MEJ0<;50?58@JG;9<4=7IAN<0<5?AIF4;4=7IAN<2<5?AIF4=4=7IAN<4<5?AIF4?4=7IAN<6<5?AIF414=7IAN<8<4?AIFW[OL:6J@B=2=3>BHJ5;;2:5KOC>25;169GKG:6=7=0HBL317<4?AIE48=5;6J@B=3;:2=CGK6:5384DN@?5;1=08;EMA8779?2NDN1<=>69GKG:5;7=0HBL325<4?AIE4;?5;6J@B=05:2=CGK69;394DN@?6=803MEI0?716:FLF949?2NDN1=?>89GKG:493:5;6J@B=12:3=CGK682;5KOC>7:3=CGK6>2;5KOC>5:3=CGK6<2;5KOC>;:3=CGK622:5KOC]QAB12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O8?7K6HK3:DGG1=ALJO87KJ_4:DGT@2O7:2C:>6G=2:K0<>OIA]ZT<=64IOKWTZ6602CEEY^P03:8MKOSXV:846GAIUR\41>:8:KMMQVX8?20ECG[P^24=>OIA]Y_MYK8;HLJPZ67?2CEEYQ?169JJLRX8;=0ECG[_114?LHN\V:?;6GAIU]312=NF@^T<;94IOKW[5103@DBXR>77:KMMQY71>1BBDZP0@58MKOSW9H<7D@FT^2@3>OIA]U;H:5FNHV\4@1169JJLRX9;=0ECG[_014?LHN\V;?;6GAIU]212=NF@^T=;94IOKW[4103@DBXR?77:KMMQY61>1BBDZP1@58MKOSW8H<7D@FT^3@3>OIA]U:H:5FNHV\5@1;94IOKW[7103@DBXR<77:KMMQY51>1BBDZP2@58MKOSW;H<7D@FT^0@3>OIA]U9H:5FNHV\6@11BBDZP3@58MKOSW:H<7D@FT^1@3>OIA]U8H:5FNHV\7@1H9;HLJPZG13@DBXRL=;MK1?II13EEJHHJ8;MMDMFGK<2F^X<:4LTV10>JR\:>0@XZ;6:NVP1YC=2GXKB@:;LW[G\eKnffx]i}foo08J42159M54633G;:=95A1007?K76;=1E=<:;;O3211=I98759M54>33G;:5>5A1368J447<2D:><:4N0010>H6::>0B<<;4:L26022618J4533G;8=>5A1518J4343G;=?6@>729M5=5H59:1E>?=4N310?K43;2D99>5A2718J7143G83?6@=929M755;<;O157>H4?:1E?5=4N2;0?K27;2D?=>5A4318J1543G>??6@;529M035H0:2D2j6@M_CWPTLHXX[E[_:5AEUULVN7W63[o0^LCM17]P5=YT;?k0^HOK_GKQWQeTBIMU\EIZG_C38W45<[@GTOBBCIRKLJZEOMJA=7^AZRBG4?VTQIEUJ;6]]V@N\F1=T[[K?7^]]B59W]UC4:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0123[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv5679VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4563W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;9R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?07]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3451XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:3S_k|umv277=R8&myj#|i/fa{*fjlp&GscQxr^rmpwY`kVrd~=>?0^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2344YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt7898T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=><_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1230ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678<5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1?1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=0=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj959:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5>5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1;1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=4=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj919:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf525><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb171219V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^314>S7'nxm"h gbz-gim'{nT|cz}_ckm[7473\:$kh!rg-dg}(ddbr$~iQnup\flhX;;:0Y=!hrg,qb*adp'iggu!}d^rmpwYeagU?>=5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbR;=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_703?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\376<]9%l~k }f.e`|+ekcq%yhR~ats]amkY?:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV39:6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012362=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;<<<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34575?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>>1348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678;8<7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?010263=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;??94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos234645>2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>;269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567<88=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01713>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:>=?84U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos23434?3\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8>1358Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw678?89n6[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}0125[gbc8;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0604?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789=:>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+wbXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%yhR~ats]dg959:91^<"i}f/pe+be&jf`t"|k_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/sf\tkruWni793328Q5)`zo$yj"ilx/aoo})ulVzexQhc=5=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`8=8582_;#j|i.sd,cf~)keas#jPpovq[be;17;m7X> gsd-vc)`kq$h`fv re]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS;m7X> gsd-vc)`kq$h`fv re]sjqtXojU3=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS4<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc9?9:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ?249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY6:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ=249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY4:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ;249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY2:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ9249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY0:<1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQ7249V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabY>:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g59>9:01^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyijQk1=;=6==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh55Z0.eqb+ta'nis"nbdx.pg[uhszVmhSl}}ef]g5Z?5=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=>=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34575=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=<=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34555=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=:=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34535=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=8=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmPxnp34515=2_;#j|i.sd,cf~)keas#jPpovq[beXpfx;<=6=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<1<15>S7'nxm"h gbz-gim'~xT|cz}_ckm848592_;#j|i.sd,cf~)keas#z|Ppovq[goi4;49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0>0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<5<15>S7'nxm"h gbz-gim'~xT|cz}_ckm808592_;#j|i.sd,cf~)keas#z|Ppovq[goi4?49=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0:0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<9<14>S7'nxm"h gbz-gim'~xT|cz}_ckm[5473\:$kh!rg-dg}(ddbr${Qnup\flhX9;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU9>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR==0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_503?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\176<]9%l~k }f.e`|+ekcq%|~R~ats]amkY1:91^<"i}f/pe+be&jf`t"y}_qlwvZdnfV=9<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS5<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34565?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>?1348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw67888<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?013263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;>?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234775>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><269V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567;;8=7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?01613>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:?=?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2340403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=;>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>;20Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?073262=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;:?;5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r123371<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<:?=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm30?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>2:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg949:91^<"i}f/pe+be&jf`t"y}_qlwvZad4:49<6[?/fpe*w`(ojr%oaew/vp\tkruWni783328Q5)`zo$yj"ilx/aoo})pzVzexQhc=4=65=R8&myj#|i/fa{*fjlp&}yS}`{r^e`828582_;#j|i.sd,cf~)keas#z|Ppovq[be;07;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU;=k5Z0.eqb+ta'nis"nbdx.uq[uhszVmhS;m7X> gsd-vc)`kq$h`fv ws]sjqtXojU3>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>3:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7=3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8785>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1=1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:36;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi35?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4?49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=5=63=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumn632?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\473<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT=?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\673<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT??;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\073<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT9?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\273<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmT;?;4U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\<7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2?>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86:2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:56;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>0:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<2;>3;8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl86>2?74U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4:16;30Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0>4:7?<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmTh<27>3:8Q5)`zo$yj"ilx/aoo})pzVzexQhc^cpv`aXl8U;>55Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5Z7502_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnkRj>_30;?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`Wm;T??64U1-dvc(un&mht#mcky-tvZvi|{UloRo|rde\`4Y3:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^71<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S;<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X?;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0];60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[}iu89:=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSua}012475=R8&myj#|i/fn3*wb(o{;%~kyit.Onq}YUIDUYHRKA_GUEP775n2_;#j|i.sd,ci6)zm%l~< }fvdw+HkrpVXJAR\JGNWW[@H69;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:76;n0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`:66;i0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`Y7:j1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ74=2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0=0<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228586;<1^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZkrp9:;=1?1379V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiRczx12359799;20Y=!hrg,qb*ak8'xo#j|>.sdtbq)bey~rSkyit^da62=R8&myj#|i/fn3*wb(o{;%~kyit.gntqXn~lSd?319V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sW`Ufyu>?0131=>S7'nxm"h gm2-va)`zhy%~~z|/b2,gdtuqgo0=0=9:W3+bta&{l$ka>!re-dvdu)zz~x#n> c`pq}kcs484956[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$ol|}yogw878512_;#j|i.sd,ci6)zm%l~l}!rrvp+f6(khxyuck{<2<1b>S7'nxm"h gm2-va)`zhy%~~z|/b2,chs&ngP

<1<17>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4:66;90Y=!hrg,qb*ak8'xo#j|ns/pppv)d8&|:0?0=3:W3+bta&{l$ka>!re-dvdu)zz~x#n> v0>0:75<]9%l~k }f.eo4+tc'nxj#||tr-`4*p64=49n6[?/fpe*w`(oe:%~i!hr`q-vvrt'j:$z?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b2,r4Y3Whdo<=>?13;8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.abvwim}6;2?74U1-dvc(un&mg<#|k/fpbw+tt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+tc'nxj#||tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-va)`zhy%~~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+tc'nxj#||tr-`5*aj}q$laV318Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t28485;2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8692?=4U1-dvc(un&mg<#|k/fpbw+tt|z%h="x><2<17>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4:36;h0Y=!hrg,qb*ak8'xo#j|ns/pppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6)zm%l~l}!rrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+tc'nxj#||tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-va)`zhy%~~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/pg+btf{'xxx~!l1.t2[1Yffm:;<=?=0:W3+bta&{l$ka>!re-dvdu)zz~x#nabp103?P6(o{l%~k!hl1,q`*auiz$yy} cnos57?<]9%l~k }f.eo4+tc'nxj#||tr-qehYbey~rSklPi228Q5)`zo$yj"ic0/pg+btf{'xxx~!}al]fiur~WohTeRa}012374=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34566::1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by<;;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw572<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~9>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu110>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|=8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{5368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr1:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by9=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp=433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d5?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7?<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot27>3a8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXkp632R|{2`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6;2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;978j7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8785i2_;#j|i.sd,ci6)zm%y|cz}/LalqkrXkfexRv`r=1=6d=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Usc2;>3c8Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkrXpfx793;:7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|39?0g?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey040Pru3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=2=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?5;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9499o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;;7;m7X> gsd-vc)`d9$yh"|nup,gjsi|5>5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~793?i;T2,cw`)zo%l`= }d.psjqt(kfex1811g9V4*aun'xm#jb?.sf,vuhsz&idycz37?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=:=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?=;7b3\:$kh!rg-dh5(ul&x{by| cnwmpZ66m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY69l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX:8o0Y=!hrg,qb*ak8'xo#~ats-`kphsW:;n7X> gsd-vc)`d9$yh"|nup,gjsi|V>:i6[?/fpe*w`(oe:%~i!}povq+firf}U>=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T:e:W3+bta&{l$ka>!re-qtkru'je~byQ6239V4*aun'xm#jb?.sf,vuhsz&idyczPd0>3:74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;97897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0?0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=1=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:36;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;793<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><7<16>S7'nxm"h gm2-va)uxg~y#naznu]g5919:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl8632?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?39?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W08?7X> gsd-vc)`d9$yh"|nup,gjsi|Vddx=>?13;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6;2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:66;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>1:7?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2<>3d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.enq}(`eR:V"jc>.l31b>S7'nxm"h gm2-sw)`hy%{~z|/b3,chs&ngP=P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28485;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8692?=4U1-dvc(un&mg<#y}/fubw+qt|z%h="x><2<17>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4:36;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S=Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U:Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W;Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b3,r4Y4Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t2[1Yig}:;<=?=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs494956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw848512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<3<1=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0>0=f:W3+bta&{l$ka>!ws-dsdu)z~x#n< glw{*bk\8T$la< b13d8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.enq}(`eR;V"jc|.lq1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP>P hmr,nw7`<]9%l~k }f.eo4+qu'n}j#y|tr-`6*aj}q$laV=R.fop*hu5n2_;#j|i.sd,ci6){%l{l}!wrvp+f4(ods"jcT4\,div(j{;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0=0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>2:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64;49?6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z<2<>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t28185j2_;#j|i.sd,ci6){%l{l}!wrvp+f4(~8U;Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p6W8Ujbi>?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y5Whdo<=>?13`8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l2.t2[6Yffm:;<=?=b:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0]7[kis89:;=?>4U1-dvc(un&mg<#y}/fubw+qt|z%hc`~>219V4*aun'xm#jb?.vp,crgt&~y"m`mq01<>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVliSd<:;T2,cw`)zo%l`= xr.etev(p{}y$~lcPftno[l4c3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy23454b3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQbuy234576l2_;#j|i.sd,ci6){%ym`Qxr^gm[l75;2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov261=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}8986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at207?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs<;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz:259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex:<;;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw<7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2?>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6;2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5;5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}979W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8785k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<3<\vq4>3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw33?0`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7?3Q}t3;8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6?2?m4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\g|:36Vx>45Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}939:j1^<"i}f/pe+bj7&~x${}`{r.O`kphsWje~byQly=7=[wr512_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<7<1g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vir0;0Pru0:?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWjs7;3 gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8485i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=0=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc2<>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7834:7g<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Ttb|38?0g?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey050Pru3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=2=5c=R8&myj#|i/fn3*rt(yd~"m`uov?5;7a3\:$kh!rg-dh5(pz&}{by| cnwmp9499o1^<"i}f/pe+bj7&~x${}`{r.alqkr;;7;m7X> gsd-vc)`d9$|~"ynup,gjsi|5>5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~793?i;T2,cw`)zo%l`= xr.usjqt(kfex1811g9V4*aun'xm#jb?.vp,suhsz&idycz37?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=:=5`=R8&myj#|i/fn3*rt(yd~"m`uov\44c<]9%l~k }f.eo4+qu'~zex!lotlw[47b3\:$kh!rg-dh5(pz&}{by| cnwmpZ46m2_;#j|i.sd,ci6){%||cz}/bmvjqY49l1^<"i}f/pe+bj7&~x${}`{r.alqkrX<8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW<;n7X> gsd-vc)`d9$|~"ynup,gjsi|V<:i6[?/fpe*w`(oe:%{!xpovq+firf}U<=h5Z0.eqb+ta'nf;"z| wqlwv*eh}g~T4?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi?30?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f28485:2_;#j|i.sd,ci6){%||cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64<49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=181239V4*aun'xm#jb?.vp,suhsz&idyczPd0>4:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;078:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_402?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[3463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W>8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S5<=;T2,cw`)zo%l`= xr.usjqt(kfexRj=<1<16>S7'nxm"h gm2-sw)pxg~y#naznu]g6979:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;692?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi<33?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18185:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5?5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?29>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?3;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54149=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R>=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^315>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z4592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V99=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R:=1:W3+bta&{l$ka>!ws-ttkru'je~byQk2^715>S7'nxm"h gm2-sw)pxg~y#naznu]g6Z0592_;#j|i.sd,ci6){%||cz}/bmvjqYc:V=9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo>R6=4:W3+bta&{l$ka>!ws-ttkru'je~byQaou2344703\:$kh!rg-nah)cg|~Te1>1199V4*aun'xm#`kb/emvpZo;994:46[?/fpe*w`(elg$hb{{_h>25;7?3\:$kh!rg-nah)cg|~Te1?=>0:8Q5)`zo$yj"cjm.flqqYn4895=55Z0.eqb+ta'dof#iazt^k?518602_;#j|i.sd,i`k(lfSd2>5?3;?P6(o{l%~k!bel-gkprXa5;=2<64U1-dvc(un&gna"j`uu]j84199>1^<"i}f/pe+hcj'me~xRg31?34?P6(o{l%~k!bel-gkprXa585=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3453=R8&myj#|i/lgn+air|VcT><84U1-dvc(un&gna"j`uu]j[6713\:$kh!rg-nah)cg|~TeR:>6:W3+bta&{l$ahc dnww[lY29?1^<"i}f/pe+hcj'me~xRgP6048Q5)`zo$yj"cjm.flqqYnW>;=7X> gsd-vc)jmd%ocxzPi^:22>S7'nxm"h mdo,`jssW`U2=45Z0.eqb+ta'dof#iazt^ofi9699h1^<"i}f/pe+hcj'me~xRcjm=33:4g<]9%l~k }f.ofi*bh}}Ufi`2>1?3b?P6(o{l%~k!bel-gkprXelg7=?0>a:W3+bta&{l$ahc dnww[hcj4895=l5Z0.eqb+ta'dof#iazt^ofi97368k0Y=!hrg,qb*kbe&ndyyQbel>21;7f3\:$kh!rg-nah)cg|~Tahc317<2e>S7'nxm"h mdo,`jssWdof0<91189V4*aun'xm#`kb/emvpZkbe5;5=45Z0.eqb+ta'dof#iazt^ofi949901^<"i}f/pe+hcj'me~xRcjm=1=5<=R8&myj#|i/lgn+air|Vgna1:1189V4*aun'xm#`kb/emvpZkbe5?5=45Z0.eqb+ta'dof#iazt^ofi909901^<"i}f/pe+hcj'me~xRcjm=5=5<=R8&myj#|i/lgn+air|Vgna161189V4*aun'xm#`kb/emvpZkbe535;95Z0.eqb+ta'dof#jlb.f`nc+aeenk%bjklc/`nc*dkcVgnaRijndpbpjt(~hfbh#m|ts-qehjhgyQ;Q#|nm/p,w6Yig`dbx#|nm.fsvdk)ly9=t<6!r`o2f>S7'nxm"h mdo,phvXzhgT~iQjn0a8Q5)`zo$yj"cjm.vntZtfeVxoSh`>169V4*aun'xm#ob_sgdkprXmg;o7X> gsd-vc)u{}hgg"|k_sqw[duumn8;7X> gsd-vc)u{}hgg"|k_sqw[duumnUo=?>4U1-dvc(un&xxxobd/sf\vvrXizxnkRj=1b9V4*aun'xm#}{bmi,vaYu{}Uhc`l>d:W3+bta&{l$~~zmlj-q`Ztt|Vidao?>e:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1>11d9V4*aun'xm#}{bmi,vaYu{}Uyij2>>0g8Q5)`zo$yj"||tcnh+wbXzz~T~hi32?3g?P6(o{l%~k!}su`oo*tcW{ySkh_13g?P6(o{l%~k!}su`oo*tcW{ySkh_03g?P6(o{l%~k!}su`oo*tcW{ySkh_33g?P6(o{l%~k!}su`oo*quW{ySl}}ef03?P6(o{l%~k!}su`oo*quW{ySl}}ef]g576<]9%l~k }f.pppgjl'~xT~~zParpfcZb59j1^<"i}f/pe+wusjea${Q}su]`khd6l2_;#j|i.sd,vvredb%|~R||t^alig76m2_;#j|i.sd,vvredb%|~R||t^pfc9699l1^<"i}f/pe+wusjea${Q}su]qab:668n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX88n0Y=!hrg,qb*tt|kf`#z|Prrv\v`aX9h1^_H\PAMKBWf=R[LXTZD]FBMG0?SED12\BIZQ[YQG0?RCF;2]NNn5XRHVF[HICMVKh7Z\FTD]NKACXJm1\^DZJ_VKGPMYFl2]YEYKPWHFWLZD6l2RB@D@W-YFA$5(6(Z^^N->!1!CPGLO23QEYOT84XRVOMG1gkefyShctx`8eikh{}Umyab9;cc`opvc3kkhgx~Pm`phaw5bf|hUhcx`{(6+g?agsiVidycz'8(d8`drfWje~by27:1<4?adn|lxy:6jfn)2*2>bnf!;";6jfn)33-2=cag":=$94dhl+57/03mce$<=&7:fjj-73!>1oec&>5(58`lh/9?#<7iga(05*3>bnf!;3%:5kio*2=,0$94dhl+65/03mce$??&7:fjj-45!>1oec&=3(58`lh/:=#<7iga(37*3>bnf!8=%:5kio*13,15'8;ekm,7?.>2nbb%=&7:fjj-57!>1oec&<1(58`lh/;;#<7iga(21*3>bnf!9?%:5kio*01,01oec2>3?58`lh;9=4<7iga<07=3>bnf5;=2:5kio>23;12nbb1?17:fjj9476>1oec2=1?58`lh;:;4<7iga<31=3>bnf58?2:5kio>11;1;08;ekm8719?2nbb1<7>69gmk:517<0hd`32?58`lh;;94<7iga<23=3>bnf5992:5kio>07;14=7iga<9<5?aoi404<7iazt)2*3>bh}}":%55kotv+55/?3me~x%?>)99gkpr/9;#37iazt)30-==cg|~#=9'7;emvp-72!11ocxz'17+;?air|!;<%:5kotv+6,1'8;emvp-2.?2ndyy&:)69gkpr/> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;7>18:flqq:6?7=0hb{{<0<4?air|585;6j`uu>0:2=cg|~78394dnww80803me~x1817:flqq:06>1ocxz38?58`jss40437hjff3ld`0=bey~r>k5iigm\c`hbzh~d~Rx9_0.#\ljnfq*HC_K/Gdlfvdrhz);9"=?v<6^0`hnY4>}e:4>o4fhdl[}jipV?:>u=9_3aooZ51|f;3 kgio^efj`tf|fxTz;Q>,OMMA)HHFL>;=6hffn]{hk~X=88s?;Q=cmi\73rh91&mekaPgdlfvdrhzV|=S<"tc^jbwZoi|Vigg0>#c^jbwZuu{}7; nQ}d^dqat;6$jUnbllce^pppZu~fj7: nQgar]q`Zbf|hUhcx`{=1.`[aoiW~coxe3<6-a\lduX{UomyoPcnwmp86+kVl~`aQil`ep[wusWkg1="l_hosh`kbf}keb`Ptxrf97*dW|ynShcmeeff`Ztbo4:'oRy}_gpfu87+kVxiRj`uu]qwq;6$jU~bik}fmmt[iip59&hSeo|_ntfvcjh4:'oR~}emmb`Zjf|ldhu0>#c^flqqYpam~c1<6#c^opcjhX~hf6=!mPre]gauro58:98!mPesplvZoiblieb`Ptxrf95*dWakxSx`kesdokr;7$jUcm~QnllmppZ`rde7; nQgar]qwq;6$jUomyoPcnwmpZqnl}b65!mPh`q\swYfkb7; nQzsd]fgf;7$jUhc`c`n^aokfm:8%iT{Qncj]okr;7$jUyhR~ats]tmaro58:'oR{|e^dtbqYci}kTob{at<2/gZnf{Vkgab}{_dosp|;7$jUyhRjnt`]`kphsW~coxe3>0-a\kscunee|Saax=1.`[rtXxg~ySzgkti?:(fYwzfmTi`~{y^vzt`;7$jU|~Rjnt`]`kphsW~coxe36,b]sv`jhimUyij}21-a\`jssW{yS{oc=1.`[mgtWmkmRm`uov>4)eXx{elSk{cl^vkv`uoWgolmykPv`n>15>+kV}ySikti?657*dWyxdkRkbpu{\pmtb{aUeijo{e^tbh83+kVzycjQjmqvz[qnumzbTm~}jru]uei;3$jUcm~Qyamkg95*dWyxdkRhzlm]wlwct`Vkxh|{_wco906>$jef|b`jnu]mehc:n`ldSubax^726}51W;iggR=9tn3;(fYqiecoSaax=1.`[utneVlbjbQ{yqg>144;?&hS}|`g^dvhiYsqyo6vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*51=wzfmTi`~{y^vkv`uo 0#::6~}of]fiur~W}byi~f39;2=5g=wzfmTi`~{y^vkv`uoWhyxiz'0(3a?uthoVof|ywPtipfwmYf{zoyx%?&1c9svjaXmdzuRzgrdqk[dutm{~#>$?m;qplcZcjx}sTxe|jsi]bwvcu|!9"=o5rne\ahvsqV~c~h}g_`qpawr/< ;i7}|`g^gntqX|axneQnsrgqp-3.9k1{~biPelrw}ZrozlycSl}|esv+2,7e3yxdkRkbpu{\pmtb{aUj~k}t)5*5g=wzfmTi`~{y^vkv`uoWhyxiz'8(3a?uthoVof|ywPtipfwmYf{zoyx%7&1e9svjaXmdzuRzgrdqk[dutm{~757>11c9svjaXmdzuRzgrdqk[kc`i}o#<$?m;qplcZcjx}sTxe|jsi]mabgsm!;"=o5rne\ahvsqV~c~h}g_ogdeqc/: ;i7}|`g^gntqX|axneQaefcwa-5.9k1{~biPelrw}ZrozlycSckhaug+0,7e3yxdkRkbpu{\pmtb{aUeijo{e)7*5g=wzfmTi`~{y^vkv`uoWgolmyk'6(3a?uthoVof|ywPtipfwmYimnki%9&1c9svjaXmdzuRzgrdqk[kc`i}o#4$?m;qplcZcjx}sTxe|jsi]mabgsm!3"=i5rne\ahvsqV~c~h}g_ogdeqc;13:556~}of]eqij6;2zycjQiumn\pmtb{a";%<=4psmd[cskdV~c~h}g(0+27>vugnUmyabPtipfwm.5!890|ah_gwohZrozlyc$>'>3:rqkbYa}efTxe|jsi*7-45a:rqkbYa}efTxe|jsi]bwvcu|!8"=l5rne\bpjkW}byi~fParqfvq.4!8k0|ah_gwohZrozlycSl}|esv+0,7f3yxdkRhzlm]wlwct`Vkxh|{(4+2e>vugnUmyabPtipfwmYf{zoyx%8&1`9svjaXn|fgSyf}erj\evubz}"<%vugnUmyabPtipfwmYimnki%<&1`9svjaXn|fgSyf}erj\j`af|l"8%$??;sf\`drfWje~by&<)028vaYci}kTob{at)6*55=ulVnjxlQlotlw,0/682xoSio{a^alqkr/> ;;7jPd`vb[firf}"<%<>4re]geqgXkfex%6&119q`Zbf|hUhcx`{(8+24>tcWmkmRm`uov?4;753{nThlzn_bmvjq:>294>7jPeo48vaYu{}90~~z8;r`jp`tu<2yyy:4tswf=>sillxm`by:;wcoma0<{Ujof84ws]`hn773~xThlzn_bmvjq.7!8:0{Qkauc\gjsi|!;"==5xr^fbpdYdg|d$?'>0:uq[agsiVidycz'3(33?rtXlh~jSnaznu*7-46<{UomyoPcnwmp-3.991|~Rjnt`]`kphs ?#:<6y}_ecweZeh}g~#;$??;vp\`drfWje~by&7)008swYci}kTob{at=:94;3<{Unb;5xr^pppxFGxh<>7MNw1;D90?7|[=l188;57;306g0dk398:ljtn2f6>4=i;m<1:6*107290:??l9cb8073gb3Z>o698?:18277d1kj08?;oi;e66hn0(>m9:00a?S5c<38py<=<:09v562=82w/=:75199a00>=839o6>47;'5=g=<<20(>j=:574?l2e83:17d:l4;29?j22k3:17b::6;29?l2e13:17d:m2;29?j2413:1(<9m:56b?k70i3:07b:<8;29 41e2=>j7c?8a;38?j24?3:1(<9m:56b?k70i3807b:<6;29 41e2=>j7c?8a;18?j24=3:1(<9m:56b?k70i3>07b:<4;29 41e2=>j7c?8a;78?j24;3:1(<9m:56b?k70i3<07b:<2;29 41e2=>j7c?8a;58?j2393:1(<9m:56b?k70i3207b:;0;29 41e2=>j7c?8a;;8?j24n3:1(<9m:56b?k70i3k07b:j7c?8a;`8?j24l3:1(<9m:56b?k70i3i07b:j7c?8a;f8?j24j3:1(<9m:56b?k70i3o07b:j7c?8a;d8?j2493:1(<9m:56b?k70i3;;76a;3183>!70j3>?m6`>7`825>=n<9>1<7*>7c8762=i9>k1<65f41194?"6?k0?>:5a16c95>=n<981<7*>7c8762=i9>k1>65f41394?"6?k0?>:5a16c97>=n<9:1<7*>7c8762=i9>k1865f3gd94?"6?k0?>:5a16c91>=n;on1<7*>7c8762=i9>k1:65f3ga94?"6?k0?>:5a16c93>=n;oh1<7*>7c8762=i9>k1465f3gc94?"6?k0?>:5a16c9=>=n;o31<7*>7c8762=i9>k1m65f3g:94?"6?k0?>:5a16c9f>=n;o=1<7*>7c8762=i9>k1o65f3g494?"6?k0?>:5a16c9`>=n;o?1<7*>7c8762=i9>k1i65f3g694?"6?k0?>:5a16c9b>=n;o81<7*>7c8762=i9>k1==54i2d2>5<#9>h18?94n05b>47<3`9m<7>5$05a>1403g;1e=:o51598m6cc290/=:l54358j41f28?07d=jc;29 41e2=8<7c?8a;35?>o4mk0;6)?8b;613>h6?h0:;65f3dc94?"6?k0?>:5a16c95==b:9j05>=83.:;o4;269m52g=9j10e9>8:18'52d=<;=0b<9n:0f8?l27>3:1(<9m:504?k70i3;n76g;0483>!70j3>9;6`>7`82b>=n;oo1<7*>7c8762=i9>k1>=54i2d0>5<#9>h18?94n05b>77<3`9n47>5$05a>1403g;tH2a7?!7?i39h96a>7983>>{el10;6<4?:1yK7f2<,82j6i64oe594?=zj=>1<7o::00g>40>sA9h86T;5;35d<>2k09m7<8:3:96<8`871g=#<10?945+4d871d=#9>>1=:94i554>5<#9>h18:64n05b>5=5<#9>h18:64n05b>7=54i550>5<#9>h18:64n05b>1=5<#9>h18:64n05b>3=5<#9>h18:64n05b>==5<5<5<#9>h18;j4n05b>5=5<#9>h18;j4n05b>7=54i54;>5<#9>h18;j4n05b>1=5<#9>h18;j4n05b>3=6=4+16`903b5<#9>h18;j4n05b>==5<5<#9>h185=4n05b>5=5<#9>h185=4n05b>7=54i55f>5<#9>h185=4n05b>1=5<#9>h185=4n05b>3=5<#9>h185=4n05b>==5<5<#9>h1?h;4n05b>4=5<#9>h1?h;4n05b>6=5<#9>h1?h;4n05b>0=5<#9>h1?h;4n05b>2=5<5<#9>h185k4n05b>5=5<#9>h185k4n05b>7=54i5::>5<#9>h185k4n05b>1=5<#9>h185k4n05b>3=5<#9>h185k4n05b>==5<5<5<#9>h18464n05b>4=6=4+16`90<>5<#9>h18464n05b>6=5<#9>h18464n05b>0=5<#9>h18464n05b>2=5<#9>h18l<4n05b>5=5<#9>h18l<4n05b>7=54i5;g>5<#9>h18l<4n05b>1=5<#9>h18l<4n05b>3=5<#9>h18l<4n05b>==5<5<5<5<#9>h189o4n05b>5=5<#9>h189o4n05b>7=54o516>5<#9>h189o4n05b>1=5<#9>h189o4n05b>3=5<#9>h189o4n05b>==;6=4+16`901g5<#9>h189o4n05b>d=5<#9>h189o4n05b>f=5<#9>h189o4n05b>`=5<#9>h189o4n05b>46<3f>8<7>5$05a>12f3g;;:k741<72-;4?:%34f?25?2d:;l4>;:k747<72-;1e=:o51098m6`7290/=:l54358j41f28807d=jf;29 41e2=8<7c?8a;30?>o4ml0;6)?8b;613>h6?h0:865f3df94?"6?k0?>:5a16c950=8:9j7`?=83.:;o4;269m52g=9010e9>n:18'52d=<;=0b<9n:0c8?l2713:1(<9m:504?k70i3;i76g;0983>!70j3>9;6`>7`82g>=n<9=1<7*>7c8762=i9>k1=i54i525>5<#9>h18?94n05b>4c<3`>;97>5$05a>1403g;1e=:o52098m6c?290/=:l54358j41f2;807d=j7;29 41e2=8<7c?8a;00?>o4l00;66a;ae83>!70j3>jj6`>7`83?>i3ij0;6)?8b;6bb>h6?h0:76a;ac83>!70j3>jj6`>7`81?>i3ih0;6)?8b;6bb>h6?h0876a;a883>!70j3>jj6`>7`87?>i3i10;6)?8b;6bb>h6?h0>76a;a683>!70j3>jj6`>7`85?>i3i?0;6)?8b;6bb>h6?h0<76a;a483>!70j3>jj6`>7`8;?>i3i=0;6)?8b;6bb>h6?h0276a;c383>!70j3>h?6`>7`83?>i3k80;6)?8b;6`7>h6?h0:76a;c183>!70j3>h?6`>7`81?>i3jo0;6)?8b;6`7>h6?h0876a;bd83>!70j3>h?6`>7`87?>i3jm0;6)?8b;6`7>h6?h0>76a;bb83>!70j3>h?6`>7`85?>i3jk0;6)?8b;6`7>h6?h0<76a;b`83>!70j3>h?6`>7`8;?>i3>;0;66g;5e83>>i4m?0;66g;a283>>i3j?0;66l4<729q/=5o5d99K7f`<@:i?7bj8:188yg5c93:1=7>50z&21<729q/=5o5d59K7f`<@:i?7)k::79j03<722c><7>5;h34g?6=3f;5;|`052<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n3:187>50z&25;h6`>5<?54c78 `3=:2c?:7>5;h73>5<8`8g5>N4ko1C?n:4H518 4562=h>7)k::39j03<722c><7>5;n34`?6=3th8n=4?:283>5}#91k1h<5G3bd8L6e33A>87)?<1;6a1>"b=380e9850;9j15<722e:;i4?::a7gg=83?1<7>t$0:b>a3<@:im7E=l4:J77>"6;80?n85f4783>>o3?3:17d;?:188m41d2900c<9k:188yg5ej3:1?7>50z&27=n0<729q/=5o5d49K7f`<@:i?7E:<;%305?2e=2c?:7>5;h64>5<n1<75rb2`:>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f6d?290?6=4?{%3;e?b33A9hj6F=6=44i4294?=n9>i1<75`16f94?=zj:h<6=4;:183!7?i3n?7E=lf:J0g1=#m<0=7d:9:188m06=831b=:m50;9l52b=831vn>m=:187>5<7s-;3m7j;;I1`b>N4k=1/i849;h65>5<n1<75rb2a2>5<3290;w)?7a;f7?M5dn2B8o95+e485?l212900e8>50;9j52e=831d=:j50;9~f4gc290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9hi1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:mo4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?na;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb0c:>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5d>=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6i>0;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm20694?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`156<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<<>50;694?6|,82j6i<4H2ae?M5d<2.n97<4i5494?=n1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f76c290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:9i1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th99n4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<:b;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb37b>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a60?=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5=10;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<;7>54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn?;9:187>5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm24794?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`111<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<f783>1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f4`3290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e9o91<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th:j?4?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo?i1;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb36b>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36:>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb36;>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb364>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb365>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb366>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb367>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb360>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb361>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g4>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g5>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g6>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g7>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g0>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g1>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g2>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0g3>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0fe>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0ff>5<3290;w)?7a;f1?M5dn2B8o95G429'567=h6=44i4294?=h9>n1<75rb0f0>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a5a4=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd6l80;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o>6F6g;6;29?l2d2900e8>50;9l52b=831vn5<7s-;3m7j=;I1`b>N4k=1/i84=;h65>5<>i6?m0;66sm1bg94?2=83:p(<6n:e08L6ea3A9h86*j5;08m10=831b8n4?::k64?6=3f;5;|`2ga<72=0;6=u+19c9`7=O;jl0D>m;;%g6>7=n50z&25;h6`>5<1<729q/=5o5d39K7f`<@:i?7)k::39j03<722c?o7>5;h73>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f751290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e::?1<7:50;2x 4>f2m80D>mi;I1`0>"b=380e9850;9j0f<722c><7>5;n34`?6=3th9?94?:583>5}#91k1h?5G3bd8L6e33-o>6?5f4783>>o3k3:17d;?:188k41c2900qo<<3;290?6=8r.:4l4k2:J0gc=O;j>0(h;52:k72?6=3`>h6=44i4294?=h9>n1<75rb311>5<3290;w)?7a;f1?M5dn2B8o95+e481?l212900e9m50;9j15<722e:;i4?::a667=83>1<7>t$0:b>a4<@:im7E=l4:&f1?4>o283:17b?8d;29?xd5;90;694?:1y'5=g=l;1C?nh4H2a7?!c22;1b8;4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6a1=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:m>1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>i=50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4c:3:197>50z&25;h64>5<>i6?m0;66sm2e294?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o96F50;9j52e=831d=:j50;9~f7b6290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5k;0;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl=b983>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7e729086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn?l;:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi>oh50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a6g4=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`1f`<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th9n=4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb3``>5<4290;w)?7a;1`a>N4ko1C?n:4i5;94?=n9;21<75`16494?=zj;kh6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:kh1<7=50;2x 4>f2:in7E=lf:J0g1=n<00;66g>2983>>i6??0;66sm2`c94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=b`83>6<729q/=5o53bg8L6ea3A9h86g;9;29?l7503:17b?86;29?xd5i10;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4bk3:197>50z&25;h64>5<>i6?m0;66sm2d`94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a6`?=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e:l=1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi>h;50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg4b<3:197>50z&25;h64>5<>i6?m0;66sm2d194?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<54;294~"60h0o86F0(h;56:k72?6=3`?;6=44i05`>5<8`8g6>N4ko1C?n:4$d796>o3>3:17d:l:188m06=831d=:j50;9~f70>290?6=4?{%3;e?b53A9hj6F=6=44i5a94?=n=90;66a>7e83>>{e:1o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd50m0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4?k3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7>e290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a6=g=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`13g<72=0;6=u+19c9564<@:im7E=l4:k7=?6=3`?96=44i0:0>5<8`8277=O;jl0D>m;;h6:>5<<1<75rb35:>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm26:94?2=83:p(<6n:011?M5dn2B8o95f4883>>o2:3:17d?73;29?j70>3:17pl=7683>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=?9;290?6=8r.:4l4>339K7f`<@:i?7d:6:188m04=831b=5=50;9l520=831vn>>7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?=950;694?6|,82j6<==;I1`b>N4k=1b844?::k66?6=3`;3?7>5;n342?6=3th8<;4?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj;l=6=4;:183!7?i3;8>6F>o60:0;66a>7783>>{e:o?1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd5n=0;694?:1y'5=g=9:80D>mi;I1`0>o313:17d;=:188m4>42900c<99:188yg4a;3:187>50z&22900e8<50;9j5=5=831d=:850;9~f7`5290?6=4?{%3;e?74:2B8ok5G3b68m1?=831b9?4?::k2<6<722e:;;4?::a70d=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=:9;291?6=8r.:4l4k5:J0gc=O;j>0(h;56:k72?6=3`><6=44i4294?=n9>i1<75`16f94?=zj:?j6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`01f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>;k:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4=l0;684?:1y'5=g=l:1C?nh4H2a7?!c22;1b8;4?::k73?6=3`>h6=44i4294?=h9>n1<75rb27e>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8:=4?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f606290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d29K7f`<@:i?7)k::39j03<722c?;7>5;h6`>5<n6=4::183!7?i3n87E=lf:J0g1=#m<097d:9:188m11=831b8n4?::k64?6=3f;5;|`00f<72<0;6=u+19c9`6=O;jl0D>m;;%g6>7=n50;9l52b=831vn>:m:186>5<7s-;3m7j<;I1`b>N4k=1/i84=;h65>5<>o283:17b?8d;29?xd4h6=44i4294?=h9>n1<75rb26b>5<2290;w)?7a;f0?M5dn2B8o95+e481?l212900e9950;9j0f<722c><7>5;n34`?6=3th8844?:483>5}#91k1h>5G3bd8L6e33-o>6?5f4783>>o3?3:17d:l:188m06=831d=:j50;9~f620290>6=4?{%3;e?b43A9hj6F=6=44i5594?=n0<729q/=5o5d49K7f`<@:i?7)k::79j03<722c?;7>5;h73>5<5<53;294~"60h08oh5G3bd8L6e33`>26=44i00;>5<8`80g`=O;jl0D>m;;h6:>5<5<7>54;294~"60h0:??5G3bd8L6e33`>26=44i4094?=n9191<75`16494?=zj:9j6=4<:183!7?i39hi6F<1<75rb213>5<3290;w)?7a;306>N4ko1C?n:4i5;94?=n=;0;66g>8283>>i6??0;66sm32;94?5=83:p(<6n:2af?M5dn2B8o95f4883>>o6:10;66a>7783>>{e;;o1<7:50;2x 4>f28997E=lf:J0g1=n<00;66g:2;29?l7?;3:17b?86;29?xd4;10;6>4?:1y'5=g=;jo0D>mi;I1`0>o313:17d?=8;29?j70>3:17pl<2b83>1<729q/=5o51208L6ea3A9h86g;9;29?l352900e<6<:188k4112900qo=<7;297?6=8r.:4l450z&22900e8<50;9j5=5=831d=:850;9~f65129086=4?{%3;e?5dm2B8ok5G3b68m1?=831b=?650;9l520=831vn><7:187>5<7s-;3m7?<2:J0gc=O;j>0e9750;9j17<722c:4>4?::m233<722wi?>;50;194?6|,82j6>mj;I1`b>N4k=1b844?::k26=<722e:;;4?::a770=83>1<7>t$0:b>4553A9hj6F>7>5;h3;7?6=3f;<:7>5;|`071<72:0;6=u+19c97fc<@:im7E=l4:k7=?6=3`;947>5;n342?6=3th8>94?:583>5}#91k1=><4H2ae?M5d<2c?57>5;h71>5<5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a724=83?1<7>t$0:b>a5<@:im7E=l4:&f1?4>o3k3:17d;?:188k41c2900qo=81;291?6=8r.:4l4k3:J0gc=O;j>0(h;52:k72?6=3`><6=44i5a94?=n=90;66a>7e83>>{e;>:1<7;50;2x 4>f2m90D>mi;I1`0>"b=380e9850;9j02<722c?o7>5;h73>5<8`8g7>N4ko1C?n:4$d796>o3>3:17d:8:188m1e=831b9=4?::m23a<722wi?;k50;794?6|,82j6i=4H2ae?M5d<2.n97<4i5494?=n<>0;66g;c;29?l372900c<9k:188yg51l3:197>50z&25;h64>5<>i6?m0;66sm37a94?3=83:p(<6n:e18L6ea3A9h86*j5;08m10=831b8:4?::k7g?6=3`?;6=44o05g>5<55;294~"60h0o?6F6g;6;29?l202900e9m50;9j15<722e:;i4?::a7<6=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8g83>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<55;294~"60h0o:6F6g;6;29?l202900e8>50;9j52c=831d=:j50;9~f6>c290>6=4?{%3;e?b13A9hj6F=6=44i5594?=n=90;66g>7d83>>i6?m0;66sm39a94?3=83:p(<6n:e48L6ea3A9h86*j5;08m10=831b8:4?::k64?6=3`;5;n34`?6=3th84o4?:483>5}#91k1h;5G3bd8L6e33-o>6?5f4783>>o3?3:17d;?:188m41b2900c<9k:188yg5?i3:197>50z&22B8ok5G3b68 `3=:2c?:7>5;h64>5<n1<75rb2::>5<2290;w)?7a;f5?M5dn2B8o95+e481?l212900e9950;9j15<722c:;h4?::m23a<722wi?4650;794?6|,82j6i84H2ae?M5d<2.n97<4i5494?=n<>0;66g:0;29?l70m3:17b?8d;29?xd41>0;684?:1y'5=g=l?1C?nh4H2a7?!c22;1b8;4?::k73?6=3`?;6=44i05f>5<8`8g2>N4ko1C?n:4$d796>o3>3:17d:8:188m06=831b=:k50;9l52b=831vn>7::186>5<7s-;3m7j9;I1`b>N4k=1/i84=;h65>5<>o6?l0;66a>7e83>>{e;0>1<7;50;2x 4>f2m<0D>mi;I1`0>"b=380e9850;9j02<722c><7>5;h34a?6=3f;5;|`0=6<72<0;6=u+19c9`3=O;jl0D>m;;%g6>7=n0(h;52:k72?6=3`><6=44i4294?=n9>o1<75`16f94?=zj:3:6=4::183!7?i3n=7E=lf:J0g1=#m<097d:9:188m11=831b9=4?::k23`<722e:;i4?::a7=>=83?1<7>t$0:b>a0<@:im7E=l4:&f1?4>o283:17d?8e;29?j70l3:17pl<8683>0<729q/=5o5d79K7f`<@:i?7)k::39j03<722c?;7>5;h73>5<5<53;294~"60h0:>i5G3bd8L6e33-o>6<74ie;94?=nlh0;66a>7783>>{e;k91<7=50;2x 4>f288o7E=lf:J0g1=#m<0:56gk9;29?lbf2900c<99:188yg46>3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18c94?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?69;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4650;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e90<1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7>=3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm18094?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo?61;297?6=8r.:4l4>2e9K7f`<@:i?7)k::0f8ma?=831bhl4?::m233<722wi=4>50;194?6|,82j6<N4k=1/i84>d:kg=?6=3`nj6=44o055>5<53;294~"60h0:>i5G3bd8L6e33-o>67783>>{e91o1<7=50;2x 4>f288o7E=lf:J0g1=#m<0:h6gk9;29?lbf2900c<99:188yg7?l3:1?7>50z&2t$0:b>44c3A9hj6F5;hfb>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm27g94?2=83:p(<6n:00f?M5dn2B8o95+e48``>oc13:17djn:188mad=831d=:850;9~f77?290?6=4?{%3;e?75m2B8ok5G3b68 `3=:=1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>6?:4ie;94?=nlh0;66gkb;29?j70>3:17pl=6b83>0<729q/=5o513d8L6ea3A9h86*j5;3b?lb>2900eio50;9j`g<722coo7>5;n342?6=3th9=l4?:483>5}#91k1=?h4H2ae?M5d<2.n97?i;hf:>5<>ock3:17b?86;29?xd6j:0;684?:1y'5=g=9;l0D>mi;I1`0>"b=3;m7dj6:188mag=831bho4?::kgg?6=3f;<:7>5;|`137<72<0;6=u+19c957`<@:im7E=l4:&f1?463`n26=44iec94?=nlk0;66gkc;29?j70>3:17pl<1`83>6<729q/=5o513f8L6ea3A9h86*j5;33?lb>2900eio50;9l520=831vn?89:187>5<7s-;3m7?=e:J0gc=O;j>0(h;52b9j`<<722com7>5;hfa>5<8`826a=O;jl0D>m;;%g6>4b>i6??0;66sm1c794?5=83:p(<6n:00g?M5dn2B8o95+e482`>oc13:17djn:188k4112900qo<>e;290?6=8r.:4l4>2d9K7f`<@:i?7)k::368ma?=831bhl4?::kgf?6=3f;<:7>5;|`2f2<72=0;6=u+19c957c<@:im7E=l4:&f1?433`n26=44iec94?=nlk0;66a>7783>>{e:;:1<7;50;2x 4>f288m7E=lf:J0g1=#m<0:j6gk9;29?lbf2900eil50;9j`f<722e:;;4?::a5g?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm3`f94?2=83:p(<6n:00f?M5dn2B8o95+e4865>oc13:17djn:188mad=831d=:850;9~f702290>6=4?{%3;e?75n2B8ok5G3b68 `3=9;1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb230>5<4290;w)?7a;31`>N4ko1C?n:4$d7967=nl00;66gka;29?j70>3:17pl<0183>6<729q/=5o513f8L6ea3A9h86*j5;01?lb>2900eio50;9l520=831vn?77:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<6=4::183!7?i3;9j6F>5fd883>>oci3:17djm:188mae=831d=:850;9~f675290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3de>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?78:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f676290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3df>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?79:186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f677290>6=4?{%3;e?75n2B8ok5G3b68 `3=::1bh44?::kge?6=3`ni6=44iea94?=h9><1<75rb3dg>5<2290;w)?7a;31b>N4ko1C?n:4$d7966=nl00;66gka;29?lbe2900eim50;9l520=831vn?7::186>5<7s-;3m7?=f:J0gc=O;j>0(h;5219j`<<722com7>5;hfa>5<=5fd883>>oci3:17djm:188mae=831d=:850;9~f7?c290?6=4?{%3;e?75m2B8ok5G3b68 `3=ko1bh44?::kge?6=3`ni6=44o055>5<54;294~"60h0:>h5G3bd8L6e33-o>63:17pl=8083>1<729q/=5o513g8L6ea3A9h86*j5;32?lb>2900eio50;9j`g<722e:;;4?::a74?=83?1<7>t$0:b>44a3A9hj6F5;hfb>5<>i6??0;66sm31d94?3=83:p(<6n:00e?M5dn2B8o95+e4817>oc13:17djn:188mad=831bhn4?::m233<722wi>km50;794?6|,82j6<N4k=1/i84=3:kg=?6=3`nj6=44ie`94?=nlj0;66a>7783>>{e:;91<7=50;2x 4>f288o7E=lf:J0g1=#m<09>6gk9;29?lbf2900c<99:188yg7ek3:1?7>50z&21<7>t$0:b>44b3A9hj6F5;hfb>5<>oci3:17djm:188k4112900qo2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7d029096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi>o;50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`1f6<72;0;6=u+19c957e<@:im7E=l4:&f1?773`n26=44o055>5<52;294~"60h0:>n5G3bd8L6e33-o>6<>4ie;94?=h9><1<75rb3ce>5<5290;w)?7a;31g>N4ko1C?n:4$d7955=nl00;66a>7783>>{e:hn1<7<50;2x 4>f288h7E=lf:J0g1=#m<0:<6gk9;29?j70>3:17pl=ac83>7<729q/=5o513a8L6ea3A9h86*j5;33?lb>2900c<99:188yg4f13:1>7>50z&2=<:181>5<7s-;3m7?=c:J0gc=O;j>0(h;5119j`<<722e:;;4?::a767=8381<7>t$0:b>44d3A9hj6F5;n342?6=3th8>k4?:383>5}#91k1=?m4H2ae?M5d<2.n97??;hf:>5<8`826f=O;jl0D>m;;%g6>46>i6??0;66sm33;94?4=83:p(<6n:00`?M5dn2B8o95+e4824>oc13:17b?86;29?xd4:>0;6?4?:1y'5=g=9;i0D>mi;I1`0>"b=3;;7dj6:188k4112900qo==5;296?6=8r.:4l4>2b9K7f`<@:i?7)k::028ma?=831d=:850;9~f7e329096=4?{%3;e?75k2B8ok5G3b68 `3=991bh44?::m233<722wi?>j50;094?6|,82j6<N4k=1/i84>0:kg=?6=3f;<:7>5;|`167<72?0;6=u+19c9566<@:im7E=l4:&f1?423`n26=44iec94?=nlk0;66gkc;29?j7513:17b?86;29?xd6jk0;6;4?:1y'5=g=9::0D>mi;I1`0>"b=38>7dj6:188mag=831bho4?::kgg?6=3f;957>5;n342?6=3th8mo4?:9594?6|@:i?7)?7a;34b>\3=3kp47<9:e821?7428h1i7?9:0695f0=#m80>7)k=:49'a6<23-ii6i>4$d491>"b?3?0(h655:&f=?3<,lk196*jb;78 `e==2.nh7;4$dg91>"bn3?0(k>55:&e5?3<,o8196*i3;78 c2==2.m97;4$g491>"a?3?0(k655:&e=?3<,ok196*ib;78 ce==2.mh7;4$gg91>"an3?0(<>?:49'557==2.:"68?0>7)??7;78 46?2<1/==755:&24d<23-;;n7;4$02`>0=#99n196*>0d86?!77n3?0("69?0>7)?>7;78 47?2<1/=<755:&25d<23-;:n7;4$03`>0=#98n196*>1d86?!76n3?0(<?4:;%317?3<,88?685+13791>"6:?087)?74;61?!c32<1/=5853:&0g<<6091/?no51928j4n0:2>4444=831b=5650;9j<0<72-;k1<65f3483>!70j39=7c?8a;38?l53290/=:l5379m52g=:21b?>4?:%34f?513g;5<#9>h1?;5a16c90>=n;80;6)?8b;15?k70i3?07d=?:18'52d=;?1e=:o56:9j6c<72-;k1465f2e83>!70j39=7c?8a;;8?l26290/=:l5419m52g=821b?k4?:%34f?273g;5<#9>h18=5a16c96>=n;m0;6)?8b;63?k70i3907d=l:18'52d=<91e=:o54:9j7g<72-;k1:65f3883>!70j3>;7c?8a;58?l5?290/=:l5419m52g=021b;i4?:%34f?1d3g;4;h5a>5<#9>h1;n5a16c95>=n?00;6)?8b;5`?k70i3807d97:18'52d=?j1e=:o53:9j32<72-;k1965f7483>!70j3=h7c?8a;48?l13290/=:l57b9m52g=?21b;>4?:%34f?1d3g;5<#9>h1;n5a16c9=>=n?80;6)?8b;5`?k70i3k07d9?:18'52d=?j1e=:o5b:9j2`<72-;k1h65f6b83>!70j3=h7c?8a;g8?l0e290/=:l57b9m52g=n21b:l4?:%34f?1d3g;47<3`<36=4+16`93f=i9>k1=?54i7594?"6?k07`827>=n>?0;6)?8b;5`?k70i3;?76g95;29 41e2>i0b<9n:078?l>3290/=:l57b9m52g=9?10e5=50;&23g<0k2d:;l4>7:9j<7<72-;5$05a>2e5<#9>h1;n5a16c95d=l1<7*>7c84g>h6?h0:n65f7d83>!70j3=h7c?8a;3`?>o0i3:1(<9m:6a8j41f28n07d8i:18'52d=?j1e=:o51d98m32=83.:;o48c:l23d<6n21b4n4?:%34f?>e3g;4;h:b>5<#9>h14o5a16c95>=n000;6)?8b;:a?k70i3807d67:18'52d=0k1e=:o53:9l=1<72-;k1=65`9083>!70j3387c?8a;08?j?7290/=:l5929m52g=;21d4k4?:%34f??43g;5<#9>h15>5a16c91>=h1m0;6)?8b;;0?k70i3<07b7l:18'52d=1:1e=:o57:9l=g<72-;<3f3j6=4+16`9=6=i9>k1565`9883>!70j3387c?8a;c8?j??290/=:l5929m52g=j21d5:4?:%34f??43g;5<#9>h15>5a16c9`>=h1<0;6)?8b;;0?k70i3o07b6k:18'52d=1:1e=:o5f:9lg6<72-;k1=65fc`83>>o6000;66g>o2i3:1(<9m:4;8j41f2910e8650;&23g<212d:;l4>;:k63?6=,8=i6874n05b>7=7c86=>h6?h0876g:5;29 41e2<30b<9n:598m02=83.:;o4:9:l23d<232c=?7>5$05a>0?56`>7`84?>o193:1(<9m:4;8j41f2110e;>50;&23g<212d:;l46;:k6b?6=,8=i6874n05b>d=7c86=>h6?h0i76g:d;29 41e2<30b<9n:b98m0e=83.:;o4:9:l23dn7>5$05a>0?56`>7`8e?>o??3:1(<9m:948j41f2910co650;&23g4=1<7*>7c8a3>h6?h0976am3;29 41e2k=0b<9n:298kg4=83.:;o4m7:l23d<332ei=7>5$05a>g17`85?>ifn3:1(<9m:c58j41f2>10clk50;&23g<=7c8a3>h6?h0j76anb;29 41e2k=0b<9n:c98kd?=83.:;o4m7:l23d5$05a>g17`8f?>if>3:1(<9m:c58j41f2o10cl;50;&23g0:9le1<72-;5$05a>g15<#9>h1n:5a16c956=7c8a3>h6?h0:865`a183>!70j3h<7c?8a;36?>ien3:1(<9m:c58j41f28<07blj:18'52d=j>1e=:o51698kgb=83.:;o4m7:l23d<6021dnn4?:%34f?d03g;4g<3fhj6=4+16`9f2=i9>k1=o54oc;94?"6?k0i;6`>7`82g>=hj<0;6)?8b;`4?k70i3;o76ana;29 41e2k=0b<9n:0g8?j?a290/=:l5b69m52g=9o10cn650;&23g4=7c8`3>h6?h0976al4;29 41e2j=0b<9n:298yv2e83:1:vP;b19>63c=lh16>;m5d89>624=lj16>;85dc9>633=l01v9oj:1853~X4m?1U?i64^5`;?[2e>2T8h:5Q4c18Z1063W>i;6P;639]0=2k?;_1gb>X4ll1U?ij4^2f`?[2d:2T?o<5Q4b28Z1da3W>ii6P;be9]0geX3i01U8l64^5c4?[2f>2T?m85Q4`6896b72m=01>ln:42896ga2<:01>l6:42896d?2<:01>l8:42896e52<:01>m>:42897d?2<801?l9:40897d32<801?l=:40897d72<801?oj:40897gd2<801?on:40897g?2<801?6j:40897>c2<801?6l:40897>e2<801?6n:408971e2<801?9n:408971>2<801?97:40897102<801>>6:408966?2<801>>8:40896612<801>>::40897`12<801?h::40897`32<801?h<:40897`52<801>==:40896572<801><9:40896432<801>om:97896ge282270=nb;1`3>;4ik0>m63;4ik0>;63;4ik0>963;4ik0=?63;4ik0==63;4ik0>j63;4ik0>h63;4ik0>n63;4ik03;6s|4c094?5|V=h970=ma;34g>;4io0:;n5rs353>5<5sW>>:63=71823a=z{=i?6=4<{_6`0>;49h0o563<188g=>{t;51k0?:63;4j90?:63;4j00?:63;4j>0?:63=15872>;59:0?:63=13872>;5980?:63=11872>;58o0?:63=0d872>;58m0?:63=0b872>;5=j0?:63=5c872>;5=h0?:63=58872>;5=10?:63=56872>;5=?0?:63=54872>;5==0?:63=4`872>;5<00?:63=49872>;5<>0?:63=47872>;5<<0?:63=45872>;5<:0?:63=43872>;6l:0?:63>d3872>;6l80?:63>d1872>;6ko0?:63>cd872>;6km0?:63>cb872>;6kk0?:63>c`872>;5l10?:63=d6872>;5l<0?:63=d5872>;5l?0?:63=d2872>;5l;0?:63=d1872>;5ko0?:63=d0872>;5mj0?:63=ec872>;5mh0?:63=e8872>;5m10?:63=e6872>;5m?0?:63=e4872>;5m=0?:63=e2872>;5>o0?:63=71872>;5>h0?:63=68872>;4190?:63<8g872>;40l0?:63<8e872>;40j0?:63<8c872>;40h0?:63<88872>;4110?:63<96872>;41?0?:63<94872>;41=0?:63<92872>;41;0?:63<90872>;4010?:63<86872>;4ik0?m6s|30594?4|V=?h70=>7;34`>{t;49>0?:63<17872>;4jj0?:63;4jk0?:63;4k80?:63>ae872>;6ij0?:63>ac872>;6ih0?:63>a8872>;6i10?:63>a6872>;6i?0?:63>a4872>;6n00?:63>f9872>;6n>0?:63>f7872>;6n<0?:63>f5872>;6n:0?:63>f3872>;6n80?:63>e6872>;6m?0?:63>e4872>;6m=0?:63>e2872>;6m;0?:63>e0872>;6m90?:63>dg872>;6ll0?:63=39872>;5;>0?:63=37872>;5;<0?:63=35872>;5;:0?:63=33872>;5;80?:63=31872>;4=k0?:63<58872>;4=h0?:63<5b872>;4=m0?:63<5d872>;4=o0?:63<61872>;4>80?:63<4g872>;4;4;4;4<>0?:63<49872>;4?:0?:63<73872>;4?80?:63<71872>;4>o0?:63<6d872>;4>m0?:63<6b872>;4>k0?:63{t;>n1<783;{t;>h1<7{t;>31<7{t;>=1<7{t;1<1<703;;70=67;34`>{t;1>1<7>3;{t;181<7<3;{t;1:1<7:3;{t;>o1<7{t<;21<77}Y<9901>om:7c8yv25=3:1>vP;039>7dd=>01v9<;:181[279278mo498:p075=838pR9>?;<1bf?003ty?>?4?:3y]7c`<5:ki6;84}r614?6=:rT8ji523``920=z{=;m6=4={_1eg>;4ik0386s|40g94?4|V:li70=nb;:0?xu39m0;6?uQ3gc896ge2120q~:>c;296~X4n016?ll5839~w17e2909wS=i8:?0eg2`:47>52z\0b0=:;hh1;h5rs534>5<5sW9m863{t<8?1<77}Y;o;01>om:768yv26;3:1>vP7dd=0j1v9?=:181[5bn278mo48d:p047=838pR>kj;<1bf?1e3ty?==4?:3y]7`b<5:ki6:74}r63b?6=:rT8in523``93==z{=:n6=4={_1ff>;4ik0<;6s|41f94?4|V:oj70=nb;55?xu38j0;6?uQ3d;896ge2>?0q~:=f;296~X38h16?ll5759~w14b2909wS:?9:?0eg249n7>52z\743=:;hh1;<5rs50b>5<5sW>;963{t<;31<77}Y;o901>om:7f8yv26>3:1>vP7dd=>j1v9>m:181[5b?278mo49b:p563=833p1>j>:05;?84ei3>270270<87;6:?857=3>270270==4;6:?xu51j0;6?u228`915=::0n1=:84}r1a2?6=9hq6>4l516a896d>28=o70h70h70h70h70;5l80?o63=eb87g>;5mk0?o63=e`87g>;5m00?o63=e987g>;5m>0?o63=e787g>;5m<0?o63=e587g>;5m:0?o63=6g823f=::>:1=:m4=34b>1e<5;<269m4}r0:f?6=7e9>63e=lj16?lj5d89>633=lh1v>li:181<~;49>0?o63<1787g>;4k80:;i521`f90f=:9hi18n521``90f=:9hk18n521`;90f=:9h218n521`590f=:9h<18n521`790f=:9o318n521g:90f=:9o=18n521g490f=:9o?18n521g690f=:9o918n521g090f=:9o;18n521d590f=:9l<18n521d790f=:9l>18n521d190f=:9l818n521d390f=:9l:18n521ed90f=:9mo18n5222:90f=:::=18n5222490f=:::?18n5222690f=:::918n5222090f=:::;18n5222290f=z{:;36=4<{<123?37349::7;?;<12=?70>2wx?<850;1x967128=o70=>a;fb?85613nj7p}6}:;k;19=523c2952b<5:km6994}r1a5?6=:r78n<4>7e9>7g5=l01v>lm:18085ek3?;70=ma;64?85ej3;3ty8mk4?:2y>7g6==916?lh516f896d42mk0q~=ma;297~;4jh0:;i523c`915=:;ko1hl5rs2`1>5<3s49i57?8c:?0f=<6?j16?o9516a896d428==7p}70|5:h36<9k;<020?2d348:?7:l;<026?2d348:=7:l;<024?2d348;j7:l;<03a?2d348;h7:l;<03g?2d348>o7:l;<06f?2d348>m7:l;<06=?2d348>47:l;<063?2d348>:7:l;<061?2d348>87:l;<07e?2d348?57:l;<07;40o0:;h5239g952c<5:2o6<9j;<1;g?70m2784o4>7d9>7=g=9>o01>66:05f?85>03;41b349287?8e:?0=6<6?l16?4<516g896?628=n70=78;34a>;40>0:;h523`f9`d=:;hh1=564}r1a`?6=;r78o?4>7b9>7f7=9>i01>lj:055?xu4k90;641c349>n7:l;<16=?70k2789l4;c:?01f<3k2789i4;c:?01`<3k2789k4;c:?025<3k278:<4;c:?00c<3k2788h4;c:?00f<3k2788o4;c:?00a<3k2788l4;c:?00<<3k2788:4;c:?00=<6?j16?:=54b9>724=726=73c=73e=w0?nd;73?87a13;ag8ge>;6j80o563>b28gg>{t9h>1<7=t=0cg>41c349:?7jn;<134?bf3ty:mh4?:3y>5de==916=lh51648yv7f;3:1?v3>ab823a=:;881h4522gd9`<=z{8h;6=4={<3bf?3734;i=7?86:p5d4=839p1ag<58h<6i74=0`:>ae<58hi6im4}r3b5?6=;r7:ml4>7e9>747=l016>kk5d89~w4d32909w0?n9;73?87e=3;<:6s|1`294?5|58k26<9k;<125?be348mi7jm;|q2f3<72;q6=l65519>5g1=9><0q~?6f;297~;6i10:;i523029`<=::on1h45rs0`;>5<5s4;j;7;?;<3a=?70>2wx=4k50;1x94g028=o70=>0;fa?84al3ni7p}>b`83>7}:9h<19=521ca952053z?2e3<6?m16?=h5d89>6ce=l01v{t90i1<7=t=0c6>41c349;j7jm;<0eg?be3ty99>4?:4y>642==916>8m516f897712mk01??7:e;8977f2mi0q~5<5s48:?7;?;<022?70>2wx>=o50;1x977428=o70<68;f:?84?=3nh7p}=1683>7}::8819=5220:952053z?157<6?m16>495d`9>6=2=lh1v??6:18584693?;70<>a;342>;59j0om63=1d8g=>;5:90oo63=238gg>{t:921<7=t=332>41c3482;7j6;<0;0?b>3ty9=o4?:3y>646==916>i:05g?84>>3n270<73;f:?xu59o0;6?u221g915=::;:1=:84}r031?6=;r79

7e9>6<3=lh16>5<5d`9~w7462909w03483>7j6;|q160<72;q6>=m5519>670=9><0q~5<5s48>o7;?;<07e?70l2wx>9>50;0x973e2<:01?:6:05g?xu5=;0;69u224`952b<5;;=6i74=33;>ag<5;;j6il4}r00b?6=:r799l4:0:?10=<6?m1v?;>:180842i3;;59h0om6s|22g94?4|5;?268>4=364>41c3ty99=4?:3y>60?=9>n01??n:e;8yv44l3:1>v3=59864>;55<2s48>47?8d:?15f?4kb:p66e=838p1?;8:428972228=o7p}=4d83>1}::<=1=:j4=33f>ad<5;8;6io4=301>ag52z?113<28279894>7e9~w72c2908w0<:6;34`>;5:90o563=238g=>{t::k1<706<5;>86<9k;|q10f<72:q6>8;516f897442m301?<9:ec8yv4413:1>v3=55864>;5<;0:;i5rs36a>5<5s48>87?8d:?1632<:017e9>5d`=l016=o?5d`9>5g5=lk1v{t9lo1<7=t=0d4>41c34;i=7jm;<3a7?bf3ty:hl4?:3y>5c0==916=h:516f8yv7bl3:1>v3>f7823a=:9k91h45rs0f:>5<5s4;m97;?;<3f7?70l2wx=hm50;7x94`228=o70?m5;f:?87e?3nj70?m9;fa?87ej3ni7p}>d983>7}:9o>19=521d0952b54z?2b1<6?m16=o95dc9>5g?=lh16=ol5d`9~w4b02909w0?i3;73?87b93;34;in7j6;|q2`3<72;q6=k<5519>5`6=9>n0q~?j9;297~;6n;0:;i521ca9`<=:9kl1hl5rs0f6>5<5s4;m=7;?;<3gb?70l2wx=h650;0x94`628=o70?mf;f:?xu5:o0;6?u225c915=:::21=:j4}r01a?6=:r79844:0:?172<6?m1v?{t:;i1<706<5;9>6<9k;|q16g<72;q6>985519>662=9>n0q~<=a;296~;5<<0><63=32823a=z{;826=4={<070?373488>7?8d:p67>=838p1?:<:428975628=o7p}=2683>7}::=819=52222952b52z?2a2<2827:h>4>7e9~w4e?2909w0?j6;73?87c:3;68>4=0f2>41c3ty:o;4?:3y>5`2==916=i>516f8yv7d=3:1>v3>e2864>;6ko0:;i5rs0a7>5<5s4;n>7;?;<3`a?70l2wx=n=50;0x94c62<:01{t9m>1<7?t=0ff>41c3ty9i?4?:4y>5a5==916>hm516f894>e2m301?6::e;896ge2:=0q~?ia;296~;6l;0><63>8c8233=z{8li6=4={<3g5?3734;3o7?86:p5ce=838p1c28==7p}>fe83>7}:9jl19=5219g952052z?2g`<2827:4k4>779~w4`a2909w0?ld;73?87>83;<:6s|21294?4|58ih68>4=0;2>4113ty9<<4?:3y>5fd==916=4<51648yv47:3:1>v3>c`864>;61:0:;;5rs24b>5<3s48847;?;<147?70l27:594k9:?0eg<392wx>8j50;0x97502<:01<7;:055?xu5=l0;6?u2224915=:90?1=:84}r06b?6=:r79?84:0:?2=3<6??1v?8?:181844<3?;70?67;342>{t:?;1<706<58336<99;|q127<72;q6>><5519>5<0q~<93;296~;5;80><63>9`8233=z{;<70<70<70<70<70<70<70<70<70<70=nd;fa?841=3;<:63=9e8g=>{t:h=1<706<5;i86<99;|q1g`<72=q6>i6516f897cd2<:01?77:ea897e32m30q~0><63=c38233=z{;io6=4;{<0g3?70l279io4:0:?1==1}::m?1=:j4=3g:>06<5;3<6il4=3`6>a?52z?1`1<28279nk4>779~w7ef290?w0;5m10><63=978gg>;5j:0o56s|2`794?4|5;n=68>4=3a2>4113ty9on4?:5y>6a0=9>n01?kn:42897?02mi01?l8:e;8yv4f:3:1>v3=d2864>;5jl0:;;5rs3a:>5<3s48o?7?8d:?1a2<282795;4kb:?1f4l?50;0x97b52<:01?lk:055?xu5k10;69u22e0952b<5;o=68>4=3;6>ae<5;km6i74}r0:b?6=:r79h=4:0:?1fg<6??1v?m9:18784c83;;51=0on63=ac8g=>{t:0o1<706<5;hj6<99;|q1g0<72=q6>nh516f897c42<:01?7;:ec897g>2m30q~<63=bb8233=z{;i<6=4;{<0g5?70l279i84:0:?1=0=838p1?m<:5;897d?28==7p}=c583>7}::j91=?64=3a7>4113ty9n;4?:2y>6f4=<016>o65489>6g0=9><0q~5522c:95=5<5;h26<99;|q1f1<72:q6>n?5489>6g0=<016>o:51648yv4e?3:1?v3=c0826==::k<1=5=4=3`4>4113ty9n?4?:2y>6f6=<016>o:5489>6g4=9><0q~5522c695=5<5;h>6<99;|q1f5<72:q6>oh5489>6g4=<016>o>51648yv4e;3:1?v3=bg826==::k81=5=4=3`0>4113ty9mh4?:2y>6gc=<016>o>5489>6dc=9><0q~5522c295=5<5;h:6<99;|q1ef<72:q6>oj5489>6dc=<016>lm51648yv4fn3:1?v3=be826==::ho1=5=4=3ce>4113ty9ml4?:2y>6ge=<016>lm5489>6dg=9><0q~5522`a95=5<5;ko6<99;|q1e=<72:q6>ol5489>6dg=<016>l651648yv4fj3:1?v3=bc826==::hk1=5=4=3ca>4113ty9m44?:2y>6gg=9;201?o7:0:0?84f13;<:6s|2d394?3|5;oi6<9k;<3;g?b>34;3n7jn;<0;1?be349jn7=:;|q1a5<72ho516f894>c2m301<6l:ec897>32mi01>om:268yv4cn3:19v3=e8823a=:91o1h45219f9`d=::1>1ho523``976=z{;nn6=4:{<0f4kc:?0eg<4:2wx>ij50;7x97c028=o70?60;f:?87?n3nj70<73;fa?85fj39:7p}=db83>0}::l<1=:j4=0;2>a?<583;6io4=3:1>ae<5:ki6>>4}r0gf?6==r79i84>7e9>5<4=l016=4?5d`9>6=4=lk16?ll52g9~w7bf290>w0;61:0o563>938ge>;5080on63{t:m31<7:t=3g0>41c34;2?7jn;<0;5?bf349jn7;h5519>626==916>:<51648yv41n3:1>v3=6g823a=::>81h45rs34a>5<5s48=m7;?;<05g?70>2wx>;650;4x970f28=o70<9e;fa?841k3ni70<82;fa?841>3n270<95;fa?xu5>m0;6?u227;915=::?o1=:84}r053?6=>r79:44>7e9>63c=l016>;m5d`9>624=lh16>;85d`9>633=lj1v?66:18184?m3>270<7d;342>{t:091<74>4348247?86:p6l3nj7p}=8983>7}::1n1845229a95207>52z?14951648yv4??3:1>v3=8b87=>;50k0:;;5rs3;2>5<5s483o7?73:?1=3<6??1v?69:18184?j3>270<7a;342>{t:0:1<74>4348297?86:p6=`=838p1?6n:0:0?84><3;<:6s|26494?4|5;=i6974=35b>4113ty94=4?:3y>62d=91901?6::055?xu5100;6?u226`9520<5;3o6il4}r041?6=:r79;l4;9:?13<<6??1v?9i:181840i3;3?63=858233=z{;=?6=4={<04=?2>348<47?86:p62c=838p1?96:0:0?84?;3;<:6s|26194?4|5;=36974=354>4113ty9;i4?:3y>62>=91901?6=:055?xu5?j0;6?u226595=5<5;2:6<99;|q041<72;q6?=75489>75>=9><0q~=?e;296~;4800:4>52301952052z?04<<6??16?<75db9~w6642909w0=?8;6:?857?3;<:6s|31f94?4|5::36<6<;<126?70>2wx?=<50;0x96602=301>>9:055?xu48j0;6?u231595=5<5:;:6<99;|q044<72;q6?=85489>753=9><0q~=?b;296~;48?0:4>52302952052z?040<60:16?=h51648yv4a93:1>v3=f787=>;5n<0:;;5rs3da>5<5s48m:7?73:?045<6??1v>?;:18184a>3;<:63<188gf>{t:o:1<71?<5;l?6<99;|q1bd<72;q6>k;5191897`a28==7p}=eg83>7}::o>184522g1952052z?1b1<60:16>kk51648yv4bm3:1>v3=f287=>;5n;0:;;5rs3d;>5<5s48m?7?73:?1ba<6??1v?h8:18184a:3;3?63=fb8233=z{:=?6=4>ez?01g<3?278944;7:?01d<3?2789n4;7:?01a<3?2789h4;7:?01c<3?278:=4;7:?024<3?2788k4;7:?00`<3?2788n4;7:?00g<3?2788i4;7:?00d<3?278844;7:?002<3?278854;7:?036<3?278;?4;7:?034<3?278;=4;7:?02c<3?278:h4;7:?02a<3?278:n4;7:?02g<3?278=l4>779>7dd=;j201>om:bc8yv5383:18v3<5c864>;4<00:;i523029`f=:;;31h45rs271>5<4s49>n7?8d:?02a<28279ji4kc:p76c=83>p1>;6:428962028=o70=?f;f`?855=3n27p}<5183>6}:;<31=:j4=24a>06<5;lh6im4}r10b?6=771=l01v>;>:180852i3;;5nj0om6s|35394?2|5:?h68>4=26b>41c349:<7jn;<11f?b>3ty89>4?:2y>70e=9>n01>8j:42897`c2mk0q~=;2;290~;4=m0><63<4c823a=:;8;1hn5233f9`<=z{:??6=4<{<16`?70l278:k4:0:?1b`:l:05g?85693nj70==f;f:?xu4=<0;6>u234g952b<5:=;68>4=3df>ag54z?01c<282788i4>7e9>744=lj16?>?5d89~w6312908w0=:f;34`>;4?80><63=fg8gg>{t;=?1<7:t=243>06<5:>n6<9k;<126?bf3498?7j6;|q012<72:q6?;>516f896152<:01?hi:ec8yv53>3:18v3<60864>;45<4s49==7?8d:?036<28278<=4k9:p775=838p1>:i:428965d28==7p}<2383>7}:;=o19=5232`952052z?00f<28278?44>779~w67a2909w0=;b;73?85403;<:6s|33394?4|5:>o68>4=21b>4113ty8=h4?:3y>71g==916?>951648yv56l3:1>v3<48864>;4;?0:;;5rs23a>5<5s49?;7;?;<100?70>2wx?=::055?xu4;;0;6?u232a90<=:;:81=:84}r10`?6=:r78?n4>299>76b=9><0q~=<0;297~;4;k0?563<3387=>;4;90:;;5rs210>5<4s498n7?=8:?077<60:16?>=51648yv55m3:1?v3<3`87=>;4;90?563<2d8233=z{:9:6=4<{<10e?750278?=4>829>767=9><0q~==c;297~;4;00?563<2d87=>;4:j0:;;5rs20e>5<4s49857?=8:?06`<60:16??h51648yv55i3:1?v3<3987=>;4:j0?563<2`8233=z{:8o6=4<{<10n4>829>77b=9><0q~==8;297~;4;>0?563<2`87=>;4:10:;;5rs20a>5<4s498;7?=8:?06d<60:16??l51648yv55>3:1?v3<3787=>;4:10?563<278233=z{:826=4<{<102?750278>54>829>77?=9><0q~==4;297~;4;<0?563<2787=>;4:=0:;;5rs204>5<4s49897?=8:?063<60:16??951648yv55=3:1?v3<35826==:;;>1=5=4=206>4113ty8:44?:5y>724=9>n01<7::e;894?32mk01>om:2d8yv5103:18v3<70823a=:90<1h4521879`d=:;hh1?h5rs244>5<3s49<<7?8d:?2=2?3nj70=nb;1`?xu4><0;69u237g952b<58326i74=0;;>ag<5:ki6>l4}r150?6=7e9>57dd=;h1v>8<:187851k3;9c8g=>;61h0om63{t;?81<7=t=24a>41c34;2n7jn;<1bf?5?3ty8mh4?:01x96?72==01>6i:55896>b2==01>6k:55896>d2==01>6m:55896>f2==01>66:55896??2==01>78:55896?12==01>7::55896?32==01>7<:55896?52==01>7>:55896>?2==01>68:558970128==7p}7}:;0:19=523``9g6=z{:k;6=4={<1;b?37349jn77;;|q0=c<72;q6?5k5519>7dd=1;1v>7j:18185?l3?;70=nb;;2?xu41m0;6?u239a915=:;hh15=5rs2;`>5<5s493n7;?;<1bf?>a3ty85o4?:3y>7=g==916?ll58d9~w6?f2909w0=79;73?85fj33o7p}7}:;0219=523``9=f=z{:k26=4={<1:3?37349jn7m>;|q0e=<72;q6?485519>7dd=1k1v>o8:18185>=3?;70=nb;;b?xu4i?0;6?u2386915=:;hh1545rs2c6>5<5s492?7;?;<1bf???3ty8m94?:3y>7<4==916?ll5969~w6g42909w0=61;73?85fj33=7p}7}:;1219=523``9=0=z{:326=4={<1;3?37349jn76k;|q0ef<72;q6?lj5164896ge2j30q~?<7;296~;5::0om63=23826<=z{8?86=4={<3ag?bf34;in7?=9:p672=838p1?<9:e`8974528==7p}>be83>7}:9kl1ho521c`952018o<4$2a0>4163ty?n44?:3y]0g?<5=>18o74$2a0>4153ty?m>4?:3y]0d5<5=>18l=4$2a0>4143ty?>54?:3y]052<5=>18=:4$2a0>4503ty?>;4?:3y]055<5=>18==4$2a0>4253ty?>84?:3y]054<5=>18=<4$2a0>42e3ty?>94?:3y]057<5=>18=?4$2a0>42c3ty?>>4?:3y]056<5=>18=>4$2a0>42b3ty?>?4?:3y]7c`<5=>1?kh4$2a0>42a3ty?>=4?:3y]7cb<5=>1?kj4$2a0>4373ty?=k4?:3y]7ce<5=>1?km4$2a0>4363ty?=h4?:3y]7cd<5=>1?kl4$2a0>4353ty?=i4?:3y]7cg<5=>1?ko4$2a0>4333ty?=n4?:3y]7c?<5=>1?k74$2a0>4323ty?=o4?:3y]7c><5=>1?k64$2a0>4313ty?=l4?:3y]7c1<5=>1?k94$2a0>4303ty?=44?:3y]7c0<5=>1?k84$2a0>43?3ty?=54?:3y]7c3<5=>1?k;4$2a0>43>3ty?=:4?:3y]7c2<5=>1?k:4$2a0>43f3ty?=84?:3y]7c4<5=>1?k<4$2a0>43e3ty?=94?:3y]7c7<5=>1?k?4$2a0>43d3ty?=>4?:3y]7c6<5=>1?k>4$2a0>43c3ty?=?4?:3y]7``<5=>1?hh4$2a0>43b3ty?=<4?:3y]7`c<5=>1?hk4$2a0>43a3ty?==4?:3y]7`b<5=>1?hj4$2a0>4073ty?1?hm4$2a0>4063ty?1?hl4$2a0>4053ty?1?ho4$2a0>4043ty?1?h74$2a0>4033ty?>k4?:3y]05g<5=>18=o4$2a0>4023ty?>h4?:3y]05?<5=>18=74$2a0>4013ty?>i4?:3y]05><5=>18=64$2a0>4003ty?>n4?:3y]051<5=>18=94$2a0>40?3ty?>o4?:3y]050<5=>18=84$2a0>40>3ty?>l4?:3y]053<5=>18=;4$2a0>40f3ty?>44?:3y]7cc<5=>1?kk4$2a0>40e3ty?><4?:3y]7c5<5=>1?k=4$2a0>40d3ty?=;4?:3y]7`><5=>1?h64$2a0>40c3ty?1?h94$2a0>40b3ty?o94?:3y]0f2<5=>18n:4$2a0>40a3ty?n=4?:3y]0g6<5=>18o>4$2a0>4173ty?8o4?:3y]06?<5=>18>74$2a0>4513ty?844?:3y]06><5=>18>64$2a0>45?3ty?854?:3y]061<5=>18>94$2a0>45>3ty?8:4?:3y]060<5=>18>84$2a0>45f3ty?8;4?:3y]063<5=>18>;4$2a0>45e3ty?884?:3y]062<5=>18>:4$2a0>45d3ty?894?:3y]065<5=>18>=4$2a0>45c3ty?8>4?:3y]064<5=>18><4$2a0>45b3ty?994?:3y]017<5=>189?4$2a0>45a3ty?9>4?:3y]016<5=>189>4$2a0>4273ty?9?4?:3y]06`<5=>18>h4$2a0>4263ty?9<4?:3y]06c<5=>18>k4$2a0>4243ty?9=4?:3y]06b<5=>18>j4$2a0>4233ty?8k4?:3y]06e<5=>18>m4$2a0>4223ty?8h4?:3y]06d<5=>18>l4$2a0>4213ty?8i4?:3y]06g<5=>18>o4$2a0>4203ty?8n4?:3y]067<5=>18>?4$2a0>42?3ty?8?4?:3y]066<5=>18>>4$2a0>42>3ty?9n4?:3y]00e<5=>188m4$2a0>42f3ty?9;4?:3y]000<5=>18884$2a0>42d3twe4oh50;0xL6e33td3o=4?:3yK7f252zJ0g1=zf1i96=4={I1`0>{i0j91<7d=3:1>vFm;;|l;g=<72;qC?n:4}o:`=?6=:rB8o95rn9ab>5<5sA9h86sa8b`94?4|@:i?7p`7cb83>7}O;j>0qc6ld;296~N4k=1vb5mj:181M5d<2we4nh50;0xL6e33td3h=4?:3yK7f252zJ0g1=zf1n96=4={I1`0>{i0m91<7c=3:1>vFm;;|l;`=<72;qC?n:4}o:g=?6=:rB8o95rn9fb>5<5sA9h86sa8e`94?4|@:i?7p`7db83>7}O;j>0qc6kd;296~N4k=1vb5jj:181M5d<2we4ih50;0xL6e33td3i=4?:3yK7f252zJ0g1=zf1o96=4={I1`0>{i0l91<7b=3:1>vFm;;|l;a=<72;qC?n:4}o:f=?6=:rB8o95rn9gb>5<5sA9h86sa8d`94?4|@:i?7p`7eb83>7}O;j>0qc6jd;296~N4k=1vb5kj:181M5d<2we4hh50;0xL6e33td3j=4?:3yK7f252zJ0g1=zf1l96=4={I1`0>{i0o91<7a=3:1>vFm;;|l;b=<72;qC?n:4}o:e=?6=:rB8o95rn9db>5<5sA9h86sa8g`94?4|@:i?7p`85683>4}O;j>0qc964;295~N4k=1vb:7::182M5d<2we;4850;3xL6e33td<5:4?:0yK7f251zJ0g1=zf>326=4>{I1`0>{i?0k1<7?tH2a7?xh01k0;6k3:1=vFm;;|l4=c<728qC?n:4}o5b4?6=9rB8o95rn6c2>5<6sA9h86sa7`094?7|@:i?7p`8a283>4}O;j>0qc9n4;295~N4k=1vb:o::182M5d<2we;l850;3xL6e33td51zJ0g1=zf>k26=4>{I1`0>{i?hk1<7?tH2a7?xh0ik0;6m;;|l4ec<728qC?n:4}o5a4?6=9rB8o95rn6`2>5<6sA9h86sa7c094?7|@:i?7p`8b283>4}O;j>0qc9m4;295~N4k=1vb:l::182M5d<2we;o850;3xL6e33td51zJ0g1=zf>h26=4>{I1`0>{i?kk1<7?tH2a7?xh0jk0;6m;;|l4fc<728qC?n:4}o5`4?6=9rB8o95rn6a2>5<6sA9h86sa7b094?7|@:i?7p`8c283>4}O;j>0qc9l4;295~N4k=1vb:m::182M5d<2we;n850;3xL6e33td51zJ0g1=zf>i26=4>{I1`0>{i?jk1<7?tH2a7?xh0kk0;6m;;|l4gc<728qC?n:4}o5g4?6=9rB8o95rn6f2>5<6sA9h86sa7e094?7|@:i?7p`8d283>4}O;j>0qc9k4;295~N4k=1vb:j::182M5d<2we;i850;3xL6e33td51zJ0g1=zf>n26=4>{I1`0>{i?mk1<7?tH2a7?xh0lk0;6m;;|l4`c<728qC?n:4}o5f4?6=9rB8o95rn6g2>5<6sA9h86sa7d094?7|@:i?7p`8e283>4}O;j>0qc9j4;295~N4k=1vb:k::182M5d<2we;h850;3xL6e33td51zJ0g1=zf>o26=4>{I1`0>{i?lk1<7?tH2a7?xh0mk0;6m;;|l4ac<728qC?n:4}o5e4?6=9rB8o95rn6d2>5<6sA9h86sa7g094?7|@:i?7p`8f283>4}O;j>0qc9i4;295~N4k=1vb:h::182M5d<2we;k850;3xL6e33td51zJ0g1=zf>l26=4>{I1`0>{i?ok1<7?tH2a7?xh0nk0;6m;;|l4bc<728qC?n:4}o:34?6=9rB8o95rn922>5<6sA9h86sa81094?7|@:i?7p`70283>4}O;j>0qc6?4;295~N4k=1vb5>::182M5d<2we4=850;3xL6e33td3<:4?:0yK7f251zJ0g1=zf1:26=4>{I1`0>{i09k1<7?tH2a7?xh?8k0;67k3:1=vFm;;|l;4c<728qC?n:4}o:24?6=9rB8o95rn932>5<6sA9h86sa80094?7|@:i?7p`71283>4}O;j>0qc6>4;295~N4k=1vb5?::182M5d<2we4<850;3xL6e33td3=:4?:0yK7f251zJ0g1=zf1;26=4>{I1`0>{i08k1<7?tH2a7?xh?9k0;66k3:1=vFm;;|l;5c<728qC?n:4}o:14?6=9rB8o95rn902>5<6sA9h86sa83094?7|@:i?7p`72283>4}O;j>0qc6=4;295~N4k=1vb5<::182M5d<2we4?850;3xL6e33td3>:4?:0yK7f251zJ0g1=zf1826=4>{I1`0>{i0;k1<7?tH2a7?xh?:k0;65k3:1=vFm;;|l;6c<728qC?n:4}o:04?6=9rB8o95rn912>5<6sA9h86sa82094?7|@:i?7p`73283>4}O;j>0qc6<4;295~N4k=1vb5=::182M5d<2we4>850;3xL6e33td3?:4?:0yK7f251zJ0g1=zf1926=4>{I1`0>{i0:k1<7?tH2a7?xh?;k0;64k3:1=vFm;;|l;7c<728qC?n:4}o:74?6=9rB8o95rn962>5<6sA9h86sa85094?7|@:i?7p`74283>4}O;j>0qc6;4;295~N4k=1vb5:::182M5d<2we49850;3xL6e33td38:4?:0yK7f251zJ0g1=zf1>26=4>{I1`0>{i0=k1<7?tH2a7?xh?3k3:1=vFm;;|l;0c<728qC?n:4}o:64?6=9rB8o95rn972>5<6sA9h86sa84094?7|@:i?7p`75283>4}O;j>0qc6:4;295~N4k=1vb5;::182M5d<2we48850;3xL6e33td39:4?:0yK7f247>51zJ0g1=zf1?26=4>{I1`0>{i02k3:1=vFm;;|l;1c<728qC?n:4}o:54?6=9rB8o95rn942>5<6sA9h86sa87094?7|@:i?7p`76283>4}O;j>0qc694;295~N4k=1vb58::182M5d<2we4;850;3xL6e33td3::4?:0yK7f251zJ0g1=zf1<26=4>{I1`0>{i0?k1<7?tH2a7?xh?>k0;61k3:1=vFm;;|l;2c<728qC?n:4}o:44?6=9rB8o95rn952>5<6sA9h86sa86094?7|@:i?7p`77283>4}O;j>0qc684;295~N4k=1vb59::182M5d<2we4:850;3xL6e33td3;:4?:0yK7f251zJ0g1=zf1=26=4>{I1`0>{i0>k1<7?tH2a7?xh??k0;60k3:1=vFm;;|l;3c<728qC?n:4}o:;4?6=9rB8o95rn9:2>5<6sA9h86sa89094?7|@:i?7p`78283>4}O;j>0qc674;295~N4k=1vb56::182M5d<2we45850;3xL6e33td34:4?:0yK7f251zJ0g1=zf1226=4>{I1`0>{i01k1<7?tH2a7?xh?0k0;6?k3:1=vFc290:wE=l4:m<=c=83;pD>m;;|l;5<6sA9h86sa88094?7|@:i?7p`79283>4}O;j>0qc664;295~N4k=1vb57::182M5d<2we44850;3xL6e33td35:4?:0yK7f251zJ0g1=zf1326=4>{I1`0>{i00k1<7?tH2a7?xh?1k0;6>k3:1=vFm;;|l;=c<728qC?n:4}o:b4?6=9rB8o95rn9c2>5<6sA9h86sa8`094?7|@:i?7p`7a283>4}O;j>0qc6n4;295~N4k=1vb5o::182M5d<2we4l850;3xL6e33td3m:4?:0yK7f251zJ0g1=zf1k26=4>{I1`0>{i0hk1<7?tH2a7?xh?ik0;6fk3:1=vFm;;|l;ec<728qC?n:4}o:a4?6=9rB8o95rn9`2>5<6sA9h86sa8c094?7|@:i?7p`7b283>4}O;j>0qc6m4;295~N4k=1vb5l::182M5d<2we4o850;3xL6e33td3n:4?:0yK7f251zJ0g1=zf1h26=4>{I1`0>{i0kk1<7?tH2a7?xh?jk0;6ek3:1=vFm;;|~yEFDsh<>69>i25f;exFGJr:vLM^t}ABuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.v000066400000000000000000000122761224274632000230020ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_512x36_2clk_36to18.v when simulating // the core, fifo_xlnx_512x36_2clk_36to18. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_512x36_2clk_36to18( rst, wr_clk, rd_clk, din, wr_en, rd_en, dout, full, empty); input rst; input wr_clk; input rd_clk; input [35 : 0] din; input wr_en; input rd_en; output [17 : 0] dout; output full; output empty; // synthesis translate_off FIFO_GENERATOR_V6_1 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(9), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(36), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(18), .C_ENABLE_RLOCS(0), .C_ENABLE_RST_SYNC(1), .C_ERROR_INJECTION_TYPE(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(0), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(0), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(0), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(0), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(1), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("512x36"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(509), .C_PROG_FULL_THRESH_NEGATE_VAL(508), .C_PROG_FULL_TYPE(0), .C_RD_DATA_COUNT_WIDTH(10), .C_RD_DEPTH(1024), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(10), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(0), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(9), .C_WR_DEPTH(512), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(9), .C_WR_RESPONSE_LATENCY(1)) inst ( .RST(rst), .WR_CLK(wr_clk), .RD_CLK(rd_clk), .DIN(din), .WR_EN(wr_en), .RD_EN(rd_en), .DOUT(dout), .FULL(full), .EMPTY(empty), .BACKUP(), .BACKUP_MARKER(), .CLK(), .SRST(), .WR_RST(), .RD_RST(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .INT_CLK(), .INJECTDBITERR(), .INJECTSBITERR(), .ALMOST_FULL(), .WR_ACK(), .OVERFLOW(), .ALMOST_EMPTY(), .VALID(), .UNDERFLOW(), .DATA_COUNT(), .RD_DATA_COUNT(), .WR_DATA_COUNT(), .PROG_FULL(), .PROG_EMPTY(), .SBITERR(), .DBITERR()); // synthesis translate_on endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.veo000066400000000000000000000060471224274632000233250ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_512x36_2clk_36to18 YourInstanceName ( .rst(rst), .wr_clk(wr_clk), .rd_clk(rd_clk), .din(din), // Bus [35 : 0] .wr_en(wr_en), .rd_en(rd_en), .dout(dout), // Bus [17 : 0] .full(full), .empty(empty)); // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_512x36_2clk_36to18.v when simulating // the core, fifo_xlnx_512x36_2clk_36to18. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xco000066400000000000000000000047201224274632000233210ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version 12.1 # Date: Thu Aug 12 21:06:13 2010 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = false SET asysymbol = false SET busformat = BusFormatAngleBracketNotRipped SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 6.1 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=false CSET component_name=fifo_xlnx_512x36_2clk_36to18 CSET data_count=false CSET data_count_width=9 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET enable_reset_synchronization=true CSET fifo_implementation=Independent_Clocks_Block_RAM CSET full_flags_reset_value=0 CSET full_threshold_assert_value=509 CSET full_threshold_negate_value=508 CSET inject_dbit_error=false CSET inject_sbit_error=false CSET input_data_width=36 CSET input_depth=512 CSET output_data_width=18 CSET output_depth=1024 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=No_Programmable_Full_Threshold CSET read_clock_frequency=1 CSET read_data_count=false CSET read_data_count_width=10 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=false CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=false CSET write_data_count_width=9 # END Parameters GENERATE # CRC: a4e70980 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18.xise000066400000000000000000000112631224274632000235000ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_flist.txt000066400000000000000000000006451224274632000245520ustar00rootroot00000000000000# Output products list for _xmsgs/pn_parser.xmsgs fifo_generator_ug175.pdf fifo_xlnx_512x36_2clk_36to18.gise fifo_xlnx_512x36_2clk_36to18.ngc fifo_xlnx_512x36_2clk_36to18.v fifo_xlnx_512x36_2clk_36to18.veo fifo_xlnx_512x36_2clk_36to18.xco fifo_xlnx_512x36_2clk_36to18.xise fifo_xlnx_512x36_2clk_36to18_flist.txt fifo_xlnx_512x36_2clk_36to18_readme.txt fifo_xlnx_512x36_2clk_36to18_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_readme.txt000066400000000000000000000033151224274632000246630ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_512x36_2clk_36to18' in directory /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ fifo_generator_ug175.pdf: Please see the core data sheet. fifo_xlnx_512x36_2clk_36to18.gise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_512x36_2clk_36to18.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_512x36_2clk_36to18.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_512x36_2clk_36to18.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_512x36_2clk_36to18.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_512x36_2clk_36to18.xise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_512x36_2clk_36to18_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_512x36_2clk_36to18_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. fifo_xlnx_512x36_2clk_36to18_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_36to18_xmdf.tcl000066400000000000000000000052231224274632000243270ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_512x36_2clk_36to18_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_512x36_2clk_36to18_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_512x36_2clk_36to18_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_36to18 } # ::fifo_xlnx_512x36_2clk_36to18_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_512x36_2clk_36to18_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_36to18_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_36to18 incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_fifo_generator_v4_3_xst_1.lso000066400000000000000000000000631224274632000273170ustar00rootroot00000000000000blkmemdp_v6_2 blk_mem_gen_v2_6 fifo_generator_v4_3 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt000066400000000000000000000132211224274632000311630ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_flist.txt000066400000000000000000000004251224274632000235220ustar00rootroot00000000000000# Output products list for fifo_xlnx_512x36_2clk.ngc fifo_xlnx_512x36_2clk.v fifo_xlnx_512x36_2clk.veo fifo_xlnx_512x36_2clk.xco fifo_xlnx_512x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt fifo_xlnx_512x36_2clk_flist.txt fifo_xlnx_512x36_2clk_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.gise000066400000000000000000000020721224274632000245020ustar00rootroot00000000000000 11.1 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.ngc000066400000000000000000003074261224274632000243350ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.6e $4cb40<,[o}e~g`n;"2*726&;$9,)?40893456789:;8=5?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>?0123456789:;<=>;;1A3<4=6;2;%<<5=4:0076753:81EC^ZT;FJE956294:>6==:HLSQQ112906?IR\Y__6IAN<2394;743:81CXZ_UU8GKG:493:5=?5<6;KMTPR=l`d7?84?>0687301?69l29x>=>?ff662(363=>08=HI1097>LHW]]0OE]O33;2=54=32@D[YY4KIQ@?7?699;1?6B[[PTV9@JVF4:0;2<<44;MVPUSS2ME[N1=50?68102792<97;7;;7;:24=?<22;<=:48D:B5>?330:;5?56659:23?6:231EC^ZT;CG@WG;03:5=?56:HLSQQ0g8=?OIX\^1|ah_dosp|Ys`{oxd1650?06?<=878>744FNQWW>uthoVof|ywPtipfwmYimnki1650?3g?<057GAPTV9twi`Wog`Rzgrdqk[kc`i}o747>1199:>JSSX\^1hlzn_bmvjq:?294:n675OTVSQQrtXlh~jSnaznu>;>5853H837LJKR@>3:==FLMXJ0<07;@FGVD:5611JHI\N<2<;?DBCZH6?255NDEPB808?3HNO^L29>99B@ATF4>4j7LJKR@>;>58?3HNO^L27>99B@ATE49437LJKRC>2:==FLMXI0?07;@FGVG:4611JHI\M<5<;?DBCZK6>255NDEPA838?3HNO^O28>`9B@ATE410;255NDEPA8=843HFG56O\YOA\V@A63K90NX<7;CWP[LHAG81H>6MJ139@L@ELWECHIC]J_U[SA7=DA=1H@FO;;BNHF6=DD[30OBCBIUVF@426JF6:FJE969?2NBM1??>69GMD:697=0HDO313<4?AOF4895;6JFA=37:2=CAH6:9394DHC?53803MCJ0<917:FJE97?6>1OEL2>9?48@LG;97=0HDO321<4?AOF4;;5;6JFA=01:2=CAH69?394DHC?61803MCJ0?;17:FJE9416>1OEL2=7?58@LG;:14<7IGN<3;=2>BNI585;6JFA=13:<=CAH68=7>17:FJE9566?1OEL2<>79GMD:36?1OEL2:>79GMD:16?1OEL28>79GMD:?6?1OEL26>79GMG:76>1OEO2>0?58@LD;984<7IGM<00=3>BNJ5;82:5KIC>20;169GMG:607=0HDL318<5?AOE484<7IGM<32=3>BNJ58:2:5KIC>16;1>08;EKA8729?2NBN1<:>69GMG:5>7=0HDL326<4?AOE4;25;6JFB=0::3=CAK692:5KIC>04;?69GMG:497<0HDL33?48@LD;<7<0HDL35?48@LD;>7<0HDL37?48@LD;07<0HDL39?58@LVF494<7IG_A=3=3>BNXH69245KIQC?7?69?2NB\L2<>69GMUD;87=0HD^M<0<4?AOWJ58556JFPC>0>5803MC[N1=16:FLE969?2NDM1??>69GKD:697=0HBO313<4?AIF4895;6J@A=37:2=CGH6:9394DNC?53803MEJ0<917:FLE97?6>1OCL2>9?48@JG;97=0HBO321<4?AIF4;;5;6J@A=01:2=CGH69?394DNC?61803MEJ0?;17:FLE9416>1OCL2=7?58@JG;:14<7IAN<3;=2>BHI585;6J@A=13:<=CGH68=7>17:FLE9566?1OCL2<>79GKD:36?1OCL2:>79GKD:16?1OCL28>79GKD:?6?1OCL26>69GKDYUMN<0HBL30?58@JD;994<7IAM<03=3>BHJ5;92:5KOC>27;169GKG:6?7=0HBL319<4?AIE4835:6J@B=3=3>BHJ58;2:5KOC>15;1?08;EMA8759?2NDN1<;>69GKG:5=7=0HBL327<4?AIE4;=5;6J@B=0;:2=CGK695384DN@?6;14=7IAM<9<5?AIE404<7IAM_SGD3>BHXH6;2:5KOQC?5;12:2=CGYH7>374DNRA86<76>1OC]L33?18AKG43LDIn6KA_DA@[WCFLj1NBRKLC^UQMQC53O897K6:;GCOW@40JI^J4:DGV@764IOKWTZ6702CEEY^P00:8MKOSXV:946GAIUR\46>;8:KMMQVX8<20ECG[P^25<>OIA]ZT<:74IOKWWQGSM>1BBDZP0158MKOSW9;<7D@FT^213>OIA]U;?:5FNHV\411J7:KMMQY7N>1BBDZP1158MKOSW8;<7D@FT^313>OIA]U:?:5FNHV\511769JJLRX91=0ECG[_0;4?LHN\V;J;6GAIU]2F2=NF@^T=N94IOKW[4B03@DBXR?J7:KMMQY6N>1BBDZP2158MKOSW;;<7D@FT^013>OIA]U9?:5FNHV\611N94IOKW[7B03@DBXR1BBDZP3158MKOSW:;<7D@FT^113>OIA]U8?:5FNHV\711;8;HLJPZ51?2CEEYQ<769JJLRX;1=0ECG[_2;4?LHN\V9J;6GAIU]0F2=NF@^T?N94IOKW[6B03@DBXR=J7:KMMQY4N?1BBDZPA79JJLRXJ;1GE?5CO79OKDBBL>1GCJGLAM68HPR6<2F^X?:4LTV00>JR\=<0@XZ;_E48HPR3WE?0A^I@N49NQ]E^k2Gjfb|YesqjkkeH7:2D:86@>0768J460<2D:<5:4N02:7>H69=1E=<>;;O3251=I988?7C?>359M54233G;:995A1047?K76?=1E=<6;;O32=6=I9;>0B<2268J443<2D:>8:4N0050>H6:>>0B<<74:L26<595A1217?K74<=1E=>;;;O3021=I9:=?7C?<859M56?43G;?86@>4168J426<2D:8?:4N0600>H6H6?=1E=:9<;O3;7>H61:1E>==4N330?K45;2D9?>5A2518J7343G8=?6@=729M6=5=<;O177>H4=:1E?;=4N250?K5?;2D85>5A4118J1743G>9?6@;329M0150\L\[a:RJJZDR[@NSn6^FN^@VWKGJM:1[^H?4Q09Qa>TFEK;=S^=9_R15e>TBIMUME_][c:PFEAYPAM^CSLm4RDCG[ROC\AUI=6]>3:QJIZEHDECXEB@PCIG@O3=TG\XHI:5\RWCO[D1<[[\J@RL;;RQQE1=T[[H?7YW_E208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<=Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?013\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZtcWyd~Ril_ymq4565W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{UyhR~ats]dgZ~hz9:;?R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pre]sjqtXojUsc>?05]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[wbXxg~ySjmPxnp3453XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzVxoS}`{r^e`[}iu89:=S_k|umv277=R8&myj#|i/fa{*fjlp&GscQ}d^rmpwY`kVrd~=>?7^Pfwpjs9:80Y=!hrg,qb*adp'iggu!Bxnp\swYwf}xTknQwos2345YUmzgx<==;T2,cw`)zo%lou lljz,I}iuW~xT|cz}_fa\|jt789;T^h}zlu306>S7'nxm"h gbz-gim'Drd~Ry}_qlwvZadWqey<=>=_Sgpqir6;;1^<"i}f/pe+be&jf`t"Cwos]tvZvi|{UloRv`r1237ZTb{|f=><4U1-dvc(un&mht#mcky-N|jtX{U{by|Pgb]{kw678=UYi~{ct011?P6(o{l%~k!hcy,`hn~(EqeySz|Ppovq[beXpfx;<=;PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^uq[uhszVmhSua}0125[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYpzVzexQhc^zlv567?VXnxb{1338Q5)`zo$yj"ilx/aoo})ulVzexQmio>3:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:66;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag692??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec2<>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>7:77<]9%l~k }f.e`|+ekcq%yhR~ats]amk:26;;0Y=!hrg,qb*adp'iggu!}d^rmpwYeag6=2??4U1-dvc(un&mht#mcky-q`Zvi|{Uiec28>338Q5)`zo$yj"ilx/aoo})ulVzexQmio>;:76<]9%l~k }f.e`|+ekcq%yhR~ats]amkY7:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV;9<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS? gsd-vc)`kq$h`fv re]sjqtXj`dT;?>4U1-dvc(un&mht#mcky-q`Zvi|{UiecQ7279V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv5678;=0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?01312>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89::>:5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r12354413\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=<=7:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq45659;<0Y=!hrg,qb*adp'iggu!}d^rmpwYeagUsc>?0204?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt78999>;5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbRv`r123071<]9%l~k }f.e`|+ekcq%yhR~ats]amkYg{:;<9?=6:W3+bta&{l$knv!cmi{+wbXxg~ySoga_ymq4562:>1^<"i}f/pe+be&jf`t"|k_qlwvZdnfVrd~=>?5005?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\|jt789<946[?/fpe*w`(ojr%oaew/sf\tkruWkceSua}012554403\:$kh!rg-dg}(ddbr$~iQnup\flhXpfx;<=8=2c9V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567>Vhoh=<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34515?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>81328Q5)`zo$yj"ilx/aoo})ulVzexQhc=2=65=R8&myj#|i/fa{*fjlp&xoS}`{r^e`848582_;#j|i.sd,cf~)keas#jPpovq[be;:78;7X> gsd-vc)`kq$h`fv re]sjqtXoj682?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1:1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<4<14>S7'nxm"h gbz-gim'{nT|cz}_fa?2;473\:$kh!rg-dg}(ddbr$~iQnup\cf:06;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k525=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS=?i;T2,cw`)zo%lou lljz,vaYwf}xTknQ>1g9V4*aun'xm#jmw.bnh|*tcWyd~Ril_33e?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]05c=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[17a3\:$kh!rg-dg}(ddbr$~iQnup\cfY29o1^<"i}f/pe+be&jf`t"|k_qlwvZadW?;m7X> gsd-vc)`kq$h`fv re]sjqtXojU<=k5Z0.eqb+ta'nis"nbdx.pg[uhszVmhS5<9;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd8585>2_;#j|i.sd,cf~)keas#jPpovq[beXizxnk1?1279V4*aun'xm#jmw.bnh|*tcWyd~Ril_`qqab:56;<0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hi33?05?P6(o{l%~k!hcy,`hn~(zmU{by|Pgb]bwwc`4=49:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=7=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6=2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?3;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol050=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ65=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR?=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ45=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR==5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ25=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR;=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ05=2_;#j|i.sd,cf~)keas#jPpovq[beXizxnkR9=5:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZ>512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><1<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:0<0=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64;4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2868512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><5<1=>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:080=9:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb64?4956[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg^f2828512_;#j|i.sd,cf~)keas#jPpovq[beXizxnkRj><9<1<>S7'nxm"h gbz-gim'{nT|cz}_fa\evtboVn:S=<7;T2,cw`)zo%lou lljz,vaYwf}xTknQnssgd[a7X9;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]16==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R==8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W=837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\17><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh gsd-vc)`kq$h`fv ws]sjqtXj`d7=3<>;T2,cw`)zo%lou lljz,swYwf}xTnd`32?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?7;463\:$kh!rg-dg}(ddbr${Qnup\flh;<78:7X> gsd-vc)`kq$h`fv ws]sjqtXj`d793<>;T2,cw`)zo%lou lljz,swYwf}xTnd`36?02?P6(o{l%~k!hcy,`hn~({U{by|Pbhl?3;463\:$kh!rg-dg}(ddbr${Qnup\flh;078;7X> gsd-vc)`kq$h`fv ws]sjqtXj`dT4U1-dvc(un&mht#mcky-tvZvi|{UiecQ>219V4*aun'xm#jmw.bnh|*quWyd~Rlfn^014>S7'nxm"h gbz-gim'~xT|cz}_ckm[6473\:$kh!rg-dg}(ddbr${Qnup\flhX<;:0Y=!hrg,qb*adp'iggu!xr^rmpwYeagU>>=5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbR8=0:W3+bta&{l$knv!cmi{+rtXxg~ySoga_603?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\<70<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<=<8;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34566:?1^<"i}f/pe+be&jf`t"y}_qlwvZdnfVrd~=>?1358Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw6788;9:6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012162=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;><<9;T2,cw`)zo%lou lljz,swYwf}xTnd`Pxnp34555?2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=><2348Q5)`zo$yj"ilx/aoo})pzVzexQmio]{kw678=8<7X> gsd-vc)`kq$h`fv ws]sjqtXj`dTtb|?016263=R8&myj#|i/fa{*fjlp&}yS}`{r^`jjZ~hz9:;9?94U1-dvc(un&mht#mcky-tvZvi|{UiecQwos234075>2_;#j|i.sd,cf~)keas#z|Ppovq[goiWqey<=>9299V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv567>8;9;6[?/fpe*w`(ojr%oaew/vp\tkruWkceSua}012567d<]9%l~k }f.e`|+ekcq%|~R~ats]amkYg{:;<;Qmde212>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:<>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12334473\:$kh!rg-dg}(ddbr${Qnup\cf:76;:0Y=!hrg,qb*adp'iggu!xr^rmpwY`k5;5>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0?0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm33?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>7:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg939:91^<"i}f/pe+be&jf`t"y}_qlwvZad4?49<6[?/fpe*w`(ojr%oaew/vp\tkruWni7;30d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^22b>S7'nxm"h gbz-gim'~xT|cz}_fa\54`<]9%l~k }f.e`|+ekcq%|~R~ats]dgZ46n2_;#j|i.sd,cf~)keas#z|Ppovq[beX;8l0Y=!hrg,qb*adp'iggu!xr^rmpwY`kV>:j6[?/fpe*w`(ojr%oaew/vp\tkruWniT9f:W3+bta&{l$knv!cmi{+rtXxg~ySjmP70d8Q5)`zo$yj"ilx/aoo})pzVzexQhc^:12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5:5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>2:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7>3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8685>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1:1279V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqab:26;<0Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hi36?05?P6(o{l%~k!hcy,`hn~({U{by|Pgb]bwwc`4>49:6[?/fpe*w`(ojr%oaew/vp\tkruWniTm~|jg=:=60=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU;>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]260=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU9>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]060=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU?>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]660=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU=>85Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]460=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnU3>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5969:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=3=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1<1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc9595>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5929:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=7=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=181289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95=5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g59>9:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^21<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S<<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X:;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]06==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R:=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W<837X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh_e3\27><]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlmThS7'nxm"h gbz-gim'~xT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01011>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01611>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789?996[?/fpe*w`(ojr%oaew/vp\tkruWniTtb|?01411>S7'nxm"h gbz-gim'~xT|cz}_fa\|jt789=8<6[?/fpe*w`(oe:%~i!hr0,qbr`s'Dg~tR\NM^PG[@HXN^L_><2e9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}ki1>12e9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}ki1?12b9V4*aun'xm#jb?.sf,cw7)zo}mx"mzrs]escrX{}kiR>=c:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS<=:;T2,cw`)zo%l`= }d.eq5+tao~$ox|}_guepZusi}oTaxv?013?4;513\:$kh!rg-dh5(ul&my=#|iwgv,gptuWo}mxR}{aug\ip~789;7<3?<5:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nS`{w01228484>2_;#j|i.sd,ci6)zm%l~< }fvdw+fsuzVl|jyQ|t`vf[hs89::0<0>299V4*aun'xm#jb?.sf,cw7)zo}mx"kbpu{\br`sWoh9;6[?/fpe*w`(oe:%~i!hr0,qbr`s'lg{xtQiwgv\m7`<]9%l~k }f.eo4+tc'nx:"hxfu-fiur~Wo}mxRgPmtz3456482_;#j|i.sd,ci6)zm%l~< }fvdw+`kw|pUm{kzPi^ov|56788827X> gsd-vc)`d9$yh"i}ar,qwqu(k9%hm|vndv?4;4>3\:$kh!rg-dh5(ul&mym~ }suq,g5)di{xrbhz31?0:?P6(o{l%~k!hl1,q`*auiz$yy} c1-`ewt~fl~7>3<6;T2,cw`)zo%l`= }d.eqev(u{}y$o=!laspzj`r;;78m7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%laxv!glY3Y+aj9'g:>k5Z0.eqb+ta'nf;"j gscp*wus{&i;#jczx/en_4[)ody%a~ gsd-vc)`d9$yh"i}ar,qwqu(k9%}=1?1229V4*aun'xm#jb?.sf,cwgt&{y"m?/w3?6;443\:$kh!rg-dh5(ul&mym~ }suq,g5)q9595>>5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?34?0a?P6(o{l%~k!hl1,q`*auiz$yy} c1-u5Z6Xign;<=>>2c9V4*aun'xm#jb?.sf,cwgt&{y"m?/w3\5Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i;#{?P3^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k9%}=R:Pnnv34566:01^<"i}f/pe+bj7&{n$ko|.sqww*e6'jky~t`jt=2=6<=R8&myj#|i/fn3*wb(o{kx"}{s.a2+fguzpdnx1?1289V4*aun'xm#jb?.sf,cwgt&{y"m>/bcqv|hb|585>45Z0.eqb+ta'nf;"j gscp*wus{&i:#no}rxlfp959:o1^<"i}f/pe+bj7&{n$ko|.sqww*e6'ng~t#ib[1_-ch7)e88m7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%laxv!glY2Y+aj{'gx>k5Z0.eqb+ta'nf;"j gscp*wus{&i:#jczx/en_7[)ody%a~/fov|+ajS=W%k`}!mr00?P6(o{l%~k!hl1,q`*auiz$yy} c0-u5969::1^<"i}f/pe+bj7&{n$ko|.sqww*e6';7=3<<;T2,cw`)zo%l`= }d.eqev(u{}y$o gsd-vc)`d9$yh"i}ar,qwqu(k8%}=1:12c9V4*aun'xm#jb?.sf,cwgt&{y"m>/w3\4Zgil9:;<<o5Z0.eqb+ta'nf;"j gscp*wus{&i:#{?P2^cm`567888i7X> gsd-vc)`d9$yh"i}ar,qwqu(k8%}=R=Paof34566:k1^<"i}f/pe+bj7&{n$ko|.sqww*e6';T8R``t12344473\:$kh!rg-dh5(ul&mym~ }suq,gjkw8;:0Y=!hrg,qb*ak8'xo#j|ns/pppv)dgdz:>45Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYn;91^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789:8=6[?/fpe*w`(oe:%~i!hr`q-vvrt'{kfShctx]efZoXg{:;<=?=3:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp72<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~:>95Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu010>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|:8?7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{4368Q5)`zo$yj"ic0/pg+wvi|{%Fob{at^alqkr2:=1^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~by8=4:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmp2433\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d4?74U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\g|:76;i0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>3:Zts:01^<"i}f/pe+bj7&{n$~}`{r.O`kphsWje~byQly=3=6f=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1?1_sv1=>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vir0?0=c:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4;4T~y<6;T2,cw`)zo%l`= }d.psjqt(Eje~byQlotlw[f;;78h7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?7;Yu|;30Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPcx>7:7e<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Tot2;>^pw6<=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}Uhu1;12b9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYdq5?5Sz=9:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZe~4?49o6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at^az838Xz}827X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_b{?3;4d3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSnw37?]qp7g<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~Ttb|30?0b?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphsWqey0<0=a:W3+bta&{l$ka>!re-qtkru'DidyczPcnwmpZ~hz585>l5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:46;k0Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?0;4f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|dSua}<4<1e>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|Vrd~1812`9V4*aun'xm#jb?.sf,vuhsz&Ghcx`{_bmvjqYg{6<2?o4U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov\|jt;078o7X> gsd-vc)`d9$yh"|nup,Ifirf}Uhcx`{_ymq8=8Xz};m7X> gsd-vc)`d9$yh"|nup,gjsi|5:5=k5Z0.eqb+ta'nf;"j rqlwv*eh}g~7=3?i;T2,cw`)zo%l`= }d.psjqt(kfex1<11g9V4*aun'xm#jb?.sf,vuhsz&idycz33?3e?P6(o{l%~k!hl1,q`*twf}x$ob{at=6=5c=R8&myj#|i/fn3*wb(zyd~"m`uov?1;7a3\:$kh!rg-dh5(ul&x{by| cnwmp9099o1^<"i}f/pe+bj7&{n$~}`{r.alqkr;?7;m7X> gsd-vc)`d9$yh"|nup,gjsi|525=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T<e:W3+bta&{l$ka>!re-qtkru'je~byQ<1d9V4*aun'xm#jb?.sf,vuhsz&idyczP40g8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_43f?P6(o{l%~k!hl1,q`*twf}x$ob{at^42a>S7'nxm"h gm2-va)uxg~y#naznu]45`=R8&myj#|i/fn3*wb(zyd~"m`uov\<74<]9%l~k }f.eo4+tc'{zex!lotlw[a7;87897X> gsd-vc)`d9$yh"|nup,gjsi|Vn:0<0=2:W3+bta&{l$ka>!re-qtkru'je~byQk1=0=67=R8&myj#|i/fn3*wb(zyd~"m`uov\`4:46;80Y=!hrg,qb*ak8'xo#~ats-`kphsWm;783<=;T2,cw`)zo%l`= }d.psjqt(kfexRj><4<16>S7'nxm"h gm2-va)uxg~y#naznu]g5909:;1^<"i}f/pe+bj7&{n$~}`{r.alqkrXl86<2?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?38?02?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[5463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W88:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S?<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_202?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[1463\:$kh!rg-dh5(ul&x{by| cnwmpZb6W<8:7X> gsd-vc)`d9$yh"|nup,gjsi|Vn:S;<>;T2,cw`)zo%l`= }d.psjqt(kfexRj>_602?P6(o{l%~k!hl1,q`*twf}x$ob{at^f2[=433\:$kh!rg-dh5(ul&x{by| cnwmpZhh|9:;=>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir0=0!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:Tot2>>2d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pcx>0:6`<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^az8184n2_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\g|:26:l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Ze~4?48j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xkp6<2>h4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vir050;0:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/Lcg`ZbnnoU{by|Pp`f\eab789:T`xz31?63?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,IdbcWmcmjR~ats]seaYflm:;<=Qcuu>1:16<]9%l~k }f.eo4+qu'n}j#if/uqtc)JimnThdhi_qlwvZvflVkoh=>?0^nvp959<91^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&GjhiQkigd\tkruWykoSljk0123[iss4=4?<6[?/fpe*w`(oe:%{!hw`q-cu`){zm#@okd^fjbcYwf}xT|ljPaef3456Xd|~793:?;T2,cw`)zo%l`= xr.etev(`xo$|~}h M`fg[aoanVzexQae]b`a6789Ugyy29>528Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-NeabXl`lmS}`{r^rb`Zgcl9:;?_mww8=8382_;#j|i.sd,ci6){%l{l}!gqd-swva'DkohRjffg]sjqtXxhnTmij?012\hpr;17>;7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$Aljk_ekebZvi|{U{miQnde2345Yg{6829>4U1-dvc(un&mg<#y}/fubw+awn'}y|k!Baef\`l`aWyd~R~nd^cg`5678Vrd~1:1419V4*aun'xm#jb?.vp,crgt&nzm"z|f.Ob`aYcaolT|cz}_qcg[dbc89:;Sua}<4<74>S7'nxm"h gm2-sw)`hy%k}h!wsre+HgclVnbjkQnup\tdbXimn;<=>Pxnp?2;273\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(EhnoSigif^rmpwYwimUjhi>?01]{kw:06=:0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%FmijPdhde[uhszVzjhRokd1234Z~hz5258=5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"Cnde]gmc`Xxg~yS}ok_`fg4567Wqey040=f:W3+bta&{l$ka>!ws-dsdu)oyl%{~i/ekebZvi|{U{mi2<>3d8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok<5<1b>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae>6:7`<]9%l~k }f.eo4+qu'n}j#if/uqtc)caolT|cz}_qcg8385n2_;#j|i.sd,ci6){%l{l}!gqd-swva'mcmjR~ats]sea:06;l0Y=!hrg,qb*ak8'}y#jyns/esb+quxo%oekhPpovq[ugc4149j6[?/fpe*w`(oe:%{!hw`q-cu`){zm#igif^rmpwYwim622?k4U1-dvc(un&mg<#y}/fubw+awn'}y|k!kigd\tkruWykoS>!ws-dsdu)oyl%{~i/ekebZvi|{U{miQ:2d9V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljP63g8Q5)`zo$yj"ic0/uq+bqf{'m{j#y}pg-gmc`Xxg~yS}ok_60f?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^:1a>S7'nxm"h gm2-sw)`hy%k}h!wsre+aoanVzexQae]:72=R8&myj#|i/fn3*rt(o~kx"j~i.vpsb*bnnoU{by|Pp`f\eab789:7?3=8;T2,cw`)zo%l`= xr.etev(`xo$|~}h dhde[uhszVzjhRokd1234929;>1^<"i}f/pe+bj7&~x$kzo|.fre*rtwn&nbjkQnup\tdbXimn;<=>35?14?P6(o{l%~k!hl1,tv*apiz$l|k xrqd,`l`aWyd~R~nd^cg`56785<5?:5Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"jffg]sjqtXxhnTmij?012?3;503\:$kh!rg-dh5(pz&m|m~ hpg,tvu`(l`lmS}`{r^rb`Zgcl9:;<161369V4*aun'xm#jb?.vp,crgt&nzm"z|f.fjbcYwf}xT|ljPaef3456;178j7X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZo4:2_;#j|i.sd,ci6){%l{l}!gqd-swva'yxdkRhzlm]j[hs89:8?95Z0.eqb+ta'nf;"z| gvcp*bva&~x{j"~}of]eqijXaVg~t=>?30000>S7'nxm"h gm2-sw)`hy%k}h!wsre+uthoVl~`aQf_lw{45649:987X> gsd-vc)`d9$|~"ixar,dtc(pzyl$|ah_gwohZoXe|r;<==8339V4*aun'xm#jb?.vp,crgt&nzm"z|f.rqkbYa}efTeR``t12357?<]9%l~k }f.eo4+qu'n}j#y|tr-`5*efz{seiy2?>3;8Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.abvwim}6:2?74U1-dvc(un&mg<#y}/fubw+qt|z%h="mnrs{maq:56;30Y=!hrg,qb*ak8'}y#jyns/uppv)d9&ij~waeu>0:7`<]9%l~k }f.eo4+qu'n}j#y|tr-`5*aj}q$laV>R.fo2*h75n2_;#j|i.sd,ci6){%l{l}!wrvp+f7(ods"jcT1\,div(j{;l0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&mfyu hmZ0^*bkt&dy9j6[?/fpe*w`(oe:%{!hw`q-svrt'j;$k`{w.foX7X(`ez$f?h4U1-dvc(un&mg<#y}/fubw+qt|z%h="ibuy,di^2Z&ngx"`}=3:W3+bta&{l$ka>!ws-dsdu)z~x#n? v0>3:75<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p64849?6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z<2=>318Q5)`zo$yj"ic0/uq+bqf{'}xx~!l1.t28685;2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~86?2?l4U1-dvc(un&mg<#y}/fubw+qt|z%h="x>_1]bja6789;9n6[?/fpe*w`(oe:%{!hw`q-svrt'j;$z_`lg45679;h0Y=!hrg,qb*ak8'}y#jyns/uppv)d9&|:S?Qnne234575j2_;#j|i.sd,ci6){%l{l}!wrvp+f7(~8U8Sl`k012357d<]9%l~k }f.eo4+qu'n}j#y|tr-`5*p6W=Uecy>?0131=>S7'nxm"h gm2-sw)`hy%{~z|/b0,gdtuqgo0=0=9:W3+bta&{l$ka>!ws-dsdu)z~x#n< c`pq}kcs484956[?/fpe*w`(oe:%{!hw`q-svrt'j8$ol|}yogw878512_;#j|i.sd,ci6){%l{l}!wrvp+f4(khxyuck{<2<1b>S7'nxm"h gm2-sw)`hy%{~z|/b0,chs&ngP

"x><1<17>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4:66;90Y=!hrg,qb*ak8'}y#jyns/uppv)d:&|:0?0=3:W3+bta&{l$ka>!ws-dsdu)z~x#n< v0>0:75<]9%l~k }f.eo4+qu'n}j#y|tr-`6*p64=49n6[?/fpe*w`(oe:%{!hw`q-svrt'j8$z?0131f>S7'nxm"h gm2-sw)`hy%{~z|/b0,r4Y3Wge<=>?1328Q5)`zo$yj"ic0/uq+bqf{'}xx~!lolr265=R8&myj#|i/fn3*rt(o~kx"z}{s.aliu4582_;#j|i.sd,ci6){%l{l}!wrvp+fijx:8o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;878o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;978o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;:78o7X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!laspzj`r;;7987X> gsd-vc)`d9$|~"ixar,twqu(ohl%o>!hmtz-ch]7U'mf=#c>329V4*aun'xm#jb?.vp,crgt&~y"inf/a0+bkrp'mfW5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m1^<"i}f/pe+bj7&~x$kzo|.vqww*afn'i8#{?30?04?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q95;5>:5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m gsd-vc)`d9$|~"ixar,twqu(ohl%o>!y1^2\ekb789::>k5Z0.eqb+ta'nf;"z| gvcp*rus{&mjj#m>2g9V4*aun'xm#jb?.vp,crgt&~y"inf/a0+s7X;Vkeh=>?000e?P6(o{l%~k!hl1,tv*apiz$|y} g`d-g6)q9V>Tbbz?01226f=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZgkefySk{cl^k00>S7'nxm"h gm2-sw)`hy%{~z|/scn[djjgz~Tjxbc_h]nq}67899>7X> gsd-vc)`d9$|~"ixar,twqu(zhgTmac`su]eqijXaVg~t=>?0016?P6(o{l%~k!hl1,tv*apiz$|y} r`o\eikh{}UmyabPi^llp56798837X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_g`\m73<]9%l~k }f.eo4+qu'n}j#y|tr-qehYa}efTe?j4U1-dvc(un&mg<#y}/fubw+qt|z%ym`Qiumn\mZkrp9:;229V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq433\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|d=?:4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov161=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}9986[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at507?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphs=;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz9259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq15<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex5<6;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[f;878h7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?4;Yu|;30Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|VidyczPcx>2:7e<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2>>^pw6<=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Uhu1<12b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq585Sz=9:W3+bta&{l$ka>!ws-ttkru'DidyczPcnwmpZe~4:49o6[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az868Xz}827X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_b{?0;4d3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSnw34?]qp7?<]9%l~k }f.eo4+qu'~zex!BcnwmpZeh}g~Tot2:>3a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXkp6>2R|{289V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYdq5<5>n5Z0.eqb+ta'nf;"z| wqlwv*Kdg|dSnaznu]`}909W{~956[?/fpe*w`(oe:%{!xpovq+Heh}g~Tob{at^az8285k2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRmv<6<\vq4f3\:$kh!rg-dh5(pz&}{by| MbmvjqYdg|dSua}<1<1e>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?12`9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{692?o4U1-dvc(un&mg<#y}/vrmpw)JkfexRm`uov\|jt;;78j7X> gsd-vc)`d9$|~"ynup,Ifirf}Uhcx`{_ymq8185i2_;#j|i.sd,ci6){%||cz}/LalqkrXkfexRv`r=7=6d=R8&myj#|i/fn3*rt(yd~"Clotlw[firf}Usc29>3c8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7;39W{~:j6[?/fpe*w`(oe:%{!xpovq+firf}6;2f:W3+bta&{l$ka>!ws-ttkru'je~by2=>0d8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{<2<2b>S7'nxm"h gm2-sw)pxg~y#naznu>7:4`<]9%l~k }f.eo4+qu'~zex!lotlw8086n2_;#j|i.sd,ci6){%||cz}/bmvjq:168l0Y=!hrg,qb*ak8'}y#z~ats-`kphs4>4:j6[?/fpe*w`(oe:%{!xpovq+firf}632e:W3+bta&{l$ka>!ws-ttkru'je~byQ=1d9V4*aun'xm#jb?.vp,suhsz&idyczP30g8Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_53f?P6(o{l%~k!hl1,tv*qwf}x$ob{at^72a>S7'nxm"h gm2-sw)pxg~y#naznu]55`=R8&myj#|i/fn3*rt(yd~"m`uov\34c<]9%l~k }f.eo4+qu'~zex!lotlw[=453\:$kh!rg-dh5(pz&}{by| cnwmpZb64949>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1?1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>1:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;;7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn:090=2:W3+bta&{l$ka>!ws-ttkru'je~byQk1=7=67=R8&myj#|i/fn3*rt(yd~"m`uov\`4:16;80Y=!hrg,qb*ak8'}y#z~ats-`kphsWm;7;3<=;T2,cw`)zo%l`= xr.usjqt(kfexRj><9<15>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z6592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V;9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R<=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^115>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z2592_;#j|i.sd,ci6){%||cz}/bmvjqYc9V?9=6[?/fpe*w`(oe:%{!xpovq+firf}Uo=R8=1:W3+bta&{l$ka>!ws-ttkru'je~byQk1^515>S7'nxm"h gm2-sw)pxg~y#naznu]g5Z>5:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5:5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2>>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?6;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54:49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1:1239V4*aun'xm#jb?.vp,suhsz&idyczPd3>6:74<]9%l~k }f.eo4+qu'~zex!lotlw[a4;>7897X> gsd-vc)`d9$|~"ynup,gjsi|Vn90:0=2:W3+bta&{l$ka>!ws-ttkru'je~byQk2=:=64=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y7:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U:><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q=209V4*aun'xm#jb?.vp,suhsz&idyczPd3]064=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y3:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U>><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q9209V4*aun'xm#jb?.vp,suhsz&idyczPd3]464=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y?:;1^<"i}f/pe+bj7&~x${}`{r.alqkrXl:6;2?<4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=31?01?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f08785:2_;#j|i.sd,ci6){%||cz}/bmvjqYc;595>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th>2;>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1?1;453\:$kh!rg-dh5(pz&}{by| cnwmpZb44?49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo?191239V4*aun'xm#jb?.vp,suhsz&idyczPd2>;:77<]9%l~k }f.eo4+qu'~zex!lotlw[a5X8;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T=??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P2338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\777<]9%l~k }f.eo4+qu'~zex!lotlw[a5X<;;0Y=!hrg,qb*ak8'}y#z~ats-`kphsWm9T9??4U1-dvc(un&mg<#y}/vrmpw)dg|dSi=P6338Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e1\377<]9%l~k }f.eo4+qu'~zex!lotlw[a5X0;>0Y=!hrg,qb*ak8'}y#z~ats-`kphsWge<=>>169V4*aun'xm#`kb/emvpZo;87;37X> gsd-vc)jmd%ocxzPi=33:4><]9%l~k }f.ofi*bh}}Ub027;7?3\:$kh!rg-nah)cg|~Te1?;>0:8Q5)`zo$yj"cjm.flqqYn48?5=55Z0.eqb+ta'dof#iazt^k?538602_;#j|i.sd,i`k(lfSd2>7?3;?P6(o{l%~k!bel-gkprXa5;32<64U1-dvc(un&gna"j`uu]j84?99>1^<"i}f/pe+hcj'me~xRg31?3;?P6(o{l%~k!bel-gkprXa58;2<64U1-dvc(un&gna"j`uu]j8779911^<"i}f/pe+hcj'me~xRg323<2<>S7'nxm"h mdo,`jssW`69?3?7;T2,cw`)zo%fi`!kotv\m9436820Y=!hrg,qb*kbe&ndyyQf<37=5==R8&myj#|i/lgn+air|Vc7>;0>8:W3+bta&{l$ahc dnww[l:5?7;37X> gsd-vc)jmd%ocxzPi=0;:4><]9%l~k }f.ofi*bh}}Ub0?71169V4*aun'xm#`kb/emvpZo;:7;37X> gsd-vc)jmd%ocxzPi=13:4><]9%l~k }f.ofi*bh}}Ub0>?1199V4*aun'xm#`kb/emvpZo;;;4:46[?/fpe*w`(elg$hb{{_h>07;7?3\:$kh!rg-nah)cg|~Te1=;>0:8Q5)`zo$yj"cjm.flqqYn4:?5=:5Z0.eqb+ta'dof#iazt^k?7;703\:$kh!rg-nah)cg|~Te1:1169V4*aun'xm#`kb/emvpZo;=7;<7X> gsd-vc)jmd%ocxzPi=4=52=R8&myj#|i/lgn+air|Vc7;3?8;T2,cw`)zo%fi`!kotv\m9>99>1^<"i}f/pe+hcj'me~xRg39?35?P6(o{l%~k!bel-gkprXaV:::6[?/fpe*w`(elg$hb{{_h]252=R8&myj#|i/lgn+air|VcT==?8;T2,cw`)zo%fi`!kotv\mZ769>1^<"i}f/pe+hcj'me~xRgP1334?P6(o{l%~k!bel-gkprXaV;8=:5Z0.eqb+ta'dof#iazt^k\51703\:$kh!rg-nah)cg|~TeR?:169V4*aun'xm#`kb/emvpZoX9?;<7X> gsd-vc)jmd%ocxzPi^3452=R8&myj#|i/lgn+air|VcT=5?8;T2,cw`)zo%fi`!kotv\mZ7>9?1^<"i}f/pe+hcj'me~xRgP2058Q5)`zo$yj"cjm.flqqYnW;::;6[?/fpe*w`(elg$hb{{_h]1541<]9%l~k }f.ofi*bh}}UbS?<>7:W3+bta&{l$ahc dnww[lY5;8=0Y=!hrg,qb*kbe&ndyyQf_3623>S7'nxm"h mdo,`jssW`U99<94U1-dvc(un&gna"j`uu]j[706?2_;#j|i.sd,i`k(lfSdQ=7058Q5)`zo$yj"cjm.flqqYnW;2:;6[?/fpe*w`(elg$hb{{_h]1=40<]9%l~k }f.ofi*bh}}UbS>?8;T2,cw`)zo%fi`!kotv\mZ579>1^<"i}f/pe+hcj'me~xRgP3034?P6(o{l%~k!bel-gkprXaV99=:5Z0.eqb+ta'dof#iazt^k\76703\:$kh!rg-nah)cg|~TeR=;169V4*aun'xm#`kb/emvpZoX;<;=7X> gsd-vc)jmd%ocxzPi^622>S7'nxm"h mdo,`jssW`U>=;5Z0.eqb+ta'dof#iazt^k\240<]9%l~k }f.ofi*bh}}UbS:?9;T2,cw`)zo%fi`!kotv\mZ>6>2_;#j|i.sd,i`k(lfSdQ6189V4*aun'xm#`kb/emvpZkbe5:5=l5Z0.eqb+ta'dof#iazt^ofi97768k0Y=!hrg,qb*kbe&ndyyQbel>25;7f3\:$kh!rg-nah)cg|~Tahc313<2e>S7'nxm"h mdo,`jssWdof0<=11`9V4*aun'xm#`kb/emvpZkbe5;?2 gsd-vc)jmd%ocxzPmdo?5386i2_;#j|i.sd,i`k(lfS`kb<05=5d=R8&myj#|i/lgn+air|Vgna1?7>0c8Q5)`zo$yj"cjm.flqqYjmd6:53?6;T2,cw`)zo%fi`!kotv\i`k;97;j7X> gsd-vc)jmd%ocxzPmdo?6586i2_;#j|i.sd,i`k(lfS`kb<33=5d=R8&myj#|i/lgn+air|Vgna1<=>0c8Q5)`zo$yj"cjm.flqqYjmd69?3?n;T2,cw`)zo%fi`!kotv\i`k;:=4:m6[?/fpe*w`(elg$hb{{_lgn87399h1^<"i}f/pe+hcj'me~xRcjm=05:4g<]9%l~k }f.ofi*bh}}Ufi`2=7?3b?P6(o{l%~k!bel-gkprXelg7>50>a:W3+bta&{l$ahc dnww[hcj4;35=45Z0.eqb+ta'dof#iazt^ofi9499h1^<"i}f/pe+hcj'me~xRcjm=13:4g<]9%l~k }f.ofi*bh}}Ufi`2<1?3b?P6(o{l%~k!bel-gkprXelg7??0>a:W3+bta&{l$ahc dnww[hcj4:95=l5Z0.eqb+ta'dof#iazt^ofi95368k0Y=!hrg,qb*kbe&ndyyQbel>01;7>3\:$kh!rg-nah)cg|~Tahc33?3:?P6(o{l%~k!bel-gkprXelg783?6;T2,cw`)zo%fi`!kotv\i`k;=7;27X> gsd-vc)jmd%ocxzPmdo?2;7>3\:$kh!rg-nah)cg|~Tahc37?3:?P6(o{l%~k!bel-gkprXelg743?6;T2,cw`)zo%fi`!kotv\i`k;17=?7X> gsd-vc)jmd%ln` hble-cgk`i'dlinm!ble,fimXelgTkh`jr`vlv*pfd`n%o~z}/scnhjiwS9W%~lc!r.q0[kinf`~%~lc dqpbi+bw;?r8:#|nm0`8Q5)`zo$yj"cjm.vntZtfeVxoSh`>c:W3+bta&{l$ahc tlr\vdkXzmUnbe:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1<11e9V4*aun'xm#}{bmi,vaYu{}UyijQ?1e9V4*aun'xm#}{bmi,vaYu{}UyijQ>1e9V4*aun'xm#}{bmi,vaYu{}UyijQ=169V4*aun'xm#}{bmi,vvrXl8;<7X> gsd-vc)u{}hgg"||t^f152=R8&myj#|i/sqwfim(zz~Th>?k;T2,cw`)zo%yylck.uq[wusWhyyijS7'nxm"h rrvahn)pzVxxxRm`mc32a>S7'nxm"h rrvahn)pzVxxxR|jg=2=5`=R8&myj#|i/sqwfim({UyyQ}ef>2:4b<]9%l~k }f.pppgjl'~xT~~zPrde\44b<]9%l~k }f.pppgjl'~xT~~zPrde\5d=R[LXTMAGNSb9VW@TX^@YBNAK<;WA@=>PNM^U_U]K<;VGB7>QBJj1\^DZJ_LMGAZGd3^XBXHQBOEG\Fa=PZ@^NSZGKTI]B`>QUA]OT[DJ[H^@2`>^ND@DS!UJM 1,2$VRRJ):%=-O\CHK6?]IUKP<0T^ZCIC58\VRXOGN<7U][_WA@f>^XKFXNSD@IO79[`gYNlo1SheQ_rhoUawungg;;7Ujb_LcikwPbzzcdb<>4Xeo\Ilhhz_oydaac:coijusWlg{xtl4amolwqYa}ef=7oolktrg?ggdc|zTal|des18gimc3mkmRm`uov+4,bbf|hUhcx`{(2+g?agsiVidycz'4(f8`drfWje~by&:)e9geqgXkfex%8&d:fbpdYdg|d$:'k;ecweZeh}g~#4$h4d`vb[firf}636=08;e`jp`tu>2nbb%>&6:fjj-7.?2nbb%??)69gmk.69 =0hd`'13+4?aoi 89";6jfn)37-2=cag":9$94dhl+53/03mce$<9&7:fjj-7?!>1oec&>9(48`lh/: =0hd`'21+4?aoi ;;";6jfn)01-2=cag"9?$94dhl+61/03mce$?;&7:fjj-41!>1oec&=7(58`lh/:1#<7iga(3;*2>bnf!9";6jfn)13-2=cag"8=$94dhl+77/03mce$>=&7:fjj-53!>1oec&<5(48`lh/< <0hd`'5(48`lh/> <0hd`'7(48`lh/0 <0hd`'9(48`lh;87=0hd`311<4?aoi48;5;6jfn=31:2=cag6:?394dhl?51803mce0<;17:fjj9716>1oec2>7?58`lh;914<7iga<0;=2>bnf5;5;6jfn=03:2=cag69=394dhl?67803mce0?=17:fjj9436>1oec2=5?58`lh;:?4<7iga<35=3>bnf5832:5kio>1=;0394dhl?75803mce0>?17:fjj9556>1oec2<3?58`lh;;=427iga<2794;1&7:flqq.6!11ocxz'11+;?air|!;:%55kotv+57/?3me~x%?<)99gkpr/9=#37iazt)36-==cg|~#=;'7;emvp-70!11ocxz'19+;?air|!;2%:5kotv+6,>&8:flqq.59 20hb{{(30*<>bh}}"9?$64dnww,72.02ndyy&=5(:8`jss ;<"46j`uu*13,> =0hb{{(6+4?air|!2";6j`uu*:-2=cg|~7<364dnww846902ndyy2>1?:8`jss488546j`uu>27;>bh}}6:;364dnww84>902ndyy2>9?58`jss48437iazt=03:==cg|~7><07;emvp945611ocxz322<;?air|58?255kotv?608?3me~x1<9>99gkpr;:>437iazt=0;:==cg|~7>408;emvp94902ndyy2<0?:8`jss4:;546j`uu>06;>=18:flqq:4<7k0hb{{<2794;>;17:flqq:46>1ocxz34?58`jss4<4<7iazt=4=3>bh}}6<2:5kotv?<;1V;'wnQgar]jjqYddb7; nQgar]pvvr:8%iT~iQirds>5)eXmgki`hQ}su]p}ke:9%iTdl}Pre]geqgXkfex0>#c^fjjZqnl}b6?;"l_icp[rtXlh~jSnaznu?3(fYa}efTjaohs^pppZpfd4;'oRgbpmgnakrf|`eeSywe<0/gZstmVofnhjkee]qab;7$jU|~Rh}ep?2(fYr{lUocxzPrrv>5)eX}gnn~kb`w^nls86+kVbjRayesdokr;7$jU{~hb`ae]oeqcikp7; nQkotv\slbs`49= nQbsfmm[sgk58&hSjPddrwl836:%iTi|`r^kmn`esafdTxt~j=1.`[mgtW|doihcov?3(fYoizUj``a|t^dvhi;6$jUcm~Q}su?2(fYci}kTob{at^uj`qn:1%iTdl}Pws]bgn;7$jU~hQjcb?3(fYdgdgdbRmcobi>4)eX{UjofQcov?3(fYulVzexQxievk9<*dW|ynSkyit^fbpdYdg|d1="l_icp[djjgz~Ti`~{y<2/gZtcWmkmRm`uov\slbs`43'oRayesdokrYkg~7; nQxr^rmpwYpam~c14"l_qplcZcjx}sTxt~j=1.`[rtXlh~jSnaznu]tmaro50&hS}|jlncg[wc`{4;'oRj`uu]qwqYqie7; nQgar]geqgXkfex0>#c^rqkbYa}efTxe|jsi]mabgsmV|j`0:69-a\swYcmy~c18?=,b]svjaXmdzuRzgrdqk[kc`i}oTzlb25-a\twi`Wlg{xtQ{hsgplZgt{lxS{oc=5.`[mgtWkgei3?,b]svjaXn|fgSyf}erj\evubz}U}ma3:01.`khvhfldScobe#c^rqmhYaaoeTxt~j=431|60+kVzycjQiumn\p|vb58&hS`kbos{\p|vb58&v?45iigm\|ihW<;9t>8P2bnh[uthoVl~`aQiigm\c`hbzh~d~Rx9_0]{wqY6<2l~`aj4iohfgqbea}oy~i5fnkg`pvdn|lxy;6gat^aoo==iojh~eaj7;ntfvcjhh1{~biPelrw}42vugnUna}zv_ujqavn/: ;?7}|`g^gntqX|axne&<)068twi`Wlg{xtQ{hsgpl-2.9=1{~biPelrw}Zrozlyc$8'>4:rqkbYbey~rSyf}erj+2,733yxdkRkbpu{\pmtb{a"<%<:4psmd[`kw|pUdk|h):*53=wzfmTi`~{y^vkv`uo410;2vugnUna}zv_ujqavnXizyn~y&:)0`8twi`Wlg{xtQ{hsgplZgt{lx$;'>b:rqkbYbey~rSyf}erj\evubz}"<%vugnUna}zv_ujqavnXflmjxh&;)0`8twi`Wlg{xtQ{hsgplZhboh~n$8'>b:rqkbYbey~rSyf}erj\j`af|l"=%#:n6~}of]fiur~W}byi~fPndebp`.?!8n0|ah_dosp|Ys`{oxdR`jg`vf8=<7601{~biPftno56=wzfmTjxbc_ujqavn/8 ;87}|`g^dvhiYs`{oxd%?&129svjaXn|fgSyf}erj+6,743yxdkRhzlm]wlwct`!9"=>5rne\bpjkW}byi~f'4(30?uthoVl~`aQ{hsgpl-3.9:1{~biPftno[qnumzb#:$?<;qplcZ`rdeUdk|h)5*56=wzfmTjxbc_ujqavn/0 ;>7}|`g^dvhiYs`{oxd1650?3b?uthoVl~`aQ{hsgplZgt{lx$='>a:rqkbYa}efTxe|jsi]bwvcu|!;"=l5rne\bpjkW}byi~fParqfvq.5!8k0|ah_gwohZrozlycSl}|esv+7,7f3yxdkRhzlm]wlwct`Vkxh|{(5+2e>vugnUmyabPtipfwmYf{zoyx%;&1`9svjaXn|fgSyf}erj\evubz}"=%vugnUmyabPtipfwmYimnki%?&1`9svjaXn|fgSyf}erj\j`af|l"9%=87<0~iQllj33?wbXlh~jSnaznu*3-464re]geqgXkfex1>1139q`Zbf|hUhcx`{<983:0=ulVoe:6|k_sqw7>tt|>1xndzjrs68wwus:k1a}!Pcf-emciXpedsS8?=x24\6fjlWyxdkRhzlm,mcj2<|{n56{addpehjq23kgei84ws]bgn0<{Uh`f??;vp\`drfWje~by&?)028swYci}kTob{at)3*55=pzVnjxlQlotlw,7/682}ySio{a^alqkr/; ;;7z|Pd`vb[firf}"?%<>4ws]geqgXkfex%;&119tvZbf|hUhcx`{(7+24>quWmkmRm`uov+3,773~xThlzn_bmvjq.?!880{Qkauc\gjsi|521<3;4ws]fj3=pzVxxxpNOpbd2?EF=021J7:51zQ7b?34k3<1=>mrd?554>;o6:=?0<,=3=697?;|Q7`?34k3<1=>m2Y:8i4:4683>455j>l<6?o=9d9P0a<2<>0;6<==b6d4>7g51o1o9>h50;395~U3n3?8o785120a3c1=:h82i6x[1cf94?7=93;h8v];f;70g?0=9:8i;k952`0:a>"3000:8h5Y48596~s6=>0:7x?:8;28y!7e93l0n8=i:1865?5==8qC8594Z5796~c=l3w/=n<552d8 1?22<9n7d;63;29?j2>j3:17b;98;29?l3f03:17b;;3;29?j34l3:17d;6d;29?l3>=3:17b;>0;29 4d42<987c?m2;28?j37n3:1(3:1(i3nm0;6)?m3;707>h6j;0:=65`4ga94?"6j:0>?>5a1c0957=5:9l0c>=83.:n>4:329m5g4=9?10c9h8:18'5g5==:90b3:1(!7e;3?8?6`>b382=>=h=8<1<7*>b28676=i9k81=l54o436>5<#9k919>=4n0`1>4d<3f?:87>5$0`0>0543g;i>7?l;:m656<72-;i?7;<3:l2f7<6l21d9<<50;&2f6<2;:1e=o<51d98k076290/=o=55218j4d528l07b;?a;29 4d42<987c?m2;03?>i3no0;6)?m3;707>h6j;09=65`4g694?"6j:0>?>5a1c0967=h:7>5$0`0>1cf3g;i>7?4;h6`1?6=,8h869kn;o3a6?4<3`>h87>5$0`0>1cf3g;i>7=4;h6`7?6=,8h869kn;o3a6?2<3`>h>7>5$0`0>1cf3g;i>7;4;h6`4?6=,8h869kn;o3a6?0<3`>ij7>5$0`0>1cf3g;i>794;h6aa?6=,8h869kn;o3a6?><3`>ih7>5$0`0>1cf3g;i>774;h6ag?6=,8h869kn;o3a6?g<3`>in7>5$0`0>1cf3g;i>7l4;h6ae?6=,8h869kn;o3a6?e<3`>i57>5$0`0>1cf3g;i>7j4;h6ai;7>5$0`0>1cf3g;i>7h4;h6a1?6=,8h869kn;o3a6?7732c?n94?:%3a7?2bi2d:n?4>1:9j0g5=83.:n>4;e`9m5g4=9;10e9l=:18'5g5=!7e;3>nm6`>b3821>=nb287ad=i9k81=;54i5cf>5<#9k918ho4n0`1>41<3`>jh7>5$0`0>1cf3g;i>7?7;:k7ef<72-;i?7:ja:l2f7<6121b8nj50;&2f6<3mh1e=o<51`98m1ed290/=o=54dc8j4d528h07d:lb;29 4d42=oj7c?m2;3`?>o3kh0;6)?m3;6fe>h6j;0:h65f4b;94?"6j:0?il5a1c095`=4;e`9m5g4=:;10e9on:18'5g5=5<6290;wE:77:&2g75;|`70?6=j:0:;;4>c5yK0=173=:009:7<8:3:9a?b=:h09n7<6:3`9a?4f2;>1h7<7:35963<5=3886p*>c38607=#<10>8=5+4d8604=#9hi1=lh4i47`>5<#9k9198j4n0`1>5=5<#9k9198j4n0`1>7=54i47;>5<#9k9198j4n0`1>1=5<#9k9198j4n0`1>3=6=4+1c1910b5<#9k9198j4n0`1>==>6=44i4;7>5<5<5<#9k9198=4n0`1>4=5<#9k9198=4n0`1>6=n6=4+1c191055<#9k9198=4n0`1>0=h6=4+1c191055<#9k9198=4n0`1>2=j6=4+1c191055<36=44i445>5<#9k919;94n0`1>5=6=4+1c191315<#9k919;94n0`1>7=54i441>5<#9k919;94n0`1>1=5<#9k919;94n0`1>3=5<#9k919;94n0`1>==5<#9k918l64n0`1>5=5<#9k918l64n0`1>7=54o5c0>5<#9k918l64n0`1>1=5<#9k918l64n0`1>3=5<#9k918l64n0`1>==5<5<#9k919:<4n0`1>4=5<#9k919:<4n0`1>6=5<#9k919:<4n0`1>0=5<#9k919:<4n0`1>2=5<5<5<#9k919:m4n0`1>5=5<#9k919:m4n0`1>7=54i454>5<#9k919:m4n0`1>1=5<#9k919:m4n0`1>3=5<#9k919:m4n0`1>==6=4+1c191=05<#9k919584n0`1>4=5<#9k919584n0`1>6=5<#9k919584n0`1>0=5<#9k919584n0`1>2=5<=6=44i5;f>5<5<5<5<#9k919>=4n0`1>4=5<#9k919>=4n0`1>6=5<#9k919>=4n0`1>0=5<#9k919>=4n0`1>2=5<#9k919>=4n0`1><=6=4+1c191655<#9k919>=4n0`1>g=5<#9k919>=4n0`1>a=5<#9k919>=4n0`1>c=4;n6e`?6=,8h868=<;o3a6?7632e?jn4?:%3a7?34;2d:n?4>2:9l0cd=83.:n>4:329m5g4=9:10c9hn:18'5g5==:90b76a;f983>!7e;3?8?6`>b3822>=hb28676=i9k81=:54o5d5>5<#9k919>=4n0`1>4><3f>m97>5$0`0>0543g;i>7?6;:m653<72-;i?7;<3:l2f7<6i21d9<;50;&2f6<2;:1e=o<51c98k073290/=o=55218j4d528i07b;>3;29 4d42<987c?m2;3g?>i29;0;6)?m3;707>h6j;0:i65`50394?"6j:0>?>5a1c095c=4;n6eb?6=,8h868=<;o3a6?4632e?j94?:%3a7?34;2d:n?4=2:9l0c5=83.:n>4:329m5g4=::10e9m8:18'5g5=10e9lj:18'5g5=290/=o=54dc8j4d52m10e9l7:18'5g5=!7e;3>nm6`>b3826>=nb287ad=i9k81=>54i5`2>5<#9k918ho4n0`1>42<3`>i<7>5$0`0>1cf3g;i>7?:;:k7ec<72-;i?7:ja:l2f7<6>21b8lk50;&2f6<3mh1e=o<51698m1gc290/=o=54dc8j4d528207d:nc;29 4d42=oj7c?m2;3:?>o3km0;6)?m3;6fe>h6j;0:m65f4ba94?"6j:0?il5a1c095g=e:9j0f>=83.:n>4;e`9m5g4=9o10e9m>:18'5g5=3:1(!7e;3>nm6`>b3816>=nb287ad=i9k81>>54i5;`>5<5<#9k9194<4n0`1>4=5<#9k9194<4n0`1>6=5<#9k9194<4n0`1>0=5<#9k9194<4n0`1>2=5<#9k919l94n0`1>5=6=4+1c191d15<#9k919l94n0`1>7=54o4c1>5<#9k919l94n0`1>1=5<#9k919l94n0`1>3=5<#9k919l94n0`1>==26=44i467>5<5<5<6290;w)?l2;da?M2>:2B?4:5`f`83>>{e<0>1<7?50;2x 4e52=237E:62:J7<2=h9k:1<75rb3ag>5<3290;w)?l2;d4?M2>:2B?4:5+11:91>o3>3:17d;?:188m4d32900c50z&2g75<54;294~"6k;0m;6F;939K0=1<@=80(<;::4;:?!7703?0e9850;9j15<722c:n94?::m2f0<722wi8:?50;194?6|,8i96k:4H5;1?M2??2B?>6*>5486=<=#9921=6g;6;29?l372900c50z&2g76876;%33>i6j<0;66sm46`94?2=83:p(3;6F;2:&210<2101/==655:k72?6=3`?;6=44i0`7>5<6=44}c644?6=;3:1c38e0>N31;1C8594H508 4322<327)??8;38m10=831b9=4?::m2f0<722wi8:j50;794?6|,8i96k64H5;1?M2??2B?>6*>5486=<=n0?>3-;;47?4i5494?=n=90;66a>b483>>{eN3:2.:984:989j03<722c?;7>5;h73>5<5<54;294~"6k;0m;6F;939K0=1<@=80(<;::4;:?!7703?0e9850;9j15<722c:n94?::m2f0<722wi8:750;694?6|,8i96k94H5;1?M2??2.:<54:;h65>5<5<3290;w)?l2;d4?M2>:2B?4:5+11:91>o3>3:17d;?:188m4d32900c50z&2g75;n3a1?6=3th?484?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm49694?2=83:p(3;6*>0986?l212900e8>50;9j5g2=831d=o;50;9~f4c3290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb0g2>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f4c7290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb0fg>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f4bd290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<=6=4;:183!7d:3l>7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?:::187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb367>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f724290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<96=4;:183!7d:3l>7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?:>:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb363>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f75a290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?6j:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb3:g>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f7>d290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?6n:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb3::>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f7>?290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?69:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb30`>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f74e290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?<6:187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb30;>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f740290?6=4?{%3`6?`23A>2>6F;869'55>=92c?:7>5;h6`>5<7E:62:J7<2=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?<::187>5<7s-;h>7h:;I6:6>N30>1/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb307>5<3290;w)?l2;d6?M2>:2B?4:5+11:95>o3>3:17d:l:188m06=831d=o;50;9~f71d290?6=4?{%3`6?`23A>2>6F;869K07=#94=n50z&2g76876;%33>o283:17b?m5;29?xd5?h0;694?:1y'5f4=n<1C84<4H5:4?M253-;>97;69:&24=<63`>=6=44i5a94?=n=90;66a>b483>>{e:>31<7:50;2x 4e52o?0D97=;I6;3>N3:2.:984:989'55>=92c?:7>5;h6`>5<7E:62:J7<2=O<;1/=8;558;8 46?281b8;4?::k7g?6=3`?;6=44o0`6>5<54;294~"6k;0m96F;939K0=1<@=80(<;::4;:?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9;;4?:583>5}#9j81j85G4808L1>03A>97)?:5;7:=>"6810:7d:9:188m1e=831b9=4?::m2f0<722wi>:;50;694?6|,8i96k;4H5;1?M2??2B?>6*>5486=<=#9921=6g;6;29?l2d2900e8>50;9l5g3=831vn?9;:187>5<7s-;h>7h:;I6:6>N30>1C8?5+14791>o3k3:17d;?:188k4d22900qo<>a;290?6=8r.:o?4i5:J7=7=O<1=0D9<4$076>0?>3-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7E:=;%361?3>12.:<54>;h65>5<>i6j<0;66sm20:94?2=83:p(3;6F;2:&210<2101/==651:k72?6=3`>h6=44i4294?=h9k?1<75rb334>5<3290;w)?l2;d6?M2>:2B?4:5G439'503==030(<>7:09j03<722c?o7>5;h73>5<6=44}c022?6=<3:1c38e1>N31;1C8594H508 4322<327)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`150<72=0;6=u+1b09b0=O<080D968;I61?!72=3?256*>0982?l212900e9m50;9j15<722e:n84?::a642=83>1<7>t$0a1>c3<@=397E:77:J76>"6=<0>545+11:95>o3>3:17d:l:188m06=831d=o;50;9~f774290?6=4?{%3`6?`23A>2>6F;869K07=#94=n50z&2g76876;%33>o283:17b?m5;29?xd5810;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9<:4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`140<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd58=0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9<>4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`144<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5890;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:l4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`12=<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5>>0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:;4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`121<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd5>:0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th9:?4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f665290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm31394?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8<=4?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g72B?5?5G4958 46?281b8;4?::k73?6=3`>h6=44i4294?=h9k?1<75rb3dg>5<2290;w)?l2;d5?M2>:2B?4:5+11:95>o3>3:17d:8:188m1e=831b9=4?::m2f0<722wi>km50;794?6|,8i96k64H5;1?M2??2.:<54:;h65>5<>o6j=0;66a>b483>>{e:oo1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`1b4<72:0;6=u+1b090<7<@=397E:77:k7=?6=3`;?n7>5;n3ba?6=3th9j=4?:283>5}#9j8184?4H5;1?M2??2c?57>5;h37f?6=3f;ji7>5;|`1a2<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c387=4=O<080D968;h6:>5<i6=44o0cf>5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj;on6=4<:183!7d:3>2=6F;939K0=15<3290;w)?l2;362>N31;1C8594i5;94?=n=;0;66g>bc83>>i6il0;66sm2df94?5=83:p(:2B?4:5f4883>>o6ad83>>{e:l;1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd5mj0;6>4?:1y'5f4=<0;0D97=;I6;3>o313:17d?;b;29?j7fm3:17pl=dg83>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f7cf29086=4?{%3`6?2>92B?5?5G4958m1?=831b=9l50;9l5dc=831vn?jm:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi>h750;194?6|,8i9697>;I6:6>N30>1b844?::k20g<722e:mh4?::a6a?=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`053<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=>5;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f677290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm31d94?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th85}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g75;n3a1?6=3th9m?4?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm28a94?2=83:p(3;6*>0982?l212900e9m50;9j15<722e:n84?::a61<7>t$0a1>c3<@=397E:77:&24=<63`>=6=44i5a94?=n=90;66a>b483>>{e;::1<7=50;2x 4e52=3:7E:62:J7<2=n<00;66g>4c83>>i6il0;66sm33d94?5=83:p(:2B?4:5f4883>>o6ad83>>{e;;:1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4:l0;6>4?:1y'5f4=<0;0D97=;I6;3>o313:17d?;b;29?j7fm3:17pl<1g83>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f64d29086=4?{%3`6?2>92B?5?5G4958m1?=831b=9l50;9l5dc=831vn>?k:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi??l50;194?6|,8i9697>;I6:6>N30>1b844?::k20g<722e:mh4?::a74e=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`06d<72:0;6=u+1b090<7<@=397E:77:k7=?6=3`;?n7>5;n3ba?6=3th8=o4?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj:;26=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;821<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4;l0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th8?i4?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`07g<72=0;6=u+1b09b0=O<080D968;%33>o283:17b?m5;29?xd4;h0;694?:1y'5f4=n<1C84<4H5:4?!7703;0e9850;9j0f<722c><7>5;n3a1?6=3th8?44?:583>5}#9j81j85G4808L1>03-;;47?4i5494?=n1<729q/=n<5f49K0<4<@=2<7)??8;38m10=831b8n4?::k64?6=3f;i97>5;|`003<72<0;6=u+1b09b==O<080D968;%33>o283:17d?m4;29?j7e=3:17pl=c183>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn?lj:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi>oj50;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th9nn4?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj;kh6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e:hh1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd5ih0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g7<6=?1C84<4H5:4?l2>2900e8<50;9j5gd=831d=lk50;9~f6b5290>6=4?{%3`6?`13A>2>6F;869'55>=92c?:7>5;h64>5<>i6j<0;66sm3e294?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8h<4?:483>5}#9j81j55G4808L1>03-;;47;4i5494?=n<>0;66g:0;29?l7e<3:17b?m5;29?xd4l:0;684?:1y'5f4=n?1C84<4H5:4?!7703;0e9850;9j02<722c?o7>5;h73>5<6=44}c1g0?6==3:1c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>j::186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;m<1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0`2<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=k8;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c><@=397E:77:&24=<23`>=6=44i5594?=n=90;66g>b583>>i6j<0;66sm3d194?3=83:p(3;6*>0982?l212900e9950;9j0f<722c><7>5;n3a1?6=3th8i84?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c3:197>50z&2g72B?5?5G4958 46?281b8;4?::k73?6=3`>h6=44i4294?=h9k?1<75rb2g4>5<2290;w)?l2;d5?M2>:2B?4:5+11:95>o3>3:17d:8:188m1e=831b9=4?::m2f0<722wi?h650;794?6|,8i96k84H5;1?M2??2.:<54>;h65>5<>o283:17b?m5;29?xd4m00;684?:1y'5f4=n?1C84<4H5:4?!7703;0e9850;9j02<722c?o7>5;h73>5<6=44}c1fe?6==3:1c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>m9:186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;j?1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0g6<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=l2;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f99K0<4<@=2<7)??8;78m10=831b8:4?::k64?6=3`;i87>5;n3a1?6=3th8o<4?:483>5}#9j81j;5G4808L1>03-;;47?4i5494?=n<>0;66g;c;29?l372900c50z&2g75<6=44}c1a7?6=;3:1c387=4=O<080D968;h6:>5<i6=44o0cf>5<7>53;294~"6k;0?5<5G4808L1>03`>26=44i06a>5<c38213=O<080D968;h6:>5<5<4290;w)?l2;6:5>N31;1C8594i5;94?=n9=h1<75`1`g94?=zj:k<6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;k:1<7=50;2x 4e52=3:7E:62:J7<2=n<00;66g>4c83>>i6il0;66sm3`794?2=83:p(:2B?4:5f4883>>o2:3:17d?mb;29?j7fm3:17pl6<729q/=n<54838L1?53A>3;6g;9;29?l73j3:17b?ne;29?xd4i:0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g7<3181C84<4H5:4?l2>2900e<:m:188k4gb2900qo=n1;290?6=8r.:o?4>579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn>ok:180>5<7s-;h>7:61:J7=7=O<1=0e9750;9j51d=831d=lk50;9~f6?a290?6=4?{%3`6?72>2B?5?5G4958m1?=831b9?4?::k2fg<722e:mh4?::a7de=8391<7>t$0a1>1?63A>2>6F;869j0<<722c:8o4?::m2e`<722wi?4j50;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th8mo4?:283>5}#9j8184?4H5;1?M2??2c?57>5;h37f?6=3f;ji7>5;|`0=g<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c38e2>N31;1C8594$02;>4=n50;9l5g3=831vn>hm:186>5<7s-;h>7h9;I6:6>N30>1/==651:k72?6=3`><6=44i5a94?=n=90;66a>b483>>{e;ok1<7;50;2x 4e52o<0D97=;I6;3>"6810:7d:9:188m11=831b8n4?::k64?6=3f;i97>5;|`0b<<72<0;6=u+1b09b3=O<080D968;%33>o3k3:17d;?:188k4d22900qo=i8;291?6=8r.:o?4i6:J7=7=O<1=0(<>7:09j03<722c?;7>5;h6`>5<t$0a1>c0<@=397E:77:&24=<63`>=6=44i5594?=n0<729q/=n<5f79K0<4<@=2<7)??8;38m10=831b8:4?::k7g?6=3`?;6=44o0`6>5<55;294~"6k;0m:6F;939K0=1<,8:36<5f4783>>o3?3:17d:l:188m06=831d=o;50;9~f637290?6=4?{%3`6?72>2B?5?5G4958m1?=831b9?4?::k2fg<722e:mh4?::a707=83>1<7>t$0a1>4313A>2>6F;869j0<<722c>>7>5;h3af?6=3f;ji7>5;|`017<72=0;6=u+1b09500<@=397E:77:k7=?6=3`?96=44i0`a>5<c38213=O<080D968;h6:>5<5<3290;w)?l2;362>N31;1C8594i5;94?=n=;0;66g>bc83>>i6il0;66sm37194?2=83:p(:2B?4:5f4883>>o2:3:17d?mb;29?j7fm3:17pl<6583>1<729q/=n<51448L1?53A>3;6g;9;29?l352900e579K0<4<@=2<7d:6:188m04=831b=ol50;9l5dc=831vn>89:187>5<7s-;h>7?:6:J7=7=O<1=0e9750;9j17<722c:no4?::m2e`<722wi?;950;694?6|,8i96<;9;I6:6>N30>1b844?::k66?6=3`;in7>5;n3ba?6=3th8;44?:583>5}#9j81=884H5;1?M2??2c?57>5;h71>5<5<54;294~"6k;0:9;5G4808L1>03`>26=44i4094?=n9kh1<75`1`g94?=zj:=i6=4;:183!7d:3;>:6F;939K0=1>o6jk0;66a>ad83>>{e;>i1<7:50;2x 4e528?=7E:62:J7<2=n<00;66g:2;29?l7ej3:17b?ne;29?xd4?m0;694?:1y'5f4=9<<0D97=;I6;3>o313:17d;=:188m4de2900c50z&2g75;n3a1?6=3th84i4?:583>5}#9j81j:5G4808L1>03-;;47;4i5494?=n=90;66g>b583>>i6j<0;66sm39:94?3=83:p(3;6*>0986?l212900e9950;9j15<722c:n94?::m2f0<722wi8>h50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:o1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a06b=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42a94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>l50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:k1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a06>=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42594?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>850;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:?1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a062=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm42194?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8><50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<:;1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a066=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43d94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?j50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;i1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a07d=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43c94?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?750;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;21<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a071=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43494?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8?;50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;>1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a013=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm45694?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi89=50;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<=81<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a017=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm45294?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi8>750;794?6|,8i96k74H5;1?M2??2.:<54>;h65>5<>o6j?0;66a>b483>>{e<;o1<7;50;2x 4e52o30D97=;I6;3>"6810:7d:9:188m11=831b9=4?::k2f3<722e:n84?::a075=83?1<7>t$0a1>c?<@=397E:77:&24=<63`>=6=44i5594?=n=90;66g>b783>>i6j<0;66sm43094?3=83:p(3;6*>0982?l212900e9950;9j15<722c:n;4?::m2f0<722wi85?50;194?6|,8i96<;?;I6:6>N30>1/==65119jbf<722cmh7>5;n3ba?6=3th?;>4?:283>5}#9j81=8>4H5;1?M2??2.:<54>0:keg?6=3`lo6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?8;hd`>5<<6F;939K0=1<,8:36<94iga94?=nnm0;66a>ad83>>{e9m81<7=50;2x 4e528?;7E:62:J7<2=#9921=:5ffb83>>oal3:17b?ne;29?xd6l80;6>4?:1y'5f4=9<:0D97=;I6;3>"6810:;6gic;29?l`c2900c50z&2g7<6=91C84<4H5:4?!7703;<7dhl:188mcb=831d=lk50;9~f4ea29086=4?{%3`6?7282B?5?5G4958 46?28=0ekm50;9jba<722e:mh4?::a5fc=8391<7>t$0a1>4373A>2>6F;869'55>=9>1bjn4?::ke`?6=3f;ji7>5;|`2ga<72:0;6=u+1b09506<@=397E:77:&24=<6?2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>41>i6il0;66sm1bc94?5=83:p(:2B?4:5+11:952=nnj0;66gid;29?j7fm3:17pl>c883>6<729q/=n<51428L1?53A>3;6*>09823>oak3:17dhk:188k4gb2900qo?l8;297?6=8r.:o?4>519K0<4<@=2<7)??8;34?l`d2900ekj50;9l5dc=831vn5<7s-;h>7?:0:J7=7=O<1=0(<>7:058mce=831bji4?::m2e`<722wi=n850;194?6|,8i96<;?;I6:6>N30>1/==65169jbf<722cmh7>5;n3ba?6=3th:o84?:283>5}#9j81=8>4H5;1?M2??2.:<54>7:keg?6=3`lo6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?8;hd`>5<<6F;939K0=1<,8:36<94iga94?=nnm0;66a>ad83>>{e:h:1<7:50;2x 4e528?:7E:62:J7<2=#9921j<5ffb83>>oal3:17dhj:188k4gb2900qo<;a;290?6=8r.:o?4>509K0<4<@=2<7)??8;3e?l`d2900ekj50;9jb`<722e:mh4?::a5`>=83>1<7>t$0a1>4363A>2>6F;869'55>=9o1bjn4?::ke`?6=3`ln6=44o0cf>5<55;294~"6k;0:9?5G4808L1>03-;;47?>;hd`>5<>oan3:17b?ne;29?xd5"6810:56gic;29?l`c2900ekk50;9jbc<722e:mh4?::a5`g=83?1<7>t$0a1>4353A>2>6F;869'55>=901bjn4?::ke`?6=3`ln6=44igd94?=h9ho1<75rb3c7>5<2290;w)?l2;366>N31;1C8594$02;>4e>oam3:17dhi:188k4gb2900qo=7b;297?6=8r.:o?4>519K0<4<@=2<7)??8;60?l`d2900ekj50;9l5dc=831vn?77:187>5<7s-;h>7?:1:J7=7=O<1=0(<>7:3a8mce=831bji4?::kea?6=3f;ji7>5;|`00=<72<0;6=u+1b09504<@=397E:77:&24=<6j2cmo7>5;hdg>5<>i6il0;66sm35;94?5=83:p(:2B?4:5+11:95d=nnj0;66gid;29?j7fm3:17pl=4d83>6<729q/=n<51428L1?53A>3;6*>09823>oak3:17dhk:188k4gb2900qo?jc;297?6=8r.:o?4>519K0<4<@=2<7)??8;34?l`d2900ekj50;9l5dc=831vn?;?:187>5<7s-;h>7?:1:J7=7=O<1=0(<>7:0d8mce=831bji4?::kea?6=3f;ji7>5;|`2a`<72=0;6=u+1b09507<@=397E:77:&24=<6n2cmo7>5;hdg>5<>6F;939K0=1<,8:36<74iga94?=nnm0;66gie;29?l`a2900c50z&2g7<6=;1C84<4H5:4?!7703;27dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`72f<72=0;6=u+1b09507<@=397E:77:&24=<292cmo7>5;hdg>5<>6F;939K0=1<,8:3655ffb83>>oal3:17dhj:188mc`=831d=lk50;9~f6>029086=4?{%3`6?7282B?5?5G4958 46?28n0ekm50;9jba<722e:mh4?::a727=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`01`<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>4b>i6il0;66sm39494?3=83:p(:2B?4:5+11:95`=nnj0;66gid;29?l`b2900ekh50;9l5dc=831vn>9?:186>5<7s-;h>7?:2:J7=7=O<1=0(<>7:0g8mce=831bji4?::kea?6=3`lm6=44o0cf>5<h7>55;294~"6k;0:9?5G4808L1>03-;;47?j;hd`>5<>oan3:17b?ne;29?xd5k00;684?:1y'5f4=9<80D97=;I6;3>"6810:i6gic;29?l`c2900ekk50;9jbc<722e:mh4?::a6g0=83?1<7>t$0a1>4353A>2>6F;869'55>=9l1bjn4?::ke`?6=3`ln6=44igd94?=h9ho1<75rb2:6>5<2290;w)?l2;366>N31;1C8594$02;>4c>oam3:17dhi:188k4gb2900qo=9f;291?6=8r.:o?4>539K0<4<@=2<7)??8;3f?l`d2900ekj50;9jb`<722cmj7>5;n3ba?6=3th89n4?:483>5}#9j81=8<4H5;1?M2??2.:<54>e:keg?6=3`lo6=44igg94?=nno0;66a>ad83>>{e:j21<7;50;2x 4e528?97E:62:J7<2=#9921=h5ffb83>>oal3:17dhj:188mc`=831d=lk50;9~f7d2290>6=4?{%3`6?72:2B?5?5G4958 46?28o0ekm50;9jba<722cmi7>5;hde>5<c38217=O<080D968;%330<729q/=n<51408L1?53A>3;6*>0982a>oak3:17dhk:188mcc=831bjk4?::m2e`<722wi?8l50;794?6|,8i96<;=;I6:6>N30>1/==651d9jbf<722cmh7>5;hdf>5<>6F;939K0=1<,8:3650z&2g7<6=;1C84<4H5:4?!7703;n7dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`1gc<72=0;6=u+1b09507<@=397E:77:&24=5;hdg>5<>6F;939K0=1<,8:36<84iga94?=nnm0;66gie;29?l`a2900c50z&2g7<6=;1C84<4H5:4?!7703;=7dhl:188mcb=831bjh4?::keb?6=3f;ji7>5;|`0<6<72<0;6=u+1b09504<@=397E:77:&24=<6m2cmo7>5;hdg>5<>i6il0;66sm37f94?3=83:p(:2B?4:5+11:95`=nnj0;66gid;29?l`b2900ekh50;9l5dc=831vn>;n:186>5<7s-;h>7?:2:J7=7=O<1=0(<>7:0g8mce=831bji4?::kea?6=3`lm6=44o0cf>5<55;294~"6k;0:9?5G4808L1>03-;;47?j;hd`>5<>oan3:17b?ne;29?xd5j:0;684?:1y'5f4=9<80D97=;I6;3>"6810:i6gic;29?l`c2900ekk50;9jbc<722e:mh4?::a603=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`2b6<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38214=O<080D968;%33ad83>>{e9o<1<7:50;2x 4e528?:7E:62:J7<2=#9921=55ffb83>>oal3:17dhj:188k4gb2900qo=60;297?6=8r.:o?4>519K0<4<@=2<7)??8;58mce=831bji4?::m2e`<722wi>h650;094?6|,8i96<:i;I6:6>N30>1/==657:keg?6=3f;ji7>5;|`1a3<72;0;6=u+1b0951`<@=397E:77:&24=<03`lh6=44o0cf>5<52;294~"6k;0:8k5G4808L1>03-;;4794iga94?=h9ho1<75rb3g1>5<5290;w)?l2;37b>N31;1C8594$02;>2=nnj0;66a>ad83>>{e:l:1<7<50;2x 4e528>m7E:62:J7<2=#9921;6gic;29?j7fm3:17pl=dd83>7<729q/=n<515d8L1?53A>3;6*>0984?l`d2900c7>50z&2g7<65<7s-;h>7?;f:J7=7=O<1=0(<>7:69jbf<722e:mh4?::a7dg=8381<7>t$0a1>42a3A>2>6F;869'55>=?2cmo7>5;n3ba?6=3th8m54?:383>5}#9j81=9h4H5;1?M2??2.:<548;hd`>5<c3820c=O<080D968;%33>i6il0;66sm3`094?4=83:p(:2B?4:5+11:93>oak3:17b?ne;29?xd4i90;6?4?:1y'5f4=9=l0D97=;I6;3>"6810<7dhl:188k4gb2900qo=6e;296?6=8r.:o?4>4g9K0<4<@=2<7)??8;58mce=831d=lk50;9~f6?d29096=4?{%3`6?73n2B?5?5G4958 46?2>1bjn4?::m2e`<722wi>k<50;094?6|,8i96<:i;I6:6>N30>1/==657:keg?6=3f;ji7>5;|`0f1<72;0;6=u+1b0951`<@=397E:77:&24=<03`lh6=44o0cf>5<53;294~"6k;0:9=5G4808L1>03-;;47?k;hd`>5<<6F;939K0=1<,8:36ad83>>{e;;91<7=50;2x 4e528?;7E:62:J7<2=#9921=i5ffb83>>oal3:17b?ne;29?xd4:=0;6>4?:1y'5f4=9<:0D97=;I6;3>"6810:h6gic;29?l`c2900c50z&2g7<6=91C84<4H5:4?!7703;o7dhl:188mcb=831d=lk50;9~f64129086=4?{%3`6?7282B?5?5G4958 46?28n0ekm50;9jba<722e:mh4?::a771=8391<7>t$0a1>4373A>2>6F;869'55>=9m1bjn4?::ke`?6=3f;ji7>5;|`06=<72:0;6=u+1b09506<@=397E:77:&24=<6l2cmo7>5;hdg>5<c38215=O<080D968;%335<4290;w)?l2;364>N31;1C8594$02;>2=nnj0;66gid;29?j7fm3:17pl<4`83>0<729q/=n<51468L1?53A>3;6*>0987?l`d2900ekj50;9jb`<722cmj7>5;n37g?6=3th9994?:783>5}#9j81=8=4H5;1?M2??2.:<54=0:keg?6=3`lo6=44igg94?=nno0;66a>4b83>>i6il0;66sm1g094?0=83:p(:2B?4:5+11:965=nnj0;66gid;29?l`b2900ekh50;9l51e=831d=lk50;9~f10f290jm7>50zJ7<2=#9j81=o94Z579e~462;8157o513827?d=k3;?6<;5}%37e?4<,8:;6>5+11397>"68;087)??3;18 4632:1/==;53:&243<43-om6k=4$02:>6=#99k1?6*>0c80?!77k390(<>k:29'55c=;2.:5+10097>"69:087)?>4;18 4722:1/=<853:&252<43-;:47=4$03:>6=#98k1?6*>1c80?!76k390(5+13097>"6::087)?=4;18 4422:1/=?853:&262<43-;947=4$00:>6=#9;k1?6*>2c80?!75k390(<k4<;%304?5<,89:6>5+12097>"6;:087)?<4;18 4522:1/=>853:&272<43-;847=4$01:>6=#9:k1?6*>3c80?!74k390(<=k:29'56c=;2.:?k4<;%374?5<,8>:6>5+15097>"6<:087)?;4;18 4222:1/=9853:&202<43-;?47=4$06:>7=#9ki18<5+11597>"6jl097):7c;3a<>"30m0:n55ac183?kc5291e=o75259m5gg=:=1e85k5259m0=`=:=1/j=4i3:&2fc<53`>j6=44i5`94?=n<1k1<75fed83>>o>i3:1(:188m60=83.:n>4<5:l2f7<732c887>5$0`0>63b381?>o4:3:1(?50;&2f6<4=2d:n?4;;:k04?6=,8h86>;4n0`1>0=b2801>h6j;0=76g=e;29 4d42:?0b4<5:l2f75$0`0>6`b382?>o4l3:1(m50;&2f6<4n2d:n?4<;:k0f?6=,8h86>h4n0`1>1=b280b>h6j;0>76g<9;29 4d42:l0b=83.:n>45$0`0>6`b383?>o1i3:1(6=b285f>h6j;0?76g95;29 4d42?h0b49b:l2f7<132c=?7>5$0`0>3db38;?>o193:1(50;&2f6<1j2d:n?4n;:k6b?6=,8h86;l4n0`1>g=b285f>h6j;0h76g:c;29 4d42?h0b49b:l2f7m7>5$0`0>3db3824>=n=10;6)?m3;4a?k7e:3;:76g:7;29 4d42?h0b4:9j11<72-;i?78m;o3a6?7232c5$0`0>3d5<#9k91:o5a1c0952=;1<7*>b285f>h6j;0:465f7183>!7e;3o1n3:1(k1e=o<51c98m3b=83.:n>49b:l2f7<6k21b:44?:%3a7?0e3g;i>7?k;:k6a?6=,8h86;l4n0`1>4c<3`?86=4+1c192g=i9k81=k54i8;94?"6j:0246`>b383?>o>?3:1(02d:n?4=;:k:1?6=,8h86464n0`1>6=b28g=>h6j;0;76ak8;29 4d42m30b4k9:l2f7<532eo97>5$0`0>a?54oe694?"6j:0o56`>b387?>ic;3:1(2=b28g=>h6j;0376alf;29 4d42m30b4k9:l2f75$0`0>a?b38`?>idi3:1(c=b28g=>h6j;0:<65`c783>!7e;3n27c?m2;32?>id=3:1(4k9:l2f7<6<21do?4?:%3a7?b>3g;i>7?:;:mf5?6=,8h86i74n0`1>40<3fo;6=4+1c19`<=i9k81=:54oed94?"6j:0o56`>b382<>=hll0;6)?m3;f:?k7e:3;276akd;29 4d42m30bc:9l`2<72-;i?7j6;o3a6?7c32eho7>5$0`0>a?5<#9k91h45a1c095c=b28ff>h6j;0;76aja;29 4d42lh0b4jb:l2f7<532en47>5$0`0>`d54idf94?=n9j:1<75f49`94?=n0m0;6)?m3;:`?k7e:3:07d6m:18'5g5=0j1e=o<51:9j<<<72-;i?76l;o3a6?4<3`236=4+1c19!7e;32h7c?m2;68?l>1290/=o=58b9m5g4==21b484?:%3a7?>d3g;i>784;h:7>5<#9k914n5a1c093>=n0:0;6)?m3;:`?k7e:3207d6=:18'5g5=0j1e=o<59:9j<4<72-;i?76l;o3a6?g<3`2;6=4+1c19!7e;32h7c?m2;a8?l1c290/=o=58b9m5g4=l21b;n4?:%3a7?>d3g;i>7k4;h5a>5<#9k914n5a1c09b>=n?h0;6)?m3;:`?k7e:3;;76g89;29 4d421i0b3:9j33<72-;i?76l;o3a6?7332c<97>5$0`0>=e5<#9k914n5a1c0953=b28;g>h6j;0:;65f9383>!7e;32h7c?m2;3;?>o>93:1(47c:l2f7<6j21b4h4?:%3a7?>d3g;i>7?l;:k;e?6=,8h865m4n0`1>4b<3`=m6=4+1c19b382b>=n1l0;6)?m3;;g?k7e:3:07d7l:18'5g5=1m1e=o<51:9j=g<72-;i?77k;o3a6?4<3fh36=4+1c19f2=i9k81<65`b783>!7e;3h<7c?m2;38?jd3290/=o=5b69m5g4=:21dn>4?:%3a7?d03g;i>7=4;n`1>5<#9k91n:5a1c090>=hj80;6)?m3;`4?k7e:3?07bl?:18'5g5=j>1e=o<56:9lec<72-;i?7l8;o3a6?1<3fkn6=4+1c19f2=i9k81465`ae83>!7e;3h<7c?m2;;8?jgd290/=o=5b69m5g4=i21dmo4?:%3a7?d03g;i>7l4;nc:>5<#9k91n:5a1c09g>=hi10;6)?m3;`4?k7e:3n07bo8:18'5g5=j>1e=o<5e:9le3<72-;i?7l8;o3a6?`<3fk>6=4+1c19f2=i9k81==54o`694?"6j:0i;6`>b3825>=hi:0;6)?m3;`4?k7e:3;976an2;29 4d42k=0b50;&2f65:9lfc<72-;i?7l8;o3a6?7132eii7>5$0`0>g15<#9k91n:5a1c095==b28a3>h6j;0:565`bc83>!7e;3h<7c?m2;3b?>iei3:1(1e=o<51b98kg3=83.:n>4m7:l2f7<6l21dml4?:%3a7?d03g;i>7?j;:m:b?6=,8h86o94n0`1>4`<3fo<6=4+1c19a3=i9k81<65`e483>!7e;3o=7c?m2;38?jc3290/=o=5e79m5g4=:21di>4?:%3a7?c13g;i>7=4;|q6=6<72?qU94=4=3c3>cb<5;3n6km4=3c7>c`<5;336kk4=3;4>ce57by]0d?X2<01U8l94^5c5?[2f=2T?m95Q4`18Z1g53W>j=6P;a19]0<`X2i91U94h4^4;f?[3>82T>4k5Q59g8Z0>c3W?3o6P:8c9]1=g4:2:?1a4<2:279hk4:2:?1`a<2:279ho4:2:?1`<<2:278=54>bc9>6f6==;16>oh5539>6gc==;16>oj5539>6ge==;16>lj5539>6de==;16>ll5539>6dg==;16>l75539>7d?==;16?l95539>7d3==;16?l=5539>7d7==;16?4h5539>7706==;16?8?5539>704==;16?8=5539>702==;16?;=5539>732==;16?;;5539>730==;16?;95539>72?==;16?:o5539>72d==;16?:m5539>72b==;168;o59`9>03g=9j:0198n:5:a?821i32o70:9a;:a?821i32270:9a;:;?821i32<70:9a;:5?821i32>70:9a;:7?821i32870:9a;:1?821i32:70:9a;:3?821i3=n70:9a;5g?821i3=h70:9a;5a?821i3=j70:9a;5:?821i3=370:9a;54?821i3==70:9a;56?821i33?70:9a;;0?821i33970:9a;;2?821i33;70:9a;:e?821i32n70:9a;:b?821i3=m70:9a;57?821i33n70:9a;;`?821i33i7p}<8983>7}Y<0h01>67:0`6?xu21<0;6:uQ5878910b2=i0199l:0`7?820j3;i863;7e82f1=:4d33ty9m?4?:3y]16b<5;k96ce<5:3:6km4}r7;3?6=>>qU9594=3ag>10<5==:6984=553>10<5=10<5==36984=554>10<5;>=6984=366>10<5;>?6984=360>10<5;>96984=362>10<5;>;6984=31e>10<5;9n6984=3:f>10<5;2o6984=3:`>10<5;2i6984=3:b>10<5;226984=3:;>10<5;2<6984=3:5>10<5;=h6984=35a>10<5;=j6984=35:>10<5;=36984=354>10<5;==6984=356>10<5;=?6984=32;>10<5;:<6984=325>10<5;:>6984=327>10<5;:86984=321>10<5;::6984=323>10<5::?6984=220>10<5::96984=222>10<5::;6984=3de>10<5;lo6984=3d`>10<5;ln6984=235>10<5:;>6984=237>10<5:;86984=231>10<5:;:6984=233>10<5::m6984=22f>10<5;k:6984=3c1>10<5;3h6984=3;a>10<5=9m6984=51f>10<5=9o6984=51`>10<5=9i6984=51b>10<5=936984=514>10<5=9=6984=516>10<5=9?6984=510>10<5=996984=512>10<5=9;6984=50e>10<5=8o6984=50`>10<5=8i6984=50b>10<5=826984=50;>10<5=8<6984=505>10<5=8>6984=507>10<5=>>6984=567>10<5=>86984=561>10<5=>:6984=563>10<5=926984=50f>10<5=886984=501>10<5=8>5239f95g355dy]110<5==m6984=55a>10<5==o6984=55f>10<5==j6984=5:6>10<5=2?6984=0g7>10<58o86984=0g1>10<58o:6984=0g3>10<58nm6984=0ff>10<58no6984=0f`>10<5;8h6984=30a>10<5;8j6984=30:>10<5;836984=304>10<5;8=6984=306>10<5;8?6984=33b>10<5;;26984=33;>10<5;;<6984=335>10<5;;>6984=337>10<5;;86984=331>10<5;10<5;<36984=344>10<5;<=6984=346>10<5;10<5;<96984=21f>10<5:9o6984=21`>10<5:9i6984=21b>10<5:926984=21;>10<5:>=6984=2f1>10<5:n;6984=2f2>10<5:n86984=2f7>10<5:n>6984=2f5>10<5:n<6984=2f;>10<5:o?6984=2g1>10<5:o86984=2g6>10<5:o=6984=2g4>10<5:o36984=2g:>10<5:oj6984=2a5>10<5:i>6984=2a0>10<5:i96984=2a7>10<5:i;6984=2`e>10<5:i:6984=2`f>10<5:lh6984=2da>10<5:lj6984=2d:>10<5:l36984=2d4>10<5:l=6984=2d6>10<5:l?6984=2:`>10<5:2o6984=2:;>10<5=:55235495g3:m7>52z\655=:<:l1=o;4}r62=?6=:rT>:47>52z\64`=:<:n1=o;4}r623?6=:rT>::7>52z\64f=:<:h1=o;4}r621?6=:rT>:?7>52z\64<=:<:21=o;4}r626?6=:rT><55242595g3:=7>52z\642=:<:<1=o;4}r624?6=:rT><;5242795g3;j7>52z\640=:<:>1=o;4}r63a?6=:rT><95242195g3;h7>52z\646=:<:81=o;4}r63g?6=:rT>;n7>52z\644=:<::1=o;4}r63e?6=:rT><=5243d95g3;47>52z\7b`=:<;n1=o;4}r633?6=:rT?ji5243a95g3;:7>52z\7bf=:<;h1=o;4}r631?6=:rT?jo5243c95g3;87>52z\7bd=:<;31=o;4}r637?6=:rT?j45243:95g3;>7>52z\7b==:<;=1=o;4}r635?6=:rT?j:5243495g3;<7>52z\7b3=:<;?1=o;4}r1eb?6=:rT?j85243695g39=7>52z\653=:<=?1=o;4}r614?6=:rT>=85245695g3:j7>52z\651=:<=91=o;4}r62a?6=:rT>=>5245095g3:h7>52z\657=:<=;1=o;4}r62g?6=:rT>=<5245295g3:n7>52z\64d=:<:31=o;4}r620?6=:rT?jk5243g95g3;57>52z\7b1=:<;91=o;4}r1ea?6=:rT?j>5243095g3nn7>52z\7g2=:5<5sW>h:63;6`85g>{t7}Y0198n:7:8yv2b>3:1>vP;c29>03g=>>1v9k::181[2d:27?:l496:p0`5=838pR9m?;<65e?023ty?i?4?:3y]0g`<5=;3>h02;6s|4ed94?4|V=hh70:9a;41?xu3ll0;6?uQ4c`8910f2?;0q~:kd;296~X3jh168;o5619~w1bd2909wS:m9:?72d<2n2wx8il50;0xZ1d?34>=m7;k;|q7`d<72;qU8o94=54b>0eo47>52z\7f0=:5<5sW>i863;6`86e>{t7}YvP;b09>03g==11v9j<:181[2e827?:l4:7:p0a4=838pR9oi;<65e?313ty?h<4?:3y]0dc<5=;3>h034>=m78i;|q7aa<72;qU8n64=54b>3cno7>52z\7g4=:5<5sW>i:63;6`85=>{t7}Y;3?00:n85231690f=:;9918n5231090f=:;9;18n5231290f=::ol18n522gf90f=::oi1=o:4=3df>1e<5:;=69m4=236>1e<5:;?69m4=230>1e<5:;969m4=232>1e<5:;;69m4=22e>1e<5::n69m4=3c2>4d3348j>7?m4:?1=f<3k2795o4;c:p6fb=83>p1?mk:0`6?84>m3lm70:9c;d`?84>?3lo7p};7b83>7}:=i7>55z?72`<6j<16?5l5fb9>7=`=nj16?5o5fb9>71g=nl1v99m:185820k3?;70:8b;3a1>;450;1x91162<:0199?:0`6?821n3><7p};7083>7}:<>;1=o;4=550>ce53z?73c<2827?;i4;7:?73`<6j<1v99i:181820n3;i963;808eg>{t<>k1<706<5==j65519>03`=9k?0199<:gf8yv20l3:1?v3;7e82f0=:<>o19=524939ba=z{==96=4;{<64=?7e<27?;54>b59>021=9k>0199<:0cf?xu3?<0;6?;t=55;>4d2348?:7:l;<071?2d348?87:l;<077?2d348?>7:l;<075?2d348?<7:l;<00b?2d3488i7:l;<0;a?2d3483h7:l;<0;g?2d3483n7:l;<0;e?2d348357:l;<0;70:;3;l0:n;5242f95g0<5=9h627??l4>b79>06>=9k<019=8:0`5?824>3;i:63;3482f3=:<:>1=o84=510>4d134>8>7?m6:?774<6j?168>>51c48914a28h=70:=d;3a2>;3:j0:n;5243`95g0<5=8j627?>54>b79>071=9k<019<9:0`5?825=3;i:63;2582f3=:<=?1=o84=567>4d134>??7?m6:?707<6j?1689?51c48912728h=70:<9;3a2>;3:l0:n;5243195g0<5=896=m7?l1:p0=6=839p196::0`7?82?<3;i863;8082e`=z{=286=4=cz?7<0<6j<16?>k54b9>76b=m54b9>76d=o54b9>76?=654b9>7a4=54b9>7a7=9k>01>j<:5a896b32=i01>j::5a896b12=i01>j8:5a896b?2=i01>k;:5a896c528h?70=j3;6`?85b=3>h70=j6;6`?85b?3>h70=j8;6`?85b13>h70=ja;6`?85d>3>h70=l5;6`?85d;3>h70=l2;6`?85d<3>h70=l0;6`?85en3;i863;4jl0:n9523ga90f=:;oh18n523gc90f=:;o318n523g:90f=:;o=18n523g490f=:;o?18n523g690f=z{=296=4=5z?7<1<6j<16=h:54b9>5`5=5`7=54b9>5a`=5ab=67e=?l54b9>67g=?754b9>67>=?954b9>670=?;54b9>672=64?=<654b9>641=<854b9>643=<:54b9>645=<<54b9>63g=;754b9>63>=;954b9>630=;;54b9>632=;=54b9>634=;6m?0mh63>e98eg>;6mh0mj6s|1e`94?3|58o?65`0=9ho0q~?ka;291~;6m:0:n8523949bf=:;>:1jn5234f9bf=:;;21ji5rs0g4>5<5s4;n>7;?;<3f70=76;df?85083ln70=:d;df?855?3lo7p}>e883>3}:9l;19=521dc95dc<58oh6kj4=0gf>ce<58l;6kk4=0d1>c`55z?2a4<6j<16?5;5fb9>73`=nj16?8m5fb9>770=nm1v{t9m=1<7;t=0g3>4d2349397hj;<15b?`b349>o7hj;<111?`c3ty:ii4?:3y>5a`==916=hk51`g8yv7c>3:19v3>dg82f0=:;1>1jn5237g9bf=:;b49>7=5=nj16?;j5fb9>70g=nj16??<5fe9~w4`22909w0?kc;73?87a>3;ji6s|1e194?3|58nh6985519>6=c=9k?01?:7:gf8972f2oi01?:l:gd8yv44l3:1?v3=4782f0=::jk1jn522c59bf=z{;><6=4={<071?37348?47?ne:p66e=839p1?:::0`6?84d13lo70b49>6f?=no16>o85fg9~w72e290=w0<;3;73?843k3;ji63=4d8e`>;5=90mo63=538ea>;5==0mj6s|22c94?5|5;>869<5519>61c=9ho0q~<<9;297~;5<;0:n8522b:9bc=::k?1jk5rs36e>5<5s48?=7;?;<064?7fm2wx>>650;1x972628h>707}::=:19=5224095dc53z?105<6j<16>n95fg9>6g2=no1v?;<:181844n3?;70<:5;3ba>{t::<1<7=t=31e>4d2348h:7hk;<0a7?`c3ty99:4?:3y>66c==916>8651`g8yv44=3:1?v3=3d82f0=::j<1jk522c19bc=z{;=86=4={<0;a?373487p}=8583>1}::1n1=o;4=36;>ce<5;>j6kj4=36`>cc52z?1b49~w7>42908w0<7c;3a1>;5{t:>:1<706<5;=265l51c78972d2oi0q~<9f;296~;50h0><63=7982f0=z{;2:6=4:{<0;e?7e=2798h4ic:?115;k50;0x97>>2<:01?98:0`6?xu5090;69u229;95g3<5;?;6kk4=371>ce<5;??6kj4}r05`?6=:r79454:0:?133<6j<1v?9i:18084?03;i963=538e`>;5==0mo6s|27a94?4|5;2<68>4=356>4d23ty9;h4?:2y>6=1=9k?01?;::ga8973?2on0q~<9b;296~;50?0><63=7582f0=z{;=o6=4={<0;2?7e=279954ic:p647=838p1?7p}=1183>7}::;h19=5220;95g37>54z?16g<6j<16=h85fb9>5`>=nm16=ho5fd9~w76a2909w0<=a;73?84603;i96s|23394?5|5;8j6?75519>641=9k?0q~<=0;296~;5:00:n8521dc9bf=z{;:o6=4={<01:4>b49>5`c=nl16=k>5fb9>5c4=nm1v?>m:181845>3?;70<>4;3a1>{t:8n1<7=t=305>4d234;m<7hk;<3e6?`d3ty9673==916><=51c78yv46k3:1?v3=2482f0=:9o91jn521g49ba=z{;:26=4={<010?37348:>7?m5:p64d=838p1?<;:0`6?87a>3lh7p}=6083>7}::>i19=5227c95g352z?13g<28279:44>b49~w73a2909w0<8a;73?84103;i96s|24g94?4|5;=268>4=344>4d23ty99i4?:3y>62>==916>;851c78yv42k3:1>v3=76864>;5><0:n85rs37a>5<5s48<:7;?;<050?7e=2wx>8o50;0x97122<:01?8<:0`6?xu5=00;6?u2266915=::?81=o;4}r3eb?6=:r79=l4:0:?14=<6j<1v{t9on1<706<5;:=6<95519>653=9k?0q~?ib;296~;59?0><63=0582f0=z{8lj6=4={<021?37348;?7?m5:p5c?=838p1??;:428976528h>7p}>f983>7}::8919=5221395g352z?157<28279<=4>b49~w66c290>w03;i963>c28eg>;5j>0mh63;6`874>{t:;n1<706<58i86=85519>5f2=9ho0q~<=f;296~;58<0><63>c482e`=z{;9;6=4={<030?3734;h:7?ne:p667=838p1?><:42894e028kn7p}=3383>7}::9819=521b:95dc52z?144<2827:o44>ad9~w7532909w04=2d`>4d234;hn7hl;<65e?513ty94k4?:3y>63?==916=nl51`g8yv4>83:1>v3=69864>;6kj0:mh5rs3;2>5<5s48=;7;?;<3``?7fm2wx>4<50;0x97012<:01{t:0<1<706<58n96>;:55896642==01>>=:55896662==01>>?:55897`a2==01?hk:55897`d2==01?hj:55896712==01>?::55896732==01>?<:55896752==01>?>:55896772==01>>i:558966b2==0198l:gg897?028kn70b49>740==916>no5fe9>6c4=nj1v?j8:181857;3?;70{t:ok1<7:t=220>4d2349:97;?;<0`=?`d348n47hl;|q1`3<72;q6?=<5519>6``=9ho0q~6=4={<135?37348ni7?ne:p6c>=83>p1>>>:0`6?856;3?;707}:;9:19=522df95dc54z?045<6j<16?<<5519>6f>=nl16>h<5fb9~w7b42909w06cb==916>ho51`g8yv4a<3:18v3=fe82f0=:;9l19=522b49bf=::mi1jn5rs3f3>5<5s48mo7;?;<0f=?7fm2wx>k=50;6x97`d28h>70=?e;73?84d>3ln70b49>746==916>n95fd9>6ac=nj1v?k8:18184a93>270{t:o81<742e348m>7?ne:p6`3=839p1?h?:5;897c02=301?k::0cf?xu5m10;6>u22g2951d<5;o<6h=50;1x97ca2=301?k::5;897c428kn7p}=e783>6}::ll1=9l4=3g6>4de348n:7?ne:p6`7=839p1?kj:5;897c42=301?k>:0cf?xu5m=0;6>u22dg951d<5;o86ih50;1x97cc2=301?k>:5;897ba28kn7p}=e383>6}::ln1=9l4=3g2>4de348n>7?ne:p6ab=839p1?kl:5;897ba2=301?jk:0cf?xu5m90;6>u22da951d<5;nm6il50;1x97ce2=301?jk:5;897be28kn7p}=dd83>6}::lh1=9l4=3fg>4de348oi7?ne:p6a?=839p1?kn:5;897be2=301?j6:0cf?xu5lj0;6>u22dc951d<5;ni6io50;1x97c>28>i70;5lh0:mh5rs22`>5<2s49:97?m5:?2g14id:?1f3?;:0`6?87d=3lh70?l4;dg?84e>3ln70:9a;1g?xu48h0;68u230195g3<58i=6km4=0a6>cb<5;h>6km4=54b>6e55z?057<6j<16=n95fb9>5f0=nm16>o;5fd9>03g=;k1v>>7:18685693;i963>c98eg>;6k>0mh63=b58eg>;3>h08m6s|31594?3|5:;;6=m7=6;|q043<725<4s48j=7;?;<0b6?37348j87?ne:p6d7=838p1?o>:0`6?84f<3lh7p}=9e83>7}::0i19=5228g95dc56z?1=f<6j<16>l>5fd9>6l:5fd9>6<>=nj16>495fg9~w7?a2909w0<6b;73?84f83;ji6s|28;94?0|5;3i6=4?:3y>766=<016??>51`g8yv5513:1>v3<31820g=:;;31=lk4}r171?6=:r78?=4>ad9>76c==91v>?i:180855n3>270==0;6:?856n3;ji6s|33:94?5|5:8m6<:m;<114?7ej278>54>ad9~w6232909w0==f;3ba>;4;m0><6s|3d294?3|5:8;68<4=2g:>4d2349mn7;?;<16`?`c349947hl;|q05`<72:q6??k5489>74`=<016?4gb3ty88>4?:3y>77c=9ho01>=l:428yv5cn3:19v3<1g866>;4m10:n8523gc915=:;349:i7:6;<12`?7fm2wx??850;1x964c28>i70=>e;3af>;4:?0:mh5rs261>5<5s499h7?ne:?07g<282wx?ik50;7x967b2<801>k8:0`6?85a13?;70=:c;dg?855>3lh7p}<1b83>6}:;;i1845230f90<=:;8i1=lk4}r111?6=;r78>n4>4c9>74b=9kh01><::0cf?xu4<80;6?u233a95dc<5:9j68>4}r1g`?6==r78=i4:2:?0a3<6j<16?k65519>70e=no16??;5fb9~w67e2908w0==b;6:?856k3>270=>b;3ba>{t;;>1<7=t=20a>42e349:o7?mb:?061<6il1v>:?:181855j3;ji63<38864>{t;mi1<7;t=23`>04<5:o>6n7hk;<110?`d3ty8=l4?:2y>77g=<016?74g=9ho0q~==3;297~;4:h0:8o5230`95gd<5:886>635<5s49:m7:6;<12=?7fm2wx?io50;7x967f2<801>k<:0`6?85a=3?;70=:a;dg?855:3lh7p}<2383>7}:;8k1=ol4=201>4gb3ty8=54?:3y>74?=<016?<651`g8yv5c13:19v3<18866>;4m;0:n8523g6915=:;<4>ad9~w6?72909:v3<19866>;4l;0?;63;4l80?;63;4l=0?;63;4l?0?;63;4l10?;63;4m;0?;63;4m<0?;63;4m>0?;63;4m00?;63;4k?0?;63;4k:0?;63;4k=0?;63;4jo0?;63;4jl0?;63;4nk0?;63;4n00?;63;4n>0?;63;4n<0?;63;4180:mh5rs214>5<5s498i7?m5:?00d850;0x965c28h>70=;8;de?xu4;<0;6?u232a95g3<5:>36kk4}r100?6=:r78?o4>b49>71>=nj1v>=<:181854i3;i963<498e`>{t;:81<74d2349?m7hl;|q074<72;q6?>651c78962f2ol0q~=;b;297~;4;40k0:mh5rs264>5<5s49?:7;?;<17=?7fm2wx>ol50;0x97e72=301?li:0cf?xu5k<0;6?u22b295gd<5;ij6n>51`g897ea2oi0q~ad9~w7d>2909w0o650;0x97dc2=301?ll:0cf?xu5k;0;6?u22cf95gd<5;i<6om51c`897e128kn7p}=a983>7}::hn184522`a95dc7>52z?1ea<6jk16>o951`g8yv4dj3:1>v3=ae82e`=::jl1jh5rs3c4>5<5s48jo7:6;<0bf?7fm2wx>o?50;0x97gd28hi70{t:h<1<71?<5;kj6ll51c`897d228kn7p}=a483>7}::hk184522`;95dc52z?1ed<6jk16>o:51`g8yv4fm3:1>v3=a882fg=::k91=lk4}r1a3?6=7d6=nj1v>m6:18085c:3;i963;4>l0mj6s|3c794?2|5:n;68>4=2`f>4d23493?7hi;<1:g?`d3ty8o:4?:2y>7a6=9k?01>k=:428960c2ol0q~=m6;290~;4l80><634:0:?02am>:0`6?85?<3lo70=n2;d`?xu4kh0;6>u23e195g3<5:o>68>4=24f>cb54z?0`1<28278o?4>b49>7=3=no16?l:5fb9~w6ee2908w0=k4;3a1>;4m?0><63<6g8eb>{t;kk1<7:t=2f6>06<5:i868i:gf8yv5ej3:18v3;4k=0:n8523949bc=:;h21jn5rs2ag>5<4s49o:7?m5:?0a=<28278;=4if:p7ge=83>p1>j8:42896e228h>70=76;dg?85fi3lh7p}6}:;m=1=o;4=2g:>06<5:=;6kj4}r1a`?6=7g2=nj1v>mi:18085c03;i963;4?80mo6s|3d394?2|5:oj6i7hl;<11=?`d3ty85l4?:3y>7f0==916?o=51`g8yv5>13:1>v3;4j;0:mh5rs2;4>5<5s49h?7;?;<1a4?7fm2wx?4850;0x96e52<:01>oi:0cf?xu4110;6?u23b6915=:;k;1=lk4}r1:0?6=:r78o=4:0:?0ea<6il1v>7<:18185en3?;70=nc;3ba>{t;0?1<706<5:kn67dd=9ho0q~=n9;296~;4j:0?563ad9~w6g02908w0=m2;6:?85f13>270=n7;3ba>{t;hk1<7=t=2`1>42e349j57?mb:?0ed<6il1v>o::18085e93>270=n7;6:?85f=3;ji6s|3`:94?5|5:h:6<:m;<1b3?7ej278m54>ad9~w6g42908w0=m0;6:?85f=3>270=n3;3ba>{t;h<1<7=t=2`3>42e349j97?mb:?0e3<6il1v>o>:18085fn3>270=n3;6:?85f93;ji6s|3`694?5|5:km6<:m;<1b7?7ej278m94>ad9~w6?a2908w0=ne;6:?85f93>270=6f;3ba>{t;h81<7=t=2cf>42e349j=7?mb:?0e7<6il1v>7k:18085fl3>270=6f;6:?85>l3;ji6s|3`294?5|5:ko6<:m;<1:b?7ej278m=4>ad9~w6?e2908w0=nc;6:?85>l3>270=6b;3ba>{t;0o1<7=t=2c`>42e3492h7?mb:?0=`<6il1v>7l:18085fj3;?n63<9c82fg=:;0i1=lk4}r1e6?6=b49>5fe=nj16=nl5fe9>03g=;=1v>h>:18785ai3;i963>ce8eg>;6kj0mh63;6`807>{t;o:1<7:t=2d:>4d234;hi7hl;<3``?`c34>=m7==;|q0ac<72=q6?k651c7894ea2oi010:n8521e29bf=:9jl1ji5247c975=z{:oo6=4;{<1e2?7e=27:h<4ic:?2`5p1>h::0`6?87c:3lh70?k1;dg?821i38n7p}6}:;o>1=o;4=0f1>cb<5=bc9>70g=9ho0q~=;c;296~;4=90:mh5234390<=z{:?=6=4={<165?7ej2789o4>ad9~w62c2909w0=:1;3ba>;4=;0?56s|34594?4|5:?967>52z?011<6il16?5h5fg9~w60?2909w0=93;3af>;4>m0:mh5rs27e>5<5s49=?7?ne:?021<312wx?;750;0x960328hi70=9e;3ba>{t;?:1<74gb349=97:6;|q02d<72;q6?;;51c`8960a28kn7p}<6083>7}:;??1=lk4=245>1?52z?023<6jk16?:>51`g8yv51:3:1>v3<6782e`=:;?=1845rs24`>5<5s49=;7?mb:?034<6il1v>9<:180851?3;ji63<8g8e`>;40h0mj6s|36g94?4|5:=2628kn70=8a;6:?xu4?o0;6?u236c95gd<5:2?652z?03g<6il16?:m5489~w6>62909w0=8c;3af>;40?0:mh5rs25;>5<5s49{t;>>1<74gb3493m7hk;|q0<`<72:q6?5m5519>7=b==916?5h51`g8yv5?k3:18v3<8b82f0=:;1h1ji523829ba=:;0;1ji5rs2::>5<5s49347;?;<1;e?7fm2wx8;j50;06824n3><70:<70:<70:<70:<7;64?824>3><70:<5;64?824<3><70:<3;64?824:3><70:<1;64?82483><70:=f;64?825l3><70:=c;64?825j3><70:=a;64?82513><70:=8;64?825?3><70:=6;64?825=3><70:=4;64?823=3><70:;4;64?823;3><70:;2;64?82393><70:;0;64?82413><70:=e;64?825;3><70:=2;64?84>03;ji6s|47094?4|5=9m68>4=54b>`e==7>52z?77`<2827?:l4ka:p036=838p19=k:428910f2m20q~::f;296~;3;j0><63;6`8g2>{t<06<5=v3;36864>;3>h0o>6s|44;94?4|5=9=68>4=54b>a7>47>52z?770<2827?:l4ja:p001=838p19=;:428910f2m:0q~::6;296~;3;:0><63;6`8`b>{t<06<5=v3;2g864>;3>h0hm6s|44294?4|5=8o68>4=54b>f??j7>52z?76f<2827?:l4l8:p01c=838p19<63;6`8`3>{t<=i1<706<5=54:0:?72dv3;27864>;3>h0h?6s|45:94?4|5=8>68>4=54b>f4?;7>52z?761<2827?:l4j1:p03?=838p19:::428910f2l:0q~:98;296~;3<=0><63;6`8f<>{t06<5=v3;41864>;3>h0oo6s|47194?4|5=9268>4=54b>ad>o7>52z?76`<2827?:l4k7:p007=838p19<<:428910f2ji0q~:;6;296~;3:;0><63;6`8`5>{t;=21<74gb349?57hk;|q00d<72;q6?975fb9>71g=9=i0q~:9b;296~;3>j0:mh5247c9a`=z{:lo6=4:{<1;b?`b3493m7hj;<1:4?7fm27?:l4;8`9>03g=mm1v<;6:181842=3lo70<:4;37g>{t9cb<58l96<:l;|q113<72;q6>865fd9>602=9ho0q~?i4;296~;6n?0mi63>f382e`=zuz?297>52z\6=0=:<=0>585+49495d?52z\6=a=:<=0>5i5+49495dg52z\6<2=:<=0>4:5+49495ddnn7>52z\7g2=:<=0?o:5+494950`n57>52z\7g3=:<=0?o;5+494953gn47>52z\7g0=:<=0?o85+4949523n;7>52z\7g1=:<=0?o95+49495=6n:7>52z\7g6=:<=0?o>5+49495=0n97>52z\7g7=:<=0?o?5+49495=1n?7>52z\7g5=:<=0?o=5+49495=>n>7>52z\7fc=:<=0?nk5+49495=gn=7>52z\7f`=:<=0?nh5+49495=dn<7>52z\7fa=:<=0?ni5+49495=eoj7>52z\7ff=:<=0?nn5+49495=boi7>52z\7fg=:<=0?no5+49495=coh7>52z\7fd=:<=0?nl5+49495=`oo7>52z\7f<=:<=0?n45+49495<6on7>52z\7f==:<=0?n55+49495<7om7>52z\7f2=:<=0?n:5+49495<4o47>52z\7f0=:<=0?n85+49495<5o;7>52z\7f1=:<=0?n95+49495<2o:7>52z\7f6=:<=0?n>5+49495<3o97>52z\7f7=:<=0?n?5+49495<0o87>52z\7f4=:<=0?n<5+49495<1o?7>52z\7f5=:<=0?n=5+49495<>o>7>52z\7ec=:<=0?mk5+49495o=7>52z\7e`=:<=0?mh5+49495o<7>52z\7ea=:<=0?mi5+49495hj7>52z\7ef=:<=0?mn5+49495m>7>52z\7ga=:<=0?oi5+49495m=7>52z\7gf=:<=0?on5+49495m<7>52z\7gg=:<=0?oo5+49495<`nj7>52z\7gd=:<=0?ol5+49495d6ni7>52z\7g<=:<=0?o45+49495d7nh7>52z\7g==:<=0?o55+49495d4no7>52z\7g4=:<=0?o<5+49495d5n87>52z\7f3=:<=0?n;5+49495d2o57>52z\7eg=:<=0?mo5+49495d3hi7>52z\7ed=:<=0?ml5+49495d052z\6e==:<=0>m55+49495d152z\6=6=:<=0>5>5+49495d>52z\655=:<=0>==5+494950d7>52z\64c=:<=0>52z\64`=:<=0>52z\64a=:<=0>52z\64f=:<=0>52z\64g=:<=0>52z\64<=:<=0><45+494953452z\64==:<=0><55+494953552z\642=:<=0><:5+494953252z\643=:<=0><;5+494953352z\640=:<=0><85+494953052z\641=:<=0><95+494953152z\646=:<=0><>5+494953>52z\647=:<=0>52z\644=:<=0><<5+494953d52z\645=:<=0><=5+494953e52z\7b`=:<=0?jh5+494953b52z\7ba=:<=0?ji5+494953c52z\7bf=:<=0?jn5+494953`52z\7bg=:<=0?jo5+494952652z\7bd=:<=0?jl5+494952752z\7b<=:<=0?j45+494952452z\7b==:<=0?j55+494952552z\7b2=:<=0?j:5+494952252z\7b3=:<=0?j;5+494952052z\7b0=:<=0?j85+494952152z\653=:<=0>=;5+494952>52z\650=:<=0>=85+494952?52z\651=:<=0>=95+494952g52z\656=:<=0>=>5+494952d52z\657=:<=0>=?5+494952e52z\654=:<=0>=<5+494952b52z\64d=:<=0>52z\7bc=:<=0?jk5+494952`7>52z\7b1=:<=0?j95+49495=752z\7b6=:<=0?j>5+49495=452z\606=:<=0>8>5+49495=52n7>52z\7=g=:<=0?5o5+49495=252z\67a=:<=0>?i5+49495=352z\62==:<=0>:55+49495=?52zJ7<2=zfhnn6=4={I6;3>{iiml1<7vF;869~jdc52909wE:77:me`5=838pD968;|lba1<72;qC8594}ocf1?6=:rB?4:5rn`g5>5<5sA>3;6saad594?4|@=2<7p`ne983>7}O<1=0qcoj9;296~N30>1vblkn:181M2??2wemhl50;0xL1>03tdjin4?:3yK0=152zJ7<2=zfhon6=4={I6;3>{iill1<7vF;869~jd`52909wE:77:mec5=838pD968;|lbb1<72;qC8594}oce1?6=:rB?4:5rn`d5>5<5sA>3;6saag594?4|@=2<7p`nf983>7}O<1=0qcoi9;296~N30>1vblhn:181M2??2wemkl50;0xL1>03tdjjn4?:3yK0=152zJ7<2=zfhln6=4={I6;3>{iiol1<7vF;869~jg652909wE:77:mf55=838pD968;|la41<72;qC8594}o`31?6=:rB?4:5rnc25>5<5sA>3;6sab1594?4|@=2<7p`m0983>7}O<1=0qcl?9;296~N30>1vbo>n:181M2??2wen=l50;0xL1>03tdi52zJ7<2=zfk:n6=4={I6;3>{ij9l1<7vF;869~jg752909wE:77:mf45=838pD968;|la51<72;qC8594}o`21?6=:rB?4:5rnc35>5<5sA>3;6sab0594?4|@=2<7p`m1983>7}O<1=0qcl>9;296~N30>1vbo?n:181M2??2wen03tdi=n4?:3yK0=152zJ7<2=zfk;n6=4={I6;3>{ij8l1<7vF;869~jg452909wE:77:mf75=838pD968;|la61<72;qC8594}o`11?6=:rB?4:5rnc05>5<5sA>3;6sab3594?4|@=2<7p`m2983>7}O<1=0qcl=9;296~N30>1vbo03tdi>n4?:3yK0=151zJ7<2=zf0{I6;3>{i1?h1<7?tH5:4?xh>>j0;65<6sA>3;6sa96194?7|@=2<7p`67583>4}O<1=0qc785;295~N30>1vb499:182M2??2we5:950;3xL1>03td2;54?:0yK0=151zJ7<2=zf0=j6=4>{I6;3>{i1>h1<7?tH5:4?xh>?j0;65<6sA>3;6sa99194?7|@=2<7p`68583>4}O<1=0qc775;295~N30>1vb469:182M2??2we55950;3xL1>03td2454?:0yK0=151zJ7<2=zf02j6=4>{I6;3>{i11h1<7?tH5:4?xh>0j0;6b290:wE:77:m==`=83;pD968;|l:=5<728qC8594}o;:5?6=9rB?4:5rn8;1>5<6sA>3;6sa98194?7|@=2<7p`69583>4}O<1=0qc765;295~N30>1vb479:182M2??2we54950;3xL1>03td2554?:0yK0=151zJ7<2=zf03j6=4>{I6;3>{i10h1<7?tH5:4?xh>1j0;6l3:1=vF;869~j5<6sA>3;6sa9`194?7|@=2<7p`6a583>4}O<1=0qc7n5;295~N30>1vb4o9:182M2??2we5l950;3xL1>03td2m54?:0yK0=151zJ7<2=zf0kj6=4>{I6;3>{i1hh1<7?tH5:4?xh>ij0;65<6sA>3;6sa9c194?7|@=2<7p`6b583>4}O<1=0qc7m5;295~N30>1vb4l9:182M2??2we5o950;3xL1>03td2n54?:0yK0=151zJ7<2=zf0hj6=4>{I6;3>{i1kh1<7?tH5:4?xh>jj0;65<6sA>3;6sa9b194?7|@=2<7p`6c583>4}O<1=0qc7l5;295~N30>1vb4m9:182M2??2we5n950;3xL1>03td2o54?:0yK0=151zJ7<2=zf0ij6=4>{I6;3>{i1jh1<7?tH5:4?xh>kj0;65<6sA>3;6sa9e194?7|@=2<7p`6d583>4}O<1=0qc7k5;295~N30>1vb4j9:182M2??2we5i950;3xL1>03td2h54?:0yK0=151zJ7<2=zf0nj6=4>{I6;3>{i1mh1<7?tH5:4?xh>lj0;65<6sA>3;6sa9d194?7|@=2<7p`6e583>4}O<1=0qc7j5;295~N30>1vb4k9:182M2??2we5h950;3xL1>03td2i54?:0yK0=151zJ7<2=zf0oj6=4>{I6;3>{i1lh1<7?tH5:4?xh>mj0;65<6sA>3;6sa9g194?7|@=2<7p`6f583>4}O<1=0qc7i5;295~N30>1vb4h9:182M2??2we5k950;3xL1>03td2j54?:0yK0=151zJ7<2=zf0lj6=4>{I6;3>{i1oh1<7?tH5:4?xh>nj0;65<6sA>3;6saa1194?7|@=2<7p`n0583>4}O<1=0qco?5;295~N30>1vbl>9:182M2??2wem=950;3xL1>03tdj<54?:0yK0=151zJ7<2=zfh:j6=4>{I6;3>{ii9h1<7?tH5:4?xhf8j0;65<6sA>3;6saa0194?7|@=2<7p`n1583>4}O<1=0qco>5;295~N30>1vbl?9:182M2??2wem<950;3xL1>03tdj=54?:0yK0=151zJ7<2=zfh;j6=4>{I6;3>{ii8h1<7?tH5:4?xhf9j0;65<6sA>3;6saa3194?7|@=2<7p`n2583>4}O<1=0qco=5;295~N30>1vbl<9:182M2??2wem?950;3xL1>03tdj>54?:0yK0=151zJ7<2=zfh8j6=4>{I6;3>{ii;h1<7?tH5:4?xhf:j0;65<6sA>3;6saa2194?7|@=2<7p`n3583>4}O<1=0qco<5;295~N30>1vbl=9:182M2??2wem>950;3xL1>03tdj?54?:0yK0=151zJ7<2=zfh9j6=4>{I6;3>{ii:h1<7?tH5:4?xhf;j0;65<6sA>3;6saa5194?7|@=2<7p`n4583>4}O<1=0qco;5;295~N30>1vbl:9:182M2??2wem9950;3xL1>03tdj854?:0yK0=151zJ7<2=zfh>j6=4>{I6;3>{ii=h1<7?tH5:4?xhf5<6sA>3;6saa4194?7|@=2<7p`n5583>4}O<1=0qco:5;295~N30>1vbl;9:182M2??2wem8950;3xL1>03tdj954?:0yK0=157>51zJ7<2=zfh?j6=4>{I6;3>{ii5<6sA>3;6saa7194?7|@=2<7p`n6583>4}O<1=0qco95;295~N30>1vbl89:182M2??2wem;950;3xL1>03tdj:54?:0yK0=151zJ7<2=zfh{I6;3>{ii?h1<7?tH5:4?xhf>j0;65<6sA>3;6saa6194?7|@=2<7p`n7583>4}O<1=0qco85;295~N30>1vbl99:182M2??2wem:950;3xL1>03tdj;54?:0yK0=151zJ7<2=zfh=j6=4>{I6;3>{ii>h1<7?tH5:4?xhf?j0;65<6sA>3;6saa9194?7|@=2<7p`n8583>4}O<1=0qco75;295~N30>1vbl69:182M2??2wem5950;3xL1>03tdj454?:0yK0=151zJ7<2=zfh2j6=4>{I6;3>{ii1h1<7?tH5:4?xhf0j0;6b290:wE:77:me=`=83;pD968;|lb=5<728qC8594}oc:5?6=9rB?4:5rn`;1>5<6sA>3;6saa8194?7|@=2<7p`n9583>4}O<1=0qco65;295~N30>1vbl79:182M2??2wem4950;3xL1>03tdj554?:0yK0=151zJ7<2=zfh3j6=4>{I6;3>{ii0h1<7?tH5:4?xhf1j0;6l3:1=vF;869~jd?b290:wE:77:me<`=83;pD968;|lbe5<728qC8594}ocb5?6=9rB?4:5rn`c1>5<6sA>3;6saa`194?7|@=2<7p`na583>4}O<1=0qcon5;295~N30>1vblo9:182M2??2weml950;3xL1>03tdjm54?:0yK0=151zJ7<2=zfhkj6=4>{I6;3>{iihh1<7?tH5:4?xhfij0;65<6sA>3;6saac194?7|@=2<7p`nb583>4}O<1=0qcom5;295~N30>1vbll9:182M2??2wemo950;3xL1>03tdjn54?:0yK0=151zJ7<2=zfhhj6=4>{I6;3>{iikh1<7?tH5:4?xhfjj0;65<6sA>3;6saab194?7|@=2<7p`nc583>4}O<1=0qcol5;295~N30>1vblm9:182M2??2wemn950;3xL1>03tdjo54?:0yK0=151zJ7<2=zfhij6=4>{I6;3>{iijh1<7?tH5:4?xhfkj0;65<6sA>3;6saae194?7|@=2<7p`nd583>4}O<1=0qcok5;295~N30>1vblj9:182M2??2wemi950;3xL1>03tdjh54?:0yK0=151zJ7<2=zfhnj6=4>{I6;3>{iimh1<7?tH5:4?x{zuIJHwnh>:85;ac640tJKNv>r@ARxyEFuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.v000066400000000000000000000124301224274632000240170ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_512x36_2clk_prog_full.v when simulating // the core, fifo_xlnx_512x36_2clk_prog_full. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_512x36_2clk_prog_full( rst, wr_clk, rd_clk, din, wr_en, rd_en, dout, full, almost_full, empty, prog_full); input rst; input wr_clk; input rd_clk; input [35 : 0] din; input wr_en; input rd_en; output [35 : 0] dout; output full; output almost_full; output empty; output prog_full; // synthesis translate_off FIFO_GENERATOR_V6_1 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(9), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(36), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(36), .C_ENABLE_RLOCS(0), .C_ENABLE_RST_SYNC(1), .C_ERROR_INJECTION_TYPE(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(1), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(1), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(0), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(0), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(1), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("512x36"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(500), .C_PROG_FULL_THRESH_NEGATE_VAL(499), .C_PROG_FULL_TYPE(1), .C_RD_DATA_COUNT_WIDTH(9), .C_RD_DEPTH(512), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(9), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(0), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(9), .C_WR_DEPTH(512), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(9), .C_WR_RESPONSE_LATENCY(1)) inst ( .RST(rst), .WR_CLK(wr_clk), .RD_CLK(rd_clk), .DIN(din), .WR_EN(wr_en), .RD_EN(rd_en), .DOUT(dout), .FULL(full), .ALMOST_FULL(almost_full), .EMPTY(empty), .PROG_FULL(prog_full), .BACKUP(), .BACKUP_MARKER(), .CLK(), .SRST(), .WR_RST(), .RD_RST(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .INT_CLK(), .INJECTDBITERR(), .INJECTSBITERR(), .WR_ACK(), .OVERFLOW(), .ALMOST_EMPTY(), .VALID(), .UNDERFLOW(), .DATA_COUNT(), .RD_DATA_COUNT(), .WR_DATA_COUNT(), .PROG_EMPTY(), .SBITERR(), .DBITERR()); // synthesis translate_on endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.veo000066400000000000000000000061441224274632000243500ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2009 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_512x36_2clk_prog_full YourInstanceName ( .rst(rst), .wr_clk(wr_clk), .rd_clk(rd_clk), .din(din), // Bus [35 : 0] .wr_en(wr_en), .rd_en(rd_en), .dout(dout), // Bus [35 : 0] .full(full), .almost_full(almost_full), .empty(empty), .prog_full(prog_full)); // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_512x36_2clk_prog_full.v when simulating // the core, fifo_xlnx_512x36_2clk_prog_full. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xco000066400000000000000000000047351224274632000243540ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version 12.2 # Date: Thu Nov 11 17:27:10 2010 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = false SET asysymbol = false SET busformat = BusFormatAngleBracketNotRipped SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 6.1 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=true CSET component_name=fifo_xlnx_512x36_2clk_prog_full CSET data_count=false CSET data_count_width=9 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET enable_reset_synchronization=true CSET fifo_implementation=Independent_Clocks_Block_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=500 CSET full_threshold_negate_value=499 CSET inject_dbit_error=false CSET inject_sbit_error=false CSET input_data_width=36 CSET input_depth=512 CSET output_data_width=36 CSET output_depth=512 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=Single_Programmable_Full_Threshold_Constant CSET read_clock_frequency=1 CSET read_data_count=false CSET read_data_count_width=9 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=false CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=false CSET write_data_count_width=9 # END Parameters GENERATE # CRC: 6b9f6232 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full.xise000066400000000000000000000113051224274632000245220ustar00rootroot00000000000000

uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_flist.txt000066400000000000000000000007031224274632000255720ustar00rootroot00000000000000# Output products list for _xmsgs/pn_parser.xmsgs fifo_generator_ug175.pdf fifo_xlnx_512x36_2clk_prog_full.gise fifo_xlnx_512x36_2clk_prog_full.ngc fifo_xlnx_512x36_2clk_prog_full.v fifo_xlnx_512x36_2clk_prog_full.veo fifo_xlnx_512x36_2clk_prog_full.xco fifo_xlnx_512x36_2clk_prog_full.xise fifo_xlnx_512x36_2clk_prog_full_flist.txt fifo_xlnx_512x36_2clk_prog_full_readme.txt fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_readme.txt000066400000000000000000000033531224274632000257120ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_512x36_2clk_prog_full' in directory /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/coregen/ fifo_generator_ug175.pdf: Please see the core data sheet. fifo_xlnx_512x36_2clk_prog_full.gise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_512x36_2clk_prog_full.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_512x36_2clk_prog_full.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_512x36_2clk_prog_full.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_512x36_2clk_prog_full.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_512x36_2clk_prog_full.xise: ISE Project Navigator support file. This is a generated file and should not be edited directly. fifo_xlnx_512x36_2clk_prog_full_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. fifo_xlnx_512x36_2clk_prog_full_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl000066400000000000000000000052671224274632000253640ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_512x36_2clk_prog_full_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_512x36_2clk_prog_full_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk_prog_full } # ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_512x36_2clk_prog_full_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_generator_ug175.pdf utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_prog_full_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk_prog_full incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_readme.txt000066400000000000000000000026371224274632000236450ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_512x36_2clk' in directory /home/matt/gnuradio.git/usrp2/fpga/coregen/: fifo_xlnx_512x36_2clk.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_512x36_2clk.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_512x36_2clk.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_512x36_2clk.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_512x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: Please see the core data sheet. fifo_xlnx_512x36_2clk_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. fifo_xlnx_512x36_2clk_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_512x36_2clk_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_512x36_2clk_xmdf.tcl000066400000000000000000000051431224274632000233040ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_512x36_2clk_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_512x36_2clk_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_512x36_2clk_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_512x36_2clk } # ::fifo_xlnx_512x36_2clk_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_512x36_2clk_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_512x36_2clk_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_512x36_2clk incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk.ngc000066400000000000000000004221571224274632000222050ustar00rootroot00000000000000XILINX-XDB 0.1 STUB 0.1 ASCII XILINX-XDM V1.4e $4;14g<,[o}e~g`n;"2*413&;$>"9 > %10?*nhel%fmyz cnpfc`h(|dz$Sni fhdl[}jipV8P2bnh*kah92:?7=>?9593416339:=<95?1122?45<9'::7?:421236>4?<283M=:42@:30>5799>0?><<13902?OIX\^1hd`33483:42<;?0DYY^ZT;flqq:4=3:5h6=|2123bb22>$?:79?4639561=1107;4FNQWW>uthoVof|ywPtipfwmYimnki1;50?3g?30:7GAPTV9twi`Wog`Rzgrdqk[kc`i}o797>12:4B0>0FIH80:H<479683=@7911<6B[[PTV9`drfWje~by29:1<2f>1=G\^[YY4}d^fbpdYdg|d0;4?>0`83?IR\Y__6z|Pd`vb[firf}6=6=0=;6F1?2@33>L3<958FGD2?=4<09>04=>?4::1042<0=8:=67;;82341=>8939748=;8C7?DR:11IY^QFNGM2?F26MJ139@L@ELWECHIC]J_U[SA7=DA:1H@_74CNONMQRBL8>0OB\J_FGMAWGSAFDTECH@7:AQADRBL81O>6JF3:FSK0=CX[K;96J_R@36?AVUI;?0H]\N339F07=AL:1MHN:4FEAF0>@CKY90JI^;;GFSA1=AN1:>7Kocsd38C6=@FM;0E?5F039J57=N:;1B?45FNHVPPDRB;2CEZ>5FOC08HL4TH85BSFMM1>KRPJS>7@[WF4a8Idlhz_oydaac:OjjjtQm{ybcc=4N131?K743G;;86@>0168J466<2D:H68=>0B<>:4:L24320968J46>;2D:=95A1027?K769=1E=<<;;O3271=I98>?7C?>559M54033G;:;95A10:7?K761:1E=?:4N0030>H6:8>0B<<=4:L26622468J441<2D:>::4N00;0>H6:090B<=;;O3041=I9:;?7C?<259M56133G;8495A12;0?K73<2D:8=:4N0620>H6<;>0B<:<4:L2032<86@>4968J42>;2D:995A1427?K729=1E=8<<;O357>H6?:1E=5=4N0;1?K443G8;?6@=129M675H51:1E?==4N230?K55;2D8?>5A3518J6343G9=?6@<729M7=5;1E;>5A7918J2?53G287C6>3:L;76=I0=80B4=4N870?K?1;2D2;>5A9918JIL92Z?7]O]T`9SMKYE]ZCOTo5_IO]AQVHFEL90\_K>;P:8VDK6>Q;O=6]9;RMVVFC43ZZD86ZVPD11?P6(o{l%~k!hcy,`hn~(EqeySjPpovq[beXpfx;<=>PRdqvhq74:2_;#j|i.sd,cf~)keas#@v`r^pg[uhszVmhSua}0122[Wct}e~:??5Z0.eqb+ta'nis"nbdx.O{kwYulVzexQhc^zlv567:VXnxb{1208Q5)`zo$yj"ilx/aoo})JpfxT~iQnup\cfYg{:;<>Q]erwop4553\:$kh!rg-dg}(ddbr$Aua}_sf\tkruWniTtb|?016\V`urd};8>6[?/fpe*w`(ojr%oaew/LzlvZquWyd~Ril_ymq4567W[oxyaz>339V4*aun'xm#jmw.bnh|*Kg{U|~R~ats]dgZ~hz9:;=R\jstnw564<]9%l~k }f.e`|+ekcq%Ftb|Pws]sjqtXojUsc>?03]Qavsk|8997X> gsd-vc)`kq$h`fv Mymq[rtXxg~ySjmPxnp3455XZly~`y?<2:W3+bta&{l$knv!cmi{+H~hzV}yS}`{r^e`[}iu89:?S_k|umv264=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj969:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5;5><5Z0.eqb+ta'nis"nbdx.pg[uhszVhbb1<1209V4*aun'xm#jmw.bnh|*tcWyd~Rlfn=1=64=R8&myj#|i/fa{*fjlp&xoS}`{r^`jj929:81^<"i}f/pe+be&jf`t"|k_qlwvZdnf5?5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVhbbR>=0:W3+bta&{l$knv!cmi{+wbXxg~ySoga_003?P6(o{l%~k!hcy,`hn~(zmU{by|Pbhl\676<]9%l~k }f.e`|+ekcq%yhR~ats]amkY4:91^<"i}f/pe+be&jf`t"|k_qlwvZdnfV>9<6[?/fpe*w`(ojr%oaew/sf\tkruWkceS8<9;T2,cw`)zo%lou lljz,vaYwf}xTnd`Pxnp34565?2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=>?1348Q5)`zo$yj"ilx/aoo})ulVzexQmio]{kw67888<7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?013263=R8&myj#|i/fa{*fjlp&xoS}`{r^`jjZ~hz9:;>?94U1-dvc(un&mht#mcky-q`Zvi|{UiecQwos234775>2_;#j|i.sd,cf~)keas#jPpovq[goiWqey<=><269V4*aun'xm#jmw.bnh|*tcWyd~Rlfn^zlv567;;8=7X> gsd-vc)`kq$h`fv re]sjqtXj`dTtb|?01613>S7'nxm"h gbz-gim'{nT|cz}_ckm[}iu89:?=?>4U1-dvc(un&mht#mcky-q`Zvi|{Ulo1>1219V4*aun'xm#jmw.bnh|*tcWyd~Ril<0<14>S7'nxm"h gbz-gim'{nT|cz}_fa?6;473\:$kh!rg-dg}(ddbr$~iQnup\cf:46;:0Y=!hrg,qb*adp'iggu!}d^rmpwY`k5>5>=5Z0.eqb+ta'nis"nbdx.pg[uhszVmh080>f:W3+bta&{l$knv!cmi{+wbXxg~ySjmP00d8Q5)`zo$yj"ilx/aoo})ulVzexQhc^32b>S7'nxm"h gbz-gim'{nT|cz}_fa\64`<]9%l~k }f.e`|+ekcq%yhR~ats]dgZ56n2_;#j|i.sd,cf~)keas#jPpovq[beX<8l0Y=!hrg,qb*adp'iggu!}d^rmpwY`kV?9:6[?/fpe*w`(ojr%oaew/sf\tkruWniTm~|jg=2=63=R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumn6:2?84U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde?6;413\:$kh!rg-dg}(ddbr$~iQnup\cfYf{{ol0>0=6:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfc929:?1^<"i}f/pe+be&jf`t"|k_qlwvZadWhyyij2:>378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX8;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP1378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX:;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP3378Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aX<;?0Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiP53;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86;2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:66;30Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0>1:7?<]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmTh<2<>3;8Q5)`zo$yj"ilx/aoo})ulVzexQhc^cpv`aXl86?2?74U1-dvc(un&mht#mcky-q`Zvi|{UloRo|rde\`4:26;20Y=!hrg,qb*adp'iggu!}d^rmpwY`kVkx~hiPd0]36==R8&myj#|i/fa{*fjlp&xoS}`{r^e`[duumnUo=R?=8:W3+bta&{l$knv!cmi{+wbXxg~ySjmParpfcZb6W;837X> gsd-vc)`kq$h`fv re]sjqtXojUjkh_e3\77><]9%l~k }f.e`|+ekcq%yhR~ats]dgZgtzlmThS7'nxm"h gbz-gim'{nT|cz}_fa\|jt789;996[?/fpe*w`(ojr%oaew/sf\tkruWniTtb|?01011>S7'nxm"h gbz-gim'{nT|cz}_fa\|jt7899996[?/fpe*w`(ojr%oaew/sf\tkruWniTtb|?01615>S7'nxm"h gbz-gim'~xT|cz}_ckm858592_;#j|i.sd,cf~)keas#z|Ppovq[goi4849=6[?/fpe*w`(ojr%oaew/vp\tkruWkce0?0=1:W3+bta&{l$knv!cmi{+rtXxg~ySoga<2<15>S7'nxm"h gbz-gim'~xT|cz}_ckm818592_;#j|i.sd,cf~)keas#z|Ppovq[goi4<49<6[?/fpe*w`(ojr%oaew/vp\tkruWkceS= gsd-vc)`kq$h`fv ws]sjqtXj`dT9?84U1-dvc(un&mht#mcky-tvZvi|{UiecQwos2345403\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<=>>279V4*aun'xm#jmw.bnh|*quWyd~Rlfn^zlv5679;=0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?00312>S7'nxm"h gbz-gim'~xT|cz}_ckm[}iu89:9>:5Z0.eqb+ta'nis"nbdx.uq[uhszVhbbRv`r12364413\:$kh!rg-dg}(ddbr${Qnup\flhXpfx;<===7:W3+bta&{l$knv!cmi{+rtXxg~ySoga_ymq4564:;<0Y=!hrg,qb*adp'iggu!xr^rmpwYeagUsc>?0504?P6(o{l%~k!hcy,`hn~({U{by|Pbhl\|jt789>:>=5Z0.eqb+ta'nis"nbdx.uq[uhszVmh0=0=0:W3+bta&{l$knv!cmi{+rtXxg~ySjm31?03?P6(o{l%~k!hcy,`hn~({U{by|Pgb>1:76<]9%l~k }f.e`|+ekcq%|~R~ats]dg959:91^<"i}f/pe+be&jf`t"y}_qlwvZad4=49<6[?/fpe*w`(ojr%oaew/vp\tkruWni793?i;T2,cw`)zo%lou lljz,swYwf}xTknQ?1g9V4*aun'xm#jmw.bnh|*quWyd~Ril_03e?P6(o{l%~k!hcy,`hn~({U{by|Pgb]15c=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[67a3\:$kh!rg-dg}(ddbr${Qnup\cfY39o1^<"i}f/pe+be&jf`t"y}_qlwvZadW<8=7X> gsd-vc)`kq$h`fv ws]sjqtXojUjkh<1<12>S7'nxm"h gbz-gim'~xT|cz}_fa\evtbo5;5>;5Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef>1:70<]9%l~k }f.e`|+ekcq%|~R~ats]dgZgtzlm7?3<9;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd8185>2_;#j|i.sd,cf~)keas#z|Ppovq[beXizxnk1;1249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY7:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ>249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY5:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ<249V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabY3:<1^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQ:289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95:5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5979:01^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1=0=6<=R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=1=1289V4*aun'xm#jmw.bnh|*quWyd~Ril_`qqabYc95>5>45Z0.eqb+ta'nis"nbdx.uq[uhszVmhSl}}ef]g5939:11^<"i}f/pe+be&jf`t"y}_qlwvZadWhyyijQk1^21<>S7'nxm"h gbz-gim'~xT|cz}_fa\evtboVn:S<<7;T2,cw`)zo%lou lljz,swYwf}xTknQnssgd[a7X:;20Y=!hrg,qb*adp'iggu!xr^rmpwY`kVkx~hiPd0]06==R8&myj#|i/fa{*fjlp&}yS}`{r^e`[duumnUo=R:=8:W3+bta&{l$knv!cmi{+rtXxg~ySjmParpfcZb6W<8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUsc>?0106?P6(o{l%~k!hcy,`hn~({U{by|Pgb]{kw67888>7X> gsd-vc)`kq$h`fv ws]sjqtXojUsc>?0306?P6(o{l%~k!hcy,`hn~({U{by|Pgb]{kw678:8>7X> gsd-vc)`kq$h`fv ws]sjqtXojUsc>?0514?P6(o{l%~k!hl1,q`*au9'myhn9369V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.Ob`aYulVnhSdQndeqvf567819h7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$Aljk_sf\`fYnWhnoxl?012\g|:66=80Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FmijPre]ggZoXimnxyo>?01]`}92998UX[=:=;T2,cw`)zo%l`= }d.eq5+aulj8%~im M`fg[wbXljUbSljkst`3456Xkp6?2S7'nxm"h gm2-va)`z8$l~im=.sf`+HurjVnbjkQxr^pg[qkwWjs7<3=7;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\g|:66:20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%FxlPdhde[rtXzmUa}Qly=0=7==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*Kt}kUoekhPws]q`ZrjxVir0>0<8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/LqvfZbnnoU|~R|k_uos[f;<7927X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?4;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz31?1:?P6(o{l%~k!hl1,q`*au9'myhn3=6;T2,cw`)zo%l`= }d.eq5+aulj8%~im Mrwa[aoanV}ySjPtlr\hpr;;7927X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pltv?0;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzT`xz35?1:?P6(o{l%~k!hl1,q`*au9'myhn gsd-vc)`d9$yh"i}1/eq`f4)zmi$A~{m_ekebZquW{nTx`~Pxnp?6;5>3\:$kh!rg-dh5(ul&my=#i}db0-vae(EziSigif^uq[wbX|dzTtb|33?1:?P6(o{l%~k!hl1,q`*au9'myhn gsd-vc)`d9$yh"i}1/eq`f4)zmi$hdhi_vp\vaYsey6;2?64U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lY7:11^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^31<>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS?<7;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoX;;20Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]76==R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeR;=8:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnW?9:7X> gsd-vc)`d9$yh"i}1/eq`f4)zmi$~iQkc^k\ip~78987<3==;T2,cw`)zo%l`= }d.eq5+aulj8%~im re]ggZoXe|r;<=<30?305>S7'nxm"h gm2-va)`z8$l~im=.sf`+wbXljUbS`{w01218484:2_;#j|i.sd,ci6)zm%l~< hrea1*wbd'{nThnQf_lw{4565484:?>5Z0.eqb+ta'nf;"j gs3-cwbd:'xoo"|k_ea\mZkrp9:;>1?11012?P6(o{l%~k!hl1,q`*au9'myhn0<2:W3+bta&{l$ka>!re-dv4(`zmi9"jl/sf\`fYnWds<=>=<2<274=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx1236929;<1^<"i}f/pe+bj7&{n$k?!gsf`6+tck&xoSimPi^ov|567:5>5S^Y?309V4*aun'xm#jb?.sf,cw7)o{nh>#|kc.pg[aeXaVg~t=>?2=7=77=R8&myj#|i/fn3*wb(o{;%kjl2/pgg*tcWmiTeRczx12369399:;0Y=!hrg,qb*ak8'xo#j|>.fpgg7(ulj%yhRjl_h]nq}678;6=2><4U1-dvc(un&mg<#|k/fp2*btck;$yhn!}d^f`[lYj}q:;00b?P6(o{l%~k!hl1,q`*au9'xm{kz R@O\VAYBFVL\JY?=9:W3+bta&{l$ka>!re-dv4(un~l#_OB_SGDKPRXMG;9n6[?/fpe*w`(oe:%~i!hr0,qbr`s'[KFS[OCIE]ESCR69:90Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi?<6:W3+bta&{l$ka>!re-dv4(un~l#n{}r^dtbqYt|h~nSK]B_GDg5(Oi;11^<"i}f/pe+bj7&{n$k?!rguep*erz{Um{kzPsucwaZ@TEVLMh<#Fn0307>S7'nxm"h gm2-va)`z8$yjzh{/bwqvZ`pn}Uxxlzj_GQN[C@c::<0Y=!hrg,qb*ak8'xo#j|>.sdtbq)d}{xTjzh{_rvbp`YA[DUMJi<"Io1;?P6(o{l%~k!hl1,q`*au9'xm{kz ctpq[cqa|VymykPFRO\BCb5%@d:=?64U1-dvc(un&mg<#|k/fp2*w`pn}%na}zv_guepZ`e:>1^<"i}f/pe+bj7&{n$k?!rguep*cjx}sTjzh{_h0f?P6(o{l%~k!hl1,q`*au9'xm{kz elrw}Z`pn}UbSb|?0121b>S7'nxm"h gm2-va)`z8$yjzh{/dosp|Yao~TeRa}0123573<]9%l~k }f.eo4+tc'nx:"hxfu-vw`tX~hfbh?74U1-dvc(un&mg<#|k/fpbw+tt|z%ym`Qjmqvz[cdXa::0Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;?>5Z0.eqb+ta'nf;"j gscp*wus{&xjaRkbpu{\bgYnWfx;<=>>2310?P6(o{l%~k!hl1,q`*auiz$yy} r`o\ahvsqVliSdQ`r123444>;:1^<"i}f/pe+bj7&{n$ko|.sqww*tfeVof|ywPfc]j[jt789:::9=<;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?00;276=R8&myj#|i/fn3*wb(o{kx"}{s.pbiZcjx}sTjoQf_np34565919<7X> gsd-vc)`d9$yh"i}ar,qwqu(zhgTi`~{y^da[lYhz9:;:80Y=!hrg,qb*ak8'xo#j|ns/pppv)uidUna}zv_g`\mZiu89:;9>==;T2,cw`)zo%l`= }d.eqev(u{}y$~lcPelrw}Z`eW`Ud~=>?0922b>S7'nxm"h gm2-va)uidU}magk_guep75<]9%l~k }f.eo4+tc'{zex!BcnwmpZeh}g~996[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at0013>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|88:=?84U1-dvc(un&mg<#|k/srmpw)JkfexRm`uov2674f3\:$kh!rg-dh5(ul&x{by| MbmvjqYdg|d=?Qmde211>S7'nxm"h gm2-va)uxg~y#@m`uov\gjsi|8?9:6[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at07261=R8&myj#|i/fn3*wb(zyd~"Clotlw[firf}9986[?/fpe*w`(oe:%~i!}povq+Heh}g~Tob{at707?P6(o{l%~k!hl1,q`*twf}x$Anaznu]`kphs1:80Y=!hrg,qb*ak8'xo#~ats-Ngjsi|VidyczPxnp?4;76W@D]S=n5Z0.eqb+ta'nf;"j rqlwv*Kdg|dSnaznu]{kw:468;:j6[?/fpe*w`(oe:%~i!}povq+firf}6;2f:W3+bta&{l$ka>!re-qtkru'je~by2=>0d8Q5)`zo$yj"ic0/pg+wvi|{%hcx`{<2<2b>S7'nxm"h gm2-va)uxg~y#naznu>7:4`<]9%l~k }f.eo4+tc'{zex!lotlw8086m2_;#j|i.sd,ci6)zm%y|cz}/bmvjqY79l1^<"i}f/pe+bj7&{n$~}`{r.alqkrX98o0Y=!hrg,qb*ak8'xo#~ats-`kphsW;;n7X> gsd-vc)`d9$yh"|nup,gjsi|V9:i6[?/fpe*w`(oe:%~i!}povq+firf}U?=h5Z0.eqb+ta'nf;"j rqlwv*eh}g~T9?<4U1-dvc(un&mg<#|k/srmpw)dg|dSi?30?01?P6(o{l%~k!hl1,q`*twf}x$ob{at^f28485:2_;#j|i.sd,ci6)zm%y|cz}/bmvjqYc9585>?5Z0.eqb+ta'nf;"j rqlwv*eh}g~Th<2<>308Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_e3?0;453\:$kh!rg-dh5(ul&x{by| cnwmpZb64<49=6[?/fpe*w`(oe:%~i!}povq+firf}Uo=R>=3:W3+bta&{l$ka>!re-qtkru'je~byQk1^2\577<]9%l~k }f.eo4+tc'{zex!lotlw[a7X9;90Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T=R?=1:W3+bta&{l$ka>!re-qtkru'je~byQk1^017>S7'nxm"h gm2-va)uxg~y#naznu]g5Z4X9;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T??=4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P3^317>S7'nxm"h gm2-va)uxg~y#naznu]g5Z5X:;;0Y=!hrg,qb*ak8'xo#~ats-`kphsWm;T8??4U1-dvc(un&mg<#|k/srmpw)dg|dSi?P5368Q5)`zo$yj"ic0/pg+wvi|{%hcx`{_omw4566:11^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQib^k11>S7'nxm"h gm2-sw)`hy%{~z|/scn[cskdVc9o6[?/fpe*w`(oe:%{!hw`q-svrt'{kfSk{cl^k\kw67898m7X> gsd-vc)`d9$|~"ixar,twqu(zhgTjxbc_h]lv5678882?>5Z0.eqb+ta'nf;"z| gvcp*rus{&xjaRhzlm]j[jt789::>4Q\W10e?P6(o{l%~k!hl1,tv*apiz$|y} r`o\bpjkW`Ud~=>?00476c=R8&myj#|i/fn3*rt(o~kx"z}{s.pbiZ`rdeUbSb|?0122=44a3\:$kh!rg-dh5(pz&m|m~ xsuq,vdkXn|fgSdQ`r123477?;:1^<"i}f/pe+bj7&~x$kzo|.vqww*tfeVl~`aQf_np3456591UX[=!ws-dsdu)z~x#ob_gwohZoXg{:;<=;<2d9V4*aun'xm#jb?.vp,crgt&~y"|nm^dvhiYnWfx;<=>702`8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.Ob`aYpzVnjxlQlotlw[lYflm:;<=<!ws-dsae6&~nhiuz M`fg[rtXlh~jSnaznu]j[dbc89:;8>l4U1-dvc(un&mg<#y}/fugg4(pljosx"Cnde]tvZbf|hUhcx`{_h]b`a6789<8n6[?/fpe*w`(oe:%{!hwea2*rbdmq~$Aljk_vp\`drfWje~byQf_`fg45670=:0Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GjhiQxr^fbpdYdg|dSdQnde2345Ydq5;58=5Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vir080;1:W3+bta&{l$ka>!ws-dsae6&~nhiuz M`fg[rtXlh~jSnaznu]j[dbc89:;Snw35?372>S7'nxm"h gm2-sw)`mi:"zjleyv,IdbcW~xThlzn_bmvjqYnWhno<=>?_b{?1;46WZ];845Z0.eqb+ta'nf;"z| gvf`5+qcklr#@okd^uq[agsiVidyczPi^cg`5678Vrd~1?110]JJSY7<:1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'DkohRy}_ecweZeh}g~TeRokd1234Z~hz585=<:<;T2,cw`)zo%l`= xr.et`f7)minty!Baef\swYci}kTob{at^k\eab789:Ttb|33?3206=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HgclV}ySio{a^alqkrXaVkoh=>?0^zlv929989<7X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qly=2=72=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWjs7=3=8;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]`}949;>1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Snw33?14?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYdq5>5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#@}zb^fjbcYpzVxoSyc_mww858402_;#j|i.sd,ci6){%l{im>.vf`a}r(EziSigif^uq[wbX|dzT`xz31?1;?P6(o{l%~k!hl1,tv*aplj;%{imjxu-NwpdXl`lmSz|Pre]wiuYk}}692>64U1-dvc(un&mg<#y}/fugg4(pljosx"C|uc]gmc`X{UyhRzbp^nvp959;11^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'Dy~nRjffg]tvZtcW}g{Sa{{<5<0<>S7'nxm"h gm2-sw)`mi:"zjleyv,IvseWmcmjRy}_sf\phvXd|~793=7;T2,cw`)zo%l`= xr.et`f7)minty!Bst`\`l`aW~xT~iQ{mq]{kw:76:20Y=!hrg,qb*ak8'}y#jykc0,t`fc|&GxyoQkigd\swYulV~f|Rv`r=3=7==R8&myj#|i/fn3*rt(o~nh=#ykcdzw+HurjVnbjkQxr^pg[qkwWqey0?0<8:W3+bta&{l$ka>!ws-dsae6&~nhiuz Mrwa[aoanV}ySjPtlr\|jt;;7937X> gsd-vc)`d9$|~"ixdb3-saebp}%FxlPdhde[rtXzmUa}Qwos>7:6><]9%l~k }f.eo4+qu'n}oo< xdbg{p*Kt}kUoekhPws]q`ZrjxVrd~1;12g9V4*aun'xm#jb?.vp,crbd9'}oohv{/ekebZquW{nTx`~30?0e?P6(o{l%~k!hl1,tv*aplj;%{imjxu-tvZbf|hUhcx`{_h]36c=R8&myj#|i/fn3*rt(o~nh=#ykcdzw+rtXlh~jSnaznu]j[44a3\:$kh!rg-dh5(pz&m|hn?!weaf|q)pzVnjxlQlotlw[lY5:o1^<"i}f/pe+bj7&~x$kzjl1/ugg`~s'~xThlzn_bmvjqYnW:8m7X> gsd-vc)`d9$|~"ixdb3-saebp}%|~Rjnt`]`kphsW`U?>k5Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbS82:8Q5)`zo$yj"ic0/uq+bqck8$|hnkwt.uq[agsiVidyczPi^cg`56785>5?55Z0.eqb+ta'nf;"z| gvf`5+qcklr#z|Pd`vb[firf}UbSljk0123808412_;#j|i.sd,ci6){%l{im>.vf`a}r({UomyoPcnwmpZoXimn;<=>35?32`>S7'nxm"h gm2-sw)uidU|~Rka_h317>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|;?0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz>2378Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkr6=;>0Y=!hrg,qb*ak8'}y#z~ats-Ngjsi|Vidycz<259V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjq05<2_;#j|i.sd,ci6){%||cz}/LalqkrXkfex4==;T2,cw`)zo%l`= xr.usjqt(Eje~byQlotlw[}iu494:=RGAV^21g>S7'nxm"h gm2-sw)pxg~y#@m`uov\gjsi|Vrd~1?1100`?P6(o{l%~k!hl1,tv*qwf}x$Anaznu]`kphsWqey0?0>13f8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?3?>13a8Q5)`zo$yj"ic0/uq+rvi|{%Fob{at^alqkrXpfx7?3?=2b9V4*aun'xm#jb?.vp,suhsz&Ghcx`{_bmvjqYg{6?2!ws-ttkru'DidyczPcnwmpZ~hz5?5= gsd-vc)`d9$|~"ynup,gjsi|5:5=k5Z0.eqb+ta'nf;"z| wqlwv*eh}g~7=3?i;T2,cw`)zo%l`= xr.usjqt(kfex1<11g9V4*aun'xm#jb?.vp,suhsz&idycz33?3e?P6(o{l%~k!hl1,tv*qwf}x$ob{at=6=5c=R8&myj#|i/fn3*rt(yd~"m`uov?1;7b3\:$kh!rg-dh5(pz&}{by| cnwmpZ66m2_;#j|i.sd,ci6){%||cz}/bmvjqY69l1^<"i}f/pe+bj7&~x${}`{r.alqkrX:8o0Y=!hrg,qb*ak8'}y#z~ats-`kphsW:;n7X> gsd-vc)`d9$|~"ynup,gjsi|V>:i6[?/fpe*w`(oe:%{!xpovq+firf}U>>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th<2?>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e3?5;453\:$kh!rg-dh5(pz&}{by| cnwmpZb64;49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo=1=1239V4*aun'xm#jb?.vp,suhsz&idyczPd0>7:74<]9%l~k }f.eo4+qu'~zex!lotlw[a7;=78:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S=<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_002?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f2[7463\:$kh!rg-dh5(pz&}{by| cnwmpZb6W:8:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn:S9<>;T2,cw`)zo%l`= xr.usjqt(kfexRj>_401?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f18585:2_;#j|i.sd,ci6){%||cz}/bmvjqYc:5;5>?5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?2=>308Q5)`zo$yj"ic0/uq+rvi|{%hcx`{_e0?7;453\:$kh!rg-dh5(pz&}{by| cnwmpZb54=49>6[?/fpe*w`(oe:%{!xpovq+firf}Uo>1;1209V4*aun'xm#jb?.vp,suhsz&idyczPd3]366=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y7W88:7X> gsd-vc)`d9$|~"ynup,gjsi|Vn9S<<<;T2,cw`)zo%l`= xr.usjqt(kfexRj=_0]264=R8&myj#|i/fn3*rt(yd~"m`uov\`7Y5::1^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U9S<<>;T2,cw`)zo%l`= xr.usjqt(kfexRj=_200?P6(o{l%~k!hl1,tv*qwf}x$ob{at^f1[6Y6:81^<"i}f/pe+bj7&~x${}`{r.alqkrXl;U?><5Z0.eqb+ta'nf;"z| wqlwv*eh}g~Th?Q:179V4*aun'xm#`kb/emvpZoX88<0Y=!hrg,qb*kbe&ndyyQf_034?P6(o{l%~k!bel-gkprXaV;;=:5Z0.eqb+ta'dof#iazt^k\54703\:$kh!rg-nah)cg|~TeR?=169V4*aun'xm#`kb/emvpZoX9:;<7X> gsd-vc)jmd%ocxzPi^3752=R8&myj#|i/lgn+air|VcT=8?8;T2,cw`)zo%fi`!kotv\mZ719>1^<"i}f/pe+hcj'me~xRgP1634?P6(o{l%~k!bel-gkprXaV;3=:5Z0.eqb+ta'dof#iazt^k\5<713\:$kh!rg-nah)cg|~TeR<>7:W3+bta&{l$ahc dnww[lY588=0Y=!hrg,qb*kbe&ndyyQf_3323>S7'nxm"h mdo,`jssW`U9><94U1-dvc(un&gna"j`uu]j[756?2_;#j|i.sd,i`k(lfSdQ=4058Q5)`zo$yj"cjm.flqqYnW;?:;6[?/fpe*w`(elg$hb{{_h]1241<]9%l~k }f.ofi*bh}}UbS?9>7:W3+bta&{l$ahc dnww[lY508=0Y=!hrg,qb*kbe&ndyyQf_3;22>S7'nxm"h mdo,`jssW`U8=:5Z0.eqb+ta'dof#iazt^k\75703\:$kh!rg-nah)cg|~TeR=>169V4*aun'xm#`kb/emvpZoX;;;<7X> gsd-vc)jmd%ocxzPi^1052=R8&myj#|i/lgn+air|VcT?9?8;T2,cw`)zo%fi`!kotv\mZ529?1^<"i}f/pe+hcj'me~xRgP4048Q5)`zo$yj"cjm.flqqYnW<;=7X> gsd-vc)jmd%ocxzPi^422>S7'nxm"h mdo,`jssW`U<=;5Z0.eqb+ta'dof#iazt^k\<40<]9%l~k }f.ofi*bh}}UbS4?j;T2,cw`)zo%fi`!hdl,gi*KuidUYM@?>f:W3+bta&{l$ahc geo-`h)JzhgT^LC>0328Q5)`zo$yj"cjm.egi+bj'DxjaR\NM02365=R8&myj#|i/lgn+bbj&mg$Aob_SCN557582_;#j|i.sd,i`k(omg%h`!Br`o\VDK68;8;7X> gsd-vc)jmd%lh` km.OqehYUID;;??>4U1-dvc(un&gna"ikm/fn+HtfeVXJA<>;219V4*aun'xm#`kb/ffn*ak(E{kfS_OB11714>S7'nxm"h mdo,cak)ld%F~lcPR@O243473\:$kh!rg-nah)`ld$oa"C}al]QEH77?;:0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE8:3>=5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF==7>f:W3+bta&{l$ahc geo-`h)JzhgT^LC>1328Q5)`zo$yj"cjm.egi+bj'DxjaR\NM03365=R8&myj#|i/lgn+bbj&mg$Aob_SCN547582_;#j|i.sd,i`k(omg%h`!Br`o\VDK69;8;7X> gsd-vc)jmd%lh` km.OqehYUID;:??>4U1-dvc(un&gna"ikm/fn+HtfeVXJAS7'nxm"h mdo,cak)ld%F~lcPR@O253473\:$kh!rg-nah)`ld$oa"C}al]QEH76?;:0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE8;3>=5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=<7>f:W3+bta&{l$ahc geo-`h)JzhgT^LC>2328Q5)`zo$yj"cjm.egi+bj'DxjaR\NM00365=R8&myj#|i/lgn+bbj&mg$Aob_SCN577582_;#j|i.sd,i`k(omg%h`!Br`o\VDK6:;8;7X> gsd-vc)jmd%lh` km.OqehYUID;9??>4U1-dvc(un&gna"ikm/fn+HtfeVXJA<<;219V4*aun'xm#`kb/ffn*ak(E{kfS_OB13714>S7'nxm"h mdo,cak)ld%F~lcPR@O263473\:$kh!rg-nah)`ld$oa"C}al]QEH75?;:0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE883>=5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=?7>f:W3+bta&{l$ahc geo-`h)JzhgT^LC>3328Q5)`zo$yj"cjm.egi+bj'DxjaR\NM01365=R8&myj#|i/lgn+bbj&mg$Aob_SCN567582_;#j|i.sd,i`k(omg%h`!Br`o\VDK6;;8;7X> gsd-vc)jmd%lh` km.OqehYUID;8??>4U1-dvc(un&gna"ikm/fn+HtfeVXJA<=;219V4*aun'xm#`kb/ffn*ak(E{kfS_OB12714>S7'nxm"h mdo,cak)ld%F~lcPR@O273473\:$kh!rg-nah)`ld$oa"C}al]QEH74?;:0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE893>=5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF=>7>f:W3+bta&{l$ahc geo-`h)JzhgT^LC>4328Q5)`zo$yj"cjm.egi+bj'DxjaR\NM06365=R8&myj#|i/lgn+bbj&mg$Aob_SCN517582_;#j|i.sd,i`k(omg%h`!Br`o\VDK6<;8;7X> gsd-vc)jmd%lh` km.OqehYUID;???>4U1-dvc(un&gna"ikm/fn+HtfeVXJA<:;1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB143e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL355c=R8&myj#|i/lgn+bbj&mg$Aob_SCN527a3\:$kh!rg-nah)`ld$oa"C}al]QEH7?9o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ90;n7X> gsd-vc)jmd%lh` km.OqehYUID8:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG9<f:W3+bta&{l$ahc geo-`h)JzhgT^LC=20d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM312b>S7'nxm"h mdo,cak)ld%F~lcPR@O104`<]9%l~k }f.ofi*ace'nf#@|nm^PBI736n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK5>8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE;=:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG94e:W3+bta&{l$ahc geo-`h)JzhgT^LC<1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB313e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL125c=R8&myj#|i/lgn+bbj&mg$Aob_SCN777a3\:$kh!rg-nah)`ld$oa"C}al]QEH549o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ;=;m7X> gsd-vc)jmd%lh` km.OqehYUID9>=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF?;?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@=81g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB393e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL1:5`=R8&myj#|i/lgn+bbj&mg$Aob_SCN04`<]9%l~k }f.ofi*ace'nf#@|nm^PBI166n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK398l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE=8:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG??f:W3+bta&{l$ahc geo-`h)JzhgT^LC;50d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM542b>S7'nxm"h mdo,cak)ld%F~lcPR@O734`<]9%l~k }f.ofi*ace'nf#@|nm^PBI1>6n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK318o0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE<;m7X> gsd-vc)jmd%lh` km.OqehYUID?;=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF9;m7X> gsd-vc)jmd%lh` km.OqehYUID?3=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF94?j;T2,cw`)zo%fi`!hdl,gi*KuidUYM@8>f:W3+bta&{l$ahc geo-`h)JzhgT^LC900d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM732b>S7'nxm"h mdo,cak)ld%F~lcPR@O564`<]9%l~k }f.ofi*ace'nf#@|nm^PBI356n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK1<8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE??:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG=:f:W3+bta&{l$ahc geo-`h)JzhgT^LC980d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM7;2a>S7'nxm"h mdo,cak)ld%F~lcPR@O45c=R8&myj#|i/lgn+bbj&mg$Aob_SCN357a3\:$kh!rg-nah)`ld$oa"C}al]QEH169o1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ?;;m7X> gsd-vc)jmd%lh` km.OqehYUID=8=k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF;9?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@9:1g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB773e?P6(o{l%~k!bel-d`h(ce&Gym`Q]AL545c=R8&myj#|i/lgn+bbj&mg$Aob_SCN3=7a3\:$kh!rg-nah)`ld$oa"C}al]QEH1>9l1^<"i}f/pe+hcj'nnf"ic Mscn[WGJ08l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE1::j6[?/fpe*w`(elg$kic!dl-NvdkXZHG3=f:W3+bta&{l$ahc geo-`h)JzhgT^LC730d8Q5)`zo$yj"cjm.egi+bj'DxjaR\NM962b>S7'nxm"h mdo,cak)ld%F~lcPR@O;14`<]9%l~k }f.ofi*ace'nf#@|nm^PBI=06n2_;#j|i.sd,i`k(omg%h`!Br`o\VDK??8l0Y=!hrg,qb*kbe&moa#jb/LpbiZTFE12:j6[?/fpe*w`(elg$kic!dl-NvdkXZHG35 gsd-vc)jmd%lh` km.OqehYUID3==k5Z0.eqb+ta'dof#jjb.eo,IwgjW[KF5:?i;T2,cw`)zo%fi`!hdl,gi*KuidUYM@771g9V4*aun'xm#`kb/ffn*ak(E{kfS_OB983:?P6(o{l%~k!bel-d`h(ce&D:< gsd-vc)jmd%lh` km.L2407>3\:$kh!rg-nah)`ld$oa"@>063:?P6(o{l%~k!bel-d`h(ce&D:<4?7;T2,cw`)zo%fi`!hdl,gi*H69830Y=!hrg,qb*kbe&moa#jb/O3254?<]9%l~k }f.ofi*ace'nf#C?>30;8Q5)`zo$yj"cjm.egi+bj'G;:9<74U1-dvc(un&gna"ikm/fn+K76?830Y=!hrg,qb*kbe&moa#jb/O32=4?<]9%l~k }f.ofi*ace'nf#C?=10;8Q5)`zo$yj"cjm.egi+bj'G;9?<74U1-dvc(un&gna"ikm/fn+K75=830Y=!hrg,qb*kbe&moa#jb/O3134?<]9%l~k }f.ofi*ace'nf#C?=90:8Q5)`zo$yj"cjm.egi+bj'G;8=45Z0.eqb+ta'dof#jjb.eo,J456901^<"i}f/pe+hcj'nnf"ic N0105<=R8&myj#|i/lgn+bbj&mg$B<=:189V4*aun'xm#`kb/ffn*ak(F89<=45Z0.eqb+ta'dof#jjb.eo,J45>901^<"i}f/pe+hcj'nnf"ic N0625<=R8&myj#|i/lgn+bbj&mg$B<:<189V4*aun'xm#`kb/ffn*ak(F8>>=45Z0.eqb+ta'dof#jjb.eo,J420901^<"i}f/pe+hcj'nnf"ic N06:5==R8&myj#|i/lgn+bbj&mg$B<;>9:W3+bta&{l$ahc geo-`h)I9<;:56[?/fpe*w`(elg$kic!dl-M505612_;#j|i.sd,i`k(omg%h`!A1472=>S7'nxm"h mdo,cak)ld%E=89>9:W3+bta&{l$ahc geo-`h)I9<3:56[?/fpe*w`(elg$kic!dl-M537612_;#j|i.sd,i`k(omg%h`!A1712=>S7'nxm"h mdo,cak)ld%E=;;>9:W3+bta&{l$ahc geo-`h)I9?=:56[?/fpe*w`(elg$kic!dl-M53?602_;#j|i.sd,i`k(omg%h`!A163:?P6(o{l%~k!bel-d`h(ce&D:; gsd-vc)jmd%lh` km.L2307>3\:$kh!rg-nah)`ld$oa"@>763:?P6(o{l%~k!bel-d`h(ce&D:;4?6;T2,cw`)zo%fi`!hdl,gi*H608;27X> gsd-vc)jmd%lh` km.L2<67>3\:$kh!rg-nah)`ld$oa"@>843:?P6(o{l%~k!bel-d`h(ce&D:4:?6;T2,cw`)zo%fi`!hdl,gi*H600;37X> gsd-vc)jmd%lh` km.L2=4?<]9%l~k }f.ofi*ace'nf#C?610;8Q5)`zo$yj"cjm.egi+bj'G;2?<74U1-dvc(un&gna"ikm/fn+K7>=830Y=!hrg,qb*kbe&moa#jb/O3:34?<]9%l~k }f.ofi*ace'nf#C?690;8Q5)`zo$yj"cjm.egi+bj'G8;=<74U1-dvc(un&gna"ikm/fn+K47;830Y=!hrg,qb*kbe&moa#jb/O0314?<]9%l~k }f.ofi*ace'nf#C=45Z0.eqb+ta'dof#jjb.eo,J770901^<"i}f/pe+hcj'nnf"ic N33:5<=R8&myj#|i/lgn+bbj&mg$B?<>189V4*aun'xm#`kb/ffn*ak(F;88=45Z0.eqb+ta'dof#jjb.eo,J742901^<"i}f/pe+hcj'nnf"ic N3045<=R8&myj#|i/lgn+bbj&mg$B?<6199V4*aun'xm#`kb/ffn*ak(F;9:56[?/fpe*w`(elg$kic!dl-M667612_;#j|i.sd,i`k(omg%h`!A2212=>S7'nxm"h mdo,cak)ld%E>>;>9:W3+bta&{l$ahc geo-`h)I::=:56[?/fpe*w`(elg$kic!dl-M66?612_;#j|i.sd,i`k(omg%h`!A2532=>S7'nxm"h mdo,cak)ld%E>9=>9:W3+bta&{l$ahc geo-`h)I:=?:56[?/fpe*w`(elg$kic!dl-M611612_;#j|i.sd,i`k(omg%h`!A25;2<>S7'nxm"h mdo,cak)ld%E>8?6;T2,cw`)zo%fi`!hdl,gi*H5=8;27X> gsd-vc)jmd%lh` km.L1167>3\:$kh!rg-nah)`ld$oa"@=543:?P6(o{l%~k!bel-d`h(ce&D99:?6;T2,cw`)zo%fi`!hdl,gi*H5=0;27X> gsd-vc)jmd%lh` km.L1247>3\:$kh!rg-nah)`ld$oa"@=623:?P6(o{l%~k!bel-d`h(ce&D9:8?6;T2,cw`)zo%fi`!hdl,gi*H5>>;27X> gsd-vc)jmd%lh` km.L12<7?3\:$kh!rg-nah)`ld$oa"@=70;8Q5)`zo$yj"cjm.egi+bj'G8<=<74U1-dvc(un&gna"ikm/fn+K40;830Y=!hrg,qb*kbe&moa#jb/O0414?<]9%l~k }f.ofi*ace'nf#C<870;8Q5)`zo$yj"cjm.egi+bj'G8<5<74U1-dvc(un&gna"ikm/fn+K4?9830Y=!hrg,qb*kbe&moa#jb/O0;74?<]9%l~k }f.ofi*ace'nf#C<750;8Q5)`zo$yj"cjm.egi+bj'G83;<74U1-dvc(un&gna"ikm/fn+K4?1820Y=!hrg,qb*kbe&moa#jb/O0:5<=R8&myj#|i/lgn+bbj&mg$B?7>189V4*aun'xm#`kb/ffn*ak(F;38=55Z0.eqb+ta'dof#jjb.eo,J67602_;#j|i.sd,i`k(omg%h`!A323;?P6(o{l%~k!bel-d`h(ce&D89<64U1-dvc(un&gna"ikm/fn+K50911^<"i}f/pe+hcj'nnf"ic N2;2<>S7'nxm"h mdo,cak)ld%E88:W3+bta&{l$ahc geo-`h)I<0;37X> gsd-vc)jmd%lh` km.L654><]9%l~k }f.ofi*ace'nf#C;<199V4*aun'xm#`kb/ffn*ak(F9>1^<"i}f/pe+hcj'nnf"ic N63;?P6(o{l%~k!bel-d`h(ce&D<=<64U1-dvc(un&gna"ikm/fn+K14911^<"i}f/pe+hcj'nnf"ic N672<>S7'nxm"h mdo,cak)ld%E;:?7;T2,cw`)zo%fi`!hdl,gi*H01820Y=!hrg,qb*kbe&moa#jb/O:25==R8&myj#|i/lgn+bbj&mg$B5=>8:W3+bta&{l$ahc geo-`h)I0<;37X> gsd-vc)jmd%lh` km.L;34><]9%l~k }f.ofi*ace'nf#C66169V4*aun'xm#`kb/ffn*ak(F0;37X> gsd-vc)jmd%lh` km.L:54><]9%l~k }f.ofi*ace'nf#C7<199V4*aun'xm#`kb/ffn*ak(F0?:46[?/fpe*w`(elg$kic!dl-M=27?3\:$kh!rg-nah)`ld$oa"@69378Q5)`zo$yj"cjm.egi+bj'V|j~d`key2345:76;<0Y=!hrg,qb*kbe&moa#jb/^tbvlhcmq:;<=2>0?05?P6(o{l%~k!bel-d`h(ce&U}mgaddz3456;9849:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<00=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|56785;82?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>20;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7=80=6:W3+bta&{l$ahc geo-`h)X~hxbbikw01238409:?1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<1?8>348Q5)`zo$yj"cjm.egi+bj'V|j~d`key2345:6078=7X> gsd-vc)jmd%lh` km.]uewoillr;<=>318<11>S7'nxm"h mdo,cak)ld%Tzl|fneg{45674849:6[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<32=63=R8&myj#|i/lgn+bbj&mg$S{o}ioff|567858:2?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>16;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7>>0=6:W3+bta&{l$ahc geo-`h)X~hxbbikw01238729:?1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<1<:>348Q5)`zo$yj"cjm.egi+bj'V|j~d`key2345:5>78=7X> gsd-vc)jmd%lh` km.]uewoillr;<=>326<12>S7'nxm"h mdo,cak)ld%Tzl|fneg{45674;25>;5Z0.eqb+ta'dof#jjb.eo,[sguagnnt=>?0=0::73<]9%l~k }f.ofi*ace'nf#Rxnrhlga}6789692?84U1-dvc(un&gna"ikm/fn+Zpfz`doiu>?01>04;413\:$kh!rg-nah)`ld$oa"Qyaskm``~789:7?<0=6:W3+bta&{l$ahc geo-`h)X~hxbbikw01238649:?1^<"i}f/pe+hcj'nnf"ic _wcqmkbbp9:;<1=<>348Q5)`zo$yj"cjm.egi+bj'V|j~d`key2345:4<78=7X> gsd-vc)jmd%lh` km.]uewoillr;<=>334<11>S7'nxm"h mdo,cak)ld%Tzl|fneg{45674:4996[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<5<11>S7'nxm"h mdo,cak)ld%Tzl|fneg{45674<4996[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<7<11>S7'nxm"h mdo,cak)ld%Tzl|fneg{45674>4996[?/fpe*w`(elg$kic!dl-\rdtnfmos<=>?<9<11>S7'nxm"h mdo,cak)ld%Tzl|fneg{4567404:i6[?/fpe*w`(elg$kic!dl-gkprXa5:5=k5Z0.eqb+ta'dof#jjb.eo,`jssW`6:<3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub02?3e?P6(o{l%~k!bel-d`h(ce&ndyyQf<01=5c=R8&myj#|i/lgn+bbj&mg$hb{{_h>20;7a3\:$kh!rg-nah)`ld$oa"j`uu]j84399o1^<"i}f/pe+hcj'nnf"ic dnww[l:6>7;m7X> gsd-vc)jmd%lh` km.flqqYn48=5=k5Z0.eqb+ta'dof#jjb.eo,`jssW`6:43?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0<711d9V4*aun'xm#`kb/ffn*ak(lfSd2>>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg321<2b>S7'nxm"h mdo,cak)ld%ocxzPi=02:4`<]9%l~k }f.ofi*ace'nf#iazt^k?6786n2_;#j|i.sd,i`k(omg%h`!kotv\m94468l0Y=!hrg,qb*kbe&moa#jb/emvpZo;:=4:j6[?/fpe*w`(elg$kic!dl-gkprXa58>2;0>f:W3+bta&{l$ahc geo-`h)cg|~Te1<8>0d8Q5)`zo$yj"cjm.egi+bj'me~xRg329<2b>S7'nxm"h mdo,cak)ld%ocxzPi=0::4c<]9%l~k }f.ofi*ace'nf#iazt^k?6;7a3\:$kh!rg-nah)`ld$oa"j`uu]j86699o1^<"i}f/pe+hcj'nnf"ic dnww[l:497;m7X> gsd-vc)jmd%lh` km.flqqYn4:85=k5Z0.eqb+ta'dof#jjb.eo,`jssW`68?3?i;T2,cw`)zo%fi`!hdl,gi*bh}}Ub0>:11g9V4*aun'xm#`kb/ffn*ak(lfSd2<5?3f?P6(o{l%~k!bel-d`h(ce&ndyyQf<2<2a>S7'nxm"h mdo,cak)ld%ocxzPi=6=5`=R8&myj#|i/lgn+bbj&mg$hb{{_h>6:4c<]9%l~k }f.ofi*ace'nf#iazt^k?2;7b3\:$kh!rg-nah)`ld$oa"j`uu]j8286m2_;#j|i.sd,i`k(omg%h`!kotv\m9>99l1^<"i}f/pe+hcj'nnf"ic dnww[l:>68n0Y=!hrg,qb*kbe&moa#jb/emvpZoX88n0Y=!hrg,qb*kbe&moa#jb/emvpZoX98o0Y=!hrg,qb*kbe&moa#jb/emvpZoX99;n7X> gsd-vc)jmd%lh` km.flqqYnW8;:i6[?/fpe*w`(elg$kic!dl-gkprXaV;9=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U:?e:W3+bta&{l$ahc geo-`h)cg|~TeR?91d9V4*aun'xm#`kb/ffn*ak(lfSdQ>70g8Q5)`zo$yj"cjm.egi+bj'me~xRgP193f?P6(o{l%~k!bel-d`h(ce&ndyyQf_0;2`>S7'nxm"h mdo,cak)ld%ocxzPi^02a>S7'nxm"h mdo,cak)ld%ocxzPi^035`=R8&myj#|i/lgn+bbj&mg$hb{{_h]154c<]9%l~k }f.ofi*ace'nf#iazt^k\677b3\:$kh!rg-nah)`ld$oa"j`uu]j[756m2_;#j|i.sd,i`k(omg%h`!kotv\mZ439l1^<"i}f/pe+hcj'nnf"ic dnww[lY5=8o0Y=!hrg,qb*kbe&moa#jb/emvpZoX:?;n7X> gsd-vc)jmd%lh` km.flqqYnW;=:i6[?/fpe*w`(elg$kic!dl-gkprXaV83=h5Z0.eqb+ta'dof#jjb.eo,`jssW`U95?>e:W3+bta&{l$ahc geo-`h)cg|~TeR==1d9V4*aun'xm#`kb/ffn*ak(lfSdQ<30g8Q5)`zo$yj"cjm.egi+bj'me~xRgP353f?P6(o{l%~k!bel-d`h(ce&ndyyQf_272`>S7'nxm"h mdo,cak)ld%ocxzPi^62`>S7'nxm"h mdo,cak)ld%ocxzPi^72`>S7'nxm"h mdo,cak)ld%ocxzPi^42`>S7'nxm"h mdo,cak)ld%ocxzPi^52`>S7'nxm"h mdo,cak)ld%ocxzPi^:2`>S7'nxm"h mdo,cak)ld%ocxzPi^;1<>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^68V8Tj8<:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY33[6423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q;;S9<7;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY32[7Ya=;?0Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W13]76==R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_9:U9Sk;=5:W3+bta&{l$ahc geo-`h)nfz~T@]CPMTZ27Z55=2_;#j|i.sd,i`k(omg%h`!fnrv\HUKXE\R:?R:=8:W3+bta&{l$ahc geo-`h)nfz~T@]CPMTZ20Z4Xn<8>7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU?;_206?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]73W=837X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU?:_3]e173<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP8?T??;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX07\07><]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP8Rh:249V4*aun'xm#`kb/ffn*ak(agySA^B_LW[53Y4:<1^<"i}f/pe+hcj'nnf"ic ioqw[IVJWD_S=;Q;299V4*aun'xm#`kb/ffn*ak(agySA^B_LW[52Y5Wo?996[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV>7^111>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^6?V>946[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV>8^0\b0423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q;3S><:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY3;[14?3\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q;2S?Qi5378Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\4?X;;?0Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T<7P4358Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\4Y5Wo?986[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV>_207?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]7X<;20Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T?>P2^d660=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_:9U8>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W21]76==R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_:8U9Sk;=5:W3+bta&{l$ahc geo-`h)nfz~T@]CPMTZ15Z55=2_;#j|i.sd,i`k(omg%h`!fnrv\HUKXE\R9=R:=8:W3+bta&{l$ahc geo-`h)nfz~T@]CPMTZ16Z4Xn<8>7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU<=_206?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]45W=837X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU<<_3]e173<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;9T??;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX31\07><]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP;>T>Rh:249V4*aun'xm#`kb/ffn*ak(agySA^B_LW[61Y4:<1^<"i}f/pe+hcj'nnf"ic ioqw[IVJWD_S>9Q;299V4*aun'xm#`kb/ffn*ak(agySA^B_LW[60Y5Wo?996[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV=5^111>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^5=V>946[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV=6^0\b0423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q8=S><:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY05[14?3\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q8X:Vl>>85Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W29]060=R8&myj#|i/lgn+bbj&mg$ec}{_MRN[HS_:1U?>55Z0.eqb+ta'dof#jjb.eo,mkusWEZFS@[W28]1[c35=2_;#j|i.sd,i`k(omg%h`!fnrv\HUKXE\R95R==5:W3+bta&{l$ahc geo-`h)nfz~T@]CPMTZ1=Z25?2_;#j|i.sd,i`k(omg%h`!fnrv\HUKXE\R9S?Qi5368Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\7Y4:=1^<"i}f/pe+hcj'nnf"ic ioqw[IVJWD_S>R:=8:W3+bta&{l$ahc geo-`h)nfz~T@]CPMTZ04Z4Xn<8>7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU=?_206?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]57W=837X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU=>_3]e173<]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:;T??;4U1-dvc(un&gna"ikm/fn+lht|VF[ARCZX23\07><]9%l~k }f.ofi*ace'nf#d`|t^NSIZKRP:8T>Rh:249V4*aun'xm#`kb/ffn*ak(agySA^B_LW[77Y4:<1^<"i}f/pe+hcj'nnf"ic ioqw[IVJWD_S??Q;299V4*aun'xm#`kb/ffn*ak(agySA^B_LW[76Y5Wo?996[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV<3^111>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^4;V>946[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV<4^0\b0423\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q9?S><:;T2,cw`)zo%fi`!hdl,gi*oi{}UG\@QBUY17[14?3\:$kh!rg-nah)`ld$oa"gasu]OTHYJ]Q9>S?Qi5378Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\63X;;?0Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T>;P4358Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\6Y5Wo?986[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV<_207?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]5X<;=0Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T9Q=_g710>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^3W:8?7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU:P4358Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\0Y5Wo?986[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV:_207?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]3X<;=0Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T;Q=_g710>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^1W:8?7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU8P4358Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\2Y5Wo?986[?/fpe*w`(elg$kic!dl-jjvrXDYGTAXV8_207?P6(o{l%~k!bel-d`h(ce&ceyQCPL]NQ]1X<;=0Y=!hrg,qb*kbe&moa#jb/hlppZJWEVG^T5Q=_g710>S7'nxm"h mdo,cak)ld%bb~zPLQO\IP^?W:8?7X> gsd-vc)jmd%lh` km.kmwqYKXDUFYU6P4358Q5)`zo$yj"cjm.egi+bj'`dxxRB_M^OV\S7'nxm"h mdo,cak)ld%|~dzj_bvqh7473\:$kh!rg-nah)`ld$oa"y}iug\gqtk;8=0Y=!hrg,qb*tfeVxnkb{{_dl27>S7'nxm"h r`o\swYbf8n0Y=!hrg,qb*tt|kf`#jPrrv\evtbo;:0Y=!hrg,qb*tt|kf`#jPrrv\evtboVn:>=5Z0.eqb+ta'{ynae re]qwqYf{{olSi<>c:W3+bta&{l$~~zmlj-q`Ztt|Vidao?k;T2,cw`)zo%yylck.pg[wusWjefne:W3+bta&{l$~~zmlj-q`Ztt|Vxnk1?11d9V4*aun'xm#}{bmi,vaYu{}Uyij2=>0f8Q5)`zo$yj"||tcnh+wbXzz~T~hiP00f8Q5)`zo$yj"||tcnh+wbXzz~T~hiP10f8Q5)`zo$yj"||tcnh+wbXzz~T~hiP20f8Q5)`zo$yj"||tcnh+rtXzz~Tm~|jg328Q5)`zo$yj"||tcnh+rtXzz~Tm~|jg^f265=R8&myj#|i/sqwfim({UyyQnssgd[a46k2_;#j|i.sd,vvredb%|~R||t^alig7c3\:$kh!rg-qwqdkc&}yS}{_bmnf47b3\:$kh!rg-qwqdkc&}yS}{_sgd8586m2_;#j|i.sd,vvredb%|~R||t^pfc9799m1^<"i}f/pe+wusjea${Q}su]qabY79m1^<"i}f/pe+wusjea${Q}su]qabY6i2_XI_QNLHCPg>STM[U]E^GMLD18RFE>3_CN[RZVPD68SFJL:2]N=i5WIMKM\(^CJ):%=-][UC"3*4&F[JCB96V@RB[5?]USD@H<7U][_FLG3>^T\V\HOo5W_BMQAZOINF<0TilPIed8\anXX{cfZh||inl24>^ceVGjfb|Yesqjkk773QnfS@gaosTfvvohfj1j``a|t^gntqe3hffc~zPftno2>dfkb{h6lncjws[hguclx87nbdd:fbpdYdg|d$='k;ecweZeh}g~#=$j4d`vb[firf}"9%i5kauc\gjsi|!9"h6jnt`]`kphs =#o7io{a^alqkr/= n0hlzn_bmvjq.1!m1omyoPcnwmp969n2njxlQlotlw83<76>1ondzjrs48`lh/8 <0hd`'1(58`lh/99#<7iga(03*3>bnf!;9%:5kio*27,1bnf!8;%:5kio*15,1?'8;ekm,75.?2nbb%<;)69gmk.5= =0hd`'27+4?aoi ;=";6jfn)0;-2=cag"95$84dhl+7,1bnf!?":6jfn)4*2>bnf!=":6jfn):*2>bnf!3":6jfn=2=3>bnf5;;2:5kio>25;169gmk:6=7=0hd`317<4?aoi48=5;6jfn=3;:2=cag6:5384dhl?5;1=08;ekm8779?2nbb1<=>69gmk:5;7=0hd`325<4?aoi4;?5;6jfn=05:2=cag69;394dhl?6=803mce0?716:fjj949?2nbb1=?>69gmk:497=0hd`333<4?aoi4:95;6jfn=17:<=cag6897>17:fjj9526?1oec2<>79gmk:36?1oec2:>79gmk:16?1oec28>79gmk:?6?1oec26>69gkpr/8 =0hb{{(0+;?air|!;;%55kotv+54/?3me~x%?=)99gkpr/9:#37iazt)37-==cg|~#=8'7;emvp-71!11ocxz'16+;?air|!;3%55kotv+5bh}}"9>$64dnww,75.02ndyy&=4(:8`jss ;?"46j`uu*12,>bh}}"8%55kotv+75/?3me~x%=>)99gkpr/;;#37iazt)10-==cg|~#?9'7;emvp-52!>1ocxz'4(58`jss <#<7iazt)4*3>bh}}"<%:5kotv+<,10?:8`jss48;546j`uu>26;>bh}}6::364dnww841902ndyy2>8?:8`jss4835;6j`uu>2:==cg|~7>=07;emvp946611ocxz323<;?air|588255kotv?618?3me~x1<:>99gkpr;:?437iazt=04:==cg|~7>507;emvp94>6>1ocxz32?:8`jss4::546j`uu>05;><18:flqq:4;720hb{{<26=e>bh}}6897>18:flqq:4=7=0hb{{<2<4?air|5>5;6j`uu>6:2=cg|~7:394dnww82803me~x1617:flqq:>611nhdh=nff6?`kw|p997kgio^efj`tf|fxTz9Q<,!Zjhlh(JEYI-Ijndpbpjt'99$:"==>4:djbjYdgrT:9v<6^0`hn553ocmcRvcny]50}51W;igg!hffn]dakcui}eyS{:P3-LLJ@*IGGO8ni5iigm\|ihW?>s?;Q=cmi/bl`hWnoeio{os]u0Z5+sjUcm~Qfnu]`hn;7$jUcm~Q|rrv>4)eXzmUm~h21-a\lduXzmUomyoPcnwmp87+kVnbbRyfduj>73*dWakxSz|Pd`vb[firf}7: nQiumn\big`{VxxxRxnl<3/gZojxeoficznthmm[qwm48'oR{|e^gnf`bcmmUyij3?,b]tvZ`umx7: nQzsd]gkprXzz~6=!mPuoffvcjhVfd{0>#c^jbwZiqm{lgcz3?,b]sv`jhimUgmykacx?3(fYcg|~T{dj{h<15(fYj{neeS{oc=0.`[wbXllzd08;,b]kevYrfmoyjaax=1.`[mgtWhffc~zPftno95*dWakxS}{=0.`[agsiVidyczPwhfwl81+kVbjRy}_`ah95*dW|ynShml=1.`[fijefdToaalk<2/gZquWhi`Saax=1.`[wbXxg~ySzgkti?5(fYr{lUm{kzPd`vb[firf}7: nQgar]bhhit|Vof|yw20-a\vaYci}kTob{at^uj`qn:?%iTc{k}fmmt[iip59&hSz|Ppovq[roc|a7= nQrne\ahvsqV~r|h3?,b]tvZbf|hUhcx`{_vkgpm;0$jU{~hb`ae]qabu:9%iThb{{_sqw[sgk59&hSeo|_ecweZeh}g~6#c^rqmhYaaoeTxt~j=431|60+kVzycjQiumn\p|vb59&hS`kbos{\p|vb5;&v>h5iigm\|ihW?>s?;Q=cmi\bl`hWnoeio{os]u0Z5Xpz~T=95iumn4?lhsWjf`46`hccwjha>vugnUna}zv_ujqavn/9 ;?7}|`g^gntqX|axne&=)068twi`Wlg{xtQ{hsgpl-5.9=1{~biPelrw}Zrozlyc$9'>4:rqkbYbey~rSyf}erj+1,713yxdkRkbpu{\pmtb{a6>6=0>b:rqkbYbey~rSyf}erj\evubz}";%vugnUna}zv_ujqavnXizyn~y2::1<2f>vugnUna}zv_ujqavnXflmjxh&?)0`8twi`Wlg{xtQ{hsgplZhboh~n$<'>b:rqkbYbey~rSyf}erj\j`af|l"9%6>58>3yxdkRhzlm30?uthoVl~`aQ{hsgpl-6.9:1{~biPftno[qnumzb#=$?<;qplcZ`rdeUdk|h)0*56=wzfmTjxbc_ujqavn/; ;87}|`g^dvhiYs`{oxd%:&129svjaXn|fgSyf}erj+1,723yxdkRhzlm]wlwct`5?1<3?n;qplcZ`rdeUdk|h^cpw`ts 9#:m6~}of]eqijX|axneQnsrgqp-7.9h1{~biPftno[qnumzbTm~}jru*1-4ga:rqkbYa}efTxe|jsi]bwvcu|!?"=n5rne\bpjkW}byi~fParqfvq:2294:m6~}of]eqijX|axneQaefcwa-6.9h1{~biPftno[qnumzbTbhintd*2-4g'>a:rqkbYa}efTxe|jsi]mabgsm!>"=l5rne\bpjkW}byi~fPndebp`.2!8i0|ah_gwohZrozlycSckhaug?1?69>2xoSnbd119q`Zbf|hUhcx`{(1+24>tcWmkmRm`uov+5,773{nThlzn_bmvjq.5!8:0~iQkauc\gjsi|!9"==5}d^fbpdYdg|d$9'>0:pg[agsiVidycz'5(33?wbXlh~jSnaznu*5-463??;sf\`drfWje~by2<>028vaYci}kTob{at=6=55=ulVnjxlQlotlw8086:2xoSio{a^alqkr;>3:5==5}d^fbpdYdg|d0;0:;sf\ak04ws]geqgXkfex%?&119tvZbf|hUhcx`{(3+24>quWmkmRm`uov+7,773~xThlzn_bmvjq.3!8:0{Qkauc\gjsi|!?"==5xr^fbpdYdg|d$;'>0:uq[agsiVidycz30?33?rtXlh~jSnaznu>2:46<{UomyoPcnwmp949991|~Rjnt`]`kphs4:4:<6y}_ecweZeh}g~783??;vp\`drfWje~by2:>008swYci}kTob{at=494;773~xThlzn_bmvjq:16<1|~Rka6:uq[wusuIJ{=;6k;AB{5?@=<3;p_9:55229c281e85k54:&7P30j09wx8k:09v2`<73t.o87?=;c707?6==m0868jtH5:3?_5e2=q997<;:03955=4$5:b>0553`?<;7>5;n7;3?6=,m<195k4ne794>=h=1<1<7*k6;7;a>hc=3;07b;75;29 a0==1o0bi;52:9l1=2=83.o:7;7e:lg1?5<3f?3?7>5$e491=c3?3i6`k5;78?j3?93:1(i8559g8ja3=>21d9;k50;&g2?30=2do97>4;n75`?6=,m<19:;4ne795>=h=?i1<7*k6;741>hc=3807b;9b;29 a0==>?0bi;53:9l13g=83.o:7;85:lg1?2<3f?=57>5$e491233?<96`k5;48?l3>83:17b;<7;29?j3493:17d;70;29?l3013:17b;?4;29 a0==;=0bi;50:9l155=83.o:7;=7:lg1?7<3f?;>7>5$e4917165`51394?"c>3?9;6`k5;18?j3783:1(i855358ja3=<21d8kh50;&g2?35?2do97;4;n6e`?6=,m<19?94ne792>=hhc=3=07b:ib;29 a0==;=0bi;58:9l0cg=83.o:7;=7:lg1??<3f>m57>5$e491713?9;6`k5;`8?j2a?3:1(i855358ja3=k21d8k850;&g2?35?2do97j4;n6e1?6=,m<19?94ne79a>=h1<7*k6;713>hc=3l07b:i2;29 a0==;=0bi;51198k1`6290/h;4:269m`0<6921d8k>50;&g2?35?2do97?=;:m7ac<72-n=68<8;of6>45<3f>ni7>5$e491715<#l?0>>:5ad4821>=hhc=3;=76a;ec83>!b12<8<7cj::058?j2bi3:1(i855358ja3=9110c9k6:18'`3<2:>1eh84>9:9l15g=83.o:7;=7:lg1?7f32e><44?:%f5>0403gn>63?9;6`k5;3f?>i28<0;6)j9:404?kb228l07b:ie;29 a0==;=0bi;52198k1`4290/h;4:269m`0<5921d8h650;&g2?35?2do97<=;:m7a2<72-n=68<8;of6>75<3`>in7>5$e490ac3>oi6`k5;38?l2e13:1(i854eg8ja3=:21b8o650;&g2?2cm2do97=4;h6a3?6=,m<18ik4ne790>=nhc=3?07d:m4;29 a0=i>7>5$e490ac3>oi6`k5;;8?l2e83:1(i854eg8ja3=i21b8lh50;&g2?2cm2do97l4;h6ba?6=,m<18ik4ne79g>=nhc=3n07d:nc;29 a0=j57>5$e490ac5<#l?0?hh5ad4825>=nhc=3;976g;a783>!b12=nn7cj::018?l2f=3:1(i854eg8ja3=9=10e9o;:18'`3<3ll1eh84>5:9j0d5=83.o:7:ke:lg1?7132c?m?4?:%f5>1bb3gn>6<94;h6b5?6=,m<18ik4ne795==3>oi6`k5;3b?>o3k90;6)j9:5ff?kb228h07d:mf;29 a0=4`<3`>i97>5$e490ac=54i5cb>5<#l?0?hh5ad4815>=n<0l1<7*k6;6ga>hc=38976g;9d83>!b12=nn7cj::318?l31?3:17o:71;295?6=8rB?4=5+de87<4=hl:0;66sm5783>4<729qC85>4$ef913=h=<0;66sm3`83>8htH5:3?_5e284b=::0:n7?>:0:955<6k3;j6?=524825?432831==4>d;3`>4d=9h0:47s+de8673=#=l0>86*"3;3?896*lf;f1?l3003:17b;:1;29?l30j3:17b:7f;29?j30m3:17d:62;29?l3303:1(i8555;8ja3=821b99950;&g2?3312do97?4;h772?6=,m<19974ne796>=n==?1<7*k6;77=>hc=3907d;;4;29 a0===30bi;54:9j115=83.o:7;;9:lg1?3<3`?<;7>5;n70e?6=3f?3;7>5$e491=c3?3i6`k5;38?j3?=3:1(i8559g8ja3=:21d95:50;&g2?3?m2do97=4;n7;7?6=,m<195k4ne790>=h=181<7*k6;7;a>hc=3?07b;71;29 a0==1o0bi;56:9l13c=83.o:7;85:lg1?6<3f?=h7>5$e491233?<96`k5;08?j31j3:1(i855678ja3=;21d9;o50;&g2?30=2do97:4;n75=?6=,m<19:;4ne791>=h=?21<7*k6;741>hc=3<07d;95;29 a0==?<0bi;50:9j132=83.o:7;96:lg1?7<3`?=?7>5$e4913065f57094?"c>3?=:6`k5;18?l3193:1(i855748ja3=<21b9;>50;&g2?31>2do97;4;h7:4?6=3f>2m7>5$e4903>2o6`k5;38?j2>03:1(i8548a8ja3=:21d84950;&g2?2>k2do97=4;n6:2?6=,m<184m4ne790>=h<0?1<7*k6;6:g>hc=3?07b:64;29 a0=<0i0bi;56:9l161=831d9>?50;9j101=83.o:7;:8:lg1?6<3`?>:7>5$e4910>3?>46`k5;08?l32<3:1(i8554:8ja3=;21b98=50;&g2?3202do97:4;h766?6=,m<19864ne791>=n=1:1<75f52:94?=n<091<75f58394?=h=>k1<75`56d94?=h<0:1<75`56f94?=n=>31<75`51694?"c>3?9;6`k5;28?j37;3:1(i855358ja3=921d9=<50;&g2?35?2do97<4;n735?6=,m<19?94ne797>=h=9:1<7*k6;713>hc=3>07b:if;29 a0==;=0bi;55:9l0cb=83.o:7;=7:lg1?0<3f>mo7>5$e491713?9;6`k5;:8?j2ai3:1(i855358ja3=121d8k750;&g2?35?2do97o4;n6e=hhc=3i07b:i6;29 a0==;=0bi;5d:9l0c3=83.o:7;=7:lg1?c<3f>m87>5$e491713?9;6`k5;33?>i3n80;6)j9:404?kb228;07b:i0;29 a0==;=0bi;51398k1ca290/h;4:269m`0<6;21d8hk50;&g2?35?2do97?;;:m7aa<72-n=68<8;of6>43<3f>no7>5$e491715<#l?0>>:5ad4823>=hhc=3;376a;e883>!b12<8<7cj::0;8?j37i3:1(i855358ja3=9h10c8>6:18'`3<2:>1eh84>b:9l15>=83.o:7;=7:lg1?7d32e><:4?:%f5>0403gn>66=4+d78662=il<0:j65`4gg94?"c>3?9;6`k5;03?>i3n:0;6)j9:404?kb22;;07b:j8;29 a0==;=0bi;52398k1c0290/h;4:269m`0<5;21b99?50;&g2?33:2do97>4;h774?6=,m<199<4ne795>=n=:l1<7*k6;776>hc=3807d;5$e491143>oi6`k5;28?l2ei3:1(i854eg8ja3=921b8o750;&g2?2cm2do97<4;h6a=nhc=3>07d:m6;29 a0=i?7>5$e490ac3>oi6`k5;:8?l2e93:1(i854eg8ja3=121b8o>50;&g2?2cm2do97o4;h6bb?6=,m<18ik4ne79f>=nhc=3i07d:nd;29 a0=jn7>5$e490ac3>oi6`k5;33?>o3i10;6)j9:5ff?kb228;07d:n7;29 a0=43<3`>j?7>5$e490ac5<#l?0?hh5ad4823>=nhc=3;376g;a183>!b12=nn7cj::0;8?l2d93:1(i854eg8ja3=9h10e9m?:18'`3<3ll1eh84>b:9j0g`=83.o:7:ke:lg1?7d32c?nh4?:%f5>1bb3gn>63>oi6`k5;03?>o3ih0;6)j9:5ff?kb22;;07d:6f;29 a0=h7>5$e4910`3?>j6`k5;08?l32j3:1(i8554d8ja3=;21b98o50;&g2?32n2do97:4;h76=?6=,m<198h4ne791>=n==l1<7*k6;764>hc=3:07d;;e;29 a0==<:0bi;51:9j11b=83.o:7;:0:lg1?4<3`??o7>5$e491063?><6`k5;68?l33i3:1(i855428ja3==21d9>l50;9l0=83;1<7>t$ef913=O<1=0D96?;n76>5<357>51;294~"cl3>3=6F;869K0=65<4290;w)jk:5f8L1>03A>3<6F<9:&5e?30k2.>o7<4i2a94?=n<<0;66ak8;29?xd3?10;6>4?:1y'`a<3l2B?4:5G4928L6?<,?k19:m4$4a96>o4k3:17d:::188ka>=831vn98l:180>5<7s-no69j4H5:4?M2?82B856*9a;74g>"2k380e>m50;9j00<722eo47>5;|`733<72<0;6=u+de866>N30>1C85>4H2;8 3g==>i0(8m52:k0g?6=3`9n6=44i5794?=nl>0;66ak8;29?xd3?>0;6>4?:1y'`a<3l2B?4:5G4928L6?<,?k19:m4$4a96>o4k3:17d:::188ka>=831vn98m:186>5<7s-no68<4H5:4?M2?82B856*9a;74g>"2k380e>m50;9j7`<722c?97>5;hf4>5<5<3290;w)jk:438L1>03A>3<6*:c;08m6e=831b884?::kg3?6=3fn36=44}c640?6=<3:15;|`736<72=0;6=u+de865>N30>1C85>4$4a96>o4k3:17d:::188ma1=831dh54?::a02c=83>1<7>t$ef914=O<1=0D96?;%7`>7=n;j0;66g;5;29?lb02900ci650;9~f11c290?6=4?{%fg>07<@=2<7E:70:&6g?4>oc?3:17bj7:188yg7f;3:187>50z&g`?363A>3;6F;819'1f<03`9h6=44i5794?=nl>0;66ak8;29?xd6?o0;684?:1y'`a<282B?4:5G4928 0e=:2c8o7>5;h62>5<>ic03:17pl>8183>0<729q/hi4:0:J7<2=O<1:0(8m52:k0g?6=3`>:6=44i5794?=nl>0;66ak8;29?xd6080;684?:1y'`a<282B?4:5G4928 0e=:2c8o7>5;h62>5<>ic03:17pl>8383>0<729q/hi4:0:J7<2=O<1:0(8m52:k0g?6=3`>:6=44i5794?=nl>0;66ak8;29?xd60:0;684?:1y'`a<282B?4:5G4928 0e=:2c8o7>5;h62>5<>ic03:17pl>8583>0<729q/hi4:0:J7<2=O<1:0(8m52:k0g?6=3`>:6=44i5794?=nl>0;66ak8;29?xd60<0;684?:1y'`a<282B?4:5G4928 0e=:2c8o7>5;h62>5<>ic03:17pl>cg83>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd6l80;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl>d283>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd6l<0;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl>d983>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd6l00;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl>db83>1<729q/hi4:1:J7<2=O<1:0(8m52:k0g?6=3`>>6=44ie594?=hl10;66sm1e`94?2=83:p(ij5509K0=1<@=2;7);l:39j7f<722c?97>5;hf4>5<5<3290;w)jk:5g8L1>03A>3<6*:c;08m6e=831b8<4?::k71?6=3fn36=44}c032?6=<3:15;|`142<72=0;6=u+de87a>N30>1C85>4$4a96>o4k3:17d:>:188m13=831dh54?::a65>=83>1<7>t$ef90`=O<1=0D96?;%7`>7=n;j0;66g;1;29?l222900ci650;9~f76>290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg47i3:187>50z&g`?2b3A>3;6F;819'1f<53`9h6=44i5394?=n<<0;66ak8;29?xd58k0;694?:1y'`a<3m2B?4:5G4928 0e=:2c8o7>5;h62>5<>{e9j91<7;50;2x ab==;1C8594H5:3?!3d2>1b?n4?::k0a?6=3`>>6=44ie594?=hl10;66sm1b694?3=83:p(ij54g9K0=1<@=2;7);l:39j7f<722c8i7>5;h62>5<>{e9j?1<7;50;2x ab=:6=44i5794?=hl10;66sm1b:94?3=83:p(ij54g9K0=1<@=2;7);l:39j7f<722c8i7>5;h62>5<>{e9j<1<7;50;2x ab=:6=44i5794?=hl10;66sm1b594?3=83:p(ij54g9K0=1<@=2;7);l:39j7f<722c8i7>5;h62>5<>{e9>81<7=50;2x ab=>:1C8594H5:3?!3d2;l0e8650;9j1<<722eo=7>5;|`22a<72=0;6=u+de85f>N30>1C85>4i5294?=n50;9j1c<722eo=7>5;|`236<72:0;6=u+de857>N30>1C85>4$4a96c=n=10;66g:9;29?jb62900qo?9e;290?6=8r.oh78m;I6;3>N3091b8=4?::k72?6=3`nj6=44oe394?=zj8=26=4<:183!bc2=2=7E:77:J7<5=n<90;66g:f;29?jb62900qo?84;297?6=8r.oh78<;I6;3>N3091/9n4=f:k6o383:17d:9:188mag=831dh<4?::a52g=8391<7>t$ef90=0<@=2<7E:70:k74?6=3`?m6=44oe394?=zj8=>6=4<:183!bc2?90D968;I6;4>"2k38m7d;7:188m0?=831dh<4?::a526=83>1<7>t$ef92g=O<1=0D96?;h63>5<>ic93:17pl>7c83>6<729q/hi4;879K0=1<@=2;7d:?:188m0`=831dh<4?::a520=8391<7>t$ef926=O<1=0D96?;%7`>7`>ic93:17pl>7083>1<729q/hi49b:J7<2=O<1:0e9>50;9j03<722com7>5;nf2>5<53;294~"cl3>3:6F;869K0=6>ic93:17pl>7683>6<729q/hi493:J7<2=O<1:0(8m52g9j1=<722c>57>5;nf2>5<53;294~"cl3>3:6F;869K0=6>ic93:17pl>f983>6<729q/hi493:J7<2=O<1:0(8m52g9j1=<722c>57>5;nf2>5<54;294~"cl31>13A>3;6F;819j05<722c>j7>5;nf2>5<53;294~"cl3<87E:77:J7<5=#=j09j6g:8;29?l3>2900ci?50;9~f4`3290?6=4?{%fg>3d<@=2<7E:70:k74?6=3`>=6=44iec94?=hl80;66sm1gd94?5=83:p(ij54948L1>03A>3<6g;0;29?l3a2900ci?50;9~f4`f29086=4?{%fg>35<@=2<7E:70:&6g?4a3`?36=44i4;94?=hl80;66sm1g794?2=83:p(ij56c9K0=1<@=2;7d:?:188m10=831bhl4?::mg5?6=3th9<=4?:283>5}#lm0?4;5G4958L1>73`>;6=44i4d94?=hl80;66sm1g`94?5=83:p(ij5629K0=1<@=2;7);l:3d8m0>=831b944?::mg5?6=3th:j;4?:583>5}#lm0=n6F;869K0=6>oci3:17bj>:188yg4793:1?7>50z&g`?2?>2B?4:5G4928m16=831b9k4?::mg5?6=3th:jn4?:283>5}#lm0=?6F;869K0=6<,k5f5983>>o213:17bj>:188yg7a?3:187>50z&g`?0e3A>3;6F;819j05<722c?:7>5;hfb>5<5<4290;w)jk:5:5?M2??2B?4=5f4183>>o2n3:17bj>:188yg7al3:1?7>50z&g`?043A>3;6F;819'1f<5n2c>47>5;h7:>5<5<4290;w)jk:5:5?M2??2B?4=5f4183>>o2n3:17bj>:188yg`4290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg`5290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg`6290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg`7290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188ygca290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188ygcb290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg74:3:187>50z&g`?2b3A>3;6F;819'1f<53`9h6=44i5394?=n<<0;66ak8;29?xd6;80;694?:1y'`a<3m2B?4:5G4928 0e=:2c8o7>5;h62>5<>{e9::1<7:50;2x ab=>6=44oe:94?=zj88m6=4;:183!bc2=o0D968;I6;4>"2k380e>m50;9j04<722c?97>5;nf;>5<54;294~"cl3>n7E:77:J7<5=#=j097d=l:188m17=831b884?::mgi4?:583>5}#lm0?i6F;869K0=6<,6g50;694?6|,mn18h5G4958L1>73-?h6?5f3b83>>o393:17d:::188ka>=831vn<;i:187>5<7s-no69k4H5:4?M2?82.>o7<4i2a94?=n<80;66g;5;29?jb?2900qo?:e;290?6=8r.oh7:j;I6;3>N3091/9n4=;h1`>5<>ic03:17pl>5e83>1<729q/hi4;e:J7<2=O<1:0(8m52:k0g?6=3`>:6=44i5794?=hl10;66sm14a94?2=83:p(ij54d9K0=1<@=2;7);l:39j7f<722c?=7>5;h66>5<5<3290;w)jk:5g8L1>03A>3<6*:c;08m6e=831b8<4?::k71?6=3fn36=44}c315?6=<3:15;|`265<72=0;6=u+de87a>N30>1C85>4$4a96>o4k3:17d:>:188m13=831dh54?::a54`=83>1<7>t$ef90`=O<1=0D96?;%7`>7=n;j0;66g;1;29?l222900ci650;9~f47b290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg76l3:187>50z&g`?2b3A>3;6F;819'1f<53`9h6=44i5394?=n<<0;66ak8;29?xd69j0;694?:1y'`a<3m2B?4:5G4928 0e=:2c8o7>5;h62>5<>{e9<>1<7:50;2x ab=3-7=n;j0;66g;1;29?l222900ci650;9~f434290?6=4?{%fg>1c<@=2<7E:70:J0=>"1i3?5<>ic03:17pl>5083>1<729q/hi4;e:J7<2=O<1:0D>74$7c912e<,6g50;694?6|,mn18h5G4958L1>73A927)8n:45`?!3d2;1b?n4?::k75?6=3`>>6=44oe:94?=zj8>m6=4;:183!bc2=o0D968;I6;4>N412.=m7;8c:&6g?4>o3=3:17bj7:188yg76=3:187>50z&g`?2b3A>3;6F;819K7<=#>h0>;n5+5b81?l5d2900e9?50;9j00<722eo47>5;|`251<72=0;6=u+de87a>N30>1C85>4H2;8 3g==>i0(8m52:k0g?6=3`>:6=44i5794?=hl10;66sm10194?2=83:p(ij54d9K0=1<@=2;7E=6;%4b>01d3-?h6?5f3b83>>o393:17d:::188ka>=831vn5<7s-no69k4H5:4?M2?82B856*9a;74g>"2k380e>m50;9j04<722c?97>5;nf;>5<54;294~"cl3>n7E:77:J7<5=O;01/:l4:7b9'1f<53`9h6=44i5394?=n<<0;66ak8;29?xd6990;694?:1y'`a<3m2B?4:5G4928L6?<,?k19:m4$4a96>o4k3:17d:>:188m13=831dh54?::a55?=83>1<7>t$ef90`=O<1=0D96?;%7`>7=n;j0;66g;1;29?l222900ci650;9~f46?290?6=4?{%fg>1c<@=2<7E:70:&6g?4>o3=3:17bj7:188yg77?3:187>50z&g`?2b3A>3;6F;819'1f<53`9h6=44i5394?=n<<0;66ak8;29?xd68?0;694?:1y'`a<3m2B?4:5G4928 0e=:2c8o7>5;h62>5<>{e99?1<7:50;2x ab=>6=44oe:94?=zj8:?6=4;:183!bc2=o0D968;I6;4>"2k380e>m50;9j04<722c?97>5;nf;>5<54;294~"cl3>n7E:77:J7<5=#=j097d=l:188m17=831b884?::mg5}#lm0?i6F;869K0=6<,6g73-?h6?5f3b83>>o393:17d:::188ka>=831vn<:::187>5<7s-no69k4H5:4?M2?82.>o7<4i2a94?=n<80;66g;5;29?jb?2900qo?;4;290?6=8r.oh7:j;I6;3>N3091/9n4=;h1`>5<>ic03:17pl>4283>1<729q/hi4;e:J7<2=O<1:0(8m52:k0g?6=3`>:6=44i5794?=hl10;66sm18`94?2=83:p(ij54d9K0=1<@=2;7);l:39j7f<722c?=7>5;h66>5<5<3290;w)jk:5g8L1>03A>3<6*:c;08m6e=831b8<4?::k71?6=3fn36=44}c3b6?6=<3:15;|`2=c<72=0;6=u+de865>N30>1C85>4$4a93>o4k3:17d:::188ma1=831dh54?::a51<7>t$ef914=O<1=0D96?;%7`>2=n;j0;66g;5;29?lb02900ci650;9~f74e290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f74d290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?<7:186>5<7s-no68<4H5:4?M2?82.>o794i2a94?=n;l0;66g;5;29?lb02900ci650;9~f740290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?<6:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f752290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?=<:186>5<7s-no68<4H5:4?M2?82.>o794i2a94?=n;l0;66g;5;29?lb02900ci650;9~f753290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?=7:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f751290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?=8:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f72?290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?:8:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f722290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?:<:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f726290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn?=i:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6b2290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>j9:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6c6290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>kl:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6`4290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>h;:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6`2290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>h9:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6`0290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>h7:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6b0290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>j7:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6b>290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>jn:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6be290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>jl:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6bc290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>jj:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6ba290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>k?:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6c5290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>k<:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6c3290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>k::186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6c1290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>k8:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6c?290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>k6:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6cf290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>km:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6cc290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>kj:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6ca290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>h?:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f6`6290>6=4?{%fg>1`<@=2<7E:70:&6g?4>o393:17d:::188ka>=831vn>h=:186>5<7s-no69h4H5:4?M2?82.>o7<4i2a94?=n;l0;66g;1;29?l222900ci650;9~f7g2290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?m9:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;h;6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?j>:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;nh6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=n290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?8j:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;3j6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=n3290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?o=:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;k;6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?o<:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;k?6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?om:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;k26=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?ol:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;ko6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?l>:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;h>6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?l7:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;h=6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?l6:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;hj6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?lj:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;i;6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?m=:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;i86=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?m8:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;ii6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=n290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?mj:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;ih6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?mi:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;n;6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?j;:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;n36=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?j6:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;nj6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?jk:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;o:6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?k;:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;o96=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?k9:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;oj6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?kk:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;oi6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?kj:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;om6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?h9:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;l?6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?h8:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;l36=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?hm:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;=:6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?9;:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;=96=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?9::18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;==6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?9n:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;=h6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?9j:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;=m6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=n4290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?6=:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;2<6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=n2290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?67:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;226=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=nd290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?6m:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;3;6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=nc290o6=4?{%fg>a?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?7<:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;3:6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?7::18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;336=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?7l:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;326=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=na?<@=2<7E:70:k01?6=3`9=6=44i2594?=n;10;66g;5;29?l2?2900e9750;9j0d<722c?n7>5;h6;7?6=3`>387>5;nf`>5<503A>3<6g<5;29?l512900e>950;9j7=<722c?97>5;h6;>5<>o3j3:17d:73;29?l2?<3:17bjl:188k11=831vn?7k:18g>5<7s-no6i74H5:4?M2?82c897>5;h15>5<>o3=3:17d:7:188m1?=831b8l4?::k7f?6=3`>3?7>5;h6;0?6=3fnh6=44o5594?=zj;3n6=4k:183!bc2m30D968;I6;4>o4=3:17d=9:188m61=831b?54?::k71?6=3`>36=44i5;94?=n3e<@=2<7E:70:k6=831b944?::k6e?6=3fn:6=44}c62o203:17d;6:188m0g=831dh<4?::a034=83>1<7>t$ef92f=O<1=0D96?;h7;>5<>ic93:17pl;6583>1<729q/hi495:J7<2=O<1:0(8m54b9j1=<722c>57>5;h7b>5<5<3290;w)jk:778L1>03A>3<6*:c;6`?l3?2900e8750;9j1d<722eo=7>5;|`77=<72=0;6=u+de85g>N30>1C85>4i4:94?=n=00;66gka;29?jb62900qo:N3091/9n4;c:k6=831b944?::k6e?6=3fn:6=44}c67`?6=<3:1>o213:17djn:188ka7=831vn9:i:187>5<7s-no6;;4H5:4?M2?82.>o7:l;h7;>5<>ic93:17pl;4d83>1<729q/hi495:J7<2=O<1:0(8m54b9j1=<722c>57>5;h7b>5<5<3290;w)jk:7a8L1>03A>3<6g:8;29?l3>2900eio50;9l`4<722wi88650;694?6|,mn1:85G4958L1>73-?h69m4i4:94?=n=00;66g:a;29?jb62900qo::7;290?6=8r.oh78:;I6;3>N3091/9n4;c:k65}#lm0=96F;869K0=6<,>o213:17d;n:188ka7=831vn9;>:187>5<7s-no6;;4H5:4?M2?82.>o7:l;h7;>5<>ic93:17pl;5283>1<729q/hi49c:J7<2=O<1:0e8650;9j1<<722com7>5;nf2>5<>97>54;294~"cl3<>7E:77:J7<5=#=j0?o6g:8;29?l3>2900e8o50;9l`4<722wi88:50;694?6|,mn1:85G4958L1>73-?h69m4i4:94?=n=00;66g:a;29?jb62900qo::9;290?6=8r.oh78l;I6;3>N3091b954?::k6=?6=3`nj6=44oe394?=zj=?i6=4;:183!bc2??0D968;I6;4>"2k3>h7d;7:188m0?=831b9l4?::mg5?6=3th?9l4?:583>5}#lm0=96F;869K0=6<,>o213:17d;n:188ka7=831vn9;l:187>5<7s-no6;m4H5:4?M2?82c>47>5;h7:>5<>{e<<1C8594H5:3?!3d2=i0e8650;9j1<<722c>m7>5;nf2>5<>h7>54;294~"cl3<>7E:77:J7<5=#=j0?o6g:8;29?l3>2900e8o50;9l`4<722wi?km50;694?6|,mn1:n5G4958L1>73`?36=44i4;94?=nlh0;66ak1;29?xd4nl0;694?:1y'`a<1=2B?4:5G4928 0e="2k3>h7d;7:188m0?=831b9l4?::mg5?6=3th?9k4?:583>5}#lm0=o6F;869K0=6>oci3:17bj>:188yg2193:187>50z&g`?023A>3;6F;819'1f<3k2c>47>5;h7:>5<>{e<1C8594H5:3?!3d2=i0e8650;9j1<<722c>m7>5;nf2>5<54;294~"cl333<@=2<7E:70:&6g?2d3`?36=44i4;94?=n=h0;66ak1;29?xd4nh0;694?:1y'`a<1=2B?4:5G4928 0e=o203:17d;6:188mag=831dh<4?::a057=83>1<7>t$ef920=O<1=0D96?;%7`>1e>o2i3:17bj>:188yg2783:187>50z&g`?023A>3;6F;819'1f<3k2c>47>5;h7:>5<>{e<981<7:50;2x ab=>j1C8594H5:3?l3?2900e8750;9j`d<722eo=7>5;|`741<72=0;6=u+de851>N30>1C85>4$4a90f=n=10;66g:9;29?l3f2900ci?50;9~f164290?6=4?{%fg>33<@=2<7E:70:&6g?2d3`?36=44i4;94?=n=h0;66ak1;29?xd38<0;694?:1y'`a<1k2B?4:5G4928m0>=831b944?::kge?6=3fn:6=44}c633?6=<3:1o203:17d;6:188m0g=831dh<4?::a050=83>1<7>t$ef920=O<1=0D96?;%7`>1e>o2i3:17bj>:188yg2703:187>50z&g`?0d3A>3;6F;819j1=<722c>57>5;hfb>5<5<3290;w)jk:778L1>03A>3<6*:c;6`?l3?2900e8750;9j1d<722eo=7>5;|`74<<72=0;6=u+de851>N30>1C85>4$4a90f=n=10;66g:9;29?l3f2900ci?50;9~f16e290?6=4?{%fg>3e<@=2<7E:70:k6=831b944?::k6e?6=3fn:6=44}c63g?6=<3:1o203:17d;6:188m0g=831dh<4?::a05c=83>1<7>t$ef92f=O<1=0D96?;h7;>5<>ic93:17pl;1183>1<729q/hi495:J7<2=O<1:0(8m54b9j1=<722c>57>5;h7b>5<5<3290;w)jk:778L1>03A>3<6*:c;6`?l3?2900e8750;9j1d<722eo=7>5;|`75d<72=0;6=u+de85g>N30>1C85>4i4:94?=n=00;66gka;29?jb62900qo:>c;290?6=8r.oh78:;I6;3>N3091/9n4;c:k6=831b944?::k6e?6=3fn:6=44}c625?6=<3:1>o213:17djn:188ka7=831vn9?<:187>5<7s-no6;;4H5:4?M2?82.>o7:l;h7;>5<>ic93:17pl;1383>1<729q/hi495:J7<2=O<1:0(8m54b9j1=<722c>57>5;h7b>5<5<3290;w)jk:7a8L1>03A>3<6g:8;29?l3>2900eio50;9l`4<722wi8<850;694?6|,mn1:85G4958L1>73-?h69m4i4:94?=n=00;66g:a;29?jb62900qo:>5;290?6=8r.oh78:;I6;3>N3091/9n4;c:k65}#lm0=96F;869K0=6<,>o213:17d;n:188ka7=831vn9?j:187>5<7s-no6;;4H5:4?M2?82.>o7:l;h7;>5<>ic93:17pl;2183>1<729q/hi49c:J7<2=O<1:0e8650;9j1<<722com7>5;nf2>5<9>7>54;294~"cl3<>7E:77:J7<5=#=j0?o6g:8;29?l3>2900e8o50;9l`4<722wi8??50;694?6|,mn1:85G4958L1>73-?h69m4i4:94?=n=00;66g:a;29?jb62900qo:=3;290?6=8r.oh78l;I6;3>N3091b954?::k6=?6=3`nj6=44oe394?=zj=8>6=4;:183!bc2??0D968;I6;4>"2k3>h7d;7:188m0?=831b9l4?::mg5?6=3th?>94?:583>5}#lm0=96F;869K0=6<,>o213:17d;n:188ka7=831vn9<9:187>5<7s-no6;m4H5:4?M2?82c>47>5;h7:>5<>{e<;21<7:50;2x ab=><1C8594H5:3?!3d2=i0e8650;9j1<<722c>m7>5;nf2>5<9;7>54;294~"cl3<>7E:77:J7<5=#=j0?o6g:8;29?l3>2900e8o50;9l`4<722wi8?750;694?6|,mn1:n5G4958L1>73`?36=44i4;94?=nlh0;66ak1;29?xd3:k0;694?:1y'`a<1=2B?4:5G4928 0e="2k3>h7d;7:188m0?=831b9l4?::mg5?6=3th?>n4?:583>5}#lm0=o6F;869K0=6>oci3:17bj>:188yg25m3:187>50z&g`?023A>3;6F;819'1f<3k2c>47>5;h7:>5<>{e<;n1<7:50;2x ab=><1C8594H5:3?!3d2=i0e8650;9j1<<722c>m7>5;nf2>5<897>54;294~"cl333<@=2<7E:70:&6g?2d3`?36=44i4;94?=n=h0;66ak1;29?xd3;?0;694?:1y'`a<1=2B?4:5G4928 0e=o203:17d;6:188mag=831dh<4?::a067=83>1<7>t$ef920=O<1=0D96?;%7`>1e>o2i3:17bj>:188yg2483:187>50z&g`?023A>3;6F;819'1f<3k2c>47>5;h7:>5<>{e<:81<7:50;2x ab=>j1C8594H5:3?l3?2900e8750;9j`d<722eo=7>5;|`771<72=0;6=u+de851>N30>1C85>4$4a90f=n=10;66g:9;29?l3f2900ci?50;9~f154290?6=4?{%fg>33<@=2<7E:70:&6g?2d3`?36=44i4;94?=n=h0;66ak1;29?xd3;k0;694?:1y'`a<1k2B?4:5G4928m0>=831b944?::kge?6=3fn:6=44}c60`?6=<3:1o203:17d;6:188m0g=831dh<4?::a06e=83>1<7>t$ef920=O<1=0D96?;%7`>1e>o2i3:17bj>:188yg24m3:187>50z&g`?0d3A>3;6F;819j1=<722c>57>5;hfb>5<5<3290;w)jk:778L1>03A>3<6*:c;6`?l3?2900e8750;9j1d<722eo=7>5;|`77c<72=0;6=u+de851>N30>1C85>4$4a90f=n=10;66g:9;29?l3f2900ci?50;9~f126290?6=4?{%fg>3e<@=2<7E:70:k6=831b944?::k6e?6=3fn:6=44}c676?6=<3:1o203:17d;6:188m0g=831dh<4?::a012=83>1<7>t$ef92f=O<1=0D96?;h7;>5<>ic93:17pl;4783>1<729q/hi495:J7<2=O<1:0(8m54b9j1=<722c>57>5;h7b>5<5<3290;w)jk:778L1>03A>3<6*:c;6`?l3?2900e8750;9j1d<722eo=7>5;|`702<72=0;6=u+de85g>N30>1C85>4i4:94?=n=00;66gka;29?jb62900qo:;9;290?6=8r.oh78:;I6;3>N3091/9n4;c:k6=831b944?::k6e?6=3fn:6=44}c67e?6=<3:1>o213:17djn:188ka7=831vn9:l:187>5<7s-no6;;4H5:4?M2?82.>o7:l;h7;>5<>ic93:17pl;4c83>1<729q/hi495:J7<2=O<1:0(8m54b9j1=<722c>57>5;h7b>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;<>6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;<86=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;<:6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?n6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?h6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?j6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?36=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?=6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?86=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?:6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;>m6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;>o6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;>i6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;<26=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;<<6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;?>6=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<2290;w)jk:5d8L1>03A>3<6*:c;08m6e=831b?h4?::k75?6=3`>>6=44oe:94?=zj;>26=4::183!bc2=l0D968;I6;4>"2k380e>m50;9j7`<722c?=7>5;h66>5<5<4290;w)jk:718L1>03A>3<6*:c;30?l3?2900e8750;9l`4<722wi8;h50;194?6|,mn1:>5G4958L1>73-?h6<=4i4:94?=n=00;66ak1;29?xd6;=0;6>4?:1y'`a<1;2B?4:5G4928 0e=9=1b954?::k6=?6=3fn:6=44}cd6>5<4290;w)jk:718L1>03A>3<6*:c;37?l3?2900e8750;9l`4<722wi>5G4958L1>73-?h6<:4i4:94?=n=00;66ak1;29?xd6jh0;6>4?:1y'`a<1;2B?4:5G4928 0e=9=1b954?::k6=?6=3fn:6=44}cg4>5<4290;w)jk:718L1>03A>3<6*:c;37?l3?2900e8750;9l`4<722wii;4?:283>5}#lm0=?6F;869K0=6<,>o213:17bj>:188ygc229086=4?{%fg>35<@=2<7E:70:&6g?733`?36=44i4;94?=hl80;66sme583>6<729q/hi493:J7<2=O<1:0(8m5159j1=<722c>57>5;nf2>5<"2k3;?7d;7:188m0?=831dh<4?::aa7<72:0;6=u+de857>N30>1C85>4$4a951=n=10;66g:9;29?jb62900qok>:180>5<7s-no6;=4H5:4?M2?82.>o7?;;h7;>5<>{em90;6>4?:1y'`a<1;2B?4:5G4928 0e=9=1b954?::k6=?6=3fn:6=44}cfe>5<4290;w)jk:718L1>03A>3<6*:c;37?l3?2900e8750;9l`4<722wihh4?:283>5}#lm0=?6F;869K0=6<,>o213:17bj>:188yg74>3:187>50z&g`?023A>3;6F;819'1f<4:2c>47>5;h7:>5<>{en>0;694?:1y'`a<1=2B?4:5G4928 0e=;;1b954?::k6=?6=3`?j6=44oe394?=zj83j6=4;:183!bc2??0D968;I6;4>"2k38;7d;7:188m0?=831b9l4?::mg5?6=3th9=o4?:583>5}#lm0=96F;869K0=6<,>o213:17d;n:188ka7=831vn5<7s-no6;;4H5:4?M2?82.>o7?j;h7;>5<>ic93:17pl>3983>0<729q/hi498:J7<2=O<1:0(8m5179j1=<722c>57>5;h7b>5<>{en00;684?:1y'`a<102B?4:5G4928 0e=9?1b954?::k6=?6=3`?j6=44i4`94?=hl80;66sm1`394?3=83:p(ij5699K0=1<@=2;7);l:2f8m0>=831b944?::k6e?6=3`?i6=44oe394?=zj8hh6=4::183!bc2?20D968;I6;4>"2k3;m7d;7:188m0?=831b9l4?::k6f?6=3fn:6=44}c3:`?6==3:1o203:17d;6:188m0g=831b9o4?::mg5?6=3th:5;4?:583>5}#lm0=96F;869K0=6<,>o213:17d;n:188ka7=831vn5<7s-no6;=4H5:4?M2?82.>o75<>{e9:k1<7=50;2x ab=>:1C8594H5:3?!3d28>0e8650;9j1<<722eo=7>5;|`ef?6=;3:1o203:17d;6:188ka7=831vn<=l:187>5<7s-no6;;4H5:4?M2?82.>o7==;h7;>5<>ic93:17plid;290?6=8r.oh78:;I6;3>N3091/9n4<2:k6=831b944?::k6e?6=3fn:6=44}c02a?6=<3:1o203:17d;6:188m0g=831dh<4?::a64`=83?1<7>t$ef92==O<1=0D96?;%7`>62>o2i3:17d;m:188ka7=831vn<68:186>5<7s-no6;64H5:4?M2?82.>o7k4i4:94?=n=00;66g:a;29?l3e2900ci?50;9~f77529086=4?{%fg>35<@=2<7E:70:&6g?743`?36=44i4;94?=hl80;66sm18794?3=83:p(ij5699K0=1<@=2;7);l:g9j1=<722c>57>5;h7b>5<>{e9l>1<7;50;2x ab=>11C8594H5:3?!3d2:;0e8650;9j1<<722c>m7>5;h7a>5<5<2290;w)jk:7:8L1>03A>3<6*:c;12?l3?2900e8750;9j1d<722c>n7>5;nf2>5<55;294~"cl3<37E:77:J7<5=#=j08=6g:8;29?l3>2900e8o50;9j1g<722eo=7>5;|`2a5<72<0;6=u+de85<>N30>1C85>4$4a974=n=10;66g:9;29?l3f2900e8l50;9l`4<722wi=h?50;794?6|,mn1:55G4958L1>73-?h6>?4i4:94?=n=00;66g:a;29?l3e2900ci?50;9~f4ge290>6=4?{%fg>3><@=2<7E:70:&6g?4c3`?36=44i4;94?=n=h0;66g:b;29?jb62900qo?nc;291?6=8r.oh787;I6;3>N3091/9n4=e:k6=831b944?::mg5?6=3th:m:4?:483>5}#lm0=46F;869K0=6<,>o213:17d;n:188m0d=831dh<4?::a5d>=83?1<7>t$ef92==O<1=0D96?;%7`>67>o2i3:17d;m:188ka7=831vn<66:180>5<7s-no6;=4H5:4?M2?82.>o774i4:94?=n=00;66ak1;29?xd6n90;6>4?:1y'`a<1;2B?4:5G4928 0e=9=1b954?::k6=?6=3fn:6=44}c3;g?6=<3:15;|`2b4<72=0;6=u+de851>N30>1C85>4$4a964=n=10;66g:9;29?l3f2900ci?50;9~f4>b290>6=4?{%fg>3><@=2<7E:70:&6g?b>o2i3:17d;m:188ka7=831vn5<7s-no6;64H5:4?M2?82.>o7<7;h7;>5<>o2j3:17bj>:188yg7>83:1?7>50z&g`?043A>3;6F;819'1f<5i2c>47>5;h7:>5<5<2290;w)jk:7:8L1>03A>3<6*:c;a8m0>=831b944?::k6e?6=3`?i6=44oe394?=zj8on6=4<:183!bc2?90D968;I6;4>"2k38j7d;7:188m0?=831dh<4?::a647=83?1<7>t$ef92==O<1=0D96?;%7`>74>o2i3:17d;m:188ka7=831vn5<7s-no6;64H5:4?M2?82.>o75<>o2j3:17bj>:188yg71j3:187>50z&g`?023A>3;6F;819'1f<5j2c>47>5;h7:>5<>{e90>1<7;50;2x ab=>11C8594H5:3?!3d2;i0e8650;9j1<<722c>m7>5;h7a>5<5<3290;w)jk:778L1>03A>3<6*:c;0a?l3?2900e8750;9j1d<722eo=7>5;|`2=7<72<0;6=u+de85<>N30>1C85>4$4a9g>o203:17d;6:188m0g=831b9o4?::mg5?6=3th?:84?:483>5}#lm0=46F;869K0=6<,2900e8o50;9j1g<722eo=7>5;|`723<72<0;6=u+de85<>N30>1C85>4$4a90>o203:17d;6:188m0g=831b9o4?::mg5?6=3th?::4?:483>5}#lm0=46F;869K0=6<,2900e8o50;9j1g<722eo=7>5;|`72=<72<0;6=u+de85<>N30>1C85>4$4a9e>o203:17d;6:188m0g=831b9o4?::mg5?6=3th:m;4?:483>5}#lm0=46F;869K0=6<,>o213:17d;n:188m0d=831dh<4?::a5`4=83?1<7>t$ef92==O<1=0D96?;%7`>05>o2i3:17d;m:188ka7=831vn5<7s-no6;64H5:4?M2?82.>o7;<;h7;>5<>o2j3:17bj>:188yg46l3:197>50z&g`?0?3A>3;6F;819'1f<6n2c>47>5;h7:>5<>ic93:17pl>dd83>0<729q/hi498:J7<2=O<1:0(8m53:k65;h1f>5<>ic03:17pl=4183>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd5<=0;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl=4783>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd6l;0;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl>d583>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd6l90;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl>d783>0<729q/hi4;f:J7<2=O<1:0(8m52:k0g?6=3`9n6=44i5394?=n<<0;66ak8;29?xd6l>0;684?:1y'`a<3n2B?4:5G4928 0e=:2c8o7>5;h1f>5<>ic03:17pl=1883>7<729q/hi4:d:J7<2=O<1:0e8950;9l`4<722wi=o750;094?6|,mn19i5G4958L1>73`?<6=44oe394?=zj8om6=4=:183!bc2o2?3:17bj>:188yg46k3:197>50z&g`?013A>3;6F;819'1f<5?2c>47>5;h7:>5<>ic93:17pl>b083>3<729q/hi499:J7<2=O<1:0(8m5289j1=<722c>57>5;h7b>5<>ic93:17pl>9683>6<729q/hi494:J7<2=O<1:0(8m5159j1=<722c>57>5;n43>5<56;294~"cl3<27E:77:J7<5=#=j0>7d;7:188m0?=831b9l4?::k6f?6=3f<;6=44oe394?=zj8o86=4;:183!bc2?=0D968;I6;4>"2k38i7d;7:188m0?=831b9l4?::m54?6=3th:ml4?:583>5}#lm0=;6F;869K0=6<,o5f5983>>o213:17d;n:188k36=831vn5<7s-no6;94H5:4?M2?82.>o7<9;h7;>5<>i183:17p}:7683>3}Y=>=01<7n:4c894g62j3:1>=uQ48f8Z1?73W?;_6:e>X3101U8464^5;4?[2>>2T?585Q486891>?262m=01<6=:e5894>42m=01<6;:e5894>22m=0q~;89;297~X2?0168:85d69>03d=l>1v8=>:181[34927:5k4k8:p1<6=83=pR87?;<026?3>34>=97;m;<652?3>34>=;7;6;<65=o7=l;<65f?5d34><97=l;<640?5d34>j7=l;<36a?5d34;>h7=l;<36g?5d34;>n7=l;<360?5d34;>?7=l;<366?5d34;>=7=l;<364?5d34;?j7=l;<33=?5d34;;47=l;<333?5d34;;:7=l;<331?5d34;;87=l;<3:f?5d34;247=l;<3b6?5d34;2j7=l;<3:a?5d349o97=l;<1g2?5d349n=7=l;<1fg?5d349m?7=l;<1e0?5d349m97=l;<1e2?5d349m;7=l;<1e7=l;<1f7?5d349n87=l;<1f1?5d349n:7=l;<1f3?5d349n47=l;<1f=?5d349nm7=l;<1ff?5d349nh7=l;<1fa?5d349nj7=l;<1e4?5d349m=7=l;<1e6?5d348=:7=l;<051?5d348=87=l;<057?5d348=>7=l;<055?5d348>j7=l;<06a?5d348>h7=l;<06g?5d348>n7=l;<06e?5d348>57=l;<06;7=l;<062?5d348>87=l;<067?5d348>>7=l;<065?5d348><7=l;<07b?5d348?i7=l;<07`?5d348?o7=l;<07f?5d348=o7=l;<05f?5d348=m7=l;<05=?5d348=47=l;<053?5d348=<7=l;<061?5d348?m7=l;<07=?5d34;o>7=l;<3g0?5d34;o<7=l;<3g2?5d34;o;7=l;|q672<72;qU9>94=0f`>a>5cey]1=6<5==36>m4=555>6e<5==<6>m4=55f>6e<5==o6>m4=0f`>6e<58ni6>m4=326>6e<5;:=6>m4=324>6e<5;:36>m4=32:>6e<5;:j6>m4=32a>6e<5o91?n52f380g>;a939h70h?:2a89``=;j16ih4=44l4544444;j5491897e12=2870;5jk0?4>522d590=5<5;n:696<;<0gg?2?;279;44;829>6c4=<1901?8j:5:0?84>i3>3?63=8587<6=::1l185=4=3c1>1>4348j<7:73:?1e4<30:16>l85491897g42=2870;5i>0?4>522`:90=5<5;ki696<;<0b=?2?;279ml4;829>6dc=<1901?ol:5:0?84fl3>3?63=b387<6=::hl185=4=3`2>1>4348i97:73:?1f6<30:16>o:5491897d?2=2870;5j>0?4>522ca90=5<5;h2696<;<0ae?2?;279nk4;829>6gb=<1901?lj:5:0?84d83>3?63=c087<6=::j>185=4=3a1>1>4348h?7:73:?1g=<30:16>n;5491897e02=2870;5k00?4>522bc90=5<5;in696<;<0`g?2?;279oi4;829>6a4=<1901?mi:5:0?84c83>3?63=d487<6=::m9185=4=3f7>1>4348o47:73:?1`3<30:16>i95491897b>2=2870;5ll0?4>522e`90=5<5;no696<;<0f5?2?;279hk4;829>6`6=<1901?k;:5:0?84b:3>3?63=e287<6=::l?185=4=3g5>1>4348nm7:73:?1a=<30:16>h75491897cc2=2870;5mj0?4>522g290=5<5;on696<;<0fb?2?;279j<4;829>6c5=<1901?h9:5:0?84a<3>3?63=f487<6=::o3185=4=3d4>1>4348m47:73:?1bf<30:16>ko5491897`e2=2870<81;6;7>;5>o0?4>5226290=5<5;=?696<;<046?2?;279;>4;829>621=<1901?9::5:0?840>3>3?63=7c87<6=::>2185=4=35b>1>43485>54918971b2=2870<8f;6;7>;50:0?4>5229390=5<5;29696<;<0;3?2?;279484;829>6=0=<1901?67:5:0?84?13>3?63=8b87<6=::1k185=4=3:a>1>43482<7:73:?15k5491897?42=2870<61;6;7>;51;0?4>5228690=5<5;3>696<;<0:6<1=<1901?7l:5:0?84>13>3?63=9c87<6=::0l185=4=3;g>1>43482i7:73:?107<4k2798=44i4?:3y]1=0<5;:j6i64}r7;g?6=:rT>485221;9`==z{<2i6=4={_7;0>;5810o46s|59c94?4|V<2870=;5d99~w04?2909wS;?4:?123a>52z\644=::?91h55rs400>5<5sW?;<63=638g<>{t=;81<77}YvP;fb9>60c=l11v8?j:181[2aj2799i4k8:p14b=838pR9hn;<06g?b?3ty>=n4?:3y]0c?<5;?i6i64}r72f?6=:rT?j55224c9`==z{<;j6=4={_6e3>;5=00o46s|50;94?4|V=l=70<:8;f;?xu2910;6?uQ4g7897302m20q~;>7;296~X3n=16>885d99~w0722909wS:i2:?111?7j7;|q656<72;qU8k>4=371>a>7>52z\7ac=::<;1h55rs432>5<5sW>ni63=518g<>{t=8:1<77}YvP;ec9>61b=l11v8>k:181[2bi2798n4k8:p15e=838pR9k6;<07f?b?3ty>>k4?:3y]15g<5;<45227`9`==z{<8o6=4={_73<>;5>h0o46s|53a94?4|V<:<70<99;f;?xu2:k0;6?uQ5148970?2m20q~;=a;296~X28<16>;95d99~w04>2909wS:ie:?12597j7;|q653<72;qU8h64=36b>a>52z\7a2=::=31h55rs455>5<5sW?=i63>848g<>{t=>>1<77}Y=?i01<6<:e:8yv30:3:1>vP:6c9>5=4=l11v89>:181[31i27:4<4k8:p126=838pR886;<3;4?b?3ty>:k4?:3y]13><58=m6i64}r6gb?6==rT?no5228a900=::0l1885228f900=::0o1885rs5fg>5<2sW>im63=99871>;51>0?963=98871>;51k0?96s|4ea94?3|V=h270<63;66?84><3>>70<65;66?84>>3>>7p};dc83>0}Yb2=?01?7>:57897?52=?0q~:ka;291~X3j>16>5m5449>6=g=<<16>5l5449>6=b=<<1v9j6:186[2e>2794:4;5:?1<3<3=279454;5:?1<<<3=2wx8i950;7xZ1d33483?7::;<0;5?223483>7::;<0;1?223ty?h;4?:4y]0g5<5;=o69;4=3:3>13<5;=n69;4=35e>13o97>55z\7f7=::>h1885226:900=::>k1885226a900=z{=n?6=4:{_6a5>;5?=0?963=76871>;5?<0?963=77871>{t>70<80;66?840:3>>70<83;66?xu3l;0;68uQ4`d897`d2=?01?hn:57897`e2=?01?8i:578yv2c93:19vP;ad9>6c0=<<16>k75449>6c1=<<16>k65449~w1b7290>wS:nd:?1b4<3=279j>4;5:?1b1<3=279j84;5:p0f`=83?pR9ol;<0f`?22348m<7::;<0fa?22348nj7::;|q7g`<7213<5;o269;4=3ga>13<5;oh69;4}r6`g?6==rT?m4522d6900=::l?188522d4900=::l21885rs5aa>5<2sW>j463=e0871>;5m90?963=e3871>;5m:0?96s|4bc94?3|V=k<70>70>7p};c883>0}Yi;5449>6a5=<<16>i:5449>6a0=<<1v9m8:186[2f<279oh4;5:?1`7<3=279ok4;5:?1`5<3=2wx8n850;7xZ1g4348hn7::;<0`e?22348ho7::;<0``?223ty?o84?:4y]0d4<5;i369;4=3a6>13<5;i<69;4=3a:>13h87>55z\7e4=::j;188522b6900=::j8188522b1900=z{=i86=4:{_6b4>;5jo0?963=be871>;5jl0?963=c1871>{t>70>706g4=<<16>lh5449>6g7=<<16>o=5449~w1c4290>wS:me:?1eg<3=279mh4;5:?1ef<3=279mi4;5:p0`4=83?pR9lk;<0b3?22348j47::;<0b=?22348jm7::;|q7a4<7213<5;k=69;4=3c0>13<5;k?69;4}r6f4?6==rT?n85228c900=::1l188522`2900=::h;1885rs5f;>5<2sW>jm63=78871>;5n;0?963=6d871>;50=0?96s|4bf94?3|V=3m70>70>7p};c383>0}Y<0o01?o::578970c2=?01?l?:57897de2=?0q~9?:18682?13n870?9d;63?87003>;70?i3;63?87am3>;7p};6b83>6}:5<5s4>=h7j7;<65b?3?3ty?;:4?:2y>02>=<<168:853d9>021=l11v997:18182003n370:8a;7;?xu3>k0;6>u247a900=:<;7::;<64e?3>3ty?:h4?:5y>023=l>168::5d69>025=l>168;h5d09~w1152909=v3;748g<>;6i:0o;63>7g875>;6090?=63>80875>;60;0?=63>82875>;60=0?=63>84875>;6ko0?=63>d0875>;6l:0?=63>d4875>;6l10?=63>d8875>;6k:0o;63>c5875>;6k<0?=63>c9875>;6k?0?=63>c6875>;61k0?=63>99875>;6i;0?=63>9g8g3>;61l0o;63>8686=>;6l;0?=63>d5875>;6l90?=63>d7875>;6l>0?=63>8`86f>{t<>;1<7?6{<640?b?34;8>7:>;<305?2634;8<7:>;<31b?2634;9i7:>;<31`?2634;=<7:>;<36b?2634;>i7:>;<36`?2634;>o7:>;<36f?2634;>87:>;<367?2634;>>7:>;<365?2634;><7:>;<37b?2634;;57:>;<33;<332?2634;;97:>;<330?263ty?;=4?:5;x91142m201>j::53896b12=;01>k>:53896cd2=;01>h<:53896`32=;01>h::53896`12=;01>h8:53896`?2=;01>j8:53896b?2=;01>j6:53896bf2=;01>jm:53896bd2=;01>jk:53896bb2=;01>ji:53896c72=;01>k=:53896c42=;01>k;:53896c22=;01>k9:53896c02=;01>k7:53896c>2=;01>kn:53896ce2=;01>kk:53896cb2=;01>ki:53896`72=;01>h>:53896`52=;01?89:53897022=;01?8;:53897042=;01?8=:53897062=;01?;i:538973b2=;01?;k:538973d2=;01?;m:538973f2=;01?;6:538973?2=;01?;8:53897312=;01?;;:53897342=;01?;=:53897362=;01?;?:538972a2=;01?:j:538972c2=;01?:l:538972e2=;01?8l:538970e2=;01?8n:538970>2=;01?87:53897002=;01?8?:53897322=;01?:n:538972>2=;0q~:89;297~;3?l0o;63;7e8g3>;3?h0o=6s|46a94?47s4>;<033?26348;47:>;<03=?26348;m7:>;<03f?263489n7:>;<01e?263489o7:>;<01;<01=?26348897:>;<007?b0348887:>;<00;<003?26348?47:>;<073?26348?97:>;<077?26348?=7:>;<00b?26348?>7:>;<074?26348?87:>;<072?263ty?;o4?:0;x911c2m201k=5409>b7<3927m=7:>;17<5ll18<52ed875>;6:80?=63>21875>;69o0?=63>1d875>;69m0?=63>1b875>;69<0?=63>15875>;69:0?=63>13875>;6980?=63>11875>;6<10?=63>46875>;644875>;6<=0?=63>42875>{t9h>1<713<58k26i?4}r3b7?6=;r7:m>4k8:?2=a<2027:584:9:p5=0=838p1<9i:57894>02m;0q~?78;296~;6090?963>888g5>{t91h1<713<582h6i?4}r3;`?6=:r7:4?4;5:?2<`42=?01<6i:e38yv7>93:1>v3>85871>;61;0o=6s|18194?4|582>69;4=0;7>a7536y>5f`=;l16=i?53d9>5a5=;l16=i;53d9>5a>=;l16=i753d9>5f5=;l16=n:53d9>5f3=;l16=n653d9>5f0=;l16=n953d9>7a3=;l16?i853d9>7`7=;l16?hm53d9>7c5=;l16?k:53d9>7c3=;l16?k853d9>7c1=;l16?k653d9>7a1=;l16?i653d9>7a?=;l16?io53d9>7ad=;l16?im53d9>7ab=;l16?ik53d9>7a`=;l16?h>53d9>7`4=;l16?h=53d9>7`2=;l16?h;53d9>7`0=;l16?h953d9>7`>=;l16?h753d9>7`g=;l16?hl53d9>7`b=;l16?hk53d9>7``=;l16?k>53d9>7c7=;l16?k<53d9>5<3=l816=l855c9>5a4=;l16=i:53d9>5a6=;l16=i853d9>5a1=;l1v>70?l3;f;?87ei3?270?mb;7b?87ek3?j70?n8;7b?87c83>>70?m9;74?87e93?37p}>c883><5|58im6i64=3c6>1><5;1><5;h;6964=3`a>1><5;o<6964=3f2>1><5;nh6964=35:>1><5;l96964=34f>1><5;3j6964=3:7>1><5;2m6964=3c1>1><5;k;6964=3c2>1><5;k=6964=3c0>1><5;k?6964=3c4>1><5;k36964=3ca>1><5;k26964=3cb>1><5;kn6964=3c`>1><5;ko6964=3`1>1><5;km6964=3`2>1><5;h>6964=3`0>1><5;h?6964=3`;>1><5;h=6964=3`4>1><5;hh6964=3`:>1><5;hj6964=3`e>1><5;ho6964=3`f>1><5;i;6964=3a2>1><5;i?6964=3a1>1><5;i86964=3a;>1><5;i>6964=3a4>1><5;ii6964=3a:>1><5;ij6964=3af>1><5;ih6964=3ag>1><5;n96964=3ae>1><5;n;6964=3f6>1><5;n86964=3f7>1><5;n36964=3f5>1><5;n<6964=3f:>1><5;nj6964=3ff>1><5;ni6964=3fg>1><5;o:6964=3fe>1><5;o;6964=3g7>1><5;o96964=3g0>1><5;o>6964=3g5>1><5;oj6964=3g;>1><5;o26964=3gg>1><5;oi6964=3g`>1><5;l;6964=3gf>1><5;om6964=3d2>1><5;l86964=3d5>1><5;l?6964=3d6>1><5;l26964=3d4>1><5;l36964=3d`>1><5;lj6964=3da>1><5;=:6964=34e>1><5;=;6964=357>1><5;=96964=350>1><5;=<6964=356>1><5;==6964=35a>1><5;=36964=35b>1><5;=h6964=35g>1><5;2;6964=35f>1><5;=m6964=3:0>1><5;2:6964=3:1>1><5;2<6964=3:6>1><5;2=6964=3:;>1><5;226964=3:`>1><5;2j6964=3:a>1><5;3;6964=3:g>1><5;2n6964=3;0>1><5;3:6964=3;1>1><5;3?6964=3;6>1><5;336964=3;5>1><5;3<6964=3;`>1><5;326964=3;a>1><5;3m6964=3;g>1><5;3n6964=d091<=:9hh19l5rs0`f>534;io7;6;<3b1?3?34;o>7::;<3a5?3>3ty:ol4?:86x94b62m201?o::5;8970c2=301?m9:5;897d72=301?lm:5;897c02=301?j>:5;897bd2=301?96:5;897`52=301?8j:5;897?f2=301?6;:5;897>a2=301?o=:5;897g72=301?o>:5;897g12=301?o<:5;897g32=301?o8:5;897g?2=301?om:5;897g>2=301?on:5;897gb2=301?ol:5;897gc2=301?l=:5;897ga2=301?l>:5;897d22=301?l<:5;897d32=301?l7:5;897d12=301?l8:5;897dd2=301?l6:5;897df2=301?li:5;897dc2=301?lj:5;897e72=301?m>:5;897e32=301?m=:5;897e42=301?m7:5;897e22=301?m8:5;897ee2=301?m6:5;897ef2=301?mj:5;897ed2=301?mk:5;897b52=301?mi:5;897b72=301?j::5;897b42=301?j;:5;897b?2=301?j9:5;897b02=301?j6:5;897bf2=301?jj:5;897be2=301?jk:5;897c62=301?ji:5;897c72=301?k;:5;897c52=301?k<:5;897c22=301?k9:5;897cf2=301?k7:5;897c>2=301?kk:5;897ce2=301?kl:5;897`72=301?kj:5;897ca2=301?h>:5;897`42=301?h9:5;897`32=301?h::5;897`>2=301?h8:5;897`?2=301?hl:5;897`f2=301?hm:5;897162=301?8i:5;897172=301?9;:5;897152=301?9<:5;897102=301?9::5;897112=301?9m:5;8971?2=301?9n:5;8971d2=301?9k:5;897>72=301?9j:5;8971a2=301?6<:5;897>62=301?6=:5;897>02=301?6::5;897>12=301?67:5;897>>2=301?6l:5;897>f2=301?6m:5;897?72=301?6k:5;897>b2=301?7<:5;897?62=301?7=:5;897?32=301?7::5;897??2=301?79:5;897?02=301?7l:5;897?>2=301?7m:5;897?a2=301?7k:5;897?b2=301h<5599>a4<2127:mn4:b:p5g`=83=p1:4c8yv7dj3:159u21e19`==::h?18l5227f90d=::j<18l522c290d=::kh18l522d590d=::m;18l522ea90d=::>318l522g090d=::?o18l5228c90d=::1>18l5229d90d=::h818l522`290d=::h;18l522`490d=::h918l522`690d=::h=18l522`:90d=::hh18l522`;90d=::hk18l522`g90d=::hi18l522`f90d=::k818l522`d90d=::k;18l522c790d=::k918l522c690d=::k218l522c490d=::k=18l522ca90d=::k318l522cc90d=::kl18l522cf90d=::ko18l522b290d=::j;18l522b690d=::j818l522b190d=::j218l522b790d=::j=18l522b`90d=::j318l522bc90d=::jo18l522ba90d=::jn18l522e090d=::jl18l522e290d=::m?18l522e190d=::m>18l522e:90d=::m<18l522e590d=::m318l522ec90d=::mo18l522e`90d=::mn18l522d390d=::ml18l522d290d=::l>18l522d090d=::l918l522d790d=::l<18l522dc90d=::l218l522d;90d=::ln18l522d`90d=::li18l522g290d=::lo18l522dd90d=::o;18l522g190d=::o<18l522g690d=::o?18l522g;90d=::o=18l522g:90d=::oi18l522gc90d=::oh18l5226390d=::?l18l5226290d=::>>18l5226090d=::>918l5226590d=::>?18l5226490d=::>h18l5226:90d=::>k18l5226a90d=::>n18l5229290d=::>o18l5226d90d=::1918l5229390d=::1818l5229590d=::1?18l5229490d=::1218l5229;90d=::1i18l5229c90d=::1h18l5228290d=::1n18l5229g90d=::0918l5228390d=::0818l5228690d=::0?18l5228:90d=::0<18l5228590d=::0i18l5228;90d=::0h18l5228d90d=::0n18l5228g90d=:m80>463j0;7:?87fj3?i7p}>c183>2}:9m?188521b49`==:9ki195521`591d=:9m<188521e5900=:9k;19o5rs0a`>5<>;r7:h84k8:?1e0<3j279:i4;b:?1g3<3j279n=4;b:?1fg<3j279i:4;b:?1`4<3j279hn4;b:?13<<3j279j?4;b:?12`<3j2795l4;b:?1<1<3j2794k4;b:?1e7<3j279m=4;b:?1e4<3j279m;4;b:?1e6<3j279m94;b:?1e2<3j279m54;b:?1eg<3j279m44;b:?1ed<3j279mh4;b:?1ef<3j279mi4;b:?1f7<3j279mk4;b:?1f4<3j279n84;b:?1f6<3j279n94;b:?1f=<3j279n;4;b:?1f2<3j279nn4;b:?1f<<3j279nl4;b:?1fc<3j279ni4;b:?1f`<3j279o=4;b:?1g4<3j279o94;b:?1g7<3j279o>4;b:?1g=<3j279o84;b:?1g2<3j279oo4;b:?1g<<3j279ol4;b:?1g`<3j279on4;b:?1ga<3j279h?4;b:?1gc<3j279h=4;b:?1`0<3j279h>4;b:?1`1<3j279h54;b:?1`3<3j279h:4;b:?1`<<3j279hl4;b:?1``<3j279ho4;b:?1`a<3j279i<4;b:?1`c<3j279i=4;b:?1a1<3j279i?4;b:?1a6<3j279i84;b:?1a3<3j279il4;b:?1a=<3j279i44;b:?1aa<3j279io4;b:?1af<3j279j=4;b:?1a`<3j279ik4;b:?1b4<3j279j>4;b:?1b3<3j279j94;b:?1b0<3j279j44;b:?1b2<3j279j54;b:?1bf<3j279jl4;b:?1bg<3j279;<4;b:?12c<3j279;=4;b:?131<3j279;?4;b:?136<3j279;:4;b:?130<3j279;;4;b:?13g<3j279;54;b:?13d<3j279;n4;b:?13a<3j2794=4;b:?13`<3j279;k4;b:?1<6<3j2794<4;b:?1<7<3j2794:4;b:?1<0<3j2794;4;b:?1<=<3j279444;b:?1ow0?k8;f;?870>3?270:>9;7;?82603?370:94;7;?821;3?370:3?370:?a;7;?82713?370:?d;7;?827k3?370:>0;7;?827n3?370:>c;7;?826j3?370:>3;7;?826:3?370:>6;7;?826=3?370:>f;7;?826m3?370:=2;7;?82593?370:=5;7;?825<3?370:=8;7;?825?3?370:=b;7;?825i3?370:=e;7;?825l3?370:<7;7;?824>3?370:<1;7;?82483?370:<4;7;?824;3?370:cd83>7?|58n26i64=054>0?<58:269;4=534>ag<5=<96io4=51;>ag<5=>o6io4=575>ag<5=?;6io4=570>ag<5=?26io4=57`>ag<5:lh6io4=57e>ag<5:l26io4=2de>ag<5=:96io4=526>ag<5=:36io4=52a>ag<5=:n6io4=53b>ag<5=;:6io4=537>ag<5=;o6io4=503>ag<5=886io4=505>ag<5=826io4=50`>ag<5=9>6io4=50e>ag<5=996io4=51a>ag<5=9n6io4=562>ag<5=>?6io4=564>ag<5=>j6io4=eg91==:9hn19o5rs0fg>5<4s4;oo7::;<3gf?2234;n>7j>;|q2`g<72>q6=il5d99>644==1168;;55`9>030==k168;955c9>03>==016=ik55`9~w7632909w07}::9<188521dd9`4=z{;:o6=4={<033?2234;m<7j>;|q14`<72;q6>=65449>5c7=l81v?>i:18184713>>70?i2;f2?xu5990;6?u221c900=::8;1h<5rs0g`>5<5s48;n7::;<3f`?b63ty:mk4?:3y>5f5=<<16=o75d09~w4d12909w0?l4;66?87ei3n:7p}>b683>7}:9j?188521c`9`4=z{8h?6=4={<3`;|q2f=<72;q6=n85449>5ge=l81v>70?m2;f2?xu6l90;6?u216091==:9m:1h55rs004>5<2s4;<>7;6;<35`?2134;9h7j7;<3bf?3>34;j47;m;|q237<72:q6=:<5d09>53b=lh16=:655g9~w40c2908w0?9d;f2?871m3>;70?89;63?xu6?l0;6?u216:9`4=:91=19o5rs0f1>5<5s4;54?:4y>525==016=;k5479>57c=l116=lm5589>5d3==01v<9<:180870;3n:70?9e;fb?87013?m7p}>6d83>6}:9?o1h<5217d905=:9>k18=5rs04b>5<0s4;<57j>;<3;=?3>34;3o7;n;<3;a?3f34;2<7;6;<35f?3f34;=o7;6;|q2`1<72;q6=::5599>5a2=l11v<<6:186870<3?270?9f;65?875n3n370?nb;7;?87f03?27p}>7583>6}:9>>1h<5217d9`d=:9>k19k5rs04e>5<4s4;=j7j>;<344?2734;5=e==016=5k5589>5<6==116=;l5589>53e==11v:18;521229`==:9hn194521`591g=z{8=>6=4<{<341?b634;<<7jn;<34f?3a3ty:;=4?:2y>526=l816=:?5419>52e=<91v<88:186870j3n:70?7e;7a?87?n3?270?64;7;?871k3?j7p}>2c83>0}:9><19552163903=:9:;1h5521`a91==:9h<1955rs055>5<4s4;<:7j>;<345?bf34;52b=<91v<87:187870k3n:70?7f;7b?87><3?270?62;7:?xu6:j0;69u216591==:9:81h5521`f91d=:9h=1945rs054>5<5s4;<;7j>;<34`?3a3ty::44?:2y>52b=l816=4:55`9>5<4==h1v?:?:18087a03?370?i3;65?84383n37p}j8;290~;6n10>563je;f;?87b<3?270?j1;7a?xu6n10;6>u21g:9`4=:9o91hl521gg91c=z{8l86=4<{<3e7?b634;m87:?;<3eb?273ty98?4?:2y>5c?==116=k:5479>614=l11vh750;6x94`>2<301hh5d99>5`3==h16=ik5599~w4`>2908w0?i9;f2?87a<3nj70?if;7e?xu6n=0;6>u21g69`4=:9o?18=52212905=z{8oi6=49{<3eb?b634;m<7;7;<3e5?3?34;m>7;7;<3fa?3?34;nj7;8;|q101<72:q6=ko5599>5c3=9:5d99~w`g=83>p15`7==01vf483>6}:9o?1h<521g4905=::9;18=5rs0g4>5<2s48;<7j>;<3e4?3>34;m=7;6;<3e6?3>34;ni7;6;|qff?6=5cd==016=k85479>610=l11vf783>6}:9o<1h<521g5905=::9818=5rs0g;>5<2s48;=7j>;<3e5?3f34;m>7;n;<025?3?34;nh7;7;|q17a<720q6=km5599>5c1=995d99>a1<2027n?7;6;<651?3?34>=:7;n;<653?3?34>=47;n;|qfg?6=5ce=l816=k95d`9>654==o1v50><5=<>6874=545>0><5=<<68o4=54;>0>34l86i64=0g5>0?<58o;6874}r3e`?6=:r7:ji4k1:?146<2n2wx=ho50;1x97642m;01??>:4c894cc2b;291~;a;3>>70?=1;f;?8`22<301k95599>b<<2i2wxj94?:3y>b7<3=27m97j>;|qe2?6=:r7m=7::;a713<5o31h<52fc86=>;al3?j7p}ia;296~;bn3>>70hm:e38yv`d2909w0kj:5789cb=l81v<;n:186874:3>>70?90;f;?874<3?270?<6;7;?87403?j7p}>3283>7}:9:;188521269`4=z{89>6=4={<304?2234;8:7j>;|q272<72=q6=?h5449>56>=l816=>o5589>56e==h1v<=6:181875m3>>70?5<5s4;=<7::;<360?b?3ty:8i4?:3y>50`=<<16=8=5d99~w43>290?w0?:f;f;?874<3?370?<6;7:?87403?i7p}>4b83>7}:950b=<<16=8?5d99~w4302909w0?:d;f;?87403?27p}>4`83>7}:93ty:844?:3y>50d=<<16=9h5d99~w4322909w0?:b;f;?874k3?37p}>0g83>7}:9;;188521079`==z{8:n6=4={<314?2234;:87j7;|q25d<72=q6=?>5d99>b0<2027m;7;6;0d52z?25c<3=27:=>4k8:p54?=839p18;296~;69l0o463i9;7:?xu68k0;6?u210f900=:98;1h55rs034>5<4s4;:h7j7;0><5on1945rs02b>5<5s4;:o7::;<324?b?3ty:=;4?:3y>54e=l116ji4:8:p514=838p1<;;:578942?2m20q~?;1;296~;6=:0?963>468g<>{t9=:1<713<58>=6i64}r30b?6=:r7:9<4;5:?200k50;0x94372=?01<:;:e:8yv74l3:1>v3>4g871>;6<:0o46s|11194?4|58;>69;4=02:>a>7>52z?251<3=27:<54k8:p557=838p1078g<>{tno0;6?u2103900=:99?1h55rsgg94?4|58;;69;4=027>a>7>52z?24=<3=27oi7j>;|q266<72;q6==95449>`c5d09~w4422909w0??5;66?8c62m;0q~?=6;296~;68=0?963j2;f2?xu6>80;6?u2155900=:m:0o=6s|17094?4|58>=69;4=d69`4=z{8<86=4={<371?2234o>6i?4}r350?6=:r7:894;5:?f2?b63ty::84?:3y>515=<<16i:4k1:p59`86=>;6i80>m63>9e86e>;61?0>463>9486f>;61>0>563>8`86=>{t9031<7=t=0;;>13<58k969;4=0;b>a758z?2==029g871>;61l0?963>a08g5>{t90o1<7a><58k:6864}r65e?6=9>q6>?l53d9>67g=;l16>?m53d9>67>=;l16>?953d9>67?=;l16>>;53d9>665=;l16>>:53d9>66>=;l16>>853d9>661=;l16>9653d9>611=;l16>9;53d9>615=;l16>9?53d9>66`=;l16><<5d09>614=;l16>9>53d9>612=;l16>9853d9~w7732909w0<=b;66?846m3n:7p}=2483>0}::;h1h552225900=::8o1955220d91d=:9ml1945rs33;>5<5s489m7::;<02`?b63ty9>94?:7y>67g=l116>>85449>64c==h16>5`6==h16>1}::;i1h55222:900=::8l195521d291==z{;;=6=4={<01;|q167<72>q6>?65d99>662=<<16>64d==016>5ac==016>=}::;=1h552221900=::8k1945220`91d=:9l;19l5220f91<=::8319:5220a91==z{;;<6=4={<01=?22348:n7j>;|q166<72?q6>?75d99>663=<<16>5`7==116>64e==h1v?5<3s48887j7;<075?2234;n97;m;<076?223ty9??4?:2y>66>=l116>965449>5`0==11v?=?:187844>3n370<;5;66?87b>3?j70<;6;66?xu5;80;6>u22259`==::==188521d791==z{;9h6=463z?1004<8:?1e1<40279m:4<8:?1e=<40279mo4<8:?1e<<40279ml4<8:?1e`<40279mn4<8:?1ea<40279n?4<8:?1ec<40279n<4<8:?1f0<40279n>4<8:?1f1<40279n54<8:?1f3<40279n:4<8:?1ff<40279n44<8:?1fd<40279nk4<8:?1fa<40279nh4<8:?1g5<40279o<4<8:?1g1<40279o?4<8:?1g6<40279o54<8:?1g0<40279o:4<8:?1gg<40279o44<8:?1gd<40279oh4<8:?1gf<40279oi4<8:?1`7<40279ok4<8:?1`5<40279h84<8:?1`6<40279h94<8:?1`=<40279h;4<8:?1`2<40279h44<8:?1`d<40279hh4<8:?1`g<40279hi4<8:?1a4<40279hk4<8:?1a5<40279i94<8:?1a7<40279i>4<8:?1a0<40279i;4<8:?1ad<40279i54<8:?1a<<40279ii4<8:?1ag<40279in4<8:?1b5<40279ih4<8:?1ac<40279j<4<8:?1b6<40279j;4<8:?1b1<40279j84<8:?1b<<40279j:4<8:?1b=<40279jn4<8:?1bd<40279jo4<8:?134<40279:k4<8:?135<40279;94<8:?137<40279;>4<8:?132<40279;84<8:?133<40279;o4<8:?13=<40279;l4<8:?13f<40279;i4<8:?1<5<40279;h4<8:?13c<402794>4<8:?1<4<402794?4<8:?1<2<40279484<8:?1<3<40279454<8:?1<<<402794n4<8:?14<8:?1=4<402795?4<8:?1=1<40279584<8:?1==<402795;4<8:?1=2<402795n4<8:?1=<<402795o4<8:?1=c<402795i4<8:?1=`<4027n97;7;0?592y>615=l116>l;5369>63b=;>16>n85369>6g6=;>16>ol5369>6`1=;>16>i?5369>6ae=;>16>:75369>6c4=;>16>;k5369>616>5:5369>6=`=;>16>l<5369>6d6=;>16>l?5369>6d0=;>16>l=5369>6d2=;>16>l95369>6d>=;>16>ll5369>6d?=;>16>lo5369>6dc=;>16>lm5369>6db=;>16>o<5369>6d`=;>16>o?5369>6g3=;>16>o=5369>6g2=;>16>o65369>6g0=;>16>o95369>6ge=;>16>o75369>6gg=;>16>oh5369>6gb=;>16>ok5369>6f6=;>16>n?5369>6f2=;>16>n<5369>6f5=;>16>n65369>6f3=;>16>n95369>6fd=;>16>n75369>6fg=;>16>nk5369>6fe=;>16>nj5369>6a4=;>16>nh5369>6a6=;>16>i;5369>6a5=;>16>i:5369>6a>=;>16>i85369>6a1=;>16>i75369>6ag=;>16>ik5369>6ad=;>16>ij5369>6`7=;>16>ih5369>6`6=;>16>h:5369>6`4=;>16>h=5369>6`3=;>16>h85369>6`g=;>16>h65369>6`?=;>16>hj5369>6`d=;>16>hm5369>6c6=;>16>hk5369>6``=;>16>k?5369>6c5=;>16>k85369>6c2=;>16>k;5369>6c?=;>16>k95369>6c>=;>16>km5369>6cg=;>16>kl5369>627=;>16>;h5369>626=;>16>::5369>624=;>16>:=5369>621=;>16>:;5369>620=;>16>:l5369>62>=;>16>:o5369>62e=;>16>:j5369>6=6=;>16>:k5369>62`=;>16>5=5369>6=7=;>16>5<5369>6=1=;>16>5;5369>6=0=;>16>565369>6=?=;>16>5m5369>6=g=;>16>5l5369>6<6=;>16>5j5369>6=c=;>16>4=5369>6<7=;>16>4<5369>6<2=;>16>4;5369>6<>=;>16>485369>6<1=;>16>4m5369>616>4l5369>6<`=;>16>4j5369>616i;4:8:?f1?3>3ty9?l4?:81x97262m201?o::248970c2:<01?m9:24897d72:<01?lm:24897c02:<01?j>:24897bd2:<01?96:24897`52:<01?8j:24897?f2:<01?6;:24897>a2:<01?o=:24897g72:<01?o>:24897g12:<01?o<:24897g32:<01?o8:24897g?2:<01?om:24897g>2:<01?on:24897gb2:<01?ol:24897gc2:<01?l=:24897ga2:<01?l>:24897d22:<01?l<:24897d32:<01?l7:24897d12:<01?l8:24897dd2:<01?l6:24897df2:<01?li:24897dc2:<01?lj:24897e72:<01?m>:24897e32:<01?m=:24897e42:<01?m7:24897e22:<01?m8:24897ee2:<01?m6:24897ef2:<01?mj:24897ed2:<01?mk:24897b52:<01?mi:24897b72:<01?j::24897b42:<01?j;:24897b?2:<01?j9:24897b02:<01?j6:24897bf2:<01?jj:24897be2:<01?jk:24897c62:<01?ji:24897c72:<01?k;:24897c52:<01?k<:24897c22:<01?k9:24897cf2:<01?k7:24897c>2:<01?kk:24897ce2:<01?kl:24897`72:<01?kj:24897ca2:<01?h>:24897`42:<01?h9:24897`32:<01?h::24897`>2:<01?h8:24897`?2:<01?hl:24897`f2:<01?hm:24897162:<01?8i:24897172:<01?9;:24897152:<01?9<:24897102:<01?9::24897112:<01?9m:248971?2:<01?9n:248971d2:<01?9k:24897>72:<01?9j:248971a2:<01?6<:24897>62:<01?6=:24897>02:<01?6::24897>12:<01?67:24897>>2:<01?6l:24897>f2:<01?6m:24897?72:<01?6k:24897>b2:<01?7<:24897?62:<01?7=:24897?32:<01?7::24897??2:<01?79:24897?02:<01?7l:24897?>2:<01?7m:24897?a2:<01?7k:24897?b2:<01h95599>a3<212wx>>750;;1844n3n37070707070<89;16?84a:39>70<9e;16?84>i39>70<74;16?84?n39>707039>70707070707070707039>707070707070707070707070707070707070707070707070707070707070707070<9f;16?840839>70<84;16?840:39>70<83;16?840?39>70<85;16?840>39>70<8b;16?840039>70<8a;16?840k39>70<8d;16?84?839>70<8e;16?840n39>70<73;16?84?939>70<72;16?84??39>70<75;16?84?>39>70<78;16?84?139>70<7c;16?84?i39>70<7b;16?84>839>70<7d;16?84?m39>70<63;16?84>939>70<62;16?84><39>70<65;16?84>039>70<66;16?84>?39>70<6c;16?84>139>70<6b;16?84>n39>70<6d;16?84>m39>70k8:4;8yv5?l3:1>v3;3>;0o=6s|3c394?4|5:n>6i64=36:>1352z?0`3<3=27?=:4k1:p7ge=838p1>j9:e:8972f2=?0q~=n3;296~;4m80?963;398g5>{t;j=1<7a><5;?>69;4}r1be?6=:r78in4;5:?70av3;3=90o=6s|3bd94?4|5:l86i64=344>1352z?0b1<3=27?9>4k1:p7a6=838p1>h;:e:8970?2=?0q~=nd;296~;4n<0?963;578g5>{t;m;1<7a><5;<269;4}r1ba?6=:r78j;4;5:?71<v3;3=j0o=6s|3e194?4|5:l<6i64=34a>1352z?0b=<3=27?9k4k1:p7a2=838p1>h7:e:8970d2=?0q~=7e;296~;4l>0?963{t;k81<7a><5;>i69;4}r1;b?6=:r78h54;5:?0bf83:1>v3;4no0o=6s|3c694?4|5:n26i64=36g>1352z?0`d<3=27?jn:e:8972b2=?0q~=62;296~;4lk0?963;048g5>{t;k<1<7a><5;>m69;4}r1:7?6=:r78hn4;5:?74=<3:1>v3;38k0o=6s|3c:94?4|5:no6i64=372>1352z?0``<3=27?jj:e:897352=?0q~=66;296~;4lo0?963;108g5>{t;kk1<7a><5;?869;4}r1:3?6=:r78i=4;5:?75113:1>v3;39h0o=6s|3cf94?4|5:o96i64=375>1352z?0a6<3=27?=i4k1:p7gc=838p1>k<:e:897302=?0q~=6b;296~;4m=0?963;218g5>{t;kl1<7a><5;?369;4}r1:g?6=:r78i84;5:?76650;0x96c22m201?;6:578yv5>l3:1>v3;3:?0o=6s|3b394?4|5:o=6i64=37b>1352z?0a2<3=27?>44k1:p7f4=838p1>k8:e:8973e2=?0q~=6f;296~;4m10?963;2b8g5>{t;j91<7a><5;?h69;4}r1b4?6=:r78i44;5:?76c2m201?;k:578yv5f93:1>v3;3;;0o=6s|3b794?4|5:oj6i64=37f>137>52z?0ag<3=27??84k1:p7f0=838p1>km:e:8973a2=?0q~=n4;296~;4mm0?963;3c8g5>{t;j21<7a><5;<:69;4}r1b1?6=:r78ih4;5:?77`3:1>v3;3<80o=6s|3bc94?4|5:om6i64=340>1352z?0b5<3=27?894k1:p7fd=838p1>h?:e:897032=?0q~=n8;296~;4n80?963;468g5>{t;ji1<7a><5;<>69;4}r1b=?6=:r78j?4;5:?70d3:1>8u22`790=2<5;n:696;;<05a?2?<2795l4;859>6d5=<1>01?o7:5:7?84fk3>3863=b087<1=::k?185:4=3`:>1>3348ii7:74:?1g7<30=16>n95496897ee2=2?70;5l=0?49522e:90=2<5;no696;;<0f5?2?<279i84;859>6`g=<1>01?kj:5:7?84a;3>3863=f687<1=::oh185:4=352>1>3348<97:74:?13d<30=16>:k5496897>52=2?70<77;6;0>;50k0?495228290=2<5;3?696;;<0:030=l81v>68:18184f=3><70:94;7b?xu3><0;6?;t=34g>1>3348h:7:74:?1b7<30=16>5h5496897g52=2?70;5ik0?49522`d90=2<5;h?696;;<0a6f7=<1>01?m::5:7?84di3>3863=cd87<1=::m9185:4=3f4>1>3348on7:74:?1a5<30=16>h:5496897c>2=2?70;5n80?49522g490=2<5;lj696;;<044?2?<279;94;859>62>=<1>01?9k:5:7?84?93>3863=8787<1=::1k185:4=3:f>1>33482?7:74:?1=2<30=16>4m5496891022m;0q~=8c;296~;5>m0?;63;6586=>{t;821<711<5=;26874}r653?6=:o>5496897bd2=2?70<89;6;0>;5i90?49522`690=2<5;k2696;;<0b`?2?<279n?4;859>6g0=<1>01?ln:5:7?84en3>3863=c287<1=::j2185:4=3a`>1>3348o<7:74:?1`0<30=16>i75496897bb2=2?70;5m?0?49522d`90=2<5;om696;;<0e0?2?<279j54;859>6ce=<1>01?9=:5:7?840>3>3863=7c87<1=::>l185:4=3:0>1>3348347:74:?14?5496897?22=2?70<69;6;0>;51l0?49524759`4=z{::96=4={<0a4?2034>=?7;6;|q72=<72;?p1?lm:5:7?84b?3>3863=8587<1=::h;185:4=3c5>1>3348jm7:74:?1e`<30=16>o=5496897d02=2?70;5k90?49522b690=2<5;i2696;;<0``?2?<279h?4;859>6a0=<1>01?jn:5:7?84cn3>3863=e287<1=::l2185:4=3g`>1>3348m<7:74:?1b0<30=16>k754968970a2=2?70<83;6;0>;5?>0?495226a90=2<5;2;696;;<0;1?2?<279444;859>6=b=<1>01?7=:5:7?84>>3>3863=9c87<1=::0l185:4=54;>a752z?1fg<3?27?:>4:a:p76?=838p1?k8:558917?2{t;;o1<711<5=;36874}r16e?6=:r79;44;7:?77<<212wx?9:50;0x97`52==019=n:4;8yv53n3:1>v3=6d873>;3;h0>m6s|37;94?4|5;3j6994=56e>0g52z?1<1<3?27??44:a:p73>=838p1?6i:558912a2<30q~=9c;296~;5i;0?;63;5386=>{t;?k1<711<5=>n6874}r15f?6=:r79m<4;7:?70`<2i2wx?;h50;0x97g12==019;>:4c8yv51l3:1>v3=a2873>;3=;0>m6s|37g94?4|5;k?6994=572>0?52z?1e2<3?27?984:9:p727=838p1?o7:55891322{t;>81<711<5=??6874}r147?6=:r79ml4;7:?711<2i2wx?:950;0x97gb2==019;8:4c8yv50=3:1>v3=ab873>;3=10>m6s|36494?4|5;ko6994=574>0?52z?1f7<3?27?9l4:9:p72>=838p1?oi:558913e2<30q~=89;296~;5j80?;63;5c86e>{t;>o1<711<5=?n68o4}r14f?6=:r79n>4;7:?71d<2i2wx?:j50;0x97d32==019;j:4;8yv5?93:1>v3=b9873>;3>80>56s|36d94?4|5;h=6994=57g>0?52z?1f2<3?27?9i4:a:p7=2=838p1?ll:55891072{t;191<711<5=<;6874}r1;hm:4;8yv5?>3:1>v3=bd873>;4nk0>m6s|39;94?4|5;i;6994=2db>0g52z?1g4<3?278jh4:9:p6cb=838p1?m;:55896`c2{t;1i1<711<5:lo6874}r134?6=:r79o54;7:?745<212wx>kk50;0x97e22==019>>:4;8yv4an3:1>v3=c6873>;3880>m6s|31694?4|5;ii6994=527>0g52z?1g<<3?27?<=4:a:p755=838p1?mn:55891632<30q~=?7;296~;5kl0?;63;0686=>{t;9?1<711<5=:86874}r132?6=:r79oi4;7:?746<2i2wx?=o50;0x97b52==019>9:4c8yv5703:1>v3=cg873>;38>0>m6s|31;94?4|5;n;6994=525>0?52z?1`0<3?27?<44:9:p75d=838p1?j<:558916f2<30q~=?c;296~;5l=0?;63;0`86e>{t;8;1<711<5=:o68o4}r13b?6=:r79h;4;7:?74<<2i2wx?<>50;0x97b02==019>k:4;8yv56:3:1>v3=d8873>;38j0>56s|30194?4|5;nj6994=52`>0g52z?1``<3?27?5;296~;5lm0?;63;1186e>{t;8k1<711<5=;868o4}r123?6=:r79hk4;7:?74c<2i2wx?<750;0x97c72==019?<:4;8yv56l3:1>v3=e5873>;39?0>56s|30`94?4|5;o96994=531>0?52z?1a6<3?27?=?4:a:p74c=838p1?k::55891712f;296~;5m?0?;63;1486=>{t;;81<711<5=;h68o4}r114?6=:r79i54;7:?750<2i2wx???50;0x97c>2==019?l:4;8yv55>3:1>v3=ee873>;39o0>56s|33694?4|5;oi6994=53a>0?52z?1af<3?27?=o4:a:p77?=838p1?h?:558917b2{t;;21<711<5=;n6874}r11e?6=:r79j<4;7:?767<212wx??l50;0x97`42==019<=:4c8yv55n3:1>v3=f7873>;3:<0>56s|33a94?4|5;l?6994=502>0?52z?1b0<3?27?><4:a:p764=838p1?h6:558914320?;63;2486e>{t;:;1<711<5=8?6874}r101?6=:r79jn4;7:?762<212wx?>=50;0x97`f2==019<7:4;8yv54<3:1>v3=fc873>;3:10>m6s|32:94?4|5;=:6994=50a>0g52z?12c<3?27?>:4:a:p761=838p1?9?:558914e2<30q~={t;:k1<711<5=8j6874}r10f?6=:r79;>4;7:?76d<2i2wx?>h50;0x97102==019v3=74873>;3:l0>m6s|32g94?4|5;==6994=50g>0?7>52z?13g<3?27??=4:9:p716=838p1?97:55891562<30q~=;1;296~;5?h0?;63;3086e>{t;=91<711<5=9;68o4}r171?6=:r79;i4;7:?771<212wx?9650;0x97>72==019=<:4c8yv53>3:1>v3=7d873>;3;=0>m6s|35594?4|5;=m6994=510>0?52z?1<6<3?27??;4:9:p71?=838p1?6>:55891502<30q~=;a;296~;50;0?;63;3686e>{t;=o1<711<5=9o68o4}r17g?6=:r79484;7:?773<2i2wx?9j50;0x97>12==019=k:4;8yv5283:1>v3=89873>;3;j0>56s|34394?4|5;226994=51`>0g87>52z?1{t;<=1<711<5=>868o4}r161?6=:r794i4;7:?77c<2i2wx?8850;0x97>b2==019:<:4;8yv52j3:1>v3=92873>;356s|34:94?4|5;3:6994=561>0?57>52z?1=7<3?27?8?4:a:p70e=838p1?7;:55891212{t;?:1<711<5=>268o4}r16a?6=:r795;4;7:?700<2i2wx?8h50;0x97?02==019:6:4;8yv51;3:1>v3=9b873>;356s|37394?4|5;326994=56;>0?7>52z?1=g<3?27?854:a:p731=838p1?7i:558912e2{t;?<1<711<5=>i6874}r62=?6=:r7?=:4:8:?75<v3;6386<>;3>=0o=6s|47194?4|5=<96874=540>a78m7>52z?77=<2027??l4k1:p06?=838p19=7:4;8915>2m;0q~:;f;296~;3463;4g8g5>{t<=o1<70?<5=>n6i?4}r66v3;5186<>;3=;0o=6s|44394?4|5=?;6874=572>a7>97>52z?716<2027?984k1:p002=838p19;<:4;891332m;0q~::b;296~;3=00>463;5c8g5>{t<0?<5=?j6i?4}r66a?6=:r7?9n4:8:?71`v3;4nl0o=6s|3gf94?4|5:lh6874=2dg>a7==7>52z?71c<2027?:<4k1:p036=838p19;i:4;891072m;0q~=ib;296~;4n00>463{t;ok1<70?<5:lj6i?4}r635?6=:r78jk4:8:?74450;0x96`a2<3019>?:e38yv27<3:1>v3;0386<>;38=0o=6s|41194?4|5=:96874=520>a7;;7>52z?740<2027?<:4k1:p050=838p19>::4;891612m;0q~:?a;296~;3810>463;0`8g5>{t<931<70?<5=:26i?4}r63`?6=:r7?l:e38yv2683:1>v3;0d86<>;3990o=6s|41d94?4|5=:n6874=52e>a7:o7>52z?75d<2027?=n4k1:p04d=838p19?n:4;8917e2m;0q~:>3;296~;3980>463;128g5>{t<881<70?<5=;96i?4}r622?6=:r7?=94:8:?753v3;1e86<>;39o0o=6s|40g94?4|5=;o6874=53f>a79>7>52z?765<2027?>?4k1:p077=838p19463;248g5>{t<;>1<70?<5=8?6i?4}r61;4:8:?76=v3;2886<>;3:k0o=6s|43c94?4|5=826874=50b>a79i7>52z?76f<2027?>h4k1:p07b=838p19463;368g5>{t<:<1<70?<5=9=6i?4}r605?6=:r7?>k4:8:?774>50;0x914a2<3019=?:e38yv24<3:1>v3;3386<>;3;=0o=6s|42194?4|5=996874=510>a78h7>52z?77g<2027??i4k1:p06e=838p19=m:4;8915d2m;0q~:;0;296~;3;l0>463;418g5>{t<:l1<70?<5=9m6i?4}r677?6=:r7?8<4:8:?7063:1>v3;4586<>;3?6874=566>a7?57>52z?702<2027?844k1:p01>=838p19:8:4;8912?2m;0q~:;c;296~;3463;4b8g5>{t<=h1<70?<5=>i6i?4}r65=?6=:;853d9>633=;l16>;:53d9>635=;l16>;<53d9>637=;l16>8h53d9>60c=;l16>8j53d9>60e=;l16>8l53d9>60g=;l16>8753d9>60>=;l16>8953d9>600=;l16>8:53d9>605=;l16>8<53d9>607=;l16>8>53d9>61`=;l16>9k53d9>61b=;l16>9m53d9>61d=;l16>;m53d9>63d=;l16>;o53d9>63?=;l16>;653d9>631=;l16>;>53d9>603=;l16>9o53d9>61?=;l16=485d09~wd1=838p1563>b08g5>{ti?0;6?u220g91<=::8i1:=5rs303>5<5s48:j7;6;<02g?b63ty:mh4?:3y>5=1==116=495619~w4c32909w0?j4;f2?87b;3?j7p}>e483>7}:9l?1h<521d191<=z{8o=6=4={<3f2?b634;n?7;7;|q2a5<72;q6=h>5d09>5`4==11v:18187b93n:70?j2;7:?xu6ik0;6?u21``9`4=:9hk19l5rs0c`>5<5s4;jo7j>;<3be?3>3ty:h:4?:3y>5db==116=i95d99~w4gc2909w0?nd;f2?87fi3?37p}>a483>7}:9h?1h<521`491d=z{8k<6=4={<3b3?b634;j57;7;|q2e=<72;q6=l65d09>5d?==01vll50;4x94>>2<201<6l:4:894>b2<201<6i:4:894?52<201<6n:e38yv0a2909w0?60;f2?87?n3?i7p}na;297~;6ml0o=63=1086f>;6mm0>n6s|a983>7}:9?h1955219c925=z{j;1<7a7<583?68l4}ra6>5<5s4;=o7j>;<3:6?3e3ty:m;4?:3y>5d0=l816=l755`9~w4bb2909w0?j2;7b?87cm3n:7p}81;296~;6m;0>n63>e2854>{t0>0;6?u21`;91g=:9hk1:=5rs8;94?4|58nn68l4=0fe>36f7oh7>52z\7fd=:;h0?nl5+46d9g7=z{=nh6=4={_6a=>;4i3>i56*;7g8`1>{tvP;b79>7d<3j?1/8:h57b9~w1b02909wS:m4:?0e?2e<2.?;k477:p0a0=838pR9l<;<1b>1d43->l1m?5rs5f0>5<5sW>i<63"3?o0j:6s|4e094?4|V=km70=n:5ce?!20n3k<7p};d083>7}Yo54`g8 11a2h20q~:k0;296~X3im16?l4;ae9'02`=i01v9mi:181[2fk278m7:nc:&73cdbhn7>52z\7e==:;h0?m55+46d9e`=z{=ij6=4={_6b3>;4i3>j;6*;7g8bb>{tvP;a59>7d<3i=1/8:h5b39~w1e12909wS:n3:?0e?2f;2.?;k4m3:p0f3=838pR9o=;<1b>1g53->l1n;5rs5g5>5<5sW>h=63"3?o0i;6s|4d794?4|V=i;70=n:5a3?!20n3h37p};e583>7}Yo54cd8 11a2k30q~:j3;296~X3jl16?l4;bd9'02`=jh1v9k=:181[2el278m7:md:&73cgbo47>52z\7ed=:;h0?ml5+46d9f`=z{=io6=4={_6:b>;4i3>2j6*;7g8ab>{t>0;6?uQ575896g==?=0(99i:b18yv30?3:1>vP:769>7d<2?>1/8:h5c59~w01>2909wS;89:?0e?3012.?;k4l6:p1=6=838pR86?;<1b>0>73->4=2c91<6<,==m6n64}r71<9523`8641=#<>l1ol5rs405>5<5sW?;?63"3?o0hn6s|53794?4|V<:970=n:421?!20n3ih7p}:2583>7}Y=9;01>o55138 11a2jn0q~;=3;296~X28916?l4:019'02`=kl1v8<=:181[2an278m7:if:&73c<0:2wx9?>50;0xZ1`c349j69hk;%64b?143ty>=k4?:3y]0ce<5:k18km4$55e>2252z\7bg=:;h0?jo5+46d930=z{<;o6=4={_6ee>;4i3>mm6*;7g842>{t=8i1<7vP;f69>7d<3n>1/8:h5789~w07>2909wS:i6:?0e?2a>2.?;k48a:p14>=838pR9h:;<1b>1`23->l1;h5rs437>5<5sW>m=63"3?o07}Yo54dd8 11a21;0q~;>1;296~X3ml16?l4;ed9'02`=0;1v8??:181[2bl278m7:jd:&73c33ty>=352z\7ad=:;h0?il5+46d9<3=z{<:h6=4={_6f=>;4i3>n56*;7g8;<>{t=;l1<7vP:099>7d<2811/8:h58c9~w04d2909wS;?7:?0e?37?2.?;k47c:p17d=838pR8>9;<1b>0613->l14k5rs402>5<5sW>m?63"3?o02<6s|50494?4|V=o370=n:5g;?!20n33:7p}:0c83>7}Yo54d58 11a2090q~;<1;296~X2;816?l4:309'02`=1=1v8=8:181[34?278m7;<7:&73c<>=2wx9:850;0xZ00b349j688j;%64b??13ty>;94?:3y]13b<5:k19;j4$55e><152z\62f=:;h0>:n5+46d9===z{<=96=4={_75f>;4i3?=n6*;7g8:e>{t=>;1<7vP:699>7d<2>11/8:h59e9~w0>a2909wS;77:?0e?3??2.?;k46e:p1=b=838pR869;<1b>0>13->4}r7;f?6=:rT>49523`86<1=#<>l1m<5rs4:b>5<5sW?3?63"3?o0j?6s|59;94?4|V<2970=n:4:1?!20n3k?7p}:8983>7}Y=1;01>o55938 11a2h?0qp`>3e394?4|@=2;7p`>3e094?4|@=2;7p`>3e194?4|@=2;7p`>3e694?4|@=2;7p`>3e794?4|@=2;7p`>3e494?4|@=2;7p`>3e594?4|@=2;7p`>3e:94?4|@=2;7p`>3e;94?4|@=2;7p`>3ec94?4|@=2;7p`>3e`94?4|@=2;7p`>3ea94?4|@=2;7p`>3ef94?4|@=2;7p`>3eg94?4|@=2;7p`>3ed94?4|@=2;7p`>3d294?4|@=2;7p`>3d394?4|@=2;7p`>3d094?4|@=2;7p`>3d194?4|@=2;7p`>3d694?4|@=2;7p`>3d794?4|@=2;7p`>3d494?4|@=2;7p`>3d594?4|@=2;7p`>3d:94?4|@=2;7p`>3d;94?4|@=2;7p`>3dc94?4|@=2;7p`>3d`94?4|@=2;7p`>3da94?4|@=2;7p`>3df94?4|@=2;7p`>3dg94?4|@=2;7p`>3dd94?4|@=2;7p`>3g294?4|@=2;7p`>3g394?4|@=2;7p`>3g094?4|@=2;7p`>3g194?4|@=2;7p`>3g694?4|@=2;7p`>3g794?4|@=2;7p`>3g494?4|@=2;7p`>3g594?4|@=2;7p`>3g:94?4|@=2;7p`>3g;94?4|@=2;7p`>3gc94?4|@=2;7p`>3g`94?4|@=2;7p`>3ga94?4|@=2;7p`>3gf94?4|@=2;7p`>3gg94?4|@=2;7p`>3gd94?4|@=2;7p`>41294?4|@=2;7p`>41394?4|@=2;7p`>41094?4|@=2;7p`>41194?4|@=2;7p`>41694?4|@=2;7p`>41794?4|@=2;7p`>41494?4|@=2;7p`>41594?4|@=2;7p`>41:94?4|@=2;7p`>41;94?4|@=2;7p`>41c94?4|@=2;7p`>41`94?4|@=2;7p`>41a94?4|@=2;7p`>41f94?4|@=2;7p`>41g94?4|@=2;7p`>41d94?4|@=2;7p`>40294?4|@=2;7p`>40394?4|@=2;7p`>40094?4|@=2;7p`>40194?4|@=2;7p`>40694?4|@=2;7p`>40794?4|@=2;7p`>40494?4|@=2;7p`>40594?4|@=2;7p`>40:94?4|@=2;7p`>40;94?4|@=2;7p`>40c94?4|@=2;7p`>40`94?4|@=2;7p`>40a94?4|@=2;7p`>40f94?4|@=2;7p`>40g94?4|@=2;7p`>40d94?4|@=2;7p`>43294?4|@=2;7p`>43394?4|@=2;7p`>43094?4|@=2;7p`>43194?4|@=2;7p`>43694?4|@=2;7p`>43794?4|@=2;7p`>43494?4|@=2;7p`>43594?4|@=2;7p`>43:94?4|@=2;7p`>43;94?4|@=2;7p`>43c94?4|@=2;7p`>43`94?4|@=2;7p`>43a94?4|@=2;7p`>43f94?4|@=2;7p`>16194?7|@=2;7p`>1e294?7|@=2;7p`>1e394?7|@=2;7p`>1e094?7|@=2;7p`>1e194?7|@=2;7p`>1e694?7|@=2;7p`>1e794?7|@=2;7p`>1e494?7|@=2;7p`>1e594?7|@=2;7p`>1e:94?7|@=2;7p`>1e;94?7|@=2;7p`>1ec94?7|@=2;7p`>1e`94?7|@=2;7p`>1ea94?7|@=2;7p`>1ef94?7|@=2;7p`>1eg94?7|@=2;7p`>1ed94?7|@=2;7p`>1d294?7|@=2;7p`>1d394?7|@=2;7p`>1d094?7|@=2;7p`>1d194?7|@=2;7p`>1d694?7|@=2;7p`>1d794?7|@=2;7p`>1d494?7|@=2;7p`>1d594?7|@=2;7p`>1d:94?7|@=2;7p`>1d;94?7|@=2;7p`>1dc94?7|@=2;7p`>1d`94?7|@=2;7p`>1da94?7|@=2;7p`>1df94?7|@=2;7p`>1dg94?7|@=2;7p`>1dd94?7|@=2;7p`>1g294?7|@=2;7p`>1g394?7|@=2;7p`>1g094?7|@=2;7p`>1g194?7|@=2;7p`>1g694?7|@=2;7p`>1g794?7|@=2;7p`>1g494?7|@=2;7p`>1g594?7|@=2;7p`>1g:94?7|@=2;7p`>1g;94?7|@=2;7p`>1gc94?7|@=2;7p`>1g`94?7|@=2;7p`>1ga94?7|@=2;7p`>1gf94?7|@=2;7p`>1gg94?7|@=2;7p`>1gd94?7|@=2;7p`>21294?7|@=2;7p`>21394?7|@=2;7p`>21094?7|@=2;7p`>21194?7|@=2;7p`>21694?7|@=2;7p`>21794?7|@=2;7p`>21494?7|@=2;7p`>21594?7|@=2;7p`>21:94?7|@=2;7p`>21;94?7|@=2;7p`>21c94?7|@=2;7p`>21`94?7|@=2;7p`>21a94?7|@=2;7p`>21f94?7|@=2;7p`>21g94?7|@=2;7p`>21d94?7|@=2;7p`>20294?7|@=2;7p`>20394?7|@=2;7p`>20094?7|@=2;7p`>20194?7|@=2;7p`>20694?7|@=2;7p`>20794?7|@=2;7p`>20494?7|@=2;7p`>20594?7|@=2;7p`>20:94?7|@=2;7p`>20;94?7|@=2;7p`>20c94?7|@=2;7p`>20`94?7|@=2;7p`>20a94?7|@=2;7p`>20f94?7|@=2;7p`>20g94?7|@=2;7p`>20d94?7|@=2;7p`>23294?7|@=2;7p`>23394?7|@=2;7p`>23094?7|@=2;7p`>23194?7|@=2;7p`>23694?7|@=2;7p`>23794?7|@=2;7p`>23494?7|@=2;7p`>23594?7|@=2;7p`>23:94?7|@=2;7p`>23;94?7|@=2;7p`>23c94?7|@=2;7p`>23`94?7|@=2;7p`>23a94?7|@=2;7p`>23f94?7|@=2;7p`>23g94?7|@=2;7p`>23d94?7|@=2;7p`>22294?7|@=2;7p`>22394?7|@=2;7p`>22094?7|@=2;7p`>22194?7|@=2;7p`>22694?7|@=2;7p`>22794?7|@=2;7p`>22494?7|@=2;7p`>22594?7|@=2;7p`>22:94?7|@=2;7p`>22;94?7|@=2;7p`>22c94?7|@=2;7p`>22`94?7|@=2;7p`>22a94?7|@=2;7p`>22f94?7|@=2;7p`>22g94?7|@=2;7p`>22d94?7|@=2;7p`>25294?7|@=2;7p`>25394?7|@=2;7p`>25094?7|@=2;7p`>25194?7|@=2;7p`>25694?7|@=2;7p`>25794?7|@=2;7p`>25494?7|@=2;7p`>25594?7|@=2;7p`>25:94?7|@=2;7p`>25;94?7|@=2;7p`>25c94?7|@=2;7p`>25`94?7|@=2;7p`>25a94?7|@=2;7p`>25f94?7|@=2;7p`>25g94?7|@=2;7p`>25d94?7|@=2;7p`>24294?7|@=2;7p`>24394?7|@=2;7p`>24094?7|@=2;7p`>24194?7|@=2;7p`>24694?7|@=2;7p`>24794?7|@=2;7p`>24494?7|@=2;7p`>24594?7|@=2;7p`>24:94?7|@=2;7p`>24;94?7|@=2;7p`>24c94?7|@=2;7p`>24`94?7|@=2;7p`>24a94?7|@=2;7p`>24f94?7|@=2;7p`>24g94?7|@=2;7p`>24d94?7|@=2;7p`>27294?7|@=2;7p`>27394?7|@=2;7p`>27094?7|@=2;7p`>27194?7|@=2;7p`>27694?7|@=2;7p`>27794?7|@=2;7p`>27494?7|@=2;7p`>27594?7|@=2;7p`>27:94?7|@=2;7p`>27;94?7|@=2;7p`>27c94?7|@=2;7p`>27`94?7|@=2;7p`>27a94?7|@=2;7p`>27f94?7|@=2;7p`>27g94?7|@=2;7p`>27d94?7|@=2;7p`>26294?7|@=2;7p`>26394?7|@=2;7p`>26094?7|@=2;7p`>26194?7|@=2;7p`>26694?7|@=2;7p`>26794?7|@=2;7p`>26494?7|@=2;7p`>26594?7|@=2;7p`>26:94?7|@=2;7p`>26;94?7|@=2;7p`>26c94?7|@=2;7p`>26`94?7|@=2;7p`>26a94?7|@=2;7p`>26f94?7|@=2;7p`>26g94?7|@=2;7p`>26d94?7|@=2;7p`>29294?7|@=2;7p`>29394?7|@=2;7p`>29094?7|@=2;7p`>29194?7|@=2;7p`>29694?7|@=2;7p`>29794?7|@=2;7p`>29494?7|@=2;7p`>29594?7|@=2;7p`>29:94?7|@=2;7p`>29;94?7|@=2;7p`>29c94?7|@=2;7p`>29`94?7|@=2;7p`>29a94?7|@=2;7p`>29f94?7|@=2;7p`>29g94?7|@=2;7p`>29d94?7|@=2;7p`>28294?7|@=2;7p`>28394?7|@=2;7p`>28094?7|@=2;7p`>28194?7|@=2;7p`>28694?7|@=2;7p`>28794?7|@=2;7p`>28494?7|@=2;7p`>28594?7|@=2;7p`>28:94?7|@=2;7p`>28;94?7|@=2;7p`>28c94?7|@=2;7p`>28`94?7|@=2;7p`>28a94?7|@=2;7p`>28f94?7|@=2;7p`>28g94?7|@=2;7p`>28d94?7|@=2;7p`>2`294?7|@=2;7p`>2`394?7|@=2;7p`>2`094?7|@=2;7p`>2`194?7|@=2;7p`>2`694?7|@=2;7p`>2`794?7|@=2;7p`>2`494?7|@=2;7p`>2`594?7|@=2;7p`>2`:94?7|@=2;7p`>2`;94?7|@=2;7p`>2`c94?7|@=2;7p`>2``94?7|@=2;7p`>2`a94?7|@=2;7p`>2`f94?7|@=2;7p`>2`g94?7|@=2;7p`>2`d94?7|@=2;7p`>2c294?7|@=2;7p`>2c394?7|@=2;7p`>2c094?7|@=2;7p`>2c194?7|@=2;7p`>2c694?7|@=2;7p`>2c794?7|@=2;7p`>2c494?7|@=2;7p`>2c594?7|@=2;7p`>2c:94?7|@=2;7p`>2c;94?7|@=2;7p`>2cc94?7|@=2;7p`>2c`94?7|@=2;7p`>2ca94?7|@=2;7p`>2cf94?7|@=2;7p`>2cg94?7|@=2;7p`>2cd94?7|@=2;7p`>2b294?7|@=2;7p`>2b394?7|@=2;7p`>2b094?7|@=2;7p`>2b194?7|@=2;7p`>2b694?7|@=2;7p`>2b794?7|@=2;7p`>2b494?7|@=2;7p`>2b594?7|@=2;7p`>2b:94?7|@=2;7p`>2b;94?7|@=2;7p`>2bc94?7|@=2;7p`>2b`94?7|@=2;7p`>2ba94?7|@=2;7p`>2bf94?7|@=2;7p`>2bg94?7|@=2;7p`>2bd94?7|@=2;7p`>2e294?7|@=2;7p`>2e394?7|@=2;7p`>2e094?7|@=2;7p`>2e194?7|@=2;7p`>2e694?7|@=2;7p`>2e794?7|@=2;7p`>2e494?7|@=2;7p`>2e594?7|@=2;7p`>2e:94?7|@=2;7p`>2e;94?7|@=2;7p`>2ec94?7|@=2;7p`>2e`94?7|@=2;7p`>2ea94?7|@=2;7p`>2ef94?7|@=2;7p`>2eg94?7|@=2;7p`>2ed94?7|@=2;7p`>2d294?7|@=2;7p`>2d394?7|@=2;7p`>2d094?7|@=2;7p`>2d194?7|@=2;7p`>2d694?7|@=2;7p`>2d794?7|@=2;7p`>2d494?7|@=2;7p`>2d594?7|@=2;7p`>2d:94?7|@=2;7p`>2d;94?7|@=2;7p`>2dc94?7|@=2;7p`>2d`94?7|@=2;7p`>2da94?7|@=2;7p`>2df94?7|@=2;7p`>2dg94?7|@=2;7p`>2dd94?7|@=2;7p`>2g294?7|@=2;7p`>2g394?7|@=2;7p`>2g094?7|@=2;7p`>2g194?7|@=2;7p`>2g694?7|@=2;7p`>2g794?7|@=2;7p`>2g494?7|@=2;7p`>2g594?7|@=2;7p`>2g:94?7|@=2;7p`>2g;94?7|@=2;7p`>2gc94?7|@=2;7p`>2g`94?7|@=2;7p`>2ga94?7|@=2;7p`>2gf94?7|@=2;7p`>2gg94?7|@=2;7p`>2gd94?7|@=2;7p`>31294?7|@=2;7p`>31394?7|@=2;7p`>31094?7|@=2;7p`>31194?7|@=2;7p`>31694?7|@=2;7p`>31794?7|@=2;7p`>31494?7|@=2;7p`>31594?7|@=2;7p`>31:94?7|@=2;7p`>31;94?7|@=2;7p`>31c94?7|@=2;7p`>31`94?7|@=2;7p`>31a94?7|@=2;7p`>31f94?7|@=2;7p`>31g94?7|@=2;7p`>31d94?7|@=2;7p`>30294?7|@=2;7p`>30394?7|@=2;7p`>30094?7|@=2;7p`>30194?7|@=2;7p`>30694?7|@=2;7p`>30794?7|@=2;7p`>30494?7|@=2;7p`>30594?7|@=2;7p`>30:94?7|@=2;7p`>30;94?7|@=2;7p`>30c94?7|@=2;7p`>30`94?7|@=2;7p`>30a94?7|@=2;7p`>30f94?7|@=2;7p`>30g94?7|@=2;7p`>30d94?7|@=2;7p`>33294?7|@=2;7p`>33394?7|@=2;7p`>33094?7|@=2;7p`>33194?7|@=2;7p`>33694?7|@=2;7p`>33794?7|@=2;7p`>33494?7|@=2;7p`>33594?7|@=2;7p`>33:94?7|@=2;7p`>33;94?7|@=2;7p`>33c94?7|@=2;7p`>33`94?7|@=2;7p`>33a94?7|@=2;7p`>33f94?7|@=2;7p`>33g94?7|@=2;7p`>33d94?7|@=2;7p`>32294?7|@=2;7p`>32394?7|@=2;7p`>32094?7|@=2;7p`>32194?7|@=2;7p`>32694?7|@=2;7p`>32794?7|@=2;7p`>32494?7|@=2;7p`>32594?7|@=2;7p`>32:94?7|@=2;7p`>32;94?7|@=2;7p`>32c94?7|@=2;7p`>32`94?7|@=2;7p`>32a94?7|@=2;7p`>32f94?7|@=2;7p`>32g94?7|@=2;7p`>32d94?7|@=2;7p`>35294?7|@=2;7p`>35394?7|@=2;7p`>35094?7|@=2;7p`>35194?7|@=2;7p`>35694?7|@=2;7p`>35794?7|@=2;7p`>35494?7|@=2;7p`>35594?7|@=2;7p`>35:94?7|@=2;7p`>35;94?7|@=2;7p`>35c94?7|@=2;7p`>35`94?7|@=2;7p`>35a94?7|@=2;7p`>35f94?7|@=2;7p`>35g94?7|@=2;7p`>35d94?7|@=2;7p`>34294?7|@=2;7p`>34394?7|@=2;7p`>34094?7|@=2;7p`>34194?7|@=2;7p`>34694?7|@=2;7p`>34794?7|@=2;7p`>34494?7|@=2;7p`>34594?7|@=2;7p`>34:94?7|@=2;7p`>34;94?7|@=2;7p`>34c94?7|@=2;7p`>34`94?7|@=2;7p`>34a94?7|@=2;7p`>34f94?7|@=2;7p`>34g94?7|@=2;7p`>34d94?7|@=2;7p`>37294?7|@=2;7p`>37394?7|@=2;7p`>37094?7|@=2;7p`>37194?7|@=2;7p`>37694?7|@=2;7p`>37794?7|@=2;7p`>37494?7|@=2;7p`>37594?7|@=2;7p`>37:94?7|@=2;7p`>37;94?7|@=2;7p`>37c94?7|@=2;7p`>37`94?7|@=2;7p`>37a94?7|@=2;7p`>37f94?7|@=2;7p`>37g94?7|@=2;7p`>37d94?7|@=2;7p`>36294?7|@=2;7p`>36394?7|@=2;7p`>36094?7|@=2;7p`>36194?7|@=2;7p`>36694?7|@=2;7p`>36794?7|@=2;7p`>36494?7|@=2;7p`>36594?7|@=2;7p`>36:94?7|@=2;7p`>36;94?7|@=2;7p`>36c94?7|@=2;7p`>36`94?7|@=2;7p`>36a94?7|@=2;7p`>36f94?7|@=2;7p`>36g94?7|@=2;7p`>36d94?7|@=2;7p`>39294?7|@=2;7p`>39394?7|@=2;7p`>39094?7|@=2;7p`>39194?7|@=2;7p`>39694?7|@=2;7p`>39794?7|@=2;7p`>39494?7|@=2;7p`>39594?7|@=2;7p`>39:94?7|@=2;7p`>39;94?7|@=2;7p`>39c94?7|@=2;7p`>39`94?7|@=2;7p`>39a94?7|@=2;7p`>39f94?7|@=2;7p`>39g94?7|@=2;7p`>39d94?7|@=2;7p`>38294?7|@=2;7p`>38394?7|@=2;7p`>38094?7|@=2;7p`>38194?7|@=2;7p`>38694?7|@=2;7p`>38794?7|@=2;7p`>38494?7|@=2;7p`>38594?7|@=2;7p`>38:94?7|@=2;7p`>38;94?7|@=2;7p`>38c94?7|@=2;7p`>38`94?7|@=2;7p`>38a94?7|@=2;7p`>38f94?7|@=2;7p`>38g94?7|@=2;7p`>38d94?7|@=2;7p`>3`294?7|@=2;7p`>3`394?7|@=2;7p`>3`094?7|@=2;7p`>3`194?7|@=2;7p`>3`694?7|@=2;7p`>3`794?7|@=2;7p`>3`494?7|@=2;7p`>3`594?7|@=2;7p`>3`:94?7|@=2;7p`>3`;94?7|@=2;7p`>3`c94?7|@=2;7p`>3``94?7|@=2;7p`>3`a94?7|@=2;7p`>3`f94?7|@=2;7p`>3`g94?7|@=2;7p`>3`d94?7|@=2;7p`>3c294?7|@=2;7p`>3c394?7|@=2;7p`>3c094?7|@=2;7p`>3c194?7|@=2;7p`>3c694?7|@=2;7p`>3c794?7|@=2;7p`>3c494?7|@=2;7p`>3c594?7|@=2;7p`>3c:94?7|@=2;7p`>3c;94?7|@=2;7p`>3cc94?7|@=2;7p`>3c`94?7|@=2;7p`>3ca94?7|@=2;7p`>3cf94?7|@=2;7p`>3cg94?7|@=2;7p`>3cd94?7|@=2;7p`>3b294?7|@=2;7p`>3b394?7|@=2;7p`>3b094?7|@=2;7p`>3b194?7|@=2;7p`>3b694?7|@=2;7p`>3b794?7|@=2;7p`>3b494?7|@=2;7p`>3b594?7|@=2;7p`>3b:94?7|@=2;7p`>3b;94?7|@=2;7p`>3bc94?7|@=2;7p`>3b`94?7|@=2;7p`>3ba94?7|@=2;7p`>3bf94?7|@=2;7p`>3bg94?7|@=2;7p`>3bd94?7|@=2;7p`>3e294?7|@=2;7psr}AB@40?l3;?hkh977CDG}7uIJ[wpNOuhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk.v000066400000000000000000000122661224274632000216770ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The synthesis directives "translate_off/translate_on" specified below are // supported by Xilinx, Mentor Graphics and Synplicity synthesis // tools. Ensure they are correct for your synthesis tool(s). // You must compile the wrapper file fifo_xlnx_64x36_2clk.v when simulating // the core, fifo_xlnx_64x36_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". `timescale 1ns/1ps module fifo_xlnx_64x36_2clk( din, rd_clk, rd_en, rst, wr_clk, wr_en, dout, empty, full, rd_data_count, wr_data_count); input [35 : 0] din; input rd_clk; input rd_en; input rst; input wr_clk; input wr_en; output [35 : 0] dout; output empty; output full; output [6 : 0] rd_data_count; output [6 : 0] wr_data_count; // synthesis translate_off FIFO_GENERATOR_V4_3 #( .C_COMMON_CLOCK(0), .C_COUNT_TYPE(0), .C_DATA_COUNT_WIDTH(7), .C_DEFAULT_VALUE("BlankString"), .C_DIN_WIDTH(36), .C_DOUT_RST_VAL("0"), .C_DOUT_WIDTH(36), .C_ENABLE_RLOCS(0), .C_FAMILY("spartan3"), .C_FULL_FLAGS_RST_VAL(1), .C_HAS_ALMOST_EMPTY(0), .C_HAS_ALMOST_FULL(0), .C_HAS_BACKUP(0), .C_HAS_DATA_COUNT(0), .C_HAS_INT_CLK(0), .C_HAS_MEMINIT_FILE(0), .C_HAS_OVERFLOW(0), .C_HAS_RD_DATA_COUNT(1), .C_HAS_RD_RST(0), .C_HAS_RST(1), .C_HAS_SRST(0), .C_HAS_UNDERFLOW(0), .C_HAS_VALID(0), .C_HAS_WR_ACK(0), .C_HAS_WR_DATA_COUNT(1), .C_HAS_WR_RST(0), .C_IMPLEMENTATION_TYPE(2), .C_INIT_WR_PNTR_VAL(0), .C_MEMORY_TYPE(2), .C_MIF_FILE_NAME("BlankString"), .C_MSGON_VAL(1), .C_OPTIMIZATION_MODE(0), .C_OVERFLOW_LOW(0), .C_PRELOAD_LATENCY(0), .C_PRELOAD_REGS(1), .C_PRIM_FIFO_TYPE("512x36"), .C_PROG_EMPTY_THRESH_ASSERT_VAL(4), .C_PROG_EMPTY_THRESH_NEGATE_VAL(5), .C_PROG_EMPTY_TYPE(0), .C_PROG_FULL_THRESH_ASSERT_VAL(63), .C_PROG_FULL_THRESH_NEGATE_VAL(62), .C_PROG_FULL_TYPE(0), .C_RD_DATA_COUNT_WIDTH(7), .C_RD_DEPTH(64), .C_RD_FREQ(1), .C_RD_PNTR_WIDTH(6), .C_UNDERFLOW_LOW(0), .C_USE_DOUT_RST(1), .C_USE_ECC(0), .C_USE_EMBEDDED_REG(0), .C_USE_FIFO16_FLAGS(0), .C_USE_FWFT_DATA_COUNT(1), .C_VALID_LOW(0), .C_WR_ACK_LOW(0), .C_WR_DATA_COUNT_WIDTH(7), .C_WR_DEPTH(64), .C_WR_FREQ(1), .C_WR_PNTR_WIDTH(6), .C_WR_RESPONSE_LATENCY(1)) inst ( .DIN(din), .RD_CLK(rd_clk), .RD_EN(rd_en), .RST(rst), .WR_CLK(wr_clk), .WR_EN(wr_en), .DOUT(dout), .EMPTY(empty), .FULL(full), .RD_DATA_COUNT(rd_data_count), .WR_DATA_COUNT(wr_data_count), .CLK(), .INT_CLK(), .BACKUP(), .BACKUP_MARKER(), .PROG_EMPTY_THRESH(), .PROG_EMPTY_THRESH_ASSERT(), .PROG_EMPTY_THRESH_NEGATE(), .PROG_FULL_THRESH(), .PROG_FULL_THRESH_ASSERT(), .PROG_FULL_THRESH_NEGATE(), .RD_RST(), .SRST(), .WR_RST(), .ALMOST_EMPTY(), .ALMOST_FULL(), .DATA_COUNT(), .OVERFLOW(), .PROG_EMPTY(), .PROG_FULL(), .VALID(), .UNDERFLOW(), .WR_ACK(), .SBITERR(), .DBITERR()); // synthesis translate_on endmodule uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk.veo000066400000000000000000000061571224274632000222250ustar00rootroot00000000000000/******************************************************************************* * This file is owned and controlled by Xilinx and must be used * * solely for design, simulation, implementation and creation of * * design files limited to Xilinx devices or technologies. Use * * with non-Xilinx devices or technologies is expressly prohibited * * and immediately terminates your license. * * * * XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" * * SOLELY FOR USE IN DEVELOPING PROGRAMS AND SOLUTIONS FOR * * XILINX DEVICES. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION * * AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION * * OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS * * IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, * * AND YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE * * FOR YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY * * WARRANTY WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE * * IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR * * REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM CLAIMS OF * * INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * * FOR A PARTICULAR PURPOSE. * * * * Xilinx products are not intended for use in life support * * appliances, devices, or systems. Use in such applications are * * expressly prohibited. * * * * (c) Copyright 1995-2007 Xilinx, Inc. * * All rights reserved. * *******************************************************************************/ // The following must be inserted into your Verilog file for this // core to be instantiated. Change the instance name and port connections // (in parentheses) to your own signal names. //----------- Begin Cut here for INSTANTIATION Template ---// INST_TAG fifo_xlnx_64x36_2clk YourInstanceName ( .din(din), // Bus [35 : 0] .rd_clk(rd_clk), .rd_en(rd_en), .rst(rst), .wr_clk(wr_clk), .wr_en(wr_en), .dout(dout), // Bus [35 : 0] .empty(empty), .full(full), .rd_data_count(rd_data_count), // Bus [6 : 0] .wr_data_count(wr_data_count)); // Bus [6 : 0] // INST_TAG_END ------ End INSTANTIATION Template --------- // You must compile the wrapper file fifo_xlnx_64x36_2clk.v when simulating // the core, fifo_xlnx_64x36_2clk. When compiling the wrapper file, be sure to // reference the XilinxCoreLib Verilog simulation library. For detailed // instructions, please refer to the "CORE Generator Help". uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk.xco000066400000000000000000000045451224274632000222240ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version K.39 # Date: Thu Sep 3 17:22:56 2009 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = False SET asysymbol = False SET busformat = BusFormatAngleBracketNotRipped SET createndf = False SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = False SET foundationsym = False SET implementationfiletype = Ngc SET package = fg456 SET removerpms = False SET simulationfiles = Behavioral SET speedgrade = -5 SET verilogsim = True SET vhdlsim = False # END Project Options # BEGIN Select SELECT Fifo_Generator family Xilinx,_Inc. 4.3 # END Select # BEGIN Parameters CSET almost_empty_flag=false CSET almost_full_flag=false CSET component_name=fifo_xlnx_64x36_2clk CSET data_count=false CSET data_count_width=7 CSET disable_timing_violations=false CSET dout_reset_value=0 CSET empty_threshold_assert_value=4 CSET empty_threshold_negate_value=5 CSET enable_ecc=false CSET enable_int_clk=false CSET fifo_implementation=Independent_Clocks_Distributed_RAM CSET full_flags_reset_value=1 CSET full_threshold_assert_value=63 CSET full_threshold_negate_value=62 CSET input_data_width=36 CSET input_depth=64 CSET output_data_width=36 CSET output_depth=64 CSET overflow_flag=false CSET overflow_sense=Active_High CSET performance_options=First_Word_Fall_Through CSET programmable_empty_type=No_Programmable_Empty_Threshold CSET programmable_full_type=No_Programmable_Full_Threshold CSET read_clock_frequency=1 CSET read_data_count=true CSET read_data_count_width=7 CSET reset_pin=true CSET reset_type=Asynchronous_Reset CSET underflow_flag=false CSET underflow_sense=Active_High CSET use_dout_reset=true CSET use_embedded_registers=false CSET use_extra_logic=true CSET valid_flag=false CSET valid_sense=Active_High CSET write_acknowledge_flag=false CSET write_acknowledge_sense=Active_High CSET write_clock_frequency=1 CSET write_data_count=true CSET write_data_count_width=7 # END Parameters GENERATE # CRC: 2bb925ae uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk_fifo_generator_v4_3_xst_1.lso000066400000000000000000000000631224274632000272410ustar00rootroot00000000000000blkmemdp_v6_2 blk_mem_gen_v2_6 fifo_generator_v4_3 uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt000066400000000000000000000130341224274632000311070ustar00rootroot00000000000000
uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk_flist.txt000066400000000000000000000004151224274632000234430ustar00rootroot00000000000000# Output products list for fifo_xlnx_64x36_2clk.ngc fifo_xlnx_64x36_2clk.v fifo_xlnx_64x36_2clk.veo fifo_xlnx_64x36_2clk.xco fifo_xlnx_64x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt fifo_xlnx_64x36_2clk_flist.txt fifo_xlnx_64x36_2clk_xmdf.tcl uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk_readme.txt000066400000000000000000000026261224274632000235650ustar00rootroot00000000000000The following files were generated for 'fifo_xlnx_64x36_2clk' in directory /home/matt/gnuradio.git/usrp2/fpga/coregen/: fifo_xlnx_64x36_2clk.ngc: Binary Xilinx implementation netlist file containing the information required to implement the module in a Xilinx (R) FPGA. fifo_xlnx_64x36_2clk.v: Verilog wrapper file provided to support functional simulation. This file contains simulation model customization data that is passed to a parameterized simulation model for the core. fifo_xlnx_64x36_2clk.veo: VEO template file containing code that can be used as a model for instantiating a CORE Generator module in a Verilog design. fifo_xlnx_64x36_2clk.xco: CORE Generator input file containing the parameters used to regenerate a core. fifo_xlnx_64x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt: Please see the core data sheet. fifo_xlnx_64x36_2clk_flist.txt: Text file listing all of the output files produced when a customized core was generated in the CORE Generator. fifo_xlnx_64x36_2clk_readme.txt: Text file indicating the files generated and how they are used. fifo_xlnx_64x36_2clk_xmdf.tcl: ISE Project Navigator interface file. ISE uses this file to determine how the files output by CORE Generator for the core can be integrated into your ISE project. Please see the Xilinx CORE Generator online help for further details on generated files and how to use them. uhd-3.5.5/fpga/usrp2/coregen/fifo_xlnx_64x36_2clk_xmdf.tcl000066400000000000000000000051261224274632000232270ustar00rootroot00000000000000# The package naming convention is _xmdf package provide fifo_xlnx_64x36_2clk_xmdf 1.0 # This includes some utilities that support common XMDF operations package require utilities_xmdf # Define a namespace for this package. The name of the name space # is _xmdf namespace eval ::fifo_xlnx_64x36_2clk_xmdf { # Use this to define any statics } # Function called by client to rebuild the params and port arrays # Optional when the use context does not require the param or ports # arrays to be available. proc ::fifo_xlnx_64x36_2clk_xmdf::xmdfInit { instance } { # Variable containg name of library into which module is compiled # Recommendation: # Required utilities_xmdf::xmdfSetData $instance Module Attributes Name fifo_xlnx_64x36_2clk } # ::fifo_xlnx_64x36_2clk_xmdf::xmdfInit # Function called by client to fill in all the xmdf* data variables # based on the current settings of the parameters proc ::fifo_xlnx_64x36_2clk_xmdf::xmdfApplyParams { instance } { set fcount 0 # Array containing libraries that are assumed to exist # Examples include unisim and xilinxcorelib # Optional # In this example, we assume that the unisim library will # be magically # available to the simulation and synthesis tool utilities_xmdf::xmdfSetData $instance FileSet $fcount type logical_library utilities_xmdf::xmdfSetData $instance FileSet $fcount logical_library unisim incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_64x36_2clk.ngc utilities_xmdf::xmdfSetData $instance FileSet $fcount type ngc incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_64x36_2clk.v utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_64x36_2clk.veo utilities_xmdf::xmdfSetData $instance FileSet $fcount type verilog_template incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_64x36_2clk.xco utilities_xmdf::xmdfSetData $instance FileSet $fcount type coregen_ip incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_64x36_2clk_fifo_generator_v4_3_xst_1.ngc_xst.xrpt utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount relative_path fifo_xlnx_64x36_2clk_xmdf.tcl utilities_xmdf::xmdfSetData $instance FileSet $fcount type AnyView incr fcount utilities_xmdf::xmdfSetData $instance FileSet $fcount associated_module fifo_xlnx_64x36_2clk incr fcount } # ::gen_comp_name_xmdf::xmdfApplyParams uhd-3.5.5/fpga/usrp2/custom/000077500000000000000000000000001224274632000156105ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/custom/custom_dsp_rx.v000066400000000000000000000044111224274632000206700ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //COPY ME, CUSTOMIZE ME... //The following module effects the IO of the DDC chain. //By default, this entire module is a simple pass-through. //To implement DSP logic before the DDC: //Implement custom DSP between frontend and ddc input. //To implement DSP logic after the DDC: //Implement custom DSP between ddc output and baseband. //To bypass the DDC with custom logic: //Implement custom DSP between frontend and baseband. module custom_dsp_rx #( //frontend bus width parameter WIDTH = 24 ) ( //control signals input clock, //dsp clock input reset, //active high synchronous reset input clear, //active high on packet control init input enable, //active high when streaming enabled //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //full rate inputs directly from the RX frontend input [WIDTH-1:0] frontend_i, input [WIDTH-1:0] frontend_q, //full rate outputs directly to the DDC chain output [WIDTH-1:0] ddc_in_i, output [WIDTH-1:0] ddc_in_q, //strobed samples {I16,Q16} from the RX DDC chain input [31:0] ddc_out_sample, input ddc_out_strobe, //high on valid sample output ddc_out_enable, //enables DDC module //strobbed baseband samples {I16,Q16} from this module output [31:0] bb_sample, output bb_strobe //high on valid sample ); assign ddc_in_i = frontend_i; assign ddc_in_q = frontend_q; assign bb_sample = ddc_out_sample; assign bb_strobe = ddc_out_strobe; assign ddc_out_enable = enable; endmodule //custom_dsp_rx uhd-3.5.5/fpga/usrp2/custom/custom_dsp_tx.v000066400000000000000000000044261224274632000207000ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //COPY ME, CUSTOMIZE ME... //The following module effects the IO of the DUC chain. //By default, this entire module is a simple pass-through. //To implement DSP logic before the DUC: //Implement custom DSP between baseband and duc input. //To implement DSP logic after the DUC: //Implement custom DSP between duc output and frontend. //To bypass the DUC with custom logic: //Implement custom DSP between baseband and frontend. module custom_dsp_tx #( //frontend bus width parameter WIDTH = 24 ) ( //control signals input clock, //dsp clock input reset, //active high synchronous reset input clear, //active high on packet control init input enable, //active high when streaming enabled //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //full rate outputs directly to the TX frontend output [WIDTH-1:0] frontend_i, output [WIDTH-1:0] frontend_q, //full rate outputs directly from the DUC chain input [WIDTH-1:0] duc_out_i, input [WIDTH-1:0] duc_out_q, //strobed samples {I16,Q16} to the TX DUC chain output [31:0] duc_in_sample, input duc_in_strobe, //this is a backpressure signal output duc_in_enable, //enables DUC module //strobbed baseband samples {I16,Q16} to this module input [31:0] bb_sample, output bb_strobe //this is a backpressure signal ); assign frontend_i = duc_out_i; assign frontend_q = duc_out_q; assign duc_in_sample = bb_sample; assign bb_strobe = duc_in_strobe; assign duc_in_enable = enable; endmodule //custom_dsp_tx uhd-3.5.5/fpga/usrp2/custom/custom_engine_rx.v000066400000000000000000000032461224274632000213540ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //COPY ME, CUSTOMIZE ME... //The following module is used to re-write receive packets to the host. //This module provides a packet-based ram interface for manipulating packets. //The user writes a custom engine (state machine) to read the input packet, //and to produce a new output packet. //By default, this entire module is a simple pass-through. module custom_engine_rx #( //buffer size for ram interface engine parameter BUF_SIZE = 10 ) ( //control signals input clock, input reset, input clear, //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //ram interface for engine output access_we, output access_stb, input access_ok, output access_done, output access_skip_read, output [BUF_SIZE-1:0] access_adr, input [BUF_SIZE-1:0] access_len, output [35:0] access_dat_o, input [35:0] access_dat_i ); assign access_done = access_ok; endmodule //custom_engine_rx uhd-3.5.5/fpga/usrp2/custom/custom_engine_tx.v000066400000000000000000000035321224274632000213540ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //COPY ME, CUSTOMIZE ME... //The following module is used to re-write transmit packets from the host. //This module provides a packet-based ram interface for manipulating packets. //The user writes a custom engine (state machine) to read the input packet, //and to produce a new output packet. //By default, this entire module is a simple pass-through. module custom_engine_tx #( //buffer size for ram interface engine parameter BUF_SIZE = 10, //the number of 32bit lines between start of buffer and vita header //the metadata before the header should be preserved by the engine parameter HEADER_OFFSET = 0 ) ( //control signals input clock, input reset, input clear, //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //ram interface for engine output access_we, output access_stb, input access_ok, output access_done, output access_skip_read, output [BUF_SIZE-1:0] access_adr, input [BUF_SIZE-1:0] access_len, output [35:0] access_dat_o, input [35:0] access_dat_i ); assign access_done = access_ok; endmodule //custom_engine_tx uhd-3.5.5/fpga/usrp2/custom/power_trig.v000066400000000000000000000100211224274632000201520ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // This a power trigger module implemented on top of the custom dsp template. // Power triggering is implemented after the existing DDC chain. // Triggering is controlled via user settings registers. // Register 0: // threshold for power trigger // 32 bit unsigned fixed-point number of some arbitrary scaling module power_trig #( //frontend bus width parameter WIDTH = 24, parameter BASE = 0 ) ( //control signals input clock, //dsp clock input reset, //active high synchronous reset input clear, //active high on packet control init input enable, //active high when streaming enabled //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //full rate inputs directly from the RX frontend input [WIDTH-1:0] frontend_i, input [WIDTH-1:0] frontend_q, //full rate outputs directly to the DDC chain output [WIDTH-1:0] ddc_in_i, output [WIDTH-1:0] ddc_in_q, //strobed samples {I16,Q16} from the RX DDC chain input [31:0] ddc_out_sample, input ddc_out_strobe, //high on valid sample output ddc_out_enable, //enables DDC module //strobbed baseband samples {I16,Q16} from this module output [31:0] bb_sample, output bb_strobe //high on valid sample ); //leave frontend tied to existing ddc chain assign ddc_in_i = frontend_i; assign ddc_in_q = frontend_q; //ddc enable remains tied to global enable assign ddc_out_enable = enable; //below we implement a power trigger between baseband samples and ddc output... reg [8:0] wr_addr; wire [8:0] rd_addr; reg triggered, triggerable; wire trigger; wire [31:0] delayed_sample; wire [31:0] thresh; setting_reg #(.my_addr(BASE+0)) sr_0 (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(thresh),.changed()); assign rd_addr = wr_addr + 1; // FIXME adjustable delay ram_2port #(.DWIDTH(32),.AWIDTH(9)) delay_line (.clka(clk),.ena(1),.wea(ddc_out_strobe),.addra(wr_addr),.dia(ddc_out_sample),.doa(), .clkb(clk),.enb(ddc_out_strobe),.web(1'b0),.addrb(rd_addr),.dib(32'hFFFF),.dob(delayed_sample)); always @(posedge clock) if(reset | ~enable) wr_addr <= 0; else if(ddc_out_strobe) wr_addr <= wr_addr + 1; always @(posedge clock) if(reset | ~enable) triggerable <= 0; else if(wr_addr == 9'h1FF) // Wait till we're nearly full triggerable <= 1; reg stb_d1, stb_d2; always @(posedge clock) stb_d1 <= ddc_out_strobe; always @(posedge clock) stb_d2 <= stb_d1; assign bb_sample = delayed_sample; assign bb_strobe = stb_d1 & triggered; // Compute Mag wire [17:0] mult_in = stb_d1 ? { ddc_out_sample[15],ddc_out_sample[15:0], 1'b0 } : { ddc_out_sample[31], ddc_out_sample[31:16], 1'b0 }; wire [35:0] prod; reg [31:0] sum; MULT18X18S mult (.P(prod), .A(mult_in), .B(mult_in), .C(clock), .CE(ddc_out_strobe | stb_d1), .R(reset) ); always @(posedge clock) if(stb_d1) sum <= prod[35:4]; else if(stb_d2) sum <= sum + prod[35:4]; always @(posedge clock) if(reset | ~enable | ~triggerable) triggered <= 0; else if(trigger) triggered <= 1; assign trigger = (sum > thresh); endmodule // power_trig uhd-3.5.5/fpga/usrp2/custom/power_trig_tb.v000066400000000000000000000033471224274632000206540ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module power_trig_tb(); initial $dumpfile("power_trig_tb.vcd"); initial $dumpvars(0,power_trig_tb); reg clk = 0; always #10 clk <= ~clk; reg rst = 1; initial #100 rst <= 0; initial begin set_stb <= 0; #1000; set_stb <= 1; end reg [31:0] sample_in; reg strobe_in; wire [31:0] sample_out; wire strobe_out; reg set_stb, run; power_trig #(.BASE(0)) power_trig (.clk(clk), .reset(rst), .enable(1), .set_stb(set_stb), .set_addr(0), .set_data(32'h000B_B000), .run(run), .ddc_out_sample(sample_in), .ddc_out_strobe(strobe_in), .bb_sample(sample_out), .bb_strobe(strobe_out)); initial sample_in <= 32'h0100_0300; always @(posedge clk) if(~strobe_in) sample_in <= sample_in + 32'h0001_0001; initial #100000 $finish; initial begin run <= 0; #2000 run <= 1; #30000 run <= 0; end always @(posedge clk) if(rst | ~run) strobe_in <= 0; else strobe_in <= ~strobe_in; endmodule // power_trig_tb uhd-3.5.5/fpga/usrp2/extramfifo/000077500000000000000000000000001224274632000164425ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/extramfifo/.gitignore000066400000000000000000000000461224274632000204320ustar00rootroot00000000000000fifo_extram36_tb fifo_extram_tb *.vcd uhd-3.5.5/fpga/usrp2/extramfifo/Makefile.srcs000066400000000000000000000005101224274632000210470ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # Extram Sources ################################################## EXTRAM_SRCS = $(abspath $(addprefix $(BASE_DIR)/../extramfifo/, \ ext_fifo.v \ nobl_if.v \ nobl_fifo.v \ icon.v \ icon.xco \ ila.v \ ila.xco \ refill_randomizer.v \ )) uhd-3.5.5/fpga/usrp2/extramfifo/ext_fifo.v000066400000000000000000000143641224274632000204440ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // FIFO backed by an off chip ZBT/NoBL SRAM. // // This module and its sub-hierarchy implment a FIFO capable of sustaining // a data throughput rate of at least int_clk/2 * 36bits and bursts of int_clk * 36bits. // // This has been designed and tested for an int_clk of 100MHz and an ext_clk of 125MHz, // your milage may vary with other clock ratio's especially those where int_clk < ext_clk. // Testing has also exclusively used a rst signal synchronized to int_clk. // // Interface operation mimics a Xilinx FIFO configured as "First Word Fall Through", // though signal naming differs. // // For FPGA use registers interfacing directly with signals prefixed "RAM_*" should be // packed into the IO ring. // //`define NO_EXT_FIFO module ext_fifo #(parameter INT_WIDTH=36,EXT_WIDTH=18,RAM_DEPTH=19,FIFO_DEPTH=19) ( input int_clk, input ext_clk, input rst, input [EXT_WIDTH-1:0] RAM_D_pi, output [EXT_WIDTH-1:0] RAM_D_po, output RAM_D_poe, output [RAM_DEPTH-1:0] RAM_A, output RAM_WEn, output RAM_CENn, output RAM_LDn, output RAM_OEn, output RAM_CE1n, input [INT_WIDTH-1:0] datain, input src_rdy_i, // WRITE output dst_rdy_o, // not FULL output [INT_WIDTH-1:0] dataout, output src_rdy_o, // not EMPTY input dst_rdy_i, // READ output reg [31:0] debug, output reg [31:0] debug2 ); wire [EXT_WIDTH-1:0] write_data; wire [EXT_WIDTH-1:0] read_data; wire full1, empty1; wire almost_full2, almost_full2_spread, full2, empty2; wire [FIFO_DEPTH-1:0] capacity; wire space_avail; wire data_avail; // These next 2 lines here purely because ICARUS is crap at handling generate statements. // Empirically this has been determined to make simulations work. wire read_input_fifo = space_avail & ~empty1; wire write_output_fifo = data_avail; assign src_rdy_o = ~empty2; assign dst_rdy_o = ~full1; `ifdef NO_EXT_FIFO assign space_avail = ~full2; assign data_avail = ~empty1; assign read_data = write_data; `else // External FIFO running at ext clock rate and 18 or 36 bit width. nobl_fifo #(.WIDTH(EXT_WIDTH),.RAM_DEPTH(RAM_DEPTH),.FIFO_DEPTH(FIFO_DEPTH)) nobl_fifo_i1 ( .clk(ext_clk), .rst(rst), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), .RAM_A(RAM_A), .RAM_WEn(RAM_WEn), .RAM_CENn(RAM_CENn), .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .write_data(write_data), .write_strobe(~empty1 ), .space_avail(space_avail), .read_data(read_data), .read_strobe(~almost_full2_spread), .data_avail(data_avail), .capacity(capacity) ); `endif // !`ifdef NO_EXT_FIFO generate if (EXT_WIDTH == 18 && INT_WIDTH == 36) begin: fifo_g1 // FIFO buffers data from UDP engine into external FIFO clock domain. fifo_xlnx_512x36_2clk_36to18 fifo_xlnx_512x36_2clk_36to18_i1 ( .rst(rst), .wr_clk(int_clk), .rd_clk(ext_clk), .din(datain), // Bus [35 : 0] .wr_en(src_rdy_i), .rd_en(read_input_fifo), .dout(write_data), // Bus [17 : 0] .full(full1), .empty(empty1)); // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. fifo_xlnx_512x36_2clk_18to36 fifo_xlnx_512x36_2clk_18to36_i1 ( .rst(rst), .wr_clk(ext_clk), .rd_clk(int_clk), .din(read_data), // Bus [17 : 0] .wr_en(write_output_fifo), .rd_en(dst_rdy_i), .dout(dataout), // Bus [35 : 0] .full(full2), .prog_full(almost_full2), .empty(empty2)); end // block: fifo_g1 else if (EXT_WIDTH == 36 && INT_WIDTH == 36) begin: fifo_g1 // FIFO buffers data from UDP engine into external FIFO clock domain. fifo_xlnx_32x36_2clk fifo_xlnx_32x36_2clk_i1 ( .rst(rst), .wr_clk(int_clk), .rd_clk(ext_clk), .din(datain), // Bus [35 : 0] .wr_en(src_rdy_i), .rd_en(read_input_fifo), .dout(write_data), // Bus [35 : 0] .full(full1), .empty(empty1)); // FIFO buffers data read from external FIFO into DSP clk domain and to TX DSP. fifo_xlnx_512x36_2clk_prog_full fifo_xlnx_32x36_2clk_prog_full_i1 ( .rst(rst), .wr_clk(ext_clk), .rd_clk(int_clk), .din(read_data), // Bus [35 : 0] .wr_en(write_output_fifo), .rd_en(dst_rdy_i), .dout(dataout), // Bus [35 : 0] .full(full2), .empty(empty2), .prog_full(almost_full2)); end endgenerate refill_randomizer #(.BITS(7)) refill_randomizer_i1 ( .clk(ext_clk), .rst(rst), .full_in(almost_full2), .full_out(almost_full2_spread) ); // always @ (posedge int_clk) // debug[31:28] <= {empty2,full1,dst_rdy_i,src_rdy_i }; always @ (posedge ext_clk) // debug[27:0] <= {RAM_WEn,RAM_CE1n,RAM_A[3:0],read_data[17:0],empty1,space_avail,data_avail,almost_full2 }; debug[31:0] <= {7'h0,src_rdy_i,read_input_fifo,write_output_fifo,dst_rdy_i,full2,almost_full2,empty2,full1,empty1,write_data[7:0],read_data[7:0]}; always@ (posedge ext_clk) // debug2[31:0] <= {write_data[15:0],read_data[15:0]}; debug2[31:0] <= 0; endmodule // ext_fifo uhd-3.5.5/fpga/usrp2/extramfifo/ext_fifo_tb.cmd000066400000000000000000000005501224274632000214170ustar00rootroot00000000000000/opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/glbl.v -y . -y ../coregen/ -y ../fifo -y ../models -y /home/ianb/usrp-fpga/usrp2/sdr_lib -y /home/ianb/usrp-fpga/usrp2/control_lib -y /home/ianb/usrp-fpga/usrp2/models -y /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/unisims -y /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src -y /opt/Xilinx/12.1/ISE_DS/ISE/verilog/src/XilinxCoreLib uhd-3.5.5/fpga/usrp2/extramfifo/ext_fifo_tb.prj000066400000000000000000000005461224274632000214540ustar00rootroot00000000000000verilog work "./ext_fifo_tb.v" verilog work "./ext_fifo.v" verilog work "./nobl_fifo.v" verilog work "./nobl_if.v" verilog work "../coregen/fifo_xlnx_512x36_2clk_36to18.v" verilog work "../coregen/fifo_xlnx_512x36_2clk_18to36.v" verilog work "../models/CY7C1356C/cy1356.v" verilog work "../models/idt71v65603s150.v" verilog work "$XILINX/verilog/src/glbl.v" uhd-3.5.5/fpga/usrp2/extramfifo/ext_fifo_tb.sav000066400000000000000000000014471224274632000214530ustar00rootroot00000000000000[timestart] 0 [size] 1523 832 [pos] -1 -1 *-15.000000 66300 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] ext_fifo_tb. [treeopen] ext_fifo_tb.ext_fifo_i1. [treeopen] ext_fifo_tb.ext_fifo_i1.nobl_fifo_i1. @28 ext_fifo_tb.ext_fifo_i1.src_rdy_i ext_fifo_tb.ext_fifo_i1.dst_rdy_o @22 ext_fifo_tb.ext_fifo_i1.datain[35:0] @28 ext_fifo_tb.ext_fifo_i1.src_rdy_o ext_fifo_tb.ext_fifo_i1.dst_rdy_i @22 ext_fifo_tb.ext_fifo_i1.dataout[35:0] ext_fifo_tb.ext_fifo_i1.RAM_A[17:0] @28 ext_fifo_tb.ext_fifo_i1.RAM_WEn ext_fifo_tb.ext_fifo_i1.RAM_CE1n @22 ext_fifo_tb.ext_fifo_i1.RAM_D_pi[35:0] ext_fifo_tb.ext_fifo_i1.RAM_D_po[35:0] ext_fifo_tb.ext_fifo_i1.write_data[35:0] @28 ext_fifo_tb.ext_fifo_i1.full1 ext_fifo_tb.ext_fifo_i1.empty1 @29 ext_fifo_tb.ext_fifo_i1.space_avail uhd-3.5.5/fpga/usrp2/extramfifo/ext_fifo_tb.sh000077500000000000000000000002521224274632000212700ustar00rootroot00000000000000#fuse -prj ext_fifo_tb.prj -t work.glbl -t work.ext_fifo_tb -L unisims_ver -L xilinxcorelib_ver -o ext_fifo_tb iverilog -c ext_fifo_tb.cmd -o ext_fifo_tb ext_fifo_tb.v uhd-3.5.5/fpga/usrp2/extramfifo/ext_fifo_tb.v000066400000000000000000000257201224274632000211270ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps `define USRP2 //`define USRP2PLUS `ifdef USRP2 `define INT_WIDTH 36 `define EXT_WIDTH 18 `define RAM_DEPTH 19 `define FIFO_DEPTH 8 `define DUMP_VCD_FULL `define INT_CLK_PERIOD 5 `define EXT_CLK_PERIOD 4 `elsif USRP2PLUS `define INT_WIDTH 36 `define EXT_WIDTH 36 `define RAM_DEPTH 18 `define FIFO_DEPTH 8 `define DUMP_VCD_FULL `define INT_CLK_PERIOD 5 `define EXT_CLK_PERIOD 5 `endif // `ifdef USRP2 module ext_fifo_tb(); reg int_clk; reg ext_clk; reg rst; wire [`EXT_WIDTH-1:0] RAM_D_pi; wire [`EXT_WIDTH-1:0] RAM_D_po; wire [`EXT_WIDTH-1:0] RAM_D; wire RAM_D_poe; wire [`RAM_DEPTH-1:0] RAM_A; wire RAM_WEn; wire RAM_CENn; wire RAM_LDn; wire RAM_OEn; wire RAM_CE1n; reg [`INT_WIDTH-1:0] datain; reg src_rdy_i; // WRITE wire dst_rdy_o; // not FULL wire [`INT_WIDTH-1:0] dataout; reg [`INT_WIDTH-1:0] ref_dataout; wire src_rdy_o; // not EMPTY reg dst_rdy_i; integer ether_frame; // Clocks // Int clock is 100MHz // Ext clock is 125MHz initial begin int_clk <= 0; ext_clk <= 0; ref_dataout <= 1; src_rdy_i <= 0; dst_rdy_i <= 0; end always #(`INT_CLK_PERIOD/2) int_clk <= ~int_clk; always #(`EXT_CLK_PERIOD/2) ext_clk <= ~ext_clk; initial begin datain <= 0; ether_frame <= 0; rst <= 1; repeat (5) @(negedge int_clk); rst <= 0; @(negedge int_clk); while (datain < 10000) begin @(negedge int_clk); datain <= datain + dst_rdy_o; src_rdy_i <= dst_rdy_o; // Simulate inter-frame time if (ether_frame == 1500) begin ether_frame <= 0; repeat(1600) begin @(negedge int_clk); src_rdy_i <= 0; end end else ether_frame <= ether_frame + dst_rdy_o; end end // initial begin initial begin repeat (5) @(negedge int_clk); dst_rdy_i <= 1; while (src_rdy_o !== 1) @(negedge int_clk); // Fall through fifo, first output already valid if (dataout !== ref_dataout) $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); ref_dataout <= ref_dataout + src_rdy_o ; // Decimate by 16 rate while (ref_dataout < 2000) begin @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); @(negedge int_clk); dst_rdy_i <= 0; repeat(14) @(negedge int_clk); end // while (ref_dataout < 10000) // Decimate by 8 rate while (ref_dataout < 4000) begin @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); @(negedge int_clk); dst_rdy_i <= 0; repeat(6) @(negedge int_clk); end // while (ref_dataout < 10000) // Decimate by 4 rate while (ref_dataout < 6000) begin @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); @(negedge int_clk); dst_rdy_i <= 0; repeat(2) @(negedge int_clk); end // while (ref_dataout < 10000) // Max rate while (ref_dataout < 10000) begin @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x @%d",ref_dataout, dataout, $time); end // while (ref_dataout < 10000) @(negedge int_clk); $finish; end /* -----\/----- EXCLUDED -----\/----- initial begin rst <= 1; repeat (5) @(negedge int_clk); rst <= 0; @(negedge int_clk); repeat (4000) begin @(negedge int_clk); datain <= datain + dst_rdy_o; src_rdy_i <= dst_rdy_o; // @(negedge int_clk); // src_rdy_i <= 0; // @(negedge int_clk); // dst_rdy_i <= src_rdy_o; // @(negedge int_clk); // dst_rdy_i <= 0; // repeat (2) @(negedge int_clk); end // repeat (1000) // Fall through fifo, first output already valid if (dataout !== ref_dataout) $display("Error: Expected %x, got %x",ref_dataout, dataout); repeat (1000) begin @(negedge int_clk); datain <= datain + dst_rdy_o ; src_rdy_i <= dst_rdy_o; @(negedge int_clk); src_rdy_i <= 0; @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o ; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x",ref_dataout, dataout); @(negedge int_clk); dst_rdy_i <= 0; // repeat (2) @(negedge int_clk); end // repeat (1000) repeat (1000) begin // @(negedge int_clk); // datain <= datain + 1; // src_rdy_i <= 1; // @(negedge int_clk); // src_rdy_i <= 0; @(negedge int_clk); ref_dataout <= ref_dataout + src_rdy_o; dst_rdy_i <= src_rdy_o; if ((dataout !== ref_dataout) && src_rdy_o) $display("Error: Expected %x, got %x",ref_dataout, dataout); @(negedge int_clk); dst_rdy_i <= 0; // repeat (2) @(negedge int_clk); end // repeat (1000) $finish; end // initial begin -----/\----- EXCLUDED -----/\----- */ /////////////////////////////////////////////////////////////////////////////////// // Simulation control // /////////////////////////////////////////////////////////////////////////////////// `ifdef DUMP_LX2_TOP // Set up output files initial begin $dumpfile("ext_fifo_tb.lx2"); $dumpvars(1,ext_fifo_tb); end `endif `ifdef DUMP_LX2_FULL // Set up output files initial begin $dumpfile("ext_fifo_tb.lx2"); $dumpvars(0,ext_fifo_tb); end `endif `ifdef DUMP_VCD_TOP // Set up output files initial begin $dumpfile("ext_fifo_tb.vcd"); $dumpvars(1,ext_fifo_tb); end `endif `ifdef DUMP_VCD_TOP_PLUS_NEXT // Set up output files initial begin $dumpfile("ext_fifo_tb.vcd"); $dumpvars(2,ext_fifo_tb); end `endif `ifdef DUMP_VCD_FULL // Set up output files initial begin $dumpfile("ext_fifo_tb.vcd"); $dumpvars(0,ext_fifo_tb); end `endif // Update display every 10 us always #10000 $monitor("Time in uS ",$time/1000); wire [`EXT_WIDTH-1:0] RAM_D_pi_ext; wire [`EXT_WIDTH-1:0] RAM_D_po_ext; wire [`EXT_WIDTH-1:0] RAM_D_ext; wire RAM_D_poe_ext; genvar i; // // Instantiate IO for Bidirectional bus to SRAM // generate for (i=0;i<`EXT_WIDTH;i=i+1) begin : gen_RAM_D_IO IOBUF #( .DRIVE(12), .IOSTANDARD("LVCMOS25"), .SLEW("FAST") ) RAM_D_i ( .O(RAM_D_pi_ext[i]), .I(RAM_D_po_ext[i]), .IO(RAM_D[i]), .T(RAM_D_poe_ext) ); end // block: gen_RAM_D_IO endgenerate wire [`RAM_DEPTH-1:0] RAM_A_ext; wire RAM_WEn_ext,RAM_LDn_ext,RAM_CE1n_ext,RAM_OEn_ext,RAM_CENn_ext; assign #1 RAM_D_pi = RAM_D_pi_ext; assign #1 RAM_D_po_ext = RAM_D_po; assign #1 RAM_D_poe_ext = RAM_D_poe; assign #2 RAM_WEn_ext = RAM_WEn; assign #2 RAM_LDn_ext = RAM_LDn; assign #2 RAM_CE1n_ext = RAM_CE1n; assign #2 RAM_OEn_ext = RAM_OEn; assign #2 RAM_CENn_ext = RAM_CENn; assign #2 RAM_A_ext = RAM_A; generate if (`EXT_WIDTH==18) begin: ram_tb_g1 idt71v65603s150 idt71v65603s150_i1 ( .A(RAM_A_ext[17:0]), .adv_ld_(RAM_LDn_ext), // advance (high) / load (low) .bw1_(1'b0), .bw2_(1'b0), .bw3_(1'b1), .bw4_(1'b1), // byte write enables (low) .ce1_(RAM_CE1n_ext), .ce2(1'b1), .ce2_(1'b0), // chip enables .cen_(RAM_CENn_ext), // clock enable (low) .clk(ext_clk), // clock .IO({RAM_D[16:9],RAM_D[7:0]}), .IOP({RAM_D[17],RAM_D[8]}), // data bus .lbo_(1'b0), // linear burst order (low) .oe_(RAM_OEn_ext), // output enable (low) .r_w_(RAM_WEn_ext) ); // read (high) / write (low) end // block: ram_tb_g1 else if (`EXT_WIDTH==36) begin: ram_tb_g1 idt71v65603s150 idt71v65603s150_i1 ( .A(RAM_A_ext[17:0]), .adv_ld_(RAM_LDn_ext), // advance (high) / load (low) .bw1_(1'b0), .bw2_(1'b0), .bw3_(1'b0), .bw4_(1'b0), // byte write enables (low) .ce1_(RAM_CE1n_ext), .ce2(1'b1), .ce2_(1'b0), // chip enables .cen_(RAM_CENn_ext), // clock enable (low) .clk(ext_clk), // clock .IO(RAM_D[31:0]), .IOP(RAM_D[35:32]), // data bus .lbo_(1'b0), // linear burst order (low) .oe_(RAM_OEn_ext), // output enable (low) .r_w_(RAM_WEn_ext) ); // read (high) / write (low) end // block: ram_tb_g1 endgenerate /* -----\/----- EXCLUDED -----\/----- cy1356 cy1356_i1 ( .d(RAM_D), .clk(ext_clk), .a(RAM_A_ext), .bws(2'b00), .we_b(RAM_WEn_ext), .adv_lb(RAM_LDn_ext), .ce1b(RAM_CE1n_ext), .ce2(1'b1), .ce3b(1'b0), .oeb(RAM_OEn_ext), .cenb(RAM_CENn_ext), .mode(1'b0) ); -----/\----- EXCLUDED -----/\----- */ ext_fifo #(.INT_WIDTH(`INT_WIDTH),.EXT_WIDTH(`EXT_WIDTH),.RAM_DEPTH(`RAM_DEPTH),.FIFO_DEPTH(`FIFO_DEPTH)) ext_fifo_i1 ( .int_clk(int_clk), .ext_clk(ext_clk), .rst(rst), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), .RAM_A(RAM_A), .RAM_WEn(RAM_WEn), .RAM_CENn(RAM_CENn), .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .datain(datain), .src_rdy_i(src_rdy_i), // WRITE .dst_rdy_o(dst_rdy_o), // not FULL .dataout(dataout), .src_rdy_o(src_rdy_o), // not EMPTY .dst_rdy_i(dst_rdy_i) ); endmodule // ext_fifo_tb uhd-3.5.5/fpga/usrp2/extramfifo/icon.v000066400000000000000000001165361224274632000175750ustar00rootroot00000000000000//////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. //////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor: Xilinx // \ \ \/ Version: M.53d // \ \ Application: netgen // / / Filename: icon.v // /___/ /\ Timestamp: Tue Jul 20 20:31:15 2010 // \ \ / \ // \___\/\___\ // // Command : -w -sim -ofmt verilog /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.ngc /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.v // Device : xc3s2000-fg456-5 // Input file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.ngc // Output file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/icon.v // # of Modules : 1 // Design Name : icon // Xilinx : /opt/Xilinx/12.1/ISE_DS/ISE // // Purpose: // This verilog netlist is a verification model and uses simulation // primitives which may not represent the true implementation of the // device, however the netlist is functionally correct and should not // be modified. This file cannot be synthesized and should only be used // with supported simulation tools. // // Reference: // Command Line Tools User Guide, Chapter 23 and Synthesis and Simulation Design Guide, Chapter 6 // //////////////////////////////////////////////////////////////////////////////// `timescale 1 ns/1 ps module icon ( CONTROL0 )/* synthesis syn_black_box syn_noprune=1 */; inout [35 : 0] CONTROL0; // synthesis translate_off wire N1; wire \U0/U_ICON/I_YES_BSCAN.U_BS/DRCK1 ; wire \U0/U_ICON/U_CMD/iSEL_n ; wire \U0/U_ICON/U_CMD/iTARGET_CE ; wire \U0/U_ICON/U_CTRL_OUT/iDATA_VALID ; wire \U0/U_ICON/U_STAT/iCMD_GRP0_SEL ; wire \U0/U_ICON/U_STAT/iDATA_VALID ; wire \U0/U_ICON/U_STAT/iSTATCMD_CE ; wire \U0/U_ICON/U_STAT/iSTATCMD_CE_n ; wire \U0/U_ICON/U_STAT/iSTAT_HIGH ; wire \U0/U_ICON/U_STAT/iSTAT_LOW ; wire \U0/U_ICON/U_STAT/iTDO_next ; wire \U0/U_ICON/U_SYNC/iDATA_CMD_n ; wire \U0/U_ICON/U_SYNC/iGOT_SYNC ; wire \U0/U_ICON/U_SYNC/iGOT_SYNC_HIGH ; wire \U0/U_ICON/U_SYNC/iGOT_SYNC_LOW ; wire \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3_91 ; wire \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4_92 ; wire \U0/U_ICON/iCORE_ID_SEL[0] ; wire \U0/U_ICON/iCORE_ID_SEL[15] ; wire \U0/U_ICON/iDATA_CMD ; wire \U0/U_ICON/iDATA_CMD_n ; wire \U0/U_ICON/iSEL ; wire \U0/U_ICON/iSEL_n ; wire \U0/U_ICON/iSYNC ; wire \U0/U_ICON/iTDI ; wire \U0/U_ICON/iTDO ; wire \U0/U_ICON/iTDO_next ; wire \U0/iSHIFT_OUT ; wire \U0/iUPDATE_OUT ; wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_DRCK2_UNCONNECTED ; wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_RESET_UNCONNECTED ; wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_CAPTURE_UNCONNECTED ; wire \NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_SEL2_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[1].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[2].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[3].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[4].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[5].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[6].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[7].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[8].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[9].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[10].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[11].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[12].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[13].U_LUT_O_UNCONNECTED ; wire \NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[14].U_LUT_O_UNCONNECTED ; wire [11 : 8] \U0/U_ICON/U_CMD/iTARGET ; wire [1 : 0] \U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL ; wire [5 : 1] \U0/U_ICON/U_STAT/U_STAT_CNT/CI ; wire [5 : 0] \U0/U_ICON/U_STAT/U_STAT_CNT/D ; wire [5 : 0] \U0/U_ICON/U_STAT/U_STAT_CNT/S ; wire [3 : 0] \U0/U_ICON/U_STAT/iSTAT ; wire [5 : 0] \U0/U_ICON/U_STAT/iSTAT_CNT ; wire [6 : 0] \U0/U_ICON/U_SYNC/iSYNC_WORD ; wire [1 : 0] \U0/U_ICON/iCOMMAND_GRP ; wire [15 : 0] \U0/U_ICON/iCOMMAND_SEL ; wire [3 : 0] \U0/U_ICON/iCORE_ID ; wire [15 : 15] \U0/U_ICON/iTDO_VEC ; GND XST_GND ( .G(CONTROL0[2]) ); VCC XST_VCC ( .P(N1) ); FDE #( .INIT ( 1'b0 )) \U0/U_ICON/U_TDI_reg ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/iTDI ), .Q(CONTROL0[1]) ); FDE #( .INIT ( 1'b0 )) \U0/U_ICON/U_TDO_reg ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/iTDO_next ), .Q(\U0/U_ICON/iTDO ) ); FDC #( .INIT ( 1'b0 )) \U0/U_ICON/U_iDATA_CMD ( .C(\U0/iUPDATE_OUT ), .CLR(\U0/U_ICON/iSEL_n ), .D(\U0/U_ICON/iDATA_CMD_n ), .Q(\U0/U_ICON/iDATA_CMD ) ); MUXF5 \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_2_f5 ( .I0(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4_92 ), .I1(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3_91 ), .S(\U0/U_ICON/iCORE_ID [3]), .O(\U0/U_ICON/iTDO_next ) ); LUT4 #( .INIT ( 16'h0002 )) \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4 ( .I0(CONTROL0[3]), .I1(\U0/U_ICON/iCORE_ID [0]), .I2(\U0/U_ICON/iCORE_ID [1]), .I3(\U0/U_ICON/iCORE_ID [2]), .O(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_4_92 ) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3 ( .I0(\U0/U_ICON/iTDO_VEC [15]), .I1(\U0/U_ICON/iCORE_ID [0]), .I2(\U0/U_ICON/iCORE_ID [1]), .I3(\U0/U_ICON/iCORE_ID [2]), .O(\U0/U_ICON/U_TDO_MUX/U_CS_MUX/I4.U_MUX16/Mmux_O_3_91 ) ); INV \U0/U_ICON/U_iSEL_n ( .I(\U0/U_ICON/iSEL ), .O(\U0/U_ICON/iSEL_n ) ); INV \U0/U_ICON/U_iDATA_CMD_n ( .I(\U0/U_ICON/iDATA_CMD ), .O(\U0/U_ICON/iDATA_CMD_n ) ); BSCAN_SPARTAN3 \U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS ( .TDI(\U0/U_ICON/iTDI ), .SHIFT(\U0/iSHIFT_OUT ), .DRCK1(\U0/U_ICON/I_YES_BSCAN.U_BS/DRCK1 ), .DRCK2(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_DRCK2_UNCONNECTED ), .RESET(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_RESET_UNCONNECTED ), .UPDATE(\U0/iUPDATE_OUT ), .TDO1(\U0/U_ICON/iTDO ), .TDO2(CONTROL0[2]), .CAPTURE(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_CAPTURE_UNCONNECTED ), .SEL1(\U0/U_ICON/iSEL ), .SEL2(\NLW_U0/U_ICON/I_YES_BSCAN.U_BS/I_SPARTAN3.ISYN.I_USE_SOFTBSCAN_EQ0.I_3.U_BS_SEL2_UNCONNECTED ) ); icon_bscan_bufg \U0/U_ICON/I_YES_BSCAN.U_BS/I_USE_SOFTBSCAN_EQ0.I_USE_XST_TCK_WORKAROUND_EQ1.U_ICON_BSCAN_BUFG ( .DRCK_LOCAL_I(\U0/U_ICON/I_YES_BSCAN.U_BS/DRCK1 ), .DRCK_LOCAL_O(CONTROL0[0]) ); LUT2 #( .INIT ( 4'h8 )) \U0/U_ICON/U_SYNC/U_GOT_SYNC ( .I0(\U0/U_ICON/U_SYNC/iGOT_SYNC_LOW ), .I1(\U0/U_ICON/U_SYNC/iGOT_SYNC_HIGH ), .O(\U0/U_ICON/U_SYNC/iGOT_SYNC ) ); LUT4 #( .INIT ( 16'h0200 )) \U0/U_ICON/U_SYNC/U_GOT_SYNC_L ( .I0(\U0/U_ICON/U_SYNC/iSYNC_WORD [0]), .I1(\U0/U_ICON/U_SYNC/iSYNC_WORD [1]), .I2(\U0/U_ICON/U_SYNC/iSYNC_WORD [2]), .I3(\U0/U_ICON/U_SYNC/iSYNC_WORD [3]), .O(\U0/U_ICON/U_SYNC/iGOT_SYNC_LOW ) ); LUT4 #( .INIT ( 16'h0400 )) \U0/U_ICON/U_SYNC/U_GOT_SYNC_H ( .I0(\U0/U_ICON/U_SYNC/iSYNC_WORD [4]), .I1(\U0/U_ICON/U_SYNC/iSYNC_WORD [5]), .I2(\U0/U_ICON/U_SYNC/iSYNC_WORD [6]), .I3(CONTROL0[1]), .O(\U0/U_ICON/U_SYNC/iGOT_SYNC_HIGH ) ); INV \U0/U_ICON/U_SYNC/U_iDATA_CMD_n ( .I(\U0/U_ICON/iDATA_CMD ), .O(\U0/U_ICON/U_SYNC/iDATA_CMD_n ) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/U_SYNC ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_SYNC/iGOT_SYNC ), .D(N1), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/iSYNC ) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[0].I_NE0.U_FDR ( .C(CONTROL0[0]), .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [1]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [0]) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[1].I_NE0.U_FDR ( .C(CONTROL0[0]), .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [2]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [1]) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[2].I_NE0.U_FDR ( .C(CONTROL0[0]), .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [3]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [2]) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[3].I_NE0.U_FDR ( .C(CONTROL0[0]), .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [4]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [3]) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[4].I_NE0.U_FDR ( .C(CONTROL0[0]), .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [5]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [4]) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[5].I_NE0.U_FDR ( .C(CONTROL0[0]), .D(\U0/U_ICON/U_SYNC/iSYNC_WORD [6]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [5]) ); FDR #( .INIT ( 1'b0 )) \U0/U_ICON/U_SYNC/G_SYNC_WORD[6].I_EQ0.U_FDR ( .C(CONTROL0[0]), .D(CONTROL0[1]), .R(\U0/U_ICON/U_SYNC/iDATA_CMD_n ), .Q(\U0/U_ICON/U_SYNC/iSYNC_WORD [6]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[0].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [0]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[20]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[0].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [0]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[4]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[1].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [1]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[21]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[1].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [1]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[5]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[2].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [2]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[22]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[2].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [2]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[6]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[3].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [3]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[23]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[3].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [3]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[7]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[4].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [4]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[24]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[4].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [4]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[8]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[5].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [5]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[25]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[5].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [5]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[9]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[6].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [6]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[26]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[6].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [6]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[10]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[7].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [7]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[27]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[7].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [7]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[11]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[8].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [8]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[28]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[8].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [8]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[12]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[9].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [9]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[29]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[9].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [9]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[13]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[10].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [10]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[30]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[10].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [10]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[14]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[11].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [11]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[31]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[11].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [11]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[15]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[12].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [12]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[32]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[12].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [12]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[16]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[13].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [13]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[33]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[13].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [13]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[17]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[14].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [14]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[34]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[14].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [14]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[18]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[15].U_HCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [15]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]), .O(CONTROL0[35]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CTRL_OUT/F_NCP[0].F_CMD[15].U_LCE ( .I0(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [15]), .I2(\U0/U_ICON/iCORE_ID_SEL[0] ), .I3(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]), .O(CONTROL0[19]) ); LUT2 #( .INIT ( 4'h2 )) \U0/U_ICON/U_CTRL_OUT/U_CMDGRP1 ( .I0(\U0/U_ICON/iCOMMAND_GRP [0]), .I1(\U0/U_ICON/iCOMMAND_GRP [1]), .O(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [1]) ); LUT2 #( .INIT ( 4'h1 )) \U0/U_ICON/U_CTRL_OUT/U_CMDGRP0 ( .I0(\U0/U_ICON/iCOMMAND_GRP [0]), .I1(\U0/U_ICON/iCOMMAND_GRP [1]), .O(\U0/U_ICON/U_CTRL_OUT/iCOMMAND_GRP_SEL [0]) ); LUT2 #( .INIT ( 4'h8 )) \U0/U_ICON/U_CTRL_OUT/U_DATA_VALID ( .I0(\U0/U_ICON/iSYNC ), .I1(\U0/iSHIFT_OUT ), .O(\U0/U_ICON/U_CTRL_OUT/iDATA_VALID ) ); LUT4 #( .INIT ( 16'h0001 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[0].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\U0/U_ICON/iCORE_ID_SEL[0] ) ); LUT4 #( .INIT ( 16'h0002 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[1].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[1].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0004 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[2].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[2].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0008 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[3].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[3].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0010 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[4].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[4].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0020 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[5].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[5].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0040 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[6].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[6].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0080 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[7].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[7].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0100 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[8].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[8].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0200 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[9].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[9].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0400 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[10].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[10].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0800 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[11].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[11].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h1000 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[12].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[12].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h2000 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[13].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[13].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h4000 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[14].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\NLW_U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[14].U_LUT_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CMD/U_CORE_ID_SEL/I4.FI[15].U_LUT ( .I0(\U0/U_ICON/iCORE_ID [0]), .I1(\U0/U_ICON/iCORE_ID [1]), .I2(\U0/U_ICON/iCORE_ID [2]), .I3(\U0/U_ICON/iCORE_ID [3]), .O(\U0/U_ICON/iCORE_ID_SEL[15] ) ); LUT4 #( .INIT ( 16'h0001 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[0].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [0]) ); LUT4 #( .INIT ( 16'h0002 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[1].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [1]) ); LUT4 #( .INIT ( 16'h0004 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[2].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [2]) ); LUT4 #( .INIT ( 16'h0008 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[3].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [3]) ); LUT4 #( .INIT ( 16'h0010 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[4].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [4]) ); LUT4 #( .INIT ( 16'h0020 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[5].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [5]) ); LUT4 #( .INIT ( 16'h0040 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[6].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [6]) ); LUT4 #( .INIT ( 16'h0080 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[7].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [7]) ); LUT4 #( .INIT ( 16'h0100 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[8].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [8]) ); LUT4 #( .INIT ( 16'h0200 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[9].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [9]) ); LUT4 #( .INIT ( 16'h0400 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[10].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [10]) ); LUT4 #( .INIT ( 16'h0800 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[11].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [11]) ); LUT4 #( .INIT ( 16'h1000 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[12].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [12]) ); LUT4 #( .INIT ( 16'h2000 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[13].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [13]) ); LUT4 #( .INIT ( 16'h4000 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[14].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [14]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_CMD/U_COMMAND_SEL/I4.FI[15].U_LUT ( .I0(\U0/U_ICON/U_CMD/iTARGET [8]), .I1(\U0/U_ICON/U_CMD/iTARGET [9]), .I2(\U0/U_ICON/U_CMD/iTARGET [10]), .I3(\U0/U_ICON/U_CMD/iTARGET [11]), .O(\U0/U_ICON/iCOMMAND_SEL [15]) ); LUT2 #( .INIT ( 4'h4 )) \U0/U_ICON/U_CMD/U_TARGET_CE ( .I0(\U0/U_ICON/iDATA_CMD ), .I1(\U0/iSHIFT_OUT ), .O(\U0/U_ICON/U_CMD/iTARGET_CE ) ); INV \U0/U_ICON/U_CMD/U_SEL_n ( .I(\U0/U_ICON/iSEL ), .O(\U0/U_ICON/U_CMD/iSEL_n ) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[6].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/iCOMMAND_GRP [1]), .Q(\U0/U_ICON/iCOMMAND_GRP [0]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[7].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/U_CMD/iTARGET [8]), .Q(\U0/U_ICON/iCOMMAND_GRP [1]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[8].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/U_CMD/iTARGET [9]), .Q(\U0/U_ICON/U_CMD/iTARGET [8]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[9].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/U_CMD/iTARGET [10]), .Q(\U0/U_ICON/U_CMD/iTARGET [9]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[10].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/U_CMD/iTARGET [11]), .Q(\U0/U_ICON/U_CMD/iTARGET [10]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[11].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/iCORE_ID [0]), .Q(\U0/U_ICON/U_CMD/iTARGET [11]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[12].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/iCORE_ID [1]), .Q(\U0/U_ICON/iCORE_ID [0]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[13].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/iCORE_ID [2]), .Q(\U0/U_ICON/iCORE_ID [1]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[14].I_NE0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(\U0/U_ICON/iCORE_ID [3]), .Q(\U0/U_ICON/iCORE_ID [2]) ); FDCE #( .INIT ( 1'b0 )) \U0/U_ICON/U_CMD/G_TARGET[15].I_EQ0.U_TARGET ( .C(CONTROL0[0]), .CE(\U0/U_ICON/U_CMD/iTARGET_CE ), .CLR(\U0/U_ICON/U_CMD/iSEL_n ), .D(CONTROL0[1]), .Q(\U0/U_ICON/iCORE_ID [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[5].U_FDRE ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [5]), .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [5]) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].U_FDRE ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [4]), .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [4]) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].U_FDRE ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [3]), .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].U_FDRE ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [2]), .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [2]) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].U_FDRE ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [1]), .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].U_FDRE ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/U_STAT_CNT/D [0]), .R(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ), .Q(\U0/U_ICON/U_STAT/iSTAT_CNT [0]) ); LUT1 #( .INIT ( 2'h2 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[5].U_LUT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [5]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [5]) ); XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[5].U_XORCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [5]), .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [5]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [5]) ); LUT1 #( .INIT ( 2'h2 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].U_LUT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [4]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [4]) ); MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].GnH.U_MUXCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [4]), .DI(CONTROL0[2]), .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [4]), .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [5]) ); XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[4].U_XORCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [4]), .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [4]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [4]) ); LUT1 #( .INIT ( 2'h2 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].U_LUT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [3]) ); MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].GnH.U_MUXCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [3]), .DI(CONTROL0[2]), .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [3]), .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [4]) ); XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[3].U_XORCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [3]), .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [3]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [3]) ); LUT1 #( .INIT ( 2'h2 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].U_LUT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [2]) ); MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].GnH.U_MUXCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [2]), .DI(CONTROL0[2]), .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [2]), .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [3]) ); XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[2].U_XORCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [2]), .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [2]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [2]) ); LUT1 #( .INIT ( 2'h2 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].U_LUT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [1]) ); MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].GnH.U_MUXCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [1]), .DI(CONTROL0[2]), .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [1]), .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [2]) ); XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[1].U_XORCY ( .CI(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [1]), .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [1]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [1]) ); LUT1 #( .INIT ( 2'h2 )) \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].U_LUT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/S [0]) ); MUXCY_L \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].GnH.U_MUXCY ( .CI(N1), .DI(CONTROL0[2]), .S(\U0/U_ICON/U_STAT/U_STAT_CNT/S [0]), .LO(\U0/U_ICON/U_STAT/U_STAT_CNT/CI [1]) ); XORCY \U0/U_ICON/U_STAT/U_STAT_CNT/G[0].U_XORCY ( .CI(N1), .LI(\U0/U_ICON/U_STAT/U_STAT_CNT/S [0]), .O(\U0/U_ICON/U_STAT/U_STAT_CNT/D [0]) ); MUXF6 \U0/U_ICON/U_STAT/U_TDO_next ( .I0(\U0/U_ICON/U_STAT/iSTAT_LOW ), .I1(\U0/U_ICON/U_STAT/iSTAT_HIGH ), .S(\U0/U_ICON/U_STAT/iSTAT_CNT [5]), .O(\U0/U_ICON/U_STAT/iTDO_next ) ); MUXF5 \U0/U_ICON/U_STAT/U_STAT_LOW ( .I0(\U0/U_ICON/U_STAT/iSTAT [0]), .I1(\U0/U_ICON/U_STAT/iSTAT [1]), .S(\U0/U_ICON/U_STAT/iSTAT_CNT [4]), .O(\U0/U_ICON/U_STAT/iSTAT_LOW ) ); MUXF5 \U0/U_ICON/U_STAT/U_STAT_HIGH ( .I0(\U0/U_ICON/U_STAT/iSTAT [2]), .I1(\U0/U_ICON/U_STAT/iSTAT [3]), .S(\U0/U_ICON/U_STAT/iSTAT_CNT [4]), .O(\U0/U_ICON/U_STAT/iSTAT_HIGH ) ); LUT4 #( .INIT ( 16'h0101 )) \U0/U_ICON/U_STAT/F_STAT[0].U_STAT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), .O(\U0/U_ICON/U_STAT/iSTAT [0]) ); LUT4 #( .INIT ( 16'hC101 )) \U0/U_ICON/U_STAT/F_STAT[1].U_STAT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), .O(\U0/U_ICON/U_STAT/iSTAT [1]) ); LUT4 #( .INIT ( 16'h2100 )) \U0/U_ICON/U_STAT/F_STAT[2].U_STAT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), .O(\U0/U_ICON/U_STAT/iSTAT [2]) ); LUT4 #( .INIT ( 16'h1610 )) \U0/U_ICON/U_STAT/F_STAT[3].U_STAT ( .I0(\U0/U_ICON/U_STAT/iSTAT_CNT [0]), .I1(\U0/U_ICON/U_STAT/iSTAT_CNT [1]), .I2(\U0/U_ICON/U_STAT/iSTAT_CNT [2]), .I3(\U0/U_ICON/U_STAT/iSTAT_CNT [3]), .O(\U0/U_ICON/U_STAT/iSTAT [3]) ); INV \U0/U_ICON/U_STAT/U_STATCMD_n ( .I(\U0/U_ICON/U_STAT/iSTATCMD_CE ), .O(\U0/U_ICON/U_STAT/iSTATCMD_CE_n ) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_ICON/U_STAT/U_STATCMD ( .I0(\U0/U_ICON/U_STAT/iDATA_VALID ), .I1(\U0/U_ICON/iCOMMAND_SEL [0]), .I2(\U0/U_ICON/iCORE_ID_SEL[15] ), .I3(\U0/U_ICON/U_STAT/iCMD_GRP0_SEL ), .O(\U0/U_ICON/U_STAT/iSTATCMD_CE ) ); LUT2 #( .INIT ( 4'h1 )) \U0/U_ICON/U_STAT/U_CMDGRP0 ( .I0(\U0/U_ICON/iCOMMAND_GRP [0]), .I1(\U0/U_ICON/iCOMMAND_GRP [1]), .O(\U0/U_ICON/U_STAT/iCMD_GRP0_SEL ) ); LUT2 #( .INIT ( 4'h8 )) \U0/U_ICON/U_STAT/U_DATA_VALID ( .I0(\U0/U_ICON/iSYNC ), .I1(\U0/iSHIFT_OUT ), .O(\U0/U_ICON/U_STAT/iDATA_VALID ) ); FDE #( .INIT ( 1'b0 )) \U0/U_ICON/U_STAT/U_TDO ( .C(CONTROL0[0]), .CE(N1), .D(\U0/U_ICON/U_STAT/iTDO_next ), .Q(\U0/U_ICON/iTDO_VEC [15]) ); // synthesis translate_on endmodule // synthesis translate_off `ifndef GLBL `define GLBL `timescale 1 ps / 1 ps module glbl (); parameter ROC_WIDTH = 100000; parameter TOC_WIDTH = 0; wire GSR; wire GTS; wire GWE; wire PRLD; tri1 p_up_tmp; tri (weak1, strong0) PLL_LOCKG = p_up_tmp; reg GSR_int; reg GTS_int; reg PRLD_int; //-------- JTAG Globals -------------- wire JTAG_TDO_GLBL; wire JTAG_TCK_GLBL; wire JTAG_TDI_GLBL; wire JTAG_TMS_GLBL; wire JTAG_TRST_GLBL; reg JTAG_CAPTURE_GLBL; reg JTAG_RESET_GLBL; reg JTAG_SHIFT_GLBL; reg JTAG_UPDATE_GLBL; reg JTAG_RUNTEST_GLBL; reg JTAG_SEL1_GLBL = 0; reg JTAG_SEL2_GLBL = 0 ; reg JTAG_SEL3_GLBL = 0; reg JTAG_SEL4_GLBL = 0; reg JTAG_USER_TDO1_GLBL = 1'bz; reg JTAG_USER_TDO2_GLBL = 1'bz; reg JTAG_USER_TDO3_GLBL = 1'bz; reg JTAG_USER_TDO4_GLBL = 1'bz; assign (weak1, weak0) GSR = GSR_int; assign (weak1, weak0) GTS = GTS_int; assign (weak1, weak0) PRLD = PRLD_int; initial begin GSR_int = 1'b1; PRLD_int = 1'b1; #(ROC_WIDTH) GSR_int = 1'b0; PRLD_int = 1'b0; end initial begin GTS_int = 1'b1; #(TOC_WIDTH) GTS_int = 1'b0; end endmodule `endif // synthesis translate_on uhd-3.5.5/fpga/usrp2/extramfifo/icon.xco000066400000000000000000000024521224274632000201100ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version 12.1 # Date: Wed Jul 21 03:31:19 2010 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = false SET asysymbol = true SET busformat = BusFormatAngleBracketNotRipped SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false SET simulationfiles = Structural SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select SELECT ICON_(ChipScope_Pro_-_Integrated_Controller) family Xilinx,_Inc. 1.04.a # END Select # BEGIN Parameters CSET component_name=icon CSET enable_jtag_bufg=true CSET number_control_ports=1 CSET use_ext_bscan=false CSET use_softbscan=false CSET use_unused_bscan=false CSET user_scan_chain=USER1 # END Parameters GENERATE # CRC: 799ba5a1 uhd-3.5.5/fpga/usrp2/extramfifo/ila.v000066400000000000000000007304241224274632000174100ustar00rootroot00000000000000//////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. //////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor: Xilinx // \ \ \/ Version: M.53d // \ \ Application: netgen // / / Filename: ila.v // /___/ /\ Timestamp: Wed Jul 21 11:51:09 2010 // \ \ / \ // \___\/\___\ // // Command : -w -sim -ofmt verilog /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.ngc /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.v // Device : xc3s2000-fg456-5 // Input file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.ngc // Output file : /home/ianb/ettus/sram_fifo/fpgapriv/usrp2/extramfifo/tmp/_cg/ila.v // # of Modules : 1 // Design Name : ila // Xilinx : /opt/Xilinx/12.1/ISE_DS/ISE // // Purpose: // This verilog netlist is a verification model and uses simulation // primitives which may not represent the true implementation of the // device, however the netlist is functionally correct and should not // be modified. This file cannot be synthesized and should only be used // with supported simulation tools. // // Reference: // Command Line Tools User Guide, Chapter 23 and Synthesis and Simulation Design Guide, Chapter 6 // //////////////////////////////////////////////////////////////////////////////// `timescale 1 ns/1 ps module ila ( CLK, CONTROL, TRIG0, TRIG1, TRIG2, TRIG3 )/* synthesis syn_black_box syn_noprune=1 */; input CLK; inout [35 : 0] CONTROL; input [7 : 0] TRIG0; input [7 : 0] TRIG1; input [7 : 0] TRIG2; input [3 : 0] TRIG3; // synthesis translate_off wire N0; wire N1; wire N38; wire N39; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iOUT ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iOUT ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iOUT ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_CE ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[0] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[1] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[8] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[0] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[1] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[8] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[0] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[1] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[8] ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_CE ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_CE ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iCAP_WR_EN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_IN ; wire \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_OUT ; wire \U0/I_NO_D.U_ILA/U_RST/HALT_pulse ; wire \U0/I_NO_D.U_ILA/U_RST/POR ; wire \U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ; wire \U0/I_NO_D.U_ILA/U_RST/PRE_RESET1 ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/din_latched ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[0] ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[1] ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[2] ; wire \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[4] ; wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/din_latched ; wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ; wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ; wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[0] ; wire \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[2] ; wire \U0/I_NO_D.U_ILA/U_STAT/ACTRESET_pulse ; wire \U0/I_NO_D.U_ILA/U_STAT/ACT_dstat ; wire \U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ; wire \U0/I_NO_D.U_ILA/U_STAT/CAP_RESET_dly1 ; wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_D0 ; wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_D1 ; wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_SEL ; wire \U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ; wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ; wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ; wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ; wire \U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ; wire \U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ; wire \U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ; wire \U0/I_NO_D.U_ILA/U_STAT/NS_load ; wire \U0/I_NO_D.U_ILA/U_STAT/TDO_mux_in<0>1 ; wire \U0/I_NO_D.U_ILA/U_STAT/TDO_next ; wire \U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10_443 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101_444 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11_445 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5_446 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13_447 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14_448 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3_449 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4_450 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6_451 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_452 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5_453 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_454 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_455 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5_456 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/din_latched ; wire \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ; wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15_463 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2_464 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26_465 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36_466 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82_467 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5_470 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6_471 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_472 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_473 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f51 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_475 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121_476 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122_477 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5_478 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13_479 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131_480 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132_481 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14_482 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7_483 ; wire \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6_484 ; wire \U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE ; wire \U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ; wire \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1_535 ; wire \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1_537 ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/iTRIGGER ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/iTRIGGER ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/DOUT_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/dout_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/DOUT_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/dout_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/DOUT_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/dout_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/DOUT_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<3> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<4> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ; wire \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/dout_tmp ; wire \U0/I_NO_D.U_ILA/U_TRIG/trigCondOut ; wire \U0/I_NO_D.U_ILA/iARM ; wire \U0/I_NO_D.U_ILA/iCAPTURE ; wire \U0/I_NO_D.U_ILA/iCAP_DONE ; wire \U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT ; wire \U0/I_NO_D.U_ILA/iCAP_WR_EN ; wire \U0/I_NO_D.U_ILA/iDATA_DOUT ; wire \U0/I_NO_D.U_ILA/iSTAT_DOUT ; wire \U0/I_NO_D.U_ILA/iTRIGGER ; wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4_Q15_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_STAT/U_DSR_O_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_B_O_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E_Q15_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<31>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<30>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<29>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<28>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<27>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<26>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<25>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<24>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<23>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<22>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<21>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<20>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<19>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<18>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<17>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<16>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<15>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<14>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<13>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<12>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<11>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<10>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<9>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<8>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<7>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<6>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<5>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<4>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<3>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<2>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<1>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<0>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<3>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<2>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<1>_UNCONNECTED ; wire \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<0>_UNCONNECTED ; wire [27 : 0] \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp ; wire [13 : 1] \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI ; wire [13 : 0] \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D ; wire [13 : 0] \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S ; wire [13 : 0] \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR ; wire [3 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA ; wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO ; wire [3 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA ; wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO ; wire [7 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA ; wire [7 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO ; wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO ; wire [7 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA ; wire [7 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO ; wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DATA ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO ; wire [3 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA ; wire [3 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DATA ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DATA ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next ; wire [8 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S ; wire [8 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/cfg_data ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/cfg_data ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/cfg_data ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData ; wire [4 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data ; wire [16 : 1] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT ; wire [9 : 0] \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN ; wire [0 : 0] \U0/I_NO_D.U_ILA/U_RST/iRESET ; wire [8 : 0] \U0/I_NO_D.U_ILA/U_STAT/NS_dstat ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/STATE_dstat ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly ; wire [1 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT ; wire [9 : 1] \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI ; wire [9 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D ; wire [9 : 0] \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S ; wire [16 : 0] \U0/I_NO_D.U_ILA/U_STAT/iSTAT ; wire [9 : 0] \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT ; wire [1 : 1] \U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCFG_DATA ; wire [3 : 0] \U0/I_NO_D.U_ILA/U_TRIG/trigCondIn ; wire [8 : 0] \U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES ; wire [1 : 0] \U0/I_NO_D.U_ILA/iCAP_STATE ; wire [8 : 0] \U0/I_NO_D.U_ILA/iCAP_WR_ADDR ; wire [27 : 0] \U0/I_NO_D.U_ILA/iDATA ; wire [7 : 0] \U0/I_NO_D.U_ILA/iRESET ; wire [8 : 0] \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy ; wire [8 : 0] \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut ; wire [27 : 0] \U0/iTRIG_IN ; GND XST_GND ( .G(N0) ); VCC XST_VCC ( .P(N1) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_WCNT_HCMP_Q ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP ), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_WCNT_LCMP_Q ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP ), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_SCNT_CMP_Q ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP ), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_INTCAP_F.U_CAPWE0 ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iCAP_WR_EN ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_INTCAP_F.U_CAPWE1 ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iCAP_WR_EN ), .R(\U0/I_NO_D.U_ILA/iRESET [7]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_EN ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_TRIG0 ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_IN ), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_OUT ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_TRIG1 ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_OUT ), .R(\U0/I_NO_D.U_ILA/iRESET [7]), .Q(\U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.OUT_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iOUT ), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_STATE [0]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.OUT_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iOUT ), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_STATE [1]) ); LUT3 #( .INIT ( 8'h20 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_TRIG ( .I0(\U0/I_NO_D.U_ILA/iTRIGGER ), .I1(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .I2(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/iTRIGGER_IN ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/I_NOLUT6.I_SRL_T2.U_SRLC16E ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [5]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [4]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCE/iCFG_DIN ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/I_NOLUT6.I_SRL_T2.U_SRLC16E ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [4]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [3]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WCE/iCFG_DIN ) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.U_MUXF7 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [0]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iOUT ) ); MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [0]) ); MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/kO [1]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [0]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [1]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U2_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [5]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [4]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [2]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U3_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [7]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [6]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/jO [3]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [2]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [2]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [3]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [2]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [2]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [4]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [3]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [3]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF2_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [5]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [4]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [4]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG2_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [5]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [5]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF3_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [7]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [6]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [6]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG3_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iO [7]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DATA [7]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [1]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS0/iCFG_DIN ) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.U_MUXF7 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [0]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iOUT ) ); MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [0]) ); MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/kO [1]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U0_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [0]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U1_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [1]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U2_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [5]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [4]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [2]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.U3_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [7]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [6]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/jO [3]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [2]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [3]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [2]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [2]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [4]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [3]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [3]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF2_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [5]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [4]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [4]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG2_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [5]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [5]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UF3_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [7]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [6]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [6]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_S3.UG3_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iO [7]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DATA [7]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [0]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_NS1/iCFG_DIN ) ); MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/CMP_RESET ) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.U0_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [0]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.U1_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/jO [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [6]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [2]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [3]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [2]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [2]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iO [3]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DATA [3]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [5]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CMPRESET/iCFG_DIN ) ); MUXF6 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.U0_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [0]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.U1_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/jO [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [3]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [2]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [3]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [2]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [2]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iO [3]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DATA [3]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [2]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCRST/iCFG_DIN ) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_CE ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [0]), .Q15(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4_Q15_UNCONNECTED ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG_cs_cfglut4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DATA [1]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [9]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WHCMPCE/iCFG_DIN ) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_CE ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [9]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG_cs_cfglut4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DATA [1]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [8]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_WLCMPCE/iCFG_DIN ) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_NO_OREG.U_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP_CE ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF_cs_cfglut4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [8]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG_cs_cfglut4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DATA [1]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [7]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_SCMPCE/iCFG_DIN ) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.U_MUXF6 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [0]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iOUT ) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.U0_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [0]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [0]) ); MUXF5 \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.U1_MUXF5 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [2]), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP_Q ), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/jO [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [0]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [7]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG0_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [2]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [1]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UF1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [3]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [2]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [2]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.UG1_CFGLUT4 ( .A0(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .A2(\U0/I_NO_D.U_ILA/iTRIGGER ), .A3(\U0/I_NO_D.U_ILA/iCAPTURE ), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iO [3]), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DATA [3]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [6]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iCFG_DIN ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/I_NOLUT6.I_SRL_T2.I_YES_RPM.I_YES_OREG.OUT_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/I_SRLT_NE_1.U_CDONE/iOUT ), .R(N0), .Q(\U0/I_NO_D.U_ILA/iCAP_DONE ) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[8].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [8]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [7]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [6]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [5]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [4]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [3]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [2]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [1]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [0]), .R(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_RESET ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[8].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [8]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[8].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [8]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [8]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [8]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [7]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [7]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [7]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [8]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[7].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [7]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [7]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [7]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [6]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [6]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [6]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [7]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[6].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [6]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [6]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [6]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [5]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [5]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [5]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [6]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[5].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [5]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [5]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [5]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [4]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [4]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [4]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [5]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[4].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [4]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [4]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [4]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [3]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [3]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [3]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [4]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[3].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [3]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [3]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [3]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [2]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [2]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [2]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [3]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[2].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [2]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [2]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [2]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [1]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [1]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [2]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[1].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [1]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [1]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [1]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].GnH.U_MUXCY ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [0]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/CI [1]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/G[0].U_XORCY ( .CI(N1), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/S [0]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_NO_TSEQ.I_SRLT_NE_1.U_SCNT/D [0]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[8].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [8]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [7]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [6]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [5]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [4]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [3]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [2]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [1]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].U_FDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_CE ), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [0]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[8].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [8]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[8].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [8]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [8]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [8]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [7]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [7]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [7]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [8]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[7].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [7]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [7]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [7]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [6]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [6]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [6]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [7]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[6].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [6]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [6]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [6]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [5]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [5]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [5]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [6]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[5].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [5]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [5]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [5]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [4]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [4]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [4]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [5]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[4].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [4]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [4]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [4]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [3]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [3]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [3]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [4]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[3].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [3]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [3]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [3]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [2]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [2]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [2]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [3]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[2].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [2]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [2]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [2]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [1]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [1]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [2]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[1].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [1]), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [1]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [1]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].U_LUT ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].GnH.U_MUXCY ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [0]), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/CI [1]) ); XORCY \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/G[0].U_XORCY ( .CI(N1), .LI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/S [0]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_SRLT_NE_1.U_WCNT/D [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[8] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/SCNT_CMP ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[8] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/cfg_data [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(N1), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [0]), .Q(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[0] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[1] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]), .A1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]), .A2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]), .A3(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[0] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]), .A1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]), .A2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]), .A3(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/cfg_data [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/sel[1] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_SCNT_CMP/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[8] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_HCMP ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[8] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(N1), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [2]), .Q(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ) , .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[0] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[1] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[0] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [3]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/sel[1] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_HCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[8] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/WCNT_LCMP ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[8] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(N1), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [4]), .Q(\NLW_U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH_Q_UNCONNECTED ) , .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData0 ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[0] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [0]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[1] ), .LO(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCompData [1]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[0] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/cfg_data [0]) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), .A1(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), .A2(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), .A3(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/cfg_data [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/sel[1] ), .Q15(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_WCNT_LCMP/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_BRK1 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [3]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [4]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/U_BRK0 ( .I0(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [1]), .I1(CONTROL[9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [2]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[8].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [8]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [9]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [8]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[7].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [7]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [8]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [7]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[6].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [6]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [7]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [6]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[5].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [5]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [6]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [5]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[4].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [4]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [5]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [4]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[3].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [3]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [4]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [3]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[2].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [2]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [3]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [2]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[1].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [1]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [2]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [1]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[0].U_CAP_ADDR_MUX ( .I0(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), .I1(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iSCNT [0]), .I2(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [1]), .O(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [0]) ); SRL16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.I_SRL.U_SELX ( .A0(N1), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[9]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [16]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data [0]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[8].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [8]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [8]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[8].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [8]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [8]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[7].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [7]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [7]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[7].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [7]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [7]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[6].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [6]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [6]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[6].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [6]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [6]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[5].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [5]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [5]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[5].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [5]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [5]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[4].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [4]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [4]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[4].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [4]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [4]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[3].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [3]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [3]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[3].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [3]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [3]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[2].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [2]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [2]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[2].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [2]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [2]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[1].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [1]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [1]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[1].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [1]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [1]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[0].U_CAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [0]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [0]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_INTCAP.F_CAP_ADDR[0].U_iCAP_ADDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/CAP_ADDR_next [0]), .R(\U0/I_NO_D.U_ILA/iRESET [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/iCAP_ADDR [0]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[15].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [15]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [16]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[14].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [14]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [15]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[13].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [13]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [14]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[12].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [12]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [13]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[11].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [11]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [12]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[10].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [10]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [11]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[9].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [9]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [10]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[8].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [8]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [9]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[7].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [7]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [8]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[6].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [6]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [7]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[5].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [5]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [6]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[4].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [4]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [5]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[3].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [3]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [4]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[2].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [2]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [3]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[1].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [2]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/I_0_TO_64K.F_SEL[0].U_SEL ( .C(CONTROL[0]), .CE(CONTROL[9]), .D(CONTROL[1]), .Q(\U0/I_NO_D.U_ILA/U_G2_SQ.U_CAPCTRL/U_CAP_ADDRGEN/cfg_data_vec [1]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL2 ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ), .Q(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL3 ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), .Q(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_CR ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/iRESET [0]), .Q(\U0/I_NO_D.U_ILA/U_STAT/CAP_RESET_dly1 ) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[8].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [8]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [8]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[7].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [7]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [7]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[6].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [6]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [6]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[5].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [5]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [5]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[4].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [4]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [4]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[3].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [3]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[2].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [2]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [2]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[1].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [1]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/G_NS[0].U_NSQ ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/NS_load ), .D(\U0/I_NO_D.U_ILA/iCAP_NUM_SAMPLES [0]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [0]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STATE1 ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ), .D(\U0/I_NO_D.U_ILA/iCAP_STATE [1]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STATE0 ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ), .D(\U0/I_NO_D.U_ILA/iCAP_STATE [0]), .R(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [0]) ); FDRS #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_ARM ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ), .R(\U0/I_NO_D.U_ILA/iRESET [0]), .S(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ) ); FDRS #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_TRIGGER ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ), .R(\U0/I_NO_D.U_ILA/iRESET [0]), .S(\U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT ), .Q(\U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ) ); FDRS #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_FULL ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ), .R(\U0/I_NO_D.U_ILA/iARM ), .S(\U0/I_NO_D.U_ILA/iCAP_DONE ), .Q(\U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ) ); FDRS #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_ECR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ), .R(\U0/I_NO_D.U_ILA/iARM ), .S(N1), .Q(\U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DIRTY_FDCE ( .C(CONTROL[0]), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/iARM ), .D(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ), .Q(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D0 ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_STAT/U_DIRTY_FDPE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ), .PRE(CONTROL[13]), .Q(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D1 ) ); LDC #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DIRTY_LDC ( .CLR(\U0/I_NO_D.U_ILA/iARM ), .D(N1), .G(CONTROL[13]), .Q(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_SEL ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_RISING ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_STAT/ACTRESET_pulse ), .D(N1), .Q(\U0/I_NO_D.U_ILA/U_STAT/ACT_dstat ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_TDO ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/TDO_next ), .Q(\U0/I_NO_D.U_ILA/iSTAT_DOUT ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_GEN_DELAY[1].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [0]), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [1]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_RFDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ), .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), .D(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [0]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_DOUT ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [0]), .R(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [1]), .Q(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly1 ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_DOUT1 ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [0]), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [1]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_DOUT0 ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), .D(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/din_latched ), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDIN [0]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_TFDRE ( .C(CONTROL[0]), .CE(CONTROL[5]), .CLR(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ), .D(CONTROL[5]), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/din_latched ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/I_H2L.U_DOUT ( .C(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [1]), .R(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [0]), .Q(\U0/I_NO_D.U_ILA/U_STAT/ACTRESET_pulse ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/U_DOUT1 ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [0]), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [1]) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/U_DOUT0 ( .C(CONTROL[0]), .CE(N1), .D(CONTROL[5]), .Q(\U0/I_NO_D.U_ILA/U_STAT/U_RESET_EDGE/iDOUT [0]) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_2_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4_450 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3_449 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/TDO_mux_in<0>1 ) ); LUT4 #( .INIT ( 16'h5140 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .I2(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_455 ), .I3(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_452 ), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_4_450 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1_535 ), .I2(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5_446 ), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_452 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14_448 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13_447 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_12_f5_446 ) ); LUT2 #( .INIT ( 4'hD )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/FULL_dstat ), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_14_448 ) ); LUT3 #( .INIT ( 8'h53 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [1]), .I1(\U0/I_NO_D.U_ILA/U_STAT/STATE_dstat [0]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_13_447 ) ); LUT4 #( .INIT ( 16'hFBEA )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1_537 ), .I3(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6_451 ), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_3_449 ) ); MUXF6 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5_456 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5_453 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_7_f6_451 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11_445 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101_444 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_f5_456 ) ); LUT3 #( .INIT ( 8'h53 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [1]), .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [0]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_11_445 ) ); LUT3 #( .INIT ( 8'h53 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [3]), .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [2]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_101_444 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10_443 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_454 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_8_f5_453 ) ); LUT3 #( .INIT ( 8'h53 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [5]), .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [4]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_10_443 ) ); LUT3 #( .INIT ( 8'h53 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [7]), .I1(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [6]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_9_454 ) ); MUXF7 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6_471 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6_484 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7_483 ) ); MUXF6 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5_478 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f51 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f6_471 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14_482 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132_481 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_f5_478 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [0]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [1]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_14_482 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [2]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_132_481 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_0 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131_480 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122_477 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f51 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [4]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_131_480 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [6]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [7]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_122_477 ) ); MUXF6 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_473 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5_470 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_9_f6_484 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13_479 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121_476 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_f5_473 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [8]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [9]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_13_479 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [10]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [11]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_121_476 ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_475 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_472 ), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_10_f5_470 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [12]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [13]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_12_475 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [14]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [15]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_11_472 ) ); LUT2 #( .INIT ( 4'hE )) \U0/I_NO_D.U_ILA/U_STAT/U_STATCMD ( .I0(CONTROL[4]), .I1(CONTROL[5]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE ) ); INV \U0/I_NO_D.U_ILA/U_STAT/U_STATCMD_n ( .I(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE ), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ) ); LUT2 #( .INIT ( 4'h4 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL ( .I0(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), .O(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_load ) ); LUT2 #( .INIT ( 4'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSR ( .I0(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), .O(\NLW_U0/I_NO_D.U_ILA/U_STAT/U_DSR_O_UNCONNECTED ) ); LUT4 #( .INIT ( 16'h0F22 )) \U0/I_NO_D.U_ILA/U_STAT/U_NSL ( .I0(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly3 ), .I1(\U0/I_NO_D.U_ILA/U_STAT/DSTAT_en_dly2 ), .I2(\U0/I_NO_D.U_ILA/U_STAT/CAP_RESET_dly1 ), .I3(\U0/I_NO_D.U_ILA/iRESET [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/NS_load ) ); LUT4 #( .INIT ( 16'h0030 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[16].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [16]) ); LUT4 #( .INIT ( 16'h1030 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[15].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [15]) ); LUT4 #( .INIT ( 16'h0070 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[14].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [14]) ); LUT4 #( .INIT ( 16'h1020 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[13].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [13]) ); LUT4 #( .INIT ( 16'h0070 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[12].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [12]) ); LUT4 #( .INIT ( 16'h1010 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[11].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [11]) ); LUT4 #( .INIT ( 16'h0070 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[10].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [10]) ); LUT4 #( .INIT ( 16'h100F )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[9].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [9]) ); LUT4 #( .INIT ( 16'hFFF0 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[8].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [8]) ); LUT4 #( .INIT ( 16'h0004 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[7].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [7]) ); LUT4 #( .INIT ( 16'h3000 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[6].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [6]) ); LUT4 #( .INIT ( 16'h001F )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[5].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [5]) ); LUT4 #( .INIT ( 16'hF001 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[4].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [4]) ); LUT4 #( .INIT ( 16'hB610 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[3].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [3]) ); LUT4 #( .INIT ( 16'h2100 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[2].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [2]) ); LUT4 #( .INIT ( 16'hC102 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[1].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [1]) ); LUT4 #( .INIT ( 16'h0101 )) \U0/I_NO_D.U_ILA/U_STAT/F_SSTAT[0].I_STAT.U_STAT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [0]) ); LUT2 #( .INIT ( 4'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_DSL1/U_CLEAR ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iDOUT_dly [1]), .I1(CONTROL[5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DSL1/iCLR ) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].U_XORCY ( .CI(N1), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].GnH.U_MUXCY ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [0]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [1]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [0]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [1]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [1]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [1]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [1]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [2]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [1]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [2]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [2]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [2]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [2]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [2]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [3]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [2]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [3]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [3]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [3]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [3]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [4]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [3]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [4]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [4]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [4]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [4]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [4]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [5]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [4]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [5]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [5]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [5]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [5]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [6]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [5]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [6]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [6]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [6]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [6]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [6]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [7]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [6]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [7]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [7]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [7]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [7]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [7]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [8]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [7]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [8]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [8]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [8]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [8]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [8]), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [9]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [8]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [8]) ); XORCY \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[9].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/CI [9]), .LI(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [9]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [9]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[9].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/S [9]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[0].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [0]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[1].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [1]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[2].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [2]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[3].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [3]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[4].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [4]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[5].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [5]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[6].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [6]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[7].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [7]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[8].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [8]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [8]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/G[9].U_FDRE ( .C(CONTROL[0]), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_STAT/U_STAT_CNT/D [9]), .R(\U0/I_NO_D.U_ILA/U_STAT/iSTATCMD_CE_n ), .Q(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]) ); FDP #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/U_POR ( .C(CLK), .D(N0), .PRE(N0), .Q(\U0/I_NO_D.U_ILA/U_RST/POR ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[0].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_RST/iRESET [0]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [0]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[1].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [0]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [1]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[2].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [1]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [2]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[3].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [2]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [3]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[4].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [3]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [4]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[5].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [4]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [5]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[6].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [5]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [6]) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_RST/G_RST[7].U_RST ( .C(CLK), .D(\U0/I_NO_D.U_ILA/iRESET [6]), .S(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ), .Q(\U0/I_NO_D.U_ILA/iRESET [7]) ); LUT3 #( .INIT ( 8'hEF )) \U0/I_NO_D.U_ILA/U_RST/U_PRST1 ( .I0(\U0/I_NO_D.U_ILA/U_RST/HALT_pulse ), .I1(\U0/I_NO_D.U_ILA/U_RST/POR ), .I2(N1), .O(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET1 ) ); LUT4 #( .INIT ( 16'hFFFE )) \U0/I_NO_D.U_ILA/U_RST/U_PRST0 ( .I0(N0), .I1(\U0/I_NO_D.U_ILA/iCAP_DONE ), .I2(N0), .I3(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET1 ), .O(\U0/I_NO_D.U_ILA/U_RST/PRE_RESET0 ) ); LUT2 #( .INIT ( 4'h4 )) \U0/I_NO_D.U_ILA/U_RST/U_RST0 ( .I0(\U0/I_NO_D.U_ILA/iARM ), .I1(\U0/I_NO_D.U_ILA/iRESET [0]), .O(\U0/I_NO_D.U_ILA/U_RST/iRESET [0]) ); LUT2 #( .INIT ( 4'h2 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_CLEAR ( .I0(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[2] ), .I1(CONTROL[13]), .O(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_GEN_DELAY[2].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_RST/HALT_pulse ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[2] ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_GEN_DELAY[1].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[0] ), .Q(\U0/I_NO_D.U_ILA/U_RST/HALT_pulse ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_RFDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT_dly[0] ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_DOUT ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [0]), .R(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [1]), .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDOUT ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_DOUT1 ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [0]), .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [1]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_DOUT0 ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), .D(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/din_latched ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iDIN [0]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/U_TFDRE ( .C(CONTROL[0]), .CE(CONTROL[13]), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/iCLR ), .D(CONTROL[13]), .Q(\U0/I_NO_D.U_ILA/U_RST/U_HALT_XFER/din_latched ) ); LUT2 #( .INIT ( 4'h2 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_CLEAR ( .I0(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[4] ), .I1(CONTROL[12]), .O(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[4].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/iARM ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[4] ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[3].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[2] ), .Q(\U0/I_NO_D.U_ILA/iARM ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[2].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[1] ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[2] ) ); FDE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_GEN_DELAY[1].U_FD ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[0] ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[1] ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_RFDRE ( .C(CLK), .CE(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT_dly[0] ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_DOUT ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [0]), .R(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [1]), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDOUT ) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_DOUT1 ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [0]), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [1]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_DOUT0 ( .C(CLK), .CE(N1), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), .D(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/din_latched ), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iDIN [0]) ); FDCE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/U_TFDRE ( .C(CONTROL[0]), .CE(CONTROL[12]), .CLR(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/iCLR ), .D(CONTROL[12]), .Q(\U0/I_NO_D.U_ILA/U_RST/U_ARM_XFER/din_latched ) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[13].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [13]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [13]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [12]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [12]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [11]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [11]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [10]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [10]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [9]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [9]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [8]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [8]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [7]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [7]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [6]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [6]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [5]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [5]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [4]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [4]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [3]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [3]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [2]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [2]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [1]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [1]) ); FDRE #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].U_FDRE ( .C(CONTROL[0]), .CE(CONTROL[6]), .D(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [0]), .R(CONTROL[14]), .Q(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [0]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[13].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [13]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [13]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[13].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [13]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [13]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [13]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [12]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [12]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [12]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [12]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [13]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[12].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [12]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [12]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [12]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [11]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [11]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [11]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [11]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [12]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[11].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [11]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [11]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [11]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [10]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [10]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [10]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [10]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [11]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[10].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [10]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [10]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [10]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [9]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [9]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [9]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [9]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [10]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[9].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [9]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [9]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [9]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [8]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [8]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [8]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [8]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [9]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[8].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [8]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [8]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [8]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [7]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [7]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [7]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [7]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [8]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[7].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [7]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [7]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [7]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [6]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [6]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [6]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [6]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [7]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[6].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [6]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [6]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [6]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [5]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [5]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [5]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [5]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [6]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[5].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [5]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [5]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [5]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [4]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [4]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [4]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [4]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [5]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[4].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [4]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [4]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [4]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [3]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [3]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [3]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [3]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [4]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[3].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [3]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [3]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [3]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [2]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [2]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [2]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [2]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [3]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[2].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [2]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [2]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [2]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [1]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [1]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].GnH.U_MUXCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [1]), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [1]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [2]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[1].U_XORCY ( .CI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [1]), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [1]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [1]) ); LUT1 #( .INIT ( 2'h2 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [0]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [0]) ); MUXCY_L \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].GnH.U_MUXCY ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [0]), .LO(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/CI [1]) ); XORCY \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/G[0].U_XORCY ( .CI(N1), .LI(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/S [0]), .O(\U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.I_RDADDR/U_HC/D [0]) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [24]), .PRE(CONTROL[23]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [25]), .PRE(CONTROL[23]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [26]), .PRE(CONTROL[23]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [27]), .PRE(CONTROL[23]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_OREG.U_OREG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), .S(\U0/I_NO_D.U_ILA/iRESET [0]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/DOUT_tmp ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(N1), .A1(N1), .A2(N1), .A3(N1), .CE(CONTROL[23]), .CLK(CONTROL[0]), .D(CONTROL[1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<4> ), .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), .CE(CONTROL[23]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<3> ), .Q15 (\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.I_YES_MUXH.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<4> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TWMOD8_NE0.I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<3> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [0]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [1]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [2]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [3]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[4].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [4]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[5].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [5]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[6].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [6]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[7].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [7]), .PRE(CONTROL[20]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_OREG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), .S(\U0/I_NO_D.U_ILA/iRESET [0]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/DOUT_tmp ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ), .CE(CONTROL[20]), .CLK(CONTROL[0]), .D(CONTROL[1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), .CE(CONTROL[20]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), .Q15 (\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) ); XORCY \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_XORH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ), .LI(N0), .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [8]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [9]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [10]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [11]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[4].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [12]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[5].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [13]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[6].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [14]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[7].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [15]), .PRE(CONTROL[21]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_OREG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), .S(\U0/I_NO_D.U_ILA/iRESET [0]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/DOUT_tmp ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ), .CE(CONTROL[21]), .CLK(CONTROL[0]), .D(CONTROL[1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), .CE(CONTROL[21]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), .Q15 (\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) ); XORCY \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_XORH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ), .LI(N0), .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[0].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [16]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[1].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [17]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[2].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [18]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[3].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [19]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[4].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [20]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[5].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [21]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[6].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [22]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_YES_IREG.F_TW[7].U_IREG ( .C(CLK), .CE(N1), .D(\U0/iTRIG_IN [23]), .PRE(CONTROL[22]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_OREG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ), .S(\U0/I_NO_D.U_ILA/iRESET [0]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/DOUT_tmp ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLH ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<4> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<5> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<6> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<7> ), .CE(CONTROL[22]), .CLK(CONTROL[0]), .D(CONTROL[1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<0> ), .A1(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<1> ), .A2(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<2> ), .A3(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/din_dly1<3> ), .CE(CONTROL[22]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCfgData ), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), .Q15 (\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_SRLT_EQ_2.U_SRLL_Q15_UNCONNECTED ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<1> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ) ); MUXCY_L \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.U_MUXL ( .CI(N1), .DI(N0), .S(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/sel<0> ), .LO(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<0> ) ); XORCY \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/I_TW_GTE8.F_TW[0].I_YES_RPM.I_OREG.U_XORH ( .CI(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<1> ), .LI(N0), .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_MUT_GAND.U_match/I_SRL16.U_GAND_SRL16/tmpCompData<2> ) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[0].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [0]), .Q(\U0/I_NO_D.U_ILA/iDATA [0]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[1].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [1]), .Q(\U0/I_NO_D.U_ILA/iDATA [1]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[2].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [2]), .Q(\U0/I_NO_D.U_ILA/iDATA [2]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[3].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [3]), .Q(\U0/I_NO_D.U_ILA/iDATA [3]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[4].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [4]), .Q(\U0/I_NO_D.U_ILA/iDATA [4]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[5].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [5]), .Q(\U0/I_NO_D.U_ILA/iDATA [5]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[6].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [6]), .Q(\U0/I_NO_D.U_ILA/iDATA [6]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[7].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [7]), .Q(\U0/I_NO_D.U_ILA/iDATA [7]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[8].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [8]), .Q(\U0/I_NO_D.U_ILA/iDATA [8]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[9].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [9]), .Q(\U0/I_NO_D.U_ILA/iDATA [9]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[10].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [10]), .Q(\U0/I_NO_D.U_ILA/iDATA [10]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[11].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [11]), .Q(\U0/I_NO_D.U_ILA/iDATA [11]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[12].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [12]), .Q(\U0/I_NO_D.U_ILA/iDATA [12]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[13].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [13]), .Q(\U0/I_NO_D.U_ILA/iDATA [13]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[14].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [14]), .Q(\U0/I_NO_D.U_ILA/iDATA [14]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[15].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [15]), .Q(\U0/I_NO_D.U_ILA/iDATA [15]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[16].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [16]), .Q(\U0/I_NO_D.U_ILA/iDATA [16]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[17].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [17]), .Q(\U0/I_NO_D.U_ILA/iDATA [17]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[18].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [18]), .Q(\U0/I_NO_D.U_ILA/iDATA [18]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[19].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [19]), .Q(\U0/I_NO_D.U_ILA/iDATA [19]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[20].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [20]), .Q(\U0/I_NO_D.U_ILA/iDATA [20]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[21].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [21]), .Q(\U0/I_NO_D.U_ILA/iDATA [21]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[22].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [22]), .Q(\U0/I_NO_D.U_ILA/iDATA [22]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[23].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [23]), .Q(\U0/I_NO_D.U_ILA/iDATA [23]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[24].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [24]), .Q(\U0/I_NO_D.U_ILA/iDATA [24]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[25].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [25]), .Q(\U0/I_NO_D.U_ILA/iDATA [25]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[26].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [26]), .Q(\U0/I_NO_D.U_ILA/iDATA [26]) ); FD #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[27].I_SRLT_NE_0.FF ( .C(CLK), .D(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [27]), .Q(\U0/I_NO_D.U_ILA/iDATA [27]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[0].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [0]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [0]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[1].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [1]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [1]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[2].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [2]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [2]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[3].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [3]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [3]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[4].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [4]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [4]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[5].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [5]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [5]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[6].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [6]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [6]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[7].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [7]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [7]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[8].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [8]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [8]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[9].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [9]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [9]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[10].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [10]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [10]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[11].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [11]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [11]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[12].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [12]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [12]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[13].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [13]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [13]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[14].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [14]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [14]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[15].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [15]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [15]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[16].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [16]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [16]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[17].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [17]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [17]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[18].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [18]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [18]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[19].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [19]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [19]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[20].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [20]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [20]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[21].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [21]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [21]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[22].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [22]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [22]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[23].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [23]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [23]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[24].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [24]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [24]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[25].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [25]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [25]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[26].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [26]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [26]) ); SRL16 #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/I_DQ.U_DQQ/DLY_9.DLY_9_GEN[27].I_SRLT_NE_0.DLY9 ( .A0(N1), .A1(N1), .A2(N1), .A3(N0), .CLK(CLK), .D(\U0/iTRIG_IN [27]), .Q(\U0/I_NO_D.U_ILA/I_DQ.U_DQQ/temp [27]) ); LUT3 #( .INIT ( 8'hCA )) \U0/I_NO_D.U_ILA/U_DOUT ( .I0(\U0/I_NO_D.U_ILA/iSTAT_DOUT ), .I1(\U0/I_NO_D.U_ILA/iDATA_DOUT ), .I2(CONTROL[6]), .O(CONTROL[3]) ); LUT1 #( .INIT ( 2'h1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_B ( .I0(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ), .O(\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_B_O_UNCONNECTED ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [0]), .A1(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [1]), .A2(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [2]), .A3(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [3]), .CE(CONTROL[8]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), .Q15 (\NLW_U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E_Q15_UNCONNECTED ) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCFG_DATA [1]), .I1(CONTROL[8]), .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ) ); SRLC16E #( .INIT ( 16'h0000 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_SRLC16E ( .A0(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [0]), .A1(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [1]), .A2(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [2]), .A3(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [3]), .CE(CONTROL[8]), .CLK(CONTROL[0]), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), .Q15(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCFG_DATA [1]) ); LUT2 #( .INIT ( 4'h8 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/I_NOLUT6.I_SRL_T2.U_LUT ( .I0(CONTROL[1]), .I1(CONTROL[8]), .O(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_NMU_EQ4.U_iDOUT/iCFG_DIN ) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/U_MU/DOUT_tmp ), .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/dout_tmp ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/I_MC_NO.U_NO_MC_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[2].U_M/dout_tmp ), .S(\U0/I_NO_D.U_ILA/iRESET [2]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [2]) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/U_MU/DOUT_tmp ), .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/dout_tmp ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/I_MC_NO.U_NO_MC_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[1].U_M/dout_tmp ), .S(\U0/I_NO_D.U_ILA/iRESET [2]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [1]) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/U_MU/DOUT_tmp ), .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/dout_tmp ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/I_MC_NO.U_NO_MC_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[0].U_M/dout_tmp ), .S(\U0/I_NO_D.U_ILA/iRESET [2]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [0]) ); FDPE #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/I_OREG.I_YES_OREG.U_OREG ( .C(CLK), .CE(N1), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/U_MU/DOUT_tmp ), .PRE(\U0/I_NO_D.U_ILA/iRESET [1]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/dout_tmp ) ); FDS #( .INIT ( 1'b1 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/I_MC_NO.U_NO_MC_REG ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TM/G_NMU[3].U_M/dout_tmp ), .S(\U0/I_NO_D.U_ILA/iRESET [2]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondIn [3]) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_CAP_DLY ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ), .R(\U0/I_NO_D.U_ILA/iRESET [3]), .Q(\U0/I_NO_D.U_ILA/iCAPTURE ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_OUTREG.U_DOUT ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), .R(\U0/I_NO_D.U_ILA/iRESET [3]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/iTRIGGER ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/I_SRLT_NE_1.I_NMU_1_TO_4.U_TRIGQ ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_STORAGE_QUAL.U_STORAGE_QUAL/iTRIGGER ), .R(\U0/I_NO_D.U_ILA/iRESET [4]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/iCAPTURE ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/I_OUTREG.U_DOUT ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TCL/iDOUT ), .R(\U0/I_NO_D.U_ILA/iRESET [3]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/iTRIGGER ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/I_SRLT_NE_1.I_NMU_1_TO_4.U_TRIGQ ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/U_TC/I_TSEQ_NEQ2.U_TC_EQUATION/iTRIGGER ), .R(\U0/I_NO_D.U_ILA/iRESET [4]), .Q(\U0/I_NO_D.U_ILA/U_TRIG/trigCondOut ) ); FDR #( .INIT ( 1'b0 )) \U0/I_NO_D.U_ILA/U_TRIG/F_NO_TCMC.U_FDR ( .C(CLK), .D(\U0/I_NO_D.U_ILA/U_TRIG/trigCondOut ), .R(\U0/I_NO_D.U_ILA/iRESET [5]), .Q(\U0/I_NO_D.U_ILA/iTRIGGER ) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ3.G_TW[3].U_TQ ( .C(CLK), .D(TRIG3[3]), .PRE(N0), .Q(\U0/iTRIG_IN [27]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ3.G_TW[2].U_TQ ( .C(CLK), .D(TRIG3[2]), .PRE(N0), .Q(\U0/iTRIG_IN [26]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ3.G_TW[1].U_TQ ( .C(CLK), .D(TRIG3[1]), .PRE(N0), .Q(\U0/iTRIG_IN [25]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ3.G_TW[0].U_TQ ( .C(CLK), .D(TRIG3[0]), .PRE(N0), .Q(\U0/iTRIG_IN [24]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[7].U_TQ ( .C(CLK), .D(TRIG2[7]), .PRE(N0), .Q(\U0/iTRIG_IN [23]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[6].U_TQ ( .C(CLK), .D(TRIG2[6]), .PRE(N0), .Q(\U0/iTRIG_IN [22]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[5].U_TQ ( .C(CLK), .D(TRIG2[5]), .PRE(N0), .Q(\U0/iTRIG_IN [21]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[4].U_TQ ( .C(CLK), .D(TRIG2[4]), .PRE(N0), .Q(\U0/iTRIG_IN [20]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[3].U_TQ ( .C(CLK), .D(TRIG2[3]), .PRE(N0), .Q(\U0/iTRIG_IN [19]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[2].U_TQ ( .C(CLK), .D(TRIG2[2]), .PRE(N0), .Q(\U0/iTRIG_IN [18]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[1].U_TQ ( .C(CLK), .D(TRIG2[1]), .PRE(N0), .Q(\U0/iTRIG_IN [17]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ2.G_TW[0].U_TQ ( .C(CLK), .D(TRIG2[0]), .PRE(N0), .Q(\U0/iTRIG_IN [16]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[7].U_TQ ( .C(CLK), .D(TRIG1[7]), .PRE(N0), .Q(\U0/iTRIG_IN [15]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[6].U_TQ ( .C(CLK), .D(TRIG1[6]), .PRE(N0), .Q(\U0/iTRIG_IN [14]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[5].U_TQ ( .C(CLK), .D(TRIG1[5]), .PRE(N0), .Q(\U0/iTRIG_IN [13]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[4].U_TQ ( .C(CLK), .D(TRIG1[4]), .PRE(N0), .Q(\U0/iTRIG_IN [12]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[3].U_TQ ( .C(CLK), .D(TRIG1[3]), .PRE(N0), .Q(\U0/iTRIG_IN [11]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[2].U_TQ ( .C(CLK), .D(TRIG1[2]), .PRE(N0), .Q(\U0/iTRIG_IN [10]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[1].U_TQ ( .C(CLK), .D(TRIG1[1]), .PRE(N0), .Q(\U0/iTRIG_IN [9]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ1.G_TW[0].U_TQ ( .C(CLK), .D(TRIG1[0]), .PRE(N0), .Q(\U0/iTRIG_IN [8]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[7].U_TQ ( .C(CLK), .D(TRIG0[7]), .PRE(N0), .Q(\U0/iTRIG_IN [7]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[6].U_TQ ( .C(CLK), .D(TRIG0[6]), .PRE(N0), .Q(\U0/iTRIG_IN [6]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[5].U_TQ ( .C(CLK), .D(TRIG0[5]), .PRE(N0), .Q(\U0/iTRIG_IN [5]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[4].U_TQ ( .C(CLK), .D(TRIG0[4]), .PRE(N0), .Q(\U0/iTRIG_IN [4]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[3].U_TQ ( .C(CLK), .D(TRIG0[3]), .PRE(N0), .Q(\U0/iTRIG_IN [3]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[2].U_TQ ( .C(CLK), .D(TRIG0[2]), .PRE(N0), .Q(\U0/iTRIG_IN [2]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[1].U_TQ ( .C(CLK), .D(TRIG0[1]), .PRE(N0), .Q(\U0/iTRIG_IN [1]) ); FDP #( .INIT ( 1'b1 )) \U0/I_TQ0.G_TW[0].U_TQ ( .C(CLK), .D(TRIG0[0]), .PRE(N0), .Q(\U0/iTRIG_IN [0]) ); LUT2 #( .INIT ( 4'h8 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<0> ( .I0(CONTROL[10]), .I1(CONTROL[11]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [0]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<0> ( .CI(N1), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [0]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [0]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<1> ( .I0(CONTROL[12]), .I1(CONTROL[13]), .I2(CONTROL[9]), .I3(CONTROL[14]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [1]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<1> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [0]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [1]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [1]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<2> ( .I0(CONTROL[15]), .I1(CONTROL[16]), .I2(CONTROL[8]), .I3(CONTROL[17]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [2]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<2> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [1]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [2]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [2]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<3> ( .I0(CONTROL[18]), .I1(CONTROL[21]), .I2(CONTROL[7]), .I3(CONTROL[19]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [3]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<3> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [2]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [3]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [3]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<4> ( .I0(CONTROL[20]), .I1(CONTROL[22]), .I2(CONTROL[6]), .I3(CONTROL[23]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [4]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<4> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [3]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [4]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [4]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<5> ( .I0(CONTROL[24]), .I1(CONTROL[25]), .I2(CONTROL[5]), .I3(CONTROL[26]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [5]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<5> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [4]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [5]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [5]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<6> ( .I0(CONTROL[27]), .I1(CONTROL[28]), .I2(CONTROL[2]), .I3(CONTROL[29]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [6]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<6> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [5]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [6]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [6]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<7> ( .I0(CONTROL[30]), .I1(CONTROL[31]), .I2(CONTROL[1]), .I3(CONTROL[32]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [7]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<7> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [6]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [7]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [7]) ); LUT4 #( .INIT ( 16'h8000 )) \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut<8> ( .I0(CONTROL[33]), .I1(CONTROL[34]), .I2(CONTROL[4]), .I3(CONTROL[35]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [8]) ); MUXCY \U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy<8> ( .CI(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [7]), .DI(N0), .S(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_lut [8]), .O(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [8]) ); LUT4 #( .INIT ( 16'hFEFF )) \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I3(\U0/I_NO_D.U_ILA/U_STAT/NS_dstat [8]), .O(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<2>1_537 ) ); LUT3 #( .INIT ( 8'hE4 )) \U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat1 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_SEL ), .I1(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D0 ), .I2(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_D1 ), .O(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ) ); LUT2 #( .INIT ( 4'h2 )) \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]), .I1(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [8]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2_464 ) ); LUT4 #( .INIT ( 16'h0001 )) \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15_463 ) ); LUT4 #( .INIT ( 16'hFFFE )) \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [7]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [6]), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [5]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [4]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26_465 ) ); LUT4 #( .INIT ( 16'hF222 )) \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O26_465 ), .I1(\U0/U_XST_CONTROLBUS_WORKAROUND/CONTROL_XST_WORKAROUND_O_cmp_eq0000_wg_cy [8]), .I2(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O15_463 ), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT [16]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36_466 ) ); LUT4 #( .INIT ( 16'hAF8D )) \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O129 ( .I0(CONTROL[4]), .I1(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O2_464 ), .I2(\U0/I_NO_D.U_ILA/U_STAT/TDO_mux_in<0>1 ), .I3(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82_467 ), .O(\U0/I_NO_D.U_ILA/U_STAT/TDO_next ) ); MUXF5 \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91 ( .I0(N38), .I1(N39), .S(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .O(\U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_455 ) ); LUT3 #( .INIT ( 8'h15 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_F ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/DIRTY_dstat ), .O(N38) ); LUT4 #( .INIT ( 16'h0145 )) \U0/I_NO_D.U_ILA/U_STAT/U_DMUX/U_CS_MUX/I3.U_MUX8/Mmux_O_91_G ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [2]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I2(\U0/I_NO_D.U_ILA/U_STAT/EXTCAP_READY_dstat ), .I3(\U0/I_NO_D.U_ILA/U_STAT/ACT_dstat ), .O(N39) ); LUT4_L #( .INIT ( 16'h3F50 )) \U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/ARM_dstat ), .I1(\U0/I_NO_D.U_ILA/U_STAT/TRIGGER_dstat ), .I2(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [1]), .I3(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [0]), .LO(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT<1>1_535 ) ); LUT4_L #( .INIT ( 16'h3120 )) \U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82 ( .I0(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [8]), .I1(\U0/I_NO_D.U_ILA/U_STAT/iSTAT_CNT [9]), .I2(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O36_466 ), .I3(\U0/I_NO_D.U_ILA/U_STAT/U_SMUX/U_CS_MUX/I6.U_MUX64/Mmux_O_8_f7_483 ), .LO(\U0/I_NO_D.U_ILA/U_STAT/U_MUX/U_CS_MUX/I1.U_MUX2/O82_467 ) ); RAMB16_S1_S36 #( .INIT_B ( 36'h000000000 ), .INITP_00 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INITP_01 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INITP_02 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INITP_03 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INITP_04 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INITP_05 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INITP_06 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_00 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_01 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_02 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_03 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_04 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_05 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_06 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_07 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_08 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_09 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_0A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_0B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_0C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_0D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_0E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_0F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_10 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_11 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_12 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_13 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_14 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_15 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_16 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_17 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_18 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_19 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_1A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_1B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_1C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_1D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_1E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_1F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_20 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_21 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_22 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_23 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_24 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_25 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_26 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_27 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_28 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_29 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_2A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_2B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_2C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_2D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_2E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_2F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_30 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_31 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_32 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_33 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_34 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_35 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_36 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_37 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_38 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_39 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_3A ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_3B ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_3C ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_3D ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_3E ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_3F ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .INIT_A ( 1'h0 ), .SIM_COLLISION_CHECK ( "ALL" ), .INITP_07 ( 256'h0000000000000000000000000000000000000000000000000000000000000000 ), .SRVAL_A ( 1'h0 ), .WRITE_MODE_A ( "WRITE_FIRST" ), .WRITE_MODE_B ( "WRITE_FIRST" ), .SRVAL_B ( 36'h000000000 )) \U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i ( .CLKA(CONTROL[0]), .CLKB(CLK), .ENA(CONTROL[6]), .ENB(N1), .WEB(\U0/I_NO_D.U_ILA/iCAP_WR_EN ), .SSRA(N0), .SSRB(N0), .WEA(N0), .DIPB({N0, N0, N0, N0}), .ADDRA({\U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [13], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [12], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [11], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [10], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [9], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [8], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [7], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [6], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [5], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [4], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [3], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [2], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [1], \U0/I_NO_D.U_ILA/U_CAPSTOR/RD_ADDR [0]}), .ADDRB({\U0/I_NO_D.U_ILA/iCAP_WR_ADDR [8], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [7], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [6], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [5] , \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [4], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [3], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [2], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [1], \U0/I_NO_D.U_ILA/iCAP_WR_ADDR [0]}), .DIB({N0, N0, N0, \U0/I_NO_D.U_ILA/iDATA [27], \U0/I_NO_D.U_ILA/iDATA [26], \U0/I_NO_D.U_ILA/iDATA [25], \U0/I_NO_D.U_ILA/iDATA [24], \U0/I_NO_D.U_ILA/iDATA [23], \U0/I_NO_D.U_ILA/iDATA [22], \U0/I_NO_D.U_ILA/iDATA [21], \U0/I_NO_D.U_ILA/iDATA [20], \U0/I_NO_D.U_ILA/iDATA [19], \U0/I_NO_D.U_ILA/iDATA [18], \U0/I_NO_D.U_ILA/iDATA [17], \U0/I_NO_D.U_ILA/iDATA [16], \U0/I_NO_D.U_ILA/iDATA [15], \U0/I_NO_D.U_ILA/iDATA [14], \U0/I_NO_D.U_ILA/iDATA [13], \U0/I_NO_D.U_ILA/iDATA [12], \U0/I_NO_D.U_ILA/iDATA [11], \U0/I_NO_D.U_ILA/iDATA [10], \U0/I_NO_D.U_ILA/iDATA [9], \U0/I_NO_D.U_ILA/iDATA [8], \U0/I_NO_D.U_ILA/iDATA [7], \U0/I_NO_D.U_ILA/iDATA [6], \U0/I_NO_D.U_ILA/iDATA [5], \U0/I_NO_D.U_ILA/iDATA [4], \U0/I_NO_D.U_ILA/iDATA [3], \U0/I_NO_D.U_ILA/iDATA [2], \U0/I_NO_D.U_ILA/iDATA [1], \U0/I_NO_D.U_ILA/iDATA [0], \U0/I_NO_D.U_ILA/iCAP_TRIGGER_OUT }), .DOA({\U0/I_NO_D.U_ILA/iDATA_DOUT }), .DIA({N0}), .DOB({\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<31>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<30>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<29>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<28>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<27>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<26>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<25>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<24>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<23>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<22>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<21>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<20>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<19>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<18>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<17>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<16>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<15>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<14>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<13>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<12>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<11>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<10>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<9>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<8>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<7>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<6>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<5>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<4>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<3>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<2>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<1>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOB<0>_UNCONNECTED }), .DOPB({\NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<3>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<2>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<1>_UNCONNECTED , \NLW_U0/I_NO_D.U_ILA/U_CAPSTOR/I_CASE1.I_NO_TB.I_RT1.U_RAM/G_BRAM[0].U_BRAM/ram_rt1_s1_s32_if.ram_rt1_s1_s32_i_DOPB<0>_UNCONNECTED }) ); // synthesis translate_on endmodule // synthesis translate_off `ifndef GLBL `define GLBL `timescale 1 ps / 1 ps module glbl (); parameter ROC_WIDTH = 100000; parameter TOC_WIDTH = 0; wire GSR; wire GTS; wire GWE; wire PRLD; tri1 p_up_tmp; tri (weak1, strong0) PLL_LOCKG = p_up_tmp; reg GSR_int; reg GTS_int; reg PRLD_int; //-------- JTAG Globals -------------- wire JTAG_TDO_GLBL; wire JTAG_TCK_GLBL; wire JTAG_TDI_GLBL; wire JTAG_TMS_GLBL; wire JTAG_TRST_GLBL; reg JTAG_CAPTURE_GLBL; reg JTAG_RESET_GLBL; reg JTAG_SHIFT_GLBL; reg JTAG_UPDATE_GLBL; reg JTAG_RUNTEST_GLBL; reg JTAG_SEL1_GLBL = 0; reg JTAG_SEL2_GLBL = 0 ; reg JTAG_SEL3_GLBL = 0; reg JTAG_SEL4_GLBL = 0; reg JTAG_USER_TDO1_GLBL = 1'bz; reg JTAG_USER_TDO2_GLBL = 1'bz; reg JTAG_USER_TDO3_GLBL = 1'bz; reg JTAG_USER_TDO4_GLBL = 1'bz; assign (weak1, weak0) GSR = GSR_int; assign (weak1, weak0) GTS = GTS_int; assign (weak1, weak0) PRLD = PRLD_int; initial begin GSR_int = 1'b1; PRLD_int = 1'b1; #(ROC_WIDTH) GSR_int = 1'b0; PRLD_int = 1'b0; end initial begin GTS_int = 1'b1; #(TOC_WIDTH) GTS_int = 1'b0; end endmodule `endif // synthesis translate_on uhd-3.5.5/fpga/usrp2/extramfifo/ila.xco000066400000000000000000000072201224274632000177230ustar00rootroot00000000000000############################################################## # # Xilinx Core Generator version 12.1 # Date: Wed Jul 21 18:51:14 2010 # ############################################################## # # This file contains the customisation parameters for a # Xilinx CORE Generator IP GUI. It is strongly recommended # that you do not manually alter this file as it may cause # unexpected and unsupported behavior. # ############################################################## # # BEGIN Project Options SET addpads = false SET asysymbol = true SET busformat = BusFormatAngleBracketNotRipped SET createndf = false SET designentry = Verilog SET device = xc3s2000 SET devicefamily = spartan3 SET flowvendor = Other SET formalverification = false SET foundationsym = false SET implementationfiletype = Ngc SET package = fg456 SET removerpms = false SET simulationfiles = Structural SET speedgrade = -5 SET verilogsim = true SET vhdlsim = false # END Project Options # BEGIN Select SELECT ILA_(ChipScope_Pro_-_Integrated_Logic_Analyzer) family Xilinx,_Inc. 1.03.a # END Select # BEGIN Parameters CSET component_name=ila CSET counter_width_1=Disabled CSET counter_width_10=Disabled CSET counter_width_11=Disabled CSET counter_width_12=Disabled CSET counter_width_13=Disabled CSET counter_width_14=Disabled CSET counter_width_15=Disabled CSET counter_width_16=Disabled CSET counter_width_2=Disabled CSET counter_width_3=Disabled CSET counter_width_4=Disabled CSET counter_width_5=Disabled CSET counter_width_6=Disabled CSET counter_width_7=Disabled CSET counter_width_8=Disabled CSET counter_width_9=Disabled CSET data_port_width=0 CSET data_same_as_trigger=true CSET enable_storage_qualification=true CSET enable_trigger_output_port=false CSET exclude_from_data_storage_1=false CSET exclude_from_data_storage_10=false CSET exclude_from_data_storage_11=false CSET exclude_from_data_storage_12=false CSET exclude_from_data_storage_13=false CSET exclude_from_data_storage_14=false CSET exclude_from_data_storage_15=false CSET exclude_from_data_storage_16=false CSET exclude_from_data_storage_2=false CSET exclude_from_data_storage_3=false CSET exclude_from_data_storage_4=false CSET exclude_from_data_storage_5=false CSET exclude_from_data_storage_6=false CSET exclude_from_data_storage_7=false CSET exclude_from_data_storage_8=false CSET exclude_from_data_storage_9=false CSET match_type_1=basic CSET match_type_10=basic CSET match_type_11=basic CSET match_type_12=basic CSET match_type_13=basic CSET match_type_14=basic CSET match_type_15=basic CSET match_type_16=basic CSET match_type_2=basic CSET match_type_3=basic CSET match_type_4=basic CSET match_type_5=basic CSET match_type_6=basic CSET match_type_7=basic CSET match_type_8=basic CSET match_type_9=basic CSET match_units_1=1 CSET match_units_10=1 CSET match_units_11=1 CSET match_units_12=1 CSET match_units_13=1 CSET match_units_14=1 CSET match_units_15=1 CSET match_units_16=1 CSET match_units_2=1 CSET match_units_3=1 CSET match_units_4=1 CSET match_units_5=1 CSET match_units_6=1 CSET match_units_7=1 CSET match_units_8=1 CSET match_units_9=1 CSET max_sequence_levels=1 CSET number_of_trigger_ports=4 CSET sample_data_depth=512 CSET sample_on=Rising CSET trigger_port_width_1=8 CSET trigger_port_width_10=8 CSET trigger_port_width_11=8 CSET trigger_port_width_12=8 CSET trigger_port_width_13=8 CSET trigger_port_width_14=8 CSET trigger_port_width_15=8 CSET trigger_port_width_16=8 CSET trigger_port_width_2=8 CSET trigger_port_width_3=8 CSET trigger_port_width_4=4 CSET trigger_port_width_5=8 CSET trigger_port_width_6=8 CSET trigger_port_width_7=8 CSET trigger_port_width_8=8 CSET trigger_port_width_9=8 CSET use_rpms=true # END Parameters GENERATE # CRC: 66151c7c uhd-3.5.5/fpga/usrp2/extramfifo/nobl_fifo.v000066400000000000000000000074121224274632000205720ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Since this FIFO uses a ZBT/NoBL SRAM for its storage which is a since port // device it can only sustain data throughput at half the RAM clock rate. // Fair arbitration to ensure this occurs is included in this logic and // requests for transactions that can not be completed are held off. // This FIFO requires a an external signal driving read_strobe that assures space for at least 6 // reads since this the theopretical maximum number in flight due to pipeling. module nobl_fifo #(parameter WIDTH=18,RAM_DEPTH=19,FIFO_DEPTH=19) ( input clk, input rst, input [WIDTH-1:0] RAM_D_pi, output [WIDTH-1:0] RAM_D_po, output RAM_D_poe, output [RAM_DEPTH-1:0] RAM_A, output RAM_WEn, output RAM_CENn, output RAM_LDn, output RAM_OEn, output RAM_CE1n, input [WIDTH-1:0] write_data, input write_strobe, output reg space_avail, output [WIDTH-1:0] read_data, input read_strobe, // Triggers a read, result in approximately 6 cycles. output data_avail, // Qulaifys read data available this cycle on read_data. output reg [FIFO_DEPTH-1:0] capacity ); //reg [FIFO_DEPTH-1:0] capacity; reg [FIFO_DEPTH-1:0] wr_pointer; reg [FIFO_DEPTH-1:0] rd_pointer; wire [RAM_DEPTH-1:0] address; reg data_avail_int; // Internal not empty flag. assign read = read_strobe && data_avail_int; assign write = write_strobe && space_avail; // When a read and write collision occur, supress the space_avail flag next cycle // and complete write followed by read over 2 cycles. This forces balanced arbitration // and makes for a simple logic design. always @(posedge clk) if (rst) begin capacity <= (1 << FIFO_DEPTH) - 1; wr_pointer <= 0; rd_pointer <= 0; space_avail <= 1; data_avail_int <= 0; end else begin // No space available if: // Capacity is already zero; Capacity is 1 and write is asserted (lookahead); both read and write are asserted (collision) space_avail <= ~((capacity == 0) || (read&&write) || ((capacity == 1) && write) ); // Capacity has 1 cycle delay so look ahead here for corner case of read of last item in FIFO. data_avail_int <= ~((capacity == ((1 << FIFO_DEPTH)-1)) || ((capacity == ((1 << FIFO_DEPTH)-2)) && (~write && read)) ); wr_pointer <= wr_pointer + write; rd_pointer <= rd_pointer + (~write && read); capacity <= capacity - write + (~write && read) ; end // else: !if(rst) assign address = write ? wr_pointer : rd_pointer; assign enable = write || read; // // Simple NoBL SRAM interface, 4 cycle read latency. // Read/Write arbitration via temprary application of empty/full flags. // nobl_if #(.WIDTH(WIDTH),.DEPTH(RAM_DEPTH)) nobl_if_i1 ( .clk(clk), .rst(rst), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), .RAM_A(RAM_A), .RAM_WEn(RAM_WEn), .RAM_CENn(RAM_CENn), .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .address(address), .data_out(write_data), .data_in(read_data), .data_in_valid(data_avail), .write(write), .enable(enable) ); endmodule // nobl_fifo uhd-3.5.5/fpga/usrp2/extramfifo/nobl_if.v000066400000000000000000000075571224274632000202570ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Tested against an IDT 71v65603s150 in simulation and a Cypress 7C1356C in the real world. module nobl_if #(parameter WIDTH=18,DEPTH=19) ( input clk, input rst, input [WIDTH-1:0] RAM_D_pi, output [WIDTH-1:0] RAM_D_po, output reg RAM_D_poe, output [DEPTH-1:0] RAM_A, output reg RAM_WEn, output RAM_CENn, output RAM_LDn, output RAM_OEn, output reg RAM_CE1n, input [DEPTH-1:0] address, input [WIDTH-1:0] data_out, output reg [WIDTH-1:0] data_in, output reg data_in_valid, input write, input enable ); reg enable_pipe1; reg [DEPTH-1:0] address_pipe1; reg write_pipe1; reg [WIDTH-1:0] data_out_pipe1; reg enable_pipe2; reg write_pipe2; reg [WIDTH-1:0] data_out_pipe2; reg enable_pipe3; reg write_pipe3; reg [WIDTH-1:0] data_out_pipe3; assign RAM_LDn = 0; // ZBT/NoBL RAM actually manages its own output enables very well. assign RAM_OEn = 0; // gray code the address to reduce EMI wire [DEPTH-1:0] address_gray; bin2gray #(.WIDTH(DEPTH)) bin2gray (.bin(address),.gray(address_gray)); // // Pipeline stage 1 // always @(posedge clk) if (rst) begin enable_pipe1 <= 0; address_pipe1 <= 0; write_pipe1 <= 0; data_out_pipe1 <= 0; RAM_WEn <= 1; RAM_CE1n <= 1; end else begin enable_pipe1 <= enable; RAM_CE1n <= ~enable; // Creates IOB flop RAM_WEn <= ~write; // Creates IOB flop if (enable) begin address_pipe1 <= address_gray; write_pipe1 <= write; // RAM_WEn <= ~write; // Creates IOB flop if (write) data_out_pipe1 <= data_out; end end // always @ (posedge clk) // Pipeline 1 drives address, write_enable, chip_select on NoBL SRAM assign RAM_A = address_pipe1; assign RAM_CENn = 1'b0; // assign RAM_WEn = ~write_pipe1; // assign RAM_CE1n = ~enable_pipe1; // // Pipeline stage2 // always @(posedge clk) if (rst) begin enable_pipe2 <= 0; data_out_pipe2 <= 0; write_pipe2 <= 0; end else begin data_out_pipe2 <= data_out_pipe1; write_pipe2 <= write_pipe1; enable_pipe2 <= enable_pipe1; end // // Pipeline stage3 // always @(posedge clk) if (rst) begin enable_pipe3 <= 0; data_out_pipe3 <= 0; write_pipe3 <= 0; RAM_D_poe <= 0; end else begin data_out_pipe3 <= data_out_pipe2; write_pipe3 <= write_pipe2; enable_pipe3 <= enable_pipe2; RAM_D_poe <= ~(write_pipe2 & enable_pipe2); // Active low driver enable in Xilinx. end // Pipeline 3 drives write data on NoBL SRAM assign RAM_D_po = data_out_pipe3; // // Pipeline stage4 // always @(posedge clk) if (rst) begin data_in_valid <= 0; data_in <= 0; end else begin data_in <= RAM_D_pi; if (enable_pipe3 & ~write_pipe3) begin // Read data now available to be registered. data_in_valid <= 1'b1; end else data_in_valid <= 1'b0; end // always @ (posedge clk) endmodule // nobl_if uhd-3.5.5/fpga/usrp2/extramfifo/refill_randomizer.v000066400000000000000000000037451224274632000223510ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // // EMI mitigation. // Process FULL flag from FIFO so that de-assertion // (FIFO now not FULL) is delayed by a pseudo random // value, but assertion is passed straight through. // module refill_randomizer #(parameter BITS=7) ( input clk, input rst, input full_in, output full_out ); wire feedback; reg full_last; wire full_deasserts; reg [6:0] shift_reg; reg [6:0] count; reg delayed_fall; always @(posedge clk) full_last <= full_in; assign full_deasserts = full_last & ~full_in; // 7 bit LFSR always @(posedge clk) if (rst) shift_reg <= 7'b1; else if (full_deasserts) shift_reg <= {shift_reg[5:0],feedback}; assign feedback = ^(shift_reg & 7'h41); always @(posedge clk) if (rst) begin count <= 1; delayed_fall <= 1; end else if (full_deasserts) begin count <= shift_reg; delayed_fall <= 1; end else if (count == 1) begin count <= 1; delayed_fall <= 0; end else begin count <= count - 1; delayed_fall <= 1; end // Full_out goes instantly high if full_in does. However its fall is delayed. assign full_out = (full_in == 1) || (full_last == 1) || delayed_fall; endmoduleuhd-3.5.5/fpga/usrp2/extramfifo/test_sram_if.v000066400000000000000000000103601224274632000213100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Instantiate this block at the core level to conduct closed // loop testing of the AC performance of the USRP2 SRAM interface `define WIDTH 18 `define DEPTH 19 module test_sram_if ( input clk, input rst, input [`WIDTH-1:0] RAM_D_pi, output [`WIDTH-1:0] RAM_D_po, output RAM_D_poe, output [`DEPTH-1:0] RAM_A, output RAM_WEn, output RAM_CENn, output RAM_LDn, output RAM_OEn, output RAM_CE1n, output reg correct ); reg [`DEPTH-1:0] write_count; reg [`DEPTH-1:0] read_count; reg enable; reg write; reg write_cycle; reg read_cycle; reg enable_reads; reg [18:0] address; reg [17:0] data_out; wire [17:0] data_in; wire data_in_valid; reg [17:0] check_data; reg [17:0] check_data_old; reg [17:0] check_data_old2; // // Create counter that generates both external modulo 2^19 address and modulo 2^18 data to test RAM. // always @(posedge clk) if (rst) begin write_count <= 19'h0; read_count <= 19'h0; end else if (write_cycle) // Write cycle if (write_count == 19'h7FFFF) begin write_count <= 19'h0; end else begin write_count <= write_count + 1'b1; end else if (read_cycle) // Read cycle if (read_count == 19'h7FFFF) begin read_count <= 19'h0; end else begin read_count <= read_count + 1'b1; end always @(posedge clk) if (rst) begin enable_reads <= 0; read_cycle <= 0; write_cycle <= 0; end else begin write_cycle <= ~write_cycle; if (enable_reads) read_cycle <= write_cycle; if (write_count == 15) // Enable reads 15 writes after reset terminates. enable_reads <= 1; end // else: !if(rst) always @(posedge clk) if (rst) begin enable <= 0; end else if (write_cycle) begin address <= write_count; data_out <= write_count[17:0]; enable <= 1; write <= 1; end else if (read_cycle) begin address <= read_count; check_data <= read_count[17:0]; check_data_old <= check_data; check_data_old2 <= check_data_old; enable <= 1; write <= 0; end else enable <= 0; always @(posedge clk) if (data_in_valid) begin correct <= (data_in == check_data_old2); end nobl_if nobl_if_i1 ( .clk(clk), .rst(rst), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), .RAM_A(RAM_A), .RAM_WEn(RAM_WEn), .RAM_CENn(RAM_CENn), .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .address(address), .data_out(data_out), .data_in(data_in), .data_in_valid(data_in_valid), .write(write), .enable(enable) ); wire [35:0] CONTROL0; reg [7:0] data_in_reg, data_out_reg, address_reg; reg data_in_valid_reg,write_reg,enable_reg,correct_reg; always @(posedge clk) begin data_in_reg <= data_in[7:0]; data_out_reg <= data_out[7:0]; data_in_valid_reg <= data_in_valid; write_reg <= write; enable_reg <= enable; correct_reg <= correct; address_reg <= address; end icon icon_i1 ( .CONTROL0(CONTROL0) ); ila ila_i1 ( .CLK(clk), .CONTROL(CONTROL0), // .TRIG0(address_reg), .TRIG0(data_in_reg[7:0]), .TRIG1(data_out_reg[7:0]), .TRIG2(address_reg[7:0]), .TRIG3({data_in_valid_reg,write_reg,enable_reg,correct_reg}) ); endmodule // test_sram_if uhd-3.5.5/fpga/usrp2/fifo/000077500000000000000000000000001224274632000152215ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/fifo/.gitignore000066400000000000000000000000221224274632000172030ustar00rootroot00000000000000*.vcd *.lxt a.out uhd-3.5.5/fpga/usrp2/fifo/Makefile.srcs000066400000000000000000000014721224274632000176360ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # ################################################## # FIFO Sources ################################################## FIFO_SRCS = $(abspath $(addprefix $(BASE_DIR)/../fifo/, \ add_routing_header.v \ buffer_int.v \ buffer_int2.v \ buffer_pool.v \ crossbar36.v \ dsp_framer36.v \ fifo_2clock.v \ fifo_2clock_cascade.v \ ll8_shortfifo.v \ fifo_short.v \ fifo_long.v \ fifo_cascade.v \ fifo36_to_ll8.v \ ll8_to_fifo36.v \ fifo19_to_ll8.v \ ll8_to_fifo19.v \ fifo36_to_fifo19.v \ fifo19_to_fifo36.v \ fifo19_mux.v \ fifo36_mux.v \ fifo36_demux.v \ packet_router.v \ splitter36.v \ valve36.v \ fifo_pacer.v \ packet_dispatcher36_x3.v \ packet_dispatcher36_x4.v \ packet_generator32.v \ packet_generator.v \ packet_verifier32.v \ packet_verifier.v \ fifo19_pad.v \ packet_padder36.v \ )) uhd-3.5.5/fpga/usrp2/fifo/add_routing_header.v000066400000000000000000000030531224274632000212200ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module add_routing_header #(parameter PORT_SEL = 0, parameter PROT_ENG_FLAGS = 1) (input clk, input reset, input clear, input [35:0] data_i, input src_rdy_i, output dst_rdy_o, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); reg [1:0] line; wire [1:0] port_sel_bits = PORT_SEL; wire [15:0] len = data_i[15:0]; always @(posedge clk) if(reset) line <= PROT_ENG_FLAGS ? 0 : 1; else if(src_rdy_o & dst_rdy_i) if(data_o[33]) line <= PROT_ENG_FLAGS ? 0 : 1; else if(line != 3) line <= line + 1; assign data_o = (line == 0) ? {4'b0001, 13'b0, port_sel_bits, 1'b1, len[13:0],2'b00} : (line == 1) ? {3'b000, (PROT_ENG_FLAGS ? 1'b0: 1'b1), data_i[31:0]} : data_i[35:0]; assign dst_rdy_o = dst_rdy_i & (line != 0); assign src_rdy_o = src_rdy_i; endmodule // add_routing_header uhd-3.5.5/fpga/usrp2/fifo/buffer_int.v000066400000000000000000000105731224274632000175410ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // FIFO Interface to the 2K buffer RAMs // Read port is read-acknowledge // FIXME do we want to be able to interleave reads and writes? module buffer_int #(parameter BUF_NUM = 0, parameter BUF_SIZE = 9) (// Control Interface input clk, input rst, input [31:0] ctrl_word, input go, output done, output error, output idle, // Buffer Interface output en_o, output we_o, output reg [BUF_SIZE-1:0] addr_o, output [31:0] dat_to_buf, input [31:0] dat_from_buf, // Write FIFO Interface input [31:0] wr_data_i, input [3:0] wr_flags_i, input wr_ready_i, output wr_ready_o, // Read FIFO Interface output [31:0] rd_data_o, output [3:0] rd_flags_o, output rd_ready_o, input rd_ready_i ); reg [31:0] ctrl_reg; reg go_reg; always @(posedge clk) go_reg <= go; always @(posedge clk) if(rst) ctrl_reg <= 0; else if(go & (ctrl_word[31:28] == BUF_NUM)) ctrl_reg <= ctrl_word; wire [BUF_SIZE-1:0] firstline = ctrl_reg[BUF_SIZE-1:0]; wire [BUF_SIZE-1:0] lastline = ctrl_reg[2*BUF_SIZE-1:BUF_SIZE]; wire read = ctrl_reg[22]; wire write = ctrl_reg[23]; wire clear = ctrl_reg[24]; //wire [2:0] port = ctrl_reg[27:25]; // Ignored in this block //wire [3:0] buff_num = ctrl_reg[31:28]; // Ignored here ? localparam IDLE = 3'd0; localparam PRE_READ = 3'd1; localparam READING = 3'd2; localparam WRITING = 3'd3; localparam ERROR = 3'd4; localparam DONE = 3'd5; reg [2:0] state; reg rd_sop, rd_eop; wire wr_sop, wr_eop, wr_error; reg [1:0] rd_occ; wire [1:0] wr_occ; always @(posedge clk) if(rst) begin state <= IDLE; rd_sop <= 0; rd_eop <= 0; rd_occ <= 0; end else if(clear) begin state <= IDLE; rd_sop <= 0; rd_eop <= 0; rd_occ <= 0; end else case(state) IDLE : if(go_reg & read) begin addr_o <= firstline; state <= PRE_READ; end else if(go_reg & write) begin addr_o <= firstline; state <= WRITING; end PRE_READ : begin state <= READING; addr_o <= addr_o + 1; rd_occ <= 2'b00; rd_sop <= 1; rd_eop <= 0; end READING : if(rd_ready_i) begin rd_sop <= 0; addr_o <= addr_o + 1; if(addr_o == lastline) begin rd_eop <= 1; // FIXME assign occ here rd_occ <= 0; end else rd_eop <= 0; if(rd_eop) state <= DONE; end WRITING : begin if(wr_ready_i) begin addr_o <= addr_o + 1; if(wr_error) begin state <= ERROR; // Save OCC flags here end else if((addr_o == lastline)||wr_eop) state <= DONE; end // if (wr_ready_i) end // case: WRITING endcase // case(state) assign dat_to_buf = wr_data_i; assign rd_data_o = dat_from_buf; assign rd_flags_o = { rd_occ[1:0], rd_eop, rd_sop }; assign rd_ready_o = (state == READING); assign wr_sop = wr_flags_i[0]; assign wr_eop = wr_flags_i[1]; assign wr_occ = wr_flags_i[3:2]; assign wr_error = wr_sop & wr_eop; assign wr_ready_o = (state == WRITING); assign we_o = (state == WRITING); //assign we_o = (state == WRITING) && wr_ready_i; // always write to avoid timing issue assign en_o = ~((state==READING)& ~rd_ready_i); // FIXME potential critical path assign done = (state == DONE); assign error = (state == ERROR); assign idle = (state == IDLE); endmodule // buffer_int uhd-3.5.5/fpga/usrp2/fifo/buffer_int2.v000066400000000000000000000123521224274632000176200ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // FIFO Interface to the 2K buffer RAMs // Read port is read-acknowledge // FIXME do we want to be able to interleave reads and writes? module buffer_int2 #(parameter BASE = 0, parameter BUF_SIZE = 9) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, output [31:0] status, // Wishbone interface to RAM input wb_clk_i, input wb_rst_i, input wb_we_i, input wb_stb_i, input [15:0] wb_adr_i, input [31:0] wb_dat_i, output [31:0] wb_dat_o, output reg wb_ack_o, // Write FIFO Interface input [35:0] wr_data_i, input wr_ready_i, output wr_ready_o, // Read FIFO Interface output [35:0] rd_data_o, output rd_ready_o, input rd_ready_i ); reg [15:0] rd_addr, wr_addr; // Handle pkt bigger than buffer wire [15:0] rd_addr_next = rd_addr + 1; reg [15:0] rd_length; wire [31:0] ctrl; wire wr_done, wr_error, wr_idle; wire rd_done, rd_error, rd_idle; wire we, en, go; wire read = ctrl[3]; wire rd_clear = ctrl[2]; wire write = ctrl[1]; wire wr_clear = ctrl[0]; reg [2:0] rd_state, wr_state; reg rd_sop, rd_eop; wire wr_sop, wr_eop; reg [1:0] rd_occ; wire [1:0] wr_occ; localparam IDLE = 3'd0; localparam PRE_READ = 3'd1; localparam READING = 3'd2; localparam WRITING = 3'd3; localparam ERROR = 3'd4; localparam DONE = 3'd5; // read state machine always @(posedge clk) if(rst | (rd_clear & go)) begin rd_state <= IDLE; rd_sop <= 0; rd_eop <= 0; rd_occ <= 0; end else case(rd_state) IDLE : if(go & read) begin rd_addr <= 0; rd_state <= PRE_READ; rd_length <= ctrl[31:16]; end PRE_READ : begin rd_state <= READING; rd_addr <= rd_addr_next; rd_occ <= 2'b00; rd_sop <= 1; rd_eop <= 0; end READING : if(rd_ready_i) begin rd_sop <= 0; rd_addr <= rd_addr_next; if(rd_addr_next == rd_length) begin rd_eop <= 1; // FIXME assign occ here rd_occ <= 0; end else rd_eop <= 0; if(rd_eop) rd_state <= DONE; end endcase // case(rd_state) // write state machine always @(posedge clk) if(rst | (wr_clear & go)) wr_state <= IDLE; else case(wr_state) IDLE : if(go & write) begin wr_addr <= 0; wr_state <= WRITING; end WRITING : if(wr_ready_i) begin wr_addr <= wr_addr + 1; if(wr_sop & wr_eop) wr_state <= ERROR; // Should save OCC flags here else if(wr_eop) wr_state <= DONE; end // if (wr_ready_i) endcase // case(wr_state) assign rd_data_o[35:32] = { rd_occ[1:0], rd_eop, rd_sop }; assign rd_ready_o = (rd_state == READING); assign wr_sop = wr_data_i[32]; assign wr_eop = wr_data_i[33]; assign wr_occ = wr_data_i[35:34]; assign wr_ready_o = (wr_state == WRITING); assign we = (wr_state == WRITING); // always write to avoid timing issue assign en = ~((rd_state==READING)& ~rd_ready_i); // FIXME potential critical path assign rd_done = (rd_state == DONE); assign wr_done = (wr_state == DONE); assign rd_error = (rd_state == ERROR); assign wr_error = (wr_state == ERROR); assign rd_idle = (rd_state == IDLE); assign wr_idle = (wr_state == IDLE); wire [BUF_SIZE-1:0] wr_addr_clip = (|wr_addr[15:BUF_SIZE]) ? {BUF_SIZE{1'b1}} : wr_addr[BUF_SIZE-1:0]; ram_2port #(.DWIDTH(32),.AWIDTH(BUF_SIZE)) buffer_in // CPU reads here (.clka(wb_clk_i),.ena(wb_stb_i),.wea(1'b0), .addra(wb_adr_i[BUF_SIZE+1:2]),.dia(0),.doa(wb_dat_o), .clkb(clk),.enb(1'b1),.web(we), .addrb(wr_addr_clip),.dib(wr_data_i[31:0]),.dob()); ram_2port #(.DWIDTH(32),.AWIDTH(BUF_SIZE)) buffer_out // CPU writes here (.clka(wb_clk_i),.ena(wb_stb_i),.wea(wb_we_i), .addra(wb_adr_i[BUF_SIZE+1:2]),.dia(wb_dat_i),.doa(), .clkb(clk),.enb(en),.web(1'b0), .addrb(rd_addr[BUF_SIZE-1:0]),.dib(0),.dob(rd_data_o[31:0])); always @(posedge wb_clk_i) if(wb_rst_i) wb_ack_o <= 0; else wb_ack_o <= wb_stb_i & ~wb_ack_o; setting_reg #(.my_addr(BASE)) sreg(.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr),.in(set_data), .out(ctrl),.changed(go)); assign status = { wr_addr, 8'b0,1'b0,rd_idle,rd_error,rd_done, 1'b0,wr_idle,wr_error,wr_done}; endmodule // buffer_int2 uhd-3.5.5/fpga/usrp2/fifo/buffer_int_tb.v000066400000000000000000000227201224274632000202230ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module buffer_int_tb (); reg clk = 0; reg rst = 1; initial #100 rst = 0; always #5 clk = ~clk; wire en, we; wire [8:0] addr; wire [31:0] fifo2buf, buf2fifo; wire [31:0] rd_data_o; wire [3:0] rd_flags_o; wire rd_sop_o, rd_eop_o; reg rd_error_i = 0, rd_read_i = 0; reg [31:0] wr_data_i = 0; wire [3:0] wr_flags_i; reg wr_eop_i = 0, wr_sop_i = 0; reg wr_write_i = 0; wire wr_ready_o, wr_full_o; reg clear = 0, write = 0, read = 0; reg [8:0] firstline = 0, lastline = 0; wire [3:0] step = 1; wire [31:0] ctrl_word = {4'b0,3'b0,clear,write,read,step,lastline,firstline}; reg go = 0; wire done, error; assign wr_flags_i = {2'b00, wr_eop_i, wr_sop_i}; assign rd_sop_o = rd_flags_o[0]; assign rd_eop_o = rd_flags_o[1]; buffer_int buffer_int (.clk(clk),.rst(rst), .ctrl_word(ctrl_word),.go(go), .done(done),.error(error), // Buffer Interface .en_o(en),.we_o(we),.addr_o(addr), .dat_to_buf(fifo2buf),.dat_from_buf(buf2fifo), // Write FIFO Interface .wr_data_i(wr_data_i), .wr_flags_i(wr_flags_i), .wr_write_i(wr_write_i), .wr_ready_o(wr_ready_o), // Read FIFO Interface .rd_data_o(rd_data_o), .rd_flags_o(rd_flags_o), .rd_ready_o(rd_ready_o), .rd_read_i(rd_read_i) ); reg ram_en = 0, ram_we = 0; reg [8:0] ram_addr = 0; reg [31:0] ram_data = 0; ram_2port #(.DWIDTH(32),.AWIDTH(9)) ram_2port (.clka(clk), .ena(ram_en), .wea(ram_we), .addra(ram_addr), .dia(ram_data), .doa(), .clkb(clk), .enb(en), .web(we), .addrb(addr), .dib(fifo2buf), .dob(buf2fifo) ); initial begin @(negedge rst); @(posedge clk); FillRAM; ResetBuffer; SetBufferRead(5,10); $display("Testing full read, no wait states."); while(!rd_sop_o) @(posedge clk); ReadLines(6,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(5,10); $display("Testing full read, 2 wait states."); while(!rd_sop_o) @(posedge clk); ReadLines(6,2); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(5,10); $display("Testing partial read, 0 wait states, then nothing after last."); while(!rd_sop_o) @(posedge clk); ReadLines(3,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(5,10); $display("Testing partial read, 0 wait states, then done at same time as last."); while(!rd_sop_o) @(posedge clk); ReadLines(2,0); ReadALine; repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(5,10); $display("Testing partial read, 3 wait states, then error at same time as last."); while(!rd_sop_o) @(posedge clk); ReadLines(2,3); rd_error_i <= 1; ReadALine; rd_error_i <= 0; repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(500,511); $display("Testing full read, to the end of the buffer."); while(!rd_sop_o) @(posedge clk); ReadLines(12,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(0,511); $display("Testing full read, start to end of the buffer."); while(!rd_sop_o) @(posedge clk); ReadLines(512,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(505,3); $display("Testing full read, wraparound"); while(!rd_sop_o) @(posedge clk); ReadLines(11,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(10,15); $display("Testing Full Write, no wait states"); while(!wr_ready_o) @(posedge clk); WriteLines(6,0,72); repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(18,23); $display("Testing Full Write, 1 wait states"); while(!wr_ready_o) @(posedge clk); WriteLines(6,1,101); repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(27,40); $display("Testing Partial Write, 0 wait states"); while(!wr_ready_o) @(posedge clk); WriteLines(6,0,201); repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(45,200); $display("Testing Partial Write, 0 wait states, then done and write simultaneously"); while(!wr_ready_o) @(posedge clk); wr_sop_i <= 1; wr_eop_i <= 0; WriteLines(6,0,301); wr_sop_i <= 0; wr_eop_i <= 1; WriteALine(400); wr_sop_i <= 0; wr_eop_i <= 0; repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(55,200); $display("Testing Partial Write, 0 wait states, then error"); while(!wr_ready_o) @(posedge clk); WriteLines(6,0,501); wr_sop_i <= 1; wr_eop_i <= 1; WriteALine(400); @(posedge clk); repeat (10) @(posedge clk); wr_sop_i <= 0; wr_eop_i <= 0; ResetBuffer; SetBufferRead(0,82); $display("Testing read after all the writes"); while(!rd_sop_o) @(posedge clk); ReadLines(83,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(508,4); $display("Testing wraparound write"); while(!wr_ready_o) @(posedge clk); WriteLines(9,0,601); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(506,10); $display("Reading wraparound write"); while(!rd_sop_o) @(posedge clk); ReadLines(17,0); repeat (10) @(posedge clk); ResetBuffer; SetBufferWrite(0,511); $display("Testing Whole Buffer write"); while(!wr_ready_o) @(posedge clk); WriteLines(512,0,1000); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(0,511); $display("Reading Whole Buffer write"); while(!rd_sop_o) @(posedge clk); ReadLines(512,0); repeat (10) @(posedge clk); /* ResetBuffer; SetBufferWrite(5,10); $display("Testing Write Too Many"); while(!wr_ready_o) @(posedge clk); WriteLines(12,0,2000); repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(0,15); $display("Reading back Write Too Many"); while(!rd_sop_o) @(posedge clk); ReadLines(16,0); repeat (10) @(posedge clk); */ ResetBuffer; SetBufferWrite(15,20); $display("Testing Write One Less Than Full"); while(!wr_ready_o) @(posedge clk); wr_sop_i <= 1; wr_eop_i <= 0; WriteALine(400); wr_sop_i <= 0; wr_eop_i <= 0; WriteLines(3,0,2000); wr_sop_i <= 0; wr_eop_i <= 1; WriteALine(400); wr_sop_i <= 0; wr_eop_i <= 0; repeat (10) @(posedge clk); ResetBuffer; SetBufferRead(13,22); $display("Reading back Write One Less Than Full"); while(!rd_sop_o) @(posedge clk); ReadLines(10,0); repeat (10) @(posedge clk); ResetBuffer; repeat(100) @(posedge clk); $finish; end always @(posedge clk) if(rd_read_i == 1'd1) $display("READ Buffer %d, rd_sop_o %d, rd_eop_o %d", rd_data_o, rd_sop_o, rd_eop_o); always @(posedge clk) if(wr_write_i == 1'd1) $display("WRITE Buffer %d, wr_ready_o %d, wr_full_o %d", wr_data_i, wr_ready_o, wr_full_o); initial begin $dumpfile("buffer_int_tb.lxt"); $dumpvars(0,buffer_int_tb); end task FillRAM; begin ram_addr <= 0; ram_data <= 0; @(posedge clk); ram_en <= 1; ram_we <= 1; @(posedge clk); repeat (511) begin ram_addr <= ram_addr + 1; ram_data <= ram_data + 1; ram_en <= 1; ram_we <= 1; @(posedge clk); end ram_en <= 0; ram_we <= 0; @(posedge clk); $display("Filled the RAM"); end endtask // FillRAM task ResetBuffer; begin clear <= 1; read <= 0; write <= 0; go <= 1; @(posedge clk); go <= 0; @(posedge clk); $display("Buffer Reset"); end endtask // ClearBuffer task SetBufferWrite; input [8:0] start; input [8:0] stop; begin clear <= 0; read <= 0; write <= 1; firstline <= start; lastline <= stop; go <= 1; @(posedge clk); go <= 0; @(posedge clk); $display("Buffer Set for Write"); end endtask // SetBufferWrite task SetBufferRead; input [8:0] start; input [8:0] stop; begin clear <= 0; read <= 1; write <= 0; firstline <= start; lastline <= stop; go <= 1; @(posedge clk); go <= 0; @(posedge clk); $display("Buffer Set for Read"); end endtask // SetBufferRead task ReadALine; begin while(~rd_ready_o) @(posedge clk); #1 rd_read_i <= 1; @(posedge clk); rd_read_i <= 0; end endtask // ReadALine task ReadLines; input [9:0] lines; input [7:0] wait_states; begin $display("Read Lines: Number %d, Wait States %d",lines,wait_states); repeat (lines) begin ReadALine; repeat (wait_states) @(posedge clk); end end endtask // ReadLines task WriteALine; input [31:0] value; begin while(~wr_ready_o) @(posedge clk); #1 wr_write_i <= 1; wr_data_i <= value; @(posedge clk); wr_write_i <= 0; end endtask // WriteALine task WriteLines; input [9:0] lines; input [7:0] wait_states; input [31:0] value; begin $display("Write Lines: Number %d, Wait States %d",lines,wait_states); repeat(lines) begin value <= value + 1; WriteALine(value); repeat(wait_states) @(posedge clk); end end endtask // WriteLines endmodule // buffer_int_tb uhd-3.5.5/fpga/usrp2/fifo/buffer_pool.v000066400000000000000000000260211224274632000177130ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Buffer pool. Contains 8 buffers, each 2K (512 by 32). Each buffer // is a dual-ported RAM. Port A on each of them is indirectly connected // to the wishbone bus by a bridge. Port B may be connected any one of the // 8 (4 rd, 4 wr) FIFO-like streaming interaces, or disconnected. The wishbone bus // provides access to all 8 buffers, and also controls the connections // between the ports and the buffers, allocating them as needed. // wb_adr is 16 bits -- // bits 13:11 select which buffer // bits 10:2 select line in buffer // bits 1:0 are unused (32-bit access only) // BUF_SIZE is in address lines (i.e. log2 of number of lines). // For S3 it should be 9 (512 words, 2KB) // For V5 it should be at least 10 (1024 words, 4KB) or 11 (2048 words, 8KB) module buffer_pool #(parameter BUF_SIZE = 9, parameter SET_ADDR = 64) (input wb_clk_i, input wb_rst_i, input wb_we_i, input wb_stb_i, input [15:0] wb_adr_i, input [31:0] wb_dat_i, output [31:0] wb_dat_o, output reg wb_ack_o, output wb_err_o, output wb_rty_o, input stream_clk, input stream_rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, output [31:0] status, output sys_int_o, output [31:0] s0, output [31:0] s1, output [31:0] s2, output [31:0] s3, output [31:0] s4, output [31:0] s5, output [31:0] s6, output [31:0] s7, // Write Interfaces input [31:0] wr0_data_i, input [3:0] wr0_flags_i, input wr0_ready_i, output wr0_ready_o, input [31:0] wr1_data_i, input [3:0] wr1_flags_i, input wr1_ready_i, output wr1_ready_o, input [31:0] wr2_data_i, input [3:0] wr2_flags_i, input wr2_ready_i, output wr2_ready_o, input [31:0] wr3_data_i, input [3:0] wr3_flags_i, input wr3_ready_i, output wr3_ready_o, // Read Interfaces output [31:0] rd0_data_o, output [3:0] rd0_flags_o, output rd0_ready_o, input rd0_ready_i, output [31:0] rd1_data_o, output [3:0] rd1_flags_o, output rd1_ready_o, input rd1_ready_i, output [31:0] rd2_data_o, output [3:0] rd2_flags_o, output rd2_ready_o, input rd2_ready_i, output [31:0] rd3_data_o, output [3:0] rd3_flags_o, output rd3_ready_o, input rd3_ready_i ); wire [7:0] sel_a; wire [BUF_SIZE-1:0] buf_addra = wb_adr_i[BUF_SIZE+1:2]; // ignore address 1:0, 32-bit access only wire [2:0] which_buf = wb_adr_i[BUF_SIZE+4:BUF_SIZE+2]; // address 15:14 selects the buffer pool decoder_3_8 dec(.sel(which_buf),.res(sel_a)); genvar i; wire go; reg [2:0] port[0:7]; reg [3:0] read_src[0:3]; reg [3:0] write_src[0:3]; wire [7:0] done; wire [7:0] error; wire [7:0] idle; wire [31:0] buf_doa[0:7]; wire [7:0] buf_enb; wire [7:0] buf_web; wire [BUF_SIZE-1:0] buf_addrb[0:7]; wire [31:0] buf_dib[0:7]; wire [31:0] buf_dob[0:7]; wire [31:0] wr_data_i[0:7]; wire [3:0] wr_flags_i[0:7]; wire [7:0] wr_ready_i; wire [7:0] wr_ready_o; wire [31:0] rd_data_o[0:7]; wire [3:0] rd_flags_o[0:7]; wire [7:0] rd_ready_o; wire [7:0] rd_ready_i; assign status = {8'd0,idle[7:0],error[7:0],done[7:0]}; assign s0 = buf_addrb[0]; assign s1 = buf_addrb[1]; assign s2 = buf_addrb[2]; assign s3 = buf_addrb[3]; assign s4 = buf_addrb[4]; assign s5 = buf_addrb[5]; assign s6 = buf_addrb[6]; assign s7 = buf_addrb[7]; wire [31:0] fifo_ctrl; setting_reg #(.my_addr(SET_ADDR)) sreg(.clk(stream_clk),.rst(stream_rst),.strobe(set_stb),.addr(set_addr),.in(set_data), .out(fifo_ctrl),.changed(go)); integer k; always @(posedge stream_clk) if(stream_rst) for(k=0;k<8;k=k+1) port[k] <= 4; // disabled else for(k=0;k<8;k=k+1) if(go & (fifo_ctrl[31:28]==k)) port[k] <= fifo_ctrl[27:25]; always @(posedge stream_clk) if(stream_rst) for(k=0;k<4;k=k+1) read_src[k] <= 8; // disabled else for(k=0;k<4;k=k+1) if(go & fifo_ctrl[22] & (fifo_ctrl[27:25]==k)) read_src[k] <= fifo_ctrl[31:28]; always @(posedge stream_clk) if(stream_rst) for(k=0;k<4;k=k+1) write_src[k] <= 8; // disabled else for(k=0;k<4;k=k+1) if(go & fifo_ctrl[23] & (fifo_ctrl[27:25]==k)) write_src[k] <= fifo_ctrl[31:28]; generate for(i=0;i<8;i=i+1) begin : gen_buffer RAMB16_S36_S36 dpram (.DOA(buf_doa[i]),.ADDRA(buf_addra),.CLKA(wb_clk_i),.DIA(wb_dat_i),.DIPA(4'h0), .ENA(wb_stb_i & sel_a[i]),.SSRA(0),.WEA(wb_we_i), .DOB(buf_dob[i]),.ADDRB(buf_addrb[i]),.CLKB(stream_clk),.DIB(buf_dib[i]),.DIPB(4'h0), .ENB(buf_enb[i]),.SSRB(0),.WEB(buf_web[i]) ); /* ram_2port #(.DWIDTH(32),.AWIDTH(BUF_SIZE)) buffer (.clka(wb_clk_i),.ena(wb_stb_i & sel_a[i]),.wea(wb_we_i), .addra(buf_addra),.dia(wb_dat_i),.doa(buf_doa[i]), .clkb(stream_clk),.enb(buf_enb[i]),.web(buf_web[i]), .addrb(buf_addrb[i]),.dib(buf_dib[i]),.dob(buf_dob[i])); */ buffer_int #(.BUF_NUM(i),.BUF_SIZE(BUF_SIZE)) buffer_int (.clk(stream_clk),.rst(stream_rst), .ctrl_word(fifo_ctrl),.go(go & (fifo_ctrl[31:28]==i)), .done(done[i]),.error(error[i]),.idle(idle[i]), .en_o(buf_enb[i]), .we_o(buf_web[i]), .addr_o(buf_addrb[i]), .dat_to_buf(buf_dib[i]), .dat_from_buf(buf_dob[i]), .wr_data_i(wr_data_i[i]), .wr_flags_i(wr_flags_i[i]), .wr_ready_i(wr_ready_i[i]), .wr_ready_o(wr_ready_o[i]), .rd_data_o(rd_data_o[i]), .rd_flags_o(rd_flags_o[i]), .rd_ready_o(rd_ready_o[i]), .rd_ready_i(rd_ready_i[i]) ); mux4 #(.WIDTH(37)) mux4_wr (.en(~port[i][2]),.sel(port[i][1:0]), .i0({wr0_data_i,wr0_flags_i,wr0_ready_i}), .i1({wr1_data_i,wr1_flags_i,wr1_ready_i}), .i2({wr2_data_i,wr2_flags_i,wr2_ready_i}), .i3({wr3_data_i,wr3_flags_i,wr3_ready_i}), .o({wr_data_i[i],wr_flags_i[i],wr_ready_i[i]}) ); mux4 #(.WIDTH(1)) mux4_rd (.en(~port[i][2]),.sel(port[i][1:0]), .i0(rd0_ready_i),.i1(rd1_ready_i),.i2(rd2_ready_i),.i3(rd3_ready_i), .o(rd_ready_i[i])); end // block: gen_buffer endgenerate //---------------------------------------------------------------------- // Wishbone Outputs // Use the following lines if ram output and mux can be made fast enough assign wb_err_o = 1'b0; // Unused for now assign wb_rty_o = 1'b0; // Unused for now always @(posedge wb_clk_i) wb_ack_o <= wb_stb_i & ~wb_ack_o; assign wb_dat_o = buf_doa[which_buf]; // Use this if we can't make the RAM+MUX fast enough // reg [31:0] wb_dat_o_reg; // reg stb_d1; // always @(posedge wb_clk_i) // begin // wb_dat_o_reg <= buf_doa[which_buf]; // stb_d1 <= wb_stb_i; // wb_ack_o <= (stb_d1 & ~wb_ack_o) | (wb_we_i & wb_stb_i); // end //assign wb_dat_o = wb_dat_o_reg; mux8 #(.WIDTH(1)) mux8_wr0(.en(~write_src[0][3]),.sel(write_src[0][2:0]), .i0(wr_ready_o[0]), .i1(wr_ready_o[1]), .i2(wr_ready_o[2]), .i3(wr_ready_o[3]), .i4(wr_ready_o[4]), .i5(wr_ready_o[5]), .i6(wr_ready_o[6]), .i7(wr_ready_o[7]), .o(wr0_ready_o)); mux8 #(.WIDTH(1)) mux8_wr1(.en(~write_src[1][3]),.sel(write_src[1][2:0]), .i0(wr_ready_o[0]), .i1(wr_ready_o[1]), .i2(wr_ready_o[2]), .i3(wr_ready_o[3]), .i4(wr_ready_o[4]), .i5(wr_ready_o[5]), .i6(wr_ready_o[6]), .i7(wr_ready_o[7]), .o(wr1_ready_o)); mux8 #(.WIDTH(1)) mux8_wr2(.en(~write_src[2][3]),.sel(write_src[2][2:0]), .i0(wr_ready_o[0]), .i1(wr_ready_o[1]), .i2(wr_ready_o[2]), .i3(wr_ready_o[3]), .i4(wr_ready_o[4]), .i5(wr_ready_o[5]), .i6(wr_ready_o[6]), .i7(wr_ready_o[7]), .o(wr2_ready_o)); mux8 #(.WIDTH(1)) mux8_wr3(.en(~write_src[3][3]),.sel(write_src[3][2:0]), .i0(wr_ready_o[0]), .i1(wr_ready_o[1]), .i2(wr_ready_o[2]), .i3(wr_ready_o[3]), .i4(wr_ready_o[4]), .i5(wr_ready_o[5]), .i6(wr_ready_o[6]), .i7(wr_ready_o[7]), .o(wr3_ready_o)); mux8 #(.WIDTH(37)) mux8_rd0(.en(~read_src[0][3]),.sel(read_src[0][2:0]), .i0({rd_data_o[0],rd_flags_o[0],rd_ready_o[0]}), .i1({rd_data_o[1],rd_flags_o[1],rd_ready_o[1]}), .i2({rd_data_o[2],rd_flags_o[2],rd_ready_o[2]}), .i3({rd_data_o[3],rd_flags_o[3],rd_ready_o[3]}), .i4({rd_data_o[4],rd_flags_o[4],rd_ready_o[4]}), .i5({rd_data_o[5],rd_flags_o[5],rd_ready_o[5]}), .i6({rd_data_o[6],rd_flags_o[6],rd_ready_o[6]}), .i7({rd_data_o[7],rd_flags_o[7],rd_ready_o[7]}), .o({rd0_data_o,rd0_flags_o,rd0_ready_o})); mux8 #(.WIDTH(37)) mux8_rd1(.en(~read_src[1][3]),.sel(read_src[1][2:0]), .i0({rd_data_o[0],rd_flags_o[0],rd_ready_o[0]}), .i1({rd_data_o[1],rd_flags_o[1],rd_ready_o[1]}), .i2({rd_data_o[2],rd_flags_o[2],rd_ready_o[2]}), .i3({rd_data_o[3],rd_flags_o[3],rd_ready_o[3]}), .i4({rd_data_o[4],rd_flags_o[4],rd_ready_o[4]}), .i5({rd_data_o[5],rd_flags_o[5],rd_ready_o[5]}), .i6({rd_data_o[6],rd_flags_o[6],rd_ready_o[6]}), .i7({rd_data_o[7],rd_flags_o[7],rd_ready_o[7]}), .o({rd1_data_o,rd1_flags_o,rd1_ready_o})); mux8 #(.WIDTH(37)) mux8_rd2(.en(~read_src[2][3]),.sel(read_src[2][2:0]), .i0({rd_data_o[0],rd_flags_o[0],rd_ready_o[0]}), .i1({rd_data_o[1],rd_flags_o[1],rd_ready_o[1]}), .i2({rd_data_o[2],rd_flags_o[2],rd_ready_o[2]}), .i3({rd_data_o[3],rd_flags_o[3],rd_ready_o[3]}), .i4({rd_data_o[4],rd_flags_o[4],rd_ready_o[4]}), .i5({rd_data_o[5],rd_flags_o[5],rd_ready_o[5]}), .i6({rd_data_o[6],rd_flags_o[6],rd_ready_o[6]}), .i7({rd_data_o[7],rd_flags_o[7],rd_ready_o[7]}), .o({rd2_data_o,rd2_flags_o,rd2_ready_o})); mux8 #(.WIDTH(37)) mux8_rd3(.en(~read_src[3][3]),.sel(read_src[3][2:0]), .i0({rd_data_o[0],rd_flags_o[0],rd_ready_o[0]}), .i1({rd_data_o[1],rd_flags_o[1],rd_ready_o[1]}), .i2({rd_data_o[2],rd_flags_o[2],rd_ready_o[2]}), .i3({rd_data_o[3],rd_flags_o[3],rd_ready_o[3]}), .i4({rd_data_o[4],rd_flags_o[4],rd_ready_o[4]}), .i5({rd_data_o[5],rd_flags_o[5],rd_ready_o[5]}), .i6({rd_data_o[6],rd_flags_o[6],rd_ready_o[6]}), .i7({rd_data_o[7],rd_flags_o[7],rd_ready_o[7]}), .o({rd3_data_o,rd3_flags_o,rd3_ready_o})); assign sys_int_o = (|error) | (|done); endmodule // buffer_pool uhd-3.5.5/fpga/usrp2/fifo/buffer_pool_tb.v000066400000000000000000000053551224274632000204070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module buffer_pool_tb(); wire wb_clk_i; wire wb_rst_i; wire wb_we_i; wire wb_stb_i; wire [15:0] wb_adr_i; wire [31:0] wb_dat_i; wire [31:0] wb_dat_o; wire wb_ack_o; wire wb_err_o; wire wb_rty_o; wire stream_clk, stream_rst; wire set_stb; wire [7:0] set_addr; wire [31:0] set_data; wire [31:0] wr0_data, wr1_data, wr2_data, wr3_data; wire [31:0] rd0_data, rd1_data, rd2_data, rd3_data; wire [3:0] wr0_flags, wr1_flags, wr2_flags, wr3_flags; wire [3:0] rd0_flags, rd1_flags, rd2_flags, rd3_flags; wire wr0_ready, wr1_ready, wr2_ready, wr3_ready; wire rd0_ready, rd1_ready, rd2_ready, rd3_ready; wire wr0_write, wr1_write, wr2_write, wr3_write; wire rd0_read, rd1_read, rd2_read, rd3_read; buffer_pool dut (.wb_clk_i(wb_clk_i), .wb_rst_i(wb_rst_i), .wb_we_i(wb_we_i), .wb_stb_i(wb_stb_i), .wb_adr_i(wb_adr_i), .wb_dat_i(wb_dat_i), .wb_dat_o(wb_dat_o), .wb_ack_o(wb_ack_o), .wb_err_o(wb_err_o), .wb_rty_o(wb_rty_o), .stream_clk(stream_clk), .stream_rst(stream_rst), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .wr0_data_i(wr0_data), .wr0_write_i(wr0_write), .wr0_flags_i(wr0_flags), .wr0_ready_o(wr0_ready), .wr1_data_i(wr1_data), .wr1_write_i(wr1_write), .wr1_flags_i(wr1_flags), .wr1_ready_o(wr1_ready), .wr2_data_i(wr2_data), .wr2_write_i(wr2_write), .wr2_flags_i(wr2_flags), .wr2_ready_o(wr2_ready), .wr3_data_i(wr3_data), .wr3_write_i(wr3_write), .wr3_flags_i(wr3_flags), .wr3_ready_o(wr3_ready), .rd0_data_o(rd0_data), .rd0_read_i(rd0_read), .rd0_flags_o(rd0_flags), .rd0_ready_o(rd0_ready), .rd1_data_o(rd1_data), .rd1_read_i(rd1_read), .rd1_flags_o(rd1_flags), .rd1_ready_o(rd1_ready), .rd2_data_o(rd2_data), .rd2_read_i(rd2_read), .rd2_flags_o(rd2_flags), .rd2_ready_o(rd2_ready), .rd3_data_o(rd3_data), .rd3_read_i(rd3_read), .rd3_flags_o(rd3_flags), .rd3_ready_o(rd3_ready) ); endmodule // buffer_pool_tb uhd-3.5.5/fpga/usrp2/fifo/crossbar36.v000066400000000000000000000036421224274632000174040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module crossbar36 (input clk, input reset, input clear, input cross, input [35:0] data0_i, input src0_rdy_i, output dst0_rdy_o, input [35:0] data1_i, input src1_rdy_i, output dst1_rdy_o, output [35:0] data0_o, output src0_rdy_o, input dst0_rdy_i, output [35:0] data1_o, output src1_rdy_o, input dst1_rdy_i); reg cross_int, active0, active1; wire active0_next = (src0_rdy_i & dst0_rdy_o)? ~data0_i[33] : active0; wire active1_next = (src1_rdy_i & dst1_rdy_o)? ~data1_i[33] : active1; assign data0_o = cross_int ? data1_i : data0_i; assign data1_o = cross_int ? data0_i : data1_i; assign src0_rdy_o = cross_int ? src1_rdy_i : src0_rdy_i; assign src1_rdy_o = cross_int ? src0_rdy_i : src1_rdy_i; assign dst0_rdy_o = cross_int ? dst1_rdy_i : dst0_rdy_i; assign dst1_rdy_o = cross_int ? dst0_rdy_i : dst1_rdy_i; always @(posedge clk) if(reset | clear) active0 <= 0; else active0 <= active0_next; always @(posedge clk) if(reset | clear) active1 <= 0; else active1 <= active1_next; always @(posedge clk) if(reset | clear) cross_int <= 0; else if(~active0_next & ~active1_next) cross_int <= cross; endmodule // crossbar36 uhd-3.5.5/fpga/usrp2/fifo/dsp_framer36.v000066400000000000000000000067631224274632000177170ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // This has 3 functions: // Correct the VITA packet length // [optional] Frame DSP packets with an header line to be handled by the protocol machine // Hold on to the packet until there is a complete one before allowing to leave module dsp_framer36 #(parameter BUF_SIZE = 9, parameter PORT_SEL = 0, parameter PROT_ENG_FLAGS = 1) (input clk, input reset, input clear, input [35:0] data_i, input src_rdy_i, output dst_rdy_o, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); wire dfifo_in_dst_rdy, dfifo_in_src_rdy, dfifo_out_dst_rdy, dfifo_out_src_rdy; wire tfifo_in_dst_rdy, tfifo_in_src_rdy, tfifo_out_dst_rdy, tfifo_out_src_rdy; wire do_xfer_in = dfifo_in_src_rdy & dfifo_in_dst_rdy; wire do_xfer_out = src_rdy_o & dst_rdy_i; wire have_space = dfifo_in_dst_rdy & tfifo_in_dst_rdy; reg [15:0] pkt_len_in, pkt_len_out; wire [15:0] tfifo_data; wire [35:0] dfifo_out_data; assign dst_rdy_o = have_space; assign dfifo_in_src_rdy = src_rdy_i & have_space; fifo_cascade #(.WIDTH(36), .SIZE(BUF_SIZE)) dfifo (.clk(clk), .reset(reset), .clear(clear), .datain(data_i), .src_rdy_i(dfifo_in_src_rdy), .dst_rdy_o(dfifo_in_dst_rdy), .dataout(dfifo_out_data), .src_rdy_o(dfifo_out_src_rdy), .dst_rdy_i(dfifo_out_dst_rdy) ); fifo_short #(.WIDTH(16)) tfifo (.clk(clk), .reset(reset), .clear(clear), .datain(pkt_len_in), .src_rdy_i(tfifo_in_src_rdy), .dst_rdy_o(tfifo_in_dst_rdy), .dataout(tfifo_data), .src_rdy_o(tfifo_out_src_rdy), .dst_rdy_i(tfifo_out_dst_rdy), .space(), .occupied() ); // FIXME won't handle single-line packets, will show wrong length always @(posedge clk) if(reset | clear) pkt_len_in <= 0; else if(do_xfer_in) if(data_i[32]) // sof pkt_len_in <= 2; // fixes off by one since number is stored before increment else pkt_len_in <= pkt_len_in + 1; assign tfifo_in_src_rdy = do_xfer_in & data_i[33]; // store length when at eof in assign tfifo_out_dst_rdy = do_xfer_out & data_o[33]; // remove length from list at eof out always @(posedge clk) if(reset | clear) pkt_len_out <= (PROT_ENG_FLAGS ? 1'b0 : 1'b1); else if(do_xfer_out) if(dfifo_out_data[33]) // eof pkt_len_out <= (PROT_ENG_FLAGS ? 1'b0 : 1'b1); else pkt_len_out <= pkt_len_out + 1; assign dfifo_out_dst_rdy = do_xfer_out & (pkt_len_out != 0); wire [1:0] port_sel_bits = PORT_SEL; assign data_o = (pkt_len_out == 0) ? {3'b000, 1'b1, 13'b0, port_sel_bits, 1'b1, tfifo_data[13:0],2'b00} : (pkt_len_out == 1) ? {3'b000, (PROT_ENG_FLAGS ? 1'b0: 1'b1), dfifo_out_data[31:16],tfifo_data} : {dfifo_out_data[35:33], 1'b0, dfifo_out_data[31:0] }; assign src_rdy_o = dfifo_out_src_rdy & tfifo_out_src_rdy; endmodule // dsp_framer36 uhd-3.5.5/fpga/usrp2/fifo/fifo19_mux.v000066400000000000000000000061461224274632000174050ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Mux packets from multiple FIFO interfaces onto a single one. // Can alternate or give priority to one port (port 0) // In prio mode, port 1 will never get access if port 0 is always busy module fifo19_mux #(parameter prio = 0) (input clk, input reset, input clear, input [18:0] data0_i, input src0_rdy_i, output dst0_rdy_o, input [18:0] data1_i, input src1_rdy_i, output dst1_rdy_o, output [18:0] data_o, output src_rdy_o, input dst_rdy_i); wire [18:0] data0_int, data1_int; wire src0_rdy_int, dst0_rdy_int, src1_rdy_int, dst1_rdy_int; fifo_short #(.WIDTH(19)) mux_fifo_in0 (.clk(clk), .reset(reset), .clear(clear), .datain(data0_i), .src_rdy_i(src0_rdy_i), .dst_rdy_o(dst0_rdy_o), .dataout(data0_int), .src_rdy_o(src0_rdy_int), .dst_rdy_i(dst0_rdy_int)); fifo_short #(.WIDTH(19)) mux_fifo_in1 (.clk(clk), .reset(reset), .clear(clear), .datain(data1_i), .src_rdy_i(src1_rdy_i), .dst_rdy_o(dst1_rdy_o), .dataout(data1_int), .src_rdy_o(src1_rdy_int), .dst_rdy_i(dst1_rdy_int)); localparam MUX_IDLE0 = 0; localparam MUX_DATA0 = 1; localparam MUX_IDLE1 = 2; localparam MUX_DATA1 = 3; reg [1:0] state; wire eof0 = data0_int[17]; wire eof1 = data1_int[17]; wire [18:0] data_int; wire src_rdy_int, dst_rdy_int; always @(posedge clk) if(reset | clear) state <= MUX_IDLE0; else case(state) MUX_IDLE0 : if(src0_rdy_int) state <= MUX_DATA0; else if(src1_rdy_int) state <= MUX_DATA1; MUX_DATA0 : if(src0_rdy_int & dst_rdy_int & eof0) state <= prio ? MUX_IDLE0 : MUX_IDLE1; MUX_IDLE1 : if(src1_rdy_int) state <= MUX_DATA1; else if(src0_rdy_int) state <= MUX_DATA0; MUX_DATA1 : if(src1_rdy_int & dst_rdy_int & eof1) state <= MUX_IDLE0; default : state <= MUX_IDLE0; endcase // case (state) assign dst0_rdy_int = (state==MUX_DATA0) ? dst_rdy_int : 0; assign dst1_rdy_int = (state==MUX_DATA1) ? dst_rdy_int : 0; assign src_rdy_int = (state==MUX_DATA0) ? src0_rdy_int : (state==MUX_DATA1) ? src1_rdy_int : 0; assign data_int = (state==MUX_DATA0) ? data0_int : data1_int; fifo_short #(.WIDTH(19)) mux_fifo (.clk(clk), .reset(reset), .clear(clear), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .dataout(data_o), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); endmodule // fifo19_mux uhd-3.5.5/fpga/usrp2/fifo/fifo19_pad.v000066400000000000000000000045401224274632000173340ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Pads a packet out to the minimum length // Packets already longer than min length are unchanged module fifo19_pad #(parameter LENGTH=16, parameter PAD_VALUE=0) (input clk, input reset, input clear, input [18:0] data_i, input src_rdy_i, output dst_rdy_o, output [18:0] data_o, output src_rdy_o, input dst_rdy_i); reg [15:0] count; reg [1:0] pad_state; localparam PAD_IDLE = 0; localparam PAD_TOOSHORT = 1; localparam PAD_LONGENOUGH = 2; localparam PAD_PADDING = 3; always @(posedge clk) if(reset | clear) pad_state <= PAD_IDLE; else case(pad_state) PAD_IDLE : begin count <= 1; pad_state <= PAD_TOOSHORT; end PAD_TOOSHORT : if(src_rdy_i & dst_rdy_i) begin count <= count + 1; if(data_i[17]) pad_state <= PAD_PADDING; else if(count == (LENGTH-1)) pad_state <= PAD_LONGENOUGH; end PAD_PADDING : if(dst_rdy_i) begin count <= count + 1; if(count == LENGTH) pad_state <= PAD_IDLE; end PAD_LONGENOUGH : if(src_rdy_i & dst_rdy_i & data_i[17]) pad_state <= PAD_IDLE; endcase // case (pad_state) wire passthru = (pad_state == PAD_TOOSHORT) | (pad_state == PAD_LONGENOUGH); assign dst_rdy_o = passthru ? dst_rdy_i : 1'b0; assign src_rdy_o = passthru ? src_rdy_i : (pad_state == PAD_PADDING); assign data_o[15:0] = (pad_state == PAD_PADDING) ? PAD_VALUE : data_i[15:0]; assign data_o[16] = (count == 1); assign data_o[17] = (pad_state == PAD_LONGENOUGH) ? data_i[17] : (count == LENGTH); assign data_o[18] = (pad_state == PAD_LONGENOUGH) ? data_i[18] : 1'b0; endmodule // fifo19_pad uhd-3.5.5/fpga/usrp2/fifo/fifo19_to_fifo36.v000066400000000000000000000071711224274632000203710ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Parameter LE tells us if we are little-endian. // Little-endian means send lower 16 bits first. // Default is big endian (network order), send upper bits first. module fifo19_to_fifo36 #(parameter LE=0) (input clk, input reset, input clear, input [18:0] f19_datain, input f19_src_rdy_i, output f19_dst_rdy_o, output [35:0] f36_dataout, output f36_src_rdy_o, input f36_dst_rdy_i, output [31:0] debug ); // Shortfifo on input to guarantee no deadlock wire [18:0] f19_data_int; wire f19_src_rdy_int, f19_dst_rdy_int; fifo_short #(.WIDTH(19)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f19_datain), .src_rdy_i(f19_src_rdy_i), .dst_rdy_o(f19_dst_rdy_o), .dataout(f19_data_int), .src_rdy_o(f19_src_rdy_int), .dst_rdy_i(f19_dst_rdy_int), .space(),.occupied() ); // Actual f19 to f36 which could deadlock if not connected to shortfifos reg f36_sof_int, f36_eof_int; reg [1:0] f36_occ_int; wire [35:0] f36_data_int; wire f36_src_rdy_int, f36_dst_rdy_int; reg [1:0] state; reg [15:0] dat0, dat1; wire f19_sof_int = f19_data_int[16]; wire f19_eof_int = f19_data_int[17]; wire f19_occ_int = f19_data_int[18]; wire xfer_out = f36_src_rdy_int & f36_dst_rdy_int; always @(posedge clk) if(f19_src_rdy_int & ((state==0)|xfer_out)) f36_sof_int <= f19_sof_int; always @(posedge clk) if(f19_src_rdy_int & ((state != 2)|xfer_out)) f36_eof_int <= f19_eof_int; always @(posedge clk) if(reset) begin state <= 0; f36_occ_int <= 0; end else if(f19_src_rdy_int) case(state) 0 : begin dat0 <= f19_data_int; if(f19_eof_int) begin state <= 2; f36_occ_int <= f19_occ_int ? 2'b01 : 2'b10; end else state <= 1; end 1 : begin dat1 <= f19_data_int; state <= 2; if(f19_eof_int) f36_occ_int <= f19_occ_int ? 2'b11 : 2'b00; end 2 : if(xfer_out) begin dat0 <= f19_data_int; if(f19_eof_int) // remain in state 2 if we are at eof f36_occ_int <= f19_occ_int ? 2'b01 : 2'b10; else state <= 1; end endcase // case(state) else if(xfer_out) begin state <= 0; f36_occ_int <= 0; end assign f19_dst_rdy_int = xfer_out | (state != 2); assign f36_data_int = LE ? {f36_occ_int,f36_eof_int,f36_sof_int,dat1,dat0} : {f36_occ_int,f36_eof_int,f36_sof_int,dat0,dat1}; assign f36_src_rdy_int = (state == 2); assign debug = state; // Shortfifo on output to guarantee no deadlock fifo_short #(.WIDTH(36)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f36_data_int), .src_rdy_i(f36_src_rdy_int), .dst_rdy_o(f36_dst_rdy_int), .dataout(f36_dataout), .src_rdy_o(f36_src_rdy_o), .dst_rdy_i(f36_dst_rdy_i), .space(),.occupied() ); endmodule // fifo19_to_fifo36 uhd-3.5.5/fpga/usrp2/fifo/fifo19_to_ll8.v000066400000000000000000000035471224274632000177770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo19_to_ll8 (input clk, input reset, input clear, input [18:0] f19_data, input f19_src_rdy_i, output f19_dst_rdy_o, output reg [7:0] ll_data, output ll_sof_n, output ll_eof_n, output ll_src_rdy_n, input ll_dst_rdy_n); wire ll_sof, ll_eof, ll_src_rdy; assign ll_sof_n = ~ll_sof; assign ll_eof_n = ~ll_eof; assign ll_src_rdy_n = ~ll_src_rdy; wire ll_dst_rdy = ~ll_dst_rdy_n; wire f19_sof = f19_data[16]; wire f19_eof = f19_data[17]; wire f19_occ = f19_data[18]; wire advance, end_early; reg state; always @(posedge clk) if(reset) state <= 0; else if(advance) if(ll_eof) state <= 0; else state <= state + 1; always @* case(state) 0 : ll_data = f19_data[15:8]; 1 : ll_data = f19_data[7:0]; default : ll_data = f19_data[15:8]; endcase // case (state) assign ll_sof = (state==0) & f19_sof; assign ll_eof = f19_eof & ((f19_occ==1)|(state==1)); assign ll_src_rdy = f19_src_rdy_i; assign advance = ll_src_rdy & ll_dst_rdy; assign f19_dst_rdy_o = advance & ((state==1)|ll_eof); endmodule // fifo19_to_ll8 uhd-3.5.5/fpga/usrp2/fifo/fifo36_demux.v000066400000000000000000000040701224274632000177070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Demux packets from a fifo based on the contents of the first line // If first line matches the parameter and mask, send to data1, otherwise send to data0 module fifo36_demux #(parameter match_data = 0, parameter match_mask = 0) (input clk, input reset, input clear, input [35:0] data_i, input src_rdy_i, output dst_rdy_o, output [35:0] data0_o, output src0_rdy_o, input dst0_rdy_i, output [35:0] data1_o, output src1_rdy_o, input dst1_rdy_i); localparam DMX_IDLE = 0; localparam DMX_DATA0 = 1; localparam DMX_DATA1 = 2; reg [1:0] state; wire match = |( (data_i ^ match_data) & match_mask ); wire eof = data_i[33]; always @(posedge clk) if(reset | clear) state <= DMX_IDLE; else case(state) DMX_IDLE : if(src_rdy_i) if(match) state <= DMX_DATA1; else state <= DMX_DATA0; DMX_DATA0 : if(src_rdy_i & dst0_rdy_i & eof) state <= DMX_IDLE; DMX_DATA1 : if(src_rdy_i & dst1_rdy_i & eof) state <= DMX_IDLE; default : state <= DMX_IDLE; endcase // case (state) assign dst_rdy_o = (state==DMX_IDLE) ? 0 : (state==DMX_DATA0) ? dst0_rdy_i : dst1_rdy_i; assign src0_rdy_o = (state==DMX_DATA0) ? src_rdy_i : 0; assign src1_rdy_o = (state==DMX_DATA1) ? src_rdy_i : 0; assign data0_o = data_i; assign data1_o = data_i; endmodule // fifo36_demux uhd-3.5.5/fpga/usrp2/fifo/fifo36_mux.v000066400000000000000000000061501224274632000173770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Mux packets from multiple FIFO interfaces onto a single one. // Can alternate or give priority to one port (port 0) // In prio mode, port 1 will never get access if port 0 is always busy module fifo36_mux #(parameter prio = 0) (input clk, input reset, input clear, input [35:0] data0_i, input src0_rdy_i, output dst0_rdy_o, input [35:0] data1_i, input src1_rdy_i, output dst1_rdy_o, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); wire [35:0] data0_int, data1_int; wire src0_rdy_int, dst0_rdy_int, src1_rdy_int, dst1_rdy_int; fifo_short #(.WIDTH(36)) mux_fifo_in0 (.clk(clk), .reset(reset), .clear(clear), .datain(data0_i), .src_rdy_i(src0_rdy_i), .dst_rdy_o(dst0_rdy_o), .dataout(data0_int), .src_rdy_o(src0_rdy_int), .dst_rdy_i(dst0_rdy_int)); fifo_short #(.WIDTH(36)) mux_fifo_in1 (.clk(clk), .reset(reset), .clear(clear), .datain(data1_i), .src_rdy_i(src1_rdy_i), .dst_rdy_o(dst1_rdy_o), .dataout(data1_int), .src_rdy_o(src1_rdy_int), .dst_rdy_i(dst1_rdy_int)); localparam MUX_IDLE0 = 0; localparam MUX_DATA0 = 1; localparam MUX_IDLE1 = 2; localparam MUX_DATA1 = 3; reg [1:0] state; wire eof0 = data0_int[33]; wire eof1 = data1_int[33]; wire [35:0] data_int; wire src_rdy_int, dst_rdy_int; always @(posedge clk) if(reset | clear) state <= MUX_IDLE0; else case(state) MUX_IDLE0 : if(src0_rdy_int) state <= MUX_DATA0; else if(src1_rdy_int) state <= MUX_DATA1; MUX_DATA0 : if(src0_rdy_int & dst_rdy_int & eof0) state <= prio ? MUX_IDLE0 : MUX_IDLE1; MUX_IDLE1 : if(src1_rdy_int) state <= MUX_DATA1; else if(src0_rdy_int) state <= MUX_DATA0; MUX_DATA1 : if(src1_rdy_int & dst_rdy_int & eof1) state <= MUX_IDLE0; default : state <= MUX_IDLE0; endcase // case (state) assign dst0_rdy_int = (state==MUX_DATA0) ? dst_rdy_int : 0; assign dst1_rdy_int = (state==MUX_DATA1) ? dst_rdy_int : 0; assign src_rdy_int = (state==MUX_DATA0) ? src0_rdy_int : (state==MUX_DATA1) ? src1_rdy_int : 0; assign data_int = (state==MUX_DATA0) ? data0_int : data1_int; fifo_short #(.WIDTH(36)) mux_fifo (.clk(clk), .reset(reset), .clear(clear), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .dataout(data_o), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); endmodule // fifo36_demux uhd-3.5.5/fpga/usrp2/fifo/fifo36_to_fifo19.v000066400000000000000000000056741224274632000203770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Parameter LE tells us if we are little-endian. // Little-endian means send lower 16 bits first. // Default is big endian (network order), send upper bits first. module fifo36_to_fifo19 #(parameter LE=0) (input clk, input reset, input clear, input [35:0] f36_datain, input f36_src_rdy_i, output f36_dst_rdy_o, output [18:0] f19_dataout, output f19_src_rdy_o, input f19_dst_rdy_i ); wire [18:0] f19_data_int; wire f19_src_rdy_int, f19_dst_rdy_int; wire [35:0] f36_data_int; wire f36_src_rdy_int, f36_dst_rdy_int; // Shortfifo on input to guarantee no deadlock fifo_short #(.WIDTH(36)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f36_datain), .src_rdy_i(f36_src_rdy_i), .dst_rdy_o(f36_dst_rdy_o), .dataout(f36_data_int), .src_rdy_o(f36_src_rdy_int), .dst_rdy_i(f36_dst_rdy_int), .space(),.occupied() ); // Main fifo36_to_fifo19, needs shortfifos to guarantee no deadlock wire [1:0] f36_occ_int = f36_data_int[35:34]; wire f36_sof_int = f36_data_int[32]; wire f36_eof_int = f36_data_int[33]; reg phase; wire half_line = f36_eof_int & ((f36_occ_int==1)|(f36_occ_int==2)); assign f19_data_int[15:0] = (LE ^ phase) ? f36_data_int[15:0] : f36_data_int[31:16]; assign f19_data_int[16] = phase ? 0 : f36_sof_int; assign f19_data_int[17] = phase ? f36_eof_int : half_line; assign f19_data_int[18] = f19_data_int[17] & ((f36_occ_int==1)|(f36_occ_int==3)); assign f19_src_rdy_int = f36_src_rdy_int; assign f36_dst_rdy_int = (phase | half_line) & f19_dst_rdy_int; wire f19_xfer = f19_src_rdy_int & f19_dst_rdy_int; wire f36_xfer = f36_src_rdy_int & f36_dst_rdy_int; always @(posedge clk) if(reset) phase <= 0; else if(f36_xfer) phase <= 0; else if(f19_xfer) phase <= 1; // Shortfifo on output to guarantee no deadlock fifo_short #(.WIDTH(19)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f19_data_int), .src_rdy_i(f19_src_rdy_int), .dst_rdy_o(f19_dst_rdy_int), .dataout(f19_dataout), .src_rdy_o(f19_src_rdy_o), .dst_rdy_i(f19_dst_rdy_i), .space(),.occupied() ); endmodule // fifo36_to_fifo19 uhd-3.5.5/fpga/usrp2/fifo/fifo36_to_fifo72.v000066400000000000000000000101041224274632000203560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Parameter LE tells us if we are little-endian. // Little-endian means send lower 16 bits first. // Default is big endian (network order), send upper bits first. module fifo36_to_fifo72 #(parameter LE=0) (input clk, input reset, input clear, input [35:0] f36_datain, input f36_src_rdy_i, output f36_dst_rdy_o, output [71:0] f72_dataout, output f72_src_rdy_o, input f72_dst_rdy_i, output [31:0] debug ); // Shortfifo on input to guarantee no deadlock wire [35:0] f36_data_int; wire f36_src_rdy_int, f36_dst_rdy_int; fifo_short #(.WIDTH(36)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f36_datain), .src_rdy_i(f36_src_rdy_i), .dst_rdy_o(f36_dst_rdy_o), .dataout(f36_data_int), .src_rdy_o(f36_src_rdy_int), .dst_rdy_i(f36_dst_rdy_int), .space(),.occupied() ); // Actual f36 to f72 which could deadlock if not connected to shortfifos reg f72_sof_int, f72_eof_int; reg [2:0] f72_occ_int; wire [71:0] f72_data_int; wire f72_src_rdy_int, f72_dst_rdy_int; reg [1:0] state; reg [31:0] dat0, dat1; wire f36_sof_int = f36_data_int[32]; wire f36_eof_int = f36_data_int[33]; wire [1:0] f36_occ_int = f36_data_int[35:34]; wire xfer_out = f72_src_rdy_int & f72_dst_rdy_int; always @(posedge clk) if(f36_src_rdy_int & ((state==0)|xfer_out)) f72_sof_int <= f36_sof_int; always @(posedge clk) if(f36_src_rdy_int & ((state != 2)|xfer_out)) f72_eof_int <= f36_eof_int; always @(posedge clk) if(reset) begin state <= 0; f72_occ_int <= 0; end else if(f36_src_rdy_int) case(state) 0 : begin dat0 <= f36_data_int; if(f36_eof_int) begin state <= 2; case (f36_occ_int) 0 : f72_occ_int <= 3'd4; 1 : f72_occ_int <= 3'd1; 2 : f72_occ_int <= 3'd2; 3 : f72_occ_int <= 3'd3; endcase // case (f36_occ_int) end else state <= 1; end 1 : begin dat1 <= f36_data_int; state <= 2; if(f36_eof_int) case (f36_occ_int) 0 : f72_occ_int <= 3'd0; 1 : f72_occ_int <= 3'd5; 2 : f72_occ_int <= 3'd6; 3 : f72_occ_int <= 3'd7; endcase // case (f36_occ_int) end 2 : if(xfer_out) begin dat0 <= f36_data_int; if(f36_eof_int) // remain in state 2 if we are at eof case (f36_occ_int) 0 : f72_occ_int <= 3'd4; 1 : f72_occ_int <= 3'd1; 2 : f72_occ_int <= 3'd2; 3 : f72_occ_int <= 3'd3; endcase // case (f36_occ_int) else state <= 1; end endcase // case(state) else if(xfer_out) begin state <= 0; f72_occ_int <= 0; end assign f36_dst_rdy_int = xfer_out | (state != 2); assign f72_data_int = LE ? {3'b000,f72_occ_int[2:0],f72_eof_int,f72_sof_int,dat1,dat0} : {3'b000,f72_occ_int[2:0],f72_eof_int,f72_sof_int,dat0,dat1}; assign f72_src_rdy_int = (state == 2); assign debug = state; // Shortfifo on output to guarantee no deadlock fifo_short #(.WIDTH(72)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f72_data_int), .src_rdy_i(f72_src_rdy_int), .dst_rdy_o(f72_dst_rdy_int), .dataout(f72_dataout), .src_rdy_o(f72_src_rdy_o), .dst_rdy_i(f72_dst_rdy_i), .space(),.occupied() ); endmodule // fifo36_to_fifo72 uhd-3.5.5/fpga/usrp2/fifo/fifo36_to_ll8.v000066400000000000000000000057311224274632000177730ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo36_to_ll8 (input clk, input reset, input clear, input [35:0] f36_data, input f36_src_rdy_i, output f36_dst_rdy_o, output [7:0] ll_data, output ll_sof, output ll_eof, output ll_src_rdy, input ll_dst_rdy, output [31:0] debug); // Shortfifo on input to guarantee no deadlock wire [35:0] f36_data_int; wire f36_src_rdy_int, f36_dst_rdy_int; reg [7:0] ll_data_int; wire ll_sof_int, ll_eof_int, ll_src_rdy_int, ll_dst_rdy_int; fifo_short #(.WIDTH(36)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f36_data), .src_rdy_i(f36_src_rdy_i), .dst_rdy_o(f36_dst_rdy_o), .dataout(f36_data_int), .src_rdy_o(f36_src_rdy_int), .dst_rdy_i(f36_dst_rdy_int), .space(),.occupied() ); // Actual fifo36 to ll8, can deadlock if not connected to shortfifo wire [1:0] f36_occ_int = f36_data_int[35:34]; wire f36_sof_int = f36_data_int[32]; wire f36_eof_int = f36_data_int[33]; wire advance, end_early; reg [1:0] state; assign debug = {29'b0,state}; always @(posedge clk) if(reset) state <= 0; else if(advance) if(ll_eof_int) state <= 0; else state <= state + 1; always @* case(state) 0 : ll_data_int = f36_data_int[31:24]; 1 : ll_data_int = f36_data_int[23:16]; 2 : ll_data_int = f36_data_int[15:8]; 3 : ll_data_int = f36_data_int[7:0]; default : ll_data_int = f36_data_int[31:24]; endcase // case (state) assign ll_sof_int = (state==0) & f36_sof_int; assign ll_eof_int = f36_eof_int & (((state==0)&(f36_occ_int==1)) | ((state==1)&(f36_occ_int==2)) | ((state==2)&(f36_occ_int==3)) | (state==3)); assign ll_src_rdy_int = f36_src_rdy_int; assign advance = ll_src_rdy_int & ll_dst_rdy_int; assign f36_dst_rdy_int= advance & ((state==3)|ll_eof_int); // Short FIFO on output to guarantee no deadlock ll8_shortfifo tail_fifo (.clk(clk), .reset(reset), .clear(clear), .datain(ll_data_int), .sof_i(ll_sof_int), .eof_i(ll_eof_int), .error_i(0), .src_rdy_i(ll_src_rdy_int), .dst_rdy_o(ll_dst_rdy_int), .dataout(ll_data), .sof_o(ll_sof), .eof_o(ll_eof), .error_o(), .src_rdy_o(ll_src_rdy), .dst_rdy_i(ll_dst_rdy)); endmodule // fifo36_to_ll8 uhd-3.5.5/fpga/usrp2/fifo/fifo72_to_fifo36.v000066400000000000000000000057431224274632000203730ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Parameter LE tells us if we are little-endian. // Little-endian means send lower 16 bits first. // Default is big endian (network order), send upper bits first. module fifo72_to_fifo36 #(parameter LE=0) (input clk, input reset, input clear, input [71:0] f72_datain, input f72_src_rdy_i, output f72_dst_rdy_o, output [35:0] f36_dataout, output f36_src_rdy_o, input f36_dst_rdy_i ); wire [35:0] f36_data_int; wire f36_src_rdy_int, f36_dst_rdy_int; wire [71:0] f72_data_int; wire f72_src_rdy_int, f72_dst_rdy_int; // Shortfifo on input to guarantee no deadlock fifo_short #(.WIDTH(72)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f72_datain), .src_rdy_i(f72_src_rdy_i), .dst_rdy_o(f72_dst_rdy_o), .dataout(f72_data_int), .src_rdy_o(f72_src_rdy_int), .dst_rdy_i(f72_dst_rdy_int), .space(),.occupied() ); // Main fifo72_to_fifo36, needs shortfifos to guarantee no deadlock wire [2:0] f72_occ_int = f72_data_int[68:66]; wire f72_sof_int = f72_data_int[64]; wire f72_eof_int = f72_data_int[65]; reg phase; wire half_line = f72_eof_int & ( (f72_occ_int==1)|(f72_occ_int==2)|(f72_occ_int==3)|(f72_occ_int==4) ); assign f36_data_int[31:0] = (LE ^ phase) ? f72_data_int[31:0] : f72_data_int[63:32]; assign f36_data_int[32] = phase ? 0 : f72_sof_int; assign f36_data_int[33] = phase ? f72_eof_int : half_line; assign f36_data_int[35:34] = f36_data_int[33] ? f72_occ_int[1:0] : 2'b00; assign f36_src_rdy_int = f72_src_rdy_int; assign f72_dst_rdy_int = (phase | half_line) & f36_dst_rdy_int; wire f36_xfer = f36_src_rdy_int & f36_dst_rdy_int; wire f72_xfer = f72_src_rdy_int & f72_dst_rdy_int; always @(posedge clk) if(reset) phase <= 0; else if(f72_xfer) phase <= 0; else if(f36_xfer) phase <= 1; // Shortfifo on output to guarantee no deadlock fifo_short #(.WIDTH(36)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f36_data_int), .src_rdy_i(f36_src_rdy_int), .dst_rdy_o(f36_dst_rdy_int), .dataout(f36_dataout), .src_rdy_o(f36_src_rdy_o), .dst_rdy_i(f36_dst_rdy_i), .space(),.occupied() ); endmodule // fifo72_to_fifo36 uhd-3.5.5/fpga/usrp2/fifo/fifo_19to36_tb.v000066400000000000000000000056541224274632000200570ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo_tb(); reg clk = 0; reg rst = 1; reg clear = 0; initial #1000 rst = 0; always #50 clk = ~clk; reg [18:0] f19a; wire [18:0] f19b, f19c, f19d; wire [35:0] f36a, f36b; reg f19a_sr = 0; wire f19b_sr, f19c_sr, f19d_sr, f36a_sr, f36b_sr; wire f19a_dr, f19b_dr, f19c_dr, f19d_dr, f36a_dr, f36b_dr; fifo_short #(.WIDTH(19)) fifo_short1 (.clk(clk),.reset(rst),.clear(clear), .datain(f19a),.src_rdy_i(f19a_sr),.dst_rdy_o(f19a_dr), .dataout(f19b),.src_rdy_o(f19b_sr),.dst_rdy_i(f19b_dr) ); fifo19_to_fifo36 fifo19_to_fifo36 (.clk(clk),.reset(rst),.clear(clear), .f19_datain(f19b),.f19_src_rdy_i(f19b_sr),.f19_dst_rdy_o(f19b_dr), .f36_dataout(f36a),.f36_src_rdy_o(f36a_sr),.f36_dst_rdy_i(f36a_dr) ); fifo_short #(.WIDTH(36)) fifo_short2 (.clk(clk),.reset(rst),.clear(clear), .datain(f36a),.src_rdy_i(f36a_sr),.dst_rdy_o(f36a_dr), .dataout(f36b),.src_rdy_o(f36b_sr),.dst_rdy_i(f36b_dr) ); fifo36_to_fifo19 fifo36_to_fifo19 (.clk(clk),.reset(rst),.clear(clear), .f36_datain(f36b),.f36_src_rdy_i(f36b_sr),.f36_dst_rdy_o(f36b_dr), .f19_dataout(f19c),.f19_src_rdy_o(f19c_sr),.f19_dst_rdy_i(f19c_dr) ); fifo_short #(.WIDTH(19)) fifo_short3 (.clk(clk),.reset(rst),.clear(clear), .datain(f19c),.src_rdy_i(f19c_sr),.dst_rdy_o(f19c_dr), .dataout(f19d),.src_rdy_o(f19d_sr),.dst_rdy_i(f19d_dr) ); assign f19d_dr = 1; always @(posedge clk) if(f19a_sr & f19a_dr) $display("18IN: %h", f19a); always @(posedge clk) if(f19d_sr & f19d_dr) $display(" 18OUT: %h", f19d); always @(posedge clk) if(f36b_sr & f36b_dr) $display(" 36: %h", f36b); initial $dumpfile("fifo_tb.vcd"); initial $dumpvars(0,fifo_tb); initial begin @(negedge rst); @(posedge clk); repeat (2) begin f19a <= 19'h1_AA01; f19a_sr <= 1; @(posedge clk); f19a <= 19'h0_AA02; repeat (4) begin @(posedge clk); f19a <= f19a + 1; end f19a[18:16] <= 3'b010; @(posedge clk); f19a_sr <= 0; f19a <= 19'h7_FFFF; @(posedge clk); end #20000 $finish; end endmodule // longfifo_tb uhd-3.5.5/fpga/usrp2/fifo/fifo_2clock.v000066400000000000000000000121041224274632000175660ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // FIXME ignores the AWIDTH (fifo size) parameter module fifo_2clock #(parameter WIDTH=36, SIZE=6) (input wclk, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, output [15:0] space, input rclk, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, output [15:0] occupied, input arst); wire [SIZE:0] level_rclk, level_wclk; // xilinx adds an extra bit if you ask for accurate levels wire full, empty, write, read; assign dst_rdy_o = ~full; assign src_rdy_o = ~empty; assign write = src_rdy_i & dst_rdy_o; assign read = src_rdy_o & dst_rdy_i; generate if((WIDTH <= 36) && (WIDTH > 19)) begin wire [35:0] data_in_wide, data_out_wide; assign data_in_wide[WIDTH-1:0] = datain; assign dataout = data_out_wide[WIDTH-1:0]; if(SIZE==9) fifo_xlnx_512x36_2clk fifo_xlnx_512x36_2clk (.rst(arst), .wr_clk(wclk),.din(data_in_wide),.full(full),.wr_en(write),.wr_data_count(level_wclk), .rd_clk(rclk),.dout(data_out_wide),.empty(empty),.rd_en(read),.rd_data_count(level_rclk) ); else if(SIZE==11) fifo_xlnx_2Kx36_2clk fifo_xlnx_2Kx36_2clk (.rst(arst), .wr_clk(wclk),.din(data_in_wide),.full(full),.wr_en(write),.wr_data_count(level_wclk), .rd_clk(rclk),.dout(data_out_wide),.empty(empty),.rd_en(read),.rd_data_count(level_rclk) ); else if(SIZE==6) fifo_xlnx_64x36_2clk fifo_xlnx_64x36_2clk (.rst(arst), .wr_clk(wclk),.din(data_in_wide),.full(full),.wr_en(write),.wr_data_count(level_wclk), .rd_clk(rclk),.dout(data_out_wide),.empty(empty),.rd_en(read),.rd_data_count(level_rclk) ); else fifo_xlnx_512x36_2clk fifo_xlnx_512x36_2clk (.rst(arst), .wr_clk(wclk),.din(data_in_wide),.full(full),.wr_en(write),.wr_data_count(level_wclk), .rd_clk(rclk),.dout(data_out_wide),.empty(empty),.rd_en(read),.rd_data_count(level_rclk) ); end else if((WIDTH <= 19) && (SIZE <= 4)) begin wire [18:0] data_in_wide, data_out_wide; assign data_in_wide[WIDTH-1:0] = datain; assign dataout = data_out_wide[WIDTH-1:0]; fifo_xlnx_16x19_2clk fifo_xlnx_16x19_2clk (.rst(arst), .wr_clk(wclk),.din(data_in_wide),.full(full),.wr_en(write),.wr_data_count(level_wclk), .rd_clk(rclk),.dout(data_out_wide),.empty(empty),.rd_en(read),.rd_data_count(level_rclk) ); end endgenerate assign occupied = {{(16-SIZE-1){1'b0}},level_rclk}; assign space = ((1<. // module fifo_2clock_cascade #(parameter WIDTH=32, SIZE=9) (input wclk, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, output [15:0] space, output [15:0] short_space, input rclk, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, output [15:0] occupied, output [15:0] short_occupied, input arst); wire [WIDTH-1:0] data_int1, data_int2; wire src_rdy_int1, src_rdy_int2, dst_rdy_int1, dst_rdy_int2; wire [SIZE-1:0] level_wclk, level_rclk; wire [4:0] s1_space, s1_occupied, s2_space, s2_occupied; wire [15:0] l_space, l_occupied; fifo_short #(.WIDTH(WIDTH)) shortfifo (.clk(wclk), .reset(arst), .clear(0), .datain(datain), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .dataout(data_int1), .src_rdy_o(src_rdy_int1), .dst_rdy_i(dst_rdy_int1), .space(s1_space), .occupied(s1_occupied) ); fifo_2clock #(.WIDTH(WIDTH),.SIZE(SIZE)) fifo_2clock (.wclk(wclk), .datain(data_int1), .src_rdy_i(src_rdy_int1), .dst_rdy_o(dst_rdy_int1), .space(l_space), .rclk(rclk), .dataout(data_int2), .src_rdy_o(src_rdy_int2), .dst_rdy_i(dst_rdy_int2), .occupied(l_occupied), .arst(arst) ); fifo_short #(.WIDTH(WIDTH)) shortfifo2 (.clk(rclk), .reset(arst), .clear(0), .datain(data_int2), .src_rdy_i(src_rdy_int2), .dst_rdy_o(dst_rdy_int2), .dataout(dataout), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .space(s2_space), .occupied(s2_occupied)); // Be conservative -- Only advertise space from input side of fifo, occupied from output side assign space = {11'b0,s1_space} + l_space; assign occupied = {11'b0,s2_occupied} + l_occupied; // For the fifo_extram, we only want to know the immediately adjacent space assign short_space = {11'b0,s1_space}; assign short_occupied = {11'b0,s2_occupied}; endmodule // fifo_2clock_cascade uhd-3.5.5/fpga/usrp2/fifo/fifo_cascade.v000066400000000000000000000047741224274632000200120ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // This FIFO exists to provide an intermediate point for the data on its // long trek from one RAM (in the buffer pool) to another (in the longfifo) // The shortfifo is more flexible in its placement since it is based on // distributed RAM // This one has the shortfifo on both the in and out sides. module fifo_cascade #(parameter WIDTH=32, SIZE=9) (input clk, input reset, input clear, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, output [15:0] space, output [15:0] occupied); wire [WIDTH-1:0] data_int, data_int2; wire src_rdy_1, dst_rdy_1, src_rdy_2, dst_rdy_2; wire [4:0] s1_space, s1_occupied, s2_space, s2_occupied; wire [15:0] l_space, l_occupied; fifo_short #(.WIDTH(WIDTH)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(datain), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .dataout(data_int), .src_rdy_o(src_rdy_1), .dst_rdy_i(dst_rdy_1), .space(s1_space),.occupied(s1_occupied) ); fifo_long #(.WIDTH(WIDTH),.SIZE(SIZE)) middle_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(data_int), .src_rdy_i(src_rdy_1), .dst_rdy_o(dst_rdy_1), .dataout(data_int2), .src_rdy_o(src_rdy_2), .dst_rdy_i(dst_rdy_2), .space(l_space),.occupied(l_occupied) ); fifo_short #(.WIDTH(WIDTH)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(data_int2), .src_rdy_i(src_rdy_2), .dst_rdy_o(dst_rdy_2), .dataout(dataout), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .space(s2_space),.occupied(s2_occupied) ); assign space = {11'b0,s1_space} + {11'b0,s2_space} + l_space; assign occupied = {11'b0,s1_occupied} + {11'b0,s2_occupied} + l_occupied; endmodule // cascadefifo2 uhd-3.5.5/fpga/usrp2/fifo/fifo_long.v000066400000000000000000000075261224274632000173640ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // FIFO intended to be interchangeable with shortfifo, but // based on block ram instead of SRL16's // only one clock domain // Port A is write port, Port B is read port module fifo_long #(parameter WIDTH=32, SIZE=9) (input clk, input reset, input clear, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, output reg [15:0] space, output reg [15:0] occupied); wire write = src_rdy_i & dst_rdy_o; wire read = dst_rdy_i & src_rdy_o; wire full, empty; assign dst_rdy_o = ~full; assign src_rdy_o = ~empty; // Read side states localparam EMPTY = 0; localparam PRE_READ = 1; localparam READING = 2; reg [SIZE-1:0] wr_addr, rd_addr; reg [1:0] read_state; reg empty_reg, full_reg; always @(posedge clk) if(reset) wr_addr <= 0; else if(clear) wr_addr <= 0; else if(write) wr_addr <= wr_addr + 1; ram_2port #(.DWIDTH(WIDTH),.AWIDTH(SIZE)) ram (.clka(clk), .ena(1'b1), .wea(write), .addra(wr_addr), .dia(datain), .doa(), .clkb(clk), .enb((read_state==PRE_READ)|read), .web(0), .addrb(rd_addr), .dib({WIDTH{1'b1}}), .dob(dataout)); always @(posedge clk) if(reset) begin read_state <= EMPTY; rd_addr <= 0; empty_reg <= 1; end else if(clear) begin read_state <= EMPTY; rd_addr <= 0; empty_reg <= 1; end else case(read_state) EMPTY : if(write) begin //rd_addr <= wr_addr; read_state <= PRE_READ; end PRE_READ : begin read_state <= READING; empty_reg <= 0; rd_addr <= rd_addr + 1; end READING : if(read) if(rd_addr == wr_addr) begin empty_reg <= 1; if(write) read_state <= PRE_READ; else read_state <= EMPTY; end else rd_addr <= rd_addr + 1; endcase // case(read_state) wire [SIZE-1:0] dont_write_past_me = rd_addr - 3; wire becoming_full = wr_addr == dont_write_past_me; always @(posedge clk) if(reset) full_reg <= 0; else if(clear) full_reg <= 0; else if(read & ~write) full_reg <= 0; //else if(write & ~read & (wr_addr == (rd_addr-3))) else if(write & ~read & becoming_full) full_reg <= 1; //assign empty = (read_state != READING); assign empty = empty_reg; // assign full = ((rd_addr - 1) == wr_addr); assign full = full_reg; ////////////////////////////////////////////// // space and occupied are for diagnostics only // not guaranteed exact localparam NUMLINES = (1<. // module fifo_pacer (input clk, input reset, input [7:0] rate, input enable, input src1_rdy_i, output dst1_rdy_o, output src2_rdy_o, input dst2_rdy_i, output underrun, overrun); wire strobe; cic_strober strober (.clock(clk), .reset(reset), .enable(enable), .rate(rate), .strobe_fast(1), .strobe_slow(strobe)); wire all_ready = src1_rdy_i & dst2_rdy_i; assign dst1_rdy_o = all_ready & strobe; assign src2_rdy_o = dst1_rdy_o; assign underrun = strobe & ~src1_rdy_i; assign overrun = strobe & ~dst2_rdy_i; endmodule // fifo_pacer uhd-3.5.5/fpga/usrp2/fifo/fifo_short.v000066400000000000000000000051451224274632000175570ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo_short #(parameter WIDTH=32) (input clk, input reset, input clear, input [WIDTH-1:0] datain, input src_rdy_i, output dst_rdy_o, output [WIDTH-1:0] dataout, output src_rdy_o, input dst_rdy_i, output reg [4:0] space, output reg [4:0] occupied); reg full, empty; wire write = src_rdy_i & dst_rdy_o; wire read = dst_rdy_i & src_rdy_o; assign dst_rdy_o = ~full; assign src_rdy_o = ~empty; reg [3:0] a; genvar i; generate for (i=0;i 00 = all 4 bytes 01 = 1 byte 10 = 2 bytes 11 = 3 bytes fifo36 --> {OCC[1:0],EOP,SOP,DATA[31:0]} OCC same as buffer interface fifo19 --> {OCC,EOP,SOP,DATA[15:0]} Doesn't fit well into BRAM, dist RAM ok OCC = 1 means last word is half full = 0 means last word is full fifo18 --> {EOP,SOP,DATA[15:0]} No half-word capability? Should we drop sop instead? Control Wires - Data into FIFO SRC_RDY_i Upstream has data for me DST_RDY_o I have space Transfer occurs if SRC_RDI_i && DST_RDY_o Control Wires - Data out of FIFO SRC_RDY_o I have data for downstream DST_RDY_i Downstream has space Transfer occurs if SRC_RDI_o && DST_RDY_i uhd-3.5.5/fpga/usrp2/fifo/fifo_tb.v000066400000000000000000000041731224274632000170250ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo_tb(); reg clk = 0; reg rst = 1; reg clear = 0; initial #1000 rst = 0; always #50 clk = ~clk; reg [31:0] f36_data = 0; reg [1:0] f36_occ = 0; reg f36_sof = 0, f36_eof = 0; reg f36_src_rdy; wire f36_dst_rdy; wire [7:0] ll_data; wire ll_src_rdy, ll_dst_rdy, ll_sof, ll_eof; wire [35:0] err_dat; wire err_src_rdy, err_dst_rdy; fifo36_to_ll8 fifo36_to_ll8 (.clk(clk),.reset(rst),.clear(clear), .f36_data({f36_occ,f36_eof,f36_sof,f36_data}),.f36_src_rdy_i(f36_src_rdy),.f36_dst_rdy_o(f36_dst_rdy), .ll_data(ll_data),.ll_sof(ll_sof),.ll_eof(ll_eof), .ll_src_rdy(ll_src_rdy),.ll_dst_rdy(ll_dst_rdy)); assign ll_dst_rdy = 1; always @(posedge clk) if(ll_src_rdy) $display("LL: SOF %d, EOF %d, DAT %x",ll_sof,ll_eof,ll_data); initial $dumpfile("fifo_tb.vcd"); initial $dumpvars(0,fifo_tb); initial begin @(negedge rst); @(posedge clk); @(posedge clk); @(posedge clk); @(posedge clk); f36_src_rdy <= 1; {f36_occ,f36_eof,f36_sof,f36_data} <= { 2'b00,1'b0,1'b1,32'h00010203}; @(posedge clk); {f36_occ,f36_eof,f36_sof,f36_data} <= { 2'b00,1'b0,1'b0,32'h04050607}; @(posedge clk); {f36_occ,f36_eof,f36_sof,f36_data} <= { 2'b00,1'b0,1'b0,32'h08090a0b}; @(posedge clk); {f36_occ,f36_eof,f36_sof,f36_data} <= { 2'b11,1'b1,1'b0,32'h0c0d0e0f}; @(posedge clk); f36_src_rdy <= 0; end initial #4000 $finish; endmodule // longfifo_tb uhd-3.5.5/fpga/usrp2/fifo/ll8_shortfifo.v000066400000000000000000000023541224274632000201760ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ll8_shortfifo (input clk, input reset, input clear, input [7:0] datain, input sof_i, input eof_i, input error_i, input src_rdy_i, output dst_rdy_o, output [7:0] dataout, output sof_o, output eof_o, output error_o, output src_rdy_o, input dst_rdy_i); fifo_short #(.WIDTH(11)) fifo_short (.clk(clk), .reset(reset), .clear(clear), .datain({error_i,eof_i,sof_i,datain}), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .dataout({error_o,eof_o,sof_o,dataout}), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); endmodule // ll8_shortfifo uhd-3.5.5/fpga/usrp2/fifo/ll8_to_fifo19.v000066400000000000000000000066751224274632000200040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ll8_to_fifo19 (input clk, input reset, input clear, input [7:0] ll_data, input ll_sof, input ll_eof, input ll_src_rdy, output ll_dst_rdy, output [18:0] f19_data, output f19_src_rdy_o, input f19_dst_rdy_i ); // Short FIFO on input to guarantee no deadlock wire [7:0] ll_data_int; wire ll_sof_int, ll_eof_int, ll_src_rdy_int, ll_dst_rdy_int; ll8_shortfifo head_fifo (.clk(clk), .reset(reset), .clear(clear), .datain(ll_data), .sof_i(ll_sof), .eof_i(ll_eof), .error_i(0), .src_rdy_i(ll_src_rdy), .dst_rdy_o(ll_dst_rdy), .dataout(ll_data_int), .sof_o(ll_sof_int), .eof_o(ll_eof_int), .error_o(), .src_rdy_o(ll_src_rdy_int), .dst_rdy_i(ll_dst_rdy_int)); // Actual ll8_to_fifo19 which could deadlock if not connected to a shortfifo localparam XFER_EMPTY = 0; localparam XFER_HALF = 1; localparam XFER_HALF_WRITE = 3; wire [18:0] f19_data_int; wire f19_sof_int, f19_eof_int, f19_occ_int, f19_src_rdy_int, f19_dst_rdy_int; wire xfer_out = f19_src_rdy_int & f19_dst_rdy_int; wire xfer_in = ll_src_rdy_int & ll_dst_rdy_int; reg hold_sof; reg [1:0] state; reg [7:0] hold_reg; always @(posedge clk) if(ll_src_rdy_int & (state==XFER_EMPTY)) hold_reg <= ll_data_int; always @(posedge clk) if(ll_sof_int & (state==XFER_EMPTY)) hold_sof <= 1; else if(xfer_out) hold_sof <= 0; always @(posedge clk) if(reset | clear) state <= XFER_EMPTY; else case(state) XFER_EMPTY : if(ll_src_rdy_int) if(ll_eof_int) state <= XFER_HALF_WRITE; else state <= XFER_HALF; XFER_HALF : if(ll_src_rdy_int & f19_dst_rdy_int) state <= XFER_EMPTY; XFER_HALF_WRITE : if(f19_dst_rdy_int) state <= XFER_EMPTY; endcase // case (state) assign ll_dst_rdy_int = (state==XFER_EMPTY) | ((state==XFER_HALF)&f19_dst_rdy_int); assign f19_src_rdy_int= (state==XFER_HALF_WRITE) | ((state==XFER_HALF)&ll_src_rdy_int); assign f19_sof_int = hold_sof | (ll_sof_int & (state==XFER_HALF)); assign f19_eof_int = (state == XFER_HALF_WRITE) | ll_eof_int; assign f19_occ_int = (state == XFER_HALF_WRITE); assign f19_data_int = {f19_occ_int,f19_eof_int,f19_sof_int,hold_reg,ll_data_int}; // Shortfifo on output to guarantee no deadlock fifo_short #(.WIDTH(19)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(f19_data_int), .src_rdy_i(f19_src_rdy_int), .dst_rdy_o(f19_dst_rdy_int), .dataout(f19_data), .src_rdy_o(f19_src_rdy_o), .dst_rdy_i(f19_dst_rdy_i), .space(),.occupied() ); endmodule // ll8_to_fifo19 uhd-3.5.5/fpga/usrp2/fifo/ll8_to_fifo36.v000066400000000000000000000053571224274632000177770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ll8_to_fifo36 (input clk, input reset, input clear, input [7:0] ll_data, input ll_sof_n, input ll_eof_n, input ll_src_rdy_n, output ll_dst_rdy_n, output [35:0] f36_data, output f36_src_rdy_o, input f36_dst_rdy_i ); wire f36_write = f36_src_rdy_o & f36_dst_rdy_i; // Why anybody would use active low in an FPGA is beyond me... wire ll_sof = ~ll_sof_n; wire ll_eof = ~ll_eof_n; wire ll_src_rdy = ~ll_src_rdy_n; wire ll_dst_rdy; assign ll_dst_rdy_n = ~ll_dst_rdy; reg f36_sof, f36_eof; reg [1:0] f36_occ; reg [2:0] state; reg [7:0] dat0, dat1, dat2, dat3; always @(posedge clk) if(ll_src_rdy & ((state==0)|f36_write)) f36_sof <= ll_sof; always @(posedge clk) if(ll_src_rdy & ((state !=4)|f36_write)) f36_eof <= ll_eof; always @(posedge clk) if(ll_eof) f36_occ <= state[1:0] + 1; else f36_occ <= 0; always @(posedge clk) if(reset) state <= 0; else if(ll_src_rdy) case(state) 0 : if(ll_eof) state <= 4; else state <= 1; 1 : if(ll_eof) state <= 4; else state <= 2; 2 : if(ll_eof) state <= 4; else state <= 3; 3 : state <= 4; 4 : if(f36_dst_rdy_i) if(ll_eof) state <= 4; else state <= 1; endcase // case(state) else if(f36_write) state <= 0; always @(posedge clk) if(ll_src_rdy & (state==3)) dat3 <= ll_data; always @(posedge clk) if(ll_src_rdy & (state==2)) dat2 <= ll_data; always @(posedge clk) if(ll_src_rdy & (state==1)) dat1 <= ll_data; always @(posedge clk) if(ll_src_rdy & ((state==0) | f36_write)) dat0 <= ll_data; assign ll_dst_rdy = f36_dst_rdy_i | (state != 4); assign f36_data = {f36_occ,f36_eof,f36_sof,dat0,dat1,dat2,dat3}; // FIXME endianess assign f36_src_rdy_o = (state == 4); endmodule // ll8_to_fifo36 uhd-3.5.5/fpga/usrp2/fifo/packet32_tb.v000066400000000000000000000026151224274632000175150ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module packet32_tb(); wire [35:0] data; wire src_rdy, dst_rdy; wire clear = 0; reg clk = 0; reg reset = 1; always #10 clk <= ~clk; initial #1000 reset <= 0; initial $dumpfile("packet32_tb.vcd"); initial $dumpvars(0,packet32_tb); wire [31:0] total, crc_err, seq_err, len_err; packet_generator32 pkt_gen (.clk(clk), .reset(reset), .clear(clear), .data_o(data), .src_rdy_o(src_rdy), .dst_rdy_i(dst_rdy)); packet_verifier32 pkt_ver (.clk(clk), .reset(reset), .clear(clear), .data_i(data), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); endmodule // packet32_tb uhd-3.5.5/fpga/usrp2/fifo/packet_dispatcher36_x3.v000066400000000000000000000253771224274632000216660ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // Packet dispatcher with fifo36 interface and 3 outputs. // // The packet dispatcher expects 2-byte padded ethernet frames. // The frames will be inspected at ethernet, IPv4, UDP, and VRT layers. // Packets are dispatched into the following streams: // * tx dsp stream // * to cpu stream // * to external stream // * to both cpu and external // // The following registers are used for dispatcher control: // * base + 0 = this ipv4 address (32 bits) // * base + 1 = udp dst port (lower 16 bits) // module packet_dispatcher36_x3 #( parameter BASE = 0 ) ( //clocking and reset interface: input clk, input rst, input clr, //setting register interface: input set_stb, input [7:0] set_addr, input [31:0] set_data, //input stream interfaces: input [35:0] com_inp_data, input com_inp_valid, output com_inp_ready, //output stream interfaces: output [35:0] ext_out_data, output ext_out_valid, input ext_out_ready, output [35:0] dsp_out_data, output dsp_out_valid, input dsp_out_ready, output [35:0] cpu_out_data, output cpu_out_valid, input cpu_out_ready ); //setting register to program the IP address wire [31:0] my_ip_addr; setting_reg #(.my_addr(BASE+0)) sreg_ip_addr( .clk(clk),.rst(rst), .strobe(set_stb),.addr(set_addr),.in(set_data), .out(my_ip_addr),.changed() ); //setting register to program the UDP DSP port wire [15:0] dsp_udp_port; setting_reg #(.my_addr(BASE+1), .width(16)) sreg_data_port( .clk(clk),.rst(rst), .strobe(set_stb),.addr(set_addr),.in(set_data), .out(dsp_udp_port),.changed() ); //////////////////////////////////////////////////////////////////// // Communication input inspector // - inspect com input and send it to DSP, EXT, CPU, or BOTH //////////////////////////////////////////////////////////////////// localparam PD_STATE_READ_COM_PRE = 0; localparam PD_STATE_READ_COM = 1; localparam PD_STATE_WRITE_REGS = 2; localparam PD_STATE_WRITE_LIVE = 3; localparam PD_DEST_DSP = 0; localparam PD_DEST_EXT = 1; localparam PD_DEST_CPU = 2; localparam PD_DEST_BOF = 3; localparam PD_MAX_NUM_DREGS = 13; //padded_eth + ip + udp + seq + vrt_hdr localparam PD_DREGS_DSP_OFFSET = 11; //offset to start dsp at //output inspector interfaces wire [35:0] pd_out_dsp_data; wire pd_out_dsp_valid; wire pd_out_dsp_ready; wire [35:0] pd_out_ext_data; wire pd_out_ext_valid; wire pd_out_ext_ready; wire [35:0] pd_out_cpu_data; wire pd_out_cpu_valid; wire pd_out_cpu_ready; wire [35:0] pd_out_bof_data; wire pd_out_bof_valid; wire pd_out_bof_ready; reg [1:0] pd_state; reg [1:0] pd_dest; reg [3:0] pd_dreg_count; //data registers to buffer headers wire [3:0] pd_dreg_count_next = pd_dreg_count + 1'b1; wire pd_dreg_counter_done = (pd_dreg_count_next == PD_MAX_NUM_DREGS)? 1'b1 : 1'b0; reg [35:0] pd_dregs [PD_MAX_NUM_DREGS-1:0]; reg is_eth_dst_mac_bcast; reg is_eth_type_ipv4; reg is_eth_ipv4_proto_udp; reg is_eth_ipv4_dst_addr_here; reg is_eth_udp_dst_port_here; wire is_vrt_size_zero = (com_inp_data[15:0] == 16'h0); //needed on the same cycle, so it cant be registered //Inspector output flags special case: //Inject SOF into flags at first DSP line. wire [3:0] pd_out_flags = ( (pd_dreg_count == PD_DREGS_DSP_OFFSET) && (pd_dest == PD_DEST_DSP) )? 4'b0001 : pd_dregs[pd_dreg_count][35:32]; //The communication inspector ouput data and valid signals: //Mux between com input and data registers based on the state. wire [35:0] pd_out_data = (pd_state == PD_STATE_WRITE_REGS)? {pd_out_flags, pd_dregs[pd_dreg_count][31:0]} : com_inp_data ; wire pd_out_valid = (pd_state == PD_STATE_WRITE_REGS)? 1'b1 : ( (pd_state == PD_STATE_WRITE_LIVE)? com_inp_valid : ( 1'b0)); //The communication inspector ouput ready signal: //Mux between the various destination ready signals. wire pd_out_ready = (pd_dest == PD_DEST_DSP)? pd_out_dsp_ready : ( (pd_dest == PD_DEST_EXT)? pd_out_ext_ready : ( (pd_dest == PD_DEST_CPU)? pd_out_cpu_ready : ( (pd_dest == PD_DEST_BOF)? pd_out_bof_ready : ( 1'b0)))); //Always connected output data lines. assign pd_out_dsp_data = pd_out_data; assign pd_out_ext_data = pd_out_data; assign pd_out_cpu_data = pd_out_data; assign pd_out_bof_data = pd_out_data; //Destination output valid signals: //Comes from inspector valid when destination is selected, and otherwise low. assign pd_out_dsp_valid = (pd_dest == PD_DEST_DSP)? pd_out_valid : 1'b0; assign pd_out_ext_valid = (pd_dest == PD_DEST_EXT)? pd_out_valid : 1'b0; assign pd_out_cpu_valid = (pd_dest == PD_DEST_CPU)? pd_out_valid : 1'b0; assign pd_out_bof_valid = (pd_dest == PD_DEST_BOF)? pd_out_valid : 1'b0; //The communication inspector ouput ready signal: //Always ready when storing to data registers, //comes from inspector ready output when live, //and otherwise low. assign com_inp_ready = (pd_state == PD_STATE_READ_COM_PRE) ? 1'b1 : ( (pd_state == PD_STATE_READ_COM) ? 1'b1 : ( (pd_state == PD_STATE_WRITE_LIVE) ? pd_out_ready : ( 1'b0))); //inspect the incoming data and mark register booleans always @(posedge clk) if (com_inp_ready & com_inp_valid) begin case(pd_dreg_count) 0: begin is_eth_dst_mac_bcast <= (com_inp_data[15:0] == 16'hffff); end 1: begin is_eth_dst_mac_bcast <= is_eth_dst_mac_bcast && (com_inp_data[31:0] == 32'hffffffff); end 3: begin is_eth_type_ipv4 <= (com_inp_data[15:0] == 16'h800); end 6: begin is_eth_ipv4_proto_udp <= (com_inp_data[23:16] == 8'h11); end 8: begin is_eth_ipv4_dst_addr_here <= (com_inp_data[31:0] == my_ip_addr); end 9: begin is_eth_udp_dst_port_here <= (com_inp_data[15:0] == dsp_udp_port); end endcase //pd_dreg_count end always @(posedge clk) if(rst | clr) begin pd_state <= PD_STATE_READ_COM_PRE; pd_dreg_count <= 0; end else begin case(pd_state) PD_STATE_READ_COM_PRE: begin if (com_inp_ready & com_inp_valid & com_inp_data[32]) begin pd_state <= PD_STATE_READ_COM; pd_dreg_count <= pd_dreg_count_next; pd_dregs[pd_dreg_count] <= com_inp_data; end end PD_STATE_READ_COM: begin if (com_inp_ready & com_inp_valid) begin pd_dregs[pd_dreg_count] <= com_inp_data; if (pd_dreg_counter_done | com_inp_data[33]) begin pd_state <= PD_STATE_WRITE_REGS; pd_dreg_count <= 0; //---------- begin inspection decision -----------// //EOF or bcast or not IPv4 or not UDP: if ( com_inp_data[33] || is_eth_dst_mac_bcast || ~is_eth_type_ipv4 || ~is_eth_ipv4_proto_udp ) begin pd_dest <= PD_DEST_BOF; end //not my IP address: else if (~is_eth_ipv4_dst_addr_here) begin pd_dest <= PD_DEST_EXT; end //UDP data port and VRT: else if (is_eth_udp_dst_port_here && ~is_vrt_size_zero) begin pd_dest <= PD_DEST_DSP; pd_dreg_count <= PD_DREGS_DSP_OFFSET; end //other: else begin pd_dest <= PD_DEST_CPU; end //---------- end inspection decision -------------// end else begin pd_dreg_count <= pd_dreg_count_next; end end end PD_STATE_WRITE_REGS: begin if (pd_out_ready & pd_out_valid) begin if (pd_out_data[33]) begin pd_state <= PD_STATE_READ_COM_PRE; pd_dreg_count <= 0; end else if (pd_dreg_counter_done) begin pd_state <= PD_STATE_WRITE_LIVE; pd_dreg_count <= 0; end else begin pd_dreg_count <= pd_dreg_count_next; end end end PD_STATE_WRITE_LIVE: begin if (pd_out_ready & pd_out_valid & pd_out_data[33]) begin pd_state <= PD_STATE_READ_COM_PRE; end end endcase //pd_state end //connect this fast-path signals directly to the DSP out assign dsp_out_data = pd_out_dsp_data; assign dsp_out_valid = pd_out_dsp_valid; assign pd_out_dsp_ready = dsp_out_ready; //////////////////////////////////////////////////////////////////// // Splitter and output muxes for the bof packets // - split the bof packets into two streams // - mux split packets into cpu out and ext out //////////////////////////////////////////////////////////////////// //dummy signals to join the the splitter and muxes below wire [35:0] _split_to_ext_data, _split_to_cpu_data; wire _split_to_ext_valid, _split_to_cpu_valid; wire _split_to_ext_ready, _split_to_cpu_ready; splitter36 bof_out_splitter( .clk(clk), .rst(rst), .clr(clr), .inp_data(pd_out_bof_data), .inp_valid(pd_out_bof_valid), .inp_ready(pd_out_bof_ready), .out0_data(_split_to_ext_data), .out0_valid(_split_to_ext_valid), .out0_ready(_split_to_ext_ready), .out1_data(_split_to_cpu_data), .out1_valid(_split_to_cpu_valid), .out1_ready(_split_to_cpu_ready) ); fifo36_mux ext_out_mux( .clk(clk), .reset(rst), .clear(clr), .data0_i(pd_out_ext_data), .src0_rdy_i(pd_out_ext_valid), .dst0_rdy_o(pd_out_ext_ready), .data1_i(_split_to_ext_data), .src1_rdy_i(_split_to_ext_valid), .dst1_rdy_o(_split_to_ext_ready), .data_o(ext_out_data), .src_rdy_o(ext_out_valid), .dst_rdy_i(ext_out_ready) ); fifo36_mux cpu_out_mux( .clk(clk), .reset(rst), .clear(clr), .data0_i(pd_out_cpu_data), .src0_rdy_i(pd_out_cpu_valid), .dst0_rdy_o(pd_out_cpu_ready), .data1_i(_split_to_cpu_data), .src1_rdy_i(_split_to_cpu_valid), .dst1_rdy_o(_split_to_cpu_ready), .data_o(cpu_out_data), .src_rdy_o(cpu_out_valid), .dst_rdy_i(cpu_out_ready) ); endmodule // packet_dispatcher36_x3 uhd-3.5.5/fpga/usrp2/fifo/packet_dispatcher36_x4.v000066400000000000000000000273401224274632000216570ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // Packet dispatcher with fifo36 interface and 4 outputs. // // The packet dispatcher expects 2-byte padded ethernet frames. // The frames will be inspected at ethernet, IPv4, UDP, and VRT layers. // Packets are dispatched into the following streams: // * tx dsp stream // * tx control stream // * to cpu stream // * to external stream // * to both cpu and external // // The following registers are used for dispatcher control: // * base + 0 = this ipv4 address (32 bits) // * base + 1 = udp control port (upper 16 bits), udp dsp port (lower 16 bits) // module packet_dispatcher36_x4 #( parameter BASE = 0 ) ( //clocking and reset interface: input clk, input rst, input clr, //setting register interface: input set_stb, input [7:0] set_addr, input [31:0] set_data, //input stream interfaces: input [35:0] com_inp_data, input com_inp_valid, output com_inp_ready, //output stream interfaces: output [35:0] ext_out_data, output ext_out_valid, input ext_out_ready, output [35:0] dsp_out_data, output dsp_out_valid, input dsp_out_ready, output [35:0] ctl_out_data, output ctl_out_valid, input ctl_out_ready, output [35:0] cpu_out_data, output cpu_out_valid, input cpu_out_ready ); //setting register to program the IP address wire [31:0] my_ip_addr; setting_reg #(.my_addr(BASE+0)) sreg_ip_addr( .clk(clk),.rst(rst), .strobe(set_stb),.addr(set_addr),.in(set_data), .out(my_ip_addr),.changed() ); //setting register to program the UDP DSP port wire [15:0] dsp_udp_port, ctl_udp_port; setting_reg #(.my_addr(BASE+1), .width(32)) sreg_data_port( .clk(clk),.rst(rst), .strobe(set_stb),.addr(set_addr),.in(set_data), .out({ctl_udp_port, dsp_udp_port}),.changed() ); //////////////////////////////////////////////////////////////////// // Communication input inspector // - inspect com input and send it to DSP, EXT, CPU, or BOTH //////////////////////////////////////////////////////////////////// localparam PD_STATE_READ_COM_PRE = 0; localparam PD_STATE_READ_COM = 1; localparam PD_STATE_WRITE_REGS = 2; localparam PD_STATE_WRITE_LIVE = 3; localparam PD_DEST_DSP = 0; localparam PD_DEST_EXT = 1; localparam PD_DEST_CPU = 2; localparam PD_DEST_BOF = 3; localparam PD_DEST_CTL = 4; localparam PD_MAX_NUM_DREGS = 13; //padded_eth + ip + udp + seq + vrt_hdr localparam PD_DREGS_DSP_OFFSET = 11; //offset to start dsp at //output inspector interfaces wire [35:0] pd_out_dsp_data; wire pd_out_dsp_valid; wire pd_out_dsp_ready; wire [35:0] pd_out_ext_data; wire pd_out_ext_valid; wire pd_out_ext_ready; wire [35:0] pd_out_cpu_data; wire pd_out_cpu_valid; wire pd_out_cpu_ready; wire [35:0] pd_out_bof_data; wire pd_out_bof_valid; wire pd_out_bof_ready; wire [35:0] pd_out_ctl_data; wire pd_out_ctl_valid; wire pd_out_ctl_ready; reg [1:0] pd_state; reg [2:0] pd_dest; reg [3:0] pd_dreg_count; //data registers to buffer headers wire [3:0] pd_dreg_count_next = pd_dreg_count + 1'b1; wire pd_dreg_counter_done = (pd_dreg_count_next == PD_MAX_NUM_DREGS)? 1'b1 : 1'b0; reg [35:0] pd_dregs [PD_MAX_NUM_DREGS-1:0]; reg is_eth_dst_mac_bcast; reg is_eth_type_ipv4; reg is_eth_ipv4_proto_udp; reg is_eth_ipv4_dst_addr_here; reg is_eth_udp_dsp_port_here; reg is_eth_udp_ctl_port_here; wire is_vrt_size_zero = (com_inp_data[15:0] == 16'h0); //needed on the same cycle, so it cant be registered //Inspector output flags special case: //Inject SOF into flags at first DSP line. wire [3:0] pd_out_flags = ( (pd_dreg_count == PD_DREGS_DSP_OFFSET) && (pd_dest == PD_DEST_DSP) )? 4'b0001 : pd_dregs[pd_dreg_count][35:32]; //The communication inspector ouput data and valid signals: //Mux between com input and data registers based on the state. wire [35:0] pd_out_data = (pd_state == PD_STATE_WRITE_REGS)? {pd_out_flags, pd_dregs[pd_dreg_count][31:0]} : com_inp_data ; wire pd_out_valid = (pd_state == PD_STATE_WRITE_REGS)? 1'b1 : ( (pd_state == PD_STATE_WRITE_LIVE)? com_inp_valid : ( 1'b0)); //The communication inspector ouput ready signal: //Mux between the various destination ready signals. wire pd_out_ready = (pd_dest == PD_DEST_DSP)? pd_out_dsp_ready : ( (pd_dest == PD_DEST_EXT)? pd_out_ext_ready : ( (pd_dest == PD_DEST_CPU)? pd_out_cpu_ready : ( (pd_dest == PD_DEST_BOF)? pd_out_bof_ready : ( (pd_dest == PD_DEST_CTL)? pd_out_ctl_ready : ( 1'b0))))); //Always connected output data lines. assign pd_out_dsp_data = pd_out_data; assign pd_out_ext_data = pd_out_data; assign pd_out_cpu_data = pd_out_data; assign pd_out_bof_data = pd_out_data; assign pd_out_ctl_data = pd_out_data; //Destination output valid signals: //Comes from inspector valid when destination is selected, and otherwise low. assign pd_out_dsp_valid = (pd_dest == PD_DEST_DSP)? pd_out_valid : 1'b0; assign pd_out_ext_valid = (pd_dest == PD_DEST_EXT)? pd_out_valid : 1'b0; assign pd_out_cpu_valid = (pd_dest == PD_DEST_CPU)? pd_out_valid : 1'b0; assign pd_out_bof_valid = (pd_dest == PD_DEST_BOF)? pd_out_valid : 1'b0; assign pd_out_ctl_valid = (pd_dest == PD_DEST_CTL)? pd_out_valid : 1'b0; //The communication inspector ouput ready signal: //Always ready when storing to data registers, //comes from inspector ready output when live, //and otherwise low. assign com_inp_ready = (pd_state == PD_STATE_READ_COM_PRE) ? 1'b1 : ( (pd_state == PD_STATE_READ_COM) ? 1'b1 : ( (pd_state == PD_STATE_WRITE_LIVE) ? pd_out_ready : ( 1'b0))); //inspect the incoming data and mark register booleans always @(posedge clk) if (com_inp_ready & com_inp_valid) begin case(pd_dreg_count) 0: begin is_eth_dst_mac_bcast <= (com_inp_data[15:0] == 16'hffff); end 1: begin is_eth_dst_mac_bcast <= is_eth_dst_mac_bcast && (com_inp_data[31:0] == 32'hffffffff); end 3: begin is_eth_type_ipv4 <= (com_inp_data[15:0] == 16'h800); end 6: begin is_eth_ipv4_proto_udp <= (com_inp_data[23:16] == 8'h11); end 8: begin is_eth_ipv4_dst_addr_here <= (com_inp_data[31:0] == my_ip_addr); end 9: begin is_eth_udp_dsp_port_here <= (com_inp_data[15:0] == dsp_udp_port); is_eth_udp_ctl_port_here <= (com_inp_data[15:0] == ctl_udp_port); end endcase //pd_dreg_count end always @(posedge clk) if(rst | clr) begin pd_state <= PD_STATE_READ_COM_PRE; pd_dreg_count <= 0; end else begin case(pd_state) PD_STATE_READ_COM_PRE: begin if (com_inp_ready & com_inp_valid & com_inp_data[32]) begin pd_state <= PD_STATE_READ_COM; pd_dreg_count <= pd_dreg_count_next; pd_dregs[pd_dreg_count] <= com_inp_data; end end PD_STATE_READ_COM: begin if (com_inp_ready & com_inp_valid) begin pd_dregs[pd_dreg_count] <= com_inp_data; if (pd_dreg_counter_done | com_inp_data[33]) begin pd_state <= PD_STATE_WRITE_REGS; pd_dreg_count <= 0; //---------- begin inspection decision -----------// //EOF or bcast or not IPv4 or not UDP: if ( com_inp_data[33] || is_eth_dst_mac_bcast || ~is_eth_type_ipv4 || ~is_eth_ipv4_proto_udp ) begin pd_dest <= PD_DEST_BOF; end //not my IP address: else if (~is_eth_ipv4_dst_addr_here) begin pd_dest <= PD_DEST_EXT; end //UDP control port and VRT: else if (is_eth_udp_ctl_port_here && ~is_vrt_size_zero) begin pd_dest <= PD_DEST_CTL; pd_dreg_count <= PD_DREGS_DSP_OFFSET; end //UDP data port and VRT: else if (is_eth_udp_dsp_port_here && ~is_vrt_size_zero) begin pd_dest <= PD_DEST_DSP; pd_dreg_count <= PD_DREGS_DSP_OFFSET; end //other: else begin pd_dest <= PD_DEST_CPU; end //---------- end inspection decision -------------// end else begin pd_dreg_count <= pd_dreg_count_next; end end end PD_STATE_WRITE_REGS: begin if (pd_out_ready & pd_out_valid) begin if (pd_out_data[33]) begin pd_state <= PD_STATE_READ_COM_PRE; pd_dreg_count <= 0; end else if (pd_dreg_counter_done) begin pd_state <= PD_STATE_WRITE_LIVE; pd_dreg_count <= 0; end else begin pd_dreg_count <= pd_dreg_count_next; end end end PD_STATE_WRITE_LIVE: begin if (pd_out_ready & pd_out_valid & pd_out_data[33]) begin pd_state <= PD_STATE_READ_COM_PRE; end end endcase //pd_state end //connect this fast-path signals directly to the DSP out assign dsp_out_data = pd_out_dsp_data; assign dsp_out_valid = pd_out_dsp_valid; assign pd_out_dsp_ready = dsp_out_ready; assign ctl_out_data = pd_out_ctl_data; assign ctl_out_valid = pd_out_ctl_valid; assign pd_out_ctl_ready = ctl_out_ready; //////////////////////////////////////////////////////////////////// // Splitter and output muxes for the bof packets // - split the bof packets into two streams // - mux split packets into cpu out and ext out //////////////////////////////////////////////////////////////////// //dummy signals to join the the splitter and muxes below wire [35:0] _split_to_ext_data, _split_to_cpu_data; wire _split_to_ext_valid, _split_to_cpu_valid; wire _split_to_ext_ready, _split_to_cpu_ready; splitter36 bof_out_splitter( .clk(clk), .rst(rst), .clr(clr), .inp_data(pd_out_bof_data), .inp_valid(pd_out_bof_valid), .inp_ready(pd_out_bof_ready), .out0_data(_split_to_ext_data), .out0_valid(_split_to_ext_valid), .out0_ready(_split_to_ext_ready), .out1_data(_split_to_cpu_data), .out1_valid(_split_to_cpu_valid), .out1_ready(_split_to_cpu_ready) ); fifo36_mux ext_out_mux( .clk(clk), .reset(rst), .clear(clr), .data0_i(pd_out_ext_data), .src0_rdy_i(pd_out_ext_valid), .dst0_rdy_o(pd_out_ext_ready), .data1_i(_split_to_ext_data), .src1_rdy_i(_split_to_ext_valid), .dst1_rdy_o(_split_to_ext_ready), .data_o(ext_out_data), .src_rdy_o(ext_out_valid), .dst_rdy_i(ext_out_ready) ); fifo36_mux cpu_out_mux( .clk(clk), .reset(rst), .clear(clr), .data0_i(pd_out_cpu_data), .src0_rdy_i(pd_out_cpu_valid), .dst0_rdy_o(pd_out_cpu_ready), .data1_i(_split_to_cpu_data), .src1_rdy_i(_split_to_cpu_valid), .dst1_rdy_o(_split_to_cpu_ready), .data_o(cpu_out_data), .src_rdy_o(cpu_out_valid), .dst_rdy_i(cpu_out_ready) ); endmodule // packet_dispatcher36_x3 uhd-3.5.5/fpga/usrp2/fifo/packet_generator.v000066400000000000000000000057451224274632000207400ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module packet_generator (input clk, input reset, input clear, output reg [7:0] data_o, output sof_o, output eof_o, input [127:0] header, output src_rdy_o, input dst_rdy_i); localparam len = 32'd2000; reg [31:0] state; reg [31:0] seq; reg [31:0] crc_out; wire calc_crc = src_rdy_o & dst_rdy_i & ~(state[31:2] == 30'h3FFF_FFFF); always @(posedge clk) if(reset | clear) seq <= 0; else if(eof_o & src_rdy_o & dst_rdy_i) seq <= seq + 1; always @(posedge clk) if(reset | clear) state <= 0; else if(src_rdy_o & dst_rdy_i) if(state == (len - 1)) state <= 32'hFFFF_FFFC; else state <= state + 1; always @* case(state) 0 : data_o <= len[31:24]; 1 : data_o <= len[23:16]; 2 : data_o <= len[15:8]; 3 : data_o <= len[7:0]; 4 : data_o <= seq[31:24]; 5 : data_o <= seq[23:16]; 6 : data_o <= seq[15:8]; 7 : data_o <= seq[7:0]; 8 : data_o <= header[7:0]; 9 : data_o <= header[15:8]; 10 : data_o <= header[23:16]; 11 : data_o <= header[31:24]; 12 : data_o <= header[39:32]; 13 : data_o <= header[47:40]; 14 : data_o <= header[55:48]; 15 : data_o <= header[63:56]; 16 : data_o <= header[71:64]; 17 : data_o <= header[79:72]; 18 : data_o <= header[87:80]; 19 : data_o <= header[95:88]; 20 : data_o <= header[103:96]; 21 : data_o <= header[111:104]; 22 : data_o <= header[119:112]; 23 : data_o <= header[127:120]; 32'hFFFF_FFFC : data_o <= crc_out[31:24]; 32'hFFFF_FFFD : data_o <= crc_out[23:16]; 32'hFFFF_FFFE : data_o <= crc_out[15:8]; 32'hFFFF_FFFF : data_o <= crc_out[7:0]; default : data_o <= state[7:0]; endcase // case (state) assign src_rdy_o = 1; assign sof_o = (state == 0); assign eof_o = (state == 32'hFFFF_FFFF); wire clear_crc = eof_o & src_rdy_o & dst_rdy_i; // crc crc(.clk(clk), .reset(reset), .clear(clear_crc), .data(data_o), // .calc(calc_crc), .crc_out(crc_out), .match()); always @(posedge clk) if(reset | clear | clear_crc) crc_out <= 0; else if(calc_crc) crc_out <= crc_out + data_o; endmodule // packet_generator uhd-3.5.5/fpga/usrp2/fifo/packet_generator32.v000066400000000000000000000026751224274632000211040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module packet_generator32 (input clk, input reset, input clear, input [127:0] header, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); wire [7:0] ll_data; wire ll_sof, ll_eof, ll_src_rdy, ll_dst_rdy_n; packet_generator pkt_gen (.clk(clk), .reset(reset), .clear(clear), .data_o(ll_data), .sof_o(ll_sof), .eof_o(ll_eof), .header(header), .src_rdy_o(ll_src_rdy), .dst_rdy_i(~ll_dst_rdy_n)); ll8_to_fifo36 ll8_to_f36 (.clk(clk), .reset(reset), .clear(clear), .ll_data(ll_data), .ll_sof_n(~ll_sof), .ll_eof_n(~ll_eof), .ll_src_rdy_n(~ll_src_rdy), .ll_dst_rdy_n(ll_dst_rdy_n), .f36_data(data_o), .f36_src_rdy_o(src_rdy_o), .f36_dst_rdy_i(dst_rdy_i)); endmodule // packet_generator32 uhd-3.5.5/fpga/usrp2/fifo/packet_padder36.v000066400000000000000000000117721224274632000203570ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // The packet padder 36 for use with RX VITA stream output. // Packet padder understands the concept of USB LUTs, // and will forward packets through the interface, // adding zero padding as needed to properly flush. // The padder will never write a packet across a LUT boundary. // When flushing, padder writes out zeros until the LUT boundary. // Requires that the input line0 be a VITA header, and SOF set. // Flush when the LUT is partially filled and timeout is reached, // or when the LUT is partially filled and the DSP is inactive. module packet_padder36 #( parameter BASE = 0, //default is 16K LUT parameter DEFAULT_LINES32 = 4096, //default about 1ms at 64MHz clock parameter DEFAULT_IDLE_CYC = 65536 ) ( input clk, input reset, //setting bus input set_stb, input [7:0] set_addr, input [31:0] set_data, //input interface input [35:0] data_i, input src_rdy_i, output dst_rdy_o, //output interface output [35:0] data_o, output src_rdy_o, input dst_rdy_i, input always_flush ); wire lut_lines_changed; wire [15:0] max_lut_lines32; setting_reg #(.my_addr(BASE+0),.width(16),.at_reset(DEFAULT_LINES32)) sr_num_lines( .clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr),.in(set_data), .out(max_lut_lines32),.changed(lut_lines_changed)); wire idle_cyc_changed; wire [17:0] idle_flush_cycles; setting_reg #(.my_addr(BASE+1),.width(18),.at_reset(DEFAULT_IDLE_CYC)) sr_flush_cyc( .clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr),.in(set_data), .out(idle_flush_cycles),.changed(idle_cyc_changed)); //state machine definitions localparam STATE_READ_HDR = 0; localparam STATE_WRITE_HDR = 1; localparam STATE_FORWARD = 2; localparam STATE_WRITE_PAD = 3; reg [1:0] state; //keep track of the outgoing lines reg [15:0] line_count; wire line_count_done = line_count == 1; wire lut_is_empty = line_count == max_lut_lines32; always @(posedge clk) begin if (reset || lut_lines_changed) begin line_count <= max_lut_lines32; end else if (src_rdy_o && dst_rdy_i) begin line_count <= (line_count_done)? max_lut_lines32 : line_count - 1; end end //count the number of cycles since RX data so we can force a flush reg [17:0] non_rx_cycles; wire idle_timeout = (non_rx_cycles == idle_flush_cycles); always @(posedge clk) begin if(reset || state != STATE_READ_HDR || idle_cyc_changed) begin non_rx_cycles <= 0; end else if (~idle_timeout) begin non_rx_cycles <= non_rx_cycles + 1; end end //flush when we have written data to a LUT and either idle or non active DSP wire force_flush = ~lut_is_empty && (idle_timeout || always_flush); //the padding state machine reg [31:0] vita_hdr; reg has_vita_hdr; always @(posedge clk) begin if (reset) begin state <= STATE_READ_HDR; end else case(state) STATE_READ_HDR: begin if (src_rdy_i && dst_rdy_o && data_i[32]) begin vita_hdr <= data_i[31:0]; has_vita_hdr <= 1; state <= (data_i[15:0] > line_count)? STATE_WRITE_PAD : STATE_WRITE_HDR; end else if (force_flush) begin has_vita_hdr <= 0; state <= STATE_WRITE_PAD; end end STATE_WRITE_HDR: begin if (src_rdy_o && dst_rdy_i) begin state <= STATE_FORWARD; end end STATE_FORWARD: begin if (src_rdy_i && dst_rdy_o && data_i[33]) begin state <= STATE_READ_HDR; end end STATE_WRITE_PAD: begin if (src_rdy_o && dst_rdy_i && line_count_done) begin state <= (has_vita_hdr)? STATE_WRITE_HDR : STATE_READ_HDR; end end endcase //state end //assign outgoing signals assign dst_rdy_o = (state == STATE_READ_HDR)? 1 : ((state == STATE_FORWARD)? dst_rdy_i : 0); assign src_rdy_o = (state == STATE_WRITE_HDR || state == STATE_WRITE_PAD)? 1 : ((state == STATE_FORWARD )? src_rdy_i : 0); assign data_o = (state == STATE_WRITE_HDR)? {4'b0001, vita_hdr} : ((state == STATE_FORWARD)? data_i : 0); endmodule // packet_padder36 uhd-3.5.5/fpga/usrp2/fifo/packet_router.v000066400000000000000000000334151224274632000202650ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module packet_router #( parameter BUF_SIZE = 9, parameter UDP_BASE = 0, parameter CTRL_BASE = 0 ) ( //wishbone interface for memory mapped CPU frames input wb_clk_i, input wb_rst_i, input wb_we_i, input wb_stb_i, input [15:0] wb_adr_i, input [31:0] wb_dat_i, output [31:0] wb_dat_o, output wb_ack_o, output wb_err_o, output wb_rty_o, //setting register interface input set_stb, input [7:0] set_addr, input [31:0] set_data, input stream_clk, input stream_rst, input stream_clr, //output status register output [31:0] status, output sys_int_o, //want an interrupt? output [31:0] debug, // Input Interfaces (in to router) input [35:0] ser_inp_data, input ser_inp_valid, output ser_inp_ready, input [35:0] dsp0_inp_data, input dsp0_inp_valid, output dsp0_inp_ready, input [35:0] dsp1_inp_data, input dsp1_inp_valid, output dsp1_inp_ready, input [35:0] eth_inp_data, input eth_inp_valid, output eth_inp_ready, input [35:0] err_inp_data, input err_inp_valid, output err_inp_ready, input [35:0] ctl_inp_data, input ctl_inp_valid, output ctl_inp_ready, // Output Interfaces (out of router) output [35:0] ser_out_data, output ser_out_valid, input ser_out_ready, output [35:0] dsp_out_data, output dsp_out_valid, input dsp_out_ready, output [35:0] ctl_out_data, output ctl_out_valid, input ctl_out_ready, output [35:0] eth_out_data, output eth_out_valid, input eth_out_ready ); assign wb_err_o = 1'b0; // Unused for now assign wb_rty_o = 1'b0; // Unused for now //////////////////////////////////////////////////////////////////// // CPU interface to this packet router //////////////////////////////////////////////////////////////////// wire [35:0] cpu_inp_data, cpu_out_data; wire cpu_inp_valid, cpu_out_valid; wire cpu_inp_ready, cpu_out_ready; //////////////////////////////////////////////////////////////////// // Communication interfaces //////////////////////////////////////////////////////////////////// wire [35:0] com_inp_data, com_out_data, udp_out_data; wire com_inp_valid, com_out_valid, udp_out_valid; wire com_inp_ready, com_out_ready, udp_out_ready; //////////////////////////////////////////////////////////////////// // Control signals (setting registers and status signals) // - handshake lines for the CPU communication // - setting registers to program the inspector //////////////////////////////////////////////////////////////////// //setting register for mode control wire [31:0] _sreg_mode_ctrl; wire master_mode_flag; setting_reg #(.my_addr(CTRL_BASE+0), .width(1)) sreg_mode_ctrl( .clk(stream_clk),.rst(stream_rst), .strobe(set_stb),.addr(set_addr),.in(set_data), .out(master_mode_flag),.changed() ); //assign status output signals wire [31:0] cpu_iface_status; assign status = { cpu_iface_status[31:9], master_mode_flag, cpu_iface_status[7:0] }; //////////////////////////////////////////////////////////////////// // Communication input source crossbar // When in master mode: // - serdes input -> comm output combiner // - ethernet input -> comm input inspector // When in slave mode: // - serdes input -> comm input inspector // - ethernet input -> null sink //////////////////////////////////////////////////////////////////// //streaming signals from the crossbar to the combiner wire [35:0] ext_inp_data; wire ext_inp_valid; wire ext_inp_ready; //dummy signals for valve/xbar below wire [35:0] _eth_inp_data; wire _eth_inp_valid; wire _eth_inp_ready; // dummy signals to connect fifo_short wire [35:0] _com_inp_data; wire _com_inp_valid; wire _com_inp_ready; valve36 eth_inp_valve ( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .shutoff(~master_mode_flag), .data_i(eth_inp_data), .src_rdy_i(eth_inp_valid), .dst_rdy_o(eth_inp_ready), .data_o(_eth_inp_data), .src_rdy_o(_eth_inp_valid), .dst_rdy_i(_eth_inp_ready) ); crossbar36 com_inp_xbar ( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .cross(~master_mode_flag), .data0_i(_eth_inp_data), .src0_rdy_i(_eth_inp_valid), .dst0_rdy_o(_eth_inp_ready), .data1_i(ser_inp_data), .src1_rdy_i(ser_inp_valid), .dst1_rdy_o(ser_inp_ready), .data0_o(_com_inp_data), .src0_rdy_o(_com_inp_valid), .dst0_rdy_i(_com_inp_ready), .data1_o(ext_inp_data), .src1_rdy_o(ext_inp_valid), .dst1_rdy_i(ext_inp_ready) ); // short fifo in the packet inspection path to help timing fifo_short #(.WIDTH(36)) com_inp_fifo (.clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .datain(_com_inp_data), .src_rdy_i(_com_inp_valid), .dst_rdy_o(_com_inp_ready), .dataout(com_inp_data), .src_rdy_o(com_inp_valid), .dst_rdy_i(com_inp_ready), .space(), .occupied() ); //////////////////////////////////////////////////////////////////// // Communication output sink crossbar // When in master mode: // - comm output -> ethernet output // - insp output -> serdes output // When in slave mode: // - com output -> serdes output // - insp output -> null sink //////////////////////////////////////////////////////////////////// //streaming signals from the inspector to the crossbar wire [35:0] ext_out_data; wire ext_out_valid; wire ext_out_ready; //dummy signals for valve/xbar below wire [35:0] _eth_out_data; wire _eth_out_valid; wire _eth_out_ready; crossbar36 com_out_xbar ( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .cross(~master_mode_flag), .data0_i(com_out_data), .src0_rdy_i(com_out_valid), .dst0_rdy_o(com_out_ready), .data1_i(ext_out_data), .src1_rdy_i(ext_out_valid), .dst1_rdy_o(ext_out_ready), .data0_o(_eth_out_data), .src0_rdy_o(_eth_out_valid), .dst0_rdy_i(_eth_out_ready), .data1_o(ser_out_data), .src1_rdy_o(ser_out_valid), .dst1_rdy_i(ser_out_ready) ); valve36 eth_out_valve ( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .shutoff(~master_mode_flag), .data_i(_eth_out_data), .src_rdy_i(_eth_out_valid), .dst_rdy_o(_eth_out_ready), .data_o(eth_out_data), .src_rdy_o(eth_out_valid), .dst_rdy_i(eth_out_ready) ); //////////////////////////////////////////////////////////////////// // Communication output source combiner (feeds UDP proto machine) // - DSP input // - CPU input // - ERR input //////////////////////////////////////////////////////////////////// //dummy signals to join the the muxes below wire [35:0] _combiner0_data, _combiner1_data, _combiner2_data; wire _combiner0_valid, _combiner1_valid, _combiner2_valid; wire _combiner0_ready, _combiner1_ready, _combiner2_ready; fifo36_mux #(.prio(0)) // No priority, fair sharing _com_output_combiner0( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .data0_i(err_inp_data), .src0_rdy_i(err_inp_valid), .dst0_rdy_o(err_inp_ready), .data1_i(cpu_inp_data), .src1_rdy_i(cpu_inp_valid), .dst1_rdy_o(cpu_inp_ready), .data_o(_combiner0_data), .src_rdy_o(_combiner0_valid), .dst_rdy_i(_combiner0_ready) ); fifo36_mux #(.prio(0)) // No priority, fair sharing _com_output_combiner2( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .data0_i(_combiner0_data), .src0_rdy_i(_combiner0_valid), .dst0_rdy_o(_combiner0_ready), .data1_i(ctl_inp_data), .src1_rdy_i(ctl_inp_valid), .dst1_rdy_o(ctl_inp_ready), .data_o(_combiner2_data), .src_rdy_o(_combiner2_valid), .dst_rdy_i(_combiner2_ready) ); fifo36_mux #(.prio(0)) // No priority, fair sharing _com_output_combiner1( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .data0_i(dsp0_inp_data), .src0_rdy_i(dsp0_inp_valid), .dst0_rdy_o(dsp0_inp_ready), .data1_i(dsp1_inp_data), .src1_rdy_i(dsp1_inp_valid), .dst1_rdy_o(dsp1_inp_ready), .data_o(_combiner1_data), .src_rdy_o(_combiner1_valid), .dst_rdy_i(_combiner1_ready) ); fifo36_mux #(.prio(1)) // Give priority to err/cpu over dsp com_output_source( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .data0_i(_combiner2_data), .src0_rdy_i(_combiner2_valid), .dst0_rdy_o(_combiner2_ready), .data1_i(_combiner1_data), .src1_rdy_i(_combiner1_valid), .dst1_rdy_o(_combiner1_ready), .data_o(udp_out_data), .src_rdy_o(udp_out_valid), .dst_rdy_i(udp_out_ready) ); //////////////////////////////////////////////////////////////////// // Interface CPU to memory mapped wishbone // - Uses 1 setting register //////////////////////////////////////////////////////////////////// buffer_int2 #(.BASE(CTRL_BASE+3), .BUF_SIZE(BUF_SIZE)) cpu_to_wb( .clk(stream_clk), .rst(stream_rst | stream_clr), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .status(cpu_iface_status), // Wishbone interface to RAM .wb_clk_i(wb_clk_i), .wb_rst_i(wb_rst_i), .wb_we_i(wb_we_i), .wb_stb_i(wb_stb_i), .wb_adr_i(wb_adr_i), .wb_dat_i(wb_dat_i), .wb_dat_o(wb_dat_o), .wb_ack_o(wb_ack_o), // Write FIFO Interface (from PR and into WB) .wr_data_i(cpu_out_data), .wr_ready_i(cpu_out_valid), .wr_ready_o(cpu_out_ready), // Read FIFO Interface (from WB and into PR) .rd_data_o(cpu_inp_data), .rd_ready_o(cpu_inp_valid), .rd_ready_i(cpu_inp_ready) ); //////////////////////////////////////////////////////////////////// // Packet Dispatcher // - Uses 2 setting registers // - provide buffering before cpu for random + small packet bursts //////////////////////////////////////////////////////////////////// wire [35:0] _cpu_out_data; wire _cpu_out_valid; wire _cpu_out_ready; packet_dispatcher36_x4 #(.BASE(CTRL_BASE+1)) packet_dispatcher( .clk(stream_clk), .rst(stream_rst), .clr(stream_clr), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .com_inp_data(com_inp_data), .com_inp_valid(com_inp_valid), .com_inp_ready(com_inp_ready), .ext_out_data(ext_out_data), .ext_out_valid(ext_out_valid), .ext_out_ready(ext_out_ready), .dsp_out_data(dsp_out_data), .dsp_out_valid(dsp_out_valid), .dsp_out_ready(dsp_out_ready), .ctl_out_data(ctl_out_data), .ctl_out_valid(ctl_out_valid), .ctl_out_ready(ctl_out_ready), .cpu_out_data(_cpu_out_data), .cpu_out_valid(_cpu_out_valid), .cpu_out_ready(_cpu_out_ready) ); fifo_cascade #(.WIDTH(36), .SIZE(9/*512 lines plenty for short pkts*/)) cpu_out_fifo ( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .datain(_cpu_out_data), .src_rdy_i(_cpu_out_valid), .dst_rdy_o(_cpu_out_ready), .dataout(cpu_out_data), .src_rdy_o(cpu_out_valid), .dst_rdy_i(cpu_out_ready) ); //////////////////////////////////////////////////////////////////// // UDP TX Protocol machine //////////////////////////////////////////////////////////////////// //dummy signals to connect the components below wire [35:0] _com_out_data; wire _com_out_valid, _com_out_ready; prot_eng_tx #(.BASE(UDP_BASE)) udp_prot_eng_tx (.clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .datain(udp_out_data), .src_rdy_i(udp_out_valid), .dst_rdy_o(udp_out_ready), .dataout(_com_out_data), .src_rdy_o(_com_out_valid), .dst_rdy_i(_com_out_ready) ); fifo36_mux com_out_mux( .clk(stream_clk), .reset(stream_rst), .clear(stream_clr), .data0_i(ext_inp_data), .src0_rdy_i(ext_inp_valid), .dst0_rdy_o(ext_inp_ready), .data1_i(_com_out_data), .src1_rdy_i(_com_out_valid), .dst1_rdy_o(_com_out_ready), .data_o(com_out_data), .src_rdy_o(com_out_valid), .dst_rdy_i(com_out_ready) ); //////////////////////////////////////////////////////////////////// // Assign debugs //////////////////////////////////////////////////////////////////// assign debug = { //inputs to the router (12) dsp0_inp_ready, dsp0_inp_valid, dsp1_inp_ready, dsp1_inp_valid, err_inp_ready, err_inp_valid, ser_inp_ready, ser_inp_valid, eth_inp_ready, eth_inp_valid, cpu_inp_ready, cpu_inp_valid, //outputs from the router (8) dsp_out_ready, dsp_out_valid, ser_out_ready, ser_out_valid, eth_out_ready, eth_out_valid, cpu_out_ready, cpu_out_valid, //other interfaces (8) ext_inp_ready, ext_inp_valid, com_out_ready, com_out_valid, ext_out_ready, ext_out_valid, com_inp_ready, com_inp_valid, 4'b0 }; endmodule // packet_router uhd-3.5.5/fpga/usrp2/fifo/packet_tb.v000066400000000000000000000027071224274632000173520ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module packet_tb(); wire [7:0] data; wire sof, eof, src_rdy, dst_rdy; wire clear = 0; reg clk = 0; reg reset = 1; always #10 clk <= ~clk; initial #1000 reset <= 0; initial $dumpfile("packet_tb.vcd"); initial $dumpvars(0,packet_tb); wire [31:0] total, crc_err, seq_err, len_err; packet_generator pkt_gen (.clk(clk), .reset(reset), .clear(clear), .data_o(data), .sof_o(sof), .eof_o(eof), .src_rdy_o(src_rdy), .dst_rdy_i(dst_rdy)); packet_verifier pkt_ver (.clk(clk), .reset(reset), .clear(clear), .data_i(data), .sof_i(sof), .eof_i(eof), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); endmodule // packet_tb uhd-3.5.5/fpga/usrp2/fifo/packet_verifier.v000066400000000000000000000042131224274632000205520ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Packet format -- // Line 1 -- Length, 32 bits // Line 2 -- Sequence number, 32 bits // Last line -- CRC, 32 bits module packet_verifier (input clk, input reset, input clear, input [7:0] data_i, input sof_i, input eof_i, input src_rdy_i, output dst_rdy_o, output reg [31:0] total, output reg [31:0] crc_err, output reg [31:0] seq_err, output reg [31:0] len_err); reg [31:0] seq_num; reg [31:0] length; wire first_byte, last_byte; reg second_byte, last_byte_d1; wire match_crc; wire calc_crc = src_rdy_i & dst_rdy_o; crc crc(.clk(clk), .reset(reset), .clear(last_byte_d1), .data(data_i), .calc(calc_crc), .crc_out(), .match(match_crc)); assign first_byte = src_rdy_i & dst_rdy_o & sof_i; assign last_byte = src_rdy_i & dst_rdy_o & eof_i; assign dst_rdy_o = ~last_byte_d1; // stubs for now wire match_seq = 1; wire match_len = 1; always @(posedge clk) if(reset | clear) last_byte_d1 <= 0; else last_byte_d1 <= last_byte; always @(posedge clk) if(reset | clear) begin total <= 0; crc_err <= 0; seq_err <= 0; len_err <= 0; end else if(last_byte_d1) begin total <= total + 1; if(~match_crc) crc_err <= crc_err + 1; else if(~match_seq) seq_err <= seq_err + 1; else if(~match_len) seq_err <= len_err + 1; end endmodule // packet_verifier uhd-3.5.5/fpga/usrp2/fifo/packet_verifier32.v000066400000000000000000000030321224274632000207150ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module packet_verifier32 (input clk, input reset, input clear, input [35:0] data_i, input src_rdy_i, output dst_rdy_o, output [31:0] total, output [31:0] crc_err, output [31:0] seq_err, output [31:0] len_err); wire [7:0] ll_data; wire ll_sof, ll_eof, ll_src_rdy, ll_dst_rdy; fifo36_to_ll8 f36_to_ll8 (.clk(clk), .reset(reset), .clear(clear), .f36_data(data_i), .f36_src_rdy_i(src_rdy_i), .f36_dst_rdy_o(dst_rdy_o), .ll_data(ll_data), .ll_sof(ll_sof), .ll_eof(ll_eof), .ll_src_rdy(ll_src_rdy), .ll_dst_rdy(ll_dst_rdy)); packet_verifier pkt_ver (.clk(clk), .reset(reset), .clear(clear), .data_i(ll_data), .sof_i(ll_sof), .eof_i(ll_eof), .src_rdy_i(ll_src_rdy), .dst_rdy_o(ll_dst_rdy), .total(total), .crc_err(crc_err), .seq_err(seq_err), .len_err(len_err)); endmodule // packet_verifier32 uhd-3.5.5/fpga/usrp2/fifo/splitter36.v000066400000000000000000000050021224274632000174240ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Split packets from a fifo based interface so it goes out identically on two interfaces module splitter36 ( input clk, input rst, input clr, input [35:0] inp_data, input inp_valid, output inp_ready, output [35:0] out0_data, output out0_valid, input out0_ready, output [35:0] out1_data, output out1_valid, input out1_ready ); localparam STATE_COPY_BOTH = 0; localparam STATE_COPY_ZERO = 1; localparam STATE_COPY_ONE = 2; reg [1:0] state; reg [35:0] data_reg; assign out0_data = (state == STATE_COPY_BOTH)? inp_data : data_reg; assign out1_data = (state == STATE_COPY_BOTH)? inp_data : data_reg; assign out0_valid = (state == STATE_COPY_BOTH)? inp_valid : ( (state == STATE_COPY_ZERO)? 1'b1 : ( 1'b0)); assign out1_valid = (state == STATE_COPY_BOTH)? inp_valid : ( (state == STATE_COPY_ONE)? 1'b1 : ( 1'b0)); assign inp_ready = (state == STATE_COPY_BOTH)? (out0_ready | out1_ready) : 1'b0; always @(posedge clk) if (rst | clr) begin state <= STATE_COPY_BOTH; end else begin case (state) STATE_COPY_BOTH: begin if ((out0_valid & out0_ready) & ~(out1_valid & out1_ready)) begin state <= STATE_COPY_ONE; end else if (~(out0_valid & out0_ready) & (out1_valid & out1_ready)) begin state <= STATE_COPY_ZERO; end data_reg <= inp_data; end STATE_COPY_ZERO: begin if (out0_valid & out0_ready) begin state <= STATE_COPY_BOTH; end end STATE_COPY_ONE: begin if (out1_valid & out1_ready) begin state <= STATE_COPY_BOTH; end end endcase //state end endmodule //splitter36 uhd-3.5.5/fpga/usrp2/fifo/valve36.v000066400000000000000000000025711224274632000167030ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module valve36 (input clk, input reset, input clear, input shutoff, input [35:0] data_i, input src_rdy_i, output dst_rdy_o, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); reg shutoff_int, active; wire active_next = (src_rdy_i & dst_rdy_o)? ~data_i[33] : active; assign data_o = data_i; assign dst_rdy_o = shutoff_int ? 1'b1 : dst_rdy_i; assign src_rdy_o = shutoff_int ? 1'b0 : src_rdy_i; always @(posedge clk) if(reset | clear) active <= 0; else active <= active_next; always @(posedge clk) if(reset | clear) shutoff_int <= 0; else if(~active_next) shutoff_int <= shutoff; endmodule // valve36 uhd-3.5.5/fpga/usrp2/gpif/000077500000000000000000000000001224274632000152235ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/gpif/Makefile.srcs000066400000000000000000000004571224274632000176420ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # ################################################## # SERDES Sources ################################################## GPIF_SRCS = $(abspath $(addprefix $(BASE_DIR)/../gpif/, \ packet_reframer.v \ slave_fifo.v \ fifo36_to_gpmc16.v \ gpmc16_to_fifo36.v \ )) uhd-3.5.5/fpga/usrp2/gpif/fifo36_to_gpmc16.v000066400000000000000000000045651224274632000203770ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module fifo36_to_gpmc16 #( parameter FIFO_SIZE = 9, //not ready until minimum xfers of occupancy available parameter MIN_OCC16 = 2 ) ( //input fifo interface input fifo_clk, input fifo_rst, input [35:0] in_data, input in_src_rdy, output in_dst_rdy, //output interface input gpif_clk, input gpif_rst, output [15:0] out_data, output valid, input enable, output eof, output reg has_data ); wire [15:0] fifo_occ; always @(posedge gpif_clk) has_data <= (fifo_occ >= MIN_OCC16); wire [35:0] data_int; wire src_rdy_int, dst_rdy_int; fifo_2clock_cascade #(.WIDTH(36), .SIZE(6)) fifo_2clk (.wclk(fifo_clk), .datain(in_data), .src_rdy_i(in_src_rdy), .dst_rdy_o(in_dst_rdy), .space(), .rclk(gpif_clk), .dataout(data_int), .src_rdy_o(src_rdy_int), .dst_rdy_i(dst_rdy_int), .occupied(), .arst(fifo_rst | gpif_rst)); wire [18:0] data19_int; wire data19_src_rdy_int, data19_dst_rdy_int; fifo36_to_fifo19 #(.LE(1)) f36_to_f19 (.clk(gpif_clk), .reset(gpif_rst), .clear(1'b0), .f36_datain(data_int), .f36_src_rdy_i(src_rdy_int), .f36_dst_rdy_o(dst_rdy_int), .f19_dataout(data19_int), .f19_src_rdy_o(data19_src_rdy_int), .f19_dst_rdy_i(data19_dst_rdy_int) ); wire [17:0] data18_int; fifo_cascade #(.WIDTH(18), .SIZE(FIFO_SIZE+1)) occ_ctrl_fifo (.clk(gpif_clk), .reset(gpif_rst), .clear(1'b0), .datain(data19_int[17:0]), .src_rdy_i(data19_src_rdy_int), .dst_rdy_o(data19_dst_rdy_int), .space(), .dataout(data18_int), .src_rdy_o(valid), .dst_rdy_i(enable), .occupied(fifo_occ)); assign out_data = data18_int[15:0]; assign eof = data18_int[17]; endmodule //fifo_to_gpmc16 uhd-3.5.5/fpga/usrp2/gpif/gpmc16_to_fifo36.v000066400000000000000000000042161224274632000203700ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module gpmc16_to_fifo36 #( parameter FIFO_SIZE = 9, //not ready until minimum xfers of space available parameter MIN_SPACE16 = 128 ) ( //input interface input gpif_clk, input gpif_rst, input [15:0] in_data, input valid, output reg ready, //output fifo interface input fifo_clk, input fifo_rst, output [35:0] out_data, output out_src_rdy, input out_dst_rdy ); wire [35:0] data_int; wire src_rdy_int, dst_rdy_int; wire [18:0] refr_data; wire refr_src_rdy, refr_dst_rdy; wire [15:0] fifo_space; always @(posedge gpif_clk) ready <= (fifo_space >= MIN_SPACE16/2); packet_reframer packet_reframer (.clk(gpif_clk), .reset(gpif_rst), .clear(1'b0), .data_i(in_data), .src_rdy_i(valid), .dst_rdy_o(), .data_o(refr_data), .src_rdy_o(refr_src_rdy), .dst_rdy_i(refr_dst_rdy)); fifo19_to_fifo36 #(.LE(1)) f19_to_f36 (.clk(gpif_clk), .reset(gpif_rst), .clear(1'b0), .f19_datain(refr_data), .f19_src_rdy_i(refr_src_rdy), .f19_dst_rdy_o(refr_dst_rdy), .f36_dataout(data_int), .f36_src_rdy_o(src_rdy_int), .f36_dst_rdy_i(dst_rdy_int)); fifo_2clock_cascade #(.WIDTH(36), .SIZE(FIFO_SIZE)) fifo_2clk (.wclk(gpif_clk), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .space(fifo_space), .rclk(fifo_clk), .dataout(out_data), .src_rdy_o(out_src_rdy), .dst_rdy_i(out_dst_rdy), .occupied(), .arst(fifo_rst | gpif_rst)); endmodule //fifo_to_gpmc16 uhd-3.5.5/fpga/usrp2/gpif/packet_reframer.v000066400000000000000000000033661224274632000205540ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Join vita packets longer than one GPIF frame module packet_reframer (input clk, input reset, input clear, input [15:0] data_i, input src_rdy_i, output dst_rdy_o, output [18:0] data_o, output src_rdy_o, input dst_rdy_i, output reg state, output eof_out, output reg [15:0] length); //reg state; //reg [15:0] length; localparam RF_IDLE = 0; localparam RF_PKT = 1; always @(posedge clk) if(reset | clear) state <= RF_IDLE; else if(src_rdy_i & dst_rdy_i) case(state) RF_IDLE : begin length <= {data_i[14:0],1'b0}; state <= RF_PKT; end RF_PKT : begin if(eof_out) state <= RF_IDLE; length <= length - 1; end endcase // case (state) assign dst_rdy_o = dst_rdy_i; // this is a little pessimistic but ok assign src_rdy_o = src_rdy_i; wire occ_out = 0; assign eof_out = (state == RF_PKT) & (length == 2); wire sof_out = (state == RF_IDLE); assign data_o = {occ_out, eof_out, sof_out, data_i[15:0]}; endmodule // packet_reframer uhd-3.5.5/fpga/usrp2/gpif/slave_fifo.v000066400000000000000000000220701224274632000175300ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // ////////////////////////////////////////////////////////////////////////////////// //this is a FIFO master interface for the FX2 in "slave fifo" mode. module slave_fifo #( //how many cycles max in a transfer state parameter DATA_XFER_COUNT = 256, parameter CTRL_XFER_COUNT = 32, //sizes for fifo36 2 clock cascade fifos parameter DATA_RX_FIFO_SIZE = 9, parameter DATA_TX_FIFO_SIZE = 9, parameter CTRL_RX_FIFO_SIZE = 9, parameter CTRL_TX_FIFO_SIZE = 9 ) (// GPIF signals input gpif_clk, input gpif_rst, inout [15:0] gpif_d, input [3:0] gpif_ctl, output reg sloe, output reg slrd, output reg slwr, output reg pktend, output reg [1:0] fifoadr, // FIFO interface input fifo_clk, input fifo_rst, output [35:0] tx_data, output tx_src_rdy, input tx_dst_rdy, input [35:0] rx_data, input rx_src_rdy, output rx_dst_rdy, output [35:0] ctrl_data, output ctrl_src_rdy, input ctrl_dst_rdy, input [35:0] resp_data, input resp_src_rdy, output resp_dst_rdy, output [31:0] debug ); wire FX2_DE_pre = ~gpif_ctl[0]; //EP2 FX2 FIFO empty (FLAGA) wire FX2_CE_pre = ~gpif_ctl[1]; //EP4 FX2 FIFO empty (FLAGB) wire FX2_DF_pre = ~gpif_ctl[2]; //EP6 FX2 FIFO full (FLAGC) wire FX2_CF_pre = ~gpif_ctl[3]; //EP8 FX2 FIFO full (FLAGD) reg FX2_DE, FX2_CE, FX2_DF, FX2_CF; always @(posedge gpif_clk) begin FX2_DE <= FX2_DE_pre; //EP2 FX2 FIFO empty (FLAGA) FX2_CE <= FX2_CE_pre; //EP4 FX2 FIFO empty (FLAGB) FX2_DF <= FX2_DF_pre; //EP6 FX2 FIFO full (FLAGC) FX2_CF <= FX2_CF_pre; //EP8 FX2 FIFO full (FLAGD) end wire [15:0] gpif_d_out_ctrl, gpif_d_out_data; reg [15:0] gpif_d_out, gpif_d_in; // //////////////////////////////////////////////////////////////////// // GPIF bus master state machine wire rx_valid, resp_valid; reg tx_valid, ctrl_valid; wire tx_ready, ctrl_ready; reg rx_enable, resp_enable; wire rx_data_enough_occ; reg [9:0] transfer_count; //number of lines (a line is 16 bits) in active transfer reg [3:0] state; //state machine current state localparam STATE_IDLE = 0; localparam STATE_THINK = 1; localparam STATE_DATA_RX = 2; localparam STATE_DATA_TX = 3; localparam STATE_CTRL_RX = 4; localparam STATE_CTRL_TX = 5; localparam STATE_DATA_TX_SLOE = 6; localparam STATE_CTRL_TX_SLOE = 7; localparam STATE_DATA_RX_ADR = 8; localparam STATE_CTRL_RX_ADR = 9; //logs the last bus user for xfer fairness //we only care about data rx vs. tx since ctrl pkts are so short reg last_data_bus_hog; localparam BUS_HOG_RX = 0; localparam BUS_HOG_TX = 1; wire resp_eof; reg [1:0] idle_count; // ////////////////////////////////////////////////////////////// // FX2 slave FIFO bus master state machine // always @(posedge gpif_clk) if(gpif_rst) begin state <= STATE_IDLE; sloe <= 1; slrd <= 1; slwr <= 1; pktend <= 1; rx_enable <= 0; tx_valid <= 0; ctrl_valid <= 0; resp_enable <= 0; idle_count <= 0; end else case (state) STATE_IDLE: begin transfer_count <= 0; sloe <= 1; slrd <= 1; slwr <= 1; pktend <= 1; rx_enable <= 0; tx_valid <= 0; ctrl_valid <= 0; resp_enable <= 0; if (idle_count == 2'b11) state <= STATE_THINK; idle_count <= idle_count + 1; end STATE_THINK: begin idle_count <= 0; //handle transitions to other states if(ctrl_ready & ~FX2_CE) begin //if there's room in the ctrl fifo and the FX2 has ctrl data state <= STATE_CTRL_TX_SLOE; fifoadr <= 2'b01; sloe <= 0; end else if(resp_valid & ~FX2_CF) begin //if the ctrl fifo has data and the FX2 isn't full state <= STATE_CTRL_RX_ADR; fifoadr <= 2'b11; end else if(tx_ready & ~FX2_DE & last_data_bus_hog == BUS_HOG_RX) begin //if there's room in the data fifo and the FX2 has data state <= STATE_DATA_TX_SLOE; last_data_bus_hog <= BUS_HOG_TX; fifoadr <= 2'b00; sloe <= 0; end else if(rx_data_enough_occ & ~FX2_DF & last_data_bus_hog == BUS_HOG_TX) begin //if the data fifo has data and the FX2 isn't full state <= STATE_DATA_RX_ADR; last_data_bus_hog <= BUS_HOG_RX; fifoadr <= 2'b10; end else if(tx_ready & ~FX2_DE) begin state <= STATE_DATA_TX_SLOE; last_data_bus_hog <= BUS_HOG_TX; fifoadr <= 2'b00; sloe <= 0; end else if(rx_data_enough_occ & ~FX2_DF) begin state <= STATE_DATA_RX_ADR; last_data_bus_hog <= BUS_HOG_RX; fifoadr <= 2'b10; end end STATE_DATA_TX_SLOE: begin //just to assert SLOE one cycle before SLRD state <= STATE_DATA_TX; slrd <= 0; end STATE_CTRL_TX_SLOE: begin state <= STATE_CTRL_TX; slrd <= 0; end STATE_DATA_RX_ADR: begin //just to assert FIFOADR one cycle before SLWR state <= STATE_DATA_RX; rx_enable <= 1; end STATE_CTRL_RX_ADR: begin state <= STATE_CTRL_RX; resp_enable <= 1; end STATE_DATA_RX: begin if (FX2_DF_pre || ~rx_valid || transfer_count == DATA_XFER_COUNT-1) begin state <= STATE_IDLE; rx_enable <= 0; end gpif_d_out <= gpif_d_out_data; slwr <= ~rx_valid; transfer_count <= transfer_count + 1; end STATE_DATA_TX: begin if (FX2_DE_pre || transfer_count == DATA_XFER_COUNT-1) begin state <= STATE_IDLE; slrd <= 1; end gpif_d_in <= gpif_d; tx_valid <= 1; transfer_count <= transfer_count + 1; end STATE_CTRL_RX: begin if (FX2_CF_pre || ~resp_valid || resp_eof || transfer_count == CTRL_XFER_COUNT-1) begin state <= STATE_IDLE; resp_enable <= 0; end pktend <= ~resp_eof; gpif_d_out <= gpif_d_out_ctrl; slwr <= ~resp_valid; transfer_count <= transfer_count + 1; end STATE_CTRL_TX: begin if (FX2_CE_pre || transfer_count == CTRL_XFER_COUNT-1) begin state <= STATE_IDLE; slrd <= 1; end gpif_d_in <= gpif_d; ctrl_valid <= 1; transfer_count <= transfer_count + 1; end endcase // GPIF output data lines, tristate assign gpif_d = (sloe)? gpif_d_out[15:0] : 16'bz; // //////////////////////////////////////////////////////////////////// // TX Data Path gpmc16_to_fifo36 #(.FIFO_SIZE(DATA_TX_FIFO_SIZE), .MIN_SPACE16(DATA_XFER_COUNT)) fifo36_to_gpmc16_tx( .gpif_clk(gpif_clk), .gpif_rst(gpif_rst), .in_data(gpif_d_in), .ready(tx_ready), .valid(tx_valid), .fifo_clk(fifo_clk), .fifo_rst(fifo_rst), .out_data(tx_data), .out_src_rdy(tx_src_rdy), .out_dst_rdy(tx_dst_rdy) ); // //////////////////////////////////////////// // RX Data Path fifo36_to_gpmc16 #(.FIFO_SIZE(DATA_RX_FIFO_SIZE), .MIN_OCC16(DATA_XFER_COUNT)) fifo36_to_gpmc16_rx( .fifo_clk(fifo_clk), .fifo_rst(fifo_rst), .in_data(rx_data), .in_src_rdy(rx_src_rdy), .in_dst_rdy(rx_dst_rdy), .gpif_clk(gpif_clk), .gpif_rst(gpif_rst), .has_data(rx_data_enough_occ), .out_data(gpif_d_out_data), .valid(rx_valid), .enable(rx_enable) ); // //////////////////////////////////////////////////////////////////// // CTRL TX Data Path gpmc16_to_fifo36 #(.FIFO_SIZE(CTRL_TX_FIFO_SIZE), .MIN_SPACE16(CTRL_XFER_COUNT)) fifo36_to_gpmc16_ctrl( .gpif_clk(gpif_clk), .gpif_rst(gpif_rst), .in_data(gpif_d_in), .ready(ctrl_ready), .valid(ctrl_valid), .fifo_clk(fifo_clk), .fifo_rst(fifo_rst), .out_data(ctrl_data), .out_src_rdy(ctrl_src_rdy), .out_dst_rdy(ctrl_dst_rdy) ); // //////////////////////////////////////////// // CTRL RX Data Path fifo36_to_gpmc16 #(.FIFO_SIZE(CTRL_RX_FIFO_SIZE)) fifo36_to_gpmc16_resp( .fifo_clk(fifo_clk), .fifo_rst(fifo_rst), .in_data(resp_data), .in_src_rdy(resp_src_rdy), .in_dst_rdy(resp_dst_rdy), .gpif_clk(gpif_clk), .gpif_rst(gpif_rst), .out_data(gpif_d_out_ctrl), .valid(resp_valid), .enable(resp_enable), .eof(resp_eof) ); assign debug = 0; endmodule // slave_fifo uhd-3.5.5/fpga/usrp2/gpmc/000077500000000000000000000000001224274632000152245ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/gpmc/.gitignore000066400000000000000000000000071224274632000172110ustar00rootroot00000000000000*.gif uhd-3.5.5/fpga/usrp2/gpmc/Makefile.srcs000066400000000000000000000004421224274632000176350ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # ################################################## # GPMC Sources ################################################## GPMC_SRCS = $(abspath $(addprefix $(BASE_DIR)/../gpmc/, \ cross_clock_reader.v \ fifo_to_gpmc.v \ gpmc.v \ gpmc_to_fifo.v \ )) uhd-3.5.5/fpga/usrp2/gpmc/cross_clock_reader.v000066400000000000000000000025261224274632000212460ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module cross_clock_reader #( parameter WIDTH = 1, parameter DEFAULT = 0 ) ( input clk, input rst, input [WIDTH-1:0] in, output reg [WIDTH-1:0] out ); reg [WIDTH-1:0] shadow0, shadow1; reg [2:0] count; always @(posedge clk) begin if (rst) begin out <= DEFAULT; shadow0 <= DEFAULT; shadow1 <= DEFAULT; count <= 0; end else if (shadow0 == shadow1) count <= count + 1; else count <= 0; shadow0 <= in; shadow1 <= shadow0; if (count == 3'b111) out <= shadow1; end endmodule //cross_clock_reader uhd-3.5.5/fpga/usrp2/gpmc/fifo_to_gpmc.v000066400000000000000000000135441224274632000200550ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //////////////////////////////////////////////////////////////////////// // FIFO to GPMC // // Reads frames from FIFO interface and writes them into BRAM pages. // The GPMC is asynchronously alerted when a BRAM page has been filled. // // EM_CLK: // A GPMC read transaction consists of two EM_CLK cycles (idle low). // // EM_OE: // Output enable is actually the combination of ~NOE & ~NCS. // The output enable is only active for the second rising edge, // to ensure one edge per transaction to transition on. // // EM_D: // The BRAM performs a read on the first rising edge into EM_D. // Then, data will then be read on the next rising edge by GPMC. // // EM_A: // On the first rising edge of EM_CLK, the address is held. // On the second rising edge, the address is set for the next transaction. //////////////////////////////////////////////////////////////////////// module fifo_to_gpmc #(parameter PTR_WIDTH = 2, parameter ADDR_WIDTH = 10, parameter LAST_ADDR = 10'h3ff) (input clk, input reset, input clear, input arst, input [17:0] data_i, input src_rdy_i, output dst_rdy_o, output [15:0] EM_D, input [ADDR_WIDTH:1] EM_A, input EM_CLK, input EM_OE, output reg data_available); //states for the GPMC side of things wire [17:0] data_o; reg gpmc_state; reg [ADDR_WIDTH:1] addr; reg [PTR_WIDTH:0] gpmc_ptr, next_gpmc_ptr; localparam GPMC_STATE_START = 0; localparam GPMC_STATE_EMPTY = 1; //states for the FIFO side of things reg fifo_state; reg [ADDR_WIDTH-1:0] counter; reg [PTR_WIDTH:0] fifo_ptr; localparam FIFO_STATE_CLAIM = 0; localparam FIFO_STATE_FILL = 1; //------------------------------------------------------------------ // State machine to control the data from GPMC to BRAM //------------------------------------------------------------------ always @(posedge EM_CLK or posedge arst) begin if (arst) begin gpmc_state <= GPMC_STATE_START; gpmc_ptr <= 0; next_gpmc_ptr <= 0; addr <= 0; end else if (EM_OE) begin addr <= EM_A + 1; case(gpmc_state) GPMC_STATE_START: begin if (EM_A == 0) begin gpmc_state <= GPMC_STATE_EMPTY; next_gpmc_ptr <= gpmc_ptr + 1; end end GPMC_STATE_EMPTY: begin if (addr == LAST_ADDR) begin gpmc_state <= GPMC_STATE_START; gpmc_ptr <= next_gpmc_ptr; addr <= 0; end end endcase //gpmc_state end //EM_OE end //always //------------------------------------------------------------------ // High when the gpmc pointer has not caught up to the fifo pointer. //------------------------------------------------------------------ wire [PTR_WIDTH:0] safe_gpmc_ptr; cross_clock_reader #(.WIDTH(PTR_WIDTH+1)) read_gpmc_ptr (.clk(clk), .rst(reset | clear), .in(gpmc_ptr), .out(safe_gpmc_ptr)); wire bram_available_to_fill = (fifo_ptr ^ (1 << PTR_WIDTH)) != safe_gpmc_ptr; //------------------------------------------------------------------ // Glich free generation of data available signal: // Data is available when the pointers dont match. //------------------------------------------------------------------ wire [PTR_WIDTH:0] safe_next_gpmc_ptr; cross_clock_reader #(.WIDTH(PTR_WIDTH+1)) read_next_gpmc_ptr (.clk(clk), .rst(reset | clear), .in(next_gpmc_ptr), .out(safe_next_gpmc_ptr)); always @(posedge clk) if (reset | clear) data_available <= 0; else data_available <= safe_next_gpmc_ptr != fifo_ptr; //------------------------------------------------------------------ // State machine to control the data from BRAM to FIFO //------------------------------------------------------------------ always @(posedge clk) begin if (reset | clear) begin fifo_state <= FIFO_STATE_CLAIM; fifo_ptr <= 0; counter <= 0; end else begin case(fifo_state) FIFO_STATE_CLAIM: begin if (bram_available_to_fill) fifo_state <= FIFO_STATE_FILL; counter <= 0; end FIFO_STATE_FILL: begin if (src_rdy_i && dst_rdy_o && data_i[17]) begin fifo_state <= FIFO_STATE_CLAIM; fifo_ptr <= fifo_ptr + 1; end if (src_rdy_i && dst_rdy_o) begin counter <= counter + 1; end end endcase //fifo_state end end //always assign dst_rdy_o = fifo_state == FIFO_STATE_FILL; //assign data from bram output assign EM_D = data_o[15:0]; //instantiate dual ported bram for async read + write ram_2port #(.DWIDTH(18),.AWIDTH(PTR_WIDTH + ADDR_WIDTH)) async_fifo_bram (.clka(clk),.ena(1'b1),.wea(src_rdy_i && dst_rdy_o), .addra({fifo_ptr[PTR_WIDTH-1:0], counter}),.dia(data_i),.doa(), .clkb(EM_CLK),.enb(1'b1),.web(1'b0), .addrb({gpmc_ptr[PTR_WIDTH-1:0], addr}),.dib(18'h3ffff),.dob(data_o)); endmodule // fifo_to_gpmc uhd-3.5.5/fpga/usrp2/gpmc/gpmc.v000066400000000000000000000156551224274632000163550ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // ////////////////////////////////////////////////////////////////////////////////// module gpmc #(parameter TXFIFOSIZE = 11, parameter RXFIFOSIZE = 11, parameter ADDR_WIDTH = 10, parameter BUSDEBUG = 1) (// GPMC signals input arst, input EM_CLK, inout [15:0] EM_D, input [ADDR_WIDTH:1] EM_A, input [1:0] EM_NBE, input EM_WAIT0, input EM_NCS4, input EM_NCS6, input EM_NWE, input EM_NOE, // GPIOs for FIFO signalling output rx_have_data, output tx_have_space, output resp_have_data, // FIFO interface input fifo_clk, input fifo_rst, output [35:0] tx_data, output tx_src_rdy, input tx_dst_rdy, input [35:0] rx_data, input rx_src_rdy, output rx_dst_rdy, output [35:0] ctrl_data, output ctrl_src_rdy, input ctrl_dst_rdy, input [35:0] resp_data, input resp_src_rdy, output resp_dst_rdy, output [31:0] debug ); wire EM_output_enable = (~EM_NOE & (~EM_NCS4 | ~EM_NCS6)); wire [15:0] EM_D_data; wire [15:0] EM_D_ctrl; assign EM_D = ~EM_output_enable ? 16'bz : ~EM_NCS4 ? EM_D_data : EM_D_ctrl; // CS4 is RAM_2PORT for DATA PATH (high-speed data) // Writes go into one RAM, reads come from the other // CS6 is for CONTROL PATH (slow) // //////////////////////////////////////////// // TX Data Path wire [17:0] tx18_data; wire tx18_src_rdy, tx18_dst_rdy; wire [35:0] txb_data; wire txb_src_rdy, txb_dst_rdy; gpmc_to_fifo #(.ADDR_WIDTH(10), .LAST_ADDR(10'h3ff), .PTR_WIDTH(2)) gpmc_to_fifo (.EM_D(EM_D), .EM_A(EM_A[10:1]), .EM_CLK(EM_CLK), .EM_WE(~EM_NCS4 & ~EM_NWE), .clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .arst(fifo_rst | arst), .data_o(tx18_data), .src_rdy_o(tx18_src_rdy), .dst_rdy_i(tx18_dst_rdy), .have_space(tx_have_space)); fifo19_to_fifo36 #(.LE(1)) f19_to_f36 // Little endian because ARM is LE (.clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .f19_datain({1'b0,tx18_data}), .f19_src_rdy_i(tx18_src_rdy), .f19_dst_rdy_o(tx18_dst_rdy), .f36_dataout(txb_data), .f36_src_rdy_o(txb_src_rdy), .f36_dst_rdy_i(txb_dst_rdy)); fifo_cascade #(.WIDTH(36), .SIZE(TXFIFOSIZE)) tx_buffering( .clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .datain(txb_data), .src_rdy_i(txb_src_rdy), .dst_rdy_o(txb_dst_rdy), .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy) ); // //////////////////////////////////////////// // RX Data Path wire [17:0] rx18_data; wire rx18_src_rdy, rx18_dst_rdy; wire [35:0] rxb_data; wire rxb_src_rdy, rxb_dst_rdy; wire dummy; fifo_cascade #(.WIDTH(36), .SIZE(RXFIFOSIZE)) rx_buffering( .clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .datain(rx_data), .src_rdy_i(rx_src_rdy), .dst_rdy_o(rx_dst_rdy), .dataout(rxb_data), .src_rdy_o(rxb_src_rdy), .dst_rdy_i(rxb_dst_rdy) ); fifo36_to_fifo19 #(.LE(1)) f36_to_f19 // Little endian because ARM is LE (.clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .f36_datain(rxb_data), .f36_src_rdy_i(rxb_src_rdy), .f36_dst_rdy_o(rxb_dst_rdy), .f19_dataout({dummy,rx18_data}), .f19_src_rdy_o(rx18_src_rdy), .f19_dst_rdy_i(rx18_dst_rdy) ); fifo_to_gpmc #(.ADDR_WIDTH(ADDR_WIDTH), .LAST_ADDR(10'h3ff)) fifo_to_gpmc (.clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .arst(fifo_rst | arst), .data_i(rx18_data), .src_rdy_i(rx18_src_rdy), .dst_rdy_o(rx18_dst_rdy), .EM_D(EM_D_data), .EM_A(EM_A), .EM_CLK(EM_CLK), .EM_OE(~EM_NCS4 & ~EM_NOE), .data_available(rx_have_data)); // //////////////////////////////////////////// // Control path on CS6 // //////////////////////////////////////////////////////////////////// // CTRL TX Data Path wire [17:0] ctrl18_data; wire ctrl18_src_rdy, ctrl18_dst_rdy; wire [35:0] ctrlb_data; wire ctrlb_src_rdy, ctrlb_dst_rdy; gpmc_to_fifo #(.PTR_WIDTH(5), .ADDR_WIDTH(5), .LAST_ADDR(5'h0f)) ctrl_gpmc_to_fifo (.EM_D(EM_D), .EM_A(EM_A[5:1]), .EM_CLK(EM_CLK), .EM_WE(~EM_NCS6 & ~EM_NWE), .clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .arst(fifo_rst | arst), .data_o(ctrl18_data), .src_rdy_o(ctrl18_src_rdy), .dst_rdy_i(ctrl18_dst_rdy), .have_space(/*always*/)); fifo19_to_fifo36 #(.LE(1)) ctrl_f19_to_f36 // Little endian because ARM is LE (.clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .f19_datain({1'b0,ctrl18_data}), .f19_src_rdy_i(ctrl18_src_rdy), .f19_dst_rdy_o(ctrl18_dst_rdy), .f36_dataout(ctrlb_data), .f36_src_rdy_o(ctrlb_src_rdy), .f36_dst_rdy_i(ctrlb_dst_rdy)); fifo_cascade #(.WIDTH(36), .SIZE(9)) ctrl_buffering( .clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .datain(ctrlb_data), .src_rdy_i(ctrlb_src_rdy), .dst_rdy_o(ctrlb_dst_rdy), .dataout(ctrl_data), .src_rdy_o(ctrl_src_rdy), .dst_rdy_i(ctrl_dst_rdy) ); // //////////////////////////////////////////// // CTRL RX Data Path wire [17:0] resp18_data; wire resp18_src_rdy, resp18_dst_rdy; wire [35:0] respb_data; wire respb_src_rdy, respb_dst_rdy; wire resp_dummy; fifo_cascade #(.WIDTH(36), .SIZE(9)) resp_buffering( .clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .datain(resp_data), .src_rdy_i(resp_src_rdy), .dst_rdy_o(resp_dst_rdy), .dataout(respb_data), .src_rdy_o(respb_src_rdy), .dst_rdy_i(respb_dst_rdy) ); fifo36_to_fifo19 #(.LE(1)) resp_f36_to_f19 // Little endian because ARM is LE (.clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .f36_datain(respb_data), .f36_src_rdy_i(respb_src_rdy), .f36_dst_rdy_o(respb_dst_rdy), .f19_dataout({resp_dummy,resp18_data}), .f19_src_rdy_o(resp18_src_rdy), .f19_dst_rdy_i(resp18_dst_rdy) ); fifo_to_gpmc #(.PTR_WIDTH(5), .ADDR_WIDTH(5), .LAST_ADDR(5'h0f)) resp_fifo_to_gpmc (.clk(fifo_clk), .reset(fifo_rst), .clear(1'b0), .arst(fifo_rst | arst), .data_i(resp18_data), .src_rdy_i(resp18_src_rdy), .dst_rdy_o(resp18_dst_rdy), .EM_D(EM_D_ctrl), .EM_A(EM_A[5:1]), .EM_CLK(EM_CLK), .EM_OE(~EM_NCS6 & ~EM_NOE), .data_available(resp_have_data)); //* assign debug = { EM_D, //resp18_data[15:0], //16 EM_A, //10 //resp18_data[17:16], resp18_src_rdy, resp18_dst_rdy, //4 EM_NCS4, EM_NCS6, EM_NWE, EM_NOE, //4 EM_CLK, resp_have_data //2 }; //*/ endmodule // gpmc uhd-3.5.5/fpga/usrp2/gpmc/gpmc_to_fifo.v000066400000000000000000000146541224274632000200600ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //////////////////////////////////////////////////////////////////////// // GPMC to FIFO // // Reads frames from BRAM pages and writes them into FIFO interface. // The GPMC is asynchronously alerted when a BRAM page is available. // // EM_CLK: // A GPMC write transaction consists of one EM_CLK cycle (idle low). // // EM_WE: // Write enable is actually the combination of ~NWE & ~NCS. // The write enable is active for the entire transaction. // // EM_D: // Data is set on the rising edge and written into BRAM on the falling edge. // // EM_A: // Address is set on the rising edge and read by BRAM on the falling edge. //////////////////////////////////////////////////////////////////////// module gpmc_to_fifo #(parameter PTR_WIDTH = 2, parameter ADDR_WIDTH = 10, parameter LAST_ADDR = 10'h3ff) (input [15:0] EM_D, input [ADDR_WIDTH:1] EM_A, input EM_CLK, input EM_WE, input clk, input reset, input clear, input arst, output [17:0] data_o, output src_rdy_o, input dst_rdy_i, output reg have_space); //states for the GPMC side of things reg gpmc_state; reg [ADDR_WIDTH:1] addr; reg [PTR_WIDTH:0] gpmc_ptr, next_gpmc_ptr; localparam GPMC_STATE_START = 0; localparam GPMC_STATE_FILL = 1; //states for the FIFO side of things reg [1:0] fifo_state; reg [ADDR_WIDTH-1:0] counter; reg [ADDR_WIDTH-1:0] last_counter; reg [ADDR_WIDTH-1:0] last_xfer; reg [PTR_WIDTH:0] fifo_ptr; localparam FIFO_STATE_CLAIM = 0; localparam FIFO_STATE_EMPTY = 1; localparam FIFO_STATE_PRE = 2; //------------------------------------------------------------------ // State machine to control the data from GPMC to BRAM //------------------------------------------------------------------ always @(negedge EM_CLK or posedge arst) begin if (arst) begin gpmc_state <= GPMC_STATE_START; gpmc_ptr <= 0; next_gpmc_ptr <= 0; addr <= 0; end else if (EM_WE) begin addr <= EM_A + 1; case(gpmc_state) GPMC_STATE_START: begin if (EM_A == 0) begin gpmc_state <= GPMC_STATE_FILL; next_gpmc_ptr <= gpmc_ptr + 1; end end GPMC_STATE_FILL: begin if (addr == LAST_ADDR) begin gpmc_state <= GPMC_STATE_START; gpmc_ptr <= next_gpmc_ptr; addr <= 0; end end endcase //gpmc_state end //EM_WE end //always //------------------------------------------------------------------ // A block ram is available to empty when the pointers dont match. //------------------------------------------------------------------ wire [PTR_WIDTH:0] safe_gpmc_ptr; cross_clock_reader #(.WIDTH(PTR_WIDTH+1)) read_gpmc_ptr (.clk(clk), .rst(reset | clear), .in(gpmc_ptr), .out(safe_gpmc_ptr)); wire bram_available_to_empty = safe_gpmc_ptr != fifo_ptr; //------------------------------------------------------------------ // Glich free generation of have space signal: // High when the fifo pointer has not caught up to the gpmc pointer. //------------------------------------------------------------------ wire [PTR_WIDTH:0] safe_next_gpmc_ptr; cross_clock_reader #(.WIDTH(PTR_WIDTH+1)) read_next_gpmc_ptr (.clk(clk), .rst(reset | clear), .in(next_gpmc_ptr), .out(safe_next_gpmc_ptr)); wire [PTR_WIDTH:0] fifo_ptr_next = fifo_ptr + 1; always @(posedge clk) if (reset | clear) have_space <= 0; else have_space <= (fifo_ptr ^ (1 << PTR_WIDTH)) != safe_next_gpmc_ptr; //------------------------------------------------------------------ // State machine to control the data from BRAM to FIFO //------------------------------------------------------------------ always @(posedge clk) begin if (reset | clear) begin fifo_state <= FIFO_STATE_CLAIM; fifo_ptr <= 0; counter <= 0; end else begin case(fifo_state) FIFO_STATE_CLAIM: begin if (bram_available_to_empty && data_o[16]) fifo_state <= FIFO_STATE_PRE; counter <= 0; end FIFO_STATE_PRE: begin fifo_state <= FIFO_STATE_EMPTY; counter <= counter + 1; end FIFO_STATE_EMPTY: begin if (src_rdy_o && dst_rdy_i && data_o[17]) begin fifo_state <= FIFO_STATE_CLAIM; fifo_ptr <= fifo_ptr + 1; counter <= 0; end else if (src_rdy_o && dst_rdy_i) begin counter <= counter + 1; end end endcase //fifo_state end end //always wire enable = (fifo_state != FIFO_STATE_EMPTY) || dst_rdy_i; assign src_rdy_o = fifo_state == FIFO_STATE_EMPTY; //instantiate dual ported bram for async read + write ram_2port #(.DWIDTH(16),.AWIDTH(PTR_WIDTH + ADDR_WIDTH)) async_fifo_bram (.clka(~EM_CLK),.ena(1'b1),.wea(EM_WE), .addra({gpmc_ptr[PTR_WIDTH-1:0], addr}),.dia(EM_D),.doa(), .clkb(clk),.enb(enable),.web(1'b0), .addrb({fifo_ptr[PTR_WIDTH-1:0], counter}),.dib(18'h3ffff),.dob(data_o[15:0])); //store the vita length -> last xfer count always @(posedge clk) begin if (src_rdy_o && dst_rdy_i && data_o[16]) begin last_xfer <= {data_o[ADDR_WIDTH-2:0], 1'b0}; end end //logic for start and end of frame always @(posedge clk) if (enable) last_counter <= counter; assign data_o[17] = !data_o[16] && ((last_counter + 1'b1) == last_xfer); assign data_o[16] = last_counter == 0; endmodule // gpmc_to_fifo uhd-3.5.5/fpga/usrp2/models/000077500000000000000000000000001224274632000155615ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/models/BUFG.v000066400000000000000000000015411224274632000164740ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/BUFG.v,v 1.5 2005/03/14 22:32:51 yanx Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 8.1i (I.13) // \ \ Description : Xilinx Functional Simulation Library Component // / / Global Clock Buffer // /___/ /\ Filename : BUFG.v // \ \ / \ Timestamp : Thu Mar 25 16:42:14 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // End Revision `timescale 100 ps / 10 ps module BUFG (O, I); output O; input I; buf B1 (O, I); endmodule uhd-3.5.5/fpga/usrp2/models/CY7C1356C/000077500000000000000000000000001224274632000167105ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/models/CY7C1356C/cy1356.inp000066400000000000000000000213501224274632000203530ustar00rootroot00000000000000/*Address inputs only 0=LOW "Data is in HEX, four bytes (LSB,MSB)" 1=HIGH ZZZZZZZZZZZZZZZZ=Tri-state G-WRITE = Global Write XXXXXXXXXXXXXXXX= Don't care B-WRITE = Byte Write YYYY=unknown BG-WRITE = BURST GLOBAL WRITE BB-WRITE = BURST BYTE WRITE */ // CE3# BW2# ADV/LD# // CEN# CE2 WE# // Add IN OUT CE1# BW1# 0000000000000000_XXXXXXXXXXXXXXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000001_XXXXXXXXXXXXXXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000010_0000000000000000_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000011_0000000000000001_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000100_0000000000000010_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000101_0000000000000011_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000110_0000000000000100_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000111_0000000000000101_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001000_0000000000000110_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001001_0000000000000111_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001010_0000000000001000_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001011_0000000000001001_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001100_0000000000001010_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001101_0000000000001011_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001110_0000000000001100_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001111_0000000000001101_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000000000_0000000000001110_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000000001_0000000000001111_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000000010_xxxxxxxxxxxxxxxx_0000000000000000_0_0_1_0_1_X_X_0 0000000000000011_xxxxxxxxxxxxxxxx_0000000000000001_0_0_1_0_1_X_X_0 0000000000000100_xxxxxxxxxxxxxxxx_0000000000000010_0_0_1_0_1_X_X_0 0000000000000101_xxxxxxxxxxxxxxxx_0000000000000011_0_0_1_0_1_X_X_0 0000000000000110_xxxxxxxxxxxxxxxx_0000000000000100_0_0_1_0_1_X_X_0 0000000000000111_xxxxxxxxxxxxxxxx_0000000000000101_0_0_1_0_1_X_X_0 0000000000001000_xxxxxxxxxxxxxxxx_0000000000000110_0_0_1_0_1_X_X_0 0000000000001001_xxxxxxxxxxxxxxxx_0000000000000111_0_0_1_0_1_X_X_0 0000000000001010_xxxxxxxxxxxxxxxx_0000000000001000_0_0_1_0_1_X_X_0 0000000000001011_xxxxxxxxxxxxxxxx_0000000000001001_0_0_1_0_1_X_X_0 0000000000001100_xxxxxxxxxxxxxxxx_0000000000001010_0_0_1_0_1_X_X_0 0000000000001101_xxxxxxxxxxxxxxxx_0000000000001011_0_0_1_0_1_X_X_0 0000000000001110_xxxxxxxxxxxxxxxx_0000000000001100_0_0_1_0_1_X_X_0 0000000000001111_xxxxxxxxxxxxxxxx_0000000000001101_0_0_1_0_1_X_X_0 0000000000000000_xxxxxxxxxxxxxxxx_0000000000001110_0_0_1_0_0_0_0_0 0000000000001111_xxxxxxxxxxxxxxxx_0000000000001111_0_0_1_0_1_X_X_0 0000000000000000_0001000100010001_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_1_0_0 0000000000000000_xxxxxxxxxxxxxxxx_0000000000001111_0_0_1_0_1_X_X_0 0000000000001100_XXXX1010XXXX1010_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_0_0 0000000000001011_xxxxxxxxxxxxxxxx_0001101000011010_0_0_1_0_1_X_X_0 0000000000000111_0010001000100010_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_1_0 0000000000000111_xxxxxxxxxxxxxxxx_0000000000001011_0_0_1_0_1_X_X_0 0000000000001000_001100110011XXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000001001_xxxxxxxxxxxxxxxx_0011001100110111_0_0_1_0_0_0_0_0 0000000000001001_xxxxxxxxxxxxxxxx_0000000000001000_0_0_1_0_0_0_1_0 0000000000001001_0100010001000100_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_1_1_0 0000000000001010_XXXX01010101XXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_1_1_0 0000000000000000_xxxxxxxxxxxxxxxx_0100010101010100_0_0_1_0_0_0_0_0 0000000000000001_xxxxxxxxxxxxxxxx_0000000000001010_0_0_1_0_0_0_0_0 0000000000001001_0110011001100110_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000000000_0111011101110111_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000000101_xxxxxxxxxxxxxxxx_0100010101010100_0_0_1_0_0_0_1_0 0000000000000100_xxxxxxxxxxxxxxxx_0110011001100110_0_0_1_0_0_1_0_0 0000000000000001_1000XXXX1000XXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000000010_XXXX1001XXXX1001_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000001100_xxxxxxxxxxxxxxxx_0111011101110111_0_0_1_0_0_1_1_0 0000000000001101_xxxxxxxxxxxxxxxx_0000000000000010_0_0_1_0_0_0_0_0 0000000000001010_00010001XXXXXXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000001011_0000111100001111_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 0000000000001100_xxxxxxxxxxxxxxxx_0000000000001010_0_0_1_0_1_X_X_0 0000000000000011_xxxxxxxxxxxxxxxx_0000000000001011_0_0_1_0_0_0_0_0 0000000000000100_xxxxxxxxxxxxxxxx_0001000100100010_0_0_1_0_0_0_1_0 0000000000000101_0011001100110011_xxxxxxxxxxxxxxxx_0_0_1_0_0_0_0_0 0000000000000011_010001000100XXXX_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000100_0101010101010101_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000101_xxxxxxxxxxxxxxxx_0011001100110011_0_0_1_0_1_X_X_0 0000000000000110_xxxxxxxxxxxxxxxx_0100010001001001_0_0_1_0_0_0_0_0 0000000000000111_xxxxxxxxxxxxxxxx_0101010101010101_0_0_1_0_0_0_0_0 0000000000001000_0110011001100110_xxxxxxxxxxxxxxxx_0_0_1_0_0_0_0_0 0000000000000110_0111011101110111_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000111_1000100010001000_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000001000_xxxxxxxxxxxxxxxx_0110011001100110_0_0_1_0_1_X_X_0 0000000000000110_xxxxxxxxxxxxxxxx_0111011101110111_0_0_1_0_0_0_1_0 0000000000000111_xxxxxxxxxxxxxxxx_1000100010001000_0_0_1_0_0_1_0_0 0000000000001000_0001XXXX0001XXXX_xxxxxxxxxxxxxxxx_0_0_1_0_0_0_1_0 0000000000000110_XXXX0001XXXX0001_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000111_0001XXXX0001XXXX_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000001000_xxxxxxxxxxxxxxxx_0001011000010110_0_0_1_0_1_X_X_0 0000000000001001_xxxxxxxxxxxxxxxx_0111000101110001_0_0_1_0_0_1_1_0 0000000000001010_xxxxxxxxxxxxxxxx_0001100000011000_0_0_1_0_0_0_0_0 0000000000001011_00100010XXXXXXXX_xxxxxxxxxxxxxxxx_0_0_1_0_0_1_1_0 0000000000000001_XXXXXXXX00110011_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000010_01000100XXXXXXXX_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000011_xxxxxxxxxxxxxxxx_0111011101110111_0_0_1_0_1_X_X_0 0000000000000100_xxxxxxxxxxxxxxxx_0000000000000010_0_0_1_0_1_X_X_0 0000000000000001_xxxxxxxxxxxxxxxx_0011001100110011_0_0_1_0_0_0_0_0 0000000000000010_xxxxxxxxxxxxxxxx_0100010001001001_0_0_1_0_0_0_0_0 0000000000000011_0001000100010001_xxxxxxxxxxxxxxxx_0_0_1_0_0_0_0_0 0000000000000100_0010001000100010_xxxxxxxxxxxxxxxx_0_0_1_0_0_0_0_0 0000000000000001_0011001100110011_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000010_0100010001000100_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000011_xxxxxxxxxxxxxxxx_0001000100010001_0_0_1_0_1_X_X_0 0000000000000100_xxxxxxxxxxxxxxxx_0010001000100010_0_0_1_0_1_X_X_0 0000000000000101_xxxxxxxxxxxxxxxx_0011001100110011_0_0_1_0_0_0_0_0 0000000000000110_xxxxxxxxxxxxxxxx_0100010001000100_0_X_X_X_X_0_0_1 0000000000000111_0101010101010101_xxxxxxxxxxxxxxxx_0_X_X_X_X_1_1_1 0000000000001000_0110011001100110_xxxxxxxxxxxxxxxx_0_X_X_X_X_0_0_1 0000000000000101_01110111XXXXXXXX_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 XXXXXXXXXXXXXXXX_XXXXXXXX10001000_xxxxxxxxxxxxxxxx_0_X_X_X_X_X_X_1 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0101010101010101_0_X_X_X_X_X_X_1 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0110011001100110_0_X_X_X_X_X_X_1 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0111011101110001_0_1_X_X_X_X_X_0 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0100010010001000_1_X_X_X_X_X_X_X XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0100010010001000_0_X_0_X_X_X_X_0 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_ZZZZZZZZZZZZZZZZ_0_X_X_1_X_X_X_0 0000000000000101_xxxxxxxxxxxxxxxx_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_ZZZZZZZZZZZZZZZZ_1_X_X_X_X_X_X_X 0000000000001000_xxxxxxxxxxxxxxxx_ZZZZZZZZZZZZZZZZ_0_0_1_0_0_0_1_0 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0101010101010101_1_X_X_X_X_X_X_X 0000000000000111_xxxxxxxxxxxxxxxx_0101010101010101_0_0_1_0_1_X_X_0 xxxxxxxxxxxxxxxx_XXXXXXXXXXXXXXXX_ZZZZZZZZZZZZZZZZ_1_X_X_X_X_X_X_X 0000000000001000_0000XXXX0000XXXX_ZZZZZZZZZZZZZZZZ_0_0_1_0_1_X_X_0 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0111011101110001_1_X_X_X_X_X_X_X XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0111011101110001_1_X_X_X_X_X_X_X 0000000000000000_xxxxxxxxxxxxxxxx_0111011101110001_0_0_1_0_1_X_X_0 0000000000000001_xxxxxxxxxxxxxxxx_0000100000001000_0_0_1_0_1_X_X_0 0000000000000001_xxxxxxxxxxxxxxxx_0110011001100110_0_0_1_0_0_1_1_0 0000000000000001_xxxxxxxxxxxxxxxx_0001000100010001_0_0_1_0_0_1_1_0 0000000000000001_0001XXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0_0_1_0_0_0_1_0 0000000000000001_XXXX0010XXXXXXXX_xxxxxxxxxxxxxxxx_0_0_1_0_0_1_0_0 0000000000000001_XXXXXXXX0011XXXX_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 0000000000000000_XXXXXXXXXXXX0100_xxxxxxxxxxxxxxxx_0_0_1_0_1_X_X_0 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0001001000110100_0_X_X_X_X_X_X_1 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0110011001100110_0_X_X_X_X_X_X_1 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0001001000110100_0_X_X_X_X_X_X_1 XXXXXXXXXXXXXXXX_xxxxxxxxxxxxxxxx_0010001000100010_0_1_X_X_X_X_X_0 xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxx_0011001100110011_0_1_x_x_x_x_x_x xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxx_ZZZZZZZZZZZZZZZZ_0_1_x_x_x_x_x_x //Lines =126 uhd-3.5.5/fpga/usrp2/models/CY7C1356C/cy1356.v000066400000000000000000000275521224274632000200440ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `define sb200 //************************************************************************ //************************************************************************ //** This model is the property of Cypress Semiconductor Corp and is ** //** protected by the US copyright laws, any unauthorized copying and ** //** distribution is prohibited. Cypress reserves the right to change ** //** any of the functional specifications without any prior notice. ** //** Cypress is not liable for any damages which may result from the ** //** use of this functional model. ** //** ** //** File Name : CY7C1356 ** //** ** //** Revision : 1.0 - 08/03/2004 ** //** ** //** The timings are to be selected by the user depending upon the ** //** frequency of operation from the datasheet. ** //** ** //** Model : CY7C1356C - NoBL Pipelined SRAM ** //** Queries : MPD Applications ** //** Website: www.cypress.com/support ** //************************************************************************ //************************************************************************ `timescale 1ns / 10ps // NOTE : Any setup/hold errors will force input signal to x state // or if results indeterminant (write addr) core is reset x // define fixed values `define wordsize (18 -1) // `define no_words (1048576 -1) // 1M x 18 RAM module cy1356 ( d, clk, a, bws, we_b, adv_lb, ce1b, ce2, ce3b, oeb, cenb, mode); inout [`wordsize:0] d; input clk, // clock input (R) we_b, // byte write enable(L) adv_lb, // burst(H)/load(L) address ce1b, // chip enable(L) ce2, // chip enable(H) ce3b, // chip enable(L) oeb, // async output enable(L)(read) cenb, // clock enable(L) mode; // interleave(H)/linear(L) burst input [1:0] bws; // byte write select(L) input [18:0] a; // address bus // *** NOTE DEVICE OPERATES #0.01 AFTER CLOCK *** // *** THEREFORE DELAYS HAVE TO TAKE THIS INTO ACCOUNT *** //********************************************************************** // Timings for 225MHz //********************************************************************** `ifdef sb225 `define teohz #2.8 `define teolz #0 `define tchz #2.8 `define tclz #1.25 `define tco #2.8 `define tdoh #1.25 `define tas 1.4 `define tah 0.4 `endif //*********************************************************************** // Timings for 200MHz //********************************************************************** `ifdef sb200 `define teohz #3.2 `define teolz #0 `define tchz #3.2 `define tclz #1.5 `define tco #3.2 `define tdoh #1.5 `define tas 1.5 `define tah 0.5 `endif //*********************************************************************** //********************************************************************** // This model is configured for 166 MHz Operation (CY7C1356-166). //********************************************************************** `ifdef sb166 `define teohz #3.5 `define teolz #0 `define tchz #3.5 `define tclz #1.5 `define tco #3.5 `define tdoh #1.5 `define tas 1.5 `define tah 0.5 `endif reg notifier; // error support reg's reg noti1_0; reg noti1_1; reg noti1_2; reg noti1_3; reg noti1_4; reg noti1_5; reg noti1_6; reg noti2; wire chipen; // combined chip enable (high for an active chip) reg chipen_d; // _d = delayed reg chipen_o; // _o = operational = delayed sig or _d sig wire writestate; // holds 1 if any of writebus is low reg writestate_d; reg writestate_o; wire loadcyc; // holds 1 for load cycles (setup and hold checks) wire writecyc; // holds 1 for write cycles (setup and hold checks) wire [1:0] bws; // holds the bws values wire [1:0] writebusb; // holds the "internal" bws bus based on we_b reg [1:0] writebusb_d; reg [1:0] writebusb_o; wire [2:0] operation; // holds chipen, adv_ld and writestate reg [2:0] operation_d; reg [2:0] operation_o; wire [18:0] a; // address input bus reg [18:0] a_d; reg [18:0] a_o; reg [`wordsize:0] do; // data output reg reg [`wordsize:0] di; // data input bus reg [`wordsize:0] dd; // data delayed bus wire tristate; // tristate output (on a bytewise basis) when asserted reg cetri; // register set by chip disable which sets the tristate reg oetri; // register set by oe which sets the tristate reg enable; // register to make the ram enabled when equal to 1 reg [18:0] addreg; // register to hold the input address reg [`wordsize:0] pipereg; // register for the output data reg [`wordsize:0] mem [0:`no_words]; // RAM array reg [`wordsize:0] writeword; // temporary holding register for the write data reg burstinit; // register to hold a[0] for burst type reg [18:0] i; // temporary register used to write to all mem locs. reg writetri; // tristate reg lw, bw; // pipelined write functions reg we_bl; wire [`wordsize:0] d = !tristate ? do[`wordsize:0] : 18'bz ; // data bus assign chipen = (adv_lb == 1 ) ? chipen_d : ~ce1b & ce2 & ~ce3b ; assign writestate = ~& writebusb; assign operation = {chipen, adv_lb, writestate}; assign writebusb[1:0] = ( we_b ==0 & adv_lb ==0) ? bws[1:0]: ( we_b ==1 & adv_lb ==0) ? 2'b11 : ( we_bl ==0 & adv_lb ==1) ? bws[1:0]: ( we_bl ==1 & adv_lb ==1) ? 2'b11 : 2'bxx ; assign loadcyc = chipen & !cenb; assign writecyc = writestate_d & enable & ~cenb & chipen; // check assign tristate = cetri | writetri | oetri; pullup (mode); // formers for notices/errors etc // //$display("NOTICE : xxx :"); //$display("WARNING : xxx :"); //$display("ERROR *** : xxx :"); // initialize the output to be tri-state, ram to be disabled initial begin // signals writetri = 0; cetri = 1; enable = 0; lw = 0; bw = 0; // error signals notifier = 0; noti1_0 = 0; noti1_1 = 0; noti1_2 = 0; noti1_3 = 0; noti1_4 = 0; noti1_5 = 0; noti1_6 = 0; noti2 = 0; end // asynchronous OE always @(oeb) begin if (oeb == 1) oetri <= `teohz 1; else oetri <= `teolz 0; end // *** SETUP / HOLD VIOLATIONS *** always @(noti2) begin $display("NOTICE : 020 : Data bus corruption"); force d =18'bx; #1; release d; end always @(noti1_0) begin $display("NOTICE : 010 : Byte write corruption"); force bws = 2'bx; #1; release bws; end always @(noti1_1) begin $display("NOTICE : 011 : Byte enable corruption"); force we_b = 1'bx; #1; release we_b; end always @(noti1_2) begin $display("NOTICE : 012 : CE1B corruption"); force ce1b =1'bx; #1; release ce1b; end always @(noti1_3) begin $display("NOTICE : 013 : CE2 corruption"); force ce2 =1'bx; #1; release ce2; end always @(noti1_4) begin $display("NOTICE : 014 : CE3B corruption"); force ce3b =1'bx; #1; release ce3b; end always @(noti1_5) begin $display("NOTICE : 015 : CENB corruption"); force cenb =1'bx; #1; release cenb; end always @(noti1_6) begin $display("NOTICE : 016 : ADV_LB corruption"); force adv_lb = 1'bx; #1; release adv_lb; end // synchronous functions from clk edge always @(posedge clk) if (!cenb) begin #0.01; // latch conditions on adv_lb if (adv_lb) we_bl <= we_bl; else we_bl <= we_b; chipen_d <= chipen; chipen_o <= chipen; writestate_o <= writestate; writestate_d <= writestate_o; writebusb_o <= writebusb; writebusb_d <= writebusb_o; operation_o <= operation; a_o <= a; a_d <= a_o; di = d; // execute previously pipelined fns if (lw) begin loadwrite; lw =0; end if (bw) begin burstwrite; bw =0; end // decode input/piplined state casex (operation_o) 3'b0?? : turnoff; 3'b101 : setlw; 3'b111 : setbw; 3'b100 : loadread; 3'b110 : burstread; default : unknown; // output unknown values and display an error message endcase do <= `tco pipereg; end // *** task section *** task read; begin if (enable) cetri <= `tclz 0; writetri <= `tchz 0; do <= `tdoh 18'hx; pipereg = mem[addreg]; end endtask task write; begin if (enable) cetri <= `tclz 0; writeword = mem[addreg]; // set up a word to hold the data for the current location /* overwrite the current word for the bytes being written to */ if (!writebusb_d[1]) writeword[17:9] = di[17:9]; if (!writebusb_d[0]) writeword[8:0] = di[8:0]; writeword = writeword & writeword; //convert z to x states mem[addreg] = writeword; // store the new word into the memory location //writetri <= `tchz 1; // tristate the outputs end endtask task setlw; begin lw =1; writetri <= `tchz 1; // tristate the outputs end endtask task setbw; begin bw =1; writetri <= `tchz 1; // tristate the outputs end endtask task loadread; begin burstinit = a_o[0]; addreg = a_o; enable = 1; read; end endtask task loadwrite; begin burstinit = a_d[0]; addreg = a_d; enable = 1; write; end endtask task burstread; begin burst; read; end endtask task burstwrite; begin burst; write; end endtask task unknown; begin do = 18'bx; // $display ("Unknown function: Operation = %b\n", operation); end endtask task turnoff; begin enable = 0; cetri <= `tchz 1; pipereg = 18'h0; end endtask task burst; begin if (burstinit == 0 || mode == 0) begin case (addreg[1:0]) 2'b00: addreg[1:0] = 2'b01; 2'b01: addreg[1:0] = 2'b10; 2'b10: addreg[1:0] = 2'b11; 2'b11: addreg[1:0] = 2'b00; default: addreg[1:0] = 2'bxx; endcase end else begin case (addreg[1:0]) 2'b00: addreg[1:0] = 2'b11; 2'b01: addreg[1:0] = 2'b00; 2'b10: addreg[1:0] = 2'b01; 2'b11: addreg[1:0] = 2'b10; default: addreg[1:0] = 2'bxx; endcase end end endtask // IO checks specify // specify the setup and hold checks // notifier will wipe memory as result is indeterminent $setuphold(posedge clk &&& loadcyc, a, `tas, `tah, notifier); // noti1 should make ip = 'bx; $setuphold(posedge clk, bws, `tas, `tah, noti1_0); $setuphold(posedge clk, we_b, `tas, `tah, noti1_1); $setuphold(posedge clk, ce1b, `tas, `tah, noti1_2); $setuphold(posedge clk, ce2, `tas, `tah, noti1_3); $setuphold(posedge clk, ce3b, `tas, `tah, noti1_4); // noti2 should make d = 18'hxxxxx; $setuphold(posedge clk &&& writecyc, d, `tas, `tah, noti2); // add extra tests here. $setuphold(posedge clk, cenb, `tas, `tah, noti1_5); $setuphold(posedge clk, adv_lb, `tas, `tah, noti1_6); endspecify endmodule uhd-3.5.5/fpga/usrp2/models/CY7C1356C/readme.txt000066400000000000000000000014241224274632000207070ustar00rootroot00000000000000*************************** Cypress Semiconductor MPD Applications Verilog model for NoBL SRAM CY7C1356 Created: August 04, 2004 Rev: 1.0 *************************** This is the verilog model for the CY7C1356 along with the testbench and test vectors. Contact support@cypress.com if you have any questions. This directory has 4 files. including this readme. 1)cy7c1356c.v -> Verilog model for CY7C1356c 2)cy1356.inp -> Test Vector File used for testing the verilog model 3)testbench.v -> Test bench used for testing the verilog model COMPILING METHOD : ------------------ verilog +define+
Ex: verilog +define+sb133 CY7C1356c.v testbench.v VERIFIED WITH: -------------- VERILOG-XL 2.2uhd-3.5.5/fpga/usrp2/models/CY7C1356C/testbench.v000066400000000000000000000103611224274632000210570ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 10ps // // CY7C1356 // Simulatiom of Verilog model // // // // test bench for US vector input // // // define speed 166MHz `define tx10 #6 `define tx08 #4.8 `define tx05 #3 `define tx04 #2.4 `define tx02 #1.2 /* `define tx10 #4.0 // period `define tx08 #3.2 //0.8 period `define tx05 #2.0 //0.5 period 250MHZ `define tx04 #1.6 //0.4 period `define tx02 #0.8 //0.2 period `define tx10 #4.4 // period `define tx08 #3.52 //0.8 period `define tx05 #2.2 //0.5 period 225MHZ `define tx04 #1.76 //0.4 period `define tx02 #0.88 //0.2 period `define tx10 #5 // period `define tx08 #4 //0.8 period `define tx05 #2.5 //0.5 period 200MHZ `define tx04 #2.0 //0.4 period `define tx02 #1.0 //0.2 period */ module rw_test; `define num_vectors 126 `define impi {a[15:0],io[15:0],tsti[15:0],cenb,ce1b,ce2,ce3b,bweb,bwb,adv_lb} reg [57:1] lsim_vectors [1:`num_vectors]; reg clk; reg adv_lb; reg ce1b; //cs1b reg ce2; //cs2 reg ce3b; //cs3b reg [1:0] bwb; reg bweb; reg oeb; reg ftb; reg mode; //lbob reg cenb; //zz reg tp42; //sclk reg tp39; //se reg tp38; //tm reg [19:0] a; reg [17:0] io; reg [17:0] tsti; reg vddq; reg vssqr; reg iosel; wire [17:0] d = iosel ? io[17:0] : 18'bz; reg noti3; reg strb,j; integer vector,i; cy1356 testram ( d, clk, a, bwb, bweb, adv_lb, ce1b, ce2, ce3b, oeb, cenb, mode); initial begin $dumpfile("dumpfile.dump"); $dumpvars(0,rw_test); end initial begin io = 18'bz; ftb = 1; oeb = 0; a[19:16] = 4'h0; mode = 0; strb = 0; tp38 = 0; tp39 = 0; tp42 = 0; `tx02; forever `tx05 strb = ~strb; end initial begin clk = 0; forever `tx05 clk =~clk; end initial begin $readmemb("cy1356.inp", lsim_vectors); //load input vector file `impi = lsim_vectors[1]; //apply 1st test vector for (vector = 2; vector <= `num_vectors; vector = vector + 1) @(posedge strb) begin `impi = lsim_vectors[vector]; io[16:13] = io[07:04]; io[12:09] = io[07:04]; io[07:04] = io[03:00]; io[03:00] = io[03:00]; io[17] = io[16] ^^ io[15] ^^ io[14] ^^ io[13] ^^ io[11] ^^ io[11] ^^ io[10] ^^ io[9]; io[8] = io[7] ^^ io[6] ^^ io[5] ^^ io[4] ^^ io[3] ^^ io[2] ^^ io[1] ^^ io[0]; tsti[16:13] = tsti[07:04]; tsti[12:09] = tsti[07:04]; tsti[07:04] = tsti[03:00]; tsti[03:00] = tsti[03:00]; tsti[17] = tsti[16] ^^ tsti[15] ^^ tsti[14] ^^ tsti[13] ^^ tsti[11] ^^ tsti[11] ^^ tsti[10] ^^ tsti[9]; tsti[8] = tsti[7] ^^ tsti[6] ^^ tsti[5] ^^ tsti[4] ^^ tsti[3] ^^ tsti[2] ^^ tsti[1] ^^ tsti[0]; if (io === 18'hxxxxx) iosel = `tx05 0; else iosel = `tx05 1; end #15 $finish; // This prevents simulation beyond end of test patterns end always@(posedge clk) begin if (io !== 18'hxxxxx) //input cycle begin $display("NOTICE : 001 : line = %d OK",vector -1); end else //do the test begin if (d == tsti) begin $display("NOTICE : 002 : line = %d OK",vector -1); end else begin j =0; for (i =0;i< 18; i=i+1) begin if(tsti[i] !== 1'bx) begin if (d[i] !== tsti[i]) j = 1; end else j = 0; end if (j) $display("ERROR *** : 003 : line = %d data = %b test = %b",vector -1,d,tsti); else $display("NOTICE : 003 : line = %d OK",vector -1); end end end endmodule uhd-3.5.5/fpga/usrp2/models/DCM_SP.v000066400000000000000000001011731224274632000167600ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/DCM_SP.v,v 1.9.4.3 2007/04/11 20:30:19 yanx Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 9.2i (J.36) // \ \ Description : Xilinx Function Simulation Library Component // / / Digital Clock Manager // /___/ /\ Filename : DCM_SP.v // \ \ / \ Timestamp : // \___\/\___\ // // Revision: // 02/28/06 - Initial version. // 05/09/06 - Add clkin_ps_mkup and clkin_ps_mkup_win for phase shifting (CR 229789). // 06/14/06 - Add clkin_ps_mkup_flag for multiple cycle delays (CR233283). // 07/21/06 - Change range of variable phase shifting to +/- integer of 20*(Period-3ns). // Give warning not support initial phase shifting for variable phase shifting. // (CR 235216). // 09/22/06 - Add lock_period and lock_fb to clkfb_div block (CR 418722). // 12/19/06 - Add clkfb_div_en for clkfb2x divider (CR431210). // 04/06/07 - Enable the clock out in clock low time after reset in model // clock_divide_by_2 (CR 437471). // End Revision `timescale 1 ps / 1 ps module DCM_SP ( CLK0, CLK180, CLK270, CLK2X, CLK2X180, CLK90, CLKDV, CLKFX, CLKFX180, LOCKED, PSDONE, STATUS, CLKFB, CLKIN, DSSEN, PSCLK, PSEN, PSINCDEC, RST); parameter CLKDV_DIVIDE = 2.0; parameter integer CLKFX_DIVIDE = 1; parameter integer CLKFX_MULTIPLY = 4; parameter CLKIN_DIVIDE_BY_2 = "FALSE"; parameter CLKIN_PERIOD = 10.0; // non-simulatable parameter CLKOUT_PHASE_SHIFT = "NONE"; parameter CLK_FEEDBACK = "1X"; parameter DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; // non-simulatable parameter DFS_FREQUENCY_MODE = "LOW"; parameter DLL_FREQUENCY_MODE = "LOW"; parameter DSS_MODE = "NONE"; // non-simulatable parameter DUTY_CYCLE_CORRECTION = "TRUE"; parameter FACTORY_JF = 16'hC080; // non-simulatable parameter integer MAXPERCLKIN = 1000000; // non-modifiable simulation parameter parameter integer MAXPERPSCLK = 100000000; // non-modifiable simulation parameter parameter integer PHASE_SHIFT = 0; parameter integer SIM_CLKIN_CYCLE_JITTER = 300; // non-modifiable simulation parameter parameter integer SIM_CLKIN_PERIOD_JITTER = 1000; // non-modifiable simulation parameter parameter STARTUP_WAIT = "FALSE"; // non-simulatable localparam PS_STEP = 25; input CLKFB, CLKIN, DSSEN; input PSCLK, PSEN, PSINCDEC, RST; output CLK0, CLK180, CLK270, CLK2X, CLK2X180, CLK90; output CLKDV, CLKFX, CLKFX180, LOCKED, PSDONE; output [7:0] STATUS; reg CLK0, CLK180, CLK270, CLK2X, CLK2X180, CLK90; reg CLKDV, CLKFX, CLKFX180; wire locked_out_out; wire clkfb_in, clkin_in, dssen_in; wire psclk_in, psen_in, psincdec_in, rst_in; reg clk0_out; reg clk2x_out, clkdv_out; reg clkfx_out, clkfx180_en; reg rst_flag; reg locked_out, psdone_out, ps_overflow_out, ps_lock; reg clkfb_div, clkfb_chk, clkfb_div_en; integer clkdv_cnt; reg [1:0] clkfb_type; reg [8:0] divide_type; reg clkin_type; reg [1:0] ps_type; reg [3:0] deskew_adjust_mode; reg dfs_mode_type; reg dll_mode_type; reg clk1x_type; integer ps_in; reg lock_period, lock_delay, lock_clkin, lock_clkfb; reg first_time_locked; reg en_status; reg ps_overflow_out_ext; reg clkin_lost_out_ext; reg clkfx_lost_out_ext; reg [1:0] lock_out; reg lock_out1_neg; reg lock_fb, lock_ps, lock_ps_dly, lock_fb_dly, lock_fb_dly_tmp; reg fb_delay_found; reg clock_stopped; reg clkin_chkin, clkfb_chkin; wire chk_enable, chk_rst; wire clkin_div; wire lock_period_pulse; wire lock_period_dly, lock_period_dly1; reg clkin_ps, clkin_ps_tmp, clkin_ps_mkup, clkin_ps_mkup_win, clkin_ps_mkup_flag; reg clkin_fb; time FINE_SHIFT_RANGE; //time ps_delay, ps_delay_init, ps_delay_md, ps_delay_all, ps_max_range; integer ps_delay, ps_delay_init, ps_delay_md, ps_delay_all, ps_max_range; integer ps_delay_last; integer ps_acc; time clkin_edge; time clkin_div_edge; time clkin_ps_edge; time delay_edge; time clkin_period [2:0]; time period; integer period_int, period_int2, period_int3, period_ps_tmp; time period_div; integer period_orig_int; time period_orig; time period_ps; time clkout_delay; time fb_delay; time period_fx, remain_fx; time period_dv_high, period_dv_low; time cycle_jitter, period_jitter; reg clkin_window, clkfb_window; reg [2:0] rst_reg; reg [12:0] numerator, denominator, gcd; reg [23:0] i, n, d, p; reg notifier; initial begin #1; if ($realtime == 0) begin $display ("Simulator Resolution Error : Simulator resolution is set to a value greater than 1 ps."); $display ("In order to simulate the DCM_SP, the simulator resolution must be set to 1ps or smaller."); $finish; end end initial begin case (2.0) 1.5 : divide_type = 'd3; 2.0 : divide_type = 'd4; 2.5 : divide_type = 'd5; 3.0 : divide_type = 'd6; 3.5 : divide_type = 'd7; 4.0 : divide_type = 'd8; 4.5 : divide_type = 'd9; 5.0 : divide_type = 'd10; 5.5 : divide_type = 'd11; 6.0 : divide_type = 'd12; 6.5 : divide_type = 'd13; 7.0 : divide_type = 'd14; 7.5 : divide_type = 'd15; 8.0 : divide_type = 'd16; 9.0 : divide_type = 'd18; 10.0 : divide_type = 'd20; 11.0 : divide_type = 'd22; 12.0 : divide_type = 'd24; 13.0 : divide_type = 'd26; 14.0 : divide_type = 'd28; 15.0 : divide_type = 'd30; 16.0 : divide_type = 'd32; default : begin $display("Attribute Syntax Error : The attribute CLKDV_DIVIDE on DCM_SP instance %m is set to %0.1f. Legal values for this attribute are 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, or 16.0.", CLKDV_DIVIDE); $finish; end endcase if ((CLKFX_DIVIDE <= 0) || (32 < CLKFX_DIVIDE)) begin $display("Attribute Syntax Error : The attribute CLKFX_DIVIDE on DCM_SP instance %m is set to %d. Legal values for this attribute are 1 ... 32.", CLKFX_DIVIDE); $finish; end if ((CLKFX_MULTIPLY <= 1) || (32 < CLKFX_MULTIPLY)) begin $display("Attribute Syntax Error : The attribute CLKFX_MULTIPLY on DCM_SP instance %m is set to %d. Legal values for this attribute are 2 ... 32.", CLKFX_MULTIPLY); $finish; end case (CLKIN_DIVIDE_BY_2) "false" : clkin_type = 0; "FALSE" : clkin_type = 0; "true" : clkin_type = 1; "TRUE" : clkin_type = 1; default : begin $display("Attribute Syntax Error : The attribute CLKIN_DIVIDE_BY_2 on DCM_SP instance %m is set to %s. Legal values for this attribute are TRUE or FALSE.", CLKIN_DIVIDE_BY_2); $finish; end endcase case (CLKOUT_PHASE_SHIFT) "NONE" : begin ps_in = 256; ps_type = 0; end "none" : begin ps_in = 256; ps_type = 0; end "FIXED" : begin ps_in = PHASE_SHIFT + 256; ps_type = 1; end "fixed" : begin ps_in = PHASE_SHIFT + 256; ps_type = 1; end "VARIABLE" : begin ps_in = PHASE_SHIFT + 256; ps_type = 2; end "variable" : begin ps_in = PHASE_SHIFT + 256; ps_type = 2; if (PHASE_SHIFT != 0) $display("Attribute Syntax Warning : The attribute PHASE_SHIFT on DCM_SP instance %m is set to %d. The maximum variable phase shift range is only valid when initial phase shift PHASE_SHIFT is zero.", PHASE_SHIFT); end default : begin $display("Attribute Syntax Error : The attribute CLKOUT_PHASE_SHIFT on DCM_SP instance %m is set to %s. Legal values for this attribute are NONE, FIXED or VARIABLE.", CLKOUT_PHASE_SHIFT); $finish; end endcase case (CLK_FEEDBACK) "none" : clkfb_type = 2'b00; "NONE" : clkfb_type = 2'b00; "1x" : clkfb_type = 2'b01; "1X" : clkfb_type = 2'b01; "2x" : clkfb_type = 2'b10; "2X" : clkfb_type = 2'b10; default : begin $display("Attribute Syntax Error : The attribute CLK_FEEDBACK on DCM_SP instance %m is set to %s. Legal values for this attribute are NONE, 1X or 2X.", CLK_FEEDBACK); $finish; end endcase case (DESKEW_ADJUST) "source_synchronous" : deskew_adjust_mode = 8; "SOURCE_SYNCHRONOUS" : deskew_adjust_mode = 8; "system_synchronous" : deskew_adjust_mode = 11; "SYSTEM_SYNCHRONOUS" : deskew_adjust_mode = 11; "0" : deskew_adjust_mode = 0; "1" : deskew_adjust_mode = 1; "2" : deskew_adjust_mode = 2; "3" : deskew_adjust_mode = 3; "4" : deskew_adjust_mode = 4; "5" : deskew_adjust_mode = 5; "6" : deskew_adjust_mode = 6; "7" : deskew_adjust_mode = 7; "8" : deskew_adjust_mode = 8; "9" : deskew_adjust_mode = 9; "10" : deskew_adjust_mode = 10; "11" : deskew_adjust_mode = 11; "12" : deskew_adjust_mode = 12; "13" : deskew_adjust_mode = 13; "14" : deskew_adjust_mode = 14; "15" : deskew_adjust_mode = 15; default : begin $display("Attribute Syntax Error : The attribute DESKEW_ADJUST on DCM_SP instance %m is set to %s. Legal values for this attribute are SOURCE_SYNCHRONOUS, SYSTEM_SYNCHRONOUS or 0 ... 15.", DESKEW_ADJUST); $finish; end endcase case (DFS_FREQUENCY_MODE) "high" : dfs_mode_type = 1; "HIGH" : dfs_mode_type = 1; "low" : dfs_mode_type = 0; "LOW" : dfs_mode_type = 0; default : begin $display("Attribute Syntax Error : The attribute DFS_FREQUENCY_MODE on DCM_SP instance %m is set to %s. Legal values for this attribute are HIGH or LOW.", DFS_FREQUENCY_MODE); $finish; end endcase period_jitter = SIM_CLKIN_PERIOD_JITTER; cycle_jitter = SIM_CLKIN_CYCLE_JITTER; case (DLL_FREQUENCY_MODE) "high" : dll_mode_type = 1; "HIGH" : dll_mode_type = 1; "low" : dll_mode_type = 0; "LOW" : dll_mode_type = 0; default : begin $display("Attribute Syntax Error : The attribute DLL_FREQUENCY_MODE on DCM_SP instance %m is set to %s. Legal values for this attribute are HIGH or LOW.", DLL_FREQUENCY_MODE); $finish; end endcase if ((dll_mode_type ==1) && (clkfb_type == 2'b10)) begin $display("Attribute Syntax Error : The attributes DLL_FREQUENCY_MODE on DCM_SP instance %m is set to %s and CLK_FEEDBACK is set to %s. CLK_FEEDBACK 2X is not supported when DLL_FREQUENCY_MODE is HIGH.", DLL_FREQUENCY_MODE, CLK_FEEDBACK); $finish; end case (DSS_MODE) "none" : ; "NONE" : ; default : begin $display("Attribute Syntax Error : The attribute DSS_MODE on DCM_SP instance %m is set to %s. Legal values for this attribute is NONE.", DSS_MODE); $finish; end endcase case (DUTY_CYCLE_CORRECTION) "false" : clk1x_type = 0; "FALSE" : clk1x_type = 0; "true" : clk1x_type = 1; "TRUE" : clk1x_type = 1; default : begin $display("Attribute Syntax Error : The attribute DUTY_CYCLE_CORRECTION on DCM_SP instance %m is set to %s. Legal values for this attribute are TRUE or FALSE.", DUTY_CYCLE_CORRECTION); $finish; end endcase if ((PHASE_SHIFT < -255) || (PHASE_SHIFT > 255)) begin $display("Attribute Syntax Error : The attribute PHASE_SHIFT on DCM_SP instance %m is set to %d. Legal values for this attribute are -255 ... 255.", PHASE_SHIFT); $display("Error : PHASE_SHIFT = %d is not -255 ... 255.", PHASE_SHIFT); $finish; end case (STARTUP_WAIT) "false" : ; "FALSE" : ; "true" : ; "TRUE" : ; default : begin $display("Attribute Syntax Error : The attribute STARTUP_WAIT on DCM_SP instance %m is set to %s. Legal values for this attribute are TRUE or FALSE.", STARTUP_WAIT); $finish; end endcase end // // fx parameters // initial begin gcd = 1; for (i = 2; i <= CLKFX_MULTIPLY; i = i + 1) begin if (((CLKFX_MULTIPLY % i) == 0) && ((CLKFX_DIVIDE % i) == 0)) gcd = i; end numerator = CLKFX_MULTIPLY / gcd; denominator = CLKFX_DIVIDE / gcd; end // // input wire delays // buf b_clkin (clkin_in, CLKIN); buf b_clkfb (clkfb_in, CLKFB); buf b_dssen (dssen_in, DSSEN); buf b_psclk (psclk_in, PSCLK); buf b_psen (psen_in, PSEN); buf b_psincdec (psincdec_in, PSINCDEC); buf b_rst (rst_in, RST); buf #100 b_LOCKED (LOCKED, locked_out_out); buf #100 b_PSDONE (PSDONE, psdone_out); buf b_ps_overflow (STATUS[0], ps_overflow_out_ext); buf b_clkin_lost (STATUS[1], clkin_lost_out_ext); buf b_clkfx_lost (STATUS[2], clkfx_lost_out_ext); assign STATUS[7:3] = 5'b0; dcm_sp_clock_divide_by_2 i_clock_divide_by_2 (clkin_in, clkin_type, clkin_div, rst_in); dcm_sp_maximum_period_check #("CLKIN", MAXPERCLKIN) i_max_clkin (clkin_in, rst_in); dcm_sp_maximum_period_check #("PSCLK", MAXPERPSCLK) i_max_psclk (psclk_in, rst_in); dcm_sp_clock_lost i_clkin_lost (clkin_in, first_time_locked, clkin_lost_out, rst_in); dcm_sp_clock_lost i_clkfx_lost (CLKFX, first_time_locked, clkfx_lost_out, rst_in); always @(rst_in or en_status or clkfx_lost_out or clkin_lost_out or ps_overflow_out) if (rst_in == 1 || en_status == 0) begin ps_overflow_out_ext = 0; clkin_lost_out_ext = 0; clkfx_lost_out_ext = 0; end else begin ps_overflow_out_ext = ps_overflow_out; clkin_lost_out_ext = clkin_lost_out; clkfx_lost_out_ext = clkfx_lost_out; end always @(posedge rst_in or posedge LOCKED) if (rst_in == 1) en_status <= 0; else en_status <= 1; always @(clkin_div) clkin_ps_tmp <= #(ps_delay_md) clkin_div; always @(clkin_ps_tmp or clkin_ps_mkup or clkin_ps_mkup_win) if (clkin_ps_mkup_win) clkin_ps = clkin_ps_mkup; else clkin_ps = clkin_ps_tmp; always @(ps_delay_last or period_int or ps_delay) begin period_int2 = 2 * period_int; period_int3 = 3 * period_int; if ((ps_delay_last >= period_int && ps_delay < period_int) || (ps_delay_last >= period_int2 && ps_delay < period_int2) || (ps_delay_last >= period_int3 && ps_delay < period_int3)) clkin_ps_mkup_flag = 1; else clkin_ps_mkup_flag = 0; end always @(posedge clkin_div or negedge clkin_div) begin if (ps_type == 2'b10) begin if ((ps_delay_last > 0 && ps_delay <= 0 ) || clkin_ps_mkup_flag == 1) begin if (clkin_div) begin clkin_ps_mkup_win <= 1; clkin_ps_mkup <= 1; #1; @(negedge clkin_div) begin clkin_ps_mkup_win <= 1; clkin_ps_mkup <= 0; end end else begin clkin_ps_mkup_win <= 0; clkin_ps_mkup <= 0; #1; @(posedge clkin_div) begin clkin_ps_mkup_win <= 1; clkin_ps_mkup <= 1; end @(negedge clkin_div) begin clkin_ps_mkup_win <= 1; clkin_ps_mkup <= 0; end end end else begin clkin_ps_mkup_win <= 0; clkin_ps_mkup <= 0; end ps_delay_last <= ps_delay; end end always @(clkin_ps or lock_fb) clkin_fb = clkin_ps & lock_fb; always @(negedge clkfb_in or posedge rst_in) if (rst_in) clkfb_div_en <= 0; else if (lock_fb_dly && lock_period && lock_fb && ~clkin_ps) clkfb_div_en <= 1; always @(posedge clkfb_in or posedge rst_in) if (rst_in) clkfb_div <= 0; else if (clkfb_div_en ) clkfb_div <= ~clkfb_div; always @(clkfb_in or clkfb_div ) if (clkfb_type == 2'b10 ) clkfb_chk = clkfb_div; else clkfb_chk = clkfb_in & lock_fb_dly; always @(posedge clkin_fb or posedge chk_rst) if (chk_rst) clkin_chkin <= 0; else clkin_chkin <= 1; always @(posedge clkfb_chk or posedge chk_rst) if (chk_rst) clkfb_chkin <= 0; else clkfb_chkin <= 1; assign chk_rst = (rst_in==1 || clock_stopped==1 ) ? 1 : 0; assign chk_enable = (clkin_chkin == 1 && clkfb_chkin == 1 && lock_ps ==1 && lock_fb ==1 && lock_fb_dly == 1) ? 1 : 0; always @(posedge clkin_div or posedge rst_in) if (rst_in) begin period_div <= 0; clkin_div_edge <= 0; end else if ( clkin_div ==1 ) begin clkin_div_edge <= $time; if (($time - clkin_div_edge) <= (1.5 * period_div)) period_div <= $time - clkin_div_edge; else if ((period_div == 0) && (clkin_div_edge != 0)) period_div <= $time - clkin_div_edge; end always @(posedge clkin_ps or posedge rst_in) if (rst_in) begin period_ps <= 0; clkin_ps_edge <= 0; end else if (clkin_ps == 1 ) begin clkin_ps_edge <= $time; if (($time - clkin_ps_edge) <= (1.5 * period_ps)) period_ps <= $time - clkin_ps_edge; else if ((period_ps == 0) && (clkin_ps_edge != 0)) period_ps <= $time - clkin_ps_edge; end always @(posedge clkin_ps) begin lock_ps <= lock_period; lock_ps_dly <= lock_ps; lock_fb <= lock_ps_dly; lock_fb_dly_tmp <= lock_fb; end always @(negedge clkin_ps or posedge rst_in) if (rst_in) lock_fb_dly <= 1'b0; else lock_fb_dly <= #(period/4) lock_fb_dly_tmp; always @(period or fb_delay ) if (fb_delay == 0) clkout_delay = 0; else clkout_delay = period - fb_delay; // // generate master reset signal // always @(posedge clkin_in) begin rst_reg[0] <= rst_in; rst_reg[1] <= rst_reg[0] & rst_in; rst_reg[2] <= rst_reg[1] & rst_reg[0] & rst_in; end reg rst_tmp1, rst_tmp2; initial begin rst_tmp1 = 0; rst_tmp2 = 0; rst_flag = 0; end always @(rst_in) begin if (rst_in) rst_flag = 0; rst_tmp1 = rst_in; if (rst_tmp1 == 0 && rst_tmp2 == 1) begin if ((rst_reg[2] & rst_reg[1] & rst_reg[0]) == 0) begin rst_flag = 1; $display("Input Error : RST on instance %m must be asserted for 3 CLKIN clock cycles."); end end rst_tmp2 = rst_tmp1; end initial begin CLK0 = 0; CLK180 = 0; CLK270 = 0; CLK2X = 0; CLK2X180 = 0; CLK90 = 0; CLKDV = 0; CLKFX = 0; CLKFX180 = 0; clk0_out = 0; clk2x_out = 0; clkdv_out = 0; clkdv_cnt = 0; clkfb_window = 0; clkfx_out = 0; clkfx180_en = 0; clkin_div_edge = 0; clkin_period[0] = 0; clkin_period[1] = 0; clkin_period[2] = 0; clkin_edge = 0; clkin_ps_edge = 0; clkin_window = 0; clkout_delay = 0; clock_stopped = 1; fb_delay = 0; fb_delay_found = 0; lock_clkfb = 0; lock_clkin = 0; lock_delay = 0; lock_fb = 0; lock_fb_dly = 0; lock_out = 2'b00; lock_out1_neg = 0; lock_period = 0; lock_ps = 0; lock_ps_dly = 0; locked_out = 0; period = 0; period_int = 0; period_int2 = 0; period_int3 = 0; period_div = 0; period_fx = 0; period_orig = 0; period_orig_int = 0; period_ps = 0; psdone_out = 0; ps_delay = 0; ps_delay_md = 0; ps_delay_init = 0; ps_acc = 0; ps_delay_all = 0; ps_lock = 0; ps_overflow_out = 0; ps_overflow_out_ext = 0; clkin_lost_out_ext = 0; clkfx_lost_out_ext = 0; rst_reg = 3'b000; first_time_locked = 0; en_status = 0; clkfb_div = 0; clkin_chkin = 0; clkfb_chkin = 0; clkin_ps_mkup = 0; clkin_ps_mkup_win = 0; clkin_ps_mkup_flag = 0; ps_delay_last = 0; clkin_ps_tmp = 0; end // RST less than 3 cycles, lock = x assign locked_out_out = (rst_flag) ? 1'bx : locked_out; // // detect_first_time_locked // always @(posedge locked_out) if (first_time_locked == 0) first_time_locked <= 1; // // phase shift parameters // always @(posedge lock_period) ps_delay_init <= ps_in * period_orig /256; always @(period) begin period_int = period; if (clkin_type==1) period_ps_tmp = 2 * period; else period_ps_tmp = period; if (period_ps_tmp > 3000) ps_max_range = 20 * (period_ps_tmp - 3000)/1000; else ps_max_range = 0; end always @(ps_delay or rst_in or period_int or lock_period) if ( rst_in) ps_delay_md = 0; else if (lock_period) begin ps_delay_md = period_int + ps_delay % period_int; end always @(posedge psclk_in or posedge rst_in or posedge lock_period_pulse) if (rst_in) begin ps_delay <= 0; ps_overflow_out <= 0; ps_acc <= 0; end else if (lock_period_pulse) ps_delay <= ps_delay_init; else if (ps_type == 2'b10) if (psen_in) begin if (ps_lock == 1) $display(" Warning : Please wait for PSDONE signal before adjusting the Phase Shift."); else if (lock_ps) begin if (psincdec_in == 1) begin if (ps_acc > ps_max_range) ps_overflow_out <= 1; else begin ps_delay <= ps_delay + PS_STEP; ps_acc <= ps_acc + 1; ps_overflow_out <= 0; end ps_lock <= 1; end else if (psincdec_in == 0) begin if (ps_acc < -ps_max_range) ps_overflow_out <= 1; else begin ps_delay <= ps_delay - PS_STEP; ps_acc <= ps_acc - 1; ps_overflow_out <= 0; end ps_lock <= 1; end end end always @(posedge ps_lock) begin @(posedge clkin_ps) @(posedge psclk_in) @(posedge psclk_in) @(posedge psclk_in) psdone_out <= 1; @(posedge psclk_in) psdone_out <= 0; ps_lock <= 0; end // // determine clock period // always @(posedge clkin_div or negedge clkin_div or posedge rst_in) if (rst_in == 1) begin clkin_period[0] <= 0; clkin_period[1] <= 0; clkin_period[2] <= 0; clkin_edge <= 0; end else if (clkin_div == 1) begin clkin_edge <= $time; clkin_period[2] <= clkin_period[1]; clkin_period[1] <= clkin_period[0]; if (clkin_edge != 0) clkin_period[0] <= $time - clkin_edge; end else if (clkin_div == 0) if (lock_period == 1) if (100000000 < clkin_period[0]/1000) begin end else if ((period_orig * 2 < clkin_period[0]) && (clock_stopped == 0)) begin clkin_period[0] <= clkin_period[1]; end always @(negedge clkin_div or posedge rst_in) if (rst_in == 1) begin lock_period <= 0; clock_stopped <= 1; end else begin if (lock_period == 1'b0) begin if ((clkin_period[0] != 0) && (clkin_period[0] - cycle_jitter <= clkin_period[1]) && (clkin_period[1] <= clkin_period[0] + cycle_jitter) && (clkin_period[1] - cycle_jitter <= clkin_period[2]) && (clkin_period[2] <= clkin_period[1] + cycle_jitter)) begin lock_period <= 1; period_orig <= (clkin_period[0] + clkin_period[1] + clkin_period[2]) / 3; period <= clkin_period[0]; end end else if (lock_period == 1'b1) begin if (100000000 < (clkin_period[0] / 1000)) begin $display(" Warning : CLKIN stopped toggling on instance %m exceeds %d ms. Current CLKIN Period = %1.3f ns.", 100, clkin_period[0] / 1000.0); lock_period <= 0; @(negedge rst_reg[2]); end else if ((period_orig * 2 < clkin_period[0]) && clock_stopped == 1'b0) begin clock_stopped <= 1'b1; end else if ((clkin_period[0] < period_orig - period_jitter) || (period_orig + period_jitter < clkin_period[0])) begin $display(" Warning : Input Clock Period Jitter on instance %m exceeds %1.3f ns. Locked CLKIN Period = %1.3f. Current CLKIN Period = %1.3f.", period_jitter / 1000.0, period_orig / 1000.0, clkin_period[0] / 1000.0); lock_period <= 0; @(negedge rst_reg[2]); end else if ((clkin_period[0] < clkin_period[1] - cycle_jitter) || (clkin_period[1] + cycle_jitter < clkin_period[0])) begin $display(" Warning : Input Clock Cycle-Cycle Jitter on instance %m exceeds %1.3f ns. Previous CLKIN Period = %1.3f. Current CLKIN Period = %1.3f.", cycle_jitter / 1000.0, clkin_period[1] / 1000.0, clkin_period[0] / 1000.0); lock_period <= 0; @(negedge rst_reg[2]); end else begin period <= clkin_period[0]; clock_stopped <= 1'b0; end end end assign #1 lock_period_dly1 = lock_period; assign #(period/2) lock_period_dly = lock_period_dly1; assign lock_period_pulse = (lock_period_dly1==1 && lock_period_dly==0) ? 1 : 0; // // determine clock delay // //always @(posedge lock_period or posedge rst_in) always @(posedge lock_ps_dly or posedge rst_in) if (rst_in) begin fb_delay <= 0; fb_delay_found <= 0; end else begin if (lock_period && clkfb_type != 2'b00) begin if (clkfb_type == 2'b01) begin @(posedge CLK0 or rst_in) delay_edge = $time; end else if (clkfb_type == 2'b10) begin @(posedge CLK2X or rst_in) delay_edge = $time; end @(posedge clkfb_in or rst_in) begin fb_delay <= ($time - delay_edge) % period_orig; fb_delay_found <= 1; end end end // // determine feedback lock // always @(posedge clkfb_chk or posedge rst_in) if (rst_in) clkfb_window <= 0; else begin clkfb_window <= 1; #cycle_jitter clkfb_window <= 0; end always @(posedge clkin_fb or posedge rst_in) if (rst_in) clkin_window <= 0; else begin clkin_window <= 1; #cycle_jitter clkin_window <= 0; end always @(posedge clkin_fb or posedge rst_in) if (rst_in) lock_clkin <= 0; else begin #1 if ((clkfb_window && fb_delay_found) || (clkin_lost_out == 1'b1 && lock_out[0]==1'b1)) lock_clkin <= 1; else if (chk_enable==1) lock_clkin <= 0; end always @(posedge clkfb_chk or posedge rst_in) if (rst_in) lock_clkfb <= 0; else begin #1 if ((clkin_window && fb_delay_found) || (clkin_lost_out == 1'b1 && lock_out[0]==1'b1)) lock_clkfb <= 1; else if (chk_enable ==1) lock_clkfb <= 0; end always @(negedge clkin_fb or posedge rst_in) if (rst_in) lock_delay <= 0; else lock_delay <= lock_clkin || lock_clkfb; // // generate lock signal // always @(posedge clkin_ps or posedge rst_in) if (rst_in) begin lock_out <= 2'b0; locked_out <=0; end else begin if (clkfb_type == 2'b00) lock_out[0] <= lock_period; else lock_out[0] <= lock_period & lock_delay & lock_fb; lock_out[1] <= lock_out[0]; locked_out <= lock_out[1]; end always @(negedge clkin_ps or posedge rst_in) if (rst_in) lock_out1_neg <= 0; else lock_out1_neg <= lock_out[1]; // // generate the clk1x_out // always @(posedge clkin_ps or negedge clkin_ps or posedge rst_in) if (rst_in) clk0_out <= 0; else if (clkin_ps ==1) if (clk1x_type==1 && lock_out[0]) begin clk0_out <= 1; #(period / 2) clk0_out <= 0; end else clk0_out <= 1; else if (clkin_ps == 0 && ((clk1x_type && lock_out[0]) == 0 || (lock_out[0]== 1 && lock_out[1]== 0))) clk0_out <= 0; // // generate the clk2x_out // always @(posedge clkin_ps or posedge rst_in) if (rst_in) clk2x_out <= 0; else begin clk2x_out <= 1; #(period / 4) clk2x_out <= 0; #(period / 4) clk2x_out <= 1; #(period / 4) clk2x_out <= 0; end // // generate the clkdv_out // always @(posedge clkin_ps or negedge clkin_ps or posedge rst_in) if (rst_in) begin clkdv_out <= 1'b0; clkdv_cnt <= 0; end else if (lock_out1_neg) begin if (clkdv_cnt >= divide_type -1) clkdv_cnt <= 0; else clkdv_cnt <= clkdv_cnt + 1; if (clkdv_cnt < divide_type /2) clkdv_out <= 1'b1; else if ( (divide_type[0] == 1'b1) && dll_mode_type == 1'b0) clkdv_out <= #(period/4) 1'b0; else clkdv_out <= 1'b0; end // // generate fx output signal // always @(lock_period or period or denominator or numerator) begin if (lock_period == 1'b1) begin period_fx = (period * denominator) / (numerator * 2); remain_fx = (period * denominator) % (numerator * 2); end end always @(posedge clkin_ps or posedge clkin_lost_out or posedge rst_in ) if (rst_in == 1) clkfx_out = 1'b0; else if (clkin_lost_out == 1'b1 ) begin if (locked_out == 1) @(negedge rst_reg[2]); end else if (lock_out[1] == 1) begin clkfx_out = 1'b1; for (p = 0; p < (numerator * 2 - 1); p = p + 1) begin #(period_fx); if (p < remain_fx) #1; clkfx_out = !clkfx_out; end if (period_fx > (period / 2)) begin #(period_fx - (period / 2)); end end // // generate all output signal // always @(rst_in) if (rst_in) begin assign CLK0 = 0; assign CLK90 = 0; assign CLK180 = 0; assign CLK270 = 0; assign CLK2X = 0; assign CLK2X180 =0; assign CLKDV = 0; assign CLKFX = 0; assign CLKFX180 = 0; end else begin deassign CLK0; deassign CLK90; deassign CLK180; deassign CLK270; deassign CLK2X; deassign CLK2X180; deassign CLKDV; deassign CLKFX; deassign CLKFX180; end always @(clk0_out) begin CLK0 <= #(clkout_delay) clk0_out && (clkfb_type != 2'b00); CLK90 <= #(clkout_delay + period / 4) clk0_out && !dll_mode_type && (clkfb_type != 2'b00); CLK180 <= #(clkout_delay) ~clk0_out && (clkfb_type != 2'b00); CLK270 <= #(clkout_delay + period / 4) ~clk0_out && !dll_mode_type && (clkfb_type != 2'b00); end always @(clk2x_out) begin CLK2X <= #(clkout_delay) clk2x_out && !dll_mode_type && (clkfb_type != 2'b00); CLK2X180 <= #(clkout_delay) ~clk2x_out && !dll_mode_type && (clkfb_type != 2'b00); end always @(clkdv_out) CLKDV <= #(clkout_delay) clkdv_out && (clkfb_type != 2'b00); always @(clkfx_out ) CLKFX <= #(clkout_delay) clkfx_out; always @( clkfx_out or first_time_locked or locked_out) if ( ~first_time_locked) CLKFX180 = 0; else CLKFX180 <= #(clkout_delay) ~clkfx_out; endmodule ////////////////////////////////////////////////////// module dcm_sp_clock_divide_by_2 (clock, clock_type, clock_out, rst); input clock; input clock_type; input rst; output clock_out; reg clock_out; reg clock_div2; reg [2:0] rst_reg; wire clk_src; initial begin clock_out = 1'b0; clock_div2 = 1'b0; end always @(posedge clock) clock_div2 <= ~clock_div2; always @(posedge clock) begin rst_reg[0] <= rst; rst_reg[1] <= rst_reg[0] & rst; rst_reg[2] <= rst_reg[1] & rst_reg[0] & rst; end assign clk_src = (clock_type) ? clock_div2 : clock; always @(clk_src or rst or rst_reg) if (rst == 1'b0) clock_out = clk_src; else if (rst == 1'b1) begin clock_out = 1'b0; @(negedge rst_reg[2]); if (clk_src == 1'b1) @(negedge clk_src); end endmodule module dcm_sp_maximum_period_check (clock, rst); parameter clock_name = ""; parameter maximum_period = 0; input clock; input rst; time clock_edge; time clock_period; initial begin clock_edge = 0; clock_period = 0; end always @(posedge clock) begin clock_edge <= $time; // clock_period <= $time - clock_edge; clock_period = $time - clock_edge; if (clock_period > maximum_period ) begin if (rst == 0) $display(" Warning : Input clock period of %1.3f ns, on the %s port of instance %m exceeds allowed value of %1.3f ns at time %1.3f ns.", clock_period/1000.0, clock_name, maximum_period/1000.0, $time/1000.0); end end endmodule module dcm_sp_clock_lost (clock, enable, lost, rst); input clock; input enable; input rst; output lost; time clock_edge; reg [63:0] period; reg clock_low, clock_high; reg clock_posedge, clock_negedge; reg lost_r, lost_f, lost; reg clock_second_pos, clock_second_neg; initial begin clock_edge = 0; clock_high = 0; clock_low = 0; lost_r = 0; lost_f = 0; period = 0; clock_posedge = 0; clock_negedge = 0; clock_second_pos = 0; clock_second_neg = 0; end always @(posedge clock or posedge rst) if (rst==1) period <= 0; else begin clock_edge <= $time; if (period != 0 && (($time - clock_edge) <= (1.5 * period))) period <= $time - clock_edge; else if (period != 0 && (($time - clock_edge) > (1.5 * period))) period <= 0; else if ((period == 0) && (clock_edge != 0) && clock_second_pos == 1) period <= $time - clock_edge; end always @(posedge clock or posedge rst) if (rst) lost_r <= 0; else if (enable == 1 && clock_second_pos == 1) begin #1; if ( period != 0) lost_r <= 0; #((period * 9.1) / 10) if ((clock_low != 1'b1) && (clock_posedge != 1'b1) && rst == 0) lost_r <= 1; end always @(posedge clock or negedge clock or posedge rst) if (rst) begin clock_second_pos <= 0; clock_second_neg <= 0; end else if (clock) clock_second_pos <= 1; else if (~clock) clock_second_neg <= 1; always @(negedge clock or posedge rst) if (rst==1) begin lost_f <= 0; end else begin if (enable == 1 && clock_second_neg == 1) begin if ( period != 0) lost_f <= 0; #((period * 9.1) / 10) if ((clock_high != 1'b1) && (clock_negedge != 1'b1) && rst == 0) lost_f <= 1; end end always @( lost_r or lost_f or enable) begin if (enable == 1) lost = lost_r | lost_f; else lost = 0; end always @(posedge clock or negedge clock or posedge rst) if (rst==1) begin clock_low <= 1'b0; clock_high <= 1'b0; clock_posedge <= 1'b0; clock_negedge <= 1'b0; end else begin if (clock ==1) begin clock_low <= 1'b0; clock_high <= 1'b1; clock_posedge <= 1'b0; clock_negedge <= 1'b1; end else if (clock == 0) begin clock_low <= 1'b1; clock_high <= 1'b0; clock_posedge <= 1'b1; clock_negedge <= 1'b0; end end endmodule uhd-3.5.5/fpga/usrp2/models/FIFO_GENERATOR_V4_3.v000066400000000000000000003767141224274632000207160ustar00rootroot00000000000000/* * $RDCfile: $ $Revision: 1.1.2.15 $ $Date: 2007/07/25 15:58:33 $ ******************************************************************************* * * FIFO Generator v3.3 - Verilog Behavioral Model * ******************************************************************************* * * Copyright(C) 2006 by Xilinx, Inc. All rights reserved. * This text/file contains proprietary, confidential * information of Xilinx, Inc., is distributed under * license from Xilinx, Inc., and may be used, copied * and/or disclosed only pursuant to the terms of a valid * license agreement with Xilinx, Inc. Xilinx hereby * grants you a license to use this text/file solely for * design, simulation, implementation and creation of * design files limited to Xilinx devices or technologies. * Use with non-Xilinx devices or technologies is expressly * prohibited and immediately terminates your license unless * covered by a separate agreement. * * Xilinx is providing theis design, code, or information * "as-is" solely for use in developing programs and * solutions for Xilinx devices, with no obligation on the * part of Xilinx to provide support. By providing this design, * code, or information as one possible implementation of * this feature, application or standard. Xilinx is making no * representation that this implementation is free from any * claims of infringement. You are responsible for obtaining * any rights you may require for your implementation. * Xilinx expressly disclaims any warranty whatsoever with * respect to the adequacy of the implementation, including * but not limited to any warranties or representations that this * implementation is free from claims of infringement, implied * warranties of merchantability or fitness for a particular * purpose. * * Xilinx products are not intended for use in life support * appliances, devices, or systems. Use in such applications is * expressly prohibited. * * This copyright and support notice must be retained as part * of this text at all times. (c)Copyright 1995-2006 Xilinx, Inc. * All rights reserved. * ******************************************************************************* * * Filename: fifo_generator_v4_3_bhv.v * * Description: * The verilog behavioral model for the FIFO generator core. * ******************************************************************************* */ `timescale 1ps/1ps /******************************************************************************* * Declaration of top-level module ******************************************************************************/ module FIFO_GENERATOR_V4_3 ( BACKUP, BACKUP_MARKER, CLK, DIN, PROG_EMPTY_THRESH, PROG_EMPTY_THRESH_ASSERT, PROG_EMPTY_THRESH_NEGATE, PROG_FULL_THRESH, PROG_FULL_THRESH_ASSERT, PROG_FULL_THRESH_NEGATE, RD_CLK, RD_EN, RD_RST, RST, SRST, WR_CLK, WR_EN, WR_RST, INT_CLK, ALMOST_EMPTY, ALMOST_FULL, DATA_COUNT, DOUT, EMPTY, FULL, OVERFLOW, PROG_EMPTY, PROG_FULL, RD_DATA_COUNT, UNDERFLOW, VALID, WR_ACK, WR_DATA_COUNT, SBITERR, DBITERR ); /**************************************************************************** * Definition of Ports * * ***************************************************************************** * Definition of Parameters * * *****************************************************************************/ /**************************************************************************** * Declare user parameters and their defaults *****************************************************************************/ parameter C_COMMON_CLOCK = 0; parameter C_COUNT_TYPE = 0; parameter C_DATA_COUNT_WIDTH = 2; parameter C_DEFAULT_VALUE = ""; parameter C_DIN_WIDTH = 8; parameter C_DOUT_RST_VAL = ""; parameter C_DOUT_WIDTH = 8; parameter C_ENABLE_RLOCS = 0; parameter C_FAMILY = "virtex2"; //Not allowed in Verilog model parameter C_HAS_ALMOST_EMPTY = 0; parameter C_HAS_ALMOST_FULL = 0; parameter C_HAS_BACKUP = 0; parameter C_HAS_DATA_COUNT = 0; parameter C_HAS_MEMINIT_FILE = 0; parameter C_HAS_OVERFLOW = 0; parameter C_HAS_RD_DATA_COUNT = 0; parameter C_HAS_RD_RST = 0; parameter C_HAS_RST = 0; parameter C_HAS_SRST = 0; parameter C_HAS_UNDERFLOW = 0; parameter C_HAS_VALID = 0; parameter C_HAS_WR_ACK = 0; parameter C_HAS_WR_DATA_COUNT = 0; parameter C_HAS_WR_RST = 0; parameter C_IMPLEMENTATION_TYPE = 0; parameter C_INIT_WR_PNTR_VAL = 0; parameter C_MEMORY_TYPE = 1; parameter C_MIF_FILE_NAME = ""; parameter C_OPTIMIZATION_MODE = 0; parameter C_OVERFLOW_LOW = 0; parameter C_PRELOAD_LATENCY = 1; parameter C_PRELOAD_REGS = 0; parameter C_PRIM_FIFO_TYPE = 512; parameter C_PROG_EMPTY_THRESH_ASSERT_VAL = 0; parameter C_PROG_EMPTY_THRESH_NEGATE_VAL = 0; parameter C_PROG_EMPTY_TYPE = 0; parameter C_PROG_FULL_THRESH_ASSERT_VAL = 0; parameter C_PROG_FULL_THRESH_NEGATE_VAL = 0; parameter C_PROG_FULL_TYPE = 0; parameter C_RD_DATA_COUNT_WIDTH = 2; parameter C_RD_DEPTH = 256; parameter C_RD_FREQ = 1; parameter C_RD_PNTR_WIDTH = 8; parameter C_UNDERFLOW_LOW = 0; parameter C_USE_FIFO16_FLAGS = 0; parameter C_VALID_LOW = 0; parameter C_WR_ACK_LOW = 0; parameter C_WR_DATA_COUNT_WIDTH = 2; parameter C_WR_DEPTH = 256; parameter C_WR_FREQ = 1; parameter C_WR_PNTR_WIDTH = 8; parameter C_WR_RESPONSE_LATENCY = 1; parameter C_USE_ECC = 0; parameter C_FULL_FLAGS_RST_VAL = 1; parameter C_HAS_INT_CLK = 0; parameter C_USE_EMBEDDED_REG = 0; parameter C_USE_FWFT_DATA_COUNT = 0; //There are 2 Verilog behavioral models // 0 = Synchronous FIFO/ShiftRam FIFO // 1 = Asynchronous FIFO parameter C_VERILOG_IMPL = (C_IMPLEMENTATION_TYPE==0 ? 0 : (C_IMPLEMENTATION_TYPE==1 ? 0 : (C_IMPLEMENTATION_TYPE==2 ? 1 : 0))); /****************************************************************************** * Declare Input and Output Ports *****************************************************************************/ input CLK; input BACKUP; input BACKUP_MARKER; input [C_DIN_WIDTH-1:0] DIN; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE; input RD_CLK; input RD_EN; input RD_RST; input RST; input SRST; input WR_CLK; input WR_EN; input WR_RST; input INT_CLK; output ALMOST_EMPTY; output ALMOST_FULL; output [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT; output [C_DOUT_WIDTH-1:0] DOUT; output EMPTY; output FULL; output OVERFLOW; output PROG_EMPTY; output PROG_FULL; output VALID; output [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT; output UNDERFLOW; output WR_ACK; output [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT; output SBITERR; output DBITERR; wire ALMOST_EMPTY; wire ALMOST_FULL; wire [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT; wire [C_DOUT_WIDTH-1:0] DOUT; wire EMPTY; wire FULL; wire OVERFLOW; wire PROG_EMPTY; wire PROG_FULL; wire VALID; wire [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT; wire UNDERFLOW; wire WR_ACK; wire [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT; wire RD_CLK_P0_IN; wire RST_P0_IN; wire RD_EN_FIFO_IN; wire RD_EN_P0_IN; wire ALMOST_EMPTY_FIFO_OUT; wire ALMOST_FULL_FIFO_OUT; wire [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT_FIFO_OUT; wire [C_DOUT_WIDTH-1:0] DOUT_FIFO_OUT; wire EMPTY_FIFO_OUT; wire FULL_FIFO_OUT; wire OVERFLOW_FIFO_OUT; wire PROG_EMPTY_FIFO_OUT; wire PROG_FULL_FIFO_OUT; wire VALID_FIFO_OUT; wire [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT_FIFO_OUT; wire UNDERFLOW_FIFO_OUT; wire WR_ACK_FIFO_OUT; wire [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT_FIFO_OUT; //*************************************************************************** // Internal Signals // The core uses either the internal_ wires or the preload0_ wires depending // on whether the core uses Preload0 or not. // When using preload0, the internal signals connect the internal core to // the preload logic, and the external core's interfaces are tied to the // preload0 signals from the preload logic. //*************************************************************************** wire [C_DOUT_WIDTH-1:0] DATA_P0_OUT; wire VALID_P0_OUT; wire EMPTY_P0_OUT; wire ALMOSTEMPTY_P0_OUT; reg EMPTY_P0_OUT_Q; reg ALMOSTEMPTY_P0_OUT_Q; wire UNDERFLOW_P0_OUT; wire RDEN_P0_OUT; wire [C_DOUT_WIDTH-1:0] DATA_P0_IN; wire EMPTY_P0_IN; assign SBITERR = 1'b0; assign DBITERR = 1'b0; // choose the base FIFO implementation for simulation generate case (C_VERILOG_IMPL) 0 : begin : block1 fifo_generator_v4_3_bhv_ver_ss #( C_COMMON_CLOCK, C_COUNT_TYPE, C_DATA_COUNT_WIDTH, C_DEFAULT_VALUE, C_DIN_WIDTH, C_DOUT_RST_VAL, C_DOUT_WIDTH, C_ENABLE_RLOCS, C_FAMILY,//Not allowed in Verilog model C_HAS_ALMOST_EMPTY, C_HAS_ALMOST_FULL, C_HAS_BACKUP, C_HAS_DATA_COUNT, C_HAS_MEMINIT_FILE, C_HAS_OVERFLOW, C_HAS_RD_DATA_COUNT, C_HAS_RD_RST, C_HAS_RST, C_HAS_SRST, C_HAS_UNDERFLOW, C_HAS_VALID, C_HAS_WR_ACK, C_HAS_WR_DATA_COUNT, C_HAS_WR_RST, C_IMPLEMENTATION_TYPE, C_INIT_WR_PNTR_VAL, C_MEMORY_TYPE, C_MIF_FILE_NAME, C_OPTIMIZATION_MODE, C_OVERFLOW_LOW, C_PRELOAD_LATENCY, C_PRELOAD_REGS, C_PROG_EMPTY_THRESH_ASSERT_VAL, C_PROG_EMPTY_THRESH_NEGATE_VAL, C_PROG_EMPTY_TYPE, C_PROG_FULL_THRESH_ASSERT_VAL, C_PROG_FULL_THRESH_NEGATE_VAL, C_PROG_FULL_TYPE, C_RD_DATA_COUNT_WIDTH, C_RD_DEPTH, C_RD_PNTR_WIDTH, C_UNDERFLOW_LOW, C_VALID_LOW, C_WR_ACK_LOW, C_WR_DATA_COUNT_WIDTH, C_WR_DEPTH, C_WR_PNTR_WIDTH, C_WR_RESPONSE_LATENCY, C_FULL_FLAGS_RST_VAL, C_USE_EMBEDDED_REG ) gen_ss ( .CLK (CLK), .RST (RST), .SRST (SRST), .DIN (DIN), .WR_EN (WR_EN), .RD_EN (RD_EN_FIFO_IN), .PROG_EMPTY_THRESH (PROG_EMPTY_THRESH), .PROG_EMPTY_THRESH_ASSERT (PROG_EMPTY_THRESH_ASSERT), .PROG_EMPTY_THRESH_NEGATE (PROG_EMPTY_THRESH_NEGATE), .PROG_FULL_THRESH (PROG_FULL_THRESH), .PROG_FULL_THRESH_ASSERT (PROG_FULL_THRESH_ASSERT), .PROG_FULL_THRESH_NEGATE (PROG_FULL_THRESH_NEGATE), .DOUT (DOUT_FIFO_OUT), .FULL (FULL_FIFO_OUT), .ALMOST_FULL (ALMOST_FULL_FIFO_OUT), .WR_ACK (WR_ACK_FIFO_OUT), .OVERFLOW (OVERFLOW_FIFO_OUT), .EMPTY (EMPTY_FIFO_OUT), .ALMOST_EMPTY (ALMOST_EMPTY_FIFO_OUT), .VALID (VALID_FIFO_OUT), .UNDERFLOW (UNDERFLOW_FIFO_OUT), .DATA_COUNT (DATA_COUNT_FIFO_OUT), .PROG_FULL (PROG_FULL_FIFO_OUT), .PROG_EMPTY (PROG_EMPTY_FIFO_OUT) ); end 1 : begin : block1 fifo_generator_v4_3_bhv_ver_as #( C_COMMON_CLOCK, C_COUNT_TYPE, C_DATA_COUNT_WIDTH, C_DEFAULT_VALUE, C_DIN_WIDTH, C_DOUT_RST_VAL, C_DOUT_WIDTH, C_ENABLE_RLOCS, C_FAMILY,//Not allowed in Verilog model C_HAS_ALMOST_EMPTY, C_HAS_ALMOST_FULL, C_HAS_BACKUP, C_HAS_DATA_COUNT, C_HAS_MEMINIT_FILE, C_HAS_OVERFLOW, C_HAS_RD_DATA_COUNT, C_HAS_RD_RST, C_HAS_RST, C_HAS_UNDERFLOW, C_HAS_VALID, C_HAS_WR_ACK, C_HAS_WR_DATA_COUNT, C_HAS_WR_RST, C_IMPLEMENTATION_TYPE, C_INIT_WR_PNTR_VAL, C_MEMORY_TYPE, C_MIF_FILE_NAME, C_OPTIMIZATION_MODE, C_OVERFLOW_LOW, C_PRELOAD_LATENCY, C_PRELOAD_REGS, C_PROG_EMPTY_THRESH_ASSERT_VAL, C_PROG_EMPTY_THRESH_NEGATE_VAL, C_PROG_EMPTY_TYPE, C_PROG_FULL_THRESH_ASSERT_VAL, C_PROG_FULL_THRESH_NEGATE_VAL, C_PROG_FULL_TYPE, C_RD_DATA_COUNT_WIDTH, C_RD_DEPTH, C_RD_PNTR_WIDTH, C_UNDERFLOW_LOW, C_VALID_LOW, C_WR_ACK_LOW, C_WR_DATA_COUNT_WIDTH, C_WR_DEPTH, C_WR_PNTR_WIDTH, C_WR_RESPONSE_LATENCY, C_FULL_FLAGS_RST_VAL, C_USE_FWFT_DATA_COUNT, C_USE_EMBEDDED_REG ) gen_as ( .WR_CLK (WR_CLK), .RD_CLK (RD_CLK), .RST (RST), .DIN (DIN), .WR_EN (WR_EN), .RD_EN (RD_EN_FIFO_IN), .PROG_EMPTY_THRESH (PROG_EMPTY_THRESH), .PROG_EMPTY_THRESH_ASSERT (PROG_EMPTY_THRESH_ASSERT), .PROG_EMPTY_THRESH_NEGATE (PROG_EMPTY_THRESH_NEGATE), .PROG_FULL_THRESH (PROG_FULL_THRESH), .PROG_FULL_THRESH_ASSERT (PROG_FULL_THRESH_ASSERT), .PROG_FULL_THRESH_NEGATE (PROG_FULL_THRESH_NEGATE), .DOUT (DOUT_FIFO_OUT), .FULL (FULL_FIFO_OUT), .ALMOST_FULL (ALMOST_FULL_FIFO_OUT), .WR_ACK (WR_ACK_FIFO_OUT), .OVERFLOW (OVERFLOW_FIFO_OUT), .EMPTY (EMPTY_FIFO_OUT), .ALMOST_EMPTY (ALMOST_EMPTY_FIFO_OUT), .VALID (VALID_FIFO_OUT), .UNDERFLOW (UNDERFLOW_FIFO_OUT), .RD_DATA_COUNT (RD_DATA_COUNT_FIFO_OUT), .WR_DATA_COUNT (WR_DATA_COUNT_FIFO_OUT), .PROG_FULL (PROG_FULL_FIFO_OUT), .PROG_EMPTY (PROG_EMPTY_FIFO_OUT) ); end default : begin : block1 fifo_generator_v4_3_bhv_ver_as #( C_COMMON_CLOCK, C_COUNT_TYPE, C_DATA_COUNT_WIDTH, C_DEFAULT_VALUE, C_DIN_WIDTH, C_DOUT_RST_VAL, C_DOUT_WIDTH, C_ENABLE_RLOCS, C_FAMILY,//Not allowed in Verilog model C_HAS_ALMOST_EMPTY, C_HAS_ALMOST_FULL, C_HAS_BACKUP, C_HAS_DATA_COUNT, C_HAS_MEMINIT_FILE, C_HAS_OVERFLOW, C_HAS_RD_DATA_COUNT, C_HAS_RD_RST, C_HAS_RST, C_HAS_UNDERFLOW, C_HAS_VALID, C_HAS_WR_ACK, C_HAS_WR_DATA_COUNT, C_HAS_WR_RST, C_IMPLEMENTATION_TYPE, C_INIT_WR_PNTR_VAL, C_MEMORY_TYPE, C_MIF_FILE_NAME, C_OPTIMIZATION_MODE, C_OVERFLOW_LOW, C_PRELOAD_LATENCY, C_PRELOAD_REGS, C_PROG_EMPTY_THRESH_ASSERT_VAL, C_PROG_EMPTY_THRESH_NEGATE_VAL, C_PROG_EMPTY_TYPE, C_PROG_FULL_THRESH_ASSERT_VAL, C_PROG_FULL_THRESH_NEGATE_VAL, C_PROG_FULL_TYPE, C_RD_DATA_COUNT_WIDTH, C_RD_DEPTH, C_RD_PNTR_WIDTH, C_UNDERFLOW_LOW, C_VALID_LOW, C_WR_ACK_LOW, C_WR_DATA_COUNT_WIDTH, C_WR_DEPTH, C_WR_PNTR_WIDTH, C_WR_RESPONSE_LATENCY, C_FULL_FLAGS_RST_VAL, C_USE_FWFT_DATA_COUNT, C_USE_EMBEDDED_REG ) gen_as ( .WR_CLK (WR_CLK), .RD_CLK (RD_CLK), .RST (RST), .DIN (DIN), .WR_EN (WR_EN), .RD_EN (RD_EN_FIFO_IN), .PROG_EMPTY_THRESH (PROG_EMPTY_THRESH), .PROG_EMPTY_THRESH_ASSERT (PROG_EMPTY_THRESH_ASSERT), .PROG_EMPTY_THRESH_NEGATE (PROG_EMPTY_THRESH_NEGATE), .PROG_FULL_THRESH (PROG_FULL_THRESH), .PROG_FULL_THRESH_ASSERT (PROG_FULL_THRESH_ASSERT), .PROG_FULL_THRESH_NEGATE (PROG_FULL_THRESH_NEGATE), .DOUT (DOUT_FIFO_OUT), .FULL (FULL_FIFO_OUT), .ALMOST_FULL (ALMOST_FULL_FIFO_OUT), .WR_ACK (WR_ACK_FIFO_OUT), .OVERFLOW (OVERFLOW_FIFO_OUT), .EMPTY (EMPTY_FIFO_OUT), .ALMOST_EMPTY (ALMOST_EMPTY_FIFO_OUT), .VALID (VALID_FIFO_OUT), .UNDERFLOW (UNDERFLOW_FIFO_OUT), .RD_DATA_COUNT (RD_DATA_COUNT_FIFO_OUT), .WR_DATA_COUNT (WR_DATA_COUNT_FIFO_OUT), .PROG_FULL (PROG_FULL_FIFO_OUT), .PROG_EMPTY (PROG_EMPTY_FIFO_OUT) ); end endcase endgenerate //************************************************************************** // Connect Internal Signals // (Signals labeled internal_*) // In the normal case, these signals tie directly to the FIFO's inputs and // outputs. // In the case of Preload Latency 0 or 1, there are intermediate // signals between the internal FIFO and the preload logic. //************************************************************************** generate if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin : block2 fifo_generator_v4_3_bhv_ver_preload0 #( C_DOUT_RST_VAL, C_DOUT_WIDTH, C_HAS_RST, C_VALID_LOW, C_UNDERFLOW_LOW ) fgpl0 ( .RD_CLK (RD_CLK_P0_IN), .RD_RST (RST_P0_IN), .RD_EN (RD_EN_P0_IN), .FIFOEMPTY (EMPTY_P0_IN), .FIFODATA (DATA_P0_IN), .USERDATA (DATA_P0_OUT), .USERVALID (VALID_P0_OUT), .USEREMPTY (EMPTY_P0_OUT), .USERALMOSTEMPTY (ALMOSTEMPTY_P0_OUT), .USERUNDERFLOW (UNDERFLOW_P0_OUT), .RAMVALID (RAMVALID_P0_OUT), .FIFORDEN (RDEN_P0_OUT) ); assign RD_CLK_P0_IN = ((C_VERILOG_IMPL == 0) ? CLK : RD_CLK); assign RST_P0_IN = RST; assign RD_EN_P0_IN = RD_EN; assign RD_EN_FIFO_IN = RDEN_P0_OUT; assign DOUT = DATA_P0_OUT; assign DATA_P0_IN = DOUT_FIFO_OUT; assign VALID = VALID_P0_OUT ; assign EMPTY = EMPTY_P0_OUT; assign ALMOST_EMPTY = ALMOSTEMPTY_P0_OUT; assign EMPTY_P0_IN = EMPTY_FIFO_OUT; assign UNDERFLOW = UNDERFLOW_P0_OUT ; always @ (posedge RD_CLK or posedge RST) begin if (RST) begin EMPTY_P0_OUT_Q <= 1; ALMOSTEMPTY_P0_OUT_Q <= 1; end else begin EMPTY_P0_OUT_Q <= EMPTY_P0_OUT; ALMOSTEMPTY_P0_OUT_Q <= ALMOSTEMPTY_P0_OUT; end end end else begin : block2 assign RD_CLK_P0_IN = 0; assign RST_P0_IN = 0; assign RD_EN_P0_IN = 0; assign RD_EN_FIFO_IN = RD_EN; assign DOUT = DOUT_FIFO_OUT; assign DATA_P0_IN = 0; assign VALID = VALID_FIFO_OUT; assign EMPTY = EMPTY_FIFO_OUT; assign ALMOST_EMPTY = ALMOST_EMPTY_FIFO_OUT; assign EMPTY_P0_IN = 0; assign UNDERFLOW = UNDERFLOW_FIFO_OUT; end endgenerate //Connect Data Count Signals generate if (C_USE_FWFT_DATA_COUNT==1) begin : block3 assign RD_DATA_COUNT = (EMPTY_P0_OUT_Q | RST) ? 0 : (ALMOSTEMPTY_P0_OUT_Q ? 1 : RD_DATA_COUNT_FIFO_OUT); end else begin : block3 assign RD_DATA_COUNT = RD_DATA_COUNT_FIFO_OUT; end endgenerate generate if (C_USE_FWFT_DATA_COUNT==1) begin : block4 assign WR_DATA_COUNT = WR_DATA_COUNT_FIFO_OUT; end else begin : block4 assign WR_DATA_COUNT = WR_DATA_COUNT_FIFO_OUT; end endgenerate assign FULL = FULL_FIFO_OUT; assign ALMOST_FULL = ALMOST_FULL_FIFO_OUT; assign WR_ACK = WR_ACK_FIFO_OUT; assign OVERFLOW = OVERFLOW_FIFO_OUT; assign PROG_FULL = PROG_FULL_FIFO_OUT; assign PROG_EMPTY = PROG_EMPTY_FIFO_OUT; assign DATA_COUNT = DATA_COUNT_FIFO_OUT; // if an asynchronous FIFO has been selected, display a message that the FIFO // will not be cycle-accurate in simulation initial begin //if (C_IMPLEMENTATION_TYPE == 1) begin //bug in v3.1 if (C_IMPLEMENTATION_TYPE == 2) begin //fixed in v3.2 (IP2_Im) $display("Warning in %m at time %t: When using an asynchronous configuration for the FIFO Generator, the behavioral model is not cycle-accurate. You may wish to choose the structural simulation model instead of the behavioral model. This will ensure accurate behavior and latencies during simulation. You can enable this from CORE Generator by selecting Project -> Project Options -> Generation tab -> Structural Simulation. See the FIFO Generator User Guide for more information.", $time); end else if (C_IMPLEMENTATION_TYPE == 3 || C_IMPLEMENTATION_TYPE == 4) begin $display("Failure in %m at time %t: Use of Virtex-4 and Virtex-5 built-in FIFO configurations is currently not supported. Please use the structural simulation model. You can enable this from CORE Generator by selecting Project -> Project Options -> Generation tab -> Structural Simulation. See the FIFO Generator User Guide for more information.", $time); $finish; end end endmodule //fifo_generator_v4_3_bhv_ver /******************************************************************************* * Declaration of asynchronous FIFO Module ******************************************************************************/ module fifo_generator_v4_3_bhv_ver_as ( WR_CLK, RD_CLK, RST, DIN, WR_EN, RD_EN, PROG_EMPTY_THRESH, PROG_EMPTY_THRESH_ASSERT, PROG_EMPTY_THRESH_NEGATE, PROG_FULL_THRESH, PROG_FULL_THRESH_ASSERT, PROG_FULL_THRESH_NEGATE, DOUT, FULL, ALMOST_FULL, WR_ACK, OVERFLOW, EMPTY, ALMOST_EMPTY, VALID, UNDERFLOW, RD_DATA_COUNT, WR_DATA_COUNT, PROG_FULL, PROG_EMPTY ); /***************************************************************************** * Declare user parameters and their defaults *****************************************************************************/ parameter C_COMMON_CLOCK = 0; parameter C_COUNT_TYPE = 0; parameter C_DATA_COUNT_WIDTH = 2; parameter C_DEFAULT_VALUE = ""; parameter C_DIN_WIDTH = 8; parameter C_DOUT_RST_VAL = ""; parameter C_DOUT_WIDTH = 8; parameter C_ENABLE_RLOCS = 0; parameter C_FAMILY = "virtex2"; //Not allowed in Verilog model parameter C_HAS_ALMOST_EMPTY = 0; parameter C_HAS_ALMOST_FULL = 0; parameter C_HAS_BACKUP = 0; parameter C_HAS_DATA_COUNT = 0; parameter C_HAS_MEMINIT_FILE = 0; parameter C_HAS_OVERFLOW = 0; parameter C_HAS_RD_DATA_COUNT = 0; parameter C_HAS_RD_RST = 0; parameter C_HAS_RST = 0; parameter C_HAS_UNDERFLOW = 0; parameter C_HAS_VALID = 0; parameter C_HAS_WR_ACK = 0; parameter C_HAS_WR_DATA_COUNT = 0; parameter C_HAS_WR_RST = 0; parameter C_IMPLEMENTATION_TYPE = 0; parameter C_INIT_WR_PNTR_VAL = 0; parameter C_MEMORY_TYPE = 1; parameter C_MIF_FILE_NAME = ""; parameter C_OPTIMIZATION_MODE = 0; parameter C_OVERFLOW_LOW = 0; parameter C_PRELOAD_LATENCY = 1; parameter C_PRELOAD_REGS = 0; parameter C_PROG_EMPTY_THRESH_ASSERT_VAL = 0; parameter C_PROG_EMPTY_THRESH_NEGATE_VAL = 0; parameter C_PROG_EMPTY_TYPE = 0; parameter C_PROG_FULL_THRESH_ASSERT_VAL = 0; parameter C_PROG_FULL_THRESH_NEGATE_VAL = 0; parameter C_PROG_FULL_TYPE = 0; parameter C_RD_DATA_COUNT_WIDTH = 2; parameter C_RD_DEPTH = 256; parameter C_RD_PNTR_WIDTH = 8; parameter C_UNDERFLOW_LOW = 0; parameter C_VALID_LOW = 0; parameter C_WR_ACK_LOW = 0; parameter C_WR_DATA_COUNT_WIDTH = 2; parameter C_WR_DEPTH = 256; parameter C_WR_PNTR_WIDTH = 8; parameter C_WR_RESPONSE_LATENCY = 1; parameter C_FULL_FLAGS_RST_VAL = 1; parameter C_USE_FWFT_DATA_COUNT = 0; parameter C_USE_EMBEDDED_REG = 0; /***************************************************************************** * Declare Input and Output Ports *****************************************************************************/ input [C_DIN_WIDTH-1:0] DIN; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE; input RD_CLK; input RD_EN; input RST; input WR_CLK; input WR_EN; output ALMOST_EMPTY; output ALMOST_FULL; output [C_DOUT_WIDTH-1:0] DOUT; output EMPTY; output FULL; output OVERFLOW; output PROG_EMPTY; output PROG_FULL; output VALID; output [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT; output UNDERFLOW; output WR_ACK; output [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT; /******************************************************************************* * Input and output register declarations ******************************************************************************/ /******************************************************************************* * Parameters used as constants ******************************************************************************/ //When RST is present, set FULL reset value to '1'. //If core has no RST, make sure FULL powers-on as '0'. parameter C_DEPTH_RATIO_WR = (C_WR_DEPTH>C_RD_DEPTH) ? (C_WR_DEPTH/C_RD_DEPTH) : 1; parameter C_DEPTH_RATIO_RD = (C_RD_DEPTH>C_WR_DEPTH) ? (C_RD_DEPTH/C_WR_DEPTH) : 1; parameter C_FIFO_WR_DEPTH = (C_COMMON_CLOCK) ? C_WR_DEPTH : C_WR_DEPTH - 1; parameter C_FIFO_RD_DEPTH = (C_COMMON_CLOCK) ? C_RD_DEPTH : C_RD_DEPTH - 1; // EXTRA_WORDS = 2 * C_DEPTH_RATIO_WR / C_DEPTH_RATIO_RD // WR_DEPTH : RD_DEPTH = 1:2 => EXTRA_WORDS = 1 // WR_DEPTH : RD_DEPTH = 1:4 => EXTRA_WORDS = 1 (rounded to ceiling) // WR_DEPTH : RD_DEPTH = 2:1 => EXTRA_WORDS = 4 // WR_DEPTH : RD_DEPTH = 4:1 => EXTRA_WORDS = 8 parameter EXTRA_WORDS = (C_DEPTH_RATIO_RD > 1)? 1:(2 * C_DEPTH_RATIO_WR); // extra_words_dc = 2 * C_DEPTH_RATIO_WR / C_DEPTH_RATIO_RD // C_DEPTH_RATIO_WR | C_DEPTH_RATIO_RD | C_PNTR_WIDTH | EXTRA_WORDS_DC // -----------------|------------------|-----------------|--------------- // 1 | 8 | C_RD_PNTR_WIDTH | 2 // 1 | 4 | C_RD_PNTR_WIDTH | 2 // 1 | 2 | C_RD_PNTR_WIDTH | 2 // 1 | 1 | C_WR_PNTR_WIDTH | 2 // 2 | 1 | C_WR_PNTR_WIDTH | 4 // 4 | 1 | C_WR_PNTR_WIDTH | 8 // 8 | 1 | C_WR_PNTR_WIDTH | 16 parameter EXTRA_WORDS_DC = (C_DEPTH_RATIO_WR)? 2:(2 * C_DEPTH_RATIO_WR/C_DEPTH_RATIO_RD); //Memory which will be used to simulate a FIFO reg [C_DIN_WIDTH-1:0] memory[C_WR_DEPTH-1:0]; reg [31:0] num_wr_bits; reg [31:0] num_rd_bits; reg [31:0] next_num_wr_bits; reg [31:0] next_num_rd_bits; reg [31:0] wr_ptr; reg [31:0] rd_ptr; reg [31:0] wr_ptr_rdclk; reg [31:0] wr_ptr_rdclk_next; reg [31:0] rd_ptr_wrclk; reg [31:0] rd_ptr_wrclk_next; wire [31:0] num_read_words = num_rd_bits/C_DOUT_WIDTH; wire [31:0] num_read_words_dc_i; wire [31:0] num_read_words_dc = num_rd_bits/C_DOUT_WIDTH; wire [31:0] num_read_words_fwft_dc = (num_rd_bits/C_DOUT_WIDTH+2); wire [31:0] num_read_words_pe = num_rd_bits/(C_DOUT_WIDTH/C_DEPTH_RATIO_WR); wire [C_RD_DATA_COUNT_WIDTH-1:0] num_read_words_sized_i; wire [C_RD_DATA_COUNT_WIDTH-1:0] num_read_words_sized = num_read_words_dc_i[C_RD_PNTR_WIDTH-1 : C_RD_PNTR_WIDTH-C_RD_DATA_COUNT_WIDTH]; wire [C_RD_DATA_COUNT_WIDTH-1:0] num_read_words_sized_fwft = num_read_words_dc_i[C_RD_PNTR_WIDTH : C_RD_PNTR_WIDTH-C_RD_DATA_COUNT_WIDTH+1]; wire [31:0] num_write_words = num_wr_bits/C_DIN_WIDTH; wire [31:0] num_write_words_dc_i; wire [31:0] num_write_words_dc = 1+(num_wr_bits-1)/C_DIN_WIDTH;//roof of num_wr_bits/C_DIN_WIDTH wire [31:0] num_write_words_fwft_dc = (num_wr_bits/C_DIN_WIDTH*C_DEPTH_RATIO_RD+2*C_DEPTH_RATIO_WR)/C_DEPTH_RATIO_RD; wire [31:0] num_write_words_pf = num_wr_bits/(C_DIN_WIDTH/C_DEPTH_RATIO_RD); wire [C_WR_DATA_COUNT_WIDTH-1:0] num_write_words_sized_i; wire [C_WR_DATA_COUNT_WIDTH-1:0] num_write_words_sized = num_write_words_dc_i[C_WR_PNTR_WIDTH-1 : C_WR_PNTR_WIDTH-C_WR_DATA_COUNT_WIDTH]; wire [C_WR_DATA_COUNT_WIDTH-1:0] num_write_words_sized_fwft = num_write_words_dc_i[C_WR_PNTR_WIDTH : C_WR_PNTR_WIDTH-C_WR_DATA_COUNT_WIDTH+1]; wire [31:0] reads_per_write = C_DIN_WIDTH/C_DOUT_WIDTH; wire [31:0] log2_reads_per_write = log2_val(reads_per_write); wire [31:0] writes_per_read = C_DOUT_WIDTH/C_DIN_WIDTH; wire [31:0] log2_writes_per_read = log2_val(writes_per_read); /******************************************************************************* * Internal Registers and wires ******************************************************************************/ wire wr_ack_i; wire overflow_i; wire underflow_i; wire valid_i; wire valid_out; reg valid_d1; /******************************************************************************* * Internal registers and wires for internal reset logics ******************************************************************************/ reg rd_rst_asreg =0; reg rd_rst_asreg_d1 =0; reg rd_rst_asreg_d2 =0; reg rd_rst_reg =0; reg rd_rst_d1 =0; reg wr_rst_asreg =0; reg wr_rst_asreg_d1 =0; reg wr_rst_asreg_d2 =0; reg wr_rst_reg =0; reg wr_rst_d1 =0; wire rd_rst_comb; wire rd_rst_i; wire wr_rst_comb; wire wr_rst_i; //Special ideal FIFO signals reg [C_DOUT_WIDTH-1:0] ideal_dout; wire [C_DOUT_WIDTH-1:0] ideal_dout_out; reg [C_DOUT_WIDTH-1:0] ideal_dout_d1; reg ideal_wr_ack; reg ideal_valid; reg ideal_overflow; reg ideal_underflow; reg ideal_full; reg ideal_empty; reg ideal_almost_full; reg ideal_almost_empty; reg ideal_prog_full; reg ideal_prog_empty; //MSBs of the counts reg [C_WR_DATA_COUNT_WIDTH-1 : 0] ideal_wr_count; reg [C_RD_DATA_COUNT_WIDTH-1 : 0] ideal_rd_count; //user specified value for reseting the size of the fifo reg [C_DOUT_WIDTH-1:0] dout_reset_val; //temporary registers for WR_RESPONSE_LATENCY feature integer tmp_wr_listsize; integer tmp_rd_listsize; //Signal for registered version of prog full and empty reg prog_full_d; reg prog_empty_d; //Threshold values for Programmable Flags integer prog_empty_actual_thresh_assert; integer prog_empty_actual_thresh_negate; integer prog_full_actual_thresh_assert; integer prog_full_actual_thresh_negate; /**************************************************************************** * Function Declarations ***************************************************************************/ task write_fifo; begin memory[wr_ptr] <= DIN; if (wr_ptr == 0) begin wr_ptr <= C_WR_DEPTH - 1; end else begin wr_ptr <= wr_ptr - 1; end end endtask // write_fifo task read_fifo; integer i; reg [C_DOUT_WIDTH-1:0] tmp_dout; reg [C_DIN_WIDTH-1:0] memory_read; reg [31:0] tmp_rd_ptr; reg [31:0] rd_ptr_high; reg [31:0] rd_ptr_low; begin // output is wider than input if (reads_per_write == 0) begin tmp_dout = 0; tmp_rd_ptr = (rd_ptr << log2_writes_per_read)+(writes_per_read-1); for (i = writes_per_read - 1; i >= 0; i = i - 1) begin tmp_dout = tmp_dout << C_DIN_WIDTH; tmp_dout = tmp_dout | memory[tmp_rd_ptr]; if (tmp_rd_ptr == 0) begin tmp_rd_ptr = C_WR_DEPTH - 1; end else begin tmp_rd_ptr = tmp_rd_ptr - 1; end end // output is symmetric end else if (reads_per_write == 1) begin tmp_dout = memory[rd_ptr]; // input is wider than output end else begin rd_ptr_high = rd_ptr >> log2_reads_per_write; rd_ptr_low = rd_ptr & (reads_per_write - 1); memory_read = memory[rd_ptr_high]; tmp_dout = memory_read >> (rd_ptr_low*C_DOUT_WIDTH); end ideal_dout <= tmp_dout; if (rd_ptr == 0) begin rd_ptr <= C_RD_DEPTH - 1; end else begin rd_ptr <= rd_ptr - 1; end end endtask /**************************************************************************** * log2_val * Returns the 'log2' value for the input value for the supported ratios ***************************************************************************/ function [31:0] log2_val; input [31:0] binary_val; begin if (binary_val == 8) begin log2_val = 3; end else if (binary_val == 4) begin log2_val = 2; end else begin log2_val = 1; end end endfunction /************************************************************************* * hexstr_conv * Converts a string of type hex to a binary value (for C_DOUT_RST_VAL) ***********************************************************************/ function [C_DOUT_WIDTH-1:0] hexstr_conv; input [(C_DOUT_WIDTH*8)-1:0] def_data; integer index,i,j; reg [3:0] bin; begin index = 0; hexstr_conv = 'b0; for( i=C_DOUT_WIDTH-1; i>=0; i=i-1 ) begin case (def_data[7:0]) 8'b00000000 : begin bin = 4'b0000; i = -1; end 8'b00110000 : bin = 4'b0000; 8'b00110001 : bin = 4'b0001; 8'b00110010 : bin = 4'b0010; 8'b00110011 : bin = 4'b0011; 8'b00110100 : bin = 4'b0100; 8'b00110101 : bin = 4'b0101; 8'b00110110 : bin = 4'b0110; 8'b00110111 : bin = 4'b0111; 8'b00111000 : bin = 4'b1000; 8'b00111001 : bin = 4'b1001; 8'b01000001 : bin = 4'b1010; 8'b01000010 : bin = 4'b1011; 8'b01000011 : bin = 4'b1100; 8'b01000100 : bin = 4'b1101; 8'b01000101 : bin = 4'b1110; 8'b01000110 : bin = 4'b1111; 8'b01100001 : bin = 4'b1010; 8'b01100010 : bin = 4'b1011; 8'b01100011 : bin = 4'b1100; 8'b01100100 : bin = 4'b1101; 8'b01100101 : bin = 4'b1110; 8'b01100110 : bin = 4'b1111; default : begin bin = 4'bx; end endcase for( j=0; j<4; j=j+1) begin if ((index*4)+j < C_DOUT_WIDTH) begin hexstr_conv[(index*4)+j] = bin[j]; end end index = index + 1; def_data = def_data >> 8; end end endfunction /************************************************************************* * Initialize Signals for clean power-on simulation *************************************************************************/ initial begin num_wr_bits = 0; num_rd_bits = 0; next_num_wr_bits = 0; next_num_rd_bits = 0; rd_ptr = C_RD_DEPTH - 1; wr_ptr = C_WR_DEPTH - 1; rd_ptr_wrclk = rd_ptr; wr_ptr_rdclk = wr_ptr; dout_reset_val = hexstr_conv(C_DOUT_RST_VAL); ideal_dout = dout_reset_val; ideal_wr_ack = 1'b0; ideal_valid = 1'b0; ideal_overflow = 1'b0; ideal_underflow = 1'b0; //Modified the start-up value of FULL to '0' in v3.2 (IP2_Im) //ideal_full = C_FULL_RESET_VAL; //was in v3.1 ideal_full = 1'b0; //v3.2 ideal_empty = 1'b1; //Modified the start-up value of ALMOST_FULL to '0' in v3.2 (IP2_Im) //ideal_almost_full = C_ALMOST_FULL_RESET_VAL; //was in v3.1 ideal_almost_full = 1'b0; //v3.2 ideal_almost_empty = 1'b1; ideal_wr_count = 0; ideal_rd_count = 0; //Modified the start-up value of PROG_FULL to '0' in v3.2 (IP2_Im) //ideal_prog_full = C_PROG_FULL_RESET_VAL; //was in v3.1 ideal_prog_full = 1'b0; //v3.2 ideal_prog_empty = 1'b1; //Modified the start-up value of PROG_FULL to '0' in v3.2 (IP2_Im) //Therefore, prog_full_d has to start-up at '0' too //prog_full_d = C_PROG_FULL_RESET_VAL; //was in v3.1 prog_full_d = 1'b0; //v3.2 prog_empty_d = 1'b1; end /************************************************************************* * Assign Internal ideal signals to output ports *************************************************************************/ assign ideal_dout_out= (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? ideal_dout_d1: ideal_dout; assign DOUT = ideal_dout_out; assign FULL = ideal_full; assign EMPTY = ideal_empty; assign ALMOST_FULL = ideal_almost_full; assign ALMOST_EMPTY = ideal_almost_empty; assign num_write_words_sized_i=C_USE_FWFT_DATA_COUNT? num_write_words_sized_fwft:num_write_words_sized; assign num_read_words_sized_i=C_USE_FWFT_DATA_COUNT? num_read_words_sized_fwft:num_read_words_sized; assign num_write_words_dc_i = C_USE_FWFT_DATA_COUNT? num_write_words_fwft_dc: num_write_words_dc; assign num_read_words_dc_i = C_USE_FWFT_DATA_COUNT? num_read_words_fwft_dc: num_read_words_dc; assign WR_DATA_COUNT = ideal_wr_count; assign RD_DATA_COUNT = ideal_rd_count; assign PROG_FULL = ideal_prog_full; assign PROG_EMPTY = ideal_prog_empty; //Handshaking signals can be active low, depending on _LOW parameters assign valid_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & ~EMPTY) : ideal_valid; assign VALID = valid_out ? !C_VALID_LOW : C_VALID_LOW; assign valid_out = (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? valid_d1: valid_i; assign underflow_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & EMPTY) : ideal_underflow; assign UNDERFLOW = underflow_i ? !C_UNDERFLOW_LOW : C_UNDERFLOW_LOW; assign WR_ACK = wr_ack_i ? !C_WR_ACK_LOW : C_WR_ACK_LOW; assign wr_ack_i = (C_WR_RESPONSE_LATENCY==1) ? ideal_wr_ack : (WR_EN & !FULL); assign OVERFLOW = overflow_i ? !C_OVERFLOW_LOW : C_OVERFLOW_LOW; assign overflow_i = (C_WR_RESPONSE_LATENCY==1) ? ideal_overflow : (WR_EN & FULL); /******************************************************************************* * Internal reset logics ******************************************************************************/ assign wr_rst_comb = !wr_rst_asreg_d2 && wr_rst_asreg; assign rd_rst_comb = !rd_rst_asreg_d2 && rd_rst_asreg; assign wr_rst_i = C_HAS_RST ? wr_rst_reg : 0; assign rd_rst_i = C_HAS_RST ? rd_rst_reg : 0; always @(posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i == 1'b1) begin valid_d1 <= 1'b0; end else begin valid_d1 <= valid_i; end end always @(posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i == 1'b1) begin ideal_dout_d1 <= dout_reset_val; end else begin ideal_dout_d1 <= ideal_dout; end end always @(posedge WR_CLK or posedge RST) begin if (RST == 1'b1) begin wr_rst_asreg <= 1'b1; end else begin if (wr_rst_asreg_d1 == 1'b1) begin wr_rst_asreg <= 1'b0; end else begin wr_rst_asreg <= wr_rst_asreg; end end end always @(posedge WR_CLK) begin wr_rst_asreg_d1 <= wr_rst_asreg; wr_rst_asreg_d2 <= wr_rst_asreg_d1; end always @(posedge WR_CLK or posedge wr_rst_comb) begin if (wr_rst_comb == 1'b1) begin wr_rst_reg <= 1'b1; end else begin wr_rst_reg <= 1'b0; end end always @(posedge WR_CLK or posedge wr_rst_i) begin if (wr_rst_i == 1'b1) begin wr_rst_d1 <= 1'b1; end else begin wr_rst_d1 <= wr_rst_i; end end always @(posedge RD_CLK or posedge RST) begin if (RST == 1'b1) begin rd_rst_asreg <= 1'b1; end else begin if (rd_rst_asreg_d1 == 1'b1) begin rd_rst_asreg <= 1'b0; end else begin rd_rst_asreg <= rd_rst_asreg; end end end always @(posedge RD_CLK) begin rd_rst_asreg_d1 <= rd_rst_asreg; rd_rst_asreg_d2 <= rd_rst_asreg_d1; end always @(posedge RD_CLK or posedge rd_rst_comb) begin if (rd_rst_comb == 1'b1) begin rd_rst_reg <= 1'b1; end else begin rd_rst_reg <= 1'b0; end end //Generate overflow and underflow flags seperately //because they don't support async rst always @(posedge WR_CLK) begin ideal_overflow <= WR_EN & ideal_full; end always @(posedge RD_CLK) begin ideal_underflow <= ideal_empty & RD_EN; end /******************************************************************************* * Write and Read Logics ******************************************************************************/ always @(posedge WR_CLK or posedge wr_rst_i) begin : gen_fifo_w /****** Reset fifo (case 1)***************************************/ if (wr_rst_i == 1'b1) begin num_wr_bits <= 0; next_num_wr_bits <= 0; wr_ptr <= C_WR_DEPTH - 1; rd_ptr_wrclk <= C_RD_DEPTH - 1; ideal_wr_ack <= 0; ideal_full <= C_FULL_FLAGS_RST_VAL; ideal_almost_full <= C_FULL_FLAGS_RST_VAL; ideal_wr_count <= 0; ideal_prog_full <= C_FULL_FLAGS_RST_VAL; prog_full_d <= C_FULL_FLAGS_RST_VAL; end else begin //wr_rst_i==0 //Determine the current number of words in the FIFO tmp_wr_listsize = (C_DEPTH_RATIO_RD > 1) ? num_wr_bits/C_DOUT_WIDTH : num_wr_bits/C_DIN_WIDTH; rd_ptr_wrclk_next = rd_ptr; if (rd_ptr_wrclk < rd_ptr_wrclk_next) begin next_num_wr_bits = num_wr_bits - C_DOUT_WIDTH*(rd_ptr_wrclk + C_RD_DEPTH - rd_ptr_wrclk_next); end else begin next_num_wr_bits = num_wr_bits - C_DOUT_WIDTH*(rd_ptr_wrclk - rd_ptr_wrclk_next); end //If this is a write, handle the write by adding the value // to the linked list, and updating all outputs appropriately if (WR_EN == 1'b1) begin if (ideal_full == 1'b1) begin //If the FIFO is full, do NOT perform the write, // update flags accordingly if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD >= C_FIFO_WR_DEPTH) begin //write unsuccessful - do not change contents //Do not acknowledge the write ideal_wr_ack <= 0; //Reminder that FIFO is still full ideal_full <= 1'b1; ideal_almost_full <= 1'b1; ideal_wr_count <= num_write_words_sized_i; //If the FIFO is one from full, but reporting full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD == C_FIFO_WR_DEPTH-1) begin //No change to FIFO //Write not successful ideal_wr_ack <= 0; //With DEPTH-1 words in the FIFO, it is almost_full ideal_full <= 1'b0; ideal_almost_full <= 1'b1; ideal_wr_count <= num_write_words_sized_i; //If the FIFO is completely empty, but it is // reporting FULL for some reason (like reset) end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD <= C_FIFO_WR_DEPTH-2) begin //No change to FIFO //Write not successful ideal_wr_ack <= 0; //FIFO is really not close to full, so change flag status. ideal_full <= 1'b0; ideal_almost_full <= 1'b0; ideal_wr_count <= num_write_words_sized_i; end //(tmp_wr_listsize == 0) end else begin //If the FIFO is full, do NOT perform the write, // update flags accordingly if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD >= C_FIFO_WR_DEPTH) begin //write unsuccessful - do not change contents //Do not acknowledge the write ideal_wr_ack <= 0; //Reminder that FIFO is still full ideal_full <= 1'b1; ideal_almost_full <= 1'b1; ideal_wr_count <= num_write_words_sized_i; //If the FIFO is one from full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD == C_FIFO_WR_DEPTH-1) begin //Add value on DIN port to FIFO write_fifo; next_num_wr_bits = next_num_wr_bits + C_DIN_WIDTH; //Write successful, so issue acknowledge // and no error ideal_wr_ack <= 1; //This write is CAUSING the FIFO to go full ideal_full <= 1'b1; ideal_almost_full <= 1'b1; ideal_wr_count <= num_write_words_sized_i; //If the FIFO is 2 from full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD == C_FIFO_WR_DEPTH-2) begin //Add value on DIN port to FIFO write_fifo; next_num_wr_bits = next_num_wr_bits + C_DIN_WIDTH; //Write successful, so issue acknowledge // and no error ideal_wr_ack <= 1; //Still 2 from full ideal_full <= 1'b0; //2 from full, and writing, so set almost_full ideal_almost_full <= 1'b1; ideal_wr_count <= num_write_words_sized_i; //If the FIFO is not close to being full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD < C_FIFO_WR_DEPTH-2) begin //Add value on DIN port to FIFO write_fifo; next_num_wr_bits = next_num_wr_bits + C_DIN_WIDTH; //Write successful, so issue acknowledge // and no error ideal_wr_ack <= 1; //Not even close to full. ideal_full <= 1'b0; ideal_almost_full <= 1'b0; ideal_wr_count <= num_write_words_sized_i; end end end else begin //(WR_EN == 1'b1) //If user did not attempt a write, then do not // give ack or err ideal_wr_ack <= 0; //Implied statements: //ideal_empty <= ideal_empty; //ideal_almost_empty <= ideal_almost_empty; //Check for full if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD >= C_FIFO_WR_DEPTH) ideal_full <= 1'b1; else ideal_full <= 1'b0; //Check for almost_full if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD >= C_FIFO_WR_DEPTH-1) ideal_almost_full <= 1'b1; else ideal_almost_full <= 1'b0; ideal_wr_count <= num_write_words_sized_i; end /********************************************************* * Programmable FULL flags *********************************************************/ //Single Programmable Full Constant Threshold if (C_PROG_FULL_TYPE==1) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_full_actual_thresh_assert = C_PROG_FULL_THRESH_ASSERT_VAL-EXTRA_WORDS; prog_full_actual_thresh_negate = C_PROG_FULL_THRESH_ASSERT_VAL-EXTRA_WORDS; end else begin prog_full_actual_thresh_assert = C_PROG_FULL_THRESH_ASSERT_VAL; prog_full_actual_thresh_negate = C_PROG_FULL_THRESH_ASSERT_VAL; end //Two Programmable Full Constant Thresholds end else if (C_PROG_FULL_TYPE==2) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_full_actual_thresh_assert = C_PROG_FULL_THRESH_ASSERT_VAL-EXTRA_WORDS; prog_full_actual_thresh_negate = C_PROG_FULL_THRESH_NEGATE_VAL-EXTRA_WORDS; end else begin prog_full_actual_thresh_assert = C_PROG_FULL_THRESH_ASSERT_VAL; prog_full_actual_thresh_negate = C_PROG_FULL_THRESH_NEGATE_VAL; end //Single Programmable Full Threshold Input end else if (C_PROG_FULL_TYPE==3) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_full_actual_thresh_assert = PROG_FULL_THRESH-EXTRA_WORDS; prog_full_actual_thresh_negate = PROG_FULL_THRESH-EXTRA_WORDS; end else begin prog_full_actual_thresh_assert = PROG_FULL_THRESH; prog_full_actual_thresh_negate = PROG_FULL_THRESH; end //Two Programmable Full Threshold Inputs end else if (C_PROG_FULL_TYPE==4) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_full_actual_thresh_assert = PROG_FULL_THRESH_ASSERT-EXTRA_WORDS; prog_full_actual_thresh_negate = PROG_FULL_THRESH_NEGATE-EXTRA_WORDS; end else begin prog_full_actual_thresh_assert = PROG_FULL_THRESH_ASSERT; prog_full_actual_thresh_negate = PROG_FULL_THRESH_NEGATE; end end //C_PROG_FULL_TYPE if (num_write_words_pf==0) begin prog_full_d <= 1'b0; end else begin if (((1+(num_write_words_pf-1)/C_DEPTH_RATIO_RD) == prog_full_actual_thresh_assert-1) && WR_EN) begin prog_full_d <= 1'b1; end else if ((1+(num_write_words_pf-1)/C_DEPTH_RATIO_RD) >= prog_full_actual_thresh_assert) begin prog_full_d <= 1'b1; end else if ((1+(num_write_words_pf-1)/C_DEPTH_RATIO_RD) < prog_full_actual_thresh_negate) begin prog_full_d <= 1'b0; end end if (wr_rst_d1==1 && wr_rst_i==0) begin ideal_prog_full <= 0; end else begin ideal_prog_full <= prog_full_d; end num_wr_bits <= next_num_wr_bits; rd_ptr_wrclk <= rd_ptr; end //wr_rst_i==0 end // write always always @(posedge RD_CLK or posedge rd_rst_i) begin : gen_fifo_r /****** Reset fifo (case 1)***************************************/ if (rd_rst_i) begin num_rd_bits <= 0; next_num_rd_bits <= 0; rd_ptr <= C_RD_DEPTH -1; wr_ptr_rdclk <= C_WR_DEPTH -1; ideal_dout <= dout_reset_val; ideal_valid <= 1'b0; ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= 0; ideal_prog_empty <= 1'b1; prog_empty_d <= 1; end else begin //rd_rst_i==0 //Determine the current number of words in the FIFO tmp_rd_listsize = (C_DEPTH_RATIO_WR > 1) ? num_rd_bits/C_DIN_WIDTH : num_rd_bits/C_DOUT_WIDTH; wr_ptr_rdclk_next = wr_ptr; if (wr_ptr_rdclk < wr_ptr_rdclk_next) begin next_num_rd_bits = num_rd_bits + C_DIN_WIDTH*(wr_ptr_rdclk +C_WR_DEPTH - wr_ptr_rdclk_next); end else begin next_num_rd_bits = num_rd_bits + C_DIN_WIDTH*(wr_ptr_rdclk - wr_ptr_rdclk_next); end /*****************************************************************/ // Read Operation - Read Latency 1 /*****************************************************************/ if (C_PRELOAD_LATENCY==1 || C_PRELOAD_LATENCY==2) begin if (RD_EN == 1'b1) begin if (ideal_empty == 1'b1) begin //If the FIFO is completely empty, and is reporting empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Reminder that FIFO is still empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize <= 0) //If the FIFO is one from empty, but it is reporting empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 1) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Note that FIFO is no longer empty, but is almost empty (has one word left) ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize == 1) //If the FIFO is two from empty, and is reporting empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Fifo has two words, so is neither empty or almost empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize == 2) //If the FIFO is not close to empty, but is reporting that it is // Treat the FIFO as empty this time, but unset EMPTY flags. if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR 2) && (tmp_rd_listsize<=C_FIFO_RD_DEPTH-1)) end // else: if(ideal_empty == 1'b1) else //if (ideal_empty == 1'b0) begin //If the FIFO is completely full, and we are successfully reading from it if (tmp_rd_listsize/C_DEPTH_RATIO_WR >= C_FIFO_RD_DEPTH) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Not close to empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize == C_FIFO_RD_DEPTH) //If the FIFO is not close to being empty else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR<=C_FIFO_RD_DEPTH)) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Not close to empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; end // if ((tmp_rd_listsize > 2) && (tmp_rd_listsize<=C_FIFO_RD_DEPTH-1)) //If the FIFO is two from empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Fifo is not yet empty. It is going almost_empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize == 2) //If the FIFO is one from empty else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR == 1)) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Note that FIFO is GOING empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize == 1) //If the FIFO is completely empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Reminder that FIFO is still empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize <= 0) end // if (ideal_empty == 1'b0) end //(RD_EN == 1'b1) else //if (RD_EN == 1'b0) begin //If user did not attempt a read, do not give an ack or err ideal_valid <= 1'b0; //Check for empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) ideal_empty <= 1'b1; else ideal_empty <= 1'b0; //Check for almost_empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 1) ideal_almost_empty <= 1'b1; else ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; end // else: !if(RD_EN == 1'b1) /*****************************************************************/ // Read Operation - Read Latency 0 /*****************************************************************/ end else if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin if (RD_EN == 1'b1) begin if (ideal_empty == 1'b1) begin //If the FIFO is completely empty, and is reporting empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Reminder that FIFO is still empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is one from empty, but it is reporting empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 1) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Note that FIFO is no longer empty, but is almost empty (has one word left) ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is two from empty, and is reporting empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Fifo has two words, so is neither empty or almost empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is not close to empty, but is reporting that it is // Treat the FIFO as empty this time, but unset EMPTY flags. end else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR 2) && (tmp_rd_listsize<=C_FIFO_RD_DEPTH-1)) end else begin //If the FIFO is completely full, and we are successfully reading from it if (tmp_rd_listsize/C_DEPTH_RATIO_WR >= C_FIFO_RD_DEPTH) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Not close to empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is not close to being empty end else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR<=C_FIFO_RD_DEPTH)) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Not close to empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is two from empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Fifo is not yet empty. It is going almost_empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is one from empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 1) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= 1'b1; //Note that FIFO is GOING empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; //If the FIFO is completely empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= 1'b0; //Reminder that FIFO is still empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; ideal_rd_count <= num_read_words_sized_i; end // if (tmp_rd_listsize <= 0) end // if (ideal_empty == 1'b0) end else begin//(RD_EN == 1'b0) //If user did not attempt a read, do not give an ack or err ideal_valid <= 1'b0; //Check for empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) ideal_empty <= 1'b1; else ideal_empty <= 1'b0; //Check for almost_empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 1) ideal_almost_empty <= 1'b1; else ideal_almost_empty <= 1'b0; ideal_rd_count <= num_read_words_sized_i; end // else: !if(RD_EN == 1'b1) end //if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) /********************************************************* * Programmable EMPTY flags *********************************************************/ //Determine the Assert and Negate thresholds for Programmable Empty // (Subtract 2 read-sized words when using Preload 0) //Single Programmable Empty Constant Threshold if (C_PROG_EMPTY_TYPE==1) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_empty_actual_thresh_assert = C_PROG_EMPTY_THRESH_ASSERT_VAL-2; prog_empty_actual_thresh_negate = C_PROG_EMPTY_THRESH_ASSERT_VAL-2; end else begin prog_empty_actual_thresh_assert = C_PROG_EMPTY_THRESH_ASSERT_VAL; prog_empty_actual_thresh_negate = C_PROG_EMPTY_THRESH_ASSERT_VAL; end //Two Programmable Empty Constant Thresholds end else if (C_PROG_EMPTY_TYPE==2) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_empty_actual_thresh_assert = C_PROG_EMPTY_THRESH_ASSERT_VAL-2; prog_empty_actual_thresh_negate = C_PROG_EMPTY_THRESH_NEGATE_VAL-2; end else begin prog_empty_actual_thresh_assert = C_PROG_EMPTY_THRESH_ASSERT_VAL; prog_empty_actual_thresh_negate = C_PROG_EMPTY_THRESH_NEGATE_VAL; end //Single Programmable Empty Constant Threshold end else if (C_PROG_EMPTY_TYPE==3) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_empty_actual_thresh_assert = PROG_EMPTY_THRESH-2; prog_empty_actual_thresh_negate = PROG_EMPTY_THRESH-2; end else begin prog_empty_actual_thresh_assert = PROG_EMPTY_THRESH; prog_empty_actual_thresh_negate = PROG_EMPTY_THRESH; end //Two Programmable Empty Constant Thresholds end else if (C_PROG_EMPTY_TYPE==4) begin if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin prog_empty_actual_thresh_assert = PROG_EMPTY_THRESH_ASSERT-2; prog_empty_actual_thresh_negate = PROG_EMPTY_THRESH_NEGATE-2; end else begin prog_empty_actual_thresh_assert = PROG_EMPTY_THRESH_ASSERT; prog_empty_actual_thresh_negate = PROG_EMPTY_THRESH_NEGATE; end end if ((num_read_words_pe/C_DEPTH_RATIO_WR == prog_empty_actual_thresh_assert+1) && RD_EN) begin prog_empty_d <= 1'b1; end else if (num_read_words_pe/C_DEPTH_RATIO_WR <= prog_empty_actual_thresh_assert) begin prog_empty_d <= 1'b1; end else if (num_read_words_pe/C_DEPTH_RATIO_WR > prog_empty_actual_thresh_negate) begin prog_empty_d <= 1'b0; end ideal_prog_empty <= prog_empty_d; num_rd_bits <= next_num_rd_bits; wr_ptr_rdclk <= wr_ptr; end //rd_rst_i==0 end //always endmodule // fifo_generator_v4_3_bhv_ver_as /******************************************************************************* * Declaration of top-level module ******************************************************************************/ module fifo_generator_v4_3_bhv_ver_ss ( CLK, RST, SRST, DIN, WR_EN, RD_EN, PROG_FULL_THRESH, PROG_FULL_THRESH_ASSERT, PROG_FULL_THRESH_NEGATE, PROG_EMPTY_THRESH, PROG_EMPTY_THRESH_ASSERT, PROG_EMPTY_THRESH_NEGATE, DOUT, FULL, ALMOST_FULL, WR_ACK, OVERFLOW, EMPTY, ALMOST_EMPTY, VALID, UNDERFLOW, DATA_COUNT, PROG_FULL, PROG_EMPTY ); /****************************************************************************** * Declare user parameters and their defaults *****************************************************************************/ parameter C_COMMON_CLOCK = 0; parameter C_COUNT_TYPE = 0; parameter C_DATA_COUNT_WIDTH = 2; parameter C_DEFAULT_VALUE = ""; parameter C_DIN_WIDTH = 8; parameter C_DOUT_RST_VAL = ""; parameter C_DOUT_WIDTH = 8; parameter C_ENABLE_RLOCS = 0; parameter C_FAMILY = "virtex2"; //Not allowed in Verilog model parameter C_HAS_ALMOST_EMPTY = 0; parameter C_HAS_ALMOST_FULL = 0; parameter C_HAS_BACKUP = 0; parameter C_HAS_DATA_COUNT = 0; parameter C_HAS_MEMINIT_FILE = 0; parameter C_HAS_OVERFLOW = 0; parameter C_HAS_RD_DATA_COUNT = 0; parameter C_HAS_RD_RST = 0; parameter C_HAS_RST = 0; parameter C_HAS_SRST = 0; parameter C_HAS_UNDERFLOW = 0; parameter C_HAS_VALID = 0; parameter C_HAS_WR_ACK = 0; parameter C_HAS_WR_DATA_COUNT = 0; parameter C_HAS_WR_RST = 0; parameter C_IMPLEMENTATION_TYPE = 0; parameter C_INIT_WR_PNTR_VAL = 0; parameter C_MEMORY_TYPE = 1; parameter C_MIF_FILE_NAME = ""; parameter C_OPTIMIZATION_MODE = 0; parameter C_OVERFLOW_LOW = 0; parameter C_PRELOAD_LATENCY = 1; parameter C_PRELOAD_REGS = 0; parameter C_PROG_EMPTY_THRESH_ASSERT_VAL = 0; parameter C_PROG_EMPTY_THRESH_NEGATE_VAL = 0; parameter C_PROG_EMPTY_TYPE = 0; parameter C_PROG_FULL_THRESH_ASSERT_VAL = 0; parameter C_PROG_FULL_THRESH_NEGATE_VAL = 0; parameter C_PROG_FULL_TYPE = 0; parameter C_RD_DATA_COUNT_WIDTH = 2; parameter C_RD_DEPTH = 256; parameter C_RD_PNTR_WIDTH = 8; parameter C_UNDERFLOW_LOW = 0; parameter C_VALID_LOW = 0; parameter C_WR_ACK_LOW = 0; parameter C_WR_DATA_COUNT_WIDTH = 2; parameter C_WR_DEPTH = 256; parameter C_WR_PNTR_WIDTH = 8; parameter C_WR_RESPONSE_LATENCY = 1; parameter C_FULL_FLAGS_RST_VAL = 1; parameter C_USE_EMBEDDED_REG = 0; /****************************************************************************** * Declare Input and Output Ports *****************************************************************************/ input CLK; input [C_DIN_WIDTH-1:0] DIN; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT; input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT; input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE; input RD_EN; input RST; input SRST; input WR_EN; output ALMOST_EMPTY; output ALMOST_FULL; output [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT; output [C_DOUT_WIDTH-1:0] DOUT; output EMPTY; output FULL; output OVERFLOW; output PROG_EMPTY; output PROG_FULL; output VALID; output UNDERFLOW; output WR_ACK; /******************************************************************************* * Input and output register declarations ******************************************************************************/ /******************************************************************************* * Parameters used as constants ******************************************************************************/ //When RST is present, set FULL reset value to '1'. //If core has no RST, make sure FULL powers-on as '0'. //The reset value assignments for FULL, ALMOST_FULL, and PROG_FULL are not //changed for v3.2(IP2_Im). When the core has Sync Reset, C_HAS_SRST=1 and C_HAS_RST=0. // Therefore, during SRST, all the FULL flags reset to 0. parameter C_HAS_FAST_FIFO = 0; parameter C_FIFO_WR_DEPTH = (C_COMMON_CLOCK) ? C_WR_DEPTH : C_WR_DEPTH - 1; parameter C_FIFO_RD_DEPTH = (C_COMMON_CLOCK) ? C_RD_DEPTH : C_RD_DEPTH - 1; /**************************************************************************** * Internal Registers and wires ***************************************************************************/ wire wr_ack_i; wire overflow_i; wire underflow_i; wire valid_i; wire valid_out; reg valid_d1; wire srst_i; /******************************************************************************* * Internal registers and wires for internal reset logics ******************************************************************************/ reg rst_asreg =0; reg rst_asreg_d1 =0; reg rst_asreg_d2 =0; reg rst_reg =0; reg rst_d1 =0; wire rst_comb; wire rst_i; //Memory which will be used to simulate a FIFO reg [C_DIN_WIDTH-1:0] memory[C_WR_DEPTH-1:0]; reg [31:0] num_bits; reg [31:0] wr_ptr; reg [31:0] rd_ptr; wire [31:0] num_read_words = num_bits/C_DOUT_WIDTH; reg [31:0] num_read_words_q; wire [31:0] num_write_words = num_bits/C_DIN_WIDTH; reg [31:0] num_write_words_q; //Removed power_on_timer in v3.2 (IP2_Im). For all reset types (Async, Sync, or no reset), the power-on values of the flags in the core are modified so that the core is ready to use from the very first clock cycle. //reg [3:0] power_on_timer; //Special ideal FIFO signals reg [C_DOUT_WIDTH-1:0] ideal_dout; reg [C_DOUT_WIDTH-1:0] ideal_dout_d1; wire [C_DOUT_WIDTH-1:0] ideal_dout_out; reg ideal_wr_ack; reg ideal_valid; reg ideal_overflow; reg ideal_underflow; reg ideal_full; reg ideal_empty; reg ideal_almost_full; reg ideal_almost_empty; reg ideal_prog_full; reg ideal_prog_empty; //MSBs of the counts wire [C_DATA_COUNT_WIDTH-1:0] ideal_d_count; //user specified value for reseting the size of the fifo reg [C_DOUT_WIDTH-1:0] dout_reset_val; //temporary registers for WR_RESPONSE_LATENCY feature reg ideal_wr_ack_q; reg ideal_overflow_q; reg prog_full_d; reg prog_empty_d; //Delayed version of RST reg rst_q; reg rst_qq; /**************************************************************************** * Function Declarations ***************************************************************************/ task write_fifo; begin memory[wr_ptr] <= DIN; if (wr_ptr == 0) begin wr_ptr <= C_WR_DEPTH - 1; end else begin wr_ptr <= wr_ptr - 1; end end endtask // write_fifo task read_fifo; begin ideal_dout <= memory[rd_ptr]; if (rd_ptr == 0) begin rd_ptr <= C_RD_DEPTH - 1; end else begin rd_ptr <= rd_ptr - 1; end end endtask /**************************************************************************** * log2_val * Returns the 'log2' value for the input value for the supported ratios ***************************************************************************/ function [31:0] log2_val; input [31:0] binary_val; begin if (binary_val == 8) begin log2_val = 3; end else if (binary_val == 4) begin log2_val = 2; end else begin log2_val = 1; end end endfunction /**************************************************************************** * hexstr_conv * Converts a string of type hex to a binary value (for C_DOUT_RST_VAL) ***************************************************************************/ function [C_DOUT_WIDTH-1:0] hexstr_conv; input [(C_DOUT_WIDTH*8)-1:0] def_data; integer index,i,j; reg [3:0] bin; begin index = 0; hexstr_conv = 'b0; for( i=C_DOUT_WIDTH-1; i>=0; i=i-1 ) begin case (def_data[7:0]) 8'b00000000 : begin bin = 4'b0000; i = -1; end 8'b00110000 : bin = 4'b0000; 8'b00110001 : bin = 4'b0001; 8'b00110010 : bin = 4'b0010; 8'b00110011 : bin = 4'b0011; 8'b00110100 : bin = 4'b0100; 8'b00110101 : bin = 4'b0101; 8'b00110110 : bin = 4'b0110; 8'b00110111 : bin = 4'b0111; 8'b00111000 : bin = 4'b1000; 8'b00111001 : bin = 4'b1001; 8'b01000001 : bin = 4'b1010; 8'b01000010 : bin = 4'b1011; 8'b01000011 : bin = 4'b1100; 8'b01000100 : bin = 4'b1101; 8'b01000101 : bin = 4'b1110; 8'b01000110 : bin = 4'b1111; 8'b01100001 : bin = 4'b1010; 8'b01100010 : bin = 4'b1011; 8'b01100011 : bin = 4'b1100; 8'b01100100 : bin = 4'b1101; 8'b01100101 : bin = 4'b1110; 8'b01100110 : bin = 4'b1111; default : begin bin = 4'bx; end endcase for( j=0; j<4; j=j+1) begin if ((index*4)+j < C_DOUT_WIDTH) begin hexstr_conv[(index*4)+j] = bin[j]; end end index = index + 1; def_data = def_data >> 8; end end endfunction /***************************************************************************** * Initialize Signals ****************************************************************************/ initial begin num_bits = 0; num_read_words_q = 0; num_write_words_q = 0; rd_ptr = C_RD_DEPTH -1; wr_ptr = C_WR_DEPTH -1; dout_reset_val = hexstr_conv(C_DOUT_RST_VAL); ideal_dout = dout_reset_val; ideal_wr_ack = 1'b0; ideal_valid = 1'b0; valid_d1 = 1'b0; ideal_overflow = 1'b0; ideal_underflow = 1'b0; //Modified the start-up value of FULL to '0' in v3.2 (IP2_Im) //ideal_full = C_FULL_RESET_VAL; //was in v3.1 ideal_full = 1'b0; //v3.2 ideal_empty = 1'b1; //Modified the start-up value of ALMOST_FULL to '0' in v3.2 (IP2_Im) //ideal_almost_full = C_ALMOST_FULL_RESET_VAL; //was in v3.1 ideal_almost_full = 1'b0; ideal_almost_empty = 1'b1; //Modified the start-up value of PROG_FULL to '0' in v3.2 (IP2_Im) //ideal_prog_full = C_PROG_FULL_RESET_VAL; //was in v3.1 ideal_prog_full = 1'b0; //v3.2 ideal_prog_empty = 1'b1; //Modified the start-up value of PROG_FULL to '0' in v3.2 (IP2_Im) //Therefore, prog_full_d is also changed //prog_full_d = C_PROG_FULL_RESET_VAL; //was in v3.1 prog_full_d = 1'b0; //v3.2 prog_empty_d = 1'b1; //Removed in v3.2 //power_on_timer = C_HAS_RST ? 4'h3 : 4'h0; //Added these initial values in v3.2 to make it consistent with the synchronization flop stages in the core. rst_q = 1'b0; rst_qq = 1'b0; end /***************************************************************************** * Assign Internal ideal signals to output ports ****************************************************************************/ assign ideal_dout_out= (C_USE_EMBEDDED_REG==1 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? ideal_dout_d1: ideal_dout; assign DOUT = ideal_dout_out; //was in v3.1 //assign FULL = (power_on_timer) ? C_FULL_RESET_VAL : ideal_full; //v3.2 assign FULL = ideal_full; assign EMPTY = ideal_empty; //was in v3.1 //assign ALMOST_FULL = (power_on_timer) ? C_ALMOST_FULL_RESET_VAL : ideal_almost_full; //v3.2 assign ALMOST_FULL = ideal_almost_full; assign ALMOST_EMPTY = ideal_almost_empty; assign ideal_d_count = num_read_words[C_RD_PNTR_WIDTH-1:C_RD_PNTR_WIDTH-C_DATA_COUNT_WIDTH]; assign DATA_COUNT = ideal_d_count; //was in v3.1 //assign PROG_FULL = (power_on_timer) ? C_PROG_FULL_RESET_VAL : ideal_prog_full; //v3.2 assign PROG_FULL = ideal_prog_full; assign PROG_EMPTY = ideal_prog_empty; //Handshaking signals can be active low, depending on _LOW parameters assign valid_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & ~EMPTY) : ideal_valid; assign VALID = valid_out ? !C_VALID_LOW : C_VALID_LOW; assign valid_out = (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? valid_d1: valid_i; assign underflow_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & EMPTY) : ideal_underflow; assign UNDERFLOW = underflow_i ? !C_UNDERFLOW_LOW : C_UNDERFLOW_LOW; assign WR_ACK = wr_ack_i ? !C_WR_ACK_LOW : C_WR_ACK_LOW; assign wr_ack_i = (C_WR_RESPONSE_LATENCY==2) ? ideal_wr_ack_q : (C_WR_RESPONSE_LATENCY==1) ? ideal_wr_ack : (WR_EN & !FULL); assign OVERFLOW = overflow_i ? !C_OVERFLOW_LOW : C_OVERFLOW_LOW; assign overflow_i = (C_WR_RESPONSE_LATENCY==2) ? ideal_overflow_q : (C_WR_RESPONSE_LATENCY==1) ? ideal_overflow : (WR_EN & FULL); assign srst_i = C_HAS_SRST ? SRST : 0; /******************************************************************************* * Internal reset logics ******************************************************************************/ assign rst_comb = !rst_asreg_d2 && rst_asreg; assign rst_i = C_HAS_RST ? rst_reg : 0; always @(posedge CLK or posedge rst_i) begin if (rst_i == 1'b1) begin valid_d1 <= 1'b0; end else begin if (srst_i) begin valid_d1 <= 1'b0; end else begin valid_d1 <= valid_i; end end end always @(posedge CLK or posedge rst_i) begin if (rst_i == 1'b1) begin ideal_dout_d1 <= dout_reset_val; end else begin if (srst_i) begin ideal_dout_d1 <= dout_reset_val; end else begin ideal_dout_d1 <= ideal_dout; end end end always @(posedge CLK or posedge RST) begin if (RST == 1'b1) begin rst_asreg <= 1'b1; end else begin if (rst_asreg_d1 == 1'b1) begin rst_asreg <= 1'b0; end else begin rst_asreg <= rst_asreg; end end end always @(posedge CLK) begin rst_asreg_d1 <= rst_asreg; rst_asreg_d2 <= rst_asreg_d1; end always @(posedge CLK or posedge rst_comb) begin if (rst_comb == 1'b1) begin rst_reg <= 1'b1; end else begin rst_reg <= 1'b0; end end /******************************************************************************* * Write and Read Logics ******************************************************************************/ always @(posedge CLK or posedge rst_i) begin : gen_wr_ack_resp //Register reset rst_q <= rst_i; rst_qq <= rst_q; //Register output signals to achieve desired WR_RESPONSE latency if (C_WR_RESPONSE_LATENCY == 2) begin if (rst_i == 1) begin ideal_wr_ack_q <= 0; ideal_overflow_q <= 0; end else begin ideal_wr_ack_q <= ideal_wr_ack; ideal_overflow_q <= ideal_overflow; end end //Removed in v3.2 /* if (rst_i == 1) begin power_on_timer <= 0; end else if (power_on_timer > 0) begin power_on_timer <= power_on_timer -1; end else begin power_on_timer <= 0; end */ end // block: gen_wr_ack_resp // block memory has a synchronous reset always @(posedge CLK) begin : gen_fifo_blkmemdout //Changed the latency of during async reset to '1' instead of '2' to make it consistent with the core. //if (rst_i || rst_q || rst_qq) begin //was in v3.1 if (rst_i || rst_q || srst_i) begin //v3.2 /******Initialize Read Domain Signals************************************/ if (C_MEMORY_TYPE == 1) begin ideal_dout <= dout_reset_val; end //v3.2 //end else begin //if (C_MEMORY_TYPE == 1 && power_on_timer >= 2) begin //was in v3.1 // if (C_MEMORY_TYPE == 1) begin //v3.2 // ideal_dout <= dout_reset_val; // end end end always @(posedge CLK or posedge rst_i) begin : gen_fifo /****** Reset fifo - Asynchronous Reset*************************************/ //Changed the latency of during async reset to '1' instead of '2' to make it consistent with the core. //if (rst_i || rst_q || rst_qq) begin //was in v3.1 //if (rst_i || rst_q) begin //v3.2 if (rst_i ) begin //v3.2 /******Initialize Generic FIFO constructs********************************/ num_bits <= 0; wr_ptr <= C_WR_DEPTH - 1; rd_ptr <= C_RD_DEPTH - 1; num_read_words_q <= 0; num_write_words_q <= 0; /******Initialize Write Domain Signals***********************************/ ideal_wr_ack <= 0; ideal_full <= C_FULL_FLAGS_RST_VAL; ideal_almost_full <= C_FULL_FLAGS_RST_VAL; /******Initialize Read Domain Signals************************************/ if (C_MEMORY_TYPE != 1) begin ideal_dout <= dout_reset_val; end ideal_valid <= 1'b0; ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; end else begin if (srst_i) begin // SRST is available only for Sync BRAM and Sync DRAM. Not for SSHFT. if (C_MEMORY_TYPE == 1 || C_MEMORY_TYPE == 2) begin /******Initialize Generic FIFO constructs********************************/ num_bits <= 0; wr_ptr <= C_WR_DEPTH - 1; rd_ptr <= C_RD_DEPTH - 1; num_read_words_q <= 0; num_write_words_q <= 0; /******Initialize Write Domain Signals***********************************/ ideal_wr_ack <= 0; ideal_full <= 0; //'0' ideal_almost_full <= 0; //'0' /******Initialize Read Domain Signals************************************/ //Reset DOUT of Sync DRAM. Sync BRAM DOUT was reset in the above always block. if (C_MEMORY_TYPE == 2) begin ideal_dout <= dout_reset_val; end ideal_valid <= 1'b0; ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; end end else begin //normal operating conditions /**********************************************************************/ // Synchronous FIFO Condition #1 : Writing and not reading /**********************************************************************/ if (WR_EN & ~RD_EN) begin /*********************************/ //If the FIFO is full, do NOT perform the write, // update flags accordingly /*********************************/ if (num_write_words >= C_FIFO_WR_DEPTH) begin ideal_wr_ack <= 0; //still full ideal_full <= 1'b1; ideal_almost_full <= 1'b1; //write unsuccessful - do not change contents // no read attempted ideal_valid <= 1'b0; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; /*********************************/ //If the FIFO is reporting FULL // (Startup condition) /*********************************/ end else if ((num_write_words < C_FIFO_WR_DEPTH) && (ideal_full == 1'b1)) begin ideal_wr_ack <= 0; //still full ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //write unsuccessful - do not change contents // no read attempted ideal_valid <= 1'b0; //FIFO EMPTY in this state can not be determined //ideal_empty <= 1'b0; //ideal_almost_empty <= 1'b0; /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //good write ideal_wr_ack <= 1; //FIFO is one from FULL and going FULL ideal_full <= 1'b1; ideal_almost_full <= 1'b1; //Add input data write_fifo; // no read attempted ideal_valid <= 1'b0; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; num_bits <= num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is 2 from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-2) begin //good write ideal_wr_ack <= 1; //2 from full, and writing, so set almost_full ideal_full <= 1'b0; ideal_almost_full <= 1'b1; //Add input data write_fifo; //no read attempted ideal_valid <= 1'b0; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; num_bits <= num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //good write ideal_wr_ack <= 1; //Not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Add input data write_fifo; // no read attempted ideal_valid <= 1'b0; //Leaving ALMOST_EMPTY ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; num_bits <= num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is EMPTY /*********************************/ end else if (num_read_words == 0) begin // good write ideal_wr_ack <= 1; //Not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Add input data write_fifo; // no read attempted ideal_valid <= 1'b0; //Leaving EMPTY (still ALMOST_EMPTY) ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; num_bits <= num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin // good write ideal_wr_ack <= 1; //Not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Add input data write_fifo; // no read attempted ideal_valid <= 1'b0; //Not near EMPTY ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; num_bits <= num_bits + C_DIN_WIDTH; end // average case /**********************************************************************/ // Synchronous FIFO Condition #2 : Reading and not writing /**********************************************************************/ end else if (~WR_EN & RD_EN) begin /*********************************/ //If the FIFO is EMPTY /*********************************/ if ((num_read_words == 0) || (ideal_empty == 1'b1)) begin //no write attemped ideal_wr_ack <= 0; //FIFO is not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Read will fail ideal_valid <= 1'b0; //FIFO is still empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; //No read /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //no write attempted ideal_wr_ack <= 0; //FIFO is not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Read successful ideal_valid <= 1'b1; //This read will make FIFO go empty ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; //Get the data from the FIFO read_fifo; num_bits <= num_bits - C_DIN_WIDTH; /*********************************/ //If the FIFO is 2 from EMPTY /*********************************/ end else if (num_read_words == 2) begin //no write attempted ideal_wr_ack <= 0; //FIFO is not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Read successful ideal_valid <= 1'b1; //FIFO is going ALMOST_EMPTY ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; //Get the data from the FIFO read_fifo; num_bits <= num_bits - C_DOUT_WIDTH; /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //no write attempted ideal_wr_ack <= 0; //FIFO is leaving ALMOST FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Read successful ideal_valid <= 1'b1; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //Read from the FIFO read_fifo; num_bits <= num_bits - C_DOUT_WIDTH; /*********************************/ // FIFO is FULL /*********************************/ end else if (num_write_words >= C_FIFO_WR_DEPTH) begin //no write attempted ideal_wr_ack <= 0; //FIFO is leaving FULL, but is still ALMOST_FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b1; //Read successful ideal_valid <= 1'b1; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //Read from the FIFO read_fifo; num_bits <= num_bits - C_DOUT_WIDTH; /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin //no write attemped ideal_wr_ack <= 0; //Not near empty ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Read successful ideal_valid <= 1'b1; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //Read from the FIFO read_fifo; num_bits <= num_bits - C_DOUT_WIDTH; end // average read /**********************************************************************/ // Synchronous FIFO Condition #3 : Reading and writing /**********************************************************************/ end else if (WR_EN & RD_EN) begin /*********************************/ // FIFO is FULL /*********************************/ if (num_write_words >= C_FIFO_WR_DEPTH) begin ideal_wr_ack <= 0; //Read will be successful, so FIFO will leave FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b1; //Read successful ideal_valid <= 1'b1; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //Read from the FIFO read_fifo; num_bits <= num_bits - C_DOUT_WIDTH; /*********************************/ // FIFO is reporting FULL, but it is empty // (This is a special case, when coming out of RST /*********************************/ end else if ((num_write_words == 0) && (ideal_full == 1'b1)) begin ideal_wr_ack <= 0; //Read will be successful, so FIFO will leave FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //Read unsuccessful ideal_valid <= 1'b0; //Report empty condition ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; //Do not read from empty FIFO // Read from the FIFO /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //Write successful ideal_wr_ack <= 1; //FIFO will remain ALMOST_FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b1; // put the data into the FIFO write_fifo; //Read successful ideal_valid <= 1'b1; //Not near empty ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //Read from the FIFO read_fifo; num_bits <= num_bits + C_DIN_WIDTH - C_DOUT_WIDTH; /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //Write successful ideal_wr_ack <= 1; // Not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; // put the data into the FIFO write_fifo; //Read successful ideal_valid <= 1'b1; //FIFO will stay ALMOST_EMPTY ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; //Read from the FIFO read_fifo; num_bits <= num_bits + C_DIN_WIDTH - C_DOUT_WIDTH; /*********************************/ //If the FIFO is EMPTY /*********************************/ end else if (num_read_words == 0) begin //Write successful ideal_wr_ack <= 1; // Not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; // put the data into the FIFO write_fifo; //Read will fail ideal_valid <= 1'b0; //FIFO will leave EMPTY ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; // No read num_bits <= num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin //Write successful ideal_wr_ack <= 1; // Not near FULL ideal_full <= 1'b0; ideal_almost_full <= 1'b0; // put the data into the FIFO write_fifo; //Read successful ideal_valid <= 1'b1; // Not near EMPTY ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //Read from the FIFO read_fifo; num_bits <= num_bits + C_DIN_WIDTH - C_DOUT_WIDTH; end // average case /**********************************************************************/ // Synchronous FIFO Condition #4 : Not reading or writing /*** *******************************************************************/ end else begin /*********************************/ // FIFO is FULL /*********************************/ if (num_write_words >= C_FIFO_WR_DEPTH) begin //No write ideal_wr_ack <= 0; ideal_full <= 1'b1; ideal_almost_full <= 1'b1; //No read ideal_valid <= 1'b0; ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //No change to memory /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //No write ideal_wr_ack <= 0; ideal_full <= 1'b0; ideal_almost_full <= 1'b1; //No read ideal_valid <= 1'b0; ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //No change to memory /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //No write ideal_wr_ack <= 0; ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //No read ideal_valid <= 1'b0; ideal_empty <= 1'b0; ideal_almost_empty <= 1'b1; //No change to memory end // almost empty /*********************************/ //If the FIFO is EMPTY /*********************************/ else if (num_read_words == 0) begin //No write ideal_wr_ack <= 0; ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //No read ideal_valid <= 1'b0; ideal_empty <= 1'b1; ideal_almost_empty <= 1'b1; //No change to memory /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin //No write ideal_wr_ack <= 0; ideal_full <= 1'b0; ideal_almost_full <= 1'b0; //No read ideal_valid <= 1'b0; ideal_empty <= 1'b0; ideal_almost_empty <= 1'b0; //No change to memory end // average case end // neither reading or writing num_read_words_q <= num_read_words; num_write_words_q <= num_write_words; end //normal operating conditions end end // block: gen_fifo //Generate overflow and underflow flags seperately //because they don't support async rst always @(posedge CLK) begin ideal_overflow <= WR_EN & ideal_full; ideal_underflow <= ideal_empty & RD_EN; end always @(posedge CLK or posedge rst_i) begin : gen_fifo_p /****** Reset fifo - Async Reset****************************************/ //The latency of de-assertion of the flags is reduced by 1 to be consistent with the core. //if (rst_i || rst_q) begin //was in v3.1 if (rst_i) begin //v3.2 ideal_prog_full <= C_FULL_FLAGS_RST_VAL; ideal_prog_empty <= 1'b1; prog_full_d <= C_FULL_FLAGS_RST_VAL; prog_empty_d <= 1'b1; end else begin if (srst_i) begin //SRST is available only for Sync BRAM and Sync DRAM. Not for SSHFT. if (C_MEMORY_TYPE == 1 || C_MEMORY_TYPE == 2) begin ideal_prog_full <= 1'b0; ideal_prog_empty <= 1'b1; prog_full_d <= 1'b0; prog_empty_d <= 1'b1; end end else begin /***************************************************************** * Programmable FULL flags ****************************************************************/ //Single constant threshold if (C_PROG_FULL_TYPE == 1) begin if ((num_write_words >= C_PROG_FULL_THRESH_ASSERT_VAL-1) && WR_EN && !RD_EN) begin prog_full_d <= 1'b1; end else if (((num_write_words == C_PROG_FULL_THRESH_ASSERT_VAL) && RD_EN && !WR_EN) || (rst_q && !rst_i)) begin //v3.2 prog_full_d <= 1'b0; end //Dual constant thresholds end else if (C_PROG_FULL_TYPE == 2) begin if ((num_write_words == C_PROG_FULL_THRESH_ASSERT_VAL-1) && WR_EN && !RD_EN) begin prog_full_d <= 1'b1; end else if ((num_write_words == C_PROG_FULL_THRESH_NEGATE_VAL) && RD_EN && !WR_EN) begin prog_full_d <= 1'b0; end //Single input threshold end else if (C_PROG_FULL_TYPE == 3) begin if ((num_write_words == PROG_FULL_THRESH-1) && WR_EN && !RD_EN) begin prog_full_d <= 1'b1; end else if ((num_write_words == PROG_FULL_THRESH) && !WR_EN && RD_EN) begin prog_full_d <= 1'b0; end else if (num_write_words >= PROG_FULL_THRESH) begin prog_full_d <= 1'b1; end else if (num_write_words < PROG_FULL_THRESH) begin prog_full_d <= 1'b0; end //Dual input thresholds end else begin if ((num_write_words == PROG_FULL_THRESH_ASSERT-1) && WR_EN && !RD_EN) begin prog_full_d <= 1'b1; end else if ((num_write_words == PROG_FULL_THRESH_NEGATE) && !WR_EN && RD_EN)begin prog_full_d <= 1'b0; end else if (num_write_words >= PROG_FULL_THRESH_ASSERT) begin prog_full_d <= 1'b1; end else if (num_write_words < PROG_FULL_THRESH_NEGATE) begin prog_full_d <= 1'b0; end end /***************************************************************** * Programmable EMPTY flags ****************************************************************/ //Single constant threshold if (C_PROG_EMPTY_TYPE == 1) begin if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL+1) && RD_EN && !WR_EN) begin prog_empty_d <= 1'b1; end else if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL) && WR_EN && !RD_EN) begin prog_empty_d <= 1'b0; end //Dual constant thresholds end else if (C_PROG_EMPTY_TYPE == 2) begin if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL+1) && RD_EN && !WR_EN) begin prog_empty_d <= 1'b1; end else if ((num_read_words == C_PROG_EMPTY_THRESH_NEGATE_VAL) && !RD_EN && WR_EN) begin prog_empty_d <= 1'b0; end //Single input threshold end else if (C_PROG_EMPTY_TYPE == 3) begin if ((num_read_words == PROG_EMPTY_THRESH+1) && RD_EN && !WR_EN) begin prog_empty_d <= 1'b1; end else if ((num_read_words == PROG_EMPTY_THRESH) && !RD_EN && WR_EN) begin prog_empty_d <= 1'b0; end else if (num_read_words <= PROG_EMPTY_THRESH) begin prog_empty_d <= 1'b1; end else if (num_read_words > PROG_EMPTY_THRESH)begin prog_empty_d <= 1'b0; end //Dual input thresholds end else begin if (num_read_words <= PROG_EMPTY_THRESH_ASSERT) begin prog_empty_d <= 1'b1; end else if ((num_read_words == PROG_EMPTY_THRESH_ASSERT+1) && RD_EN && !WR_EN) begin prog_empty_d <= 1'b1; end else if (num_read_words > PROG_EMPTY_THRESH_NEGATE)begin prog_empty_d <= 1'b0; end else if ((num_read_words == PROG_EMPTY_THRESH_NEGATE) && !RD_EN && WR_EN) begin prog_empty_d <= 1'b0; end end ideal_prog_empty <= prog_empty_d; if (rst_q && !rst_i) begin ideal_prog_full <= 1'b0; end else begin ideal_prog_full <= prog_full_d; end end //if (srst_i) begin end //if (rst_i) begin end //always @(posedge CLK or posedge rst_i) begin : gen_fifo_p endmodule // fifo_generator_v4_3_bhv_ver_ss module fifo_generator_v4_3_bhv_ver_preload0 ( RD_CLK, RD_RST, RD_EN, FIFOEMPTY, FIFODATA, USERDATA, USERVALID, USERUNDERFLOW, USEREMPTY, USERALMOSTEMPTY, RAMVALID, FIFORDEN ); parameter C_DOUT_RST_VAL = ""; parameter C_DOUT_WIDTH = 8; parameter C_HAS_RST = 0; parameter C_USERVALID_LOW = 0; parameter C_USERUNDERFLOW_LOW = 0; input RD_CLK; input RD_RST; input RD_EN; input FIFOEMPTY; input [C_DOUT_WIDTH-1:0] FIFODATA; output [C_DOUT_WIDTH-1:0] USERDATA; output USERVALID; output USERUNDERFLOW; output USEREMPTY; output USERALMOSTEMPTY; output RAMVALID; output FIFORDEN; wire RD_CLK; wire RD_RST; wire RD_EN; wire FIFOEMPTY; wire [C_DOUT_WIDTH-1:0] FIFODATA; reg [C_DOUT_WIDTH-1:0] USERDATA; wire USERVALID; wire USERUNDERFLOW; wire USEREMPTY; wire USERALMOSTEMPTY; wire RAMVALID; wire FIFORDEN; wire preloadstage1; wire preloadstage2; reg ram_valid_i; reg read_data_valid_i; wire ram_regout_en; wire ram_rd_en; reg empty_i = 1'b1; reg empty_q = 1'b1; reg rd_en_q = 1'b0; //Fix for CR:236270 in v3.2 //prasanna reg almost_empty_i = 1'b1; reg almost_empty_q = 1'b1; wire rd_rst_i; /************************************************************************* * FUNCTIONS *************************************************************************/ /************************************************************************* * hexstr_conv * Converts a string of type hex to a binary value (for C_DOUT_RST_VAL) ***********************************************************************/ function [C_DOUT_WIDTH-1:0] hexstr_conv; input [(C_DOUT_WIDTH*8)-1:0] def_data; integer index,i,j; reg [3:0] bin; begin index = 0; hexstr_conv = 'b0; for( i=C_DOUT_WIDTH-1; i>=0; i=i-1 ) begin case (def_data[7:0]) 8'b00000000 : begin bin = 4'b0000; i = -1; end 8'b00110000 : bin = 4'b0000; 8'b00110001 : bin = 4'b0001; 8'b00110010 : bin = 4'b0010; 8'b00110011 : bin = 4'b0011; 8'b00110100 : bin = 4'b0100; 8'b00110101 : bin = 4'b0101; 8'b00110110 : bin = 4'b0110; 8'b00110111 : bin = 4'b0111; 8'b00111000 : bin = 4'b1000; 8'b00111001 : bin = 4'b1001; 8'b01000001 : bin = 4'b1010; 8'b01000010 : bin = 4'b1011; 8'b01000011 : bin = 4'b1100; 8'b01000100 : bin = 4'b1101; 8'b01000101 : bin = 4'b1110; 8'b01000110 : bin = 4'b1111; 8'b01100001 : bin = 4'b1010; 8'b01100010 : bin = 4'b1011; 8'b01100011 : bin = 4'b1100; 8'b01100100 : bin = 4'b1101; 8'b01100101 : bin = 4'b1110; 8'b01100110 : bin = 4'b1111; default : begin bin = 4'bx; end endcase for( j=0; j<4; j=j+1) begin if ((index*4)+j < C_DOUT_WIDTH) begin hexstr_conv[(index*4)+j] = bin[j]; end end index = index + 1; def_data = def_data >> 8; end end endfunction initial begin ram_valid_i = 1'b0; read_data_valid_i = 1'b0; USERDATA = hexstr_conv(C_DOUT_RST_VAL); end //****************************************************************************** // connect up optional reset //****************************************************************************** assign rd_rst_i = C_HAS_RST ? RD_RST : 0; //****************************************************************************** // preloadstage2 indicates that stage2 needs to be updated. This is true // whenever read_data_valid is false, and RAM_valid is true. //****************************************************************************** assign preloadstage2 = ram_valid_i & (~read_data_valid_i | RD_EN); //****************************************************************************** // preloadstage1 indicates that stage1 needs to be updated. This is true // whenever the RAM has data (RAM_EMPTY is false), and either RAM_Valid is // false (indicating that Stage1 needs updating), or preloadstage2 is active // (indicating that Stage2 is going to update, so Stage1, therefore, must // also be updated to keep it valid. //****************************************************************************** assign preloadstage1 = ((~ram_valid_i | preloadstage2) & ~FIFOEMPTY); //****************************************************************************** // Calculate RAM_REGOUT_EN // The output registers are controlled by the ram_regout_en signal. // These registers should be updated either when the output in Stage2 is // invalid (preloadstage2), OR when the user is reading, in which case the // Stage2 value will go invalid unless it is replenished. //****************************************************************************** assign ram_regout_en = preloadstage2; //****************************************************************************** // Calculate RAM_RD_EN // RAM_RD_EN will be asserted whenever the RAM needs to be read in order to // update the value in Stage1. // One case when this happens is when preloadstage1=true, which indicates // that the data in Stage1 or Stage2 is invalid, and needs to automatically // be updated. // The other case is when the user is reading from the FIFO, which guarantees // that Stage1 or Stage2 will be invalid on the next clock cycle, unless it is // replinished by data from the memory. So, as long as the RAM has data in it, // a read of the RAM should occur. //****************************************************************************** assign ram_rd_en = (RD_EN & ~FIFOEMPTY) | preloadstage1; //****************************************************************************** // Calculate RAMVALID_P0_OUT // RAMVALID_P0_OUT indicates that the data in Stage1 is valid. // // If the RAM is being read from on this clock cycle (ram_rd_en=1), then // RAMVALID_P0_OUT is certainly going to be true. // If the RAM is not being read from, but the output registers are being // updated to fill Stage2 (ram_regout_en=1), then Stage1 will be emptying, // therefore causing RAMVALID_P0_OUT to be false. // Otherwise, RAMVALID_P0_OUT will remain unchanged. //****************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin // PROCESS regout_valid if (rd_rst_i) // asynchronous reset (active high) ram_valid_i <= 1'b0; else begin if (ram_rd_en == 1'b1) ram_valid_i <= 1'b1; else if (ram_regout_en == 1'b1) ram_valid_i <= 1'b0; else ram_valid_i <= ram_valid_i; end //rd_rst_i end //always //****************************************************************************** // Calculate READ_DATA_VALID // READ_DATA_VALID indicates whether the value in Stage2 is valid or not. // Stage2 has valid data whenever Stage1 had valid data and ram_regout_en_i=1, // such that the data in Stage1 is propogated into Stage2. //****************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) read_data_valid_i <= 1'b0; else read_data_valid_i <= ram_valid_i | (read_data_valid_i & ~RD_EN); end //always //***************************************************************************** // Calculate EMPTY // Defined as the inverse of READ_DATA_VALID // // Description: // // If read_data_valid_i indicates that the output is not valid, // and there is no valid data on the output of the ram to preload it // with, then we will report empty. // // If there is no valid data on the output of the ram and we are // reading, then the FIFO will go empty. // //***************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) // asynchronous reset (active high) begin empty_i <= 1'b1; empty_q <= 1'b1; end else // rising clock edge begin empty_i <= (~ram_valid_i & ~read_data_valid_i) | (~ram_valid_i & RD_EN); empty_q <= empty_i; end end //always //Fix for CR:236270 //prasanna //Register RD_EN from user to calculate USERUNDERFLOW. always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) // asynchronous reset (active high) begin rd_en_q <= 1'b0; end else // rising clock edge begin rd_en_q <= RD_EN; end end //always //***************************************************************************** // Calculate user_almost_empty // user_almost_empty is defined such that, unless more words are written // to the FIFO, the next read will cause the FIFO to go EMPTY. // // In most cases, whenever the output registers are updated (due to a user // read or a preload condition), then user_almost_empty will update to // whatever RAM_EMPTY is. // // The exception is when the output is valid, the user is not reading, and // Stage1 is not empty. In this condition, Stage1 will be preloaded from the // memory, so we need to make sure user_almost_empty deasserts properly under // this condition. //***************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) // asynchronous reset (active high) begin almost_empty_i <= 1'b1; almost_empty_q <= 1'b1; end else // rising clock edge begin if ((ram_regout_en) | (~FIFOEMPTY & read_data_valid_i & ~RD_EN)) begin almost_empty_i <= FIFOEMPTY; end almost_empty_q <= empty_i; end end //always assign USEREMPTY = empty_i; assign USERALMOSTEMPTY = almost_empty_i; assign FIFORDEN = ram_rd_en; assign RAMVALID = ram_valid_i; assign USERVALID = C_USERVALID_LOW ? ~read_data_valid_i : read_data_valid_i; //assign USERUNDERFLOW = C_USERUNDERFLOW_LOW ? ~(empty_q & RD_EN) : empty_q & RD_EN; //Bug in v3.1 (CR:236270) assign USERUNDERFLOW = C_USERUNDERFLOW_LOW ? ~(empty_q & rd_en_q) : empty_q & rd_en_q; //Fix for CR:236270 in v3.2 //prasanna always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) // asynchronous reset (active high) USERDATA <= hexstr_conv(C_DOUT_RST_VAL); else // rising clock edge if (ram_regout_en) USERDATA <= FIFODATA; end //always endmodule uhd-3.5.5/fpga/usrp2/models/FIFO_GENERATOR_V6_1.v000066400000000000000000005446141224274632000207120ustar00rootroot00000000000000/* ******************************************************************************* * * FIFO Generator - Verilog Behavioral Model * ******************************************************************************* * * (c) Copyright 1995 - 2009 Xilinx, Inc. All rights reserved. * * This file contains confidential and proprietary information * of Xilinx, Inc. and is protected under U.S. and * international copyright and other intellectual property * laws. * * DISCLAIMER * This disclaimer is not a license and does not grant any * rights to the materials distributed herewith. Except as * otherwise provided in a valid license issued to you by * Xilinx, and to the maximum extent permitted by applicable * law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND * WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES * AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING * BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- * INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and * (2) Xilinx shall not be liable (whether in contract or tort, * including negligence, or under any other theory of * liability) for any loss or damage of any kind or nature * related to, arising under or in connection with these * materials, including for any direct, or any indirect, * special, incidental, or consequential loss or damage * (including loss of data, profits, goodwill, or any type of * loss or damage suffered as a result of any action brought * by a third party) even if such damage or loss was * reasonably foreseeable or Xilinx had been advised of the * possibility of the same. * * CRITICAL APPLICATIONS * Xilinx products are not designed or intended to be fail- * safe, or for use in any application requiring fail-safe * performance, such as life-support or safety devices or * systems, Class III medical devices, nuclear facilities, * applications related to the deployment of airbags, or any * other applications that could lead to death, personal * injury, or severe property or environmental damage * (individually and collectively, "Critical * Applications"). Customer assumes the sole risk and * liability of any use of Xilinx products in Critical * Applications, subject only to applicable laws and * regulations governing limitations on product liability. * * THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS * PART OF THIS FILE AT ALL TIMES. * ******************************************************************************* ******************************************************************************* * * Filename: FIFO_GENERATOR_V6_1.v * * Author : Xilinx * ******************************************************************************* * Structure: * * fifo_generator_v6_1.vhd * | * +-fifo_generator_v6_1_bhv_ver_as * | * +-fifo_generator_v6_1_bhv_ver_ss * | * +-fifo_generator_v6_1_bhv_ver_preload0 * ******************************************************************************* * Description: * * The Verilog behavioral model for the FIFO Generator. * * The behavioral model has three parts: * - The behavioral model for independent clocks FIFOs (_as) * - The behavioral model for common clock FIFOs (_ss) * - The "preload logic" block which implements First-word Fall-through * ******************************************************************************* * Description: * The verilog behavioral model for the FIFO generator core. * ******************************************************************************* */ `timescale 1ps/1ps `ifndef TCQ `define TCQ 100 `endif /******************************************************************************* * Declaration of top-level module ******************************************************************************/ module FIFO_GENERATOR_V6_1 #( parameter C_COMMON_CLOCK = 0, parameter C_COUNT_TYPE = 0, parameter C_DATA_COUNT_WIDTH = 2, parameter C_DEFAULT_VALUE = "", parameter C_DIN_WIDTH = 8, parameter C_DOUT_RST_VAL = "", parameter C_DOUT_WIDTH = 8, parameter C_ENABLE_RLOCS = 0, parameter C_FAMILY = "virtex6", //Not allowed in Verilog model parameter C_FULL_FLAGS_RST_VAL = 1, parameter C_HAS_ALMOST_EMPTY = 0, parameter C_HAS_ALMOST_FULL = 0, parameter C_HAS_BACKUP = 0, parameter C_HAS_DATA_COUNT = 0, parameter C_HAS_INT_CLK = 0, parameter C_HAS_MEMINIT_FILE = 0, parameter C_HAS_OVERFLOW = 0, parameter C_HAS_RD_DATA_COUNT = 0, parameter C_HAS_RD_RST = 0, parameter C_HAS_RST = 0, parameter C_HAS_SRST = 0, parameter C_HAS_UNDERFLOW = 0, parameter C_HAS_VALID = 0, parameter C_HAS_WR_ACK = 0, parameter C_HAS_WR_DATA_COUNT = 0, parameter C_HAS_WR_RST = 0, parameter C_IMPLEMENTATION_TYPE = 0, parameter C_INIT_WR_PNTR_VAL = 0, parameter C_MEMORY_TYPE = 1, parameter C_MIF_FILE_NAME = "", parameter C_OPTIMIZATION_MODE = 0, parameter C_OVERFLOW_LOW = 0, parameter C_PRELOAD_LATENCY = 1, parameter C_PRELOAD_REGS = 0, parameter C_PRIM_FIFO_TYPE = "", parameter C_PROG_EMPTY_THRESH_ASSERT_VAL = 0, parameter C_PROG_EMPTY_THRESH_NEGATE_VAL = 0, parameter C_PROG_EMPTY_TYPE = 0, parameter C_PROG_FULL_THRESH_ASSERT_VAL = 0, parameter C_PROG_FULL_THRESH_NEGATE_VAL = 0, parameter C_PROG_FULL_TYPE = 0, parameter C_RD_DATA_COUNT_WIDTH = 2, parameter C_RD_DEPTH = 256, parameter C_RD_FREQ = 1, parameter C_RD_PNTR_WIDTH = 8, parameter C_UNDERFLOW_LOW = 0, parameter C_USE_DOUT_RST = 0, parameter C_USE_ECC = 0, parameter C_USE_EMBEDDED_REG = 0, parameter C_USE_FIFO16_FLAGS = 0, parameter C_USE_FWFT_DATA_COUNT = 0, parameter C_VALID_LOW = 0, parameter C_WR_ACK_LOW = 0, parameter C_WR_DATA_COUNT_WIDTH = 2, parameter C_WR_DEPTH = 256, parameter C_WR_FREQ = 1, parameter C_WR_PNTR_WIDTH = 8, parameter C_WR_RESPONSE_LATENCY = 1, parameter C_MSGON_VAL = 1, parameter C_ENABLE_RST_SYNC = 1, parameter C_ERROR_INJECTION_TYPE = 0 ) ( input BACKUP, input BACKUP_MARKER, input CLK, input RST, input SRST, input WR_CLK, input WR_RST, input RD_CLK, input RD_RST, input [C_DIN_WIDTH-1:0] DIN, input WR_EN, input RD_EN, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE, input INT_CLK, input INJECTDBITERR, input INJECTSBITERR, output [C_DOUT_WIDTH-1:0] DOUT, output FULL, output ALMOST_FULL, output WR_ACK, output OVERFLOW, output EMPTY, output ALMOST_EMPTY, output VALID, output UNDERFLOW, output [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT, output [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT, output [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT, output PROG_FULL, output PROG_EMPTY, output SBITERR, output DBITERR ); /* ****************************************************************************** * Definition of Parameters ****************************************************************************** * C_COMMON_CLOCK : Common Clock (1), Independent Clocks (0) * C_COUNT_TYPE : *not used * C_DATA_COUNT_WIDTH : Width of DATA_COUNT bus * C_DEFAULT_VALUE : *not used * C_DIN_WIDTH : Width of DIN bus * C_DOUT_RST_VAL : Reset value of DOUT * C_DOUT_WIDTH : Width of DOUT bus * C_ENABLE_RLOCS : *not used * C_FAMILY : not used in bhv model * C_FULL_FLAGS_RST_VAL : Full flags rst val (0 or 1) * C_HAS_ALMOST_EMPTY : 1=Core has ALMOST_EMPTY flag * C_HAS_ALMOST_FULL : 1=Core has ALMOST_FULL flag * C_HAS_BACKUP : *not used * C_HAS_DATA_COUNT : 1=Core has DATA_COUNT bus * C_HAS_INT_CLK : not used in bhv model * C_HAS_MEMINIT_FILE : *not used * C_HAS_OVERFLOW : 1=Core has OVERFLOW flag * C_HAS_RD_DATA_COUNT : 1=Core has RD_DATA_COUNT bus * C_HAS_RD_RST : *not used * C_HAS_RST : 1=Core has Async Rst * C_HAS_SRST : 1=Core has Sync Rst * C_HAS_UNDERFLOW : 1=Core has UNDERFLOW flag * C_HAS_VALID : 1=Core has VALID flag * C_HAS_WR_ACK : 1=Core has WR_ACK flag * C_HAS_WR_DATA_COUNT : 1=Core has WR_DATA_COUNT bus * C_HAS_WR_RST : *not used * C_IMPLEMENTATION_TYPE : 0=Common-Clock Bram/Dram * 1=Common-Clock ShiftRam * 2=Indep. Clocks Bram/Dram * 3=Virtex-4 Built-in * 4=Virtex-5 Built-in * C_INIT_WR_PNTR_VAL : *not used * C_MEMORY_TYPE : 1=Block RAM * 2=Distributed RAM * 3=Shift RAM * 4=Built-in FIFO * C_MIF_FILE_NAME : *not used * C_OPTIMIZATION_MODE : *not used * C_OVERFLOW_LOW : 1=OVERFLOW active low * C_PRELOAD_LATENCY : Latency of read: 0, 1, 2 * C_PRELOAD_REGS : 1=Use output registers * C_PRIM_FIFO_TYPE : not used in bhv model * C_PROG_EMPTY_THRESH_ASSERT_VAL: PROG_EMPTY assert threshold * C_PROG_EMPTY_THRESH_NEGATE_VAL: PROG_EMPTY negate threshold * C_PROG_EMPTY_TYPE : 0=No programmable empty * 1=Single prog empty thresh constant * 2=Multiple prog empty thresh constants * 3=Single prog empty thresh input * 4=Multiple prog empty thresh inputs * C_PROG_FULL_THRESH_ASSERT_VAL : PROG_FULL assert threshold * C_PROG_FULL_THRESH_NEGATE_VAL : PROG_FULL negate threshold * C_PROG_FULL_TYPE : 0=No prog full * 1=Single prog full thresh constant * 2=Multiple prog full thresh constants * 3=Single prog full thresh input * 4=Multiple prog full thresh inputs * C_RD_DATA_COUNT_WIDTH : Width of RD_DATA_COUNT bus * C_RD_DEPTH : Depth of read interface (2^N) * C_RD_FREQ : not used in bhv model * C_RD_PNTR_WIDTH : always log2(C_RD_DEPTH) * C_UNDERFLOW_LOW : 1=UNDERFLOW active low * C_USE_DOUT_RST : 1=Resets DOUT on RST * C_USE_ECC : Used for error injection purpose * C_USE_EMBEDDED_REG : 1=Use BRAM embedded output register * C_USE_FIFO16_FLAGS : not used in bhv model * C_USE_FWFT_DATA_COUNT : 1=Use extra logic for FWFT data count * C_VALID_LOW : 1=VALID active low * C_WR_ACK_LOW : 1=WR_ACK active low * C_WR_DATA_COUNT_WIDTH : Width of WR_DATA_COUNT bus * C_WR_DEPTH : Depth of write interface (2^N) * C_WR_FREQ : not used in bhv model * C_WR_PNTR_WIDTH : always log2(C_WR_DEPTH) * C_WR_RESPONSE_LATENCY : *not used * C_MSGON_VAL : *not used by bhv model * C_ENABLE_RST_SYNC : 0 = Use WR_RST & RD_RST * 1 = Use RST * C_ERROR_INJECTION_TYPE : 0 = No error injection * 1 = Single bit error injection only * 2 = Double bit error injection only * 3 = Single and double bit error injection ****************************************************************************** * Definition of Ports ****************************************************************************** * BACKUP : Not used * BACKUP_MARKER: Not used * CLK : Clock * DIN : Input data bus * PROG_EMPTY_THRESH : Threshold for Programmable Empty Flag * PROG_EMPTY_THRESH_ASSERT: Threshold for Programmable Empty Flag * PROG_EMPTY_THRESH_NEGATE: Threshold for Programmable Empty Flag * PROG_FULL_THRESH : Threshold for Programmable Full Flag * PROG_FULL_THRESH_ASSERT : Threshold for Programmable Full Flag * PROG_FULL_THRESH_NEGATE : Threshold for Programmable Full Flag * RD_CLK : Read Domain Clock * RD_EN : Read enable * RD_RST : Read Reset * RST : Asynchronous Reset * SRST : Synchronous Reset * WR_CLK : Write Domain Clock * WR_EN : Write enable * WR_RST : Write Reset * INT_CLK : Internal Clock * INJECTSBITERR: Inject Signle bit error * INJECTDBITERR: Inject Double bit error * ALMOST_EMPTY : One word remaining in FIFO * ALMOST_FULL : One empty space remaining in FIFO * DATA_COUNT : Number of data words in fifo( synchronous to CLK) * DOUT : Output data bus * EMPTY : Empty flag * FULL : Full flag * OVERFLOW : Last write rejected * PROG_EMPTY : Programmable Empty Flag * PROG_FULL : Programmable Full Flag * RD_DATA_COUNT: Number of data words in fifo (synchronous to RD_CLK) * UNDERFLOW : Last read rejected * VALID : Last read acknowledged, DOUT bus VALID * WR_ACK : Last write acknowledged * WR_DATA_COUNT: Number of data words in fifo (synchronous to WR_CLK) * SBITERR : Single Bit ECC Error Detected * DBITERR : Double Bit ECC Error Detected ****************************************************************************** */ /***************************************************************************** * Derived parameters ****************************************************************************/ //There are 2 Verilog behavioral models // 0 = Common-Clock FIFO/ShiftRam FIFO // 1 = Independent Clocks FIFO parameter C_VERILOG_IMPL = (C_IMPLEMENTATION_TYPE == 2) ? 1 : 0; //Internal reset signals reg rd_rst_asreg = 0; reg rd_rst_asreg_d1 = 0; reg rd_rst_asreg_d2 = 0; reg rd_rst_reg = 0; wire rd_rst_comb; reg rd_rst_d1 = 0; reg wr_rst_asreg = 0; reg wr_rst_asreg_d1 = 0; reg wr_rst_asreg_d2 = 0; reg wr_rst_reg = 0; wire wr_rst_comb; wire wr_rst_i; wire rd_rst_i; wire rst_i; //Internal reset signals reg rst_asreg = 0; reg rst_asreg_d1 = 0; reg rst_asreg_d2 = 0; reg rst_reg = 0; wire rst_comb; wire rst_full_gen_i; wire rst_full_ff_i; wire RD_CLK_P0_IN; wire RST_P0_IN; wire RD_EN_FIFO_IN; wire RD_EN_P0_IN; wire ALMOST_EMPTY_FIFO_OUT; wire ALMOST_FULL_FIFO_OUT; wire [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT_FIFO_OUT; wire [C_DOUT_WIDTH-1:0] DOUT_FIFO_OUT; wire EMPTY_FIFO_OUT; wire FULL_FIFO_OUT; wire OVERFLOW_FIFO_OUT; wire PROG_EMPTY_FIFO_OUT; wire PROG_FULL_FIFO_OUT; wire VALID_FIFO_OUT; wire [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT_FIFO_OUT; wire UNDERFLOW_FIFO_OUT; wire WR_ACK_FIFO_OUT; wire [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT_FIFO_OUT; //*************************************************************************** // Internal Signals // The core uses either the internal_ wires or the preload0_ wires depending // on whether the core uses Preload0 or not. // When using preload0, the internal signals connect the internal core to // the preload logic, and the external core's interfaces are tied to the // preload0 signals from the preload logic. //*************************************************************************** wire [C_DOUT_WIDTH-1:0] DATA_P0_OUT; wire VALID_P0_OUT; wire EMPTY_P0_OUT; wire ALMOSTEMPTY_P0_OUT; reg EMPTY_P0_OUT_Q; reg ALMOSTEMPTY_P0_OUT_Q; wire UNDERFLOW_P0_OUT; wire RDEN_P0_OUT; wire [C_DOUT_WIDTH-1:0] DATA_P0_IN; wire EMPTY_P0_IN; reg [31:0] DATA_COUNT_FWFT; reg SS_FWFT_WR ; reg SS_FWFT_RD ; wire sbiterr_fifo_out; wire dbiterr_fifo_out; // Assign 0 if not selected to avoid 'X' propogation to S/DBITERR. assign inject_sbit_err = ((C_ERROR_INJECTION_TYPE == 1) || (C_ERROR_INJECTION_TYPE == 3)) ? INJECTSBITERR : 0; assign inject_dbit_err = ((C_ERROR_INJECTION_TYPE == 2) || (C_ERROR_INJECTION_TYPE == 3)) ? INJECTDBITERR : 0; // Choose the behavioral model to instantiate based on the C_VERILOG_IMPL // parameter (1=Independent Clocks, 0=Common Clock) localparam FULL_FLAGS_RST_VAL = (C_HAS_SRST == 1) ? 0 : C_FULL_FLAGS_RST_VAL; generate case (C_VERILOG_IMPL) 0 : begin : block1 //Common Clock Behavioral Model fifo_generator_v6_1_bhv_ver_ss #( C_DATA_COUNT_WIDTH, C_DIN_WIDTH, C_DOUT_RST_VAL, C_DOUT_WIDTH, // C_FULL_FLAGS_RST_VAL, FULL_FLAGS_RST_VAL, C_HAS_ALMOST_EMPTY, C_HAS_ALMOST_FULL, C_HAS_DATA_COUNT, C_HAS_OVERFLOW, C_HAS_RD_DATA_COUNT, C_HAS_RST, C_HAS_SRST, C_HAS_UNDERFLOW, C_HAS_VALID, C_HAS_WR_ACK, C_HAS_WR_DATA_COUNT, C_IMPLEMENTATION_TYPE, C_MEMORY_TYPE, C_OVERFLOW_LOW, C_PRELOAD_LATENCY, C_PRELOAD_REGS, C_PROG_EMPTY_THRESH_ASSERT_VAL, C_PROG_EMPTY_THRESH_NEGATE_VAL, C_PROG_EMPTY_TYPE, C_PROG_FULL_THRESH_ASSERT_VAL, C_PROG_FULL_THRESH_NEGATE_VAL, C_PROG_FULL_TYPE, C_RD_DATA_COUNT_WIDTH, C_RD_DEPTH, C_RD_PNTR_WIDTH, C_UNDERFLOW_LOW, C_USE_DOUT_RST, C_USE_EMBEDDED_REG, C_USE_FWFT_DATA_COUNT, C_VALID_LOW, C_WR_ACK_LOW, C_WR_DATA_COUNT_WIDTH, C_WR_DEPTH, C_WR_PNTR_WIDTH, C_USE_ECC, C_ENABLE_RST_SYNC, C_ERROR_INJECTION_TYPE ) gen_ss ( .CLK (CLK), .RST (rst_i), .SRST (SRST), .RST_FULL_GEN (rst_full_gen_i), .RST_FULL_FF (rst_full_ff_i), .DIN (DIN), .WR_EN (WR_EN), .RD_EN (RD_EN_FIFO_IN), .PROG_EMPTY_THRESH (PROG_EMPTY_THRESH), .PROG_EMPTY_THRESH_ASSERT (PROG_EMPTY_THRESH_ASSERT), .PROG_EMPTY_THRESH_NEGATE (PROG_EMPTY_THRESH_NEGATE), .PROG_FULL_THRESH (PROG_FULL_THRESH), .PROG_FULL_THRESH_ASSERT (PROG_FULL_THRESH_ASSERT), .PROG_FULL_THRESH_NEGATE (PROG_FULL_THRESH_NEGATE), .INJECTSBITERR (inject_sbit_err), .INJECTDBITERR (inject_dbit_err), .DOUT (DOUT_FIFO_OUT), .FULL (FULL_FIFO_OUT), .ALMOST_FULL (ALMOST_FULL_FIFO_OUT), .WR_ACK (WR_ACK_FIFO_OUT), .OVERFLOW (OVERFLOW_FIFO_OUT), .EMPTY (EMPTY_FIFO_OUT), .ALMOST_EMPTY (ALMOST_EMPTY_FIFO_OUT), .VALID (VALID_FIFO_OUT), .UNDERFLOW (UNDERFLOW_FIFO_OUT), .DATA_COUNT (DATA_COUNT_FIFO_OUT), .PROG_FULL (PROG_FULL_FIFO_OUT), .PROG_EMPTY (PROG_EMPTY_FIFO_OUT), .SBITERR (sbiterr_fifo_out), .DBITERR (dbiterr_fifo_out) ); end 1 : begin : block1 //Independent Clocks Behavioral Model fifo_generator_v6_1_bhv_ver_as #( C_DATA_COUNT_WIDTH, C_DIN_WIDTH, C_DOUT_RST_VAL, C_DOUT_WIDTH, C_FULL_FLAGS_RST_VAL, C_HAS_ALMOST_EMPTY, C_HAS_ALMOST_FULL, C_HAS_DATA_COUNT, C_HAS_OVERFLOW, C_HAS_RD_DATA_COUNT, C_HAS_RST, C_HAS_UNDERFLOW, C_HAS_VALID, C_HAS_WR_ACK, C_HAS_WR_DATA_COUNT, C_IMPLEMENTATION_TYPE, C_MEMORY_TYPE, C_OVERFLOW_LOW, C_PRELOAD_LATENCY, C_PRELOAD_REGS, C_PROG_EMPTY_THRESH_ASSERT_VAL, C_PROG_EMPTY_THRESH_NEGATE_VAL, C_PROG_EMPTY_TYPE, C_PROG_FULL_THRESH_ASSERT_VAL, C_PROG_FULL_THRESH_NEGATE_VAL, C_PROG_FULL_TYPE, C_RD_DATA_COUNT_WIDTH, C_RD_DEPTH, C_RD_PNTR_WIDTH, C_UNDERFLOW_LOW, C_USE_DOUT_RST, C_USE_EMBEDDED_REG, C_USE_FWFT_DATA_COUNT, C_VALID_LOW, C_WR_ACK_LOW, C_WR_DATA_COUNT_WIDTH, C_WR_DEPTH, C_WR_PNTR_WIDTH, C_USE_ECC, C_ENABLE_RST_SYNC, C_ERROR_INJECTION_TYPE ) gen_as ( .WR_CLK (WR_CLK), .RD_CLK (RD_CLK), .RST (rst_i), .RST_FULL_GEN (rst_full_gen_i), .RST_FULL_FF (rst_full_ff_i), .WR_RST (wr_rst_i), .RD_RST (rd_rst_i), .DIN (DIN), .WR_EN (WR_EN), .RD_EN (RD_EN_FIFO_IN), .RD_EN_USER (RD_EN), .PROG_EMPTY_THRESH (PROG_EMPTY_THRESH), .PROG_EMPTY_THRESH_ASSERT (PROG_EMPTY_THRESH_ASSERT), .PROG_EMPTY_THRESH_NEGATE (PROG_EMPTY_THRESH_NEGATE), .PROG_FULL_THRESH (PROG_FULL_THRESH), .PROG_FULL_THRESH_ASSERT (PROG_FULL_THRESH_ASSERT), .PROG_FULL_THRESH_NEGATE (PROG_FULL_THRESH_NEGATE), .INJECTSBITERR (inject_sbit_err), .INJECTDBITERR (inject_dbit_err), .USER_EMPTY_FB (EMPTY_P0_OUT), .DOUT (DOUT_FIFO_OUT), .FULL (FULL_FIFO_OUT), .ALMOST_FULL (ALMOST_FULL_FIFO_OUT), .WR_ACK (WR_ACK_FIFO_OUT), .OVERFLOW (OVERFLOW_FIFO_OUT), .EMPTY (EMPTY_FIFO_OUT), .ALMOST_EMPTY (ALMOST_EMPTY_FIFO_OUT), .VALID (VALID_FIFO_OUT), .UNDERFLOW (UNDERFLOW_FIFO_OUT), .RD_DATA_COUNT (RD_DATA_COUNT_FIFO_OUT), .WR_DATA_COUNT (WR_DATA_COUNT_FIFO_OUT), .PROG_FULL (PROG_FULL_FIFO_OUT), .PROG_EMPTY (PROG_EMPTY_FIFO_OUT), .SBITERR (sbiterr_fifo_out), .DBITERR (dbiterr_fifo_out) ); end default : begin : block1 //Independent Clocks Behavioral Model fifo_generator_v6_1_bhv_ver_as #( C_DATA_COUNT_WIDTH, C_DIN_WIDTH, C_DOUT_RST_VAL, C_DOUT_WIDTH, C_FULL_FLAGS_RST_VAL, C_HAS_ALMOST_EMPTY, C_HAS_ALMOST_FULL, C_HAS_DATA_COUNT, C_HAS_OVERFLOW, C_HAS_RD_DATA_COUNT, C_HAS_RST, C_HAS_UNDERFLOW, C_HAS_VALID, C_HAS_WR_ACK, C_HAS_WR_DATA_COUNT, C_IMPLEMENTATION_TYPE, C_MEMORY_TYPE, C_OVERFLOW_LOW, C_PRELOAD_LATENCY, C_PRELOAD_REGS, C_PROG_EMPTY_THRESH_ASSERT_VAL, C_PROG_EMPTY_THRESH_NEGATE_VAL, C_PROG_EMPTY_TYPE, C_PROG_FULL_THRESH_ASSERT_VAL, C_PROG_FULL_THRESH_NEGATE_VAL, C_PROG_FULL_TYPE, C_RD_DATA_COUNT_WIDTH, C_RD_DEPTH, C_RD_PNTR_WIDTH, C_UNDERFLOW_LOW, C_USE_DOUT_RST, C_USE_EMBEDDED_REG, C_USE_FWFT_DATA_COUNT, C_VALID_LOW, C_WR_ACK_LOW, C_WR_DATA_COUNT_WIDTH, C_WR_DEPTH, C_WR_PNTR_WIDTH, C_USE_ECC, C_ENABLE_RST_SYNC, C_ERROR_INJECTION_TYPE ) gen_as ( .WR_CLK (WR_CLK), .RD_CLK (RD_CLK), .RST (rst_i), .RST_FULL_GEN (rst_full_gen_i), .RST_FULL_FF (rst_full_ff_i), .WR_RST (wr_rst_i), .RD_RST (rd_rst_i), .DIN (DIN), .WR_EN (WR_EN), .RD_EN (RD_EN_FIFO_IN), .RD_EN_USER (RD_EN), .PROG_EMPTY_THRESH (PROG_EMPTY_THRESH), .PROG_EMPTY_THRESH_ASSERT (PROG_EMPTY_THRESH_ASSERT), .PROG_EMPTY_THRESH_NEGATE (PROG_EMPTY_THRESH_NEGATE), .PROG_FULL_THRESH (PROG_FULL_THRESH), .PROG_FULL_THRESH_ASSERT (PROG_FULL_THRESH_ASSERT), .PROG_FULL_THRESH_NEGATE (PROG_FULL_THRESH_NEGATE), .INJECTSBITERR (inject_sbit_err), .INJECTDBITERR (inject_dbit_err), .USER_EMPTY_FB (EMPTY_P0_OUT), .DOUT (DOUT_FIFO_OUT), .FULL (FULL_FIFO_OUT), .ALMOST_FULL (ALMOST_FULL_FIFO_OUT), .WR_ACK (WR_ACK_FIFO_OUT), .OVERFLOW (OVERFLOW_FIFO_OUT), .EMPTY (EMPTY_FIFO_OUT), .ALMOST_EMPTY (ALMOST_EMPTY_FIFO_OUT), .VALID (VALID_FIFO_OUT), .UNDERFLOW (UNDERFLOW_FIFO_OUT), .RD_DATA_COUNT (RD_DATA_COUNT_FIFO_OUT), .WR_DATA_COUNT (WR_DATA_COUNT_FIFO_OUT), .PROG_FULL (PROG_FULL_FIFO_OUT), .PROG_EMPTY (PROG_EMPTY_FIFO_OUT), .SBITERR (sbiterr_fifo_out), .DBITERR (dbiterr_fifo_out) ); end endcase endgenerate //************************************************************************** // Connect Internal Signals // (Signals labeled internal_*) // In the normal case, these signals tie directly to the FIFO's inputs and // outputs. // In the case of Preload Latency 0 or 1, there are intermediate // signals between the internal FIFO and the preload logic. //************************************************************************** //*********************************************** // If First-Word Fall-Through, instantiate // the preload0 (FWFT) module //*********************************************** generate if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin : block2 fifo_generator_v6_1_bhv_ver_preload0 #( C_DOUT_RST_VAL, C_DOUT_WIDTH, C_HAS_RST, C_ENABLE_RST_SYNC, C_HAS_SRST, C_USE_DOUT_RST, C_USE_ECC, C_VALID_LOW, C_UNDERFLOW_LOW, C_MEMORY_TYPE ) fgpl0 ( .RD_CLK (RD_CLK_P0_IN), .RD_RST (RST_P0_IN), .SRST (SRST), .RD_EN (RD_EN_P0_IN), .FIFOEMPTY (EMPTY_P0_IN), .FIFODATA (DATA_P0_IN), .FIFOSBITERR (sbiterr_fifo_out), .FIFODBITERR (dbiterr_fifo_out), .USERDATA (DATA_P0_OUT), .USERVALID (VALID_P0_OUT), .USEREMPTY (EMPTY_P0_OUT), .USERALMOSTEMPTY (ALMOSTEMPTY_P0_OUT), .USERUNDERFLOW (UNDERFLOW_P0_OUT), .RAMVALID (RAMVALID_P0_OUT), .FIFORDEN (RDEN_P0_OUT), .USERSBITERR (SBITERR), .USERDBITERR (DBITERR) ); //*********************************************** // Connect inputs to preload (FWFT) module //*********************************************** //Connect the RD_CLK of the Preload (FWFT) module to CLK if we // have a common-clock FIFO, or RD_CLK if we have an // independent clock FIFO assign RD_CLK_P0_IN = ((C_VERILOG_IMPL == 0) ? CLK : RD_CLK); assign RST_P0_IN = (C_COMMON_CLOCK == 0) ? rd_rst_i : (C_HAS_RST == 1) ? rst_i : 0; assign RD_EN_P0_IN = RD_EN; assign EMPTY_P0_IN = EMPTY_FIFO_OUT; assign DATA_P0_IN = DOUT_FIFO_OUT; //*********************************************** // Connect outputs from preload (FWFT) module //*********************************************** assign DOUT = DATA_P0_OUT; assign VALID = VALID_P0_OUT ; assign EMPTY = EMPTY_P0_OUT; assign ALMOST_EMPTY = ALMOSTEMPTY_P0_OUT; assign UNDERFLOW = UNDERFLOW_P0_OUT ; assign RD_EN_FIFO_IN = RDEN_P0_OUT; //*********************************************** // Create DATA_COUNT from First-Word Fall-Through // data count //*********************************************** assign DATA_COUNT = (C_USE_FWFT_DATA_COUNT == 0)? DATA_COUNT_FIFO_OUT: (C_DATA_COUNT_WIDTH>C_RD_PNTR_WIDTH) ? DATA_COUNT_FWFT[C_RD_PNTR_WIDTH:0] : DATA_COUNT_FWFT[C_RD_PNTR_WIDTH:C_RD_PNTR_WIDTH-C_DATA_COUNT_WIDTH+1]; //*********************************************** // Create DATA_COUNT from First-Word Fall-Through // data count //*********************************************** always @ (posedge RD_CLK or posedge RST_P0_IN) begin if (RST_P0_IN) begin EMPTY_P0_OUT_Q <= #`TCQ 1; ALMOSTEMPTY_P0_OUT_Q <= #`TCQ 1; end else begin EMPTY_P0_OUT_Q <= #`TCQ EMPTY_P0_OUT; ALMOSTEMPTY_P0_OUT_Q <= #`TCQ ALMOSTEMPTY_P0_OUT; end end //always //*********************************************** // logic for common-clock data count when FWFT is selected //*********************************************** initial begin SS_FWFT_RD = 1'b0; DATA_COUNT_FWFT = 0 ; SS_FWFT_WR = 1'b0 ; end //initial //*********************************************** // common-clock data count is implemented as an // up-down counter. SS_FWFT_WR and SS_FWFT_RD // are the up/down enables for the counter. //*********************************************** always @ (RD_EN or VALID_P0_OUT or WR_EN or FULL_FIFO_OUT) begin if (C_VALID_LOW == 1) begin SS_FWFT_RD = RD_EN && ~VALID_P0_OUT ; end else begin SS_FWFT_RD = RD_EN && VALID_P0_OUT ; end SS_FWFT_WR = (WR_EN && (~FULL_FIFO_OUT)) ; end //*********************************************** // common-clock data count is implemented as an // up-down counter for FWFT. This always block // calculates the counter. //*********************************************** always @ (posedge RD_CLK_P0_IN or posedge RST_P0_IN) begin if (RST_P0_IN) begin DATA_COUNT_FWFT <= #`TCQ 0; end else begin if (SRST && (C_HAS_SRST == 1) ) begin DATA_COUNT_FWFT <= #`TCQ 0; end else begin case ( {SS_FWFT_WR, SS_FWFT_RD}) 2'b00: DATA_COUNT_FWFT <= #`TCQ DATA_COUNT_FWFT ; 2'b01: DATA_COUNT_FWFT <= #`TCQ DATA_COUNT_FWFT - 1 ; 2'b10: DATA_COUNT_FWFT <= #`TCQ DATA_COUNT_FWFT + 1 ; 2'b11: DATA_COUNT_FWFT <= #`TCQ DATA_COUNT_FWFT ; endcase end //if SRST end //IF RST end //always end else begin : block2 //if !(C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) //*********************************************** // If NOT First-Word Fall-Through, wire the outputs // of the internal _ss or _as FIFO directly to the // output, and do not instantiate the preload0 // module. //*********************************************** assign RD_CLK_P0_IN = 0; assign RST_P0_IN = 0; assign RD_EN_P0_IN = 0; assign RD_EN_FIFO_IN = RD_EN; assign DOUT = DOUT_FIFO_OUT; assign DATA_P0_IN = 0; assign VALID = VALID_FIFO_OUT; assign EMPTY = EMPTY_FIFO_OUT; assign ALMOST_EMPTY = ALMOST_EMPTY_FIFO_OUT; assign EMPTY_P0_IN = 0; assign UNDERFLOW = UNDERFLOW_FIFO_OUT; assign DATA_COUNT = DATA_COUNT_FIFO_OUT; assign SBITERR = sbiterr_fifo_out; assign DBITERR = dbiterr_fifo_out; end //if !(C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) endgenerate //*********************************************** // Connect user flags to internal signals //*********************************************** //If we are using extra logic for the FWFT data count, then override the //RD_DATA_COUNT output when we are EMPTY or ALMOST_EMPTY. //RD_DATA_COUNT is 0 when EMPTY and 1 when ALMOST_EMPTY. generate if (C_USE_FWFT_DATA_COUNT==1 && (C_RD_DATA_COUNT_WIDTH>C_RD_PNTR_WIDTH) ) begin : block3 assign RD_DATA_COUNT = (EMPTY_P0_OUT_Q | RST_P0_IN) ? 0 : (ALMOSTEMPTY_P0_OUT_Q ? 1 : RD_DATA_COUNT_FIFO_OUT); end //block3 endgenerate //If we are using extra logic for the FWFT data count, then override the //RD_DATA_COUNT output when we are EMPTY or ALMOST_EMPTY. //Due to asymmetric ports, RD_DATA_COUNT is 0 when EMPTY or ALMOST_EMPTY. generate if (C_USE_FWFT_DATA_COUNT==1 && (C_RD_DATA_COUNT_WIDTH <=C_RD_PNTR_WIDTH) ) begin : block30 assign RD_DATA_COUNT = (EMPTY_P0_OUT_Q | RST_P0_IN) ? 0 : (ALMOSTEMPTY_P0_OUT_Q ? 0 : RD_DATA_COUNT_FIFO_OUT); end //block30 endgenerate //If we are not using extra logic for the FWFT data count, //then connect RD_DATA_COUNT to the RD_DATA_COUNT from the //internal FIFO instance generate if (C_USE_FWFT_DATA_COUNT==0 ) begin : block31 assign RD_DATA_COUNT = RD_DATA_COUNT_FIFO_OUT; end endgenerate //Always connect WR_DATA_COUNT to the WR_DATA_COUNT from the internal //FIFO instance generate if (C_USE_FWFT_DATA_COUNT==1) begin : block4 assign WR_DATA_COUNT = WR_DATA_COUNT_FIFO_OUT; end else begin : block4 assign WR_DATA_COUNT = WR_DATA_COUNT_FIFO_OUT; end endgenerate //Connect other flags to the internal FIFO instance assign FULL = FULL_FIFO_OUT; assign ALMOST_FULL = ALMOST_FULL_FIFO_OUT; assign WR_ACK = WR_ACK_FIFO_OUT; assign OVERFLOW = OVERFLOW_FIFO_OUT; assign PROG_FULL = PROG_FULL_FIFO_OUT; assign PROG_EMPTY = PROG_EMPTY_FIFO_OUT; // if an asynchronous FIFO has been selected, display a message that the FIFO // will not be cycle-accurate in simulation initial begin if (C_IMPLEMENTATION_TYPE == 2) begin $display("WARNING: Behavioral models for independent clock FIFO configurations are not cycle-accurate. You may wish to choose the structural simulation model instead of the behavioral model. This will ensure accurate behavior and latencies during simulation. You can enable this from CORE Generator by selecting Project -> Project Options -> Generation tab -> Structural Simulation. See the FIFO Generator User Guide for more information."); end else if (C_MEMORY_TYPE == 4) begin $display("FAILURE : Behavioral models for Virtex-4, Virtex-5 and Virtex-6 built-in FIFO configurations is currently not supported. Please select the structural simulation model option in CORE Generator. You can enable this in CORE Generator by selecting Project -> Project Options -> Generation tab -> Structural Simulation. See the FIFO Generator User Guide for more information."); $finish; end end //initial /************************************************************************** * Internal reset logic **************************************************************************/ assign wr_rst_i = (C_HAS_RST == 1 || C_ENABLE_RST_SYNC == 0) ? wr_rst_reg : 0; assign rd_rst_i = (C_HAS_RST == 1 || C_ENABLE_RST_SYNC == 0) ? rd_rst_reg : 0; assign rst_i = C_HAS_RST ? rst_reg : 0; wire rst_2_sync; wire clk_2_sync = (C_COMMON_CLOCK == 1) ? CLK : WR_CLK; generate if (C_ENABLE_RST_SYNC == 0) begin : gnrst_sync always @* begin wr_rst_reg <= WR_RST; rd_rst_reg <= RD_RST; rst_reg <= 1'b0; end assign rst_2_sync = WR_RST; end else if (C_HAS_RST == 1 && C_COMMON_CLOCK == 0) begin : gic_rst assign wr_rst_comb = !wr_rst_asreg_d2 && wr_rst_asreg; assign rd_rst_comb = !rd_rst_asreg_d2 && rd_rst_asreg; assign rst_2_sync = RST; always @(posedge WR_CLK or posedge RST) begin if (RST == 1'b1) begin wr_rst_asreg <= #`TCQ 1'b1; end else begin if (wr_rst_asreg_d1 == 1'b1) begin wr_rst_asreg <= #`TCQ 1'b0; end else begin wr_rst_asreg <= #`TCQ wr_rst_asreg; end end end always @(posedge WR_CLK) begin wr_rst_asreg_d1 <= #`TCQ wr_rst_asreg; wr_rst_asreg_d2 <= #`TCQ wr_rst_asreg_d1; end always @(posedge WR_CLK or posedge wr_rst_comb) begin if (wr_rst_comb == 1'b1) begin wr_rst_reg <= #`TCQ 1'b1; end else begin wr_rst_reg <= #`TCQ 1'b0; end end always @(posedge RD_CLK or posedge RST) begin if (RST == 1'b1) begin rd_rst_asreg <= #`TCQ 1'b1; end else begin if (rd_rst_asreg_d1 == 1'b1) begin rd_rst_asreg <= #`TCQ 1'b0; end else begin rd_rst_asreg <= #`TCQ rd_rst_asreg; end end end always @(posedge RD_CLK) begin rd_rst_asreg_d1 <= #`TCQ rd_rst_asreg; rd_rst_asreg_d2 <= #`TCQ rd_rst_asreg_d1; end always @(posedge RD_CLK or posedge rd_rst_comb) begin if (rd_rst_comb == 1'b1) begin rd_rst_reg <= #`TCQ 1'b1; end else begin rd_rst_reg <= #`TCQ 1'b0; end end end else if (C_HAS_RST == 1 && C_COMMON_CLOCK == 1) begin : gcc_rst assign rst_comb = !rst_asreg_d2 && rst_asreg; assign rst_2_sync = RST; always @(posedge CLK or posedge RST) begin if (RST == 1'b1) begin rst_asreg <= #`TCQ 1'b1; end else begin if (rst_asreg_d1 == 1'b1) begin rst_asreg <= #`TCQ 1'b0; end else begin rst_asreg <= #`TCQ rst_asreg; end end end always @(posedge CLK) begin rst_asreg_d1 <= #`TCQ rst_asreg; rst_asreg_d2 <= #`TCQ rst_asreg_d1; end always @(posedge CLK or posedge rst_comb) begin if (rst_comb == 1'b1) begin rst_reg <= #`TCQ 1'b1; end else begin rst_reg <= #`TCQ 1'b0; end end end endgenerate reg rst_d1 = 1'b0; reg rst_d2 = 1'b0; reg rst_d3 = 1'b0; reg rst_d4 = 1'b0; generate if ((C_HAS_RST == 1 || C_HAS_SRST == 1 || C_ENABLE_RST_SYNC == 0) && C_FULL_FLAGS_RST_VAL == 1) begin : grstd1 // RST_FULL_GEN replaces the reset falling edge detection used to de-assert // FULL, ALMOST_FULL & PROG_FULL flags if C_FULL_FLAGS_RST_VAL = 1. // RST_FULL_FF goes to the reset pin of the final flop of FULL, ALMOST_FULL & // PROG_FULL always @ (posedge rst_2_sync or posedge clk_2_sync) begin if (rst_2_sync) begin rst_d1 <= 1'b1; rst_d2 <= 1'b1; rst_d3 <= 1'b1; rst_d4 <= 1'b0; end else begin if (SRST) begin rst_d1 <= #`TCQ 1'b1; rst_d2 <= #`TCQ 1'b1; rst_d3 <= #`TCQ 1'b1; rst_d4 <= #`TCQ 1'b0; end else begin rst_d1 <= #`TCQ 1'b0; rst_d2 <= #`TCQ rst_d1; rst_d3 <= #`TCQ rst_d2; rst_d4 <= #`TCQ rst_d3; end end end assign rst_full_ff_i = (C_HAS_SRST == 0) ? rst_d2 : 1'b0 ; assign rst_full_gen_i = rst_d4; end else if ((C_HAS_RST == 1 || C_HAS_SRST == 1 || C_ENABLE_RST_SYNC == 0) && C_FULL_FLAGS_RST_VAL == 0) begin : gnrst_full assign rst_full_gen_i = 1'b0; assign rst_full_ff_i = (C_COMMON_CLOCK == 0) ? wr_rst_i : rst_i; end endgenerate endmodule //FIFO_GENERATOR_V6_1 /******************************************************************************* * Declaration of Independent-Clocks FIFO Module ******************************************************************************/ module fifo_generator_v6_1_bhv_ver_as /*************************************************************************** * Declare user parameters and their defaults ***************************************************************************/ #( parameter C_DATA_COUNT_WIDTH = 2, parameter C_DIN_WIDTH = 8, parameter C_DOUT_RST_VAL = "", parameter C_DOUT_WIDTH = 8, parameter C_FULL_FLAGS_RST_VAL = 1, parameter C_HAS_ALMOST_EMPTY = 0, parameter C_HAS_ALMOST_FULL = 0, parameter C_HAS_DATA_COUNT = 0, parameter C_HAS_OVERFLOW = 0, parameter C_HAS_RD_DATA_COUNT = 0, parameter C_HAS_RST = 0, parameter C_HAS_UNDERFLOW = 0, parameter C_HAS_VALID = 0, parameter C_HAS_WR_ACK = 0, parameter C_HAS_WR_DATA_COUNT = 0, parameter C_IMPLEMENTATION_TYPE = 0, parameter C_MEMORY_TYPE = 1, parameter C_OVERFLOW_LOW = 0, parameter C_PRELOAD_LATENCY = 1, parameter C_PRELOAD_REGS = 0, parameter C_PROG_EMPTY_THRESH_ASSERT_VAL = 0, parameter C_PROG_EMPTY_THRESH_NEGATE_VAL = 0, parameter C_PROG_EMPTY_TYPE = 0, parameter C_PROG_FULL_THRESH_ASSERT_VAL = 0, parameter C_PROG_FULL_THRESH_NEGATE_VAL = 0, parameter C_PROG_FULL_TYPE = 0, parameter C_RD_DATA_COUNT_WIDTH = 2, parameter C_RD_DEPTH = 256, parameter C_RD_PNTR_WIDTH = 8, parameter C_UNDERFLOW_LOW = 0, parameter C_USE_DOUT_RST = 0, parameter C_USE_EMBEDDED_REG = 0, parameter C_USE_FWFT_DATA_COUNT = 0, parameter C_VALID_LOW = 0, parameter C_WR_ACK_LOW = 0, parameter C_WR_DATA_COUNT_WIDTH = 2, parameter C_WR_DEPTH = 256, parameter C_WR_PNTR_WIDTH = 8, parameter C_USE_ECC = 0, parameter C_ENABLE_RST_SYNC = 1, parameter C_ERROR_INJECTION_TYPE = 0 ) /*************************************************************************** * Declare Input and Output Ports ***************************************************************************/ ( input [C_DIN_WIDTH-1:0] DIN, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE, input RD_CLK, input RD_EN, input RD_EN_USER, input RST, input RST_FULL_GEN, input RST_FULL_FF, input WR_RST, input RD_RST, input WR_CLK, input WR_EN, input INJECTDBITERR, input INJECTSBITERR, input USER_EMPTY_FB, output reg ALMOST_EMPTY = 1'b1, output reg ALMOST_FULL = C_FULL_FLAGS_RST_VAL, output [C_DOUT_WIDTH-1:0] DOUT, output reg EMPTY = 1'b1, output reg FULL = C_FULL_FLAGS_RST_VAL, output OVERFLOW, output PROG_EMPTY, output PROG_FULL, output VALID, output [C_RD_DATA_COUNT_WIDTH-1:0] RD_DATA_COUNT, output UNDERFLOW, output WR_ACK, output [C_WR_DATA_COUNT_WIDTH-1:0] WR_DATA_COUNT, output SBITERR, output DBITERR ); reg [C_RD_PNTR_WIDTH:0] rd_data_count_int = 0; reg [C_WR_PNTR_WIDTH:0] wr_data_count_int = 0; reg [C_WR_PNTR_WIDTH:0] wdc_fwft_ext_as = 0; /*************************************************************************** * Parameters used as constants **************************************************************************/ //When RST is present, set FULL reset value to '1'. //If core has no RST, make sure FULL powers-on as '0'. parameter C_DEPTH_RATIO_WR = (C_WR_DEPTH>C_RD_DEPTH) ? (C_WR_DEPTH/C_RD_DEPTH) : 1; parameter C_DEPTH_RATIO_RD = (C_RD_DEPTH>C_WR_DEPTH) ? (C_RD_DEPTH/C_WR_DEPTH) : 1; parameter C_FIFO_WR_DEPTH = C_WR_DEPTH - 1; parameter C_FIFO_RD_DEPTH = C_RD_DEPTH - 1; // C_DEPTH_RATIO_WR | C_DEPTH_RATIO_RD | C_PNTR_WIDTH | EXTRA_WORDS_DC // -----------------|------------------|-----------------|--------------- // 1 | 8 | C_RD_PNTR_WIDTH | 2 // 1 | 4 | C_RD_PNTR_WIDTH | 2 // 1 | 2 | C_RD_PNTR_WIDTH | 2 // 1 | 1 | C_WR_PNTR_WIDTH | 2 // 2 | 1 | C_WR_PNTR_WIDTH | 4 // 4 | 1 | C_WR_PNTR_WIDTH | 8 // 8 | 1 | C_WR_PNTR_WIDTH | 16 localparam C_PNTR_WIDTH = (C_WR_PNTR_WIDTH>=C_RD_PNTR_WIDTH) ? C_WR_PNTR_WIDTH : C_RD_PNTR_WIDTH; wire [C_PNTR_WIDTH:0] EXTRA_WORDS_DC = (C_DEPTH_RATIO_WR == 1) ? 2 : (2 * C_DEPTH_RATIO_WR/C_DEPTH_RATIO_RD); parameter [31:0] reads_per_write = C_DIN_WIDTH/C_DOUT_WIDTH; parameter [31:0] log2_reads_per_write = log2_val(reads_per_write); parameter [31:0] writes_per_read = C_DOUT_WIDTH/C_DIN_WIDTH; parameter [31:0] log2_writes_per_read = log2_val(writes_per_read); /************************************************************************** * FIFO Contents Tracking and Data Count Calculations *************************************************************************/ // Memory which will be used to simulate a FIFO reg [C_DIN_WIDTH-1:0] memory[C_WR_DEPTH-1:0]; // Local parameters used to determine whether to inject ECC error or not localparam SYMMETRIC_PORT = (C_DIN_WIDTH == C_DOUT_WIDTH) ? 1 : 0; localparam ERR_INJECTION = (C_ERROR_INJECTION_TYPE != 0) ? 1 : 0; localparam ENABLE_ERR_INJECTION = C_USE_ECC && SYMMETRIC_PORT && ERR_INJECTION; // Array that holds the error injection type (single/double bit error) on // a specific write operation, which is returned on read to corrupt the // output data. reg [1:0] ecc_err[C_WR_DEPTH-1:0]; //The amount of data stored in the FIFO at any time is given // by num_wr_bits (in the WR_CLK domain) and num_rd_bits (in the RD_CLK // domain. //num_wr_bits is calculated by considering the total words in the FIFO, // and the state of the read pointer (which may not have yet crossed clock // domains.) //num_rd_bits is calculated by considering the total words in the FIFO, // and the state of the write pointer (which may not have yet crossed clock // domains.) reg [31:0] num_wr_bits; reg [31:0] num_rd_bits; reg [31:0] next_num_wr_bits; reg [31:0] next_num_rd_bits; //The write pointer - tracks write operations // (Works opposite to core: wr_ptr is a DOWN counter) reg [31:0] wr_ptr; reg [C_WR_PNTR_WIDTH-1:0] wr_pntr = 0; // UP counter: Rolls back to 0 when reaches to max value. reg [C_WR_PNTR_WIDTH-1:0] wr_pntr_rd1 = 0; reg [C_WR_PNTR_WIDTH-1:0] wr_pntr_rd2 = 0; reg [C_WR_PNTR_WIDTH-1:0] wr_pntr_rd3 = 0; wire [C_RD_PNTR_WIDTH-1:0] adj_wr_pntr_rd; reg [C_WR_PNTR_WIDTH-1:0] wr_pntr_rd = 0; wire wr_rst_i = WR_RST; reg wr_rst_d1 =0; //The read pointer - tracks read operations // (rd_ptr Works opposite to core: rd_ptr is a DOWN counter) reg [31:0] rd_ptr; reg [C_RD_PNTR_WIDTH-1:0] rd_pntr = 0; // UP counter: Rolls back to 0 when reaches to max value. reg [C_RD_PNTR_WIDTH-1:0] rd_pntr_wr1 = 0; reg [C_RD_PNTR_WIDTH-1:0] rd_pntr_wr2 = 0; reg [C_RD_PNTR_WIDTH-1:0] rd_pntr_wr3 = 0; reg [C_RD_PNTR_WIDTH-1:0] rd_pntr_wr4 = 0; wire [C_WR_PNTR_WIDTH-1:0] adj_rd_pntr_wr; reg [C_RD_PNTR_WIDTH-1:0] rd_pntr_wr = 0; wire rd_rst_i = RD_RST; wire ram_rd_en; reg ram_rd_en_d1 = 1'b0; // Delayed ram_rd_en is needed only for STD Embedded register option generate if (C_PRELOAD_LATENCY == 2) begin : grd_d always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) ram_rd_en_d1 <= #`TCQ 1'b0; else ram_rd_en_d1 <= #`TCQ ram_rd_en; end end endgenerate // Write pointer adjustment based on pointers width for EMPTY/ALMOST_EMPTY generation generate if (C_RD_PNTR_WIDTH > C_WR_PNTR_WIDTH) begin : rdg // Read depth greater than write depth assign adj_wr_pntr_rd[C_RD_PNTR_WIDTH-1:C_RD_PNTR_WIDTH-C_WR_PNTR_WIDTH] = wr_pntr_rd; assign adj_wr_pntr_rd[C_RD_PNTR_WIDTH-C_WR_PNTR_WIDTH-1:0] = 0; end else begin : rdl // Read depth lesser than or equal to write depth assign adj_wr_pntr_rd = wr_pntr_rd[C_WR_PNTR_WIDTH-1:C_WR_PNTR_WIDTH-C_RD_PNTR_WIDTH]; end endgenerate // Generate Empty and Almost Empty // ram_rd_en used to determine EMPTY should depend on the EMPTY. assign ram_rd_en = RD_EN & !EMPTY; assign empty_int = ((adj_wr_pntr_rd == rd_pntr) || (ram_rd_en && (adj_wr_pntr_rd == (rd_pntr+1'h1)))); assign almost_empty_int = ((adj_wr_pntr_rd == (rd_pntr+1'h1)) || (ram_rd_en && (adj_wr_pntr_rd == (rd_pntr+2'h2)))); // Register Empty and Almost Empty always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) begin EMPTY <= #`TCQ 1'b1; ALMOST_EMPTY <= #`TCQ 1'b1; rd_data_count_int <= #`TCQ {C_RD_PNTR_WIDTH-1{1'b0}}; end else begin rd_data_count_int <= #`TCQ {(adj_wr_pntr_rd[C_RD_PNTR_WIDTH-1:0] - rd_pntr[C_RD_PNTR_WIDTH-1:0]), 1'b0}; if (empty_int) EMPTY <= #`TCQ 1'b1; else EMPTY <= #`TCQ 1'b0; if (!EMPTY) begin if (almost_empty_int) ALMOST_EMPTY <= #`TCQ 1'b1; else ALMOST_EMPTY <= #`TCQ 1'b0; end end // rd_rst_i end // always // Read pointer adjustment based on pointers width for EMPTY/ALMOST_EMPTY generation generate if (C_WR_PNTR_WIDTH > C_RD_PNTR_WIDTH) begin : wdg // Write depth greater than read depth assign adj_rd_pntr_wr[C_WR_PNTR_WIDTH-1:C_WR_PNTR_WIDTH-C_RD_PNTR_WIDTH] = rd_pntr_wr; assign adj_rd_pntr_wr[C_WR_PNTR_WIDTH-C_RD_PNTR_WIDTH-1:0] = 0; end else begin : wdl // Write depth lesser than or equal to read depth assign adj_rd_pntr_wr = rd_pntr_wr[C_RD_PNTR_WIDTH-1:C_RD_PNTR_WIDTH-C_WR_PNTR_WIDTH]; end endgenerate // Generate FULL and ALMOST_FULL // ram_wr_en used to determine FULL should depend on the FULL. assign ram_wr_en = WR_EN & !FULL; assign full_int = ((adj_rd_pntr_wr == (wr_pntr+1'h1)) || (ram_wr_en && (adj_rd_pntr_wr == (wr_pntr+2'h2)))); assign almost_full_int = ((adj_rd_pntr_wr == (wr_pntr+2'h2)) || (ram_wr_en && (adj_rd_pntr_wr == (wr_pntr+3'h3)))); // Register FULL and ALMOST_FULL Empty always @ (posedge WR_CLK or posedge RST_FULL_FF) begin if (RST_FULL_FF) begin FULL <= #`TCQ C_FULL_FLAGS_RST_VAL; ALMOST_FULL <= #`TCQ C_FULL_FLAGS_RST_VAL; wr_data_count_int <= #`TCQ {C_WR_DATA_COUNT_WIDTH-1{1'b0}}; end else begin wr_data_count_int <= #`TCQ {(wr_pntr[C_WR_PNTR_WIDTH-1:0] - adj_rd_pntr_wr[C_WR_PNTR_WIDTH-1:0]), 1'b0}; if (full_int) begin FULL <= #`TCQ 1'b1; end else begin FULL <= #`TCQ 1'b0; end if (RST_FULL_GEN) begin ALMOST_FULL <= #`TCQ 1'b0; end else if (!FULL) begin if (almost_full_int) ALMOST_FULL <= #`TCQ 1'b1; else ALMOST_FULL <= #`TCQ 1'b0; end end // wr_rst_i end // always // Determine which stage in FWFT registers are valid reg stage1_valid = 0; reg stage2_valid = 0; generate if (C_PRELOAD_LATENCY == 0) begin : grd_fwft_proc always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) begin stage1_valid <= #`TCQ 0; stage2_valid <= #`TCQ 0; end else begin if (!stage1_valid && !stage2_valid) begin if (!EMPTY) stage1_valid <= #`TCQ 1'b1; else stage1_valid <= #`TCQ 1'b0; end else if (stage1_valid && !stage2_valid) begin if (EMPTY) begin stage1_valid <= #`TCQ 1'b0; stage2_valid <= #`TCQ 1'b1; end else begin stage1_valid <= #`TCQ 1'b1; stage2_valid <= #`TCQ 1'b1; end end else if (!stage1_valid && stage2_valid) begin if (EMPTY && RD_EN_USER) begin stage1_valid <= #`TCQ 1'b0; stage2_valid <= #`TCQ 1'b0; end else if (!EMPTY && RD_EN_USER) begin stage1_valid <= #`TCQ 1'b1; stage2_valid <= #`TCQ 1'b0; end else if (!EMPTY && !RD_EN_USER) begin stage1_valid <= #`TCQ 1'b1; stage2_valid <= #`TCQ 1'b1; end else begin stage1_valid <= #`TCQ 1'b0; stage2_valid <= #`TCQ 1'b1; end end else if (stage1_valid && stage2_valid) begin if (EMPTY && RD_EN_USER) begin stage1_valid <= #`TCQ 1'b0; stage2_valid <= #`TCQ 1'b1; end else begin stage1_valid <= #`TCQ 1'b1; stage2_valid <= #`TCQ 1'b1; end end else begin stage1_valid <= #`TCQ 1'b0; stage2_valid <= #`TCQ 1'b0; end end // rd_rst_i end // always end endgenerate //Pointers passed into opposite clock domain reg [31:0] wr_ptr_rdclk; reg [31:0] wr_ptr_rdclk_next; reg [31:0] rd_ptr_wrclk; reg [31:0] rd_ptr_wrclk_next; //Amount of data stored in the FIFO scaled to the narrowest (deepest) port // (Do not include data in FWFT stages) //Used to calculate PROG_EMPTY. wire [31:0] num_read_words_pe = num_rd_bits/(C_DOUT_WIDTH/C_DEPTH_RATIO_WR); //Amount of data stored in the FIFO scaled to the narrowest (deepest) port // (Do not include data in FWFT stages) //Used to calculate PROG_FULL. wire [31:0] num_write_words_pf = num_wr_bits/(C_DIN_WIDTH/C_DEPTH_RATIO_RD); /************************** * Read Data Count *************************/ reg [31:0] num_read_words_dc; reg [C_RD_DATA_COUNT_WIDTH-1:0] num_read_words_sized_i; always @(num_rd_bits) begin if (C_USE_FWFT_DATA_COUNT) begin //If using extra logic for FWFT Data Counts, // then scale FIFO contents to read domain, // and add two read words for FWFT stages //This value is only a temporary value and not used in the code. num_read_words_dc = (num_rd_bits/C_DOUT_WIDTH+2); //Trim the read words for use with RD_DATA_COUNT num_read_words_sized_i = num_read_words_dc[C_RD_PNTR_WIDTH : C_RD_PNTR_WIDTH-C_RD_DATA_COUNT_WIDTH+1]; end else begin //If not using extra logic for FWFT Data Counts, // then scale FIFO contents to read domain. //This value is only a temporary value and not used in the code. num_read_words_dc = num_rd_bits/C_DOUT_WIDTH; //Trim the read words for use with RD_DATA_COUNT num_read_words_sized_i = num_read_words_dc[C_RD_PNTR_WIDTH-1 : C_RD_PNTR_WIDTH-C_RD_DATA_COUNT_WIDTH]; end //if (C_USE_FWFT_DATA_COUNT) end //always /************************** * Write Data Count *************************/ reg [31:0] num_write_words_dc; reg [C_WR_DATA_COUNT_WIDTH-1:0] num_write_words_sized_i; always @(num_wr_bits) begin if (C_USE_FWFT_DATA_COUNT) begin //Calculate the Data Count value for the number of write words, // when using First-Word Fall-Through with extra logic for Data // Counts. This takes into consideration the number of words that // are expected to be stored in the FWFT register stages (it always // assumes they are filled). //This value is scaled to the Write Domain. //The expression (((A-1)/B))+1 divides A/B, but takes the // ceiling of the result. //When num_wr_bits==0, set the result manually to prevent // division errors. //EXTRA_WORDS_DC is the number of words added to write_words // due to FWFT. //This value is only a temporary value and not used in the code. num_write_words_dc = (num_wr_bits==0) ? EXTRA_WORDS_DC : (((num_wr_bits-1)/C_DIN_WIDTH)+1) + EXTRA_WORDS_DC ; //Trim the write words for use with WR_DATA_COUNT num_write_words_sized_i = num_write_words_dc[C_WR_PNTR_WIDTH : C_WR_PNTR_WIDTH-C_WR_DATA_COUNT_WIDTH+1]; end else begin //Calculate the Data Count value for the number of write words, when NOT // using First-Word Fall-Through with extra logic for Data Counts. This // calculates only the number of words in the internal FIFO. //The expression (((A-1)/B))+1 divides A/B, but takes the // ceiling of the result. //This value is scaled to the Write Domain. //When num_wr_bits==0, set the result manually to prevent // division errors. //This value is only a temporary value and not used in the code. num_write_words_dc = (num_wr_bits==0) ? 0 : ((num_wr_bits-1)/C_DIN_WIDTH)+1; //Trim the read words for use with RD_DATA_COUNT num_write_words_sized_i = num_write_words_dc[C_WR_PNTR_WIDTH-1 : C_WR_PNTR_WIDTH-C_WR_DATA_COUNT_WIDTH]; end //if (C_USE_FWFT_DATA_COUNT) end //always /*************************************************************************** * Internal registers and wires **************************************************************************/ //Temporary signals used for calculating the model's outputs. These //are only used in the assign statements immediately following wire, //parameter, and function declarations. wire [C_DOUT_WIDTH-1:0] ideal_dout_out; wire valid_i; wire valid_out; wire underflow_i; //Ideal FIFO signals. These are the raw output of the behavioral model, //which behaves like an ideal FIFO. reg [1:0] err_type = 0; reg [1:0] err_type_d1 = 0; reg [C_DOUT_WIDTH-1:0] ideal_dout = 0; reg [C_DOUT_WIDTH-1:0] ideal_dout_d1 = 0; reg ideal_wr_ack = 0; reg ideal_valid = 0; reg ideal_overflow = 0; reg ideal_underflow = 0; reg ideal_prog_full = 0; reg ideal_prog_empty = 1; reg [C_WR_DATA_COUNT_WIDTH-1 : 0] ideal_wr_count = 0; reg [C_RD_DATA_COUNT_WIDTH-1 : 0] ideal_rd_count = 0; //Assorted reg values for delayed versions of signals reg valid_d1 = 0; //user specified value for reseting the size of the fifo reg [C_DOUT_WIDTH-1:0] dout_reset_val = 0; //temporary registers for WR_RESPONSE_LATENCY feature integer tmp_wr_listsize; integer tmp_rd_listsize; //Signal for registered version of prog full and empty //Threshold values for Programmable Flags integer prog_empty_actual_thresh_assert; integer prog_empty_actual_thresh_negate; integer prog_full_actual_thresh_assert; integer prog_full_actual_thresh_negate; /**************************************************************************** * Function Declarations ***************************************************************************/ /************************************************************************** * write_fifo * This task writes a word to the FIFO memory and updates the * write pointer. * FIFO size is relative to write domain. ***************************************************************************/ task write_fifo; begin memory[wr_ptr] <= DIN; wr_pntr <= #`TCQ wr_pntr + 1; // Store the type of error injection (double/single) on write case (C_ERROR_INJECTION_TYPE) 3: ecc_err[wr_ptr] <= {INJECTDBITERR,INJECTSBITERR}; 2: ecc_err[wr_ptr] <= {INJECTDBITERR,1'b0}; 1: ecc_err[wr_ptr] <= {1'b0,INJECTSBITERR}; default: ecc_err[wr_ptr] <= 0; endcase // (Works opposite to core: wr_ptr is a DOWN counter) if (wr_ptr == 0) begin wr_ptr <= C_WR_DEPTH - 1; end else begin wr_ptr <= wr_ptr - 1; end end endtask // write_fifo /************************************************************************** * read_fifo * This task reads a word from the FIFO memory and updates the read * pointer. It's output is the ideal_dout bus. * FIFO size is relative to write domain. ***************************************************************************/ task read_fifo; integer i; reg [C_DOUT_WIDTH-1:0] tmp_dout; reg [C_DIN_WIDTH-1:0] memory_read; reg [31:0] tmp_rd_ptr; reg [31:0] rd_ptr_high; reg [31:0] rd_ptr_low; reg [1:0] tmp_ecc_err; begin rd_pntr <= #`TCQ rd_pntr + 1; // output is wider than input if (reads_per_write == 0) begin tmp_dout = 0; tmp_rd_ptr = (rd_ptr << log2_writes_per_read)+(writes_per_read-1); for (i = writes_per_read - 1; i >= 0; i = i - 1) begin tmp_dout = tmp_dout << C_DIN_WIDTH; tmp_dout = tmp_dout | memory[tmp_rd_ptr]; // (Works opposite to core: rd_ptr is a DOWN counter) if (tmp_rd_ptr == 0) begin tmp_rd_ptr = C_WR_DEPTH - 1; end else begin tmp_rd_ptr = tmp_rd_ptr - 1; end end // output is symmetric end else if (reads_per_write == 1) begin tmp_dout = memory[rd_ptr][C_DIN_WIDTH-1:0]; // Retreive the error injection type. Based on the error injection type // corrupt the output data. tmp_ecc_err = ecc_err[rd_ptr]; if (ENABLE_ERR_INJECTION && C_DIN_WIDTH == C_DOUT_WIDTH) begin if (tmp_ecc_err[1]) begin // Corrupt the output data only for double bit error if (C_DOUT_WIDTH == 1) tmp_dout = tmp_dout[C_DOUT_WIDTH-1:0]; else if (C_DOUT_WIDTH == 2) tmp_dout = {~tmp_dout[C_DOUT_WIDTH-1],~tmp_dout[C_DOUT_WIDTH-2]}; else tmp_dout = {~tmp_dout[C_DOUT_WIDTH-1],~tmp_dout[C_DOUT_WIDTH-2],(tmp_dout << 2)}; end else begin tmp_dout = tmp_dout[C_DOUT_WIDTH-1:0]; end err_type <= {tmp_ecc_err[1], tmp_ecc_err[0] & !tmp_ecc_err[1]}; end else begin err_type <= 0; end // input is wider than output end else begin rd_ptr_high = rd_ptr >> log2_reads_per_write; rd_ptr_low = rd_ptr & (reads_per_write - 1); memory_read = memory[rd_ptr_high]; tmp_dout = memory_read >> (rd_ptr_low*C_DOUT_WIDTH); end ideal_dout <= tmp_dout; // (Works opposite to core: rd_ptr is a DOWN counter) if (rd_ptr == 0) begin rd_ptr <= C_RD_DEPTH - 1; end else begin rd_ptr <= rd_ptr - 1; end end endtask /************************************************************************** * log2_val * Returns the 'log2' value for the input value for the supported ratios ***************************************************************************/ function [31:0] log2_val; input [31:0] binary_val; begin if (binary_val == 8) begin log2_val = 3; end else if (binary_val == 4) begin log2_val = 2; end else begin log2_val = 1; end end endfunction /*********************************************************************** * hexstr_conv * Converts a string of type hex to a binary value (for C_DOUT_RST_VAL) ***********************************************************************/ function [C_DOUT_WIDTH-1:0] hexstr_conv; input [(C_DOUT_WIDTH*8)-1:0] def_data; integer index,i,j; reg [3:0] bin; begin index = 0; hexstr_conv = 'b0; for( i=C_DOUT_WIDTH-1; i>=0; i=i-1 ) begin case (def_data[7:0]) 8'b00000000 : begin bin = 4'b0000; i = -1; end 8'b00110000 : bin = 4'b0000; 8'b00110001 : bin = 4'b0001; 8'b00110010 : bin = 4'b0010; 8'b00110011 : bin = 4'b0011; 8'b00110100 : bin = 4'b0100; 8'b00110101 : bin = 4'b0101; 8'b00110110 : bin = 4'b0110; 8'b00110111 : bin = 4'b0111; 8'b00111000 : bin = 4'b1000; 8'b00111001 : bin = 4'b1001; 8'b01000001 : bin = 4'b1010; 8'b01000010 : bin = 4'b1011; 8'b01000011 : bin = 4'b1100; 8'b01000100 : bin = 4'b1101; 8'b01000101 : bin = 4'b1110; 8'b01000110 : bin = 4'b1111; 8'b01100001 : bin = 4'b1010; 8'b01100010 : bin = 4'b1011; 8'b01100011 : bin = 4'b1100; 8'b01100100 : bin = 4'b1101; 8'b01100101 : bin = 4'b1110; 8'b01100110 : bin = 4'b1111; default : begin bin = 4'bx; end endcase for( j=0; j<4; j=j+1) begin if ((index*4)+j < C_DOUT_WIDTH) begin hexstr_conv[(index*4)+j] = bin[j]; end end index = index + 1; def_data = def_data >> 8; end end endfunction /************************************************************************* * Initialize Signals for clean power-on simulation *************************************************************************/ initial begin num_wr_bits = 0; num_rd_bits = 0; next_num_wr_bits = 0; next_num_rd_bits = 0; rd_ptr = C_RD_DEPTH - 1; wr_ptr = C_WR_DEPTH - 1; wr_pntr = 0; rd_pntr = 0; rd_ptr_wrclk = rd_ptr; wr_ptr_rdclk = wr_ptr; dout_reset_val = hexstr_conv(C_DOUT_RST_VAL); ideal_dout = dout_reset_val; err_type = 0; ideal_dout_d1 = dout_reset_val; ideal_wr_ack = 1'b0; ideal_valid = 1'b0; valid_d1 = 1'b0; ideal_overflow = 1'b0; ideal_underflow = 1'b0; ideal_wr_count = 0; ideal_rd_count = 0; ideal_prog_full = 1'b0; ideal_prog_empty = 1'b1; end /************************************************************************* * Connect the module inputs and outputs to the internal signals of the * behavioral model. *************************************************************************/ //Inputs /* wire [C_DIN_WIDTH-1:0] DIN; wire [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH; wire [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT; wire [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE; wire [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH; wire [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT; wire [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE; wire RD_CLK; wire RD_EN; wire RST; wire WR_CLK; wire WR_EN; */ //*************************************************************************** // Dout may change behavior based on latency //*************************************************************************** assign ideal_dout_out[C_DOUT_WIDTH-1:0] = (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? ideal_dout_d1: ideal_dout; assign DOUT[C_DOUT_WIDTH-1:0] = ideal_dout_out; //*************************************************************************** // Assign SBITERR and DBITERR based on latency //*************************************************************************** assign SBITERR = (C_ERROR_INJECTION_TYPE == 1 || C_ERROR_INJECTION_TYPE == 3) && (C_PRELOAD_LATENCY == 2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1)) ? err_type_d1[0]: err_type[0]; assign DBITERR = (C_ERROR_INJECTION_TYPE == 2 || C_ERROR_INJECTION_TYPE == 3) && (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1)) ? err_type_d1[1]: err_type[1]; //*************************************************************************** // Overflow may be active-low //*************************************************************************** generate if (C_HAS_OVERFLOW==1) begin : blockOF1 assign OVERFLOW = ideal_overflow ? !C_OVERFLOW_LOW : C_OVERFLOW_LOW; end endgenerate assign PROG_EMPTY = ideal_prog_empty; assign PROG_FULL = ideal_prog_full; //*************************************************************************** // Valid may change behavior based on latency or active-low //*************************************************************************** generate if (C_HAS_VALID==1) begin : blockVL1 assign valid_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & ~EMPTY) : ideal_valid; assign valid_out = (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? valid_d1: valid_i; assign VALID = valid_out ? !C_VALID_LOW : C_VALID_LOW; end endgenerate //*************************************************************************** // Underflow may change behavior based on latency or active-low //*************************************************************************** generate if (C_HAS_UNDERFLOW==1) begin : blockUF1 assign underflow_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & EMPTY) : ideal_underflow; assign UNDERFLOW = underflow_i ? !C_UNDERFLOW_LOW : C_UNDERFLOW_LOW; end endgenerate //*************************************************************************** // Write acknowledge may be active low //*************************************************************************** generate if (C_HAS_WR_ACK==1) begin : blockWK1 assign WR_ACK = ideal_wr_ack ? !C_WR_ACK_LOW : C_WR_ACK_LOW; end endgenerate //*************************************************************************** // Generate RD_DATA_COUNT if Use Extra Logic option is selected //*************************************************************************** generate if (C_HAS_WR_DATA_COUNT == 1 && C_USE_FWFT_DATA_COUNT == 1) begin : wdc_fwft_ext reg [C_PNTR_WIDTH-1:0] adjusted_wr_pntr = 0; reg [C_PNTR_WIDTH-1:0] adjusted_rd_pntr = 0; wire [C_PNTR_WIDTH-1:0] diff_wr_rd_tmp; wire [C_PNTR_WIDTH:0] diff_wr_rd; reg [C_PNTR_WIDTH:0] wr_data_count_i = 0; always @* begin if (C_WR_PNTR_WIDTH > C_RD_PNTR_WIDTH) begin adjusted_wr_pntr = wr_pntr; adjusted_rd_pntr = 0; adjusted_rd_pntr[C_PNTR_WIDTH-1:C_PNTR_WIDTH-C_RD_PNTR_WIDTH] = rd_pntr_wr; end else if (C_WR_PNTR_WIDTH < C_RD_PNTR_WIDTH) begin adjusted_rd_pntr = rd_pntr_wr; adjusted_wr_pntr = 0; adjusted_wr_pntr[C_PNTR_WIDTH-1:C_PNTR_WIDTH-C_WR_PNTR_WIDTH] = wr_pntr; end else begin adjusted_wr_pntr = wr_pntr; adjusted_rd_pntr = rd_pntr_wr; end end // always @* assign diff_wr_rd_tmp = adjusted_wr_pntr - adjusted_rd_pntr; assign diff_wr_rd = {1'b0,diff_wr_rd_tmp}; always @ (posedge wr_rst_i or posedge WR_CLK) begin if (wr_rst_i) wr_data_count_i <= #`TCQ 0; else wr_data_count_i <= #`TCQ diff_wr_rd + EXTRA_WORDS_DC; end // always @ (posedge WR_CLK or posedge WR_CLK) always @* begin if (C_WR_PNTR_WIDTH >= C_RD_PNTR_WIDTH) wdc_fwft_ext_as = wr_data_count_i[C_PNTR_WIDTH:0]; else wdc_fwft_ext_as = wr_data_count_i[C_PNTR_WIDTH:C_RD_PNTR_WIDTH-C_WR_PNTR_WIDTH]; end // always @* end // wdc_fwft_ext endgenerate //*************************************************************************** // Generate RD_DATA_COUNT if Use Extra Logic option is selected //*************************************************************************** reg [C_RD_PNTR_WIDTH:0] rdc_fwft_ext_as = 0; generate if (C_HAS_RD_DATA_COUNT == 1 && C_USE_FWFT_DATA_COUNT == 1) begin : rdc_fwft_ext reg [C_RD_PNTR_WIDTH-1:0] adjusted_wr_pntr_rd = 0; wire [C_RD_PNTR_WIDTH-1:0] diff_rd_wr_tmp; wire [C_RD_PNTR_WIDTH:0] diff_rd_wr; always @* begin if (C_RD_PNTR_WIDTH > C_WR_PNTR_WIDTH) begin adjusted_wr_pntr_rd = 0; adjusted_wr_pntr_rd[C_RD_PNTR_WIDTH-1:C_RD_PNTR_WIDTH-C_WR_PNTR_WIDTH] = wr_pntr_rd; end else begin adjusted_wr_pntr_rd = wr_pntr_rd[C_WR_PNTR_WIDTH-1:C_WR_PNTR_WIDTH-C_RD_PNTR_WIDTH]; end end // always @* assign diff_rd_wr_tmp = adjusted_wr_pntr_rd - rd_pntr; assign diff_rd_wr = {1'b0,diff_rd_wr_tmp}; always @ (posedge rd_rst_i or posedge RD_CLK) begin if (rd_rst_i) begin rdc_fwft_ext_as <= #`TCQ 0; end else begin if (!stage2_valid) rdc_fwft_ext_as <= #`TCQ 0; else if (!stage1_valid && stage2_valid) rdc_fwft_ext_as <= #`TCQ 1; else rdc_fwft_ext_as <= #`TCQ diff_rd_wr + 2'h2; end end // always @ (posedge WR_CLK or posedge WR_CLK) end // rdc_fwft_ext endgenerate //*************************************************************************** // Assign the read data count value only if it is selected, // otherwise output zeros. //*************************************************************************** generate if (C_HAS_RD_DATA_COUNT == 1) begin : grdc assign RD_DATA_COUNT[C_RD_DATA_COUNT_WIDTH-1:0] = C_USE_FWFT_DATA_COUNT ? rdc_fwft_ext_as[C_RD_PNTR_WIDTH:C_RD_PNTR_WIDTH+1-C_RD_DATA_COUNT_WIDTH] : rd_data_count_int[C_RD_PNTR_WIDTH:C_RD_PNTR_WIDTH+1-C_RD_DATA_COUNT_WIDTH]; end endgenerate generate if (C_HAS_RD_DATA_COUNT == 0) begin : gnrdc assign RD_DATA_COUNT[C_RD_DATA_COUNT_WIDTH-1:0] = {C_RD_DATA_COUNT_WIDTH-1{1'b0}}; end endgenerate //*************************************************************************** // Assign the write data count value only if it is selected, // otherwise output zeros //*************************************************************************** generate if (C_HAS_WR_DATA_COUNT == 1) begin : gwdc assign WR_DATA_COUNT[C_WR_DATA_COUNT_WIDTH-1:0] = (C_USE_FWFT_DATA_COUNT == 1) ? wdc_fwft_ext_as[C_WR_PNTR_WIDTH:C_WR_PNTR_WIDTH+1-C_WR_DATA_COUNT_WIDTH] : wr_data_count_int[C_WR_PNTR_WIDTH:C_WR_PNTR_WIDTH+1-C_WR_DATA_COUNT_WIDTH]; end endgenerate generate if (C_HAS_WR_DATA_COUNT == 0) begin : gnwdc assign WR_DATA_COUNT[C_WR_DATA_COUNT_WIDTH-1:0] = {C_WR_DATA_COUNT_WIDTH-1{1'b0}}; end endgenerate /************************************************************************** * Assorted registers for delayed versions of signals **************************************************************************/ //Capture delayed version of valid generate if (C_HAS_VALID==1) begin : blockVL2 always @(posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i == 1'b1) begin valid_d1 <= #`TCQ 1'b0; end else begin valid_d1 <= #`TCQ valid_i; end end end endgenerate //Capture delayed version of dout always @(posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i == 1'b1) begin // Reset err_type only if ECC is not selected if (C_USE_ECC == 0) err_type_d1 <= #`TCQ 0; end else if (ram_rd_en_d1) begin ideal_dout_d1 <= #`TCQ ideal_dout; err_type_d1 <= #`TCQ err_type; end end /************************************************************************** * Overflow and Underflow Flag calculation * (handled separately because they don't support rst) **************************************************************************/ generate if (C_HAS_OVERFLOW==1) begin : blockOF2 always @(posedge WR_CLK) begin ideal_overflow <= #`TCQ WR_EN & FULL; end end endgenerate generate if (C_HAS_UNDERFLOW==1) begin : blockUF2 always @(posedge RD_CLK) begin ideal_underflow <= #`TCQ EMPTY & RD_EN; end end endgenerate /************************************************************************** * Write Domain Logic **************************************************************************/ reg [C_WR_PNTR_WIDTH-1:0] diff_pntr = 0; always @(posedge WR_CLK or posedge wr_rst_i) begin : gen_fifo_w /****** Reset fifo (case 1)***************************************/ if (wr_rst_i == 1'b1) begin num_wr_bits <= #`TCQ 0; next_num_wr_bits = #`TCQ 0; wr_ptr <= #`TCQ C_WR_DEPTH - 1; rd_ptr_wrclk <= #`TCQ C_RD_DEPTH - 1; ideal_wr_ack <= #`TCQ 0; ideal_wr_count <= #`TCQ 0; tmp_wr_listsize = #`TCQ 0; rd_ptr_wrclk_next <= #`TCQ 0; wr_pntr <= #`TCQ 0; wr_pntr_rd1 <= #`TCQ 0; rd_pntr_wr2 <= #`TCQ 0; rd_pntr_wr3 <= #`TCQ 0; rd_pntr_wr4 <= #`TCQ 0; rd_pntr_wr <= #`TCQ 0; end else begin //wr_rst_i==0 wr_pntr_rd1 <= #`TCQ wr_pntr; // Synchronize the rd_pntr in read domain rd_pntr_wr2 <= #`TCQ rd_pntr_wr1; rd_pntr_wr3 <= #`TCQ rd_pntr_wr2; rd_pntr_wr4 <= #`TCQ rd_pntr_wr2; rd_pntr_wr <= #`TCQ rd_pntr_wr4; //Determine the current number of words in the FIFO tmp_wr_listsize = (C_DEPTH_RATIO_RD > 1) ? num_wr_bits/C_DOUT_WIDTH : num_wr_bits/C_DIN_WIDTH; rd_ptr_wrclk_next = rd_ptr; if (rd_ptr_wrclk < rd_ptr_wrclk_next) begin next_num_wr_bits = num_wr_bits - C_DOUT_WIDTH*(rd_ptr_wrclk + C_RD_DEPTH - rd_ptr_wrclk_next); end else begin next_num_wr_bits = num_wr_bits - C_DOUT_WIDTH*(rd_ptr_wrclk - rd_ptr_wrclk_next); end //If this is a write, handle the write by adding the value // to the linked list, and updating all outputs appropriately if (WR_EN == 1'b1) begin if (FULL == 1'b1) begin //If the FIFO is full, do NOT perform the write, // update flags accordingly if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD >= C_FIFO_WR_DEPTH) begin //write unsuccessful - do not change contents //Do not acknowledge the write ideal_wr_ack <= #`TCQ 0; //Reminder that FIFO is still full ideal_wr_count <= #`TCQ num_write_words_sized_i; //If the FIFO is one from full, but reporting full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD == C_FIFO_WR_DEPTH-1) begin //No change to FIFO //Write not successful ideal_wr_ack <= #`TCQ 0; //With DEPTH-1 words in the FIFO, it is almost_full ideal_wr_count <= #`TCQ num_write_words_sized_i; //If the FIFO is completely empty, but it is // reporting FULL for some reason (like reset) end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD <= C_FIFO_WR_DEPTH-2) begin //No change to FIFO //Write not successful ideal_wr_ack <= #`TCQ 0; //FIFO is really not close to full, so change flag status. ideal_wr_count <= #`TCQ num_write_words_sized_i; end //(tmp_wr_listsize == 0) end else begin //If the FIFO is full, do NOT perform the write, // update flags accordingly if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD >= C_FIFO_WR_DEPTH) begin //write unsuccessful - do not change contents //Do not acknowledge the write ideal_wr_ack <= #`TCQ 0; //Reminder that FIFO is still full ideal_wr_count <= #`TCQ num_write_words_sized_i; //If the FIFO is one from full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD == C_FIFO_WR_DEPTH-1) begin //Add value on DIN port to FIFO write_fifo; next_num_wr_bits = next_num_wr_bits + C_DIN_WIDTH; //Write successful, so issue acknowledge // and no error ideal_wr_ack <= #`TCQ 1; //This write is CAUSING the FIFO to go full ideal_wr_count <= #`TCQ num_write_words_sized_i; //If the FIFO is 2 from full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD == C_FIFO_WR_DEPTH-2) begin //Add value on DIN port to FIFO write_fifo; next_num_wr_bits = next_num_wr_bits + C_DIN_WIDTH; //Write successful, so issue acknowledge // and no error ideal_wr_ack <= #`TCQ 1; //Still 2 from full ideal_wr_count <= #`TCQ num_write_words_sized_i; //If the FIFO is not close to being full end else if ((tmp_wr_listsize + C_DEPTH_RATIO_RD - 1)/C_DEPTH_RATIO_RD < C_FIFO_WR_DEPTH-2) begin //Add value on DIN port to FIFO write_fifo; next_num_wr_bits = next_num_wr_bits + C_DIN_WIDTH; //Write successful, so issue acknowledge // and no error ideal_wr_ack <= #`TCQ 1; //Not even close to full. ideal_wr_count <= num_write_words_sized_i; end end end else begin //(WR_EN == 1'b1) //If user did not attempt a write, then do not // give ack or err ideal_wr_ack <= #`TCQ 0; ideal_wr_count <= #`TCQ num_write_words_sized_i; end num_wr_bits <= #`TCQ next_num_wr_bits; rd_ptr_wrclk <= #`TCQ rd_ptr; end //wr_rst_i==0 end // write always /*************************************************************************** * Programmable FULL flags ***************************************************************************/ always @(posedge WR_CLK or posedge RST_FULL_FF) begin : gen_pf if (RST_FULL_FF == 1'b1) begin diff_pntr <= 0; ideal_prog_full <= #`TCQ C_FULL_FLAGS_RST_VAL; end else begin if (ram_wr_en) diff_pntr <= #`TCQ (wr_pntr - adj_rd_pntr_wr + 2'h1); else if (!ram_wr_en) diff_pntr <= #`TCQ (wr_pntr - adj_rd_pntr_wr); if (RST_FULL_GEN) ideal_prog_full <= #`TCQ 0; //Single Programmable Full Constant Threshold else if (C_PROG_FULL_TYPE == 1) begin if (FULL == 0) begin if (diff_pntr >= C_PROG_FULL_THRESH_ASSERT_VAL) ideal_prog_full <= #`TCQ 1; else ideal_prog_full <= #`TCQ 0; end else ideal_prog_full <= #`TCQ ideal_prog_full; //Two Programmable Full Constant Thresholds end else if (C_PROG_FULL_TYPE == 2) begin if (FULL == 0) begin if (diff_pntr >= C_PROG_FULL_THRESH_ASSERT_VAL) ideal_prog_full <= #`TCQ 1; else if (diff_pntr < C_PROG_FULL_THRESH_NEGATE_VAL) ideal_prog_full <= #`TCQ 0; else ideal_prog_full <= #`TCQ ideal_prog_full; end else ideal_prog_full <= #`TCQ ideal_prog_full; //Single Programmable Full Threshold Input end else if (C_PROG_FULL_TYPE == 3) begin if (FULL == 0) begin if (diff_pntr >= PROG_FULL_THRESH) ideal_prog_full <= #`TCQ 1; else ideal_prog_full <= #`TCQ 0; end else ideal_prog_full <= #`TCQ ideal_prog_full; //Two Programmable Full Threshold Inputs end else if (C_PROG_FULL_TYPE == 4) begin if (FULL == 0) begin if (diff_pntr >= PROG_FULL_THRESH_ASSERT) ideal_prog_full <= #`TCQ 1; else if (diff_pntr < PROG_FULL_THRESH_NEGATE) ideal_prog_full <= #`TCQ 0; else ideal_prog_full <= #`TCQ ideal_prog_full; end else ideal_prog_full <= #`TCQ ideal_prog_full; end // C_PROG_FULL_TYPE end //wr_rst_i==0 end // /************************************************************************** * Read Domain Logic **************************************************************************/ /********************************************************* * Programmable EMPTY flags *********************************************************/ //Determine the Assert and Negate thresholds for Programmable Empty reg [C_RD_PNTR_WIDTH-1:0] pe_thr_assert_val = 0; reg [C_RD_PNTR_WIDTH-1:0] pe_thr_negate_val = 0; reg [C_RD_PNTR_WIDTH-1:0] diff_pntr_rd = 0; always @* begin if (C_PROG_EMPTY_TYPE == 3) begin // If empty input threshold is selected, then subtract 2 for FWFT to // compensate the FWFT stage, otherwise assign the input value. if (C_PRELOAD_REGS == 1 && C_PRELOAD_LATENCY == 0) // FWFT pe_thr_assert_val <= PROG_EMPTY_THRESH - 2'h2; else pe_thr_assert_val <= PROG_EMPTY_THRESH; end else if (C_PROG_EMPTY_TYPE == 4) begin // If empty input threshold is selected, then subtract 2 for FWFT to // compensate the FWFT stage, otherwise assign the input value. if (C_PRELOAD_REGS == 1 && C_PRELOAD_LATENCY == 0) begin // FWFT pe_thr_assert_val <= PROG_EMPTY_THRESH_ASSERT - 2'h2; pe_thr_negate_val <= PROG_EMPTY_THRESH_NEGATE - 2'h2; end else begin pe_thr_assert_val <= PROG_EMPTY_THRESH_ASSERT; pe_thr_negate_val <= PROG_EMPTY_THRESH_NEGATE; end end else begin if (C_PRELOAD_REGS == 1 && C_PRELOAD_LATENCY == 0) begin // FWFT pe_thr_assert_val <= C_PROG_EMPTY_THRESH_ASSERT_VAL - 2; pe_thr_negate_val <= C_PROG_EMPTY_THRESH_NEGATE_VAL - 2; end else begin pe_thr_assert_val <= C_PROG_EMPTY_THRESH_ASSERT_VAL; pe_thr_negate_val <= C_PROG_EMPTY_THRESH_NEGATE_VAL; end end end // always @* always @(posedge RD_CLK or posedge rd_rst_i) begin : gen_pe if (rd_rst_i) begin diff_pntr_rd <= #`TCQ 0; ideal_prog_empty <= #`TCQ 1'b1; end else begin if (ram_rd_en) diff_pntr_rd <= #`TCQ (adj_wr_pntr_rd - rd_pntr) - 1'h1; else if (!ram_rd_en) diff_pntr_rd <= #`TCQ (adj_wr_pntr_rd - rd_pntr); else diff_pntr_rd <= #`TCQ diff_pntr_rd; if (C_PROG_EMPTY_TYPE == 1) begin if (EMPTY == 0) begin if (diff_pntr_rd <= pe_thr_assert_val) ideal_prog_empty <= #`TCQ 1; else ideal_prog_empty <= #`TCQ 0; end else ideal_prog_empty <= #`TCQ ideal_prog_empty; end else if (C_PROG_EMPTY_TYPE == 2) begin if (EMPTY == 0) begin if (diff_pntr_rd <= pe_thr_assert_val) ideal_prog_empty <= #`TCQ 1; else if (diff_pntr_rd > pe_thr_negate_val) ideal_prog_empty <= #`TCQ 0; else ideal_prog_empty <= #`TCQ ideal_prog_empty; end else ideal_prog_empty <= #`TCQ ideal_prog_empty; end else if (C_PROG_EMPTY_TYPE == 3) begin if (EMPTY == 0) begin if (diff_pntr_rd <= pe_thr_assert_val) ideal_prog_empty <= #`TCQ 1; else ideal_prog_empty <= #`TCQ 0; end else ideal_prog_empty <= #`TCQ ideal_prog_empty; end else if (C_PROG_EMPTY_TYPE == 4) begin if (EMPTY == 0) begin if (diff_pntr_rd >= pe_thr_assert_val) ideal_prog_empty <= #`TCQ 1; else if (diff_pntr_rd > pe_thr_negate_val) ideal_prog_empty <= #`TCQ 0; else ideal_prog_empty <= #`TCQ ideal_prog_empty; end else ideal_prog_empty <= #`TCQ ideal_prog_empty; end //C_PROG_EMPTY_TYPE end end // block memory has a synchronous reset always @(posedge RD_CLK) begin : gen_fifo_blkmemdout // make it consistent with the core. if (rd_rst_i) begin // Reset err_type only if ECC is not selected if (C_USE_ECC == 0 && C_MEMORY_TYPE < 2) err_type <= #`TCQ 0; // BRAM resets synchronously if (C_USE_DOUT_RST == 1 && C_MEMORY_TYPE < 2) begin ideal_dout <= #`TCQ dout_reset_val; ideal_dout_d1 <= #`TCQ dout_reset_val; end end end //always always @(posedge RD_CLK or posedge rd_rst_i) begin : gen_fifo_r /****** Reset fifo (case 1)***************************************/ if (rd_rst_i) begin num_rd_bits <= #`TCQ 0; next_num_rd_bits = #`TCQ 0; rd_ptr <= #`TCQ C_RD_DEPTH -1; rd_pntr <= #`TCQ 0; rd_pntr_wr1 <= #`TCQ 0; wr_pntr_rd2 <= #`TCQ 0; wr_pntr_rd3 <= #`TCQ 0; wr_pntr_rd <= #`TCQ 0; wr_ptr_rdclk <= #`TCQ C_WR_DEPTH -1; // DRAM resets asynchronously if (C_MEMORY_TYPE == 2 && C_USE_DOUT_RST == 1) ideal_dout <= #`TCQ dout_reset_val; // Reset err_type only if ECC is not selected if (C_USE_ECC == 0) err_type <= #`TCQ 0; ideal_valid <= #`TCQ 1'b0; ideal_rd_count <= #`TCQ 0; end else begin //rd_rst_i==0 rd_pntr_wr1 <= #`TCQ rd_pntr; // Synchronize the wr_pntr in read domain wr_pntr_rd2 <= #`TCQ wr_pntr_rd1; wr_pntr_rd3 <= #`TCQ wr_pntr_rd2; wr_pntr_rd <= #`TCQ wr_pntr_rd3; //Determine the current number of words in the FIFO tmp_rd_listsize = (C_DEPTH_RATIO_WR > 1) ? num_rd_bits/C_DIN_WIDTH : num_rd_bits/C_DOUT_WIDTH; wr_ptr_rdclk_next = wr_ptr; if (wr_ptr_rdclk < wr_ptr_rdclk_next) begin next_num_rd_bits = num_rd_bits + C_DIN_WIDTH*(wr_ptr_rdclk +C_WR_DEPTH - wr_ptr_rdclk_next); end else begin next_num_rd_bits = num_rd_bits + C_DIN_WIDTH*(wr_ptr_rdclk - wr_ptr_rdclk_next); end /*****************************************************************/ // Read Operation - Read Latency 1 /*****************************************************************/ if (C_PRELOAD_LATENCY==1 || C_PRELOAD_LATENCY==2) begin ideal_valid <= #`TCQ 1'b0; if (ram_rd_en == 1'b1) begin if (EMPTY == 1'b1) begin //If the FIFO is completely empty, and is reporting empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Reminder that FIFO is still empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize <= 0) //If the FIFO is one from empty, but it is reporting empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 1) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Note that FIFO is no longer empty, but is almost empty (has one word left) ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize == 1) //If the FIFO is two from empty, and is reporting empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Fifo has two words, so is neither empty or almost empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize == 2) //If the FIFO is not close to empty, but is reporting that it is // Treat the FIFO as empty this time, but unset EMPTY flags. if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR 2) && (tmp_rd_listsize<=C_FIFO_RD_DEPTH-1)) end // else: if(ideal_empty == 1'b1) else //if (ideal_empty == 1'b0) begin //If the FIFO is completely full, and we are successfully reading from it if (tmp_rd_listsize/C_DEPTH_RATIO_WR >= C_FIFO_RD_DEPTH) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Not close to empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize == C_FIFO_RD_DEPTH) //If the FIFO is not close to being empty else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR<=C_FIFO_RD_DEPTH)) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Not close to empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if ((tmp_rd_listsize > 2) && (tmp_rd_listsize<=C_FIFO_RD_DEPTH-1)) //If the FIFO is two from empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Fifo is not yet empty. It is going almost_empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize == 2) //If the FIFO is one from empty else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR == 1)) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Note that FIFO is GOING empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize == 1) //If the FIFO is completely empty else if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize <= 0) end // if (ideal_empty == 1'b0) end //(RD_EN == 1'b1) else //if (RD_EN == 1'b0) begin //If user did not attempt a read, do not give an ack or err ideal_valid <= #`TCQ 1'b0; ideal_rd_count <= #`TCQ num_read_words_sized_i; end // else: !if(RD_EN == 1'b1) /*****************************************************************/ // Read Operation - Read Latency 0 /*****************************************************************/ end else if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin ideal_valid <= #`TCQ 1'b0; if (ram_rd_en == 1'b1) begin if (EMPTY == 1'b1) begin //If the FIFO is completely empty, and is reporting empty if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Reminder that FIFO is still empty ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is one from empty, but it is reporting empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 1) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Note that FIFO is no longer empty, but is almost empty (has one word left) ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is two from empty, and is reporting empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Fifo has two words, so is neither empty or almost empty ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is not close to empty, but is reporting that it is // Treat the FIFO as empty this time, but unset EMPTY flags. end else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR 2) && (tmp_rd_listsize<=C_FIFO_RD_DEPTH-1)) end else begin //If the FIFO is completely full, and we are successfully reading from it if (tmp_rd_listsize/C_DEPTH_RATIO_WR >= C_FIFO_RD_DEPTH) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Not close to empty ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is not close to being empty end else if ((tmp_rd_listsize/C_DEPTH_RATIO_WR > 2) && (tmp_rd_listsize/C_DEPTH_RATIO_WR<=C_FIFO_RD_DEPTH)) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Not close to empty ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is two from empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 2) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Fifo is not yet empty. It is going almost_empty ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is one from empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR == 1) begin //Read the value from the FIFO read_fifo; next_num_rd_bits = next_num_rd_bits - C_DOUT_WIDTH; //Acknowledge the read from the FIFO, no error ideal_valid <= #`TCQ 1'b1; //Note that FIFO is GOING empty ideal_rd_count <= #`TCQ num_read_words_sized_i; //If the FIFO is completely empty end else if (tmp_rd_listsize/C_DEPTH_RATIO_WR <= 0) begin //Do not change the contents of the FIFO //Do not acknowledge the read from empty FIFO ideal_valid <= #`TCQ 1'b0; //Reminder that FIFO is still empty ideal_rd_count <= #`TCQ num_read_words_sized_i; end // if (tmp_rd_listsize <= 0) end // if (ideal_empty == 1'b0) end else begin//(RD_EN == 1'b0) //If user did not attempt a read, do not give an ack or err ideal_valid <= #`TCQ 1'b0; ideal_rd_count <= #`TCQ num_read_words_sized_i; end // else: !if(RD_EN == 1'b1) end //if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) num_rd_bits <= #`TCQ next_num_rd_bits; wr_ptr_rdclk <= #`TCQ wr_ptr; end //rd_rst_i==0 end //always endmodule // fifo_generator_v6_1_bhv_ver_as /******************************************************************************* * Declaration of top-level module ******************************************************************************/ module fifo_generator_v6_1_bhv_ver_ss /************************************************************************** * Declare user parameters and their defaults *************************************************************************/ #( parameter C_DATA_COUNT_WIDTH = 2, parameter C_DIN_WIDTH = 8, parameter C_DOUT_RST_VAL = "", parameter C_DOUT_WIDTH = 8, parameter C_FULL_FLAGS_RST_VAL = 1, parameter C_HAS_ALMOST_EMPTY = 0, parameter C_HAS_ALMOST_FULL = 0, parameter C_HAS_DATA_COUNT = 0, parameter C_HAS_OVERFLOW = 0, parameter C_HAS_RD_DATA_COUNT = 0, parameter C_HAS_RST = 0, parameter C_HAS_SRST = 0, parameter C_HAS_UNDERFLOW = 0, parameter C_HAS_VALID = 0, parameter C_HAS_WR_ACK = 0, parameter C_HAS_WR_DATA_COUNT = 0, parameter C_IMPLEMENTATION_TYPE = 0, parameter C_MEMORY_TYPE = 1, parameter C_OVERFLOW_LOW = 0, parameter C_PRELOAD_LATENCY = 1, parameter C_PRELOAD_REGS = 0, parameter C_PROG_EMPTY_THRESH_ASSERT_VAL = 0, parameter C_PROG_EMPTY_THRESH_NEGATE_VAL = 0, parameter C_PROG_EMPTY_TYPE = 0, parameter C_PROG_FULL_THRESH_ASSERT_VAL = 0, parameter C_PROG_FULL_THRESH_NEGATE_VAL = 0, parameter C_PROG_FULL_TYPE = 0, parameter C_RD_DATA_COUNT_WIDTH = 2, parameter C_RD_DEPTH = 256, parameter C_RD_PNTR_WIDTH = 8, parameter C_UNDERFLOW_LOW = 0, parameter C_USE_DOUT_RST = 0, parameter C_USE_EMBEDDED_REG = 0, parameter C_USE_FWFT_DATA_COUNT = 0, parameter C_VALID_LOW = 0, parameter C_WR_ACK_LOW = 0, parameter C_WR_DATA_COUNT_WIDTH = 2, parameter C_WR_DEPTH = 256, parameter C_WR_PNTR_WIDTH = 8, parameter C_USE_ECC = 0, parameter C_ENABLE_RST_SYNC = 1, parameter C_ERROR_INJECTION_TYPE = 0 ) /************************************************************************** * Declare Input and Output Ports *************************************************************************/ ( //Inputs input CLK, input [C_DIN_WIDTH-1:0] DIN, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT, input [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT, input [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE, input RD_EN, input RST, input RST_FULL_GEN, input RST_FULL_FF, input SRST, input WR_EN, input INJECTDBITERR, input INJECTSBITERR, //Outputs output ALMOST_EMPTY, output ALMOST_FULL, output reg [C_DATA_COUNT_WIDTH-1:0] DATA_COUNT, output [C_DOUT_WIDTH-1:0] DOUT, output EMPTY, output FULL, output OVERFLOW, output PROG_EMPTY, output PROG_FULL, output VALID, output UNDERFLOW, output WR_ACK, output SBITERR, output DBITERR ); /*************************************************************************** * Parameters used as constants **************************************************************************/ //When RST is present, set FULL reset value to '1'. //If core has no RST, make sure FULL powers-on as '0'. //The reset value assignments for FULL, ALMOST_FULL, and PROG_FULL are not //changed for v3.2(IP2_Im). When the core has Sync Reset, C_HAS_SRST=1 and C_HAS_RST=0. // Therefore, during SRST, all the FULL flags reset to 0. parameter C_HAS_FAST_FIFO = 0; parameter C_FIFO_WR_DEPTH = C_WR_DEPTH; parameter C_FIFO_RD_DEPTH = C_RD_DEPTH; /************************************************************************** * FIFO Contents Tracking and Data Count Calculations *************************************************************************/ // Memory which will be used to simulate a FIFO reg [C_DIN_WIDTH-1:0] memory[C_WR_DEPTH-1:0]; // Local parameters used to determine whether to inject ECC error or not localparam SYMMETRIC_PORT = (C_DIN_WIDTH == C_DOUT_WIDTH) ? 1 : 0; localparam ERR_INJECTION = (C_ERROR_INJECTION_TYPE != 0) ? 1 : 0; localparam ENABLE_ERR_INJECTION = C_USE_ECC && SYMMETRIC_PORT && ERR_INJECTION; // Array that holds the error injection type (single/double bit error) on // a specific write operation, which is returned on read to corrupt the // output data. reg [1:0] ecc_err[C_WR_DEPTH-1:0]; //The amount of data stored in the FIFO at any time is given // by num_bits. //num_bits is calculated by from the total words in the FIFO. reg [31:0] num_bits; //The write pointer - tracks write operations // (Works opposite to core: wr_ptr is a DOWN counter) reg [31:0] wr_ptr; //The write pointer - tracks read operations // (Works opposite to core: rd_ptr is a DOWN counter) reg [31:0] rd_ptr; /************************** * Data Count *************************/ //Amount of data stored in the FIFO scaled to read words wire [31:0] num_read_words = num_bits/C_DOUT_WIDTH; //num_read_words delayed 1 clock cycle reg [31:0] num_read_words_q; //Amount of data stored in the FIFO scaled to write words wire [31:0] num_write_words = num_bits/C_DIN_WIDTH; //num_write_words delayed 1 clock cycle reg [31:0] num_write_words_q; /************************************************************************** * Internal Registers and wires *************************************************************************/ //Temporary signals used for calculating the model's outputs. These //are only used in the assign statements immediately following wire, //parameter, and function declarations. wire underflow_i; wire valid_i; wire valid_out; //Ideal FIFO signals. These are the raw output of the behavioral model, //which behaves like an ideal FIFO. reg [1:0] err_type = 0; reg [1:0] err_type_d1 = 0; reg [C_DOUT_WIDTH-1:0] ideal_dout = 0; reg [C_DOUT_WIDTH-1:0] ideal_dout_d1 = 0; wire [C_DOUT_WIDTH-1:0] ideal_dout_out; wire fwft_enabled; reg ideal_wr_ack = 0; reg ideal_valid = 0; reg ideal_overflow = 0; reg ideal_underflow = 0; reg ideal_full = 0; reg ideal_empty = 1; reg ideal_almost_full = 0; reg ideal_almost_empty = 1; reg ideal_prog_full = 0; reg ideal_prog_empty = 1; //Assorted reg values for delayed versions of signals reg valid_d1 = 0; reg prog_full_d = 0; reg prog_empty_d = 1; wire rst_i; wire srst_i; //Delayed version of RST reg rst_q; reg rst_qq; //user specified value for reseting the size of the fifo reg [C_DOUT_WIDTH-1:0] dout_reset_val = 0; /**************************************************************************** * Function Declarations ***************************************************************************/ /************************************************************************** * write_fifo * This task writes a word to the FIFO memory and updates the * write pointer. * FIFO size is relative to write domain. ***************************************************************************/ task write_fifo; reg [1:0] corrupted_data; begin memory[wr_ptr] <= DIN; // Store the type of error injection (double/single) on write case (C_ERROR_INJECTION_TYPE) 3: ecc_err[wr_ptr] <= {INJECTDBITERR,INJECTSBITERR}; 2: ecc_err[wr_ptr] <= {INJECTDBITERR,1'b0}; 1: ecc_err[wr_ptr] <= {1'b0,INJECTSBITERR}; default: ecc_err[wr_ptr] <= 0; endcase if (wr_ptr == 0) begin wr_ptr <= C_WR_DEPTH - 1; end else begin wr_ptr <= wr_ptr - 1; end end endtask // write_fifo /************************************************************************** * read_fifo * This task reads a word from the FIFO memory and updates the read * pointer. It's output is the ideal_dout bus. * FIFO size is relative to write domain. ***************************************************************************/ task read_fifo; reg [C_DOUT_WIDTH-1:0] tmp_dout; reg [1:0] tmp_ecc_err; begin tmp_dout = memory[rd_ptr][C_DOUT_WIDTH-1:0]; // Retreive the error injection type. Based on the error injection type // corrupt the output data. tmp_ecc_err = ecc_err[rd_ptr]; if (ENABLE_ERR_INJECTION) begin if (tmp_ecc_err[1]) begin // Corrupt the output data only for double bit error if (C_DOUT_WIDTH == 1) tmp_dout = tmp_dout[C_DOUT_WIDTH-1:0]; else if (C_DOUT_WIDTH == 2) tmp_dout = {~tmp_dout[C_DOUT_WIDTH-1],~tmp_dout[C_DOUT_WIDTH-2]}; else tmp_dout = {~tmp_dout[C_DOUT_WIDTH-1],~tmp_dout[C_DOUT_WIDTH-2],(tmp_dout << 2)}; end else begin tmp_dout = tmp_dout[C_DOUT_WIDTH-1:0]; end err_type <= {tmp_ecc_err[1], tmp_ecc_err[0] & !tmp_ecc_err[1]}; end else begin err_type <= 0; end ideal_dout <= tmp_dout; if (rd_ptr == 0) begin rd_ptr <= C_RD_DEPTH - 1; end else begin rd_ptr <= rd_ptr - 1; end end endtask /**************************************************************************** * log2_val * Returns the 'log2' value for the input value for the supported ratios ***************************************************************************/ function [31:0] log2_val; input [31:0] binary_val; begin if (binary_val == 8) begin log2_val = 3; end else if (binary_val == 4) begin log2_val = 2; end else begin log2_val = 1; end end endfunction /**************************************************************************** * hexstr_conv * Converts a string of type hex to a binary value (for C_DOUT_RST_VAL) ***************************************************************************/ function [C_DOUT_WIDTH-1:0] hexstr_conv; input [(C_DOUT_WIDTH*8)-1:0] def_data; integer index,i,j; reg [3:0] bin; begin index = 0; hexstr_conv = 'b0; for( i=C_DOUT_WIDTH-1; i>=0; i=i-1 ) begin case (def_data[7:0]) 8'b00000000 : begin bin = 4'b0000; i = -1; end 8'b00110000 : bin = 4'b0000; 8'b00110001 : bin = 4'b0001; 8'b00110010 : bin = 4'b0010; 8'b00110011 : bin = 4'b0011; 8'b00110100 : bin = 4'b0100; 8'b00110101 : bin = 4'b0101; 8'b00110110 : bin = 4'b0110; 8'b00110111 : bin = 4'b0111; 8'b00111000 : bin = 4'b1000; 8'b00111001 : bin = 4'b1001; 8'b01000001 : bin = 4'b1010; 8'b01000010 : bin = 4'b1011; 8'b01000011 : bin = 4'b1100; 8'b01000100 : bin = 4'b1101; 8'b01000101 : bin = 4'b1110; 8'b01000110 : bin = 4'b1111; 8'b01100001 : bin = 4'b1010; 8'b01100010 : bin = 4'b1011; 8'b01100011 : bin = 4'b1100; 8'b01100100 : bin = 4'b1101; 8'b01100101 : bin = 4'b1110; 8'b01100110 : bin = 4'b1111; default : begin bin = 4'bx; end endcase for( j=0; j<4; j=j+1) begin if ((index*4)+j < C_DOUT_WIDTH) begin hexstr_conv[(index*4)+j] = bin[j]; end end index = index + 1; def_data = def_data >> 8; end end endfunction /************************************************************************* * Initialize Signals for clean power-on simulation *************************************************************************/ initial begin num_bits = 0; num_read_words_q = 0; num_write_words_q = 0; rd_ptr = C_RD_DEPTH -1; wr_ptr = C_WR_DEPTH -1; dout_reset_val = hexstr_conv(C_DOUT_RST_VAL); ideal_dout = dout_reset_val; err_type = 0; ideal_wr_ack = 1'b0; ideal_valid = 1'b0; valid_d1 = 1'b0; ideal_overflow = 1'b0; ideal_underflow = 1'b0; ideal_full = 1'b0; ideal_empty = 1'b1; ideal_almost_full = 1'b0; ideal_almost_empty = 1'b1; ideal_prog_full = 1'b0; ideal_prog_empty = 1'b1; prog_full_d = 1'b0; prog_empty_d = 1'b1; rst_q = 1'b0; rst_qq = 1'b0; end /************************************************************************* * Connect the module inputs and outputs to the internal signals of the * behavioral model. *************************************************************************/ //Inputs /* wire CLK; wire [C_DIN_WIDTH-1:0] DIN; wire [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH; wire [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_ASSERT; wire [C_RD_PNTR_WIDTH-1:0] PROG_EMPTY_THRESH_NEGATE; wire [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH; wire [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_ASSERT; wire [C_WR_PNTR_WIDTH-1:0] PROG_FULL_THRESH_NEGATE; wire RD_EN; wire RST; wire WR_EN; */ //Outputs generate if (C_HAS_ALMOST_EMPTY==1) begin : blockAE10 assign ALMOST_EMPTY = ideal_almost_empty; end endgenerate generate if (C_HAS_ALMOST_FULL==1) begin : blockAF10 assign ALMOST_FULL = ideal_almost_full; end endgenerate //Dout may change behavior based on latency assign fwft_enabled = (C_PRELOAD_LATENCY == 0 && C_PRELOAD_REGS == 1)? 1: 0; assign ideal_dout_out= ((C_USE_EMBEDDED_REG==1 && (fwft_enabled == 0)) && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? ideal_dout_d1: ideal_dout; assign DOUT = ideal_dout_out; // Assign SBITERR and DBITERR based on latency assign SBITERR = (C_ERROR_INJECTION_TYPE == 1 || C_ERROR_INJECTION_TYPE == 3) && ((C_USE_EMBEDDED_REG==1 && (fwft_enabled == 0)) && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1)) ? err_type_d1[0]: err_type[0]; assign DBITERR = (C_ERROR_INJECTION_TYPE == 2 || C_ERROR_INJECTION_TYPE == 3) && ((C_USE_EMBEDDED_REG==1 && (fwft_enabled == 0)) && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1)) ? err_type_d1[1]: err_type[1]; assign EMPTY = ideal_empty; assign FULL = ideal_full; //Overflow may be active-low generate if (C_HAS_OVERFLOW==1) begin : blockOF10 assign OVERFLOW = ideal_overflow ? !C_OVERFLOW_LOW : C_OVERFLOW_LOW; end endgenerate assign PROG_EMPTY = ideal_prog_empty; assign PROG_FULL = ideal_prog_full; //Valid may change behavior based on latency or active-low generate if (C_HAS_VALID==1) begin : blockVL10 assign valid_i = (C_PRELOAD_LATENCY==0) ? (RD_EN & ~EMPTY) : ideal_valid; assign valid_out = (C_PRELOAD_LATENCY==2 && (C_MEMORY_TYPE==0 || C_MEMORY_TYPE==1))? valid_d1: valid_i; assign VALID = valid_out ? !C_VALID_LOW : C_VALID_LOW; end endgenerate //Trim data count differently depending on set widths generate if ((C_HAS_DATA_COUNT == 1) && (C_DATA_COUNT_WIDTH > C_RD_PNTR_WIDTH)) begin : blockDC1 always @(num_read_words) DATA_COUNT = num_read_words[C_RD_PNTR_WIDTH:0]; end else if (C_HAS_DATA_COUNT == 1) begin : blockDC2 always @(num_read_words) DATA_COUNT = num_read_words[C_RD_PNTR_WIDTH-1:C_RD_PNTR_WIDTH-C_DATA_COUNT_WIDTH]; end //if endgenerate //Underflow may change behavior based on latency or active-low generate if (C_HAS_UNDERFLOW==1) begin : blockUF10 assign underflow_i = ideal_underflow; assign UNDERFLOW = underflow_i ? !C_UNDERFLOW_LOW : C_UNDERFLOW_LOW; end endgenerate //Write acknowledge may be active low generate if (C_HAS_WR_ACK==1) begin : blockWK10 assign WR_ACK = ideal_wr_ack ? !C_WR_ACK_LOW : C_WR_ACK_LOW; end endgenerate /***************************************************************************** * Internal reset logic ****************************************************************************/ assign srst_i = C_HAS_SRST ? SRST : 0; assign rst_i = C_HAS_RST ? RST : 0; /************************************************************************** * Assorted registers for delayed versions of signals **************************************************************************/ //Capture delayed version of valid generate if (C_HAS_VALID==1) begin : blockVL20 always @(posedge CLK or posedge rst_i) begin if (rst_i == 1'b1) begin valid_d1 <= #`TCQ 1'b0; end else begin if (srst_i) begin valid_d1 <= #`TCQ 1'b0; end else begin valid_d1 <= #`TCQ valid_i; end end end // always @ (posedge CLK or posedge rst_i) end endgenerate // block memory has a synchronous reset always @(posedge CLK) begin : gen_fifo_blkmemdout_emb // make it consistent with the core. if (rst_i || srst_i) begin // BRAM resets synchronously if (C_USE_DOUT_RST == 1 && C_MEMORY_TYPE < 2) begin ideal_dout_d1 <= #`TCQ dout_reset_val; end end end //always reg ram_rd_en_d1 = 1'b0; //Capture delayed version of dout always @(posedge CLK or posedge rst_i) begin if (rst_i == 1'b1) begin // Reset err_type only if ECC is not selected if (C_USE_ECC == 0) err_type_d1 <= #`TCQ 0; // DRAM and SRAM reset asynchronously if ((C_MEMORY_TYPE == 2 || C_MEMORY_TYPE == 3) && C_USE_DOUT_RST == 1) ideal_dout_d1 <= #`TCQ dout_reset_val; ram_rd_en_d1 <= #`TCQ 1'b0; end else begin ram_rd_en_d1 <= #`TCQ RD_EN & !EMPTY; if (srst_i) begin ram_rd_en_d1 <= #`TCQ 1'b0; // Reset err_type only if ECC is not selected if (C_USE_ECC == 0) err_type_d1 <= #`TCQ 0; // Reset DRAM and SRAM based FIFO, BRAM based FIFO is reset above if ((C_MEMORY_TYPE == 2 || C_MEMORY_TYPE == 3) && C_USE_DOUT_RST == 1) ideal_dout_d1 <= #`TCQ dout_reset_val; end else if (ram_rd_en_d1) begin ideal_dout_d1 <= #`TCQ ideal_dout; err_type_d1 <= #`TCQ err_type; end end end /************************************************************************** * Overflow and Underflow Flag calculation * (handled separately because they don't support rst) **************************************************************************/ generate if (C_HAS_OVERFLOW==1) begin : blockOF20 always @(posedge CLK) begin ideal_overflow <= #`TCQ WR_EN & ideal_full; end end endgenerate generate if (C_HAS_UNDERFLOW==1) begin : blockUF20 always @(posedge CLK) begin ideal_underflow <= #`TCQ ideal_empty & RD_EN; end end endgenerate /************************************************************************* * Write and Read Logic ************************************************************************/ always @(posedge CLK or posedge rst_i) begin : gen_wr_ack_resp //Register reset rst_q <= #`TCQ rst_i; rst_qq <= #`TCQ rst_q; end // block: gen_wr_ack_resp // block memory has a synchronous reset always @(posedge CLK) begin : gen_fifo_blkmemdout //Changed the latency of during async reset to '1' instead of '2' to // make it consistent with the core. if (rst_i || rst_q || srst_i) begin // Reset err_type only if ECC is not selected if (C_USE_ECC == 0 && C_MEMORY_TYPE == 1) err_type <= #`TCQ 0; /******Initialize Read Domain Signals*********************************/ if (C_USE_DOUT_RST == 1 && C_MEMORY_TYPE < 2) begin ideal_dout <= #`TCQ dout_reset_val; end end end //always // FULL_FLAG_RESET value given for SRST as well. reg srst_i_d1 = 0; reg srst_i_d2 = 0; always @(posedge CLK or posedge RST_FULL_FF) begin : gen_fifo /****** Reset fifo - Asynchronous Reset**********************************/ //Changed the latency of during async reset to '1' instead of '2' to // make it consistent with the core. if (RST_FULL_FF) begin //v3.2 /******Initialize Generic FIFO constructs*****************************/ num_bits <= #`TCQ 0; wr_ptr <= #`TCQ C_WR_DEPTH - 1; rd_ptr <= #`TCQ C_RD_DEPTH - 1; num_read_words_q <= #`TCQ 0; num_write_words_q <= #`TCQ 0; // Reset err_type only if ECC is not selected if (C_USE_ECC == 0 && C_MEMORY_TYPE != 1) err_type <= #`TCQ 0; /******Initialize Write Domain Signals********************************/ ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ C_FULL_FLAGS_RST_VAL; ideal_almost_full <= #`TCQ C_FULL_FLAGS_RST_VAL; /******Initialize Read Domain Signals*********************************/ // DRAM and SRAM reset asynchronously if (C_USE_DOUT_RST == 1 && (C_MEMORY_TYPE == 2 || C_MEMORY_TYPE == 3)) begin ideal_dout <= #`TCQ dout_reset_val; end ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b1; ideal_almost_empty <= #`TCQ 1'b1; end else begin // Register SRST twice to be consistant with RST behavior srst_i_d1 <= #`TCQ srst_i; srst_i_d2 <= #`TCQ srst_i_d1; if (srst_i) begin // SRST is available only for Sync BRAM, DRAM and SRAM. if (C_MEMORY_TYPE == 1 || C_MEMORY_TYPE == 2 || C_MEMORY_TYPE == 3) begin /******Initialize Generic FIFO constructs***********************/ num_bits <= #`TCQ 0; wr_ptr <= #`TCQ C_WR_DEPTH - 1; rd_ptr <= #`TCQ C_RD_DEPTH - 1; num_read_words_q <= #`TCQ 0; num_write_words_q <= #`TCQ 0; // Reset err_type only if ECC is not selected if (C_USE_ECC == 0) err_type <= #`TCQ 0; /******Initialize Write Domain Signals**************************/ ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ C_FULL_FLAGS_RST_VAL; ideal_almost_full <= #`TCQ C_FULL_FLAGS_RST_VAL; /******Initialize Read Domain Signals***************************/ //Reset DOUT of Sync DRAM/Shift RAM. Sync BRAM DOUT was reset in the // above always block. if (C_USE_DOUT_RST == 1 && (C_MEMORY_TYPE == 2 || C_MEMORY_TYPE == 3)) begin ideal_dout <= #`TCQ dout_reset_val; end ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b1; ideal_almost_empty <= #`TCQ 1'b1; end end else if ((srst_i_d1 || srst_i_d2) && (C_FULL_FLAGS_RST_VAL == 1)) begin //Hold full flag reset value set during RST/SRST ideal_full <= #`TCQ C_FULL_FLAGS_RST_VAL; ideal_almost_full <= #`TCQ C_FULL_FLAGS_RST_VAL; end else begin //normal operating conditions /********************************************************************/ // Synchronous FIFO Condition #1 : Writing and not reading /********************************************************************/ ideal_valid <= #`TCQ 1'b0; if (WR_EN & ~RD_EN) begin /*********************************/ //If the FIFO is full, do NOT perform the write, // update flags accordingly /*********************************/ if (num_write_words >= C_FIFO_WR_DEPTH) begin ideal_wr_ack <= #`TCQ 0; //still full ideal_full <= #`TCQ 1'b1; ideal_almost_full <= #`TCQ 1'b1; //write unsuccessful - do not change contents // no read attempted ideal_valid <= #`TCQ 1'b0; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; /*********************************/ //If the FIFO is reporting FULL // (Startup condition) /*********************************/ end else if ((num_write_words < C_FIFO_WR_DEPTH) && (ideal_full == 1'b1)) begin ideal_wr_ack <= #`TCQ 0; //still full ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //write unsuccessful - do not change contents // no read attempted ideal_valid <= #`TCQ 1'b0; //FIFO EMPTY in this state can not be determined //ideal_empty <= 1'b0; //ideal_almost_empty <= 1'b0; /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //good write ideal_wr_ack <= #`TCQ 1; //FIFO is one from FULL and going FULL ideal_full <= #`TCQ 1'b1; ideal_almost_full <= #`TCQ 1'b1; //Add input data write_fifo; // no read attempted ideal_valid <= #`TCQ 1'b0; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; num_bits <= num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is 2 from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-2) begin //good write ideal_wr_ack <= #`TCQ 1; //2 from full, and writing, so set almost_full ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b1; //Add input data write_fifo; //no read attempted ideal_valid <= #`TCQ 1'b0; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; num_bits <= #`TCQ num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //good write ideal_wr_ack <= #`TCQ 1; //Not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Add input data write_fifo; // no read attempted ideal_valid <= #`TCQ 1'b0; //Leaving ALMOST_EMPTY ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; num_bits <= #`TCQ num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is EMPTY /*********************************/ end else if (num_read_words == 0) begin // good write ideal_wr_ack <= #`TCQ 1; //Not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Add input data write_fifo; // no read attempted ideal_valid <= #`TCQ 1'b0; //Leaving EMPTY (still ALMOST_EMPTY) ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b1; num_bits <= #`TCQ num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin // good write ideal_wr_ack <= #`TCQ 1; //Not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Add input data write_fifo; // no read attempted ideal_valid <= #`TCQ 1'b0; //Not near EMPTY ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; num_bits <= #`TCQ num_bits + C_DIN_WIDTH; end // average case /******************************************************************/ // Synchronous FIFO Condition #2 : Reading and not writing /******************************************************************/ end else if (~WR_EN & RD_EN) begin /*********************************/ //If the FIFO is EMPTY /*********************************/ if ((num_read_words == 0) || (ideal_empty == 1'b1)) begin //no write attemped ideal_wr_ack <= #`TCQ 0; //FIFO is not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Read will fail ideal_valid <= #`TCQ 1'b0; //FIFO is still empty ideal_empty <= #`TCQ 1'b1; ideal_almost_empty <= #`TCQ 1'b1; //No read /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //no write attempted ideal_wr_ack <= #`TCQ 0; //FIFO is not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Read successful ideal_valid <= #`TCQ 1'b1; //This read will make FIFO go empty ideal_empty <= #`TCQ 1'b1; ideal_almost_empty <= #`TCQ 1'b1; //Get the data from the FIFO read_fifo; num_bits <= #`TCQ num_bits - C_DIN_WIDTH; /*********************************/ //If the FIFO is 2 from EMPTY /*********************************/ end else if (num_read_words == 2) begin //no write attempted ideal_wr_ack <= #`TCQ 0; //FIFO is not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Read successful ideal_valid <= #`TCQ 1'b1; //FIFO is going ALMOST_EMPTY ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b1; //Get the data from the FIFO read_fifo; num_bits <= #`TCQ num_bits - C_DOUT_WIDTH; /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //no write attempted ideal_wr_ack <= #`TCQ 0; //FIFO is leaving ALMOST FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Read successful ideal_valid <= #`TCQ 1'b1; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits - C_DOUT_WIDTH; /*********************************/ // FIFO is FULL /*********************************/ end else if (num_write_words >= C_FIFO_WR_DEPTH) begin //no write attempted ideal_wr_ack <= #`TCQ 0; //FIFO is leaving FULL, but is still ALMOST_FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b1; //Read successful ideal_valid <= #`TCQ 1'b1; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits - C_DOUT_WIDTH; /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin //no write attemped ideal_wr_ack <= #`TCQ 0; //Not near empty ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Read successful ideal_valid <= #`TCQ 1'b1; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits - C_DOUT_WIDTH; end // average read /******************************************************************/ // Synchronous FIFO Condition #3 : Reading and writing /******************************************************************/ end else if (WR_EN & RD_EN) begin /*********************************/ // FIFO is FULL /*********************************/ if (num_write_words >= C_FIFO_WR_DEPTH) begin ideal_wr_ack <= #`TCQ 0; //Read will be successful, so FIFO will leave FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b1; //Read successful ideal_valid <= #`TCQ 1'b1; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits - C_DOUT_WIDTH; /*********************************/ // FIFO is reporting FULL, but it is empty // (This is a special case, when coming out of RST /*********************************/ end else if ((num_write_words == 0) && (ideal_full == 1'b1)) begin ideal_wr_ack <= #`TCQ 0; //Read will be successful, so FIFO will leave FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //Read unsuccessful ideal_valid <= #`TCQ 1'b0; //Report empty condition ideal_empty <= #`TCQ 1'b1; ideal_almost_empty <= #`TCQ 1'b1; //Do not read from empty FIFO // Read from the FIFO /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //Write successful ideal_wr_ack <= #`TCQ 1; //FIFO will remain ALMOST_FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b1; // put the data into the FIFO write_fifo; //Read successful ideal_valid <= #`TCQ 1'b1; //Not near empty ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits + C_DIN_WIDTH - C_DOUT_WIDTH; /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //Write successful ideal_wr_ack <= #`TCQ 1; // Not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; // put the data into the FIFO write_fifo; //Read successful ideal_valid <= #`TCQ 1'b1; //FIFO will stay ALMOST_EMPTY ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b1; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits + C_DIN_WIDTH - C_DOUT_WIDTH; /*********************************/ //If the FIFO is EMPTY /*********************************/ end else if (num_read_words == 0) begin //Write successful ideal_wr_ack <= #`TCQ 1; // Not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; // put the data into the FIFO write_fifo; //Read will fail ideal_valid <= #`TCQ 1'b0; //FIFO will leave EMPTY ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b1; // No read num_bits <= #`TCQ num_bits + C_DIN_WIDTH; /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin //Write successful ideal_wr_ack <= #`TCQ 1; // Not near FULL ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; // put the data into the FIFO write_fifo; //Read successful ideal_valid <= #`TCQ 1'b1; // Not near EMPTY ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //Read from the FIFO read_fifo; num_bits <= #`TCQ num_bits + C_DIN_WIDTH - C_DOUT_WIDTH; end // average case /******************************************************************/ // Synchronous FIFO Condition #4 : Not reading or writing /******************************************************************/ end else begin /*********************************/ // FIFO is FULL /*********************************/ if (num_write_words >= C_FIFO_WR_DEPTH) begin //No write ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ 1'b1; ideal_almost_full <= #`TCQ 1'b1; //No read ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //No change to memory /*********************************/ //If the FIFO is one from full /*********************************/ end else if (num_write_words == C_FIFO_WR_DEPTH-1) begin //No write ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b1; //No read ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //No change to memory /*********************************/ //If the FIFO is ALMOST EMPTY /*********************************/ end else if (num_read_words == 1) begin //No write ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //No read ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b1; //No change to memory end // almost empty /*********************************/ //If the FIFO is EMPTY /*********************************/ else if (num_read_words == 0) begin //No write ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //No read ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b1; ideal_almost_empty <= #`TCQ 1'b1; //No change to memory /*********************************/ //If the FIFO is not near EMPTY or FULL /*********************************/ end else begin //No write ideal_wr_ack <= #`TCQ 0; ideal_full <= #`TCQ 1'b0; ideal_almost_full <= #`TCQ 1'b0; //No read ideal_valid <= #`TCQ 1'b0; ideal_empty <= #`TCQ 1'b0; ideal_almost_empty <= #`TCQ 1'b0; //No change to memory end // average case end // neither reading or writing num_read_words_q <= #`TCQ num_read_words; num_write_words_q <= #`TCQ num_write_words; end //normal operating conditions end end // block: gen_fifo always @(posedge CLK or posedge RST_FULL_FF) begin : gen_fifo_p /****** Reset fifo - Async Reset****************************************/ //The latency of de-assertion of the flags is reduced by 1 to be // consistent with the core. if (RST_FULL_FF) begin ideal_prog_full <= #`TCQ C_FULL_FLAGS_RST_VAL; ideal_prog_empty <= #`TCQ 1'b1; prog_full_d <= #`TCQ C_FULL_FLAGS_RST_VAL; prog_empty_d <= #`TCQ 1'b1; end else begin if (srst_i) begin //SRST is available only for Sync BRAM and Sync DRAM. Not for SSHFT. if (C_MEMORY_TYPE == 1 || C_MEMORY_TYPE == 2 || C_MEMORY_TYPE == 3) begin ideal_prog_empty <= #`TCQ 1'b1; prog_empty_d <= #`TCQ 1'b1; ideal_prog_full <= #`TCQ C_FULL_FLAGS_RST_VAL; prog_full_d <= #`TCQ C_FULL_FLAGS_RST_VAL; end end else if ((srst_i_d1 || srst_i_d2) && (C_FULL_FLAGS_RST_VAL == 1)) begin ideal_prog_full <= #`TCQ C_FULL_FLAGS_RST_VAL; prog_full_d <= #`TCQ C_FULL_FLAGS_RST_VAL; end else begin /*************************************************************** * Programmable FULL flags ****************************************************************/ //calculation for standard fifo and latency =2 if (! (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) ) begin //Single constant threshold if (C_PROG_FULL_TYPE == 1) begin if ((num_write_words >= C_PROG_FULL_THRESH_ASSERT_VAL-1) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if (((num_write_words == C_PROG_FULL_THRESH_ASSERT_VAL) && RD_EN && !WR_EN) || (RST_FULL_GEN)) begin prog_full_d <= #`TCQ 1'b0; end //Dual constant thresholds end else if (C_PROG_FULL_TYPE == 2) begin if ((num_write_words == C_PROG_FULL_THRESH_ASSERT_VAL-1) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if ((num_write_words == C_PROG_FULL_THRESH_NEGATE_VAL) && RD_EN && !WR_EN) begin prog_full_d <= #`TCQ 1'b0; end //Single input threshold end else if (C_PROG_FULL_TYPE == 3) begin if ((num_write_words == PROG_FULL_THRESH-1) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if ((num_write_words == PROG_FULL_THRESH) && !WR_EN && RD_EN) begin prog_full_d <= #`TCQ 1'b0; end else if (num_write_words >= PROG_FULL_THRESH) begin prog_full_d <= #`TCQ 1'b1; end else if (num_write_words < PROG_FULL_THRESH) begin prog_full_d <= #`TCQ 1'b0; end //Dual input thresholds end else begin if ((num_write_words == PROG_FULL_THRESH_ASSERT-1) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if ((num_write_words == PROG_FULL_THRESH_NEGATE) && !WR_EN && RD_EN)begin prog_full_d <= #`TCQ 1'b0; end else if (num_write_words >= PROG_FULL_THRESH_ASSERT) begin prog_full_d <= #`TCQ 1'b1; end else if (num_write_words < PROG_FULL_THRESH_NEGATE) begin prog_full_d <= #`TCQ 1'b0; end end end // (~ (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) ) //calculation for FWFT fifo if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin if (C_PROG_FULL_TYPE == 1) begin if ((num_write_words >= C_PROG_FULL_THRESH_ASSERT_VAL-1 - 2) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if (((num_write_words == C_PROG_FULL_THRESH_ASSERT_VAL - 2) && RD_EN && !WR_EN) || (RST_FULL_GEN)) begin prog_full_d <= #`TCQ 1'b0; end //Dual constant thresholds end else if (C_PROG_FULL_TYPE == 2) begin if ((num_write_words == C_PROG_FULL_THRESH_ASSERT_VAL-1 - 2) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if ((num_write_words == C_PROG_FULL_THRESH_NEGATE_VAL - 2) && RD_EN && !WR_EN) begin prog_full_d <= #`TCQ 1'b0; end //Single input threshold end else if (C_PROG_FULL_TYPE == 3) begin if ((num_write_words == PROG_FULL_THRESH-1 - 2) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if ((num_write_words == PROG_FULL_THRESH - 2) && !WR_EN && RD_EN) begin prog_full_d <= #`TCQ 1'b0; end else if (num_write_words >= PROG_FULL_THRESH - 2) begin prog_full_d <= #`TCQ 1'b1; end else if (num_write_words < PROG_FULL_THRESH - 2) begin prog_full_d <= #`TCQ 1'b0; end //Dual input thresholds end else begin if ((num_write_words == PROG_FULL_THRESH_ASSERT-1 - 2) && WR_EN && !RD_EN) begin prog_full_d <= #`TCQ 1'b1; end else if ((num_write_words == PROG_FULL_THRESH_NEGATE - 2) && !WR_EN && RD_EN)begin prog_full_d <= #`TCQ 1'b0; end else if (num_write_words >= PROG_FULL_THRESH_ASSERT - 2) begin prog_full_d <= #`TCQ 1'b1; end else if (num_write_words < PROG_FULL_THRESH_NEGATE - 2) begin prog_full_d <= #`TCQ 1'b0; end end end // (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) /***************************************************************** * Programmable EMPTY flags ****************************************************************/ //calculation for standard fifo and latency = 2 if (! (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) ) begin //Single constant threshold if (C_PROG_EMPTY_TYPE == 1) begin if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL+1) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL) && WR_EN && !RD_EN) begin prog_empty_d <= #`TCQ 1'b0; end //Dual constant thresholds end else if (C_PROG_EMPTY_TYPE == 2) begin if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL+1) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == C_PROG_EMPTY_THRESH_NEGATE_VAL) && !RD_EN && WR_EN) begin prog_empty_d <= #`TCQ 1'b0; end //Single input threshold end else if (C_PROG_EMPTY_TYPE == 3) begin if ((num_read_words == PROG_EMPTY_THRESH+1) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == PROG_EMPTY_THRESH) && !RD_EN && WR_EN) begin prog_empty_d <= #`TCQ 1'b0; end else if (num_read_words <= PROG_EMPTY_THRESH) begin prog_empty_d <= #`TCQ 1'b1; end else if (num_read_words > PROG_EMPTY_THRESH)begin prog_empty_d <= #`TCQ 1'b0; end //Dual input thresholds end else begin if (num_read_words <= PROG_EMPTY_THRESH_ASSERT) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == PROG_EMPTY_THRESH_ASSERT+1) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if (num_read_words > PROG_EMPTY_THRESH_NEGATE)begin prog_empty_d <= #`TCQ 1'b0; end else if ((num_read_words == PROG_EMPTY_THRESH_NEGATE) && !RD_EN && WR_EN) begin prog_empty_d <= #`TCQ 1'b0; end end end // (~ (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) ) //calculation for FWFT fifo if (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) begin //Single constant threshold if (C_PROG_EMPTY_TYPE == 1) begin if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL+1 - 2) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL - 2) && WR_EN && !RD_EN) begin prog_empty_d <= #`TCQ 1'b0; end //Dual constant thresholds end else if (C_PROG_EMPTY_TYPE == 2) begin if ((num_read_words == C_PROG_EMPTY_THRESH_ASSERT_VAL+1 - 2) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == C_PROG_EMPTY_THRESH_NEGATE_VAL - 2) && !RD_EN && WR_EN) begin prog_empty_d <= #`TCQ 1'b0; end //Single input threshold end else if (C_PROG_EMPTY_TYPE == 3) begin if ((num_read_words == PROG_EMPTY_THRESH+1 - 2) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == PROG_EMPTY_THRESH - 2) && !RD_EN && WR_EN) begin prog_empty_d <= #`TCQ 1'b0; end else if (num_read_words <= PROG_EMPTY_THRESH - 2) begin prog_empty_d <= #`TCQ 1'b1; end else if (num_read_words > PROG_EMPTY_THRESH - 2)begin prog_empty_d <= #`TCQ 1'b0; end //Dual input thresholds end else begin if (num_read_words <= PROG_EMPTY_THRESH_ASSERT - 2) begin prog_empty_d <= #`TCQ 1'b1; end else if ((num_read_words == PROG_EMPTY_THRESH_ASSERT+1 - 2) && RD_EN && !WR_EN) begin prog_empty_d <= #`TCQ 1'b1; end else if (num_read_words > PROG_EMPTY_THRESH_NEGATE - 2)begin prog_empty_d <= #`TCQ 1'b0; end else if ((num_read_words == PROG_EMPTY_THRESH_NEGATE - 2) && !RD_EN && WR_EN) begin prog_empty_d <= #`TCQ 1'b0; end end end // (~ (C_PRELOAD_REGS==1 && C_PRELOAD_LATENCY==0) ) ideal_prog_empty <= prog_empty_d; if (RST_FULL_GEN) begin ideal_prog_full <= #`TCQ 1'b0; prog_full_d <= #`TCQ 1'b0; end else begin ideal_prog_full <= #`TCQ prog_full_d; end end //if (srst_i) begin end //if (rst_i) begin end //always @(posedge CLK or posedge rst_i) begin : gen_fifo_p endmodule // fifo_generator_v6_1_bhv_ver_ss /************************************************************************** * First-Word Fall-Through module (preload 0) **************************************************************************/ module fifo_generator_v6_1_bhv_ver_preload0 ( RD_CLK, RD_RST, SRST, RD_EN, FIFOEMPTY, FIFODATA, FIFOSBITERR, FIFODBITERR, USERDATA, USERVALID, USERUNDERFLOW, USEREMPTY, USERALMOSTEMPTY, RAMVALID, FIFORDEN, USERSBITERR, USERDBITERR ); parameter C_DOUT_RST_VAL = ""; parameter C_DOUT_WIDTH = 8; parameter C_HAS_RST = 0; parameter C_ENABLE_RST_SYNC = 0; parameter C_HAS_SRST = 0; parameter C_USE_DOUT_RST = 0; parameter C_USE_ECC = 0; parameter C_USERVALID_LOW = 0; parameter C_USERUNDERFLOW_LOW = 0; parameter C_MEMORY_TYPE = 0; //Inputs input RD_CLK; input RD_RST; input SRST; input RD_EN; input FIFOEMPTY; input [C_DOUT_WIDTH-1:0] FIFODATA; input FIFOSBITERR; input FIFODBITERR; //Outputs output [C_DOUT_WIDTH-1:0] USERDATA; output USERVALID; output USERUNDERFLOW; output USEREMPTY; output USERALMOSTEMPTY; output RAMVALID; output FIFORDEN; output USERSBITERR; output USERDBITERR; //Inputs wire RD_CLK; wire RD_RST; wire RD_EN; wire FIFOEMPTY; wire [C_DOUT_WIDTH-1:0] FIFODATA; wire FIFOSBITERR; wire FIFODBITERR; //Outputs reg [C_DOUT_WIDTH-1:0] USERDATA; wire USERVALID; wire USERUNDERFLOW; wire USEREMPTY; wire USERALMOSTEMPTY; wire RAMVALID; wire FIFORDEN; reg USERSBITERR; reg USERDBITERR; //Internal signals wire preloadstage1; wire preloadstage2; reg ram_valid_i; reg read_data_valid_i; wire ram_regout_en; wire ram_rd_en; reg empty_i = 1'b1; reg empty_q = 1'b1; reg rd_en_q = 1'b0; reg almost_empty_i = 1'b1; reg almost_empty_q = 1'b1; wire rd_rst_i; wire srst_i; /************************************************************************* * FUNCTIONS *************************************************************************/ /************************************************************************* * hexstr_conv * Converts a string of type hex to a binary value (for C_DOUT_RST_VAL) ***********************************************************************/ function [C_DOUT_WIDTH-1:0] hexstr_conv; input [(C_DOUT_WIDTH*8)-1:0] def_data; integer index,i,j; reg [3:0] bin; begin index = 0; hexstr_conv = 'b0; for( i=C_DOUT_WIDTH-1; i>=0; i=i-1 ) begin case (def_data[7:0]) 8'b00000000 : begin bin = 4'b0000; i = -1; end 8'b00110000 : bin = 4'b0000; 8'b00110001 : bin = 4'b0001; 8'b00110010 : bin = 4'b0010; 8'b00110011 : bin = 4'b0011; 8'b00110100 : bin = 4'b0100; 8'b00110101 : bin = 4'b0101; 8'b00110110 : bin = 4'b0110; 8'b00110111 : bin = 4'b0111; 8'b00111000 : bin = 4'b1000; 8'b00111001 : bin = 4'b1001; 8'b01000001 : bin = 4'b1010; 8'b01000010 : bin = 4'b1011; 8'b01000011 : bin = 4'b1100; 8'b01000100 : bin = 4'b1101; 8'b01000101 : bin = 4'b1110; 8'b01000110 : bin = 4'b1111; 8'b01100001 : bin = 4'b1010; 8'b01100010 : bin = 4'b1011; 8'b01100011 : bin = 4'b1100; 8'b01100100 : bin = 4'b1101; 8'b01100101 : bin = 4'b1110; 8'b01100110 : bin = 4'b1111; default : begin bin = 4'bx; end endcase for( j=0; j<4; j=j+1) begin if ((index*4)+j < C_DOUT_WIDTH) begin hexstr_conv[(index*4)+j] = bin[j]; end end index = index + 1; def_data = def_data >> 8; end end endfunction //************************************************************************* // Set power-on states for regs //************************************************************************* initial begin ram_valid_i = 1'b0; read_data_valid_i = 1'b0; USERDATA = hexstr_conv(C_DOUT_RST_VAL); USERSBITERR = 1'b0; USERDBITERR = 1'b0; end //initial //*************************************************************************** // connect up optional reset //*************************************************************************** assign rd_rst_i = (C_HAS_RST == 1 || C_ENABLE_RST_SYNC == 0) ? RD_RST : 0; assign srst_i = C_HAS_SRST ? SRST : 0; //*************************************************************************** // preloadstage2 indicates that stage2 needs to be updated. This is true // whenever read_data_valid is false, and RAM_valid is true. //*************************************************************************** assign preloadstage2 = ram_valid_i & (~read_data_valid_i | RD_EN); //*************************************************************************** // preloadstage1 indicates that stage1 needs to be updated. This is true // whenever the RAM has data (RAM_EMPTY is false), and either RAM_Valid is // false (indicating that Stage1 needs updating), or preloadstage2 is active // (indicating that Stage2 is going to update, so Stage1, therefore, must // also be updated to keep it valid. //*************************************************************************** assign preloadstage1 = ((~ram_valid_i | preloadstage2) & ~FIFOEMPTY); //*************************************************************************** // Calculate RAM_REGOUT_EN // The output registers are controlled by the ram_regout_en signal. // These registers should be updated either when the output in Stage2 is // invalid (preloadstage2), OR when the user is reading, in which case the // Stage2 value will go invalid unless it is replenished. //*************************************************************************** assign ram_regout_en = preloadstage2; //*************************************************************************** // Calculate RAM_RD_EN // RAM_RD_EN will be asserted whenever the RAM needs to be read in order to // update the value in Stage1. // One case when this happens is when preloadstage1=true, which indicates // that the data in Stage1 or Stage2 is invalid, and needs to automatically // be updated. // The other case is when the user is reading from the FIFO, which // guarantees that Stage1 or Stage2 will be invalid on the next clock // cycle, unless it is replinished by data from the memory. So, as long // as the RAM has data in it, a read of the RAM should occur. //*************************************************************************** assign ram_rd_en = (RD_EN & ~FIFOEMPTY) | preloadstage1; //*************************************************************************** // Calculate RAMVALID_P0_OUT // RAMVALID_P0_OUT indicates that the data in Stage1 is valid. // // If the RAM is being read from on this clock cycle (ram_rd_en=1), then // RAMVALID_P0_OUT is certainly going to be true. // If the RAM is not being read from, but the output registers are being // updated to fill Stage2 (ram_regout_en=1), then Stage1 will be emptying, // therefore causing RAMVALID_P0_OUT to be false. // Otherwise, RAMVALID_P0_OUT will remain unchanged. //*************************************************************************** // PROCESS regout_valid always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) begin // asynchronous reset (active high) ram_valid_i <= #`TCQ 1'b0; end else begin if (srst_i) begin // synchronous reset (active high) ram_valid_i <= #`TCQ 1'b0; end else begin if (ram_rd_en == 1'b1) begin ram_valid_i <= #`TCQ 1'b1; end else begin if (ram_regout_en == 1'b1) ram_valid_i <= #`TCQ 1'b0; else ram_valid_i <= #`TCQ ram_valid_i; end end //srst_i end //rd_rst_i end //always //*************************************************************************** // Calculate READ_DATA_VALID // READ_DATA_VALID indicates whether the value in Stage2 is valid or not. // Stage2 has valid data whenever Stage1 had valid data and // ram_regout_en_i=1, such that the data in Stage1 is propogated // into Stage2. //*************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) read_data_valid_i <= #`TCQ 1'b0; else if (srst_i) read_data_valid_i <= #`TCQ 1'b0; else read_data_valid_i <= #`TCQ ram_valid_i | (read_data_valid_i & ~RD_EN); end //always //************************************************************************** // Calculate EMPTY // Defined as the inverse of READ_DATA_VALID // // Description: // // If read_data_valid_i indicates that the output is not valid, // and there is no valid data on the output of the ram to preload it // with, then we will report empty. // // If there is no valid data on the output of the ram and we are // reading, then the FIFO will go empty. // //************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) begin // asynchronous reset (active high) empty_i <= #`TCQ 1'b1; end else begin if (srst_i) begin // synchronous reset (active high) empty_i <= #`TCQ 1'b1; end else begin // rising clock edge empty_i <= #`TCQ (~ram_valid_i & ~read_data_valid_i) | (~ram_valid_i & RD_EN); end end end //always // Register RD_EN from user to calculate USERUNDERFLOW. // Register empty_i to calculate USERUNDERFLOW. always @ (posedge RD_CLK) begin rd_en_q <= #`TCQ RD_EN; empty_q <= #`TCQ empty_i; end //always //*************************************************************************** // Calculate user_almost_empty // user_almost_empty is defined such that, unless more words are written // to the FIFO, the next read will cause the FIFO to go EMPTY. // // In most cases, whenever the output registers are updated (due to a user // read or a preload condition), then user_almost_empty will update to // whatever RAM_EMPTY is. // // The exception is when the output is valid, the user is not reading, and // Stage1 is not empty. In this condition, Stage1 will be preloaded from the // memory, so we need to make sure user_almost_empty deasserts properly under // this condition. //*************************************************************************** always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) begin // asynchronous reset (active high) almost_empty_i <= #`TCQ 1'b1; almost_empty_q <= #`TCQ 1'b1; end else begin // rising clock edge if (srst_i) begin // synchronous reset (active high) almost_empty_i <= #`TCQ 1'b1; almost_empty_q <= #`TCQ 1'b1; end else begin if ((ram_regout_en) | (~FIFOEMPTY & read_data_valid_i & ~RD_EN)) begin almost_empty_i <= #`TCQ FIFOEMPTY; end almost_empty_q <= #`TCQ empty_i; end end end //always assign USEREMPTY = empty_i; assign USERALMOSTEMPTY = almost_empty_i; assign FIFORDEN = ram_rd_en; assign RAMVALID = ram_valid_i; assign USERVALID = C_USERVALID_LOW ? ~read_data_valid_i : read_data_valid_i; assign USERUNDERFLOW = C_USERUNDERFLOW_LOW ? ~(empty_q & rd_en_q) : empty_q & rd_en_q; // BRAM resets synchronously always @ (posedge RD_CLK) begin if (rd_rst_i || srst_i) begin if (C_USE_DOUT_RST == 1 && C_MEMORY_TYPE < 2) USERDATA <= #`TCQ hexstr_conv(C_DOUT_RST_VAL); end end //always always @ (posedge RD_CLK or posedge rd_rst_i) begin if (rd_rst_i) begin //asynchronous reset (active high) if (C_USE_ECC == 0) begin // Reset S/DBITERR only if ECC is OFF USERSBITERR <= #`TCQ 0; USERDBITERR <= #`TCQ 0; end // DRAM resets asynchronously if (C_USE_DOUT_RST == 1 && C_MEMORY_TYPE == 2) //asynchronous reset (active high) USERDATA <= #`TCQ hexstr_conv(C_DOUT_RST_VAL); end else begin // rising clock edge if (srst_i) begin if (C_USE_ECC == 0) begin // Reset S/DBITERR only if ECC is OFF USERSBITERR <= #`TCQ 0; USERDBITERR <= #`TCQ 0; end if (C_USE_DOUT_RST == 1 && C_MEMORY_TYPE == 2) USERDATA <= #`TCQ hexstr_conv(C_DOUT_RST_VAL); end else begin if (ram_regout_en) begin USERDATA <= #`TCQ FIFODATA; USERSBITERR <= #`TCQ FIFOSBITERR; USERDBITERR <= #`TCQ FIFODBITERR; end end end end //always endmodule uhd-3.5.5/fpga/usrp2/models/IBUFG.v000066400000000000000000000035471224274632000166150ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/IBUFG.v,v 1.7 2007/05/23 21:43:34 patrickp Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Functional Simulation Library Component // / / Input Clock Buffer // /___/ /\ Filename : IBUFG.v // \ \ / \ Timestamp : Thu Mar 25 16:42:24 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // 05/23/07 - Changed timescale to 1 ps / 1 ps. `timescale 1 ps / 1 ps module IBUFG (O, I); parameter CAPACITANCE = "DONT_CARE"; parameter IBUF_DELAY_VALUE = "0"; parameter IOSTANDARD = "DEFAULT"; output O; input I; buf B1 (O, I); initial begin case (CAPACITANCE) "LOW", "NORMAL", "DONT_CARE" : ; default : begin $display("Attribute Syntax Error : The attribute CAPACITANCE on IBUFG instance %m is set to %s. Legal values for this attribute are DONT_CARE, LOW or NORMAL.", CAPACITANCE); $finish; end endcase case (IBUF_DELAY_VALUE) "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" : ; default : begin $display("Attribute Syntax Error : The attribute IBUF_DELAY_VALUE on IBUFG instance %m is set to %s. Legal values for this attribute are 0, 1, 2, ... or 16.", IBUF_DELAY_VALUE); $finish; end endcase end // initial begin endmodule uhd-3.5.5/fpga/usrp2/models/IBUFGDS.v000066400000000000000000000050621224274632000170360ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/IBUFGDS.v,v 1.8 2007/07/26 23:22:55 fphillip Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Functional Simulation Library Component // / / Differential Signaling Input Clock Buffer // /___/ /\ Filename : IBUFGDS.v // \ \ / \ Timestamp : Thu Mar 25 16:42:24 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // 05/23/07 - Changed timescale to 1 ps / 1 ps. // 07/26/07 - Add else to handle x case for o_out (CR 424214). // End Revision `timescale 1 ps / 1 ps module IBUFGDS (O, I, IB); parameter CAPACITANCE = "DONT_CARE"; parameter DIFF_TERM = "FALSE"; parameter IBUF_DELAY_VALUE = "0"; parameter IOSTANDARD = "DEFAULT"; output O; input I, IB; reg o_out; buf b_0 (O, o_out); initial begin case (CAPACITANCE) "LOW", "NORMAL", "DONT_CARE" : ; default : begin $display("Attribute Syntax Error : The attribute CAPACITANCE on IBUFGDS instance %m is set to %s. Legal values for this attribute are DONT_CARE, LOW or NORMAL.", CAPACITANCE); $finish; end endcase case (DIFF_TERM) "TRUE", "FALSE" : ; default : begin $display("Attribute Syntax Error : The attribute DIFF_TERM on IBUFGDS instance %m is set to %s. Legal values for this attribute are TRUE or FALSE.", DIFF_TERM); $finish; end endcase case (IBUF_DELAY_VALUE) "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" : ; default : begin $display("Attribute Syntax Error : The attribute IBUF_DELAY_VALUE on IBUFGDS instance %m is set to %s. Legal values for this attribute are 0, 1, 2, ... or 16.", IBUF_DELAY_VALUE); $finish; end endcase end always @(I or IB) begin if (I == 1'b1 && IB == 1'b0) o_out <= I; else if (I == 1'b0 && IB == 1'b1) o_out <= I; else if (I == 1'bx && IB == 1'bx) o_out <= 1'bx; end endmodule uhd-3.5.5/fpga/usrp2/models/IDDR2.v000066400000000000000000000107751224274632000165660ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/spartan4/IDDR2.v,v 1.1 2004/06/21 21:45:36 wloo Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Functional Simulation Library Component // / / Dual Data Rate Input D Flip-Flop // /___/ /\ Filename : IDDR2.v // \ \ / \ Timestamp : Thu Mar 25 16:43:51 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. `timescale 1 ps / 1 ps module IDDR2 (Q0, Q1, C0, C1, CE, D, R, S); output Q0; output Q1; input C0; input C1; input CE; input D; tri0 GSR = glbl.GSR; input R; input S; parameter DDR_ALIGNMENT = "NONE"; parameter INIT_Q0 = 1'b0; parameter INIT_Q1 = 1'b0; parameter SRTYPE = "SYNC"; reg q0_out, q1_out; reg q0_out_int, q1_out_int; reg q0_c1_out_int, q1_c0_out_int; buf buf_q0 (Q0, q0_out); buf buf_q1 (Q1, q1_out); initial begin if ((INIT_Q0 != 1'b0) && (INIT_Q0 != 1'b1)) begin $display("Attribute Syntax Error : The attribute INIT_Q0 on IDDR2 instance %m is set to %d. Legal values for this attribute are 0 or 1.", INIT_Q0); $finish; end if ((INIT_Q1 != 1'b0) && (INIT_Q1 != 1'b1)) begin $display("Attribute Syntax Error : The attribute INIT_Q0 on IDDR2 instance %m is set to %d. Legal values for this attribute are 0 or 1.", INIT_Q1); $finish; end if ((DDR_ALIGNMENT != "C1") && (DDR_ALIGNMENT != "C0") && (DDR_ALIGNMENT != "NONE")) begin $display("Attribute Syntax Error : The attribute DDR_ALIGNMENT on IDDR2 instance %m is set to %s. Legal values for this attribute are C0, C1 or NONE.", DDR_ALIGNMENT); $finish; end if ((SRTYPE != "ASYNC") && (SRTYPE != "SYNC")) begin $display("Attribute Syntax Error : The attribute SRTYPE on IDDR2 instance %m is set to %s. Legal values for this attribute are ASYNC or SYNC.", SRTYPE); $finish; end end // initial begin always @(GSR or R or S) begin if (GSR == 1) begin assign q0_out_int = INIT_Q0; assign q1_out_int = INIT_Q1; assign q0_c1_out_int = INIT_Q0; assign q1_c0_out_int = INIT_Q1; end else begin deassign q0_out_int; deassign q1_out_int; deassign q0_c1_out_int; deassign q1_c0_out_int; if (SRTYPE == "ASYNC") begin if (R == 1) begin assign q0_out_int = 0; assign q1_out_int = 0; assign q0_c1_out_int = 0; assign q1_c0_out_int = 0; end else if (R == 0 && S == 1) begin assign q0_out_int = 1; assign q1_out_int = 1; assign q0_c1_out_int = 1; assign q1_c0_out_int = 1; end end // if (SRTYPE == "ASYNC") end // if (GSR == 1'b0) end // always @ (GSR or R or S) always @(posedge C0) begin if (R == 1 && SRTYPE == "SYNC") begin q0_out_int <= 0; q1_c0_out_int <= 0; end else if (R == 0 && S == 1 && SRTYPE == "SYNC") begin q0_out_int <= 1; q1_c0_out_int <= 1; end else if (CE == 1 && R == 0 && S == 0) begin q0_out_int <= D; q1_c0_out_int <= q1_out_int; end end // always @ (posedge C0) always @(posedge C1) begin if (R == 1 && SRTYPE == "SYNC") begin q1_out_int <= 0; q0_c1_out_int <= 0; end else if (R == 0 && S == 1 && SRTYPE == "SYNC") begin q1_out_int <= 1; q0_c1_out_int <= 1; end else if (CE == 1 && R == 0 && S == 0) begin q1_out_int <= D; q0_c1_out_int <= q0_out_int; end end // always @ (posedge C1) always @(q0_out_int or q1_out_int or q1_c0_out_int or q0_c1_out_int) begin case (DDR_ALIGNMENT) "NONE" : begin q0_out <= q0_out_int; q1_out <= q1_out_int; end "C0" : begin q0_out <= q0_out_int; q1_out <= q1_c0_out_int; end "C1" : begin q0_out <= q0_c1_out_int; q1_out <= q1_out_int; end endcase // case(DDR_ALIGNMENT) end // always @ (q0_out_int or q1_out_int or q1_c0_out_int or q0_c1_out_int) specify if (C0) (C0 => Q0) = (100, 100); if (C0) (C0 => Q1) = (100, 100); if (C1) (C1 => Q1) = (100, 100); if (C1) (C1 => Q0) = (100, 100); specparam PATHPULSE$ = 0; endspecify endmodule // IDDR2 uhd-3.5.5/fpga/usrp2/models/IOBUF.v000066400000000000000000000051261224274632000166200ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/IOBUF.v,v 1.9 2007/05/23 21:43:39 patrickp Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Functional Simulation Library Component // / / Bi-Directional Buffer // /___/ /\ Filename : IOBUF.v // \ \ / \ Timestamp : Thu Mar 25 16:42:37 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // 02/22/06 - CR#226003 - Added integer, real parameter type // 05/23/07 - Changed timescale to 1 ps / 1 ps. // 05/23/07 - Added wire declaration for internal signals. `timescale 1 ps / 1 ps module IOBUF (O, IO, I, T); parameter CAPACITANCE = "DONT_CARE"; parameter integer DRIVE = 12; parameter IBUF_DELAY_VALUE = "0"; parameter IFD_DELAY_VALUE = "AUTO"; parameter IOSTANDARD = "DEFAULT"; parameter SLEW = "SLOW"; output O; inout IO; input I, T; wire ts; //tri0 GTS = glbl.GTS; or O1 (ts, GTS, T); bufif0 T1 (IO, I, ts); buf B1 (O, IO); initial begin case (CAPACITANCE) "LOW", "NORMAL", "DONT_CARE" : ; default : begin $display("Attribute Syntax Error : The attribute CAPACITANCE on IOBUF instance %m is set to %s. Legal values for this attribute are DONT_CARE, LOW or NORMAL.", CAPACITANCE); $finish; end endcase case (IBUF_DELAY_VALUE) "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" : ; default : begin $display("Attribute Syntax Error : The attribute IBUF_DELAY_VALUE on IOBUF instance %m is set to %s. Legal values for this attribute are 0, 1, 2, ... or 16.", IBUF_DELAY_VALUE); $finish; end endcase case (IFD_DELAY_VALUE) "AUTO", "0", "1", "2", "3", "4", "5", "6", "7", "8" : ; default : begin $display("Attribute Syntax Error : The attribute IFD_DELAY_VALUE on IOBUF instance %m is set to %s. Legal values for this attribute are AUTO, 0, 1, 2, ... or 8.", IFD_DELAY_VALUE); $finish; end endcase end // initial begin endmodule uhd-3.5.5/fpga/usrp2/models/M24LC024B.v000066400000000000000000000462731224274632000170750ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Modified 11/14/07 to simulate the 24lc024, which responds to the address pins // ******************************************************************************************************* // ** ** // ** M24LC024B.v - 24LC02B 2K-BIT I2C SERIAL EEPROM (VCC = +2.5V TO +5.5V) ** // ** ** // ******************************************************************************************************* // ** ** // ** COPYRIGHT (c) 2003 YOUNG ENGINEERING ** // ** ALL RIGHTS RESERVED ** // ** ** // ** THIS PROGRAM IS CONFIDENTIAL AND A TRADE SECRET OF YOUNG ENGINEERING. THE RECEIPT OR ** // ** POSSESSION OF THIS PROGRAM DOES NOT CONVEY ANY RIGHTS TO REPRODUCE OR DISCLOSE ITS ** // ** CONTENTS, OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN ** // ** PART, WITHOUT THE SPECIFIC WRITTEN CONSENT OF YOUNG ENGINEERING. ** // ** ** // ******************************************************************************************************* // ** Revision : 1.1 ** // ** Modified Date : 07/19/2004 ** // ** Revision History: ** // ** ** // ** 02/01/2003: Initial design ** // ** 07/19/2004: Fixed the timing checks and the open-drain modeling for SDA. ** // ** ** // ******************************************************************************************************* // ** TABLE OF CONTENTS ** // ******************************************************************************************************* // **---------------------------------------------------------------------------------------------------** // ** DECLARATIONS ** // **---------------------------------------------------------------------------------------------------** // **---------------------------------------------------------------------------------------------------** // ** INITIALIZATION ** // **---------------------------------------------------------------------------------------------------** // **---------------------------------------------------------------------------------------------------** // ** CORE LOGIC ** // **---------------------------------------------------------------------------------------------------** // ** 1.01: START Bit Detection ** // ** 1.02: STOP Bit Detection ** // ** 1.03: Input Shift Register ** // ** 1.04: Input Bit Counter ** // ** 1.05: Control Byte Register ** // ** 1.06: Byte Address Register ** // ** 1.07: Write Data Buffer ** // ** 1.08: Acknowledge Generator ** // ** 1.09: Acknowledge Detect ** // ** 1.10: Write Cycle Timer ** // ** 1.11: Write Cycle Processor ** // ** 1.12: Read Data Multiplexor ** // ** 1.13: Read Data Processor ** // ** 1.14: SDA Data I/O Buffer ** // ** ** // **---------------------------------------------------------------------------------------------------** // ** DEBUG LOGIC ** // **---------------------------------------------------------------------------------------------------** // ** 2.01: Memory Data Bytes ** // ** 2.02: Write Data Buffer ** // ** ** // **---------------------------------------------------------------------------------------------------** // ** TIMING CHECKS ** // **---------------------------------------------------------------------------------------------------** // ** ** // ******************************************************************************************************* `timescale 1ns/10ps module M24LC024B (A0, A1, A2, WP, SDA, SCL, RESET); input A0; // unconnected pin input A1; // unconnected pin input A2; // unconnected pin input WP; // write protect pin inout SDA; // serial data I/O input SCL; // serial data clock input RESET; // system reset // ******************************************************************************************************* // ** DECLARATIONS ** // ******************************************************************************************************* reg SDA_DO; // serial data - output reg SDA_OE; // serial data - output enable wire SDA_DriveEnable; // serial data output enable reg SDA_DriveEnableDlyd; // serial data output enable - delayed reg [03:00] BitCounter; // serial bit counter reg START_Rcvd; // START bit received flag reg STOP_Rcvd; // STOP bit received flag reg CTRL_Rcvd; // control byte received flag reg ADDR_Rcvd; // byte address received flag reg MACK_Rcvd; // master acknowledge received flag reg WrCycle; // memory write cycle reg RdCycle; // memory read cycle reg [07:00] ShiftRegister; // input data shift register reg [07:00] ControlByte; // control byte register wire RdWrBit; // read/write control bit reg [07:00] StartAddress; // memory access starting address reg [02:00] PageAddress; // memory page address reg [07:00] WrDataByte [0:7]; // memory write data buffer wire [07:00] RdDataByte; // memory read data reg [15:00] WrCounter; // write buffer counter reg [02:00] WrPointer; // write buffer pointer reg [07:00] RdPointer; // read address pointer reg WriteActive; // memory write cycle active reg [07:00] MemoryBlock [0:255]; // EEPROM data memory array integer LoopIndex; // iterative loop index integer tAA; // timing parameter integer tWC; // timing parameter // ******************************************************************************************************* // ** INITIALIZATION ** // ******************************************************************************************************* initial tAA = 900; // SCL to SDA output delay initial tWC = 5000000; // memory write cycle time //initial tWC = 50000; // shortened memory write cycle time to speed up sims initial begin SDA_DO = 0; SDA_OE = 0; end initial begin START_Rcvd = 0; STOP_Rcvd = 0; CTRL_Rcvd = 0; ADDR_Rcvd = 0; MACK_Rcvd = 0; end initial begin BitCounter = 0; ControlByte = 0; end initial begin WrCycle = 0; RdCycle = 0; WriteActive = 0; end // ******************************************************************************************************* // ** CORE LOGIC ** // ******************************************************************************************************* // ------------------------------------------------------------------------------------------------------- // 1.01: START Bit Detection // ------------------------------------------------------------------------------------------------------- always @(negedge SDA) begin if (SCL == 1) begin START_Rcvd <= 1; STOP_Rcvd <= 0; CTRL_Rcvd <= 0; ADDR_Rcvd <= 0; MACK_Rcvd <= 0; WrCycle <= #1 0; RdCycle <= #1 0; BitCounter <= 0; end end // ------------------------------------------------------------------------------------------------------- // 1.02: STOP Bit Detection // ------------------------------------------------------------------------------------------------------- always @(posedge SDA) begin if (SCL == 1) begin START_Rcvd <= 0; STOP_Rcvd <= 1; CTRL_Rcvd <= 0; ADDR_Rcvd <= 0; MACK_Rcvd <= 0; WrCycle <= #1 0; RdCycle <= #1 0; BitCounter <= 10; end end // ------------------------------------------------------------------------------------------------------- // 1.03: Input Shift Register // ------------------------------------------------------------------------------------------------------- always @(posedge SCL) begin ShiftRegister[00] <= SDA; ShiftRegister[01] <= ShiftRegister[00]; ShiftRegister[02] <= ShiftRegister[01]; ShiftRegister[03] <= ShiftRegister[02]; ShiftRegister[04] <= ShiftRegister[03]; ShiftRegister[05] <= ShiftRegister[04]; ShiftRegister[06] <= ShiftRegister[05]; ShiftRegister[07] <= ShiftRegister[06]; end // ------------------------------------------------------------------------------------------------------- // 1.04: Input Bit Counter // ------------------------------------------------------------------------------------------------------- always @(posedge SCL) begin if (BitCounter < 10) BitCounter <= BitCounter + 1; end // ------------------------------------------------------------------------------------------------------- // 1.05: Control Byte Register // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (START_Rcvd & (BitCounter == 8)) begin if (!WriteActive & (ShiftRegister[07:04] == 4'b1010) & (ShiftRegister[3:1] == {A2,A1,A0})) begin if (ShiftRegister[00] == 0) WrCycle <= 1; if (ShiftRegister[00] == 1) RdCycle <= 1; ControlByte <= ShiftRegister[07:00]; CTRL_Rcvd <= 1; end START_Rcvd <= 0; end end assign RdWrBit = ControlByte[00]; // ------------------------------------------------------------------------------------------------------- // 1.06: Byte Address Register // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (CTRL_Rcvd & (BitCounter == 8)) begin if (RdWrBit == 0) begin StartAddress <= ShiftRegister[07:00]; RdPointer <= ShiftRegister[07:00]; ADDR_Rcvd <= 1; end WrCounter <= 0; WrPointer <= 0; CTRL_Rcvd <= 0; end end // ------------------------------------------------------------------------------------------------------- // 1.07: Write Data Buffer // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (ADDR_Rcvd & (BitCounter == 8)) begin if ((WP == 0) & (RdWrBit == 0)) begin WrDataByte[WrPointer] <= ShiftRegister[07:00]; WrCounter <= WrCounter + 1; WrPointer <= WrPointer + 1; end end end // ------------------------------------------------------------------------------------------------------- // 1.08: Acknowledge Generator // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (!WriteActive) begin if (BitCounter == 8) begin if (WrCycle | (START_Rcvd & (ShiftRegister[07:04] == 4'b1010))) begin SDA_DO <= 0; SDA_OE <= 1; end end if (BitCounter == 9) begin BitCounter <= 0; if (!RdCycle) begin SDA_DO <= 0; SDA_OE <= 0; end end end end // ------------------------------------------------------------------------------------------------------- // 1.09: Acknowledge Detect // ------------------------------------------------------------------------------------------------------- always @(posedge SCL) begin if (RdCycle & (BitCounter == 8)) begin if ((SDA == 0) & (SDA_OE == 0)) MACK_Rcvd <= 1; end end always @(negedge SCL) MACK_Rcvd <= 0; // ------------------------------------------------------------------------------------------------------- // 1.10: Write Cycle Timer // ------------------------------------------------------------------------------------------------------- always @(posedge STOP_Rcvd) begin if (WrCycle & (WP == 0) & (WrCounter > 0)) begin WriteActive = 1; #(tWC); WriteActive = 0; end end always @(posedge STOP_Rcvd) begin #(1.0); STOP_Rcvd = 0; end // ------------------------------------------------------------------------------------------------------- // 1.11: Write Cycle Processor // ------------------------------------------------------------------------------------------------------- always @(posedge WriteActive) begin for (LoopIndex = 0; LoopIndex < WrCounter; LoopIndex = LoopIndex + 1) begin PageAddress = StartAddress[02:00] + LoopIndex; MemoryBlock[{StartAddress[07:03],PageAddress[02:00]}] = WrDataByte[LoopIndex[02:00]]; end end // ------------------------------------------------------------------------------------------------------- // 1.12: Read Data Multiplexor // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (BitCounter == 8) begin if (WrCycle & ADDR_Rcvd) begin RdPointer <= StartAddress + WrPointer + 1; end if (RdCycle) begin RdPointer <= RdPointer + 1; end end end assign RdDataByte = MemoryBlock[RdPointer[07:00]]; // ------------------------------------------------------------------------------------------------------- // 1.13: Read Data Processor // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (RdCycle) begin if (BitCounter == 8) begin SDA_DO <= 0; SDA_OE <= 0; end else if (BitCounter == 9) begin SDA_DO <= RdDataByte[07]; if (MACK_Rcvd) SDA_OE <= 1; end else begin SDA_DO <= RdDataByte[7-BitCounter]; end end end // ------------------------------------------------------------------------------------------------------- // 1.14: SDA Data I/O Buffer // ------------------------------------------------------------------------------------------------------- bufif1 (SDA, 1'b0, SDA_DriveEnableDlyd); assign SDA_DriveEnable = !SDA_DO & SDA_OE; always @(SDA_DriveEnable) SDA_DriveEnableDlyd <= #(tAA) SDA_DriveEnable; // ******************************************************************************************************* // ** DEBUG LOGIC ** // ******************************************************************************************************* // ------------------------------------------------------------------------------------------------------- // 2.01: Memory Data Bytes // ------------------------------------------------------------------------------------------------------- wire [07:00] MemoryByte00 = MemoryBlock[00]; wire [07:00] MemoryByte01 = MemoryBlock[01]; wire [07:00] MemoryByte02 = MemoryBlock[02]; wire [07:00] MemoryByte03 = MemoryBlock[03]; wire [07:00] MemoryByte04 = MemoryBlock[04]; wire [07:00] MemoryByte05 = MemoryBlock[05]; wire [07:00] MemoryByte06 = MemoryBlock[06]; wire [07:00] MemoryByte07 = MemoryBlock[07]; wire [07:00] MemoryByte08 = MemoryBlock[08]; wire [07:00] MemoryByte09 = MemoryBlock[09]; wire [07:00] MemoryByte0A = MemoryBlock[10]; wire [07:00] MemoryByte0B = MemoryBlock[11]; wire [07:00] MemoryByte0C = MemoryBlock[12]; wire [07:00] MemoryByte0D = MemoryBlock[13]; wire [07:00] MemoryByte0E = MemoryBlock[14]; wire [07:00] MemoryByte0F = MemoryBlock[15]; // ------------------------------------------------------------------------------------------------------- // 2.02: Write Data Buffer // ------------------------------------------------------------------------------------------------------- wire [07:00] WriteData_0 = WrDataByte[00]; wire [07:00] WriteData_1 = WrDataByte[01]; wire [07:00] WriteData_2 = WrDataByte[02]; wire [07:00] WriteData_3 = WrDataByte[03]; wire [07:00] WriteData_4 = WrDataByte[04]; wire [07:00] WriteData_5 = WrDataByte[05]; wire [07:00] WriteData_6 = WrDataByte[06]; wire [07:00] WriteData_7 = WrDataByte[07]; // ******************************************************************************************************* // ** TIMING CHECKS ** // ******************************************************************************************************* wire TimingCheckEnable = (RESET == 0) & (SDA_OE == 0); specify specparam tHI = 600, // SCL pulse width - high tLO = 1300, // SCL pulse width - low tSU_STA = 600, // SCL to SDA setup time tHD_STA = 600, // SCL to SDA hold time tSU_DAT = 100, // SDA to SCL setup time tSU_STO = 600; // SCL to SDA setup time $width (posedge SCL, tHI); $width (negedge SCL, tLO); $setup (SCL, negedge SDA &&& TimingCheckEnable, tSU_STA); $setup (SDA, posedge SCL &&& TimingCheckEnable, tSU_DAT); $setup (SCL, posedge SDA &&& TimingCheckEnable, tSU_STO); $hold (negedge SDA &&& TimingCheckEnable, SCL, tHD_STA); endspecify endmodule uhd-3.5.5/fpga/usrp2/models/M24LC02B.v000066400000000000000000000466601224274632000170110ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // ******************************************************************************************************* // ** ** // ** M24LC02B.v - 24LC02B 2K-BIT I2C SERIAL EEPROM (VCC = +2.5V TO +5.5V) ** // ** ** // ******************************************************************************************************* // ** ** // ** COPYRIGHT (c) 2003 YOUNG ENGINEERING ** // ** ALL RIGHTS RESERVED ** // ** ** // ** THIS PROGRAM IS CONFIDENTIAL AND A TRADE SECRET OF YOUNG ENGINEERING. THE RECEIPT OR ** // ** POSSESSION OF THIS PROGRAM DOES NOT CONVEY ANY RIGHTS TO REPRODUCE OR DISCLOSE ITS ** // ** CONTENTS, OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN ** // ** PART, WITHOUT THE SPECIFIC WRITTEN CONSENT OF YOUNG ENGINEERING. ** // ** ** // ******************************************************************************************************* // ** Revision : 1.1 ** // ** Modified Date : 07/19/2004 ** // ** Revision History: ** // ** ** // ** 02/01/2003: Initial design ** // ** 07/19/2004: Fixed the timing checks and the open-drain modeling for SDA. ** // ** ** // ******************************************************************************************************* // ** TABLE OF CONTENTS ** // ******************************************************************************************************* // **---------------------------------------------------------------------------------------------------** // ** DECLARATIONS ** // **---------------------------------------------------------------------------------------------------** // **---------------------------------------------------------------------------------------------------** // ** INITIALIZATION ** // **---------------------------------------------------------------------------------------------------** // **---------------------------------------------------------------------------------------------------** // ** CORE LOGIC ** // **---------------------------------------------------------------------------------------------------** // ** 1.01: START Bit Detection ** // ** 1.02: STOP Bit Detection ** // ** 1.03: Input Shift Register ** // ** 1.04: Input Bit Counter ** // ** 1.05: Control Byte Register ** // ** 1.06: Byte Address Register ** // ** 1.07: Write Data Buffer ** // ** 1.08: Acknowledge Generator ** // ** 1.09: Acknowledge Detect ** // ** 1.10: Write Cycle Timer ** // ** 1.11: Write Cycle Processor ** // ** 1.12: Read Data Multiplexor ** // ** 1.13: Read Data Processor ** // ** 1.14: SDA Data I/O Buffer ** // ** ** // **---------------------------------------------------------------------------------------------------** // ** DEBUG LOGIC ** // **---------------------------------------------------------------------------------------------------** // ** 2.01: Memory Data Bytes ** // ** 2.02: Write Data Buffer ** // ** ** // **---------------------------------------------------------------------------------------------------** // ** TIMING CHECKS ** // **---------------------------------------------------------------------------------------------------** // ** ** // ******************************************************************************************************* `timescale 1ns/10ps module M24LC02B (A0, A1, A2, WP, SDA, SCL, RESET); input A0; // unconnected pin input A1; // unconnected pin input A2; // unconnected pin input WP; // write protect pin inout SDA; // serial data I/O input SCL; // serial data clock input RESET; // system reset // ******************************************************************************************************* // ** DECLARATIONS ** // ******************************************************************************************************* reg SDA_DO; // serial data - output reg SDA_OE; // serial data - output enable wire SDA_DriveEnable; // serial data output enable reg SDA_DriveEnableDlyd; // serial data output enable - delayed reg [03:00] BitCounter; // serial bit counter reg START_Rcvd; // START bit received flag reg STOP_Rcvd; // STOP bit received flag reg CTRL_Rcvd; // control byte received flag reg ADDR_Rcvd; // byte address received flag reg MACK_Rcvd; // master acknowledge received flag reg WrCycle; // memory write cycle reg RdCycle; // memory read cycle reg [07:00] ShiftRegister; // input data shift register reg [07:00] ControlByte; // control byte register wire RdWrBit; // read/write control bit reg [07:00] StartAddress; // memory access starting address reg [02:00] PageAddress; // memory page address reg [07:00] WrDataByte [0:7]; // memory write data buffer wire [07:00] RdDataByte; // memory read data reg [15:00] WrCounter; // write buffer counter reg [02:00] WrPointer; // write buffer pointer reg [07:00] RdPointer; // read address pointer reg WriteActive; // memory write cycle active reg [07:00] MemoryBlock [0:255]; // EEPROM data memory array integer LoopIndex; // iterative loop index integer tAA; // timing parameter integer tWC; // timing parameter // ******************************************************************************************************* // ** INITIALIZATION ** // ******************************************************************************************************* initial tAA = 900; // SCL to SDA output delay initial tWC = 5000000; // memory write cycle time initial begin SDA_DO = 0; SDA_OE = 0; end initial begin START_Rcvd = 0; STOP_Rcvd = 0; CTRL_Rcvd = 0; ADDR_Rcvd = 0; MACK_Rcvd = 0; end initial begin BitCounter = 0; ControlByte = 0; end initial begin WrCycle = 0; RdCycle = 0; WriteActive = 0; end // ******************************************************************************************************* // ** CORE LOGIC ** // ******************************************************************************************************* // ------------------------------------------------------------------------------------------------------- // 1.01: START Bit Detection // ------------------------------------------------------------------------------------------------------- always @(negedge SDA) begin if (SCL == 1) begin START_Rcvd <= 1; STOP_Rcvd <= 0; CTRL_Rcvd <= 0; ADDR_Rcvd <= 0; MACK_Rcvd <= 0; WrCycle <= #1 0; RdCycle <= #1 0; BitCounter <= 0; end end // ------------------------------------------------------------------------------------------------------- // 1.02: STOP Bit Detection // ------------------------------------------------------------------------------------------------------- always @(posedge SDA) begin if (SCL == 1) begin START_Rcvd <= 0; STOP_Rcvd <= 1; CTRL_Rcvd <= 0; ADDR_Rcvd <= 0; MACK_Rcvd <= 0; WrCycle <= #1 0; RdCycle <= #1 0; BitCounter <= 10; end end // ------------------------------------------------------------------------------------------------------- // 1.03: Input Shift Register // ------------------------------------------------------------------------------------------------------- always @(posedge SCL) begin ShiftRegister[00] <= SDA; ShiftRegister[01] <= ShiftRegister[00]; ShiftRegister[02] <= ShiftRegister[01]; ShiftRegister[03] <= ShiftRegister[02]; ShiftRegister[04] <= ShiftRegister[03]; ShiftRegister[05] <= ShiftRegister[04]; ShiftRegister[06] <= ShiftRegister[05]; ShiftRegister[07] <= ShiftRegister[06]; end // ------------------------------------------------------------------------------------------------------- // 1.04: Input Bit Counter // ------------------------------------------------------------------------------------------------------- always @(posedge SCL) begin if (BitCounter < 10) BitCounter <= BitCounter + 1; end // ------------------------------------------------------------------------------------------------------- // 1.05: Control Byte Register // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (START_Rcvd & (BitCounter == 8)) begin if (!WriteActive & (ShiftRegister[07:04] == 4'b1010)) begin if (ShiftRegister[00] == 0) WrCycle <= 1; if (ShiftRegister[00] == 1) RdCycle <= 1; ControlByte <= ShiftRegister[07:00]; CTRL_Rcvd <= 1; end START_Rcvd <= 0; end end assign RdWrBit = ControlByte[00]; // ------------------------------------------------------------------------------------------------------- // 1.06: Byte Address Register // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (CTRL_Rcvd & (BitCounter == 8)) begin if (RdWrBit == 0) begin StartAddress <= ShiftRegister[07:00]; RdPointer <= ShiftRegister[07:00]; ADDR_Rcvd <= 1; end WrCounter <= 0; WrPointer <= 0; CTRL_Rcvd <= 0; end end // ------------------------------------------------------------------------------------------------------- // 1.07: Write Data Buffer // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (ADDR_Rcvd & (BitCounter == 8)) begin if ((WP == 0) & (RdWrBit == 0)) begin WrDataByte[WrPointer] <= ShiftRegister[07:00]; WrCounter <= WrCounter + 1; WrPointer <= WrPointer + 1; end end end // ------------------------------------------------------------------------------------------------------- // 1.08: Acknowledge Generator // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (!WriteActive) begin if (BitCounter == 8) begin if (WrCycle | (START_Rcvd & (ShiftRegister[07:04] == 4'b1010))) begin SDA_DO <= 0; SDA_OE <= 1; end end if (BitCounter == 9) begin BitCounter <= 0; if (!RdCycle) begin SDA_DO <= 0; SDA_OE <= 0; end end end end // ------------------------------------------------------------------------------------------------------- // 1.09: Acknowledge Detect // ------------------------------------------------------------------------------------------------------- always @(posedge SCL) begin if (RdCycle & (BitCounter == 8)) begin if ((SDA == 0) & (SDA_OE == 0)) MACK_Rcvd <= 1; end end always @(negedge SCL) MACK_Rcvd <= 0; // ------------------------------------------------------------------------------------------------------- // 1.10: Write Cycle Timer // ------------------------------------------------------------------------------------------------------- always @(posedge STOP_Rcvd) begin if (WrCycle & (WP == 0) & (WrCounter > 0)) begin WriteActive = 1; #(tWC); WriteActive = 0; end end always @(posedge STOP_Rcvd) begin #(1.0); STOP_Rcvd = 0; end // ------------------------------------------------------------------------------------------------------- // 1.11: Write Cycle Processor // ------------------------------------------------------------------------------------------------------- always @(posedge WriteActive) begin for (LoopIndex = 0; LoopIndex < WrCounter; LoopIndex = LoopIndex + 1) begin PageAddress = StartAddress[02:00] + LoopIndex; MemoryBlock[{StartAddress[07:03],PageAddress[02:00]}] = WrDataByte[LoopIndex[02:00]]; end end // ------------------------------------------------------------------------------------------------------- // 1.12: Read Data Multiplexor // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (BitCounter == 8) begin if (WrCycle & ADDR_Rcvd) begin RdPointer <= StartAddress + WrPointer + 1; end if (RdCycle) begin RdPointer <= RdPointer + 1; end end end assign RdDataByte = MemoryBlock[RdPointer[07:00]]; // ------------------------------------------------------------------------------------------------------- // 1.13: Read Data Processor // ------------------------------------------------------------------------------------------------------- always @(negedge SCL) begin if (RdCycle) begin if (BitCounter == 8) begin SDA_DO <= 0; SDA_OE <= 0; end else if (BitCounter == 9) begin SDA_DO <= RdDataByte[07]; if (MACK_Rcvd) SDA_OE <= 1; end else begin SDA_DO <= RdDataByte[7-BitCounter]; end end end // ------------------------------------------------------------------------------------------------------- // 1.14: SDA Data I/O Buffer // ------------------------------------------------------------------------------------------------------- bufif1 (SDA, 1'b0, SDA_DriveEnableDlyd); assign SDA_DriveEnable = !SDA_DO & SDA_OE; always @(SDA_DriveEnable) SDA_DriveEnableDlyd <= #(tAA) SDA_DriveEnable; // ******************************************************************************************************* // ** DEBUG LOGIC ** // ******************************************************************************************************* // ------------------------------------------------------------------------------------------------------- // 2.01: Memory Data Bytes // ------------------------------------------------------------------------------------------------------- wire [07:00] MemoryByte00 = MemoryBlock[00]; wire [07:00] MemoryByte01 = MemoryBlock[01]; wire [07:00] MemoryByte02 = MemoryBlock[02]; wire [07:00] MemoryByte03 = MemoryBlock[03]; wire [07:00] MemoryByte04 = MemoryBlock[04]; wire [07:00] MemoryByte05 = MemoryBlock[05]; wire [07:00] MemoryByte06 = MemoryBlock[06]; wire [07:00] MemoryByte07 = MemoryBlock[07]; wire [07:00] MemoryByte08 = MemoryBlock[08]; wire [07:00] MemoryByte09 = MemoryBlock[09]; wire [07:00] MemoryByte0A = MemoryBlock[10]; wire [07:00] MemoryByte0B = MemoryBlock[11]; wire [07:00] MemoryByte0C = MemoryBlock[12]; wire [07:00] MemoryByte0D = MemoryBlock[13]; wire [07:00] MemoryByte0E = MemoryBlock[14]; wire [07:00] MemoryByte0F = MemoryBlock[15]; // ------------------------------------------------------------------------------------------------------- // 2.02: Write Data Buffer // ------------------------------------------------------------------------------------------------------- wire [07:00] WriteData_0 = WrDataByte[00]; wire [07:00] WriteData_1 = WrDataByte[01]; wire [07:00] WriteData_2 = WrDataByte[02]; wire [07:00] WriteData_3 = WrDataByte[03]; wire [07:00] WriteData_4 = WrDataByte[04]; wire [07:00] WriteData_5 = WrDataByte[05]; wire [07:00] WriteData_6 = WrDataByte[06]; wire [07:00] WriteData_7 = WrDataByte[07]; // ******************************************************************************************************* // ** TIMING CHECKS ** // ******************************************************************************************************* wire TimingCheckEnable = (RESET == 0) & (SDA_OE == 0); specify specparam tHI = 600, // SCL pulse width - high tLO = 1300, // SCL pulse width - low tSU_STA = 600, // SCL to SDA setup time tHD_STA = 600, // SCL to SDA hold time tSU_DAT = 100, // SDA to SCL setup time tSU_STO = 600; // SCL to SDA setup time $width (posedge SCL, tHI); $width (negedge SCL, tLO); $setup (SCL, negedge SDA &&& TimingCheckEnable, tSU_STA); $setup (SDA, posedge SCL &&& TimingCheckEnable, tSU_DAT); $setup (SCL, posedge SDA &&& TimingCheckEnable, tSU_STO); $hold (negedge SDA &&& TimingCheckEnable, SCL, tHD_STA); endspecify endmodule uhd-3.5.5/fpga/usrp2/models/MULT18X18S.v000066400000000000000000000021251224274632000173260ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Model of the Xilinx mult18x18s for signed 18x18 bit multiplies, // As in the Spartan 3 series module MULT18X18S (output reg signed [35:0] P, input signed [17:0] A, input signed [17:0] B, input C, // Clock input CE, // Clock Enable input R // Synchronous Reset ); always @(posedge C) if(R) P <= 36'sd0; else if(CE) P <= A * B; endmodule // MULT18X18S uhd-3.5.5/fpga/usrp2/models/ODDR2.v000066400000000000000000000073311224274632000165660ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/spartan4/ODDR2.v,v 1.1 2004/06/21 21:45:36 wloo Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Functional Simulation Library Component // / / Dual Data Rate Output D Flip-Flop // /___/ /\ Filename : ODDR2.v // \ \ / \ Timestamp : Thu Mar 25 16:43:52 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. `timescale 1 ps / 1 ps module ODDR2 (Q, C0, C1, CE, D0, D1, R, S); output Q; input C0; input C1; input CE; input D0; input D1; tri0 GSR = glbl.GSR; input R; input S; parameter DDR_ALIGNMENT = "NONE"; parameter INIT = 1'b0; parameter SRTYPE = "SYNC"; reg q_out, q_d0_c1_out_int, q_d1_c0_out_int; buf buf_q (Q, q_out); initial begin if ((INIT != 1'b0) && (INIT != 1'b1)) begin $display("Attribute Syntax Error : The attribute INIT on ODDR2 instance %m is set to %d. Legal values for this attribute are 0 or 1.", INIT); $finish; end if ((DDR_ALIGNMENT != "NONE") && (DDR_ALIGNMENT != "C0") && (DDR_ALIGNMENT != "C1")) begin $display("Attribute Syntax Error : The attribute DDR_ALIGNMENT on ODDR2 instance %m is set to %s. Legal values for this attribute are NONE, C0 or C1.", DDR_ALIGNMENT); $finish; end if ((SRTYPE != "ASYNC") && (SRTYPE != "SYNC")) begin $display("Attribute Syntax Error : The attribute SRTYPE on ODDR2 instance %m is set to %s. Legal values for this attribute are ASYNC or SYNC.", SRTYPE); $finish; end end // initial begin always @(GSR or R or S) begin if (GSR == 1) begin assign q_out = INIT; assign q_d0_c1_out_int = INIT; assign q_d1_c0_out_int = INIT; end else begin deassign q_out; deassign q_d0_c1_out_int; deassign q_d1_c0_out_int; if (SRTYPE == "ASYNC") begin if (R == 1) begin assign q_out = 0; assign q_d0_c1_out_int = 0; assign q_d1_c0_out_int = 0; end else if (R == 0 && S == 1) begin assign q_out = 1; assign q_d0_c1_out_int = 1; assign q_d1_c0_out_int = 1; end end // if (SRTYPE == "ASYNC") end // if (GSR == 1'b0) end // always @ (GSR or R or S) always @(posedge C0) begin if (R == 1 && SRTYPE == "SYNC") begin q_out <= 0; q_d1_c0_out_int <= 0; end else if (R == 0 && S == 1 && SRTYPE == "SYNC") begin q_out <= 1; q_d1_c0_out_int <= 1; end else if (CE == 1 && R == 0 && S == 0) begin if (DDR_ALIGNMENT == "C1") q_out <= q_d0_c1_out_int; else begin q_out <= D0; if (DDR_ALIGNMENT == "C0") q_d1_c0_out_int <= D1; end end // if (CE == 1 && R == 0 && S == 0) end // always @ (posedge C0) always @(posedge C1) begin if (R == 1 && SRTYPE == "SYNC") begin q_out <= 0; q_d0_c1_out_int <= 0; end else if (R == 0 && S == 1 && SRTYPE == "SYNC") begin q_out <= 1; q_d0_c1_out_int <= 1; end else if (CE == 1 && R == 0 && S == 0) begin if (DDR_ALIGNMENT == "C0") q_out <= q_d1_c0_out_int; else begin q_out <= D1; if (DDR_ALIGNMENT == "C1") q_d0_c1_out_int <= D0; end end // if (CE == 1 && R == 0 && S == 0) end // always @ (negedge c_in) specify if (C0) (C0 => Q) = (100, 100); if (C1) (C1 => Q) = (100, 100); specparam PATHPULSE$ = 0; endspecify endmodule // ODDR2 uhd-3.5.5/fpga/usrp2/models/PLL_ADV.v000066400000000000000000002410331224274632000170740ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/rainier/PLL_ADV.v,v 1.43.4.1 2007/12/07 01:25:16 yanx Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Function Simulation Library Component // / / Phase Lock Loop Clock // /___/ /\ Filename : PLL_ADV.v // \ \ / \ Timestamp : Thu Mar 25 16:44:07 PST 2004 // \___\/\___\ // // Revision: // 03/15/05 - Initial version. // 10/14/05 - Add REL pin. // 11/07/05 - Add PMCD. // 12/02/05 - Change parameter default values. Add DRP read/write. // 12/22/05 - CR 222805 222809 fix. // 01/03/06 - Change RST_DEASSER_CLK value to CLKIN1 and CLKFB (BT#735). // 01/11/06 - Remove GSR from reset logic of PLL (CR 223099). // 01/26/06 - Add reset to locked logic (CR224502). // 02/16/06 - Support -360 6o +360 phase shifting (CR 225765) // 03/10/06 - Add parameter type declaration (CR 226003) // 03/17/06 - Using assign/deassign to reset pll_locked_tmp2 and reduce // lock time by MD (CR 224502). // 04/19/06 - Change i to i1 and i2 in clkvco_lk. (CR230260). // 07/17/06 - Remove i2 and first 4 clkvco_lk cycle generation (CR234931). // 08/23/06 - Use clkout_en_tmp to generate clkout_en0; Use block statement to // reset clock stop counter and flag. (CR422250) // 09/19/06 - md_product update (CR 424286). // 09/27/06 - Add error check for RESET_ON_LOSS_OF_LOCK (CR 425255). // 11/10/06 - Keep 3 digits for real in duty cycle check function. (CR 428703). // 01/12/07 - Add CLKOUT_DESKEW_ADJUST parameters (CR 432189). // 03/30/07 - Fix error message for CLKSEL change in RST=0 (CR 436927). // 04/09/07 - Enhance error message for RESET_ON_LOSS_OF_LOCK (CR 437405). // 04/10/07 - Using assign/deassign to reset signals with # delay (CR 437660). // 05/22/07 - Add setup check for REL (438781). // 06/04/07 - Add wire declaration to internal signal. // 06/8/07 - Generate clkfb_tst when GSR=0; // - Chang VCOCLK_FREQ_MAX and VCOCLK_FREQ_MIN to parameter for simprim (BT1485). // 06/18/07 - Improve error message for VCO (CR ). Initialize DRP mem (CR ). // - Add CLKFBIN pulse width check (BT1476). // 06/28/07 - Initial DRP memory (CR 434042), Error message improve (CR 438250). // 07/11/07 - change daddr_in to 5 bits (CR 443757). // 08/02/07 - Remove numbers from CLKOUT DESKEW_ADJUST check (CR443161). // 08/21/07 - Not check CLKIN period when PMCD mode set (445101). // Fix DUTY_CYCLE_MAX formula in case of divider larger than O_MAX_HT_LT (CR445945). // Add warning if phase shift over pll ability (63 vco) (CR446037). // 09/20/07 - Seperate fb_delay and delay_edge to handle 0 fb_delay (CR448938) // 10/23/07 - Add warnings to initial phase shift calculation (CR448965) // 11/01/07 - Remove zero check for CLKOUTx dly register bit15-8 (CR434042) // 12/06/07 - Add I/O buf to simprim (CR456124) // End Revision `timescale 1 ps / 1 ps `define PLL_LOCK_TIME 7 module PLL_ADV ( CLKFBDCM, CLKFBOUT, CLKOUT0, CLKOUT1, CLKOUT2, CLKOUT3, CLKOUT4, CLKOUT5, CLKOUTDCM0, CLKOUTDCM1, CLKOUTDCM2, CLKOUTDCM3, CLKOUTDCM4, CLKOUTDCM5, DO, DRDY, LOCKED, CLKFBIN, CLKIN1, CLKIN2, CLKINSEL, DADDR, DCLK, DEN, DI, DWE, REL, RST ); parameter BANDWIDTH = "OPTIMIZED"; parameter CLKFBOUT_DESKEW_ADJUST = "NONE"; parameter CLKOUT0_DESKEW_ADJUST = "NONE"; parameter CLKOUT1_DESKEW_ADJUST = "NONE"; parameter CLKOUT2_DESKEW_ADJUST = "NONE"; parameter CLKOUT3_DESKEW_ADJUST = "NONE"; parameter CLKOUT4_DESKEW_ADJUST = "NONE"; parameter CLKOUT5_DESKEW_ADJUST = "NONE"; parameter integer CLKFBOUT_MULT = 1; parameter real CLKFBOUT_PHASE = 0.0; parameter real CLKIN1_PERIOD = 0.000; parameter real CLKIN2_PERIOD = 0.000; parameter integer CLKOUT0_DIVIDE = 1; parameter real CLKOUT0_DUTY_CYCLE = 0.5; parameter real CLKOUT0_PHASE = 0.0; parameter integer CLKOUT1_DIVIDE = 1; parameter real CLKOUT1_DUTY_CYCLE = 0.5; parameter real CLKOUT1_PHASE = 0.0; parameter integer CLKOUT2_DIVIDE = 1; parameter real CLKOUT2_DUTY_CYCLE = 0.5; parameter real CLKOUT2_PHASE = 0.0; parameter integer CLKOUT3_DIVIDE = 1; parameter real CLKOUT3_DUTY_CYCLE = 0.5; parameter real CLKOUT3_PHASE = 0.0; parameter integer CLKOUT4_DIVIDE = 1; parameter real CLKOUT4_DUTY_CYCLE = 0.5; parameter real CLKOUT4_PHASE = 0.0; parameter integer CLKOUT5_DIVIDE = 1; parameter real CLKOUT5_DUTY_CYCLE = 0.5; parameter real CLKOUT5_PHASE = 0.0; parameter COMPENSATION = "SYSTEM_SYNCHRONOUS"; parameter integer DIVCLK_DIVIDE = 1; parameter EN_REL = "FALSE"; parameter PLL_PMCD_MODE = "FALSE"; parameter real REF_JITTER = 0.100; parameter RESET_ON_LOSS_OF_LOCK = "FALSE"; parameter RST_DEASSERT_CLK = "CLKIN1"; localparam VCOCLK_FREQ_MAX = 1100; localparam VCOCLK_FREQ_MIN = 400; output CLKFBDCM; output CLKFBOUT; output CLKOUT0; output CLKOUT1; output CLKOUT2; output CLKOUT3; output CLKOUT4; output CLKOUT5; output CLKOUTDCM0; output CLKOUTDCM1; output CLKOUTDCM2; output CLKOUTDCM3; output CLKOUTDCM4; output CLKOUTDCM5; output DRDY; output LOCKED; output [15:0] DO; input CLKFBIN; input CLKIN1; input CLKIN2; input CLKINSEL; input DCLK; input DEN; input DWE; input REL; input RST; input [15:0] DI; input [4:0] DADDR; localparam VCOCLK_FREQ_TARGET = 800; localparam CLKIN_FREQ_MAX = 1000; localparam CLKIN_FREQ_MIN = 1; //need check speed file, current is TBD localparam CLKPFD_FREQ_MAX = 550; localparam CLKPFD_FREQ_MIN = 1; //need check speed file, current is TBD localparam M_MIN = 1; localparam M_MAX = 74; localparam D_MIN = 1; localparam D_MAX = 52; localparam O_MIN = 1; localparam O_MAX = 128; localparam O_MAX_HT_LT = 64; localparam REF_CLK_JITTER_MAX = 350; localparam REF_CLK_JITTER_SCALE = 0.1; localparam MAX_FEEDBACK_DELAY = 10.0; localparam MAX_FEEDBACK_DELAY_SCALE = 1.0; tri0 GSR = glbl.GSR; reg [4:0] daddr_lat; reg valid_daddr; reg drdy_out; reg drp_lock, drp_lock1; reg [15:0] dr_sram [31:0]; reg [160:0] tmp_string; wire CLKFBIN, CLKIN1, CLKIN2, CLKINSEL ; wire rst_in, RST, orig_rst_in ; wire locked_out; wire clkvco_lk_rst; reg clk0_out, clk1_out, clk2_out, clk3_out, clk4_out, clk5_out; reg clkfb_out, clkfbm1_out; reg clkout_en, clkout_en1, clkout_en0, clkout_en0_tmp; integer clkout_cnt, clkin_cnt, clkin_lock_cnt; integer clkout_en_time, locked_en_time, lock_cnt_max; reg clkvco_lk, clkvco_free, clkvco; reg fbclk_tmp; reg rst_in1, rst_unlock, rst_on_loss; time rst_edge, rst_ht; reg fb_delay_found, fb_delay_found_tmp; reg clkfb_tst; real fb_delay_max; time fb_delay, clkvco_delay, val_tmp, dly_tmp, fbm1_comp_delay; time clkin_edge, delay_edge; real period_clkin; integer clkin_period [4:0]; integer period_vco, period_vco_half, period_vco_max, period_vco_min; integer period_vco1, period_vco2, period_vco3, period_vco4; integer period_vco5, period_vco6, period_vco7; integer period_vco_target, period_vco_target_half; integer period_fb, period_avg; real clkvco_freq_init_chk, clkfbm1pm_rl; real tmp_real; integer i, j, i1, i2; integer md_product, md_product_dbl, clkin_stop_max, clkfb_stop_max; time pll_locked_delay, clkin_dly_t, clkfb_dly_t; reg clkpll_dly, clkfbin_dly; wire pll_unlock; reg pll_locked_tmp1, pll_locked_tmp2; reg lock_period; reg pll_locked_tm, unlock_recover; reg clkin_stopped_p, clkin_stopped_n; reg clkfb_stopped_p, clkfb_stopped_n; wire clkin_stopped, clkfb_stopped; reg clkpll_jitter_unlock; integer clkstop_cnt_p, clkstop_cnt_n, clkfbstop_cnt_p, clkfbstop_cnt_n; integer clkin_jit, REF_CLK_JITTER_MAX_tmp; wire REL, DWE, DEN, DCLK, rel_o_mux_clk_tmp, clka1_in, clkb1_in; wire init_trig, clkpll_tmp, clkpll, clk0in, clk1in, clk2in, clk3in, clk4in, clk5in; wire clkfbm1in, clkfbm1ps_en; reg clkout0_out; reg clkout1_out; reg clkout2_out; reg clkout3_out; reg clkout4_out; reg clkout5_out; reg clka1_out, clkb1_out, clka1d2_out, clka1d4_out, clka1d8_out; reg clkdiv_rel_rst, qrel_o_reg1, qrel_o_reg2, qrel_o_reg3, rel_o_mux_sel; reg pmcd_mode; reg chk_ok; wire rel_rst_o, rel_o_mux_clk; wire clk0ps_en, clk1ps_en, clk2ps_en, clk3ps_en, clk4ps_en, clk5ps_en; reg [7:0] clkout_mux; reg [2:0] clk0pm_sel, clk1pm_sel, clk2pm_sel, clk3pm_sel, clk4pm_sel, clk5pm_sel; reg [2:0] clkfbm1pm_sel; reg clk0_edge, clk1_edge, clk2_edge, clk3_edge, clk4_edge, clk5_edge; reg clkfbm1_edge, clkind_edge; reg clk0_nocnt, clk1_nocnt, clk2_nocnt, clk3_nocnt, clk4_nocnt, clk5_nocnt; reg clkfbm1_nocnt, clkind_nocnt; reg clkind_edget, clkind_nocntt; reg [5:0] clk0_dly_cnt, clkout0_dly; reg [5:0] clk1_dly_cnt, clkout1_dly; reg [5:0] clk2_dly_cnt, clkout2_dly; reg [5:0] clk3_dly_cnt, clkout3_dly; reg [5:0] clk4_dly_cnt, clkout4_dly; reg [5:0] clk5_dly_cnt, clkout5_dly; reg [6:0] clk0_ht, clk0_lt; reg [6:0] clk1_ht, clk1_lt; reg [6:0] clk2_ht, clk2_lt; reg [6:0] clk3_ht, clk3_lt; reg [6:0] clk4_ht, clk4_lt; reg [6:0] clk5_ht, clk5_lt; reg [5:0] clkfbm1_dly_cnt, clkfbm1_dly; reg [6:0] clkfbm1_ht, clkfbm1_lt; reg [7:0] clkind_ht, clkind_lt; reg [7:0] clkind_htt, clkind_ltt; reg [7:0] clk0_ht1, clk0_cnt, clk0_div, clk0_div1; reg [7:0] clk1_ht1, clk1_cnt, clk1_div, clk1_div1; reg [7:0] clk2_ht1, clk2_cnt, clk2_div, clk2_div1; reg [7:0] clk3_ht1, clk3_cnt, clk3_div, clk3_div1; reg [7:0] clk4_ht1, clk4_cnt, clk4_div, clk4_div1; reg [7:0] clk5_ht1, clk5_cnt, clk5_div, clk5_div1; reg [7:0] clkfbm1_ht1, clkfbm1_cnt, clkfbm1_div, clkfbm1_div1; reg [7:0] clkind_div; reg [3:0] pll_cp, pll_res; reg [1:0] pll_lfhf; reg [1:0] pll_cpres = 2'b01; reg notifier; wire [15:0] do_out, di_in; wire clkin1_in, clkin2_in, clkfb_in, clkinsel_in, dwe_in, den_in, dclk_in; wire [4:0] daddr_in; wire rel_in, gsr_in, rst_input; assign #100 LOCKED = locked_out; assign #100 DRDY = drdy_out; assign #100 DO = do_out; assign clkin1_in = CLKIN1; assign clkin2_in = CLKIN2; assign clkfb_in = CLKFBIN; assign clkinsel_in = CLKINSEL; assign rst_input = RST; assign daddr_in = DADDR; assign di_in = DI; assign dwe_in = DWE; assign den_in = DEN; assign dclk_in = DCLK; assign rel_in = REL; initial begin #1; if ($realtime == 0) begin $display ("Simulator Resolution Error : Simulator resolution is set to a value greater than 1 ps."); $display ("In order to simulate the PLL_ADV, the simulator resolution must be set to 1ps or smaller."); $finish; end end initial begin case (COMPENSATION) "SYSTEM_SYNCHRONOUS" : ; "SOURCE_SYNCHRONOUS" : ; "INTERNAL" : ; "EXTERNAL" : ; "DCM2PLL" : ; "PLL2DCM" : ; default : begin $display("Attribute Syntax Error : The Attribute COMPENSATION on PLL_ADV instance %m is set to %s. Legal values for this attribute are SYSTEM_SYNCHRONOUS, SOURCE_SYNCHRONOUS, INTERNAL, EXTERNAL, DCM2PLL or PLL2DCM.", COMPENSATION); $finish; end endcase case (BANDWIDTH) "HIGH" : ; "LOW" : ; "OPTIMIZED" : ; default : begin $display("Attribute Syntax Error : The Attribute BANDWIDTH on PLL_ADV instance %m is set to %s. Legal values for this attribute are HIGH, LOW or OPTIMIZED.", BANDWIDTH); $finish; end endcase case (CLKOUT0_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKOUT0_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC.", CLKOUT0_DESKEW_ADJUST); $finish; end endcase case (CLKOUT1_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKOUT1_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC .", CLKOUT1_DESKEW_ADJUST); $finish; end endcase case (CLKOUT2_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKOUT2_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC.", CLKOUT2_DESKEW_ADJUST); $finish; end endcase case (CLKOUT3_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKOUT3_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC.", CLKOUT3_DESKEW_ADJUST); $finish; end endcase case (CLKOUT4_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKOUT4_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC.", CLKOUT4_DESKEW_ADJUST); $finish; end endcase case (CLKOUT5_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKOUT5_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC.", CLKOUT5_DESKEW_ADJUST); $finish; end endcase case (CLKFBOUT_DESKEW_ADJUST) "NONE" : ; "PPC" : ; default : begin $display("Attribute Syntax Error : The Attribute CLKFBOUT_DESKEW_ADJUST on PLL_ADV instance %m is set to %s. Legal values for this attribute are NONE or PPC.", CLKFBOUT_DESKEW_ADJUST); $finish; end endcase case (PLL_PMCD_MODE) "TRUE" : pmcd_mode = 1'b1; "FALSE" : pmcd_mode = 1'b0; default : begin $display("Attribute Syntax Error : The Attribute PLL_PMCD_MODE on PLL_ADV instance %m is set to %s. Legal values for this attribute are FALSE or TRUE.", PLL_PMCD_MODE); $finish; end endcase tmp_string = "CLKOUT0_DIVIDE"; chk_ok = para_int_pmcd_chk(CLKOUT0_DIVIDE, tmp_string, 1, 128, pmcd_mode, 8); tmp_string = "CLKOUT0_PHASE"; chk_ok = para_real_pmcd_chk(CLKOUT0_PHASE, tmp_string, -360.0, 360.0, pmcd_mode, 0.0); tmp_string = "CLKOUT0_DUTY_CYCLE"; chk_ok = para_real_pmcd_chk(CLKOUT0_DUTY_CYCLE, tmp_string, 0.0, 1.0, pmcd_mode, 0.5); tmp_string = "CLKOUT1_DIVIDE"; chk_ok = para_int_pmcd_chk(CLKOUT1_DIVIDE, tmp_string, 1, 128, pmcd_mode, 4); tmp_string = "CLKOUT1_PHASE"; chk_ok = para_real_pmcd_chk(CLKOUT1_PHASE, tmp_string, -360.0, 360.0, pmcd_mode, 0.0); tmp_string = "CLKOUT1_DUTY_CYCLE"; chk_ok = para_real_pmcd_chk(CLKOUT1_DUTY_CYCLE, tmp_string, 0.0, 1.0, pmcd_mode, 0.5); tmp_string = "CLKOUT2_DIVIDE"; chk_ok = para_int_pmcd_chk(CLKOUT2_DIVIDE, tmp_string, 1, 128, pmcd_mode, 2); tmp_string = "CLKOUT2_PHASE"; chk_ok = para_real_pmcd_chk(CLKOUT2_PHASE, tmp_string, -360.0, 360.0, pmcd_mode, 0.0); tmp_string = "CLKOUT2_DUTY_CYCLE"; chk_ok = para_real_pmcd_chk(CLKOUT2_DUTY_CYCLE, tmp_string, 0.0, 1.0, pmcd_mode, 0.5); tmp_string = "CLKOUT3_DIVIDE"; chk_ok = para_int_pmcd_chk(CLKOUT3_DIVIDE, tmp_string, 1, 128, pmcd_mode, 1); tmp_string = "CLKOUT3_PHASE"; chk_ok = para_real_pmcd_chk(CLKOUT3_PHASE, tmp_string, -360.0, 360.0, pmcd_mode, 0.0); tmp_string = "CLKOUT3_DUTY_CYCLE"; chk_ok = para_real_pmcd_chk(CLKOUT3_DUTY_CYCLE, tmp_string, 0.0, 1.0, pmcd_mode, 0.5); tmp_string = "CLKOUT4_DIVIDE"; chk_ok = para_int_range_chk(CLKOUT4_DIVIDE, tmp_string, 1, 128); tmp_string = "CLKOUT4_PHASE"; chk_ok = para_real_range_chk(CLKOUT4_PHASE, tmp_string, -360.0, 360.0); tmp_string = "CLKOUT4_DUTY_CYCLE"; chk_ok = para_real_range_chk(CLKOUT4_DUTY_CYCLE, tmp_string, 0.0, 1.0); tmp_string = "CLKOUT5_DIVIDE"; chk_ok = para_int_range_chk (CLKOUT5_DIVIDE, tmp_string, 1, 128); tmp_string = "CLKOUT5_PHASE"; chk_ok = para_real_range_chk(CLKOUT5_PHASE, tmp_string, -360.0, 360.0); tmp_string = "CLKOUT5_DUTY_CYCLE"; chk_ok = para_real_range_chk (CLKOUT5_DUTY_CYCLE, tmp_string, 0.0, 1.0); tmp_string = "CLKFBOUT_MULT"; chk_ok = para_int_pmcd_chk(CLKFBOUT_MULT, tmp_string, 1, 74, pmcd_mode, 1); tmp_string = "CLKFBOUT_PHASE"; chk_ok = para_real_pmcd_chk(CLKFBOUT_PHASE, tmp_string, -360.0, 360.0, pmcd_mode, 0.0); tmp_string = "DIVCLK_DIVIDE"; chk_ok = para_int_range_chk (DIVCLK_DIVIDE, tmp_string, 1, 52); tmp_string = "REF_JITTER"; chk_ok = para_real_range_chk (REF_JITTER, tmp_string, 0.0, 0.999); if (((CLKIN1_PERIOD < 1.0) || (CLKIN1_PERIOD > 52.630)) && (pmcd_mode == 0)) begin $display("Attribute Syntax Error : CLKIN1_PERIOD is not in range 1.0 ... 52.630."); end if (((CLKIN2_PERIOD < 1.0) || (CLKIN2_PERIOD > 52.630)) && (pmcd_mode == 0)) begin $display("Attribute Syntax Error : CLKIN1_PERIOD is not in range 1.0 ... 52.630."); end case (RESET_ON_LOSS_OF_LOCK) "FALSE" : rst_on_loss = 1'b0; // "TRUE" : if (pmcd_mode) rst_on_loss = 1'b0; else rst_on_loss = 1'b1; default : begin $display("Attribute Syntax Error : The Attribute RESET_ON_LOSS_OF_LOCK on PLL_ADV instance %m is set to %s. This attribute must always be set to FALSE for X_PLL_ADV to function correctly. Please correct the setting for the attribute and re-run the simulation.", RESET_ON_LOSS_OF_LOCK); $finish; end endcase case (CLKFBOUT_MULT) 1 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1101; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b0101; pll_res = 4'b1111; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b0101; pll_res = 4'b1111; pll_lfhf = 2'b11; end 2 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1111; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b1111; pll_lfhf = 2'b11; end 3 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b0111; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b0110; pll_res = 4'b0101; pll_lfhf = 2'b11; end 4 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1101; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b0111; pll_res = 4'b1001; pll_lfhf = 2'b11; end 5 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b0101; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1101; pll_res = 4'b1001; pll_lfhf = 2'b11; end 6 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b0101; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b0111; pll_res = 4'b0001; pll_lfhf = 2'b11; end 7 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1001; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b0001; pll_lfhf = 2'b11; end 8 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b1110; pll_lfhf = 2'b11; end 9 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b0001; pll_lfhf = 2'b11; end 10 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b0001; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b0001; pll_lfhf = 2'b11; end 11 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b0001; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1101; pll_res = 4'b0110; pll_lfhf = 2'b11; end 12 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b0110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b0110; pll_lfhf = 2'b11; end 13 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b0110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b0110; pll_lfhf = 2'b11; end 14 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b0110; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b0110; pll_lfhf = 2'b11; end 15 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH === "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH === "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b1010; pll_lfhf = 2'b11; end 16 : if (BANDWIDTH === "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b1010; pll_lfhf = 2'b11; end 17 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end 18 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end 19 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end 20 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b1100; pll_lfhf = 2'b11; end 21 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b1100; pll_lfhf = 2'b11; end 22 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1101; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1101; pll_res = 4'b1100; pll_lfhf = 2'b11; end 23 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1101; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1101; pll_res = 4'b1100; pll_lfhf = 2'b11; end 24 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1101; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0111; pll_res = 4'b0010; pll_lfhf = 2'b11; end 25 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end 26 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end 27 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1111; pll_res = 4'b1100; pll_lfhf = 2'b11; end 28 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end 29 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end 30 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0001; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1110; pll_res = 4'b1100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end 31 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end 32 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b1100; pll_res = 4'b0010; pll_lfhf = 2'b11; end 33 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b1111; pll_res = 4'b1010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 34 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0111; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 35 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0111; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 36 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0111; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 37 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0110; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 38 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0110; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 39 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end 40 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 41 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 42 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 43 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 44 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0100; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 45 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 46 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b1000; pll_lfhf = 2'b11; end 47 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0101; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 48 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0101; pll_res = 4'b0010; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 49 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 50 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 51 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 52 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 53 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 54 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 55 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end 56 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0011; pll_res = 4'b0100; pll_lfhf = 2'b11; end 57 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 58 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 59 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 60 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 61 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 62 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 63 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end 64 : if (BANDWIDTH == "LOW") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "HIGH") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end else if (BANDWIDTH == "OPTIMIZED") begin pll_cp = 4'b0010; pll_res = 4'b1000; pll_lfhf = 2'b11; end endcase tmp_string = "DIVCLK_DIVIDE"; chk_ok = para_int_range_chk (DIVCLK_DIVIDE, tmp_string, D_MIN, D_MAX); tmp_string = "CLKFBOUT_MULT"; chk_ok = para_int_range_chk (CLKFBOUT_MULT, tmp_string, M_MIN, M_MAX); tmp_string = "CLKOUT0_DUTY_CYCLE"; chk_ok = clkout_duty_chk (CLKOUT0_DIVIDE, CLKOUT0_DUTY_CYCLE, tmp_string); tmp_string = "CLKOUT1_DUTY_CYCLE"; chk_ok = clkout_duty_chk (CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE, tmp_string); tmp_string = "CLKOUT2_DUTY_CYCLE"; chk_ok = clkout_duty_chk (CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE, tmp_string); tmp_string = "CLKOUT3_DUTY_CYCLE"; chk_ok = clkout_duty_chk (CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE, tmp_string); tmp_string = "CLKOUT4_DUTY_CYCLE"; chk_ok = clkout_duty_chk (CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE, tmp_string); tmp_string = "CLKOUT5_DUTY_CYCLE"; chk_ok = clkout_duty_chk (CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE, tmp_string); period_vco_max = 1000000 / VCOCLK_FREQ_MIN; period_vco_min = 1000000 / VCOCLK_FREQ_MAX; period_vco_target = 1000000 / VCOCLK_FREQ_TARGET; period_vco_target_half = period_vco_target / 2; fb_delay_max = MAX_FEEDBACK_DELAY * MAX_FEEDBACK_DELAY_SCALE; md_product = CLKFBOUT_MULT * DIVCLK_DIVIDE; md_product_dbl = md_product * 2; clkout_en_time = `PLL_LOCK_TIME + 2; // locked_en_time = md_product_dbl + clkout_en_time +2; // for DCM 3 cycle reset requirement locked_en_time = md_product + clkout_en_time + 2; // for DCM 3 cycle reset requirement lock_cnt_max = locked_en_time + 6; clkfb_stop_max = 3; clkin_stop_max = DIVCLK_DIVIDE + 1; REF_CLK_JITTER_MAX_tmp = REF_CLK_JITTER_MAX; clk_out_para_cal (clk0_ht, clk0_lt, clk0_nocnt, clk0_edge, CLKOUT0_DIVIDE, CLKOUT0_DUTY_CYCLE); clk_out_para_cal (clk1_ht, clk1_lt, clk1_nocnt, clk1_edge, CLKOUT1_DIVIDE, CLKOUT1_DUTY_CYCLE); clk_out_para_cal (clk2_ht, clk2_lt, clk2_nocnt, clk2_edge, CLKOUT2_DIVIDE, CLKOUT2_DUTY_CYCLE); clk_out_para_cal (clk3_ht, clk3_lt, clk3_nocnt, clk3_edge, CLKOUT3_DIVIDE, CLKOUT3_DUTY_CYCLE); clk_out_para_cal (clk4_ht, clk4_lt, clk4_nocnt, clk4_edge, CLKOUT4_DIVIDE, CLKOUT4_DUTY_CYCLE); clk_out_para_cal (clk5_ht, clk5_lt, clk5_nocnt, clk5_edge, CLKOUT5_DIVIDE, CLKOUT5_DUTY_CYCLE); clk_out_para_cal (clkfbm1_ht, clkfbm1_lt, clkfbm1_nocnt, clkfbm1_edge, CLKFBOUT_MULT, 0.50); clk_out_para_cal (clkind_ht, clkind_lt, clkind_nocnt, clkind_edge, DIVCLK_DIVIDE, 0.50); tmp_string = "CLKOUT0_PHASE"; clkout_dly_cal (clkout0_dly, clk0pm_sel, CLKOUT0_DIVIDE, CLKOUT0_PHASE, tmp_string); tmp_string = "CLKOUT1_PHASE"; clkout_dly_cal (clkout1_dly, clk1pm_sel, CLKOUT1_DIVIDE, CLKOUT1_PHASE, tmp_string); tmp_string = "CLKOUT2_PHASE"; clkout_dly_cal (clkout2_dly, clk2pm_sel, CLKOUT2_DIVIDE, CLKOUT2_PHASE, tmp_string); tmp_string = "CLKOUT3_PHASE"; clkout_dly_cal (clkout3_dly, clk3pm_sel, CLKOUT3_DIVIDE, CLKOUT3_PHASE, tmp_string); tmp_string = "CLKOUT4_PHASE"; clkout_dly_cal (clkout4_dly, clk4pm_sel, CLKOUT4_DIVIDE, CLKOUT4_PHASE, tmp_string); tmp_string = "CLKOUT5_PHASE"; clkout_dly_cal (clkout5_dly, clk5pm_sel, CLKOUT5_DIVIDE, CLKOUT5_PHASE, tmp_string); tmp_string = "CLKFBOUT_PHASE"; clkout_dly_cal (clkfbm1_dly, clkfbm1pm_sel, CLKFBOUT_MULT, CLKFBOUT_PHASE, tmp_string); clkind_div = DIVCLK_DIVIDE; dr_sram[5'b11100] = {8'bx, clk0_edge, clk0_nocnt, clkout0_dly[5:0]}; dr_sram[5'b11011] = {clk0pm_sel[2:0], 1'b1, clk0_ht[5:0], clk0_lt[5:0]}; dr_sram[5'b11010] = {8'bx, clk1_edge, clk1_nocnt, clkout1_dly[5:0]}; dr_sram[5'b11001] = {clk1pm_sel[2:0], 1'b1, clk1_ht[5:0], clk1_lt[5:0]}; dr_sram[5'b10111] = {8'bx, clk2_edge, clk2_nocnt, clkout2_dly[5:0]}; dr_sram[5'b10110] = {clk2pm_sel[2:0], 1'b1, clk2_ht[5:0], clk2_lt[5:0]}; dr_sram[5'b10101] = {8'bx, clk3_edge, clk3_nocnt, clkout3_dly[5:0]}; dr_sram[5'b10100] = {clk3pm_sel[2:0], 1'b1, clk3_ht[5:0], clk3_lt[5:0]}; dr_sram[5'b10011] = {8'bx, clk4_edge, clk4_nocnt, clkout4_dly[5:0]}; dr_sram[5'b10010] = {clk4pm_sel[2:0], 1'b1, clk4_ht[5:0], clk4_lt[5:0]}; dr_sram[5'b01111] = {8'bx, clk5_edge, clk5_nocnt, clkout5_dly[5:0]}; dr_sram[5'b01110] = {clk5pm_sel[2:0], 1'b1, clk5_ht[5:0], clk5_lt[5:0]}; dr_sram[5'b01101] = {8'bx, clkfbm1_edge, clkfbm1_nocnt, clkfbm1_dly[5:0]}; dr_sram[5'b01100] = {clkfbm1pm_sel[2:0], 1'b1, clkfbm1_ht[5:0], clkfbm1_lt[5:0]}; dr_sram[5'b00110] = {2'bx, clkind_edge, clkind_nocnt, clkind_ht[5:0], clkind_lt[5:0]}; dr_sram[5'b00001] = {8'bx, pll_lfhf, pll_cpres, pll_cp}; dr_sram[5'b00000] = {6'bx, pll_res, 6'bx}; // **** PMCD ******* //*** Clocks MUX case (RST_DEASSERT_CLK) "CLKIN1" : rel_o_mux_sel = 1'b1; "CLKFBIN" : rel_o_mux_sel = 1'b0; default : begin $display("Attribute Syntax Error : The attribute RST_DEASSERT_CLK on PLL_ADV instance %m is set to %s. Legal values for this attribute are CLKIN1 and CLKFBIN.", RST_DEASSERT_CLK); $finish; end endcase //*** CLKDIV_RST case (EN_REL) "FALSE" : clkdiv_rel_rst = 1'b0; "TRUE" : clkdiv_rel_rst = 1'b1; default : begin $display("Attribute Syntax Error : The attribute EN_REL on PLL_ADV instance %m is set to %s. Legal values for this attribute are TRUE or FALSE.", EN_REL); $finish; end endcase end initial begin rst_in1 = 0; rst_unlock = 0; clkin_period[0] = 0; clkin_period[1] = 0; clkin_period[2] = 0; clkin_period[3] = 0; clkin_period[4] = 0; period_avg = 0; period_fb = 0; fb_delay = 0; clkfbm1_div = 1; clkfbm1_div1 = 0; clkvco_delay = 0; fbm1_comp_delay = 0; clkfbm1pm_rl = 0; period_vco = 0; period_vco1 = 0; period_vco2 = 0; period_vco3 = 0; period_vco4 = 0; period_vco5 = 0; period_vco6 = 0; period_vco7 = 0; period_vco_half = 0; fb_delay_found = 0; fb_delay_found_tmp = 0; clkin_edge = 0; delay_edge = 0; clkvco_free = 0; clkvco_lk = 0; fbclk_tmp = 0; clkfb_tst = 0; clkout_cnt = 0; clkout_en = 0; clkout_en0 = 0; clkout_en0_tmp = 0; clkout_en1 = 0; pll_locked_tmp1 = 0; pll_locked_tmp2 = 0; pll_locked_tm = 0; pll_locked_delay = 0; clkout_mux = 3'b0; unlock_recover = 0; clkstop_cnt_p = 0; clkstop_cnt_n = 0; clkpll_jitter_unlock = 0; clkin_jit = 0; clkin_cnt = 0; clkin_lock_cnt = 0; clkin_stopped_p = 0; clkin_stopped_n = 0; clkfb_stopped_p = 0; clkfb_stopped_n = 0; clkpll_dly = 0; clkfbin_dly = 0; clkfbstop_cnt_p = 0; clkfbstop_cnt_n = 0; lock_period = 0; rst_edge = 0; rst_ht = 0; drdy_out = 0; drp_lock = 0; clkout0_out = 0; clkout1_out = 0; clkout2_out = 0; clkout3_out = 0; clkout4_out = 0; clkout5_out = 0; clka1_out = 1'b0; clkb1_out = 1'b0; clka1d2_out = 1'b0; clka1d4_out = 1'b0; clka1d8_out = 1'b0; qrel_o_reg1 = 1'b0; qrel_o_reg2 = 1'b0; qrel_o_reg3 = 1'b0; clk0_dly_cnt = 6'b0; clk1_dly_cnt = 6'b0; clk2_dly_cnt = 6'b0; clk3_dly_cnt = 6'b0; clk4_dly_cnt = 6'b0; clk5_dly_cnt = 6'b0; clkfbm1_dly_cnt = 6'b0; clk0_cnt = 8'b0; clk1_cnt = 8'b0; clk2_cnt = 8'b0; clk3_cnt = 8'b0; clk4_cnt = 8'b0; clk5_cnt = 8'b0; clkfbm1_cnt = 8'b0; clk0_out = 0; clk1_out = 0; clk2_out = 0; clk3_out = 0; clk4_out = 0; clk5_out = 0; clkfb_out = 0; clkfbm1_out = 0; end // PMCD function //*** asyn RST always @(orig_rst_in) if (orig_rst_in == 1'b1) begin assign qrel_o_reg1 = 1'b1; assign qrel_o_reg2 = 1'b1; assign qrel_o_reg3 = 1'b1; end else if (orig_rst_in == 1'b0) begin deassign qrel_o_reg1; deassign qrel_o_reg2; deassign qrel_o_reg3; end //*** Clocks MUX assign rel_o_mux_clk_tmp = rel_o_mux_sel ? clkin1_in : clkfb_in; assign rel_o_mux_clk = (pmcd_mode) ? rel_o_mux_clk_tmp : 0; assign clka1_in = (pmcd_mode) ? clkin1_in : 0; assign clkb1_in = (pmcd_mode) ? clkfb_in : 0; //*** Rel and Rst always @(posedge rel_o_mux_clk) qrel_o_reg1 <= 1'b0; always @(negedge rel_o_mux_clk) qrel_o_reg2 <= qrel_o_reg1; always @(posedge rel_in) qrel_o_reg3 <= 1'b0; assign rel_rst_o = clkdiv_rel_rst ? (qrel_o_reg3 || qrel_o_reg1) : qrel_o_reg1; //*** CLKA always @(clka1_in or qrel_o_reg2) if (qrel_o_reg2 == 1'b1) clka1_out <= 1'b0; else if (qrel_o_reg2 == 1'b0) clka1_out <= clka1_in; //*** CLKB always @(clkb1_in or qrel_o_reg2) if (qrel_o_reg2 == 1'b1) clkb1_out <= 1'b0; else if (qrel_o_reg2 == 1'b0) clkb1_out <= clkb1_in; //*** Clock divider always @(posedge clka1_in or posedge rel_rst_o) if (rel_rst_o == 1'b1) clka1d2_out <= 1'b0; else if (rel_rst_o == 1'b0) clka1d2_out <= ~clka1d2_out; always @(posedge clka1d2_out or posedge rel_rst_o) if (rel_rst_o == 1'b1) clka1d4_out <= 1'b0; else if (rel_rst_o == 1'b0) clka1d4_out <= ~clka1d4_out; always @(posedge clka1d4_out or posedge rel_rst_o) if (rel_rst_o == 1'b1) clka1d8_out <= 1'b0; else if (rel_rst_o == 1'b0) clka1d8_out <= ~clka1d8_out; assign CLKOUT5 = (pmcd_mode) ? 0 : clkout5_out; assign CLKOUT4 = (pmcd_mode) ? 0 : clkout4_out; assign CLKOUT3 = (pmcd_mode) ? clka1_out : clkout3_out; assign CLKOUT2 = (pmcd_mode) ? clka1d2_out : clkout2_out; assign CLKOUT1 = (pmcd_mode) ? clka1d4_out : clkout1_out; assign CLKOUT0 = (pmcd_mode) ? clka1d8_out : clkout0_out; assign CLKFBOUT = (pmcd_mode) ? clkb1_out : clkfb_out; assign CLKOUTDCM5 = (pmcd_mode) ? 0 : clkout5_out; assign CLKOUTDCM4 = (pmcd_mode) ? 0 : clkout4_out; assign CLKOUTDCM3 = (pmcd_mode) ? clka1_out : clkout3_out; assign CLKOUTDCM2 = (pmcd_mode) ? clka1d2_out : clkout2_out; assign CLKOUTDCM1 = (pmcd_mode) ? clka1d4_out : clkout1_out; assign CLKOUTDCM0 = (pmcd_mode) ? clka1d8_out : clkout0_out; assign CLKFBDCM = (pmcd_mode) ? clkb1_out : clkfb_out; // PLL function always @(clkinsel_in ) if (pmcd_mode != 1) begin if ($time >1 && rst_in != 1'b1) begin $display("Input Error : PLL input clock can only be switched when RST=1. CLKINSEL on instance %m at time %t changed when RST low, should change at RST high.", $time); $finish; end if (clkinsel_in ==1) begin if (CLKIN1_PERIOD > (1000.0 /CLKIN_FREQ_MIN) || CLKIN1_PERIOD < (1000.0 / CLKIN_FREQ_MAX)) begin $display (" Attribute Syntax Error : The attribute CLKIN1_PERIOD is set to %f ns and out the allowed range %f ns to %f ns.", CLKIN1_PERIOD, 1000.0/CLKIN_FREQ_MAX, 1000.0/CLKIN_FREQ_MIN); $finish; end end else if (clkinsel_in ==0) begin if (CLKIN2_PERIOD > (1000.0 /CLKIN_FREQ_MIN) || CLKIN2_PERIOD < (1000.0 / CLKIN_FREQ_MAX)) begin $display (" Attribute Syntax Error : The attribute CLKIN2_PERIOD is set to %f ns and out the allowed range %f ns to %f ns.", CLKIN2_PERIOD, 1000.0/CLKIN_FREQ_MAX, 1000.0/CLKIN_FREQ_MIN); $finish; end end period_clkin = (clkinsel_in) ? CLKIN1_PERIOD : CLKIN2_PERIOD; clkvco_freq_init_chk = 1000.0 * CLKFBOUT_MULT / (period_clkin * DIVCLK_DIVIDE); if (clkvco_freq_init_chk > VCOCLK_FREQ_MAX || clkvco_freq_init_chk < VCOCLK_FREQ_MIN) begin $display (" Attribute Syntax Error : The calculation of VCO frequency=%f Mhz. This exceeds the permitted VCO frequency range of %f Mhz to %f Mhz. The VCO frequency is calculated with formula: VCO frequency = CLKFBOUT_MULT / (DIVCLK_DIVIDE * CLKIN_PERIOD). Please adjust the attributes to the permitted VCO frequency range.", clkvco_freq_init_chk, VCOCLK_FREQ_MIN, VCOCLK_FREQ_MAX); $finish; end end assign init_trig = 1; assign clkpll_tmp = (clkinsel_in) ? clkin1_in : clkin2_in; assign clkpll = (pmcd_mode) ? 0 : clkpll_tmp; assign orig_rst_in = rst_input; always @(posedge clkpll or posedge orig_rst_in) if (orig_rst_in) rst_in1 <= 1; else rst_in1 <= orig_rst_in; assign rst_in = (rst_in1 || rst_unlock); always @(posedge pll_unlock) if (rst_on_loss ) begin rst_unlock <= 1'b1; rst_unlock <= #10000 1'b0; end always @(rst_input ) if (rst_input==1) rst_edge = $time; else if (rst_input==0 && rst_edge > 1) begin rst_ht = $time - rst_edge; if (rst_ht < 10000) $display("Input Error : RST on instance %m at time %t must be asserted at least for 10 ns.", $time); end // // DRP port read and write // assign do_out = dr_sram[daddr_lat]; always @(posedge dclk_in or posedge gsr_in) if (gsr_in == 1) begin drp_lock <= 0; end else begin if (den_in == 1) begin valid_daddr = addr_is_valid(daddr_in); if (drp_lock == 1) begin $display(" Warning : DEN is high at PLL_ADV instance %m at time %t. Need wait for DRDY signal before next read/write operation through DRP. ", $time); $finish; end else begin drp_lock <= 1; daddr_lat <= daddr_in; end if (valid_daddr && ( daddr_in == 5'b00110 || daddr_in == 5'b00001 || daddr_in == 5'b00000 || (daddr_in >= 5'b01100 && daddr_in <= 5'b11100 && daddr_in != 5'b10000 && daddr_in != 5'b10001 && daddr_in != 5'b11000 ))) begin end else begin $display(" Warning : Address DADDR=%b is unsupported at PLL_ADV instance %m at time %t. ", DADDR, $time); end if (dwe_in == 1) begin // write process if (rst_input == 1) begin if (valid_daddr && ( daddr_in == 5'b00110 || daddr_in == 5'b00001 || daddr_in == 5'b00000 || (daddr_in >= 5'b01100 && daddr_in <= 5'b11100 && daddr_in != 5'b10000 && daddr_in != 5'b10001 && daddr_in != 5'b11000 ))) begin dr_sram[daddr_in] <= di_in; end if (daddr_in == 5'b11100) clkout_delay_para_drp (clkout0_dly, clk0_nocnt, clk0_edge, di_in, daddr_in); if (daddr_in == 5'b11011) clkout_hl_para_drp (clk0_lt, clk0_ht, clk0pm_sel, di_in, daddr_in); if (daddr_in == 5'b11010) clkout_delay_para_drp (clkout1_dly, clk1_nocnt, clk1_edge, di_in, daddr_in); if (daddr_in == 5'b11001) clkout_hl_para_drp (clk1_lt, clk1_ht, clk1pm_sel, di_in, daddr_in); if (daddr_in == 5'b10111) clkout_delay_para_drp (clkout2_dly, clk2_nocnt, clk2_edge, di_in, daddr_in); if (daddr_in == 5'b10110) clkout_hl_para_drp (clk2_lt, clk2_ht, clk2pm_sel, di_in, daddr_in); if (daddr_in == 5'b10101) clkout_delay_para_drp (clkout3_dly, clk3_nocnt, clk3_edge, di_in, daddr_in); if (daddr_in == 5'b10100) clkout_hl_para_drp (clk3_lt, clk3_ht, clk3pm_sel, di_in, daddr_in); if (daddr_in == 5'b10011) clkout_delay_para_drp (clkout4_dly, clk4_nocnt, clk4_edge, di_in, daddr_in); if (daddr_in == 5'b10010) clkout_hl_para_drp (clk4_lt, clk4_ht, clk4pm_sel, di_in, daddr_in); if (daddr_in == 5'b01111) clkout_delay_para_drp (clkout5_dly, clk5_nocnt, clk5_edge, di_in, daddr_in); if (daddr_in == 5'b01110) clkout_hl_para_drp (clk5_lt, clk5_ht, clk5pm_sel, di_in, daddr_in); if (daddr_in == 5'b01101) clkout_delay_para_drp (clkfbm1_dly, clkfbm1_nocnt, clkfbm1_edge, di_in, daddr_in); if (daddr_in == 5'b01100) clkout_hl_para_drp (clkfbm1_lt, clkfbm1_ht, clkfbm1pm_sel, di_in, daddr_in); if (daddr_in == 5'b00110) begin clkind_lt <= di_in[5:0]; clkind_ht <= di_in[11:6]; if ( di_in[5:0] == 6'b0 && di_in[11:6] == 6'b0 ) clkind_div <= 8'b10000000; else if (di_in[5:0] == 6'b0 && di_in[11:6] != 6'b0 ) clkind_div <= 64 + di_in[11:6]; else if (di_in[5:0] == 6'b0 && di_in[11:6] != 6'b0 ) clkind_div <= 64 + di_in[5:0]; else clkind_div <= di_in[5:0] + di_in[11:6]; clkind_nocnt <= di_in[12]; clkind_edge <= di_in[13]; end end else begin $display(" Error : RST is low at PLL_ADV instance %m at time %t. RST need to be high when change X_PLL_ADV paramters through DRP. ", $time); end end //DWE end //DEN if ( drp_lock == 1) begin drp_lock <= 0; drp_lock1 <= 1; end if (drp_lock1 == 1) begin drp_lock1 <= 0; drdy_out <= 1; end if (drdy_out == 1) drdy_out <= 0; end function addr_is_valid; input [6:0] daddr_funcin; begin addr_is_valid = 1; for (i=0; i<=6; i=i+1) if ( daddr_funcin[i] != 0 && daddr_funcin[i] != 1) addr_is_valid = 0; end endfunction // end process drp; // // determine clock period // always @(posedge clkpll or posedge rst_in) if (rst_in) begin clkin_period[0] <= period_vco_target; clkin_period[1] <= period_vco_target; clkin_period[2] <= period_vco_target; clkin_period[3] <= period_vco_target; clkin_period[4] <= period_vco_target; clkin_jit <= 0; clkin_lock_cnt <= 0; pll_locked_tm <= 0; lock_period <= 0; pll_locked_tmp1 <= 0; clkout_en0_tmp <= 0; unlock_recover <= 0; clkin_edge <= 0; end else begin clkin_edge <= $time; clkin_period[4] <= clkin_period[3]; clkin_period[3] <= clkin_period[2]; clkin_period[2] <= clkin_period[1]; clkin_period[1] <= clkin_period[0]; if (clkin_edge != 0 && clkin_stopped_p == 0 && clkin_stopped_n == 0) clkin_period[0] <= $time - clkin_edge; if (pll_unlock == 0) clkin_jit <= $time - clkin_edge - clkin_period[0]; else clkin_jit <= 0; if ( (clkin_lock_cnt < lock_cnt_max) && fb_delay_found && pll_unlock == 0) clkin_lock_cnt <= clkin_lock_cnt + 1; else if (pll_unlock == 1 && rst_on_loss ==0 && pll_locked_tmp1 ==1 ) begin clkin_lock_cnt <= locked_en_time; unlock_recover <= 1; end if ( clkin_lock_cnt >= `PLL_LOCK_TIME && pll_unlock == 0) pll_locked_tm <= 1; if ( clkin_lock_cnt == 6 ) lock_period <= 1; if (clkin_lock_cnt >= clkout_en_time) begin clkout_en0_tmp <= 1; end if (clkin_lock_cnt >= locked_en_time) pll_locked_tmp1 <= 1; if (unlock_recover ==1 && clkin_lock_cnt >= lock_cnt_max) unlock_recover <= 0; end always @(clkout_en0_tmp) if (clkout_en0_tmp==0) clkout_en0 = 0; else @(negedge clkpll) clkout_en0 <= #(clkin_period[0]/2) clkout_en0_tmp; always @(clkout_en0) clkout_en <= #(clkvco_delay) clkout_en0; always @(pll_locked_tmp1 ) if (pll_locked_tmp1==0) pll_locked_tmp2 = pll_locked_tmp1; else begin pll_locked_tmp2 <= #pll_locked_delay pll_locked_tmp1; end always @(rst_in) if (rst_in) begin assign pll_locked_tmp2 = 0; assign clkout_en0 = 0; assign clkout_en = 0; end else begin deassign pll_locked_tmp2; deassign clkout_en0; deassign clkout_en; end assign locked_out = (pll_locked_tm && pll_locked_tmp2 && ~pll_unlock && !unlock_recover) ? 1 : 0; always @(clkin_period[0] or clkin_period[1] or clkin_period[2] or clkin_period[3] or clkin_period[4] or period_avg) if ( clkin_period[0] != period_avg) period_avg = (clkin_period[0] + clkin_period[1] + clkin_period[2] + clkin_period[3] + clkin_period[4])/5; always @(period_avg or clkind_div or clkfbm1_div) begin period_fb = period_avg * clkind_div; period_vco = period_fb / clkfbm1_div; period_vco_half = period_vco /2; pll_locked_delay = period_fb * clkfbm1_div; clkin_dly_t = period_avg * (clkind_div + 1.25); clkfb_dly_t = period_fb * 2.25 ; period_vco1 = period_vco / 8; period_vco2 = period_vco / 4; period_vco3 = period_vco * 3/ 8; period_vco4 = period_vco / 2; period_vco5 = period_vco * 5 / 8; period_vco6 = period_vco *3 / 4; period_vco7 = period_vco * 7 / 8; md_product = clkind_div * clkfbm1_div; md_product_dbl = clkind_div * clkfbm1_div * 2; end assign clkvco_lk_rst = ( rst_in == 1 || pll_unlock == 1 || pll_locked_tm == 0) ? 1 : 0; always @(clkvco_lk_rst) if (clkvco_lk_rst) assign clkvco_lk = 0; else deassign clkvco_lk; // always @(posedge clkpll or posedge rst_in or posedge pll_unlock) // if ( rst_in == 1 || pll_unlock == 1 || pll_locked_tm == 0) begin // clkvco_lk <= 0; // end // else begin always @(posedge clkpll) if (pll_locked_tm ==1) begin clkvco_lk <= 1; for (i1=1; i1 < md_product_dbl; i1=i1+1) #(period_vco_half) clkvco_lk <= ~clkvco_lk; end always @(fb_delay or period_vco or clkfbm1_dly or clkfbm1pm_rl) begin val_tmp = period_vco * md_product; fbm1_comp_delay = period_vco *(clkfbm1_dly + clkfbm1pm_rl ); dly_tmp = fb_delay + fbm1_comp_delay; if (fb_delay == 0) clkvco_delay = 0; else if ( dly_tmp < val_tmp) clkvco_delay = val_tmp - dly_tmp; else clkvco_delay = val_tmp - dly_tmp % val_tmp ; end always @(clkfbm1pm_sel) case (clkfbm1pm_sel) 3'b000 : clkfbm1pm_rl = 0.0; 3'b001 : clkfbm1pm_rl = 0.125; 3'b010 : clkfbm1pm_rl = 0.25; 3'b011 : clkfbm1pm_rl = 0.375; 3'b100 : clkfbm1pm_rl = 0.50; 3'b101 : clkfbm1pm_rl = 0.625; 3'b110 : clkfbm1pm_rl = 0.75; 3'b111 : clkfbm1pm_rl = 0.875; endcase always @(clkvco_free ) if (pmcd_mode != 1 && pll_locked_tm == 0) clkvco_free <= #period_vco_target_half ~clkvco_free; always @(clkvco_lk or clkvco_free or pll_locked_tm) if ( pll_locked_tm) clkvco <= #clkvco_delay clkvco_lk; else clkvco <= #clkvco_delay clkvco_free; always @(clk0_ht or clk0_lt or clk0_nocnt or init_trig) clkout_pm_cal(clk0_ht1, clk0_div, clk0_div1, clk0_ht, clk0_lt, clk0_nocnt, clk0_edge); always @(clk1_ht or clk1_lt or clk1_nocnt or init_trig) clkout_pm_cal(clk1_ht1, clk1_div, clk1_div1, clk1_ht, clk1_lt, clk1_nocnt, clk1_edge); always @(clk2_ht or clk2_lt or clk2_nocnt or init_trig) clkout_pm_cal(clk2_ht1, clk2_div, clk2_div1, clk2_ht, clk2_lt, clk2_nocnt, clk2_edge); always @(clk3_ht or clk3_lt or clk3_nocnt or init_trig) clkout_pm_cal(clk3_ht1, clk3_div, clk3_div1, clk3_ht, clk3_lt, clk3_nocnt, clk3_edge); always @(clk4_ht or clk4_lt or clk4_nocnt or init_trig) clkout_pm_cal(clk4_ht1, clk4_div, clk4_div1, clk4_ht, clk4_lt, clk4_nocnt, clk4_edge); always @(clk5_ht or clk5_lt or clk5_nocnt or init_trig) clkout_pm_cal(clk5_ht1, clk5_div, clk5_div1, clk5_ht, clk5_lt, clk5_nocnt, clk5_edge); always @(clkfbm1_ht or clkfbm1_lt or clkfbm1_nocnt or init_trig) clkout_pm_cal(clkfbm1_ht1, clkfbm1_div, clkfbm1_div1, clkfbm1_ht, clkfbm1_lt, clkfbm1_nocnt, clkfbm1_edge); always @(rst_in) if (rst_in) assign clkout_mux = 8'b0; else deassign clkout_mux; always @(clkvco or clkout_en ) if (clkout_en) begin clkout_mux[0] <= clkvco; clkout_mux[1] <= #(period_vco1) clkvco; clkout_mux[2] <= #(period_vco2) clkvco; clkout_mux[3] <= #(period_vco3) clkvco; clkout_mux[4] <= #(period_vco4) clkvco; clkout_mux[5] <= #(period_vco5) clkvco; clkout_mux[6] <= #(period_vco6) clkvco; clkout_mux[7] <= #(period_vco7) clkvco; end assign clk0in = clkout_mux[clk0pm_sel]; assign clk1in = clkout_mux[clk1pm_sel]; assign clk2in = clkout_mux[clk2pm_sel]; assign clk3in = clkout_mux[clk3pm_sel]; assign clk4in = clkout_mux[clk4pm_sel]; assign clk5in = clkout_mux[clk5pm_sel]; assign clkfbm1in = clkout_mux[clkfbm1pm_sel]; assign clk0ps_en = (clk0_dly_cnt == clkout0_dly) ? clkout_en : 0; assign clk1ps_en = (clk1_dly_cnt == clkout1_dly) ? clkout_en : 0; assign clk2ps_en = (clk2_dly_cnt == clkout2_dly) ? clkout_en : 0; assign clk3ps_en = (clk3_dly_cnt == clkout3_dly) ? clkout_en : 0; assign clk4ps_en = (clk4_dly_cnt == clkout4_dly) ? clkout_en : 0; assign clk5ps_en = (clk5_dly_cnt == clkout5_dly) ? clkout_en : 0; assign clkfbm1ps_en = (clkfbm1_dly_cnt == clkfbm1_dly) ? clkout_en : 0; always @(negedge clk0in or posedge rst_in) if (rst_in) clk0_dly_cnt <= 6'b0; else if (clk0_dly_cnt < clkout0_dly && clkout_en ==1) clk0_dly_cnt <= clk0_dly_cnt + 1; always @(negedge clk1in or posedge rst_in) if (rst_in) clk1_dly_cnt <= 6'b0; else if (clk1_dly_cnt < clkout1_dly && clkout_en ==1) clk1_dly_cnt <= clk1_dly_cnt + 1; always @(negedge clk2in or posedge rst_in) if (rst_in) clk2_dly_cnt <= 6'b0; else if (clk2_dly_cnt < clkout2_dly && clkout_en ==1) clk2_dly_cnt <= clk2_dly_cnt + 1; always @(negedge clk3in or posedge rst_in) if (rst_in) clk3_dly_cnt <= 6'b0; else if (clk3_dly_cnt < clkout3_dly && clkout_en ==1) clk3_dly_cnt <= clk3_dly_cnt + 1; always @(negedge clk4in or posedge rst_in) if (rst_in) clk4_dly_cnt <= 6'b0; else if (clk4_dly_cnt < clkout4_dly && clkout_en ==1) clk4_dly_cnt <= clk4_dly_cnt + 1; always @(negedge clk5in or posedge rst_in) if (rst_in) clk5_dly_cnt <= 6'b0; else if (clk5_dly_cnt < clkout5_dly && clkout_en ==1) clk5_dly_cnt <= clk5_dly_cnt + 1; always @(negedge clkfbm1in or posedge rst_in) if (rst_in) clkfbm1_dly_cnt <= 6'b0; else if (clkfbm1_dly_cnt < clkfbm1_dly && clkout_en ==1) clkfbm1_dly_cnt <= clkfbm1_dly_cnt + 1; always @(posedge clk0in or negedge clk0in or posedge rst_in) if (rst_in) begin clk0_cnt <= 8'b0; clk0_out <= 0; end else if (clk0ps_en) begin if (clk0_cnt < clk0_div1) clk0_cnt <= clk0_cnt + 1; else clk0_cnt <= 8'b0; if (clk0_cnt < clk0_ht1) clk0_out <= 1; else clk0_out <= 0; end else begin clk0_cnt <= 8'b0; clk0_out <= 0; end always @(posedge clk1in or negedge clk1in or posedge rst_in) if (rst_in) begin clk1_cnt <= 8'b0; clk1_out <= 0; end else if (clk1ps_en) begin if (clk1_cnt < clk1_div1) clk1_cnt <= clk1_cnt + 1; else clk1_cnt <= 8'b0; if (clk1_cnt < clk1_ht1) clk1_out <= 1; else clk1_out <= 0; end else begin clk1_cnt <= 8'b0; clk1_out <= 0; end always @(posedge clk2in or negedge clk2in or posedge rst_in) if (rst_in) begin clk2_cnt <= 8'b0; clk2_out <= 0; end else if (clk2ps_en) begin if (clk2_cnt < clk2_div1) clk2_cnt <= clk2_cnt + 1; else clk2_cnt <= 8'b0; if (clk2_cnt < clk2_ht1) clk2_out <= 1; else clk2_out <= 0; end else begin clk2_cnt <= 8'b0; clk2_out <= 0; end always @(posedge clk3in or negedge clk3in or posedge rst_in) if (rst_in) begin clk3_cnt <= 8'b0; clk3_out <= 0; end else if (clk3ps_en) begin if (clk3_cnt < clk3_div1) clk3_cnt <= clk3_cnt + 1; else clk3_cnt <= 8'b0; if (clk3_cnt < clk3_ht1) clk3_out <= 1; else clk3_out <= 0; end else begin clk3_cnt <= 8'b0; clk3_out <= 0; end always @(posedge clk4in or negedge clk4in or posedge rst_in) if (rst_in) begin clk4_cnt <= 8'b0; clk4_out <= 0; end else if (clk4ps_en) begin if (clk4_cnt < clk4_div1) clk4_cnt <= clk4_cnt + 1; else clk4_cnt <= 8'b0; if (clk4_cnt < clk4_ht1) clk4_out <= 1; else clk4_out <= 0; end else begin clk4_cnt <= 8'b0; clk4_out <= 0; end always @(posedge clk5in or negedge clk5in or posedge rst_in) if (rst_in) begin clk5_cnt <= 8'b0; clk5_out <= 0; end else if (clk5ps_en) begin if (clk5_cnt < clk5_div1) clk5_cnt <= clk5_cnt + 1; else clk5_cnt <= 8'b0; if (clk5_cnt < clk5_ht1) clk5_out <= 1; else clk5_out <= 0; end else begin clk5_cnt <= 8'b0; clk5_out <= 0; end always @(posedge clkfbm1in or negedge clkfbm1in or posedge rst_in) if (rst_in) begin clkfbm1_cnt <= 8'b0; clkfbm1_out <= 0; end else if (clkfbm1ps_en) begin if (clkfbm1_cnt < clkfbm1_div1) clkfbm1_cnt <= clkfbm1_cnt + 1; else clkfbm1_cnt <= 8'b0; if (clkfbm1_cnt < clkfbm1_ht1) clkfbm1_out <= 1; else clkfbm1_out <= 0; end else begin clkfbm1_cnt <= 8'b0; clkfbm1_out <= 0; end always @(clk0_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkout0_out = clk0_out; else clkout0_out = clkfb_tst; always @(clk1_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkout1_out = clk1_out; else clkout1_out = clkfb_tst; always @(clk2_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkout2_out = clk2_out; else clkout2_out = clkfb_tst; always @(clk3_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkout3_out = clk3_out; else clkout3_out = clkfb_tst; always @(clk4_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkout4_out = clk4_out; else clkout4_out = clkfb_tst; always @(clk5_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkout5_out = clk5_out; else clkout5_out = clkfb_tst; always @(clkfbm1_out or clkfb_tst or fb_delay_found) if (fb_delay_found == 1) clkfb_out = clkfbm1_out; else clkfb_out = clkfb_tst; // // determine feedback delay // always @(rst_in1) if (rst_in1) assign clkfb_tst = 0; else deassign clkfb_tst; always @(posedge clkpll ) if (fb_delay_found_tmp == 0 && GSR == 0 && rst_in1 == 0) begin clkfb_tst <= 1'b1; end else clkfb_tst <= 1'b0; always @( posedge clkfb_tst or posedge rst_in1 ) if (rst_in1) delay_edge <= 0; else delay_edge <= $time; always @(posedge clkfb_in or posedge rst_in1 ) if (rst_in1) begin fb_delay <= 0; fb_delay_found_tmp <= 0; end else if (fb_delay_found_tmp ==0 ) begin if ( delay_edge != 0) fb_delay <= ($time - delay_edge); else fb_delay <= 0; fb_delay_found_tmp <= 1; end always @(rst_in1) if (rst_in1) assign fb_delay_found = 0; else deassign fb_delay_found; always @(fb_delay_found_tmp or clkvco_delay ) fb_delay_found <= #(clkvco_delay) fb_delay_found_tmp; always @(fb_delay) if (rst_in1==0 && (fb_delay/1000.0 > fb_delay_max)) begin $display("Warning : The feedback delay on PLL_ADV instance %m at time %t is %f ns. It is over the maximun value %f ns.", $time, fb_delay / 1000.0, fb_delay_max); end // // generate unlock signal // always @(clkpll) clkpll_dly <= #clkin_dly_t clkpll; always @(clkfb_in) if (pmcd_mode != 1) clkfbin_dly <= #clkfb_dly_t clkfb_in; else clkfbin_dly = 0; always @( posedge clkpll_dly or negedge clkpll or posedge rst_in) if (rst_in || clkpll == 0) begin clkstop_cnt_p = 0; clkin_stopped_p = 0; end else if (fb_delay_found && pll_locked_tmp2) begin if (clkpll && clkpll_jitter_unlock == 0) clkstop_cnt_p <= clkstop_cnt_p +1; else clkstop_cnt_p = 0; if (clkstop_cnt_p > clkin_stop_max) clkin_stopped_p <= 1; else clkin_stopped_p = 0; end else begin clkstop_cnt_p = 0; clkin_stopped_p = 0; end always @( posedge clkpll_dly or posedge clkpll or posedge rst_in) if (rst_in || clkpll == 1) begin clkstop_cnt_n = 0; clkin_stopped_n = 0; end else if (fb_delay_found && pll_locked_tmp2) begin if (clkpll==0 && clkpll_jitter_unlock == 0) clkstop_cnt_n <= clkstop_cnt_n +1; else clkstop_cnt_n = 0; if (clkstop_cnt_n > clkin_stop_max) clkin_stopped_n <= 1; else clkin_stopped_n = 0; end else begin clkstop_cnt_n = 0; clkin_stopped_n = 0; end always @( posedge clkfbin_dly or negedge clkfb_in or posedge rst_in) if (rst_in || clkfb_in == 0) begin clkfbstop_cnt_p = 0; clkfb_stopped_p = 0; end else if (fb_delay_found && pll_locked_tmp2) begin if (clkfb_in && clkpll_jitter_unlock == 0) clkfbstop_cnt_p <= clkfbstop_cnt_p +1; else clkfbstop_cnt_p = 0; if (clkfbstop_cnt_p > clkfb_stop_max) clkfb_stopped_p <= 1; else clkfb_stopped_p = 0; end else begin clkfbstop_cnt_p = 0; clkfb_stopped_p = 0; end always @( posedge clkfbin_dly or posedge clkfb_in or posedge rst_in) if (rst_in==1 || clkfb_in == 1) begin clkfbstop_cnt_n = 0; clkfb_stopped_n = 0; end else if (fb_delay_found && pll_locked_tmp2) begin if (clkfb_in==0 && clkpll_jitter_unlock == 0) clkfbstop_cnt_n <= clkfbstop_cnt_n +1; else clkfbstop_cnt_n = 0; if (clkfbstop_cnt_n > clkfb_stop_max) clkfb_stopped_n <= 1; else clkfb_stopped_n = 0; end else begin clkfbstop_cnt_n = 0; clkfb_stopped_n = 0; end always @(clkin_jit or rst_in ) if (rst_in) clkpll_jitter_unlock = 0; else if ( pll_locked_tmp2 && clkfb_stopped == 0 && clkin_stopped == 0) begin if ((clkin_jit > REF_CLK_JITTER_MAX_tmp) || (clkin_jit < -REF_CLK_JITTER_MAX_tmp)) clkpll_jitter_unlock = 1; else clkpll_jitter_unlock = 0; end else clkpll_jitter_unlock = 0; assign clkin_stopped = (clkin_stopped_p || clkin_stopped_n) ? 1 : 0; assign clkfb_stopped = (clkfb_stopped_p ||clkfb_stopped_n) ? 1 : 0; assign pll_unlock = (clkin_stopped || clkfb_stopped || clkpll_jitter_unlock) ? 1 : 0; // tasks task clkout_dly_cal; output [5:0] clkout_dly; output [2:0] clkpm_sel; input clkdiv; input clk_ps; input reg [160:0] clk_ps_name; integer clkdiv; real clk_ps; real clk_ps_rl; real clk_dly_rl, clk_dly_rem; integer clkout_dly_tmp; begin if (clk_ps < 0.0) clk_dly_rl = (360.0 + clk_ps) * clkdiv / 360.0; else clk_dly_rl = clk_ps * clkdiv / 360.0; clkout_dly_tmp = $rtoi(clk_dly_rl); if (clkout_dly_tmp > 63) begin $display(" Warning : Attribute %s of PLL_ADV on instance %m is set to %f. Required phase shifting can not be reached since it is over the maximum phase shifting ability of X_PLL_ADV", clk_ps_name, clk_ps); clkout_dly = 6'b111111; end else clkout_dly = clkout_dly_tmp; clk_dly_rem = clk_dly_rl - clkout_dly; if (clk_dly_rem < 0.125) clkpm_sel = 0; else if (clk_dly_rem >= 0.125 && clk_dly_rem < 0.25) clkpm_sel = 1; else if (clk_dly_rem >= 0.25 && clk_dly_rem < 0.375) clkpm_sel = 2; else if (clk_dly_rem >= 0.375 && clk_dly_rem < 0.5) clkpm_sel = 3; else if (clk_dly_rem >= 0.5 && clk_dly_rem < 0.625) clkpm_sel = 4; else if (clk_dly_rem >= 0.625 && clk_dly_rem < 0.75) clkpm_sel = 5; else if (clk_dly_rem >= 0.75 && clk_dly_rem < 0.875) clkpm_sel = 6; else if (clk_dly_rem >= 0.875 ) clkpm_sel = 7; if (clk_ps < 0.0) clk_ps_rl = (clkout_dly + 0.125 * clkpm_sel)* 360.0 / clkdiv - 360.0; else clk_ps_rl = (clkout_dly + 0.125 * clkpm_sel) * 360.0 / clkdiv; if (((clk_ps_rl- clk_ps) > 0.001) || ((clk_ps_rl- clk_ps) < -0.001)) $display(" Warning : Attribute %s of PLL_ADV on instance %m is set to %f. Real phase shifting is %f. Required phase shifting can not be reached.", clk_ps_name, clk_ps, clk_ps_rl); end endtask task clk_out_para_cal; output [6:0] clk_ht; output [6:0] clk_lt; output clk_nocnt; output clk_edge; input CLKOUT_DIVIDE; input CLKOUT_DUTY_CYCLE; integer CLKOUT_DIVIDE; real CLKOUT_DUTY_CYCLE; real tmp_value; integer tmp_value1; real tmp_value2; begin tmp_value = CLKOUT_DIVIDE * CLKOUT_DUTY_CYCLE; tmp_value1 = $rtoi(tmp_value * 2) % 2; tmp_value2 = CLKOUT_DIVIDE - tmp_value; if ((tmp_value) >= O_MAX_HT_LT) begin // clk_ht = O_MAX_HT_LT; clk_ht = 7'b1000000; end else begin if (tmp_value < 1.0) clk_ht = 1; else if ( tmp_value1 != 0) clk_ht = $rtoi(tmp_value) + 1; else clk_ht = $rtoi(tmp_value); end if ( (CLKOUT_DIVIDE - clk_ht) >= O_MAX_HT_LT) clk_lt = 7'b1000000; else clk_lt = CLKOUT_DIVIDE - clk_ht; clk_nocnt = (CLKOUT_DIVIDE ==1) ? 1 : 0; if ( tmp_value < 1.0) clk_edge = 1; else if (tmp_value1 != 0) clk_edge = 1; else clk_edge = 0; end endtask function clkout_duty_chk; input CLKOUT_DIVIDE; input CLKOUT_DUTY_CYCLE; input reg [160:0] CLKOUT_DUTY_CYCLE_N; integer CLKOUT_DIVIDE, step_tmp; real CLKOUT_DUTY_CYCLE; real CLK_DUTY_CYCLE_MIN, CLK_DUTY_CYCLE_MAX, CLK_DUTY_CYCLE_STEP; real CLK_DUTY_CYCLE_MIN_rnd; reg clk_duty_tmp_int; begin if (CLKOUT_DIVIDE > O_MAX_HT_LT) begin CLK_DUTY_CYCLE_MIN = (CLKOUT_DIVIDE - O_MAX_HT_LT)/CLKOUT_DIVIDE; CLK_DUTY_CYCLE_MAX = (O_MAX_HT_LT + 0.5)/CLKOUT_DIVIDE; CLK_DUTY_CYCLE_MIN_rnd = CLK_DUTY_CYCLE_MIN; end else begin if (CLKOUT_DIVIDE == 1) begin CLK_DUTY_CYCLE_MIN = 0.0; CLK_DUTY_CYCLE_MIN_rnd = 0.0; end else begin step_tmp = 1000 / CLKOUT_DIVIDE; CLK_DUTY_CYCLE_MIN_rnd = step_tmp / 1000.0; CLK_DUTY_CYCLE_MIN = 1.0 /CLKOUT_DIVIDE; end CLK_DUTY_CYCLE_MAX = 1.0; end if (CLKOUT_DUTY_CYCLE > CLK_DUTY_CYCLE_MAX || CLKOUT_DUTY_CYCLE < CLK_DUTY_CYCLE_MIN_rnd) begin $display(" Attribute Syntax Warning : %s is set to %f on instance %m and is not in the allowed range %f to %f.", CLKOUT_DUTY_CYCLE_N, CLKOUT_DUTY_CYCLE, CLK_DUTY_CYCLE_MIN, CLK_DUTY_CYCLE_MAX ); end clk_duty_tmp_int = 0; CLK_DUTY_CYCLE_STEP = 0.5 / CLKOUT_DIVIDE; for (j = 0; j < (2 * CLKOUT_DIVIDE - CLK_DUTY_CYCLE_MIN/CLK_DUTY_CYCLE_STEP); j = j + 1) if (((CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * j) - CLKOUT_DUTY_CYCLE) > -0.001 && ((CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * j) - CLKOUT_DUTY_CYCLE) < 0.001) clk_duty_tmp_int = 1; if ( clk_duty_tmp_int != 1) begin $display(" Attribute Syntax Warning : %s is set to %f on instance %m and is not an allowed value. Allowed values are:", CLKOUT_DUTY_CYCLE_N, CLKOUT_DUTY_CYCLE); for (j = 0; j < (2 * CLKOUT_DIVIDE - CLK_DUTY_CYCLE_MIN/CLK_DUTY_CYCLE_STEP); j = j + 1) $display("%f", CLK_DUTY_CYCLE_MIN + CLK_DUTY_CYCLE_STEP * j); end clkout_duty_chk = 1'b1; end endfunction function para_int_pmcd_chk; input para_in; input reg [160:0] para_name; input range_low; input range_high; input pmcd_mode; input pmcd_value; integer para_in; integer range_low; integer range_high; integer pmcd_value; begin if (para_in < range_low || para_in > range_high) begin $display("Attribute Syntax Error : The Attribute %s on PLL_ADV instance %m is set to %d. Legal values for this attribute are %d to %d.", para_name, para_in, range_low, range_high); $finish; end else if (pmcd_mode == 1 && para_in != pmcd_value) begin $display("Attribute Syntax Error : The Attribute %s on PLL_ADV instance %m is set to %d when attribute PLL_PMCD_MODE is set to TRUE. Legal values for this attribute is %d when PLL in PMCD MODE.", para_name, para_in, pmcd_value); $finish; end para_int_pmcd_chk = 1'b1; end endfunction function para_real_pmcd_chk; input para_in; input reg [160:0] para_name; input range_low; input range_high; input pmcd_mode; input pmcd_value; real para_in; real range_low; real range_high; real pmcd_value; begin if (para_in < range_low || para_in > range_high) begin $display("Attribute Syntax Error : The Attribute %s on PLL_ADV instance %m is set to %f. Legal values for this attribute are %f to %f.", para_name, para_in, range_low, range_high); $finish; end else if (pmcd_mode == 1 && para_in != pmcd_value) begin $display("Attribute Syntax Error : The Attribute %s on PLL_ADV instance %m is set to %f when attribute PLL_PMCD_MODE is set to TRUE. Legal values for this attribute is %f when PLL in PMCD MODE.", para_name, para_in, pmcd_value); $finish; end para_real_pmcd_chk = 1'b0; end endfunction function para_int_range_chk; input para_in; input reg [160:0] para_name; input range_low; input range_high; integer para_in; integer range_low; integer range_high; begin if ( para_in < range_low || para_in > range_high) begin $display("Attribute Syntax Error : The Attribute %s on PLL_ADV instance %m is set to %d. Legal values for this attribute are %d to %d.", para_name, para_in, range_low, range_high); $finish; end para_int_range_chk = 1'b1; end endfunction function para_real_range_chk; input para_in; input reg [160:0] para_name; input range_low; input range_high; real para_in; real range_low; real range_high; begin if ( para_in < range_low || para_in > range_high) begin $display("Attribute Syntax Error : The Attribute %s on PLL_ADV instance %m is set to %f. Legal values for this attribute are %f to %f.", para_name, para_in, range_low, range_high); $finish; end para_real_range_chk = 1'b0; end endfunction task clkout_pm_cal; output [7:0] clk_ht1; output [7:0] clk_div; output [7:0] clk_div1; input [6:0] clk_ht; input [6:0] clk_lt; input clk_nocnt; input clk_edge; begin if (clk_nocnt ==1) begin clk_div = 8'b00000001; clk_div1 = 8'b00000001; clk_ht1 = 8'b00000001; end else begin if ( clk_edge == 1) clk_ht1 = 2 * clk_ht -1; else clk_ht1 = 2 * clk_ht; clk_div = clk_ht + clk_lt ; clk_div1 = 2 * clk_div -1; end end endtask task clkout_delay_para_drp; output [5:0] clkout_dly; output clk_nocnt; output clk_edge; input [15:0] di_in; input [4:0] daddr_in; begin // if (di_in[15:8] != 8'h00) begin // $display(" Error : PLL_ADV on instance %m input DI[15:8] is set to %h and need to be set to 00h at address DADDR=%b at time %t.", di_in[15:8], daddr_in, $time); // $finish; // end clkout_dly = di_in[5:0]; clk_nocnt = di_in[6]; clk_edge = di_in[7]; end endtask task clkout_hl_para_drp; output [6:0] clk_lt; output [6:0] clk_ht; output [2:0] clkpm_sel; input [15:0] di_in_tmp; input [4:0] daddr_in_tmp; begin if (di_in_tmp[12] != 1) begin $display(" Error : PLL_ADV on instance %m input DI is %h at address DADDR=%b at time %t. The bit 12 need to be set to 1 .", di_in_tmp, daddr_in_tmp, $time); // $finish; end if ( di_in_tmp[5:0] == 6'b0) clk_lt = 7'b1000000; else clk_lt = { 1'b0, di_in[5:0]}; if (di_in_tmp[11:6] == 6'b0) clk_ht = 7'b1000000; else clk_ht = { 1'b0, di_in_tmp[11:6]}; clkpm_sel = di_in_tmp[15:13]; end endtask endmodule uhd-3.5.5/fpga/usrp2/models/PLL_BASE.v000066400000000000000000000103641224274632000171750ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/rainier/PLL_BASE.v,v 1.5 2006/03/13 21:53:44 yanx Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Timing Simulation Library Component // / / Phase Lock Loop Clock // /___/ /\ Filename : PLL_BASE.v // \ \ / \ Timestamp : // \___\/\___\ // // Revision: // 12/02/05 - Initial version. // 02/24/06 - Add real/integer to parameter. // End Revision `timescale 1 ps / 1 ps module PLL_BASE ( CLKFBOUT, CLKOUT0, CLKOUT1, CLKOUT2, CLKOUT3, CLKOUT4, CLKOUT5, LOCKED, CLKFBIN, CLKIN, RST ); parameter BANDWIDTH = "OPTIMIZED"; parameter integer CLKFBOUT_MULT = 1; parameter real CLKFBOUT_PHASE = 0.0; parameter real CLKIN_PERIOD = 0.000; parameter integer CLKOUT0_DIVIDE = 1; parameter real CLKOUT0_DUTY_CYCLE = 0.5; parameter real CLKOUT0_PHASE = 0.0; parameter integer CLKOUT1_DIVIDE = 1; parameter real CLKOUT1_DUTY_CYCLE = 0.5; parameter real CLKOUT1_PHASE = 0.0; parameter integer CLKOUT2_DIVIDE = 1; parameter real CLKOUT2_DUTY_CYCLE = 0.5; parameter real CLKOUT2_PHASE = 0.0; parameter integer CLKOUT3_DIVIDE = 1; parameter real CLKOUT3_DUTY_CYCLE = 0.5; parameter real CLKOUT3_PHASE = 0.0; parameter integer CLKOUT4_DIVIDE = 1; parameter real CLKOUT4_DUTY_CYCLE = 0.5; parameter real CLKOUT4_PHASE = 0.0; parameter integer CLKOUT5_DIVIDE = 1; parameter real CLKOUT5_DUTY_CYCLE = 0.5; parameter real CLKOUT5_PHASE = 0.0; parameter COMPENSATION = "SYSTEM_SYNCHRONOUS"; parameter integer DIVCLK_DIVIDE = 1; parameter real REF_JITTER = 0.100; parameter RESET_ON_LOSS_OF_LOCK = "FALSE"; output CLKFBOUT; output CLKOUT0; output CLKOUT1; output CLKOUT2; output CLKOUT3; output CLKOUT4; output CLKOUT5; output LOCKED; input CLKFBIN; input CLKIN; input RST; wire OPEN_CLKFBDCM; wire OPEN_CLKOUTDCM0; wire OPEN_CLKOUTDCM1; wire OPEN_CLKOUTDCM2; wire OPEN_CLKOUTDCM3; wire OPEN_CLKOUTDCM4; wire OPEN_CLKOUTDCM5; wire OPEN_DRDY; wire [15:0] OPEN_DO; PLL_ADV pll_adv_1 ( .CLKFBDCM (OPEN_CLKFBDCM), .CLKFBIN (CLKFBIN), .CLKFBOUT (CLKFBOUT), .CLKIN1 (CLKIN), .CLKIN2 (1'b0), .CLKOUT0 (CLKOUT0), .CLKOUT1 (CLKOUT1), .CLKOUT2 (CLKOUT2), .CLKOUT3 (CLKOUT3), .CLKOUT4 (CLKOUT4), .CLKOUT5 (CLKOUT5), .CLKOUTDCM0 (OPEN_CLKOUTDCM0), .CLKOUTDCM1 (OPEN_CLKOUTDCM1), .CLKOUTDCM2 (OPEN_CLKOUTDCM2), .CLKOUTDCM3 (OPEN_CLKOUTDCM3), .CLKOUTDCM4 (OPEN_CLKOUTDCM4), .CLKOUTDCM5 (OPEN_CLKOUTDCM5), .DADDR (5'b0), .DCLK (1'b0), .DEN (1'b0), .DI (16'b0), .DO (OPEN_DO), .DRDY (OPEN_DRDY), .DWE (1'b0), .LOCKED (LOCKED), .CLKINSEL(1'b1), .REL (1'b0), .RST (RST) ); defparam pll_adv_1.BANDWIDTH = BANDWIDTH; defparam pll_adv_1.CLKFBOUT_MULT = CLKFBOUT_MULT; defparam pll_adv_1.CLKFBOUT_PHASE = CLKFBOUT_PHASE; defparam pll_adv_1.CLKIN1_PERIOD = CLKIN_PERIOD; defparam pll_adv_1.CLKIN2_PERIOD = 10.0; defparam pll_adv_1.CLKOUT0_DIVIDE = CLKOUT0_DIVIDE; defparam pll_adv_1.CLKOUT0_DUTY_CYCLE = CLKOUT0_DUTY_CYCLE; defparam pll_adv_1.CLKOUT0_PHASE = CLKOUT0_PHASE; defparam pll_adv_1.CLKOUT1_DIVIDE = CLKOUT1_DIVIDE; defparam pll_adv_1.CLKOUT1_DUTY_CYCLE = CLKOUT1_DUTY_CYCLE; defparam pll_adv_1.CLKOUT1_PHASE = CLKOUT1_PHASE; defparam pll_adv_1.CLKOUT2_DIVIDE = CLKOUT2_DIVIDE; defparam pll_adv_1.CLKOUT2_DUTY_CYCLE = CLKOUT2_DUTY_CYCLE; defparam pll_adv_1.CLKOUT2_PHASE = CLKOUT2_PHASE; defparam pll_adv_1.CLKOUT3_DIVIDE = CLKOUT3_DIVIDE; defparam pll_adv_1.CLKOUT3_DUTY_CYCLE = CLKOUT3_DUTY_CYCLE; defparam pll_adv_1.CLKOUT3_PHASE = CLKOUT3_PHASE; defparam pll_adv_1.CLKOUT4_DIVIDE = CLKOUT4_DIVIDE; defparam pll_adv_1.CLKOUT4_DUTY_CYCLE = CLKOUT4_DUTY_CYCLE; defparam pll_adv_1.CLKOUT4_PHASE = CLKOUT4_PHASE; defparam pll_adv_1.CLKOUT5_DIVIDE = CLKOUT5_DIVIDE; defparam pll_adv_1.CLKOUT5_DUTY_CYCLE = CLKOUT5_DUTY_CYCLE; defparam pll_adv_1.CLKOUT5_PHASE = CLKOUT5_PHASE; defparam pll_adv_1.COMPENSATION = COMPENSATION; defparam pll_adv_1.DIVCLK_DIVIDE = DIVCLK_DIVIDE; defparam pll_adv_1.REF_JITTER = REF_JITTER; defparam pll_adv_1.RESET_ON_LOSS_OF_LOCK = RESET_ON_LOSS_OF_LOCK; endmodule uhd-3.5.5/fpga/usrp2/models/RAMB16_S36_S36.v000066400000000000000000002610661224274632000177410ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/RAMB16_S36_S36.v,v 1.10 2007/02/22 01:58:06 wloo Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2005 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Functional Simulation Library Component // / / 16K-Bit Data and 2K-Bit Parity Dual Port Block RAM // /___/ /\ Filename : RAMB16_S36_S36.v // \ \ / \ Timestamp : Thu Mar 10 16:43:36 PST 2005 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // End Revision `ifdef legacy_model `timescale 1 ps / 1 ps module RAMB16_S36_S36 (DOA, DOB, DOPA, DOPB, ADDRA, ADDRB, CLKA, CLKB, DIA, DIB, DIPA, DIPB, ENA, ENB, SSRA, SSRB, WEA, WEB); parameter INIT_A = 36'h0; parameter INIT_B = 36'h0; parameter SRVAL_A = 36'h0; parameter SRVAL_B = 36'h0; parameter WRITE_MODE_A = "WRITE_FIRST"; parameter WRITE_MODE_B = "WRITE_FIRST"; parameter SIM_COLLISION_CHECK = "ALL"; localparam SETUP_ALL = 1000; localparam SETUP_READ_FIRST = 3000; parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000; output [31:0] DOA; output [3:0] DOPA; reg [31:0] doa_out; reg [3:0] dopa_out; wire doa_out0, doa_out1, doa_out2, doa_out3, doa_out4, doa_out5, doa_out6, doa_out7, doa_out8, doa_out9, doa_out10, doa_out11, doa_out12, doa_out13, doa_out14, doa_out15, doa_out16, doa_out17, doa_out18, doa_out19, doa_out20, doa_out21, doa_out22, doa_out23, doa_out24, doa_out25, doa_out26, doa_out27, doa_out28, doa_out29, doa_out30, doa_out31; wire dopa0_out, dopa1_out, dopa2_out, dopa3_out; input [8:0] ADDRA; input [31:0] DIA; input [3:0] DIPA; input ENA, CLKA, WEA, SSRA; output [31:0] DOB; output [3:0] DOPB; reg [31:0] dob_out; reg [3:0] dopb_out; wire dob_out0, dob_out1, dob_out2, dob_out3, dob_out4, dob_out5, dob_out6, dob_out7, dob_out8, dob_out9, dob_out10, dob_out11, dob_out12, dob_out13, dob_out14, dob_out15, dob_out16, dob_out17, dob_out18, dob_out19, dob_out20, dob_out21, dob_out22, dob_out23, dob_out24, dob_out25, dob_out26, dob_out27, dob_out28, dob_out29, dob_out30, dob_out31; wire dopb0_out, dopb1_out, dopb2_out, dopb3_out; input [8:0] ADDRB; input [31:0] DIB; input [3:0] DIPB; input ENB, CLKB, WEB, SSRB; reg [18431:0] mem; reg [8:0] count; reg [1:0] wr_mode_a, wr_mode_b; reg [5:0] dmi, dbi; reg [5:0] pmi, pbi; wire [8:0] addra_int; reg [8:0] addra_reg; wire [31:0] dia_int; wire [3:0] dipa_int; wire ena_int, clka_int, wea_int, ssra_int; reg ena_reg, wea_reg, ssra_reg; wire [8:0] addrb_int; reg [8:0] addrb_reg; wire [31:0] dib_int; wire [3:0] dipb_int; wire enb_int, clkb_int, web_int, ssrb_int; reg display_flag; reg enb_reg, web_reg, ssrb_reg; time time_clka, time_clkb; time time_clka_clkb; time time_clkb_clka; reg setup_all_a_b; reg setup_all_b_a; reg setup_zero; reg setup_rf_a_b; reg setup_rf_b_a; reg [1:0] data_collision, data_collision_a_b, data_collision_b_a; reg memory_collision, memory_collision_a_b, memory_collision_b_a; reg address_collision, address_collision_a_b, address_collision_b_a; reg change_clka; reg change_clkb; wire [14:0] data_addra_int; wire [14:0] data_addra_reg; wire [14:0] data_addrb_int; wire [14:0] data_addrb_reg; wire [15:0] parity_addra_int; wire [15:0] parity_addra_reg; wire [15:0] parity_addrb_int; wire [15:0] parity_addrb_reg; tri0 GSR = glbl.GSR; always @(GSR) if (GSR) begin assign doa_out = INIT_A[31:0]; assign dopa_out = INIT_A[35:32]; assign dob_out = INIT_B[31:0]; assign dopb_out = INIT_B[35:32]; end else begin deassign doa_out; deassign dopa_out; deassign dob_out; deassign dopb_out; end buf b_doa_out0 (doa_out0, doa_out[0]); buf b_doa_out1 (doa_out1, doa_out[1]); buf b_doa_out2 (doa_out2, doa_out[2]); buf b_doa_out3 (doa_out3, doa_out[3]); buf b_doa_out4 (doa_out4, doa_out[4]); buf b_doa_out5 (doa_out5, doa_out[5]); buf b_doa_out6 (doa_out6, doa_out[6]); buf b_doa_out7 (doa_out7, doa_out[7]); buf b_doa_out8 (doa_out8, doa_out[8]); buf b_doa_out9 (doa_out9, doa_out[9]); buf b_doa_out10 (doa_out10, doa_out[10]); buf b_doa_out11 (doa_out11, doa_out[11]); buf b_doa_out12 (doa_out12, doa_out[12]); buf b_doa_out13 (doa_out13, doa_out[13]); buf b_doa_out14 (doa_out14, doa_out[14]); buf b_doa_out15 (doa_out15, doa_out[15]); buf b_doa_out16 (doa_out16, doa_out[16]); buf b_doa_out17 (doa_out17, doa_out[17]); buf b_doa_out18 (doa_out18, doa_out[18]); buf b_doa_out19 (doa_out19, doa_out[19]); buf b_doa_out20 (doa_out20, doa_out[20]); buf b_doa_out21 (doa_out21, doa_out[21]); buf b_doa_out22 (doa_out22, doa_out[22]); buf b_doa_out23 (doa_out23, doa_out[23]); buf b_doa_out24 (doa_out24, doa_out[24]); buf b_doa_out25 (doa_out25, doa_out[25]); buf b_doa_out26 (doa_out26, doa_out[26]); buf b_doa_out27 (doa_out27, doa_out[27]); buf b_doa_out28 (doa_out28, doa_out[28]); buf b_doa_out29 (doa_out29, doa_out[29]); buf b_doa_out30 (doa_out30, doa_out[30]); buf b_doa_out31 (doa_out31, doa_out[31]); buf b_dopa_out0 (dopa_out0, dopa_out[0]); buf b_dopa_out1 (dopa_out1, dopa_out[1]); buf b_dopa_out2 (dopa_out2, dopa_out[2]); buf b_dopa_out3 (dopa_out3, dopa_out[3]); buf b_dob_out0 (dob_out0, dob_out[0]); buf b_dob_out1 (dob_out1, dob_out[1]); buf b_dob_out2 (dob_out2, dob_out[2]); buf b_dob_out3 (dob_out3, dob_out[3]); buf b_dob_out4 (dob_out4, dob_out[4]); buf b_dob_out5 (dob_out5, dob_out[5]); buf b_dob_out6 (dob_out6, dob_out[6]); buf b_dob_out7 (dob_out7, dob_out[7]); buf b_dob_out8 (dob_out8, dob_out[8]); buf b_dob_out9 (dob_out9, dob_out[9]); buf b_dob_out10 (dob_out10, dob_out[10]); buf b_dob_out11 (dob_out11, dob_out[11]); buf b_dob_out12 (dob_out12, dob_out[12]); buf b_dob_out13 (dob_out13, dob_out[13]); buf b_dob_out14 (dob_out14, dob_out[14]); buf b_dob_out15 (dob_out15, dob_out[15]); buf b_dob_out16 (dob_out16, dob_out[16]); buf b_dob_out17 (dob_out17, dob_out[17]); buf b_dob_out18 (dob_out18, dob_out[18]); buf b_dob_out19 (dob_out19, dob_out[19]); buf b_dob_out20 (dob_out20, dob_out[20]); buf b_dob_out21 (dob_out21, dob_out[21]); buf b_dob_out22 (dob_out22, dob_out[22]); buf b_dob_out23 (dob_out23, dob_out[23]); buf b_dob_out24 (dob_out24, dob_out[24]); buf b_dob_out25 (dob_out25, dob_out[25]); buf b_dob_out26 (dob_out26, dob_out[26]); buf b_dob_out27 (dob_out27, dob_out[27]); buf b_dob_out28 (dob_out28, dob_out[28]); buf b_dob_out29 (dob_out29, dob_out[29]); buf b_dob_out30 (dob_out30, dob_out[30]); buf b_dob_out31 (dob_out31, dob_out[31]); buf b_dopb_out0 (dopb_out0, dopb_out[0]); buf b_dopb_out1 (dopb_out1, dopb_out[1]); buf b_dopb_out2 (dopb_out2, dopb_out[2]); buf b_dopb_out3 (dopb_out3, dopb_out[3]); buf b_doa0 (DOA[0], doa_out0); buf b_doa1 (DOA[1], doa_out1); buf b_doa2 (DOA[2], doa_out2); buf b_doa3 (DOA[3], doa_out3); buf b_doa4 (DOA[4], doa_out4); buf b_doa5 (DOA[5], doa_out5); buf b_doa6 (DOA[6], doa_out6); buf b_doa7 (DOA[7], doa_out7); buf b_doa8 (DOA[8], doa_out8); buf b_doa9 (DOA[9], doa_out9); buf b_doa10 (DOA[10], doa_out10); buf b_doa11 (DOA[11], doa_out11); buf b_doa12 (DOA[12], doa_out12); buf b_doa13 (DOA[13], doa_out13); buf b_doa14 (DOA[14], doa_out14); buf b_doa15 (DOA[15], doa_out15); buf b_doa16 (DOA[16], doa_out16); buf b_doa17 (DOA[17], doa_out17); buf b_doa18 (DOA[18], doa_out18); buf b_doa19 (DOA[19], doa_out19); buf b_doa20 (DOA[20], doa_out20); buf b_doa21 (DOA[21], doa_out21); buf b_doa22 (DOA[22], doa_out22); buf b_doa23 (DOA[23], doa_out23); buf b_doa24 (DOA[24], doa_out24); buf b_doa25 (DOA[25], doa_out25); buf b_doa26 (DOA[26], doa_out26); buf b_doa27 (DOA[27], doa_out27); buf b_doa28 (DOA[28], doa_out28); buf b_doa29 (DOA[29], doa_out29); buf b_doa30 (DOA[30], doa_out30); buf b_doa31 (DOA[31], doa_out31); buf b_dopa0 (DOPA[0], dopa_out0); buf b_dopa1 (DOPA[1], dopa_out1); buf b_dopa2 (DOPA[2], dopa_out2); buf b_dopa3 (DOPA[3], dopa_out3); buf b_dob0 (DOB[0], dob_out0); buf b_dob1 (DOB[1], dob_out1); buf b_dob2 (DOB[2], dob_out2); buf b_dob3 (DOB[3], dob_out3); buf b_dob4 (DOB[4], dob_out4); buf b_dob5 (DOB[5], dob_out5); buf b_dob6 (DOB[6], dob_out6); buf b_dob7 (DOB[7], dob_out7); buf b_dob8 (DOB[8], dob_out8); buf b_dob9 (DOB[9], dob_out9); buf b_dob10 (DOB[10], dob_out10); buf b_dob11 (DOB[11], dob_out11); buf b_dob12 (DOB[12], dob_out12); buf b_dob13 (DOB[13], dob_out13); buf b_dob14 (DOB[14], dob_out14); buf b_dob15 (DOB[15], dob_out15); buf b_dob16 (DOB[16], dob_out16); buf b_dob17 (DOB[17], dob_out17); buf b_dob18 (DOB[18], dob_out18); buf b_dob19 (DOB[19], dob_out19); buf b_dob20 (DOB[20], dob_out20); buf b_dob21 (DOB[21], dob_out21); buf b_dob22 (DOB[22], dob_out22); buf b_dob23 (DOB[23], dob_out23); buf b_dob24 (DOB[24], dob_out24); buf b_dob25 (DOB[25], dob_out25); buf b_dob26 (DOB[26], dob_out26); buf b_dob27 (DOB[27], dob_out27); buf b_dob28 (DOB[28], dob_out28); buf b_dob29 (DOB[29], dob_out29); buf b_dob30 (DOB[30], dob_out30); buf b_dob31 (DOB[31], dob_out31); buf b_dopb0 (DOPB[0], dopb_out0); buf b_dopb1 (DOPB[1], dopb_out1); buf b_dopb2 (DOPB[2], dopb_out2); buf b_dopb3 (DOPB[3], dopb_out3); buf b_addra_0 (addra_int[0], ADDRA[0]); buf b_addra_1 (addra_int[1], ADDRA[1]); buf b_addra_2 (addra_int[2], ADDRA[2]); buf b_addra_3 (addra_int[3], ADDRA[3]); buf b_addra_4 (addra_int[4], ADDRA[4]); buf b_addra_5 (addra_int[5], ADDRA[5]); buf b_addra_6 (addra_int[6], ADDRA[6]); buf b_addra_7 (addra_int[7], ADDRA[7]); buf b_addra_8 (addra_int[8], ADDRA[8]); buf b_dia_0 (dia_int[0], DIA[0]); buf b_dia_1 (dia_int[1], DIA[1]); buf b_dia_2 (dia_int[2], DIA[2]); buf b_dia_3 (dia_int[3], DIA[3]); buf b_dia_4 (dia_int[4], DIA[4]); buf b_dia_5 (dia_int[5], DIA[5]); buf b_dia_6 (dia_int[6], DIA[6]); buf b_dia_7 (dia_int[7], DIA[7]); buf b_dia_8 (dia_int[8], DIA[8]); buf b_dia_9 (dia_int[9], DIA[9]); buf b_dia_10 (dia_int[10], DIA[10]); buf b_dia_11 (dia_int[11], DIA[11]); buf b_dia_12 (dia_int[12], DIA[12]); buf b_dia_13 (dia_int[13], DIA[13]); buf b_dia_14 (dia_int[14], DIA[14]); buf b_dia_15 (dia_int[15], DIA[15]); buf b_dia_16 (dia_int[16], DIA[16]); buf b_dia_17 (dia_int[17], DIA[17]); buf b_dia_18 (dia_int[18], DIA[18]); buf b_dia_19 (dia_int[19], DIA[19]); buf b_dia_20 (dia_int[20], DIA[20]); buf b_dia_21 (dia_int[21], DIA[21]); buf b_dia_22 (dia_int[22], DIA[22]); buf b_dia_23 (dia_int[23], DIA[23]); buf b_dia_24 (dia_int[24], DIA[24]); buf b_dia_25 (dia_int[25], DIA[25]); buf b_dia_26 (dia_int[26], DIA[26]); buf b_dia_27 (dia_int[27], DIA[27]); buf b_dia_28 (dia_int[28], DIA[28]); buf b_dia_29 (dia_int[29], DIA[29]); buf b_dia_30 (dia_int[30], DIA[30]); buf b_dia_31 (dia_int[31], DIA[31]); buf b_dipa_0 (dipa_int[0], DIPA[0]); buf b_dipa_1 (dipa_int[1], DIPA[1]); buf b_dipa_2 (dipa_int[2], DIPA[2]); buf b_dipa_3 (dipa_int[3], DIPA[3]); buf b_ena (ena_int, ENA); buf b_clka (clka_int, CLKA); buf b_ssra (ssra_int, SSRA); buf b_wea (wea_int, WEA); buf b_addrb_0 (addrb_int[0], ADDRB[0]); buf b_addrb_1 (addrb_int[1], ADDRB[1]); buf b_addrb_2 (addrb_int[2], ADDRB[2]); buf b_addrb_3 (addrb_int[3], ADDRB[3]); buf b_addrb_4 (addrb_int[4], ADDRB[4]); buf b_addrb_5 (addrb_int[5], ADDRB[5]); buf b_addrb_6 (addrb_int[6], ADDRB[6]); buf b_addrb_7 (addrb_int[7], ADDRB[7]); buf b_addrb_8 (addrb_int[8], ADDRB[8]); buf b_dib_0 (dib_int[0], DIB[0]); buf b_dib_1 (dib_int[1], DIB[1]); buf b_dib_2 (dib_int[2], DIB[2]); buf b_dib_3 (dib_int[3], DIB[3]); buf b_dib_4 (dib_int[4], DIB[4]); buf b_dib_5 (dib_int[5], DIB[5]); buf b_dib_6 (dib_int[6], DIB[6]); buf b_dib_7 (dib_int[7], DIB[7]); buf b_dib_8 (dib_int[8], DIB[8]); buf b_dib_9 (dib_int[9], DIB[9]); buf b_dib_10 (dib_int[10], DIB[10]); buf b_dib_11 (dib_int[11], DIB[11]); buf b_dib_12 (dib_int[12], DIB[12]); buf b_dib_13 (dib_int[13], DIB[13]); buf b_dib_14 (dib_int[14], DIB[14]); buf b_dib_15 (dib_int[15], DIB[15]); buf b_dib_16 (dib_int[16], DIB[16]); buf b_dib_17 (dib_int[17], DIB[17]); buf b_dib_18 (dib_int[18], DIB[18]); buf b_dib_19 (dib_int[19], DIB[19]); buf b_dib_20 (dib_int[20], DIB[20]); buf b_dib_21 (dib_int[21], DIB[21]); buf b_dib_22 (dib_int[22], DIB[22]); buf b_dib_23 (dib_int[23], DIB[23]); buf b_dib_24 (dib_int[24], DIB[24]); buf b_dib_25 (dib_int[25], DIB[25]); buf b_dib_26 (dib_int[26], DIB[26]); buf b_dib_27 (dib_int[27], DIB[27]); buf b_dib_28 (dib_int[28], DIB[28]); buf b_dib_29 (dib_int[29], DIB[29]); buf b_dib_30 (dib_int[30], DIB[30]); buf b_dib_31 (dib_int[31], DIB[31]); buf b_dipb_0 (dipb_int[0], DIPB[0]); buf b_dipb_1 (dipb_int[1], DIPB[1]); buf b_dipb_2 (dipb_int[2], DIPB[2]); buf b_dipb_3 (dipb_int[3], DIPB[3]); buf b_enb (enb_int, ENB); buf b_clkb (clkb_int, CLKB); buf b_ssrb (ssrb_int, SSRB); buf b_web (web_int, WEB); initial begin for (count = 0; count < 256; count = count + 1) begin mem[count] <= INIT_00[count]; mem[256 * 1 + count] <= INIT_01[count]; mem[256 * 2 + count] <= INIT_02[count]; mem[256 * 3 + count] <= INIT_03[count]; mem[256 * 4 + count] <= INIT_04[count]; mem[256 * 5 + count] <= INIT_05[count]; mem[256 * 6 + count] <= INIT_06[count]; mem[256 * 7 + count] <= INIT_07[count]; mem[256 * 8 + count] <= INIT_08[count]; mem[256 * 9 + count] <= INIT_09[count]; mem[256 * 10 + count] <= INIT_0A[count]; mem[256 * 11 + count] <= INIT_0B[count]; mem[256 * 12 + count] <= INIT_0C[count]; mem[256 * 13 + count] <= INIT_0D[count]; mem[256 * 14 + count] <= INIT_0E[count]; mem[256 * 15 + count] <= INIT_0F[count]; mem[256 * 16 + count] <= INIT_10[count]; mem[256 * 17 + count] <= INIT_11[count]; mem[256 * 18 + count] <= INIT_12[count]; mem[256 * 19 + count] <= INIT_13[count]; mem[256 * 20 + count] <= INIT_14[count]; mem[256 * 21 + count] <= INIT_15[count]; mem[256 * 22 + count] <= INIT_16[count]; mem[256 * 23 + count] <= INIT_17[count]; mem[256 * 24 + count] <= INIT_18[count]; mem[256 * 25 + count] <= INIT_19[count]; mem[256 * 26 + count] <= INIT_1A[count]; mem[256 * 27 + count] <= INIT_1B[count]; mem[256 * 28 + count] <= INIT_1C[count]; mem[256 * 29 + count] <= INIT_1D[count]; mem[256 * 30 + count] <= INIT_1E[count]; mem[256 * 31 + count] <= INIT_1F[count]; mem[256 * 32 + count] <= INIT_20[count]; mem[256 * 33 + count] <= INIT_21[count]; mem[256 * 34 + count] <= INIT_22[count]; mem[256 * 35 + count] <= INIT_23[count]; mem[256 * 36 + count] <= INIT_24[count]; mem[256 * 37 + count] <= INIT_25[count]; mem[256 * 38 + count] <= INIT_26[count]; mem[256 * 39 + count] <= INIT_27[count]; mem[256 * 40 + count] <= INIT_28[count]; mem[256 * 41 + count] <= INIT_29[count]; mem[256 * 42 + count] <= INIT_2A[count]; mem[256 * 43 + count] <= INIT_2B[count]; mem[256 * 44 + count] <= INIT_2C[count]; mem[256 * 45 + count] <= INIT_2D[count]; mem[256 * 46 + count] <= INIT_2E[count]; mem[256 * 47 + count] <= INIT_2F[count]; mem[256 * 48 + count] <= INIT_30[count]; mem[256 * 49 + count] <= INIT_31[count]; mem[256 * 50 + count] <= INIT_32[count]; mem[256 * 51 + count] <= INIT_33[count]; mem[256 * 52 + count] <= INIT_34[count]; mem[256 * 53 + count] <= INIT_35[count]; mem[256 * 54 + count] <= INIT_36[count]; mem[256 * 55 + count] <= INIT_37[count]; mem[256 * 56 + count] <= INIT_38[count]; mem[256 * 57 + count] <= INIT_39[count]; mem[256 * 58 + count] <= INIT_3A[count]; mem[256 * 59 + count] <= INIT_3B[count]; mem[256 * 60 + count] <= INIT_3C[count]; mem[256 * 61 + count] <= INIT_3D[count]; mem[256 * 62 + count] <= INIT_3E[count]; mem[256 * 63 + count] <= INIT_3F[count]; mem[256 * 64 + count] <= INITP_00[count]; mem[256 * 65 + count] <= INITP_01[count]; mem[256 * 66 + count] <= INITP_02[count]; mem[256 * 67 + count] <= INITP_03[count]; mem[256 * 68 + count] <= INITP_04[count]; mem[256 * 69 + count] <= INITP_05[count]; mem[256 * 70 + count] <= INITP_06[count]; mem[256 * 71 + count] <= INITP_07[count]; end address_collision <= 0; address_collision_a_b <= 0; address_collision_b_a <= 0; change_clka <= 0; change_clkb <= 0; data_collision <= 0; data_collision_a_b <= 0; data_collision_b_a <= 0; memory_collision <= 0; memory_collision_a_b <= 0; memory_collision_b_a <= 0; setup_all_a_b <= 0; setup_all_b_a <= 0; setup_zero <= 0; setup_rf_a_b <= 0; setup_rf_b_a <= 0; end assign data_addra_int = addra_int * 32; assign data_addra_reg = addra_reg * 32; assign data_addrb_int = addrb_int * 32; assign data_addrb_reg = addrb_reg * 32; assign parity_addra_int = 16384 + addra_int * 4; assign parity_addra_reg = 16384 + addra_reg * 4; assign parity_addrb_int = 16384 + addrb_int * 4; assign parity_addrb_reg = 16384 + addrb_reg * 4; initial begin display_flag = 1; case (SIM_COLLISION_CHECK) "NONE" : begin assign setup_all_a_b = 1'b0; assign setup_all_b_a = 1'b0; assign setup_zero = 1'b0; assign setup_rf_a_b = 1'b0; assign setup_rf_b_a = 1'b0; assign display_flag = 0; end "WARNING_ONLY" : begin assign data_collision = 2'b00; assign data_collision_a_b = 2'b00; assign data_collision_b_a = 2'b00; assign memory_collision = 1'b0; assign memory_collision_a_b = 1'b0; assign memory_collision_b_a = 1'b0; end "GENERATE_X_ONLY" : begin assign display_flag = 0; end "ALL" : ; default : begin $display("Attribute Syntax Error : The Attribute SIM_COLLISION_CHECK on RAMB16_S36_S36 instance %m is set to %s. Legal values for this attribute are ALL, NONE, WARNING_ONLY or GENERATE_X_ONLY.", SIM_COLLISION_CHECK); $finish; end endcase // case(SIM_COLLISION_CHECK) end // initial begin always @(posedge clka_int) begin time_clka = $time; #0 time_clkb_clka = time_clka - time_clkb; change_clka = ~change_clka; end always @(posedge clkb_int) begin time_clkb = $time; #0 time_clka_clkb = time_clkb - time_clka; change_clkb = ~change_clkb; end always @(change_clkb) begin if ((0 < time_clka_clkb) && (time_clka_clkb < SETUP_ALL)) setup_all_a_b = 1; if ((0 < time_clka_clkb) && (time_clka_clkb < SETUP_READ_FIRST)) setup_rf_a_b = 1; end always @(change_clka) begin if ((0 < time_clkb_clka) && (time_clkb_clka < SETUP_ALL)) setup_all_b_a = 1; if ((0 < time_clkb_clka) && (time_clkb_clka < SETUP_READ_FIRST)) setup_rf_b_a = 1; end always @(change_clkb or change_clka) begin if ((time_clkb_clka == 0) && (time_clka_clkb == 0)) setup_zero = 1; end always @(posedge setup_zero) begin if ((ena_int == 1) && (wea_int == 1) && (enb_int == 1) && (web_int == 1) && (data_addra_int[14:5] == data_addrb_int[14:5])) memory_collision <= 1; end always @(posedge setup_all_a_b or posedge setup_rf_a_b) begin if ((ena_reg == 1) && (wea_reg == 1) && (enb_int == 1) && (web_int == 1) && (data_addra_reg[14:5] == data_addrb_int[14:5])) memory_collision_a_b <= 1; end always @(posedge setup_all_b_a or posedge setup_rf_b_a) begin if ((ena_int == 1) && (wea_int == 1) && (enb_reg == 1) && (web_reg == 1) && (data_addra_int[14:5] == data_addrb_reg[14:5])) memory_collision_b_a <= 1; end always @(posedge setup_all_a_b) begin if (data_addra_reg[14:5] == data_addrb_int[14:5]) begin if ((ena_reg == 1) && (enb_int == 1)) begin case ({wr_mode_a, wr_mode_b, wea_reg, web_int}) 6'b000011 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b000111 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b001011 : begin data_collision_a_b <= 2'b10; display_wa_wb; end // 6'b010011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b010111 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b011011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end 6'b100011 : begin data_collision_a_b <= 2'b01; display_wa_wb; end 6'b100111 : begin data_collision_a_b <= 2'b01; display_wa_wb; end 6'b101011 : begin display_wa_wb; end 6'b000001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end // 6'b000101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end 6'b001001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end 6'b010001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end // 6'b010101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end 6'b011001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end 6'b100001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end // 6'b100101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end 6'b101001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end 6'b000010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b000110 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b001010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end // 6'b010010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end 6'b100010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b100110 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b101010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end endcase end end setup_all_a_b <= 0; end always @(posedge setup_all_b_a) begin if (data_addra_int[14:5] == data_addrb_reg[14:5]) begin if ((ena_int == 1) && (enb_reg == 1)) begin case ({wr_mode_a, wr_mode_b, wea_int, web_reg}) 6'b000011 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b000111 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b001011 : begin data_collision_b_a <= 2'b10; display_wa_wb; end 6'b010011 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b010111 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b011011 : begin data_collision_b_a <= 2'b10; display_wa_wb; end 6'b100011 : begin data_collision_b_a <= 2'b01; display_wa_wb; end 6'b100111 : begin data_collision_b_a <= 2'b01; display_wa_wb; end 6'b101011 : begin display_wa_wb; end 6'b000001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b000101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b001001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b010001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b010101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b011001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b100001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b100101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b101001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b000010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b000110 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b001010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end // 6'b010010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end 6'b100010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b100110 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b101010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end endcase end end setup_all_b_a <= 0; end always @(posedge setup_zero) begin if (data_addra_int[14:5] == data_addrb_int[14:5]) begin if ((ena_int == 1) && (enb_int == 1)) begin case ({wr_mode_a, wr_mode_b, wea_int, web_int}) 6'b000011 : begin data_collision <= 2'b11; display_wa_wb; end 6'b000111 : begin data_collision <= 2'b11; display_wa_wb; end 6'b001011 : begin data_collision <= 2'b10; display_wa_wb; end 6'b010011 : begin data_collision <= 2'b11; display_wa_wb; end 6'b010111 : begin data_collision <= 2'b11; display_wa_wb; end 6'b011011 : begin data_collision <= 2'b10; display_wa_wb; end 6'b100011 : begin data_collision <= 2'b01; display_wa_wb; end 6'b100111 : begin data_collision <= 2'b01; display_wa_wb; end 6'b101011 : begin display_wa_wb; end 6'b000001 : begin data_collision <= 2'b10; display_ra_wb; end // 6'b000101 : begin data_collision <= 2'b00; display_ra_wb; end 6'b001001 : begin data_collision <= 2'b10; display_ra_wb; end 6'b010001 : begin data_collision <= 2'b10; display_ra_wb; end // 6'b010101 : begin data_collision <= 2'b00; display_ra_wb; end 6'b011001 : begin data_collision <= 2'b10; display_ra_wb; end 6'b100001 : begin data_collision <= 2'b10; display_ra_wb; end // 6'b100101 : begin data_collision <= 2'b00; display_ra_wb; end 6'b101001 : begin data_collision <= 2'b10; display_ra_wb; end 6'b000010 : begin data_collision <= 2'b01; display_wa_rb; end 6'b000110 : begin data_collision <= 2'b01; display_wa_rb; end 6'b001010 : begin data_collision <= 2'b01; display_wa_rb; end // 6'b010010 : begin data_collision <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision <= 2'b00; display_wa_rb; end 6'b100010 : begin data_collision <= 2'b01; display_wa_rb; end 6'b100110 : begin data_collision <= 2'b01; display_wa_rb; end 6'b101010 : begin data_collision <= 2'b01; display_wa_rb; end endcase end end setup_zero <= 0; end task display_ra_wb; begin if (display_flag) $display("Memory Collision Error on RAMB16_S36_S36:%m at simulation time %.3f ns\nA read was performed on address %h (hex) of Port A while a write was requested to the same address on Port B. The write will be successful however the read value on Port A is unknown until the next CLKA cycle.", $time/1000.0, addra_int); end endtask task display_wa_rb; begin if (display_flag) $display("Memory Collision Error on RAMB16_S36_S36:%m at simulation time %.3f ns\nA read was performed on address %h (hex) of Port B while a write was requested to the same address on Port A. The write will be successful however the read value on Port B is unknown until the next CLKB cycle.", $time/1000.0, addrb_int); end endtask task display_wa_wb; begin if (display_flag) $display("Memory Collision Error on RAMB16_S36_S36:%m at simulation time %.3f ns\nA write was requested to the same address simultaneously at both Port A and Port B of the RAM. The contents written to the RAM at address location %h (hex) of Port A and address location %h (hex) of Port B are unknown.", $time/1000.0, addra_int, addrb_int); end endtask always @(posedge setup_rf_a_b) begin if (data_addra_reg[14:5] == data_addrb_int[14:5]) begin if ((ena_reg == 1) && (enb_int == 1)) begin case ({wr_mode_a, wr_mode_b, wea_reg, web_int}) // 6'b000011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b000111 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b001011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end 6'b010011 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b010111 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b011011 : begin data_collision_a_b <= 2'b10; display_wa_wb; end // 6'b100011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b100111 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b101011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b000001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b000101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b001001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b010001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b010101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b011001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b100001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b100101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b101001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b000010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b000110 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b001010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end 6'b010010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b010110 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b011010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end // 6'b100010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b100110 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b101010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end endcase end end setup_rf_a_b <= 0; end always @(posedge setup_rf_b_a) begin if (data_addra_int[14:5] == data_addrb_reg[14:5]) begin if ((ena_int == 1) && (enb_reg == 1)) begin case ({wr_mode_a, wr_mode_b, wea_int, web_reg}) // 6'b000011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b000111 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b001011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end // 6'b010011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b010111 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b011011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end // 6'b100011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b100111 : begin data_collision_b_a <= 2'b01; display_wa_wb; end // 6'b101011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end // 6'b000001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end 6'b000101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end // 6'b001001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end // 6'b010001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end 6'b010101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end // 6'b011001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end // 6'b100001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end 6'b100101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end // 6'b101001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end // 6'b000010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b000110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b001010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b010010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b100010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b100110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b101010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end endcase end end setup_rf_b_a <= 0; end always @(posedge clka_int) begin addra_reg <= addra_int; ena_reg <= ena_int; ssra_reg <= ssra_int; wea_reg <= wea_int; end always @(posedge clkb_int) begin addrb_reg <= addrb_int; enb_reg <= enb_int; ssrb_reg <= ssrb_int; web_reg <= web_int; end // Data always @(posedge memory_collision) begin for (dmi = 0; dmi < 32; dmi = dmi + 1) begin mem[data_addra_int + dmi] <= 1'bX; end memory_collision <= 0; end always @(posedge memory_collision_a_b) begin for (dmi = 0; dmi < 32; dmi = dmi + 1) begin mem[data_addra_reg + dmi] <= 1'bX; end memory_collision_a_b <= 0; end always @(posedge memory_collision_b_a) begin for (dmi = 0; dmi < 32; dmi = dmi + 1) begin mem[data_addra_int + dmi] <= 1'bX; end memory_collision_b_a <= 0; end always @(posedge data_collision[1]) begin if (ssra_int == 0) begin doa_out <= 32'bX; end data_collision[1] <= 0; end always @(posedge data_collision[0]) begin if (ssrb_int == 0) begin dob_out <= 32'bX; end data_collision[0] <= 0; end always @(posedge data_collision_a_b[1]) begin if (ssra_reg == 0) begin doa_out <= 32'bX; end data_collision_a_b[1] <= 0; end always @(posedge data_collision_a_b[0]) begin if (ssrb_int == 0) begin dob_out <= 32'bX; end data_collision_a_b[0] <= 0; end always @(posedge data_collision_b_a[1]) begin if (ssra_int == 0) begin doa_out <= 32'bX; end data_collision_b_a[1] <= 0; end always @(posedge data_collision_b_a[0]) begin if (ssrb_reg == 0) begin dob_out <= 32'bX; end data_collision_b_a[0] <= 0; end // Parity always @(posedge memory_collision) begin for (pmi = 0; pmi < 4; pmi = pmi + 1) begin mem[parity_addra_int + pmi] <= 1'bX; end end always @(posedge memory_collision_a_b) begin for (pmi = 0; pmi < 4; pmi = pmi + 1) begin mem[parity_addra_reg + pmi] <= 1'bX; end end always @(posedge memory_collision_b_a) begin for (pmi = 0; pmi < 4; pmi = pmi + 1) begin mem[parity_addra_int + pmi] <= 1'bX; end end always @(posedge data_collision[1]) begin if (ssra_int == 0) begin dopa_out <= 4'bX; end end always @(posedge data_collision[0]) begin if (ssrb_int == 0) begin dopb_out <= 4'bX; end end always @(posedge data_collision_a_b[1]) begin if (ssra_reg == 0) begin dopa_out <= 4'bX; end end always @(posedge data_collision_a_b[0]) begin if (ssrb_int == 0) begin dopb_out <= 4'bX; end end always @(posedge data_collision_b_a[1]) begin if (ssra_int == 0) begin dopa_out <= 4'bX; end end always @(posedge data_collision_b_a[0]) begin if (ssrb_reg == 0) begin dopb_out <= 4'bX; end end initial begin case (WRITE_MODE_A) "WRITE_FIRST" : wr_mode_a <= 2'b00; "READ_FIRST" : wr_mode_a <= 2'b01; "NO_CHANGE" : wr_mode_a <= 2'b10; default : begin $display("Attribute Syntax Error : The Attribute WRITE_MODE_A on RAMB16_S36_S36 instance %m is set to %s. Legal values for this attribute are WRITE_FIRST, READ_FIRST or NO_CHANGE.", WRITE_MODE_A); $finish; end endcase end initial begin case (WRITE_MODE_B) "WRITE_FIRST" : wr_mode_b <= 2'b00; "READ_FIRST" : wr_mode_b <= 2'b01; "NO_CHANGE" : wr_mode_b <= 2'b10; default : begin $display("Attribute Syntax Error : The Attribute WRITE_MODE_B on RAMB16_S36_S36 instance %m is set to %s. Legal values for this attribute are WRITE_FIRST, READ_FIRST or NO_CHANGE.", WRITE_MODE_B); $finish; end endcase end // Port A always @(posedge clka_int) begin if (ena_int == 1'b1) begin if (ssra_int == 1'b1) begin doa_out[0] <= SRVAL_A[0]; doa_out[1] <= SRVAL_A[1]; doa_out[2] <= SRVAL_A[2]; doa_out[3] <= SRVAL_A[3]; doa_out[4] <= SRVAL_A[4]; doa_out[5] <= SRVAL_A[5]; doa_out[6] <= SRVAL_A[6]; doa_out[7] <= SRVAL_A[7]; doa_out[8] <= SRVAL_A[8]; doa_out[9] <= SRVAL_A[9]; doa_out[10] <= SRVAL_A[10]; doa_out[11] <= SRVAL_A[11]; doa_out[12] <= SRVAL_A[12]; doa_out[13] <= SRVAL_A[13]; doa_out[14] <= SRVAL_A[14]; doa_out[15] <= SRVAL_A[15]; doa_out[16] <= SRVAL_A[16]; doa_out[17] <= SRVAL_A[17]; doa_out[18] <= SRVAL_A[18]; doa_out[19] <= SRVAL_A[19]; doa_out[20] <= SRVAL_A[20]; doa_out[21] <= SRVAL_A[21]; doa_out[22] <= SRVAL_A[22]; doa_out[23] <= SRVAL_A[23]; doa_out[24] <= SRVAL_A[24]; doa_out[25] <= SRVAL_A[25]; doa_out[26] <= SRVAL_A[26]; doa_out[27] <= SRVAL_A[27]; doa_out[28] <= SRVAL_A[28]; doa_out[29] <= SRVAL_A[29]; doa_out[30] <= SRVAL_A[30]; doa_out[31] <= SRVAL_A[31]; dopa_out[0] <= SRVAL_A[32]; dopa_out[1] <= SRVAL_A[33]; dopa_out[2] <= SRVAL_A[34]; dopa_out[3] <= SRVAL_A[35]; end else begin if (wea_int == 1'b1) begin if (wr_mode_a == 2'b00) begin doa_out <= dia_int; dopa_out <= dipa_int; end else if (wr_mode_a == 2'b01) begin doa_out[0] <= mem[data_addra_int + 0]; doa_out[1] <= mem[data_addra_int + 1]; doa_out[2] <= mem[data_addra_int + 2]; doa_out[3] <= mem[data_addra_int + 3]; doa_out[4] <= mem[data_addra_int + 4]; doa_out[5] <= mem[data_addra_int + 5]; doa_out[6] <= mem[data_addra_int + 6]; doa_out[7] <= mem[data_addra_int + 7]; doa_out[8] <= mem[data_addra_int + 8]; doa_out[9] <= mem[data_addra_int + 9]; doa_out[10] <= mem[data_addra_int + 10]; doa_out[11] <= mem[data_addra_int + 11]; doa_out[12] <= mem[data_addra_int + 12]; doa_out[13] <= mem[data_addra_int + 13]; doa_out[14] <= mem[data_addra_int + 14]; doa_out[15] <= mem[data_addra_int + 15]; doa_out[16] <= mem[data_addra_int + 16]; doa_out[17] <= mem[data_addra_int + 17]; doa_out[18] <= mem[data_addra_int + 18]; doa_out[19] <= mem[data_addra_int + 19]; doa_out[20] <= mem[data_addra_int + 20]; doa_out[21] <= mem[data_addra_int + 21]; doa_out[22] <= mem[data_addra_int + 22]; doa_out[23] <= mem[data_addra_int + 23]; doa_out[24] <= mem[data_addra_int + 24]; doa_out[25] <= mem[data_addra_int + 25]; doa_out[26] <= mem[data_addra_int + 26]; doa_out[27] <= mem[data_addra_int + 27]; doa_out[28] <= mem[data_addra_int + 28]; doa_out[29] <= mem[data_addra_int + 29]; doa_out[30] <= mem[data_addra_int + 30]; doa_out[31] <= mem[data_addra_int + 31]; dopa_out[0] <= mem[parity_addra_int + 0]; dopa_out[1] <= mem[parity_addra_int + 1]; dopa_out[2] <= mem[parity_addra_int + 2]; dopa_out[3] <= mem[parity_addra_int + 3]; end end else begin doa_out[0] <= mem[data_addra_int + 0]; doa_out[1] <= mem[data_addra_int + 1]; doa_out[2] <= mem[data_addra_int + 2]; doa_out[3] <= mem[data_addra_int + 3]; doa_out[4] <= mem[data_addra_int + 4]; doa_out[5] <= mem[data_addra_int + 5]; doa_out[6] <= mem[data_addra_int + 6]; doa_out[7] <= mem[data_addra_int + 7]; doa_out[8] <= mem[data_addra_int + 8]; doa_out[9] <= mem[data_addra_int + 9]; doa_out[10] <= mem[data_addra_int + 10]; doa_out[11] <= mem[data_addra_int + 11]; doa_out[12] <= mem[data_addra_int + 12]; doa_out[13] <= mem[data_addra_int + 13]; doa_out[14] <= mem[data_addra_int + 14]; doa_out[15] <= mem[data_addra_int + 15]; doa_out[16] <= mem[data_addra_int + 16]; doa_out[17] <= mem[data_addra_int + 17]; doa_out[18] <= mem[data_addra_int + 18]; doa_out[19] <= mem[data_addra_int + 19]; doa_out[20] <= mem[data_addra_int + 20]; doa_out[21] <= mem[data_addra_int + 21]; doa_out[22] <= mem[data_addra_int + 22]; doa_out[23] <= mem[data_addra_int + 23]; doa_out[24] <= mem[data_addra_int + 24]; doa_out[25] <= mem[data_addra_int + 25]; doa_out[26] <= mem[data_addra_int + 26]; doa_out[27] <= mem[data_addra_int + 27]; doa_out[28] <= mem[data_addra_int + 28]; doa_out[29] <= mem[data_addra_int + 29]; doa_out[30] <= mem[data_addra_int + 30]; doa_out[31] <= mem[data_addra_int + 31]; dopa_out[0] <= mem[parity_addra_int + 0]; dopa_out[1] <= mem[parity_addra_int + 1]; dopa_out[2] <= mem[parity_addra_int + 2]; dopa_out[3] <= mem[parity_addra_int + 3]; end end end end always @(posedge clka_int) begin if (ena_int == 1'b1 && wea_int == 1'b1) begin mem[data_addra_int + 0] <= dia_int[0]; mem[data_addra_int + 1] <= dia_int[1]; mem[data_addra_int + 2] <= dia_int[2]; mem[data_addra_int + 3] <= dia_int[3]; mem[data_addra_int + 4] <= dia_int[4]; mem[data_addra_int + 5] <= dia_int[5]; mem[data_addra_int + 6] <= dia_int[6]; mem[data_addra_int + 7] <= dia_int[7]; mem[data_addra_int + 8] <= dia_int[8]; mem[data_addra_int + 9] <= dia_int[9]; mem[data_addra_int + 10] <= dia_int[10]; mem[data_addra_int + 11] <= dia_int[11]; mem[data_addra_int + 12] <= dia_int[12]; mem[data_addra_int + 13] <= dia_int[13]; mem[data_addra_int + 14] <= dia_int[14]; mem[data_addra_int + 15] <= dia_int[15]; mem[data_addra_int + 16] <= dia_int[16]; mem[data_addra_int + 17] <= dia_int[17]; mem[data_addra_int + 18] <= dia_int[18]; mem[data_addra_int + 19] <= dia_int[19]; mem[data_addra_int + 20] <= dia_int[20]; mem[data_addra_int + 21] <= dia_int[21]; mem[data_addra_int + 22] <= dia_int[22]; mem[data_addra_int + 23] <= dia_int[23]; mem[data_addra_int + 24] <= dia_int[24]; mem[data_addra_int + 25] <= dia_int[25]; mem[data_addra_int + 26] <= dia_int[26]; mem[data_addra_int + 27] <= dia_int[27]; mem[data_addra_int + 28] <= dia_int[28]; mem[data_addra_int + 29] <= dia_int[29]; mem[data_addra_int + 30] <= dia_int[30]; mem[data_addra_int + 31] <= dia_int[31]; mem[parity_addra_int + 0] <= dipa_int[0]; mem[parity_addra_int + 1] <= dipa_int[1]; mem[parity_addra_int + 2] <= dipa_int[2]; mem[parity_addra_int + 3] <= dipa_int[3]; end end // Port B always @(posedge clkb_int) begin if (enb_int == 1'b1) begin if (ssrb_int == 1'b1) begin dob_out[0] <= SRVAL_B[0]; dob_out[1] <= SRVAL_B[1]; dob_out[2] <= SRVAL_B[2]; dob_out[3] <= SRVAL_B[3]; dob_out[4] <= SRVAL_B[4]; dob_out[5] <= SRVAL_B[5]; dob_out[6] <= SRVAL_B[6]; dob_out[7] <= SRVAL_B[7]; dob_out[8] <= SRVAL_B[8]; dob_out[9] <= SRVAL_B[9]; dob_out[10] <= SRVAL_B[10]; dob_out[11] <= SRVAL_B[11]; dob_out[12] <= SRVAL_B[12]; dob_out[13] <= SRVAL_B[13]; dob_out[14] <= SRVAL_B[14]; dob_out[15] <= SRVAL_B[15]; dob_out[16] <= SRVAL_B[16]; dob_out[17] <= SRVAL_B[17]; dob_out[18] <= SRVAL_B[18]; dob_out[19] <= SRVAL_B[19]; dob_out[20] <= SRVAL_B[20]; dob_out[21] <= SRVAL_B[21]; dob_out[22] <= SRVAL_B[22]; dob_out[23] <= SRVAL_B[23]; dob_out[24] <= SRVAL_B[24]; dob_out[25] <= SRVAL_B[25]; dob_out[26] <= SRVAL_B[26]; dob_out[27] <= SRVAL_B[27]; dob_out[28] <= SRVAL_B[28]; dob_out[29] <= SRVAL_B[29]; dob_out[30] <= SRVAL_B[30]; dob_out[31] <= SRVAL_B[31]; dopb_out[0] <= SRVAL_B[32]; dopb_out[1] <= SRVAL_B[33]; dopb_out[2] <= SRVAL_B[34]; dopb_out[3] <= SRVAL_B[35]; end else begin if (web_int == 1'b1) begin if (wr_mode_b == 2'b00) begin dob_out <= dib_int; dopb_out <= dipb_int; end else if (wr_mode_b == 2'b01) begin dob_out[0] <= mem[data_addrb_int + 0]; dob_out[1] <= mem[data_addrb_int + 1]; dob_out[2] <= mem[data_addrb_int + 2]; dob_out[3] <= mem[data_addrb_int + 3]; dob_out[4] <= mem[data_addrb_int + 4]; dob_out[5] <= mem[data_addrb_int + 5]; dob_out[6] <= mem[data_addrb_int + 6]; dob_out[7] <= mem[data_addrb_int + 7]; dob_out[8] <= mem[data_addrb_int + 8]; dob_out[9] <= mem[data_addrb_int + 9]; dob_out[10] <= mem[data_addrb_int + 10]; dob_out[11] <= mem[data_addrb_int + 11]; dob_out[12] <= mem[data_addrb_int + 12]; dob_out[13] <= mem[data_addrb_int + 13]; dob_out[14] <= mem[data_addrb_int + 14]; dob_out[15] <= mem[data_addrb_int + 15]; dob_out[16] <= mem[data_addrb_int + 16]; dob_out[17] <= mem[data_addrb_int + 17]; dob_out[18] <= mem[data_addrb_int + 18]; dob_out[19] <= mem[data_addrb_int + 19]; dob_out[20] <= mem[data_addrb_int + 20]; dob_out[21] <= mem[data_addrb_int + 21]; dob_out[22] <= mem[data_addrb_int + 22]; dob_out[23] <= mem[data_addrb_int + 23]; dob_out[24] <= mem[data_addrb_int + 24]; dob_out[25] <= mem[data_addrb_int + 25]; dob_out[26] <= mem[data_addrb_int + 26]; dob_out[27] <= mem[data_addrb_int + 27]; dob_out[28] <= mem[data_addrb_int + 28]; dob_out[29] <= mem[data_addrb_int + 29]; dob_out[30] <= mem[data_addrb_int + 30]; dob_out[31] <= mem[data_addrb_int + 31]; dopb_out[0] <= mem[parity_addrb_int + 0]; dopb_out[1] <= mem[parity_addrb_int + 1]; dopb_out[2] <= mem[parity_addrb_int + 2]; dopb_out[3] <= mem[parity_addrb_int + 3]; end end else begin dob_out[0] <= mem[data_addrb_int + 0]; dob_out[1] <= mem[data_addrb_int + 1]; dob_out[2] <= mem[data_addrb_int + 2]; dob_out[3] <= mem[data_addrb_int + 3]; dob_out[4] <= mem[data_addrb_int + 4]; dob_out[5] <= mem[data_addrb_int + 5]; dob_out[6] <= mem[data_addrb_int + 6]; dob_out[7] <= mem[data_addrb_int + 7]; dob_out[8] <= mem[data_addrb_int + 8]; dob_out[9] <= mem[data_addrb_int + 9]; dob_out[10] <= mem[data_addrb_int + 10]; dob_out[11] <= mem[data_addrb_int + 11]; dob_out[12] <= mem[data_addrb_int + 12]; dob_out[13] <= mem[data_addrb_int + 13]; dob_out[14] <= mem[data_addrb_int + 14]; dob_out[15] <= mem[data_addrb_int + 15]; dob_out[16] <= mem[data_addrb_int + 16]; dob_out[17] <= mem[data_addrb_int + 17]; dob_out[18] <= mem[data_addrb_int + 18]; dob_out[19] <= mem[data_addrb_int + 19]; dob_out[20] <= mem[data_addrb_int + 20]; dob_out[21] <= mem[data_addrb_int + 21]; dob_out[22] <= mem[data_addrb_int + 22]; dob_out[23] <= mem[data_addrb_int + 23]; dob_out[24] <= mem[data_addrb_int + 24]; dob_out[25] <= mem[data_addrb_int + 25]; dob_out[26] <= mem[data_addrb_int + 26]; dob_out[27] <= mem[data_addrb_int + 27]; dob_out[28] <= mem[data_addrb_int + 28]; dob_out[29] <= mem[data_addrb_int + 29]; dob_out[30] <= mem[data_addrb_int + 30]; dob_out[31] <= mem[data_addrb_int + 31]; dopb_out[0] <= mem[parity_addrb_int + 0]; dopb_out[1] <= mem[parity_addrb_int + 1]; dopb_out[2] <= mem[parity_addrb_int + 2]; dopb_out[3] <= mem[parity_addrb_int + 3]; end end end end always @(posedge clkb_int) begin if (enb_int == 1'b1 && web_int == 1'b1) begin mem[data_addrb_int + 0] <= dib_int[0]; mem[data_addrb_int + 1] <= dib_int[1]; mem[data_addrb_int + 2] <= dib_int[2]; mem[data_addrb_int + 3] <= dib_int[3]; mem[data_addrb_int + 4] <= dib_int[4]; mem[data_addrb_int + 5] <= dib_int[5]; mem[data_addrb_int + 6] <= dib_int[6]; mem[data_addrb_int + 7] <= dib_int[7]; mem[data_addrb_int + 8] <= dib_int[8]; mem[data_addrb_int + 9] <= dib_int[9]; mem[data_addrb_int + 10] <= dib_int[10]; mem[data_addrb_int + 11] <= dib_int[11]; mem[data_addrb_int + 12] <= dib_int[12]; mem[data_addrb_int + 13] <= dib_int[13]; mem[data_addrb_int + 14] <= dib_int[14]; mem[data_addrb_int + 15] <= dib_int[15]; mem[data_addrb_int + 16] <= dib_int[16]; mem[data_addrb_int + 17] <= dib_int[17]; mem[data_addrb_int + 18] <= dib_int[18]; mem[data_addrb_int + 19] <= dib_int[19]; mem[data_addrb_int + 20] <= dib_int[20]; mem[data_addrb_int + 21] <= dib_int[21]; mem[data_addrb_int + 22] <= dib_int[22]; mem[data_addrb_int + 23] <= dib_int[23]; mem[data_addrb_int + 24] <= dib_int[24]; mem[data_addrb_int + 25] <= dib_int[25]; mem[data_addrb_int + 26] <= dib_int[26]; mem[data_addrb_int + 27] <= dib_int[27]; mem[data_addrb_int + 28] <= dib_int[28]; mem[data_addrb_int + 29] <= dib_int[29]; mem[data_addrb_int + 30] <= dib_int[30]; mem[data_addrb_int + 31] <= dib_int[31]; mem[parity_addrb_int + 0] <= dipb_int[0]; mem[parity_addrb_int + 1] <= dipb_int[1]; mem[parity_addrb_int + 2] <= dipb_int[2]; mem[parity_addrb_int + 3] <= dipb_int[3]; end end specify (CLKA *> DOA) = (100, 100); (CLKA *> DOPA) = (100, 100); (CLKB *> DOB) = (100, 100); (CLKB *> DOPB) = (100, 100); endspecify endmodule `else // $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/RAMB16_S36_S36.v,v 1.10 2007/02/22 01:58:06 wloo Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2005 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 10.1 // \ \ Description : Xilinx Timing Simulation Library Component // / / 16K-Bit Data and 2K-Bit Parity Dual Port Block RAM // /___/ /\ Filename : RAMB16_S36_S36.v // \ \ / \ Timestamp : Thu Mar 10 16:44:01 PST 2005 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // 03/10/05 - Initialized outputs. // 02/21/07 - Fixed parameter SIM_COLLISION_CHECK (CR 433281). // End Revision `timescale 1 ps/1 ps module RAMB16_S36_S36 (DOA, DOB, DOPA, DOPB, ADDRA, ADDRB, CLKA, CLKB, DIA, DIB, DIPA, DIPB, ENA, ENB, SSRA, SSRB, WEA, WEB); parameter INIT_A = 36'h0; parameter INIT_B = 36'h0; parameter SRVAL_A = 36'h0; parameter SRVAL_B = 36'h0; parameter WRITE_MODE_A = "WRITE_FIRST"; parameter WRITE_MODE_B = "WRITE_FIRST"; parameter SIM_COLLISION_CHECK = "ALL"; localparam SETUP_ALL = 1000; localparam SETUP_READ_FIRST = 3000; parameter INIT_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_08 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_09 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_0F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_10 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_11 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_12 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_13 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_14 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_15 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_16 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_17 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_18 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_19 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_1F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_20 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_21 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_22 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_23 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_24 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_25 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_26 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_27 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_28 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_29 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_2F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_30 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_31 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_32 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_33 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_34 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_35 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_36 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_37 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_38 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_39 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3A = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3B = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3C = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3D = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3E = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INIT_3F = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_00 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_01 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_02 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_03 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_04 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_05 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_06 = 256'h0000000000000000000000000000000000000000000000000000000000000000; parameter INITP_07 = 256'h0000000000000000000000000000000000000000000000000000000000000000; output [31:0] DOA; output [3:0] DOPA; output [31:0] DOB; output [3:0] DOPB; input [8:0] ADDRA; input [31:0] DIA; input [3:0] DIPA; input ENA, CLKA, WEA, SSRA; input [8:0] ADDRB; input [31:0] DIB; input [3:0] DIPB; input ENB, CLKB, WEB, SSRB; reg [31:0] doa_out = INIT_A[31:0]; reg [3:0] dopa_out = INIT_A[35:32]; reg [31:0] dob_out = INIT_B[31:0]; reg [3:0] dopb_out = INIT_B[35:32]; reg [31:0] mem [511:0]; reg [3:0] memp [511:0]; reg [8:0] count, countp; reg [1:0] wr_mode_a, wr_mode_b; reg [5:0] dmi, dbi; reg [5:0] pmi, pbi; wire [8:0] addra_int; reg [8:0] addra_reg; wire [31:0] dia_int; wire [3:0] dipa_int; wire ena_int, clka_int, wea_int, ssra_int; reg ena_reg, wea_reg, ssra_reg; wire [8:0] addrb_int; reg [8:0] addrb_reg; wire [31:0] dib_int; wire [3:0] dipb_int; wire enb_int, clkb_int, web_int, ssrb_int; reg display_flag, output_flag; reg enb_reg, web_reg, ssrb_reg; time time_clka, time_clkb; time time_clka_clkb; time time_clkb_clka; reg setup_all_a_b; reg setup_all_b_a; reg setup_zero; reg setup_rf_a_b; reg setup_rf_b_a; reg [1:0] data_collision, data_collision_a_b, data_collision_b_a; reg memory_collision, memory_collision_a_b, memory_collision_b_a; reg change_clka; reg change_clkb; wire [14:0] data_addra_int; wire [14:0] data_addra_reg; wire [14:0] data_addrb_int; wire [14:0] data_addrb_reg; wire dia_enable = ena_int && wea_int; wire dib_enable = enb_int && web_int; tri0 GSR = glbl.GSR; wire gsr_int; buf b_gsr (gsr_int, GSR); buf b_doa [31:0] (DOA, doa_out); buf b_dopa [3:0] (DOPA, dopa_out); buf b_addra [8:0] (addra_int, ADDRA); buf b_dia [31:0] (dia_int, DIA); buf b_dipa [3:0] (dipa_int, DIPA); buf b_ena (ena_int, ENA); buf b_clka (clka_int, CLKA); buf b_ssra (ssra_int, SSRA); buf b_wea (wea_int, WEA); buf b_dob [31:0] (DOB, dob_out); buf b_dopb [3:0] (DOPB, dopb_out); buf b_addrb [8:0] (addrb_int, ADDRB); buf b_dib [31:0] (dib_int, DIB); buf b_dipb [3:0] (dipb_int, DIPB); buf b_enb (enb_int, ENB); buf b_clkb (clkb_int, CLKB); buf b_ssrb (ssrb_int, SSRB); buf b_web (web_int, WEB); always @(gsr_int) if (gsr_int) begin assign {dopa_out, doa_out} = INIT_A; assign {dopb_out, dob_out} = INIT_B; end else begin deassign doa_out; deassign dopa_out; deassign dob_out; deassign dopb_out; end initial begin for (count = 0; count < 8; count = count + 1) begin mem[count] = INIT_00[(count * 32) +: 32]; mem[8 * 1 + count] = INIT_01[(count * 32) +: 32]; mem[8 * 2 + count] = INIT_02[(count * 32) +: 32]; mem[8 * 3 + count] = INIT_03[(count * 32) +: 32]; mem[8 * 4 + count] = INIT_04[(count * 32) +: 32]; mem[8 * 5 + count] = INIT_05[(count * 32) +: 32]; mem[8 * 6 + count] = INIT_06[(count * 32) +: 32]; mem[8 * 7 + count] = INIT_07[(count * 32) +: 32]; mem[8 * 8 + count] = INIT_08[(count * 32) +: 32]; mem[8 * 9 + count] = INIT_09[(count * 32) +: 32]; mem[8 * 10 + count] = INIT_0A[(count * 32) +: 32]; mem[8 * 11 + count] = INIT_0B[(count * 32) +: 32]; mem[8 * 12 + count] = INIT_0C[(count * 32) +: 32]; mem[8 * 13 + count] = INIT_0D[(count * 32) +: 32]; mem[8 * 14 + count] = INIT_0E[(count * 32) +: 32]; mem[8 * 15 + count] = INIT_0F[(count * 32) +: 32]; mem[8 * 16 + count] = INIT_10[(count * 32) +: 32]; mem[8 * 17 + count] = INIT_11[(count * 32) +: 32]; mem[8 * 18 + count] = INIT_12[(count * 32) +: 32]; mem[8 * 19 + count] = INIT_13[(count * 32) +: 32]; mem[8 * 20 + count] = INIT_14[(count * 32) +: 32]; mem[8 * 21 + count] = INIT_15[(count * 32) +: 32]; mem[8 * 22 + count] = INIT_16[(count * 32) +: 32]; mem[8 * 23 + count] = INIT_17[(count * 32) +: 32]; mem[8 * 24 + count] = INIT_18[(count * 32) +: 32]; mem[8 * 25 + count] = INIT_19[(count * 32) +: 32]; mem[8 * 26 + count] = INIT_1A[(count * 32) +: 32]; mem[8 * 27 + count] = INIT_1B[(count * 32) +: 32]; mem[8 * 28 + count] = INIT_1C[(count * 32) +: 32]; mem[8 * 29 + count] = INIT_1D[(count * 32) +: 32]; mem[8 * 30 + count] = INIT_1E[(count * 32) +: 32]; mem[8 * 31 + count] = INIT_1F[(count * 32) +: 32]; mem[8 * 32 + count] = INIT_20[(count * 32) +: 32]; mem[8 * 33 + count] = INIT_21[(count * 32) +: 32]; mem[8 * 34 + count] = INIT_22[(count * 32) +: 32]; mem[8 * 35 + count] = INIT_23[(count * 32) +: 32]; mem[8 * 36 + count] = INIT_24[(count * 32) +: 32]; mem[8 * 37 + count] = INIT_25[(count * 32) +: 32]; mem[8 * 38 + count] = INIT_26[(count * 32) +: 32]; mem[8 * 39 + count] = INIT_27[(count * 32) +: 32]; mem[8 * 40 + count] = INIT_28[(count * 32) +: 32]; mem[8 * 41 + count] = INIT_29[(count * 32) +: 32]; mem[8 * 42 + count] = INIT_2A[(count * 32) +: 32]; mem[8 * 43 + count] = INIT_2B[(count * 32) +: 32]; mem[8 * 44 + count] = INIT_2C[(count * 32) +: 32]; mem[8 * 45 + count] = INIT_2D[(count * 32) +: 32]; mem[8 * 46 + count] = INIT_2E[(count * 32) +: 32]; mem[8 * 47 + count] = INIT_2F[(count * 32) +: 32]; mem[8 * 48 + count] = INIT_30[(count * 32) +: 32]; mem[8 * 49 + count] = INIT_31[(count * 32) +: 32]; mem[8 * 50 + count] = INIT_32[(count * 32) +: 32]; mem[8 * 51 + count] = INIT_33[(count * 32) +: 32]; mem[8 * 52 + count] = INIT_34[(count * 32) +: 32]; mem[8 * 53 + count] = INIT_35[(count * 32) +: 32]; mem[8 * 54 + count] = INIT_36[(count * 32) +: 32]; mem[8 * 55 + count] = INIT_37[(count * 32) +: 32]; mem[8 * 56 + count] = INIT_38[(count * 32) +: 32]; mem[8 * 57 + count] = INIT_39[(count * 32) +: 32]; mem[8 * 58 + count] = INIT_3A[(count * 32) +: 32]; mem[8 * 59 + count] = INIT_3B[(count * 32) +: 32]; mem[8 * 60 + count] = INIT_3C[(count * 32) +: 32]; mem[8 * 61 + count] = INIT_3D[(count * 32) +: 32]; mem[8 * 62 + count] = INIT_3E[(count * 32) +: 32]; mem[8 * 63 + count] = INIT_3F[(count * 32) +: 32]; end // initiate parity start for (countp = 0; countp < 64; countp = countp + 1) begin memp[countp] = INITP_00[(countp * 4) +: 4]; memp[64 * 1 + countp] = INITP_01[(countp * 4) +: 4]; memp[64 * 2 + countp] = INITP_02[(countp * 4) +: 4]; memp[64 * 3 + countp] = INITP_03[(countp * 4) +: 4]; memp[64 * 4 + countp] = INITP_04[(countp * 4) +: 4]; memp[64 * 5 + countp] = INITP_05[(countp * 4) +: 4]; memp[64 * 6 + countp] = INITP_06[(countp * 4) +: 4]; memp[64 * 7 + countp] = INITP_07[(countp * 4) +: 4]; end // initiate parity end change_clka <= 0; change_clkb <= 0; data_collision <= 0; data_collision_a_b <= 0; data_collision_b_a <= 0; memory_collision <= 0; memory_collision_a_b <= 0; memory_collision_b_a <= 0; setup_all_a_b <= 0; setup_all_b_a <= 0; setup_zero <= 0; setup_rf_a_b <= 0; setup_rf_b_a <= 0; end assign data_addra_int = addra_int * 32; assign data_addra_reg = addra_reg * 32; assign data_addrb_int = addrb_int * 32; assign data_addrb_reg = addrb_reg * 32; initial begin display_flag = 1; output_flag = 1; case (SIM_COLLISION_CHECK) "NONE" : begin output_flag = 0; display_flag = 0; end "WARNING_ONLY" : output_flag = 0; "GENERATE_X_ONLY" : display_flag = 0; "ALL" : ; default : begin $display("Attribute Syntax Error : The Attribute SIM_COLLISION_CHECK on RAMB16_S36_S36 instance %m is set to %s. Legal values for this attribute are ALL, NONE, WARNING_ONLY or GENERATE_X_ONLY.", SIM_COLLISION_CHECK); $finish; end endcase // case(SIM_COLLISION_CHECK) end // initial begin always @(posedge clka_int) begin if ((output_flag || display_flag)) begin time_clka = $time; #0 time_clkb_clka = time_clka - time_clkb; change_clka = ~change_clka; end end always @(posedge clkb_int) begin if ((output_flag || display_flag)) begin time_clkb = $time; #0 time_clka_clkb = time_clkb - time_clka; change_clkb = ~change_clkb; end end always @(change_clkb) begin if ((0 < time_clka_clkb) && (time_clka_clkb < SETUP_ALL)) setup_all_a_b = 1; if ((0 < time_clka_clkb) && (time_clka_clkb < SETUP_READ_FIRST)) setup_rf_a_b = 1; end always @(change_clka) begin if ((0 < time_clkb_clka) && (time_clkb_clka < SETUP_ALL)) setup_all_b_a = 1; if ((0 < time_clkb_clka) && (time_clkb_clka < SETUP_READ_FIRST)) setup_rf_b_a = 1; end always @(change_clkb or change_clka) begin if ((time_clkb_clka == 0) && (time_clka_clkb == 0)) setup_zero = 1; end always @(posedge setup_zero) begin if ((ena_int == 1) && (wea_int == 1) && (enb_int == 1) && (web_int == 1) && (data_addra_int[14:5] == data_addrb_int[14:5])) memory_collision <= 1; end always @(posedge setup_all_a_b or posedge setup_rf_a_b) begin if ((ena_reg == 1) && (wea_reg == 1) && (enb_int == 1) && (web_int == 1) && (data_addra_reg[14:5] == data_addrb_int[14:5])) memory_collision_a_b <= 1; end always @(posedge setup_all_b_a or posedge setup_rf_b_a) begin if ((ena_int == 1) && (wea_int == 1) && (enb_reg == 1) && (web_reg == 1) && (data_addra_int[14:5] == data_addrb_reg[14:5])) memory_collision_b_a <= 1; end always @(posedge setup_all_a_b) begin if (data_addra_reg[14:5] == data_addrb_int[14:5]) begin if ((ena_reg == 1) && (enb_int == 1)) begin case ({wr_mode_a, wr_mode_b, wea_reg, web_int}) 6'b000011 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b000111 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b001011 : begin data_collision_a_b <= 2'b10; display_wa_wb; end // 6'b010011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b010111 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b011011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end 6'b100011 : begin data_collision_a_b <= 2'b01; display_wa_wb; end 6'b100111 : begin data_collision_a_b <= 2'b01; display_wa_wb; end 6'b101011 : begin display_wa_wb; end 6'b000001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end // 6'b000101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end 6'b001001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end 6'b010001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end // 6'b010101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end 6'b011001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end 6'b100001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end // 6'b100101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end 6'b101001 : begin data_collision_a_b <= 2'b10; display_ra_wb; end 6'b000010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b000110 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b001010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end // 6'b010010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end 6'b100010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b100110 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b101010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end endcase end end setup_all_a_b <= 0; end always @(posedge setup_all_b_a) begin if (data_addra_int[14:5] == data_addrb_reg[14:5]) begin if ((ena_int == 1) && (enb_reg == 1)) begin case ({wr_mode_a, wr_mode_b, wea_int, web_reg}) 6'b000011 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b000111 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b001011 : begin data_collision_b_a <= 2'b10; display_wa_wb; end 6'b010011 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b010111 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b011011 : begin data_collision_b_a <= 2'b10; display_wa_wb; end 6'b100011 : begin data_collision_b_a <= 2'b01; display_wa_wb; end 6'b100111 : begin data_collision_b_a <= 2'b01; display_wa_wb; end 6'b101011 : begin display_wa_wb; end 6'b000001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b000101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b001001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b010001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b010101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b011001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b100001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b100101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b101001 : begin data_collision_b_a <= 2'b10; display_ra_wb; end 6'b000010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b000110 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b001010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end // 6'b010010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end 6'b100010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b100110 : begin data_collision_b_a <= 2'b01; display_wa_rb; end 6'b101010 : begin data_collision_b_a <= 2'b01; display_wa_rb; end endcase end end setup_all_b_a <= 0; end always @(posedge setup_zero) begin if (data_addra_int[14:5] == data_addrb_int[14:5]) begin if ((ena_int == 1) && (enb_int == 1)) begin case ({wr_mode_a, wr_mode_b, wea_int, web_int}) 6'b000011 : begin data_collision <= 2'b11; display_wa_wb; end 6'b000111 : begin data_collision <= 2'b11; display_wa_wb; end 6'b001011 : begin data_collision <= 2'b10; display_wa_wb; end 6'b010011 : begin data_collision <= 2'b11; display_wa_wb; end 6'b010111 : begin data_collision <= 2'b11; display_wa_wb; end 6'b011011 : begin data_collision <= 2'b10; display_wa_wb; end 6'b100011 : begin data_collision <= 2'b01; display_wa_wb; end 6'b100111 : begin data_collision <= 2'b01; display_wa_wb; end 6'b101011 : begin display_wa_wb; end 6'b000001 : begin data_collision <= 2'b10; display_ra_wb; end // 6'b000101 : begin data_collision <= 2'b00; display_ra_wb; end 6'b001001 : begin data_collision <= 2'b10; display_ra_wb; end 6'b010001 : begin data_collision <= 2'b10; display_ra_wb; end // 6'b010101 : begin data_collision <= 2'b00; display_ra_wb; end 6'b011001 : begin data_collision <= 2'b10; display_ra_wb; end 6'b100001 : begin data_collision <= 2'b10; display_ra_wb; end // 6'b100101 : begin data_collision <= 2'b00; display_ra_wb; end 6'b101001 : begin data_collision <= 2'b10; display_ra_wb; end 6'b000010 : begin data_collision <= 2'b01; display_wa_rb; end 6'b000110 : begin data_collision <= 2'b01; display_wa_rb; end 6'b001010 : begin data_collision <= 2'b01; display_wa_rb; end // 6'b010010 : begin data_collision <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision <= 2'b00; display_wa_rb; end 6'b100010 : begin data_collision <= 2'b01; display_wa_rb; end 6'b100110 : begin data_collision <= 2'b01; display_wa_rb; end 6'b101010 : begin data_collision <= 2'b01; display_wa_rb; end endcase end end setup_zero <= 0; end task display_ra_wb; begin if (display_flag) $display("Memory Collision Error on RAMB16_S36_S36:%m at simulation time %.3f ns\nA read was performed on address %h (hex) of Port A while a write was requested to the same address on Port B. The write will be successful however the read value on Port A is unknown until the next CLKA cycle.", $time/1000.0, addra_int); end endtask task display_wa_rb; begin if (display_flag) $display("Memory Collision Error on RAMB16_S36_S36:%m at simulation time %.3f ns\nA read was performed on address %h (hex) of Port B while a write was requested to the same address on Port A. The write will be successful however the read value on Port B is unknown until the next CLKB cycle.", $time/1000.0, addrb_int); end endtask task display_wa_wb; begin if (display_flag) $display("Memory Collision Error on RAMB16_S36_S36:%m at simulation time %.3f ns\nA write was requested to the same address simultaneously at both Port A and Port B of the RAM. The contents written to the RAM at address location %h (hex) of Port A and address location %h (hex) of Port B are unknown.", $time/1000.0, addra_int, addrb_int); end endtask always @(posedge setup_rf_a_b) begin if (data_addra_reg[14:5] == data_addrb_int[14:5]) begin if ((ena_reg == 1) && (enb_int == 1)) begin case ({wr_mode_a, wr_mode_b, wea_reg, web_int}) // 6'b000011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b000111 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b001011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end 6'b010011 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b010111 : begin data_collision_a_b <= 2'b11; display_wa_wb; end 6'b011011 : begin data_collision_a_b <= 2'b10; display_wa_wb; end // 6'b100011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b100111 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b101011 : begin data_collision_a_b <= 2'b00; display_wa_wb; end // 6'b000001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b000101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b001001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b010001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b010101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b011001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b100001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b100101 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b101001 : begin data_collision_a_b <= 2'b00; display_ra_wb; end // 6'b000010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b000110 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b001010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end 6'b010010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b010110 : begin data_collision_a_b <= 2'b01; display_wa_rb; end 6'b011010 : begin data_collision_a_b <= 2'b01; display_wa_rb; end // 6'b100010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b100110 : begin data_collision_a_b <= 2'b00; display_wa_rb; end // 6'b101010 : begin data_collision_a_b <= 2'b00; display_wa_rb; end endcase end end setup_rf_a_b <= 0; end always @(posedge setup_rf_b_a) begin if (data_addra_int[14:5] == data_addrb_reg[14:5]) begin if ((ena_int == 1) && (enb_reg == 1)) begin case ({wr_mode_a, wr_mode_b, wea_int, web_reg}) // 6'b000011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b000111 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b001011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end // 6'b010011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b010111 : begin data_collision_b_a <= 2'b11; display_wa_wb; end // 6'b011011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end // 6'b100011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end 6'b100111 : begin data_collision_b_a <= 2'b01; display_wa_wb; end // 6'b101011 : begin data_collision_b_a <= 2'b00; display_wa_wb; end // 6'b000001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end 6'b000101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end // 6'b001001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end // 6'b010001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end 6'b010101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end // 6'b011001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end // 6'b100001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end 6'b100101 : begin data_collision_b_a <= 2'b10; display_ra_wb; end // 6'b101001 : begin data_collision_b_a <= 2'b00; display_ra_wb; end // 6'b000010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b000110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b001010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b010010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b010110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b011010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b100010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b100110 : begin data_collision_b_a <= 2'b00; display_wa_rb; end // 6'b101010 : begin data_collision_b_a <= 2'b00; display_wa_rb; end endcase end end setup_rf_b_a <= 0; end always @(posedge clka_int) begin if ((output_flag || display_flag)) begin addra_reg <= addra_int; ena_reg <= ena_int; ssra_reg <= ssra_int; wea_reg <= wea_int; end end always @(posedge clkb_int) begin if ((output_flag || display_flag)) begin addrb_reg <= addrb_int; enb_reg <= enb_int; ssrb_reg <= ssrb_int; web_reg <= web_int; end end // Data always @(posedge memory_collision) begin if ((output_flag || display_flag)) begin mem[addra_int] <= 32'bx; memory_collision <= 0; end end always @(posedge memory_collision_a_b) begin if ((output_flag || display_flag)) begin mem[addra_reg] <= 32'bx; memory_collision_a_b <= 0; end end always @(posedge memory_collision_b_a) begin if ((output_flag || display_flag)) begin mem[addra_int] <= 32'bx; memory_collision_b_a <= 0; end end always @(posedge data_collision[1]) begin if (ssra_int == 0 && output_flag) begin doa_out <= #100 32'bX; end data_collision[1] <= 0; end always @(posedge data_collision[0]) begin if (ssrb_int == 0 && output_flag) begin dob_out <= #100 32'bX; end data_collision[0] <= 0; end always @(posedge data_collision_a_b[1]) begin if (ssra_reg == 0 && output_flag) begin doa_out <= #100 32'bX; end data_collision_a_b[1] <= 0; end always @(posedge data_collision_a_b[0]) begin if (ssrb_int == 0 && output_flag) begin dob_out <= #100 32'bX; end data_collision_a_b[0] <= 0; end always @(posedge data_collision_b_a[1]) begin if (ssra_int == 0 && output_flag) begin doa_out <= #100 32'bX; end data_collision_b_a[1] <= 0; end always @(posedge data_collision_b_a[0]) begin if (ssrb_reg == 0 && output_flag) begin dob_out <= #100 32'bX; end data_collision_b_a[0] <= 0; end // x parity start always @(posedge memory_collision) begin if ((output_flag || display_flag)) memp[addra_int] <= 4'bx; end always @(posedge memory_collision_a_b) begin if ((output_flag || display_flag)) memp[addra_reg] <= 4'bx; end always @(posedge memory_collision_b_a) begin if ((output_flag || display_flag)) memp[addra_int] <= 4'bx; end always @(posedge data_collision[1]) begin if (ssra_int == 0 && output_flag) begin dopa_out <= #100 4'bX; end end always @(posedge data_collision_a_b[1]) begin if (ssra_reg == 0 && output_flag) begin dopa_out <= #100 4'bX; end end always @(posedge data_collision_b_a[1]) begin if (ssra_int == 0 && output_flag) begin dopa_out <= #100 4'bX; end end always @(posedge data_collision[0]) begin if (ssrb_int == 0 && output_flag) begin dopb_out <= #100 4'bx; end end always @(posedge data_collision_a_b[0]) begin if (ssrb_int == 0 && output_flag) begin dopb_out <= #100 4'bx; end end always @(posedge data_collision_b_a[0]) begin if (ssrb_reg == 0 && output_flag) begin dopb_out <= #100 4'bx; end end // x parity end initial begin case (WRITE_MODE_A) "WRITE_FIRST" : wr_mode_a <= 2'b00; "READ_FIRST" : wr_mode_a <= 2'b01; "NO_CHANGE" : wr_mode_a <= 2'b10; default : begin $display("Attribute Syntax Error : The Attribute WRITE_MODE_A on RAMB16_S36_S36 instance %m is set to %s. Legal values for this attribute are WRITE_FIRST, READ_FIRST or NO_CHANGE.", WRITE_MODE_A); $finish; end endcase end initial begin case (WRITE_MODE_B) "WRITE_FIRST" : wr_mode_b <= 2'b00; "READ_FIRST" : wr_mode_b <= 2'b01; "NO_CHANGE" : wr_mode_b <= 2'b10; default : begin $display("Attribute Syntax Error : The Attribute WRITE_MODE_B on RAMB16_S36_S36 instance %m is set to %s. Legal values for this attribute are WRITE_FIRST, READ_FIRST or NO_CHANGE.", WRITE_MODE_B); $finish; end endcase end // Port A always @(posedge clka_int) begin if (ena_int == 1'b1) begin if (ssra_int == 1'b1) begin {dopa_out, doa_out} <= #100 SRVAL_A; end else begin if (wea_int == 1'b1) begin if (wr_mode_a == 2'b00) begin doa_out <= #100 dia_int; dopa_out <= #100 dipa_int; end else if (wr_mode_a == 2'b01) begin doa_out <= #100 mem[addra_int]; dopa_out <= #100 memp[addra_int]; end end else begin doa_out <= #100 mem[addra_int]; dopa_out <= #100 memp[addra_int]; end end // memory if (wea_int == 1'b1) begin mem[addra_int] <= dia_int; memp[addra_int] <= dipa_int; end end end // Port B always @(posedge clkb_int) begin if (enb_int == 1'b1) begin if (ssrb_int == 1'b1) begin {dopb_out, dob_out} <= #100 SRVAL_B; end else begin if (web_int == 1'b1) begin if (wr_mode_b == 2'b00) begin dob_out <= #100 dib_int; dopb_out <= #100 dipb_int; end else if (wr_mode_b == 2'b01) begin dob_out <= #100 mem[addrb_int]; dopb_out <= #100 memp[addrb_int]; end end else begin dob_out <= #100 mem[addrb_int]; dopb_out <= #100 memp[addrb_int]; end end // memory if (web_int == 1'b1) begin mem[addrb_int] <= dib_int; memp[addrb_int] <= dipb_int; end end end endmodule `endif uhd-3.5.5/fpga/usrp2/models/SRL16E.v000066400000000000000000000024221224274632000166640ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/SRL16E.v,v 1.7 2005/03/14 22:32:58 yanx Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 8.1i (I.13) // \ \ Description : Xilinx Functional Simulation Library Component // / / 16-Bit Shift Register Look-Up-Table with Clock Enable // /___/ /\ Filename : SRL16E.v // \ \ / \ Timestamp : Thu Mar 25 16:43:40 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // End Revision `timescale 1 ps / 1 ps module SRL16E (Q, A0, A1, A2, A3, CE, CLK, D); parameter INIT = 16'h0000; output Q; input A0, A1, A2, A3, CE, CLK, D; reg [15:0] data; assign Q = data[{A3, A2, A1, A0}]; initial begin assign data = INIT; while (CLK === 1'b1 || CLK===1'bX) #10; deassign data; end always @(posedge CLK) begin if (CE == 1'b1) begin {data[15:0]} <= #100 {data[14:0], D}; end end endmodule uhd-3.5.5/fpga/usrp2/models/SRLC16E.v000066400000000000000000000030401224274632000167640ustar00rootroot00000000000000// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/unisims/SRLC16E.v,v 1.6.158.1 2007/03/09 18:13:20 patrickp Exp $ /////////////////////////////////////////////////////////////////////////////// // Copyright (c) 1995/2004 Xilinx, Inc. // All Right Reserved. /////////////////////////////////////////////////////////////////////////////// // ____ ____ // / /\/ / // /___/ \ / Vendor : Xilinx // \ \ \/ Version : 8.1i (I.13) // \ \ Description : Xilinx Functional Simulation Library Component // / / 16-Bit Shift Register Look-Up-Table with Carry and Clock Enable // /___/ /\ Filename : SRLC16E.v // \ \ / \ Timestamp : Thu Mar 25 16:43:40 PST 2004 // \___\/\___\ // // Revision: // 03/23/04 - Initial version. // End Revision `timescale 1 ps / 1 ps module SRLC16E (Q, Q15, A0, A1, A2, A3, CE, CLK, D); parameter INIT = 16'h0000; output Q, Q15; input A0, A1, A2, A3, CE, CLK, D; reg [15:0] data; wire [3:0] addr; wire q_int; buf b_a3 (addr[3], A3); buf b_a2 (addr[2], A2); buf b_a1 (addr[1], A1); buf b_a0 (addr[0], A0); buf b_q_int (q_int, data[addr]); buf b_q (Q, q_int); buf b_q15_int (q15_int, data[15]); buf b_q15 (Q15, q15_int); initial begin assign data = INIT; while (CLK === 1'b1 || CLK===1'bX) #10; deassign data; end always @(posedge CLK) begin if (CE == 1'b1) begin {data[15:0]} <= #100 {data[14:0], D}; end end endmodule uhd-3.5.5/fpga/usrp2/models/adc_model.v000066400000000000000000000034331224274632000176620ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module adc_model (input clk, input rst, output [13:0] adc_a, output adc_ovf_a, input adc_on_a, input adc_oe_a, output [13:0] adc_b, output adc_ovf_b, input adc_on_b, input adc_oe_b ); math_real math ( ) ; reg [13:0] adc_a_int = 0; reg [13:0] adc_b_int = 0; assign adc_a = adc_oe_a ? adc_a_int : 14'bz; assign adc_ovf_a = adc_oe_a ? 1'b0 : 1'bz; assign adc_b = adc_oe_b ? adc_b_int : 14'bz; assign adc_ovf_b = adc_oe_b ? 1'b0 : 1'bz; real phase = 0; real freq = 330000/100000000; real scale = 8190; // math.pow(2,13)-2; always @(posedge clk) if(rst) begin adc_a_int <= 0; adc_b_int <= 0; end else begin if(adc_on_a) //adc_a_int <= $rtoi(math.round(math.sin(phase*math.MATH_2_PI)*scale)) ; adc_a_int <= adc_a_int + 3; if(adc_on_b) adc_b_int <= adc_b_int - 7; //adc_b_int <= $rtoi(math.round(math.cos(phase*math.MATH_2_PI)*scale)) ; if(phase > 1) phase <= phase + freq - 1; else phase <= phase + freq; end endmodule // adc_model uhd-3.5.5/fpga/usrp2/models/cpld_model.v000066400000000000000000000050421224274632000200530ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module cpld_model (input aux_clk, input start, input mode, input done, output dout, output reg sclk, output detached); reg [7:0] rom[0:65535]; reg [15:0] addr; reg [7:0] data; assign dout = data[7]; reg [2:0] state, bitcnt; localparam IDLE = 3'd0; localparam READ = 3'd1; localparam BIT1 = 3'd2; localparam BIT2 = 3'd3; localparam DONE = 3'd4; localparam DETACHED = 3'd5; localparam ERROR = 3'd7; integer i; reg [1023:0] ROMFile; initial begin for (i=0;i<65536;i=i+1) begin rom[i] <= 32'h0; end if ( !$value$plusargs( "rom=%s", ROMFile ) ) begin $display( "Using default ROM file, 'flash.rom'" ); ROMFile = "flash.rom"; end else $display( "Using %s as ROM file.", ROMFile); #1 $readmemh( ROMFile,rom ); end initial addr = 16'd0; initial data = 8'd0; initial state = IDLE; initial bitcnt = 3'd0; initial sclk = 1'b0; always @(posedge aux_clk) case(state) IDLE : if(start) if(~mode) state <= READ; else state <= ERROR; READ : if(done) state <= DONE; else begin data <= rom[addr]; addr <= addr + 1; bitcnt <= 3'd0; if(addr==16'hFFFF) state <= ERROR; else state <= BIT1; end // else: !if(start) BIT1 : begin sclk <= 1'b1; state <= BIT2; end BIT2 : begin sclk <= 1'b0; data <= {data[6:0],1'b0}; bitcnt <= bitcnt + 1; if(bitcnt==7) state <= READ; else state <=BIT1; end DONE : begin if(start) state <= ERROR; else state <= DETACHED; end DETACHED : if(start) state <= ERROR; endcase // case(state) assign detached = (state == DETACHED) || (state == IDLE); endmodule // cpld_model uhd-3.5.5/fpga/usrp2/models/gpmc_model_async.v000066400000000000000000000060101224274632000212500ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ps/1ps module gpmc_model_async (output EM_CLK, inout [15:0] EM_D, output reg [10:1] EM_A, output reg [1:0] EM_NBE, output reg EM_WAIT0, output reg EM_NCS4, output reg EM_NCS6, output reg EM_NWE, output reg EM_NOE ); assign EM_CLK = 0; reg [15:0] EM_D_int; assign EM_D = EM_D_int; initial begin EM_A <= 10'bz; EM_NBE <= 2'b11; EM_NWE <= 1; EM_NOE <= 1; EM_NCS4 <= 1; EM_NCS6 <= 1; EM_D_int <= 16'bz; EM_WAIT0 <= 0; // FIXME this is actually an input end task GPMC_Write; input ctrl; input [10:0] addr; input [15:0] data; begin #23000; EM_A <= addr[10:1]; EM_D_int <= data; #20100; if(ctrl) EM_NCS6 <= 0; else EM_NCS4 <= 0; #14000; EM_NWE <= 0; #77500; EM_NCS4 <= 1; EM_NCS6 <= 1; //#1.5; EM_NWE <= 1; #60000; EM_A <= 10'bz; EM_D_int <= 16'bz; end endtask // GPMC_Write task GPMC_Read; input ctrl; input [10:0] addr; begin #13000; EM_A <= addr[10:1]; #3000; if(ctrl) EM_NCS6 <= 0; else EM_NCS4 <= 0; #14000; EM_NOE <= 0; #77500; EM_NCS4 <= 1; EM_NCS6 <= 1; //#1.5; $display("Data Read from GPMC: %X",EM_D); EM_NOE <= 1; #254000; EM_A <= 10'bz; end endtask // GPMC_Read initial begin #1000000; GPMC_Write(1,36,16'hF00D); #1000000; GPMC_Read(1,36); #1000000; GPMC_Write(0,0,16'h1234); GPMC_Write(0,0,16'h5678); GPMC_Write(0,0,16'h9abc); GPMC_Write(0,0,16'hF00D); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); #1000000; GPMC_Write(0,0,16'h1234); GPMC_Write(0,0,16'h5678); GPMC_Write(0,0,16'h9abc); GPMC_Write(0,0,16'hF00D); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'hDEAD); GPMC_Write(0,0,16'h9876); #1000000; GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); #1000000; GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); GPMC_Read(0,0); #1000000; GPMC_Read(0,0); #100000000; $finish; end endmodule // gpmc_model_async uhd-3.5.5/fpga/usrp2/models/gpmc_model_sync.v000066400000000000000000000045731224274632000211230ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module gpmc_model_sync (output reg EM_CLK, inout [15:0] EM_D, output reg [10:1] EM_A, output reg [1:0] EM_NBE, output reg EM_WAIT0, output reg EM_NCS4, output reg EM_NCS6, output reg EM_NWE, output reg EM_NOE ); reg [15:0] EM_D_int; assign EM_D = EM_D_int; initial begin EM_CLK <= 0; EM_A <= 10'bz; EM_NBE <= 2'b11; EM_NWE <= 1; EM_NOE <= 1; EM_NCS4 <= 1; EM_NCS6 <= 1; EM_D_int <= 16'bz; EM_WAIT0 <= 0; // FIXME this is actually an input end task GPMC_Write; input ctrl; input [10:0] addr; input [15:0] data; begin EM_CLK <= 1; #10; EM_CLK <= 0; EM_NWE <= 0; if(ctrl) EM_NCS6 <= 0; else EM_NCS4 <= 0; EM_A <= addr[10:1]; EM_D_int <= data; #10; EM_CLK <= 1; #10; EM_CLK <= 0; EM_NWE <= 1; EM_NCS4 <= 1; EM_NCS6 <= 1; EM_A <= 10'bz; EM_D_int <= 16'bz; #100; end endtask // GPMC_Write task GPMC_Read; input ctrl; input [10:0] addr; begin #1.3; EM_A <= addr[10:1]; #3; if(ctrl) EM_NCS6 <= 0; else EM_NCS4 <= 0; #14; EM_NOE <= 0; #77.5; EM_NCS4 <= 1; EM_NCS6 <= 1; //#1.5; $display("Data Read from GPMC: %X",EM_D); EM_NOE <= 1; #254; EM_A <= 10'bz; end endtask // GPMC_Read initial begin #1000; GPMC_Write(1,36,16'hF00D); #1000; GPMC_Read(1,36); #1000; GPMC_Write(0,36,16'h1234); GPMC_Write(0,38,16'h5678); GPMC_Write(0,40,16'h9abc); GPMC_Write(0,11'h2F4,16'hF00D); GPMC_Write(0,11'h7FE,16'hDEAD); GPMC_Write(0,11'h7FE,16'hDEAD); GPMC_Write(0,11'h7FE,16'hDEAD); GPMC_Write(0,11'h7FE,16'hDEAD); GPMC_Write(0,11'h7FE,16'hDEAD); GPMC_Write(0,11'h7FE,16'hDEAD); #100000; $finish; end endmodule // gpmc_model uhd-3.5.5/fpga/usrp2/models/idt71v65603s150.v000077500000000000000000000245671224274632000201240ustar00rootroot00000000000000/******************************************************************************* * * File Name : idt71v65603s150.v * Product : IDT71V65603 * Function : 256K x 36 pipeline ZBT Static RAM * Simulation Tool/Version : Verilog-XL 2.5 * Date : 07/19/00 * * Copyright 1999 Integrated Device Technology, Inc. * * Revision Notes: 07/19/00 Rev00 * ******************************************************************************/ /******************************************************************************* * Module Name: idt71v65603s150 * * Notes : This model is believed to be functionally * accurate. Please direct any inquiries to * IDT SRAM Applications at: sramhelp@idt.com * *******************************************************************************/ /*************************************************************** * * Integrated Device Technology, Inc. ("IDT") hereby grants the * user of this Verilog/VCS model a non-exclusive, nontransferable * license to use this Verilog/VCS model under the following terms. * The user is granted this license only to use the Verilog/VCS * model and is not granted rights to sell, copy (except as needed * to run the IBIS model), rent, lease or sub-license the Verilog/VCS * model in whole or in part, or in modified form to anyone. The User * may modify the Verilog/VCS model to suit its specific applications, * but rights to derivative works and such modifications shall belong * to IDT. * * This Verilog/VCS model is provided on an "AS IS" basis and * IDT makes absolutely no warranty with respect to the information * contained herein. IDT DISCLAIMS AND CUSTOMER WAIVES ALL * WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE * ENTIRE RISK AS TO QUALITY AND PERFORMANCE IS WITH THE * USER ACCORDINGLY, IN NO EVENT SHALL IDT BE LIABLE * FOR ANY DIRECT OR INDIRECT DAMAGES, WHETHER IN CONTRACT OR * TORT, INCLUDING ANY LOST PROFITS OR OTHER INCIDENTAL, * CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES ARISING OUT OF * THE USE OR APPLICATION OF THE VERILOG/VCS model. Further, * IDT reserves the right to make changes without notice to any * product herein to improve reliability, function, or design. * IDT does not convey any license under patent rights or * any other intellectual property rights, including those of * third parties. IDT is not obligated to provide maintenance * or support for the licensed Verilog/VCS model. * ***************************************************************/ `timescale 1ns/100ps module idt71v65603s150 (A, adv_ld_, // advance (high) / load (low) bw1_, bw2_, bw3_, bw4_, // byte write enables (low) ce1_, ce2, ce2_, // chip enables cen_, // clock enable (low) clk, // clock IO, IOP, // data bus lbo_, // linear burst order (low) oe_, // output enable (low) r_w_); // read (high) / write (low) initial begin $write("\n********************************************************\n"); $write(" idt71v65603s150, 256K x 36 Pipelined burst ZBT SRAM \n"); $write(" Rev: 00 July 2000 \n"); $write(" copyright 1997,1998,1999,2000 by IDT, Inc. \n"); $write("********************************************************\n\n"); end input [17:0] A; inout [31:0] IO; inout [4:1] IOP; input adv_ld_, bw1_, bw2_, bw3_, bw4_, ce1_, ce2, ce2_, cen_, clk, lbo_, oe_, r_w_; //internal registers for data, address, etc reg [8:0] mem1[0:262143]; //memory array reg [8:0] mem2[0:262143]; //memory array reg [8:0] mem3[0:262143]; //memory array reg [8:0] mem4[0:262143]; //memory array reg [35:0] dout; reg [17:0] addr_a, addr_b; reg wren_a, wren_b; reg cs_a, cs_b; reg bw_a1, bw_b1; reg bw_a2, bw_b2; reg bw_a3, bw_b3; reg bw_a4, bw_b4; reg [1:0] brst_cnt; wire[35:0] data_out; wire doe; wire cs = (~ce1_ & ce2 & ~ce2_); wire baddr0, baddr1; parameter regdelay = 0.2; parameter outdly = 0.2; specify specparam //Clock Parameters tCYC = 6.7, //clock cycle time tCH = 2.0, //clock high time tCL = 2.0, //clock low time //Output Parameters tCD = 3.8, //clk to data valid tCLZ = 1.5, //clk to output Low-Z tCHZ = 3.0, //clk to data Hi-Z tOE = 3.8, //OE to output valid tOLZ = 0.0, //OE to output Hi-Z tOHZ = 3.8, //OE to output Hi-Z //Set up times tSE = 1.5, //clock enable set-up tSA = 1.5, //address set-up tSD = 1.5, //data set-up tSW = 1.5, //Read/Write set-up tSADV = 1.5, //Advance/Load set-up tSC = 1.5, //Chip enable set-up tSB = 1.5, //Byte write enable set-up //Hold times tHE = 0.5, //clock enable hold tHA = 0.5, //address hold tHD = 0.5, //data hold tHW = 0.5, //Read/Write hold tHADV = 0.5, //Advance/Load hold tHC = 0.5, //Chip enable hold tHB = 0.5; //Byte write enable hold (oe_ *> IO) = (tOE,tOE,tOHZ,tOLZ,tOHZ,tOLZ); //(01,10,0z,z1,1z,z0) (clk *> IO) = (tCD,tCD,tCHZ,tCLZ,tCHZ,tCLZ); //(01,10,0z,z1,1z,z0) (oe_ *> IOP) = (tOE,tOE,tOHZ,tOLZ,tOHZ,tOLZ); //(01,10,0z,z1,1z,z0) (clk *> IOP) = (tCD,tCD,tCHZ,tCLZ,tCHZ,tCLZ); //(01,10,0z,z1,1z,z0) //timing checks $period(posedge clk, tCYC ); $width (posedge clk, tCH ); $width (negedge clk, tCL ); $setuphold(posedge clk, A, tSA, tHA); $setuphold(posedge clk, IO, tSD, tHD); $setuphold(posedge clk, IOP, tSD, tHD); $setuphold(posedge clk, adv_ld_, tSADV, tHADV); $setuphold(posedge clk, bw1_, tSB, tHB); $setuphold(posedge clk, bw2_, tSB, tHB); $setuphold(posedge clk, bw3_, tSB, tHB); $setuphold(posedge clk, bw4_, tSB, tHB); $setuphold(posedge clk, ce1_, tSC, tHC); $setuphold(posedge clk, ce2, tSC, tHC); $setuphold(posedge clk, ce2_, tSC, tHC); $setuphold(posedge clk, cen_, tSE, tHE); $setuphold(posedge clk, r_w_, tSW, tHW); endspecify initial begin cs_a = 0; cs_b = 0; end ///////////////////////////////////////////////////////////////////////// //input registers //-------------------- always @(posedge clk) begin if ( ~cen_ & ~adv_ld_ ) cs_a <= #regdelay cs; if ( ~cen_ ) cs_b <= #regdelay cs_a; if ( ~cen_ & ~adv_ld_ ) wren_a <= #regdelay (cs & ~r_w_); if ( ~cen_ ) wren_b <= #regdelay wren_a; if ( ~cen_ ) bw_a1 <= #regdelay ~bw1_; if ( ~cen_ ) bw_a2 <= #regdelay ~bw2_; if ( ~cen_ ) bw_a3 <= #regdelay ~bw3_; if ( ~cen_ ) bw_a4 <= #regdelay ~bw4_; if ( ~cen_ ) bw_b1 <= #regdelay bw_a1; if ( ~cen_ ) bw_b2 <= #regdelay bw_a2; if ( ~cen_ ) bw_b3 <= #regdelay bw_a3; if ( ~cen_ ) bw_b4 <= #regdelay bw_a4; if ( ~cen_ & ~adv_ld_ ) addr_a[17:0] <= #regdelay A[17:0]; if ( ~cen_ ) addr_b[17:0] <= #regdelay {addr_a[17:2], baddr1, baddr0}; end ///////////////////////////////////////////////////////////////////////// //burst counter //-------------------- always @(posedge clk) begin if ( lbo_ & ~cen_ & ~adv_ld_) brst_cnt <= #regdelay 0; else if (~lbo_ & ~cen_ & ~adv_ld_) brst_cnt <= #regdelay A[1:0]; else if ( ~cen_ & adv_ld_) brst_cnt <= #regdelay brst_cnt + 1; end ///////////////////////////////////////////////////////////////////////// //address logic //-------------------- assign baddr1 = lbo_ ? (brst_cnt[1] ^ addr_a[1]) : brst_cnt[1]; assign baddr0 = lbo_ ? (brst_cnt[0] ^ addr_a[0]) : brst_cnt[0]; ///////////////////////////////////////////////////////////////////////// //data output register //-------------------- always @(posedge clk) begin #regdelay; #regdelay; dout[8:0] = mem1[addr_b]; dout[17:9] = mem2[addr_b]; dout[26:18] = mem3[addr_b]; dout[35:27] = mem4[addr_b]; end assign data_out = dout; ///////////////////////////////////////////////////////////////////////// //Output buffers: using a bufif1 has the same effect as... // // assign D = doe ? data_out : 36'hz; // //It was coded this way to support SPECIFY delays in the specparam section. //-------------------- bufif1 #outdly (IO[0],data_out[0],doe); bufif1 #outdly (IO[1],data_out[1],doe); bufif1 #outdly (IO[2],data_out[2],doe); bufif1 #outdly (IO[3],data_out[3],doe); bufif1 #outdly (IO[4],data_out[4],doe); bufif1 #outdly (IO[5],data_out[5],doe); bufif1 #outdly (IO[6],data_out[6],doe); bufif1 #outdly (IO[7],data_out[7],doe); bufif1 #outdly (IOP[1],data_out[8],doe); bufif1 #outdly (IO[8],data_out[9],doe); bufif1 #outdly (IO[9],data_out[10],doe); bufif1 #outdly (IO[10],data_out[11],doe); bufif1 #outdly (IO[11],data_out[12],doe); bufif1 #outdly (IO[12],data_out[13],doe); bufif1 #outdly (IO[13],data_out[14],doe); bufif1 #outdly (IO[14],data_out[15],doe); bufif1 #outdly (IO[15],data_out[16],doe); bufif1 #outdly (IOP[2],data_out[17],doe); bufif1 #outdly (IO[16],data_out[18],doe); bufif1 #outdly (IO[17],data_out[19],doe); bufif1 #outdly (IO[18],data_out[20],doe); bufif1 #outdly (IO[19],data_out[21],doe); bufif1 #outdly (IO[20],data_out[22],doe); bufif1 #outdly (IO[21],data_out[23],doe); bufif1 #outdly (IO[22],data_out[24],doe); bufif1 #outdly (IO[23],data_out[25],doe); bufif1 #outdly (IOP[3],data_out[26],doe); bufif1 #outdly (IO[24],data_out[27],doe); bufif1 #outdly (IO[25],data_out[28],doe); bufif1 #outdly (IO[26],data_out[29],doe); bufif1 #outdly (IO[27],data_out[30],doe); bufif1 #outdly (IO[28],data_out[31],doe); bufif1 #outdly (IO[29],data_out[32],doe); bufif1 #outdly (IO[30],data_out[33],doe); bufif1 #outdly (IO[31],data_out[34],doe); bufif1 #outdly (IOP[4],data_out[35],doe); assign doe = cs_b & ~wren_b & ~oe_ ; ///////////////////////////////////////////////////////////////////////// // write to ram //------------- always @(posedge clk) begin if (wren_b & bw_b1 & ~cen_) mem1[addr_b] = {IOP[1], IO[7:0]}; if (wren_b & bw_b2 & ~cen_) mem2[addr_b] = {IOP[2], IO[15:8]}; if (wren_b & bw_b3 & ~cen_) mem3[addr_b] = {IOP[3], IO[23:16]}; if (wren_b & bw_b4 & ~cen_) mem4[addr_b] = {IOP[4], IO[31:24]}; end endmodule uhd-3.5.5/fpga/usrp2/models/math_real.v000066400000000000000000000355061224274632000177150ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // /* * This is a general recreation of the VHDL ieee.math_real package. */ module math_real ; // Constants for use below and for general reference // TODO: Bring it out to 12 (or more???) places beyond the decimal? localparam MATH_E = 2.7182818284; localparam MATH_1_OVER_E = 0.3678794411; localparam MATH_PI = 3.1415926536; localparam MATH_2_PI = 6.2831853071; localparam MATH_1_OVER_PI = 0.3183098861; localparam MATH_PI_OVER_2 = 1.5707963267; localparam MATH_PI_OVER_3 = 1.0471975511; localparam MATH_PI_OVER_4 = 0.7853981633; localparam MATH_3_PI_OVER_2 = 4.7123889803; localparam MATH_LOG_OF_2 = 0.6931471805; localparam MATH_LOG_OF_10 = 2.3025850929; localparam MATH_LOG2_OF_E = 1.4426950408; localparam MATH_LOG10_OF_E = 0.4342944819; localparam MATH_SQRT_2 = 1.4142135623; localparam MATH_1_OVER_SQRT_2= 0.7071067811; localparam MATH_SQRT_PI = 1.7724538509; localparam MATH_DEG_TO_RAD = 0.0174532925; localparam MATH_RAD_TO_DEG = 57.2957795130; // The number of iterations to do for the Taylor series approximations localparam EXPLOG_ITERATIONS = 19; localparam COS_ITERATIONS = 8; /* Conversion Routines */ // Return the sign of a particular number. function real sign ; input real x ; begin sign = x < 0.0 ? 1.0 : 0.0 ; end endfunction // Return the trunc function of a number function real trunc ; input real x ; begin trunc = x - mod(x,1.0) ; end endfunction // Return the ceiling function of a number. function real ceil ; input real x ; real retval ; begin retval = mod(x,1.0) ; if( retval != 0.0 && x > 0.0 ) retval = x+1.0 ; else retval = x ; ceil = trunc(retval) ; end endfunction // Return the floor function of a number function real floor ; input real x ; real retval ; begin retval = mod(x,1.0) ; if( retval != 0.0 && x < 0.0 ) retval = x - 1.0 ; else retval = x ; floor = trunc(retval) ; end endfunction // Return the round function of a number function real round ; input real x ; real retval ; begin retval = x > 0.0 ? x + 0.5 : x - 0.5 ; round = trunc(retval) ; end endfunction // Return the fractional remainder of (x mod m) function real mod ; input real x ; input real m ; real retval ; begin retval = x ; if( retval > m ) begin while( retval > m ) begin retval = retval - m ; end end else begin while( retval < -m ) begin retval = retval + m ; end end mod = retval ; end endfunction // Return the max between two real numbers function real realmax ; input real x ; input real y ; begin realmax = x > y ? x : y ; end endfunction // Return the min between two real numbers function real realmin ; input real x ; input real y ; begin realmin = x > y ? y : x ; end endfunction /* Random Numbers */ // Generate Gaussian distributed variables function real gaussian ; input real mean ; input real var ; real u1, u2, v1, v2, s ; begin s = 1.0 ; while( s >= 1.0 ) begin // Two random numbers between 0 and 1 u1 = $random/4294967296.0 + 0.5 ; u2 = $random/4294967296.0 + 0.5 ; // Adjust to be between -1,1 v1 = 2*u1-1.0 ; v2 = 2*u2-1.0 ; // Polar mag squared s = (v1*v1 + v2*v2) ; end gaussian = mean + sqrt((-2.0*log(s))/s) * v1 * sqrt(var) ; // gaussian2 = mean + sqrt(-2*log(s)/s)*v2 * sqrt(var) ; end endfunction /* Roots and Log Functions */ // Return the square root of a number function real sqrt ; input real x ; real retval ; begin sqrt = (x == 0.0) ? 0.0 : powr(x,0.5) ; end endfunction // Return the cube root of a number function real cbrt ; input real x ; real retval ; begin cbrt = (x == 0.0) ? 0.0 : powr(x,1.0/3.0) ; end endfunction // Return the absolute value of a real value function real abs ; input real x ; begin abs = (x > 0.0) ? x : -x ; end endfunction // Return a real value raised to an integer power function real pow ; input real b ; input integer x ; integer absx ; real retval ; begin retval = 1.0 ; absx = abs(x) ; repeat(absx) begin retval = b*retval ; end pow = x < 0 ? (1.0/retval) : retval ; end endfunction // Return a real value raised to a real power function real powr ; input real b ; input real x ; begin powr = exp(x*log(b)) ; end endfunction // Return the evaluation of e^x where e is the natural logarithm base // NOTE: This is the Taylor series expansion of e^x function real exp ; input real x ; real retval ; integer i ; real nm1_fact ; real powm1 ; begin nm1_fact = 1.0 ; powm1 = 1.0 ; retval = 1.0 ; for( i = 1 ; i < EXPLOG_ITERATIONS ; i = i + 1 ) begin powm1 = x*powm1 ; nm1_fact = nm1_fact * i ; retval = retval + powm1/nm1_fact ; end exp = retval ; end endfunction // Return the evaluation log(x) function real log ; input real x ; integer i ; real whole ; real xm1oxp1 ; real retval ; real newx ; begin retval = 0.0 ; whole = 0.0 ; newx = x ; while( newx > MATH_E ) begin whole = whole + 1.0 ; newx = newx / MATH_E ; end xm1oxp1 = (newx-1.0)/(newx+1.0) ; for( i = 0 ; i < EXPLOG_ITERATIONS ; i = i + 1 ) begin retval = retval + pow(xm1oxp1,2*i+1)/(2.0*i+1.0) ; end log = whole+2.0*retval ; end endfunction // Return the evaluation ln(x) (same as log(x)) function real ln ; input real x ; begin ln = log(x) ; end endfunction // Return the evaluation log_2(x) function real log2 ; input real x ; begin log2 = log(x)/MATH_LOG_OF_2 ; end endfunction function real log10 ; input real x ; begin log10 = log(x)/MATH_LOG_OF_10 ; end endfunction function real log_base ; input real x ; input real b ; begin log_base = log(x)/log(b) ; end endfunction /* Trigonometric Functions */ // Internal function to reduce a value to be between [-pi:pi] function real reduce ; input real x ; real retval ; begin retval = x ; while( abs(retval) > MATH_PI ) begin retval = retval > MATH_PI ? (retval - MATH_2_PI) : (retval + MATH_2_PI) ; end reduce = retval ; end endfunction // Return the cos of a number in radians function real cos ; input real x ; integer i ; integer sign ; real newx ; real retval ; real xsqnm1 ; real twonm1fact ; begin newx = reduce(x) ; xsqnm1 = 1.0 ; twonm1fact = 1.0 ; retval = 1.0 ; for( i = 1 ; i < COS_ITERATIONS ; i = i + 1 ) begin sign = -2*(i % 2)+1 ; xsqnm1 = xsqnm1*newx*newx ; twonm1fact = twonm1fact * (2.0*i) * (2.0*i-1.0) ; retval = retval + sign*(xsqnm1/twonm1fact) ; end cos = retval ; end endfunction // Return the sin of a number in radians function real sin ; input real x ; begin sin = cos(x - MATH_PI_OVER_2) ; end endfunction // Return the tan of a number in radians function real tan ; input real x ; begin tan = sin(x) / cos(x) ; end endfunction // Return the arcsin in radians of a number function real arcsin ; input real x ; begin arcsin = 2.0*arctan(x/(1.0+sqrt(1.0-x*x))) ; end endfunction // Return the arccos in radians of a number function real arccos ; input real x ; begin arccos = MATH_PI_OVER_2-arcsin(x) ; end endfunction // Return the arctan in radians of a number // TODO: Make sure this REALLY does work as it is supposed to! function real arctan ; input real x ; real retval ; real y ; real newx ; real twoiotwoip1 ; integer i ; integer mult ; begin retval = 1.0 ; twoiotwoip1 = 1.0 ; mult = 1 ; newx = abs(x) ; while( newx > 1.0 ) begin mult = mult*2 ; newx = newx/(1.0+sqrt(1.0+newx*newx)) ; end y = 1.0 ; for( i = 1 ; i < 2*COS_ITERATIONS ; i = i + 1 ) begin y = y*((newx*newx)/(1+newx*newx)) ; twoiotwoip1 = twoiotwoip1 * (2.0*i)/(2.0*i+1.0) ; retval = retval + twoiotwoip1*y ; end retval = retval * (newx/(1+newx*newx)) ; retval = retval * mult ; arctan = (x > 0.0) ? retval : -retval ; end endfunction // Return the arctan in radians of a ratio x/y // TODO: Test to make sure this works as it is supposed to! function real arctan_xy ; input real x ; input real y ; real retval ; begin retval = 0.0 ; if( x < 0.0 ) retval = MATH_PI - arctan(-abs(y)/x) ; else if( x > 0.0 ) retval = arctan(abs(y)/x) ; else if( x == 0.0 ) retval = MATH_PI_OVER_2 ; arctan_xy = (y < 0.0) ? -retval : retval ; end endfunction /* Hyperbolic Functions */ // Return the sinh of a number function real sinh ; input real x ; begin sinh = (exp(x) - exp(-x))/2.0 ; end endfunction // Return the cosh of a number function real cosh ; input real x ; begin cosh = (exp(x) + exp(-x))/2.0 ; end endfunction // Return the tanh of a number function real tanh ; input real x ; real e2x ; begin e2x = exp(2.0*x) ; tanh = (e2x+1.0)/(e2x-1.0) ; end endfunction // Return the arcsinh of a number function real arcsinh ; input real x ; begin arcsinh = log(x+sqrt(x*x+1.0)) ; end endfunction // Return the arccosh of a number function real arccosh ; input real x ; begin arccosh = ln(x+sqrt(x*x-1.0)) ; end endfunction // Return the arctanh of a number function real arctanh ; input real x ; begin arctanh = 0.5*ln((1.0+x)/(1.0-x)) ; end endfunction /* initial begin $display( "cos(MATH_PI_OVER_3): %f", cos(MATH_PI_OVER_3) ) ; $display( "sin(MATH_PI_OVER_3): %f", sin(MATH_PI_OVER_3) ) ; $display( "sign(-10): %f", sign(-10) ) ; $display( "realmax(MATH_PI,MATH_E): %f", realmax(MATH_PI,MATH_E) ) ; $display( "realmin(MATH_PI,MATH_E): %f", realmin(MATH_PI,MATH_E) ) ; $display( "mod(MATH_PI,MATH_E): %f", mod(MATH_PI,MATH_E) ) ; $display( "ceil(-MATH_PI): %f", ceil(-MATH_PI) ) ; $display( "ceil(4.0): %f", ceil(4.0) ) ; $display( "ceil(3.99999999999999): %f", ceil(3.99999999999999) ) ; $display( "pow(MATH_PI,2): %f", pow(MATH_PI,2) ) ; $display( "gaussian(1.0,1.0): %f", gaussian(1.0,1.0) ) ; $display( "round(MATH_PI): %f", round(MATH_PI) ) ; $display( "trunc(-MATH_PI): %f", trunc(-MATH_PI) ) ; $display( "ceil(-MATH_PI): %f", ceil(-MATH_PI) ) ; $display( "floor(MATH_PI): %f", floor(MATH_PI) ) ; $display( "round(e): %f", round(MATH_E)) ; $display( "ceil(-e): %f", ceil(-MATH_E)) ; $display( "exp(MATH_PI): %f", exp(MATH_PI) ) ; $display( "log2(MATH_PI): %f", log2(MATH_PI) ) ; $display( "log_base(pow(2,32),2): %f", log_base(pow(2,32),2) ) ; $display( "ln(0.1): %f", log(0.1) ) ; $display( "cbrt(7): %f", cbrt(7) ) ; $display( "cos(MATH_2_PI): %f", cos(20*MATH_2_PI) ) ; $display( "sin(-MATH_2_PI): %f", sin(-50*MATH_2_PI) ) ; $display( "sinh(MATH_E): %f", sinh(MATH_E) ) ; $display( "cosh(MATH_2_PI): %f", cosh(MATH_2_PI) ) ; $display( "arctan_xy(-4,3): %f", arctan_xy(-4,3) ) ; $display( "arctan(MATH_PI): %f", arctan(MATH_PI) ) ; $display( "arctan(-MATH_E/2): %f", arctan(-MATH_E/2) ) ; $display( "arctan(MATH_PI_OVER_2): %f", arctan(MATH_PI_OVER_2) ) ; $display( "arctan(1/7) = %f", arctan(1.0/7.0) ) ; $display( "arctan(3/79) = %f", arctan(3.0/79.0) ) ; $display( "pi/4 ?= %f", 5*arctan(1.0/7.0)+2*arctan(3.0/79.0) ) ; $display( "arcsin(1.0): %f", arcsin(1.0) ) ; $display( "cos(pi/2): %f", cos(MATH_PI_OVER_2)) ; $display( "arccos(cos(pi/2)): %f", arccos(cos(MATH_PI_OVER_2)) ) ; $display( "cos(0): %f", cos(0) ) ; $display( "cos(MATH_PI_OVER_4): %f", cos(MATH_PI_OVER_4) ) ; $display( "cos(MATH_PI_OVER_2): %f", cos(MATH_PI_OVER_2) ) ; $display( "cos(3*MATH_PI_OVER_4): %f", cos(3*MATH_PI_OVER_4) ) ; $display( "cos(MATH_PI): %f", cos(MATH_PI) ) ; $display( "cos(5*MATH_PI_OVER_4): %f", cos(5*MATH_PI_OVER_4) ) ; $display( "cos(6*MATH_PI_OVER_4): %f", cos(6*MATH_PI_OVER_4) ) ; $display( "cos(7*MATH_PI_OVER_4): %f", cos(7*MATH_PI_OVER_4) ) ; $display( "cos(8*MATH_PI_OVER_4): %f", cos(8*MATH_PI_OVER_4) ) ; end*/ endmodule uhd-3.5.5/fpga/usrp2/models/miim_model.v000066400000000000000000000017621224274632000200710ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Skeleton PHY interface simulator module miim_model(input mdc_i, inout mdio, input phy_resetn_i, input phy_clk_i, output phy_intn_o, output [2:0] speed_o); assign phy_intn_o = 1; // No interrupts assign speed_o = 3'b100; // 1G mode endmodule // miim_model uhd-3.5.5/fpga/usrp2/models/phy_sim.v000066400000000000000000000112051224274632000174170ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// Phy_sim.v //// //// //// //// This file is part of the Ethernet IP core project //// //// http://www.opencores.org/projects.cgi/web/ethernet_tri_mode///// //// //// //// Author(s): //// //// - Jon Gao (gaojon@yahoo.com) //// //// //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // CVS Revision History // // $Log: Phy_sim.v,v $ // Revision 1.3 2006/11/17 17:53:07 maverickist // no message // // Revision 1.2 2006/01/19 14:07:50 maverickist // verification is complete. // // Revision 1.1.1.1 2005/12/13 01:51:44 Administrator // no message // `timescale 1ns/100ps module phy_sim( input Gtx_clk, // Used only in GMII mode output Rx_clk, output Tx_clk, // Used only in MII mode input Tx_er, input Tx_en, input [7:0] Txd, output Rx_er, output Rx_dv, output [7:0] Rxd, output Crs, output Col, input [2:0] Speed, input Done ); ////////////////////////////////////////////////////////////////////// // this file used to simulate Phy. // generate clk and loop the Tx data to Rx data // full duplex mode can be verified on loop mode. ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// // internal signals ////////////////////////////////////////////////////////////////////// reg Clk_25m; // Used for 100 Mbps mode reg Clk_2_5m; // Used for 10 Mbps mode //wire Rx_clk; //wire Tx_clk; // Used only in MII mode initial begin #10; while ( !Done ) begin #20 Clk_25m = 0; #20 Clk_25m = 1; end end initial begin #10; while ( !Done ) begin #200 Clk_2_5m = 0; #200 Clk_2_5m = 1; end end assign Rx_clk = Speed[2] ? Gtx_clk : Speed[1] ? Clk_25m : Speed[0] ? Clk_2_5m : 0; assign Tx_clk = Speed[2] ? Gtx_clk : Speed[1] ? Clk_25m : Speed[0] ? Clk_2_5m : 0; assign Rx_dv = Tx_en; assign Rxd = Txd; assign Rx_er = Tx_er; assign Crs = Tx_en; assign Col = 0; endmodule uhd-3.5.5/fpga/usrp2/models/serdes_model.v000066400000000000000000000030171224274632000204160ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module serdes_model (input ser_tx_clk, input ser_tkmsb, input ser_tklsb, input [15:0] ser_t, output ser_rx_clk, output ser_rkmsb, output ser_rklsb, output [15:0] ser_r, input even, input error); wire [15:0] ser_r_odd; wire ser_rklsb_odd, ser_rkmsb_odd; reg [7:0] hold_dat; reg hold_k; always @(posedge ser_tx_clk) hold_k <= ser_tklsb; always @(posedge ser_tx_clk) hold_dat <= ser_t[15:8]; assign ser_rklsb_odd = hold_k; assign ser_rkmsb_odd = ser_tklsb; assign ser_r_odd = {ser_t[7:0], hold_dat}; // Set outputs assign ser_rx_clk = ser_tx_clk; assign ser_rkmsb = even ? ser_tkmsb : ser_rkmsb_odd; assign ser_rklsb = even ? ser_tklsb : ser_rklsb_odd; assign ser_r = error ^ (even ? ser_t : ser_r_odd); endmodule // serdes_model uhd-3.5.5/fpga/usrp2/models/uart_rx.v000066400000000000000000000031351224274632000174360ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Simple printout of characters from the UART // Only does 8N1, requires the baud clock module uart_rx (input baudclk, input rxd); reg [8:0] sr = 9'b0; reg [3:0] baud_ctr = 4'b0; /* wire byteclk = baud_ctr[3]; reg rxd_d1 = 0; always @(posedge baudclk) rxd_d1 <= rxd; always @(posedge baudclk) if(rxd_d1 != rxd) baud_ctr <= 0; else baud_ctr <= baud_ctr + 1; */ wire byteclk = baudclk; always @(posedge byteclk) sr <= { rxd, sr[8:1] }; reg [3:0] state = 0; always @(posedge byteclk) case(state) 0 : if(~sr[8] & sr[7]) // found start bit state <= 1; 1, 2, 3, 4, 5, 6, 7, 8 : state <= state + 1; 9 : begin state <= 0; $write("%c",sr[7:0]); if(~sr[8]) $display("Error, no stop bit\n"); end default : state <= 0; endcase // case(state) endmodule // uart_rx uhd-3.5.5/fpga/usrp2/models/xlnx_glbl.v000066400000000000000000000030301224274632000177350ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module xlnx_glbl ( GSR, GTS ); //-------------------------------------------------------------------------- // Parameters //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // IO declarations //-------------------------------------------------------------------------- output GSR; output GTS; //-------------------------------------------------------------------------- // Local declarations //-------------------------------------------------------------------------- //-------------------------------------------------------------------------- // Internal declarations //-------------------------------------------------------------------------- assign GSR = 0; assign GTS = 0; endmodule uhd-3.5.5/fpga/usrp2/opencores/000077500000000000000000000000001224274632000162735ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/8b10b/000077500000000000000000000000001224274632000171075ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/8b10b/.gitignore000066400000000000000000000000211224274632000210700ustar00rootroot00000000000000/dump.vcd /a.out uhd-3.5.5/fpga/usrp2/opencores/8b10b/8b10b_a.mem000066400000000000000000000201641224274632000207260ustar00rootroot00000000000000000000000100111010001100010110 000000001011101010010001010110 000000010101101010001001010110 000000011110001101111000101001 000000100110101010000101010110 000000101101001101110100101001 000000110011001101101100101001 000000111111000101100011101001 000001000111001010000011010110 000001001100101101110010101001 000001010010101101101010101001 000001011110100101111010001001 000001100001101101100110101001 000001101101100101110110001001 000001110011100101101110001001 000001111010111010010100010110 000010000011011010010010010110 000010001100011101110001101001 000010010010011101101001101001 000010011110010101111001001001 000010100001011101100101101001 000010101101010101110101001001 000010110011010101101101001001 000010111111010010000010110110 000011000110011010000110010110 000011001100110101110011001001 000011010010110101101011001001 000011011110110010000100110110 000011100001110101100111001001 000011101101110010001000110110 000011110011110010010000110110 000011111101011010001010010110 000100000100111100101100010011 000100001011101100110001010011 000100010101101100101001010011 000100011110001100111000110010 000100100110101100100101010011 000100101101001100110100110010 000100110011001100101100110010 000100111111000100100011110010 000101000111001100100011010011 000101001100101100110010110010 000101010010101100101010110010 000101011110100100111010010010 000101100001101100100110110010 000101101101100100110110010010 000101110011100100101110010010 000101111010111100110100010011 000110000011011100110010010011 000110001100011100110001110010 000110010010011100101001110010 000110011110010100111001010010 000110100001011100100101110010 000110101101010100110101010010 000110110011010100101101010010 000110111111010100100010110011 000111000110011100100110010011 000111001100110100110011010010 000111010010110100101011010010 000111011110110100100100110011 000111100001110100100111010010 000111101101110100101000110011 000111110011110100110000110011 000111111101011100101010010011 001000000100111010101100001011 001000001011101010110001001011 001000010101101010101001001011 001000011110001010111000101010 001000100110101010100101001011 001000101101001010110100101010 001000110011001010101100101010 001000111111000010100011101010 001001000111001010100011001011 001001001100101010110010101010 001001010010101010101010101010 001001011110100010111010001010 001001100001101010100110101010 001001101101100010110110001010 001001110011100010101110001010 001001111010111010110100001011 001010000011011010110010001011 001010001100011010110001101010 001010010010011010101001101010 001010011110010010111001001010 001010100001011010100101101010 001010101101010010110101001010 001010110011010010101101001010 001010111111010010100010101011 001011000110011010100110001011 001011001100110010110011001010 001011010010110010101011001010 001011011110110010100100101011 001011100001110010100111001010 001011101101110010101000101011 001011110011110010110000101011 001011111101011010101010001011 001100000100111001101100011001 001100001011101001110001011001 001100010101101001101001011001 001100011110001110011000100110 001100100110101001100101011001 001100101101001110010100100110 001100110011001110001100100110 001100111111000110000011100110 001101000111001001100011011001 001101001100101110010010100110 001101010010101110001010100110 001101011110100110011010000110 001101100001101110000110100110 001101101101100110010110000110 001101110011100110001110000110 001101111010111001110100011001 001110000011011001110010011001 001110001100011110010001100110 001110010010011110001001100110 001110011110010110011001000110 001110100001011110000101100110 001110101101010110010101000110 001110110011010110001101000110 001110111111010001100010111001 001111000110011001100110011001 001111001100110110010011000110 001111010010110110001011000110 001111011110110001100100111001 001111100001110110000111000110 001111101101110001101000111001 001111110011110001110000111001 001111111101011001101010011001 010000000100111001001100011010 010000001011101001010001011010 010000010101101001001001011010 010000011110001110111000100101 010000100110101001000101011010 010000101101001110110100100101 010000110011001110101100100101 010000111111000110100011100101 010001000111001001000011011010 010001001100101110110010100101 010001010010101110101010100101 010001011110100110111010000101 010001100001101110100110100101 010001101101100110110110000101 010001110011100110101110000101 010001111010111001010100011010 010010000011011001010010011010 010010001100011110110001100101 010010010010011110101001100101 010010011110010110111001000101 010010100001011110100101100101 010010101101010110110101000101 010010110011010110101101000101 010010111111010001000010111010 010011000110011001000110011010 010011001100110110110011000101 010011010010110110101011000101 010011011110110001000100111010 010011100001110110100111000101 010011101101110001001000111010 010011110011110001010000111010 010011111101011001001010011010 010100000100111101001100010101 010100001011101101010001010101 010100010101101101001001010101 010100011110001101011000110100 010100100110101101000101010101 010100101101001101010100110100 010100110011001101001100110100 010100111111000101000011110100 010101000111001101000011010101 010101001100101101010010110100 010101010010101101001010110100 010101011110100101011010010100 010101100001101101000110110100 010101101101100101010110010100 010101110011100101001110010100 010101111010111101010100010101 010110000011011101010010010101 010110001100011101010001110100 010110010010011101001001110100 010110011110010101011001010100 010110100001011101000101110100 010110101101010101010101010100 010110110011010101001101010100 010110111111010101000010110101 010111000110011101000110010101 010111001100110101010011010100 010111010010110101001011010100 010111011110110101000100110101 010111100001110101000111010100 010111101101110101001000110101 010111110011110101010000110101 010111111101011101001010010101 011000000100111011001100001101 011000001011101011010001001101 011000010101101011001001001101 011000011110001011011000101100 011000100110101011000101001101 011000101101001011010100101100 011000110011001011001100101100 011000111111000011000011101100 011001000111001011000011001101 011001001100101011010010101100 011001010010101011001010101100 011001011110100011011010001100 011001100001101011000110101100 011001101101100011010110001100 011001110011100011001110001100 011001111010111011010100001101 011010000011011011010010001101 011010001100011011010001101100 011010010010011011001001101100 011010011110010011011001001100 011010100001011011000101101100 011010101101010011010101001100 011010110011010011001101001100 011010111111010011000010101101 011011000110011011000110001101 011011001100110011010011001100 011011010010110011001011001100 011011011110110011000100101101 011011100001110011000111001100 011011101101110011001000101101 011011110011110011010000101101 011011111101011011001010001101 011100000100111000101100011100 011100001011101000110001011100 011100010101101000101001011100 011100011110001111011000100011 011100100110101000100101011100 011100101101001111010100100011 011100110011001111001100100011 011100111111000111000011100011 011101000111001000100011011100 011101001100101111010010100011 011101010010101111001010100011 011101011110100111011010010001 011101100001101111000110100011 011101101101100111010110010001 011101110011100111001110010001 011101111010111000110100011100 011110000011011000110010011100 011110001100011011110001100011 011110010010011011101001100011 011110011110010111011001000011 011110100001011011100101100011 011110101101010111010101000011 011110110011010111001101000011 011110111111010000100010111100 011111000110011000100110011100 011111001100110111010011000011 011111010010110111001011000011 011111011110110000100100111100 011111100001110111000111000011 011111101101110000101000111100 011111110011110000110000111100 011111111101011000101010011100 100011100001111010011000010110 100111100001111100111000001101 101011100001111010111000010101 101111100001111001111000011001 110011100001111001011000011010 110111100001111101011000001011 111011100001111011011000010011 111111100001111100011000001110 111110111111010100000010101110 111111011110110100000100101110 111111101101110100001000101110 111111110011110100010000101110 uhd-3.5.5/fpga/usrp2/opencores/8b10b/README000066400000000000000000000001531224274632000177660ustar00rootroot00000000000000These files are not actually from OpenCores. They are from Chuck Benz. See http://asics.chuckbenz.com uhd-3.5.5/fpga/usrp2/opencores/8b10b/decode_8b10b.v000066400000000000000000000132341224274632000214200ustar00rootroot00000000000000// Chuck Benz, Hollis, NH Copyright (c)2002 // // The information and description contained herein is the // property of Chuck Benz. // // Permission is granted for any reuse of this information // and description as long as this copyright notice is // preserved. Modifications may be made as long as this // notice is preserved. // per Widmer and Franaszek module decode_8b10b (datain, dispin, dataout, dispout, code_err, disp_err) ; input [9:0] datain ; input dispin ; output [8:0] dataout ; output dispout ; output code_err ; output disp_err ; wire ai = datain[0] ; wire bi = datain[1] ; wire ci = datain[2] ; wire di = datain[3] ; wire ei = datain[4] ; wire ii = datain[5] ; wire fi = datain[6] ; wire gi = datain[7] ; wire hi = datain[8] ; wire ji = datain[9] ; wire aeqb = (ai & bi) | (!ai & !bi) ; wire ceqd = (ci & di) | (!ci & !di) ; wire p22 = (ai & bi & !ci & !di) | (ci & di & !ai & !bi) | ( !aeqb & !ceqd) ; wire p13 = ( !aeqb & !ci & !di) | ( !ceqd & !ai & !bi) ; wire p31 = ( !aeqb & ci & di) | ( !ceqd & ai & bi) ; wire p40 = ai & bi & ci & di ; wire p04 = !ai & !bi & !ci & !di ; wire disp6a = p31 | (p22 & dispin) ; // pos disp if p22 and was pos, or p31. wire disp6a2 = p31 & dispin ; // disp is ++ after 4 bits wire disp6a0 = p13 & ! dispin ; // -- disp after 4 bits wire disp6b = (((ei & ii & ! disp6a0) | (disp6a & (ei | ii)) | disp6a2 | (ei & ii & di)) & (ei | ii | di)) ; // The 5B/6B decoding special cases where ABCDE != abcde wire p22bceeqi = p22 & bi & ci & (ei == ii) ; wire p22bncneeqi = p22 & !bi & !ci & (ei == ii) ; wire p13in = p13 & !ii ; wire p31i = p31 & ii ; wire p13dei = p13 & di & ei & ii ; wire p22aceeqi = p22 & ai & ci & (ei == ii) ; wire p22ancneeqi = p22 & !ai & !ci & (ei == ii) ; wire p13en = p13 & !ei ; wire anbnenin = !ai & !bi & !ei & !ii ; wire abei = ai & bi & ei & ii ; wire cdei = ci & di & ei & ii ; wire cndnenin = !ci & !di & !ei & !ii ; // non-zero disparity cases: wire p22enin = p22 & !ei & !ii ; wire p22ei = p22 & ei & ii ; //wire p13in = p12 & !ii ; //wire p31i = p31 & ii ; wire p31dnenin = p31 & !di & !ei & !ii ; //wire p13dei = p13 & di & ei & ii ; wire p31e = p31 & ei ; wire compa = p22bncneeqi | p31i | p13dei | p22ancneeqi | p13en | abei | cndnenin ; wire compb = p22bceeqi | p31i | p13dei | p22aceeqi | p13en | abei | cndnenin ; wire compc = p22bceeqi | p31i | p13dei | p22ancneeqi | p13en | anbnenin | cndnenin ; wire compd = p22bncneeqi | p31i | p13dei | p22aceeqi | p13en | abei | cndnenin ; wire compe = p22bncneeqi | p13in | p13dei | p22ancneeqi | p13en | anbnenin | cndnenin ; wire ao = ai ^ compa ; wire bo = bi ^ compb ; wire co = ci ^ compc ; wire do = di ^ compd ; wire eo = ei ^ compe ; wire feqg = (fi & gi) | (!fi & !gi) ; wire heqj = (hi & ji) | (!hi & !ji) ; wire fghj22 = (fi & gi & !hi & !ji) | (!fi & !gi & hi & ji) | ( !feqg & !heqj) ; wire fghjp13 = ( !feqg & !hi & !ji) | ( !heqj & !fi & !gi) ; wire fghjp31 = ( (!feqg) & hi & ji) | ( !heqj & fi & gi) ; wire dispout = (fghjp31 | (disp6b & fghj22) | (hi & ji)) & (hi | ji) ; wire ko = ( (ci & di & ei & ii) | ( !ci & !di & !ei & !ii) | (p13 & !ei & ii & gi & hi & ji) | (p31 & ei & !ii & !gi & !hi & !ji)) ; wire alt7 = (fi & !gi & !hi & // 1000 cases, where disp6b is 1 ((dispin & ci & di & !ei & !ii) | ko | (dispin & !ci & di & !ei & !ii))) | (!fi & gi & hi & // 0111 cases, where disp6b is 0 (( !dispin & !ci & !di & ei & ii) | ko | ( !dispin & ci & !di & ei & ii))) ; wire k28 = (ci & di & ei & ii) | ! (ci | di | ei | ii) ; // k28 with positive disp into fghi - .1, .2, .5, and .6 special cases wire k28p = ! (ci | di | ei | ii) ; wire fo = (ji & !fi & (hi | !gi | k28p)) | (fi & !ji & (!hi | gi | !k28p)) | (k28p & gi & hi) | (!k28p & !gi & !hi) ; wire go = (ji & !fi & (hi | !gi | !k28p)) | (fi & !ji & (!hi | gi |k28p)) | (!k28p & gi & hi) | (k28p & !gi & !hi) ; wire ho = ((ji ^ hi) & ! ((!fi & gi & !hi & ji & !k28p) | (!fi & gi & hi & !ji & k28p) | (fi & !gi & !hi & ji & !k28p) | (fi & !gi & hi & !ji & k28p))) | (!fi & gi & hi & ji) | (fi & !gi & !hi & !ji) ; wire disp6p = (p31 & (ei | ii)) | (p22 & ei & ii) ; wire disp6n = (p13 & ! (ei & ii)) | (p22 & !ei & !ii) ; wire disp4p = fghjp31 ; wire disp4n = fghjp13 ; assign code_err = p40 | p04 | (fi & gi & hi & ji) | (!fi & !gi & !hi & !ji) | (p13 & !ei & !ii) | (p31 & ei & ii) | (ei & ii & fi & gi & hi) | (!ei & !ii & !fi & !gi & !hi) | (ei & !ii & gi & hi & ji) | (!ei & ii & !gi & !hi & !ji) | (!p31 & ei & !ii & !gi & !hi & !ji) | (!p13 & !ei & ii & gi & hi & ji) | (((ei & ii & !gi & !hi & !ji) | (!ei & !ii & gi & hi & ji)) & ! ((ci & di & ei) | (!ci & !di & !ei))) | (disp6p & disp4p) | (disp6n & disp4n) | (ai & bi & ci & !ei & !ii & ((!fi & !gi) | fghjp13)) | (!ai & !bi & !ci & ei & ii & ((fi & gi) | fghjp31)) | (fi & gi & !hi & !ji & disp6p) | (!fi & !gi & hi & ji & disp6n) | (ci & di & ei & ii & !fi & !gi & !hi) | (!ci & !di & !ei & !ii & fi & gi & hi) ; assign dataout = {ko, ho, go, fo, eo, do, co, bo, ao} ; // my disp err fires for any legal codes that violate disparity, may fire for illegal codes assign disp_err = ((dispin & disp6p) | (disp6n & !dispin) | (dispin & !disp6n & fi & gi) | (dispin & ai & bi & ci) | (dispin & !disp6n & disp4p) | (!dispin & !disp6p & !fi & !gi) | (!dispin & !ai & !bi & !ci) | (!dispin & !disp6p & disp4n) | (disp6p & disp4p) | (disp6n & disp4n)) ; endmodule uhd-3.5.5/fpga/usrp2/opencores/8b10b/encode_8b10b.v000066400000000000000000000100171224274632000214260ustar00rootroot00000000000000// Chuck Benz, Hollis, NH Copyright (c)2002 // // The information and description contained herein is the // property of Chuck Benz. // // Permission is granted for any reuse of this information // and description as long as this copyright notice is // preserved. Modifications may be made as long as this // notice is preserved. // per Widmer and Franaszek module encode_8b10b (datain, dispin, dataout, dispout) ; input [8:0] datain ; input dispin ; // 0 = neg disp; 1 = pos disp output [9:0] dataout ; output dispout ; wire ai = datain[0] ; wire bi = datain[1] ; wire ci = datain[2] ; wire di = datain[3] ; wire ei = datain[4] ; wire fi = datain[5] ; wire gi = datain[6] ; wire hi = datain[7] ; wire ki = datain[8] ; wire aeqb = (ai & bi) | (!ai & !bi) ; wire ceqd = (ci & di) | (!ci & !di) ; wire l22 = (ai & bi & !ci & !di) | (ci & di & !ai & !bi) | ( !aeqb & !ceqd) ; wire l40 = ai & bi & ci & di ; wire l04 = !ai & !bi & !ci & !di ; wire l13 = ( !aeqb & !ci & !di) | ( !ceqd & !ai & !bi) ; wire l31 = ( !aeqb & ci & di) | ( !ceqd & ai & bi) ; // The 5B/6B encoding wire ao = ai ; wire bo = (bi & !l40) | l04 ; wire co = l04 | ci | (ei & di & !ci & !bi & !ai) ; wire do = di & ! (ai & bi & ci) ; wire eo = (ei | l13) & ! (ei & di & !ci & !bi & !ai) ; wire io = (l22 & !ei) | (ei & !di & !ci & !(ai&bi)) | // D16, D17, D18 (ei & l40) | (ki & ei & di & ci & !bi & !ai) | // K.28 (ei & !di & ci & !bi & !ai) ; // pds16 indicates cases where d-1 is assumed + to get our encoded value wire pd1s6 = (ei & di & !ci & !bi & !ai) | (!ei & !l22 & !l31) ; // nds16 indicates cases where d-1 is assumed - to get our encoded value wire nd1s6 = ki | (ei & !l22 & !l13) | (!ei & !di & ci & bi & ai) ; // ndos6 is pds16 cases where d-1 is + yields - disp out - all of them wire ndos6 = pd1s6 ; // pdos6 is nds16 cases where d-1 is - yields + disp out - all but one wire pdos6 = ki | (ei & !l22 & !l13) ; // some Dx.7 and all Kx.7 cases result in run length of 5 case unless // an alternate coding is used (referred to as Dx.A7, normal is Dx.P7) // specifically, D11, D13, D14, D17, D18, D19. wire alt7 = fi & gi & hi & (ki | (dispin ? (!ei & di & l31) : (ei & !di & l13))) ; wire fo = fi & ! alt7 ; wire go = gi | (!fi & !gi & !hi) ; wire ho = hi ; wire jo = (!hi & (gi ^ fi)) | alt7 ; // nd1s4 is cases where d-1 is assumed - to get our encoded value wire nd1s4 = fi & gi ; // pd1s4 is cases where d-1 is assumed + to get our encoded value wire pd1s4 = (!fi & !gi) | (ki & ((fi & !gi) | (!fi & gi))) ; // ndos4 is pd1s4 cases where d-1 is + yields - disp out - just some wire ndos4 = (!fi & !gi) ; // pdos4 is nd1s4 cases where d-1 is - yields + disp out wire pdos4 = fi & gi & hi ; // only legal K codes are K28.0->.7, K23/27/29/30.7 // K28.0->7 is ei=di=ci=1,bi=ai=0 // K23 is 10111 // K27 is 11011 // K29 is 11101 // K30 is 11110 - so K23/27/29/30 are ei & l31 wire illegalk = ki & (ai | bi | !ci | !di | !ei) & // not K28.0->7 (!fi | !gi | !hi | !ei | !l31) ; // not K23/27/29/30.7 // now determine whether to do the complementing // complement if prev disp is - and pd1s6 is set, or + and nd1s6 is set wire compls6 = (pd1s6 & !dispin) | (nd1s6 & dispin) ; // disparity out of 5b6b is disp in with pdso6 and ndso6 // pds16 indicates cases where d-1 is assumed + to get our encoded value // ndos6 is cases where d-1 is + yields - disp out // nds16 indicates cases where d-1 is assumed - to get our encoded value // pdos6 is cases where d-1 is - yields + disp out // disp toggles in all ndis16 cases, and all but that 1 nds16 case wire disp6 = dispin ^ (ndos6 | pdos6) ; wire compls4 = (pd1s4 & !disp6) | (nd1s4 & disp6) ; assign dispout = disp6 ^ (ndos4 | pdos4) ; assign dataout = {(jo ^ compls4), (ho ^ compls4), (go ^ compls4), (fo ^ compls4), (io ^ compls6), (eo ^ compls6), (do ^ compls6), (co ^ compls6), (bo ^ compls6), (ao ^ compls6)} ; endmodule uhd-3.5.5/fpga/usrp2/opencores/8b10b/validate_8b10b.v000066400000000000000000000172261224274632000217730ustar00rootroot00000000000000// Chuck Benz, Hollis, NH Copyright (c)2002 // // The information and description contained herein is the // property of Chuck Benz. // // Permission is granted for any reuse of this information // and description as long as this copyright notice is // preserved. Modifications may be made as long as this // notice is preserved. // 11-OCT-2002: updated with clearer messages, and checking decodeout `timescale 1ns / 1ns module test_8b10b ; reg [29:0] code8b10b [0:267] ; reg [8:0] testin ; reg dispin ; reg [10:0] i ; wire [9:0] testout ; wire dispout, decodedisp, decodeerr, disperr ; wire [8:0] decodeout ; // My data file is 30 columns. Column 1 becomes [29], 2 becomes [28], etc.. // code[0] is last Column (30) // First column, [29] is K indication // columns 2:9, [28:21], are data byte, aka 'm' and 'n' of Dm.n // columns 10:19, [20:11] are 10b symbol if starting disparity was negative, 0 // columns 20:29, [10:1] are 10b symbol if starting disparity was positive, 1 // column 30, [0], is a 1 if symbol results in a disparity flip // 0 for a balanced symbol (5 '1's, 5 '0's). wire [29:0] code = code8b10b[i] ; wire [9:0] expect_0_disp = {code[11], code[12], code[13], code[14], code[15], code[16], code[17], code[18], code[19], code[20]} ; wire [9:0] expect_1_disp = {code[1], code[2], code[3], code[4], code[5], code[6], code[7], code[8], code[9], code[10]} ; reg [1023:0] legal ; // mark every used 10b symbol as legal, leave rest marked as not reg [2047:0] okdisp ; // now mark every used combination of symbol and starting disparity reg [8:0] mapcode [1023:0] ; reg [10:0] codedisp0, codedisp1 ; reg [9:0] decodein ; reg decdispin ; integer errors ; encode_8b10b DUTE (testin, dispin, testout, dispout) ; decode_8b10b DUTD (decodein, decdispin, decodeout, decodedisp, decodeerr, disperr) ; always @ (code) testin = code[29:21] ; initial begin errors = 0 ; $readmemb ("8b10b_a.mem", code8b10b) ; //$vcdpluson ; $dumpvars (0); $display ("\n\nFirst, test by trying all 268 (256 Dx.y and 12 Kx.y)") ; $display ("valid inputs, with both + and - starting disparity."); $display ("We check that the encoder output and ending disparity is correct."); $display ("We also check that the decoder matches."); for (i = 0 ; i < 268 ; i = i + 1) begin // testin = code[29:21] ; dispin = 0 ; #1 decodein = testout ; decdispin = dispin ; #1 // $display ("%b %b %b %b *%b*", dispin, testin, testout, {dispout, DUTD.disp6a, DUTD.disp6a2, DUTD.disp6a0, DUTD.disp6a2}, decodeout,, decodedisp,, DUTD.k28,, DUTD.disp6b) ; if (testout != expect_0_disp) $display ("bad code0 %b %b %b %b %b", dispin, testin, dispout, testout, expect_0_disp) ; if (dispout != (dispin ^ code[0])) $display ("bad disp0 %b %b %b %b %b", dispin, testin, dispout, testout, (dispin ^ code[0])) ; if (0 != (9'b1_1111_1111 & (testin ^ decodeout))) $display ("diff in abcdefghk decode, %b %b %b %b %b", dispin, testin, dispout, testout, decodeout) ; if (decodedisp != dispout) $display ("diff in decoder disp out, %b %b %b %b %b", dispin, testin, dispout, testout, decodeout) ; if (decodeerr) $display ("decode error asserted improperly, %b %b %b %b %b", dispin, testin, dispout, testout, decodeout) ; if ((testout != expect_0_disp) | decodeerr | (dispout != (dispin ^ code[0])) | (decodedisp != dispout)) errors = errors + 1 ; dispin = 1 ; #1 decodein = testout ; decdispin = dispin ; #1 // $display ("%b %b %b %b *%b*", dispin, testin, testout, {dispout, DUTD.disp6a, DUTD.disp6a2, DUTD.disp6a0, DUTD.disp6a2, DUTD.fghjp31, DUTD.feqg, DUTD.heqj, DUTD.fghj22, DUTD.fi, DUTD.gi, DUTD.hi, DUTD.ji, DUTD.dispout}, decodeout,, decodedisp,, DUTD.k28,, DUTD.disp6b) ; if (testout != expect_1_disp) $display ("bad code1 %b %b %b %b %b", dispin, testin, dispout, testout, expect_1_disp) ; if (dispout != (dispin ^ code[0])) $display ("bad disp1 %b %b %b %b %b", dispin, testin, dispout, testout, (dispin ^ code[0])) ; if (0 != (9'b1_1111_1111 & (testin ^ decodeout))) $display ("diff in abcdefghk decode, %b %b %b %b %b", dispin, testin, dispout, testout, decodeout) ; if (decodedisp != dispout) $display ("diff in decoder disp out, %b %b %b %b %b", dispin, testin, dispout, testout, decodeout) ; if (decodeerr) $display ("decode error asserted improperly, %b %b %b %b %b", dispin, testin, dispout, testout, decodeout) ; if ((testout != expect_1_disp) | decodeerr | (dispout != (dispin ^ code[0])) | (decodedisp != dispout)) errors = errors + 1 ; end $display ("%d errors in that testing.\n", errors) ; // Now, having verified all legal codes, lets run some illegal codes // at the decoder... how to figure illegal codes ? 2048 possible cases, // lets mark the OK ones... legal = 0 ; okdisp = 0 ; for (i = 0 ; i < 268 ; i = i + 1) begin #1 // $display ("i=%d: %b %b %d %d %x %x", i, expect_0_disp, expect_1_disp, expect_0_disp, expect_1_disp, expect_0_disp, expect_1_disp) ; legal[expect_0_disp] = 1 ; legal[expect_1_disp] = 1 ; codedisp0 = expect_0_disp ; codedisp1 = {1'b1, expect_1_disp} ; okdisp[codedisp0] = 1 ; okdisp[codedisp1] = 1 ; mapcode[expect_0_disp] = code[29:21] ; mapcode[expect_1_disp] = code[29:21] ; end $display ("Now lets test all (legal and illegal) codes into the decoder."); $display ("checking all possible decode inputs") ; for (i = 0 ; i < 1024 ; i = i + 1) begin decodein = i ; decdispin = 0 ; codedisp1 = 1024 | i ; #1 if (((legal[i] == 0) & (decodeerr != 1)) | (legal[i] & (mapcode[i] != decodeout)) | (legal[i] & (disperr != !okdisp[i]))) $display ("10b:%b start disp:%b 8b:%b end disp:%b codevio:%b dispvio:%b known code:%b used disp:", decodein, decdispin, decodeout, decodedisp, decodeerr, disperr, legal[i], okdisp[i]) ; if ((legal[i] == 0) & (decodeerr != 1)) $display ("ERR: decoderr should be 1") ; if (legal[i] & (mapcode[i] != decodeout)) $display ("ERR: decode output incorrect") ; if (legal[i] & (disperr != 1) & !okdisp[i]) $display ("ERR: disp err should be asserted") ; else if (legal[i] & (disperr != 0) & okdisp[i]) $display ("ERR: disp err should not be asserted") ; if (((legal[i] == 0) & (decodeerr != 1)) | (legal[i] & !disperr & !okdisp[i]) | (legal[i] & (mapcode[i] != decodeout)) | (legal[i] & disperr & okdisp[i])) errors = errors + 1 ; decdispin = 1 ; #1 if (((legal[i] == 0) & (decodeerr != 1)) | (legal[i] & (mapcode[i] != decodeout)) | (legal[i] & (disperr != !okdisp[i|1024]))) $display ("10b:%b start disp:%b 8b:%b end disp:%b codevio:%b dispvio:%b known code:%b used disp:", decodein, decdispin, decodeout, decodedisp, decodeerr, disperr, legal[i], okdisp[i|1024]) ; if ((legal[i] == 0) & (decodeerr != 1)) $display ("ERR: decoderr should be 1") ; if (legal[i] & (mapcode[i] != decodeout)) $display ("ERR: decode output incorrect") ; if (legal[i] & (disperr != 1) & !okdisp[i|1024]) $display ("ERR: disp err should be asserted") ; else if (legal[i] & (disperr != 0) & okdisp[i|1024]) $display ("ERR: disp err should not be asserted") ; if (((legal[i] == 0) & (decodeerr != 1)) | (legal[i] & !disperr & !okdisp[i|1024]) | (legal[i] & (mapcode[i] != decodeout)) | (legal[i] & disperr & okdisp[i|1024])) errors = errors + 1 ; end // for (i = 0 ; i < 1024 ; i = i + 1) $display ("\nDone testing decoder.\n") ; $display ("Total error count: %d", errors); if (errors == 0) $display ("Congratulations!\n"); $finish ; end // initial begin endmodule uhd-3.5.5/fpga/usrp2/opencores/Makefile.srcs000066400000000000000000000020271224274632000207050ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # Open Cores Sources ################################################## OPENCORES_SRCS = $(abspath $(addprefix $(BASE_DIR)/../opencores/, \ 8b10b/decode_8b10b.v \ 8b10b/encode_8b10b.v \ aemb/rtl/verilog/aeMB_bpcu.v \ aemb/rtl/verilog/aeMB_core_BE.v \ aemb/rtl/verilog/aeMB_ctrl.v \ aemb/rtl/verilog/aeMB_edk32.v \ aemb/rtl/verilog/aeMB_ibuf.v \ aemb/rtl/verilog/aeMB_regf.v \ aemb/rtl/verilog/aeMB_xecu.v \ i2c/rtl/verilog/i2c_master_bit_ctrl.v \ i2c/rtl/verilog/i2c_master_byte_ctrl.v \ i2c/rtl/verilog/i2c_master_defines.v \ i2c/rtl/verilog/i2c_master_top.v \ i2c/rtl/verilog/timescale.v \ spi/rtl/verilog/spi_clgen.v \ spi/rtl/verilog/spi_defines.v \ spi/rtl/verilog/spi_shift.v \ spi/rtl/verilog/spi_top.v \ spi/rtl/verilog/spi_top16.v \ zpu/zpu_top_pkg.vhd \ zpu/zpu_wb_top.vhd \ zpu/wishbone/wishbone_pkg.vhd \ zpu/wishbone/zpu_system.vhd \ zpu/wishbone/zpu_wb_bridge.vhd \ zpu/core/zpu_config.vhd \ zpu/core/zpu_core.vhd \ zpu/core/zpupkg.vhd \ )) uhd-3.5.5/fpga/usrp2/opencores/README000066400000000000000000000010211224274632000171450ustar00rootroot00000000000000All the subdirectories of this directory contain code from the OpenCores project, checked out directly from the OpenCores CVS server. You can update any directory to the latest OpenCores code by doing "cvs up" in that. This is not recommended unless you know what you are doing. Each directory contains its own copyright and licensing information. We believe that we have the right to distribute all of these files in the form in which we provide them. If this is not the case, please notify Matt Ettus, matt@ettus.com. uhd-3.5.5/fpga/usrp2/opencores/aemb/000077500000000000000000000000001224274632000171775ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/doc/000077500000000000000000000000001224274632000177445ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/doc/aeMB_datasheet.pdf000066400000000000000000003513071224274632000232760ustar00rootroot00000000000000%PDF-1.4 %ÐÔÅØ 3 0 obj << /Length 995 /Filter /FlateDecode >> stream xÚ•U]oÛ: }ϯð£ ,Šeù+»/s³tËЦ½‰‹¡ØöàÄJbÀ±3[^ÐIQNÓÁØÅ ¦HŠ"Ï!¥Ÿ#n¹ðãVäY‘ï±xÊ­íqôí‡kå ÿb¹l: ­³ö:Z~à2ÁqOi­GÿŽnÒÑä–G÷™ðCÏJw:3v¥¹õÍNæ÷7ÎXD-¼ñ¦P$ßÛ¦>55¬¸½•m[7d˜Õ$éc¦²ö ¥r~¤_Fótôó:Ù0ŠY{Ÿllqps¡NHÖç1$Ñü˜y§Œ×‡Ìñbû\ABØ© ;3‹µÄ<…o/÷EvÂ̬€‰PXc.XàO)BÛG`*«>d²U’UTd\g±0Œ,@yBÐîe›áŸ<:^doœ1ü÷'sþŽrñ\7Ä&ˆú6bÿ6o3ƒ@~E½áνðÉn•ð…J°i*!÷-:³ú„µ½4Åþ€‚ õÝ ÜüñKuþX—HÀ_“â#)¾!ÅïI†-b4MC„4@~† g ",% ¬ê%¥6Éz€gÊNEÛGä~)éÄ^wÊER½#K2‡ˆDŠg` Å|{×HIš¶Þ)]$f5ò½3ö¡ÌÔÕyouÑàÜȼhUSl:e¶kN„%Ÿh@w$Zòb÷rí$ì®Ê5jà¯&€’ÍÑ$¥ËAUoû´|âòøÖqÂØþ$+Ùd%-»MYlI¾+¶²j%-²–¾§€ñœ4Ý$Ó¹ ÜâôB°Z¿"#BW>5T”©;±Â‰`b c’£qjÚ¢®H!†Ê!û²N“º™¸ºym®Ì´­aÇXê“‚^»Ø2Ek™©¾S¯ÒùS›DSjøÛˆž_J„Œ–¾+z½Î=Í÷\”%I›kÇ®•»®Ä*§.@Ú¯‹ôóÃSJ‹dùl´瞬VÉ2}þgÅ3à^ë Nø…Ý,+ZQ¦<¶‹ã©,t 5t6„– /dÑ„€û=ŽÕ ³Ïp.Nr³¸[¤Ïd×Ì€ÿí"]Î×kRÞb´‡YÒ=b¯$+ .fOãÁ¦NVÄÒãÓêña=gýÝošÂt µI?¨¼ŒFèÇൗȰë{éHØs©²¢lûá™ZÝž—º+s’銣v"M#·²èÜ6~}¶x÷º°Òè— rCSh.¡òR.¡„Gà-ª/V“AVÖÕžDlŠ‚͆Ð^˜™«jõŽ€h¥‰žuz?™œÏg¶×íѱºÙOJ³°Á'P„Sý ÿÅøø$D† endstream endobj 2 0 obj << /Type /Page /Contents 3 0 R /Resources 1 0 R /MediaBox [0 0 595.276 841.89] /Parent 7 0 R >> endobj 1 0 obj << /Font << /F17 4 0 R /F18 5 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 10 0 obj << /Length 563 /Filter /FlateDecode >> stream xÚÍUËnÛ0¼ë+x*¨ƒX.ß<6E4´Ö-ÈA°™V¨$;²Üôó»%ÇÜÖA_Q µ;;³³äC„ãˆÄjÔ"Ë6»½ãd…Û—„3ï y?j‰ÒœIˆ! Ydï³³2{}–€bRAÊû1x&)Wä–¾]w¹:„´ló»ò2;/³‡C`ãV>Y 2~Æ=DdÁ-S³á§ÚÙ„yá…¦ï^С_箫Ýr¨±°Bp¥$•±(Ì\H`BÊ(Ràù×!ô]Õ`œ“tQçÐ9ЮŠoÍŸNGUÌZèÊÀ0iA&…šò2, ¸ô&Ž®{Ô¤JS–šóåýóþâÒ™™ÿ÷)f…•IØ7ý2¶äS=„å°ëCø¬Iÿû%Ž k$5¿TxØ+\æ˜r½ÁŒRÒ«ð% b+¥Bcö!ææ¿Cþ6•´‰gtã¡k$§Xwb0ú§ê«6 E‘ŠE²ÿ²ï?£þÄä$O¨ä‰‹ÜºëÆáL#§èõf4DÀ™ëÇ™K“ †+OÝ©S§öžø¶aHÆÔÂÒÐW)§×æÅŒß( ;fµ·ÂM DK×]H&¿žvfJæ…r™ûÎäÄh¬Üï6?j¨ÿíhw²£urôb}?Ä£ì1>ªù”{•¬½¨Û¸½k&‚ êÝFfºÆÚMÚ.³9Ê Í)ðca6…]ÕËÐm\„ ó-ü i± endstream endobj 9 0 obj << /Type /Page /Contents 10 0 R /Resources 8 0 R /MediaBox [0 0 595.276 841.89] /Parent 7 0 R >> endobj 8 0 obj << /Font << /F17 4 0 R /F27 11 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 14 0 obj << /Length 1819 /Filter /FlateDecode >> stream xÚ•ËrÛ6ðî¯Ð‘š‰d’ H©·8µ§qíÖNÛ™$˜‚,LÀG@2¶óõÝl*¥ÌûÂr±oùÛQ2‹á_2+ÒY±Ê—Y6+«£O_âÙÈïgñr³Ég÷$TͲU¼T ^q³ë£?ŽNnŽŽÏ’b–dK•åéìf7+Š¥ZÏŠd³L׳›íìS”ÌI’®¢óz®’¨÷Í|çv({ÛÔó/7ïNo޾ É7Ù2-Ôÿ·d5K@,Þ$hIËlÚòΜ¹Ù›ù"‹“èõéÅ C¶ãSóQ:¬fÍM‹¨©D¸Bf;O"g4õ<]G½¦ÇH³ã³Ÿ:ýõ7µLîš]¿ÀGƒå‹D-WÙ† »G5Ú㵊ʦjAå­ü–¾¹uúáðƒäÐÙúŽA[ï_K@jçÉl`±- ƒ0ùõÞøÚôËùb•¤ÑyZå‘…Wv –äu½vÝõ^¢ÈBb49‡I}#ç^èt<ÁRVQÕtý”Eè(tɳ_Tžà'*0 CKÓœ-Íc !²ëF•øAØÕÂ׌n}ÓÊÅšÞ´N—¦’h2q3GÆ­Ä[O¯……|#î²Áƒ‚³](àKüÀÞö¦ì¯{<ô3õ„¡3ݳ'õ÷ùõ»“ËßOAH©èv@iˆ=¼Œ¢yhô–™˜™x~¸89¾¼:Yu)ÔRš…¡zH×EšQ]Àñæ ~dXÒ„ú½î™®•ºÕœ·@¤ZbÕ`4¾sªNID ]Ûvpðt`M¼n«{ªË5¥ž|Én€*S5þq¾V8/Ï7äUäã÷O¯B*vA‰f=ƒÞt" uüÅŒ;Ûõô$DËfprû–å§ìªt+Ú¨…(iY(¨LÂ,n®W»êKÙƒôžëMQ]Þ™V{Ý‹®Qz5QÄò)%Ɉ5sA¾þÀ0Òa}¨q}¤›TŠ!¦¨h§­w ã‘ÑÎVÖiÏ2øT:÷r©ñöÎRpwÄ9¹QK ùŽŠ$Q¬ô¶ÿ>Š*<ÇЛ{†åç~Š®ÌÖ8½„3¯0z tϽt9ˆï¡ŠÑгŒð¥'Cõi[SË9u§Æ =`†ä¨Íç8Éz¦¡z<%5šÖ‰ðPï4xÐ’ ¿·ýž¡'}#'vÝTæPç“ 9eÙèM˜ ÞüBR øagL(ûâèößçÔ˷쳟šºa*[K…Å„Qv¦ÒÅ-ØžÑÃaŠJ±oƒ1›lª-¦0Ð!OaB€iLnÚnª·[xTÇ•ƒÔZ0ºÄÚ?)a Äµ‡(RŬ@,‡(O¸zFó^.sFžP‰UÜxî¢XV¨¨2Ø8¸ºò¸±£Sqô••”p¶FÕ+X.h[ì*¤ñçÒ|¨E×ë;ÃHh›wÆ3¡µ¢msƒ«!‰•ÃK.oÇÖ`÷åµ#Û$£‘·‘õ˜æÁ”CÏÉO—Æ‘FNèÆÌ.Ï,J©¯Ë)‡s B÷v{äØð*6I°]иiÚJ”t]Z"Å5ÂèÀ“!-ÿ6X6ÃÉp})bJ"v=HƒçYÎæY¦RèÕ~;Þq¡$\o[gHñpàV{oëèövß(²8:¯ A,^ŠRu¸?·¯‚—?h„'­+¬µÀýÙjq4€¬¡ûl 3î­s“«@fp˜™à' M»{3î%/g“^Æ=˜¼¼5oOoޝ>Þ02Ê´Ž2ê’/:ôY¦*‡Ç+ÆÜ SË“¸AŠh’ÜÔ÷t†°‹u\D—Ð¥§Öì‰5—XÏçÙùúñRö]ê\´‡ÎEý§©khÊF> endobj 12 0 obj << /Font << /F17 4 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 17 0 obj << /Length 967 /Filter /FlateDecode >> stream xÚ•UK“Û6 ¾ûWèVj¦VE½(õÖîN6Óécì™’h‰¶9‘D¯De ½NãKG @~>€/+¥ðÉHe‘*«¤(¢vX}ø”F¨ßGiÒ4UôŒ†¨(Ó$—èÒG›Õ?«‡íê—'©"Y$yQeÑv)•äu¤d“du´í¢"‹×Rf¥xüêÍ4ê>^çª{yŽ?m߯·«—[ US$™Êÿ?’2’`–6‘d©JŠN«$ü+³=¸¿ªDë&––ÙÌ$iúýû¼‰¥x÷¸Å_>¢²û᤽Ýõìµ[Øiï&¬ÿ‰Unÿ5º·qV‹£=±¨—9Á˜øZæIY4„ëÙÇë¬i„éßž[¼)ˆ77ãúÕú#IôÝC@ìz=϶½ñ‡«ÖEžCЗcuß;„ô:ßáCrRyIHÞÑþµ`åËbC`Ÿû3)ìˆKo“ö¦#ÁDiÐa›mÜ2‘Ø™/¶ ÉÇ›ŽÚ“¹£Èës‘•uÒ†šy9B7y6¢`j¼àUoº=_Ϡ홈,ÅóHZÝuÖ[ÇŽ…@垟alF^@zgG&H³ í^"G%³?,8rôiUgæv²œôŽt¼âQóɤ)ËÐ|¯ œ‡<&R2ç³Dr þç’RDÎßõËÕ7Ë’ ºð¦_¤ºPBVâ»DÃŽ¾lì&÷±™‘6˜ŽV{·Ldw˜ÜršEnBÇÙOK˹»‡%d5KÅïÚë{D ‹¢QâióÐXÍ¢‚ Ži6çÙ›ä·×y!Ù‘£´iz ^ظ­‘9hà5¶ß,!·¹J/tW@¨#Là3­¨’'Œ/p¬,Åo}O>DQ%oèZÊ' •/q¦¯öpä6¥R©~dçÛl|rÁ²]CEÑè:‰2¦Y~[qU1(’÷ËJ4óÖÑ-}Gƒ\÷ló6"`#Â_Î1ýž$óõÔëQ{7㺘•‹'”Óάﵚ¶=¶A ¬àɈ¢žvÖOš¸Sʆª;Þv< MJ˜»§Þè™}&³Ç& FŽÿGÞsSYµ‚¾S雄bPœúÖ‚OÑêk}U!6ÔñJ Çs¡ÕA¦YàʵúÔMwn,Ìöñ€ïHM凿LFiЗ [5_çIÆ¢Àj4aÚßôÄŽ½¥–½HÂëå[›Qó{W_Øp=€aŽñ ³¡§c|þà2†î†­¿øæI9ñ endstream endobj 16 0 obj << /Type /Page /Contents 17 0 R /Resources 15 0 R /MediaBox [0 0 595.276 841.89] /Parent 7 0 R >> endobj 15 0 obj << /Font << /F17 4 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 20 0 obj << /Length 2102 /Filter /FlateDecode >> stream xÚ­œKsÛ6€ïþ:J#xì-wÆm“´±f:m&ÙbSM9‘ä¦ý÷]Hàš¬vzð#>`‰OX,à~¹3ÿ‰™“3Ë%«¼œÝ}ºxÿÏÖðûfœ©ÊϾ6­>Í´ŸExÍýìæâ—‹/ýë…ª˜r~f|żØ›(a˜1{g÷ {h®˜ÑU÷/–Ͼf&8«x%fË?fB¦Œ…q&´Ÿ-׳÷ó7Ï__->,¸¸Z&\) ‹+¥cÒ»{sý{ k\ÛC®UÌyŸs¯Ÿ½-`½g¼ªˆ°•fÜEùÕÕÍËw×?/¯ß¾9Åk£Y¥ÔÿÀ—&ŠaÞë3g›•L(C4Û¬e² þ¯/NG/¬‡WM;ë9“Nõý.1tÜÊ”ùüÕ»³‚yÖµ;—)9g‚•0ß EY©óÍcꉊ#2‘0A&æh2ÊÇ¢ 4ª”L¡íþ°{¼;l¶‹KèÐüöq¾ÑóÕz½ó] ?Šù±lrÏ ‚hÏŒ·D‚ɬc–ÞÐ’Bo–%(_çtsÇ#E$¡ˆ®T–Ynr¦@,!FK²¢ž`£'ÙL4eWyUêF”Ã3höp»¸”~3lÍä~¬Q†q刬7|ÔÂð\Ðh“R_-¤Ÿ?_x5_–ô1¬ª< ½ª ‰8ó°?qî™”©$" ÕÂ'…tG#Ý"þP£?9uÈŸõêú¬Ú¾†Ið°[#êLîbAx²rYudHÕu ¥3’F”úqõ@1€’À«pANæðaWHÂÜ»’2±dކ]ÉFйBƒ®Ï)’"õô.Ôñ† üŽäxu”‡ÉlõuBKm‰:u BÝž¦‘Pá‘zçr*â E|c*—1‘\ŽÚ)“U†Û)s2—Î(POïXAsˆh×£œaN˜1ž@ËJhORj±8ÖƒfžQP«ªõ$¥"ž„·×$EbšP0£%Ù0QK(¨Q’ã‰t^azr× šÏ'º4 Âen;Êh©¬¡ñ$¥ŽIÅHà]*–Á‡+$aŽ©XÆDS1jW#ÈGŠ h¨Ñ˜ã)EQV›ÞÂ8Z3c¨ÄÑžYaLj-½ '¥"w@5ž {ýp¯-#ÒP„¸_dR&¶È@£3Ù@1gH¨Ñ™ãÙtFamzÇʪ¨'n?YXSŠÃs$:‚00kã9æo7eߤT¡¥·þlßÂ_kdÔë7ÅŠ3© ;ÓàuX6Šøö²¥LL6h”-(& 5Ê–Rn–žýæ°ù;|W·Â5†5v›ë]Ý­T›í6B‡z·{ü¼säuz— ‰p™ŸjK³FˆjŒAÍüªh J©/ú±œâ…ƒjØ^UGTÄ Šøö¥LÌ h4((f 5”R_¯öàC«ÇÝýÃâ4j׫֥ýæãvuˆ2¹gQÂ/N%J¸ØíÆx %ò$¾»).4²¹¦C­Ls”BK(‚Û[’ 1IH˜Q’t˜˜#$ÐèHMYÝ5K›ÇË9mR×ÕÜúóœ[Z&÷³lŒâ“ŽNû•”AÈ9]wRµ {ù¦ Ò vƒß-.µÖó« á³ ý\hÚlWŸê}ŸíºÛ(Öû»ÝæsøK¨=; ÐdpçÿýÏEàÕÞÂÎÆMyyŸÞÇXrâŸå]½~ÑCÉËÛÍ¡ÉëÍÝîásx¶Ý§c½ß?ìÚ{ù°ëâÔ÷Öíƒ?t¸Xä¡·¼å˜ÿñ´F endstream endobj 19 0 obj << /Type /Page /Contents 20 0 R /Resources 18 0 R /MediaBox [0 0 595.276 841.89] /Parent 7 0 R >> endobj 18 0 obj << /Font << /F15 6 0 R /F18 5 0 R >> /ProcSet [ /PDF /Text ] >> endobj 24 0 obj << /Length 966 /Filter /FlateDecode >> stream xÚ•VϳÓ8 ¾÷¯ÈÑ9$Ä¿’æo3°; ½7q_=¤qIœ×á¿_Ér:}ÐÃ2=D–%ù“ôÉî Ï*øñ¬Y£ëR©¬;m¾|«²ÔﳪlÛ:»D£S¦tUJŽ.CöyóïæÍnóê-o2®J©j‘íYÓ”r›5¼-Å6ÛõÙ&ó‚s¡Ùë©Ë%gGl–Éæ…l4{3x8‹{ßçüÛîýæq·ùq ¬nU)ùçÈtÆÁ¬j9"USª¢Õ¾5Û‡ÒŠ.ûœ‹-³©:?ÅMɾVºzøð龜öŽf&Á¬8³g3™ƒ@{nœÃ´tÁù1=™÷&Lð\–ZµçdO~ú ÙVl¿Ì$\\8ú%Т3bDظL[ÉʼÐ[ ¹yµS ¼ KËl{’L²Ð)¶?ÜÄa”Tì³ ñäFÄ,&?AÞ£ÁÒIÍzûì:;“• aÝ“&øôÕG{¬GT­@*PÞCôñ¶5‹™Â× ³')”­f'ãÆ¤zÙXTQc£gŠàºC÷5öð"tÍè2Æ®Bº7ð4¡›—}±GVC ˜öwÈ¢P {cãÁX$ hqÉ¡A>)~Á ªëë'"G®¡v^ÎçÁÙ>–ˆÆ—­Öq Žl/dUržØ.Kž†q—·Šù3Íà?pL_<–Pž9}1AטB”5ÌeŒù:¨NÛÙ=ŲÕiŽ€Ø/ò­VÈ<Ú£J‚ðø×ßR$]ÄV·©ƒ[…Ì–ŠFM"-áN=Ù`§ÿOÉÈQW×R˜J’»aéñrÂÞnB·0 i £öh¦þ‚0«× WËÎÜ´úö$ìÍTÜkö¢`dî)`xb2ªo…U:´I‡‚éGÅcfÚH/, ‹‚A{‚>÷¤\f7>ÝÓ.> ûùZUœ®î\\×;ŠðÄ/5د갚¾xߤn°˜œõ$Ó•Ý—ùëèyú>”¯í¦Ÿ*zgˆŸÇd–-HÎ4§øþR>é/ÄÙ9Jy endstream endobj 23 0 obj << /Type /Page /Contents 24 0 R /Resources 22 0 R /MediaBox [0 0 595.276 841.89] /Parent 7 0 R >> endobj 22 0 obj << /Font << /F17 4 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 27 0 obj << /Length 297 /Filter /FlateDecode >> stream xÚ•‘Ánƒ0 †ï<…É4Á !»­k+­RÓ¸U=P`Ê LÓÞ~Œ–íVE²ìßñùËÅÀí ‘3Å#HkoàY} œ¡‰àk¼UƒT¶ÃL¯ÞËuZHÅBBY 5Z\®Í!Žr D=‰‹çZÀª±V73rógvËØ[l„Á™áF@üÂpJ”f\†g°'›òý³Í©ˆ™x ¾”Š<®wK§«†Z[’RNN+ʼMÚQ)h É·““sæ’ª<Ÿ:zˆ·Þ:ž­e‰R0£ñbæ£I¥ïw¢9ë£-/ƒŽÀmW ücÙ¹$»2m›– ò»ÞuMëzOÍDl•ôIWäy?lû·”’Ejø¹ñ=ù)ƒ€¹ endstream endobj 26 0 obj << /Type /Page /Contents 27 0 R /Resources 25 0 R /MediaBox [0 0 595.276 841.89] /Parent 28 0 R >> endobj 21 0 obj << /Type /XObject /Subtype /Image /Width 303 /Height 337 /BitsPerComponent 8 /ColorSpace /DeviceRGB /SMask 29 0 R /Length 11300 /Filter /FlateDecode >> stream xÚíyXUÕþÿeL½ˆ‚ ¨!¨( (hfγiWˬp.³ôª©i8U–hσ šC6˜fišÞK%S»È &È(( pïŸë¹ç9ßçìsÎ>ð~ÿÁÃY{íµ>û³Ök¯aï½ÖÿKQEQEQEQEQEQEQEQEQEQEQEQEQEýEFF¶¦(Jc=Áøü£Q£Fô0Ei"Àdô£þ§¨z&½òB)Š0Ra$ŒE)Š0FŠ"ŒE #EFŠ"Œ„Q&*//ß²eKLLL—.]"""<==ýO*1‹‹‹ãããÃÂÂ"##ÃÃÃåÊ•GW¯^ݳgOœeee…£¡¡¡~~~'N¼té’"…µk×öë×qìíí‘cll,þ"5WWWfgg³8cƒUNNNTTTttôµk×DHeeå¡C‡¼½½U`ÌÌÌl×®ÝøñãÈܽ{?222DHAAÎ2dˆø‰˜@ÏÆÆæÜ¹sŠtDœ¡C‡*'^RRÆ #al°ª¨¨†hà=z¤r(==½I“&ŠŸeeeÁÁÁ ªÊÑðAAA IühÇWDHMMEÈŒ3”OQ‰#´uëÖ¼¼< al˜Ú¾};¸8vìXµGçΫø?111“’’ªFC«‡C â§ h¥¥¥5j”ò)ÕÂHƆ,ô!=<¥Z>räH¤Àr!Œ S‰‰‰666è…^¾|Y˜••5kÖ¬+V(£0ýüü¦Nš››+BðϤI“€[zzºIIIh=zôPœ•œœlee…ÀÝ»w‹¼¼<å·tØNŸ>}ܸq,ÂØ•––6{öl4|½zõ4hдiÓ”_(UF&>>¾k×®QQQáááø©x7?ÅK­!!!г֭[‡4ÁcÇŽ]µjUïÞ½ñÓÒÒq¢ž(88ØÎÎ[·neqFŠ"Œ„‘¢#EFÂHQ„‘¢#a¤(ÂHQ„‘0Ra¤(ÂH)Š0RE)Š0RE)Š0RE)Š0FŠ"ŒE #EFŠ"Œ„QkEFF¶¦tÓªU«#a”Ä?5"PÚI,j7þ|ÂHéãêøñã„‘•þ!Œ„‘0R„‘•þ!Œ„‘0R„‘•0FÂH)ÂÈÊF #a$Œa$Œ„‘0FÂHÿFÂH #a¤èÂH #a$ŒýC #a$Œ¬¬lôa$ŒõÏùååå[¶l‰‰‰éÒ¥KDD„§§g£ÿI9Zqqq|||XXXdddxx8"¯\¹Š!!!â¬#FTVV*ŸëíípKKK¡yóæH!::ÿ»ººFEEá\+++ü|ôèÑêÕ«{öì‰ÿ‚h¡¡¡~~~'N¼téRUãÕ[Õ½{÷¦M›ŠLƒƒƒ #a”³ósrrÀ¸¸víšG‡ø(¢eff¶k×nüøñÙÙÙ"äîÝ»ø‘‘¡ˆ¶oß>Qó7oÞ¬œËõë׸ÿþ­[·â,à/Â8|øpñÿÕ«Wmmm#þ/((À¡!C†ˆCÈ´_¿~666çÎSNV«RRRPeËHåìüŠŠ `ˆÖD  ¬ôôô&MšˆÿËÊÊЬ 0@¥½ÃO•””(Q‡?ÑþóE R@8¢Æ .(GVÀ3FX‚”U¥¦¦"dÆŒÊijb•Hjذa„‘0ÊÙùÛ·oG•;vìXµGçÎ+þILLD´¤¤¤ªqÐTáPBB‚2_Ÿþ9þvîܹ´´Tˆhg³²²p¨ Æ´´´jMI!dÔ¨QŠÍ­RIŠ0F:}?•–¥ª0œÄ(¯ÚhôòòBóªÌǧR™UF µb¢rèàÁƒY¼x±VFÂ(绸¸ôéÓ§Ö¤ccck:ŠCNNN*Ðúúúš™™ýûßÿÖÆââbtnÝÝÝ}||0$ÔÂ*ÂHåï|À2tèÐZ“RmÈ!ˆPµDÒÊʪE‹999ÚÁèêꊡŸ……EÛ¶m7mÚTPP U„‘0Êßùvvvjå6HMÚ«W/‡j»£|ðA1f¬k˘‘‘Ä­­­Ïœ9£µU„‘0ÊßùíÛ·G÷¯Ö1cÏž=ÑÀÕ4:sssS3*0`BÄd‹vÝÔ]»vá\Ëýû÷µ³Š0Fù;?..UO}´„„D;þ|ÕCè‹âÐÆ¨@—íååeoo¯ËΔ)Sð³o߾йÖ:YE £üñâE ¬ºuë¦x¡¬={ö¤¦¦âŸG`€Võ‰ÞàÁƒÑ¼*ž3ŠÊÈ@¿þú«¹¹yU+**jz¨r¨¨¨Èßß!‹-RÄÑЪª,…nÞ¼¹lÙ2ÂHåã|t mllÐå»|ù²"0++kÖ¬Y+V¬PÔsPéçç7uêÔÜÜ\‚&MšFÒÓÓ'þöÛo¨Ãiii*¹,Y²¤*Œâݘ=zTµªê¡äädñ¾ÜîÝ»šXUXXˆ³ ¤œ>†¢aaa'Ož$Œ„QVÎ;³gÏF+Ø«W/ÔÛiÓ¦U}ÍS|||×®]#""¢¢¢ÂÃÃñSùÝT´°¢;Z5_´•ÊãJ§;::ŠwçBBB49´nÝ:„ );v¬†V¡+‹Vg¡i}°q‚‚‚ˆ‹‹‹J N #ý#CFV6ú‡0FÂHFV6ú‡0FÂHFV6ÂH #a¤#+a$Œ„‘0R„‘0FÂH)ú‡0FÂH #EÿFÂH #adµ¡#a$Œ„‘õ•MCÿ :µ–N>>>nnnu=«eË–8Q‹¼`kƒËÛÛÛÉÉ ¹‹O› #a”D‘‘‘Ò’hgg‡úYWmll,,,êÄ#"ãœhxÅ–UÖÖÖ-Z´ÀÏU«VFÂ(+‰íÛúõëWu‹5JNNgÕ5GœRÓÊozUnnîĉÅntK–,)++#Œ„Q>*,,D#‹ú9pàÀj‘S£éÓ§ãį¿þº®™~õÕW*{NR{÷îõðð€:uRÞ3‹0F#*???<<ÕrèСu%±¤¤Äå‰êz¢8×ÙÙY»s%QNNŽØ»]ÖåË—?~ü˜0F#*//¯k×®b'b-:l:¶nZ·ªj÷îÝîîî0w¤7nFÂh¬¦!44õp̘1j–4T£Aƒát•½†ë:Þìß¿¿qý=lØ0Xâèèøí·ßFÂhøˆájà /¼ ‰`¼ÀÀ@]Ìxúé§---³²²Œî„„[[[8äÕW_­Óa¤tѽ{÷:v숊7iÒ$íH„>ù䤀і.–ˆM¬V®\)·\¼x1 öÀ9W¯^%Œ„QߺsçNPPªÜ‹/¾¨¼ßw]mff&¶êÐ¥Fóêïï/çOž<α··ÿôÓO #aÔŸÐ!l×®*Û´iÓjÝ'N233ÍÍÍ»wï®»I#FŒ€=j6Å0¼¶mÛ&Þ ÀýJ±ãa$Œêï¿ÿ;=ÅÅÅéB"´fͤóÑGénÕ¾}ûÔK/½$+_¥¤¤`<+fYå0¤%ŒõI­[·Fíš={¶Ž$BhÑ2Þ¾}[wÃ?~ìáá–èÁƒ²òXQQѨQ£à1//¯Ó§OFÂ(Õ}ÞÛÛõjÞ¼yº§vëÖ-ˆ&C*óÞzë-ضyóf¹ù w­+Vàbmmm·lÙB‰’Žºr劧§'jûâÅ‹%IPl(¼víZ©,LMMºÉÓèH;88à’çÌ™£õä3a¤.\¸àææ†ŠôÞ{ïI•fŸ>} Žó¨*êÝ»7Ò”ík¢W¯^mÛ¶-,ĵçççFª®JJJrvv633ûðÃ¥J377×ÊÊ*88XZSwíÚ…ªþÚk¯ÉÖ™yyyÏ>û¬x )Ï)Â([8q+tÿ>ùä “ÅÐ rÉ’%ÒZ[ZZŠÜÑÑñáDzu)ú¨S¦LÁå·jÕ꯿þ"Œ”&:räÈSO=eaa!ù´ÃСCõÔŸœ7oRþì³ÏäìØÊÊÊ ÀÎfÍš9s†0RêuàÀ{{{t&¿úê+iS...Fʾ¾¾ú0m zÔò÷ðúõëÑåÀíîçŸ&ŒTMÚ³gõáÉÿî»ïÐ(¼þúëz2>&&é_ºtIþ~Þ¹s§ðó¶mÛ#UUh Ñ ¢ñBã¨ôÇXN:¥'û·oߎôgΜiÞþå—_š4i‚Ö|Æ „‘R†‡$¢ï„£>Ò/++srròððÐåõrõ*--uuuuvv–ó4޲’’’0xÒÎ’F“*F1'NœÐSo˜ëõBæÌ™ƒ\¾üòKSñüùóç]\\À£Ñ¿ò ŒrЇ~ˆÊ€7jýå2cÆ `¢§°BW¯^ŵôèÑÄüÿÇà6¨¹kÂhZzï½÷Äb§ú~}¥mÛ¶vvvè@‚DðhZŸ÷ž>}Zð¸sçNÂØ0µxñbèééyåʽftýúuƒ­Wƒ>ªxÔ´ÊâäÉ“Mš4±´´üæ›ocC“xJîíí’’¢ï¼>úè#äµ~ýz\_t¹]]]µŠ£Ö:zô¨½½½µµõÞ½{ cQeee\\œØh###Ã9¢MDvh s3gÎDvÛ·o7¹¢9|ø°ýýþûޫ¢¢â¥—^B] ¸uë–aš*Œýüü v—.]ÂÆÄĘbíÙ³ƒÇfÍš ÇB¨òòò^xA|;pçÎÃdúóÏ?~)þˆˆ333¾­‰Ä'Ÿ¾¾¾÷îÝ#ŒõRC9¥zÿþ}ƒå+jìß¿ßûÙgŸIµ4Q4þ|Øm°‘/a4˜JJJÄ ÞÝ»w7ð÷­þþþ†y¨¡Ò7vtttss3¹iŸ~ðàÁ(¯—_~™0Ö'÷íÛWÜi ¼p“!j¨èµ×^CÖ»ví2ÑR+,,ìС.aãÆ„±~ô‰ÍÁ#¨4pîü1²–p­ÍuáÂdÝ»woÓ-;ÜÊš5kfmmm€…a £¾…)ú¥¨“è£eA]?ÔPQXX˜¹¹¹´ëíX‡²°°@MÖ÷0Ÿ0êU(>±QÔÈ‘#2tþ-êékbM´yóf\þ[o½eÒå¸lÙ2\ÅsÏ=§ûе„Ñ(ºwï^pp°.Eé®_ýUlÌdÄ.zÓ¦M=<6°ÐE;wI¥¥¥...ÎÎÎ&´¯·íرîíׯa”®^½êááry÷ÝweeØË/¿ «ô1Ï µÄ—\’ïY`UVVFFFâr$Ü €0ê¢?ÿüÝ”H||¼ÜlkÓ¦MãÆËÊÊäcÒùóç%oMŒ¨3gÎ` о}{©^ê0"ŒgÏžmmâ²··GíBï«Ö˜¸‹²ždddÔZí⌳,,,|||L¥ˆW­Z¥Æ‡b»©V#7"ŒÇoôD¦ c«V­Ð2Ö ×hà‚˜-Q¿í¸Qü?˜ ‰Â9óçÏWãÃ7nàÞâëë+ÉŽ F‡QýÅÖ¾»þ¯ý«Ö×AŽÿµ“†þ™0a¢}ÿý÷„‘0V+±¾Gff&aÔ7ŒÉÉɈֳgOÂH«º‚ÎÎÎ’T6ÂXk̨¨(33³k×®F¨¢üü|±Øa4 Œ[¶l‘äÍ+ÂXÿ` €0F…ÊËË7n(me#ŒµjÈ!ˆ¯Ë±„±žÁxíÚ5xuôèÑ„ÑÀ0нEÔ¿>GŒâE8MV$ŒÒúçîÝ»èò)a¬g0е5Y‘0JîŒÖmmmµ^!–0Ö3GŒ¯¦§§FÃÃ(6ú©u›06;v숛³&OŸ £äþùâ‹/pJBBa$Œ`$vèÐAO•0ª—˜=›4ia$Œâ›b ×î&Œ’û§²²ÒÁÁA“çJ„±Þøÿ~¸ôí·ß&ŒFêÓ§¹¹yAAAýƒqíÚµÏ=÷¢ÙÛÛÇÄÄÄÆÆâodd¤««+»téRÓ¡ììì­[·âŸæÍ›‡‡‡‹½Jq(***$$ÄÊÊ ?•wL(//ß²e R@šžžžþ'}ÿý÷‘>þG'pÙ²eг–.]Š„£Ô,—m0ׯ_cp!RU¶5kÖˆ ·°°èÞ½{·nÝÚ¶mwæÌ•’êׯŸšâÐÄÏÊ*..Ž C"(AÄ_¹r¥b«Y ÓÐ* a GŸ:uª^¶Œ………ˆ6tèPåÀ’’SjjjM‡ŒãÇW,„˜Ã‡ÿ_½z)`ÌÉɤVñIú‡òööVTÜëª]UæÙgŸE¸úÁ 㫯¾ c~ÿýw ïüâ ¤ðÌ¥K—FމÀçŸ^y…d³¦âÐÐÏB™™™íÚµCñ)x¹{÷.~ +^'ÃjµJZÅýpÛ¶mõF8Y™#…ÀZnnnM‡òòòð÷Â… Š@•˜cÆŒ0VTT zàÆ[uk¡ôôô&Mš¨7cذaUïêÆ‚±wïÞ0×.!ŒÕ^8-Z„p¸Q“’‚Iú*++C7`À•ÍJðAAAbåU So•ä0Š7Ƶ[·Ó$ÆŒÕ:³ÖCYYYÊ3ü*1ÓÒÒD£¹}ûv5ë‹*ïšQm^‘Œ-[¶tww—|LTí…÷báÐ+W®hRšû911±¦§uçÎS~v ¡aj¬’F´Î8륗^j80*öäªz7¥j·Ï«©DÐóôððÐdÇ(™ÃˆŽYÖó×ýf(^½S~SMqhîg ë0Ò¯6&½¼¼‹hh˜æ•DwQ b¡Àˆº1Õ‚+BBB꣋‹‹†®ÓFKKK}/-Ø¢E X‚þž†ñÅä‰.0Þ¾}‡þùÏÖS¹84÷³££clllMGqÈÉÉ©N†i^I$™mnÖ¬™¯¯o=†ÑÕÕ5ú‰"""ìììÚ´iSõ1KV'Ñš¨ŒîÕ˜ñÔSOùÿ_!D&0º¹¹ÁgggƒÁˆ~>9²Ú’R)Íý¬>æ!C¡N†i^I$144ÔÊʪ´Œ7nܨ©e„‡;wî\'¶šû° uS—.] K~øáƒuSÅÊWÓ¦M«)¦rqhîg´ŒjÚÐ^½z988ÔÉ0Í+‰$0öìÙSØ9f¬Þ¾}{ww÷z0fœ4i,¹|ù²Á`)|öÙgšŒ5÷3*3ºÜ5Ѩųb˜!ÇŒÐÀqâ½{÷8›Z×DâââpƘ:Œâ†¬x,n§NÚ´iS4Cš‡æ~NHH@ÌóçÏW=”””„C7n¬“a†œM…ƇSSS댈6lذjï“Õúá/(?×P“ÈÅ‹1éÖ­[iiiÕ£{öì^­)ñœQý ß00z{{7oÞ\òÊV““8`nn®¼ç‹úâ\šøYt#0l¬úœqðàÁhaÕ>ÙÁ±H E€ŸŠN¸††i^I$„qùòå.¶`ŠcFS—`<|øp]ɯ6ô䟕+WƆ £x…¬N»vF=ùgÙ²e„±!ø`Á8óàÁƒ„Ñè0┺–a¬O0Ž;ÎLII!Œ2Q“‡8„±^Ânnn^íSúŸ0FCÂèééÙ¢E ÃT6¨^sçÎ%Œ Æ’’’:}øàd×½{w9ÌdN:Æ|ÿý÷F·äáÇvvvÁÁÁræ…0ê[¨¾lXdmmíâârãÆ 9\ûÙ³gcÿþýnÉÁƒaɼyócC–›Oi§œœoooôÄ~úé'ù\~§NÌÍÍ333kÆo¼¡Ý±>ÉÆÆRß¹TVV0@†Ú'$$ÀªÅ‹׌§Ÿ~ÝT-6× ŒõF*j½^nŒ¢££õ÷­¢v*((hܸqË–-hØ­[·ÐaèÓ§Ìy!ŒzUjjªvëÂÕIÇ·´´twwÏÊÊ’¡&Ož 'ìÛ·ÏXˆ÷´þ ˜0Ö‰ŒéÓ§ë/‹{÷îyyyYXXüòË/òtÂo¿ý' 4ÈXˆ¯H$yý€0š®8 ×SÑ÷Cï Y¼óÎ;röC‡Ðvk±9©îÊÏÏǰ]÷‡„ÑÔµe˲~ýz=¥‘>x”ÛPQE}ôì\¶l™á³‹ÞH5ƒDMWï¿ÿ>jÂW_}¥ÄÑ/Eï}TíÖã5¤òòòììì¼½½ ¿Šã˜1cPÉÉÉ„±káÂ…¨ ‡’<嬬,wwwôýŽ?n®˜0a\aàg =jÚ´)n&Á aÔ«Ä©RÝ–•‡ŠÑÑÑH9>>ÞT\qâÄ Ã¯xðõ×_k·±a¬o‰Kþ‘XopÀ€uÝðѸ BS~ûömƒåöᨤ¤$ÂH‰IuŒ˜$L==333t½d»6©úôŠ+ “]AA­­­¿¿¿©ðBõª°°0€#a‚7nÜpqq±¶¶6ä’R wÐѺukÃLãˆx¤}èCMW¸-;99I•Ziii÷îÝ¥z™Ä(7nœžf´ªJy¦¢¢µ®qãÆ………’'¾zõjw·!ŒõO_~ù¥.ßO•••uëÖMS‚rx…>11QrÌÛ´icccƒ‘)a¤úøãQß¶lÙ¢ÝébA3“~ª¨Fׯ_G÷;22RÚdøáýu€ £éJ<êÚ»w¯v]\ÔU“~ª¨^QQQðϵk×$LS¼ |úôiÂH)ëõ×_GÅ8vìX]O¼uë–«««µµµþ*•ôùçŸÃ?óçÏ—*Á””ÜÁÂÂÂôg3a4Q½øâ‹¨l—.]ªÓYååå¢ÉX»vmýöOQQQ“&M¼¼¼¤Z3D|=úÅ_FJEbš›7oj1³1pà@ÓúVQ;M™2EªÏÿ³³³íììP™ËÊÊ#¥¢Þ½{£¦ÕéùàáÇ-,,Z¶lyÿþý†à¢ãÇKõÞø¢E‹ÔêÕ«õj0a4QuîÜÙÒÒRóøwîÜiÞ¼9`4•emtZ???ŒŽu¼ù<|ø£lGGG}<¸$ŒZ(22²µœdee²4ïââ‚{»³³³>Œ9{ö¬<ýŒë533Ã]H—D<<<ˆƒƒƒŽÆÔú¨…0j~-¨Ì²âÑÇǧNñu¬“ÕªÑIØÚJëçV­Zy{{랬Ò1\T­,Fv¹uÑüùó%‡±^úY“ë"Œ„‘0FÂH #ad%!Œ„‘0FÂHy-„‘0FÂH?F^ a$Œ„‘0ÒÏ„‘×B #a$Œô3a$Œ„‘0FÂH #a$Œ„‘0R„‘0FÂHéXÂH £ 9sõêÕ={öDå´²²  õóó›8q¢ò‚Šk×®íׯâØÛÛÇÄÄÄÆÆâodd¤««+ëÆWTTlݺµwïÞaaaâ(„Ôé<÷Üs5¥£——þ6mÚTü ®j¶†&ÉÆÂÂBX^ÓªwåååË—/÷õõíÞ½»››l¶´´„“ñS½sÁÁÁAD@A(òööF µµ5Љ0ʰe,((@ 2DüDMF=·±±QÞ\FÄ:t¨ò‰%%%àNÔüüü|à}õêUE]Ú¼y³­­­FQýjJ'99‡:uê$V MIIÁO5k°Ôj’üa\·nšå¾ß~ûm±²eYY™0[\Z­ÎIKKC„=zT~ôèQ¶Œò„wfÐðáÃ!©©©™1c†š8Bh óòòpô™gžéÒ¥ XP‰°mÛ6eÕ¤“››«¼•ªˆ©fgUõ&ÉFðÕªU+垃Š@—¯wðàÁ¢Ç¢¡sªFxüø1Â5\I•0åZTjuii)BF¥&޲¾ùæ=tèPµµBe325é¨RSÃr†7¾}û¢/NHµ 3ZXX€GåVþÈ‘# 'kç)ÇŒ&ãÁƒ²xñbõ… Ê=z„ú÷ïïää¤á¢ôUÓ™5k–T0*L’9Œ€¢C‡_~ù%zò0fÍš5Uã ¿C;vD§T‹QM£©ÀX\\Œ;¶»»»ÏÝ»wÕnQQQHHˆ¨ù®®®¸ÃWM¼Ÿý±ØØØjÓÉÌÌTÌB裲IµÂèéé)Õ⊖––u­3û÷ïoܸ1 ÆXÃê6mÚTTT¨ÄIJJrtt„©vvvK—.UÆz #€ BרmÛ¶›6m*((¨6NôõèÑCÌ[Ššoff¦˜ÿQ™ÄýÑN:Um:¨i¨ŠZÃX“I2‡1&&F±gâ˜1c`ϪFËÈÈ=z´˜…'ÓÒÒciQôÖÖÖgΜ©µpQç;wî,j¾½½ý3ÏhРšâ£8}ŒÜÜ\ÂØ@º©»víëHWRP3@hhª}^†STJŸcÆQ£F¡Ú¥K—°'‚÷Ð!177Ç}©¦SräHÜ·Ûµk‡Þ&ÎU£J^*IU}ÎX5Ç›7o.[¶¬V“ªÎ‡ÈÆO¤øÓO?Á$777Å,ÍŽ;æÍ›§Ââ¼õÖ[š8G œUú ¸ h~û"Œ†¿ñ:‡òÛÉÉÉVVVܽ{·ÉËËS~KGíôéÓqWÕ S§Nèz)7ÑïjÓ¦»»»"䯿þB:ÕN½Š;ÇŽ?~¬¨{*#)4+è×> stream xÚíÁ  þŸ®¡¶À‰/Ç&ge endstream endobj 25 0 obj << /Font << /F15 6 0 R /F18 5 0 R >> /XObject << /Im1 21 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 32 0 obj << /Length 1611 /Filter /FlateDecode >> stream xÚ­W_sÛ6 ϧÐS¾«9ñDioiâÞÜ5Í–xwÛõú Ø´£;YrE©möé”»Ên]›<!àg"Šá_DFF&I¹ÖÑzöþCm€ý&Šyž§Ñg/´ts%ð“*º=ûýìÕêì§×ÂDBs¥S­¶‘1\e‘9—Y´ÚDͅ {=Ë5ëëuW6uQÍæÊ$ìú«`¶-;û°zs¶X}|êUšk.úv·’H€Xœ tKƆë´¥Ö”<;¯ºû¦ß݃qζ£oÕq\¹/«¢¥MׄõÞqU®Ûæ®*þ¶/ñúñä|qõЍÒÑZ7^<œ Å“Ål®µd›¶9ÌËš6®¿s]‰ŽðÙܘ˜­P-žZ­[Aøn6— ç½³¢ Ö VTmkˆñ§™ŸpeÝ´¨F$p¢CJ3À²_ìºïÂùºÙ@Õ]5î½ þ¦Yþâ­ý Z»/`œ]÷{[ãYç¦\qÍ©k¶¸‘EÆ.òÅó6¶+ÊÊ=óÞ‹£JTÁó$ñ‰ &Ÿð@\À%+!]o¬³ÝsYzš^£.)y Iëuù‡“©dûÂùÈT±–Ô"Û•;_Ho›pÞ у …áÄ£Û¿n¿® ‰-Ò(I3.“ü´JTžU¢|ýKh µ’^WJäæv5aS)'æÇU)W2?2ºätñ˾-ëÑ7xf;(6iRHéÊçD<ã™2Ç)Dϯ ƒª’†ù쯈ÓÚ]‰Ïáhë¯töø YEX” (Ô„ËvÐç,zÖÑöÓ,Açzëà:32ÕT’—T¶mûCç}‘ƒ=„ÒP_ÚÝ¡äÑÁKÉ®no¾~e ˆ&‰- )Äw=ŒÊ€zº€—†”^.ÈúDÚwÆ+Áηã‘O÷—ôRÂ(ž%éÄKi•³CÀÁ:‡o‚<„7ÃÀVíˆñÇuk;ÚÂy×ö½ƒà¶möDíí¾iˆ®‚‰±Ž‡WIÈ™øKþþ d¤dÈ¿•(ª²¶O C"tÌ E¾=TžŽ™²ó1ÆÍ`\‚`QAù‘'CÂï­ø2‚íªÁ‚s} ‹z3X7íLNä.µÀZ«àOFþø¦¥Ù²£³5¼dŠ£¢3®Ý}k-‘û‚Ÿf®+vÖýLRñQ÷N!]ãüðö_/V¿ÀGIÎ^Gn^..®/S×0 h9¨{9e2å™Þ^ÏdÊÎ/ñI˜„E²ÅŸ‹‹?V“êEœòÜÏ#Ôå!¦S—‚úÊ’AèÕÍù;¼ª~A†nW×7Ï臜„Ô Ÿr,µœ-ŠP‘LCN%Géí#LmÑ'ôI÷PÓWmS—~~ð]”R®9é¥ôÌ+ÇA³톴êg:ˆäÑ2æ©4ß×-4ÜÆ¯KËг/Þþ:a5…7ŽÍ±j@GvltIw§Î³Pd`@ê§S@–— ±|g‡¦òp¬å‰t’”Iõ0•T 8•5k•킽 ‘>¥¹eN³›’"MÙ-úärkíì£òÚÛÑVe’FFÁpö3~>œß=XGÚç_&ØF#âØÚâ£Ê:9m (ü¹œîª>(2 !aÔ,}s…†|'ˆ•Æ*Œ­øD­ê76ìhÄnºûápl5Ä ÄbStÅ”Oãµs˜(Öx ´¨Òq¼ñ¸v×õÐØ]vÄ' ÏãßÈ ÐoèÏFè7XÁõ.nAU{dÔÔU1ŒUÓ}S;T¡.ë4Ã0âü¿IZ=í…fœÍ`þ»Çß8Èrý!àRÛÑEĘI¼vÀ+ìÚrmÕÞ1Ç3±ü+ʦ‰PNN¤$¤É¹Üøè‘Jp#¥×•¤ÁêòÝÄP.ÉÁãc5IxšœÅÙîðæ åôÓ¸'‘CVUt¶^ãàe¨Ü‘~¯v(ý9<‰À õRjžØúa]áíÁGg\$ÙqÜ—'Ó3N<…¿¶iΠ÷=ú­<؆<°õ ãÐ])ºf_®éƒ“©]ÿ¤Åžþ–¿@—WWK><Ï?^¬X! endstream endobj 31 0 obj << /Type /Page /Contents 32 0 R /Resources 30 0 R /MediaBox [0 0 595.276 841.89] /Parent 28 0 R >> endobj 30 0 obj << /Font << /F17 4 0 R /F15 6 0 R /F30 33 0 R >> /ProcSet [ /PDF /Text ] >> endobj 36 0 obj << /Length 1823 /Filter /FlateDecode >> stream xÚ•XëoÛ6ÿž¿B†AfF)JúØdi×mŶ6lÃÀÈŒ-TO¸Ý_¿{P¶•(A‡!yº#w¿{Ðÿ\È ‚?¤q&FhõÅEÁÈ?‘Èsˆ©t %Q¤ >\üzqu{qùZ¦ÔBi·÷Aš •©ÌEœ·›à0Y­¥Œ“ðC{?¬” øÏvnµVi~ÃDz^©8+;”m³úëö‡‹›Û‹ÎÕ3¹qªþ¿~I -Ê%êG©Ð9ìf$Œ†U¼Ý¡62 _ݼ»âYÑ’†2 ËÞSìÞÞUž±½çÑ}rÅ8”Í–—דðjgáÆMËlîW2,+·ámå°ãÏœ­×R‰Dç¬Ô»²èÚ»Êþ »Ä: ß\_ã$ÜT¨Š ;[6bµÖÒ„ß¹‡ëªv_»§‹¢¶$¹ó{ñípvÀ=lÏ‹¼RèPsA§±÷W5á›_~ºþíæ=_!RZ¦Ûfô·…íÆž‰¿­2º®¬Z/‰L$ÌwvhÛõx•¸^Ò‚@‘bK§liXPoÃßê½·7~b{G1IJh!yúg”D¿—U .j>1éæ»y’ )"ɲWcYÍ,“°JÈü´±Š!òÀæòÇÈUyvD®"h¿„[•!†{Ź7Ä[q¦A³D…‘‘2JáL˜D:ü¾E×’E<.ºo‘ÝÜŽ¥*ÑÞ´a𺞗M;ð¤¬÷•;â Ml¢æ›Âu Dˆ4ýІtg+=ÿÎâ'Ÿ‘Lì¶çE¿kÇjÃbwäfÇ‹±w\¾VòÜHà“XAˆY—¯Áxê»õ¶(x¾Þú±þT­{ÈHëMù0‘h}_µvàÍç˜6W¼ù‡¶v¬'å5Ù&;Ûm‰;]”¬Ú6Þ€þŽG޽íl툑³ †N·~kë7^aæÜ,Åé@­²Ð‡ÔPî«ÒuHK92qrg»ÎUÌØïÊûaâÀTGœˆœ‡UÑ îuÀyÚÀMáŠË»nA›™# Û<ãEo¸Ö;œmäœwú¸÷t¬qžÛT‡{Þ¬»o»Ú _D„úD4ízE=Vg8a{­ÉT/!ÃÃîUƒ×ÀÚ`1dpaæPǯ}Ñ•ûçhwdÚw-^ñ¡Ü  è‹çö5®ͳ‚&3 |Ù.·Å*‘aÑá¨; ê&¹ÈŒœdú«*Î9z0%6Vàhòê$!ª×¤=Îûqå.-ü3. HíñƶâO”y‰§ÛŽ€e*‹§€@HMÕ¸Á*³€*Š0¬t×Ì (Ó•k pHA¾øû¡¬*fÙºÆuPΘnyèñ\T ¸¤ëy"'!ã{ „Ÿßyáf±&î+KÙµüØðøŒ×R¨~ñÉge}iÝ»+ñ‚˲Xè£ß3DQë²p„Ö"Á¢ 3žÖ(mR¨+y ¡Vå‰z¹FÁæ5êÑ¡)Ê„öJí}æúáoæšb'Š¥Û­cöŒÕ“¢)zLŠ¥€ø­gæOQf¨ÿŠ À«Ú¶Ôûš©Ô0ìંzæz]r>j›Æ%³4èð‘€pÇÉ[’/N,º¶šWló¿ÉÏßþQöxÆ¡q,3Í5ThÚíåÜÊKçÈ8It…o |K¦ÍÑÞ8§žW22ŽG#ãâQ PêZ‰Èd³ÔÁ:‘›%vØ™˜)`Ûÿ8æTª}ìâ *ñ†ù¸©R7z..¶0áâžúlžÁQK-$795º`ŽY¹G† ¹'§x“’2 ±÷<îÊí®úìE¡ZBå7$Ôá>ã´3ØÃKÝÙ~bkÏÎ]PôhyÑd®¹añ3gEà:¾>0)ù¢¤‰D*õ R` }²“CˆNÌ>>©„çX6Û±|~ÇuœÄzäù…Ù…z*=/¨E€‘ý¯Sïý4m#Í÷ú0s%·,8÷Ϙµžr|¢ètЇÅÞ ƒ±›ÇhÌO†÷ÌIAXLEЯH»,ÆŠ¾…Æ®öt¬{õYˆ¤ž9é!æú°²ýi£§¯'wÆ&ÊQr|ÕðãðØVshŸ5[cOÿ£GxÐ’ÓÏöÒm>B¾ø‚–ùåˆnÕ¤µW­g:·¯@7BH±žÅÇCï©ÔÒF§·Î}h0w™´ù$ã5M pMúÙ^¢ÝcSô•·Š:ç‹EôH;gyôJn™ÍÁƒ±^• Fc’¤ák| S‰Úù™ÝC§^ØãS J{1öæ •ÆôÃp-tÂ(ËÙQ.dÜ%4Ÿý:¡ss2ÌO¦ƒÅJèàÐ&7ÁaWNÂÔÓ?ñyMç)å5$M¾ÎÍ™¯sªß2\l¨|\‰©YùeÉÕ endstream endobj 35 0 obj << /Type /Page /Contents 36 0 R /Resources 34 0 R /MediaBox [0 0 595.276 841.89] /Parent 28 0 R >> endobj 34 0 obj << /Font << /F17 4 0 R /F15 6 0 R /F31 37 0 R /F30 33 0 R /F33 38 0 R >> /ProcSet [ /PDF /Text ] >> endobj 41 0 obj << /Length 1133 /Filter /FlateDecode >> stream xÚ•VKsÛ6¾ëW°‡ÌP3%K€¹%iœ8µ“i¥Ìt&Í"! IÈ ©ØþõÝÅ‚¶œÐc°Ø]ì~û¤®Ì‹àŸy÷2‘†IâUíâÓçÈ«ý΋¢H½¯V©õ…1Ã'·Zü¹x¹^üvÆ2%aœ¤Ü[o½, ãÜËXòÜ[×Þ'?]Œq៷‡F¶²[ÆÌÊAénùyýnñz½¸:E‘IȳøçaZT0„Á£,L °–28SB²ÞË^.ƒ8üNwA¥»~0¥êd LQø= õo–Ìï–<óÐV=IŒ´²dÍГ‰­Ñ-Q«Fu×DŸ¯@ç5ÑÇ"dŠÈÒHŒ ,ER¢­6Ë ÉSt†„ð+md¸ ŠˆOpQŒÏ-ÑéôJºo–Ï}ÙUK8ömi¾8þ8éM/Ç^nÇÆ™ëЖ€JÈÂB[ ºÀôZŒ¿NŸê@ª#(ÒC•oJÚ,¯ìÕ–!Ž}½Å3ñ ¼:r­GSaÆQXv5ñªœµeWA–\B9tOîJ ÚYnóˆTæï1Zd¹\AZ>œp=ª:Ñv¨ šdN•˜¹šØ“¥CiâØ€SÒÑ”f' ‰VúU8Wó·P-ù+Ť ’0ã#\khÁ¡ƒÛW5ì]RˆÑ·eÓ8RÝb‡ºÌNæÊŽô5ØÂÿWVƒ:bØóÙ;8ÚÛžC×RÊuß«M#I„BÑv4г†˜úeUج(²½ŒlBOLDdßïVeÔ ª²!ö¡ÄÐo`~Æ®ŸËܰ7zÜa DN†h1n˜bº½¸ø:Šr©qðž$Ïh˜mͬïü ÞKìò€œzt¾ ú\€jPÝÎÕÔŽ(Þ©*œ]r"ÎÂ(þnׯEþÿK.f§††ìÛÈmÚßåQU€TÀ¶Dº¥5kýØÂz¸y>@ðøß]›à©¯d„]‰†O½>§#96×\l·išŒ["ÌxæÌ8¸ïÇvƒ„/°&x®°Õƒ‰(òOs¢©Ž“ªå°(jÌP‘=› ìQDž5¸tˆÒt+²Lø<ã:åLD v*0ú»LèPÝa²wñqî²MFùÓüäJÎrþx ´¯Â¡ÃÓv"¸KsDùrõ½‰¿^\ZÀ9ä'Îk ø’)þó¶¤0ÞP’?µRÝÕŽó/ÑFž83ù² ÌRB<µ> endobj 39 0 obj << /Font << /F17 4 0 R /F15 6 0 R /F33 38 0 R /F31 37 0 R >> /ProcSet [ /PDF /Text ] >> endobj 44 0 obj << /Length 130 /Filter /FlateDecode >> stream xÚ•± Â@ûýŠW&…ëíÝÞm®´6âu!U!`„`áï­leºÇ> endobj 42 0 obj << /Font << /F17 4 0 R >> /ProcSet [ /PDF /Text ] >> endobj 47 0 obj << /Length 4310 /Filter /FlateDecode >> stream xÚ½ËrÛFòî¯Pé²T•$“xLmm•­(^§ä¬7R’ÚJr€È¡ˆ5 0h[¿ýœJJ{1==3===ý½½{õú»hz’^.æóìän}2Næ)4“èänuòëäÝ?]$³ùäæúööúGüÎ&﮸þñÍ w|üéíÍû+î€ën¯¹ãç³Å|bš¶¬+ÄçŒ-¸ýý¡2üM§ó³ßï¾?™ž\ÌâËy’óêWõþ,Ž&Mù°9‹ãIèy6ùmšN¯àÏ ›)¦ŽïÎù¤1†[·õºÃQ_pŽ¢1Œý’UªUÑe@R:'ï«ååÙÅ<'ß v×í¿yýzÝ®/ëæáõ?xäõgì2Í#NZW²JÙrïþìÀ¦Ù•]gV ëjÆYâ>âÉ#·ŠJºWeÛ5åý¡“©dþ{ lÇ0°4-÷Ök™tK ³28¸„yµ-—¦j…¡+XæZv¦¢ýëa-FX"tSTeõÀ]¥ôÐ~à·ª;î(¶Û±‰fuÔ‚¿Cš.â$Õ=ð©#ÉÆßncøƒD ?nLÛšF€¦2M±åÆÇÃ=ì¿A¤t[ØQV˺ÙÓÖê¦èLÛ›ºö Œ˜Œ,ëjUâQ·!=JèÙlRž]Ì&JoüÙÏ‘z>r8ía¿ß= < nf7­Cì^1¹¸vðvQ®Ú–wÐ-ˆO3‡iCNérì"MAºS ñMoòoÍoÓYR1FG¾Á£drhi9øÚ˜Æ”xq’(›œ’4\¶ʭƬ‘¹ôM×~?ŸÑ €˜H²x¬upN*ß±¡|÷Šøvù³ÚéÞ}¼#DÀQ=Gáðt­’t$ÂAZQ{2‰£wçôncë¾)šÇSoIDé¨E8äöÒQ ;U ¾Zj>qëÁG©œ¨¨Äe99GÝ9·jØd£(…èný}¼ÚãuÙÃÞHƒ2fÝÿ\Õ;\ù¾´+ÿBj—©ƒ}ÈÊ+–¿?!Éo`Á4žNNßì- À°4ZæÂ. ••-6HkѺˆê¾+>odÌU bàIË$<©\Ùf],eß0oËÒÈ÷Þ‚$vˆ&§‰ûF+“æ¬}‰¨  Ùp“‡¤r@Gð¥Tšî‹VWª+݈a€·Êåˆhêg-/ç“>º'sµÜm+'¸NÐë’/C¡èú&‚Ê[Óîø®ÁÒ+ÉëfpŽH¶’Òòž´!ò>VÞ?KŽÏ•@Š€„y>9 åA*§§Ü$³¿þÌ=iB ƒ»:,u¸RƒÈKœ<ÂÉigØ×·eõÉq»øëI´¬Vvîb+ÁÆ@âÉv틦+—‡m!kˆ.†‹1Æõ×G棭7”!–Ö¥5`²eêƒJšÑE)émß+1rªyŠm[‹¼›¡SØNo€OìvpçSžqDd…ÓÀöÚ¹«ºiL+žø*i·õ¡YQ¸ëº ´ìʪáøöv¦¨Ú€èl°qGœ,^¯·Ü¡­)î›ùºÜVÖe+*Oö[žzx|KRYd­ªZý¨ÎyzáŽñuªÐ¾V 7Óš¤R/r[oÕÝ&™_4­]õÖö®Ã¹ê…UÏ7ÕÐÂ2ÿ†Ùͺ}5DF•ËLb0˜»V%pÕymºPÊN÷ÍŒi°1»¢T×=P·ëÃöÜFì#:ò^Òª0Âêÿ#:öÜéuõÊ*sDN_–ÔrÃF,LÂgz¿v«eyä‹$yÖAÜ'¢‹ øWàk‘£8ÉïÃD£µSà@šRw±ÆóBŸdÿÓ–yß•[Ów›¼+?«-ƒÃÈRÇ!ΧxzåRº%MPSXiÍg^Õ[t5r Ë9¼ôyÈ1b!‹É™—­™ë|*™y‚Tò+ã¸ò‚©qÊ·%ªåJ‹F#TÛÀ!bs¥kÛÄ-2Z¡z* îÙ7Ëe½ÛÛ$npˆÄ³ÄÓÛ½ä†3F/óŸÄžehÏzQ¡ì™ÊÚ¨fOl¨Æ‹s›·N9æ¹§¡á”#ûˆCe/z¡3B\‚ÑÔɃ-å’ øp‚à¡ P÷ œõ⓸[4¾« ¦©¥—<9 Ó˜Br©`<± °Ùß@c@KiÍ%? _[‰±Íƒ¤•Z ÞÌPÞÆ’Ó™2²+Ü™”ÕXÚ뉴ŸUpºg傪’t(ÝŽ ¸´™·•¹?<º÷" x_µ]±Ýª6"jU[?œÍä•ä¯ ²+YH¸²æo—~XDòêê°]É÷r›RçâFcþ8”|_0Ù\óï¾O¡Kya«tÔñê)ˆ:‡¦Ó€œ kYb#S¾^ƒúVZ8çsMä²gQ:>Ÿ»àË|í\²=·Ù@è!šcN|ä!͈ȩ , cšIÒºâÓ™ôa_Í”výú!u¡­%¼Ï!Äçbbû'·ÏІB,ÖϽëIf‰¨áD쟋'=•r.¹Í’1ãÓŽ8“Rá,v‡d’ðj\¤IJj‚ ”3¿@9K$œÁI÷Ž®d5=ïÑÞ»1qç;d1çÐÒS¶3‹ÃDüB.Õ·k™sͰ1fª®®MFºï ä€ÏŒ(ù!àÆz¯n9Óòã¿8³œÀïd…éÆ4KCÜpw^š˜G?è³p°P«ˆ¡Ò{Î…èÉÿŠ á¥$þšÿ@zvćH¦¿ìk‹§Ÿ2ÄyìU2 q§¤çh \JnÍ`[UR¬˘UGì=Å–<<ÂOÖZV„¶\ Øe8}hY«à#Æ­t„jºLˆ‘”q¬¯mø´1z;ÐÛ܈ûJéˆH’løÑ{Ó2T^F烘öÔ‘Í/²‘ŠÜsÆ„L~)yO> endobj 45 0 obj << /Font << /F20 48 0 R /F18 5 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 51 0 obj << /Length 1140 /Filter /FlateDecode >> stream xÚuVK“£6¾ûWP{ ®Š½€Ã1“ÌN%5›JjœÓf2ˆ±ª9H^¯óëÓ­nžqNHýR÷ןZ<ìW?%QmËÝ.öM°K‚]Û4 öuð%ÜÕz“&"ü´.‹pP¼{1[ ^Ö" åॠÚìBsîké´éɲ“hr%ƒÓùÐj{$Í ¾i«jÒȾþhRôêBÂoèª Á,©LC7¦õôû_$yVÖ*ð¤z5È–à™)žu¥zËÙ6ƒéHìtÇáÜ:Í,Ü®7Yž†/ç 39®¿î ¢`“\)áC¹Æ;ÌU,rÉE·-­ë B«;ÝJÌ4ÎCݳð¤íhí é¨FœeU8Ò,pù‘$pBžY=C›ZÿÅÂ#¡Æójå¤noÏ“u qò\W‡›C«:ŽS™¾RCo·#$±ØîÒ‚0y” ×&K¢1YÖzRdIjKºWMÚž¶’>µÆj,x8¿ê_Ï@Ý¿ÞD½Wöî±çµ øý+²"üµ! (.žõaÕ’‘œÌ=Í™6ƒª”¦žÖœ³#=ApWlªìZº›"€˜ë½“ÚvÁ˜E²ïùF|—‰ïbÉwØL|é‚ï ø`Ø\ö#?`ÓJ7†yìv8Z•âÆÓ¾Ú!÷D¸ Jž{‰í¼0'ž ‚ï1|Ó¶/¾½7öWgÇŒk*xWkÇw Ó`>L1ßãE}AWž=Š#ÝàŽB'R[ ”Î(Ýq|ø€zvãZRšŒ4=AûâÑmà¾öyˆ ñfˆâ*‰Á‹€bf0J¥¥ï¢éÄà$3ó,jC f¯Þ°|fvs½%;-²åð!Ç É-<¹Rx$áKIyø{þÂzâ/Ìü…ÍÄ_4©ˆ4†µÊe‘˜¯*:à¸#ÄÁ£Âõ‘ 4žù`1·’ò_ô\Þ¤™ñƒÅœcþ9f‹;VŠ£ßoIÿ&pÒ8ÇI¿xdaG¬ç‡`~Í ?î `Ï–|Œ› ¶ÀƳ´3ˆùî-[@âÙæžÉrÞ¡”ïØIÀ;i~Çn]ISÉžt58׊„—£â+ ŠæìÎ+Þ<ö ññg± 5ëƒÂ©1 ˜й1XÅQÂk|‡Ô0Ú®ˆ(³(áºDÉ%á÷ë%5°"¥u0ºéQFf‹f²ªPõ„@àï‚Fö’3+qss«ÐJ[Nƒß‹Nö7Çɳ;šÁ_Žñ7½…¨mpšábj2Æä¿\Ò m|pOÐx,¾¼½$(˜úf dä`çI¸zܯþYÅ€oÄøYäÛ4ÛU·úò5 jø[ˆ\¼Q¤ìctiƒ—ÕŸ«ü‹ ޶eTÆÓÿè6/µë§ÇÏx·E(’Í)*`‚}ÖÕ`NU—0-¬õù‚îgƒC_¤“pÿ”ÃláœlyN*Ê-ôRñçÄb,é?Åpñž endstream endobj 50 0 obj << /Type /Page /Contents 51 0 R /Resources 49 0 R /MediaBox [0 0 595.276 841.89] /Parent 52 0 R >> endobj 49 0 obj << /Font << /F20 48 0 R /F18 5 0 R /F15 6 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj [736.1 703.7 703.7 1055.5 1055.5 351.8 384.3 611.1 611.1 611.1 611.1 611.1 896.3 546.3 611.1 870.4 935.2 611.1 1077.8 1207.4 935.2 351.8 351.8 611.1 1000 611.1 1000 935.2 351.8 481.5 481.5 611.1 935.2 351.8 416.7 351.8 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 611.1 351.8 351.8 351.8 935.2 578.7 578.7 935.2 896.3 850.9 870.4 915.7 818.5 786.1 941.7 896.3 442.6 624.1 928.7 753.7 1090.7 896.3 935.2 818.5 935.2 883.3 675.9 870.4 896.3 896.3 1220.4 896.3 896.3 740.7 351.8 611.1 351.8 611.1 351.8 351.8 611.1 675.9 546.3 675.9 546.3 384.3 611.1 675.9 351.8 384.3 643.5 351.8 1000 675.9 611.1 675.9 643.5 481.5 488 481.5 675.9 643.5 870.4 643.5 643.5 546.3] endobj 54 0 obj [1000] endobj 55 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 56 0 obj [766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] endobj 57 0 obj [894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.5 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9] endobj 58 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 59 0 obj [333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2] endobj 60 0 obj [342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7] endobj 61 0 obj << /Length1 1330 /Length2 8289 /Length3 0 /Length 9086 /Filter /FlateDecode >> stream xÚ­™eT›[·¶ÑâÞ⊻K±B°"Á¡¸œâîîVœâ^\ ÅŠ/îÅÝŠ·ðeï}ÞÝž÷üýFòã¹Öºçœ÷šk­gŒŒÐQ«¨³I˜CMÁ2P{6.v.!€$¨ÍÅ àbçä¢ÓÑI:M\ P{)°€ëÕ+n€ Øöû ññ qò£Ó$¡NK+£$Ó_"€„Ø bfb™¸Xí`9ÌLlêP3ØÅƒ ak Pû+ v;¹ÍÙѹ¸æ3€)ØbÎñ—'9{ (@àŸasW‡ÿL¹œa¦ŒÛdÀLšCím=æ` t%(¬æåÿ‡­ÿN.ãjk«db÷Wú¿;õæMì ¶ÿ£€Ú9¸º€ ¨9ØÉþ¿¥oÁÿ˜BmÿO9[ˆ™„½¥-ÀùÏÄYòl®q1³X˜Ø:ƒÿÛ›ÿ·Xãþ6À¡ £ --Ïò?{ú÷¤Š ÄÞEÃÃáß´©ÿf®ß ëŽä@Ö^.˜öùÏ“Á“¶7ƒšCì-Ü|ü''tØéÀ‹ ±7¿€ßÁs°ÛC]`!XK|P'ô¿6”ŸÀ!ñ×Ð?Äàþ¦WéI€À!ó›xr¿ §ø›`qÊÿ’ L©þ/Á·ɿÄ##;Øi2uñ_ ,Þì_ââ„6ÿ¹à¶h޶ñ·€Àañ[+oqû#â¯i¨«Ó0‰åÈ à°úa‚ü°Øü°Øþ0ëv¿¶éö¿+ÃBí!öà?æakþ‹¼°`èÿš†YuøaÆþ°Í3æü;ù_vÿQ&w†¢ß°^ý‹•øÎÀܺ¸Cÿ€výaþÜ#7Lþ;;/¬ž`§¢ÿï}¡ï¼Øx`›ÇÆ «ó xÅËïó¿”f®NN`{—¿ß6°kõ¶€À.!ül†¾0 5¶Nk -ó•.œ(Gf†Z6Ç+}ìžîÄšO€·-Vpd^­×¾¯È$ÀÞAÞ¡rÿIæÙá­:*sàŸ>ó¸ãf¼“éÙJ¦}‘ òØvxytˆÓÞôíǼòÔêHY²NQöÙÀa¾ £”Æ.Ê25Üg=·†ÏYÁüÚ2™¶ša!õô<Ôj¸éŽeá¼a+î¸É‰H+ãA¾Öa¨-,KçÐWüûBÔ¼¤G#¸;³gQQΤás.X‹Çd¯}Zר^ñõ„næìVæ6•5Ž8ªÉº·u×Y~ÊH¾so½Ö§Ùlk ¼ß”Zª é6 ŒŸý¢u7óéq„˜­v3#íÂüj' üÛ7yh0&8³~€<^HX9šð¤&_ådZ‡¨ÚÝ6×0ª9µ ¹ÞãdÕ!|¶±ýåõêëÂá)§oÛ.É&èV‹¥OÍI~b80å±îY¹•g•ÝÒ·£’Çû{¹ùü|ÆKö(FdÚ‰ó¥1qõ¾\ô#H¦k {nJ ÝÇkIž¸<¸XžÈˆx@*µÛ¸E1»Ð)’]Â`tØj­ÈÎ×5å&Õ ìÐI´sjwQ+÷5¸µzHa·g±I'öe¿hWT~(úG%ƶ=¶%rÉm€ÐÐZ¢;Z;°û¦q`Ã4{ß“V/66±õ¥J:Ê{ÍB_%jæþ&Þ܂«’bJ§_ _§s¢úB?Ñ[T꾊f»`|Æ<ž;¬¥õ ýE·|Æ‘€ø¼óø);m”Ô0LRI hÂê¢"ì=*NìÖúõé ¸Cý­Þ×î£o•£n¯°¿Gsð¸ÌΨú<öäµ}Ïø¢}} AŸÔ½)š‰^w€ó1rçÏa¼+,›oA¿B_ÝíMÐêɈ‚óÎYéKO˜p]ÝR{Ϲ¤æ´ä¬«LÊäzKh*C2“.ÐùFm|qòªBTǶ¨LA½Ö2ò¸ùuŠ<÷H¡ìœ¶dýZ`;”áh,{Üœïuå 7÷…jU VÅ´Ÿègº®Ž×-ubÉ¢ÞQ6¦@6'f@±÷ë—ÇßM=Ü­Û^ðRwøí?A×krEÁ˜xwF‘«ONDb™FÌõ׬@_½exlbsÊÊxkó»jÔgÔ¼%çhZÔïµe»ç9°CÍðÌÖñ×°æ3(ûçÑ þ ï ¥Ï™”»*Þ®UMËüPõ~¢*Å)k¶_ã†B'è>< ÙGó,ÌjãÙúkM”Þåñu­ßòÌ'àܪò$OE™ÊÅ|å MŠÁWU‰çsis£(Þ_&«VˆH ©>òâ«'ÆÖßžD °É¦FºU9$‘ÁøÍ‘mó—Ì2>w‘!ßôl8±Ý êã>.ëd , ?“]Ù5!§ðh¼%«Ý†s/ñ²ßðd2¾~“w¼Süóó­­gñ=K¬ÊxYIûµÏC–îýkÊDŽ´'KáËÕ&b5êU ûmýÓíÛ Ru»My½²’Tu0%a9ÚÐЄȬ˛Ɉ{Ó»‚KgbÄ×WN'ã ®±tL_F Öɱ"ç7^¨X!ÔVŒoƒEj?°|H¸RQÿÜ?Å -Ôq\|¯è·%HãY8Ír;»QYx‹ˆˆ¯‰Oþ“îàøA—:[UyhKm|@·ù@y\–×€Ú6¸ä[P"=-¢«àºÈe±Â§Œk…° Ùœ•„~‚Bg=x9.êÿùÁ÷y ï™ß6_&dÔ*ÝPêýÏ(RB²n»fÿ-éŠÎÕìÏö/àΉdKoñIƒ %Íjhå K¨²ªEš(<_²soMS\ë…,ÎB"¤<<·‰ë¸Åæý$6æøî-sØÙvÍ g‚8q“&ߨ)ÄÊý²“×Ï)ýÁçpoôDætuŒ°ä“š´TQ§Ô#W¤›•Þçs'òÆí2ì¿©Zuøöèà1;HUKÉ ÃʺÚËÍî”QË%Z`nà[A%1#$oµÔ˜¬¿‚(´–oÔ ±ŠÄ´Xç<ßq·óÛ¬1J~Â?ëO·3W }@A¨—/Æ4oMæµRŒ>¥‘žªaÛ`°8Ré!»V¹'šþ8gã÷VÂõûóà¶®C–•~NN;V‡ ÚäpôjO®–œŽ4êš"ýªR=ÙK–e¡„ö·ØH%!atßN¦ŸB0ôÓF —¦êüòêZ!|™sÑOo¶<*ÛÊ•›¯K«F0D=>UÛÞŽwkŠÁ¢’ÕÈ0d9?l-RÊN¥ P$Æ%ðkëeIúˆ*'¾ß}pV‰_«tÀU”Õor„á1¼ò¶é¾ù~®g¾MˆÌ£¡ æQâù·-\c«4^Jºæ@ ˆ°M½<_öž¡×óE£«ˆ;x¡Äªý®-¹è´üƒÒ1*qBÖwFø\]vF$h÷:áÉÉQÏ$ºƒýü«v)[wöGzFàÉͯ¨-úÔ—ˆäUüü©Í/Šy……¾¡ Ï*õDoRçâËÕOá’n¥}'n1±ÄÄ’—­è’Î'$†Ö I÷•ï»e}}ò7‹A,¯ó~hEà‡ß©Û&$4Ú)÷Oòræhâk¹£Ï¨Äñvå.§™&”B ÞiϪcù&•ƒ× ˆ¡XgŒà·ßK¶5°_´¬›óÀ 1ÿö«,ŸK‚µa ž¸·¨«ØõP…\¶vœ¤ƒ›s4Šfà +¦¨Nõ¯fœ­@íTÅÅÄJGVÝÒ¡²ÂÇœ†Î¸Ê]Wñu¼²#V×S‚°·zQIµò°†ŠýòŠFSùJÒsÙþ#Æ@&9­äg8VqºF- kŠÁØÛÅÖo¼ýé;ëbS×£è½k˜éÛågÞ¢Gé§–‘¤¡äæÚ1yÇìî‘>pÎJCPñ)–_(¤ão(w.O²þ„NŠQQd¬¼–¬7 Ù¯´¶ Xh]Ò·eœþB2X~¸ÿ2€r¸eì&ÀP'Bì}ŽgKþ2ö7ÏŰ€ŠþQ»K½‰†×ï¦ã“sÞÆŽ~„ë0`ÿj :Æèd{Lò‹Û*AI2@‚"ÒͼPåÚ>4ÁÍ/ùe?̧ÝIìù0Pøãnôˆ¹.?š‡NPVl»ßd·|‚Ò¶õü «Êr‘ý“7nF¸3Ú+‡Ïâó ï{ÕÔ{äÙÊßÖҾ>ÎÙ=Aô~Ãðbš9yhsšÖ¡¸Š'^8 x´?IaÌd•LKdŸi€ÈÙ‹ì4«xj”ù‚oŽ®?m™4ˆ&wx²(É2¯Î[4ÕÕHå`³WñÓ(!Vu†ã¯Ìs¿¾ªŸ(Õà¿Ã|ÙU¶c=:,,Ÿ}•Éi˜ï_”–R äÃÔœ½‘CèÝûý@¤¯§ªúÈÑo’ظ$—ÄÚ°U0¬{‰&“hX‡þ¢âH,¥Òòq¿ 8ö0%æÛë9B¢Ÿòd5(n­Ë΄6ÆQœLÌRiqÿøzIâ<×cá’‘Äåñ˶¬–`¯ºÁ%ù²¬àa¶C鿀à¡VÁ‚eC™‘Á7µô1ß™õÃp‘uöÅ˧µ’­¨åu Zª½44M0G"mÕóJ¨/6²z†ðÄ%ß}Ò“µ­¼£_Š,c³‹'wq ÜD^XQŒN©ËºëÞiZ2Ä÷ýœ[Ø×uÔôÃ+¹aÎyY÷†ë+hh”¢%Є~_MåO–;òMŸcÌëð™#QDzÝŽo! 8C<û@¤àS«L¨‘l93b#Š4™<µoåࡤOßo€Ódµ+QUc7l„ª®¾ì|†<úëazƒÞ𜵄)h¹#Õëâ6àþdµà]oEbšÔq´Œ},‚ÂY4u.¹3ÕÑuœ±q±àýà 3 ¤ñ¹†UàÇQ”ðè%Ù”Ú®É9â›/¥õ¼”a­Rå /ÀÂÙÅØâ¯×]¤¿˜‰*ݪßo?qS®%¼øLóÃ6¡‘ÖK¤[¿„þJ·;… gÉ×€~2‰o͘)å–7].*ª÷îGþQ)HNSÆ÷£ ®å(“Û¾˜ã¹1ótþé²’wëËFµ˜—®îçsú¹Œ¸-ùPŸfŽ9¶ùhn°Ãà“èŒ!’âÇk‡…©´«G h¦JS·1áRŽÏíOIüs½ûÆŸhIŠX­Û~¥¿7¾É“áI& BeD`dÐ=ã}—ÛðeZ¶NåÆˆ{çd¡*½ Þ…é*iZÿ캪K‰W!ÿ~š6ü;ØhÕóN£ˆªI‹åì³æô¹KiâÛª-¢[t¥ï¾¢‰Í"/¤ˆßSÓ¢K‘x`¬,·$ì¡(ç;ê)<§’Ò ‘ÉQã[}~4ÙeI6B¢ŠSv g·Š“úZì×øfpæ’×w¤¾„¤/fóÑ2Ì…Z?2^ÆÝåßf AÊ*4F m"@;; Ö&ê#ŒÂö^/§Éº½À…ÄÍ­´>WKdc3/Î3woàGpÐØ„žEJ®çCõæù>CæýR`T”P ^AGì‹h¾ÑE­˜þéР.ð(J¹~G÷ÒŽü•œaÖySöÕE¸iNÞÿB¼yF¯ò=Z"/–’¸“ªè…êT%èS:uÞÒdf›–„cä´#Êý®Æc ‰F‹¸ðU^Z%jë' ~ã¶Ë·K¶-î¯}Â1à7Þ!¬ vË}Ñoâ 6¥T¹f—´‘/˜tõàM,KÀ‰¨§\¬‰þê?PXÂ'V?–W¥Ýz_½-hálŠfn0ˆ¼58örj?Þ™ìå¾ ±Ó4ÚºXÁSpb»aoÙ .&m![¯!¡á#3ö>µ½1öùep5*cÊoq¯ö"ÔWN«–€Â²y£-y.î‰G»ê¥»Jöº¬ûF"÷ŸRË¥5ÈÓÆ}+¼æœ‡åËx+Ï¿OÎ)ï«ÌÎJd¿`º«…\ø¥3¥á­Wµ‘>D Ö”Û‘Ød/_ËiL¡ ½õ\®Ö[×—Ø¡ âNQLö Àæô‹è? 3<4¬!óÄ\¿êŠ+.Ëçý6ŠŽOq -ÀXÕ\¬ÛÛûùà³®É|Ÿ UŠ5)ÿ+ð+šøhØŸ¥Oäi½ûÛÑúÅÌZWméάÀ5攟îÍ«Öô$ÒLjÙm/^Õ‡ÊÌæÞñ7Ñ×G’TæÏ— D”ù¦«¼ÔIR½I•µ=2!š3!׉€}ŒÙåF4ÕEJ:e8­_£RôKùI”8Ï:šA?~BùGªBô™®ñ[¾ -nÊtŠŒD2Æë—ÛÄ<­÷£ÁÙÄgfŽËåXšLÈ€Ë<\7Äuˆ¬¤Œ^kɆ¸S4$£‰We¢† Ïnß×:,˜%ÄK2C¶6ЄÖY'ìõÉ(pÑ´‰Ðº«û‰ô­,!ÃΆ¤Ýœ«7gÔé&––“‹ÒI¾Á–B™!­9¸¥•É-Wž¢*™É;sÃÔv¹ÍÇo¬&x4?ˆË[b=çh¯#^šª¹Àe‚ÒT< 5JרµZ6/e‹ke¿{D4ž$¢ ÒEHì%N’¾Ô^±TÌ-[›7:ù…DˆJ¾Åí¶ÒaÁ"†³ï)ÛŠ‹e¤¢öíËA¶¯Ú•æú“¥s+‘׺¶Ü“Ô)îä‡ /¹ü>àÛ ¢S]æÔŽ]5“vD5±wgÍ Ôîæ‚Ûò¬l Ü¡sTüBß<Êa?ƒÐáè@=ï·2eLË~R¼õ_Y‡Ê_ÙàÝS¬H­Âƒp!þÅnqïIì—ù²t ý¾Óí:8+;ósê¶Ìúö®lOÙ∼êp‹™Â§ÜºU—jÏéÙ¡+ZÞGØ´}×E´ƒÄŒ¼fQ)û1f܆¾w{¤`‡¸³C>Q<"#>¾QÖ=%äD;{ÚÅ ”¤AÏŽ‰}šÁhý~1¢i{»ÜpæeBs†XG6 ë[x:mGê¬Ï3ë« ‚‰\çõ$žÊ·êÈ%%¦5¼úÇH}HvNúËÇ]ˆ¨ ­wG‰r”®e†S—ÆpÛ-´mògxQ–Ü$Q¸&±ŒÎðÒ·¶wFøò|D@ßdQ1þ/Äx‹­5-’Ôîb啸ãSú1õ„D­8?;dÂZ£Ž½¶ï™ö®¸â&êÃÛ¢öJæÚíÒÕ†_æ{¨½8bˆü£W)4rG?-¼ÊóêÅÁéï‹›l³S¬Jsp‚?ÇŸ¬3ÔGºË8Mùò’W´xq2âIx\BZû*w˜Ë{½•å\JÕˆ‡YÜÁÍí0¡u£ô'#ÿ»Ã]Â=Ý8¦_ iI>rpó7N¯r çnjؘEr´÷¢ãc ë-±e¯rFjdXú²G‰ŸÂvknŽ¿Ž“ïJìŠ Öµ·W²É8¼ü"¥óñãùðèèêHr—¢lü zèætd…ÿY]Šßºd!çÏ «;¦³+µö‰Ç¬ášsÁYÉx[PªA´Ã²Ç4óÈrf"Óe¥]†êgÅË8<ì³#ºáöy¨)¹£Ã”U×Ñø…ó‚Ë‘xÌ} È#S­¢‡B€R%ÃÞ¯è¢Ôy" ?e5Ýr‰pädŠ˜½_¼7?„«ÅS‡G8Ü©[ñ\b­RE"GÜ}»­CßY}ÔD>2]VB:”«ˆ8Ÿ§™ïáf^¸D∘p„ÕMð‹ŽÖ2;b¸SKÈy‹À ­ûXº‹Ÿçs‰íÞ†Ap'K$Â}_Ùg»g;RŒºë€Ž²ŸA𶢘À4.•ˆí@ÞüˆÐfòQMh’ä]¼¤ˆ¢=¸Â•œ•J•af i%œi€T›ä~f+M¡+3e9kÖXXö7_Ü ¼[=ƒi¤Ê>½¹›Œ´}GlhVt–"U^ ©Ht<òê…F+’¢•§ìbÃI–!™´¦9=¬d²ÀFh|m+] ì\e”8:Hˇ¥ŸªËƒ‚γùúì ÌM[p™O1 ¯ &»çªÆ*ê1üŠ^v'~p”b³›Ûgî{¢þ1©jùo\£éËä<­¿òIuˆ¤c¤¡¸•ß‘òÄŽnìÿðìÑ&âo¨Ÿþäw²X>#‰¥!äöÕ8æ½Þ'$ŸêAÂͶRŸ.Ò¥mŒÅþeЦ³P¦k‡!{Î1¥Jã¥0ˆ”=Ožî’³…{YîYy.cå™0NÛZ‡gDS‰œ|Ú(k=KŽ@ÂÌΙ hÊå™{À­A‡ßp'aë·ù$qy*êÃáNŽL¶¯EH¬ca+ïy–,m4\ý !Ò‡¢©õU™<ƒ7@›Pןˆ‘Ïž¬%I~à¥}<ñ#iO¢ÀóaˆjÂëjTöŠ6s/%c,"9LÍÈcü!_D·–t§‹5gÓ‡“ZI[ ˆl?†¬QÊ‚º{&ÅDJ·G“÷¤Ý1¼þÁU•ùºl)~Ÿ)•ADþ{•½tÉ; åŸðýiY޳äj98†4 3ímÂÆ=nÚ©‚bf²ìûûÝpŠ´œüÀ(~QŠ5•€ÅhíT0›ºJ¤9æm‰Cá(œ¼4î¡Ü,a±õ³ÓN‘h zÕý޳ˆ£œ*=UÒy‹[p¼jq ó¦(Q7p™ËÜ*\ßÍ7 —/1”óÊI²¤léNÚ.RÇO˜Ê ‰Ýsï÷¿yi A:Ž€Ñ3Ëw”ø”§o/i¶6FÞtíÅ~_Bbó¼€çÊã?œ;{ùTømÇúχ—©Ñ¾H-B9­ËƒÃØñž6£ÐY¾±zFêº[j&´co…Ãoý ³“Aùà*Îoá@`œ©æ:•†Ç‡›[÷áÐ[m?¤Ê/¤EŒ!-yµd‹d½”R™Jºà]­Ê“ÛÉ‹„M¢tÄ*§j:®^È/£_Tõbìë«• HÓŽ»²{Ên1©bnYŒUÞ^cº&­mR•R —Ì~R½g"¢ÂJ «„j_Ì•ÑNœà—U¦W뾺-UJz7?ØÑü‚Ó„¿Ð&cö§šÊOžH¾ÛNוÔg#±~x“)Ñ0¾/z&mJØÝ˜h~¨ŒÊ€0I8ó˜I;v¢LA?Û:>Ž˜ðКÈÕº:KÔDgzPW=L£ø@™!!‚`¼Á¯Ù×Z c f–WÒg5@ IØQ€Vtà?´Z¯ÁžBb¦Mz9µ$BC×LÁ4Cª×™?KeÅ©m¯ó…u¾”fñÎgn–ÜsÜÓ ›=·ÛRü*MU¼”–2§™øÊQUø “ç¹ÿDb |Ê’(¸•A-éÜ’eǘ‰º$+Tº*|ÔGbíí3눙ìƒG¬Ïît[$¬Üн%[¿/Ê–ýþ¬0‡F²O;‚ŠûÔôµä)¾&êý®°«Ôüq\;Zta™ ÷èžfE*¯ûæ´ÝùòMÞÕ®š"á›kçBÁ!ÍAt^q 5;„z­T7ÌÉÒ´E4âKmýpk¡PrßøÐfWYŸ†åt‰Q2×"DŸå•ö2¸Ú»Ïm5ÝHç¶>›.óúxU’>:##™˜Ä×ï¬K ŠÃ/ˆôWI“}©–nsdŽ ¹e7½˜9]_Œëžï„ÿ€ýnåÛTušÜ¦Á^içèj¸›?)CŽG©ð¶æ¡n·„>$3Q<§V}£Š7­-‡M¢i"±7ÇâZ‚Û‹+Q ¹´ð%i¼Ë&”Oj‘XÆ _Å¿“–,_\“È“ç-–¦{[±m% ·vË>43ŠŠ"WâÙü^YǪéV¹è´™…»¢­qßëo´¿Àsk."ÙöŠ*L®÷®,àÀ²4Úñ’•èmOœqÈ*Z·o¿È´×P*o^šöo_¢?ygxu«¬ò’’¨;VÌžÞ½ómóÏúŽZjmê6åù¡Xëv>éž.7M$SM˜ ö•®¼\m|ªTXŸE5"} ‰ý‘y`­™d@o '…B©:Æ`¯ègãixõ,Š'Þ‚ÚŒ8\¦r6qá~õdÏ×ÕXθºÐ­¼—<án»oÃÚ¨- ¿Â{¿g%P6Œ¬«W˜®ÀD\6 z²hrD€[_E>`C±ŽØPÔ-÷¢ºÁÀvÁÍ!ì+èà<—~/×ê¹Ãûá‘é= 4-'t[æUÆ(Çg‰Ý·jJ?¤1{»ùQèzư‡æíø±BØñs‚èbhl#1'ªBRI«]ÞnŸ ŠsuiÏ&^ú-æ‡5P/É™˜RÇHT· Ž"?Oë€ÜŸ¢îk%@Š›pÉB‡ü.5ìâˆq¶_û6–ÏÔy+IûŸõ÷ÔÄú*”ÏofÅ0Ë_$X“E@°\‹\àÜèÍD $\öÓ]÷Qª,±‘;Žª¢¸ÓÈÝ̽E$Ä} $†Q܇òáèClÕC–§Zß¹ɘVt¡îþºu#hl y0×’$÷ëféÔþ#"Ù7š?­}Q¿Î·xìH ª b¹æ”EbÙÓÞ)Îâb_ŒèW;“^²ÙðúYY+ΦrðóÂàwPË_œè/ÎNGvä]'Ÿ;è` gíª1Œ=Mn±%¾ÞzÅÃ|ÝhGmCn3×¾ÝQ2)õüÖUOÁdC£•)%ý¶ãít¶C"¨ÿÜ™,Ë8„ Uà ¸ÞO2L]=3U.Ü3润Q_ZqP†Sa?)Ú·Z$%;¨Bp>ögÂëN ÅxäçŠ%sËO!ú¬à_¯†N[oÿ‰0Q|ÒS¨YÔ³’7à 9ŸÈ/Zr€ØcRæã¶Ë–šÅ³c Y#Á¦b‹Emº+ %ïw lþ­ rÆõäžç‚OÑ·~ |ªž$ª³Ÿ±¼çLæ˜èR2½:B±dxúj®$å2ÿú#èc@åá¶a©#&>:ö§¤åñ*âv‘[b¥hçþ›}«äP$-¶ä1)ÈàQ¹— ¾#³ºà éá™é ±T+ _r¶=¦–²eo’Á·ÿS³\ endstream endobj 62 0 obj << /Type /FontDescriptor /FontName /KYKEEJ+CMBX10 /Flags 4 /FontBBox [-301 -250 1164 946] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet (/A/B/E/F/I/L/O/S/a/ampersand/c/d/e/eight/f/five/four/g/h/i/k/l/m/n/nine/o/one/p/r/s/seven/six/t/three/two/u/w/x/zero) /FontFile 61 0 R >> endobj 63 0 obj << /Length1 1443 /Length2 7951 /Length3 0 /Length 8799 /Filter /FlateDecode >> stream xÚ­—e\›Û²‡q·"Å!ŠCîPÜ)î Ü §-Nq§¸)îR )R¼8ÅýfïsÏnï9_ï/_òÌÌšùϬµÞ7yN÷R‹ã…Ä,q†q€8AÂiU)}7ÄÉ…õü¹4l³ƒ8˘ÃÀÂðÂÝÀÍñ óð óñb=HC\¼¡v6¶0³4Ë_A€N`¨¥¹3@Õf v‚ç°4whA,íÀ0oNÀ GG€æ_+Üš`70Ôlʼn¬ì,a °3ð/EŠÎÖ€À¿ÌVî.ÿvy€¡npQf¸H\¢ÄÙÑ`¶ÆªAàµÀp%ÿ¢þ3¹œ»££š¹Ó_éÿžÒùÍì½ÿ7âäâCª+0Ôù?CõÀÿ'qü¯2Š0sG;ËÎ6Ž`׿Lvnrv^`«—v0K[€µ¹£øo;ØÙê?%ÀÇö· ¢’¡’ÛÿîçßΗævÎ0mo—Òþý7ƒ~3|:P;/€'ÿüû›É“u¶„XÙ9Ã?À 5÷Æ‚Ÿ 8ñ|A;g+°ìW ät†ÀàKð‘ø¬!P¬¿¶“Ÿ|ñ—é_ÄJý&Pú7 €2¿I”ý‡¸@¹ßÄïü7Ásªü&xNÕßÏ¢þ ³¼üMÜ æo‚çÔúM¼ ö??W@óˆ®ÓÜÉ~>Íá;óO Üjñ›àu-ÿ!¼°ÕÁ¿óÁ+ÃèhîôG\›õ?Ȱ¶óø½„ï/7ÄúÇxˆÍ×oûòÂ÷ÀÖÛÅìüGÜf÷Â[tøáÝ8þðvþP‚·óG*ø¥B~ƒÇBœÁ¸áb]~»á»Ÿäy€àjÿè—æö»×¿ìñ‡v>x¸üôþ^Ï ûí†ËÙBÁŒ ®æ ùc¼[÷?Þ­ÇïÀó7„Àûï[(%ñòå€ï7¼,Ä#àãòÿ?–îP(Øö÷~—ÿÍÖvð›{-±æg!–"¡ö©oJdó'ËPY¥lšâÕê>mÇ™{‡èX4¬ìʺ\«SžN„·…ºEëyGéÕæ§1&wìÿ~æaËÃl+ݧ…RÿWºª÷¦Ë³Ë=üOÓgû|ˆêSË#¥I}YÇý{^2Ëho£§Cè2ò¨ïÊåЗKwÔ «eä¡Ó$xïZÁ¾äI”€²4`ŽÑ̶xis'¼ÉÇÈM|x…l5¦kv©|˜â»nx?zIXdRµîž«šfWygaô6däø+&cšé”fœVÕá²P5]`x­ŽAÎ[&©$€kÕÚ^@§ƒP_Í8Ñ´”×fkf¨vA3š?Ke«,ÿØá#r°Zÿ/®µð‡ÄH¶‡WÍœÁÂð¨Ä£6ÿv6Lö¾²>0Æ-¾oÇ^®°:Âú3Á³— 3›o8—æöG’ç¥Bú°øÅl â]et ŽE×Í0eŸD9|®+“M$Pƒ?Ëúc”ä¯0¿¨üòå¾h<­PŒ“å§¼^¥­Öa:_õÆå µQgdˆ#sSë˜0èëEEns€¬óû¾IÖ•×0MHလ®õÂÅrUŽŸóÁ –9Õ9LÔⰥѴ'y)(Å=»’<Ô*õûÂβO0¤ðsVæb­q7±3¾å•@ÓÚ@ÙÖß‚ ([t×Ѥ?d$¦Pl¸æpa?è[Ï.˜ö™’R0|mB?Ê>(/`õ3c°† 6ØøWE壜åW˜‰èϨ¦·¯^çæ1–ëûŠû«ù­ã}mÚÃåâë#Ž-™¿áUà%¾/Yÿží(Ÿ-~˜þ$W;pãU%Å—ÌŸü«q T@`ñ'g‰™#hUGzŠ;•+È“8víƒ?AvÜ7Þ§µí×ÁcÇ‘xœÐFW"¾°@z?÷mšÄ™ŽÏ–8ßÕ’¡<û˜×¤›Ã.¢‰¡$ïñÜB%úͳVIå…(Ù6‰9öòÂZÞ~5µšªl Þ’gq ÕÈ“]º(yýügEœ×ÇGîYï}¦ŠÊ°~!µ¢KúF³Ã±h[Ÿ{l%§`iáx|êžÒã(Fn뇣¿,Nd€D37»½Uy-*×.|£yS6¡ øóoû˜P»èô]ÑßÎ,Wm"ÉK '`pxíaSž /¶Þ9’™a0a@ }œ°?¨-Á••6IàåäJöžüe¢÷)E²]LÍ—Þñ‹ë–Þ ­ãü‰·(Ì%`F†„‡ï£­/7¯Xõ“¶\¢çY¼˜ô{÷_reE?¢°Ì0%iÎzý~]§5g¢™ê•ë‘ìâZê¾'&0µß‰½Æ·B$dXŒËw*N‘Ä`¨hUY®ØDÃM¦bD¹Á´‹ÃdcãÕ§³o¿èÓ¡p·^dT…Uw||Ô^³šóhÁ—gßµ|L!ª[4Qr×T2o–€JòÌÕèpÜt˜®çë`&MÒÚyÉ`œÄM·G­;$¨_¾;g²ÉÏ”ûâ°ÉÿŠPÂÀæÎ$Ÿÿ¸R_d~fÉËòâàg±+Ø“ÿöévS™9Gù9Ð[ Ò"÷ ùzÙ/$¶ý²ù¦û)IYUs„ÒíTmñé„) RŽì^ ,c§ð°‹n41ŽMî~Ó»,½Å(ôõ¤ ºfO•Øëêyjk½žYÐ&ÏÄǰλV‚înÓiþ?½XlTìd’ŸŸ+…f×ô­{èÎW„®° ä ž»ˆH>ÆÜÐò–~íY´Êäò]#*ßne·êh ö YgÆïÒ7(«‘ÒÝ<ñâÖè6™á_¸ S^›Øæyë{N#5>ƒ¡)X}‚ÉŸdûhK½ Ø¢åÜ_l¦ˆµ‹¢rjœHµì¹œ“ .rhD&æŸÝœ_é×½J²wSšÖtÝ Ãý`9¼h«émAMä¾o|ÕXPôlsû¡â2ˆT¥¼ÐIõ @Rô(r=£SO—c Óè¦ßÌæý‰ñÎA¤o¹ÐlLñ>],–¯a™>Ý‘6Nl9l’Úröñ·l]äyÔºÂõ¹vª{Fžvc~ZºÞ:Z1±%½ù)ÃÒ?&*œ*àÃVÒR«s‡ON‡²‰“$_ÎÖ·>LfçXµfðŒŽ þRri±N`ÉÊùœUõ‡[þ­7gR…–a“3ólæ¾AvÚKýž9„Å#žç½Qeå&iƼb’²4[`ïÆUÏ­½ëŽþª…´ª‹S·ñxwê_$˯ù_â0ïhŒ×!Ú [Œ5Sjûµ¬×q_mÖ¾9¾–€E›x—]˜ ¨Û e^™tÕ•@Öjµªê6Ì^(º4Õt€O°éÖ*vÁíÃÕJÄ?Ø||ïy?Ô]â^¼Vz.Î*üKJ,,@ðžúx€õ*,Vΰ‚/åùdŽ/íƒ#«Ÿ«_ÁuÞ+^ižcµ² )%°}CõàÖÿØŽØ(øõåÏ‹]ˆ–‚jLß™€O®nÅ<•©ìšâm§sÄU1õZ=Dhè¤@+ƒÿó‹Fc<ª…¨³i½â×EÃaÑ=s{%¹½F¡!èIb"\íz]œ5~¹nP^Šo>Ö«T¬$?°îL1ñ‰K nO6:É—„ßDØå*³£NÊ·Åt^ÆéJ½Åþ2]EïÈÛóë™ÇúΕsb_Ôóf…[©²Í0uôj¶øMË j£×Î0‰{J² wHbÅî˜Ôž<†a0s'ÿZ='2T•@çlxwOÅ©hý­ »Í›þhì§‚ô²V¸b!6¥]B"­›Ëê`ËôÆt‰áÝVç˜8¹†CfýÈQ®h1¿ 5dRk¨57¦¡®*¼~Z«DêÖ˜ ˜ÇFeFØ"· :¡c}2A#îWPÁ« p$&šýPg:i¾>¬pm)Rè]ÿj¼Žä7¯b!òP=°.x±Í½^si¢³0æ‡JxkÌØJ­ 4-7Dó–.­eÜ~P¤e¯D×ø,XHónm×zËÛb~¹RZdvtfŸûqQ@!º:(nï®ëåc˜ê©˜Ò~Q“ÿ6»^ÏšªAaó07Sd¼*óS}’¸ÇVŽôfú©µuF¥ ¢î~¬A-¦À޵˜§‚Š—ã‹!”)QqñˆÚNà2ù@L.Τ51AÂq̉ëý?1s.ùžÁ÷fN,cÈ“ úÑÐ/§×=–‹CJŽô™:ÐŒ‡îåDkbr²Ñým;¥²47Yh3†hsÈÃR,¬[#’Ï#U$[˜Ôv8Ä'µñÔwÏ)NÈ·¢DRF~ŠI 0ôŠ8Šz„îá‰DL©Sà9Ó<|}VMÒºj@¾·é—ðš–³ÀbGA+Á¡ºÙ'JŸÛHêîöÄš¹¤` ]¿Àëí"Ÿ木(ámÊ[ ìŸØ<ÃŒ(¬,K6MTq·ƒø3LšGxÕ)Fì'â¢Í˜¡"¹ò[9šØ¨žnû¥¼~Ƽe!¥Œ¥qY§ˆ%~*f_¡ò˜éݰ©!È¿=y[ò³a¾=ô¶Zâ¡ïý»„±k üß'—ÎÝÛ„w£§žÌ‹»Æè˜˜ß¯ƒ¢ñSìõÄ(‹1dulm>³«B±øš÷‰cè1¦Ö†H&;½¼G2&÷säa+ïÓ÷æ7B"C$D$ä=(a<šìÙ³?7=2¼Á3ÂÃYêLU2%ªÞ‚”1³Y` Åëå&ïç/ ÃZÎT5snØQÓM¢±RjýµÑý8 »¥Í’C¶‘cD=4Žòo;®§›bó‰: ž™ró÷/¶oPxµuŠíjŽÍ™3e%)ˆå\åËòƒ‘£ñÊ.ÈïF?Ä€ÆÖÒ^’¡¯¡ÎòU<—€Öîîâ‹êØO†mîøÖJV¾jÓ@а¦Gù†ˆñ%mg™úu–'Ý3Y1&2º Þ¤Ï fÜ7â‚[áÏDmr–*ÁmæÃ|‰d{¤³¢‚u”²ÏGä²´"Lò ˆ“ÊšE\´µ\q…±º¥£±$¯{+c¥ äïU),]”åG3ƒ")Åìuññ!ŽaH(«É 1„Ì*þ$*yL$Ê:uªTñ„i€,µñÔLò{iež)=¦›•AùhTÝ2±Ž+yÌ Ã?¯äIÛ’[¯Ý1åŒÏˆbÂÔ=R¹/=ƒü†oØÈJüp¹Ê1å|¬¼¯hìqôOcÐDÃ-K9ì `ŸõSRÛg¦_X;A¾8†+ñ«ŸÑ?çÞ‚ͽë™&?1©18´èÝeX÷ÄéÙnS›S¤“èÎ 7ËÐ÷w¡Ÿm‚ôB0ëªÒÜŠ+FŽ1G.ý~° Oˆgdÿ ör|-èöʪ†îi{ßà´ƒ Ãáy‘û]“cµ¬ð½Ø­„Ã@ºÏD¨½·RÙý¡{£Àú¯ꩳ{¤gËjô4Û¤ä+î¡ Mdu˜£Ek*Ó¹ÆÕl½Èdù,°ýD™©®Ç’ER]ê;d™‰Á1Ü3ÇÊlöBA R‡¶o–eõ ·$Z^ÇV,æð‘^8j¨ûÂ>Çfÿɺi7nTîÿQñšeÈ4We9­¶ÓÑYámÑ@ü\#ký¤˜œ»ëüMÒ/ñ§lÅ7ùÁÕžfb¿ºmb˜9Ôr9ûèq7=o*€«$ZäGæ•=zb"v›ŸVSãL:ýn¡KCç97Ø%¯P“,t1'™…ê>ô²V º°äkwNPÔÈ^*;ô¢Ì³ 13æ•«æÙöû “»QÊ©V.ÒŒœ›­1í8·7§«DTsÁ“²5I͆c¹o§h–¹héæ‘ëå÷¾Í¶ê}çî1Òôc‰Æç@PH[¼{Z¦ê\!î$öÂieïµU1‡…G6¤Ã4|¥«Xû$éÅþ“Ô_Ds@ç»Õï«ÊÁ9Š£¦16ˆ¶6$çz1ïL¾n0Íþt‹Ê@VºÜøLµ¬л ­èGÖp8,öéM¹¼¥ªëðÙXâ禟Wi=¦˜»(Ç|t.ÖrÙ–?ÀG«H*@ësü9ÆBÊ‹åû­>ÅöqU°©‡µMreA­KΟ(挆v€¶¨gs0>QÒcð!ëá5ÌÖ‹°Ppe¿ÀÉí)ëÝM™‡ C뺥•Ô‚Bûwòæ-K}´°!~¾o¯–^eW}cï‹é»ög¢v6 tFãSUáÎ)KV¢å?–ÙŠ PË]8Uht…N‘UBuçÊ+‡1‡K¸èö‹5û‰‰Ò3~»2=_Çó(÷ x4Ù¼’ø‚5žš7øäÝ¡@Ë—õM…Ÿ8ùt=³í‰®œ{Gù¢±æŸò›¸]Šù¶WGʼöwž8 —Oø@“½l©4_l„AôˆµE×z©‘Ý¿ëújGT}Dz¾e½}tÖ«: 5âh7û¾ŸqVçókêÑig‘êŃ“•¾z|0‡>¯K»_?š.‰Vˆ©”D®±o" zi v}F™ø¶¡WxþÂGr éG,¸®3j˜ù*ú“•?ͤ‹3—ˆ ùÂ:±¾¹½T—“5ÇMv6#iJº“ý3²U†ÔœŸ Ë8/OWUeDŠÄF0 CLºcû»§* KÐß%ï‚’µ‹ý÷„u‡žóØsÕKü@àõC°¡d<:8Lh“&ÞC²Øté ©ùŒöžìcÇs磙ê Sòz/—’5*(àIÄuÌ7tÉp®g Å€5ñÝÛ’ÔL;=œ\T´¾øié’ÅeŒ{´“Ubºýˆº³Á!¡¼`BÝ9ؼ2(bšá¶öuDû““>W‚íìÜý`5Q “zWÞ4ð B[or­x÷â 9s#çGËŠ½eÜ……3ýz^eWýeC{Ñ·õÄ6×Óÿýã¾y¤uÌX¢!‘ÂRa屜*÷Zn¼‘ÇÛù ª¤sjŽA=$ï—Ü{4m¿øyi`Þ› Hsl¹H<|„SØ/D¹r¢æ<|ÃkÕ™ÅIZ¼­¸ê³ÃÖÒÊ0n7è}WDû´®³X[Q_îIݲGO?Æz}·‹pHéH9à÷Dƒ€;¨äyã¹LJÿñŽN#r‚7”åÔ ¹(bQuÍ#+”Iê;ê+)Ø'Á.î:;í¯ƒÿ¾OøêI½å†Å×Z½¾'l­-µ¾ëœ€–fß° ËòòOêÙP“"\ïn·u‘3PD^?Ú㘗Š  ‘E%Ùv¢ P”KñãÔÞg[%¾Åÿ…âà ¬ÜcDÊ_[9Ø :ý80úÉšO·#ŠÐ'ŸiÎ øÉm0Žt ?°m°cØ 8–jçãÞ–O~5à]â®´e$f'~¬ÃnÓV m—…ù²Ý¡XWGX -ý˜Š"2UdKEÅP™lHÖ{äM0¹ñ3k¢Ô`²#θÁíÈ"ù45•#ÎJ =¸Í¯Gº]€ñ hòu!A‰¥Õ&çv„#3$:©kÕW‰CÁfiYè'â˜-b]å6Quꤷ [¼IæM‘Á°[I¢¨BUi–Xü DÆî>õÙv¨ÁñdùÇ (¸3`aà2“ÚØ"6Õ„ŽÄî®?îØÕ x$ØLõ\¸ƒ±Œ»'À”Y¶Á>OeôÚ$âË_¦f©ëJ¨êf‹¨ÙÁš"¯â®„©µÃèLÙ•à‡e)œä-ü.mg¯ñÂç“óø¢ –¿<-áC ñ”¢è–PµxKžÊxÇ»}Ô@«ˆìðhó3ÝöÛUz\œ³¦›óTM½2Åz'½b—¬hš™FÂKòNfe!å¹;GžIêqÆè»<â]Kz.7‘Ñ›.ª/Ìi¶¹C…‘™óÝhø° ÔblÐËjþë6Uí œåEÖNµJs„wª Áú;ñNó)µ’jëšXzý»3¼må³Êå\ýmè†×Éó››$¢Bä"‰ßÚÊŽ„2tzy?€§—6HÓ}ŒäY,8ö£©Z±ð!$ÅÝóv}ÂéÈZW¿ÞTóÌϬþ¸@.µx=Õe*3_`AQþ¨= l¡`¿³:·LyðŽŠÈ)f'y“sðløPVF+¥ëªÂPÜH²³M°3‹MAèfýìšíÕ5j­Q",Ï (ÄÈLykÉš‰.!zçÌ|à2ž=KÐÒó¸!¹¦s&>‹z¥æè4ï²TRE‡nô{r­„ã¤HÈSȶy9» £zneà2ÊG4ÈymŸˆ´R3 –+èSûm}¿"š!h„ɸäMx_›©_$ݿ̬ª¢‹šh“‹“—Ï)³@ÌÄfEüäHE’€x2…n<ßc§ Å_h2_ 6W¶FåÀ¾U‹¿ççæ(Eâx¤ëÙ+þ-W µ-/Ú½5—Lls±“ÏjOhƒJ<Æyøs‰ú¼«è—¤ÈÛ7cfX€C@½àÏàÐÿ*.µ endstream endobj 64 0 obj << /Type /FontDescriptor /FontName /IJZYJS+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/I/L/M/O/P/R/S/T/a/ampersand/b/c/d/e/exclam/f/five/four/g/h/hyphen/i/k/l/m/n/o/one/p/period/r/s/seven/six/t/three/two/u/v/w/x) /FontFile 63 0 R >> endobj 65 0 obj << /Length1 1898 /Length2 14538 /Length3 0 /Length 15570 /Filter /FlateDecode >> stream xÚ­–stäÏÖîcÛNǶmM8ÁLlÛ¶ídbÛ¶mÛÎÄÉ$ãæwÎ}ÏÌyï¿wu¯^ýÙµk?»žªou“)(Ñ Úè‰ÛX;Ò1Ñ3qDd™LôŒŒÂ0dd"öFzŽf6Ö¢zŽFÜ&..f€¸‘þç—Ï77+73 @ÄÆÖÍÞÌÄÔ@)BõO@ÈÊÈÞÌ@Ï «çhjdõYÃ@Ï dc`fäèF²´(þ3àhä`dïldHÃÄ043p虘YÃ0üÓ’”µ± €ãßaC'Ûÿr6²wøl @ù¯6©ŸMÚX[º Œaäl>ÕŒ>{ùÿÑÖÿ..îdi)§gõOùŒú†õ¬Ì,Ýþo‚•­“£‘=@ÖÆÐÈÞú§~7úwo²F†fNVÿ{TÊQÏÒÌ@ÈÚÄÒÀøï™ƒ¸™«‘¡‚™£)ÀXÏÒÁè_q#kÃÿÝħsÿjA]RVNYæß{ú¯1=3kGe7ÛÿTý'ù_Ìô‡?ݱ7sh0~ÚËô™øùúŸoZÿKKÌÚÀÆÐÌÚÀÌÆг·×sƒù<=ŸÄð`˜Y¹Œ\?f ·¶qüœøôÄ `lcóφ²³„þ ý›Ø ˆÀ ò‡8 ¢ˆ À öâ`0ˆÿ!&ƒÄb0Hþ!ƒÔúT—þCŸê2èS]ö}ªËý¡Ouùÿ秺ÂúÔSüCŸzJˆÀ ü‡>ÕUþЧú·?ô©þý}ª«þ¡Ouµÿ×§ºúúœ§÷Ç¥O==Ç?ƒŸeôÿÐgƒÿÛç˜åçCõ?VÖ"VVÊ11~jþ…ŸFý©ð¹€é? Ÿ^ÿÁÏtã¿õ4ûÃÿ$ÿA6–ÐùO}¦–ÆÿI·q²ÿKí3Áä/ü¬oúg5Ÿf›ºÙšYÿ•ñûKŸñsæá§•á§A–á§{V-íÓ™?•Ù>§Z›YÿÕû?k·ùÓÌçd›ÿþ\ŒíŸáÏb¶zöFÖ–FÆÜdeú¿Qûÿ2™åSËÖÈÞÀÈú¯TöÅÌlþÚ¬ì³û3ë³;'›ÏÛé¿wìŸMùËR¦O‡þ,ës’ƒ‘•ÙŸ¶rŒœÿ2–í³ˆÃçýñŸv>[t°Ôs0ý«ðg‡dÙ>—æhjoô×aú´ÀÑÅæ¯ Ÿ5œþÂÏÝpþ ?;sùë$}Îvý ?Ë»ý…Ÿf»ÿiî³’»‘ý¿¥þß{TXØÆÕƒŽù³ÃÏÆ.;—×e8Ùî‹ã¿~¦>¯ãÿac³ÏËÛÈÈÕÈfuÉÆ€'ÐüGSp©·XþL85°°Is¬\}Ï|'lÀJ°eј´õVêsy*Âø¡Ë+®Cx‡ç×Iñ+?»Ø”Å÷#gÝ£4÷V\Õ_i²n‡¶ÄgˆíM wçlÀòs[㥉jƒ™×Cg¹ ”¢ÊÇD@½Î ½éìªâi–*!Auä,DŠH)v¥¡¬!›.H‰ñ`›ÓÞæ!P-4ë76N(ÏùP9 ïšè1È„,Š{ÔhŠÇç%!Hˆµ#Õ‚é%{Àø”â˜T@jpu¦;Ž˜Îì5æ”X¨¬ómk‡*Ñ»ÖVÑ ŽiÁ—•BÆëø|›Š(Š'(÷÷S@ò#W^‡t‚éŽï•'b‚cnÔ7M*up"øVsLõÁ´ô4w&„» !ob[Ä'Á4-!¯"³}¤gsaªWoy}XÄ!^…“,̬FéEL{‚hÁ›]áh7úêMu…ùHEdÙ×9YeÏn2”Md0ƒ-AÅâJ¥&¡`ѤñÒçèÜõßOß™FЉúÌsàLqKÀCßœÊç~³HÞ# þ"–÷eíÜà/{6Ày> qsÿE¾cÓÜÃ"³áÁ¼Ùà¥nGD;Ŀ׆Ê\Ç+)ÂóI|˜£Àå„:ÜZª\\ù“cÃ^ûSl­$Sm`‚ôiD ÆkÓêpSeÊ&ìû¨NS(Ië“hÛD4£'ÒÉ¢ñìRAWIãaÿ…ok'"5ãmF¬r wOˆ@DkîÇ=Ž—ha„Ao$Æ@çÖz1—[%^_ò®¶ð}5÷»´©eVŽjS>cuj;„‹@Ü’æFõq Vê¶+CßN/Œ˜>@YçdG¶ßVàQ?50iÑ&úpEP"÷3-Xàj.ƒ^o8O´ŒL¦{ÐÇcàø×{fo§ëÅ£¼HD× –y+{=ª »ãxDÚÂþ2(‘mDNÚoY¹{únËíYgEfs‹·‹¾”޲š:èêÚÕƒ2ƒ.ÍJ4•²ÌÁ%LD3o¨ðq›²}anò•™])ÓQ‡1øˆQDa×ÚΓrVJ»ôÓ¤’è„YVè¼jïÞUùv²RX"!V<µì¶d4¨tÅø¾ö ¬/:q!)áòÆC'Ý((¥²X:?AZÄHÍ*ëH~nùf‰®»áã‰WïuÑ+ù×'G¶:Óܺsê›sjé€.eÄÖ¦dÕ¤Z^"à¹ßnbGþ†úQ/™ÝœÝ/|ªnÒ †ÅâÅìÝRZuBiJpO‘W¶B`ê×o¶Ú“]=½M<†á¹8œ‹šÛómDà¶¡Û~w©EJ³W¶È¢Ó:êXýq©qÙ‰;<¼sa•Io™X•ÝÜFûˆ"—}Ycpª…´ÍÉŠ:–¶œ^£q­éq%–Z¤R{V÷rhS×ï?`rÍ”¡ÓÝwôÐññ=ž~w¸Ž¼Êä#ÆM#ÃÉ·æ½iÑáJØ'W~•ñÑí »¥-åREý" ¶åbj„ôðd+y üœ£€Cv¤šò G,ÀãqèJۛ쿵uƒfîm3÷SR)˜]Z/PŸcœÝOÚã\ÉÙꢟUÕÖEu}µyÎר»Ö"uiFaà:ìÅP˜ Áœ}Àùç&ôMØo.éj¥N:WJ–DÔð¹÷°”«mj6¯ù7¨¼iÉoV’ˆ»x'Ô¼X&¿*képŽz7µ×X/ƒ×džª•Ç”ŠE§Ö„£n ×ýÀMËH~æsx!K1°iW-?ÙsñðØl"Q*nÆ1yíÖ UóÝ|¡)ëžÝ©ˆÎÏ÷·bH„/5”·ÍŽB µEc“mMª˜÷N)Cè+A*:çp1£ýåMy¬/žåu ù½”±uUÖýfAC)†°-u[Û]-µ.•本a#ê.˜bžÆÛ )&8iuÁšÛA•}˨u‹Ä¡Õ¡NUøDvÌ…¡ÖÔ™Mˆ‚|Xû kG»;‰|Îq<’ZóÛ4O§¹¯'hØÀÕ“@µïÜ›N4ÿ7þ´`w‡§N˜—:Gøû½>*N¢CÕ9#ïÁ$ª.·#¼vŠ,Ã|p¾ZvÏ`­£V= þNëIU„µ|B¬ÍýæüRmð©z°`Ç23°×1 ðØ(Šæ•ÛúËœXgæ¹Õ§š¨.·² ‡G¿$´Ÿð¯5/Iß;¦8“O&Ñr@ÒIÍšÞ$˜&?VªuޏSW:H_ámÓ—,ê5E-nìoø{™.©JÁ_×) –Ô”IÛgXÂäÀ@YnGÆg¥†•ºml!@-r©îñð0]Ö´-Ô‹´àaÞ/õåÛ3µ^ OÝë8£ÙœŸ#Þ'‰ÍªkÔ½>ÌÖßübª’••c…Á×lUؘ)â«Í0Ð0¾=¹V ÖÓéNh Ÿ@‡mÄ8tœf}Á¢‰ËÓ? ~5ä~ö l"“óqa^…Ìþ¶Ü'²k:XçM××Ðá×Ë$ý~®›[-«äÑI3ožÈß°Íš‹Qu~’ç7 $?…JÅCy©y¤’8Î,usï=KÓ“ÑŸÏA0/êB\3"RÊZl&q8$ÊO A —/ÇKtÙÒ=þKãyžÀsfÉd5 kñÅ\¦Þº‚Ùjaââ„ø]3–ÛŸ½•Wõî^O‘ÈïМ¬”q1²Wa2F@!õ{¼¶©÷.¿ÒЙcŽê\*‘*-¤c¦O 8UD•}>Þ鋆…ýFý_ÚNÖBÖ6×oÏc´™5‚°<ÑeºJJÒy¡b^%®ã€;ÍX[˜§è¥uÐp¸ß°;‘@{ÙvnE´^U$# ÅÌJQšôÜòï´î*b9°„dž $NÀÑM”¶–¶V#öyÅÚZ‰‚MŽñŠÞжܢçwdµ —$4æ~‰ÑSeØ R ŸÙÉ7æ„2¦ãš`œd$@cG%üeà÷nYˆ%I)YËÖIt6HZwˆ”1$ÙÇÈERÓÞªí0ÿl”Q>þ%Ÿí—÷­”«"‰Sj FQù É]ˆŽôBï9NhH²&#ækclt~«¸ø,. |';ÍçµéëeÄ€&ŇôæÀï plÏ®l|Ë4ØX„½Ð¥–З´ÃÛ´”×{9Œã%Ýð¾òºƒÌÇ|\[=o]zgô{É«&&çBxTŽ&uüq…EÜÍs«# e±—$$X˜ÞøV}׽¥%)l'n0´31®ðZ•"7dg[ÞrV.ЬR;e¹ì³3Ï’DsË*2‘¼=6BøÃˆëe½6Ú@s˜fyKà³òÅüX÷-¾H‘Y˜&Çà¹^¨˜Ë%òø•M^T/ nŒÎw¿¸UûÁmTü©¾ÂhòðV7]¡ ÎéS»Lè ¿Ê Šþ¡ï`qÚ´+øFXæR/哘ú ±ÝüÚAÎ5¥ #WW–É4RÒÌèÑÙ€7ov~ëP25n¬Då*!¿NZ’ìff…às"Ö•CØ­ )ž!ùŸo °»$Õí«¾zpgW‘þ¹Š eÀx=Íœ&Z«~!ó„¿tQZáƒüF$ ”§bÛ «^Kæõ¢&Ê8®K"l[:~ånõ‘CÄ3¿¼mËÉò¶ùái8¯. ˆ¸ÖPìÃÈAûÆÏTë¡!áµ§Å*QúBןð]]xNB"MÒ%´?­”ÂfXt³ &Ú¤–ý˜Ûj–Æ„Çîu²|Ķ0ÂÒÂB™hR ‚O´M ñ~Ôwñ—O÷XnTÆW^ûU†ùèÌùî SMåØàƒO²$#'*éV.¼Åöù¼ ÍJV}S‹Rù¸v'PVCkßÑ­¢Óya°¿­÷ɦHºªª) v^õøúäôRP–ž}¥[T8N”tk÷Vÿ0×jã¢Yr‡Ñ`ÀÕ–‰ê¥BëõŽ-Un|µ‘Ù§fR5D]ú.Þ­³‹¤ò”ÂöÜŠÄXhe1:+7$áþ;„×úÌXüUÑ°à¾ÆÍ%“à2¥ŠÆðp'ÇJ®ïÍ&0)¡Ûµ*tš>z´JzÆø`\•ÓšßÂM±¨,½È/T[ytÑ­­äX‡$ì)æ÷Àx7†·¯„õgpïAp®q¹qƒÆ©êmˆÈY»â-.A˜×ý¡._±¤'M—È?¾„W€"×OgY PdÃ}%zöKfÇiÎe'iÕžïkC€æX3JŠvƒ‹"©K‡¤ˆ/G¢_)vÀÅ@ü¢“4Õ÷Nø¹»ò ò°^"çÛ6ëý$È…õ&N$ˆó)#¾“öPf”ÂÕ=b­ÉaêŽAWŽ5Ÿ…Ðp+s~=j¾ÚÎò<.²¤‰gé=„¸°“­¾¸Q”ˆ9?Ýš5\táØðhµÁêß—žb佚"fU€Õ±÷¬Rè„3&×òÉ;ÓÙ3-_– ²,¥$©pHÈ@|ô ÖPåŠÀ2IÑAÏ7Cßú4±¸"('C±ú,xuA–k$-n ƒÓþ V’fÚÝ3A:¨9ºYóÞ€û½©•]ãÛÈ·¬§1–¾ë],Œ£Öñâ‘äDj¿·}Û)j*D)¸k´^Eƒu‡ÔöEò(%Ç9š¿D¦¶¥Æ,ìBö ^” £üÛ·jªî?Ïáu÷Äž ¬Ë0eI’T]uÜ+£"ÈpÜF‚—b†"GV“õã‘W"‹3ìõª žoË.3ÞqÊîÜžØrÇaf]ÿ‹l¬4s(•^¯ µÔ¬ëªã“€b’pw ñí±Ÿ)žÄ ƒGøè¬ÍtMâ?Z†‚ÿYBÁ™¦[žËÂÜHW5•ÊŠÈf\ mÔߢ’dÓÖhwîe£A#¶·2Ãõ® JS@Ô™5Å~/ó;3Ý"‘L=›17Ǭôó‘hŒ/ŽÎR3õaªèc Á€¤Jk¶¥D¤œÿÅëUÓŒF;/Ž„—‰–}”h˜r 3ÎmÕŽ¡%€Äökµ˜¼ ðå’•%Ÿ}k]PŠ+*ÂEùÖÃÓˆÜ Dž¦}Pã´Æ¥â¬ÏGPk_¤PºµB†V .Ng ¦« ÿŒ‚×L fJq¼ò½8š¡¤ã²§¨—²ÕC´ïî•äŒgïZèØêIò¨|h‹šVÈĤ–‘r e¥jÉ=CÎWõ»—ŒãdJ‹s.Wæ°@Ý£TQó•7­6‰%ì¤\ž qÏ»aBhñ D5âB½ª“$‹‰aж¹ŠÊpg“U„XMÔ|zS6ØÓ ¿¯{ÊOÃfN£Na$\ ¾<‡km €}‰Úf;!rÊÉ„5FŸø@ÿhµÙ$e-ã7Ç/:5¿zÑ#s©§'Ãкåäø“ÙFÙ´w.Hß!DäõBƧFL]7ax¥Â–e úf'9±$¿õK‡¶­{Eä[ÎàF€™êÛ$>Èú瘡f†+—u‘ç§ü,QRæ!0cÚ͉SÇ]GyLB~X@®†Ã±ΞD8/!!|þ]Ê$ôøÂð®+À†ç'µoV@âžâBÁa¤v)·W185Ú¾. Ÿ‰Ã3Mãï,Ô,4]¶rë£ÐMM‘!º·zuºÇ%ÔŒœWWBÁ‡.È3¥I©UK~.à9î5=M8®;Ä ‚ÀPVôxz´Æ WlB/dþŠÑEÈbÞ‚[Ålç·¾ñœ5CH˼d^ã ºÙÝóLb MX®ùJó–ò„áØgìE4^È/Ì}ï¸w(Óýþ𑳕…TÂŒ–"”õ3¢§Ül$ÔEý™”æ/¡|ëÉcï²úx ‚½r|š©x’”¨éVÌlû@#Ùe‹L–TaáÛMPÅ̬5›~€ ¾ã8ˆ^ © ÖKbïj˜— ä£VÂóæe´¥ÈÚ¦™¢ö-»Ñr±+äa…¥éŽ6 u¢ÖÁi®¶ŒW8rS0ÅX¨Ñ)C-¯XÉ;>Ÿ†ý"+uAÀ,ؤ¶1œ½(<&ÿtÉe]úÐ _õæ2=ZþGÛ­ûA܈}Ùâ»Q¬ÅùK—eôoevT8JøÖ©›ftšºÚ8Yù›{Ì©†JƦ7=ÑQ˜+Î97ÇQúüƒFùÀyI/xÁ®¤lŠÉ±™ã]_sYƒwÿ_Ž£ò<ÊÍ>*,d úTÛÒ¯lps¾£¼ƒ½t0¢†N«2Mdg×(Í?ú×ÙµÀS³|§@"eF‚à íçÖQô³ÐŒ"‰´Î»3ÖExwù–5´Áù­ sj+ŠŸjøIáõ‹3+¤ä„“(p¬}›Ål ýÌvØÆáOÇMj õÎ˹ö4ñ–Y…5î!YÐì_Py®Cå&yÏ3¯(K, às"Â/ƒ¼]a]Ï:aOs-§V{Š«ËäÆd ÙÛ G®û½÷ÚT>U/0W]Á\æqôRî)3)ÍN¹yt–XŒä$¯‚Щb€ûhÆ=¶/#7UVk.êB¼ Œ SÕ­6Õì‡îMg§ç8þú=O§æ9jsëøËË}`uyaXØYzFÓŠ4£îlLˆÑy ’¬6n MèØõ{ûÈ´W.>>ÙC|ˆO‡‡Y»%BŠ Á£’õ¨"ÑZwa[ÅŽé:©7—¸ÂÓØæ"DfȽM½`¼F~¾I\|)¶.@üáC–‰164X±Ã²rÁAl/m*¡×µÛf3¥÷ qî¿C‹RÚ$P“´dÇjÅ îjœG}šNCS¦&QÂZ{ŒÂš•;]–£”bxÞÆËï–_X´Dрʎ¥ÍßGFµÐ º ÅÒáN9³Åñê×([cfRPNñf%c†>ÿ%UÆ6"‚ ïX{FHš!¼—˜åöÉwiìY1“(>€ô·f½;òÓµgÕrk†î=æµEM0Í_œwCsüÖNàSAéøzMÚª8ýd«™î[uœu5ÆêåxÞ·oE 8¸ ÙrT&+jMðcÂV ïÞª|¯ƒî`St#3 Í‚Äç,GçïhM_äÖu‡F¥ÕÈwç'ÁCMJ¶à•º„ ®¤ÍH(·X0ºã!“×»½jÌK¹üd·L©1$»Ëm•P~çN¹p¼¹l/æþþ/`E™ðc{¤B#ßähË VƒlBFâhkȘEg$‚—ß×ý’z„¹p–ÇjŸ‰VùGßðêÜ×̪Òo:–ø\‘™îÆ:¬°±nÑ%÷œE FG™Tòª¹ñÁzQÍŽÜ&ƒÆ¬­`ò†ÄjSÚú*;¯!¶²v&EJùv‹_´CêÛ‡$?øM»YЯ5ÖŒ1 çxÝY_)-(_Nˆã·èK°FÃX>ïšÍšÍˆ“ý†oT`ÛRiàÙËÈôí§Ó´×ï¹!³Å2 ¡2jà¯è\(üzíõéð|»8iñ5u «#ú}ÆÆ¸(¨.5†¬(TLEÀ }®ï©¯sŠd)eü´Ö;¤b7Í_Ê›÷™{ô,+&¤½¶… ¯·”—æ9ÃSC-–•Šh~“³’ʪ(r%§bG*O~‡­²——]ÈNDcTŒŒu–›×_â£-œbgÞ¡HòcبEÇŽ¨Jàö5í Î]æÍ Šܤ‚¦î•‹‘Â4«ÐKj"Ýĸ¤á¡ñ¦i¦É•Ú& ë»`D3Fó²îönå£\“>úƵ” ‰ä "êÅç·ºékC(iàû3úõÂJ.´t@|Š]gIz@#Óû[k"d܈ä‡Aí{¼¬ã„ÔsÍW†6®8î¾”tȾÞ[òüª„zOÑÇô æ$ öCÞg²¨C/Ó,Tmp§³EËF;-|€PxºsÀwA9N‡oÙù‹à%å]7åþ"µFžE·##ÀyY<öü:ñàHåš®+oËtÊXýë k—88ê¯s¨B$÷57¶1ÑR5š»³Þ.ÜÙ%=éÛßÂøC\ì“Ù·L«%‡ñgÁ,eÌús®¸•çI.ö¼IÂ`8þ…±‚Èäß’Ïöèç–¦†,“4MlXíËíP!1¨{çÚ£.-o„óªˆì~¯j×MYŸú{}ÌÙ)sÒ–-ê9Ìí³þ|+…< õk]½‹¡ZB3Z 'à.3þ©.p®ò¾º9>Ÿ(”ÒæyâÈßy1凜¨RFyóTº²eüõ1°°Ýé,ä¶26ÿT¼ê9g/ÕPg¦®_©ÈÁgVð ‡Ç7*ƒÈEä)ç5ÅýYy2"ÏV5Æ•aò$q¾H”£X¢,VNYÖ~|ñ.8"m|“(³Ç3>'îøc§ccß–ôË”]s’æ,ò©ºP¨4IK•¾9„Âpì+ë|ÐÁ:×Ä>f^ç*´Ëa/bùZ Hµ³fµýÚX@&^tIqTº}Ü 8Å~±ãœºŠóÄŤÜwâuÊt6`’Ó† ¨Ú£šqŽOtŠÇ¤°ÌܘÝÅ7~úÞÔÁ¼7w.‚´‘‚Õž ÏöÓ~„b®ôx«ù–Ùê%§ð=K¢B÷´l¶K‚裤¶¦yjy¡¥zÌ ’áz! #­ü¢‰+õ’Šçx?o¦B.P•Ë››öº=Ý%ñ ³â’-â<;?RƦÏ~ànˆa•†ÄQW­¨EkÕlo³•ÐÏóä!‰–¯¯Ñ?MܱÒy›‹ vcê[}òܽx(<°ˆ(‹g!çøx²#!—äϲ-Vhúœ¹½†Óo…½Mݘá¼þŠÐ¶ ŒcøJ•da QÂ[ õG÷ÑÔh SÖE_·ãÊÕt.æ`nòC òIoz@~["Lˆ[¨·È•xssÉ4 ãœç)Q‹¨¾–$àåœR«³^Ÿ[rÁ„ ´íäo4p¬ Õ¢ kZw¨L¢=ø3ÀZëîÞ '­ÞÏlšŸ[…8<²HåØo×fã1§ (['ª|t¬yÂÎ`ßsEÔÁÓœN|3~+ „’‚¨+d¿ŸÉç<<:Üs—nHÅ÷™boHýì‡Äuºdp)/Å&ø„dÎnU¸@òÏlÞ×0ðPé}­\Ì,ŠêíXÞh+\üñ²P*§Æ/Ì |×°žÄhÃV1žC–Gb”ç;‚…˜ò F}ªÝ±”`<‘˜"ƒòÆ*̇#y:ê6*˜QÙpkèÖŠþ¸‹™ú|è/—A™«•AÓ„áÿ%©:u¯»xsK¢É{ÿ³]‘€bâ5¨«„]ÀXî~>ˆ#Óò:.{QŸÌê Sè„N“s> |;6 X™µåyõm`Žz±¿OlÊ—^ÀF¬Ç;wf ðËT‰Ìgä‹W–/·:ÎrA%©V×V§ÕóÙôBæËU¦Öæ)ÜLiCÛ8)œ²Çµ¹lg“·®$0ªÊƒZ¨ú¼ç)$dzN±ŸcOq}F«w›m݆¼!›{ðNǶÅT|Âf*MiÉ0„àPÑ­Ys»1“SÙwû8)LeR48«ëÖ4yPåHâ¸ì2ý÷ªºÄç@›Ç~¥3&øZ_†N‘,¿ß@«T,óe«ˆ¨Qõb%Á›?á¼x„šÊØ mXëqé»ÕÌÖ”SÁMÚå J]žaÉÍÒ$–ÛKÝÃü‘ŸŒ€qQ†æ4ÜÎÿµÈeÐÝ8õ­…A]£BÃu*]ËYM¥JÛ išs ÊeÕ…gyØM?‡õéÈ !Á+ªsóê¡jj½VHd*ùeÃud¾i^•À^WZârRôеçiôÈ S¾xá7ëꑤÒbÔi°Þ×ÐÉaWÇVvØ ûèÜîbCØ5öà»IùCù¼šje‚ÂéÏá±9rÜÐøâ`âÍèX`óŽs‚[ï3XV"à®'qÃeý•–BâU”mƒößlœ7ÜÀO»{—WL{ЪžáÜô!ø” €æ©`H9’t©ä”JíV )såS|Û2a`ÒSÎ8ËYXÓáì„{¢^”›ñy²œ@Æx3þ;R—-:ãösÃ&Á´Ùž¾wƒ| ʉ£ª§\„º­»b NÕZá-xÖ¡jsK‘ó-„–f·n—‘ûØ›c]MÍ"+¥W©T‹)›à!,m.uú؈Ÿr}oA¢À¹ÑsjMÞÆÄgw{‚p0yÓ7£+ÈûÖþ°æW}·0&úKøf)*suÆ“FÙ‰îJ°µÐ’ë§^>ÈgÌU¯§’ˆ zçByæ}©øìFèPb˜_u…v?±ãó8¿8gz†`¢ßYÇws¡ÞÍ̃¡Û§—Ÿ#bÇ®G.M'(]KžÖ?haIÕ&°"É/®Šz¬–S’¦·ìšù°3ÜRuZMpÌÏJ"ôÇ ýH éV·,ÛJÞØÄ,m+•T2ß 1GÚ#Äi«»ˆ ÈlC €b\צÜm½PÛ÷ý!·jÜHˤXÈ.ƒ=¡·Pé×4zl…gpLëýQ-'óÍÐB'›&'™­¹ðp‡¾§ÒðàL®oŸÄ]íõíE¼†ŸJ>tÜ2ÛçëLÓTƒ—ûÕŽÿTÓÊ• yv:?WN?¬Ò¨ÙºÖm0æ°0â%ý°×ñM?õ<¢‘<²÷ÂÀ™OáVƒe»”´ºK†^[`¨Xdz7Ü!~@ËK‡#òõ§¾‘ºÛ»€ö Ë45+~JÄ|?»8›Nãé‹ÉÇiö“/ãèÑœ´•c<ÅZúRSúAôûAqOV"ÀihEó/ÔA_s »õê¹ [ë6˜hùYâªÞ•iÔ{‰“h$lïÆú¢Ó“êÅïÆÔøKvĬÏpLîftgdN<ó+HÍô·^ÏÊ Zç›^”÷Ú‡}Mçfk9ðrÅ’>Ͳdœg'8ÚÓò³ë&ƒ|Ï‘Ü !Éxégîðéëø„¸‚2ƒzbpNkÀŠÓÉ/úM‰ÔãÙÅü¤~Y­õJÜý»«½JWhF^ŒVè;µb¯“BËJk-Ê"›‘™¿{Æ>Œñ#¿b%—)n¶0¾¦DzY¸3ã7ê;=¤É_R 7þªå¢ )sT@ ö¤”“ðÄû62²)ä Fâðf{%È9ª‰äFù[~Ê'곫¨CÍRö|¢iäíÆî¶èÂìÑ˯™ úÇ 8vðQZö™Vر^¯=¹z‘-=…ø«ÂeH›`ö–¥ÐAÖÙïTÖšÁ„gBBpøµW¢FciÝ%TÆØô@í61€øÏÿl"ú°G‡ï‚L(!jeàä\^°Ò”7mÝæÆÌSI ò Jþõ¾ôÏJç?ú/Ù­õ–º¯_€¹ÜQ”Sг>@ ¡ôEr°Î×ý07R1¾¾ž™çˆjùЯ5ˆ(Nd« ,rPþÀ»ÇÙb7ÖHx¾h4ŠÞp•|Øä^*¥DO(™{¯·‚»ÚTÍ;ŒúÞ´™Z ‹èMé0€£ ªÙv†g€Ý‘à.'„Þd®ZZûÝ×7Ÿ ¿C.µ”~‚Æ6+™—Ò³ ˜Ñ€9$]>FˆHšcæ+£VÚlUø4OTw%fïp}]ïÔB…ùŽ÷8'Eo"ar*L= ˜ú)ßu˜w»NTxfFçoðsz^ÉGË`­BËiü 縊;Ð ¶5ó6Ÿ¡ÜÙEçx…Éå¥1·ûz©äcR0;:^Žÿk…‡¨ôþþ§ ‚9ŸÐ©®Iˆm’'D{/ÛŸkÞ¯ø¿\³æ]v˜_#Kq#¼,4Ìzƒœ+zÒä ç &¦º°Éf€õo»&ˆ¢ÕÓ}åMu:(¡S2á™T§r«Ñ8Ó¯ŒF†¼ï‘‚=›Wõ‘ˆ>Õ¼[ý9uJcOVʇX"°ÛjíE^˜¨I4|üý2Ì3ãþþ‚“eñë N´S1ªµ¯öF¸aÉöÓ¢Óâ9 ÙάÁoØÏ¬w¥dÊϾó!|Š,6OßòÞ ©zVÀLùv˼ÙÐd^†¾óì*_|ÉÂjÊ&zÿÆJ ¨Œ˜€÷ºM~Æhì ¸fuZòE-ƒ“Õtw>Ùþ@sµ€Ç†Iñì8ØžøV«Õb‡*FV¼×÷#Ó]q‚¸ÉÄÒ8EÆš5ûÆÿe ©‡Ù¸I¬™éPb\K¸Õ{~‡ ´OCú2i¯̳¸³<<½ŒºÙKŒ”i³Ú^´{%’Ù}¶`%žšÀZ¶1­™ù1†“;Ë|_Sƒ˜lGrzŠÈR4Ï¥O<¦•¿ƒôƒC(²2½??ó¾àiÁûHÏ£½ˆp¢ÜúÝѕժü7ЦÄ#ÉëðÎíýºÄò£¬*üCk¤—Z¹Æå•ÏìÆ÷‘3þx‘¥>Îõu#ÑÄQ%Tä{­;ÛGHXoÙÍÓôTÑ”ìÂÍö¦”þð glX¨ w»nÓ 3b8“oq¦S|Æþ?ÊèO‡e0×<¶åºNf"x~çPîË‹i61˜÷âµP,‡'¶P§A#„¦î®Q¦íÅÁÕKOPUg'šÜB:ób"TáöJ¹¬ª4&öTG|¼¥ÚRm~ÜýÆpñ&õÒ¬(hçßÔTïò‹ÉKSL§ýÃâ߾Й Ô»†›Ÿ½®HÝÔKK:âÔ–ÃÂo>nÚ_q耦…A¡TxÚ$‹LëÊÊʺ\ôÀ§,¼­Ï`ýáø5U;Mgð}sÖš–f å9Û­ÛæJ· žî—ÒFæñ¢•ÄòÈp†ÿom®±â€Íç·Q<q¦lëAäE¤§#ûçjpPAòÛÝŠŽié¢%7¾1^¶@âuNkRožÉ¾#íÖz¡„ýXÁ‰#AcD(÷wäþÔBfõÛ_¡ Ìf?JpÖ­õÜ_W$›@ÑOçbÄ­®–:Å™Çö 2vl=²£É:}óÙâ£ÛO;ÝpÏ–òÚÈ©/>L×u¾Ãù׈àÍœ‚ËI32°“²ühœrÁq$=ûª–b2"Âî‰ß-^87Qú`VÈ^*58cÊñ¯Ð½€\“AÀ®_J9øf#±Y¡²¦-bR¶¾Z,s£ù¿¬i"°üv¬ã„— üy öUŠÖRI(ËGéZÿòìÉudÔ„Éøèuˆ8¿ZG†½Dªñ«8Ÿ†„ éDQçz=«×~~”Û%òIÚ „}>±gƒ¡lL+ú×>ÀÃŽZ‰–³B"òÙéŽ@R?.Cmî"/¿ƒ1Ó b^!³‡Zmª½-/Æ–Ëm²Ü¼)…¨’‡m`·-­5:½ö¾ðhôž@jåöPz¦À:µ¯_’—ix°;F)¿€LyÚýÒcp–Ë葉ÅGL°£ÕËMYZíK Qrá•€Á—›¾y±‚]‡Ñ„æf¤qÜúapР+wdÇNµ+t8¸,æ¢„ß öô]5n-¦®éN¬ux5ÜzίãDøŒ?ïŸìí[ úKÙøFÝçµ÷>^;x»]æ;j&â‹ cÎho§2šgAÛЇWW€‡À¯UˆÞ ‘Q?XÄ%xW¬ÊŽ ¾óýpBÏE 2fóûâ9>©£$ÈèØ‡Ýš"±Ž~ çO¬ˆ.KE=ËæŽ_cõ üذã|Œm¦‰|J^]»ÛÂÇ]c; ð¦N8Wëgëú Ó´¸:Ú¤«‹‡ 2–ø›ÅüxÀ“ ñhR§3z§{¾›êÀ ŠìÖ&r÷P²ZW³F¥ÇSL\æÑšh$ÿëG Ä·‰–ÅúPY !£!Úû9{xž‰îžpž·;«¼v#Äjà´(ëfÄ SO)NŠyè`éšL¿ŒgÞUõ±ë7¾Xâr0%çÎ>„lúà‡V^ˆ•Ì. ÇA±ñÂæå±JüsEÙ´Â5¡ïâ®ì5j|˜¥ÎAr‘9ßê¼QØ`§¤zÐ"ìRŸÙ/ðå¾&EkÁö›L< ‰9G'µï8û¾ A*`_È ›”±7×YÓÍh¥»ëiÉLˆ ŽEî¸/††zj¢.òÕËj8!å –óž\àÉëÝì̵Àvº!F›âëÔ —Ý[ŽHÝ(R6þò¨sr oÝ_,¡•ÈÝÐÌrAŒgvë6ÐÄf5€!äÅK€™?€wX*Ë×!Ç*ò…ašÂ*F5âÄypÎ]+0mêÔˆ°,´r˜¥ ÕLÏIxÞN¶'_S‘˜½5¥¿<ØÆ˜…Pá¹1:Ã}?mÑÀ!–deID EP42ƒÙá×™z»ÅüЇC†àÞþ=zoÔߎì*dgŸ9 þÒ 2èªÌùŒ$7'õúd;cßé íû|p°ÇN¯yÏqm;~ᱸG žã4¨þ³?¶kŒ`Í¡[b‹E¡s¥ŽéóÇý‘G1´‡ÓäåÞ³# ¤Ô[K‘ÜøñíÊȇ>mhføÑmP'b3 ÙIY0Œ;í1Æðúú™™K ܭǤ=­«àžäTE /žÇÑ¢«/É&Êv,EäpǶs]BL’DítÌ¿fµ=ˆJôÜÎcèëR‚OµV?cô\UåL¸pípö}ÏÍìçÉ"vzŧëÝŒïëOº‹œLĘTæy†÷:caË73V\¶ïdÆŒÍB‰g¯?]ÁyÁã P;ZPDDw{š·t‘­Bº!îÙ `ì:Zi- %!2ÍVPßÍÄXˆhw'ÆÀŸžü ŸÝÊæ›t‘J]ÈbýQ¶Ø…š0e»³DhU”Urï'’ð\‹^  :|â¾ð ‘D°_ c¬6®Ú±B…³z|t ¼B=Œ®òpNýe‹>¾y{éj¦J^Ç- ”š>Ýë2W]11±ˆÔˆv¼á¼Ýð&&1=°\z(x_·öP”Au« ÚWf‡0T~ÃÎbCéIHcù¢î)Ó šŒT‰u~óa ·õx°ýdK·”4ÀUÎì¬\»áôÙ0/vT¢8%d÷IœÛ~]ƒ» È·VÌ‹KÞz`,Ï©Êí,é –gvêñÌ诖_p'tÚȆiQÖ;ý g11CEW2F^{ltªÞ§àªsj„óQ~Œd‹6‡Ã«‡Íä†J\C?pD£ÅUrÔäÁ±–µ“¥Óé5Èäcš,‡‹eŒzr#‡'á|xiqâð3<9©ÍVR’ôn[‚²Š¢Mû » sY£9ˆ çX%ºt¹»åQ{GÙÅõm/pBÕ­GœE€“jñ ¬¼ (f$ñC}¦N_l)ëÊAbf£¼Þ/§¦l! ¿ 1‹ÅÑñfHPzÆ’Ùë.j3SÍì¬&ÁÒ´óÈù•Ò!wž¨š¬`¶‹œ‚>Ÿšb‹ŸQZ¿õª‘|9K~–ü~{•U endstream endobj 66 0 obj << /Type /FontDescriptor /FontName /ZHMNTZ+CMR10 /Flags 4 /FontBBox [-251 -250 1009 969] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/a/at/b/c/colon/comma/d/e/eight/f/ff/ffi/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/q/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 65 0 R >> endobj 67 0 obj << /Length1 1830 /Length2 11852 /Length3 0 /Length 12860 /Filter /FlateDecode >> stream xÚ­·eXœÝ²µ‹kp wwww îи»w înÁ%\ƒ»»w‚;§ßµö^ÉÚßßsõŸ¾«jV9æÓ󹚜XI•^ØÔÞ(aoçBÏÌÀÌ•Wá030!“‹:\,ííÄŒ\€<fnnf€°«9€… ÀÌÁÃÊÍÃÄ‚@µwðt²4·pP‰RÿSÄ ¶:YšÙä\,€¶ &F6U{K ‹'@ØÆ òÏ g€ Ðèä4e@`f˜Zš¸Œæ–vŒÿè‘¶3³pþ;lêêð¿)7 “3H€ $’’hjogã 0š!0*؃fAJþÿõ›K¸ÚØ(ÙþÓäÑÿ“5²µ´ñüŸ¼½­ƒ« Ð oo t²û¿¥ÀK“šZºÚþ߬´‹‘¥‰°¹ Àô拾„¥ÐTÉÒÅÄ`fdã üWhgúE€lû—F5a QqÚæ¿RJF–v.jžÿiúOí¿˜ùƒ¼q²ôè01011ƒ AŸÿý¦÷F‰Û™Ø›ZÚv€‘““‘'è¹;À›`ig ô=@zìì]@K K|föNÿ&;€QøŸÐ¿‰À(ò‡8Œ¢ˆ À(ö‡¸Œâÿ!N&£Äb0Jþ!£Ôb0Jÿ!6£ÌM—ûC éò4]á¦+þ‡¸@Ó•þhžÊÍSýC yj´÷Ï4]ý¦kü!Ð<­ÿè)f4úC eÆTiòbåLìm@¿’ÿ°±ý±µý³ž™ $ßô/¹üã3( :>#[S{w»¿ª@»4ûƒ 5fá?IË?*XÿA·?MÙÿÉÛ»:ýÕTbþ‚TZüÑ òÉÂÓÁø÷|PÌò/™gõ‚²þ A6Øü… lÿÒÚâŸÎì ¥v–vÀ¿ò ÍÙÿZlÿ_iÐfþ¤AÍŒœ€v6@3—?Qæÿ‰þû2úO¤ÚtÙÿe?3È Ç?öƒš;ºÿ¹~ÿëXÙþIØ»Mmþ»)+÷ÿdþ;ÌÌ Zñ—ãÌ ÿìúºýå0;¨ÜtüG+Èg#g‹¿Z€äÿÀÚ£‹…ð¯cyáânÿ×P׿t,n!H¸û_ÏhµÇ_jïù‚Œñú#ÔÉ èôïQÿïU("bïáMjHÏÒÄ àdgòý¯BW'Ðù¸üë-ºPÿ—Í,A×/è4AX^°7á ¶Jm -û"^8UM.bÞ§Pß=Û´nS2"ëH³ñ]ó©"yzŸÈýß9²ÝGy\â"À1.mþmßÍp?ë_ó*CÞsÏä>襭qîæ”\qfc´,I«¨?ûrà$_‰JLív¬GÇ­¡'3˜ƒSS"ÃæsXÈw VbÔ4Dzp¶°uwÔ¤¨õÉ /VapÍ´«¿íÛ]ÑŸ áòßtoŽf„t°³æ9ôì&æ-lm,Œ¢¢¥hÙˆ¢ c3[Z_žª²§X)âÒìæø³8Ä›IæG¶ñ|²¿0®Í…Œæûâ½?ˆM~™ØÕíjô!É#`Sò˜‰}€ÿù¦Dþ„=ÖÑÝ÷ðeô c}ó+Û.ÔãÀ:ƒ(+¡óaf»ãAWx®q¢§à…öð:gÂ%ËŽ‡œC¼”è}9³ÆI5 —3¢—ì·S¿•0•ÇO·î·ë*¢_¿ù.óyÇ`)ƒû’bÀŸ¡ÊAÔT ,ŠžøL¸Zm~Ëñï´^³SÛí,-H»o¾º½™•ö ç~s‘ä7!|­6ÌâOµNÜl€ÍXóQ¸t†|ä‚[/»S¾Ã»Oþ !6Zü Í6 ŽïB“I­JÊÆ¥¯@ãÅg2>ðãTqjñ#ÌîERÕCW|1¼•¿m£Â°GYPê K"C›U–¬þ‘ê(Ÿ¹‰ì Uyb´ƒìJLß4»òØ-epgÔ­8ÄIYÍ\¦'©w–:3´R;ÓjT­]¥«žUÑ~øÅ¯¼ò:?ÀØ8â;~VcGÞu!šsx£…™F¾Ò„)ñ«žŠ¢ßÚ•üÖ \ævY¿µ*É/pZîàh/\·¼˜ Û ØÊßµ9;eö×±%|Åph¹ôÑôóäŠ"Ì }Æ2[ë Ò¬è"R­"ÞéºÒ?¯•¸³JP0ýÔáDøkS1S5¦|í|Ùi<# zLzƒ¼L Td`Ê[¬ÓnßÚˆHYÜýW:“"IÒÃÆF:¦³¥ØoòbD%XNÍÈ%¤ô  ²¦‰½5fÌ…l¯‰nט@pÀýˆ $:ù©¥1Iðø—xY ÖbpÀꃢvRÀvE¤=ÔenŸSoëµÚW‡—±€Ò×~àñ>àM<9ƒI(µü²»„‘PzýÏX÷L,WCL¯‹âTUÝÌ| Dµ{j¥¢ÁT?”uàâC™IKÄûÕ5i¶7÷¹ _O*«Ä{n¸¨N#ÇdbFìÑñ¸<œÇÒ :fu¯ˆÃ._ZE˜áåCÓ\BX¬nut÷ñ‰B£?fÔ8z‡ÑŸ·¡5÷]yí&J@ ey @’ÄØvD#|YfàfQcà®Á'ër„—×Újíq’­ÂVs^Œ\f M=qš©È©KÆá³ÂW®šAŠ`((Ê£´1`:ƱlY‹ÍZøPj}µ¦˜ì“.´ºõdz×A<ÈZ&”]ªR‹×ɶ2Ùþá÷ýkýeÚ3Ì˦¿Ã§Y^×û1ÛÉJMNû­è(õOô,*€_×1Óràò2ΡZ¡BU¬ÒJbÐÄÏ^qbˉñœ‚Ö9­Û$ô¦¨Î¶$u¿‹øI—¤%È7Ïd=džÈX3‘G~(§™F;ôJ™öT)L²ù "žïRL9=êûµÁªÚEn.ànTH<ɇ™áêþ¸XœØä›×Ž,ºm'Óün%ÒTúˆøT‡Ä³BR>ÖÎkY®gíå²qaÛ‹³™Uea{‘oГ ÔWS?¹Ø9ßÈ¿ýX`Òžd^˱êпŒ©¿¢YPªÈ~‚ž®õ¡NÈú€{|û3ÊNÂÄLdLºÛ6¼s%4SÓðj+‹ b+ËY—tïûˆw²+ùÚãê&þsIãSî¯é0;Àý›ÿ¤àˆ¶A™è7o‚c±/ôÍ®¡!ÏŽQ>=èöv0¹Ô9‚Xƒœo~rr|}'מ­„é¡çmeä0šŸŸo(²œQ\ƒ-+B§«¦Ö‹½[ØN|™ÄB`,$´GE‘¨³år‘¥ ïY_êÊgÖÀ.Ó­˜Î®“¥œŒl=•CØÿœßÌ[_Aq…Ù“8ª¹n8 ­’+8Ñü6üêªW§ð='‰XÖÿÆ ²É^$áHfA’[¹i#·ÞùþÑÊká;L´²Âìh­äœ¬·/6"YrõRu”SÎU7\9÷2hOå©,le{?è.‘Áùê`H©†¸HRí X(îoÅ]ÖHØtCC=[çf›‚ú½8çÜî´•QniЧësz}Û²)žÕ\¹bϪùwÒ©+;>÷úªÊrF2Fߦ°×/Ì9´¥aædÛbé3`ŸqÑtë3ªÞuDúÏRCøÛ€ÙwÞjVÁ•Ó+õô³Šá_"5Ÿ.Âû¬Ø.K(5”Á™(šêåéd˜S2¹QµŸ¼N!DZ]H®Nm3&Nðz-‹mvæ°˜µAtF߈êèjÑÏs½ |Ì–Pxx£>ŜؿÎgOiÈBCIó D˜Ùø;óœÓìgêÿÝB'hÝ Y¢ hü¬¡Æº’´&´üÍ_ó¹þN3i:_yTË åÇøâÁ¥J¸_L¿žËæ,5A8$}n~´ÒÌ#0 ^Ðc»_2Bh5 RUúe’—’3>Ž]{¶­0vîáJ¡qmÉ5ä`z—䮾ýX‡+K% P¥nüHä˦õŠ./jC9F¯N†6PäEýI‡ -è’aO'C<‹¾º“9º ¹€6Òð‹Ýƒlº”ž"_k­<ú']½Td_vx1¬'ļUtD­Ææ75“Hž4†97kÁºGú_UCŠùI‡êõA$«'O¡Þ<óÑ`0ï·è}Dqx8³Ïrªx9ß¿Q04a´/vŒ ÞÕ ì¸zÑšù¯Ë2–P̹ œtÊëçø­è|êaÁD?{y1 ™°Jƒ+É\—òœ¯Ã`ðy°û8ÑÛ­®ÀÉÎH;³-­“Ãó«¿·©§_ÉY±=Ð’Ùð4ÌÚ&{@1í²Ê>øË¢åÀ- €=cyÞû-:âÌ]xFpHæÍ™pQøOpgøš¿ŽË£îÇn.ÁÌgfã«:Ž!ªnÑuTÒvÝ,$C†= ¬ÛŽ®«Óã«—u¨4=ÚÖþÞæ:…ÇWVSŒÔßöS É~‡Ñr¾‡ìVŠTÜ<×Ó‹I¢­Ð-˜¤9ÉÿdO4§˜}†gžù5É[œ³ã re÷"OÿxAÁªÜˆ÷†&Uö½^^Þ¡ÍhfƒC‡#»ì‘ÉðˆÂ;׋w“ãæCèpµ„oÏG&©N› Zë/êéªÕ¿¹ês–„ÖÚ‘aôÇGÖ ÇÙ£ûñ=o|¥M/w$kâe»pçìGL†‡¨GÎh.;“ð`…Kyé²­6¨pÇKa5Q@™ìgXo<34ù…#hU¡5Ç l̇»éí…ß+þ"ç¾+¼œr”§Þgü%¸$ ÖÿÃÕž¨“AÝÄØœö6‡|@r6ÞÑè[[lrèÆX½–/=aö¹4çÖ×àFT™É¼Ô-kák¨ªÔyí>;õøºO- óÀóܰg¯ãP%é¹#‘×ðâ9Ϭ7•rÍfse¤`ô(ϳµ¤ä—HæyÚEƒ›~_M ‹rn¢µ¬¬/&û–¥Õô[U|jvDñÑÑ ä§•úa©ÀyÕUC°¤®@cm††˜F…óÍ›uD´¢ã@¶‘™×› ÍN6)T”@MWd„Ú6²6­Hhdÿþ æ5H ÆRfôã4–ÑÒ]öea˜ÝI×ý8Bd§Èý±É¿gïc¯F­¹M,îj°1ê¶k3”£hZ¥ÒhŸÚ–ÍE«×7•R‹«)«×]×9è´=%1ÅþáMºîÉ$8˜ sû&ÿ_ÐqbèÜ ?”ýë×ùŒBSiY4]1>j–ˆ•ã ùãà@ZÔF|«êV#oFß{㸜ˎjü4Ï“q‘¶™+Í»ãy>é~Òÿî‚sU fÄZõ“n;“CcJÍ…j±”¥^X»-:^U©ÂQxÉjáCšÜQGGñ­¥gø¨[:^ÙÒç4¢];ŽdRòç^ìñõql¶ ²ó½,ª@:º½äJZsù!MÓ‚ÔœYi·^UÁ Ÿ–ä΋ݘJÞ‚‹Í“î}µr%þ§¥v«•T°'¬j†~rÃÃ_o#üyÖ'\MKO…µ¥M>“â/ÆÔl>ž£þÆ <~°®gµ±âôÅüÔJh9Êÿ;X_ÏKPÓ+i…«Çše*ÐbJRRvŸ­Ë`–ÓbŸq|WlŠ“·£ÝHÌ–ʼ9_¡Ï{7W¡{—o­³*ˆ(7N–i2Fûs†u‰É,­¡3¦ÎOmFAæsÄÐ…— ³Ö›Î¾åe¿á‡¯uŸ£68™gêa*X¤Láózk½Tê¿L5ÔÓÞj®û»f0Tû ±u³sÐ!–ò’ìaˆkê 4"™œ¹zm1œµ¯?v:ì̧TÁFp‘>¿n·ÆPOùì)†.Û<‘nÖÄ!83bÿÅΗ¶¥– ÌÎѽÄHêh£Ë$NêUaz23ýÌm¼š˜0'MÝP<5yÑ7ÅÄè óÅVS‚üÈéâÛX'Œçò¡`@­uÓ—˜ì xD‡Ó JEc«ê5ì6Éê{¤©žº:¶òŽN‚xvÑÕqçN¼Ú‹™Ì°6D+È=þÚ´4ˆ^ÇÖ\¾ŸÁAZ‹&Bà×$pž‚¥±?„U«ƒ¡Sd ž£Yœr­><²–Ë­f»âÀG†F Íï{Ê–.ní»]ÕY°Ú_~ŠDwS Á«‘š°lz¹ C‚Û|ÕŸaž©Üo…&.€0n\Úí·ÜÝpà&Ü4®ÞȾ±¬hÿÊYX?õa:KµÃ{ Ú>¹}·õf‘<à3ííÆx»W½[oBñCoƒ ÏKd¬¡oT[ÚZ&9Ę¿rgóîˆe‹ç9eŽƒtË¿^I˜»Ùoðºø¶§d° Pæ9oi) Is×ÐêÜ¥C¯ “zhŠñîJ%§•ص•2p.>ë:Š×mqo+P¦I<¹Ô±Kð sÔߨصé­íë|IãéØ uy¬-ÕMcˆŒ–“A1ÊvÃjO?‘Ë8áèÌaÌG›^?ÿ Š4±•Ÿ+†·Á€þÔ³t‚ ô¹$Ò³B¨U2{Œ€ÙybO4•±õ~êƒPË~GB_Q 4a)ÏýŸ¬LßDÞŠ•W®$4‘zÆ"+v[…,ÚÏt{ ]9Gm–ùò|G¢©Ï2‚äªÆ ¾º­ÉŽHS¡ô¼J+v™`¬™‰U²æ«E‘•.z‹$—fõþœ9Dü2Ú¶qÝ6ûùIûõxbþÞËb·?‹9\ Ž] ‹ ªB(bü%ñ«[ÔäRµýã‡!¹Ü”€‘M dqg«²ô|»Î—æWw&¨:ƒ‚|MlÃ|£2”ûêŸ?URü±­ªÏƒxì øZeÊsqWbŒŽÊ%’4ÂCMñ¨vÑågz¿øÊ t /OX¶SŸ<›÷E× šà–]+ʵ’§†Ñ+ˆÒ÷SUÝ¢Z¶nÍïzF{²ÆØ¬lÑäÒöÞ¬‰”V>¬G ͨ<Ž•2XñÕ–gé"p,ÞP¥\/Má㎜?¾ìí xÞðøœ¸@±Äußç1´)£3ã\ÆÎKlìEÂÏ *ÃA.‘p‘Ãzáôö"¬±oçÄ…ŒÀöˆ÷:¦U•¹=ºÜèjR¡‡ÐÉlúr¾-÷%»V‹Þü¬@ºþöÕ†~Ül‘™uº2Öò{šAØg‹ïwà)§÷•«˜üDõsÓ{,¶<Ê†Ž“%–Y-;q¤6ë¹…Íå#^ä¼ö 5ÍÁâ©Ïbi´Wá‚ÝÏØÃpv4 ¬ „#ˆ’ûîg¸¸MiLcÅNœ­¤|' ¾«û•2@÷Өȫ>ñL[JöÉex¦}|V 5]ÊN•Ûø;"硎bŒá›6ážýÏåYžĨÚí¤ÂTühäIS~+ȑ٠ŠÀÉïV9nÒÚÐGk²Ü¬;ÞjØtê×´BÒ¹üƒ=õaéN‰[ýd3Må-d×QÙ•ç±&=Ò}´ ¥ÃGHu"*c÷—éYé>.ÑÙ:¸‚”žû¨Ã<ÓIƒÏò .ìö12iEÙèàbáýÒÇ c™&kà2VýEÌ¥²SÝi”Ÿ‰qýðÛG» ËŽ?J™Ãp*Фע©,¯7Ù¯Ô)ÞJ ¬×;Bíº¢É“#{QÚ<­uˆÑlG¹À1†–äÇ6]N~“΋Þm·æ7oI|ÎÁÚ³ñêYUAùF"r)=örM| ÞWßUñÛ“ %VŽèë ½Ž1ã'¢ˆ:v×B÷m;/<Îí±‘ý×ñwoÆ9µ§t1ï1æÂv±Áä+g}Ï|´ð1#[x¤–1«eCËuÒÚËU#ØÚÆ_Œ¬“¤2yÏ¿³Æì*T'މ°ZYLO˜ϣçCá3aƒà¨¾Hd–b[i뜬ceyHP(ÏP››~Œq§¼Pý-—q¨ý€ˆÐÂô6`”5é"“õl ¶Ýx©ËË”vÜœ= –!ëíz¦Ë8g ÓูÚÐZÓÜUª×q…ÿž¢ZZ$ÚÉå6âõZ@óô¿'¤'Žm˜w õz5M71¼ãâAª›–cÄBÇŒQ+ÒMÏ’²sðMHSËNSª%b¾‚¦ÓÎÝŸ •‘\Éy'ã‹™`¢T’ÏõꚀ•Ý(³Ü3á©t’Ú²ãy[i$ešE(Ü}Ö{n âѵ”ûþøsç¥nY1AÙOò”…²ÕÄà X!t6¿…Éjíài“VÄÀNëÜz%—“ôàfŸj®RèÿÚé ¹U,Ç9$Ýq8á×hOZÀœð‚l@¾º?èX'æv¤ë˜ŒœHzÆÒZȲAý™ÀLCýö³¿ÿÈÀAÝ!¹#ãŸØ2 4õóúèÈ!b*ÉáµNXÄ‹[®œ¯Õ6Ùž ®æÙÖmø~=ˆÎÒì²Ü‰˜#¨¼\¿+ÂD/à7·XzTj)Æ"znˆ»¨6Hø{qjUû¨Îü“KŸ[/Q$Äði©2x™ÞN¥ w!Påãb¯±+ÖZk­\N¤ÈËÕEð–í©‹}â4 ¾DEÖRð3b­žŸGÌL=f­ã)÷û)bm/}>iž“#K¥%¤¹<}2?BÖíü9Âç—&-Ö7i9p£ŸJ”^]ÞÎml…ü8’Þyï™Öß⠛РËÖà$ìï¢}’‚×úh*ö–¨¢¥ÑáLÑ^©¢?åž< •‚”ÀÈ¥;'ð’ü··z¹rþ¿|Ì]š¬Säk$¼hÅ=­*÷ŠWc†Ý)ýxÛ‘Ä™…õŽ•BcÒÈùü¤i/$×.nq¬—!e|±2W’MBÙ O' ÐâHÙ2ï‡ãÇWv–â!”Œ®ÓÞÀ»pÍ4cytQ5añæÜˆ4fM®¯KÜLÎzìÔ HâyBlÐx*ìG;5E°™>}/®#ôM=i*½ @…ú ðD¸<}î†#ß×¥OzõöMYÜc¨IdÖÒ w(|‘ë'«®þrX‘‹ ='Iü®JÍ…ö‚Y jñnpœVe9Rg™fçò툚³“?ÅÐ^'&0ß3 Ï9¡J„P@’ZˆbCŒW[îç=?ne[;žõ@ëKU™Ñ9æínÌ}u±Ø•Ô蚊Sì-v­Dèf±çƒ,op?Ë}àÌJ"aRuuÔv¾DXð IÑÑg‰V¸‡lDø#µ‘Y ¬ATA>6•Ïmí’,—öµÉQÚ‘¥Yî"iìÔ•y 2IÅ\႘š"·N:ø×‘Ò“o4;P\5‰á3?ùä»9¬²Ô !qÜB“Uà„Â3\.è³ý¹Ÿ’¶°]š2«~êïÇú¤ÓLµo¬Î”…†ñUé9f!îÊdW—?N¡­X¿»ý<¥µ ã­&>ybV*ý5nX'8 A;¶DG»Î'/Ðe¤ÈpšfnV6—à-ìþ^q59P)0Qôý÷1¥ZL™jÑ8ù¯Þàú® { ;€ºŸ0[)mê:Ú?Ÿ‰©­c]r¤ž­~:Æ!­Ù…Ïñ)<¨Qüî‚«ù½Œ^ék¹é.Šq¬#Â~4ý—ä¶•‘áŒàñ\ °\äœìÛ‚­êWÓZg”DvÆÍp)}“ 3-NP¤Û ÅP‡•DF\:LÛÇ_T¸Õ>·#]®Ú ¼ Þ#~ovÆ¡'´PÄþú¸BVF¯SQ2Á‘„/Bü Ópª9ÁGÆÊUh†ŒBЩ¾o°¯»<êâ®Ù<¾™9ó¤l4Wö>¦R·´dqKÇ·t·Ó:‰LûæÝýŒ¢ÇßÇf 6 å‹ç3xûûšMPcø}>T|¾•fÓÚ´žw=âÏŒˆ¹œ‘"æÌY-ðŒ›»½²Æ‘ç ~÷]™ jÔŸ¥^‡¬˜ê&f}o0¢ìi%Š þ VæR—»#Š÷–Ð5Õ!Æ3Ñ«Bô¶Á~ ÔЇ›òÑÎ ¾ þ˜ìsÌŸï$vƒôTµ!DÙ‚œ}ÍÖ²'ê ÙÐmÃsÆ™ùIå–ßJòGö Ih"0N“ pžàÌ~-;Šê©¼nià”,^ZÔ@™îúªL9’Ð}@C­’§™¥ ­ù¾ùÝæ‡F¯ýؘÕj#ñõ¡~ó æeÏö½‚î~8»”š8 %!—‘x6SúÕVŽÒ*•ƒq¿W²‚jcÍä$¿È€é4kV1ÝV'±õ&2‰òv#÷S鮕S¡%kð|<ÛØêÉf:CËnà¥MTø4ID˜nVMiì‰x•/çk1®}YÿØE¸Žú§Bbh ™þmäŒds ?éû (m¨ÃX|!,Ð߯DÓahX}ìýIe=›Û9)ëâ`ø;é’íÆ§â!¡oìXÂÿì>KŽ¥ñ¹¢£‹Ìॺ„¬c>×Ú7Gâ4jo¾šÝ[È -iå€â"ÈÉ ÂÅ‘°ø»m9Þƒehí§%ËjÉžËñdL* þS ÒÉ*&ã9G©3©q–Ò´ã;–ݽyq|%h ŽÉâ|0¾ï¿3/pÓ…á–r.‡gëÙ»ló÷TŒâœ½3™Œ››ÑÎ|M…µØÉ7S¬oËƒÉ ùÈ Sæz¼½MÝU±­ºÅ¤nº.?ôñWÅ«ïÄr :.Ü÷G~©Ølä=ƒ~[¢žÃë„jc ášM$©7)œÿ=SV·JX•:…/q8Êäu­4Naö9ªÎjÉNÞvÓ-¿]ú\aÂmíER• Øå,±šJr g^MÙª‰JŸw¤°Ã¯æÍ€1S<yz¿¹q”Ò›¯L ‡kwpãðät‹‚`F†ÃIoW<›¥á™ÜØ;#× ¼ ŸÚ,bŒÉ3Ö@§—øÅ­sóHˆï(ºf$™8fKÔ¬10Ä–#s*Ðö‰÷Jÿ &Æâï•åÑ™)§÷zOz³ÝÑ‹AìpO(Ù²Ÿwæt–2¬”ìâœÎDÁFíΔui±¢ÀƒÌ“#àÊ€ wµÏéÃjKu»D–òC9,õŽ"Õ/äcѰd|»;…œþ˜ßV_È:`Þµ)!xïÈ—aÛ·ÎqD°¬9¢Áð(n‡YžyÛ”EÜæ!Š©÷I 11]š÷Q¤8‰hù½‹=ªÎ›B Áû]þ80s&˜f´º.Ÿ2êhN*íF¹£ÊVF¥T+¡/=NGk°,ð ?eZ±ÔF8ž£X ŽëÈG÷°åó‘¶úû“zÑ¡lVßć~ ×k.òýDU•4 ø?nÜÐ( óžÑó!òšf•öÎk§Ÿó˜fºýœD:®Û=5“‚TÞ*…âQM¼Óë™ĺ`^#£"ƒ“f¼Ê30HU»ˆÉ ÉÔ9¢zN)å†å#4()òÀ{º>äâR¿TM,ùN /ÊtþÂpÏàf죆‹ÔÉ„ðzÕËô<ïŽý(¥0Ïã|·¾C}›&gU;Ó5Œ ·92EðÑöÑÚÆÂ>öØ8ƒ¿ê±Ñ‘„ÏgX `\¥^Ù|{L«ÃÙî~Û\+xšÛ½Tý`΄íÒ!fñø0¨ï¢?œœÎšþ¼ÙLÝ©‰Ä’Ó o„YO ãGÑØÚ¢‹TSëOÿÈRà'Öaåaó¬ø ³mÞh4ÄÇzh¨Ê§r‘§£/nz= VÔÓYˆÅh(¶ M‚4\Ÿ, Î{–q#á¿tà ÿæcå!™4(W”3+žTÏUðz¿¹ø]ž-iÃý®ƒu Fgäo8Ÿ†IXdà¸év£°@W=±˜Ê³¶¦ç+ÅãÓ³²Ó™pH áƒíj1s–úõz¹‚ç¡ Ø¡¨ùOl«Ñ!7ÃGÖ•Ë÷p$›”¶ >KodÇ$$ŒyÈÑj®u·ì–Uæ2¸]vYlÀOfcvzfõÍ8/™Ȟ‡îbÎTC'„VVŒç7È[¯Ã}GØè ¢Õv‚»«ÂÛ Oô¿^SMÜ =:àK² ïo2§Éœ Â:Ü´™Îš®›V®ì(]rko~+ø09°áöÞî^m¶Èµbc¼˜ïgÙ°¹cœžV¢ÇÖk2êÎßF O§—¸ÿ•MÑÞƒ½ã޵;†9œh ªÂ•âÝÀÈbÕç¾gë¿Ié͇ãBJõ‚­Oúõóúø#>qU"øÝ®ªf8cd&û©¤*È÷µ|«žÞˆŸqtö)ÛÔ5\Vü+Ϻ+°p[‡Pb‚0ЩÝpß‘|Œzš ƒ¡ž²œ‡1ð¿ «DÛ[û4VcÍÈÍ×ÝqÑd’×C·˜ðÄãÜPš¦¢Kà81KÑX0l!ÒqÑÈ5)³ÐãÕŠÇûϽ”Æ[‘¯UÃO»óÚö8¦º¡yZÐ…b`·+Íg @^4½Å‚?™<<Ç“-W_¥ÆÒíµä%Oö6Ô»w—´i­'³|¨¡ à¢!nG¿SŒw#°'-Ž.yi»PÆ>ͯ3Ú¢^Ù‹¢3À?*y‡GrEáü¦bÌH(ÖbÖ!Ë0f¬ÒY/q_µ²ÑBx{Ù°ŽÙ~YedÍѸ‰ôš.R´uË_RåáfÏÓ5¢”’×ú^<¡.õø#­É‹›»xiøˆÏâÅ÷ތϸg©¾3 úÉ{°'ÆЈûvd ¨e¼Š=×”m¡p&. 3Õ"XJa*DÌDö©ýÔ7šòÙ¬å^QIöṿ˜æøVUœ$ oCufÆ|#1ÂX‘ãW·ËÉÙ ©87ñD\9±Âvä dßt©,ò[Í=×m¢†Éé}ƒcúxIï鎅Ö5r×ÑáÁîÒćÌ]œû±Aï@9€VJEï ]‹\8ÒØžâ¼ª/öŒ…´|èþŒÁäï{G¡QÉMA¼ßì[ÞãXrØ.]éùw90%E"N…â­Í]óV|Çê~C£ÛãbK“*÷ðoËߪ/ª<ÛꄸÛ;Ó ”VñÝ6é¾€pZ3Xà ô­H\ˆ_%ä ‡XušR‡õÁ5Ï´`âçÔ5±Ð+ ÷¤ìǸ2’7™uš¨+¹zÍ—{Uûiêæ ÙÉRy_> œ˜Å ¿«¹æ “Í0\ЬÃì­Š™Ðy«GÆC2Z[[yÃ5UJªµ9¥@(¬Û¾E%ÚÐB¤¢C°`“É_A Õð{qd›Uë`› ®™ï€9{²°œiŒc nCôžÁËÒt‹Íöu«pØ>ÊÌݧÁºãD«2…3±”cX³.,zbÌ[Å9nÓØ%aÊçÄDô}¢ã&L(¸bϯNGUëF!Í•µ:¾krxÕ™ÿs0¯ž<„ðæÝõÍ8ýE¿¥$t­ =zÃçûcÄ ãçæ½T£ˆ&5²×“\3—ï§è°ÁIQS[Àˆ¯Øb±WÏÀ¾ïªÍàЬßLæñïµ^ù«6õQ¡ð¾«W„(¸/S¹hçèF}}n¼ª– cw•aU†ª"'´ÿŠÙIÿ:}QJç rt_ÏÒRb)ùèUnh$p Æ¡EM`8 •FïÙïí×XäO†A<žGUYŽ4¶Œ@Iõ‘xK rÃ÷·|(åONXÈûÑV_ãžé8éiÝ¢<戠×ÛÒ]E½Ÿ¥Vh#"Êö'Â\M0š1R~è›õ~;yÔ“VdS£àTe±C­ƒVéV‰3 ,Ó xq”ª’—€×™@G‰ùÛ½P|Øsd$åG0*ù¿Óœ[z¤’mQnÇæ]FÐlÜž× oŸÖdYkçeæ°îM'ý“[M…ä?D\û-:ð ãÔ^é=µ[8æ#|xYoÅq†ýf&ÀØvñCxûK="ÛÏïˆÜµõºþå—“k=¾¡·pTÇö›‡žrÖ.$bCõK˜½¡} ^`U-=ÓfB`²q‹¤Vu1³26µõ`Bb÷ˆlµ4ÜVNCkû#ÏÑF¶ªþÄUÿæ ª"óoyeÒ»Á *¡:zqß‚$ázÍ_)ª:¿ÚÀa(Jø–®¬ žJšÈýÍ„Qü endstream endobj 68 0 obj << /Type /FontDescriptor /FontName /TAFCBE+CMR6 /Flags 4 /FontBBox [-20 -250 1193 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 83 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/W/Y/a/b/c/colon/comma/d/e/exclamdown/f/ff/fi/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/questiondown/quotedblright/quoteright/r/s/seven/six/slash/t/three/two/u/v/w/x/y/z/zero) /FontFile 67 0 R >> endobj 69 0 obj << /Length1 1149 /Length2 6042 /Length3 0 /Length 6763 /Filter /FlateDecode >> stream xÚ­“e\Ôk×¶i¤¤Sbiaº¤Cº``˜!†’Nin)é’N¤”¤Kú™½ïçÞúîçëû›/s¬u^k׺֟…QK—[Æn V„ÃÜ|<|¢9u]5>^/. ‹œØ Ãä­`QŸˆ@ÆÃÀÌ Š ðŠò#E9¸‹ÄÞ`—ãøK$q»Al¬`u+„ØYÃÆ Ð…Û@À€  Ðùë„;@ìvóÛòàòñl!6€5ØÃþåHfý'lëáòß”'ØÍi ÀŽ4É@Z´…à>[°.PŽìF:ùÿaêßÅ= P +ç¿Êÿ=¥ÿ“·r†@}þWwvñ@€Ýêp[°ìßRðÌ©ƒm!ÎÿΪ ¬ ˜= àáüOâ®ñÛjA6;+¨;øï8fûo#Èáým¨a¤¨-£Âõ¿¯úwRË Cèù¸€¼¿Õ3ßoFÎÈ â 0áåáååC ‘¿ÿþ3ûW3˜ ÜC®H`åæf僋Ü$¾|Ìì {#y`pò9€Ü ÷¯G€2…þC‚ ìoå~“0(ÿ›D@…H©TÿMH¥Æ?$üÔýM Þ?„Ü  ÕïšÈœâwYÆú7!ÚüC|ÈaÁ ²‰ýˆ¬äð ïèàãâ†ý¡@Æ ¿ù:À?²È¯ÿù@—ßåCrA.3Üö²¡Ûˆ¬îþ"Oü¾Yáàþm„ìŽðú³!ò²^ãÿÝ,YY¸·/· ?€›yéí)@Äëÿÿm<ÜÜÀ0Äߟ.r?ÿËväFƒÁÞ`ÜùY¸X˜czSDY€BÑD9&‡;mfiØÇÎð†L1žÝ%1’i·æq=0ý1q8±#¤‚(mïYÐÖ´BÝ$ã7è« Ÿ#$ ãx¥‹}`³kjŽ6”?ÐC蜵5ϰîÒÌu°À|¶ìÙ‰Y­öƒO¨z/£ìËìíI€Sà§•y¼ [æ4\³ü6µTðóíåÄÑ«ŸJð"ø|É¥iÖéÝ~jSksšÞq/ÏÏv·ì_çßkuMk.gV`•eY=(U¸lîég¢ë4Hñ" Ÿ¿Ãàµúf–?ApV/ü˜­årÂÚ†‚ZÓÂÎ\6ÇrÅUCA9ĉ3ù‘ÏÓÚÝÓ'›ª3ñ­ £ì™Ø‘çñØw‰æƒ«=?¥Æªñ8%”3_糇›”]8v­…!‘!AêÍJª±g& ‡† ®1wÎ’ögj.« ¢óÕ½-–Æ(³—{ ꤋåI â+82(Ç1'›½ºéÔÃTëð±’?/â±Í/çÎ(.€LÉV%Øj*½l‚–ÎYm‘Þ,„w× _JãxÆ¿ÍÞ-ô¦:Å[»½éoÊ·°x…2VÚÿˆÒq-¾Sö¦h³ÐÜQ˜c]‹¢%U÷|5»µgA3f÷æhãLd!à_Ç4ËÂt`no¦*6öU­¢ÌÙ„>¯í Ëy»¿{§!÷. {D‡‚Ý÷¡(ÿ §eÞF×+»Y£ªbÔÐôëþ8¤ä¬jÏÙɼ=§Ÿ=m½ÑP­Ò"¢þ56›ãI‰rIpMš?¬³@©›Õ¥!â˜'¸;ÈxVæÉ?жåª-•Ü6¤+'.«6} à×TÏvxVV™! £ S••á*|ÆøBÇ zòªµ|©$üÉE“N„âÀà¶î‹³NÄ%1vƒøˆ¦”xí%"ä'_=7#åJ0š¬f%p&)bçˆ;lÔ¾xLj/ôÃ>i2—zL*Ý'åAÓk#Lkê!Ùõäo(,vz¨­üÖÔ©í9Ûe›óGgú×T(©®ÐE ZqK C©É´.:>c¢2L÷lÍ⇻<Æ5°’W¼ûog÷ºÙ†W}óî8ß(ЊQÂU*Xäi£FVè[ÎÍ5ô„¼Auõýf†O»‘ñÅŠ€}ŠXšîGYWdù–må´HÑåÊå¶O Þµ¤V5–•-ãÀ„7?{¡î.ú´l¯rã$ù¢ŒÛ1nf:H‘á&¥çx’ u}ØÊŽ~êÙ…i^ÈÖo™E–áòÆj¯JÞÀ¯ÊJ3RhOÎÂÿ¼Ëæ¼ËY+^=ËÊßÍ…ìl,gÉ¥îþ³&ÉêGaJ®{Þ ú—C٥Ò»zz4ÌdÜ3KѳýZÈO‰U³<ä?gÄ’ôL4ñ{‰ßq­š¿Ãpÿä]622Ø.™¬|¤ë)âkxU{¸¸4‹ˆ¢Ì_—†åg›ÒÝñÔ™ s Ðñ¹Q‰âE&%¶ÉZ8œ‹&iP´ŸMѵHO ¹«¾Q» ‘&w¶¬Ù®,íõøb©]k õ‹É)9Ä·8^‚Â{õCbwQ¹“;â-v VbÛ5CîÅÙÅÂq¡ª-¾Ò=.üá8o4,×ä®Ûˆ,ßæ¾^uÉGï«ñijàfê%~*· Rz2…:e× þÊ÷8Ó—ÛÉP¼ê4¶dúŠ×æðy:Àºô2e_Î)ÏASóuİô€ü®lÛ‡õ1aâ›7F)Ãú¾½ÒqR‹CÜì$=âÚvÒÀµa|Í>rn|ÜòÕ§wzïjù·ýÜJÀ—¿\4èÆ@¹MŸ‡$¨û‡a8ÛS¬Bš.c¡}o¦\f„y„u_;.h—H`ŠD+_‡¬q÷òs>E.Œ<íÍ­–|nÕìúE>à³¹D<ÓØªT4‡ÁÃ<.û‰ræÎÞyÇäõÒÎ#½Àë×ûJë3%h@æ ›véÖ›)+ôêHã.y2™ç•m©khÀÏÅšvßšDRvØ_Î}§Ü´õ¢çŠ+© 3K8\øN‚_W3ÖþŒÃ;uƸ(,â¾, K ë„TY$;EV\lØÂCþæŒëùÇÎ/Õ\ƒ†ÛËjœ,GïîRˆVXN·1»¿NÖ]a|”_DÉ$½£SwŸØYjöpÏÚ¬ÜÚ0¶T|­crsh¯¾ {Pû¶0•u˜Ô·µ¥ÃN’¤ÝD™ÂòÕ¿ÃVÕÏæ¤Ñ½àþž¿øqš³Gè‡iÖ¡WFè%^ÿˆ)e¬M´Œ¾˜û\¿‹à‚ƒ[bž8†­Åš÷$Q¬šêf4{:Ìðù¦?ó ʺçüþ⾇^§<_áq(z·ØÃP'ž†,§àÀyûèÒŠO‘‹«²ßpdí—,Ú™î^i—©~|2LJ@ÜÞDO¦òÈÜøó÷Á½-M o«q{(yË Žbeß>T5/ð}ZôLü×ÙæÃTöN‰ÐPmÄñ€ù¯¶¨‹Ki‚Õ×ÜŠ¿*¢i%žà;D‚DðP_z¤îµÆæ§/Ê'ZëO¹@Þ"Ç]ÐöMŽÚ9â``šïí^›±9È$¢Ø)¯”rÞò‡˜K¾f­ ðæIšÀBxfU ¦šñ³ŠÞÀr_o‘˜âI6a|!OºÊç~{Oy°<¢Zé0Q#ÄÅ¡Å5DsŸGþBqr«{ÚÒž¹ÆPƒØ¡†”L*b·@ZAá”Ïa¡ë»ˆèß›s·²˜cƒVÌŠL4s,Ü‘.;ô=bÒÛˆúþLŒà‹‰»£RÜåûÁÿ•†g;´â›Yò½­« ‹˜AýÛðµ;(>Œƒæä²f*ªé›Õ&õÏk^Aìk†Æ°Ú°›$Öü|1«º/ LÔá›áÌ"ÑdniíÄŽ–_G£8¶"hòµwE,ÇþN“?¥OškC¦Á1¡Ž“Ê|ób»~½pt¼Ã¯N³¶€6F'BÚèmÔÐì§õŠJòÏìFº¸B)W¾¬‡$ #.` ÔKZmr‘§<öäÛªÜCÖÝ;(é÷³² ÚØ#-ö ÔZæ 6”ÊŠYîDîeÜ8×ýÛê á~W;±w_ÍVëfÚñA?G¼ª '•_k4MØr¯“1›&6IßξÍõc.†(‰)'õ4hqf}'à•J;âcîdG£4:)ò. ¯£5½Çr=¾:cÃ@Ôgj¸;¬IÅF[xƒ1(9Þ;=I øérè´ã1n$EVõ=+®6Œªò-îh2FÊS[“Ó&ðÚ"ïÔÍÓð®ª&à'À5K=1Óe8y†j˪ö!H§„@̲nz—|©¸0¤êU«°œ®Y»ûØÁ/ç¹7m,%ðüi>G­u'ñ:, ì& %yŸcÆW‚³+$°6»%PœÑ”ºŠCo½z°µ³Úûaå =vxX@ï…6I^ðð¾f~ƒmëüºâ[•íêжœ¹PKg/o‹Ý„ÛYíZR{èàÊÖ„ŸPñâ1û·}w âQ¡œÏ#pÊ_w¼M•ßÇDáœúÕו´ðžöö¨¾>“ .9¨Ñ·®û²Æœø¶ŽS;†°qßÀçbK·ˆbž ƒs˜|éUŠrÁ¢pñö'‚â­ÆTÞΈíq=¤"¾kãPÓ÷Éã÷ÆÄéÔGl» *VÑŒå‘Ó˜_ÅÏ?·q}Y*H½0oØr¶9*þz&Úir¬KŒçk¯Ø¨w¤×l½´ÇEVS¼<óí×Ñ ³Ù|Åz˜hðúO¢ý#í—’ƒYo°4uø™%£l¿ Ÿ8‘ï„ë¢?¬uˆ²¼Ùƒ™§¦ÈíIÖ>VT9q(XSê2ÜÄ>V01]óï?uöBÍ3·û2I»°Ývì«ØÀiî=üåSµ#&1ÄôÎÔªƒéñ%ŠÆõbáT‡@_¿Ö»Ð‘`dŠuMN&ÇfÜ‹k¿ŠiÀå‰bÔÓkµyª† *}Ÿ¥OÖýsô.×Û.ìoz|„GÙxh‘-žÜNž7÷÷z§s+¾Á6X¯6«ŸØA}4spÍæëCtb…éïÄ‹á†ýä~5 Ÿý"§›WFë*äû#@hÐ\»OKã2òO{Yè¾ci|º¡ÇÑx✹ žAâ|?»©°ÛÛ:ÿ‡™›¸ÝÄ…2.eÅ?®Yv/ lW´8jO*rõt^ÁòKÆí ðþ¬ÖÆÍ…¯áŠ)Ï¿3&kk»¶Ùªµ3¸9÷GŒ–PÌŸk˿ט¬<” û´J{ØZQß·ax.B_G̦›¼’—ÿb Á©Bu_M½i÷6·3äèÓ/CVFŒ ;ážûªyˆÁ¹ÁóZÊÁ9ý˜n:ÐC}›G Ô9)ñ1@óWœY;æz<úЯ®uæ§(y¬R{êwOÛ¤‚!—⤸ç%?ï˜-p6w°)#Æ^ìQàÞ(aô™©ø`J>!Ы«‚|—ŠõUZ¢Ý .HÉŸüŒhÚÔZ (PóÄÞpiéš½N»¾ÕKŒsÂ7¯åw!?æyT”‹Ç‰z( Fh‡]å)„\ îN1X”ŒƒÅ·Év‰^[_Ϙe0?û Èí¬G©åŸ,Š`á¡Òæùؤd÷Ízú¡Ký—Ü•5ûhhÃk޼òkÞ9ÖÇG:¾ U ŠqD æÅ‰>ø14NèÚõ=q®6w"Œ; 'hÕY ~Yz†J +Ç^?[È“öŠ Eõ\²âËbõèFkõò8¨L¹ŠPߢ×GªösJÖ•Œ«)„€Ò Á1TØæf$EºìÌ@Ñ¢Ux@½ •¾ÏA%9jïüR»ùL]i&–@·Ÿ—%šK%ù£¸š/܃†j,%·´ŸE`.³(1LÊVÍ:o¦tÒ¨tåꢹ?°‰™Zbø7V•½_¦®iןûîÈs~R}®½f•‘Saà"¯-ÝAñé*¾õ¸1ßA»˜ŽòÐEÒd+•h¸$þͯ`>Å<'- ëS³€ô…Å Û—œ  üÌ—O÷¾dÄI?­kx"½ÈVúãÇ%X*~Iúâ©®ó7Ì1NïxÔríb3ÊY™ë…IG§_Úã}ñã½ “p1¯ÍL— æD›O½û;£/„aemxž¯z>o· ó$Ë”‡é)m¨OT8¤ëqY“£›+@â<Ú‰±¬˜\ѳ\OЈ˜íuŸ,z¯·Ài@ˆª,]4)g„éj—´µ+,ư¹DöeJ,Ù60L¥“ÎÏ$=F(¨¤h±O5  ïÅñð\]Ê"15ùB’”ôcìêYTB±™^Ò£ Ó:Æâ¤Ù>1M„ ÏV*^¸áùGÓ ÏIÎ^Ò«Œƒ¶SRzÊ6Æ–µ*·ãwAåZv&úBè(°dB ŸA©:äWÉòa_7m¨¡)=T?=Rrú>hƒ3ß{çBSíÙzD.vG£G„j¹UþÌX†QnyÒ¤“Ã#øU”þÇ¡½7ŒÜX4‰;LÞ}TÙÔnaÀÏ?³»ERùP³è| Ú·ˆ‡6/~ͲS'XÝj~~­${q[Iî”ë‡6]T‰ëðÞâ¹­¶u’ç/š‹:SRIC¬ÒäpêR¿â-¢òfÀVˆíHí´Ódh"õ¨1¡M‰™·o¼pt`ã}Ó„€,Û½sÖ¹ã!ux¾ßÝ…»»|ÁõîÎ 7A*®,äéÈd¿k- wsKDuŸO³záe’¶Mv0Þ¯Eø;ëʪrþOm1Ä[½6£¥³ô,Í&Ü:Mrlá—=º²AÄCŠ&Úg”Õ⬩(ìφ¿p÷øÔõZmS>ražWð:7yíʶƒÿ}£ª”ø†äV%gjüIˆå@bS’ÅÊö„2‚¼=(/1r“1þ³†Çiå Ü 'l5ÏýXc˼ D$ Õôi~/Ã;2Sù@¤Ÿp¨hû}²Trˆ”#˜ ¹ Ûw.‹†>Ñ'îsÄq=œvù‚qŠ{ƒu’5òlƔ𴂇Š÷‡÷ª@Õ—â_ rÉ2“ëÿ¦‰ƒ endstream endobj 70 0 obj << /Type /FontDescriptor /FontName /NYFQAI+CMSL10 /Flags 4 /FontBBox [-62 -250 1123 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -9 /StemV 79 /XHeight 431 /CharSet (/A/B/C/D/E/M/N/S/T/a/at/b/c/e/g/h/hyphen/i/n/o/p/period/r/s/t/three/two/w) /FontFile 69 0 R >> endobj 71 0 obj << /Length1 754 /Length2 636 /Length3 0 /Length 1155 /Filter /FlateDecode >> stream xÚSU ÖuLÉOJuËÏ+Ñ5Ô3´Rpö Ž44P0Ô3àRUu.JM,ÉÌÏsI,IµR0´´4Tp,MW04U00·22°25çRUpÎ/¨,ÊLÏ(QÐpÖ)2WpÌM-ÊLNÌSðM,ÉHÍš‘œ˜£œŸœ™ZR©§à˜“£ÒQ¬”ZœZT–š¢Çeh¨’™\¢”šž™Ç¥r‘g^Z¾‚9D8¥´&U–ZT t”‚Бš @'¦äçåT*¤¤¦qéûåíJº„ŽB7Ü­4'Ç/1d<8”0äs3s*¡*òs JKR‹|óSR‹òЕ†§B盚’Yš‹.ëY’˜“™ì˜—ž“ª kh¢g`l ‘È,vˬHM È,IÎPHKÌ)N‹§æ¥ ;|`‡è;Gy¸¸hCã,˜™WRYª`€P æ"øÀP*ʬPˆ6Ð300*B+Í2×¼äü”̼t#S3…Ä¢¢ÄJ.` òLª 2óRR+R+€.Ö×ËË/jQM­BZ~(ZôºòË!”ãÂôŒ“S~Eµ®‘¥‚®¥ÐpCC3ssÓZ…É¥EE©y%àô ?-Œ©©©É\7¯å'[·dMßÖ¶²Îuñ…U¬úœ?O¬}y“ý@ÄŽºÙ™)µÁ¦óÓK–¼Zøhkßañì‹^ÉÖS…‹¶HöúõÄ}Y$¼fkׂeL÷ëݯlîšÆûO[ý•çá°sZI[í/z<«SYçæåú<óR^8E-Þ÷ýÞ5n!­ IZJRæ7W°ße¯¼ûü²ü§õÓÛ&¿;{ËÇ3@¼Ø­KýbšwÒ—ÄoO¸bÓÊ.^Ô|æxðÊ‹Gå)ü{öGW¼‘íPjWýx$xYÅ×®:éêë§ ØÅ/u¼î]øµÆŸ“k¿¬ÓÑ»·¤ßßà¾OÖGæÄcãŒßR'´ý¦‰¤Ü3fÚôl‡äé¬'¡×¶ÿÁ.µ´îDzÄì9ۧȺ¼©*\¾Ûö{¨xo­ž÷¶‘ï—ì>Ì}m·¨¡°ý•›Îý?çsúaë2ò-ÝúmÚŽŒ¾×úâOßšœ¹vÁ}Éã†\ɹ5±Û¹zýÝþ±õ|z¯ûh¹à-Nf¡]ö¸8Žã<¦¾b/Ôž‹\¸Á÷ª-¦úù SŸU¥Þ³ì¨]¾¤æI‹FÛ-ÛÖ§Þê=yìRIú¿b]xÒ{ðá­¸ÿ„_Íx51!Q>áØÍ¦2‘ÛV|¨¨fyÊâSV÷)UË~Æ% ;CŽ©f3´/˜ßy3YéÁ—™lïyRšû'=}è–035«WõeëtE^ƒ÷m-Çï1î½tz¡ÓÂÍ%\ÞÅÚõÌÚÂg´V[|ßÖ­×;®7O\Ïm­>ûÚêGÓžˆ­h˜Âàè|à÷¶4¥‰ª-fºi ÌæY3ê2è¯ÿlõË-k~o“B¬ö£=ª¾ÈJ&oˆÛýÕýØ=¡à•ÓJ&^U›.2O endstream endobj 72 0 obj << /Type /FontDescriptor /FontName /ASZHDD+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 85 /XHeight 431 /CharSet (/arrowright) /FontFile 71 0 R >> endobj 73 0 obj << /Length1 1270 /Length2 8650 /Length3 0 /Length 9420 /Filter /FlateDecode >> stream xÚ­–eX›ÛÖ®ÑâîIq‡àîPÜÝ Á½Å‹)ÅÝ¡hq§hqw‡âEZô°Öþ¾Õuöù{®äÇ{9æ3žwÌ1s…öš&«j‘…:º±Ù€‚)e-y ÈÆÁ!‰JK+å¹Ù@¥AnAP@€ 1yxù òð yQiRP'o+k7ƒã_I| ˆ‹È  r³†8¼hX€ìšP ˆ›7@ÂÞ ñ×W€Äâⳡ°…ÀbeãˆÊþ—'yGK(€ï?a°»Óÿ.y@\\_Lþ¶Éx1 †:Ú{ÀKTvèK5È‹—ÿ¶þ[\ÖÝÞ^äð—üßúÖA6öÞÿ“uprwƒ¸”¡`ˆ‹ã§êBþcN¶qwøïUy7½…„£•=À äfãàþOÜÆUÖÆ V³q³°X‚ì]!Ç!ŽàÿvòÒ¿¿}°«+i(éj2ÿÏÑþ½¨²qtÓòv‚8þdÿÍÀ?üÒ$/€!ÇK—/‰/Ÿÿ}2þ¯b2ŽP°£€“‡rqy£¾ Ñ ñ|G0Ä ñzqÌÎæu{ÙxéÌ;€%Ôõ¯såå°KüúñØ%ÿ€]êñØ¥ÿ€]æâã°Ëþ!N»ÜzÑTúC/šÊèESå½hªþCü/*ˆ À®ù‡¸ìZèå´ÿЋ¦Þ?ô2zì ˆëe äàô2Ä —Sû'ç%jþ‡^\XüCÀ—®³Cþ…/>¬þ…/F¬ÿ…/Nlþ…/ÂöÿÂe‡?ø2ìŽÿ—BÐû¥k/>m àe¼sù¾sý³áåE]íA®ÿr|Ñpû¾¸ñø¾¸ñüƒœ/å½ÿÆÿw˜%%¡^¾¬@^.+'Ç_Fx¼ïþ¯L wˆ£Ûß¿/wâÙÒæåA ^ ÔÅ9¨…PˆmJã‡Ò÷2ùeˆŒ®diÅ!£¡õiBl?Ö„pg\š¾kA(.qBqlmʱ“O+ÙÁ–<$~ƒ¾šì¡ 8ƒøŒ¹éšHg?ŒLà¾eô`9dFì/Rî851Ÿ-Q_¯{t V+ùòHN"Jçç¾·óÛXDKSï&£g·*%AtÖãFîŽßB󡋅߈ŒÒ¯ñžIzV§ìV0Ò¢²•ágÓDP8½,7ÇPv”‹zYrÏ5õûXo؆<æÔÒT0øŠ‹{±Ém§lñøbßóJ!eo •kÕ{²MÌT ^±×'”!äw*¼ž{u¼ùhÜñùq„þ`ú€ƒ~Lð.mƲä`Óü]»Žón†;ÈíãLø¥‰ saÎÂÇïsÃsÂë†Q}S|=ÈwÐpØ´Ç}ù‚ò{ØD¶‰´«/²äÑc¤šMˆŽüK¾â‡ÒL©òõfüNauÛ;~ââÓ…öYApz‰ŒªÝôuéZ‹ê’iØDyLù÷ÃdX¡eÓ½%9"‡Œ2ÆÜ@?ª¿ûÀȯcO›ŸL”bþÝ].-kCž‰3‡˜0< LDp<ŽŸËPû¸™4‚wôŠé>i\i‘µ‚5ê²f•¹ÐH>Å|ž,§« þÈbTÃÉóã! ·ÂÉ¢øÉ½i¸¢Õ:ÄGÛ6díK HzˆÇZËÂø ãçTQ£óã7rWaëŒö¦±#0H®ñ]­¦óª?øgnêI›oUƒü¹:r4_ÚÀFDÃìœ ™ +³ú:åõèã$#å…P ª“'ê£n,PÆ$N­;­¥ª=Ìϰw$mS1é 5GÈÎ0hfóBº·ZmH?†:Ý_¿cæ”ÉLã5õÕ,FK2átŒßBU0‡O#\DíO4·­>ºrY°ž[W?½»×Z*(*èMþeÆY€r´Iãûî@HhÇá2"4õÙľ( H/Å”ü^u†lÕln1]ïNÛñ'G¼Wƒa±Å÷¡Žczéö#Z݈3бÍ#©Óå$m¼+¶ÕïULä= hô.5ÆEX"ÝvÕ'½iƒIŽîüê#<á[Œ¼÷÷…Á0ŒQ8}ÆAüFÈ"HÕxBµm‰¤‹?•MÐÂΘôú•#›ô0·Oôªš…\Fâ®\*;q‹=Ô/ˆƒTí'àPÎÑÉ9g~¦8Å'ÔŸ™ÆG&ãÉ…{ ½€ð;yŽ –*³ç« ­?ðA•sÇD îÕ |²Gt·…Â]ŽàȬ݉Sˆ‡1LJ½Ùœe˜š³¼üjלGûaŽ<4½«pÒ•MÓn>J|%Šö‹™ÖØÈÝ[ɼÖ„ÅÆÊ§V"akšÝ²'ˆô#<‘T¥  ˜IwÔ^ˆyKëG¹wOp¥ùdv7D†Ef¡øC,<„JþRg{B°­¼ã­\GÖŽ†ÁS—û‘FN%nÇ ‹ý`ᙳ$c"QQ#Š‚Î\âÜ-¬PÞÂLZ`Þys»•ÿš5Q …In°ùë…¾çEOÐ’Ö”`º½®/‡oËþÉÏÅ“öEÑzƒˆ&§mJÀðç>–€[hÏÚŒ³7×¶Ðl~c-vÔ·\ic› &x›—˜È½´º¿šø0\?§ å*XÜbiëø\>^*SÔ;¾i–ûÀYÚj(˜x³«r°ÌÍÔ×—Sãò`iF÷ir”ÖEûÔpÂ}<kK\qmPó4^§µæÚjQj«ê÷* Gr03«E´™¹Žd®ÌÔdÄÌÚ]mZ¬Ì‚%¬cØUru¯º¹jmHpÀ¥“ ¡×Lši7NØPàŸt6“&¯%íD%¯H €…Â[6é={ïÀ;†Þz ³ßPµú¸.[­ÞmL¯ Ãj‹·ÄjeD,9¨¤©Ù .2SÖs©*±í¯ó5Òi$R’î¡Ȇ3I©ÊG°ï‹Å¹ñãPTfY&D%ƒð+>ƒG]&¿›ù‘,ÏÅJ*]Ñ1å·ÈУÂòžkž+€•Z‰~hà&Ú2€ÁiSjiY— ÖyÚwרÊI‰kJ9¯–@ñ¥T3F|¬«ˆ~¾õׯ-£ íVo†ŸhÈa©2¯iSWÀc&Öry£^{Ý ñôÏœ#Ù¼U{¾ûô!&µg7*¶oî œÁ5ÔT­Ï³#"”DOŠCìô¤zïaM?å8‡ËéãUú—!A$a°òýLöär ’µXq󳛀‡6¦i²'¹jß<™Ú²lþ×$Ÿ=& gqxÉ/–‚Þ–içÀ“M±y4Ì" öïÍbŒJ$-$ܶ)ò£x¢Ã~Ûxº“ø½¶ËgïûEìØžüw3O…²Ùõª+]Õ­½–ØŠnUòb¸õž^ßœ9 þ~žE±"»öÖŽaã­°#Ü[àwÇϞ˹YÞ_Pö'—Ò€gD£Vøõ^"¦èŸÎ-ú…§Šhh¢3t÷.Í 8ǼȂàåʾ]ÆÇT³ ÞwÙH)] âHSæýâ….n7¢QÅIð ŽBR{oâò?‚:½`Ôç)L€Á<•—l¥™—›F»UùKw—~Úµ[Ô&þžõgi—˜ñîËÂTã2\ˆv[ÃÁÑèϱºRM5®u7³ØÞ–:Ë<1²ÑN¼‚N wÒŸ½Gx¦Å²4|Ä‹tÏÎ,ÛbïËïsþÊ‚Z‚Ð¥Õå7‹h4–Á¥p\ñk$-øæ:zún½m2žð.^f!’_ɳ )‡däÌ»{` Vï9¹¡|Å`ϳº«2yO$ßôoçC%)Ô+cPv¨ Þ¾XªIÀj4lC$!—ûû˜ÔܶϡùœÁÄÕ³žT Ô´Ú…÷Ã]nŒ– …³Ãï`åÊ3"HWœ§øŒ„{¡{‰÷ëPG$2q4~å #ßcI÷G’ù+ôŸ'ièÅã°Fa1®)_WºX Ú ‚&nN"QC‰Çõ½ $®àЇPUö`hÊ¿m\·Æ¬z§ÛÏd/V’8Ÿä„cè: Spkû#Õ„‡HæMºÛÇ3‡2Ÿà۞Ƒé­M‘£ß¿nŽÔ7æÖF•¹H®ü–“ 8*¯“ÀÔ Ù<øYÂþŽnÙ@ixáÖ¶BŠÑ'°sÀ[{p®µ‚¿tÊs>Ë-çëºkuP±Áêz¨<ä(x‰D[™"úAtõµ§b|§d ò‰B/ƒåO÷* ÍVÐá;,—^ó({Áay7yÊz:‘t×=ÉŠ&\ÂäAï„£;eØñD¹KaX ¨Ãc>•':¹±fwCéøüÍé)oÒ}áûtùk›Ö‚6an®âÇUYh%£,øö»¡ç‚€–¶®|æRYçLzëCŠ-΢ÏᆚDo#Y!w”‰¿ÂVç`%ONÌ+chØ*dõ€CâÒ¨"÷ñÊXñþ^ß_Ïæÿšžoï˜Hþö)‹×Ý•Šøí«‰BóŸ—3N\U¿]·¯>OëŠnÿ&ÿ-¬³pÐ÷`.ÊiÒB©2î4Çâ‚2Gˆ¨*› ïÓÁqÒþ€Kõ½ {5®·Õµôb!èH¡>EmŠÅ¼*è¡Î×lÙ’eWŒ¶7¯ÿãYN Mçî=”¶ÙOnÂÃH"A8. äï`©0¬ï¼¼hP¤­+š@N3ë˜Ï5ìY¼$ÿq‰â]¤¬ÅúGº?$ò è¤ÁGÞc{ç±ÝšÃÎvCÅ+†Þýý;ܱ2é;v.²¡&)F¿¶ûåõ-ލsûÞ§sªÕ?g{ù/­>”5{~Ý×I$µ6­š¿ ¼§`Ù›À¾^&“îố+d/’sneÀ؉gåëEž¯%™zÒ¾Õµ:à “>BD d5ÚmG ,¶³a¤¾#ý €f.8oéÀÇm&_{ò6 Ô³<â¶òµdk'ðG»öC& è€Ø]¾2®—ÜJ¦Ô<Õf(½4Ö¢6ûÌdðF…®îVÖ'ÝÙ„’“%û*Š$>¥¶R“¼éÔÕ\à:M°­šLìs?=ûGt SÅ¿œ9¢®œ7Ü/§×?Æ^Ë㞤ù¹¦ÿC4o*¸“1vÝýšôCF´°œÿ…÷« ˜Uë\ñcsGL%ÞƒJÄÖRBnÌÄ«úí/µ2®Û!xðƒ‚ÛàŠÕ²Õi}ÿ×>áïÅk×ûSÕ¬‹—Ï댖m[οª?18ûË‚º+¤tx«êäÅ•*;Û¹/fg¯yxù™HÂý=‘_í%/¯ ŸÞTp=!¾?°ú8ÆÆå¥˜rõØŠØìõ1ºªÇ,ËÒ}§v¦xw&r’NìÝL"ë”ØþnËÛ·_Ú©Ü®õï¾_”Œºœ)©ì(‰m¾4,ƦY›A¨¢N¬Ÿì•996CQ[XJ³sÖã\X•R:ш]£_¿M¼)š‘©é ÄR?‹!™ˆ¢~ÓúF±ú¤ «±a妲òüQ‰Qù•xUñcø6îa³0ßcÇO¯ÄƒÄ'WKºû•(ϾTòFc‡½#®ªø4t8UuÁÜrËޤö7øí83ŸÜ ¨ŸÉýŽ:³>Y߇”=Î1òáÿr'[’`Z¬â§65v·ÒÀVg&˜yž+ ð@µ'Ø¡91Oùßœ kù…§ú‚d*‡m÷áîhzÓÀ¸w‹#ˆûQDV£'`n*×ZÊîÜ÷Ëîè;GÍžADþHëûýeQ?${„!§L Å3ïTï£AÒV·ªSÖÛàž{›W‡UR"EÇ8(É,’+Ä*ÆH3V®¦þÜ[qiˆžßTiûÝu>ZÁÅ-ã‰æþΗí,n³B5¾poÐÞ#1©*œÈDTÅLŠl´E½½ÉU¡„7ú´V›d7ݬð>f²îÇ=zI8¥úV®â=øaÝD—ÚÔ™&èI&ÆF†a±bz%%jýþPûÊQ¦E5ŒF­ÏˆiƒN—lSÄÍår“;01bX)H-بlÐJ*χº"¶~!ÖωÐN m!>c;X¡ÅJ]]^²™ 3¬1É® Â5 ê’wV+ñ*Š¬Ð¥Êà¬è=·~õôN–ŠL XöÕ°·˜hØ| —³c‹åòÀþÀQ[äB…_üp8ñ=G!гgú8ÌøVe:róÑâ ûŠâ×½28•|ç±¹®b¢›q:<ÌÉÝRŒ¥T&Ïr6$ëºU¶:ÑÆÞ©|kâ¸ÊŸ:ʯª2j3%°…äö4[‡•R,Ë–ók, '_ÊmGýlæï ÆÏ =P2.ú…+ªzÑ7MÅÐ>åú<}úœBãíÎs6sƒ{ß9>›lSCºÕܘtYsJ§Ng…™Þ놢ÞtšùˆîšÐ¹×Ë!?NüÅ)ê6~“MºþAÆO™d¨L“HR4ÄZòý`½ÚjçØð wÝ@„I\t˜Ç‚”‡}Έ"¶ßÈWÞI"ÅÇ(øãgzìjœ's/¨PÖz ¯‰?¹x ªÖ¿{H·¬èwo„´æy˜¤_`§W0ÜýDaºÍo˜v1ºD5PŠa§ð"¥‡ÓMž4ÀÉm= Ý`’µ÷[íO;GÄK]/7ÖÑñ+†Ë†Ú¿î…çSçP³½ P©ѱ.Ä r›rW`:&Ê=ªýóAnz BÓíŠT“2M%gY?°•Y`µ$×Q°Pó(íªTàúÜ9C„k1lûY`ôh]¡fY×Ì0’ o1`ŸEW…6¨°ÍáÙ†‘|e°mBb9Ö^.´?‘›ݯóòÇ¡V É™$B1, ‡lòâíwq‚„ËúêÅÂ"û7µE¤õ…âÃ;;¹º± ëþ¦ÎÜ騀ê0uÌX>Wî^)UÕáø‚ƒæuŽçÙw³vÎ4t ’%RDïóAÙÉKAjørmñ<šËNb‚QA¶n¸tV›s¢âj^Žï×4³Wj¿qcøoªÓŸ+Éôô~tÍ"ým(bš´¼w8_´² $ ß>‹ÝÉã¬F1ö‹É˜†Šõjr®Æ|š‚_61| ìœËpÙÞÜ"´ÈKDNìª&t Ħ&ÆZ#sòÜtµK×t««NjœG9˜á”1N1ÈÃɃ$EÂ}×ìµÝub‰¬§˜Ñ‚Øô “jÅgÇ‘ïêoߌ·,% ù%ubžª¯H×½‡*Eø®‰¸¦Ù=.M4òz’sZ1ÏH(O«öÈé+ã`Iòu«¿j“xÅÇæ’¾ž?옓ë} á 9ùxåA{PUò÷@ê}k/ÍiÙÙpÎkìˆü,î]ØÜ¾HOG]f4Ûºˆ*/ ¬ž¹]a=Í&¸[¸Ðð7húË„[‡‘Îc¸YË Š¤!+ç ¼·d-ÑNæJEˆ„ù]BŸ£ô.„qÅ ËL9Ž¥¨›4œe]VHI$ö-ßã,ŠF~?ñ-"¡Ï%´¨1ô—n¼®µ ãÜ ëØ&O\žñvËã0áÅAF Ô ?/\læ¹}¾¿ §4KC$¯ž)-@a# Ý¿‹‘Ãv¬Ö»zK°qô¬:`CÉmjäX%¥ÑKMkKØ0ЇâÉ“g­ÿÍ×NPIiSY“\=^Ó^þ‡æ~‡©Oæ+ ¨=ºFfÖ×üýÃRìLO)Óñ}-—ø3è­%éø¡?þwh aëÿÔ<×g&Êâ­}ÆÜø Ï›É&Q£%ñÖy`výùcGÔbN œÕj¹Óa‚³Kî+Ķ}–Àú%Ììs°,7™ÐÎbë÷.TìuöL”×&dâ¯(«âüLe5¾mS¼÷äD„9.±hj2ߥ°Å3kþ¹,^Tð3˧ÈÁH+æX¬oMx6´VŽá°ª)àk`øÕšÑ>™Ë8§×"îA¯r¨;„=<ƒG?.hè¹\$ã÷~?£ÑïaÌ[ù¢ÝÃxs›À­@rlñøù1Û6óFÌ)~¡ÙwmfH¦ÓqËÁÏHåëˆ$!éÞéu¨RÕD ø‘J\ßzHU¯ÁÙÜŽžÍšk^8Z§:zÀlÚUiµ¢3iB )Q}˜‚AX©)` 927Ì»º&³¸ÄOãæsG…+¹(©†,²£+òêètf>«]—¾‡wÉ%íÓøò¯¯šãð{‰È3J^-LhíØ‰2& B¿03qe=œVèº^#`S“޼"HG©8¬$øòPYcEC±áˆ{Š'óy!J¬Ü_x†/¿¤^¿º“õŠ|ìâÔÍþ©?ŽAÀÚ¼‡…Lûš¸h•³áÔ}o‰ Nñï~üËB®‘]¹ÓÌñ©ÞçðÜ›t°·H•™ž=™C¤Y­ªXg(!dóJÕƒq=êå>ú´< ~’ÂÒ 3Ò¦ïñ^lI@Ÿú©Þõ ãC“Dû†ÕéO•Yá†}s9g–¡Òa†Š“†G,j=Y«’ZµOGˆ«Ö_àèã©í‡'Ø¢£‡x2)Y *yºÑ&­lð˼ü.뱜!‘ÒŽ¡¦·³—¿§èÖ}ËŒ~™7F‘dž•‰’Þ©ïð¨}5|×ÞlÚÓ‚eÔ…¯nrsßZÕD%>y ‡éJ`çXŸ§Mö½¸ V’ÁrÛíЛëz£©×G¡}>zã{)ÛwôØϯºÅúvQ,«3ñ*™PØr¼øÀû±øKHh`š=LçÇ/ÑÔ¢‹ÛH½t%Í#u»ºº=±ð ¿Ë!E~(ÁزÉ(žŠoÓ Lùé uDobiDRÙ‘¬–ˆg<ÇÐnæ§ÕwÄ=„4r﫜aa[qð\­®->>bó9o2`†Ec_`ìüÆûòSS·Ö¾‘?s äŠ/ZgípúéLJ †÷†Ì{I¯#b]zH-Xc‹¦Èx÷å‰lªµô{+ߦŔù‹íßÈ•ÁRÏ×MÚ>½{ô°. ëµß§IÛåÇß8 HÚ‘yOäÙ;þ<%a >#=@9½„¯ Æ8:„Ðw£*Ó—ˆ¾8‹R²ÖçÙí½äÈZþK‚r<y¡zqèW2¯€ìˆ]ò½ÏÔ‘uÍñ· h“(n¿ìÁ.>$€›ÌÕ€/®`<è†>ŠHº”ÒÞsCGÚ•1û¸V7-lo §µ°¨KÉ_KÌßÙ沑µ`1ä}€&À=–B‚ ®ã9Q*ÄÝZ Ê€ÏLw϶á /tÞ}Ò ÍÝ+ÙÍî䆡Pöʾ^üb¶!⽄Ö^eh\E äMaÒ†¢zª%ÇÑ]¸µâØ''˦›6œÈHÜIÁ¿a!–<¤>4(êž™ýr¨ K¤-&D(Ô]l{NÕ m7+‹â§Âe÷«R,„ûa|F–*bäî.G*Æ›8w!µÚyF‹œ³Y)á¡ýÝþ–á(¥a֖߫€¯¿Ch{qÞJk΋,]”NØGŒ»†KÌì×*OÏÙ£FÓ³šY3=}0f¥<åðzþì¸l¶Lpoð+1ûâ­ç vß±‚nù$n™˜Ökƽ»Øi¶OAW–1œëq· 0áNâô ó ¥Ï½)®³mùH9©l“šÊT‰böCôr-8šFž‡–ŠkÊV{«Tæ åÍWj7 ŽŠøIÅï˜'™°Êd˜Ót~[oAóé1ΔO†âFN\ îT̨$®ß A½áb}w=—lý·¾eTTÌñ.›ÐüBUaôF=o7[Ÿ•}ÚJ‡ðƒº~Cómô­àeЮA‚¢¬BFbÖW$Z~Zõ|wâ蜃kŒŒ2\ºƸ+Ì9‹f!Ä‹_­ú´p~ªä»“ßÝôʼn™<ΰ§eÉ™Õî$—ÓUbZãìšž©MB,˜v†EJëB*º¼Ælø°Ý6 y¹$•™Mž_’;gï)òãT$´,.!r5°Wù¬ûÕId¦ú€†º‡ºa]c³j?¼0G)6KÈÒ˜u‹ÜpkÚÂHòPƒ3µ2!¤ÄÛn5f1îÑ2{âŒQ7ÓÉóÇU³7^K¡ñ.aM%÷Dúîî`}´Î%•fÚ§$̽KgXÞ1ÑyÄ(Wh©ã87ÁøÎ.ÆXÈï«|£$ñÚäìm:Ò¨|7áŒò/2MyëÐQ`§ÂÅÛBÕá2ªòèd„à¾Ýw'wuÊÕ‡Û ¢¢éƒt´yXW«XŽG&×éKqÊõQ¥©ņê%ÏÊ‚–Akß—u iÎNG©¶&œšÓŸËy(ñ¼Î2ׇxTû{ae¬äxÕôʤ£=YRüw†½¬|¹¸NŒßŠÓY÷(µßV`fœoñ„;Å9ˆ“ ¥ÄI2Dß ê=œã?ÂS´_”2†0èN,¶1ï®øw³Í'<¾6RmŽ„o%­AõFN[KŸÞM$Ð$*Î4$»þ:P”‘LÿÓ©_E‘–`Úî ¨ùôSž/™HœÎ!¶™ª[Ìá=ñ-§Ý5»Òr¥ªD÷`…'$æ[ùÖ.ú&7´Ðhjöa˜ëÔGfýqÐL>r,Žb›ßÑdtÃØ—&Ë×®MÜü»­Û”tµ)1f)¶ò³ì‘»¹zk)6gøÝWƒ'ü› ^Ý]åÉðS_žÇ|š\Ò.Ÿè¸–[âsض»¶…¨_@á†âßVŒ?qa±y2§\}øôç4So]u“fíÛEÙÈ#QúpKåRr9dT ‚HôDßääZ¥¼6¯ Ç.tWyË P ”¸žU@Pš¸‹ — m­~ižÏƒBOl4oÄîyÖlWª>E‘Þ½ Î €?ܦðæ\ÿ‚†—L`:ŸÕUL ð<ót||jdD¤M¯–~çŸ÷s[rÆLŠ¡ÖüêíQüBádù+É…ÔÁ!¾!_oî$#h`§dú6f¤È×KG)£)Ô¥AÒKmañLãbÙDi[ù°7Î’0ñ—€3‹Õæ!Ì1… 6ÐzÂðÁ\bR\Ä¿EC#xð[ðWè‚¸Ž¬tIE+-ù"+uíðšQæó/Ž5Ù‚­ô¢þ"íüCþ>Œ˜ˆQq»q”3ð©7%áÿûôLÕ endstream endobj 74 0 obj << /Type /FontDescriptor /FontName /QLRLWS+CMTI10 /Flags 4 /FontBBox [-163 -250 1146 969] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/A/B/C/D/E/F/H/L/M/N/O/R/S/T/U/X/a/ampersand/b/c/e/g/h/i/l/m/n/o/period/r/s/slash/t/v/w/y) /FontFile 73 0 R >> endobj 75 0 obj << /Length1 1672 /Length2 10447 /Length3 0 /Length 11395 /Filter /FlateDecode >> stream xÚ­ºUX\ݲ¶»;i ¸;Á‚»{ 8kãîNpww AÁ!Xpww‡àú÷»ÖÞ+Ùë;ý¯îƒ¾Gը穚cÎk4¹²“ˆ©½1PÒÞΙ‰™ ¦ ®ÎÆ `cfeE¢¢œ-ííÄœ|¶Ø" ;7€•“üE¢ˆÙ;x€,Í-œ´btÿ$ñDl K#;€‚‘³Ð\ÃÄÈ fob tö`ˆØØTÿÙáP:A®@Sf$66€©¥‰3Àhni‡Äò';3{Ï¿—M]þ7ä 9Mhÿe“6ijogã0š!±(ÚƒÕ€`/ÿØúïâ’.66ŠF¶ÿ”ÿפþŸ¸‘­¥ÇÿdØÛ:¸8A{S Èî¿Sµ€ÿ6§4µt±ý兀³‘¥‰ˆ¹ Àúï%K'IKw ©²¥³‰Àäü×2ÐÎô¿=€'÷/,2ªŠŸ$Uþç¢þ+¨ldiç¬îáðŸªÿdÿ‹Ùþ0x< Kw€.+x¾làDðçéý—˜„‰½©¥9€‹`y ˜¸^lK;S ;è6ÌÂlgï ÞÏÄ`fBúçŠrsXDþYú7qXDÿ€EìñXÄÿC<¬É?Ä`‘úCìé?ÄžÃëÉý!°žüë)ü!°žâú`Qúñ‚TÿXAíqXÔÿXOã?>‚,F¬`ü‡À &ÿ!.pÌÄÞ|Èÿw…ܲélÝÔÞÆÆôWx À?%Àÿ>bÀ¾Íþ$€}›YºþµãŸ°½ËßÁ)æ!¸7‹ÿ '¸7  àß&Ák–!¸aë¿Ü•Í_nÙö‚(ËŸR\à­v–vÀ¿âàöìÿ¨ƒ7ÛÿŸ0ؽß0¸˜ƒhg4û3N¶ÿYýŸÁp€µ€  Ý_©ÜÿZ³´7ýK<Ç¿<Ž¿†ÅîÝéÿèú×p¸ÀéNàÛê? `U'#'‹¿J€EÿXà»u¶ÿºBஜÝìÿÚ®áòç 5]À·ÈÉÄô÷hÀswýƒìà*î!XÆã/ÏÑóIðVO èß’ÿïsFTÔÞÝ‹‰ÀÄÎÁ¾Õؼ¬¬>ÿ'ÍÄž·ó¿žáàgÕÿ²™%øÁºMçìMøƒ­R›BË}% '*`é!EÍ›ã¿uM·#-ÄCÚ” Ë9Ò¯Õk?Vf`£íÁ=¿sŠlóV•<pŒK›}Ýs5ÜËðly§}•¡à±ë@qtŒþ£iæú„ RijíWyÒ§¢ŸÙýÇùÊ´âêûð+äݺ® Ý™ÁÜ<Ú’6a!õÔäªiŽåáœa«nI 0«ãA¾Vaß–/íÛ\° ò_ Là¢ÙEsšÇ­Ã2˜yW?‹›?¬Fë ¾•t²PgÖt§×DÍ´Ú-þ¸[êœØTkýÚí1ó¼…hL?J¸? O ?ñÁIë¾RUæ˜O¢¹JÃÚ º:H:„•½Tâ?éc¦Ò)!H§(•¦¬ÓóDn,ˆ´£)?e¢Ã2°Ù ðK`£‡±jU"ñJ¼[ñMÇ[¶2áž²MTë«–ãºó(á s<GaîÄ¡ ¯{ç7mþ1ÕÕ)^—/íWö-™¨µÈ‘Jðª Zr1tÅ!Âæ oî$=ùeºGŽßûò$)æ|´7DsÄTÌŠ)YÖE;ÜbÒ?ÆÔFÕ—î|€ÜHb~»Ü>ݽÇsQE,~×£Wéá™Òãf.©nG9Ñ:§€) ƒ”aÂÄæyù µgÖÖì¶þ=¯-ů£ ¡Ã£²±4v]‹ô~-îÝî°Ë,²>OÅösµ¡ÇÜJk±ÃOµ@‹Þ<6¬x-î±ÊЍâ®**Ú K=™ö²ÊóË ¤íÓ†È_9¸ÆéC‚û‹\N²KKž8ÆÝ˜3²³B…ºZ»ÏÈÒ€vŠå˜çÙi4܇VV¥2Ìm]›%¤ÎßòŸùñ¡æßKøT öë:“¿ÚGwR!ÐHÈu"¤ËÅe›’ÃTOåô=6C ]•põC/rs]C®n |uÜTþ¡,×´°ö'8¤‰Ô JÕáÈ ãXÇiZúù5RÊ8ö)’dy9‚¦M#e/ ëódñ0líÉT´ºÔœý\Ý\è´$§Áò¯l!Q Hñgg®mR!¹".LaÏw&ºº~ÈÒ.ŒpB í¦}ôŒªÑ‘†¼X4cCâ¨]œK‹Ý¹õ>ßÒÛk¶jŸH€¼ÚÞ®Ñï¼}H)˜˜"—H ôuÍõn,ËÀEGgNþ•¶R^ÊGð1Å¡ÔØ¾"™Rßò†èE"× M_zޱ£r«¨£êó:_µ–‡O}ïE–³\šªîðßMQœ¨<·qjZšFcT6ÚvöÛåÞ,žŒ› ½ÂFºE¸Y}X]'u[ æ9ùv’ø v]*\ayrźC8m¦ ãö‘o[Ü©Rí[ êüIDáwb•ZÆÒÂŒMiôQ=¼  ŸÑ!P'ÿ;»=ök“åõ¹ÑHÍ…rÚ€ õ®üv¢=Æ™¼æÄwi;³ æ¥Î=‡õ…ë>2g˜Ý.`9öƒÉHñ`º·Ž÷­OИdÖûU—BüDó6â©Um(›=fö—†û`ñ0Ùù"§è“G-ý†i\‹ëâÆSdR 3Õš1s+æ}Æ;kw‡Ñ¢ÎÝíA„68Ù5}†tâsáëHô8,?hѨj‹+pB˜Ò\›ú Ûu°.^'#ûd‰çõx†Z #€ri‹üf; 80Ö²+úH« ¸»_3ÛÅGäubh¥:)í?hlðsVQý–âW¤ç>BÔ¦¥·C­ .¨Ý<ÀuL \â÷aПÁ4M×ô¿Œrò‰2áäEûÞ`·Û?ŒãÊKj3Û ­î¥2Ûøûxv^añ)ÿš3Æ [ššÚ¶¢Ó`¸†)~ ÜQ[*ª’€ÙæÎáûXC: %þÀ·»%µ–jK0xky^~'¬ü˜sÒÉéï}ÐV§â_ˆÉ¶“9_sdóÍE.ôu‹a |-ip~>¤ý–žb”€,1—pgÒ'ððÔ—[:QO¨¶j‘p³©úº9­ïçÚÆÐ±7G¼·ITIFSé¶OñÜë»]tŽD9² KN™ç>oö6w¡¬ Ôʶ¾OÊ®Âý0÷VÒQâ¼ÃXõÏì@ v&É¿šÒ×QûÎÒu•¤JC–Útnr(´Òªü:%]÷ƒ¯Õ@ˆm~ãì1 ˆpß¹Ï+Ezåç±µ§^Ž·½üõâG!üzKÚž¦–î¹g&•&íú#BcqçÇt&%ý7½^œÄvg®ml+,5ög•ìGÎwe‘ÚóÓøÂ[§S šraÂx³2QbÏcX,›ªp ãZÕ<9Ct§Øq#.Õþ•[Kó±HÉx¼£¢¹”4L5ŠÖ1•Žx2Š'°Aæ*«=”ݳ?œ®¨ÿúË%¡»yø—"°\žé…fÃܲ¡7òçò¶Ú>|¬Ù±Û ¡Rm =~Jtód\ô¸nÜ\~:?ÂúYx‡TOZ%ÍÁ ÇX¢|gŽºíþ§ïý 5O;^Þ±GÍÐ0×ô,Ùh:ž³ ÜC==nž¶ü’E]íAs¶KÊDÒÁHÖy]ÌSàEáÏÞ’‹-Á´:%M2òa”ì©¶òhf>~S¢A—ûòøpõØÑ“¬Âðw•ÖR4Öy韥jcnª4 SŠäéè~Þ œ2i džÑ•&a˹r6+Âäà mÆÝÞíåp6:§êBëò‡ê šþ<ë«V%âðs‘pTY[¶ÈÌi0ß§˜ÔûG¹$—Ñ9æÏ×…–¬§L§éÕ—U­)šhðØÄnÑ¿6mfxs×wVÙ*jHN•IUÏ?ÿ*zññD3HÒº¦¡mgž‡×HŸ¦©h±Ó'á·g£o‡³<<ÑGÈûi’.D­Åµçëß5QP%dT£÷‘³ ¥#n([dÅ+ÏÂnÅÜô2ÓÆ{¢mË3ˆ=nB+ ÐGËù‹¹öÝ1³nl‘ZøºjE“g3 \­Où¥n®GZÌ#¾‡DŒ½6pÄÞÉÓ–Q{„àÔ`[eÌ}„VÈmO¼»7‡|Ô¥¤V¹E&=®yÞsçh¦ ÙÊ×,.1lmZ‰ÝM4qr÷Ã*h—|¹èz‘ýAÝí–¢èªãÄ– øûG ÝèÑE¢b~-¨Ér&eiÖ i@0òD‘^E¥†$KL—ºxÍǪ̈…¥gµPž,ŽYÔ=ÜAÇ슉–äßš1!Æ Ãæ5˜\ã$ØYŸJ¦1ñ¥òLÓè I¤X?†j½{Yy¾íSq4(ÿÉŠ°Ã‚£S©Ÿ7HM›NÆá#ÙÿâVmÏS#ÛOªeãjñ—_êÌxcÜ,¥¼ÕD'réñ™>£þÒs{/ª¿Ü$7ÆWb@¾Ï~íeÐÌ!ÿé¦IæTf£K²a°Æ<ÞQØë˜Ì\[UØéø8ûÈëøq~ðÑ”\Y/®p ìg5Sz¹D> c7˜çT#›éõãÂþqCJ|FÈm-m¾‘\|¾¡[AS<¶"JGbãÆŽ6XªifÊ*­™~Ç>¯"ׯ¶TzŒÐñ+‚»¹ƒŸÍ6ò,¬(o~«â­XüÌË´mr8sƧ´(¶Ón0.×%™‰±Ñ¥Êy8v²F@´P™‘èhb±A²«¾8¸÷TÃÇzíñ» ‘ÙŽü–l²1úéçYñcß°hø¬'0"£ÅõqäéÚzª¶µϯž×·±4†´.ЄV~6Çræxj©qT€wµj×Z'zyAKõ¾Ð2ïky©yw× K6Ýú©i’=æÉÖö±…ý2›ùšO6´qôŠTG²Û/Ÿ'†ŒV‹ôþËSY(>AŠT×~ ´¼XsË•„„Ç ÇÑÒdÚ™+¼ã¬^d¢ÃùÎHW+éÜ®Þ×”¯«ùáË4±œ]k²Ï@Å5S×èV`á0¶ ÑWRÔF¥ERo‰¼Öö½¾Žl Í×Úg)È9eˆãL°²Ñ–‰˜NqÒ^P$’ÔV0ú Û@•KŸßÕÈ%i)ý\YCÉÍÕ#pyúY42F_YèÕ qA¾“¸¡;óK/Âí6pD¬Ñá°^ÜóšAaiPEÖðýƒöi‰ˆ båG!!o·á_¢#Ú­¾ˆ­ç"ÁÃn†í¼Ì‰ÂÏÚëŽG{‰¦Í™\PUù¸£Ø¯*_dxøº?ÜM<·-êã¹øJNžY¦B÷ ¡y K°ßqäŽ0îz_r£¿³ëÍ]í›Û 6̹ϓpÞ+oJø Ô.t‘?”'M½+ºôè,¨Ôo`À´ˆLJµÀïÝ«§­SÂ4#ÄGÚÑK%RN½2ƒ:Ÿ•æËË¡ ­Þ4P¾í«I[r'µ´EK-vœ³¤ù\)›ÿ‚5’^ìr’7‚’áÌÏcÂÆ1 2üñ {î5½:ú’ À~mY«w%÷û%6ª—r©[Ü¿ÏlwR(Å~ ñZ=f÷.‘%ïÃMC8žü›hbÇ"+$‡[3¼äBøuá£Üó§Æý+Ò¨¾«a¡"7È4_–àÙ™;z´¶ ½³®Á´!&™FTþPî)OʃñÜbåí0xñ™‹=£ZL±‰‘¡â…¥÷§ªÅ;·bêÚm§8ÑK!èy²Ø’”¡¦˜Æø$Ì. ¬ŠW·²s&×éàPÅKLÝÅ´¡s ÒªÜÔXôŸ‚î›XAº%Y…Ð3NÐC$§„7B É)HÂôö»Œsjyý»÷]õÍÏÅb§.¿g]¬î-RúŒß¼„?iónÈ ¶í¹„%þBiþ¸^OÿqªÞ ?Î •Ò -ºY7ciÄœ¥¶5Ó ’eQmç’«;NoêÑâ´@Ĥ)°Q3BB“ÓP¢óN2>²ýö®VhHà£Ömü+½ÀB-O èâËuJ«ßH\¼ñÎ5Ò6ÛÒgÔÉ­¨z4s*öÞ̺œ÷r44f?iö *X`50ôÖ­“­” Šdˆ>¿¶Uø'H¡a=’1G'4[(ÃÐ%E^0— Öý‚ÀDÙM‰ã±üK Û[ “ƯED°¹j¸º; ¬¦™rrnu¥îlú¨WÎ6Pó`›ŠpJD¯Æµ”«€ÑÈ–ö%’=;Ô4¾ Åì[A¸Ð(ð~ì¾,²ÈA@5²mÖ¼lR™ï9¦ÊÜT»B¼}^5IŠÛžb}Cfa‰b}‚»] ¼LGO DßüÞ=ÇèM‰ÂMJØ›;OVŸVLPgàmî‘kâи~²›/#ÐhšÊ\ž´ƒzÐùEÅH¯ÆÛÃ!°É>v‡!_ªÍŒ3,íP¼(û¥ÁT¯±ø 7mÃOlpæ°Þï@g~ ,0…‡ çÄÅ¡éˆE)o\dsêâÅÐæïœ íÂ#Ÿl^žeÓ‹-ë>Îô‚L*ãiSwëg±u½~xçæÁV’“ÿðDHÓbP¯%‰~«‘LÍÀGáOàÀ&SvÃF£Î¼ðÝÏM1sþ«þf‹w ¤†È&¨]ÿóÀH [T'´³4ù`ç&…ËKæ‘©viÒÇeŽß©Ðqy*UpîDsžgE Êð[Ø’@ÛkÉÝíÂÒΆ5o½¾½’µê‰/ÔyȬçÖž/^Ÿ|gøâb¹>]g)¶ÙÔZú×~ëM!YM‹9]hçØß:^£V vV­F‰|‡¹óž"Ãä xÌWö»‘µ·î€óx¡’è ~û´ŸÔû³‚E=»jgºð¹ s­;^â3BÙ·vF¯J¬“x[¬ò¼ä®mxÑ„Îh‡Zгä¡Ý¯nØ£Éq±žÈ >/07$䯪8Ù܉ö[x!ÇÁŒ-ôÙ-ĸÂæ×wüæ <%fQsÕ`–ª ¦ó!×—2µ8ÄG/°ÑýQ³Hp2w§q¡‘AçP<´ 1“έŠ[-{M²#cyã5µÐ}§TCÚ©ØåÕßÉÑ…y“\‚h]NÆê—%9liÛÚy3~Sã÷–*]{ú®üÊ>Å ýL•·nÝÙ¶þpΧçd\?¯Ì†×6ßø :øÇoi}M Q1ÊÚ:@ßÖªœ/PÏ6#éqâd‹…Á ö-}ï7Žzëìsvµ@ÏÅö'4'Aàb½º™:‚$Ó¦ˆèsrª+î¿Ëé­îm¬ÓÏ!õ`Ï¿šäâ£H"3\dS±´™+Ñlµ£„ïÏPÌ|t_Ú^“ï„Ë\ó¸AMnóq1ªX›ÍÇyW¯õ}sìz¡ÊkXËd¦ÌdÿCtáŒQÙ–ùÐøã`òÕ~F\3Oí6ÓMf‹vk‰¥ík¢?ûö»ažŒ’æßÐÑT‡Oãœ/‹Ï‚¶Šù2Mzò~ •¯—„¶SLpu˜PŽÝáÓùÊ‘wøøkkv™$_.Jƒða2ýR‚ÞETM­0/á6ª ]%³;xjVŽí`„¯cöêZ«äåÛáÛä!Êèy+ÚsæáÏsZ7]0o `ŠóôçE5\2/W"Û•-LÞ¾&éÇšæ1œÝ%lbO„Z9s< /s!·={Ý=Yr'þáýî»–W}´ *+꯺GìA&3’ºbçÍï$Ø0çò¼â[ T™DÆ¥úO)iÔ¢'<±NpG8·h§$ ïý‹¬Û•wž*@2¼á¡»¿¯~‘Êj^µ•>©mÉùr³5£öãá S&;$Ô‹Fv>ØS@òÓ^ÚôZÉeŽ2\$[Û.ÿW`_ší ÎHü%d®tÛS›Ü¦@™{ÓìúèÊsõ²±¤¹C£S~15uäHfläïýòªÏ¤FÉ¢sŽZ³{°²SFÞ6(‡Š3úÚ/. œÊWè“^܃áe ø\§hÊùªÂu³\²L¸ä}!ÃѤ8w$ùV.LêݘŸè—Ù¡®“ù…’ËòßùF·)ñµ ÒåªÓ7ê–”9ésË<„gsúò×o‚8KèhæìÃe2àAäKA„ ,-¯úD±l}Œ¢|Yx:Vwç¸Y©ïõý¾m7Âhh9 Þé  «p// åÃw‰äm-FIÅ”r~*ŧվŽS¹„Õ.}këÊÞÁà_ îK®²ª¼Ç°ò¼È›¸óçÐUÊïé²'þ³Îœ#pÙnë ²MzŠ+(701µÞ™£+!”ú] swkC{'8y—˽?]á»:C€bÞZ“ùƒ7îâ}—-›rJßF—ÑzÆ6ÇîC8°\µˆ×׿„]˜v2"àÝ[è×eØ-’×Vö_½f% °5kÜÖ¶Ù¿Tròî¼½#k3$½»W”w‚xàÈvºééP ÃC*xä%ÑØ¸¸NVýÓ”‰%Ý®…Öb Ê%oà"ùOüôƒˆåJ“*>ñ5|!_¢„a6ÄG`j=ãMK÷ñé~¥$ÿ* eh½ŠÇ hsj1Žjº£kÐݦi^Ô#ö@Ù.ÿm}X=À^\Po§"¸@Ú0§²(ÚJù öwöË ijU­kcíà9Sˆ¢ñxC¹y¨›­ž›†èØ]›=¡•~€òÂÅU…=F"_Oµü2u2ÇãT°oÖÜ™áUdá2ëÇ;ã÷²íHÄMЇ¤{çt>?íÉEt@ŠQnÇë=eÔ¶K±ö´îRdvüåÐÔŒV—qaÔÁîãî^ úœ|NÈ1 …’ ˆžE9~|)=_°œ¤…2oBÆ:Og`:™?#BûeW(ßä^¯j6׬u톈]þå+4ùIZa×]©hL»©¢„Hñú´eSp¯ãÞÝú±ãWœE/ì/Ì #ˆ»•×µW±í,C©÷klÎü/ü8‚V/á6ä:C{H™™+9Y¿¤4¾;7ª‰µé‘’²™&¾þd’Aê3µòígHa ™ÚqSEŠiä‡JÎÏ Є¾(°Â?mîÄv´XE´Ò_Ý•:E(‹òZóÔ[mOm¬Ãƾ²qN sú+­êžÇ¥_š=j“V 7D)}š¸ÌOõkM1!ÊHÛþ‰úˆjlB{ ÷¥NóGˆêÈîM³œ—ò7ŒFs á†h~b¾!áú›uéÀ@TJµ_:£€VÒ#¯}HÊ=Zž³–SOvœþÖZxCõSPlÖ{·fªöž5J«û2§}ê óÇfÖ½ìrÛ€ ‰¨6–|›cß¹Cjó¦~椺ÄjU½õŒ%£üh„·ÝfÂlëäG1ºÎØ'“2”Ý´þ¥Å sÁ]$º¸ëìøê–ùIg5@E‘ä1§„áèíàL/šÂÓÉ%T:U‘ÉçD].ÙóòŽã¾Ò7ÄéÉ0¶Š'[îd»ˆ!ÅùÖrÀªíÏÙÆfx 4q{Q9ÍÉ’C Hâ'2Úž§ÇÉÒé4Ki‚©éô~G|g™˜TWÇçAÞίÃ~v%A Âúnsb=Ýe3°þƒYÚ*¸ß…7, ѲÊM2ä:Ôâ¶èByà·ŠGIFëù#Õæa¦ƒ bå•ù8<8î mÄh‰ÃcÃIí$·opÎö¹³Kßï³&ÁùÈÞ±bêE°–Ï裦Tñj5Ö\-À©¹b?"©Éç"Rй­Ž î¯2?” Ñª»e‚·¿!øM½MÀ-0˜RÓ³¶ëô5¬A¬ ×±Œ}Ït-¯l5o÷ߨg˜(ö˜+àÐÈ®TŽð½[Òܹî¶s¾¥º%;[¶^jS}÷1gPwëQkN™ßjŒ˜žƒm¿1’.t«¼ur¨Ò¶ú%s† ÎåƒZÄó` ‹Y pßÿ*ãEkÀ» VßúØ3],l¨î:ýÞõÔ.%õëDô\ ’®Ã"ÿ;žÏ0Žª‡EIÕr ©× Íâ´ o u›v¯ |ÂÒêð&ƒ9{‡!OÂéÆ1$.kâ¶Òrܶ]š*¾;Ïf²žpjxOYߎ# úâ5°¸†:¡J+Ø'ï"Vɼ L\ØÏeUãŠcpè_âl„O|Ç>K1„D“üô¼9FæœÜKè–°…9²:’Gâ=ªAj@Žf8â;œÏ–L|© ç>Ä-m®‹_½ñL½¼ž¥‚­‘ çEŒåè Sré¦GcG¥nüŽréǘ847soßw6$XIU ׿?]m#»H‚ã ÇÌÄPß!5AÂ¥™ÉÜÞÞeÈæNÅ ê£h/q¶ÇÏÿ¾?Åžc[”ÜNCšåÁ˜>PYŽÉé€Ç›>¦oIê¼N=Õü‚tidú½'Ü@Z”o"ágÍÏ5œÂ¶¯^å%·[ì}lP럔™OÜC£*dNq?·ÄU&•àñ²M˜sÖj‘[à·lñmãñˆ…Y¤c\_cYÐÇ< U{îå{\ç¿OŽ?UM6D#s§£$«ë\îãÿN¼XUDD³‹Ö¨úÜÌè6ù GÛJ÷J+2·‰|°ž”ºÍ[½pò%Èç=‹Ú"ˆšßjöPxߤŸÚ<Š½Ý™Âù¥î‰]”S__3NAßÎnw;JIª©­iŸaŒ7F Dbc©Ëì›Q_l¶Dc›/%“о„ž‘˜£T&ŸR4 Œ³|'TyAo­Œ|ƒñ=Ôkf Èïb–†d~к`/£@ÁU'ΖgBÈúÄ-¢wþDà5tZ»…¿kD\kËâY§2kýŬâRÙ¹ë†Ý«Q%F²¥› î[ýz3¿íG•;‰=º(~Í%¼%T¤´AWT†r5úCN8#5²MÙˆ/Y+3]Ⱥv°°s²‹d< ƒ[ð=I†÷_f[©$ƒ¯hº:ƒQºW´pưÈ@#_dt ŒÓ¸gŸÜ®&ó I ½>Ëpjͤ›ÉnÆ«¨ÏD¡n.òÉØ4G¤ézÅ\_9ð&Ï`Ný·Ìz†”¶w¯Q 0âñÒ:URòdw…7&æÃ«úû ,˜l¨² 4#©¢"uij±RÅëb¥ 5ž·s°šØ6ðºt{E¶oðã(—¯¸ÚWV^Ÿœð=Y÷Xû^LÇT?δiD;9çm Œ»ÍÑmÜÜuënÆä—xm$I¦ï_¿ø¢^VüèÆ"Iñ *ÝŠw“·Mì­°¯àÄíEhÜ}^ôë¢>Ó·Ä/¸Zlúr| u«åÄé×SŸüý¿2{Ì€âp¯ZT:)kXQM—ºFXL[ÇLuèû®— •¤éá6Ò*F[Öõ’õ:z1ÅfCiâ»`ü_¨!ˆƒk™6t8ÄoáŽb»Rˆ)ì ~ª­Î1d1A¬_Ö}@®4‡é}Oë÷²DÌÆù°OC”dæ[ú‡)—ÕZS$gZâgXS=ÉFݼu¾³_èÊX Ì=ޏJR‚Í=´"’ú™ÕÁfë§…òÚ„Á<Q—%¸âùœd¢j1FàR͘¼_]¡÷š%3z*ÜðK·aŸÃ÷ùÙŒÊ"µ(Ñr9!ª»%ß£ÙØŠª´Øi‘³ÑÐ ì+/µ)6ëIf\UîiâÛ®›(·4O*4¹~©6w²šj²ìDS¼8Ñç(\œžÛ awˆ†Ê6‰ã*ÑmèVó›NŸmä-ÄÁF›¾›1¼ÐÌÝ£æÚO\äØïéúW>¦žòô´¶“"i‡e ÖT–ßG<,a`‡<õxÄÉÓ¢”mèH§éã’³-`_Ç„9ºJF¥7q]ßò=o¥)ÓÑe0µl°]4ÜàÌ„ŠïY§Â=ËÜ«g…Ë\ää×Ó©Ý` f˜>L{t§yÔ.EôQ“éNÜ< ×g´‹Ÿ°ÖŒ?`a»N¶…&ÆT†¡u_‚h—‹¾;a§²rWœ4œ‚pŠ!É’[™#³)Ê(vㆤw1g¡Éйв³÷Zâ U¿c½`´ I+AÅx¢Õm!R¾RŠ å(%`„«^Ç ¡úXà b9x?×G@Ï“ö²?FÇÖ=“Eé½5ÅEr­°·k-[N3ã˜6LøPÁ,9NiÂŒs|"üÉ+'~ÙØKß?‰'Ôí]yyà?b§îÐjþ œH!JO NY Fº˜Ó®3´æ·Ëžü=˜õc’==­¬£™Ì—­ì´¯ ŒÓ¡£fuµë aÖïCr¤°[Iúµ¹lpIïÛH|nH/mT{¾ß¡«m»þTþ`( endstream endobj 76 0 obj << /Type /FontDescriptor /FontName /IRNYFQ+CMTT10 /Flags 4 /FontBBox [-4 -235 731 800] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/F/G/H/I/K/L/M/N/O/R/S/T/U/a/b/c/colon/d/dollar/e/eight/f/five/four/g/h/hyphen/i/k/l/m/n/nine/o/one/p/parenleft/parenright/percent/period/q/r/s/seven/six/slash/t/three/two/u/underscore/v/x/y/z/zero) /FontFile 75 0 R >> endobj 11 0 obj << /Type /Font /Subtype /Type1 /BaseFont /KYKEEJ+CMBX10 /FontDescriptor 62 0 R /FirstChar 38 /LastChar 120 /Widths 57 0 R >> endobj 4 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IJZYJS+CMBX12 /FontDescriptor 64 0 R /FirstChar 33 /LastChar 120 /Widths 60 0 R >> endobj 6 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZHMNTZ+CMR10 /FontDescriptor 66 0 R /FirstChar 11 /LastChar 122 /Widths 58 0 R >> endobj 48 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TAFCBE+CMR6 /FontDescriptor 68 0 R /FirstChar 11 /LastChar 122 /Widths 53 0 R >> endobj 5 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NYFQAI+CMSL10 /FontDescriptor 70 0 R /FirstChar 45 /LastChar 119 /Widths 59 0 R >> endobj 38 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ASZHDD+CMSY10 /FontDescriptor 72 0 R /FirstChar 33 /LastChar 33 /Widths 54 0 R >> endobj 33 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QLRLWS+CMTI10 /FontDescriptor 74 0 R /FirstChar 38 /LastChar 121 /Widths 56 0 R >> endobj 37 0 obj << /Type /Font /Subtype /Type1 /BaseFont /IRNYFQ+CMTT10 /FontDescriptor 76 0 R /FirstChar 36 /LastChar 122 /Widths 55 0 R >> endobj 7 0 obj << /Type /Pages /Count 6 /Parent 77 0 R /Kids [2 0 R 9 0 R 13 0 R 16 0 R 19 0 R 23 0 R] >> endobj 28 0 obj << /Type /Pages /Count 6 /Parent 77 0 R /Kids [26 0 R 31 0 R 35 0 R 40 0 R 43 0 R 46 0 R] >> endobj 52 0 obj << /Type /Pages /Count 1 /Parent 77 0 R /Kids [50 0 R] >> endobj 77 0 obj << /Type /Pages /Count 13 /Kids [7 0 R 28 0 R 52 0 R] >> endobj 78 0 obj << /Type /Catalog /Pages 77 0 R >> endobj 79 0 obj << /Producer (pdfTeX-1.40.3) /Creator (TeX) /CreationDate (D:20071111221238Z) /ModDate (D:20071111221238Z) /Trapped /False /PTEX.Fullbanner (This is pdfTeX using libpoppler, Version 3.141592-1.40.3-2.2 (Web2C 7.5.6) kpathsea version 3.5.6) >> endobj xref 0 80 0000000000 65535 f 0000001200 00000 n 0000001089 00000 n 0000000015 00000 n 0000116085 00000 n 0000116503 00000 n 0000116225 00000 n 0000117065 00000 n 0000002045 00000 n 0000001933 00000 n 0000001290 00000 n 0000115944 00000 n 0000004149 00000 n 0000004035 00000 n 0000002136 00000 n 0000005390 00000 n 0000005276 00000 n 0000004229 00000 n 0000007766 00000 n 0000007652 00000 n 0000005470 00000 n 0000009578 00000 n 0000009006 00000 n 0000008892 00000 n 0000007846 00000 n 0000021469 00000 n 0000009463 00000 n 0000009086 00000 n 0000117171 00000 n 0000021069 00000 n 0000023390 00000 n 0000023275 00000 n 0000021584 00000 n 0000116783 00000 n 0000025500 00000 n 0000025385 00000 n 0000023482 00000 n 0000116924 00000 n 0000116643 00000 n 0000026944 00000 n 0000026829 00000 n 0000025616 00000 n 0000027373 00000 n 0000027258 00000 n 0000027048 00000 n 0000031947 00000 n 0000031832 00000 n 0000027442 00000 n 0000116364 00000 n 0000033374 00000 n 0000033259 00000 n 0000032039 00000 n 0000117280 00000 n 0000033466 00000 n 0000034157 00000 n 0000034180 00000 n 0000034546 00000 n 0000035050 00000 n 0000035528 00000 n 0000036150 00000 n 0000036571 00000 n 0000037083 00000 n 0000046288 00000 n 0000046622 00000 n 0000055540 00000 n 0000055894 00000 n 0000071584 00000 n 0000072048 00000 n 0000085028 00000 n 0000085490 00000 n 0000092372 00000 n 0000092662 00000 n 0000093934 00000 n 0000094163 00000 n 0000103702 00000 n 0000104010 00000 n 0000115525 00000 n 0000117354 00000 n 0000117427 00000 n 0000117478 00000 n trailer << /Size 80 /Root 78 0 R /Info 79 0 R /ID [<66AE622BABD838F27E2D4F836BF70A8B> <66AE622BABD838F27E2D4F836BF70A8B>] >> startxref 117737 %%EOF uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/000077500000000000000000000000001224274632000200005ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/000077500000000000000000000000001224274632000214475ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/.gitignore000066400000000000000000000000101224274632000234260ustar00rootroot00000000000000/aeMB2* uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_bpcu.v000066400000000000000000000125041224274632000234550ustar00rootroot00000000000000// $Id: aeMB_bpcu.v,v 1.4 2007/11/14 22:14:34 sybreon Exp $ // // AEMB BRANCH PROGRAMME COUNTER UNIT // // Copyright (C) 2004-2007 Shawn Tan Ser Ngiap // // This file is part of AEMB. // // AEMB is free software: you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // AEMB is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General // Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with AEMB. If not, see . // // $Log: aeMB_bpcu.v,v $ // Revision 1.4 2007/11/14 22:14:34 sybreon // Changed interrupt handling system (reported by M. Ettus). // // Revision 1.3 2007/11/10 16:39:38 sybreon // Upgraded license to LGPLv3. // Significant performance optimisations. // // Revision 1.2 2007/11/02 19:20:58 sybreon // Added better (beta) interrupt support. // Changed MSR_IE to disabled at reset as per MB docs. // // Revision 1.1 2007/11/02 03:25:39 sybreon // New EDK 3.2 compatible design with optional barrel-shifter and multiplier. // Fixed various minor data hazard bugs. // Code compatible with -O0/1/2/3/s generated code. // module aeMB_bpcu (/*AUTOARG*/ // Outputs iwb_adr_o, rPC, rPCLNK, rBRA, rDLY, // Inputs rMXALT, rOPC, rRD, rRA, rRESULT, rDWBDI, rREGA, gclk, grst, gena ); parameter IW = 24; // INST WISHBONE output [IW-1:2] iwb_adr_o; // INTERNAL output [31:2] rPC, rPCLNK; output rBRA; output rDLY; //output [1:0] rATOM; //output [1:0] xATOM; input [1:0] rMXALT; input [5:0] rOPC; input [4:0] rRD, rRA; input [31:0] rRESULT; // ALU input [31:0] rDWBDI; // RAM input [31:0] rREGA; //input [1:0] rXCE; // SYSTEM input gclk, grst, gena; // --- BRANCH CONTROL -------------------------------------------- // Controls the branch and delay flags wire fRTD = (rOPC == 6'o55); wire fBCC = (rOPC == 6'o47) | (rOPC == 6'o57); wire fBRU = (rOPC == 6'o46) | (rOPC == 6'o56); wire [31:0] wREGA; assign wREGA = (rMXALT == 2'o2) ? rDWBDI : (rMXALT == 2'o1) ? rRESULT : rREGA; wire wBEQ = (wREGA == 32'd0); wire wBNE = ~wBEQ; wire wBLT = wREGA[31]; wire wBLE = wBLT | wBEQ; wire wBGE = ~wBLT; wire wBGT = ~wBLE; reg xXCC; always @(/*AUTOSENSE*/rRD or wBEQ or wBGE or wBGT or wBLE or wBLT or wBNE) case (rRD[2:0]) 3'o0: xXCC <= wBEQ; 3'o1: xXCC <= wBNE; 3'o2: xXCC <= wBLT; 3'o3: xXCC <= wBLE; 3'o4: xXCC <= wBGT; 3'o5: xXCC <= wBGE; default: xXCC <= 1'bX; endcase // case (rRD[2:0]) reg rBRA, xBRA; reg rDLY, xDLY; wire fSKIP = rBRA & !rDLY; always @(/*AUTOSENSE*/fBCC or fBRU or fRTD or rBRA or rRA or rRD or xXCC) //if (rBRA | |rXCE) begin if (rBRA) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xBRA <= 1'h0; xDLY <= 1'h0; // End of automatics end else begin xDLY <= (fBRU & rRA[4]) | (fBCC & rRD[4]) | fRTD; xBRA <= (fRTD | fBRU) ? 1'b1 : (fBCC) ? xXCC : 1'b0; end // --- PC PIPELINE ------------------------------------------------ // PC and related changes reg [31:2] rIPC, xIPC; reg [31:2] rPC, xPC; reg [31:2] rPCLNK, xPCLNK; assign iwb_adr_o = gena ? xIPC[IW-1:2] : rIPC[IW-1:2]; //IJB always @(/*AUTOSENSE*/rBRA or rIPC or rPC or rRESULT) begin //xPCLNK <= (^rATOM) ? rPC : rPC; xPCLNK <= rPC; //xPC <= (^rATOM) ? rIPC : rRESULT[31:2]; xPC <= rIPC; //xIPC <= (rBRA) ? rRESULT[31:2] : (rIPC + 1); /* case (rXCE) 2'o1: xIPC <= 30'h2; 2'o2: xIPC <= 30'h4; 2'o3: xIPC <= 30'h6; default: xIPC <= (rBRA) ? rRESULT[31:2] : (rIPC + 1); endcase // case (rXCE) */ xIPC <= (rBRA) ? rRESULT[31:2] : (rIPC + 1); end // --- ATOMIC CONTROL --------------------------------------------- // This is used to indicate 'safe' instruction borders. wire wIMM = (rOPC == 6'o54) & !fSKIP; wire wRTD = (rOPC == 6'o55) & !fSKIP; wire wBCC = xXCC & ((rOPC == 6'o47) | (rOPC == 6'o57)) & !fSKIP; wire wBRU = ((rOPC == 6'o46) | (rOPC == 6'o56)) & !fSKIP; wire fATOM = ~(wIMM | wRTD | wBCC | wBRU | rBRA); reg [1:0] rATOM, xATOM; always @(/*AUTOSENSE*/fATOM or rATOM) xATOM <= {rATOM[0], (rATOM[0] ^ fATOM)}; // --- SYNC PIPELINE ---------------------------------------------- always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rATOM <= 2'h0; rBRA <= 1'h0; rDLY <= 1'h0; // rIPC <= 30'h0; rIPC <= 30'h3fffffff; // DWORD aligned address rPC <= 30'h0; rPCLNK <= 30'h0; // End of automatics end else if (gena) begin rIPC <= #1 xIPC; rBRA <= #1 xBRA; rPC <= #1 xPC; rPCLNK <= #1 xPCLNK; rDLY <= #1 xDLY; rATOM <= #1 xATOM; end endmodule // aeMB_bpcu uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_core.v000066400000000000000000000112641224274632000234560ustar00rootroot00000000000000// $Id: aeMB_core.v,v 1.9 2007/11/23 14:06:41 sybreon Exp $ // // AEMB 32'bit RISC MICROPROCESSOR CORE // // Copyright (C) 2004-2007 Shawn Tan Ser Ngiap // // This file is part of AEMB. // // AEMB is free software: you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // AEMB is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General // Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with AEMB. If not, see . // // HISTORY // $Log: aeMB_core.v,v $ // Revision 1.9 2007/11/23 14:06:41 sybreon // Old version deprecated. // // Revision 1.8 2007/10/22 19:12:59 sybreon // Made some changes to the interrupt control. In some cases, the interrupt logic waits forever and doesn't execute. Bug was discovered by M. Ettus. // // Revision 1.7 2007/05/30 18:44:30 sybreon // Added interrupt support. // // Revision 1.6 2007/05/17 09:08:21 sybreon // Removed asynchronous reset signal. // // Revision 1.5 2007/04/27 00:23:55 sybreon // Added code documentation. // Improved size & speed of rtl/verilog/aeMB_aslu.v // // Revision 1.4 2007/04/25 22:15:04 sybreon // Added support for 8-bit and 16-bit data types. // // Revision 1.3 2007/04/11 04:30:43 sybreon // Added pipeline stalling from incomplete bus cycles. // Separated sync and async portions of code. // // Revision 1.2 2007/04/04 06:13:23 sybreon // Removed unused signals // // Revision 1.1 2007/03/09 17:52:17 sybreon // initial import // module aeMB_core (/*AUTOARG*/ // Outputs iwb_stb_o, iwb_adr_o, fsl_wre_o, fsl_tag_o, fsl_stb_o, fsl_dat_o, fsl_adr_o, dwb_wre_o, dwb_stb_o, dwb_sel_o, dwb_dat_o, dwb_adr_o, // Inputs sys_rst_i, sys_int_i, sys_clk_i, iwb_dat_i, iwb_ack_i, fsl_dat_i, fsl_ack_i, dwb_dat_i, dwb_ack_i ); // Instruction WB address space parameter ISIZ = 32; // Data WB address space parameter DSIZ = 32; // Multiplier parameter MUL = 1; // Barrel Shifter parameter BSF = 1; /*AUTOOUTPUT*/ // Beginning of automatic outputs (from unused autoinst outputs) output [DSIZ-1:2] dwb_adr_o; // From edk32 of aeMB_edk32.v output [31:0] dwb_dat_o; // From edk32 of aeMB_edk32.v output [3:0] dwb_sel_o; // From edk32 of aeMB_edk32.v output dwb_stb_o; // From edk32 of aeMB_edk32.v output dwb_wre_o; // From edk32 of aeMB_edk32.v output [6:2] fsl_adr_o; // From edk32 of aeMB_edk32.v output [31:0] fsl_dat_o; // From edk32 of aeMB_edk32.v output fsl_stb_o; // From edk32 of aeMB_edk32.v output [1:0] fsl_tag_o; // From edk32 of aeMB_edk32.v output fsl_wre_o; // From edk32 of aeMB_edk32.v output [ISIZ-1:2] iwb_adr_o; // From edk32 of aeMB_edk32.v output iwb_stb_o; // From edk32 of aeMB_edk32.v // End of automatics /*AUTOINPUT*/ // Beginning of automatic inputs (from unused autoinst inputs) input dwb_ack_i; // To edk32 of aeMB_edk32.v input [31:0] dwb_dat_i; // To edk32 of aeMB_edk32.v input fsl_ack_i; // To edk32 of aeMB_edk32.v input [31:0] fsl_dat_i; // To edk32 of aeMB_edk32.v input iwb_ack_i; // To edk32 of aeMB_edk32.v input [31:0] iwb_dat_i; // To edk32 of aeMB_edk32.v input sys_clk_i; // To edk32 of aeMB_edk32.v input sys_int_i; // To edk32 of aeMB_edk32.v input sys_rst_i; // To edk32 of aeMB_edk32.v // End of automatics /*AUTOWIRE*/ // INSTANTIATIONS ///////////////////////////////////////////////////////////////// /* aeMB_edk32 AUTO_TEMPLATE ( .dwb_adr_o(dwb_adr_o[DSIZ-1:2]), .iwb_adr_o(iwb_adr_o[ISIZ-1:2]), ); */ aeMB_edk32 #(ISIZ, DSIZ, MUL, BSF) edk32 (/*AUTOINST*/ // Outputs .dwb_adr_o (dwb_adr_o[DSIZ-1:2]), // Templated .dwb_dat_o (dwb_dat_o[31:0]), .dwb_sel_o (dwb_sel_o[3:0]), .dwb_stb_o (dwb_stb_o), .dwb_wre_o (dwb_wre_o), .fsl_adr_o (fsl_adr_o[6:2]), .fsl_dat_o (fsl_dat_o[31:0]), .fsl_stb_o (fsl_stb_o), .fsl_tag_o (fsl_tag_o[1:0]), .fsl_wre_o (fsl_wre_o), .iwb_adr_o (iwb_adr_o[ISIZ-1:2]), // Templated .iwb_stb_o (iwb_stb_o), // Inputs .dwb_ack_i (dwb_ack_i), .dwb_dat_i (dwb_dat_i[31:0]), .fsl_ack_i (fsl_ack_i), .fsl_dat_i (fsl_dat_i[31:0]), .iwb_ack_i (iwb_ack_i), .iwb_dat_i (iwb_dat_i[31:0]), .sys_int_i (sys_int_i), .sys_clk_i (sys_clk_i), .sys_rst_i (sys_rst_i)); endmodule // aeMB_core uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_core_BE.v000066400000000000000000000034611224274632000240240ustar00rootroot00000000000000 // Wrapper for aeMB core: // Drive wb_cyc_o (just tied to wb_stb_o for now) // Make input reset active high (like the signal name makes it sound....) // No longer needed // Make it big-endian like the standard MicroBlaze module aeMB_core_BE #(parameter ISIZ=32, parameter DSIZ=32, parameter MUL=0, parameter BSF=0) (input sys_clk_i, input sys_rst_i, // Instruction port output [ISIZ-1:0] if_adr, input [31:0] if_dat, // Data port output dwb_we_o, output dwb_stb_o, output [DSIZ-1:0] dwb_adr_o, output [31:0] dwb_dat_o, input [31:0] dwb_dat_i, input dwb_ack_i, output [3:0] dwb_sel_o, output dwb_cyc_o, input sys_int_i, input sys_exc_i); wire [ISIZ-1:0] iwb_adr_o; wire [31:0] iwb_dat_i; wire iwb_ack_i; wire iwb_stb_o; assign dwb_cyc_o = dwb_stb_o; assign iwb_ack_i = 1'b1; assign if_adr = iwb_adr_o[ISIZ-1:0]; assign iwb_dat_i = if_dat; // Note some "wishbone" instruction fetch signals pruned on external interface // but not propogated change deep into aeMB. aeMB_edk32 #(.IW(ISIZ),.DW(DSIZ),.MUL(MUL),.BSF(BSF)) aeMB_edk32 (.sys_clk_i(sys_clk_i), .sys_rst_i(sys_rst_i), // Instruction Port .iwb_stb_o(iwb_stb_o), .iwb_adr_o(iwb_adr_o[ISIZ-1:2]), .iwb_ack_i(iwb_ack_i), .iwb_dat_i(iwb_dat_i), // Data port .dwb_wre_o(dwb_we_o), .dwb_stb_o(dwb_stb_o), .dwb_adr_o(dwb_adr_o[DSIZ-1:2]), .dwb_ack_i(dwb_ack_i), .dwb_sel_o(dwb_sel_o), .dwb_dat_i(dwb_dat_i), .dwb_dat_o(dwb_dat_o), .fsl_wre_o(), .fsl_tag_o(), .fsl_stb_o(), .fsl_dat_o(), .fsl_adr_o(), .fsl_dat_i(32'b0), .fsl_ack_i(1'b0), .sys_int_i(sys_int_i) ); assign iwb_adr_o[1:0] = 2'b0; assign dwb_adr_o[1:0] = 2'b0; endmodule // aeMB_core_BE uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_ctrl.v000066400000000000000000000215511224274632000234720ustar00rootroot00000000000000// $Id: aeMB_ctrl.v,v 1.10 2007/11/30 16:44:40 sybreon Exp $ // // AEMB CONTROL UNIT // // Copyright (C) 2004-2007 Shawn Tan Ser Ngiap // // This file is part of AEMB. // // AEMB is free software: you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // AEMB is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General // Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with AEMB. If not, see . // // $Log: aeMB_ctrl.v,v $ // Revision 1.10 2007/11/30 16:44:40 sybreon // Minor code cleanup. // // Revision 1.9 2007/11/15 09:26:43 sybreon // Fixed minor typo causing synthesis failure. // // Revision 1.8 2007/11/14 23:19:24 sybreon // Fixed minor typo. // // Revision 1.7 2007/11/14 22:14:34 sybreon // Changed interrupt handling system (reported by M. Ettus). // // Revision 1.6 2007/11/10 16:39:38 sybreon // Upgraded license to LGPLv3. // Significant performance optimisations. // // Revision 1.5 2007/11/09 20:51:52 sybreon // Added GET/PUT support through a FSL bus. // // Revision 1.4 2007/11/08 17:48:14 sybreon // Fixed data WISHBONE arbitration problem (reported by J Lee). // // Revision 1.3 2007/11/08 14:17:47 sybreon // Parameterised optional components. // // Revision 1.2 2007/11/02 19:20:58 sybreon // Added better (beta) interrupt support. // Changed MSR_IE to disabled at reset as per MB docs. // // Revision 1.1 2007/11/02 03:25:40 sybreon // New EDK 3.2 compatible design with optional barrel-shifter and multiplier. // Fixed various minor data hazard bugs. // Code compatible with -O0/1/2/3/s generated code. // module aeMB_ctrl (/*AUTOARG*/ // Outputs rMXDST, rMXSRC, rMXTGT, rMXALT, rMXALU, rRW, dwb_stb_o, dwb_wre_o, fsl_stb_o, fsl_wre_o, // Inputs rDLY, rIMM, rALT, rOPC, rRD, rRA, rRB, rPC, rBRA, rMSR_IE, xIREG, dwb_ack_i, iwb_ack_i, fsl_ack_i, gclk, grst, gena ); // INTERNAL //output [31:2] rPCLNK; output [1:0] rMXDST; output [1:0] rMXSRC, rMXTGT, rMXALT; output [2:0] rMXALU; output [4:0] rRW; input rDLY; input [15:0] rIMM; input [10:0] rALT; input [5:0] rOPC; input [4:0] rRD, rRA, rRB; input [31:2] rPC; input rBRA; input rMSR_IE; input [31:0] xIREG; // DATA WISHBONE output dwb_stb_o; output dwb_wre_o; input dwb_ack_i; // INST WISHBONE input iwb_ack_i; // FSL WISHBONE output fsl_stb_o; output fsl_wre_o; input fsl_ack_i; // SYSTEM input gclk, grst, gena; // --- DECODE INSTRUCTIONS // TODO: Simplify wire [5:0] wOPC; wire [4:0] wRD, wRA, wRB; wire [10:0] wALT; assign {wOPC, wRD, wRA, wRB, wALT} = xIREG; // FIXME: Endian wire fSFT = (rOPC == 6'o44); wire fLOG = ({rOPC[5:4],rOPC[2]} == 3'o4); wire fMUL = (rOPC == 6'o20) | (rOPC == 6'o30); wire fBSF = (rOPC == 6'o21) | (rOPC == 6'o31); wire fDIV = (rOPC == 6'o22); wire fRTD = (rOPC == 6'o55); wire fBCC = (rOPC == 6'o47) | (rOPC == 6'o57); wire fBRU = (rOPC == 6'o46) | (rOPC == 6'o56); wire fBRA = fBRU & rRA[3]; wire fIMM = (rOPC == 6'o54); wire fMOV = (rOPC == 6'o45); wire fLOD = ({rOPC[5:4],rOPC[2]} == 3'o6); wire fSTR = ({rOPC[5:4],rOPC[2]} == 3'o7); wire fLDST = (&rOPC[5:4]); wire fPUT = (rOPC == 6'o33) & rRB[4]; wire fGET = (rOPC == 6'o33) & !rRB[4]; wire wSFT = (wOPC == 6'o44); wire wLOG = ({wOPC[5:4],wOPC[2]} == 3'o4); wire wMUL = (wOPC == 6'o20) | (wOPC == 6'o30); wire wBSF = (wOPC == 6'o21) | (wOPC == 6'o31); wire wDIV = (wOPC == 6'o22); wire wRTD = (wOPC == 6'o55); wire wBCC = (wOPC == 6'o47) | (wOPC == 6'o57); wire wBRU = (wOPC == 6'o46) | (wOPC == 6'o56); wire wBRA = wBRU & wRA[3]; wire wIMM = (wOPC == 6'o54); wire wMOV = (wOPC == 6'o45); wire wLOD = ({wOPC[5:4],wOPC[2]} == 3'o6); wire wSTR = ({wOPC[5:4],wOPC[2]} == 3'o7); wire wLDST = (&wOPC[5:4]); wire wPUT = (wOPC == 6'o33) & wRB[4]; wire wGET = (wOPC == 6'o33) & !wRB[4]; // --- BRANCH SLOT REGISTERS --------------------------- reg [31:2] rPCLNK, xPCLNK; reg [1:0] rMXDST, xMXDST; reg [4:0] rRW, xRW; reg [1:0] rMXSRC, xMXSRC; reg [1:0] rMXTGT, xMXTGT; reg [1:0] rMXALT, xMXALT; // --- OPERAND SELECTOR --------------------------------- wire wRDWE = |xRW; wire wAFWD_M = (xRW == wRA) & (xMXDST == 2'o2) & wRDWE; wire wBFWD_M = (xRW == wRB) & (xMXDST == 2'o2) & wRDWE; wire wAFWD_R = (xRW == wRA) & (xMXDST == 2'o0) & wRDWE; wire wBFWD_R = (xRW == wRB) & (xMXDST == 2'o0) & wRDWE; always @(/*AUTOSENSE*/rBRA or wAFWD_M or wAFWD_R or wBCC or wBFWD_M or wBFWD_R or wBRU or wOPC) //if (rBRA | |rXCE) begin if (rBRA) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xMXALT <= 2'h0; xMXSRC <= 2'h0; xMXTGT <= 2'h0; // End of automatics end else begin xMXSRC <= (wBRU | wBCC) ? 2'o3 : // PC (wAFWD_M) ? 2'o2 : // RAM (wAFWD_R) ? 2'o1 : // FWD 2'o0; // REG xMXTGT <= (wOPC[3]) ? 2'o3 : // IMM (wBFWD_M) ? 2'o2 : // RAM (wBFWD_R) ? 2'o1 : // FWD 2'o0; // REG xMXALT <= (wAFWD_M) ? 2'o2 : // RAM (wAFWD_R) ? 2'o1 : // FWD 2'o0; // REG end // else: !if(rBRA) // --- ALU CONTROL --------------------------------------- reg [2:0] rMXALU, xMXALU; always @(/*AUTOSENSE*/rBRA or wBRA or wBSF or wDIV or wLOG or wMOV or wMUL or wSFT) //if (rBRA | |rXCE) begin if (rBRA) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xMXALU <= 3'h0; // End of automatics end else begin xMXALU <= (wBRA | wMOV) ? 3'o3 : (wSFT) ? 3'o2 : (wLOG) ? 3'o1 : (wMUL) ? 3'o4 : (wBSF) ? 3'o5 : (wDIV) ? 3'o6 : 3'o0; end // else: !if(rBRA) // --- DELAY SLOT REGISTERS ------------------------------ wire fSKIP = (rBRA & !rDLY); always @(/*AUTOSENSE*/fBCC or fBRU or fGET or fLOD or fRTD or fSKIP or fSTR or rRD) if (fSKIP) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xMXDST <= 2'h0; xRW <= 5'h0; // End of automatics end else begin xMXDST <= (fSTR | fRTD | fBCC) ? 2'o3 : (fLOD | fGET) ? 2'o2 : (fBRU) ? 2'o1 : 2'o0; xRW <= rRD; end // else: !if(fSKIP) // --- DATA WISHBONE ---------------------------------- wire fDACK = !(dwb_stb_o ^ dwb_ack_i); reg rDWBSTB, xDWBSTB; reg rDWBWRE, xDWBWRE; assign dwb_stb_o = rDWBSTB; assign dwb_wre_o = rDWBWRE; always @(/*AUTOSENSE*/fLOD or fSKIP or fSTR or iwb_ack_i) //if (fSKIP | |rXCE) begin if (fSKIP) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xDWBSTB <= 1'h0; xDWBWRE <= 1'h0; // End of automatics end else begin xDWBSTB <= (fLOD | fSTR) & iwb_ack_i; xDWBWRE <= fSTR & iwb_ack_i; end always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rDWBSTB <= 1'h0; rDWBWRE <= 1'h0; // End of automatics end else if (fDACK) begin rDWBSTB <= #1 xDWBSTB; rDWBWRE <= #1 xDWBWRE; end // --- FSL WISHBONE ----------------------------------- wire fFACK = !(fsl_stb_o ^ fsl_ack_i); reg rFSLSTB, xFSLSTB; reg rFSLWRE, xFSLWRE; assign fsl_stb_o = rFSLSTB; assign fsl_wre_o = rFSLWRE; always @(/*AUTOSENSE*/fGET or fPUT or fSKIP or iwb_ack_i) //if (fSKIP | |rXCE) begin if (fSKIP) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xFSLSTB <= 1'h0; xFSLWRE <= 1'h0; // End of automatics end else begin xFSLSTB <= (fPUT | fGET) & iwb_ack_i; xFSLWRE <= fPUT & iwb_ack_i; end always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rFSLSTB <= 1'h0; rFSLWRE <= 1'h0; // End of automatics end else if (fFACK) begin rFSLSTB <= #1 xFSLSTB; rFSLWRE <= #1 xFSLWRE; end // --- PIPELINE CONTROL DELAY ---------------------------- always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rMXALT <= 2'h0; rMXALU <= 3'h0; rMXDST <= 2'h0; rMXSRC <= 2'h0; rMXTGT <= 2'h0; rRW <= 5'h0; // End of automatics end else if (gena) begin // if (grst) //rPCLNK <= #1 xPCLNK; rMXDST <= #1 xMXDST; rRW <= #1 xRW; rMXSRC <= #1 xMXSRC; rMXTGT <= #1 xMXTGT; rMXALT <= #1 xMXALT; rMXALU <= #1 xMXALU; end endmodule // aeMB_ctrl uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_edk32.v000066400000000000000000000222651224274632000234410ustar00rootroot00000000000000/* $Id: aeMB_edk32.v,v 1.14 2008/01/19 16:01:22 sybreon Exp $ ** ** AEMB EDK 3.2 Compatible Core ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ module aeMB_edk32 (/*AUTOARG*/ // Outputs iwb_stb_o, iwb_adr_o, fsl_wre_o, fsl_tag_o, fsl_stb_o, fsl_dat_o, fsl_adr_o, dwb_wre_o, dwb_stb_o, dwb_sel_o, dwb_dat_o, dwb_adr_o, // Inputs sys_int_i, iwb_dat_i, iwb_ack_i, fsl_dat_i, fsl_ack_i, dwb_dat_i, dwb_ack_i, sys_clk_i, sys_rst_i ); // Bus widths parameter IW = 32; /// Instruction bus address width parameter DW = 32; /// Data bus address width // Optional functions parameter MUL = 0; // Multiplier parameter BSF = 1; // Barrel Shifter /*AUTOOUTPUT*/ // Beginning of automatic outputs (from unused autoinst outputs) output [DW-1:2] dwb_adr_o; // From xecu of aeMB_xecu.v output [31:0] dwb_dat_o; // From regf of aeMB_regf.v output [3:0] dwb_sel_o; // From xecu of aeMB_xecu.v output dwb_stb_o; // From ctrl of aeMB_ctrl.v output dwb_wre_o; // From ctrl of aeMB_ctrl.v output [6:2] fsl_adr_o; // From xecu of aeMB_xecu.v output [31:0] fsl_dat_o; // From regf of aeMB_regf.v output fsl_stb_o; // From ctrl of aeMB_ctrl.v output [1:0] fsl_tag_o; // From xecu of aeMB_xecu.v output fsl_wre_o; // From ctrl of aeMB_ctrl.v output [IW-1:2] iwb_adr_o; // From bpcu of aeMB_bpcu.v output iwb_stb_o; // From ibuf of aeMB_ibuf.v // End of automatics /*AUTOINPUT*/ // Beginning of automatic inputs (from unused autoinst inputs) input dwb_ack_i; // To ctrl of aeMB_ctrl.v input [31:0] dwb_dat_i; // To regf of aeMB_regf.v input fsl_ack_i; // To ctrl of aeMB_ctrl.v input [31:0] fsl_dat_i; // To regf of aeMB_regf.v input iwb_ack_i; // To ibuf of aeMB_ibuf.v, ... input [31:0] iwb_dat_i; // To ibuf of aeMB_ibuf.v input sys_int_i; // To ibuf of aeMB_ibuf.v // End of automatics /*AUTOWIRE*/ // Beginning of automatic wires (for undeclared instantiated-module outputs) wire [10:0] rALT; // From ibuf of aeMB_ibuf.v wire rBRA; // From bpcu of aeMB_bpcu.v wire rDLY; // From bpcu of aeMB_bpcu.v wire [31:0] rDWBDI; // From regf of aeMB_regf.v wire [3:0] rDWBSEL; // From xecu of aeMB_xecu.v wire [15:0] rIMM; // From ibuf of aeMB_ibuf.v wire rMSR_BIP; // From xecu of aeMB_xecu.v wire rMSR_IE; // From xecu of aeMB_xecu.v wire [1:0] rMXALT; // From ctrl of aeMB_ctrl.v wire [2:0] rMXALU; // From ctrl of aeMB_ctrl.v wire [1:0] rMXDST; // From ctrl of aeMB_ctrl.v wire [1:0] rMXSRC; // From ctrl of aeMB_ctrl.v wire [1:0] rMXTGT; // From ctrl of aeMB_ctrl.v wire [5:0] rOPC; // From ibuf of aeMB_ibuf.v wire [31:2] rPC; // From bpcu of aeMB_bpcu.v wire [31:2] rPCLNK; // From bpcu of aeMB_bpcu.v wire [4:0] rRA; // From ibuf of aeMB_ibuf.v wire [4:0] rRB; // From ibuf of aeMB_ibuf.v wire [4:0] rRD; // From ibuf of aeMB_ibuf.v wire [31:0] rREGA; // From regf of aeMB_regf.v wire [31:0] rREGB; // From regf of aeMB_regf.v wire [31:0] rRESULT; // From xecu of aeMB_xecu.v wire [4:0] rRW; // From ctrl of aeMB_ctrl.v wire [31:0] rSIMM; // From ibuf of aeMB_ibuf.v wire rSTALL; // From ibuf of aeMB_ibuf.v wire [31:0] xIREG; // From ibuf of aeMB_ibuf.v // End of automatics input sys_clk_i; input sys_rst_i; wire grst = sys_rst_i; wire gclk = sys_clk_i; wire gena = !((dwb_stb_o ^ dwb_ack_i) | (fsl_stb_o ^ fsl_ack_i) | !iwb_ack_i) & !rSTALL; wire oena = ((dwb_stb_o ^ dwb_ack_i) | (fsl_stb_o ^ fsl_ack_i) | !iwb_ack_i); // --- INSTANTIATIONS ------------------------------------- aeMB_ibuf ibuf (/*AUTOINST*/ // Outputs .rIMM (rIMM[15:0]), .rRA (rRA[4:0]), .rRD (rRD[4:0]), .rRB (rRB[4:0]), .rALT (rALT[10:0]), .rOPC (rOPC[5:0]), .rSIMM (rSIMM[31:0]), .xIREG (xIREG[31:0]), .rSTALL (rSTALL), .iwb_stb_o (iwb_stb_o), // Inputs .rBRA (rBRA), .rMSR_IE (rMSR_IE), .rMSR_BIP (rMSR_BIP), .iwb_dat_i (iwb_dat_i[31:0]), .iwb_ack_i (iwb_ack_i), .sys_int_i (sys_int_i), .gclk (gclk), .grst (grst), .gena (gena), .oena (oena)); aeMB_ctrl ctrl (/*AUTOINST*/ // Outputs .rMXDST (rMXDST[1:0]), .rMXSRC (rMXSRC[1:0]), .rMXTGT (rMXTGT[1:0]), .rMXALT (rMXALT[1:0]), .rMXALU (rMXALU[2:0]), .rRW (rRW[4:0]), .dwb_stb_o (dwb_stb_o), .dwb_wre_o (dwb_wre_o), .fsl_stb_o (fsl_stb_o), .fsl_wre_o (fsl_wre_o), // Inputs .rDLY (rDLY), .rIMM (rIMM[15:0]), .rALT (rALT[10:0]), .rOPC (rOPC[5:0]), .rRD (rRD[4:0]), .rRA (rRA[4:0]), .rRB (rRB[4:0]), .rPC (rPC[31:2]), .rBRA (rBRA), .rMSR_IE (rMSR_IE), .xIREG (xIREG[31:0]), .dwb_ack_i (dwb_ack_i), .iwb_ack_i (iwb_ack_i), .fsl_ack_i (fsl_ack_i), .gclk (gclk), .grst (grst), .gena (gena)); aeMB_bpcu #(IW) bpcu (/*AUTOINST*/ // Outputs .iwb_adr_o (iwb_adr_o[IW-1:2]), .rPC (rPC[31:2]), .rPCLNK (rPCLNK[31:2]), .rBRA (rBRA), .rDLY (rDLY), // Inputs .rMXALT (rMXALT[1:0]), .rOPC (rOPC[5:0]), .rRD (rRD[4:0]), .rRA (rRA[4:0]), .rRESULT (rRESULT[31:0]), .rDWBDI (rDWBDI[31:0]), .rREGA (rREGA[31:0]), .gclk (gclk), .grst (grst), .gena (gena)); aeMB_regf regf (/*AUTOINST*/ // Outputs .rREGA (rREGA[31:0]), .rREGB (rREGB[31:0]), .rDWBDI (rDWBDI[31:0]), .dwb_dat_o (dwb_dat_o[31:0]), .fsl_dat_o (fsl_dat_o[31:0]), // Inputs .rOPC (rOPC[5:0]), .rRA (rRA[4:0]), .rRB (rRB[4:0]), .rRW (rRW[4:0]), .rRD (rRD[4:0]), .rMXDST (rMXDST[1:0]), .rPCLNK (rPCLNK[31:2]), .rRESULT (rRESULT[31:0]), .rDWBSEL (rDWBSEL[3:0]), .rBRA (rBRA), .rDLY (rDLY), .dwb_dat_i (dwb_dat_i[31:0]), .fsl_dat_i (fsl_dat_i[31:0]), .gclk (gclk), .grst (grst), .gena (gena)); aeMB_xecu #(DW, MUL, BSF) xecu (/*AUTOINST*/ // Outputs .dwb_adr_o (dwb_adr_o[DW-1:2]), .dwb_sel_o (dwb_sel_o[3:0]), .fsl_adr_o (fsl_adr_o[6:2]), .fsl_tag_o (fsl_tag_o[1:0]), .rRESULT (rRESULT[31:0]), .rDWBSEL (rDWBSEL[3:0]), .rMSR_IE (rMSR_IE), .rMSR_BIP (rMSR_BIP), // Inputs .rREGA (rREGA[31:0]), .rREGB (rREGB[31:0]), .rMXSRC (rMXSRC[1:0]), .rMXTGT (rMXTGT[1:0]), .rRA (rRA[4:0]), .rRB (rRB[4:0]), .rMXALU (rMXALU[2:0]), .rBRA (rBRA), .rDLY (rDLY), .rALT (rALT[10:0]), .rSTALL (rSTALL), .rSIMM (rSIMM[31:0]), .rIMM (rIMM[15:0]), .rOPC (rOPC[5:0]), .rRD (rRD[4:0]), .rDWBDI (rDWBDI[31:0]), .rPC (rPC[31:2]), .gclk (gclk), .grst (grst), .gena (gena)); endmodule // aeMB_edk32 /* $Log: aeMB_edk32.v,v $ Revision 1.14 2008/01/19 16:01:22 sybreon Patched problem where memory access followed by dual cycle instructions were not stalling correctly (submitted by M. Ettus) Revision 1.13 2007/12/25 22:15:09 sybreon Stalls pipeline on MUL/BSF instructions results in minor speed improvements. Revision 1.12 2007/12/23 20:40:44 sybreon Abstracted simulation kernel (aeMB_sim) to split simulation models from synthesis models. Revision 1.11 2007/11/30 17:08:29 sybreon Moved simulation kernel into code. Revision 1.10 2007/11/16 21:52:03 sybreon Added fsl_tag_o to FSL bus (tag either address or data). Revision 1.9 2007/11/14 23:19:24 sybreon Fixed minor typo. Revision 1.8 2007/11/14 22:14:34 sybreon Changed interrupt handling system (reported by M. Ettus). Revision 1.7 2007/11/10 16:39:38 sybreon Upgraded license to LGPLv3. Significant performance optimisations. Revision 1.6 2007/11/09 20:51:52 sybreon Added GET/PUT support through a FSL bus. Revision 1.5 2007/11/08 17:48:14 sybreon Fixed data WISHBONE arbitration problem (reported by J Lee). Revision 1.4 2007/11/08 14:17:47 sybreon Parameterised optional components. Revision 1.3 2007/11/03 08:34:55 sybreon Minor code cleanup. Revision 1.2 2007/11/02 19:20:58 sybreon Added better (beta) interrupt support. Changed MSR_IE to disabled at reset as per MB docs. Revision 1.1 2007/11/02 03:25:40 sybreon New EDK 3.2 compatible design with optional barrel-shifter and multiplier. Fixed various minor data hazard bugs. Code compatible with -O0/1/2/3/s generated code. */ uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_ibuf.v000066400000000000000000000125151224274632000234530ustar00rootroot00000000000000/* $Id: aeMB_ibuf.v,v 1.10 2008/01/21 01:02:26 sybreon Exp $ ** ** AEMB INSTRUCTION BUFFER ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ module aeMB_ibuf (/*AUTOARG*/ // Outputs rIMM, rRA, rRD, rRB, rALT, rOPC, rSIMM, xIREG, rSTALL, iwb_stb_o, // Inputs rBRA, rMSR_IE, rMSR_BIP, iwb_dat_i, iwb_ack_i, sys_int_i, gclk, grst, gena, oena ); // INTERNAL output [15:0] rIMM; output [4:0] rRA, rRD, rRB; output [10:0] rALT; output [5:0] rOPC; output [31:0] rSIMM; output [31:0] xIREG; output rSTALL; input rBRA; //input [1:0] rXCE; input rMSR_IE; input rMSR_BIP; // INST WISHBONE output iwb_stb_o; input [31:0] iwb_dat_i; input iwb_ack_i; // SYSTEM input sys_int_i; // SYSTEM input gclk, grst, gena, oena; reg [15:0] rIMM; reg [4:0] rRA, rRD; reg [5:0] rOPC; // FIXME: Endian wire [31:0] wIDAT = iwb_dat_i; assign {rRB, rALT} = rIMM; // TODO: Assign to FIFO not full. assign iwb_stb_o = 1'b1; reg [31:0] rSIMM, xSIMM; reg rSTALL; wire [31:0] wXCEOP = 32'hBA2D0008; // Vector 0x08 wire [31:0] wINTOP = 32'hB9CE0010; // Vector 0x10 wire [31:0] wBRKOP = 32'hBA0C0018; // Vector 0x18 wire [31:0] wBRAOP = 32'h88000000; // NOP for branches wire [31:0] wIREG = {rOPC, rRD, rRA, rRB, rALT}; reg [31:0] xIREG; // --- INTERRUPT LATCH -------------------------------------- // Debounce and latch onto the positive level. This is independent // of the pipeline so that stalls do not affect it. reg rFINT; reg [1:0] rDINT; wire wSHOT = rDINT[0]; always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rDINT <= 2'h0; rFINT <= 1'h0; // End of automatics end else begin if (rMSR_IE) rDINT <= #1 {rDINT[0], sys_int_i}; rFINT <= #1 //(wIREG == wINTOP) ? 1'b0 : (rFINT | wSHOT) & rMSR_IE; end wire fIMM = (rOPC == 6'o54); wire fRTD = (rOPC == 6'o55); wire fBRU = ((rOPC == 6'o46) | (rOPC == 6'o56)); wire fBCC = ((rOPC == 6'o47) | (rOPC == 6'o57)); // --- DELAY SLOT ------------------------------------------- always @(/*AUTOSENSE*/fBCC or fBRU or fIMM or fRTD or rBRA or rFINT or wBRAOP or wIDAT or wINTOP) begin xIREG <= (rBRA) ? wBRAOP : (!fIMM & rFINT & !fRTD & !fBRU & !fBCC) ? wINTOP : wIDAT; end always @(/*AUTOSENSE*/fIMM or rBRA or rIMM or wIDAT or xIREG) begin xSIMM <= (!fIMM | rBRA) ? { {(16){xIREG[15]}}, xIREG[15:0]} : {rIMM, wIDAT[15:0]}; end // --- PIPELINE -------------------------------------------- always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rIMM <= 16'h0; rOPC <= 6'h0; rRA <= 5'h0; rRD <= 5'h0; rSIMM <= 32'h0; // End of automatics end else if (gena) begin {rOPC, rRD, rRA, rIMM} <= #1 xIREG; rSIMM <= #1 xSIMM; end // --- STALL FOR MUL/BSF ----------------------------------- wire [5:0] wOPC = xIREG[31:26]; wire fMUL = (wOPC == 6'o20) | (wOPC == 6'o30); wire fBSF = (wOPC == 6'o21) | (wOPC == 6'o31); always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rSTALL <= 1'h0; // End of automatics end else begin rSTALL <= #1 (gena & !rSTALL & (fMUL | fBSF)) | (oena & rSTALL); end endmodule // aeMB_ibuf /* $Log: aeMB_ibuf.v,v $ Revision 1.10 2008/01/21 01:02:26 sybreon Patch interrupt bug. Revision 1.9 2008/01/19 16:01:22 sybreon Patched problem where memory access followed by dual cycle instructions were not stalling correctly (submitted by M. Ettus) Revision 1.8 2007/12/25 22:15:09 sybreon Stalls pipeline on MUL/BSF instructions results in minor speed improvements. Revision 1.7 2007/11/22 15:11:15 sybreon Change interrupt to positive level triggered interrupts. Revision 1.6 2007/11/14 23:39:51 sybreon Fixed interrupt signal synchronisation. Revision 1.5 2007/11/14 22:14:34 sybreon Changed interrupt handling system (reported by M. Ettus). Revision 1.4 2007/11/10 16:39:38 sybreon Upgraded license to LGPLv3. Significant performance optimisations. Revision 1.3 2007/11/03 08:34:55 sybreon Minor code cleanup. Revision 1.2 2007/11/02 19:20:58 sybreon Added better (beta) interrupt support. Changed MSR_IE to disabled at reset as per MB docs. Revision 1.1 2007/11/02 03:25:40 sybreon New EDK 3.2 compatible design with optional barrel-shifter and multiplier. Fixed various minor data hazard bugs. Code compatible with -O0/1/2/3/s generated code. */ uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_regf.v000066400000000000000000000152711224274632000234530ustar00rootroot00000000000000// $Id: aeMB_regf.v,v 1.3 2007/11/10 16:39:38 sybreon Exp $ // // AEMB REGISTER FILE // // Copyright (C) 2004-2007 Shawn Tan Ser Ngiap // // This file is part of AEMB. // // AEMB is free software: you can redistribute it and/or modify it // under the terms of the GNU Lesser General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // AEMB is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General // Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with AEMB. If not, see . // // $Log: aeMB_regf.v,v $ // Revision 1.3 2007/11/10 16:39:38 sybreon // Upgraded license to LGPLv3. // Significant performance optimisations. // // Revision 1.2 2007/11/09 20:51:52 sybreon // Added GET/PUT support through a FSL bus. // // Revision 1.1 2007/11/02 03:25:41 sybreon // New EDK 3.2 compatible design with optional barrel-shifter and multiplier. // Fixed various minor data hazard bugs. // Code compatible with -O0/1/2/3/s generated code. // module aeMB_regf (/*AUTOARG*/ // Outputs rREGA, rREGB, rDWBDI, dwb_dat_o, fsl_dat_o, // Inputs rOPC, rRA, rRB, rRW, rRD, rMXDST, rPCLNK, rRESULT, rDWBSEL, rBRA, rDLY, dwb_dat_i, fsl_dat_i, gclk, grst, gena ); // INTERNAL output [31:0] rREGA, rREGB; output [31:0] rDWBDI; input [5:0] rOPC; input [4:0] rRA, rRB, rRW, rRD; input [1:0] rMXDST; input [31:2] rPCLNK; input [31:0] rRESULT; input [3:0] rDWBSEL; input rBRA, rDLY; // DATA WISHBONE output [31:0] dwb_dat_o; input [31:0] dwb_dat_i; // FSL WISHBONE output [31:0] fsl_dat_o; input [31:0] fsl_dat_i; // SYSTEM input gclk, grst, gena; // --- LOAD SIZER ---------------------------------------------- // Moves the data bytes around depending on the size of the // operation. wire [31:0] wDWBDI = dwb_dat_i; // FIXME: Endian wire [31:0] wFSLDI = fsl_dat_i; // FIXME: Endian reg [31:0] rDWBDI; reg [1:0] rSIZ; always @(/*AUTOSENSE*/rDWBSEL or wDWBDI or wFSLDI) begin /* 51.2 case (rSIZ) // FSL 2'o3: rDWBDI <= wFSLDI; // 32'bit 2'o2: rDWBDI <= wDWBDI; // 16'bit 2'o1: case (rRESULT[1]) 1'b0: rDWBDI <= {16'd0, wDWBDI[31:16]}; 1'b1: rDWBDI <= {16'd0, wDWBDI[15:0]}; endcase // case (rRESULT[1]) // 8'bit 2'o0: case (rRESULT[1:0]) 2'o0: rDWBDI <= {24'd0, wDWBDI[31:24]}; 2'o1: rDWBDI <= {24'd0, wDWBDI[23:16]}; 2'o2: rDWBDI <= {24'd0, wDWBDI[15:8]}; 2'o3: rDWBDI <= {24'd0, wDWBDI[7:0]}; endcase // case (rRESULT[1:0]) endcase // case (rSIZ) */ /* 50.6 case ({rSIZ, rRESULT[1:0]}) // FSL 4'hC, 4'hD, 4'hE, 4'hF: rDWBDI <= wFSLDI; // 32'bit 4'h8: rDWBDI <= wDWBDI; // 16'bit 4'h4: rDWBDI <= {16'd0, wDWBDI[31:16]}; 4'h6: rDWBDI <= {16'd0, wDWBDI[15:0]}; // 8'bit 4'h0: rDWBDI <= {24'd0, wDWBDI[31:24]}; 4'h1: rDWBDI <= {24'd0, wDWBDI[23:16]}; 4'h2: rDWBDI <= {24'd0, wDWBDI[15:8]}; 4'h3: rDWBDI <= {24'd0, wDWBDI[7:0]}; default: rDWBDI <= 32'hX; endcase // case (rSIZ) */ // 52.0 case (rDWBSEL) // 8'bit 4'h8: rDWBDI <= {24'd0, wDWBDI[31:24]}; 4'h4: rDWBDI <= {24'd0, wDWBDI[23:16]}; 4'h2: rDWBDI <= {24'd0, wDWBDI[15:8]}; 4'h1: rDWBDI <= {24'd0, wDWBDI[7:0]}; // 16'bit 4'hC: rDWBDI <= {16'd0, wDWBDI[31:16]}; 4'h3: rDWBDI <= {16'd0, wDWBDI[15:0]}; // 32'bit 4'hF: rDWBDI <= wDWBDI; // FSL 4'h0: rDWBDI <= wFSLDI; // Undefined default: rDWBDI <= 32'hX; endcase end always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rSIZ <= 2'h0; // End of automatics end else if (gena) begin rSIZ <= rOPC[1:0]; end // --- GENERAL PURPOSE REGISTERS (R0-R31) ----------------------- // LUT RAM implementation is smaller and faster. R0 gets written // during reset with 0x00 and doesn't change after. //synthesis attribute ram_style of mARAM is distributed reg [31:0] mARAM[0:31]; //synthesis attribute ram_style of mBRAM is distributed reg [31:0] mBRAM[0:31]; //synthesis attribute ram_style of mDRAM is distributed reg [31:0] mDRAM[0:31]; wire [31:0] rREGW = mDRAM[rRW]; wire [31:0] rREGD = mDRAM[rRD]; assign rREGA = mARAM[rRA]; assign rREGB = mBRAM[rRB]; wire fRDWE = |rRW; reg [31:0] xWDAT; always @(/*AUTOSENSE*/rDWBDI or rMXDST or rPCLNK or rREGW or rRESULT) case (rMXDST) 2'o2: xWDAT <= rDWBDI; 2'o1: xWDAT <= {rPCLNK, 2'o0}; 2'o0: xWDAT <= rRESULT; 2'o3: xWDAT <= rREGW; // No change endcase // case (rMXDST) always @(posedge gclk) if (grst | fRDWE) begin mARAM[rRW] <= xWDAT; mBRAM[rRW] <= xWDAT; mDRAM[rRW] <= xWDAT; end // --- STORE SIZER --------------------------------------------- // Replicates the data bytes across depending on the size of the // operation. reg [31:0] rDWBDO, xDWBDO; wire [31:0] xFSL; wire fFFWD_M = (rRA == rRW) & (rMXDST == 2'o2) & fRDWE; wire fFFWD_R = (rRA == rRW) & (rMXDST == 2'o0) & fRDWE; assign fsl_dat_o = rDWBDO; assign xFSL = (fFFWD_M) ? rDWBDI : (fFFWD_R) ? rRESULT : rREGA; wire [31:0] xDST; wire fDFWD_M = (rRW == rRD) & (rMXDST == 2'o2) & fRDWE; wire fDFWD_R = (rRW == rRD) & (rMXDST == 2'o0) & fRDWE; assign dwb_dat_o = rDWBDO; assign xDST = (fDFWD_M) ? rDWBDI : (fDFWD_R) ? rRESULT : rREGD; always @(/*AUTOSENSE*/rOPC or xDST or xFSL) case (rOPC[1:0]) // 8'bit 2'h0: xDWBDO <= {(4){xDST[7:0]}}; // 16'bit 2'h1: xDWBDO <= {(2){xDST[15:0]}}; // 32'bit 2'h2: xDWBDO <= xDST; // FSL 2'h3: xDWBDO <= xFSL; //default: xDWBDO <= 32'hX; endcase // case (rOPC[1:0]) always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rDWBDO <= 32'h0; // End of automatics end else if (gena) begin rDWBDO <= #1 xDWBDO; end // --- SIMULATION ONLY ------------------------------------------ // Randomise memory to simulate real-world memory // synopsys translate_off integer i; initial begin for (i=0; i<32; i=i+1) begin mARAM[i] <= $random; mBRAM[i] <= $random; mDRAM[i] <= $random; end end // synopsys translate_on endmodule // aeMB_regf uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_sim.v000066400000000000000000000224331224274632000233160ustar00rootroot00000000000000/* $Id: aeMB_sim.v,v 1.2 2008/06/06 09:36:02 sybreon Exp $ ** ** AEMB EDK 3.2 Compatible Core ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ module aeMB_sim (/*AUTOARG*/ // Outputs iwb_stb_o, iwb_adr_o, fsl_wre_o, fsl_tag_o, fsl_stb_o, fsl_dat_o, fsl_adr_o, dwb_wre_o, dwb_stb_o, dwb_sel_o, dwb_dat_o, dwb_adr_o, // Inputs sys_rst_i, sys_int_i, sys_clk_i, iwb_dat_i, iwb_ack_i, fsl_dat_i, fsl_ack_i, dwb_dat_i, dwb_ack_i ); // Bus widths parameter IW = 32; /// Instruction bus address width parameter DW = 32; /// Data bus address width // Optional functions parameter MUL = 1; // Multiplier parameter BSF = 1; // Barrel Shifter /*AUTOOUTPUT*/ // Beginning of automatic outputs (from unused autoinst outputs) output [DW-1:2] dwb_adr_o; // From cpu of aeMB_edk32.v output [31:0] dwb_dat_o; // From cpu of aeMB_edk32.v output [3:0] dwb_sel_o; // From cpu of aeMB_edk32.v output dwb_stb_o; // From cpu of aeMB_edk32.v output dwb_wre_o; // From cpu of aeMB_edk32.v output [6:2] fsl_adr_o; // From cpu of aeMB_edk32.v output [31:0] fsl_dat_o; // From cpu of aeMB_edk32.v output fsl_stb_o; // From cpu of aeMB_edk32.v output [1:0] fsl_tag_o; // From cpu of aeMB_edk32.v output fsl_wre_o; // From cpu of aeMB_edk32.v output [IW-1:2] iwb_adr_o; // From cpu of aeMB_edk32.v output iwb_stb_o; // From cpu of aeMB_edk32.v // End of automatics /*AUTOINPUT*/ // Beginning of automatic inputs (from unused autoinst inputs) input dwb_ack_i; // To cpu of aeMB_edk32.v input [31:0] dwb_dat_i; // To cpu of aeMB_edk32.v input fsl_ack_i; // To cpu of aeMB_edk32.v input [31:0] fsl_dat_i; // To cpu of aeMB_edk32.v input iwb_ack_i; // To cpu of aeMB_edk32.v input [31:0] iwb_dat_i; // To cpu of aeMB_edk32.v input sys_clk_i; // To cpu of aeMB_edk32.v input sys_int_i; // To cpu of aeMB_edk32.v input sys_rst_i; // To cpu of aeMB_edk32.v // End of automatics /*AUTOWIRE*/ aeMB_edk32 #(/*AUTOINSTPARAM*/ // Parameters .IW (IW), .DW (DW), .MUL (MUL), .BSF (BSF)) cpu (/*AUTOINST*/ // Outputs .dwb_adr_o (dwb_adr_o[DW-1:2]), .dwb_dat_o (dwb_dat_o[31:0]), .dwb_sel_o (dwb_sel_o[3:0]), .dwb_stb_o (dwb_stb_o), .dwb_wre_o (dwb_wre_o), .fsl_adr_o (fsl_adr_o[6:2]), .fsl_dat_o (fsl_dat_o[31:0]), .fsl_stb_o (fsl_stb_o), .fsl_tag_o (fsl_tag_o[1:0]), .fsl_wre_o (fsl_wre_o), .iwb_adr_o (iwb_adr_o[IW-1:2]), .iwb_stb_o (iwb_stb_o), // Inputs .dwb_ack_i (dwb_ack_i), .dwb_dat_i (dwb_dat_i[31:0]), .fsl_ack_i (fsl_ack_i), .fsl_dat_i (fsl_dat_i[31:0]), .iwb_ack_i (iwb_ack_i), .iwb_dat_i (iwb_dat_i[31:0]), .sys_int_i (sys_int_i), .sys_clk_i (sys_clk_i), .sys_rst_i (sys_rst_i)); // --- SIMULATION KERNEL ---------------------------------- // synopsys translate_off wire [IW-1:0] iwb_adr = {iwb_adr_o, 2'd0}; wire [DW-1:0] dwb_adr = {dwb_adr_o,2'd0}; wire [1:0] wBRA = {cpu.rBRA, cpu.rDLY}; wire [3:0] wMSR = {cpu.xecu.rMSR_BIP, cpu.xecu.rMSR_C, cpu.xecu.rMSR_IE, cpu.xecu.rMSR_BE}; `ifdef AEMB_SIM_KERNEL always @(posedge cpu.gclk) begin if (cpu.gena) begin $write ("\n", ($stime/10)); $writeh (" PC=", iwb_adr ); $writeh ("\t"); case (wBRA) 2'b00: $write(" "); 2'b01: $write("."); 2'b10: $write("-"); 2'b11: $write("+"); endcase // case (cpu.wBRA) case (cpu.rOPC) 6'o00: if (cpu.rRD == 0) $write(" "); else $write("ADD"); 6'o01: $write("RSUB"); 6'o02: $write("ADDC"); 6'o03: $write("RSUBC"); 6'o04: $write("ADDK"); 6'o05: case (cpu.rIMM[1:0]) 2'o0: $write("RSUBK"); 2'o1: $write("CMP"); 2'o3: $write("CMPU"); default: $write("XXX"); endcase // case (cpu.rIMM[1:0]) 6'o06: $write("ADDKC"); 6'o07: $write("RSUBKC"); 6'o10: $write("ADDI"); 6'o11: $write("RSUBI"); 6'o12: $write("ADDIC"); 6'o13: $write("RSUBIC"); 6'o14: $write("ADDIK"); 6'o15: $write("RSUBIK"); 6'o16: $write("ADDIKC"); 6'o17: $write("RSUBIKC"); 6'o20: $write("MUL"); 6'o21: case (cpu.rALT[10:9]) 2'o0: $write("BSRL"); 2'o1: $write("BSRA"); 2'o2: $write("BSLL"); default: $write("XXX"); endcase // case (cpu.rALT[10:9]) 6'o22: $write("IDIV"); 6'o30: $write("MULI"); 6'o31: case (cpu.rALT[10:9]) 2'o0: $write("BSRLI"); 2'o1: $write("BSRAI"); 2'o2: $write("BSLLI"); default: $write("XXX"); endcase // case (cpu.rALT[10:9]) 6'o33: case (cpu.rRB[4:2]) 3'o0: $write("GET"); 3'o4: $write("PUT"); 3'o2: $write("NGET"); 3'o6: $write("NPUT"); 3'o1: $write("CGET"); 3'o5: $write("CPUT"); 3'o3: $write("NCGET"); 3'o7: $write("NCPUT"); endcase // case (cpu.rRB[4:2]) 6'o40: $write("OR"); 6'o41: $write("AND"); 6'o42: if (cpu.rRD == 0) $write(" "); else $write("XOR"); 6'o43: $write("ANDN"); 6'o44: case (cpu.rIMM[6:5]) 2'o0: $write("SRA"); 2'o1: $write("SRC"); 2'o2: $write("SRL"); 2'o3: if (cpu.rIMM[0]) $write("SEXT16"); else $write("SEXT8"); endcase // case (cpu.rIMM[6:5]) 6'o45: $write("MOV"); 6'o46: case (cpu.rRA[3:2]) 3'o0: $write("BR"); 3'o1: $write("BRL"); 3'o2: $write("BRA"); 3'o3: $write("BRAL"); endcase // case (cpu.rRA[3:2]) 6'o47: case (cpu.rRD[2:0]) 3'o0: $write("BEQ"); 3'o1: $write("BNE"); 3'o2: $write("BLT"); 3'o3: $write("BLE"); 3'o4: $write("BGT"); 3'o5: $write("BGE"); default: $write("XXX"); endcase // case (cpu.rRD[2:0]) 6'o50: $write("ORI"); 6'o51: $write("ANDI"); 6'o52: $write("XORI"); 6'o53: $write("ANDNI"); 6'o54: $write("IMMI"); 6'o55: case (cpu.rRD[1:0]) 2'o0: $write("RTSD"); 2'o1: $write("RTID"); 2'o2: $write("RTBD"); default: $write("XXX"); endcase // case (cpu.rRD[1:0]) 6'o56: case (cpu.rRA[3:2]) 3'o0: $write("BRI"); 3'o1: $write("BRLI"); 3'o2: $write("BRAI"); 3'o3: $write("BRALI"); endcase // case (cpu.rRA[3:2]) 6'o57: case (cpu.rRD[2:0]) 3'o0: $write("BEQI"); 3'o1: $write("BNEI"); 3'o2: $write("BLTI"); 3'o3: $write("BLEI"); 3'o4: $write("BGTI"); 3'o5: $write("BGEI"); default: $write("XXX"); endcase // case (cpu.rRD[2:0]) 6'o60: $write("LBU"); 6'o61: $write("LHU"); 6'o62: $write("LW"); 6'o64: $write("SB"); 6'o65: $write("SH"); 6'o66: $write("SW"); 6'o70: $write("LBUI"); 6'o71: $write("LHUI"); 6'o72: $write("LWI"); 6'o74: $write("SBI"); 6'o75: $write("SHI"); 6'o76: $write("SWI"); default: $write("XXX"); endcase // case (cpu.rOPC) case (cpu.rOPC[3]) 1'b1: $writeh("\tr",cpu.rRD,", r",cpu.rRA,", h",cpu.rIMM); 1'b0: $writeh("\tr",cpu.rRD,", r",cpu.rRA,", r",cpu.rRB," "); endcase // case (cpu.rOPC[3]) // ALU $write("\t"); $writeh(" A=",cpu.xecu.rOPA); $writeh(" B=",cpu.xecu.rOPB); case (cpu.rMXALU) 3'o0: $write(" ADD"); 3'o1: $write(" LOG"); 3'o2: $write(" SFT"); 3'o3: $write(" MOV"); 3'o4: $write(" MUL"); 3'o5: $write(" BSF"); default: $write(" XXX"); endcase // case (cpu.rMXALU) $writeh("=h",cpu.xecu.xRESULT); // WRITEBACK $writeh("\tSR=", wMSR," "); if (cpu.regf.fRDWE) begin case (cpu.rMXDST) 2'o2: begin if (dwb_stb_o) $writeh("R",cpu.rRW,"=RAM(h",cpu.regf.xWDAT,")"); if (fsl_stb_o) $writeh("R",cpu.rRW,"=FSL(h",cpu.regf.xWDAT,")"); end 2'o1: $writeh("R",cpu.rRW,"=LNK(h",cpu.regf.xWDAT,")"); 2'o0: $writeh("R",cpu.rRW,"=ALU(h",cpu.regf.xWDAT,")"); endcase // case (cpu.rMXDST) end // STORE if (dwb_stb_o & dwb_wre_o) begin $writeh("RAM(", dwb_adr ,")=", dwb_dat_o); case (dwb_sel_o) 4'hF: $write(":L"); 4'h3,4'hC: $write(":W"); 4'h1,4'h2,4'h4,4'h8: $write(":B"); endcase // case (dwb_sel_o) end end // if (cpu.gena) end // always @ (posedge cpu.gclk) `endif // `ifdef AEMB_SIM_KERNEL // synopsys translate_on endmodule // aeMB_sim /* $Log: aeMB_sim.v,v $ Revision 1.2 2008/06/06 09:36:02 sybreon single thread design Revision 1.1 2007/12/23 20:40:45 sybreon Abstracted simulation kernel (aeMB_sim) to split simulation models from synthesis models. */uhd-3.5.5/fpga/usrp2/opencores/aemb/rtl/verilog/aeMB_xecu.v000066400000000000000000000311251224274632000234700ustar00rootroot00000000000000/* $Id: aeMB_xecu.v,v 1.12 2008/05/11 13:48:46 sybreon Exp $ ** ** AEMB MAIN EXECUTION ALU ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ module aeMB_xecu (/*AUTOARG*/ // Outputs dwb_adr_o, dwb_sel_o, fsl_adr_o, fsl_tag_o, rRESULT, rDWBSEL, rMSR_IE, rMSR_BIP, // Inputs rREGA, rREGB, rMXSRC, rMXTGT, rRA, rRB, rMXALU, rBRA, rDLY, rALT, rSTALL, rSIMM, rIMM, rOPC, rRD, rDWBDI, rPC, gclk, grst, gena ); parameter DW=32; parameter MUL=0; parameter BSF=0; // DATA WISHBONE output [DW-1:2] dwb_adr_o; output [3:0] dwb_sel_o; // FSL WISHBONE output [6:2] fsl_adr_o; output [1:0] fsl_tag_o; // INTERNAL output [31:0] rRESULT; output [3:0] rDWBSEL; output rMSR_IE; output rMSR_BIP; input [31:0] rREGA, rREGB; input [1:0] rMXSRC, rMXTGT; input [4:0] rRA, rRB; input [2:0] rMXALU; input rBRA, rDLY; input [10:0] rALT; input rSTALL; input [31:0] rSIMM; input [15:0] rIMM; input [5:0] rOPC; input [4:0] rRD; input [31:0] rDWBDI; input [31:2] rPC; // SYSTEM input gclk, grst, gena; reg rMSR_C, xMSR_C; reg rMSR_IE, xMSR_IE; reg rMSR_BE, xMSR_BE; reg rMSR_BIP, xMSR_BIP; wire fSKIP = rBRA & !rDLY; // --- OPERAND SELECT reg [31:0] rOPA, rOPB; always @(/*AUTOSENSE*/rDWBDI or rMXSRC or rPC or rREGA or rRESULT) case (rMXSRC) 2'o0: rOPA <= rREGA; 2'o1: rOPA <= rRESULT; 2'o2: rOPA <= rDWBDI; 2'o3: rOPA <= {rPC, 2'o0}; endcase // case (rMXSRC) always @(/*AUTOSENSE*/rDWBDI or rMXTGT or rREGB or rRESULT or rSIMM) case (rMXTGT) 2'o0: rOPB <= rREGB; 2'o1: rOPB <= rRESULT; 2'o2: rOPB <= rDWBDI; 2'o3: rOPB <= rSIMM; endcase // case (rMXTGT) // --- ADD/SUB SELECTOR ---- reg rRES_ADDC; reg [31:0] rRES_ADD; wire [31:0] wADD; wire wADC; wire fCCC = !rOPC[5] & rOPC[1]; // & !rOPC[4] wire fSUB = !rOPC[5] & rOPC[0]; // & !rOPC[4] wire fCMP = !rOPC[3] & rIMM[1]; // unsigned only wire wCMP = (fCMP) ? !wADC : wADD[31]; // cmpu adjust wire [31:0] wOPA = (fSUB) ? ~rOPA : rOPA; wire wOPC = (fCCC) ? rMSR_C : fSUB; assign {wADC, wADD} = (rOPB + wOPA) + wOPC; // add carry always @(/*AUTOSENSE*/wADC or wADD or wCMP) begin {rRES_ADDC, rRES_ADD} <= #1 {wADC, wCMP, wADD[30:0]}; // add with carry end // --- LOGIC SELECTOR -------------------------------------- reg [31:0] rRES_LOG; always @(/*AUTOSENSE*/rOPA or rOPB or rOPC) case (rOPC[1:0]) 2'o0: rRES_LOG <= #1 rOPA | rOPB; 2'o1: rRES_LOG <= #1 rOPA & rOPB; 2'o2: rRES_LOG <= #1 rOPA ^ rOPB; 2'o3: rRES_LOG <= #1 rOPA & ~rOPB; endcase // case (rOPC[1:0]) // --- SHIFTER SELECTOR ------------------------------------ reg [31:0] rRES_SFT; reg rRES_SFTC; always @(/*AUTOSENSE*/rIMM or rMSR_C or rOPA) case (rIMM[6:5]) 2'o0: {rRES_SFT, rRES_SFTC} <= #1 {rOPA[31],rOPA[31:0]}; 2'o1: {rRES_SFT, rRES_SFTC} <= #1 {rMSR_C,rOPA[31:0]}; 2'o2: {rRES_SFT, rRES_SFTC} <= #1 {1'b0,rOPA[31:0]}; 2'o3: {rRES_SFT, rRES_SFTC} <= #1 (rIMM[0]) ? { {(16){rOPA[15]}}, rOPA[15:0], rMSR_C} : { {(24){rOPA[7]}}, rOPA[7:0], rMSR_C}; endcase // case (rIMM[6:5]) // --- MOVE SELECTOR --------------------------------------- wire [31:0] wMSR = {rMSR_C, 3'o0, 20'h0ED32, 4'h0, rMSR_BIP, rMSR_C, rMSR_IE, rMSR_BE}; wire fMFSR = (rOPC == 6'o45) & !rIMM[14] & rIMM[0]; wire fMFPC = (rOPC == 6'o45) & !rIMM[14] & !rIMM[0]; reg [31:0] rRES_MOV; always @(/*AUTOSENSE*/fMFPC or fMFSR or rOPA or rOPB or rPC or rRA or wMSR) rRES_MOV <= (fMFSR) ? wMSR : (fMFPC) ? rPC : (rRA[3]) ? rOPB : rOPA; // --- MULTIPLIER ------------------------------------------ // TODO: 2 stage multiplier reg [31:0] rRES_MUL, rRES_MUL0, xRES_MUL; always @(/*AUTOSENSE*/rOPA or rOPB) begin xRES_MUL <= (rOPA * rOPB); end always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rRES_MUL <= 32'h0; // End of automatics end else if (rSTALL) begin rRES_MUL <= #1 xRES_MUL; end // --- BARREL SHIFTER -------------------------------------- reg [31:0] rRES_BSF; reg [31:0] xBSRL, xBSRA, xBSLL; // Infer a logical left barrel shifter. always @(/*AUTOSENSE*/rOPA or rOPB) xBSLL <= rOPA << rOPB[4:0]; // Infer a logical right barrel shifter. always @(/*AUTOSENSE*/rOPA or rOPB) xBSRL <= rOPA >> rOPB[4:0]; // Infer a arithmetic right barrel shifter. always @(/*AUTOSENSE*/rOPA or rOPB) case (rOPB[4:0]) 5'd00: xBSRA <= rOPA; 5'd01: xBSRA <= {{(1){rOPA[31]}}, rOPA[31:1]}; 5'd02: xBSRA <= {{(2){rOPA[31]}}, rOPA[31:2]}; 5'd03: xBSRA <= {{(3){rOPA[31]}}, rOPA[31:3]}; 5'd04: xBSRA <= {{(4){rOPA[31]}}, rOPA[31:4]}; 5'd05: xBSRA <= {{(5){rOPA[31]}}, rOPA[31:5]}; 5'd06: xBSRA <= {{(6){rOPA[31]}}, rOPA[31:6]}; 5'd07: xBSRA <= {{(7){rOPA[31]}}, rOPA[31:7]}; 5'd08: xBSRA <= {{(8){rOPA[31]}}, rOPA[31:8]}; 5'd09: xBSRA <= {{(9){rOPA[31]}}, rOPA[31:9]}; 5'd10: xBSRA <= {{(10){rOPA[31]}}, rOPA[31:10]}; 5'd11: xBSRA <= {{(11){rOPA[31]}}, rOPA[31:11]}; 5'd12: xBSRA <= {{(12){rOPA[31]}}, rOPA[31:12]}; 5'd13: xBSRA <= {{(13){rOPA[31]}}, rOPA[31:13]}; 5'd14: xBSRA <= {{(14){rOPA[31]}}, rOPA[31:14]}; 5'd15: xBSRA <= {{(15){rOPA[31]}}, rOPA[31:15]}; 5'd16: xBSRA <= {{(16){rOPA[31]}}, rOPA[31:16]}; 5'd17: xBSRA <= {{(17){rOPA[31]}}, rOPA[31:17]}; 5'd18: xBSRA <= {{(18){rOPA[31]}}, rOPA[31:18]}; 5'd19: xBSRA <= {{(19){rOPA[31]}}, rOPA[31:19]}; 5'd20: xBSRA <= {{(20){rOPA[31]}}, rOPA[31:20]}; 5'd21: xBSRA <= {{(21){rOPA[31]}}, rOPA[31:21]}; 5'd22: xBSRA <= {{(22){rOPA[31]}}, rOPA[31:22]}; 5'd23: xBSRA <= {{(23){rOPA[31]}}, rOPA[31:23]}; 5'd24: xBSRA <= {{(24){rOPA[31]}}, rOPA[31:24]}; 5'd25: xBSRA <= {{(25){rOPA[31]}}, rOPA[31:25]}; 5'd26: xBSRA <= {{(26){rOPA[31]}}, rOPA[31:26]}; 5'd27: xBSRA <= {{(27){rOPA[31]}}, rOPA[31:27]}; 5'd28: xBSRA <= {{(28){rOPA[31]}}, rOPA[31:28]}; 5'd29: xBSRA <= {{(29){rOPA[31]}}, rOPA[31:29]}; 5'd30: xBSRA <= {{(30){rOPA[31]}}, rOPA[31:30]}; 5'd31: xBSRA <= {{(31){rOPA[31]}}, rOPA[31]}; endcase // case (rOPB[4:0]) reg [31:0] rBSRL, rBSRA, rBSLL; always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rBSLL <= 32'h0; rBSRA <= 32'h0; rBSRL <= 32'h0; // End of automatics end else if (rSTALL) begin rBSRL <= #1 xBSRL; rBSRA <= #1 xBSRA; rBSLL <= #1 xBSLL; end always @(/*AUTOSENSE*/rALT or rBSLL or rBSRA or rBSRL) case (rALT[10:9]) 2'd0: rRES_BSF <= rBSRL; 2'd1: rRES_BSF <= rBSRA; 2'd2: rRES_BSF <= rBSLL; default: rRES_BSF <= 32'hX; endcase // case (rALT[10:9]) // --- MSR REGISTER ----------------- // C wire fMTS = (rOPC == 6'o45) & rIMM[14] & !fSKIP; wire fADDC = ({rOPC[5:4], rOPC[2]} == 3'o0); always @(/*AUTOSENSE*/fADDC or fMTS or fSKIP or rMSR_C or rMXALU or rOPA or rRES_ADDC or rRES_SFTC) //if (fSKIP | |rXCE) begin if (fSKIP) begin xMSR_C <= rMSR_C; end else case (rMXALU) 3'o0: xMSR_C <= (fADDC) ? rRES_ADDC : rMSR_C; 3'o1: xMSR_C <= rMSR_C; // LOGIC 3'o2: xMSR_C <= rRES_SFTC; // SHIFT 3'o3: xMSR_C <= (fMTS) ? rOPA[2] : rMSR_C; 3'o4: xMSR_C <= rMSR_C; 3'o5: xMSR_C <= rMSR_C; default: xMSR_C <= 1'hX; endcase // case (rMXALU) // IE/BIP/BE wire fRTID = (rOPC == 6'o55) & rRD[0] & !fSKIP; wire fRTBD = (rOPC == 6'o55) & rRD[1] & !fSKIP; wire fBRK = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hC); wire fINT = ((rOPC == 6'o56) | (rOPC == 6'o66)) & (rRA == 5'hE); always @(/*AUTOSENSE*/fINT or fMTS or fRTID or rMSR_IE or rOPA) xMSR_IE <= (fINT) ? 1'b0 : (fRTID) ? 1'b1 : (fMTS) ? rOPA[1] : rMSR_IE; always @(/*AUTOSENSE*/fBRK or fMTS or fRTBD or rMSR_BIP or rOPA) xMSR_BIP <= (fBRK) ? 1'b1 : (fRTBD) ? 1'b0 : (fMTS) ? rOPA[3] : rMSR_BIP; always @(/*AUTOSENSE*/fMTS or rMSR_BE or rOPA) xMSR_BE <= (fMTS) ? rOPA[0] : rMSR_BE; // --- RESULT SELECTOR ------------------------------------------- // Selects results from functional units. reg [31:0] rRESULT, xRESULT; // RESULT always @(/*AUTOSENSE*/fSKIP or rMXALU or rRES_ADD or rRES_BSF or rRES_LOG or rRES_MOV or rRES_MUL or rRES_SFT) if (fSKIP) /*AUTORESET*/ // Beginning of autoreset for uninitialized flops xRESULT <= 32'h0; // End of automatics else case (rMXALU) 3'o0: xRESULT <= rRES_ADD; 3'o1: xRESULT <= rRES_LOG; 3'o2: xRESULT <= rRES_SFT; 3'o3: xRESULT <= rRES_MOV; 3'o4: xRESULT <= (MUL) ? rRES_MUL : 32'hX; 3'o5: xRESULT <= (BSF) ? rRES_BSF : 32'hX; default: xRESULT <= 32'hX; endcase // case (rMXALU) // --- DATA WISHBONE ----- reg [3:0] rDWBSEL, xDWBSEL; assign dwb_adr_o = rRESULT[DW-1:2]; assign dwb_sel_o = rDWBSEL; always @(/*AUTOSENSE*/rOPC or wADD) case (rOPC[1:0]) 2'o0: case (wADD[1:0]) // 8'bit 2'o0: xDWBSEL <= 4'h8; 2'o1: xDWBSEL <= 4'h4; 2'o2: xDWBSEL <= 4'h2; 2'o3: xDWBSEL <= 4'h1; endcase // case (wADD[1:0]) 2'o1: xDWBSEL <= (wADD[1]) ? 4'h3 : 4'hC; // 16'bit 2'o2: xDWBSEL <= 4'hF; // 32'bit 2'o3: xDWBSEL <= 4'h0; // FSL endcase // case (rOPC[1:0]) // --- FSL WISHBONE -------------------- reg [14:2] rFSLADR, xFSLADR; assign {fsl_adr_o, fsl_tag_o} = rFSLADR[8:2]; always @(/*AUTOSENSE*/rALT or rRB) begin xFSLADR <= {rALT, rRB[3:2]}; end // --- SYNC --- always @(posedge gclk) if (grst) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops rDWBSEL <= 4'h0; rFSLADR <= 13'h0; rMSR_BE <= 1'h0; rMSR_BIP <= 1'h0; rMSR_C <= 1'h0; rMSR_IE <= 1'h0; rRESULT <= 32'h0; // End of automatics end else if (gena) begin // if (grst) rRESULT <= #1 xRESULT; rDWBSEL <= #1 xDWBSEL; rMSR_C <= #1 xMSR_C; rMSR_IE <= #1 xMSR_IE; rMSR_BE <= #1 xMSR_BE; rMSR_BIP <= #1 xMSR_BIP; rFSLADR <= #1 xFSLADR; end endmodule // aeMB_xecu /* $Log: aeMB_xecu.v,v $ Revision 1.12 2008/05/11 13:48:46 sybreon Backported Adder from AEMB2_EDK62. Fixes 64-bit math problem reported by M. Ettus. Revision 1.11 2008/01/19 15:57:36 sybreon Fix MTS during interrupt vectoring bug (reported by M. Ettus). Revision 1.10 2007/12/25 22:15:09 sybreon Stalls pipeline on MUL/BSF instructions results in minor speed improvements. Revision 1.9 2007/11/30 16:42:51 sybreon Minor code cleanup. Revision 1.8 2007/11/16 21:52:03 sybreon Added fsl_tag_o to FSL bus (tag either address or data). Revision 1.7 2007/11/14 22:14:34 sybreon Changed interrupt handling system (reported by M. Ettus). Revision 1.6 2007/11/10 16:39:38 sybreon Upgraded license to LGPLv3. Significant performance optimisations. Revision 1.5 2007/11/09 20:51:52 sybreon Added GET/PUT support through a FSL bus. Revision 1.4 2007/11/08 14:17:47 sybreon Parameterised optional components. Revision 1.3 2007/11/03 08:34:55 sybreon Minor code cleanup. Revision 1.2 2007/11/02 19:20:58 sybreon Added better (beta) interrupt support. Changed MSR_IE to disabled at reset as per MB docs. Revision 1.1 2007/11/02 03:25:41 sybreon New EDK 3.2 compatible design with optional barrel-shifter and multiplier. Fixed various minor data hazard bugs. Code compatible with -O0/1/2/3/s generated code. */uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/000077500000000000000000000000001224274632000177675ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/.gitignore000066400000000000000000000000351224274632000217550ustar00rootroot00000000000000/*.bin /*.dump /*.vcd /*.rom uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/CODE_DEBUG.sav000066400000000000000000000005271224274632000221260ustar00rootroot00000000000000[size] 1400 971 [pos] -1 -1 *-5.188574 2727 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 @28 testbench.dut.dwb_we_o @22 testbench.dut.dwb_sel_o[3:0] testbench.dut.dwb_adr_o[15:0] @28 testbench.dut.sys_clk_i @22 testbench.dut.dwb_dat_o[31:0] @821 testbench.dut.dwb_dat_i[31:0] @22 testbench.dut.dwb_dat_i[31:0] uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/cversim000077500000000000000000000011571224274632000213710ustar00rootroot00000000000000#!/bin/sh # $Id: cversim,v 1.5 2007/12/11 00:44:30 sybreon Exp $ # $Log: cversim,v $ # Revision 1.5 2007/12/11 00:44:30 sybreon # Modified for AEMB2 # # Revision 1.4 2007/11/30 17:08:30 sybreon # Moved simulation kernel into code. # # Revision 1.3 2007/11/05 10:59:31 sybreon # Added random seed for simulation. # # Revision 1.2 2007/04/12 20:21:33 sybreon # Moved testbench into /sim/verilog. # Simulation cleanups. # # Revision 1.1 2007/03/09 17:41:55 sybreon # initial import # RANDOM=$(date +%s) echo "parameter randseed = $RANDOM;" > random.v cver -q -w +define+AEMBX_SIMULATION_KERNEL $@ ../rtl/verilog/*.v uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/iversim000077500000000000000000000011671224274632000214000ustar00rootroot00000000000000#!/bin/sh # $Id: iversim,v 1.5 2007/12/11 00:44:30 sybreon Exp $ # $Log: iversim,v $ # Revision 1.5 2007/12/11 00:44:30 sybreon # Modified for AEMB2 # # Revision 1.4 2007/11/30 17:08:30 sybreon # Moved simulation kernel into code. # # Revision 1.3 2007/11/09 20:50:51 sybreon # Added log output to iverilog.log # # Revision 1.2 2007/11/05 10:59:31 sybreon # Added random seed for simulation. # # Revision 1.1 2007/03/09 17:41:55 sybreon # initial import # RANDOM=$(date +%s) echo "parameter randseed = $RANDOM;" > random.v iverilog $@ -DAEMBX_SIMULATION_KERNEL ../rtl/verilog/*.v && vvp -l iverilog.log a.out && rm a.out uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/verilog/000077500000000000000000000000001224274632000214365ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/verilog/aemb2.v000066400000000000000000000160511224274632000226160ustar00rootroot00000000000000/* $Id: aemb2.v,v 1.3 2007/12/28 21:44:50 sybreon Exp $ ** ** AEMB2 TEST BENCH ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ module aemb2 (); parameter IWB=16; parameter DWB=16; parameter TXE = 0; ///< thread execution enable parameter MUL = 1; ///< enable hardware multiplier parameter BSF = 1; ///< enable barrel shifter parameter FSL = 1; ///< enable FSL bus parameter DIV = 0; ///< enable hardware divider `include "random.v" /*AUTOWIRE*/ // Beginning of automatic wires (for undeclared instantiated-module outputs) wire [6:2] cwb_adr_o; // From dut of aeMB2_sim.v wire [31:0] cwb_dat_o; // From dut of aeMB2_sim.v wire [3:0] cwb_sel_o; // From dut of aeMB2_sim.v wire cwb_stb_o; // From dut of aeMB2_sim.v wire [1:0] cwb_tga_o; // From dut of aeMB2_sim.v wire cwb_wre_o; // From dut of aeMB2_sim.v wire [DWB-1:2] dwb_adr_o; // From dut of aeMB2_sim.v wire dwb_cyc_o; // From dut of aeMB2_sim.v wire [31:0] dwb_dat_o; // From dut of aeMB2_sim.v wire [3:0] dwb_sel_o; // From dut of aeMB2_sim.v wire dwb_stb_o; // From dut of aeMB2_sim.v wire dwb_tga_o; // From dut of aeMB2_sim.v wire dwb_wre_o; // From dut of aeMB2_sim.v wire [IWB-1:2] iwb_adr_o; // From dut of aeMB2_sim.v wire iwb_stb_o; // From dut of aeMB2_sim.v wire iwb_tga_o; // From dut of aeMB2_sim.v wire iwb_wre_o; // From dut of aeMB2_sim.v // End of automatics /*AUTOREGINPUT*/ // Beginning of automatic reg inputs (for undeclared instantiated-module inputs) reg cwb_ack_i; // To dut of aeMB2_sim.v reg dwb_ack_i; // To dut of aeMB2_sim.v reg iwb_ack_i; // To dut of aeMB2_sim.v reg sys_clk_i; // To dut of aeMB2_sim.v reg sys_int_i; // To dut of aeMB2_sim.v reg sys_rst_i; // To dut of aeMB2_sim.v // End of automatics // INITIAL SETUP ////////////////////////////////////////////////////// //reg sys_clk_i, sys_rst_i, sys_int_i, sys_exc_i; reg svc; integer inttime; integer seed; integer theend; always #5 sys_clk_i = ~sys_clk_i; initial begin //$dumpfile("dump.vcd"); //$dumpvars(1,dut, dut.bpcu); end initial begin seed = randseed; theend = 0; svc = 0; sys_clk_i = $random(seed); sys_rst_i = 1; sys_int_i = 0; #50 sys_rst_i = 0; #3500000 $finish; end // FAKE MEMORY //////////////////////////////////////////////////////// reg [31:0] rom [0:65535]; reg [31:0] ram[0:65535]; reg [31:0] dwblat; reg [15:2] dadr, iadr; wire [31:0] dwb_dat_t = ram[dwb_adr_o]; wire [31:0] iwb_dat_i = rom[iadr]; wire [31:0] dwb_dat_i = ram[dadr]; wire [31:0] cwb_dat_i = cwb_adr_o; `ifdef POSEDGE `else // !`ifdef POSEDGE always @(negedge sys_clk_i) if (sys_rst_i) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops cwb_ack_i <= 1'h0; dwb_ack_i <= 1'h0; iwb_ack_i <= 1'h0; // End of automatics end else begin iwb_ack_i <= #1 iwb_stb_o; dwb_ack_i <= #1 dwb_stb_o; cwb_ack_i <= #1 cwb_stb_o; end // else: !if(sys_rst_i) always @(negedge sys_clk_i) begin iadr <= #1 iwb_adr_o; dadr <= #1 dwb_adr_o; if (dwb_wre_o & dwb_stb_o) begin case (dwb_sel_o) 4'h1: ram[dwb_adr_o] <= {dwb_dat_t[31:8], dwb_dat_o[7:0]}; 4'h2: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:8], dwb_dat_t[7:0]}; 4'h4: ram[dwb_adr_o] <= {dwb_dat_t[31:24], dwb_dat_o[23:16], dwb_dat_t[15:0]}; 4'h8: ram[dwb_adr_o] <= {dwb_dat_o[31:24], dwb_dat_t[23:0]}; 4'h3: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:0]}; 4'hC: ram[dwb_adr_o] <= {dwb_dat_o[31:16], dwb_dat_t[15:0]}; 4'hF: ram[dwb_adr_o] <= {dwb_dat_o}; endcase // case (dwb_sel_o) end // if (dwb_we_o & dwb_stb_o) end // always @ (negedge sys_clk_i) `endif // !`ifdef POSEDGE integer i; initial begin for (i=0;i<65535;i=i+1) begin ram[i] <= $random; end #1 $readmemh("dump.vmem",rom); #1 $readmemh("dump.vmem",ram); end // DISPLAY OUTPUTS /////////////////////////////////////////////////// integer rnd; always @(posedge sys_clk_i) begin // Interrupt Monitors if (!dut.sim.rMSR_IE) begin rnd = $random % 30; inttime = $stime + 1000 + (rnd*rnd * 10); end if ($stime > inttime) begin sys_int_i = 1; svc = 0; end if (($stime > inttime + 500) && !svc) begin $display("\n\t*** INTERRUPT TIMEOUT ***", inttime); $finish; end if (dwb_wre_o & (dwb_dat_o == "RTNI")) sys_int_i = 0; /* if (dut.regf.fRDWE && (dut.rRD == 5'h0e) && !svc && dut.gena) begin svc = 1; //$display("\nLATENCY: ", ($stime - inttime)/10); end */ // Pass/Fail Monitors if (dwb_wre_o & (dwb_dat_o == "FAIL")) begin $display("\n\tFAIL"); $finish; end if (iwb_dat_i == 32'hb8000000) begin theend = theend + 1; end if (theend == 5) begin $display("\n\t*** PASSED ALL TESTS ***"); $finish; end end // always @ (posedge sys_clk_i) // INTERNAL WIRING //////////////////////////////////////////////////// aeMB2_sim #(/*AUTOINSTPARAM*/ // Parameters .IWB (IWB), .DWB (DWB), .TXE (TXE), .MUL (MUL), .BSF (BSF), .FSL (FSL), .DIV (DIV)) dut (/*AUTOINST*/ // Outputs .cwb_adr_o (cwb_adr_o[6:2]), .cwb_dat_o (cwb_dat_o[31:0]), .cwb_sel_o (cwb_sel_o[3:0]), .cwb_stb_o (cwb_stb_o), .cwb_tga_o (cwb_tga_o[1:0]), .cwb_wre_o (cwb_wre_o), .dwb_adr_o (dwb_adr_o[DWB-1:2]), .dwb_cyc_o (dwb_cyc_o), .dwb_dat_o (dwb_dat_o[31:0]), .dwb_sel_o (dwb_sel_o[3:0]), .dwb_stb_o (dwb_stb_o), .dwb_tga_o (dwb_tga_o), .dwb_wre_o (dwb_wre_o), .iwb_adr_o (iwb_adr_o[IWB-1:2]), .iwb_stb_o (iwb_stb_o), .iwb_tga_o (iwb_tga_o), .iwb_wre_o (iwb_wre_o), // Inputs .cwb_ack_i (cwb_ack_i), .cwb_dat_i (cwb_dat_i[31:0]), .dwb_ack_i (dwb_ack_i), .dwb_dat_i (dwb_dat_i[31:0]), .iwb_ack_i (iwb_ack_i), .iwb_dat_i (iwb_dat_i[31:0]), .sys_clk_i (sys_clk_i), .sys_int_i (sys_int_i), .sys_rst_i (sys_rst_i)); endmodule // edk32 /* $Log $ */ // Local Variables: // verilog-library-directories:("." "../../rtl/verilog/") // verilog-library-files:("") // End: uhd-3.5.5/fpga/usrp2/opencores/aemb/sim/verilog/edk32.v000066400000000000000000000175351224274632000225500ustar00rootroot00000000000000/* $Id: edk32.v,v 1.12 2007/12/23 20:40:51 sybreon Exp $ ** ** AEMB EDK 3.2 Compatible Core TEST ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ `define AEMB_SIMULATION_KERNEL module edk32 (); `include "random.v" // INITIAL SETUP ////////////////////////////////////////////////////// reg sys_clk_i, sys_rst_i, sys_int_i, sys_exc_i; reg svc; integer inttime; integer seed; integer theend; always #5 sys_clk_i = ~sys_clk_i; initial begin //$dumpfile("dump.vcd"); //$dumpvars(1,dut); end initial begin seed = randseed; theend = 0; svc = 0; sys_clk_i = $random(seed); sys_rst_i = 1; sys_int_i = 0; sys_exc_i = 0; #50 sys_rst_i = 0; end initial fork //inttime $display("FSADFASDFSDAF"); //#10000 sys_int_i = 1; //#1100 sys_int_i = 0; //#100000 $displayh("\nTest Completed."); //#4000 $finish; join // FAKE MEMORY //////////////////////////////////////////////////////// wire fsl_stb_o; wire fsl_wre_o; wire [31:0] fsl_dat_o; wire [31:0] fsl_dat_i; wire [6:2] fsl_adr_o; wire [15:2] iwb_adr_o; wire iwb_stb_o; wire dwb_stb_o; reg [31:0] rom [0:65535]; wire [31:0] iwb_dat_i; reg iwb_ack_i, dwb_ack_i, fsl_ack_i; reg [31:0] ram[0:65535]; wire [31:0] dwb_dat_i; reg [31:0] dwblat; wire dwb_we_o; reg [15:2] dadr,iadr; wire [3:0] dwb_sel_o; wire [31:0] dwb_dat_o; wire [15:2] dwb_adr_o; wire [31:0] dwb_dat_t; initial begin dwb_ack_i = 0; iwb_ack_i = 0; fsl_ack_i = 0; end assign dwb_dat_t = ram[dwb_adr_o]; assign iwb_dat_i = ram[iadr]; assign dwb_dat_i = ram[dadr]; assign fsl_dat_i = fsl_adr_o; `ifdef POSEDGE always @(posedge sys_clk_i) if (sys_rst_i) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops dwb_ack_i <= 1'h0; fsl_ack_i <= 1'h0; iwb_ack_i <= 1'h0; // End of automatics end else begin iwb_ack_i <= #1 iwb_stb_o ^ iwb_ack_i; dwb_ack_i <= #1 dwb_stb_o ^ dwb_ack_i; fsl_ack_i <= #1 fsl_stb_o ^ fsl_ack_i; end // else: !if(sys_rst_i) always @(posedge sys_clk_i) begin iadr <= #1 iwb_adr_o; dadr <= #1 dwb_adr_o; if (dwb_we_o & dwb_stb_o) begin case (dwb_sel_o) 4'h1: ram[dwb_adr_o] <= {dwb_dat_t[31:8], dwb_dat_o[7:0]}; 4'h2: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:8], dwb_dat_t[7:0]}; 4'h4: ram[dwb_adr_o] <= {dwb_dat_t[31:24], dwb_dat_o[23:16], dwb_dat_t[15:0]}; 4'h8: ram[dwb_adr_o] <= {dwb_dat_o[31:24], dwb_dat_t[23:0]}; 4'h3: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:0]}; 4'hC: ram[dwb_adr_o] <= {dwb_dat_o[31:16], dwb_dat_t[15:0]}; 4'hF: ram[dwb_adr_o] <= {dwb_dat_o}; endcase // case (dwb_sel_o) end // if (dwb_we_o & dwb_stb_o) end // always @ (posedge sys_clk_i) `else // !`ifdef POSEDGE always @(negedge sys_clk_i) if (sys_rst_i) begin /*AUTORESET*/ // Beginning of autoreset for uninitialized flops dwb_ack_i <= 1'h0; fsl_ack_i <= 1'h0; iwb_ack_i <= 1'h0; // End of automatics end else begin iwb_ack_i <= #1 iwb_stb_o; dwb_ack_i <= #1 dwb_stb_o; fsl_ack_i <= #1 fsl_stb_o; end // else: !if(sys_rst_i) always @(negedge sys_clk_i) begin iadr <= #1 iwb_adr_o; dadr <= #1 dwb_adr_o; if (dwb_we_o & dwb_stb_o) begin case (dwb_sel_o) 4'h1: ram[dwb_adr_o] <= {dwb_dat_t[31:8], dwb_dat_o[7:0]}; 4'h2: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:8], dwb_dat_t[7:0]}; 4'h4: ram[dwb_adr_o] <= {dwb_dat_t[31:24], dwb_dat_o[23:16], dwb_dat_t[15:0]}; 4'h8: ram[dwb_adr_o] <= {dwb_dat_o[31:24], dwb_dat_t[23:0]}; 4'h3: ram[dwb_adr_o] <= {dwb_dat_t[31:16], dwb_dat_o[15:0]}; 4'hC: ram[dwb_adr_o] <= {dwb_dat_o[31:16], dwb_dat_t[15:0]}; 4'hF: ram[dwb_adr_o] <= {dwb_dat_o}; endcase // case (dwb_sel_o) end // if (dwb_we_o & dwb_stb_o) end // always @ (negedge sys_clk_i) `endif // !`ifdef POSEDGE integer i; initial begin for (i=0;i<65535;i=i+1) begin ram[i] <= $random; end #1 $readmemh("dump.vmem",ram); end // DISPLAY OUTPUTS /////////////////////////////////////////////////// integer rnd; always @(posedge sys_clk_i) begin // Interrupt Monitors if (!dut.cpu.rMSR_IE) begin rnd = $random % 30; inttime = $stime + 1000 + (rnd*rnd * 10); end if ($stime > inttime) begin sys_int_i = 1; svc = 0; end if (($stime > inttime + 500) && !svc) begin $display("\n\t*** INTERRUPT TIMEOUT ***", inttime); $finish; end if (dwb_we_o & (dwb_dat_o == "RTNI")) sys_int_i = 0; if (dut.cpu.regf.fRDWE && (dut.cpu.rRD == 5'h0e) && !svc && dut.cpu.gena) begin svc = 1; //$display("\nLATENCY: ", ($stime - inttime)/10); end // Pass/Fail Monitors if (dwb_we_o & (dwb_dat_o == "FAIL")) begin $display("\n\tFAIL"); $finish; end if (iwb_dat_i == 32'hb8000000) begin theend = theend + 1; end if (theend == 5) begin $display("\n\t*** PASSED ALL TESTS ***"); $finish; end end // always @ (posedge sys_clk_i) // INTERNAL WIRING //////////////////////////////////////////////////// aeMB_sim #(16,16) dut ( .sys_int_i(sys_int_i), .dwb_ack_i(dwb_ack_i), .dwb_stb_o(dwb_stb_o), .dwb_adr_o(dwb_adr_o), .dwb_dat_o(dwb_dat_o), .dwb_dat_i(dwb_dat_i), .dwb_wre_o(dwb_we_o), .dwb_sel_o(dwb_sel_o), .fsl_ack_i(fsl_ack_i), .fsl_stb_o(fsl_stb_o), .fsl_adr_o(fsl_adr_o), .fsl_dat_o(fsl_dat_o), .fsl_dat_i(fsl_dat_i), .fsl_wre_o(fsl_we_o), .iwb_adr_o(iwb_adr_o), .iwb_dat_i(iwb_dat_i), .iwb_stb_o(iwb_stb_o), .iwb_ack_i(iwb_ack_i), .sys_clk_i(sys_clk_i), .sys_rst_i(sys_rst_i) ); endmodule // edk32 /* $Log: edk32.v,v $ Revision 1.12 2007/12/23 20:40:51 sybreon Abstracted simulation kernel (aeMB_sim) to split simulation models from synthesis models. Revision 1.11 2007/12/11 00:44:31 sybreon Modified for AEMB2 Revision 1.10 2007/11/30 17:08:30 sybreon Moved simulation kernel into code. Revision 1.9 2007/11/20 18:36:00 sybreon Removed unnecessary byte acrobatics with VMEM data. Revision 1.8 2007/11/18 19:41:45 sybreon Minor simulation fixes. Revision 1.7 2007/11/14 22:11:41 sybreon Added posedge/negedge bus interface. Modified interrupt test system. Revision 1.6 2007/11/13 23:37:28 sybreon Updated simulation to also check BRI 0x00 instruction. Revision 1.5 2007/11/09 20:51:53 sybreon Added GET/PUT support through a FSL bus. Revision 1.4 2007/11/08 14:18:00 sybreon Parameterised optional components. Revision 1.3 2007/11/05 10:59:31 sybreon Added random seed for simulation. Revision 1.2 2007/11/02 19:16:10 sybreon Added interrupt simulation. Changed "human readable" simulation output. Revision 1.1 2007/11/02 03:25:45 sybreon New EDK 3.2 compatible design with optional barrel-shifter and multiplier. Fixed various minor data hazard bugs. Code compatible with -O0/1/2/3/s generated code. */uhd-3.5.5/fpga/usrp2/opencores/aemb/sw/000077500000000000000000000000001224274632000176305ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/sw/c/000077500000000000000000000000001224274632000200525ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/aemb/sw/c/aeMB_testbench.c000066400000000000000000000173171224274632000230720ustar00rootroot00000000000000/* $Id: aeMB_testbench.c,v 1.14 2007/12/28 21:44:04 sybreon Exp $ ** ** AEMB Function Verification C Testbench ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ** License for more details. ** ** You should have received a copy of the GNU General Public License ** along with AEMB. If not, see . */ #include #include #include #include "libaemb.h" /** INTERRUPT TEST This tests for the following: - Pointer addressing - Interrupt handling */ void __attribute__ ((interrupt_handler)) int_handler(); volatile int service = 0xDEADDEAD; void int_service() { int* pio = (int*)0xFFFFFFFC; *pio = 0x52544E49; // "INTR" service = 0; } void int_handler() { int_service(); } /** INTERRUPT TEST ROUTINE */ int int_test () { // Delay loop until hardware interrupt triggers volatile int i; for (i=0; i < 999; i++) { if (service == 0) return 0; }; return -1; } /** FIBONACCI TEST http://en.literateprograms.org/Fibonacci_numbers_(C) This tests for the following: - Recursion & Iteration - 32/16/8-bit data handling */ unsigned int fib_slow(unsigned int n) { return n < 2 ? n : fib_slow(n-1) + fib_slow(n-2); } unsigned int fib_fast(unsigned int n) { unsigned int a[3]; unsigned int *p=a; unsigned int i; for(i=0; i<=n; ++i) { if(i<2) *p=i; else { if(p==a) *p=*(a+1)+*(a+2); else if(p==a+1) *p=*a+*(a+2); else *p=*a+*(a+1); } if(++p>a+2) p=a; } return p==a?*(p+2):*(p-1); } int fib_test(int max) { unsigned int n; unsigned int fast, slow; // 32-bit LUT unsigned int fib_lut32[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 }; // 16-bit LUT unsigned short fib_lut16[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 }; // 8-bit LUT unsigned char fib_lut8[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 }; for (n=0;n a) goto b_larger; while (1) { a = a % b; if (a == 0) return b; b_larger: b = b % a; if (b == 0) return a; } } int euclid_test(int max) { int n; int euclid; // Random Numbers int euclid_a[] = { 1804289383, 1681692777, 1957747793, 719885386, 596516649, 1025202362, 783368690, 2044897763, 1365180540, 304089172, 35005211, 294702567, 336465782, 278722862 }; int euclid_b[] = { 846930886, 1714636915, 424238335, 1649760492, 1189641421, 1350490027, 1102520059, 1967513926, 1540383426, 1303455736, 521595368, 1726956429, 861021530, 233665123 }; // GCD int euclid_lut[] = { 1, 1, 1, 2, 1, 1, 1, 1, 6, 4, 1, 3, 2, 1 }; for (n=0;n 0.0) { xn = (i+(i-1))/2.0; break; } } while (!(iters++ >= 100 || x == xn)) { x = xn; xn = x - (x * x - n) / (2 * x); } return xn; } int newton_test (int max) { int n; float newt; // 32-bit LUT float newt_lut[] = { 0.000000000000000000000000, 1.000000000000000000000000, 1.414213538169860839843750, 1.732050776481628417968750, 2.000000000000000000000000, 2.236068010330200195312500, 2.449489831924438476562500, 2.645751237869262695312500, 2.828427076339721679687500, 3.000000000000000000000000, 3.162277698516845703125000, 3.316624879837036132812500, 3.464101552963256835937500, 3.605551242828369140625000, 3.741657495498657226562500 }; for (n=0;n_errno; // return &errnum; } */ int malloc_test() { void *alloc; alloc = (void *)malloc(256); // allocate 32 bytes if (alloc == NULL) return -1; else return (int) alloc; } /** MAIN TEST PROGRAMME This is the main test procedure. It will output signals onto the MPI port that is checked by the testbench. */ int main () { // Message Passing Port int* mpi = (int*)0xFFFFFFFF; // Number of each test to run int max = 10; // lock T0 if it's multi-threaded /* if ((aemb_isthreaded() == 0) && (aemb_isthread1() != 0)) { while (1) { asm volatile ("nop;"); } } */ // Enable Global Interrupts aemb_enable_interrupt(); // INT TEST //if (int_test() == -1) { *mpi = 0x4641494C; } // TEST MALLOC if (malloc_test() == -1) { *mpi = 0x4641494C; } // FSL TEST //if (fsl_test() == -1) { *mpi = 0x4641494C; } // Fibonacci Test if (fib_test(max) == -1) { *mpi = 0x4641494C; } // Euclid Test if (euclid_test(max) == -1) { *mpi = 0x4641494C; } // Newton-Rhapson Test if (newton_test(max) == -1) { *mpi = 0x4641494C; } // Disable Global Interrupts aemb_disable_interrupt(); // ALL PASSED return 0; } /* HISTORY $Log: aeMB_testbench.c,v $ Revision 1.14 2007/12/28 21:44:04 sybreon Added malloc() test Revision 1.13 2007/12/11 00:44:31 sybreon Modified for AEMB2 Revision 1.12 2007/11/18 19:41:45 sybreon Minor simulation fixes. Revision 1.11 2007/11/14 23:41:06 sybreon Fixed minor interrupt test typo. Revision 1.10 2007/11/14 22:12:02 sybreon Added interrupt test routine. Revision 1.9 2007/11/09 20:51:53 sybreon Added GET/PUT support through a FSL bus. Revision 1.8 2007/11/03 08:40:18 sybreon Minor code cleanup. Revision 1.7 2007/11/02 18:32:19 sybreon Enable MSR_IE with software. Revision 1.6 2007/04/30 15:57:10 sybreon Removed byte acrobatics. Revision 1.5 2007/04/27 15:17:59 sybreon Added code documentation. Added new tests that test floating point, modulo arithmetic and multiplication/division. Revision 1.4 2007/04/25 22:15:05 sybreon Added support for 8-bit and 16-bit data types. Revision 1.3 2007/04/04 14:09:04 sybreon Added initial interrupt/exception support. Revision 1.2 2007/04/04 06:07:45 sybreon Fixed C code bug which passes the test Revision 1.1 2007/03/09 17:41:57 sybreon initial import */ uhd-3.5.5/fpga/usrp2/opencores/aemb/sw/c/endian-test.c000066400000000000000000000024011224274632000224260ustar00rootroot00000000000000 #include "memory_map.h" int main() { char *p = (char *)0x4000; short *q = (short *)0x5000; int *r= (int *)0x6000; int *output = (int *)0x7000; char s; short t; int u; // Write // Bytes *p = (char)1; p++; *p = (char)2; p++; *p = (char)3; p++; *p = (char)4; p++; *p = (char)5; // Words *q = (short) 0x1112; q++; *q = (short) 0x1314; q++; *q = (short) 0x1516; // Double Words *r = 0x21222324; r++; *r = 0x25262728; r++; *r = 0x292a2b2c; // Read p = (char *)0x6000; s = *p; if(s == 0x21) *output = 0x53534150; // PASS else *output = 0x4C494146; // FAIL p = (char *)0x6001; s = *p; if(s == 0x22) *output = 0x53534150; // PASS else *output = 0x4C494146; // FAIL p = (char *)0x6002; s = *p; if(s == 0x23) *output = 0x53534150; // PASS else *output = 0x4C494146; // FAIL p = (char *)0x6003; s = *p; if(s == 0x24) *output = 0x53534150; // PASS else *output = 0x4C494146; // FAIL q = (short *)0x4000; t = *q; if(t == 0x0102) *output = 0x53534150; // PASS else *output = 0x4C494146; // FAIL r = (int *)0x4000; u = *r; if(u == 0x01020304) *output = 0x53534150; // PASS else *output = 0x4C494146; // FAIL } uhd-3.5.5/fpga/usrp2/opencores/aemb/sw/c/libaemb.h000066400000000000000000000103441224274632000216200ustar00rootroot00000000000000/* $Id: libaemb.h,v 1.3 2007/12/16 03:26:37 sybreon Exp $ ** ** AEMB2 CUSTOM LIBRARY ** ** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap ** ** This file is part of AEMB. ** ** AEMB is free software: you can redistribute it and/or modify it ** under the terms of the GNU Lesser General Public License as ** published by the Free Software Foundation, either version 3 of the ** License, or (at your option) any later version. ** ** AEMB is distributed in the hope that it will be useful, but WITHOUT ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ** or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General ** Public License for more details. ** ** You should have received a copy of the GNU Lesser General Public ** License along with AEMB. If not, see . */ #ifndef LIBAEMB_H #define LIBAEMB_H #define AEMB_TXE 0x0100 #define AEMB_TXP 0x0400 #define AEMB_TX0 0x0300 #define AEMB_TX1 0x0700 #define AEMB_MSK 0x0F00 #define AEMB_BIP 0x0008 #define AEMB_CCC 0x0004 #define AEMB_ITE 0x0002 #define AEMB_BLE 0x0001 // Linker symbols extern void* _STACK_SIZE; extern void* _stack_end; void aemb_hook_init () asm ("_program_init"); void aemb_hook_clean () asm ("_program_clean"); inline void aemb_enable_interrupt (); inline void aemb_disable_interrupt (); inline int aemb_isthread1(); inline int aemb_isthread0(); inline int aemb_isthreaded(); /*! * Assembly macro to enable MSR_IE */ void aemb_enable_interrupt () { int msr, tmp; asm volatile ("mfs %0, rmsr;" "ori %1, %0, 0x02;" "mts rmsr, %1;" : "=r"(msr) : "r" (tmp) ); } /*! * Assembly macro to disable MSR_IE */ void aemb_disable_interrupt () { int msr, tmp; asm volatile ("mfs %0, rmsr;" "andi %1, %0, 0xFD;" "mts rmsr, %1;" : "=r"(msr) : "r" (tmp) ); } /*! * Bootstrap Hook Override */ void aemb_hook_init () { int msr, tmp; int stk_end, stk_siz; /* // Check to see if hardware threads are enabled if (((msr & AEMB_TXE) != AEMB_TXE) || // Check to see if second thread is started ((msr & AEMB_TX1) == AEMB_TX1)) return; */ //return; asm volatile ("mfs %0, rmsr;" // Check for BIP "andi %1, %0, %5;" "xori %1, %1, %5;" "beqi %1, 44;" // Check for TXE "andi %1, %0, %2;" "xori %1, %1, %2;" "bnei %1, 36;" // Check for TX1 "andi %1, %0, %3;" "xori %1, %1, %3;" "beqi %1, 20;" // reallocate stack pointer for T0 "ori %1, r0, %4;" "sra %1, %1;" "rsubk r1, %1, r1;" // reboot the machine //"brki r0, _crtinit;" "brid 0;" "nop;" // clear BIP "andni %1, %0, %5;" "mts rmsr, %1;" :"=r"(msr), "=r"(tmp) :"i"(AEMB_TXE), "i"(AEMB_TX1), "i"(&_STACK_SIZE), "i"(AEMB_BIP) ); } /*! Undo the changes made by programme init */ void aemb_hook_clean () { int msr, tmp; int stk_end, stk_siz; /* // Check to see if hardware threads are enabled if (((msr & AEMB_TXE) != AEMB_TXE) || // Check to see if second thread is started ((msr & AEMB_TX1) == AEMB_TX1)) return; */ return; asm volatile ("mfs %0, rmsr;" "andi %1, %0, %2;" "xori %1, %1, %2;" "bnei %1, 28;" "andi %1, %0, %3;" "xori %1, %1, %3;" "beqi %1, 16;" // reallocate stack pointer for T0 "ori %1, r0, %4;" "sra %1, %1;" "addk r1, %1, r1;" :"=r"(msr), "=r"(tmp) :"i"(AEMB_TXE), "i"(AEMB_TX1), "i"(&_STACK_SIZE) ); } /* Checks if it's T1, and returns 0 if true */ int aemb_isthread1 () { int msr, tmp, res; asm volatile ("mfs %0, rmsr;" "andi %1, %0, %3;" "xori %1, %1, %3;" :"=r"(msr), "=r"(tmp) :"i"(AEMB_TXE), "i"(AEMB_TXP) ); return tmp; } /* Checks if it's T0, and returns 0 if true */ int aemb_isthread0 () { int msr, tmp, res; asm volatile ("mfs %0, rmsr;" "andi %1, %0, %3;" "xori %1, %1, %2;" :"=r"(msr), "=r"(tmp) :"i"(AEMB_TXP), "i"(AEMB_MSK) ); return tmp; } /* Checks if TXE is available, and returns 0 if true */ int aemb_isthreaded () { int msr, tmp, res; asm volatile ("mfs %0, rmsr;" "andi %1, %0, %2;" "xori %1, %1, %2;" :"=r"(msr), "=r"(tmp) :"i"(AEMB_TXE), "i"(AEMB_MSK) ); return tmp; } #endif /* $Log: libaemb.h,v $ /* Revision 1.3 2007/12/16 03:26:37 sybreon /* Made T0 loop. /* /* Revision 1.1 2007/12/11 00:44:04 sybreon /* initial import /* */ uhd-3.5.5/fpga/usrp2/opencores/aemb/sw/gccrom000077500000000000000000000034301224274632000210300ustar00rootroot00000000000000#!/bin/sh # $Id: gccrom,v 1.13 2008/01/19 16:42:54 sybreon Exp $ # Compile using C++ pre-processor mb-g++ -g -Wl,-defsym -Wl,_HEAP_SIZE=0x800 -mxl-soft-div -msoft-float -mxl-barrel-shift -mno-xl-soft-mul -mno-clearbss $@ -o rom.elf -lc_m_bs -lm_m_bs && \ # Create a text listing of the compiled code mb-objdump -DSC rom.elf > rom.dump && \ # Convert the ELF file to an SREC file mb-objcopy -O srec rom.elf rom.srec && \ # Generate a Verilog VMEM file from the SREC file srec_cat rom.srec -o ../sim/dump.vmem -vmem 32 && \ # Cleanup code rm rom.srec && \ # Say Cheeze! echo "ROM generated" # $Log: gccrom,v $ # Revision 1.13 2008/01/19 16:42:54 sybreon # Uses multiplier + barrel shifter as default. # # Revision 1.12 2007/12/11 00:44:32 sybreon # Modified for AEMB2 # # Revision 1.11 2007/11/30 17:09:27 sybreon # Minor code cleanup. # # Revision 1.10 2007/11/20 18:35:34 sybreon # Generate VMEM instead of HEX dumps of programme. # # Revision 1.9 2007/11/18 19:41:46 sybreon # Minor simulation fixes. # # Revision 1.8 2007/11/09 20:52:37 sybreon # Added some compilation optimisations. # # Revision 1.7 2007/11/04 05:16:25 sybreon # Added -msoft-float and -mxl-soft-div compiler flags. # # Revision 1.6 2007/11/02 03:25:46 sybreon # New EDK 3.2 compatible design with optional barrel-shifter and multiplier. # Fixed various minor data hazard bugs. # Code compatible with -O0/1/2/3/s generated code. # # Revision 1.5 2007/10/22 19:14:38 sybreon # Recommended to compile code with -O2/3/s # # Revision 1.4 2007/04/30 15:57:31 sybreon # Modified compilation sequence. # # Revision 1.3 2007/04/25 22:15:06 sybreon # Added support for 8-bit and 16-bit data types. # # Revision 1.2 2007/04/04 06:14:39 sybreon # Minor changes # # Revision 1.1 2007/03/09 17:41:56 sybreon # initial import uhd-3.5.5/fpga/usrp2/opencores/i2c/000077500000000000000000000000001224274632000167505ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/bench/000077500000000000000000000000001224274632000200275ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/bench/verilog/000077500000000000000000000000001224274632000214765ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/bench/verilog/i2c_slave_model.v000066400000000000000000000264071224274632000247250ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE rev.B2 compliant synthesizable I2C Slave model //// //// //// //// //// //// Authors: Richard Herveille (richard@asics.ws) www.asics.ws //// //// John Sheahan (jrsheahan@optushome.com.au) //// //// //// //// Downloaded from: http://www.opencores.org/projects/i2c/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001,2002 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: i2c_slave_model.v,v 1.7 2006/09/04 09:08:51 rherveille Exp $ // // $Date: 2006/09/04 09:08:51 $ // $Revision: 1.7 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: i2c_slave_model.v,v $ // Revision 1.7 2006/09/04 09:08:51 rherveille // fixed (n)ack generation // // Revision 1.6 2005/02/28 11:33:48 rherveille // Fixed Tsu:sta timing check. // Added Thd:sta timing check. // // Revision 1.5 2003/12/05 11:05:19 rherveille // Fixed slave address MSB='1' bug // // Revision 1.4 2003/09/11 08:25:37 rherveille // Fixed a bug in the timing section. Changed 'tst_scl' into 'tst_sto'. // // Revision 1.3 2002/10/30 18:11:06 rherveille // Added timing tests to i2c_model. // Updated testbench. // // Revision 1.2 2002/03/17 10:26:38 rherveille // Fixed some race conditions in the i2c-slave model. // Added debug information. // Added headers. // `include "timescale.v" module i2c_slave_model (scl, sda); // // parameters // parameter I2C_ADR = 7'b001_0000; // // input && outpus // input scl; inout sda; // // Variable declaration // wire debug = 1'b1; reg [7:0] mem [3:0]; // initiate memory reg [7:0] mem_adr; // memory address reg [7:0] mem_do; // memory data output reg sta, d_sta; reg sto, d_sto; reg [7:0] sr; // 8bit shift register reg rw; // read/write direction wire my_adr; // my address called ?? wire i2c_reset; // i2c-statemachine reset reg [2:0] bit_cnt; // 3bit downcounter wire acc_done; // 8bits transfered reg ld; // load downcounter reg sda_o; // sda-drive level wire sda_dly; // delayed version of sda // statemachine declaration parameter idle = 3'b000; parameter slave_ack = 3'b001; parameter get_mem_adr = 3'b010; parameter gma_ack = 3'b011; parameter data = 3'b100; parameter data_ack = 3'b101; reg [2:0] state; // synopsys enum_state // // module body // initial begin sda_o = 1'b1; state = idle; end // generate shift register always @(posedge scl) sr <= #1 {sr[6:0],sda}; //detect my_address assign my_adr = (sr[7:1] == I2C_ADR); // FIXME: This should not be a generic assign, but rather // qualified on address transfer phase and probably reset by stop //generate bit-counter always @(posedge scl) if(ld) bit_cnt <= #1 3'b111; else bit_cnt <= #1 bit_cnt - 3'h1; //generate access done signal assign acc_done = !(|bit_cnt); // generate delayed version of sda // this model assumes a hold time for sda after the falling edge of scl. // According to the Phillips i2c spec, there s/b a 0 ns hold time for sda // with regards to scl. If the data changes coincident with the clock, the // acknowledge is missed // Fix by Michael Sosnoski assign #1 sda_dly = sda; //detect start condition always @(negedge sda) if(scl) begin sta <= #1 1'b1; d_sta <= #1 1'b0; sto <= #1 1'b0; if(debug) $display("DEBUG i2c_slave; start condition detected at %t", $time); end else sta <= #1 1'b0; always @(posedge scl) d_sta <= #1 sta; // detect stop condition always @(posedge sda) if(scl) begin sta <= #1 1'b0; sto <= #1 1'b1; if(debug) $display("DEBUG i2c_slave; stop condition detected at %t", $time); end else sto <= #1 1'b0; //generate i2c_reset signal assign i2c_reset = sta || sto; // generate statemachine always @(negedge scl or posedge sto) if (sto || (sta && !d_sta) ) begin state <= #1 idle; // reset statemachine sda_o <= #1 1'b1; ld <= #1 1'b1; end else begin // initial settings sda_o <= #1 1'b1; ld <= #1 1'b0; case(state) // synopsys full_case parallel_case idle: // idle state if (acc_done && my_adr) begin state <= #1 slave_ack; rw <= #1 sr[0]; sda_o <= #1 1'b0; // generate i2c_ack #2; if(debug && rw) $display("DEBUG i2c_slave; command byte received (read) at %t", $time); if(debug && !rw) $display("DEBUG i2c_slave; command byte received (write) at %t", $time); if(rw) begin mem_do <= #1 mem[mem_adr]; if(debug) begin #2 $display("DEBUG i2c_slave; data block read %x from address %x (1)", mem_do, mem_adr); #2 $display("DEBUG i2c_slave; memcheck [0]=%x, [1]=%x, [2]=%x", mem[4'h0], mem[4'h1], mem[4'h2]); end end end slave_ack: begin if(rw) begin state <= #1 data; sda_o <= #1 mem_do[7]; end else state <= #1 get_mem_adr; ld <= #1 1'b1; end get_mem_adr: // wait for memory address if(acc_done) begin state <= #1 gma_ack; mem_adr <= #1 sr; // store memory address sda_o <= #1 !(sr <= 15); // generate i2c_ack, for valid address if(debug) #1 $display("DEBUG i2c_slave; address received. adr=%x, ack=%b", sr, sda_o); end gma_ack: begin state <= #1 data; ld <= #1 1'b1; end data: // receive or drive data begin if(rw) sda_o <= #1 mem_do[7]; if(acc_done) begin state <= #1 data_ack; mem_adr <= #2 mem_adr + 8'h1; sda_o <= #1 (rw && (mem_adr <= 15) ); // send ack on write, receive ack on read if(rw) begin #3 mem_do <= mem[mem_adr]; if(debug) #5 $display("DEBUG i2c_slave; data block read %x from address %x (2)", mem_do, mem_adr); end if(!rw) begin mem[ mem_adr[3:0] ] <= #1 sr; // store data in memory if(debug) #2 $display("DEBUG i2c_slave; data block write %x to address %x", sr, mem_adr); end end end data_ack: begin ld <= #1 1'b1; if(rw) if(sr[0]) // read operation && master send NACK begin state <= #1 idle; sda_o <= #1 1'b1; end else begin state <= #1 data; sda_o <= #1 mem_do[7]; end else begin state <= #1 data; sda_o <= #1 1'b1; end end endcase end // read data from memory always @(posedge scl) if(!acc_done && rw) mem_do <= #1 {mem_do[6:0], 1'b1}; // insert 1'b1 for host ack generation // generate tri-states assign sda = sda_o ? 1'bz : 1'b0; // // Timing checks // wire tst_sto = sto; wire tst_sta = sta; specify specparam normal_scl_low = 4700, normal_scl_high = 4000, normal_tsu_sta = 4700, normal_thd_sta = 4000, normal_tsu_sto = 4000, normal_tbuf = 4700, fast_scl_low = 1300, fast_scl_high = 600, fast_tsu_sta = 1300, fast_thd_sta = 600, fast_tsu_sto = 600, fast_tbuf = 1300; $width(negedge scl, normal_scl_low); // scl low time $width(posedge scl, normal_scl_high); // scl high time $setup(posedge scl, negedge sda &&& scl, normal_tsu_sta); // setup start $setup(negedge sda &&& scl, negedge scl, normal_thd_sta); // hold start $setup(posedge scl, posedge sda &&& scl, normal_tsu_sto); // setup stop $setup(posedge tst_sta, posedge tst_sto, normal_tbuf); // stop to start time endspecify endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/bench/verilog/spi_slave_model.v000066400000000000000000000075361224274632000250450ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// SPI Slave Model //// //// //// //// //// //// Authors: Richard Herveille (richard@asics.ws) www.asics.ws //// //// //// //// http://www.opencores.org/projects/simple_spi/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2004 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: spi_slave_model.v,v 1.1 2004/02/28 15:32:54 rherveille Exp $ // // $Date: 2004/02/28 15:32:54 $ // $Revision: 1.1 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: spi_slave_model.v,v $ // Revision 1.1 2004/02/28 15:32:54 rherveille // Added testbench // // // // Requires: Verilog2001 `include "timescale.v" module spi_slave_model ( input wire csn; input wire sck input wire di; output wire do ); // // Variable declaration // wire debug = 1'b1; wire cpol = 1'b0; wire cpha = 1'b0; reg [7:0] mem [7:0]; // initiate memory reg [2:0] mem_adr; // memory address reg [7:0] mem_do; // memory data output reg [7:0] sri, sro; // 8bit shift register reg [2:0] bit_cnt; reg ld; wire clk; // // module body // assign clk = cpol ^ cpha ^ sck; // generate shift registers always @(posedge clk) sri <= #1 {sri[6:0],di}; always @(posedge clk) if (&bit_cnt) sro <= #1 mem[mem_adr]; else sro <= #1 {sro[6:0],1'bx}; assign do = sro[7]; //generate bit-counter always @(posedge clk, posedge csn) if(csn) bit_cnt <= #1 3'b111; else bit_cnt <= #1 bit_cnt - 3'h1; //generate access done signal always @(posedge clk) ld <= #1 ~(|bit_cnt); always @(negedge clk) if (ld) begin mem[mem_adr] <= #1 sri; mem_adr <= #1 mem_adr + 1'b1; end initial begin bit_cnt=3'b111; mem_adr = 0; sro = mem[mem_adr]; end endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/bench/verilog/tst_bench_top.v000066400000000000000000000343771224274632000245360ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE rev.B2 compliant I2C Master controller Testbench //// //// //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// //// Downloaded from: http://www.opencores.org/projects/i2c/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: tst_bench_top.v,v 1.8 2006/09/04 09:08:51 rherveille Exp $ // // $Date: 2006/09/04 09:08:51 $ // $Revision: 1.8 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: tst_bench_top.v,v $ // Revision 1.8 2006/09/04 09:08:51 rherveille // fixed (n)ack generation // // Revision 1.7 2005/02/27 09:24:18 rherveille // Fixed scl, sda delay. // // Revision 1.6 2004/02/28 15:40:42 rherveille // *** empty log message *** // // Revision 1.4 2003/12/05 11:04:38 rherveille // Added slave address configurability // // Revision 1.3 2002/10/30 18:11:06 rherveille // Added timing tests to i2c_model. // Updated testbench. // // Revision 1.2 2002/03/17 10:26:38 rherveille // Fixed some race conditions in the i2c-slave model. // Added debug information. // Added headers. // `include "timescale.v" module tst_bench_top(); // // wires && regs // reg clk; reg rstn; wire [31:0] adr; wire [ 7:0] dat_i, dat_o, dat0_i, dat1_i; wire we; wire stb; wire cyc; wire ack; wire inta; reg [7:0] q, qq; wire scl, scl0_o, scl0_oen, scl1_o, scl1_oen; wire sda, sda0_o, sda0_oen, sda1_o, sda1_oen; parameter PRER_LO = 3'b000; parameter PRER_HI = 3'b001; parameter CTR = 3'b010; parameter RXR = 3'b011; parameter TXR = 3'b011; parameter CR = 3'b100; parameter SR = 3'b100; parameter TXR_R = 3'b101; // undocumented / reserved output parameter CR_R = 3'b110; // undocumented / reserved output parameter RD = 1'b1; parameter WR = 1'b0; parameter SADR = 7'b0010_000; // // Module body // // generate clock always #5 clk = ~clk; // hookup wishbone master model wb_master_model #(8, 32) u0 ( .clk(clk), .rst(rstn), .adr(adr), .din(dat_i), .dout(dat_o), .cyc(cyc), .stb(stb), .we(we), .sel(), .ack(ack), .err(1'b0), .rty(1'b0) ); wire stb0 = stb & ~adr[3]; wire stb1 = stb & adr[3]; assign dat_i = ({{8'd8}{stb0}} & dat0_i) | ({{8'd8}{stb1}} & dat1_i); // hookup wishbone_i2c_master core i2c_master_top i2c_top ( // wishbone interface .wb_clk_i(clk), .wb_rst_i(1'b0), .arst_i(rstn), .wb_adr_i(adr[2:0]), .wb_dat_i(dat_o), .wb_dat_o(dat0_i), .wb_we_i(we), .wb_stb_i(stb0), .wb_cyc_i(cyc), .wb_ack_o(ack), .wb_inta_o(inta), // i2c signals .scl_pad_i(scl), .scl_pad_o(scl0_o), .scl_padoen_o(scl0_oen), .sda_pad_i(sda), .sda_pad_o(sda0_o), .sda_padoen_o(sda0_oen) ), i2c_top2 ( // wishbone interface .wb_clk_i(clk), .wb_rst_i(1'b0), .arst_i(rstn), .wb_adr_i(adr[2:0]), .wb_dat_i(dat_o), .wb_dat_o(dat1_i), .wb_we_i(we), .wb_stb_i(stb1), .wb_cyc_i(cyc), .wb_ack_o(ack), .wb_inta_o(inta), // i2c signals .scl_pad_i(scl), .scl_pad_o(scl1_o), .scl_padoen_o(scl1_oen), .sda_pad_i(sda), .sda_pad_o(sda1_o), .sda_padoen_o(sda1_oen) ); // hookup i2c slave model i2c_slave_model #(SADR) i2c_slave ( .scl(scl), .sda(sda) ); // create i2c lines delay m0_scl (scl0_oen ? 1'bz : scl0_o, scl), m1_scl (scl1_oen ? 1'bz : scl1_o, scl), m0_sda (sda0_oen ? 1'bz : sda0_o, sda), m1_sda (sda1_oen ? 1'bz : sda1_o, sda); pullup p1(scl); // pullup scl line pullup p2(sda); // pullup sda line initial begin `ifdef WAVES $shm_open("waves"); $shm_probe("AS",tst_bench_top,"AS"); $display("INFO: Signal dump enabled ...\n\n"); `endif // force i2c_slave.debug = 1'b1; // enable i2c_slave debug information force i2c_slave.debug = 1'b0; // disable i2c_slave debug information $display("\nstatus: %t Testbench started\n\n", $time); // $dumpfile("bench.vcd"); // $dumpvars(1, tst_bench_top); // $dumpvars(1, tst_bench_top.i2c_slave); // initially values clk = 0; // reset system rstn = 1'b1; // negate reset #2; rstn = 1'b0; // assert reset repeat(1) @(posedge clk); rstn = 1'b1; // negate reset $display("status: %t done reset", $time); @(posedge clk); // // program core // // program internal registers u0.wb_write(1, PRER_LO, 8'hfa); // load prescaler lo-byte u0.wb_write(1, PRER_LO, 8'hc8); // load prescaler lo-byte u0.wb_write(1, PRER_HI, 8'h00); // load prescaler hi-byte $display("status: %t programmed registers", $time); u0.wb_cmp(0, PRER_LO, 8'hc8); // verify prescaler lo-byte u0.wb_cmp(0, PRER_HI, 8'h00); // verify prescaler hi-byte $display("status: %t verified registers", $time); u0.wb_write(1, CTR, 8'h80); // enable core $display("status: %t core enabled", $time); // // access slave (write) // // drive slave address u0.wb_write(1, TXR, {SADR,WR} ); // present slave address, set write-bit u0.wb_write(0, CR, 8'h90 ); // set command (start, write) $display("status: %t generate 'start', write cmd %0h (slave address+write)", $time, {SADR,WR} ); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(0, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // send memory address u0.wb_write(1, TXR, 8'h01); // present slave's memory address u0.wb_write(0, CR, 8'h10); // set command (write) $display("status: %t write slave memory address 01", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(0, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // send memory contents u0.wb_write(1, TXR, 8'ha5); // present data u0.wb_write(0, CR, 8'h10); // set command (write) $display("status: %t write data a5", $time); while (scl) #1; force scl= 1'b0; #100000; release scl; // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // send memory contents for next memory address (auto_inc) u0.wb_write(1, TXR, 8'h5a); // present data u0.wb_write(0, CR, 8'h50); // set command (stop, write) $display("status: %t write next data 5a, generate 'stop'", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // // delay // // #100000; // wait for 100us. // $display("status: %t wait 100us", $time); // // access slave (read) // // drive slave address u0.wb_write(1, TXR,{SADR,WR} ); // present slave address, set write-bit u0.wb_write(0, CR, 8'h90 ); // set command (start, write) $display("status: %t generate 'start', write cmd %0h (slave address+write)", $time, {SADR,WR} ); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // send memory address u0.wb_write(1, TXR, 8'h01); // present slave's memory address u0.wb_write(0, CR, 8'h10); // set command (write) $display("status: %t write slave address 01", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // drive slave address u0.wb_write(1, TXR, {SADR,RD} ); // present slave's address, set read-bit u0.wb_write(0, CR, 8'h90 ); // set command (start, write) $display("status: %t generate 'repeated start', write cmd %0h (slave address+read)", $time, {SADR,RD} ); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // read data from slave u0.wb_write(1, CR, 8'h20); // set command (read, ack_read) $display("status: %t read + ack", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // check data just received u0.wb_read(1, RXR, qq); if(qq !== 8'ha5) $display("\nERROR: Expected a5, received %x at time %t", qq, $time); else $display("status: %t received %x", $time, qq); // read data from slave u0.wb_write(1, CR, 8'h20); // set command (read, ack_read) $display("status: %t read + ack", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // check data just received u0.wb_read(1, RXR, qq); if(qq !== 8'h5a) $display("\nERROR: Expected 5a, received %x at time %t", qq, $time); else $display("status: %t received %x", $time, qq); // read data from slave u0.wb_write(1, CR, 8'h20); // set command (read, ack_read) $display("status: %t read + ack", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // check data just received u0.wb_read(1, RXR, qq); $display("status: %t received %x from 3rd read address", $time, qq); // read data from slave u0.wb_write(1, CR, 8'h28); // set command (read, nack_read) $display("status: %t read + nack", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // check data just received u0.wb_read(1, RXR, qq); $display("status: %t received %x from 4th read address", $time, qq); // // check invalid slave memory address // // drive slave address u0.wb_write(1, TXR, {SADR,WR} ); // present slave address, set write-bit u0.wb_write(0, CR, 8'h90 ); // set command (start, write) $display("status: %t generate 'start', write cmd %0h (slave address+write). Check invalid address", $time, {SADR,WR} ); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // send memory address u0.wb_write(1, TXR, 8'h10); // present slave's memory address u0.wb_write(0, CR, 8'h10); // set command (write) $display("status: %t write slave memory address 10", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); // slave should have send NACK $display("status: %t Check for nack", $time); if(!q[7]) $display("\nERROR: Expected NACK, received ACK\n"); // read data from slave u0.wb_write(1, CR, 8'h40); // set command (stop) $display("status: %t generate 'stop'", $time); // check tip bit u0.wb_read(1, SR, q); while(q[1]) u0.wb_read(1, SR, q); // poll it until it is zero $display("status: %t tip==0", $time); #250000; // wait 250us $display("\n\nstatus: %t Testbench done", $time); $finish; end endmodule module delay (in, out); input in; output out; assign out = in; specify (in => out) = (600,600); endspecify endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/bench/verilog/wb_master_model.v000066400000000000000000000126761224274632000250440ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////// //// //// //// WISHBONE rev.B2 Wishbone Master model //// //// //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// //// Downloaded from: http://www.opencores.org/projects/mem_ctrl //// //// //// /////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// /////////////////////////////////////////////////////////////////////// // CVS Log // // $Id: wb_master_model.v,v 1.4 2004/02/28 15:40:42 rherveille Exp $ // // $Date: 2004/02/28 15:40:42 $ // $Revision: 1.4 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // `include "timescale.v" module wb_master_model(clk, rst, adr, din, dout, cyc, stb, we, sel, ack, err, rty); parameter dwidth = 32; parameter awidth = 32; input clk, rst; output [awidth -1:0] adr; input [dwidth -1:0] din; output [dwidth -1:0] dout; output cyc, stb; output we; output [dwidth/8 -1:0] sel; input ack, err, rty; //////////////////////////////////////////////////////////////////// // // Local Wires // reg [awidth -1:0] adr; reg [dwidth -1:0] dout; reg cyc, stb; reg we; reg [dwidth/8 -1:0] sel; reg [dwidth -1:0] q; //////////////////////////////////////////////////////////////////// // // Memory Logic // initial begin //adr = 32'hxxxx_xxxx; //adr = 0; adr = {awidth{1'bx}}; dout = {dwidth{1'bx}}; cyc = 1'b0; stb = 1'bx; we = 1'hx; sel = {dwidth/8{1'bx}}; #1; $display("\nINFO: WISHBONE MASTER MODEL INSTANTIATED (%m)\n"); end //////////////////////////////////////////////////////////////////// // // Wishbone write cycle // task wb_write; input delay; integer delay; input [awidth -1:0] a; input [dwidth -1:0] d; begin // wait initial delay repeat(delay) @(posedge clk); // assert wishbone signal #1; adr = a; dout = d; cyc = 1'b1; stb = 1'b1; we = 1'b1; sel = {dwidth/8{1'b1}}; @(posedge clk); // wait for acknowledge from slave while(~ack) @(posedge clk); // negate wishbone signals #1; cyc = 1'b0; stb = 1'bx; adr = {awidth{1'bx}}; dout = {dwidth{1'bx}}; we = 1'hx; sel = {dwidth/8{1'bx}}; end endtask //////////////////////////////////////////////////////////////////// // // Wishbone read cycle // task wb_read; input delay; integer delay; input [awidth -1:0] a; output [dwidth -1:0] d; begin // wait initial delay repeat(delay) @(posedge clk); // assert wishbone signals #1; adr = a; dout = {dwidth{1'bx}}; cyc = 1'b1; stb = 1'b1; we = 1'b0; sel = {dwidth/8{1'b1}}; @(posedge clk); // wait for acknowledge from slave while(~ack) @(posedge clk); // negate wishbone signals #1; cyc = 1'b0; stb = 1'bx; adr = {awidth{1'bx}}; dout = {dwidth{1'bx}}; we = 1'hx; sel = {dwidth/8{1'bx}}; d = din; end endtask //////////////////////////////////////////////////////////////////// // // Wishbone compare cycle (read data from location and compare with expected data) // task wb_cmp; input delay; integer delay; input [awidth -1:0] a; input [dwidth -1:0] d_exp; begin wb_read (delay, a, q); if (d_exp !== q) $display("Data compare error. Received %h, expected %h at time %t", q, d_exp, $time); end endtask endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/doc/000077500000000000000000000000001224274632000175155ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/doc/i2c_specs.pdf000066400000000000000000006350171224274632000220760ustar00rootroot00000000000000%PDF-1.3 %âãÏÓ 130 0 obj << /Linearized 1 /O 132 /H [ 807 583 ] /L 211471 /E 55772 /N 18 /T 208752 >> endobj xref 130 15 0000000016 00000 n 0000000651 00000 n 0000001390 00000 n 0000001563 00000 n 0000001696 00000 n 0000001922 00000 n 0000002431 00000 n 0000002659 00000 n 0000003121 00000 n 0000006404 00000 n 0000035127 00000 n 0000055326 00000 n 0000055466 00000 n 0000000807 00000 n 0000001368 00000 n trailer << /Size 145 /Info 116 0 R /Root 131 0 R /Prev 208741 /ID[<39fba8a04ae75ebb1483bac48e64f588><39fba8a04ae75ebb1483bac48e64f588>] >> startxref 0 %%EOF 131 0 obj << /Type /Catalog /Pages 118 0 R /OpenAction [ 132 0 R /XYZ null null null ] /PageMode /UseNone /JT 129 0 R /PageLabels 115 0 R >> endobj 143 0 obj << /S 409 /T 504 /L 569 /Filter /FlateDecode /Length 144 0 R >> stream H‰b```"uÆŸ   ÀÀÊÀçh€ð.žc`àTãXÎoÃË)ðï8×MÑ‹üçE×ñÚñ©snájœÆþÅRZÕÌ÷pÐUÙ€&°>IiÝ<Ž‘ÇNÈ.çäÙæd»YÜŒý†%ã­‚I‡9'Ÿ“™6Ãø¦îf¾ŒrN3oŽ,¦å7Dq:”us˜ù wÈ. Hùtˆç"kcù Ãíe•L2-Û‚xo©4ëN6tk/LòæQ (ŠŠœt5pi§ŽÁÌPÇ“™I‡9§F8†¨IEºÍa cÅCd¦Mc`èhù’I££H*W€ì ‚-½£(åâââf¤¥˜Ä²ÅA‚ &k8XM¨€À(lVÆÀ¤Þ5•˜pj0e`¼:Hs±"8,MÑPÁÀ°–ñÃzÆ™<óòÿùmbgc’`lf˜À, ´e%c(\f¯a8ÀÀ°dÖY†YÓ6«²3è02Ââ×›éOqY¸@nËä30«ö2€SS¿13£vÔôÖ· þ3Y'†–. ½é›Èç”.b`Öjò0ȯ•Þ endstream endobj 144 0 obj 460 endobj 132 0 obj << /Type /Page /Parent 117 0 R /Resources 133 0 R /Contents 138 0 R /Thumb 75 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 133 0 obj << /ProcSet [ /PDF /Text ] /Font << /TT2 135 0 R /TT4 137 0 R >> /ExtGState << /GS1 141 0 R /GS2 142 0 R >> >> endobj 134 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 0 /Descent -216 /Flags 34 /FontBBox [ -558 -307 2034 1026 ] /FontName /OKLLFM+TimesNewRomanPS-BoldMT /ItalicAngle 0 /StemV 133 /FontFile2 139 0 R >> endobj 135 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 122 /Widths [ 250 0 0 500 0 0 0 0 0 0 0 0 250 333 250 278 500 500 500 500 500 500 500 500 0 500 333 0 0 0 0 0 0 722 667 722 722 667 611 778 778 389 500 0 667 944 722 778 611 0 722 556 667 722 722 1000 0 0 0 0 0 0 0 500 0 500 556 444 556 444 333 500 556 278 0 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500 444 ] /Encoding /WinAnsiEncoding /BaseFont /OKLLFM+TimesNewRomanPS-BoldMT /FontDescriptor 134 0 R >> endobj 136 0 obj << /Type /FontDescriptor /Ascent 891 /CapHeight 0 /Descent -216 /Flags 98 /FontBBox [ -498 -307 1120 1023 ] /FontName /OKLLNG+TimesNewRomanPS-ItalicMT /ItalicAngle -15 /StemV 0 /FontFile2 140 0 R >> endobj 137 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 122 /Widths [ 250 0 0 0 0 0 0 0 0 0 0 0 250 333 250 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 920 0 0 667 0 0 611 0 722 333 0 667 0 833 0 0 611 0 611 500 556 0 0 0 0 0 0 0 0 0 0 0 0 500 500 444 500 444 278 500 500 278 0 0 278 722 500 500 500 0 389 389 278 500 444 667 444 444 389 ] /Encoding /WinAnsiEncoding /BaseFont /OKLLNG+TimesNewRomanPS-ItalicMT /FontDescriptor 136 0 R >> endobj 138 0 obj << /Length 3207 /Filter /FlateDecode >> stream H‰”WËn]ÇÜ߯8KˆŽ§{¦çáU'p"À‹ÈÜ^×´Dƒ4J¶¿OUõ¡ÒÈÂÄ{»ï<º««ó׫ÓWW¾Ùvõã©Í­à>lÌ}õÒ·¶Æ>úvuw*úíáÝ鋯¿µíÝ(®ÎüóétñÏË«ŸNµ`‹å7ÃÖ>qFØÚ½ã)Î¥O¹ÕÝž_ôªì¥p5N?¾}:}wñÕ«oÞ~øxýpi}÷‹í«ûãÛõå+ÛëÅvùýÕklXuÄÅvõ·Ã¼o¹>ßüxs~ûñæþçxßK“ ù-ÜñQbk¥}ö\huÑmèÈTù±»m²²oµõ}¹¶RÜÿêñ+=øË¯ßß?|¹½¹9¿ûðÃöë‡ß.c‹ë›ÛÛëtÁh ‹G8ó[ºÂY}ìöù«OaxxuØŸï¹þù|ÿpýa¿x'‹­ì1û \Ntž»c=¹øÄ‹WuonZ1\+x³Ï϶‘¾¹þm¿€[ÉÏ•^agŸÍŸÝmÕ>Ÿp@ôú×ÛÿlõO—q±9~IìV¢‘GÛÓmYû÷«Ó¿þµ,A#ðK_Ïw'èö²æñ÷Íרùzóí§ a¾}ÚÚöÍöÝ÷eûôvÒÛ¶›íäwÖ¶õê{«k»ƒ†„©[G`¿—º×}€ \wˆ¶O„æ|ê±W kíöÔ‰Cý^·{¦½”}bYGh .)Ûòpâ~pË›a;e@ }_È7pJ×F¤ZÛ'¤8ûÀ~›sçϲwë8À–ƒN°xâ„È4-sl}Œ}JZ:ø<\W±jYâÉa4HÊkfLÕ*]Éà4pر#5U|Gùä†aq˜¬q ]|¢²§íµ 8hÈ\áS0½0+MŶ–ðsÒ¹ÓªaK º*ªI®`0åb =-E[2ÇFÚÖÄ 4´Ç±$Pn]é„ábFj,ÒRØ,Ã@ÑÙÛÿ×,™ ¢•í‚BT ¥8ë¼¹kÿã@A™T'ªCýÞÐfd!› CK©N &}´˜Ìú¿ÒTR…²r’IpQn¸+¬ÜQEŽž>Ý:+ØÌéX×Lƒß‹ÒŠÃGPuTñcDS9e5½t]p°>…ç¾Åî`„mg¨`(Cã (kL#Kš“€šî-3‰¡#p=K­;O€c ÀUTù•> );€µìD”„¦l+ÃAA;’âÄlÃÆ²›È¼ôã|øf¤wwyÄPÏ´ æê5CÛ3¿ƒ€‹-²\làäÍ|`õ„]d3›F­UØÏc­lЧQm@,á:[_dírLNÆOU·d  ˆ„{è ldå°×x 'äXgã Ó1ì^žÉbÆiÃpíã‹á€Å Í ñߦeôžàR3.­«P±L³ úžå—ÓB×c,˜LΕ‡¿y¢–EƒK^Tå5 3º7M™·¿óJôì¨>‘Tâ¬z'£9ùôŽé4K'ƬÉék½¥¿qÃÙ¡ÁËGkX?ìÐŒšTÀd~œ³P÷‰4ð8§—™$ËŽ00¬‘=Âæ¡™5#ª¹f´lEóQ³Ô}OGŸ;EGGËø¡›,gD¡àÄ×Ñ‚”5'2çä³ V!ÉÔæÇ1)a5KÙ(¢µ-=Kø#)‰†W”°ƒÛSc•±p³™**®ÒãÔ+9 \œ±ƒ‚ŒÔTëÚ=7DVèŽîéê!š‹]Š¥ Åbjê|˜ÃÁ ǾÛp‹a“Xg¤/l¿½ر3%Ñ)`8@hx6»¸ÞŽ$üÆã‹k'Ïr 9Á I«ŽÃÓûŠu95n'WfÑ:‚Æbv~>]& Û:¶ä$]8ↂ±cfÅÔË@Nö¬Ð‰£h`,ª»B‰&i“3,x‘LÚcMøžOòÍEE2NØ3E¾Ö&,§§"DÖÌ€XeIEP >³›%gwñ èN枺2ÆÙü¤£ßb†G».o3g]Äê&à‘„ZBc\1Bæo|_Ì ÙÔux_TàçÅÄtãÖHVçt7rõ *Mh¼³£å9hõÂpú u¬4êî„J m •Lê©à\¤¬ÅªJï|x­Cœõ*+µÒŒÌWéÀ! „ªiz=ÎJaƨ/ÕŒÂ&ž<:*4•m×ÙÜ×Å-4«!5$65]5 sq´<¹zîb˜™¶²yñ!—azÈ¢Õ§ü¶£N¸†>‘Zr¬ã +ÏlUg>3‡íÈÎÄ)]#` Â㦃Ԇâp¸O“Oc2‡*ÊXa€§0ËÇÈ— 4®[P7ñ wðEÂ[y´ÆjK+˜çßÙ•¶â<¾©`PËžol'™•õÇg–~çÈ~Lõœ-ø±8l"M2´œ#ÿ:Xû1k5Q…óßË.›3ÉA †Þ7Š Áü˜ )î\ÛC¹#α— 4;SΤ• ñŽg%«¿$\æ)UkÄâçJ^|q„I¹íÛÐ<…˜;ÆÀå±¶¯Sy€|ú·ZÀWô„³©.`xüiË7³ ÎK§Ó÷:ÓT@¢Åõð gž¬[É ô£Üýò6,÷(Ž÷)>%0±b\~n Püþó›¡ endstream endobj 139 0 obj << /Filter /FlateDecode /Length 28631 /Length1 46372 >> stream H‰\U tMWþþ½Ï¹7‚ˆF$Þ7nBGïDîˆWÌhE°$’hŠå=A§^Ót¨R:C…éÐ5¹ˆw=Š©N…x”±°ˆG %eͪvFåîù³¦íœµöÙçÿÿýý¯oCÔÅ"h¤ ýul§qÓ7¥›¸;$;?« ׄF»:²4{æ WVЃ{üw_0!wJ~'®¹g_0eÎø‡æºPBF^nVΙÁ«èï1mºæq#d@ýã@ЧüŽÌËŸ1;úbìz~W 6Oy#;K^,¬l¢Mƒâü¬ÙuG†ô¡ý|껦fåçN{4Øýñl+xcú âæ³»´úÁ´Ü‚ÉEÃÊ÷" ¾ÏþZ؃jÞ¦z-šæ6_b5ü©æ…=nÿ$S¡Cè-òåûß' K‰X‡cƒ3JÃ+¯"–„£”tÇ@ Fl D4܈4„"_K]” #¾‘d,–( Å&´Ä4D"ÞÅféob1.ÉDì¤õÇ’€Ö$)æ†!Íìç@O¼$-ø'PÜæ&=LÇoqW`õöfzIï0ÕìÇh\ ešb¦bÖc Žàž¼-Ç-Ûd¢ Æaš8%D¢u¡ùñöÕZ{Í)sÁÔßB¯U;+Ù|‹<°Ää1£!èL™Š°7$\ºè$!ŽgÁ|”èhbLÁrÆvHæI‰2ÅŒ¦²±2[Ž«ûªýÔÌÅ+Œ/ŽHW Ÿá$Ñ[² ×ùþ¾fh/OZŠ·ðfîå”Ô“@ÏŸÉM¹­§êûôü'Tâ{üK¢e¢,P}U¡Ý©j±Ù‹VŒ0>`¦ài% 2ж›Ô,µ@-Ôûô +ÚzbâÍI8KÝBì`\çp g½’e°\Q ôû-3xc‘Ç(–bâ™ØRKêHqIgéÆÈæÉq¹­š)·J×ãt‰½ÊÌ1«Á^ƒ\ZNÂ,Ã~”ã¡RÓ2––}%MVË;rJ•ëz´^g%Xë¬Ö ë…]ß>á¿à¯`Ö«ýtÀ`ÊŒÇ\æúå$®‰–&ÒœžzK*=•ñ2_Šä=Ù*ÛeŸœ–óòPžÈ¿U¸Z¥ÖªÃꯪ\×Ít[íÑÔeV„uÍúÑ™UÕÌÌÿÄÔ6íLgSd6™ë¦²¦ MÙñ}‘ÄîšL.XŠ"¼‡™óRœÅeöÝ­¹‡§¬Áâ`75"¢–â–ÖÃèFHºÌ’²FŠås¹-÷ä…‚ª£ZRÚª®*UV…ê±z¡µ['êÙú}}Q?·æØ(;í½öSÇ=gT@Ù‹U7ýðOô¯óo4]Ø‹v^g.ýØs©¬rÞ¤LÃLÌbŽæ2ã›Ø9%ØÃøeÌ}9®“¡ªñVËCVâ;TÁ/Šõ´%€ò{V&‰Ý’)¹¬íK™'…²\ÖS6Êd ó{A.Ê%¹%wåc‚j¯UF”¦F©1”±*[-V+U)场¢®«;ê¹Öõu ÝZ{õý¶^¡}ºT¥/[­¬D+Åšl¶.0ò{€=ÖζWÚ[ì­ö ûKûžmk988]iÎáÎåÎ?;;o8M@köÓ`¢oƒŸž52ÊŠUEbÔÆ}TÍÐgÔZÙù3 Ø+ˆ cÕ}D}8¿HßÑŸ¨BÀòÔüîM+ç(³/Y¡öœVñ-ùp­ÎRGÕ.]uOk™UFÖ™Cœ[Õ-åT%ÔxÄjŒÅkÒÿ´^Çæ¿Ü^Áœ&«›²S}®RÙÉWQ¬c6#Wº]öâ9Þ•ƒÚ%ûØw qQñZ+¶ªŸêëW3=X¡ƒ2ÌœVmÌ#NýmY†ëú9{ÿu"±ØŽ»¬úe‰“–ßj‚ d¾æØÈ®ýöp¿´"9AÏpPÇ!ê`Íc«þæ÷Ø3ôù^%²œa5Ì=´šÉÁëÉUÕ<„vY¤f¢᬴d/9®á¼ƒC:Qz›Z¤ŒþÂrá÷¨ÐƒxêoÈOM%Žžò1‘q¸Ì}1=LB<âeœdÀÃ?)hnò‰|;¹(ÁŒ6ì‘v;œ“AŠcd¯pfq]Ë_IÍRÎáu¤ÈJìñçà8ï•p‰’Nì¦J{¦]dï°Kí£öYGGÌæÔndïà;Þ.Éf.¾Áìõ~œžÎO"Q¤ð›¢Fê#H’Æ( F“·û1¬ätz)Ä*ÎÓ6Þ!çðT‚e4Žâ*''ŒsžÍóèg ^cÕ§c;Ùq‰ìáNš£-óô\‚$^ÍàyÕ<»Ž<{œ˜nà>™ÃÔàŠ‘žâaõ²ñCõ,ó„®H“]H6ûØ CàÑeø‘¼]ûqF‹i—ÉÞB3t·ïŠBŒˆ‰WõiÈÛ0ˆ]5œ7{oy“(ê1Ž*„ÊPtñ÷GwÞ±‹foKHžÐ·Oï^={tïÖ%®s§Žb_mÓ®m›èÖ­¢"Ý-#\-š7kÚ¤q£ð°†¡ B^©\/¨nÚµœÛÒJãu'gº|­2}V+wJJûêow7²~¶‘ésq+ù—:>Wfšë—š Ôÿš /5þ§)Á®^èÕ>Æåu»|g=n×É–Îõj{¤ËWY³\³.ªY×å:"‚.oxžÇå“L—×—<3o…7ÓCw»j&¹“rÛÇ`W`m.kså sì’°>R³Pa޻ꔯ±Ûãõ5r{ªøt”7+Ç—6,ÝëiñÖ«56Šë Ÿyììš¼61/;a–ÁÏ]á¿JY¼¶Á6/? ».m×(`Q ´”†8)3˜¦!jBZDPÔôaÚ0v¢ÄT9Š”´?PTFiÒà¨I*H€$URU­âéwîÎ,kcZÕòçsï9÷qî¹ß=gˆ•„,)Òa´[dTYA1„"bK‹X^±¾OCÇôаÙ7ä§öx0½ÓèlÛµ”¶ï‘ľÕÖÌï¼7ëV‹gE¢GR­9ŠY3k»Î]Ó<¢[g£©ÖÿŰæÊyµq³[÷!ˆ Í:v“Ç¢–t[ê|>Uâ|[ŒÖÄwèVšQel3wÄq5sL‹šöçÌ Ÿ·ß¡95ºÙ5ÖŠ#ÖV;p™Mû_˜Ög·”„ü™‰ÀLËpéSS[’6ÑùÕДŒ¬Äu „¥wèð$jàLeügK™e†Ÿ˜„YV'nd»•‰›þ Öó|Ë“ç7tó3Œ×ÇkÚ–çÿŒ¸É™e?͆þ›êcTˆñUè/†l…]†¾8,À XãÈÕÀ Þ8‰5Šx!‰òî¡Íž×ÉïÙDAÈF í"õ]Z •S3Tîcg ½¶|ïq*¸{Ñ߀qKY¢Ÿ¯vÓØëÑ^ÄkâYÓ€,èØÿ2û QFO¨dß@;koÆÜ rœÖA®‡\}ôkѯŜb¹ß~íj´ƒˆÍÖ‹³wS°sàg£X¯›VÀ6ûfB.2aÏV è9éUzòËj¥‹scŒ8÷¦[g‚\%|šì#û— öI.·?ÞÞu|«» ìW*ˆ:”%T Ù¼¾| gn" ö Ï?©’á#ûsœë=`†ÚIè_ƒŸži÷iüz >}Jë` jOÒè—Ê÷ƒc[iüS*Óò( çkÅØj [p¹ÐI-¸rªú>Ím>;<çÄÉϱAŸïç³?‚×1¦hfn ~u’ûsÌùî3¥Mcà¦} ¶¯_ù*`ÿ8s0ëV:<,JJ€¹—‚BöÁß“‹G(¸ÇAð*pxØ lå1X·ã™']X³ýyÌæÖâ{¨w¸“ ~ Ž%ÞÌÇz`¡ám9˜Š±Ùü^˜³â½à-0™[ÌW2¿ïÏJ/ó9ùÎSdŽç 5³âìàVŠÌgž±T†©XÈb*dÎ2ß\)ÞdÂÿ|~®Lúƒ÷Éo„¥¤<~«ÌŤÄ;åX$åL*škµgáû·èAµ€ê•.Z©¶Rb!ÿŒñ~ö u„ž—GAï°à ÎHOO|Ï'½#ÒÏ0½„Xæ©—èiHC‘ç©#’ÇsÖ¾æ9+LÀm§Ê‰†6–ŒTÛ«ÿ_ _öœ¥­hàÁÛ¡8+y?”º+¡z€b_P:éë’†¼ñžˆ>v©a¼õ0•ªÃÈ ÙFœò ß¨ýœë¢¬ý¹¦×Ð~¹¯T!¼Oì%_F¾x}ȵ)<ǹI¸$¤Ë×IdÐá’Ìgäµ7ù–#oB†ÀÉ® œŸ¹>pŽV'ùêò²€B .?'òÔáç:‡Ÿ·óò–\qj çî,~§ØËë¼ÙÍœ9ÇqŽä<Ç9Î?Q&ç÷ÓS8Ã"_ÂÜÄ»ž ìû<‚„Üfï“Ø;“5U¥û\pk©¨£(Í­£ž.êvr×Ý¥žJÔ¦DõS[?¶‰úB¿CñQ–|q- )j)mU.’¢¬CÝ„^-ANfÛš¯Ü¤\õ(rÝöuåqZ.êæjڢĩœç*ƒ”áy„ž?¡–°?ëq½‚dû¯m¥•œ <;EíÝáäãß½O£tŸJbÌ%ä¦QÊⳈÔÓ<žû¾~°–÷ÍUËEt†˜ówJçxpŒÆÅ"Q›ëÅš£"ŸMkbÏßÓ&†6—ê½o!gò^;)ž&s^´¯:5»õ´NyßAéD‚ÿ—(])¥ÔÊZ«Ô‡ónŒ=å|W°DÞõþ&r8â9JMâ{‚mßÃwÏ+´Š¡öÓ|mòc%rÿ^ÊÕîEŒZȼ^“Øú:ñ}ÂuŠ¿ø½,§t-Žùx®7¼v‘ˆm8ºÒ7µ¥2ä~I÷rÅ·_?î½_âï¨ÇRðCG—›R@¾*ê+ÛnÊåsòE»KÔûR )¿B}ü9þeða6-—;¨L6©LM÷ÙÑþ.•)¿N ìQu&rx5ô?Ž`ÞÏ Ø>Á˜_€‡0÷>´ß¦ˆò•yE?\} røæ}ú”ç©OóÓa¹Ã>!Ögûƒ×ãyÀBW²¯.&õùç”>©¿Õ·üLú8‰¼¯+æñ˜R{”Èþ3—còq: œ‘ßÄÜa:(=I$ឤ÷S~M«…q‡¥^` ªé4d äÀp ¸ÜT—!ÇéÈ4ü«À/R”%ìÏ¿®¸¶Tð^“éS¡þ•Æõ=‹éa†Â7aˆnš–ªßF®]„oI@ÙGÚ4ÚåõÑ.ù/Ðo¼ }O!=¥î¢ûîäÏ ý‰&¾›3Þ-øëóÿk½»î÷aàë"þghàÐUÄßKiÒúªô­TNцӋxž¦Eî=Aß+ôî\y@i¢ðD=Ú2ÜþÄ{½SëžK…ËÞÅô}†zåßÜW}l[Õ¿ŽÇy¶“´MIÚ>c»ÁušÚ¼¤Mä¹_tlnÓ)Ú]“IȨÀÚ&º»lÚ‡´QK Z(PhMïc«Ûê?¶Â†P24)iaM·¶‚2 Y7`ýHºß½Ï %jÅ&mÿLÖïüι÷ÜsÏ;ïú¾{á̶K2äN¹Æ–*{§Ä´=3ïõÐNQ§u`¢ÖØ,{È·$X ö£D®óoJÌØí8WµÛëSµÝ* ´Ý)Ú ø~_⪺~EÖsʱdúýL¯óÙïGæåø üÎôêÙ<³¾ ûÅ'Öü&{½ÏØr/9;ËçãÿÄÇÿ üW®óÿ øïüx8ö¿ž‹b{„OîòŒº gÕ-ø_¼FZ ™Lré(!—±*&/ƒ‡Á}øFTƒDц¯Ãäjð|àèûßÙ§’ŽjòHá\‰¾©ð{ÈÙq¦æA¯Gü¿û€£ý,ü€ô»­€ûÐÿ¦=vê;àÁ¾þ6ð*Ú°¢/ï„þ<°úûÀ?½@ÔŽw ~—ÉóÈ5î¡ÿ]¾Îýãßeû¾A"Ó<ûññ¶OçÙwŽé÷ÿi<}—¸«:îMo_u÷¹ÞçŒõãº8Kq¦ Ès´<ËÊó³¿ã¯“ Ñù_À‹À/ƒ‚ñWˆ¦ò|ÒòúŒ æÛ÷}ü²ÝOñíÄ?Ã$5Êí¸ðØóáˆ/åûùår?¿—4‚ïáw C÷ð'‘©Éßµ\n™ß»Â7×äçpÍ›¯3ðªÒ½ƒ|‰òIr–K3²ñ2žÃcæP9RÒ«¤É_„ù~Á3dú†ø.2ü,HÌÕóü#åö¡Œ‚ùž% ’,Ícäã.¬.ŠŠŸGÅÏ«ÙþaÕ®4H¼–ÿ„Ć¢ž†vš×£Ðti À.ÇßCÏ{ð‰ò“$Åß Y º!¨àa¥„ÂÆa¾“ï@%|¨E냖Ë#3Û!**•Û«Ìc´òl#ˆiòQ«j¾Ñ5ÀV’µæ×È®2”î»ö»ÀÀíò ò HUb—ª@ÿK0)ñòï©ÁW¬²r#·ß³ r70 Œ¸µãÚIÀáÞfy¼†w€M þœð4èƒ|=}½ªÖz17 r¾Õ‚²i€‹d#ß îБà&Á²wƒµ²Ùˆ ð ê7=h7‹Ê”²N¸ìųÚ*-—Ó­QŽu¢Ä£šë ÿ;±æT:c³z¤ùÃ×Ä€ ZdÅ ËW%~7TÚéú€~ÀiÀÝÀ‹4È)Õâå+ðL+ðùZÇNAN í7“V`7p8©ÖN€¡=†:!³CÄ(l¤ t È@1âõ˜§Þ1È ÐŒ¼¥Èc)ú*¸ŸLâû¬ã¤Ûm6Ó4IÓ4Kó´#]”ö¥ËKÌå‹—æ]R,“" ÑÔéJ¹2.s™®6÷¹ü.–»’ÅÍ ³ÂÙÜp"ñNâb‚W4eÙb6/£åd 8¢>X>X>ó‡|¨e¬e¼…%Æã >trìäøI>T?V?^ÏÍDM³ÑÔA»hšî¦Fi+ÝH¼‹§ùnîÐy”·b-8:Ý)wÆÍcnÓÝææ>·ßͲî>w¿;ïvõ;óÎaç)焳¨ÍÙéL93ά³ÏéÔ‹£Å­Å¦Ó1_ÍÞ@Qû ûF2Y¥ùTOrXÙYewB¦”mB¶)-“T\Š8'0â„ò“v2&m ˆ-ü8ÚRY€±ãæ‚@,d†˜/ä1¢!::bý¡|ˆåãÍlTe9Š,GU–£9ªæE\h@ÙŽ(¿ø(¿øIíZm)¥™mJ BƤÆFD°É¯b!bd/0p…lº”¥Kö¤Éz¬›–™ëµØA›Ù´@‘uCµÑ÷²„ìAÈ‘–´JëJžu‹5Ò·[ÜbSsÃX¼ ŸJ™J7îRÝHu#d¯Ò¢­J; |¼3v?ä)¥¥ ûfÆu(M‡œËY~Ýмl;Z·›nFæá4I*ÊK*rìˆØZ¡çØ "ìY6 IñJÆQ{¾¯ä/•ìUògJ~YI¯éj‚ÚoƒÚþ /e·‘š'”<§ä]¦'¤½ÒŽ…´}!í‰6@O“:n4«ÚÙ€ö§€v( =Ðö´ÍmS@ûB@† ?ÑØB)é%˜U~í²_û³_{Õ¯½â×÷k_õkÍ~¸Óóøhj¸ëHùˆ’Ë5jz£¶°Q;°3ÑÛ…—¸£·—ŠH‹žã.EìF‘X Z qPH|T-÷*Ebw1/=ˆ‰Î<ô`‰ä2Ù…n·M%"²T$"ŸÑstJD‚ K"¹tQ$>ÉFÐ’^¤'I†0ôo"¹áé;$,ÃÒ·H-{œ‰Vx²g§/ºÍ‚˜2 ú¼ˆ 9úŒˆ„AûE$zÚ¦}"¢ƒÉe ½"¹ôs‘<êá{d¼nVq%µŠï‰tß+2BJ$¢ .‘Xº[´¼Ú*ZÎÈ¡wÒƒ+›&IDeú ‘Œ »£ð _'aÕ½™,W‘o Y’u2H\£k ²†®–;ºŠTQL‰Á­EDjA·Ø•û¬HÖVŠ0jL›Dx/*·¢0Áù~^¤!¤!Eä98é"¹´H$ׂjäH$UY˜µ‚´¨¤ÊEDzùDį¿DÝ$©"–’ZÚók}q/µäè—„~ÑÌ•Ð_­±MdWøÞ;öÌø=~c’ñƒ8Á“ˆó¢IìÁ±¡à:ç;÷œûœ3פÇõÀnHÿJ礦ËÖJÿ€#ü³Ò_z? MÅ Ý ?þ<~„â•~n’n‡ŽKåú›ÒLºF*A`Å‘œ4=¢öðó˜]“®Ô— ë7G¾$}?,Kß •i ¯ø,õM…K§C§¤ Ø …ôy)®–^ª^z±ž:rK‡Ã{¥QÈ `3<ò‚4þŽ4تFü|øŽÔתŽ!5¢ŽhGTU|qd¯´ "EŒ* ‚NØ—Í`ÚÔz“ÎjÄ=3w¤/·ß"ðÆ'¡¾¬4qïr'¸·‹Ãû¦Ž«åü\ çàm¼À›y#¯çyžå5<ሣ¼² Èn/+PÆj(Õ¨mP „æ$óíDE;“"©¾x±]N•¹•½Å9Uäv%SÂøÛYœ*ÎD©œ¯ø¨/XÆú=û‹Ú`m)”Ú\$çÊíË”ñ µ˜òm=™Y„qÃÔE/åÛ¦.f³È5c¶¨u˶Ä3Èà*M&äµ"ÊògþU¿›êËZ-6ÓÆJu6UÜÐç;™%GÉ‹ÉÄ,9BY63‹GÉÑä^*Ç£‰,À:UŠ’#CiÊF (…üÀS0\q¢V@»p‰‚àÐìRAû+ ž§AÌÜ£‚z˜ *èŠÃ0Äʦ=ŠÂªÃ°ö¨ )¬ AO#! )5‡P 5«ê=kêúŠújE}•ªË¯é[C•hëQHõ"õ€‘ÿe8þ?á™îÉc™äp09LC,^˜‹'s>_éØ$UøŠLh0wp”ò¡áâdp8Q<LøJÝ™g¨3TÝL”P&¹/SÊ(ÉkÝJw28”ÈÎôžêÿŒ¯óŸúê8õŒÎNÑÎ:¨¯Þñg¨Ç©º—ú§¾Æ©¯^¥Wõ•ÚǩݙâÙž>C z8-ƒ^6î^ŠªG§Ó/žð¾£Aø 2ÈÙ¢1/š RUãÖÆ­TGšªÌ ¶¬ªÄ~ï;øÊªJ±5G1y8¿<”Ba Ìq>_™k±¢(ÈIU€´ j$´iÍ«ÒU}M¬Y®`Q^îÉ”Òé¤x8á…$~†æÝr6d¹âP–ø„Q«‰¾KMô ¬+ò‡ô_Ó¦™95߇º føsÝÏC]€ ¿†™‹ÎG¢Ì\z>½Øûó÷î3só LûjÔUC„kÏ„œŸ b«£UÇ  r^¦CþdàŸL¥tV Täª ½ÈŸÚÊk|E9¡šT¤ùµ ÷*ܯZx`$Š¿Mðm–+3¼bGZÍmé9ÍmŒ<<«½M˜[x+ÒáZÜDYxÔµÔÕ+<ìJ/u¡´…'@6oò[ýÖZ p‹£'>fEÿA>ÍÜá¨~åóGí(ò»tLù¥Ak¨ñj½5ð6ѧé‡éX+tœ`ðê9Á(š8Áâ6s‚Ímf­v·™q¸Üfâôˆ&â¬òê‰sWÏ8ªEã¨M¬UòêY«Þë!!Icn³Ãí6[m¶šIÒjÙÇñ¼Á`4Z,k6™ôzb4šu몫ívGÌét¹<žª*¢`Œ½¢èv#½Óá°ZÅâi±’°Q`„ˆ™eè§ ÒBÁ$‚Äi÷ÓtÌŒÍU~ý¯îŒwz#ú€~iXl-Èã;/Ê0cò@zñð Wx‡‹Âù«K¥<0—”mèR9Û$Rfù\Ù¼ ¸íÁÖˆZ#ŒjÄTkÐîgì~»ÿ¹uÞ{üÜ+\×ÿJæ[—»Þÿ¸ªùÞþ}aùOëð•)¼þ4.-ï¢õôòÝ©å ¾²œ!ba_¾„ßÅäFíŠõ#‚9ÿ ½gÛaÔkRNÈïŽHlÙ*^½ûçáÀÃ¥EƒÀÖ-[h„öÖ¶¶Ö–ºP0À±Á@¨µ¥-Òìr:Ø‘ÂaŽãXcµÜùÜ¡íý_¿º|©¡ù}VÏYD㇦ ¯Ý§IB3#ÇIvr•b„ÏRT¥Å uÖ+<þ†6¦Á¿ÕOŽ/Í’íxì÷ÔjÿÊßñOp 2 ÀÛhk`ÊØ®|ºM:¢ó+köV Bk5 JpmÊ%“CC¸EeÉdNMXVÞ'1툢M©†Œ"F%cb`¦iPÓ¤As+Iç`víuuÁb[î9‰¡=òñ¤öUzrvÂɹ'Ç…d¼Sñ輬ÄÖê6¸9Ñëô9kÅ :ŽÇ_ã«!ë¹fÓÖ›aM6w™Ñ+µHYjAŠÜ$Ò¤³»EA»Ñ›t¦m–€ Š4¿fÂ&Åîl1y>ü7ø#ùåôâ@OFq”õu-ÚI€v Œð8½E²TéEšM¹áR°›^®€W9˜P~¬Ý«V0£tN{Ž+9öù%?a-fÁLØõÁÚ a F½QgäÖér¸ë«D¯È°3Xƒ6,o [c äPˆ²ÎîÎáz-¿¹:‡ƒÆº]Ð’1´Ô×5%áÕr ãqìàÌ–³žÖ–ö6ºãÜ.­@ÿÓmÈZ·Ëinokg®o ä_ïϽÑÝà—£‘ùÂäM=Ëïiô!O‡ì©­rX:šš=a–üøwÅ£¯î94¿ôÖ½ÙKoýðÜÍ»øPç…Í>1XZú`y!·}“¯c‚pí„Uu£oÞBf|·"_¾ø*7Æ CTÂáP¹ðeøD}Œœ q¢˜-<Òòœ„ÿ¥ºjƒ£8ëøóv÷nïu÷öÞr{—ÜíÞÝ^’ƒI\M¹…Ó L)Rj!N+P-h¡Ô‚…Õ–NK…`[>È‹-C 0¤Ž*oSFm«Q¬ÎM?Ç’Åÿ³?ܳ{™çvòüö÷öOœTM9œ'­”Þ‘8e–¨ þ˳HEêh>r<]gIJ:çÊ£sš²RºQ½7Š`‘x¡žµ-ªu´MD%†Ú †A!O÷ÅfÍMNÊ-œ­*_È´u)ð/aÙç?Þ4s\>ß8ëy:¸¸UËä† â‰~€'J‘¿›¹íô§ôÇü»9êõy}@„¤²?vùoNkÖs18-»–¿Ø8[Yr¨këŽSö ¥8“á¨Ýþ ·q,’ËfÚ-Å¥eÅgŠ[£[cû»c?RÆN‡}ãSåˆPݦ‡™ÍJš‡Ù%8[iô7ت/•ˆxœ@¨ÝÁU‰â•^0ƒ‚ ‘ ÏÞÓ°›ø@h¨ÁŒfp2ôi’›h3†‡¸:^j€f ‰q÷`^DÌ{Ð%Fª–<2*µ&Ôj'©+—Õj±(bÔ)¥V«ª”jpAÇTz/Zè§nÑôBÍóÅaкúó™G¿Ûð“ß;¹à«k7ÚmûÈC¥éE­^~wÁìgéá¬VZÛ9ýkC‡¬ùÒ‹¥CÏ]³Wj,·L Šo­}tÇu¦ yùÄÓKd¯YW@Gxêöx1à'¼ø|xÌ” `s·è OÎÀ-,H^*›~Ñ 8ÌRñ çÁ»a‰Y×Ê—y*ñižòªDD$¬9è0ªÎ²æŽt:Š+caºÙ‰äaDRJ½-E¾×5lÂÐÂLÆ ¥MÖBmô… Ï>kWíèRØ ·¹å·¾Ù¾.Ó82d&&B¿0‡è0Ïl ºÀãMxI#ÇG¼Ñd4ÅMqu¹N œO¬I)¾^Ƶž•ç¸Ú)u<¥ŽîD—ðW|>P2Ü Gq£ÞEN­@Ÿé•Âé0 ù´Bß뇫"9C]D'õpÃTMqž¸_äD5'_}Ya '²5 F0E†‘$UŒáfÕªbcdâ3#œ‰ãLÔÇÊ1­:г{qòÈZÜÁ‰’©sÅ­ìz,âw~R\TµØÌ=TgÕÙCuöPÝÄmº©øj{‹‹Æ—„”8{qä'é±`µÕ§¹ù8£&Ÿ½ÃJÌ…x—9MwúññÑ´Á¢Ó{_²í¾ƒ‹¦N+æ-½\ºðå5ö~{$9I˜cÛ½·¾óî¦Ï6O7¥8=3£Yö?ýðÑ!l d¾¿sŽ÷PãžOÄÖŨ·rûßfT‰´7s¹è¯£\Yôºº´à1¢?£°OìÆÂ!!A\èCþ |ÒOÔ¦º =BRÓ*U™p}ö""‰Æ;/uêtŽ›¬Ï ý·Våê°ÃEÆH'Œ[’yo8g¤’õIêRòA#ïÕ»¡!¤v“Œ„wYŸÑ Épº›h\È`-67o&f‰Ñ uOš<&oÖ—PòJ\шRQfùÊ;ñá·³ãê§MßóþSÖlº¶þCxÕ>/v´hã[| ØÕ(,Kµ¼ryoƒ'òÇÁmoØâ¾aØñéèS;Ͷݞò‡Y>cL —Q ^òºé#ž„@]"JÛ[7M©&h/ÎãÑÍòįdè ¥„Ê”R¤ù€Ç#òÄïªÐ÷M¯Gõïrƒû¦ïÆ)x…åæß,†‹ìÜV¸”qŒ2ŽQÆ1z—¸ÃJN½½î”[5.7¶m€'¡Ç¾~`þ}†ÑÍ5Ú¥ÿµbÃ|8ðŸ=¬é•ñ$'¦×HΚ8ܨ\3ÇíñöT<ïùù¢Ï b<]€3Dèë/c‚é—ˆ_% 9Aìý+aµ9;ä» ŒhºKƒZó‹É þŸUãhù€Ê'Õ”Z¯r®¼‘ f»IƒœèÃwº?Ý ª‚KÎ[¸‡ ÍøaTÀ¡Í~²k¬03:(ÑåÁ©ùµ†•!ʯ÷&§.œÐwq奕ë¯=wÑ^MÞæºÖDãÄTaz±«J¯ýá¥LâO¿ØöÑÆí¶}à·öÓUº}Õ‚76ÅŠ_6€ª¬?ŽbŽÝõN {Q©7ØRÙÄ1o¬_Ym*•êˆ\ùlmµîýâ–;;Ýh½ÈD_CFDÐi±„b}ÂŽÕ¾° î¦ÀqÜöVJµ$WØ÷w-ž  ç³ÆëSGW%ÊÄ\4µâÂØòÂôb))‹ù¼ïëûøû>?üfSZÈçcrù®ÚØ&Î;~ÏïÎw~»óËÙ±}öåÞûlljIBÀ—e 2ZA²¸¬Ûx …„²@€©Y›††© ¤DÇÖB*­$Ъ J_´tãCÛu¦>,R-mjF»U1{žsÒ±Zºÿó’Øþ¿û½üÝfÉàÃR N?ÄÊ U#„©X x4ÿ⨸7†zñÞÌÙÀùäÕÈÕäôŸSÿ®f«À|°|'ô(ÞÚˆâ™1ð^ò£äTäïò½ÈWòW~…UתsJ"#Ë.IôÊJF‹*––25 L‹¨a(ÝÞpZÓ¯šöA*$ÒV+cÅ$NÂ¥Ï*^r[‚YµÆ‹ÆðXÊ嬨ÍNËÅÊE놱z:‡øŠhÛ¼þ2–æÒxºån!ôzº¥Ø³Œó\=<¢sª&£gS+ÄþÍ9s¨ÛˆàFªR$í×dݯQzRS©ȨtºTTTx§¤ÈD5$8—›{“âe’#9tïËÜMázÒÈ4ÊíÉÁäh ý©Áob“¿™*ê*Í”L‘è^ÐiiI²l´ÕÔÜIŠÕÀ$)R•’—@avÚù8î ¯O ü´_¸èNjªâ m·âxÀJÑ.º•Æ›`¦/зè¿Ð”‹ÞIãtmö‚qÍÀ«&£ÕØ`ì4ž2†S†Õx†º…Ã!óYÅ\ލw,®”*jg_óå˜%W¡jf¡gW5ÚÊùˆ+s³~×XàMa5 ñ>Ǹ™ÙeîHp䬥=øÁzÍòJW €BÖ<e_36ó„qîðtè§»9]··lzÜ3oAÛ[­Õ}½=µP :m$Ò—¤,;uqë÷矰”fþøòÏgì>–-=Ý]+½öëR›æsÊMÄNŸ_ºÒΣý7Ä7 ñ=ñM‚Ê| maØ$!ÛVÚHФXHB·è¬nÓí­Är¶Õ¶‰íeYç¾øáô%Ë%ö]Ë»ì”eнGÞcY§io¢$údYoK&'ðªü¶˜¨»¬ÀŠ@fD+©×†ã“”HG$Q•+M븽շýš´àkiÆ€ÃåŒ:qçbÑ…E¡&,ŽDÄŠ”×—¬Rñ*Pew8T¯SlDV¥©¸ÏšJ¿ p°j¥b9Â'7C®—+š`"Ê («äʸÂó7eþÓ,Vÿ*|kE\GZX†ÌÄ q° šïÀôÿƒ+ëØÕjWϹ®˜’qfa*DLËÞ¸óÉ'r/C >¬ïbfÝõý¥ÇçPBûÒþ¡œT°µ÷oS*¹Ë‚íyåH•Мñ½Ñç¢ê€ö|ü¹«Ìz•ý[Þ•@ÞÕ 7[è-¶=¶=êâ-Ë5®Žëã v©²<žOŒ&ÈãúHâ,õ+zÌöŽ6§W:hŒé€Èûb SöOÀÌì…7Oùÿ¾è—•ìö%c™sF$ ¸¨ÃÈdA8êdã9çƒH°}Ÿ±sóêÜUóêÞk!V;ÀmÌL1(½¸˜(ƒ3fzaLC3îåZP„)šÃHÎÝØàƒqsÞf ]„$âeHˆk¥å²Áök1Š0­ÙFÜ•Ü E]•€'6æÐ0—äX‚Yã¦ßA¹Eö›iô˜‚‹àVtš>çysCïƒFÈS8@¨ë8 ÉqÙŸÕšKÓ§FûHçÙ\/,«Qð£«rÌÓ¥¿\¿ÿvÃr-oc[òw8ã…†(ßüà|é÷¿|»ô§C>/®©Ö5Œªž•¥© ·žï:tÔ‚3œuU¼%˜O)/äk3hÊ»›e8À¤(Ze9wÛš¨ÏΆpà¿HU'ðOÇåZILÈòù®Úئ®3|Îñ÷WîõµãkûÞkß_çã&vFbc§i|¸üXJÒmå£Ååc ¨èXm¤£Ê–m¬ARÓUk@m×h¢lR@13mÒ²´jÍ(ÝT­´šÄ4ŠQDGâì=7¤ æØç¼çž“£{Þç¼Ïû¼Ýt:ëºMXÃt'»OvÛÖÈR7¬9§ºè®;;¸XהˆeÉEwЂ2…½ey‡k‡–dËÉ›, ķ´NY*ªšª4¯E4tK ¨]­--Ñ(Oº‹E·ÛåÖÐv YÓ»ŠéÄðݼ;ŠÊÛËÄ,”§Ê§Êö²Ìà$&¸7ˆX ß³£ë>PÏ×Ãõ„]š[ å"„¶\z¡ÇºF½]aZDÌR.Æ àFZ„R€•ÿyrïŽ{#›üÚŒYWl#Óm=Œ¨½Ð³d“#µ­÷†ú’]ÃcwGó‡îÚø8ZÊÅäSÀ>‰^0Û €W–ˆªÆe‰SUA–@•ûd)¨j\ìŽ3BR B¯ÏKQ‹>¢•®yq‡×ôz/xíÛ !Þ˜¬ÐIAº®)xP¹ ÅT¶)cÊ)8-¿ƒ£ Ë÷Ʋ¿K4^(/‚ly°©»È§÷s¸M¿¬3ÃI#‹Ûf᤭h“é]:dŽW%WÌ¨ÖØÈL”ãI#Õ‰Þë}Ç}U¼óL›÷ï>Ãõ/ž·è…»Q̲ÀóÖ{ƒt2±^|åkR-›Îuå;WYu‰UovÞ)M°FþÒÖ“Š1¾ ¼õÞÆÞ‡¿ì²¯Ž§6 <œÃ±üò {ÿöÈÙ¯?²iCQlô>Œ‡Ä¶Êò>=œ) Ê6gÒÑ‹f~'ÁÏiƒMö m"u"e» dŸº!0MÐRˆqPÓ§t‡^ÅçMVVš à‹ÝÄ­_F¯ƒSNš‘»PÇÒMfÓT“–ˆ*u 3;»9"d¡g¶Ò\ä‹€T_bÛÿƒ·¤ P[ óvß $ß{ÈB2ªÅ¶=3ñtXKÝÑ©½ÅOßñ©¥ûëÚ Èã~s8Áú¸’/=‰ç¤£PÎ~Ž.!‡.æñG¤çѸ8.“~!ýKúä,\+$— %ÃlŠÕ Ç„˜0J!Ý“w® „L·”Vë^LvKºªee)§BŽ÷+­K"t#´º °qïõ¾ëûÈG|ñ‚•ËÄD—õBša=‘®B"ÙœÍй Ë\Ë ™™ ÉÄVªø+gˆ¤*nû!Mx+@€Ã• PŒJ(DýЖjJ–îñŒáe§¡Z†5ŒzìU*ôDCCÆæ(¬ÓÑôDŸEò+Q¶ÍàAÒ¼t·—)ŠÚ ·¢ 7M•ZGCû†fIƒ´â?Û¾¨*ѯ̓ݸmØß™/ïâW•t'»²¾'mOìélÒé­—?vLæ :ÍqÀ5·NŠ´3GüEVV”$&ÐMS˜@SŒJº%—JÓM¤²«4¥ÂŠÎ‹MlS¨)Ü÷&Æ@’ò´i¬ U¦Þê½›†Õ.ªdé*Ln¿BŽ9¹_ñONþ‹Ž‹ž?JWñÕ@€Ø]n§Çéå1Ox?ˆHžÝ±ÝⳎÿØi’9=']nº}rÈɹ<œ/–ܿٺ @ÍX¸"š6l‹gå’Ld†Kr„MJ+…!ªMMæs ¸Go,MÝØb Õ/tP)ú•¢=8ÁêR:œöèŽt,'àtð“ ãF7X¼¬ ¿AÇ‘@‹CÞˆŽâvh £þ, [-4¿‡!Ê+pκ\ÑQ]œ5}\‘D¹¢~¤ºøÏÓÁ"ˆÿCç £@Ñ£·EdÔ?[ð²W §@›»ˆ"7¥ƒ,rsYšòVç¹ U×áŸL^ª½\ûñ¥ŸâWqá×;ú>~lOyóÎ]¯:¶ùkûk—kµéÚü­iÀürßï^«}X{óÄ7W™8ö <óí±‚º º|¢?4ýîy$Côû‹2þ­¾bOFçø9ù3ÕÞêöƒÖTUPœNU P*ׄ ‡2¢è qÄåt³ Vþ¾=2y#b‹¼Mã´°$ÛÈÏúÉ€»ŸøGõôçjAJ·Ëšq®bÕ=– €špYBÛL$µp<ÊÇxâÔÂJ'ãШ©,–ùD!Z)­V‰P¡‹i!œî…œ"ƒ~¶©|ÈuAØ"”·.ô?µVÖU ÊMÕŽO츮:ô²»vxQÕu­°ß6H­™×ýF’£ çÈKG'PRÕðWð †Úñ³féñøpüh£Í­Eµ/Æ×‹ëÕâWU‡ÈÉ:X§½#»GFÔÃÚ;Ÿ´™¬ûXäJü³èíØí¸#ëöWÉûg-[u3f‘º’¡íšÖ4õ»Ú4¢¡VQÆÔ¨³ªUÔÕ6£b•oU-­g„*þÄä5(IR홀$_þ/ßeÛÄ}Æñßïürw¾Kîœä|/`î싟/~Ë%)N\s@# -΂µj  Iiª•ñ¢Eô ÐV¶Žiƒj´ c”ºjÐD«m´UC“¨˜`húGNÛ{΃nÓdÝùwç³-ýžïó}>ßP(†xDVbD>çãDüSqÌEض1Ca²f,ÛçøtòÁq,W@­tR¨x0_œ(ðÅ»\ÏOT¸ÅIÅزãσC…¬ßñè‚cÒ…Z˜ŒRe*B!µ¦æEˆÈÑX¤¹!žÂM œÌ@"… )šBÊ'íUÛ¡ZM§³ÆQ dɰY“b³S¥z!«&Z€'þG©[V$1’(„°Ë_!F§æÔºØ3Yóá[W÷®íþžcO1ÚK”Zž}ù¥Þ}‡ˆÒޝW¿ëÔ¦ýçÕRÛò€êŠÄÅcÖÎ5¾ïÌÑòewœ6‹vVJ/5ž¹¼µ˜æHÓ›–8ÑLp&oøSaÍlln·›O»Ýñ‘Ö±øéÖúlõAŒÇð<[@ý\»ÚN´d€zúµ ª©XuÍ™Ö^!”Á09*Ê17•™Ê¹‡¹aãw˜y9ÏyMƒcܺ§-ãÒÛº¯ÀëñV¼{ðRå£Dt óvmÒi35­¥¨Â­_ª™¤Ü1†³ïNzîÕ ðUó4äÕBÅ=I ƒNm³YÄ^¸1QÀüĉ꺲|×KÌ^²ÌÖ\Œ‹#"FÔ`Vs/0ßæ^4vš¯sG™÷™˜¸T\î í °m½å W¾úÜ@ûMÎMR÷[ÉV6%‰J+wpeŒà•O=/íÔ‘ë‹.}õ[{èÑ´ªtÔE"Í·÷mØi­Ú1þæÒëïÍʧvMQ¦ÕxÖ”rG>^77¡§’¡%Ï­Zõâ‘›JcCÌ ÐÅ+/,J÷/šùضŸ¬xó*ÏÎÔtªÚÝÍBwkèè8 —Ïœ””Ö°Ã|]«¶¡å΄ÝiXøIÞJZ‡i-ÈÝ^R”;Ó‚*©ÄFð…6`§Èq; 4¤Ò—y kRŸ´WrI¯bMíS·ª{U·zÇ‘D;r†  â]Ž‡Ã “¯˜ƒ]ÿñEè–ê sÐ?l*ì þ_°YPÝïaµ…]ÑOг;ÅŽjæ{|w~©õÌ/íÛº>Twû÷ÒèX´¯wv$]¾ìùìH»ìC'‡ É׎ë›ôWk_Óßѧ—už#‹Ç<Á»6Ân lÇk/Ä.Æþ«õèB-ÖBQ=ê“gC7uâ­ÚÑZ¢HÈá°ª¥p8®%ƒ(Üèw˜S—DÃo²40£¶UÅ+Ô²J¨›Ói;Ý—Þ>˜ö¤)ŽTI‚ÌF_Ç7§&YÒ,w§Ë`•%'ªÆeÞ5¤p(Fs¾h4Ra"T 5ÅjtfKˆnbSˆ ÃÉÙâœYýŽcJƒCŽz뽓P?i>MÑj>»]å*®D¦‰_é½ò[V>s`A4˜x25;ß_3ãÆ¯Ü¾V±õÌ„:6W/|âØEÂxl!'F"ɤ¶¸XüâO'Rö…â‡ÏeÃØ©tw¢ÂîÁq¤ƒ*;”ÆÖ?èØrÿ@ xOqV\-Žˆc¢; Š‚$Ë"òà ’ÁØ…Ú` K1A6$¾ÛcåWìv‘ôj" ¹í̩ļV]t'‘ˆ¿k×i¬ ÷V²˜•ÃúÚОu÷•©È ŠEia÷“]×ÌŠs9HRŒ,fׂ¤éL ¨`Q8o*ªÀýýçBõm_›sŽªóœ’4Êß ” „î  ˜‰¯3tì0u5ˆ PTe8õòœèéˆ/.%B¥Ô’l/ñR`™&òIÂl: ©æ\( ;»eüö wû¹.: pÁºÌšbX¾®G™–dý•,UWþ+yê‘!¼öÉ=ô? bž´Z‘Ƥ ògòg™•0Ù,¢jG½-+Zú¬5Zx˶ú¬ Ö6k¯uÐ:nÑgñÇ-WЗ¨Üây–~VÞÛIo—¢·…ãè¢%Ù¦¬,š§ÍÉ ¡!L#~ ?c´,“4í“eIQ(M.ü›ê 0é'üb]ЯŠ­!èL– òªÞ”‰§ƒÛm¸3VÞqRb|À›ìÕt£‚(¦•0b †cÃ3Ã$$±A’DÚGS¾˜$ÃZö’d̈ÃCq‘e|n>¦È4èEò>­hÄ ¸–D“ÑT@Z‚ñQ$m9’™éÀÁDÙ`x3`Í—ÏŒòþV^n±Æˆ§OÞ¯žŠx©¨È“ BŽ|œã®ˆ†Õý‡¨¯)ê>m™¨,Ùÿ£±û/nvñTŽrâeÌIÙÅ5º¦U‹MÊx¥08ˆ†ãï¤òþ->¯3ép= 3Ç%àS纾¾ªÄ6òz´µÁ›--m*/½)Íêj·‰ùsSìûdz²eæ b_÷4AJ|uIç§÷‚*]vÏíC®;û݋ߞãDˆ¦`tSñ‚Ø;Ü ô‚}dH‡‹[ˆîþYSá(µuC”#zlÁËóY·Æg[ì\WëËmß#´¹òÎhüÖCm£Y¼…|+q4w*ñ›ÄÅПÛ®%è6²›ì©ïçµ-Ÿ¢^GÚãQ… µù¹L(’ZY*¿8r㻎V¯=æ[‡–õo´î,¥cÁlë‘ñ×Ö9úÊëE©ÉÍù¹yaOoÛŠ}ËkÝ™ñ'ïª1VäV-]ý.êx~Ý¢â‚D;<ùéŒ1 S=@¤Ñ:Õé^N6@".èJ )ô¥N¤ö,|ÊfsŒ8¬-@,¸0ÕrKPÍó« 8¨í¥%ù~©.‘9I•ú¥ª4!“®IÉá œA!H3.·Ê¢«²ýì5¶Ž1ؼ¦¦y¯šf`0^ÆÊì–¢Q-žeHㆠ[‘eíª¤_•æ¯JÿsõñlE[»ì –õ²ÁÁvÂ0Ókv“˜L…C‘i¦SQQ4ÆÓ¨‰ ò„Ý!Xáœ0§Ò(dçy"Fñéÿ«q×xé5ñS•®FG“ïQšNQ—Ô^êMŽG­£Â¨øžiapDêÄ]è‘:º‹H#ò"Å< ³¸.äú—²Yb+Œ6§9d„ Ñ,㨆iWÞ‰Ð:¿MŠ÷aF8#B„Œ´Zæïáx©YÎ×-Ušqä-ÁdûQMÔÊ òû°AâŽ3#šE›­±À³ ¸îÀV-Tã…™îDpQEœs±´æ´tA„ÓmP…îéáOïnÝ}û3=í¥>Ú¹xþ…•ÅÕ 7<便…>¿úÎä7v,[ój9lë;±ÿaI^€YY ¬ô+<‘E»ÔÄûöìŸØ/ûnw‘"x–'B–¦¸“?ÐÕ:ðs4 pøæeJÞÏ€&³»I vÆR^ ¼ŠÐU¸!–#¹Œ–@dȉÖ"òª¢S†Ã€ GÕ ùêWê YU&RR(¥b^Tþé3Êꬑ .hã¾¢8§ÀüXÿ4«{-0·ÀË,ûhö+ô¨¢#ó54ÍñŒÝ“"iv§šÓRš4;ĸ'•&2vxˆ®X¥²† Ò(Éh”(U{ÕSW3ç”kйêuoŒ&ªÒîìÁÀ‘ìûöqÿñ–Sþ3-WZ{œ‡]$®be@£[ÑéVæéVæéÆo *:< Þ ºýx6H5¶Vñg%/~k¦²íOÞ|~xù…m/lûxÛÒm%šÉu¿µjHäD%Ÿ 4oXcêý÷7¼±¨1Ö÷ãõ]{9~Wþ9ò7E2ƒG½ÂO?øÅé”çˆÞ† 0æ#¢¨ n0»W{+Þaï6ßn§×"Z?$?'¯»n’7 ·í·}ÿ0üÓnõÁ¼ôøòë [ Ãñ†Ñø>ÃAÇ=û_|t†zêGM˸ ¢”ª˜¢~-÷O¡æ‹á”ÇbšBüÆFûqumP]¿Œçý¯˜ \lÀçÉæÈã¨r®Râåø¦øý¸1•œH [Ùyò´È»õ˜Êåµ®a ê ›ƒ±y+xÞõ5*3˜AYÆÍ"Ëš·œk`{9W™AìõšÖ!°&›Dœiޏžyý<â]a|ðÐû"#¤ÄE®¡˜N£¾ñpÝP?Kþ¬>C¥ñ”ÞØó­ÎÍíñÞ©õ¡õÓGo~™}‰|¬„]ùÎ7–¾ä?>61võòýõäßÜmÇŠn‚0t›†€PY}YUÙ#$I§™°fÖbÌÈB’‹µ3Œ¾Ì:™¤`™Ž£¤`fÃB¸6L‚4iMíõ¡¬c_ \}lUÔ€£ìTåŽbP@×#§- ç9^Š«ãÇ$åw²({‹ ¤ù¤g˜º9oÕaBÞ²Û݃s/ÂQU¤Ö|”©3$H &ÇìaŽ1Œ™`XfP;Ö™Œ… F•œB.P~»‚^Ef‚ƒb€Ë¬à±;®6S)¤þÌ>–ç>ƒêaãPyæ=ûÀ÷,£`$¡rçŸqJGªè‹ºÈ‚+Qh+¤óÿ¢x¢êkÊì øÚ|èŽ7º¾ñE¹à=týîâî«–ä—˜ hJ“G =¯p Ý“(œë%oîQŽ]{¹=Û½(FG\NŸÕ™+LîØ e"úž,7üHÊKˆ^tC]'²6g¹E|‹>”ý‘ô±ñú¼tiÁƒä£eVk]0w˜KÑ5& °•hIhþCvµÆÆqUá¹3»³ïÙÙ·½;×óð®÷5»v&ÞÚÞìÞµkgÛ(D4‰¶ŠHˆ -MãT’BUY¨¢ý(FýÑòÅd«²áW4HH±€Ð"Õ"† Yjk‡sï:Âj÷œ{ÏìÜ™¹s¾ï|§…¿å>ŸÿžçõÒëS>Ò2'µ@.!s¸ˌÔs²Ÿ)ö>Hö:QÆê$“µëDÅ`¢ »RGôpGIØõ®à ÑH„B4’®¾ê÷§Ë¼@ÊöÐRÄ<üjÙ5IK-5¥A=ñÂÝ´P«•ïÞYeÔGã#‰° •iuD’+N8 ŒÔ(O"iOò“-M¦A™e$ÉXæå®à$‘Œ]¥xI6¶y›h™B‘^C´H†rv‘ f©x¢¸Xæ‹«E¾xfÈe¦¤·7kô}Ëëm@ñ¶ÝlŸürd…¡-d@®mj ËëTCokâÁš]8¸^` °Ý^áêðØƒ°}”‰Óئ¢š5—=O¡1–M € H‹±ø¶ðÉê”wTGXÀEsŠ’vµg¨Ý1âêýg„ešÐ+ÙÛ³ ÿ4Ñ'N\Ý#.”vUë?þýÜÉ/8÷Æ×VM?öüã§^øÊÚr{ÏøüÜhm¾4pú¸6öÌk/]”ú¿$|ÿ©á¡Ñ‰c/ïwNäL‹·Èù/iÃß­X$ÉÂôó•á¥/¾øÛúéîwOOÄ ,§›1¾“ºÎ€a3Ž3OÊ¥Š½G‹qÄšÁø³DWy¬Q—ÔeÕQVê" VÔ5ULÏ®ñÀ‹û Íȧ÷Úäõí ÔXgL¶º€î×”Ñð'÷ö4ÓɄޚØì?Zu˜&¯Çò: :_tZèdŠˆŽ]á¼Áßâ? 8Óž>_&¥ëºQM œ œ |»ÿ;W¤Wäõ]¼)Ýÿ.GxI=}}ÊâìÑÑšÏEr•2RÓ’cÐ]Âç8Š‘¸>ˆÍ˜é¥i¹yí򵮾µÆ:íD–7kýägr–lÊVÅpJ’œN§T5ˆ{ƒ>ì¥â8–3± LÀêQ9‚£ØÄ†aäMl†à|›õ°gͨÁœ(KÒcéTÖ’j:%KA¹+˜³8¯G .H /§« IÂ4XÔû~å_þëT±}Ø‹ÞõtÑÓœy»èÒåà‚ü3ä$¤’Xj^Jã4Ÿ>£ªXâ0ÍÆ|>GÓ@Жs+¹ÕÜZΑK–+¿@§q³è&•! BÁPY@U|о¹ysc£½ù7yc–ʨT|$÷ɉ͛4XÃæ¾`‚ÏÉï8.X‰B›ŽÚ\h,Aë’W8fËîš»vYh …`á6@µ: ¥rF‹Š¢ËŽõàÉê…àŠþob½ýç)­HÐkµCß8þ—ó Ÿ·Òéü•ÚP}+½×¿ù‡æx¿évœ=¶õ«w:d["¯#i⠆⠹WÌš{2@S(b(hYA’“9;eQ–EK†[P˜N†[œ2 HÌ€3E§—»+}•¾*©ë”lÛ·Nê‰ð\ö¡Eâ|²÷=‹•%eYÊJCYTV”5Å©ÐÿÛ6õo•,;ÄÀIÉõèdÀ¼ Jˆ£ÿƒbç>÷~ôÌ=à ¿ù<ý^ŽOƒv›ág ÞÍ#EÁÄ«VÝR˜«q38 ¤=#¢ÑjÒÄ‘.ÿ§7õ’‰‡`@"zÓÄ5C—L6 ’Eº‰³]þÆO 2ª&ž€1É“&ž1 —^Õ\È¡ÖFŽ;Ôã^¯ÃÅ͈µ‰¡l$ìmÐCLˆPu›k-µ–[+-G 2>(IXâ¥|_Jf’ÖNjɫÉëI$“|ò–¦ç­*±C¥«¥ë%”K|é'Uq•¯æ'›L<¦uûHs­É/5—›+M¡ fµ)4“»[]~G£­ÐÓ㬚1VÛ¼ëÛµ¨âªÑÝø}òº|3èK ßûuµTfy¸?í 8ÅJ&•vZ*]i_ŸŠü²8¢¢~¿Úk¬äZA¦¯ò|¸G>óU¢à·gÀ­fØ£e¹ÍíB´‚B…;wnêQbi­µxÑoúm?iýÑçœsιg=s¾•–ó!~Nœó(:hOprá +±-H©XšmtGŽ6Äîÿt È2¥z™Û÷|(ЋƒgsÉ×›KÛÇåíóÀÓùO|cÜýrMâA¸pô¿„—lÜfÇýúîìËùîì8¾ø~Úwç³;çrw‰¯IÔvçÒi“6ÍPé–u!릮Œup톴6”Ë P†&ÚV¨Ê´Q&F'A«fݲ ´HÕ:Ê?‹`¬üÁA¶üêJíÊó¾v¶²!ñÏûؾÇïÙ~žçû|Ò†åÿߌñ¬B.±øÚ'øÊ¶oŒßu(7ñ½‰Ý—M¨óá”(YëÎr§¼®6˼TIõä*uøM!à{~fÇú;|üdû±}6ô耙ÚNÞk4Ú¡=IWVû,:Ñr 1u¬º¯ÁYØG D\^„º°h?æÅk¹á•q. Õ'Ê(¬¨3¾wè·}¿OúbL(Ò÷6úSŠù(¨«¥F…œ`ã_ãƒ(•– *ï²£¼¨åCÀ’„³˜c¥¥i¹l–磡ÄýŸŸMÍ£é¹E„ÐüÍ‹ÎÎx¤(‹ šŒÅ$Œ“ä>/¡¬ô¦DK-%ÀJ c¥äÔWÁ4(áÚ0`J˜-%Ì–fKABJ^-Ÿ/Ó•rÊh²ìÑ$±°I٣ʲG‘e.Ë]’oÂU–Ó^Û1Mã#¬4PÅX0 Ÿáa¥áa¥áâdÁ6½ã$¡Iᜄ+×§>Î-RŽ‚Ç“×­ý€“k–]´üSf]¦Ì®0%™2»Â”Óþþ>‚”zâ>ôìÃkr3mî!ö¿Ò>æèÍ%ߡ*‡v8ñ7’È #ñŽ`Ôˆ Š• ¶#Èe?ùÞ £~ǰlÞüI ¿ÐX˜×4ˆ™^kcëz,{A[ÔhJs´{4|p´g4ZãEU¤Eg‘C¤qÁ¾ÄÂÖØ¾ŽÚ\"{̾hÖ‡öcåtƒ·myj\XaÿªmË” 5ËD7 œ Óºªdš‘ºb]4ét2Hû>"šð–uwˆ g3&ê GM¤ø¢ ê É •È&åiŒe•¬R İփ†Ñ´E84™V¸%4³Ì±ð1a6ñkú²j±ÍH“oű³‘YþX<ˆ€?öO† ¬Nféº-Êy&V¹fÖA(Ž§Ú‡~ûОCW·ô÷7¶ÈQns_Y1#’¡'}—¾ví;o|ë ê¹tY#Ûþò›§FFùµÓ(÷B+Ã4Û£~p„²‚qb%È3KuªŒÀ LWEÖ/¨,† óóºæMNJ+‘ÙN&F7TŽa£BTR¬¹ñÅfnõZ[§ U8Q[¬ÑÕšS›¨5kþšèaIDt¨vÂá…ðb8NTÇ!r@|ûI±„a›D«ùÂ\3lÞVØu¯“,<}øOÞ<ºjð¡o¼[Ö‘®§ûFЯÐc?þ‚ѵ~oûÚÕ;V÷c²£(ß— êEd:!Îà†9),¸B mìßæRªmy¤vö‚Z'§Å½Ì Ä:¦Ôm :É·h.é´ù ¥PE5#(B‘A±nY¦ògT… (òe5C­ qZe´P?ï(k Ï¥ü^ŒT‘Q2!~Š ½Š¦)?š~ù8»È¾Ëú@…^u8ªÈ˪LË%-ï¦Vž0€m›Ê ‰Üm/äQ3¨¼§ó(Ž(Š;¡€lÀ$¹¼,,‘1÷ËÂ’ÀIÀÙCYÈ›f¬­•& E©å½à°L,&c=&—¯i,œzbÝÐúu}õq6É$‹±,bÕ¡6»Ö †Œªïù·žœÞØX?ºÁÏt绿ruhXH%|€‚ÇèÀDw:À”wûÍ%ú-ˆQ?}Ô¹›«Æ„†_ˆ%!Sô3R·tY¿l¼#üCø—À½4$¬*åžÒž*œå~¢Ís/j\ ˆ‹±ð7fÎ Ób¿J¦U„0m ‡Ï`„C.ê´X vå+®&N§Ôd·Sp9žDÉyô £%Nw ŠÃbEÅ9O½1f£]"•rtzŽãm÷,Åç}PÔjE“¼*öv{Úþ²Ý²ÏÙŒ-òA5H¸Á=Ê'‹=ø_± €(¬h@Obwr¬ KËSî ƒY`#"2Üt¤\#¸&¦ÁÒ­Ã)<º‡K¸ïß8€Åý1—…ׇg}×é€rŸ‡»ñ“ÏÁÄÂÄÂ6Ø^øh'kr‰ìà$Ó‡/˜î„EHÁ•a‰t»Ž“Tcÿ‘¢(|C™¿ùç¹°äZðÀö¸Gâ÷ ŠÁ7 €c@¯€´â"¼ Ë×—)á?tWŒÓÖ~Ïvœ8¾øOœ‹“\âç»8 œãø€Ü¿4,nY¯«Ø¸kË('5ˆ‰?£°Nh-”²uåÖjW¦uc…i*뤲Mhmï&´Ói­6 ¤jR'M€4Tmíèèv:”»ýžU7Gy¿÷lçåÙïû}¿ïû;-sžìzaµæz‚ < ½ÞÔº‹þsÎ¥AŸ›iExTP“9t%ŒÞöèäš¹ÆÂ‡3@K/ Å5 œõ_Ã4Ž& hµ‚r…µ¬ïލánÕ'H…,»Œª(R>«-[ê× ó=¹gù¾;Wb&Î×W=·fÅvCìŽw+=ÎFú–W·rîúþ·?O—'ØÓó§ŸÛ2hu%ÿî™5«ŽõŠKñØää½}#÷lºÃW^ÉÉ2H”_øsk¢$zÁ“ˆ:¿;P²Ãöp±Û¹Á¼)ö‰žÈŠ;„M’Ȱ ,y™€x¼#Õ…9É`½Z¼sw,¦yðò5Š'%ÓSvµYíœÆjÉeÀ¼^ÿs¾ÂI¿JACTk^ª×ªMz†XykIž@X]Ö™õ«ûÒA½Eýjxb7Ο—óÊã¾ãã{Ôðã_í.®9ÿó Í_ßçf6Äg7,ï9ˆ?ÎŽŸÙM¹º¶p‰[ÂE=ø»'‘«{<žuÎb„Ž®ŽÞŽ{;¸áŽÃ韥iîÁBL'FÊÝ´‘H#Eã.ñBƒ| d³²E´lÖ°HO6àáä&A ‹¨§^øÞ¶&3xjÙxðp<Ø6žÚ6ž:6žš5žš5žz7ž:6ž:¶³<–ylògyñ ÏðÔ¾…-ê-pnVÛ¹YmÇfµÓ½­Ë0³Õ6n4zIŒ³&Ö«ãZÛ-ÆŠ‘NÜÙ+S^™‰¥¶o“Ú¾MjMæÓŽö튄]iV:'±R2Û6rmR÷µÃ-?@¹úí#Z".ûN>¾Oð%A}‚Ö¨á~Nì°qÛ`ÑTÈçÛ ®½ëƒþýâåóûV<ýÀèžÞÂgð^mq—•Y4DÝVÓÚ6kïØ½_zê%¼“Úªæ77V -5Šç|“…‘ëØý4žôRQ18Š¢˜ë3ÆõñĘq¢ã¢qÅ´BGú úàù4)×â£ñ5<”B$ÈéXïA×Ú |\é$ñÆÂ~o«ŒÒfW:="+1YV0Bëd zRZˆãB¡dÙ§x £tér—"K8†¢ ò|‰]×”Ý}²'ɬ\—ÞÃüÄ//&>‚ ¦³˜Åcte3ÕѲ¿Â®l¡lx¹¬ë#ÆEƒS ü*<“ÀÎtŸ†Œ³[»17y×LÎÕç—ýZM÷#ªcÐ}Ãp ºS%[Ú«œ™ ”~ÇN å2Vf[mý“Áß¼z²h§AkÐÅ2Šš®aÚv.NdžýÐIÃõiQ®á›tÀ”á@¤CýÔ4Ÿó`Ìó`ïÏÿvØÔü¡«&Ї÷ô;ÃxiqhhþÍ4óÇ}ٔ˩q#·yþÇØ}j€˜\Ž˜löÐ,W.¦aŸ‹Ìƒ¿Œ"៽£ÑX±ˆ㢮 …U¸ sã®^‹Õâ5}46Õ×ÖF×6‡7Š[¢ÛâÛôÆfò¨òxtoü }§±ÛÜU8PzÁ~‡ÿ+zWz¯x}þH¼*Ý(æù0/ò§TÎðJc¥õ%c&U5 …‘„Á‘WÀ{) A A×LX™'zÞÌ‘¼×XxtFe³±°Ó{˜ ¢i‹#ÄŒbjH@ËÜ?6_22“»RùAÜY°çÿf~ѼŸyù‡®)׈ª_œ?’X¹8”˱I=¾†cŸK,ÞÿD3I‘î‚÷¸H¯0g¼•…Ì!¤ÒJ…‰5p%²«ïd…J1’'1¥ÃKÞª!%¨„êHz(èt!Á±àpA>YîÏç [–/Wåš5å)žÔ’µÃ§˜’ƒÝŒA"nF"‘ŠŒ\‘ƒ Æd&E’–“#Ö@e œâ±ÏŽ ð‰,é!Ù~·LúK†Tè·Ùä‹î1—yÈ}Ö}ÃeÝÌäc•7*ìC•g+×döAyJ~±ÂfFä PhÅ¡x`A|Ó{Dò_ü€ó¤sÌyÛá,‚ àNœÃ;ð$ìü†\#ìj²|¤:[eª°¤²Z®B2Ðwt'”mþ–ÆÆ´û̯°æ1tª2#3Ýÿ¤DÒõበ{J×é1aû€ÄDØ%L©;­[ÔŠ²áÇiÐZ-\þÊ0 $Lá‘Jg‡ï'¨üö×ÿߎºýϬX½Ö‹ea©,ÓF¢A_ÞŽCA¢Ú{Ýz¢Z=_…þnÝN@ÄîòKDªß¾Ûf¶¢‡Å/Gñ1rÌÞ³òî É*N™bex]÷ÅÉ&c 56æ9ÇÚúèš1Ók„ ¯ý£­3í‘wSßu¼øYɉ%ºu6{èJHÖJ®«¤à·áÈ³Ø åîØÁØ¡øŽ“±“ñÏÄãoǃ‰pÂÚŽí±rrÊ3åÒ/Ú—p)öATÒªÒ–ºôèÞZO$ZY1ÜÌÍ\µ”»„k­¶HK¢1´í\,jÅbQ]ÊjJläƒ`¤²¸z; JÞH‹FE2·;Öx-y~}¨ñÚúˆE†ÛCà[©SŸ§DJÝki%:SdÀ¡ˆá ²UîÖÖº–ΖþÑrµ> ÷{ÓG7¥þJó.Ü\žø˜B÷’Ï­…c©wiI™Sµ™>«u$K!E°ì QLß)²(½½šQòËÊ-OP˜ðUž•{U¨XL‘”á”Evcåýþ{;ØßR‰ÍÏŸº'µƒ¥;2ý+_L¦NŒMíêÜÜØ¦…ªã‰­ÍüÊ/v“·åª›YY`ñŸÞÓÔN‘„»çååüÊíîñ#;3CÙÍ@MÛ¥ùùÛiÒ¼ÉÛ²¢R|&n —\\ý4ëkhêu±šNÕúýú:UžÍGã>ÈOˆï‰yýY~N\·Äߥ?/rz¿<,öéï/7ˆ}^¿Á¹­Ù¾ºŠ:sŸþþýK] p—ç–î*ßÄέ°ŸÇøSüY~…»¹dn=¢Ïë?Ô_×ݺð‹œß#sÌ^ÒIzB¡ø'ÿ&é=]áïÕ|fA—æ1ù¨|Z>'_”¯Ê·äÇä*}òA.,ÎgB§[d"ð-Šæ¬ øa&Å6Ìï1UOBæÀ_ó[YòÒ°˜¥â‹,+ ½æóù31h5“(&„VYò×½XŸ%¡.ò¦Wäôäví¾o0?„á‘Ñ={ÇÆïß·ÿÀÁC‡˜¸ûÇ¿‰âÂ#ô®„AGõ  ؆ 1Šý8‚‡ñäê*«þv¤q/†°—úâ;«««ýçS–òЏë^4/ó (ñ²òkè)Ñ¢2Jƒ.õ´ÓK4G?(Ó‚fü¤L»ˆþs™ö ÃÜ#ù¡¡\!9þð©É3Óï=utftlcßìô±Âøÿ>ˆäI4CÈ¡€$ÆIp§0‰3¦÷ã$²YjÅ ‰uŒZ“˜Â<¦©gîkqn$ƒš%¾c4÷ë}óÿÅYÒŠ;è&67IÞ€ûïÙŠß‘¤¹R;O#š‹(ÕúgãÜ$öµòïê壟,ÙÚ“šZæ]­Kœ)[ÿdê¥ÌK GBÝ_hQ­8ûWuåT}åêåÚ[Ï,Ÿ3´.j*»(®ü­AóZ endstream endobj 140 0 obj << /Filter /FlateDecode /Length 20107 /Length1 32364 >> stream H‰\V T”Gþªúÿg bPð ƒÃ¡HÄ@ˆ†ˆŠ/`\—9‚¢Ñ+F㮊5FñŠÉšË ƒŠW’•õXÆçWE×gt×3Q#O`z‹É¾}ÉN½ÿ½êîê¾ª€˜…”Qc{DM™V”^—ÙW2ó3¯ïë ”$ôIæìB›Žÿh¬]¬EÙ9ù4þ‹•€G*`žÊ™Zœý÷Ëg°/¸ºÜ,Ç䣭Wys£eOŸ\™ð.µ¾øË887¿°¨ÕšŒY2–ó}œS§g:pk¡ØOY%ãÝùŽ¢‹Þ)‚çˆØÛ¦9ò³vmm·˜ã-xöLŸY¨’üá^ózÁYÅíëÏÃæ2Aõ2åë¨f - ¯Éw»ùsÐæØ]¹ú_*Vv¯þï÷Ë/[°Œ¼PŠ·‘€(|‚˜‚ŒFâ!]@" ±z]1Mð'†SŒŒ–!@Ÿ•×ô¾ Æ:ÌÇcÌÂydâo°`=õF0úâ Ò9ð3ëÐ ±ZÿV#Ÿ¢N_Ö.$á#ÔÑ@«æ™±x%˜ƒ¥@áÔ—æ T0á+Ô²ïs5ðF2^A*ÒƒÝÉ&RPEçTœÜ”†rz‘jõvØU("1”úp7}/ Ñ€ÁøVa-.Pw¤zû >9°Ÿ|ÈŸ:ÓAý>E’1A.E¶á$NR ¥r•anu݆¦ ÂR”ã‘'½JE¼Oíp Öyz—>"»cäžxŒÜ¥X#ÞmÆÔ⯓:êD)´†…fTÓ|××Uí¯¡¥`‡\LÃ[(“Ü|€C¸„ë¨'ƒ<¨âž|Iù˜zQ3ÐC%ZEX„Å"ûeÇQ²QêM…tž}¸%Oå¹\É÷T™ªVÿ6né8½E–˜ßv‘PŒ‘¬–JÖ–Kî¶ãsÔ`Žã{<ÄOÉ<*§jª¡§Üšwð9£Ñ¬3êº^íD §Ho‰`"^,Ó°^2õ5NIÍ<Ã3ê@ýh.-¢%´ŒVS}G?óB>ÍWT…Úªœê¸AF”‘g–›W-£­W…k½)ÞùÉÙÑ›X‰a–pq¦pâ}‰ãNìÅAÁö ?ñ6˜Ð*¢94Ÿ–ÓŸé"'qOçEª“²«0µØ4*3Æ%³Ä,w…ºÒuw4óÆSØ0@p§‰üÙrK‰H¹Ä¡ _J¶Ž k Ancɳµ¡ £‘q’õ4šHÊ¥Rú˜*é=`_nËy9¯âù[¾¥f¨÷ÔµKU.C›^f”ÈH3]ü­4[ÆYʬ쓬›=¾i o:ÞtÅåíjã suýÑõ…NÓ³õ›z“Þ¬wè*]ë®T%Üí$ü²‰„¡»TÎH¼Œ‰‚ f'—`ÞÙ,>ìÂnÆÁ·¸‚ïDnâ¶dö®Û§'hŸÚ’z _bhM¢l* ·¼Mkim '¤Z:AgéÕÑU‘Ÿé)ÕóóìÇ=8†ã9‘GñÎä,.à·x-oàÏx/࣒åó|o°Ku”L$¨$õ;5Q"R¬æ«Mj¯ú‡:§êÔ5U/±1$GA†Ý1ú9ÆãªÙEâ4ÙÌ3?9dñ²äYª,»,'-·­kk’5Åú™u§UK¥Ta¥Té¯~¸-Ô•_”ŠónzNñNã>ûP:•(p¤!OÆM.S!«Š¨ƒÔñ;x‰•ÄЇ7r"‚ÝG‘*î-³G„ís¤·ûq¦¼3¹4,¯„á~Ö ¯£Xþ=¤à+yM+E{ÁütÈÐÔ!ƒc п_ߘ£{GõêÙ£{dD·ð®]ÂBC‚íƒl/têØ¡}»¶þmZû=ßÊ·¥O o/Ïç<¬ÓPLˆH°ϰ9C3œF¨=))²ylwÈ„ãWN›L ÿ­Ó–á6³ýÖrˆXfÿŸå_,‡üÏ’|m102–`·9OÅÛmûhüè4Ñ߉·§Ûœ÷Ýz²[_áÖ[ˆ$l msãmNʰ%8‡ÏÎ]’/ÇU{yÆÙã²<##Píé%ª—hÎ{A5Ä’[ငþÕ ÊÙÞŸàlgoFàT! ŽÉΔÑi ñ‚‚Ò##œ—iŸä„}˜³e7· âÜ×8-qN«ûÛëÍÞ ÜVQ»dé>ßÿÐ^5@Q]Wø¼wßÛÝT¬ÿàÏ’ ؈)U‘h] *IŒ d¡Ä.ˆÖˆ &¶1ÚjhÕYÿ¦5cR“v é,ĉ‹©5‚¶E«)qÆT§í$Ö¢ÖQSÂíwî¾·îbژΔáãÜ{Î=÷ž{ßwϹP™?5®ÜS^Zâ ŠÒ"^£G*Öì»ôB¿Û]Lþµ‰¾UÑÖDÈé÷„›»À*wp÷t_´5‰ÿaøêɹþ@.–^ˇØ/pø¼•ð¦æxrXãŸïÞã™à™˜ïÇ÷HiÆ’¤º„o½ü3%ä¸ù>ORp\¢§¨tÒ€Ú^˜±äíþ^wÿXKÚ°ÚøáÓ¬íÖÝjÄun̉ØTK çVÞŒÈqj‘g XtÏv#ŸÉâ?s²(0; ÃðS¤Á+XŽÏðDðž‰þ@|6ëÙ?h&Ç{Ü„Ïîiû{¬¦ÔÒ8’ão7™~Án·ƒ©©Á¡C™ΉøˆñÛª?"mس!ý²ga¼ÇGúàV”Ž3OJ⯺&ä¥2t‚UÓ}á¾›ÊëÈ›žZÔýli´-½ ØRe["î~è»—ø¿€ÞAWJä·{|Ÿž9ó²ƒZŸÿbž¶çÍôäM/ö¹s~ëlóòcza{VÄfµ‚='úD¢nµôD¡¬`bId0w|qA#¿ÅäòÓ**æÎ Æû'‡ÿuIJºK§¼Ê^JÜv³Â f§ÆöŒéÇ„ØHÑóò‹.1¶\¤@ ×ãÎ ø¥!YUæqÇ{õxã süö Éýkƒ¹k‹°‰yZ6تӄZ¶zz­W[=³ØW—íê|_®éýŠjï‡ÍWï&ò*­ÑrÏÍ=ÊÓÀô:Ý¥L‰õ^¢*e5”Bõg‡4R:—­ÓhvHëâ•?iêù€ÿö’:rè1WE»ÙÞẉÿ¥œÑï ñ¦c´6€[ºjzY”h)Ñ‹@¡£š6:FS™öŽÖ¶µzµL2H»ÏœK :ÉKЄ_Ž>Z¾‹ñKe€˜x)ÀO€O€G€á³¸s¼e }“³„Jór'pÒ,¤€Ù,£} 8n6Ózô‹õÅ:¹ß,”ÇŒE²ÁQ- Ý ûRŒ;ÉsœÄ|ÝŒE´ý3Æy°[Ð/†.¿v1ºê£éŒ(3…Ÿ² ’Wôjmü†#Å:ÖÑH¯>ºcìÇÐ>>ôwCß íi˜ßÃã€132 sżm°ç³c‡a?ÄJ`k™´NϤ6‘)¿oäS/k߯ð¾yÏöžTüá˜îæå¹½ÑÇw·cûRœEL„|ÈÀ^ÚõzËH§uìsô¢5 çi|÷jm;g”Sç@¹1N6÷Òô³€bø_3vÊSâ:yaKu¼D›¡Ÿ¬g€c#¨Nÿ]p$Ów±ß4¬g2OpnÊչ郌¿Ê÷Ñæ~²s ÖÅ:§|6Îu”ÿ‘Xë2âh3ià‡ˆ­ØÄñ`ýtœ¹ß}ŸVØQƒyz€{?¾}- Cž‡7A7㹈ž·Ö9%O1÷¢a}gl¨³¯Æ‹²šš€›ˆ%8,ƒßGéÐ?9\lÂøLæ+xq5ÌMùs|ÿô£8vµð›9¾7ÚR}.ý¨^p½já§£î s–ã´æncn1gliqãˆ^ƒw<ï“yeIu÷ÎÑöÎÜŠHÜ;æ¾’q§Yn¥)ÌYž3"›U>Ã÷ß6%"­xø~"oœUò"Z\cKë,Gä:ùlË}i—‘ î‡p†Pq 9è,ÎðIšÊ÷ØØJ/ë+©—ó¥ã[NÃ\Û;Ém g«6ó5â<›ŒÚ¹ÍhÕï3Z5Ó¬‘6­Ñ¬Ñ—sûNÙöX–ŒhÛWÕÿ/Ð?4kð?Eü›Ù*¥ÑJ›±Wr^Ò†n[B_TC]©Ú6W…rPpŽf„ù*_‹ðr3jÈG·ùËSy+ŠŸ/bΌμŒ’çXrmáüεëÏÂú»0×뼕‘ã8GržÃØßYFü«µÈûTn¡bû^|Ï?í!+ Ó^•+éqG!‰Qô°ÊG“i–y‚ܪY5Õ¨“¿T¹ ÷É®¥ªŽ¶Ê ‘::P^ ç3yD囃²žï§ª›¨Ÿæn­§yŒU^YD¿Q÷ïà§”µ ěȹír1tb,r/ôâ2+Ûi,ÃÏ[¸&Š')YÕÇÓ²RŒ£qÊw¥ôŸ¢n¿ZaͧÆ@š[ÁI¼~:¨rA1s„ºÙù˜¿½³B¾ëœ%9Ê©É|û)£¿`/-ê B²Iûö•i|Î|¹QÜ”ó{ö©õê'ñNëB^†1¼¬ ¹b°Šº›{ð ÉÔ[¡•¾. Y-–á}~Ÿð¡@Ý—Jù†YGCùŽ©°ß}|ÃÈ¥…È%ãkä¯ ¾ ÎÀyOæ9Vÿ…Ãah'Âc4ö|ýŸÔ†v ÚßÓÄõÅï@ñlÏË#ú&¹\ ŒCû}»i¡èŒ“¼V†¥»‚ñ;3h¿ 93¬kí®–Ül–ÃÕûµÓ»äÿ ¿°Ý­ìT‡2:×”¯$sîJÆÔ ûû™´jKÉÒ:{Qñü§š#ÁŸ†hpnåüÆy•sçÓ³^õ±qU|fwïvmßÚç‹?Îq|sÞõÇ&>ßîÅvýu{ŽÏΗSäk>  iiZÛ¥I/ijD#Òµj¡”*¢\¨×{±s¶Cb ©¤Aü‡T‘PL€–4•Ê´q7sn‚ؽ÷~3ó~ï½™Ù¹ÙYºŸÜEØSÙ¾Fß'ðZÀüuº—ÒýŒî¥t?sgïûÇ)Ø#N¢ÚOû5‡¶ÃF?ŸM$t3¨µ0´›ôYfX­êGã«øytdäÍ4/ŸyÄñóÜ$j@ȳvU-óÊÙ}}+…¶ŽB!Û¼N¿/†#æmŽÏñ³¨±à•mlÑß—@†°áá?Iøþ˜ÝIÊâÕ|¹yùA¶€¹â„ÎdÑuÛ yyø³öÛÏ‘Ëü|¿A¾‡^°é"i!íàÒ\šçFæ9 áü®¶köé¹üBvïê}ÐÍ£x”6üœWÓüð'íˆaæZdaZª  (\ãgh‡ ìãG—`Z,Üä4oò&Hô·l§Ú£_⟡7ê”Ð41•†/ãÜùÞË*-FTés8p™?Sr‚éRÚÖÝÔ¶u‡î¢¸i«¤¸qP/¥!Œb³Hݨ{” ÃŒdëõ±› ¥¶÷èžy؃Œüf¥Òcx•õ;t·¢Fu§Òl¸ .ÿ‰Y¯¬3\aCÿ¾rN™SÞP‡ÒV½C¯élêìèä½J5¼Ð¨t(Â%þ½‘"!ÓMÊí<ùáJH«£úk–°a¥7"@ª$í#â¤È8'\ð<ð‹Î‡!ñ[fñyÔƒ!mRÚn2餤mŸ¢ýñ¢O3tL]Xé™/lÖuu­/οǧ|úå—5ÀwÀ¥Óðƒg66 û(†;uÔb°*,J_5ZýüýQŠ0‘ †ÀtÕAµU׃ªÑù—Ìb’©µýÄeH…ù4½‘ k!íÄvÆœün’»Â]ã„3ü$…¿Æ ëÏ>ÌÇøÍüï(‹¯çnÁÃ}ä: c ²Ú$¬!Œ6ƒ†ˆˆë$Xi)FW1³Œ|ÆBÿ˜·y›»·7D1W·cÔŠMÌaŒŠ0‡$T] [Œ§\2ã%ÜS\E‘Œ{˜ngºÖ\•OEåg£òþ¨œŠÊÛ£òç¢òڨܕãnn=ò#™«¥ßaúLoaz­¹Ú/¿ï—/ûåýò“~ùk~ùK~yÄ/÷û希{q’QÓ­L×Q—/” –¡¢+x "™Ÿ‚©­D„«´Õ(Éq¶lß<‰×pN8b°:@2  òˆ´£ÝðÇ(„¿øº­6“þY24f¼ŸE*õÂ?E>¬þeXý5aøãü¡zÜ^¥/Â?€o H –ä [móÃväq/Ç!'mÞê-K„blÅ-dûN“K8€|­¢ ê“dü›|dä$l“Ô縌Mþ¤æ0Ôþ¶Wl²šYB~Y$oGž#¿Vsž!¿R¯’«JNâÅ#¾®² ç}ÐüÓ‘Ýäeõ4y¡ûD=#‡É̘«È30¤ñÐ"9a =NvBí ±ly’(¹½Ï d‹ûv£íÃ9œ§µ–gÃ0¼³°9q²–bjâd*…ªžˆycžÞòûúÿƒÚ³¢µ{—Wû÷Ë[g½”¶ÎÕ¥,òu©¤µqÈ¿sx–;Â=•èŸåSH ÏâîHbmÇý©»4XP‡‹úp–F>JƒÕf´Ýo )(í,"ŒFðYJƒeFyS’èŸ"„q„C(Ã8áP£0ÎÍá8Üè&ãÜt¸YºjF©¯J¤žR¦‚õ@˜ª2óÖ{æPÁ|¤`>ÂÌ_¿g6 æsó90kÿ§koßÿb$ õáä–á) õ¥6ì,`•ûP/[åÓ=Gkçðþ7¨DKYÅ¡>«$Ô‡b1¯æîÆá]N—å„6„Ò»Þ§kçSNé.h–WLëâëâÔË™šJ¡¹lÅä}º+Iή˜ÜÐ\I`· Áº<˜°š÷„úSÈ›8п…k|||ttlœ^à %­ž­O©jªÙÓŸÒÞýcÿeü(i5ƒSŒ:‰bÂ2ÁitTc~š6^(@lZüì5VhcT¤ÞmÇ4î(¢a˜Ò\þ·YßöÖÖ ¯ª³ðUwlÊcPr ŽQoˆUˆ0ZˆJÿáô nx_Š(vÃKN1Çí3W!‡°Ä£bQX¨Fr:–àä‰ïϽö<—»—»7¹?è\îF1(»ï€Š´Êå (ØLÐ?¿pÇt ‘_X€3㻟ä±]@(lºPEÅíX)N—âÒò9<†nú"ê-©©|äï^ þeñ ïzì–ûH«ØÖÞ¶>Ú ª êúh›¡WUV8ÅÊd¸Þ)´òbWcSì;¿ FO™ÔZT^¥õöé©6°6üMn/ÎÃØÖdÑqçøòW#<ò<Ͳ8è^DáåH+íÜÞ¦åšp~büù?C_³¨ùfaf¾k;K`ðcÓE5®O; ðlg iÇÎi]ÝÍÍ]]Ù.ªAèê÷Ç~T‡¦ÍÀ)é[%¯J/Ÿ—2®+ÒœëMéMoñmþáݪÛÕÿ¤»Üƒ›8î8¾»§‡W’u§“N/ëd=O²åZ>K~ȸÖIÆÁ.S^%j‡`S‚1y”F LB í¤“>†d’8ÃÐiƒmlC18­ÓÚI“6t¦L2ÒJ&Htï$(í•f¿{{ûºý}ö·»*½Ÿ†opÀ]ÀÛ%ާlv•U8‹™b5”MeUAýB’£ÕûeÒƒÁpÙˆÿ Ü@C6D¡QÖY{ Þ‚×<Ô[™|¹•'fbŠÉbžµ% ‰DäßX¸ ˜"dÎ× î•k$LSzU-U£RìZ± daÖëmf2û‚ß§ µ–'_«Ñ’žš[Ûbè7Å,Rdr¿¼Î›}rÏ»µM{fK'áÊå[lá œ…p×ÞÍ{‡™=wÍâ§](Í-LêÀúÒ#Úõ+ VÂ¥ÒÎ0’ºš¢´œ²RdîÃÓËÎ[?ÿLÝêQ¿Àp#Ö³MgÅé˜v…i9¿¢gÕ¢u˘N`#®À¢Õ‹«šrÚÍ`#ÚÄÕ3à%ðEŠJ¥Ó±4è_.¦S¨ô*g}*†TÝ5à4:ºÐEÐÎL€4“Fiz Í ­uM¡3ãPkRt,AŸ‚V²3Ìú3ÐmD“£­ºå§H*ô÷qQ\µZšä×£)àDsC“ºÎÕ‰ Ý—ë{½ê;…þÌhn‚öAŸcÕêiôàE³hØaÛ ‘ÈÒùl¦P̈¹Hb¾`bÑâ%œ/Θâå,s)™,0Ù›ÅK²é ›…bÎ 3F²ðà`Víí ;)†³XcÍ­lKü>ˆUÅ<ÀCÀë  †±fËYP™Ý6MYÙ6Ù¶6rx 6.7¢,>A{*åŠxú>8üvéã‰+¥W~·Ÿ‡ZxtgÇ7JBé×J›?½ Ï~ñ!ÌüâÍ;/.ɰ?]¸hÛôOw¬ë^Ëx½83¸lÁ¢†ŽÜ÷<í}Ô™Òàŧž†Ã°wôôýäf)~ûriÿ{Ð éÒµÒÏ??» «à9•&ON–^{«7Õ¾nlËó[Á̓+zz¶™ûw¾ÿý5Éþ5“H/•×ÚKw?Q¿¡Þ Bà 0ÝúnæQÍ&ýNÝ~—{ó*ó˜ã†êö·,ÒÐMÁŒ„«‡«b!ÅM!ó¤iÀ޹)Ê=ŠöÃ)˜ íäž;nI€yùÂ#±.iÑâ¸K²$ޏ kcxãnÅ!d#‘Ì?Šb»|–¸†|²³p•ÉË‹hf!å5Rþfµ-¦Qù}yαf›’¥~cc@¥ônëÛwlý²ËSþšn+Íÿjä.Øw ùxÃs­v{ ^½µÔ·­ó›=¡ÇvçO¿÷þ¿¾³ç—o¸sè|ëFÔb‰_ûâÓת—€(ì=ÁùhS—H>AÚë舫œñGÂ;´ê„iRÐB£@#MmCuõ·ªx­•·ñÖÐæht}˜izZ¯æ5má9UÝ>hÚÍ»-<ïŽ6QcµÑÈ‘•«â›ÂnžÑäŠ>ÔÎi‘6tM‚$,¶ jÁ)‚óô) 7Õ#Xš¯å£<•ã!?wL4aÒs“Ž$ß!ç:¦3¢Ìê`·|ÚâïæÆ[’Ÿ"¶+*é¿B2${‚—L‰Hy“Ëä‹y²‚3y²uäå6˜â÷’d1u˜Â°±1¢ÞÍÌÚS€ÌL¶,м Ëò@ΰšéÜ=«eäÕEŒ )Åj”_q†~J¶£ì­ÊOq‘‚¿Í[~üèǯ>½+)¼¦¿þÄø§m«¡øYõRgØ\¼Î;cK *×€ ïK„¨UÅ+_{¦Äv†¾Ú]Úôí@0¬ ‘ÁÄ×å(qC»3ÈKG»Âé £#¶ýšÝĶ)TCfÑî£Í]urDËG¢I¢Ò+$añYÁ+ÍhŸî„eÂI­Hé†ê¨•ôön½¾TÊuPgÒó:‡ÇÉ;êÅ_;`GjßQí¬·×ùÃ|]¢¹'.‡u{…TNùýn±Ù"ŠÍø¼þ¨|]°w$:Fõuu‡½Jô¤ÃÈÓ,2lÊ@ÌŽxà‹ÀOÒÍT`xwf2Ö¥`‹ èX¤1®h¸NQ‰ó·ˆ’£&žßgÄÄ‹â QC.h;$]{l¢Í#¦bžPˆ!ÈTV¢8'DÉL*Ma—))JnV~RX+,•ßÒ£Jî$KÌÙÊPôJ™ ÖÜ%Þ­dÞ óùéY!MFMN–cÂ\–œ‹:eèŒ:¢v%Q¡ïËâìC²„äꬌ" ðÞžôÝ £LB¶9=‘ãæ„26ï}$µ‚ìv´ÿO¬÷Ë®”‡Ÿ£'7¸ñ%:ä3ôøšl^ßuwË€¾xÃH(f³ÅÏññªâÕê~‚µS¸Á;Z2dÓw{¢Vw]‡ýµÊô!Íy£Cw>x¼A)l³®Ð^x¤´~ ñ~FÝ*6¯·xž%¬ÏÓS/aÝ 0}tÂ*³-¶A-íA«l¯™Çj¨œ"Lñ³µ›y:M:†7Ù7ÖY0Ö±&D6¬ÃŒý4ÑA Ô!³dbi\‹£øy|«1±:&Ö´È2kÁ’ŠËiÉnÉáü¾ˆo’„,ÇŠeßU‹± ×êNÁÐ þë¼"‘2в“8,±ú$–,Y«Id3&ñ=4±Œ¦ü4æ1˪ Š+ˆ*ù„Peh¡D¹çOb™X\¡´¢]Šú•眄 ÊX [”·Ç-ÿƒïð•÷}§6 #‘àÃÙ© f…Ÿë‹2®¬ià¼þ«n§Œ†A/Õþ‡ò*â:ÃïÍì9³ÇìÎxf=»oÆ3Ëì®÷˜=ñzƒkOÄ58%@d Á\)G•Ã%ŽI8bHK•ž*¡MÒ¥-©•Ø&†P+ˆš µM„ZE•*RµR£ÖJÕDM+°é{³‹qÒ*Rµöûgfggµïûþïûþ\ÞøkKsÕ°%NÉÐ¥yo£Þ=týW;Õæ8±{ØŒ}'üí`â«v™dØšIh`øƒ‚àCæ~óż³7»²ã+Ì÷KÏÌ; ~ÊœcÆø¿™p¦!ŠÙ³eÑxÅp#—¤D”Ìa‡kﬡv't §È5!1¡(QÍ·¡*€P …@ Ø @ÜÌ &€f>ïÐiá•N'èùVÆdÌ„3 ˜f>Çå8NQTÿ·W«Éd‚’DÑårz”®”Êq4´ø°bÉJPQ•¼B_Uþ®PŠ­g]^ERº˜þ›ÞG¬¯ÞáJ Jƒ JC¡ÌU…l‡`—zÛÛxNfXÞ£ò\ô\87f"Ü$°“¤T{Êóÿ)Ô¯˜¶åu®FÒÒ¨Òщ&)䔎HÓM£î¤1 Å2¡=Ü%áÿÒ£ø-NÁzMâ .¢OÔaسæáuìÔyï]5ÆSšžÜ¯µ‘#&%jô~´Ü-øàÓ¥fRÉÍðë”°‘`à+Þ…ëËÁ1šžú÷¡¥†á®hJLXG¦»¶‰Ô,1Z[K¥méºcßô1¸uQZn ëNÃð%uæΛ7ÎàÞ€Z¤b£Í„„c¸¿WÂ5 Ö=sÑÂè´*v/êcÚïÐGˆIÆÞ@ÔFtFtÁœÎ…:A/ 9jŒaI&[.EQÑc0C—*9º€Bœ$J8 ¨È£„‡.Rv»â©îþ»t‰L}Z<ÜÕjQks1‡ï¤½Dó²€øD8Ì„PØPIŠÃü&)RK$£ÈQA–£øGÄcQ!‹æ²Ù¸ªªª„y>–0 „bž" ) P(iY•K©¨¬¨6àcc2ÖC™0ôÎVdB€ªØçÊmöù+Â\R,6ª´ÈCòó2-Ÿ£že¼KAw«Z\¨¢Z>Em<@m^’%U’ÕÓ1cùÜ”MªÉ?Í8ÿ-G†!©ö±FøX380ß³‰;!2;!~úºÚ¦}†2ø`,‚±G:^YÑ1Ïqøç¡Ö亩‹8êÒ—K˜÷UÆéÚ“KU˜À §Ò<\¼×ª-×ÄhbEÄ;u‰‰.I©ÅìÕë牢þ¡¶mb§og£÷g[â0©u,gœK®½î˜o¸ÝþeÛ¯[œI È0Dnõwéðµ—Ÿ½~f«a«-Íy”þ@¸ ¨¿Àñ/ÌàHÁŠÕì¢Dj¡6l|S{Ö8î>ÑrÚ=®1.¦ tŸÇÓƒ'ÒªÍÓ8ïMí6^¤~¢öŸÕάˆÛ>¤¹N”b”J±aû0b„XìÃ)–UD [‚Äxš0§¬ª!@…CÅÅÖ”$rñ³ôp@i4ºÂ’)A¢ø±ðŠÄa[½¢$¶ÚYï‰YÓ-b] E;9FHµRij¹6®‰3ÉmfFXú^Ýò n–ƈ€'„P-\ûÄ”0{u0ãÜø¾ ØÙµ’Ø$Q.9ƒc©¡]IžLu¶ŠénhQâÛ¿Ù7}ý;kŸÙ–hÛÈLý™ÝÒ[¸šª­cç]Ž>ðØãó×;—Œ?Ùÿó}úð¾tKÚew§Oçã¦sê%´flý‡joaÔ~€QK€"xößÙWX·•Ze•Nýbp°%K}rÓ{ªéHØc4žóÐå9Ó‚ÆÉƒ{ßAÓ_úú*—AýÞ{áðö‡==¸ñ®c¥s+˜?gíߟ}"O­õ¯ ¬ nñolnçýC¡ànnOnyÔÿ½ÀÑ —i%wO®_Û{̳;°Ë<è9>{Öw$p„ûVù$xÉ7 žâŽ›?ÊŸç}¯.p£æéü‡¦"šËÙ_¯ÿ¾Ü=y—K„nߢ@7·Ïts~ÓáN¡ Z±˜Ô†¦øûšÖDS¯APÃCîr¥¼\&Ìœj) Tß:Ö[†õ xǸª]Õ(X _#eÏ…¤ZQ=YÉk]ÚÖäÏdN…-snø25 ç CòÁçÀU@‘Pò*¾XÒ\p¶Øöò`¤‘ÒñÇM~˜™Äº@Ó8ï#T ܘü7I > &KàÞûÀN¸Sâˤëm@q„Á¯¹•¶r 3¿ðÕj™Ž×±&·BW\Ç·að;t÷ÈW÷«ùË÷ÇÌ+'ÚKêŠÛ\JÇ›tÇó{7=Ù 3«¼<бiWRž§©ð£» O½°y~{ï[ŠËWþ%ëÒ%ŠVŠÓÆÀ‘/÷,š~÷…ûú¶EÌ{0þ_ú„•Bƒ+N“Þóc©÷C;„Yœœô0Õ2¬QtAøí ЈQ‡j `Ù;ÚcqQŽÁ*^ Þ€G-PÚ9(†{d=åØ·Ã¶ûc(íš1ë5ÞZ¯JK¥"reH~NÁ1`‚R^Õ½²$ëLÿºûæüô¾«5¸‰ë ïÝ]i¥]­¼z¬ž–d½Vk˶üÐÊÈÈÒÆ cÀ€í¸PJ\ b’4C)LÂx€RˆB38éдÊì@DSÎ~tš™vH3m:ãÎ@:2§Ó–{îJ†„Õh÷ìëîÞ¹ßù¾óš­¼èÁ]“f#œiO¹¿Áñ=«-ëQ›Ü¹o<—¹ Æ(“É,ªyüYá«äJÄñÑp°$>ƒÒùôF¾Š‚j€RiðÞ/ØÔ3aTKëwI¶ºÐËçšÕþzÓüçYYãKÔ wÿÓÇ6TFu=Å“}ÙîhåÝ¡óÕRc4ê¶ ¾B]ÏìÞ+Ú°p‹ºFWÐMÕe¬2ô"z±fôž¨9Yÿ›æKq®·9N“=wÆq¦‘LÕ,¯"M!·b2‡ä¤ßKÃAÎÙçÜè¤ÚI…S“êV.;nJ·$ ‘4M€âD%I4ñŽX¢IŠ:èF±¶Ù'å© ÕFÄ"¡ÁÈMDÉ.ŠR"¿ðù4t¢‰Ã¥XQ¾Ñ¢­t~Áy¯Ïì½=Ç­ê ýϽ.W(Ä5>îʘ۳Ȓ¾[ÒðÇnŒãûH!afgÒ°[³|ÄŠó5kVœoíÚð!¡,|J$a“n±…[KàW6~S2|ØØ95æ+É–°‚Ú‘µ¤ÂálaBŒžÔTDkp¨k×k0ñbì¡P×ñl<î_x¼¯§{û‡'žmë#«ËF';kwî?ÛNšæ‚É(ø†][wÆ«W­8ÛÙ¸gû$úþöµêòÝ•™âÔxgß[üÛ@`G¤pîéŽN"­¬0ìE1Æ~b½îýJZ*—WUÕíIZtÐD\.ÂÙeþRv48{]< z™ d®º¼ÙÎóæ`ÄŸÆh†ŸõD8ŽÊf^ðç©jxcþÀ1›]¿ƒ$r¢ÁÇj’<¦µ¬hAÒþ<¯©|þ*ÿ ÿOñy´ôb”wòQ6O.”fQ#f ó##ñÛ‹ð ¹¾†¾àñ0¢Öô7…ø]ôÍ8vq¸j£1 %@J¥0¢Ä>•¨b K¸µ$ß Ù÷ñ¦c+)_ürüµIÔœub¼zKφ+G†³#S’îè|ï–åÇ÷½U¼65F;÷ˆÞÊHÿùWËÔôÆ#['‚g`íwïeÄ«C-2çd¼«‡(«—³Dµê²±¬üy$x(v–<¹˜Žp_Ú­óIJþ „ž޽¤:ÍšOY-8´|T&åwdR„x·%èw}–‰‚bL{…ÄÏÕ?QqÃþ„;Æ@ >Ç÷ñyº‚ð$ï© aìüz¸•Ó÷é7êwééýú7õçõWõŸèuzwu|V>]½·W E …YXýxкPáÆH©GÃŒ cê1ï`Š3eQÀ0Z&‡5¢áP&H–,!¡gÊE¶…ònýôGG'Ï¢à‘;¤Êê@uE‚µù”ÍW;W?µ¥÷µï}¶ïé7Ç_GòåáölmHöÛªêìœh¶þñ©S£Ïô> ù¥×Bþ'À}¤žfüÈrWä8N6NMe’,Þq®¤’äÔ¦f8mR’^ÖÃmc·qeÿÂésbŸ¸Qh¦ï µ&SJ·¿{é@ý¸òSô3û)ñmâʳ}ï&§óZI}­ “ eñóÚ 65ª´©áT*v»ŽH’m‹X.Q”òèkU’ë½a{sºAò¶¦Âvʆ¹G *`“À¯KÍ‘*&_ølÊŸNcåæ\.3gËÈ’M€âMMKïØ8œl æÙt:ÉfqõLÁÌ;N'Á3w¨,5›˜ l‚´•Üö[ðä€Ù 9à…IzU_$é-ÑÕª~Ç‹¼î Xï ÛôËﲤwlvÌ6d„0÷ñ;MOœ*V,¾˜¥e’Bêh<5hD-©ùØÈÖàøn´{QàÁx—Jôÿ•X[ªå>©1 mA¯-þªÒbä­¡U¡e'ÔP­?ö“gV¯èûà½?L­”6sŒ©B :ïòôóÅ;íõ[žGÿ»e“Ÿµò®Mâ–çjÓ›žûbÝÒñ§&ÐêíµÍ葨Cöˆf R]YÜôÁŠ>ôÖ]¸?Ü÷Q¢¨¦*.ê\Qš0ÒºÆÐo$ecMt‰q©Ómè6.c‡ ë…è úçô/lSô¥¨ÃËÞ&)ÆP¥%gŸ3 F—0Å*â°W5°YÞëó&¼”×Ë…#VFã¸ªÖ 1 ’¢'Ft“˜ÖN3@jÞ/¯Ê™UxѤ™ÝRüºk±÷þ{[áÞ°9W€¶h$^(£DX0­K€vjµÚÂS1b±°9C928MY|>±T‘q«d[ä³óÚ3ú@UvÌsÌóC˾ þtüÕÚ¾þ×O̼:²w¯Ò8úw´§)8¸o飾äwM %çÖ-]Óóƒ¶j¥ºåõ®šäMèГŇ©Àõ4z™ `:Cu9 ¯¡m žÓ«Î‡œíi‚¶v©ru2Œ¯{Üaè`×”ïR°¹`3 É.ì,x傞ìX»A5iº«…UxO8S…H„Ð7O´EêaÂ1V¹ùYüÏàÅKüޫƃ¡X,@‘ít8BÈŽX;x¯@Ì +ÿÖ[mø­ømN9R­Ð|äÉ┳‘Ï“”*4ØT ì¹Î€3ÐÉ6ý¹Ì¿¹‘ùÂ|áá ¥9Àd„ÙE׃°Ï@ÇgfÌ3ã:aÆœ¼Ç³²£a½`"$vš^8 CŽT3ö\(T7” â]—j[4[ƒšufÂù?º«>¶‰óŒß{çäâoûîâ³qrçoûìsì$>;¾ Î勨1$P§1íºBÈ£%¤jWu@7ØèºNki…²µhùZJ[Mk§Uš´&I˶vkÄ?hR¥aöÞ éÊlŸ¿¯}gÙ¿ç÷ñà*ý곊«–‚`~NgHF{Q÷\­ô„gâè£Ä‰ÙÂè®ù©©Þ(Ût[m¸žŒmõZÖž;g)dx)=º˜_?Õ`ÃkôfW_× àÎcsµbíæ«77õ\OÂçp\ß„§w?ýúóº¿r` R)Åýɀ˖h±à†ˆ0'ý¶ÆÚ:] ²3¬EÖƒœ=1xŠ8Mžq,žy‹ø€y—½8h ¦mÓÅyÛ|ñ§Å7‹Ív«•ÍR¹Ü¨ÕžÕå¼ÎPöhËÖ}G Ï^ÙÄõîœVÂNåÑ„®%”Lç¼&?xQ—ï¤ÞǺ6$ S²ë”õœIôÏpýbÛ{0AéE8¨µQSÓФlø˜Ü;¥×;•S4vŦdÛOmw`„UU­¨ì½½Ñ_ÌÍÒÙúÊ«ÌUEŸÙÑgUhÚ¨V[ΦÐÖ:¦Ñ:5U¦•ɶ>Æ*¸A Õª£Mãi·»+‡‚æôÒá.Öþ¹wî7Ó(üêTª{þÓï?õÑCÙ˜ûÛcß™}úóß·ÇK•üÜ […G‡"5ïX¹wóëÇ?,ÎHXqg:ñìã=¼ÍNyíñPJ?\’¾*Ī 9ˆE&ӭǶû ã9¹qê¯ ¥Gį½zgð›=±ÜŽRxÃUøM¨i°Aþ:1oæ9lWó.ýnf&<¯ŸgB á–2²;„–%$<@£1žGH*=Ü1’éðÇA‚à&ëöPn·á‘4ÏÆ;¨x¼Ãß©Ãã¼Áitg"wGÜF%¡Ë^4áAÏ\0ÝŠ½ò(v!ý‡¸’yaÔk®ZÚu¦µFSj• Q¸qWÆMÇiwÆÐõœFù†p+Ú½ !‡-¡N;uèë…†Û¤.ìg Vä^.nîwm–oýÎ;ª@«-¾Õ[&¶·=¾Ø °ed=pš²ð€ âÏWH*Gù4¨@ÔéŽÝwd ª92©iºÖF8îu‰ h¥ö+U“rÛAÚn4Û³=¬o~‹/˜ðïs¸¨öàPÅy8ê– þK[›ŽýGÄ¥ÌÀÖZu}‹…0ó_!…C‰ ü £œŽè7Ø?­+ÿNwà©5‘f,¬xïCw?A;šˆá@@Ó³¢àxBˆ˜L1ÙåNULÀåšöNF"I®dBö6/a¯ÈkLxÄd5qV–ñR ãu™hÄËØè£è%«~/fZ#°íÖ%àÿ%7C0²[`ÐD)ÅÔÁSª¬‡h22ëÑV$éH%™ã ʸ¢ ÍD OÖ±¼¥òš٠Ÿ”‹9Ìj­Ï¸•Òòå¿Ûêh«X¯ VÈ¿Wl p•i§ª^ò2-›¨>³ _–†è)//[³´lÍÖ…êø*i&WáÙV÷Ào£¢Äq’˜¹N‘fkkVôM 帔ëëv 79Ä('I\T¬í»38b±Q¶x™Þ9"tƒ›ÁµÙ6G›b £™í€“Gõ °òa™h»Å~Në cÒ(7uÆöáÖÉH[²½„ 0·c,ÑJD«ÕH0‘VÂvÿƒ3†«à]xÉ€l‚B€kÄÇJÀiR60z‚&ÓëëRU5>þÏp*#Tк\}„¡ÔÕÅ CÛ%ý­p× w•ñmní}««~–…†»fíÓ—YBv4l²a–+Ë·?«þ/h”`ˆ­ª@V9µ ŒÊ÷”'ÑzÛŸ­‹3x4  º£vÚEZ`£e™m%!ÔíVo(B'`ˆ¬PVÊÎmfŸB)_`/vzŸÝÉâAˆ„ÿî'M³Ð Ëè°ü¬ òº'*ú‡MÛÌ[¨©žªX•¶önßIîrLóó¦yÇAþ@ïìyþùÞ#ƒ'±—-/§O¾ΘOe~Ñs>{^/I¢›€ôÎIÅ‚ÍwÔ«h²‹ &—”q9Ù"lçnr(·„¦®ìÁyˆJÐj•d¿ Éî¶Ô HápÌ•®‚kHÅ.ÏŽß(hâ­¿ V-áIêÒ¥-£¼º”éD*µ§p«€\-Ñ𛏝ç«T*:”ôÛ+Uôû•êÜ_¥ï÷†*xï»§ñMPã-_ûe8wÁ‡’Dë“|¬–‡ªzÓúÍn† ß ÄgʎšV~5kU³AV§DÛ,k…®‚ÏG®îu%ðcjÞÓÌ'2«l‚þ’OdVGAÿ=߀¡ó“™ú2 Þ{fËÚm“‚Ø5@,žÛÐ!³}³ÁàÊvy]‡&Cþ÷0‹bF“5š8z`ÃðKgÚ6o°÷ý”këÞqâÖ,é±#µµ¯m|ªÇ#wun¨Î…¡¾±¿¶pÈb1à$Ÿo|¯+éOþôï1‘„Ëb‰úÛKŸ¡ÕG¼î5Îð]d¦öGôð©wøM sÂ0]œ…ÌIƒãšSÆëN)¿R·Ê–„q£î„n ×3cžy°?¼þYä*z5dœS‘6©Ÿd&=j0™f´XÒ¼9:&Ì„ o¾Kbj*‰k©<@â¯ùŒ :_ObH:ÆòqŠçã|¬Mâü¢‰‚ç”à^B_¼ ܈+a4†b¯68¯½©Q-Š¿ñõ°ÂkÙ…W5Fš[<à•°ÂÿŸ°+­,/ߎ}9¯< ­ü—ïjmêºÃçÜcûú•ëÇõ}ø^Ç÷ømÇÁqb;‰Cnx•ÒB`) ¡¥-JËÂZ¡¢ñèèHÇ@E´c+"ÕJ«A€£ÆV$(“¦"­ÿtš¦IËÖ1)£íVÅÙ9×á¥U³uîÑ}øZú}ßïû}!ïf8K]÷#žåÿXš6‡éAô î䦙¥âNîž]Ýõ«Ÿlh¯Þ*¸mNO¡MèmÉÄjÃ/‰ H,ë¯ÓÞüGg0n!t*Béó ¥gÊk:Ü_U³ŠßUL̉g_†otÖøüòœOÞé{ö(³yXC&K”x“áÌY™*à'ôv+cC;z—?)©g¼gÄßÈ–5r¿ÿCù X>êeùÿc|‡µu•w%ÏÚNOÔÁ"³YŠš¾ ôªîewvöæÙ ûØ#,ÃúŽ^N:A€Nî}AŒ ô` ²@cÀ ®¨é+2Aèn¡®›°ºn’0A%†*bAJëcLFý¼QRZÃø3Fm½èì‘òäî='~Õ‘‘ãï­YràËu{¿dzÞ,ÿqüÔë`rüäâõå577ÀŸ‡6,/E¿%Uˆ€Ø«wöÁ½ÎÃÎÎKUæ¢Ð s‹…%5}–g¹—¹W”ñäë¥Ô…šë · ÜVq( òa X­oà8 *RV8_Vˆ,R'àû:— g#] ëâ¨uh¯¦í‘ˆpš¢úEGíò+—•\RUܵIc ¡3–ò:UÙƦ ¸ÀêZ¡›…:ÛÃ~‡c/³fö"j%Ž$ýK5™PÈcç Šô¶)†{µ:Kª?§HJÎ>ZN¯ª´ÅlSlý‡\çžš®°6}³â†aá²v³RN›á^7r‰tq|s—ÈgÛÕûX±þ‚XÂè1džšX9žf6dœXXøÑ¢Ž÷÷o/ÿä_ ]ÙQÊwÙÊ)û@{tZÒpuþÅyßÎmXÑÞQ?ô‡z´çï;ŸÛ;ü§rQ ”ËË$QóÄb¦æh¨×§ÙÄ4¿´eóÁß­ïéûê=êõâ¤HE‚v ü[ogˆF†ÈZûÐZÛZûŠÔ14î:&Ul»”ƒÊLí121AMƒ`QèŸÉTtAƇ¡º*X5èa_Ìbl’‡4 ‡|‡°fO†°;kÓm=6d»Èè€L„3©ë˜¢‘‘ŠXÏÏÍc½¶€õ(Ya²ˆ=Çz :0øþßÀ·ð ¶müÁ¹4– ·x{žtšøoÃÅ=¬ :ä²1j–«×èH®ÏRM"Pó1tRJÄÒ=2.m€ýûOí[ž ÅÃò)dbX«ÃãR ½OÕk,øÐìò…„f´¼¹¬Àô–…‰ØüÒœ Æ[¬VNúíù½›¥íÌ C¯Óm#ÕŸ™"NûsRý,8¯G ”ª»Íê0¹d‡àjI˜“ŽˆëBu° vÃAh‚ФÛ3×@–5GS¬žÓóÂ5YrTG=f\ƒº×ÑÖ!¼ÎµÜÀÁ_`´ï#õ»ŒMxÌÚ?¨Œú¯ÉÆXÈd=KV(œ“/ËŒü½ú‹p!|Èi÷Ú4¾Þ˜&ý09Ed§­49U9lNSG‰S–Kb%©•Šð9BëZ¸ C¢K®A¢çMÌçscæç»æuT×Ù‰‘%kCÞ9Rln̲yý²~wàlnï&¬p<éj"á¿ß½ua6TjüÑ~ýùwÂÎ \øãí}ó’áÒ§ Oí6£DaðjRÃçL¯‚ ´\f2à‡‰;" ê]ó-ækõ©£à.DÑê°†C.\™„HLp.h2³,¨U¨ªƒ²Ùo‚V¢Y~¿É„€1ZxÝšè'M굤_t3.¤!fA4„Á)Ö5Ê]„°Äœ:½¢ÞXÌ_oˆŒh$ÍFÊ¢=’lŒ0éi’i¢©*!bš¤ÄIÊèÉŠÖP•1WF.©ù´á, •¥Šg, ›K%è¾^ñÔÎåØÈ7ÎÖFzü°çíñ€ÛáOɽ¡'W4k›ñûoÙ_|ã Ó«å/Ú¦Ï <ÞˆoƒwS¼)ݸ‰Yn9@Õ‚NÈ«„¯%ø–>bmñ·0ÞBýcõ+KÅW„­â¸ðø`ëˬlÝhCÂJð„€AI`BÉT‘9nƒÅx[²;9˜¼#ÜïY_k©ÄÛìñDs±E”Ì9¡ÄÇêÜL.7ë•Òl XB_òñ|Iæ*?—¸¥ï¶ÚÖ! ÔÒ žÌP^—ýy^ ßÍòûø#¼™'éAwæbªž™>èU+n‰ngÉãÆî*{mÞØu$™Ïªº:¦"Õ?צJ¼DþÔ¾åŠá#‘€@yNÕ#Þ6ã¤óè~Z¬dÂ.š¦Œ'Il¸oªhFxÙ’9)’T¥h S@éà¨hÔ°‘(mdAv…Ù4ÐJV–¬ Y÷²,éÇ ðãN0Ô]YØDcÓ£&lÓÔ„®žLT9<©Þ`woS.Q[åî<ö·§3zíjì± 5KµÎ•zc¬.¹6áBO·]DÃÓã»"^6$mk×FÂÍK¿*ßüT¯ïü),lRžà:ñ¥¦t]¬ñõò¯G"¼4ÿ¯¶Œ2©–0i”0)¾ÖÛÏC˜ÔÝ…¤î$‹+ô3ßB˜> ™RÖ@ƒšÃÐj³CgÇÊ, q”èœY ;4o·Í‹¼dîœw%dꩨ´©) §Æ ·ä™Á².ï”÷ËŸÈfYIj£tÄé}§¯ÐïŽÆ?Œ›â—P„61À” ™<®¼ÇP$’YD^ÞƒwâýxŒH)Îb#<ÁÎ&þ,ÓÆ6(1E|Ò=õøìy™>Ô1”nOù ´u€K:uظ ø‘ò5R™© ©4‘‘ºCLkaHãU•Û&øBUŽÜÙ¯öض®:ü»÷øûúmßÜk'~;‰íÄvbÇNê8·Ï<›dm×6´Y›•´ êƒ>埪›¦5B¥ªÚÂXµQ6ÄÖ6¦QiS¤´+Hˆ!T ­@J` TÛüεÛtH¬*Cüå{õ‡Ï}øþ¾s¾óýüaÉ$žø–íZ°vPèZÈ@®õ¾ÓC÷¦¼—Ü©Æz§¸"ìi]ÙÖ|/ÏÿœýâÙ6-FÝ_ú£r£aöJºZ»àd5v­“ Ó¼¨AÏå6ˆkÃâÖð-Q¶ÇœYG¯s‹ssxs—{2òJÃtDgi¦3=Þ™¤5ú±ær˜äÊ-W—ê˃Rœw%Åð,ÃÔ‚o*8 …Ъ]N§ ÔêX¢Pª”fÁ]n]L×­#:dñ²ò˜Ñ̘ó$-é™ÛÂTí112·Å<{BªqN¹‚Ã-6'±‹áÛ.ú6”QZ_Œ¤h%[Ú“.ɛл$׈‹¸® «Q’¹P¦¨ÂZ¶BaÁ„(Œ!Aåu‡²Ú-Kl¹¬6W» b—¯Û(éôŒ‹‰2!g4¬„±Q9Ñ©hÀ´— A¼hîÀ‰÷ÛËæÑg”å(:¾n•ŒUæ÷þf(3¬V±(Ô %Y¦9tX<¦œ+°³«F‘v´š:Œõ>÷»tpiq[T0ú…¶ºfƵ¨Ìir¼`¹qi2æ0kýA»;ÒÕ–l^ÿ¹âŸ2ìtayýï;<¼*°ü»ÅWŸõ±Ôí•~Œ«î9䣑¶qÔ*¨A†.&gf—~¦ß¹ž9.œc¾'¼>ßõF·©¦‰ßæ=à®{•Z¿>¼ÆO‚(²áp$'å²R£×ÇŠ¢»Q²56J¹0nžæÔ²©U3€<ž’ÜöΚP§f:ZZB:EXÈy§¾í{×Çúf9vnå¦$LwÅcÔ>Ö s9iÉ@2'Õ¥r¹'q_áÞàœØÛ*ôä¥r÷É;cHÍ[Ñ£ÜY@E^ Ž¿¾¯3Ó÷Ó4ÓNoI“tžø%Nq;A]O‚ºž]±<ŠëÉÄK‰¿$ÈHâh‚õ$â )ATZ;îKëXyáŽQ{„ÙêÏAwaž*«ì‰Êè -eg¤x;[v©Ì~Æáà­Dvq ªuVÞ˵Ì*žDfµð‰\4»?ýDB§2,iˆ¢¹]Åï½øÕ¤;¶4dã4VR­2¦û¶¶d ™eöv-9Þ9ñõ¢­÷Ìà³#“Yg°¶y›Zû¤áëÅÍÿx}4æn´Ê˜FYãë:Ç9»B¤ü½…y˜Ÿìsâ‚…Ë—~/Y|I=]¢¤[œÊ›"ùÒ¼ö¦ÚÙëÌ»ìuòkòO¢Š’%¤Û¨ßÈM²ÛÉØÃä¬þ,÷ ûÂU„‹ÓÚv½GË'õDÇæK·$Û,DWs•»É±79æ&oh´ºßÛ·¿ûŒ`„Bv$NÉ¡-*óš¸Ö¶Ò`˜·ÆmœÅà6Ï’¯Ja!n=ö.Õèj0ôKmžeú¶SDþÿô'½^'9=Én£ûš®âËHla,’]ÀíòÃ,M/²w ¨¥?‚ªŽ–ŠÈÞL_®åÇ”®þÕžHf[®lw¨Tß1Ñ»$»Ú0ƒ„7èK Ô_èÆ°x5Ó²0¦*Õ¨¼ß—pÉB0g R?G$;-leý¶z팷Wzñ¦¯nÌþóì—P`ƒ;3±ºà†Â!vºxk“Õ•® ‘}B!nJ®(¾_ÇÞTªÚ–@åØù)ðœ 6ÄS{ø¿ƒâÚ"”¿X„úÍ2jÎè¿Q†±³ ó½EX/–aÇÿÅ#„ƒçûu»ê±öâ7úð9A@èÏsáµÄÐ4&Ž´>€,ì%2a‚<‰´=[óFž¥2'qD£Àíݯa;kÁÛÿ>ºñÀ¹è#ú˜š89P™ìwÏü,ºÅ˜ýH#hä«Ï¹ó?¡õåÙךî) _ÖüMÇ.'ò“ÿ5> endobj 142 0 obj << /Type /ExtGState /SA true /SM 0.02 /OP false /op false /OPM 1 /BG2 /Default /UCR2 /Default /TR2 /Default >> endobj 1 0 obj << /Type /Page /Parent 117 0 R /Resources 2 0 R /Contents 3 0 R /Thumb 77 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 2 0 obj << /ProcSet [ /PDF /Text ] /Font << /TT6 53 0 R >> /ExtGState << /GS1 141 0 R >> >> endobj 3 0 obj << /Length 161 /Filter /FlateDecode >> stream H‰L‹M Â0Dïû+ö˜šf›ô*ˆàÕ½‰‡*éQlAü÷¦M 2—7Ì›=CÎl‘k(´Ò%ê˜Dd¬¢B[4Û"‹üšçwùñLØ ESS¼ßa¢"Z¸neV*Ý€ÒŠW*•Œv)šÔœÜ(+°]·©ÍömÙ]À.$Ý Ý3ü¼ÿ¢wõˆËÉKRFT‹ÓË+ŸàÀð`š54` endstream endobj 4 0 obj << /Type /Page /Parent 117 0 R /Resources 5 0 R /Contents 6 0 R /Thumb 79 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 5 0 obj << /ProcSet [ /PDF /Text ] /Font << /TT2 135 0 R /TT4 137 0 R /TT6 53 0 R /TT8 54 0 R >> /ExtGState << /GS1 141 0 R >> >> endobj 6 0 obj << /Length 2464 /Filter /FlateDecode >> stream H‰´WÛ’ÛÆ}çWÌ#  ±˜ÁýqµRì¤Ê‘²bJ•²ý‘X-\KrC`W¶ÿÂûÅéž+Htò+)U­À9Ó3Ý=çôô¼Þ¬®6›\H±¹[É"iJ‘Â?ó¥ •*-E•I^‹Í~%5|ú¼ºú惟‡Uš¤©ÌÄf»Zãg¦ÄæËêûè6ÎuÏýÐâÛ~§_Düãæï¸Ÿ2û¥n±µLY§¹XËDVª›7š)®‰xóÓêífõؾ«:OÒ\в¬%ò¶”YRÖâÔ­¤Tà¸Ã ˜°¯ÄÜm2º;»µê4©k‘eöڛܭþ9³0.ÔIVz3•'ÆÊ½ÖI-mR•ɨÚ²YV)ÍÌ]ª0äè¶{N&Ë:©‘,›¤L&Ë߉Ö/fü.ÊDç|1\•%U5/’:¿ˆ5Dh&/„(â›vì&!VÈ.:DUÖì@ýbÆß¦ÿ^ˆ0µYcÊBÔ“—N±Ð!^?÷ÇSRU9{Ž(­iF“AúÅ,ÿ ={9JU5ÓƒT¹Þ‡ Ó̦ÌÞtÃöÔ?Ž(m`-aQ\SRt'­‡ã >ˆ6^WÑ] |4v'nVhgÑÚ|náó¾=ØQ;*êZáºÆ6Þtµ}¸&t#8ǼM'¯=x¿dò¤s_h«Ý~ý¯ÿŸúQü c;> B{ªÐÓ¤ÔnÕxÕª$‡ *,N?ÄÆO,Œÿ[7+ë¦Ä/tsërTig2현rð·X*ø©P¾Utã~¿ƒCA!ƒô£;x÷\ÀÓ„‹ß`ý¨ ><=>Oãÿ))]Êñ+¤Ü’DÜu›-Œ€Ž&ú&Æï÷ÚÛ&ºÖ¿LOžKzg‡.ê¼t ÅÖ#ƒòõÈàl=20_sW Ì×#ÚÜ×#_˜Ø]fTâšUèf‘#j¶ž >0 ~ShðŠÚ—,Ef¶^¼žsß#§W²ùêëùdcîãN_l;C%[ˆ2;ú2ˆ];¶Ÿ@öƒ%£ÖzýjîR3MŒGQC‘HÈêÄ×yëîÿVß«°f¬ö»‡n; FçƒÝsóÊîãE•Êó}mQ¹Hµ°íJ*ìd––vÊz7fŒA–‡gp\K.5V”x£03 «0s3(«/ÆØÊË ¬ºhc'.«-&f—2<s‰\]†‡ä÷qÑxpƃsôþ´È°GžÆ“‰0ôLÂ(xQ1ºð«D-ÈÀ,‹h8xLÂÁ-rošHÐÒÁAøj¥|µR®ZÕŽ]<‹–n@ET«ï ôôëïZMMª\“ªŒ­ùõ©èǾcÚ6tHêgÏÚ}¢oÿèb¸Àá1öðÆø몊Įoíç©Õø~˜ß±p¦9OPƒò58KSóLeÌY Ìó•6÷”µ¡ñ¬ebw™QàdèŸæ±kÜ·_óàh> endobj 8 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /F2 55 0 R /TT2 135 0 R /TT6 53 0 R /TT8 54 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 9 0 obj << /Length 2264 /Filter /FlateDecode >> stream H‰¼W[sÛºž¾êWàìD4Á;ó–““´i'Íi¬N2} HÈf#’ IYu}¿Ýu‹Ý3ÓÆg< XìåÛo7¸5ên\|[~àoYøEªŠÀâ UYûE¨ªvqó¡5êç~ñ×ÅO«ÅÍj•*£V›… yEág)m‰?ÈÕª]üi¸[,!-±¾ÂAaLo‡Åýig»·Þ2ñî½eˆÇ`GoiB¿Ðêƒ÷ÕŸ9Ô`)üfÆsV+ðS92§CoõÏ3uÂ,ñ“K}X ÌÐ?0ôFj¼]~,Çɪêë-S?× ZEèì&º ƒ R¬Í»Õ¨F-òÜOÉÖ¨8ŠýÕ˺‘$LuåE~¬Éœr«F;4x¬÷£šîËIíJÄ]?x~ÝÔ–DŽM»ÛZUvµ²o™á˦©™èNÖNªµÓ}_²”:éÉúK¢f¢¨Ë©Tö_|.Ô»/;÷zçj¡o¨ÕÚMÊp:XÛ©úbî¡©ÑÌ1ð3̆FÄลíÇIûf*×0dÓªÜí¶MU’'F5Q³¤oûfh:9^õ™éªÅglÚê÷ΜâhN!æT}Ûî;'Xõ`@øïžU-t?LªnÆ©ì*«Öv:ÿdš¬iá¥tSjû@QŒ0Áö­î->„dã÷T(!a%…οÂå1„æ/æ´ÿoÀ"ëR4ÔgÃÞº@#‡Šüif`²to$¤Ýo§féź-=d¤Fqàç€)F`ÓU<±…¹ˆÂ¾¦øA¦{ô·m( ª–­N‚|g‹h8²Ðµüu3у& Y¸Ë.9 È÷k4õ@»­dô4ªÚ­•ýG|Ñ'Íh;ýïw,¾ÙUÈDÕ³}m/òQ–qض“›kw“šúÙt"¡-t–oì-¤$êì•ù~?n]…{ôB£ý£¦g `Nšáëʤ{£(¼€7âˆN\3ÉÈzD$æ”ô|kw–|ÙÌ»@‘r›\y-»±• ·hÝ \5Ç×2VO©¼t¼› ï¢DRÚô5#û&;/zædÆ þK?´åöµ2Aðçõnäݰ19Cîÿu*•O¯äÓ÷…*BÌ_#KÝñœ;?úüèt~$çÿ±Aa¿¾÷è—lIpìxJéCÙlQ‹ˆÚµTÖýhëWØÏúæšáÒŠŒ«B±*w!ÌÈSZØx;ö³Y±çÿêåÔ×…Á\KäíØb§ÁEyà ®ß¿{³úÛçw·"ä}ø\OŨ2§–èwרŽÓ+TÏ’D™çªÉÛžXºõL¬wRåË 4Ú º GäÎÑÌ$“ï¸øEO7l¶ÍÎ˰d|úrR$£¨ºnq¯oG±kæNF“Æ'F0ŽÞá„M¨ØQi•&¿&æfþèT‚~RJ†áUJþîdE¢ÙŽ">îÅ][©P“ç¸X¹kÜ'îdJFîäVõ<êæ{Þ•úÂ'?Bù£îË3åoûÍä™TàEVŽ©¤Ó³¿“'§_륚£HSö\Àx}å‰(Áz|U›s‘ßöòìäëã údp¶}õUÝNƒª{ôGL/›‰:´Éª;ÛqSéAЗ E˜c¦çÁÀÅ×…#fßÅ.± G¬]Ñz´´•%w–tÞWVüüÚõ‡­LÕ’Ównš;òœ­Ñ±Õ§4v½>.‡ÜZœOÔ~úE(½b/cV’&–üK5‰nègÃZÖ4"§“jýx.]6®åÛ£]¬Pt“’2-bÑ|mÎQŽÌKæ¨ÀáÈ0¡ËÒ7ÚiˆXˆõ&B¨¼öB{|WÛ‹YÜÛÜ2÷l4€® ½ïÜ”Gþ‘>jçéˆ{'±Ã#(nqßzÜ”riahy…+ _ÂhÕ¸!¢6ª*ÝÉ•uª=§ùoηS9L7·S¿»ùlwPƒ(µŒ¦/o*ÊÄí¤«­ï„'!Š’Z £ ¶ÈNl‘Íú F‰/Ü ˜Éü… s§œ8Æ ˆ.2·IfÈø YtS<,]2糩—·ú‰†ü'ÜßÖ¬Ä^4¡è„>÷åÕ1ù‰Æ\W{»ßy¹Þ1U¥Ì¸›ªŒk‹ „¹PË«jYdù×8Ð5aT2=êªjÇE/ËÅO éÓN"=<QJ9§lØsÉ¢¥:4$ê|owç&ûj:/'ÖÞ;P €¶ŒÓ^_gñ²ëoØË “%Í¬È ãíû (’bj*5>vÕýÐw=à‡›W#}÷âYêÝCÇZï=¾Ì‰ÃÛí#©F¾5úžðSè±ù7?)FSSO#ÑôÝjñŸuxÚ endstream endobj 10 0 obj << /Type /Page /Parent 117 0 R /Resources 11 0 R /Contents 12 0 R /Thumb 83 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 11 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 12 0 obj << /Length 3967 /Filter /FlateDecode >> stream H‰¤WÛn9}×Wð‘½XµIv“Í~LâÁn™Íl,L’E ËíX;²”‘”óóÅSÅ[Sꢜ` nûT‘u9U¬ºúÇdŸ³ßg}m[Éü›÷uoX/jÑ Ã:ÝÖ½b«ÇÙÕëGÉ®w³ÿÌ^.fW‹…a’-îgR9-øÑ÷ugP¥Õµ°lñ8ÚžÍá4¡@~©¿žføÛ/ÃöU5×µä»j®àÇ~8Ts©êž³×ÕÿšY0Ãâ>T'ëÖ:³Dmüp¦À㸪ÿËÌQ®õ©=Î ø ªÔBâšñjþóòpölµÛÕÜÔ–3°BôàÝUs¥„h˜³æ§ÅL²5›Y[!ád Þ°¶ikkœÞZ¶f÷¡,.!”E©™ÂÑ…üéé©ÞATV ‡ó}%ÁœáPïöÕÜÂ>GCܱ’5xÉzá˜cL¦÷K àÄ€1/ÂåE×]rV°wÃ7Viøµõ®Ë¨ ìàkq=sIm2ëÙWºnøPHåfý¸Þ.Ý'˜ÞÖÿ£‚Ì6ÜŸ—lº¶ÚèÍiC~Üæ•íî™Ô Ó ~‡ØërèœÊ“þˆ·À¶·> h!?¥N<\Ô@x–ÿ†6µ²éJ`bë¯uÓÙÿ™’Q¹RÈOr>I5u§ˆ£Á›Æ8aøÑôÒó×(Y7žþøG yüw^¿e_vûãÁyE–j ¤ ¨qŒ¨b¨D,Aÿuµ•øk4B&#ÚPVPÏìVT((ÃYî—TÚ!•Óï3«Áuȧµ†Ô ÜÛÔ.›"Ž˜Æû"öþol 7÷ „¼WÊT<«sÇ@¦!Jó¨q­ë\!QP0'ÒdkÈ”"Ѝéò:¨:`ý²šCVù~Jüϱ«À´šÑi Âí$t°õóµm-Ÿ‰€4Ƶþ  ¶ÙA?t\7pQøÀ|Á´kžù©´![ðS÷ªð3æ­Ö–ÏE?´ÓŒm‡Ä/ùé…/¥Ûûy=ÜcJ]ªùWÿtlðASü˜»n°çÐîi…%HóŸv=æQ˜ñöß!mÒŒ*Za»,:ï¤/$Ù竟&ÈsË+÷cïþ_WÐŽù—#<†¯wÛ ÛÀ[…fàk¥5]wt6  36‚¡®GôB€FĶ}'ž à®Ûfðø2œ°IN8ŽãaÊb‰Ák#Ú*§\6ywwùñ²œð—lVBÃøV´y„)›•°Zˆúçî‚Í£¸»+Èg—eL½h³\”mN0i3ô¯Œ7PEíE›“¸»+ÈFieˆHE²Òhbk“îÀr;ëÁ9­g­+Ï gÁ"àÑ0òîÒè_·Ö¢B•›4Š5þe{ñîfñɽb SÁ@ ù¯8—JøM ×ðççæ—Ð :¾>âï-Ì‘òÏ[ߪëqpíÄv¾ ®ö»íîëù-%† B ½t3|6n3ÈÞ”fß9ƒ«8 Ÿ´ ¦&çÄÃË£ÍNIÄbíûÓ#µ)m8} ƒÙÌÓ”p¯>ÁEhãL—kÆ)Ñy‚…Ǫ#A¯{FjÌŠpÁ¬L›2 š‰ßI|ö¤"¼þT •F/MÚ‚Ô¤p" »¤,| TóèäõÉân>¯èÓ‡§‡ÃÓ‡fÌ6yz‚éÓS‹÷ðäI“FŸáÂé±ø¼y§ŒÑ9I0}ú3ðÉ¢H´ÂFâÄj$Û¸ù¯¤!!:èmX‰T;®D:®D03i.ë ¼\²Ð& çþ¿©¾øôæW÷Ëßå.6kXÞ•šµŒ½Zú»[B…]ѺNëú¬k²Ø\yì´tW·¡(è¶ d¡Ó²ÕrËn˜ÿC±ãŽ ëãn/aèí@iåŽëo{X®zþ€×°\:ý?oåÇŠí¢Î ý¹l³{B)x>Vur÷™­³µŽcDZ³l{XA®OÿÔ¸?¹Ð˜”’&H‰T(öþ5lmšßüó%¼9=[uüß?¹O¶®ZLv×ÊÂSc?.rË•ûm`§‹rŸ·Ë ü 6Üèœ8Ýp[ãŠ;`ß½á¶Ê¢(´¼gFÿ°ày¨_QÞzRŒe7Ùx$4ôlÁݹ'ÛÂÀ?—?"l¾ìI-]3¦ü’pÖåwûœóN|ÏR ŽZ›4žYj0á·+âÞ/;ï×w¸Ï»s/{“göl¥…Lý—ñ°Ús›‰µNHEHî…}ÖIR+º5®® ßP¥þòŒj‹«mÏOVZéFʽ¸ÒR„/¬´á0ï¾äís+mx:¢ 2ûÂJë¤K)þ÷Ù¶ã¬=YhÏг¡  ¾ŸÝhÑ[ñÒÙ4šˆ4Z-Ýkä&Cm„i‹¥†7Â&øù•6ÊûÛ&+mNø‹Vƒ¶ë’Õ.XÝ£Öh¤æE«£|µ—ϧؑ«—¬ÆaÆ–­N0mµ‚{ûŒ<—mNÒþ.e.¯´¾à³7ÜùR›Q îó!6Ë!çÁ"àd}÷3K-ŒdÐßÇ¥Öe@Æ¿ð5{ºý´Úüöi T½üu{¦áÛ/_q}UV🗇#Ž= ”øj³[ý6é¾×–Ѐƺ=ÛA[¾ìM!kˆ 4¡îèÉŠ™`wöV¹ÙÓ 4áN}ŠÇ|Ò¶%”¶-Á´m=ì˜ãóû îKîÃvŽ'2‘¶(iÛ“¶a¥©Ñ6Üo:E 8ý©@âr0‘NÀ@;2Ýœ0v,Cä…ÂóØPøh}?9/6¶C÷ÂÚ#šTUûê J¨ï,;0+ZÊ«‹åÕ¨¸€`ªsk B¸¤¸ýÄ- nIù;[â¢a߀eûÈ?à4Þðóšlú>xàüÌK¡XoÝYE!YÓ½°ˆ…ù3CÐIÅðȹ ýH7‚1”b|gœa ј'ÒÅè½u ,4ê—u-&áÑ,ònš=>^c{ÖØž¡6:üB"-=€?ªÝYúH„zqÀàè£Ýž+)‰E-œ†4 rP¨áÇ _l‹<.QÆ£EÖx¸H—¹SPô —D«'ÏÊ<*¸ÓÀú0¦³ŸøîðĆ~âÖÓøh}?Í'mq|9}îãWhLË»½oLЧ9iLæ¤1½©$Îþ;l0-ªæÀkGØ ØòîÎ1 ÷Tv»>&¼2=p È+yåá"¯<\æUA=ò*\^ä­žx<+óªàú©Ê-ÊÃÅEùéœ[FÜMSªEü´CůÀ¨»exêpB´'ŒÒ'Œº^—ì¸{ZîïìøZÕÀV»}5ïðÓ5§ ‡´‡ò)‡—\8ä¸r8Þ²¨Ëd¹9îw·;¸mÊâø,`ÊYn®^aw9 PUÀ¦au _ÁpmÊsŽG‹<òp‘G.ó¨ y./òˆVO< ž•yTp=F`îŠÈÃÅDãé$0?]=98)¶8¼Ø…âkÇõVV°—¯¿¥|Z_ÕOÝ0+–\Q'%‡³kƒ pXÑ58k”RršNÇ7$ÝTþ6àªã)*¤j»”~·Jb4)%†“Zb8-¦Ät¯&·xRNñéAOγ´ ®ûÀÔÙ&RÕx¸Ü-Ãö÷ÿ .ªŒrTt‰ª]ù¶^óxœ|üýQüA]ŽãÇC¶¡“à­ldzqÈžÛÿ);vpËÐÌ_X~¦_Sý ~n<‚“†þ Ø“)c_+\c µ-4½(fou&îÝL÷ÇÇÌÓ/Ÿ<(wÂa„z 5úÑ7ì±Eï«-—÷¹=·¸ÁB‘o½ŸÊ:Œs“ŒcqØd Ô»L<*îi÷¸z]S#Üx…·’¯ έ_ôeD!Z·îؾºËüŽ.sZÑ]æXËd—nÞ–¢j23ÊÎΈaœ]¾©¤D>è¦ÿüáá#ÙÔHäY=ª¹{îý§±AÀs QÈØwW¯Âø,Üòã4þèvz'^ÆI¼³¥È'²¿‘ï™þŽåx޽>hÜ.s77æ—Áü’Íÿbº,)¥øFD%âµÁÂÖ«¿¸5±™µÚ‰ñÅú‰è×òùï‹a­°ÛÌ©Ÿ1Cô+ld9Rƒñz¢ ãÔGˆ¿ï×'£¸‡×w¹WÃNì;îÚÛàš®ÄÜÈG=!05Ø4—ÀñìÚºU'cß‹›~Dõ`ó[“u4ÂÌâÝ'Ú:ùþ>ÄÉÜy ;ÍYAÖ²U3ò¡ Ýáü†Ø˜²Ý»ÁÓ8Œxi .ÁD«’³€ö™øbôUŽª£ŠÓݼG¾ñDÊOq–Ÿ Õd)/çá/dó†ò€¡s§ØÄh)çNú»õÄ@3: ÕÿöM‚’ endstream endobj 13 0 obj << /Type /Page /Parent 117 0 R /Resources 14 0 R /Contents 15 0 R /Thumb 85 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 14 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R /TT8 54 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 15 0 obj << /Length 3392 /Filter /FlateDecode >> stream H‰”WmoÜ6þ¾¿‚©«Ô{zÁ!µ{½-Úk)Ðä(ZÙV+KŽ´ŽÛûÉ/¾™á‹´»¤Ó ˆ¥ÕCŸ™yfH>ùî¥d×óæý¦ŠËT2ÿ¶U\嬱HEΊ,+ÅšÛÍ“·’]Ž›ÿl¾Ùmžìv9“lwµ‘ŠfÁ£ªâ"Ç)i‹’ín7‚ éz³kBÁøR)¾=l^óŸîÚá"Úf±äc´Uð˜Ú9ÚJWœ½ˆþ»û~S ²B/ªqZ-çz °)ÐWÑî÷Udqv̇hÀœ ‰oHãbûc=Ú‰5ãÔFÛ<.9¢*/ž$O” #6ßî6’ulS–q.$X–à K“4.KÖÓ’Míæ #´Š‹ eRâ(éÂ#¬ ¯ùÃÃCM?ï¯ÌA-‹Ã öXö»LZ¯´Ç¿vû½â7+/•(Aƒ^/!ÌÙß÷Ò29r”Ã^*@³EYtQ gU$RûxÙa_N !7ó yN ˜ìÕ:ÁªHbåu=SJ‡ÿLé~×­!í‡Êhôg|/J0¼ÌIi ÿ4ú‘çÆ}¨ü’YÊç†ýí"h5üóŸón\À^–#·OEÒTà&áG¥i×®Ž 5u¼À”½«zƒw4z]%%ƒÎ“®Ñ¥íæ :§&Àⱋz Ë<3}„àTÑô0ãe<.f†/«­%ÿe% 8a„(/¨—²p®Y‚œ£0£¼ŒÇÅÌðÕj+©>F¹P&ñ^ÊõS.Òµ.T¦pË{Œ³›€«ÙñZ™B‹Aµ`'×Äù„wÚ…×ÊÊ­Ó+|F/¾Š™_Øù×Oí~F]Þ_C}÷oïêýÛ} ô.ñôW*Á_D2áÃÝý‘ þ²ººgýØüÁúnhY§á“&ÞZx8;ªq€\ÉÚ3‹Ãèr»€š Ö*ü·B<›ªMŸÃ©nžØŸ“ HsÏp—G?-{h-˜—Öž2'èfIîiî9nå ea-‡ùiAy C ‹«Êý(M>àtëSGâ8ÚNÒì*“¼ ˆv´ükûÏ„p+Ä{ËíúaßV55bå¤jUS?ÝtA©¤ðÔh𓊂 $·äȃ£ÂѨ+œâ´24n¥Pœî”6çÉwqõOw»–†ÍAm…Û¸¦Ûĸf;Ë—˜€ï62)laÉh8(™ì¨{á…™wm¿d’ n§N1‰SLr¢˜µQ•_.™v¨ßõí™rà¢(UP9 +GãAåh8¬ÿt§ ‡•˜n•c\ +'à» ô¦°p êÆ:Þ>taå[×/•ah@5 }½lÓG-¶i8Qú6êËúP?¶O'yœ¥A`X…AhXÞÉN„†UáŸlE¡} kÂï³ HÎ-¹©Îœ&Üe¶:ó+€;ê~|!ç_ß/)pÃ:í7J|®y,ºl7J.ßseh4, µ¡á°8üÓ:4–G`ºÕ‡q-,€ïKdÔ#]CÃÁ¶€WÔ=ðš™gm¯8²*Cõ¸ý&wûMnö«ÚoŠü‹%Ó0\Ä9÷î:àp>¯h4, ¤á°€üÓ€4P`ºq-, €ï629~:+qg•ŠËÐ3ê jÐÄtA—˜Òºg­Çâ~ÛÎ^"µhªhö/÷·¸ß8Þd*ÇxÀ)o »|Œ<`®#KXð6¢Ž¬/ÙòçÃâ~ë£þŠ„ûEIíZP-brí~‡W¸ ÉŒí.u±*{Š®|wÓ²8²Ä›Ú¥)34™¦›Ô±i…Râuç9N¶Ae¶3àv†‹h›Åg]´MñX}~ô¯6’q§«h æxÝDÛ¿²û¹YÍæc˜ØaÆDÝë'ÛׯLM83ßWjÙþ2Úæ0à’ZLŸG[|¼‰X=ìáÃÕÚ³ó2šQ -ôÇgW§%zýCTÒBÚ?v5Ng¤©ÕÁü4?É›(\“-t(S=ÌWí4ÇØ[Þ÷lß~èV3êJlðÑ6‡vÏ#;Ü´sË#›;r£â×QK›5R®xNT|f·÷óÝÔ 5ßµÛOu7èõ€=}"Ê»¯B·Õfì{XGSoºßD¸Äˆ J~¸¡ÎoVzײ»{˜°ßÞß!ÝWì¹"ù_Ȭâ¬ýÓ|8´Ó»ÇÔÎÝ D[èOÃaÖ‚%)+Kß$%Bò !u.%ßÒÙ@µy¶ìÝýгâH$‚OhDâx‡–½DÁ$¸Ï$NC©Yèò¹[t0s!$ÆÚ½þby`”êýj^o:3øT¦ •‰ÙWc¾êI“oņ¦6 N’™ºd¦:N}û¡ícv1ä´‡™Í7ã}¿GJ·õx¡~rÞ4ã´ï´SRXÎI~¤¹é!ÐBìú~|è3„”uÕé_÷fúÔ> æû›Œs*”³ŽçÒN¹&iní+ºó¯¨å”ä)Ò@úûÏXÿî9”U„ɣБbz ZXS„³†£Žîí]×ëïÆ´Fkú«§2ýãž~Æ[ýóÐ5ú¥Ç´KzHÒ¿’Žb7Ìkã=”¨d|ŽõI"…ZÅ!WëñztV̲½^¼ÐÃuTlr¤î5NªãèNœèV ^Ï3•z¦wØ1Í&uó’ORQÆ!­ÿ„×÷bùéMüöøýt‘ÆiDÏtzº¼Ô˃b1ßvy“Q«àÁ¼¼5,p¯1,$²ÀßO™»ùœ’p‚ÊO¢Ô$׎Ðj Ô7Žé´É?²ú%‘5Æh5±VI#hõÀåëý/ˆúÈK‘é÷†øï—ï6’}Ï$ûåÕ®#E óùŠ —€Åvwûò!@;Ù 'n¥ ¿Oµ=3¶gØKnO¥é§ËÝå_ÓŽâüg¶fþ4?|1ó÷ÉyL‡Bt¶–çk†„¼B˜;†æ'@xÞ„ü„S*œ#Y…ÞH!CÒI $Q2…,©¦˜2¤Y…ê?®!.9@¸×®·ÝÉuÞî,¥.‡ËÌ}¦€6m=0ŒT2Ý«†âs~…ºÞ(Ä0ŒÕýµ ƒ‚Éî±ðƒMcˆÑÁÔPPH…žNQŠBºßüã«ZãÀ×Ñð:‘ÁËNbûU…DP¶¦JÕ:?†ö“­†¨&qì}Õ‡®5Ú:Ï8aƒãoXÉ8áh»Sdœ0•6ogÍxñØ$-#"îX©†a§`f£ó"¾¥ &‘lè!ÌœÐÑ™r;ïÅÇÝÍ`A³¤ÏP誙$n9©áñ¨3 '7ç '™Á“Ú.  ù 7œÜ †Zœ@‚àZj¾ª| NÖ¯*q \j 8‚p®œûU PMbe`SõÆI=î¥ãä]¦Ïè+&±·3ã—1N¡‚^ç¿¿LÓ»ez³,£vyœð²t|Á˜1ŽgWž!´Eq^®yY0î/†úƒŠ¥,þwqéô5öU7X:éî*ÿýÌ;ƒÏ… êÜ(™Ûl‚O¯)`3ï9PZsø¦IÈ]]•ųFÆvÂú¼ Žg;1Žë͹~}rùÿ7Ë žtm—Ê‹ˆ;&` ŠýýÕ[§ lÛœÀ[¸vú¦Çñ8Š÷F±¥LÌ»³‰Ç(Ï%̨™„ß{Ã"i).*y™Q‚¬B)dTã±>õÌ˘Sln˜ƒ ¤‡wº¼ÿ¸ê‘ÍùKZ¶;¯-;]>¼]=þû(Ëb endstream endobj 16 0 obj << /Type /Page /Parent 117 0 R /Resources 17 0 R /Contents 18 0 R /Thumb 87 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 17 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /F2 55 0 R /TT2 135 0 R /TT4 137 0 R /TT6 53 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 18 0 obj << /Length 4379 /Filter /FlateDecode >> stream H‰¬WÛŽ7}×Wð‘m¬Ú$›}Û·ìØXx‘M¼cà,YÓs‰uK;ùŒÝ/ÞSÅK·F¤œ‹¦[}Xźœ*_þýw‡ÙçY_vV …¿y_öèU©¬jD[Û²7bµ™½|³ÑâÕnö¯Ùß³—‹E#´XÜδa)<ú¾l±u©:±ØÌCû»ÙÚ”Áú62–Þ¾Î>ȇíU1¯K-wÅÜà±Å\›²—âMñïÅ?fÌ`-übZ]ÚŽÍReã¶€NEê¤)¿NÌ1m]Ö§ö°øB"¥ÒôFf\Íÿ¹<‡½XíöC1oÊN X¡úVÉöeõÒ(U ¶æõb¦Åƒ˜u]Ù( ÍÞ[Ù²ë´ÛNì‡Ù-Ehʪ£U>,:†+‚ äׯ_Ë¢²B<4”Ë}¡aÎp(wûbÞáÃ]0„ÕjQµðRô Â1§˜œï¯;€gŒyQœ—ºlÈ%¶B\_DQãƒTeç\×A lñ¶x5ã¤Vëß¬äP4Håúaó°]ò+L·e+/ÙJ:}Ñ]—]í:s¬Ï¿!¯Vìn…®¥~ûØ×ùЃœÆ‘iJF…"soA¢î4ý¤PO¹n8EçIUrzµ + +È(µ’mš7r]h%=Æ"ú<ëj8Œ,6ª¬áxYÁ–ªäêÊ”VE¬&öþ…ØÂš¾B {c\]-«1Êy¸EÃz.àKÇ XCÁœ$«·FŠLª«MË÷‡%w/#7pšêÕÛȉÛ5¨›´oºG Ú?áwTæüÓêo8®-œPc¨ -ç¹[œvkG~wsƒ†}ÅóLÒÙÔnà „ºè^TæÓ„îe/»gT‡¢ÂÓäÝs‹3îQb{òñƒ|ÿpsD[ëåý$çOŸÉ£é©ŠÿD£²èhß|ÃQ´"¥¦ŽrÛÈ8Ê‹/PØU¶ünµ:If¥T–µ1Sì¤~“>FeÎbcz\t²R¨‡nÑͳ¸œxéV_*ÔÎåóÕpXí0uÈG:ë[ô+…Šå/<…trKÀ¤n» g,B§¬!âι«³IPûF[¾3è…F†ºôËW¼|ZïÀù”˜À㉊™ ”ås왚§,ÖUïÎWFM£Ó“Çå¼—_?n6-âK6âG—µy„S6m]ôȽK&«y+·|²Õ¤/ZŒu&åNZ\û3.X\_$Ƹ<˜\Ÿl6­®‹6cFïMÞæ§l®75æÀ¸Y%oô¸ž7  ³jÓø§ ,Æ å皣c‹˜–`õl4˜².ORœ‚'ÑLÀ£ÝIÓr·¨0oX*öñÖòl*ư}ýúz½ÃˆÕõÓ£ Ki¥Røb+Ü\0·ÏMW)yý>´³¹¶é¯Ö»Õ'ñ'÷j¹†sÄHòŧÆõõLÍý]ò¥hÍ#MC½‘6˜ô;aš§¥G·t8k–îdð^Óå¤!ú3%´¸0½¸îIâ ŽéŽ>“ílN{(ƒ”4´ŸÃÝôÜF+ë’°“~G*¥M‹pÚ´©tÂ4jYz2.w¤7…;ñs<9c\€3ÆM¤SÆ!M×°¹IãѸgx(£ŒqÎ7‘NW)º*t4˜’¸?ÃcgèìÉ^óÌK¼9cã±C4giÏà1ò<:ŸÆ£õûÒ7 —Qî<®ÉÜ?œ5ýÿn2÷^³ÿö‡› î8&œ_ìýIqhì"íó6ápuû1ËÁþZ5â1iiñ8ñ8Ø_[&xÈiF<ŒQ¼?ñ-¦<-'?g "%2¡ µ\¹ãÔÁÙã4GÏÓpô, †'MKSì1” º ÄS£…APù½Z\ â5±Lb³¶ŽÖr¬®q!E ²_í¶Çýn- cÀøýpWÎâ,p<~ÎÏJQ)åøéÐ:eGõ‰Ø$ñ‰óI|â] ŸZŸ²/ÍReË&Pß™¢ºÅ°Ì]üä(ŠDIU1E{GѾSò½(*<ûÂâ»,jÜ^5Þ›‡#˜ª9h  .(«ÝeWa±ÚgÄÕ À9â:4O\‡g‰ëàˆw4–4òŠN|ø¾è¥XñÊÝê“àÞbëhëÒ+õ4œîvªÚ»Zñói?ˆþ¼u¶U&ëñTò ° ©äj«˜û)vý9¿ Ñ`Œ³m›}ghŠnEòŠ9ƒé­D´cEp"TL„ò‰xØât¼]®p̀ߕü‹8ÞbENÐ…þ ÞgöÒ=ê﮾/p »Ÿ«5‘õl½Ôr˜êJþ^è1(ÝÂ?2á°×{n{ºÞpĉvwEïHP¹C{óäŽâãàh·x«÷»»ýr³!&ì`ñÃAUÒwt~‚aØZ·Á,ñ³ÜSŸÛ1hË×}½ø–éöŠ'0ú³áßõ²Åïûëû»üN&C|šƒ¬ÚPÅ)¥µ9=É”À¶£[묖' äÙ\œ®ilǯ2WÅsk#ó"ó=G§nî´™ÏÑýÙAY¸Úüièëö&qÁÞ@‡ª{;n{‡ N»ÅÁúAÁ¤Îêêy°K²í˜œ¬"ÍÒ; q¾i.Ï,UOWZ9mHÉ^1>^’ª^g"®ÖYY<]T^¬³‘qF3ZZ&OTª³;k¹Ì7L%DãéæïÕMd÷ñÖ­¥`Õ*Òz@E^ ¨ˆë­|ª§×Z1~ºšõK‹ºÎÖ\E(^áŒÎçN±~boãžÓʺ#›éŒ|ç.+*WyE¹2_µ|Æ”s‡–\åe퇥ORÄÉÉà»(owͯoo?¬Îšö#1`XÛ&dúo4PåK endstream endobj 19 0 obj << /Type /Page /Parent 117 0 R /Resources 20 0 R /Contents 21 0 R /Thumb 89 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 20 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT4 137 0 R /TT6 53 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 21 0 obj << /Length 3837 /Filter /FlateDecode >> stream H‰¤WÍŽÛ8¾û)Ì…ÄŠHýQæt‹,vf²‰2{Plu·i»c9Ý“ÇHžx«ŠEJ¶H»±ƒÜ‹,Ö}õü_Mj %2ø[6iS‰&K³"«D]i£Åúnñüͯw‹/^­ÏW«J(±º^(M·à_Ó¤u…WŠ2ÍŒXÝ-2"íoKà–i8¿†‡t«ÇÅGùÇ}·½J–eªä.Yjø·ï†d©tÚHñ&ùÏêŸ bZèZ¥…!±²´²OÏ ÙI¬þ;G×eZËCbÀ^I3…+ãjù[;º½Xïö]²¬R#H‘5u&ëçùse¹ i~]-”èŘ´ÊpV (ò"5F÷ˆ}·¸F MìÂ¦Ì žb³(o8áTø(ÓXe öPÀ\îâtCºÛ'K7Nb«D^ƒ–¢©ÀK´Éü}e€8`ôKF~)Ó U")Ä»îA$%lÈ,5Vuåî€kX­^/È©ùDú·û¤LsÙ%¸òs×o[Z‚èEZËo x6—–Ÿ—A•©)-C+NÁþ¡øµ»k¡Jî½ÙöeÜôœzœ.ž3ƒá}9Äz iÈ•ª<*ÑG¹ºí0X’e n¿ðúp¿Ûnq؉-…Q%áÔÝ]‹»»ígŠì ÍÐÀ? 1ùxÛmíê<¿ÿúûñ©?ˆ~CwHÅÛn»é·7 ]ð¼Ø€(e9JÙx)+e»ïÄu¿í‡Ûn“Š«ÏÊ«d›`~í…}߆M~×J™ÃI©¤x¼¥9·;qØ·[Þ®!e@Ð~+î÷;ÞDQ)‡g¢O»ÔêÖ^˜mÇ·âýê·V“ÕÏ'™™¹ÌdŸ‰Ý^¥Pf⸶y ÏBÐK:%\ò¢ …ì±¢I‰}ÛãUx˜t%°Wn-xá¶ý|è6bóuoížmÅÔNJm…<`tS¦Êv‹Fy&x M§%‡ XrY¬[x…(-mli}“i¼‡×HÚ`,¸ Ve“–úB,¸VeA'SÎø%¯àÊ•øôuH) ¨úVclÒDOÓ¤ÆC–¤ '¥]¹œ« 2 ÿ¶.ýã»9O“¬¯ÓbDKÈ<0f––hÏ»D•¼Î¥­›>A‡ I †×pÜëJâ—…)ÓºKÙØêæ kžRiP<\xZ‰:Ú‡ŸÅ„kr?ZÛê̼ªŒŽæ5 ߸†>xz+²»€Õxr>Øʦ8*Èä’|ôNn ôª?€… tþ4ÑUé*-²°Bªj¦†¸¬¬cÆÂ&Í/h«r‰ºÐœLT_{8 °U³ƒìåz ÅÃ{ÐÚxaš”âÌ„ÝÖ’™9™Kàæ¼š¢nEŽý6ª'Ž8V“šåkð¥¡.YÈaMÿöôÛ'(òþ]´’ýnëmðQ”¡F(íM„©Š±€c¢rä3QGø8tmOãèèÕ)yìêt0þ\LÙ8rPf¥k£L.*rS\èñ<½Æç'ÏMü~VêpJ—Ú“ÃR×øîhê«ôY±ýkl¾¬Ô†ÍŒ€Ù‡€  aKxê*¬ß¤ô„<±I€<>d›\ý«=& W¾ú…Â>ØèL~€…6M&ïþB@Œ]`‰ÀC|²Ÿß(59îZÔBG“öTB[ÚØ&xh¸ƒÆòÐÛ­àÀ‘gŒKS¤ÅùF›+´ÍL)Ò :¬ƒ¯Ö\²Ø\XR¦ÉÊTŸ}Üzr†®Ÿ‘'Kã\4瘹K‚ÙeË|Nì8i­5Ø%L§ës:‡QD6GÈæÉaÙ ôØ ±¬ë0ÝÚí”îb8ævH^™1«€Õ+3&HÐÀTÈö÷;Ñn6{ÖÃÀsÉLÖÐ üíέå [õ+VŸ”·ª;^d5ž›2èÄ;4!±HÓ±dßÕñ‹Ø³—Ú »`ËŽ†‰-Ï^´^Ýݱ?Èhþ‡Î?)Ñß©®fTQX˜ú TTø÷ˆÃU)máí8P)<…åxølËîÝÃ2­å)Þ)ëŠÓ’æ¨ÖpRŸV¸zìÝõ pA£Û Ñ¥h袠ø"Æ‘ê“7$ªÓ¢Äªc©e‰ úˆ¬HHÏŽQÙ –:u£!èi«ÒäiOswpŠÉ3ø5š+ÂÞÑ#ìö8ég8i4jØržæ®§Yí‹)\åL†ø;ÈT@ íç¯Ý ‘ýEØBÉ,ScDÔèóh‹y2*K5–%K‚ŠÊîœE•c[sPȧYÎ2ä©N1}jYˆwݺë!3÷ "núR¨„úÞ€=›ÒH™LŒ5EQÌÆ%¥a\-<íòÀèx•'Ù<7H‘žãx.:Ey“õlˆ  WýÁ–Ÿ&ºº|)¤ªfjˆËÊzfVx®gÇFxGu rtj¤Ã…­šÕ\/×kh@K~ñÅ)¤I©!¾LØÝa-3–™‹ÝY5iÞ¯XµâzÒéˆc5©ùQ¾N°çu X\kú·§ßžÂùþq^É~·=íE•…f£0õ¤2uVHÏD½š4 uÒd˜Ÿ3¹þò¹RÈìÊ3“gåy½|Þ¾Æç§à{ôûY©¹¬Ç¤väˆÔ\õ©gUŽ|Í‚¹‚‰€ù¤ÓrŸ°SWaÝvèýÜGÈþé0sÈè•íúuÁŒ ?Ó¾/i[ùêóU£3ù¹ª !CmÜ „â@K{ä·Ú¡‘‡Îß}·FtV@¦áAè&ñз8&à€©e\£²²7P*’ªNmŸë’¦ÎæÐ ƒÕ‘ÔÊð‚¼råËÞÖ§ÙÔuÔ¬f³®'ç4Ò’½Û 7=µŽ›žœÇMu]aºžN×çt3aÙ<5,›'‡eãQ×™ítÔéÖn§t°§8—é£Qõ¤Ôc¢y¡²?-5ŠhùåY:r˜¹¯€–´1îŽáî Ëų³yr˜ýr9©Uü­­%‚ÖSd `÷âÆm^kÄIœüÚã¶Â#ÚGL„µ@k)® Ïk¹ƒhîú|¿À³”ívÚÞIúà³ýÞæeNmŽñNu„o™è€RuàæU¡3¸Õ%„ën<áæ0Õ˜¿qƒJ9ût=;«Àˆrã*;˜ët~Ìkýd ÔÆ!Ý çÏB]'÷uÏèÊX×Ýy"Ö »øo£ÝÜ«¢h÷„zRd™úT´‹ 7gÐ.Ó/¢]>kÆ™]ífò“Ñ.¿E»¥æ¢“Ú“ÃRsOp¦~2ÚuƾŒv#!Ÿtabߊ*sê ¢ûNX™SµÃôñõ0ÿ ˆ7/²t¼ØlÛÂ^ħu–Éɲ†žŸ¦ÉäûdYBu\%p¯–/Ÿ‰›Ä@Ûèì$[ènÊíÛC‚Õü-þ„Œ[Òéûn¤mþLì®`·Ú=/Äz·ÝôvÍ[üHS[’"à–©1pkÑYÛbŒ€ù£ùd™ÇÀ­eö®”ư­½…¶1Ñ<9,š'Ecèꌃ¶lµ²yÄùëŒWÛnÓ@ý•}´Q°lÇ×JƒaúýÔì £f_<ì÷…BÏSÅÃÞ±Çj ­{„»}Ü[\p_£C?{èK G}à÷5¼sûçO¨£‹f|Ö–î¬-ù¬a2Ô‡îp¯/Tú…¢OS–rн\Vbõ=SD‰sóBºØ77Z½ç¬¼Ñj1y…¶jÍ7íÝ´ EÀ:.¡_¨î¸ããç:ƒ‘}4½›¿ìá5ðj,TwÖl¶=à°îÐç¨tØ©îž NðŒÝâs ’¿mG¦ð“ÑÏ8k z¢`5½q-„e³Gˆ˜5ÖÎâ´‹n«Üîgf÷©ézõ‹3‰¦Lr>õ>“ü`¥‹Ä{ endstream endobj 22 0 obj << /Type /Page /Parent 117 0 R /Resources 23 0 R /Contents 24 0 R /Thumb 91 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 23 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /F2 55 0 R /TT2 135 0 R /TT4 137 0 R /TT6 53 0 R /TT8 54 0 R /TT10 59 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 24 0 obj << /Length 2795 /Filter /FlateDecode >> stream H‰´WMsܸ­\çW *pKC øåªd{ò&Y;ÖTrpå@Ïp¤IF32Iyvó/vñ¾n$¥!¤²å²†äú Ý×—¾Vâ¦[|]Tqi”HðoYÅU.ª$NL’‹"3q¥ÅúnqùþN‰·ÇÅ߯W‹ËÕ*J¬¶ ¥y~ª*.rÚb²8)Åên‘0ÔÞ,––h¬_C‘6ôtZ|–î›Ã›h™ÅJ£¥ÆOÛtÑR鸒â}ô¯Õ‹f°~Ð…ŠMÉf%qnU@fB⤎Vÿž˜£‹,ÎÛÃfà m‰EOdÆ›åßê®oZ±>¶M´ÌãR X‘TE"‹ËôR'I*ØšïW %vbQ–qž(HVðF˜ÔÄe) Ý”¢m[ŠÐ$..”iI«\XÔ¬ð.|–§Ó)>"*kÄCA¸l#sš.>¶Ñ²Ä‡o‹U"-२r„cI19ׯJ€gŒç’ð¹dqN.±âSóMD>È$.­ëÊïÁxZ½]ð¡¦ë?¶Q§²‰rå~w·;ÔüÓM\ÈŸ#œl*­¼Á•ÅefZsŒ;~¹æâ¸*t¼ðÛÅ> ‡É©]rŸ>öiÈꤠW ùPFV)ìIG,u©460ắ£Bö‘ÆÛC'p,6<¥¤½²ÃyÅ™ìz*Ùð‚BióuQfqÄÏË¥&LœÂÆ4f«•†03`Ùæ±~'°²JþhmÇÉ*…}"åŠ]ú[”èÓ .YüJ”ÉúÙtÍ«¡ÄÜIq¶¦C¬è‘bõz×#X8×?N¼U:M2ï’Ê«i(^v× sæ›2N_ðW¥h‡Q9eÐc»xÖeëh>6™«õºé:Ÿ‹ð]Æ”ó¾dIWÎù¼ŸN˜·:ÓÔ{Ÿw´Lâl’ &¥vô”WW³£Ÿå[N~*c#»5ÿ´üw¡Ðä}2Ïåîx¼$µdEJ£(`ƒ¦˜³ ó¨rÍjHfF]2ð3¹_ä~yÃ;^>Íàt²Sxl;>”Ã:«~,ÆÃ³6+]ð…é`“óA…׳6·~¢nròÏZ] ‘æa«xÞê‚ôŽ¡Îè6}Öìaƒ ¶Û0cX¦KöÙ ÀC øá$¶è˜ÂÓ£lžÀ“˜ÌÀ£êYá!2ã» Ì@Tá/'z¢îW€*è"Iä'{Éá5UÅðúßã…¼zcßÿr!Ò¬\‡üÖlD½þÏáèÖžöö{³¹iĶ=ÞÙWѹïõ7·°‰m‚ ]TŒK·èg¹º…d”.qª\ŠížÞꛈø3ð¬{æD-šC?]M–°ü’HýœxÿÄ#…à=·vAc…Ö›ço¹ìàTgóv®¾sQ¬†(V6Š¿¨_ÅŸÄG'ˆ‚qÚ7¶£Â»¤ŸF°Íx %@ Ý#ÑZ{ÑôÄ¢}Å‚×`S¹…k&TÅèBË¢ä³g0rÐ0v9×Ï]&Q¿ö1‡É“Ή±œÁ>É 7Ávä„ûþ0·ÂÏá’Æ‹¨ B˜Åyû9î*,`Û€ÎÛ6Ù! šÈ먔‘¢ÚÄž Z+y!"û[ÎHÈÙŠ†žŽé$ˆœµ‡†%ÇñLJ߈/`½ø&‘ IdZRgè>¡*D×[j¨)Wd­¸Æ´%WTÝF^}¢IPË•èvv™­Ìƒ«Ózo¿ŠMãŬýÃÓ&êÓ± 8õ™UŸ9õè#+ËÝ?|´¯NÆú ÒOS‹UŸA=ÛCSmò"×þá¼[€]úóçQ7`phÅÓrgØ\ñ„âXÔ±á ìsv~³'¬V³£˜#>dô¼ÙÞ'.@‹ÄáÌnÆ­î)>˜6ÊçåÏ–SVÔS|òš¡šr{öÙPN¸°TþU„„òutÕ~ÙõmÝ3Ÿå«|ìú¹›Õ–„æSeàºEmìzŸ®éÅé¶9ˆþ¶ëcÛV:bÁ ]µ˜ q£³rlçÅ´ÿ•ÕùÎO²qFvP>¿Öô¨¦A`J» a+¤5R8ÄSÛ'/²Á‹ÌzQ‹ëÕ‡Hþ›¨B"#í1+ íÉ,”g8L.¨|rül.Ðzq€ámóõ¡ézŸûƒÑKoµþYm«}#îjènŦÝ1¢ ¥éÄõÛ+që^w–Úc¹¼µvÎ?žñA›AYZ–×”:¹lçâje¼…ye-d³*;A¡S.#æj˜˜*9ž¾ßíüËcÎçÁ¿|ðÏ%/jÍɱ=¶âŽòiwØÙ¯\¶w.£ž´œ¬,©¡zŽCƒMÇá¡®ãà`Û mw}Çk6žñ£kÚ_ó‚Pž¯=G™âëæð©ö9ùó'É)?ý5ÎÉ ¢ªJ>Ò)~>^ˆUKµè¶åmDjWÜ·GZOC j˜^Ûp·èºÙ‰nš*îÉs*{×Иåæ9§´”mËC ŸåÜô·©©c(‹´HÓÈ™–HS”á†J"º§~ågR‘?þ(ÐÔ&¯Ý–5­]»fèÈÐÝýW8kVIÊÌ5ß ç·Åƒùmáp~¶ûüvÚÃù0Þ»ßu˜&9XINF”Hxºµr@­Ò1‚¥üD.´ß†¸`]!ûøQmªÑG_ûà=¨²‰DãUzo‘¶Œ3óÆÈ=ñ9Ô=¢ªØ5VF ]ÜON¢ò»óÏb`:…õèxhÄ&6LŒ¤©´ŒÓ6GÅÝ͈Hh+nënØ`W4¶—2u-Ð€Ž¶íüž´”ÏDÇãÆÝ:Â|‰øk:Xû@ŸÑü'}ÐäHÒP´`° Z8Ô-ìÍ®:ÍÁ0{ô))G6U>BÓ’;’Eùïÿ‚Ú€8ÔEd„§IÊ‘ç=¡áJà lrvz‚OB6'ÝÁ!éÉmÏ ¹“Ә΄ÍÃñ/À³—B “R¦;¶*Ó¡* RÚ‹Ôû‡æ•H~âr'Hlö&“^<– Z—|Â}yuÊE'?k0=ö ºcÝ‹=Û-W‰]_>3¯ÊÖ³eX÷XO«t2’ãáZ¨[ê³™î·Þ4“ÿÚKÐ@gpe…ýF·]!»¿ÓØ©n7|Ëd¸C½»Ç4öe·ßõ?ó× ×ö3iß§Ï9h(•‘D¶¦«1ýŸCq˜5F#9&p†6&¸ûxPMiìPºXʧ»çñù S<ÎyÚ1¶Ê„[¥ìn{œb#Ní®ï‰ÐI´G¢Âà Äf)lØèêâeÑp¼~vݤaVY‚ÂæèºqÈû.«F endstream endobj 25 0 obj << /Type /Page /Parent 117 0 R /Resources 26 0 R /Contents 27 0 R /Thumb 93 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 26 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R /TT8 54 0 R >> /XObject << /Im1 56 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs8 57 0 R >> >> endobj 27 0 obj << /Length 5640 /Filter /FlateDecode >> stream H‰œ—K“Û¸Çïú8’®M€à+9=[[»•}Ä£›½ŽD¸¦Ä IYÉ·Ï¿ PãŒã²kH@èú…FóíOR< «­Ê¨ÐRÄø·.£2eÅ:ÎDžê¨Tb{\½ýù(Å}·úçêÝfõv³É„›ýJ*–£,£<#Fq!6ÇUÌ?õO«5h±Âú-6RšÞ.«ÁïÏõé}¸N#táZáÑ×C¸–**ñsøçæ—U5˜Â/*—‘.X­8ÊÌ`Æ„ T¸ùËQGåi”úú°˜!‘(–ôFj¼_ÿZ cÝ‹m××á:‹Š@@‹¸Ìã ›¼UqœÖæÇÍJŠF¬Š"Êb ²„5B':* º.D_¯öä!Ç/Ö•IA«¬[ä쬘Lø\.—¨ƒW¶ð‡<èC uê!êúp]`âiR„±R$9¬ew¬É'·ûË?Þ(pKÌqI£ŒLb-ćú‹SLqTÓå$ƒæxÛܯ8¨‰£ý}˜FIP‡BÙ6ÇæTñ+T×Qü'Dd“Àðfd©u´¿!®¹èöB¦‚ »­ïÓ¯»É©Lrb’vÁC—…‰B†´ —{©£'x!á…ûÚ³4‹T1o‰LÔfË8JrXàüu„2å ÙøÌÆÏ«’(W/ aM’ñb<’L›üÍ”Œ“þsüè0õÕØt'¶åÅj1‹bvA0 X§©x:sæmK IÃi×|Sa¢¯#D_R<„b½¦XˆŒHf<ê£À/ï»Ó¾y:÷aéÀ*L ñ¿4N3$É"f¬uLÎBnLÉcj nSc‚Í¡F%ÁJ¿Hd’4ÅùY¦Ã¢’HYšJ’š•f'5ÙOo\F¨’©@ ‚©„’=ÇÉFÊ} ÛÍSœ‡z-’tRp¦uÐ7æÇªµ‹v•«Brœ°óvÙ‰|«‚Z| P®‚û»O!¬ :íì‹êêÖ¾t\bU°eøçWè0K’]ÿ‘«Á´Ó¾ëo´ä0BXg‹¨8¹’_}uöu?Dw×¶bWi¶pζ;Ñ žô¨·c½c'ÆC=Ôb¼tbhì5ñ–H3»°¢â]-YPƒ8ž‡Qª/µ š*v}ÕœÌ~О§XåÍ«f:«™5·]ÛbwZ}ŸÏ#Ô¥„j;V0åÝSrœÂî[qGáL‚ßîÅþ|²K¶a‚)Nófõ¿ítÝo›Vaú±¢mN0ýÒàu^ƒ+éTµâùܶëóóB×kÝ¥K³ $9‰‹%ιžnbp_édb®srußÛ¨-ƒx¬ÇKmÜj¦NH^{]Î)W‰‡–¼<ð¥•RîÛ¨p·,x°£>¤ÂкóÐÚ ÚõâJ7C¤VË€Äû öâáþŽõZØ:RòÑz‘á)× e K‚5~Uίk(•‹É±ž!KÁÍ‘ø±Ú(õyõÕȳ…xlÆér2‰ÂÙCÎ4^@ЪY³ScvbÎ*ÓºígÊä=9ßðÅMù1¨Y7ÖY³Î: =›Ñdùðׇw\“ÙædW’v˜áD86#¶}Ó¶#q‡n?ŸºK[ïfºtaÑ÷8'ÝéMûû:Ëkb:ú”grwgýX?b¿N6¹ð\*ÉSCu|†bwîv)ª-Ùthx‰™9bèàžáiø¹évÔ?Xp°Šƒ¿‡ë„E­õÞ<Ñÿý ¦L{ÅלˆG.9™Qœj½S³ïÅöPÍ>æÃn¢z]Ïf²9‹Pp•¹ˆggŒ±Sû@“aš £=é@rá{„cêv'æ8R™Ê‚ê±­¯œÊ6ȶkûÆÑBÂjrç¡y %bI®íC¾/ËþÅÐhB÷„¢–5¢…¦¶#±BJGâœ0=4\ñ¦O'ÛŒ.‡¦~ð ”®"òÍi4ëi£çPòÓÌØ¦{‘CSê˜Á‹uÕ¾™;àx$Ÿ~ †‰±¹û°õ4ÀìÃæ÷?p‘+í}•àÂ>…‘¸:vÑ´`ê[{®$•SÕ\C“Î š—@ÙO%*¥™íYèMª‚dñK ÎrO‰î3Qþ¦êºët~ß ´ùeÐèåº-½µ!u÷¯wqI’Î 7ñ¿ÍâéÛì·®?V­96¶Bèà‡¹É™ª·ÁÝš£‘ÇãùÔlMo‰n‚nÇŠÀ¾;÷â¹êÇáo/G~ mT cêHb¾L‚ES]òë7ËÜtl©Ù„k*Hw¦¶|àeçøPR™jl/öt²ù‰ÄRAkg]Oµ™5K0®óiýh×O´Ž*ª]oÛ2ÜË×®ÌM…ï5:–s°d6޶š´'ó©#¨v;t'è1ÌâÑ`ë?ZGýšŽÉ÷èÈŠéë¡ÑS×Ã_)£ypiâ»2e“2¤[ÊÖ¯«¦¿G5xj*’„¸·â©>Ù8÷ÎW‘¿q0§òÙúð^~ÁË_øîÄA»‹_ÅÇ?c±[I‰O‹B ¥2|;%¸ ³ –ïÞ¬¤.P¦Ÿ+™¢I£1ÄðqØò„ŽÍNmëI” o–RÀd>M]Œ3a0K.a|)`rø1ž´kyœº{ß`‰â R ‘ÌÆEáB–T‚xBÁcá„ åùe‰eŠ'uD±Å]ébhBz~YrYH&2Ç/4ÖîÞ7X¦¸B€à·Ôñ ¯=È‚JO•p—p5È™(^ÄÅ—&Éf« —DépÃ%Œ/ŒŽMRM&9ccÒKOdfâúã̃,©ñ„’«gƒ0Q*× %–)ž0¹\¸—’»ð0 .a|)¤¸Ó“0VžIK,S\!@(3 ‚±ïÜ%• ž ¥2VÏa¢Ð®AK,Q|©ã*Ajzîu' fÉf!%óO¤´­… RÌK§­S¦¯ÓØSÍ•˜7ñ„A¶¸g•ƹò ùÁ¾Aôec¯NÑM9;ß`™âI“(ý.Þ©ºáÆ—&S‘vý‚qâ™´ÄÅÙâžU§dI%ˆ'Dr޲1È™(^Ä2Å“¦Lf« †²ÇóË’K_Š09²É1É“–X¦¸BÇ•FC¨¿ÐXû_ˆ Ú$ádMäná»Á2Å“©é¹—&råa\ÂøRÀ$ÊÜF“IÇîÞ7X¢xB€ 3¥SÃhì¹á†JOˆ ¥±z6™[øn°Lñ¤€AjúîÅDêùeÉ%Œ/E˜Ü´“Ièf Ϥ%–)® ÈÌÒõK/œ»¤Ä¤ÐÆêÙ LhÏ/K,Q|)`š©ÛöÑ„ÖfÁ%Œ/u\¥è^ Ç/4ÎÝí Š/ˆÊ=¿¸c†ÜP¹‘-íœBBšFy=µËûÕ»Óâã.IdÂ8•!é&ÎðŪ.Sú¾Å—éÓežÛ\þö–'PÊ…Ñç‹.ùc+¸Ë'p©Mš};¸”¨ªž–w™¥)|5ÆÿMÅ€öiéDS¥½Ã¾™†H¨MO´ÿR^6ÍqãF¾ëWðHnYZAð([¹$N²eMÕ¼9Œ-j5©ùHiFQí¿ÏÛ €Dò†ª­ò ¾Ð ôÌàKÊzšAƒ•Ñt¤YêÈjšEO•ÑT¤¹.´¸«išœŒÖEÚ8†\¾š6RÎ/‹Õ_–/¿°îì;Dw0Úýà~­o?ÑKµ¯ÿÆoTZA›w’Æ‹T¯ ;Þú]¼çºïB_ Æ35;¯»xϵu!¬¦Ù>?¯»xϵ³¡’®¦9•GÍ]¼ç¦Õ![¯¥™¶Í£æ.Þs£ºPÍVÓÐÿø.ÝÅ+o´ ]îj0ž^]žO:Þ~ÓÛPgVƒ{I™wïÚHC}ßÙœ´WþkýÛ†®ù§ùž›±}ï!¹1»Ž-ÛýKLä¨d\Fí¢R‘ŠÑžGÜ!¡)ªªÉÇ~‚+×"9,u éX‚ ®Ž8…Ö½M«ŸWCÏÂ6Å`‚Kõ‚ɸ„‘*Â(TÆÙœ!¼Ìfsr(3 Fÿ€Ñ¿2" ÈÐì±ÙL°ù³!9”REçSó‚q¾bΘœË¡×'öžGJø#‡#‘ÀÆÃc€¾ €œÈ€EBŽ-‚¢Ó äPfÕáJµ½¿tCFø#ç“©3x.›C#›î¾€2c‘Йh0}‘¶ H€Î#õMôé¾ (3„ ¥ƒµƒ .ˆ &ãFªÓ{®7£Vø#‡2c‘ »h0}¯C£»2" ´ |š…?r(3´ |”¥`mÄ`Âä\ÂHa”ïr½9FÉH- ÌX$£Áüýè»ñ ŠØO%ôÚŸþl&¬0$‡CªÞ f‹˜œË¡ƶ>Axs‚E¤Pb$„–Å0’͉ X$p!ÍEC¬ó)x6$‡2C¨€zŸ¤g &”ðGÎ%ŒTfHò)døçPf I>UNÇBßãÚ:ÊØO$°Yà;ëÓËlHe†Í …lÆ`B^³œK©"ŒIó)¿Rsr(3L’OuÛEƒñ3D»QH%Ð2ði¦û. ÌÐ2ðu ÙŒÁ„H}—0REå„7#©”‹„.Ìßþû ŠØO% ëûë%³!9”RE˜PÈÌ S_ÁeŒPfô ›ƒ‘MO¢€2c‘ m4˜¾ÇÈäD$8ø4!zÀÊ '_›PÈfŒ1²œ\ÂHa†¤½¤‘ˆÔÊŒ!i/5²v¿ø£×ÑW0±ŸJÐË|J£ðGeF/ó©¶Ê'éƒ -ü‘s #U„1I{I#©”&i/õÐ%ŠFJø#' ‘ k¤hB äPfd”FS/ò)Mˆö¼à2f”ùT;å¹Þ´øNø#‡#‘À%ŠFVø#'2 }jtô1„GKzºt"‡#QyCÆA¶14!ÊÉ"Il‘*ÂŒ>O{s0’áŸC™±HWýR Lk³|šH%p2ðiBä½Ê 'ßt&}ðîyB˜_p #U„±>Axs0‘Z@™±H@G¿4ü42`‹ØO%èCš‹†`¦o¦Ê ¡F‡B6c0Ñ ä\ÂHaL’Oi$"µ€2Ã$ùÔ £_~_E€)b?•@…4 Á§­ðGe†P&²3†T9c2.c„ ˜¾Kò)D¤Pb$¸$ŸÒH äD¸$Ÿ´ÿ"ðiÂäPbHaB![0V¶ç—1BE˜Ñ'oŽÍ:ŸÊŒE:ú%ŸÒhþȉH$²Àœì (3†,ð](d3"õ\ÂHa¬OÞ—u>”‹€Q'*E@ÙK¥ÚGE=sõ<]}üéªÃ𹣇µ´ÁŽ;nžØóľp´¥TâÂ3aœ[…fJ¸£Š’á[X¦¤"ÜâÚ6} F“z'‚‘Æ„dT~‰9Œói6(¾±fƒrlxˆianC/0TÅ„_r.¿_„*yE“’±7)Ǧ¯ hÝŸÔ/( ­„dTnûSÑayÌ%îMlx€$*j¸ÛÙjë;äV^‚Ë=·P%í0inÔãÚ6íþƒIF þFÆNB2*wީ谴ijA±§Ž+ØÐx·Â Üeá^šèÒtRp¹_í3÷Æ6šÔÙ¤›v½Ñ$ti=JÇ’Q©ØÃWþi€Π'éTuÍÿ¢3y¼ú¸¹B6Ñ®ZüG·¼êZ¼k\k!ªÍá _·f´ÕæûÕ×úþSsmoúúsó¯Í_¯þ²YøJÁÿëø¸ÁÌW( ´°w{;cÑúаŠÉ½%ï©„°-m¹îšÍ¿™8šð†XGän.#Ö*ÀT§B¾ ¦pë­Éa:ÂÔèsèJ˜Bf,`&ÂÌÚãu0Ü;SÀú³Æg±•0K1‡ÙsÏ\+aŽê^"l}Y Cò*À˜îì{@wý0Æ{o.b]< ÔŽr€!×w>âþ~ß\«îf¬?ÆØ˜m_»‚MذXÁtƒ_â3–À…¶Ë–½ãiäÀÞþiøé¾ó%t%©l̉søië|ðf‡˜ÑÞ?Mo9³†·£+`1ü ’§[3È…ª€Åð38wõXGõâGág´óEs%L#°~¦·¡ª¬ƒõæˆágýž0ˆ—òbøÍ7wmphåB¢_~³íkW0}6¼*ü~Þll…Õ¯À$þ7¶!€[J×KtUdõæ§ð”*( {ó_QOuÒºŸð“æ²N»i{ìæ»17 ji­nHuÝU÷›ÛRý…ÿÝ4ΨÎ;ŒÆú÷cƒõvÏÃêÿ€Ìˆ^Ïo€—myñ/ÚÀ¯Ô ¸ú©Áï¶žŽÕåiª¾½œ«Ý¹z|ž¦ŸwûÉó¡:LÛãîø{ƒÆ§®Ž§êÀ®tõÛTõù2=WÓwaöûDéˆ!±½lëY~€/éCùżƒßêoá‡Ó婺ÿô¹A £`6&ëíñÁÛóà7œš}K¾r›s[íwÇ©éësÓy‹?ŸMVO´ÓËvˆ|¸€þý­áß?ð ,Eßè_X8ªï4s¬vÇÝeGòo¼DuñŸð :?NA“ÐsÖ4Š87×#ù¾| ×vÙº¸_6¸á£_öø¦¾©ng/ø6ó›à…@ éœq ûÕËùe»EQ0üÑP:«Ut>¶Æ~Ÿ›k$òzz¨.§j{æc¹¿þ¶»| c}˜áÚúÁoÞôK<ñ¡™úúrºÞŸ^É ÚÏðÔéXç=ûCz}ÚíÁF³Û!7Õ|Î8-¬23oü*ÚÃÛaGÇÓ%Äöä·û-Xã?åÛE¸Â°ö¶úØÐÕ¶:†‰É7ȯÕÃö²…ØûcpÇóM²ûÛêËôŸi{#ü¶°ç­ßjºÍÁoSÓ6_w—§ÓË¥zÜ=Ÿ/•ÿuBüØšG¸eÛË.Îø¯@¾ßüóÊde_gè›jóÙ­(Âþ°åh}9³§°ëÄmñQ?ýo¹¹¥y™É@_« W`1ÔSœ“X–ª_ÔÍž© ʼn¹© Hæ.ƒ&À¼ hIÀMg endstream endobj 28 0 obj << /Type /Page /Parent 119 0 R /Resources 29 0 R /Contents 30 0 R /Thumb 95 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 29 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R >> /XObject << /Im2 31 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs9 60 0 R >> >> endobj 30 0 obj << /Length 3270 /Filter /FlateDecode >> stream H‰¬W[sÛº~ׯÀ#رâµon|ÚI§=ImÍä!§4 Yl(Ò%ikú7ú‹»7€”d'íL'ž»‹½~ûáOF=«®Š0ÚÀ¿u©*6á&Þ¤*Kâ°ˆTu\}øtŒÔ]¿úÛê»Õ‡Ý.UFíö+Ñ-ø)Š0KñJœ„›\펫  O«5pÛD@_ (ÆÕiõM~¶ÝÇ`„F÷Á:‚ŸÁŽÁÚDa¡Õ§àï»?¯rPƒ¸Ð"ÊLç¤Ö&LYðÜ ;»,Ô‰²$LÎõ!5`¯„ƒ+Tããú¯å8ÙAUý`ƒuæZ›"ÛèìÃöC´ÙlióËneT£Vy¦œ ¼FÅÛ8ÌsÜã\ vµG -ì"¦ÜæH%f1Þ,@ážðMŸN§°«T`ÌõPÇŽa?ë6žœ"ÄÖ¨m¯TE æX£M®å›¯˜ý²!¿$aŠO"-Ô½}UAzæütãî€3XíîVäÔíBû/C„[mƒ\Ù6Ǧ+i ªÇa¦ÿ€g·šùyLæ 3dubñ­À¯¹ê÷Ê$ Ý ïÛ'ÿ‹é³ hM/Gƒ“€µ[¢âu³â0Öü¿…W åçu7©i(y ‰õ(”L¤êÆQÃCs]åÔôúM/Ø„èÂ\hG¨˜ _í‰ïQ0Ýf35P«©W¬Ŧ®™åkÃÂø ‰Î4á5ñnº3ñoJÿ©„ß~±øpmBðŒwÝÖ»n+ñÜL‡þe×´¶Q³x  V€¶«_F uö ¦»ß-“š¼Ž[è­íì8á¿; ZF«*à*b€û {ô zíVóVGÛ’YŒžxsdBÞS»Ûû¹×G>k •ét@CfŽ'Qà[<ƒ5 yl&ÕtóÁÇþxdF]­îƒÜk%¢f•ˆî«fT#SLÞ4ç%lãJX ,Ñš÷wªÔW.b÷Áz þV È¨ÊÁ·)TwêK-®HÉàÏžeKT|ýõIõ0Xÿq*§—3É jäý— Ú`À´Tµs|þtöF•bÊsÍs¯yΚƒº÷ Q9ÙZ.4â' î*'”†Úêú‡ èK‘ô¥Øu^¹R`©Œ]-ˆæŠ¥Ä!Ex 7R-”°T—¯ôcÕ-ü&º®!È >}m1«vCÙqb{h%¤é›]Òé‘Gaù®9»D>°Õ¾Á$†J4N¼P`Þêh”k´KLi‰ S—n¯ä=¹-âDªA1.äVíš™‚¸ª#1+§%¼N_\W÷_1­Q)»Ü¸È¶Ìg[&om0ß±¬Aö)ŸÁ¯VT °a,•¬ô½Ž"{Ü:ÃÓ ;[¨~íÕt·%ºg£Ô;Å%=A¿£4(iG)-%×–NXâϽÃ>¾ï—Ï]+ÄÙh:°ÉåΛÆÎ$ܺ`éú¨™Á@NñŽšLƒyæÌQöØëâ2+ ê;Y ‚˜ÅÇfšN^úØß=÷æ0ú¢ ¶žš¶…;>÷g4 !6=F´©ž^†Ám–$cõ½ëO­­Éñ1Ä(")-}ãéQN»çŒhaC­àîVµ½PT9ÑnÆ=W>ò¨[*ÜÃGjÀ¦jûê» ¸ó˜ÔI˹ÅØw#Ôê‡õŸ¥$ÞD KùµŸìï1KÜcü&ØK°»Ž/ÏÏý0Iú™ ¾–ó ÄðGg6¦ÄqâEá¹pu_Э·ÃT!=ò“Í!ˆCI”áä‚(~ ?e—åê«2ž€š÷åдÍóøæ dâ p1´™8ƒEüãIÉ–.R"|>÷¤¹)9Ÿ}Tã³­š}#ž)XFµ‡N~„JÕv"4àŽ›vÏᤗΘñ=/#0ýÇ )"Ëvƒ6ž£va4ûOaKæqÒ@y5hÜA衊cAØ…½ ÁhOH80¥†f².G¸Ü=Lø¸¹Zž¹é™ÖŒÜ=Azÿ&`w8AWÚ,:žAÆ —!BnbõÜô6|¤]Á IP<œœ( ¡\38V_ïçžr ªZrÅqZ:ü†–{¾ätù1œM‹ ˆ/Ï)U–Ц…ÿ ÜfàéÔ£ÀlFùæŒ!’·êp6uˆ^ˆø€¬'_hõMLf>±²ós¸M Á£>¾‚©`Ÿ» ìòRqó­À"û—‘}†€N¹á¢ídI9Ðð9llÓê g%¤Æá£µ¾„ÖÒ™gH_õ F ž"’Ch“d…;PYcÁ(ºr=çyè+ `¿w’Öå.ZÐd×=n‚b}± ùû#§Ç$<Ó6ÃWÈìuÇ ‡;'@+YP‹ÀihV)ò›1˜†PýRò¥ê²^a2‡°Ä\^£ÌÁ'xIƒõa!›Ûp¸ ƒvJPVEdËŸiÆßBÚ~öÞ-MÙaîÌÜ•žàÕªÅFŒ§Ÿƒ®ßK,°Ü;ÎÙÍ4’Þ™-MÞâãRÔu–STý ÆIgbŒ*ê£Ñ"¦.GE>?yC”š ?Bß'† s—J›Âç_!îÁYÂPiת§ì(dÓÁ‚œê<îä[ã×PÊmÞv›O‰èÙzªšÇŸŒÇ£o…Ò>F¤t"ŸçÄ®nj¼0+‡ÉªÎž”AMIÐÜ¿Œ¼œˆ¦ŸŠEÀ½®+×§€JÈžcöª‚—õc”S;Üø}yAj‹­lC­:ƒîz^ßjëv¤\rùºQuh®ë…#æS:ý.¥ÓdY!ì®T˜ ®=+‰rJµÕ3ÀoÏ“D–+Ï"΃¬ho~v¥xÈ5‚lÞ—I·ãc]çŽüU‚SsÍ åŽ§õÄ=+J€LBí¨èSˆeS,FúóþT=]Á N„ÖEpä#¸p·n‰ÌÅo„ñKÑQìÜúah½3îz€h4œ52DA.óVÊ´ÕË@·ÿCáÍ"sG@v‹Ao¿®Y>¾=Ë!ìÌôr¢GÄ;æ~9ýs/”@œAïÒñdùŽ›Pºpû êôÈÑc¹^-‘›`NFl5Müö`ÄÆWø•œ£ Ò.0ã s"$Ú£K§Åýkq÷£vYg´fBAýjô̸#½IÇ+áçu=õÕ)•’žð)€1 ÖݱV{Ê×\— @±°ÄP@ÞíjYT|\R#šxÏÑ0*ä›JθH¤º”oH/OöÜó 3åöÈîﰨ›pT¢#ìX÷‘å ‡ôÇPÕWÖóÀí-ôÁ ÷Í<¥½]¨R÷°³W×g+šw­˜9[8|ÓR¥Iø ª•jzÃ¥öªòÎöHôQÊÖIÉ–RŒWæ9@|£N°€íÊÇVˆ‡·€$\/a‰Ó²Hça(ûòìø³@$‰ÿÃzÕì&á{Ÿ‚£&bq‹Çz7©/€€²É‰€>GûÄýægL/=±ü 3 ³ßÏÂg™·Í^U°¿ °V€äÑ£–pó=>E‘’Íwnä˧9Æ9W¨ÌÛ¦ÏlÓ·ÌÙB$7Œ”I†^hýØJ»£Y»÷h÷œÆR5À¶ <}âOGš‹æ¯u(&o:ä¨É.Q(+ ÄÚ®J¯‰H¢ðò~¤ƒd0’)+樗>POu%‚aPHuñ óÎH`VR$d׏ބv>y¼Cpvð”Ra”œ®trèÿÅtF1¸8Mçîa:ÍÄt5ñ"a ßIC½|r 17Œ2[ÆsZ;¹ñÚlF4Þl"_à rôðY 8“âÞ±Jd4Îå*pdz¹¶r‰|ù@á)`×õÐØ|BDìÄN´WÈÃÄÑèa.ÝL“øFžâÕû> stream H‰œÓù[ Qð—,ï¨Î¤HæXºi$\IRJ“½ˆ„[)Ù·DÊVDdI„l![ö}ß÷-[øwœ33÷vuoÍ}¼¿Ü3g>óœ÷|Ϲÿ_­Z»ç<Ú´mç–kBOsç儈>Íœ¯;uöïÒ² èŠíÖ½GÏ@KË.%¡—‡iÁÌɽM„ôABCµaß~ý{X›sÂØ>†³Ñ ˆÁˆ‘C¢¢‡ºr1±,:Œw§H„H4~øˆ‘.Ü(æ¤ÑcØplÑJ–äÄqMÝø$Ê_M˜/[ɉ)ÿºÔ86 `²$‘F9%ÝÑMFõéé3fªÄAΚÝèæÌÕ‘æedÍGâ(³slnÝɹ¼%Ï…REÁ‹t·x‰±..]¶|yå*EquÞ4d>[Ö®ÓœD ÖúZ³´ó(Ú°1mS!lÞ"jRÍ.†’ä­Úgª°­Ôq{ún7$î°”íD~ Â.W§U¾[€îÙk¬}LÒ >¼¿òÀÁ*;+:tXžÉäÏÕGQ,8`Í9Ž鉓l.¼¦æÔé3TOžÖ¦ê_VŸ=wžý\P´8ðb@Ý¥ËT4r§µWìW\¸v](l#•Ô8&Ýpèš½ºi;ùÖm¶ ÛÅÀؘ&;ŒÎ5^©wØ?ðî=½? ‹jÅý;|À®¤»‡N™=zlkþI@º–4> q×úL_[Âçìéß »:†€—Š((T¼â·_¸rUùoÞ¾{_·¡,ôûàÚñª«Ó~R>JÌy5ïŒú©ÅÛÌY>G*AÿR—ùEewA©Ï0[öë7v”úpÓþŠ…Üï?Üpy?KÜrÍTƒsýúí<÷§á¯¤#²Q endstream endobj 32 0 obj << /Type /Page /Parent 119 0 R /Resources 33 0 R /Contents 34 0 R /Thumb 97 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 33 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R /TT8 54 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 34 0 obj << /Length 5604 /Filter /FlateDecode >> stream H‰”W[“Û¶~ׯÀ#™©h@ð1±;gš¦÷Í“YËõ*–DWâf'ýõ97€ ¥6íxÇ"p¾s¿ðÍ÷Œú|ÝükÓ7Ñ¥áß¶oú zÝh§ƒê¼kz«ö§Í›÷§V½7ÿÜ|÷°yóð”QOc‰ ~ú¾é²8ßè¨NMG—Ï›- i ÷÷ È:|zÝ|¬~ú:œßÖ[ߘj¬·~.õÞÛô•z_ÿòðÃ&‚„B¶3‹¤–n‹Lp•­~-Ô±oüRR(ÈÒhƒO¨ÆÛí»ë4\Ô~¼ õ64±R …î;]uoÚ7VëV‘6}ØuP››  °F¹Ö51*@wQ]†Íz¨ð‹¸²xKÜb²[àF2ácõúúÚŒà•=øÃxu© ¨3\›ñRo#>'EÖ¨¶+UÀ[ôÉ­|áðF9.šâ⛀&‘êçá7U{ Tº‰lºI<ÀžÞm(¨m¡ý?.µoÚj¨„òx8Î;zÕ]ÓU¿×Ù¶b¼¬ƒñMô Èê8‰=A\{5>)ã†ìßûÿÇõ­WéBxî¦lÎHlˉmuJ=~JX¡köb#®#µ½g¸|à«V}{ùt¨ÛÆUÓ¥îÀúÝt¨{xkW!¿¸ Ÿ÷ÃãËe`§Ü-«$×GÌgsÏŒYkã’Öü”¹•‚ÉA#µËj;P®mjÓVF½…¸ùêI¥8ÂK¨ö‰]õ¥¶ºR~?ïŸ/L?×X®‡×FCpÑJ¤b=£™j•…pF¶ªèXžÜ%ª‡çz¹lò†ZA€XÇvÕ Œé¹ÜHÓ6'›•f >½\Õáªvjº¼ êôr¤Žq<œ¸Mà…éy7©Ýñ8¾^Õ ÚÎj<_šFõi€Žr>SK8OÃ#û: sâ}¬Æ³:L õœê}m-TüSÿ«éuTØ 4µ"‘4‚ ¢š°mºj¸\ÕõªN»ó0¾\“ÊPq=Á@š02!¢†Óe<‚þö°{÷_XÕ‡o¤I%7I‡ é„xä) ‚) [µ#u§÷õ2R–C«õ8€ 7 ×$”-G±Ìú¥Qß ûæå:`˜XР^—ᑞ·úíßß-õÕ}ŽkÏS$ö¤AÅm-ºûvʘ¨ƒéâ{+¥þŸS+Böa"ûÚÎSÆ„ì±4e° † âTo¡ƒTŸÏ»#?]9ˆàùçtVG  ±È11q”×ãâõ5Ó|Õîœ]ÞÀîÝÓÓ€N‹"Y%ä‚ó›0쇗ñLÑÆR'‘Cb‡„^é&¯¢¹t5éË|‡7 êú2<sòX|`þ'˜û^@œÿâø[+ùW‡2¡¿A›¶ÙÍ™LWûäâ­ßf'í‡Kz wmõ(o+ß® Z¦¯ÏéëSú¾œ'È\JÝÃEAãQ_©³tÕåÀÕì«ÇFýtÞ£…2Àj«ßûa.²/êYNwtzUŸÁdª ñ¼`%I‡ *îxTÏãCÞý™/ƒ÷ÞR(<øÍjb€ÒV‡óÊ¢˜-ŠluÐë´›¦¸‰z‡Ï’Îå[Гq=ƒIºgý1õî%½`ÏEj[Îtì Xúéw¼%zGÒûOýOF‘&Î[hŸ–Žz¸ívq¤“ëÒ%ê¼@CÑw‚óz˜ž9Bxá8ž9$ÃuZ‡úZôù¥=Š£| ÆÊˆÕ"uGre,„RGº¸B<»>Ëáx™PX4,Ö*VM¾^N`gãeïçïááxøUAƒµêU­~TÑꈌ—ö;H‘ÓÆt8´3áH„Þ2VÞã‚…Ÿ¾Ys 4è !Âç r¿uÚ€Ÿ"÷pfÉuÚØÚ»+`lß ±„YãÌŠ `¢å­=e#T,„ßà"Ì’ë´iaùéJß´öìÒ†\€Yq ¬/}ƒrE~ƒ‹0K.€oÄn“ f‹.–è¹ZÙ"àB˜ãBhlïô^„{‘À9pÏaABŒwP‹h Ó팒¢2£¬a‹hÏ0·lQŠJ’}[;›”–QRP2Ê µõ "AË¥dÑkÔ"Ò٠إ Ä»°è^(zCEßFUO! …-8Œ‚f‹wv.©’Ï;Z=çsØ \qÞ›¦µÅ9ìm¤U>‡¯[Wž^!ßj]¼ƒCµi¼-ÏáÛH—瞃ŸÏ!ñ ùÖàYœÃœÑ®<¼R>ìæ®”o";1[ÉŸÎmˉ–ÏCá/<ï8né¼Õ…¿à¼5œvùÜïx ây\âC!.üãŒèuÄ #Iá–Ž­ÀQÛ?ô;©N؃ò!k{¾ÐrÀp!£ R °Hq!<Žã‰.x¡;iÏ&rJAzöqÏ2\ß8ºÐ³M… p{Ad“5‹ð? 8 äE‹]¨xjjxÁ²[Á²S V>n9ÊP“=K,q&t¹%öAW02–==ßðRµùFÈQnô¬v¾m4–7ÀÛÝBð¦]èábIÀâ½|Ã'ÛÓ pc¿ÐÃ.šùFäˆäÁpÙäÁrÍ7|IÀ]n–r#u÷t£3¥“±·»Ò…xÃKûÌ7béBl°šûO¾w!åÃF6š¹#æ KujŽ YêmÙ>Ašnb9Í]RÃñD–ÎÉÓ‡{ Ôþ\§yD$˜€àîÂÊ’Wp1 [mˆ¥ƒLÌ5¨`$–Ó|C÷é @–„’°Œ‚«ÐC¾N„j)Æ{ ¥z±óê´œÊ`€÷û˜åÎKLZÈpñ’@ps)iV¨š™éD‰ÄÇbêqR°ò6yuKýjÁÅÓ€’@k 0¨UÐÖx—`\sëlû(&¤oCXFû»¸E÷® +G\Alrµ½—­q fÁÅC¾ëú6 A^I‘ÐÝÅ%˜ÂðbÛö?âjiSna#÷` eÁ„(¼¶½&Ë‚cŸ ZbÄÌÁüZ¾u­ ø°|_ ÂÌSèCE‰)HwX¡–jÄ´d¾s£—Ôè¸Q#á.ª LìÕŽ$¥Æ$+ â=XñjÁÄ!î‰`›PVÖJ?X£J„g&ÎZDm© Téð&µÆ””M,'ÊFœD-}òI–³ãuJ™(a,¸NyŒ´XV±˜Hà °Æ¥ÕAâÃ\¸~ˆß°ÈiWHá&ƒ‹](` ¥d:å¯Sö ž²ßñè¦ì0‰…’“Ûô½KU’Üx*ÂxIÈ–¿y %PÐ\‚Yp!LàrŒ>i“nxÙÖ¸³àb{',ì„îÊ«e¹ÜŠîõ½l¦"¯Fw/'vI%ÙH»©Yp$ÚbF$'"mUòóŹOà¢Ù®ŒËU–ú ÷8¸s×@׳7åø4Éèÿò{¬îÕÁÜbvüpeÏÙqåYBÚKÌ2úIëdäêZHŸã¦ði\øu³ÎA1¸jB²N7 ò´Æ…ãt\ö%.µfŽÛi SâÔ8)µ%Ý¥•-a%gŒÓ‘œ´»‰Àv¢‚2»€%˜ÆëH^¤‚ÜÀiŽ›ÛÝ \/p ¦ñbýƒQ÷ž2• i Vä¿q:’éc12ELE×Ä5XBiœ…E¦*4МH"îS0Œ‹Åõ$ŒqcðKŒPÏAó±rB;{­ KP{öbjiHñ‰kl]‘ä¡—¸Â­ñ:ÖðZOƹ¨è¼Š+0Æ‹ãeÍ/)àD2çòÐ ¬„‹qâà¥AÆK¿E‹àqS×xKÁy$4YäÇÿSr9Á.2kÔRáE6kD¢Ái'r¶Á 'Æ a²('•{§ígKXBiœ%Iéôš‰IJ±“¾±€%”Æ Q‚¨‡ ¯(ÆjW[ÂLã…0ŽË'–@rrÒk’nK(Ö @ò,kFIÄ<‰¦×0¢u9’‹—ÚÎÑŸG&¡,(a4.GraÍœ¶ Á2µ~7b}ê9°˜ãc¿-¦9/©tàpÄ%DNŽ¿¨!DœêËÔª+f™có*¬ySUçSð|þÑó|ßqV¤:qÈR^‡YKSâ y UBÖ8!ÊÈNq’L3Ï`(™`a ¥qâ\&î’›VÀ4~VrÙx™æ<äEYCi ®L§*{iòaÒ'Ú,¡.²x楚+ ‚$‘0"kÂE ˆ˜º%”Æ a²¨˜,gÉ¢Qò7` Å:!ˆÆT¡?ip‡uTiœv êÜÄopôKliQZ'DñÒMtƒ³ýï–`/„‘`öÐ ‚ÀP°Zƒ[ôÕ…à S)DÖah ¶S \1^æ4aª—âÔ)†®= /2ÜÄ(“®ÞÁ\Ë /2YfBá;¬ÂÚ‡"'3É/b&y}í¬ öªñ›’ 54¸U\ÀâU³)¥Y\ û”xð¸5É$N5±Ó4Ô8Ñ0„X“Øât,å¢Ô4à²&ÆVä «ˆIÆ"(‹Üù¸¼ 2ÌFUf\¹ZíR] €®(¬V@-{]•T5¡µ‚+¥— ‰#‘Q< :¹l4µH Z5íF£¡ÉØŽ¦èðÜ››³5¸¢/FvU‡O©‘¤Õ%ö/Ó¸¼W²TsG•“ \Û¸ØË4.XÄ}ÊèáUØffë” cäLd™jò´¸“F•mX •ÆÄ™>ŽG“Mž¦€4>2È#HXá —L-Q ¥qâ\K®A©AYÀ ÌdƒÈzq×DâLT!ŒJq« |.jâXó:e­BRÒ(gk UÆ1FÒÍið¬#±rQ¨ J _‡*>l”샤!¯!JE¥ñÐbà…‹T“ÎO*µ K%·ÅÚóÞÕÈš†m#ঠiªÏ]©0…ì`~ÌÍiØÕ´Æˆ!Ï¢Á‹¡Ù!UD²!n+\í¸PÏ:€©!kMUÃÀïW ÐЛSnQ€·6 ÙVìÆmûw_'[2Dd‹ad¥P iÁ´ô–«è\…Ùþ9äW!-¸õßœ!¸WZKª!/¸‚¢Õru¯pÚŠ4…]‘Z®@b¶\9×rç©å*ÎCËN{ Wqö-W ªíŸ§±å*Bð7\i)«ß¾å PlÎÑ?7g i©Y®"ÃU„‰±á*æ¤ÒJRZ’´~¹£IÒb$­ß’¤Õ«„bCP©&MÒjhvÐ$­IÒjpÛæš¤Õ å¯-²j$­†2Wiµë4¦å¯$­ß’¤Å IZ ’¤Õ\i’Vƒ[pEIZ¿ò‚+MÒjð-Wš¤Å IZ yÁ•&i5øm¡IZ ’¤ÕZ®4I«Áµ\•$­†¡åª$i5ø–+NÒò¥IZ CËUQ1åÛ·\•$­IÒjH*Ô®J’VÃÔrU“&Âd:iýÖ$-MR5h’–oMÒbÐ$-MR5”$-†fHRU‹†ïã{úÿm÷éîÏwz|œ:ß=~ºýçÎÁ?˜â—;™t6P±‡z¬Æð‘û'x‹±ÿeÍ {¸¾í¯O/‡Óçî›W*§r¤È…[ØQÈ¥ß(S_w_÷ÝóþëáiÁvƒ»í6P÷ûS÷å²ï®/{6vO¯ç§_º ‘úÿl<TìC} ˆ./oçÓá¿äz8Ÿºãþéew:\ŽÝõÜ]^ÏïÝóùý„ÐÝõmwº|¢-P–ÜèçÕoÆ$H!•³P˜ó"4Þ€¸[AËÜÃÛî‡OdÁ …Ý ²‚®ÝîˆK/×½X_èã¶}fãá+®ó¢ö´ü…¿þûËá ~B?35Lü¢CyÑ)©u8?w»Ó3œä~$i׿îwü€EÝáºíðùú¿bZý§ þOÏrÁ°ÀGûßÈzá£G*¸8þðáÉ]v<\ºÏoûÝUüÞmÇ/MK;$ÿ·4½•3mw`pbªÉåËëõ@1ÒþcÔ‡„:öç/—îõîxÈ×~÷J‡ý•#@ôáL_Ïðg<ù…“jO;ÈátÙ¿ÁV¼Ë;r8QHƒ‚½Þ7Oà½*G¨Op•üÜ_¶VÈÿ ÞÒžM endstream endobj 35 0 obj << /Type /Page /Parent 119 0 R /Resources 36 0 R /Contents 37 0 R /Thumb 99 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 36 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 37 0 obj << /Length 3456 /Filter /FlateDecode >> stream H‰ÄW[sÛ¸~ׯÀ#˜‰Arú”8Ûm:Ýfk¦™}ÚÖ.%eI:iÿ}¿sp!hÉéföÁã™8À¹ß_ýx]Š»qõûªÍSŠë6o­h‹¼0…ueòV‰ÝaõêÝA‹·§Õ¿Vo6«W›¥ØÜ®JÅXø×¶ym ÅTyшÍaUðÕp·ZƒZ¡ð~FÊÐ××ÕGùþsw¼ÊÖU^ÊS¶Vø7tc¶.UÞJñ.ûeó÷U1˜ ¨ºÌMÃb¹u,@³ rRe›_qT]åÕRBÉ‹’¾HŒ«õOÛqê±; ]¶¶y#¤(Úºõ+ýJ…,Í›U)öbÕ4¹-JP.¡0ÚäM#@Ý4bèV·d¡Ä.Þ”º¡WÞ,e4 ^>ʯ_¿æ'Xe{” .‡¬„8ݘŸ†lÝpa²¥Ð5´­…9Öd“sþeƒË3f¿ì—*·¤K!>t_DV ‹¼qª—¬ñµy»b§êDúŸ‡¬Êµì2 WöûÃþ¸åOˆnòZþ7ƒgµtô¢ %P*GЉ£½ø ~- qºe%È¿PÜ¿zÚöˆNå¢@bƒ¦mœ,â‚l¾ˆH¼Èñ"ý…ˆž£­l®šÈ¡hË"×5TH~$«R$ï ¨}|¥óZ] m´åÇø§ ¶ªÌµCš=(_»ûýÔí¦‡¡c}.f©F[(DE4ƒd„‚XÃÒÑ&úÂ8oî;Î ùŽœi‘tdzyE¹“­k|v™Æ¯ØâæaßOb;œŽŸÄíéaŸ‡ýa‹w%=D8´  núÓî·ñ/ŽìúW?vÇΓÜ2Éé4¼Sàÿ¿š©(¢2qٰ̽ò!¶yÁ¢“>;Ÿk•ÏøÓá°åX…dW§ã4dh'$[%û¾ã+{É0âË@ñ&kpÞOâ;hˆø.’yKuFKw1maMzøÞAÅõýþ–1'¤"?¹ËJ¢»'s×Õ*!ŸGu’Ág>›_÷½8ñà- tâaäƒÒò‰>$ü3ˆýUðuFnwû#Ãï2”b\ÝrA’ƒá†ý‘ÁSwøÌeI²Oö¨_¶ý?FÕš1çZˆ4…b (ÔdVŸ´ªEß}…UUãƒýàôÓѱUãt­rØ¥‘%bPKè‹ d©ž[‰ˆâC7l§Œ<…`¯¡Ëø­\AÇ¢ÖV>*—S¦Ž)SÏ)3‡4y¸•Få@¾ëÈÒäUŠÝ’®ºÑ]mÎ%Çm/Ì ÿê¯Ð°’ä>üÛõîåŽéwÇíMïû§#&Æ=\E±ç±AiºßNböwîÆw¼q@YDÒJ!–F&ÓºÜmåqwÏ*ñÄôt<=Œ¢ë»CwœF?'õ›ŒôyRæ„DòPQјhÐÒ[ OâÏ{ØJzn;vîoþ„˜º µÂ’F‡o¦Ã±ë>uŸÄ Ø”>bÇÓ![k4×Z ù½;n¿üß8è†oYa±1xÍcÛrì¶RÁT𻥡¢‡rgåUW+¨?%~iZ‚]`ÕZŠäþȉêÂŒûʈÆÿv êKŒ…¹óOÖÍ\&×\°PžéŸ¯WgE“fšÊI[ËoÐû€äÁcF±ÑÅxWÂ×á­+ î×—Í/Äžß\oœAؘ|éY~qÿú|Á5’r”s„¼âS¨ïŽ’&Uó0˰̼GCoY0Ú‡Ž‚¼&•Õš[ î`ʼnˆ4?Ž=×$JÈIŒÝï+)×+—ò¾† }n¶#âtäæ: À=ìÇqæ®-JÈѱì=‹ =¶hc(Ð' ›¶9e˜¢HDИÏÍ[Í—Žo§‰ºa¡ÝñY‡nÄõ浫œÜ¢°y ÐûŸ_£tO†ùáõ[qÃúz´&Ä[xáhyÚ{Ò^s+5|À—ðý?e.}ôY9‰ëCÖ‡î?/VnŸûÎ(n:±n:1~:iØrJ^(âη†fQÿS·Û•nЬ§5>ô®Ðò`w”Ò-¦)y¼4¶¦Òƒ6Ö±6M–_,7ƒi´UÐËTópèUÒX›dØ¿¾úG¦ ©ãçy &Ã{ÁÓ¥âeÈÔß¾>—¸¤M†¦{Z­0q“kmi%uÍçß?ýïòWžØÅWшŸÄÇ_ ñ‰ÉÕX7«ÂÐÐz•¢•©`ý¯—ê+Ý•téäÿÙ·qÊ~j»mO{,ºijf¹%}”Üjtç¡}FÈ€nIšË@jÝ ¿ ÍŽ® `’}ò¢q€{î¦ÚFY©ö€€_(¸UÓEHbZHLëÑt8jµ8MjZL™M‹c­fÓºcbZHLë‚é<¹pŒì€V³i½°Kí¦U\ Ó:’‰iµv€Ä´”˜6"…Ž,™vNêºvU YØRøÎ€ÚùAƒ%Ëy@’0 ¢œÊœÜ+J’ 3=€&Z—™ €*ަqGÃ'eÂiÇ‹b¾%æ ê|tÅÇ<ó~ jä©ùù,0óGÇÍ4‹û ‹ÇNTã ÃáÄå vÚ:€ö9ެI^p*JW'¸ñæs‹&D(É™òG=‹tlUûÌ8矹3Êc@Hå(iRCž‡ñ¸¢q® &Þ­•¢Ù5,™¨ë´D†—#užÒKsiiu^Ú§V«Ëã  ƒ¼L&úÒúðßï2M#â5ôFþ-ƒNc£¢Õê}F‡:ØYYË˃¢6ŽØ;L›¼¯¡ÚH^Ó,†Ã5‡Û­ûØuÖÔŠrZqTÎã‚°´H"{P¸ œQHz:ûM©RêBs}Æø$&ä ¨—l.ô’Í@¹à»˜+ž…1®«8d1ÛxöùqÎ>ÿf”Ç€QÒ¤<ã‘©Pu¤E‹­[oךGÌG¥ 0Ô´ƒ„ŸµJBQ jpðÏ¢Ð4Pº¤Ü :’Üâ·En"qåxx´ªÿ_õ:nÃ0øU<*CËr${nQ C—k_ œ»>Фíë—ÿbìdjq7ÙüDJ$%Qü„é=Mà/á‹A çM‹ÊWn Öpçòj|=t÷ž:‰×¨¸ÂITÿè킊k®§ÍZ”0§3š>üžþ[HúÔ-·ããLÁB5_F4bÕ°Ow+6ÅÙJMý|¸0Ô ÕVËP”ãn·±ÊV9Ÿ ¤®«:ýÏ»,7;zÃ^©ßÒ“¿–#ß„j°²tvPJÏðn…~Wj½Âó¸÷u#AGœ²7ZÀwcveâP¼£)bg{S­ÞsÙ‹ur–ã pNµÓYË’Òj°4ÇvwÜ.Ⱥµ+µ$W@rjF+@sj&k xGÝÞ~IJ/FtS*â Ë3”­‡¼—gB>vp€<0; Ö5E‘ž¯*¹ôÀ€êj&ÕÙS¥®˜Ë  äU¦ó"-ç=«÷ƒ9»ˆŽ˜¤N3[0Q–8žr®°œŒÚúä’<âüÄ+½ÒM³±Q–˜Ë"YÕQf²fZÅ®md#½œØœ&+x$¿íb.®Ôq$åæ60ÊÏ8ˆ³r ª÷e¾¢AùÑ<³Îëͱ*|üôÌbƒ g/jfÆl@Ú]×¢˜°…õbƽô@êfðNÔÙI<ºõßÚÖ€.G:¸2i9Œ¨®Öäì":Ê$T»’™sdºZC/@âv²j´ œ°·pì ègÄ^Ú‹Êß.(!¶±-øîã¸ýãt_€ØExù·1ïöáy?=´PÍ~`ƒ‚±ùŠLp@NGW1™ iHÐ,l³ È&‡¾ Ñ\˜ï©éþÝ£¢ Ð褫u‚~‚/¶vÍ7ø)ÔÄòóƒ U|Cꩳ‘‹ÖÉü2ó`ï endstream endobj 38 0 obj << /Type /Page /Parent 119 0 R /Resources 39 0 R /Contents 40 0 R /Thumb 101 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 39 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT6 53 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 40 0 obj << /Length 3701 /Filter /FlateDecode >> stream H‰´WY7~ׯàc+°Ú¼›ý´ð…ÀYd #ÊŒl+F^I°‘ŸúxVkäñ8ñb€QW‘,ÖñÕÁÇ?¾Vâýqö¿ÙØ«„¤¿ÅØ^Œ²—Vz18ÛZ\ïf_îŒx¾Ÿ½š=]Î/—^(±|7S:ž¢Ÿqì#Öõ2ˆån&ãÒáýlAÒ¤¦ý×t‘¶øú<{Ûýòq}ûl¾p½êö󅦟Ãú8_(Ýx9ÿmùÓ,QJüЃêmˆjÉÞ§+H¦„¸NÏ—0uôàz7Õ'ªAé¥ÂÔx¶øyu<­âzXϾ -ä8Ènxlk)ˆÚ¼XΔ؈Y½—Š$+²FXcûI·AÖ³wðóKv¥ ؕݢª[hG1ám÷ùóç~O^¹&(ÞæŠÔYûýa¾Äx_‰b•0Y)FOîXÀ'wïWï(Ðâ"c\\ïaRÔB\­?‰¹#F'ûLWå p ¯åóY ªaÚÿz˜»Þtë¹§Pn7»Íí*~’궺?çYÓ%yUEG\˜Ô19>ñ‹âª”Ø¿Ê Ä— ÏÎwßâûA’Új,Wà š¿ŸÒsMλÛèú1S‡Õ Ú«n“~ö·ÐðèVâ5À;tK"iéɶŒÝRóæ$‰½Ú&æ#‘%~Hüµˆ¡¥ÕM>WTHçÙ…¿Sš`áϸå$EÅ»Ã~—w.8æ«WŸÖâfbÞ§|ãõúQ¾ãöæÎñ0é¾'8‘*É5½‹ȈPäÄÍÔqË_~%/½¿]mûÄ{9ךNŸP\'nöEÀQœ>lް<Ò"Ü"n6Ÿ67›Ût§ˆiëºU¼íúCôÛ}Z‹ýÇ"0+³)*žöâ¸þ¸"v¶tùC¶PW u²ð÷ÍiAé™$‰Ï6tÙ —[B¹Fª&sNÖ·$öö$H<âéuesÏö»œül{:ì·Ûõ¡¯×²jVЮ„JÅB9Oõ¸'Qy£„%Ü+ TJú¨Š+oúª«“T5¬ˆ•|@ñ£ oÄ-rcZPq`D‘ĉAß-.@¥î?û¬Î«™¢ü“A O h¨ HÒCÁ Y £+Øÿ«ÉŒŸHêÄœø,‚øY¼ýMŠ›&N‡ÞÚ,®H{}Wc­ÑHcoгîh¬ÆRߵɸ|I×Jý:ŠÔùæ;^0§Ì§@jSiS÷µÚŸc¡énKÅ×'÷ïª.8¸q[w87`1¨y¾ƒ<¥È!J’+¾‹Àãg‘yÑY›§ÎŠÑuðUt›’³®¨.ÄTºe´7s xS¶P<å ¥- *x«KC𦈔ڗ¬™S‘'·’Çè~5 ïÄ¿ÒGõï]äd_Y²k …š¾etÞAÂ/ ͳ‘¼ŽÛµœ¬Ë09HO»<·%`•Fdh—E*ö¯Kü”´ÐìÃŒF£|^&œá×{¾ƒ`t•€ˆ&ùQ,"¨C­Úb =øèÇ”I0üK"„èÃø/Uˆ<üwM€îŽ%¢¯îis‹©³ÆÍí„jLA9_ÝœÉS¶.?\¨‘Ç´¥cØRP(´Ì«N³ ²õb‹g–ñ :;²ˆ:kX8±v9–´U fE!–m˜”‚²L¡þg.ÕM ,RÃ^˜#•e@x½|‚Ök:š‰< H„4[&?ª6d.êÆ0ªïQ7îx VÝ K£3þïíÿ8òÅù÷à5öí€ϰF‚R·“É~¶.Ãät!ÏП#ߨ^éŠ}¦%Z&öÙz6¤œ.vqäÛa@‹jà·ƒ*]Íó“(˜Í›/ Ô>1H´íî3„¤º€g¤õò,¦qÚseî3º¡Yã9'| <[s>šÓ1ñ˜ñãÚº “Ó…ôã#ÝÏ bG”´*ŽHÇD2ˆ´õ '§™u”Ø8£0”ÐÛÎ[Ž’´#¡¤ŽNÓ9h73OB6Fž· ΢ZFwŽ.NΙ± Ûv€4>‘~B¥¡¢0HC™vÇÃøª²#uÝ.4ôs”=…ÅDU²\Å^Ô³IÍ3»¢{GŸfƒúM•™‘ÝQwP ‚=ëC# ĸMâeqùÕa¤¤JC§½ò!¯â«cÔ@Á}E•?=΀ÑÚÕçžɆÊIBN¶µl`ñï ¹¯9ZÊpuÁ¢‡6GÚ<Ð8}gªkw,5é=jPnŠcw›(1žêõÉ̺IýrlugjP˘b`¥©<æb©ªû\ŒyË¢ÌhY”%M X† ™Jc8_Ó¤52y=Ñ3VÆ’ ™QR%‹ã¤Ñ,•²:õtRöÌ:žK–¦;£Y.UOÕÞ$Æ…\²$˜§›OJ*Yeм¿!•pÂ~s&ãÃWf%ã£ßòV0>Öšï:,åtlýÐxÒšµCЪ½ÿ@ÊöþËdk‡l]†ÉéBZÖ [1`ŒÐÞfh­ß­–•bC˜’~úò3~„›[4ùå_ ys«i†ŠÜ8)jÒgq¹u+ÿDÌ¥âhPÌ }>oÐ*®¨jyLN7µ :­íÿõ¹kÐãïËŸoKœpžÂü}Ó y¾¥tœ-gÔ$@9ÚŸÉ–l]†v4C.KsÆhó ¨¡Ÿ™dyÐÖ‹^œYÅ3A¡çoM³2¤õ‹/†´õM¹dð^Ð4˜Å ý,¤±)‡ G¬F ¿ 7ƒ%<>§'§'Áœ2/Â6Z35—¾’–,âÔl(jt¨öPé[9Ê$ z[—ar:ù$JoqO×o'´kOEb‰lqgëŧÅÔ¶IÜ}œ Xà+÷|ÇÅ ˜7·Ò…ÉÌyVºá&‰Ë¥«î „°gÅwø…ZŸžøðò”&ÕðéŸsM="Îr¨Šµ&Z£ÃyM´mHTºUSG°[Å!Ð]³¶m ¬êW¡>|} Ķ<¥9-3Ú˜eÊéü„ l=jѫؠ«p•`Ú®W)+Ê—eÈËâ8Ø ˜•i‡£ªg¶ñP£—³°x©®é  Õ’8 ß7j#ÁŽ óÞ~S'@œö+ýæÒ˜ÜÚ{Û•ö§Â€ÕÔÿîHkÿã¿wÿËʶjˆ¼ UC0¼­Õ¤k})“­²u&§ «†-Ûô6Ò¶â›ÉVÙz1Çxqf¯‡*Œ˜¥[=T–eõ0ïˆPs&âÕámÈ·™±­;òÀ¶;?‚4o{0)†@QÛÈÔ2$@ RyFÆ;®gœáÓötÚ"çšôH^OtŒ•Œ¡íÉŹóëÜTz:);µ¾VAç9wÈN9|Û•Çe–Ö~ˆ•}õž¹£î´qìúêàa$0€\rñuržIZ1“è‹BÓéɳù‚Ê‹éþMÇBaôÀÌAHéVôk½ž/¨5e1!«Ê»Æ _9x‚3He¢P®A¡ú©m%¯ãn)ÙzHɇ“´2Òí[ÆDeã¤Z¯²yp­ª´õdÉ Î¬ Å!iJ Û™h 7{¶>€±6OÞ—çN¬úÁã¦\z/]7wE:ç¸+“âþæj¾ ¯éîåòÅ= °€Ç‹ˆn2T¥ à1šÞêg®*¿ctžB+#Í‘ m›2A"¹ÿb½\’Û†a0¼÷)¼tvI‘â5š´î&3VÞŠ7@UIåIvR Mâÿ`šAÀ{ ãKdX3•BÝÁí…ãõháPìkJ¡–ëf–t÷F· wY@(Ôó Í=Ljñ"ŒÁ›ÿóÆTa2RJã)ô+< Ð å­¥ÏShOKÙShÍF¡©ÊÝÄFh½ý~™aÊíí®lpû…PŠ?ìî’ß.ð~÷t7æøJcAiY¤½P(EGö4§Õ80šxk£Ý9:;cúâ¥þyRt¬QÖq¹u÷µuLÆ&sªãÞðÚQ<…R;G9%ÿJË‚ ‰PJbz¥ei ɹœ RŒ†K…· …÷Û!‘î.ó!‘–)S.牔g|9‘jñ0"5‡itSj-â´Í*‘j-³ñ%òl4×5TF{ùÑ‘«•F!Îx¶e ¥1Œëvr½îvk£©ï@ˆTkc RmŒ7u’¡Õ«ÓC×µ7Ýš9\`zJ~¯ZòEt\ƒ¦ÚoAqX2î tÔµ„=wAGÍ%ŒðÜíkÐ8ÖA^‚ºÐøa÷˜HæÿtP›ð?}¢{Ä©œîG:Úœl§‚Ë>,X†dªMÌb:ŽXôÙ5Ž”mZ„˜'lÏž$æFpî·7!d&åEoÞk—1Ö:^ìId»}ÿy%ÕK¬zTïþª.Ú@û´¼ì¶Å{*Ü*ê>ÍÁ]Àû¢gq¬’ô†É~lœ1“W5ê´Ü/ÑÁÃIrÀâdKKñŠ9R[€ŽîeŠ«E‹s’ñɘé¸/zF­ò™-ôÐ6?D="‹¨¢ÀÓšHHúà%‘¸BÌ|ö%‘VãÍ›ñ%=¡z)w¢‡Ÿ`½M‚>¥bÈŒïûŒèñ JNfxgDÏÒâê~Pîß¹†Ö\ÙDu´"­”Û¹zËf*ÞDZZF—Pg»YcËh¢dŽ‚f«šF²BÏh£u¦† ]#¾‡¡mÄcè9‚4q,tÛe Ÿâ‹WGÍ]Ú\P«P90 ü7Ø~·Žm´ð}¢™›ÉëÝ/ÑQ¯6ÿrަ¥Ù¼锕ònõ4›¯,þ˜:$Ì™ûÂ3…~kI|y†Ó°ˆ\•3þ 0â—žÚ endstream endobj 41 0 obj << /Type /Page /Parent 119 0 R /Resources 42 0 R /Contents 43 0 R /Thumb 103 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 42 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 43 0 obj << /Length 2549 /Filter /FlateDecode >> stream H‰´WKsÛF¾óWÌH‰0fð>ÚR6åTRÎJ¬ÚƒL‚S©%kó7öï×Ý3ƒ(¯}‰TE3ýøú1Ý=o~zÐêq\ý{Õ$u®UŠÿu“4¥jÒ$ÍÓRUEž4Fm‡Õ›÷C¦îN«®ÞmVo6›RiµÙ¯´a.<š&©JbÉ‹$­ÕfX¥¼u~\­!-5 ßB‘Ééíeõ1úðÜoãu‘èè¯ çnŒ×Ú$M¤ÞÇ¿o~^Õ€ÁRøÅT:Ék†•&¥¨€Ì”ÄE&ÞüÀ1U‘s< +Ä’¤šÞÆíú×v¼tgµ=»x]&u¤€"mª4ªÞdoLšfŠÑü¸YiuP«ºNÊTC²†5*Ïò¤®¤çµ:w«=y(ð‹ueV•u‹ön…3ácôòò’œà•-ü¡!<:Çpº19ãu…G„Åj•U°R5%ܱ&Ÿ\ë×56¯LqI9.ER’IŒBÝw_T\`!J“ZL׎¬ð¶¹[qP³ýoç¸H²¨‹K„²? ‡c˯€ž'UôWŒÈf‘Èó4X (p2~C\aÂi¯t¡(¾0Ü:¿øºï‘F²Ó¤.äͧuŠDbWPr¯Ñ: H`Heê]œø¿utQqÝÆåªNÊhâƵÇŒ¬"lyåVO=óËoÇLgq«ÇÈB,6½ÌqöΨNàï1ãñÁ¿yêùpQ·§aH<`é‘èOøî»Q]@×RÆçÑèÊèògÛ« âU!ÕÚã8Æñp:Rví¥U$çòD‡ûzìŽ#~"fÓ6?¢š°­Ý+;íÙ¤<ÎÁ£ÆgyÙòï\˜GBd?dGõ|(òHȿȣ•Оb$+r-sç7zؼ½ßÜ ›™Ðjiù÷"‚eiǜʒ  }Ø|øM‡ÇXÓö‘‰d³îQ}Æ RÛ°ˆ-ù8@Ó÷‡£å·öVÑÌ?rú}! ÿ<ÜþcMh‘Tåî­‚¨_#çQ¢c| Õ;vL  2NG¼ÍÁ 0ÀFTÈlÈŠºÐ{ßsJÄT‘?Tn\þ|‡g–»ð9YØÒötØ>)·sËYòÔBÙ‰=˜&ÐfT°½?Ù¥óÐí1ðÀTÑéâuÕ",GKõ7øí¹pùNŠ ­_:Å íî†Þz¬ÄÚë§cfˆÖÎm‹Ã¹ÛvÈK‚û…ýN®6Ð=ªZÝsKú²f ‘l*®ßš`‚­qÅÐÑ ´öÑ2Ëq7&êÇ^ûlõY‰k8¿‰È•"SÈí¦%…‡íuTj¨;Ú>wÝΑ„•`!©B=œ š4lQ2>9»ÞîqQøFðßÞ(ñø„PÝÞ0ÛEŸbX€MÕýdžoÛ=_p®9rAØùHN9„œâq¡âò•EOê0ÂÎ/¶íˆôÊaâ%ÉÁèQøX5 ÍAO] Є¸ÄyÄ<·Ÿâd:¾‹²Œ¥ëî‘H®‹Ê¦ÐÃ¥åqæ6sQ”u“ÊÑÏÂÛŠ@‹Íõßp !JcKˆz€ÁjÆ7±®EX>ïçk÷JÂ?+A­#éòh‡kLF´öÝ£{Eë×Oˆ×º€'¾ËËÓT‰>««Æ9÷ôLùª#ñkf!òTùÄ~ÚwBÊ*”—¥uá¿Îîª,%4á2¦¶¸rZù»q‰{.+~ãØÒô͵‘1¥0ÑYÉ¢[Ùù%ÖµŸÙþF|òòíÁM—æ=šÓììVú|-§á²4Ww¶ÕËãýõð„ ãÅcÁ#½žÕª¨ûŽÁLóôkƒ™ïïÍ4ÝQCȹ\#+ñ|s󸀆žñ‘¥÷$Õú ¤ûØÖeúP÷ôl¨ã÷‘IK7Z’N™Ùx±*-Ý=WÞ¬žŽæ:‹Û„ŒãxÚRmå '|§^¬œ¹+™Û?¹35Hç`8BYnÜ>›hÜwçDÝýyv(íº˜h-ªué«uéÚ2’¸•ëuÃÃèÌ­h ãÓa±×;jj> <¸á*Qo÷t liˆ@Ú•2DäÇ&÷±ãh"B»·½œûE¸Ðü¶â’¿9óùšäÿŽóiuV: æ˜ua%¿c¤ÆÈ4Mâ2_»iÜÒ¢óË´ÞP!»ÆK‹“‘ã\°[qj{ˆºÈ_Ã<­åb H.70Ó9î®Aн¥‰& tÏÉ£Ö“¬8;¢fè‚Rö1âiœT%rÖd ×S­è[Cc‹*JV…ò¼ e?‘{êtQŠ‹AE0”˪Kc¯}ôAîfêîQÖ÷oý½Cù"õø»¥Ÿ;‡ƒHQAƒßûŸîg€û +^”NÕ¯ê£IÐ2õ{ªv+“áÇ as®¿`y®ú•)p]œQØ…‰¢Â•hFa<ÅÃêã\[Oš@–]è''zŠ9K¿d™´y h MÌR“¤!<·pÏSD°$J4ëzZè'4`Õ3d!0ÀSÌYw¥9E>Ð" “–¼4Bar“d˜|ò: Ø/«ˆMA»Šº‚c gçDá$âÉ"椗+,deh ¯ @Vc(äí€xÒ>9uîå~ÀaÉŠWT¸láÃ~‡aÉ8µÐIQ¡³ ýÒ-S`¼™5x—øvá*³t]‹ÍÞÄyž÷…7`žHÅèyäŠ,Ofü=EÑ[¼ðÉäh/Á%†“0÷Ù°`è í¾ƒ˜5¹àrIú`!³Nuɯu¨`ñE–†úd!PX›$b–¹íé˘2Ì»ç¿ ñ•u…ì°ø/!ãYôy k|–5ÔT­~a.cXʸb™¢:ɰÎËpGa’1g–,ý’e Å$ÃŽ¦ «fÎ4 ‘…‰‚è_ÙöÞ\ ùnÛqÏ´NÜ“¶ G0wÉUˆuÁ=xŠWéÉFrà è§máöÈ‹ÜTk˜,Li2QØ41•Æ3ˆù´0—1,e\±mÜ˰1÷2¼—¼Œ9˰dé—,Sš\gêdf[^Ð=, …€‚9N‚á%8/ÁQ8 sÃ’£_è:û…Dì7ðn ˜ƒ (¬„Œ;WÈ11LŽƒ‚\ˆ& ÇáÏsÌE©¹´k"°ñ»2ÌZî œƒ:Yž™‡3 ðž™eår‰@œ! ðf:AÖUÃ’! ðf:qH›&ðä°d¼„™N"Hƒè K<‰“1×úÊQðµãê°8-ŽÀJxXýoØN{ú endstream endobj 44 0 obj << /Type /Page /Parent 119 0 R /Resources 45 0 R /Contents 46 0 R /Thumb 105 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 45 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT4 137 0 R /TT6 53 0 R /TT8 54 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 46 0 obj << /Length 2735 /Filter /FlateDecode >> stream H‰ÜWÛnÜÈ}çWô#¹Ù¡ûF²`y³Ð&‹u¤ü ï5¢¤Ù‹Í¡,ïg$ØΩ¾Ý£‹H‚Ø€†}©êª:§ªº_ýp.ØÍ!û˜µ¥Ñ‚qü_´e[³–—\óš5•.[ÉVÛìÕéV±7ûìÙ_–Ù«å²f‚-¯3!­~Ú¶ljÑUÉ [n3n—†›lm\bÿ IM_÷ÙEþó‡~wR,ªRäûb!ñ3ô‡b!dÙæì´øeùcf`†Õb?d#Jm¬Y¼¬ÝÐÉI].‹å¯‘9²©Ê*µÇš)¹ /2ãdñSwû­öC_,êÒä Vð¶áyóJ½’œ+f­ù~™ ¶f™1eÍ4 xôҥ1 ÚµaCŸ]S„¢¸øP*C»|XÄì.\ä÷÷÷åQY!Êó¡0§?”û¡XLÜC¬ZÁT/Y[# ŠÉÃó…Áâf\¸Å¥*krÉZÁÎúO¬¨0‘óÒ8×E€ ¾–o2 ªŠ¬;U©ò¾¨åf½]ï:û ÓuÙä¿@VåNßdƒ€Hå:s”ÇÇ~W¡Øþš‰Š¾pÜ¿z:ö`§tìÄ$ƒÝC ^PÌîÔA9/Áxÿ%¥¶GÖU]JÃTk¹µ;“—ªÑßXª–±”‡höÚ¦ÊF>¢©ÚîÆ¨ˆÌ䆥²)€°ïo†n‹pß°þs·ý°éÖŸG³Ô³±æ¬°òv/§#dÀaDÉCº¯ ¢ª‚€"I}ªœ]uöwt?_0¤ú‹lýb‡øä×!w[k™‚%®dh?:W{Ã*2vÿW-$çóòA岉VÑ\Ûö.¿òûpTœ¾¢.ÍeiâŒöŒ1¾Òæ¯%*9¦;;‰r_·ôM™\Tù”ÌAîr=Â"m‹ør˜Dw…ÈÛõˆÆ­-9U´¤ƒ—¥Ýß²ƒŒì|ùš´E3ïÎXÓ0Y>ÏÅœ q.,ì¾ÃÉ×û­w£½ø¢ wF†©%u”=®loÙõ¦#ˆ•u`ç7ßthµÐóH_xyEåSW  }wÅÎ>[V ô¸¿‘ÿ Ìß²óÑäÝxw@É–ÂG6ÓAºÝßm®Øeïùg±h ƒS‹ù¿ÊpÉ7õõEÜØ‰pp¶Žh¸P*ívmgKºÕMÏÈ–[a³‹ÆÖûslë€ýŸõå½å¿êóE×e“X®½å$¤ä3µîí¦ï=Ûí¨ñ¶ñë­7‡bO3§ˆ¿‹üy?|Z¯üòÙþn\ïz¶>òå~ÇnûÎÓ‘fÃϨ²67~¼*ZûÀkýóáùEԵƽ7^­dƒ·ÅS²Ï¯NÇrºù»UÜVš¯'ïÒpÛ§Peßžx‹t‡Ãݶ¿šãzz~FAÙÞ­nÙuGøÓôέr&䣲ϯ†cUUj3#…§g*üÄúãHr¼]µ ãqÂ! Іÿxò*IŠ“¢%š¡¡»!øH÷7¤|®$Gø*YJ‚Lâ,ÿJ¤ÿÐJhÕSå–þQqnË®LM¾Â«@ážÔÂçÖVšm!é~ÒíÜ$n%‚ ð¡hÜý½Éñ¢¿a…úé&Œ'çDmJQÃ9„ݰïRç¨gïRŸDƒKLm}Â%J'NY_Œ'£¾Ìÿý­Ÿš Ýg‡ƒ+ݣ㶱òÏ‹=•DòË*üt~qG·ÊÊÞ{½»V niùG¿rçin”ö}nQ+ˆ,D*¦@ÚF~ÁçÖ€^D™wWýGeæ»»@Toì=óu!í…ÝÿsöããÜO½ìã?+>Þ‘ù >cëV´`òß¾Ö›ðñ";-ØŠêc#çk²žññ‰öÕ1ÿâÅ£B4¦ù·/óHz>¢PP>)ÛÏ+Ì|4-µñ0 U;U4ñ„š@•ÿˆYàBÿ=ûfý³~ÅDS±{TIö»ø…³«Ldœ„ÑmC=r› Õ"w¦‰M&Pó5ÕiƒÔµ;´ñ¹f'°Z$"©Ží±Ž"ØQá2TÇ:ªÖ5žI$Xj¨™¡í5ŒéP…q’ní¦šƒÙ~ÿtÀñ8øYW¥LŒöuu¶±Qqðh¢v=m1Ò5±yV%"-wfÏ( ‰HÛ¦Á“\:Ï‚u¢IÅ9Að’hRã«Y¥ÎII´ŒE”J“ªFNÆ"€9qNžˆàZ–8'+•ÒM†Ô¹Z¦t“usä\ÃSîHÀ:×´GP&àÖÒI²@ ŠÉ3áèÉ2ƵsÃï—ºIÈ8ûíöÏN…qå û¹ŠÇ©ÛL‚G):¦I¹(abŠlL¸¨À£ÅuÊE%èÐ}5ᢲ¨x1ᢒMŠŽR<å¢têGÂE¥uêœB|.*ð(u%á"Huä\­S.*ð(uùpQ†Ô9#R.*À:‡üN¸¨Cê°N¡LÀßF89²Ì „qT:…DÉ<Ç×çÇ gLv…‹É<ÇÅïŸ >{rjð(AGó&墆 :>$\ÔR¤èh©S.jð(AGÃï„‹Z™0$å¢F(t4½@gÉ7á¨èƒ£A+ëk§ "&ðêʤdFlÏ.PN*¦˜íé?R„b1ª²ÚÝÃjZn9ôÕiyj´vùü‘½9”kîQDGVþd|A«,‡Ü˜Fä€äT&“!Þ*«,žpËN¶¡—à¬ÚWÑÙv‚\påÂOÐÐð -ÙÃâ‰Ö­;a²4õk•Ý&§AžâÓ¸€qª'qݎͼƒÚ2MÜf±V •kšß3¡´L;Â9ר Ê’-D]×jŠ27kôl>MÐÐ̧ÆÃÎÅcív×>0Òí0H Ü|º;MðYžêV;¡ŒŸ'ZZÂäKêÅ=>ÍFLñ*ǃˆM;æ¸ÇN8îÿ{†ÐÌÍZ°Ì–ÏAȃŠ4p˜fëR] endstream endobj 47 0 obj << /Type /Page /Parent 119 0 R /Resources 48 0 R /Contents 49 0 R /Thumb 107 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 48 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT4 137 0 R /TT6 53 0 R /TT8 54 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 49 0 obj << /Length 4542 /Filter /FlateDecode >> stream H‰ÜWÛrÛF}çWÌã ˜ €AªòàÈÞ”’Íe%VåÁÎLB2‚´AÈJ>#ùâ=Ý3¸Œ$Z)ek7»R1˜KOwŸÓ<ûòR‰ëãâý¢JU"Ãÿ²J«BTYšÙ¬enÓJ‹u»xvÞñâ°øçâ‹ÕâÙjU%VW ¥ùU•–±yš9±j/u׋%¤eû׸H[Ý.^ÉïÞ5û³d™§J’¥Æ£kŽÉRé´’â<ùqõÕÂA –Â]ªÔ:V+K df$NêdõÓL]æiëÃj`†Ž¤™¢©q¶ü¦>öM'Ö‡®I–E꤀YUf²|fžé,3‚µy¹Z(± çÒ"S¬`°Æ¦Î H·NtÍâŠ<4óKp¥q´+¸EnÁŽÁ„Wòöö6=À+køCA¸ìušczè’¥ÃÄõ ‹U”°RTܱ$ŸÜ¿_9,ÞS`Â%c\ò´ “X qÑ|IŽ ™¥Î›®†3°ÄhõbÁ š™ößwIžÙ$ ÜmÛí¾æ!T·i)M€¬‘^Þ¨ƒÂ‘Ü ôꘀ€«²âp%T._œŸŸö=Ø©=;u6ðÇFZg »‚(éF¹ö–¼L¬ü¥n—Zùn—XÑí5ûAn_«»ÄdÅX*…£™v4Óú;/šz#jñ‘kÈ[UZȾ!ë7ÄGLÖ‰Áo_‹«dYbÔ%{­¨÷LYyN>. äy&Ú¦%æ¨r’(6͇íšx^*’—zÃVŸÜÓSž¤jÐVŽ\îê¨7„ìÑßý¹È~aÚ*i_N"é=¬‚µß4àŠ–Ðî×D )vbx!×¼Póo¿=ìE °²™­l>Ä_ñªßsàùV|Ž]X'H¨Î>fcl¬l d€OyTKJVR›÷7”¥$â´ùŒ¸­åCÒÕë„Ä‚/ÎóÁd<Óý…“¹å<ò‘¹×á:©Òœá2rÏdÞººç”Y†wqìë®Çm˜õ'÷Dˆ\Ö;¯(¸˜O„œ'Ñ'묪‘"UHfÝ–œ£dï  Ab?îükà3¦âD‡-àÒß<¨|ZÍ‹7±¼GL1O6E±©[»fÝðå…üÀ~µl V¯ÞÂÔíÎoi6aâ:)9ÈfTí†Í­ßÜQ°;>n}ŠAL¢jJp#6 K%·}“PjFžà§O”³•¡µ;¬y¥æ_ŽÇk™ÿ¿¹½xºAwÉuâX+Ç!¬ÃØ0%ÿŽ2öÎ/×½O.ÍA퇵ï-2Ìp¤[î X.öìæ9é¤]åÓC½C½œ…:ª÷&¡nŽL¯óP/9ÔÍ<Ô»¦¦rVIÚAl|K{Ä÷¿Î8{Ç êߘ„;ê*¨§ $‹ÀÝËǃºmȪóüüqǫ쮢ö¤¢*ªp#…²‰Bèuö‡Ñјp»k6aHuÌpƒŽ¯%¦”ßR8äòùÙׯêŽÔ•|*¶ûÍv]÷Û}tV4û$_%Ü‹ö]½?^yaøxÄÞ{ýÛ;æ‚)TÔÙÞ"TtÞ†ŠnÃ;‚ÿðaîOp%×Wò{½ ³‚ |òÚ¶æf}¿9~7/Oë[¦.q9oo;nž}©†~¬’ÕaÈ4ãô‘¾Ëæ7J } f…?úfÛC1¦(^u³Ó{nŽí¶Ç§ Ï\'܇R A+A†?ó):8~íÅåê9ÉÍüp!Ä&Ó‡|‚¼Ë¥¸­qûÕ¡ùzþŠÄuÝÍ»^`j•,+¼Ÿ3ç¾W»:0†ìÃæëô‡œɧ7eÙØ·ßvœ.~aÂ) ²_Pø‹Ë>¡0¨û›#ÜHVä@Òìष‡›²IãsÆo6JfDH%O‡»‰iP`F#œçCEÝy€”%’8iÊo%D=ž:àéÏMç±ûKáöôô¿Ûè;H¨^P,sçŠeßÐDz Ͱ´¤äö'Ùß\ï=&‰{Þ1Å7et•y3©—8zœzÿæwøóå½X/ÿR±Nâ‹Éᅿɲ?¨4üm ë_ÌL  "ÿÆûÜTÈßý†¤ßbá­e6;|¹úŽY4â¯S­*#3nŒÄµ¸´dô䯱¥ÊBKõý®©TÙasÿ¶îñƒÁ¶ l$7ÒÌ9\éxÙt¶ë°|q¸AoÄöHˆÊ·{ñ¶éšTœ÷4ËÊ¿\-ŒsJ¨Ì¥Î £KþíšÅÕc«èËì¸j­NÝ|9×ejíÉÓ,W—©saí>ÆwN?¼þÅj¡4RC&ð¨àX z8fN¬Ú…¬Ç›£gÏ//È-íÍú­¸ª)ÐôÞ¯v"XLV¥¹&‘è`Iâ¼îÐöér£`I6¿ýâgbýëzÇ ûÏ´dõžtnÀ;@Kx~Ø·ovMzÆ}ª>åÊ‹D¿xÇÏ~|5\[™Óè=´Lñß]/Œ)RU(¡søqƒ†©Jò>íû„ ž*Áx¬IMŸk[󕇈þ!˜œ>¥ m¼û/¹ »/åú´]ž†-‹6Ñš¾Eö~rƒDÈWRúƒR¾¿áGذæ:ž¡íSeÅNìËÛ‹{&Ɔ){ì)ÃØ7A¥œ·ìï ÷î”õ)¹wÈû%g}®kêšåÊZA_]…ÿø¢GÍK{ú–È)9Öâ8}ªVò}X¹ O?»÷"›LÎПCi„iÀ<ç!UÅI{g%Å™† Î>¤qSP’„Õ àYÈ牶B„?o—ÉùÔÓÿÙcÃàRß Z;6®^Ó‚“?ÿYk†Á“ôd¸ Ü]”zú¼±>!Òþ´Ï?ròÆIšŠó„B>r#µ»m¦?ˆwF‰;—ÿ ÒUSÈ{7Ì/¾„N_A§Ÿ0Qæâ׈oÄ«3±AíÀÅŽ”¤(Ú…ÊAþib‡ “–”qOéwP='°£@W‰d´weÜ;‚9`.£D¶Žn4UíGõ0…ÚÍSM§3*‘¤@Á•fz*û݃èøm´¯,@«ùÍCòusùÜi4Q¢´ÌT08Ò¾B’›Ñ`‡¶ÑDŽÊ6;Bi(rš¦êQUìxä:_ÆÆ#(~‘µÉ¸RNG0ˆŒ#ºšèˆµ±qÚ¢ŠŽÞØ8øßDG€wl\acšiÀWš˜f0ÄÆQ—¡)Šnì”ô„´ošhnðfï ÍD«ùÆÆûcñ-&Š;¾«ª˜)&³±ï dEL¡.òQEÌÜûÎðÖù ùÎ3ÅpRšOX3ÅåÈwQ1Å娏ÜÅL1@96®(c¦@‡è‹˜bœºc\h#§#€!6Ñ1ÅT.6y9fŠÍÊØ8‹è3±?æà·“8‹Œ¦û·By”Qîk1‘Çž²Êż°X‰8z"£ïC¬t >ƒ9?¿ÎŽ ¨)éPnÔî “oYp ˜”‹™u¯á•ñ¬&x[[‚$Á[-Á@šˆZ’l™Å—žÑn½%¸ŸßŒŒhBJ½t²ÕSgì,Íe½wwJM?S³->ð×Ô¨DO°ú̓úøIÈykIƒƒ¡_vR£$ +SWŽ,-ƉDéä{z¬KWJm £-Êífîæw¨³¡ù›2éÓ@ D#ˆÁ߯?0E¾³þ$lxÖŸP¦ác¿ì@u£èq 1ó"ôË UnŸæ‡ðo_áTl«ùö ÛScNwø‹ŸóÃÆÿ¼›qÅ}~/‚_€ rˆýYŒ~xn?ÄÿÆê×6ñ }*?p>TÜY¾ç<ú^’¬·Ö8rþÍÑù'öç?çnï§û§@d×øÿw3œLî{¢°ì·/3`ð>~þÚ~<³Ð\Óß_n5• 1Yý×Û-Π¿á!o¸”è%¶=.Yo/gP½ý„»n¹Mí¿™¼x%?¦ÿå‡Òÿ½W£WÆ»;ÿýØ%_r¶ù!Q4äCã—‘Ï9„ë𑹹qÇ#ÒÀgé8\‘Øå¨Ho¬Ô2½yÉ(-õœΩդǻà9QÎy†z…¤?ÛÇé·9âý§b¤•f5öÿ¼6­EØL¡€/†KqiEøóüP×Û¯–ÝÜ ­“†)m”…úcc½Ðz‹ŒºRÃ4ŒV®Û˃QƒªDð7fÇXiP™ü†‘hè*a§ñ×1r·VX8vg¶ÊâT Á;ç"d?9œµÎ( ÆêT` ðÎ5˜ÒUJœƒ©[ ýpŒDˆ¶«@¼s5è*uœƒ­rHeb ­´–Üj TI‘h$œQ°¹õÛw_‰–ÇØ|}¤|Äfºú€|ÄR̾>äÖE,Ávéê#An]Ä  W rë"–ÖÅ×GZËà@YW rë+›¯iðÎÁ›sõ‘jœƒéäê#A¼s9Wi¯Þ9è/¾>2¤Á9—!Ù.•Ú—s.‡êS™cöÎexs.•ÒàœËiõ©ÌFQxs.•ÒàœËðæ\*q£ðÎ5œ§*¯_¼…ž³Ni¢MC »¶:VFÂ7a q wEë`cPÓ0«i 7ÍSð7Ò™4?&û/vû¶ôbk]#­«¼¿6ÆAŒ­K É!ûŽ ™;£Òâ§Ê¬©ÛFênGú :éw¤â¢¦:ÙŽ²Œ ±¢=ìoé½ £æ4ǧ›ÊعOÊìÑRøÃ©„\[³t7áîgtÝ[³…DÊpcU’mϧ±!“&¾kÏ¡Tß°à…Î;7¬s"ÃÍ u®3’Ÿ!-ÜÀ5b>„FBõ÷@äQØÍœBI”be8qIå9=F qLÐŒ&˜,”9eÈÄW"¡6ˆÊ寂 s²Yåì˜à"¡65Œë6œÑËÕÏÑ(¢†ÀÍEm®¸H¨ ErŠ¿Ø9=FçÎÑ(b“Ê5¦6›\$Ô†¢9Å_ì£sçháLá¤6ß\$Ô†" 9Å_ì£sçhPb(6#]$ÄFGQrŠ¿Ø9=FçÎÑ(¢¨…_”Úœu‘PŠÄÚ)ÃÅÎÑè1:wŽFÑèi€—Øð (:÷ö;¼ÞÐè6 Shy‡çmõï%CSòÞz”ˆõW7ˆOoºÅ!ÙþX„|!ÖvNƒ¯CwÈ0è.( &Le(†\Ê`H¦Ê„×ÔvCwzxCwÐßö.ÛâÕL))GFžº._ÓûEèNYÄ]•eQFˆ…»¡œ!õ¼Æ¨XU“jÃ+4ç…Â;— M-½MUÈ5a´£›²\Ì]œ|1Yb¤š’DW¤*ìü=ËEýà endstream endobj 50 0 obj << /Type /Page /Parent 119 0 R /Resources 51 0 R /Contents 52 0 R /Thumb 109 0 R /MediaBox [ 0 0 612 792 ] /CropBox [ 0 0 612 792 ] /Rotate 0 >> endobj 51 0 obj << /ProcSet [ /PDF /Text /ImageC /ImageI ] /Font << /TT2 135 0 R /TT6 53 0 R >> /XObject << /Im3 62 0 R >> /ExtGState << /GS1 141 0 R >> /ColorSpace << /Cs10 63 0 R >> >> endobj 52 0 obj << /Length 2101 /Filter /FlateDecode >> stream H‰„WÛn¹}Ÿ¯àc÷CñNö¾)²“l6Æ®WÄ€‘Ajkg1ÒØ3òÚÎ×§Š×žnr ЇEV*V_ýí–“ÇÓæÓf NqÂàßv ƒ!£L1C¬VtäþisõÓ“$¯›·›¿Œ›«q4„“ñÆ o?Ã@­A¥)sd|Ú07[Ø X …£/›÷Ý/§ç›~«)ïýVÀÏq:õ[.èБŸúÿŽÿØ8 áwña9UÎÓbÔ„#`O†Ûu¢ÿ˜ÑVS}ÎÇÓ€4¡ŒãiÜlßÜ^¦#¹?§~k¨ë°`ƒe½’W‚1I<›×㆓Ù8G ã°3‡Û%uŽÀîÊ‘ã´ù€šù%ºR:\ݳ[`EºÂûîË—/ô^¹pؼ;öèL'z8ö[‰ˆß–iá–d0àŽ-úd}>w®”¸0M ^ɳ ¿M’^ÃDǨ WçÉha4¾Úø Êû_½¦²›z¡ÜïžvÏw~Եݷ"+»°_æÀÁD‡ ããGW®Éáÿ1¾pñè|Ýö=¨SuÂ$?()À èó§Àßù3®?‚Óv_Éu:…Q>™ÿ\ãÑF †élФ g3*-ÜeöÿÌȈ¹QŒTvC^%©•­áZÒøÅð#Œ š2‚S¹L„ÛoÏ/¿O§Ý ,OŸ÷/'§jÊFi&@"¸Mç×2<<1 ã!"OÙ¦!Æü„*!´”Ò¥s_‡ý$AÒC÷»0žK«}’hAxF¹DŠÃ§Óàˆ·ÖX˜žòßÂáÕ÷ ,<µ‰`üX›PPtp"&ÓêïdðŸÈ3x`ÖAˆ¾çĬ µ6%áÛ•Áù®8€Ÿ%­ w#­|%ž§¯ƒFŸuãtÿûóaxüVÇ ‹™çòDòêȹÚDº¸Õ¦6‘\Å „TÕ&.:oAŽ3ÿsÑ}‹¡æA¦œ;pVõüâºßÂsä÷¾{5ý¹ õé~ÊUþÜ3–™àžŸ@Nò3?žaÕËæÍsåÍ.ÞUX ™- t ×¼«°6¼pWéÂ]!#áÌîcø™¦‡0È×n²±ý x£ñqÖЇÀÇdɃûÚÞ=廉SÉ„›é4O$YJk ¾×&’Æ$vª6‘d)…麚¸¨Ó9 oèåÈ-¶…X_PiX|!rá5|ßýõ OÛÝ}iTBÜ›;.M$?©A†l]M¤K+7Ì…6›È~râ<ÁóÄeÇ“ãPùíwD¿Ø˜3»ª3×ùÅ—\¤FGøVý6Ÿ¡ÁëŽê~ݦìîKâ; í2pØ]ø oý»í ÔQ/”ߦ÷ ÃÍçÃ`{—3ìMÎ;ƒòœù…áÔ²®ÀUR¥Îz8×Ù&­bàKåÀRÌÂlQj¼Ë[â×1Ÿóm\å-lz,=¬ Æøí²ÞŸ×—ãJ_f-A§ƒi².p•µä,Ͱ¶¡Ð7Y—õþ´¸~v\N¢ï°Îõ°Î:ÃuÖP¹Mñ5Ç–ü¢³‹A  *ÄJ½©&TΕòÍk0¢¹€,ú¼%¼èe‚O \"Y‡Ï_˜%¼¨£Ë³C/×ì·57å{Ô~ ê†ôùu}3¾î·|*ýeÛ‘k­nßqs=¾åŒ‘ÞJÖ^< 0ÒîÍßÿ‡Ÿ­øiÅ¡$voŸ÷ÓéGÒ Øµ“Z¬ê[xmŽ_g, ¹$¥O« c]^¡‹>|¹÷¢ù,u%Ûç¸ý/ͪÏíf=‰ûÇTY[ûÝW(¸»S?‡ª8Z¯à¬¥:µW©¸FMrGÕ¬Å&«Ž£õέSÚygµ:<ÃUjPæ!…{°Æo¾ÂíÉJŽI¬†¦wš³Ò[žË%UÄ<Y ž¹­âճϕœôŒÓYÚûÆL8Ž|Úï_¦ãyý+g?köz¼áàíž3κ­„u¬s"æºÆ\ ƒÁüu Ìy [vbP«œ‚ئÇþÁŠó¤hÎj»l/êÖ9i\²Ö.Ó2,Hú³Ëf"Àñ˨à9Luóüª8tç38E±a^×H>¶¨eAsÃuɱ‚ª"‚aå¹*\ƒpVذºxÎ7«Â…xõìª>•Ãï’¡œ¥w ¤)ØÏ2KSj¤© ù꬚=CJiÖ]¿¼¹A‚AÚ.©‡• !Ȉ6Ù°N‚Œp[qAKn ²ažá– [ÖQ‰|S-×%ÇZ´ËawKÏUáâgM¹åÅëp¾Y.Ä«g×i>8øa7+˜Z 6èñÝn¿{þŠ´HâÄõÍ­×å–cƒ´ÕX3Y®™ ¬™ÎùšÉ)ïþÕ ¨œ£¯™,„Vu²´wk‰´-Ѻu–h€/H4,hJ4Àm‰ÖͳDÜ”hÃ:I4’oK´áºâX¡Ú­ÃsÇÕ–hžÝ¬ωWήKTcƒ“%K&†!–Ìw7ÿ†·< èƒ.],˜œ§ÆcÅt|Ì/L„j§d+aBCªTS˜m ³n…à  šÂ p[˜uó,Ì7…Ù°NÂŒäÛÂl¸.9ÖáÔêÉL°V¹á[}§6ÀÆ´„¤~nÆ«{çˆy4¬à%`~÷UŸñêî R`›På? fp g}óŒW7—|€ž*¡GòÎÑnlžðú攘™s®áëmŽ-Ô½žñêî—Ñz¡Pœºð–a`X ëÇ?0§ÿ?iån, endstream endobj 53 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 148 /Widths [ 250 0 0 0 0 0 0 0 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 0 444 0 722 667 667 722 611 556 722 722 333 0 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 0 333 0 500 0 444 500 444 500 444 333 500 500 278 0 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 0 444 ] /Encoding /WinAnsiEncoding /BaseFont /OKLOLD+TimesNewRomanPSMT /FontDescriptor 67 0 R >> endobj 54 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 119 /Widths [ 278 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 556 556 556 556 556 556 556 556 556 556 0 0 0 0 0 0 0 667 667 722 722 0 0 0 0 0 0 667 556 833 722 0 667 0 722 667 0 0 0 944 0 0 0 0 0 0 0 556 0 556 0 500 556 556 0 556 556 222 0 0 222 0 556 556 556 0 333 500 278 556 0 722 ] /Encoding /WinAnsiEncoding /BaseFont /OKLPPG+ArialMT /FontDescriptor 69 0 R >> endobj 55 0 obj << /Type /Font /Subtype /Type1 /FirstChar 1 /LastChar 4 /Widths [ 460 549 549 500 ] /Encoding 73 0 R /BaseFont /OKMDJL+Symbol /FontDescriptor 65 0 R /ToUnicode 74 0 R >> endobj 56 0 obj << /Type /XObject /Subtype /Image /Width 41 /Height 42 /BitsPerComponent 8 /ColorSpace 57 0 R /Length 676 /Filter /FlateDecode >> stream H‰œÓù_ að/9¾£z&E2ÙM#ae%¥4¹‹è@ˆq•’ûJ¤\EDŽ!WÈ•û¾ïûÊgŽÝVM;|ÙgžyÏëù>ŸçY€ÿ¯6m=s^íÚwðÈuD®“·¹óñEBx¿ÎfÎ? ‡]ºvkÝuGöèÜËbmÝ… Àõö2í/”9±)ƒ°¾Hh¸:ì×@°­%70‚ícGAŒ3ÌÈÅÆ±\èp¥ƒxI D  #FŽ2p£™ÆŒeÃq‰D-Q“Æ7u’©òjâ$€”‘8KLJý×¥Å+Žð铦i”S3ÜÝ´éT›ž‘ 0s–LÜäì9nî<Ía~@ö$î2'×麜˜§´ä½ˆSždžÓåbÍ-Yª¯‹Ë–¯X©Ä¼jµÄó¸&-ê²€­ëÖ«N …ŠümÙêyoÜ”¾¹¶låU)ç”@iÊ6õ3™Û^æ¾=‹v€;t‰;­å»P9n·ÑiUìÑ {÷Y!{?“ԡ̇¨;¥êêÔŸÔOs>-;½>GÉDò5sÖ/‘œL0°ÌÄe}•Ù]ê3Í–ýö]©ÞnÚ@ —÷ã§ ÿW©G®…jh^¿ÿÌ5ü`¤²O endstream endobj 57 0 obj [ /Indexed /DeviceRGB 214 58 0 R ] endobj 58 0 obj << /Length 660 /Filter /FlateDecode >> stream H‰…zýÿÿÿééõÏÏèììö<< ‚¶¶Û==žy| „´´Úééô==€{©©Ôèèô::œ‚&&‘??ŸÖÖêååò88šz!!ŒŒÅÎÎçõõúýýþúúü55™ss¹ããñ}ƒƒÁááð33—pp¸ÎÎæ””É™™Ëþþÿßßï00–##‘ïï÷ÝÝîTT©LL¥ÞÞï››ÍÏÜÜî..•……Â((’xŠ~¡¡Ð++”€ÈÈã^^¯wÎÚÚì++“ŒääñââðœœÎØØì66›øøüÄÄá~ššÍÖÖë''‘$$’íí÷ÏÏçƒ~~——ÌÕÕë$$ …ÕÕêûûý77›}””ÊÓÓév€““ÊÑÑè""33•vv»¥¥Ó „ ƒŠŠÅQQ¨ÈÍÍæ Ž""‘‚‚ÀÌÌæÔÔêqq·33™ss¸ôôúMM¦ŒŒÆññøŒoo·ëëõ88œ––Ëóóù\\®€€À²²ÙŒ##ÇÇäcc²nn·  Ï‰‰ÄŠŠÄ²²Øôôùee²~&&’üüþff³îî÷Š44˜ÀÀà——Ërr¹>>  „((“ii´sÀ™™Ìˆøøû11˜uÚÚíËËåææòÛÛí¥¥Ò‰ààï †ÒÒ逜œÍØØëààðÇÇã..—22—XX¬žžÏ``¯;;›ääò77š::,,•--•NN¦ççó••ÊÅÅâ22™BB ùùü‚‚ÁEE¡ïïøQQ¦ýýýþþþÿÿþ D_Ï endstream endobj 59 0 obj << /Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 118 /Widths [ 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 500 444 0 0 0 278 0 0 0 0 0 0 0 0 389 389 278 0 444 ] /Encoding /WinAnsiEncoding /BaseFont /OKMIDB+TimesNewRomanPS-BoldItalicMT /FontDescriptor 71 0 R >> endobj 60 0 obj [ /Indexed /DeviceRGB 215 61 0 R ] endobj 61 0 obj << /Length 663 /Filter /FlateDecode >> stream H‰ˆwýÿÿÿééõÏÏèììö<< ‚¶¶Û==žy| „´´Úééô==€{©©Ôèèô::œ‚&&‘??ŸÖÖêååò88šz!!ŒŒÅÎÎçõõúýýþúúü55™ss¹ããñ}ƒƒÁááð33—pp¸ÎÎæ””É™™Ëþþÿßßï00–##‘ïï÷ÝÝîTT©LL¥ÞÞï››ÍÏÜÜî..•……Â((’xŠ~¡¡Ð++”€ÈÈã^^¯wÎÚÚì++“ŒääñââðœœÎØØì66›øøüÄÄá~ššÍÖÖë''‘$$’íí÷ÏÏçƒ~~——ÌÕÕë$$ …ÕÕêûûý77›}””ÊÓÓév€““ÊÑÑè""33•vv»¥¥Ó „ ƒŠŠÅQQ¨ÈÍÍæ Ž""‘‚‚ÀÌÌæÔÔêqq·33™ss¸ôôúMM¦ŒŒÆññøŒoo·ëëõ88œ––Ëóóù\\®€€À²²ÙŒ##ÇÇäcc²nn·  Ï‰‰ÄŠŠÄ²²Øôôùee²~&&’üüþff³îî÷Š44˜ÀÀà——Ërr¹>>  „((“ii´sÀ™™Ìˆøøû11˜uÚÚíËËåææòÛÛí¥¥Ò‰ààï †ÒÒ逜œÍØØëààðÇÇã..—22—XX¬žžÏ``¯;;›ääò77š::,,•--•NN¦ççó••ÊÅÅâ22™BB ùùü‚‚ÁEE¡ïïøQQ¦ýýýþþþÿÿþýþþ itbÈ endstream endobj 62 0 obj << /Type /XObject /Subtype /Image /Width 41 /Height 42 /BitsPerComponent 8 /ColorSpace 63 0 R /Length 676 /Filter /FlateDecode >> stream H‰œÓù_ að/9¾£z&E2ÙÍŽ„•$¥4¹‹è@ˆq•’ûJ¤\EDŽ!WÈ•û¾ïûÊÍ¿ã™c·US³/ß_ö™gÞóz¾Ïçyàÿ«UkÏœW›¶í> stream H‰ˆwýÿÿÿééõÏÏèììö<< ‚¶¶Û==žy| „´´Úééô==€{©©Ôèèô::œ‚&&‘??ŸÖÖêååò88šz!!ŒŒÅÎÎçõõúýýþúúü55™ss¹ããñ}ƒƒÁááð33—pp¸ÎÎæ””É™™Ëþþÿßßï00–##‘ïï÷ÝÝîTT©LL¥ÞÞï››ÍÏÜÜî..•……Â((’xŠ~¡¡Ð++”€ÈÈã^^¯wÎÚÚì++“ŒääñââðœœÎØØì66›øøüÄÄá~ššÍÖÖë''‘$$’íí÷ÏÏçƒ~~——ÌÕÕë$$ …ÕÕêûûý77›}””ÊÓÓév€““ÊÑÑè""33•vv»¥¥Ó „ ƒŠŠÅQQ¨ÈÍÍæ Ž""‘‚‚ÀÌÌæÔÔêqq·33™ss¸ôôúMM¦ŒŒÆññøŒoo·ëëõ88œ––Ëóóù\\®€€À²²ÙŒ##ÇÇäcc²nn·  Ï‰‰ÄŠŠÄ²²Øôôùee²~&&’üüþff³îî÷Š44˜ÀÀà——Ërr¹>>  „((“ii´sÀ™™Ìˆøøû11˜uÚÚíËËåææòÛÛí¥¥Ò‰ààï †ÒÒ逜œÍØØëààðÇÇã..—22—XX¬žžÏ``¯;;›ääò77š::,,•--•NN¦ççó••ÊÅÅâ22™BB ùùü‚‚ÁEE¡ïïøQQ¦ýýýþþþÿÿþúúú i_b½ endstream endobj 65 0 obj << /Type /FontDescriptor /Ascent 0 /CapHeight 0 /Descent 0 /Flags 4 /FontBBox [ -180 -293 1090 1010 ] /FontName /OKMDJL+Symbol /ItalicAngle 0 /StemV 85 /CharSet (/minus/equal/asteriskmath/bullet) /FontFile3 66 0 R >> endobj 66 0 obj << /Filter /FlateDecode /Length 554 /Subtype /Type1C >> stream H‰bd`ab`ddäó÷öuñòÑ®ÌMÊωXüaø!ËøCŽé‡óq–r> endobj 68 0 obj << /Filter /FlateDecode /Length 39591 /Length1 60800 >> stream H‰\U P”Gþ^÷ß3ñD¢Fä^ˆJ€AŸêQ|Ð3Ñ=OÇÔbõH¯çÜ#‘¹gïI¼vŸÒ^`\à(»’•£Lãh"åÓ:Ú@è2]& æŠ{Ò%OÈ«Æ@¥t¯Ô~¼¯ SQÀ'ðg{=Ç» ÇÐD>LÑžÿ‹*’;Ä)qM.—댵Â}Ý}ßýLWÂÌU6’óð*>â,üz0‡¾TDóè{fþ¶ø£ì$»H› _’“e–\%«åßä×F™Qo\Q£”CÕ›î9î3:M¿Å¹ ˜˜W‹A\?y\M³™Ÿ“Q†%X†J¬åzYm¨ç¸?GÎã;üÈ' `Î…¼{ WÝrZËØL»é£&ºA¿´A2BÅ@1B$‰‘/–3ªÅiqAÜ‘½e®,—K5r¿¼lÀ0 ­b©ªJÕ™N˜CÍ©æ¯Z´ökÍj½æ†»§ûwî î#îÛzŠ^ÄüƒþÌt%³ÜÌ5XËøˆ+q?Žã+\lçú˜)®x_²q5„ó© ‘4Š1–&02SiÃA9TÀ(§¥ô&UÐ[´†ÞmÇ&Ž­–>¤ýŒOéã<5Ót .b!¹šƒDˆˆC8Ò$1RŒù¢”áebŸPøD¤· ’Ò!çÊÍr<*ÏÉÂ7"xcŠ‘oT§Œ3Æ%ã™òWvU jÔQS/S¬)ÃTdÚdúØtÇÔb6™ÓÍ9æ%æsfíÄjõWŽ{~ý‹4¢yª»±P4ó½ð•Nµ’28c&1Y˵ò•G¤•®P¥,”³õ™"žÊRš">§@é¯âdVCS½¸!žˆÛ†Mw)Ôx‡>¥2I˜Ú6Qg £BÝÄEĉשQ“²Bÿ qª†šU8«q]x£™oõJ±‘'}- E2Xõ …œ÷ÕBÎ÷p±ŠúÉsF nI›ø‰ÑV“4Úè#^C¨ž·•üð€æÂIï">£ïèˆvÉ:#žãÓr‰Ž4ˆ¡“2€ÎIOdµq¤`áCéâ‘ȇM§å"V‰o°˜$Eqíü÷çÆ¾Õ"„5ÍÎjr–bà‹¬÷O܇Û[]RU\gÛe8&" /‹ˆã»q‹‘‰ˆÁ!®ÁUˆ›°D/¥™¬ûcY?P"É‹ÕÒÂÜÊù½è!Y gð®OYÿ¿dÕO£‡x¬|³j´¬6ì¬LÙ¬¿UŒ™x™[[°Þ´OÅx²†Õ]ÃU~¯ð›ó=ïßñÌo¶áÌÚÊÊ<—glq§"±'Hàuæ<œïyº‘ÊÊ»Aq„…üFá7± …z#’øì&ê ]…z»žŽ|LÒ»X轈•*KLQaF,kl}ÁïÑ·TźŠ+¬GAä‹{Œ=Ìh¸ú •ÆEÖÎzµ>ÎG g(‡_Ñ›(ÁCÎ[ªlÄ‹îq¢A§H'¿P͘ ë´?y¢@³òF­Y±ö,…ŸªåÚEBbÆä„ÇÅ2xÐÀ±/ÆDGEöë×74$8¨-0Àêï÷Bï^=Ÿ÷µôèîÝ­k—Î:>çåÙÁÃlR†„p»-%Ûê ÎvÁ¶ÔÔˆ¶¶ÍÁŽ_ud»¬Ü•ò[—5»ÝÍú[ÏöÌû?Ï„{&üÏ“ºXãnµÛ¬®“É6ëš6!“í5ɶ,«ëA»=¶Ý~»ÝîÈv@O°Ú} ’­.ʶÚ]) *íÙɼ\ƒ—g’-i–gD8<½ØôbËe±9È2œÚ a±Ç5xtdR®ž¶d»ëy[r— ²;fºÒ'dÚ“{dE„»()×–ã‚-ÑÕ9¬Ýÿb½Z€£ºÊðϹû(MÈ&¼“@wsÙ`^„‡<V6» ÛæAØ©n t€h‹Ã£¢¦ дTíP†2 £†h¹ ­&:Äq:Œ:X'0}¨•m¡Ã€3Ð1×ï?wï²Ù¢ c&ßþçüÿyüç?ß9ÿ¹a5é›5¯†öúû*‡’û|´&Q‘Óitv´ÇLÙç9ò+0o9éL¾]ÅàáØîLk‘LF&oðs5™Üí76Æ2­þÇ1†)‚ÑD2Љ÷!„ Í~Ì%zâ1SëÁ„~^¯É^Ý:#šÄF¿yŸ±ÌXŸÜ˜ÀÆ&MjÚè/, ZïQaÄŸl‰si‘ï¨+îOÉ¦í§¦„üSF[ª*û|ùvXûÆæ¥ 9¹™…ui›*©æ\jhJÇUcŒå ƒé_ë‡'1kZÈ?ëRríB4Ã_\C/³û±Á¼/œHúj¡÷qÓôþä Âþ}8ZÓ‘Ò¸ƒ¾ÄEfIšh°;e³¢Â,/g‚xÂØQø¸DÕçUUn¦±Éç‡@øèĶ#^[༽{B´³»1f×ý´¦¨ŸBÕqS$Ø2äX&¬bK·cIwOàñkÄßLoiú?Ï7q\d}­©Müæu¶½¡Ùhhl‹ù#ÉD*¶ -£j¶}aÚ–*i¶7õ "µÜõšÚb¬À¿+5"õ8jðÑŽÉ"·K¢Hª¡ÀßöôÈ\‰åðXzЭøß9àñ‚ÀJ£ù£¦/QoÿÆÇ÷ØiÀú˜{)q»[jMfmÅèú¢QõQîå$%ÖKECK[29f”-ŠË*™Œþh2‘ì°º×~Ÿ‘”1KnŠ$œí°~º·ÈŒî‹cëµZP[в>CÛÓØÒö4·Å}øÄÚÓëš'–Åû¦Ãôã~VZÁZVrÅÏä7œŠ~áUí‹CDÝʪ+…ª¯ÐH鼎N£µÂÖù€N·u!¥ã?¾)Â-±L¨ƒ¯R|¡F"´ÚGŸliòÕ*ªeü¹>ã®Ñй$à…-ë¨GÇ7 ð÷ ªw×`_£FØZ€™ÐП¡ Ú?Žz3äQCúÀÇ@%Ð ø5@ X <4¢­ |‹Çp ÷S»çKÔá:K>W+•+P6ô÷©\ßL”빎ùæÊ©TŽr lež©h{ÖºÄv´+QíZÑo3uþõûÏ~*‚ÌÆA_ˆqŽ³Ï ò ¯ÕºŠò6ø±åO £ðµr%ô£¼ÈEŸÏ‰k-Êù(/FlòQÎ"èw“û }.|ì„}<ê‚ÛbÞ\È"n‹1Ëä­H;„7ÕêÓ[h<ìc°n^³³&öŸ}ú7ˆ²™°ýS`_Åmß>‘…ur®Ú«©µçh“ÂaÆΠÿ$Ì_Í1à}×ZGzÑö2lO›Á‘)À$Ø÷*£÷Ç<Ÿç9ì} Ÿâ ÀÜæ8Híƒû¨øŸP˜L<ï‹ÀÏ€‡€ïrŒ;í§Á§™3ÌMæsCñ|Rœå}ÜŒØ0Çì3óñíÆ•ø(Ù•B9ÚªóÂûÈ>óYà±™[ÌGÂ^jó^»ÊëdNeHÃU©æVg¹•!˘û,eH­¡L Ñ|æ¬kG*"|ùL8Òñ‡Ï§:#²‹ÆqìxßéÄ"-R¶•®·èA}6­–o€ÿí(?¹ñ9¢ÎàUý{ôè!á¢Jì%ŸÝ—²äA†gXÛˆñ†ËRý½¤ä°(ч5—«×ºìêOÛpÊ™2ÚmcÉÈ´ý·úÿ⼫—Cùo®aË҇鬕<×f~GBßtåÞ í ·Kð¬"xsxBáû5D ô!ZªOPç.ý*Œ]­wÑ"ô“øR{N®¢cî^ú¬Æ>b.qžžaðø›Ò<ÊæÜ§¹¤¤Ã×;H>¹ŽTgªÆúƒ:W5ÖÕ™¬±FlI5œø~VùÔÝœïð5ÍË—©TÞÈàgO3ø¹ý|Ù¼ÌcY¦rK®sNÑg"ç^¿º[ÕyR÷lýNûl™î‚Ä ëuŸ£6ç\³ ì?OÝ#¸‡±ßœ3÷[íî'­v¹ÂjÇ:ìÞ yÍ:%fX}霤9©»¬ÐÉ¥'×9*NçÑ =œºÏ‚œOõãÈáv§òç_h²ëšºÛæ(ùò¬Æ½7yüÖ-½€—ÏIœKÖƒ#lÓ½4Aþ wî Ú"X¿“Ô‘#—8Ã苘Mv *vÕQúÛ@²Žýwëà'ßõ¨c¯œ{™÷Þ}‹r®+¸ZÑæ„ZkPÝãi:ÇAõÝŠ¼‚±<T  ªHµ ª>_Å{AÅw`F,R¹y énRœÍS}æZ·¼TÃp½Bó1PÍUOµÞ*uµZWÔ»¢€’gi–¬§P.T¼ßU†|YüÈ÷pÓg×U®VÒº©òý•Ïs\Õ´Z½'Øæ¦iî2šÉÐ ØT%_Á8O€W·P~Õ²Ôûà÷”ÏsCM½Oø Ôyù-úý‚ªøŒ±*ß°?‡À·7éΉžcˆá>ƒš†x§ò`êòÛx>¥+¶¥oQ«²µÐ{â´8)N[]ü”oÓ—å÷±') Û¿ß@n\„¾±ú Åä¯Q.þ° o¿-”§çQ§¼ˆvs`Û„~ç0Æ1Ø»Ðç]ÈWi±ü%mCx\ä7ô­uÖ~H]â&u¹ç#'/²^Vã3¶X_T8†¼y1Õ7嫃;ù¼o»;ø«|Íô“}¼ƒ<«ú¡®S‘õ.´åH£ØO½ÀQñ6Ú~¶kÇñÌ?LQíp8…Q½’}@#ÎØ<í)`¦>~ìD¹ò4pÒ®Ó!à cŸ<寧C,Ÿ!¡;~åØ2ÁsÝIŸ W®¿NÝ íºõOFv{}'ÍÇ|óõÅD y™žg¸wP›gµIÜú4Œ™UÇçý8ï9÷Üsï}ϽºãyA@»ßÅÏêê[ŸƒFÔ(Ç圈Üc÷èZ-Ù. ø0×LÙç€À¤~g @ÄÊþ:9( Ÿ]@9E¾)0é_J^˜²®ˆuŘҟº?©ûrïýÁüLõ2Јzö2)¯‡S<¹¿“ï‹»öüšÄ~ŸÔÅ»äÏ÷ÄÜy&î<xV”óÿ xv>ÞÞû_Eñ~ï kÔ•¤B[ŠÚs=ÁqõÖ‡„Œg€g⻀'o|íߢ½(BûØŽ÷‘fü6ìøŽ`+Ý>©f¢~'d€·[}oÝžKä¸uŽý>‰]‰þã€UðaŽŸ°{Ç”£O*Ï¡ïÿúêD®q´o]~TG<þC@øãw¢¹Ï9ô¿Ê:|QNž3‚)þÌâ?á•_ˆï:s¤îÿçqê,q–뜿6e>:ãÜÅØ?Ω@-í5¥¨£E-kCý,êÇIç¶Ç%ÏLæI±[|Eí,êWÛÔÌšœGÑ”ó`ÅY²nb˜]UTÌ8¸èaÉVAa`H8¬Ìy_²ëJY@8 ׬ÙYÒsÕ*+K6Y–hÄ. \ OcWÉ_…]e×HA¢W¬àáÀXX‡²ï7¥„“nÔËQ@!&ûCÌ7?Ðu}ÿìù†ìvÉÒgð}öIG]}†NzNÇÒfHx'.…’aÈ`TÒÌÞ"í@0 Ðƒä@1P+,¬—õbž=èï†,š@%ëØÛ°?#$û9ÛJòÑ÷;Lf_b‡$¿ ο{øuè‚»’ú °ðOÚ_…>|,ÉGaÏ.ø•¤þ,>=¢ß®$w³V÷„sàÏJ†Öa´c鋚’²ï³mr¤Ap¼=ÁX®6+Ï+ïQ[졹n,i–¾ +׆•k#*\­©˜ÖDÌ"ÖŠ˜VÄ´"¦«RÂvb¼b“Bz€\€aÝwbÝ…= 9 ŒHû @·ÐØsXÇBÌj?Ûjpl²-±åf tŽ=¥6ÙÓ±¹ÙŽ;šsšØˆà´$»EìféÝsNÖͱÌì#ê™pÛD¾ ($Ò| (T¶Éòó³ì ²ÝAÌ4Þ®´³vµÝ¦–”Óô ,@êðç$-"AòH–69[œ»ÌãÌu–8MgÓÖÌÚYcœ³«ef‹O [öK@æjmÅ’NW·+êv¸lQmXÑFµ1Í–«•h¦V§5i-Ún­SëÖœZ§]irµ¸v»˜Ç•ë*q™®:—Ûiwx/Û(¾M èT¬qö\öÁ݈`)ž•.$æFÐÛ ¹çFœV7¬nX ¤ðÔM@KÒ«MzR}Dü˜ð¢(Jƒ5 k; 9&Z@4šMGÔˆ2Žz s:€IÛ(€]™ò•$ýM€&ýc2&å3E_eÜüú‚áB-¤Ý…´³šÁP8`æC¤§§G¼#RéQ›½ÍFsAsZë­5j j{Ô7d„ B=j±·Ø(.(îQ¹—¼€÷¨55j®Ô¨‘šæšöVŠ[³ŠJ’ó Á§­¹™Rwx%N ”D »€k#²Í€ª @r¥Ö~XûI-lèÑ/^/<éö.é-áWîò3\xŸµbIm¸ ¯ÜÐ0äOF'ZÒ…•öÚd|·´sÈT†\£|Í5âñk$! ´6r…m ×d†ä@ 0¨¬ÿ lƒÒŸÒÇü¦¾x'³g£`JŸáð„=ÊtìE¶Ç¤Ü/eHJŸ™V¥ß¬ÒU¥¿X¥/@C) a8K™gºÂú©°^Ö Ã:²=Dòˆ®Ì’R’þEÊ'¤ô›yú§yú'yúGyúkyúŽ<ýËy¢ß<<»º’!¥KHzDÊ*)ç›.®¿Çõ \/åzX§')F'eRæH™%$ýø”»ÜMœçèǤ™¨,äq…H¢V0 ºmWƒnYÁ“ ZÁCü<ý”ÊO½iùnðð,ú7Z© ý“$D+I/x ¼ü3¤øM+¸GÄÿýCƒä;Düë¤Nö뢕ÒþZ²ßO,ÿFŒzÂò£'~9êQËÖC–?èeË¿ Ôab‚[­àBžA·Ÿ"b7C3©IŽø82o¯Nt®°ü¢W¹ N³¼‹A Ä,ÏS/©“ÃqË+/2›xeŠyÄ+'E ÉiÔ-'¯“|ÉË»Y´SÆ þà9qáäïÔmä:ë[õ´Òêå¿Ëeñ+þ85ÎðËÞsü¢/N×[|ØwÀqÁWèi>ˆEŽ"V¡gø€ ï÷Jo^Üê®à"~ÂÛÈ_5 [|ÿ¼˜ÙŽ+^wƒÿQ^ì嫌8…Û b0s_áý_ó²8­Œõòž¸˜J rôžá 1â|¯œÊWJÏ*K‰~ÛôÛwÙ7Ú×ÛרWÚ—ØÙsíÙöyö GºÃãHsLwLs8šCu(âȈOŒš84P’¡yiªªl{!!Ä[_¡ÏNt&«Vª×–Ñhz5©^W--ªŽÛ'žŒ.+ªŽ:ê¾Z?Hé E•}qJÖÕcƒ ÓÞ¬húcõC„Òâ½³·î=ØÐ@«£Ã›HõÆÜè͵¸Žik£6oÙ2ûÙМPú£3–¯*¿hJÊ¢;¿9ESs²£Gª×ÖGßÎnˆDc"»¡:ºzmî×ꇔJsEùÒ"¨¡~ˆ>¯ì¨xRØéóå “a$_iA*þ–DXŒä‹0’Oc2¬F†a›æW”æç'‚Þ¥•"Ûç]´%‘ˇ!«N”⓹|JŽÃ~H$sOM6P·LæžNd²y"hÐ0â7DÈ`©€A£Tº{︽Fb: Äã´AŽCÿÍz±Æ´uÏ9÷^ccÀׯoóð›Âc 6nÂÛ(Ä@D¤q1òXµjœ)+-T[Ò&[J²) Z£Â´Vͦ˜°&ŒhM—‡4¥?©Í~LÑiLŠÚz–%S;ûŽMZUËŸI»¾ßãžïóù¾{¾Ç=­óTV²`]‡ÈAGø^£mÿƒ2^º³s$4êE¡Q€hâöÓÃVëâÎ;T`M0®èðÈJ‡Fw£ÁÄNGк84òñ9‚‹h$´­qD ž’†BŽ¡àÀÒÂT ü [G¾²˜zÂdSt²µµ~‚8LÅ ÔV˜Ú S[ ÒBÆV¸· ‡{úå¨m °#K—ˆ2ê!j± ´éùý3ÅÑl3¾lYa|¶”Â@"ÏÑ–È ¢êÖêV*‚ꤢV­‹Œ/7Û,+øíuÃjG1´7øÕ‹Å&(Äãà‰¸136Ekë 'Ú·nïOˆ 1”¢ÁLÃ_¿ýY¼)’1qJœçÄs"À°æ²ý¦ ÚÇìSöûœýœ]F;ú/Hâœýïv&Ù„'à 36ã@á¦ñ½ˆdÍ q!ÐßjG#°ÛŰ3¯F…€:€>]ü!À_>`Ñ÷ÿàgKt„©fªCƽAjq@ MÇÈx—<>ïÓË@‡veißö, ug©Øê5=ßR—Ûª‚7F+€oüàc€/8ÆËx3“dzY;C1ƒû&(Š XÓ垈 ¢@"ªþfÞ#‹#X PÊŒÆèßâ”~­=z1—Ù-£ÔµHð%òlSsÈåóˆc—É{¿fPneÞÅÈ$—q—ANƒ+?ŸCF¿/¦Än~MìJ‰¨xþ! ZMmS;AóG­Ìû%}‰¬ìû°ÛÒ›É$÷:*DM’ã”ú-59œwDMrgj4‹ Á«\ÅÛö–Mk·=GD’)QäÁB²%YëAÁ:W¹‹øxÔ “ɈNk(!dòôèñ3Ø{ÿÅ7»mæÍ/¥Çœ»Nà£a?~´¯2øiúÔõ?œ;úÖOÀ7øðLƇF©¬‚­”oâ0®' ák¢È²çF6­ëÿù;#…>½A¯Ññ(Çç÷k|õånâž9“¾ùàŹ.›)<Éí¬ ïúQú;·Ó7ÒxŸ3ô ~þúíÄÑêÁ ÒÃìzÑÇÒ1ݶCªgý¿)¸l^j¿Ø{Ó|µýOæÚå \sÁÓª&s³Ë×ào¯ë•k‹y;/j[µmÚ@•¥*´Á²!Ômé ZC±¢Xàà¦×Œ‡‹Žlš5ž*:˜ÝôŽq¡è³7\7¬[;¬·³¾ÝÏš…ò²bÏ–æÂ™Æïes¶´Å=i‡ÂEÉ¡©ß2™ƒÐlþm]}éíòYÿí–k§Ž·:ÙÎC}ßúnfID>•J­¥’¨em-%®bµÆÐ¨Ö46®ÓÇl&fãCÐ|õþ:¯^§•åøüYY¬%åvP)‡‡ ŸÑö7P9•ÀCýQ•õyôøo¬Ñ^[Vêöɪ‚mv[uÛ÷»êêÃÃÕ%%+6]™Çâ,Ñ¹ó¸æª§¹È°D76ûÃ/WW—Ø6ïcµ¡à°,y«tx·¸ªKMÅj½¥@ßV^RUÙQ+4O5ëÜžWë¼åž^=ï.25hò´ù&‹Ê¬³ÕXª+§èÖÆ‰Ž±Ï²W‘ÍIæRÃXåV[ƒ¬œUV£CcJY2ºÂV”Ô£\ JhOåp¸Ü )NÁl½ T¢(‡¹ß ôbŠ™ò‹8*ÇòK2å2S.™¹(˜»d%"ÁöãᬓyýÙŠ_‹@%®FPMr•_ð"¿–ÌÜ©ÕH¶„œj›Ï¦®SÛt651¤ ðg=x-w Þ‹ÿ™Võ¦óéûìKŸ…#Ïï‘õIådÀpMÏ( QÓ-£À(‡eUr º ‘ò”l“JWª›Ö1ºe\ [PՠЍLÆ3P<Ð!"]©¤IrUÓˆ³)E<^¥•ãrØ8›ûv+rr”N¶¶)ìoÛ=“>[eŸé)ÌWhMuµí±Á݋Ի>¯_³k‚Ìj„|&èE•“sø3$‰Øçd$rl‚ÚÞß­A¯ö¶F´A6…;ÐÄÌÁ*3ÂåjƒºAíP95"U)ÊÏèTÏèl£žÕ‰®]‚{è3(-h Hé&WÈ r›ü—Xˆ6e^øZÏÃé E×?‚¶RLcŽÕ·¦çŒµžÈüÇW^ì–àŠtC"L}k]|xrÀ9áˆ2ñ‘ó;´>¯s¤»~Ç{´$´¶ÕcÇÌÀÖH1L*‰­ÄÐäìÃÑFDcN9öLÃý!xôcÏ=Ý k7Žžø[Õ’“÷fCÓ³µ ýÀ†ypäÔΓ›[~û§žuë^½0þIµ2Ý ¸+ÐåßÃ~΀eŒõÁЯì5RîÁ»4m¯™+=d]h[:•»!AYYuM6&o$‡’ŸYE& s¥ŽP{Åé’’ÁŠk·C·Ã©øxêHؾØR–ƒý}¥¥ “#Ã}¬‚ª›¼ÀòŠ<9è½ ñÊd óû¹¬ô43ŒDþAmaHO¾ØÉ¾³v°ç ï—gÊIOy¶œ”ãý bž=GþI­4 Ùä»I’Dî;HÕ+*Qµ„ œ¾jP¾;£æ`Ãe3'¢'>Ú6g´~Ô]S9Á ™•ÁˆÕÉ SQb„ NàÃŽHÄŠp©äÊ› èÄa‹6Uªªš`Š0i£¤'“tl'þå=ÖÆ´ÆãêÌìà;„ŽÀ~î@@L‘”ñû„^k´oá·w‘½þ½ÅÇÙ7¤lh(ädBàT\nµÐãµàäeÍR¹tG.§þ¢bVôq<ÞííÓuCD’øX•bMáCA˜ÍÁ¢ 1kê>E‡€†C$„¹×¯¬†ù%TÒ©’Uˆ¢M„C0’¯Øp=b^©7«“—ö0B÷8Oó‚Fê›”é²TÄy,c¾™ •Û ´éÐI:u‰c‚93ÍJjká6¸Ÿnä7øú: Y¢!rù<-|#cMŠ×LÒÀn}t¼¹¤£»kw}÷‡[Û7T„üÑÊ¥l>wlß.Ç/;Ý=ö|®¥?ýÖŠÅqÅHžëØöçYå"qšê\‰½8‡êô1¥Ì}Û,m±þÈÑ)Ý „…l;×îÙíåÒ–RgCZ©&°zFYdG¿Hĉáì@ŸáÍpÒ甋KÍQ·ÍÏÄhŒÐXc,Šq1m¢îøˆQUW«Tªö¨YUTµ²¯#Ê} œÃ“% :Vµ~´ Ë_×ò¼M(H¾„ÈiÅaÉ(Á–#a)„„PŠšûk¤ ŠÝz3ÕŽ óeF1¡‘G:XñK®›Å•t—ÌL€PXðUÅþìá]¯o)éùé¾ëë¶_ß÷ä;/‚ó-c×Ý‹&×îy~G¤–oËË_}ÏSCgOï?½¦ýððøÊ±]+ÿ>¯òµ#g>×ÑË ³'Ð6æ× ÷`¨O-šÍç Ñ8n4 ðlLšÇP¹QÎÊ¿‡käø€ ÉXR°#S™%<‡‰ògÔÏ’–%+ótQŠ¿^„;€2ÏÁKýYØ4;?H>bXò/jg8…£Üc\–ã¹ËäCÆ>YwÅ”q×wÍ WFãù´Ë±ã½IñJ›øMÂ.~—ÀM 'dÖ8ÆWcœý¹9žÞ‡Æ÷µV=žðË"Ÿ¿Ã]-ªh´!™í¨·½¨7‰0 h§ƒuRbJ"ÝhŸš±e즨3œ‰ìMœòð¿÷_Œ\Š^µ^µÝ”="cA&~)ꑽþ°v,…ýðy·ããø63 –2Kaqi¬Ž®I¬gÖÃ3d]d}´9± ¶G·LÛžèæºùŒ˜±tº:ÝÝÝž#ÜaËA×a÷QÏÉÈ[Ñ·9®ß2bûØ>≎Ì(e):‹©êü c÷G¹ü¢xóY\àËÍ‹*æJÈu •o¾ªp¯ ‹&ES„¦SÙÔPŠK….ã=CX«¼ÔÛãe½Zrþ3 3žßÍCetøîÿÉ®à&Ž3¼»÷Ð-éNÖ[',YgYH‘dK¶±ðÄg¡ l`x9vlLƒ)˜€q ˜ÄÁ! ÆÐִ餯™ÆM)™›"iÉc†Ò¡é Ťi)M€4¸ÓN¦@dúßÉ¥dzÒî¿·zÌÞþß~ÿ÷åºx¬¹.yE4!-š³+¦ä¸Á×c¶i(^1HC‰”59u<Ô–‡òPŸÂºV5²éÖ²Vú?Ëfp8óÞ'¬Í)USX×oeµ0U-ñà+­ç¾z¦ëÐáš9—FßíZÜ‹Ë7«W®ì¯,¯ZØô½µ]ÛJ¿Am^¼ýí± s¬Ù9oe÷нË{šG/tõ5~kÓÆÆôªÄäµY#íÏïß²äÑšÕÀAóá$ü0áDalTSτǙ?ÇÃô*º—éã¶ð›Œ›M½ÖMÅ»¹¬<7!38&ì „] %+420oâÈ…Õ7ÂMPÙ€™T>¡¬S@9#YK™ŽúîN'2¹4ò`á8*‹Š‹¨¢,~ Ø(¢Fú#”i G.GèÖ8,_S Þ. 陉¼ ÉåY¿nŠœÄ›*÷ui©çkšâ,ÆRQñ––”úMä4ÛÄÁ¨¸Pïd.È+R’–(½&8+«ªŠªóÌ_=%f°Ö”ÏNM]Û.ÿ>òòÖ¡s+Ÿ9ýÚ¦þùô+'Iª¨¡wî²ËêÛâÏyòúõSŸÛ}pס»W&{Ÿ_MNl›·ü¯›‡üaÓâdáð½Oñê0ð‘5ŒRî,VTŸ©³j{ÌŸŠ F tAµS*ŸÞc¶ûo°uã#ŒòìqS×Þº¥Ä­Q\‘‡”†(ëcˆ××Ç¡Åõ Z¤ë·ÐrÖ†ü¨A«Lߟ<„³Ô(¬§­P¥€ò®¥³ê´p*HŒ&Éjyã1—Q[—-KÍSý²ê*IÅûyÂWIbFøý*pFr‡VoÑ77ö$(ªËÁ*â§zžôTáî¯-˜ª¬Ò¯Óûu>Åž©Å?ÙÙÍ …J‘­<óxUCç5ªæ×®Þ¹ 5YM¼Ï¤Êgõ´uŽÛ‡Ñ[ôô@»}y¼šÂNäbɩ҈3`•7¥1ƒ‰¨¾*iŒaC…ÕB–±±a’¿ç¶!ŠF˜}“‚}¢ƨbä3‹"ãÀñã 9i Û·jA…¶â¼ÍuÖ N–)ᤓ’Çé匒Rè2ùï1ø°ÑYàÜ:”ç à8ÁÝœnõÕàþùÈSˆRÖðàÑ>1”Ï­ t,ùfm<0í‘÷~þ»åÖ?ñƒzûÔYÇês#/v÷>¼õ¥I¥Ë*_8»ûW›—®ylߪWoÖ'´”¨×!"Ćýö"?qý a¿Ld‡|~ JÏv’º‚œÐ Ð ¨+ª“#^™8¯Ã‡üëq?ØsáP¢N#éϘHhû`ýÇ œÈ_bßÀ©S"´ò¤¤JœYLbÌû›¬]°Š‹G’¼.ÈÞ{gL©Ô‘äÒ´£q=ŽEòÓÅ¥ùiœŸvêÓcv=¨?­i“P^#Ìf‰ÉeÂq‘m©¼ZèWÉÅ~zÀ¼KŠåþýÂ~q¯e¿|B8!þÖsBþ@8+žñ•?.Š_×Åëòmáßâmßm9Æ KÄZ6 ùdÙË› $ÞáuJŽ$În±IöͲ ‹²×´ˆ6Ëz ¶ˆ‚Ùœ%ï«"Û‘ý¾„ò—ÅGU#' ”Ýáà8žófñ•à7dĬZ²$y¤QÆr–ÜPÍŪ¹ÉüO3e~­xÍ.½¸=À¶.f&´2 /èo‚eÊÕ˜ó¾h Õ <1ÀôŠº8Åwþ¿ûNÕjá­¥è/¼RÀ ‹{ pZSØ‘¿ÑÈ»Ps_¶gtL.ZäN=Œ?)ÁkZæ>Ÿ_SöôÕøô…ư?aPÁ•|‘n¹û“óE¡ãX6‘PîOš^ "D_•.£(šNúÔd3j–ÑNy0µ×órøuÏëáÏ=_K§£-áÞÔ¾Š½©‘Ð/S=ÃË èL–\;"tVe4Txƒi-ª³;Ó)5ƒÎ-§+Ô’2è$_zfh¦2èÇB—RŸ):„S…HÙYÉc“!G™=¯x$4;½/u7‡_"‰™E¸9ÔžYŸéÏ g8OÒSÑ„€iäôI>ÚGÒ÷L]¿Žø@­4´rj_º3T†a«Œ5³<]š¾Þ9ukZž¿.¼ÈÚ85·ÆUV4§(›“ߘB¯=EQÉÕûP¹„Ü :íi0ƒù^Ö Dð`%İlbró —$©ãú›£ܽ}êÀ÷~¹KÚX»}¦öî©='Pçû¯5 bCÀj|¦–û͉—jW®VkÿÜ[>Ò0qä?§ïˆúÎ,mt‹Y¬’ ¨ä.èN0«0új«h ½ÀïãÇ·óÛFù â…ÐÞäs ¡0ÃyÐhàÅ04±’HÉQNí²â•ýRÒá°Óþdc#e ¶õ¨> e]0 ÕÙ¿œÀ1–)¸;: º‚" T)“ £È^R^R^n/XgÕÈ’C6€ÙñèÚ9¸gÈ ³Ôv‡@ù¬ä>(±` ìôðjC<ì  €–K@¢Û?ð üÏ=GáŠ)•sÿ[ƒàá9VN@Ô)è•PJn ÖÄ«ØþAåƒÚ¶? Ü@ój¿¾ýÔu¾¼…Ù4iQ÷ÔÎ^®}|öÊׂh ò"?z<„s½ôà8D<‡Šz§^x:¸#øƒì|•ì™ìdÁ4àd¹aÓ°y„áÆLcfsLCrT•DMVL:ˆIv8$³hâp(e|ÂÉ4-±"äE)à?B9êm-M¥øªÒ—A*Z4H¨·Câ`0d2WL&¶ÒÉ s4Åñ\ÇÀ·®ë½ä[ÛÓ•MJeàO7*p4WEFüRoa°p¨À(ž â ž â£jŒ Š‘ÃAÏOžB£d´Ã˜+¨™ÒÔtéÚ à*MµñØ-PtØjDÚ¡U‚‘Æ# ?u‹âÿ¥¡¹ã„¾TÆs)ñŠìj€¶…ëΘzcû ®%¸CÔ¼5‘gUÕážè¯}Ä'\ßòõlGWrÛ½O²Y-â Äú²3áÉÍKn0Ò37”ôÖZr]PIÖºžJx#™ŽÝµŠêåõuLù¹pR­ýþ™^•¨DS¨ù'ÉL…õùêú¢Ù`¶Í0´ÓÚ/´?0—µ›†›–{†{ó qÆ#Æv ›8‹¹™æd›­ŠâºÝ$r!IôÊQ â“&£È:ˆv†%1.+ZKÒb²Á@¨!üޥĩ$Ÿ¤“˜´šHÄéF¯)¡%+T¢š²MzÓ`“¡i/ËJêáÐÏ8Äak–¦„¤ƒ@s’Žh8DH†Èaˆ §ÿ¯è¦Éüs§Tž¹ÞßJá;øÁµ9z3v@Ô¹02€˜¦ÅÕàeÊå<ŸÓ¥üà9:|·¿Ç®ª(±øñ»v 2­3§³}qŸÝ"AR0ÿ°+ž Ð>Y±¹VèY®Öž–ý‚OU[#ßf6Õïk­Yļ–‚ÚüÔ&JzŸÅ°$Mû$Íûx?)êůwš}ƒþÍ{}{ýG}GýÖTf»uÔÊøŠé@oq°ø²áÃdÑ`c^°ž+2KMÀÅ÷iTÀÔ”<ÑŸcDÐ1p€+ôE­¯·x}¾(›laɨiR؆#&A³8Èá¨ËÕ+ìh§Ð#иw ³‚A0`4ÐkÇI­ÒÿÖ­–¶Þ8rÆ¥8 Fè¶ÎãÏÄyü<¾¬°~Ï+hˆPg "Ô€ÕTç¦Ä?Pª¹.™hoR“‰¦Ds‚am`Dœ²ëQ‘x§YR”]…8¥Ì 6…¬ª#EÕ­væØxÔ%L#5Š­2 Á»®d.l' ²Ú(ëq!²… ó NxÅp°÷í:[›-ïÿtdÅË]R×´Ý¿*Ô°eò¥ÚŽ_ØøÞ¾—ïÚ¼Àí¸¾C_Üvñ¿Ÿ¯ÛWÑ‹;åx<¯~«¶¶ã‘ûïß=öÖÏ¿ñe_“GÉy¬vo@¥.F;êáÉnR«³w&05_½¯ ø6Or?OåÝð‚îÆÇn%좤^¢ÕÙ:)˜(y1èâa’ ÁÕW®4eƒÕ W'\m0cZÛ©X,ÝN§ƒšêÌÉò" ”·n‘e°$»¨áýÏÚ¹Ö¬&êåÁîCÝ¿ížì6¸»Çƒz±niÈ8«JbPŽæ%1-GKb‡¥%Ñ"+nIe„#%+Il—ˆ€‹‰ííÿ%¼Úcâ8ÎøÌì=vnoo9ngYàvßË•*Q,Y-~Qì¤ ‘’HVZ•J­ã´–ÂqjÙµjYÄMc:³‡Xʱ;ßîÞ`¾ï÷**  ºÚÚòr—KLä˜ðê&1ûÍæ¤9eúÌq¤;eRçöΉNNï„q³¡+»=‹²#k{¯âêÒô %ƒœ40è’A>·Òè«@÷])^=Õ®l»c@çàAð_Oó¯¡}”ª Ak\ò¦DPCHþ-²9¡æ‡ÝG+òoÎS}‚:è&R#÷üÁÎ1(R[ßÌË ,5»cg<³èmŒ3ê©Y:@''Þuv® îèNªA5zÃ}|LC†‰cšl˜jLƒF•ÓÂF•¦DÍc±©Qy6%ª‡}T5…~~ˆŸâ¹9¾‹ßÎsOñü$Ïñö6Þ@~|î‹sì³´˜u*\Ы÷CÆ”Á£ËØnpƤXS¡piš‚~`pž«]‚.tã_³¯÷;<°utSÝ-/áSVϼäÖl‡hÎõ^¡;ÔŽFñÃâÛ"ÚàwÁ^tXÜG6j|'p1È?  ì騣ÛÕˆCßDCè¨ó":îœ ž/Ö_lÿkð£LP.‚œˆ|È›yÉŒ€Sð„øç _D]:@Þâ˜P\âÐZ…MÂÁÙÁlH(R‹l@õÎj§«ãuøkôš3†Æ£«ÿ®‚Iøt™» nÂÛðóÀíâ;A­f³’}/_ɼœNû+8†2+s•kJA)A"\GU û0ŸNhÉæ$b£žß=±47ÀÄζò9ͱ}A¿æcŠ`˜VLKf®­EËy=Ír"Ó’FUs¶Ik†˜b0Bsãè’ó(ÉFÉ̶y;hËzš‚¿_ìß‘˜ð{üþhT=…sÍÍ©T²¥©)NœJbEñù¼Iäås?õˆ„Xž!/ì÷Bï8Zå;Á®  ÂÑ Ž£ÿ85VÈUÿË[!—ÍB&&6`óÂäÎ_åÈšŽ·`ŽÚœ^¨R7WýÈ"@ À`¾gÀE¼DÕ¥U*”ùœ´ð*\Ðê±è^Ñ_H#b]õsÒ{tÁlÅ@¢z4AÕ„-K.º)yPkÛw«¾¶ÍZ]Ûîééî©nòq'Ј£ÁÖ€±3ãsSc’íH¢ )/Ÿm@ïœq¯&ÎHìjâ4] ”D•«›E.êG`4ªPP¸y7 ÿ/ý„W‚•ì½î=ù}~Ô§ÿfkþpS}IÃl —ºüÛ‹`´ºÎª‰áÈ^˜~H[ž‰Á;5ïÜ=nφwScšÄ8‘…š]¿Ä¹˜¸ÀBNßloÉ.(=‘ªTª¨ж®\ ¨KSïù;Š:Œ:š$¨:æVôm´ ëÇõ“ú½šãð'N½Ø×øz²Q^â 3ºR ·˜˜&UzL8€ÿ(K¨¼ q<…Ý.4ŽÞs¬èÿ g‚pG%àÞ ¸£1z{ŒbÁsLO3“ÏBÙ§=,”1-¤ZÎXš¶JóràúùFÏ+Æž{ŸÕo‰—ºqë[»¶êRqæû;~ùp¿öÅø*}÷ ‹Zq¸Ü98sjs¬4R··ÀE¾;tW¼ä\a(^Õ`*”-÷¿Ü[¬n¼îÄÏZñ1øsëCü7|ÞÄÁ †ÅGÖ®7’NÌEI'çÃ^¢(\5HÓ«fФظAm ­™M™à؇ª{È08ŠHŽƒcä$xœÈŒfþ \™«ÊÇx2sK¹o¨S™»àKåß$þ0\§¬µ¶Áne‹õ´r@ý¿O.ãËä¾FDÊ‚aê1­Ì0ë\¡šÎU’› —A˜¥0°  Š1£‡ˆ!X!¶ Eÿv¥LU$ð<„$SAsÈ_bš²Äܘi07fr¬¯UÖ×*YC„LٌȲIúªJž‚A€H+ãesûQ,o‡u‰HŽÄI”ÎÎ…ish1}ŽáŽc zÒHš²›#µ68i¨§á‰ôT¥K"ì+J ƒ˜p¤ÎÕuªn\0Yp¸VMõ¾zµ”Ë)nY»«ï²´þŒy»ÖB¯oÝ:Rh3 Ïv[ì—r4×õ0zN ²*§a+°åMàòS`›¼<-’OÂ7áyùCø%”ÿ… K Ý€æÀ:š{ãl¥ÜŠèÿp–²9;×ÇèP9å6+ÏÌ/š»Œ©6õS¬¼â„d[ŽÊ6’Jé¡ÚÔ¦_9SdÓ¯™,,_œØÈ ßç|Fúî›*ÐÃÑ¡Ê.q@UNY‚Q¿û¹61𠛥e3ßÓ›è`±Ajni®hön˜ñsâýQ¹wÔ³fæ÷_ Îo;jJ€ÜÜy€æÎb ÓΊcòþ““’g?<è?ä÷´óÁàJS>çbœÅ!ÀIœÎÎá¼Üº Öֽ߲©@áœ$è 1 ëÊûv¸ ¤‰ïÖFi ú.+ܬ熻 ÔBñ¢DY¢$!‡kq-ŒøiõÒJ k¡ŠèIæÿËwÕÇ6qžñ÷ymÇçøëlljã³ïlßù|ÎÅg'þ1!9VHCZE¢x±¦T|$„À ‘´”ŠÐR:(ËD& Œ-жn«Ê>¤Ñ2‰Mê>ºÖƒj‘¦j‹Ù{—¤Òªj²ý¼wgûd¿Ïóûò&P•Ñ«G»Ï7K&&Êâ¢QX« ¹*²Y.ZKlnq(x±´½ôqéo¥ÿ0ù¯ËGl¸8ùÙèFÐúJ¿+ý²´@<ö«´ŽŒ•®—~xq/ÔÀBè>»—P’ÆØFY÷×µðüU¤¿úJ>›T¶ø™ÁÀ7¥~åHÀ¼ÍwE¸&Ýcî>ʪc´"‰ÑÆØ|)¥tÅž‹õ+CŠõ6 h ü¾úc“àÂûUïÇîJ e•J”C£ÒpŒ9Ì¢õ†y ÕÖ¥¾Çi!‡@#m‚aÝ À€GùKVƒF=Ù‹Š2>"ƈ0ëI$`ÓñÉÌôˆ>W0DŸáÓË¿9xïçu ³O×]²»#½ ï(mâˆ>Ïã ëµ£¶ ÛÏÜq,./c¨óh›GCE©Ï´ Â‹D4­Æ‡Nó0”9`9ê…­°¢×¨Ÿ9ÿŒ,F§Š¾†å”á¨qßQ“T¥D;NQšéGCȈž¦(»AŽ4qž¤#í yRÕcò´Js’T Kþ&Ú²c§³c{kìËô!Ùõb਩¥HOÍ`Iµˆ¡h@´ÚÊm¸Ìø(Ë8o$A‹Ÿ€ÇIŠè"§á 6Aþc#‹…ªvT&€w“B\m“öÔTC³](˜4* ‚æ6qvk>‡ZCN×<ÞÞâÑ}¥Û¥¿öìØ>û€Xx‰`oûå¾ý6^º¾y䉯;ÏŸ±…LÏ\|&¿p507!‡KJï~VÚküû §JçKW.ŒŽ~šþyfh›†@žä·µÊ`¬^|ÚØFõቀû%ñ+ah¾›À>®Jé °DÅèbÔ }¸OØ;ðfnshkäùè> Kœ…³Ñ+âõÄ#Á[Ú û…ݱã›pŸÎ%&wSv7ª?vKeuy%ŸêžK–×P8/Ç8ÕDqŒ#ÌWrL Ì«¸6* ƒ0ŽCØ\Ó¬5·Jû¹fڼ̼Êl8h>iÆfÄŒ2pHuÖKÁ`;#)wXËYmQoÏ¢ð¹0n'¦‡/Ñ9Psý¹;9C.CéȦô} tdS‘J¯Žl¯~Ñ«#ÛûzvõU=Í™_Öta`ª°I–5T'gPœEõ¬y*iëÂ@RÖRRµŸ.Î%"p7ú}³H¡M;Z—òi¸OÔ±<MðÉ4Ô±¤(‘Ú4â…T¨> hn²†‡a€LÕ€n¹®¢(ÉA6-=¼PÑ(i9©BLrøðݘ¢D"aF‰Ý’åptÈÿ?J0k¹ êgIp‚iméµR6²³t@\šÕÉA7ïð»ï~ëÔYð­Ú×÷Ÿž€å­['^̯ÁÛ1@iëÿRDË÷¶ìœK;ötÚð«0ö®â»ÐУ?M„'æájµûH-8Á‰­ä4J(n’Û¡[\ù X¤ÞÉÍËù Œ±Ç×SÝãïaÊLv“ÕÜÈ­ƒöAÇVg?ÛÏõ'ûS£Ôëˆ}ıÛ9"ÇÒ´Ûž¶gìÙ`:˜ f‰…Æ cˆ qñx"Ý Í¸Å˜ªN±).^Y]b_RÓa]n_A//—ƒp˜IsY&×áë¨îð¯¬ïNwgº³Ý¹®‡Áj{¬Lœ·†òóã©ü€{À3*3K~;5–¼!ݬ¹-ßÈ?ÌW|•šÇ >Ìœƒ÷Ã.¸†& mª={¼.Àû8†e¯µ+™êã„<šlŽ ›Í!ÛjFÑ¢/eÀP`Ry <"Ò¦.ΪÊ{äÄ€”’"‚gT®Ã"Ô‹À73î…‚¼‰åÀTqšˆØô@cRžñºniÑ€2Õ²CˈþdŠŒt‘¤Bí¨ô¦â,µæ„”Ù#‰ÖZKÅš¨yH1§Èiy–FV[­£‰Ä9ñš¨›È•,Óf^ÖåL/3ž…L?™ý1¤–5Ö^û³ôÙXXY¢±hÒSˆÍês6SÎÆtÊ©ÛÕàâÌGʼdä«X¬kž–1"efÞ•fñ̘ÇDA³™\º^ãä\ƒálÔ]ï^»Wnþè'/·=¸>?ýí¯š£Qç¥õ;5äc¥Ó¯,ýã÷×o›Wå—G$œüÚ®§šÓm;{7¼úÔñûS ›„_>´jwW}o-ûöàþŽÃ¿ÍVsImò›‰7:¯{£OÕ|tá®`»ÖáuÁu,• ·„ÛÃÇLG™1ÓÆŒ!Èš¤Ã‹Æž¼ÙÇ#ÓN*‰ã«ω ËwLþöq8‡‹t »!¸ ~îêÕKÀ®8²xˆ 王Àw)ßMœ]Z«úsíÏÞ+J¾úOánnV \HžO]”Ψwhr<ýKé×äuž&'ÈÓÔ8=‘8-’?¥EŽ 'Äc*¹=±-¹›Ø<¤’›ÅMÉ~u˜ÚN“[è³%øl¸• =µl"Ÿ¡HE­õÄ×±'¤Nh‹±–HB©:êVõªJNRèGy,¬*AQ»Å€Hw Ÿ(‡¡ŽÓL.Œ#þ†ø¹Ë—/ô1»¶ëÊ^#ŒE¼ 3ðæ\2+禎xQ‘¦†¦¡ŠC7@R*àš˜„Ÿ’¹´YNSìÝ$H~戞xLœ ñ–“ðý‰3‰Ù©$¶&F‡Dbÿ|JQßQ_x=…šÇPúöÐ!,åGx!ÛÚç”R„*‚lÑ-Ø6v=|ùŽ&›]¨å³Á”àF<Á%¦nMñ.ÃÄ\h¯MÅÜ C«×&#îýÔÛ‚>$(nO &dÂb¤:гF~°N¯æM}ž0ùô«ðîgëeОݻ– ‘ôµ2|÷ñãÍñ\žÔu¶Üµäù{Dw—:kl ¨É ×é1Xn Û®½)Ô F< «Ï‹.nâÖ‘ NÀ9³a&݆_ˆJ1ÍRtˆ ²t0èP.-„S17ß2*D†­Âùš3pönÁ“elÍ^϶ˆAö4KT‘éᬳ¤‚Üm™•e”+UÇ©5t·N éA¦ JƒÎ@e;µ~‘‘Fä–î!öP{è=Á½ÜþÐ~i¯<–Ù«|Ï>Lüˆy=óšýšs´òú8÷fìÍÔqé]ù-ëmû-ç}f‚à&¤÷åñÌDçiû,}–ù88-s~ïÜaîp÷:ï(ëGìag¤r”%êò‹Ù¹ï–ˆaz˜a}ì†Ü:«Ï&Zò&{£è§û™Í\€ ± ´YÑîÎrÚåØÅªïÄ„½²Ãf.ÚÞYY`hpŒk ¨ìaݯô •¾oXPé÷°™ òÁ ô]Ù,ƒQ„˜—c–]-!¿Å̲éVê²;½0zVæ‚ÊôÂ/î0´â8M†wËR&“eƒADGBÎÀ…ŒÝÉ0šcÇÇ®P4®dœ üX‰ ¦e¹®€á\0È04»âçÔÉ |fzµ j1½þä%§êTUŽUOW¾UÙZõ?ÌTf+Låóû NþHâ.à &¯<Î õ‡®†¡Ó½+¦ñç϶Aûrè‹iþFŠŸ»í‡”âÜ͹ğÚä µÉ{xÂŒ=Ââÿ†ñÑ‘æÃ+xÐüJÄè}>aÿ‡Í¹6hܲĎF Ї\Jàþ (”´@B[Äq‘ȶ<øHÆLÓh,.rš¯Ñcµ¯eãÅùW­ù?Ìÿ±kþ;¥P|í ðeªVïÜuK).–NÇ 8ßU¯–ðžNÑx lTó?¼{1ðí{?#ž;4t]w´ü9?²kË#Ö!0\*,=8—Ã?ÙIZLا:‚aä¯ Õ@Ï¢¢D :%C¦ÏQ½Ë-ÁÍQ+FºŽxš¡¬_¨}™áï=œßiÖè{±ï«¤[ðŒޏ6wù¦Wôš&*Œ7rùêloô%m´øRé„v< œâÇÕqm<ª4n_Ì_Ô/êSOøËòeå÷RóSáSå7ÛÌ6¯šÒU´Ê¶ýï޲B]f:ÅDZk*M§yµIü®v—^¶ÚÄêb+ÔRl>W5š}Òj“âeÐUVOª'ËÄ"!5½BÔ(ãQL-²Ž¶B–(‰A[!uaè#¸8¡M¸¯A}eÅ%U±y-ÊkB%¡Añ´LI ü³dA½²KB&ÓBJNúV{¹\/i<¯R€ìœ‚m•bÇÅ.«QŒð ¹õ:, \J§)ŠdF QÄŒ˜ pÀ7ÁV0 ΀K`Ì‚ ˜Æ¿ò"k”g”mJ@Y‚iïi¸6ÿvÊk¾s¬ÛC0 A »ýÎÒB>IáE¤þ/|#ð† ‹þî ¡v®œ²AA³W`ÖA{»º­¸ÃÞÚDÙj`ó)‹P½;ó ¿_ö{0 ¹#Ïк÷BÝ_´uÅ'óŠÍÐ/”rVæ€z q,Ã&/¦cÓñ3¹8ßÈ5òeü‚?¡eÆ2ÇÁ*~ÂF†Û„D¼-¡§2™­ØÊ|ïö‡ö&Æ2ÇùãÂñÄñö‰LWøa&Qi¯dε¿ß&ç3¶|Òò—ŒvŠŸf H3® ÂpLk£DªÕ¤aHmiµÅÔ@d®Ò_p8hyDã ¸K¨±@:!d !S¹°Œ ‡CTJÖþ3O%\¬Ø2†^Xn[ F-‡Hl c×l%ù®§» Ôå´x&nÅÇâñJül\ˆ/7ßOÓ¢i”WÊFhŒb“º®4­Úè1Ë®SAv~°b®ñH‰Ô®kÍg¾+Ä ¤– ;““DžÂ´GÛ(NP¤¡'•¦°Dy!54¡/K&ÍQš¸”Úè(ôEJÓòÿ°¤ÊGøÏMM‡v«‹ÁØŽäêU¨Õ=–~Ü#ý¡ôè&܌Ŗ|°&µçÉÕÕê»_ÈUü5Ò{¨«Õ©ëÉdÛê6üó©`²‘fYBì¯!Ë<˜Ì+¨:º¿Oy›º{ݽr?÷¸û4;WwM\t/Ê¢ŽGÐ<â<Ä>%Œ{¿ËN ÞÓìI¡â½ˆ.:Y÷ZÀ8ê|n²cÞÃñ.hQÑéþ#Ê'F0*bq±¬¬Ãéjõx¨ÚVHÑ¡ñÞâÏñ,ß”ö–¼£^ÆëéÒd,¿êhT¼Ó‘cehŠ#+ÛÕƒ¨¼W–ip·¯Òø®å{ o€†w6e@HÄÙ‘oÈ7hÐ ^%ðóH†P@ç¹â3 k.ûÌZPp¤+ß`"9¡¡iõ²o}~Š$+s¹ˆõðs¸:òí'³þX~ÈO¼ÃWª³Lï{P=JƹcH@',Õ1D†åb ‘>õ+M ¥^VŽ©10†rèÖžœÌhÌSaØ s–!çÌÌrü%ŒÇÈ8!çâî|?òñ~{ñ“Åí°XàYSàñÈ–oõßûbV‹vvÓ…âˆ'⇃ŒWñBõŽV xôß??·UŸ!ŒíçŒÕf‰çE2.bð”bÉ#ŒR‚»“K §_ R¨'.àÿF{{û‰'qyð䢬­¤Ø|Ç@v[ë„•¦(Å’msµÞìÑê){¢¤Q¦ïÖ¥¹ÌAšíM.Ó ¡ìIPëë+‚MôzµÖ©©hÆrÝ”@,µFÞðÕÆòÙ®@C Áïñ54P(ëñÓñ¸‡Ò) ^Ù.2ðã¶ü¦ƒ/…6üáïOì,é1’ŽééKç^ÙTœ·,ù‹‡; øähÿžÞá™g=?8Ú×Ùÿ½=ms‡£Ñd!ÕÕݱçì†ðcÆ©ê“}B]±÷õþŸàr±19n„Ê_{¸v—Yä^E ¨ \«üË!ŽV°Lk™óIHuÒêU!ïÙìC¢iF‡ì Zç_GçK’@,½Tgy|–Ó|~Ô¬‹®È>"@÷ÏmcÙfvÞ6–äßCÑ‚ÜZW-@¯€çè3ôÙÇÅt¤Báw«„f/uçÁ<½‡‹\£C’Ó=vC€Â_¢W7×ï&ý9ªç¦åþ•ÿð·0 M_]9¯Åžg^`O3³ì¯˜w€€ _¼î¿TWl×ïî|ïüë|>Û;öÙw8I.ŽCI ÚKJX:–¬!4)ucj÷G§Æ¡BkÕ #†P Óª‚JÝ* $Õ¦º+¿Æˆ”ýPGÑÙÄ´­ÈRªAU‰eìûžCQmݽ÷îü|ï½ûüzkñ`g¸Êƒ„¨†9’e ªäyÐô“ÞqÛ£|×x<Š·×;ìó E8MxyäU¼†·ª%ﬗxýçÖ´zó©ß>ÁˆDÉü ˆ³)³‘Ž´û«²wËÿÅw5ê"ï&µ7pµ+C‘°Û“ •LGÜÑÒŨ*9‰’*»vàã¶1ÀL I[4-!KSËý~ º‹˜Ä«÷þþßÙÿ^ï»›|F8Ö ã@zùw²›ÙÖÚZÇ}>ýÙîü¸¸jæ­õÕJrx¡ná¯,¿üÁÄo¢AðÈu€¡npß=% øpÕ¢‡bBôPŒˆÌD-ås’¼9lr&,ÉŠ'SÅŸ ¹~¨\9KE_ƃă|[¹öóe”™ó!j’Êèö†t JÒ·Wå}ÊÁÅ…>GŸ¸‘ DbäyÇGÍÉècÖ˜Cÿp8Wâ.¼)ÜJæÃùØŽðHlŸúƒÀ˜,üS|œ;™¾Æè1ž5žs½`¼bŒ£qã™&ܵR`©g­t†ô¥ÚÚX\ïL@7·Ðb«–hÄ Þ@nÓcЀ¡†òZQ;©ñ mLã´Ûõ½"Œõt]S -ÏuµŠM;+ú)ca$Ù—~ ƒ8–©<*L‘òP&«k-AZšª•ê d pª#)78™0âŠ$æÚ(Â߀ ’Y!3Á”CÍ6ÂH‡'X(¦•´bûý~¨!w4å'ˆ(„#ô6íM˜ºÂïˆ0uÿcÖ*WÎQ6ËÜn& 4A‚(ªr¹ƒ5Øqf¦ôÐŒõP9â ¦N|e•'Jô!v …°B 2AxDòÞN <}©Q&ÖR8ƒ‰8Ì“Va¶{:[(d^’åDü«nÍÌRÏÏå¬GØXa¤îvD ç"y”~Ì;"F bZ,«Ù±l‚ŽÊÕÑÝ"%¨E$ÄêZØå¾†¦–¨qžÕ†ªžo®&˜wŠÄ)y¡¯‹£Üëâ^Ï>eþî½ð™ÀŸ¹O|ו;Üø€š'yif7êü\öÍp:âýÇ;)ODàI÷ ç:®ËÙ“ØÈmtnáF¸ÑÀhäPà¸ó¸kJ:ãœp]âþÉÍyÒ, ï,á ´¤k7‹6ADòšDÍZˆ5 fÕ¡ÐÎÐxèfH…¢0¼ÁY0FÔ-®ÙëÕ,]ãg¢˜¾rUÒê¢YŸ†_Ôvj4^» %Ü,I\³t@º)ñŠdK0iBš“Dé„Ð(Åßh«Í²-÷Ê<’ÙùyËt$NXK¹#Þ±˜\` °a¡@cK!Er¾Bf„BÊñÃ+‚¬ýb²6ÝÌ‚ó€õÐíkµµ¡Bw LŠs\amè‡%òiDàiîdÖc§³^8$ê8uYR)¨FœŠVZÑʽŖ«ÒrUZNÖ²eg6¤D²ßõÂÁ¤à+)}pp0 VÑ´²jÑÁTê`)Ü ä@¼Ž·mÛûôžt"tåÍwovöðÅ…½øç%²uEßnnõÕ—^ÚúÝàèß0þä6&¿?±j ¦ÍÞy¨!þÇëÈâ¤Ev§Ò̯Ò6µ´M‰µ°"‹X’ë±DÛX…µþÔV)Ae•QŸ™”,R{r‚'¹¤šT¼ !_½o GO©¢„2íå’RjŸ)+åŠ)•hœ>¯\¤ßótãûÀ–¦‘õAÐÕÖëÅø'©3"b‘2³\͆qÍv36²ëоÎòµ,§XÐ z‚ÇÏÌÐÜJéøØ~ãPèP-ßÉwzÖGöð{<ŽÃΤwšcâ—Æo+oû'ÒNEj²¸˜$OÆ¥ƒKðdœLñ’HÆÇ㟿&U…­^+Í õª_”ˆK€Oá'O€ ï÷ù)Ü`MaÅöÖÕcÕçWú|¸†‚õtþÿLW}lç¿×gŸã‹?ÎqÎÎ%ö%w¶ç;ñù# øòAFBx¡­4µÓÇlâ5+ûê&5Ö*:A§‚4IÛd t£dST©“RÐþàŸ‰–U¨ÚdB]…¦­ {ž×N…ã{ßçž÷Ã÷^~¿ç÷< iÚÖûB¡Þ+)Ú~INW!þ¢³ì\sÞsrÎ@ïû,ÇZëÔ|”S›]ZÙC÷ùü£ ¨PÄh«2\Ø‚Ê^Õõù#jKDõÇ$&êS$ÒP”.H’Ü>@Ú@‹¬Ü2º»K€Ö€4cª'LPùµ ´Ë’ºûÐÖƒîØhàÚµ£×—^9:˜îh(†B‘„!=f÷m]^îìU”ØøIÓñ½Ão|pj\Ëuèòw½ÞÔ·ïîø1»¶'Ø¿CN>ļÀcWŒ×=þ™_EÎgXFJ¦Ó=§™˜.ÁüEØ\ÈN—³§"åÒŠyÅr¶õGâŠþóÝg÷¬Lþdú\ë9ñüôªù–¥ÖZ?J4¹VºWzXzRj †[Ý— •,¿k*f mŒŸÍÈÅ6&0æq .§ÃÞÌÛl^¯ÏÖ´¬ºú쓚tHŇÏ^ÀÞhö4.ªï©wTV]%ï^?_†b ¦œë¹(¿'ß‘Y¹±†ö°D†¹†X-’¢Þ¢®b/R§8ã#¾UÒd8š lФsçÇÈØ*›2ì"ß 3å€)pÛô7†ZM1Ã0ÄsÖÀr ·×5õ›¥ë€6ÏL±I#$$Ébr%y1É&ETÖ¤ÉÔó vy–Ìâ©ÀS0þZ|Ôø¤†SÀxbð Ð¬Š‘E_k0½#Ó±rl-v/fŽ9q& }YC²ƒñ/á"v*\J–ŒÒ%xÛ–.•šíé’såí 2!ࢉTØO\þ²ÿ.„ùÕg_n\ç·cJà§Ïè_5Ý6¼ç ¤J²3¬i†% +°&_b =M{ؕşÇ›xFö•ã¥÷É÷¡¢ã¯¾!ÆãO‘Å7+[ÔØŒW ñ¥§ô&^Á¸_AÖ¥¬°Ùƒ­ÏQ ÂfTœ SAjwåOeèCåËMHÆâèQ?UÁSA¹!©…HƒÁ¾”ig&ç÷(ºÔÞ*KDíO ¤Ò)–‰LGjOäˆ:+i¨Cb&õ©03J af—¥ 13ڔČφɸ8!‘ÃÑ9‰™klƒémC̾T1L&‹zÆ0…!~ï6Kd߉9Ô} Ììi“ªÂpo§¡,ÿúӄḳ̌È-QI3ø„ØÔO>p¸ê¡uÓ1ÄÙzƒÀ úÓÕ¨8Ì8[éÁrJOC•ÉÒU¤&PÙÒÓÑáž¿ƒ{}öøÆ¥³ ‰;YκâßË­ÿvü½!9)•?Þ5¿øê¯ÿ÷çO6»uë‹éxž´_OÏì;¹g`û?}ÉÁ—o×þ0¾ð²¿û­c?[7,œ­5È[¸½åå¾HÞç[Í¬Åæ(\zé—sýQTGm/…R¡®¦Ÿž>óîÜhåÌÅã£_ýpਚTv¿¶7í÷›Aì¥C—1­44±=g aÞÍSäEïÅ ÞˆP¤QF€ñР•èDˆŠTÉ:"rZjD6Ûí¦Ã2ÝCÖDÜC[}ößzÁxZÃm‡a`<6\TŒé~êk„‰õÀ¥Âƒ+ʤAp]ºaƒµz†‰ºÛ{ÍVu_Ö€ ¶(u MV…õû…õxݳ…áús5áÑ´ ©Ó~1š†MqKw”§²ËS©å©ó"u‰Ô%R—(æ²D¦n™ºeê–á4Oh¬ã‹€ñÕMÓ´\¶¡ÖT¬ö&[p (7Ü”Wâ6£/gôè|nòe—êŠ,çª9ó•ÜZî^Žsd&·+£ËÈ‘p“ØÝá^e]†»Sëîˆ;ùî¡Ø%wwDVY§‘èÒ£‰‘t‡>NÂÑ CO é”Û-ðQ±Uyr…'.¾Ì_äïòfC”ª1²’i3Ú‚VÖÌËZU3]Ñ(•¶¦ÝÓÌÚBö2T…ÂSL$1£Üª÷ ÇÈD8˰;Ÿ§!¾|*|AÉÒÄ©mɈµ)hmGYÒRa^ª0óBW¥uiˆíohtDš…œ•–„àíÏfvœP)’©Å×Gö—Û¼N>ilïn1úy64žL½ZlÉOlîêò‰®P°¥ÏI<–7·NžÙs䛯ï·ÿ4%E‰F„ýdüí}ééméD"¤(^>w„ÝU¯HLJ¡±_š™NÓ uÆÜbv„³ÇAáîED²,"²e¯ÈÚ@?h$ã!¾ «?ãã8Ûæwâ=ŸÕt{¸C·û×)Û«À€ÖiyQ~ ä·s8¼ÀŽf°˜‰ßÄ ¸NÎ Yà}êóƒz «·@ ˆ™ñuÄØaÊ™¶¸Omr²aŒŒÔ #Ír‡ Ž0Ü%΄?Ê0a¹ÓêÅã=5$\i³)]ʇ aï |À“Õù "ñ)Às³N!¥ë9ÔkKxö…yZ‡4¨¨*dA)+Uå’òD±„•Åd`£ \ö÷§iŸ¬÷Z²Þw©´7`â-v:º;<@‹h`$Ü!ÛvoŽ’g˜N»Õëá«6bË£_Ó±3\ýŽÝî8шçEô3ƒéªHfD² –ŪxI|"ZÄk]×~C逽‰áݬ§§ »p4¡Az$øÔçI°ÞßH7AG¼_ãšÂ:ºƒëîž¡¡žžá¡R#Ûcc‰6›µ#(ÅœÄgy†{z†¶å­ð‘<98|˜|ë\o8àRÊ€7Øí€Ú,{§åãA¼´ ÛlnÚÚ‚ü!?¶ÙÿIш†¯‡øL4"àn¦0çh¸OÐèðc¸OìDùÄN”O p0¶ ºâ™#|kPÑÂtëë#ŒH÷dh¬Ïd™HÀN͸a³;(wØÏ®òÄÿøf¼![ñµµ5LTžøÚ‡€yPxñõR“"ê–+Ê›<œ@àû–í_m®Úßq]p¿ã¹ð¶«.¶më óR´t-’–LJ²%Ñm…–£Û´¬Ø­¨Ì±ÓXJ¼Ä²£nŒÁC¬[ìk;$E½C€=Þ^úЇtÛçµéæ>t3‚"O `†í¡°"kšd †ì]ªìœ#ÉqÐ"yxî½Gü9çû¾“¼ZzÇï/EK±sÊ9õ\ò%å¼z>ù¦Øu7q?)nu}'xÃuC¾#ޑ﫟öHeµ)'§ŒriN¾àÿ–,åÄÅ2†s¥)6¥øz•:;­,ÂVäÛÊ?Ïsêñäõ®ëþ¿ú=z—¦$ãÉä1ñ¨ì ¨r¨;Æãr"˜ôžqÕÝg< eI] y£r<žHžÝí¢ÍMF°¨ ¦¸üiÞÑ%ÎøEH`¿7šæþºÍMœ¸ ^úmªB”SöZÇË8öÏ×€÷sáÂ&ô•«Ø*m¦° Ró=A² ƒÚLÝ {ÜÄ;$—DD™@)€'µ$·N]­‡ÓÏÕÁD'elX§=1œ¶z½^Ÿ/DŠñb¥&CôÐ[¬X€ƒ»O@BaBˆp/8ÆP²ŽÞË âSnÐ|éq\8ŒÇ,#šbT,xk^º©eñx‘Ñ¢,Îuí)ÙV†i±Ô/·õ=ýîÒ‘{ÊsxvŽ”¦'˜þv÷úä¢Î}Q_Ó7ômý-˜èãVÂwbY o:NwWB‰ð,Ü’Ïë˜ÙÍÛa8‘Ž==±ÍÙ"gk|ƒoó·øîáokH§%¾Ê3Oh†hG,ó4³t2ãbtb¾Y.gcÁd$vHeªçÊ+ËSqb—óæ|Kû‹xó®Ÿ +®ßµYDoP¯Ðpð[é*}Zµ^Íwð>?z¿q>C³2…â\gÖ\gzœœ5W™¯Ð¼ %J…¥R ã¿U;ëª~©v€ñ™ŹU?†©fhy†–gŠð:Š .ƒëß;\WìÇÀEjapjQ¤qcUŠ¡R Õ@¤Fžˆr÷ñõV ccÀõŸN5Äöø#ÈQˆchÑÜØ±ã(ߌù¥ºƒsruvª~¾þzÝU_öÎ"C£ß̨;ìi WWA¯}¾‡[‡Ð0é¾h¶SŽï:ß —ÙÏüÑ>o©¾ì‹æUÊxÕpd¨…É/S¬ÐU…®*UxŽO(ù ãl›@t[Ý ÿ Ñbñl9ÕNñ­VgÛ…£î¸sÚázæ›å2‚2dïN÷ÂÒÙ_ s?ŽÁžƒ=ÿøãwc‘hZ¯ÖÖèsú'|·Ÿj®-HñöJ™n¶Ý€–Ȱ‘]ñѵÁ¢•(€á«VbþÄ j%t芮¥2V"¿ëê¾–ªX‰90œgSõt­²”¨ÏJV±æ”¬C’àš_^Á34ÊýŸ×íñÍÏòÝßÐõ˜¢šyƒm;†hì2Û‘‹V6cNå‹l£¸S‹èÓj+³ZMÖkâVm»& 5¥&Ö ®Ö&jkg»âóÀY¯GvÙú÷·2ØLÕh«bWõQë4sòØWgoC‘ãV¦_Œ$¼\a¿ßêt\ƒ&—»‡RÃ&ègAy08t°ã‚†+Ã6W€/¨áú?mW›KÒÔwùô'8²ïöèÇžÒ­ãlq½çðׯ—/õ¾xeá¹Í­Û?ùLs&4= ûÝ}éeûëUQì=2×,TKÏÀè©IûÌáha¡9]‹‘ÆMË,œï­ËÃ#ëç^]X¨¹Ô|yÙР=Ó•”ºÈ¾¿‘uìãLsz6`¥Óà+8ñÑb³÷ùÉ>Óì›®³Þhëa.®’‹ûHf’åIè”d-…Å«TÜ´$‚$‰ð@"<4—i1Ð8Ö¹Ö'0>$TãïÎ0Nׄ8-ŽS 8…ˆ[ a‘p¶:ÙjI42Z g!¶ùq…%ô‹f¤«àtáýŽuÿ Q}ö!1esÌ Kr9àÄ{÷È"OKãø¡ €àQc6^ÈiXÅøj¼õÙt…V|Ù”ˆ=%B ‰PCÒDtiäÒ$tiš=!ÄifœqŒÓƒ¢×êÀ……`‚3,Ëžx"J[ªtŸssðX¨LK¥V3Õç±[²±þóö¢½foØÛ¶ç°›9doÁÕŽíݱoÙâŽÍÖÀ±g»â’f%ä]—쨃–•0O JV"x"·)'›*¤G*ùDa¶_HÓ›©”,ýºfú¶%¶#1YÚ®J¿•ÜÒ®ø¾ÓgÇÍ‘¤µh­Y–{ËÚ¶v,—`)–h!wAÁ[kPê@ÛTåP㟷ÎUŠ]*í—2rO$êòº‡¢.½Ÿy¼O¬SÆPÅ«›ð —Ìd°’¿PÀm-yÐùDŒ³…ýpá%C  G›Ó!gÜï®Ô^y9ÄB Ïäd§ï__Xž¹ÔüöJ2 fzX>Å^ymó»Íøª‡J›_gK?>Ã:´?r½u& q‘·+­d ):Nr®ÕÓ)cn¬Dà ¡ÓMÓÜúP†„3RþÞ¤ÄÝÕÉÓ.Çy1\܇9s‡)ãÂ\!§|s“@ÓíNpžL`barÑŸ@`çXÏV/ûéÿÈ.ûØ6Ê;Žßïî|gŸ_î|~ÉùìÜKür¶Ï‰;I놑ƒhÚ„UI[ÓP*ÐhGw´@c1ZèÆ”JL0TÔVÚ@ˆ‰¥­Ö‘v+ËFÖQ•Ðn꘺?¶ýºeà!¡þ±šìyÎvÙ´HwÏ“{ìG¿»ûøûû~Ã? ÿ.¸Z¯ºño¬sݾ?t^pâ¯FYÕ*ôÐêÂî˜ çCdÒRaÐÙ¬F¤ñK7‘ÿF(ÒpŸGèqz’>LŸ ú…-Ï1q”!ÉÜ(\¯˜jeìé†N¤7 ¹oóI2xR¥¿ºyôáY™'ht¨+ó¸Œþ‚©AAª°$,Eÿë_ÔÆ7„ ê…V1éK‘ÉXŠK2)?ÔˆV5»ÐLbÑ,à4ˆRèr·hDÄNõrëµ À~Q£–¹‡ÙÇíóíŸï‘öÄœå1„Pø±\1Á_Š¢#„úIw ï4†- >ƒ o3R=ݽ½-m  Š˜IÔ9Hâòþߺ4}iß#O¿¿©gçÇžypÿ×ï¡f>7ûäÕ×¾ûÖþßÑô©÷–ÿ|üÝë/Œ£Ð±rcy=u±f%²­ÁZ¦ÏªZà²xàŒ'"„Fe¶´°mθþ´é×lÝÕ0D^ÛØQiS¤}Œ|ik ŽÈ~t$}½c kØ*LØ*L¢),rn5[pí–œ¯ íü¼p kÞ&¶)­gˆÂʧ1ˆ3)á)Çõ­AÕÙÜl hõÀà¢þiEm³¦¡O¥ŸA@ćŠqãjpøM÷ ue„ºb"ñ¼\ÏES½Ÿëô–„Aa‹pÈOÌA_®¿o(·%÷¨ÿÑÜnç^ÿÞܳÎר%ç —·³o´8Ö½«›¶ú ï¤Ò1€lUä`[™+#Nú°¡kIÑLSt‡Ð ¸’Å5E$_¡Kåsä8Wåf9ŠûX#sðˆÕ´}R'«:º ŸÐçõ˺C_óë¡F˜¹M°U±Ræ†n«âo) E¤|ö?6ÑZ¾‡õ:“Ý)Oª3ÙÃ4È{Ñ©èêÕ ËÝ¡Ä-t‘PNUÊÄT!H%‹!ìt0‡¬Í¡Ñ40Åðª/’£.˜Èõ4Œ rêž™áïlz~òÍõ½éBKihY‹¬2!!®HIèvù¾±iÇí÷mµF;ó ªTùpž½R;2âÛ——(*É$„Ý];¨íc’ozù͉øšÑŸùýÔFID,k—×Ób¹•0áJƒe9eKe*ÆCˆVaðáLâÇ&ÂgûŸíCÐÕ¿ÚZŠ&ÿ:‘ö90ÁND¬À¶2¼"Æ““ݬ¯Î B9ïZÃ,šó6±uhæ£Y,¡Ñ,æ0šÅ ʼ¬|M  Ý¶ÜšdŒ´“V{µýGéãít§Ü©÷gW›Ã‚%[úpv9ÊÈcʈ¾9»Íœ¶ËÛõ‰ìS”<­LéÓæù{æ«üKò«ÊKú²GÍ7¯Ë?޽ež ¿ƒ*ø“ù‰ù¹™ÕÚw'w§g/^η³›ÐæôeÖhƒŒÂñ¨Ä+*—3€o+žl•X–ñE£„ªú0vyB…Ã@ŽCf'¾ ø8Õ%„FBä/C—BŸ†¨€¯†rÓ¶›S• µ›f·gü#Â<ÞV뿉yKÞ,%Ò–DKJ#ÒtJ†ãÁŒVgÛl¤‡¾Õ&QÁ ·X+جa%DBHØþ{Ug)"¯—Ú)×/«[ƒÒ–çü‚ï–ÆSkz¾mìèŸ<þÃÝ}[©ÙÏ-Ä’IÁ]BÖw×ðg— ©i±ÄÍ<üõëw~uf¾H çëEx½ÈJÃéW鬭‘ŒÚâ7lsjH*øm²þ'ùªM_«6©ŠÕÈSƒ˜>Õ¶°ªxí‚@IáÈÏt‘BØù† cÚ Œ4+y($V‹8áÖP¾ý?W*,œo:ÑfãíRè»®iéBH ªÔJ¿`qÿ¶…Mþa‡PȽw3,Þk ó–Ûyê¡ã_‰a‡xÙ±òùÄKÝÝàÅ(Ú¼-ìÎHðû ¿oࣲÓðàë†Î7å‡Ç´€×ù.Öið:-šØë€]p$óe#+ðJR“a\ž”IYtý å2ò@y4¢¡Œši?Fù¾Å+‹Â•z'½EGAç ' +b‡ƒÌv±õm"âv:žtŽd–]«Àå› ©$E7à ?³dL Ï ²Óg§Căa ޹P‡*—ñ!,,”û…±„PQŒ+É‘¢Øa¹K¹´»$Ç<›SG„ï'Ë¥¹Ìxq²X-2|q4ë9$—½} ‰…äã&®æ®Ñ×â×K9·ØŸ+çk:73ä U Uåj´;Ô>Óáå'9Êåab\î½¶ qgŒ ÅX¸5’‰æ^q½ÂÑ^Œ¿˜p‹¦7[Ÿ.n+>‘y"wÐ÷F|¶øwêZÌ“qv)Ä9Rò@˜§ˆss [þ¬¤DÎEY•A5ôäðbä\/¶‰b"îuÓ¼a~Ktä³]ª¼?‘樻­`8,ù¾ ^Òÿ¢ªSú´Ü“<Œó“üažâç ×Šr¤Cu‚3wÌ€qcÒ¨”ft¤q4¢ÚÉ¡æcC­rÝG7Ë£§Vt(•òÈWžZ4ýßÕÛÖU‡ï¹~݇÷áÇ}øqû>Œ;mâfŽªÙeMÓ–•–ë ˜t+“(© *¢á–D  K;ÈT u‰uY›&T[Ó©B• ,´Úþ ¡Nª«B5Qœò;ç:[÷Vîù{}|ÎÉ=ßï÷}hƒö|Ô…mÓšàJ.Ü€*åÀ§åC|4â'Âåbø”p½©PÂõvk íõ¶Û']DË ŠMRÓ“N!c¢?³Iä/0IHát’ 8¾$Ú,ìØ{ÁZìýÀ=ážxßñ¶šhŒ‚T…‡ê,š¥g=³ü™ÐtlZ›Ö§“3=?ËÍöAÑ1L0Œ¯ä*ù”ÎæÏ–|­&Í¢c¨5ÖQk¨ÁÕh¸t°s\MÃNBåjexT"[ i©6prN¯‘ Öò æäZÎ Aór­¤Èî\’;WD‚%$XBª• ÿæýF$Ã"5‚uBx‚÷RÖ Á¸‘\Tñÿ}àÝ4I¹s]&KÄ ·n•û±ªQeå‰ÀJ ûTz:køÒ®'ÌèO~ÿÆñÏ}=K„²Ùä/ž>øôÆ_z{Ï~gÛ¾~Q‚žW7nüôk{{q å‘ÃçNͤ9 <ÿ£ÏÔ†¿<=T;xìÅD$¬@ ‹>ø'½Ý{ÒQ§[ÃÌTC‚–jàÅÌ^Á˜Œ|2éÊ„ÈdÐM„ðdÌ|Ä,àwÄ¿‘y¦‰G½ HŸ£˜¬³²\i_ïrØ*¨ýÊÇ듚bŠ“6öPÎãöE"§6;*ÖsQÜ;Ê#>¢£Ø‘(ÚEd¹@Öæuä#æÀÇ`šóôÁï’)ðN ÿAç?—‰•SÉø¯¸²Œ=ag¥ÕZ–…ë- ²s8V}‘ Ávk£h”¦ë©qF½»_Po«ÙšÒÐþàþÐhp4ôoÅçWbŠ­xâ1EÕ<7Qýeä‰õuwëé£iäVñ¦ãoÇþJ4Ö³Qý¿€î4Jg¹’º¢SB^¯/= £qQ² _—äùo²_>”üõÔ¦5èàlß.´ÖA;´¡Nl§ê5LB¾ZC@ŸQg[ú@ìÍ?VÄ`ìåD¢©û‰â²ªb®º xsí½u«ßÉ>*Ú¹ñå§>ñãÁoö& ÞkÚÕùMóÑ‚óÌáþÑÃôW³ñ#»­g13ÒÖ<Ïiʤûº¨ŠÛ Œ¦+ËyÃÁ·Æ‡zÈHwæZC&ÆR#5)‰ÇI›p“6½(tÖ/áR~Óz†ÓÏaÅŸ*…ù9| [O†£*«Åe8QWÂßqq¸\$aiµø°Ž:h0‡˜£Œ‡áxƒWÂy3³ºSò]MÌaì *dh^|§‰¥qø™&1Œeä~bL vû/‚= ëCüîìI’mu±'âanH³„X!zp3jÙØU6æ‡ ¶w€Ì »3» ŸÆÈû±óÌîO›vŽ±ÑŽ@šÙiðfŠY@à ™£L( ÿ?aŽçx>k`í¦. AGÑ,zyÑýFÔT-/Iäi™‡æ‚ìÁ 3º°ÐYo}÷ã: ¨àè£0Þê.Ûxç*5 AOFÄdDKR‚¨ ©$Ø8a;°x€b”XÊ„/WÝÄ!è¶@5ÛE'ÜÙUÏáH6ž±Ãw{¿urxß±Rrp7ÚѬ¿ñ©Ú<§;7gG’bîØ[ãŸl>?ŽfvlÕ‘Ù9;~`ÛãtàÓƒ´ £mÀ¨A_s1:ϲ”&ù£ožD¸ ¸hÏß_£ „µÛwîÔ+À8€.V¶(«3,Û“…ßñÑ8>ߨì‰ÿ%?Mž@~¤cày–‹ýIDÇVV—…Ur¬¬ôYî)勪jÜ;s|µ³ÐÓ±jTj9¶‡ËІ”W ÕІØ7$Õ”ª:¤íeö°;¹aeXÝ£a^bfØŸkgôÙž_Q¯0¿dÏ©ç´Wô7™Kì<7¯\V«]Ñ—zn*÷¸{Ê}­w–Ex•×· ±¸Åé‚GFÜhÛnÌåÜ(Š$6jr Òs’CcôQßIã{¾ï‹/ô°CÌ7 Ôôßù—²ïhInJ™P=ƒÒn…–•hZ¦t#MIœ˜†,x®Qb5ÕPTµå¢,Ëéš–gè1¿Ïëe@’ÉÈ&ʯ©¼²€€žF9$pyn–›çþÌù¸S¬ŽA,4ü•—™Eæ½§Xõ¸vé”A±°ßˆ4Àâ}«)ç¶Vq¸¬RìØ¥tu^èAã=îÛ€Q8ÎGä,.¬ªP£»ÞÂõBë(ÿPóÊºÖÆqLi»Ö„`W× WNMøÊ éAWµ‘°ôp Œªýئ" Ð/¢1Ð7—8#ªCñº}"›½ fT ¡ÁÉ5Æ™r ‹‰fSÎÆ\!!Ë lÕlÌåeÙ–-¢W“v!vóV‚á{Pq šKn\)l,ÆŒ¸ÕsÚ´Œ\߆Ÿ=’ ³Þ4½bz×ïz|Û*Ë@¶„¬ù.B¶”<ËÝl±²i1L—på¥XKa¼Ž™ñGüæõz¥’¨ ø,=”3‹”ì¹×=%I,iÁ'A‚0n«X¬—rÈäß.¡uÜD&ÜAïÎ^*õf³å^œ:P+ñZõV½%¬¶Èb"qä­ê¯Ie Òd½·Á`Цm”GËGØ£å÷Ì÷œÌœ 0'Wɸzf [.¾²-¥ª='”½œ•²JVÍú|â|â¼rÞbxs0?hï§Gû{˜‘ü.{Ÿ³¯0ÆÅš“Îda¼|F8›W„EsѹZ¾aÞpÞ5ßuVÊÊç øcÞklÖñª‰Ç„Çľ'O*O¦ø„IeJÊMš“Öx91Á>—˜°œæ8=“Í–U-¬ªšid4Uá þ8ø è.QÝ@¢ŒG!€6,(I©AâIDà'¤êú¡ zÝó.Ül6›¤ÖÄcÔT—®\#Ž™™yĸ7n·5ôš†ÞÖþ¨Ýêý8kCxǯ¦DIðÑq(øš¾€$ "á¼ËÙG äç Òt…ÈÙÌï ÌS\ŠÈ£óù•<™Ç¹NÍ¿æÇ`ˆ·MtÞD„)™)Ó5/š×̦ß̉„£<`ÂØ¬\V›ˆ7ºé¡o=rlë#‡9ÑÃÆH6Ç(Cõ8Dç! /þ¾¦æ¢MteO2ÌÜx'œsPú‹f÷æ{ÝôîíÄHxB'û ëÿ@¿šj*¥ë”"e‘õ{èßT_’Ôõàɵ¿‘{ׯRäÞjkÆ8APaF¨{›š‘78µfÐEþÊÎ\)öIä8sD1)÷@cÛ˜2×¼Î+p1lÜ©ÐnM§…iyʘªÝ ÜTnçnWY±dpz ËsgïWüý£%ñpƒ.µ|-©%­¼S+î ”Ê$÷ç÷ÕÜѧµ§õöèÿd`Rš”'£“Ê+þiF~C]0’‚O”DY, Hò@ÁäLÅå¤Ñ§ØÃö(½©²pßçFÐ~oÛÈ.5•£‰~†d)‘pJ¥Qg h¶Ýjá'ñˆv­×ãgú¥±©D£¹Z­Îx¾ òÃï׌Z½V­ë¡é¨-#¹²4Ê'&´v%mýTf2Cf¦3(£é¥’S-Þ3Í\µ o{¢Žê>Ÿ_×üþl]×ë:ÍåÊU>\­òðåU–Wª9] ŒØ†ÊQ|Í_ûQÿ| »„?$pYÆY¹DQ±˜L&8$æoNEQ´¤Ï#a6¥! s•—ê®vQû«¶¢ÑxgcmlUÂŽ_®—rÀƒY¢Šª ä;„CŒ’ûgÓ×!4­ûåÕeiÝêXcËPÏôb¯³•mAjzÔì`!å68ô„’5%Lô ;H 9¶zWZêàw¼ä½èÓ±;0#yCé»wÁó3RShN Rsbq›EfцÙCãNÕcÄßo‰Äç 4¹Ê:J*jÿá,Ø.RÙ~¹tãRKų0ÀÖíS„–Ï Z~ºöF±kæEüo+s¢£§Dœðo]?dÑ©€™  7ãŠ!ÇHá&ÜŒÏÉ艄ˡž‘{’!t$x24Å 9’$:2´‚qúzTˆöL§Âˆƒ‘ÛqLÄÉ—ÃŽ Mf¢ëýYÔ1]ZÄ©àWVðÕ¡áÓ/ÉŸ°åáø¯1z耇!O¿DeƒgK¿øû¢Q%’®Wðl.‡ÑäqY:ŒuN½e¦3èÎ}{ ÔØžÝþÔÄÒ“{œn»¨õ¹ßÿÉ®b±û§lÜ8|í×=ñYS¿¢V¤Á'žE€%upüîü¹íT6¥³¸ø%Y͑٬/œxací¹aˆ¾ûµ dªƒ›duj QÄÙÊ% bPq!Æ`’=WÆ.é¹$v+ž[™ß*&¬eë.ì-ûzg Y›¤H²‘Ëä‹T!B€‡Ì‹øb8\%ˆZõcÑó—Î"Ô…p}µ½|QÚ÷ä3oñÚÆ ÐsÒl‡âËK°^1ɾZ)úµÆ÷|/m#YÖb4&ÆZá˜ÁfCÙ˜a F¨4t‚=ÁÔ¾{6~¢p–9ÇÓ^ˆ=?[x™{Y{•x•ýYì§Öq£öÞ¶ hË* qÈSê–÷…ʦ¼7˜”‹•‡¸0ü `Yž°·†à”¡KsL¬JƒÉlJü†w›³3NB¬)JLÃj!>Í¡;Ü GåNsç(n¢Åd°;…­à&¬›b ‰©™™š>R@v¡U Zµv!ý:T©ÖPêû—:cKë«UȤëvÛõ>ÑÚ¿¾dõp‚?„‡æÌ £åSõ'Éa4XŸ&Å=-õZ£ZQ¼Jv^ÒåÑ›‘b1}çºìg-4¤çUVëþ°ñÖŸy|¸œvò\òÑìÎîU1­IJÖp.‘ÛÝ­ ™ù‚XWÓBkí[/ý`Wa¨wš!gJ^âaõšWŸƒÕA\;ÄÐ*=CÏg„ ô<íŸQPP9ÜÞhψí§¡Oü ýyñ}Côo®Ê<¢”(%’‚ßçCßñ¡¶ï¨ô•ùm»Dô¼ˆŽˆ§DR,“ÑZHz&r¯Âu ´%îKÒÎH’Ì£¬[ñù®pÉ-ˆb–¢ÃES’/(A|ºíC¾rß&‘XF$'.; ÉnB¥x¬R;ˆÊA7x:Hc¶ÒR*”—u‚D¤U~ÑK!VÇö¯.:÷a¬v–$Ø!¬7½nëñmBƒÚmjbQEÒ2ÈÜ6‡~bÜ‚"Íã¾°qÃeòT:/Ø 8¢‹GÙ¨#Îoüy.êÐù0voÍ…út»?š 9´Áî‡spEϽ$> M â!D¥ë(=ˆWMf8Aé õåÀÚ-òh÷ݯ6ûât~E¬ÿ8¹O‘Hë~¥†´Lå±®¾ön¦:NllŸ£ŽS_ð}QÄØ/Û˜¶ª0Žÿoo —¶ô^ ¯PÖ2Ê[k)/òV(t€ã­o[ƒ8 2`oc™š¦N²à²Ìnç'M4K¶U4ÄÄIÌ4‹Œñ“1‹[ˆš°Ë4FeøÜöŽÅeJ0ÎO÷ÜþÎ}îsNÏý?Ï9§÷vP¾$¿æpáL¡ŒÂÉæÑ¿Çøæõ!f~R #]þ Ð+¼‚šc TœÞŸk¥}È 6aF`…EÆyYå5YÒ¬KŒøŠñ!šè–յнmug5¶› |ÝÒ[%-û2ZþFƒ>>¶ÊJ™¥¬4­†W'§%åVÛ\õº+Uî꒜;ÏÇ'T¹‹­ÙãÁ#ý~Që'¤õvTkÀŸž`¡ß • G$ѯªTyy“Í4Ckt^¢r-´zóK+TÔ˜">TÄ›¹}Cœ$õÖ`VªF«Ó$§ŠÞºážJ6ìñ•d—Øb‹¬ÙcQ‰ ÔÝ]f;p&xðªßw6ílþ;žEÏUÏž¸cº)Ó Ý¬Ii¶XsÀ(ù Ω5Gœ~‡‘d¿VSXcõ¶¹ÞmsϸY7Åàçè ð©ÒËl†kãâ-…‹ÌäÅŒ`ïFP¿„ÖBã«´¸WoÒGŒŠ‘VµÞ˜ß_ËE§úÿD¸F­ITFgUKYíðKÌþ®µZ›h4%åùKëGfï.;+B>«NÇqU®‚†ñ®¡÷Nw¸2S—ÈqÕ®‚S{žyåÈø&ûyúå ÒºuW••˜$V€x3ñp м h—]ÀS?aH&¿¾ø0\Œ_¦Ã1Ì×c¤= l›ìq@ÆQ ³pÐ}³ïyù€³-†û3 ÿ[ °(§ÇðI ôe \¼4¶î_C’wp@Ý `×S@S7Ðò1 _àBŒ¶^‰31‚ó@ç×@O°O ôÝž&M¿r‘ïbŒQ\”ƒé[ÀsÀ ã ixñ`–òð i›£1N~œ¢qÎ ožstÿ7?’ydÐZ õóVþ¿ã|­ŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒŒÌÿ ` =XÑbR‰8lZXé¬Ñ&êx!)9Eo0šÌ–Ô4kú6›ÛáÈÊÎÉÍsºC¾§ °¨øñ’Ò²ò oe•¯~Ô¢þ‰»v765£5Ðöd{GpOgWwOïÞ}¡‡ßðr—6—õß%æ©ÞBÕÁj°{B†p §pÚn¶[ìéëëÔÏŽ\jߦh{?†ñÚýöõpÀ~ý¯KÙÿ§ÂnڃÀ4 3ÕŒ™Ž˜GV8ÃÊò A²ÛQÉfÉ\²•dG$;Žì•@Ss ¹Þ O´†§Ûölëh nÕ娙êfÔÃ… åraL •êi´ã]÷ã ÚÐjo'ÿ ¦0BÞñ-ûQ÷§ìªrqUÔ¢¢l ð “|_ð)”=…8 Ì<µpJ²Ä«{g (’i¢6ʃSZC…ö‰§9q˜kœŽfV±2øÁ%×þ>¾êgÎÂE{Ÿ¿‘~E¹6'x9]ŠsùÏ‹a㜠endstream endobj 69 0 obj << /Type /FontDescriptor /Ascent 905 /CapHeight 0 /Descent -211 /Flags 32 /FontBBox [ -665 -325 2028 1006 ] /FontName /OKLPPG+ArialMT /ItalicAngle 0 /StemV 0 /FontFile2 70 0 R >> endobj 70 0 obj << /Filter /FlateDecode /Length 18544 /Length1 32988 >> stream H‰\U xTÕþϽ÷Í„dY@x“GRÉÂDÖ†@2 , Ê’! ™ !Ã*h€ Bè°ˆ| "Š€lŠ/h@°¨hmBѪXeÕü@h¿iEæõÌ€úÎ÷æ{îYÿ{î€HÔ@"oda·ôI>wP3Š¥#J*=¾ÉgJ¿æçÔP2g–^ç;5‡÷¾lÝ'ûÊ+ãv]Šì^-Ÿ:oò;cÞí ¤¥ýk¼ežÒcÕWûÛÊ6yYк²Õ.èåugo嬹ymf&¯Wm^ZUâ¡Äæ €÷ ^o­ôÌõµ¸èXÇö²¾>ÍSYÖ±jÿÛÀÂΜO”¯jæ,ΛŸ…*¸ï›Qæ+½ $püpK;ˆ8~ãµíˆSIˆ¬f~/¿ ëRp?øß³uãÝØ7©oâxŸ®³Õ[8€|Œdc#ª±µ°a,K~‡&åk)Îj@7læ|6ã8ëŽÁD;е.c!–ÈOÙj #€AÈCVÒpk6Æá¬ZŒÞŽiðQå¶VYk¬­Ø†òcë6"¦ãÖÚ—Ö×Hc‹uX³´¦Å>dr”Ö|3°AŽWd•[?qN<Å9(äâ8)ì½ ÍKÕ2‹½l±Lë(kuÀxx±© Nmœ•kG;Ž1—½®Ç^ìgjÄa|EíºµÕºŽ8¤âq®§'èˆ Ü^ȈiŒRôå*¼‹?á$ôž¨ÒZº–©=m}†6èÑœív¶üÝ ˜ÊTŽ5QŒË A´ñ!ÎSùyËíäÛg, Ôö¬óhËgÏ(tÂÎÞÃ4…Ï»Ž;î-|JÆ.ž’)ƒ†32i M§¹Œäs´¶…rßC‡¥/èç):„rî*z‰Áb$ÓQ&¦‹ÕbhŸ‹Ÿ¤]FÈ–²­L–CäxY&gÉy²Nšòù¼ ”?3Y*\uR *I¥¨!j¢š­6©fÕ¬ÓŽißÙÂm•¶¥¶FÛ?íÙ3ìyö|ûxûóöýöÏŠ¹;?À>ü÷=tN.’.¹«DO'NˆÜÏQ*swªØAËÄ|jµ¹¶þ¢?Àu•ÄX$^?Šþ2—†Q!¦ˆw¼ÙÚ(žV >ÀUuˆk;ÁžçÚ´@\³9°— úrÌew•"á+y–ìj3þ®Â)†®Ší2»à°ÊÐÜpÊØ#§Ó|ì.žN·ÂVp ]<FQ:ý[ZbwQoy‹ñ¤øWù/Ãï©T•czR5šñ:ߊ.Ú4[²­-ýYT(¿xˆ ÔN®®/u&©µÁs4^n°]§1M*gäœ}“Ø#sÕu­€¼|æc)¦[‹0Os«STIO QãéV-Ó•“¿ yªŒã™¶Ÿo÷Ažƒd.Kb¹s†s_Œæ ±éEžŠ;¨‚ïøžb'Ð`%Q®EO@ `¬õ:Ö[å˜f­AσZ«š=îÀwx;hIàøÐ‘oήåˆ&-ÇJ~qZŠºÏ—ÑN¤X|Ï´9ÈÐÞ_}B ´VXãî~„'ìzLÂoð-WùG* g`„¨·r¤ë=‹|k»Õ‰Âᵦb$a›]ƒÇž’™5zÔ Ì¿п_ß>½{=Ú3½G÷n]ÓRS’»<ò«¤ÄÎF‚SïÔñáíããbcÚµmóPëVÑ-£"á-Âì6MIAHu9ź™Tlª$cèдàÚð°ÀsŸ ØÔY”ó Ž©‡Ôô53YsòÿifÞÑ̼§IÑú HKÕ]†nÏ6ôF›ïf~e¶Q¤›WC|nˆ_â#™w:Ù@wÅz³u“Šu—™3Çëwg³»úˆð,#«,œÿÈëÃ#˜`ÎŒ1|õ“A!FĸúÕ „ErRf¼‘í2ãŒì`¦LtyJͼ|·+»½ÓY”–jRV‰1É„1Øl™RAV(ŒiË2í¡0zE°,×ëSøW4FcRqŠ£Ô(õŒs›ÒSŒÑ*…ãf›1Oû¿%;o宽·½ô»b+ôàÒï¯ÕÍWóÝ÷ï:ƒ¿EEìƒmEbN±?‡C¯`‡êM,)r›´„CêÁJ‚UÝ©¯Ìp%ÅSt³…1Øðú§óÑÄûMÌsîÏ<`C¼K÷rNs`{£È“Ý¡¾ üóÞŽËÔãÜIK­nuØú¨–wGäýLÙ½½Rrà î!KÁŒŒÇ¹!L½DçLÜ×Ô'øSÖþ’>¬ÆO±•YÊ'Ra¶È*öG÷ ʃö¦–mèþà0®^yPâ¹+±%Fß@ öɽVãý_x3%ÅLN¶ˆ=‹Ï”sÌ­{¥¥Îi†á‹ÖùÃð!±õõëÆð;Á^Þ˜‰I¼0kòÝwÖ:&µß‹ÿr_õÁQUWü¼÷î{» ”…t©A B á+…²ˆ@ òµYi µH¤R©–vT– aI:Ö&Ò$…’&tØ`¬ ck`FSìS§Á¶Ò?2SM§UL^ç¾û–̓1TÛšÙ_~÷œûuî¹çž{_hÚ䲸^Î5nM°˜k¢nM¢{y"¹•ø)ŒûoOü†F¦,Ù˜×F~Jõ7œúüÂŒü‚H8mI¬\ù6¿¨ŸäÔÏIÔ©R<%7l¤êª¤§²A¹:ј…𸘀Ÿ%ƒzC›Ï¨”--/(_êü/œž~“Úì÷¸—¤kÝ”™ñœÉýå/÷“û™7$fÀ`\ƒùE‘Xlp¿:„š3á2Eˆx* §§åÆ©'s~mvÇFYj<—årÄŸ£Rb¿†©ª\†?ŽÎÌ)yHt±X^FZ^¬<¶¶ÍŽ®ËH dÄÚõ³úÙØ–%ånà´Ù§÷¥ÆóªËà«Z…N‹Z2´ª‚–VU ·ðPU>¥kznù¢²–ñ¨ ·§…¤VOhYJc‰ò5¬ò”î—U©íø‰ÊZ!R^ߦ‘Ôù]FëÛtG:üq>É- 'GŠ<~e™|má+é+}+)7@WNöerd<&ý™-¥â7…B\¾.¶RXæCß5K(¬í¡ˆÞD2Œ1'è!´m‚¼|šû¢}1ðW`PŒVºÀZ e´mç¾c #y+EücéA³ÄîÅ|ÌNº8‚rƒx‹­¹´òQô{^³¹ ú°š¨úè_Ýpr=Ê«Ñ/K•ùjð],è'aœ}j½wgh–Øj¿µ”aÌåÀnÌq8ÈG›ð"`ÖIUZ§Ý€z0Ubþ=¬+^Šqv¡~ú‡\‰òhØa‡éÀDýÍÕ¿Hσ§aý¥ÎºNÚÈkN¬ ö+›®‡cc~20節 }®Ý ”d›•,3²) ®RýÚ,¾Jüõ”ÙMÃOÄ~ú 0_l •5ØYh¶ÒA–[í^q˜êŒË4uß·`ào¼rõhšþÊ´&ÐvÄ×bŒ¿8‚1ÿ.ãaaþ©àlÑ-ch7P¹þåú‰}yöuæúÄÏ1ÜD…À]Ø—(ðÛƒù§±Ïyßµ’¾¹hû6Ú¬f@ÿ% ¬c’ûpŒ5AÅaÃ5¦´©_ÿ@mp!ãLu/aœQ€Œ¦Ý@PäÏ17a^CÆ+b†cSÆbÃì„a›ŒYg Gä~:g¦^Åó¤['¨B!ÇäóÂ1 [ZܱùLq̸,㻂ã^{Ÿ×É1•`œ=ÑCw± ò "¶\æs›ù<Ћ© |q\É1Ëö¹Ì~áX“>Á™PNti¦Ùl¿c’vÎlÖ—åëØ ­Ã©cf$×ý§úÏý¢ÙŒœÙl¿kvÙ6Öó$Ÿ _–¤¹ ý) Ü韬Õú+´6_1,¢ËÀƒ"D9fˆf‹ìOygúbó zÁ¨¡½¢Ëþ£¥¨ÞE»}AZ‹o¥a<—~‘*<>xKRõ‹9o,¹ìÆ«—9竘 ¶pþÎ+¼­ðð!âè§š3ÇlÎÏò~@Žv;ñj_IÄç9:ÞçÆ§'N+<ñ9Ä—^–w ò»{NaÇ^wýœ9ÇqŽä<ÇyÆmïå¤þ1½ qÌyøЍs=Na9l|S}äaìw©m[yöq«Õn4FØÖ ”ÿ˜öq¬{[âN Û}ê>äÞ¥ŽžnqïQ3›6«|vTæ›èÇò-‘ö ²NÒvó*ö9PÚ[§Î ü »+D9|~ª±ŽQÆœGèÕì¹D·ò½Àw¢±~滨†*×ñ^à¾Ù4\Þ ¨¶Ÿ“:ܩ̬3K©Áê¡¢¹¶ƒ6ð^ñ:ØÞ{ÿÃ4ÔDžè¢éâçh¤ÁhW'}¢ã2.¸o^?ð…o=ù³+цǫ—}B4Bùã¨ô…ì·ÇûcZAZ%ß=ô³˜Jq†ê}Qª·Šqæ‚Ôˆ1Ž¡_1Û‚~£å}½ŸîÅùªBnªBÎ!ÿûªÑŒõlC^Œ(|ÔL·šQø°B®}±prì>?FÝÎ1bíGæ÷Ä~Š‰É´Äª èjLäIÌ»º8¿Y8»{ѬÊÛ„¹÷BÏ}ð[†ß|^|!J±¢ò@Ò~§`~ãª7–Sâx¡?ü°‹2q_hˆ½Û€é¤ü¸Bµ© 8¬¥zLê³éU½É¸qËwh»ØA÷‹šaL§Qb8eŠßá¬~L‡Œa´F¼L‡DU³,Rh¢¹ÑŠ·%ë/Ð=¬×_…\K1ý«è[b m5Z{¿§Áâ>ì5ú™?@œŒGÿ0®‚öEŒœ­Ý(lŸàvrŽV»”!–R¦ì—i« Íz>ü¶{ {¹ÜÏ^Øš°ÓµñöÉuò¸èÇmÄ!šGd_&8ÜW ×P3P§ÿ‰rô=­ æ0åiÝÀa…_ÐRÉ-@îø™Ú£ÀT1“žv <ükà¤#ãí6“^vaì3àgø»€¡/¢YÌÐjߺuÉà¹n¤O†™Jýåg)ÊÐ.Û½ o{øyæ›%æÃŸbñ †µ"¾G°w@ÆôȘg†x–6 dÏ@Ð.P–ô¡ƒPòÝý¼ \Jâ4fu7|.û> °¿Û¯Iÿþ“‚*†¾ ]¤qàp‰ñ0mc@΄\æúS»ŒXc4Ò¤>±Ž±BxÇÍ÷ê½²w_’õgèX2Ü8HÄÓ´“! =à•ýçh'Ãzu/^/‹ã Bw¥M$cÌ#[wãÎôñ°u´ìSÍHÈp–n+û¥†<»€ÞJ÷3õ3‘¿$¿Îb¿bNYïî»/Þý}!qˆà®8OYàBðB—ñ­òE¿˜/pâ=!s.éö´¹v&® |×ÜxÌÿ'àì¼ t/ý¯çâ,Ã9"ÀyâÞ! ðŽìÂûä^ª$êE.ùdð3ä¡"ðkÐáöî› Ey8tß?MtõC”‚¾Ë­‹TªSïÊQÐýRõõ«ñ þWCtuå¤Óÿj° å÷ÇPþ3ø ¸íßE¿à³N}ïÈÏCîüFù p<HF ÿ¿G®ûý¯ó¿?n–ñfY;Ç‚Oƒõ~CÜ4»û9{¿5ÜýˆMõ-q=;~À7Ó›x÷Å“¿}>íÇeìg_2D±Ý‹7å~Gó[–ßÏòý¨X~¿Éw,æ¥3^ý±M\wü½wŽÄ$>;ÄIˆã;lj1%Áü4>'öBñhg „H ˜r Z¥ÑC*ˆBP'±Â¤…õiZUõâÐìÐ’)[;²vTcôGÚEÝúG¨ªvhTÞç“vçÏ÷ó}ßïçÞûÞóóóYºÈ¨ÇÆŸ_ù³3~ÿ |ÊœcÔ³uõðºFÚ‘r¡ˆ,i@ l5ÐtCÀ0`&Žlä0ð<0 Ü52ŠP”zi¢ƒÎ4zàPÈhîÉ4;»Œæè·Þº-ÃÑg2²MÙêµ™ðªÆ /_™aWeH圛šŠ¸7y`¤–²ß¥D"—…B¢L0g#Šà­„†'¡(ÙG¤ô”@SyÎP$—¥Ùqa­}Ææ36?šï G¶°ÉëÀ$ °q~Ä>Âû,ö 6 “À `0³Yœâü€}@ì}R „n`˜ {VdïñȰÜŒ½+²;¸­;°<†Rv›ÝFiNÕn N°:ëH•Y§¨4ë¸Ü!ý)u…¤³¿ÊAér¤†Ý$À0ØMt~“È@+Ðôfx·àÝ"*p¸ h^o`E@f3ÀÛÀ-R(@+`eï¦0ŒÎn¤RÄÍþÈÞ"E˜ÔwØï ~›½iðØï ¾ö‚gØ›)¯D"vä ®Á"¸ùö›Ñ —”Ž8Ù$¦G‚­Â@ Ð f6ÉÊSû$:¹Jf°¹J,E>5øçä+QHJ  kLæ&°éix0Ãòp€) Ñä&pî%xÜ~ø"Lø‚¦±Œ¦ÑÉ4:pÀ†n` XÒ€êr>dXl5ºçÀl”³0r8[âëFaÕÙ¢[x‹Mã,Çéc>¥LôˆAq³0ä¡/mñ¦½¬–¸ñR@\N«S§yc_åýó«.»œ¿}‚éÉÚࣣø1¿L»ßÑ®ý²,¡…¸“.Kĵí;ÛÇéçôn,:NïqJ´ ôóØv¢‰D\§» ‘é=è°bî:«—È\Gd«7£»”ÑUâzè*8Ag³‘JCWi³:庑dE,:RQahŠd’44É"ù?53•ÐTV·Jf ÍŒ[å­ÁxÒx2š¼ÙEMÞ,4Áÿ÷èk éh]¢·3Öçõøc}@væØþbMÝ+Ë#½ ž5!г·w?ç=}ZÂßÕzýQy¤®ó éNž®óGGHg¬­}¤S鋦ꔺ˜O41Úܺ¶ö±±N?kmë:kå­åc5×>!]ËÓÍ|¬Z>V-«Yi6Æ"Æom±’ÆDSg†G™=ëµ§Ô—ht‹ý Æâ­ó/0ñ7S{0¡-ñ7jyO=y*ÂSøMñT>ÂŽlªøx¯t‚þ"›vúIpàhò()Ž}7šù$q 4p”OxÆ“ÿë@.¦){¢ÉBâZÕŽ¸ÞÖÑ>b± ÚÃoIÛ´³Ûczz*\…à&„‡B«ç1›-+üïïÿh–›ø¯@eWG©â¥$™4o¼a+hëÀ½vv´Oàq‰ÿ=$¸Á$ ÒäbFÙ$ã~¿‹8šõ²ó0åÌU¸$¹8>K|ŸÂ~•ƒ.Òx…Ñ9³Eg•’cšH®Å4GI‰Õœ3Ç„kl5±Ñ‹t)Š_Ö]ÿ¬øEýÖ¯ëI¾øfuÏésVÂ`W$daê’CþEdÓß#TgØ÷0ÖJ¥¤Ÿõ l+ÝÊõ¶,§‚SÿÙâà³â\—ø ©Þ:¿º†¡]ë|…¶‚êo¼ŠÉÎôßMΜ)¼¸–ÑÜ3kjkWr—yM9K½yyE6=ýŇüÎ'Wòò ç3¥Än‡ç$"qÉnyŒTc2Þ1 χ1dé³\"zôôÝ“í¿NÏ7àØþ÷šÌ/°SöSŽëù96‹½˜Å ¾U¸¥¤©´­ ³°³d{éAËA{oÁ¡Âƒ%=¥ßgƒæcöç/˜_¶\¯ßf·Ì·ìwË–›´)>ÿÚ%6ÑÆlç%g’` )ùˆÊDÁíž÷¾u†ÏwWpæHp>[&í:BºÈ~P Q ºÖ¯ ¹Ý®B‘™ýåË¢{Mh½Sü7ßUÅuÇß{»{{»{»÷Íq, èžQ>¼„†5c¦5jpêGB'7ÔȨ;QE %¨XküÍ Õ(ŽÄˆ '˜ª Õ†©Ó¦8ΘԦí¨cmÏØ)¥*GÿoùPgÚÎÜî¾Û·ûö½ßÿ÷ûýÿ/˜–Ê›Vô·¬m_ýRyÿáëëvo­®nmÝTýJ„ôcçTéÙøðWñxüó¶}]øP|ï·ñr\þà­zÊ7ú#ÀÛŠštÑE%·‚­!;É~3{ŠÅdâcá°@pŸÕ˜»•®a Þõ1È øý§‹ö\nl¡9Ö8#\‚­â÷Ð*C°l 4FhVä c%L—Ž"¡”4Ådâóòó ¦‘G3úìýSöjvËÕÉ·¯¾]ˆËüU¼c”%E}N§i¡HI¢(Fãn‘eh©.NßÓ½ôU¥½j@‚U “V£¤GˆÕëÕ’e…-Yq„³¯_£çk(;F5UDϽSBgýà9øž1ìÿµ(f¼£ç¿À½`êá.šzø«æ/ü,¡DX UeÒzÇzç6ÇÇÿć~᢭ËI¡âK’UÙôóᇈvšáj¼ýªU6›L}¿+ð›~³?Àˆª%GÏ+êA_'2¦fÇD°VyûA¢”Œ¸‡lA’ñt]P:‹H)YIjKºÉ¨úvžaã°1T(Ä õņ"·œ¤¬´Qî…?-4FÑé(‚#«JJ&ºS‚·üü¼\ §‰OϧÌu» žðcùÇÄ;ñg¾=±CíA|Þù¯/û¿wü³#o¨mm3 —\ÚÔ{giÅîƒÎ_ß¼ßöúÉ G·.~ŽúˢỬ"B·õ Nôˆ/‹õ"û²òš²6‘ù¾g…\î*ó¬×¹êÅF×¶Äc¢•ÓZÓÙl‚(±+%K»8Ϊ'%çZA˜†{[£°—y=5-—ßœ’Ç7Û µ ›èÊED&aàÿísôQÒ)Eq“ç_CÃ;BÀÑ»²a¬ •0…1nÈ ±ÀP»Ý€9Yþ}»# †p]·M 3©S ›”THu]pÃ3ºKÐmaaó¼° ÃBj®SÂF6-”—‡§)ÓÜi £`òÁP9´ûÊ•Žx.=Æœ{üʱøaÐО¡  Í`)ÜGàLDÏtöb7γýë’“>pw~.ܾN4[œ>i’Ÿ±äp9¶nÐ8d•V·Ãéì“ì.Éé’ì"0VwJVÕ­K-‘$»îÆnwÀÚî²³¸Ÿ²¯k¬•Ry¥\#ï”Y8ë38ëÃÈ'ûˆoŒ³¾fÍqö{v¼b<½]êüoÜM~–»OØ´©Å€¼9&ßn0g…8€¦`ø®Œ„BO³¨ëLq§0@_ävñÆ‚ ?uï_QÛÑÖôZSFërs¨«¸n×%l^½}à—Cx³Üø~ï‘íÅEò·SñµoÄ¿¼º«ý”§se7¸Aš„bú”Š<“×Ý3fj?p,Ð*˜2¾Ì\î(ÓV›×Þ3×n˜¯{^£¤ƒ)ìK3ܶRŒžv¤kiZ íP2T]œ'Qt%â~šs¢àNMäRU—ˆA÷ºuN¬’ ˜eØ$Ê2‘!)vÑl(7O¶R\UÖ=EÞRïJo—õzhŸ×C?ç’ gC#ùò`lâQ{0l!;Å“2Ѱ>˜nd}OÀA5-)rõìz pæÑYßäY‹f,|“̸°¬cèÇ¿©ûcüö¡m÷Ún ïxuÕÑ#ÖŸdçKå9ss^|ð»%?Œÿó·±Mx6®Æ­—O|öøVädIôÃ}§OÃúƒ7x¸ãHDoëR¯ˆYø3kÝÓL“C0kÄ*†!‘b#·0Äo7WYþ‚Šq).%L\Vâ¨K¤QŠA¡©,œ;{U¤Å€ ë§i'¬„Gr 0‰V‰&Ęø´|‡£`1ÓÙÍηŸgjÿ¾ýw[Óž¸#þ(úu¾¯¤õî|àGðËÒ”#5B—j(þ´Œ4LŲƒ¿¥}Ìhì>È{Ðx¬§Ò›Ì·ñ¦ÛP²[@‰jV–#E5qªC4âE½ü'{¤à?hî/ÈóàLÏ,Ϭà]áÏ9œ%oDq5»Ú\i[%¬×{ßG¸‰­7o±Õ õâvﯔ+NG*а= ùéEÓ²éeФÜT35©>$À4Z²ð“™¨U-Ø%Ët9Te×5 ¦#»l'ö(Þunª¯ê3Ðß>¡Ê=^Šºu7q7?7^ŠDb4&FctmcqÔ\GéhH<²ªU–à`0/w4Éå$wœ®§¨ø4/qùÛ+î^¼t¿âG Ûãƒ7oÆw½Y_±ü½mK—m}~Vóü-'ÚjkŽ3‰™ûÊ[¾ú¦eéÞÌɽ[/ #Œ/í¼Œ,¯{·tICÝãá¹ÍÅm®=ybtß@ã­¢Ix÷h´mÉà}p¾A#œÔ áûhåšAãéSŒ€*F«ø”É![†j—’¥b‰‘$š‡1¦0‰2TŒ˜Zl*­¬(&½¡ÈTCŸS X ÖtŸ!_»~M¾õ‹ñ*QO›ÅÿýÙ1Ÿ2ûÉhzîóþ9žÿ]-ÀQUgø<î¹÷ÜÇÞ½w³Ùl6ÙÍÝ,Ù<$/ ¡îH‚iÐ@€(– ´ˆ RE)ñ¡#”)åÑaЊ„Òh †@G¤Œ¶CZiyô!LE,̤"0@lúŸ»‰`½Ù{ÎÏÍœsϾÿû¿?›˜›CŸ ,Í- -¬ ­Žlì  ] œw®9Yc[í:ºô;2)Y%x FÙ)‰.RH¾X¯ÏPZ—ø‚‚œD:0šýÕ¤±v¨à¹.Asö—p±S6±×&>¸[Ú´ôÞi 5C‘×Ô”Iß #ª‹]A0>Û-gâØ…E¶‹—–öÀóOLY^_ƒk,Øw+ï¿Öûܲ/ÞøõßÈÑíKžÙ³óùå¯ã)Ö²§ZqªÅ6ÎÇüÔlmN’¾œþ,Ýùö»´z˾#¿XœEúûbM gdâÔ~¸á"dÅÕÔb— ܸfn;Ü*·æòyê,ëÇt­õö¾|Ⱥdéœ5áFRoÍÓ;¬+ÆÏS• É#™T×T&I /¹¬(Ø\6Œ£~ ”:’á‡ÿP#ŒñˆLånÒ’R7.¤&¤ëj=å3ô¤Bê¥cÒ‰®•°ÔqJ¯7)g ºÖÀ†x¶¼Ê1…¬PZ¢¬÷ž8 þ‡0Í…~Á^«7”kÁ)ï­ õÞ{®Öê…ß*vOóª{‚‰Ñ¼š\e9b9²Šez8«‰ú”‰‘oMŸÖ%y)Wz à@ý7Ä6áE"—'1\…c4J³¢4^,+”Tý™Lû箾-¯ŸÆ_lª+̯b=7ëðÁô7Ét¼aÿ²˜xd p¶›«íG¸~ª®ËJR]¬16'¶X}Y•¿úkQë/±—t¹8 Ò`qY$VÕ,_¤¬¬´å‡#à²(ÞÆe.fÝc“ýâHåGŠâ†8V¯xc„††#Î@™z³Ë­OEÔknÚœ3s íB¢¼“˜º<‘¨wàׂ²L·“Bœg´¹¨L«ìè]êÛ$1­Ì;ñèÄÊ‘ãÂÞ@âmGÏ™ûÊkS[ß[“^Ǿ0jÂĺ·¦ÿŽ<7}ô#?[“ng=MûŸ|쭪⃭swϪ  v`Τñß/½µM1Fͯkx¶¶0§ÿ3¶”ß;›|/L€”þÝ%ö‰DUû¸°Té™ZÐ’p+z9¼mf»èvÏ~ÚåùÀó't.|%l›¾°Ó2¹Ä.Ëw ð4ú§f7æÎcóÃÏùVû6ÓMææü6ü&i³ÿjf!? Y~+$A°|¼§$éá°’¤åEXÊËŠ4/"©VÜ;Å`²PANÜá˜âkxndöL7·'š'‰Ì퀰±]_‚뛂?xΑ¥Xáð›oHU¥”£Äl¿OðÔuxlúwŸö¦Ony;ü¿õ~ú£Oñ£»Ï¶í§o¤?_w }áÕƒB'n…øŸèó‚ïÞLå8xÏ É¶"^Äá“E°qÙ T¶as}67a¹6B®ÝLEù¸gS54Oá2g\â’œ ‰¬k†æÑ¨œð²TΣ9Qì3¡ òü(hv‰2¸^ÀÍ_9œè:è*ŠVÖdà¢/ºÿw×ô5-Y1Ú Ï| —DvûC¾€ÿ856V**ËÕÜܱ YUM壒ä0Íå Ê¹£È@–²¦!F$L#®Q¢c5ãè”·œám¬ƒbg™Ä&p1¦—+ØìP¨ÒMVîÕÿ ô˃'fŒi,)ôu_óB4 {­Z«¶ªhÄ ‘.8Ò$É€%Eå¨p«–×'ó€kÕ”âáR§a O\Jå€![¦]Í-ÓªV…¥Y«%2Å£‹u÷U¦­‚G†æ&%qæ%xi_Ì@RÓ}I^èOJ)R8po˜ÙÉÄ«ILŒ.jF‚”¡*µqÃO±7&§°Ò·‰¼Øú®]b=}¥ädßÛ·7’óÓÒ ¤2@C¦ L$aˆ;"Û)U!tú×¾}ù+Ð?ßœ~E¹ø€h6,ýpÿ•v±ÊF„d/¬b‘ɇ¥ Ç¥k·¥n+¹-s[.,&,â’•Åêļ“Ÿ5·…-“¾¹ø°aÅ6ÍWíufP„MqމÖÝÿ—"]ÃäiD>ø¬Æ”¹ !yp›î´H¨÷ÄÕáØ€ÃÞ‡ß9ÂDæTóR+ñr?ÉãÒRc¥ñ{ƒªÆxc¼—–JEž¡æ4:CZêyÆ\åá:a<é©1&)”¨|’ç>SÛH6Ñ ÊÞFw(²xM³œÂAŽ–3&7¼ 8"sUÓ¡L5M q•Ìòµúˆ¯‡´!®ØÃÞ+Rš¡jNÊX¡c½6ibÞn*èÇÛba«›4þÆa³X+£¬›´uÚcš‚‰\PW›kƒp¦®z;ôåùfÐà뮿( /«–»šºŠrtG<üý·ï?Rë„«&vð®Ä "Oÿݦ&F!Äã_öE“æÐhÒÓ æÈ¤Y9Ò5÷ƒÑa¨oõX HÜš‘8jÇlÃöF<Ï(䎀ª’H7¾“žÆzn]^÷`ýzûftôÖéì-i( Y`RÅ¥»}ºÈdNVv5 Má@?œ(”rU"DU¸DY†À¼ž ¹ mvtìèõú,½EoÕ™ÎUG ”0‡˜]HÅ_Ïšp²›DsBHµ„.¾|¢¤1&¹î$ÚötW p×Ý·«ÕÇÚ¿µÚÕJ–%KZYÆ?ù#ñ&ØcÌg ck0¶ùÙ|ä@À€„ Ó@h “h ã3¡gmfè$3ý¤IÛ´!¥n˜†IË€åÞ·–2JzïÝÝ}Ú}{ï}çœ{ 0Å€ŽÈ¸ë]»1# ˆsm`FÒn”Ž›¥Ià &蘥ã&>2MÃJÚ8´l||o Ìœq3L›ÿ9ÿ`ÐcYî.C°»ÁÏǯSäåëÓàÜ–íàØvdØÕ2 ^e •è3ôv±ËE6 ®¡Åeq2Pëp„¢b¶%ì’n2›ýžáÅ~²k ÁOSÙqÜa2nü_½æ™@ŸŒ`ëNÝì;¡Õ0c}fÒ§´ Š`?bN2v¸qÍáæ¦o¤÷¡mW_KÍ.Ùî§/sRûÀÚ+éÑÑ·(tp{ë.™…÷:ÙÊ Þ*2‚’“CR…oIîJûÚ\<&™½Íì¥Á±¿^´Œw/äE">Ή&„ÌÈgF¸þû 9úøu˜/dF|ݨ#ÂÍòÍ 49[}k}=Žg¹^¾/k”=Íò·¹/y 1 ò.QäEžqH^2¨¹³¬PF± ­:nEóøœ™Ø•ŠBóLï«*Ïsv¿Î·ZM±œ „7„w„©pž:î{ëÿMá¦P,ä°óq÷ «Xú`@ÈD @.`"x{¹Éqˆ%þ8v¦0 fÙ >É SDi Î3Ôm¢éªy’"$´3|I˜PÈË…ö(C›à “²CÔd2ƒ£ ž ÷}¸õW7æ/œ=vï— ×-* 6|ŽNô™sôdº˜¾<÷ƒÞã¿Í‰„çlNw£’Ý«œ¶ÑÍTYeoÝê=àŠÖ±/-w@m£Ncõrj¹e#µÉb‰DË©¤o:Uo›S›[žm¢šm­9‹òû³¹|V“a*©à¡šHmÑ’À3¡…‘5ÎN¶‹[éjW{[Ù­üsÂæðÆÈj¿³ŸÝÏ¿ ô…wE³Gø#²?Ô…A]òêšC! bšd)-щvÈI¶°×Ûï%½7[èFP„vÓx+ׯþB‡ßï¦L‡Š%-3¤¦±¢‘ñ¯×HDÂ뤃 ƒ½v›ÕB‘V çÁ9+í÷‚ 9â& @óPÚ€^BV4ˆÎ‘Büü(Xá,‡NÄPL+…#]Z€sÈS²¼ÅL•Tã0T£ßQýÂhjÚ=¼H\‡âª ÐHu£Twv¥Ÿ,+Í(ÝpT×ËeéL9 »·E1o…bAo½Ä.ýà¹õgšæµ>‘^3¿cÕþõÓ÷÷Зù·OŸ;‘¬BX¼cëž?¾žþæGèwº=½±¦vUHY¯<Ù¾þ+:>ÜÉxqgËܲ²®ü'.nÙ|s㦯ðK„m Þûè†#t1&éj’¨“R…ZOÔ‰õRº˜X$.–©Â+öWx2»2iž¸œ L ]Ã4È èL‹¼‚^ÁtÉ›èMÌ6™§e,Q$¸{?.V&8dŠÂ ¥4èR—ÆÖÇȘ¯ˆ«æq¯scý:w–ûš£8ü$Y¬ 9³gåyè9¥ ’gÔ—]>ŸÀ“\&ÍÔF³J}”3¶LXFD‚a¸`¾ŸN|›°y8~hòRxl1„¨Aè‚Ћõ³:­—$M)æ%ГגäI”TðbøÿJDÍ+ ¿g½i%s­ÕVÒjj +g’ €oi-©PŽÄA Å¿M`²½öÅ»†ãÕ#£Ã"&9sZ÷8¶&M\Åøe*'\ÝŒN&vUšßòD£—-ú$i‚™[–]n%¤SV*Å “¨©+~ÞyöjÝÆ™å]Ÿ¬Beµû¶÷æœS×ý¦ß™y‚CÉ»êS¾7´¾µtmÇêŸè9»Îøißœs\«…#Yë §5w«ÝŒe³&?{÷Aß´*ôY¾OÈo,šÙÖ2wÚ÷ÕæÝ¦F Ç4Duåú¦gOWš²›”¶ì6åyŒz•=%œÒ;ëÉê$;¨Nz3³ÝÁ¾É\t d]d7Ô9#).o)¿žßÎS<‚ˆ½Å€ óˆ6bñññâ.á xÞ ÂPò9mªÏâôñˆsv3ò¼°–°3ž (bà`  ÍÄÁ@ž†ê}rø¦ åÚªm¤Ã“lYx’ÍL_[‰714!»GÌ1žêih 5˜;á?Òs/>ÒcRNL À?©á ºA !&$L28ǃšz>çëw>Iÿ»ç«þ·?Í=ëÙ¾dß™S»;_D}Ê¥›(e½…ÈgOx»Ö¼ÿñ¹®ú (Î;ü¾ûy»{»w{»{pp‡p ÜÕw€eh\£`*Š¢Æø)‰R¿B Š–Ä˜ÅD“2Τµ3ŠÕÛ´•(“‰4­×Æø‡’'±j-vŠÕA™Œeô ¿÷=ˆNg¸Ûwwï–{Ÿßó<¿ç÷ç?íWºƒÐ34”…½öA™á\WÂ5ÏÅ—ê¥Ág™åòR}Yp=³Žo’ÖêÁdèsþŠïzà¦ï¦~ϼ¸™u#42B¡hF¥Q™Q“Ñê ‰3˜<× £‚)uÕ0U®jýÛÁgå®õ®›ÂƾïV±Ÿu+ªeÒ’ý $+ŽQDóDTu@êfkZ‡ÆAàü°57ÁÎïR=i$çÍ$˜kmÞ¼³â%qPœ9üb‘©XDªd1ƒBÈN,ù: ¶.NQì[a`„¡fˆÀ]I^Á“Ù-§”ˆT‘f L‘&imšÀÎj:÷ƒ+Û6}¾»ñGOœN…½mû/Nìh?²÷g=ŒÙ7ëæ0î±jÆÛáç¯öŸ¼kÀ1³Í~À»È6C(ègžaøé¥‰ÝÌOjRÐ*‡zéÖ`a/%«¬ y/ðþ•ÓG3¸boE 88Ç»(cN°Î[X|ÞÛœñ|°]h÷2£–Š ìq™æ£Ñh1X#èéR»UFU¹Ì ,¢>æW„k@_€T:¿ãº›¶‹ Kþ,nS˜]Ä¡¤‚¢D »2Bpv:’Ÿ Gû â[!2âjžhç%¦°OÓ>HQ7hûò¯±.J ÁŽÂ‹ŽBé†èe;ÌH­•4N"±ˆÔ–)Ò«(^‚4]Ì1HpN>õ(ö¹¾ØÝ3ÿ¿‡õ¿]Ánüð–|jÏÚ©«LsÖŠ7^ý%^aíÅ!Ìb'ž>þ÷ñ¯Ôðɾ ø½s7'}ì©ñ:ö6T%á˜Ý¨(¼S"úB¥J¤¬@VLÉ×c¹ßTÊôJµ¾B\©lPÆäÿøÝ3rcOæ>Y°° +ÖËrÊ gǪ•ꜪÂå9Ë 7ŠksÖ6Æ:bW nåÜͽW ™†àÿy¿wzÐ'RRÃh&u¡”Dz ³ÓóÁ G®štʆ?‰ËË0±jÚf£ÙarÐ&n§eazi³˜’,Ú³èf›GдPÞYÏ%Ï gÂÃ…<³=‹Áþ‚ä{ª Õ†'µåyDk§äqd1¥ÔÐh%TiˆjˆéÈÚ ~d “îP&­³4®Ñ¬›ï{L,ß=©”ÌmÛ¹Ïrãí=×F^ºüÖG¯oºÖý‡Û?9¾óÕ¿y¥ýÄÊŒºHɺÕå=ûqåõC8ÔñpÓ/µ¿Ç]NžíÿøüÇàÁ±·À±t,AðÑo&XhgŒp¥lÛçâè¥if a:4§¦³„0Ü‚Ì'¢£ös‹¥.©[ê‘’Ò 4"‰H I-R‡txòÒ iB’Cô?‘cXI`_ÃHàNĸÃ\7×Ã%¹œäF8qanÎ8N'8pÄRݧ&îʮÖñ8[ /<•º á¶´úJã~öº¯··—»séÒ?—ÿà*l톷rº“3g¬(Ÿ•à‰[%JÓÇ™Åéã´=Ú ‡ñ‡ùAž[ o#<â[ø~‚ç †2æËJžDË›/MF8 AyTcº7ä CSƒÅU#úz‡¨–{´C²EÒÈ&©’¶Ð«¤Š»{ù¾±j4Éó'8Óöñ¬àcN¨ªÿd¿ð°£>À±óWâeR¬Ö„Å…º[7¼Às,.Ùåvºó’()ÃÊp8ÿ*Íp…2\!  éD¡²P0ü)µÙr˜°Ý±˜«Ûê±’g±LÜo2¸­=ÆmnrûIÛûÿb¨5ÕцÖh:žVÞ¯LçÕô…è0ÌY„ñ³‡ñÝ4IvÈ¢Ì j¾&¸3±GöNò¾èuâ?€#`æ/›Ì§”û4 i?ßv½ñÈUî-ÚüôÖw¹üŸ¬jYT²3µ•ÙûRóœƒý©ˆïσn\»POÿÀo‘_ï#“ õF2™¬'«½áå€s¾ð´c…°Ê±^Øèp$Ô o…QjU©5ޣʪç륥jƒ·ÁXj5óÍÒ:µÙÛl¬³¾ý’À»Ö°Ëùåòç‹lß$¿è”Í 'jàÆzžÕ¤ó]ОIYº ½”ÀêË‹$fЉª†V[<˜‰3ÉõbÒŒaíÎC´ý"ê†ÈIyiÐÚØðÕ‚Ágv åHc½¸a´aò„æN %I?sëWÚÒ2~™ôÿ‚Äá†Uˆ|ħ–âÈO-=nñó޽ñÉ5l츳p|øÌ©Î½§Nïé<ÅøpÁÛÛÇÿ‘úôÎ.œ]ýû/rñÁ¿fÎÀß‹²±eïrªßP¿¥Ö¨ÜìpO˜ … ¹Y%þ’¬§²ZÂ]aG…Y‘¹À\¹Ê±ÆYoÖgnrlvnT›ÍÍ™ÉðgúuëzÆgÙCúPöðDØÈå¢jÔ_ÊU¨ÕÜuµzS¹“5®*šÂPP úºää ÈX•m¹Qî9™´QŸLæ9‚¾LHPHð“Û°/ÎĽ„’wán܃G0³ñb,è@Z¢‡‰ð©éc:±b/¡ùåž Bi§[¤¦îÑV øÁ0ÕÀd… V¡xÚÝu†tÕ} ôÎc7ìØ´mpÇêÎÐŽooïݶ­ïoäÿf]݉CGÇì_X‘zÀûôÜÅ+/ü…¸Ë€ÿ< ¯¡ãöÿد¶Ø(®3üŸÙÙ¹íÌìÌìâõì®íõÞÙ5¶±×6æ’].‰ v±¹›¸ ˜â¸\Ú4Å(F"¥­’U5ä"j¥Ø`;Zµ4Jz~ ´éCƒTD£H–¢ÊåÔlÿ3³†’ªá¡RŸöÌ~gÿ9sæÌ¹þÿ÷-©ñ%6îd;Ù>v?ˉº ¢âÑEqYS’˜|E B8ä!&¬âžöÅ£N5oÁ!ÎBgmAÁ}FË•BÊ›™A¤àÖÐ1â5[n´¨¯Ð‰$=õ…Y@ÁCU)žñÞ|dWvë¶GV¬X²Í[ÎÆßØ·zñ™DK¶wpöö&‹ÊfGXËœÈ`ÃÞðbq¸*º1¼#<$GO{~RõK‡"úü¥¾ÚÖªë>g€ÙÀ0Z‘J»…n±[êvuËÝJ¿Ð/öKý®~¹_‹%܉x4ßí’¶¸¶Ç·'÷GöG‡£Ç¤×åW“Ç«~Tû¶tV~+ñvò|ü×ñ’$ÝItØá9#2gDç « ðœ™3¢sFÙdþ/9£¼¹KHÄd‰õ‡âóXWu™ŸRÈ`…™5ÛÍ'ÍwÍ«&ç6+Ì=æÇ&[a¾l2æ%fª  LS#9ÂhdŠ0@4Âݼ%b-¢ªg©î.(cÊ‚óxŒ/·æÂõ­\š."¬vUø‰?jæ<¥3DŸš!úÄÔhM‹ì›“ÌÖs|4…Ž›§R$E*}ŽÆ§´JÊ_G?@YÑ[w¹ŽÉÖ ×1uT‡DA³¶Hˆ›¶O\˜~#u«Yµ‰køc YhG'b.,ˆ ¤­x®¦Óxð§Û¬ø’NïC…aŸ¶éAômétvz ëðá¹£9n6üážóÙ'—XPA×5Cóh.¬„ &ùq.À¬Ü‹·•j$áˆ" ó¥I&D‰K³¨ÐÊhˆJkÐìŒÐo§Ò‡‚ô\êÙGÙL§©Ä>ljx¢É3Òh;–ñvóRví+glWÏžsÿÀзbÇÞ­}ù¢Ô;þ¼K‘ŸÙ5Ô_RR8ü‹ãw½ðêGdYðéÁ«–EJcujky.Y‘^}`giGwGS$Xæ‘¢õˇº»Nnú)ž“hþïLÊùøàôpGDâ‘.Ïr4†Md{²"”hbÚ-¡Ût¸ÜZÂD1b2Éó£⣽ü^~˜…g£Ò)~„¿ÌOñ¬;Ö"Ò–sYÁŒ+D2;Äò™~(%£}÷ýzÃiʆoÎPÍ‘E“ºC½¾^ûr¥t:棓oÐ#¨3šÐ-Dt/GFó?±ôkU‡Ÿ÷¤“åoœÔÙñ&óÔ‹„¸ûÒ‹³ÇÖVù-®ˆžáÇËÀOõ-rA&ä)ɸiG+ o&í!QÁS"O‰ ÝžŽƒ†ú’X©R$ß=FåóÄWA3ød:HeT hÞG.ûˆ¯ÍOçs%SþÏüÌ^ÿ)ÿˆ?ïgý(Eî äÕbHœB–ÍŠ’%Hh3–÷-r%ZÂAl3Óð(ô¥tÒ²Kmjmg?«©Š[a8^à§€lŠ• z(—J¥a¤Áw+¬yMàÌ¢~óY[³‘ÚŽìж½Õ®¹Æ\úîuëŽ.{}lõ7Úža^=ÿÒ–u/i¶y8à|çÖpÀ¾{IŠ/1kô­úQÝ¡‡è0¢Þ˜£ÿ¶¡ÓY+*3Z°,A÷Þg¹÷*¢–“EMÉRŠs‰.U04ð8¼|P¸ÊêÄø”V3ÐÀ/–¨«-\Ž_+´ºVº[ô5ÆVw‡ñ4¿]Øi<Ç}‡ß/\à.º'ŒpŸ‹I—ž„¤’P“î„Qã]MƳÂw…ŽãòòóŽë´<ÜEõö:÷‘ø û‰ûoÆ wG º8ÚcÙÊ5+W­ÜmåÆ(Ǭ\¿9T7k€.ðBŒwÇTJTÞ¡9¦Læ¯çšèú*LŒ¤,Ö ¯‡“\z\JëëÙ©[Їôè’.±@Ú ’Œ!p–&ê¨z¬Y“žÁ½×nÒËödø äPñ:qÉy§(I‚K–%M×q{·žw‚Nõñ\ŸäVC¿Òy!Ä놑vò^§“WQ¬ÄÕ«(ª€¼>- ^|œ ö¼crðÊ‘êÒÿüÃM~Dծ𪶔‚Ú­#›Ç”b~–¿¡æ§Æ Ö2p’E…´¥u$Ó¹ùù©Q¾–X•­#õ뺬Ò£|È.5°´Ü*ņ&Ü!Ú¶0™Ÿ:Ç×ÒÏÁ"æ¢ý¥{ß{Ïg½§çoœ—Blèƒ-èø‹ÓÖ®MÍP…˜Ì_õ4㈶ÜW”iaö!m¬$õ_c“sÌHÄ‘pÖ»—.žÍ²õg/œlX6ñîݱKgçÿ‘Ïþø¦þf÷ì‰ßþžéûüÏÌÐø?¯‚þGœ»&Œ@Áþ€«à÷x/µ!îÈŸ¸™/‡v@ÿÀƒ¶Wúï(Ñß0Ñö÷Ú,²QÖP‘y•ƒÁiQÉFìëñ?$wÛHaPI÷TÕÞÇÆF5–×ÜXØk£n@C?@c7@Ó¤%ÃEQDEQDEQDEQDEQÄ  É j?‚ƒ‡&Ç¿ßhï¼_©é eÑX> endobj 72 0 obj << /Filter /FlateDecode /Length 9442 /Length1 18116 >> stream H‰\U T”×þî}ÿ?3€F\ÔÁ! ¸ ”Å-µD”A\TjMN4ÄC•$’º­±FRMýi¬Ò”Ä%Qkã†&J­Æ½šÐh46Åù{™xÒ¤sÏ›sß{÷Ýå»ËÐ/A!ýÙñ½crGeüH—Ó±Ó ÝÅÆ¿ë «(oÚ»gxým¹»XËfçÒŒ¯¶@?ž?gñŒ™ çw¢´CÁtwÞ¡©ë›E_…¼P ­ŽØDßS}dVPX²hË롲Ÿ ˘S4ͨà ¿Mö» Ý‹Šmý^”÷!"oŸë.œþYà ûW’øóÏâ¢%¦X’½½å¾xþôâÌ?vºh€Ïý5ñj4ºÉ Qk ˜Wd]—uË3ÒlÖgÃá™e^Víåuó“õã/÷ÉŽ©˜ˆ¯ƒœnvQ"|ð€lp b4ŒŽ¨Å¤ã.æÇ¸ˆïk~…¶¼ixÒ(½‡òÆD Â`ŒÅ5Ñ3„|E×<²yLŒÆr¼…#h@€Üªqzžڬ׊æ<9=OY´Ôâm ’Xã13QŠj¦îæ=Éñ \ãHý9ôÁpTâ;´£æ.ó€ù¢ÄÃ8$ÈëÙ¨Â6ÔÒ~UÉf†ÊÙT¼‰wñ1ùÒÕU­6ó¾ÈÆ\ìÁ~œÂ¹I§:.á%|Nb€Ñd¡ ¿ÅZy[0°uØO  g(…Ö¨=—yaE'‰9Y‚ã!\Á#êHEýi¸ —MuªQ+ÑcôæzØÐF4¢Xû Va;ࡼéA¥æ|³üIî)2ó—eBu’•/©ˆ—oÑY~QÓ´s ì’Tñt &¡sDú%¼Œ­8z\E#Y©9)‘fÑe5EmUÛÕ1½A¿ëi0™4¯˜7Åó0Ah"2ÄÖrÁ·«%οâ >\¥‰Õ ÑESh)m wè¦8’ ù¤Ð%ÕOUªkÚ­YóèåúMË>O½9R¢ éH b!^<ü•DçICpú‡ñ7|…Ûx |©• +4H¼M£1´^,¡&Âéœ!–Šx   :«žÊ­Ö©-Z?-I[¬×niÿÑ—èú«Û“㩌ۛ½Íáf#‚$lj‚Îl©þEX*¹\ƒõb}ä±ç¡ë¸!4áŽdಈm…:P%H~[üÈ¢<*¢2ª¤è/TOWèÝa-Üp'ðPÎá…ü¦ÐÛü)7©ö*BEªªB}¨ªÓZí=@²£§én}­¥ÊRm°Ž°æÚümÇ÷|ü¥Çáqyò=ë<;Í0s¨9Ùt››Ì­æ^é•CæßÍ‹æ]oM(©‰)Dº0R: A2? ÏaŠÐ\é’%’ùW°Rúâ l”wIœÇ¤Nâ4nâ[Ü“‰läGí¤&"„zyëx 7Ú$‰tS -¦åo9½JoÐFú—vP-ÕÑ~Éüyº@—é2ûsîÂ=¸P2§òL.å2^Ë[y7àƒRù Ãw•¿¬RT¹ªRï«Ôçê uM}­îkN¡¹Z½vYo¯Òê[õ½úAý‘%Î’e©µÜ²Z¬­aÖtë{ÖÏ­¦-É)q\ÂÏ~ªŒwñ}ªeJµJ¡M´Y ÷þËâRŒ£ìVT‡¨8j¢r^ľÔ$ûÍR—aì¦MR×óà¢4.CÕ“.=‘ÂDëQNÓ\T®¹Z¬qýŒ ²i4±ÚQdéë´J„s._¤SZå+¶ºªÚ&ý–š,/–›w´ÖêûHm=äñê¾Ä§à‹³Òm@ ùH?í¢çYãRÚÄ·ñox¬rjYªI}¢9±WåJ?‹³‰Â°Nåãœú5W*§r¶øHçPÂ&o㎼™J¥áBdÚî¥H*À¿Ñ—ªi0ªé˜| ™ŠtÄ¢8˜†‘.•¦by>UhÉtƒ—Sö.#ùdv,÷ämtRæf ÏPR€×(›·¡Þs• ©¡Ij­L¨ï­/«`¬Ò²±…\ò^ƒÝž}ê0n©´@ý‹zqwm­Ì(‡`_+Ùº+u6^í¦j½ÉD‡ñŽ£^-•ºýÇš‡7× Œ·7¦åñ‡”¯"QLdŒÄ @µ¢‰ö™‡9úò·žÅžÝÍ÷Ìaêý槚ݪ§Ì“Jl‘é2LS¤ÓWH—dc”L–Z¬0I?Ì—Ù–)_¤*Š•¯Ñ™G¥2yÎÊ´·ÊD¾*sªŽf¡‘KÕb;d–¦ëÛ°:i脤Ą!ñqƒ |&¶¿˜¾}z÷ŠŽŠìÙãégx˜£{¨½[×.!Á;v èо][ÿ6Oµnåçëc³ZtM1!*Å‘šc7œ9†ætŒݲw¸åÀý³ƒÃ.G©¿”1ì9^1û/%“DrÆÿI&ý(™ô“$ùÛãeOqØã.‡½–&ËþU—#Ón4zù1^~µ—o-|h¨<°§¸ìåØSŒÔ…+Sr\¢®ÆÏ7Ù‘<Ý7: 5¾~Âú g:Šk(0¼ ¦ ®aØZ‹SFg‡+Åèäpµx`¨ðwž‘>.#ÅšePò4G®Ç0£M¤WÉ^3†%Ù°zÍØg¶DƒUöš¨ý++jý‘›Ù*ϑ瞜a(wf‹¶‘b×e–^úßV”·Kþ/ëUUu…Ï{ï¾·‰ò³€¡$!²™%á'DˆXÈÈ,I°É0t ¥µRDÓú³$mµÐ*È0c™Äê1³p*c'R,Ží(C-Òb~,ÉÞ~çî{Ën -všÉ·çÞ{îϹç~÷œûµ™F¨t؃®†B<á—*‰Úlþ­®Æ«çøƒ!?–nd'CØ|ÞJlSuÞRn ®ð„S½%Þå¡AœGF(L•k³÷fdøÚå)£Ôª x³ÃÅ™ÞêÅ3‡·ÞF¡Êµ¯§û<éÉšüq­îA1o¶húõO,ÔÅuª¤ºs©¬2îN-òÞ „=K=°$àÅF¦ðOÝ -‚nø«Ö0*\‹cx0œ:#r¡ÝÍãÃfŽÛë ]$»÷ü—É-‹í+Ç}‘¸Èäˆó z§ÎË ˼pÍÀAÂÆiª^?þ©·Þí€û¨<€aÕEãáóìl>ÕM-A%ÜPˆÕ=´$s/ùÆçU‡õ k:MÚ<Ö48šøð ôÝGüENÉÿtRº¼(¬ ý꺘¾l®·¬¢&à) mß–U%Õbú)q] ™02u»¤gJ &.ŒwæJ _XäàßRL®¸R@EÕ¢yüawpVì·ú–ì웑x”׆Ùf†‹ò’ë÷$Õ“Ìë2`°ÈÕ˪jB¡[’t~„PÈïõøCÁÐâˆlXâõ¸½¡vã€q T_tN4"ßÜ”ö7Vc˵"°U§’V¯¶±¢Õ§mœ[hwã;gcU`/Þ3‚%Õ­#¡ ´ãóǧZõx+×<\CÓ÷ê)J•ÙŽO§¥ªAÕ—F4Rm)N›FK#z¬Í­Úð—Oê]J®ìh)-HÕ¯î쉦¾ŒW•+éUñŠU¨ W߆‘E«Åj­eåÀ«™>± i‘Ž÷ªÞLèÍ2í—ÄϨ\'d©fêyF/”5h_ Ü ¤Üo$ð`ð0X€1•€ÆsÄAô†µG^1çËFà=s>=c“m(GP&óýÔ*”F–Œ’ÐÞ!>“®,¹ý: _…ú–Ðkä‡â3Úz'ÆÿÕE=h m<îìãm½^‚ÌÂú¿Ãœ³aS7ì 1šènÈ1ùzs”×|^¬¡tŒ£FÛ ë‡òíðÍmhÏ@}úX£àC/ì”ЂÎ9 aC!ô»&éƒîœ~œhGh§~\NÇú£ì}7©}óží=±ý¶M×ów%kæ'ëÙÖk¨$ D­ÆDÚ¹ ¸¶~®Ÿ ZÈß Šî6ÿI1RHöêÍÚøª]ÔÒWl>FóÌ}x%ÖÒíܦ@ò¼xA6Ý4º<ëyÌUKõ»À³ljÔ—b,ÆØ\¬7H…ßF‹SX»–ª0^ªyÎ(ßΤ½fû©‘}ãj¢' ï@߯`×—èówìó¹<ë‡Ïgò¹kó£ Ï†í…bMt3ðsŒï÷…¶á(Å:“ìu" 2ÂÜK„}>:(ß7Ó/€6`llÊQ¿rx7åO ‰˜¯˜³‡ëfn0`ï$¶=¶ù–âØ)šÎü>\Ô[Dkmàüä÷ù¾0gÕ}‰Í}•¹Åœq$ó[¦é-ÚßxŸÌ©¸ä»×Kcyïà–#m›³Yм˜4ˆÆ){Á·kRqißG¾Žtìáû‰¸q™¥ðñZà:¸èHÛgã²K²2©Þ*§‹UàF:å³h(§Ø5I¼ªîØlÓO?Ðß¡TW'ÄYÎ ÛûÈm W—¶Âì¤Ó*þœ í¹¢ /ù.Í4[äâ¼Öi¶èsùzÙN_–ŒDÝ7mÿ_ d¶Ð2”ÿbváîtÑì•\ç´;#ѾhƦäiÛRVj×9¹”ý¬çQ¿ü€ý=÷;"º‘÷ø~Â6ΟÖ2ºd^‘Uq…s)ƒˆµêÎÁætYeTQ±±ñ”cø(ªP¹h*eb[áߟpN4¶qì†~„ ›‘'1ÖˆÈ 3@kÍãtÆŒUó¡Kncû­M´…cYB5öYEœwk¦Üèz_vXëi‹¹ ûÛLïb/•ÒäØjìeÏå È1X¾Ç}T?³^n`°}ÁVo žómUþ(Ä\=t)U—Vv½%?6ËSf¥¤¬‘¯›OÊ©|¥éÆVš¤wËsƺƒyïÚ!/#äI摼›2qNëä±Ú~W¨÷…´øþð{ƒ9b¾{O¨1i)Þi÷1Ädú¶ÙDÕÆ Rž5Ob¾Êßùb< 3räi£RÝ{Ëð;!Ú†sy:ïÛ€5ŠQžjÁ½ê¦bÄ’é®Jù±ˆ†ƒs±ü%ÁSYj×Û8ƒö~¬¦C_…üpå…(OÓ;ŒÇôšÌï@1R¾m”¯¦\g_™×k„ÎC—BуП]¢"ý¨ÀhN‰†¶ÈbÐó@9†º ’ÂÓúp«"VçѾ:úH~ß½‚ÞƒsšÖRôO ®¸LïÐ4ý£)½B?õ£Ÿ¸SxAÿ2)­™ômŒÍý «Æ)zk”]NƒþÒ—‚yôç¾ýÈ×B¯ÃÐ ƒŽ…ÆD&¾ˆ·ƒøÇ)¬^ÝF?p§éûÍ)üŽj¥ïÁ©½ KÿýæØLRèn¡løúºoÝË”WèN­Š~ &‚aÐfm9Ýä>F7øVÓçCcì N¨°‹>Óñeú,œcG¶Ú ÿ)šl†Ì]J6ɯ…Ò4ᮥí¯BuИ¶šFa5Tß1ôo£õîFZ£½Tå`“ª†›´ŠÍÄ ÏÆÉsHÀŸ€ ªõÂgÂ9á”°Nhš„F¡F¨*„RÁ&в˜/ÎsEQ´ˆ¼HD$ÚR™{j‚Æf‘Yx†¼Ù– C@D°HÐr44AŽÀf}M‚qú<.I’kbz@I¦„Ìj½EIêª:G0þANêS›Prc©þhMy ç~ýy=§<†õÂ$J®9A¬“£pW¬íLá q¸X/lï…Ý*xøÍbÆáÃovuaH߇{"ÎHa[ApIü¿À†YTžNå?§R¢ÿ(¹¦SÿII—îeLIWR¯ZSúbç(9JŽ$â£dQWç(ö£‰ÕÌ=ñ.5š2¼Üq¦>š•mÄÛ™ ¬Ý”Á.22ØMY(“=“ÁUÎêüf:Ô:›N<‰ü¦Î/ž4u<ΖUQk">ÒÚjª\÷°jU]÷Ì¢s™h$‰/Ä$#…!Œ„ Íð¢§aw6¼*^e†ƒOÃÍÙpw6Ü aåÿr¼ûŸ¥‰-kb8¹ªsDD±®ö³ìw´™wRÁÙŇ‹¯ábîS”§té¹å1=¯<†"§"‡qCR—Ö²Û-£·°eüªm™«[@*€±,!·sñ5ásf–¹à–fC £ £,O åƒÛ:rö¹Ù î¨íLl‰ÃŸQýJ"Þß¿{ö@ ú¡ß×§$œ[ ’ES¡(%â 6¬7R”>ðô}µ»öŒ²¯øÁË€´‚ǰY@v(‡Oaë%å ¬q£ù¢%gâq8¯¥XA°.ÂOÂ+å‡aíIE -?XÔè.pTÀ怗rSÕô*å§`ü¼Ì 7•³9àûè±Ú#É8ˆ‚r›­Í¾ Þ~—Y“ò†ê¶ö·óOØNØÏ埶¶ë6Ý>oš#k¾#*áÍ£"̕ͷ×Úlý2¼©(²d“UÛ܈ ßÙ÷;•¥¸„ÚÈ[æ‡òò¤ªjY’iÀ4‚Z˜™2)…}¯G†…IaZ„gªåk¤’jž4¿J*’ªr_þìrXSÕîϬ”uïÄŠ¢Ýg>y EîÃ/,?¼?˜Sþü}ò üùsgà *( 1 /‡Ãƒ,tcQ#îîÆ;1ç÷û¼»,XÊ˪°¿¹©ªRT`‡Ïh#ÍM•åe‚E ƒ:¾ÙöÚ·oüì³3)ìuØóðÊ/Ç*›=Á}kÕÚ%Må59[ŸœY¼°óË¿ÿ~ì%¾"¹À™oãªCŸì²—÷-]¯;WÕdfønXû:Æ-êÉ[MhqÓxSªõ_t—}lõÇïwç÷·;Ÿí{‹_ξœãž“Øn;Níúš&´I(Ä’ÚƒVŒômúÂÚµÈV +ËT¡LCÐL¢Zij–Òâf“Z©šöZÉlTltI@e MY4Æ’ìùÅòǦ8~œ³ÏR¾Ÿçû}žŸ9Žê‰¦u° ”Ô’VJn&6¡u/q2ð¼ö|òÅu/Ƶñä:Σ ¾Im2y¡£ŒÞ&¯ù¦µéäµu¿öÝf>¡«ŒâR‘½€”˪”Ãiq¸ MÍ>“Ê:+ßw ir¼I%5M;¬ÂY6©²~³PUV«$Ga´¤7F¬í˜Çóü^É¡;HÇ”ÛÉ*£–Qç u™-/߸âË_b[&{uN²·5J:ÿTB’Rdy¶èPî3V@A©Î%WqнæÿRÃ|«^–Ïc|ùdþ¶a d ø1¤lŽrñ¶Ö\Îb­½bWò¹l Ьa$Wï`MÆÒÏ"ŒÝË©mõ§/6HágwÜ×Ù·{ì'¯ßßPlè­«{Ô³4––euÓk±€¢ œ3ïÿüÇ{9'ã >à[(eRCÃîÉ{úUûŃrãg;BŒj(.~·ØÕ—žK7Ë÷£CÀ;^{‰:Ká°õ‰^(D¶G†J˜œn«ß)S–Š[›bo±µØ{ i#í¬µ›ì6W(F†þH¤ ¸áRËä[oë>«Í6µÓ\†æ ¸œ¶Š,Òj¿ëŠ¡Xžå`t;\ãöid# ]ŽúK¸êtÂ_ºN£;4¢•5Ê>“9`¬¸ü”4ÐF<ã8ø¤ná0{{å Ü‹cë¡-ÕóÉ*”Ž},¤JR•Í©*¶&•I¾µóYÅRæ·Z€SÃzjÕ[¨Ë>Ôsßi#|èöØÔèuÔsþkƒZÇô7{nÛetE„tá tdƒÖ÷p×@Ý©oMî}m¾Ù_ìé~äPد¹››è Êa_5-Ï‘¯œ ó»o¹Þ¼»¼¼ ·1Þõï㾤mЉœÐ~èºèšä&ùKÚÕȿÞ¥9ÑA½7nGv;ä+ãXCJ×3tƒŽÒ.W2ôG±ÑhÐòm~ ¯XñJÃH‚¸qn’3qe2©DgÂe ®ID™þ òÁ5_úàÀjëJÇ>6„t} ñ¿:?Ÿ2ªI,j>›>‚°|5-³>ê^ÿ“µþ÷Ýë÷[ë‹…Áã¿ó²¯·©›¸¸a‹÷”?¥nô yÿ`±8ˆ—ZóEŸÓG«»üKŸõ´«yô—n…‹¡D/‘ ¦vèÝ(êлلÉ‘´²÷PÃþanXž<øU(²~¥u¬…š¸Lµj”J5õ±ø^¦9S ™šˆå.ÇùQ†ª°¸Þ¸L‹µêákÕ¹zþY\¯úòu:ͬÿbÎ?„(6—]í}@…y(«²Â+®®¿MÌ>’+j­©°šH0v‡“Û´§£õçX_´ÕŽš©³‹¿G¯=Ú^lßÕ©õº-.ãöÄ»äD¯Pö„:aú:(µ ‹þ²Åiq;–¤)Ej¦¸KËLëÔB¦ÏÔ—ÙaÚ‘ÙoÚŸyÆôLæÕ̹̕Ì?3¾mHŒ+TœilìhL·õ6N¶Õá2Éu”17q2Û`Ó\Edë‚D ÊA*Ø„H’m1¯k²ÊYgK…¡É™")²‚F”<ãÙê!=eô[½Q+ÒH°BÔ1udÝ][žÖþ ‘´¶ŒŸ"ZZÓµëpå}ͪ‰­³ÔyÔH¬¤’qàà–ê¼Q¯2‹Fõ?Uc¾º2á €®à…À)À:ˆçz-uàa? î ì(ËŒ-ÂsØ4x¸ã  zK˜„TéàœÔ²–Ç>"UÛ }Í©é®þ³ƒíA1èU3²RNå6§žV¥×_YÿpS]ƒ@]úÍÑ—³q¹=}q´gëéž¡´åÛ»‹ÝéÔ6ãD÷Zýãœ3 Ò€Ís¦3Dí¾F˜—?˜ñåÍååô“t~”•H™”©˜G¦cL}°>”&ÓTŽÑIê¢72[Å­RghˆØ&l·KC¡aâqòqêIñIigp8t˜ÒüÅf@¬Ä$ÕbU¾«ã'çSrÙlŽ| ÿå¹)†uzÙæ¢Ò}¾¿«OzãEÿèô3¦3KŸZüy6èöy”!îèSÝmÛÉPojä{8 ‹0Ç_—)Ä¿ôÍl’MF{Ù^yT½¤Îš§Õ[ª] ø)b<„ òñaÚãA†I"‹1^dqUÜw%9w†á(ˆÂ:§2 úŽòãü$?Íÿ7ÃÖË+Œû„ ¹Êè‰Ëƒ3—û‚GéPžB7Ð-tYÑ,µ•¨'ã?݇Ï`I¬ s FAdðp—„*˜b–,[sMN¬]MCïªjæ©å'áYO`ìžþÄå È©úY•‡ ”q€e˜©ª°ñ *๔πºœ ³²˜ Œ°œ 0K¤0OÎwt11—Ó2,÷l“ Ò*b\ïa*!À¢ùïý¿°žuVzñ&nʆή­[½:  l£cÆOÌüØgôBÅlócÎÀÎí*æÅ£xâQ<ŠGñ(Å£xâQL*f`b`÷[E˜A,F) fc ˜ +!\Ü=€”ŒÎI±©T, @’Bl I © ™ % eÿÿÅAü ¿Äÿÿ¡¡‰ €Aõÿ#^»8Ò ú˜”$#ÔÊ@a³Yn báŠèm†°™€.œ e3U,†²Y€ì—P6ƒ£¾¿·¯§‹“vHfnj±_jyP~nb^@°®S~NŠgIbNf²ou”0ø3x3ø2x2¸081h3„š ºb? YÎÄä'2äƒ7ÈKeHg(eÈŠ‘¤S¨&¨/¨¾(šT ÔMšý´6{Ìk>1Ø0d1°cK€AŸ!µ®œï±ÃŠdÆ @ ÄƒÑ iLB@íp€ždì€Á˜Ë@ ”á ‡s14å0=K_o3Q"žßæ+‡$Xõbù=K@ôÖ“«T~ÏÿÛùŒÃ È¥%°Ép¨•V endstream endobj 73 0 obj << /Type /Encoding /Differences [ 1 /bullet /equal /minus /asteriskmath ] >> endobj 74 0 obj << /Filter /FlateDecode /Length 236 >> stream H‰TP»nÄ ìùŠ-/JÍYJcÑÜ5.òPœ¤Ç°¶Î€0.ü÷a9rR Fììkfùe¸Î&àÑëÌÖ™ˆ›ß£F˜p±ZÆêT£‚zUxn-á:¸ÙCß3þ™“[ŠœÆcüí¹yþ Fë8}µß?™÷n¸¢KЀ”`pfüòªÂ›Z1§kkáÛºÐ܂ҕ[ú¦•: èÌÿëîÓ|k)h„™DhÎW"Îô'¢-]NÄ‹dyÉß8ÚGærõcvR.TLlëðqÄ੤Ç~Ï•s) endstream endobj 75 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 76 0 R >> stream 8;Z]!;%g_g$q0jhkM_JSj>mb["=X3s.?5G%LSNB0Dmj@:M@`,J+iHef?-b&Ve0SO[ 7T2abm&UO).Mg'8r`iNkl-2)]>$*GmlC?&bl#Jqm<7qTfq.oIl)$K1)FUhS<1D'tb 2XO9I>p=T>a&uYY[q*nVSBh92A?[Sh4dJa:]KO]*QF=;/W?$[ZHOoL%jFb!,dko#j [6aB(;t46Y=Tu%&Zan^VA4pstUR_F`f:/?e3m+\2?OkufnLL8mUi)D.EaXn(-L+sD ?RI"M&4-ZUR*PcrFPG(~> endstream endobj 76 0 obj 285 endobj 77 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 78 0 R >> stream 8;Z]Y_$L)a#QV[=pMh#$M27fGP4ZIU'N)eB!!!#o&?ffLe@QGONY6Ur>PksGZ[2]Q !!"K9J,oY\-*$>~> endstream endobj 78 0 obj 82 endobj 79 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 80 0 R >> stream 8;Z\uCD)7B%"u1k?1P1Cg$9?V9$JV`)(TE65K6bAf1fWs5R>b".`eBTI[pV@7ik7K 7Y5_PZEu+W;PqX>jIe'oEl.-F+26;+[aq>-*k"-iY>+Z>QSGmO4R%*O;d/WRN9"lU fD6qo?7Ijp,PG$Xc+Mcb]-E1dDsb9Q-Z7%'qq+!!mE7+qR/V5"Ni07ec*:"/*9"Xp ^\1]`No8(r#iTQi3*JiEp1eH$YY9_kd1D`%^V!oE(gip-qb[iN'1)sJKFgHUq$3Jn !*[oR9`~> endstream endobj 80 0 obj 273 endobj 81 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 82 0 R >> stream 8;Z]!9+lk"$p`Kbs,2!`?*a)Poi$EpO#BDC.'M0@*!sq&UAtC!%!.Zd^aC/mp$'qM e6fGe#PCW"rXH-%LVHLpuU^e>(e[0#rjed'\-^\RjqLa.RB1a>+(8Zs?!,8\_^[*L*1- f=1jH?5'M/i?qV1:T(AmO]X$#L`R&P+6^lf_M:pr_GQBFf5].YD)us]m9W&;=CR\F <*ohCJ$LCunKQe`#;qjO_H1#ATee>2R?X%g:#*M=Toa-)=!qRJnEQ\cG0KLAm`9)r (t=a`IV0p9=_lW+h18!.9JA'ujd2E!(X"%GZ\(Bt! endstream endobj 82 0 obj 380 endobj 83 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 84 0 R >> stream 8;Z\79,<.&%*XJ'?_m&$$VR[$<$F^o;TJsA$mL9tR)G)<;A6]n67LPQ#>b-0%hDU< T27q&U)L,)+&l=*nD]E(FoABF[>$i>P@492BHGZOaFb:rL*KloRVAl!k_*tL^h?*] Aaf:\6;-oO!Q-LS9NkP9pTXMpqq]t;jh]p+=CS$cc#M,12 4[f!o*I4L,[]Oe*b6q'O.ON]l?T7<75@RV=j]_0U5:5_@$4(k:jfn%.Y@0_R`se]5 $si%AD$9<(-J+2KND-4V6Q7C+1,3d<^VA)mkrt@f]aKVBgO's>FMX(Ibl(E)Cgpit Nb#.],bYd&&6mt.8rs>p[HL8Md-NJm(0njS`:4iJmRU6Y~> endstream endobj 84 0 obj 443 endobj 85 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 86 0 R >> stream 8;Z\7>7uQ2%*Xe,5Dam'9O+]ce,;-@Gu&pBfV8FB:/$>jg,YTY%K,*/.M2R5lClBJst?,]M+:A,``]Gl/7 Nu`Bod`0H:5muqI@8R:#@*'qd@a=]R][A9EaIJXm"Z^?p1tX6.DfZYr^HQhR"1`0? 0Y>4X<&=\>;Zlq5LJ`1SU&+%8;$UJ'W/6gM4^>fSn5Q,6mDM.K^uq9O Zj!.aYjj(%`5GB[>](GrU1IL$CG0X8"+9UEICG7qHAsGmlXhO0p^R9 endstream endobj 86 0 obj 457 endobj 87 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 88 0 R >> stream 8;Z\78HOMe%-6FJ5>lG!,tG^J;3l`0JOIkNTl*sZ@hKpdFN?c`N`%CE:5AfJl0`Li (5cXHYT`:Wd4!/"d1KOQOhqmg$)p.@E$V,R2nMTn"",MGA_'UP0)f` O;%T0ZmRFT(j/b%5,t9:C,D9QY"*Pa]rT@Q?b)NM*-$qVGX;%hE6:od1?#ZQJ.!YO>Wu`Ri77P\#SXV@-K=iZ7@!LN [VL!`[H\\#oY,F.=53[riC4*Ui^m?okjM]!,KoJ@>g?u,_/@26S*uK@P;,YTR"6f< H'&Wf7@SPN\!83T>i#D`#eCCu@F1M#_%7HN?s8"PUT>PWGt:)7a"b:1!3 endstream endobj 88 0 obj 460 endobj 89 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 90 0 R >> stream 8;Z]">7uQ2$q9u#s"!'S^"i!S*>F)k+q<2MjB*FW`oP8e!+>$M3o=s>[.<9mcWAT) *ml:gTJ4W:/XBG$FFfL%<$E)UEK[IA[*icdJ3-oPap.Rs6Mp5[bM00$Jd^fl]XWc; >iemuF-"nsqs&k/[>QP>Xu2&klUjGaF^W[b7#n;QStt[6?eW)E8U^5u5iZcm+H#LE J@lf[0Kl3h1[FtOMECF2D8tkH3V4NImFZO;d3[EG:Y1<# l'o8ij'R'A/C"sIF_U]HhcOJ5]"^=Ak,q([&.(74jpMPa<:^b?27&>?V` _L'&RgB4#M=KnmAp#;^tHmQ-`eu80X!5X1Qrr~> endstream endobj 90 0 obj 369 endobj 91 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 92 0 R >> stream 8;Z]!>7uQ2$q9d*r`?t/Hc^G7Tc+uG&=Pq`P@M"\O3:7V(dp_-R(Ne.q8&QsHN%l4 Q\[*FrrA]q*WS?Ln?a3@\3V;7o"bubo=^F@dOU2o0V4-8C3AV*A@:V(7())i@.KX0 ?q^t?7nl,m`dfnQ'3 Yl!nrfAf/q`"sF^n;8aTUC-llFKNSl%8B[X&!65 k/(iNLu`8L];_Wl0>fIP__;L/0q,57F7*;Z%D$A+"-;X6\T"=QZj endstream endobj 92 0 obj 399 endobj 93 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 94 0 R >> stream 8;Z\79,<.&%*Z`g?_km%,tkF>X!e9"TKj`=)(Q5I@1n;O+:ba^'Rg39prrp2qsnV' eKkpW*pXhVa$0b'LVWiNC)k>O\:OFe0jcDs` CjEC.G!O)`!/99&qu~> endstream endobj 94 0 obj 481 endobj 95 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 96 0 R >> stream 8;Z\7>7uQ2%.o>P?`&&#lVsts65#q,(H]OC>/cqH64s>Rckb*L\#'m\n::MQ4Y5Le $C>H#_SUMl*Lh$'Bd]!e5q;&2rEkea;I1O,e0GBcCm[-a)cJ(#EP]M`O)bSRZc^>,hmd#F_Au))l$]?aj/G#GO@'"H?)J!QoTT:c)(J$>Q$p @*/g"/B;ct&.2`gc/8>,C%l//BP$O\O7rW<:UDD~> endstream endobj 96 0 obj 437 endobj 97 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 98 0 R >> stream 8;Z\7>8"gr#is&'?RC!e3mEkm5*?2.PI>:3-Sc8L7&2OumKG%@d0p^Eo(U=:>h&rl D9',9Q@ZIlrI,D-l^Bf'],IN\T6G@$jB4C2[^ViEg7:@bBZW@GYLIfV?Yg(7eVAHi g,Cd2,+5.s8Caip9`]m"#Dj7`BfB@DkdceoCbP(ri1:_-7'^7?I,;hp4R-=e2o%)I PHmHAWtiam)#EpZ[Vk->gmf-*G\tT#I$p1G!+!O=@q0N"o3Ul6eRs2#-u%ap:#,"S a.B>,'=UrmD,!XP`u^S8o:Aj264]^,KGVS@9m&I$g4,9nM<"9E%b5b"*4OsdU#K4' )Jm/R8Wo:C0!qhr"_Q:ep)o*@J`h^K)6$Ai*=dkBiV6UkRY<7?l3\\.^M/K)$k.+m ^Z25&]r#Sc?-YLrp^@0%m5q!~> endstream endobj 98 0 obj 422 endobj 99 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 100 0 R >> stream 8;Z\6?.+?J%*XY(^W?0%]B%A?I'j\Ur]i.m:<.3k,(n'N#q4ec=MWinn,`"%d,XM2 r_s\gA3W&75jMo]nZKIY8`K#a?2rK,2C,oET#>f.Hu)>[i3s/85oeKp@!@1e%#\0C RqMQ9\j35>9er68$PAb1kQmY*.2k;P0:QHS!Xg0o ]m%"\>rBsnI\iW!lL6Xql=Z#bN6]T/Z`*oWhiSCa<:@NC#/ 2>.J66fY5:9f p,7#9B4HGdHeYHf@BZ!cgnc7ZH:aDTe:RJo,[%TF7t!,h/1euM[I&PRS)B"(p](2u -MP"U@G*h`nNR$503>j~> endstream endobj 100 0 obj 549 endobj 101 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 102 0 R >> stream 8;Z]";%eI7$q0^)r@d2:\;hc?:!sa(Cm8qZ-n5rQgQHHs])Ep5.!QN@6T3NZO11V? =]5oqI9162RIknhmJ.4&PfcbK(R<+cEaeOBDeSsS8BE**3rb60/1G"n6rl"W.R^m3 ^uAY;=Cp9-eim6jS:S\OnM43=C6Z[A.dd[L%m_J3?N@$7@4"+Z_bMZ');^9PXe)N hZuan&hIRY>CE4m!`Xrn5_6Z'Q,jA7dbHH+"SEWcbZR_<*@OJgYtB%ooiJpG8cR-b 7p)PZ@#-ZWW$':-eTmH\LSd]XYPdK/QJ6^6D7*r,s6LE10OO%%X.:/F5!eo#d=[+l3K>,nlT?.L0<;R VH;8[g$*RH;n+M70WNU;Uc2o1cr=CeUmo8DX6VHBbHbs=p9?70!g!$EHG endstream endobj 102 0 obj 611 endobj 103 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 104 0 R >> stream 8;Z\75n\em%*Z]jJ&]7a44Pf8JY5AdPbDoq3[j;@Cgr;^igl)Je"40LN'-#6YG'm\e.=%Me5$"nHGO-NtOROa6iZBoWp?&g/KkYQA=>`/Da FB,HiqnY3Hk*G.j(+#]E52/(HCNJqSW)728>eu6KBe\g]r?%PV4sk ]\leV)ER,opSt&+"p#b=6:ap#NTK$BP_pBi(\Zh;B_ng3R#IZm`pB8rUgceHW$M;komO ,+AjRn;qXOEV:&FY%:c0n%Q\.4CH-NgU<1:n/U$`[qI.pp^@-H$.6N~> endstream endobj 104 0 obj 452 endobj 105 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 106 0 R >> stream 8;Z]"9+lk"%#3GSs,2!`?!)Erlp_gau6+1*'\;Zn:bBPZ0e5_g#[C#3#biQNV8El,%4SpE6:%rXrGLS_<`M2a!]R.ct:^Hnb I[h>LNS&`5@SHP`3eL3u?#2AUg.ZL'X^-BXJUQY67?NTkD2DP92:jHs:13"O+m08M B_TkA(Vs>+0O)tP5 h?o&9#6<(>jhL~> endstream endobj 106 0 obj 411 endobj 107 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 108 0 R >> stream 8;Z\7>7uQ2%-33@?cK_=3`X?Ji=U?G1q'L:Nf8_K,sVT8OG+R"bFG5b!Vu?KB)5OE L1idT:Y-$/9k0ab,s?L>R@Qn?k/D%6KhDYnP-EmfT=51:2!2[V3X)-f'63LC`9Y(( LdfpcM-tp#)HBL"c$lL9a%S%I?Ugb.R)]TIf0RJ$hpZ7foW2oCcS*@*X6X2bn-'L) Y/4lgDXQM45B5RL3iPr`q(T WRO6.Nm".?eA_FE0c4r<:]Z@/E"2H]#%$f$;Z.I-'-O8\gGAtp^c?Th%/FBO>>de* *:q=C9=IQRFNK/MlipXmOpRPrIg,X!NFW#0/]83c(j_.kO+SB)(8Y-\GVGq<%HEaj [Z3[7(.4OQ_eB7$_7O;c$s^dbn4P>Y-!G)Fhf/Zi3nRipci#87?AfOAVKSYjcN)L_7&U~> endstream endobj 108 0 obj 466 endobj 109 0 obj << /Filter [ /ASCII85Decode /FlateDecode ] /Width 76 /Height 99 /ColorSpace 113 0 R /BitsPerComponent 8 /Length 110 0 R >> stream 8;Z]"9,<.&$q2s\ru3CCpQD4S;35/=0M(K,kO`&<>"tTL^nI#2S-q?`-mLB'53)=Z 1lfO"pAr]k'*aZFS+3'k_-.2>8dLI$(J9LEB1eH1QJj?`TsTH<3k+ HNp%(+:;IG[10+_(C;Z+>36\,0'3[FEoM=[eB[Wo@Gd+tEh`55XN7@QO7aFoidB0] kj+/Gl^,#hr_STjH+@[>Br&[1^/Rtc endstream endobj 110 0 obj 306 endobj 111 0 obj 481 endobj 112 0 obj << /Filter [ /ASCII85Decode /LZWDecode ] /Length 111 0 R >> stream J,g]g+e/h_!_gCtO=0f)$P%cIi8Zdfc5&3j_8$7g.@L`YKUJNGBP\poR=_;Dl'P(T (7Boo^^S:71(MN]ZQX/+Cbu.lK"p74pe1T%s.DY%&\1TdJhr54.M9au6>79n6`Q:4 PbLSZTLEE(8E@'*1mg_*eTnN*;*'V3+gm-EEetX%;Bo$ur2ss*N`.-!.kG_q6GDD' dKoL!8Ka#EV,@V!\j8ZFbp6EE<9cn=N6j0nf;(&;QU6bUD')c@\ 9-d\DA=cZ0Q>gIM$$;cd2O@&a;X,Nn_aP(]I1aRc(K1^ue> gF/(+GaKo$qneLWDrQ#;5\S(\$q'4Q,85`-8;S(=Z"WSBOV*FM)4,?B],R endstream endobj 113 0 obj [ /Indexed /DeviceRGB 255 112 0 R ] endobj 114 0 obj << /S /D >> endobj 115 0 obj << /Nums [ 0 114 0 R ] >> endobj 116 0 obj << /Producer (Acrobat Distiller 4.0 for Windows) /Creator (Microsoft Word 10.0) /ModDate (D:20030703151840+02'00') /Author (Richard Herveille) /Subject (OpenCores I2C Master IP-Core Datasheet) /Title (I2C-Master Core Specifications) /CreationDate (D:20030703151808) >> endobj 117 0 obj << /Type /Pages /Kids [ 132 0 R 1 0 R 4 0 R 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R ] /Count 10 /Parent 118 0 R >> endobj 118 0 obj << /Type /Pages /Kids [ 117 0 R 119 0 R ] /Count 18 >> endobj 119 0 obj << /Type /Pages /Kids [ 28 0 R 32 0 R 35 0 R 38 0 R 41 0 R 44 0 R 47 0 R 50 0 R ] /Count 8 /Parent 118 0 R >> endobj 120 0 obj << /Dt (D:20030703151839) /JTM (Distiller) >> endobj 121 0 obj /This endobj 122 0 obj << /CP (Distiller) /Fi 121 0 R >> endobj 123 0 obj << /R [ 600 600 ] >> endobj 124 0 obj << /JTF 0 /MB [ 0 0 612 792 ] /R 123 0 R /W [ 0 17 ] >> endobj 125 0 obj << /Fi [ 122 0 R ] /P [ 124 0 R ] >> endobj 126 0 obj << /Dm [ 612 792 612 792 ] >> endobj 127 0 obj << /Me 126 0 R >> endobj 128 0 obj << /D [ 125 0 R ] /MS 127 0 R /Type /JobTicketContents >> endobj 129 0 obj << /A [ 120 0 R ] /Cn [ 128 0 R ] /V 1.10001 >> endobj xref 0 130 0000000000 65535 f 0000055605 00000 n 0000055772 00000 n 0000055876 00000 n 0000056110 00000 n 0000056277 00000 n 0000056419 00000 n 0000058957 00000 n 0000059124 00000 n 0000059339 00000 n 0000061677 00000 n 0000061847 00000 n 0000062040 00000 n 0000066082 00000 n 0000066252 00000 n 0000066457 00000 n 0000069924 00000 n 0000070094 00000 n 0000070311 00000 n 0000074765 00000 n 0000074935 00000 n 0000075141 00000 n 0000079053 00000 n 0000079223 00000 n 0000079465 00000 n 0000082335 00000 n 0000082505 00000 n 0000082710 00000 n 0000088425 00000 n 0000088595 00000 n 0000088788 00000 n 0000092133 00000 n 0000092977 00000 n 0000093147 00000 n 0000093353 00000 n 0000099032 00000 n 0000099202 00000 n 0000099396 00000 n 0000102927 00000 n 0000103098 00000 n 0000103279 00000 n 0000107055 00000 n 0000107226 00000 n 0000107420 00000 n 0000110044 00000 n 0000110215 00000 n 0000110434 00000 n 0000113244 00000 n 0000113415 00000 n 0000113634 00000 n 0000118251 00000 n 0000118422 00000 n 0000118616 00000 n 0000120792 00000 n 0000121381 00000 n 0000121821 00000 n 0000122018 00000 n 0000122860 00000 n 0000122913 00000 n 0000123647 00000 n 0000124041 00000 n 0000124094 00000 n 0000124831 00000 n 0000125673 00000 n 0000125726 00000 n 0000126463 00000 n 0000126708 00000 n 0000127353 00000 n 0000127570 00000 n 0000167252 00000 n 0000167459 00000 n 0000186094 00000 n 0000186326 00000 n 0000195858 00000 n 0000195955 00000 n 0000196265 00000 n 0000196709 00000 n 0000196730 00000 n 0000196971 00000 n 0000196991 00000 n 0000197423 00000 n 0000197444 00000 n 0000197983 00000 n 0000198004 00000 n 0000198606 00000 n 0000198627 00000 n 0000199243 00000 n 0000199264 00000 n 0000199883 00000 n 0000199904 00000 n 0000200432 00000 n 0000200453 00000 n 0000201011 00000 n 0000201032 00000 n 0000201672 00000 n 0000201693 00000 n 0000202289 00000 n 0000202310 00000 n 0000202891 00000 n 0000202912 00000 n 0000203621 00000 n 0000203643 00000 n 0000204415 00000 n 0000204437 00000 n 0000205050 00000 n 0000205072 00000 n 0000205644 00000 n 0000205666 00000 n 0000206293 00000 n 0000206315 00000 n 0000206782 00000 n 0000206804 00000 n 0000206826 00000 n 0000207404 00000 n 0000207459 00000 n 0000207491 00000 n 0000207537 00000 n 0000207825 00000 n 0000207972 00000 n 0000208049 00000 n 0000208182 00000 n 0000208247 00000 n 0000208271 00000 n 0000208325 00000 n 0000208366 00000 n 0000208445 00000 n 0000208503 00000 n 0000208553 00000 n 0000208591 00000 n 0000208671 00000 n trailer << /Size 130 /ID[<39fba8a04ae75ebb1483bac48e64f588><39fba8a04ae75ebb1483bac48e64f588>] >> startxref 173 %%EOF uhd-3.5.5/fpga/usrp2/opencores/i2c/doc/src/000077500000000000000000000000001224274632000203045ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/doc/src/I2C_specs.doc000066400000000000000000016140001224274632000225470ustar00rootroot00000000000000ÐÏࡱá>þÿ )+þÿÿÿ&'(0Ì_Ùoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì¥Á5@ ø¿žRbjbjÏ2Ï2 ~!­X­X3E¡Éÿÿÿÿÿÿˆk5CJ hw{ht%5CJ hw{h{2˜6CJ hw{ht%6CJ hw{ht%5CJ0aJ0hw{ht%5CJ4hw{ht%CJ`H*OJQJaJ`hw{ht%CJ`OJQJ$jhw{ht%CJUmHnHu !;TUV_‡ˆ´ÅÆËÐ×ãûòòêòòòòòåàåÞØØØØ$If$a$$a$$a$gdGM™$ Æf!a$¤3MÔMRýýýãäèñ 9.(($If  ÆàÀ!$IfÆkd$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    öã"ÖÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿ    % 7 ` … ùcùùùùù•kdŒ$$If–lÖ    Ö\rÿ7¥fU"ÅÿÿÿÿnÿÿÿÿÁÿÿÿÿïÿÿÿÿ t¯Ö0    öã"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿ$If… † Š ‹ Ä å   iccccYYY & F $If$If•kd$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿ $ - ? d Ž » icccccc$If•kdd$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿ» ¼ À É Û ò  iccccc$If•kdI$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿ   ) C icccc$If•kd.$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿC D H Q c ‡ icccc$If•kd$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿ‡ ˆ Œ • § É icccc$If•kdø$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿÉ Ê Î × é  iccccc$If•kdÝ$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿ $ - ? e Ž ¸ icccccc$If•kdÂ$$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÞÿÊ " # $ ) + , - > ? e · ¸ ¹ Ì Í ¹ ¿ À s£¤³´Á ES{ˆ¡¢­ÄêET[hw·èD¢£©ÉíùõñêñõñêõêõñãêÜÒÜËÁËܺܺܺܺ˺ܲ¦²ž–ž–ž–ž–ž–ž–Ž–Ü„Ühw{ht%5\hw{hby\5hw{ht%5hw{hÎJ55hw{h·wü5H*aJhw{h·wü5 hw{hÖ)'hw{hä¦H*aJ hw{hä¦hw{ht%H*aJ hw{ht% hw{h}>k hw{hWzth}>khWzt hw{hby\3¸ ¹ º ½ Ê Ë tu£³ige`gggg[9 & FgdÚ ¬•kd§ $$If–lÖ    Ö\rÿ7¥fU"ÅnÁï t¯Ö0    öã"ÖÿÿÿÿÖÿÿÿÖÖÿÿÿ4Ö laöÞÿ ³ÁÕÖ|}~ˆ­Äê;w·è Dz”¨«´µÉúúøøøøøóîîîæîîæîîîîîîîäßøógdÚ ¬ & FgdÎJ5 & FgdÚ ¬ & FÉÓØàìíùóùù-Ækdš $$If–lÖ    Ö\”ÿ” § 8"’‘ Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ÖÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿ$If$Ifíöúÿ)„ôëååOMHMgdÚ ¬•kd! $$If–lÖ    Ö\”ÿ” § 8"’‘ t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÖÿÿÿ4Ö laö$If $$Ifa$  ÆàÀ!$If„†¥Çˆ±Öåéô)Kg‰¦§679:Ÿ¢½ÀÕØóö*-@TW„‡¸Ññž»¼öïèïÞï×Ð×Ð×Ð×ïÐïÞïÆïµï®ï§ï§ïœ‘œ‘œ‘œ‘ï§ï§ï‘ïÞïÆïŠïŠïŠï hw{h{2˜h}>kht%mHsHh}>khGK¬mHsH hw{hGK¬ hw{h¸ jhw{hiŽUmHnHuhw{ht%H*aJ hw{h¢ hw{hä¦hw{ht%5\ hw{hÚ ¬ hw{ht%hw{hÚ ¬5\5„…†¥ª°ºÆúúúôôôô$IfgdÚ ¬ÆÇÐÒ9.% $$Ifa$  ÆàÀ!$IfÆkd $$If–lÖ    Ö\”ÿÍN^ 8"9Ú Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ÖÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿÒØåæïñ÷ùùcùZùù $$Ifa$•kd¤$$If–lÖ    Ö\”ÿÍN^ 8"9ÿÿÿÿÿÿÿÿÿÿÿÿÚÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö$If &9icZcc $$Ifa$$If•kd’$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö9:CEK^icZcc $$Ifa$$If•kdr$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö^_hjp†icZcc $$Ifa$$If•kdR$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö†‡’™¬icZcc $$Ifa$$If•kd2$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö¬­µ·½ÐicZcc $$Ifa$$If•kd$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÐÑÚÜâicZcc $$Ifa$$If•kdò$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö *icZcc $$Ifa$$If•kdÒ$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö*+46=ZicZcT$If $$Ifa$$If•kd²$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöZ[egn†icZcc $$Ifa$$If•kd’$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö†‡ˆMglr|ˆigggb\\\\$IfgdÚ ¬•kdr$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÖÿÿÿ4Ö laö ˆ‰“•9.% $$Ifa$  ÆàÀ!$IfÆkd`$$If–lÖ    Ö\”ÿ¹: J8"%î Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ÖÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿ•›³´¾ÀÇàùùcXOùù $$Ifa$  ÆàÀ!$If•kdç$$If–lÖ    Ö\”ÿ¹: J8"%ÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö$Ifàáìîõi^UOO$If $$Ifa$  ÆàÀ!$If•kdÕ$$If–lÖ    Ö\”ÿ¹: J8"%ÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö "(?i^UOO$If $$Ifa$  ÆàÀ!$If•kdÃ$$If–lÖ    Ö\”ÿ¹: J8"%ÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö?@JLSkicZcc $$Ifa$$If•kd±$$If–lÖ    Ö\”ÿ¹: J8"%ÿÿÿÿÿÿÿÿÿÿÿÿîÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöklwy€ŸicZcc $$Ifa$$If•kdŸ$$If–lÖ    Ö\”ÿ¹: J8"%î t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöŸ ¡™š689:“žŸigggggggggg•kd$$If–lÖ    Ö\”ÿ¹: J8"%î t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÖÿÿÿ4Ö laö ŸÕ /0>?ož·ÐÑÓÝÞñöþ ùùùù÷÷÷÷÷÷÷ùõðêåßßßßß$IfgdÚ ¬ ÆàÀ!gdÚ ¬„Ð`„Ð$Ifäkdm$$If–lÖ    Ör”ÿ¼­‹ l8"(ñÞáÌ Ö @@@@@ t¯Ö2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ÖÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöpÖ2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿ$&)IJQVXùððùGùùð¨kd !$$If–lÖ    Ör”ÿ¼­‹ l8"(ÿÿÿÿñÿÿÿÿ€ÞÿÿÿÿáÿÿÿÿÌÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laö $$Ifa$$IfX[{|€…‡Š›öðGððööð¨kd*"$$If–lÖ    Ör”ÿ¼­‹ l8"(ñ€ÞáÌ t¯Ö0    ö¤"ÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laö$If $$Ifa$›œ ¥§©»VPPGGP $$Ifa$$If¨kd&#$$If–lÖ    Ör”ÿ¼­‹ l8"(ñ€ÞáÌ t¯Ö0    ö¤"ÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laö»¼ÀÅÇÉÚVPPGGP $$Ifa$$If¨kd"$$$If–lÖ    Ör”ÿ¼­‹ l8"(ñ€ÞáÌ t¯Ö0    ö¤"ÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöÚÛÞãåçøVPPGGP $$Ifa$$If¨kd%$$If–lÖ    Ör”ÿ¼­‹ l8"(ñ€ÞáÌ t¯Ö0    ö¤"ÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöøùüVPPGGP $$Ifa$$If¨kd&$$If–lÖ    Ör”ÿ¼­‹ l8"(ñ€ÞáÌ t¯Ö0    ö¤"ÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laö12JlmVTTOTJTTgdÚ ¬gdÚ ¬¨kd'$$If–lÖ    Ör”ÿ¼­‹ l8"(ñ€ÞáÌ t¯Ö0    ö¤"ÖÿÿÿÿÿÖÿÿÿÿÖÖÿÿÿÿ4Ö laömµÉÊËâèïûýýýýýøòòò$IfgdÚ ¬ ž±²³´ÉËâüst! " * + C ] ~  L!M!d!~!œ!!Ë!å!¹"º"¾"##ª#P$W$X$c$¢$£$§$¼$ë$_%ôíÙÌôíÄíºí°í°íÄí°í¢íºí°íÄíºí°íºíšíšíºíšŽšíš‡‡x hw{h+i2hw{h6“6 hw{h6“hw{ht%6H*aJhw{ht%6hw{ht%OJQJ\^Jhw{ht%H*aJhw{ht%5\hw{ht%5j (hw{h{2˜EHèÿU'jN3Ã@ hw{h{2˜CJUVnH tH  hw{ht%jhw{ht%U/ûüþ@gWLFFFF$If  ÆàÀ!$If¨kdâ*$$If–lÖ    ÖF”ÿÐ¥U"<Õ° Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öÖ Ö ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöpÖÿíëÿÿíëÿÿíëÿghjm‘¸à|vvvvv$If‚kd=,$$If–lÖ    ÖF”ÿÐ¥U"<ÿÿÿÿÕÿÿÿÿ°ÿÿÿÿ t¯Ö0    öÖ ÿÿÿÿÿÿÿÿÿÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöàáåèñ|vvp$If$If‚kd-$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöñò) * + C I P \ |zzzzxsmmm$IfgdÚ ¬.‚kdß-$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ Ö ÿÿ4Ö laö \ ] a c WLFF$If  ÆàÀ!$If¨kd·.$$If–lÖ    ÖF”ÿÐ¥U"<Õ° Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öÖ Ö ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöpÖÿíëÿÿíëÿÿíëÿ ‚ „ † Ä !!!8!|qkkkkk$If  ÆàÀ!$If‚kd0$$If–lÖ    ÖF”ÿÐ¥U"<ÿÿÿÿÕÿÿÿÿ°ÿÿÿÿ t¯Ö0    öÖ ÿÿÿÿÿÿÿÿÿÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö8!9!K!L!M!d!j!q!}!|zxzsmmm$IfgdÚ ¬‚kdê0$$If–lÖ    ÖF”ÿÐ¥U"<ÿÿÿÿÕÿÿÿÿ°ÿÿÿÿ t¯Ö0    öÖ ÿÿÿÿÿÿÿÿÿÿÿÿÖ ÿÿÖ Ö ÿÿ4Ö laö}!~!‚!„!Ÿ!WLFF$If  ÆàÀ!$If¨kdÐ1$$If–lÖ    ÖF”ÿÐ¥U"<Õ° Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öÖ Ö ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöpÖÿíëÿÿíëÿÿíëÿŸ! !²!³!´!Ë!Ñ!Ø!ä!|zzzuooo$IfgdÚ ¬‚kd+3$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ Ö ÿÿ4Ö laöä!å!ç!é!"WLFF$If  ÆàÀ!$If¨kd4$$If–lÖ    ÖF”ÿÐ¥U"<Õ° Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öÖ Ö ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöpÖÿíëÿÿíëÿÿíëÿ""""4"|vvv$If‚kdl5$$If–lÖ    ÖF”ÿÐ¥U"<ÿÿÿÿÕÿÿÿÿ°ÿÿÿÿ t¯Ö0    öÖ ÿÿÿÿÿÿÿÿÿÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö4"5"7"9"M"|vvv$If‚kdD6$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöM"N"P"R"e"|vvv$If‚kd7$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöe"f"h"j"©"|vvv$If‚kdØ7$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö©"ª"®"°"¹"|vvp$If$If‚kd¢8$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö¹"º"¼"¾"#|vvp$If$If‚kdl9$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö####y##–##©#|zzzuooo$IfgdÚ ¬‚kd6:$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ Ö ÿÿ4Ö laö©#ª#¬#®#Ö#$0$K$WQQQQQQ$If¨kd;$$If–lÖ    ÖF”ÿÐ¥U"<Õ° Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öÖ Ö ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöpÖÿíëÿÿíëÿÿíëÿK$L$N$P$c$ƒ$¢$|vvpvv$If$If‚kdi<$$If–lÖ    ÖF”ÿÐ¥U"<ÿÿÿÿÕÿÿÿÿ°ÿÿÿÿ t¯Ö0    öÖ ÿÿÿÿÿÿÿÿÿÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö¢$£$¥$§$¼$%3%_%‘%|vvpgZZg & F$Ifgd+i2 $Ifgd6“$If$If‚kdA=$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö_%c%r%‘%’%“%¢&¤&È&É&Ô&Ü&ò&''j'k'‘'’'—'˜'­(Ð(")#)Ù*Ú*å*æ*v+w+”+•+–+—+˜+™+ÿ./Â/Æ/)1ùñùñùêãêãùãêÙÌÙÄê½ê³ê¬ê¥ê›ê½ê‰uj‰¬ê½ê¬êjAAhw{h3ØU'j­ÀºA hw{h3ØCJUVnH tH  hw{h:¬jhw{h:¬Uhw{ht%H*aJ( hw{hYkN hw{hÎhw{ht%H*aJ hw{hÚ ¬hw{ht%5hw{ht%56\]hw{ht%6] hw{h+i2 hw{ht%hw{h6“6 hw{h6“)‘%’%–%˜%¡%|vvp$If$If‚kd >$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö¡%¢%¤%¦%Á%Ü%÷%|vvvvv$If‚kdÕ>$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laö÷%ø%ú%ü%„&¤&É&Ý&|qkkk^^ & F$Ifgd+i2$If  ÆàÀ!$If‚kdŸ?$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ ÿÿÿÖ ÿÿ4Ö laöÝ&Þ&ð&ñ&ò&j'm'w'x'|zzzVTOzgdÚ ¬#$d%d&d'dNÆOÆPÆQÆ‚kdi@$$If–lÖ    ÖF”ÿÐ¥U"<Õ° t¯Ö0    öÖ ÿÿÿÖ ÿÿÖ Ö ÿÿ4Ö laöx'‘'’'Ÿ( (Ò*Ó*Ô*å*æ*!+9+P+^+u+v+˜+™+¬+-..á.â.ã./Ä0Å0úøøøøøøúøøóóóóøøøîøøøøøøîøøgdÚ ¬ & FgdÚ ¬)1*1/202h6j6]7y7~77Ñ7Ò7P8}8~8ª9W:X:Y:Z:w:x:y:z:{:}:ý;þ;¬<­<,@-@äAõîçîàîÙàÏàÈàÁ·ÁÙà‘†¬îîwîfîUî jhw{h_@›UmHnHu jhw{ht%UmHnHuhw{ht%5 hw{h‚3BjNhw{h‚3BU'j$ʺA hw{hy¸CJUVnH tH  hw{h“_9jhw{h“_9Uhw{hh‚H*aJ hw{hh‚ hw{hMLêhw{h^•H*aJ hw{hÉ= hw{h^• hw{hÚ ¬ hw{ht%hw{ht%H*aJ Å0M1N122202×3Ø3|4}4h6i6j6|6@7A7B7\7]7y7X:Y:{:|:}:”:ý;ýýýýýøýýýýýóóøýýýîýéýýýøøøýgdÉ= gdÚ ¬gd^•gdÚ ¬ý;< <<¬<ø<ù<ú<==Ò=Ó=Ô=ð=ñ=+@,@I@J@[B\B^B_BjBlBqBrBsBýøöööööñööööñöööñöööööööëëë„Ð`„ÐgdÚ ¬gdÚ ¬äAåAìABB;BBBZB\B]BlBpB‡BˆB6F7FËFÌFÍFÎFÞFQGRGzG{G|GRKSKTKUKØKÙKL2L?L@LsLŒLL›LLŸL®L³LµL¶L¸L¹LÄLÅLÐLÑL×LØLÙLÛLùòùòùòùòßòùòùòÛòùßÔÊÀ³ÀÊ©òßò¢À³Àòžò”òžòžòžžžžžžž hw{hwÅhw{ht%5\hwÅ hw{hw{hw{h+i26aJhw{hw{6H*]aJhw{hw{6]hw{h+i26] hw{h+i2h]½$jhw{hd9UmHnHtH u hw{ht% hw{hd97sBB‚B‰BŠB‹B•B–BœBBžB©BªB°B±B²B¼B½BÃBÄBÅBÆBàBáBLDNDùùëùùùùùùùùùùùùùùùùùùæùäÞ„Ð^„ÐgdÚ ¬  ÆàÀ!Ð Í gdd9 ÆàÀ!NDcDdDeDoDpD‘D’D´DÉDÊDËDÙDðDE/E:EYEoEpEqE{EËEúE.FhF—Fúøøóøøøøøøøøîîîîîîøøøéøéãá„h`„h & F  & FgdÚ ¬gdÚ ¬—FËFÌFÎF{G|G‡GˆG·G¸GÍGñGòGóGHúõ¯ˆõƒgdÚ ¬&$d%d&d'dNÆOÆPÆQÆgd+i2FEÆ€Šól&gd+i2gdd9 & F HH7HVHlH‹HªHÉHèHýH>ISITIUI_I¯IÞIJ?JnJ¢JñJ KRKTKUKúúúúúúúúúúúøøøóøóíøóçøøøâgdw{„h^„h„h`„h & F  & F UKLL L!L"L?L@LKLRL^LcLrLØÖÑÏÏÊÊÄÄ»ÄÄ $$Ifa$$IfgdwÅgdÚ ¬&$d%d&d'dNÆOÆPÆQÆgdw{ rLsLékdI]$$If–lÖ    Ör”ÿ‡í Âh£ófÕ¦;  Ö @@@@@ t¯Ö2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö ööÖÖÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöpÖ2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿsLyL‡L‹L‘LžLŸLôôëåå7­kdü^$$If–lÖ    Ör”ÿ‡í Âh£ófÕ¦;  t¯Ö0    ö ööÖÿÿÿÿÿÖÿÿÿÖÖÿÿÿÿ4Ö laö$If $$Ifa$  ÆàÀ!$IfŸL¦L´L·L½LÆLÇLôôëåå7­kd`$$If–lÖ    Ör”ÿ‡í Âh£ófÕ¦;  t¯Ö0    ö ööÖÖÿÿÿÖÖÿÿÿÿ4Ö laö$If $$Ifa$  ÆàÀ!$IfÇLÈLÖLÙLßLêLëLôôëåå7­kda$$If–lÖ    Ör”ÿ‡í Âh£ófÕ¦;  t¯Ö0    ö ööÖÖÿÿÿÖÖÿÿÿÿ4Ö laö$If $$Ifa$  ÆàÀ!$IfÛLßLéLôLûLýLþLMMMMMMM!M#M'M0M2M3M4M?M@MNMOMeMfMnMoMqMrM—M˜M™MªM«M²M³M´MÀMÁMÇMÈMùõùõùõùõùõùîêîêîêîã×ÓÉÓÁÓÁ¸ÁÓ«£“««ÓêÓ…{u{ ht%0Jjht%0JUht%B*phÿ ht%0JjGiht%B*Uphÿht%B*phÿjht%B*Uphÿh‹]ømHnHujht%UhGM™ht%H*aJht%j,dht%OJQJU hw{ht%h»Jw hw{h»JwhwÅ hw{hwÅ*ëLòLüLÿLMMMôôëåå7­kdb$$If–lÖ    Ör”ÿ‡í Âh£ófÕ¦;  t¯Ö0    ö ööÖÖÿÿÿÖÖÿÿÿÿ4Ö laö$If $$Ifa$  ÆàÀ!$IfMMM M'M1M2Môôëåå7­kdc$$If–lÖ    Ör”ÿ‡í Âh£ófÕ¦;  t¯Ö0    ö ööÖÖÿÿÿÖÖÿÿÿÿ4Ö laö$If $$Ifa$  ÆàÀ!$If2M3MpMqMÒMÓMÔMæMçM÷MøM N NNNN4N5N6NMNý±ý§ýýýýýýýýýýýýýýý $dNÆÿK&dEÆ€V‘b&PÆÿÈMÊMËMÑMÓMÔM¬NØNíNøNOO&O*O+O/O0OCOWOZO[O_O`OdOuO€OO…O†O‰O—OšO›O¥O¦O²O³O·O¸O»OÌOÏOÐOÔOÕOØOóO÷OøO P¡P¸P¹PÑPÒPÖP×PzQ{Q’Q“Q«Q¬Q°Q±Q?R@RWRXRpRyRzR—R˜RôêäàÜàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÎʹ!j®ºA h×5lCJUVnH tH hiŽjhiŽU ht%CJhÏgKht% ht%0Jjht%0JUhÏgK0JmHnHuIMNNNRNSNWNXNYNZN[NnNoNN‚N“N”N•NœN«N¬NØNÙNìNíNøNùNOOOOýýýýýýýýýýýýýýýýýýýýýýøýóýýý$a$$a$OO%O&O*O+O/O0OCODOVOWOZO[O_O`OdOeOjOtOuO€OO…O†O‰OŠOO–Oúúøøøøøóøúøøøøøøøúúøóøøøøøúú$a$$a$–O—OšO›O¥O¦O²O³O·O¸O»O¼OÁOËOÌOÏOÐOÔOÕOØOÙOáOïOðOñOòOóO÷OøOýýýøýøýýýýýóóýýýýýýýóñýýýýýý$a$$a$øO P¡P¸P¹PÑPÒPÖP×PzQ{Q’Q“Q«Q¬Q°Q±Q?R@RWRXRpRqRrRsRtRuRvRwRxRýýýýýýýýýýýýýýýýýýýýýýýýýýýýýxRyR›RœRRžRýýýýý˜R™RšRœRRžR÷ïëçà hw{ht%ht%hiŽjhiŽUjìih+i2U- 00€&P°Ð/ °à=!°"°# $ %°0) 00€°Ð/ °à=!°"°# $ %°0& 00€°Ð/ °à=!°"°# $ %°`!ðÁÿçšPÖ^2¢Ri€ÞBïø(ç|ÄÃ,ÿþxÚì½]ocI’(¦™]ïš}ݸXÀo†³{Ý‹ªµ»øqHŠl\l›¤ÄžºÓu[=³=.4tY%±‹"5$U¥ZZ~Þ¿PaßëiÿBý… ¿Üà Ã0ü` ›‘‘‘™‡¤Tªê®Ùu$žüΈÈÈÈÈÈÈ_ì”vvþäOþÛ_îüÉηŸí˜ŸÿÊ<ÿæ—üí¿ùåÿºóŸwþÌ|ûë?ûë_îüBÄÿ¹yÞüò;øó§æùÔ¼˜òvþû?ûËÿ{rút;;×××.–óç¿øóêíýÛlçµùÎyøÿ=óügû¾cêþ¯mØ:ßñ?T}nžcó¼4Ïk ÈÍslž—æymžkJ”›çØÇæyiž×湦Fäæ96ÏKó¼6Ï55,7ϱy^šçµy®©±¹yŽÍóÒ<¯ÍsMÈÍslž—æymžkêTnžcó¼4Ïkó\SG¡5ðyiž×湦Îçæ96ÏKó¼6Ï5$7ϱy^šçµy® H¹yŽÍóÒ<¯ÍsM€ËÍslž—æymžkfnžcó¼4Ïkó\€sÛ’—öóÚ<×ôÜ<Çæyiž×æ¹&Däæ96ÏKó¼6Ï5!'7ϱy^šçµy® a¹yŽÍóÒ<¯ÍsMHÌÍslž—æymžkBln¡òÚ¶>ׄìÜ<Çæyiž×æ¹&ÈÍslž—æymžk"ŠÜ<Çæyiž×æ¹&BÉÍslž—æymžk"žÜ<Çæyiž×æ¹¾Fj9¶¹¶-ËÍslž—æymžk"ºÜ<Çæyiž×æ¹&BÌÍslž—æymžk"ÎÜ<Çæyiž×湆03ÍóÒ<¯í¸ü þÝù‹¿€¿Å¿;õWðwwööàïoøwç7¿¿Ïùwçùsøûü»óÿÿ‘wþñáï?ñïÎ?ýüýgþÝù熿ÿ¿;ÿò/ÿbÇø5ý¹¦/×ôrOüóê |®ÿ€~Rý|óJ|þ`ûùêMâó‡×O×±Dwÿ€úb拾;ë»™±$!ïDÝ,LúAwv'êJØ©lêÃë§ëÖÆÎ|p¸Ý pU<µ|ØÝ‰G§nòÆÎ|„¼£ñSÀs7cîçŽÛˆl‹1ò!r„Ï„÷aòNÈm·ÃÂ-:ûêçÒÏtóÃ#äd»±‰!'ðy«µèϽ³ |¦Áëmšöó%äõøT ÑÍþÀyGw#^}&ß¶hàϬ³;ëÈ6l½S³·iÜφwÖ“m ýsòo *RÌÖ}ÿ¸]‡O)ï2&¯Ói®îy>]7Å÷G¸ÞDz?!ï¬aC‡®;jz-pL`ݽÓξ¹«~ÆÒ“4*mG¢1ûJK¹Þï•w¶#Ûp*‘©©k®›×Ž{üþ䄼³Ž )Ž3$ñ×­\_1ù]ø©§Ÿ-ðT‘4bML8Hàþ¿0~"BÞŸAUjÌ^ÝQŠ7š}ƒ¶ÀÆ»Á펔d_ãÓëu•qtç•–›"šØwÞÙMÒõ´\âS)¹$iä}Š;ë¤[­%ñé&Ÿ'Ï`ªzs }Ômp»Ÿ±Ø§:ãS•rçXzzs§}G„¼³v‘}4÷MÐÁ€í¼Rå¨qûF–)›¢÷Zï\ýôóMJi°?\뿯ä<*ñy­("fIÀjú¹ÓQ«ú™Zd‡³ðb®*Ç€ IªHhúã)lìÞ€5>ª„¢$³’ ]«Î8|ê©ë:±t׸ |[Ù…í¬Ñõ¥Ô`ÑÌ+!ýASÆK89>M¨9Z¯~Þjú¡¼kñ©‹P:‰%Ö i÷:“o^ÅœøM´2£õ•XÜXFV]Ï„š:-'ð©ˆ\чÓkd®x|Cê­ Y´qg *„[@jÒq«T*¯RSQ´2 –{á º!û|;7Ø) õ¸b½yL‘t«gRÝÍ눼c|ê ­G­û¶³l7„h\¥ðY "^‡bG¤ÇH‰¡Ðøªˆí¬eC›#TF“C <Óã2A¨1Šä°@Ûè¹r1åÝŸÅC_3“Hå)'–XÞ*bCº&^ø²Ñ·Ãçša/°"—_ñ\w¬€ éñ³ÅJ·S°È¾ùÏ«Õ\'Ä9Z È6O5(Òœ;ž~ôúhç­É¶I¥eÙp-š’n¯£.Éñý*dC‘(‹•ŸoA¶E„|][-I%~ÝøT\Îp„¾ |®“;#,¾y/ÆUG®Bf0Õ„œR¼+|®™kBÅ-HC7Î"BŽ·6 Ÿo¶Áç[2©Äâ=Abo”pQ C­‰ùÕu>·’nïl«N¯.×fˆçWñ\m$ebÏd+ˆï- \醒@ˆ§©Iº.Âg N"ÞÙ’ )Áëí÷% ´|–"!0„Ø &Ÿ„D„©·Ä§®^²•»fR‘€÷¦Ç‰iäÕ›W+œë-ñ™’ZÃ=´;èl*^Á¤uÎI|nÆRRkJÛðö£6ðRbc̆Šf‰ÏmBUkîß¼Õ¨•Ü8[ȆÒÚ«7NŸp²½~•¾õfÂÛbWðõ7iéøælh;|êýËÔnZt$d£Âê&ãv4$uÅkØÐvø õí)|&,ß^´ˆ•El¨ –ãSo%·^%´ìw#C½Js…ëÄc˜ýܼȖJp©¬òµæàU(fߙИ˜ðÖI·ÐÏíÉö•ã_¡ïÕ›ø[``U´Z¼µÐX°Õ•ØÑqø\O¶â¸‡ÞÝŒ™€\ï_'·Sø\·Ã‡û+ñ©ö)_]§ð) 3i› ùò*q´k´>ÕõM Ÿ××)MNš/¯coÅ‘×âsã";<¥$ô´o¢}íhW4m9o;Þeg“ø|ÛÔí«@'ª¤“ˆ=„¦Éz±oJ½½, …7>¯×áó2QÔ›G)i(ÞÛP«×ô~ö»qe wÄ7âó•2Q”[AŒu¡ÑèOM o½˜gû„ÍøŒÖ1>S[åi[“¤)zòøÈÛãVrž ‡!ƒ ¹™·…›F `iROSë˜îŸ¯6hç"£â넲#´óŠ&¨ÄÖPÁñ‘´ÙÇ[â³°£á²W›Y$Çb¡¾7Ú)ÞW»N›QÞ˜ÿº~í¼ÙtŠW.É”ÙLjo›dN¡lœØL°¶î°€v^mMš$‹UVšÌµ9aöÚ…Æ«7 ¥êUyw´¡ÿMGianÝ´R¤óQúÃHšz£”pÛ«h4>#ç·Y翉µnŠ›¨™_Ū­X:ŽwÃ‹äŸø|S 6Þ~ÑY¾z³Fë€ë„‰MÌÓô°5>¯_Åfú7àoɆ «Pº½Ž¶† Œ06ï»xZO²sŸBºÕI‘5 «p+A+_BSr-\¾Ò¶õñ¢b;²åý•W)+Ž ׯެ9È“ÞJˆð-I(l1ú~^¿ƒS@ñV}¼£™ØˆÄüPWð*RÔ\ߟë!t»Î¦qZ}†ø,T¢E2ö Ù<ïp÷GžÔ.gÚ°â:!&D& Û¡àÔµ;k1÷fSg_]ßdÜîf…bß›¤¡E,wm¹È¾ÞÎß]ò«ÄNø«7¡Éj¸—­×£á†Ã&³T¹àÛÙJâ¹CBNYéòÕ ‹ [ásC?ßagãC\EÇG®•éã› {×·Âç;'ä¢G¦èoâÓjEÖ*·Åç{Àm¨ÇM˜¢ß– )c„›Bþt¶È ðMÚ¨f»£Jït³~¾;BµùÚ™Áu‘QͶd{«~¾BŽÅÆ›˜{Ü>ß#G¾ŽÍnå-çñù~D ¦!±é÷j=ºC|ÞD(|óv¸MÙãn+ÝÞe?ßµ•ؓ۞l?ï˜S'e¶aC﨟ﯳ?->ßÓ‚àçÏ÷*#o`C﫟ﹳñÙî÷ÙÏw/G’íOÐÏ÷€ÛÄfÈOÕÏwÚÙW?|¾KBNíùü úy׺Ƥ‹‰ŸK?³ü?Ë~Þ!.(~Îý¼mgöô?ÿ~Þšmð‡ÑÏ[àVñÜ«Ÿ[² BßËT?o2—ûû°~6à6í³Ÿk;›$긟k§—ë?´~&;§øÃè§&äTœ¸ï!üë?ûdçÿýÅÿó‹O¾:Øt=šgO&£ìñÁìx9zš=Ë4øø£òùùábðl”Ù?G£ã¬¼8=?œŒ²Õ˜4‹ÃùèÉèé,k6³£ñpiÓ¹À'£“ñJ21‡Of—‡—Õ¬Ú®`a.ðE5Ëó:è“Ö²z­&55f8˜Œ—§£Cˆ¾˜²ãÁd1âr·“ñ¹ ëu³•ùظÙèrxJÅ›÷K÷N™O—AŠçG>àêãËÙùùè(›Î–\&Ô·œ_ °®²1üÁ¹bè‡é®(B.£ÓÏ0Mm]í1,’íà{ná.Úÿÿ—þ"Z ÿ¥½×öOñoèÞÛÿîOù&[ ÿîÂ%úù¿~ñþ‚ºüñG« !ˆp=›=-g¬’Í'ã)T2+|ü%™ŽND2 ÅéÈÐÙòÔ6Þt6êÔé ¥ÿW³ÁÑ‘œþï|üQÆ»ŒÒ,.žd’% CÜÑøYPÆ‹¨!ª ó.É8,ÃÆ=½ôõËvQ½gÌç:÷ô…¯L6‚* ´e &ãr>˜.&ƒåÈÕÅEØÿÆ–tFÓ#óíÿûsÄûÿñoÿ÷ûÉ_>:ø´s4{2ú4PÉ é×?ú䓞á%ËÙü³ÌFg'“‹…©ÇÝûö~ÖÂD‡­CJøÛÑ|1žM?ËÚÕ‡¼÷¾½8šM޳ß,£ÉÙ`:½ŸÝ›Î¦£ûâ»ñr22iž?ÖŒÎ÷]µ¦œ=ӛϲF¹Q®FSû¬QË} º³‹éÑxzÒ]~f90`/†›@ü¯ÆßŽa¢µz»)ÔjæK½V}Ðh6M¾Æîƒv­‘CƽÙðâl4]>šÏ†£Å¢7›Ìæ‹Ï²Þ‹Á4ûÊpÊérýn4™ÌžËÔçç“ñèÈT:»˜›ŒŸe禀Åh‰€;œŒž&µÃÎÃFV}PË,lþGŸæ‹¯¿˜ŽÆ¦(_‰âm¶-ÏL#L9M“.O§H¢ š¹ͧ”¨ Ö!ÌYÍD·RыӀؔÑre˜òûãÉÈ ÿl°Ìê00Çüfaz` ß)üát8¹8=𠆣#ÛÃ…Ù=´/£åÒÔa€Z…&|ûEWbç3Ãkàsïñ·fv²7”óÃ}¤Ì&Vz0:`„)Ì”c>÷ˆ{£ãÁÅd‰­É|*óuy?Ãs! ›«i*ªÚ§*þ›O‹Zá?ŸVá—ßRßà{-˳:ÖóèÑÔQÃÍŠ¡K]£ Õ¨ÛiÛH€áw£³sü–ØóJó¡ôvþúïœÔàÇ„ÁY=k´ëÙî.ãȀѳñèùgÙ£‚ð»‡ý~v06µŒÇùò`ü÷—Íj-Ûm×(øÛ‹Éhþ›éxI£¤ýÉÀ¢PôÆþ¥ß æ'£%  ÉÅÒ²V…ã¾¾8ûrðb4w¶¿9M¿›ýֶЀ¹Ym¤j»õ¬]ÝEt¬TêYµÑµ@6ÈÄÅíèûf>6¢Íg"H9ùá£Áùhþíh¸üìS¾»‹ 2ß9ÁW¦Í˜éSzlîóñ‘§ÛÝZÖÂ?¶ËZâiócs¶ œÌ°4ý¯PQß^œ=™ÆÓûZ+k¶p$vA3 r`‚+ÍV=ûÕè2ë¾XÚ±S1?y›MøÛnÃß^Cóþç9Äæ9Äæ9Æöû6;fk6!Y³ oÍ&$k6!Y³Ùïs¡í6¤i·!MÛüØìí6$k·!|ƒ¿¬×ƒd½díõ ¦×ƒ4ý>ÄöûͦÍÞïC‚~3a£±ÉØ"¬c!+ÇçÀÃá$ƒ~Á_HýâÞbt þBèüµ}gp`fèü…7èü…¢XX4t þھÆ~A­Sl$ƒ®Á_HÓïCcÉ6!°DPÁ_ÌŠ½Ç`ó±uX¿m<£Š“à$ƒ>Â_( ‰=Ç8B|dÐGÆ4‚3Cá/¼A‘à/5‚à/$ƒ>Â_D&’ [u2-ØÆ3%1ê°‰{H†ÀcØ`ï±¶ñØ4¬Ëf´aþ4ÐA¦Qè ÍŽ=Çhè#ü…dHëÐG„ f†¿:h²3•óHBðaHéLÎL4Lw¶ñH2HÖê½z£¿`ìuzn>½¼¿·Û0!y/ï6º½~ÏümÀ›}o@|sÔ±6Íj éïUv!†61ÄöE: NHº'’V‚¤=(ܤiëpx {Žý€Fõ÷˜¨ÃìSWl%-×RŠ1Ù©t,¢%›¤æÇ´Ådiä\uûOÝ㾋h¬ËFw¨Mض^¯¾'!Õ·µ»©y¹ÇT«¦=J¬ÛŽØ¾sY¢—m‡2^mQ§L´)¢æo±ÝH¡.W݃ÖäLy/Ä®êÅ8øä¶ñ¦¤Gš„û&.²"ËÑA yšŒ €å1‚h¾‚^nñnꨬAŸ"S­*¼óð è>)ÿîk]\È^¤~/¬Ûa fšGpXÀ5äZŸ ² z À„eZЈŠ$$‰¦§aµ›øºýOÀ„¶@<ÁÁÒxÇ 7Ÿ!0A”V÷5Q!ýG4§QGíȱï…Z ñÕqý$¨S½T¸,¶§Ç$†ØÞ@¸ž6zŽÀì@BÖÑñ¼‡F–xçÖ`뀶 ›„˜õ½, yn'ña ºâ›î1Ú~7}‹Œ,â°ÏHUˆ{kBà>£—Þ‘u˜‹‡L0ð@‡”ï<`,zŒD""Ï…sª»n»Ó`ªË©ÉDšŽæyÔul\+F¯§ù5É3H;ŽîV=DòRÂÙÔÞs´HÀ´¨í€ Ãݳ}G˜+¦Ý—CFB—g¾Žœùq‰IQPßGê?S_ÁŒ|¯ADk²póÜå ŽTÜ£Ù©@4‘'y«…r¾&A¤C´G´‰Ùå”D£ºèé9VAÍWCˆg‚'ÖÆ\ÐÏ´> áЇÊ@ªãUñD©:á(ÎR_Ç ™Õ©xÝð|Á2K€¿c•Y†¸$ Ï*DBé®Ïó:s6‡Jhp‡½ËÜ–Dªž˜¬=«äo5?=¹±Ð aAפ:{Ü4¶È¼DG°À>‹ˆD6„œ˜Ìö#ÂôÙxöCsjÃw‡yîR#õÝSµãf˜µÇìÊ ˜ž”‘Q{¾Þá9ž(ŸÑè瞣 ´¶ëñÌ!dœ„kG}³ï{—e ÖRYÛ&IÉŽË9 ì= Ør?)y¹Ö#(Òö½çIÑ3&bRÁ8qò袕ð¶½íz({ÑÁSwŒ&)Æ%>Ï(˜»¸Ðð¬J. zžHÄ€É=«æŒÄR»¡|ëäšqBÖÔð­CJNk(™'aDž«›¤OuŽçŸïûé—@Wwß%©îÕ*Nx¶…»)’% :¾q}!P˜OÐPcÃ3 1| ~­óÌŠHldÇO ȶ=j¼ÀmöÜ‚§cDrcß5W«ï§è.“ Î^²±nZlÐ(h8‚¢ï)“8Rš‚õðU9˜y9Û³‹žk"Õ,gW'UåéÁë¤JÇC^Ò Ú|»ÁêF×ÎðõuûzÃYŽ9<3 šß/c.Γ´ã/ iù ä=½Rd1Áñt/á4t[…pâäx¹jë `‰;i›GóyšÛˆ®<;Ž„½$¿Ïò›¤´ÀéÇv°²i2†„x@åã°Ù§o}”ŽêÔaØ£TY'9Ý-vT3å²€Ø4ƒˆ³tìb8Y±P Ùƒh¼%_¿è" +ÎS#s× ;dúbµd'%½ ¦š‘°­~Íh0aˆ±Õ ûjÆç•”$â·n!FÜ^µ'µ+ÀEv!;õY̓ÜÊn'å½jÃk§ˆe(6-)«rçÁêæK~F’]Qµ‡ìÚ+¾üÂÈ3,”#µ§Søûö„Î2—\¥QšqôTõOÁ^Ëx´4Ð 8„®^ÉH.ØeªÓ:I±Ò׃UêÔ¡»^Hkø&óÖ Å /,ù±€h%9GòïØS½²Wk-/œ‹8ö¯î%n¿²àùÞK_n®ç7ÃõýÞO[N_ÚO,‹Â¡A¸õ+‹\q$¦:²#Oobe•`&¨qbÄ9™Ýõ.½ýP 溗ñx>ßÅȤݞ×P£ÆZ.V8óC˜œÁ½ÕMŸ¬ nˆ5R18 kÍ/ÜÇ’#®EÅô¼ð- xÊpüW²‹€²h¹õ±‡'ÖÕ³4-¤ òžQåÐA²#›äV›Ú©tªaÖµ4Õ>Í­nA,œf¯ï”‚H´=^ë)Èéʼna‘˜Ö”ï&)Á&Öoù¥vˆrÖÚø-¿JÃ/̸n»ÍáJMRNkÕwéË5}Ô-'˜õÄüÎ]Ùß¼sãGœÔ×V5¯VöÕ’—º®O¼ Ûc¡Äó?^¸1 ±LK}2m?XÏé-n v «Í@íÐPÒ––>œX¨é˯Ø^D÷"pšä=ɤvBã=RÆ, {rÅ( F.‹<~ˆ¼ÅÙÑûRbÉKr-B\'ݦ íZÍsh§ÜÖTšI¦‹êø"òÞX"jàZ&âmöjm±øaMI.”¯=)Ž#ˆ‰Û¸F÷xV³uõ4bë±µ'÷kro¤£‘)&n‡(5 k‚ò˜ðw­AEž«UŒÛfbÊ'”7å`ítì#“’À#oëÅNOÜ–ò«•$·qdÙ –ÞõŠ¢º–Ü`ÂA(×ú‰9µØVÃ-Ll=`¾ž0¯Y·Éh éÊ]3IJñnµÛ!Mð80©©Ê Ü+í„Ågv‹©¢ÑT{Z9ýžXx¯1±q­ÚórŽeظ?Zha›uGÆ@’š½+˜¢~Hgm´ýê]N MÖ²?=£`úÚ›1÷ ?šÏ&³÷ʶ9¯À'5¢£ œ¡“YãA%ûrgµlÿìbbÍé­1¾;âJÔÇ<îUêåj¥ÜÎïg÷ðÈìüÅ||rº4q÷z÷³j»µûiµÝnÒi”ƒ‹åèl‘=œgóó™iËè(ëL&Ù·i‘™ÎæÏFG¦° óÍg+Gý«ñA·‹s>ßV:¿Xš¿åóÁðéèh0Ÿ^dÏOGóÏ2+ó”\‘œI¥‡w›¬„Ù ¨Qf:|4›NlôUöd<¥ƒK&³>äOO²òùì<›Ì>rx1Ÿ6y†g/žŠT÷ìQ¥¯~÷ëÞ¶îÛ¨f`/@”;?yR\ì·_tãRJÕÝñ%Ú£H>–€ ®é’ò dHæ§Žÿ(ªTÏLF—pšÌ…T3ÃèõÊé¹™øÖ€óé˃Vˆ¹Í¥+Y5 ¤$D¸‰®!ª‘¥œþsl‰NQ..žpHî[ž­K%{t§TûܺþP‡dC9wØH̬¾¶âFºb IKü#3º®âÅ6 é†POçáÂZ:A³MCaÌžæçóñÔ¶¢!”Ìf×™q8a×7QÛŒ·¤kOÇ ÉœZËâDÕ=Ùïgå½Ñ³ñpä›­€Rè¹ú!Sb·.á²r„ÈÍ*] P¹¯tN¶Ð:Yæ­Ï3`$ÙêÍVÃgsóÀYáÑð*ãC¸«ád4˜º…´À¯²UÞÊNè±é#†Š—¬º·÷è!÷©˜Ú–óñeF ˜ßìIÍãÙüÌö(Ó g]ü~¾Ìpò…#ÛüÜ„-ìÔG¡ƒéÉÅàddc³§ÓÙó)ñ %‹ÈÂä'fʯ™¿bò€J©ªƒá|4šöç0pMa~ªkÂlSúÕ`r¼œMGß½8Ò¬ÜÖ ù.FÓá ÁÔužZ”ç ƒÎÍùQ>>È·›‹ ƒ¯‚ÿzÀÒ å³eÀ^܆0ú”šUrå’,lXFŒÍQ‰…)'g+9þÕdV£L1¢|K0ªUG0Ðh9¿§”;0}˜Œ  “sô$øÊ€c,ãë…`”jH؈Rùðx<™ì ”ƒóÙrÏuâæƒ³ó¢¸©X;Aš#–aŠ»Îl@o¦±Ñð©v¸>‰'2b74ƒ‡$Ù™¥Fœ8®Ü\VûNk£®'êÖŸ@ê’“énœÞadŠHhôû•àÐ,bI•5î¡–¼p²ÊgÎAOép:³>,,"½Ç£ûf‚B 8ÊLú†L8a‘B¢_saÆ<{SäÙ‹âý¥R ª­õÑ`~¶ÀÀC;±²d—#WøžË,—8.2\İ0ôÚ“Eš)ÝUËKÓbì²ÿí`bج5„ ¢ø+hÑ:ÇR ©Ý°¢*§Qâµ»kªÏ.ÙÕŠÝ2½zD Ê14»°âXÜä"d<(Ê–2ãÙ‹oý4©V¼¤@½ÀáóSÃõ¬/S±t,+›%âðé7HWŽ@=qzÌS5ãÙ‰#GÑÂ{—$Z9ÙìšÍdʇÖ(ñ7ìZÝH,õI<¼ÔmÖH‘~× º)$Zd5æ·fqäšíŠ©ˆCk:”ULÁÖhÕî–Á©Šg£ ¹]Iе AÊæ¨ñ°§_¿Ò¯¿Ó¯¿Æ×¢v$d£`ˆ?œ>uÅÐh—A8ðeˆ¥f`EPD_gæ7u8ûapЫ¡‘~ˇG‹evy®{Èó⎸”EÜŽ[j&tí¶JNŸ †Ûåd4=Yž& ÿ¤ÁHè¡[´a™*ˆ@y©á| áRâè2Äàe„ä˘dî=@‡µ‚y±DÀb@¹k›Šó-èØiaÚȦܛ@}+´WA¦Ãá°3wp¸•âÖé0°§&Wcʼn ³H.6гnjºr°œUٔ˓iý,³ØQWkÝ I sªƒÑÄ©jÊ©Üu4Èà U8²‡ôO–UsM˸9É,›ÊA•êeŠÊXÙfÿƒ¿%‹,v´Bò÷³9Ž Â W4N OX¥oœÞE{‰ÄGž]ȵþd½„â© DJWšœU`d0ƒñÂI¦­pB·GäÂK˜hñØ1ÂÂÑhËmÛ†Ø4:9¦ÅðâÀeî‡fØÑ©‘5Ì‚V´­0K­(‹›IPÆ1œ UGFس5 üñ¹‘ï•0.¶:*ÐrÇyhCôÖ¬tÜOìu ™û#‘’UëÓZ†få-'*J•Û,>“l¹*-,ÎËË®`!Y*0XÁ®ª9­/Éó¢€µzP½"y¼x’ë©¡^òT'æfÕ^šä¯Bᕪ#Å4 ÇéÈéoQ# Œ$/–¸ ½:Ṉ̃Iä©=Ú¢p©%©bð«+%s«ü¨%øt„b{õ–jÎÒzl¨E–€Ê–-â{ ¶j”V¿E3ž¶l%ÞR±u#kwÒÈp´Ú¢s]ô-Gð Û$¡$³)^.”D6RËK¶VÑ[ãç¼MY¡¤üxm¤–‹Y´|‘³_8›qKä**ñ•x„-KïÕ„ vWq@û3ƒe]›6R„Š¿X˜… ;Ìâ…PÌŠõ<åC?ejÙ”‰~ŶšˆqýÄ’ë1¡ækÊã»^¶È‚¤€öî²ø"mæÙ‘Pa>Ö7ºI7kÔz½SÕ§“”Zr÷ψxÍVE¿’€»ËVÖ Þgv;™ÞlžtÌ fÍDr°™i¦ŒÚf0²®fe»ñß˰ûg¾ø¤mˆ·5È`ÙøZPÓMJ/U+Éòå<BžsYÀ„¼–(A5¢  ì×–v:Tèðe7Ù¬\Õ\O×¼»¡æÖúš›Éškªæ<]ssCÍ»ëkn$knl(´¹¾Ðz²Ð¦ê’_8¡? =òtÖUJÈIÌ„nVÂMY¼cCú aà”XÕìdI¦”£K¸\'ÁÇO&#R×ýàŽj)S†`ÕS>ìU²Ç²öü^E¯r¸¡u²ZÕ­±• 8KM +)*ȵ>ê=¶œn6½©8÷% …6‡$ÆùDÉ({?âíÑV-F[uk´Uïm?TU·FÚ”‹TϘ>ÜÐI륩D¤ATÆñ+´5©õûcÒÂ=öªJm®tU:Àõ”<”HxŃ‘Fî±&:Ò§‡ìHJ2£i|”I 霉>|TMì¡m8ƒ”<ëÄ–cëu¡‡î Š0Ò‰µ¡ •©ÚŠ_‰M®hM…ÚTpúÛr·ÖqZ¨œ¦ÓÑ„5›þä¦ë¢à > A{%­ƒ“ÏEuöaÔWÅQ¿+Žúu2Š[ÈÊ2cA.Þl1Ù`–X’B=àÔ&;3Z5Y=Ì£ †'üÙ\O™ÀºEÔ1É|&£¶ósj¨Ú¤FS™Mî\åöº¶ˆ"))·§:wÒ*ÊÓÙôÍgΦøJÅþ½ŠŠ¬œÄ:eÂ6¥u¸°HCt‰ñ‚€ÌÎBÕO¸çµÖÃà H$âZé”M7UšÂEm[4¶°µ}í-P‘mêÙºQBt”òáò윘†ý* ‰4׌uÌÆT ŽqÓí©ƒ÷í£JGâŽú‰Qä”Äþ²Øk GÔÜrsm+•ˆzl†ê¦íá«cB^Eƶžœv a[nƒÍ‘» ¾iô¿ŽòÓJC¡î[v«NܱnìVJ?ýj©²¥øE µ”`Š˜0‘Êï[7¦v Œû×.Ûäfä{Zµýô+·…„äZÿçMNÕmÉé­,m„ýsÇGñÿÕÃÏ"’Ô|>Ý\«TÓçï­Óuì;}ú><ôîKøí`¾ ÷KO䊿l]+Yq“¬Nñ\;ƒ*œ«ýíßÞŒâÞpv1]’o¦Z6>?C¹ÄyÂÈV¦Lö½eåyÜÐÙýÀZsåš8ørô¬–ð`‚«jSÌüþþb4£ |r¸M¾›q ëÔÀÑ:ÝóaßXײ³£‹¡‰dMKt_ K)@‚vöØ‚jìáØ{q$÷y«+v@Ð÷_þëÿúÄí®ô äІ… l*tyä“'í^d(f"wŠߟ#„ŸØ BàÁ#¼óG/•šÍNsÂpíi­WÙÓT—äÔ´‹)hñVÊyYÊw +JÂþÊ‚Ìýb$tŒÖ—hOÙxí*á$Q.?“žU‘4éyWÛy«(ôT‘Î*ŠU&ÏZ£‘ÕÍ =’bËa«Ð„£¢É¦pG&á¸+bÿŠýF¹²>Ý\اXZ5£Êi`­Ô™(y~,𜸩æ7(b¤=éáäqøä7dè„… d«ÇtÌåYBª³¦Ö'3Ø‹Ã@2˜UØzB×Ú¼ïɈë·ñù£=sŠ‚§öäÖ†¬óJzÓãÓ²šZÇI;ulI‚ïØ‰«Pl—»Ã°¶îÐ-’y™ÑŸ NìIæ,qHŸä&Wn$^,N»Â8Ӟΰô­Tþ8íð@Yã=´¸Q.Šää+ !Ý瓨Ï'´ORñ](žÀ}mOsˆ‡ K@qä§^ QŠg›'Œ©Äò¯ ^ÎÎ4é+‡ _|R¡d›ÌۗƦà-Ǻts $åVgØÉŽ·z$ŸA`(lfݰIåúÀàh6œŒÏe¦Ò”`ÊgD.2ÓÄDRò;V°µl3pßGda ±yg¤„Ëw{Rø¥Ïr6¸ü6/®ÄÙË8âW#„ÔZ‘zÝH~‹=Ó„£á, g«bª%pZÈ!Œ£Ó“òˆî3˜*VžKαe«OƒV˵¾‰Å‚kr8¿øÕØÚKùbÚö«ñÄÈå™ ·§KlrûÍex¨#ÑžiE"«õžÉЖ0+ ÅfʼnJ¢JâJEe›ÚÂÆ# S2“i‚à#Ö¸¶‘{Q#÷ôéY›L@'Wõ-ü¢z—/ý‰Ö»FsœúvÈiˆ_(·[ÁþIÔ­'ž­ßFÊ·js×é ro7`2±fM¬Z ]­ASâ:½{³µ€éF€ézÀÈí!éÙ4Ó^NK~k‡÷:7r ”+®ÂŽ;›œAè©6×Lhkò<'"1UÀ-µÐÖ¤Õñ"šÖnË«ÏG3LLz›ô}Äô¿g¦o$orîÃûlºµÔZ\ß»Y-|;ó’#ŽSï3íB fŸJ Vþ$’Æ©'ô`a¨½eÛÏÞÂG)s`»FâÖ²Tž<«öÍjEÊ0Ði‚¸h_2c»§£Éd!U/"¹Jqr)Î#©ˆ`à5bXž N7…É\™6ï7¢K¦JóSëÅÜvüæ×êˆAR&gc²!´:̘#mëãWhX‚>*Éã:«gœYƒ¥8M2èË&ìï.B†Ë É Ô™X™%ïr¦|HU²9,o(´âtË2”棓 ½\º '3¸ÌƒêLûâÓm*Øéo=V¤· }‚°‡8|òÂ2Y#÷Àf–óæ¸éÀkpÞUu‰˜åw^¬c~«‚ˆa©0àg:ÀȺޔ‚¬è É0nqIì29Ç}&µ°‡9¾ šSÎàˆ¹3ãÇ¢|›nQX£”æ:}‹ÂªÕ 0Ó† äS ñ—Âs+e2„VŒ4c‹Š=9–ÇÇqzSâI˜¾§·ÍuÇ(†ÏÆ"¦ibfGÛ6Eûá›[´îÅÂM4ÔãÜ'úÁ}sç1Öz»ÝäÛv)í ¯(цT×·]ÝRps˺[[ .mÙòÂå¯(p"—æ;…w³[±Ó¶+”ÊNétGzLÚ[FûÁùá7Â¥|"£ÐÑ®Å$´rÎ|OpX«Ë× ±lU¹ZiŸÕú{h–Þ£1.:vïBgûÀagÓ£d:T=êÔÿ³£Q*u …]6Ðco6›¡Ü£h{9vè-M„{ð§?_ØI;O]™§ž (±„:Q*X•^ß.GÝíkz;¤(Øþ$LT­`dž06B5iÂËúúÁ{%Ãü†©pŒæÏo®£Ð!_8b%™W!G¾p^ÄQœW( ž“¢Áƒ¼ƒ¤eÇ)PNž<œ Ïeè¯=lýØ9t²¶– ‚…³*O†¾H†>M„þ ýw¸jÙÑ…ÛQpQ¶K¹?7;ŒM3Á+N”v"Ï¥èZÔ(¹¸} z…Þ^8Šö¢Ëû—K°},鞉úòþ"Ú˜12̨Z˜\bŒU Ê#ún³b}¸MèǺ2Õ¹â8 ¢&Ú÷„oGùÌÔnAþ*ëmÆ€C`ëá€]úÒH¼Š™90{ȤNþÇó>Ž›üÚbàÀvŒÃ®%ŠQˆN0¸<`aÁè"ëYÞðaçæj¬Ba‚VMÚ‡±ùýĵ"XŠcÂg9áÊ“Ûyy’݆ oª˜¿Æ+µsád•’æþ&K¾tÃÆT1¬Á×d‚2}ù›ùÑhN{ùÆÜcÑÊ’”+Ô%d­È”ߦF”vYGGšË±{ErJÌ’•õux6>B¤ò LŒ8Ü™êEµ€YDGé^ÔaAY A¡ù­²Ÿ^—¶É„ãù±dâÕlÝ«0ç WßG±ƒà… ·ÿªÒÉm ¨­zë<Ë‹‚Ê~Â7"™?»ŽKÓˆPó'uÅ Â4¹UVy´Jûí?Ôçïü!:¥8ÝRËïÜX¥{ Vwê†61ôv;£Lƒ`%kÒ¾¸AÚ³¤Fi¤“âƒtЇ¤„ }\QBÐ'R6üêl¤²,Sœºô ÷ Bw¦ß¸ÓÁ„ì­¶ÙÏz^„ý gÜïX¯ãX’Àt·\n:×lš]«¤&óò×Èg'5`UL–+÷ÊnŒ õÑø$ÉjJ\\¹W½2*œù°W‰“T®l:—¤mynN»EŠq‘´AOÝÌÅ ™-W’²ªë½Õ½àJ}|,¤ ®@ܦ`Æ÷ ûS(”eqaMÌÅ⤲GnšKkÉ—’8& ÆN4CÄŽÊ“ÓTª?õPé~Î ;FÚg¿ ÎBZ]U‘J.+ôý\èÑY:tVS7ó´B‡ÈÊlç'5qÉKåp‚:BÞÊ0ž.FÁ„¹DÎéhR±?ä»wÂ\Pc ¡È²¨Ñ&ý¯=»Õý?黂sVW]¥/ÅñªT‰Mê%Š®7 óÍõY=mÊV|OØøL™ÈpYu¹Nˆ®¹÷ÑÔT_׿æ†þ f$Í‹Ú\ÊWñÍ;®á",W·ê¨Ku$H£Õ1`5*§£à~#éË ‰;yU±Ëmu»SAVÅ'ªKt d³“Ë«Ûßb™º…R±ºäíáþJ¤¢;®ÖqÔE¾Ðµ¼AeJŸä¾‹ÙŇ¯·8{ýnNøæÝâ,ïV§DßÊŒCÈb0!PÜ¥%D´µYl°¿‹‚Ï—«¢cŒÌPþáÒÏ]éç2¯Ñ´«{Á_ÆØ´þ¦?b‚ìGSC¥@ñËZ¬Ùµ¤B›Üíßá e‡’öx áƒ4À] ²X´;^GÔ P£;?l¤¸€]Xœ|5˜[ÿ¾ú &H_n®£¤Ž“ žãÓdVMçç#d"ÿÃh>7\·lÿ9‡e{Ìʰ—#Ó"Ø3d©z±ŒÝqLãÛ9Dãý.Ž% 4ÂÈØ,ß#"3Äál:€ƒkÎÎûCÛ[N0€™¹øî+€ýgÜ~›·¯p[Ž"lâœì8`Ù+òH³æ¤[ÏÿØ0Å5@1Ü•½Ô¾å]Uœ½š:5Ð}Ð\<¾½Õ^‹-Ò,L’r¢ÊŒ^XÄ~µõÐ"¹Œ×ÂÑ~'š°©0˜mwÆG7vQ%×ú rÃ6â](#Ô/–þ˜ß±œÅÙzEv±'C<ÔO–”âF³"TySÏæ¦ÃzæNM1áú5Ctð- —n!‘¼[äá¼³½¡+FÄòäUà=ï¦ü²”)Ò­íx…ôŽº&×]ï¨ ±š{gøáÛ»¨ H}ßåSæ@[jà°¬bÓÞyÖú¶¯iþ§Eí×NS޹Èé V _%/tnÀÕâ4å x“opºàØ6Ð;.±k3épÖY?­ñÖþ¯\µíÁeóÀ^%¿ŠÛYIRHx%“£v%zòõc!¡úÀ™aËñwÃá'ÕEê°”E ™½×p¥zE]¶‘v}ç«çØ ÁÂÚü:©TÙ$§¶Ê™ks§A6ÖÞ~À.ÆY»’EaÅß[Ù&ÝUF¢°¸ÅTŸL[G> ÌÝ^Ô×p¦~(QÏC‚Öø6¼¥Žˆä­uu:E©rqå:(ô„æ Å1•²†¸“ýåí^eÏe™-YÅu]þöåKc1yøV©ËÝÒ[??Á“Oú0­ýÉÕŸñ§l¢ãÑ@g…9™O‘’éœ :ûªOÞa˜¨kåï•Fíp(Ú.®àõ”@cä|¥ÑIÜ6¡}b,n¦²ö ~¯ÚïÂØƒkQaI'ÉÓI*ë’hü¦_UØuSV°þtL›ìVry³’ æÃL—ŠGÔý•ʦñj¥¬ÿƒE²H´ÒZU¬}ŠkéXp6>èœÉCβ³šM–Ì÷E0Ÿ`·™Üy[V‘ù‹ýë‡ò,;fxseóˆLÉð€;ÕçÖÜÁ¸÷Z‘ÑòkR¸á™Vžn…_8«JmèeG—ãe¼œt¾‡p%K™ÙÜ]ég|VŽ3Ù­2«¹aV€ó¨´çH9nøí]×°þ7Ük}"pj·®t ê6=–âÓ ‡àpm´Xˆ”5]r.KNÌ8, YËò¸LƉ,Þg²Ý6È–k}Ÿ/e•MÐ̲ G¯ÆÏÈÛÒ¯¥sá¶Àm8¡Lí'ÑZ?ØI² Òû“ñU_jÄF?Á.R©•¸-6Üô)˜Ð=ˆIä×DZQþšuUâÖһŮÆýÎRQÜW†®ŠâzÙn'äm/’ï†;”k;¹¡õ5}l­éc{M«•5¬V·ëe• „¨·I’ú3ûvÓÕ:Ë)¦ÚÀ<Á)×pº³k¢w ïÔFëB_ˆYVŒ.qŠáQ Cs±qzѺ°º—ýò'÷CD ?Á£@@˶0Ç¥ZÜ ˆúá‘Æ„@ZÝâ$_É^¤“ô0I#‘Ä;D'6)`ÖSÀlüÄÀllfs30w7³õVÀ‡Ÿ´¢Ù‘Mq͘¨Ù¥µ˜}©„ÄD%rU rÑtK)jS$´NKX¥ªÃY“[0V‹š¸]÷7Sƒ¸–½ÀÌ0¶ërPJÙh•<îSk!ÒE}>mt˼SR® ;Ê:JæjhçRa‡®TD-í*ß÷³Pª ªY9ÂkÁ—÷“ó`Š“û«6â _fø*áw…~—Îðë ¿3uš],ÃI÷jõÔ”¼NQ0“²PÁ‰¡©¥s\‹MWœ6Äõªe©«¿¤eÜ!à0·+!fk¯);ÛyZ´lcWŸ­odR»y!™Aqyù[•—ù1]¿MÑë¬óâ*w]ÅZX5ßam Hþ‰å3/Î t±+Z’iÓ“‰¬déîA“/GVªIÍ"ïT›¥ãÃéÐB«Ô'øæ‹·.P1nzÀÊâ…H@‘³óåø Ž°.¥†™OK§{Ͱôw:ÞÚÏíçà+& W¼IáH°k«3ݺR§‚QÉKet™$?­X}6$–k}ÇÓ€£ñ9HézH>;¨ÊUÑîˆM w˜ßsáwÒû¡êlx%+;ÅGØN³ŸÀÞÈ7€SB¡hli&m¨‘¥ ªÊNÇKTM¿Å„íTMVÍäðGÈùÔ wÒ«DürÒ©Ûé>µaà»dÍ@Z3ˆ<ëB’ÛñD[;®Ä;)„±úÓÙ¥”,Tq¥Žcì˜̘»R`­Fw¸xáƒO[ŽpI·áÙ¢<…ï5ƒ]dñƒÝg VcRQ]>¼ìöl¡ññʰ% ö”ãÅv9âÝ^•mv Óç†É;¡–ßi×Ey¡.y7Œ[ÚdÿÄýá[þ“m¬Õ=)»Q¿T`ÆZl4ê6ˆNŸ~-óXŸÞ¨$¶wþÄA9Çi¼SE]£Øò¬œøTçü39Äþ‹¦^ClÇyÏ¢b7λ™ "Ô™.¹ú­Øs¸¨Ã€ »4•7½ƒk;¿§›­æ«5íÄŠÄ}ĸñT¶;OÏ.³`y´)yYÌ„)ÉŽÈB¼ÛŽÍ 'LwÈá´¸ '•ÊùE‡:R7r´ÃFS\”ý6d!y;†e®É î*Td°o¨.Y¹ ùè¢:G²îtÝ,’ñFâUÜCaZ &H®nHµð.–ðPµmX“°.¯Âv'fÈ”Ït‘•qÓ9>=‡Ûž2oÓ®‡Õ8¨¦‚®Ð Q=¸ÍÁðþ…?/B½ÂG€¯Uýšhž)}8°[}"Î{/tГ‹c ½äž,Ç'è¨ÇùÒ4™Ï^<Õ•Ì—c3Ý«°ïî[i·0] )rD¢á Ü’È08ip-– F+ä(¢d89ex4¾Md¸Åí¯FpíUüwFŠ>B‰ên|;{¶õ ™º?žŒ‚dÝ‹ããѼš ­%Có Bü4܉ySšŽ·†~ª‰ö4ø—ãÅR:Å´\°<7Åé«Èb¶ .@ºZA‹œ//¾¦L Ýû;“\"3žÝ=Ù›.Þ–™¼åO9²rÍ #lcW‡³ã«¸µÇf«;¿•ÙJ°)å&çØ0eìMÒ©óú‰L¥Àÿ²»yL<ót>–Î}½òc–GÙ63´4G ,6 ¬ê ¦wÊnŠU–F-¿pרGT«wQóÖ…@1oUˆôaê$h=Y àW²ðæ&†IœOe¬ ÷ÿRæ­ê¬N˜Ykrg@ ò=Q¯ÎžËí aè\‰;ì-—e etÀÂAdH¾j+ù"¬°>µcÙUëܶ ¾bÍÚì(7€ü7:ÂùX?”ëe ‘ˆ%¡š¸i ‡WœF¸èuL% ¼ô’¨@+ #b»‘IrECêú*&«Ò™@‘ˆÌ¾ÌÚÅöT€ô·n™TÝYT±€J.W…óá—=Ÿ©Éb‹{íiÄ=Á­ý%Ç„”$……G¶R§¿b¡Xœ¾t>à2á©yü•#®˜ DP£•ý¸VÑQQ+º²Z°{÷“… &K”.¡0áU’–à¡Ê7½8C!‘!…î¶3t@ T°cïø¤Êå•»˜o›vL£®˜bõÆS"ìL.üœ¸®ÉŠ· ̬ë€bgSiÓ*r]*Èç:à–™þ±Inç$qÖBÎÍRc¦HÏQ„cñÌì ž†ô ao«JT…s¢v ïOOŽœ®ê/¾’ N‚"âùêz´T†ÂYa8:—ãŠÉœOµ²!ÚW9`¡¾0 ç¿WÈ¿ÐVZT‹Êõ°J1éÞÞ‚U?Ù¥¢e&PÙ®¸FÙŠvC6,^K2ïhA;_Tár=¯"H[`ý.MíM§2–Ô* u"(¸ÕYÏÝVÂ~²øjR"L%!8¬r¬­Á^ºÉ—¡B2ŽÕ¾!PŸ–¨ùét6|:»Ø¦ny1ê–¥ÎÏ'/\ÑõuÝ’«gîò]£ cÏ t'+Jp®|cž&O ¡“® ›Ce°K Ù$ˆôî|ˆãIïº+¯,•º1%_°M%×ú¨›6s“2w&^·†;Ø¢­õ°­õâ¶Z—úA{u›Kžæ×4Õò ߨ’j¯A¿å 0±›6cƒá¦Á!¤Ñv[Í"4ç@º|ëÙ8CDV„Ó*&ÑÕ”‚z-î¹rW*†úÈР|™ðÉ’º /ÞNG³íëd—«Òf ÞÉ+TÀ%49… s7o›5èÇ…'ªpP¤Ö¾À[·ûŽš­P›l·"1KÅUÔÝQӣ棇Ú6B•Õ×ðÑRȳýq@OP™ %ŽÕñuš Ï÷iëÛQB6µ ôîàÑ •=øÅ]»eû2á!Ë–«L¯@ˆV…~^«ÈÅ·oµuy‡¿iï›ÀTèöÉðì2•=8ž¤ÆŠÓº›ÚírU Úî)—@.îjRq'ý)ì­¼$ä“«KŽÔ€I¨{¡$doÛá÷]KQõ[$inuµRioš@²Y[2¸¾;&ÞÃ96Ö|]Iµ›Tç„,0¶ƒ°åD¢.n­+Õ«ÁYÛ¿‚–¹Fª!u ^ªu ©ZÛ8ݲ"9EkRqËM÷€jI”|Áe @Sê8–‚Ñ  ÖúÅJ8.CÂ:º„9$‹µ3®“Àâ µ0iø[ŽJR bžÚcT¡Ààç´¤ÔàåœÈK•}5ôb¡_u ¿w? ÔP”ðÁ‚b$Vü²¨Ðí%¢V±Dl(—J$¢ÛMrSóúÁééû‡_ž÷éÞ“Ör de«¤í™xÿðq`ÏT ÒáͬöÎ-iaDr¦mú™©.jÃw ²5mЖWoݲ ³B·¶jR6P’iDÍ~ÏMÆ.°L“¦Wr%&û…m§£5Þ·áÕ¼@Ÿøýé¶Ö>Îj‡-î”B[w1©¼C9Uq‚P­"Óy?Bk°b¥!ïÆybx,šÀ±ÀñÐÇ8š¥h­.úþW[ƒÈ-›ƒØnq}9>]°¸såô¶m‰Þ‚/6ä¸ðQa,.¶¶ “$[\(*eß–úèôn@4³±õâ¡m>ÕrϦouÒXT§L;4  §LEßzL$¬Ö “ v±hR´ì"a8OìUDè(ø*‘0è©‘ÎBµ‡4^Õ-$^’©ªe ¹´]®~„õ«¨1È^R¶¾B±²¢í´c°©õ%ÍGƒ£ÓÑ%ßgøa ˆ¬ÉgJÉ¢Ù@ca{…õîš^­i¸_³´qï“ûF¾žš5÷h0!‡‘Ôºrç ÷ða«Aû›¦¨åhnÄÞw*Ä5ËZK„šfP¨os  r>S…¶ióÕ±ZƒË¾úÐYñ¹”§BQ§¤5œâ•ã-ƪ?|SÌvú0!a%FEÒ6ºpJ°ßíù:⎇ðy‘Ï2»â-éœÈÃÉäÂÀ~` 3ì±ÁE>ùä»ñrbRß³É2‘,»÷íýì·¤kj=¨d}˜M}“ÙÉ}ÈIqŸù²zàw2H„"óòn¹Ún×ïQÕFÏÎ_Ì™™¸{½ûYµÝÚýÔ$ha³«m^dÍ œŸÏ@ y”uL¥ßB¦Efú6š?ÝwG2øØŒ5è—ggÂó)A÷ŸÁìP­Öè ß1öñGvÂ,~n—+åÃÑL¿[™nÙ¦÷óc;]¹÷Eø%Sü%ù1J3› Ø`·|x4ëC~óqÉcCN®¡fÐÏæà…•‚.÷ðt0OF¼˜=%#–g™<ˆY¦{ÿ–8Ûûü»W²òޏ™gfžœù† ßÍ36DòƒÎ¹„lòá–þSWååuFãåÃÅéøx 7²U\šÁ¥o¶?-b:-‡"|2²wÑÚÖØ‹\Iè×gËË daVeÍW©¹âN_œŸŽ¦Ù½OïsÈñlº´×zVdHg1ù³#¶7Â@¹ÖW ô  ûvf5êýhèÜÅ,¢yäŽd܃‹ò}m©jº*›‚ÁÇU¸–‚¦†žÂ2à’uôuA”ÑçtW­ ;Ÿ.ç"x.ÌjâL”ß±U[ƒO5Ùxˆ8¶çPåPüîR‘ï~T¯½o-µèaÔy˜Ûó…ç–˘“cqØÅ@äX޲.e…u¦Ù±f°XPu,t‹D‹¨i¶Ðu,‚:ÎÁTP‚ÔðÒjC…œ‡t}|¦ª8> ^õûB§^±Aê±z›ÌžÙÅÓÀéX¿ƒSc¤á||.Èóô™âæí…|{þD¾ UJ9쟌—0TU&,lŸ ›h‚žŽ^„Ü]k>L²(ª}~do• ŸX!)®èyÿCDrCÓk¿¤5¼Í{Öï¬ °r:›à; VÄé' ?¦Ÿ+¢›Žžƒl'ë¡ îŲ·Q_t0xèíÏæÏ L>†m˜Çƒ3—›R£‹F<ÊZt’5Ì“>Ê*ža!M”ÖHî`çáÀ*ÚÏlQ×,¢â# Pð,1ù{µÂ%œvÍR'[Q=<*mN‘KGf«â䈙µ º¡¥t@FêmbùXíºÓ´äÔËùŽN×Zàa*½ ?$A€Šý·ZÅà~ªÌ_E…Y·ºŒJÂäf÷Qeñ…T EÞô·×Ù¼¡2ítñüGßjäÏíº7÷›¸Ñiœ=…{{–űé[†<^O<Щ/Èüç*†‡¡Ÿ¹ÖT¤½€„ìÑ¡š,’%«t„PQÝÖ0KÁðh˜ÁýÌþ‹†¶TqÁzÜß¾²ó vÁyžò Ö°bú*³¯â<Ȇè±(Êui´DŽ;À1kWhX1ëe¨†Ì¯ S%i«gЃž‰än˜¬¡Tœ% ù­Í¦ yÁ…A$rýΦS¹gu7ó¸Ô_Úx•úŒS‹¹½!L|Çϓ;yßÏoÜ}“ãv0o“!‚ƒ£Óò‚ÄPÇÑ`!Ïàjÿدø*b)j­³ÄÓ:}1†]ñÐèg°öä¸ÿ â†1ô¿rQgc³ ŸŒÏÆ¢Ðç*£eÈb»ý[ž¹§hË<šÉE'û•êÞ)æ×2qÌ×$GÐŽ†ï:ïjT• µ­ð>'ÃðYcÉ}Ú7ãéÐ_~uå\8…0ý5æ8òkzÍj¦ØÒ¯}Hÿfm§­Î3Ú²5Ýᛘå“©6#›“Rª»NçÇáìVÜóþ†žG؃,{p;(,Þ ‹í °Ø  °ˆ¡pàc»ÛBûßϤà.!sðàr°=Tº ò$†J×ÇþMšKü å&ÏiÓцûÁ|»´sú)/úzû}ÆxY†…ròÿX˜\\ ¯rüÍ…Ì‚—ÑÖm‚aþÍotjPâÔ‰ú=Êtõ{N@•gè cvåGÃÙÓñͪ´lw¹sç)Ä&²'ýhÔ8å¦PÜד5hó±uÕÐ:,ÝкW a6O­#Õ]ßs¬ï¬Ä½RâŸÀà¬‡Ü©à•°¹ª¡^*qIÎ焸„œ˜¢++®¼ÔNœ+aÝI\².ŒÿÄšÑg\„9OŸ €Äƒd?R:¹ÖWy,mÇ£ÁÉ !è"èBÓ ]¤AºØR*m P®vœ œK%ŠR-"Ø…I~ Ó€é›@jÚï‚|¡´;[l—ï„yéIXÑíHûäX¹ý¼Hù-È÷ §°·¥Ø“ER…Ò$¶&w ‡+tÎ$ÿ°è× ¶;cyÃÅfÀ}ôôý€ ó¹süd&i̲§î —ŸŒ½Ô–8Ô),ê×AQ˜u…- Xcƒó¼ì<\¸£Ïxüòûƒ†) ÷vœs ü>ª¿ô.zRDæ-üýr"tÐì^­¬ßC{B·‡Â…&E⸠<°øœåŒ¤¢êÙL¼•}ZS˜E7£ð@_ÉZ#Þ…àaŠŠ%I ãÎðú>$ŸÅ¿Vò¹+yÌP܆€>þrY0y¥ññÇQx»QX0ÇùçN«r­ÿÍ‹$'‹C¡–-HM¢>AŸ£Ogå~´A/ò˜:„ ýPé×R¡, YW~WJÇ•ôã'*«Í/hš2Ÿ¾¯î>}¿Ý$»ÛIèzÓ©5÷p‡¼³Œb5!ÚP¯Ø§×jD•SÜï Ž‰/³¨d¦L;Š UV¦ï꼬0iöJboâ®Òž,óÖç~¯›íW!.Ô¶œŸŽ¸E¤ˆ•µ ¬µ¶Mö`’íÙ-8#v>å­‡Exd‚ï;AvJÎÏ“á% ³J›a.o_O¥T£ìÎé{a!h‰O¤³WS8$œºÂÃØ{.«’…ÍÔñeýï½ÖX…C¢x5•Åðbé“€Naä]!ÊÑPß$A¡Ü0qÕ{3DJ¢;¼Bh6NÃÉh0§+§©iÂöJÂ'3l}Ü5®ªE]Q§?Ô(¸‹NªÂU7åégûXÞšõJæ(œó·UP¦ô}?"UÅ•á I#@^àᾩ󸅘‘g56в •F)¾4PW|ú*#>C'…?É‹Å8•›ÏAÐÀ­±£l9Ë@ÖñÊU=å’„ÔŽôîºS–k¶ -^ AûJ̉QR–<*PÛÏ $Ž!')Øž¡q=ÙŽ†‹iW€d{’ Ó%›’|ÝL|ž¼µÁ‰)ؽÅâo`‚h¤ç1K Ó¬üµl³òYEdå~V~’aÕ8µ’6êÌ ÖX.˜å°ÝÛ+–¿›geÀž7¹*wŸ€iúÞ£OŒ”U³Ë]—ê,[5uÈ0ƒP™í4[Õe¼ŠìË'|Ú‚ÖÏ»þtŠSµIi²¢rï8›dÏâ ø¾žšlØþôȆ| g‚Y8RÖäNˆWÕqüw—!lè‰Pi{˾á3Mè Ú9JIÙ†ènå¤aOr^Ä*Iæ22?$ùüå*…e…>5Ú$hSæ#<W"‰ÏÿwýKC™Ž†+ºd=ñöŸL Á“Ñr9Vy¿>çME—ãðëÙô¬C ßQ”¡Á6¨¾sBhF‚Ø.Ý’„W_«{À7ÝÏM×X/¥!buâWŽß‹ #e\ò¡ü? ‹º¡Y%ù£Èæ•Xº <±žpЛ2xB`šLæ7«q5˜N¥Vø°–H(Ìt³éä¢9Æ÷0¯\ë'›õý^A¿l9›ï~-rîax©‘­§äØ£zÇ•ìfϾ¡“Ÿ‹Ð½G5éÞ£’—kÍr;ßäÞ£ùÞÝ{ÜðXp»ñV§‚ÿgEí­ÞŽÎ½y/9 øÙáÑ9Û¿/ß~JW¿•ñ‘”SþfŽÜyRô¾Q£Ü$÷ˆ›Õ(Ý€zûmÏVÂe`,T‚3®FÚ#² ®»»òöÌv†R¡K•ÅjÄžøUæíÊ–f®»²\Ù _Xî»TÇ‹KÂN—15y¾ÏЬ÷ißs$öZm(4tAîç­JèÛê§«¥ßr‰Sï‡_‹¤—ãe‘#­^Jáµ<?ÓÅ#é?©|x1\ê€ÉäE¤˜êWyï(ÆÜ˹ŒXÌÈËõ¼Ô­þòA>›Ì=p^ð2„Ã#u±˜”Cµk3pn«])“YÈxIh¢Õe%HÀ—zñXHY`Øá€´°rÎF3þøâË ü ¢ËVjr׫ÛÁ‘£- ¾¤.a?êUÜÕŽâš¿§Ý­{MÛטÎúB|Vî–)âÞ´+³@gºªBáh:haÙÊ—qãÊlØìâ~ð_ˇÇÓÌÈï†ÂÄ}Œ¡W3Cpnølὡ¾P#Ùžbãâ‚{1ÊÓÅ9³S¢9& É[ÄýáÈ]ù¿g[¦¢C4ðu J—Êù)ƒ{RÌZÇÒ)¥4=çý“Rnl´ÙÙv^[<­Øm–]‰n{l„çàg1¦î²ØZBì0¹!ïO«aé%KÀAÊ«ÐÉ#—T¹N]Œ‰½ g {øÏ§¦_~Av2õ±ÙS Ç7Žs Ó½Cä·ÁœOÈØdÞ2©ã˜K9nsÌDs¬8•ã$ÇG4—× IÄ´xÄøÃË|lË r· Š‘‹7xðAp gèrÖØd˜™^ºx/Àf›uŠc¨‹Æ©mw×U]IT+ÔAx­›“YœA"¹Ò$6%ÿˆÇ­ñØÆ2P·‘Vy/wZ›˜‘l¿üþï]âyñ\BOn,ÿ×[ãºZK"[nÈ'Û“µC\‡Yîá?¦1^dñÎóèbÓ<úˆçÑÅvóè¢h]Ì£r­O©¶ŸS©9u‘šS7šSo7§.sê"1§.â9u±íø\¬Ÿ Ÿ‹ôø\ˆñ¹¸ëñ¹x_ãsÌ©ÂIj0ªèw<£þ‹7ÇbµR8¥nÀì®b³‹ÅãØZ<£þ×·Àu¾~FÝ€p&Âøïå7šS“^•>¹U`ÿ:C,k¥ yÊPºNá-bœrÍïÐÄM(ŽÒÚ6tg( ‹ÝzU„rão­¥ îÒp`ÊX˜™ïbaƧPʇ­*œÇ8u³Wµb~œ6O]§|²ÔDá´{BUbgîÑÒ6„²J•ŸÛbÇÍ0·õ 0íK‰n­ E‡l¬ÿÔÎÕb\ŒSjSmʪÂnýãÆœ¡?íÈm†Ðþþª]d–ñô™!²£Áp8b×Q‰ejΈüü8RjG{ït£AèĈÐ{Ù}¶ˆ#ùõ@ÙðÙ”7ì Ó¤ŽeVƒûÂËÓ±Ýp“ZS‹U.då;lì`³e(8œ&¯•VÖÅ˼¥óÞRù4º'¢ü<¼¢,|Y+ß<®úÀ×u T‰Y^Óê¸òb2ŽÌ:Áoá•0¨ &´¨:£€ß[—¶¾[4XO¿Ÿ/³cCØsqËe÷½Pî&ÜíÎ@[øØ9-ëÜHA×[×ÜÂOgÙù¥Q/J çÿÒ½OŽz§ƒ9ó0ì⎒5çÉSŽxŒc]10àïvbacAWŒ•F;•Î^Bò£Jæ“ØBz¢½¢òå$û1CòÀµõnJ·‹\ž˜Hœ(‹’¼0ÅgDq‰Ø‹¥¡Ñá¹gÕî2KkˆçtÒ‘tñ„p(ÜÀÎü®‹Ø „r…ÉéšÛh¶oúåÄù6ƒ_èWߦŒU¯hcA€s´ ᑆ.Ù‚j“¤ÜF^Ô‡V½.‹J¦/„Ï#û~"ß'ú]ºú°vºü`Æá}å%±LOÎ(ÈNAØ =çÒpÅiÙ‰ÜKé™A\øÄHq-Ç¢Z‰Bd©fà%r­?Î1Õé“'–7áR›.ÉñæÛÈ߇œÌæq)ÀÐÎZ†£ðߢ,¡A²œSB ɨ-¤© ìãJj ˜‡ED æ ÙWwq20›³LÞe³gÉÚò¨ ¾]X0hWŠç+9’„© ºiÃ`¶¦T ®U¢Ni9œKÞù¾°0›¨“ÁìȺ¯Ÿ1ñzZ46‘«3ÍV“ÞîÙ¢”$¹k©™ð‰ÜåK‡ªÝvwðLЬîJ\d,\¿ÐšÅ]‹Æïnˆ"a>õâ·–j½¿K]¦ßŠÃÿ˜L “‡…6Jžj8%†D E™8:7—ˆé Ê«y)Y¢½ ý§Ô>mÜ`•”ï<½ÈBRRt3.¬´9ÅÆA&¾ý\'߃¤ ~uŠÚôd+.4°±Å›W¬Ò«k]8‘..“€êßš2¬Ï7>¢¥„ƒØ÷Y X~·-—@åéi)E„ª\(+c'/iêpïÇ3Œi‰|cá÷â>ÙS²’‰Ù(Ô)æ%ö¨í&I¼UËEm_’?ëhâYbûïýÞ)ðâå?üB»Åeþ „(‚š¸°¿vñ„¼3×ßúÞ çø;l’ºÿâÝ:ú¾¡·ÿðÿ­qÅN7·ö"ž‡^Ä †_8"œlçúéeyð×àüˆ˜=´ÿoÆpd4`6Þ&Ð À¢ PVöæ=qqÈÇ%Àæš4·½ñl¬õ¡ß»Ò¿áxíõ(Q›ð&„Tp(³<+ÜM²:|ÞÇþÙuÞœqKÆ@ÎþÈÆ6^Oâp—BÃÿoó÷úFö^0xß/¿ßM°Z¡ÐèËzâ[Ìí53„]x]D©Ò…ó‚FņÙA/|âuPÖz‹Ù€@˜ž\d03¼åÙ°¡oj*YKž û»9ÜKyB‡²ŠŽ~¹lÁѯj¹–—[íâ“_íÚ{:ù…Ý«Ö#…,m£ óè+‡¤ûîF¼Õ͇‰ZÒÛêñ®:fbrLm§—ÝBGS©›ÇÇaÞ¦ªg{¾O•󃥋Ý=Àpò ScùÓª#Y%7¸–ÉjK¾q,;P3œ0A¹ªµ¶©"s¯¶;øà‡Öju™¨Ö¨Q"¸¾Ór µ°†fUg®sæ0g~³œp£¨¶ñ6¹?e¸˜¹_%W9|s©Û( ìăJ”“²„…¢‹Ówi¸90¼œÐ‰†¬e‚:üéá{‹ûž›«óM_¨*½Ò÷H6q·uªÐJ<ñxït‚ù±Œ¦™¹ ë]ÉÔC”Ty&¡¹vEm4Ä[µ$\óŒwfFW0žnZ·Ù-WÒžqÛÉ€©‹8 +¿éý› ^ÉbáUJ¢o%Ùdì‰ìfÓmw¶â©*ÀÂøÎ„ÛÍ÷mÖbwË»r¸=¯W„už ‰o1·µcœ›·qyÁèsƒ¾‡-ˆÛ·À ÈÜÍ™„ „3§…%6$ƒÅ©Õ(: ’f‰Ë³Ÿ ÒÆÒ¯øàÊ8kÍ­•¨bq4¼L+‹l¢ÑLÖô´A 2õ²œYW! ûâ–¾åâäç‹ -<Ïp,žŒóJµò ZiZ_ J£åâl6[žNG‹ËÓKåA¥R±WâøD’~¬‘Éìì|¶34L3 §Xcáȼ-æCwn:´Ï‰ÑÆ< µªÃgƒ§£X#/ *¾›B îÎíQ+èôv¼p.XEÏ\EWìŠN_Þ³öp_€9£Ø6ÁÃÙÑ({Œ‡›ìóƒN znÛ!»žè{²ó¢÷¥Ð­UäIÙ{Iô„[­‰A™ èR™x¿µEm:[Ôñrñ¼âU´åWÕ8Î`{ "G+ˆéO'ˆþjóè1ОaGG%&ìÉű¥­¯8_ÎÙ§CÙÀ IZd6aFþœNMÇ]º£Å2†4 [Î ¥u-J”X²ë\W­¢7ç³N¶@¥0M]ŒK.WUÁØ>®žÕ¾Ñ\×$AõÈý¹˜º÷Ö'ÜÀ^‰Ñ³r…àuP`̹A%÷ÛðWmá,€W!⼋LžU¯­ 0eþà"çGç¶j³….§`P‘³Ð{÷³òÁÅ“¾ÉJcÑ”²~W¡\à žMíý]XX¹sÐ{ø°Õ(È.ê^qC‘*¹yõvfÊ¿‘V?ë¦a;9J8 ÁK‹Y¥L#+)ÝH´¬lã–iÎòeÅCÇ5µJØÔ\­îÝyu'¯™q\Ð#¨Ý¤?Õæ;dê¾ËáU~þ.Ó“%5šiŠKå2½¬´AòÞKÙèÞ |ö6=~Q¾çêÉ%n#a>c'Ÿ(¬æþ¢²’†²k9´)/,¾aÉWCœ‚ HÈ3$Ú‘KJÜÎUp’ÇÙg& ›.|¬Zd#Hd ÷UÍ«^«¦7ý¥Y㹉Àï WÚ¤h‘—ÅQë2`¢é»€0ª«Ö§‚¾7ü§ÂuÏyqsoŽ”šB vˆÐ’‘¡S“1Žrgï«T"Z “º½5> IÊ‚y¯'Ä”…ÂÒ*æÞ'÷Œ7<5¢³¬ÄŠÜ‹«Á)¦\\Ä?¾L?7óë ¨ >Ï^Œ&“Ùóϳ'³ºüÞ“*JÍNÔ¸ùö‹®E¦ªëj¥Zî¤+tJ/Šôé:B±®æˆ•yÚÂõŸ´F¥I‹Sëæ@* —ƒÏc5û¦¶lhÌWP£]ú U‰æ›j9¸uÛŠ“4IÑL$ ÄôBܽ{&N„¹›Ï¶…Ðz}7ë}õ»_k\yEÁ]Öóè×@ªª Sìº$WÙõ8Ú¬ÈýÒ‰Oü ¬[ø"‡¾rñÔi'V3¨£u‚ LÏgÇÏöp3­lý \ß¾¼°}ã´ç`t^ÐFAïÍÚdKXߨúmµmKÜ%n·BêŠî(…Ÿ£x>Òb“Úé=åTÝQÔå=Y5u¿ŽÒ’TÞ€µéŽ‘_ÉkÕh‹?Ô¤‡uHÇ2j¶T?×ånO®«”“"wïo¶¶ÁÁe-Û¢ 4ü ß»5ž<ÉdΑ¨Ä‹04ýFÜ´~€À$1ìžô¶«NIý$ÑDpw_ÊRi§w":*Ît‡qW«ÃÙqÂ3¡Ý]Ù}}ŠÉVÃgsuSBfð®ûCð7ß®\´+ì„b’†BöO°M³vë œ–hÏNÜ>ÖÁh ë ¿qsh¾X=3h'G¸¨³ÀiŒœe0x¾ C¾0ÚHDÑHû,“ѳѤ†ÖfÉ i³.Eà¦ùðÙ`¾ÈÒœ;_|uh¦¸#ØÝ”ev¾U©±ùÜšæÚ¥ËCXÞ˜¤ÍµIåVÔ PÖßQ ÝÏüø§¯gÝ©LÁ@ú,»×…YýÊþîÔˆj÷?þH¿gàå§k¨ïñÇýû?ê÷ûûý½~¯ßíwúí~«¿Ûoöýz?ï×úÕ~e¿¿¿¿¿·ßÛïîwöÛû­ýÝýæ~c¿¾Ÿï×ö«û•½þÞþÞÞ^o¯»×Ùkïµ>þhow¯¹×Ø«ïå{µ½ê^¥×ïí÷öz½^·×éµ{­Þn¯Ùkôê½¼WëU{•n¿»ßÝëöºÝn§Û»Ýf·Ñ­wón­[íV ÈúýÎ^§×év:v§ÕÙí4;N½“wjj§Òî·÷Û{í^»Ûî´ÛíV{·Ýl7ÚõvÞ®µ«íJ«ßÚoíµz­n«Ój·L[»­f«Ñª·òV­UmUvû»û»{»½Ýîng·½ÛÚÝÝmî6vë»ùnm·º[iö›ûͽf¯Ùmvšíf«¹Ûl6Íz3oÖšÕ¦ic£ßØoì5zn£Óh7ZÝF³ÑhÔy£Ö¨6*õ~}¿¾WïÕ»õN½]oÕwëÍz£^¯çõZ½Z¯äý|?ßË{y7ïäíÜ´1ßÍ›y#¯çy^Ë«y¥Ö¯í×öj½Z·Ö©µk­Ún­YkÔêµ¼V«Uk•j¿º_Ý«öªÝj§Ú®¶ª»ÕfµQ­Wój­Z­š6V :+!•nÅ­bº]iVLÓ*¦põLŠ¿ÓþO»sK ô5*™‰°Cm‡"¨»øø£*¾úx±Ý="Pü˜<Éʵ¾$ßÞé|vf —¾YûO²¦ƒüélø´ƒO+úìšwŧ|>õè“›sõ©Ÿð§~ ªÔÇ cÃgoã§'?¦D ýéŸvôi©Ï.}ì›)±|Âí(…,?MK”öcJlXÅOÍ~HD²†&,*8[Å µ};Üü§g‡^×¿Ž‚m; a îÚÁؤ¿0,MÍuüÉݧf?ˆblRßÚ};p÷ìàíÙÌŸŽý´ítË é];¬ý§a‡xÝóÜõšîUênß}öígÏ~zðùø#à ðÓ¡OÛ~Z–9ìZÑ´L¢aE ¯á’bÅ2޾eû†n÷é³gYIϲ?Ò‘äGLCŒ@÷¦DGáDËžV‘5åI:óôÀaÀnh¢.(BÒC@fÚÚ³S—ÿtí§c§2˜Ì`:ã §´Ä¤†Sš™ÚênJÓZ8éÉÌMe4‘¹iÌLm8‘¥¦±¢IÌdlµŠ&°?ºí–œÀš o Q]…“Œ“j4Ù‰,œÆrƒŸh* '³p:óššÒ˜šˆ—uÔ´Æ›ŸÚþ=ñ“ô§~›£ÆºâREhMø|L‰µ;øˆÉÄ”X½ÛÏKÜøcJ¼ãŸÍ%:>á'Ñjð©Ÿ<øÔ£D¦Ä†ø4ƒÏnðiŸvôé˜;êÓ >½à³}‚Sb_ú¡ÈQ >µè“ËYJäfÙ ?àÓŒ>»Á§å?¦Døß>àÓ>½à³ÇS"~‹:Ï?Lv:Å Ä…†ý4íg×~€ ·íºöc&Ãß჈ÂV`C"+NØ  8Ò°Ÿ¦ýÖmf ø´í …Ÿžýì٢ܴÔt§Pœ¨Q(Ä ;fN‚OÓ~ÌÊÆÌSðiÛm¨-öàóñGD>2œ¢­`EqP˜jØ™L̼Ÿ–ý´í: 5Eš³·‡?@„z9Òü˜r£‡FŒ4 €î Ýzz÷”-)ØÓ*R¦§DIq-¦-C’Ž<Å8ÊpsGÅp2àßu3[4­ÔÛ63N× `Ït©o]ÕÌK¹™Ÿ@Ú53VÛÌ\]ƒœ=ÓÙ¾aËU3»åf–k˜ÙÎÌþfÞkBëÄíPôÍ”P5³dnfˆ™5wÍìÙ6$Ø5HÝ3@ê›)¦jĸÜÌ· +¯¶Ì,Ü1dÔ3hÙ¯›–š‰¬j„½Üˆ° 3{ïšy¼mH·kHaÏ€¶oD©ª™ïs3ï7Ìü¿k䀶!ê®!’=ö¾¸ªF^ÈÜÐ0òƒi£‘$چໆ„ö JúF0«š ;7²GÃÈ »Fi›ÁÐ5ĵgÕ7Â[ÕH,¹‘\F‚Ù5Ëñ¶&]Cv{¦fš®ÚÑU·cj׎¤Ž=0n`¼Tí©Û‘±kÇCÇŽ þ¾¥øš¥s oÓFK×KÍ{@¿–rk–^–J[–2»–÷- V-åÕ-µíZëXºz2m´tT³ÔÓ°4Ó²œ§kicŸh¢NKeC$uimÁë »– ùˆW’’öÿ {ïÚsW’‡} ÿÃûɈˆ¨{Õ‚ äKÒ€ÁD:"Ü0üaÌŒ%MÙ<ôïSÏZÏZU{ŸsxkŽåÃ3öY§víº®û…2ëW2niÒJ. gR®éÊ7UòöÉ9zãà_Ùé;­Ÿ.ûÞ„û«ä‹ $*2€Ñ ò7àÌoøV.çkù;?ó¬½&¿ø\‰Æ„sÄßCÎxÈ®|ä.ëËk«œÐ" U’àm´7thÝèEWo²Q…W¢ÄzÅû¬Ê,ª³fEžN¢ÖÂ'ˆrë­(¸Þˆ’ëõ‰á†®Ú·}8(o]w¸Ø7”¥^¹ 56nVùYè L3œ³}ó@NZrõ­ŒTm„nàwÝ¿yû Ð¹wÿ¾ýöù™|%äI0ãÃ>‚æÅ?† )22Œd8ɰ’®Š­‹­Œ­Í\U…®¸ ÿH^Ùý*„ mJ^_ Yx%¤áY¶P·ÿÿVE€JGxcý“„pdŠÎ8z4š’Nqû‚rP%¤åYÈ þ¾vñý­ü}KY(Acò“© ¨Bˆª£&XÊ!d „i2žBž^ò°? ¡zMDê­Š‰·Bº•QˆX¢2ÿ¯¨ JEl"QnJ.¤Î>?Ê-uʳAû>×ÑxÐMÓ…Lü,%NÒiUúØgØgnû!„Õ>¯üó,¤öõ‰%ˆ<&Úí'£Ýœ ;ÏdüDàˆº$‘‰È< •ŠÈN–ÂÎÁKªfÖ ð½ç¾ÏŸ;¹ë¶óûžîúAVDwÛvÚv[ö×öx®wò.¶¯¾ŸlËàÜÃgßÁ7ܽ· „X¬¹Þ‘¬MBiûT¸Kû¢z}I¶Çv¡œ˜¡¦ #E÷žä¸)¡Q¶¨ Qs4Hª”IzIröL2'dOIáDVAc"ÁTJI)ˆê¸œ ÃÕ™Åá˜ÁpÂÛi4¶±ñ¶ë8Ñ®²é,¤ìîê«ÅDžØÈ‘tVrîàÞ—¸­¶1”Oº°”\Çüy–r®N”í×5›Y ¨ýµ vEìØÄæ(ý–¥TD.(|¢ò¥<3”NÌN¤Ì™‘1%bFÂfÂBSò⥤ „ dK‰–‘¬Gìâ XþŠL£ Øz;åÆçÕ.ŸS]TS³Ç¼)²Îª±vúìÊúaÊÿ“Š_pÝìÑháKžû—›©áyÂö1=Ì[½Ä‹F##Y$£•Ù .ËÓ6\Ù/”ó8QNÁœ³GÅžöys¢œ†Ec²? ‹ž1i3*BÝ "žTT0ê+£ Îâ¾Ûë6Uì|µ1¯‡¨,l#Ë[666ÙØykÊî—'e·©»mUzg*·Dõ-ŒÊ[Q€¿™â»þyUø+Õlˆ˜¯"Åx£B ˆÍ7‹Ý7Ér*÷úV,Ào¨bx- Õh¼úAÕDËpëp†ZT’(Ö#¹à·¢`#6ã×”>¿Ò?/Eå~ˆÚ}ˆ2EÕ*U¬É…lDU<>Aòo©ªy-æç—S`½ËKQÒ¢¨¢òQõO…}ës–ÍÕCDÿ–:»×¢ÈeþìQ:Ò?CìÓ]ÔûPðCÅ_¶3±ŸˆWÛYØÏÁ.ÊØþ¿¡þy3qLš´™8öýæ^ë>o{¼ïïÚÛ²vuž‰xÞSîæKCÖ>®=ôýãîÉÎq߀—מ÷ËöjíÓkú¬ýY{SmW¨¾Û÷Äöã+k|ÄÐ’Mš[ÞÈ1ŸSjôR¼1¾t‘¥+M0YD‘(òØ[1Ũ7ü ^‰ðƒÌq¦‰h3w\L3jœ‰"ýýðk1Ò<·W§3ñÿ']Öÿ³·ÆŸÖ[ÃäÓ°ý/Úÿ6áuSýï:ŽÝz\PE¾ØCÌ!zp„^B/xëä󕇿zdôÀ̃s=2¿Ñ6: îý·?,ûQ™'þÖ£r>(ôÂØËÉ*c}#ì=˜ü—'?ˆ]_iË)$¨¨ÆCÿÚ½D¸›38(îu5–WCvf¦#LP1’jƒ×®Ñ\ZÍWT:˜'ÃÒrvú24*.Œ Ë–%÷j Tõ ºzó6¼Ý<žÝ·ay7¼Úü†kèt­í¯ù9Ì-Ÿ=îžö7m¾>æ÷Í£gÿKOû;?sß^Ÿ¼xvo«wÎÙ§Ÿ´€î+!¶éegv[¬ %W¯¡ç‡ï|ìû³½Ó­ëeûÿæÿvÁá7,1Á?³GÎ"ƒpÿÿG~L§±Ëí¸®W»ñ°U; IK8*kN³Ç³ p){ÖçêWõjû›³Cf_ï‡uõœjw<T¸ûŒ÷Ôç¼~³5?~ALM_T¯^¿Õ{áOíqðãý,þ;xElþ1?À²¹ìš—ÿËæ²kNüC,›K 5YñbÙ\ʨÉËüËæ²¬ˆàü,›Ë®9‹Ç–ÍyÜ“Em‡53{̲ȼ!‡V·Ëè*fÑ¥›m¦‹mfˆeö·Ð¸fYiŠˆe»¥æ!ú•ˆqç&ÅäªÓfCE`q_å¥ñ’»ðì¾o¹qóǘŒ¾{slæ{ñ–ûOþõägq˜ÅÜ·gÚÅ–_Åò¨(ÜÇæ~˃♾oÜkB<&&/oþ•{ÜÝKâ¥{G¨JÒ¼""w=Ÿ|!Ô f?Ý}ü$I½z¯<ö`9û°ì^,ôc;âæÉBÇ‹û¾,go–ÝŸeóh™«¼û´\üZ–WËůE÷á®oË”o®þ-»‡Ëæãròpyìåbû–wO1÷»ïí²<½®þ.o¨ð{ûÐJžOXí¾ï‹{Sq æIØ=¦Î0eÐËÿHO»¬‰˜¿"ÁPõx /rìmþ3ox™ÿ„xàÛÄ ø‰ASæs³±G|dzúÎÉêÌŸJ蕈o¡ÕùOé„mßþèQŽk$D9N¿Ç›ß#G|L∙†ï µ`ÞAGÁ O©,bÂÇa:Ç]|ïó_¦±‡füÍïÿþþÓùgÄfØ^‚3x¬Æî|ñPWµ4UKOµ\®E¹0/bšÒÚR.˜jŠ…‹ZaS*œtR›J´ƒqS(œÕ g Ôquµ–´ëžZ¯Ôå-E®FXJ„«Æé¬@ØÕýœÔ']Ó®gºQlŠƒ³Ú`A³Õ®21AÝ^ÌÙ'c oŸ¿äý°[w.Á*_g¹Š¤·6£³ÝèõÖãÛ“åè6 æìV³œÆ&>·M°[BÝ>·5¯;¶*÷êØ>›ýê3¡?BƒîþñðŠx™çšã+îï–…úû­†é+\Ö¿V¼ùŒMÒÖüU.õ_!¼ú¬¿Òú9ýꨯǯ¾m7¿G,ûœPöÓï¾G,ûœPöÓï¾G,ûœPvñøJ±ìsBÙ$ƒß!–}N(›”ëIJ?¹§Àã?êàýäÝüÊÖ¢ŸØG$QUüÐÏoîñ&žeöøæÇ~¾«Ç·ŸûÌß~ýçêìíž?ã6t"Ü?'óÜÛÇŸSxÃlsvlŽÀ&7îÍo.>ñ‹>y$E]d‚¤y¢ì>gQ³ß5ýã”Ké–Q­I³„b^5¡U TJ§”JF-µ¡Q'Ð&¡Ls“@™@—@•Šøù ñê{-´(ÑC 4ˆˆôÔ§OʺófÒõFƒÒêJó†>h 0 /¯H[@YÌ÷L=Ï@OÔïL¼Î&Q 2éÇO¿#ýx5i<Î2ýÍ^NZñfÒ‰4iD›'祜–·²/XÛÝÑý¥‰ë¤êsÕ…‹í—¿W?Ôq1K¼ºx*¿–pÊ×>»¬ÿ殩ê}¼^n!¼û_ùêeÚ}d_^|§uTëÿwÓzèi¶Ì!ö¾v1ŠÝ†i.ÞϹ~‘|BÈÇ•Wþ2Çx_F:yÒ]fõ§;›‘™“N%7]ƒùŸo>·)®’—%Øã/¾$¡ÜÈ9îŸ'a Føj¯óö Ìýý¡Í7æû‰=¾Úßãë¼=~úÝ÷ñx{ÌuÜ|ª®^Uo®žUô‡'¸Ý. ß›n¼áÌîêiuÏn÷‚“c8÷ÚüàÎ^W/o<¯–ïUµÿÙÿê-‰èÜõÂ’‰,/¬q㉵|±’˜!ÎþXâ‘uCËŸ¿âs±}rûáAFkÒÙÛO¸xñÂèe¼®ÁÀgeñË»m·oN|jeâ=`½×‚ñ†ø=׉ë ÓÏËÁeFq0œi¤œüfÝÎ<$Ó=áê>;ÆoJÃð}Òî¿¢^àµÿÚz[©aŽÓçåéóêôy>}^Ÿ>S:;¡Ã=CÁÛ [vÎ6•.l›ÒŒÜëSOŸvúôÓç<1ù3{´?/OŸW§£ÿm¥~‹Æ=}üj¿ß ãž¾O|¿Û ãž¾¾Ê_ï†qåîØ^Ÿ¢øVôÞŸSÜÛ!ÙŸ¹_ÒÈ~yw–.ö%Ý,^ošØ«sÌ›-ìrXš¯ÎðšDåÄñݤj—H)“lïIxýŽ"?.!îŽ|õ’fÈþÞÿ\dPq­wbºîŸ]ÖïŸÿ<>“³ÄÝnæq.ùênyCs¯Òô­ä|7m}¨!ØåçãâVùòæïË‹cêI[²¹¦¾¾ãÝ%ß;\ö–Ú玣ǽ´&›¤2¨®e»Ms|1z,»ŽOäÙ£K!ŸýÄÍÑäsIVæ™píßA÷²sb@ûÍøêI£yM/tI8t'ÍP»£}ÜÝ\V ¡ƒnOG£«e×È:{k_ñ™÷lý·¶D=²HÕ[ äŽ,rÿóåä©7ï?/ÕÏ~nN²ËßÒÓcÛ›õØ®‰‡x?>ìågÒÎù¾Þæ úb_—®|Ê3³ùc: 9[ëó‰B,úðÚy‹3wqå/^ãç.vÞÂ8‹ÅW|W!vûïá*>c?”tw×äÈà*îó9 ·ÎÛ]™ø{ç*Oñµ…Ù5IüÕ¯uìIÕͯ7uh¨øÿüÓ.ëÿ9É埓\žCÁÂ)òÃC àŽÈ‚yPÌ%øk9†FœjG|dzŒè­nÏi4\4ðO/Uz)£e}pœâ"¾ùY¾“d$ÈÄŸÓZŒh‚ó¥·Ó‹¿¯¾å^m€/`s“Á£9âP4Ö#ÅÚõ¹rzñ7?«ïÔý°%Ž*íÑB]Òi+¿Ü˜½êÆÞ0XÃS§_lûñ*¿H%Ò§óô×ÿøûøÏxú›ùËïEøÊƒ_æÛöê8‚ëË]ë×rwŠ\¬‰ùñù¿Žßù‚&÷.Ï÷•<“椿ú£'–Íä¾Õd£*“ŠìtÅr‚ª\iÊ5ãÝÊ2±Zc6ÁGÖ­o£,“Cø^oöñꎮx|ñs«E¾I²b\ÿÜKÿþ%_PMó~Nô¾ç# w}Yž/Z‡=#Ùž£j}ê%­~Þò”™Vb~~ˆ>õózÀ¤]|¨Yü>|Ó~~g_'ýÒüóC{”C4{|óc?¿¥Ç›ðþý¯˜¿‡§¿ž?ý Xã”1—1¥Wü£3 ‡„…wùÿ¨èìOSØšù6h³Ó ¶f¾ [3Žw5â&lM|°«‘ïÁÖlÞ‹xôl0Œž  pè&/µ50ÌÍG«[ƒ°A쓊ö¸50ˆõ ?lè]:-û6F̨ØTl\[;íílx[;ííl”[;úÓÑîÝÂV§YØØfaGì¼Þ«Ní|UW;ÚÙâ®f„X«Óè Ål£³K|ÝÖμ·³ÝÚù9ÙÛÙ·v>±Súß{wœ×±]2²!ûm¸l¹\f±µ3Щ ykg S;òÖÎ@çþt¬{w ±V§YôøâPÚí󚈥_ÊjæÓÚ›Ù€W3ŸÕÞÌÆ»šù¤N½éx·Î8%6úõ„¶3GÐéh^ù»§ûOoÈá®ßïóÈÏÿåþîÿí¿ý½”\¶ÿ~*/0R›¯ê ÿÝ«|yÀ7çx³ÝÞú‘ßø^°·íÞ÷l_ËéÛß}nq»/ÿᘪ=µ9Å¿ciI¾ÊŽ/âÓ°yɸÛú±rJøs—™´¾5'jóîË‹)oÔú"Ú‰é“Æ=Õè]´õÕz˜O”"O Á\¨§ROchO¹úÐAž¯Ù†0ñböß3úKm&ÓÖ`9æ5„9ÁùH,¾ m=`¯˜ï >‡¼¾jIVaØÚ.ë\u1!ùÅA“Ãúȸ÷ ;›”¹®GÄ^…)˜â”/z™¼ò¼ûÆ.õÙ͔ӋÞåH“‹}ÑÓÁ±t˜–f‹6Å:Œ¥ËŽÀìã8hŽ$uÉ›‘‡‹#™ j ÛªtR#'èS®Âd^ô.™ßÇ|m™ß§S'^˜XòEŽ:›þ"ÍÙõp2¹Ï™‚—ÊS*ÅšÌ 4%óú¢d¾dž# ›yì’^µ¿¨q²UýE98Ö4™ ×+‘]š+:Ùÿ¹ºìdî+†9²¢è»Br›gH‹W ç6§rÈ8'­µœÈŒ?Ï­2‘Ú3Þ”µfµs ó¬LôäLênÍvDzž@¹cÐ(g¯áór‰ÒÞbŠé˜µ½ ɉ«Á\"AðÑOרvqµœñÕb>,côk„µÞ~¯Ò¾ëUR«Þ¢Ê÷¸¦ÙdÜó¸r˜Mæ½¢c\»¬o¨hµÞ&•pÏz°òuG>IP›c†hô9%ÅWÑ”dÈûÒOȨ[éà|È+[=ECxûî{8†›ßçaª[8ñ¸ìnÚ† |sœ¦9Ñ“ÿ<÷v^¬î{‹îÊ6ˆ?=ó>Ï–½ƒ¨”LBrÛ´ gâ:IJEše;`sN{}ŸCÆaŠçó‰}/çó뻢 ̲6§°I—}ý®xÌ÷²”í»õ1o¾¢È+ʶEHÜJôwœñx‘Y¦Eæ1ËTOƒÄ^×m”ø¾QLœÏ”Ÿd}p¨Ëúª{uš[h{qèƶWà ¨nÅ8ÔˆGʺX¨¼ÝS=¡k»ã±}·{ ½h˜õ±Qåˆù ç6”Q„F÷á-JžÌíì©4¶ÐwL´axsÄªš²¨¤¨ܲ…SæóCd³P…LÊ“r™ TM›Ìæ£cÍÇÑØˆh½Û›ðÖ$wlØ›JÑIÙiš,¼a¯  Ÿ·9?óJ|ö¾mrÔlpx`œâ¶sŠ¿òÎE´Ó-k]ûw$¥ ÍeÎ"Wq1æY‘u¯k5RÕu¶¸ÌP<…µŠ_!ª&ªZ = %Í¡Çxe©(æLiÃýEÛ°·Ò“m6 8síåã½`æ¶åªi[®!ª1_ÐXÈ«ê‡3´ÈjôŒqÄ™ÝøB¡‹ñŒx3Λ_öùd²=œA9ŽÉ äÉ\¤5ÈIúçm«Ê’M&¦(»am³Ÿy^Èèd›ÙNeð*Gm¢d'ÛrÊiñ土7äÖNŒxºòáå̆§.ü´僷‡]. v;±ÏñÊ=—o/(• ë” Îkï7,ëlsâYggZÉn·ÏüæäÌá$;9Ű3?9û1†’Ìâlrâg g•Ä(7np¾ÆÙAáŶkLR¹ä‘y6¢èŒ QnBZ4€wçWi@… xnÚàtùdßî‚íË}mç”,Ð¥"CÒ¯Í/—þO?ûõ‡çïþðûOø§§¿zzûû_}‚ˆ~ˆI ÂLŸΔÁŽ<×õ¡q+ˆ.ªIî¨ióF;$ep×ÇâŒGÛÖ·=óM[×™|\ Ý´¼Á»Ûg¾^úŸ—L¬’ùHâx66ï@&}¦“^Ĺ ßøÐo\‘yn{UÇIØqᦠ™ D©xÌK?¿ö$_s™Wþ½<’j=æQ uJc“ë¡OI*ç ÎK}RØ€«þ,÷7Á`9¯K ‚¡réýiÞ¸8É"š·}c^m_aKžx/€O2”ÓsîrJ›øœKÓöS„Kê÷8§ÀZÑ}h­àë‘â1¿Â_ÍѦ°£1ºÈ¨çà#^qp┹&¸´ÏBºDy™.ýá¤zçm/­A !Éh&䪜g%L|%¬fÃ1:ÙØ"ZñIš´/sôs “Í–CV hŒßG 4 ¡eÀÕ©O즯˜¤-›÷8EA^î9Äù½¶"úÛ‰M‹`ûÊ·„ibÂÙÉÑŠ »f循LcvÞ&š›ßK§Oä»!ùc!A:0މ†ñŒÁüOt­SŸ'¤Qï÷Ò„sÍñDšO̵=ùO·N¶%r·æ^‹ÅuŽ#µy¤ !Èóß9nˆGÀ`ô"C"ÍØÙ–eœ@¼øŠˆ‘·¨\æ-Š]‚”£˜+rQÍ;Â]„‡¢gÊ@óðõ,¶ØÆ9ya’X-æÑ†šUŸ¨U‡.S€¨•ƒ,¹tŠï©&Ý$Žk•>O…ìãÜô:t«çòrñæŽo›’ÅÃAZàÆM ”y¥ »ó.%(ß{Ôï:‘¢ŒËçŽ"/ ü4O`…¥y~?Æ|É<÷ÇÜ}Ǥª¸z˜&kwì²~•ã;vT˜wi:äª1äÉXaÁá|èÕÃÁÕ¼`šg ÑYM›3s6„æ4ojL²ù1ãÆëý@p%ÆáH²1µI'C籯"–Ö’es&(ÅyMSУ'¦ôÉyOúŸÒ U žüMjrÎæXã$E F^Ana>‰ᘸ—‡ 8y™×eh¢þÑOÓ\à²Ã¸ LäPÈÐÝF`AaæeEKb›Ã•m{ õÖ¶¥i‡`O€›'ö ¡ìí U[€ÞL°Ë\:=Ïs'Ç„K„éH{;¾ ÒJÕ„‘€>k rR¬¥ƒ•’ö@n©Âr ì–õx4QžÈ zíuIZGè m¨óVáß9Æ1WqžÑ>¿ël#ð%b²…ÇÄ¡3aï®. R›(9éã¼îh‡ê`’è1Žší8Èà“H¹/ϼ« lÂ!Š8QÏr(kQ„‰Û‹¢HÅÿvè]åå:…‰+„PMP‰‚|„Žà]8s§nÜ–Q&È6yè‡ì(ß‹v„=€Ðqh:‘Ζ“±m\ò2y&4‡,H²ÊË'!ûy7!†a9æO/K¨êíÆ3Ç5B“³—ƒ½‡(‚ºìXâÒåÂмgÑV‚𬠤*P„É eo *ƒÜÎÛR ¥ÙT&.›¬|ÈYŽæ€å5èåÆ.ö(ä&G*HëÚ×®(ùŠXÛL o JÁ£*ñV(£;ì9D¬ÃüŽnÞ …Ž5‰8 PHÁ> A¾ó€Ab5Ë‹„ñx¦ÆÎèŒÿ<ÿª!SPõr&%ÏbÌÂŽÌ¥LÒ`¢ !AU6©À]aŽ$)=¯Ê.ƒ÷™cÂ/ tðÊÐ[<‰aÄÆs管 B»DÕP“0ocâBQÁå~Px•-l9t#ÃɈ»HXQV Qh rÐ'Óg`© ÒsIóÏïÇ}~‚óÞÇ¢,CÛŠ®3YëZ”ÉÌCQÊ~ÞqV0L°z7å0g½À=QUHjG–ßÉ <«Ž»B“sƒÈ0ôìW'.V†h6»MÐüEš”(ŸÒ±X°Ð¨6#L ß ¸Ëg1!€VDî2ï5ì1‡ºúd0aè·6“!}å|ªc¨‚`jÆ!ßKš²Hþu œaVaŽSèÄ]ÐÝc殄(óY\÷Ue\­àžÉ¤aÜ~ ±c{"Š3Ã(\ž®ç_XÙ Ê\øyñ„6p…dOÂ`n.ÜÆ RØlÒ B ÿ<»‚‰» O1àÍyr)U‰ D‘‘D+`„£ØéD›‡Jø }‹b8WUeSÄ*2ˆ®ÄpŠŒ»"ˆUì^€bó0'™JTA jGàX•ªD›ç?€C³•®p( r ÏUH7ÙdVÄ&B)£‹¡tøT‚z6Óm.Š[‘^ªþ[“ìðä°9씋®Ý9t6ó»°Äf?Dõ(ÂÖ|‰ [—Èa@ %UUãϼ×UÞ ‡‰r™ # ‚N ˆNÌÈDú)bÞ™•mŸ „êEq«ˆa L"ëEÃd‹º="bv±IŸC·yŠßz¼oHz—+8·‰«æÝ) Zé VT “ïÊLt RXAçQ¬;ÏÚ¼åMð ¤0°¹ò%"…Á^&G …µ&»í¶Ð®¤¢~OºëÀYµÚaÀŠ“ôf]ÑŽÉ_5B—J„Z>ÙµC_eÜðüÞ&ŸN L¥œ®$"bæh@±Mr¡i EßÐg€ô Á©"r`Ø6obVW<Áô°§€é,ƒ3=§y?Îæ×r€"„†Õ®MEª6?éñÐ%x¢50tIüp ¶!ávT…à–à’LD4¿&è´',UHÿ$iU…’,~¿ô¤jÚ!Ü) ’¡ÕÞ ÆK¨VFgps•ÃZy`:Ò^d9»1U9_œõ>WSt NQEÈ#Ée8àL "7oHxKÁGWì~(]œÍ§˜ WÜ4· \-È ¼6Ò.ëÏ%V4[s©~ä‡ðæó4ËÄôM†³¤ Ù@4?Ø{Á$ÇEo)\ÐD&“á+"Rœh„Äï®É‰*ò ¨H†ã‰é‹†c._>„ÿ«àÙ 6rèºF£H…¸ÐTD IF`•À ”"LgTÑAEÅ褌ò=‘5+òª˜lb1±¯CI x/"C&(м$FˆÂ0vöN9&àäã Aá‰aIó{K"vÍWœ£ž#GU`Þ˜-DI=*-膂„»9‘CÌ) ZÆ$NÙyÐqIv¤+GÔ 5uŸHÑlR ^"ëŠ>;l@²‡]¿“}ÀDJôi_†Š¨iN˜æ$áRe…L •˜] ya6‰lŽvrÉ$2xXeð"”ÈšœÈ²Kd ô¾%—È&N“µ6‰¬ín"ÙlR… LÖ£}Ê:Η²v&•u(§K4© æ®C…4‘ÊzQ¢¿Ie³É”¡¢Ke³‡´d2˜+çì2ÌE1‘ {­%—Éz…ÀŸw™¬ƒy;’Ëd½«ÒÃd28èQgü:š©D*ƒeªuÊð’¹E»PÖÉ·›PÖ¡ú Ñ…2,Þ<º»P6A}¤äRVÇE²ùŠz„¼‹d]|1’Ëd*˜ž\&ƒc`ÖQ™LÖqÁsq™¬#)BL.“Á> &a“ÉÚ¡ ¼Éd H®—Éìàl2ìºG.&“ᨡ"¦ `ø> Ò.“Í[ç&™H6Ox©sX&“5`4.e2€°íÉôâŠåE$kpSÜE2ÜF°p&Q5ˆh½¸Lÿ†ƒ/Q™ nT2UÊd³ÓIöËê!¥/»LÓd]"(j¯ÑE2ÐÄê§QD²tê”Èà•&‘¡Ãœ7 3zÀ!a©BÎÈàtÐT®4 . ¨YÚ­ñéŠpž¿`ËûzKêÏÿíÿþ¿þáŸ`BµÿœtLÞDëÐðBH+„o-¨,BY’–¹K$üO²—Ø“™ ¿¶õ7ØaŒ¾µÎkŽAléóöÈ‹‹8þ%˜”ýhß½lú!¬§í»7cá¿Êÿ Çqïܾ{ƒIgÖ³òe ì8?kß½¸ÿ*_ÖÆyRöÝLDsš”}ÿnÏùï‰HúÛ«üã?ýßÞ×ÿô¿ÿ៟øí)þöv€?þŸ^þ×σÿªO–öŒµàô?žQ¾Àx€|üÃOœÝë«ÿÅŠÿ³4ªÖ¨òEóOt3C‰àMü/rédJ¨RÜ^×…•Šõö§ /7B› V·ŽCÍè2(3:Ç(ë²O ÖN¥´Òå‚[—OÛù–×ûíù~}^ؾ‰¡ÑÃd9&ÒÄÀA9`©ÂGϧÞ&þ æDºl7]BÔ`bÛ¢ÏŠŽ§a-®eë°j˺.›wX|ÙàùÀeBU˜ðEûɸ¬Z¿nD÷Y곓•iÚlrsúûIºLc„à,ï7éc ƒŒ –lSNmßÛÊÞÙl×òNÓ&ûMÛŠ‚“ºÓW:i+š+Nã^[¢HÞŸá~èRHø”®YÒŽ±fОë &Cxh"?>ëˆgã(÷d48Õ'ή4²1Wâpøj\÷žüªÞÛ‡Ò­1:Ñí¸ CÃ=ðÉ='H^³Þ#ïkTJ(†;ºj夸\à…Sr„ÕBVù0àu•…˜O2 DóohþÝDrˆ¨©Oÿ¼_u.yuæhíêt¨ÿ2``{Îøf]œŸúÁìçÀ~þ2ÛeýÏ"³Ÿ<2ûùG#³Óž,dÆ=iÙ÷‡iȱQëÎÞ݃ù!¸ñçŽþéoçGØ€É:œ™€¯cÂâ¾À ½(Ædèk¢‚Þ]@°¹öêØ­ÜéƒÊüµ¤ Aš<çiVúÓJÚ†$ó¾—»@% E(·g¨+ ´Ujˆ 懾ga¹™ˆö;¾ýˆ ®97ƒŸC„‰6EI½t=¾°AÍ«X ü|¯¼Œ!4Ù{S ‘ç¤$Sìx¿î^"JÏy"wƒàˆ%!+<õ‰9ÞÙ ™ë46¸® ¼°A»¨3„¤(}ó¿Ryº»v¿ob‚'Äó•†úйµ…~QclXT˜+ã!s©I i˜¦t^m• s•ð)q˘ñöX£öÜíë©c*<_Ø5ô¶ÄgS€c€ŽF EÄuN—½àXýbZtÒ9ßž´è=tl=§§{/“QüíOží¦i6IÙ\I2‰ý†fKþqoN% õÆtÓ´$:Ó#ÈZAÄ…¯’fQÏÆIãp1’«¬6àÍï&”›ö1 ¢¬ÏaE¾PÜûÞ±›"³à½®G=ì9Ä¡ÈuÀq›GŒ ɉŸ$ƒ¤U2ô£:}ÒÏã1ø¢ò\pòÙ°ù¤ÞÅŽjƒsIR¬|ÀáûîÚñ¨R’aÙ7é*›$EIe`¤”!{p:é/m¸-ÉÑ«]õmܨLŽÀÀ ‹U´Ä:)W´«²w¬‡?:¤^íürù,´Ž‚T÷ÆPJcu¸}?½xÁ·Q®·ùÜÌ}öðŸHP³¢ „›ûª  ð×{@QˆÄ ´zÉ·ÀPVÆãéÜkU+ÖyúÚ@WtnÛ”8ž{]ÀÓx­wºMëf |u²XV…×»¶c"ËK¸^øò¡À˜ˆ189™¹-ÙÆ¶àC c§n; 2û æ‹# ³sÛÆÉí:ì<ïƒõ>÷i]—ÀÖÑ1ÅYbZw=”ÿ2¸SëQ‰Òˆõ D¦Ùfs;ÁC=ÚÓ©[ÄðÀÓá4~0¤ …å©-ÞQå8l½ž€Û6ø¯÷ºOìf|}à¡;7YIxã<†bä¬ö í%–CÚ&1“Ñþ@˜Ö×â]†åäýDó¬¿-’ ¼ËðÕE˜SU¨8Ø*¬Â3„¬OÃ÷)gR‚º?~-Ëø+9dı)‚è¸hvž¿,ÌRêÃ9@™^cï`žjr ®\UÕ«2Ïl WXU­üãÀ ^Ôìqî&ØÖžÎC =ˆ§Æ¥m„‹M¾ôº€ç!,ø®wºMëf ìà@+¹:‘·]´«‡0´WNf¢®¤ÀÊ«K1j³ÁáK£{·u ¯£?Ç@ /˜vÏÁ §·w»€ç1,ø6àÕí6µ›uØVH˜)‰Ï3‹ùèuƒ+Õ”< î '`‡÷±ß® çûÜžNÝ".ütƒ×:ò¥mTÿ‰s¯ x‚Ã÷ñZ¯ûÄN«p®¹·­ô"ÑÖ• †bðÕVÅX‰‰Xºã DjB§ G¸ìí½ÂÖ¦Ó ÈºzØž7xÆ]{uàe ¾×»Ýgv³ ¾>‡Ixˆ&„œ¯O?FVx#÷Ћt CŠcpÄS•سkÈta©ª)w×YÏ´õ:9e:ðÂW_ñVí¢À2ß&°SmW@> ö .÷E'Qà¥c˜8+)bΤm·Ë ýƒéöïI“ne!f®ÕˆÜ‚Cè¹ùš^Aþˆï?„Ì”ËIA%„a}‹ò{¢Ì¡mÅûçÁ°]:]”Ó„è|XSëAr-P¿ÙmY&0%oݲ½WÚâam‹¢ˆ·ÂÖÁÅ<ª>¨BŸ"Ì‹z…vŒscÁØrÐkW fƒº"rÑÅåðÙÐû¨ÊÁöfÈ13(òÚ¸u8Õ—%á­ƒ÷67!±klJ`ˆÌ  ßá9‚Jk­]ÊmÕOüä ãþàâMYŽ,D±Ts¼·=¶ž¡Þ/¦ã+M÷³iГP4HG½ù¡î˜•t mÒ™Ô9S€â§¤“5Qá¹%žmrÔlŠ_·Þ!ÞMrзNb‡UxHÕí|A&N ¯â7aCCÛžMÚL  ¤BPuaSÁ÷nkPF%€ðëU grÄÕ¸¨ Gñ¡ªÄÀ«Ö4úÞw#Œ`ߣ™¾ZÔ¦4ê~a8Má)ªˆ0WjÒ­ˆÓ¾8D§ðº¥:¬JV¾iÒK¾,ÃÝW®C8qÏö²2¤cwÓ¢K¾:U4EGÉ*g(GãX“#Ñ-ºZh¤•Èá’—Úº1Ml ðKòê¢ÅÔ)½ÐQ³í¡.ÊÂS™¹´Cc­šPGߎ‘TÏ)/Di®'3¤à¥²šE}rAiÀënð=X0ýÑ…Òˆû¡ZÂ:öÊÆßG_v9à7½#röÉÚbK{kƒUÿ,94”ª‘de4Ñ6lD‹1üL²ÁÓõ4òê8Æ‘Ì4¬Ê= ¾>h/.h5®‘Ò¡é1OFòÁÙ.[ÔxÎ-úÙ?^¦Ú0«ÖxàèTçdÄ[üb(êhbi4˜V%C1ÑîC4ºjW`ªÊÅø†®ØaÓ·0tZjú!ܲÔÏfÍ¢ ܬ¥ÅæJ#ƒPóe\R‘ÃHÑ`T/"Œ¨¸æ††h·r3>¦4e_ ƒ9µ‡‘uFµ€Y ÝŠ §s²­Ü0#j8ƒJwMƒM•ižx±+ú?ªSsqMˆ 66rãÜ¢Û] ¨LËÂ;† [ "Q€ñƽt‘ÀHäp¹¸á5ÑÙ8©ƒ¥ÀãC7e½É|¿­Éù·òÎ/4yå®ÎŠ7j2õ2zè&µ esELP¹/Ÿ|ø%ÌØßŸÔ±E®õˆl’c ‹ h¿»:¶ [–b2´FR<.–¸I™&2•x+V¡Ê©_ƒâªÀ«Y‹ÊºôHp’Ìö/Îã‚ÿÅ \÷R|rU3†6ɬ´N‹™$1e ÔA%ŸÕpàÎUìC`Ùè¤B"ÚhÛŒ8µ˜V'±ˆä¢™-ï¢'+C*vžTérЕ}}ëm­[9:©P‹ÔÕJÄ(é¼xÇþbÓ«½³xpC 7 Q#AÙ(0I:Z`ÉäËÓ`òl:0“ÅŠÁ›¤%IMÒ“ oÌž Ђˆ‹^ôz?DÝ|„`ŋރðèDR.m'=¹èöpü‹|"Ê5zeŸÜ‹ÚbÞ›œHm@€¡5¨»oï]ÇØZ¦3‹Þï•e1¸’ÿ:¤¨h¨»ýVÒLSsé@£PèKDpÛОSq—%†w} åÌg‰?iÉCš¼¦º}6~}oò, áp.A„©;#0¸ž›.$ ¼ Ðÿ:w’¢BØ„®<VÔ]IX…ùŽ?©UêXEZbCrÛºDýÒÉÉÈVãŸj%MHªu%”\üS‰×ÆØw‚Âpî©É}ÀÖ\àt­D£mê9 åYkì4´jw²•Jl'xÆ=ÌÓ)ªŸ(ozeHB*Žç.Hñƒ1׿µÎßXׯuýÛëúM`ÝÝÐ:È“Á¼T&!ŒëTpH6ejq-öažôB »ìæ:¹»©÷S$ù%PRmóXªþ˜ z7f>ˆC.Ž®z¯MÓê9„…bãX¡¾Â~˜#w C¢òx¸Š@HR,Èꈦ èô{bqbD–$VTu½$ó›@$sMeMBh£›¡`9SéxÍh{wý?|!4é¿ãŒï|äñ’uK¨"Ã%u‘GÆmSlß,ü5ÈB[¼gj3¥ÒN³žµ™T;îOÅ#Yn–é£EÄI;]&¢é‘ŒAÂ×Àª¼F|³ƒ&U½Fˆ]5p&²ÅŅ݄ʴú5C¾=—Sœ.ïûœ;wÝú±äÒïº@_Z¾ßr1¼ï›Y|Ü0GýÔñóoW›äò zMÁ(Q„a¹9#MTUÕáï.p$·c•ÊS?à[?†ù%nÊR§kÜÔ`Àƒ– îÌ§Î’ÉØ¥ÏDA,´$¦jÁL(ÖD÷Ϥ¦¢&™”:uC]€ƒI#?™ÓcÑ@]×T¦¸üäzU8¤ÙȬX#i(Ö'ノ(ºe<ƒ9,™ójREÇ'èe¿š÷þ£©->Í⹂òÓHû‘OFf¹M˜~»£†Yáìåc†%™Å¹RÒFà™#¤F=|2ôÌžÅþ¿l½p,ƒÉü“™èuaκfëý’­iâˆOæÖ@¹DR›Es<6îÞo“·ÿäÁÒc*¶ÿ¸¼,Ízµ-ÃÚtð„-˜í’k˜(lxÏ4ó Cq~—V`ɽ†>VÏ.6–ÓCTО!ɰ1dUÔ—|…õ•27Ñöx@%ÃŽ·«b»Šç…€ÝÀ¼6¥jKoK ï.]á¹ç;´±dÃ>()ç¤c EšçÍ“Têǰøç`v0;¾ysÉæÄß&ŒùW·ÒE:„Aq?™~z-z7".žÞì·WåÓ—.QáÙÜÕ«Þ6·Ó¡8(ô'?íwÏÏÏTVòÎØy2ÂE`dÀQDu;¸Ó ¯”»ˆó®Ãs“ÞC÷¾ôr»_msmÓ×Í\Ó.û¿\#„M¤ŸRO¢8˜qO>-Æm´í8ÝA iløØÉƒ(ÈFµànÆ&~®GrTx=/?‚Ö¶¯§µYsØ1'‚óXðµÜ¡ïNÐ\ToúîÒÇ#øÖË ÚéAÊ.'ø©9Hu!uÓõ©ÕÜ­JjAx”†èÁui–,L‘n%æwŠØÌžM‡ŸÇÓ‡]Ö7¢bNeRÍò5t ¿¥5’XZ#}¹Ï^Œr)!YÛC¹DINXÍ.ɪú;º zƒºÌÞ£93tˆ©+ï ¿<B€jk›R†ñkQÓ¶Ñ WG e>£)Ýç}k4‘Aa°…W^³!Þ¶Æ…‘Ï9T¿R˜d¡‚ý°ŒOÔÓJ}…I¤:íÕB–i¤ ZPÀU!t¿–üqîg^cÌÊNŸ—aªŒ>–Ù!3lÅjpºUç#Ѧ+V²K-Ç“Ö4‹#UP‡y ú–ÝžÉ ýfÒ( ·Mª{³Ø ´^ECóçØí|c¤ÃŽ'”Y+FK-ÃXnã ›;FMEï|?{ˆÍí]¸{kîMG‡ÖÃÁY½±~Ô­Û@‰ËÍ #d3âIV9·p©ËRÍZßAÑÅ-0¶ú7‹£ «êªT6ÒPåm}±pŒÉ#(n†òÑT‘ç‘ûÃÑè´)Õ¹·’è9"Èý3‡ r˜\’‡«ƒ&­´XPÉí¦FŒPÝ««šmPê˜åÍ$iLe`=e£ˆk£:¹«Û3øþkýbmÇ)ü¾Û ©Ðûåè™"&û€¯ÍÂÂêæõ-Çíî®ýbk}»Å÷ÎÂÝ¡3V2ó‚îžj5jQBÕ"c%KuzZÞÌÂŽÓ7¥Û|üüï’n óäç0Ÿ#S¤iBTnû±,Uò—+t4‹ÇŠš%ÅÃ]`UêôéŠåTÂ0Gú^–-T‚i5ê&'³…’O3P1ƒÖ‘ (þýn"‘ pw³”Kvt³f§óXó“ïC’ärŸ5#Ö/ÃáädºÛ¨·ÔxÎÁTu­‚¹¹ôe1ž¨üP…>ê7Ð^f;tðäO¯ÌáódƒeÅ’â" ùSK7¼Ä ý·åêéf˜‘žÀ"ɧ„ Ïã«ñûXø½9~ï~φß÷;ÞoÇÓW¿H!²sˆšÈkþdˆò/ÿb¬Þ bL¡ÇmDb“ު䲪‡ ™²°É3~|| uÎÌ\‚Z1.pñ$ÃeJªáQÿe-K:*ëqTŽ`0ðÃ[çÄŠºä߮׳Ýä !zgp:{b@tµÀfh$CæÐ&åvT«ÒÕ4õÁ¼Ûy;3cl˜³MÃ¥šéýuÕžÏk²‡ž“i_~Åñ _†•næøÑàwäîÒ=Zç{›rwû®{}Š×_Ž´w‘õ nw—z:TYLzȨ= Ã`ÄåC&éGu—÷º\Ãço¿†ÆUe•:³¦5NMõ6Ueý+rp‰F³]|¤BD­„ s5dÏwžˆAãRD ®ç êj iNsÿëò¿ö,ŠÖÃ"är´„:âADógjôN·:ž:ä‰,#YõŸÅÔ›äv^<ç±(ÓBÚ«B@ÐÌdCÉó@þ³-S.7«³‹Fe–ý¡$}dW…,h~ƒgObâ.bÐ0â²Þ[ûçÇÊ6ƒ»¿:‘°Õ ÙžîM€|*Y‘¨Ì‡­ x6ñ;ÂrtE}ËÏv»5+/ãÍ>ÞÝñ‡Ç#›I ôÜtÉðRRÊŸ´4Í/¦l¦2³;ÕYV¬¥–ÌêîQúžâ¹½6i–¦ Ìn¶’k þîG©@x3¾»ôó¾õ³¹’_M<°f5`"d]càì->Ú¦Qñ)¾ ‹4TÆÃÚ¦‘-m¢¹LRÈø2óF8¾_ ÌøwëCDGvM`‹ ýð8Òê˜ÉÓ!þê”QœPf”)K2 ¶j/ê–U¯ÌLš¾/Ge-3Ãý‡P »É¨U›±ÂÈB¥¡îÀÞ4Bz×UŠéÉ#õ†‚Æçp,1­hj©çg{ÊÆ ¨//06‹+ëènfÓͨÕÍçÓð¬ Ý€¡«m @•òÎÂJHyV&"íÁ3Týk±R1›èXrfjʈBN#)ÜÁze)a‡–x­:˜t"‹ë¬œ®¤cñýÎ*°I [÷Y–|rÕ‡2Ïï9$ÀË:™:c€+ÌfÉMQYHSâi´"­×+a.âR5‘l£0FˆUùà7]ãJ§ì`l,Eš¯8!­ôH€W¿(trÅë”×0 ×å^{ø¯+#]J–‡C ® $ž•ªeõA/m\ÓÝ¿±–‡ÄÂWM}KIŸzl¥¨ÌÕ³…6K¾b¹o"í=¯håÁ*¦ =¹uè ñ¸†µspQ¨šÙ4)ò0”m¸Ýœì³n=øØè¹5¤F‡ÝYsÇD¬±Š‚Öl–Ù¨ kQ»¯Ç­îà»{h'½ž‡ÆÎKsâM޵7æKýŽ1¹Ag^èH;“—$ ¨cÊ ä-)c¥ç’&”ª9‘”fⳜƒgi,˜-ÀÉ•xV¿nY~¥(\4ojf=Í´œêé ×°Ù÷E27ùKDgb´]0JI¬ã÷ì(6D¦>ÔiÙÿÁåo³'¥LA RW=–Å )ãa¦Åì+ÍUœ^RbC½è'îéá¤Ò²À§da¹ä@'‘ ‡%œaVÞÂúÂÞƒ½«³xë–>~ü[´E«–r=àŒ|X)Ñ3Ã8÷CØL–à¢èÁK‰¼¬egø¯Ë¹=‘%MãçI3¢™SÒfSÚÜ㥚ÂMs74¸]G7Çy‡¼ƒ3Ø•’ùZK5ÈÞ¶$¬Åd«áfRŒ@$ÙÜÀS‹f@X.­’!60D¡3·‘æ…(EÅLšié5Ót¡VÂ?½õÅy‚&…-¦FùŒÆršVèÃÎ"½6,`KjöUKײàª:ýIprÙ–½dF“唽šA´HÓ­1KOÔ³î/WC£ÅTÐá\–»Xpa÷ë#×À{èt1 ê²A÷z ë+qÃÍ&z»¬i³ºÑCVceš-EµVI};™›&0ŽqØøm£²ú¡ºº™F/¨¸˜¯¿F;Df“ËZEeÅì~Q=š  ecŽÆÐH>XOýÓ-øUtºªm‘Õ̤êÆ4 í㣓–ðù`–ÉɨÜ1õ5PœëÌZ¦óž˜u˜§G ­0{Õ„‹’ZÑãÈæ€Ð[Óƒú „ä&O«v@õ–j]g*ÿ=‘IÓ(|1VÄMŠ^$,¹&Áj•ËëEïd! ‘GH®û‡¥÷­ÍÒVZÀ%ÏŽNŸ±€ÀŠ*ÍB×Á „ëÙ„!Ù¥ µ{{<KtWVBÜ ¨'±he©àJ+D©ÕSíÌ0 ù° øñ¼ÜTR@à©}%•%œÅoÍ®.©`"ù…H†VÓÑËÖòŽ?LCö–<»³%Õ¯+Õp¡ìJ·שÑ<'ÍæŸ­ÈÊ6É›ý°‚x˜Q [<ÈAk’¯žPû`ã­ŒŒåV ÐUªTßžçhAú¦j›ŒLµb‚ÂþzLhHƒ1JCŽ-›ÚÃ'!IʦÕe4*k7÷2¦^¿–*|XÚgëv)æ1Š7¾§6b;Þ›…9¥¾¹á²Àwÿbˆ%yª&vóÑñ‚?á¡BѲÕ0ŽJa©7‹‰xž-O¯•ç8h‚¿y=?¨˜•B-§hKÅÞ=1N‹n)éÉl˜ðTGVa±\ ‡Öðfö_¥§˜.ÙÙÛ5pÌÐÌ˜Š F°-^“ÊóÖç_fÄØM€Kû©‡ë]BèàÑ'ml[cm™šß5‹ú*¡âig¥†=É Kv7j¡vyAºü®#©n³²(¦ð² Ûuæ¥_×-f×haS8uÀj@ƈ–¿S#ø­,çÔbQ­;‹ ‘9ÞêIP’ `M9ˆåñ­ ùTmݲ1ËMy¢ƒ­.ø„a‹aÌëJ‰4×É@n×áú`¼’bÚ£¶B¤Œ%ø¢î ‚I÷$9_?]0<¿Ðßë–áPž@qŠd¿¢é¼Z¹»'q¬g3YOÝV\I ­äÚf‹"ó³Þ®À‡ÅÕÐìx¾^bzlv`)¼ Åâa“áˆÈ<Ï#<^¤PãÊh j -“’-1tµš)GK@˜m¦óœLÉ E“g¨HV´¨÷f=ÕiÀ>•÷¤ æåÛ<äbÍg™¢[Û«œ±!ÇfGê´À8ÓÊn—Ñ+¦ü7¿3££–µ8!|+ž‘ -Ïß¶ü|ìxc¶Bpcó`Εq×ÕfêቸQÈÀݧD¡]Ž*vR+™š X>ÜÝUDrÜÒÚ´ËA_Âä"ab¼_7¼_9׆ ùÆ-¬ì@jjò{y­ÆÏ†`Àt£)©­YZA¢P Is8è´˜$1dHÖu¡Ù'äÅC¿'á%BV+(¢33bä–`¤ÀÄR‹›YpÎP‹caZ²N¹®‡Þ\/—¡–ÀMžB[Q3c½-1êí)øÀ„tÈp¢å5ÒƒeG´ÍÌÆ±š=¸ ÍÇ™ší“ö¥2Ï„OÜŠšIºfñšgz»€{Cà‚A?¹˜¦C³P7 MEºòŸ¼Hƒ¦ ÕSMÍ©_KÀiîÙÌ'ªWœºˆ›eød9/!éB4-qð‘Eï‘ß\û‰¬+íîœMDtv¶Š¤´ÏFèû±JâhÁ-€Ç0¦fFÀL¿xVF-%F‡¯\OËœ.\¡ÞCýT½xM z:Yx÷WnÑBÌ-晑T5!Ùçº xˆ*N$[5½ÆP¨ØTEíER˜/öusˆ×ß ª°®³ù1+†@§¨j{D뢠H,¥"Áx¨<ùÞlàM•gqà1ó|©Ü½®eËß››Ìd#á0Œ®IÀˆo¨Vú”u•bW_ó_Üj¥ÂRîG!9,D›»z6xÕ*É»& íBÜÍᲬóÈ0!dXV\WyAÔŒž‚ZÔ*,å(Îú!w›ŒNéy2!N;›\äðÜ<~6g!@Gñ"f ÄÓÈ_dZÏ —%cØë{Kl 86s»Ð‹ ØVðЪ…¦x'›  ÇÁq£ØÚ& Š—!ÉÍ0‰ª–/ V˜c=åæÓœXÜòfÑbZ!ªˆÉã¤5æCô¢õ͸ àâÞ⦋ˆ¶~Û®dõ¥”AZ\€É÷‘<@I’‡hà GHêÀiF/‰y9†äQÁZSc[Ápt—ÖÉs,«¢0ZÂê“9³5‹  ²jc™øÕ¬>V£þ4ÐCÕª‚)µë‡wí"kZs ó Ò¼5enylãŠÊRT'ô Ÿ7&3ƒ ö·YnR“•Sµ*Î/Ýs†ƒUðTq=u*ÖÜD1¹¿ìµt½Rgiˆgk+|1YñÄÆ”¾ï-F/uêk¤‹Âæq%Ä#ã½{I¨W#ø*JøðCí‘ŧEæ~oçŽÑ-ȰÂBÏsÄ, 1ñJ[¿7Œ““U/5sõ/Am‹l ¸LpOŽ—àgר5Sy‰›zãýb9Øy»‘°Ž^}8E,Ø‘TŽdãj©pEù£Kts°ŒeÂ0²•5‡Ñ>¼˜Í*©&ɳ¸£«‰%‰9g*jQà|ð¼ñZäîjC‹óÂn%y¹NDÕ_ð[_†Ò(Å߉fh'ÝÎfeîc‰˜ð÷Ù: +f^9Oz°híÔ½äÔRÔ4>„¦É5%S*ðÁ(ÚEDtÕE0²Àâ§ü‚yAsÏOɘÚÊ´Â ´2;IÍ£lx‘g¹+µ€ åî"°[þñìºl$±at' &"öj_‚¡õ-vyL“j™ÃEàMÞ3¿øUùÉO¶”ǰp¼)ÐØÎI‘^Í ]]f<¸„âX­DýPÒþÉŽ»WƒíUù6 ‹€Þ8Z²¶håÝĤ·([ÁèÏ»%¢‹( U鎓oâ“ůiåÍÕY;uÖ\µZ'ÍÕoU´J§|E~g,«&ˆ«œ¾.È»MŠ»¾»<ú¼žÿÏúÉ(r5—(!Ï’€D âY­iê@&YC§+—ùñ_i¦¡úÒ¼°· {ú݃^ßi4fÒ\‹®×â„Ób.ø8-¦/nˆ/f‡˜‹PN‹éík?-¦÷_Ãi1|œ3Z‰.x®þ±uꈚg ®íG¹éÚ¦úÎÌ.¿éÎ|õ•éI„²²¥úß@Rõ8öpäwéÔ×5ñsÒÏI#þ™-hÄ×,Mnó`%,¦SB!¯*pEù´¤rÿ©ftMd££òˆ|Õÿ}²ÑZ‚ðfOÔ¨&äˆâç ˜FøŽªìg}~0ÝØ3ga‡h1åµ ‹g̈ ¹>ûÓ=—'ŽÐqUóUU„*¯%¡â&Δ·%Éî{–<ɆD µ˜‡NiXÂÅîzL™gaÇ£YwY§iMqØšXRë¬&]~æÆ‚ó”¹vÑ횤%ÃÈÝyüb‰"„;ðDš œ‰"ªæ‰8@¾*7uoCí}³4žCôú|5aI¸‹ðÙE½·w·êvf[F·(YΦøÒ¿bK¥ye†æ#‘¸VÐd«e îcºVÑz46¯ëÑE—XùQ<®† ™c]?hÔo*àÞ%žG'€t0 zwdu’À©ÇÍØ ¶â½7V'jdñ×€(pŠÒÕjy¼3ÇgOÊÔ#’5Ô“2˜:]È• ¬wO·Óf§ î„93²U&î“uëš%%kDÕ/Ú6˜¡®©ÄM¢°ZÐ ˜•¤Z.âƒu@Çäpn¼÷ª£ElTÎ}¶Yh â~ˆ • õ§L] dœa?¶ˆ{Ž4›[Ñíª|"7­w–-’ÐKk8^“Ô5´´5Æ2¤bFùhðªÑâ€GÑiHÍ0\~½2ŸNC˜Oµü98$jv‘öÅR®Ý9'ÞþΡº{ünΪ.ôvlÜ,Ó/†§–ÉšîΛü&YŽ®êÐEf¶¿Óü¥ûýh ¬Ùí;¼ÛéêaÜ?qï­kúú£®†fì€]³­cÐL^6‚çÇRxç™gP¢€4·÷м²çf+ÜH¡O7CäåMÉŽ¼ØHã ðCÒ:ivRr/ÄUsøT=଑£na ~"$GÓSô¦†ÿ ƒk&àÝ>Ú–ƒ!nÒXìÍ‚ZE¹<Ä|d0-§‚›i\r¬Uó&ð —7Ýá…D1¶p6y°xÌÏÑãªßÛÅ žÈÊ&E š¶s#¨Gœê‚†E_Hâ‚IÜC¤·÷;ûÂPïg ¶ð@é²¶~‚° äîØÝÓ~ï^.ÿlìÄ||üü¹¬f®E…£èǸX~NÔ/ÊVZ{Š––À¯#’Ç1ßÃÉ=ZŒ`yãÄñ±)C,Ž{Hfö!ÊWÏy,¡°¼2¦4ƒ23 6• üŸ“¬ïÔ±¸šŽÏê-“‰†‹Àƒ]]Ø“„‰šÚË-hLjŠn~ÿmïŒÄy*w•~$Ú–þPgv¬Äyx/s ò7¼ˆtäíH03td×Q´Ö»e·êÙË&£ƒfά€³¸±”oK2³~³ÂPÚR°Mgzé­‡apÊ9ò:¥AHx_ªLj@öÕQ^¹d­í¥3«ƒÁUÆ4¤>|‡e0ìL™N`5¶C=ÆSØtAWÍ: [ºvÀ¨½þÎ6|x°=¿ªQ¡K૎b’à"b_ÓQ '.D¤†1A£¨™p´ëª^–¾hôtê0·MŽ-SjbŠ"ÈbV€½*òÿ`Òœ«Õ› º„HZ-ÀÈH€ìêÁáU#´[ (¤µDÇÐÚdkÝèȈYÀ$,žLÃI:Ì™jã4Ïc.œ)2{fõjœ+Õ^úd7Ÿu|ð bžÛ¶ÐnÕîí.puDîuv4>¸8rqÕÃîç'Ûïzty|¢…”w÷g“Õ ‰øF«åv‰H†'[èâ‡Ñ)í0'‹Ã3 ÜСٛVš/prÒà ›ÉZ©Ô(ðÎÇÚ{&¼v4¼Í~¨Ã!—@é;wÞ¸Zü¯JSd½¬-åÀÔñÀc{Þ*Ýu¥3l«Áàª5âvÖN`ß4±Ü±.¡„ ;¶æ¥L6`¡Ó´-!˜€Ç\ÌW&Ë ¸úû 01C)3Ÿa@®ëyõNœÇ:‡ºG£ûuÖdCdÅüèPáq°‡¦Âu^äÕ°1‘Tâ®ΚXˆÀÖ)T3l@€Ýˆ­dè[=ôjË«¿N™ K÷αáß¶NS ú~/:[*ËOÒJµ`0ÓðHœàCÓEØL>Øš~x¸™d5«[ Õ[­Ô£t¨G•õÊ— ­D!0=Âô­ÙIáFä<í3Vâ8l-IÃ\׆UÙ^eC€J_l¾ÌàÆ,ìpç,ÐC¢¸‘kðN±:87BÛ­>¨„h®Óp1©@i´„Eip\5ºKÂÅÎ#‘ÂÆ›Ðçw_âFÛÔ hbhŒOì'ç×uŠ[¶k6XÆîé¶g ÐöÌ&ÏÖ¬éy*¼Ll¢½¶´MÁq9pÎàæò«ÃÕ©Ààk›92Ïkj@ïØ{]óÍênÇ ÇÂð[ŰDì‹çb¸ÈÛI*šWØÎ<¡ Õ:0\R6OÞ <Î*¬a³ÜŒ©%_‡¡š¤,Æ-"÷¡ôjga +Ð:…ξ-ùáðb‚8ždg é;ÞÙêB)Ç¡×g©Áª#ÞMiù°‰·²6ta;Së-¢8è4ÌK@q^¼zëš8K¿b’ͱ>+Fa9R5&‹/O¼Åb#Õ.<”ì¬6;«î¶`ÍyëaÁíft×ß-Ïq¬Nà áÓ{äU ?Ú”™Õ4M•$+Iä^ê9£¤rX†08]# …V̇+pÎ¥Zj ’]0eÔºz¶Î¥¬¦þ|T*&AHq‰lVølõ1ÖAan—¹JØ© Á€âá Ä’ÔãVÒÙ±39P“é–À,ƒúã+0ñDÉ™[=D;£§èÆam\Ê`že}m°.¬FP¢P²¡­l‘ÅÃËŒaI%YXG|›kÙ6ñë¥8töΖ6ËÑ.iÝAe6a’ÓjwrÆÜHËÜ•}å²À˜AY}e¤p€ÂÛj<ê-ì0|ì+Û4),FÉk°üùóX8ÃýU‹ìEJöÃSðP&3=.-†-+Ár‚ð0lFäŽÊNäã 8k«¡tRðà`É+³œ–¶aQB¤bÌ ¾hß!šeGÙÇáå°e§B{¼±Ú^n/Ú8žj^20^‰jš%i¬( {?Ì+»˜-ðdkS‰h«å—¢Úí>lc8Á}çšÉÚ¢PuX.–‰v}V—‚‰nFTê@¥N%L<£ÅÐO p¿c†¢e†õ‘ZÓâI¸s%"à&ܹK² 9X—¨sXã yËe^úcõg–%Ð#h #gh xõÆD(ÀúÆB,]·D­œ2zöäPXðè”ô² ÛNðmߌCIšwÜ÷­dË&dmÉÊŒPW@Ö+kö˜¥‘±$SÁT:–¤sxpü–ó†.mÛto}Vú GJ>€7à&åèv&Fʬ̤ág½¹”“´ØÉÆ&ŽdpJjÍŠ™'%fÆÚ3ê†æ„M4ø‡wÐ8ÚFì}³«ƒ3Üw-yÁyV×øh‡½UcôÕ„bÚ)MÃ!¾>Ù˜¦âV슦«ÛèÜè.à ÏNúƒ¹¶°¬Õ(ï¡C°êô­gÖŠÈ0!ÍË KÊtõ² Á„¸('ðlò~¯É´TTIc×n˜ƒ Ô -n= k<;mv=“ôzX.Íb.# Ï[Wî°m¥7E±Ô„â±Mß‚®ŽF ué6[dÎ,ÁPž'y°›žtƒ›èÑ©#—uMëý§Møð`sìj«×=®…÷ä·®^'Ro]ïu¡ÄÃÂXF'ª™„$B¶Þ£^Å—“`[˜ýÂá&åuzo66heKÚö.³E¤sN°%‚îë z¸Åægߵε-‡üY¦¢f˜ª°8‡³Kô0ôM¢6Ç¡¡)ø ÔRYÝSšëâ±—é\Mï€÷^]MnÌÇ@Û±â‚uuv°j“™KF!Í}ìr'pr¥…+ÁžR¬×Ë>l#8ÁwM'sÿ/e:t fó¸3Ò°Æ4‰qò7&⦺yH²œkô<Z|HöœŠg8ÓÊh·î7I¿ ‚ûG.oLÑÙiWoNäú Æ03Ç+â¶Î6î`~v~x“áœaDæ0¹]‰×¬íò¸pËÇÝÙƒõüþ«EAß+Ne´n“ÚÕZäA#6E4¶úÃ4oˆ/ŽEXkºHÑñ¦ïEDwÕCÁÇÑ”"Ø=[vsæaÙf•¥½l”•=‰L…*ÎuL~¹àQµܲ'àŒ§Ç(ŒèÕHNózf L"˜vENðÇë밀ų8\ü÷=¨ºïBW£[õèh:™Ì²H·¯|¯ô°¬ò؇/Jÿ²Fˆ2l4¬P‰Ë0“—ç Ó‚¬0 À™ Ö#}Ðô(ÑÓûjÝ{쵪GÐ`çõWkÅe³p±Ÿ —¾îßuR»”# Ô+m™©$]Ó Œµ`ૺ ©xÒŸ ÎóæÅØm뜿![5'ñ«ØÒÎñ&+¶Ê”ÇâüîÁ¨uvYÎ^cEÁrAX~ž§"®HÐu8;œ¯sܳ ÔáX £bÌûciM&!«ñ 軯|ç1˜ ¾Ô<2æu²ÝÛQ­+Üã×ññKñIxä¬Ýüˆ„¸>ŒlV<íµHæè#÷ÙcʲéG7oúÖ,ö9 JÃ"‚h»}>t7:¬xeT·¡·ØíZ<>¶ëA¨ÇP»‘ÃRªj”ìæ.º¤»A2Ïcv4ŒT›^îC]ÔÃß–t¶ÐæÓµ‚²ìãõ0“Õzwçð'¯é~F+Äy´Šzzç/–"è{¢[ŠëO³êX>Þ›æ«XG1Q›ÝG[ÎôÍË®€¥Kå"˜éÞˆ…Hc²¸í{Ä;eÀÁþw+nÁÎç y$Í¢é6‡ƒ‰èÌÌ ôìSSqEàÍ„+¦‰e"î¬Í³Y¶Vâ îã6hN’=¼ûüdšå$+Qó-ðòF ܧŠœ’ ®u`i@×ÃÅbÍa<¢w ­z´]åÏóŠ ²õKÁ|üY{°Å)ˆ@xþ¯蛞^˜úI™m…²‡ ¦ù’†7j[­£L‹ÆYVªâÐq`/Ô#.¿W̳£Þ i53]³jX`*«Ç¯b/ŠmÐJ­N=Ø*Ø ÷õˆ,ùygo>Ø]ý-ÉVÂ÷e¹ï¨"£ËlÐ!¬R¸e »…¬¬÷ùG @Ò¬M’+Hk¨F rKµ)uÄf<„qÕ«o uUìaK'‚DÁd‘ܦ•Ì´È¬Š‹¢*ÌȆ4Lƒ6?4ÀYéœË•EnDSV«¯\:š®ù¹Õ{Ù†öaåínmÍäÝÝù‰Ÿ^[¶öÍYNœ]>zbvÍ/~2=zÕ0ó€ï,í€U^™Ž¸j¿+3k‰­Ü·¢\4OÉCþIô¹®~¬¬VSóî9õi‰LäݶC££tÉDœ£÷ ÁEŒnpb5¯l‚·Ô?ß“dsÏNdzÂþ …Xw02@V+~!½¬¼#^©äbH|ii§±‰ºkôëboàÓbçÃjl #Õ‰Ïkêìt‹Ù×õÐ4‚k5E¾I5mm]J)¬Ôn|ƒï«Ž$Í#ž&†ì]Qn+€Ç›å»’nŸœY9Òù·?ýNÁkËfcá­LÖ‡§¯ÎKS-VMÓM<„žZHÀ€<ßl¶*ÜÖ8Eó-B5ä(N*òhX¼¸Ê‚£àR1=Óp…ªXALâuaœañ°’O„1}çÐdïç¶Í¶¡+ÿ‹,þÊŒHe§ê9LÝOiÒY?t[1¤žÐ‚F§å•ĵÏ–ý„pÄ/ËŠ”‰·ÔÇ ¼$5Mžà`Y—Žq‰u‡û*½j`¨i£gËZ]˯¬¼S\,¬‡Ì*epfS• €Í+›#%uµ¢ÊѶ$y¡ØÃ‹\¤`¥yóØÌüX½õy%뎙ÞÚù0&I¶ ‹ÓKº0}>4¦EViµ–#Q.¤ ¸&û^@¤Ym^ÅiƒÍ› `Ѳš 9jÍ•µ¤å,]ß#t1„iÍ]•gFš¤A“³S$Ñ)¬Ø“ÝÎv†—æ˜/xD3’°âatòá¨6!Þ<=9ßVeZ‚â>þ(`‚°Žêõ0‹;óe ÙÜ16¸ñ#RÇ@òf¦Ç¢2’¡ÃáQàP äjõ5½qqE_ãb‹û¿|÷unŒµl\c¸feÚÛ¹˜´¹JD¨/2n^¬à˃›Ua‚…‰õ$pRƒ6T4ÍÇBl4Æ\XµÃþ:wàp”Ü.P.¸¹è2U°y‰ö¦Ê»ß¡¯Z Ïfóˆ[ „¼•N¤ô´BǽXW&}ZVS„lé²è[´+°ÐŽGÁÊ€ß9>«ße³[øl[†üÿÚ»º+’äÊŒ-?Œ„dÉò{½Ì $•Ÿ•ù°C¯g4ë; ´öhµ]š;M·?ti`ù¿–ŸýœçDd}Ýên˜†µ´Ú`!ºò+*23"+㜨WÏ.Y)—¶¹ž¼ÜGŽzïìd&G¡#!.€È¥Dâ%7‚#¹YXz î†è§Ãñeðv¬ÈŽÐv®s †E;}=„‰½¯¡u×Gð$jz°š*×oë1‡Õ]¾®´¦z»\I Fª´jFåôÕú\žxf7’K‹äpÌ#±œXi7©(Â×#!á4²²Ôp‡hýƒ|;“ƒ^˜‡ØÈ[ú”“p)ïó!ÂðBXœ¦E± ¼ncJÝÖqMå—½*T5àÐÖÇ‘|[-BoQŒ*I¹†£Ö2bã÷º6ÈAT®ø!æŠÑpáTgÙ-ëŒ,5A){Iü ¡QX¤ÑûI©kUx0›0Ów¼?ÁVuÞ0pŽCÜl>´šyˤ‰>etTÚî2AOî”&‚Ó-»Ϧ9š–éÏÈCEmˆ䨥 0èÕû!BG n˜ußó‡TÉý¬R•B>#’ñOàýy77(©qžzúkfž !§RM'WyÁª ^HbV³WVr&ÀÖȯ.ÒB€¬¢ ³ë3 Q öÈ3JõÂOõ³µf°¢7Ãeøáf8‚Iu_xd×U’n¯NIhÆ/­'³^€ TðwxE¿/Æñ >5ïnËzQÂIÕ¹²v—1TõêWÞd…is±ã¥ OÇ5óÞÁðí¯«¼\¼ âjÍâ!à>‘qfùUÔŠ÷_³V B£V'«£/*BÄ Qqñû®I»}÷,°7_§äý'cÚtT¶~ìô.Ùm×ö8‹ã¬V¬»‹ö¾×µ¾î==|&“½Îbç/þ¦Óÿ:íÝdZ÷uïâä×λ§7\ËíÇ¡´W´iEZO›¢çA=ˆÊeò´JÞ“ (ˆkEESðLA WpÜ _#~¦Ç Cå LÁ]ò“¹Ü÷ܨå%‘–^]RëªÒõ?¥-øÚçíÃ÷ÖNÑ·DZzÞÞH~Cþèþv^mw{ªör£¬?¾ä[½\Þw2/&¢º´²µù£ƒ|ë/<ÓÇû#Ø7£èF¨j¤a"†*_ÍäƒdÄRæ"!zQ¶ó½~\&Z»©Ùù4»ÈXdfz6-›Þ’\kXíÕùIMÐÈ͵žÂ[¯2Vùj&Ÿt*öä價 |æXaÜ%+Ï’|hq¾"a™1=—fy®•{p*_ÍäCgp/w6zW¤pÉJµ$Z»©)…Œ4ÈÅn• ‡Ùã½W¢ûj•¯fò4úìT1…öE£Ò¿ž#'ôÄ€ÕDZ÷Éd§ hºSŒ–”QéËäCrkçcYr§cô s†hâˆD+ßyõ™¤†ÆXcU~îl(çÜì±R”`žx%Fï}¡NOe!SÐ*°"ûЇ{òÕŒèÆÈ›2/ËEÝV ý>|C9'öÆ÷Kµ˜’ý G¯Wß”Ág_7 8­Ùf^tÝéõ¾jÄîUV‹÷°§jfÍ»§j>¡·3{U§¶Þ­©ЀgëH×È;ñf¦k+˜\s:2_”Ïu!c¢kÄ]r)²ªš rÜS5ag„kiPuÒ«‹º1(|4óSÛBOÝ Ñå h’VŒŒªè%Óf®h’ã†0U4˜½›ê,O¡‹{z¦<Æ==cÙéocUEãLU¯g÷ŠW¯§Ô#UƒLÙ»©¦cÍ)z_77²é¡ºéò1¨z´| ª-ƒª'ËÇHÓÃò1hzX=&š­MV‘¦‡åcÐôhùT=]@zUÖ^Õ£åc_7Ÿà&KìþN#÷w¹¿M¹˜?8œ˜ØàØû[püæ^µénÉž÷|¾ áH— †isƒIÎíLê™['£N F“Ç–ö÷í…ÒsÑ{Ss! ÝÜ\bë91—úìÄ\ú TsµÜÜ\Ò‡Ÿ®ÇŸðòÍ_/Ç/òq¬_ñ+‡g° §~#ê¼L^ÛÒ€—Sâ˜Q¿bºûà ˜l¥ÕsJ&ÕÓq|^ÿcm±•K@x±‚(jvÁuz¹ü%&Rq²Š<Ž÷j×àöÙJŸLÉJЧ‰ê «Ÿ ÿX?ɹì*²ÞîrO¤eåúÁÛúµÜ¥¤—5+ÉÚ ~…¹ƒíYèáˆ53¾"àšxðÁ ôµIègpV-(º¨Wûëå6­V ®oçÕ iªµ 3ÃÙ«ö@–8ËNÂõ’ÑIÛÕŒÏJf—RŸÙ $KÿUЛJY„°­÷:ô¾2bÁõ´­Õxµ»ÔC<¤NÎÔR¬múÊå Ž$MEË©ô/Å_ÏÛ^Ó0}o{¶Él§~sxøæäÉÙÅúâøì´¹ƒ”„;s·ù¯g•9²z“•>ObŒÜ{õâoö‚Y·ñõ«Q…á–wÛωÏOy$mfj^¨ av <÷¶Þ)ª@BmMeÌH.tú,A{EU2ÊCa§áÔW£áý[Â_?ø%ÆLÜÇ[måÆû@?ªm´ýg~6nëˆð™ìÇþ.g¨Úû¾¢~ü>꥙Ôõî´¯XS¹•ô%Ũæ_îžLÀúÔÄG[€Üw‰¶æòÚ;Dz•ª³:×§%)–éuì†Nxry\¿½q ‘Ðæ‘|5“s²ú4¾I¾ •>½jw©;†œÄ¿Z¡‰§4X×…7ˆ·Bú˜Ù%^ëùe1ïêÎúÜ{¾2ckFŸ‹ {>Çٱ⚊ß/mGÀJ™0éâXsv”Ÿ4<ÛeeU ÍID6êÇÛ7åÏGÏÙ^£þæÅÙóMÚ֧ë£Í®y´{±Ùݽî‡üô`½ÝíÖç/õÑgggÛMlÎ/šo·ë‹æÁÞmJÏï°€iQâÑÛõöÁuu·AW.u-—°^yÙ€Î/¤®æÉÙ›Ó͵EB[[}zÈ×ŧ¤®úìïÎŽšg»õá«×KÏÖ§¾-M5«ÍúçÙCÚ¯ñ£«õ‹÷Ïß]UÛcüõññéô©kúäÓ‹ÝúÝóÍn÷þªúž½;>}µ-?»XïD;RWyü›ÝÅ£Ób«/'~Xï^mvµÊågž­Ï7»Í‹æ©Ôu±;{µ¹ºÄ7»ÝÙ»«‘º¯Ëdxñ5]xÞ7©ómôÔü=¾y^T°:>ݼ¾¼Ìð’Þì6Ûá9ã%O?9;ß4î6÷uæ–Ù>·Ÿa ØϘ僵â_¦y0a}7ú½¦üˆšþOùï^–ßÜ•®ÑÇ÷®Ÿ% sž::¢Hkˆ'•ØWœPÒµbwïþÿ=y1ú“J·“n¨Ÿºó:oºnÚ²¤ã/‘ú¯ü7(y8.›òû–}¼_vQþQ»þy»]×’%•GU9?»âo@€œvÞ·Ù`¢^ dø kþõÙ•>¬owDZþÂXº¹mŠç Gÿ¸‡«nømôÜ+ÃÆyG1·Ï2ŠÉú»ð"ìíµÑn‘5Ì;[çhû×]i.ÙF9Ž~›¾[gaQaà/×ò·ý.ÿÚæ¿BÚïšÛ—õKHóyÛ¶³¡—Ë/Ó¶o›$0Ÿ«yx=êï¨îÙ,ZÇïÏ=üÁ…’ÖKÓQZõ¿ÚÏØöàªjÛMÂè˯Ì_öÿc–,y(tÊáôèœo&»qxÐÔÿövŽÁ ±á¯×ãeýo©ciè—vÆôŽÂgêÌàð-uh¤(Y qbÈ¿–y^º×~n]õ®.ÜE¹Iûmèó«>ð¢ÒÚ©ÖrP¾íìå[ˆÉQ™·‹Ç…Éè­îí¡ÏO=.óÉÅ»|ø¥1G;û·›ýÛW}Ѓ”~õÔÐ?‘%]5 ‰-ûfKÄ|<݃y‰ü ÷#áò™î¯6†>Kc1¢ê‰6ë;×½ai{ìÓ˜ÞãõvSZ’S¶ÇχӶ;zR~þº¸–8jüó]½½.ÍÎÅk™Vç1Nèîü¶m~(¿,¿ÿã·íø¹ñIÞì¹²)ë“85Ýs$&S+ss\Ø 4¶ó¡ZZŽa¿³ÞàÔœ_ó5ª&Ì;[At¤‡’‚½¢³dBx;ië þ%£@;Ñ0° h5(]*  `pV |€}LP­<þoR_–Ž«ÓcêŠu¤’~¤)˜ñ›)ê¬h¯Oò½¸vIû"ŒîJï.Ë(/¤jm>ÔM«0%'ê#Ź{ò¸®€ÁyÔå&•9¹›d8ª9+]’×h®¬G(«•¥ÍwR^•œ{]‡i©(ðÍ×Ú: s©2Ÿ«ñö¶­U©Pî‘`n\׾ʒ´Z_¾|»×ºd·R¨ÚTqéJ]©Õ~ªzXæ»mî<Ü®_ý[óŸ/q~6Låa²><Âä}ø°Ô4}xTËÁËÝÙÉõåëc£’OŠcó¼ø×ퟫeëºóð%ëùq³Ýž½k~Ó<Ú­O6Í“õ‹cœ ^SíeÅÐʇ»ãÃWw'ÈÕöçæ|x”ÅÎN.ëêñ‡•žfáÕfývóº¹'¦—V1Žõ'ÕÍ˳Òâ–Ÿàƒ:Ô?Œ¢I¿]\ë¼ÈFôÝîìÍù÷§?Ÿ÷ɲ=n7§/Jõõ4žÿl¤H‘®ŽßVáýõñùÝë«\Þz›éú£¾™Þ[üF]Ëføá*¿,Žk.ÿyßÐ%e?¤Ù…ƒ˜fñG}cû%†v–=¯‹ðéæâÍùØfVë÷›²*ÍdZv¹165²Ó–eyõœž`yN÷êtï.=¿Çëþ£ù‰k«ÙÉöT?Ã7¿/ã/[ø¤éM®*:Ž–g½ЍKCö°Ä¼¡yŠÄ8©Õ×-Û®Hr”eÈÄ7ι±±*²VéFä¿a[`§—ϹŒ¼ì\$štà|'è¥2“q­¸Tï[SJöÉÈðp±4®WaLVe‰Ðáœ7S)h•”±ÔæÊ$>p=ÕñFo—p „+…e¸¾Õ€>X  —¿´Y£¼é®gÊâžÊJe¯o{£hü.åû­³ü6ëòQ$ï¨6æjºNqÕ|D3ŽGŒªÊ|ß⪥Cʺ“&l4Ôœ7ÂñXZ»„ï" roŶ¼ØY* øª)šìî¤2ú÷ ¬M$s€$$‚Þ¬x±Xªuÿ/_á,©I‹ ¥6Ÿû—“ £”@QÔ} ¼É\jCz}é0‡IÞ÷î½MÎuFUVt5±ô_Ší¾»mëgZ—sézfÂ…Ð¥0ÈÕÕ¢¸û8}P;)ìäb)†gZIÁ°;¥§â+iq¤®–•Kö Ç<©CåB†0Æ2a)ìäú¡®¾Ày›Uh$iÕáÎPø5 @€,yË Ý´À(† ;‰V …,™qñš³«ú§°3UæS™IÅti‡Bðz8ÃIc³S͵¹…â+Ї ¤Ÿƒ,~lEÙL™*$•* ´ÞL# QkÊ{â²ÖÕRÓ&ôˆVôÝ‚šùD„-ß$®Ä•ÐÅ"E¬§ßQ»^\:¡”³‰ÝeüpÞ—‚$›b)WÃ1-ðˆ²i‹ÛëFË…. fC ìÁ†!á-5H njA"ü§“û$l1»Ž{LY9Šrp·”¸-âÊ_.Rs’œá`ɤ§O(ÀÀ Œö~»”d;S.vK8v Ëš`$Ô‚È:…õ:]'²!+,Ö=\³‘ç0i±ÍØ!{Ô²:îš`‘|?[ 0e¬ØA»¨OâJ¦,!Kz‹ÍV0o`ë„Òb;€þo±u‚çE!²ì1B7K†ê|Ô•¸–Dä– FщÃJˆ»qœH¦+Áj¹r–5ÙÁøÀr *|ˆ‚Nr°Ç1µÖ¡\ûdÏ‘´„Ê˾)c!¸1ö8ü4Yx;ÜâZ€sÇ6yŸp»Ð]î^,N×Å"Æ—«ì|TÜ”n'g0§áÊØ„ì øc`{mNi°4£ ‰Ý±à&¾€sô’ص^ÆÐ ‡$„$ûâ ¢ [Ó’a®[í¤»Áó 0­ 30—@^H'·Ø÷¶äPr—ÔYƒ¦³c³©ÓÁ ÿÜÉê ô»FªBýFIì¶çèe0Åðë|3!$d+'j ›ˆc†Iâ»V-K5@Ë5ÕÓŠš)!:3†/~‰Å6ñr0t[¼Ñ²2D5ÒÉú„›¼Û%­ÆöLÀ,:!ìw¨Ì+Æ…sFHÖÐl‹-Ò ±Œ€ $ô ±>•ňëiÞÆ,Ï#(eÜ‹†®3œ:TîÄXyA›™Nèñ 1Gr€Ód;¡Î@U4G`8À¼_^ ÂËÕEÉE¸Û$W¢Âîðp0!` ãL˃>I1Ч'b=x{‘Ç@ƒáæhq5>̱L¿q¬O«(‹¿hzê0©ZðÈcE÷áãöÞ3á“;q>“×eÁ)R Œ5ˆþ´¡V‘ì›$ce(†*Vè’°>ÒRÚ(AM‰9JUÀ»¶Ùìá¾9¼pÔm•³ s„˜ÉË Á‡'‘w¼ïEÚyxÖ`-Ê”øHƒ cîkê‚#pf–M0gŸÂâñ掊g|@Q¶N¼ó¶õÚJ+¡ÖÎNŸ+P謨»0'ç[2:@d„§, †¶‡ßZ—ž½QO~fv²’“†bTÜÅÁnd3t¸‚hOJÁE˜JB´XY\í·+•Å2¹K/àÞHª$°˜'°zÛWYbP/Fîƒ [q0 ½ YZˆˆIeŒYZ¶Hé&™U¡|,ø@*¥Ðñ=E¸7ò©“ A`m:&VJT !qÉü\4½ÈjÁöWK#5"!ä,\ì÷ B¤r€]ƒ(„™¨?ˆÄ ¬Ôo”ÇÑZ/ 5Ì/#wõ—•Ù‚@Ë[R>#r Qü$sò’ÀM‚!ø©@…ÞñŒŽ±ª€Ã]o†V`± ÉĤQ¼XÁ¸\ü7p„–€ÀfÉiƒ gcL8wǰµì‹ÖpÍ*“S¯¸ÿÅ ¤0uõD9ìž g…¦éd"4÷¹8ºŽüÅ«€n¢C´C*"Ù¸1&lpô Q» z…[ý˜n–¿|e8îK¯{j ˆ¦Ën¡µ„®Æem >(ÄܶÇàr2ð‹üÄöhŠ„aô‡•5Æ!ô!!ÊÞCÄIl_;ò`ƒ@öZÀ¿" )û¨µ[Ç4ß²µXäp$lE0o§1‹GÌfÅ$[„0SÁ xLû#¶4ì}'ÇRìFÐjÏd@`8ø–â˜iŒD..ìQ™I¥«Ò„dd°ËSÁ ÙÞ‰ï‰ðZDÁ0AkYäNEUZÄ^'“&Z!$³Åú 8"s0É+k–#¥‰Asóáíoˆu’t©C} ´H*@—”Œ!Œá6€©‚d…Yæ`u´ƒ“¸óy5䈪RÆ Vå~äHcôI’EP†aùJ"îQ´ãTãíÄÞ*¤¥4gy94ËN2 £wµdÅè¥ *…XP(ä+È4:@­j€ÅW–:Ÿj½£ÛXe%ëhéʪ!60©ŒØµ°[’¬ht\üii†ÉS«¥71 î²¾Ž&1ß ñPÂûá‹ Fm­€­AÈɰ•PŽ{6„äÃd$ÆX‡Ðw˜œ‡gœ<š#CÃh‡£&$°!BÁ(µppqò¾2$ä†?\êð @Ûr(Ó4 É#úÝ!âç–£›.ëäœX³¢¶âM·È÷s„¥ÀPq¨¾b¬Ñx&ã Óœ&‡R‡6Ž`/8„ÈQ½åÔ  »áxkõŒÒ’RЦ—E{FØ.Ö¨A'+°¤‡ì:¥™Ú.hha5ˆJ\Ýâ:e$ê’FŠtG¬9ïø/_H¬ÿ?_þ÷—ü¹²–C­LîeÅï&N烜hÂ&mâ+ÉrÃeµÔ‘éüÃ×;|ÜtÌ]ï$æ$—"ÎÍZÐh4‡uåÌÙÙ& ?~ZÀˆ’ oLÂ)èÛEíêÇÛÎzd£Å[¾¢ `]£J)žÈà=gëUØj\•²ðEPhäàÆE÷‘_4y‚çeyÅK¦ÐÈ· G¾*ñ}öÇÞ«©´«Ñ½~„–ïÙ×G›g»õñ_°^¯ßnšõé)Rr7çåGÍÑnóúâl·i^¿<{ õøuý§ï·Û7¼Cw¶û©´Ð<¸ØìNŽOKÍÑæ¢ÙüesX}ýrýâøô¨<–®zìàl{¶ûþ¤4WžŒW=y.—!®h÷»~únWZÝœ^\UÑ!xÕÛÍÛÍÖ^ÞÐ×_ÿû£ooõÏ·ÄÞÿõֿܺýÕùùOÔ©jñöW·þ‰?ÿÍ­/o}1úû­[ÿX~ÿï_Üú‡[øßÿ®ç`!ð+É4³|ø´K¯^Á;ìCÆvÈ-àÛîaP+Tý>IωgH›(о~þè½ßû>Ë¿h”$Šý'ŠÓßág gLKà5ÑiÅVºZõŒ“€ú/ˆ…?̾»øÎqÛùˆøžG\;®KžãPºlÛdãjù˜6˜050sD^œ®eì 8\œ ®Á¹ÀUÁ!Q¹¼××××WWWW—gÃâ|$í`q$õ°ŒÅ•‘ËÃiPLLLLkXWW—góÀõÀ¹ààpUp6¸"8\œ® n\ ܸ 8\\\†çqÃàÜ šcs³ø5ÆÓ&6ÎíÔˆs¼ ±qv¹@lœagxàz<p0¹6…ûdSË`SÀx~ŸÍ×dsÁÕÙ\p%6œÅ¦óÙ4p0›†ȽÚly}ŸÍ ·Ùa3È©{lÙ¥2›A†es“ä±É0Îe“aœÃ&Ã8›M†q› ã¼68çÖÀÁ8§ÆÙp0ÎÈð' ƹÈéð `œÍƒ€qò9`Ú`ÀÔÀÌ‘Gp¸¸¸ 8\œ ®Á¹©‚³ÁÁÁeÊ‚ëëƒk€k‚«‚«ƒ+‚+Ë‚³Àù|€ëðÎSæƒ{å#`ÍësE0M®®ÎÁ•¸"8‹»×ã.Á5ð «sªÜ)¸"w . ÝzmpèÖ­C·N…xõe»ÝZZZ¢ÍÍMÚÚÚ¢n·Kûûû³<Ño)b¸.O~2xÞåÉŸzòUp=ÐÂújò‹s¬LõTÿ$R?ê©H}¤oχêª>©U}ÛÕïú¥H½3‹Ôou)%ïþ’;º)ÉòKJ2ßMI5JÉ dUiõ(u9â.L…*=PÛ΄±d¨L¨¯-‰…ÊT{cÅÜÁkÂ…ÊD5áD çn'Y=/±P™êÚ¸ÄDqÌ]”X¨LUÒ%&Šcr¯¨áw_c7T¨ÒÅ1ñàš%³ü#'NÞ̉»VN7s2…·s2™Ÿr2-Ý’ >¨d^Þ]ÉËßä%Ëý¼d¾œ—jZ²YUZ}›—¹Åçe–¢8&}´fe–­Yñ^”©~ž‘˜(æd–¢LTNÔp>áZ³â³(S;"1Q“¹‰2ÕTNb¢8&÷Š®!s[˜–YŠâØvfjŽRº¡ªÓWšíé…`¿Ç>@OÔnì~ðêAô?€¦®|vge•ßs˜‰O|8ùñã{Ó8€Îö~¾&4É8ƒ¿/á|s¢{7‰ÿ-hãæêòúÊ­å;ôö½öº¿â|Ý£ Vq†Æƒì‚ïM©üõ/7>¿ý)¿šˆ¾ux;òýáUÄè°O|Òôù¼UÆO/&Ž®rmd•]íp•£Õ.L½Xµ—ƒjÆ©˜~Xmív}ym´^x=®êÂôIz¬ea·V“8Zix£Õðy;Aµ½³OO­¶6RíøÞâó'q´tî/M?¬9úÿzÏŸãNr÷â‹TÕ£OÍîEÞ!¯_ý c¨÷Ôñ¹[³'ɽw6Êýþ• ·¡Fs‡»qœ´¡Ýx,ÚwåXðî3º@ßàŠ$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖaöÞÿpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿñ$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿã$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö 4ÖaöÞÿñ$$If–Þÿ!vh5ÖÅ5Ön5ÖÁ5Öï#vÅ#vn#vÁ#vï:V –l t¯Ö0    öã"ö5ÖÅ5Ön5ÖÁ5Öï/Ö /Ö  /Ö 4ÖaöÞÿ…$$If–!vh5Ö5Ö5Ö’5Ö‘#v#v#v’#v‘:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ö5Ö5Ö5Ö’5Ö‘/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿú$$If–!vh5Ö5Ö5Ö’5Ö‘#v#v#v’#v‘:V –l t¯Ö0    ö¤"ö5Ö5Ö5Ö’5Ö‘/Ö /Ö ÿ/Ö  /Ö 4Ö…$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿì$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4Öì$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö  /Ö 4Ö…$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿì$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l t¯Ö0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öì$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l t¯Ö0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öì$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l t¯Ö0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öì$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l t¯Ö0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÞ$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l t¯Ö0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö 4Öì$$If–!vh5Ö%5Ö5Ö5Öî#v%#v#v#vî:V –l t¯Ö0    ö¤"ö5Ö%5Ö5Ö5Öî/Ö /Ö  /Ö 4Ö±$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l Ö @@@@@ t¯Ö2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿ$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öú$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö 4Öú$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö 4Öú$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö 4Öú$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö 4Öú$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö 4Ö$$If–!vh5Ö(5Öñ5ÖÞ5Öá5ÖÌ#v(#vñ#vÞ#vá#vÌ:V –l t¯Ö0    ö¤"ö,Ö5Ö(5Öñ5ÖÞ5Öá5ÖÌ/Ö /Ö  /Ö 4ÖÂDd älåðb² ð c ð$€€A?¿ ÿ?3"ñ¿`¿€?ð€2ð ‚!qH &J£rˆ+ÈÌÿèd(`!ðà‚!qH &J£rˆ+ÈÌF à°_,®þxÚ•RÏ/Qž÷¶tw[¬_UŠ4 R6‰84©„Vâ"Q¼¤ÄZi%U'w7W‰?Bˆƒ¸ù8;9»¸X3oßnRáà%³;ßÌ7óæÍ @»bøA Ó‚bð@ãŒ)qÏó¤6É’Ê yqþ¢]v¡–ií€ðˆ â{Ô®Q61ý…†1ЇBù¨Rj 䀎ÖîGЉ L0?wnFIëFíµêüä§_>óœI>«´ëˆZzYÔÓ«®S>€¶µ÷zE   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ     þÿÿÿ !"#$%ýÿÿÿýÿÿÿýÿÿÿ*-þÿÿÿ./.ƒýÿÿÿ23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€Root Entryÿÿÿÿÿÿÿÿ ÀF죑dAÃ,@Data ÿÿÿÿÿÿÿÿÿÿÿÿùoWordDocumentÿÿÿÿÿÿÿÿ~!ObjectPoolÿÿÿÿ €8dAÃ죑dAÃ_1086534478ÿÿÿÿÎÀFÀEdAÃàæ dAÃOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObjÿÿÿÿfObjInfoÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ ÿÿÿÿÎÀFMicrosoft Equation 3.0 DS Equation Equation.3ô9²qOÁ²ð¬° ƒpƒrƒeƒsƒcƒaƒlƒe†=ˆ3ˆ2ƒMƒHƒzˆ5†"ˆ1ˆ0ˆ0ƒKƒHƒz†"ˆ1†=ˆ6ˆ3‚(ƒdƒeƒc‚)†=ˆ3ƒF‚(ƒhƒeƒx‚)Equation Native ÿÿÿÿÿÿÿÿÿÿÿÿÎ_1102758061 ¡Aqn€?Ó«)`°îóøò+dAÃí\dAÃOle ÿÿÿÿÿÿÿÿÿÿÿÿObjInfo ÿÿÿÿ þÿà…ŸòùOh«‘+'³Ù0̘Àð 8 T`Contentsÿÿÿÿÿÿÿÿÿÿÿÿ1Ø£_1102760484ÿÿÿÿÿÿÿÿ¡Aqn€?Ó«)`°îóøÐfdAÃPdxdAÃOle ÿÿÿÿÿÿÿÿÿÿÿÿ ObjInfoÿÿÿÿ ‚þÿÿÿË…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊþÿÿÿ‰ýÿÿÿÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ 4128.0Build 23November 18, 20018IáúÌÞ @Ð÷Sã¥[@? ×£p=@÷(\Âõ@„^BMv^v(¼^€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿððððÿðððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿððÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿððÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿððððÿðÿÿðððÿðððÿððÿðÿðÿðððÿðÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿððððÿðÿÿðððÿððÿððÿðÿðÿðððÿðÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðððððÿðÿÿðððððððððÿððððððÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðððÿÿÿÿÿÿðððÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿððÿÿððÿÿÿÿÿÿððÿðððÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿðÿððÿððÿÿðððÿÿðððÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿðÿðÿðÿÿðÿððÿððÿðÿðÿÿðÿððÿðÿÿðÿÿðÿððÿðÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿðÿðÿðÿÿÿðÿððÿðððÿðÿÿÿÿðÿððÿðÿÿðÿÿðÿðÿðÿðÿðÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿðÿÿðÿðÿÿðÿÿÿðÿÿÿÿÿÿÿðÿÿðÿðÿÿðÿÿÿÿÿÿÿÿðÿÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿðÿðÿÿðÿðÿÿÿðÿÿÿÿÿÿÿÿðÿðÿÿðÿðÿÿÿÿÿÿÿÿÿðÿðÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDÙ) Ï Drawing Variables   Solid Iron @ «       |®Gáz„?|®Gáz„?|®Gáz”?|®Gáz”?|®Gáz¤?|®Gáz¤?   ! % '«ªªªª !@«ªªªª &@(€€«ªªªª !@«ªªªª &@* / H CrossI ð?ð?JL MÐ?NO QTVX$Z$Ð?[\] ^ _ð?` Ariala$|®Gáz”?bijkð?ð?ln$À?o$À?p$À?q$Ð?r$Ø?st u v w x y „…†Œ þÿÿÿ Žð?«ªªªª !@«ªªªª &@ ‘’-DTû!é?“Ð?”Ð?•Ð?–-DTû!ù?—à?™ð?šœ  ž¢£‡DçJWÆ?¤¥¦§ ÿ­®¯°±²³´µ¶·¸¹º»¼$À?½À333333ã?Á Âà ÄÅ ArialÆÇÈÉ Closed Long ArrowÊ$À?Ëð?Ì-DTû!é?Í-DTû! @Î<>Ï<>ÐR <>Ñø <>Ò<>ÓÔ Õ$ð?×ð?Ø ÙÐ?Úê-™—q=ÛÜÝý©ñÒMbP?Þý©ñÒMbP?ßàá ÿÿÿÿâãäåæš™™™™™é?ç ÿÿÿÿè ÿÿÿÿé ÿÿÿÿê ÿÿÿÿëìíîï$Ø?ðñòóôõö ÷ øùð?úûð?üýð?þÿð?       -DTû!ù?  ð?ð? es-8RÁÀ?es-8RÁà?es-8RÁÀ? ! " #ð?$%&ð?' (ð?)ð?*+,-. /0ð?1ð?23 4 5 ä6 78Ð?9:;ð?<=UUUUUUÕ??@à?CDEIJK Y@Y@L Y@Y@NOš™™™™™é?Layer1 Light Sourcesdddð?KKKddd@@@@ð?ddd@@@Àð?ddd@À@@ð?ddd@À@Àð?ddd@@ð?ddd@Àð?´ Color Paletteðÿÿ€€¦¦RR€@@JJ$$$$ÿ@ÿž€¦)¦fR€€O@JJ.$$$ÿ€ÿ¿€¦R¦zR€@€^@J$J8$$$ÿ¿ÿÞ€¦z¦R€^€n@J8JB$$$!ÿÿÿÿ€¦¦¦¦R€€@JJJJ$$$$$¿ÿÞÿ€z¦¦R^€p€@8JBJ$$!$€ÿ¿ÿ€R¦z¦R@€^€@$J8J$$$@ÿžÿ€)¦f¦R€O€@J.J$$$ÿ€ÿ€¦R¦R@€@J$J$$$ÿ@€ÿž¦)R¦f€@€OJ$J.$$ÿ€€ÿ¿¦RR¦z€@@€^J$$J8$$ÿ¿€ÿÞ¦zR¦€^@€nJ8$JB$$!ÿÿ€ÿÿ¦¦R¦¦@€€JJ$JJ$$$$¿ÿ€Þÿz¦R¦^€@n€8J$BJ$!$€ÿ€¿ÿR¦Rz¦@€@^€$J$8J$$@ÿ€žÿ)¦Rf¦€@O€J$.J$$ÿ€€ÿ¦RR¦@@€J$$J$$@ÿž€ÿ)¦fR¦€O@€J.$J$$€ÿ¿€ÿR¦zR¦@€^@€$J8$J$$¿ÿÞ€ÿz¦R¦^€n@€8JB$J$!$ÿÿÿ€ÿ¦¦¦R¦€@€JJJ$J$$$$ÿ¿ÿ€Þ¦z¦R€^€@nJ8J$B$$!ÿ€ÿ€¿¦R¦Rz€@€@^J$J$8$$ÿ@ÿ€ž¦)¦Rf€€@OJJ$.$$TTTuuu–––ºººÛÛÛÿÿÿ0 Entity ListMain161 +ÿÿÿÿr= ×£p @†ëQ¸…@‘Âõ(\@†ëQ¸…@º…ëQ¸@]Âõ(\@533333@]Âõ(\@^Âõ(\@†ëQ¸…@Ù£p= ×@†ëQ¸…@@]Âõ(\@> ×£p=@]Âõ(\@S¸…ëQ@†ëQ¸…@Âõ(\@†ëQ¸…@¥p= ×£@]Âõ(\@âz®Gá@]Âõ(\@÷(\Âõ@†ëQ¸…@433333@†ëQ¸…@Iáz®G@]Âõ(\@†ëQ¸…@]Âõ(\@›™™™™™@†ëQ¸…@Ø£p= ×@†ëQ¸…@ìQ¸…ë@]Âõ(\@*\Âõ(@]Âõ(\@|®Gáz@]Âõ(\@Âõ(\@†ëQ¸…@ÎÌÌÌÌÌ@†ëQ¸…@âz®Gá@]Âõ(\@ …ëQ¸@]Âõ(\@433333@†ëQ¸…@r= ×£p@†ëQ¸…@†ëQ¸…@]Âõ(\@Äõ(\Â@]Âõ(\@Ø£p= ×@†ëQ¸…@®Gáz@†ëQ¸…@*\Âõ(@]Âõ(\@hfffff@]Âõ(\@|®Gáz@†ëQ¸…@¹…ëQ¸@†ëQ¸…@ÎÌÌÌÌÌ@]Âõ(\@ ×£p= @]Âõ(\@ …ëQ¸@†ëQ¸…@]Âõ(\@†ëQ¸…@r= ×£p@]Âõ(\@¯Gáz®@]Âõ(\@Äõ(\Â@†ëQ¸…@? ×£p=@†ëQ¸…@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP? b1ø(\Âõ@q= ×£p@333333ã?S|®Gáz”?Arialà? c1œ™™™™™@r= ×£p@333333ã?A7|®Gáz”?Arialà? c1 …ëQ¸@q= ×£p@333333ã?A6|®Gáz”?Arialà? c1r= ×£p@r= ×£p@333333ã?A5|®Gáz”?Arialà? c1!Äõ(\Â@q= ×£p@333333ã?A4|®Gáz”?Arialà? c1#®Gáz@r= ×£p@333333ã?A3|®Gáz”?Arialà? c1%hfffff@q= ×£p@333333ã?A2|®Gáz”?Arialà? c1'º…ëQ¸@r= ×£p@333333ã?A1|®Gáz”?Arialà? c1) ×£p= @q= ×£p@333333ã?RW|®Gáz”?Arialà? d1+]Âõ(\@q= ×£p@333333ã?ACK|®Gáz”?Arialà? c1-¯Gáz®@r= ×£p@333333ã?D7|®Gáz”?Arialà? c1/@q= ×£p@333333ã?D6|®Gáz”?Arialà? c12S¸…ëQ@r= ×£p@333333ã?D5|®Gáz”?Arialà? c14¥p= ×£@q= ×£p@333333ã?D4|®Gáz”?Arialà? c16÷(\Âõ@r= ×£p@333333ã?D3|®Gáz”?Arialà? c18Iáz®G@q= ×£p@333333ã?D2|®Gáz”?Arialà? c1:š™™™™™@r= ×£p@333333ã?D1|®Gáz”?Arialà? c1<ìQ¸…ë@q= ×£p@333333ã?D0|®Gáz”?Arialà? e1>> ×£p=@r= ×£p@333333ã?NACK|®Gáz”?Arialà? b1@Âõ(\@q= ×£p@333333ã?P|®Gáz”?Arialà?v 1I 7ÿÿÿÿr= ×£p @Ø£p= ×@ãz®Gá@Ø£p= ×@÷(\Âõ@¯Gáz®@^Âõ(\@¯Gáz®@r= ×£p@Ø£p= ×@°Gáz®@Ø£p= ×@Äõ(\Â@¯Gáz®@@¯Gáz®@ ×£p= @Ø£p= ×@*\Âõ(@Ø£p= ×@433333@¯Gáz®@S¸…ëQ@¯Gáz®@]Âõ(\@Ø£p= ×@|®Gáz@Ø£p= ×@†ëQ¸…@¯Gáz®@¥p= ×£@¯Gáz®@¯Gáz®@Ø£p= ×@ÎÌÌÌÌÌ@Ø£p= ×@Ø£p= ×@¯Gáz®@÷(\Âõ@¯Gáz®@@Ø£p= ×@ …ëQ¸@Ø£p= ×@433333@¯Gáz®@Iáz®G@¯Gáz®@S¸…ëQ@Ø£p= ×@r= ×£p@Ø£p= ×@|®Gáz@¯Gáz®@›™™™™™@¯Gáz®@¥p= ×£@Ø£p= ×@Äõ(\Â@Ø£p= ×@ÎÌÌÌÌÌ@¯Gáz®@ìQ¸…ë@¯Gáz®@÷(\Âõ@Ø£p= ×@®Gáz@Ø£p= ×@ …ëQ¸@¯Gáz®@> ×£p=@¯Gáz®@Iáz®G@Ø£p= ×@gfffff@Ø£p= ×@r= ×£p@¯Gáz®@Âõ(\@¯Gáz®@›™™™™™@Ø£p= ×@¹…ëQ¸@Ø£p= ×@Äõ(\Â@¯Gáz®@âz®Gá@¯Gáz®@íQ¸…ë@Ø£p= ×@ ×£p= @Ø£p= ×@®Gáz@¯Gáz®@433333@¯Gáz®@> ×£p=@Ø£p= ×@]Âõ(\@Ø£p= ×@gfffff@¯Gáz®@†ëQ¸…@¯Gáz®@Âõ(\@Ø£p= ×@¯Gáz®@Ø£p= ×@¹…ëQ¸@¯Gáz®@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?Ö1J ÿÿÿÿ¹…ëQ¸@¯Gáz®@Ø£p= ×@¯Gáz®@âz®Gá@Ø£p= ×@@Ø£p= ×@ ×£p= @¯Gáz®@*\Âõ(@¯Gáz®@433333@Ø£p= ×@S¸…ëQ@Ø£p= ×@]Âõ(\@¯Gáz®@|®Gáz@¯Gáz®@†ëQ¸…@Ø£p= ×@¥p= ×£@Ø£p= ×@¯Gáz®@¯Gáz®@ÎÌÌÌÌÌ@¯Gáz®@Ø£p= ×@Ø£p= ×@÷(\Âõ@Ø£p= ×@@¯Gáz®@ …ëQ¸@¯Gáz®@*\Âõ(@Ø£p= ×@Iáz®G@Ø£p= ×@S¸…ëQ@¯Gáz®@r= ×£p@¯Gáz®@|®Gáz@Ø£p= ×@›™™™™™@Ø£p= ×@? ×£p=@Ø£p= ×@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?V1] ÿÿÿÿ533333@]Âõ(\@Ù£p= ×@]Âõ(\@@†ëQ¸…@> ×£p=@†ëQ¸…@S¸…ëQ@]Âõ(\@Âõ(\@]Âõ(\@¥p= ×£@†ëQ¸…@âz®Gá@†ëQ¸…@÷(\Âõ@]Âõ(\@433333@]Âõ(\@Iáz®G@†ëQ¸…@†ëQ¸…@†ëQ¸…@›™™™™™@]Âõ(\@Ø£p= ×@]Âõ(\@ìQ¸…ë@†ëQ¸…@*\Âõ(@†ëQ¸…@> ×£p=@]Âõ(\@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?&1_ ÿÿÿÿ|®Gáz@]Âõ(\@ÎÌÌÌÌÌ@]Âõ(\@âz®Gá@†ëQ¸…@ …ëQ¸@†ëQ¸…@433333@]Âõ(\@r= ×£p@]Âõ(\@†ëQ¸…@†ëQ¸…@Äõ(\Â@†ëQ¸…@Ø£p= ×@]Âõ(\@®Gáz@]Âõ(\@*\Âõ(@†ëQ¸…@hfffff@†ëQ¸…@|®Gáz@]Âõ(\@¹…ëQ¸@]Âõ(\@ÎÌÌÌÌÌ@†ëQ¸…@ …ëQ¸@†ëQ¸…@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP? d1aIáz®G @Äõ(\Â@333333ã?SCL|®Gáz”?Arialà? d1cIáz®G @r= ×£p@333333ã?SDA|®Gáz”?Arialà? b1i›™™™™™@¹…ëQ¸@333333ã?1|®Gáz”?Arialà? b1k…ëQ¸@º…ëQ¸@333333ã?2|®Gáz”?Arialà? b1mp= ×£p@¹…ëQ¸@333333ã?3|®Gáz”?Arialà? b1oÁõ(\Â@º…ëQ¸@333333ã?4|®Gáz”?Arialà? b1q®Gáz@¹…ëQ¸@333333ã?5|®Gáz”?Arialà? b1scfffff@º…ëQ¸@333333ã?6|®Gáz”?Arialà? b1u³…ëQ¸@¹…ëQ¸@333333ã?7|®Gáz”?Arialà? b1w×£p= @º…ëQ¸@333333ã?8|®Gáz”?Arialà? b1yUÂõ(\@¹…ëQ¸@333333ã?9|®Gáz”?Arialà? d1{›™™™™™@íQ¸…ë@333333ã?MSB|®Gáz”?Arialà? d1} ×£p= @íQ¸…ë@333333ã?LSB|®Gáz”?Arialà? b1ˆ¯Gáz®@¹…ëQ¸@333333ã?1|®Gáz”?Arialà? b1Š@¹…ëQ¸@333333ã?2|®Gáz”?Arialà? b1ŒS¸…ëQ@¹…ëQ¸@333333ã?3|®Gáz”?Arialà? b1Ž¥p= ×£@¹…ëQ¸@333333ã?4|®Gáz”?Arialà? b1÷(\Âõ@¹…ëQ¸@333333ã?5|®Gáz”?Arialà? b1’Iáz®G@¹…ëQ¸@333333ã?6|®Gáz”?Arialà? b1”›™™™™™@¹…ëQ¸@333333ã?7|®Gáz”?Arialà? b1–íQ¸…ë@¹…ëQ¸@333333ã?8|®Gáz”?Arialà? b1˜? ×£p=@¹…ëQ¸@333333ã?9|®Gáz”?Arialà? d1š¯Gáz®@íQ¸…ë@333333ã?MSB|®Gáz”?Arialà? d1œíQ¸…ë@íQ¸…ë@333333ã?LSB|®Gáz”?Arialà?ReportContentsÿÿÿÿÿÿÿÿÿÿÿÿ„]Œ_1102753424ÿÿÿÿÿÿÿÿ¡Aqn€?Ó«)`°îóøð†dAࡸdAÃOle ÿÿÿÿÿÿÿÿÿÿÿÿ ObjInfoÿÿÿÿ  4128.0Build 23November 18, 20018? ×Lë¼ @âz®Gá@ ×;Gƒ¿@|®Gáú@„^BMv^v(¼^€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿððÿÿðÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÿÿðÿÿÿððÿðÿðÿððÿðÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÿðððÿððÿðÿÿððÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððÿðÿÿððÿðÿðÿðÿðÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿðÿÿððÿðÿðÿðÿððÿðÿðÿÿÿÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððÿÿÿððÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿðÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððÿðÿÿðÿðÿÿÿÿÿÿÿÿÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððÿÿÿðÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿðÿðÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿðÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððððÿðÿÿðÿðÿÿÿÿÿÿÿÿÿðÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿDÙ… Ï Drawing Variables    Short Dash Iron @        |®Gáz„?|®Gáz„?|®Gáz„?|®Gáz„?|®Gáz¤?|®Gáz¤?   ! % '«ªªªª !@«ªªªª &@(€€«ªªªª !@«ªªªª &@* / H CrossI ð?ð?JL MÐ?NO QTVX$Z$Ð?[\] ^ _ð?` Ariala$|®Gáz”?bijkð?ð?ln$À?o$À?p$À?q$Ð?r$Ø?st u v w x y „…†Œ þÿÿÿ Žð?«ªªªª !@«ªªªª &@ ‘’-DTû!é?“Ð?”Ð?•Ð?–-DTû!ù?—à?™ð?šœ  ž¢£‡DçJWÆ?¤¥¦§ ÿ­®¯°±²³´µ¶·¸¹º»¼$À?½À333333ã?Á Âfà ÄÅ ArialÆÇÈÉ Closed Long ArrowÊ$À?Ëð?Ì-DTû!é?Í-DTû! @Î<>Ï<>ÐR <>Ñø <>Ò<>ÓÔ Õ$ð?×ð?Ø ÙÐ?Úê-™—q=ÛÜÝý©ñÒMbP?Þý©ñÒMbP?ßàá ÿÿÿÿâãäåæš™™™™™é?ç ÿÿÿÿè ÿÿÿÿé ÿÿÿÿê ÿÿÿÿëìíîï$Ø?ðñòóôõö ÷ øùð?úûð?üýð?þÿð?       -DTû!ù?  ð?ð? es-8RÁÀ?es-8RÁà?es-8RÁÀ? ! " #ð?$%&ð?' (ð?)ð?*+,-. /0ð?1ð?23 4 5 ä6 78Ð?9:;ð?<=UUUUUUÕ??@à?CDEIJK Y@Y@L Y@Y@NOš™™™™™é?Layer1 Light Sourcesdddð?KKKddd@@@@ð?ddd@@@Àð?ddd@À@@ð?ddd@À@Àð?ddd@@ð?ddd@Àð?´ Color Paletteðÿÿ€€¦¦RR€@@JJ$$$$ÿ@ÿž€¦)¦fR€€O@JJ.$$$ÿ€ÿ¿€¦R¦zR€@€^@J$J8$$$ÿ¿ÿÞ€¦z¦R€^€n@J8JB$$$!ÿÿÿÿ€¦¦¦¦R€€@JJJJ$$$$$¿ÿÞÿ€z¦¦R^€p€@8JBJ$$!$€ÿ¿ÿ€R¦z¦R@€^€@$J8J$$$@ÿžÿ€)¦f¦R€O€@J.J$$$ÿ€ÿ€¦R¦R@€@J$J$$$ÿ@€ÿž¦)R¦f€@€OJ$J.$$ÿ€€ÿ¿¦RR¦z€@@€^J$$J8$$ÿ¿€ÿÞ¦zR¦€^@€nJ8$JB$$!ÿÿ€ÿÿ¦¦R¦¦@€€JJ$JJ$$$$¿ÿ€Þÿz¦R¦^€@n€8J$BJ$!$€ÿ€¿ÿR¦Rz¦@€@^€$J$8J$$@ÿ€žÿ)¦Rf¦€@O€J$.J$$ÿ€€ÿ¦RR¦@@€J$$J$$@ÿž€ÿ)¦fR¦€O@€J.$J$$€ÿ¿€ÿR¦zR¦@€^@€$J8$J$$¿ÿÞ€ÿz¦R¦^€n@€8JB$J$!$ÿÿÿ€ÿ¦¦¦R¦€@€JJJ$J$$$$ÿ¿ÿ€Þ¦z¦R€^€@nJ8J$B$$!ÿ€ÿ€¿¦R¦Rz€@€@^J$J$8$$ÿ@ÿ€ž¦)¦Rf€€@OJJ$.$$TTTuuu–––ºººÛÛÛÿÿÿ  Entity ListMain"¦1 ÿÿÿÿhfffff@®Gáz@ ×£p= @®Gáz@ …ëQ¸@íQ¸…ë@S¸…ëQ@íQ¸…ë@]Âõ(\@®Gáz@¥p= ×£@®Gáz@¯Gáz®@íQ¸…ë@÷(\Âõ@íQ¸…ë@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?¦1 ÿÿÿÿhfffff@º…ëQ¸@ ×£p= @º…ëQ¸@ …ëQ¸@‘Âõ(\@S¸…ëQ@‘Âõ(\@]Âõ(\@º…ëQ¸@¥p= ×£@º…ëQ¸@¯Gáz®@‘Âõ(\@÷(\Âõ@‘Âõ(\@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?G 1ýÿÿÿ@ ×£p= @hfffff@@hfffff@G 1ýÿÿÿA†ëQ¸@gfffff@Âõ(\@> ×£p=@G 1ýÿÿÿm°Gáz®@‘Âõ(\@Äõ(\Â@º…ëQ¸@G 1ýÿÿÿnÄõ(\Â@º…ëQ¸@]Âõ(\@º…ëQ¸@ª1˜ ÿÿÿÿ÷(\Âõ@? ×£p=@¯Gáz®@? ×£p=@¥p= ×£@hfffff@]Âõ(\@hfffff@S¸…ëQ@? ×£p=@ …ëQ¸@? ×£p=@ ×£p= @hfffff@hfffff@hfffff@ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€ý©ñÒMbP?ý©ñÒMbP?€G 1ýÿÿÿ›¥p= ×£@hfffff@÷(\Âõ@hfffff@ê1«(ý©ñÒMbP?ÿÿÿÿØ£p= W@T¸…ëQ@gfffff@? ×£p=@> ×£p=@®Gáz@Ø£p= W@@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ð?ý©ñÒMbP?ý©ñÒMbP?ê1¯(ý©ñÒMbP?ÿÿÿÿ®Gáz@@533333@®Gáz@÷(\Âõ@Iáz®G@®Gáz@T¸…ëQ@ý©ñÒMbP?ý©ñÒMbP?qý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?º1³(ý©ñÒMbP?ÿÿÿÿ®Gáz@@º…ëQ¸@ ×£p= @®Gáz@¦p= ×£@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?º1´(ý©ñÒMbP?ÿÿÿÿØ£p= W@@€@hfffff@Ø£p= W@¦p= ×£@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ê1º ÿÿÿÿ®Gáz@@÷(\Âõ@ ×£p= @÷(\Âõ@@®Gáz@@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?(ˆ1BlackË!ÿÿÿÿ‹˜UŠëý@ÓŸòî@÷(\Âõ@åî“ý¢@÷(\Âõ@@®Gáz@@$2ï# @—¤S@(ˆ1BlackÍ!ÿÿÿÿ÷(\Âõ@ ×£p= @÷(\Âõ@åî“ý¢@‹˜UŠëý@ÓŸòî@$2ï# @—¤S@®Gáz@@ê1× ÿÿÿÿ®Gáz@T¸…ëQ@†ëQ¸@T¸…ëQ@ ×£p= @Iáz®G@®Gáz@T¸…ëQ@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?øˆ1Blacké!ÿÿÿÿÄ|\\Ø@Ø• =xL@ ×£p= @Iáz®G@®Gáz@T¸…ëQ@†ëQ¸@T¸…ëQ@ê1ë ÿÿÿÿØ£p= W@@S¸…ëQ@ ×£p= @Âõ(\O@@Ø£p= W@@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?øˆ1Black!ÿÿÿÿØ£p= W@@S¸…ëQ@ ×£p= @©«©5¯P@d¤Ï2L@Âõ(\O@@ñê1 ÿÿÿÿØ£p= W@¦p= ×£@]Âõ(\@‘Âõ(\@gfffff@›™™™™™@Ø£p= W@¦p= ×£@ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?ý©ñÒMbP?øˆ1Black!ÿÿÿÿØ£p= W@¦p= ×£@]Âõ(\@‘Âõ(\@GCÞ*ü]@{v^/‘@gfffff@›™™™™™@G 1ýÿÿÿ# ×£p= @ãz®Gá@ ×£p= @âz®Gá@G 1ýÿÿÿ%]Âõ(\@ãz®Gá@]Âõ(\@âz®Gá@G 1ýÿÿÿ0Äõ(\Â@ãz®Gá@Äõ(\Â@º…ëQ¸@ œ1> ×£p= @âz®Gá@333333ã?Start counting|®Gáz„?Arial€ low period|®Gáz„?Arialà? 1@…ëQ¸@ÎÌÌÌÌÌ@333333ã?wait|®Gáz„?Arial€state|®Gáz„?Arialà? 1B]Âõ(\@âz®Gá@333333ã?Start counting|®Gáz„?Arial€ high period|®Gáz„?Arialà?G 1ýÿÿÿXÄõ(\Â@ÎÌÌÌÌÌ@]Âõ(\@ÎÌÌÌÌÌ@ i1Z? ×£p=@¥p= ×£@333333ã?SCL1|®Gáz”?Arialà? i1\? ×£p=@S¸…ëQ@333333ã?SCL2|®Gáz”?Arialà? h1^? ×£p=@@333333ã?SCL|®Gáz”?Arialà? p1` ×£p= @¥p= ×£@333333ã? Master1 SCL|®Gáz”?Arialà? p1b ×£p= @S¸…ëQ@333333ã? Master2 SCL|®Gáz”?Arialà? r1d ×£p= @@333333ã? wired-AND SCL|®Gáz”?Arialà?ReportContentsÿÿÿÿÿÿÿÿÿÿÿÿÍ#€1Tableÿÿÿÿ5¨¥SummaryInformation(ÿÿÿÿüDocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿ     þÿÿÿ !"#$%&'()*+,-./0þÿÿÿ234A6789:;<=>?@1BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^`ýÿÿÿabcdefghijklmnopqrstuvwxyz{|}~€ 4128.0Build 23November 18, 20018¦pýšÛO @ÎÌÌÌÌÌ@:Œ0âŽyE¾gf& 9›@@:Œ0âŽyE>„^BMv^v(¼^€€€€€€€€€€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿððÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿðÿÿÿÿÿððÿðÿÿÿðÿðÿðÿðÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿðÿÿÿÿðÿðÿðÿðÿÿðÿðÿðÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿðÿðÿðÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿðÿðÿÿÿðÿÿðÿðÿðÿðÿÿÿÿÿÿðÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿððÿðÿÿÿÿððÿðÿðÿððÿðÿðÿðÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿððÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿÿÿÿÿÿððÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿðÿÿÿÿÿÿððÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿðÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿÿðÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿððÿÿðÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿðÿÿÿÿÿððÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿðÿÿÿÿðÿðÿðÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿðÿðÿÿÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿððÿðÿÿÿÿððÿðÿðÿðÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿððÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿððÿÿðÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿððÿðÿÿÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿðÿðÿðÿðÿÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿðÿÿÿÿðÿðÿÿÿÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿðÿðÿÿÿðÿÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿððÿðÿðÿððÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿððÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿððÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿððÿðÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿðÿðÿðÿðÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿðÿÿÿÿðÿðÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿðÿðÿÿÿðÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿððÿðÿðÿðÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿððÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿðÿðÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿððÿÿðÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿððÿðÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿðÿðÿðÿðÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿÿðÿÿÿÿðÿðÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿðÿðÿÿÿðÿÿÿÿÿÿðÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿððÿÿÿÿððÿðÿðÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿðÿÿÿÿððÿÿÿðÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÙÏ Drawing Variables   Solid Iron @        |®Gáz„?|®Gáz„?|®Gáz„?|®Gáz„?|®Gáz¤?|®Gáz¤?   ! % '«ªªªª !@«ªªªª &@(€€«ªªªª !@«ªªªª &@* / H CrossI ð?ð?JL MÐ?NO QTVX$Z$Ð?[\] ^ _ð?` Ariala$|®Gáz”?bijkð?ð?ln$À?o$À?p$À?q$Ð?r$Ø?st u v w x y „…†Œ þÿÿÿ Žð?«ªªªª !@«ªªªª &@ ‘’-DTû!é?“Ð?”Ð?•Ð?–-DTû!ù?—à?™ð?šœ  ž¢£‡DçJWÆ?¤¥¦§ ÿ­®¯°±²³´µ¶·¸¹º»¼$À?½À333333ã?Á Â’Ã ÄÅ ArialÆÇÈÉ Closed Long ArrowÊ$À?Ëð?Ì-DTû!é?Í-DTû! @Î<>Ï<>ÐR <>Ñø <>Ò<>ÓÔ Õ$ð?×ð?Ø ÙÐ?Úê-™—q=ÛÜÝý©ñÒMbP?Þý©ñÒMbP?ßàá ÿÿÿÿâãäåæš™™™™™é?ç ÿÿÿÿè ÿÿÿÿé ÿÿÿÿê ÿÿÿÿëìíîï$Ø?ðñòóôõö ÷ øùð?úûð?üýð?þÿð?       -DTû!ù?  ð?ð? es-8RÁÀ?es-8RÁà?es-8RÁÀ? ! " #ð?$%&ð?' (ð?)ð?*+,-. /0ð?1ð?23 4 5 ä6 78Ð?9:;ð?<=UUUUUUÕ??@à?CDEIJK Y@Y@L Y@Y@NOš™™™™™é?Layer1 Light Sourcesdddð?KKKddd@@@@ð?ddd@@@Àð?ddd@À@@ð?ddd@À@Àð?ddd@@ð?ddd@Àð?´ Color Paletteðÿÿ€€¦¦RR€@@JJ$$$$ÿ@ÿž€¦)¦fR€€O@JJ.$$$ÿ€ÿ¿€¦R¦zR€@€^@J$J8$$$ÿ¿ÿÞ€¦z¦R€^€n@J8JB$$$!ÿÿÿÿ€¦¦¦¦R€€@JJJJ$$$$$¿ÿÞÿ€z¦¦R^€p€@8JBJ$$!$€ÿ¿ÿ€R¦z¦R@€^€@$J8J$$$@ÿžÿ€)¦f¦R€O€@J.J$$$ÿ€ÿ€¦R¦R@€@J$J$$$ÿ@€ÿž¦)R¦f€@€OJ$J.$$ÿ€€ÿ¿¦RR¦z€@@€^J$$J8$$ÿ¿€ÿÞ¦zR¦€^@€nJ8$JB$$!ÿÿ€ÿÿ¦¦R¦¦@€€JJ$JJ$$$$¿ÿ€Þÿz¦R¦^€@n€8J$BJ$!$€ÿ€¿ÿR¦Rz¦@€@^€$J$8J$$@ÿ€žÿ)¦Rf¦€@O€J$.J$$ÿ€€ÿ¦RR¦@@€J$$J$$@ÿž€ÿ)¦fR¦€O@€J.$J$$€ÿ¿€ÿR¦zR¦@€^@€$J8$J$$¿ÿÞ€ÿz¦R¦^€n@€8JB$J$!$ÿÿÿ€ÿ¦¦¦R¦€@€JJJ$J$$$$ÿ¿ÿ€Þ¦z¦R€^€@nJ8J$B$$!ÿ€ÿ€¿¦R¦Rz€@€@^J$J$8$$ÿ@ÿ€ž¦)¦Rf€€@OJJ$.$$TTTuuu–––ºººÛÛÛÿÿÿØ Entity ListMain(3 1ýÿÿÿ›™™™™™@›™™™™™@®Gáz„?C 1ýÿÿÿ›™™™™™@‘Âõ(\@›™™™™™@|®Gáz@C 1ýÿÿÿ›™™™™™@|®Gáz@º…ëQ¸@|®Gáz@C 1ýÿÿÿ!º…ëQ¸@º…ëQ¸@^Âõ(\@º…ëQ¸@C 1ýÿÿÿ"^Âõ(\@º…ëQ¸@^Âõ(\@ãz®Gá@C 1ýÿÿÿ#^Âõ(\@ãz®Gá@Ù£p= ×@º…ëQ¸@C 1ýÿÿÿ$Ù£p= ×@º…ëQ¸@^Âõ(\@‘Âõ(\@C 1ýÿÿÿ%^Âõ(\@‘Âõ(\@^Âõ(\@º…ëQ¸@C 1ýÿÿÿ'Ù£p= ×@º…ëQ¸@*\Âõ(@º…ëQ¸@C 1ýÿÿÿ(*\Âõ(@º…ëQ¸@*\Âõ(@ÎÌÌÌÌÌ@C 1ýÿÿÿ)*\Âõ(@ÎÌÌÌÌÌ@S¸…ëQ@ÎÌÌÌÌÌ@C 1ýÿÿÿ*S¸…ëQ@ÎÌÌÌÌÌ@S¸…ëQ@¥p= ×£@C 1ýÿÿÿ+S¸…ëQ@¥p= ×£@*\Âõ(@¥p= ×£@C 1ýÿÿÿ,*\Âõ(@¥p= ×£@*\Âõ(@º…ëQ¸@C 1ýÿÿÿ.@º…ëQ¸@@÷(\Âõ@C 1ýÿÿÿ/@÷(\Âõ@º…ëQ¸@÷(\Âõ@3 1ýÿÿÿQ›™™™™™@ú(\Âõ@®Gáz„?C 1ýÿÿÿR›™™™™™@ðQ¸…ë@›™™™™™@Û£p= ×@C 1ýÿÿÿS›™™™™™@Û£p= ×@º…ëQ¸@Û£p= ×@C 1ýÿÿÿTº…ëQ¸@®Gáz@^Âõ(\@®Gáz@C 1ýÿÿÿU^Âõ(\@®Gáz@^Âõ(\@B ×£p=@C 1ýÿÿÿV^Âõ(\@B ×£p=@Ù£p= ×@®Gáz@C 1ýÿÿÿWÙ£p= ×@®Gáz@^Âõ(\@ðQ¸…ë@C 1ýÿÿÿX^Âõ(\@ðQ¸…ë@^Âõ(\@®Gáz@C 1ýÿÿÿYÙ£p= ×@®Gáz@*\Âõ(@®Gáz@C 1ýÿÿÿZ*\Âõ(@®Gáz@*\Âõ(@-\Âõ(@C 1ýÿÿÿ[*\Âõ(@-\Âõ(@S¸…ëQ@-\Âõ(@C 1ýÿÿÿ\S¸…ëQ@-\Âõ(@S¸…ëQ@@C 1ýÿÿÿ]S¸…ëQ@@*\Âõ(@@C 1ýÿÿÿ^*\Âõ(@@*\Âõ(@®Gáz@C 1ýÿÿÿ_@®Gáz@@V¸…ëQ@C 1ýÿÿÿ`@V¸…ëQ@º…ëQ¸@V¸…ëQ@ j1ƒ¦p= ×£@÷(\Âõ@333333ã? scl_pad_i|®Gáz”?Arialà? j1…¦p= ×£@º…ëQ¸@333333ã? scl_pad_o|®Gáz”?Arialà? m1‡¦p= ×£@|®Gáz@333333ã? scl_padoen_o|®Gáz”?Arialà? j1‰¦p= ×£@S¸…ëQ@333333ã? sda_pad_i|®Gáz”?Arialà? j1‹¦p= ×£@®Gáz@333333ã? sda_pad_o|®Gáz”?Arialà? m1¦p= ×£@Ø£p= ×@333333ã? sda_padoen_o|®Gáz”?Arialà? d1hfffff@º…ëQ¸@333333ã?SCL|®Gáz”?Arialà? d1‘gfffff@®Gáz@333333ã?SDA|®Gáz”?Arialà?Report«r2y×´¹ÉŸRäkxªŸðhˆ×ûÛ!Þèmæßt5óóÔŽœàLù§lCâ3íQ×g³BW–d”3Y»,§S{úç Ù¿^Èåÿ £ UÉm?Ý\Ç"¨m(I1y0º‰±#¶EPm*F–¥ÅeqÙƒA–Zb*jOöò°*jÛå}ñË\p^`Ζ»õyÚ“ˆ¹ò×\üªy8Ÿ\‚sÕ[Íx¶ðD5è&è„ÇCÿs‹Ï7ÕÆ™r+ý[ýZ-ˆJt'÷˜q>RlÔŽ„CÈT[H@ßÖ¤ýÔ.tñY$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖÿíëÿÿíëÿÿíëÿÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  /Ö 4ÖY$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖÿíëÿÿíëÿÿíëÿÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öä$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö  /Ö 4ÖY$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖÿíëÿÿíëÿÿíëÿä$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö ÿ/Ö  /Ö 4ÖY$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖÿíëÿÿíëÿÿíëÿÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  /Ö 4ÖY$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l Ö@@@ t¯ÖÿíëÿÿíëÿÿíëÿÖ0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖÿíëÿÿíëÿÿíëÿÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÈ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö 4ÖÖ$$If–!vh5Ö<5ÖÕ5Ö°#v<#vÕ#v°:V –l t¯Ö0    öö5Ö<5ÖÕ5Ö°/Ö /Ö  /Ö 4ÖÛ Dd £ æÜ w ðb² ð‰ c ð$€€A?¿ ÿ?3"ñ¿`¿€?ð€2ð% kkÜLñ¦Õ­¨U^iÿ  @`!ðù kkÜLñ¦Õ­¨U^iBP–¥p܈9Ç þxÚµÜ ŒTåðï›÷û…›®¥×;m`Å-, K¬uX°±«‚p:±q 1®ÒÐ ¡àcÓÖ1׎‘¬!tcŒnmK(±Û˜†ÑYcl(1ÆPck•¬Æ´5iJc }X¶ÿÿÙƒÞ;5ÇõËìãÏùÝsÆOðÎ|Z“4&ì,6&nþd þŠ`…mÂDñ˜ñ;ü,Úo'ÎKà³Ë÷æþböü*þÊSøe'Ì,¾3Ûh˜)T.›2Ë¥’™­ 3‰ÌdFYdLc#r%äúS^ˆ\¹iäªÈ±rÃÈ¡ÐÐrÈ—{›Fn¹1䯑Fn¹ä‘ëAÎA7‹¢S¸¸)m à.nqyX%3Ì 2cÈŒ#3ŒkØŽÜrƒÈõ ç ×@n¹*rcÈUF®ŒÜr%äz« 7‰ÜäF[„ÜFäJÈõ!—@n!A®Á†‘«J=4‹L™Íâï’d*ÈL®:5b8¸Jc£áàÊC}†ƒ+•ò @nšOr jU8öÉ¡ V‰CA¦1;Ãá"7Îá"7Êá"7Èá"çphÈÍrhÈM!ÓàÐá²×2‡a3³†©ŽOq¦2Úà0LypˆÃ0%§Ì&MƒCÆàª2Wá1¸2‡ŒÁ•8d ®1‰WAƒ«lDƒ+÷!‡Á•òŸ(äød`pUÔ¬ð‰ÀàÊ|"0¸êU™Df 2#È,2 ³¹r}È%[ˆ\¹iäªÈ±¾3Œ\¹ä0eÓƒÜ4r3È!7ŽÜ0r£È 7ˆ\rr³ü@nŠÈ5â{å‡dP­1C™qŠÈRDn"r»Dnš]"7†¯pu•avŠÜ;E®9tÛ˜DÝVGC·•†W?TîCÝ–šÍ›7›]»v™‰‰ søðaóÆoàiž•½2dM«dç'e¿wv~ñ¬’ÇöÌÏ?úo†8ßýݰÉð¹ GÌÕÖµ?¹ö‰c¯¶Ží¤y%tä#VøSšôÞ 5íÛ!O\…ÂX¸iï {"é(»öPØIG¡°>âÚ+#ŽH: …;"M{gÄIG¡Pˆ6m>ꉤ£PXuí`ÔIG¡ð:Öq(”t ÙXÓæbžH: …Xû¡PÒQ(ü!æÚ×bŽH: …íq×îˆ;"é(öÅ1±¸'’ŽBáòDÓ^–ðDÒQ(lO¸v4ሤ41±¤kIG$…š$&–ôDÒQ(üV–'’ŽBa2Õ´¦<‘t ÇR®}9判£P¸-íÚ­iG$…ÂÃé¦}$퉤£PX™iÚO$…­׎d‘t §±f¡PÒQ(,Ï6mÖIG¡ð"ÖQ(”t ÿͺöý¬#’ŽBaoε9G$…‘\Óþ&牤£PØ’oÚ›òžH: …½y×îÉ;")M BoÁµK ŽH: … ˜XÁIG¡p ë$J: …Þ¢k‘”&á9¬ç¡PÒQ(¼WÄÄŠžH: …Ý¥¦} ä‰¤£Px®äÚvÉIibN,àrDòSXm¿0×ÛK¼²vþ.hŸÜ!íÁúOèZóyñœ¿kjCkwlݲ͜¼£‚¯ãÑÔ‚ìõ'ïø –̲®— Û©xï±`õ§Fíaf7Ezçf?Ð r]Æ<#}ÚPè¢Mw}wç-ßáW©ù®Üµ9[ ŸÕÏ??ÔÏÇ_MjþjŽ…‰­]ÝkʺžsÕ}!ÒMÝG#R÷RÿºãÑnêÞ•º«üëÞë¦îŠ˜Ô]é_÷‹ñnêžž«»Â¿î‰®êKÝ~ÿº­D7u÷&¤îrÿº^²›ºU¹ÅXýæ%æ+>u¿‘ R73_·â~X»îê/÷š>s±Oížt7×ü¯yýê>ãúÔ}§«ºÓò’ËúKýë>•é¦îý©»Ê¿î²ÝÔ½>+uWú×ýz®›º_ÈIÝþuÏËwS÷ݹºýþußìªîÓy©»Ü¿îÏ ÝÔ½§ u—ù×ÝU R7;_÷Â"¶›£ÏÙ•RêßÇ..1wݲÞsT=÷ïâÑsþ.ûÐ+u³ \7ç‡kø¼ö1¯ Äæ£ÿ§Bai¸múÂ-‘t c‚BIG¡pýü}RS(#xn"5‘t ½‘¶Yi‰¤£P¸ëv(”t {Ðσèãv5…Âq¬(ªMŒÂIôs }̨)ÖEÛfm´%’ŽBáÆhÝ|+ZIG¡pë J: …çÐÏóèã šB!k›l¬%’ŽBaq¬n¾«‰¤£Pص %…Âèg7úØ©¦Pxë5(»Õ&Fá=ôówôñššBáòxÝ\¯‰¤£PØo›ñ–H: …ýXû PÒQ(´ÑÏ3ècŸšB!‘¨›T¢&’ŽBá¢DÛ”-‘t Û±F¡PRzö!4ÑÏ}ècTM¡ð Ö«PîS›…¿¢Ÿ¿¡WÕ —%ÛfM²%’ŽBas²nªÉšH: …Ÿ`=…’ŽBáWèç0úxLM¡KµM$ÕIG¡°(U7¦j"é(¾µ ŠH* …¢Ÿ{ÑÇ65…Â1¬—¡Ü«61 ¿ —Õ «Òu³:]IG¡°!Ý6×¥["é(Áz %…ÂÓèç—èãa5…‚ÉÔM(SIG¡ðÙLÛ|.ÓIG¡p+Ö-P(é(îA?w£[Ô /b½ånµ‰Qø#úù3úxIM¡ÐŸm›eÙ–H: …k²u3”­‰¤£P˜Àz %…ÂÙgÍSÙgDÒQžÄÄNc½i=©61 sus~®&’ŽBa ÖÍP(é(Ærmó½\K$…ÂQ¬#P(é(ÞF?o¡#j …¥ùºéË×DRºákù¶¹*ßIG¡°kJ: …ÇÑÏ!ô±GM¡p ë_P©MŒB±Ð6 -‘”^M€pÖP(é(î,ÔÍí…šHJ¯&@xë(”t ÇÑÏ úxAM¡Ð[l›ÅÅ–HJ¯ò@XW¬›µÅšHJ¯&@Ø5…’ŽBáú9ˆ>ÆÕ '±ÞƒrPmbr¥ºÉ”j"é(nUIG¡pbWM$å®pÓ^iÚõïN}ZåJ9“ųYŽHZ¯Šº6um!ꈤôZ’œÉâÙ,O$…Âq¬×¡¬‹jMŒB.ƳYŽHJûÂ~¬P²1­‰í—3Y<›å‰¤£PØoÚíqO$¥×øäLÏf9"i½ÊãÚË®½<ሤto\Îdñl–'’ŽB!‘lÚXÒIéµ$9“ųYŽHZ¯&¸öÖ+PÖ$µ&F!’ú‘¥îIGy4Õ´[ÓM{[Úû„sYŸVÙ*§¥xjÊIëî¨kWd\»2㈤£¬ÓR<5剤£P˜Å: åÖŒÖÄ(ôgyjÊIë.œkb½eyVkbGå´OMy"é(&rM»7牤t¯ONKñÔ”#’ŽBᦼk·ä‘”þYNKñÔ”'’Ò{á ,å ‚'’Ò=%9-ÅSSŽHZw\»¤Èåˆä§œyïýæüÝóûÌ#ršdÓºk6ðýÁ~ïøï¦ö¨ýñ\íõk7ø¿÷xŸ vjeî½ÇÏšwä Íòe®OÕ`gV:UŸŠ0×ï[5؉•NÕïG™[á[5Øy•NÕ«bÌ­ô­ì´J§ê‚8s«|«žèªêŒT½Ô·j°“*ªùm³Ú·j°s*ª;“Ì øV vJ¥SõŠsk|ª–öUó‹0wص›7¬Âþêõ©lÚCIÖ¾µ]ßÚûL°s5i¤ÓÁvï;]Uý]:Øî v¦¦Sõ§™`»7؉šNÕmÙ`»7ØyšNÕÕ¹`»7ØišNÕP>Øî}³«ª/åƒíÞ`'i:U*Û½ÁÎÑtªÞ\ ¶{ƒí‚Îû}ª›ÝlÚ£¿Ý;÷'“èüIÒ32™û3Å™ÿçWX~ú?(–è-Dd I$Ü ðb² ð c ð$€€A?¿ ÿ?3"ñ¿`¿€?ð€2ðww-é{Ây™vʵžÿS`Nƒ`!ðKw-é{Ây™vʵžpG@ƒZ¸a"þxÚ½› pTÕÇïîf?Þf÷Ý·oßnBXØ÷–-á+‰0Ѹ€P6PÓ HGǦ¢Œ…(!Ìš´ÊÚ˜Ò€‚Z¡ŽØˆ¶ãÇ´UœÁ¡Ž™ˆN+¥Í¨E`(ƒÅ¡H[FÁ™ôœ›}'„†bn oöæ¿ÿýÿî9ï޷˰ÏÁÆ\¯cÌÇŽ9üɃÃåð17<æ;QÁQÀÙZ¨¥|0:+´?è-Wá+ÏÀËN±~Pú³YÖ 55,›J±*W%“, I]gý)ðt€g"xêÀg,[ >|¥àL²|Yðuƒ¯|-˜¾ZðAPU%øÀŸŒ¯|‡Á×¾-à«_ø*Á7|1ðYàƒÉõCh'L®B³X“«‚@˜:ëÏað´€g xja÷‚¯|sÀŸ¾,øºÁW¾ð¥ÀW ¾$ø*Á§ƒ/¾ø:À7|uà‹ƒ¯|:øJÁç_¾, ¾‘Å‚'‰ÅÂ_]xRàé`ظšÎ:†Ke«6.YUʰqz²Oøºñ€šY)l Ö‰M,›žlÿal.ø¶`sÁ×€Íßl.ø,løú±iàëO›œ ÖšÄf°ìá~l«ÙÒ‰Í`©†,6ƒ%çTa3˜n%±H–Å&Cãj°Éи6—Ä&Cãtl24.Û>h\Mø q©jðAã’¥àƒÆé¸¢À‡'W™)<и$žhœy)ðt€g"xêÀgYV >|¥àó¯|Yðuƒ¯|-˜J-ø’à«t™ÅÀ× ¾ÃàkßðÕ‚¯|•à›¾ø,ðõãø:ñ|YðTáÖŠ?ÂiÙÃHÏ$‚¯‰à›ƒDðYX%øº±JðµÀo0»T-V ¾J¬|1ðAµÙðAµ5uàƒjSÕ g_•,T«°%K–°uëÖ±mÛ¶±Ý»w³ƒÂiî;zºÓÁ\ð8Cì|Eìw{燆ì|§x<å|þÂ+ƒ¿rU],€çÆ•Çz|Ûà |{x=o ÷øÚ¶gb»ó.`¹¾&yó´ÓÑ¥Ú‘(råP0Ï<a$I Ĭíá|«-Œ$9$œ¿=|n|› É¡ ¡§øt´¯øHIr(Hè*Á㈠I¢øÊ< ¼Ì³žyz|EY+¹Ì3OÛ¨,Õš$ÉZÉ•yæFe†Ù$H²VòF%f•yò­"’d­ä2ωñežsã‹IÖJ.óôoTúŠ›$ÉZÉ•®<šér”Ë]ËYÎéNÃy áCGa!­B³µ]š­!-²µ]![«Ð)O§<Ò*”¦<Ò2唡¼å‘V¥¼(å‘–) ¼Ê+¤¼BÊ#­b”­mekŸ_0 ;—CEÚA«h@ÓÔTN»I­Îiïª 9ÍÇÈimü9m9§ÍÐzsÚzeJtè(ìt* sÚÛ¾[sÚ_sNóûÚsÚfoWNûŽwWN{ßóaNÛêù$§%=®\_þ{„϶’¶‡´¹…¶ÖZH)£lmî([ÛCš«ˆòŠ(´¹£)o4åÅ(/Fy¤¹ÆPÞÊ#mîXÊKyqÊ‹Si.“òLÊ#Ͱ†ß¯ÎËì×®’IZ_ñ$­§8¥u•¤´¡û•]°_ìê(H87~_àÄøc$É¡ !ßÚˆYÇI 3ÌIÚ<3¥!I K5 h)A’CAÂz¾/ÐÀ$‡‚„Çérºz:«ÜÚb[ÛYlkÓ&ØÚÚ ¶ö9iÓ&ÚÚΉ”GÚÚI”7‰ò&SÞdÊ#mÚÊ›By¤­-±G]%W×­æfõæÛêGæ.õóAUÎ9AÂ?ͳj¿ù/A’CABКÊM«˜#I ÅÖø7­å‚$‡‚„ ëy¾Èú¥ É¡ a¦uœ×À$9$L·J´´5UC’ bÖ}Ú5Öƒ‚$‡‚„ÏÌ?jnëA’CAÂïÌq¡½fYIr(Hø‘¹>ôˆ¹IäPpy(TeþCäPp&~½®˜óu$É¡ áøÏõ}ñgI ÄOé;â_ ’ âóíñ…a$É¡ ay|[¸9¾UäP°:~$üãøA’CAÂOãIc{¼È@’ ~_n¼ÿ® É¡ áïñÆçñÇI cÍýF‰Ù+Hr(Hø¾©EV›ý‚$‡‚„çÌù‘ߘ3IåS~c$¬©‡æˆ|Ä+"r(H¸NûÐ(ÖÞ5$éš „Û´§´ö˜ É¡ ¡Yûž±B»YäP°Ye´h† É¡ á)m_¸MÛF’ ¶k÷åA’CAÂf-nÖŠIVÇáF­[¯ÕÞÑ‘$‡‚„EÚ½R»MäP0Vû$ä×þB’¤«%NòLh?Ï ’ vsèy$9$<ÌŸÕšù‹’äPPÇSZ _ Hr(HXÈ?åüG’ nàÏñ‰üW‚$‡‚„xŸÄ— ’,J¯âÓùµ¼DäPPËý|ïW‘$‡‚„þ‰ZÏ?R‘$‡‚„íü÷ê#üuA’tåBI}?%Hr(H8ÎUñõ‚$é,ŸYÍ "+ù”Ⱦ@Ò'%$|©~a|¦úI ›Õ^ã!õ IzGB©ºÉ0Õ§I ‡ƒ×ïç ’ ž ¾ÞÜF’ 2ÁkÂw§ ’ êƒkôÅÁFIr(HÈÛBw[CH’UK[hGð^mSp•†$9$ü-XÁß –s$É¡ ¡\=£ "I ?S¨«H’CAãŸù?UOú‘$‡‚„&^§ÜÎoW$‡‚„“üï~¾Ï‹$9”WÍÙ‘1Ö C±JŒó:I×d$´Y“Âk¬qa$É¡ á˜5Nÿ‹Ó‘$‡‚„™ +4!QB’¤ÿ³ÂOßÐÖ$â’äPðfb*!Q‘$‡‚„ßR÷&æ©H’CA©D}ðH’CAÂlj'{O$«–'o&úò_Hü5I²ÎK_~["š¿&1F$íJ ÌLÜéŸXåG’¬ýr§ÿ˜µKé³ÞR$kïïR²4e$9$ĬÕ>¿ÕìC’¬ÿI\í{Å|ÏûŒ¹ß‹$9”ã|zd«Zc¼¤þÐ8ÄçKzAÂVuAä%µ<‚$Y”‘£rAº’ov87\îÅfábªà¹ÙÝÜŠ|¡²ÈøWÌupgE2|cg1H;ÿÛ‡ççáëw¨uæa.æ_¯œ¾ áœõ¼ï€õ¢Ir(HøµÙë}Î<èEÒ×ïþ «Ë×eöy k½r½u‹ré+™áìuÚß}¶GagÚekí.[Sòl-gk½¤)n[kwSiiåy(ÏKy^Ê#MñQžòHK+”§PžŸòü”Gš’Oyù”GZš¾ÿÝNßÿV‚”¤<Ò•òTÊ#-Í)SžFy呦„(/Dy¤¥uÊÓ)/LyaÊ#M1(Ï <ÒÒÊ‹P^”ò¢”GšR@y4ê)\9†5t„kÈÖÚ]¶¦äÙZ:ÏÖzISܶÖî¦<ÒÒÊóPž—ò¼”Gšâ£<å‘–V(O¡·x+mŽ)ŽÉŽ‘ÙçÔ«¯ýR3®å4ãò‘ñ¬ÈHÏ8 flD¿rºfüòÀŒGf¾}Þ¥e#;ßÂÜšXZ†×‘o/ƒÏSM˜7ë.«Ž­lŠc'›ìØÆF²Ž ªœ:jùùu”K¯cVd¤ë[?KËpígêW,/™}ÓX Ìû>¶“áêßÉî‚ßÚ ª‹U30wîSàð5|åt ;SçîÁû¯]Âý‰þm˱$$If–!vh5Öó5Öf5ÖÕ5Ö¦5Ö; #vó#vf#vÕ#v¦#v; :V –l Ö @@@@@ t¯Ö2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö ö5Öó5Öf5ÖÕ5Ö¦5Ö; /Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿ$$If–!vh5Öó5Öf5ÖÕ5Ö¦5Ö; #vó#vf#vÕ#v¦#v; :V –l t¯Ö0    ö ö5Öó5Öf5ÖÕ5Ö¦5Ö; /Ö /Ö ÿ/Ö /Ö 4Ö$$If–!vh5Öó5Öf5ÖÕ5Ö¦5Ö; #vó#vf#vÕ#v¦#v; :V –l t¯Ö0    ö ö5Öó5Öf5ÖÕ5Ö¦5Ö; /Ö /Ö /Ö 4Ö$$If–!vh5Öó5Öf5ÖÕ5Ö¦5Ö; #vó#vf#vÕ#v¦#v; :V –l t¯Ö0    ö ö5Öó5Öf5ÖÕ5Ö¦5Ö; /Ö /Ö /Ö 4Ö$$If–!vh5Öó5Öf5ÖÕ5Ö¦5Ö; #vó#vf#vÕ#v¦#v; :V –l t¯Ö0    ö ö5Öó5Öf5ÖÕ5Ö¦5Ö; /Ö /Ö /Ö 4Ö$$If–!vh5Öó5Öf5ÖÕ5Ö¦5Ö; #vó#vf#vÕ#v¦#v; :V –l t¯Ö0    ö ö5Öó5Öf5ÖÕ5Ö¦5Ö; /Ö /Ö /Ö  /Ö 4ÖDdÃÈèèðd² ð c ð@AÁ¿ÿoc_logo_smallð‚2ðc+íqÅû8âBER£wZt«ÿ?pd`!ð7+íqÅû8âBER£wZt«&Î~¤öÿÿ¥Ìöÿÿ±ãðþxÚíÝ1nA€áq $Š4”tÉ=¸â0”# Rè9ÜÑ-kG”T~Þ}ïÍ÷‹ˆ(Dh=óeídg6‡ñfŒãݯ1ãÏϱöb};^—ëß·7_~zuzïíÍø?ÆÇwÆÓú‘oãñôéãÇr?žÖÏzXß<üô½?ÿÛ×ï‡qw;ÎoÿZ$I’$I’$I¹û<ÆóC¡H8)N „„“!á¤@H8)N „„“!á¤@H8)N „„“!áNÊ 'pRNH8A…“¼v’ïìDNÚQ”!% 'á¤ö¢ ¦pNÂI8á$œ„“pÂI8 'EÍfrK8U|ø´K¯^Á;ìCÆvÈ-àÛîaP+Tý>IωgH›(о~þè½ßû>Ë¿h”$Šý'ŠÓßág gLKà5ÑiÅVºZõŒ“€ú/ˆ…?̾»øÎqÛùˆøžG\;®KžãPºlÛdãjù˜6˜050sD^œ®eì 8\œ ®Á¹ÀUÁ!Q¹¼××××WWWW—gÃâ|$í`q$õ°ŒÅ•‘ËÃiPLLLLkXWW—góÀõÀ¹ààpUp6¸"8\œ® n\ ܸ 8\\\†çqÃàÜ šcs³ø5ÆÓ&6ÎíÔˆs¼ ±qv¹@lœagxàz<p0¹6…ûdSË`SÀx~ŸÍ×dsÁÕÙ\p%6œÅ¦óÙ4p0›†ȽÚly}ŸÍ ·Ùa3È©{lÙ¥2›A†es“ä±É0Îe“aœÃ&Ã8›M†q› ã¼68çÖÀÁ8§ÆÙp0ÎÈð' ƹÈéð `œÍƒ€qò9`Ú`ÀÔÀÌ‘Gp¸¸¸ 8\œ ®Á¹©‚³ÁÁÁeÊ‚ëëƒk€k‚«‚«ƒ+‚+Ë‚³Àù|€ëðÎSæƒ{å#`ÍësE0M®®ÎÁ•¸"8‹»×ã.Á5ð «sªÜ)¸"w . ÝzmpèÖ­C·N…xõe»ÝZZZ¢ÍÍMÚÚÚ¢n·Kûûû³<Ño)b¸.O~2xÞåÉŸzòUp=ÐÂújò‹s¬LõTÿ$R?ê©H}¤oχêª>©U}ÛÕïú¥H½3‹Ôou)%ïþ’;º)ÉòKJ2ßMI5JÉ dUiõ(u9â.L…*=PÛ΄±d¨L¨¯-‰…ÊT{cÅÜÁkÂ…ÊD5áD çn'Y=/±P™êÚ¸ÄDqÌ]”X¨LUÒ%&Šcr¯¨áw_c7T¨ÒÅ1ñàš%³ü#'NÞ̉»VN7s2…·s2™Ÿr2-Ý’ >¨d^Þ]ÉËßä%Ëý¼d¾œ—jZ²YUZ}›—¹Åçe–¢8&}´fe–­Yñ^”©~ž‘˜(æd–¢LTNÔp>áZ³â³(S;"1Q“¹‰2ÕTNb¢8&÷Š®!s[˜–YŠâØvfjŽRº¡ªÓWšíé…`¿Ç>@OÔnì~ðêAô?€¦®|vge•ßs˜‰O|8ùñã{Ó8€Îö~¾&4É8ƒ¿/á|s¢{7‰ÿ-hãæêòúÊ­å;ôö½öº¿â|Ý£ Vq†Æƒì‚ïM©üõ/7>¿ý)¿šˆ¾ux;òýáUÄè°O|Òôù¼UÆO/&Ž®rmd•]íp•£Õ.L½Xµ—ƒjÆ©˜~Xmív}ym´^x=®êÂôIz¬ea·V“8Zix£Õðy;Aµ½³OO­¶6RíøÞâó'q´tî/M?¬9úÿzÏŸãNr÷â‹TÕ£OÍîEÞ!¯_ý c¨÷Ôñ¹[³'ɽw6Êýþ• ·¡Fs‡»qœ´¡Ýx,ÚwåXðî3º@ßàent Subject_5\æ޳æ ToTable 3D effects 1m:V`jÖ#Öÿÿÿ…Öÿ†ÖÿjÖ#‚Ö€€€…Öÿ†ÖÿjÖ#Ôÿÿÿ…Öÿ†ÖÿjÖ#€Ö€€€…Öÿ†ÖÿjÖ.ÔÿÖÿ…Öÿ†ÖÿjÖ.Ôÿ‚Öÿ…Öÿ†ÖÿjÖ.€ÖÿÖÿ…Öÿ†ÖÿjÖ.€Öÿ‚Öÿ…Öÿ†Öÿ‡Ö ÀÀÀÿÿÿ`5…Ê5\…Ê5B* \`J ph€€…ÊB* `J ph€6³6 ToTable 3D effects 2Ý:VajÖ.@Ô€€€€Öÿÿÿ…Öÿ†ÖÿjÖ#‚Öÿÿÿ…Öÿ†ÖÿjÖ9Ôÿ€Öÿ‚Ö€€€…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‡Ö ÀÀÀÿÿÿˆ4a…Ê5\…Ê5\t³#t ToTable 3D effects 3÷:VbjÖ.@Ô€€€€Öÿÿÿ…Öÿ†ÖÿjÖ‡Ö ÀÀÀÿÿÿjÖ ‡Ö ÀÀÀÿÿÿjÖ#‚Öÿÿÿ…Öÿ†ÖÿjÖ9Ôÿ€Öÿ‚Ö€€€…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿˆ4‰4b:…ÊB*`Jphÿ…Ê B*`Jphÿ…Ê5\…Ê5\br³3b ToTable Classic 1ì:VcÖ0 ÿ ÿÿÿjÖ#‚Ö…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ#€Ö…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‡Ö ÿÿc9…ÊB*`Jphÿ…Ê6]…Ê5\…Ê56\]šs³Cš ToTable Classic 2#:VdÖ0 ÿ ÿÿÿjÖ%…Öÿ†Öÿ‡Ö ÀÀÀÿÿÿjÖ#Ô…Öÿ†ÖÿjÖ0€Ö…Öÿ†Öÿ‡Ö €€ÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ%…Öÿ†Öÿ‡Ö €€ÿÿÿ‡Ö ÿÿd:…Ê5\…ÊB*`Jphÿÿÿ…ÊB* `J ph€…Ê5\Tt³ST ToTable Classic 3Å:VeÖ0 œ<@ñÿ< NormalCJ_HmH sH tHP@P Heading 1$$ Æf!&d0@&a$5CJ`J@J Ú ¬ Heading 2$$ Æf!@&a$5CJHD@D ŒÚ ¬ Heading 3$ Æf!@&5CJ(D@D hN Heading 4$ Æf!@&5CJL@L Heading 5$$ Æf!@&a$ 6B*CJ 8@8 Heading 6$@&6:@: Heading 7$$@&a$D@D Heading 8 ¤ð¤<@& 6]aJN @N Heading 9 ¤ð¤<@&CJOJQJ^JaJDA@òÿ¡D Default Paragraph FontVi@óÿ³V  Table Normal :V ö4Ö4Ö laö (kôÿÁ(No List 4@ò4 Header  ÆàÀ!4 @4 Footer  ÆàÀ!0U@¢0 Hyperlink>*B*.)@¢!. Page NumberL>@2L Title$¤ð¤<@&a$5CJ@KHOJQJ@YR@  Document Map-D OJQJ2B@b2 Body TextCJ0K@0 Salutationl$@‚l Envelope Address!„@ „üÿ„ôÿ„ð&€+D¼/„^„@ OJQJ^JaJ2?@’2 Closing „à^„àJ%@¢J Envelope ReturnCJOJQJ^J®I@²® Message Headerg„8„Èû$d%d&d'd-DMÆ ÿÿNÆÿOÆÿPÆÿQÆÿ^„8`„ÈûOJQJ^JaJ<"< Caption ¤x¤x 5CJ\DT@ÒD Block Text„ „ ¤x]„ ^„ T,T Table of Authorities„ð„ÿ^„ð`„ÿ$L@$ Date8+8  Endnote Text CJ<[@< E-mail Signature!6@@"6 Signature "„à^„àre@2r #HTML Preformatted, vooraf opgemaakt#CJOJQJ^J:`@B: HTML Address$6]: : Index 1%„ð„ÿ^„ð`„ÿ: : Index 2&„à„ÿ^„à`„ÿ: : Index 3'„Єÿ^„Ð`„ÿ: : Index 4(„À„ÿ^„À`„ÿ:: Index 5)„°„ÿ^„°`„ÿ:: Index 6*„ „ÿ^„ `„ÿ:: Index 7+„„ÿ^„`„ÿ:: Index 8,„€„ÿ^„€`„ÿ:: Index 9-„p„ÿ^„p`„ÿH!@RH  Index Heading.5OJQJ\^J&& TOC 1/.. TOC 2 0„ð^„ð.. TOC 3 1„à^„à.. TOC 4 2„Ð^„Ð.. TOC 5 3„À^„À.. TOC 6 4„°^„°.. TOC 7 5„ ^„ .. TOC 8 6„^„.. TOC 9 7„€^„€L.L  TOA Heading8¤x5OJQJ\^JaJ4/@’4 List9„h„˜þ^„h`„˜þ82@¢8 List 2:„Є˜þ^„Ð`„˜þ83@²8 List 3;„8„˜þ^„8`„˜þ84@Â8 List 4<„ „˜þ^„ `„˜þ85@Ò8 List 5=„„˜þ^„`„˜þL#L Table of Figures>„à„ þ^„à`„ þ:0@ò: List Bullet ? & F >6@> List Bullet 2 @ & F>7@> List Bullet 3 A & F>8@"> List Bullet 4 B & F>9@2> List Bullet 5 C & F:1@B: List Number D & F>:@R> List Number 2 E & F>;@b> List Number 3 F & F><@r> List Number 4 G & F>=@‚> List Number 5 H & FBD@’B List ContinueI„h¤x^„hFE@¢F List Continue 2J„Фx^„ÐFF@²F List Continue 3K„8¤x^„8FG@ÂF List Continue 4L„ ¤x^„ FH@ÒF List Continue 5M„¤x^„l-ñÿâl  Macro Text"N Æ àÀ €` @ àOJQJ^J_HmH sH tH8^@ò8 Normal (Web)OaJ4O@4 Note HeadingP@Z@@ Plain TextQCJOJQJ^J<P@"< Body Text 2 Rdà¤x>Q@2> Body Text 3S¤xCJaJXM@aBX Body Text First IndentT„Ò¤x`„ÒCJHC@RH Body Text IndentU„h¤x^„hTN@QbT Body Text First Indent 2 V„Ò`„ÒRR@rR Body Text Indent 2W„hdà¤x^„hTS@‚T Body Text Indent 3X„h¤x^„hCJaJ>@’> Normal Indent Y„Ä^„ÄJJ@¢J SubtitleZ$¤<@&a$OJQJ^JaJ8²8  Comment Text[CJ:Â:  Footnote Text\CJFV@¢ÑF FollowedHyperlink >*B* ph€€H™âH Û,Î Balloon Text^CJOJQJ^JaJ@j±²@ ToComm   ÿÿjÖ…Öÿ†ÖÿjÖ0Ô …Öÿ†Öÿ‡Ö ÿÿÿÿÿÿjÖ0€Ö…Öÿ†Öÿ‡Ö €ÿÿÿ‡Ö ÀÀÀÿÿÿeQB* ph€…Ê5B*\`Jph…ÊB* `J ph€…Ê56B*\]`Jphÿÿÿu³c ToTable Classic 4û:VfÖ0  ÿÿjÖ…Öÿ†ÖÿjÖ0€Ö…Öÿ†Öÿ‡Ö ÿÿÿjÖ0€Ö…Öÿ†Öÿ‡Ö €ÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‡Ö ÿÿfX…Ê5\…ÊB* `J ph€…Ê56B*\]`Jphÿÿÿ…ÊB* `J ph€…Ê5\Rv³sR ToTable Colorful 1×:VgÖ0€€ €€ €€ €€ ÿÿÿjÖ%…Öÿ†Öÿ‡Ö €ÿÿÿjÖ%…Öÿ†Öÿ‡Ö ÿÿÿjÖ…Öÿ†ÖÿjÖ%…Öÿ†Öÿ‡Ö ÿÿÿ‡Ö €€ÿÿÿg<B*phÿÿÿ…Ê56\]…Ê56\]…Ê56\]Tw³ƒT ToTable Colorful 2Õ:VhÖ0ÿÿ ÿÿÿjÖ%…Öÿ†Öÿ‡Ö ÀÀÀÿÿÿjÖ…Öÿ†ÖÿjÖ0€Ö …Öÿ†Öÿ‡Ö €ÿÿÿjÖ…Öÿ†Öÿ‡Ö ÿÿÿÿÿh@…Ê56\]…Ê56B*\]`Jphÿÿÿ…Ê56\]4x³“4 ToTable Colorful 3Ý:ViÖ0ÀÀÀÿjÖ;Ö$‚Ö…Öÿ†Öÿ‡Ö €€ÿÿÿjÖ0€Ö…Öÿ†Öÿ‡Ö €€ÿÿÿjÖ%…Öÿ†Öÿ‡Ö ÿÿÿ‡Ö €€ÿÿÿi…Ê5B*\`Jphÿÿÿ´y³£´ ToTable Columns 1 :VjÖ0    ÿÿjÖ‡Ö ÿÿÿjÖ ‡Ö ÿÿÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#€Ö…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‰4jl5\…ÊB*`Jphÿ…Ê B*`Jphÿ…Ê5\…Ê5\…Ê5\…Ê5\…Ê5\…Ê5\–z³³– ToTable Columns 2Ú:VkjÖ‡Ö ÿÿÿjÖ ‡Ö ÿÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ%…Öÿ†Öÿ‡Ö €ÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‰4k€5\…ÊB*`Jphÿ…Ê B*`Jphÿ…Ê5\…Ê5B*\`Jph…Ê5\…ÊB*`Jphÿÿÿ…Ê5\…Ê5\¢{³Ã¢ ToTable Columns 3ý:VlÖ0€€€€ÿ€jÖ‡Ö ÀÀÀÿÿÿjÖ ‡Ö ÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#Ô€…Öÿ†ÖÿjÖ%…Öÿ†Öÿ‡Ö €ÿÿÿjÖ…Öÿ†Öÿ‰4lh5\…ÊB*`Jphÿ…Ê B*`Jphÿ…Ê5\…Ê5\…Ê5\…ÊB*`Jphÿÿÿ…Ê5\|³Ó ToTable Columns 4‰:VmjÖ‡Ö €€ÿÿÿjÖ ‡Ö ÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ%…Öÿ†Öÿ‡Ö ÿÿÿ‰4mL…ÊB*`Jphÿ…Ê B*`Jphÿ…Ê5\…Ê5\…ÊB*`Jphÿÿÿ`}³ã` ToTable Columns 5Î:VnÖ0€€€ €€€ €€€ €€€ ÿÀÀÀjÖ‡Ö ÀÀÀÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#Ô€€€…Öÿ†ÖÿjÖ#€Ö€€€…Öÿ†Öÿ‰4nV…ÊB*`Jphÿ…Ê B*`Jphÿ…Ê5\…Ê5\…Ê5\…Ê56\]0‘³ó0 ToTable Contemporary²:VoÖ0ÿÿÿÿÿÿÿÿÿÿjÖ%@…Öÿ†Öÿ‡Ö ÿÿÿjÖ%€…Öÿ†Öÿ‡Ö ÿÿÿjÖ%…Öÿ†Öÿ‡Ö ÿÿÿˆ4o<…Ê@B*`Jphÿ…Ê€B*`Jphÿ…Ê5B*\`Jphÿ®’³® To Table Elegant_:VpÖ0jÖ…Öÿ†Öÿ‡Ö ÿÿp…Ê;B*`Jphÿjš³j To Table Grid7:VqÖ0ÿÿÿÿÿÿqÆ~³#Æ To Table Grid 1z:VrÖ0jÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‡Ö ÿÿr…Ê6]…Ê6]³3 To Table Grid 2»:VsÖ0ÿÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ…Öÿ†Öÿ‡Ö ÿÿs,…Ê5\…Ê5\…Ê5\…Ê5\ú€³Cú To Table Grid 3­:VtÖ0  ÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ0€Ö…Öÿ†Öÿ‡Ö ÿÿÿÿÿ‡Ö ÿÿt…Ê5\…Ê5\>³S> To Table Grid 4Å:VuÖ0ÿ ÿ jÖ…Öÿ†ÖÿjÖ0Ô…Öÿ†Öÿ‡Ö ÿÿÿÿÿjÖ0€Ö…Öÿ†Öÿ‡Ö ÿÿÿÿÿ‡Ö ÿÿuB…Ê5B*\`Jphÿ…Ê5B*\`Jphÿ…ÊB*`Jphÿ‚³c To Table Grid 5»:VvÖ0    jÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#€Ö …Öÿ†ÖÿjÖ…Ö†Öÿ‡Ö ÿÿv…Ê5\…Ê5\$ƒ³s$ To Table Grid 6Æ:VwÖ0    ÿjÖ…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ#€Ö…Öÿ†ÖÿjÖ…Ö†Öÿ‡Ö ÿÿw(…Ê5\…ÊB*`Jphÿ…Ê5\J„³ƒJ To Table Grid 7á:VxÖ0    jÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ#€Ö …Öÿ†ÖÿjÖ…Ö†Öÿ‡Ö ÿÿx25\…Ê5\…Ê5\…Ê5\…Ê5\ …³“  To Table Grid 8¢:VyÖ0€€€€€€jÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ%…Öÿ†Öÿ‡Ö €ÿÿÿ‡Ö ÿÿyH…Ê5B*\`Jphÿ…Ê5B*\`Jphÿ…Ê5B*\`Jphÿÿÿv†³£v To Table List 1ñ:VzÖ0€€ €€€€ €€ÿÿjÖ%@…Öÿ†Öÿ‡Ö ÀÀÀÿÿÿjÖ€…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ0€Ö…Öÿ†Öÿ‡Ö ÀÀÀÿÿÿjÖ…Öÿ†Öÿˆ4zM…Ê@B*`Jphÿ…Ê€B*`Jphÿ…Ê56B* \]`J ph€…Ê5\p‡³³p To Table List 2ñ:V{Ö0ÿÿ€€€ ÿÿÿjÖ%@…Öÿ†Öÿ‡Ö ÿÿÿÿjÖ€…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ0€Ö…Öÿ†Öÿ‡Ö €€€ jÖ…Öÿ†Öÿˆ4{G…Ê@B*`Jphÿ…Ê€B*`Jphÿ…Ê5B*\`Jphÿÿÿ…Ê5\ˆ³Ã To Table List 3«:V|Ö0 ÿ ÿÿjÖ#Ô …Öÿ†ÖÿjÖ#€Ö …Öÿ†ÖÿjÖ…Öÿ†Öÿ‡Ö ÿÿ|0…Ê5B* \`J ph€…Ê6B* ]`J ph€Æ‰³ÓÆ To Table List 4w:V}Ö0    ÿjÖ0€Ö …Öÿ†Öÿ‡Ö €€€ÿÿÿ‡Ö ÿÿ}…Ê5B*\`JphÿÿÿÒŠ³ãÒ To Table List 5…:V~Ö0ÿjÖ…Öÿ†ÖÿjÖ#€Ö …Öÿ†Öÿ‡Ö ÿÿ~…Ê5\…Ê5\‹³ó To Table List 6»:VÖ0ÿÿjÖ%@…Öÿ†Öÿ‡Ö ÿÿÿjÖ#‚Ö …Öÿ†ÖÿjÖ#€Ö …Öÿ†Öÿ‡Ö ÿÿÿˆ4…Ê5\…Ê5\ŽŒ³Ž To Table List 7:V€Ö0€ €€ €ÿjÖ%@…Öÿ†Öÿ‡Ö ÿÿÿjÖ%€…Öÿ†Öÿ‡Ö ÿÿÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#Ô€ …Öÿ†ÖÿjÖ0€Ö€ …Öÿ†Öÿ‡Ö ÀÀÀÿÿÿˆ4€>…Ê@B*`Jphÿ…Ê5\…Ê5\…Ê5\…Ê5\”³” To Table List 8:VÖ0ÿjÖ%@…Öÿ†Öÿ‡Ö ÿÿÿÿÿjÖ%€…Öÿ†Öÿ‡Ö ÿÿÿÿjÖ…Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ0€Ö…Öÿ†Öÿ‡Ö ÿÿÿÿÿˆ4D…Ê@B*`Jphÿ…Ê5\…Ê5\…Ê5\…Ê56\]Æ“³#Æ ToTable Professionall:V‚Ö0jÖ%…Öÿ†Öÿ‡Ö ÿÿÿ‡Ö ÿÿ‚…Ê5B*\`JphÿÊo³3Ê ToTable Simple 1:VƒÖ0€ ÿ€ ÿÿÿjÖ#Ô€…Öÿ†ÖÿjÖ#€Ö€…Öÿ†Öÿ‡Ö ÿÿƒrp³Cr ToTable Simple 2è:V„jÖ#Ö…Öÿ†ÖÿjÖ#‚Ö …Öÿ†ÖÿjÖ#Ô…Öÿ†ÖÿjÖ#€Ö …Öÿ†ÖÿjÖ#Ôÿ…Öÿ†ÖÿjÖ#Öÿ…Öÿ†Öÿ„O…Ê5\…Ê5\…Ê5B*\`Jphÿ…Ê5\…Ê5\…Ê5\¾q³S¾ ToTable Simple 3l:V…Ö0    ÿÿjÖ%…Öÿ†Öÿ‡Ö ÿÿÿ‡Ö ÿÿ……Ê5B*\`Jphÿÿÿp”³cp ToTable Subtle 1 :V†jÖ0@€Ö…Öÿ†Öÿ‡Ö €€ÿÿÿjÖ#Ö …Öÿ†ÖÿjÖ#‚Ö …Öÿ†ÖÿjÖ0Ô …Öÿ†Öÿ‡Ö €€ÿÿÿjÖ.Ô€Ö …Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿˆ4†…Ê5\…Ê5\p•³sp ToTable Subtle 2:V‡Ö0ÿÿÿÿjÖ0Ö …Öÿ†Öÿ‡Ö €€ÿÿÿjÖ0‚Ö …Öÿ†Öÿ‡Ö €ÿÿÿjÖ#Ô …Öÿ†ÖÿjÖ#€Ö …Öÿ†ÖÿjÖ…Öÿ†ÖÿjÖ…Öÿ†Öÿ‡…Ê5\…Ê5\l›³ƒl To Table Theme7:VˆÖ0ÿÿÿÿÿÿˆ®–³“® To Table Web 1h:V‰Ö0ÿÿÿÿÿÿ3ÖjÖ…Öÿ†Öÿ‡Ö ÿÿ‰…ÊB*`Jphÿ®—³£® To Table Web 2h:VŠÖ0ÿÿÿÿÿÿ3ÖjÖ…Öÿ†Öÿ‡Ö ÿÿŠ…ÊB*`Jphÿ®˜³³® To Table Web 3h:V‹Ö0ÿÿÿÿÿÿ3ÖjÖ…Öÿ†Öÿ‡Ö ÿÿ‹…ÊB*`JphÿLþO¢ÁL Ú ¬Heading 3 Char5CJ(_HmH sH tH$6Gaz„›®ÀØ%=ARW\pƒ‡Œ‘¡­²¶ÃÇÒßäèøü$Íåþ§¿ØÝl„žŸ ¡¢£¤¥ÈžJÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿ1ÿÿÿÿ:ÿÿÿÿ;ÿÿÿÿ<ÿÿÿÿNÿÿÿÿZÿÿÿÿ ÿÿÿÿ ÿÿÿÿ7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1ÿÿÿÿ:ÿÿÿÿAÿÿÿÿ?ÿÿÿÿDÿÿÿÿNÿÿÿÿLÿÿÿÿGÿÿÿÿTÿÿÿÿWÿÿÿÿZÿÿÿÿdÿÿÿÿbÿÿÿÿ]ÿÿÿÿhÿÿÿÿsÿÿÿÿqÿÿÿÿl=ÿÿÿÿ' ÿÿÿÿ( ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"ÿÿÿÿ#ÿÿÿÿ)ÿÿÿÿ(ÿÿÿÿ'ÿÿÿÿ&ÿÿÿÿÐÿÿÿÿÏÿÿÿÿÎÿÿÿÿÍÿÿÿÿÿÿÿÿ6ÿÿÿÿ7ÿÿÿÿ8ÿÿÿÿ9ÿÿÿÿ:ÿÿÿÿ;ÿÿÿÿ<ÿÿÿÿÿÿÿÿÞ) $6Gaz„›®ÀØ%=ARW\pƒ‡Œ‘¡­²¶ÃÇÒßäèøü$Íåþ§¿ØÝl„žŸ ¡¢£¤¥ÈË  !"#$%&'()*+,-./0123456789:;<=>ÿÿˆ´žJÿÿÿÿ/ÿÿÿÿZÿÿÿÿ¬ ­ ˆ‰Ÿ {|›œÚÛghà႟ ¢£‘’ÝÞžDŸDÆDÇDêDëDEE1E2EŸJO900$„4‹…0 O900$„T×È0 M900$„Œ×È0 O900$„ÌaÈ0 M900$„bÈ0 M90 0$„ ØÈ0 M900ü äšÔ0 O900ü ˆp×0 O900ü äšÔ0 O900ü äšÔ0 O900ü äšÔ0 O900ü äšÔ00O90 0$„„Œ…˜0€€¸RÄ O900$„ÌÙȘ0€€¸RÄ O900$„¶È˜@0€€¸RÄ O900$„P¶È˜@0€€¸RÄ O90"0$„À¶È˜0€€¸RÄ O90&$„œ‡ñ˜0€€¸RÄ O900ü  !;TUV_‡ˆ´ÅÆËÐ×ãäèñ%7`…†Š‹Äå $-?dŽ»¼ÀÉÛò )CDHQc‡ˆŒ•§ÉÊÎ×é  $-?eޏ¹º½ÊËtu£³ÁÕÖ|}~ˆ­Äê;w·è  D z ” ¨ « ´ µ É Ó Ø à ì í ö ú ÿ ‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÚýÿÿÿÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ   ) „ … † ¥ ª ° º Æ Ç Ð Ò Ø å æ ï ñ ÷    & 9 : C E K ^ _ h j p † ‡ ’ ™ ¬ ­ µ · ½ Ð Ñ Ú Ü â     * + 4 6 = Z [ e g n † ‡ ˆ  Mglr|ˆ‰“•›³´¾ÀÇàáìîõ "(?@JLSklwy€Ÿ ¡™š689:“žŸÕ /0>?ož·ÐÑÓÝÞñöþ $&)IJQVX[{|€…‡Š›œ ¥§©»¼ÀÅÇÉÚÛÞãåçøùü12JlmµÉÊËâèïûüþ@ghjm‘¸àáåèñò)*+CIP\]ac‚„†Ä!89KLMdjq}~‚„Ÿ ²³´ËÑØäåçé4579MNPRefhj©ª®°¹º¼¾y–©ª¬®Ö0KLNPcƒ¢£¥§¼3_‘’–˜¡¢¤¦ÁÜ÷øúü„¤ÉÝÞðñòjmwx‘’Ÿ   Ò"Ó"Ô"å"æ"!#9#P#^#u#v#˜#™#¬#%&&á&â&ã&'Ä(Å(M)N)***0*×+Ø+|,},h.i.j.|.@/A/B/\/]/y/X2Y2{2|2}2”2ý34 44¬4ø4ù4ú455Ò5Ó5Ô5ð5ñ5+8,8I8J8[:\:^:_:j:l:q:r:s::‚:‰:Š:‹:•:–:œ::ž:©:ª:°:±:²:¼:½:Ã:Ä:Å:Æ:à:á:L<N<c<d<e<o<p<‘<’<´<É<Ê<Ë<Ù<ð<=/=:=Y=o=p=q={=Ë=ú=.>h>—>Ë>Ì>Î>{?|?‡?ˆ?·?¸?Í?ñ?ò?ó?@@7@V@l@‹@ª@É@è@ý@>ASATAUA_A¯AÞAB?BnB¢BñB CRCTCUCDD D!D"D?D@DKDRD^DcDrDsDyD‡D‹D‘DžDŸD¦D´D·D½DÆDÇDÈDÖDÙDßDêDëDòDüDÿDEEEEE E'E1E2E3EpEqEÒEÓEÔEæEçE÷EøE F FFFF4F5F6FMFNFRFSFWFXFYFZF[FnFoFF‚F“F”F•FœF«F¬FØFÙFìFíFøFùFGGGGG%G&G*G+G/G0GCGDGVGWGZG[G_G`GdGeGjGtGuG€GG…G†G‰GŠGG–G—GšG›G¥G¦G²G³G·G¸G»G¼GÁGËGÌGÏGÐGÔGÕGØGÙGáGïGðGñGòGóG÷GøG H¡H¸H¹HÑHÒHÖH×HzI{I’I“I«I¬I°I±I?J@JWJXJpJqJrJsJtJuJvJwJxJyJ›JœJŸJ0€€€˜0€€˜0€˜0€˜0€˜0€˜0€˜0€˜0€€H0€˜0€‡H0€˜0€´©0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´© 0€´© 0€´© 0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´©0€´©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ©0€´€©0€´©0€´ ™0€´ ˜0€´ø€0€€0€º˜0€½˜0€½˜0€½˜0€½˜ 90€½˜ 0€½˜ 0€½˜0€½˜0€½˜0€½˜0€½˜0€½(0€½˜ 0€˜ 0€˜ 0€˜ 0€˜ 0€˜ 0€˜ 0€˜ 0€˜ 0€˜ 0 €˜ 0 €˜ 0 €˜ 0 €˜ 0 €0€€0€¨ ˜0€« (0€« ©0€µ  ©0€µ  ©0€µ  ©0€µ  ™0€µ  ©0€µ  ©0€µ  ©0€µ  ©0€µ  ™0€µ  ˜0€µ 80€µ ˜0€ (0€« (0€« (0€« ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ©0€†  ©0€†  ©0€†  ©0€†  ™0€†  ˜0€† ˜0€† ˜0€† (0€« ©0€M ©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ©0€M ™0€M ˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M˜0€M0€€0€Ñ˜0€Ó(0€Ó©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ©0€Þ ™0€Þ ˜0€Þ˜0€Þ(0€Ó˜0€80€˜0€2˜0€2˜0€2˜0€2˜0€2˜0€2˜0€280€©0€Ë ©0€Ë ©0€Ë ™0€Ë ©0€Ë ©0€Ë ©0€Ë©0€Ë©0€Ë ™0€Ë ©0€Ë ©0€Ë ©0€Ë©0€Ë©0€Ë ™0€Ë ©0€Ë ©0€Ë ©0€Ë ™0€Ë ˜0€Ë˜0€Ë˜0€Ë˜0€Ë˜.0€Ë80€©0€+ ©0€+ ©0€+ ™0€+ ©0€+ ©0€+ ©0€+ ™0€+ ©0€+ ©0€+ ©0€+©0€+©0€+©0€+ ™0€+ ˜0€+˜0€+˜0€+80€©0€M ©0€M ©0€M ™0€M ©0€M ©0€M ©0€M ™0€M ˜0€M˜0€M˜0€M80€©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ©0€´ ©0€´ ©0€´ ™0€´ ˜0€´˜0€´˜0€´80€©0€y ©0€y ©0€y ™0€y ©0€y ©0€y ©0€y©0€y©0€y©0€y ™0€y ©0€y ©0€y ©0€y©0€y©0€y ™0€y ©0€y ©0€y ©0€y©0€y© 0€y© 0€y©0€y ™0€y ©0€y ©0€y ©0€y ™0€y ©0€y ©0€y ©0€y©0€y©0€y ™0€y ©0€y ©0€y ©0€y©0€y© 0€y© 0€y ™0€y ˜0€y˜0€y˜0€y˜0€y0€€0€j˜0€m(0€m˜0€x˜0€x˜0€x˜0€x˜0€x˜0€x(0€m˜0€Ô"˜0€Ô"˜ 0€Ô"˜ 0€Ô"˜ 0€Ô"˜ 0€Ô"˜0€Ô"˜0€Ô"˜0€Ô"80€Ô"˜0€™#˜0€™#˜0€™#˜0€™#˜0€™#˜0€™#80€Ô"˜0€ã&˜0€ã&˜0€ã&˜0€ã&˜0€ã&˜0€ã&˜0€ã&80€Ô"˜0€*˜0€*˜0€*˜0€*˜0€*˜0€*˜0€*80€Ô"˜0€j.˜0€j.˜0€j.(0€m˜0€B/80€B/˜0€]/˜0€]/˜0€]/80€B/80€B/80€B/˜0€}20€€0€ý3˜0€4˜0€4˜0€4˜0€4˜0€4(0€4˜0€ú4˜0€ú4˜0€ú4˜0€ú4(0€4˜0€Ô5˜0€Ô5˜0€Ô5(0€4˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8˜0€,8(0€4˜0€Æ:˜0€Æ:0€€0€L<˜0€N<˜0€N<(0€N<˜0€e<˜0€e<˜0€e<˜0€e<˜0€e<˜0€e<˜0€e<˜0€e<˜ 0€e<˜ 0€e<˜ 0€e<˜ 0€e<˜ 0€e<˜ 0€e<˜0€e<˜0€e<˜0€e<˜ 0€e<˜0€e<˜ 0€e<˜0€e<8˜0€e<˜ 0€e<˜0€e<˜0€e<˜0€e<˜0€e<(0€N<˜0€|?˜0€|?˜0€|?˜0€|?˜0€|?˜0€|?˜0€|?˜0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0€|?˜ 0 €|?˜ 0 €|?˜0€|?˜0€|?˜0€|?˜ 0€|?˜0€|?˜ 0€|?˜0€|?˜0€|?˜ 0€|?˜0€ñ>˜0€ñ>˜0€ñ>˜0€ñ>˜0€ñ>˜0€ñ>0€€0€wC˜0€ƒC˜0€ƒC˜0€ƒC˜0€ƒC©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ™0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ™0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ™@0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ™@0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ™@0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ©0€ƒC ™0€ƒC ˜0€€ø€˜@0€€ø€˜@0€€€˜@0€€ø€˜@0€€0$ø†˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€@˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€@˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€@˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€@˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜€€ž‘÷0 !;TUV_‡ˆ´ÅÆËÐ×ãäèñ%7`…†Š‹Äå $-?dŽ»¼ÀÉÛò )CDHQc‡ˆŒ•§ÉÊÎ×é  º½ÊËtu£³ÁÕÖ|}~ˆ­Äê;w·è  D z ” ¨ « ´ µ É Ó Ø à ì í ö ú ÿ    ) „ … † ¥ ª ° º Æ Ç Ð Ò Ø å æ ï ñ ÷    & 9 : C E K ^ _ h j p † ‡ ’ ™ ¬ ­ µ · ½ Ð Ñ Ú Ü â     * + 4 6 = Z [ e g n † ‡ ˆ  Mglr|ˆ‰“•›³´¾ÀÇàáìîõ "(?@JLSklwy€Ÿ ¡™š689:“žŸÕ /0>?ož·ÐÑÓÝÞñöþ $&)IJQVX[{|€…‡Š›œ ¥§©»¼ÀÅÇÉÚÛÞãåçøùü12JlmµÉÊËâèïûüþ@ghjm‘¸àáåèñò)*+CIP\]ac‚„†Ä!89KLMdjq}~‚„Ÿ ²³´ËÑØäåçé4579MNPRefhj©ª®°¹º¼¾y–©ª¬®Ö0KLNPcƒ¢£¥§¼3_‘’–˜¡¢¤¦ÁÜ÷øúü„¤ÉÝÞðñòjmwx‘’Ÿ   Ò"Ó"Ô"å"æ"!#9#P#^#u#v#˜#™#¬#%&&á&â&ã&'Ä(Å(M)N)***0*×+Ø+|,},h.i.j.|.@/A/B/\/]/y/X2Y2{2|2}2”2ý34 44¬4ø4ù4ú455Ò5Ó5Ô5ð5ñ5+8,8I8J8[:\:^:_:j:l:q:r:s::‚:‰:Š:‹:•:–:œ::ž:©:ª:°:±:²:¼:½:Ã:Ä:Å:Æ:à:á:L<N<c<d<e<o<p<‘<’<´<É<Ê<Ë<Ù<ð<=/=:=Y=o=p=q={=Ë=ú=.>h>—>Ë>Ì>Î>{?|?‡?ˆ?·?¸?Í?ñ?ò?ó?@@7@V@l@‹@ª@É@è@ý@>ASATAUA_A¯AÞAB?BnB¢BRCTCUCDD D!D"D@DKDRD^DcDrDsDyD‡D‹D‘DžDŸD¦D´D·D½DÆDÇDÈDÖDÙDßDêDëDòDüDÿDEEEEE E'E1E2E3EÒEŸJ 0€€€š0€€š0€š0€š0€š0€š0€š0€š0€J0€š0€ŒJ0€š0€¹«0€¹ «0€¹ «0€¹ «0€¹ ›0€¹ «0€¹ «0€¹ «0€¹ «0€¹ ›0€¹ «0€¹ «0€¹ «0€¹ «0€¹«0€¹ ›0€¹ «0€¹ «0€¹ «0€¹ «0€¹« 0€¹« 0€¹« 0€¹ “0€¹ «0€¹ «0€¹ «0€¹ «0€¹«0€¹«0€¹ ›0€¹ «0€¹ «0€¹ «0€¹ «0€¹«0€¹ ›0€¹ «0€¹ «0€¹ «0€¹ «0€¹ “0€¹ «0€¹ «0€¹ «0€¹ «0€¹ “0€¹ «0€¹ «0€¹ «0€¹ «0€¹ “0€¹ «0€¹ «0€¹ «0€¹ «0€¹«0€¹ ›0€¹ š0€¹ 0€€0€&š0€)š0€)š0€)š0€)š 90€)š 0€)š 0€)š0€)š0€)š0€)š0€)š0€)*0€)š 0€š€ 0€š€ 0€š€ 0€š 0€š 0€š€ 0€š 0€š€ 0€š€ 0 €š€ 0 €š 0 €š 0 €š 0 € 0€€0€w š0€z *0€z «0€„  «0€„  «0€„  «0€„  ›0€„  «0€„  «0€„  «0€„  «0€„  ›0€„  š0€„ :0€„ š0€é *0€z *0€z *0€z «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  «0€U  «0€U  «0€U  «0€U  ›0€U  š0€U š0€U š0€U *0€z «0€ «0€ «0€ «0€ ›0€ «0€ «0€ «0€ «0€ ›0€ «0€ «0€ «0€ «0€ ›0€ «0€ «0€ «0€ «0€ ›0€ «0€ «0€ «0€ «0€ ›0€ «0€ «0€ «0€ «0€ ›0€ «0€ «0€ «0€ «0€ ›0€ š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€š0€ 0€€0€¯š0€±*0€±«0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ «0€¼ «0€¼ «0€¼ «0€¼ «0€¼ ›0€¼ š0€¼š0€¼*0€±š0€ö:0€öš0€š0€š0€š0€š0€š0€š0€:0€ö«0€© «0€© «0€© ›0€© «0€© «0€© «0€©«0€©«0€© ›0€© «0€© «0€© «0€©«0€©«0€© ›0€© «0€© «0€© «0€© ›0€© š0€©š0€©š0€©š0€©š.0€©:0€ö«0€  «0€  «0€  ›0€  «0€  «0€  «0€  ›0€  «0€  «0€  «0€ «0€ «0€ «0€  ›0€  š0€ š0€ š0€ :0€ö«0€- «0€- «0€- ›0€- «0€- «0€- «0€- ›0€- š0€-š0€-š0€-:0€ö«0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” «0€” «0€” «0€” ›0€” š0€”š0€”š0€”:0€ö«0€` «0€` «0€` ›0€` «0€` «0€` «0€`«0€`«0€`«0€` ›0€` «0€` «0€` «0€`«0€`«0€` ›0€` «0€` «0€` «0€`«0€`«€ 0€`«€ 0€`«0€` ›0€` «0€` «0€` «0€` ›0€` «0€` «0€` «0€`«0€`«0€` ›0€` «0€` «0€` «0€`«0€`«€ 0€`« 0€` ›0€` š0€`š0€`š0€`š0€` 0€€0€U š0€X *0€X š0€c š0€c š0€c š0€c š0€c š0€c *0€X š0€Ë$š0€Ë$š 0€Ë$š 0€Ë$š 0€Ë$š 0€Ë$š0€Ë$š0€Ë$š0€Ë$:0€Ë$š0€Ÿ&š0€Ÿ&š0€Ÿ&š0€Ÿ&š0€Ÿ&š0€Ÿ&:0€Ë$š0€é)š0€é)š0€é)š0€é)š0€é)š0€é)š0€é):0€Ë$š0€"-š0€"-š0€"-š0€"-š0€"-š0€"-š0€"-:0€Ë$š0€q1š0€q1š0€q1*0€X š0€I2:0€I2š0€d2š0€d2š0€36:0€I2:0€I2:0€I2š0€¬8 0€€0€,:š0€/:š0€/:š0€/:š0€/:š0€/:*0€/:š0€);š0€);š0€);š0€);*0€/:š0€<š0€<š0€<*0€/:š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>š0€[>*0€/:š0€õ@š0€õ@ 0€€0€{Bš0€}Bš0€}B*0€}Bš0€”Bš0€”Bš0€”Bš0€”Bš0€”Bš0€”Bš0€”Bš0€”Bš 0€”Bš 0€”Bš 0€”Bš 0€”Bš 0€”Bš 0€”Bš0€”Bš0€”Bš0€”Bš 0€”Bš0€”Bš 0€”Bš0€”Bš0€”Bš 0€”Bš0€²:€š@0€`š@0€`š0€²:€*0€·=€š0€¸=€š0€¸=€š0€¸=€š0€¸=€š0€¸=€š0€¸=€š0€¸=€š0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0€¸=€š 0 €¸=€š 0 €¸=€š0€¸=€š0€¸=€š0€¸=€š 0€¸=€š0€¸=€š 0€¸=€š0€¸=€š0€¸=€š 0€¸=€M90‚2,„ðS*M90e2€š@0€`š@0€`0€O90E2€O90j2€O90j2€O90m2€O90E2 O90m2 O90m2 O90m2 O90E2 0 O90o2 O90o2 O90o2 O90o2 O90G2 0 Oy0q2 Oy0q2 Oy0q2 Oy0q2 Oy0I2 @0 Oy0u2 Oy0u2 Oy0u2 Oy0u2 Oy0M2 @0 Oy0{2 Oy0{2 Oy0{2 Oy0{2 Oy0S2 @0 Oy02 Oy02 Oy02 Oy02 Oy0W2 @0  0„t‡…G@H0JKL 0…Hù†>>               £Ê _%)1äAÛLÈM˜RžR*7<[pvyƒ‡ã …  »  C ‡ É  ¸ ³Éí„ÆÒ9^†¬Ð*Z†ˆ•à?kŸŸX›»Úømûgàñ\ 8!}!Ÿ!ä!"4"M"e"©"¹"#©#K$¢$‘%¡%÷%Ý&x'Å0ý;sBND—FHUKrLsLŸLÇLëLM2MMNO–OøOxRžR+-./012345689:;=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\]^_`abcdefghijklmnoqrstuwxz{|}~€‚„…†ˆ‰Š‹ŒR,_x…±³v#”#–#Y2w2y2žJ tÿ•€:”ÿ•„:”ÿ•„:”ÿ•Œ2;>ew”—£tÿ•€XÿŒ!tÿ•€¥ÃÅË:”ÿ•Œðôð  Ùß/ðX2ð$çšPÖ^2¢Ri€ÞBïøÿÉÿ‚2ð$É4³ðL ðç1)Û' ðMðç™1)r'ðð~¢ ð  “ ð6€Š ¿ÿ?¿ÿˆðÚ%Ì1)•ð2 ðð~ ð “ ð6€Š¿ÿ?¿ÿˆð–µçð7 ðð~ ð “ ð6€Š¿ÿ?¿ÿˆðHg#çð5 ðð~ ð “ ð6€Š¿ÿ?¿ÿˆð–vµ[ð: ðð~ ð “ ð6€Š¿ÿ?¿ÿˆð–?µ$!ð; ðð~ ð “ ð6€Š¿ÿ?¿ÿˆðïv$!ð7 ðð~ ð “ ð6€Š¿ÿ?¿ÿˆðHvg#$!ð2 ðð„B ð à ðH¿D¿ÐÑÿ?¿ÿˆðg#°L&°ð2ð„B ð à ðH¿D¿ÐÑÿ?¿ÿˆðg#±L&±ð0ðfÒ ð! s ð*¿ÿ?¿ÿˆð“H>ð6ðf" ð# s ð*¿ÿ?¿ÿˆðêH•ð5ð~B ð$ ³ ðB¿D¿Ñÿ?¿ÿˆð"ð"ð1ð~B ð%‚ ³ ðB¿D¿Ñÿ?¿ÿˆðžçžvð/ðfÒ ð& s ð*¿ÿ?¿ÿˆðµ“ï>ð+ðf" ð' s ð*¿ÿ?¿ÿˆðµêï•ð+ð~¢ ð1 “ ð6€Š1¿ÿ?¿ÿˆðç\ Û'ð, ððfÒ ð2 s ð*¿ÿ?¿ÿˆð\ –Êð(ðfÒ ð3 s ð*¿ÿ?¿ÿˆð\ “–>ð)ðf" ð4 s ð*¿ÿ?¿ÿˆð\ ê–•ð+ðx ð: ƒ ð0€ Š:¿ÿ?¿ÿð–Ÿ!µ„$ð ð ðx ð; ƒ ð0€ Š;¿ÿ?¿ÿð–ö$µÛ'ð ð ðx ð< ƒ ð0€ Š<¿ÿ?¿ÿðïŸ!Û'ð ð ð`Ò ð= c ð$¿ÿ?¿ÿð\ ¼"–g#ðð`" ð> c ð$¿ÿ?¿ÿð\ &–¾&ðð`Ò ð? c ð$¿ÿ?¿ÿðµ¼"ïg#ðð`" ð@ c ð$¿ÿ?¿ÿðµ&ï¾&ððrB ðF “ ð6¿D¿ÿ?¿ÿð.#ž.#ððxB ðGB £ ð<¿D¿Ñÿ?¿ÿðL&"L&ððxB ðH‚ £ ð<¿D¿Ñÿ?¿ÿðž-!ž.#ððrB ðI “ ð6¿D¿ÿ?¿ÿð"-!"L&ððxB ðL £ ð<¿D¿Ñÿ?¿ÿðµaHaðð~¢ ðN “ ð6€ ŠN¿¿ÿ?¿ÿð Û'˜1)ð- ð ðCð@ ð²*b, ðÛððð†¢ ðZ ƒ ð0€ ŠZ¿ÿ?¿ÿ"ñ¿€ðz*šòð ð ð†B ðW £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðBcB,ðð†B ðX £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ð c ,ðð†B ðY £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðÒcÒ,ðð€B ð\ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðBò òð+ð€B ð_ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðzòBòð%ð€B ð` “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð òÒòð%ð†B ðd £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðšcš,ðð€B ðe “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðšHbHð#ð€B ðl “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðBº ºð%ð€B ðm “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðzºBºð"ð€B ðn “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÒšð#ð€B ðo “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðšbð#ðbðf ðBñ G ðt3"ñ’¿€ðB YððrB ð]‚ “ ð6¿D¿ÿ?¿ÿðBñíGð6ðrB ðp “ ð6¿D¿ÿ?¿ÿðíñ ñð-ð€B ðu “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð Òð+ð€B ðv “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðzgBgð%ðnðf ð ñÒG ð|3"ñ’¿€ðÒšgððxB ðg £ ð<¿D¿ÿ?¿ÿˆðµGÒGð0ðxB ðx £ ð<¿D¿ÿ?¿ÿˆð ñµGð*ðpðt ð ñÒG ð} ðˆ3"ñ’¿€ðz•Bë ððrB ð~ “ ð6¿D¿ÿ?¿ÿðµGÒGð ðrB ð “ ð6¿D¿ÿ?¿ÿð ñµGð ðpðt ð ñÒG ð€ ðˆ3"ñ’¿€ðÒòšHððrB ð “ ð6¿D¿ÿ?¿ÿðµGÒGððrB ð‚ “ ð6¿D¿ÿ?¿ÿð ñµGððpðt ð ñÒG ðƒ ðˆ3"ñ’¿€ð ºÒððrB ð„ “ ð6¿D¿ÿ?¿ÿðµGÒGððrB ð… “ ð6¿D¿ÿ?¿ÿð ñµGðð€B ð† “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðB= =ð"ð€B ð‡ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðšgbgð"ð†B ð‰ £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðzcz,ðð€B ðŠ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²òzòðð€B ð‹ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²ºzºðð€B ðŒ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²gzgðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²“z“ððpðt ð‚ ðJ"F ðŽ ðˆ3"ñ’¿€ðz=B“ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ ð-!FððrB ð “ ð6¿D¿ÿ?¿ÿð-!ðJ"ðððpðt ð ñÒG ð‘ ðˆ3"ñ’¿€ð =Ò“ððrB ð’ “ ð6¿D¿ÿ?¿ÿðµGÒGððrB ð“ “ ð6¿D¿ÿ?¿ÿð ñµGðð€B ð” “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÒ“š“ðð€B ð• “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðš“b“ðð€B 𘠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ð²°z°ðð€B ð™ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðz°B°ððpðt ð‚ ðJ"F ðš ðˆ3"ñ’¿€ðBi ¿ððrB 𛂠“ ð6¿D¿ÿ?¿ÿð‚ ð-!FððrB 𜠓 ð6¿D¿ÿ?¿ÿð-!ðJ"ððð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð iÒiðð€B ðž “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÒjšjðð€B 🠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðšjbjðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²£z£ðð€B ð¡B “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²ë %ë ðð€B 𢠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðBë ë ððpðt ð‚ ðJ"F ð£ ðˆ3"ñ’¿€ð £Òù ððrB 𤂠“ ð6¿D¿ÿ?¿ÿð‚ ð-!FððrB 𥠓 ð6¿D¿ÿ?¿ÿð-!ðJ"ððð€B 𦠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðÒ£š£ðð€B ð§ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðš£b£ðð€B 𨠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ð²P$zP$ððpðt ð‚ ðJ"F ð© ðˆ3"ñ’¿€ðBú" P$ððrB 𪂠“ ð6¿D¿ÿ?¿ÿð‚ ð-!FððrB ð« “ ð6¿D¿ÿ?¿ÿð-!ðJ"ððð€B 𬠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðzP$BP$ðð€B ð­ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð ú"Òú"ððpðt ð ñÒG ð® ðˆ3"ñ’¿€ðÒú"šP$ððrB 㒹 ð6¿D¿ÿ?¿ÿðµGÒGððrB ð° “ ð6¿D¿ÿ?¿ÿð ñµGðð€B ð±      !"#$%&'()*+,-0/Š123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnpýÿÿÿqrstuvwxyz{|}~€ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðšP$bP$ððnðf ð‚ ,-!‚  ð½3"ñ’¿€ðzû$%Q&ððxB 𳂠£ ð<¿D¿ÿ?¿ÿˆð‚ ,-!‚ ððxB 𺠣 ð<¿D¿ÿ?¿ÿˆð‚ ,-!‚ ðð€B ð¾B “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²û$zû$ðð€B ð¿B “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²Q&zQ&ðð€B ðÀ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð%û$šû$ðð€B ðÁ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð%Q&šQ&ððpðt ð‚ ,-!‚  ðà ðˆ3"ñ’¿€ðšû$EQ&ððrB ðÄ‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðÅ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ðð€B ðÆ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðEû$)û$ðð€B ðÇ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðEQ&)Q&ðð€B ðÈ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð²¨)z¨)ððpðt ð‚ ðJ"F ðÉ ðˆ3"ñ’¿€ðBR( ¨)ððrB ðÊ‚ “ ð6¿D¿ÿ?¿ÿð‚ ð-!FððrB ðË “ ð6¿D¿ÿ?¿ÿð-!ðJ"ððð€B ðÌ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðz¨)B¨)ðð€B ðÍ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð R(ÒR(ððpðt ð ñÒG ðÎ ðˆ3"ñ’¿€ðÒR(š¨)ððrB ðÏ “ ð6¿D¿ÿ?¿ÿðµGÒGððrB ðÐ “ ð6¿D¿ÿ?¿ÿð ñµGðð€B ðÑ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðš¨)b¨)ððpðt ð‚ ,-!‚  ðÒ ðˆ3"ñ’¿€ðBS*í©+ððrB ðÓ‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðÔ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððpðt ð‚ ,-!‚  ðÕ ðˆ3"ñ’¿€ðÒS*}©+ððrB ðÖ‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ð× “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ðð€B ðØ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðíS*ÒS*ðð€B ðÙ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðí©+Ò©+ððÚðf ð}3-b‰. ðè3"ñ’¿€ð}S*b©+ððVðZ ð‚ ,-!‚  ðÚ ðˆð}3-(‰.ððrB ðÛ‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðÜ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ðÝ ðˆð(3-Ó‰.ððrB ðÞ‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðß “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ðà ðˆðÓ3-~‰.ððrB ðá‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðâ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ðã ðˆð~3-)‰.ððrB ðä‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðå “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðæ “ ð6¿D¿ÿ?¿ÿð}3-b3-ððrB ðç “ ð6¿D¿ÿ?¿ÿð}‰.b‰.ðð8ðf ð²3-B‰. ð 3"ñ’¿€ð²S*B©+ððVðZ ð‚ ,-!‚  ðø ðˆð—3-B‰.ððrB ðù‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðú “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ðû ðˆðì3-—‰.ððrB ðü‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðý “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ðþ ðˆðA3-ì‰.ððrB ðÿ‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ð “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ð ðˆð–3-A‰.ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ð “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððVðZ ð‚ ,-!‚  ð ðˆðë3-–‰.ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ð “ ð6¿D¿ÿ?¿ÿð‚ ,-!‚ ððrB ðB “ ð6¿D¿ÿ?¿ÿð²3-B3-ððrB ðB “ ð6¿D¿ÿ?¿ÿð²‰.B‰.ððx(ðn ð> 3 ¡%-6 ðƒ ðˆC"ñ‘’ððð~¢ ðT “ ð6€ŠT¿ÿ?¿ÿˆð? @'ð ðð~Ò ð  “ ð6€Š ¿ÿ?¿ÿˆð²3 ¶û ð= ðð~â ð  “ ð6€Š ¿ÿ?¿ÿˆð² ¶ŒðO ðð~B ð ³ ðB¿D¿Ñÿ?¿ÿˆð´û ´ ð6ðhð` ð´´îÑ ð# ð ˆð´Œî©ððx¢ ð ƒ ð0€Š¿ÿ?¿ÿð´´îÑð7 ððxB ð £ ð<¿D¿Ñÿ?¿ÿð´´´Ñð5ðRð` ð²Ñ¶b ð=# ð ˆð²©¶:ððxâ ð ƒ ð0€Š¿ÿ?¿ÿð²Ñ¶Eð6 ððbðZ ð´´îÑ ð ðˆð´Eîbððx¢ ð ƒ ð0€Š¿ÿ?¿ÿð´´îÑð4 ððxB ð £ ð<¿D¿Ñÿ?¿ÿð´´´Ñð4ðtð` ð²b¶G ð8# ð ˆð²:¶ðð~Ò ð “ ð6€Š¿ÿ?¿ÿˆ ð²b¶*ð7 ðð~B ð  ³ ðB¿D¿Ñÿ?¿ÿˆ ð´*´Gð8ðnðZ ð¶ bR ð‚ ðˆð¶ bRððxB ð4 £ ð<¿D¿ÿ?¿ÿˆð¶RbRð(ðxB ð5‚ £ ð<¿D¿ÿ?¿ÿˆðb bRð)ð~B ð6B ³ ðB¿D¿Ñÿ?¿ÿˆð¶ b ð)ð~¢ ð7 “ ð6€Š7¿ÿ?¿ÿˆðïê ðð) ððÎðZ ð²b° ð ðˆð²b°ðð~â ð “ ð6€Š¿ÿ?¿ÿˆð²¶“ð- ððnðZ ð¶bY ð€ ðˆð¶bYððxB ð. £ ð<¿D¿ÿ?¿ÿˆð¶YbYð+ðxB ð/‚ £ ð<¿D¿ÿ?¿ÿˆðbbYð.ð~B ð0B ³ ðB¿D¿Ñÿ?¿ÿˆð¶bð-ð~¢ ð1 “ ð6€Š1¿ÿ?¿ÿˆðïñðð, ððhð` ð´´îÑ ð9# ð ˆð´“î°ððx¢ ð: ƒ ð0€Š:¿ÿ?¿ÿð´´îÑð' ððxB ð; £ ð<¿D¿Ñÿ?¿ÿð´´´Ñð'ðRð` ð²Ñ¶b ð># ð ˆð²°¶A%ððxâ ð? ƒ ð0€Š?¿ÿ?¿ÿð²Ñ¶Eð( ððbðZ ð´´îÑ ð@ ðˆð´Eîbððx¢ ðA ƒ ð0€ŠA¿ÿ?¿ÿð´´îÑð( ððxB ðB £ ð<¿D¿Ñÿ?¿ÿð´´´Ñð(ðhð` ð²b¶G ðC# ð ˆð²A%¶&(ððxÒ ðD ƒ ð0€ŠD¿ÿ?¿ÿð²b¶*ð( ððxB ðE £ ð<¿D¿Ñÿ?¿ÿð´*´Gð(ð°ð` ð²FbØ! ðF# ð ˆð²%&b·-ððxâ ðG ƒ ð0€ŠG¿ÿ?¿ÿð²G¶» ð* ððVðZ ð¶bº ðH ðˆð¶FbððrB ðI “ ð6¿D¿ÿ?¿ÿð¶ºbºð*ðrB ðJ‚ “ ð6¿D¿ÿ?¿ÿðbbºð*ðxB ðKB £ ð<¿D¿Ñÿ?¿ÿð¶bð*ðx¢ ðL ƒ ð0€ŠL¿ÿ?¿ÿðïðºð* ððbðZ ð´´îÑ ðM ðˆð´» îØ!ððx¢ ðN ƒ ð0€ŠN¿ÿ?¿ÿð´´îÑð* ððxB ðO £ ð<¿D¿Ñÿ?¿ÿð´´´Ñð*ðxB ðQ £ ð<¿D¿ÿ?¿ÿˆð ã²ãð(ðxB ðR‚ £ ð<¿D¿ÿ?¿ÿˆð ã ê!ð)ð~B ðU ³ ðB¿D¿Ñÿ?¿ÿˆð ê!²ê!ð(ðhð` ð²b¶G ðV# ð ˆðîÔ.ò¹1ððxÒ ðW ƒ ð0€ŠW¿ÿ?¿ÿð²b¶*ð) ððxB ðX £ ð<¿D¿Ñÿ?¿ÿð´*´Gð)ðhð` ð²b¶G ðY# ð ˆðñA%õ"&(ððxÒ ðZ ƒ ð0€ ŠZ¿ÿ?¿ÿð²b¶*ð% ð ðxB ð[ £ ð<¿D¿Ñÿ?¿ÿð´*´Gð%ðÎðZ ðñ%&¡%·- ð ðˆðñ%&¡%·-ðð~â ð] “ ð6€#Š]¿ÿ?¿ÿˆðñ&(õ"š,ð ð#ðnðZ ðõ"%&¡%`* ð~ ðˆðõ"%&¡%`*ððxB ð_ £ ð<¿D¿ÿ?¿ÿˆðõ"`*¡%`*ððxB ð`‚ £ ð<¿D¿ÿ?¿ÿˆð¡%%&¡%`*ðð~B ðaB ³ ðB¿D¿Ñÿ?¿ÿˆðõ"%&¡%%&ðð~¢ ðb “ ð6€"Šb¿ÿ?¿ÿˆð.#ø(/%*ð ð"ðhð` ð´´îÑ ðc# ð ˆðóš,-!·-ððx¢ ðd ƒ ð0€!Šd¿ÿ?¿ÿð´´îÑð ð!ðxB ðe £ ð<¿D¿Ñÿ?¿ÿð´´´ÑððxB ðf £ ð<¿D¿ÿ?¿ÿˆð¶ê!óê!ð&ð~B ðg ³ ðB¿D¿Ñÿ?¿ÿˆðóê!óA%ð'ð~¢ ðh “ ð6€$Šh¿ÿ?¿ÿˆðï#"ð@#ð% ð$ð~â ðl “ ð6€'Šl¿ÿ?¿ÿˆðî¹1ò-6ð* ð'ðnðZ ðò¸/žó3 ð} ðˆðò¸/žó3ððxB ðn £ ð<¿D¿ÿ?¿ÿˆðòó3žó3ððxB ðo‚ £ ð<¿D¿ÿ?¿ÿˆðž¸/žó3ðð~B ðpB ³ ðB¿D¿Ñÿ?¿ÿˆðò¸/ž¸/ðð~¢ ðq “ ð6€&Šq¿ÿ?¿ÿˆð+‹2,¨3ð ð&ð~¢ ðs “ ð6€%Šs¿ÿ?¿ÿˆð´2îº3ð+ ð%ðxB ðu £ ð<¿D¿ÿ?¿ÿˆð´·-ó·-ð'ð~B ðv ³ ðB¿D¿Ñÿ?¿ÿˆðð·-ðÔ.ð%ðxB ðyB £ ð<¿D¿ÿ?¿ÿˆð> ó3îó3ð&ðxB ðz‚ £ ð<¿D¿ÿ?¿ÿˆð>  > ó3ð(ð~B ð{ ³ ðB¿D¿Ñÿ?¿ÿˆð>  ² ð(ð¤Cð@ ð 2+¡%‹/ ðÝððð†¢ ð# s ð*€.¿ÿ?¿ÿ#"ñ ¿`¿€ðbP+J"¦,ð ð.ð†¢ ð" s ð*€-¿ÿ?¿ÿ#"ñ ¿`¿€ð# 2+µˆ,ð ð-ð†¢ ð s ð*€,¿ÿ?¿ÿ#"ñ ¿`¿€ð ./%p/ð ð,ð†¢ ð s ð*€+¿ÿ?¿ÿ#"ñ ¿`¿€ð Ä,“ .ð ð+ð€B ð• “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð! ý,é ý,ðð€B ð— “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð" á-” á-ðð€B 𘂠“ ð6¿D¿ÿ?¿ÿ"ñ¿€ð” ý,Í á-ðð€B ð™ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðé ý," á-ðð€B ðš “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÍ ý,? ý,ðð€B ð› “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð? ý,x á-ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð! S.> S.ðð€B ð¡ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð> S.w 7/ðð€B 𢠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðw 7/[ 7/ðð€B 𣂠“ ð6¿D¿ÿ?¿ÿ"ñ¿€ð[ S.” 7/ðð€B 𤠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ð” S.x S.ððhðf ð †(f!j) ðª3"ñ’¿€ðx ý,Î á-ððxB 𜠣 ð<¿D¿ÿ?¿ÿˆð j)‚ j)ððxB ð‚ £ ð<¿D¿ÿ?¿ÿˆð‚ †(» j)ððxB ðž £ ð<¿D¿ÿ?¿ÿˆð» †(-!†(ððrB ð© “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð« ðˆ3"ñ’¿€ðÎ ý,$á-ððrB 𬠓 ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð­‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð® “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB 㒹 ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð° ðˆ3"ñ’¿€ð$ý,zá-ððrB ð± “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB 𲂠“ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð³ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð´ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðµ ðˆ3"ñ’¿€ðzý,Ðá-ððrB ð¶ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð·‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB 𸠓 ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð¹ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðº ðˆ3"ñ’¿€ðÐý,&á-ððrB ð» “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB 𼂠“ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð½ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð¾ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð¿ ðˆ3"ñ’¿€ð&ý,|á-ððrB ðÀ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðÁ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðà “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðÄ ðˆ3"ñ’¿€ð|ý,Òá-ððrB ðÅ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðÆ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðÇ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðÈ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð€B ðÉ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðx S.± 7/ðð€B ðÊ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð± 7/7/ðð€B ðË‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðS.@7/ðð€B ðÌ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð@S.$S.ðð€B ðÍ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð$S.]7/ðð€B ðÎ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð]7/_7/ððÜðf ð_Û'µ¿( ðù3"ñ’¿€ð_S.µ7/ððrB ðÏ‚ “ ð6¿D¿ÿ?¿ÿð_Û'˜¿(ððrB ðÐ “ ð6¿D¿ÿ?¿ÿð˜Û'|Û'ððrB ðÑ “ ð6¿D¿ÿ?¿ÿð|Û'µ¿(ðð€B ðÒ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðµ7/a7/ððdðt ð †(f!j) ðÓ ðˆ3"ñ’¿€ðÒý,(á-ððrB ðÔ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðÕ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðÖ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð× “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðØ ðˆ3"ñ’¿€ð(ý,~á-ððrB ðÙ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðÚ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðÛ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðÜ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðÝ ðˆ3"ñ’¿€ð~ý,Ôá-ððrB ðÞ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðß‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðà “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðá “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðâ ðˆ3"ñ’¿€ðÔý,*á-ððrB ðã “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðä‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðå “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðæ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðç ðˆ3"ñ’¿€ð*ý,€á-ððrB ðè “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðé‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðê “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðë “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðì ðˆ3"ñ’¿€ð€ý,Öá-ððrB ðí “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðî‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðï “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðñ ðˆ3"ñ’¿€ðÖý,,á-ððrB ðò “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðó‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðô “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðõ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððÜðf ð·Û' ¿( ðú3"ñ’¿€ðaS.·7/ððrB ðö‚ “ ð6¿D¿ÿ?¿ÿð·Û'ð¿(ððrB ð÷ “ ð6¿D¿ÿ?¿ÿððÛ'ÔÛ'ððrB ðø “ ð6¿D¿ÿ?¿ÿðÔÛ' ¿(ðð€B ðû “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð·7/ 7/ððêðt ð·Û' ¿( ðü ðˆ3"ñ’¿€ð S.c7/ððrB ðý‚ “ ð6¿D¿ÿ?¿ÿð·Û'ð¿(ððrB ðþ “ ð6¿D¿ÿ?¿ÿððÛ'ÔÛ'ððrB ðÿ “ ð6¿D¿ÿ?¿ÿðÔÛ' ¿(ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðc7/¹7/ðð€B ð‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð¹S.ò7/ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðòS.,S.ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ð,ý,‚ á-ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ð‚ ý,Ø!á-ððrB ð  “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð  “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð  “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð  ðˆ3"ñ’¿€ðØ!ý,.#á-ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð,S.e7/ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðe7/$7/ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð.#á- #á-ðð€B ð‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð #ý,Ù#á-ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÙ#ý,¡%ý,ðð€B ð‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð$S.K$7/ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðK$S.¡%S.ðð†B ð £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ða‰+a‹/ðð†B ð £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ð„$‰+„$‹/ð*ð†B ð £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ð> ‰+> ‹/ððŒB ð  ³ ðB¿D¿ÐÑÿ?¿ÿ"ñ¿€ð> 4,a4,ððŒB ð! ³ ðB¿D¿ÐÑÿ?¿ÿ"ñ¿€ða4,„$7,ðð¦’ðT ðï+…&g5 ðÜ#"ñ ‘ðððŒ¢ ð& ƒ ð0€2Š&¿ÿ?¿ÿ#"ñ ¿`¿€ðFï+.#E-ð ð2ðŒ¢ ð' ƒ ð0€1Š'¿ÿ?¿ÿ#"ñ ¿`¿€ðï+DE-ð ð1ðŒ¢ ð( ƒ ð0€0Š(¿ÿ?¿ÿ#"ñ ¿`¿€ð¹.&0ð ð0ðŒ¢ ð) ƒ ð0€/Š)¿ÿ?¿ÿ#"ñ ¿`¿€ðc-w ¹.ð ð/ð€B ð* “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð œ-Í œ-ðð€B ð+ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð €.x €.ðð€B ð,‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðx œ-± €.ðð€B ð- “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÍ œ- €.ðð€B ð. “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð± œ-# œ-ðð€B ð/ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð# œ-\ €.ðð€B ð0 “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð ò." ò.ðð€B ð1 “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð" ò.[ Ö/ðð€B ð2 “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð[ Ö/? Ö/ðð€B ð3‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð? ò.x Ö/ðð€B ð4 “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðx ò.\ ò.ððdðt ð †(f!j) ð5 ðˆ3"ñ’¿€ð\ œ-²€.ððrB ð6 “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð7‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð8 “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð9 “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð: ðˆ3"ñ’¿€ð²œ-€.ððrB ð; “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð<‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð= “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð> “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð? ðˆ3"ñ’¿€ðœ-^€.ððrB ð@ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðA‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðB “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðC “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðD ðˆ3"ñ’¿€ð^œ-´€.ððrB ðE “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðF‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðG “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðH “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðI ðˆ3"ñ’¿€ð´œ- €.ððrB ðJ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðK‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðL “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðM “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðN ðˆ3"ñ’¿€ð œ-`€.ððrB ðO “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðP‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðQ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðR “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðS ðˆ3"ñ’¿€ð`œ-¶€.ððrB ðT “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðU‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðV “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðW “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð€B ðX “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð\ ò.• Ö/ðð€B ðY “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð• Ö/AÖ/ðð€B ðb “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðCÖ/ñÖ/ððdðt ð †(f!j) ðc ðˆ3"ñ’¿€ð¶œ- €.ððrB ðd “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðe‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðf “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððr | ˆ ”  ¬´¼ÄäI2C-Master Core Specifications'OpenCores I2C Master IP-Core DatasheetfRichard HerveilleerichSpecifications TemplateRichard Herveillepl164Microsoft Word 10.0@øÍª¬@ a_AÃ@äXà‘À@Ê ŒdAÃT ß:þÿÕÍÕœ.“—+,ù®DÕÍÕœ.“—+,ù®d  pxŒ”œ¤¬ ´¼ÄÌ Ô ÿä OpenCoresw°}#EA I2C-Master Core Specifications Title´ 8@ _PID_HLINKSäAlKhttp://www.opencores.org/þÿ ÿÿÿÿ ÀFMicrosoft Word Document MSWoB ðg “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðh ðˆ3"ñ’¿€ð œ-b€.ððrB ði “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðj‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðk “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðl “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðm ðˆ3"ñ’¿€ðbœ-¸€.ððrB ðn “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðo‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðp “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðq “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðr ðˆ3"ñ’¿€ð¸œ-€.ððrB ðs “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðt‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðu “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðv “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðw ðˆ3"ñ’¿€ðœ-d€.ððrB ðx “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðy‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðz “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð{ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð| ðˆ3"ñ’¿€ðdœ-º€.ððrB ð} “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð~‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð€ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ðºœ- €.ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðƒ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð„ “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð… “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððêðt ð·Û' ¿( ð‹ ðˆ3"ñ’¿€ðñò.GÖ/ððrB ðŒ‚ “ ð6¿D¿ÿ?¿ÿð·Û'ð¿(ððrB ð “ ð6¿D¿ÿ?¿ÿððÛ'ÔÛ'ððrB ðŽ “ ð6¿D¿ÿ?¿ÿðÔÛ' ¿(ððdðt ð †(f!j) ð’ ðˆ3"ñ’¿€ð œ-f!€.ððrB ð“ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB 𔂠“ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð• “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð– “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð— ðˆ3"ñ’¿€ðf!œ-¼"€.ððrB 𘠓 ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB 𙂠“ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðš “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð› “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðœ ðˆ3"ñ’¿€ð¼"œ-$€.ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðž‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB 🠓 ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð  “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð†B 𨠣 ð<¿D¿Îÿ?¿ÿ"ñ¿€ðE(,E*0ðð†B ð© £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðK$F,K$H0ðð†B 𪠣 ð<¿D¿Îÿ?¿ÿ"ñ¿€ðé ,é 0ððŒB ð« ³ ðB¿D¿ÐÑÿ?¿ÿ"ñ¿€ðé ñ,Eñ,ð!ðŒB 𬠳 ðB¿D¿ÐÑÿ?¿ÿ"ñ¿€ðEñ,K$ñ,ðð€B 𵂠“ ð6¿D¿ÿ?¿ÿ"ñ¿€ðAò.zÖ/ðð€B ð¶ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðzò. ò.ðð€B ð· “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð ò.CÖ/ðð€B 𸠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðGÖ/½$Ö/ðð˜B ðÆ Ó ðN¿D¿ÐÑÔÕÿ?¿ÿ"ñ¿€ðK$ñ,/%ñ,ðð€B ðË “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð$€.½$€.ððŒ¢ ðÍ ƒ ð0€6ŠÍ¿ÿ?¿ÿ#"ñ ¿`¿€ðF1.#d2ð ð6ðŒ¢ ðÎ ƒ ð0€5ŠÎ¿ÿ?¿ÿ#"ñ ¿`¿€ð1Dd2ð ð5ðŒ¢ ðÏ ƒ ð0€4ŠÏ¿ÿ?¿ÿ#"ñ ¿`¿€ðØ3&.5ð ð4ðŒ¢ ðÐ ƒ ð0€3ŠÐ¿ÿ?¿ÿ#"ñ ¿`¿€ð‚2w Ø3ð ð3ðdðt ð †(f!j) ðÜ ðˆ3"ñ’¿€ð\ »2²Ÿ3ððrB ðÝ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðÞ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðß “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðà “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðá ðˆ3"ñ’¿€ð²»2Ÿ3ððrB ðâ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðã‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðä “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðå “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðæ ðˆ3"ñ’¿€ð»2^Ÿ3ððrB ðç “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðè‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðé “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðê “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðë ðˆ3"ñ’¿€ð^»2´Ÿ3ððrB ðì “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðí‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðî “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðï “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðð ðˆ3"ñ’¿€ð´»2 Ÿ3ððrB ðñ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðò‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðó “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðô “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðõ ðˆ3"ñ’¿€ð »2`Ÿ3ððrB ðö “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð÷‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðø “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðù “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðú ðˆ3"ñ’¿€ð`»2¶Ÿ3ððrB ðû “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðü‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðý “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðþ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð• õ4Aõ4ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðïõ4Eõ4ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ð¶»2 Ÿ3ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ð »2bŸ3ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð ‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð  “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð  “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð  ðˆ3"ñ’¿€ðb»2¸Ÿ3ððrB ð  “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ð¸»2Ÿ3ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ð»2dŸ3ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð ðˆ3"ñ’¿€ðd»2ºŸ3ððrB ð “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð  ðˆ3"ñ’¿€ðº»2 Ÿ3ððrB ð! “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð"‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð# “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð$ “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð) ðˆ3"ñ’¿€ð »2f!Ÿ3ððrB ð* “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð+‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð, “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð- “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð. ðˆ3"ñ’¿€ðf!»2¼"Ÿ3ððrB ð/ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð0‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð1 “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð2 “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ð3 ðˆ3"ñ’¿€ð¼"»2$Ÿ3ððrB ð4 “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð5‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ð6 “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ð7 “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð†B ð9 £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðEG1EI5ðð†B ð: £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðK$e1K$g5ðð†B ð; £ ð<¿D¿Îÿ?¿ÿ"ñ¿€ðé ,1é .5ððŒB ð< ³ ðB¿D¿ÐÑÿ?¿ÿ"ñ¿€ðé 2E2ððŒB ð= ³ ðB¿D¿ÐÑÿ?¿ÿ"ñ¿€ðE2K$2ðð€B ð>‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðA4zõ4ðð€B ð? “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðz4 4ðð€B ð@ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð 4Cõ4ðð€B ðV‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðé 4" õ4ðð€B ðW‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð" 4” 4ðð€B ðX “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð” 4Í õ4ðð€B ðY “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðÍ õ4? õ4ððêðt ð·Û' ¿( ðZ ðˆ3"ñ’¿€ð? 4• õ4ððrB ð[‚ “ ð6¿D¿ÿ?¿ÿð·Û'ð¿(ððrB ð\ “ ð6¿D¿ÿ?¿ÿððÛ'ÔÛ'ððrB ð] “ ð6¿D¿ÿ?¿ÿðÔÛ' ¿(ððdðt ð †(f!j) ð^ ðˆ3"ñ’¿€ð »2\ Ÿ3ððrB ð_ “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ð`‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ða “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðb “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ððdðt ð †(f!j) ðc ðˆ3"ñ’¿€ð° »2 Ÿ3ððrB ðd “ ð6¿D¿ÿ?¿ÿð j)‚ j)ððrB ðe‚ “ ð6¿D¿ÿ?¿ÿð‚ †(» j)ððrB ðf “ ð6¿D¿ÿ?¿ÿð» †(-!†(ððrB ðg “ ð6¿D¿ÿ?¿ÿð-!†(f!j)ðð€B ðh “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð> õ4é õ4ðð€B ði “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð> Ÿ3° Ÿ3ððêðt ð·Û' ¿( ðj ðˆ3"ñ’¿€ð™4ïõ4ððrB ðk‚ “ ð6¿D¿ÿ?¿ÿð·Û'ð¿(ððrB ðl “ ð6¿D¿ÿ?¿ÿððÛ'ÔÛ'ððrB ðm “ ð6¿D¿ÿ?¿ÿðÔÛ' ¿(ðð€B ðn “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðCõ4™õ4ðð€B ðo‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðE4~õ4ð ð€B ðp‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð~4›4ððbðf ðbý2›á3 ðs3"ñ’¿€ð›4Ôõ4ððrB ðq “ ð6¿D¿ÿ?¿ÿðbý2›á3ððrB ðr‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ðð€B ðt‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðEõ4›õ4ððÀðf ðÔý2*á3 ð{3"ñ’¿€ðÔ4*õ4ððVðZ ðbý2›á3 ðv ðˆðñý2*á3ððrB ðw “ ð6¿D¿ÿ?¿ÿðbý2›á3ððrB ðx‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ððrB ðy‚ “ ð6¿D¿ÿ?¿ÿðÔý2ñý2ððrB ðz‚ “ ð6¿D¿ÿ?¿ÿðÔá3ñá3ððÎðt ðÔý2*á3 ð| ðˆ3"ñ’¿€ð*4€õ4ððVðZ ðbý2›á3 ð} ðˆðñý2*á3ððrB ð~ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð€‚ “ ð6¿D¿ÿ?¿ÿðÔý2ñý2ð ðrB ð‚ “ ð6¿D¿ÿ?¿ÿðÔá3ñá3ð ðÎðt ðÔý2*á3 ð‚ ðˆ3"ñ’¿€ð€4Öõ4ððVðZ ðbý2›á3 ðƒ ðˆðñý2*á3ððrB ð„ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð…‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð†‚ “ ð6¿D¿ÿ?¿ÿðÔý2ñý2ð ðrB ð‡‚ “ ð6¿D¿ÿ?¿ÿðÔá3ñá3ð ðÎðt ðÔý2*á3 ðˆ ðˆ3"ñ’¿€ðÖ4,õ4ððVðZ ðbý2›á3 ð‰ ðˆðñý2*á3ððrB ðŠ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð‹‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ðŒ‚ “ ð6¿D¿ÿ?¿ÿðÔý2ñý2ð ðrB ð‚ “ ð6¿D¿ÿ?¿ÿðÔá3ñá3ð ðÎðt ðÔý2*á3 ðŽ ðˆ3"ñ’¿€ð,4‚ õ4ððVðZ ðbý2›á3 ð ðˆðñý2*á3ððrB ð “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð‘‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð’‚ “ ð6¿D¿ÿ?¿ÿðÔý2ñý2ð ðrB ð“‚ “ ð6¿D¿ÿ?¿ÿðÔá3ñá3ð ðÎðt ðÔý2*á3 ð” ðˆ3"ñ’¿€ð‚ 4Ø!õ4ððVðZ ðbý2›á3 ð• ðˆðñý2*á3ððrB ð– “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB ð—‚ “ ð6¿D¿ÿ?¿ÿðbý2›á3ð ðrB 𘂠“ ð6¿D¿ÿ?¿ÿðÔý2ñý2ð ðrB 𙂠“ ð6¿D¿ÿ?¿ÿðÔá3ñá3ð ð€B ð ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðØ!4$4ðð€B ð¡‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðØ!õ4õ"õ4ðð€B 𢂠“ ð6¿D¿ÿ?¿ÿ"ñ¿€ðõ"4.#õ4ðð€B 𣠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ð$Ÿ3„$Ÿ3ð ð€B 𤂠“ ð6¿D¿ÿ?¿ÿ"ñ¿€ð„$»2½$Ÿ3ð ð€B 𥠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ð/%4L&4ð ð€B 𦠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ð½$»2…&»2ð ð€B ð§ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ð$4K$õ4ð ð€B 𨠓 ð6¿D¿ÿ?¿ÿ"ñ¿€ðK$õ4ö$õ4ðð€B ð©‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿€ðö$4/%õ4ðð˜B ðª Ó ðN¿D¿ÐÑÒÓÿ?¿ÿ"ñ¿€ð 2é 2ð 𺲠ðÙ c ðjAÁÿƒÃ.¿ wbc4windozešÿÿÿšÿÿÿ£S`T£S`TšÿÿÿC"ñ¿`’¿ðð#ð´² ðÚ c ðjAÁÿƒÃ.¿ wbc4windozešÿÿÿšÿÿÿ£S`T£S`Tšÿÿÿ3"ñ¿`’¿ðððt² ðÞ s ð*€€A ??¿ ÿ?3"ñ¿`¿€?ðððB ðS ð¿Ëÿ ?ð6¬4,8\:Ì>RCžJÙ·¯úÿÿ"WjÞs!ì 4O¦ÿÿÿhð!4 ƒ6™ .4ÛªfZWtÝÛ™44Üùéza 4ÿÿ ATI± A_± AdO A ¼ Aœ_± Aì> A|! AôL±" AtL±# A´K±$ AtK±% A4K±& At¼' A P( A\S) A¼U* AGJMZdmwz}Š“œ¦¯²µ¸Ð/7JPai8@ck×ß7?v~®³/š/•4›4;5?5Ê:Ð:å:ë: <<ÿ=>œ>¡>ãAèAsBxB2D:D^DbDŸD¥D½DÀDëDñDE E'E+E3EÓEÔE•F›FGHIHKHNH—HšH&I(I*I-IvIyIJJ7J;JŸJ  )*Ÿ¢Õ  .0=@F]cpv‘Ÿ¥¸Ï–œ¡³ÎÙ÷´"·"{=€=Î=Ò=ú=þ=.>3>k>o>—>›>_AdA²A¶AÞAâABBBBFBnBrB¢B§BôBøB#C&C3EÓEÔEçEìE GGGGJGUGjGmGG•GÁGÊGGHNH&I-I7J>JŸJ33333333333333333333333333333333333333!Vˆ´7` ?¼Û cˆé ?£Öê;èD z ) † â  ˆ Mõ€“ŸÑ)J[|Jµhmá+c‚†9„ éjª¾y®LP£§ì’¦ÜüÉò!#v#Ë<{=ó?ý@>A_A@D2E3EoEÓEÔEåEçEöEøEF FFF3F6FLFNFVF[FmFoF€F‚F’F•FªFÙFëFíF÷FGG&G)G+G.G0GBGDGUGWGYG[G^G`GcGuGGG„G†GˆGŠG•G—G™G›G¤G¦G±G³G¶G¸GºG¼GÊGÌGÎGÐGÓGÕG×GóGöG¡H·H¹HÐHÒHÕH×HyI{I‘I“IªI¬I¯I@JVJXJoJŸJ3EÓEÔEŸJÿÿRichard HerveilleRichard HerveilleRichard HerveilleRichard HerveilleRichard HerveilleRichard HerveilleRichard HerveilleRichard Herveillerichard Herveille|ÿÿÿ®é PHÿÿÿÿÿÿÿÿ}ÿÿÿV%ªGÿÿÿÿÿÿÿÿ~ÿÿÿ´ßœqFÿÿÿÿÿÿÿÿÿÿÿÂŽî“Eÿÿÿÿÿÿÿÿ€ÿÿÿŠ]~ÎCÿÿÿÿÿÿÿÿÿÿÿzû¦¤Bÿÿÿÿÿÿÿÿ‚ÿÿÿðN€ØAÿÿÿÿÿÿÿÿƒÿÿÿT7T @ÿÿÿÿÿÿÿÿˆÿÿÿª{:}Dÿÿÿÿÿÿÿÿ‰ÿÿÿnX\^?ÿÿÿÿÿÿÿÿ¾ ÿÿÿÿÿÿÿÿÿ®\Šÿÿÿÿÿÿÿÿÿèy1ÆoìÂÿÿÿÿÿÿÿÿÿ ,l5\C¼æÿÿÿÿÿÿÿÿÿOh 9ÆoìÂÿÿÿÿÿÿÿÿÿ‹À>>Ö>ÿEh5HÆoìÂÿat¬Mÿÿÿÿÿÿÿÿÿ3eÅWÿÿÿÿÿÿÿÿÿ’)¨^ÿÿÿÿÿÿÿÿÿY}FlÿZ/môÖàÿÿÿÿÿÿÿÿÿÅF"oõ8ÿÿÿÿÿÿÿÿÿR¬sÿÿÿÿÿÿÿÿÿ„„˜þÆ^„`„˜þ.„ „˜þÆ ^„ `„˜þ.„8„˜þÆ8^„8`„˜þ.„Є˜þÆÐ^„Ð`„˜þ. „„˜þÆ^„`„˜þOJQJo(·ð „ „˜þÆ ^„ `„˜þOJQJo(·ð „8„˜þÆ8^„8`„˜þOJQJo(·ð „Є˜þÆÐ^„Ð`„˜þOJQJo(·ð„h„˜þÆh^„h`„˜þ. „h„˜þÆh^„h`„˜þOJQJo(·ð„h„˜þÆh^„h`„˜þo()„h„˜þÆh^„h`„˜þo()„h„˜þÆh^„h`„˜þo(-„h„˜þÆh^„h`„˜þ.„„PþÆ^„`„Pþ..„È„þÆ^„È`„þ...„À„xýÆØ ^„À`„xý.... „¸„èüƨ ^„¸`„èü ..... „° „XüÆ^„° `„Xü ...... „¨ „ÈûÆà^„¨ `„Èû....... „ „8ûư^„ `„8û........ „à„`úÆ€^„à`„`ú.........„h„˜þÆh^„h`„˜þo(-„h„˜þÆh^„h`„˜þ„h„˜þÆh^„h`„˜þo(-„h„˜þÆh^„h`„˜þo()„h„˜þÆh^„h`„˜þo()„h„˜þÆh^„h`„˜þo() „h„˜þÆh^„h`„˜þOJQJo(·ðh„Є˜þÆÐ^„Ð`„˜þOJQJo(‡hˆH·ðh„ „˜þÆ ^„ `„˜þOJQJ^Jo(‡hˆHoh„p„˜þÆp^„p`„˜þOJQJo(‡hˆH§ðh„@ „˜þÆ@ ^„@ `„˜þOJQJo(‡hˆH·ðh„„˜þÆ^„`„˜þOJQJ^Jo(‡hˆHoh„à„˜þÆà^„à`„˜þOJQJo(‡hˆH§ðh„°„˜þư^„°`„˜þOJQJo(‡hˆH·ðh„€„˜þÆ€^„€`„˜þOJQJ^Jo(‡hˆHoh„P„˜þÆP^„P`„˜þOJQJo(‡hˆH§ðh„Є˜þÆÐ^„Ð`„˜þOJQJo(‡hˆH·ðh„ „˜þÆ ^„ `„˜þOJQJ^Jo(‡hˆHoh„p„˜þÆp^„p`„˜þOJQJo(‡hˆH§ðh„@ „˜þÆ@ ^„@ `„˜þOJQJo(‡hˆH·ðh„„˜þÆ^„`„˜þOJQJ^Jo(‡hˆHoh„à„˜þÆà^„à`„˜þOJQJo(‡hˆH§ðh„°„˜þư^„°`„˜þOJQJo(‡hˆH·ðh„€„˜þÆ€^„€`„˜þOJQJ^Jo(‡hˆHoh„P„˜þÆP^„P`„˜þOJQJo(‡hˆH§ð„h„˜þÆh^„h`„˜þo()‹À> ,l5Oh 9Eh5HY}FlR¬s3eÅW’)¨^¾ at¬M®\Šèy1‰ÿÿÿƒÿÿÿ‚ÿÿÿÿÿÿ€ÿÿÿˆÿÿÿÿÿÿ~ÿÿÿ}ÿÿÿ|ÿÿÿÅF"oZ/mÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ                  9å8T^šÉ= ¨t >5Ûxd9hN΢ t%†A&Ö)'\R*+i2ÎJ5 H6“_9‚3BGÏgKYkN Uby\\-_Gnc}>k×5lToWzt»Jww{¸h‚iŽ6“^•{2˜GM™_@›ä¦‰-ª:¬Ú ¬GK¬y¸]½wŸÉÛ,Î3ØeçMLê‹]øÔ-ù·wü‡´ÅÆËÐ×ãäèñ%7…†Š‹ $-?»¼ÀÉÛ )CDHQc‡ˆŒ•§ÉÊÎ×é $-?¸¹´ µ É Ó Ø à ì í ö ú ÿ   ¥ ª ° º Æ Ç Ð Ò Ø å æ ï ñ ÷    & 9 : C E K ^ _ h j p † ‡ ’ ™ ¬ ­ µ · ½ Ð Ñ Ú Ü â     * + 4 6 = Z [ e g n † ‡ Mglr|ˆ‰“•›³´¾ÀÇàáìîõ "(?@JLSklwy€Ÿ Þñöþ $&)IJQVX[{|€…‡Š›œ ¥§©»¼ÀÅÇÉÚÛÞãåçøùüÊËâèïûüþghjmàáåèñò*+CIP\]ac‚„†89LMdjq}~‚„Ÿ ³´ËÑØäåçé4579MNPRefhj©ª®°¹º¼¾y–©ª¬®KLNP¢£¥§‘’–˜¡¢¤¦÷øúüÝÞ@DKDRD^DcDrDsDyD‡D‹D‘DžDŸD¦D´D·D½DÆDÇDÈDÖDÙDßDêDëDòDüDÿDEEEEE E'E1E2E3EqEŸJžžžžžžžžžž–ž–žžžžžžžžžžž–žžžžžž–žžžžžžž–žžž–žž–ž–žžžžžžž–žžžžžž–žžžžž–ulÿ@žJ`@ÿÿUnknownrichardJeanne Wiegelmannÿÿÿÿÿÿÿÿÿÿÿÿ G‡z €ÿTimes New Roman5€Symbol3& ‡z €ÿArial3‡z €ÿTimesA&LucidabrightA"GenevaArial?5 ‡z €ÿCourier New5& ‡z!€ÿTahoma;€Wingdings"qˆðÐähBDR†Ëw† w†¤ÔT ß:#}T ß:#}ð£Ã»»€24dEE 3ƒQðßßH(ðÿäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛ,ÎÿÿGC:\Program Files\Microsoft Office\Sjablonen\Specifications Template.dotI2C-Master Core Specifications&OpenCores I2C Master IP-Core DatasheetRichard HerveilleRichard Herveillel                   CompObjÿÿÿÿÿÿÿÿÿÿÿÿjÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrdDocWord.Document.8ô9²quhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/000077500000000000000000000000001224274632000175515ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/verilog/000077500000000000000000000000001224274632000212205ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/verilog/i2c_master_bit_ctrl.v000066400000000000000000000421171224274632000253260ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE rev.B2 compliant I2C Master bit-controller //// //// //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// //// Downloaded from: http://www.opencores.org/projects/i2c/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: i2c_master_bit_ctrl.v,v 1.12 2006/09/04 09:08:13 rherveille Exp $ // // $Date: 2006/09/04 09:08:13 $ // $Revision: 1.12 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: i2c_master_bit_ctrl.v,v $ // Revision 1.12 2006/09/04 09:08:13 rherveille // fixed short scl high pulse after clock stretch // fixed slave model not returning correct '(n)ack' signal // // Revision 1.11 2004/05/07 11:02:26 rherveille // Fixed a bug where the core would signal an arbitration lost (AL bit set), when another master controls the bus and the other master generates a STOP bit. // // Revision 1.10 2003/08/09 07:01:33 rherveille // Fixed a bug in the Arbitration Lost generation caused by delay on the (external) sda line. // Fixed a potential bug in the byte controller's host-acknowledge generation. // // Revision 1.9 2003/03/10 14:26:37 rherveille // Fixed cmd_ack generation item (no bug). // // Revision 1.8 2003/02/05 00:06:10 rherveille // Fixed a bug where the core would trigger an erroneous 'arbitration lost' interrupt after being reset, when the reset pulse width < 3 clk cycles. // // Revision 1.7 2002/12/26 16:05:12 rherveille // Small code simplifications // // Revision 1.6 2002/12/26 15:02:32 rherveille // Core is now a Multimaster I2C controller // // Revision 1.5 2002/11/30 22:24:40 rherveille // Cleaned up code // // Revision 1.4 2002/10/30 18:10:07 rherveille // Fixed some reported minor start/stop generation timing issuess. // // Revision 1.3 2002/06/15 07:37:03 rherveille // Fixed a small timing bug in the bit controller.\nAdded verilog simulation environment. // // Revision 1.2 2001/11/05 11:59:25 rherveille // Fixed wb_ack_o generation bug. // Fixed bug in the byte_controller statemachine. // Added headers. // // ///////////////////////////////////// // Bit controller section ///////////////////////////////////// // // Translate simple commands into SCL/SDA transitions // Each command has 5 states, A/B/C/D/idle // // start: SCL ~~~~~~~~~~\____ // SDA ~~~~~~~~\______ // x | A | B | C | D | i // // repstart SCL ____/~~~~\___ // SDA __/~~~\______ // x | A | B | C | D | i // // stop SCL ____/~~~~~~~~ // SDA ==\____/~~~~~ // x | A | B | C | D | i // //- write SCL ____/~~~~\____ // SDA ==X=========X= // x | A | B | C | D | i // //- read SCL ____/~~~~\____ // SDA XXXX=====XXXX // x | A | B | C | D | i // // Timing: Normal mode Fast mode /////////////////////////////////////////////////////////////////////// // Fscl 100KHz 400KHz // Th_scl 4.0us 0.6us High period of SCL // Tl_scl 4.7us 1.3us Low period of SCL // Tsu:sta 4.7us 0.6us setup time for a repeated start condition // Tsu:sto 4.0us 0.6us setup time for a stop conditon // Tbuf 4.7us 1.3us Bus free time between a stop and start condition // // synopsys translate_off `include "timescale.v" // synopsys translate_on `include "i2c_master_defines.v" module i2c_master_bit_ctrl( clk, rst, nReset, clk_cnt, ena, cmd, cmd_ack, busy, al, din, dout, scl_i, scl_o, scl_oen, sda_i, sda_o, sda_oen ); // // inputs & outputs // input clk; input rst; input nReset; input ena; // core enable signal input [15:0] clk_cnt; // clock prescale value input [3:0] cmd; output cmd_ack; // command complete acknowledge reg cmd_ack; output busy; // i2c bus busy reg busy; output al; // i2c bus arbitration lost reg al; input din; output dout; reg dout; // I2C lines input scl_i; // i2c clock line input output scl_o; // i2c clock line output output scl_oen; // i2c clock line output enable (active low) reg scl_oen; input sda_i; // i2c data line input output sda_o; // i2c data line output output sda_oen; // i2c data line output enable (active low) reg sda_oen; // // variable declarations // reg sSCL, sSDA; // synchronized SCL and SDA inputs reg dscl_oen; // delayed scl_oen reg sda_chk; // check SDA output (Multi-master arbitration) reg clk_en; // clock generation signals wire slave_wait; // reg [15:0] cnt = clk_cnt; // clock divider counter (simulation) reg [15:0] cnt; // clock divider counter (synthesis) // state machine variable reg [16:0] c_state; // synopsys enum_state // // module body // // whenever the slave is not ready it can delay the cycle by pulling SCL low // delay scl_oen always @(posedge clk) dscl_oen <= #1 scl_oen; assign slave_wait = dscl_oen && !sSCL; // generate clk enable signal always @(posedge clk or negedge nReset) if(~nReset) begin cnt <= #1 16'h0; clk_en <= #1 1'b1; end else if (rst) begin cnt <= #1 16'h0; clk_en <= #1 1'b1; end else if ( ~|cnt || !ena) begin cnt <= #1 clk_cnt; clk_en <= #1 1'b1; end else if (slave_wait) begin cnt <= #1 cnt; clk_en <= #1 1'b0; end else begin cnt <= #1 cnt - 16'h1; clk_en <= #1 1'b0; end // generate bus status controller reg dSCL, dSDA; reg sta_condition; reg sto_condition; // synchronize SCL and SDA inputs // reduce metastability risc always @(posedge clk or negedge nReset) if (~nReset) begin sSCL <= #1 1'b1; sSDA <= #1 1'b1; dSCL <= #1 1'b1; dSDA <= #1 1'b1; end else if (rst) begin sSCL <= #1 1'b1; sSDA <= #1 1'b1; dSCL <= #1 1'b1; dSDA <= #1 1'b1; end else begin sSCL <= #1 scl_i; sSDA <= #1 sda_i; dSCL <= #1 sSCL; dSDA <= #1 sSDA; end // detect start condition => detect falling edge on SDA while SCL is high // detect stop condition => detect rising edge on SDA while SCL is high always @(posedge clk or negedge nReset) if (~nReset) begin sta_condition <= #1 1'b0; sto_condition <= #1 1'b0; end else if (rst) begin sta_condition <= #1 1'b0; sto_condition <= #1 1'b0; end else begin sta_condition <= #1 ~sSDA & dSDA & sSCL; sto_condition <= #1 sSDA & ~dSDA & sSCL; end // generate i2c bus busy signal always @(posedge clk or negedge nReset) if(!nReset) busy <= #1 1'b0; else if (rst) busy <= #1 1'b0; else busy <= #1 (sta_condition | busy) & ~sto_condition; // generate arbitration lost signal // aribitration lost when: // 1) master drives SDA high, but the i2c bus is low // 2) stop detected while not requested reg cmd_stop; always @(posedge clk or negedge nReset) if (~nReset) cmd_stop <= #1 1'b0; else if (rst) cmd_stop <= #1 1'b0; else if (clk_en) cmd_stop <= #1 cmd == `I2C_CMD_STOP; always @(posedge clk or negedge nReset) if (~nReset) al <= #1 1'b0; else if (rst) al <= #1 1'b0; else al <= #1 (sda_chk & ~sSDA & sda_oen) | (|c_state & sto_condition & ~cmd_stop); // generate dout signal (store SDA on rising edge of SCL) always @(posedge clk) if(sSCL & ~dSCL) dout <= #1 sSDA; // generate statemachine // nxt_state decoder parameter [16:0] idle = 17'b0_0000_0000_0000_0000; parameter [16:0] start_a = 17'b0_0000_0000_0000_0001; parameter [16:0] start_b = 17'b0_0000_0000_0000_0010; parameter [16:0] start_c = 17'b0_0000_0000_0000_0100; parameter [16:0] start_d = 17'b0_0000_0000_0000_1000; parameter [16:0] start_e = 17'b0_0000_0000_0001_0000; parameter [16:0] stop_a = 17'b0_0000_0000_0010_0000; parameter [16:0] stop_b = 17'b0_0000_0000_0100_0000; parameter [16:0] stop_c = 17'b0_0000_0000_1000_0000; parameter [16:0] stop_d = 17'b0_0000_0001_0000_0000; parameter [16:0] rd_a = 17'b0_0000_0010_0000_0000; parameter [16:0] rd_b = 17'b0_0000_0100_0000_0000; parameter [16:0] rd_c = 17'b0_0000_1000_0000_0000; parameter [16:0] rd_d = 17'b0_0001_0000_0000_0000; parameter [16:0] wr_a = 17'b0_0010_0000_0000_0000; parameter [16:0] wr_b = 17'b0_0100_0000_0000_0000; parameter [16:0] wr_c = 17'b0_1000_0000_0000_0000; parameter [16:0] wr_d = 17'b1_0000_0000_0000_0000; always @(posedge clk or negedge nReset) if (!nReset) begin c_state <= #1 idle; cmd_ack <= #1 1'b0; scl_oen <= #1 1'b1; sda_oen <= #1 1'b1; sda_chk <= #1 1'b0; end else if (rst | al) begin c_state <= #1 idle; cmd_ack <= #1 1'b0; scl_oen <= #1 1'b1; sda_oen <= #1 1'b1; sda_chk <= #1 1'b0; end else begin cmd_ack <= #1 1'b0; // default no command acknowledge + assert cmd_ack only 1clk cycle if (clk_en) case (c_state) // synopsys full_case parallel_case // idle state idle: begin case (cmd) // synopsys full_case parallel_case `I2C_CMD_START: c_state <= #1 start_a; `I2C_CMD_STOP: c_state <= #1 stop_a; `I2C_CMD_WRITE: c_state <= #1 wr_a; `I2C_CMD_READ: c_state <= #1 rd_a; default: c_state <= #1 idle; endcase scl_oen <= #1 scl_oen; // keep SCL in same state sda_oen <= #1 sda_oen; // keep SDA in same state sda_chk <= #1 1'b0; // don't check SDA output end // start start_a: begin c_state <= #1 start_b; scl_oen <= #1 scl_oen; // keep SCL in same state sda_oen <= #1 1'b1; // set SDA high sda_chk <= #1 1'b0; // don't check SDA output end start_b: begin c_state <= #1 start_c; scl_oen <= #1 1'b1; // set SCL high sda_oen <= #1 1'b1; // keep SDA high sda_chk <= #1 1'b0; // don't check SDA output end start_c: begin c_state <= #1 start_d; scl_oen <= #1 1'b1; // keep SCL high sda_oen <= #1 1'b0; // set SDA low sda_chk <= #1 1'b0; // don't check SDA output end start_d: begin c_state <= #1 start_e; scl_oen <= #1 1'b1; // keep SCL high sda_oen <= #1 1'b0; // keep SDA low sda_chk <= #1 1'b0; // don't check SDA output end start_e: begin c_state <= #1 idle; cmd_ack <= #1 1'b1; scl_oen <= #1 1'b0; // set SCL low sda_oen <= #1 1'b0; // keep SDA low sda_chk <= #1 1'b0; // don't check SDA output end // stop stop_a: begin c_state <= #1 stop_b; scl_oen <= #1 1'b0; // keep SCL low sda_oen <= #1 1'b0; // set SDA low sda_chk <= #1 1'b0; // don't check SDA output end stop_b: begin c_state <= #1 stop_c; scl_oen <= #1 1'b1; // set SCL high sda_oen <= #1 1'b0; // keep SDA low sda_chk <= #1 1'b0; // don't check SDA output end stop_c: begin c_state <= #1 stop_d; scl_oen <= #1 1'b1; // keep SCL high sda_oen <= #1 1'b0; // keep SDA low sda_chk <= #1 1'b0; // don't check SDA output end stop_d: begin c_state <= #1 idle; cmd_ack <= #1 1'b1; scl_oen <= #1 1'b1; // keep SCL high sda_oen <= #1 1'b1; // set SDA high sda_chk <= #1 1'b0; // don't check SDA output end // read rd_a: begin c_state <= #1 rd_b; scl_oen <= #1 1'b0; // keep SCL low sda_oen <= #1 1'b1; // tri-state SDA sda_chk <= #1 1'b0; // don't check SDA output end rd_b: begin c_state <= #1 rd_c; scl_oen <= #1 1'b1; // set SCL high sda_oen <= #1 1'b1; // keep SDA tri-stated sda_chk <= #1 1'b0; // don't check SDA output end rd_c: begin c_state <= #1 rd_d; scl_oen <= #1 1'b1; // keep SCL high sda_oen <= #1 1'b1; // keep SDA tri-stated sda_chk <= #1 1'b0; // don't check SDA output end rd_d: begin c_state <= #1 idle; cmd_ack <= #1 1'b1; scl_oen <= #1 1'b0; // set SCL low sda_oen <= #1 1'b1; // keep SDA tri-stated sda_chk <= #1 1'b0; // don't check SDA output end // write wr_a: begin c_state <= #1 wr_b; scl_oen <= #1 1'b0; // keep SCL low sda_oen <= #1 din; // set SDA sda_chk <= #1 1'b0; // don't check SDA output (SCL low) end wr_b: begin c_state <= #1 wr_c; scl_oen <= #1 1'b1; // set SCL high sda_oen <= #1 din; // keep SDA sda_chk <= #1 1'b1; // check SDA output end wr_c: begin c_state <= #1 wr_d; scl_oen <= #1 1'b1; // keep SCL high sda_oen <= #1 din; sda_chk <= #1 1'b1; // check SDA output end wr_d: begin c_state <= #1 idle; cmd_ack <= #1 1'b1; scl_oen <= #1 1'b0; // set SCL low sda_oen <= #1 din; sda_chk <= #1 1'b0; // don't check SDA output (SCL low) end endcase end // assign scl and sda output (always gnd) assign scl_o = 1'b0; assign sda_o = 1'b0; endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/verilog/i2c_master_byte_ctrl.v000066400000000000000000000244631224274632000255170ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE rev.B2 compliant I2C Master byte-controller //// //// //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// //// Downloaded from: http://www.opencores.org/projects/i2c/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: i2c_master_byte_ctrl.v,v 1.7 2004/02/18 11:40:46 rherveille Exp $ // // $Date: 2004/02/18 11:40:46 $ // $Revision: 1.7 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: i2c_master_byte_ctrl.v,v $ // Revision 1.7 2004/02/18 11:40:46 rherveille // Fixed a potential bug in the statemachine. During a 'stop' 2 cmd_ack signals were generated. Possibly canceling a new start command. // // Revision 1.6 2003/08/09 07:01:33 rherveille // Fixed a bug in the Arbitration Lost generation caused by delay on the (external) sda line. // Fixed a potential bug in the byte controller's host-acknowledge generation. // // Revision 1.5 2002/12/26 15:02:32 rherveille // Core is now a Multimaster I2C controller // // Revision 1.4 2002/11/30 22:24:40 rherveille // Cleaned up code // // Revision 1.3 2001/11/05 11:59:25 rherveille // Fixed wb_ack_o generation bug. // Fixed bug in the byte_controller statemachine. // Added headers. // // synopsys translate_off `include "timescale.v" // synopsys translate_on `include "i2c_master_defines.v" module i2c_master_byte_ctrl ( clk, rst, nReset, ena, clk_cnt, start, stop, read, write, ack_in, din, cmd_ack, ack_out, dout, i2c_busy, i2c_al, scl_i, scl_o, scl_oen, sda_i, sda_o, sda_oen ); // // inputs & outputs // input clk; // master clock input rst; // synchronous active high reset input nReset; // asynchronous active low reset input ena; // core enable signal input [15:0] clk_cnt; // 4x SCL // control inputs input start; input stop; input read; input write; input ack_in; input [7:0] din; // status outputs output cmd_ack; reg cmd_ack; output ack_out; reg ack_out; output i2c_busy; output i2c_al; output [7:0] dout; // I2C signals input scl_i; output scl_o; output scl_oen; input sda_i; output sda_o; output sda_oen; // // Variable declarations // // statemachine parameter [4:0] ST_IDLE = 5'b0_0000; parameter [4:0] ST_START = 5'b0_0001; parameter [4:0] ST_READ = 5'b0_0010; parameter [4:0] ST_WRITE = 5'b0_0100; parameter [4:0] ST_ACK = 5'b0_1000; parameter [4:0] ST_STOP = 5'b1_0000; // signals for bit_controller reg [3:0] core_cmd; reg core_txd; wire core_ack, core_rxd; // signals for shift register reg [7:0] sr; //8bit shift register reg shift, ld; // signals for state machine wire go; reg [2:0] dcnt; wire cnt_done; // // Module body // // hookup bit_controller i2c_master_bit_ctrl bit_controller ( .clk ( clk ), .rst ( rst ), .nReset ( nReset ), .ena ( ena ), .clk_cnt ( clk_cnt ), .cmd ( core_cmd ), .cmd_ack ( core_ack ), .busy ( i2c_busy ), .al ( i2c_al ), .din ( core_txd ), .dout ( core_rxd ), .scl_i ( scl_i ), .scl_o ( scl_o ), .scl_oen ( scl_oen ), .sda_i ( sda_i ), .sda_o ( sda_o ), .sda_oen ( sda_oen ) ); // generate go-signal assign go = (read | write | stop) & ~cmd_ack; // assign dout output to shift-register assign dout = sr; // generate shift register always @(posedge clk or negedge nReset) if (!nReset) sr <= #1 8'h0; else if (rst) sr <= #1 8'h0; else if (ld) sr <= #1 din; else if (shift) sr <= #1 {sr[6:0], core_rxd}; // generate counter always @(posedge clk or negedge nReset) if (!nReset) dcnt <= #1 3'h0; else if (rst) dcnt <= #1 3'h0; else if (ld) dcnt <= #1 3'h7; else if (shift) dcnt <= #1 dcnt - 3'h1; assign cnt_done = ~(|dcnt); // // state machine // reg [4:0] c_state; // synopsis enum_state always @(posedge clk or negedge nReset) if (!nReset) begin core_cmd <= #1 `I2C_CMD_NOP; core_txd <= #1 1'b0; shift <= #1 1'b0; ld <= #1 1'b0; cmd_ack <= #1 1'b0; c_state <= #1 ST_IDLE; ack_out <= #1 1'b0; end else if (rst | i2c_al) begin core_cmd <= #1 `I2C_CMD_NOP; core_txd <= #1 1'b0; shift <= #1 1'b0; ld <= #1 1'b0; cmd_ack <= #1 1'b0; c_state <= #1 ST_IDLE; ack_out <= #1 1'b0; end else begin // initially reset all signals core_txd <= #1 sr[7]; shift <= #1 1'b0; ld <= #1 1'b0; cmd_ack <= #1 1'b0; case (c_state) // synopsys full_case parallel_case ST_IDLE: if (go) begin if (start) begin c_state <= #1 ST_START; core_cmd <= #1 `I2C_CMD_START; end else if (read) begin c_state <= #1 ST_READ; core_cmd <= #1 `I2C_CMD_READ; end else if (write) begin c_state <= #1 ST_WRITE; core_cmd <= #1 `I2C_CMD_WRITE; end else // stop begin c_state <= #1 ST_STOP; core_cmd <= #1 `I2C_CMD_STOP; end ld <= #1 1'b1; end ST_START: if (core_ack) begin if (read) begin c_state <= #1 ST_READ; core_cmd <= #1 `I2C_CMD_READ; end else begin c_state <= #1 ST_WRITE; core_cmd <= #1 `I2C_CMD_WRITE; end ld <= #1 1'b1; end ST_WRITE: if (core_ack) if (cnt_done) begin c_state <= #1 ST_ACK; core_cmd <= #1 `I2C_CMD_READ; end else begin c_state <= #1 ST_WRITE; // stay in same state core_cmd <= #1 `I2C_CMD_WRITE; // write next bit shift <= #1 1'b1; end ST_READ: if (core_ack) begin if (cnt_done) begin c_state <= #1 ST_ACK; core_cmd <= #1 `I2C_CMD_WRITE; end else begin c_state <= #1 ST_READ; // stay in same state core_cmd <= #1 `I2C_CMD_READ; // read next bit end shift <= #1 1'b1; core_txd <= #1 ack_in; end ST_ACK: if (core_ack) begin if (stop) begin c_state <= #1 ST_STOP; core_cmd <= #1 `I2C_CMD_STOP; end else begin c_state <= #1 ST_IDLE; core_cmd <= #1 `I2C_CMD_NOP; // generate command acknowledge signal cmd_ack <= #1 1'b1; end // assign ack_out output to bit_controller_rxd (contains last received bit) ack_out <= #1 core_rxd; core_txd <= #1 1'b1; end else core_txd <= #1 ack_in; ST_STOP: if (core_ack) begin c_state <= #1 ST_IDLE; core_cmd <= #1 `I2C_CMD_NOP; // generate command acknowledge signal cmd_ack <= #1 1'b1; end endcase end endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/verilog/i2c_master_defines.v000066400000000000000000000062231224274632000251370ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE rev.B2 compliant I2C Master controller defines //// //// //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// //// Downloaded from: http://www.opencores.org/projects/i2c/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: i2c_master_defines.v,v 1.3 2001/11/05 11:59:25 rherveille Exp $ // // $Date: 2001/11/05 11:59:25 $ // $Revision: 1.3 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: i2c_master_defines.v,v $ // Revision 1.3 2001/11/05 11:59:25 rherveille // Fixed wb_ack_o generation bug. // Fixed bug in the byte_controller statemachine. // Added headers. // // I2C registers wishbone addresses // bitcontroller states `define I2C_CMD_NOP 4'b0000 `define I2C_CMD_START 4'b0001 `define I2C_CMD_STOP 4'b0010 `define I2C_CMD_WRITE 4'b0100 `define I2C_CMD_READ 4'b1000 uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/verilog/i2c_master_top.v000066400000000000000000000235741224274632000243340ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// WISHBONE revB.2 compliant I2C Master controller Top-level //// //// //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// //// Downloaded from: http://www.opencores.org/projects/i2c/ //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: i2c_master_top.v,v 1.11 2005/02/27 09:26:24 rherveille Exp $ // // $Date: 2005/02/27 09:26:24 $ // $Revision: 1.11 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: i2c_master_top.v,v $ // Revision 1.11 2005/02/27 09:26:24 rherveille // Fixed register overwrite issue. // Removed full_case pragma, replaced it by a default statement. // // Revision 1.10 2003/09/01 10:34:38 rherveille // Fix a blocking vs. non-blocking error in the wb_dat output mux. // // Revision 1.9 2003/01/09 16:44:45 rherveille // Fixed a bug in the Command Register declaration. // // Revision 1.8 2002/12/26 16:05:12 rherveille // Small code simplifications // // Revision 1.7 2002/12/26 15:02:32 rherveille // Core is now a Multimaster I2C controller // // Revision 1.6 2002/11/30 22:24:40 rherveille // Cleaned up code // // Revision 1.5 2001/11/10 10:52:55 rherveille // Changed PRER reset value from 0x0000 to 0xffff, conform specs. // // synopsys translate_off `include "timescale.v" // synopsys translate_on `include "i2c_master_defines.v" module i2c_master_top( wb_clk_i, wb_rst_i, arst_i, wb_adr_i, wb_dat_i, wb_dat_o, wb_we_i, wb_stb_i, wb_cyc_i, wb_ack_o, wb_inta_o, scl_pad_i, scl_pad_o, scl_padoen_o, sda_pad_i, sda_pad_o, sda_padoen_o ); // parameters parameter ARST_LVL = 1'b0; // asynchronous reset level // // inputs & outputs // // wishbone signals input wb_clk_i; // master clock input input wb_rst_i; // synchronous active high reset input arst_i; // asynchronous reset input [2:0] wb_adr_i; // lower address bits input [7:0] wb_dat_i; // databus input output [7:0] wb_dat_o; // databus output input wb_we_i; // write enable input input wb_stb_i; // stobe/core select signal input wb_cyc_i; // valid bus cycle input output wb_ack_o; // bus cycle acknowledge output output wb_inta_o; // interrupt request signal output reg [7:0] wb_dat_o; reg wb_ack_o; reg wb_inta_o; // I2C signals // i2c clock line input scl_pad_i; // SCL-line input output scl_pad_o; // SCL-line output (always 1'b0) output scl_padoen_o; // SCL-line output enable (active low) // i2c data line input sda_pad_i; // SDA-line input output sda_pad_o; // SDA-line output (always 1'b0) output sda_padoen_o; // SDA-line output enable (active low) // // variable declarations // // registers reg [15:0] prer; // clock prescale register reg [ 7:0] ctr; // control register reg [ 7:0] txr; // transmit register wire [ 7:0] rxr; // receive register reg [ 7:0] cr; // command register wire [ 7:0] sr; // status register // done signal: command completed, clear command register wire done; // core enable signal wire core_en; wire ien; // status register signals wire irxack; reg rxack; // received aknowledge from slave reg tip; // transfer in progress reg irq_flag; // interrupt pending flag wire i2c_busy; // bus busy (start signal detected) wire i2c_al; // i2c bus arbitration lost reg al; // status register arbitration lost bit // // module body // // generate internal reset wire rst_i = arst_i ^ ARST_LVL; // generate wishbone signals wire wb_wacc = wb_cyc_i & wb_stb_i & wb_we_i; // generate acknowledge output signal always @(posedge wb_clk_i) wb_ack_o <= #1 wb_cyc_i & wb_stb_i & ~wb_ack_o; // because timing is always honored // assign DAT_O always @(posedge wb_clk_i) begin case (wb_adr_i) // synopsis parallel_case 3'b000: wb_dat_o <= #1 prer[ 7:0]; 3'b001: wb_dat_o <= #1 prer[15:8]; 3'b010: wb_dat_o <= #1 ctr; 3'b011: wb_dat_o <= #1 rxr; // write is transmit register (txr) 3'b100: wb_dat_o <= #1 sr; // write is command register (cr) 3'b101: wb_dat_o <= #1 txr; 3'b110: wb_dat_o <= #1 cr; 3'b111: wb_dat_o <= #1 0; // reserved endcase end // generate registers always @(posedge wb_clk_i or negedge rst_i) if (!rst_i) begin prer <= #1 16'hffff; ctr <= #1 8'h0; txr <= #1 8'h0; end else if (wb_rst_i) begin prer <= #1 16'hffff; ctr <= #1 8'h0; txr <= #1 8'h0; end else if (wb_wacc) case (wb_adr_i) // synopsis parallel_case 3'b000 : prer [ 7:0] <= #1 wb_dat_i; 3'b001 : prer [15:8] <= #1 wb_dat_i; 3'b010 : ctr <= #1 wb_dat_i; 3'b011 : txr <= #1 wb_dat_i; default: ; endcase // generate command register (special case) always @(posedge wb_clk_i or negedge rst_i) if (~rst_i) cr <= #1 8'h0; else if (wb_rst_i) cr <= #1 8'h0; else if (wb_wacc) begin if (core_en & (wb_adr_i == 3'b100) ) cr <= #1 wb_dat_i; end else begin if (done | i2c_al) cr[7:4] <= #1 4'h0; // clear command bits when done // or when aribitration lost cr[2:1] <= #1 2'b0; // reserved bits cr[0] <= #1 2'b0; // clear IRQ_ACK bit end // decode command register wire sta = cr[7]; wire sto = cr[6]; wire rd = cr[5]; wire wr = cr[4]; wire ack = cr[3]; wire iack = cr[0]; // decode control register assign core_en = ctr[7]; assign ien = ctr[6]; // hookup byte controller block i2c_master_byte_ctrl byte_controller ( .clk ( wb_clk_i ), .rst ( wb_rst_i ), .nReset ( rst_i ), .ena ( core_en ), .clk_cnt ( prer ), .start ( sta ), .stop ( sto ), .read ( rd ), .write ( wr ), .ack_in ( ack ), .din ( txr ), .cmd_ack ( done ), .ack_out ( irxack ), .dout ( rxr ), .i2c_busy ( i2c_busy ), .i2c_al ( i2c_al ), .scl_i ( scl_pad_i ), .scl_o ( scl_pad_o ), .scl_oen ( scl_padoen_o ), .sda_i ( sda_pad_i ), .sda_o ( sda_pad_o ), .sda_oen ( sda_padoen_o ) ); // status register block + interrupt request signal always @(posedge wb_clk_i or negedge rst_i) if (!rst_i) begin al <= #1 1'b0; rxack <= #1 1'b0; tip <= #1 1'b0; irq_flag <= #1 1'b0; end else if (wb_rst_i) begin al <= #1 1'b0; rxack <= #1 1'b0; tip <= #1 1'b0; irq_flag <= #1 1'b0; end else begin al <= #1 i2c_al | (al & ~sta); rxack <= #1 irxack; tip <= #1 (rd | wr); irq_flag <= #1 (done | i2c_al | irq_flag) & ~iack; // interrupt request flag is always generated end // generate interrupt request signals always @(posedge wb_clk_i or negedge rst_i) if (!rst_i) wb_inta_o <= #1 1'b0; else if (wb_rst_i) wb_inta_o <= #1 1'b0; else wb_inta_o <= #1 irq_flag && ien; // interrupt signal is only generated when IEN (interrupt enable bit is set) // assign status register bits assign sr[7] = rxack; assign sr[6] = i2c_busy; assign sr[5] = al; assign sr[4:2] = 3'h0; // reserved assign sr[1] = tip; assign sr[0] = irq_flag; endmodule uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/verilog/timescale.v000066400000000000000000000000271224274632000233540ustar00rootroot00000000000000`timescale 1ns / 10ps uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/000077500000000000000000000000001224274632000205065ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/I2C.VHD000066400000000000000000000323461224274632000214360ustar00rootroot00000000000000-- -- Simple I2C controller -- -- 1) No multimaster -- 2) No slave mode -- 3) No fifo's -- -- notes: -- Every command is acknowledged. Do not set a new command before previous is acknowledged. -- Dout is available 1 clock cycle later as cmd_ack -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; package I2C is component simple_i2c is port ( clk : in std_logic; ena : in std_logic; nReset : in std_logic; clk_cnt : in unsigned(7 downto 0); -- 4x SCL -- input signals start, stop, read, write, ack_in : std_logic; Din : in std_logic_vector(7 downto 0); -- output signals cmd_ack : out std_logic; ack_out : out std_logic; Dout : out std_logic_vector(7 downto 0); -- i2c signals SCL : inout std_logic; SDA : inout std_logic ); end component simple_i2c; end package I2C; library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity simple_i2c is port ( clk : in std_logic; ena : in std_logic; nReset : in std_logic; clk_cnt : in unsigned(7 downto 0); -- 4x SCL -- input signals start, stop, read, write, ack_in : std_logic; Din : in std_logic_vector(7 downto 0); -- output signals cmd_ack : out std_logic; ack_out : out std_logic; Dout : out std_logic_vector(7 downto 0); -- i2c signals SCL : inout std_logic; SDA : inout std_logic ); end entity simple_i2c; architecture structural of simple_i2c is component i2c_core is port ( clk : in std_logic; nReset : in std_logic; clk_cnt : in unsigned(7 downto 0); cmd : in std_logic_vector(2 downto 0); cmd_ack : out std_logic; busy : out std_logic; Din : in std_logic; Dout : out std_logic; SCL : inout std_logic; SDA : inout std_logic ); end component i2c_core; -- commands for i2c_core constant CMD_NOP : std_logic_vector(2 downto 0) := "000"; constant CMD_START : std_logic_vector(2 downto 0) := "010"; constant CMD_STOP : std_logic_vector(2 downto 0) := "011"; constant CMD_READ : std_logic_vector(2 downto 0) := "100"; constant CMD_WRITE : std_logic_vector(2 downto 0) := "101"; -- signals for i2c_core signal core_cmd : std_logic_vector(2 downto 0); signal core_ack, core_busy, core_txd, core_rxd : std_logic; -- signals for shift register signal sr : std_logic_vector(7 downto 0); -- 8bit shift register signal shift, ld : std_logic; -- signals for state machine signal go, host_ack : std_logic; begin -- hookup i2c core u1: i2c_core port map (clk, nReset, clk_cnt, core_cmd, core_ack, core_busy, core_txd, core_rxd, SCL, SDA); -- generate host-command-acknowledge cmd_ack <= host_ack; -- generate go-signal go <= (read or write) and not host_ack; -- assign Dout output to shift-register Dout <= sr; -- assign ack_out output to core_rxd (contains last received bit) ack_out <= core_rxd; -- generate shift register shift_register: process(clk) begin if (clk'event and clk = '1') then if (ld = '1') then sr <= din; elsif (shift = '1') then sr <= (sr(6 downto 0) & core_rxd); end if; end if; end process shift_register; -- -- state machine -- statemachine : block type states is (st_idle, st_start, st_read, st_write, st_ack, st_stop); signal state : states; signal dcnt : unsigned(2 downto 0); begin -- -- command interpreter, translate complex commands into simpler I2C commands -- nxt_state_decoder: process(clk, nReset, state) variable nxt_state : states; variable idcnt : unsigned(2 downto 0); variable ihost_ack : std_logic; variable icore_cmd : std_logic_vector(2 downto 0); variable icore_txd : std_logic; variable ishift, iload : std_logic; begin -- 8 databits (1byte) of data to shift-in/out idcnt := dcnt; -- no acknowledge (until command complete) ihost_ack := '0'; icore_txd := core_txd; -- keep current command to i2c_core icore_cmd := core_cmd; -- no shifting or loading of shift-register ishift := '0'; iload := '0'; -- keep current state; nxt_state := state; case state is when st_idle => if (go = '1') then if (start = '1') then nxt_state := st_start; icore_cmd := CMD_START; elsif (read = '1') then nxt_state := st_read; icore_cmd := CMD_READ; idcnt := "111"; else nxt_state := st_write; icore_cmd := CMD_WRITE; idcnt := "111"; iload := '1'; end if; end if; when st_start => if (core_ack = '1') then if (read = '1') then nxt_state := st_read; icore_cmd := CMD_READ; idcnt := "111"; else nxt_state := st_write; icore_cmd := CMD_WRITE; idcnt := "111"; iload := '1'; end if; end if; when st_write => if (core_ack = '1') then idcnt := dcnt -1; -- count down Data_counter icore_txd := sr(7); if (dcnt = 0) then nxt_state := st_ack; icore_cmd := CMD_READ; else ishift := '1'; -- icore_txd := sr(7); end if; end if; when st_read => if (core_ack = '1') then idcnt := dcnt -1; -- count down Data_counter ishift := '1'; if (dcnt = 0) then nxt_state := st_ack; icore_cmd := CMD_WRITE; icore_txd := ack_in; end if; end if; when st_ack => if (core_ack = '1') then -- generate command acknowledge signal ihost_ack := '1'; -- Perform an additional shift, needed for 'read' (store last received bit in shift register) ishift := '1'; -- check for stop; Should a STOP command be generated ? if (stop = '1') then nxt_state := st_stop; icore_cmd := CMD_STOP; else nxt_state := st_idle; icore_cmd := CMD_NOP; end if; end if; when st_stop => if (core_ack = '1') then nxt_state := st_idle; icore_cmd := CMD_NOP; end if; when others => -- illegal states nxt_state := st_idle; icore_cmd := CMD_NOP; end case; -- generate registers if (nReset = '0') then core_cmd <= CMD_NOP; core_txd <= '0'; shift <= '0'; ld <= '0'; dcnt <= "111"; host_ack <= '0'; state <= st_idle; elsif (clk'event and clk = '1') then if (ena = '1') then state <= nxt_state; dcnt <= idcnt; shift <= ishift; ld <= iload; core_cmd <= icore_cmd; core_txd <= icore_txd; host_ack <= ihost_ack; end if; end if; end process nxt_state_decoder; end block statemachine; end architecture structural; -- -- -- I2C Core -- -- Translate simple commands into SCL/SDA transitions -- Each command has 5 states, A/B/C/D/idle -- -- start: SCL ~~~~~~~~~~\____ -- SDA ~~~~~~~~\______ -- x | A | B | C | D | i -- -- repstart SCL ____/~~~~\___ -- SDA __/~~~\______ -- x | A | B | C | D | i -- -- stop SCL ____/~~~~~~~~ -- SDA ==\____/~~~~~ -- x | A | B | C | D | i -- --- write SCL ____/~~~~\____ -- SDA ==X=========X= -- x | A | B | C | D | i -- --- read SCL ____/~~~~\____ -- SDA XXXX=====XXXX -- x | A | B | C | D | i -- -- Timing: Normal mode Fast mode ----------------------------------------------------------------- -- Fscl 100KHz 400KHz -- Th_scl 4.0us 0.6us High period of SCL -- Tl_scl 4.7us 1.3us Low period of SCL -- Tsu:sta 4.7us 0.6us setup time for a repeated start condition -- Tsu:sto 4.0us 0.6us setup time for a stop conditon -- Tbuf 4.7us 1.3us Bus free time between a stop and start condition -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity i2c_core is port ( clk : in std_logic; nReset : in std_logic; clk_cnt : in unsigned(7 downto 0); cmd : in std_logic_vector(2 downto 0); cmd_ack : out std_logic; busy : out std_logic; Din : in std_logic; Dout : out std_logic; SCL : inout std_logic; SDA : inout std_logic ); end entity i2c_core; architecture structural of i2c_core is constant CMD_NOP : std_logic_vector(2 downto 0) := "000"; constant CMD_START : std_logic_vector(2 downto 0) := "010"; constant CMD_STOP : std_logic_vector(2 downto 0) := "011"; constant CMD_READ : std_logic_vector(2 downto 0) := "100"; constant CMD_WRITE : std_logic_vector(2 downto 0) := "101"; type cmds is (idle, start_a, start_b, start_c, start_d, stop_a, stop_b, stop_c, rd_a, rd_b, rd_c, rd_d, wr_a, wr_b, wr_c, wr_d); signal state : cmds; signal SDAo, SCLo : std_logic; signal txd : std_logic; signal clk_en, slave_wait :std_logic; signal cnt : unsigned(7 downto 0) := clk_cnt; begin -- whenever the slave is not ready it can delay the cycle by pulling SCL low slave_wait <= '1' when ((SCLo = '1') and (SCL = '0')) else '0'; -- generate clk enable signal gen_clken: process(clk, nReset) begin if (nReset = '0') then cnt <= (others => '0'); clk_en <= '1'; --'0'; elsif (clk'event and clk = '1') then if (cnt = 0) then clk_en <= '1'; cnt <= clk_cnt; else if (slave_wait = '0') then cnt <= cnt -1; end if; clk_en <= '0'; end if; end if; end process gen_clken; -- generate statemachine nxt_state_decoder : process (clk, nReset, state, cmd, SDA) variable nxt_state : cmds; variable icmd_ack, ibusy, store_sda : std_logic; variable itxd : std_logic; begin nxt_state := state; icmd_ack := '0'; -- default no acknowledge ibusy := '1'; -- default busy store_sda := '0'; itxd := txd; case (state) is -- idle when idle => case cmd is when CMD_START => nxt_state := start_a; icmd_ack := '1'; -- command completed when CMD_STOP => nxt_state := stop_a; icmd_ack := '1'; -- command completed when CMD_WRITE => nxt_state := wr_a; icmd_ack := '1'; -- command completed itxd := Din; when CMD_READ => nxt_state := rd_a; icmd_ack := '1'; -- command completed when others => nxt_state := idle; -- don't acknowledge NOP command icmd_ack := '1'; -- command completed ibusy := '0'; end case; -- start when start_a => nxt_state := start_b; when start_b => nxt_state := start_c; when start_c => nxt_state := start_d; when start_d => nxt_state := idle; ibusy := '0'; -- not busy when idle -- stop when stop_a => nxt_state := stop_b; when stop_b => nxt_state := stop_c; when stop_c => -- nxt_state := stop_d; -- when stop_d => nxt_state := idle; ibusy := '0'; -- not busy when idle -- read when rd_a => nxt_state := rd_b; when rd_b => nxt_state := rd_c; when rd_c => nxt_state := rd_d; store_sda := '1'; when rd_d => nxt_state := idle; ibusy := '0'; -- not busy when idle -- write when wr_a => nxt_state := wr_b; when wr_b => nxt_state := wr_c; when wr_c => nxt_state := wr_d; when wr_d => nxt_state := idle; ibusy := '0'; -- not busy when idle end case; -- generate regs if (nReset = '0') then state <= idle; cmd_ack <= '0'; busy <= '0'; txd <= '0'; Dout <= '0'; elsif (clk'event and clk = '1') then if (clk_en = '1') then state <= nxt_state; busy <= ibusy; txd <= itxd; if (store_sda = '1') then Dout <= SDA; end if; end if; cmd_ack <= icmd_ack and clk_en; end if; end process nxt_state_decoder; -- -- convert states to SCL and SDA signals -- output_decoder: process (clk, nReset, state) variable iscl, isda : std_logic; begin case (state) is when idle => iscl := SCLo; -- keep SCL in same state isda := SDA; -- keep SDA in same state -- start when start_a => iscl := SCLo; -- keep SCL in same state (for repeated start) isda := '1'; -- set SDA high when start_b => iscl := '1'; -- set SCL high isda := '1'; -- keep SDA high when start_c => iscl := '1'; -- keep SCL high isda := '0'; -- sel SDA low when start_d => iscl := '0'; -- set SCL low isda := '0'; -- keep SDA low -- stop when stop_a => iscl := '0'; -- keep SCL disabled isda := '0'; -- set SDA low when stop_b => iscl := '1'; -- set SCL high isda := '0'; -- keep SDA low when stop_c => iscl := '1'; -- keep SCL high isda := '1'; -- set SDA high -- write when wr_a => iscl := '0'; -- keep SCL low -- isda := txd; -- set SDA isda := Din; when wr_b => iscl := '1'; -- set SCL high -- isda := txd; -- set SDA isda := Din; when wr_c => iscl := '1'; -- keep SCL high -- isda := txd; -- set SDA isda := Din; when wr_d => iscl := '0'; -- set SCL low -- isda := txd; -- set SDA isda := Din; -- read when rd_a => iscl := '0'; -- keep SCL low isda := '1'; -- tri-state SDA when rd_b => iscl := '1'; -- set SCL high isda := '1'; -- tri-state SDA when rd_c => iscl := '1'; -- keep SCL high isda := '1'; -- tri-state SDA when rd_d => iscl := '0'; -- set SCL low isda := '1'; -- tri-state SDA end case; -- generate registers if (nReset = '0') then SCLo <= '1'; SDAo <= '1'; elsif (clk'event and clk = '1') then if (clk_en = '1') then SCLo <= iscl; SDAo <= isda; end if; end if; end process output_decoder; SCL <= '0' when (SCLo = '0') else 'Z'; -- since SCL is externally pulled-up convert a '1' to a 'Z'(tri-state) SDA <= '0' when (SDAo = '0') else 'Z'; -- since SDA is externally pulled-up convert a '1' to a 'Z'(tri-state) -- SCL <= SCLo; -- SDA <= SDAo; end architecture structural; uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/i2c_master_bit_ctrl.vhd000066400000000000000000000435411224274632000251320ustar00rootroot00000000000000--------------------------------------------------------------------- ---- ---- ---- WISHBONE revB2 I2C Master Core; bit-controller ---- ---- ---- ---- ---- ---- Author: Richard Herveille ---- ---- richard@asics.ws ---- ---- www.asics.ws ---- ---- ---- ---- Downloaded from: http://www.opencores.org/projects/i2c/ ---- ---- ---- --------------------------------------------------------------------- ---- ---- ---- Copyright (C) 2000 Richard Herveille ---- ---- richard@asics.ws ---- ---- ---- ---- This source file may be used and distributed without ---- ---- restriction provided that this copyright statement is not ---- ---- removed from the file and that any derivative work contains ---- ---- the original copyright notice and the associated disclaimer.---- ---- ---- ---- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ---- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ---- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ---- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ---- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ---- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ---- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ---- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ---- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ---- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ---- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ---- POSSIBILITY OF SUCH DAMAGE. ---- ---- ---- --------------------------------------------------------------------- -- CVS Log -- -- $Id: i2c_master_bit_ctrl.vhd,v 1.14 2006/10/11 12:10:13 rherveille Exp $ -- -- $Date: 2006/10/11 12:10:13 $ -- $Revision: 1.14 $ -- $Author: rherveille $ -- $Locker: $ -- $State: Exp $ -- -- Change History: -- $Log: i2c_master_bit_ctrl.vhd,v $ -- Revision 1.14 2006/10/11 12:10:13 rherveille -- Added missing semicolons ';' on endif -- -- Revision 1.13 2006/10/06 10:48:24 rherveille -- fixed short scl high pulse after clock stretch -- -- Revision 1.12 2004/05/07 11:53:31 rherveille -- Fixed previous fix :) Made a variable vs signal mistake. -- -- Revision 1.11 2004/05/07 11:04:00 rherveille -- Fixed a bug where the core would signal an arbitration lost (AL bit set), when another master controls the bus and the other master generates a STOP bit. -- -- Revision 1.10 2004/02/27 07:49:43 rherveille -- Fixed a bug in the arbitration-lost signal generation. VHDL version only. -- -- Revision 1.9 2003/08/12 14:48:37 rherveille -- Forgot an 'end if' :-/ -- -- Revision 1.8 2003/08/09 07:01:13 rherveille -- Fixed a bug in the Arbitration Lost generation caused by delay on the (external) sda line. -- Fixed a potential bug in the byte controller's host-acknowledge generation. -- -- Revision 1.7 2003/02/05 00:06:02 rherveille -- Fixed a bug where the core would trigger an erroneous 'arbitration lost' interrupt after being reset, when the reset pulse width < 3 clk cycles. -- -- Revision 1.6 2003/02/01 02:03:06 rherveille -- Fixed a few 'arbitration lost' bugs. VHDL version only. -- -- Revision 1.5 2002/12/26 16:05:47 rherveille -- Core is now a Multimaster I2C controller. -- -- Revision 1.4 2002/11/30 22:24:37 rherveille -- Cleaned up code -- -- Revision 1.3 2002/10/30 18:09:53 rherveille -- Fixed some reported minor start/stop generation timing issuess. -- -- Revision 1.2 2002/06/15 07:37:04 rherveille -- Fixed a small timing bug in the bit controller.\nAdded verilog simulation environment. -- -- Revision 1.1 2001/11/05 12:02:33 rherveille -- Split i2c_master_core.vhd into separate files for each entity; same layout as verilog version. -- Code updated, is now up-to-date to doc. rev.0.4. -- Added headers. -- -- ------------------------------------- -- Bit controller section ------------------------------------ -- -- Translate simple commands into SCL/SDA transitions -- Each command has 5 states, A/B/C/D/idle -- -- start: SCL ~~~~~~~~~~~~~~\____ -- SDA XX/~~~~~~~\______ -- x | A | B | C | D | i -- -- repstart SCL ______/~~~~~~~\___ -- SDA __/~~~~~~~\______ -- x | A | B | C | D | i -- -- stop SCL _______/~~~~~~~~~~~ -- SDA ==\___________/~~~~~ -- x | A | B | C | D | i -- --- write SCL ______/~~~~~~~\____ -- SDA XXX===============XX -- x | A | B | C | D | i -- --- read SCL ______/~~~~~~~\____ -- SDA XXXXXXX=XXXXXXXXXXX -- x | A | B | C | D | i -- -- Timing: Normal mode Fast mode ----------------------------------------------------------------- -- Fscl 100KHz 400KHz -- Th_scl 4.0us 0.6us High period of SCL -- Tl_scl 4.7us 1.3us Low period of SCL -- Tsu:sta 4.7us 0.6us setup time for a repeated start condition -- Tsu:sto 4.0us 0.6us setup time for a stop conditon -- Tbuf 4.7us 1.3us Bus free time between a stop and start condition -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity i2c_master_bit_ctrl is port ( clk : in std_logic; rst : in std_logic; nReset : in std_logic; ena : in std_logic; -- core enable signal clk_cnt : in unsigned(15 downto 0); -- clock prescale value cmd : in std_logic_vector(3 downto 0); cmd_ack : out std_logic; -- command completed busy : out std_logic; -- i2c bus busy al : out std_logic; -- arbitration lost din : in std_logic; dout : out std_logic; -- i2c lines scl_i : in std_logic; -- i2c clock line input scl_o : out std_logic; -- i2c clock line output scl_oen : out std_logic; -- i2c clock line output enable, active low sda_i : in std_logic; -- i2c data line input sda_o : out std_logic; -- i2c data line output sda_oen : out std_logic -- i2c data line output enable, active low ); end entity i2c_master_bit_ctrl; architecture structural of i2c_master_bit_ctrl is constant I2C_CMD_NOP : std_logic_vector(3 downto 0) := "0000"; constant I2C_CMD_START : std_logic_vector(3 downto 0) := "0001"; constant I2C_CMD_STOP : std_logic_vector(3 downto 0) := "0010"; constant I2C_CMD_READ : std_logic_vector(3 downto 0) := "0100"; constant I2C_CMD_WRITE : std_logic_vector(3 downto 0) := "1000"; type states is (idle, start_a, start_b, start_c, start_d, start_e, stop_a, stop_b, stop_c, stop_d, rd_a, rd_b, rd_c, rd_d, wr_a, wr_b, wr_c, wr_d); signal c_state : states; signal iscl_oen, isda_oen : std_logic; -- internal I2C lines signal sda_chk : std_logic; -- check SDA status (multi-master arbitration) signal dscl_oen : std_logic; -- delayed scl_oen signals signal sSCL, sSDA : std_logic; -- synchronized SCL and SDA inputs signal clk_en, slave_wait : std_logic; -- clock generation signals signal ial : std_logic; -- internal arbitration lost signal -- signal cnt : unsigned(15 downto 0) := clk_cnt; -- clock divider counter (simulation) signal cnt : unsigned(15 downto 0); -- clock divider counter (synthesis) begin -- whenever the slave is not ready it can delay the cycle by pulling SCL low -- delay scl_oen process (clk) begin if (clk'event and clk = '1') then dscl_oen <= iscl_oen; end if; end process; slave_wait <= dscl_oen and not sSCL; -- generate clk enable signal gen_clken: process(clk, nReset) begin if (nReset = '0') then cnt <= (others => '0'); clk_en <= '1'; elsif (clk'event and clk = '1') then if (rst = '1') then cnt <= (others => '0'); clk_en <= '1'; elsif ( (cnt = 0) or (ena = '0') ) then cnt <= clk_cnt; clk_en <= '1'; elsif (slave_wait = '1') then cnt <= cnt; clk_en <= '0'; else cnt <= cnt -1; clk_en <= '0'; end if; end if; end process gen_clken; -- generate bus status controller bus_status_ctrl: block signal dSCL, dSDA : std_logic; -- delayes sSCL and sSDA signal sta_condition : std_logic; -- start detected signal sto_condition : std_logic; -- stop detected signal cmd_stop : std_logic; -- STOP command signal ibusy : std_logic; -- internal busy signal begin -- synchronize SCL and SDA inputs synch_scl_sda: process(clk, nReset) begin if (nReset = '0') then sSCL <= '1'; sSDA <= '1'; dSCL <= '1'; dSDA <= '1'; elsif (clk'event and clk = '1') then if (rst = '1') then sSCL <= '1'; sSDA <= '1'; dSCL <= '1'; dSDA <= '1'; else sSCL <= scl_i; sSDA <= sda_i; dSCL <= sSCL; dSDA <= sSDA; end if; end if; end process synch_SCL_SDA; -- detect start condition => detect falling edge on SDA while SCL is high -- detect stop condition => detect rising edge on SDA while SCL is high detect_sta_sto: process(clk, nReset) begin if (nReset = '0') then sta_condition <= '0'; sto_condition <= '0'; elsif (clk'event and clk = '1') then if (rst = '1') then sta_condition <= '0'; sto_condition <= '0'; else sta_condition <= (not sSDA and dSDA) and sSCL; sto_condition <= (sSDA and not dSDA) and sSCL; end if; end if; end process detect_sta_sto; -- generate i2c-bus busy signal gen_busy: process(clk, nReset) begin if (nReset = '0') then ibusy <= '0'; elsif (clk'event and clk = '1') then if (rst = '1') then ibusy <= '0'; else ibusy <= (sta_condition or ibusy) and not sto_condition; end if; end if; end process gen_busy; busy <= ibusy; -- generate arbitration lost signal -- aribitration lost when: -- 1) master drives SDA high, but the i2c bus is low -- 2) stop detected while not requested (detect during 'idle' state) gen_al: process(clk, nReset) begin if (nReset = '0') then cmd_stop <= '0'; ial <= '0'; elsif (clk'event and clk = '1') then if (rst = '1') then cmd_stop <= '0'; ial <= '0'; else if (clk_en = '1') then if (cmd = I2C_CMD_STOP) then cmd_stop <= '1'; else cmd_stop <= '0'; end if; end if; if (c_state = idle) then ial <= (sda_chk and not sSDA and isda_oen); else ial <= (sda_chk and not sSDA and isda_oen) or (sto_condition and not cmd_stop); end if; end if; end if; end process gen_al; al <= ial; -- generate dout signal, store dout on rising edge of SCL gen_dout: process(clk) begin if (clk'event and clk = '1') then if (sSCL = '1' and dSCL = '0') then dout <= sSDA; end if; end if; end process gen_dout; end block bus_status_ctrl; -- generate statemachine nxt_state_decoder : process (clk, nReset, c_state, cmd) begin if (nReset = '0') then c_state <= idle; cmd_ack <= '0'; iscl_oen <= '1'; isda_oen <= '1'; sda_chk <= '0'; elsif (clk'event and clk = '1') then if (rst = '1' or ial = '1') then c_state <= idle; cmd_ack <= '0'; iscl_oen <= '1'; isda_oen <= '1'; sda_chk <= '0'; else cmd_ack <= '0'; -- default no acknowledge if (clk_en = '1') then case (c_state) is -- idle when idle => case cmd is when I2C_CMD_START => c_state <= start_a; when I2C_CMD_STOP => c_state <= stop_a; when I2C_CMD_WRITE => c_state <= wr_a; when I2C_CMD_READ => c_state <= rd_a; when others => c_state <= idle; -- NOP command end case; iscl_oen <= iscl_oen; -- keep SCL in same state isda_oen <= isda_oen; -- keep SDA in same state sda_chk <= '0'; -- don't check SDA -- start when start_a => c_state <= start_b; iscl_oen <= iscl_oen; -- keep SCL in same state (for repeated start) isda_oen <= '1'; -- set SDA high sda_chk <= '0'; -- don't check SDA when start_b => c_state <= start_c; iscl_oen <= '1'; -- set SCL high isda_oen <= '1'; -- keep SDA high sda_chk <= '0'; -- don't check SDA when start_c => c_state <= start_d; iscl_oen <= '1'; -- keep SCL high isda_oen <= '0'; -- set SDA low sda_chk <= '0'; -- don't check SDA when start_d => c_state <= start_e; iscl_oen <= '1'; -- keep SCL high isda_oen <= '0'; -- keep SDA low sda_chk <= '0'; -- don't check SDA when start_e => c_state <= idle; cmd_ack <= '1'; -- command completed iscl_oen <= '0'; -- set SCL low isda_oen <= '0'; -- keep SDA low sda_chk <= '0'; -- don't check SDA -- stop when stop_a => c_state <= stop_b; iscl_oen <= '0'; -- keep SCL low isda_oen <= '0'; -- set SDA low sda_chk <= '0'; -- don't check SDA when stop_b => c_state <= stop_c; iscl_oen <= '1'; -- set SCL high isda_oen <= '0'; -- keep SDA low sda_chk <= '0'; -- don't check SDA when stop_c => c_state <= stop_d; iscl_oen <= '1'; -- keep SCL high isda_oen <= '0'; -- keep SDA low sda_chk <= '0'; -- don't check SDA when stop_d => c_state <= idle; cmd_ack <= '1'; -- command completed iscl_oen <= '1'; -- keep SCL high isda_oen <= '1'; -- set SDA high sda_chk <= '0'; -- don't check SDA -- read when rd_a => c_state <= rd_b; iscl_oen <= '0'; -- keep SCL low isda_oen <= '1'; -- tri-state SDA sda_chk <= '0'; -- don't check SDA when rd_b => c_state <= rd_c; iscl_oen <= '1'; -- set SCL high isda_oen <= '1'; -- tri-state SDA sda_chk <= '0'; -- don't check SDA when rd_c => c_state <= rd_d; iscl_oen <= '1'; -- keep SCL high isda_oen <= '1'; -- tri-state SDA sda_chk <= '0'; -- don't check SDA when rd_d => c_state <= idle; cmd_ack <= '1'; -- command completed iscl_oen <= '0'; -- set SCL low isda_oen <= '1'; -- tri-state SDA sda_chk <= '0'; -- don't check SDA -- write when wr_a => c_state <= wr_b; iscl_oen <= '0'; -- keep SCL low isda_oen <= din; -- set SDA sda_chk <= '0'; -- don't check SDA (SCL low) when wr_b => c_state <= wr_c; iscl_oen <= '1'; -- set SCL high isda_oen <= din; -- keep SDA sda_chk <= '1'; -- check SDA when wr_c => c_state <= wr_d; iscl_oen <= '1'; -- keep SCL high isda_oen <= din; -- keep SDA sda_chk <= '1'; -- check SDA when wr_d => c_state <= idle; cmd_ack <= '1'; -- command completed iscl_oen <= '0'; -- set SCL low isda_oen <= din; -- keep SDA sda_chk <= '0'; -- don't check SDA (SCL low) when others => end case; end if; end if; end if; end process nxt_state_decoder; -- assign outputs scl_o <= '0'; scl_oen <= iscl_oen; sda_o <= '0'; sda_oen <= isda_oen; end architecture structural; uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/i2c_master_byte_ctrl.vhd000066400000000000000000000310601224274632000253100ustar00rootroot00000000000000--------------------------------------------------------------------- ---- ---- ---- WISHBONE revB2 compl. I2C Master Core; byte-controller ---- ---- ---- ---- ---- ---- Author: Richard Herveille ---- ---- richard@asics.ws ---- ---- www.asics.ws ---- ---- ---- ---- Downloaded from: http://www.opencores.org/projects/i2c/ ---- ---- ---- --------------------------------------------------------------------- ---- ---- ---- Copyright (C) 2000 Richard Herveille ---- ---- richard@asics.ws ---- ---- ---- ---- This source file may be used and distributed without ---- ---- restriction provided that this copyright statement is not ---- ---- removed from the file and that any derivative work contains ---- ---- the original copyright notice and the associated disclaimer.---- ---- ---- ---- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ---- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ---- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ---- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ---- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ---- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ---- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ---- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ---- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ---- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ---- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ---- POSSIBILITY OF SUCH DAMAGE. ---- ---- ---- --------------------------------------------------------------------- -- CVS Log -- -- $Id: i2c_master_byte_ctrl.vhd,v 1.5 2004/02/18 11:41:48 rherveille Exp $ -- -- $Date: 2004/02/18 11:41:48 $ -- $Revision: 1.5 $ -- $Author: rherveille $ -- $Locker: $ -- $State: Exp $ -- -- Change History: -- $Log: i2c_master_byte_ctrl.vhd,v $ -- Revision 1.5 2004/02/18 11:41:48 rherveille -- Fixed a potential bug in the statemachine. During a 'stop' 2 cmd_ack signals were generated. Possibly canceling a new start command. -- -- Revision 1.4 2003/08/09 07:01:13 rherveille -- Fixed a bug in the Arbitration Lost generation caused by delay on the (external) sda line. -- Fixed a potential bug in the byte controller's host-acknowledge generation. -- -- Revision 1.3 2002/12/26 16:05:47 rherveille -- Core is now a Multimaster I2C controller. -- -- Revision 1.2 2002/11/30 22:24:37 rherveille -- Cleaned up code -- -- Revision 1.1 2001/11/05 12:02:33 rherveille -- Split i2c_master_core.vhd into separate files for each entity; same layout as verilog version. -- Code updated, is now up-to-date to doc. rev.0.4. -- Added headers. -- -- ------------------------------------------ -- Byte controller section ------------------------------------------ -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity i2c_master_byte_ctrl is port ( clk : in std_logic; rst : in std_logic; -- synchronous active high reset (WISHBONE compatible) nReset : in std_logic; -- asynchornous active low reset (FPGA compatible) ena : in std_logic; -- core enable signal clk_cnt : in unsigned(15 downto 0); -- 4x SCL -- input signals start, stop, read, write, ack_in : std_logic; din : in std_logic_vector(7 downto 0); -- output signals cmd_ack : out std_logic; -- command done ack_out : out std_logic; i2c_busy : out std_logic; -- arbitration lost i2c_al : out std_logic; -- i2c bus busy dout : out std_logic_vector(7 downto 0); -- i2c lines scl_i : in std_logic; -- i2c clock line input scl_o : out std_logic; -- i2c clock line output scl_oen : out std_logic; -- i2c clock line output enable, active low sda_i : in std_logic; -- i2c data line input sda_o : out std_logic; -- i2c data line output sda_oen : out std_logic -- i2c data line output enable, active low ); end entity i2c_master_byte_ctrl; architecture structural of i2c_master_byte_ctrl is component i2c_master_bit_ctrl is port ( clk : in std_logic; rst : in std_logic; nReset : in std_logic; ena : in std_logic; -- core enable signal clk_cnt : in unsigned(15 downto 0); -- clock prescale value cmd : in std_logic_vector(3 downto 0); cmd_ack : out std_logic; -- command done busy : out std_logic; -- i2c bus busy al : out std_logic; -- arbitration lost din : in std_logic; dout : out std_logic; -- i2c lines scl_i : in std_logic; -- i2c clock line input scl_o : out std_logic; -- i2c clock line output scl_oen : out std_logic; -- i2c clock line output enable, active low sda_i : in std_logic; -- i2c data line input sda_o : out std_logic; -- i2c data line output sda_oen : out std_logic -- i2c data line output enable, active low ); end component i2c_master_bit_ctrl; -- commands for bit_controller block constant I2C_CMD_NOP : std_logic_vector(3 downto 0) := "0000"; constant I2C_CMD_START : std_logic_vector(3 downto 0) := "0001"; constant I2C_CMD_STOP : std_logic_vector(3 downto 0) := "0010"; constant I2C_CMD_READ : std_logic_vector(3 downto 0) := "0100"; constant I2C_CMD_WRITE : std_logic_vector(3 downto 0) := "1000"; -- signals for bit_controller signal core_cmd : std_logic_vector(3 downto 0); signal core_ack, core_txd, core_rxd : std_logic; signal al : std_logic; -- signals for shift register signal sr : std_logic_vector(7 downto 0); -- 8bit shift register signal shift, ld : std_logic; -- signals for state machine signal go, host_ack : std_logic; signal dcnt : unsigned(2 downto 0); -- data counter signal cnt_done : std_logic; begin -- hookup bit_controller bit_ctrl: i2c_master_bit_ctrl port map( clk => clk, rst => rst, nReset => nReset, ena => ena, clk_cnt => clk_cnt, cmd => core_cmd, cmd_ack => core_ack, busy => i2c_busy, al => al, din => core_txd, dout => core_rxd, scl_i => scl_i, scl_o => scl_o, scl_oen => scl_oen, sda_i => sda_i, sda_o => sda_o, sda_oen => sda_oen ); i2c_al <= al; -- generate host-command-acknowledge cmd_ack <= host_ack; -- generate go-signal go <= (read or write or stop) and not host_ack; -- assign Dout output to shift-register dout <= sr; -- generate shift register shift_register: process(clk, nReset) begin if (nReset = '0') then sr <= (others => '0'); elsif (clk'event and clk = '1') then if (rst = '1') then sr <= (others => '0'); elsif (ld = '1') then sr <= din; elsif (shift = '1') then sr <= (sr(6 downto 0) & core_rxd); end if; end if; end process shift_register; -- generate data-counter data_cnt: process(clk, nReset) begin if (nReset = '0') then dcnt <= (others => '0'); elsif (clk'event and clk = '1') then if (rst = '1') then dcnt <= (others => '0'); elsif (ld = '1') then dcnt <= (others => '1'); -- load counter with 7 elsif (shift = '1') then dcnt <= dcnt -1; end if; end if; end process data_cnt; cnt_done <= '1' when (dcnt = 0) else '0'; -- -- state machine -- statemachine : block type states is (st_idle, st_start, st_read, st_write, st_ack, st_stop); signal c_state : states; begin -- -- command interpreter, translate complex commands into simpler I2C commands -- nxt_state_decoder: process(clk, nReset) begin if (nReset = '0') then core_cmd <= I2C_CMD_NOP; core_txd <= '0'; shift <= '0'; ld <= '0'; host_ack <= '0'; c_state <= st_idle; ack_out <= '0'; elsif (clk'event and clk = '1') then if (rst = '1' or al = '1') then core_cmd <= I2C_CMD_NOP; core_txd <= '0'; shift <= '0'; ld <= '0'; host_ack <= '0'; c_state <= st_idle; ack_out <= '0'; else -- initialy reset all signal core_txd <= sr(7); shift <= '0'; ld <= '0'; host_ack <= '0'; case c_state is when st_idle => if (go = '1') then if (start = '1') then c_state <= st_start; core_cmd <= I2C_CMD_START; elsif (read = '1') then c_state <= st_read; core_cmd <= I2C_CMD_READ; elsif (write = '1') then c_state <= st_write; core_cmd <= I2C_CMD_WRITE; else -- stop c_state <= st_stop; core_cmd <= I2C_CMD_STOP; end if; ld <= '1'; end if; when st_start => if (core_ack = '1') then if (read = '1') then c_state <= st_read; core_cmd <= I2C_CMD_READ; else c_state <= st_write; core_cmd <= I2C_CMD_WRITE; end if; ld <= '1'; end if; when st_write => if (core_ack = '1') then if (cnt_done = '1') then c_state <= st_ack; core_cmd <= I2C_CMD_READ; else c_state <= st_write; -- stay in same state core_cmd <= I2C_CMD_WRITE; -- write next bit shift <= '1'; end if; end if; when st_read => if (core_ack = '1') then if (cnt_done = '1') then c_state <= st_ack; core_cmd <= I2C_CMD_WRITE; else c_state <= st_read; -- stay in same state core_cmd <= I2C_CMD_READ; -- read next bit end if; shift <= '1'; core_txd <= ack_in; end if; when st_ack => if (core_ack = '1') then -- check for stop; Should a STOP command be generated ? if (stop = '1') then c_state <= st_stop; core_cmd <= I2C_CMD_STOP; else c_state <= st_idle; core_cmd <= I2C_CMD_NOP; -- generate command acknowledge signal host_ack <= '1'; end if; -- assign ack_out output to core_rxd (contains last received bit) ack_out <= core_rxd; core_txd <= '1'; else core_txd <= ack_in; end if; when st_stop => if (core_ack = '1') then c_state <= st_idle; core_cmd <= I2C_CMD_NOP; -- generate command acknowledge signal host_ack <= '1'; end if; when others => -- illegal states c_state <= st_idle; core_cmd <= I2C_CMD_NOP; report ("Byte controller entered illegal state."); end case; end if; end if; end process nxt_state_decoder; end block statemachine; end architecture structural; uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/i2c_master_top.vhd000066400000000000000000000322041224274632000241240ustar00rootroot00000000000000--------------------------------------------------------------------- ---- ---- ---- WISHBONE revB2 compl. I2C Master Core; top level ---- ---- ---- ---- ---- ---- Author: Richard Herveille ---- ---- richard@asics.ws ---- ---- www.asics.ws ---- ---- ---- ---- Downloaded from: http://www.opencores.org/projects/i2c/ ---- ---- ---- --------------------------------------------------------------------- ---- ---- ---- Copyright (C) 2000 Richard Herveille ---- ---- richard@asics.ws ---- ---- ---- ---- This source file may be used and distributed without ---- ---- restriction provided that this copyright statement is not ---- ---- removed from the file and that any derivative work contains ---- ---- the original copyright notice and the associated disclaimer.---- ---- ---- ---- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY ---- ---- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ---- ---- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ---- ---- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR ---- ---- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ---- ---- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ---- ---- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ---- ---- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ---- ---- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ---- ---- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ---- ---- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ---- ---- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ---- ---- POSSIBILITY OF SUCH DAMAGE. ---- ---- ---- --------------------------------------------------------------------- -- CVS Log -- -- $Id: i2c_master_top.vhd,v 1.7 2004/03/14 10:17:03 rherveille Exp $ -- -- $Date: 2004/03/14 10:17:03 $ -- $Revision: 1.7 $ -- $Author: rherveille $ -- $Locker: $ -- $State: Exp $ -- -- Change History: -- $Log: i2c_master_top.vhd,v $ -- Revision 1.7 2004/03/14 10:17:03 rherveille -- Fixed simulation issue when writing to CR register -- -- Revision 1.6 2003/08/09 07:01:13 rherveille -- Fixed a bug in the Arbitration Lost generation caused by delay on the (external) sda line. -- Fixed a potential bug in the byte controller's host-acknowledge generation. -- -- Revision 1.5 2003/02/01 02:03:06 rherveille -- Fixed a few 'arbitration lost' bugs. VHDL version only. -- -- Revision 1.4 2002/12/26 16:05:47 rherveille -- Core is now a Multimaster I2C controller. -- -- Revision 1.3 2002/11/30 22:24:37 rherveille -- Cleaned up code -- -- Revision 1.2 2001/11/10 10:52:44 rherveille -- Changed PRER reset value from 0x0000 to 0xffff, conform specs. -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; entity i2c_master_top is generic( ARST_LVL : std_logic := '0' -- asynchronous reset level ); port ( -- wishbone signals wb_clk_i : in std_logic; -- master clock input wb_rst_i : in std_logic := '0'; -- synchronous active high reset arst_i : in std_logic := not ARST_LVL; -- asynchronous reset wb_adr_i : in unsigned(2 downto 0); -- lower address bits wb_dat_i : in std_logic_vector(7 downto 0); -- Databus input wb_dat_o : out std_logic_vector(7 downto 0); -- Databus output wb_we_i : in std_logic; -- Write enable input wb_stb_i : in std_logic; -- Strobe signals / core select signal wb_cyc_i : in std_logic; -- Valid bus cycle input wb_ack_o : out std_logic; -- Bus cycle acknowledge output wb_inta_o : out std_logic; -- interrupt request output signal -- i2c lines scl_pad_i : in std_logic; -- i2c clock line input scl_pad_o : out std_logic; -- i2c clock line output scl_padoen_o : out std_logic; -- i2c clock line output enable, active low sda_pad_i : in std_logic; -- i2c data line input sda_pad_o : out std_logic; -- i2c data line output sda_padoen_o : out std_logic -- i2c data line output enable, active low ); end entity i2c_master_top; architecture structural of i2c_master_top is component i2c_master_byte_ctrl is port ( clk : in std_logic; rst : in std_logic; -- synchronous active high reset (WISHBONE compatible) nReset : in std_logic; -- asynchornous active low reset (FPGA compatible) ena : in std_logic; -- core enable signal clk_cnt : in unsigned(15 downto 0); -- 4x SCL -- input signals start, stop, read, write, ack_in : std_logic; din : in std_logic_vector(7 downto 0); -- output signals cmd_ack : out std_logic; ack_out : out std_logic; i2c_busy : out std_logic; i2c_al : out std_logic; dout : out std_logic_vector(7 downto 0); -- i2c lines scl_i : in std_logic; -- i2c clock line input scl_o : out std_logic; -- i2c clock line output scl_oen : out std_logic; -- i2c clock line output enable, active low sda_i : in std_logic; -- i2c data line input sda_o : out std_logic; -- i2c data line output sda_oen : out std_logic -- i2c data line output enable, active low ); end component i2c_master_byte_ctrl; -- registers signal prer : unsigned(15 downto 0); -- clock prescale register signal ctr : std_logic_vector(7 downto 0); -- control register signal txr : std_logic_vector(7 downto 0); -- transmit register signal rxr : std_logic_vector(7 downto 0); -- receive register signal cr : std_logic_vector(7 downto 0); -- command register signal sr : std_logic_vector(7 downto 0); -- status register -- internal reset signal signal rst_i : std_logic; -- wishbone write access signal wb_wacc : std_logic; -- internal acknowledge signal signal iack_o : std_logic; -- done signal: command completed, clear command register signal done : std_logic; -- command register signals signal sta, sto, rd, wr, ack, iack : std_logic; signal core_en : std_logic; -- core enable signal signal ien : std_logic; -- interrupt enable signal -- status register signals signal irxack, rxack : std_logic; -- received aknowledge from slave signal tip : std_logic; -- transfer in progress signal irq_flag : std_logic; -- interrupt pending flag signal i2c_busy : std_logic; -- i2c bus busy (start signal detected) signal i2c_al, al : std_logic; -- arbitration lost begin -- generate internal reset signal rst_i <= arst_i xor ARST_LVL; -- generate acknowledge output signal gen_ack_o : process(wb_clk_i) begin if (wb_clk_i'event and wb_clk_i = '1') then iack_o <= wb_cyc_i and wb_stb_i and not iack_o; -- because timing is always honored end if; end process gen_ack_o; wb_ack_o <= iack_o; -- generate wishbone write access signal wb_wacc <= wb_cyc_i and wb_stb_i and wb_we_i; -- assign wb_dat_o assign_dato : process(wb_clk_i) begin if (wb_clk_i'event and wb_clk_i = '1') then case wb_adr_i is when "000" => wb_dat_o <= std_logic_vector(prer( 7 downto 0)); when "001" => wb_dat_o <= std_logic_vector(prer(15 downto 8)); when "010" => wb_dat_o <= ctr; when "011" => wb_dat_o <= rxr; -- write is transmit register TxR when "100" => wb_dat_o <= sr; -- write is command register CR -- Debugging registers: -- These registers are not documented. -- Functionality could change in future releases when "101" => wb_dat_o <= txr; when "110" => wb_dat_o <= cr; when "111" => wb_dat_o <= (others => '0'); when others => wb_dat_o <= (others => 'X'); -- for simulation only end case; end if; end process assign_dato; -- generate registers (CR, SR see below) gen_regs: process(rst_i, wb_clk_i) begin if (rst_i = '0') then prer <= (others => '1'); ctr <= (others => '0'); txr <= (others => '0'); elsif (wb_clk_i'event and wb_clk_i = '1') then if (wb_rst_i = '1') then prer <= (others => '1'); ctr <= (others => '0'); txr <= (others => '0'); elsif (wb_wacc = '1') then case wb_adr_i is when "000" => prer( 7 downto 0) <= unsigned(wb_dat_i); when "001" => prer(15 downto 8) <= unsigned(wb_dat_i); when "010" => ctr <= wb_dat_i; when "011" => txr <= wb_dat_i; when "100" => null; --write to CR, avoid executing the others clause -- illegal cases, for simulation only when others => report ("Illegal write address, setting all registers to unknown."); prer <= (others => 'X'); ctr <= (others => 'X'); txr <= (others => 'X'); end case; end if; end if; end process gen_regs; -- generate command register gen_cr: process(rst_i, wb_clk_i) begin if (rst_i = '0') then cr <= (others => '0'); elsif (wb_clk_i'event and wb_clk_i = '1') then if (wb_rst_i = '1') then cr <= (others => '0'); elsif (wb_wacc = '1') then if ( (core_en = '1') and (wb_adr_i = 4) ) then -- only take new commands when i2c core enabled -- pending commands are finished cr <= wb_dat_i; end if; else if (done = '1' or i2c_al = '1') then cr(7 downto 4) <= (others => '0'); -- clear command bits when command done or arbitration lost end if; cr(2 downto 1) <= (others => '0'); -- reserved bits, always '0' cr(0) <= '0'; -- clear IRQ_ACK bit end if; end if; end process gen_cr; -- decode command register sta <= cr(7); sto <= cr(6); rd <= cr(5); wr <= cr(4); ack <= cr(3); iack <= cr(0); -- decode control register core_en <= ctr(7); ien <= ctr(6); -- hookup byte controller block byte_ctrl: i2c_master_byte_ctrl port map ( clk => wb_clk_i, rst => wb_rst_i, nReset => rst_i, ena => core_en, clk_cnt => prer, start => sta, stop => sto, read => rd, write => wr, ack_in => ack, i2c_busy => i2c_busy, i2c_al => i2c_al, din => txr, cmd_ack => done, ack_out => irxack, dout => rxr, scl_i => scl_pad_i, scl_o => scl_pad_o, scl_oen => scl_padoen_o, sda_i => sda_pad_i, sda_o => sda_pad_o, sda_oen => sda_padoen_o ); -- status register block + interrupt request signal st_irq_block : block begin -- generate status register bits gen_sr_bits: process (wb_clk_i, rst_i) begin if (rst_i = '0') then al <= '0'; rxack <= '0'; tip <= '0'; irq_flag <= '0'; elsif (wb_clk_i'event and wb_clk_i = '1') then if (wb_rst_i = '1') then al <= '0'; rxack <= '0'; tip <= '0'; irq_flag <= '0'; else al <= i2c_al or (al and not sta); rxack <= irxack; tip <= (rd or wr); -- interrupt request flag is always generated irq_flag <= (done or i2c_al or irq_flag) and not iack; end if; end if; end process gen_sr_bits; -- generate interrupt request signals gen_irq: process (wb_clk_i, rst_i) begin if (rst_i = '0') then wb_inta_o <= '0'; elsif (wb_clk_i'event and wb_clk_i = '1') then if (wb_rst_i = '1') then wb_inta_o <= '0'; else -- interrupt signal is only generated when IEN (interrupt enable bit) is set wb_inta_o <= irq_flag and ien; end if; end if; end process gen_irq; -- assign status register bits sr(7) <= rxack; sr(6) <= i2c_busy; sr(5) <= al; sr(4 downto 2) <= (others => '0'); -- reserved sr(1) <= tip; sr(0) <= irq_flag; end block; end architecture structural; uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/readme000066400000000000000000000014251224274632000216700ustar00rootroot00000000000000 -- This code is provided for free and may be used and -- -- distributed without restriction provided that the -- -- copyright statement is not removed from the file and -- -- that any derivative work contains the original -- -- copyright notice and the associated disclaimer. -- -- Comments and suggestions are always welcome -- The i2c_master core consists of three files: - i2c_master_top -- top level - i2c_master_byte_ctrl -- byte controller - i2c_master_bit_ctrl -- bit controller VHDL needs to be compiled in order. The files are listed above in descending order. I2C.VHD and tst_ds1621.vhd are not supported anymore. They remain mostly for historical purposes, altough they might prove usefull. Richard Herveille rherveille@opencores.org uhd-3.5.5/fpga/usrp2/opencores/i2c/rtl/vhdl/tst_ds1621.vhd000066400000000000000000000154571224274632000230370ustar00rootroot00000000000000-- -- -- State machine for reading data from Dallas 1621 -- -- Testsystem for i2c controller -- -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use work.i2c.all; entity DS1621_interface is port ( clk : in std_logic; nReset : in std_logic; Dout : out std_logic_vector(7 downto 0); -- data read from ds1621 error : out std_logic; -- no correct ack received SCL : inout std_logic; SDA : inout std_logic ); end entity DS1621_interface; architecture structural of DS1621_interface is constant SLAVE_ADDR : std_logic_vector(6 downto 0) := "1001000"; constant CLK_CNT : unsigned(7 downto 0) := conv_unsigned(20, 8); signal cmd_ack : std_logic; signal D : std_logic_vector(7 downto 0); signal lack, store_dout : std_logic; signal start, read, write, ack, stop : std_logic; signal i2c_dout : std_logic_vector(7 downto 0); begin -- hookup I2C controller u1: simple_i2c port map (clk => clk, ena => '1', clk_cnt => clk_cnt, nReset => nReset, read => read, write => write, start => start, stop => stop, ack_in => ack, cmd_ack => cmd_ack, Din => D, Dout => i2c_dout, ack_out => lack, SCL => SCL, SDA => SDA); init_statemachine : block type states is (i1, i2, i3, i4, i5, t1, t2, t3, t4, t5); signal state : states; begin nxt_state_decoder: process(clk, nReset, state) variable nxt_state : states; variable iD : std_logic_vector(7 downto 0); variable ierr : std_logic; variable istart, iread, iwrite, iack, istop : std_logic; variable istore_dout : std_logic; begin nxt_state := state; ierr := '0'; istore_dout := '0'; istart := start; iread := read; iwrite := write; iack := ack; istop := stop; iD := D; case (state) is -- init DS1621 -- 1) send start condition -- 2) send slave address + write -- 3) check ack -- 4) send "access config" command (0xAC) -- 5) check ack -- 6) send config register data (0x00) -- 7) check ack -- 8) send stop condition -- 9) send start condition -- 10) send slave address + write -- 11) check ack -- 12) send "start conversion" command (0xEE) -- 13) check ack -- 14) send stop condition when i1 => -- send start condition, sent slave address + write nxt_state := i2; istart := '1'; iread := '0'; iwrite := '1'; iack := '0'; istop := '0'; iD := (slave_addr & '0'); -- write to slave (R/W = '0') when i2 => -- send "access config" command if (cmd_ack = '1') then nxt_state := i3; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received from last command, expected ACK end if; istart := '0'; iread := '0'; iwrite := '1'; iack := '0'; istop := '0'; iD := x"AC"; end if; when i3 => -- send config register data, sent stop condition if (cmd_ack = '1') then nxt_state := i4; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received from last command, expected ACK end if; istart := '0'; iread := '0'; iwrite := '1'; iack := '0'; istop := '1'; iD := x"00"; end if; when i4 => -- send start condition, sent slave address + write if (cmd_ack = '1') then nxt_state := i5; istart := '1'; iread := '0'; iwrite := '1'; iack := '0'; istop := '0'; iD := (slave_addr & '0'); -- write to slave (R/W = '0') end if; when i5 => -- send "start conversion" command + stop condition if (cmd_ack = '1') then nxt_state := t1; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received from last command, expected ACK end if; istart := '0'; iread := '0'; iwrite := '1'; iack := '0'; istop := '1'; iD := x"EE"; end if; -- read temperature -- 1) sent start condition -- 2) sent slave address + write -- 3) check ack -- 4) sent "read temperature" command (0xAA) -- 5) check ack -- 6) sent start condition -- 7) sent slave address + read -- 8) check ack -- 9) read msb -- 10) send ack -- 11) read lsb -- 12) send nack -- 13) send stop condition when t1 => -- send start condition, sent slave address + write if (cmd_ack = '1') then nxt_state := t2; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received from last command, expected ACK end if; istart := '1'; iread := '0'; iwrite := '1'; iack := '0'; istop := '0'; iD := (slave_addr & '0'); -- write to slave (R/W = '0') end if; when t2 => -- send read temperature command if (cmd_ack = '1') then nxt_state := t3; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received from last command, expected ACK end if; istart := '0'; iread := '0'; iwrite := '1'; iack := '0'; istop := '0'; iD := x"AA"; end if; when t3 => -- send (repeated) start condition, send slave address + read if (cmd_ack = '1') then nxt_state := t4; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received, expected ACK end if; istart := '1'; iread := '0'; iwrite := '1'; iack := '0'; istop := '0'; iD := (slave_addr & '1'); -- read from slave (R/W = '1') end if; when t4 => -- read MSB (hi-byte), send acknowledge if (cmd_ack = '1') then nxt_state := t5; -- check aknowledge bit if (lack = '1') then ierr := '1'; -- no acknowledge received from last command, expected ACK end if; istart := '0'; iread := '1'; iwrite := '0'; iack := '0'; --ACK istop := '0'; end if; when t5 => -- read LSB (lo-byte), send acknowledge, sent stop if (cmd_ack = '1') then nxt_state := t1; istart := '0'; iread := '1'; iwrite := '0'; iack := '1'; --NACK istop := '1'; istore_dout := '1'; end if; end case; -- genregs if (nReset = '0') then state <= i1; error <= '0'; store_dout <= '0'; start <= '0'; read <= '0'; write <= '0'; ack <= '0'; stop <= '0'; D <= (others => '0'); elsif (clk'event and clk = '1') then state <= nxt_state; error <= ierr; store_dout <= istore_dout; start <= istart; read <= iread; write <= iwrite; ack <= iack; stop <= istop; D <= iD; end if; end process nxt_state_decoder; end block init_statemachine; -- store temp gen_dout : process(clk) begin if (clk'event and clk = '1') then if (store_dout = '1') then Dout <= i2c_dout; end if; end if; end process gen_dout; end architecture structural; uhd-3.5.5/fpga/usrp2/opencores/i2c/sim/000077500000000000000000000000001224274632000175405ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/sim/i2c_verilog/000077500000000000000000000000001224274632000217445ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/sim/i2c_verilog/run/000077500000000000000000000000001224274632000225505ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/sim/i2c_verilog/run/bench.vcd000066400000000000000000242167071224274632000243500ustar00rootroot00000000000000$date Jun 15, 2002 13:36:37 $end $version ncsim: v03.40.(b001) $end $timescale 10 ps $end $scope module tst_bench_top $end $var reg 1 ! clk $end $var reg 1 " rstn $end $var wire 1 # adr [31] $end $var wire 1 $ adr [30] $end $var wire 1 % adr [29] $end $var wire 1 & adr [28] $end $var wire 1 ' adr [27] $end $var wire 1 ( adr [26] $end $var wire 1 ) adr [25] $end $var wire 1 * adr [24] $end $var wire 1 + adr [23] $end $var wire 1 , adr [22] $end $var wire 1 - adr [21] $end $var wire 1 . adr [20] $end $var wire 1 / adr [19] $end $var wire 1 0 adr [18] $end $var wire 1 1 adr [17] $end $var wire 1 2 adr [16] $end $var wire 1 3 adr [15] $end $var wire 1 4 adr [14] $end $var wire 1 5 adr [13] $end $var wire 1 6 adr [12] $end $var wire 1 7 adr [11] $end $var wire 1 8 adr [10] $end $var wire 1 9 adr [9] $end $var wire 1 : adr [8] $end $var wire 1 ; adr [7] $end $var wire 1 < adr [6] $end $var wire 1 = adr [5] $end $var wire 1 > adr [4] $end $var wire 1 ? adr [3] $end $var wire 1 @ adr [2] $end $var wire 1 A adr [1] $end $var wire 1 B adr [0] $end $var wire 8 C dat_i [7:0] $end $var wire 8 D dat_o [7:0] $end $var wire 1 E we $end $var wire 1 F stb $end $var wire 1 G cyc $end $var wire 1 H ack $end $var wire 1 I inta $end $var reg 8 J q [7:0] $end $var reg 8 K qq [7:0] $end $var wire 1 L scl $end $var wire 1 M scl_o $end $var wire 1 N scl_oen $end $var wire 1 O sda $end $var wire 1 P sda_o $end $var wire 1 Q sda_oen $end $var parameter 3 R PRER_LO $end $var parameter 3 S PRER_HI $end $var parameter 3 T CTR $end $var parameter 3 U RXR $end $var parameter 3 V TXR $end $var parameter 3 W CR $end $var parameter 3 X SR $end $var parameter 3 Y TXR_R $end $var parameter 3 Z CR_R $end $scope module i2c_slave $end $var parameter 7 [ I2C_ADR $end $var wire 1 L scl $end $var wire 1 O sda $end $var wire 1 \ debug $end $var reg 8 ] mem_adr [7:0] $end $var reg 8 ^ mem_do [7:0] $end $var reg 1 _ sta $end $var reg 1 ` d_sta $end $var reg 1 a sto $end $var reg 1 b d_sto $end $var reg 8 c sr [7:0] $end $var reg 1 d rw $end $var wire 1 e my_adr $end $var wire 1 f i2c_reset $end $var reg 3 g bit_cnt [2:0] $end $var wire 1 h acc_done $end $var reg 1 i ld $end $var reg 1 j sda_o $end $var parameter 3 k idle $end $var parameter 3 l slave_ack $end $var parameter 3 m get_mem_adr $end $var parameter 3 n gma_ack $end $var parameter 3 o data $end $var parameter 3 p data_ack $end $var reg 3 q state [2:0] $end $upscope $end $upscope $end $enddefinitions $end $dumpvars b101 p b100 o b11 n b10 m b1 l b0 k b1010000 [ b110 Z b101 Y b100 X b100 W b11 V b11 U b10 T b1 S b0 R 0! 1" x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB bx C bx D xE xF 0G 0H xI bx J bx K xL 0M xN xO 0P xQ 0\ bx ] bx ^ x_ x` xa xb bx c xd xe xf bx g xh xi 1j b0 q $end #200 0" #300 1Q 1N 0I 1O 1L #400 1a bx1 c 1f #500 1! 1i #1000 0! #1500 1! #2000 0! #2500 1! #3000 0! #3500 1! #4000 0! #4500 1! #5000 0! #5500 1! #6000 0! #6500 1! #7000 0! #7500 1! #8000 0! #8500 1! #9000 0! #9500 1! #10000 0! #10500 1! #11000 0! #11500 1! #12000 0! #12500 1! #13000 0! #13500 1! #14000 0! #14500 1! #15000 0! #15500 1! #16000 0! #16500 1! #17000 0! #17500 1! #18000 0! #18500 1! #19000 0! #19500 1! 1" #20000 0! #20500 1! #20600 1E 1F 1G b110010 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 0A 0B b11111111 C 1H #21000 0! #21500 1! #21600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22000 0! #22500 1! #22600 1E 1F 1G b0 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 0A 1B 1H #23000 0! #23500 1! #23600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 0A 0B b110010 C 1H #24000 0! #24500 1! #24600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 0A 1B b0 C 1H #25000 0! #25500 1! #25600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26000 0! #26500 1! #26600 1E 1F 1G b10000000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 0B 1H #27000 0! #27500 1! #27600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28000 0! #28500 1! #28600 1E 1F 1G b10100000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B 1H #29000 0! #29500 1! #29600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29700 1E 1F 1G b10010000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30000 0! #30500 1! #30600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31000 0! #31500 1! #31600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b10 C #32000 0! #32500 1! #32600 b10 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33000 0! #33500 1! #33600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34000 0! #34500 1! #34600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35000 0! #35500 1! #35600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36000 0! #36500 1! #36600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37000 0! #37500 1! #37600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38000 0! #38500 1! #38600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39000 0! #39500 1! #39600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40000 0! #40500 1! #40600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #41000 0! #41500 1! #41600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #41700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #42000 0! #42500 1! #42600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #42700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #43000 0! #43500 1! #43600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #43700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #44000 0! #44500 1! #44600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #44700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #45000 0! #45500 1! #45600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #45700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #46000 0! #46500 1! #46600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #46700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #47000 0! #47500 1! #47600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #47700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #48000 0! #48500 1! #48600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #48700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #49000 0! #49500 1! #49600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #49700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #50000 0! #50500 1! #50600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #50700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #51000 0! #51500 1! #51600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #51700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #52000 0! #52500 1! #52600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #52700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #53000 0! #53500 1! #53600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #53700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #54000 0! #54500 1! #54600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #54700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #55000 0! #55500 1! #55600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #55700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #56000 0! #56500 1! #56600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #56700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #57000 0! #57500 1! #57600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #57700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #58000 0! #58500 1! #58600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #58700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #59000 0! #59500 1! #59600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #59700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #60000 0! #60500 1! #60600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #60700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #61000 0! #61500 1! #61600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #61700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #62000 0! #62500 1! #62600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #62700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #63000 0! #63500 1! #63600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #63700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #64000 0! #64500 1! #64600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #64700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #65000 0! #65500 1! #65600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #65700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #66000 0! #66500 1! #66600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #66700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #67000 0! #67500 1! #67600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #67700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #68000 0! #68500 1! #68600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #68700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #69000 0! #69500 1! #69600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #69700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #70000 0! #70500 1! #70600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #70700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #71000 0! #71500 1! #71600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #71700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #72000 0! #72500 1! #72600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #72700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #73000 0! #73500 1! #73600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #73700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #74000 0! #74500 1! #74600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #74700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #75000 0! #75500 1! #75600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #75700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #76000 0! #76500 1! #76600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #76700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #77000 0! #77500 1! #77600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #77700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #78000 0! #78500 1! #78600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #78700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #79000 0! #79500 1! #79600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #79700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #80000 0! #80500 1! #80600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #80700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #81000 0! #81500 1! #81600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #81700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #82000 0! #82500 1! #82600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #82700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #83000 0! #83500 1! #83600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #83700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #84000 0! #84500 1! #84600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #84700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #85000 0! #85500 1! #85600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #85700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #86000 0! #86500 1! #86600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #86700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #87000 0! #87500 1! #87600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #87700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #88000 0! #88500 1! #88600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #88700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #89000 0! #89500 1! #89600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #89700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #90000 0! #90500 1! #90600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #90700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #91000 0! #91500 1! #91600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #91700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #92000 0! #92500 1! #92600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #92700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #93000 0! #93500 1! #93600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #93700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #94000 0! #94500 1! #94600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #94700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #95000 0! #95500 1! #95600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #95700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #96000 0! #96500 1! #96600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #96700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #97000 0! #97500 1! #97600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #97700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #98000 0! #98500 1! #98600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #98700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #99000 0! #99500 1! #99600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #99700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #100000 0! #100500 1! #100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #100700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #101000 0! #101500 1! #101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #101700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #102000 0! #102500 1! #102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #102700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #103000 0! #103500 1! #103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #103700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #104000 0! #104500 1! #104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #104700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #105000 0! #105500 1! #105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #105700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #106000 0! #106500 1! #106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #106700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #107000 0! #107500 1! #107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #107700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #108000 0! #108500 1! #108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #108700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #109000 0! #109500 1! #109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #109700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #110000 0! #110500 1! #110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #110700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #111000 0! #111500 1! #111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #111700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #112000 0! #112500 1! #112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #112700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #113000 0! #113500 1! #113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #113700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #114000 0! #114500 1! #114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #114700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #115000 0! #115500 1! #115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #115700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #116000 0! #116500 1! #116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #116700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #117000 0! #117500 1! #117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #117700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #118000 0! #118500 1! #118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #118700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #119000 0! #119500 1! #119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #119700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #120000 0! #120500 1! #120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #120700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #121000 0! #121500 1! #121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #121700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #122000 0! #122500 1! #122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #122700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #123000 0! #123500 1! #123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #123700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #124000 0! #124500 1! #124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #124700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #125000 0! #125500 1! #125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #125700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #126000 0! #126500 1! #126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #126700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #127000 0! #127500 1! #127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #127700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #128000 0! #128500 1! #128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #128700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #129000 0! #129500 1! #129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #129700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #130000 0! #130500 1! #130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #130700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #131000 0! #131500 1! #131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #131700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #132000 0! #132500 1! #132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #132700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #133000 0! #133500 1! #133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #133700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #134000 0! #134500 1! #134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #134700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #135000 0! #135500 1! #135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #135700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #136000 0! #136500 1! #136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #136700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #137000 0! #137500 1! #137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #137700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #138000 0! #138500 1! #138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #138700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #139000 0! #139500 1! #139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #139700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #140000 0! #140500 1! #140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #140700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #141000 0! #141500 1! #141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #141700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #142000 0! #142500 1! #142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #142700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #143000 0! #143500 1! #143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #143700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #144000 0! #144500 1! #144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #144700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #145000 0! #145500 1! #145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #145700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #146000 0! #146500 1! #146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #146700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #147000 0! #147500 1! #147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #147700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #148000 0! #148500 1! #148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #148700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #149000 0! #149500 1! #149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #149700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #150000 0! #150500 1! #150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #150700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #151000 0! #151500 1! #151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #151700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #152000 0! #152500 1! #152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #152700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #153000 0! #153500 1! #153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #153700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #154000 0! #154500 1! #154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #154700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #155000 0! #155500 1! #155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #155700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #156000 0! #156500 1! #156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #156700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #157000 0! #157500 1! #157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #157700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #158000 0! #158500 1! #158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #158700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #159000 0! #159500 1! #159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #159700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #160000 0! #160500 1! #160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #160700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #161000 0! #161500 1! #161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #161700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #162000 0! #162500 1! #162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #162700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #163000 0! #163500 1! #163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #163700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #164000 0! #164500 1! #164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #164700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #165000 0! #165500 1! #165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #165700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #166000 0! #166500 1! #166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #166700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #167000 0! #167500 1! #167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #167700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #168000 0! #168500 1! #168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #168700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #169000 0! #169500 1! #169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #169700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #170000 0! #170500 1! #170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #170700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #171000 0! #171500 1! #171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #171700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #172000 0! #172500 1! #172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #172700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #173000 0! #173500 1! #173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #173700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #174000 0! #174500 1! #174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #174700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #175000 0! #175500 1! #175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #175700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #176000 0! #176500 1! #176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #176700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #177000 0! #177500 1! #177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #177700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #178000 0! #178500 1! #178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #178700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #179000 0! #179500 1! #179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #179700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #180000 0! #180500 1! #180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #180700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #181000 0! #181500 1! #181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #181700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #182000 0! #182500 1! #182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #182700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #183000 0! #183500 1! #183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #183700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #184000 0! #184500 1! #184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #184700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #185000 0! #185500 1! #185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #185700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #186000 0! #186500 1! #186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #186700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #187000 0! #187500 1! #187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #187700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #188000 0! #188500 1! #188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #188700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #189000 0! #189500 1! #189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #189700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #190000 0! #190500 1! #190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #190700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #191000 0! #191500 1! #191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #191700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #192000 0! #192500 1! #192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #192700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #193000 0! #193500 1! #193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #193700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #194000 0! #194500 1! #194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #194700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #195000 0! #195500 1! #195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #195700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #196000 0! #196500 1! #196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #196700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #197000 0! #197500 1! #197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #197700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #198000 0! #198500 1! #198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #198700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #199000 0! #199500 1! #199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #199700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #200000 0! #200500 1! #200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #200700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #201000 0! #201500 1! #201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #201700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #202000 0! #202500 1! #202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #202700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #203000 0! #203500 1! #203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #203700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #204000 0! #204500 1! #204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #204700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #205000 0! #205500 1! #205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #205700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #206000 0! #206500 1! #206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #206700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #207000 0! #207500 1! #207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #207700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #208000 0! #208500 1! #208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #208700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #209000 0! #209500 1! #209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #209700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #210000 0! #210500 1! #210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #210700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #211000 0! #211500 1! #211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #211700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #212000 0! #212500 1! #212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #212700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #213000 0! #213500 1! #213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #213700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #214000 0! #214500 1! #214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #214700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #215000 0! #215500 1! #215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #215700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #216000 0! #216500 1! #216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #216700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #217000 0! #217500 1! #217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #217700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #218000 0! #218500 1! #218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #218700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #219000 0! #219500 1! #219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #219700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #220000 0! #220500 1! #220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #220700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #221000 0! #221500 1! #221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #221700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #222000 0! #222500 1! #222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #222700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #223000 0! #223500 1! #223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #223700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #224000 0! #224500 1! #224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #224700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #225000 0! #225500 1! #225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #225700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #226000 0! #226500 1! #226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #226700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #227000 0! #227500 1! #227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #227700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #228000 0! #228500 1! #228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #228700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #229000 0! #229500 1! #229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #229700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #230000 0! #230500 1! #230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #230700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #231000 0! #231500 1! #231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #231700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #232000 0! #232500 1! #232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #232700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1_ #233000 0! #233500 1! #233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #233700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #234000 0! #234500 1! #234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #234700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #235000 0! #235500 1! b1000010 C #235600 b1000010 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #235700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #236000 0! #236500 1! #236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #236700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #237000 0! #237500 1! #237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #237700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #238000 0! #238500 1! #238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #238700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #239000 0! #239500 1! #239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #239700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #240000 0! #240500 1! #240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #240700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #241000 0! #241500 1! #241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #241700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #242000 0! #242500 1! #242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #242700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #243000 0! #243500 1! #243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #243700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #244000 0! #244500 1! #244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #244700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #245000 0! #245500 1! #245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #245700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #246000 0! #246500 1! #246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #246700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #247000 0! #247500 1! #247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #247700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #248000 0! #248500 1! #248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #248700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #249000 0! #249500 1! #249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #249700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #250000 0! #250500 1! #250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #250700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #251000 0! #251500 1! #251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #251700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #252000 0! #252500 1! #252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #252700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #253000 0! #253500 1! #253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #253700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #254000 0! #254500 1! #254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #254700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #255000 0! #255500 1! #255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #255700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #256000 0! #256500 1! #256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #256700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #257000 0! #257500 1! #257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #257700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #258000 0! #258500 1! #258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #258700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #259000 0! #259500 1! #259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #259700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #260000 0! #260500 1! #260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #260700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #261000 0! #261500 1! #261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #261700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #262000 0! #262500 1! #262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #262700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #263000 0! #263500 1! #263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #263700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #264000 0! #264500 1! #264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #264700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #265000 0! #265500 1! #265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #265700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #266000 0! #266500 1! #266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #266700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #267000 0! #267500 1! #267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #267700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #268000 0! #268500 1! #268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #268700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #269000 0! #269500 1! #269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #269700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #270000 0! #270500 1! #270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #270700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #271000 0! #271500 1! #271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #271700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #272000 0! #272500 1! #272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #272700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #273000 0! #273500 1! #273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #273700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #274000 0! #274500 1! #274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #274700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #275000 0! #275500 1! #275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #275700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #276000 0! #276500 1! #276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #276700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #277000 0! #277500 1! #277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #277700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #278000 0! #278500 1! #278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #278700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #279000 0! #279500 1! #279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #279700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #280000 0! #280500 1! #280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #280700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #281000 0! #281500 1! #281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #281700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #282000 0! #282500 1! #282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #282700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #283000 0! #283500 1! #283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #283700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #284000 0! #284500 1! #284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #284700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #285000 0! #285500 1! #285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #285700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #286000 0! #286500 1! #286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #286700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #287000 0! #287500 1! #287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #287700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #288000 0! #288500 1! #288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #288700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #289000 0! #289500 1! #289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #289700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #290000 0! #290500 1! #290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #290700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #291000 0! #291500 1! #291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #291700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #292000 0! #292500 1! #292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #292700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #293000 0! #293500 1! #293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #293700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #294000 0! #294500 1! #294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #294700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #295000 0! #295500 1! #295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #295700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #296000 0! #296500 1! #296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #296700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #297000 0! #297500 1! #297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #297700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #298000 0! #298500 1! #298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #298700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #299000 0! #299500 1! #299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #299700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #300000 0! #300500 1! #300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #300700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #301000 0! #301500 1! #301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #301700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #302000 0! #302500 1! #302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #302700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #303000 0! #303500 1! #303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #303700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #304000 0! #304500 1! #304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #304700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #305000 0! #305500 1! #305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #305700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #306000 0! #306500 1! #306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #306700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #307000 0! #307500 1! #307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #307700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #308000 0! #308500 1! #308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #308700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #309000 0! #309500 1! #309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #309700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #310000 0! #310500 1! #310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #310700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #311000 0! #311500 1! #311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #311700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #312000 0! #312500 1! #312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #312700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #313000 0! #313500 1! #313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #313700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #314000 0! #314500 1! #314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #314700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #315000 0! #315500 1! #315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #315700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #316000 0! #316500 1! #316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #316700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #317000 0! #317500 1! #317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #317700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #318000 0! #318500 1! #318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #318700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #319000 0! #319500 1! #319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #319700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #320000 0! #320500 1! #320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #320700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #321000 0! #321500 1! #321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #321700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #322000 0! #322500 1! #322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #322700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #323000 0! #323500 1! #323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #323700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #324000 0! #324500 1! #324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #324700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #325000 0! #325500 1! #325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #325700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #326000 0! #326500 1! #326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #326700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #327000 0! #327500 1! #327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #327700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #328000 0! #328500 1! #328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #328700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #329000 0! #329500 1! #329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #329700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #330000 0! #330500 1! #330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #330700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #331000 0! #331500 1! #331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #331700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #332000 0! #332500 1! #332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #332700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #333000 0! #333500 1! #333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #333700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #334000 0! #334500 1! #334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #334700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #335000 0! #335500 1! #335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #335700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #336000 0! #336500 1! #336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #336700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #337000 0! #337500 1! #337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #337700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #338000 0! #338500 1! #338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #338700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #339000 0! #339500 1! #339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #339700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #340000 0! #340500 1! #340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #340700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #341000 0! #341500 1! #341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #341700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #342000 0! #342500 1! #342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #342700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #343000 0! #343500 1! #343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #343700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #344000 0! #344500 1! #344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #344700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #345000 0! #345500 1! #345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #345700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #346000 0! #346500 1! #346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #346700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #347000 0! #347500 1! #347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #347700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #348000 0! #348500 1! #348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #348700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #349000 0! #349500 1! #349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #349700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #350000 0! #350500 1! #350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #350700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #351000 0! #351500 1! #351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #351700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #352000 0! #352500 1! #352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #352700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #353000 0! #353500 1! #353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #353700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #354000 0! #354500 1! #354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #354700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #355000 0! #355500 1! #355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #355700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #356000 0! #356500 1! #356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #356700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #357000 0! #357500 1! #357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #357700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #358000 0! #358500 1! #358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #358700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #359000 0! #359500 1! #359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #359700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #360000 0! #360500 1! #360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #360700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #361000 0! #361500 1! #361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #361700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #362000 0! #362500 1! #362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #362700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #363000 0! #363500 1! #363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #363700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #364000 0! #364500 1! #364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #364700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #365000 0! #365500 1! #365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #365700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #366000 0! #366500 1! #366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #366700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #367000 0! #367500 1! #367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #367700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #368000 0! #368500 1! #368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #368700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #369000 0! #369500 1! #369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #369700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #370000 0! #370500 1! #370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #370700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #371000 0! #371500 1! #371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #371700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #372000 0! #372500 1! #372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #372700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #373000 0! #373500 1! #373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #373700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #374000 0! #374500 1! #374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #374700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #375000 0! #375500 1! #375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #375700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #376000 0! #376500 1! #376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #376700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #377000 0! #377500 1! #377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #377700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #378000 0! #378500 1! #378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #378700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #379000 0! #379500 1! #379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #379700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #380000 0! #380500 1! #380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #380700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #381000 0! #381500 1! #381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #381700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #382000 0! #382500 1! #382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #382700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #383000 0! #383500 1! #383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #383700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #384000 0! #384500 1! #384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #384700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #385000 0! #385500 1! #385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #385700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0a #386000 0! #386500 1! #386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #386700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #387000 0! #387500 1! #387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #387700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #388000 0! #388500 1! #388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #388700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #389000 0! #389500 1! #389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #389700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #390000 0! #390500 1! #390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #390700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #391000 0! #391500 1! #391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #391700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #392000 0! #392500 1! #392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #392700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #393000 0! #393500 1! #393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #393700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #394000 0! #394500 1! #394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #394700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #395000 0! #395500 1! #395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #395700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #396000 0! #396500 1! #396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #396700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #397000 0! #397500 1! #397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #397700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #398000 0! #398500 1! #398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #398700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #399000 0! #399500 1! #399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #399700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #400000 0! #400500 1! #400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #400700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #401000 0! #401500 1! #401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #401700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #402000 0! #402500 1! #402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #402700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #403000 0! #403500 1! #403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #403700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #404000 0! #404500 1! #404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #404700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #405000 0! #405500 1! #405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #405700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #406000 0! #406500 1! #406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #406700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #407000 0! #407500 1! #407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #407700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #408000 0! #408500 1! #408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #408700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #409000 0! #409500 1! #409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #409700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #410000 0! #410500 1! #410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #410700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #411000 0! #411500 1! #411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #411700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #412000 0! #412500 1! #412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #412700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #413000 0! #413500 1! #413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #413700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #414000 0! #414500 1! #414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #414700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #415000 0! #415500 1! #415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #415700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #416000 0! #416500 1! #416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #416700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #417000 0! #417500 1! #417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #417700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #418000 0! #418500 1! #418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #418700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #419000 0! #419500 1! #419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #419700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #420000 0! #420500 1! #420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #420700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #421000 0! #421500 1! #421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #421700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #422000 0! #422500 1! #422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #422700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #423000 0! #423500 1! #423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #423700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #424000 0! #424500 1! #424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #424700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #425000 0! #425500 1! #425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #425700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #426000 0! #426500 1! #426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #426700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #427000 0! #427500 1! #427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #427700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #428000 0! #428500 1! #428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #428700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #429000 0! #429500 1! #429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #429700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #430000 0! #430500 1! #430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #430700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #431000 0! #431500 1! #431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #431700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #432000 0! #432500 1! #432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #432700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #433000 0! #433500 1! #433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #433700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #434000 0! #434500 1! #434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #434700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #435000 0! #435500 1! #435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #435700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #436000 0! #436500 1! #436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #436700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1` b111 g bx11 c 0e 0h #437000 0! #437500 1! #437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #437700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #438000 0! #438500 1! #438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #438700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #439000 0! #439500 1! #439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #439700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #440000 0! #440500 1! #440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #440700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #441000 0! #441500 1! #441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #441700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #442000 0! #442500 1! #442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #442700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #443000 0! #443500 1! #443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #443700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #444000 0! #444500 1! #444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #444700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #445000 0! #445500 1! #445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #445700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #446000 0! #446500 1! #446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #446700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #447000 0! #447500 1! #447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #447700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #448000 0! #448500 1! #448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #448700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #449000 0! #449500 1! #449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #449700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #450000 0! #450500 1! #450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #450700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #451000 0! #451500 1! #451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #451700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #452000 0! #452500 1! #452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #452700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #453000 0! #453500 1! #453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #453700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #454000 0! #454500 1! #454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #454700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #455000 0! #455500 1! #455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #455700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #456000 0! #456500 1! #456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #456700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #457000 0! #457500 1! #457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #457700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #458000 0! #458500 1! #458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #458700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #459000 0! #459500 1! #459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #459700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #460000 0! #460500 1! #460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #460700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #461000 0! #461500 1! #461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #461700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #462000 0! #462500 1! #462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #462700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #463000 0! #463500 1! #463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #463700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #464000 0! #464500 1! #464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #464700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #465000 0! #465500 1! #465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #465700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #466000 0! #466500 1! #466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #466700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #467000 0! #467500 1! #467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #467700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #468000 0! #468500 1! #468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #468700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #469000 0! #469500 1! #469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #469700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #470000 0! #470500 1! #470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #470700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #471000 0! #471500 1! #471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #471700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #472000 0! #472500 1! #472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #472700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #473000 0! #473500 1! #473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #473700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #474000 0! #474500 1! #474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #474700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #475000 0! #475500 1! #475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #475700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #476000 0! #476500 1! #476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #476700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #477000 0! #477500 1! #477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #477700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #478000 0! #478500 1! #478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #478700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #479000 0! #479500 1! #479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #479700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #480000 0! #480500 1! #480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #480700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #481000 0! #481500 1! #481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #481700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #482000 0! #482500 1! #482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #482700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #483000 0! #483500 1! #483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #483700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #484000 0! #484500 1! #484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #484700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #485000 0! #485500 1! #485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #485700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #486000 0! #486500 1! #486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #486700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #487000 0! #487500 1! #487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #487700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #488000 0! #488500 1! #488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #488700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #489000 0! #489500 1! #489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #489700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #490000 0! #490500 1! #490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #490700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #491000 0! #491500 1! #491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #491700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #492000 0! #492500 1! #492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #492700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #493000 0! #493500 1! #493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #493700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #494000 0! #494500 1! #494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #494700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #495000 0! #495500 1! #495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #495700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #496000 0! #496500 1! #496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #496700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #497000 0! #497500 1! #497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #497700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #498000 0! #498500 1! #498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #498700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #499000 0! #499500 1! #499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #499700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #500000 0! #500500 1! #500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #500700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #501000 0! #501500 1! #501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #501700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #502000 0! #502500 1! #502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #502700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #503000 0! #503500 1! #503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #503700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #504000 0! #504500 1! #504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #504700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #505000 0! #505500 1! #505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #505700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #506000 0! #506500 1! #506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #506700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #507000 0! #507500 1! #507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #507700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #508000 0! #508500 1! #508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #508700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #509000 0! #509500 1! #509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #509700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #510000 0! #510500 1! #510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #510700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #511000 0! #511500 1! #511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #511700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #512000 0! #512500 1! #512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #512700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #513000 0! #513500 1! #513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #513700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #514000 0! #514500 1! #514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #514700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #515000 0! #515500 1! #515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #515700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #516000 0! #516500 1! #516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #516700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #517000 0! #517500 1! #517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #517700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #518000 0! #518500 1! #518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #518700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #519000 0! #519500 1! #519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #519700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #520000 0! #520500 1! #520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #520700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #521000 0! #521500 1! #521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #521700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #522000 0! #522500 1! #522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #522700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #523000 0! #523500 1! #523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #523700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #524000 0! #524500 1! #524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #524700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #525000 0! #525500 1! #525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #525700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #526000 0! #526500 1! #526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #526700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #527000 0! #527500 1! #527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #527700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #528000 0! #528500 1! #528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #528700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #529000 0! #529500 1! #529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #529700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #530000 0! #530500 1! #530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #530700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #531000 0! #531500 1! #531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #531700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #532000 0! #532500 1! #532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #532700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #533000 0! #533500 1! #533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #533700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #534000 0! #534500 1! #534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #534700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #535000 0! #535500 1! #535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #535700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #536000 0! #536500 1! #536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #536700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #537000 0! #537500 1! #537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #537700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #538000 0! #538500 1! #538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #538700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0i #539000 0! #539500 1! #539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #539700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #540000 0! #540500 1! #540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #540700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #541000 0! #541500 1! #541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #541700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #542000 0! #542500 1! #542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #542700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #543000 0! #543500 1! #543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #543700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #544000 0! #544500 1! #544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #544700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #545000 0! #545500 1! #545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #545700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #546000 0! #546500 1! #546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #546700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #547000 0! #547500 1! #547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #547700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #548000 0! #548500 1! #548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #548700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #549000 0! #549500 1! #549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #549700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #550000 0! #550500 1! #550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #550700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #551000 0! #551500 1! #551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #551700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #552000 0! #552500 1! #552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #552700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #553000 0! #553500 1! #553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #553700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #554000 0! #554500 1! #554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #554700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #555000 0! #555500 1! #555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #555700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #556000 0! #556500 1! #556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #556700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #557000 0! #557500 1! #557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #557700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #558000 0! #558500 1! #558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #558700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #559000 0! #559500 1! #559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #559700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #560000 0! #560500 1! #560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #560700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #561000 0! #561500 1! #561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #561700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #562000 0! #562500 1! #562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #562700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #563000 0! #563500 1! #563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #563700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #564000 0! #564500 1! #564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #564700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #565000 0! #565500 1! #565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #565700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #566000 0! #566500 1! #566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #566700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #567000 0! #567500 1! #567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #567700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #568000 0! #568500 1! #568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #568700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #569000 0! #569500 1! #569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #569700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #570000 0! #570500 1! #570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #570700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #571000 0! #571500 1! #571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #571700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #572000 0! #572500 1! #572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #572700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #573000 0! #573500 1! #573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #573700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #574000 0! #574500 1! #574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #574700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #575000 0! #575500 1! #575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #575700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #576000 0! #576500 1! #576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #576700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #577000 0! #577500 1! #577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #577700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #578000 0! #578500 1! #578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #578700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #579000 0! #579500 1! #579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #579700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #580000 0! #580500 1! #580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #580700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #581000 0! #581500 1! #581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #581700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #582000 0! #582500 1! #582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #582700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #583000 0! #583500 1! #583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #583700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #584000 0! #584500 1! #584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #584700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #585000 0! #585500 1! #585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #585700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #586000 0! #586500 1! #586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #586700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #587000 0! #587500 1! #587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #587700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #588000 0! #588500 1! #588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #588700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #589000 0! #589500 1! #589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #589700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #590000 0! #590500 1! #590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #590700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #591000 0! #591500 1! #591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #591700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #592000 0! #592500 1! #592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #592700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #593000 0! #593500 1! #593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #593700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #594000 0! #594500 1! #594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #594700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #595000 0! #595500 1! #595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #595700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #596000 0! #596500 1! #596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #596700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #597000 0! #597500 1! #597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #597700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #598000 0! #598500 1! #598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #598700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #599000 0! #599500 1! #599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #599700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #600000 0! #600500 1! #600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #600700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #601000 0! #601500 1! #601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #601700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #602000 0! #602500 1! #602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #602700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #603000 0! #603500 1! #603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #603700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #604000 0! #604500 1! #604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #604700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #605000 0! #605500 1! #605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #605700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #606000 0! #606500 1! #606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #606700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #607000 0! #607500 1! #607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #607700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #608000 0! #608500 1! #608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #608700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #609000 0! #609500 1! #609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #609700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #610000 0! #610500 1! #610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #610700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #611000 0! #611500 1! #611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #611700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #612000 0! #612500 1! #612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #612700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #613000 0! #613500 1! #613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #613700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #614000 0! #614500 1! #614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #614700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #615000 0! #615500 1! #615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #615700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #616000 0! #616500 1! #616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #616700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #617000 0! #617500 1! #617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #617700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #618000 0! #618500 1! #618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #618700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #619000 0! #619500 1! #619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #619700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #620000 0! #620500 1! #620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #620700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #621000 0! #621500 1! #621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #621700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #622000 0! #622500 1! #622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #622700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #623000 0! #623500 1! #623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #623700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #624000 0! #624500 1! #624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #624700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #625000 0! #625500 1! #625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #625700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #626000 0! #626500 1! #626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #626700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #627000 0! #627500 1! #627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #627700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #628000 0! #628500 1! #628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #628700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #629000 0! #629500 1! #629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #629700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #630000 0! #630500 1! #630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #630700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #631000 0! #631500 1! #631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #631700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #632000 0! #632500 1! #632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #632700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #633000 0! #633500 1! #633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #633700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #634000 0! #634500 1! #634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #634700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #635000 0! #635500 1! #635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #635700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #636000 0! #636500 1! #636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #636700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #637000 0! #637500 1! #637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #637700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #638000 0! #638500 1! #638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #638700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #639000 0! #639500 1! #639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #639700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #640000 0! #640500 1! #640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #640700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0_ 0f #641000 0! #641500 1! #641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #641700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #642000 0! #642500 1! #642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #642700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #643000 0! #643500 1! #643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #643700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #644000 0! #644500 1! #644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #644700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #645000 0! #645500 1! #645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #645700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #646000 0! #646500 1! #646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #646700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #647000 0! #647500 1! #647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #647700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #648000 0! #648500 1! #648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #648700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #649000 0! #649500 1! #649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #649700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #650000 0! #650500 1! #650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #650700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #651000 0! #651500 1! #651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #651700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #652000 0! #652500 1! #652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #652700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #653000 0! #653500 1! #653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #653700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #654000 0! #654500 1! #654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #654700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #655000 0! #655500 1! #655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #655700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #656000 0! #656500 1! #656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #656700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #657000 0! #657500 1! #657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #657700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #658000 0! #658500 1! #658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #658700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #659000 0! #659500 1! #659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #659700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #660000 0! #660500 1! #660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #660700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #661000 0! #661500 1! #661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #661700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #662000 0! #662500 1! #662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #662700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #663000 0! #663500 1! #663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #663700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #664000 0! #664500 1! #664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #664700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #665000 0! #665500 1! #665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #665700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #666000 0! #666500 1! #666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #666700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #667000 0! #667500 1! #667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #667700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #668000 0! #668500 1! #668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #668700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #669000 0! #669500 1! #669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #669700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #670000 0! #670500 1! #670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #670700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #671000 0! #671500 1! #671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #671700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #672000 0! #672500 1! #672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #672700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #673000 0! #673500 1! #673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #673700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #674000 0! #674500 1! #674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #674700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #675000 0! #675500 1! #675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #675700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #676000 0! #676500 1! #676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #676700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #677000 0! #677500 1! #677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #677700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #678000 0! #678500 1! #678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #678700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #679000 0! #679500 1! #679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #679700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #680000 0! #680500 1! #680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #680700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #681000 0! #681500 1! #681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #681700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #682000 0! #682500 1! #682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #682700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #683000 0! #683500 1! #683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #683700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #684000 0! #684500 1! #684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #684700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #685000 0! #685500 1! #685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #685700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #686000 0! #686500 1! #686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #686700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #687000 0! #687500 1! #687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #687700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #688000 0! #688500 1! #688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #688700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #689000 0! #689500 1! #689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #689700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #690000 0! #690500 1! #690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #690700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #691000 0! #691500 1! #691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #691700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0` b110 g bx110 c #692000 0! #692500 1! #692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #692700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #693000 0! #693500 1! #693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #693700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #694000 0! #694500 1! #694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #694700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #695000 0! #695500 1! #695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #695700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #696000 0! #696500 1! #696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #696700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #697000 0! #697500 1! #697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #697700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #698000 0! #698500 1! #698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #698700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #699000 0! #699500 1! #699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #699700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #700000 0! #700500 1! #700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #700700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #701000 0! #701500 1! #701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #701700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #702000 0! #702500 1! #702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #702700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #703000 0! #703500 1! #703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #703700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #704000 0! #704500 1! #704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #704700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #705000 0! #705500 1! #705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #705700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #706000 0! #706500 1! #706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #706700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #707000 0! #707500 1! #707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #707700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #708000 0! #708500 1! #708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #708700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #709000 0! #709500 1! #709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #709700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #710000 0! #710500 1! #710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #710700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #711000 0! #711500 1! #711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #711700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #712000 0! #712500 1! #712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #712700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #713000 0! #713500 1! #713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #713700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #714000 0! #714500 1! #714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #714700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #715000 0! #715500 1! #715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #715700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #716000 0! #716500 1! #716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #716700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #717000 0! #717500 1! #717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #717700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #718000 0! #718500 1! #718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #718700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #719000 0! #719500 1! #719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #719700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #720000 0! #720500 1! #720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #720700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #721000 0! #721500 1! #721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #721700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #722000 0! #722500 1! #722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #722700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #723000 0! #723500 1! #723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #723700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #724000 0! #724500 1! #724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #724700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #725000 0! #725500 1! #725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #725700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #726000 0! #726500 1! #726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #726700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #727000 0! #727500 1! #727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #727700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #728000 0! #728500 1! #728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #728700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #729000 0! #729500 1! #729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #729700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #730000 0! #730500 1! #730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #730700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #731000 0! #731500 1! #731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #731700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #732000 0! #732500 1! #732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #732700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #733000 0! #733500 1! #733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #733700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #734000 0! #734500 1! #734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #734700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #735000 0! #735500 1! #735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #735700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #736000 0! #736500 1! #736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #736700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #737000 0! #737500 1! #737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #737700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #738000 0! #738500 1! #738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #738700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #739000 0! #739500 1! #739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #739700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #740000 0! #740500 1! #740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #740700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #741000 0! #741500 1! #741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #741700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #742000 0! #742500 1! #742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #742700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #743000 0! #743500 1! #743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #743700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #744000 0! #744500 1! #744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #744700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #745000 0! #745500 1! #745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #745700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #746000 0! #746500 1! #746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #746700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #747000 0! #747500 1! #747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #747700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #748000 0! #748500 1! #748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #748700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #749000 0! #749500 1! #749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #749700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #750000 0! #750500 1! #750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #750700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #751000 0! #751500 1! #751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #751700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #752000 0! #752500 1! #752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #752700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #753000 0! #753500 1! #753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #753700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #754000 0! #754500 1! #754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #754700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #755000 0! #755500 1! #755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #755700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #756000 0! #756500 1! #756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #756700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #757000 0! #757500 1! #757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #757700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #758000 0! #758500 1! #758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #758700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #759000 0! #759500 1! #759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #759700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #760000 0! #760500 1! #760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #760700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #761000 0! #761500 1! #761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #761700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #762000 0! #762500 1! #762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #762700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #763000 0! #763500 1! #763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #763700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #764000 0! #764500 1! #764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #764700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #765000 0! #765500 1! #765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #765700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #766000 0! #766500 1! #766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #766700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #767000 0! #767500 1! #767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #767700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #768000 0! #768500 1! #768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #768700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #769000 0! #769500 1! #769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #769700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #770000 0! #770500 1! #770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #770700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #771000 0! #771500 1! #771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #771700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #772000 0! #772500 1! #772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #772700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #773000 0! #773500 1! #773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #773700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #774000 0! #774500 1! #774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #774700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #775000 0! #775500 1! #775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #775700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #776000 0! #776500 1! #776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #776700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #777000 0! #777500 1! #777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #777700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #778000 0! #778500 1! #778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #778700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #779000 0! #779500 1! #779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #779700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #780000 0! #780500 1! #780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #780700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #781000 0! #781500 1! #781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #781700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #782000 0! #782500 1! #782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #782700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #783000 0! #783500 1! #783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #783700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #784000 0! #784500 1! #784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #784700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #785000 0! #785500 1! #785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #785700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #786000 0! #786500 1! #786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #786700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #787000 0! #787500 1! #787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #787700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #788000 0! #788500 1! #788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #788700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #789000 0! #789500 1! #789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #789700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #790000 0! #790500 1! #790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #790700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #791000 0! #791500 1! #791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #791700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #792000 0! #792500 1! #792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #792700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #793000 0! #793500 1! #793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #793700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #794000 0! #794500 1! #794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #794700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #795000 0! #795500 1! #795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #795700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #796000 0! #796500 1! #796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #796700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #797000 0! #797500 1! #797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #797700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #798000 0! #798500 1! #798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #798700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #799000 0! #799500 1! #799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #799700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #800000 0! #800500 1! #800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #800700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #801000 0! #801500 1! #801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #801700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #802000 0! #802500 1! #802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #802700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #803000 0! #803500 1! #803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #803700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #804000 0! #804500 1! #804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #804700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #805000 0! #805500 1! #805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #805700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #806000 0! #806500 1! #806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #806700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #807000 0! #807500 1! #807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #807700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #808000 0! #808500 1! #808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #808700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #809000 0! #809500 1! #809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #809700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #810000 0! #810500 1! #810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #810700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #811000 0! #811500 1! #811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #811700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #812000 0! #812500 1! #812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #812700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #813000 0! #813500 1! #813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #813700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #814000 0! #814500 1! #814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #814700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #815000 0! #815500 1! #815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #815700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #816000 0! #816500 1! #816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #816700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #817000 0! #817500 1! #817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #817700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #818000 0! #818500 1! #818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #818700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #819000 0! #819500 1! #819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #819700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #820000 0! #820500 1! #820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #820700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #821000 0! #821500 1! #821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #821700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #822000 0! #822500 1! #822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #822700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #823000 0! #823500 1! #823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #823700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #824000 0! #824500 1! #824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #824700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #825000 0! #825500 1! #825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #825700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #826000 0! #826500 1! #826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #826700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #827000 0! #827500 1! #827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #827700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #828000 0! #828500 1! #828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #828700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #829000 0! #829500 1! #829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #829700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #830000 0! #830500 1! #830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #830700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #831000 0! #831500 1! #831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #831700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #832000 0! #832500 1! #832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #832700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #833000 0! #833500 1! #833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #833700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #834000 0! #834500 1! #834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #834700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #835000 0! #835500 1! #835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #835700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #836000 0! #836500 1! #836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #836700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #837000 0! #837500 1! #837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #837700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #838000 0! #838500 1! #838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #838700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #839000 0! #839500 1! #839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #839700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #840000 0! #840500 1! #840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #840700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #841000 0! #841500 1! #841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #841700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #842000 0! #842500 1! #842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #842700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #843000 0! #843500 1! #843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #843700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #844000 0! #844500 1! #844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #844700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #845000 0! #845500 1! #845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #845700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #846000 0! #846500 1! #846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #846700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #847000 0! #847500 1! #847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #847700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #848000 0! #848500 1! #848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #848700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #849000 0! #849500 1! #849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #849700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #850000 0! #850500 1! #850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #850700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #851000 0! #851500 1! #851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #851700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #852000 0! #852500 1! #852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #852700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #853000 0! #853500 1! #853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #853700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #854000 0! #854500 1! #854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #854700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #855000 0! #855500 1! #855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #855700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #856000 0! #856500 1! #856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #856700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #857000 0! #857500 1! #857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #857700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #858000 0! #858500 1! #858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #858700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #859000 0! #859500 1! #859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #859700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #860000 0! #860500 1! #860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #860700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #861000 0! #861500 1! #861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #861700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #862000 0! #862500 1! #862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #862700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #863000 0! #863500 1! #863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #863700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #864000 0! #864500 1! #864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #864700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #865000 0! #865500 1! #865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #865700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #866000 0! #866500 1! #866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #866700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #867000 0! #867500 1! #867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #867700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #868000 0! #868500 1! #868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #868700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #869000 0! #869500 1! #869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #869700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #870000 0! #870500 1! #870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #870700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #871000 0! #871500 1! #871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #871700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #872000 0! #872500 1! #872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #872700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #873000 0! #873500 1! #873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #873700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #874000 0! #874500 1! #874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #874700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #875000 0! #875500 1! #875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #875700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #876000 0! #876500 1! #876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #876700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #877000 0! #877500 1! #877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #877700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #878000 0! #878500 1! #878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #878700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #879000 0! #879500 1! #879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #879700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #880000 0! #880500 1! #880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #880700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #881000 0! #881500 1! #881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #881700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #882000 0! #882500 1! #882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #882700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #883000 0! #883500 1! #883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #883700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #884000 0! #884500 1! #884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #884700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #885000 0! #885500 1! #885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #885700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #886000 0! #886500 1! #886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #886700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #887000 0! #887500 1! #887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #887700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #888000 0! #888500 1! #888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #888700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #889000 0! #889500 1! #889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #889700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #890000 0! #890500 1! #890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #890700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #891000 0! #891500 1! #891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #891700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #892000 0! #892500 1! #892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #892700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #893000 0! #893500 1! #893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #893700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #894000 0! #894500 1! #894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #894700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #895000 0! #895500 1! #895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #895700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #896000 0! #896500 1! #896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #896700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #897000 0! #897500 1! #897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #897700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #898000 0! #898500 1! #898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #898700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #899000 0! #899500 1! #899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #899700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #900000 0! #900500 1! #900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #900700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #901000 0! #901500 1! #901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #901700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #902000 0! #902500 1! #902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #902700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #903000 0! #903500 1! #903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #903700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #904000 0! #904500 1! #904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #904700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #905000 0! #905500 1! #905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #905700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #906000 0! #906500 1! #906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #906700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #907000 0! #907500 1! #907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #907700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #908000 0! #908500 1! #908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #908700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #909000 0! #909500 1! #909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #909700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #910000 0! #910500 1! #910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #910700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #911000 0! #911500 1! #911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #911700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #912000 0! #912500 1! #912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #912700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #913000 0! #913500 1! #913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #913700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #914000 0! #914500 1! #914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #914700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #915000 0! #915500 1! #915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #915700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #916000 0! #916500 1! #916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #916700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #917000 0! #917500 1! #917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #917700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #918000 0! #918500 1! #918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #918700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #919000 0! #919500 1! #919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #919700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #920000 0! #920500 1! #920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #920700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #921000 0! #921500 1! #921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #921700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #922000 0! #922500 1! #922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #922700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #923000 0! #923500 1! #923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #923700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #924000 0! #924500 1! #924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #924700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #925000 0! #925500 1! #925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #925700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #926000 0! #926500 1! #926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #926700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #927000 0! #927500 1! #927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #927700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #928000 0! #928500 1! #928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #928700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #929000 0! #929500 1! #929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #929700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #930000 0! #930500 1! #930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #930700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #931000 0! #931500 1! #931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #931700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #932000 0! #932500 1! #932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #932700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #933000 0! #933500 1! #933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #933700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #934000 0! #934500 1! #934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #934700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #935000 0! #935500 1! #935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #935700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #936000 0! #936500 1! #936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #936700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #937000 0! #937500 1! #937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #937700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #938000 0! #938500 1! #938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #938700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #939000 0! #939500 1! #939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #939700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #940000 0! #940500 1! #940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #940700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #941000 0! #941500 1! #941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #941700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #942000 0! #942500 1! #942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #942700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #943000 0! #943500 1! #943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #943700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #944000 0! #944500 1! #944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #944700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #945000 0! #945500 1! #945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #945700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #946000 0! #946500 1! #946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #946700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b101 g bx1101 c #947000 0! #947500 1! #947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #947700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #948000 0! #948500 1! #948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #948700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #949000 0! #949500 1! #949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #949700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #950000 0! #950500 1! #950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #950700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #951000 0! #951500 1! #951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #951700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #952000 0! #952500 1! #952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #952700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #953000 0! #953500 1! #953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #953700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #954000 0! #954500 1! #954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #954700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #955000 0! #955500 1! #955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #955700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #956000 0! #956500 1! #956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #956700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #957000 0! #957500 1! #957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #957700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #958000 0! #958500 1! #958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #958700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #959000 0! #959500 1! #959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #959700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #960000 0! #960500 1! #960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #960700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #961000 0! #961500 1! #961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #961700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #962000 0! #962500 1! #962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #962700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #963000 0! #963500 1! #963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #963700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #964000 0! #964500 1! #964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #964700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #965000 0! #965500 1! #965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #965700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #966000 0! #966500 1! #966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #966700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #967000 0! #967500 1! #967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #967700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #968000 0! #968500 1! #968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #968700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #969000 0! #969500 1! #969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #969700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #970000 0! #970500 1! #970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #970700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #971000 0! #971500 1! #971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #971700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #972000 0! #972500 1! #972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #972700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #973000 0! #973500 1! #973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #973700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #974000 0! #974500 1! #974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #974700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #975000 0! #975500 1! #975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #975700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #976000 0! #976500 1! #976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #976700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #977000 0! #977500 1! #977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #977700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #978000 0! #978500 1! #978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #978700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #979000 0! #979500 1! #979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #979700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #980000 0! #980500 1! #980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #980700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #981000 0! #981500 1! #981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #981700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #982000 0! #982500 1! #982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #982700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #983000 0! #983500 1! #983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #983700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #984000 0! #984500 1! #984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #984700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #985000 0! #985500 1! #985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #985700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #986000 0! #986500 1! #986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #986700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #987000 0! #987500 1! #987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #987700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #988000 0! #988500 1! #988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #988700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #989000 0! #989500 1! #989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #989700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #990000 0! #990500 1! #990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #990700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #991000 0! #991500 1! #991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #991700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #992000 0! #992500 1! #992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #992700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #993000 0! #993500 1! #993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #993700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #994000 0! #994500 1! #994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #994700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #995000 0! #995500 1! #995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #995700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #996000 0! #996500 1! #996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #996700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #997000 0! #997500 1! #997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #997700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #998000 0! #998500 1! #998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #998700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #999000 0! #999500 1! #999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #999700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1000000 0! #1000500 1! #1000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1000700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1001000 0! #1001500 1! #1001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1001700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1002000 0! #1002500 1! #1002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1002700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1003000 0! #1003500 1! #1003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1003700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1004000 0! #1004500 1! #1004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1004700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1005000 0! #1005500 1! #1005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1005700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1006000 0! #1006500 1! #1006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1006700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1007000 0! #1007500 1! #1007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1007700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1008000 0! #1008500 1! #1008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1008700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1009000 0! #1009500 1! #1009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1009700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1010000 0! #1010500 1! #1010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1010700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1011000 0! #1011500 1! #1011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1011700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1012000 0! #1012500 1! #1012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1012700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1013000 0! #1013500 1! #1013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1013700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1014000 0! #1014500 1! #1014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1014700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1015000 0! #1015500 1! #1015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1015700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1016000 0! #1016500 1! #1016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1016700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1017000 0! #1017500 1! #1017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1017700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1018000 0! #1018500 1! #1018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1018700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1019000 0! #1019500 1! #1019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1019700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1020000 0! #1020500 1! #1020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1020700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1021000 0! #1021500 1! #1021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1021700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1022000 0! #1022500 1! #1022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1022700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1023000 0! #1023500 1! #1023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1023700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1024000 0! #1024500 1! #1024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1024700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1025000 0! #1025500 1! #1025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1025700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1026000 0! #1026500 1! #1026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1026700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1027000 0! #1027500 1! #1027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1027700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1028000 0! #1028500 1! #1028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1028700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1029000 0! #1029500 1! #1029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1029700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1030000 0! #1030500 1! #1030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1030700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1031000 0! #1031500 1! #1031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1031700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1032000 0! #1032500 1! #1032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1032700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1033000 0! #1033500 1! #1033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1033700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1034000 0! #1034500 1! #1034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1034700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1035000 0! #1035500 1! #1035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1035700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1036000 0! #1036500 1! #1036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1036700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1037000 0! #1037500 1! #1037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1037700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1038000 0! #1038500 1! #1038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1038700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1039000 0! #1039500 1! #1039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1039700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1040000 0! #1040500 1! #1040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1040700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1041000 0! #1041500 1! #1041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1041700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1042000 0! #1042500 1! #1042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1042700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1043000 0! #1043500 1! #1043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1043700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1044000 0! #1044500 1! #1044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1044700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1045000 0! #1045500 1! #1045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1045700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1046000 0! #1046500 1! #1046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1046700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1047000 0! #1047500 1! #1047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1047700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1048000 0! #1048500 1! #1048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #1048700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1049000 0! #1049500 1! #1049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1049700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1050000 0! #1050500 1! #1050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1050700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1051000 0! #1051500 1! #1051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1051700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1052000 0! #1052500 1! #1052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1052700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1053000 0! #1053500 1! #1053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1053700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1054000 0! #1054500 1! #1054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1054700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1055000 0! #1055500 1! #1055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1055700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1056000 0! #1056500 1! #1056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1056700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1057000 0! #1057500 1! #1057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1057700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1058000 0! #1058500 1! #1058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1058700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1059000 0! #1059500 1! #1059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1059700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1060000 0! #1060500 1! #1060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1060700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1061000 0! #1061500 1! #1061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1061700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1062000 0! #1062500 1! #1062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1062700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1063000 0! #1063500 1! #1063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1063700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1064000 0! #1064500 1! #1064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1064700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1065000 0! #1065500 1! #1065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1065700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1066000 0! #1066500 1! #1066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1066700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1067000 0! #1067500 1! #1067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1067700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1068000 0! #1068500 1! #1068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1068700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1069000 0! #1069500 1! #1069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1069700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1070000 0! #1070500 1! #1070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1070700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1071000 0! #1071500 1! #1071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1071700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1072000 0! #1072500 1! #1072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1072700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1073000 0! #1073500 1! #1073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1073700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1074000 0! #1074500 1! #1074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1074700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1075000 0! #1075500 1! #1075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1075700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1076000 0! #1076500 1! #1076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1076700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1077000 0! #1077500 1! #1077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1077700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1078000 0! #1078500 1! #1078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1078700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1079000 0! #1079500 1! #1079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1079700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1080000 0! #1080500 1! #1080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1080700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1081000 0! #1081500 1! #1081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1081700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1082000 0! #1082500 1! #1082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1082700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1083000 0! #1083500 1! #1083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1083700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1084000 0! #1084500 1! #1084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1084700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1085000 0! #1085500 1! #1085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1085700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1086000 0! #1086500 1! #1086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1086700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1087000 0! #1087500 1! #1087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1087700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1088000 0! #1088500 1! #1088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1088700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1089000 0! #1089500 1! #1089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1089700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1090000 0! #1090500 1! #1090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1090700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1091000 0! #1091500 1! #1091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1091700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1092000 0! #1092500 1! #1092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1092700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1093000 0! #1093500 1! #1093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1093700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1094000 0! #1094500 1! #1094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1094700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1095000 0! #1095500 1! #1095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1095700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1096000 0! #1096500 1! #1096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1096700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1097000 0! #1097500 1! #1097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1097700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1098000 0! #1098500 1! #1098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1098700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1099000 0! #1099500 1! #1099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1099700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1100000 0! #1100500 1! #1100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1100700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1101000 0! #1101500 1! #1101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1101700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1102000 0! #1102500 1! #1102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1102700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1103000 0! #1103500 1! #1103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1103700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1104000 0! #1104500 1! #1104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1104700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1105000 0! #1105500 1! #1105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1105700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1106000 0! #1106500 1! #1106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1106700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1107000 0! #1107500 1! #1107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1107700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1108000 0! #1108500 1! #1108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1108700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1109000 0! #1109500 1! #1109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1109700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1110000 0! #1110500 1! #1110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1110700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1111000 0! #1111500 1! #1111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1111700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1112000 0! #1112500 1! #1112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1112700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1113000 0! #1113500 1! #1113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1113700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1114000 0! #1114500 1! #1114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1114700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1115000 0! #1115500 1! #1115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1115700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1116000 0! #1116500 1! #1116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1116700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1117000 0! #1117500 1! #1117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1117700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1118000 0! #1118500 1! #1118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1118700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1119000 0! #1119500 1! #1119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1119700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1120000 0! #1120500 1! #1120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1120700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1121000 0! #1121500 1! #1121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1121700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1122000 0! #1122500 1! #1122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1122700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1123000 0! #1123500 1! #1123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1123700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1124000 0! #1124500 1! #1124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1124700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1125000 0! #1125500 1! #1125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1125700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1126000 0! #1126500 1! #1126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1126700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1127000 0! #1127500 1! #1127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1127700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1128000 0! #1128500 1! #1128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1128700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1129000 0! #1129500 1! #1129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1129700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1130000 0! #1130500 1! #1130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1130700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1131000 0! #1131500 1! #1131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1131700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1132000 0! #1132500 1! #1132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1132700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1133000 0! #1133500 1! #1133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1133700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1134000 0! #1134500 1! #1134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1134700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1135000 0! #1135500 1! #1135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1135700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1136000 0! #1136500 1! #1136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1136700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1137000 0! #1137500 1! #1137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1137700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1138000 0! #1138500 1! #1138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1138700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1139000 0! #1139500 1! #1139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1139700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1140000 0! #1140500 1! #1140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1140700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1141000 0! #1141500 1! #1141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1141700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1142000 0! #1142500 1! #1142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1142700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1143000 0! #1143500 1! #1143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1143700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1144000 0! #1144500 1! #1144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1144700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1145000 0! #1145500 1! #1145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1145700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1146000 0! #1146500 1! #1146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1146700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1147000 0! #1147500 1! #1147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1147700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1148000 0! #1148500 1! #1148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1148700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1149000 0! #1149500 1! #1149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1149700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1150000 0! #1150500 1! #1150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #1150700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1151000 0! #1151500 1! #1151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1151700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1152000 0! #1152500 1! #1152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1152700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1153000 0! #1153500 1! #1153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1153700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1154000 0! #1154500 1! #1154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1154700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1155000 0! #1155500 1! #1155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1155700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1156000 0! #1156500 1! #1156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1156700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1157000 0! #1157500 1! #1157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1157700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1158000 0! #1158500 1! #1158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1158700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1159000 0! #1159500 1! #1159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1159700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1160000 0! #1160500 1! #1160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1160700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1161000 0! #1161500 1! #1161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1161700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1162000 0! #1162500 1! #1162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1162700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1163000 0! #1163500 1! #1163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1163700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1164000 0! #1164500 1! #1164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1164700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1165000 0! #1165500 1! #1165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1165700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1166000 0! #1166500 1! #1166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1166700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1167000 0! #1167500 1! #1167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1167700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1168000 0! #1168500 1! #1168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1168700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1169000 0! #1169500 1! #1169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1169700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1170000 0! #1170500 1! #1170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1170700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1171000 0! #1171500 1! #1171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1171700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1172000 0! #1172500 1! #1172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1172700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1173000 0! #1173500 1! #1173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1173700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1174000 0! #1174500 1! #1174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1174700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1175000 0! #1175500 1! #1175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1175700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1176000 0! #1176500 1! #1176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1176700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1177000 0! #1177500 1! #1177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1177700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1178000 0! #1178500 1! #1178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1178700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1179000 0! #1179500 1! #1179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1179700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1180000 0! #1180500 1! #1180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1180700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1181000 0! #1181500 1! #1181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1181700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1182000 0! #1182500 1! #1182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1182700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1183000 0! #1183500 1! #1183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1183700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1184000 0! #1184500 1! #1184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1184700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1185000 0! #1185500 1! #1185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1185700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1186000 0! #1186500 1! #1186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1186700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1187000 0! #1187500 1! #1187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1187700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1188000 0! #1188500 1! #1188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1188700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1189000 0! #1189500 1! #1189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1189700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1190000 0! #1190500 1! #1190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1190700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1191000 0! #1191500 1! #1191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1191700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1192000 0! #1192500 1! #1192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1192700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1193000 0! #1193500 1! #1193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1193700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1194000 0! #1194500 1! #1194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1194700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1195000 0! #1195500 1! #1195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1195700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1196000 0! #1196500 1! #1196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1196700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1197000 0! #1197500 1! #1197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1197700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1198000 0! #1198500 1! #1198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1198700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1199000 0! #1199500 1! #1199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1199700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1200000 0! #1200500 1! #1200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1200700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1201000 0! #1201500 1! #1201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #1201700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b100 g bx11010 c #1202000 0! #1202500 1! #1202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1202700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1203000 0! #1203500 1! #1203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1203700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1204000 0! #1204500 1! #1204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1204700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1205000 0! #1205500 1! #1205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1205700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1206000 0! #1206500 1! #1206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1206700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1207000 0! #1207500 1! #1207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1207700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1208000 0! #1208500 1! #1208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1208700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1209000 0! #1209500 1! #1209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1209700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1210000 0! #1210500 1! #1210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1210700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1211000 0! #1211500 1! #1211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1211700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1212000 0! #1212500 1! #1212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1212700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1213000 0! #1213500 1! #1213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1213700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1214000 0! #1214500 1! #1214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1214700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1215000 0! #1215500 1! #1215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1215700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1216000 0! #1216500 1! #1216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1216700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1217000 0! #1217500 1! #1217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1217700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1218000 0! #1218500 1! #1218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1218700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1219000 0! #1219500 1! #1219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1219700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1220000 0! #1220500 1! #1220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1220700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1221000 0! #1221500 1! #1221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1221700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1222000 0! #1222500 1! #1222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1222700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1223000 0! #1223500 1! #1223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1223700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1224000 0! #1224500 1! #1224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1224700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1225000 0! #1225500 1! #1225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1225700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1226000 0! #1226500 1! #1226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1226700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1227000 0! #1227500 1! #1227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1227700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1228000 0! #1228500 1! #1228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1228700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1229000 0! #1229500 1! #1229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1229700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1230000 0! #1230500 1! #1230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1230700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1231000 0! #1231500 1! #1231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1231700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1232000 0! #1232500 1! #1232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1232700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1233000 0! #1233500 1! #1233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1233700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1234000 0! #1234500 1! #1234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1234700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1235000 0! #1235500 1! #1235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1235700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1236000 0! #1236500 1! #1236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1236700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1237000 0! #1237500 1! #1237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1237700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1238000 0! #1238500 1! #1238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1238700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1239000 0! #1239500 1! #1239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1239700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1240000 0! #1240500 1! #1240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1240700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1241000 0! #1241500 1! #1241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1241700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1242000 0! #1242500 1! #1242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1242700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1243000 0! #1243500 1! #1243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1243700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1244000 0! #1244500 1! #1244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1244700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1245000 0! #1245500 1! #1245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1245700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1246000 0! #1246500 1! #1246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1246700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1247000 0! #1247500 1! #1247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1247700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1248000 0! #1248500 1! #1248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1248700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1249000 0! #1249500 1! #1249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1249700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1250000 0! #1250500 1! #1250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1250700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1251000 0! #1251500 1! #1251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1251700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1252000 0! #1252500 1! #1252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1252700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1253000 0! #1253500 1! #1253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1253700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1254000 0! #1254500 1! #1254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1254700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1255000 0! #1255500 1! #1255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1255700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1256000 0! #1256500 1! #1256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1256700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1257000 0! #1257500 1! #1257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1257700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1258000 0! #1258500 1! #1258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1258700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1259000 0! #1259500 1! #1259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1259700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1260000 0! #1260500 1! #1260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1260700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1261000 0! #1261500 1! #1261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1261700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1262000 0! #1262500 1! #1262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1262700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1263000 0! #1263500 1! #1263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1263700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1264000 0! #1264500 1! #1264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1264700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1265000 0! #1265500 1! #1265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1265700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1266000 0! #1266500 1! #1266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1266700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1267000 0! #1267500 1! #1267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1267700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1268000 0! #1268500 1! #1268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1268700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1269000 0! #1269500 1! #1269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1269700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1270000 0! #1270500 1! #1270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1270700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1271000 0! #1271500 1! #1271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1271700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1272000 0! #1272500 1! #1272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1272700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1273000 0! #1273500 1! #1273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1273700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1274000 0! #1274500 1! #1274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1274700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1275000 0! #1275500 1! #1275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1275700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1276000 0! #1276500 1! #1276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1276700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1277000 0! #1277500 1! #1277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1277700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1278000 0! #1278500 1! #1278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1278700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1279000 0! #1279500 1! #1279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1279700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1280000 0! #1280500 1! #1280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1280700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1281000 0! #1281500 1! #1281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1281700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1282000 0! #1282500 1! #1282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1282700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1283000 0! #1283500 1! #1283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1283700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1284000 0! #1284500 1! #1284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1284700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1285000 0! #1285500 1! #1285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1285700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1286000 0! #1286500 1! #1286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1286700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1287000 0! #1287500 1! #1287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1287700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1288000 0! #1288500 1! #1288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1288700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1289000 0! #1289500 1! #1289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1289700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1290000 0! #1290500 1! #1290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1290700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1291000 0! #1291500 1! #1291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1291700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1292000 0! #1292500 1! #1292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1292700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1293000 0! #1293500 1! #1293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1293700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1294000 0! #1294500 1! #1294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1294700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1295000 0! #1295500 1! #1295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1295700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1296000 0! #1296500 1! #1296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1296700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1297000 0! #1297500 1! #1297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1297700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1298000 0! #1298500 1! #1298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1298700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1299000 0! #1299500 1! #1299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1299700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1300000 0! #1300500 1! #1300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1300700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1301000 0! #1301500 1! #1301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1301700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1302000 0! #1302500 1! #1302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1302700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1303000 0! #1303500 1! #1303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #1303700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1304000 0! #1304500 1! #1304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1304700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1305000 0! #1305500 1! #1305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1305700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1306000 0! #1306500 1! #1306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1306700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1307000 0! #1307500 1! #1307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1307700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1308000 0! #1308500 1! #1308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1308700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1309000 0! #1309500 1! #1309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1309700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1310000 0! #1310500 1! #1310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1310700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1311000 0! #1311500 1! #1311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1311700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1312000 0! #1312500 1! #1312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1312700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1313000 0! #1313500 1! #1313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1313700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1314000 0! #1314500 1! #1314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1314700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1315000 0! #1315500 1! #1315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1315700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1316000 0! #1316500 1! #1316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1316700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1317000 0! #1317500 1! #1317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1317700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1318000 0! #1318500 1! #1318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1318700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1319000 0! #1319500 1! #1319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1319700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1320000 0! #1320500 1! #1320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1320700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1321000 0! #1321500 1! #1321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1321700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1322000 0! #1322500 1! #1322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1322700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1323000 0! #1323500 1! #1323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1323700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1324000 0! #1324500 1! #1324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1324700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1325000 0! #1325500 1! #1325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1325700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1326000 0! #1326500 1! #1326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1326700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1327000 0! #1327500 1! #1327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1327700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1328000 0! #1328500 1! #1328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1328700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1329000 0! #1329500 1! #1329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1329700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1330000 0! #1330500 1! #1330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1330700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1331000 0! #1331500 1! #1331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1331700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1332000 0! #1332500 1! #1332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1332700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1333000 0! #1333500 1! #1333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1333700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1334000 0! #1334500 1! #1334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1334700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1335000 0! #1335500 1! #1335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1335700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1336000 0! #1336500 1! #1336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1336700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1337000 0! #1337500 1! #1337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1337700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1338000 0! #1338500 1! #1338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1338700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1339000 0! #1339500 1! #1339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1339700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1340000 0! #1340500 1! #1340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1340700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1341000 0! #1341500 1! #1341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1341700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1342000 0! #1342500 1! #1342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1342700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1343000 0! #1343500 1! #1343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1343700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1344000 0! #1344500 1! #1344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1344700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1345000 0! #1345500 1! #1345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1345700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1346000 0! #1346500 1! #1346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1346700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1347000 0! #1347500 1! #1347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1347700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1348000 0! #1348500 1! #1348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1348700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1349000 0! #1349500 1! #1349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1349700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1350000 0! #1350500 1! #1350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1350700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1351000 0! #1351500 1! #1351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1351700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1352000 0! #1352500 1! #1352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1352700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1353000 0! #1353500 1! #1353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1353700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1354000 0! #1354500 1! #1354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1354700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1355000 0! #1355500 1! #1355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1355700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1356000 0! #1356500 1! #1356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1356700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1357000 0! #1357500 1! #1357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1357700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1358000 0! #1358500 1! #1358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1358700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1359000 0! #1359500 1! #1359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1359700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1360000 0! #1360500 1! #1360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1360700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1361000 0! #1361500 1! #1361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1361700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1362000 0! #1362500 1! #1362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1362700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1363000 0! #1363500 1! #1363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1363700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1364000 0! #1364500 1! #1364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1364700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1365000 0! #1365500 1! #1365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1365700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1366000 0! #1366500 1! #1366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1366700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1367000 0! #1367500 1! #1367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1367700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1368000 0! #1368500 1! #1368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1368700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1369000 0! #1369500 1! #1369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1369700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1370000 0! #1370500 1! #1370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1370700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1371000 0! #1371500 1! #1371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1371700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1372000 0! #1372500 1! #1372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1372700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1373000 0! #1373500 1! #1373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1373700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1374000 0! #1374500 1! #1374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1374700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1375000 0! #1375500 1! #1375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1375700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1376000 0! #1376500 1! #1376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1376700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1377000 0! #1377500 1! #1377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1377700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1378000 0! #1378500 1! #1378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1378700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1379000 0! #1379500 1! #1379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1379700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1380000 0! #1380500 1! #1380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1380700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1381000 0! #1381500 1! #1381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1381700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1382000 0! #1382500 1! #1382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1382700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1383000 0! #1383500 1! #1383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1383700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1384000 0! #1384500 1! #1384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1384700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1385000 0! #1385500 1! #1385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1385700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1386000 0! #1386500 1! #1386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1386700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1387000 0! #1387500 1! #1387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1387700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1388000 0! #1388500 1! #1388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1388700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1389000 0! #1389500 1! #1389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1389700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1390000 0! #1390500 1! #1390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1390700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1391000 0! #1391500 1! #1391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1391700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1392000 0! #1392500 1! #1392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1392700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1393000 0! #1393500 1! #1393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1393700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1394000 0! #1394500 1! #1394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1394700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1395000 0! #1395500 1! #1395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1395700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1396000 0! #1396500 1! #1396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1396700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1397000 0! #1397500 1! #1397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1397700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1398000 0! #1398500 1! #1398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1398700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1399000 0! #1399500 1! #1399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1399700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1400000 0! #1400500 1! #1400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1400700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1401000 0! #1401500 1! #1401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1401700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1402000 0! #1402500 1! #1402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1402700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1403000 0! #1403500 1! #1403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1403700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1404000 0! #1404500 1! #1404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1404700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1405000 0! #1405500 1! #1405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1405700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1406000 0! #1406500 1! #1406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1406700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1407000 0! #1407500 1! #1407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1407700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1408000 0! #1408500 1! #1408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1408700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1409000 0! #1409500 1! #1409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1409700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1410000 0! #1410500 1! #1410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1410700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1411000 0! #1411500 1! #1411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1411700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1412000 0! #1412500 1! #1412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1412700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1413000 0! #1413500 1! #1413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1413700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1414000 0! #1414500 1! #1414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1414700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1415000 0! #1415500 1! #1415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1415700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1416000 0! #1416500 1! #1416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1416700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1417000 0! #1417500 1! #1417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1417700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1418000 0! #1418500 1! #1418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1418700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1419000 0! #1419500 1! #1419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1419700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1420000 0! #1420500 1! #1420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1420700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1421000 0! #1421500 1! #1421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1421700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1422000 0! #1422500 1! #1422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1422700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1423000 0! #1423500 1! #1423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1423700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1424000 0! #1424500 1! #1424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1424700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1425000 0! #1425500 1! #1425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1425700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1426000 0! #1426500 1! #1426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1426700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1427000 0! #1427500 1! #1427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1427700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1428000 0! #1428500 1! #1428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1428700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1429000 0! #1429500 1! #1429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1429700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1430000 0! #1430500 1! #1430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1430700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1431000 0! #1431500 1! #1431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1431700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1432000 0! #1432500 1! #1432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1432700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1433000 0! #1433500 1! #1433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1433700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1434000 0! #1434500 1! #1434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1434700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1435000 0! #1435500 1! #1435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1435700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1436000 0! #1436500 1! #1436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1436700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1437000 0! #1437500 1! #1437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1437700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1438000 0! #1438500 1! #1438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1438700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1439000 0! #1439500 1! #1439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1439700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1440000 0! #1440500 1! #1440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1440700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1441000 0! #1441500 1! #1441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1441700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1442000 0! #1442500 1! #1442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1442700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1443000 0! #1443500 1! #1443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1443700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1444000 0! #1444500 1! #1444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1444700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1445000 0! #1445500 1! #1445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1445700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1446000 0! #1446500 1! #1446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1446700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1447000 0! #1447500 1! #1447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1447700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1448000 0! #1448500 1! #1448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1448700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1449000 0! #1449500 1! #1449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1449700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1450000 0! #1450500 1! #1450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1450700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1451000 0! #1451500 1! #1451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1451700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1452000 0! #1452500 1! #1452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1452700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1453000 0! #1453500 1! #1453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1453700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1454000 0! #1454500 1! #1454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1454700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1455000 0! #1455500 1! #1455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1455700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1456000 0! #1456500 1! #1456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #1456700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11 g bx110100 c #1457000 0! #1457500 1! #1457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1457700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1458000 0! #1458500 1! #1458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1458700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1459000 0! #1459500 1! #1459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1459700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1460000 0! #1460500 1! #1460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1460700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1461000 0! #1461500 1! #1461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1461700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1462000 0! #1462500 1! #1462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1462700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1463000 0! #1463500 1! #1463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1463700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1464000 0! #1464500 1! #1464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1464700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1465000 0! #1465500 1! #1465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1465700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1466000 0! #1466500 1! #1466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1466700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1467000 0! #1467500 1! #1467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1467700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1468000 0! #1468500 1! #1468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1468700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1469000 0! #1469500 1! #1469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1469700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1470000 0! #1470500 1! #1470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1470700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1471000 0! #1471500 1! #1471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1471700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1472000 0! #1472500 1! #1472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1472700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1473000 0! #1473500 1! #1473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1473700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1474000 0! #1474500 1! #1474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1474700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1475000 0! #1475500 1! #1475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1475700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1476000 0! #1476500 1! #1476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1476700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1477000 0! #1477500 1! #1477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1477700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1478000 0! #1478500 1! #1478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1478700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1479000 0! #1479500 1! #1479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1479700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1480000 0! #1480500 1! #1480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1480700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1481000 0! #1481500 1! #1481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1481700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1482000 0! #1482500 1! #1482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1482700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1483000 0! #1483500 1! #1483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1483700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1484000 0! #1484500 1! #1484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1484700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1485000 0! #1485500 1! #1485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1485700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1486000 0! #1486500 1! #1486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1486700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1487000 0! #1487500 1! #1487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1487700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1488000 0! #1488500 1! #1488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1488700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1489000 0! #1489500 1! #1489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1489700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1490000 0! #1490500 1! #1490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1490700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1491000 0! #1491500 1! #1491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1491700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1492000 0! #1492500 1! #1492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1492700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1493000 0! #1493500 1! #1493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1493700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1494000 0! #1494500 1! #1494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1494700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1495000 0! #1495500 1! #1495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1495700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1496000 0! #1496500 1! #1496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1496700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1497000 0! #1497500 1! #1497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1497700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1498000 0! #1498500 1! #1498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1498700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1499000 0! #1499500 1! #1499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1499700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1500000 0! #1500500 1! #1500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1500700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1501000 0! #1501500 1! #1501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1501700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1502000 0! #1502500 1! #1502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1502700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1503000 0! #1503500 1! #1503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1503700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1504000 0! #1504500 1! #1504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1504700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1505000 0! #1505500 1! #1505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1505700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1506000 0! #1506500 1! #1506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1506700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1507000 0! #1507500 1! #1507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1507700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1508000 0! #1508500 1! #1508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1508700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1509000 0! #1509500 1! #1509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1509700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1510000 0! #1510500 1! #1510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1510700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1511000 0! #1511500 1! #1511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1511700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1512000 0! #1512500 1! #1512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1512700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1513000 0! #1513500 1! #1513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1513700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1514000 0! #1514500 1! #1514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1514700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1515000 0! #1515500 1! #1515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1515700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1516000 0! #1516500 1! #1516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1516700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1517000 0! #1517500 1! #1517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1517700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1518000 0! #1518500 1! #1518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1518700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1519000 0! #1519500 1! #1519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1519700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1520000 0! #1520500 1! #1520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1520700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1521000 0! #1521500 1! #1521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1521700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1522000 0! #1522500 1! #1522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1522700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1523000 0! #1523500 1! #1523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1523700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1524000 0! #1524500 1! #1524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1524700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1525000 0! #1525500 1! #1525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1525700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1526000 0! #1526500 1! #1526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1526700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1527000 0! #1527500 1! #1527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1527700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1528000 0! #1528500 1! #1528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1528700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1529000 0! #1529500 1! #1529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1529700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1530000 0! #1530500 1! #1530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1530700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1531000 0! #1531500 1! #1531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1531700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1532000 0! #1532500 1! #1532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1532700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1533000 0! #1533500 1! #1533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1533700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1534000 0! #1534500 1! #1534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1534700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1535000 0! #1535500 1! #1535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1535700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1536000 0! #1536500 1! #1536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1536700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1537000 0! #1537500 1! #1537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1537700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1538000 0! #1538500 1! #1538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1538700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1539000 0! #1539500 1! #1539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1539700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1540000 0! #1540500 1! #1540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1540700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1541000 0! #1541500 1! #1541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1541700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1542000 0! #1542500 1! #1542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1542700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1543000 0! #1543500 1! #1543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1543700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1544000 0! #1544500 1! #1544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1544700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1545000 0! #1545500 1! #1545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1545700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1546000 0! #1546500 1! #1546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1546700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1547000 0! #1547500 1! #1547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1547700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1548000 0! #1548500 1! #1548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1548700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1549000 0! #1549500 1! #1549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1549700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1550000 0! #1550500 1! #1550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1550700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1551000 0! #1551500 1! #1551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1551700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1552000 0! #1552500 1! #1552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1552700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1553000 0! #1553500 1! #1553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1553700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1554000 0! #1554500 1! #1554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1554700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1555000 0! #1555500 1! #1555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1555700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1556000 0! #1556500 1! #1556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1556700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1557000 0! #1557500 1! #1557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1557700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1558000 0! #1558500 1! #1558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #1558700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1559000 0! #1559500 1! #1559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1559700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1560000 0! #1560500 1! #1560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1560700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1561000 0! #1561500 1! #1561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1561700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1562000 0! #1562500 1! #1562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1562700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1563000 0! #1563500 1! #1563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1563700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1564000 0! #1564500 1! #1564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1564700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1565000 0! #1565500 1! #1565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1565700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1566000 0! #1566500 1! #1566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1566700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1567000 0! #1567500 1! #1567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1567700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1568000 0! #1568500 1! #1568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1568700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1569000 0! #1569500 1! #1569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1569700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1570000 0! #1570500 1! #1570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1570700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1571000 0! #1571500 1! #1571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1571700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1572000 0! #1572500 1! #1572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1572700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1573000 0! #1573500 1! #1573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1573700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1574000 0! #1574500 1! #1574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1574700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1575000 0! #1575500 1! #1575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1575700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1576000 0! #1576500 1! #1576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1576700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1577000 0! #1577500 1! #1577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1577700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1578000 0! #1578500 1! #1578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1578700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1579000 0! #1579500 1! #1579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1579700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1580000 0! #1580500 1! #1580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1580700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1581000 0! #1581500 1! #1581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1581700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1582000 0! #1582500 1! #1582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1582700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1583000 0! #1583500 1! #1583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1583700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1584000 0! #1584500 1! #1584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1584700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1585000 0! #1585500 1! #1585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1585700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1586000 0! #1586500 1! #1586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1586700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1587000 0! #1587500 1! #1587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1587700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1588000 0! #1588500 1! #1588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1588700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1589000 0! #1589500 1! #1589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1589700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1590000 0! #1590500 1! #1590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1590700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1591000 0! #1591500 1! #1591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1591700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1592000 0! #1592500 1! #1592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1592700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1593000 0! #1593500 1! #1593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1593700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1594000 0! #1594500 1! #1594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1594700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1595000 0! #1595500 1! #1595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1595700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1596000 0! #1596500 1! #1596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1596700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1597000 0! #1597500 1! #1597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1597700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1598000 0! #1598500 1! #1598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1598700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1599000 0! #1599500 1! #1599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1599700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1600000 0! #1600500 1! #1600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1600700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1601000 0! #1601500 1! #1601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1601700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1602000 0! #1602500 1! #1602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1602700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1603000 0! #1603500 1! #1603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1603700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1604000 0! #1604500 1! #1604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1604700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1605000 0! #1605500 1! #1605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1605700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1606000 0! #1606500 1! #1606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1606700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1607000 0! #1607500 1! #1607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1607700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1608000 0! #1608500 1! #1608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1608700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1609000 0! #1609500 1! #1609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1609700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1610000 0! #1610500 1! #1610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1610700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1611000 0! #1611500 1! #1611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1611700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1612000 0! #1612500 1! #1612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1612700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1613000 0! #1613500 1! #1613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1613700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1614000 0! #1614500 1! #1614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1614700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1615000 0! #1615500 1! #1615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1615700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1616000 0! #1616500 1! #1616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1616700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1617000 0! #1617500 1! #1617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1617700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1618000 0! #1618500 1! #1618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1618700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1619000 0! #1619500 1! #1619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1619700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1620000 0! #1620500 1! #1620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1620700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1621000 0! #1621500 1! #1621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1621700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1622000 0! #1622500 1! #1622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1622700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1623000 0! #1623500 1! #1623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1623700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1624000 0! #1624500 1! #1624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1624700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1625000 0! #1625500 1! #1625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1625700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1626000 0! #1626500 1! #1626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1626700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1627000 0! #1627500 1! #1627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1627700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1628000 0! #1628500 1! #1628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1628700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1629000 0! #1629500 1! #1629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1629700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1630000 0! #1630500 1! #1630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1630700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1631000 0! #1631500 1! #1631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1631700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1632000 0! #1632500 1! #1632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1632700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1633000 0! #1633500 1! #1633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1633700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1634000 0! #1634500 1! #1634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1634700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1635000 0! #1635500 1! #1635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1635700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1636000 0! #1636500 1! #1636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1636700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1637000 0! #1637500 1! #1637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1637700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1638000 0! #1638500 1! #1638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1638700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1639000 0! #1639500 1! #1639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1639700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1640000 0! #1640500 1! #1640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1640700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1641000 0! #1641500 1! #1641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1641700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1642000 0! #1642500 1! #1642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1642700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1643000 0! #1643500 1! #1643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1643700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1644000 0! #1644500 1! #1644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1644700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1645000 0! #1645500 1! #1645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1645700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1646000 0! #1646500 1! #1646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1646700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1647000 0! #1647500 1! #1647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1647700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1648000 0! #1648500 1! #1648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1648700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1649000 0! #1649500 1! #1649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1649700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1650000 0! #1650500 1! #1650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1650700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1651000 0! #1651500 1! #1651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1651700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1652000 0! #1652500 1! #1652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1652700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1653000 0! #1653500 1! #1653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1653700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1654000 0! #1654500 1! #1654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1654700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1655000 0! #1655500 1! #1655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1655700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1656000 0! #1656500 1! #1656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1656700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1657000 0! #1657500 1! #1657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1657700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1658000 0! #1658500 1! #1658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1658700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1659000 0! #1659500 1! #1659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1659700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1660000 0! #1660500 1! #1660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1660700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1661000 0! #1661500 1! #1661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1661700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1662000 0! #1662500 1! #1662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1662700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1663000 0! #1663500 1! #1663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1663700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1664000 0! #1664500 1! #1664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1664700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1665000 0! #1665500 1! #1665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1665700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1666000 0! #1666500 1! #1666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1666700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1667000 0! #1667500 1! #1667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1667700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1668000 0! #1668500 1! #1668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1668700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1669000 0! #1669500 1! #1669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1669700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1670000 0! #1670500 1! #1670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1670700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1671000 0! #1671500 1! #1671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1671700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1672000 0! #1672500 1! #1672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1672700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1673000 0! #1673500 1! #1673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1673700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1674000 0! #1674500 1! #1674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1674700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1675000 0! #1675500 1! #1675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1675700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1676000 0! #1676500 1! #1676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1676700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1677000 0! #1677500 1! #1677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1677700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1678000 0! #1678500 1! #1678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1678700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1679000 0! #1679500 1! #1679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1679700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1680000 0! #1680500 1! #1680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1680700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1681000 0! #1681500 1! #1681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1681700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1682000 0! #1682500 1! #1682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1682700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1683000 0! #1683500 1! #1683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1683700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1684000 0! #1684500 1! #1684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1684700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1685000 0! #1685500 1! #1685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1685700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1686000 0! #1686500 1! #1686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1686700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1687000 0! #1687500 1! #1687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1687700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1688000 0! #1688500 1! #1688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1688700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1689000 0! #1689500 1! #1689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1689700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1690000 0! #1690500 1! #1690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1690700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1691000 0! #1691500 1! #1691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1691700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1692000 0! #1692500 1! #1692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1692700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1693000 0! #1693500 1! #1693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1693700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1694000 0! #1694500 1! #1694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1694700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1695000 0! #1695500 1! #1695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1695700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1696000 0! #1696500 1! #1696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1696700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1697000 0! #1697500 1! #1697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1697700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1698000 0! #1698500 1! #1698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1698700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1699000 0! #1699500 1! #1699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1699700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1700000 0! #1700500 1! #1700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1700700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1701000 0! #1701500 1! #1701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1701700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1702000 0! #1702500 1! #1702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1702700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1703000 0! #1703500 1! #1703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1703700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1704000 0! #1704500 1! #1704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1704700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1705000 0! #1705500 1! #1705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1705700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1706000 0! #1706500 1! #1706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1706700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1707000 0! #1707500 1! #1707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1707700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1708000 0! #1708500 1! #1708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1708700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1709000 0! #1709500 1! #1709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1709700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1710000 0! #1710500 1! #1710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1710700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1711000 0! #1711500 1! #1711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #1711700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b10 g bx1101000 c #1712000 0! #1712500 1! #1712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1712700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1713000 0! #1713500 1! #1713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1713700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1714000 0! #1714500 1! #1714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1714700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1715000 0! #1715500 1! #1715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1715700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1716000 0! #1716500 1! #1716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1716700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1717000 0! #1717500 1! #1717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1717700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1718000 0! #1718500 1! #1718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1718700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1719000 0! #1719500 1! #1719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1719700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1720000 0! #1720500 1! #1720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1720700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1721000 0! #1721500 1! #1721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1721700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1722000 0! #1722500 1! #1722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1722700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1723000 0! #1723500 1! #1723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1723700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1724000 0! #1724500 1! #1724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1724700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1725000 0! #1725500 1! #1725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1725700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1726000 0! #1726500 1! #1726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1726700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1727000 0! #1727500 1! #1727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1727700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1728000 0! #1728500 1! #1728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1728700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1729000 0! #1729500 1! #1729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1729700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1730000 0! #1730500 1! #1730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1730700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1731000 0! #1731500 1! #1731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1731700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1732000 0! #1732500 1! #1732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1732700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1733000 0! #1733500 1! #1733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1733700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1734000 0! #1734500 1! #1734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1734700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1735000 0! #1735500 1! #1735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1735700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1736000 0! #1736500 1! #1736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1736700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1737000 0! #1737500 1! #1737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1737700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1738000 0! #1738500 1! #1738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1738700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1739000 0! #1739500 1! #1739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1739700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1740000 0! #1740500 1! #1740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1740700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1741000 0! #1741500 1! #1741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1741700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1742000 0! #1742500 1! #1742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1742700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1743000 0! #1743500 1! #1743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1743700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1744000 0! #1744500 1! #1744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1744700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1745000 0! #1745500 1! #1745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1745700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1746000 0! #1746500 1! #1746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1746700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1747000 0! #1747500 1! #1747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1747700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1748000 0! #1748500 1! #1748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1748700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1749000 0! #1749500 1! #1749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1749700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1750000 0! #1750500 1! #1750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1750700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1751000 0! #1751500 1! #1751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1751700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1752000 0! #1752500 1! #1752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1752700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1753000 0! #1753500 1! #1753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1753700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1754000 0! #1754500 1! #1754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1754700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1755000 0! #1755500 1! #1755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1755700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1756000 0! #1756500 1! #1756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1756700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1757000 0! #1757500 1! #1757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1757700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1758000 0! #1758500 1! #1758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1758700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1759000 0! #1759500 1! #1759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1759700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1760000 0! #1760500 1! #1760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1760700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1761000 0! #1761500 1! #1761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1761700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1762000 0! #1762500 1! #1762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1762700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1763000 0! #1763500 1! #1763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1763700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1764000 0! #1764500 1! #1764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1764700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1765000 0! #1765500 1! #1765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1765700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1766000 0! #1766500 1! #1766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1766700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1767000 0! #1767500 1! #1767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1767700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1768000 0! #1768500 1! #1768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1768700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1769000 0! #1769500 1! #1769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1769700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1770000 0! #1770500 1! #1770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1770700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1771000 0! #1771500 1! #1771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1771700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1772000 0! #1772500 1! #1772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1772700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1773000 0! #1773500 1! #1773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1773700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1774000 0! #1774500 1! #1774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1774700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1775000 0! #1775500 1! #1775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1775700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1776000 0! #1776500 1! #1776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1776700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1777000 0! #1777500 1! #1777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1777700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1778000 0! #1778500 1! #1778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1778700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1779000 0! #1779500 1! #1779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1779700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1780000 0! #1780500 1! #1780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1780700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1781000 0! #1781500 1! #1781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1781700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1782000 0! #1782500 1! #1782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1782700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1783000 0! #1783500 1! #1783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1783700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1784000 0! #1784500 1! #1784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1784700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1785000 0! #1785500 1! #1785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1785700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1786000 0! #1786500 1! #1786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1786700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1787000 0! #1787500 1! #1787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1787700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1788000 0! #1788500 1! #1788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1788700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1789000 0! #1789500 1! #1789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1789700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1790000 0! #1790500 1! #1790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1790700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1791000 0! #1791500 1! #1791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1791700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1792000 0! #1792500 1! #1792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1792700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1793000 0! #1793500 1! #1793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1793700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1794000 0! #1794500 1! #1794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1794700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1795000 0! #1795500 1! #1795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1795700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1796000 0! #1796500 1! #1796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1796700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1797000 0! #1797500 1! #1797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1797700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1798000 0! #1798500 1! #1798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1798700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1799000 0! #1799500 1! #1799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1799700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1800000 0! #1800500 1! #1800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1800700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1801000 0! #1801500 1! #1801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1801700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1802000 0! #1802500 1! #1802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1802700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1803000 0! #1803500 1! #1803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1803700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1804000 0! #1804500 1! #1804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1804700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1805000 0! #1805500 1! #1805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1805700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1806000 0! #1806500 1! #1806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1806700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1807000 0! #1807500 1! #1807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1807700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1808000 0! #1808500 1! #1808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1808700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1809000 0! #1809500 1! #1809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1809700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1810000 0! #1810500 1! #1810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1810700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1811000 0! #1811500 1! #1811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1811700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1812000 0! #1812500 1! #1812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1812700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1813000 0! #1813500 1! #1813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #1813700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1814000 0! #1814500 1! #1814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1814700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1815000 0! #1815500 1! #1815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1815700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1816000 0! #1816500 1! #1816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1816700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1817000 0! #1817500 1! #1817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1817700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1818000 0! #1818500 1! #1818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1818700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1819000 0! #1819500 1! #1819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1819700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1820000 0! #1820500 1! #1820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1820700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1821000 0! #1821500 1! #1821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1821700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1822000 0! #1822500 1! #1822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1822700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1823000 0! #1823500 1! #1823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1823700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1824000 0! #1824500 1! #1824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1824700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1825000 0! #1825500 1! #1825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1825700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1826000 0! #1826500 1! #1826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1826700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1827000 0! #1827500 1! #1827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1827700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1828000 0! #1828500 1! #1828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1828700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1829000 0! #1829500 1! #1829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1829700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1830000 0! #1830500 1! #1830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1830700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1831000 0! #1831500 1! #1831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1831700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1832000 0! #1832500 1! #1832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1832700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1833000 0! #1833500 1! #1833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1833700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1834000 0! #1834500 1! #1834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1834700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1835000 0! #1835500 1! #1835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1835700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1836000 0! #1836500 1! #1836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1836700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1837000 0! #1837500 1! #1837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1837700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1838000 0! #1838500 1! #1838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1838700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1839000 0! #1839500 1! #1839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1839700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1840000 0! #1840500 1! #1840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1840700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1841000 0! #1841500 1! #1841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1841700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1842000 0! #1842500 1! #1842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1842700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1843000 0! #1843500 1! #1843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1843700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1844000 0! #1844500 1! #1844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1844700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1845000 0! #1845500 1! #1845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1845700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1846000 0! #1846500 1! #1846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1846700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1847000 0! #1847500 1! #1847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1847700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1848000 0! #1848500 1! #1848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1848700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1849000 0! #1849500 1! #1849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1849700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1850000 0! #1850500 1! #1850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1850700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1851000 0! #1851500 1! #1851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1851700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1852000 0! #1852500 1! #1852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1852700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1853000 0! #1853500 1! #1853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1853700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1854000 0! #1854500 1! #1854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1854700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1855000 0! #1855500 1! #1855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1855700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1856000 0! #1856500 1! #1856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1856700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1857000 0! #1857500 1! #1857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1857700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1858000 0! #1858500 1! #1858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1858700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1859000 0! #1859500 1! #1859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1859700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1860000 0! #1860500 1! #1860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1860700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1861000 0! #1861500 1! #1861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1861700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1862000 0! #1862500 1! #1862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1862700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1863000 0! #1863500 1! #1863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1863700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1864000 0! #1864500 1! #1864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1864700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1865000 0! #1865500 1! #1865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1865700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1866000 0! #1866500 1! #1866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1866700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1867000 0! #1867500 1! #1867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1867700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1868000 0! #1868500 1! #1868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1868700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1869000 0! #1869500 1! #1869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1869700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1870000 0! #1870500 1! #1870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1870700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1871000 0! #1871500 1! #1871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1871700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1872000 0! #1872500 1! #1872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1872700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1873000 0! #1873500 1! #1873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1873700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1874000 0! #1874500 1! #1874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1874700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1875000 0! #1875500 1! #1875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1875700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1876000 0! #1876500 1! #1876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1876700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1877000 0! #1877500 1! #1877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1877700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1878000 0! #1878500 1! #1878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1878700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1879000 0! #1879500 1! #1879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1879700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1880000 0! #1880500 1! #1880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1880700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1881000 0! #1881500 1! #1881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1881700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1882000 0! #1882500 1! #1882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1882700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1883000 0! #1883500 1! #1883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1883700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1884000 0! #1884500 1! #1884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1884700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1885000 0! #1885500 1! #1885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1885700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1886000 0! #1886500 1! #1886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1886700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1887000 0! #1887500 1! #1887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1887700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1888000 0! #1888500 1! #1888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1888700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1889000 0! #1889500 1! #1889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1889700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1890000 0! #1890500 1! #1890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1890700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1891000 0! #1891500 1! #1891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1891700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1892000 0! #1892500 1! #1892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1892700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1893000 0! #1893500 1! #1893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1893700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1894000 0! #1894500 1! #1894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1894700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1895000 0! #1895500 1! #1895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1895700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1896000 0! #1896500 1! #1896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1896700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1897000 0! #1897500 1! #1897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1897700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1898000 0! #1898500 1! #1898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1898700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1899000 0! #1899500 1! #1899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1899700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1900000 0! #1900500 1! #1900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1900700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1901000 0! #1901500 1! #1901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1901700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1902000 0! #1902500 1! #1902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1902700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1903000 0! #1903500 1! #1903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1903700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1904000 0! #1904500 1! #1904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1904700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1905000 0! #1905500 1! #1905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1905700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1906000 0! #1906500 1! #1906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1906700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1907000 0! #1907500 1! #1907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1907700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1908000 0! #1908500 1! #1908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1908700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1909000 0! #1909500 1! #1909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1909700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1910000 0! #1910500 1! #1910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1910700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1911000 0! #1911500 1! #1911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1911700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1912000 0! #1912500 1! #1912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1912700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1913000 0! #1913500 1! #1913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1913700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1914000 0! #1914500 1! #1914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1914700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1915000 0! #1915500 1! #1915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1915700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1916000 0! #1916500 1! #1916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1916700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1917000 0! #1917500 1! #1917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1917700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1918000 0! #1918500 1! #1918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1918700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1919000 0! #1919500 1! #1919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1919700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1920000 0! #1920500 1! #1920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1920700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1921000 0! #1921500 1! #1921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1921700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1922000 0! #1922500 1! #1922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1922700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1923000 0! #1923500 1! #1923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1923700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1924000 0! #1924500 1! #1924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1924700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1925000 0! #1925500 1! #1925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1925700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1926000 0! #1926500 1! #1926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1926700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1927000 0! #1927500 1! #1927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1927700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1928000 0! #1928500 1! #1928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1928700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1929000 0! #1929500 1! #1929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1929700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1930000 0! #1930500 1! #1930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1930700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1931000 0! #1931500 1! #1931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1931700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1932000 0! #1932500 1! #1932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1932700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1933000 0! #1933500 1! #1933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1933700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1934000 0! #1934500 1! #1934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1934700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1935000 0! #1935500 1! #1935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1935700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1936000 0! #1936500 1! #1936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1936700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1937000 0! #1937500 1! #1937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1937700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1938000 0! #1938500 1! #1938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1938700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1939000 0! #1939500 1! #1939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1939700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1940000 0! #1940500 1! #1940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1940700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1941000 0! #1941500 1! #1941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1941700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1942000 0! #1942500 1! #1942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1942700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1943000 0! #1943500 1! #1943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1943700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1944000 0! #1944500 1! #1944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1944700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1945000 0! #1945500 1! #1945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1945700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1946000 0! #1946500 1! #1946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1946700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1947000 0! #1947500 1! #1947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1947700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1948000 0! #1948500 1! #1948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1948700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1949000 0! #1949500 1! #1949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1949700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1950000 0! #1950500 1! #1950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1950700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1951000 0! #1951500 1! #1951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1951700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1952000 0! #1952500 1! #1952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1952700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1953000 0! #1953500 1! #1953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1953700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1954000 0! #1954500 1! #1954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1954700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1955000 0! #1955500 1! #1955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1955700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1956000 0! #1956500 1! #1956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1956700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1957000 0! #1957500 1! #1957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1957700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1958000 0! #1958500 1! #1958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1958700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1959000 0! #1959500 1! #1959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1959700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1960000 0! #1960500 1! #1960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1960700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1961000 0! #1961500 1! #1961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1961700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1962000 0! #1962500 1! #1962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1962700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1963000 0! #1963500 1! #1963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1963700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1964000 0! #1964500 1! #1964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1964700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1965000 0! #1965500 1! #1965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1965700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1966000 0! #1966500 1! #1966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #1966700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1 g b11010000 c #1967000 0! #1967500 1! #1967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1967700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1968000 0! #1968500 1! #1968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1968700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1969000 0! #1969500 1! #1969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1969700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1970000 0! #1970500 1! #1970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1970700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1971000 0! #1971500 1! #1971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1971700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1972000 0! #1972500 1! #1972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1972700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1973000 0! #1973500 1! #1973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1973700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1974000 0! #1974500 1! #1974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1974700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1975000 0! #1975500 1! #1975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1975700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1976000 0! #1976500 1! #1976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1976700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1977000 0! #1977500 1! #1977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1977700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1978000 0! #1978500 1! #1978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1978700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1979000 0! #1979500 1! #1979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1979700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1980000 0! #1980500 1! #1980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1980700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1981000 0! #1981500 1! #1981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1981700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1982000 0! #1982500 1! #1982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1982700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1983000 0! #1983500 1! #1983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1983700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1984000 0! #1984500 1! #1984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1984700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1985000 0! #1985500 1! #1985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1985700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1986000 0! #1986500 1! #1986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1986700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1987000 0! #1987500 1! #1987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1987700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1988000 0! #1988500 1! #1988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1988700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1989000 0! #1989500 1! #1989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1989700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1990000 0! #1990500 1! #1990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1990700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1991000 0! #1991500 1! #1991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1991700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1992000 0! #1992500 1! #1992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1992700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1993000 0! #1993500 1! #1993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1993700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1994000 0! #1994500 1! #1994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1994700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1995000 0! #1995500 1! #1995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1995700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1996000 0! #1996500 1! #1996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1996700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1997000 0! #1997500 1! #1997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1997700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1998000 0! #1998500 1! #1998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1998700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #1999000 0! #1999500 1! #1999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #1999700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2000000 0! #2000500 1! #2000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2000700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2001000 0! #2001500 1! #2001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2001700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2002000 0! #2002500 1! #2002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2002700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2003000 0! #2003500 1! #2003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2003700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2004000 0! #2004500 1! #2004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2004700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2005000 0! #2005500 1! #2005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2005700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2006000 0! #2006500 1! #2006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2006700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2007000 0! #2007500 1! #2007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2007700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2008000 0! #2008500 1! #2008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2008700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2009000 0! #2009500 1! #2009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2009700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2010000 0! #2010500 1! #2010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2010700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2011000 0! #2011500 1! #2011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2011700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2012000 0! #2012500 1! #2012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2012700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2013000 0! #2013500 1! #2013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2013700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2014000 0! #2014500 1! #2014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2014700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2015000 0! #2015500 1! #2015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2015700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2016000 0! #2016500 1! #2016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2016700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2017000 0! #2017500 1! #2017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2017700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2018000 0! #2018500 1! #2018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2018700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2019000 0! #2019500 1! #2019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2019700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2020000 0! #2020500 1! #2020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2020700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2021000 0! #2021500 1! #2021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2021700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2022000 0! #2022500 1! #2022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2022700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2023000 0! #2023500 1! #2023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2023700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2024000 0! #2024500 1! #2024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2024700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2025000 0! #2025500 1! #2025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2025700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2026000 0! #2026500 1! #2026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2026700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2027000 0! #2027500 1! #2027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2027700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2028000 0! #2028500 1! #2028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2028700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2029000 0! #2029500 1! #2029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2029700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2030000 0! #2030500 1! #2030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2030700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2031000 0! #2031500 1! #2031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2031700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2032000 0! #2032500 1! #2032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2032700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2033000 0! #2033500 1! #2033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2033700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2034000 0! #2034500 1! #2034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2034700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2035000 0! #2035500 1! #2035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2035700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2036000 0! #2036500 1! #2036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2036700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2037000 0! #2037500 1! #2037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2037700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2038000 0! #2038500 1! #2038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2038700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2039000 0! #2039500 1! #2039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2039700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2040000 0! #2040500 1! #2040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2040700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2041000 0! #2041500 1! #2041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2041700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2042000 0! #2042500 1! #2042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2042700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2043000 0! #2043500 1! #2043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2043700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2044000 0! #2044500 1! #2044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2044700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2045000 0! #2045500 1! #2045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2045700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2046000 0! #2046500 1! #2046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2046700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2047000 0! #2047500 1! #2047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2047700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2048000 0! #2048500 1! #2048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2048700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2049000 0! #2049500 1! #2049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2049700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2050000 0! #2050500 1! #2050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2050700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2051000 0! #2051500 1! #2051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2051700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2052000 0! #2052500 1! #2052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2052700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2053000 0! #2053500 1! #2053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2053700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2054000 0! #2054500 1! #2054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2054700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2055000 0! #2055500 1! #2055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2055700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2056000 0! #2056500 1! #2056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2056700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2057000 0! #2057500 1! #2057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2057700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2058000 0! #2058500 1! #2058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2058700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2059000 0! #2059500 1! #2059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2059700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2060000 0! #2060500 1! #2060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2060700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2061000 0! #2061500 1! #2061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2061700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2062000 0! #2062500 1! #2062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2062700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2063000 0! #2063500 1! #2063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2063700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2064000 0! #2064500 1! #2064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2064700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2065000 0! #2065500 1! #2065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2065700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2066000 0! #2066500 1! #2066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2066700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2067000 0! #2067500 1! #2067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2067700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2068000 0! #2068500 1! #2068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #2068700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2069000 0! #2069500 1! #2069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2069700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2070000 0! #2070500 1! #2070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2070700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2071000 0! #2071500 1! #2071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2071700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2072000 0! #2072500 1! #2072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2072700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2073000 0! #2073500 1! #2073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2073700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2074000 0! #2074500 1! #2074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2074700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2075000 0! #2075500 1! #2075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2075700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2076000 0! #2076500 1! #2076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2076700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2077000 0! #2077500 1! #2077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2077700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2078000 0! #2078500 1! #2078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2078700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2079000 0! #2079500 1! #2079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2079700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2080000 0! #2080500 1! #2080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2080700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2081000 0! #2081500 1! #2081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2081700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2082000 0! #2082500 1! #2082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2082700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2083000 0! #2083500 1! #2083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2083700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2084000 0! #2084500 1! #2084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2084700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2085000 0! #2085500 1! #2085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2085700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2086000 0! #2086500 1! #2086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2086700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2087000 0! #2087500 1! #2087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2087700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2088000 0! #2088500 1! #2088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2088700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2089000 0! #2089500 1! #2089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2089700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2090000 0! #2090500 1! #2090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2090700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2091000 0! #2091500 1! #2091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2091700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2092000 0! #2092500 1! #2092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2092700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2093000 0! #2093500 1! #2093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2093700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2094000 0! #2094500 1! #2094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2094700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2095000 0! #2095500 1! #2095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2095700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2096000 0! #2096500 1! #2096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2096700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2097000 0! #2097500 1! #2097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2097700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2098000 0! #2098500 1! #2098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2098700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2099000 0! #2099500 1! #2099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2099700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2100000 0! #2100500 1! #2100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2100700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2101000 0! #2101500 1! #2101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2101700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2102000 0! #2102500 1! #2102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2102700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2103000 0! #2103500 1! #2103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2103700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2104000 0! #2104500 1! #2104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2104700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2105000 0! #2105500 1! #2105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2105700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2106000 0! #2106500 1! #2106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2106700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2107000 0! #2107500 1! #2107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2107700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2108000 0! #2108500 1! #2108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2108700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2109000 0! #2109500 1! #2109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2109700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2110000 0! #2110500 1! #2110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2110700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2111000 0! #2111500 1! #2111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2111700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2112000 0! #2112500 1! #2112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2112700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2113000 0! #2113500 1! #2113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2113700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2114000 0! #2114500 1! #2114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2114700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2115000 0! #2115500 1! #2115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2115700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2116000 0! #2116500 1! #2116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2116700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2117000 0! #2117500 1! #2117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2117700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2118000 0! #2118500 1! #2118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2118700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2119000 0! #2119500 1! #2119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2119700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2120000 0! #2120500 1! #2120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2120700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2121000 0! #2121500 1! #2121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2121700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2122000 0! #2122500 1! #2122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2122700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2123000 0! #2123500 1! #2123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2123700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2124000 0! #2124500 1! #2124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2124700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2125000 0! #2125500 1! #2125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2125700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2126000 0! #2126500 1! #2126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2126700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2127000 0! #2127500 1! #2127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2127700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2128000 0! #2128500 1! #2128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2128700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2129000 0! #2129500 1! #2129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2129700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2130000 0! #2130500 1! #2130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2130700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2131000 0! #2131500 1! #2131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2131700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2132000 0! #2132500 1! #2132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2132700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2133000 0! #2133500 1! #2133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2133700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2134000 0! #2134500 1! #2134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2134700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2135000 0! #2135500 1! #2135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2135700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2136000 0! #2136500 1! #2136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2136700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2137000 0! #2137500 1! #2137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2137700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2138000 0! #2138500 1! #2138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2138700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2139000 0! #2139500 1! #2139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2139700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2140000 0! #2140500 1! #2140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2140700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2141000 0! #2141500 1! #2141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2141700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2142000 0! #2142500 1! #2142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2142700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2143000 0! #2143500 1! #2143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2143700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2144000 0! #2144500 1! #2144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2144700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2145000 0! #2145500 1! #2145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2145700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2146000 0! #2146500 1! #2146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2146700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2147000 0! #2147500 1! #2147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2147700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2148000 0! #2148500 1! #2148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2148700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2149000 0! #2149500 1! #2149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2149700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2150000 0! #2150500 1! #2150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2150700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2151000 0! #2151500 1! #2151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2151700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2152000 0! #2152500 1! #2152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2152700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2153000 0! #2153500 1! #2153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2153700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2154000 0! #2154500 1! #2154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2154700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2155000 0! #2155500 1! #2155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2155700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2156000 0! #2156500 1! #2156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2156700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2157000 0! #2157500 1! #2157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2157700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2158000 0! #2158500 1! #2158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2158700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2159000 0! #2159500 1! #2159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2159700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2160000 0! #2160500 1! #2160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2160700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2161000 0! #2161500 1! #2161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2161700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2162000 0! #2162500 1! #2162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2162700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2163000 0! #2163500 1! #2163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2163700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2164000 0! #2164500 1! #2164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2164700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2165000 0! #2165500 1! #2165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2165700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2166000 0! #2166500 1! #2166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2166700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2167000 0! #2167500 1! #2167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2167700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2168000 0! #2168500 1! #2168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2168700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2169000 0! #2169500 1! #2169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2169700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2170000 0! #2170500 1! #2170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2170700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2171000 0! #2171500 1! #2171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2171700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2172000 0! #2172500 1! #2172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2172700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2173000 0! #2173500 1! #2173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2173700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2174000 0! #2174500 1! #2174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2174700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2175000 0! #2175500 1! #2175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2175700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2176000 0! #2176500 1! #2176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2176700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2177000 0! #2177500 1! #2177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2177700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2178000 0! #2178500 1! #2178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2178700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2179000 0! #2179500 1! #2179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2179700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2180000 0! #2180500 1! #2180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2180700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2181000 0! #2181500 1! #2181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2181700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2182000 0! #2182500 1! #2182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2182700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2183000 0! #2183500 1! #2183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2183700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2184000 0! #2184500 1! #2184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2184700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2185000 0! #2185500 1! #2185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2185700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2186000 0! #2186500 1! #2186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2186700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2187000 0! #2187500 1! #2187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2187700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2188000 0! #2188500 1! #2188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2188700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2189000 0! #2189500 1! #2189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2189700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2190000 0! #2190500 1! #2190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2190700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2191000 0! #2191500 1! #2191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2191700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2192000 0! #2192500 1! #2192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2192700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2193000 0! #2193500 1! #2193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2193700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2194000 0! #2194500 1! #2194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2194700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2195000 0! #2195500 1! #2195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2195700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2196000 0! #2196500 1! #2196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2196700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2197000 0! #2197500 1! #2197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2197700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2198000 0! #2198500 1! #2198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2198700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2199000 0! #2199500 1! #2199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2199700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2200000 0! #2200500 1! #2200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2200700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2201000 0! #2201500 1! #2201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2201700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2202000 0! #2202500 1! #2202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2202700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2203000 0! #2203500 1! #2203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2203700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2204000 0! #2204500 1! #2204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2204700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2205000 0! #2205500 1! #2205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2205700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2206000 0! #2206500 1! #2206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2206700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2207000 0! #2207500 1! #2207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2207700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2208000 0! #2208500 1! #2208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2208700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2209000 0! #2209500 1! #2209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2209700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2210000 0! #2210500 1! #2210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2210700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2211000 0! #2211500 1! #2211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2211700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2212000 0! #2212500 1! #2212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2212700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2213000 0! #2213500 1! #2213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2213700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2214000 0! #2214500 1! #2214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2214700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2215000 0! #2215500 1! #2215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2215700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2216000 0! #2216500 1! #2216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2216700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2217000 0! #2217500 1! #2217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2217700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2218000 0! #2218500 1! #2218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2218700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2219000 0! #2219500 1! #2219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2219700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2220000 0! #2220500 1! #2220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2220700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2221000 0! #2221500 1! #2221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #2221700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b0 g b10100000 c 1e 1h #2222000 0! #2222500 1! #2222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2222700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2223000 0! #2223500 1! #2223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2223700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2224000 0! #2224500 1! #2224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2224700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2225000 0! #2225500 1! #2225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2225700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2226000 0! #2226500 1! #2226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2226700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2227000 0! #2227500 1! #2227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2227700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2228000 0! #2228500 1! #2228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2228700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2229000 0! #2229500 1! #2229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2229700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2230000 0! #2230500 1! #2230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2230700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2231000 0! #2231500 1! #2231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2231700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2232000 0! #2232500 1! #2232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2232700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2233000 0! #2233500 1! #2233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2233700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2234000 0! #2234500 1! #2234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2234700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2235000 0! #2235500 1! #2235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2235700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2236000 0! #2236500 1! #2236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2236700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2237000 0! #2237500 1! #2237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2237700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2238000 0! #2238500 1! #2238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2238700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2239000 0! #2239500 1! #2239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2239700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2240000 0! #2240500 1! #2240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2240700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2241000 0! #2241500 1! #2241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2241700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2242000 0! #2242500 1! #2242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2242700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2243000 0! #2243500 1! #2243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2243700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2244000 0! #2244500 1! #2244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2244700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2245000 0! #2245500 1! #2245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2245700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2246000 0! #2246500 1! #2246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2246700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2247000 0! #2247500 1! #2247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2247700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2248000 0! #2248500 1! #2248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2248700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2249000 0! #2249500 1! #2249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2249700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2250000 0! #2250500 1! #2250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2250700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2251000 0! #2251500 1! #2251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2251700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2252000 0! #2252500 1! #2252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2252700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2253000 0! #2253500 1! #2253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2253700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2254000 0! #2254500 1! #2254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2254700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2255000 0! #2255500 1! #2255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2255700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2256000 0! #2256500 1! #2256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2256700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2257000 0! #2257500 1! #2257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2257700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2258000 0! #2258500 1! #2258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2258700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2259000 0! #2259500 1! #2259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2259700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2260000 0! #2260500 1! #2260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2260700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2261000 0! #2261500 1! #2261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2261700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2262000 0! #2262500 1! #2262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2262700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2263000 0! #2263500 1! #2263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2263700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2264000 0! #2264500 1! #2264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2264700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2265000 0! #2265500 1! #2265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2265700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2266000 0! #2266500 1! #2266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2266700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2267000 0! #2267500 1! #2267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2267700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2268000 0! #2268500 1! #2268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2268700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2269000 0! #2269500 1! #2269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2269700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2270000 0! #2270500 1! #2270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2270700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2271000 0! #2271500 1! #2271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2271700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2272000 0! #2272500 1! #2272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2272700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2273000 0! #2273500 1! #2273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2273700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2274000 0! #2274500 1! #2274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2274700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2275000 0! #2275500 1! #2275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2275700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2276000 0! #2276500 1! #2276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2276700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2277000 0! #2277500 1! #2277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2277700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2278000 0! #2278500 1! #2278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2278700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2279000 0! #2279500 1! #2279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2279700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2280000 0! #2280500 1! #2280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2280700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2281000 0! #2281500 1! #2281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2281700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2282000 0! #2282500 1! #2282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2282700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2283000 0! #2283500 1! #2283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2283700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2284000 0! #2284500 1! #2284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2284700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2285000 0! #2285500 1! #2285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2285700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2286000 0! #2286500 1! #2286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2286700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2287000 0! #2287500 1! #2287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2287700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2288000 0! #2288500 1! #2288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2288700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2289000 0! #2289500 1! #2289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2289700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2290000 0! #2290500 1! #2290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2290700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2291000 0! #2291500 1! #2291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2291700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2292000 0! #2292500 1! #2292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2292700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2293000 0! #2293500 1! #2293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2293700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2294000 0! #2294500 1! #2294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2294700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2295000 0! #2295500 1! #2295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2295700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2296000 0! #2296500 1! #2296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2296700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2297000 0! #2297500 1! #2297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2297700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2298000 0! #2298500 1! #2298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2298700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2299000 0! #2299500 1! #2299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2299700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2300000 0! #2300500 1! #2300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2300700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2301000 0! #2301500 1! #2301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2301700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2302000 0! #2302500 1! #2302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2302700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2303000 0! #2303500 1! #2303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2303700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2304000 0! #2304500 1! #2304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2304700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2305000 0! #2305500 1! #2305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2305700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2306000 0! #2306500 1! #2306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2306700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2307000 0! #2307500 1! #2307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2307700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2308000 0! #2308500 1! #2308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2308700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2309000 0! #2309500 1! #2309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2309700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2310000 0! #2310500 1! #2310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2310700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2311000 0! #2311500 1! #2311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2311700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2312000 0! #2312500 1! #2312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2312700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2313000 0! #2313500 1! #2313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2313700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2314000 0! #2314500 1! #2314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2314700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2315000 0! #2315500 1! #2315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2315700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2316000 0! #2316500 1! #2316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2316700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2317000 0! #2317500 1! #2317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2317700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2318000 0! #2318500 1! #2318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2318700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2319000 0! #2319500 1! #2319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2319700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2320000 0! #2320500 1! #2320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2320700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2321000 0! #2321500 1! #2321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2321700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2322000 0! #2322500 1! #2322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2322700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2323000 0! #2323500 1! #2323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #2323700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1 q 0d 0j #2324000 0! #2324500 1! #2324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2324700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2325000 0! #2325500 1! #2325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2325700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2326000 0! #2326500 1! #2326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2326700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2327000 0! #2327500 1! #2327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2327700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2328000 0! #2328500 1! #2328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2328700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2329000 0! #2329500 1! #2329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2329700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2330000 0! #2330500 1! #2330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2330700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2331000 0! #2331500 1! #2331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2331700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2332000 0! #2332500 1! #2332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2332700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2333000 0! #2333500 1! #2333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2333700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2334000 0! #2334500 1! #2334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2334700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2335000 0! #2335500 1! #2335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2335700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2336000 0! #2336500 1! #2336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2336700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2337000 0! #2337500 1! #2337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2337700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2338000 0! #2338500 1! #2338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2338700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2339000 0! #2339500 1! #2339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2339700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2340000 0! #2340500 1! #2340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2340700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2341000 0! #2341500 1! #2341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2341700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2342000 0! #2342500 1! #2342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2342700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2343000 0! #2343500 1! #2343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2343700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2344000 0! #2344500 1! #2344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2344700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2345000 0! #2345500 1! #2345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2345700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2346000 0! #2346500 1! #2346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2346700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2347000 0! #2347500 1! #2347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2347700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2348000 0! #2348500 1! #2348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2348700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2349000 0! #2349500 1! #2349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2349700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2350000 0! #2350500 1! #2350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2350700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2351000 0! #2351500 1! #2351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2351700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2352000 0! #2352500 1! #2352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2352700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2353000 0! #2353500 1! #2353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2353700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2354000 0! #2354500 1! #2354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2354700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2355000 0! #2355500 1! #2355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2355700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2356000 0! #2356500 1! #2356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2356700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2357000 0! #2357500 1! #2357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2357700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2358000 0! #2358500 1! #2358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2358700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2359000 0! #2359500 1! #2359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2359700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2360000 0! #2360500 1! #2360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2360700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2361000 0! #2361500 1! #2361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2361700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2362000 0! #2362500 1! #2362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2362700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2363000 0! #2363500 1! #2363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2363700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2364000 0! #2364500 1! #2364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2364700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2365000 0! #2365500 1! #2365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2365700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2366000 0! #2366500 1! #2366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2366700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2367000 0! #2367500 1! #2367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2367700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2368000 0! #2368500 1! #2368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2368700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2369000 0! #2369500 1! #2369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2369700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2370000 0! #2370500 1! #2370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2370700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2371000 0! #2371500 1! #2371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2371700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2372000 0! #2372500 1! #2372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2372700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2373000 0! #2373500 1! #2373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2373700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2374000 0! #2374500 1! #2374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2374700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2375000 0! #2375500 1! #2375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2375700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2376000 0! #2376500 1! #2376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2376700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2377000 0! #2377500 1! #2377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2377700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2378000 0! #2378500 1! #2378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2378700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2379000 0! #2379500 1! #2379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2379700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2380000 0! #2380500 1! #2380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2380700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2381000 0! #2381500 1! #2381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2381700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2382000 0! #2382500 1! #2382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2382700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2383000 0! #2383500 1! #2383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2383700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2384000 0! #2384500 1! #2384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2384700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2385000 0! #2385500 1! #2385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2385700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2386000 0! #2386500 1! #2386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2386700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2387000 0! #2387500 1! #2387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2387700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2388000 0! #2388500 1! #2388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2388700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2389000 0! #2389500 1! #2389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2389700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2390000 0! #2390500 1! #2390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2390700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2391000 0! #2391500 1! #2391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2391700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2392000 0! #2392500 1! #2392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2392700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2393000 0! #2393500 1! #2393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2393700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2394000 0! #2394500 1! #2394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2394700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2395000 0! #2395500 1! #2395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2395700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2396000 0! #2396500 1! #2396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2396700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2397000 0! #2397500 1! #2397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2397700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2398000 0! #2398500 1! #2398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2398700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2399000 0! #2399500 1! #2399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2399700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2400000 0! #2400500 1! #2400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2400700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2401000 0! #2401500 1! #2401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2401700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2402000 0! #2402500 1! #2402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2402700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2403000 0! #2403500 1! #2403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2403700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2404000 0! #2404500 1! #2404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2404700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2405000 0! #2405500 1! #2405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2405700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2406000 0! #2406500 1! #2406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2406700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2407000 0! #2407500 1! #2407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2407700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2408000 0! #2408500 1! #2408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2408700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2409000 0! #2409500 1! #2409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2409700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2410000 0! #2410500 1! #2410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2410700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2411000 0! #2411500 1! #2411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2411700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2412000 0! #2412500 1! #2412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2412700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2413000 0! #2413500 1! #2413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2413700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2414000 0! #2414500 1! #2414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2414700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2415000 0! #2415500 1! #2415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2415700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2416000 0! #2416500 1! #2416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2416700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2417000 0! #2417500 1! #2417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2417700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2418000 0! #2418500 1! #2418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2418700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2419000 0! #2419500 1! #2419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2419700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2420000 0! #2420500 1! #2420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2420700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2421000 0! #2421500 1! #2421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2421700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2422000 0! #2422500 1! #2422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2422700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2423000 0! #2423500 1! #2423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2423700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2424000 0! #2424500 1! #2424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2424700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2425000 0! #2425500 1! #2425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q #2425700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2426000 0! #2426500 1! #2426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2426700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2427000 0! #2427500 1! #2427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2427700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2428000 0! #2428500 1! #2428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2428700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2429000 0! #2429500 1! #2429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2429700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2430000 0! #2430500 1! #2430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2430700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2431000 0! #2431500 1! #2431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2431700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2432000 0! #2432500 1! #2432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2432700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2433000 0! #2433500 1! #2433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2433700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2434000 0! #2434500 1! #2434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2434700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2435000 0! #2435500 1! #2435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2435700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2436000 0! #2436500 1! #2436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2436700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2437000 0! #2437500 1! #2437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2437700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2438000 0! #2438500 1! #2438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2438700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2439000 0! #2439500 1! #2439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2439700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2440000 0! #2440500 1! #2440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2440700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2441000 0! #2441500 1! #2441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2441700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2442000 0! #2442500 1! #2442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2442700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2443000 0! #2443500 1! #2443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2443700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2444000 0! #2444500 1! #2444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2444700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2445000 0! #2445500 1! #2445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2445700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2446000 0! #2446500 1! #2446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2446700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2447000 0! #2447500 1! #2447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2447700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2448000 0! #2448500 1! #2448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2448700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2449000 0! #2449500 1! #2449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2449700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2450000 0! #2450500 1! #2450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2450700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2451000 0! #2451500 1! #2451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2451700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2452000 0! #2452500 1! #2452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2452700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2453000 0! #2453500 1! #2453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2453700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2454000 0! #2454500 1! #2454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2454700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2455000 0! #2455500 1! #2455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2455700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2456000 0! #2456500 1! #2456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2456700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2457000 0! #2457500 1! #2457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2457700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2458000 0! #2458500 1! #2458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2458700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2459000 0! #2459500 1! #2459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2459700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2460000 0! #2460500 1! #2460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2460700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2461000 0! #2461500 1! #2461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2461700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2462000 0! #2462500 1! #2462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2462700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2463000 0! #2463500 1! #2463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2463700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2464000 0! #2464500 1! #2464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2464700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2465000 0! #2465500 1! #2465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2465700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2466000 0! #2466500 1! #2466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2466700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2467000 0! #2467500 1! #2467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2467700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2468000 0! #2468500 1! #2468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2468700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2469000 0! #2469500 1! #2469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2469700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2470000 0! #2470500 1! #2470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2470700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2471000 0! #2471500 1! #2471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2471700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2472000 0! #2472500 1! #2472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2472700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2473000 0! #2473500 1! #2473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2473700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2474000 0! #2474500 1! #2474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2474700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2475000 0! #2475500 1! #2475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2475700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2476000 0! #2476500 1! #2476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #2476700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b111 g b1000000 c 0e 0h #2477000 0! #2477500 1! #2477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2477700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2478000 0! #2478500 1! #2478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2478700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2479000 0! #2479500 1! #2479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2479700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2480000 0! #2480500 1! #2480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2480700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2481000 0! #2481500 1! #2481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2481700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2482000 0! #2482500 1! #2482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2482700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2483000 0! #2483500 1! #2483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2483700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2484000 0! #2484500 1! #2484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2484700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2485000 0! #2485500 1! #2485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2485700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2486000 0! #2486500 1! #2486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2486700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2487000 0! #2487500 1! #2487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2487700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2488000 0! #2488500 1! #2488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2488700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2489000 0! #2489500 1! #2489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2489700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2490000 0! #2490500 1! #2490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2490700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2491000 0! #2491500 1! #2491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2491700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2492000 0! #2492500 1! #2492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2492700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2493000 0! #2493500 1! #2493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2493700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2494000 0! #2494500 1! #2494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2494700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2495000 0! #2495500 1! #2495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2495700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2496000 0! #2496500 1! #2496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2496700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2497000 0! #2497500 1! #2497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2497700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2498000 0! #2498500 1! #2498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2498700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2499000 0! #2499500 1! #2499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2499700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2500000 0! #2500500 1! #2500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2500700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2501000 0! #2501500 1! #2501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2501700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2502000 0! #2502500 1! #2502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2502700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2503000 0! #2503500 1! #2503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2503700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2504000 0! #2504500 1! #2504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2504700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2505000 0! #2505500 1! #2505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2505700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2506000 0! #2506500 1! #2506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2506700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2507000 0! #2507500 1! #2507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2507700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2508000 0! #2508500 1! #2508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2508700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2509000 0! #2509500 1! #2509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2509700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2510000 0! #2510500 1! #2510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2510700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2511000 0! #2511500 1! #2511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2511700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2512000 0! #2512500 1! #2512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2512700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2513000 0! #2513500 1! #2513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2513700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2514000 0! #2514500 1! #2514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2514700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2515000 0! #2515500 1! #2515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2515700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2516000 0! #2516500 1! #2516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2516700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2517000 0! #2517500 1! #2517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2517700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2518000 0! #2518500 1! #2518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2518700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2519000 0! #2519500 1! #2519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2519700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2520000 0! #2520500 1! #2520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2520700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2521000 0! #2521500 1! #2521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2521700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2522000 0! #2522500 1! #2522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2522700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2523000 0! #2523500 1! #2523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2523700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2524000 0! #2524500 1! #2524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2524700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2525000 0! #2525500 1! #2525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2525700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2526000 0! #2526500 1! #2526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2526700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2527000 0! #2527500 1! #2527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2527700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2528000 0! #2528500 1! #2528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2528700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2529000 0! #2529500 1! #2529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2529700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2530000 0! #2530500 1! #2530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2530700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2531000 0! #2531500 1! #2531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2531700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2532000 0! #2532500 1! #2532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2532700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2533000 0! #2533500 1! #2533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2533700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2534000 0! #2534500 1! #2534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2534700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2535000 0! #2535500 1! #2535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2535700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2536000 0! #2536500 1! #2536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2536700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2537000 0! #2537500 1! #2537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2537700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2538000 0! #2538500 1! #2538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2538700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2539000 0! #2539500 1! #2539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2539700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2540000 0! #2540500 1! #2540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2540700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2541000 0! #2541500 1! #2541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2541700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2542000 0! #2542500 1! #2542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2542700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2543000 0! #2543500 1! #2543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2543700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2544000 0! #2544500 1! #2544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2544700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2545000 0! #2545500 1! #2545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2545700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2546000 0! #2546500 1! #2546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2546700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2547000 0! #2547500 1! #2547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2547700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2548000 0! #2548500 1! #2548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2548700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2549000 0! #2549500 1! #2549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2549700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2550000 0! #2550500 1! #2550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2550700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2551000 0! #2551500 1! #2551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2551700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2552000 0! #2552500 1! #2552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2552700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2553000 0! #2553500 1! #2553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2553700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2554000 0! #2554500 1! #2554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2554700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2555000 0! #2555500 1! #2555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2555700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2556000 0! #2556500 1! #2556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2556700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2557000 0! #2557500 1! #2557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2557700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2558000 0! #2558500 1! #2558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2558700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2559000 0! #2559500 1! #2559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2559700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2560000 0! #2560500 1! #2560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2560700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2561000 0! #2561500 1! #2561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2561700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2562000 0! #2562500 1! #2562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2562700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2563000 0! #2563500 1! #2563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2563700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2564000 0! #2564500 1! #2564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2564700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2565000 0! #2565500 1! #2565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2565700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2566000 0! #2566500 1! #2566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2566700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2567000 0! #2567500 1! #2567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2567700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2568000 0! #2568500 1! #2568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2568700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2569000 0! #2569500 1! #2569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2569700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2570000 0! #2570500 1! #2570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2570700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2571000 0! #2571500 1! #2571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2571700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2572000 0! #2572500 1! #2572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2572700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2573000 0! #2573500 1! #2573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2573700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2574000 0! #2574500 1! #2574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2574700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2575000 0! #2575500 1! #2575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2575700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2576000 0! #2576500 1! #2576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2576700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2577000 0! #2577500 1! #2577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2577700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2578000 0! #2578500 1! #2578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #2578700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1j b10 q 1i 1O #2579000 0! #2579500 1! #2579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2579700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2580000 0! #2580500 1! #2580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2580700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000011 C 1H #2581000 0! #2581500 1! #2581600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2581700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #2582000 0! #2582500 1! #2582600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2583000 0! #2583500 1! #2583600 1E 1F 1G b1 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b0 C 1H #2584000 0! #2584500 1! #2584600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2584700 1E 1F 1G b10000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #2585000 0! #2585500 1! #2585600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2586000 0! #2586500 1! #2586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #2587000 0! #2587500 1! #2587600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2587700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2588000 0! #2588500 1! #2588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2588700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2589000 0! #2589500 1! #2589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2589700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2590000 0! #2590500 1! #2590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2590700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2591000 0! #2591500 1! #2591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2591700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2592000 0! #2592500 1! #2592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2592700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2593000 0! #2593500 1! #2593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2593700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2594000 0! #2594500 1! #2594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2594700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2595000 0! #2595500 1! #2595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2595700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2596000 0! #2596500 1! #2596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2596700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2597000 0! #2597500 1! #2597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2597700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2598000 0! #2598500 1! #2598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2598700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2599000 0! #2599500 1! #2599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2599700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2600000 0! #2600500 1! #2600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2600700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2601000 0! #2601500 1! #2601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2601700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2602000 0! #2602500 1! #2602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2602700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2603000 0! #2603500 1! #2603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2603700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2604000 0! #2604500 1! #2604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2604700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2605000 0! #2605500 1! #2605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2605700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2606000 0! #2606500 1! #2606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2606700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2607000 0! #2607500 1! #2607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2607700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2608000 0! #2608500 1! #2608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2608700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2609000 0! #2609500 1! #2609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2609700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2610000 0! #2610500 1! #2610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2610700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2611000 0! #2611500 1! #2611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2611700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2612000 0! #2612500 1! #2612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2612700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2613000 0! #2613500 1! #2613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2613700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2614000 0! #2614500 1! #2614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2614700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2615000 0! #2615500 1! #2615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2615700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2616000 0! #2616500 1! #2616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2616700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2617000 0! #2617500 1! #2617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2617700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2618000 0! #2618500 1! #2618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2618700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2619000 0! #2619500 1! #2619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2619700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2620000 0! #2620500 1! #2620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2620700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2621000 0! #2621500 1! #2621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2621700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2622000 0! #2622500 1! #2622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2622700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2623000 0! #2623500 1! #2623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2623700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2624000 0! #2624500 1! #2624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2624700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2625000 0! #2625500 1! #2625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2625700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2626000 0! #2626500 1! #2626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2626700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2627000 0! #2627500 1! #2627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2627700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2628000 0! #2628500 1! #2628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2628700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2629000 0! #2629500 1! #2629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2629700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2630000 0! #2630500 1! #2630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2630700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2631000 0! #2631500 1! #2631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2631700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2632000 0! #2632500 1! #2632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2632700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2633000 0! #2633500 1! #2633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2633700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2634000 0! #2634500 1! #2634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2634700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2635000 0! #2635500 1! #2635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2635700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2636000 0! #2636500 1! #2636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2636700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2637000 0! #2637500 1! #2637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2637700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2638000 0! #2638500 1! #2638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2638700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2639000 0! #2639500 1! #2639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2639700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2640000 0! #2640500 1! #2640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2640700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2641000 0! #2641500 1! #2641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2641700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2642000 0! #2642500 1! #2642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2642700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2643000 0! #2643500 1! #2643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2643700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2644000 0! #2644500 1! #2644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2644700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2645000 0! #2645500 1! #2645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2645700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2646000 0! #2646500 1! #2646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2646700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2647000 0! #2647500 1! #2647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2647700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2648000 0! #2648500 1! #2648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2648700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2649000 0! #2649500 1! #2649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2649700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2650000 0! #2650500 1! #2650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2650700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2651000 0! #2651500 1! #2651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2651700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2652000 0! #2652500 1! #2652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2652700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2653000 0! #2653500 1! #2653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2653700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2654000 0! #2654500 1! #2654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2654700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2655000 0! #2655500 1! #2655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2655700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2656000 0! #2656500 1! #2656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2656700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2657000 0! #2657500 1! #2657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2657700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2658000 0! #2658500 1! #2658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2658700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2659000 0! #2659500 1! #2659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2659700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2660000 0! #2660500 1! #2660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2660700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2661000 0! #2661500 1! #2661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2661700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2662000 0! #2662500 1! #2662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2662700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2663000 0! #2663500 1! #2663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2663700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2664000 0! #2664500 1! #2664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2664700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2665000 0! #2665500 1! #2665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2665700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2666000 0! #2666500 1! #2666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2666700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2667000 0! #2667500 1! #2667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2667700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2668000 0! #2668500 1! #2668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2668700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2669000 0! #2669500 1! #2669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2669700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2670000 0! #2670500 1! #2670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2670700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2671000 0! #2671500 1! #2671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2671700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2672000 0! #2672500 1! #2672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2672700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2673000 0! #2673500 1! #2673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2673700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2674000 0! #2674500 1! #2674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2674700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2675000 0! #2675500 1! #2675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2675700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2676000 0! #2676500 1! #2676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2676700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2677000 0! #2677500 1! #2677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2677700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2678000 0! #2678500 1! #2678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2678700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2679000 0! #2679500 1! #2679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2679700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2680000 0! #2680500 1! #2680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #2680700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2681000 0! #2681500 1! #2681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2681700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2682000 0! #2682500 1! #2682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2682700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2683000 0! #2683500 1! #2683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2683700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2684000 0! #2684500 1! #2684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2684700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2685000 0! #2685500 1! #2685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2685700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2686000 0! #2686500 1! #2686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2686700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2687000 0! #2687500 1! #2687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2687700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2688000 0! #2688500 1! #2688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2688700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2689000 0! #2689500 1! #2689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2689700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2690000 0! #2690500 1! #2690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2690700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2691000 0! #2691500 1! #2691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2691700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2692000 0! #2692500 1! #2692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2692700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2693000 0! #2693500 1! #2693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2693700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2694000 0! #2694500 1! #2694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2694700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2695000 0! #2695500 1! #2695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2695700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2696000 0! #2696500 1! #2696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2696700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2697000 0! #2697500 1! #2697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2697700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2698000 0! #2698500 1! #2698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2698700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2699000 0! #2699500 1! #2699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2699700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2700000 0! #2700500 1! #2700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2700700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2701000 0! #2701500 1! #2701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2701700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2702000 0! #2702500 1! #2702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2702700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2703000 0! #2703500 1! #2703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2703700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2704000 0! #2704500 1! #2704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2704700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2705000 0! #2705500 1! #2705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2705700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2706000 0! #2706500 1! #2706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2706700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2707000 0! #2707500 1! #2707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2707700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2708000 0! #2708500 1! #2708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2708700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2709000 0! #2709500 1! #2709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2709700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2710000 0! #2710500 1! #2710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2710700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2711000 0! #2711500 1! #2711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2711700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2712000 0! #2712500 1! #2712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2712700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2713000 0! #2713500 1! #2713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2713700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2714000 0! #2714500 1! #2714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2714700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2715000 0! #2715500 1! #2715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2715700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2716000 0! #2716500 1! #2716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2716700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2717000 0! #2717500 1! #2717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2717700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2718000 0! #2718500 1! #2718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2718700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2719000 0! #2719500 1! #2719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2719700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2720000 0! #2720500 1! #2720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2720700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2721000 0! #2721500 1! #2721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2721700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2722000 0! #2722500 1! #2722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2722700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2723000 0! #2723500 1! #2723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2723700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2724000 0! #2724500 1! #2724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2724700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2725000 0! #2725500 1! #2725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2725700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2726000 0! #2726500 1! #2726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2726700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2727000 0! #2727500 1! #2727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2727700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2728000 0! #2728500 1! #2728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2728700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2729000 0! #2729500 1! #2729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2729700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2730000 0! #2730500 1! #2730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2730700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2731000 0! #2731500 1! #2731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #2731700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b10000000 c #2732000 0! #2732500 1! #2732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2732700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2733000 0! #2733500 1! #2733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2733700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2734000 0! #2734500 1! #2734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2734700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2735000 0! #2735500 1! #2735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2735700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2736000 0! #2736500 1! #2736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2736700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2737000 0! #2737500 1! #2737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2737700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2738000 0! #2738500 1! #2738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2738700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2739000 0! #2739500 1! #2739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2739700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2740000 0! #2740500 1! #2740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2740700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2741000 0! #2741500 1! #2741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2741700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2742000 0! #2742500 1! #2742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2742700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2743000 0! #2743500 1! #2743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2743700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2744000 0! #2744500 1! #2744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2744700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2745000 0! #2745500 1! #2745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2745700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2746000 0! #2746500 1! #2746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2746700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2747000 0! #2747500 1! #2747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2747700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2748000 0! #2748500 1! #2748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2748700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2749000 0! #2749500 1! #2749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2749700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2750000 0! #2750500 1! #2750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2750700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2751000 0! #2751500 1! #2751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2751700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2752000 0! #2752500 1! #2752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2752700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2753000 0! #2753500 1! #2753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2753700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2754000 0! #2754500 1! #2754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2754700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2755000 0! #2755500 1! #2755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2755700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2756000 0! #2756500 1! #2756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2756700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2757000 0! #2757500 1! #2757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2757700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2758000 0! #2758500 1! #2758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2758700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2759000 0! #2759500 1! #2759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2759700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2760000 0! #2760500 1! #2760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2760700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2761000 0! #2761500 1! #2761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2761700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2762000 0! #2762500 1! #2762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2762700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2763000 0! #2763500 1! #2763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2763700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2764000 0! #2764500 1! #2764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2764700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2765000 0! #2765500 1! #2765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2765700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2766000 0! #2766500 1! #2766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2766700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2767000 0! #2767500 1! #2767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2767700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2768000 0! #2768500 1! #2768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2768700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2769000 0! #2769500 1! #2769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2769700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2770000 0! #2770500 1! #2770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2770700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2771000 0! #2771500 1! #2771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2771700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2772000 0! #2772500 1! #2772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2772700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2773000 0! #2773500 1! #2773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2773700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2774000 0! #2774500 1! #2774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2774700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2775000 0! #2775500 1! #2775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2775700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2776000 0! #2776500 1! #2776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2776700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2777000 0! #2777500 1! #2777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2777700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2778000 0! #2778500 1! #2778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2778700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2779000 0! #2779500 1! #2779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2779700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2780000 0! #2780500 1! #2780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2780700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2781000 0! #2781500 1! #2781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2781700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2782000 0! #2782500 1! #2782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2782700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2783000 0! #2783500 1! #2783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2783700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2784000 0! #2784500 1! #2784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2784700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2785000 0! #2785500 1! #2785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2785700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2786000 0! #2786500 1! #2786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2786700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2787000 0! #2787500 1! #2787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2787700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2788000 0! #2788500 1! #2788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2788700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2789000 0! #2789500 1! #2789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2789700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2790000 0! #2790500 1! #2790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2790700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2791000 0! #2791500 1! #2791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2791700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2792000 0! #2792500 1! #2792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2792700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2793000 0! #2793500 1! #2793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2793700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2794000 0! #2794500 1! #2794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2794700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2795000 0! #2795500 1! #2795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2795700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2796000 0! #2796500 1! #2796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2796700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2797000 0! #2797500 1! #2797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2797700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2798000 0! #2798500 1! #2798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2798700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2799000 0! #2799500 1! #2799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2799700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2800000 0! #2800500 1! #2800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2800700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2801000 0! #2801500 1! #2801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2801700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2802000 0! #2802500 1! #2802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2802700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2803000 0! #2803500 1! #2803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2803700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2804000 0! #2804500 1! #2804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2804700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2805000 0! #2805500 1! #2805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2805700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2806000 0! #2806500 1! #2806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2806700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2807000 0! #2807500 1! #2807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2807700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2808000 0! #2808500 1! #2808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2808700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2809000 0! #2809500 1! #2809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2809700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2810000 0! #2810500 1! #2810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2810700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2811000 0! #2811500 1! #2811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2811700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2812000 0! #2812500 1! #2812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2812700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2813000 0! #2813500 1! #2813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2813700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2814000 0! #2814500 1! #2814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2814700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2815000 0! #2815500 1! #2815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2815700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2816000 0! #2816500 1! #2816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2816700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2817000 0! #2817500 1! #2817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2817700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2818000 0! #2818500 1! #2818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2818700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2819000 0! #2819500 1! #2819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2819700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2820000 0! #2820500 1! #2820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2820700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2821000 0! #2821500 1! #2821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2821700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2822000 0! #2822500 1! #2822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2822700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2823000 0! #2823500 1! #2823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2823700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2824000 0! #2824500 1! #2824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2824700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2825000 0! #2825500 1! #2825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2825700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2826000 0! #2826500 1! #2826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2826700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2827000 0! #2827500 1! #2827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2827700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2828000 0! #2828500 1! #2828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2828700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2829000 0! #2829500 1! #2829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2829700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2830000 0! #2830500 1! #2830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2830700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2831000 0! #2831500 1! #2831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2831700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2832000 0! #2832500 1! #2832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2832700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2833000 0! #2833500 1! #2833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #2833700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0i #2834000 0! #2834500 1! #2834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2834700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2835000 0! #2835500 1! #2835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2835700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2836000 0! #2836500 1! #2836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2836700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2837000 0! #2837500 1! #2837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2837700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2838000 0! #2838500 1! #2838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2838700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2839000 0! #2839500 1! #2839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2839700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2840000 0! #2840500 1! #2840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2840700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2841000 0! #2841500 1! #2841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2841700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2842000 0! #2842500 1! #2842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2842700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2843000 0! #2843500 1! #2843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2843700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2844000 0! #2844500 1! #2844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2844700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2845000 0! #2845500 1! #2845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2845700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2846000 0! #2846500 1! #2846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2846700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2847000 0! #2847500 1! #2847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2847700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2848000 0! #2848500 1! #2848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2848700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2849000 0! #2849500 1! #2849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2849700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2850000 0! #2850500 1! #2850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2850700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2851000 0! #2851500 1! #2851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2851700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2852000 0! #2852500 1! #2852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2852700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2853000 0! #2853500 1! #2853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2853700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2854000 0! #2854500 1! #2854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2854700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2855000 0! #2855500 1! #2855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2855700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2856000 0! #2856500 1! #2856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2856700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2857000 0! #2857500 1! #2857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2857700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2858000 0! #2858500 1! #2858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2858700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2859000 0! #2859500 1! #2859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2859700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2860000 0! #2860500 1! #2860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2860700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2861000 0! #2861500 1! #2861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2861700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2862000 0! #2862500 1! #2862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2862700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2863000 0! #2863500 1! #2863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2863700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2864000 0! #2864500 1! #2864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2864700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2865000 0! #2865500 1! #2865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2865700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2866000 0! #2866500 1! #2866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2866700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2867000 0! #2867500 1! #2867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2867700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2868000 0! #2868500 1! #2868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2868700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2869000 0! #2869500 1! #2869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2869700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2870000 0! #2870500 1! #2870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2870700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2871000 0! #2871500 1! #2871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2871700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2872000 0! #2872500 1! #2872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2872700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2873000 0! #2873500 1! #2873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2873700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2874000 0! #2874500 1! #2874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2874700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2875000 0! #2875500 1! #2875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2875700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2876000 0! #2876500 1! #2876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2876700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2877000 0! #2877500 1! #2877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2877700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2878000 0! #2878500 1! #2878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2878700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2879000 0! #2879500 1! #2879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2879700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2880000 0! #2880500 1! #2880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2880700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2881000 0! #2881500 1! #2881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2881700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2882000 0! #2882500 1! #2882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2882700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2883000 0! #2883500 1! #2883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2883700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2884000 0! #2884500 1! #2884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2884700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2885000 0! #2885500 1! #2885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2885700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2886000 0! #2886500 1! #2886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2886700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2887000 0! #2887500 1! #2887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2887700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2888000 0! #2888500 1! #2888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2888700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2889000 0! #2889500 1! #2889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2889700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2890000 0! #2890500 1! #2890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2890700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2891000 0! #2891500 1! #2891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2891700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2892000 0! #2892500 1! #2892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2892700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2893000 0! #2893500 1! #2893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2893700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2894000 0! #2894500 1! #2894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2894700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2895000 0! #2895500 1! #2895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2895700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2896000 0! #2896500 1! #2896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2896700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2897000 0! #2897500 1! #2897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2897700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2898000 0! #2898500 1! #2898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2898700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2899000 0! #2899500 1! #2899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2899700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2900000 0! #2900500 1! #2900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2900700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2901000 0! #2901500 1! #2901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2901700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2902000 0! #2902500 1! #2902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2902700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2903000 0! #2903500 1! #2903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2903700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2904000 0! #2904500 1! #2904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2904700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2905000 0! #2905500 1! #2905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2905700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2906000 0! #2906500 1! #2906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2906700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2907000 0! #2907500 1! #2907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2907700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2908000 0! #2908500 1! #2908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2908700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2909000 0! #2909500 1! #2909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2909700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2910000 0! #2910500 1! #2910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2910700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2911000 0! #2911500 1! #2911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2911700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2912000 0! #2912500 1! #2912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2912700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2913000 0! #2913500 1! #2913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2913700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2914000 0! #2914500 1! #2914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2914700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2915000 0! #2915500 1! #2915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2915700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2916000 0! #2916500 1! #2916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2916700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2917000 0! #2917500 1! #2917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2917700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2918000 0! #2918500 1! #2918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2918700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2919000 0! #2919500 1! #2919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2919700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2920000 0! #2920500 1! #2920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2920700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2921000 0! #2921500 1! #2921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2921700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2922000 0! #2922500 1! #2922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2922700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2923000 0! #2923500 1! #2923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2923700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2924000 0! #2924500 1! #2924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2924700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2925000 0! #2925500 1! #2925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2925700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2926000 0! #2926500 1! #2926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2926700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2927000 0! #2927500 1! #2927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2927700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2928000 0! #2928500 1! #2928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2928700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2929000 0! #2929500 1! #2929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2929700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2930000 0! #2930500 1! #2930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2930700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2931000 0! #2931500 1! #2931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2931700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2932000 0! #2932500 1! #2932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2932700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2933000 0! #2933500 1! #2933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2933700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2934000 0! #2934500 1! #2934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2934700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2935000 0! #2935500 1! #2935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2935700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2936000 0! #2936500 1! #2936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2936700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2937000 0! #2937500 1! #2937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2937700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2938000 0! #2938500 1! #2938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2938700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2939000 0! #2939500 1! #2939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2939700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2940000 0! #2940500 1! #2940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2940700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2941000 0! #2941500 1! #2941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2941700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2942000 0! #2942500 1! #2942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2942700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2943000 0! #2943500 1! #2943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2943700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2944000 0! #2944500 1! #2944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2944700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2945000 0! #2945500 1! #2945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2945700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2946000 0! #2946500 1! #2946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2946700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2947000 0! #2947500 1! #2947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2947700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2948000 0! #2948500 1! #2948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2948700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2949000 0! #2949500 1! #2949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2949700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2950000 0! #2950500 1! #2950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2950700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2951000 0! #2951500 1! #2951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2951700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2952000 0! #2952500 1! #2952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2952700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2953000 0! #2953500 1! #2953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2953700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2954000 0! #2954500 1! #2954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2954700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2955000 0! #2955500 1! #2955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2955700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2956000 0! #2956500 1! #2956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2956700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2957000 0! #2957500 1! #2957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2957700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2958000 0! #2958500 1! #2958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2958700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2959000 0! #2959500 1! #2959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2959700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2960000 0! #2960500 1! #2960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2960700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2961000 0! #2961500 1! #2961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2961700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2962000 0! #2962500 1! #2962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2962700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2963000 0! #2963500 1! #2963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2963700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2964000 0! #2964500 1! #2964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2964700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2965000 0! #2965500 1! #2965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2965700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2966000 0! #2966500 1! #2966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2966700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2967000 0! #2967500 1! #2967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2967700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2968000 0! #2968500 1! #2968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2968700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2969000 0! #2969500 1! #2969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2969700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2970000 0! #2970500 1! #2970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2970700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2971000 0! #2971500 1! #2971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2971700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2972000 0! #2972500 1! #2972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2972700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2973000 0! #2973500 1! #2973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2973700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2974000 0! #2974500 1! #2974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2974700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2975000 0! #2975500 1! #2975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2975700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2976000 0! #2976500 1! #2976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2976700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2977000 0! #2977500 1! #2977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2977700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2978000 0! #2978500 1! #2978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2978700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2979000 0! #2979500 1! #2979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2979700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2980000 0! #2980500 1! #2980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2980700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2981000 0! #2981500 1! #2981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2981700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2982000 0! #2982500 1! #2982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2982700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2983000 0! #2983500 1! #2983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2983700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2984000 0! #2984500 1! #2984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2984700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2985000 0! #2985500 1! #2985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2985700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2986000 0! #2986500 1! #2986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #2986700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b110 g b0 c #2987000 0! #2987500 1! #2987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2987700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2988000 0! #2988500 1! #2988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2988700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2989000 0! #2989500 1! #2989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2989700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2990000 0! #2990500 1! #2990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2990700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2991000 0! #2991500 1! #2991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2991700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2992000 0! #2992500 1! #2992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2992700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2993000 0! #2993500 1! #2993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2993700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2994000 0! #2994500 1! #2994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2994700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2995000 0! #2995500 1! #2995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2995700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2996000 0! #2996500 1! #2996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2996700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2997000 0! #2997500 1! #2997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2997700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2998000 0! #2998500 1! #2998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2998700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #2999000 0! #2999500 1! #2999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #2999700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3000000 0! #3000500 1! #3000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3000700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3001000 0! #3001500 1! #3001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3001700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3002000 0! #3002500 1! #3002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3002700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3003000 0! #3003500 1! #3003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3003700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3004000 0! #3004500 1! #3004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3004700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3005000 0! #3005500 1! #3005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3005700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3006000 0! #3006500 1! #3006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3006700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3007000 0! #3007500 1! #3007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3007700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3008000 0! #3008500 1! #3008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3008700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3009000 0! #3009500 1! #3009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3009700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3010000 0! #3010500 1! #3010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3010700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3011000 0! #3011500 1! #3011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3011700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3012000 0! #3012500 1! #3012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3012700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3013000 0! #3013500 1! #3013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3013700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3014000 0! #3014500 1! #3014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3014700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3015000 0! #3015500 1! #3015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3015700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3016000 0! #3016500 1! #3016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3016700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3017000 0! #3017500 1! #3017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3017700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3018000 0! #3018500 1! #3018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3018700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3019000 0! #3019500 1! #3019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3019700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3020000 0! #3020500 1! #3020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3020700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3021000 0! #3021500 1! #3021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3021700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3022000 0! #3022500 1! #3022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3022700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3023000 0! #3023500 1! #3023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3023700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3024000 0! #3024500 1! #3024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3024700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3025000 0! #3025500 1! #3025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3025700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3026000 0! #3026500 1! #3026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3026700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3027000 0! #3027500 1! #3027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3027700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3028000 0! #3028500 1! #3028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3028700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3029000 0! #3029500 1! #3029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3029700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3030000 0! #3030500 1! #3030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3030700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3031000 0! #3031500 1! #3031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3031700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3032000 0! #3032500 1! #3032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3032700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3033000 0! #3033500 1! #3033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3033700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3034000 0! #3034500 1! #3034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3034700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3035000 0! #3035500 1! #3035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3035700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3036000 0! #3036500 1! #3036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3036700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3037000 0! #3037500 1! #3037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3037700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3038000 0! #3038500 1! #3038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3038700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3039000 0! #3039500 1! #3039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3039700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3040000 0! #3040500 1! #3040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3040700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3041000 0! #3041500 1! #3041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3041700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3042000 0! #3042500 1! #3042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3042700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3043000 0! #3043500 1! #3043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3043700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3044000 0! #3044500 1! #3044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3044700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3045000 0! #3045500 1! #3045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3045700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3046000 0! #3046500 1! #3046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3046700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3047000 0! #3047500 1! #3047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3047700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3048000 0! #3048500 1! #3048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3048700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3049000 0! #3049500 1! #3049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3049700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3050000 0! #3050500 1! #3050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3050700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3051000 0! #3051500 1! #3051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3051700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3052000 0! #3052500 1! #3052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3052700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3053000 0! #3053500 1! #3053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3053700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3054000 0! #3054500 1! #3054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3054700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3055000 0! #3055500 1! #3055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3055700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3056000 0! #3056500 1! #3056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3056700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3057000 0! #3057500 1! #3057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3057700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3058000 0! #3058500 1! #3058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3058700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3059000 0! #3059500 1! #3059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3059700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3060000 0! #3060500 1! #3060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3060700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3061000 0! #3061500 1! #3061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3061700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3062000 0! #3062500 1! #3062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3062700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3063000 0! #3063500 1! #3063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3063700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3064000 0! #3064500 1! #3064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3064700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3065000 0! #3065500 1! #3065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3065700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3066000 0! #3066500 1! #3066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3066700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3067000 0! #3067500 1! #3067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3067700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3068000 0! #3068500 1! #3068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3068700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3069000 0! #3069500 1! #3069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3069700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3070000 0! #3070500 1! #3070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3070700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3071000 0! #3071500 1! #3071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3071700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3072000 0! #3072500 1! #3072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3072700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3073000 0! #3073500 1! #3073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3073700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3074000 0! #3074500 1! #3074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3074700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3075000 0! #3075500 1! #3075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3075700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3076000 0! #3076500 1! #3076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3076700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3077000 0! #3077500 1! #3077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3077700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3078000 0! #3078500 1! #3078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3078700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3079000 0! #3079500 1! #3079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3079700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3080000 0! #3080500 1! #3080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3080700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3081000 0! #3081500 1! #3081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3081700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3082000 0! #3082500 1! #3082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3082700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3083000 0! #3083500 1! #3083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3083700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3084000 0! #3084500 1! #3084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3084700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3085000 0! #3085500 1! #3085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3085700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3086000 0! #3086500 1! #3086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3086700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3087000 0! #3087500 1! #3087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3087700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3088000 0! #3088500 1! #3088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #3088700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3089000 0! #3089500 1! #3089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3089700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3090000 0! #3090500 1! #3090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3090700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3091000 0! #3091500 1! #3091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3091700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3092000 0! #3092500 1! #3092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3092700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3093000 0! #3093500 1! #3093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3093700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3094000 0! #3094500 1! #3094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3094700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3095000 0! #3095500 1! #3095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3095700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3096000 0! #3096500 1! #3096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3096700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3097000 0! #3097500 1! #3097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3097700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3098000 0! #3098500 1! #3098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3098700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3099000 0! #3099500 1! #3099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3099700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3100000 0! #3100500 1! #3100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3100700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3101000 0! #3101500 1! #3101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3101700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3102000 0! #3102500 1! #3102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3102700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3103000 0! #3103500 1! #3103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3103700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3104000 0! #3104500 1! #3104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3104700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3105000 0! #3105500 1! #3105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3105700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3106000 0! #3106500 1! #3106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3106700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3107000 0! #3107500 1! #3107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3107700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3108000 0! #3108500 1! #3108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3108700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3109000 0! #3109500 1! #3109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3109700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3110000 0! #3110500 1! #3110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3110700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3111000 0! #3111500 1! #3111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3111700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3112000 0! #3112500 1! #3112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3112700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3113000 0! #3113500 1! #3113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3113700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3114000 0! #3114500 1! #3114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3114700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3115000 0! #3115500 1! #3115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3115700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3116000 0! #3116500 1! #3116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3116700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3117000 0! #3117500 1! #3117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3117700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3118000 0! #3118500 1! #3118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3118700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3119000 0! #3119500 1! #3119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3119700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3120000 0! #3120500 1! #3120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3120700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3121000 0! #3121500 1! #3121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3121700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3122000 0! #3122500 1! #3122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3122700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3123000 0! #3123500 1! #3123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3123700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3124000 0! #3124500 1! #3124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3124700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3125000 0! #3125500 1! #3125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3125700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3126000 0! #3126500 1! #3126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3126700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3127000 0! #3127500 1! #3127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3127700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3128000 0! #3128500 1! #3128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3128700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3129000 0! #3129500 1! #3129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3129700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3130000 0! #3130500 1! #3130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3130700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3131000 0! #3131500 1! #3131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3131700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3132000 0! #3132500 1! #3132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3132700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3133000 0! #3133500 1! #3133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3133700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3134000 0! #3134500 1! #3134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3134700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3135000 0! #3135500 1! #3135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3135700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3136000 0! #3136500 1! #3136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3136700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3137000 0! #3137500 1! #3137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3137700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3138000 0! #3138500 1! #3138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3138700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3139000 0! #3139500 1! #3139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3139700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3140000 0! #3140500 1! #3140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3140700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3141000 0! #3141500 1! #3141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3141700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3142000 0! #3142500 1! #3142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3142700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3143000 0! #3143500 1! #3143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3143700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3144000 0! #3144500 1! #3144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3144700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3145000 0! #3145500 1! #3145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3145700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3146000 0! #3146500 1! #3146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3146700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3147000 0! #3147500 1! #3147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3147700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3148000 0! #3148500 1! #3148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3148700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3149000 0! #3149500 1! #3149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3149700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3150000 0! #3150500 1! #3150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3150700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3151000 0! #3151500 1! #3151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3151700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3152000 0! #3152500 1! #3152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3152700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3153000 0! #3153500 1! #3153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3153700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3154000 0! #3154500 1! #3154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3154700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3155000 0! #3155500 1! #3155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3155700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3156000 0! #3156500 1! #3156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3156700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3157000 0! #3157500 1! #3157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3157700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3158000 0! #3158500 1! #3158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3158700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3159000 0! #3159500 1! #3159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3159700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3160000 0! #3160500 1! #3160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3160700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3161000 0! #3161500 1! #3161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3161700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3162000 0! #3162500 1! #3162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3162700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3163000 0! #3163500 1! #3163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3163700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3164000 0! #3164500 1! #3164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3164700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3165000 0! #3165500 1! #3165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3165700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3166000 0! #3166500 1! #3166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3166700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3167000 0! #3167500 1! #3167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3167700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3168000 0! #3168500 1! #3168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3168700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3169000 0! #3169500 1! #3169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3169700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3170000 0! #3170500 1! #3170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3170700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3171000 0! #3171500 1! #3171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3171700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3172000 0! #3172500 1! #3172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3172700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3173000 0! #3173500 1! #3173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3173700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3174000 0! #3174500 1! #3174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3174700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3175000 0! #3175500 1! #3175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3175700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3176000 0! #3176500 1! #3176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3176700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3177000 0! #3177500 1! #3177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3177700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3178000 0! #3178500 1! #3178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3178700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3179000 0! #3179500 1! #3179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3179700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3180000 0! #3180500 1! #3180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3180700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3181000 0! #3181500 1! #3181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3181700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3182000 0! #3182500 1! #3182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3182700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3183000 0! #3183500 1! #3183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3183700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3184000 0! #3184500 1! #3184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3184700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3185000 0! #3185500 1! #3185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3185700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3186000 0! #3186500 1! #3186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3186700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3187000 0! #3187500 1! #3187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3187700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3188000 0! #3188500 1! #3188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3188700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3189000 0! #3189500 1! #3189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3189700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3190000 0! #3190500 1! #3190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3190700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3191000 0! #3191500 1! #3191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3191700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3192000 0! #3192500 1! #3192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3192700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3193000 0! #3193500 1! #3193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3193700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3194000 0! #3194500 1! #3194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3194700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3195000 0! #3195500 1! #3195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3195700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3196000 0! #3196500 1! #3196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3196700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3197000 0! #3197500 1! #3197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3197700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3198000 0! #3198500 1! #3198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3198700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3199000 0! #3199500 1! #3199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3199700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3200000 0! #3200500 1! #3200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3200700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3201000 0! #3201500 1! #3201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3201700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3202000 0! #3202500 1! #3202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3202700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3203000 0! #3203500 1! #3203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3203700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3204000 0! #3204500 1! #3204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3204700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3205000 0! #3205500 1! #3205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3205700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3206000 0! #3206500 1! #3206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3206700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3207000 0! #3207500 1! #3207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3207700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3208000 0! #3208500 1! #3208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3208700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3209000 0! #3209500 1! #3209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3209700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3210000 0! #3210500 1! #3210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3210700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3211000 0! #3211500 1! #3211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3211700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3212000 0! #3212500 1! #3212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3212700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3213000 0! #3213500 1! #3213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3213700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3214000 0! #3214500 1! #3214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3214700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3215000 0! #3215500 1! #3215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3215700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3216000 0! #3216500 1! #3216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3216700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3217000 0! #3217500 1! #3217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3217700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3218000 0! #3218500 1! #3218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3218700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3219000 0! #3219500 1! #3219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3219700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3220000 0! #3220500 1! #3220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3220700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3221000 0! #3221500 1! #3221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3221700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3222000 0! #3222500 1! #3222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3222700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3223000 0! #3223500 1! #3223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3223700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3224000 0! #3224500 1! #3224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3224700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3225000 0! #3225500 1! #3225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3225700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3226000 0! #3226500 1! #3226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3226700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3227000 0! #3227500 1! #3227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3227700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3228000 0! #3228500 1! #3228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3228700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3229000 0! #3229500 1! #3229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3229700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3230000 0! #3230500 1! #3230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3230700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3231000 0! #3231500 1! #3231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3231700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3232000 0! #3232500 1! #3232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3232700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3233000 0! #3233500 1! #3233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3233700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3234000 0! #3234500 1! #3234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3234700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3235000 0! #3235500 1! #3235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3235700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3236000 0! #3236500 1! #3236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3236700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3237000 0! #3237500 1! #3237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3237700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3238000 0! #3238500 1! #3238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3238700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3239000 0! #3239500 1! #3239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3239700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3240000 0! #3240500 1! #3240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3240700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3241000 0! #3241500 1! #3241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #3241700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b101 g #3242000 0! #3242500 1! #3242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3242700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3243000 0! #3243500 1! #3243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3243700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3244000 0! #3244500 1! #3244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3244700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3245000 0! #3245500 1! #3245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3245700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3246000 0! #3246500 1! #3246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3246700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3247000 0! #3247500 1! #3247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3247700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3248000 0! #3248500 1! #3248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3248700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3249000 0! #3249500 1! #3249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3249700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3250000 0! #3250500 1! #3250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3250700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3251000 0! #3251500 1! #3251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3251700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3252000 0! #3252500 1! #3252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3252700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3253000 0! #3253500 1! #3253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3253700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3254000 0! #3254500 1! #3254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3254700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3255000 0! #3255500 1! #3255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3255700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3256000 0! #3256500 1! #3256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3256700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3257000 0! #3257500 1! #3257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3257700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3258000 0! #3258500 1! #3258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3258700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3259000 0! #3259500 1! #3259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3259700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3260000 0! #3260500 1! #3260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3260700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3261000 0! #3261500 1! #3261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3261700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3262000 0! #3262500 1! #3262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3262700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3263000 0! #3263500 1! #3263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3263700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3264000 0! #3264500 1! #3264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3264700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3265000 0! #3265500 1! #3265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3265700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3266000 0! #3266500 1! #3266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3266700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3267000 0! #3267500 1! #3267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3267700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3268000 0! #3268500 1! #3268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3268700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3269000 0! #3269500 1! #3269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3269700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3270000 0! #3270500 1! #3270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3270700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3271000 0! #3271500 1! #3271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3271700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3272000 0! #3272500 1! #3272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3272700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3273000 0! #3273500 1! #3273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3273700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3274000 0! #3274500 1! #3274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3274700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3275000 0! #3275500 1! #3275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3275700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3276000 0! #3276500 1! #3276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3276700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3277000 0! #3277500 1! #3277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3277700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3278000 0! #3278500 1! #3278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3278700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3279000 0! #3279500 1! #3279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3279700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3280000 0! #3280500 1! #3280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3280700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3281000 0! #3281500 1! #3281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3281700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3282000 0! #3282500 1! #3282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3282700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3283000 0! #3283500 1! #3283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3283700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3284000 0! #3284500 1! #3284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3284700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3285000 0! #3285500 1! #3285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3285700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3286000 0! #3286500 1! #3286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3286700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3287000 0! #3287500 1! #3287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3287700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3288000 0! #3288500 1! #3288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3288700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3289000 0! #3289500 1! #3289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3289700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3290000 0! #3290500 1! #3290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3290700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3291000 0! #3291500 1! #3291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3291700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3292000 0! #3292500 1! #3292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3292700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3293000 0! #3293500 1! #3293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3293700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3294000 0! #3294500 1! #3294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3294700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3295000 0! #3295500 1! #3295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3295700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3296000 0! #3296500 1! #3296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3296700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3297000 0! #3297500 1! #3297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3297700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3298000 0! #3298500 1! #3298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3298700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3299000 0! #3299500 1! #3299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3299700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3300000 0! #3300500 1! #3300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3300700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3301000 0! #3301500 1! #3301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3301700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3302000 0! #3302500 1! #3302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3302700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3303000 0! #3303500 1! #3303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3303700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3304000 0! #3304500 1! #3304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3304700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3305000 0! #3305500 1! #3305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3305700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3306000 0! #3306500 1! #3306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3306700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3307000 0! #3307500 1! #3307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3307700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3308000 0! #3308500 1! #3308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3308700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3309000 0! #3309500 1! #3309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3309700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3310000 0! #3310500 1! #3310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3310700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3311000 0! #3311500 1! #3311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3311700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3312000 0! #3312500 1! #3312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3312700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3313000 0! #3313500 1! #3313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3313700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3314000 0! #3314500 1! #3314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3314700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3315000 0! #3315500 1! #3315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3315700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3316000 0! #3316500 1! #3316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3316700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3317000 0! #3317500 1! #3317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3317700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3318000 0! #3318500 1! #3318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3318700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3319000 0! #3319500 1! #3319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3319700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3320000 0! #3320500 1! #3320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3320700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3321000 0! #3321500 1! #3321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3321700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3322000 0! #3322500 1! #3322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3322700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3323000 0! #3323500 1! #3323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3323700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3324000 0! #3324500 1! #3324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3324700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3325000 0! #3325500 1! #3325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3325700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3326000 0! #3326500 1! #3326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3326700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3327000 0! #3327500 1! #3327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3327700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3328000 0! #3328500 1! #3328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3328700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3329000 0! #3329500 1! #3329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3329700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3330000 0! #3330500 1! #3330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3330700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3331000 0! #3331500 1! #3331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3331700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3332000 0! #3332500 1! #3332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3332700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3333000 0! #3333500 1! #3333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3333700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3334000 0! #3334500 1! #3334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3334700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3335000 0! #3335500 1! #3335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3335700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3336000 0! #3336500 1! #3336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3336700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3337000 0! #3337500 1! #3337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3337700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3338000 0! #3338500 1! #3338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3338700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3339000 0! #3339500 1! #3339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3339700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3340000 0! #3340500 1! #3340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3340700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3341000 0! #3341500 1! #3341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3341700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3342000 0! #3342500 1! #3342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3342700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3343000 0! #3343500 1! #3343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #3343700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3344000 0! #3344500 1! #3344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3344700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3345000 0! #3345500 1! #3345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3345700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3346000 0! #3346500 1! #3346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3346700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3347000 0! #3347500 1! #3347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3347700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3348000 0! #3348500 1! #3348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3348700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3349000 0! #3349500 1! #3349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3349700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3350000 0! #3350500 1! #3350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3350700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3351000 0! #3351500 1! #3351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3351700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3352000 0! #3352500 1! #3352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3352700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3353000 0! #3353500 1! #3353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3353700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3354000 0! #3354500 1! #3354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3354700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3355000 0! #3355500 1! #3355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3355700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3356000 0! #3356500 1! #3356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3356700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3357000 0! #3357500 1! #3357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3357700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3358000 0! #3358500 1! #3358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3358700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3359000 0! #3359500 1! #3359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3359700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3360000 0! #3360500 1! #3360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3360700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3361000 0! #3361500 1! #3361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3361700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3362000 0! #3362500 1! #3362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3362700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3363000 0! #3363500 1! #3363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3363700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3364000 0! #3364500 1! #3364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3364700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3365000 0! #3365500 1! #3365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3365700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3366000 0! #3366500 1! #3366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3366700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3367000 0! #3367500 1! #3367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3367700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3368000 0! #3368500 1! #3368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3368700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3369000 0! #3369500 1! #3369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3369700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3370000 0! #3370500 1! #3370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3370700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3371000 0! #3371500 1! #3371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3371700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3372000 0! #3372500 1! #3372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3372700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3373000 0! #3373500 1! #3373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3373700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3374000 0! #3374500 1! #3374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3374700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3375000 0! #3375500 1! #3375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3375700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3376000 0! #3376500 1! #3376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3376700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3377000 0! #3377500 1! #3377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3377700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3378000 0! #3378500 1! #3378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3378700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3379000 0! #3379500 1! #3379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3379700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3380000 0! #3380500 1! #3380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3380700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3381000 0! #3381500 1! #3381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3381700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3382000 0! #3382500 1! #3382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3382700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3383000 0! #3383500 1! #3383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3383700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3384000 0! #3384500 1! #3384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3384700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3385000 0! #3385500 1! #3385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3385700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3386000 0! #3386500 1! #3386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3386700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3387000 0! #3387500 1! #3387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3387700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3388000 0! #3388500 1! #3388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3388700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3389000 0! #3389500 1! #3389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3389700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3390000 0! #3390500 1! #3390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3390700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3391000 0! #3391500 1! #3391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3391700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3392000 0! #3392500 1! #3392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3392700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3393000 0! #3393500 1! #3393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3393700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3394000 0! #3394500 1! #3394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3394700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3395000 0! #3395500 1! #3395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3395700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3396000 0! #3396500 1! #3396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3396700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3397000 0! #3397500 1! #3397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3397700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3398000 0! #3398500 1! #3398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3398700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3399000 0! #3399500 1! #3399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3399700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3400000 0! #3400500 1! #3400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3400700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3401000 0! #3401500 1! #3401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3401700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3402000 0! #3402500 1! #3402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3402700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3403000 0! #3403500 1! #3403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3403700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3404000 0! #3404500 1! #3404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3404700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3405000 0! #3405500 1! #3405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3405700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3406000 0! #3406500 1! #3406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3406700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3407000 0! #3407500 1! #3407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3407700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3408000 0! #3408500 1! #3408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3408700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3409000 0! #3409500 1! #3409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3409700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3410000 0! #3410500 1! #3410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3410700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3411000 0! #3411500 1! #3411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3411700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3412000 0! #3412500 1! #3412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3412700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3413000 0! #3413500 1! #3413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3413700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3414000 0! #3414500 1! #3414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3414700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3415000 0! #3415500 1! #3415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3415700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3416000 0! #3416500 1! #3416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3416700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3417000 0! #3417500 1! #3417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3417700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3418000 0! #3418500 1! #3418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3418700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3419000 0! #3419500 1! #3419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3419700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3420000 0! #3420500 1! #3420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3420700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3421000 0! #3421500 1! #3421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3421700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3422000 0! #3422500 1! #3422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3422700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3423000 0! #3423500 1! #3423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3423700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3424000 0! #3424500 1! #3424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3424700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3425000 0! #3425500 1! #3425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3425700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3426000 0! #3426500 1! #3426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3426700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3427000 0! #3427500 1! #3427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3427700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3428000 0! #3428500 1! #3428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3428700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3429000 0! #3429500 1! #3429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3429700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3430000 0! #3430500 1! #3430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3430700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3431000 0! #3431500 1! #3431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3431700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3432000 0! #3432500 1! #3432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3432700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3433000 0! #3433500 1! #3433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3433700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3434000 0! #3434500 1! #3434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3434700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3435000 0! #3435500 1! #3435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3435700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3436000 0! #3436500 1! #3436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3436700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3437000 0! #3437500 1! #3437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3437700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3438000 0! #3438500 1! #3438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3438700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3439000 0! #3439500 1! #3439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3439700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3440000 0! #3440500 1! #3440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3440700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3441000 0! #3441500 1! #3441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3441700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3442000 0! #3442500 1! #3442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3442700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3443000 0! #3443500 1! #3443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3443700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3444000 0! #3444500 1! #3444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3444700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3445000 0! #3445500 1! #3445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3445700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3446000 0! #3446500 1! #3446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3446700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3447000 0! #3447500 1! #3447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3447700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3448000 0! #3448500 1! #3448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3448700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3449000 0! #3449500 1! #3449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3449700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3450000 0! #3450500 1! #3450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3450700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3451000 0! #3451500 1! #3451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3451700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3452000 0! #3452500 1! #3452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3452700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3453000 0! #3453500 1! #3453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3453700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3454000 0! #3454500 1! #3454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3454700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3455000 0! #3455500 1! #3455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3455700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3456000 0! #3456500 1! #3456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3456700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3457000 0! #3457500 1! #3457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3457700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3458000 0! #3458500 1! #3458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3458700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3459000 0! #3459500 1! #3459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3459700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3460000 0! #3460500 1! #3460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3460700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3461000 0! #3461500 1! #3461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3461700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3462000 0! #3462500 1! #3462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3462700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3463000 0! #3463500 1! #3463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3463700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3464000 0! #3464500 1! #3464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3464700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3465000 0! #3465500 1! #3465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3465700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3466000 0! #3466500 1! #3466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3466700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3467000 0! #3467500 1! #3467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3467700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3468000 0! #3468500 1! #3468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3468700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3469000 0! #3469500 1! #3469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3469700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3470000 0! #3470500 1! #3470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3470700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3471000 0! #3471500 1! #3471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3471700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3472000 0! #3472500 1! #3472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3472700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3473000 0! #3473500 1! #3473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3473700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3474000 0! #3474500 1! #3474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3474700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3475000 0! #3475500 1! #3475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3475700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3476000 0! #3476500 1! #3476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3476700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3477000 0! #3477500 1! #3477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3477700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3478000 0! #3478500 1! #3478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3478700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3479000 0! #3479500 1! #3479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3479700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3480000 0! #3480500 1! #3480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3480700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3481000 0! #3481500 1! #3481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3481700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3482000 0! #3482500 1! #3482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3482700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3483000 0! #3483500 1! #3483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3483700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3484000 0! #3484500 1! #3484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3484700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3485000 0! #3485500 1! #3485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3485700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3486000 0! #3486500 1! #3486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3486700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3487000 0! #3487500 1! #3487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3487700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3488000 0! #3488500 1! #3488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3488700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3489000 0! #3489500 1! #3489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3489700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3490000 0! #3490500 1! #3490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3490700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3491000 0! #3491500 1! #3491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3491700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3492000 0! #3492500 1! #3492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3492700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3493000 0! #3493500 1! #3493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3493700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3494000 0! #3494500 1! #3494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3494700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3495000 0! #3495500 1! #3495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3495700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3496000 0! #3496500 1! #3496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #3496700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b100 g #3497000 0! #3497500 1! #3497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3497700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3498000 0! #3498500 1! #3498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3498700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3499000 0! #3499500 1! #3499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3499700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3500000 0! #3500500 1! #3500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3500700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3501000 0! #3501500 1! #3501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3501700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3502000 0! #3502500 1! #3502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3502700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3503000 0! #3503500 1! #3503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3503700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3504000 0! #3504500 1! #3504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3504700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3505000 0! #3505500 1! #3505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3505700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3506000 0! #3506500 1! #3506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3506700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3507000 0! #3507500 1! #3507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3507700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3508000 0! #3508500 1! #3508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3508700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3509000 0! #3509500 1! #3509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3509700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3510000 0! #3510500 1! #3510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3510700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3511000 0! #3511500 1! #3511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3511700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3512000 0! #3512500 1! #3512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3512700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3513000 0! #3513500 1! #3513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3513700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3514000 0! #3514500 1! #3514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3514700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3515000 0! #3515500 1! #3515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3515700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3516000 0! #3516500 1! #3516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3516700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3517000 0! #3517500 1! #3517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3517700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3518000 0! #3518500 1! #3518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3518700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3519000 0! #3519500 1! #3519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3519700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3520000 0! #3520500 1! #3520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3520700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3521000 0! #3521500 1! #3521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3521700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3522000 0! #3522500 1! #3522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3522700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3523000 0! #3523500 1! #3523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3523700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3524000 0! #3524500 1! #3524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3524700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3525000 0! #3525500 1! #3525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3525700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3526000 0! #3526500 1! #3526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3526700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3527000 0! #3527500 1! #3527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3527700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3528000 0! #3528500 1! #3528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3528700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3529000 0! #3529500 1! #3529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3529700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3530000 0! #3530500 1! #3530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3530700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3531000 0! #3531500 1! #3531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3531700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3532000 0! #3532500 1! #3532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3532700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3533000 0! #3533500 1! #3533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3533700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3534000 0! #3534500 1! #3534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3534700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3535000 0! #3535500 1! #3535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3535700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3536000 0! #3536500 1! #3536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3536700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3537000 0! #3537500 1! #3537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3537700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3538000 0! #3538500 1! #3538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3538700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3539000 0! #3539500 1! #3539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3539700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3540000 0! #3540500 1! #3540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3540700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3541000 0! #3541500 1! #3541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3541700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3542000 0! #3542500 1! #3542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3542700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3543000 0! #3543500 1! #3543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3543700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3544000 0! #3544500 1! #3544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3544700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3545000 0! #3545500 1! #3545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3545700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3546000 0! #3546500 1! #3546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3546700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3547000 0! #3547500 1! #3547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3547700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3548000 0! #3548500 1! #3548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3548700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3549000 0! #3549500 1! #3549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3549700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3550000 0! #3550500 1! #3550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3550700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3551000 0! #3551500 1! #3551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3551700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3552000 0! #3552500 1! #3552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3552700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3553000 0! #3553500 1! #3553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3553700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3554000 0! #3554500 1! #3554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3554700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3555000 0! #3555500 1! #3555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3555700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3556000 0! #3556500 1! #3556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3556700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3557000 0! #3557500 1! #3557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3557700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3558000 0! #3558500 1! #3558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3558700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3559000 0! #3559500 1! #3559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3559700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3560000 0! #3560500 1! #3560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3560700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3561000 0! #3561500 1! #3561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3561700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3562000 0! #3562500 1! #3562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3562700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3563000 0! #3563500 1! #3563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3563700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3564000 0! #3564500 1! #3564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3564700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3565000 0! #3565500 1! #3565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3565700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3566000 0! #3566500 1! #3566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3566700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3567000 0! #3567500 1! #3567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3567700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3568000 0! #3568500 1! #3568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3568700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3569000 0! #3569500 1! #3569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3569700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3570000 0! #3570500 1! #3570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3570700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3571000 0! #3571500 1! #3571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3571700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3572000 0! #3572500 1! #3572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3572700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3573000 0! #3573500 1! #3573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3573700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3574000 0! #3574500 1! #3574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3574700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3575000 0! #3575500 1! #3575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3575700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3576000 0! #3576500 1! #3576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3576700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3577000 0! #3577500 1! #3577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3577700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3578000 0! #3578500 1! #3578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3578700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3579000 0! #3579500 1! #3579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3579700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3580000 0! #3580500 1! #3580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3580700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3581000 0! #3581500 1! #3581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3581700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3582000 0! #3582500 1! #3582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3582700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3583000 0! #3583500 1! #3583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3583700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3584000 0! #3584500 1! #3584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3584700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3585000 0! #3585500 1! #3585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3585700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3586000 0! #3586500 1! #3586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3586700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3587000 0! #3587500 1! #3587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3587700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3588000 0! #3588500 1! #3588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3588700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3589000 0! #3589500 1! #3589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3589700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3590000 0! #3590500 1! #3590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3590700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3591000 0! #3591500 1! #3591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3591700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3592000 0! #3592500 1! #3592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3592700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3593000 0! #3593500 1! #3593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3593700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3594000 0! #3594500 1! #3594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3594700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3595000 0! #3595500 1! #3595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3595700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3596000 0! #3596500 1! #3596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3596700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3597000 0! #3597500 1! #3597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3597700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3598000 0! #3598500 1! #3598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #3598700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3599000 0! #3599500 1! #3599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3599700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3600000 0! #3600500 1! #3600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3600700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3601000 0! #3601500 1! #3601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3601700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3602000 0! #3602500 1! #3602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3602700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3603000 0! #3603500 1! #3603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3603700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3604000 0! #3604500 1! #3604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3604700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3605000 0! #3605500 1! #3605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3605700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3606000 0! #3606500 1! #3606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3606700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3607000 0! #3607500 1! #3607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3607700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3608000 0! #3608500 1! #3608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3608700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3609000 0! #3609500 1! #3609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3609700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3610000 0! #3610500 1! #3610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3610700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3611000 0! #3611500 1! #3611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3611700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3612000 0! #3612500 1! #3612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3612700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3613000 0! #3613500 1! #3613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3613700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3614000 0! #3614500 1! #3614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3614700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3615000 0! #3615500 1! #3615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3615700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3616000 0! #3616500 1! #3616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3616700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3617000 0! #3617500 1! #3617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3617700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3618000 0! #3618500 1! #3618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3618700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3619000 0! #3619500 1! #3619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3619700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3620000 0! #3620500 1! #3620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3620700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3621000 0! #3621500 1! #3621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3621700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3622000 0! #3622500 1! #3622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3622700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3623000 0! #3623500 1! #3623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3623700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3624000 0! #3624500 1! #3624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3624700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3625000 0! #3625500 1! #3625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3625700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3626000 0! #3626500 1! #3626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3626700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3627000 0! #3627500 1! #3627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3627700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3628000 0! #3628500 1! #3628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3628700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3629000 0! #3629500 1! #3629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3629700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3630000 0! #3630500 1! #3630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3630700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3631000 0! #3631500 1! #3631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3631700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3632000 0! #3632500 1! #3632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3632700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3633000 0! #3633500 1! #3633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3633700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3634000 0! #3634500 1! #3634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3634700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3635000 0! #3635500 1! #3635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3635700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3636000 0! #3636500 1! #3636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3636700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3637000 0! #3637500 1! #3637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3637700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3638000 0! #3638500 1! #3638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3638700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3639000 0! #3639500 1! #3639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3639700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3640000 0! #3640500 1! #3640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3640700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3641000 0! #3641500 1! #3641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3641700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3642000 0! #3642500 1! #3642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3642700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3643000 0! #3643500 1! #3643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3643700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3644000 0! #3644500 1! #3644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3644700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3645000 0! #3645500 1! #3645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3645700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3646000 0! #3646500 1! #3646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3646700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3647000 0! #3647500 1! #3647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3647700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3648000 0! #3648500 1! #3648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3648700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3649000 0! #3649500 1! #3649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3649700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3650000 0! #3650500 1! #3650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3650700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3651000 0! #3651500 1! #3651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3651700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3652000 0! #3652500 1! #3652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3652700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3653000 0! #3653500 1! #3653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3653700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3654000 0! #3654500 1! #3654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3654700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3655000 0! #3655500 1! #3655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3655700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3656000 0! #3656500 1! #3656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3656700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3657000 0! #3657500 1! #3657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3657700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3658000 0! #3658500 1! #3658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3658700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3659000 0! #3659500 1! #3659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3659700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3660000 0! #3660500 1! #3660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3660700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3661000 0! #3661500 1! #3661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3661700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3662000 0! #3662500 1! #3662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3662700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3663000 0! #3663500 1! #3663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3663700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3664000 0! #3664500 1! #3664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3664700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3665000 0! #3665500 1! #3665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3665700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3666000 0! #3666500 1! #3666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3666700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3667000 0! #3667500 1! #3667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3667700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3668000 0! #3668500 1! #3668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3668700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3669000 0! #3669500 1! #3669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3669700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3670000 0! #3670500 1! #3670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3670700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3671000 0! #3671500 1! #3671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3671700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3672000 0! #3672500 1! #3672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3672700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3673000 0! #3673500 1! #3673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3673700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3674000 0! #3674500 1! #3674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3674700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3675000 0! #3675500 1! #3675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3675700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3676000 0! #3676500 1! #3676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3676700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3677000 0! #3677500 1! #3677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3677700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3678000 0! #3678500 1! #3678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3678700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3679000 0! #3679500 1! #3679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3679700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3680000 0! #3680500 1! #3680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3680700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3681000 0! #3681500 1! #3681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3681700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3682000 0! #3682500 1! #3682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3682700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3683000 0! #3683500 1! #3683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3683700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3684000 0! #3684500 1! #3684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3684700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3685000 0! #3685500 1! #3685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3685700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3686000 0! #3686500 1! #3686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3686700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3687000 0! #3687500 1! #3687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3687700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3688000 0! #3688500 1! #3688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3688700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3689000 0! #3689500 1! #3689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3689700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3690000 0! #3690500 1! #3690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3690700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3691000 0! #3691500 1! #3691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3691700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3692000 0! #3692500 1! #3692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3692700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3693000 0! #3693500 1! #3693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3693700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3694000 0! #3694500 1! #3694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3694700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3695000 0! #3695500 1! #3695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3695700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3696000 0! #3696500 1! #3696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3696700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3697000 0! #3697500 1! #3697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3697700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3698000 0! #3698500 1! #3698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3698700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3699000 0! #3699500 1! #3699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3699700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3700000 0! #3700500 1! #3700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3700700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3701000 0! #3701500 1! #3701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3701700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3702000 0! #3702500 1! #3702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3702700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3703000 0! #3703500 1! #3703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3703700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3704000 0! #3704500 1! #3704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3704700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3705000 0! #3705500 1! #3705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3705700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3706000 0! #3706500 1! #3706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3706700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3707000 0! #3707500 1! #3707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3707700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3708000 0! #3708500 1! #3708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3708700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3709000 0! #3709500 1! #3709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3709700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3710000 0! #3710500 1! #3710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3710700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3711000 0! #3711500 1! #3711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3711700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3712000 0! #3712500 1! #3712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3712700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3713000 0! #3713500 1! #3713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3713700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3714000 0! #3714500 1! #3714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3714700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3715000 0! #3715500 1! #3715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3715700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3716000 0! #3716500 1! #3716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3716700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3717000 0! #3717500 1! #3717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3717700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3718000 0! #3718500 1! #3718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3718700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3719000 0! #3719500 1! #3719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3719700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3720000 0! #3720500 1! #3720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3720700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3721000 0! #3721500 1! #3721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3721700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3722000 0! #3722500 1! #3722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3722700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3723000 0! #3723500 1! #3723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3723700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3724000 0! #3724500 1! #3724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3724700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3725000 0! #3725500 1! #3725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3725700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3726000 0! #3726500 1! #3726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3726700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3727000 0! #3727500 1! #3727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3727700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3728000 0! #3728500 1! #3728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3728700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3729000 0! #3729500 1! #3729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3729700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3730000 0! #3730500 1! #3730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3730700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3731000 0! #3731500 1! #3731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3731700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3732000 0! #3732500 1! #3732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3732700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3733000 0! #3733500 1! #3733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3733700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3734000 0! #3734500 1! #3734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3734700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3735000 0! #3735500 1! #3735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3735700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3736000 0! #3736500 1! #3736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3736700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3737000 0! #3737500 1! #3737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3737700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3738000 0! #3738500 1! #3738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3738700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3739000 0! #3739500 1! #3739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3739700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3740000 0! #3740500 1! #3740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3740700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3741000 0! #3741500 1! #3741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3741700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3742000 0! #3742500 1! #3742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3742700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3743000 0! #3743500 1! #3743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3743700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3744000 0! #3744500 1! #3744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3744700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3745000 0! #3745500 1! #3745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3745700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3746000 0! #3746500 1! #3746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3746700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3747000 0! #3747500 1! #3747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3747700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3748000 0! #3748500 1! #3748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3748700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3749000 0! #3749500 1! #3749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3749700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3750000 0! #3750500 1! #3750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3750700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3751000 0! #3751500 1! #3751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #3751700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11 g #3752000 0! #3752500 1! #3752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3752700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3753000 0! #3753500 1! #3753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3753700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3754000 0! #3754500 1! #3754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3754700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3755000 0! #3755500 1! #3755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3755700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3756000 0! #3756500 1! #3756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3756700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3757000 0! #3757500 1! #3757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3757700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3758000 0! #3758500 1! #3758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3758700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3759000 0! #3759500 1! #3759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3759700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3760000 0! #3760500 1! #3760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3760700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3761000 0! #3761500 1! #3761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3761700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3762000 0! #3762500 1! #3762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3762700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3763000 0! #3763500 1! #3763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3763700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3764000 0! #3764500 1! #3764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3764700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3765000 0! #3765500 1! #3765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3765700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3766000 0! #3766500 1! #3766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3766700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3767000 0! #3767500 1! #3767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3767700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3768000 0! #3768500 1! #3768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3768700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3769000 0! #3769500 1! #3769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3769700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3770000 0! #3770500 1! #3770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3770700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3771000 0! #3771500 1! #3771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3771700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3772000 0! #3772500 1! #3772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3772700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3773000 0! #3773500 1! #3773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3773700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3774000 0! #3774500 1! #3774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3774700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3775000 0! #3775500 1! #3775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3775700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3776000 0! #3776500 1! #3776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3776700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3777000 0! #3777500 1! #3777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3777700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3778000 0! #3778500 1! #3778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3778700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3779000 0! #3779500 1! #3779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3779700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3780000 0! #3780500 1! #3780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3780700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3781000 0! #3781500 1! #3781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3781700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3782000 0! #3782500 1! #3782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3782700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3783000 0! #3783500 1! #3783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3783700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3784000 0! #3784500 1! #3784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3784700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3785000 0! #3785500 1! #3785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3785700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3786000 0! #3786500 1! #3786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3786700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3787000 0! #3787500 1! #3787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3787700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3788000 0! #3788500 1! #3788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3788700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3789000 0! #3789500 1! #3789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3789700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3790000 0! #3790500 1! #3790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3790700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3791000 0! #3791500 1! #3791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3791700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3792000 0! #3792500 1! #3792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3792700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3793000 0! #3793500 1! #3793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3793700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3794000 0! #3794500 1! #3794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3794700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3795000 0! #3795500 1! #3795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3795700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3796000 0! #3796500 1! #3796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3796700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3797000 0! #3797500 1! #3797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3797700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3798000 0! #3798500 1! #3798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3798700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3799000 0! #3799500 1! #3799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3799700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3800000 0! #3800500 1! #3800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3800700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3801000 0! #3801500 1! #3801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3801700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3802000 0! #3802500 1! #3802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3802700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3803000 0! #3803500 1! #3803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3803700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3804000 0! #3804500 1! #3804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3804700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3805000 0! #3805500 1! #3805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3805700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3806000 0! #3806500 1! #3806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3806700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3807000 0! #3807500 1! #3807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3807700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3808000 0! #3808500 1! #3808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3808700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3809000 0! #3809500 1! #3809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3809700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3810000 0! #3810500 1! #3810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3810700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3811000 0! #3811500 1! #3811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3811700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3812000 0! #3812500 1! #3812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3812700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3813000 0! #3813500 1! #3813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3813700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3814000 0! #3814500 1! #3814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3814700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3815000 0! #3815500 1! #3815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3815700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3816000 0! #3816500 1! #3816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3816700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3817000 0! #3817500 1! #3817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3817700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3818000 0! #3818500 1! #3818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3818700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3819000 0! #3819500 1! #3819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3819700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3820000 0! #3820500 1! #3820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3820700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3821000 0! #3821500 1! #3821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3821700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3822000 0! #3822500 1! #3822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3822700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3823000 0! #3823500 1! #3823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3823700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3824000 0! #3824500 1! #3824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3824700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3825000 0! #3825500 1! #3825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3825700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3826000 0! #3826500 1! #3826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3826700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3827000 0! #3827500 1! #3827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3827700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3828000 0! #3828500 1! #3828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3828700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3829000 0! #3829500 1! #3829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3829700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3830000 0! #3830500 1! #3830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3830700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3831000 0! #3831500 1! #3831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3831700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3832000 0! #3832500 1! #3832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3832700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3833000 0! #3833500 1! #3833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3833700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3834000 0! #3834500 1! #3834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3834700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3835000 0! #3835500 1! #3835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3835700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3836000 0! #3836500 1! #3836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3836700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3837000 0! #3837500 1! #3837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3837700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3838000 0! #3838500 1! #3838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3838700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3839000 0! #3839500 1! #3839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3839700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3840000 0! #3840500 1! #3840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3840700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3841000 0! #3841500 1! #3841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3841700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3842000 0! #3842500 1! #3842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3842700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3843000 0! #3843500 1! #3843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3843700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3844000 0! #3844500 1! #3844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3844700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3845000 0! #3845500 1! #3845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3845700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3846000 0! #3846500 1! #3846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3846700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3847000 0! #3847500 1! #3847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3847700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3848000 0! #3848500 1! #3848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3848700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3849000 0! #3849500 1! #3849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3849700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3850000 0! #3850500 1! #3850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3850700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3851000 0! #3851500 1! #3851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3851700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3852000 0! #3852500 1! #3852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3852700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3853000 0! #3853500 1! #3853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #3853700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3854000 0! #3854500 1! #3854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3854700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3855000 0! #3855500 1! #3855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3855700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3856000 0! #3856500 1! #3856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3856700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3857000 0! #3857500 1! #3857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3857700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3858000 0! #3858500 1! #3858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3858700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3859000 0! #3859500 1! #3859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3859700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3860000 0! #3860500 1! #3860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3860700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3861000 0! #3861500 1! #3861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3861700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3862000 0! #3862500 1! #3862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3862700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3863000 0! #3863500 1! #3863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3863700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3864000 0! #3864500 1! #3864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3864700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3865000 0! #3865500 1! #3865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3865700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3866000 0! #3866500 1! #3866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3866700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3867000 0! #3867500 1! #3867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3867700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3868000 0! #3868500 1! #3868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3868700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3869000 0! #3869500 1! #3869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3869700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3870000 0! #3870500 1! #3870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3870700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3871000 0! #3871500 1! #3871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3871700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3872000 0! #3872500 1! #3872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3872700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3873000 0! #3873500 1! #3873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3873700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3874000 0! #3874500 1! #3874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3874700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3875000 0! #3875500 1! #3875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3875700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3876000 0! #3876500 1! #3876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3876700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3877000 0! #3877500 1! #3877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3877700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3878000 0! #3878500 1! #3878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3878700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3879000 0! #3879500 1! #3879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3879700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3880000 0! #3880500 1! #3880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3880700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3881000 0! #3881500 1! #3881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3881700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3882000 0! #3882500 1! #3882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3882700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3883000 0! #3883500 1! #3883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3883700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3884000 0! #3884500 1! #3884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3884700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3885000 0! #3885500 1! #3885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3885700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3886000 0! #3886500 1! #3886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3886700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3887000 0! #3887500 1! #3887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3887700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3888000 0! #3888500 1! #3888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3888700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3889000 0! #3889500 1! #3889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3889700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3890000 0! #3890500 1! #3890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3890700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3891000 0! #3891500 1! #3891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3891700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3892000 0! #3892500 1! #3892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3892700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3893000 0! #3893500 1! #3893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3893700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3894000 0! #3894500 1! #3894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3894700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3895000 0! #3895500 1! #3895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3895700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3896000 0! #3896500 1! #3896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3896700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3897000 0! #3897500 1! #3897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3897700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3898000 0! #3898500 1! #3898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3898700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3899000 0! #3899500 1! #3899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3899700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3900000 0! #3900500 1! #3900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3900700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3901000 0! #3901500 1! #3901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3901700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3902000 0! #3902500 1! #3902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3902700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3903000 0! #3903500 1! #3903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3903700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3904000 0! #3904500 1! #3904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3904700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3905000 0! #3905500 1! #3905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3905700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3906000 0! #3906500 1! #3906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3906700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3907000 0! #3907500 1! #3907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3907700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3908000 0! #3908500 1! #3908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3908700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3909000 0! #3909500 1! #3909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3909700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3910000 0! #3910500 1! #3910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3910700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3911000 0! #3911500 1! #3911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3911700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3912000 0! #3912500 1! #3912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3912700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3913000 0! #3913500 1! #3913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3913700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3914000 0! #3914500 1! #3914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3914700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3915000 0! #3915500 1! #3915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3915700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3916000 0! #3916500 1! #3916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3916700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3917000 0! #3917500 1! #3917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3917700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3918000 0! #3918500 1! #3918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3918700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3919000 0! #3919500 1! #3919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3919700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3920000 0! #3920500 1! #3920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3920700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3921000 0! #3921500 1! #3921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3921700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3922000 0! #3922500 1! #3922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3922700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3923000 0! #3923500 1! #3923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3923700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3924000 0! #3924500 1! #3924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3924700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3925000 0! #3925500 1! #3925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3925700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3926000 0! #3926500 1! #3926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3926700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3927000 0! #3927500 1! #3927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3927700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3928000 0! #3928500 1! #3928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3928700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3929000 0! #3929500 1! #3929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3929700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3930000 0! #3930500 1! #3930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3930700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3931000 0! #3931500 1! #3931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3931700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3932000 0! #3932500 1! #3932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3932700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3933000 0! #3933500 1! #3933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3933700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3934000 0! #3934500 1! #3934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3934700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3935000 0! #3935500 1! #3935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3935700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3936000 0! #3936500 1! #3936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3936700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3937000 0! #3937500 1! #3937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3937700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3938000 0! #3938500 1! #3938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3938700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3939000 0! #3939500 1! #3939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3939700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3940000 0! #3940500 1! #3940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3940700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3941000 0! #3941500 1! #3941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3941700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3942000 0! #3942500 1! #3942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3942700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3943000 0! #3943500 1! #3943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3943700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3944000 0! #3944500 1! #3944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3944700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3945000 0! #3945500 1! #3945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3945700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3946000 0! #3946500 1! #3946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3946700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3947000 0! #3947500 1! #3947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3947700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3948000 0! #3948500 1! #3948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3948700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3949000 0! #3949500 1! #3949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3949700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3950000 0! #3950500 1! #3950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3950700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3951000 0! #3951500 1! #3951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3951700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3952000 0! #3952500 1! #3952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3952700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3953000 0! #3953500 1! #3953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3953700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3954000 0! #3954500 1! #3954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3954700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3955000 0! #3955500 1! #3955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3955700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3956000 0! #3956500 1! #3956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3956700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3957000 0! #3957500 1! #3957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3957700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3958000 0! #3958500 1! #3958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3958700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3959000 0! #3959500 1! #3959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3959700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3960000 0! #3960500 1! #3960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3960700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3961000 0! #3961500 1! #3961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3961700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3962000 0! #3962500 1! #3962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3962700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3963000 0! #3963500 1! #3963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3963700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3964000 0! #3964500 1! #3964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3964700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3965000 0! #3965500 1! #3965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3965700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3966000 0! #3966500 1! #3966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3966700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3967000 0! #3967500 1! #3967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3967700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3968000 0! #3968500 1! #3968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3968700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3969000 0! #3969500 1! #3969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3969700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3970000 0! #3970500 1! #3970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3970700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3971000 0! #3971500 1! #3971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3971700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3972000 0! #3972500 1! #3972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3972700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3973000 0! #3973500 1! #3973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3973700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3974000 0! #3974500 1! #3974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3974700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3975000 0! #3975500 1! #3975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3975700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3976000 0! #3976500 1! #3976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3976700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3977000 0! #3977500 1! #3977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3977700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3978000 0! #3978500 1! #3978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3978700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3979000 0! #3979500 1! #3979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3979700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3980000 0! #3980500 1! #3980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3980700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3981000 0! #3981500 1! #3981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3981700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3982000 0! #3982500 1! #3982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3982700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3983000 0! #3983500 1! #3983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3983700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3984000 0! #3984500 1! #3984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3984700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3985000 0! #3985500 1! #3985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3985700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3986000 0! #3986500 1! #3986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3986700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3987000 0! #3987500 1! #3987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3987700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3988000 0! #3988500 1! #3988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3988700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3989000 0! #3989500 1! #3989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3989700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3990000 0! #3990500 1! #3990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3990700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3991000 0! #3991500 1! #3991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3991700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3992000 0! #3992500 1! #3992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3992700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3993000 0! #3993500 1! #3993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3993700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3994000 0! #3994500 1! #3994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3994700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3995000 0! #3995500 1! #3995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3995700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3996000 0! #3996500 1! #3996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3996700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3997000 0! #3997500 1! #3997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3997700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3998000 0! #3998500 1! #3998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3998700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #3999000 0! #3999500 1! #3999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #3999700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4000000 0! #4000500 1! #4000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4000700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4001000 0! #4001500 1! #4001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4001700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4002000 0! #4002500 1! #4002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4002700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4003000 0! #4003500 1! #4003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4003700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4004000 0! #4004500 1! #4004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4004700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4005000 0! #4005500 1! #4005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4005700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4006000 0! #4006500 1! #4006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #4006700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b10 g #4007000 0! #4007500 1! #4007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4007700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4008000 0! #4008500 1! #4008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4008700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4009000 0! #4009500 1! #4009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4009700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4010000 0! #4010500 1! #4010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4010700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4011000 0! #4011500 1! #4011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4011700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4012000 0! #4012500 1! #4012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4012700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4013000 0! #4013500 1! #4013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4013700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4014000 0! #4014500 1! #4014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4014700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4015000 0! #4015500 1! #4015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4015700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4016000 0! #4016500 1! #4016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4016700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4017000 0! #4017500 1! #4017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4017700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4018000 0! #4018500 1! #4018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4018700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4019000 0! #4019500 1! #4019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4019700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4020000 0! #4020500 1! #4020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4020700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4021000 0! #4021500 1! #4021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4021700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4022000 0! #4022500 1! #4022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4022700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4023000 0! #4023500 1! #4023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4023700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4024000 0! #4024500 1! #4024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4024700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4025000 0! #4025500 1! #4025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4025700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4026000 0! #4026500 1! #4026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4026700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4027000 0! #4027500 1! #4027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4027700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4028000 0! #4028500 1! #4028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4028700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4029000 0! #4029500 1! #4029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4029700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4030000 0! #4030500 1! #4030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4030700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4031000 0! #4031500 1! #4031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4031700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4032000 0! #4032500 1! #4032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4032700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4033000 0! #4033500 1! #4033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4033700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4034000 0! #4034500 1! #4034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4034700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4035000 0! #4035500 1! #4035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4035700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4036000 0! #4036500 1! #4036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4036700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4037000 0! #4037500 1! #4037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4037700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4038000 0! #4038500 1! #4038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4038700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4039000 0! #4039500 1! #4039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4039700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4040000 0! #4040500 1! #4040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4040700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4041000 0! #4041500 1! #4041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4041700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4042000 0! #4042500 1! #4042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4042700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4043000 0! #4043500 1! #4043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4043700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4044000 0! #4044500 1! #4044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4044700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4045000 0! #4045500 1! #4045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4045700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4046000 0! #4046500 1! #4046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4046700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4047000 0! #4047500 1! #4047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4047700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4048000 0! #4048500 1! #4048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4048700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4049000 0! #4049500 1! #4049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4049700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4050000 0! #4050500 1! #4050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4050700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4051000 0! #4051500 1! #4051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4051700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4052000 0! #4052500 1! #4052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4052700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4053000 0! #4053500 1! #4053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4053700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4054000 0! #4054500 1! #4054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4054700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4055000 0! #4055500 1! #4055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4055700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4056000 0! #4056500 1! #4056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4056700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4057000 0! #4057500 1! #4057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4057700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4058000 0! #4058500 1! #4058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4058700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4059000 0! #4059500 1! #4059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4059700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4060000 0! #4060500 1! #4060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4060700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4061000 0! #4061500 1! #4061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4061700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4062000 0! #4062500 1! #4062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4062700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4063000 0! #4063500 1! #4063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4063700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4064000 0! #4064500 1! #4064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4064700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4065000 0! #4065500 1! #4065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4065700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4066000 0! #4066500 1! #4066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4066700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4067000 0! #4067500 1! #4067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4067700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4068000 0! #4068500 1! #4068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4068700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4069000 0! #4069500 1! #4069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4069700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4070000 0! #4070500 1! #4070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4070700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4071000 0! #4071500 1! #4071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4071700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4072000 0! #4072500 1! #4072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4072700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4073000 0! #4073500 1! #4073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4073700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4074000 0! #4074500 1! #4074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4074700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4075000 0! #4075500 1! #4075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4075700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4076000 0! #4076500 1! #4076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4076700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4077000 0! #4077500 1! #4077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4077700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4078000 0! #4078500 1! #4078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4078700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4079000 0! #4079500 1! #4079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4079700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4080000 0! #4080500 1! #4080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4080700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4081000 0! #4081500 1! #4081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4081700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4082000 0! #4082500 1! #4082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4082700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4083000 0! #4083500 1! #4083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4083700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4084000 0! #4084500 1! #4084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4084700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4085000 0! #4085500 1! #4085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4085700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4086000 0! #4086500 1! #4086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4086700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4087000 0! #4087500 1! #4087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4087700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4088000 0! #4088500 1! #4088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4088700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4089000 0! #4089500 1! #4089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4089700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4090000 0! #4090500 1! #4090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4090700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4091000 0! #4091500 1! #4091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4091700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4092000 0! #4092500 1! #4092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4092700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4093000 0! #4093500 1! #4093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4093700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4094000 0! #4094500 1! #4094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4094700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4095000 0! #4095500 1! #4095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4095700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4096000 0! #4096500 1! #4096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4096700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4097000 0! #4097500 1! #4097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4097700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4098000 0! #4098500 1! #4098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4098700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4099000 0! #4099500 1! #4099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4099700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4100000 0! #4100500 1! #4100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4100700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4101000 0! #4101500 1! #4101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4101700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4102000 0! #4102500 1! #4102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4102700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4103000 0! #4103500 1! #4103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4103700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4104000 0! #4104500 1! #4104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4104700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4105000 0! #4105500 1! #4105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4105700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4106000 0! #4106500 1! #4106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4106700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4107000 0! #4107500 1! #4107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4107700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4108000 0! #4108500 1! #4108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #4108700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4109000 0! #4109500 1! #4109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4109700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4110000 0! #4110500 1! #4110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4110700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4111000 0! #4111500 1! #4111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4111700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4112000 0! #4112500 1! #4112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4112700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4113000 0! #4113500 1! #4113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4113700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4114000 0! #4114500 1! #4114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4114700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4115000 0! #4115500 1! #4115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4115700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4116000 0! #4116500 1! #4116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4116700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4117000 0! #4117500 1! #4117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4117700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4118000 0! #4118500 1! #4118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4118700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4119000 0! #4119500 1! #4119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4119700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4120000 0! #4120500 1! #4120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4120700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4121000 0! #4121500 1! #4121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4121700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4122000 0! #4122500 1! #4122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4122700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4123000 0! #4123500 1! #4123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4123700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4124000 0! #4124500 1! #4124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4124700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4125000 0! #4125500 1! #4125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4125700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4126000 0! #4126500 1! #4126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4126700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4127000 0! #4127500 1! #4127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4127700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4128000 0! #4128500 1! #4128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4128700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4129000 0! #4129500 1! #4129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4129700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4130000 0! #4130500 1! #4130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4130700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4131000 0! #4131500 1! #4131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4131700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4132000 0! #4132500 1! #4132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4132700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4133000 0! #4133500 1! #4133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4133700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4134000 0! #4134500 1! #4134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4134700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4135000 0! #4135500 1! #4135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4135700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4136000 0! #4136500 1! #4136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4136700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4137000 0! #4137500 1! #4137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4137700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4138000 0! #4138500 1! #4138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4138700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4139000 0! #4139500 1! #4139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4139700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4140000 0! #4140500 1! #4140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4140700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4141000 0! #4141500 1! #4141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4141700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4142000 0! #4142500 1! #4142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4142700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4143000 0! #4143500 1! #4143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4143700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4144000 0! #4144500 1! #4144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4144700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4145000 0! #4145500 1! #4145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4145700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4146000 0! #4146500 1! #4146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4146700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4147000 0! #4147500 1! #4147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4147700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4148000 0! #4148500 1! #4148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4148700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4149000 0! #4149500 1! #4149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4149700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4150000 0! #4150500 1! #4150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4150700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4151000 0! #4151500 1! #4151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4151700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4152000 0! #4152500 1! #4152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4152700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4153000 0! #4153500 1! #4153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4153700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4154000 0! #4154500 1! #4154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4154700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4155000 0! #4155500 1! #4155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4155700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4156000 0! #4156500 1! #4156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4156700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4157000 0! #4157500 1! #4157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4157700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4158000 0! #4158500 1! #4158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4158700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4159000 0! #4159500 1! #4159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4159700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4160000 0! #4160500 1! #4160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4160700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4161000 0! #4161500 1! #4161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4161700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4162000 0! #4162500 1! #4162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4162700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4163000 0! #4163500 1! #4163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4163700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4164000 0! #4164500 1! #4164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4164700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4165000 0! #4165500 1! #4165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4165700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4166000 0! #4166500 1! #4166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4166700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4167000 0! #4167500 1! #4167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4167700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4168000 0! #4168500 1! #4168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4168700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4169000 0! #4169500 1! #4169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4169700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4170000 0! #4170500 1! #4170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4170700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4171000 0! #4171500 1! #4171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4171700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4172000 0! #4172500 1! #4172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4172700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4173000 0! #4173500 1! #4173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4173700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4174000 0! #4174500 1! #4174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4174700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4175000 0! #4175500 1! #4175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4175700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4176000 0! #4176500 1! #4176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4176700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4177000 0! #4177500 1! #4177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4177700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4178000 0! #4178500 1! #4178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4178700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4179000 0! #4179500 1! #4179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4179700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4180000 0! #4180500 1! #4180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4180700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4181000 0! #4181500 1! #4181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4181700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4182000 0! #4182500 1! #4182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4182700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4183000 0! #4183500 1! #4183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4183700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4184000 0! #4184500 1! #4184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4184700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4185000 0! #4185500 1! #4185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4185700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4186000 0! #4186500 1! #4186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4186700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4187000 0! #4187500 1! #4187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4187700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4188000 0! #4188500 1! #4188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4188700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4189000 0! #4189500 1! #4189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4189700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4190000 0! #4190500 1! #4190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4190700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4191000 0! #4191500 1! #4191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4191700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4192000 0! #4192500 1! #4192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4192700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4193000 0! #4193500 1! #4193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4193700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4194000 0! #4194500 1! #4194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4194700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4195000 0! #4195500 1! #4195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4195700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4196000 0! #4196500 1! #4196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4196700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4197000 0! #4197500 1! #4197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4197700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4198000 0! #4198500 1! #4198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4198700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4199000 0! #4199500 1! #4199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4199700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4200000 0! #4200500 1! #4200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4200700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4201000 0! #4201500 1! #4201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4201700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4202000 0! #4202500 1! #4202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4202700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4203000 0! #4203500 1! #4203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4203700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4204000 0! #4204500 1! #4204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4204700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4205000 0! #4205500 1! #4205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4205700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4206000 0! #4206500 1! #4206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4206700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4207000 0! #4207500 1! #4207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4207700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4208000 0! #4208500 1! #4208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4208700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4209000 0! #4209500 1! #4209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4209700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4210000 0! #4210500 1! #4210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4210700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4211000 0! #4211500 1! #4211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4211700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4212000 0! #4212500 1! #4212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4212700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4213000 0! #4213500 1! #4213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4213700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4214000 0! #4214500 1! #4214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4214700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4215000 0! #4215500 1! #4215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4215700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4216000 0! #4216500 1! #4216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4216700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4217000 0! #4217500 1! #4217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4217700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4218000 0! #4218500 1! #4218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4218700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4219000 0! #4219500 1! #4219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4219700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4220000 0! #4220500 1! #4220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4220700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4221000 0! #4221500 1! #4221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4221700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4222000 0! #4222500 1! #4222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4222700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4223000 0! #4223500 1! #4223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4223700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4224000 0! #4224500 1! #4224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4224700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4225000 0! #4225500 1! #4225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4225700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4226000 0! #4226500 1! #4226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4226700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4227000 0! #4227500 1! #4227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4227700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4228000 0! #4228500 1! #4228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4228700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4229000 0! #4229500 1! #4229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4229700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4230000 0! #4230500 1! #4230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4230700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4231000 0! #4231500 1! #4231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4231700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4232000 0! #4232500 1! #4232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4232700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4233000 0! #4233500 1! #4233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4233700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4234000 0! #4234500 1! #4234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4234700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4235000 0! #4235500 1! #4235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4235700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4236000 0! #4236500 1! #4236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4236700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4237000 0! #4237500 1! #4237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4237700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4238000 0! #4238500 1! #4238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4238700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4239000 0! #4239500 1! #4239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4239700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4240000 0! #4240500 1! #4240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4240700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4241000 0! #4241500 1! #4241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4241700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4242000 0! #4242500 1! #4242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4242700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4243000 0! #4243500 1! #4243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4243700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4244000 0! #4244500 1! #4244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4244700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4245000 0! #4245500 1! #4245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4245700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4246000 0! #4246500 1! #4246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4246700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4247000 0! #4247500 1! #4247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4247700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4248000 0! #4248500 1! #4248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4248700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4249000 0! #4249500 1! #4249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4249700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4250000 0! #4250500 1! #4250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4250700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4251000 0! #4251500 1! #4251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4251700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4252000 0! #4252500 1! #4252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4252700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4253000 0! #4253500 1! #4253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4253700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4254000 0! #4254500 1! #4254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4254700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4255000 0! #4255500 1! #4255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4255700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4256000 0! #4256500 1! #4256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4256700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4257000 0! #4257500 1! #4257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4257700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4258000 0! #4258500 1! #4258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4258700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4259000 0! #4259500 1! #4259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4259700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4260000 0! #4260500 1! #4260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4260700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4261000 0! #4261500 1! #4261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #4261700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1 g #4262000 0! #4262500 1! #4262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4262700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4263000 0! #4263500 1! #4263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4263700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4264000 0! #4264500 1! #4264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4264700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4265000 0! #4265500 1! #4265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4265700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4266000 0! #4266500 1! #4266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4266700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4267000 0! #4267500 1! #4267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4267700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4268000 0! #4268500 1! #4268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4268700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4269000 0! #4269500 1! #4269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4269700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4270000 0! #4270500 1! #4270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4270700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4271000 0! #4271500 1! #4271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4271700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4272000 0! #4272500 1! #4272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4272700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4273000 0! #4273500 1! #4273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4273700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4274000 0! #4274500 1! #4274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4274700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4275000 0! #4275500 1! #4275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4275700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4276000 0! #4276500 1! #4276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4276700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4277000 0! #4277500 1! #4277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4277700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4278000 0! #4278500 1! #4278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4278700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4279000 0! #4279500 1! #4279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4279700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4280000 0! #4280500 1! #4280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4280700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4281000 0! #4281500 1! #4281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4281700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4282000 0! #4282500 1! #4282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4282700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4283000 0! #4283500 1! #4283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4283700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4284000 0! #4284500 1! #4284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4284700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4285000 0! #4285500 1! #4285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4285700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4286000 0! #4286500 1! #4286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4286700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4287000 0! #4287500 1! #4287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4287700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4288000 0! #4288500 1! #4288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4288700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4289000 0! #4289500 1! #4289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4289700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4290000 0! #4290500 1! #4290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4290700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4291000 0! #4291500 1! #4291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4291700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4292000 0! #4292500 1! #4292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4292700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4293000 0! #4293500 1! #4293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4293700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4294000 0! #4294500 1! #4294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4294700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4295000 0! #4295500 1! #4295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4295700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4296000 0! #4296500 1! #4296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4296700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4297000 0! #4297500 1! #4297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4297700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4298000 0! #4298500 1! #4298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4298700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4299000 0! #4299500 1! #4299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4299700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4300000 0! #4300500 1! #4300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4300700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4301000 0! #4301500 1! #4301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4301700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4302000 0! #4302500 1! #4302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4302700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4303000 0! #4303500 1! #4303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4303700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4304000 0! #4304500 1! #4304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4304700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4305000 0! #4305500 1! #4305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4305700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4306000 0! #4306500 1! #4306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4306700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4307000 0! #4307500 1! #4307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4307700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4308000 0! #4308500 1! #4308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4308700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4309000 0! #4309500 1! #4309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4309700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4310000 0! #4310500 1! #4310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4310700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4311000 0! #4311500 1! #4311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4311700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4312000 0! #4312500 1! #4312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4312700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4313000 0! #4313500 1! #4313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4313700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4314000 0! #4314500 1! #4314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4314700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4315000 0! #4315500 1! #4315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4315700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4316000 0! #4316500 1! #4316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4316700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4317000 0! #4317500 1! #4317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4317700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4318000 0! #4318500 1! #4318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4318700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4319000 0! #4319500 1! #4319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4319700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4320000 0! #4320500 1! #4320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4320700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4321000 0! #4321500 1! #4321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4321700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4322000 0! #4322500 1! #4322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4322700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4323000 0! #4323500 1! #4323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4323700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4324000 0! #4324500 1! #4324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4324700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4325000 0! #4325500 1! #4325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4325700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4326000 0! #4326500 1! #4326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4326700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4327000 0! #4327500 1! #4327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4327700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4328000 0! #4328500 1! #4328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4328700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4329000 0! #4329500 1! #4329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4329700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4330000 0! #4330500 1! #4330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4330700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4331000 0! #4331500 1! #4331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4331700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4332000 0! #4332500 1! #4332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4332700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4333000 0! #4333500 1! #4333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4333700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4334000 0! #4334500 1! #4334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4334700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4335000 0! #4335500 1! #4335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4335700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4336000 0! #4336500 1! #4336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4336700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4337000 0! #4337500 1! #4337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4337700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4338000 0! #4338500 1! #4338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4338700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4339000 0! #4339500 1! #4339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4339700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4340000 0! #4340500 1! #4340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4340700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4341000 0! #4341500 1! #4341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4341700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4342000 0! #4342500 1! #4342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4342700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4343000 0! #4343500 1! #4343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4343700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4344000 0! #4344500 1! #4344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4344700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4345000 0! #4345500 1! #4345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4345700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4346000 0! #4346500 1! #4346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4346700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4347000 0! #4347500 1! #4347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4347700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4348000 0! #4348500 1! #4348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4348700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4349000 0! #4349500 1! #4349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4349700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4350000 0! #4350500 1! #4350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4350700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4351000 0! #4351500 1! #4351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4351700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4352000 0! #4352500 1! #4352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4352700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4353000 0! #4353500 1! #4353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4353700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4354000 0! #4354500 1! #4354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4354700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4355000 0! #4355500 1! #4355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4355700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4356000 0! #4356500 1! #4356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4356700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4357000 0! #4357500 1! #4357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4357700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4358000 0! #4358500 1! #4358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4358700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4359000 0! #4359500 1! #4359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4359700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4360000 0! #4360500 1! #4360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4360700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4361000 0! #4361500 1! #4361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4361700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4362000 0! #4362500 1! #4362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4362700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4363000 0! #4363500 1! #4363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #4363700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4364000 0! #4364500 1! #4364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4364700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4365000 0! #4365500 1! #4365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4365700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4366000 0! #4366500 1! #4366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4366700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4367000 0! #4367500 1! #4367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4367700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4368000 0! #4368500 1! #4368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4368700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4369000 0! #4369500 1! #4369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4369700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4370000 0! #4370500 1! #4370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4370700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4371000 0! #4371500 1! #4371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4371700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4372000 0! #4372500 1! #4372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4372700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4373000 0! #4373500 1! #4373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4373700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4374000 0! #4374500 1! #4374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4374700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4375000 0! #4375500 1! #4375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4375700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4376000 0! #4376500 1! #4376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4376700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4377000 0! #4377500 1! #4377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4377700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4378000 0! #4378500 1! #4378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4378700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4379000 0! #4379500 1! #4379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4379700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4380000 0! #4380500 1! #4380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4380700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4381000 0! #4381500 1! #4381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4381700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4382000 0! #4382500 1! #4382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4382700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4383000 0! #4383500 1! #4383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4383700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4384000 0! #4384500 1! #4384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4384700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4385000 0! #4385500 1! #4385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4385700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4386000 0! #4386500 1! #4386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4386700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4387000 0! #4387500 1! #4387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4387700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4388000 0! #4388500 1! #4388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4388700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4389000 0! #4389500 1! #4389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4389700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4390000 0! #4390500 1! #4390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4390700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4391000 0! #4391500 1! #4391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4391700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4392000 0! #4392500 1! #4392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4392700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4393000 0! #4393500 1! #4393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4393700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4394000 0! #4394500 1! #4394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4394700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4395000 0! #4395500 1! #4395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4395700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4396000 0! #4396500 1! #4396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4396700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4397000 0! #4397500 1! #4397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4397700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4398000 0! #4398500 1! #4398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4398700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4399000 0! #4399500 1! #4399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4399700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4400000 0! #4400500 1! #4400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4400700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4401000 0! #4401500 1! #4401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4401700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4402000 0! #4402500 1! #4402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4402700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4403000 0! #4403500 1! #4403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4403700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4404000 0! #4404500 1! #4404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4404700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4405000 0! #4405500 1! #4405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4405700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4406000 0! #4406500 1! #4406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4406700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4407000 0! #4407500 1! #4407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4407700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4408000 0! #4408500 1! #4408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4408700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4409000 0! #4409500 1! #4409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4409700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4410000 0! #4410500 1! #4410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4410700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4411000 0! #4411500 1! #4411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4411700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4412000 0! #4412500 1! #4412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4412700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4413000 0! #4413500 1! #4413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4413700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4414000 0! #4414500 1! #4414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4414700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4415000 0! #4415500 1! #4415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4415700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4416000 0! #4416500 1! #4416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4416700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4417000 0! #4417500 1! #4417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4417700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4418000 0! #4418500 1! #4418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4418700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4419000 0! #4419500 1! #4419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4419700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4420000 0! #4420500 1! #4420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4420700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4421000 0! #4421500 1! #4421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4421700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4422000 0! #4422500 1! #4422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4422700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4423000 0! #4423500 1! #4423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4423700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4424000 0! #4424500 1! #4424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4424700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4425000 0! #4425500 1! #4425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4425700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4426000 0! #4426500 1! #4426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4426700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4427000 0! #4427500 1! #4427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4427700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4428000 0! #4428500 1! #4428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4428700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4429000 0! #4429500 1! #4429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4429700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4430000 0! #4430500 1! #4430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4430700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4431000 0! #4431500 1! #4431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4431700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4432000 0! #4432500 1! #4432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4432700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4433000 0! #4433500 1! #4433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4433700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4434000 0! #4434500 1! #4434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4434700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4435000 0! #4435500 1! #4435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4435700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4436000 0! #4436500 1! #4436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4436700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4437000 0! #4437500 1! #4437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4437700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4438000 0! #4438500 1! #4438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4438700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4439000 0! #4439500 1! #4439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4439700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4440000 0! #4440500 1! #4440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4440700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4441000 0! #4441500 1! #4441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4441700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4442000 0! #4442500 1! #4442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4442700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4443000 0! #4443500 1! #4443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4443700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4444000 0! #4444500 1! #4444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4444700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4445000 0! #4445500 1! #4445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4445700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4446000 0! #4446500 1! #4446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4446700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4447000 0! #4447500 1! #4447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4447700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4448000 0! #4448500 1! #4448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4448700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4449000 0! #4449500 1! #4449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4449700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4450000 0! #4450500 1! #4450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4450700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4451000 0! #4451500 1! #4451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4451700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4452000 0! #4452500 1! #4452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4452700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4453000 0! #4453500 1! #4453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4453700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4454000 0! #4454500 1! #4454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4454700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4455000 0! #4455500 1! #4455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4455700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4456000 0! #4456500 1! #4456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4456700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4457000 0! #4457500 1! #4457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4457700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4458000 0! #4458500 1! #4458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4458700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4459000 0! #4459500 1! #4459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4459700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4460000 0! #4460500 1! #4460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4460700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4461000 0! #4461500 1! #4461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4461700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4462000 0! #4462500 1! #4462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4462700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4463000 0! #4463500 1! #4463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4463700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4464000 0! #4464500 1! #4464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4464700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4465000 0! #4465500 1! #4465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #4465700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4466000 0! #4466500 1! #4466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4466700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4467000 0! #4467500 1! #4467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4467700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4468000 0! #4468500 1! #4468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4468700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4469000 0! #4469500 1! #4469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4469700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4470000 0! #4470500 1! #4470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4470700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4471000 0! #4471500 1! #4471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4471700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4472000 0! #4472500 1! #4472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4472700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4473000 0! #4473500 1! #4473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4473700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4474000 0! #4474500 1! #4474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4474700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4475000 0! #4475500 1! #4475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4475700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4476000 0! #4476500 1! #4476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4476700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4477000 0! #4477500 1! #4477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4477700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4478000 0! #4478500 1! #4478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4478700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4479000 0! #4479500 1! #4479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4479700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4480000 0! #4480500 1! #4480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4480700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4481000 0! #4481500 1! #4481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4481700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4482000 0! #4482500 1! #4482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4482700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4483000 0! #4483500 1! #4483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4483700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4484000 0! #4484500 1! #4484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4484700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4485000 0! #4485500 1! #4485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4485700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4486000 0! #4486500 1! #4486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4486700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4487000 0! #4487500 1! #4487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4487700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4488000 0! #4488500 1! #4488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4488700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4489000 0! #4489500 1! #4489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4489700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4490000 0! #4490500 1! #4490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4490700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4491000 0! #4491500 1! #4491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4491700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4492000 0! #4492500 1! #4492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4492700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4493000 0! #4493500 1! #4493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4493700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4494000 0! #4494500 1! #4494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4494700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4495000 0! #4495500 1! #4495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4495700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4496000 0! #4496500 1! #4496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4496700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4497000 0! #4497500 1! #4497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4497700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4498000 0! #4498500 1! #4498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4498700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4499000 0! #4499500 1! #4499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4499700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4500000 0! #4500500 1! #4500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4500700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4501000 0! #4501500 1! #4501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4501700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4502000 0! #4502500 1! #4502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4502700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4503000 0! #4503500 1! #4503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4503700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4504000 0! #4504500 1! #4504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4504700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4505000 0! #4505500 1! #4505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4505700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4506000 0! #4506500 1! #4506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4506700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4507000 0! #4507500 1! #4507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4507700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4508000 0! #4508500 1! #4508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4508700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4509000 0! #4509500 1! #4509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4509700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4510000 0! #4510500 1! #4510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4510700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4511000 0! #4511500 1! #4511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4511700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4512000 0! #4512500 1! #4512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4512700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4513000 0! #4513500 1! #4513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4513700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4514000 0! #4514500 1! #4514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4514700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4515000 0! #4515500 1! #4515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4515700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4516000 0! #4516500 1! #4516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #4516700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b0 g b1 c 1h #4517000 0! #4517500 1! #4517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4517700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4518000 0! #4518500 1! #4518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4518700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4519000 0! #4519500 1! #4519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4519700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4520000 0! #4520500 1! #4520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4520700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4521000 0! #4521500 1! #4521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4521700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4522000 0! #4522500 1! #4522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4522700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4523000 0! #4523500 1! #4523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4523700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4524000 0! #4524500 1! #4524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4524700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4525000 0! #4525500 1! #4525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4525700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4526000 0! #4526500 1! #4526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4526700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4527000 0! #4527500 1! #4527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4527700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4528000 0! #4528500 1! #4528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4528700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4529000 0! #4529500 1! #4529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4529700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4530000 0! #4530500 1! #4530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4530700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4531000 0! #4531500 1! #4531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4531700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4532000 0! #4532500 1! #4532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4532700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4533000 0! #4533500 1! #4533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4533700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4534000 0! #4534500 1! #4534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4534700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4535000 0! #4535500 1! #4535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4535700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4536000 0! #4536500 1! #4536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4536700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4537000 0! #4537500 1! #4537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4537700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4538000 0! #4538500 1! #4538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4538700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4539000 0! #4539500 1! #4539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4539700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4540000 0! #4540500 1! #4540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4540700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4541000 0! #4541500 1! #4541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4541700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4542000 0! #4542500 1! #4542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4542700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4543000 0! #4543500 1! #4543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4543700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4544000 0! #4544500 1! #4544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4544700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4545000 0! #4545500 1! #4545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4545700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4546000 0! #4546500 1! #4546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4546700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4547000 0! #4547500 1! #4547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4547700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4548000 0! #4548500 1! #4548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4548700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4549000 0! #4549500 1! #4549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4549700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4550000 0! #4550500 1! #4550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4550700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4551000 0! #4551500 1! #4551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4551700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4552000 0! #4552500 1! #4552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4552700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4553000 0! #4553500 1! #4553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4553700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4554000 0! #4554500 1! #4554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4554700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4555000 0! #4555500 1! #4555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4555700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4556000 0! #4556500 1! #4556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4556700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4557000 0! #4557500 1! #4557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4557700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4558000 0! #4558500 1! #4558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4558700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4559000 0! #4559500 1! #4559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4559700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4560000 0! #4560500 1! #4560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4560700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4561000 0! #4561500 1! #4561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4561700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4562000 0! #4562500 1! #4562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4562700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4563000 0! #4563500 1! #4563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4563700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4564000 0! #4564500 1! #4564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4564700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4565000 0! #4565500 1! #4565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4565700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4566000 0! #4566500 1! #4566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4566700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4567000 0! #4567500 1! #4567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4567700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4568000 0! #4568500 1! #4568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4568700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4569000 0! #4569500 1! #4569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4569700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4570000 0! #4570500 1! #4570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4570700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4571000 0! #4571500 1! #4571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4571700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4572000 0! #4572500 1! #4572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4572700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4573000 0! #4573500 1! #4573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4573700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4574000 0! #4574500 1! #4574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4574700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4575000 0! #4575500 1! #4575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4575700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4576000 0! #4576500 1! #4576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4576700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4577000 0! #4577500 1! #4577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4577700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4578000 0! #4578500 1! #4578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4578700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4579000 0! #4579500 1! #4579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4579700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4580000 0! #4580500 1! #4580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4580700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4581000 0! #4581500 1! #4581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4581700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4582000 0! #4582500 1! #4582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4582700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4583000 0! #4583500 1! #4583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4583700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4584000 0! #4584500 1! #4584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4584700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4585000 0! #4585500 1! #4585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4585700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4586000 0! #4586500 1! #4586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4586700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4587000 0! #4587500 1! #4587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4587700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4588000 0! #4588500 1! #4588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4588700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4589000 0! #4589500 1! #4589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4589700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4590000 0! #4590500 1! #4590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4590700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4591000 0! #4591500 1! #4591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4591700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4592000 0! #4592500 1! #4592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4592700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4593000 0! #4593500 1! #4593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4593700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4594000 0! #4594500 1! #4594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4594700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4595000 0! #4595500 1! #4595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4595700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4596000 0! #4596500 1! #4596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4596700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4597000 0! #4597500 1! #4597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4597700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4598000 0! #4598500 1! #4598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4598700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4599000 0! #4599500 1! #4599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4599700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4600000 0! #4600500 1! #4600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4600700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4601000 0! #4601500 1! #4601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4601700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4602000 0! #4602500 1! #4602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4602700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4603000 0! #4603500 1! #4603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4603700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4604000 0! #4604500 1! #4604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4604700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4605000 0! #4605500 1! #4605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4605700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4606000 0! #4606500 1! #4606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4606700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4607000 0! #4607500 1! #4607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4607700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4608000 0! #4608500 1! #4608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4608700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4609000 0! #4609500 1! #4609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4609700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4610000 0! #4610500 1! #4610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4610700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4611000 0! #4611500 1! #4611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4611700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4612000 0! #4612500 1! #4612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4612700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4613000 0! #4613500 1! #4613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4613700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4614000 0! #4614500 1! #4614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4614700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4615000 0! #4615500 1! #4615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4615700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4616000 0! #4616500 1! #4616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4616700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4617000 0! #4617500 1! #4617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4617700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4618000 0! #4618500 1! #4618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #4618700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11 q b1 ] 0j 0O #4619000 0! #4619500 1! #4619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4619700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4620000 0! #4620500 1! #4620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4620700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4621000 0! #4621500 1! #4621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4621700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4622000 0! #4622500 1! #4622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4622700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4623000 0! #4623500 1! #4623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4623700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4624000 0! #4624500 1! #4624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4624700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4625000 0! #4625500 1! #4625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4625700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4626000 0! #4626500 1! #4626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4626700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4627000 0! #4627500 1! #4627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4627700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4628000 0! #4628500 1! #4628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4628700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4629000 0! #4629500 1! #4629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4629700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4630000 0! #4630500 1! #4630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4630700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4631000 0! #4631500 1! #4631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4631700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4632000 0! #4632500 1! #4632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4632700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4633000 0! #4633500 1! #4633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4633700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4634000 0! #4634500 1! #4634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4634700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4635000 0! #4635500 1! #4635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4635700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4636000 0! #4636500 1! #4636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4636700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4637000 0! #4637500 1! #4637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4637700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4638000 0! #4638500 1! #4638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4638700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4639000 0! #4639500 1! #4639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4639700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4640000 0! #4640500 1! #4640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4640700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4641000 0! #4641500 1! #4641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4641700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4642000 0! #4642500 1! #4642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4642700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4643000 0! #4643500 1! #4643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4643700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4644000 0! #4644500 1! #4644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4644700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4645000 0! #4645500 1! #4645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4645700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4646000 0! #4646500 1! #4646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4646700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4647000 0! #4647500 1! #4647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4647700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4648000 0! #4648500 1! #4648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4648700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4649000 0! #4649500 1! #4649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4649700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4650000 0! #4650500 1! #4650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4650700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4651000 0! #4651500 1! #4651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4651700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4652000 0! #4652500 1! #4652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4652700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4653000 0! #4653500 1! #4653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4653700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4654000 0! #4654500 1! #4654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4654700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4655000 0! #4655500 1! #4655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4655700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4656000 0! #4656500 1! #4656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4656700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4657000 0! #4657500 1! #4657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4657700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4658000 0! #4658500 1! #4658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4658700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4659000 0! #4659500 1! #4659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4659700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4660000 0! #4660500 1! #4660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4660700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4661000 0! #4661500 1! #4661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4661700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4662000 0! #4662500 1! #4662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4662700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4663000 0! #4663500 1! #4663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4663700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4664000 0! #4664500 1! #4664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4664700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4665000 0! #4665500 1! #4665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4665700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4666000 0! #4666500 1! #4666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4666700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4667000 0! #4667500 1! #4667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4667700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4668000 0! #4668500 1! #4668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4668700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4669000 0! #4669500 1! #4669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4669700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4670000 0! #4670500 1! #4670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4670700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4671000 0! #4671500 1! #4671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4671700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4672000 0! #4672500 1! #4672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4672700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4673000 0! #4673500 1! #4673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4673700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4674000 0! #4674500 1! #4674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4674700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4675000 0! #4675500 1! #4675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4675700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4676000 0! #4676500 1! #4676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4676700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4677000 0! #4677500 1! #4677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4677700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4678000 0! #4678500 1! #4678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4678700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4679000 0! #4679500 1! #4679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4679700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4680000 0! #4680500 1! #4680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4680700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4681000 0! #4681500 1! #4681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4681700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4682000 0! #4682500 1! #4682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4682700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4683000 0! #4683500 1! #4683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4683700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4684000 0! #4684500 1! #4684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4684700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4685000 0! #4685500 1! #4685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4685700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4686000 0! #4686500 1! #4686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4686700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4687000 0! #4687500 1! #4687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4687700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4688000 0! #4688500 1! #4688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4688700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4689000 0! #4689500 1! #4689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4689700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4690000 0! #4690500 1! #4690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4690700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4691000 0! #4691500 1! #4691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4691700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4692000 0! #4692500 1! #4692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4692700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4693000 0! #4693500 1! #4693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4693700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4694000 0! #4694500 1! #4694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4694700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4695000 0! #4695500 1! #4695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4695700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4696000 0! #4696500 1! #4696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4696700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4697000 0! #4697500 1! #4697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4697700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4698000 0! #4698500 1! #4698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4698700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4699000 0! #4699500 1! #4699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4699700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4700000 0! #4700500 1! #4700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4700700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4701000 0! #4701500 1! #4701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4701700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4702000 0! #4702500 1! #4702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4702700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4703000 0! #4703500 1! #4703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4703700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4704000 0! #4704500 1! #4704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4704700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4705000 0! #4705500 1! #4705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4705700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4706000 0! #4706500 1! #4706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4706700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4707000 0! #4707500 1! #4707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4707700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4708000 0! #4708500 1! #4708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4708700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4709000 0! #4709500 1! #4709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4709700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4710000 0! #4710500 1! #4710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4710700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4711000 0! #4711500 1! #4711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4711700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4712000 0! #4712500 1! #4712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4712700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4713000 0! #4713500 1! #4713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4713700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4714000 0! #4714500 1! #4714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4714700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4715000 0! #4715500 1! #4715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4715700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4716000 0! #4716500 1! #4716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4716700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4717000 0! #4717500 1! #4717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4717700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4718000 0! #4718500 1! #4718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4718700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4719000 0! #4719500 1! #4719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4719700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4720000 0! #4720500 1! #4720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4720700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4721000 0! #4721500 1! #4721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4721700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4722000 0! #4722500 1! #4722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4722700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4723000 0! #4723500 1! #4723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4723700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4724000 0! #4724500 1! #4724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4724700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4725000 0! #4725500 1! #4725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4725700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4726000 0! #4726500 1! #4726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4726700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4727000 0! #4727500 1! #4727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4727700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4728000 0! #4728500 1! #4728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4728700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4729000 0! #4729500 1! #4729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4729700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4730000 0! #4730500 1! #4730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4730700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4731000 0! #4731500 1! #4731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4731700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4732000 0! #4732500 1! #4732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4732700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4733000 0! #4733500 1! #4733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4733700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4734000 0! #4734500 1! #4734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4734700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4735000 0! #4735500 1! #4735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4735700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4736000 0! #4736500 1! #4736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4736700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4737000 0! #4737500 1! #4737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4737700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4738000 0! #4738500 1! #4738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4738700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4739000 0! #4739500 1! #4739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4739700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4740000 0! #4740500 1! #4740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4740700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4741000 0! #4741500 1! #4741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4741700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4742000 0! #4742500 1! #4742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4742700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4743000 0! #4743500 1! #4743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4743700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4744000 0! #4744500 1! #4744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4744700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4745000 0! #4745500 1! #4745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4745700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4746000 0! #4746500 1! #4746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4746700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4747000 0! #4747500 1! #4747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4747700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4748000 0! #4748500 1! #4748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4748700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4749000 0! #4749500 1! #4749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4749700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4750000 0! #4750500 1! #4750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4750700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4751000 0! #4751500 1! #4751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4751700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4752000 0! #4752500 1! #4752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4752700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4753000 0! #4753500 1! #4753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4753700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4754000 0! #4754500 1! #4754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4754700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4755000 0! #4755500 1! #4755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4755700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4756000 0! #4756500 1! #4756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4756700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4757000 0! #4757500 1! #4757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4757700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4758000 0! #4758500 1! #4758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4758700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4759000 0! #4759500 1! #4759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4759700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4760000 0! #4760500 1! #4760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4760700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4761000 0! #4761500 1! #4761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4761700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4762000 0! #4762500 1! #4762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4762700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4763000 0! #4763500 1! #4763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4763700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4764000 0! #4764500 1! #4764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4764700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4765000 0! #4765500 1! #4765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4765700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4766000 0! #4766500 1! #4766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4766700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4767000 0! #4767500 1! #4767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4767700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4768000 0! #4768500 1! #4768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4768700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4769000 0! #4769500 1! #4769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4769700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4770000 0! #4770500 1! #4770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4770700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4771000 0! #4771500 1! #4771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #4771700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b111 g b10 c 0h #4772000 0! #4772500 1! #4772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4772700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4773000 0! #4773500 1! #4773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4773700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4774000 0! #4774500 1! #4774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4774700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4775000 0! #4775500 1! #4775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4775700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4776000 0! #4776500 1! #4776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4776700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4777000 0! #4777500 1! #4777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4777700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4778000 0! #4778500 1! #4778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4778700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4779000 0! #4779500 1! #4779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4779700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4780000 0! #4780500 1! #4780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4780700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4781000 0! #4781500 1! #4781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4781700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4782000 0! #4782500 1! #4782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4782700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4783000 0! #4783500 1! #4783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4783700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4784000 0! #4784500 1! #4784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4784700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4785000 0! #4785500 1! #4785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4785700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4786000 0! #4786500 1! #4786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4786700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4787000 0! #4787500 1! #4787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4787700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4788000 0! #4788500 1! #4788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4788700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4789000 0! #4789500 1! #4789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4789700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4790000 0! #4790500 1! #4790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4790700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4791000 0! #4791500 1! #4791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4791700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4792000 0! #4792500 1! #4792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4792700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4793000 0! #4793500 1! #4793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4793700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4794000 0! #4794500 1! #4794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4794700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4795000 0! #4795500 1! #4795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4795700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4796000 0! #4796500 1! #4796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4796700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4797000 0! #4797500 1! #4797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4797700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4798000 0! #4798500 1! #4798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4798700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4799000 0! #4799500 1! #4799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4799700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4800000 0! #4800500 1! #4800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4800700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4801000 0! #4801500 1! #4801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4801700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4802000 0! #4802500 1! #4802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4802700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4803000 0! #4803500 1! #4803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4803700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4804000 0! #4804500 1! #4804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4804700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4805000 0! #4805500 1! #4805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4805700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4806000 0! #4806500 1! #4806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4806700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4807000 0! #4807500 1! #4807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4807700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4808000 0! #4808500 1! #4808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4808700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4809000 0! #4809500 1! #4809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4809700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4810000 0! #4810500 1! #4810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4810700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4811000 0! #4811500 1! #4811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4811700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4812000 0! #4812500 1! #4812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4812700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4813000 0! #4813500 1! #4813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4813700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4814000 0! #4814500 1! #4814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4814700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4815000 0! #4815500 1! #4815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4815700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4816000 0! #4816500 1! #4816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4816700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4817000 0! #4817500 1! #4817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4817700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4818000 0! #4818500 1! #4818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4818700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4819000 0! #4819500 1! #4819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4819700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4820000 0! #4820500 1! #4820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4820700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4821000 0! #4821500 1! #4821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4821700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4822000 0! #4822500 1! #4822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4822700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4823000 0! #4823500 1! #4823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4823700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4824000 0! #4824500 1! #4824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4824700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4825000 0! #4825500 1! #4825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4825700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4826000 0! #4826500 1! #4826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4826700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4827000 0! #4827500 1! #4827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4827700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4828000 0! #4828500 1! #4828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4828700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4829000 0! #4829500 1! #4829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4829700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4830000 0! #4830500 1! #4830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4830700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4831000 0! #4831500 1! #4831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4831700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4832000 0! #4832500 1! #4832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4832700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4833000 0! #4833500 1! #4833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4833700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4834000 0! #4834500 1! #4834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4834700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4835000 0! #4835500 1! #4835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4835700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4836000 0! #4836500 1! #4836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4836700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4837000 0! #4837500 1! #4837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4837700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4838000 0! #4838500 1! #4838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4838700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4839000 0! #4839500 1! #4839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4839700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4840000 0! #4840500 1! #4840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4840700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4841000 0! #4841500 1! #4841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4841700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4842000 0! #4842500 1! #4842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4842700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4843000 0! #4843500 1! #4843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4843700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4844000 0! #4844500 1! #4844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4844700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4845000 0! #4845500 1! #4845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4845700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4846000 0! #4846500 1! #4846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4846700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4847000 0! #4847500 1! #4847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4847700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4848000 0! #4848500 1! #4848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4848700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4849000 0! #4849500 1! #4849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4849700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4850000 0! #4850500 1! #4850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4850700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4851000 0! #4851500 1! #4851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4851700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4852000 0! #4852500 1! #4852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4852700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4853000 0! #4853500 1! #4853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4853700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4854000 0! #4854500 1! #4854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4854700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4855000 0! #4855500 1! #4855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4855700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4856000 0! #4856500 1! #4856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4856700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4857000 0! #4857500 1! #4857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4857700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4858000 0! #4858500 1! #4858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4858700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4859000 0! #4859500 1! #4859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4859700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4860000 0! #4860500 1! #4860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4860700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4861000 0! #4861500 1! #4861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4861700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4862000 0! #4862500 1! #4862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4862700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4863000 0! #4863500 1! #4863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4863700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4864000 0! #4864500 1! #4864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4864700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4865000 0! #4865500 1! #4865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4865700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4866000 0! #4866500 1! #4866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4866700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4867000 0! #4867500 1! #4867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4867700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4868000 0! #4868500 1! #4868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4868700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4869000 0! #4869500 1! #4869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4869700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4870000 0! #4870500 1! #4870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4870700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4871000 0! #4871500 1! #4871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4871700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4872000 0! #4872500 1! #4872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4872700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4873000 0! #4873500 1! #4873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #4873700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1j b100 q 1i 1O #4874000 0! #4874500 1! #4874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4874700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4875000 0! #4875500 1! #4875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4875700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4876000 0! #4876500 1! #4876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4876700 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #4877000 0! #4877500 1! #4877600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4878000 0! #4878500 1! #4878600 1E 1F 1G b10100101 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b10000000 C 1H #4879000 0! #4879500 1! #4879600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4879700 1E 1F 1G b10000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #4880000 0! #4880500 1! #4880600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4881000 0! #4881500 1! #4881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #4882000 0! #4882500 1! #4882600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4883000 0! #4883500 1! #4883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4884000 0! #4884500 1! #4884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4885000 0! #4885500 1! #4885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4886000 0! #4886500 1! #4886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4887000 0! #4887500 1! #4887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4888000 0! #4888500 1! #4888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4889000 0! #4889500 1! #4889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4890000 0! #4890500 1! #4890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4891000 0! #4891500 1! #4891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4892000 0! #4892500 1! #4892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4893000 0! #4893500 1! #4893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4894000 0! #4894500 1! #4894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4895000 0! #4895500 1! #4895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4896000 0! #4896500 1! #4896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4897000 0! #4897500 1! #4897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4898000 0! #4898500 1! #4898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4899000 0! #4899500 1! #4899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4900000 0! #4900500 1! #4900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4901000 0! #4901500 1! #4901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4902000 0! #4902500 1! #4902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4903000 0! #4903500 1! #4903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4904000 0! #4904500 1! #4904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4905000 0! #4905500 1! #4905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4906000 0! #4906500 1! #4906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4907000 0! #4907500 1! #4907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4908000 0! #4908500 1! #4908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4909000 0! #4909500 1! #4909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4910000 0! #4910500 1! #4910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4911000 0! #4911500 1! #4911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4912000 0! #4912500 1! #4912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4913000 0! #4913500 1! #4913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4914000 0! #4914500 1! #4914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4915000 0! #4915500 1! #4915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4916000 0! #4916500 1! #4916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4917000 0! #4917500 1! #4917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4918000 0! #4918500 1! #4918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4919000 0! #4919500 1! #4919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4920000 0! #4920500 1! #4920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4921000 0! #4921500 1! #4921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4922000 0! #4922500 1! #4922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4923000 0! #4923500 1! #4923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4924000 0! #4924500 1! #4924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4925000 0! #4925500 1! #4925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4926000 0! #4926500 1! #4926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4927000 0! #4927500 1! #4927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4928000 0! #4928500 1! #4928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4929000 0! #4929500 1! #4929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4930000 0! #4930500 1! #4930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4931000 0! #4931500 1! #4931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4932000 0! #4932500 1! #4932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4933000 0! #4933500 1! #4933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4934000 0! #4934500 1! #4934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4935000 0! #4935500 1! #4935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4936000 0! #4936500 1! #4936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4937000 0! #4937500 1! #4937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4938000 0! #4938500 1! #4938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4939000 0! #4939500 1! #4939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4940000 0! #4940500 1! #4940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4941000 0! #4941500 1! #4941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4942000 0! #4942500 1! #4942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4943000 0! #4943500 1! #4943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4944000 0! #4944500 1! #4944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4945000 0! #4945500 1! #4945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4946000 0! #4946500 1! #4946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4947000 0! #4947500 1! #4947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4948000 0! #4948500 1! #4948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4949000 0! #4949500 1! #4949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4950000 0! #4950500 1! #4950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4951000 0! #4951500 1! #4951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4952000 0! #4952500 1! #4952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4953000 0! #4953500 1! #4953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4954000 0! #4954500 1! #4954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4955000 0! #4955500 1! #4955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4956000 0! #4956500 1! #4956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4957000 0! #4957500 1! #4957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4958000 0! #4958500 1! #4958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4959000 0! #4959500 1! #4959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4960000 0! #4960500 1! #4960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4961000 0! #4961500 1! #4961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4962000 0! #4962500 1! #4962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4963000 0! #4963500 1! #4963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4964000 0! #4964500 1! #4964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4965000 0! #4965500 1! #4965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4966000 0! #4966500 1! #4966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4967000 0! #4967500 1! #4967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4968000 0! #4968500 1! #4968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4969000 0! #4969500 1! #4969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4970000 0! #4970500 1! #4970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4971000 0! #4971500 1! #4971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4972000 0! #4972500 1! #4972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4973000 0! #4973500 1! #4973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4974000 0! #4974500 1! #4974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4975000 0! #4975500 1! #4975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4976000 0! #4976500 1! #4976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4977000 0! #4977500 1! #4977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4978000 0! #4978500 1! #4978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4979000 0! #4979500 1! #4979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4980000 0! #4980500 1! #4980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4981000 0! #4981500 1! #4981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4982000 0! #4982500 1! #4982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4983000 0! #4983500 1! #4983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4984000 0! #4984500 1! #4984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4985000 0! #4985500 1! #4985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4986000 0! #4986500 1! #4986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4987000 0! #4987500 1! #4987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4988000 0! #4988500 1! #4988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4989000 0! #4989500 1! #4989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4990000 0! #4990500 1! #4990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4991000 0! #4991500 1! #4991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4992000 0! #4992500 1! #4992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4993000 0! #4993500 1! #4993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4994000 0! #4994500 1! #4994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4995000 0! #4995500 1! #4995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4996000 0! #4996500 1! #4996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4997000 0! #4997500 1! #4997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #4998000 0! #4998500 1! #4998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #4999000 0! #4999500 1! #4999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5000000 0! #5000500 1! #5000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5001000 0! #5001500 1! #5001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5002000 0! #5002500 1! #5002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5003000 0! #5003500 1! #5003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5004000 0! #5004500 1! #5004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5005000 0! #5005500 1! #5005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5006000 0! #5006500 1! #5006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5007000 0! #5007500 1! #5007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5008000 0! #5008500 1! #5008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5009000 0! #5009500 1! #5009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5010000 0! #5010500 1! #5010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5011000 0! #5011500 1! #5011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5012000 0! #5012500 1! #5012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5013000 0! #5013500 1! #5013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5014000 0! #5014500 1! #5014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5015000 0! #5015500 1! #5015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5016000 0! #5016500 1! #5016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5017000 0! #5017500 1! #5017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5018000 0! #5018500 1! #5018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5019000 0! #5019500 1! #5019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5020000 0! #5020500 1! #5020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5021000 0! #5021500 1! #5021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5022000 0! #5022500 1! #5022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5023000 0! #5023500 1! #5023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5024000 0! #5024500 1! #5024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5025000 0! #5025500 1! #5025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5026000 0! #5026500 1! #5026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #5026700 b101 c #5027000 0! #5027500 1! #5027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5028000 0! #5028500 1! #5028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5029000 0! #5029500 1! #5029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5030000 0! #5030500 1! #5030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5031000 0! #5031500 1! #5031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5032000 0! #5032500 1! #5032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5033000 0! #5033500 1! #5033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5034000 0! #5034500 1! #5034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5035000 0! #5035500 1! #5035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5036000 0! #5036500 1! #5036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5037000 0! #5037500 1! #5037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5038000 0! #5038500 1! #5038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5039000 0! #5039500 1! #5039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5040000 0! #5040500 1! #5040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5041000 0! #5041500 1! #5041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5042000 0! #5042500 1! #5042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5043000 0! #5043500 1! #5043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5044000 0! #5044500 1! #5044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5045000 0! #5045500 1! #5045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5046000 0! #5046500 1! #5046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5047000 0! #5047500 1! #5047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5048000 0! #5048500 1! #5048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5049000 0! #5049500 1! #5049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5050000 0! #5050500 1! #5050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5051000 0! #5051500 1! #5051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5052000 0! #5052500 1! #5052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5053000 0! #5053500 1! #5053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5054000 0! #5054500 1! #5054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5055000 0! #5055500 1! #5055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5056000 0! #5056500 1! #5056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5057000 0! #5057500 1! #5057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5058000 0! #5058500 1! #5058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5059000 0! #5059500 1! #5059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5060000 0! #5060500 1! #5060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5061000 0! #5061500 1! #5061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5062000 0! #5062500 1! #5062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5063000 0! #5063500 1! #5063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5064000 0! #5064500 1! #5064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5065000 0! #5065500 1! #5065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5066000 0! #5066500 1! #5066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5067000 0! #5067500 1! #5067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5068000 0! #5068500 1! #5068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5069000 0! #5069500 1! #5069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5070000 0! #5070500 1! #5070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5071000 0! #5071500 1! #5071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5072000 0! #5072500 1! #5072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5073000 0! #5073500 1! #5073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5074000 0! #5074500 1! #5074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5075000 0! #5075500 1! #5075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5076000 0! #5076500 1! #5076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5077000 0! #5077500 1! #5077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5078000 0! #5078500 1! #5078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5079000 0! #5079500 1! #5079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5080000 0! #5080500 1! #5080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5081000 0! #5081500 1! #5081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5082000 0! #5082500 1! #5082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5083000 0! #5083500 1! #5083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5084000 0! #5084500 1! #5084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5085000 0! #5085500 1! #5085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5086000 0! #5086500 1! #5086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5087000 0! #5087500 1! #5087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5088000 0! #5088500 1! #5088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5089000 0! #5089500 1! #5089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5090000 0! #5090500 1! #5090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5091000 0! #5091500 1! #5091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5092000 0! #5092500 1! #5092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5093000 0! #5093500 1! #5093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5094000 0! #5094500 1! #5094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5095000 0! #5095500 1! #5095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5096000 0! #5096500 1! #5096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5097000 0! #5097500 1! #5097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5098000 0! #5098500 1! #5098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5099000 0! #5099500 1! #5099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5100000 0! #5100500 1! #5100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5101000 0! #5101500 1! #5101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5102000 0! #5102500 1! #5102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5103000 0! #5103500 1! #5103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5104000 0! #5104500 1! #5104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5105000 0! #5105500 1! #5105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5106000 0! #5106500 1! #5106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5107000 0! #5107500 1! #5107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5108000 0! #5108500 1! #5108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5109000 0! #5109500 1! #5109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5110000 0! #5110500 1! #5110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5111000 0! #5111500 1! #5111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5112000 0! #5112500 1! #5112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5113000 0! #5113500 1! #5113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5114000 0! #5114500 1! #5114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5115000 0! #5115500 1! #5115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5116000 0! #5116500 1! #5116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5117000 0! #5117500 1! #5117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5118000 0! #5118500 1! #5118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5119000 0! #5119500 1! #5119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5120000 0! #5120500 1! #5120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5121000 0! #5121500 1! #5121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5122000 0! #5122500 1! #5122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5123000 0! #5123500 1! #5123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5124000 0! #5124500 1! #5124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5125000 0! #5125500 1! #5125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5126000 0! #5126500 1! #5126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5127000 0! #5127500 1! #5127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5128000 0! #5128500 1! #5128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #5128700 0i #5129000 0! #5129500 1! #5129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5130000 0! #5130500 1! #5130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5131000 0! #5131500 1! #5131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5132000 0! #5132500 1! #5132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5133000 0! #5133500 1! #5133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5134000 0! #5134500 1! #5134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5135000 0! #5135500 1! #5135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5136000 0! #5136500 1! #5136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5137000 0! #5137500 1! #5137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5138000 0! #5138500 1! #5138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5139000 0! #5139500 1! #5139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5140000 0! #5140500 1! #5140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5141000 0! #5141500 1! #5141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5142000 0! #5142500 1! #5142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5143000 0! #5143500 1! #5143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5144000 0! #5144500 1! #5144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5145000 0! #5145500 1! #5145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5146000 0! #5146500 1! #5146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5147000 0! #5147500 1! #5147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5148000 0! #5148500 1! #5148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5149000 0! #5149500 1! #5149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5150000 0! #5150500 1! #5150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5151000 0! #5151500 1! #5151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5152000 0! #5152500 1! #5152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5153000 0! #5153500 1! #5153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5154000 0! #5154500 1! #5154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5155000 0! #5155500 1! #5155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5156000 0! #5156500 1! #5156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5157000 0! #5157500 1! #5157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5158000 0! #5158500 1! #5158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5159000 0! #5159500 1! #5159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5160000 0! #5160500 1! #5160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5161000 0! #5161500 1! #5161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5162000 0! #5162500 1! #5162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5163000 0! #5163500 1! #5163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5164000 0! #5164500 1! #5164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5165000 0! #5165500 1! #5165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5166000 0! #5166500 1! #5166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5167000 0! #5167500 1! #5167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5168000 0! #5168500 1! #5168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5169000 0! #5169500 1! #5169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5170000 0! #5170500 1! #5170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5171000 0! #5171500 1! #5171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5172000 0! #5172500 1! #5172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5173000 0! #5173500 1! #5173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5174000 0! #5174500 1! #5174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5175000 0! #5175500 1! #5175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5176000 0! #5176500 1! #5176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5177000 0! #5177500 1! #5177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5178000 0! #5178500 1! #5178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5179000 0! #5179500 1! #5179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5180000 0! #5180500 1! #5180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5181000 0! #5181500 1! #5181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5182000 0! #5182500 1! #5182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5183000 0! #5183500 1! #5183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5184000 0! #5184500 1! #5184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5185000 0! #5185500 1! #5185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5186000 0! #5186500 1! #5186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5187000 0! #5187500 1! #5187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5188000 0! #5188500 1! #5188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5189000 0! #5189500 1! #5189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5190000 0! #5190500 1! #5190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5191000 0! #5191500 1! #5191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5192000 0! #5192500 1! #5192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5193000 0! #5193500 1! #5193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5194000 0! #5194500 1! #5194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5195000 0! #5195500 1! #5195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5196000 0! #5196500 1! #5196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5197000 0! #5197500 1! #5197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5198000 0! #5198500 1! #5198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5199000 0! #5199500 1! #5199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5200000 0! #5200500 1! #5200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5201000 0! #5201500 1! #5201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5202000 0! #5202500 1! #5202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5203000 0! #5203500 1! #5203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5204000 0! #5204500 1! #5204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5205000 0! #5205500 1! #5205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5206000 0! #5206500 1! #5206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5207000 0! #5207500 1! #5207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5208000 0! #5208500 1! #5208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5209000 0! #5209500 1! #5209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5210000 0! #5210500 1! #5210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5211000 0! #5211500 1! #5211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5212000 0! #5212500 1! #5212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5213000 0! #5213500 1! #5213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5214000 0! #5214500 1! #5214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5215000 0! #5215500 1! #5215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5216000 0! #5216500 1! #5216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5217000 0! #5217500 1! #5217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5218000 0! #5218500 1! #5218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5219000 0! #5219500 1! #5219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5220000 0! #5220500 1! #5220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5221000 0! #5221500 1! #5221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5222000 0! #5222500 1! #5222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5223000 0! #5223500 1! #5223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5224000 0! #5224500 1! #5224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5225000 0! #5225500 1! #5225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5226000 0! #5226500 1! #5226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5227000 0! #5227500 1! #5227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5228000 0! #5228500 1! #5228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5229000 0! #5229500 1! #5229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5230000 0! #5230500 1! #5230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #5231000 0! #5231500 1! #5231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5232000 0! #5232500 1! #5232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5233000 0! #5233500 1! #5233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5234000 0! #5234500 1! #5234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5235000 0! #5235500 1! #5235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5236000 0! #5236500 1! #5236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5237000 0! #5237500 1! #5237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5238000 0! #5238500 1! #5238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5239000 0! #5239500 1! #5239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5240000 0! #5240500 1! #5240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5241000 0! #5241500 1! #5241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5242000 0! #5242500 1! #5242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5243000 0! #5243500 1! #5243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5244000 0! #5244500 1! #5244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5245000 0! #5245500 1! #5245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5246000 0! #5246500 1! #5246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5247000 0! #5247500 1! #5247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5248000 0! #5248500 1! #5248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5249000 0! #5249500 1! #5249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5250000 0! #5250500 1! #5250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5251000 0! #5251500 1! #5251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5252000 0! #5252500 1! #5252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5253000 0! #5253500 1! #5253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5254000 0! #5254500 1! #5254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5255000 0! #5255500 1! #5255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5256000 0! #5256500 1! #5256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5257000 0! #5257500 1! #5257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5258000 0! #5258500 1! #5258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5259000 0! #5259500 1! #5259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5260000 0! #5260500 1! #5260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5261000 0! #5261500 1! #5261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5262000 0! #5262500 1! #5262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5263000 0! #5263500 1! #5263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5264000 0! #5264500 1! #5264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5265000 0! #5265500 1! #5265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5266000 0! #5266500 1! #5266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5267000 0! #5267500 1! #5267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5268000 0! #5268500 1! #5268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5269000 0! #5269500 1! #5269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5270000 0! #5270500 1! #5270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5271000 0! #5271500 1! #5271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5272000 0! #5272500 1! #5272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5273000 0! #5273500 1! #5273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5274000 0! #5274500 1! #5274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5275000 0! #5275500 1! #5275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5276000 0! #5276500 1! #5276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5277000 0! #5277500 1! #5277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5278000 0! #5278500 1! #5278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5279000 0! #5279500 1! #5279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5280000 0! #5280500 1! #5280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5281000 0! #5281500 1! #5281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #5281700 b110 g b1010 c #5282000 0! #5282500 1! #5282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5283000 0! #5283500 1! #5283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5284000 0! #5284500 1! #5284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5285000 0! #5285500 1! #5285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5286000 0! #5286500 1! #5286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5287000 0! #5287500 1! #5287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5288000 0! #5288500 1! #5288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5289000 0! #5289500 1! #5289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5290000 0! #5290500 1! #5290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5291000 0! #5291500 1! #5291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5292000 0! #5292500 1! #5292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5293000 0! #5293500 1! #5293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5294000 0! #5294500 1! #5294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5295000 0! #5295500 1! #5295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5296000 0! #5296500 1! #5296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5297000 0! #5297500 1! #5297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5298000 0! #5298500 1! #5298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5299000 0! #5299500 1! #5299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5300000 0! #5300500 1! #5300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5301000 0! #5301500 1! #5301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5302000 0! #5302500 1! #5302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5303000 0! #5303500 1! #5303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5304000 0! #5304500 1! #5304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5305000 0! #5305500 1! #5305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5306000 0! #5306500 1! #5306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5307000 0! #5307500 1! #5307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5308000 0! #5308500 1! #5308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5309000 0! #5309500 1! #5309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5310000 0! #5310500 1! #5310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5311000 0! #5311500 1! #5311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5312000 0! #5312500 1! #5312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5313000 0! #5313500 1! #5313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5314000 0! #5314500 1! #5314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5315000 0! #5315500 1! #5315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5316000 0! #5316500 1! #5316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5317000 0! #5317500 1! #5317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5318000 0! #5318500 1! #5318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5319000 0! #5319500 1! #5319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5320000 0! #5320500 1! #5320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5321000 0! #5321500 1! #5321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5322000 0! #5322500 1! #5322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5323000 0! #5323500 1! #5323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5324000 0! #5324500 1! #5324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5325000 0! #5325500 1! #5325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5326000 0! #5326500 1! #5326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5327000 0! #5327500 1! #5327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5328000 0! #5328500 1! #5328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5329000 0! #5329500 1! #5329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5330000 0! #5330500 1! #5330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5331000 0! #5331500 1! #5331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5332000 0! #5332500 1! #5332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5333000 0! #5333500 1! #5333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5334000 0! #5334500 1! #5334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5335000 0! #5335500 1! #5335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5336000 0! #5336500 1! #5336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5337000 0! #5337500 1! #5337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5338000 0! #5338500 1! #5338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5339000 0! #5339500 1! #5339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5340000 0! #5340500 1! #5340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5341000 0! #5341500 1! #5341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5342000 0! #5342500 1! #5342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5343000 0! #5343500 1! #5343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5344000 0! #5344500 1! #5344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5345000 0! #5345500 1! #5345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5346000 0! #5346500 1! #5346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5347000 0! #5347500 1! #5347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5348000 0! #5348500 1! #5348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5349000 0! #5349500 1! #5349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5350000 0! #5350500 1! #5350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5351000 0! #5351500 1! #5351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5352000 0! #5352500 1! #5352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5353000 0! #5353500 1! #5353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5354000 0! #5354500 1! #5354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5355000 0! #5355500 1! #5355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5356000 0! #5356500 1! #5356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5357000 0! #5357500 1! #5357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5358000 0! #5358500 1! #5358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5359000 0! #5359500 1! #5359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5360000 0! #5360500 1! #5360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5361000 0! #5361500 1! #5361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5362000 0! #5362500 1! #5362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5363000 0! #5363500 1! #5363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5364000 0! #5364500 1! #5364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5365000 0! #5365500 1! #5365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5366000 0! #5366500 1! #5366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5367000 0! #5367500 1! #5367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5368000 0! #5368500 1! #5368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5369000 0! #5369500 1! #5369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5370000 0! #5370500 1! #5370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5371000 0! #5371500 1! #5371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5372000 0! #5372500 1! #5372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5373000 0! #5373500 1! #5373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5374000 0! #5374500 1! #5374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5375000 0! #5375500 1! #5375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5376000 0! #5376500 1! #5376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5377000 0! #5377500 1! #5377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5378000 0! #5378500 1! #5378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5379000 0! #5379500 1! #5379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5380000 0! #5380500 1! #5380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5381000 0! #5381500 1! #5381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5382000 0! #5382500 1! #5382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5383000 0! #5383500 1! #5383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #5384000 0! #5384500 1! #5384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5385000 0! #5385500 1! #5385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5386000 0! #5386500 1! #5386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5387000 0! #5387500 1! #5387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5388000 0! #5388500 1! #5388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5389000 0! #5389500 1! #5389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5390000 0! #5390500 1! #5390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5391000 0! #5391500 1! #5391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5392000 0! #5392500 1! #5392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5393000 0! #5393500 1! #5393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5394000 0! #5394500 1! #5394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5395000 0! #5395500 1! #5395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5396000 0! #5396500 1! #5396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5397000 0! #5397500 1! #5397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5398000 0! #5398500 1! #5398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5399000 0! #5399500 1! #5399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5400000 0! #5400500 1! #5400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5401000 0! #5401500 1! #5401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5402000 0! #5402500 1! #5402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5403000 0! #5403500 1! #5403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5404000 0! #5404500 1! #5404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5405000 0! #5405500 1! #5405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5406000 0! #5406500 1! #5406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5407000 0! #5407500 1! #5407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5408000 0! #5408500 1! #5408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5409000 0! #5409500 1! #5409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5410000 0! #5410500 1! #5410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5411000 0! #5411500 1! #5411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5412000 0! #5412500 1! #5412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5413000 0! #5413500 1! #5413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5414000 0! #5414500 1! #5414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5415000 0! #5415500 1! #5415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5416000 0! #5416500 1! #5416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5417000 0! #5417500 1! #5417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5418000 0! #5418500 1! #5418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5419000 0! #5419500 1! #5419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5420000 0! #5420500 1! #5420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5421000 0! #5421500 1! #5421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5422000 0! #5422500 1! #5422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5423000 0! #5423500 1! #5423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5424000 0! #5424500 1! #5424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5425000 0! #5425500 1! #5425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5426000 0! #5426500 1! #5426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5427000 0! #5427500 1! #5427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5428000 0! #5428500 1! #5428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5429000 0! #5429500 1! #5429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5430000 0! #5430500 1! #5430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5431000 0! #5431500 1! #5431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5432000 0! #5432500 1! #5432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5433000 0! #5433500 1! #5433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5434000 0! #5434500 1! #5434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5435000 0! #5435500 1! #5435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5436000 0! #5436500 1! #5436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5437000 0! #5437500 1! #5437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5438000 0! #5438500 1! #5438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5439000 0! #5439500 1! #5439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5440000 0! #5440500 1! #5440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5441000 0! #5441500 1! #5441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5442000 0! #5442500 1! #5442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5443000 0! #5443500 1! #5443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5444000 0! #5444500 1! #5444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5445000 0! #5445500 1! #5445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5446000 0! #5446500 1! #5446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5447000 0! #5447500 1! #5447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5448000 0! #5448500 1! #5448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5449000 0! #5449500 1! #5449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5450000 0! #5450500 1! #5450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5451000 0! #5451500 1! #5451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5452000 0! #5452500 1! #5452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5453000 0! #5453500 1! #5453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5454000 0! #5454500 1! #5454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5455000 0! #5455500 1! #5455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5456000 0! #5456500 1! #5456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5457000 0! #5457500 1! #5457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5458000 0! #5458500 1! #5458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5459000 0! #5459500 1! #5459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5460000 0! #5460500 1! #5460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5461000 0! #5461500 1! #5461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5462000 0! #5462500 1! #5462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5463000 0! #5463500 1! #5463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5464000 0! #5464500 1! #5464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5465000 0! #5465500 1! #5465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5466000 0! #5466500 1! #5466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5467000 0! #5467500 1! #5467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5468000 0! #5468500 1! #5468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5469000 0! #5469500 1! #5469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5470000 0! #5470500 1! #5470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5471000 0! #5471500 1! #5471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5472000 0! #5472500 1! #5472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5473000 0! #5473500 1! #5473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5474000 0! #5474500 1! #5474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5475000 0! #5475500 1! #5475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5476000 0! #5476500 1! #5476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5477000 0! #5477500 1! #5477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5478000 0! #5478500 1! #5478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5479000 0! #5479500 1! #5479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5480000 0! #5480500 1! #5480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5481000 0! #5481500 1! #5481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5482000 0! #5482500 1! #5482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5483000 0! #5483500 1! #5483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5484000 0! #5484500 1! #5484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5485000 0! #5485500 1! #5485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q 1O #5486000 0! #5486500 1! #5486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5487000 0! #5487500 1! #5487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5488000 0! #5488500 1! #5488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5489000 0! #5489500 1! #5489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5490000 0! #5490500 1! #5490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5491000 0! #5491500 1! #5491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5492000 0! #5492500 1! #5492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5493000 0! #5493500 1! #5493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5494000 0! #5494500 1! #5494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5495000 0! #5495500 1! #5495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5496000 0! #5496500 1! #5496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5497000 0! #5497500 1! #5497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5498000 0! #5498500 1! #5498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5499000 0! #5499500 1! #5499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5500000 0! #5500500 1! #5500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5501000 0! #5501500 1! #5501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5502000 0! #5502500 1! #5502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5503000 0! #5503500 1! #5503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5504000 0! #5504500 1! #5504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5505000 0! #5505500 1! #5505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5506000 0! #5506500 1! #5506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5507000 0! #5507500 1! #5507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5508000 0! #5508500 1! #5508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5509000 0! #5509500 1! #5509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5510000 0! #5510500 1! #5510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5511000 0! #5511500 1! #5511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5512000 0! #5512500 1! #5512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5513000 0! #5513500 1! #5513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5514000 0! #5514500 1! #5514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5515000 0! #5515500 1! #5515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5516000 0! #5516500 1! #5516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5517000 0! #5517500 1! #5517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5518000 0! #5518500 1! #5518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5519000 0! #5519500 1! #5519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5520000 0! #5520500 1! #5520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5521000 0! #5521500 1! #5521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5522000 0! #5522500 1! #5522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5523000 0! #5523500 1! #5523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5524000 0! #5524500 1! #5524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5525000 0! #5525500 1! #5525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5526000 0! #5526500 1! #5526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5527000 0! #5527500 1! #5527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5528000 0! #5528500 1! #5528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5529000 0! #5529500 1! #5529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5530000 0! #5530500 1! #5530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5531000 0! #5531500 1! #5531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5532000 0! #5532500 1! #5532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5533000 0! #5533500 1! #5533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5534000 0! #5534500 1! #5534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5535000 0! #5535500 1! #5535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5536000 0! #5536500 1! #5536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #5536700 b101 g b10101 c #5537000 0! #5537500 1! #5537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5538000 0! #5538500 1! #5538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5539000 0! #5539500 1! #5539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5540000 0! #5540500 1! #5540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5541000 0! #5541500 1! #5541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5542000 0! #5542500 1! #5542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5543000 0! #5543500 1! #5543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5544000 0! #5544500 1! #5544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5545000 0! #5545500 1! #5545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5546000 0! #5546500 1! #5546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5547000 0! #5547500 1! #5547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5548000 0! #5548500 1! #5548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5549000 0! #5549500 1! #5549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5550000 0! #5550500 1! #5550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5551000 0! #5551500 1! #5551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5552000 0! #5552500 1! #5552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5553000 0! #5553500 1! #5553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5554000 0! #5554500 1! #5554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5555000 0! #5555500 1! #5555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5556000 0! #5556500 1! #5556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5557000 0! #5557500 1! #5557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5558000 0! #5558500 1! #5558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5559000 0! #5559500 1! #5559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5560000 0! #5560500 1! #5560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5561000 0! #5561500 1! #5561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5562000 0! #5562500 1! #5562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5563000 0! #5563500 1! #5563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5564000 0! #5564500 1! #5564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5565000 0! #5565500 1! #5565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5566000 0! #5566500 1! #5566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5567000 0! #5567500 1! #5567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5568000 0! #5568500 1! #5568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5569000 0! #5569500 1! #5569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5570000 0! #5570500 1! #5570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5571000 0! #5571500 1! #5571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5572000 0! #5572500 1! #5572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5573000 0! #5573500 1! #5573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5574000 0! #5574500 1! #5574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5575000 0! #5575500 1! #5575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5576000 0! #5576500 1! #5576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5577000 0! #5577500 1! #5577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5578000 0! #5578500 1! #5578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5579000 0! #5579500 1! #5579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5580000 0! #5580500 1! #5580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5581000 0! #5581500 1! #5581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5582000 0! #5582500 1! #5582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5583000 0! #5583500 1! #5583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5584000 0! #5584500 1! #5584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5585000 0! #5585500 1! #5585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5586000 0! #5586500 1! #5586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5587000 0! #5587500 1! #5587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5588000 0! #5588500 1! #5588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5589000 0! #5589500 1! #5589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5590000 0! #5590500 1! #5590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5591000 0! #5591500 1! #5591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5592000 0! #5592500 1! #5592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5593000 0! #5593500 1! #5593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5594000 0! #5594500 1! #5594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5595000 0! #5595500 1! #5595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5596000 0! #5596500 1! #5596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5597000 0! #5597500 1! #5597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5598000 0! #5598500 1! #5598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5599000 0! #5599500 1! #5599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5600000 0! #5600500 1! #5600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5601000 0! #5601500 1! #5601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5602000 0! #5602500 1! #5602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5603000 0! #5603500 1! #5603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5604000 0! #5604500 1! #5604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5605000 0! #5605500 1! #5605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5606000 0! #5606500 1! #5606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5607000 0! #5607500 1! #5607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5608000 0! #5608500 1! #5608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5609000 0! #5609500 1! #5609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5610000 0! #5610500 1! #5610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5611000 0! #5611500 1! #5611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5612000 0! #5612500 1! #5612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5613000 0! #5613500 1! #5613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5614000 0! #5614500 1! #5614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5615000 0! #5615500 1! #5615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5616000 0! #5616500 1! #5616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5617000 0! #5617500 1! #5617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5618000 0! #5618500 1! #5618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5619000 0! #5619500 1! #5619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5620000 0! #5620500 1! #5620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5621000 0! #5621500 1! #5621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5622000 0! #5622500 1! #5622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5623000 0! #5623500 1! #5623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5624000 0! #5624500 1! #5624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5625000 0! #5625500 1! #5625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5626000 0! #5626500 1! #5626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5627000 0! #5627500 1! #5627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5628000 0! #5628500 1! #5628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5629000 0! #5629500 1! #5629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5630000 0! #5630500 1! #5630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5631000 0! #5631500 1! #5631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5632000 0! #5632500 1! #5632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5633000 0! #5633500 1! #5633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5634000 0! #5634500 1! #5634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5635000 0! #5635500 1! #5635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5636000 0! #5636500 1! #5636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5637000 0! #5637500 1! #5637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5638000 0! #5638500 1! #5638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #5639000 0! #5639500 1! #5639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5640000 0! #5640500 1! #5640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5641000 0! #5641500 1! #5641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5642000 0! #5642500 1! #5642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5643000 0! #5643500 1! #5643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5644000 0! #5644500 1! #5644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5645000 0! #5645500 1! #5645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5646000 0! #5646500 1! #5646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5647000 0! #5647500 1! #5647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5648000 0! #5648500 1! #5648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5649000 0! #5649500 1! #5649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5650000 0! #5650500 1! #5650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5651000 0! #5651500 1! #5651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5652000 0! #5652500 1! #5652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5653000 0! #5653500 1! #5653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5654000 0! #5654500 1! #5654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5655000 0! #5655500 1! #5655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5656000 0! #5656500 1! #5656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5657000 0! #5657500 1! #5657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5658000 0! #5658500 1! #5658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5659000 0! #5659500 1! #5659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5660000 0! #5660500 1! #5660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5661000 0! #5661500 1! #5661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5662000 0! #5662500 1! #5662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5663000 0! #5663500 1! #5663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5664000 0! #5664500 1! #5664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5665000 0! #5665500 1! #5665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5666000 0! #5666500 1! #5666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5667000 0! #5667500 1! #5667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5668000 0! #5668500 1! #5668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5669000 0! #5669500 1! #5669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5670000 0! #5670500 1! #5670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5671000 0! #5671500 1! #5671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5672000 0! #5672500 1! #5672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5673000 0! #5673500 1! #5673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5674000 0! #5674500 1! #5674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5675000 0! #5675500 1! #5675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5676000 0! #5676500 1! #5676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5677000 0! #5677500 1! #5677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5678000 0! #5678500 1! #5678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5679000 0! #5679500 1! #5679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5680000 0! #5680500 1! #5680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5681000 0! #5681500 1! #5681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5682000 0! #5682500 1! #5682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5683000 0! #5683500 1! #5683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5684000 0! #5684500 1! #5684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5685000 0! #5685500 1! #5685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5686000 0! #5686500 1! #5686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5687000 0! #5687500 1! #5687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5688000 0! #5688500 1! #5688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5689000 0! #5689500 1! #5689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5690000 0! #5690500 1! #5690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5691000 0! #5691500 1! #5691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5692000 0! #5692500 1! #5692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5693000 0! #5693500 1! #5693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5694000 0! #5694500 1! #5694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5695000 0! #5695500 1! #5695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5696000 0! #5696500 1! #5696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5697000 0! #5697500 1! #5697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5698000 0! #5698500 1! #5698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5699000 0! #5699500 1! #5699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5700000 0! #5700500 1! #5700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5701000 0! #5701500 1! #5701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5702000 0! #5702500 1! #5702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5703000 0! #5703500 1! #5703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5704000 0! #5704500 1! #5704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5705000 0! #5705500 1! #5705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5706000 0! #5706500 1! #5706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5707000 0! #5707500 1! #5707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5708000 0! #5708500 1! #5708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5709000 0! #5709500 1! #5709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5710000 0! #5710500 1! #5710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5711000 0! #5711500 1! #5711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5712000 0! #5712500 1! #5712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5713000 0! #5713500 1! #5713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5714000 0! #5714500 1! #5714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5715000 0! #5715500 1! #5715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5716000 0! #5716500 1! #5716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5717000 0! #5717500 1! #5717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5718000 0! #5718500 1! #5718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5719000 0! #5719500 1! #5719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5720000 0! #5720500 1! #5720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5721000 0! #5721500 1! #5721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5722000 0! #5722500 1! #5722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5723000 0! #5723500 1! #5723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5724000 0! #5724500 1! #5724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5725000 0! #5725500 1! #5725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5726000 0! #5726500 1! #5726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5727000 0! #5727500 1! #5727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5728000 0! #5728500 1! #5728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5729000 0! #5729500 1! #5729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5730000 0! #5730500 1! #5730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5731000 0! #5731500 1! #5731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5732000 0! #5732500 1! #5732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5733000 0! #5733500 1! #5733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5734000 0! #5734500 1! #5734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5735000 0! #5735500 1! #5735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5736000 0! #5736500 1! #5736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5737000 0! #5737500 1! #5737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5738000 0! #5738500 1! #5738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5739000 0! #5739500 1! #5739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5740000 0! #5740500 1! #5740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #5741000 0! #5741500 1! #5741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5742000 0! #5742500 1! #5742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5743000 0! #5743500 1! #5743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5744000 0! #5744500 1! #5744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5745000 0! #5745500 1! #5745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5746000 0! #5746500 1! #5746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5747000 0! #5747500 1! #5747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5748000 0! #5748500 1! #5748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5749000 0! #5749500 1! #5749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5750000 0! #5750500 1! #5750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5751000 0! #5751500 1! #5751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5752000 0! #5752500 1! #5752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5753000 0! #5753500 1! #5753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5754000 0! #5754500 1! #5754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5755000 0! #5755500 1! #5755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5756000 0! #5756500 1! #5756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5757000 0! #5757500 1! #5757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5758000 0! #5758500 1! #5758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5759000 0! #5759500 1! #5759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5760000 0! #5760500 1! #5760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5761000 0! #5761500 1! #5761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5762000 0! #5762500 1! #5762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5763000 0! #5763500 1! #5763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5764000 0! #5764500 1! #5764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5765000 0! #5765500 1! #5765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5766000 0! #5766500 1! #5766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5767000 0! #5767500 1! #5767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5768000 0! #5768500 1! #5768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5769000 0! #5769500 1! #5769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5770000 0! #5770500 1! #5770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5771000 0! #5771500 1! #5771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5772000 0! #5772500 1! #5772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5773000 0! #5773500 1! #5773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5774000 0! #5774500 1! #5774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5775000 0! #5775500 1! #5775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5776000 0! #5776500 1! #5776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5777000 0! #5777500 1! #5777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5778000 0! #5778500 1! #5778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5779000 0! #5779500 1! #5779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5780000 0! #5780500 1! #5780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5781000 0! #5781500 1! #5781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5782000 0! #5782500 1! #5782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5783000 0! #5783500 1! #5783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5784000 0! #5784500 1! #5784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5785000 0! #5785500 1! #5785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5786000 0! #5786500 1! #5786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5787000 0! #5787500 1! #5787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5788000 0! #5788500 1! #5788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5789000 0! #5789500 1! #5789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5790000 0! #5790500 1! #5790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5791000 0! #5791500 1! #5791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #5791700 b100 g b101010 c #5792000 0! #5792500 1! #5792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5793000 0! #5793500 1! #5793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5794000 0! #5794500 1! #5794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5795000 0! #5795500 1! #5795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5796000 0! #5796500 1! #5796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5797000 0! #5797500 1! #5797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5798000 0! #5798500 1! #5798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5799000 0! #5799500 1! #5799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5800000 0! #5800500 1! #5800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5801000 0! #5801500 1! #5801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5802000 0! #5802500 1! #5802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5803000 0! #5803500 1! #5803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5804000 0! #5804500 1! #5804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5805000 0! #5805500 1! #5805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5806000 0! #5806500 1! #5806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5807000 0! #5807500 1! #5807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5808000 0! #5808500 1! #5808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5809000 0! #5809500 1! #5809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5810000 0! #5810500 1! #5810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5811000 0! #5811500 1! #5811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5812000 0! #5812500 1! #5812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5813000 0! #5813500 1! #5813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5814000 0! #5814500 1! #5814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5815000 0! #5815500 1! #5815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5816000 0! #5816500 1! #5816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5817000 0! #5817500 1! #5817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5818000 0! #5818500 1! #5818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5819000 0! #5819500 1! #5819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5820000 0! #5820500 1! #5820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5821000 0! #5821500 1! #5821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5822000 0! #5822500 1! #5822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5823000 0! #5823500 1! #5823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5824000 0! #5824500 1! #5824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5825000 0! #5825500 1! #5825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5826000 0! #5826500 1! #5826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5827000 0! #5827500 1! #5827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5828000 0! #5828500 1! #5828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5829000 0! #5829500 1! #5829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5830000 0! #5830500 1! #5830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5831000 0! #5831500 1! #5831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5832000 0! #5832500 1! #5832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5833000 0! #5833500 1! #5833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5834000 0! #5834500 1! #5834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5835000 0! #5835500 1! #5835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5836000 0! #5836500 1! #5836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5837000 0! #5837500 1! #5837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5838000 0! #5838500 1! #5838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5839000 0! #5839500 1! #5839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5840000 0! #5840500 1! #5840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5841000 0! #5841500 1! #5841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5842000 0! #5842500 1! #5842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5843000 0! #5843500 1! #5843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5844000 0! #5844500 1! #5844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5845000 0! #5845500 1! #5845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5846000 0! #5846500 1! #5846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5847000 0! #5847500 1! #5847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5848000 0! #5848500 1! #5848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5849000 0! #5849500 1! #5849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5850000 0! #5850500 1! #5850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5851000 0! #5851500 1! #5851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5852000 0! #5852500 1! #5852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5853000 0! #5853500 1! #5853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5854000 0! #5854500 1! #5854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5855000 0! #5855500 1! #5855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5856000 0! #5856500 1! #5856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5857000 0! #5857500 1! #5857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5858000 0! #5858500 1! #5858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5859000 0! #5859500 1! #5859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5860000 0! #5860500 1! #5860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5861000 0! #5861500 1! #5861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5862000 0! #5862500 1! #5862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5863000 0! #5863500 1! #5863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5864000 0! #5864500 1! #5864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5865000 0! #5865500 1! #5865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5866000 0! #5866500 1! #5866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5867000 0! #5867500 1! #5867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5868000 0! #5868500 1! #5868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5869000 0! #5869500 1! #5869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5870000 0! #5870500 1! #5870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5871000 0! #5871500 1! #5871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5872000 0! #5872500 1! #5872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5873000 0! #5873500 1! #5873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5874000 0! #5874500 1! #5874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5875000 0! #5875500 1! #5875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5876000 0! #5876500 1! #5876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5877000 0! #5877500 1! #5877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5878000 0! #5878500 1! #5878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5879000 0! #5879500 1! #5879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5880000 0! #5880500 1! #5880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5881000 0! #5881500 1! #5881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5882000 0! #5882500 1! #5882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5883000 0! #5883500 1! #5883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5884000 0! #5884500 1! #5884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5885000 0! #5885500 1! #5885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5886000 0! #5886500 1! #5886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5887000 0! #5887500 1! #5887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5888000 0! #5888500 1! #5888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5889000 0! #5889500 1! #5889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5890000 0! #5890500 1! #5890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5891000 0! #5891500 1! #5891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5892000 0! #5892500 1! #5892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5893000 0! #5893500 1! #5893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #5894000 0! #5894500 1! #5894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5895000 0! #5895500 1! #5895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5896000 0! #5896500 1! #5896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5897000 0! #5897500 1! #5897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5898000 0! #5898500 1! #5898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5899000 0! #5899500 1! #5899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5900000 0! #5900500 1! #5900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5901000 0! #5901500 1! #5901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5902000 0! #5902500 1! #5902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5903000 0! #5903500 1! #5903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5904000 0! #5904500 1! #5904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5905000 0! #5905500 1! #5905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5906000 0! #5906500 1! #5906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5907000 0! #5907500 1! #5907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5908000 0! #5908500 1! #5908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5909000 0! #5909500 1! #5909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5910000 0! #5910500 1! #5910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5911000 0! #5911500 1! #5911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5912000 0! #5912500 1! #5912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5913000 0! #5913500 1! #5913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5914000 0! #5914500 1! #5914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5915000 0! #5915500 1! #5915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5916000 0! #5916500 1! #5916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5917000 0! #5917500 1! #5917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5918000 0! #5918500 1! #5918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5919000 0! #5919500 1! #5919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5920000 0! #5920500 1! #5920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5921000 0! #5921500 1! #5921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5922000 0! #5922500 1! #5922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5923000 0! #5923500 1! #5923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5924000 0! #5924500 1! #5924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5925000 0! #5925500 1! #5925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5926000 0! #5926500 1! #5926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5927000 0! #5927500 1! #5927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5928000 0! #5928500 1! #5928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5929000 0! #5929500 1! #5929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5930000 0! #5930500 1! #5930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5931000 0! #5931500 1! #5931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5932000 0! #5932500 1! #5932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5933000 0! #5933500 1! #5933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5934000 0! #5934500 1! #5934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5935000 0! #5935500 1! #5935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5936000 0! #5936500 1! #5936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5937000 0! #5937500 1! #5937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5938000 0! #5938500 1! #5938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5939000 0! #5939500 1! #5939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5940000 0! #5940500 1! #5940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5941000 0! #5941500 1! #5941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5942000 0! #5942500 1! #5942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5943000 0! #5943500 1! #5943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5944000 0! #5944500 1! #5944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5945000 0! #5945500 1! #5945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5946000 0! #5946500 1! #5946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5947000 0! #5947500 1! #5947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5948000 0! #5948500 1! #5948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5949000 0! #5949500 1! #5949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5950000 0! #5950500 1! #5950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5951000 0! #5951500 1! #5951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5952000 0! #5952500 1! #5952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5953000 0! #5953500 1! #5953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5954000 0! #5954500 1! #5954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5955000 0! #5955500 1! #5955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5956000 0! #5956500 1! #5956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5957000 0! #5957500 1! #5957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5958000 0! #5958500 1! #5958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5959000 0! #5959500 1! #5959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5960000 0! #5960500 1! #5960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5961000 0! #5961500 1! #5961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5962000 0! #5962500 1! #5962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5963000 0! #5963500 1! #5963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5964000 0! #5964500 1! #5964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5965000 0! #5965500 1! #5965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5966000 0! #5966500 1! #5966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5967000 0! #5967500 1! #5967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5968000 0! #5968500 1! #5968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5969000 0! #5969500 1! #5969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5970000 0! #5970500 1! #5970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5971000 0! #5971500 1! #5971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5972000 0! #5972500 1! #5972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5973000 0! #5973500 1! #5973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5974000 0! #5974500 1! #5974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5975000 0! #5975500 1! #5975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5976000 0! #5976500 1! #5976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5977000 0! #5977500 1! #5977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5978000 0! #5978500 1! #5978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5979000 0! #5979500 1! #5979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5980000 0! #5980500 1! #5980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5981000 0! #5981500 1! #5981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5982000 0! #5982500 1! #5982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5983000 0! #5983500 1! #5983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5984000 0! #5984500 1! #5984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5985000 0! #5985500 1! #5985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5986000 0! #5986500 1! #5986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5987000 0! #5987500 1! #5987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5988000 0! #5988500 1! #5988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5989000 0! #5989500 1! #5989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5990000 0! #5990500 1! #5990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5991000 0! #5991500 1! #5991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5992000 0! #5992500 1! #5992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5993000 0! #5993500 1! #5993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5994000 0! #5994500 1! #5994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5995000 0! #5995500 1! #5995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5996000 0! #5996500 1! #5996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5997000 0! #5997500 1! #5997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #5998000 0! #5998500 1! #5998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #5999000 0! #5999500 1! #5999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6000000 0! #6000500 1! #6000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6001000 0! #6001500 1! #6001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6002000 0! #6002500 1! #6002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6003000 0! #6003500 1! #6003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6004000 0! #6004500 1! #6004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6005000 0! #6005500 1! #6005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6006000 0! #6006500 1! #6006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6007000 0! #6007500 1! #6007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6008000 0! #6008500 1! #6008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6009000 0! #6009500 1! #6009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6010000 0! #6010500 1! #6010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6011000 0! #6011500 1! #6011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6012000 0! #6012500 1! #6012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6013000 0! #6013500 1! #6013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6014000 0! #6014500 1! #6014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6015000 0! #6015500 1! #6015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6016000 0! #6016500 1! #6016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6017000 0! #6017500 1! #6017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6018000 0! #6018500 1! #6018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6019000 0! #6019500 1! #6019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6020000 0! #6020500 1! #6020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6021000 0! #6021500 1! #6021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6022000 0! #6022500 1! #6022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6023000 0! #6023500 1! #6023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6024000 0! #6024500 1! #6024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6025000 0! #6025500 1! #6025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6026000 0! #6026500 1! #6026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6027000 0! #6027500 1! #6027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6028000 0! #6028500 1! #6028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6029000 0! #6029500 1! #6029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6030000 0! #6030500 1! #6030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6031000 0! #6031500 1! #6031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6032000 0! #6032500 1! #6032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6033000 0! #6033500 1! #6033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6034000 0! #6034500 1! #6034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6035000 0! #6035500 1! #6035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6036000 0! #6036500 1! #6036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6037000 0! #6037500 1! #6037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6038000 0! #6038500 1! #6038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6039000 0! #6039500 1! #6039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6040000 0! #6040500 1! #6040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6041000 0! #6041500 1! #6041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6042000 0! #6042500 1! #6042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6043000 0! #6043500 1! #6043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6044000 0! #6044500 1! #6044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6045000 0! #6045500 1! #6045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6046000 0! #6046500 1! #6046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #6046700 b11 g b1010100 c #6047000 0! #6047500 1! #6047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6048000 0! #6048500 1! #6048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6049000 0! #6049500 1! #6049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6050000 0! #6050500 1! #6050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6051000 0! #6051500 1! #6051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6052000 0! #6052500 1! #6052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6053000 0! #6053500 1! #6053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6054000 0! #6054500 1! #6054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6055000 0! #6055500 1! #6055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6056000 0! #6056500 1! #6056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6057000 0! #6057500 1! #6057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6058000 0! #6058500 1! #6058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6059000 0! #6059500 1! #6059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6060000 0! #6060500 1! #6060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6061000 0! #6061500 1! #6061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6062000 0! #6062500 1! #6062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6063000 0! #6063500 1! #6063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6064000 0! #6064500 1! #6064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6065000 0! #6065500 1! #6065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6066000 0! #6066500 1! #6066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6067000 0! #6067500 1! #6067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6068000 0! #6068500 1! #6068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6069000 0! #6069500 1! #6069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6070000 0! #6070500 1! #6070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6071000 0! #6071500 1! #6071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6072000 0! #6072500 1! #6072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6073000 0! #6073500 1! #6073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6074000 0! #6074500 1! #6074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6075000 0! #6075500 1! #6075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6076000 0! #6076500 1! #6076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6077000 0! #6077500 1! #6077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6078000 0! #6078500 1! #6078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6079000 0! #6079500 1! #6079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6080000 0! #6080500 1! #6080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6081000 0! #6081500 1! #6081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6082000 0! #6082500 1! #6082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6083000 0! #6083500 1! #6083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6084000 0! #6084500 1! #6084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6085000 0! #6085500 1! #6085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6086000 0! #6086500 1! #6086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6087000 0! #6087500 1! #6087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6088000 0! #6088500 1! #6088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6089000 0! #6089500 1! #6089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6090000 0! #6090500 1! #6090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6091000 0! #6091500 1! #6091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6092000 0! #6092500 1! #6092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6093000 0! #6093500 1! #6093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6094000 0! #6094500 1! #6094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6095000 0! #6095500 1! #6095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6096000 0! #6096500 1! #6096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6097000 0! #6097500 1! #6097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6098000 0! #6098500 1! #6098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6099000 0! #6099500 1! #6099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6100000 0! #6100500 1! #6100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6101000 0! #6101500 1! #6101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6102000 0! #6102500 1! #6102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6103000 0! #6103500 1! #6103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6104000 0! #6104500 1! #6104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6105000 0! #6105500 1! #6105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6106000 0! #6106500 1! #6106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6107000 0! #6107500 1! #6107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6108000 0! #6108500 1! #6108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6109000 0! #6109500 1! #6109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6110000 0! #6110500 1! #6110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6111000 0! #6111500 1! #6111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6112000 0! #6112500 1! #6112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6113000 0! #6113500 1! #6113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6114000 0! #6114500 1! #6114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6115000 0! #6115500 1! #6115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6116000 0! #6116500 1! #6116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6117000 0! #6117500 1! #6117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6118000 0! #6118500 1! #6118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6119000 0! #6119500 1! #6119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6120000 0! #6120500 1! #6120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6121000 0! #6121500 1! #6121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6122000 0! #6122500 1! #6122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6123000 0! #6123500 1! #6123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6124000 0! #6124500 1! #6124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6125000 0! #6125500 1! #6125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6126000 0! #6126500 1! #6126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6127000 0! #6127500 1! #6127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6128000 0! #6128500 1! #6128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6129000 0! #6129500 1! #6129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6130000 0! #6130500 1! #6130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6131000 0! #6131500 1! #6131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6132000 0! #6132500 1! #6132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6133000 0! #6133500 1! #6133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6134000 0! #6134500 1! #6134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6135000 0! #6135500 1! #6135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6136000 0! #6136500 1! #6136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6137000 0! #6137500 1! #6137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6138000 0! #6138500 1! #6138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6139000 0! #6139500 1! #6139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6140000 0! #6140500 1! #6140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6141000 0! #6141500 1! #6141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6142000 0! #6142500 1! #6142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6143000 0! #6143500 1! #6143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6144000 0! #6144500 1! #6144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6145000 0! #6145500 1! #6145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6146000 0! #6146500 1! #6146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6147000 0! #6147500 1! #6147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6148000 0! #6148500 1! #6148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #6149000 0! #6149500 1! #6149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6150000 0! #6150500 1! #6150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6151000 0! #6151500 1! #6151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6152000 0! #6152500 1! #6152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6153000 0! #6153500 1! #6153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6154000 0! #6154500 1! #6154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6155000 0! #6155500 1! #6155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6156000 0! #6156500 1! #6156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6157000 0! #6157500 1! #6157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6158000 0! #6158500 1! #6158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6159000 0! #6159500 1! #6159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6160000 0! #6160500 1! #6160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6161000 0! #6161500 1! #6161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6162000 0! #6162500 1! #6162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6163000 0! #6163500 1! #6163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6164000 0! #6164500 1! #6164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6165000 0! #6165500 1! #6165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6166000 0! #6166500 1! #6166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6167000 0! #6167500 1! #6167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6168000 0! #6168500 1! #6168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6169000 0! #6169500 1! #6169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6170000 0! #6170500 1! #6170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6171000 0! #6171500 1! #6171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6172000 0! #6172500 1! #6172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6173000 0! #6173500 1! #6173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6174000 0! #6174500 1! #6174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6175000 0! #6175500 1! #6175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6176000 0! #6176500 1! #6176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6177000 0! #6177500 1! #6177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6178000 0! #6178500 1! #6178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6179000 0! #6179500 1! #6179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6180000 0! #6180500 1! #6180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6181000 0! #6181500 1! #6181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6182000 0! #6182500 1! #6182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6183000 0! #6183500 1! #6183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6184000 0! #6184500 1! #6184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6185000 0! #6185500 1! #6185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6186000 0! #6186500 1! #6186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6187000 0! #6187500 1! #6187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6188000 0! #6188500 1! #6188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6189000 0! #6189500 1! #6189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6190000 0! #6190500 1! #6190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6191000 0! #6191500 1! #6191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6192000 0! #6192500 1! #6192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6193000 0! #6193500 1! #6193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6194000 0! #6194500 1! #6194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6195000 0! #6195500 1! #6195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6196000 0! #6196500 1! #6196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6197000 0! #6197500 1! #6197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6198000 0! #6198500 1! #6198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6199000 0! #6199500 1! #6199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6200000 0! #6200500 1! #6200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6201000 0! #6201500 1! #6201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6202000 0! #6202500 1! #6202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6203000 0! #6203500 1! #6203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6204000 0! #6204500 1! #6204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6205000 0! #6205500 1! #6205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6206000 0! #6206500 1! #6206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6207000 0! #6207500 1! #6207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6208000 0! #6208500 1! #6208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6209000 0! #6209500 1! #6209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6210000 0! #6210500 1! #6210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6211000 0! #6211500 1! #6211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6212000 0! #6212500 1! #6212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6213000 0! #6213500 1! #6213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6214000 0! #6214500 1! #6214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6215000 0! #6215500 1! #6215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6216000 0! #6216500 1! #6216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6217000 0! #6217500 1! #6217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6218000 0! #6218500 1! #6218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6219000 0! #6219500 1! #6219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6220000 0! #6220500 1! #6220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6221000 0! #6221500 1! #6221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6222000 0! #6222500 1! #6222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6223000 0! #6223500 1! #6223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6224000 0! #6224500 1! #6224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6225000 0! #6225500 1! #6225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6226000 0! #6226500 1! #6226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6227000 0! #6227500 1! #6227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6228000 0! #6228500 1! #6228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6229000 0! #6229500 1! #6229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6230000 0! #6230500 1! #6230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6231000 0! #6231500 1! #6231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6232000 0! #6232500 1! #6232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6233000 0! #6233500 1! #6233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6234000 0! #6234500 1! #6234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6235000 0! #6235500 1! #6235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6236000 0! #6236500 1! #6236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6237000 0! #6237500 1! #6237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6238000 0! #6238500 1! #6238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6239000 0! #6239500 1! #6239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6240000 0! #6240500 1! #6240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6241000 0! #6241500 1! #6241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6242000 0! #6242500 1! #6242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6243000 0! #6243500 1! #6243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6244000 0! #6244500 1! #6244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6245000 0! #6245500 1! #6245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6246000 0! #6246500 1! #6246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6247000 0! #6247500 1! #6247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6248000 0! #6248500 1! #6248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6249000 0! #6249500 1! #6249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6250000 0! #6250500 1! #6250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #6251000 0! #6251500 1! #6251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6252000 0! #6252500 1! #6252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6253000 0! #6253500 1! #6253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6254000 0! #6254500 1! #6254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6255000 0! #6255500 1! #6255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6256000 0! #6256500 1! #6256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6257000 0! #6257500 1! #6257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6258000 0! #6258500 1! #6258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6259000 0! #6259500 1! #6259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6260000 0! #6260500 1! #6260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6261000 0! #6261500 1! #6261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6262000 0! #6262500 1! #6262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6263000 0! #6263500 1! #6263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6264000 0! #6264500 1! #6264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6265000 0! #6265500 1! #6265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6266000 0! #6266500 1! #6266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6267000 0! #6267500 1! #6267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6268000 0! #6268500 1! #6268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6269000 0! #6269500 1! #6269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6270000 0! #6270500 1! #6270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6271000 0! #6271500 1! #6271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6272000 0! #6272500 1! #6272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6273000 0! #6273500 1! #6273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6274000 0! #6274500 1! #6274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6275000 0! #6275500 1! #6275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6276000 0! #6276500 1! #6276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6277000 0! #6277500 1! #6277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6278000 0! #6278500 1! #6278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6279000 0! #6279500 1! #6279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6280000 0! #6280500 1! #6280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6281000 0! #6281500 1! #6281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6282000 0! #6282500 1! #6282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6283000 0! #6283500 1! #6283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6284000 0! #6284500 1! #6284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6285000 0! #6285500 1! #6285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6286000 0! #6286500 1! #6286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6287000 0! #6287500 1! #6287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6288000 0! #6288500 1! #6288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6289000 0! #6289500 1! #6289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6290000 0! #6290500 1! #6290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6291000 0! #6291500 1! #6291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6292000 0! #6292500 1! #6292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6293000 0! #6293500 1! #6293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6294000 0! #6294500 1! #6294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6295000 0! #6295500 1! #6295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6296000 0! #6296500 1! #6296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6297000 0! #6297500 1! #6297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6298000 0! #6298500 1! #6298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6299000 0! #6299500 1! #6299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6300000 0! #6300500 1! #6300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6301000 0! #6301500 1! #6301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #6301700 b10 g b10101001 c #6302000 0! #6302500 1! #6302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6303000 0! #6303500 1! #6303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6304000 0! #6304500 1! #6304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6305000 0! #6305500 1! #6305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6306000 0! #6306500 1! #6306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6307000 0! #6307500 1! #6307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6308000 0! #6308500 1! #6308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6309000 0! #6309500 1! #6309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6310000 0! #6310500 1! #6310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6311000 0! #6311500 1! #6311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6312000 0! #6312500 1! #6312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6313000 0! #6313500 1! #6313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6314000 0! #6314500 1! #6314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6315000 0! #6315500 1! #6315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6316000 0! #6316500 1! #6316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6317000 0! #6317500 1! #6317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6318000 0! #6318500 1! #6318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6319000 0! #6319500 1! #6319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6320000 0! #6320500 1! #6320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6321000 0! #6321500 1! #6321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6322000 0! #6322500 1! #6322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6323000 0! #6323500 1! #6323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6324000 0! #6324500 1! #6324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6325000 0! #6325500 1! #6325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6326000 0! #6326500 1! #6326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6327000 0! #6327500 1! #6327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6328000 0! #6328500 1! #6328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6329000 0! #6329500 1! #6329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6330000 0! #6330500 1! #6330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6331000 0! #6331500 1! #6331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6332000 0! #6332500 1! #6332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6333000 0! #6333500 1! #6333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6334000 0! #6334500 1! #6334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6335000 0! #6335500 1! #6335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6336000 0! #6336500 1! #6336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6337000 0! #6337500 1! #6337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6338000 0! #6338500 1! #6338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6339000 0! #6339500 1! #6339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6340000 0! #6340500 1! #6340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6341000 0! #6341500 1! #6341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6342000 0! #6342500 1! #6342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6343000 0! #6343500 1! #6343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6344000 0! #6344500 1! #6344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6345000 0! #6345500 1! #6345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6346000 0! #6346500 1! #6346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6347000 0! #6347500 1! #6347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6348000 0! #6348500 1! #6348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6349000 0! #6349500 1! #6349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6350000 0! #6350500 1! #6350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6351000 0! #6351500 1! #6351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6352000 0! #6352500 1! #6352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6353000 0! #6353500 1! #6353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6354000 0! #6354500 1! #6354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6355000 0! #6355500 1! #6355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6356000 0! #6356500 1! #6356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6357000 0! #6357500 1! #6357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6358000 0! #6358500 1! #6358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6359000 0! #6359500 1! #6359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6360000 0! #6360500 1! #6360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6361000 0! #6361500 1! #6361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6362000 0! #6362500 1! #6362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6363000 0! #6363500 1! #6363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6364000 0! #6364500 1! #6364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6365000 0! #6365500 1! #6365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6366000 0! #6366500 1! #6366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6367000 0! #6367500 1! #6367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6368000 0! #6368500 1! #6368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6369000 0! #6369500 1! #6369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6370000 0! #6370500 1! #6370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6371000 0! #6371500 1! #6371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6372000 0! #6372500 1! #6372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6373000 0! #6373500 1! #6373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6374000 0! #6374500 1! #6374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6375000 0! #6375500 1! #6375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6376000 0! #6376500 1! #6376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6377000 0! #6377500 1! #6377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6378000 0! #6378500 1! #6378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6379000 0! #6379500 1! #6379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6380000 0! #6380500 1! #6380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6381000 0! #6381500 1! #6381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6382000 0! #6382500 1! #6382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6383000 0! #6383500 1! #6383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6384000 0! #6384500 1! #6384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6385000 0! #6385500 1! #6385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6386000 0! #6386500 1! #6386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6387000 0! #6387500 1! #6387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6388000 0! #6388500 1! #6388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6389000 0! #6389500 1! #6389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6390000 0! #6390500 1! #6390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6391000 0! #6391500 1! #6391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6392000 0! #6392500 1! #6392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6393000 0! #6393500 1! #6393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6394000 0! #6394500 1! #6394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6395000 0! #6395500 1! #6395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6396000 0! #6396500 1! #6396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6397000 0! #6397500 1! #6397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6398000 0! #6398500 1! #6398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6399000 0! #6399500 1! #6399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6400000 0! #6400500 1! #6400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6401000 0! #6401500 1! #6401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6402000 0! #6402500 1! #6402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6403000 0! #6403500 1! #6403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #6404000 0! #6404500 1! #6404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6405000 0! #6405500 1! #6405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6406000 0! #6406500 1! #6406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6407000 0! #6407500 1! #6407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6408000 0! #6408500 1! #6408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6409000 0! #6409500 1! #6409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6410000 0! #6410500 1! #6410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6411000 0! #6411500 1! #6411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6412000 0! #6412500 1! #6412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6413000 0! #6413500 1! #6413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6414000 0! #6414500 1! #6414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6415000 0! #6415500 1! #6415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6416000 0! #6416500 1! #6416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6417000 0! #6417500 1! #6417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6418000 0! #6418500 1! #6418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6419000 0! #6419500 1! #6419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6420000 0! #6420500 1! #6420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6421000 0! #6421500 1! #6421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6422000 0! #6422500 1! #6422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6423000 0! #6423500 1! #6423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6424000 0! #6424500 1! #6424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6425000 0! #6425500 1! #6425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6426000 0! #6426500 1! #6426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6427000 0! #6427500 1! #6427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6428000 0! #6428500 1! #6428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6429000 0! #6429500 1! #6429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6430000 0! #6430500 1! #6430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6431000 0! #6431500 1! #6431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6432000 0! #6432500 1! #6432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6433000 0! #6433500 1! #6433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6434000 0! #6434500 1! #6434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6435000 0! #6435500 1! #6435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6436000 0! #6436500 1! #6436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6437000 0! #6437500 1! #6437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6438000 0! #6438500 1! #6438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6439000 0! #6439500 1! #6439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6440000 0! #6440500 1! #6440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6441000 0! #6441500 1! #6441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6442000 0! #6442500 1! #6442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6443000 0! #6443500 1! #6443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6444000 0! #6444500 1! #6444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6445000 0! #6445500 1! #6445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6446000 0! #6446500 1! #6446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6447000 0! #6447500 1! #6447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6448000 0! #6448500 1! #6448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6449000 0! #6449500 1! #6449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6450000 0! #6450500 1! #6450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6451000 0! #6451500 1! #6451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6452000 0! #6452500 1! #6452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6453000 0! #6453500 1! #6453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6454000 0! #6454500 1! #6454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6455000 0! #6455500 1! #6455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6456000 0! #6456500 1! #6456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6457000 0! #6457500 1! #6457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6458000 0! #6458500 1! #6458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6459000 0! #6459500 1! #6459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6460000 0! #6460500 1! #6460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6461000 0! #6461500 1! #6461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6462000 0! #6462500 1! #6462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6463000 0! #6463500 1! #6463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6464000 0! #6464500 1! #6464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6465000 0! #6465500 1! #6465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6466000 0! #6466500 1! #6466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6467000 0! #6467500 1! #6467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6468000 0! #6468500 1! #6468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6469000 0! #6469500 1! #6469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6470000 0! #6470500 1! #6470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6471000 0! #6471500 1! #6471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6472000 0! #6472500 1! #6472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6473000 0! #6473500 1! #6473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6474000 0! #6474500 1! #6474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6475000 0! #6475500 1! #6475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6476000 0! #6476500 1! #6476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6477000 0! #6477500 1! #6477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6478000 0! #6478500 1! #6478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6479000 0! #6479500 1! #6479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6480000 0! #6480500 1! #6480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6481000 0! #6481500 1! #6481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6482000 0! #6482500 1! #6482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6483000 0! #6483500 1! #6483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6484000 0! #6484500 1! #6484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6485000 0! #6485500 1! #6485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6486000 0! #6486500 1! #6486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6487000 0! #6487500 1! #6487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6488000 0! #6488500 1! #6488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6489000 0! #6489500 1! #6489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6490000 0! #6490500 1! #6490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6491000 0! #6491500 1! #6491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6492000 0! #6492500 1! #6492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6493000 0! #6493500 1! #6493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6494000 0! #6494500 1! #6494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6495000 0! #6495500 1! #6495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6496000 0! #6496500 1! #6496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6497000 0! #6497500 1! #6497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6498000 0! #6498500 1! #6498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6499000 0! #6499500 1! #6499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6500000 0! #6500500 1! #6500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6501000 0! #6501500 1! #6501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6502000 0! #6502500 1! #6502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6503000 0! #6503500 1! #6503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6504000 0! #6504500 1! #6504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6505000 0! #6505500 1! #6505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #6506000 0! #6506500 1! #6506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6507000 0! #6507500 1! #6507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6508000 0! #6508500 1! #6508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6509000 0! #6509500 1! #6509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6510000 0! #6510500 1! #6510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6511000 0! #6511500 1! #6511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6512000 0! #6512500 1! #6512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6513000 0! #6513500 1! #6513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6514000 0! #6514500 1! #6514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6515000 0! #6515500 1! #6515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6516000 0! #6516500 1! #6516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6517000 0! #6517500 1! #6517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6518000 0! #6518500 1! #6518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6519000 0! #6519500 1! #6519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6520000 0! #6520500 1! #6520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6521000 0! #6521500 1! #6521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6522000 0! #6522500 1! #6522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6523000 0! #6523500 1! #6523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6524000 0! #6524500 1! #6524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6525000 0! #6525500 1! #6525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6526000 0! #6526500 1! #6526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6527000 0! #6527500 1! #6527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6528000 0! #6528500 1! #6528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6529000 0! #6529500 1! #6529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6530000 0! #6530500 1! #6530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6531000 0! #6531500 1! #6531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6532000 0! #6532500 1! #6532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6533000 0! #6533500 1! #6533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6534000 0! #6534500 1! #6534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6535000 0! #6535500 1! #6535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6536000 0! #6536500 1! #6536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6537000 0! #6537500 1! #6537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6538000 0! #6538500 1! #6538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6539000 0! #6539500 1! #6539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6540000 0! #6540500 1! #6540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6541000 0! #6541500 1! #6541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6542000 0! #6542500 1! #6542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6543000 0! #6543500 1! #6543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6544000 0! #6544500 1! #6544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6545000 0! #6545500 1! #6545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6546000 0! #6546500 1! #6546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6547000 0! #6547500 1! #6547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6548000 0! #6548500 1! #6548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6549000 0! #6549500 1! #6549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6550000 0! #6550500 1! #6550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6551000 0! #6551500 1! #6551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6552000 0! #6552500 1! #6552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6553000 0! #6553500 1! #6553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6554000 0! #6554500 1! #6554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6555000 0! #6555500 1! #6555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6556000 0! #6556500 1! #6556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #6556700 b1 g b1010010 c #6557000 0! #6557500 1! #6557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6558000 0! #6558500 1! #6558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6559000 0! #6559500 1! #6559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6560000 0! #6560500 1! #6560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6561000 0! #6561500 1! #6561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6562000 0! #6562500 1! #6562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6563000 0! #6563500 1! #6563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6564000 0! #6564500 1! #6564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6565000 0! #6565500 1! #6565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6566000 0! #6566500 1! #6566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6567000 0! #6567500 1! #6567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6568000 0! #6568500 1! #6568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6569000 0! #6569500 1! #6569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6570000 0! #6570500 1! #6570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6571000 0! #6571500 1! #6571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6572000 0! #6572500 1! #6572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6573000 0! #6573500 1! #6573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6574000 0! #6574500 1! #6574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6575000 0! #6575500 1! #6575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6576000 0! #6576500 1! #6576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6577000 0! #6577500 1! #6577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6578000 0! #6578500 1! #6578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6579000 0! #6579500 1! #6579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6580000 0! #6580500 1! #6580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6581000 0! #6581500 1! #6581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6582000 0! #6582500 1! #6582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6583000 0! #6583500 1! #6583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6584000 0! #6584500 1! #6584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6585000 0! #6585500 1! #6585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6586000 0! #6586500 1! #6586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6587000 0! #6587500 1! #6587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6588000 0! #6588500 1! #6588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6589000 0! #6589500 1! #6589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6590000 0! #6590500 1! #6590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6591000 0! #6591500 1! #6591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6592000 0! #6592500 1! #6592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6593000 0! #6593500 1! #6593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6594000 0! #6594500 1! #6594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6595000 0! #6595500 1! #6595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6596000 0! #6596500 1! #6596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6597000 0! #6597500 1! #6597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6598000 0! #6598500 1! #6598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6599000 0! #6599500 1! #6599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6600000 0! #6600500 1! #6600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6601000 0! #6601500 1! #6601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6602000 0! #6602500 1! #6602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6603000 0! #6603500 1! #6603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6604000 0! #6604500 1! #6604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6605000 0! #6605500 1! #6605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6606000 0! #6606500 1! #6606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6607000 0! #6607500 1! #6607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6608000 0! #6608500 1! #6608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6609000 0! #6609500 1! #6609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6610000 0! #6610500 1! #6610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6611000 0! #6611500 1! #6611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6612000 0! #6612500 1! #6612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6613000 0! #6613500 1! #6613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6614000 0! #6614500 1! #6614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6615000 0! #6615500 1! #6615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6616000 0! #6616500 1! #6616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6617000 0! #6617500 1! #6617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6618000 0! #6618500 1! #6618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6619000 0! #6619500 1! #6619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6620000 0! #6620500 1! #6620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6621000 0! #6621500 1! #6621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6622000 0! #6622500 1! #6622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6623000 0! #6623500 1! #6623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6624000 0! #6624500 1! #6624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6625000 0! #6625500 1! #6625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6626000 0! #6626500 1! #6626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6627000 0! #6627500 1! #6627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6628000 0! #6628500 1! #6628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6629000 0! #6629500 1! #6629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6630000 0! #6630500 1! #6630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6631000 0! #6631500 1! #6631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6632000 0! #6632500 1! #6632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6633000 0! #6633500 1! #6633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6634000 0! #6634500 1! #6634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6635000 0! #6635500 1! #6635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6636000 0! #6636500 1! #6636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6637000 0! #6637500 1! #6637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6638000 0! #6638500 1! #6638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6639000 0! #6639500 1! #6639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6640000 0! #6640500 1! #6640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6641000 0! #6641500 1! #6641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6642000 0! #6642500 1! #6642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6643000 0! #6643500 1! #6643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6644000 0! #6644500 1! #6644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6645000 0! #6645500 1! #6645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6646000 0! #6646500 1! #6646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6647000 0! #6647500 1! #6647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6648000 0! #6648500 1! #6648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6649000 0! #6649500 1! #6649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6650000 0! #6650500 1! #6650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6651000 0! #6651500 1! #6651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6652000 0! #6652500 1! #6652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6653000 0! #6653500 1! #6653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6654000 0! #6654500 1! #6654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6655000 0! #6655500 1! #6655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6656000 0! #6656500 1! #6656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6657000 0! #6657500 1! #6657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6658000 0! #6658500 1! #6658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #6659000 0! #6659500 1! #6659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6660000 0! #6660500 1! #6660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6661000 0! #6661500 1! #6661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6662000 0! #6662500 1! #6662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6663000 0! #6663500 1! #6663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6664000 0! #6664500 1! #6664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6665000 0! #6665500 1! #6665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6666000 0! #6666500 1! #6666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6667000 0! #6667500 1! #6667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6668000 0! #6668500 1! #6668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6669000 0! #6669500 1! #6669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6670000 0! #6670500 1! #6670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6671000 0! #6671500 1! #6671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6672000 0! #6672500 1! #6672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6673000 0! #6673500 1! #6673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6674000 0! #6674500 1! #6674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6675000 0! #6675500 1! #6675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6676000 0! #6676500 1! #6676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6677000 0! #6677500 1! #6677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6678000 0! #6678500 1! #6678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6679000 0! #6679500 1! #6679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6680000 0! #6680500 1! #6680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6681000 0! #6681500 1! #6681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6682000 0! #6682500 1! #6682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6683000 0! #6683500 1! #6683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6684000 0! #6684500 1! #6684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6685000 0! #6685500 1! #6685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6686000 0! #6686500 1! #6686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6687000 0! #6687500 1! #6687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6688000 0! #6688500 1! #6688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6689000 0! #6689500 1! #6689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6690000 0! #6690500 1! #6690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6691000 0! #6691500 1! #6691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6692000 0! #6692500 1! #6692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6693000 0! #6693500 1! #6693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6694000 0! #6694500 1! #6694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6695000 0! #6695500 1! #6695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6696000 0! #6696500 1! #6696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6697000 0! #6697500 1! #6697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6698000 0! #6698500 1! #6698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6699000 0! #6699500 1! #6699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6700000 0! #6700500 1! #6700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6701000 0! #6701500 1! #6701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6702000 0! #6702500 1! #6702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6703000 0! #6703500 1! #6703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6704000 0! #6704500 1! #6704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6705000 0! #6705500 1! #6705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6706000 0! #6706500 1! #6706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6707000 0! #6707500 1! #6707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6708000 0! #6708500 1! #6708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6709000 0! #6709500 1! #6709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6710000 0! #6710500 1! #6710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6711000 0! #6711500 1! #6711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6712000 0! #6712500 1! #6712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6713000 0! #6713500 1! #6713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6714000 0! #6714500 1! #6714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6715000 0! #6715500 1! #6715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6716000 0! #6716500 1! #6716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6717000 0! #6717500 1! #6717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6718000 0! #6718500 1! #6718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6719000 0! #6719500 1! #6719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6720000 0! #6720500 1! #6720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6721000 0! #6721500 1! #6721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6722000 0! #6722500 1! #6722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6723000 0! #6723500 1! #6723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6724000 0! #6724500 1! #6724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6725000 0! #6725500 1! #6725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6726000 0! #6726500 1! #6726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6727000 0! #6727500 1! #6727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6728000 0! #6728500 1! #6728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6729000 0! #6729500 1! #6729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6730000 0! #6730500 1! #6730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6731000 0! #6731500 1! #6731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6732000 0! #6732500 1! #6732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6733000 0! #6733500 1! #6733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6734000 0! #6734500 1! #6734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6735000 0! #6735500 1! #6735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6736000 0! #6736500 1! #6736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6737000 0! #6737500 1! #6737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6738000 0! #6738500 1! #6738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6739000 0! #6739500 1! #6739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6740000 0! #6740500 1! #6740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6741000 0! #6741500 1! #6741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6742000 0! #6742500 1! #6742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6743000 0! #6743500 1! #6743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6744000 0! #6744500 1! #6744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6745000 0! #6745500 1! #6745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6746000 0! #6746500 1! #6746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6747000 0! #6747500 1! #6747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6748000 0! #6748500 1! #6748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6749000 0! #6749500 1! #6749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6750000 0! #6750500 1! #6750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6751000 0! #6751500 1! #6751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6752000 0! #6752500 1! #6752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6753000 0! #6753500 1! #6753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6754000 0! #6754500 1! #6754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6755000 0! #6755500 1! #6755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6756000 0! #6756500 1! #6756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6757000 0! #6757500 1! #6757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6758000 0! #6758500 1! #6758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6759000 0! #6759500 1! #6759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6760000 0! #6760500 1! #6760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #6761000 0! #6761500 1! #6761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6762000 0! #6762500 1! #6762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6763000 0! #6763500 1! #6763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6764000 0! #6764500 1! #6764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6765000 0! #6765500 1! #6765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6766000 0! #6766500 1! #6766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6767000 0! #6767500 1! #6767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6768000 0! #6768500 1! #6768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6769000 0! #6769500 1! #6769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6770000 0! #6770500 1! #6770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6771000 0! #6771500 1! #6771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6772000 0! #6772500 1! #6772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6773000 0! #6773500 1! #6773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6774000 0! #6774500 1! #6774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6775000 0! #6775500 1! #6775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6776000 0! #6776500 1! #6776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6777000 0! #6777500 1! #6777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6778000 0! #6778500 1! #6778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6779000 0! #6779500 1! #6779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6780000 0! #6780500 1! #6780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6781000 0! #6781500 1! #6781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6782000 0! #6782500 1! #6782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6783000 0! #6783500 1! #6783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6784000 0! #6784500 1! #6784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6785000 0! #6785500 1! #6785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6786000 0! #6786500 1! #6786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6787000 0! #6787500 1! #6787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6788000 0! #6788500 1! #6788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6789000 0! #6789500 1! #6789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6790000 0! #6790500 1! #6790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6791000 0! #6791500 1! #6791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6792000 0! #6792500 1! #6792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6793000 0! #6793500 1! #6793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6794000 0! #6794500 1! #6794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6795000 0! #6795500 1! #6795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6796000 0! #6796500 1! #6796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6797000 0! #6797500 1! #6797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6798000 0! #6798500 1! #6798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6799000 0! #6799500 1! #6799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6800000 0! #6800500 1! #6800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6801000 0! #6801500 1! #6801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6802000 0! #6802500 1! #6802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6803000 0! #6803500 1! #6803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6804000 0! #6804500 1! #6804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6805000 0! #6805500 1! #6805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6806000 0! #6806500 1! #6806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6807000 0! #6807500 1! #6807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6808000 0! #6808500 1! #6808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6809000 0! #6809500 1! #6809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6810000 0! #6810500 1! #6810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6811000 0! #6811500 1! #6811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #6811700 b0 g b10100101 c 1h #6812000 0! #6812500 1! #6812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6813000 0! #6813500 1! #6813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6814000 0! #6814500 1! #6814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6815000 0! #6815500 1! #6815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6816000 0! #6816500 1! #6816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6817000 0! #6817500 1! #6817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6818000 0! #6818500 1! #6818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6819000 0! #6819500 1! #6819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6820000 0! #6820500 1! #6820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6821000 0! #6821500 1! #6821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6822000 0! #6822500 1! #6822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6823000 0! #6823500 1! #6823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6824000 0! #6824500 1! #6824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6825000 0! #6825500 1! #6825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6826000 0! #6826500 1! #6826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6827000 0! #6827500 1! #6827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6828000 0! #6828500 1! #6828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6829000 0! #6829500 1! #6829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6830000 0! #6830500 1! #6830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6831000 0! #6831500 1! #6831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6832000 0! #6832500 1! #6832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6833000 0! #6833500 1! #6833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6834000 0! #6834500 1! #6834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6835000 0! #6835500 1! #6835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6836000 0! #6836500 1! #6836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6837000 0! #6837500 1! #6837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6838000 0! #6838500 1! #6838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6839000 0! #6839500 1! #6839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6840000 0! #6840500 1! #6840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6841000 0! #6841500 1! #6841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6842000 0! #6842500 1! #6842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6843000 0! #6843500 1! #6843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6844000 0! #6844500 1! #6844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6845000 0! #6845500 1! #6845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6846000 0! #6846500 1! #6846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6847000 0! #6847500 1! #6847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6848000 0! #6848500 1! #6848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6849000 0! #6849500 1! #6849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6850000 0! #6850500 1! #6850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6851000 0! #6851500 1! #6851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6852000 0! #6852500 1! #6852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6853000 0! #6853500 1! #6853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6854000 0! #6854500 1! #6854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6855000 0! #6855500 1! #6855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6856000 0! #6856500 1! #6856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6857000 0! #6857500 1! #6857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6858000 0! #6858500 1! #6858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6859000 0! #6859500 1! #6859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6860000 0! #6860500 1! #6860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6861000 0! #6861500 1! #6861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6862000 0! #6862500 1! #6862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6863000 0! #6863500 1! #6863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6864000 0! #6864500 1! #6864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6865000 0! #6865500 1! #6865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6866000 0! #6866500 1! #6866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6867000 0! #6867500 1! #6867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6868000 0! #6868500 1! #6868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6869000 0! #6869500 1! #6869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6870000 0! #6870500 1! #6870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6871000 0! #6871500 1! #6871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6872000 0! #6872500 1! #6872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6873000 0! #6873500 1! #6873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6874000 0! #6874500 1! #6874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6875000 0! #6875500 1! #6875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6876000 0! #6876500 1! #6876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6877000 0! #6877500 1! #6877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6878000 0! #6878500 1! #6878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6879000 0! #6879500 1! #6879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6880000 0! #6880500 1! #6880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6881000 0! #6881500 1! #6881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6882000 0! #6882500 1! #6882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6883000 0! #6883500 1! #6883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6884000 0! #6884500 1! #6884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6885000 0! #6885500 1! #6885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6886000 0! #6886500 1! #6886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6887000 0! #6887500 1! #6887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6888000 0! #6888500 1! #6888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6889000 0! #6889500 1! #6889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6890000 0! #6890500 1! #6890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6891000 0! #6891500 1! #6891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6892000 0! #6892500 1! #6892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6893000 0! #6893500 1! #6893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6894000 0! #6894500 1! #6894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6895000 0! #6895500 1! #6895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6896000 0! #6896500 1! #6896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6897000 0! #6897500 1! #6897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6898000 0! #6898500 1! #6898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6899000 0! #6899500 1! #6899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6900000 0! #6900500 1! #6900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6901000 0! #6901500 1! #6901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6902000 0! #6902500 1! #6902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6903000 0! #6903500 1! #6903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6904000 0! #6904500 1! #6904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6905000 0! #6905500 1! #6905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6906000 0! #6906500 1! #6906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6907000 0! #6907500 1! #6907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6908000 0! #6908500 1! #6908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6909000 0! #6909500 1! #6909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6910000 0! #6910500 1! #6910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6911000 0! #6911500 1! #6911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6912000 0! #6912500 1! #6912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6913000 0! #6913500 1! #6913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #6913700 b101 q 0j 0O #6913800 b10 ] #6914000 0! #6914500 1! #6914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6915000 0! #6915500 1! #6915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6916000 0! #6916500 1! #6916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6917000 0! #6917500 1! #6917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6918000 0! #6918500 1! #6918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6919000 0! #6919500 1! #6919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6920000 0! #6920500 1! #6920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6921000 0! #6921500 1! #6921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6922000 0! #6922500 1! #6922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6923000 0! #6923500 1! #6923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6924000 0! #6924500 1! #6924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6925000 0! #6925500 1! #6925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6926000 0! #6926500 1! #6926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6927000 0! #6927500 1! #6927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6928000 0! #6928500 1! #6928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6929000 0! #6929500 1! #6929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6930000 0! #6930500 1! #6930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6931000 0! #6931500 1! #6931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6932000 0! #6932500 1! #6932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6933000 0! #6933500 1! #6933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6934000 0! #6934500 1! #6934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6935000 0! #6935500 1! #6935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6936000 0! #6936500 1! #6936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6937000 0! #6937500 1! #6937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6938000 0! #6938500 1! #6938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6939000 0! #6939500 1! #6939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6940000 0! #6940500 1! #6940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6941000 0! #6941500 1! #6941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6942000 0! #6942500 1! #6942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6943000 0! #6943500 1! #6943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6944000 0! #6944500 1! #6944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6945000 0! #6945500 1! #6945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6946000 0! #6946500 1! #6946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6947000 0! #6947500 1! #6947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6948000 0! #6948500 1! #6948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6949000 0! #6949500 1! #6949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6950000 0! #6950500 1! #6950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6951000 0! #6951500 1! #6951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6952000 0! #6952500 1! #6952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6953000 0! #6953500 1! #6953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6954000 0! #6954500 1! #6954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6955000 0! #6955500 1! #6955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6956000 0! #6956500 1! #6956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6957000 0! #6957500 1! #6957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6958000 0! #6958500 1! #6958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6959000 0! #6959500 1! #6959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6960000 0! #6960500 1! #6960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6961000 0! #6961500 1! #6961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6962000 0! #6962500 1! #6962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6963000 0! #6963500 1! #6963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6964000 0! #6964500 1! #6964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6965000 0! #6965500 1! #6965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6966000 0! #6966500 1! #6966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6967000 0! #6967500 1! #6967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6968000 0! #6968500 1! #6968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6969000 0! #6969500 1! #6969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6970000 0! #6970500 1! #6970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6971000 0! #6971500 1! #6971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6972000 0! #6972500 1! #6972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6973000 0! #6973500 1! #6973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6974000 0! #6974500 1! #6974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6975000 0! #6975500 1! #6975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6976000 0! #6976500 1! #6976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6977000 0! #6977500 1! #6977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6978000 0! #6978500 1! #6978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6979000 0! #6979500 1! #6979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6980000 0! #6980500 1! #6980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6981000 0! #6981500 1! #6981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6982000 0! #6982500 1! #6982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6983000 0! #6983500 1! #6983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6984000 0! #6984500 1! #6984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6985000 0! #6985500 1! #6985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6986000 0! #6986500 1! #6986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6987000 0! #6987500 1! #6987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6988000 0! #6988500 1! #6988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6989000 0! #6989500 1! #6989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6990000 0! #6990500 1! #6990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6991000 0! #6991500 1! #6991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6992000 0! #6992500 1! #6992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6993000 0! #6993500 1! #6993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6994000 0! #6994500 1! #6994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6995000 0! #6995500 1! #6995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6996000 0! #6996500 1! #6996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6997000 0! #6997500 1! #6997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #6998000 0! #6998500 1! #6998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #6999000 0! #6999500 1! #6999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7000000 0! #7000500 1! #7000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7001000 0! #7001500 1! #7001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7002000 0! #7002500 1! #7002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7003000 0! #7003500 1! #7003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7004000 0! #7004500 1! #7004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7005000 0! #7005500 1! #7005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7006000 0! #7006500 1! #7006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7007000 0! #7007500 1! #7007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7008000 0! #7008500 1! #7008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7009000 0! #7009500 1! #7009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7010000 0! #7010500 1! #7010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7011000 0! #7011500 1! #7011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7012000 0! #7012500 1! #7012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7013000 0! #7013500 1! #7013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7014000 0! #7014500 1! #7014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7015000 0! #7015500 1! #7015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7016000 0! #7016500 1! #7016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7017000 0! #7017500 1! #7017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7018000 0! #7018500 1! #7018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7019000 0! #7019500 1! #7019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7020000 0! #7020500 1! #7020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7021000 0! #7021500 1! #7021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7022000 0! #7022500 1! #7022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7023000 0! #7023500 1! #7023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7024000 0! #7024500 1! #7024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7025000 0! #7025500 1! #7025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7026000 0! #7026500 1! #7026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7027000 0! #7027500 1! #7027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7028000 0! #7028500 1! #7028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7029000 0! #7029500 1! #7029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7030000 0! #7030500 1! #7030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7031000 0! #7031500 1! #7031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7032000 0! #7032500 1! #7032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7033000 0! #7033500 1! #7033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7034000 0! #7034500 1! #7034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7035000 0! #7035500 1! #7035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7036000 0! #7036500 1! #7036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7037000 0! #7037500 1! #7037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7038000 0! #7038500 1! #7038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7039000 0! #7039500 1! #7039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7040000 0! #7040500 1! #7040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7041000 0! #7041500 1! #7041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7042000 0! #7042500 1! #7042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7043000 0! #7043500 1! #7043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7044000 0! #7044500 1! #7044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7045000 0! #7045500 1! #7045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7046000 0! #7046500 1! #7046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7047000 0! #7047500 1! #7047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7048000 0! #7048500 1! #7048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7049000 0! #7049500 1! #7049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7050000 0! #7050500 1! #7050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7051000 0! #7051500 1! #7051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7052000 0! #7052500 1! #7052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7053000 0! #7053500 1! #7053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7054000 0! #7054500 1! #7054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7055000 0! #7055500 1! #7055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7056000 0! #7056500 1! #7056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7057000 0! #7057500 1! #7057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7058000 0! #7058500 1! #7058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7059000 0! #7059500 1! #7059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7060000 0! #7060500 1! #7060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7061000 0! #7061500 1! #7061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7062000 0! #7062500 1! #7062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7063000 0! #7063500 1! #7063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7064000 0! #7064500 1! #7064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7065000 0! #7065500 1! #7065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7066000 0! #7066500 1! #7066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #7066700 b111 g b1001010 c 0h #7067000 0! #7067500 1! #7067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7068000 0! #7068500 1! #7068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7069000 0! #7069500 1! #7069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7070000 0! #7070500 1! #7070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7071000 0! #7071500 1! #7071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7072000 0! #7072500 1! #7072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7073000 0! #7073500 1! #7073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7074000 0! #7074500 1! #7074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7075000 0! #7075500 1! #7075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7076000 0! #7076500 1! #7076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7077000 0! #7077500 1! #7077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7078000 0! #7078500 1! #7078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7079000 0! #7079500 1! #7079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7080000 0! #7080500 1! #7080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7081000 0! #7081500 1! #7081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7082000 0! #7082500 1! #7082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7083000 0! #7083500 1! #7083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7084000 0! #7084500 1! #7084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7085000 0! #7085500 1! #7085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7086000 0! #7086500 1! #7086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7087000 0! #7087500 1! #7087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7088000 0! #7088500 1! #7088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7089000 0! #7089500 1! #7089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7090000 0! #7090500 1! #7090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7091000 0! #7091500 1! #7091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7092000 0! #7092500 1! #7092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7093000 0! #7093500 1! #7093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7094000 0! #7094500 1! #7094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7095000 0! #7095500 1! #7095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7096000 0! #7096500 1! #7096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7097000 0! #7097500 1! #7097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7098000 0! #7098500 1! #7098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7099000 0! #7099500 1! #7099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7100000 0! #7100500 1! #7100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7101000 0! #7101500 1! #7101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7102000 0! #7102500 1! #7102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7103000 0! #7103500 1! #7103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7104000 0! #7104500 1! #7104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7105000 0! #7105500 1! #7105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7106000 0! #7106500 1! #7106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7107000 0! #7107500 1! #7107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7108000 0! #7108500 1! #7108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7109000 0! #7109500 1! #7109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7110000 0! #7110500 1! #7110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7111000 0! #7111500 1! #7111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7112000 0! #7112500 1! #7112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7113000 0! #7113500 1! #7113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7114000 0! #7114500 1! #7114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7115000 0! #7115500 1! #7115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7116000 0! #7116500 1! #7116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7117000 0! #7117500 1! #7117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7118000 0! #7118500 1! #7118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7119000 0! #7119500 1! #7119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7120000 0! #7120500 1! #7120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7121000 0! #7121500 1! #7121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7122000 0! #7122500 1! #7122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7123000 0! #7123500 1! #7123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7124000 0! #7124500 1! #7124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7125000 0! #7125500 1! #7125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7126000 0! #7126500 1! #7126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7127000 0! #7127500 1! #7127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7128000 0! #7128500 1! #7128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7129000 0! #7129500 1! #7129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7130000 0! #7130500 1! #7130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7131000 0! #7131500 1! #7131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7132000 0! #7132500 1! #7132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7133000 0! #7133500 1! #7133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7134000 0! #7134500 1! #7134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7135000 0! #7135500 1! #7135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7136000 0! #7136500 1! #7136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7137000 0! #7137500 1! #7137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7138000 0! #7138500 1! #7138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7139000 0! #7139500 1! #7139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7140000 0! #7140500 1! #7140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7141000 0! #7141500 1! #7141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7142000 0! #7142500 1! #7142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7143000 0! #7143500 1! #7143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7144000 0! #7144500 1! #7144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7145000 0! #7145500 1! #7145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7146000 0! #7146500 1! #7146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7147000 0! #7147500 1! #7147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7148000 0! #7148500 1! #7148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7149000 0! #7149500 1! #7149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7150000 0! #7150500 1! #7150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7151000 0! #7151500 1! #7151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7152000 0! #7152500 1! #7152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7153000 0! #7153500 1! #7153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7154000 0! #7154500 1! #7154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7155000 0! #7155500 1! #7155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7156000 0! #7156500 1! #7156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7157000 0! #7157500 1! #7157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7158000 0! #7158500 1! #7158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7159000 0! #7159500 1! #7159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7160000 0! #7160500 1! #7160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7161000 0! #7161500 1! #7161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7162000 0! #7162500 1! #7162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7163000 0! #7163500 1! #7163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7164000 0! #7164500 1! #7164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7165000 0! #7165500 1! #7165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7166000 0! #7166500 1! #7166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7167000 0! #7167500 1! #7167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7168000 0! #7168500 1! #7168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #7168700 1j 1i b100 q 1O #7169000 0! #7169500 1! #7169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7170000 0! #7170500 1! #7170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7171000 0! #7171500 1! #7171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000001 C #7172000 0! #7172500 1! #7172600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7173000 0! #7173500 1! #7173600 1E 1F 1G b1011010 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b10000000 C 1H #7174000 0! #7174500 1! #7174600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7174700 1E 1F 1G b1010000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #7175000 0! #7175500 1! #7175600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7176000 0! #7176500 1! #7176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #7177000 0! #7177500 1! #7177600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7178000 0! #7178500 1! #7178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7179000 0! #7179500 1! #7179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7180000 0! #7180500 1! #7180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7181000 0! #7181500 1! #7181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7182000 0! #7182500 1! #7182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7183000 0! #7183500 1! #7183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7184000 0! #7184500 1! #7184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7185000 0! #7185500 1! #7185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7186000 0! #7186500 1! #7186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7187000 0! #7187500 1! #7187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7188000 0! #7188500 1! #7188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7189000 0! #7189500 1! #7189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7190000 0! #7190500 1! #7190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7191000 0! #7191500 1! #7191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7192000 0! #7192500 1! #7192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7193000 0! #7193500 1! #7193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7194000 0! #7194500 1! #7194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7195000 0! #7195500 1! #7195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7196000 0! #7196500 1! #7196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7197000 0! #7197500 1! #7197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7198000 0! #7198500 1! #7198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7199000 0! #7199500 1! #7199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7200000 0! #7200500 1! #7200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7201000 0! #7201500 1! #7201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7202000 0! #7202500 1! #7202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7203000 0! #7203500 1! #7203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7204000 0! #7204500 1! #7204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7205000 0! #7205500 1! #7205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7206000 0! #7206500 1! #7206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7207000 0! #7207500 1! #7207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7208000 0! #7208500 1! #7208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7209000 0! #7209500 1! #7209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7210000 0! #7210500 1! #7210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7211000 0! #7211500 1! #7211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7212000 0! #7212500 1! #7212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7213000 0! #7213500 1! #7213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7214000 0! #7214500 1! #7214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7215000 0! #7215500 1! #7215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7216000 0! #7216500 1! #7216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7217000 0! #7217500 1! #7217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7218000 0! #7218500 1! #7218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7219000 0! #7219500 1! #7219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7220000 0! #7220500 1! #7220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7221000 0! #7221500 1! #7221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7222000 0! #7222500 1! #7222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7223000 0! #7223500 1! #7223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7224000 0! #7224500 1! #7224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7225000 0! #7225500 1! #7225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7226000 0! #7226500 1! #7226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7227000 0! #7227500 1! #7227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7228000 0! #7228500 1! #7228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7229000 0! #7229500 1! #7229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7230000 0! #7230500 1! #7230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7231000 0! #7231500 1! #7231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7232000 0! #7232500 1! #7232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7233000 0! #7233500 1! #7233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7234000 0! #7234500 1! #7234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7235000 0! #7235500 1! #7235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7236000 0! #7236500 1! #7236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7237000 0! #7237500 1! #7237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7238000 0! #7238500 1! #7238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7239000 0! #7239500 1! #7239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7240000 0! #7240500 1! #7240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7241000 0! #7241500 1! #7241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7242000 0! #7242500 1! #7242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7243000 0! #7243500 1! #7243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7244000 0! #7244500 1! #7244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7245000 0! #7245500 1! #7245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7246000 0! #7246500 1! #7246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7247000 0! #7247500 1! #7247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7248000 0! #7248500 1! #7248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7249000 0! #7249500 1! #7249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7250000 0! #7250500 1! #7250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7251000 0! #7251500 1! #7251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7252000 0! #7252500 1! #7252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7253000 0! #7253500 1! #7253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7254000 0! #7254500 1! #7254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7255000 0! #7255500 1! #7255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7256000 0! #7256500 1! #7256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7257000 0! #7257500 1! #7257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7258000 0! #7258500 1! #7258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7259000 0! #7259500 1! #7259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7260000 0! #7260500 1! #7260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7261000 0! #7261500 1! #7261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7262000 0! #7262500 1! #7262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7263000 0! #7263500 1! #7263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7264000 0! #7264500 1! #7264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7265000 0! #7265500 1! #7265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7266000 0! #7266500 1! #7266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7267000 0! #7267500 1! #7267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7268000 0! #7268500 1! #7268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7269000 0! #7269500 1! #7269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7270000 0! #7270500 1! #7270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #7271000 0! #7271500 1! #7271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7272000 0! #7272500 1! #7272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7273000 0! #7273500 1! #7273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7274000 0! #7274500 1! #7274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7275000 0! #7275500 1! #7275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7276000 0! #7276500 1! #7276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7277000 0! #7277500 1! #7277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7278000 0! #7278500 1! #7278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7279000 0! #7279500 1! #7279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7280000 0! #7280500 1! #7280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7281000 0! #7281500 1! #7281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7282000 0! #7282500 1! #7282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7283000 0! #7283500 1! #7283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7284000 0! #7284500 1! #7284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7285000 0! #7285500 1! #7285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7286000 0! #7286500 1! #7286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7287000 0! #7287500 1! #7287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7288000 0! #7288500 1! #7288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7289000 0! #7289500 1! #7289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7290000 0! #7290500 1! #7290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7291000 0! #7291500 1! #7291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7292000 0! #7292500 1! #7292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7293000 0! #7293500 1! #7293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7294000 0! #7294500 1! #7294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7295000 0! #7295500 1! #7295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7296000 0! #7296500 1! #7296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7297000 0! #7297500 1! #7297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7298000 0! #7298500 1! #7298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7299000 0! #7299500 1! #7299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7300000 0! #7300500 1! #7300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7301000 0! #7301500 1! #7301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7302000 0! #7302500 1! #7302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7303000 0! #7303500 1! #7303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7304000 0! #7304500 1! #7304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7305000 0! #7305500 1! #7305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7306000 0! #7306500 1! #7306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7307000 0! #7307500 1! #7307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7308000 0! #7308500 1! #7308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7309000 0! #7309500 1! #7309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7310000 0! #7310500 1! #7310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7311000 0! #7311500 1! #7311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7312000 0! #7312500 1! #7312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7313000 0! #7313500 1! #7313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7314000 0! #7314500 1! #7314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7315000 0! #7315500 1! #7315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7316000 0! #7316500 1! #7316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7317000 0! #7317500 1! #7317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7318000 0! #7318500 1! #7318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7319000 0! #7319500 1! #7319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7320000 0! #7320500 1! #7320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7321000 0! #7321500 1! #7321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #7321700 b10010100 c #7322000 0! #7322500 1! #7322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7323000 0! #7323500 1! #7323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7324000 0! #7324500 1! #7324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7325000 0! #7325500 1! #7325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7326000 0! #7326500 1! #7326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7327000 0! #7327500 1! #7327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7328000 0! #7328500 1! #7328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7329000 0! #7329500 1! #7329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7330000 0! #7330500 1! #7330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7331000 0! #7331500 1! #7331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7332000 0! #7332500 1! #7332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7333000 0! #7333500 1! #7333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7334000 0! #7334500 1! #7334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7335000 0! #7335500 1! #7335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7336000 0! #7336500 1! #7336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7337000 0! #7337500 1! #7337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7338000 0! #7338500 1! #7338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7339000 0! #7339500 1! #7339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7340000 0! #7340500 1! #7340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7341000 0! #7341500 1! #7341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7342000 0! #7342500 1! #7342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7343000 0! #7343500 1! #7343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7344000 0! #7344500 1! #7344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7345000 0! #7345500 1! #7345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7346000 0! #7346500 1! #7346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7347000 0! #7347500 1! #7347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7348000 0! #7348500 1! #7348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7349000 0! #7349500 1! #7349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7350000 0! #7350500 1! #7350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7351000 0! #7351500 1! #7351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7352000 0! #7352500 1! #7352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7353000 0! #7353500 1! #7353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7354000 0! #7354500 1! #7354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7355000 0! #7355500 1! #7355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7356000 0! #7356500 1! #7356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7357000 0! #7357500 1! #7357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7358000 0! #7358500 1! #7358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7359000 0! #7359500 1! #7359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7360000 0! #7360500 1! #7360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7361000 0! #7361500 1! #7361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7362000 0! #7362500 1! #7362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7363000 0! #7363500 1! #7363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7364000 0! #7364500 1! #7364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7365000 0! #7365500 1! #7365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7366000 0! #7366500 1! #7366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7367000 0! #7367500 1! #7367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7368000 0! #7368500 1! #7368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7369000 0! #7369500 1! #7369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7370000 0! #7370500 1! #7370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7371000 0! #7371500 1! #7371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7372000 0! #7372500 1! #7372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7373000 0! #7373500 1! #7373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7374000 0! #7374500 1! #7374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7375000 0! #7375500 1! #7375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7376000 0! #7376500 1! #7376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7377000 0! #7377500 1! #7377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7378000 0! #7378500 1! #7378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7379000 0! #7379500 1! #7379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7380000 0! #7380500 1! #7380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7381000 0! #7381500 1! #7381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7382000 0! #7382500 1! #7382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7383000 0! #7383500 1! #7383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7384000 0! #7384500 1! #7384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7385000 0! #7385500 1! #7385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7386000 0! #7386500 1! #7386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7387000 0! #7387500 1! #7387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7388000 0! #7388500 1! #7388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7389000 0! #7389500 1! #7389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7390000 0! #7390500 1! #7390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7391000 0! #7391500 1! #7391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7392000 0! #7392500 1! #7392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7393000 0! #7393500 1! #7393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7394000 0! #7394500 1! #7394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7395000 0! #7395500 1! #7395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7396000 0! #7396500 1! #7396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7397000 0! #7397500 1! #7397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7398000 0! #7398500 1! #7398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7399000 0! #7399500 1! #7399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7400000 0! #7400500 1! #7400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7401000 0! #7401500 1! #7401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7402000 0! #7402500 1! #7402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7403000 0! #7403500 1! #7403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7404000 0! #7404500 1! #7404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7405000 0! #7405500 1! #7405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7406000 0! #7406500 1! #7406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7407000 0! #7407500 1! #7407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7408000 0! #7408500 1! #7408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7409000 0! #7409500 1! #7409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7410000 0! #7410500 1! #7410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7411000 0! #7411500 1! #7411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7412000 0! #7412500 1! #7412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7413000 0! #7413500 1! #7413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7414000 0! #7414500 1! #7414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7415000 0! #7415500 1! #7415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7416000 0! #7416500 1! #7416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7417000 0! #7417500 1! #7417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7418000 0! #7418500 1! #7418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7419000 0! #7419500 1! #7419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7420000 0! #7420500 1! #7420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7421000 0! #7421500 1! #7421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7422000 0! #7422500 1! #7422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7423000 0! #7423500 1! #7423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #7423700 0i #7424000 0! #7424500 1! #7424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7425000 0! #7425500 1! #7425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7426000 0! #7426500 1! #7426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7427000 0! #7427500 1! #7427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7428000 0! #7428500 1! #7428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7429000 0! #7429500 1! #7429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7430000 0! #7430500 1! #7430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7431000 0! #7431500 1! #7431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7432000 0! #7432500 1! #7432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7433000 0! #7433500 1! #7433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7434000 0! #7434500 1! #7434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7435000 0! #7435500 1! #7435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7436000 0! #7436500 1! #7436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7437000 0! #7437500 1! #7437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7438000 0! #7438500 1! #7438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7439000 0! #7439500 1! #7439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7440000 0! #7440500 1! #7440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7441000 0! #7441500 1! #7441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7442000 0! #7442500 1! #7442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7443000 0! #7443500 1! #7443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7444000 0! #7444500 1! #7444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7445000 0! #7445500 1! #7445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7446000 0! #7446500 1! #7446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7447000 0! #7447500 1! #7447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7448000 0! #7448500 1! #7448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7449000 0! #7449500 1! #7449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7450000 0! #7450500 1! #7450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7451000 0! #7451500 1! #7451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7452000 0! #7452500 1! #7452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7453000 0! #7453500 1! #7453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7454000 0! #7454500 1! #7454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7455000 0! #7455500 1! #7455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7456000 0! #7456500 1! #7456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7457000 0! #7457500 1! #7457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7458000 0! #7458500 1! #7458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7459000 0! #7459500 1! #7459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7460000 0! #7460500 1! #7460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7461000 0! #7461500 1! #7461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7462000 0! #7462500 1! #7462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7463000 0! #7463500 1! #7463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7464000 0! #7464500 1! #7464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7465000 0! #7465500 1! #7465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7466000 0! #7466500 1! #7466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7467000 0! #7467500 1! #7467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7468000 0! #7468500 1! #7468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7469000 0! #7469500 1! #7469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7470000 0! #7470500 1! #7470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7471000 0! #7471500 1! #7471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7472000 0! #7472500 1! #7472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7473000 0! #7473500 1! #7473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7474000 0! #7474500 1! #7474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7475000 0! #7475500 1! #7475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7476000 0! #7476500 1! #7476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7477000 0! #7477500 1! #7477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7478000 0! #7478500 1! #7478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7479000 0! #7479500 1! #7479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7480000 0! #7480500 1! #7480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7481000 0! #7481500 1! #7481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7482000 0! #7482500 1! #7482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7483000 0! #7483500 1! #7483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7484000 0! #7484500 1! #7484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7485000 0! #7485500 1! #7485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7486000 0! #7486500 1! #7486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7487000 0! #7487500 1! #7487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7488000 0! #7488500 1! #7488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7489000 0! #7489500 1! #7489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7490000 0! #7490500 1! #7490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7491000 0! #7491500 1! #7491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7492000 0! #7492500 1! #7492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7493000 0! #7493500 1! #7493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7494000 0! #7494500 1! #7494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7495000 0! #7495500 1! #7495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7496000 0! #7496500 1! #7496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7497000 0! #7497500 1! #7497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7498000 0! #7498500 1! #7498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7499000 0! #7499500 1! #7499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7500000 0! #7500500 1! #7500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7501000 0! #7501500 1! #7501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7502000 0! #7502500 1! #7502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7503000 0! #7503500 1! #7503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7504000 0! #7504500 1! #7504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7505000 0! #7505500 1! #7505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7506000 0! #7506500 1! #7506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7507000 0! #7507500 1! #7507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7508000 0! #7508500 1! #7508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7509000 0! #7509500 1! #7509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7510000 0! #7510500 1! #7510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7511000 0! #7511500 1! #7511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7512000 0! #7512500 1! #7512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7513000 0! #7513500 1! #7513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7514000 0! #7514500 1! #7514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7515000 0! #7515500 1! #7515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7516000 0! #7516500 1! #7516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7517000 0! #7517500 1! #7517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7518000 0! #7518500 1! #7518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7519000 0! #7519500 1! #7519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7520000 0! #7520500 1! #7520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7521000 0! #7521500 1! #7521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7522000 0! #7522500 1! #7522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7523000 0! #7523500 1! #7523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7524000 0! #7524500 1! #7524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7525000 0! #7525500 1! #7525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #7526000 0! #7526500 1! #7526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7527000 0! #7527500 1! #7527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7528000 0! #7528500 1! #7528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7529000 0! #7529500 1! #7529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7530000 0! #7530500 1! #7530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7531000 0! #7531500 1! #7531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7532000 0! #7532500 1! #7532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7533000 0! #7533500 1! #7533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7534000 0! #7534500 1! #7534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7535000 0! #7535500 1! #7535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7536000 0! #7536500 1! #7536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7537000 0! #7537500 1! #7537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7538000 0! #7538500 1! #7538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7539000 0! #7539500 1! #7539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7540000 0! #7540500 1! #7540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7541000 0! #7541500 1! #7541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7542000 0! #7542500 1! #7542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7543000 0! #7543500 1! #7543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7544000 0! #7544500 1! #7544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7545000 0! #7545500 1! #7545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7546000 0! #7546500 1! #7546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7547000 0! #7547500 1! #7547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7548000 0! #7548500 1! #7548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7549000 0! #7549500 1! #7549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7550000 0! #7550500 1! #7550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7551000 0! #7551500 1! #7551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7552000 0! #7552500 1! #7552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7553000 0! #7553500 1! #7553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7554000 0! #7554500 1! #7554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7555000 0! #7555500 1! #7555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7556000 0! #7556500 1! #7556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7557000 0! #7557500 1! #7557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7558000 0! #7558500 1! #7558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7559000 0! #7559500 1! #7559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7560000 0! #7560500 1! #7560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7561000 0! #7561500 1! #7561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7562000 0! #7562500 1! #7562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7563000 0! #7563500 1! #7563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7564000 0! #7564500 1! #7564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7565000 0! #7565500 1! #7565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7566000 0! #7566500 1! #7566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7567000 0! #7567500 1! #7567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7568000 0! #7568500 1! #7568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7569000 0! #7569500 1! #7569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7570000 0! #7570500 1! #7570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7571000 0! #7571500 1! #7571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7572000 0! #7572500 1! #7572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7573000 0! #7573500 1! #7573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7574000 0! #7574500 1! #7574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7575000 0! #7575500 1! #7575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7576000 0! #7576500 1! #7576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #7576700 b110 g b101001 c #7577000 0! #7577500 1! #7577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7578000 0! #7578500 1! #7578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7579000 0! #7579500 1! #7579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7580000 0! #7580500 1! #7580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7581000 0! #7581500 1! #7581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7582000 0! #7582500 1! #7582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7583000 0! #7583500 1! #7583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7584000 0! #7584500 1! #7584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7585000 0! #7585500 1! #7585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7586000 0! #7586500 1! #7586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7587000 0! #7587500 1! #7587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7588000 0! #7588500 1! #7588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7589000 0! #7589500 1! #7589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7590000 0! #7590500 1! #7590600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7591000 0! #7591500 1! #7591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7592000 0! #7592500 1! #7592600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7593000 0! #7593500 1! #7593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7594000 0! #7594500 1! #7594600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7595000 0! #7595500 1! #7595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7596000 0! #7596500 1! #7596600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7597000 0! #7597500 1! #7597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7598000 0! #7598500 1! #7598600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7599000 0! #7599500 1! #7599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7600000 0! #7600500 1! #7600600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7601000 0! #7601500 1! #7601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7602000 0! #7602500 1! #7602600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7603000 0! #7603500 1! #7603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7604000 0! #7604500 1! #7604600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7605000 0! #7605500 1! #7605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7606000 0! #7606500 1! #7606600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7607000 0! #7607500 1! #7607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7608000 0! #7608500 1! #7608600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7609000 0! #7609500 1! #7609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7610000 0! #7610500 1! #7610600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7611000 0! #7611500 1! #7611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7612000 0! #7612500 1! #7612600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7613000 0! #7613500 1! #7613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7614000 0! #7614500 1! #7614600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7615000 0! #7615500 1! #7615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7616000 0! #7616500 1! #7616600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7617000 0! #7617500 1! #7617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7618000 0! #7618500 1! #7618600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7619000 0! #7619500 1! #7619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7620000 0! #7620500 1! #7620600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7621000 0! #7621500 1! #7621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7622000 0! #7622500 1! #7622600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7623000 0! #7623500 1! #7623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7624000 0! #7624500 1! #7624600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7625000 0! #7625500 1! #7625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7626000 0! #7626500 1! #7626600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7627000 0! #7627500 1! #7627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7628000 0! #7628500 1! #7628600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7629000 0! #7629500 1! #7629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7630000 0! #7630500 1! #7630600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7631000 0! #7631500 1! #7631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7632000 0! #7632500 1! #7632600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7633000 0! #7633500 1! #7633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7634000 0! #7634500 1! #7634600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7635000 0! #7635500 1! #7635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7636000 0! #7636500 1! #7636600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7637000 0! #7637500 1! #7637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7638000 0! #7638500 1! #7638600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7639000 0! #7639500 1! #7639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7640000 0! #7640500 1! #7640600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7641000 0! #7641500 1! #7641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7642000 0! #7642500 1! #7642600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7643000 0! #7643500 1! #7643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7644000 0! #7644500 1! #7644600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7645000 0! #7645500 1! #7645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7646000 0! #7646500 1! #7646600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7647000 0! #7647500 1! #7647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7648000 0! #7648500 1! #7648600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7649000 0! #7649500 1! #7649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7650000 0! #7650500 1! #7650600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7651000 0! #7651500 1! #7651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7652000 0! #7652500 1! #7652600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7653000 0! #7653500 1! #7653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7654000 0! #7654500 1! #7654600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7655000 0! #7655500 1! #7655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7656000 0! #7656500 1! #7656600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7657000 0! #7657500 1! #7657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7658000 0! #7658500 1! #7658600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7659000 0! #7659500 1! #7659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7660000 0! #7660500 1! #7660600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7661000 0! #7661500 1! #7661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7662000 0! #7662500 1! #7662600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7663000 0! #7663500 1! #7663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7664000 0! #7664500 1! #7664600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7665000 0! #7665500 1! #7665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7666000 0! #7666500 1! #7666600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7667000 0! #7667500 1! #7667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7668000 0! #7668500 1! #7668600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7669000 0! #7669500 1! #7669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7670000 0! #7670500 1! #7670600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7671000 0! #7671500 1! #7671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7672000 0! #7672500 1! #7672600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7673000 0! #7673500 1! #7673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7674000 0! #7674500 1! #7674600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7675000 0! #7675500 1! #7675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7676000 0! #7676500 1! #7676600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7677000 0! #7677500 1! #7677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7678000 0! #7678500 1! #7678600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #7679000 0! #7679500 1! #7679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7680000 0! #7680500 1! #7680600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7681000 0! #7681500 1! #7681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7682000 0! #7682500 1! #7682600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7683000 0! #7683500 1! #7683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7684000 0! #7684500 1! #7684600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7685000 0! #7685500 1! #7685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7686000 0! #7686500 1! #7686600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7687000 0! #7687500 1! #7687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7688000 0! #7688500 1! #7688600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7689000 0! #7689500 1! #7689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7690000 0! #7690500 1! #7690600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7691000 0! #7691500 1! #7691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7692000 0! #7692500 1! #7692600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7693000 0! #7693500 1! #7693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7694000 0! #7694500 1! #7694600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7695000 0! #7695500 1! #7695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7696000 0! #7696500 1! #7696600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7697000 0! #7697500 1! #7697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7698000 0! #7698500 1! #7698600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7699000 0! #7699500 1! #7699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7700000 0! #7700500 1! #7700600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7701000 0! #7701500 1! #7701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7702000 0! #7702500 1! #7702600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7703000 0! #7703500 1! #7703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7704000 0! #7704500 1! #7704600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7705000 0! #7705500 1! #7705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7706000 0! #7706500 1! #7706600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7707000 0! #7707500 1! #7707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7708000 0! #7708500 1! #7708600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7709000 0! #7709500 1! #7709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7710000 0! #7710500 1! #7710600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7711000 0! #7711500 1! #7711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7712000 0! #7712500 1! #7712600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7713000 0! #7713500 1! #7713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7714000 0! #7714500 1! #7714600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7715000 0! #7715500 1! #7715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7716000 0! #7716500 1! #7716600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7717000 0! #7717500 1! #7717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7718000 0! #7718500 1! #7718600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7719000 0! #7719500 1! #7719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7720000 0! #7720500 1! #7720600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7721000 0! #7721500 1! #7721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7722000 0! #7722500 1! #7722600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7723000 0! #7723500 1! #7723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7724000 0! #7724500 1! #7724600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7725000 0! #7725500 1! #7725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7726000 0! #7726500 1! #7726600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7727000 0! #7727500 1! #7727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7728000 0! #7728500 1! #7728600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7729000 0! #7729500 1! #7729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7730000 0! #7730500 1! #7730600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7731000 0! #7731500 1! #7731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7732000 0! #7732500 1! #7732600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7733000 0! #7733500 1! #7733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7734000 0! #7734500 1! #7734600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7735000 0! #7735500 1! #7735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7736000 0! #7736500 1! #7736600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7737000 0! #7737500 1! #7737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7738000 0! #7738500 1! #7738600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7739000 0! #7739500 1! #7739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7740000 0! #7740500 1! #7740600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7741000 0! #7741500 1! #7741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7742000 0! #7742500 1! #7742600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7743000 0! #7743500 1! #7743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7744000 0! #7744500 1! #7744600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7745000 0! #7745500 1! #7745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7746000 0! #7746500 1! #7746600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7747000 0! #7747500 1! #7747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7748000 0! #7748500 1! #7748600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7749000 0! #7749500 1! #7749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7750000 0! #7750500 1! #7750600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7751000 0! #7751500 1! #7751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7752000 0! #7752500 1! #7752600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7753000 0! #7753500 1! #7753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7754000 0! #7754500 1! #7754600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7755000 0! #7755500 1! #7755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7756000 0! #7756500 1! #7756600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7757000 0! #7757500 1! #7757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7758000 0! #7758500 1! #7758600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7759000 0! #7759500 1! #7759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7760000 0! #7760500 1! #7760600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7761000 0! #7761500 1! #7761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7762000 0! #7762500 1! #7762600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7763000 0! #7763500 1! #7763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7764000 0! #7764500 1! #7764600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7765000 0! #7765500 1! #7765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7766000 0! #7766500 1! #7766600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7767000 0! #7767500 1! #7767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7768000 0! #7768500 1! #7768600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7769000 0! #7769500 1! #7769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7770000 0! #7770500 1! #7770600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7771000 0! #7771500 1! #7771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7772000 0! #7772500 1! #7772600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7773000 0! #7773500 1! #7773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7774000 0! #7774500 1! #7774600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7775000 0! #7775500 1! #7775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7776000 0! #7776500 1! #7776600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7777000 0! #7777500 1! #7777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7778000 0! #7778500 1! #7778600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7779000 0! #7779500 1! #7779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7780000 0! #7780500 1! #7780600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #7781000 0! #7781500 1! #7781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7782000 0! #7782500 1! #7782600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7783000 0! #7783500 1! #7783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7784000 0! #7784500 1! #7784600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7785000 0! #7785500 1! #7785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7786000 0! #7786500 1! #7786600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7787000 0! #7787500 1! #7787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7788000 0! #7788500 1! #7788600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7789000 0! #7789500 1! #7789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7790000 0! #7790500 1! #7790600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7791000 0! #7791500 1! #7791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7792000 0! #7792500 1! #7792600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7793000 0! #7793500 1! #7793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7794000 0! #7794500 1! #7794600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7795000 0! #7795500 1! #7795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7796000 0! #7796500 1! #7796600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7797000 0! #7797500 1! #7797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7798000 0! #7798500 1! #7798600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7799000 0! #7799500 1! #7799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7800000 0! #7800500 1! #7800600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7801000 0! #7801500 1! #7801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7802000 0! #7802500 1! #7802600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7803000 0! #7803500 1! #7803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7804000 0! #7804500 1! #7804600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7805000 0! #7805500 1! #7805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7806000 0! #7806500 1! #7806600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7807000 0! #7807500 1! #7807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7808000 0! #7808500 1! #7808600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7809000 0! #7809500 1! #7809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7810000 0! #7810500 1! #7810600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7811000 0! #7811500 1! #7811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7812000 0! #7812500 1! #7812600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7813000 0! #7813500 1! #7813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7814000 0! #7814500 1! #7814600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7815000 0! #7815500 1! #7815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7816000 0! #7816500 1! #7816600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7817000 0! #7817500 1! #7817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7818000 0! #7818500 1! #7818600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7819000 0! #7819500 1! #7819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7820000 0! #7820500 1! #7820600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7821000 0! #7821500 1! #7821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7822000 0! #7822500 1! #7822600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7823000 0! #7823500 1! #7823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7824000 0! #7824500 1! #7824600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7825000 0! #7825500 1! #7825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7826000 0! #7826500 1! #7826600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7827000 0! #7827500 1! #7827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7828000 0! #7828500 1! #7828600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7829000 0! #7829500 1! #7829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7830000 0! #7830500 1! #7830600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7831000 0! #7831500 1! #7831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #7831700 b101 g b1010010 c #7832000 0! #7832500 1! #7832600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7833000 0! #7833500 1! #7833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7834000 0! #7834500 1! #7834600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7835000 0! #7835500 1! #7835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7836000 0! #7836500 1! #7836600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7837000 0! #7837500 1! #7837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7838000 0! #7838500 1! #7838600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7839000 0! #7839500 1! #7839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7840000 0! #7840500 1! #7840600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7841000 0! #7841500 1! #7841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7842000 0! #7842500 1! #7842600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7843000 0! #7843500 1! #7843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7844000 0! #7844500 1! #7844600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7845000 0! #7845500 1! #7845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7846000 0! #7846500 1! #7846600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7847000 0! #7847500 1! #7847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7848000 0! #7848500 1! #7848600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7849000 0! #7849500 1! #7849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7850000 0! #7850500 1! #7850600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7851000 0! #7851500 1! #7851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7852000 0! #7852500 1! #7852600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7853000 0! #7853500 1! #7853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7854000 0! #7854500 1! #7854600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7855000 0! #7855500 1! #7855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7856000 0! #7856500 1! #7856600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7857000 0! #7857500 1! #7857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7858000 0! #7858500 1! #7858600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7859000 0! #7859500 1! #7859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7860000 0! #7860500 1! #7860600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7861000 0! #7861500 1! #7861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7862000 0! #7862500 1! #7862600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7863000 0! #7863500 1! #7863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7864000 0! #7864500 1! #7864600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7865000 0! #7865500 1! #7865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7866000 0! #7866500 1! #7866600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7867000 0! #7867500 1! #7867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7868000 0! #7868500 1! #7868600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7869000 0! #7869500 1! #7869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7870000 0! #7870500 1! #7870600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7871000 0! #7871500 1! #7871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7872000 0! #7872500 1! #7872600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7873000 0! #7873500 1! #7873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7874000 0! #7874500 1! #7874600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7875000 0! #7875500 1! #7875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7876000 0! #7876500 1! #7876600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7877000 0! #7877500 1! #7877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7878000 0! #7878500 1! #7878600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7879000 0! #7879500 1! #7879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7880000 0! #7880500 1! #7880600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7881000 0! #7881500 1! #7881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7882000 0! #7882500 1! #7882600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7883000 0! #7883500 1! #7883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7884000 0! #7884500 1! #7884600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7885000 0! #7885500 1! #7885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7886000 0! #7886500 1! #7886600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7887000 0! #7887500 1! #7887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7888000 0! #7888500 1! #7888600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7889000 0! #7889500 1! #7889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7890000 0! #7890500 1! #7890600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7891000 0! #7891500 1! #7891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7892000 0! #7892500 1! #7892600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7893000 0! #7893500 1! #7893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7894000 0! #7894500 1! #7894600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7895000 0! #7895500 1! #7895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7896000 0! #7896500 1! #7896600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7897000 0! #7897500 1! #7897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7898000 0! #7898500 1! #7898600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7899000 0! #7899500 1! #7899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7900000 0! #7900500 1! #7900600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7901000 0! #7901500 1! #7901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7902000 0! #7902500 1! #7902600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7903000 0! #7903500 1! #7903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7904000 0! #7904500 1! #7904600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7905000 0! #7905500 1! #7905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7906000 0! #7906500 1! #7906600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7907000 0! #7907500 1! #7907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7908000 0! #7908500 1! #7908600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7909000 0! #7909500 1! #7909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7910000 0! #7910500 1! #7910600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7911000 0! #7911500 1! #7911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7912000 0! #7912500 1! #7912600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7913000 0! #7913500 1! #7913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7914000 0! #7914500 1! #7914600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7915000 0! #7915500 1! #7915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7916000 0! #7916500 1! #7916600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7917000 0! #7917500 1! #7917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7918000 0! #7918500 1! #7918600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7919000 0! #7919500 1! #7919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7920000 0! #7920500 1! #7920600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7921000 0! #7921500 1! #7921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7922000 0! #7922500 1! #7922600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7923000 0! #7923500 1! #7923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7924000 0! #7924500 1! #7924600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7925000 0! #7925500 1! #7925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7926000 0! #7926500 1! #7926600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7927000 0! #7927500 1! #7927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7928000 0! #7928500 1! #7928600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7929000 0! #7929500 1! #7929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7930000 0! #7930500 1! #7930600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7931000 0! #7931500 1! #7931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7932000 0! #7932500 1! #7932600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7933000 0! #7933500 1! #7933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #7934000 0! #7934500 1! #7934600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7935000 0! #7935500 1! #7935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7936000 0! #7936500 1! #7936600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7937000 0! #7937500 1! #7937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7938000 0! #7938500 1! #7938600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7939000 0! #7939500 1! #7939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7940000 0! #7940500 1! #7940600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7941000 0! #7941500 1! #7941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7942000 0! #7942500 1! #7942600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7943000 0! #7943500 1! #7943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7944000 0! #7944500 1! #7944600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7945000 0! #7945500 1! #7945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7946000 0! #7946500 1! #7946600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7947000 0! #7947500 1! #7947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7948000 0! #7948500 1! #7948600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7949000 0! #7949500 1! #7949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7950000 0! #7950500 1! #7950600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7951000 0! #7951500 1! #7951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7952000 0! #7952500 1! #7952600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7953000 0! #7953500 1! #7953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7954000 0! #7954500 1! #7954600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7955000 0! #7955500 1! #7955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7956000 0! #7956500 1! #7956600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7957000 0! #7957500 1! #7957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7958000 0! #7958500 1! #7958600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7959000 0! #7959500 1! #7959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7960000 0! #7960500 1! #7960600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7961000 0! #7961500 1! #7961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7962000 0! #7962500 1! #7962600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7963000 0! #7963500 1! #7963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7964000 0! #7964500 1! #7964600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7965000 0! #7965500 1! #7965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7966000 0! #7966500 1! #7966600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7967000 0! #7967500 1! #7967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7968000 0! #7968500 1! #7968600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7969000 0! #7969500 1! #7969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7970000 0! #7970500 1! #7970600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7971000 0! #7971500 1! #7971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7972000 0! #7972500 1! #7972600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7973000 0! #7973500 1! #7973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7974000 0! #7974500 1! #7974600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7975000 0! #7975500 1! #7975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7976000 0! #7976500 1! #7976600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7977000 0! #7977500 1! #7977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7978000 0! #7978500 1! #7978600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7979000 0! #7979500 1! #7979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7980000 0! #7980500 1! #7980600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7981000 0! #7981500 1! #7981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7982000 0! #7982500 1! #7982600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7983000 0! #7983500 1! #7983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7984000 0! #7984500 1! #7984600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7985000 0! #7985500 1! #7985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7986000 0! #7986500 1! #7986600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7987000 0! #7987500 1! #7987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7988000 0! #7988500 1! #7988600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7989000 0! #7989500 1! #7989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7990000 0! #7990500 1! #7990600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7991000 0! #7991500 1! #7991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7992000 0! #7992500 1! #7992600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7993000 0! #7993500 1! #7993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7994000 0! #7994500 1! #7994600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7995000 0! #7995500 1! #7995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7996000 0! #7996500 1! #7996600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7997000 0! #7997500 1! #7997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #7998000 0! #7998500 1! #7998600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #7999000 0! #7999500 1! #7999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8000000 0! #8000500 1! #8000600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8001000 0! #8001500 1! #8001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8002000 0! #8002500 1! #8002600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8003000 0! #8003500 1! #8003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8004000 0! #8004500 1! #8004600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8005000 0! #8005500 1! #8005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8006000 0! #8006500 1! #8006600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8007000 0! #8007500 1! #8007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8008000 0! #8008500 1! #8008600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8009000 0! #8009500 1! #8009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8010000 0! #8010500 1! #8010600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8011000 0! #8011500 1! #8011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8012000 0! #8012500 1! #8012600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8013000 0! #8013500 1! #8013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8014000 0! #8014500 1! #8014600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8015000 0! #8015500 1! #8015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8016000 0! #8016500 1! #8016600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8017000 0! #8017500 1! #8017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8018000 0! #8018500 1! #8018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8019000 0! #8019500 1! #8019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8020000 0! #8020500 1! #8020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8021000 0! #8021500 1! #8021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8022000 0! #8022500 1! #8022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8023000 0! #8023500 1! #8023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8024000 0! #8024500 1! #8024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8025000 0! #8025500 1! #8025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8026000 0! #8026500 1! #8026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8027000 0! #8027500 1! #8027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8028000 0! #8028500 1! #8028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8029000 0! #8029500 1! #8029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8030000 0! #8030500 1! #8030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8031000 0! #8031500 1! #8031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8032000 0! #8032500 1! #8032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8033000 0! #8033500 1! #8033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8034000 0! #8034500 1! #8034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8035000 0! #8035500 1! #8035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #8036000 0! #8036500 1! #8036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8037000 0! #8037500 1! #8037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8038000 0! #8038500 1! #8038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8039000 0! #8039500 1! #8039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8040000 0! #8040500 1! #8040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8041000 0! #8041500 1! #8041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8042000 0! #8042500 1! #8042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8043000 0! #8043500 1! #8043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8044000 0! #8044500 1! #8044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8045000 0! #8045500 1! #8045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8046000 0! #8046500 1! #8046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8047000 0! #8047500 1! #8047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8048000 0! #8048500 1! #8048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8049000 0! #8049500 1! #8049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8050000 0! #8050500 1! #8050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8051000 0! #8051500 1! #8051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8052000 0! #8052500 1! #8052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8053000 0! #8053500 1! #8053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8054000 0! #8054500 1! #8054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8055000 0! #8055500 1! #8055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8056000 0! #8056500 1! #8056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8057000 0! #8057500 1! #8057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8058000 0! #8058500 1! #8058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8059000 0! #8059500 1! #8059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8060000 0! #8060500 1! #8060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8061000 0! #8061500 1! #8061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8062000 0! #8062500 1! #8062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8063000 0! #8063500 1! #8063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8064000 0! #8064500 1! #8064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8065000 0! #8065500 1! #8065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8066000 0! #8066500 1! #8066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8067000 0! #8067500 1! #8067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8068000 0! #8068500 1! #8068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8069000 0! #8069500 1! #8069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8070000 0! #8070500 1! #8070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8071000 0! #8071500 1! #8071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8072000 0! #8072500 1! #8072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8073000 0! #8073500 1! #8073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8074000 0! #8074500 1! #8074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8075000 0! #8075500 1! #8075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8076000 0! #8076500 1! #8076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8077000 0! #8077500 1! #8077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8078000 0! #8078500 1! #8078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8079000 0! #8079500 1! #8079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8080000 0! #8080500 1! #8080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8081000 0! #8081500 1! #8081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8082000 0! #8082500 1! #8082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8083000 0! #8083500 1! #8083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8084000 0! #8084500 1! #8084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8085000 0! #8085500 1! #8085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8086000 0! #8086500 1! #8086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #8086700 b100 g b10100101 c #8087000 0! #8087500 1! #8087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8088000 0! #8088500 1! #8088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8089000 0! #8089500 1! #8089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8090000 0! #8090500 1! #8090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8091000 0! #8091500 1! #8091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8092000 0! #8092500 1! #8092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8093000 0! #8093500 1! #8093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8094000 0! #8094500 1! #8094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8095000 0! #8095500 1! #8095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8096000 0! #8096500 1! #8096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8097000 0! #8097500 1! #8097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8098000 0! #8098500 1! #8098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8099000 0! #8099500 1! #8099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8100000 0! #8100500 1! #8100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8101000 0! #8101500 1! #8101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8102000 0! #8102500 1! #8102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8103000 0! #8103500 1! #8103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8104000 0! #8104500 1! #8104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8105000 0! #8105500 1! #8105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8106000 0! #8106500 1! #8106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8107000 0! #8107500 1! #8107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8108000 0! #8108500 1! #8108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8109000 0! #8109500 1! #8109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8110000 0! #8110500 1! #8110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8111000 0! #8111500 1! #8111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8112000 0! #8112500 1! #8112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8113000 0! #8113500 1! #8113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8114000 0! #8114500 1! #8114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8115000 0! #8115500 1! #8115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8116000 0! #8116500 1! #8116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8117000 0! #8117500 1! #8117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8118000 0! #8118500 1! #8118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8119000 0! #8119500 1! #8119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8120000 0! #8120500 1! #8120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8121000 0! #8121500 1! #8121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8122000 0! #8122500 1! #8122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8123000 0! #8123500 1! #8123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8124000 0! #8124500 1! #8124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8125000 0! #8125500 1! #8125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8126000 0! #8126500 1! #8126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8127000 0! #8127500 1! #8127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8128000 0! #8128500 1! #8128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8129000 0! #8129500 1! #8129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8130000 0! #8130500 1! #8130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8131000 0! #8131500 1! #8131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8132000 0! #8132500 1! #8132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8133000 0! #8133500 1! #8133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8134000 0! #8134500 1! #8134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8135000 0! #8135500 1! #8135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8136000 0! #8136500 1! #8136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8137000 0! #8137500 1! #8137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8138000 0! #8138500 1! #8138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8139000 0! #8139500 1! #8139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8140000 0! #8140500 1! #8140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8141000 0! #8141500 1! #8141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8142000 0! #8142500 1! #8142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8143000 0! #8143500 1! #8143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8144000 0! #8144500 1! #8144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8145000 0! #8145500 1! #8145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8146000 0! #8146500 1! #8146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8147000 0! #8147500 1! #8147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8148000 0! #8148500 1! #8148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8149000 0! #8149500 1! #8149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8150000 0! #8150500 1! #8150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8151000 0! #8151500 1! #8151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8152000 0! #8152500 1! #8152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8153000 0! #8153500 1! #8153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8154000 0! #8154500 1! #8154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8155000 0! #8155500 1! #8155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8156000 0! #8156500 1! #8156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8157000 0! #8157500 1! #8157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8158000 0! #8158500 1! #8158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8159000 0! #8159500 1! #8159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8160000 0! #8160500 1! #8160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8161000 0! #8161500 1! #8161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8162000 0! #8162500 1! #8162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8163000 0! #8163500 1! #8163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8164000 0! #8164500 1! #8164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8165000 0! #8165500 1! #8165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8166000 0! #8166500 1! #8166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8167000 0! #8167500 1! #8167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8168000 0! #8168500 1! #8168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8169000 0! #8169500 1! #8169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8170000 0! #8170500 1! #8170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8171000 0! #8171500 1! #8171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8172000 0! #8172500 1! #8172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8173000 0! #8173500 1! #8173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8174000 0! #8174500 1! #8174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8175000 0! #8175500 1! #8175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8176000 0! #8176500 1! #8176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8177000 0! #8177500 1! #8177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8178000 0! #8178500 1! #8178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8179000 0! #8179500 1! #8179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8180000 0! #8180500 1! #8180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8181000 0! #8181500 1! #8181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8182000 0! #8182500 1! #8182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8183000 0! #8183500 1! #8183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8184000 0! #8184500 1! #8184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8185000 0! #8185500 1! #8185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8186000 0! #8186500 1! #8186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8187000 0! #8187500 1! #8187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8188000 0! #8188500 1! #8188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #8189000 0! #8189500 1! #8189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8190000 0! #8190500 1! #8190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8191000 0! #8191500 1! #8191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8192000 0! #8192500 1! #8192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8193000 0! #8193500 1! #8193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8194000 0! #8194500 1! #8194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8195000 0! #8195500 1! #8195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8196000 0! #8196500 1! #8196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8197000 0! #8197500 1! #8197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8198000 0! #8198500 1! #8198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8199000 0! #8199500 1! #8199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8200000 0! #8200500 1! #8200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8201000 0! #8201500 1! #8201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8202000 0! #8202500 1! #8202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8203000 0! #8203500 1! #8203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8204000 0! #8204500 1! #8204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8205000 0! #8205500 1! #8205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8206000 0! #8206500 1! #8206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8207000 0! #8207500 1! #8207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8208000 0! #8208500 1! #8208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8209000 0! #8209500 1! #8209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8210000 0! #8210500 1! #8210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8211000 0! #8211500 1! #8211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8212000 0! #8212500 1! #8212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8213000 0! #8213500 1! #8213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8214000 0! #8214500 1! #8214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8215000 0! #8215500 1! #8215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8216000 0! #8216500 1! #8216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8217000 0! #8217500 1! #8217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8218000 0! #8218500 1! #8218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8219000 0! #8219500 1! #8219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8220000 0! #8220500 1! #8220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8221000 0! #8221500 1! #8221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8222000 0! #8222500 1! #8222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8223000 0! #8223500 1! #8223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8224000 0! #8224500 1! #8224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8225000 0! #8225500 1! #8225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8226000 0! #8226500 1! #8226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8227000 0! #8227500 1! #8227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8228000 0! #8228500 1! #8228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8229000 0! #8229500 1! #8229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8230000 0! #8230500 1! #8230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8231000 0! #8231500 1! #8231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8232000 0! #8232500 1! #8232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8233000 0! #8233500 1! #8233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8234000 0! #8234500 1! #8234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8235000 0! #8235500 1! #8235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8236000 0! #8236500 1! #8236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8237000 0! #8237500 1! #8237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8238000 0! #8238500 1! #8238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8239000 0! #8239500 1! #8239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8240000 0! #8240500 1! #8240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8241000 0! #8241500 1! #8241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8242000 0! #8242500 1! #8242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8243000 0! #8243500 1! #8243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8244000 0! #8244500 1! #8244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8245000 0! #8245500 1! #8245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8246000 0! #8246500 1! #8246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8247000 0! #8247500 1! #8247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8248000 0! #8248500 1! #8248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8249000 0! #8249500 1! #8249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8250000 0! #8250500 1! #8250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8251000 0! #8251500 1! #8251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8252000 0! #8252500 1! #8252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8253000 0! #8253500 1! #8253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8254000 0! #8254500 1! #8254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8255000 0! #8255500 1! #8255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8256000 0! #8256500 1! #8256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8257000 0! #8257500 1! #8257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8258000 0! #8258500 1! #8258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8259000 0! #8259500 1! #8259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8260000 0! #8260500 1! #8260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8261000 0! #8261500 1! #8261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8262000 0! #8262500 1! #8262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8263000 0! #8263500 1! #8263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8264000 0! #8264500 1! #8264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8265000 0! #8265500 1! #8265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8266000 0! #8266500 1! #8266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8267000 0! #8267500 1! #8267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8268000 0! #8268500 1! #8268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8269000 0! #8269500 1! #8269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8270000 0! #8270500 1! #8270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8271000 0! #8271500 1! #8271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8272000 0! #8272500 1! #8272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8273000 0! #8273500 1! #8273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8274000 0! #8274500 1! #8274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8275000 0! #8275500 1! #8275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8276000 0! #8276500 1! #8276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8277000 0! #8277500 1! #8277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8278000 0! #8278500 1! #8278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8279000 0! #8279500 1! #8279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8280000 0! #8280500 1! #8280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8281000 0! #8281500 1! #8281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8282000 0! #8282500 1! #8282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8283000 0! #8283500 1! #8283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8284000 0! #8284500 1! #8284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8285000 0! #8285500 1! #8285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8286000 0! #8286500 1! #8286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8287000 0! #8287500 1! #8287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8288000 0! #8288500 1! #8288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8289000 0! #8289500 1! #8289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8290000 0! #8290500 1! #8290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8291000 0! #8291500 1! #8291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8292000 0! #8292500 1! #8292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8293000 0! #8293500 1! #8293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8294000 0! #8294500 1! #8294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8295000 0! #8295500 1! #8295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8296000 0! #8296500 1! #8296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8297000 0! #8297500 1! #8297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8298000 0! #8298500 1! #8298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8299000 0! #8299500 1! #8299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8300000 0! #8300500 1! #8300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8301000 0! #8301500 1! #8301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8302000 0! #8302500 1! #8302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8303000 0! #8303500 1! #8303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8304000 0! #8304500 1! #8304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8305000 0! #8305500 1! #8305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8306000 0! #8306500 1! #8306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8307000 0! #8307500 1! #8307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8308000 0! #8308500 1! #8308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8309000 0! #8309500 1! #8309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8310000 0! #8310500 1! #8310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8311000 0! #8311500 1! #8311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8312000 0! #8312500 1! #8312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8313000 0! #8313500 1! #8313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8314000 0! #8314500 1! #8314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8315000 0! #8315500 1! #8315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8316000 0! #8316500 1! #8316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8317000 0! #8317500 1! #8317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8318000 0! #8318500 1! #8318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8319000 0! #8319500 1! #8319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8320000 0! #8320500 1! #8320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8321000 0! #8321500 1! #8321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8322000 0! #8322500 1! #8322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8323000 0! #8323500 1! #8323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8324000 0! #8324500 1! #8324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8325000 0! #8325500 1! #8325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8326000 0! #8326500 1! #8326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8327000 0! #8327500 1! #8327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8328000 0! #8328500 1! #8328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8329000 0! #8329500 1! #8329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8330000 0! #8330500 1! #8330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8331000 0! #8331500 1! #8331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8332000 0! #8332500 1! #8332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8333000 0! #8333500 1! #8333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8334000 0! #8334500 1! #8334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8335000 0! #8335500 1! #8335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8336000 0! #8336500 1! #8336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8337000 0! #8337500 1! #8337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8338000 0! #8338500 1! #8338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8339000 0! #8339500 1! #8339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8340000 0! #8340500 1! #8340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8341000 0! #8341500 1! #8341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #8341700 b11 g b1001011 c #8342000 0! #8342500 1! #8342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8343000 0! #8343500 1! #8343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8344000 0! #8344500 1! #8344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8345000 0! #8345500 1! #8345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8346000 0! #8346500 1! #8346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8347000 0! #8347500 1! #8347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8348000 0! #8348500 1! #8348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8349000 0! #8349500 1! #8349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8350000 0! #8350500 1! #8350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8351000 0! #8351500 1! #8351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8352000 0! #8352500 1! #8352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8353000 0! #8353500 1! #8353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8354000 0! #8354500 1! #8354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8355000 0! #8355500 1! #8355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8356000 0! #8356500 1! #8356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8357000 0! #8357500 1! #8357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8358000 0! #8358500 1! #8358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8359000 0! #8359500 1! #8359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8360000 0! #8360500 1! #8360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8361000 0! #8361500 1! #8361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8362000 0! #8362500 1! #8362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8363000 0! #8363500 1! #8363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8364000 0! #8364500 1! #8364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8365000 0! #8365500 1! #8365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8366000 0! #8366500 1! #8366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8367000 0! #8367500 1! #8367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8368000 0! #8368500 1! #8368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8369000 0! #8369500 1! #8369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8370000 0! #8370500 1! #8370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8371000 0! #8371500 1! #8371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8372000 0! #8372500 1! #8372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8373000 0! #8373500 1! #8373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8374000 0! #8374500 1! #8374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8375000 0! #8375500 1! #8375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8376000 0! #8376500 1! #8376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8377000 0! #8377500 1! #8377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8378000 0! #8378500 1! #8378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8379000 0! #8379500 1! #8379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8380000 0! #8380500 1! #8380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8381000 0! #8381500 1! #8381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8382000 0! #8382500 1! #8382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8383000 0! #8383500 1! #8383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8384000 0! #8384500 1! #8384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8385000 0! #8385500 1! #8385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8386000 0! #8386500 1! #8386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8387000 0! #8387500 1! #8387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8388000 0! #8388500 1! #8388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8389000 0! #8389500 1! #8389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8390000 0! #8390500 1! #8390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8391000 0! #8391500 1! #8391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8392000 0! #8392500 1! #8392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8393000 0! #8393500 1! #8393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8394000 0! #8394500 1! #8394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8395000 0! #8395500 1! #8395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8396000 0! #8396500 1! #8396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8397000 0! #8397500 1! #8397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8398000 0! #8398500 1! #8398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8399000 0! #8399500 1! #8399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8400000 0! #8400500 1! #8400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8401000 0! #8401500 1! #8401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8402000 0! #8402500 1! #8402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8403000 0! #8403500 1! #8403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8404000 0! #8404500 1! #8404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8405000 0! #8405500 1! #8405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8406000 0! #8406500 1! #8406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8407000 0! #8407500 1! #8407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8408000 0! #8408500 1! #8408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8409000 0! #8409500 1! #8409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8410000 0! #8410500 1! #8410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8411000 0! #8411500 1! #8411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8412000 0! #8412500 1! #8412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8413000 0! #8413500 1! #8413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8414000 0! #8414500 1! #8414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8415000 0! #8415500 1! #8415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8416000 0! #8416500 1! #8416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8417000 0! #8417500 1! #8417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8418000 0! #8418500 1! #8418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8419000 0! #8419500 1! #8419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8420000 0! #8420500 1! #8420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8421000 0! #8421500 1! #8421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8422000 0! #8422500 1! #8422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8423000 0! #8423500 1! #8423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8424000 0! #8424500 1! #8424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8425000 0! #8425500 1! #8425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8426000 0! #8426500 1! #8426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8427000 0! #8427500 1! #8427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8428000 0! #8428500 1! #8428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8429000 0! #8429500 1! #8429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8430000 0! #8430500 1! #8430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8431000 0! #8431500 1! #8431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8432000 0! #8432500 1! #8432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8433000 0! #8433500 1! #8433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8434000 0! #8434500 1! #8434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8435000 0! #8435500 1! #8435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8436000 0! #8436500 1! #8436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8437000 0! #8437500 1! #8437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8438000 0! #8438500 1! #8438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8439000 0! #8439500 1! #8439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8440000 0! #8440500 1! #8440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8441000 0! #8441500 1! #8441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8442000 0! #8442500 1! #8442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8443000 0! #8443500 1! #8443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #8444000 0! #8444500 1! #8444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8445000 0! #8445500 1! #8445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8446000 0! #8446500 1! #8446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8447000 0! #8447500 1! #8447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8448000 0! #8448500 1! #8448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8449000 0! #8449500 1! #8449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8450000 0! #8450500 1! #8450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8451000 0! #8451500 1! #8451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8452000 0! #8452500 1! #8452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8453000 0! #8453500 1! #8453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8454000 0! #8454500 1! #8454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8455000 0! #8455500 1! #8455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8456000 0! #8456500 1! #8456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8457000 0! #8457500 1! #8457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8458000 0! #8458500 1! #8458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8459000 0! #8459500 1! #8459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8460000 0! #8460500 1! #8460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8461000 0! #8461500 1! #8461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8462000 0! #8462500 1! #8462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8463000 0! #8463500 1! #8463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8464000 0! #8464500 1! #8464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8465000 0! #8465500 1! #8465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8466000 0! #8466500 1! #8466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8467000 0! #8467500 1! #8467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8468000 0! #8468500 1! #8468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8469000 0! #8469500 1! #8469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8470000 0! #8470500 1! #8470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8471000 0! #8471500 1! #8471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8472000 0! #8472500 1! #8472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8473000 0! #8473500 1! #8473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8474000 0! #8474500 1! #8474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8475000 0! #8475500 1! #8475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8476000 0! #8476500 1! #8476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8477000 0! #8477500 1! #8477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8478000 0! #8478500 1! #8478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8479000 0! #8479500 1! #8479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8480000 0! #8480500 1! #8480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8481000 0! #8481500 1! #8481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8482000 0! #8482500 1! #8482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8483000 0! #8483500 1! #8483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8484000 0! #8484500 1! #8484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8485000 0! #8485500 1! #8485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8486000 0! #8486500 1! #8486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8487000 0! #8487500 1! #8487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8488000 0! #8488500 1! #8488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8489000 0! #8489500 1! #8489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8490000 0! #8490500 1! #8490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8491000 0! #8491500 1! #8491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8492000 0! #8492500 1! #8492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8493000 0! #8493500 1! #8493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8494000 0! #8494500 1! #8494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8495000 0! #8495500 1! #8495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8496000 0! #8496500 1! #8496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8497000 0! #8497500 1! #8497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8498000 0! #8498500 1! #8498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8499000 0! #8499500 1! #8499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8500000 0! #8500500 1! #8500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8501000 0! #8501500 1! #8501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8502000 0! #8502500 1! #8502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8503000 0! #8503500 1! #8503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8504000 0! #8504500 1! #8504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8505000 0! #8505500 1! #8505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8506000 0! #8506500 1! #8506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8507000 0! #8507500 1! #8507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8508000 0! #8508500 1! #8508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8509000 0! #8509500 1! #8509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8510000 0! #8510500 1! #8510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8511000 0! #8511500 1! #8511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8512000 0! #8512500 1! #8512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8513000 0! #8513500 1! #8513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8514000 0! #8514500 1! #8514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8515000 0! #8515500 1! #8515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8516000 0! #8516500 1! #8516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8517000 0! #8517500 1! #8517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8518000 0! #8518500 1! #8518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8519000 0! #8519500 1! #8519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8520000 0! #8520500 1! #8520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8521000 0! #8521500 1! #8521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8522000 0! #8522500 1! #8522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8523000 0! #8523500 1! #8523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8524000 0! #8524500 1! #8524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8525000 0! #8525500 1! #8525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8526000 0! #8526500 1! #8526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8527000 0! #8527500 1! #8527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8528000 0! #8528500 1! #8528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8529000 0! #8529500 1! #8529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8530000 0! #8530500 1! #8530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8531000 0! #8531500 1! #8531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8532000 0! #8532500 1! #8532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8533000 0! #8533500 1! #8533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8534000 0! #8534500 1! #8534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8535000 0! #8535500 1! #8535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8536000 0! #8536500 1! #8536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8537000 0! #8537500 1! #8537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8538000 0! #8538500 1! #8538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8539000 0! #8539500 1! #8539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8540000 0! #8540500 1! #8540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8541000 0! #8541500 1! #8541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8542000 0! #8542500 1! #8542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8543000 0! #8543500 1! #8543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8544000 0! #8544500 1! #8544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8545000 0! #8545500 1! #8545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #8546000 0! #8546500 1! #8546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8547000 0! #8547500 1! #8547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8548000 0! #8548500 1! #8548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8549000 0! #8549500 1! #8549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8550000 0! #8550500 1! #8550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8551000 0! #8551500 1! #8551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8552000 0! #8552500 1! #8552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8553000 0! #8553500 1! #8553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8554000 0! #8554500 1! #8554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8555000 0! #8555500 1! #8555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8556000 0! #8556500 1! #8556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8557000 0! #8557500 1! #8557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8558000 0! #8558500 1! #8558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8559000 0! #8559500 1! #8559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8560000 0! #8560500 1! #8560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8561000 0! #8561500 1! #8561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8562000 0! #8562500 1! #8562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8563000 0! #8563500 1! #8563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8564000 0! #8564500 1! #8564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8565000 0! #8565500 1! #8565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8566000 0! #8566500 1! #8566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8567000 0! #8567500 1! #8567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8568000 0! #8568500 1! #8568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8569000 0! #8569500 1! #8569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8570000 0! #8570500 1! #8570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8571000 0! #8571500 1! #8571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8572000 0! #8572500 1! #8572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8573000 0! #8573500 1! #8573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8574000 0! #8574500 1! #8574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8575000 0! #8575500 1! #8575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8576000 0! #8576500 1! #8576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8577000 0! #8577500 1! #8577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8578000 0! #8578500 1! #8578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8579000 0! #8579500 1! #8579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8580000 0! #8580500 1! #8580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8581000 0! #8581500 1! #8581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8582000 0! #8582500 1! #8582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8583000 0! #8583500 1! #8583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8584000 0! #8584500 1! #8584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8585000 0! #8585500 1! #8585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8586000 0! #8586500 1! #8586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8587000 0! #8587500 1! #8587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8588000 0! #8588500 1! #8588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8589000 0! #8589500 1! #8589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8590000 0! #8590500 1! #8590600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8591000 0! #8591500 1! #8591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8592000 0! #8592500 1! #8592600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8593000 0! #8593500 1! #8593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8594000 0! #8594500 1! #8594600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8595000 0! #8595500 1! #8595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8596000 0! #8596500 1! #8596600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #8596700 b10 g b10010110 c #8597000 0! #8597500 1! #8597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8598000 0! #8598500 1! #8598600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8599000 0! #8599500 1! #8599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8600000 0! #8600500 1! #8600600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8601000 0! #8601500 1! #8601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8602000 0! #8602500 1! #8602600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8603000 0! #8603500 1! #8603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8604000 0! #8604500 1! #8604600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8605000 0! #8605500 1! #8605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8606000 0! #8606500 1! #8606600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8607000 0! #8607500 1! #8607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8608000 0! #8608500 1! #8608600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8609000 0! #8609500 1! #8609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8610000 0! #8610500 1! #8610600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8611000 0! #8611500 1! #8611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8612000 0! #8612500 1! #8612600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8613000 0! #8613500 1! #8613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8614000 0! #8614500 1! #8614600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8615000 0! #8615500 1! #8615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8616000 0! #8616500 1! #8616600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8617000 0! #8617500 1! #8617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8618000 0! #8618500 1! #8618600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8619000 0! #8619500 1! #8619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8620000 0! #8620500 1! #8620600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8621000 0! #8621500 1! #8621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8622000 0! #8622500 1! #8622600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8623000 0! #8623500 1! #8623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8624000 0! #8624500 1! #8624600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8625000 0! #8625500 1! #8625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8626000 0! #8626500 1! #8626600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8627000 0! #8627500 1! #8627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8628000 0! #8628500 1! #8628600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8629000 0! #8629500 1! #8629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8630000 0! #8630500 1! #8630600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8631000 0! #8631500 1! #8631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8632000 0! #8632500 1! #8632600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8633000 0! #8633500 1! #8633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8634000 0! #8634500 1! #8634600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8635000 0! #8635500 1! #8635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8636000 0! #8636500 1! #8636600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8637000 0! #8637500 1! #8637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8638000 0! #8638500 1! #8638600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8639000 0! #8639500 1! #8639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8640000 0! #8640500 1! #8640600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8641000 0! #8641500 1! #8641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8642000 0! #8642500 1! #8642600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8643000 0! #8643500 1! #8643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8644000 0! #8644500 1! #8644600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8645000 0! #8645500 1! #8645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8646000 0! #8646500 1! #8646600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8647000 0! #8647500 1! #8647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8648000 0! #8648500 1! #8648600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8649000 0! #8649500 1! #8649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8650000 0! #8650500 1! #8650600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8651000 0! #8651500 1! #8651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8652000 0! #8652500 1! #8652600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8653000 0! #8653500 1! #8653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8654000 0! #8654500 1! #8654600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8655000 0! #8655500 1! #8655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8656000 0! #8656500 1! #8656600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8657000 0! #8657500 1! #8657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8658000 0! #8658500 1! #8658600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8659000 0! #8659500 1! #8659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8660000 0! #8660500 1! #8660600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8661000 0! #8661500 1! #8661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8662000 0! #8662500 1! #8662600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8663000 0! #8663500 1! #8663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8664000 0! #8664500 1! #8664600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8665000 0! #8665500 1! #8665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8666000 0! #8666500 1! #8666600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8667000 0! #8667500 1! #8667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8668000 0! #8668500 1! #8668600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8669000 0! #8669500 1! #8669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8670000 0! #8670500 1! #8670600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8671000 0! #8671500 1! #8671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8672000 0! #8672500 1! #8672600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8673000 0! #8673500 1! #8673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8674000 0! #8674500 1! #8674600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8675000 0! #8675500 1! #8675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8676000 0! #8676500 1! #8676600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8677000 0! #8677500 1! #8677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8678000 0! #8678500 1! #8678600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8679000 0! #8679500 1! #8679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8680000 0! #8680500 1! #8680600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8681000 0! #8681500 1! #8681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8682000 0! #8682500 1! #8682600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8683000 0! #8683500 1! #8683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8684000 0! #8684500 1! #8684600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8685000 0! #8685500 1! #8685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8686000 0! #8686500 1! #8686600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8687000 0! #8687500 1! #8687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8688000 0! #8688500 1! #8688600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8689000 0! #8689500 1! #8689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8690000 0! #8690500 1! #8690600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8691000 0! #8691500 1! #8691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8692000 0! #8692500 1! #8692600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8693000 0! #8693500 1! #8693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8694000 0! #8694500 1! #8694600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8695000 0! #8695500 1! #8695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8696000 0! #8696500 1! #8696600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8697000 0! #8697500 1! #8697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8698000 0! #8698500 1! #8698600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #8699000 0! #8699500 1! #8699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8700000 0! #8700500 1! #8700600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8701000 0! #8701500 1! #8701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8702000 0! #8702500 1! #8702600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8703000 0! #8703500 1! #8703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8704000 0! #8704500 1! #8704600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8705000 0! #8705500 1! #8705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8706000 0! #8706500 1! #8706600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8707000 0! #8707500 1! #8707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8708000 0! #8708500 1! #8708600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8709000 0! #8709500 1! #8709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8710000 0! #8710500 1! #8710600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8711000 0! #8711500 1! #8711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8712000 0! #8712500 1! #8712600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8713000 0! #8713500 1! #8713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8714000 0! #8714500 1! #8714600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8715000 0! #8715500 1! #8715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8716000 0! #8716500 1! #8716600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8717000 0! #8717500 1! #8717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8718000 0! #8718500 1! #8718600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8719000 0! #8719500 1! #8719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8720000 0! #8720500 1! #8720600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8721000 0! #8721500 1! #8721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8722000 0! #8722500 1! #8722600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8723000 0! #8723500 1! #8723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8724000 0! #8724500 1! #8724600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8725000 0! #8725500 1! #8725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8726000 0! #8726500 1! #8726600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8727000 0! #8727500 1! #8727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8728000 0! #8728500 1! #8728600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8729000 0! #8729500 1! #8729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8730000 0! #8730500 1! #8730600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8731000 0! #8731500 1! #8731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8732000 0! #8732500 1! #8732600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8733000 0! #8733500 1! #8733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8734000 0! #8734500 1! #8734600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8735000 0! #8735500 1! #8735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8736000 0! #8736500 1! #8736600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8737000 0! #8737500 1! #8737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8738000 0! #8738500 1! #8738600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8739000 0! #8739500 1! #8739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8740000 0! #8740500 1! #8740600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8741000 0! #8741500 1! #8741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8742000 0! #8742500 1! #8742600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8743000 0! #8743500 1! #8743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8744000 0! #8744500 1! #8744600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8745000 0! #8745500 1! #8745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8746000 0! #8746500 1! #8746600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8747000 0! #8747500 1! #8747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8748000 0! #8748500 1! #8748600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8749000 0! #8749500 1! #8749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8750000 0! #8750500 1! #8750600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8751000 0! #8751500 1! #8751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8752000 0! #8752500 1! #8752600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8753000 0! #8753500 1! #8753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8754000 0! #8754500 1! #8754600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8755000 0! #8755500 1! #8755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8756000 0! #8756500 1! #8756600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8757000 0! #8757500 1! #8757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8758000 0! #8758500 1! #8758600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8759000 0! #8759500 1! #8759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8760000 0! #8760500 1! #8760600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8761000 0! #8761500 1! #8761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8762000 0! #8762500 1! #8762600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8763000 0! #8763500 1! #8763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8764000 0! #8764500 1! #8764600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8765000 0! #8765500 1! #8765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8766000 0! #8766500 1! #8766600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8767000 0! #8767500 1! #8767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8768000 0! #8768500 1! #8768600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8769000 0! #8769500 1! #8769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8770000 0! #8770500 1! #8770600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8771000 0! #8771500 1! #8771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8772000 0! #8772500 1! #8772600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8773000 0! #8773500 1! #8773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8774000 0! #8774500 1! #8774600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8775000 0! #8775500 1! #8775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8776000 0! #8776500 1! #8776600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8777000 0! #8777500 1! #8777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8778000 0! #8778500 1! #8778600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8779000 0! #8779500 1! #8779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8780000 0! #8780500 1! #8780600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8781000 0! #8781500 1! #8781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8782000 0! #8782500 1! #8782600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8783000 0! #8783500 1! #8783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8784000 0! #8784500 1! #8784600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8785000 0! #8785500 1! #8785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8786000 0! #8786500 1! #8786600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8787000 0! #8787500 1! #8787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8788000 0! #8788500 1! #8788600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8789000 0! #8789500 1! #8789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8790000 0! #8790500 1! #8790600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8791000 0! #8791500 1! #8791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8792000 0! #8792500 1! #8792600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8793000 0! #8793500 1! #8793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8794000 0! #8794500 1! #8794600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8795000 0! #8795500 1! #8795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8796000 0! #8796500 1! #8796600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8797000 0! #8797500 1! #8797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8798000 0! #8798500 1! #8798600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8799000 0! #8799500 1! #8799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8800000 0! #8800500 1! #8800600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q 1O #8801000 0! #8801500 1! #8801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8802000 0! #8802500 1! #8802600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8803000 0! #8803500 1! #8803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8804000 0! #8804500 1! #8804600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8805000 0! #8805500 1! #8805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8806000 0! #8806500 1! #8806600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8807000 0! #8807500 1! #8807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8808000 0! #8808500 1! #8808600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8809000 0! #8809500 1! #8809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8810000 0! #8810500 1! #8810600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8811000 0! #8811500 1! #8811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8812000 0! #8812500 1! #8812600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8813000 0! #8813500 1! #8813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8814000 0! #8814500 1! #8814600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8815000 0! #8815500 1! #8815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8816000 0! #8816500 1! #8816600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8817000 0! #8817500 1! #8817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8818000 0! #8818500 1! #8818600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8819000 0! #8819500 1! #8819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8820000 0! #8820500 1! #8820600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8821000 0! #8821500 1! #8821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8822000 0! #8822500 1! #8822600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8823000 0! #8823500 1! #8823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8824000 0! #8824500 1! #8824600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8825000 0! #8825500 1! #8825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8826000 0! #8826500 1! #8826600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8827000 0! #8827500 1! #8827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8828000 0! #8828500 1! #8828600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8829000 0! #8829500 1! #8829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8830000 0! #8830500 1! #8830600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8831000 0! #8831500 1! #8831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8832000 0! #8832500 1! #8832600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8833000 0! #8833500 1! #8833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8834000 0! #8834500 1! #8834600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8835000 0! #8835500 1! #8835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8836000 0! #8836500 1! #8836600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8837000 0! #8837500 1! #8837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8838000 0! #8838500 1! #8838600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8839000 0! #8839500 1! #8839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8840000 0! #8840500 1! #8840600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8841000 0! #8841500 1! #8841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8842000 0! #8842500 1! #8842600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8843000 0! #8843500 1! #8843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8844000 0! #8844500 1! #8844600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8845000 0! #8845500 1! #8845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8846000 0! #8846500 1! #8846600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8847000 0! #8847500 1! #8847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8848000 0! #8848500 1! #8848600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8849000 0! #8849500 1! #8849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8850000 0! #8850500 1! #8850600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8851000 0! #8851500 1! #8851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #8851700 b1 g b101101 c #8852000 0! #8852500 1! #8852600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8853000 0! #8853500 1! #8853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8854000 0! #8854500 1! #8854600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8855000 0! #8855500 1! #8855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8856000 0! #8856500 1! #8856600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8857000 0! #8857500 1! #8857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8858000 0! #8858500 1! #8858600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8859000 0! #8859500 1! #8859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8860000 0! #8860500 1! #8860600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8861000 0! #8861500 1! #8861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8862000 0! #8862500 1! #8862600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8863000 0! #8863500 1! #8863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8864000 0! #8864500 1! #8864600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8865000 0! #8865500 1! #8865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8866000 0! #8866500 1! #8866600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8867000 0! #8867500 1! #8867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8868000 0! #8868500 1! #8868600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8869000 0! #8869500 1! #8869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8870000 0! #8870500 1! #8870600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8871000 0! #8871500 1! #8871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8872000 0! #8872500 1! #8872600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8873000 0! #8873500 1! #8873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8874000 0! #8874500 1! #8874600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8875000 0! #8875500 1! #8875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8876000 0! #8876500 1! #8876600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8877000 0! #8877500 1! #8877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8878000 0! #8878500 1! #8878600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8879000 0! #8879500 1! #8879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8880000 0! #8880500 1! #8880600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8881000 0! #8881500 1! #8881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8882000 0! #8882500 1! #8882600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8883000 0! #8883500 1! #8883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8884000 0! #8884500 1! #8884600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8885000 0! #8885500 1! #8885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8886000 0! #8886500 1! #8886600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8887000 0! #8887500 1! #8887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8888000 0! #8888500 1! #8888600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8889000 0! #8889500 1! #8889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8890000 0! #8890500 1! #8890600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8891000 0! #8891500 1! #8891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8892000 0! #8892500 1! #8892600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8893000 0! #8893500 1! #8893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8894000 0! #8894500 1! #8894600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8895000 0! #8895500 1! #8895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8896000 0! #8896500 1! #8896600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8897000 0! #8897500 1! #8897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8898000 0! #8898500 1! #8898600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8899000 0! #8899500 1! #8899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8900000 0! #8900500 1! #8900600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8901000 0! #8901500 1! #8901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8902000 0! #8902500 1! #8902600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8903000 0! #8903500 1! #8903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8904000 0! #8904500 1! #8904600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8905000 0! #8905500 1! #8905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8906000 0! #8906500 1! #8906600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8907000 0! #8907500 1! #8907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8908000 0! #8908500 1! #8908600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8909000 0! #8909500 1! #8909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8910000 0! #8910500 1! #8910600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8911000 0! #8911500 1! #8911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8912000 0! #8912500 1! #8912600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8913000 0! #8913500 1! #8913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8914000 0! #8914500 1! #8914600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8915000 0! #8915500 1! #8915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8916000 0! #8916500 1! #8916600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8917000 0! #8917500 1! #8917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8918000 0! #8918500 1! #8918600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8919000 0! #8919500 1! #8919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8920000 0! #8920500 1! #8920600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8921000 0! #8921500 1! #8921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8922000 0! #8922500 1! #8922600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8923000 0! #8923500 1! #8923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8924000 0! #8924500 1! #8924600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8925000 0! #8925500 1! #8925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8926000 0! #8926500 1! #8926600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8927000 0! #8927500 1! #8927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8928000 0! #8928500 1! #8928600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8929000 0! #8929500 1! #8929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8930000 0! #8930500 1! #8930600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8931000 0! #8931500 1! #8931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8932000 0! #8932500 1! #8932600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8933000 0! #8933500 1! #8933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8934000 0! #8934500 1! #8934600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8935000 0! #8935500 1! #8935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8936000 0! #8936500 1! #8936600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8937000 0! #8937500 1! #8937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8938000 0! #8938500 1! #8938600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8939000 0! #8939500 1! #8939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8940000 0! #8940500 1! #8940600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8941000 0! #8941500 1! #8941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8942000 0! #8942500 1! #8942600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8943000 0! #8943500 1! #8943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8944000 0! #8944500 1! #8944600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8945000 0! #8945500 1! #8945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8946000 0! #8946500 1! #8946600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8947000 0! #8947500 1! #8947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8948000 0! #8948500 1! #8948600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8949000 0! #8949500 1! #8949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8950000 0! #8950500 1! #8950600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8951000 0! #8951500 1! #8951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8952000 0! #8952500 1! #8952600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8953000 0! #8953500 1! #8953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #8954000 0! #8954500 1! #8954600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8955000 0! #8955500 1! #8955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8956000 0! #8956500 1! #8956600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8957000 0! #8957500 1! #8957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8958000 0! #8958500 1! #8958600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8959000 0! #8959500 1! #8959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8960000 0! #8960500 1! #8960600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8961000 0! #8961500 1! #8961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8962000 0! #8962500 1! #8962600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8963000 0! #8963500 1! #8963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8964000 0! #8964500 1! #8964600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8965000 0! #8965500 1! #8965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8966000 0! #8966500 1! #8966600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8967000 0! #8967500 1! #8967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8968000 0! #8968500 1! #8968600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8969000 0! #8969500 1! #8969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8970000 0! #8970500 1! #8970600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8971000 0! #8971500 1! #8971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8972000 0! #8972500 1! #8972600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8973000 0! #8973500 1! #8973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8974000 0! #8974500 1! #8974600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8975000 0! #8975500 1! #8975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8976000 0! #8976500 1! #8976600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8977000 0! #8977500 1! #8977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8978000 0! #8978500 1! #8978600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8979000 0! #8979500 1! #8979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8980000 0! #8980500 1! #8980600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8981000 0! #8981500 1! #8981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8982000 0! #8982500 1! #8982600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8983000 0! #8983500 1! #8983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8984000 0! #8984500 1! #8984600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8985000 0! #8985500 1! #8985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8986000 0! #8986500 1! #8986600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8987000 0! #8987500 1! #8987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8988000 0! #8988500 1! #8988600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8989000 0! #8989500 1! #8989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8990000 0! #8990500 1! #8990600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8991000 0! #8991500 1! #8991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8992000 0! #8992500 1! #8992600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8993000 0! #8993500 1! #8993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8994000 0! #8994500 1! #8994600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8995000 0! #8995500 1! #8995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8996000 0! #8996500 1! #8996600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8997000 0! #8997500 1! #8997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #8998000 0! #8998500 1! #8998600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #8999000 0! #8999500 1! #8999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9000000 0! #9000500 1! #9000600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9001000 0! #9001500 1! #9001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9002000 0! #9002500 1! #9002600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9003000 0! #9003500 1! #9003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9004000 0! #9004500 1! #9004600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9005000 0! #9005500 1! #9005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9006000 0! #9006500 1! #9006600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9007000 0! #9007500 1! #9007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9008000 0! #9008500 1! #9008600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9009000 0! #9009500 1! #9009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9010000 0! #9010500 1! #9010600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9011000 0! #9011500 1! #9011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9012000 0! #9012500 1! #9012600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9013000 0! #9013500 1! #9013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9014000 0! #9014500 1! #9014600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9015000 0! #9015500 1! #9015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9016000 0! #9016500 1! #9016600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9017000 0! #9017500 1! #9017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9018000 0! #9018500 1! #9018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9019000 0! #9019500 1! #9019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9020000 0! #9020500 1! #9020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9021000 0! #9021500 1! #9021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9022000 0! #9022500 1! #9022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9023000 0! #9023500 1! #9023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9024000 0! #9024500 1! #9024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9025000 0! #9025500 1! #9025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9026000 0! #9026500 1! #9026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9027000 0! #9027500 1! #9027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9028000 0! #9028500 1! #9028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9029000 0! #9029500 1! #9029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9030000 0! #9030500 1! #9030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9031000 0! #9031500 1! #9031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9032000 0! #9032500 1! #9032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9033000 0! #9033500 1! #9033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9034000 0! #9034500 1! #9034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9035000 0! #9035500 1! #9035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9036000 0! #9036500 1! #9036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9037000 0! #9037500 1! #9037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9038000 0! #9038500 1! #9038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9039000 0! #9039500 1! #9039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9040000 0! #9040500 1! #9040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9041000 0! #9041500 1! #9041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9042000 0! #9042500 1! #9042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9043000 0! #9043500 1! #9043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9044000 0! #9044500 1! #9044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9045000 0! #9045500 1! #9045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9046000 0! #9046500 1! #9046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9047000 0! #9047500 1! #9047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9048000 0! #9048500 1! #9048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9049000 0! #9049500 1! #9049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9050000 0! #9050500 1! #9050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9051000 0! #9051500 1! #9051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9052000 0! #9052500 1! #9052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9053000 0! #9053500 1! #9053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9054000 0! #9054500 1! #9054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9055000 0! #9055500 1! #9055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #9056000 0! #9056500 1! #9056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9057000 0! #9057500 1! #9057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9058000 0! #9058500 1! #9058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9059000 0! #9059500 1! #9059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9060000 0! #9060500 1! #9060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9061000 0! #9061500 1! #9061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9062000 0! #9062500 1! #9062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9063000 0! #9063500 1! #9063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9064000 0! #9064500 1! #9064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9065000 0! #9065500 1! #9065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9066000 0! #9066500 1! #9066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9067000 0! #9067500 1! #9067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9068000 0! #9068500 1! #9068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9069000 0! #9069500 1! #9069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9070000 0! #9070500 1! #9070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9071000 0! #9071500 1! #9071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9072000 0! #9072500 1! #9072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9073000 0! #9073500 1! #9073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9074000 0! #9074500 1! #9074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9075000 0! #9075500 1! #9075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9076000 0! #9076500 1! #9076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9077000 0! #9077500 1! #9077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9078000 0! #9078500 1! #9078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9079000 0! #9079500 1! #9079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9080000 0! #9080500 1! #9080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9081000 0! #9081500 1! #9081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9082000 0! #9082500 1! #9082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9083000 0! #9083500 1! #9083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9084000 0! #9084500 1! #9084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9085000 0! #9085500 1! #9085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9086000 0! #9086500 1! #9086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9087000 0! #9087500 1! #9087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9088000 0! #9088500 1! #9088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9089000 0! #9089500 1! #9089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9090000 0! #9090500 1! #9090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9091000 0! #9091500 1! #9091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9092000 0! #9092500 1! #9092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9093000 0! #9093500 1! #9093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9094000 0! #9094500 1! #9094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9095000 0! #9095500 1! #9095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9096000 0! #9096500 1! #9096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9097000 0! #9097500 1! #9097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9098000 0! #9098500 1! #9098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9099000 0! #9099500 1! #9099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9100000 0! #9100500 1! #9100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9101000 0! #9101500 1! #9101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9102000 0! #9102500 1! #9102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9103000 0! #9103500 1! #9103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9104000 0! #9104500 1! #9104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9105000 0! #9105500 1! #9105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9106000 0! #9106500 1! #9106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #9106700 b0 g b1011010 c 1h #9107000 0! #9107500 1! #9107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9108000 0! #9108500 1! #9108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9109000 0! #9109500 1! #9109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9110000 0! #9110500 1! #9110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9111000 0! #9111500 1! #9111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9112000 0! #9112500 1! #9112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9113000 0! #9113500 1! #9113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9114000 0! #9114500 1! #9114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9115000 0! #9115500 1! #9115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9116000 0! #9116500 1! #9116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9117000 0! #9117500 1! #9117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9118000 0! #9118500 1! #9118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9119000 0! #9119500 1! #9119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9120000 0! #9120500 1! #9120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9121000 0! #9121500 1! #9121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9122000 0! #9122500 1! #9122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9123000 0! #9123500 1! #9123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9124000 0! #9124500 1! #9124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9125000 0! #9125500 1! #9125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9126000 0! #9126500 1! #9126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9127000 0! #9127500 1! #9127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9128000 0! #9128500 1! #9128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9129000 0! #9129500 1! #9129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9130000 0! #9130500 1! #9130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9131000 0! #9131500 1! #9131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9132000 0! #9132500 1! #9132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9133000 0! #9133500 1! #9133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9134000 0! #9134500 1! #9134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9135000 0! #9135500 1! #9135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9136000 0! #9136500 1! #9136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9137000 0! #9137500 1! #9137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9138000 0! #9138500 1! #9138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9139000 0! #9139500 1! #9139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9140000 0! #9140500 1! #9140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9141000 0! #9141500 1! #9141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9142000 0! #9142500 1! #9142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9143000 0! #9143500 1! #9143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9144000 0! #9144500 1! #9144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9145000 0! #9145500 1! #9145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9146000 0! #9146500 1! #9146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9147000 0! #9147500 1! #9147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9148000 0! #9148500 1! #9148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9149000 0! #9149500 1! #9149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9150000 0! #9150500 1! #9150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9151000 0! #9151500 1! #9151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9152000 0! #9152500 1! #9152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9153000 0! #9153500 1! #9153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9154000 0! #9154500 1! #9154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9155000 0! #9155500 1! #9155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9156000 0! #9156500 1! #9156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9157000 0! #9157500 1! #9157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9158000 0! #9158500 1! #9158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9159000 0! #9159500 1! #9159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9160000 0! #9160500 1! #9160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9161000 0! #9161500 1! #9161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9162000 0! #9162500 1! #9162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9163000 0! #9163500 1! #9163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9164000 0! #9164500 1! #9164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9165000 0! #9165500 1! #9165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9166000 0! #9166500 1! #9166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9167000 0! #9167500 1! #9167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9168000 0! #9168500 1! #9168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9169000 0! #9169500 1! #9169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9170000 0! #9170500 1! #9170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9171000 0! #9171500 1! #9171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9172000 0! #9172500 1! #9172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9173000 0! #9173500 1! #9173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9174000 0! #9174500 1! #9174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9175000 0! #9175500 1! #9175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9176000 0! #9176500 1! #9176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9177000 0! #9177500 1! #9177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9178000 0! #9178500 1! #9178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9179000 0! #9179500 1! #9179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9180000 0! #9180500 1! #9180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9181000 0! #9181500 1! #9181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9182000 0! #9182500 1! #9182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9183000 0! #9183500 1! #9183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9184000 0! #9184500 1! #9184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9185000 0! #9185500 1! #9185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9186000 0! #9186500 1! #9186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9187000 0! #9187500 1! #9187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9188000 0! #9188500 1! #9188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9189000 0! #9189500 1! #9189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9190000 0! #9190500 1! #9190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9191000 0! #9191500 1! #9191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9192000 0! #9192500 1! #9192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9193000 0! #9193500 1! #9193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9194000 0! #9194500 1! #9194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9195000 0! #9195500 1! #9195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9196000 0! #9196500 1! #9196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9197000 0! #9197500 1! #9197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9198000 0! #9198500 1! #9198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9199000 0! #9199500 1! #9199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9200000 0! #9200500 1! #9200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9201000 0! #9201500 1! #9201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9202000 0! #9202500 1! #9202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9203000 0! #9203500 1! #9203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9204000 0! #9204500 1! #9204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9205000 0! #9205500 1! #9205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9206000 0! #9206500 1! #9206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9207000 0! #9207500 1! #9207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9208000 0! #9208500 1! #9208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #9208700 b101 q 0j #9208800 b11 ] #9209000 0! #9209500 1! #9209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9210000 0! #9210500 1! #9210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9211000 0! #9211500 1! #9211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9212000 0! #9212500 1! #9212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9213000 0! #9213500 1! #9213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9214000 0! #9214500 1! #9214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9215000 0! #9215500 1! #9215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9216000 0! #9216500 1! #9216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9217000 0! #9217500 1! #9217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9218000 0! #9218500 1! #9218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9219000 0! #9219500 1! #9219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9220000 0! #9220500 1! #9220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9221000 0! #9221500 1! #9221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9222000 0! #9222500 1! #9222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9223000 0! #9223500 1! #9223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9224000 0! #9224500 1! #9224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9225000 0! #9225500 1! #9225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9226000 0! #9226500 1! #9226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9227000 0! #9227500 1! #9227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9228000 0! #9228500 1! #9228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9229000 0! #9229500 1! #9229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9230000 0! #9230500 1! #9230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9231000 0! #9231500 1! #9231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9232000 0! #9232500 1! #9232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9233000 0! #9233500 1! #9233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9234000 0! #9234500 1! #9234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9235000 0! #9235500 1! #9235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9236000 0! #9236500 1! #9236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9237000 0! #9237500 1! #9237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9238000 0! #9238500 1! #9238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9239000 0! #9239500 1! #9239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9240000 0! #9240500 1! #9240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9241000 0! #9241500 1! #9241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9242000 0! #9242500 1! #9242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9243000 0! #9243500 1! #9243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9244000 0! #9244500 1! #9244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9245000 0! #9245500 1! #9245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9246000 0! #9246500 1! #9246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9247000 0! #9247500 1! #9247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9248000 0! #9248500 1! #9248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9249000 0! #9249500 1! #9249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9250000 0! #9250500 1! #9250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9251000 0! #9251500 1! #9251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9252000 0! #9252500 1! #9252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9253000 0! #9253500 1! #9253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9254000 0! #9254500 1! #9254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9255000 0! #9255500 1! #9255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9256000 0! #9256500 1! #9256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9257000 0! #9257500 1! #9257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9258000 0! #9258500 1! #9258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9259000 0! #9259500 1! #9259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9260000 0! #9260500 1! #9260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9261000 0! #9261500 1! #9261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9262000 0! #9262500 1! #9262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9263000 0! #9263500 1! #9263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9264000 0! #9264500 1! #9264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9265000 0! #9265500 1! #9265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9266000 0! #9266500 1! #9266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9267000 0! #9267500 1! #9267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9268000 0! #9268500 1! #9268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9269000 0! #9269500 1! #9269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9270000 0! #9270500 1! #9270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9271000 0! #9271500 1! #9271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9272000 0! #9272500 1! #9272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9273000 0! #9273500 1! #9273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9274000 0! #9274500 1! #9274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9275000 0! #9275500 1! #9275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9276000 0! #9276500 1! #9276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9277000 0! #9277500 1! #9277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9278000 0! #9278500 1! #9278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9279000 0! #9279500 1! #9279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9280000 0! #9280500 1! #9280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9281000 0! #9281500 1! #9281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9282000 0! #9282500 1! #9282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9283000 0! #9283500 1! #9283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9284000 0! #9284500 1! #9284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9285000 0! #9285500 1! #9285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9286000 0! #9286500 1! #9286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9287000 0! #9287500 1! #9287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9288000 0! #9288500 1! #9288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9289000 0! #9289500 1! #9289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9290000 0! #9290500 1! #9290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9291000 0! #9291500 1! #9291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9292000 0! #9292500 1! #9292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9293000 0! #9293500 1! #9293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9294000 0! #9294500 1! #9294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9295000 0! #9295500 1! #9295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9296000 0! #9296500 1! #9296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9297000 0! #9297500 1! #9297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9298000 0! #9298500 1! #9298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9299000 0! #9299500 1! #9299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9300000 0! #9300500 1! #9300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9301000 0! #9301500 1! #9301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9302000 0! #9302500 1! #9302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9303000 0! #9303500 1! #9303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9304000 0! #9304500 1! #9304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9305000 0! #9305500 1! #9305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9306000 0! #9306500 1! #9306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9307000 0! #9307500 1! #9307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9308000 0! #9308500 1! #9308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9309000 0! #9309500 1! #9309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9310000 0! #9310500 1! #9310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q #9311000 0! #9311500 1! #9311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9312000 0! #9312500 1! #9312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9313000 0! #9313500 1! #9313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9314000 0! #9314500 1! #9314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9315000 0! #9315500 1! #9315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9316000 0! #9316500 1! #9316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9317000 0! #9317500 1! #9317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9318000 0! #9318500 1! #9318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9319000 0! #9319500 1! #9319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9320000 0! #9320500 1! #9320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9321000 0! #9321500 1! #9321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9322000 0! #9322500 1! #9322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9323000 0! #9323500 1! #9323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9324000 0! #9324500 1! #9324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9325000 0! #9325500 1! #9325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9326000 0! #9326500 1! #9326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9327000 0! #9327500 1! #9327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9328000 0! #9328500 1! #9328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9329000 0! #9329500 1! #9329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9330000 0! #9330500 1! #9330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9331000 0! #9331500 1! #9331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9332000 0! #9332500 1! #9332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9333000 0! #9333500 1! #9333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9334000 0! #9334500 1! #9334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9335000 0! #9335500 1! #9335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9336000 0! #9336500 1! #9336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9337000 0! #9337500 1! #9337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9338000 0! #9338500 1! #9338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9339000 0! #9339500 1! #9339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9340000 0! #9340500 1! #9340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9341000 0! #9341500 1! #9341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9342000 0! #9342500 1! #9342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9343000 0! #9343500 1! #9343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9344000 0! #9344500 1! #9344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9345000 0! #9345500 1! #9345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9346000 0! #9346500 1! #9346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9347000 0! #9347500 1! #9347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9348000 0! #9348500 1! #9348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9349000 0! #9349500 1! #9349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9350000 0! #9350500 1! #9350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9351000 0! #9351500 1! #9351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9352000 0! #9352500 1! #9352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9353000 0! #9353500 1! #9353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9354000 0! #9354500 1! #9354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9355000 0! #9355500 1! #9355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9356000 0! #9356500 1! #9356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9357000 0! #9357500 1! #9357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9358000 0! #9358500 1! #9358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9359000 0! #9359500 1! #9359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9360000 0! #9360500 1! #9360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9361000 0! #9361500 1! #9361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #9361700 b111 g b10110100 c 0h #9362000 0! #9362500 1! #9362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9363000 0! #9363500 1! #9363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9364000 0! #9364500 1! #9364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9365000 0! #9365500 1! #9365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9366000 0! #9366500 1! #9366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9367000 0! #9367500 1! #9367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9368000 0! #9368500 1! #9368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9369000 0! #9369500 1! #9369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9370000 0! #9370500 1! #9370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9371000 0! #9371500 1! #9371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9372000 0! #9372500 1! #9372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9373000 0! #9373500 1! #9373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9374000 0! #9374500 1! #9374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9375000 0! #9375500 1! #9375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9376000 0! #9376500 1! #9376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9377000 0! #9377500 1! #9377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9378000 0! #9378500 1! #9378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9379000 0! #9379500 1! #9379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9380000 0! #9380500 1! #9380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9381000 0! #9381500 1! #9381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9382000 0! #9382500 1! #9382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9383000 0! #9383500 1! #9383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9384000 0! #9384500 1! #9384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9385000 0! #9385500 1! #9385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9386000 0! #9386500 1! #9386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9387000 0! #9387500 1! #9387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9388000 0! #9388500 1! #9388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9389000 0! #9389500 1! #9389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9390000 0! #9390500 1! #9390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9391000 0! #9391500 1! #9391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9392000 0! #9392500 1! #9392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9393000 0! #9393500 1! #9393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9394000 0! #9394500 1! #9394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9395000 0! #9395500 1! #9395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9396000 0! #9396500 1! #9396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9397000 0! #9397500 1! #9397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9398000 0! #9398500 1! #9398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9399000 0! #9399500 1! #9399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9400000 0! #9400500 1! #9400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9401000 0! #9401500 1! #9401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9402000 0! #9402500 1! #9402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9403000 0! #9403500 1! #9403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9404000 0! #9404500 1! #9404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9405000 0! #9405500 1! #9405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9406000 0! #9406500 1! #9406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9407000 0! #9407500 1! #9407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9408000 0! #9408500 1! #9408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9409000 0! #9409500 1! #9409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9410000 0! #9410500 1! #9410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9411000 0! #9411500 1! #9411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9412000 0! #9412500 1! #9412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9413000 0! #9413500 1! #9413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9414000 0! #9414500 1! #9414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9415000 0! #9415500 1! #9415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9416000 0! #9416500 1! #9416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9417000 0! #9417500 1! #9417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9418000 0! #9418500 1! #9418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9419000 0! #9419500 1! #9419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9420000 0! #9420500 1! #9420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9421000 0! #9421500 1! #9421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9422000 0! #9422500 1! #9422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9423000 0! #9423500 1! #9423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9424000 0! #9424500 1! #9424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9425000 0! #9425500 1! #9425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9426000 0! #9426500 1! #9426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9427000 0! #9427500 1! #9427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9428000 0! #9428500 1! #9428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9429000 0! #9429500 1! #9429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9430000 0! #9430500 1! #9430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9431000 0! #9431500 1! #9431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9432000 0! #9432500 1! #9432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9433000 0! #9433500 1! #9433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9434000 0! #9434500 1! #9434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9435000 0! #9435500 1! #9435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9436000 0! #9436500 1! #9436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9437000 0! #9437500 1! #9437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9438000 0! #9438500 1! #9438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9439000 0! #9439500 1! #9439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9440000 0! #9440500 1! #9440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9441000 0! #9441500 1! #9441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9442000 0! #9442500 1! #9442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9443000 0! #9443500 1! #9443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9444000 0! #9444500 1! #9444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9445000 0! #9445500 1! #9445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9446000 0! #9446500 1! #9446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9447000 0! #9447500 1! #9447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9448000 0! #9448500 1! #9448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9449000 0! #9449500 1! #9449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9450000 0! #9450500 1! #9450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9451000 0! #9451500 1! #9451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9452000 0! #9452500 1! #9452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9453000 0! #9453500 1! #9453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9454000 0! #9454500 1! #9454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9455000 0! #9455500 1! #9455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9456000 0! #9456500 1! #9456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9457000 0! #9457500 1! #9457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9458000 0! #9458500 1! #9458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9459000 0! #9459500 1! #9459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9460000 0! #9460500 1! #9460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9461000 0! #9461500 1! #9461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9462000 0! #9462500 1! #9462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9463000 0! #9463500 1! #9463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #9463700 1j 1i b100 q 1O #9464000 0! #9464500 1! #9464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #9465000 0! #9465500 1! #9465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9466000 0! #9466500 1! #9466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000001 C #9467000 0! #9467500 1! #9467600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #9468000 0! #9468500 1! #9469000 0! #9469500 1! #9470000 0! #9470500 1! #9471000 0! #9471500 1! #9472000 0! #9472500 1! #9473000 0! #9473500 1! #9474000 0! #9474500 1! #9475000 0! #9475500 1! #9476000 0! #9476500 1! #9477000 0! #9477500 1! #9478000 0! #9478500 1! #9479000 0! #9479500 1! #9480000 0! #9480500 1! #9481000 0! #9481500 1! #9482000 0! #9482500 1! #9483000 0! #9483500 1! #9484000 0! #9484500 1! #9485000 0! #9485500 1! #9486000 0! #9486500 1! #9487000 0! #9487500 1! #9488000 0! #9488500 1! #9489000 0! #9489500 1! #9490000 0! #9490500 1! #9491000 0! #9491500 1! #9492000 0! #9492500 1! #9493000 0! #9493500 1! #9494000 0! #9494500 1! #9495000 0! #9495500 1! #9496000 0! #9496500 1! #9497000 0! #9497500 1! #9498000 0! #9498500 1! #9499000 0! #9499500 1! #9500000 0! #9500500 1! #9501000 0! #9501500 1! #9502000 0! #9502500 1! #9503000 0! #9503500 1! #9504000 0! #9504500 1! #9505000 0! #9505500 1! #9506000 0! #9506500 1! #9507000 0! #9507500 1! #9508000 0! #9508500 1! #9509000 0! #9509500 1! #9510000 0! #9510500 1! #9511000 0! #9511500 1! #9512000 0! #9512500 1! #9513000 0! #9513500 1! #9514000 0! #9514500 1! #9515000 0! #9515500 1! #9516000 0! #9516500 1! #9517000 0! #9517500 1! #9518000 0! #9518500 1! #9519000 0! #9519500 1! #9520000 0! #9520500 1! #9521000 0! #9521500 1! #9522000 0! #9522500 1! #9523000 0! #9523500 1! #9524000 0! #9524500 1! #9525000 0! #9525500 1! #9526000 0! #9526500 1! #9527000 0! #9527500 1! #9528000 0! #9528500 1! #9529000 0! #9529500 1! #9530000 0! #9530500 1! #9531000 0! #9531500 1! #9532000 0! #9532500 1! #9533000 0! #9533500 1! #9534000 0! #9534500 1! #9535000 0! #9535500 1! #9536000 0! #9536500 1! #9537000 0! #9537500 1! #9538000 0! #9538500 1! #9539000 0! #9539500 1! #9540000 0! #9540500 1! #9541000 0! #9541500 1! #9542000 0! #9542500 1! #9543000 0! #9543500 1! #9544000 0! #9544500 1! #9545000 0! #9545500 1! #9546000 0! #9546500 1! #9547000 0! #9547500 1! #9548000 0! #9548500 1! #9549000 0! #9549500 1! #9550000 0! #9550500 1! #9551000 0! #9551500 1! #9552000 0! #9552500 1! #9553000 0! #9553500 1! #9554000 0! #9554500 1! #9555000 0! #9555500 1! #9556000 0! #9556500 1! #9557000 0! #9557500 1! #9558000 0! #9558500 1! #9559000 0! #9559500 1! #9560000 0! #9560500 1! #9561000 0! #9561500 1! #9562000 0! #9562500 1! #9563000 0! #9563500 1! #9564000 0! #9564500 1! #9565000 0! #9565500 1! #9565600 0Q 0O #9566000 0! #9566500 1! #9567000 0! #9567500 1! #9568000 0! #9568500 1! #9569000 0! #9569500 1! #9570000 0! #9570500 1! #9571000 0! #9571500 1! #9572000 0! #9572500 1! #9573000 0! #9573500 1! #9574000 0! #9574500 1! #9575000 0! #9575500 1! #9576000 0! #9576500 1! #9577000 0! #9577500 1! #9578000 0! #9578500 1! #9579000 0! #9579500 1! #9580000 0! #9580500 1! #9581000 0! #9581500 1! #9582000 0! #9582500 1! #9583000 0! #9583500 1! #9584000 0! #9584500 1! #9585000 0! #9585500 1! #9586000 0! #9586500 1! #9587000 0! #9587500 1! #9588000 0! #9588500 1! #9589000 0! #9589500 1! #9590000 0! #9590500 1! #9591000 0! #9591500 1! #9592000 0! #9592500 1! #9593000 0! #9593500 1! #9594000 0! #9594500 1! #9595000 0! #9595500 1! #9596000 0! #9596500 1! #9597000 0! #9597500 1! #9598000 0! #9598500 1! #9599000 0! #9599500 1! #9600000 0! #9600500 1! #9601000 0! #9601500 1! #9602000 0! #9602500 1! #9603000 0! #9603500 1! #9604000 0! #9604500 1! #9605000 0! #9605500 1! #9606000 0! #9606500 1! #9607000 0! #9607500 1! #9608000 0! #9608500 1! #9609000 0! #9609500 1! #9610000 0! #9610500 1! #9611000 0! #9611500 1! #9612000 0! #9612500 1! #9613000 0! #9613500 1! #9614000 0! #9614500 1! #9615000 0! #9615500 1! #9616000 0! #9616500 1! #9616600 1N 1L #9616700 b1101000 c #9617000 0! #9617500 1! #9618000 0! #9618500 1! #9619000 0! #9619500 1! #9620000 0! #9620500 1! #9621000 0! #9621500 1! #9622000 0! #9622500 1! #9623000 0! #9623500 1! #9624000 0! #9624500 1! #9625000 0! #9625500 1! #9626000 0! #9626500 1! #9627000 0! #9627500 1! #9628000 0! #9628500 1! #9629000 0! #9629500 1! #9630000 0! #9630500 1! #9631000 0! #9631500 1! #9632000 0! #9632500 1! #9633000 0! #9633500 1! #9634000 0! #9634500 1! #9635000 0! #9635500 1! #9636000 0! #9636500 1! #9637000 0! #9637500 1! #9638000 0! #9638500 1! #9639000 0! #9639500 1! #9640000 0! #9640500 1! #9641000 0! #9641500 1! #9642000 0! #9642500 1! #9643000 0! #9643500 1! #9644000 0! #9644500 1! #9645000 0! #9645500 1! #9646000 0! #9646500 1! #9647000 0! #9647500 1! #9648000 0! #9648500 1! #9649000 0! #9649500 1! #9650000 0! #9650500 1! #9651000 0! #9651500 1! #9652000 0! #9652500 1! #9653000 0! #9653500 1! #9654000 0! #9654500 1! #9655000 0! #9655500 1! #9656000 0! #9656500 1! #9657000 0! #9657500 1! #9658000 0! #9658500 1! #9659000 0! #9659500 1! #9660000 0! #9660500 1! #9661000 0! #9661500 1! #9662000 0! #9662500 1! #9663000 0! #9663500 1! #9664000 0! #9664500 1! #9665000 0! #9665500 1! #9666000 0! #9666500 1! #9667000 0! #9667500 1! #9667600 1Q 1O #9667700 1a 1f #9667800 b0 q #9668000 0! #9668500 1! #9669000 0! #9669500 1! #9670000 0! #9670500 1! #9671000 0! #9671500 1! #9672000 0! #9672500 1! #9673000 0! #9673500 1! #9674000 0! #9674500 1! #9675000 0! #9675500 1! #9676000 0! #9676500 1! #9677000 0! #9677500 1! #9678000 0! #9678500 1! #9679000 0! #9679500 1! #9680000 0! #9680500 1! #9681000 0! #9681500 1! #9682000 0! #9682500 1! #9683000 0! #9683500 1! #9684000 0! #9684500 1! #9685000 0! #9685500 1! #9686000 0! #9686500 1! #9687000 0! #9687500 1! #9688000 0! #9688500 1! #9689000 0! #9689500 1! #9690000 0! #9690500 1! #9691000 0! #9691500 1! #9692000 0! #9692500 1! #9693000 0! #9693500 1! #9694000 0! #9694500 1! #9695000 0! #9695500 1! #9696000 0! #9696500 1! #9697000 0! #9697500 1! #9698000 0! #9698500 1! #9699000 0! #9699500 1! #9700000 0! #9700500 1! #9701000 0! #9701500 1! #9702000 0! #9702500 1! #9703000 0! #9703500 1! #9704000 0! #9704500 1! #9705000 0! #9705500 1! #9706000 0! #9706500 1! #9707000 0! #9707500 1! #9708000 0! #9708500 1! #9709000 0! #9709500 1! #9710000 0! #9710500 1! #9711000 0! #9711500 1! #9712000 0! #9712500 1! #9713000 0! #9713500 1! #9714000 0! #9714500 1! #9715000 0! #9715500 1! #9716000 0! #9716500 1! #9717000 0! #9717500 1! #9718000 0! #9718500 1! #9719000 0! #9719500 1! #9720000 0! #9720500 1! #9721000 0! #9721500 1! #9722000 0! #9722500 1! #9723000 0! #9723500 1! #9724000 0! #9724500 1! #9725000 0! #9725500 1! #9726000 0! #9726500 1! #9727000 0! #9727500 1! #9728000 0! #9728500 1! #9729000 0! #9729500 1! #9730000 0! #9730500 1! #9731000 0! #9731500 1! #9732000 0! #9732500 1! #9733000 0! #9733500 1! #9734000 0! #9734500 1! #9735000 0! #9735500 1! #9736000 0! #9736500 1! #9737000 0! #9737500 1! #9738000 0! #9738500 1! #9739000 0! #9739500 1! #9740000 0! #9740500 1! #9741000 0! #9741500 1! #9742000 0! #9742500 1! #9743000 0! #9743500 1! #9744000 0! #9744500 1! #9745000 0! #9745500 1! #9746000 0! #9746500 1! #9747000 0! #9747500 1! #9748000 0! #9748500 1! #9749000 0! #9749500 1! #9750000 0! #9750500 1! #9751000 0! #9751500 1! #9752000 0! #9752500 1! #9753000 0! #9753500 1! #9754000 0! #9754500 1! #9755000 0! #9755500 1! #9756000 0! #9756500 1! #9757000 0! #9757500 1! #9758000 0! #9758500 1! #9759000 0! #9759500 1! #9760000 0! #9760500 1! #9761000 0! #9761500 1! #9762000 0! #9762500 1! #9763000 0! #9763500 1! #9764000 0! #9764500 1! #9765000 0! #9765500 1! #9766000 0! #9766500 1! #9767000 0! #9767500 1! #9768000 0! #9768500 1! #9769000 0! #9769500 1! #9770000 0! #9770500 1! #9771000 0! #9771500 1! #9772000 0! #9772500 1! #9773000 0! #9773500 1! #9774000 0! #9774500 1! #9775000 0! #9775500 1! #9776000 0! #9776500 1! #9777000 0! #9777500 1! #9778000 0! #9778500 1! #9779000 0! #9779500 1! #9780000 0! #9780500 1! #9781000 0! #9781500 1! #9782000 0! #9782500 1! #9783000 0! #9783500 1! #9784000 0! #9784500 1! #9785000 0! #9785500 1! #9786000 0! #9786500 1! #9787000 0! #9787500 1! #9788000 0! #9788500 1! #9789000 0! #9789500 1! #9790000 0! #9790500 1! #9791000 0! #9791500 1! #9792000 0! #9792500 1! #9793000 0! #9793500 1! #9794000 0! #9794500 1! #9795000 0! #9795500 1! #9796000 0! #9796500 1! #9797000 0! #9797500 1! #9798000 0! #9798500 1! #9799000 0! #9799500 1! #9800000 0! #9800500 1! #9801000 0! #9801500 1! #9802000 0! #9802500 1! #9803000 0! #9803500 1! #9804000 0! #9804500 1! #9805000 0! #9805500 1! #9806000 0! #9806500 1! #9807000 0! #9807500 1! #9808000 0! #9808500 1! #9809000 0! #9809500 1! #9810000 0! #9810500 1! #9811000 0! #9811500 1! #9812000 0! #9812500 1! #9813000 0! #9813500 1! #9814000 0! #9814500 1! #9815000 0! #9815500 1! #9816000 0! #9816500 1! #9817000 0! #9817500 1! #9818000 0! #9818500 1! #9819000 0! #9819500 1! #9820000 0! #9820500 1! #9821000 0! #9821500 1! #9822000 0! #9822500 1! #9823000 0! #9823500 1! #9824000 0! #9824500 1! #9825000 0! #9825500 1! #9826000 0! #9826500 1! #9827000 0! #9827500 1! #9828000 0! #9828500 1! #9829000 0! #9829500 1! #9830000 0! #9830500 1! #9831000 0! #9831500 1! #9832000 0! #9832500 1! #9833000 0! #9833500 1! #9834000 0! #9834500 1! #9835000 0! #9835500 1! #9836000 0! #9836500 1! #9837000 0! #9837500 1! #9838000 0! #9838500 1! #9839000 0! #9839500 1! #9840000 0! #9840500 1! #9841000 0! #9841500 1! #9842000 0! #9842500 1! #9843000 0! #9843500 1! #9844000 0! #9844500 1! #9845000 0! #9845500 1! #9846000 0! #9846500 1! #9847000 0! #9847500 1! #9848000 0! #9848500 1! #9849000 0! #9849500 1! #9850000 0! #9850500 1! #9851000 0! #9851500 1! #9852000 0! #9852500 1! #9853000 0! #9853500 1! #9854000 0! #9854500 1! #9855000 0! #9855500 1! #9856000 0! #9856500 1! #9857000 0! #9857500 1! #9858000 0! #9858500 1! #9859000 0! #9859500 1! #9860000 0! #9860500 1! #9861000 0! #9861500 1! #9862000 0! #9862500 1! #9863000 0! #9863500 1! #9864000 0! #9864500 1! #9865000 0! #9865500 1! #9866000 0! #9866500 1! #9867000 0! #9867500 1! #9868000 0! #9868500 1! #9869000 0! #9869500 1! #9870000 0! #9870500 1! #9871000 0! #9871500 1! #9872000 0! #9872500 1! #9873000 0! #9873500 1! #9874000 0! #9874500 1! #9875000 0! #9875500 1! #9876000 0! #9876500 1! #9877000 0! #9877500 1! #9878000 0! #9878500 1! #9879000 0! #9879500 1! #9880000 0! #9880500 1! #9881000 0! #9881500 1! #9882000 0! #9882500 1! #9883000 0! #9883500 1! #9884000 0! #9884500 1! #9885000 0! #9885500 1! #9886000 0! #9886500 1! #9887000 0! #9887500 1! #9888000 0! #9888500 1! #9889000 0! #9889500 1! #9890000 0! #9890500 1! #9891000 0! #9891500 1! #9892000 0! #9892500 1! #9893000 0! #9893500 1! #9894000 0! #9894500 1! #9895000 0! #9895500 1! #9896000 0! #9896500 1! #9897000 0! #9897500 1! #9898000 0! #9898500 1! #9899000 0! #9899500 1! #9900000 0! #9900500 1! #9901000 0! #9901500 1! #9902000 0! #9902500 1! #9903000 0! #9903500 1! #9904000 0! #9904500 1! #9905000 0! #9905500 1! #9906000 0! #9906500 1! #9907000 0! #9907500 1! #9908000 0! #9908500 1! #9909000 0! #9909500 1! #9910000 0! #9910500 1! #9911000 0! #9911500 1! #9912000 0! #9912500 1! #9913000 0! #9913500 1! #9914000 0! #9914500 1! #9915000 0! #9915500 1! #9916000 0! #9916500 1! #9917000 0! #9917500 1! #9918000 0! #9918500 1! #9919000 0! #9919500 1! #9920000 0! #9920500 1! #9921000 0! #9921500 1! #9922000 0! #9922500 1! #9923000 0! #9923500 1! #9924000 0! #9924500 1! #9925000 0! #9925500 1! #9926000 0! #9926500 1! #9927000 0! #9927500 1! #9928000 0! #9928500 1! #9929000 0! #9929500 1! #9930000 0! #9930500 1! #9931000 0! #9931500 1! #9932000 0! #9932500 1! #9933000 0! #9933500 1! #9934000 0! #9934500 1! #9935000 0! #9935500 1! #9936000 0! #9936500 1! #9937000 0! #9937500 1! #9938000 0! #9938500 1! #9939000 0! #9939500 1! #9940000 0! #9940500 1! #9941000 0! #9941500 1! #9942000 0! #9942500 1! #9943000 0! #9943500 1! #9944000 0! #9944500 1! #9945000 0! #9945500 1! #9946000 0! #9946500 1! #9947000 0! #9947500 1! #9948000 0! #9948500 1! #9949000 0! #9949500 1! #9950000 0! #9950500 1! #9951000 0! #9951500 1! #9952000 0! #9952500 1! #9953000 0! #9953500 1! #9954000 0! #9954500 1! #9955000 0! #9955500 1! #9956000 0! #9956500 1! #9957000 0! #9957500 1! #9958000 0! #9958500 1! #9959000 0! #9959500 1! #9960000 0! #9960500 1! #9961000 0! #9961500 1! #9962000 0! #9962500 1! #9963000 0! #9963500 1! #9964000 0! #9964500 1! #9965000 0! #9965500 1! #9966000 0! #9966500 1! #9967000 0! #9967500 1! #9968000 0! #9968500 1! #9969000 0! #9969500 1! #9970000 0! #9970500 1! #9971000 0! #9971500 1! #9972000 0! #9972500 1! #9973000 0! #9973500 1! #9974000 0! #9974500 1! #9975000 0! #9975500 1! #9976000 0! #9976500 1! #9977000 0! #9977500 1! #9978000 0! #9978500 1! #9979000 0! #9979500 1! #9980000 0! #9980500 1! #9981000 0! #9981500 1! #9982000 0! #9982500 1! #9983000 0! #9983500 1! #9984000 0! #9984500 1! #9985000 0! #9985500 1! #9986000 0! #9986500 1! #9987000 0! #9987500 1! #9988000 0! #9988500 1! #9989000 0! #9989500 1! #9990000 0! #9990500 1! #9991000 0! #9991500 1! #9992000 0! #9992500 1! #9993000 0! #9993500 1! #9994000 0! #9994500 1! #9995000 0! #9995500 1! #9996000 0! #9996500 1! #9997000 0! #9997500 1! #9998000 0! #9998500 1! #9999000 0! #9999500 1! #10000000 0! #10000500 1! #10001000 0! #10001500 1! #10002000 0! #10002500 1! #10003000 0! #10003500 1! #10004000 0! #10004500 1! #10005000 0! #10005500 1! #10006000 0! #10006500 1! #10007000 0! #10007500 1! #10008000 0! #10008500 1! #10009000 0! #10009500 1! #10010000 0! #10010500 1! #10011000 0! #10011500 1! #10012000 0! #10012500 1! #10013000 0! #10013500 1! #10014000 0! #10014500 1! #10015000 0! #10015500 1! #10016000 0! #10016500 1! #10017000 0! #10017500 1! #10018000 0! #10018500 1! #10019000 0! #10019500 1! #10020000 0! #10020500 1! #10021000 0! #10021500 1! #10022000 0! #10022500 1! #10023000 0! #10023500 1! #10024000 0! #10024500 1! #10025000 0! #10025500 1! #10026000 0! #10026500 1! #10027000 0! #10027500 1! #10028000 0! #10028500 1! #10029000 0! #10029500 1! #10030000 0! #10030500 1! #10031000 0! #10031500 1! #10032000 0! #10032500 1! #10033000 0! #10033500 1! #10034000 0! #10034500 1! #10035000 0! #10035500 1! #10036000 0! #10036500 1! #10037000 0! #10037500 1! #10038000 0! #10038500 1! #10039000 0! #10039500 1! #10040000 0! #10040500 1! #10041000 0! #10041500 1! #10042000 0! #10042500 1! #10043000 0! #10043500 1! #10044000 0! #10044500 1! #10045000 0! #10045500 1! #10046000 0! #10046500 1! #10047000 0! #10047500 1! #10048000 0! #10048500 1! #10049000 0! #10049500 1! #10050000 0! #10050500 1! #10051000 0! #10051500 1! #10052000 0! #10052500 1! #10053000 0! #10053500 1! #10054000 0! #10054500 1! #10055000 0! #10055500 1! #10056000 0! #10056500 1! #10057000 0! #10057500 1! #10058000 0! #10058500 1! #10059000 0! #10059500 1! #10060000 0! #10060500 1! #10061000 0! #10061500 1! #10062000 0! #10062500 1! #10063000 0! #10063500 1! #10064000 0! #10064500 1! #10065000 0! #10065500 1! #10066000 0! #10066500 1! #10067000 0! #10067500 1! #10068000 0! #10068500 1! #10069000 0! #10069500 1! #10070000 0! #10070500 1! #10071000 0! #10071500 1! #10072000 0! #10072500 1! #10073000 0! #10073500 1! #10074000 0! #10074500 1! #10075000 0! #10075500 1! #10076000 0! #10076500 1! #10077000 0! #10077500 1! #10078000 0! #10078500 1! #10079000 0! #10079500 1! #10080000 0! #10080500 1! #10081000 0! #10081500 1! #10082000 0! #10082500 1! #10083000 0! #10083500 1! #10084000 0! #10084500 1! #10085000 0! #10085500 1! #10086000 0! #10086500 1! #10087000 0! #10087500 1! #10088000 0! #10088500 1! #10089000 0! #10089500 1! #10090000 0! #10090500 1! #10091000 0! #10091500 1! #10092000 0! #10092500 1! #10093000 0! #10093500 1! #10094000 0! #10094500 1! #10095000 0! #10095500 1! #10096000 0! #10096500 1! #10097000 0! #10097500 1! #10098000 0! #10098500 1! #10099000 0! #10099500 1! #10100000 0! #10100500 1! #10101000 0! #10101500 1! #10102000 0! #10102500 1! #10103000 0! #10103500 1! #10104000 0! #10104500 1! #10105000 0! #10105500 1! #10106000 0! #10106500 1! #10107000 0! #10107500 1! #10108000 0! #10108500 1! #10109000 0! #10109500 1! #10110000 0! #10110500 1! #10111000 0! #10111500 1! #10112000 0! #10112500 1! #10113000 0! #10113500 1! #10114000 0! #10114500 1! #10115000 0! #10115500 1! #10116000 0! #10116500 1! #10117000 0! #10117500 1! #10118000 0! #10118500 1! #10119000 0! #10119500 1! #10120000 0! #10120500 1! #10121000 0! #10121500 1! #10122000 0! #10122500 1! #10123000 0! #10123500 1! #10124000 0! #10124500 1! #10125000 0! #10125500 1! #10126000 0! #10126500 1! #10127000 0! #10127500 1! #10128000 0! #10128500 1! #10129000 0! #10129500 1! #10130000 0! #10130500 1! #10131000 0! #10131500 1! #10132000 0! #10132500 1! #10133000 0! #10133500 1! #10134000 0! #10134500 1! #10135000 0! #10135500 1! #10136000 0! #10136500 1! #10137000 0! #10137500 1! #10138000 0! #10138500 1! #10139000 0! #10139500 1! #10140000 0! #10140500 1! #10141000 0! #10141500 1! #10142000 0! #10142500 1! #10143000 0! #10143500 1! #10144000 0! #10144500 1! #10145000 0! #10145500 1! #10146000 0! #10146500 1! #10147000 0! #10147500 1! #10148000 0! #10148500 1! #10149000 0! #10149500 1! #10150000 0! #10150500 1! #10151000 0! #10151500 1! #10152000 0! #10152500 1! #10153000 0! #10153500 1! #10154000 0! #10154500 1! #10155000 0! #10155500 1! #10156000 0! #10156500 1! #10157000 0! #10157500 1! #10158000 0! #10158500 1! #10159000 0! #10159500 1! #10160000 0! #10160500 1! #10161000 0! #10161500 1! #10162000 0! #10162500 1! #10163000 0! #10163500 1! #10164000 0! #10164500 1! #10165000 0! #10165500 1! #10166000 0! #10166500 1! #10167000 0! #10167500 1! #10168000 0! #10168500 1! #10169000 0! #10169500 1! #10170000 0! #10170500 1! #10171000 0! #10171500 1! #10172000 0! #10172500 1! #10173000 0! #10173500 1! #10174000 0! #10174500 1! #10175000 0! #10175500 1! #10176000 0! #10176500 1! #10177000 0! #10177500 1! #10178000 0! #10178500 1! #10179000 0! #10179500 1! #10180000 0! #10180500 1! #10181000 0! #10181500 1! #10182000 0! #10182500 1! #10183000 0! #10183500 1! #10184000 0! #10184500 1! #10185000 0! #10185500 1! #10186000 0! #10186500 1! #10187000 0! #10187500 1! #10188000 0! #10188500 1! #10189000 0! #10189500 1! #10190000 0! #10190500 1! #10191000 0! #10191500 1! #10192000 0! #10192500 1! #10193000 0! #10193500 1! #10194000 0! #10194500 1! #10195000 0! #10195500 1! #10196000 0! #10196500 1! #10197000 0! #10197500 1! #10198000 0! #10198500 1! #10199000 0! #10199500 1! #10200000 0! #10200500 1! #10201000 0! #10201500 1! #10202000 0! #10202500 1! #10203000 0! #10203500 1! #10204000 0! #10204500 1! #10205000 0! #10205500 1! #10206000 0! #10206500 1! #10207000 0! #10207500 1! #10208000 0! #10208500 1! #10209000 0! #10209500 1! #10210000 0! #10210500 1! #10211000 0! #10211500 1! #10212000 0! #10212500 1! #10213000 0! #10213500 1! #10214000 0! #10214500 1! #10215000 0! #10215500 1! #10216000 0! #10216500 1! #10217000 0! #10217500 1! #10218000 0! #10218500 1! #10219000 0! #10219500 1! #10220000 0! #10220500 1! #10221000 0! #10221500 1! #10222000 0! #10222500 1! #10223000 0! #10223500 1! #10224000 0! #10224500 1! #10225000 0! #10225500 1! #10226000 0! #10226500 1! #10227000 0! #10227500 1! #10228000 0! #10228500 1! #10229000 0! #10229500 1! #10230000 0! #10230500 1! #10231000 0! #10231500 1! #10232000 0! #10232500 1! #10233000 0! #10233500 1! #10234000 0! #10234500 1! #10235000 0! #10235500 1! #10236000 0! #10236500 1! #10237000 0! #10237500 1! #10238000 0! #10238500 1! #10239000 0! #10239500 1! #10240000 0! #10240500 1! #10241000 0! #10241500 1! #10242000 0! #10242500 1! #10243000 0! #10243500 1! #10244000 0! #10244500 1! #10245000 0! #10245500 1! #10246000 0! #10246500 1! #10247000 0! #10247500 1! #10248000 0! #10248500 1! #10249000 0! #10249500 1! #10250000 0! #10250500 1! #10251000 0! #10251500 1! #10252000 0! #10252500 1! #10253000 0! #10253500 1! #10254000 0! #10254500 1! #10255000 0! #10255500 1! #10256000 0! #10256500 1! #10257000 0! #10257500 1! #10258000 0! #10258500 1! #10259000 0! #10259500 1! #10260000 0! #10260500 1! #10261000 0! #10261500 1! #10262000 0! #10262500 1! #10263000 0! #10263500 1! #10264000 0! #10264500 1! #10265000 0! #10265500 1! #10266000 0! #10266500 1! #10267000 0! #10267500 1! #10268000 0! #10268500 1! #10269000 0! #10269500 1! #10270000 0! #10270500 1! #10271000 0! #10271500 1! #10272000 0! #10272500 1! #10273000 0! #10273500 1! #10274000 0! #10274500 1! #10275000 0! #10275500 1! #10276000 0! #10276500 1! #10277000 0! #10277500 1! #10278000 0! #10278500 1! #10279000 0! #10279500 1! #10280000 0! #10280500 1! #10281000 0! #10281500 1! #10282000 0! #10282500 1! #10283000 0! #10283500 1! #10284000 0! #10284500 1! #10285000 0! #10285500 1! #10286000 0! #10286500 1! #10287000 0! #10287500 1! #10288000 0! #10288500 1! #10289000 0! #10289500 1! #10290000 0! #10290500 1! #10291000 0! #10291500 1! #10292000 0! #10292500 1! #10293000 0! #10293500 1! #10294000 0! #10294500 1! #10295000 0! #10295500 1! #10296000 0! #10296500 1! #10297000 0! #10297500 1! #10298000 0! #10298500 1! #10299000 0! #10299500 1! #10300000 0! #10300500 1! #10301000 0! #10301500 1! #10302000 0! #10302500 1! #10303000 0! #10303500 1! #10304000 0! #10304500 1! #10305000 0! #10305500 1! #10306000 0! #10306500 1! #10307000 0! #10307500 1! #10308000 0! #10308500 1! #10309000 0! #10309500 1! #10310000 0! #10310500 1! #10311000 0! #10311500 1! #10312000 0! #10312500 1! #10313000 0! #10313500 1! #10314000 0! #10314500 1! #10315000 0! #10315500 1! #10316000 0! #10316500 1! #10317000 0! #10317500 1! #10318000 0! #10318500 1! #10319000 0! #10319500 1! #10320000 0! #10320500 1! #10321000 0! #10321500 1! #10322000 0! #10322500 1! #10323000 0! #10323500 1! #10324000 0! #10324500 1! #10325000 0! #10325500 1! #10326000 0! #10326500 1! #10327000 0! #10327500 1! #10328000 0! #10328500 1! #10329000 0! #10329500 1! #10330000 0! #10330500 1! #10331000 0! #10331500 1! #10332000 0! #10332500 1! #10333000 0! #10333500 1! #10334000 0! #10334500 1! #10335000 0! #10335500 1! #10336000 0! #10336500 1! #10337000 0! #10337500 1! #10338000 0! #10338500 1! #10339000 0! #10339500 1! #10340000 0! #10340500 1! #10341000 0! #10341500 1! #10342000 0! #10342500 1! #10343000 0! #10343500 1! #10344000 0! #10344500 1! #10345000 0! #10345500 1! #10346000 0! #10346500 1! #10347000 0! #10347500 1! #10348000 0! #10348500 1! #10349000 0! #10349500 1! #10350000 0! #10350500 1! #10351000 0! #10351500 1! #10352000 0! #10352500 1! #10353000 0! #10353500 1! #10354000 0! #10354500 1! #10355000 0! #10355500 1! #10356000 0! #10356500 1! #10357000 0! #10357500 1! #10358000 0! #10358500 1! #10359000 0! #10359500 1! #10360000 0! #10360500 1! #10361000 0! #10361500 1! #10362000 0! #10362500 1! #10363000 0! #10363500 1! #10364000 0! #10364500 1! #10365000 0! #10365500 1! #10366000 0! #10366500 1! #10367000 0! #10367500 1! #10368000 0! #10368500 1! #10369000 0! #10369500 1! #10370000 0! #10370500 1! #10371000 0! #10371500 1! #10372000 0! #10372500 1! #10373000 0! #10373500 1! #10374000 0! #10374500 1! #10375000 0! #10375500 1! #10376000 0! #10376500 1! #10377000 0! #10377500 1! #10378000 0! #10378500 1! #10379000 0! #10379500 1! #10380000 0! #10380500 1! #10381000 0! #10381500 1! #10382000 0! #10382500 1! #10383000 0! #10383500 1! #10384000 0! #10384500 1! #10385000 0! #10385500 1! #10386000 0! #10386500 1! #10387000 0! #10387500 1! #10388000 0! #10388500 1! #10389000 0! #10389500 1! #10390000 0! #10390500 1! #10391000 0! #10391500 1! #10392000 0! #10392500 1! #10393000 0! #10393500 1! #10394000 0! #10394500 1! #10395000 0! #10395500 1! #10396000 0! #10396500 1! #10397000 0! #10397500 1! #10398000 0! #10398500 1! #10399000 0! #10399500 1! #10400000 0! #10400500 1! #10401000 0! #10401500 1! #10402000 0! #10402500 1! #10403000 0! #10403500 1! #10404000 0! #10404500 1! #10405000 0! #10405500 1! #10406000 0! #10406500 1! #10407000 0! #10407500 1! #10408000 0! #10408500 1! #10409000 0! #10409500 1! #10410000 0! #10410500 1! #10411000 0! #10411500 1! #10412000 0! #10412500 1! #10413000 0! #10413500 1! #10414000 0! #10414500 1! #10415000 0! #10415500 1! #10416000 0! #10416500 1! #10417000 0! #10417500 1! #10418000 0! #10418500 1! #10419000 0! #10419500 1! #10420000 0! #10420500 1! #10421000 0! #10421500 1! #10422000 0! #10422500 1! #10423000 0! #10423500 1! #10424000 0! #10424500 1! #10425000 0! #10425500 1! #10426000 0! #10426500 1! #10427000 0! #10427500 1! #10428000 0! #10428500 1! #10429000 0! #10429500 1! #10430000 0! #10430500 1! #10431000 0! #10431500 1! #10432000 0! #10432500 1! #10433000 0! #10433500 1! #10434000 0! #10434500 1! #10435000 0! #10435500 1! #10436000 0! #10436500 1! #10437000 0! #10437500 1! #10438000 0! #10438500 1! #10439000 0! #10439500 1! #10440000 0! #10440500 1! #10441000 0! #10441500 1! #10442000 0! #10442500 1! #10443000 0! #10443500 1! #10444000 0! #10444500 1! #10445000 0! #10445500 1! #10446000 0! #10446500 1! #10447000 0! #10447500 1! #10448000 0! #10448500 1! #10449000 0! #10449500 1! #10450000 0! #10450500 1! #10451000 0! #10451500 1! #10452000 0! #10452500 1! #10453000 0! #10453500 1! #10454000 0! #10454500 1! #10455000 0! #10455500 1! #10456000 0! #10456500 1! #10457000 0! #10457500 1! #10458000 0! #10458500 1! #10459000 0! #10459500 1! #10460000 0! #10460500 1! #10461000 0! #10461500 1! #10462000 0! #10462500 1! #10463000 0! #10463500 1! #10464000 0! #10464500 1! #10465000 0! #10465500 1! #10466000 0! #10466500 1! #10467000 0! #10467500 1! #10468000 0! #10468500 1! #10469000 0! #10469500 1! #10470000 0! #10470500 1! #10471000 0! #10471500 1! #10472000 0! #10472500 1! #10473000 0! #10473500 1! #10474000 0! #10474500 1! #10475000 0! #10475500 1! #10476000 0! #10476500 1! #10477000 0! #10477500 1! #10478000 0! #10478500 1! #10479000 0! #10479500 1! #10480000 0! #10480500 1! #10481000 0! #10481500 1! #10482000 0! #10482500 1! #10483000 0! #10483500 1! #10484000 0! #10484500 1! #10485000 0! #10485500 1! #10486000 0! #10486500 1! #10487000 0! #10487500 1! #10488000 0! #10488500 1! #10489000 0! #10489500 1! #10490000 0! #10490500 1! #10491000 0! #10491500 1! #10492000 0! #10492500 1! #10493000 0! #10493500 1! #10494000 0! #10494500 1! #10495000 0! #10495500 1! #10496000 0! #10496500 1! #10497000 0! #10497500 1! #10498000 0! #10498500 1! #10499000 0! #10499500 1! #10500000 0! #10500500 1! #10501000 0! #10501500 1! #10502000 0! #10502500 1! #10503000 0! #10503500 1! #10504000 0! #10504500 1! #10505000 0! #10505500 1! #10506000 0! #10506500 1! #10507000 0! #10507500 1! #10508000 0! #10508500 1! #10509000 0! #10509500 1! #10510000 0! #10510500 1! #10511000 0! #10511500 1! #10512000 0! #10512500 1! #10513000 0! #10513500 1! #10514000 0! #10514500 1! #10515000 0! #10515500 1! #10516000 0! #10516500 1! #10517000 0! #10517500 1! #10518000 0! #10518500 1! #10519000 0! #10519500 1! #10520000 0! #10520500 1! #10521000 0! #10521500 1! #10522000 0! #10522500 1! #10523000 0! #10523500 1! #10524000 0! #10524500 1! #10525000 0! #10525500 1! #10526000 0! #10526500 1! #10527000 0! #10527500 1! #10528000 0! #10528500 1! #10529000 0! #10529500 1! #10530000 0! #10530500 1! #10531000 0! #10531500 1! #10532000 0! #10532500 1! #10533000 0! #10533500 1! #10534000 0! #10534500 1! #10535000 0! #10535500 1! #10536000 0! #10536500 1! #10537000 0! #10537500 1! #10538000 0! #10538500 1! #10539000 0! #10539500 1! #10540000 0! #10540500 1! #10541000 0! #10541500 1! #10542000 0! #10542500 1! #10543000 0! #10543500 1! #10544000 0! #10544500 1! #10545000 0! #10545500 1! #10546000 0! #10546500 1! #10547000 0! #10547500 1! #10548000 0! #10548500 1! #10549000 0! #10549500 1! #10550000 0! #10550500 1! #10551000 0! #10551500 1! #10552000 0! #10552500 1! #10553000 0! #10553500 1! #10554000 0! #10554500 1! #10555000 0! #10555500 1! #10556000 0! #10556500 1! #10557000 0! #10557500 1! #10558000 0! #10558500 1! #10559000 0! #10559500 1! #10560000 0! #10560500 1! #10561000 0! #10561500 1! #10562000 0! #10562500 1! #10563000 0! #10563500 1! #10564000 0! #10564500 1! #10565000 0! #10565500 1! #10566000 0! #10566500 1! #10567000 0! #10567500 1! #10568000 0! #10568500 1! #10569000 0! #10569500 1! #10570000 0! #10570500 1! #10571000 0! #10571500 1! #10572000 0! #10572500 1! #10573000 0! #10573500 1! #10574000 0! #10574500 1! #10575000 0! #10575500 1! #10576000 0! #10576500 1! #10577000 0! #10577500 1! #10578000 0! #10578500 1! #10579000 0! #10579500 1! #10580000 0! #10580500 1! #10581000 0! #10581500 1! #10582000 0! #10582500 1! #10583000 0! #10583500 1! #10584000 0! #10584500 1! #10585000 0! #10585500 1! #10586000 0! #10586500 1! #10587000 0! #10587500 1! #10588000 0! #10588500 1! #10589000 0! #10589500 1! #10590000 0! #10590500 1! #10591000 0! #10591500 1! #10592000 0! #10592500 1! #10593000 0! #10593500 1! #10594000 0! #10594500 1! #10595000 0! #10595500 1! #10596000 0! #10596500 1! #10597000 0! #10597500 1! #10598000 0! #10598500 1! #10599000 0! #10599500 1! #10600000 0! #10600500 1! #10601000 0! #10601500 1! #10602000 0! #10602500 1! #10603000 0! #10603500 1! #10604000 0! #10604500 1! #10605000 0! #10605500 1! #10606000 0! #10606500 1! #10607000 0! #10607500 1! #10608000 0! #10608500 1! #10609000 0! #10609500 1! #10610000 0! #10610500 1! #10611000 0! #10611500 1! #10612000 0! #10612500 1! #10613000 0! #10613500 1! #10614000 0! #10614500 1! #10615000 0! #10615500 1! #10616000 0! #10616500 1! #10617000 0! #10617500 1! #10618000 0! #10618500 1! #10619000 0! #10619500 1! #10620000 0! #10620500 1! #10621000 0! #10621500 1! #10622000 0! #10622500 1! #10623000 0! #10623500 1! #10624000 0! #10624500 1! #10625000 0! #10625500 1! #10626000 0! #10626500 1! #10627000 0! #10627500 1! #10628000 0! #10628500 1! #10629000 0! #10629500 1! #10630000 0! #10630500 1! #10631000 0! #10631500 1! #10632000 0! #10632500 1! #10633000 0! #10633500 1! #10634000 0! #10634500 1! #10635000 0! #10635500 1! #10636000 0! #10636500 1! #10637000 0! #10637500 1! #10638000 0! #10638500 1! #10639000 0! #10639500 1! #10640000 0! #10640500 1! #10641000 0! #10641500 1! #10642000 0! #10642500 1! #10643000 0! #10643500 1! #10644000 0! #10644500 1! #10645000 0! #10645500 1! #10646000 0! #10646500 1! #10647000 0! #10647500 1! #10648000 0! #10648500 1! #10649000 0! #10649500 1! #10650000 0! #10650500 1! #10651000 0! #10651500 1! #10652000 0! #10652500 1! #10653000 0! #10653500 1! #10654000 0! #10654500 1! #10655000 0! #10655500 1! #10656000 0! #10656500 1! #10657000 0! #10657500 1! #10658000 0! #10658500 1! #10659000 0! #10659500 1! #10660000 0! #10660500 1! #10661000 0! #10661500 1! #10662000 0! #10662500 1! #10663000 0! #10663500 1! #10664000 0! #10664500 1! #10665000 0! #10665500 1! #10666000 0! #10666500 1! #10667000 0! #10667500 1! #10668000 0! #10668500 1! #10669000 0! #10669500 1! #10670000 0! #10670500 1! #10671000 0! #10671500 1! #10672000 0! #10672500 1! #10673000 0! #10673500 1! #10674000 0! #10674500 1! #10675000 0! #10675500 1! #10676000 0! #10676500 1! #10677000 0! #10677500 1! #10678000 0! #10678500 1! #10679000 0! #10679500 1! #10680000 0! #10680500 1! #10681000 0! #10681500 1! #10682000 0! #10682500 1! #10683000 0! #10683500 1! #10684000 0! #10684500 1! #10685000 0! #10685500 1! #10686000 0! #10686500 1! #10687000 0! #10687500 1! #10688000 0! #10688500 1! #10689000 0! #10689500 1! #10690000 0! #10690500 1! #10691000 0! #10691500 1! #10692000 0! #10692500 1! #10693000 0! #10693500 1! #10694000 0! #10694500 1! #10695000 0! #10695500 1! #10696000 0! #10696500 1! #10697000 0! #10697500 1! #10698000 0! #10698500 1! #10699000 0! #10699500 1! #10700000 0! #10700500 1! #10701000 0! #10701500 1! #10702000 0! #10702500 1! #10703000 0! #10703500 1! #10704000 0! #10704500 1! #10705000 0! #10705500 1! #10706000 0! #10706500 1! #10707000 0! #10707500 1! #10708000 0! #10708500 1! #10709000 0! #10709500 1! #10710000 0! #10710500 1! #10711000 0! #10711500 1! #10712000 0! #10712500 1! #10713000 0! #10713500 1! #10714000 0! #10714500 1! #10715000 0! #10715500 1! #10716000 0! #10716500 1! #10717000 0! #10717500 1! #10718000 0! #10718500 1! #10719000 0! #10719500 1! #10720000 0! #10720500 1! #10721000 0! #10721500 1! #10722000 0! #10722500 1! #10723000 0! #10723500 1! #10724000 0! #10724500 1! #10725000 0! #10725500 1! #10726000 0! #10726500 1! #10727000 0! #10727500 1! #10728000 0! #10728500 1! #10729000 0! #10729500 1! #10730000 0! #10730500 1! #10731000 0! #10731500 1! #10732000 0! #10732500 1! #10733000 0! #10733500 1! #10734000 0! #10734500 1! #10735000 0! #10735500 1! #10736000 0! #10736500 1! #10737000 0! #10737500 1! #10738000 0! #10738500 1! #10739000 0! #10739500 1! #10740000 0! #10740500 1! #10741000 0! #10741500 1! #10742000 0! #10742500 1! #10743000 0! #10743500 1! #10744000 0! #10744500 1! #10745000 0! #10745500 1! #10746000 0! #10746500 1! #10747000 0! #10747500 1! #10748000 0! #10748500 1! #10749000 0! #10749500 1! #10750000 0! #10750500 1! #10751000 0! #10751500 1! #10752000 0! #10752500 1! #10753000 0! #10753500 1! #10754000 0! #10754500 1! #10755000 0! #10755500 1! #10756000 0! #10756500 1! #10757000 0! #10757500 1! #10758000 0! #10758500 1! #10759000 0! #10759500 1! #10760000 0! #10760500 1! #10761000 0! #10761500 1! #10762000 0! #10762500 1! #10763000 0! #10763500 1! #10764000 0! #10764500 1! #10765000 0! #10765500 1! #10766000 0! #10766500 1! #10767000 0! #10767500 1! #10768000 0! #10768500 1! #10769000 0! #10769500 1! #10770000 0! #10770500 1! #10771000 0! #10771500 1! #10772000 0! #10772500 1! #10773000 0! #10773500 1! #10774000 0! #10774500 1! #10775000 0! #10775500 1! #10776000 0! #10776500 1! #10777000 0! #10777500 1! #10778000 0! #10778500 1! #10779000 0! #10779500 1! #10780000 0! #10780500 1! #10781000 0! #10781500 1! #10782000 0! #10782500 1! #10783000 0! #10783500 1! #10784000 0! #10784500 1! #10785000 0! #10785500 1! #10786000 0! #10786500 1! #10787000 0! #10787500 1! #10788000 0! #10788500 1! #10789000 0! #10789500 1! #10790000 0! #10790500 1! #10791000 0! #10791500 1! #10792000 0! #10792500 1! #10793000 0! #10793500 1! #10794000 0! #10794500 1! #10795000 0! #10795500 1! #10796000 0! #10796500 1! #10797000 0! #10797500 1! #10798000 0! #10798500 1! #10799000 0! #10799500 1! #10800000 0! #10800500 1! #10801000 0! #10801500 1! #10802000 0! #10802500 1! #10803000 0! #10803500 1! #10804000 0! #10804500 1! #10805000 0! #10805500 1! #10806000 0! #10806500 1! #10807000 0! #10807500 1! #10808000 0! #10808500 1! #10809000 0! #10809500 1! #10810000 0! #10810500 1! #10811000 0! #10811500 1! #10812000 0! #10812500 1! #10813000 0! #10813500 1! #10814000 0! #10814500 1! #10815000 0! #10815500 1! #10816000 0! #10816500 1! #10817000 0! #10817500 1! #10818000 0! #10818500 1! #10819000 0! #10819500 1! #10820000 0! #10820500 1! #10821000 0! #10821500 1! #10822000 0! #10822500 1! #10823000 0! #10823500 1! #10824000 0! #10824500 1! #10825000 0! #10825500 1! #10826000 0! #10826500 1! #10827000 0! #10827500 1! #10828000 0! #10828500 1! #10829000 0! #10829500 1! #10830000 0! #10830500 1! #10831000 0! #10831500 1! #10832000 0! #10832500 1! #10833000 0! #10833500 1! #10834000 0! #10834500 1! #10835000 0! #10835500 1! #10836000 0! #10836500 1! #10837000 0! #10837500 1! #10838000 0! #10838500 1! #10839000 0! #10839500 1! #10840000 0! #10840500 1! #10841000 0! #10841500 1! #10842000 0! #10842500 1! #10843000 0! #10843500 1! #10844000 0! #10844500 1! #10845000 0! #10845500 1! #10846000 0! #10846500 1! #10847000 0! #10847500 1! #10848000 0! #10848500 1! #10849000 0! #10849500 1! #10850000 0! #10850500 1! #10851000 0! #10851500 1! #10852000 0! #10852500 1! #10853000 0! #10853500 1! #10854000 0! #10854500 1! #10855000 0! #10855500 1! #10856000 0! #10856500 1! #10857000 0! #10857500 1! #10858000 0! #10858500 1! #10859000 0! #10859500 1! #10860000 0! #10860500 1! #10861000 0! #10861500 1! #10862000 0! #10862500 1! #10863000 0! #10863500 1! #10864000 0! #10864500 1! #10865000 0! #10865500 1! #10866000 0! #10866500 1! #10867000 0! #10867500 1! #10868000 0! #10868500 1! #10869000 0! #10869500 1! #10870000 0! #10870500 1! #10871000 0! #10871500 1! #10872000 0! #10872500 1! #10873000 0! #10873500 1! #10874000 0! #10874500 1! #10875000 0! #10875500 1! #10876000 0! #10876500 1! #10877000 0! #10877500 1! #10878000 0! #10878500 1! #10879000 0! #10879500 1! #10880000 0! #10880500 1! #10881000 0! #10881500 1! #10882000 0! #10882500 1! #10883000 0! #10883500 1! #10884000 0! #10884500 1! #10885000 0! #10885500 1! #10886000 0! #10886500 1! #10887000 0! #10887500 1! #10888000 0! #10888500 1! #10889000 0! #10889500 1! #10890000 0! #10890500 1! #10891000 0! #10891500 1! #10892000 0! #10892500 1! #10893000 0! #10893500 1! #10894000 0! #10894500 1! #10895000 0! #10895500 1! #10896000 0! #10896500 1! #10897000 0! #10897500 1! #10898000 0! #10898500 1! #10899000 0! #10899500 1! #10900000 0! #10900500 1! #10901000 0! #10901500 1! #10902000 0! #10902500 1! #10903000 0! #10903500 1! #10904000 0! #10904500 1! #10905000 0! #10905500 1! #10906000 0! #10906500 1! #10907000 0! #10907500 1! #10908000 0! #10908500 1! #10909000 0! #10909500 1! #10910000 0! #10910500 1! #10911000 0! #10911500 1! #10912000 0! #10912500 1! #10913000 0! #10913500 1! #10914000 0! #10914500 1! #10915000 0! #10915500 1! #10916000 0! #10916500 1! #10917000 0! #10917500 1! #10918000 0! #10918500 1! #10919000 0! #10919500 1! #10920000 0! #10920500 1! #10921000 0! #10921500 1! #10922000 0! #10922500 1! #10923000 0! #10923500 1! #10924000 0! #10924500 1! #10925000 0! #10925500 1! #10926000 0! #10926500 1! #10927000 0! #10927500 1! #10928000 0! #10928500 1! #10929000 0! #10929500 1! #10930000 0! #10930500 1! #10931000 0! #10931500 1! #10932000 0! #10932500 1! #10933000 0! #10933500 1! #10934000 0! #10934500 1! #10935000 0! #10935500 1! #10936000 0! #10936500 1! #10937000 0! #10937500 1! #10938000 0! #10938500 1! #10939000 0! #10939500 1! #10940000 0! #10940500 1! #10941000 0! #10941500 1! #10942000 0! #10942500 1! #10943000 0! #10943500 1! #10944000 0! #10944500 1! #10945000 0! #10945500 1! #10946000 0! #10946500 1! #10947000 0! #10947500 1! #10948000 0! #10948500 1! #10949000 0! #10949500 1! #10950000 0! #10950500 1! #10951000 0! #10951500 1! #10952000 0! #10952500 1! #10953000 0! #10953500 1! #10954000 0! #10954500 1! #10955000 0! #10955500 1! #10956000 0! #10956500 1! #10957000 0! #10957500 1! #10958000 0! #10958500 1! #10959000 0! #10959500 1! #10960000 0! #10960500 1! #10961000 0! #10961500 1! #10962000 0! #10962500 1! #10963000 0! #10963500 1! #10964000 0! #10964500 1! #10965000 0! #10965500 1! #10966000 0! #10966500 1! #10967000 0! #10967500 1! #10968000 0! #10968500 1! #10969000 0! #10969500 1! #10970000 0! #10970500 1! #10971000 0! #10971500 1! #10972000 0! #10972500 1! #10973000 0! #10973500 1! #10974000 0! #10974500 1! #10975000 0! #10975500 1! #10976000 0! #10976500 1! #10977000 0! #10977500 1! #10978000 0! #10978500 1! #10979000 0! #10979500 1! #10980000 0! #10980500 1! #10981000 0! #10981500 1! #10982000 0! #10982500 1! #10983000 0! #10983500 1! #10984000 0! #10984500 1! #10985000 0! #10985500 1! #10986000 0! #10986500 1! #10987000 0! #10987500 1! #10988000 0! #10988500 1! #10989000 0! #10989500 1! #10990000 0! #10990500 1! #10991000 0! #10991500 1! #10992000 0! #10992500 1! #10993000 0! #10993500 1! #10994000 0! #10994500 1! #10995000 0! #10995500 1! #10996000 0! #10996500 1! #10997000 0! #10997500 1! #10998000 0! #10998500 1! #10999000 0! #10999500 1! #11000000 0! #11000500 1! #11001000 0! #11001500 1! #11002000 0! #11002500 1! #11003000 0! #11003500 1! #11004000 0! #11004500 1! #11005000 0! #11005500 1! #11006000 0! #11006500 1! #11007000 0! #11007500 1! #11008000 0! #11008500 1! #11009000 0! #11009500 1! #11010000 0! #11010500 1! #11011000 0! #11011500 1! #11012000 0! #11012500 1! #11013000 0! #11013500 1! #11014000 0! #11014500 1! #11015000 0! #11015500 1! #11016000 0! #11016500 1! #11017000 0! #11017500 1! #11018000 0! #11018500 1! #11019000 0! #11019500 1! #11020000 0! #11020500 1! #11021000 0! #11021500 1! #11022000 0! #11022500 1! #11023000 0! #11023500 1! #11024000 0! #11024500 1! #11025000 0! #11025500 1! #11026000 0! #11026500 1! #11027000 0! #11027500 1! #11028000 0! #11028500 1! #11029000 0! #11029500 1! #11030000 0! #11030500 1! #11031000 0! #11031500 1! #11032000 0! #11032500 1! #11033000 0! #11033500 1! #11034000 0! #11034500 1! #11035000 0! #11035500 1! #11036000 0! #11036500 1! #11037000 0! #11037500 1! #11038000 0! #11038500 1! #11039000 0! #11039500 1! #11040000 0! #11040500 1! #11041000 0! #11041500 1! #11042000 0! #11042500 1! #11043000 0! #11043500 1! #11044000 0! #11044500 1! #11045000 0! #11045500 1! #11046000 0! #11046500 1! #11047000 0! #11047500 1! #11048000 0! #11048500 1! #11049000 0! #11049500 1! #11050000 0! #11050500 1! #11051000 0! #11051500 1! #11052000 0! #11052500 1! #11053000 0! #11053500 1! #11054000 0! #11054500 1! #11055000 0! #11055500 1! #11056000 0! #11056500 1! #11057000 0! #11057500 1! #11058000 0! #11058500 1! #11059000 0! #11059500 1! #11060000 0! #11060500 1! #11061000 0! #11061500 1! #11062000 0! #11062500 1! #11063000 0! #11063500 1! #11064000 0! #11064500 1! #11065000 0! #11065500 1! #11066000 0! #11066500 1! #11067000 0! #11067500 1! #11068000 0! #11068500 1! #11069000 0! #11069500 1! #11070000 0! #11070500 1! #11071000 0! #11071500 1! #11072000 0! #11072500 1! #11073000 0! #11073500 1! #11074000 0! #11074500 1! #11075000 0! #11075500 1! #11076000 0! #11076500 1! #11077000 0! #11077500 1! #11078000 0! #11078500 1! #11079000 0! #11079500 1! #11080000 0! #11080500 1! #11081000 0! #11081500 1! #11082000 0! #11082500 1! #11083000 0! #11083500 1! #11084000 0! #11084500 1! #11085000 0! #11085500 1! #11086000 0! #11086500 1! #11087000 0! #11087500 1! #11088000 0! #11088500 1! #11089000 0! #11089500 1! #11090000 0! #11090500 1! #11091000 0! #11091500 1! #11092000 0! #11092500 1! #11093000 0! #11093500 1! #11094000 0! #11094500 1! #11095000 0! #11095500 1! #11096000 0! #11096500 1! #11097000 0! #11097500 1! #11098000 0! #11098500 1! #11099000 0! #11099500 1! #11100000 0! #11100500 1! #11101000 0! #11101500 1! #11102000 0! #11102500 1! #11103000 0! #11103500 1! #11104000 0! #11104500 1! #11105000 0! #11105500 1! #11106000 0! #11106500 1! #11107000 0! #11107500 1! #11108000 0! #11108500 1! #11109000 0! #11109500 1! #11110000 0! #11110500 1! #11111000 0! #11111500 1! #11112000 0! #11112500 1! #11113000 0! #11113500 1! #11114000 0! #11114500 1! #11115000 0! #11115500 1! #11116000 0! #11116500 1! #11117000 0! #11117500 1! #11118000 0! #11118500 1! #11119000 0! #11119500 1! #11120000 0! #11120500 1! #11121000 0! #11121500 1! #11122000 0! #11122500 1! #11123000 0! #11123500 1! #11124000 0! #11124500 1! #11125000 0! #11125500 1! #11126000 0! #11126500 1! #11127000 0! #11127500 1! #11128000 0! #11128500 1! #11129000 0! #11129500 1! #11130000 0! #11130500 1! #11131000 0! #11131500 1! #11132000 0! #11132500 1! #11133000 0! #11133500 1! #11134000 0! #11134500 1! #11135000 0! #11135500 1! #11136000 0! #11136500 1! #11137000 0! #11137500 1! #11138000 0! #11138500 1! #11139000 0! #11139500 1! #11140000 0! #11140500 1! #11141000 0! #11141500 1! #11142000 0! #11142500 1! #11143000 0! #11143500 1! #11144000 0! #11144500 1! #11145000 0! #11145500 1! #11146000 0! #11146500 1! #11147000 0! #11147500 1! #11148000 0! #11148500 1! #11149000 0! #11149500 1! #11150000 0! #11150500 1! #11151000 0! #11151500 1! #11152000 0! #11152500 1! #11153000 0! #11153500 1! #11154000 0! #11154500 1! #11155000 0! #11155500 1! #11156000 0! #11156500 1! #11157000 0! #11157500 1! #11158000 0! #11158500 1! #11159000 0! #11159500 1! #11160000 0! #11160500 1! #11161000 0! #11161500 1! #11162000 0! #11162500 1! #11163000 0! #11163500 1! #11164000 0! #11164500 1! #11165000 0! #11165500 1! #11166000 0! #11166500 1! #11167000 0! #11167500 1! #11168000 0! #11168500 1! #11169000 0! #11169500 1! #11170000 0! #11170500 1! #11171000 0! #11171500 1! #11172000 0! #11172500 1! #11173000 0! #11173500 1! #11174000 0! #11174500 1! #11175000 0! #11175500 1! #11176000 0! #11176500 1! #11177000 0! #11177500 1! #11178000 0! #11178500 1! #11179000 0! #11179500 1! #11180000 0! #11180500 1! #11181000 0! #11181500 1! #11182000 0! #11182500 1! #11183000 0! #11183500 1! #11184000 0! #11184500 1! #11185000 0! #11185500 1! #11186000 0! #11186500 1! #11187000 0! #11187500 1! #11188000 0! #11188500 1! #11189000 0! #11189500 1! #11190000 0! #11190500 1! #11191000 0! #11191500 1! #11192000 0! #11192500 1! #11193000 0! #11193500 1! #11194000 0! #11194500 1! #11195000 0! #11195500 1! #11196000 0! #11196500 1! #11197000 0! #11197500 1! #11198000 0! #11198500 1! #11199000 0! #11199500 1! #11200000 0! #11200500 1! #11201000 0! #11201500 1! #11202000 0! #11202500 1! #11203000 0! #11203500 1! #11204000 0! #11204500 1! #11205000 0! #11205500 1! #11206000 0! #11206500 1! #11207000 0! #11207500 1! #11208000 0! #11208500 1! #11209000 0! #11209500 1! #11210000 0! #11210500 1! #11211000 0! #11211500 1! #11212000 0! #11212500 1! #11213000 0! #11213500 1! #11214000 0! #11214500 1! #11215000 0! #11215500 1! #11216000 0! #11216500 1! #11217000 0! #11217500 1! #11218000 0! #11218500 1! #11219000 0! #11219500 1! #11220000 0! #11220500 1! #11221000 0! #11221500 1! #11222000 0! #11222500 1! #11223000 0! #11223500 1! #11224000 0! #11224500 1! #11225000 0! #11225500 1! #11226000 0! #11226500 1! #11227000 0! #11227500 1! #11228000 0! #11228500 1! #11229000 0! #11229500 1! #11230000 0! #11230500 1! #11231000 0! #11231500 1! #11232000 0! #11232500 1! #11233000 0! #11233500 1! #11234000 0! #11234500 1! #11235000 0! #11235500 1! #11236000 0! #11236500 1! #11237000 0! #11237500 1! #11238000 0! #11238500 1! #11239000 0! #11239500 1! #11240000 0! #11240500 1! #11241000 0! #11241500 1! #11242000 0! #11242500 1! #11243000 0! #11243500 1! #11244000 0! #11244500 1! #11245000 0! #11245500 1! #11246000 0! #11246500 1! #11247000 0! #11247500 1! #11248000 0! #11248500 1! #11249000 0! #11249500 1! #11250000 0! #11250500 1! #11251000 0! #11251500 1! #11252000 0! #11252500 1! #11253000 0! #11253500 1! #11254000 0! #11254500 1! #11255000 0! #11255500 1! #11256000 0! #11256500 1! #11257000 0! #11257500 1! #11258000 0! #11258500 1! #11259000 0! #11259500 1! #11260000 0! #11260500 1! #11261000 0! #11261500 1! #11262000 0! #11262500 1! #11263000 0! #11263500 1! #11264000 0! #11264500 1! #11265000 0! #11265500 1! #11266000 0! #11266500 1! #11267000 0! #11267500 1! #11268000 0! #11268500 1! #11269000 0! #11269500 1! #11270000 0! #11270500 1! #11271000 0! #11271500 1! #11272000 0! #11272500 1! #11273000 0! #11273500 1! #11274000 0! #11274500 1! #11275000 0! #11275500 1! #11276000 0! #11276500 1! #11277000 0! #11277500 1! #11278000 0! #11278500 1! #11279000 0! #11279500 1! #11280000 0! #11280500 1! #11281000 0! #11281500 1! #11282000 0! #11282500 1! #11283000 0! #11283500 1! #11284000 0! #11284500 1! #11285000 0! #11285500 1! #11286000 0! #11286500 1! #11287000 0! #11287500 1! #11288000 0! #11288500 1! #11289000 0! #11289500 1! #11290000 0! #11290500 1! #11291000 0! #11291500 1! #11292000 0! #11292500 1! #11293000 0! #11293500 1! #11294000 0! #11294500 1! #11295000 0! #11295500 1! #11296000 0! #11296500 1! #11297000 0! #11297500 1! #11298000 0! #11298500 1! #11299000 0! #11299500 1! #11300000 0! #11300500 1! #11301000 0! #11301500 1! #11302000 0! #11302500 1! #11303000 0! #11303500 1! #11304000 0! #11304500 1! #11305000 0! #11305500 1! #11306000 0! #11306500 1! #11307000 0! #11307500 1! #11308000 0! #11308500 1! #11309000 0! #11309500 1! #11310000 0! #11310500 1! #11311000 0! #11311500 1! #11312000 0! #11312500 1! #11313000 0! #11313500 1! #11314000 0! #11314500 1! #11315000 0! #11315500 1! #11316000 0! #11316500 1! #11317000 0! #11317500 1! #11318000 0! #11318500 1! #11319000 0! #11319500 1! #11320000 0! #11320500 1! #11321000 0! #11321500 1! #11322000 0! #11322500 1! #11323000 0! #11323500 1! #11324000 0! #11324500 1! #11325000 0! #11325500 1! #11326000 0! #11326500 1! #11327000 0! #11327500 1! #11328000 0! #11328500 1! #11329000 0! #11329500 1! #11330000 0! #11330500 1! #11331000 0! #11331500 1! #11332000 0! #11332500 1! #11333000 0! #11333500 1! #11334000 0! #11334500 1! #11335000 0! #11335500 1! #11336000 0! #11336500 1! #11337000 0! #11337500 1! #11338000 0! #11338500 1! #11339000 0! #11339500 1! #11340000 0! #11340500 1! #11341000 0! #11341500 1! #11342000 0! #11342500 1! #11343000 0! #11343500 1! #11344000 0! #11344500 1! #11345000 0! #11345500 1! #11346000 0! #11346500 1! #11347000 0! #11347500 1! #11348000 0! #11348500 1! #11349000 0! #11349500 1! #11350000 0! #11350500 1! #11351000 0! #11351500 1! #11352000 0! #11352500 1! #11353000 0! #11353500 1! #11354000 0! #11354500 1! #11355000 0! #11355500 1! #11356000 0! #11356500 1! #11357000 0! #11357500 1! #11358000 0! #11358500 1! #11359000 0! #11359500 1! #11360000 0! #11360500 1! #11361000 0! #11361500 1! #11362000 0! #11362500 1! #11363000 0! #11363500 1! #11364000 0! #11364500 1! #11365000 0! #11365500 1! #11366000 0! #11366500 1! #11367000 0! #11367500 1! #11368000 0! #11368500 1! #11369000 0! #11369500 1! #11370000 0! #11370500 1! #11371000 0! #11371500 1! #11372000 0! #11372500 1! #11373000 0! #11373500 1! #11374000 0! #11374500 1! #11375000 0! #11375500 1! #11376000 0! #11376500 1! #11377000 0! #11377500 1! #11378000 0! #11378500 1! #11379000 0! #11379500 1! #11380000 0! #11380500 1! #11381000 0! #11381500 1! #11382000 0! #11382500 1! #11383000 0! #11383500 1! #11384000 0! #11384500 1! #11385000 0! #11385500 1! #11386000 0! #11386500 1! #11387000 0! #11387500 1! #11388000 0! #11388500 1! #11389000 0! #11389500 1! #11390000 0! #11390500 1! #11391000 0! #11391500 1! #11392000 0! #11392500 1! #11393000 0! #11393500 1! #11394000 0! #11394500 1! #11395000 0! #11395500 1! #11396000 0! #11396500 1! #11397000 0! #11397500 1! #11398000 0! #11398500 1! #11399000 0! #11399500 1! #11400000 0! #11400500 1! #11401000 0! #11401500 1! #11402000 0! #11402500 1! #11403000 0! #11403500 1! #11404000 0! #11404500 1! #11405000 0! #11405500 1! #11406000 0! #11406500 1! #11407000 0! #11407500 1! #11408000 0! #11408500 1! #11409000 0! #11409500 1! #11410000 0! #11410500 1! #11411000 0! #11411500 1! #11412000 0! #11412500 1! #11413000 0! #11413500 1! #11414000 0! #11414500 1! #11415000 0! #11415500 1! #11416000 0! #11416500 1! #11417000 0! #11417500 1! #11418000 0! #11418500 1! #11419000 0! #11419500 1! #11420000 0! #11420500 1! #11421000 0! #11421500 1! #11422000 0! #11422500 1! #11423000 0! #11423500 1! #11424000 0! #11424500 1! #11425000 0! #11425500 1! #11426000 0! #11426500 1! #11427000 0! #11427500 1! #11428000 0! #11428500 1! #11429000 0! #11429500 1! #11430000 0! #11430500 1! #11431000 0! #11431500 1! #11432000 0! #11432500 1! #11433000 0! #11433500 1! #11434000 0! #11434500 1! #11435000 0! #11435500 1! #11436000 0! #11436500 1! #11437000 0! #11437500 1! #11438000 0! #11438500 1! #11439000 0! #11439500 1! #11440000 0! #11440500 1! #11441000 0! #11441500 1! #11442000 0! #11442500 1! #11443000 0! #11443500 1! #11444000 0! #11444500 1! #11445000 0! #11445500 1! #11446000 0! #11446500 1! #11447000 0! #11447500 1! #11448000 0! #11448500 1! #11449000 0! #11449500 1! #11450000 0! #11450500 1! #11451000 0! #11451500 1! #11452000 0! #11452500 1! #11453000 0! #11453500 1! #11454000 0! #11454500 1! #11455000 0! #11455500 1! #11456000 0! #11456500 1! #11457000 0! #11457500 1! #11458000 0! #11458500 1! #11459000 0! #11459500 1! #11460000 0! #11460500 1! #11461000 0! #11461500 1! #11462000 0! #11462500 1! #11463000 0! #11463500 1! #11464000 0! #11464500 1! #11465000 0! #11465500 1! #11466000 0! #11466500 1! #11467000 0! #11467500 1! #11468000 0! #11468500 1! #11469000 0! #11469500 1! #11470000 0! #11470500 1! #11471000 0! #11471500 1! #11472000 0! #11472500 1! #11473000 0! #11473500 1! #11474000 0! #11474500 1! #11475000 0! #11475500 1! #11476000 0! #11476500 1! #11477000 0! #11477500 1! #11478000 0! #11478500 1! #11479000 0! #11479500 1! #11480000 0! #11480500 1! #11481000 0! #11481500 1! #11482000 0! #11482500 1! #11483000 0! #11483500 1! #11484000 0! #11484500 1! #11485000 0! #11485500 1! #11486000 0! #11486500 1! #11487000 0! #11487500 1! #11488000 0! #11488500 1! #11489000 0! #11489500 1! #11490000 0! #11490500 1! #11491000 0! #11491500 1! #11492000 0! #11492500 1! #11493000 0! #11493500 1! #11494000 0! #11494500 1! #11495000 0! #11495500 1! #11496000 0! #11496500 1! #11497000 0! #11497500 1! #11498000 0! #11498500 1! #11499000 0! #11499500 1! #11500000 0! #11500500 1! #11501000 0! #11501500 1! #11502000 0! #11502500 1! #11503000 0! #11503500 1! #11504000 0! #11504500 1! #11505000 0! #11505500 1! #11506000 0! #11506500 1! #11507000 0! #11507500 1! #11508000 0! #11508500 1! #11509000 0! #11509500 1! #11510000 0! #11510500 1! #11511000 0! #11511500 1! #11512000 0! #11512500 1! #11513000 0! #11513500 1! #11514000 0! #11514500 1! #11515000 0! #11515500 1! #11516000 0! #11516500 1! #11517000 0! #11517500 1! #11518000 0! #11518500 1! #11519000 0! #11519500 1! #11520000 0! #11520500 1! #11521000 0! #11521500 1! #11522000 0! #11522500 1! #11523000 0! #11523500 1! #11524000 0! #11524500 1! #11525000 0! #11525500 1! #11526000 0! #11526500 1! #11527000 0! #11527500 1! #11528000 0! #11528500 1! #11529000 0! #11529500 1! #11530000 0! #11530500 1! #11531000 0! #11531500 1! #11532000 0! #11532500 1! #11533000 0! #11533500 1! #11534000 0! #11534500 1! #11535000 0! #11535500 1! #11536000 0! #11536500 1! #11537000 0! #11537500 1! #11538000 0! #11538500 1! #11539000 0! #11539500 1! #11540000 0! #11540500 1! #11541000 0! #11541500 1! #11542000 0! #11542500 1! #11543000 0! #11543500 1! #11544000 0! #11544500 1! #11545000 0! #11545500 1! #11546000 0! #11546500 1! #11547000 0! #11547500 1! #11548000 0! #11548500 1! #11549000 0! #11549500 1! #11550000 0! #11550500 1! #11551000 0! #11551500 1! #11552000 0! #11552500 1! #11553000 0! #11553500 1! #11554000 0! #11554500 1! #11555000 0! #11555500 1! #11556000 0! #11556500 1! #11557000 0! #11557500 1! #11558000 0! #11558500 1! #11559000 0! #11559500 1! #11560000 0! #11560500 1! #11561000 0! #11561500 1! #11562000 0! #11562500 1! #11563000 0! #11563500 1! #11564000 0! #11564500 1! #11565000 0! #11565500 1! #11566000 0! #11566500 1! #11567000 0! #11567500 1! #11568000 0! #11568500 1! #11569000 0! #11569500 1! #11570000 0! #11570500 1! #11571000 0! #11571500 1! #11572000 0! #11572500 1! #11573000 0! #11573500 1! #11574000 0! #11574500 1! #11575000 0! #11575500 1! #11576000 0! #11576500 1! #11577000 0! #11577500 1! #11578000 0! #11578500 1! #11579000 0! #11579500 1! #11580000 0! #11580500 1! #11581000 0! #11581500 1! #11582000 0! #11582500 1! #11583000 0! #11583500 1! #11584000 0! #11584500 1! #11585000 0! #11585500 1! #11586000 0! #11586500 1! #11587000 0! #11587500 1! #11588000 0! #11588500 1! #11589000 0! #11589500 1! #11590000 0! #11590500 1! #11591000 0! #11591500 1! #11592000 0! #11592500 1! #11593000 0! #11593500 1! #11594000 0! #11594500 1! #11595000 0! #11595500 1! #11596000 0! #11596500 1! #11597000 0! #11597500 1! #11598000 0! #11598500 1! #11599000 0! #11599500 1! #11600000 0! #11600500 1! #11601000 0! #11601500 1! #11602000 0! #11602500 1! #11603000 0! #11603500 1! #11604000 0! #11604500 1! #11605000 0! #11605500 1! #11606000 0! #11606500 1! #11607000 0! #11607500 1! #11608000 0! #11608500 1! #11609000 0! #11609500 1! #11610000 0! #11610500 1! #11611000 0! #11611500 1! #11612000 0! #11612500 1! #11613000 0! #11613500 1! #11614000 0! #11614500 1! #11615000 0! #11615500 1! #11616000 0! #11616500 1! #11617000 0! #11617500 1! #11618000 0! #11618500 1! #11619000 0! #11619500 1! #11620000 0! #11620500 1! #11621000 0! #11621500 1! #11622000 0! #11622500 1! #11623000 0! #11623500 1! #11624000 0! #11624500 1! #11625000 0! #11625500 1! #11626000 0! #11626500 1! #11627000 0! #11627500 1! #11628000 0! #11628500 1! #11629000 0! #11629500 1! #11630000 0! #11630500 1! #11631000 0! #11631500 1! #11632000 0! #11632500 1! #11633000 0! #11633500 1! #11634000 0! #11634500 1! #11635000 0! #11635500 1! #11636000 0! #11636500 1! #11637000 0! #11637500 1! #11638000 0! #11638500 1! #11639000 0! #11639500 1! #11640000 0! #11640500 1! #11641000 0! #11641500 1! #11642000 0! #11642500 1! #11643000 0! #11643500 1! #11644000 0! #11644500 1! #11645000 0! #11645500 1! #11646000 0! #11646500 1! #11647000 0! #11647500 1! #11648000 0! #11648500 1! #11649000 0! #11649500 1! #11650000 0! #11650500 1! #11651000 0! #11651500 1! #11652000 0! #11652500 1! #11653000 0! #11653500 1! #11654000 0! #11654500 1! #11655000 0! #11655500 1! #11656000 0! #11656500 1! #11657000 0! #11657500 1! #11658000 0! #11658500 1! #11659000 0! #11659500 1! #11660000 0! #11660500 1! #11661000 0! #11661500 1! #11662000 0! #11662500 1! #11663000 0! #11663500 1! #11664000 0! #11664500 1! #11665000 0! #11665500 1! #11666000 0! #11666500 1! #11667000 0! #11667500 1! #11668000 0! #11668500 1! #11669000 0! #11669500 1! #11670000 0! #11670500 1! #11671000 0! #11671500 1! #11672000 0! #11672500 1! #11673000 0! #11673500 1! #11674000 0! #11674500 1! #11675000 0! #11675500 1! #11676000 0! #11676500 1! #11677000 0! #11677500 1! #11678000 0! #11678500 1! #11679000 0! #11679500 1! #11680000 0! #11680500 1! #11681000 0! #11681500 1! #11682000 0! #11682500 1! #11683000 0! #11683500 1! #11684000 0! #11684500 1! #11685000 0! #11685500 1! #11686000 0! #11686500 1! #11687000 0! #11687500 1! #11688000 0! #11688500 1! #11689000 0! #11689500 1! #11690000 0! #11690500 1! #11691000 0! #11691500 1! #11692000 0! #11692500 1! #11693000 0! #11693500 1! #11694000 0! #11694500 1! #11695000 0! #11695500 1! #11696000 0! #11696500 1! #11697000 0! #11697500 1! #11698000 0! #11698500 1! #11699000 0! #11699500 1! #11700000 0! #11700500 1! #11701000 0! #11701500 1! #11702000 0! #11702500 1! #11703000 0! #11703500 1! #11704000 0! #11704500 1! #11705000 0! #11705500 1! #11706000 0! #11706500 1! #11707000 0! #11707500 1! #11708000 0! #11708500 1! #11709000 0! #11709500 1! #11710000 0! #11710500 1! #11711000 0! #11711500 1! #11712000 0! #11712500 1! #11713000 0! #11713500 1! #11714000 0! #11714500 1! #11715000 0! #11715500 1! #11716000 0! #11716500 1! #11717000 0! #11717500 1! #11718000 0! #11718500 1! #11719000 0! #11719500 1! #11720000 0! #11720500 1! #11721000 0! #11721500 1! #11722000 0! #11722500 1! #11723000 0! #11723500 1! #11724000 0! #11724500 1! #11725000 0! #11725500 1! #11726000 0! #11726500 1! #11727000 0! #11727500 1! #11728000 0! #11728500 1! #11729000 0! #11729500 1! #11730000 0! #11730500 1! #11731000 0! #11731500 1! #11732000 0! #11732500 1! #11733000 0! #11733500 1! #11734000 0! #11734500 1! #11735000 0! #11735500 1! #11736000 0! #11736500 1! #11737000 0! #11737500 1! #11738000 0! #11738500 1! #11739000 0! #11739500 1! #11740000 0! #11740500 1! #11741000 0! #11741500 1! #11742000 0! #11742500 1! #11743000 0! #11743500 1! #11744000 0! #11744500 1! #11745000 0! #11745500 1! #11746000 0! #11746500 1! #11747000 0! #11747500 1! #11748000 0! #11748500 1! #11749000 0! #11749500 1! #11750000 0! #11750500 1! #11751000 0! #11751500 1! #11752000 0! #11752500 1! #11753000 0! #11753500 1! #11754000 0! #11754500 1! #11755000 0! #11755500 1! #11756000 0! #11756500 1! #11757000 0! #11757500 1! #11758000 0! #11758500 1! #11759000 0! #11759500 1! #11760000 0! #11760500 1! #11761000 0! #11761500 1! #11762000 0! #11762500 1! #11763000 0! #11763500 1! #11764000 0! #11764500 1! #11765000 0! #11765500 1! #11766000 0! #11766500 1! #11767000 0! #11767500 1! #11768000 0! #11768500 1! #11769000 0! #11769500 1! #11770000 0! #11770500 1! #11771000 0! #11771500 1! #11772000 0! #11772500 1! #11773000 0! #11773500 1! #11774000 0! #11774500 1! #11775000 0! #11775500 1! #11776000 0! #11776500 1! #11777000 0! #11777500 1! #11778000 0! #11778500 1! #11779000 0! #11779500 1! #11780000 0! #11780500 1! #11781000 0! #11781500 1! #11782000 0! #11782500 1! #11783000 0! #11783500 1! #11784000 0! #11784500 1! #11785000 0! #11785500 1! #11786000 0! #11786500 1! #11787000 0! #11787500 1! #11788000 0! #11788500 1! #11789000 0! #11789500 1! #11790000 0! #11790500 1! #11791000 0! #11791500 1! #11792000 0! #11792500 1! #11793000 0! #11793500 1! #11794000 0! #11794500 1! #11795000 0! #11795500 1! #11796000 0! #11796500 1! #11797000 0! #11797500 1! #11798000 0! #11798500 1! #11799000 0! #11799500 1! #11800000 0! #11800500 1! #11801000 0! #11801500 1! #11802000 0! #11802500 1! #11803000 0! #11803500 1! #11804000 0! #11804500 1! #11805000 0! #11805500 1! #11806000 0! #11806500 1! #11807000 0! #11807500 1! #11808000 0! #11808500 1! #11809000 0! #11809500 1! #11810000 0! #11810500 1! #11811000 0! #11811500 1! #11812000 0! #11812500 1! #11813000 0! #11813500 1! #11814000 0! #11814500 1! #11815000 0! #11815500 1! #11816000 0! #11816500 1! #11817000 0! #11817500 1! #11818000 0! #11818500 1! #11819000 0! #11819500 1! #11820000 0! #11820500 1! #11821000 0! #11821500 1! #11822000 0! #11822500 1! #11823000 0! #11823500 1! #11824000 0! #11824500 1! #11825000 0! #11825500 1! #11826000 0! #11826500 1! #11827000 0! #11827500 1! #11828000 0! #11828500 1! #11829000 0! #11829500 1! #11830000 0! #11830500 1! #11831000 0! #11831500 1! #11832000 0! #11832500 1! #11833000 0! #11833500 1! #11834000 0! #11834500 1! #11835000 0! #11835500 1! #11836000 0! #11836500 1! #11837000 0! #11837500 1! #11838000 0! #11838500 1! #11839000 0! #11839500 1! #11840000 0! #11840500 1! #11841000 0! #11841500 1! #11842000 0! #11842500 1! #11843000 0! #11843500 1! #11844000 0! #11844500 1! #11845000 0! #11845500 1! #11846000 0! #11846500 1! #11847000 0! #11847500 1! #11848000 0! #11848500 1! #11849000 0! #11849500 1! #11850000 0! #11850500 1! #11851000 0! #11851500 1! #11852000 0! #11852500 1! #11853000 0! #11853500 1! #11854000 0! #11854500 1! #11855000 0! #11855500 1! #11856000 0! #11856500 1! #11857000 0! #11857500 1! #11858000 0! #11858500 1! #11859000 0! #11859500 1! #11860000 0! #11860500 1! #11861000 0! #11861500 1! #11862000 0! #11862500 1! #11863000 0! #11863500 1! #11864000 0! #11864500 1! #11865000 0! #11865500 1! #11866000 0! #11866500 1! #11867000 0! #11867500 1! #11868000 0! #11868500 1! #11869000 0! #11869500 1! #11870000 0! #11870500 1! #11871000 0! #11871500 1! #11872000 0! #11872500 1! #11873000 0! #11873500 1! #11874000 0! #11874500 1! #11875000 0! #11875500 1! #11876000 0! #11876500 1! #11877000 0! #11877500 1! #11878000 0! #11878500 1! #11879000 0! #11879500 1! #11880000 0! #11880500 1! #11881000 0! #11881500 1! #11882000 0! #11882500 1! #11883000 0! #11883500 1! #11884000 0! #11884500 1! #11885000 0! #11885500 1! #11886000 0! #11886500 1! #11887000 0! #11887500 1! #11888000 0! #11888500 1! #11889000 0! #11889500 1! #11890000 0! #11890500 1! #11891000 0! #11891500 1! #11892000 0! #11892500 1! #11893000 0! #11893500 1! #11894000 0! #11894500 1! #11895000 0! #11895500 1! #11896000 0! #11896500 1! #11897000 0! #11897500 1! #11898000 0! #11898500 1! #11899000 0! #11899500 1! #11900000 0! #11900500 1! #11901000 0! #11901500 1! #11902000 0! #11902500 1! #11903000 0! #11903500 1! #11904000 0! #11904500 1! #11905000 0! #11905500 1! #11906000 0! #11906500 1! #11907000 0! #11907500 1! #11908000 0! #11908500 1! #11909000 0! #11909500 1! #11910000 0! #11910500 1! #11911000 0! #11911500 1! #11912000 0! #11912500 1! #11913000 0! #11913500 1! #11914000 0! #11914500 1! #11915000 0! #11915500 1! #11916000 0! #11916500 1! #11917000 0! #11917500 1! #11918000 0! #11918500 1! #11919000 0! #11919500 1! #11920000 0! #11920500 1! #11921000 0! #11921500 1! #11922000 0! #11922500 1! #11923000 0! #11923500 1! #11924000 0! #11924500 1! #11925000 0! #11925500 1! #11926000 0! #11926500 1! #11927000 0! #11927500 1! #11928000 0! #11928500 1! #11929000 0! #11929500 1! #11930000 0! #11930500 1! #11931000 0! #11931500 1! #11932000 0! #11932500 1! #11933000 0! #11933500 1! #11934000 0! #11934500 1! #11935000 0! #11935500 1! #11936000 0! #11936500 1! #11937000 0! #11937500 1! #11938000 0! #11938500 1! #11939000 0! #11939500 1! #11940000 0! #11940500 1! #11941000 0! #11941500 1! #11942000 0! #11942500 1! #11943000 0! #11943500 1! #11944000 0! #11944500 1! #11945000 0! #11945500 1! #11946000 0! #11946500 1! #11947000 0! #11947500 1! #11948000 0! #11948500 1! #11949000 0! #11949500 1! #11950000 0! #11950500 1! #11951000 0! #11951500 1! #11952000 0! #11952500 1! #11953000 0! #11953500 1! #11954000 0! #11954500 1! #11955000 0! #11955500 1! #11956000 0! #11956500 1! #11957000 0! #11957500 1! #11958000 0! #11958500 1! #11959000 0! #11959500 1! #11960000 0! #11960500 1! #11961000 0! #11961500 1! #11962000 0! #11962500 1! #11963000 0! #11963500 1! #11964000 0! #11964500 1! #11965000 0! #11965500 1! #11966000 0! #11966500 1! #11967000 0! #11967500 1! #11968000 0! #11968500 1! #11969000 0! #11969500 1! #11970000 0! #11970500 1! #11971000 0! #11971500 1! #11972000 0! #11972500 1! #11973000 0! #11973500 1! #11974000 0! #11974500 1! #11975000 0! #11975500 1! #11976000 0! #11976500 1! #11977000 0! #11977500 1! #11978000 0! #11978500 1! #11979000 0! #11979500 1! #11980000 0! #11980500 1! #11981000 0! #11981500 1! #11982000 0! #11982500 1! #11983000 0! #11983500 1! #11984000 0! #11984500 1! #11985000 0! #11985500 1! #11986000 0! #11986500 1! #11987000 0! #11987500 1! #11988000 0! #11988500 1! #11989000 0! #11989500 1! #11990000 0! #11990500 1! #11991000 0! #11991500 1! #11992000 0! #11992500 1! #11993000 0! #11993500 1! #11994000 0! #11994500 1! #11995000 0! #11995500 1! #11996000 0! #11996500 1! #11997000 0! #11997500 1! #11998000 0! #11998500 1! #11999000 0! #11999500 1! #12000000 0! #12000500 1! #12001000 0! #12001500 1! #12002000 0! #12002500 1! #12003000 0! #12003500 1! #12004000 0! #12004500 1! #12005000 0! #12005500 1! #12006000 0! #12006500 1! #12007000 0! #12007500 1! #12008000 0! #12008500 1! #12009000 0! #12009500 1! #12010000 0! #12010500 1! #12011000 0! #12011500 1! #12012000 0! #12012500 1! #12013000 0! #12013500 1! #12014000 0! #12014500 1! #12015000 0! #12015500 1! #12016000 0! #12016500 1! #12017000 0! #12017500 1! #12018000 0! #12018500 1! #12019000 0! #12019500 1! #12020000 0! #12020500 1! #12021000 0! #12021500 1! #12022000 0! #12022500 1! #12023000 0! #12023500 1! #12024000 0! #12024500 1! #12025000 0! #12025500 1! #12026000 0! #12026500 1! #12027000 0! #12027500 1! #12028000 0! #12028500 1! #12029000 0! #12029500 1! #12030000 0! #12030500 1! #12031000 0! #12031500 1! #12032000 0! #12032500 1! #12033000 0! #12033500 1! #12034000 0! #12034500 1! #12035000 0! #12035500 1! #12036000 0! #12036500 1! #12037000 0! #12037500 1! #12038000 0! #12038500 1! #12039000 0! #12039500 1! #12040000 0! #12040500 1! #12041000 0! #12041500 1! #12042000 0! #12042500 1! #12043000 0! #12043500 1! #12044000 0! #12044500 1! #12045000 0! #12045500 1! #12046000 0! #12046500 1! #12047000 0! #12047500 1! #12048000 0! #12048500 1! #12049000 0! #12049500 1! #12050000 0! #12050500 1! #12051000 0! #12051500 1! #12052000 0! #12052500 1! #12053000 0! #12053500 1! #12054000 0! #12054500 1! #12055000 0! #12055500 1! #12056000 0! #12056500 1! #12057000 0! #12057500 1! #12058000 0! #12058500 1! #12059000 0! #12059500 1! #12060000 0! #12060500 1! #12061000 0! #12061500 1! #12062000 0! #12062500 1! #12063000 0! #12063500 1! #12064000 0! #12064500 1! #12065000 0! #12065500 1! #12066000 0! #12066500 1! #12067000 0! #12067500 1! #12068000 0! #12068500 1! #12069000 0! #12069500 1! #12070000 0! #12070500 1! #12071000 0! #12071500 1! #12072000 0! #12072500 1! #12073000 0! #12073500 1! #12074000 0! #12074500 1! #12075000 0! #12075500 1! #12076000 0! #12076500 1! #12077000 0! #12077500 1! #12078000 0! #12078500 1! #12079000 0! #12079500 1! #12080000 0! #12080500 1! #12081000 0! #12081500 1! #12082000 0! #12082500 1! #12083000 0! #12083500 1! #12084000 0! #12084500 1! #12085000 0! #12085500 1! #12086000 0! #12086500 1! #12087000 0! #12087500 1! #12088000 0! #12088500 1! #12089000 0! #12089500 1! #12090000 0! #12090500 1! #12091000 0! #12091500 1! #12092000 0! #12092500 1! #12093000 0! #12093500 1! #12094000 0! #12094500 1! #12095000 0! #12095500 1! #12096000 0! #12096500 1! #12097000 0! #12097500 1! #12098000 0! #12098500 1! #12099000 0! #12099500 1! #12100000 0! #12100500 1! #12101000 0! #12101500 1! #12102000 0! #12102500 1! #12103000 0! #12103500 1! #12104000 0! #12104500 1! #12105000 0! #12105500 1! #12106000 0! #12106500 1! #12107000 0! #12107500 1! #12108000 0! #12108500 1! #12109000 0! #12109500 1! #12110000 0! #12110500 1! #12111000 0! #12111500 1! #12112000 0! #12112500 1! #12113000 0! #12113500 1! #12114000 0! #12114500 1! #12115000 0! #12115500 1! #12116000 0! #12116500 1! #12117000 0! #12117500 1! #12118000 0! #12118500 1! #12119000 0! #12119500 1! #12120000 0! #12120500 1! #12121000 0! #12121500 1! #12122000 0! #12122500 1! #12123000 0! #12123500 1! #12124000 0! #12124500 1! #12125000 0! #12125500 1! #12126000 0! #12126500 1! #12127000 0! #12127500 1! #12128000 0! #12128500 1! #12129000 0! #12129500 1! #12130000 0! #12130500 1! #12131000 0! #12131500 1! #12132000 0! #12132500 1! #12133000 0! #12133500 1! #12134000 0! #12134500 1! #12135000 0! #12135500 1! #12136000 0! #12136500 1! #12137000 0! #12137500 1! #12138000 0! #12138500 1! #12139000 0! #12139500 1! #12140000 0! #12140500 1! #12141000 0! #12141500 1! #12142000 0! #12142500 1! #12143000 0! #12143500 1! #12144000 0! #12144500 1! #12145000 0! #12145500 1! #12146000 0! #12146500 1! #12147000 0! #12147500 1! #12148000 0! #12148500 1! #12149000 0! #12149500 1! #12150000 0! #12150500 1! #12151000 0! #12151500 1! #12152000 0! #12152500 1! #12153000 0! #12153500 1! #12154000 0! #12154500 1! #12155000 0! #12155500 1! #12156000 0! #12156500 1! #12157000 0! #12157500 1! #12158000 0! #12158500 1! #12159000 0! #12159500 1! #12160000 0! #12160500 1! #12161000 0! #12161500 1! #12162000 0! #12162500 1! #12163000 0! #12163500 1! #12164000 0! #12164500 1! #12165000 0! #12165500 1! #12166000 0! #12166500 1! #12167000 0! #12167500 1! #12168000 0! #12168500 1! #12169000 0! #12169500 1! #12170000 0! #12170500 1! #12171000 0! #12171500 1! #12172000 0! #12172500 1! #12173000 0! #12173500 1! #12174000 0! #12174500 1! #12175000 0! #12175500 1! #12176000 0! #12176500 1! #12177000 0! #12177500 1! #12178000 0! #12178500 1! #12179000 0! #12179500 1! #12180000 0! #12180500 1! #12181000 0! #12181500 1! #12182000 0! #12182500 1! #12183000 0! #12183500 1! #12184000 0! #12184500 1! #12185000 0! #12185500 1! #12186000 0! #12186500 1! #12187000 0! #12187500 1! #12188000 0! #12188500 1! #12189000 0! #12189500 1! #12190000 0! #12190500 1! #12191000 0! #12191500 1! #12192000 0! #12192500 1! #12193000 0! #12193500 1! #12194000 0! #12194500 1! #12195000 0! #12195500 1! #12196000 0! #12196500 1! #12197000 0! #12197500 1! #12198000 0! #12198500 1! #12199000 0! #12199500 1! #12200000 0! #12200500 1! #12201000 0! #12201500 1! #12202000 0! #12202500 1! #12203000 0! #12203500 1! #12204000 0! #12204500 1! #12205000 0! #12205500 1! #12206000 0! #12206500 1! #12207000 0! #12207500 1! #12208000 0! #12208500 1! #12209000 0! #12209500 1! #12210000 0! #12210500 1! #12211000 0! #12211500 1! #12212000 0! #12212500 1! #12213000 0! #12213500 1! #12214000 0! #12214500 1! #12215000 0! #12215500 1! #12216000 0! #12216500 1! #12217000 0! #12217500 1! #12218000 0! #12218500 1! #12219000 0! #12219500 1! #12220000 0! #12220500 1! #12221000 0! #12221500 1! #12222000 0! #12222500 1! #12223000 0! #12223500 1! #12224000 0! #12224500 1! #12225000 0! #12225500 1! #12226000 0! #12226500 1! #12227000 0! #12227500 1! #12228000 0! #12228500 1! #12229000 0! #12229500 1! #12230000 0! #12230500 1! #12231000 0! #12231500 1! #12232000 0! #12232500 1! #12233000 0! #12233500 1! #12234000 0! #12234500 1! #12235000 0! #12235500 1! #12236000 0! #12236500 1! #12237000 0! #12237500 1! #12238000 0! #12238500 1! #12239000 0! #12239500 1! #12240000 0! #12240500 1! #12241000 0! #12241500 1! #12242000 0! #12242500 1! #12243000 0! #12243500 1! #12244000 0! #12244500 1! #12245000 0! #12245500 1! #12246000 0! #12246500 1! #12247000 0! #12247500 1! #12248000 0! #12248500 1! #12249000 0! #12249500 1! #12250000 0! #12250500 1! #12251000 0! #12251500 1! #12252000 0! #12252500 1! #12253000 0! #12253500 1! #12254000 0! #12254500 1! #12255000 0! #12255500 1! #12256000 0! #12256500 1! #12257000 0! #12257500 1! #12258000 0! #12258500 1! #12259000 0! #12259500 1! #12260000 0! #12260500 1! #12261000 0! #12261500 1! #12262000 0! #12262500 1! #12263000 0! #12263500 1! #12264000 0! #12264500 1! #12265000 0! #12265500 1! #12266000 0! #12266500 1! #12267000 0! #12267500 1! #12268000 0! #12268500 1! #12269000 0! #12269500 1! #12270000 0! #12270500 1! #12271000 0! #12271500 1! #12272000 0! #12272500 1! #12273000 0! #12273500 1! #12274000 0! #12274500 1! #12275000 0! #12275500 1! #12276000 0! #12276500 1! #12277000 0! #12277500 1! #12278000 0! #12278500 1! #12279000 0! #12279500 1! #12280000 0! #12280500 1! #12281000 0! #12281500 1! #12282000 0! #12282500 1! #12283000 0! #12283500 1! #12284000 0! #12284500 1! #12285000 0! #12285500 1! #12286000 0! #12286500 1! #12287000 0! #12287500 1! #12288000 0! #12288500 1! #12289000 0! #12289500 1! #12290000 0! #12290500 1! #12291000 0! #12291500 1! #12292000 0! #12292500 1! #12293000 0! #12293500 1! #12294000 0! #12294500 1! #12295000 0! #12295500 1! #12296000 0! #12296500 1! #12297000 0! #12297500 1! #12298000 0! #12298500 1! #12299000 0! #12299500 1! #12300000 0! #12300500 1! #12301000 0! #12301500 1! #12302000 0! #12302500 1! #12303000 0! #12303500 1! #12304000 0! #12304500 1! #12305000 0! #12305500 1! #12306000 0! #12306500 1! #12307000 0! #12307500 1! #12308000 0! #12308500 1! #12309000 0! #12309500 1! #12310000 0! #12310500 1! #12311000 0! #12311500 1! #12312000 0! #12312500 1! #12313000 0! #12313500 1! #12314000 0! #12314500 1! #12315000 0! #12315500 1! #12316000 0! #12316500 1! #12317000 0! #12317500 1! #12318000 0! #12318500 1! #12319000 0! #12319500 1! #12320000 0! #12320500 1! #12321000 0! #12321500 1! #12322000 0! #12322500 1! #12323000 0! #12323500 1! #12324000 0! #12324500 1! #12325000 0! #12325500 1! #12326000 0! #12326500 1! #12327000 0! #12327500 1! #12328000 0! #12328500 1! #12329000 0! #12329500 1! #12330000 0! #12330500 1! #12331000 0! #12331500 1! #12332000 0! #12332500 1! #12333000 0! #12333500 1! #12334000 0! #12334500 1! #12335000 0! #12335500 1! #12336000 0! #12336500 1! #12337000 0! #12337500 1! #12338000 0! #12338500 1! #12339000 0! #12339500 1! #12340000 0! #12340500 1! #12341000 0! #12341500 1! #12342000 0! #12342500 1! #12343000 0! #12343500 1! #12344000 0! #12344500 1! #12345000 0! #12345500 1! #12346000 0! #12346500 1! #12347000 0! #12347500 1! #12348000 0! #12348500 1! #12349000 0! #12349500 1! #12350000 0! #12350500 1! #12351000 0! #12351500 1! #12352000 0! #12352500 1! #12353000 0! #12353500 1! #12354000 0! #12354500 1! #12355000 0! #12355500 1! #12356000 0! #12356500 1! #12357000 0! #12357500 1! #12358000 0! #12358500 1! #12359000 0! #12359500 1! #12360000 0! #12360500 1! #12361000 0! #12361500 1! #12362000 0! #12362500 1! #12363000 0! #12363500 1! #12364000 0! #12364500 1! #12365000 0! #12365500 1! #12366000 0! #12366500 1! #12367000 0! #12367500 1! #12368000 0! #12368500 1! #12369000 0! #12369500 1! #12370000 0! #12370500 1! #12371000 0! #12371500 1! #12372000 0! #12372500 1! #12373000 0! #12373500 1! #12374000 0! #12374500 1! #12375000 0! #12375500 1! #12376000 0! #12376500 1! #12377000 0! #12377500 1! #12378000 0! #12378500 1! #12379000 0! #12379500 1! #12380000 0! #12380500 1! #12381000 0! #12381500 1! #12382000 0! #12382500 1! #12383000 0! #12383500 1! #12384000 0! #12384500 1! #12385000 0! #12385500 1! #12386000 0! #12386500 1! #12387000 0! #12387500 1! #12388000 0! #12388500 1! #12389000 0! #12389500 1! #12390000 0! #12390500 1! #12391000 0! #12391500 1! #12392000 0! #12392500 1! #12393000 0! #12393500 1! #12394000 0! #12394500 1! #12395000 0! #12395500 1! #12396000 0! #12396500 1! #12397000 0! #12397500 1! #12398000 0! #12398500 1! #12399000 0! #12399500 1! #12400000 0! #12400500 1! #12401000 0! #12401500 1! #12402000 0! #12402500 1! #12403000 0! #12403500 1! #12404000 0! #12404500 1! #12405000 0! #12405500 1! #12406000 0! #12406500 1! #12407000 0! #12407500 1! #12408000 0! #12408500 1! #12409000 0! #12409500 1! #12410000 0! #12410500 1! #12411000 0! #12411500 1! #12412000 0! #12412500 1! #12413000 0! #12413500 1! #12414000 0! #12414500 1! #12415000 0! #12415500 1! #12416000 0! #12416500 1! #12417000 0! #12417500 1! #12418000 0! #12418500 1! #12419000 0! #12419500 1! #12420000 0! #12420500 1! #12421000 0! #12421500 1! #12422000 0! #12422500 1! #12423000 0! #12423500 1! #12424000 0! #12424500 1! #12425000 0! #12425500 1! #12426000 0! #12426500 1! #12427000 0! #12427500 1! #12428000 0! #12428500 1! #12429000 0! #12429500 1! #12430000 0! #12430500 1! #12431000 0! #12431500 1! #12432000 0! #12432500 1! #12433000 0! #12433500 1! #12434000 0! #12434500 1! #12435000 0! #12435500 1! #12436000 0! #12436500 1! #12437000 0! #12437500 1! #12438000 0! #12438500 1! #12439000 0! #12439500 1! #12440000 0! #12440500 1! #12441000 0! #12441500 1! #12442000 0! #12442500 1! #12443000 0! #12443500 1! #12444000 0! #12444500 1! #12445000 0! #12445500 1! #12446000 0! #12446500 1! #12447000 0! #12447500 1! #12448000 0! #12448500 1! #12449000 0! #12449500 1! #12450000 0! #12450500 1! #12451000 0! #12451500 1! #12452000 0! #12452500 1! #12453000 0! #12453500 1! #12454000 0! #12454500 1! #12455000 0! #12455500 1! #12456000 0! #12456500 1! #12457000 0! #12457500 1! #12458000 0! #12458500 1! #12459000 0! #12459500 1! #12460000 0! #12460500 1! #12461000 0! #12461500 1! #12462000 0! #12462500 1! #12463000 0! #12463500 1! #12464000 0! #12464500 1! #12465000 0! #12465500 1! #12466000 0! #12466500 1! #12467000 0! #12467500 1! #12468000 0! #12468500 1! #12469000 0! #12469500 1! #12470000 0! #12470500 1! #12471000 0! #12471500 1! #12472000 0! #12472500 1! #12473000 0! #12473500 1! #12474000 0! #12474500 1! #12475000 0! #12475500 1! #12476000 0! #12476500 1! #12477000 0! #12477500 1! #12478000 0! #12478500 1! #12479000 0! #12479500 1! #12480000 0! #12480500 1! #12481000 0! #12481500 1! #12482000 0! #12482500 1! #12483000 0! #12483500 1! #12484000 0! #12484500 1! #12485000 0! #12485500 1! #12486000 0! #12486500 1! #12487000 0! #12487500 1! #12488000 0! #12488500 1! #12489000 0! #12489500 1! #12490000 0! #12490500 1! #12491000 0! #12491500 1! #12492000 0! #12492500 1! #12493000 0! #12493500 1! #12494000 0! #12494500 1! #12495000 0! #12495500 1! #12496000 0! #12496500 1! #12497000 0! #12497500 1! #12498000 0! #12498500 1! #12499000 0! #12499500 1! #12500000 0! #12500500 1! #12501000 0! #12501500 1! #12502000 0! #12502500 1! #12503000 0! #12503500 1! #12504000 0! #12504500 1! #12505000 0! #12505500 1! #12506000 0! #12506500 1! #12507000 0! #12507500 1! #12508000 0! #12508500 1! #12509000 0! #12509500 1! #12510000 0! #12510500 1! #12511000 0! #12511500 1! #12512000 0! #12512500 1! #12513000 0! #12513500 1! #12514000 0! #12514500 1! #12515000 0! #12515500 1! #12516000 0! #12516500 1! #12517000 0! #12517500 1! #12518000 0! #12518500 1! #12519000 0! #12519500 1! #12520000 0! #12520500 1! #12521000 0! #12521500 1! #12522000 0! #12522500 1! #12523000 0! #12523500 1! #12524000 0! #12524500 1! #12525000 0! #12525500 1! #12526000 0! #12526500 1! #12527000 0! #12527500 1! #12528000 0! #12528500 1! #12529000 0! #12529500 1! #12530000 0! #12530500 1! #12531000 0! #12531500 1! #12532000 0! #12532500 1! #12533000 0! #12533500 1! #12534000 0! #12534500 1! #12535000 0! #12535500 1! #12536000 0! #12536500 1! #12537000 0! #12537500 1! #12538000 0! #12538500 1! #12539000 0! #12539500 1! #12540000 0! #12540500 1! #12541000 0! #12541500 1! #12542000 0! #12542500 1! #12543000 0! #12543500 1! #12544000 0! #12544500 1! #12545000 0! #12545500 1! #12546000 0! #12546500 1! #12547000 0! #12547500 1! #12548000 0! #12548500 1! #12549000 0! #12549500 1! #12550000 0! #12550500 1! #12551000 0! #12551500 1! #12552000 0! #12552500 1! #12553000 0! #12553500 1! #12554000 0! #12554500 1! #12555000 0! #12555500 1! #12556000 0! #12556500 1! #12557000 0! #12557500 1! #12558000 0! #12558500 1! #12559000 0! #12559500 1! #12560000 0! #12560500 1! #12561000 0! #12561500 1! #12562000 0! #12562500 1! #12563000 0! #12563500 1! #12564000 0! #12564500 1! #12565000 0! #12565500 1! #12566000 0! #12566500 1! #12567000 0! #12567500 1! #12568000 0! #12568500 1! #12569000 0! #12569500 1! #12570000 0! #12570500 1! #12571000 0! #12571500 1! #12572000 0! #12572500 1! #12573000 0! #12573500 1! #12574000 0! #12574500 1! #12575000 0! #12575500 1! #12576000 0! #12576500 1! #12577000 0! #12577500 1! #12578000 0! #12578500 1! #12579000 0! #12579500 1! #12580000 0! #12580500 1! #12581000 0! #12581500 1! #12582000 0! #12582500 1! #12583000 0! #12583500 1! #12584000 0! #12584500 1! #12585000 0! #12585500 1! #12586000 0! #12586500 1! #12587000 0! #12587500 1! #12588000 0! #12588500 1! #12589000 0! #12589500 1! #12590000 0! #12590500 1! #12591000 0! #12591500 1! #12592000 0! #12592500 1! #12593000 0! #12593500 1! #12594000 0! #12594500 1! #12595000 0! #12595500 1! #12596000 0! #12596500 1! #12597000 0! #12597500 1! #12598000 0! #12598500 1! #12599000 0! #12599500 1! #12600000 0! #12600500 1! #12601000 0! #12601500 1! #12602000 0! #12602500 1! #12603000 0! #12603500 1! #12604000 0! #12604500 1! #12605000 0! #12605500 1! #12606000 0! #12606500 1! #12607000 0! #12607500 1! #12608000 0! #12608500 1! #12609000 0! #12609500 1! #12610000 0! #12610500 1! #12611000 0! #12611500 1! #12612000 0! #12612500 1! #12613000 0! #12613500 1! #12614000 0! #12614500 1! #12615000 0! #12615500 1! #12616000 0! #12616500 1! #12617000 0! #12617500 1! #12618000 0! #12618500 1! #12619000 0! #12619500 1! #12620000 0! #12620500 1! #12621000 0! #12621500 1! #12622000 0! #12622500 1! #12623000 0! #12623500 1! #12624000 0! #12624500 1! #12625000 0! #12625500 1! #12626000 0! #12626500 1! #12627000 0! #12627500 1! #12628000 0! #12628500 1! #12629000 0! #12629500 1! #12630000 0! #12630500 1! #12631000 0! #12631500 1! #12632000 0! #12632500 1! #12633000 0! #12633500 1! #12634000 0! #12634500 1! #12635000 0! #12635500 1! #12636000 0! #12636500 1! #12637000 0! #12637500 1! #12638000 0! #12638500 1! #12639000 0! #12639500 1! #12640000 0! #12640500 1! #12641000 0! #12641500 1! #12642000 0! #12642500 1! #12643000 0! #12643500 1! #12644000 0! #12644500 1! #12645000 0! #12645500 1! #12646000 0! #12646500 1! #12647000 0! #12647500 1! #12648000 0! #12648500 1! #12649000 0! #12649500 1! #12650000 0! #12650500 1! #12651000 0! #12651500 1! #12652000 0! #12652500 1! #12653000 0! #12653500 1! #12654000 0! #12654500 1! #12655000 0! #12655500 1! #12656000 0! #12656500 1! #12657000 0! #12657500 1! #12658000 0! #12658500 1! #12659000 0! #12659500 1! #12660000 0! #12660500 1! #12661000 0! #12661500 1! #12662000 0! #12662500 1! #12663000 0! #12663500 1! #12664000 0! #12664500 1! #12665000 0! #12665500 1! #12666000 0! #12666500 1! #12667000 0! #12667500 1! #12668000 0! #12668500 1! #12669000 0! #12669500 1! #12670000 0! #12670500 1! #12671000 0! #12671500 1! #12672000 0! #12672500 1! #12673000 0! #12673500 1! #12674000 0! #12674500 1! #12675000 0! #12675500 1! #12676000 0! #12676500 1! #12677000 0! #12677500 1! #12678000 0! #12678500 1! #12679000 0! #12679500 1! #12680000 0! #12680500 1! #12681000 0! #12681500 1! #12682000 0! #12682500 1! #12683000 0! #12683500 1! #12684000 0! #12684500 1! #12685000 0! #12685500 1! #12686000 0! #12686500 1! #12687000 0! #12687500 1! #12688000 0! #12688500 1! #12689000 0! #12689500 1! #12690000 0! #12690500 1! #12691000 0! #12691500 1! #12692000 0! #12692500 1! #12693000 0! #12693500 1! #12694000 0! #12694500 1! #12695000 0! #12695500 1! #12696000 0! #12696500 1! #12697000 0! #12697500 1! #12698000 0! #12698500 1! #12699000 0! #12699500 1! #12700000 0! #12700500 1! #12701000 0! #12701500 1! #12702000 0! #12702500 1! #12703000 0! #12703500 1! #12704000 0! #12704500 1! #12705000 0! #12705500 1! #12706000 0! #12706500 1! #12707000 0! #12707500 1! #12708000 0! #12708500 1! #12709000 0! #12709500 1! #12710000 0! #12710500 1! #12711000 0! #12711500 1! #12712000 0! #12712500 1! #12713000 0! #12713500 1! #12714000 0! #12714500 1! #12715000 0! #12715500 1! #12716000 0! #12716500 1! #12717000 0! #12717500 1! #12718000 0! #12718500 1! #12719000 0! #12719500 1! #12720000 0! #12720500 1! #12721000 0! #12721500 1! #12722000 0! #12722500 1! #12723000 0! #12723500 1! #12724000 0! #12724500 1! #12725000 0! #12725500 1! #12726000 0! #12726500 1! #12727000 0! #12727500 1! #12728000 0! #12728500 1! #12729000 0! #12729500 1! #12730000 0! #12730500 1! #12731000 0! #12731500 1! #12732000 0! #12732500 1! #12733000 0! #12733500 1! #12734000 0! #12734500 1! #12735000 0! #12735500 1! #12736000 0! #12736500 1! #12737000 0! #12737500 1! #12738000 0! #12738500 1! #12739000 0! #12739500 1! #12740000 0! #12740500 1! #12741000 0! #12741500 1! #12742000 0! #12742500 1! #12743000 0! #12743500 1! #12744000 0! #12744500 1! #12745000 0! #12745500 1! #12746000 0! #12746500 1! #12747000 0! #12747500 1! #12748000 0! #12748500 1! #12749000 0! #12749500 1! #12750000 0! #12750500 1! #12751000 0! #12751500 1! #12752000 0! #12752500 1! #12753000 0! #12753500 1! #12754000 0! #12754500 1! #12755000 0! #12755500 1! #12756000 0! #12756500 1! #12757000 0! #12757500 1! #12758000 0! #12758500 1! #12759000 0! #12759500 1! #12760000 0! #12760500 1! #12761000 0! #12761500 1! #12762000 0! #12762500 1! #12763000 0! #12763500 1! #12764000 0! #12764500 1! #12765000 0! #12765500 1! #12766000 0! #12766500 1! #12767000 0! #12767500 1! #12768000 0! #12768500 1! #12769000 0! #12769500 1! #12770000 0! #12770500 1! #12771000 0! #12771500 1! #12772000 0! #12772500 1! #12773000 0! #12773500 1! #12774000 0! #12774500 1! #12775000 0! #12775500 1! #12776000 0! #12776500 1! #12777000 0! #12777500 1! #12778000 0! #12778500 1! #12779000 0! #12779500 1! #12780000 0! #12780500 1! #12781000 0! #12781500 1! #12782000 0! #12782500 1! #12783000 0! #12783500 1! #12784000 0! #12784500 1! #12785000 0! #12785500 1! #12786000 0! #12786500 1! #12787000 0! #12787500 1! #12788000 0! #12788500 1! #12789000 0! #12789500 1! #12790000 0! #12790500 1! #12791000 0! #12791500 1! #12792000 0! #12792500 1! #12793000 0! #12793500 1! #12794000 0! #12794500 1! #12795000 0! #12795500 1! #12796000 0! #12796500 1! #12797000 0! #12797500 1! #12798000 0! #12798500 1! #12799000 0! #12799500 1! #12800000 0! #12800500 1! #12801000 0! #12801500 1! #12802000 0! #12802500 1! #12803000 0! #12803500 1! #12804000 0! #12804500 1! #12805000 0! #12805500 1! #12806000 0! #12806500 1! #12807000 0! #12807500 1! #12808000 0! #12808500 1! #12809000 0! #12809500 1! #12810000 0! #12810500 1! #12811000 0! #12811500 1! #12812000 0! #12812500 1! #12813000 0! #12813500 1! #12814000 0! #12814500 1! #12815000 0! #12815500 1! #12816000 0! #12816500 1! #12817000 0! #12817500 1! #12818000 0! #12818500 1! #12819000 0! #12819500 1! #12820000 0! #12820500 1! #12821000 0! #12821500 1! #12822000 0! #12822500 1! #12823000 0! #12823500 1! #12824000 0! #12824500 1! #12825000 0! #12825500 1! #12826000 0! #12826500 1! #12827000 0! #12827500 1! #12828000 0! #12828500 1! #12829000 0! #12829500 1! #12830000 0! #12830500 1! #12831000 0! #12831500 1! #12832000 0! #12832500 1! #12833000 0! #12833500 1! #12834000 0! #12834500 1! #12835000 0! #12835500 1! #12836000 0! #12836500 1! #12837000 0! #12837500 1! #12838000 0! #12838500 1! #12839000 0! #12839500 1! #12840000 0! #12840500 1! #12841000 0! #12841500 1! #12842000 0! #12842500 1! #12843000 0! #12843500 1! #12844000 0! #12844500 1! #12845000 0! #12845500 1! #12846000 0! #12846500 1! #12847000 0! #12847500 1! #12848000 0! #12848500 1! #12849000 0! #12849500 1! #12850000 0! #12850500 1! #12851000 0! #12851500 1! #12852000 0! #12852500 1! #12853000 0! #12853500 1! #12854000 0! #12854500 1! #12855000 0! #12855500 1! #12856000 0! #12856500 1! #12857000 0! #12857500 1! #12858000 0! #12858500 1! #12859000 0! #12859500 1! #12860000 0! #12860500 1! #12861000 0! #12861500 1! #12862000 0! #12862500 1! #12863000 0! #12863500 1! #12864000 0! #12864500 1! #12865000 0! #12865500 1! #12866000 0! #12866500 1! #12867000 0! #12867500 1! #12868000 0! #12868500 1! #12869000 0! #12869500 1! #12870000 0! #12870500 1! #12871000 0! #12871500 1! #12872000 0! #12872500 1! #12873000 0! #12873500 1! #12874000 0! #12874500 1! #12875000 0! #12875500 1! #12876000 0! #12876500 1! #12877000 0! #12877500 1! #12878000 0! #12878500 1! #12879000 0! #12879500 1! #12880000 0! #12880500 1! #12881000 0! #12881500 1! #12882000 0! #12882500 1! #12883000 0! #12883500 1! #12884000 0! #12884500 1! #12885000 0! #12885500 1! #12886000 0! #12886500 1! #12887000 0! #12887500 1! #12888000 0! #12888500 1! #12889000 0! #12889500 1! #12890000 0! #12890500 1! #12891000 0! #12891500 1! #12892000 0! #12892500 1! #12893000 0! #12893500 1! #12894000 0! #12894500 1! #12895000 0! #12895500 1! #12896000 0! #12896500 1! #12897000 0! #12897500 1! #12898000 0! #12898500 1! #12899000 0! #12899500 1! #12900000 0! #12900500 1! #12901000 0! #12901500 1! #12902000 0! #12902500 1! #12903000 0! #12903500 1! #12904000 0! #12904500 1! #12905000 0! #12905500 1! #12906000 0! #12906500 1! #12907000 0! #12907500 1! #12908000 0! #12908500 1! #12909000 0! #12909500 1! #12910000 0! #12910500 1! #12911000 0! #12911500 1! #12912000 0! #12912500 1! #12913000 0! #12913500 1! #12914000 0! #12914500 1! #12915000 0! #12915500 1! #12916000 0! #12916500 1! #12917000 0! #12917500 1! #12918000 0! #12918500 1! #12919000 0! #12919500 1! #12920000 0! #12920500 1! #12921000 0! #12921500 1! #12922000 0! #12922500 1! #12923000 0! #12923500 1! #12924000 0! #12924500 1! #12925000 0! #12925500 1! #12926000 0! #12926500 1! #12927000 0! #12927500 1! #12928000 0! #12928500 1! #12929000 0! #12929500 1! #12930000 0! #12930500 1! #12931000 0! #12931500 1! #12932000 0! #12932500 1! #12933000 0! #12933500 1! #12934000 0! #12934500 1! #12935000 0! #12935500 1! #12936000 0! #12936500 1! #12937000 0! #12937500 1! #12938000 0! #12938500 1! #12939000 0! #12939500 1! #12940000 0! #12940500 1! #12941000 0! #12941500 1! #12942000 0! #12942500 1! #12943000 0! #12943500 1! #12944000 0! #12944500 1! #12945000 0! #12945500 1! #12946000 0! #12946500 1! #12947000 0! #12947500 1! #12948000 0! #12948500 1! #12949000 0! #12949500 1! #12950000 0! #12950500 1! #12951000 0! #12951500 1! #12952000 0! #12952500 1! #12953000 0! #12953500 1! #12954000 0! #12954500 1! #12955000 0! #12955500 1! #12956000 0! #12956500 1! #12957000 0! #12957500 1! #12958000 0! #12958500 1! #12959000 0! #12959500 1! #12960000 0! #12960500 1! #12961000 0! #12961500 1! #12962000 0! #12962500 1! #12963000 0! #12963500 1! #12964000 0! #12964500 1! #12965000 0! #12965500 1! #12966000 0! #12966500 1! #12967000 0! #12967500 1! #12968000 0! #12968500 1! #12969000 0! #12969500 1! #12970000 0! #12970500 1! #12971000 0! #12971500 1! #12972000 0! #12972500 1! #12973000 0! #12973500 1! #12974000 0! #12974500 1! #12975000 0! #12975500 1! #12976000 0! #12976500 1! #12977000 0! #12977500 1! #12978000 0! #12978500 1! #12979000 0! #12979500 1! #12980000 0! #12980500 1! #12981000 0! #12981500 1! #12982000 0! #12982500 1! #12983000 0! #12983500 1! #12984000 0! #12984500 1! #12985000 0! #12985500 1! #12986000 0! #12986500 1! #12987000 0! #12987500 1! #12988000 0! #12988500 1! #12989000 0! #12989500 1! #12990000 0! #12990500 1! #12991000 0! #12991500 1! #12992000 0! #12992500 1! #12993000 0! #12993500 1! #12994000 0! #12994500 1! #12995000 0! #12995500 1! #12996000 0! #12996500 1! #12997000 0! #12997500 1! #12998000 0! #12998500 1! #12999000 0! #12999500 1! #13000000 0! #13000500 1! #13001000 0! #13001500 1! #13002000 0! #13002500 1! #13003000 0! #13003500 1! #13004000 0! #13004500 1! #13005000 0! #13005500 1! #13006000 0! #13006500 1! #13007000 0! #13007500 1! #13008000 0! #13008500 1! #13009000 0! #13009500 1! #13010000 0! #13010500 1! #13011000 0! #13011500 1! #13012000 0! #13012500 1! #13013000 0! #13013500 1! #13014000 0! #13014500 1! #13015000 0! #13015500 1! #13016000 0! #13016500 1! #13017000 0! #13017500 1! #13018000 0! #13018500 1! #13019000 0! #13019500 1! #13020000 0! #13020500 1! #13021000 0! #13021500 1! #13022000 0! #13022500 1! #13023000 0! #13023500 1! #13024000 0! #13024500 1! #13025000 0! #13025500 1! #13026000 0! #13026500 1! #13027000 0! #13027500 1! #13028000 0! #13028500 1! #13029000 0! #13029500 1! #13030000 0! #13030500 1! #13031000 0! #13031500 1! #13032000 0! #13032500 1! #13033000 0! #13033500 1! #13034000 0! #13034500 1! #13035000 0! #13035500 1! #13036000 0! #13036500 1! #13037000 0! #13037500 1! #13038000 0! #13038500 1! #13039000 0! #13039500 1! #13040000 0! #13040500 1! #13041000 0! #13041500 1! #13042000 0! #13042500 1! #13043000 0! #13043500 1! #13044000 0! #13044500 1! #13045000 0! #13045500 1! #13046000 0! #13046500 1! #13047000 0! #13047500 1! #13048000 0! #13048500 1! #13049000 0! #13049500 1! #13050000 0! #13050500 1! #13051000 0! #13051500 1! #13052000 0! #13052500 1! #13053000 0! #13053500 1! #13054000 0! #13054500 1! #13055000 0! #13055500 1! #13056000 0! #13056500 1! #13057000 0! #13057500 1! #13058000 0! #13058500 1! #13059000 0! #13059500 1! #13060000 0! #13060500 1! #13061000 0! #13061500 1! #13062000 0! #13062500 1! #13063000 0! #13063500 1! #13064000 0! #13064500 1! #13065000 0! #13065500 1! #13066000 0! #13066500 1! #13067000 0! #13067500 1! #13068000 0! #13068500 1! #13069000 0! #13069500 1! #13070000 0! #13070500 1! #13071000 0! #13071500 1! #13072000 0! #13072500 1! #13073000 0! #13073500 1! #13074000 0! #13074500 1! #13075000 0! #13075500 1! #13076000 0! #13076500 1! #13077000 0! #13077500 1! #13078000 0! #13078500 1! #13079000 0! #13079500 1! #13080000 0! #13080500 1! #13081000 0! #13081500 1! #13082000 0! #13082500 1! #13083000 0! #13083500 1! #13084000 0! #13084500 1! #13085000 0! #13085500 1! #13086000 0! #13086500 1! #13087000 0! #13087500 1! #13088000 0! #13088500 1! #13089000 0! #13089500 1! #13090000 0! #13090500 1! #13091000 0! #13091500 1! #13092000 0! #13092500 1! #13093000 0! #13093500 1! #13094000 0! #13094500 1! #13095000 0! #13095500 1! #13096000 0! #13096500 1! #13097000 0! #13097500 1! #13098000 0! #13098500 1! #13099000 0! #13099500 1! #13100000 0! #13100500 1! #13101000 0! #13101500 1! #13102000 0! #13102500 1! #13103000 0! #13103500 1! #13104000 0! #13104500 1! #13105000 0! #13105500 1! #13106000 0! #13106500 1! #13107000 0! #13107500 1! #13108000 0! #13108500 1! #13109000 0! #13109500 1! #13110000 0! #13110500 1! #13111000 0! #13111500 1! #13112000 0! #13112500 1! #13113000 0! #13113500 1! #13114000 0! #13114500 1! #13115000 0! #13115500 1! #13116000 0! #13116500 1! #13117000 0! #13117500 1! #13118000 0! #13118500 1! #13119000 0! #13119500 1! #13120000 0! #13120500 1! #13121000 0! #13121500 1! #13122000 0! #13122500 1! #13123000 0! #13123500 1! #13124000 0! #13124500 1! #13125000 0! #13125500 1! #13126000 0! #13126500 1! #13127000 0! #13127500 1! #13128000 0! #13128500 1! #13129000 0! #13129500 1! #13130000 0! #13130500 1! #13131000 0! #13131500 1! #13132000 0! #13132500 1! #13133000 0! #13133500 1! #13134000 0! #13134500 1! #13135000 0! #13135500 1! #13136000 0! #13136500 1! #13137000 0! #13137500 1! #13138000 0! #13138500 1! #13139000 0! #13139500 1! #13140000 0! #13140500 1! #13141000 0! #13141500 1! #13142000 0! #13142500 1! #13143000 0! #13143500 1! #13144000 0! #13144500 1! #13145000 0! #13145500 1! #13146000 0! #13146500 1! #13147000 0! #13147500 1! #13148000 0! #13148500 1! #13149000 0! #13149500 1! #13150000 0! #13150500 1! #13151000 0! #13151500 1! #13152000 0! #13152500 1! #13153000 0! #13153500 1! #13154000 0! #13154500 1! #13155000 0! #13155500 1! #13156000 0! #13156500 1! #13157000 0! #13157500 1! #13158000 0! #13158500 1! #13159000 0! #13159500 1! #13160000 0! #13160500 1! #13161000 0! #13161500 1! #13162000 0! #13162500 1! #13163000 0! #13163500 1! #13164000 0! #13164500 1! #13165000 0! #13165500 1! #13166000 0! #13166500 1! #13167000 0! #13167500 1! #13168000 0! #13168500 1! #13169000 0! #13169500 1! #13170000 0! #13170500 1! #13171000 0! #13171500 1! #13172000 0! #13172500 1! #13173000 0! #13173500 1! #13174000 0! #13174500 1! #13175000 0! #13175500 1! #13176000 0! #13176500 1! #13177000 0! #13177500 1! #13178000 0! #13178500 1! #13179000 0! #13179500 1! #13180000 0! #13180500 1! #13181000 0! #13181500 1! #13182000 0! #13182500 1! #13183000 0! #13183500 1! #13184000 0! #13184500 1! #13185000 0! #13185500 1! #13186000 0! #13186500 1! #13187000 0! #13187500 1! #13188000 0! #13188500 1! #13189000 0! #13189500 1! #13190000 0! #13190500 1! #13191000 0! #13191500 1! #13192000 0! #13192500 1! #13193000 0! #13193500 1! #13194000 0! #13194500 1! #13195000 0! #13195500 1! #13196000 0! #13196500 1! #13197000 0! #13197500 1! #13198000 0! #13198500 1! #13199000 0! #13199500 1! #13200000 0! #13200500 1! #13201000 0! #13201500 1! #13202000 0! #13202500 1! #13203000 0! #13203500 1! #13204000 0! #13204500 1! #13205000 0! #13205500 1! #13206000 0! #13206500 1! #13207000 0! #13207500 1! #13208000 0! #13208500 1! #13209000 0! #13209500 1! #13210000 0! #13210500 1! #13211000 0! #13211500 1! #13212000 0! #13212500 1! #13213000 0! #13213500 1! #13214000 0! #13214500 1! #13215000 0! #13215500 1! #13216000 0! #13216500 1! #13217000 0! #13217500 1! #13218000 0! #13218500 1! #13219000 0! #13219500 1! #13220000 0! #13220500 1! #13221000 0! #13221500 1! #13222000 0! #13222500 1! #13223000 0! #13223500 1! #13224000 0! #13224500 1! #13225000 0! #13225500 1! #13226000 0! #13226500 1! #13227000 0! #13227500 1! #13228000 0! #13228500 1! #13229000 0! #13229500 1! #13230000 0! #13230500 1! #13231000 0! #13231500 1! #13232000 0! #13232500 1! #13233000 0! #13233500 1! #13234000 0! #13234500 1! #13235000 0! #13235500 1! #13236000 0! #13236500 1! #13237000 0! #13237500 1! #13238000 0! #13238500 1! #13239000 0! #13239500 1! #13240000 0! #13240500 1! #13241000 0! #13241500 1! #13242000 0! #13242500 1! #13243000 0! #13243500 1! #13244000 0! #13244500 1! #13245000 0! #13245500 1! #13246000 0! #13246500 1! #13247000 0! #13247500 1! #13248000 0! #13248500 1! #13249000 0! #13249500 1! #13250000 0! #13250500 1! #13251000 0! #13251500 1! #13252000 0! #13252500 1! #13253000 0! #13253500 1! #13254000 0! #13254500 1! #13255000 0! #13255500 1! #13256000 0! #13256500 1! #13257000 0! #13257500 1! #13258000 0! #13258500 1! #13259000 0! #13259500 1! #13260000 0! #13260500 1! #13261000 0! #13261500 1! #13262000 0! #13262500 1! #13263000 0! #13263500 1! #13264000 0! #13264500 1! #13265000 0! #13265500 1! #13266000 0! #13266500 1! #13267000 0! #13267500 1! #13268000 0! #13268500 1! #13269000 0! #13269500 1! #13270000 0! #13270500 1! #13271000 0! #13271500 1! #13272000 0! #13272500 1! #13273000 0! #13273500 1! #13274000 0! #13274500 1! #13275000 0! #13275500 1! #13276000 0! #13276500 1! #13277000 0! #13277500 1! #13278000 0! #13278500 1! #13279000 0! #13279500 1! #13280000 0! #13280500 1! #13281000 0! #13281500 1! #13282000 0! #13282500 1! #13283000 0! #13283500 1! #13284000 0! #13284500 1! #13285000 0! #13285500 1! #13286000 0! #13286500 1! #13287000 0! #13287500 1! #13288000 0! #13288500 1! #13289000 0! #13289500 1! #13290000 0! #13290500 1! #13291000 0! #13291500 1! #13292000 0! #13292500 1! #13293000 0! #13293500 1! #13294000 0! #13294500 1! #13295000 0! #13295500 1! #13296000 0! #13296500 1! #13297000 0! #13297500 1! #13298000 0! #13298500 1! #13299000 0! #13299500 1! #13300000 0! #13300500 1! #13301000 0! #13301500 1! #13302000 0! #13302500 1! #13303000 0! #13303500 1! #13304000 0! #13304500 1! #13305000 0! #13305500 1! #13306000 0! #13306500 1! #13307000 0! #13307500 1! #13308000 0! #13308500 1! #13309000 0! #13309500 1! #13310000 0! #13310500 1! #13311000 0! #13311500 1! #13312000 0! #13312500 1! #13313000 0! #13313500 1! #13314000 0! #13314500 1! #13315000 0! #13315500 1! #13316000 0! #13316500 1! #13317000 0! #13317500 1! #13318000 0! #13318500 1! #13319000 0! #13319500 1! #13320000 0! #13320500 1! #13321000 0! #13321500 1! #13322000 0! #13322500 1! #13323000 0! #13323500 1! #13324000 0! #13324500 1! #13325000 0! #13325500 1! #13326000 0! #13326500 1! #13327000 0! #13327500 1! #13328000 0! #13328500 1! #13329000 0! #13329500 1! #13330000 0! #13330500 1! #13331000 0! #13331500 1! #13332000 0! #13332500 1! #13333000 0! #13333500 1! #13334000 0! #13334500 1! #13335000 0! #13335500 1! #13336000 0! #13336500 1! #13337000 0! #13337500 1! #13338000 0! #13338500 1! #13339000 0! #13339500 1! #13340000 0! #13340500 1! #13341000 0! #13341500 1! #13342000 0! #13342500 1! #13343000 0! #13343500 1! #13344000 0! #13344500 1! #13345000 0! #13345500 1! #13346000 0! #13346500 1! #13347000 0! #13347500 1! #13348000 0! #13348500 1! #13349000 0! #13349500 1! #13350000 0! #13350500 1! #13351000 0! #13351500 1! #13352000 0! #13352500 1! #13353000 0! #13353500 1! #13354000 0! #13354500 1! #13355000 0! #13355500 1! #13356000 0! #13356500 1! #13357000 0! #13357500 1! #13358000 0! #13358500 1! #13359000 0! #13359500 1! #13360000 0! #13360500 1! #13361000 0! #13361500 1! #13362000 0! #13362500 1! #13363000 0! #13363500 1! #13364000 0! #13364500 1! #13365000 0! #13365500 1! #13366000 0! #13366500 1! #13367000 0! #13367500 1! #13368000 0! #13368500 1! #13369000 0! #13369500 1! #13370000 0! #13370500 1! #13371000 0! #13371500 1! #13372000 0! #13372500 1! #13373000 0! #13373500 1! #13374000 0! #13374500 1! #13375000 0! #13375500 1! #13376000 0! #13376500 1! #13377000 0! #13377500 1! #13378000 0! #13378500 1! #13379000 0! #13379500 1! #13380000 0! #13380500 1! #13381000 0! #13381500 1! #13382000 0! #13382500 1! #13383000 0! #13383500 1! #13384000 0! #13384500 1! #13385000 0! #13385500 1! #13386000 0! #13386500 1! #13387000 0! #13387500 1! #13388000 0! #13388500 1! #13389000 0! #13389500 1! #13390000 0! #13390500 1! #13391000 0! #13391500 1! #13392000 0! #13392500 1! #13393000 0! #13393500 1! #13394000 0! #13394500 1! #13395000 0! #13395500 1! #13396000 0! #13396500 1! #13397000 0! #13397500 1! #13398000 0! #13398500 1! #13399000 0! #13399500 1! #13400000 0! #13400500 1! #13401000 0! #13401500 1! #13402000 0! #13402500 1! #13403000 0! #13403500 1! #13404000 0! #13404500 1! #13405000 0! #13405500 1! #13406000 0! #13406500 1! #13407000 0! #13407500 1! #13408000 0! #13408500 1! #13409000 0! #13409500 1! #13410000 0! #13410500 1! #13411000 0! #13411500 1! #13412000 0! #13412500 1! #13413000 0! #13413500 1! #13414000 0! #13414500 1! #13415000 0! #13415500 1! #13416000 0! #13416500 1! #13417000 0! #13417500 1! #13418000 0! #13418500 1! #13419000 0! #13419500 1! #13420000 0! #13420500 1! #13421000 0! #13421500 1! #13422000 0! #13422500 1! #13423000 0! #13423500 1! #13424000 0! #13424500 1! #13425000 0! #13425500 1! #13426000 0! #13426500 1! #13427000 0! #13427500 1! #13428000 0! #13428500 1! #13429000 0! #13429500 1! #13430000 0! #13430500 1! #13431000 0! #13431500 1! #13432000 0! #13432500 1! #13433000 0! #13433500 1! #13434000 0! #13434500 1! #13435000 0! #13435500 1! #13436000 0! #13436500 1! #13437000 0! #13437500 1! #13438000 0! #13438500 1! #13439000 0! #13439500 1! #13440000 0! #13440500 1! #13441000 0! #13441500 1! #13442000 0! #13442500 1! #13443000 0! #13443500 1! #13444000 0! #13444500 1! #13445000 0! #13445500 1! #13446000 0! #13446500 1! #13447000 0! #13447500 1! #13448000 0! #13448500 1! #13449000 0! #13449500 1! #13450000 0! #13450500 1! #13451000 0! #13451500 1! #13452000 0! #13452500 1! #13453000 0! #13453500 1! #13454000 0! #13454500 1! #13455000 0! #13455500 1! #13456000 0! #13456500 1! #13457000 0! #13457500 1! #13458000 0! #13458500 1! #13459000 0! #13459500 1! #13460000 0! #13460500 1! #13461000 0! #13461500 1! #13462000 0! #13462500 1! #13463000 0! #13463500 1! #13464000 0! #13464500 1! #13465000 0! #13465500 1! #13466000 0! #13466500 1! #13467000 0! #13467500 1! #13468000 0! #13468500 1! #13469000 0! #13469500 1! #13470000 0! #13470500 1! #13471000 0! #13471500 1! #13472000 0! #13472500 1! #13473000 0! #13473500 1! #13474000 0! #13474500 1! #13475000 0! #13475500 1! #13476000 0! #13476500 1! #13477000 0! #13477500 1! #13478000 0! #13478500 1! #13479000 0! #13479500 1! #13480000 0! #13480500 1! #13481000 0! #13481500 1! #13482000 0! #13482500 1! #13483000 0! #13483500 1! #13484000 0! #13484500 1! #13485000 0! #13485500 1! #13486000 0! #13486500 1! #13487000 0! #13487500 1! #13488000 0! #13488500 1! #13489000 0! #13489500 1! #13490000 0! #13490500 1! #13491000 0! #13491500 1! #13492000 0! #13492500 1! #13493000 0! #13493500 1! #13494000 0! #13494500 1! #13495000 0! #13495500 1! #13496000 0! #13496500 1! #13497000 0! #13497500 1! #13498000 0! #13498500 1! #13499000 0! #13499500 1! #13500000 0! #13500500 1! #13501000 0! #13501500 1! #13502000 0! #13502500 1! #13503000 0! #13503500 1! #13504000 0! #13504500 1! #13505000 0! #13505500 1! #13506000 0! #13506500 1! #13507000 0! #13507500 1! #13508000 0! #13508500 1! #13509000 0! #13509500 1! #13510000 0! #13510500 1! #13511000 0! #13511500 1! #13512000 0! #13512500 1! #13513000 0! #13513500 1! #13514000 0! #13514500 1! #13515000 0! #13515500 1! #13516000 0! #13516500 1! #13517000 0! #13517500 1! #13518000 0! #13518500 1! #13519000 0! #13519500 1! #13520000 0! #13520500 1! #13521000 0! #13521500 1! #13522000 0! #13522500 1! #13523000 0! #13523500 1! #13524000 0! #13524500 1! #13525000 0! #13525500 1! #13526000 0! #13526500 1! #13527000 0! #13527500 1! #13528000 0! #13528500 1! #13529000 0! #13529500 1! #13530000 0! #13530500 1! #13531000 0! #13531500 1! #13532000 0! #13532500 1! #13533000 0! #13533500 1! #13534000 0! #13534500 1! #13535000 0! #13535500 1! #13536000 0! #13536500 1! #13537000 0! #13537500 1! #13538000 0! #13538500 1! #13539000 0! #13539500 1! #13540000 0! #13540500 1! #13541000 0! #13541500 1! #13542000 0! #13542500 1! #13543000 0! #13543500 1! #13544000 0! #13544500 1! #13545000 0! #13545500 1! #13546000 0! #13546500 1! #13547000 0! #13547500 1! #13548000 0! #13548500 1! #13549000 0! #13549500 1! #13550000 0! #13550500 1! #13551000 0! #13551500 1! #13552000 0! #13552500 1! #13553000 0! #13553500 1! #13554000 0! #13554500 1! #13555000 0! #13555500 1! #13556000 0! #13556500 1! #13557000 0! #13557500 1! #13558000 0! #13558500 1! #13559000 0! #13559500 1! #13560000 0! #13560500 1! #13561000 0! #13561500 1! #13562000 0! #13562500 1! #13563000 0! #13563500 1! #13564000 0! #13564500 1! #13565000 0! #13565500 1! #13566000 0! #13566500 1! #13567000 0! #13567500 1! #13568000 0! #13568500 1! #13569000 0! #13569500 1! #13570000 0! #13570500 1! #13571000 0! #13571500 1! #13572000 0! #13572500 1! #13573000 0! #13573500 1! #13574000 0! #13574500 1! #13575000 0! #13575500 1! #13576000 0! #13576500 1! #13577000 0! #13577500 1! #13578000 0! #13578500 1! #13579000 0! #13579500 1! #13580000 0! #13580500 1! #13581000 0! #13581500 1! #13582000 0! #13582500 1! #13583000 0! #13583500 1! #13584000 0! #13584500 1! #13585000 0! #13585500 1! #13586000 0! #13586500 1! #13587000 0! #13587500 1! #13588000 0! #13588500 1! #13589000 0! #13589500 1! #13590000 0! #13590500 1! #13591000 0! #13591500 1! #13592000 0! #13592500 1! #13593000 0! #13593500 1! #13594000 0! #13594500 1! #13595000 0! #13595500 1! #13596000 0! #13596500 1! #13597000 0! #13597500 1! #13598000 0! #13598500 1! #13599000 0! #13599500 1! #13600000 0! #13600500 1! #13601000 0! #13601500 1! #13602000 0! #13602500 1! #13603000 0! #13603500 1! #13604000 0! #13604500 1! #13605000 0! #13605500 1! #13606000 0! #13606500 1! #13607000 0! #13607500 1! #13608000 0! #13608500 1! #13609000 0! #13609500 1! #13610000 0! #13610500 1! #13611000 0! #13611500 1! #13612000 0! #13612500 1! #13613000 0! #13613500 1! #13614000 0! #13614500 1! #13615000 0! #13615500 1! #13616000 0! #13616500 1! #13617000 0! #13617500 1! #13618000 0! #13618500 1! #13619000 0! #13619500 1! #13620000 0! #13620500 1! #13621000 0! #13621500 1! #13622000 0! #13622500 1! #13623000 0! #13623500 1! #13624000 0! #13624500 1! #13625000 0! #13625500 1! #13626000 0! #13626500 1! #13627000 0! #13627500 1! #13628000 0! #13628500 1! #13629000 0! #13629500 1! #13630000 0! #13630500 1! #13631000 0! #13631500 1! #13632000 0! #13632500 1! #13633000 0! #13633500 1! #13634000 0! #13634500 1! #13635000 0! #13635500 1! #13636000 0! #13636500 1! #13637000 0! #13637500 1! #13638000 0! #13638500 1! #13639000 0! #13639500 1! #13640000 0! #13640500 1! #13641000 0! #13641500 1! #13642000 0! #13642500 1! #13643000 0! #13643500 1! #13644000 0! #13644500 1! #13645000 0! #13645500 1! #13646000 0! #13646500 1! #13647000 0! #13647500 1! #13648000 0! #13648500 1! #13649000 0! #13649500 1! #13650000 0! #13650500 1! #13651000 0! #13651500 1! #13652000 0! #13652500 1! #13653000 0! #13653500 1! #13654000 0! #13654500 1! #13655000 0! #13655500 1! #13656000 0! #13656500 1! #13657000 0! #13657500 1! #13658000 0! #13658500 1! #13659000 0! #13659500 1! #13660000 0! #13660500 1! #13661000 0! #13661500 1! #13662000 0! #13662500 1! #13663000 0! #13663500 1! #13664000 0! #13664500 1! #13665000 0! #13665500 1! #13666000 0! #13666500 1! #13667000 0! #13667500 1! #13668000 0! #13668500 1! #13669000 0! #13669500 1! #13670000 0! #13670500 1! #13671000 0! #13671500 1! #13672000 0! #13672500 1! #13673000 0! #13673500 1! #13674000 0! #13674500 1! #13675000 0! #13675500 1! #13676000 0! #13676500 1! #13677000 0! #13677500 1! #13678000 0! #13678500 1! #13679000 0! #13679500 1! #13680000 0! #13680500 1! #13681000 0! #13681500 1! #13682000 0! #13682500 1! #13683000 0! #13683500 1! #13684000 0! #13684500 1! #13685000 0! #13685500 1! #13686000 0! #13686500 1! #13687000 0! #13687500 1! #13688000 0! #13688500 1! #13689000 0! #13689500 1! #13690000 0! #13690500 1! #13691000 0! #13691500 1! #13692000 0! #13692500 1! #13693000 0! #13693500 1! #13694000 0! #13694500 1! #13695000 0! #13695500 1! #13696000 0! #13696500 1! #13697000 0! #13697500 1! #13698000 0! #13698500 1! #13699000 0! #13699500 1! #13700000 0! #13700500 1! #13701000 0! #13701500 1! #13702000 0! #13702500 1! #13703000 0! #13703500 1! #13704000 0! #13704500 1! #13705000 0! #13705500 1! #13706000 0! #13706500 1! #13707000 0! #13707500 1! #13708000 0! #13708500 1! #13709000 0! #13709500 1! #13710000 0! #13710500 1! #13711000 0! #13711500 1! #13712000 0! #13712500 1! #13713000 0! #13713500 1! #13714000 0! #13714500 1! #13715000 0! #13715500 1! #13716000 0! #13716500 1! #13717000 0! #13717500 1! #13718000 0! #13718500 1! #13719000 0! #13719500 1! #13720000 0! #13720500 1! #13721000 0! #13721500 1! #13722000 0! #13722500 1! #13723000 0! #13723500 1! #13724000 0! #13724500 1! #13725000 0! #13725500 1! #13726000 0! #13726500 1! #13727000 0! #13727500 1! #13728000 0! #13728500 1! #13729000 0! #13729500 1! #13730000 0! #13730500 1! #13731000 0! #13731500 1! #13732000 0! #13732500 1! #13733000 0! #13733500 1! #13734000 0! #13734500 1! #13735000 0! #13735500 1! #13736000 0! #13736500 1! #13737000 0! #13737500 1! #13738000 0! #13738500 1! #13739000 0! #13739500 1! #13740000 0! #13740500 1! #13741000 0! #13741500 1! #13742000 0! #13742500 1! #13743000 0! #13743500 1! #13744000 0! #13744500 1! #13745000 0! #13745500 1! #13746000 0! #13746500 1! #13747000 0! #13747500 1! #13748000 0! #13748500 1! #13749000 0! #13749500 1! #13750000 0! #13750500 1! #13751000 0! #13751500 1! #13752000 0! #13752500 1! #13753000 0! #13753500 1! #13754000 0! #13754500 1! #13755000 0! #13755500 1! #13756000 0! #13756500 1! #13757000 0! #13757500 1! #13758000 0! #13758500 1! #13759000 0! #13759500 1! #13760000 0! #13760500 1! #13761000 0! #13761500 1! #13762000 0! #13762500 1! #13763000 0! #13763500 1! #13764000 0! #13764500 1! #13765000 0! #13765500 1! #13766000 0! #13766500 1! #13767000 0! #13767500 1! #13768000 0! #13768500 1! #13769000 0! #13769500 1! #13770000 0! #13770500 1! #13771000 0! #13771500 1! #13772000 0! #13772500 1! #13773000 0! #13773500 1! #13774000 0! #13774500 1! #13775000 0! #13775500 1! #13776000 0! #13776500 1! #13777000 0! #13777500 1! #13778000 0! #13778500 1! #13779000 0! #13779500 1! #13780000 0! #13780500 1! #13781000 0! #13781500 1! #13782000 0! #13782500 1! #13783000 0! #13783500 1! #13784000 0! #13784500 1! #13785000 0! #13785500 1! #13786000 0! #13786500 1! #13787000 0! #13787500 1! #13788000 0! #13788500 1! #13789000 0! #13789500 1! #13790000 0! #13790500 1! #13791000 0! #13791500 1! #13792000 0! #13792500 1! #13793000 0! #13793500 1! #13794000 0! #13794500 1! #13795000 0! #13795500 1! #13796000 0! #13796500 1! #13797000 0! #13797500 1! #13798000 0! #13798500 1! #13799000 0! #13799500 1! #13800000 0! #13800500 1! #13801000 0! #13801500 1! #13802000 0! #13802500 1! #13803000 0! #13803500 1! #13804000 0! #13804500 1! #13805000 0! #13805500 1! #13806000 0! #13806500 1! #13807000 0! #13807500 1! #13808000 0! #13808500 1! #13809000 0! #13809500 1! #13810000 0! #13810500 1! #13811000 0! #13811500 1! #13812000 0! #13812500 1! #13813000 0! #13813500 1! #13814000 0! #13814500 1! #13815000 0! #13815500 1! #13816000 0! #13816500 1! #13817000 0! #13817500 1! #13818000 0! #13818500 1! #13819000 0! #13819500 1! #13820000 0! #13820500 1! #13821000 0! #13821500 1! #13822000 0! #13822500 1! #13823000 0! #13823500 1! #13824000 0! #13824500 1! #13825000 0! #13825500 1! #13826000 0! #13826500 1! #13827000 0! #13827500 1! #13828000 0! #13828500 1! #13829000 0! #13829500 1! #13830000 0! #13830500 1! #13831000 0! #13831500 1! #13832000 0! #13832500 1! #13833000 0! #13833500 1! #13834000 0! #13834500 1! #13835000 0! #13835500 1! #13836000 0! #13836500 1! #13837000 0! #13837500 1! #13838000 0! #13838500 1! #13839000 0! #13839500 1! #13840000 0! #13840500 1! #13841000 0! #13841500 1! #13842000 0! #13842500 1! #13843000 0! #13843500 1! #13844000 0! #13844500 1! #13845000 0! #13845500 1! #13846000 0! #13846500 1! #13847000 0! #13847500 1! #13848000 0! #13848500 1! #13849000 0! #13849500 1! #13850000 0! #13850500 1! #13851000 0! #13851500 1! #13852000 0! #13852500 1! #13853000 0! #13853500 1! #13854000 0! #13854500 1! #13855000 0! #13855500 1! #13856000 0! #13856500 1! #13857000 0! #13857500 1! #13858000 0! #13858500 1! #13859000 0! #13859500 1! #13860000 0! #13860500 1! #13861000 0! #13861500 1! #13862000 0! #13862500 1! #13863000 0! #13863500 1! #13864000 0! #13864500 1! #13865000 0! #13865500 1! #13866000 0! #13866500 1! #13867000 0! #13867500 1! #13868000 0! #13868500 1! #13869000 0! #13869500 1! #13870000 0! #13870500 1! #13871000 0! #13871500 1! #13872000 0! #13872500 1! #13873000 0! #13873500 1! #13874000 0! #13874500 1! #13875000 0! #13875500 1! #13876000 0! #13876500 1! #13877000 0! #13877500 1! #13878000 0! #13878500 1! #13879000 0! #13879500 1! #13880000 0! #13880500 1! #13881000 0! #13881500 1! #13882000 0! #13882500 1! #13883000 0! #13883500 1! #13884000 0! #13884500 1! #13885000 0! #13885500 1! #13886000 0! #13886500 1! #13887000 0! #13887500 1! #13888000 0! #13888500 1! #13889000 0! #13889500 1! #13890000 0! #13890500 1! #13891000 0! #13891500 1! #13892000 0! #13892500 1! #13893000 0! #13893500 1! #13894000 0! #13894500 1! #13895000 0! #13895500 1! #13896000 0! #13896500 1! #13897000 0! #13897500 1! #13898000 0! #13898500 1! #13899000 0! #13899500 1! #13900000 0! #13900500 1! #13901000 0! #13901500 1! #13902000 0! #13902500 1! #13903000 0! #13903500 1! #13904000 0! #13904500 1! #13905000 0! #13905500 1! #13906000 0! #13906500 1! #13907000 0! #13907500 1! #13908000 0! #13908500 1! #13909000 0! #13909500 1! #13910000 0! #13910500 1! #13911000 0! #13911500 1! #13912000 0! #13912500 1! #13913000 0! #13913500 1! #13914000 0! #13914500 1! #13915000 0! #13915500 1! #13916000 0! #13916500 1! #13917000 0! #13917500 1! #13918000 0! #13918500 1! #13919000 0! #13919500 1! #13920000 0! #13920500 1! #13921000 0! #13921500 1! #13922000 0! #13922500 1! #13923000 0! #13923500 1! #13924000 0! #13924500 1! #13925000 0! #13925500 1! #13926000 0! #13926500 1! #13927000 0! #13927500 1! #13928000 0! #13928500 1! #13929000 0! #13929500 1! #13930000 0! #13930500 1! #13931000 0! #13931500 1! #13932000 0! #13932500 1! #13933000 0! #13933500 1! #13934000 0! #13934500 1! #13935000 0! #13935500 1! #13936000 0! #13936500 1! #13937000 0! #13937500 1! #13938000 0! #13938500 1! #13939000 0! #13939500 1! #13940000 0! #13940500 1! #13941000 0! #13941500 1! #13942000 0! #13942500 1! #13943000 0! #13943500 1! #13944000 0! #13944500 1! #13945000 0! #13945500 1! #13946000 0! #13946500 1! #13947000 0! #13947500 1! #13948000 0! #13948500 1! #13949000 0! #13949500 1! #13950000 0! #13950500 1! #13951000 0! #13951500 1! #13952000 0! #13952500 1! #13953000 0! #13953500 1! #13954000 0! #13954500 1! #13955000 0! #13955500 1! #13956000 0! #13956500 1! #13957000 0! #13957500 1! #13958000 0! #13958500 1! #13959000 0! #13959500 1! #13960000 0! #13960500 1! #13961000 0! #13961500 1! #13962000 0! #13962500 1! #13963000 0! #13963500 1! #13964000 0! #13964500 1! #13965000 0! #13965500 1! #13966000 0! #13966500 1! #13967000 0! #13967500 1! #13968000 0! #13968500 1! #13969000 0! #13969500 1! #13970000 0! #13970500 1! #13971000 0! #13971500 1! #13972000 0! #13972500 1! #13973000 0! #13973500 1! #13974000 0! #13974500 1! #13975000 0! #13975500 1! #13976000 0! #13976500 1! #13977000 0! #13977500 1! #13978000 0! #13978500 1! #13979000 0! #13979500 1! #13980000 0! #13980500 1! #13981000 0! #13981500 1! #13982000 0! #13982500 1! #13983000 0! #13983500 1! #13984000 0! #13984500 1! #13985000 0! #13985500 1! #13986000 0! #13986500 1! #13987000 0! #13987500 1! #13988000 0! #13988500 1! #13989000 0! #13989500 1! #13990000 0! #13990500 1! #13991000 0! #13991500 1! #13992000 0! #13992500 1! #13993000 0! #13993500 1! #13994000 0! #13994500 1! #13995000 0! #13995500 1! #13996000 0! #13996500 1! #13997000 0! #13997500 1! #13998000 0! #13998500 1! #13999000 0! #13999500 1! #14000000 0! #14000500 1! #14001000 0! #14001500 1! #14002000 0! #14002500 1! #14003000 0! #14003500 1! #14004000 0! #14004500 1! #14005000 0! #14005500 1! #14006000 0! #14006500 1! #14007000 0! #14007500 1! #14008000 0! #14008500 1! #14009000 0! #14009500 1! #14010000 0! #14010500 1! #14011000 0! #14011500 1! #14012000 0! #14012500 1! #14013000 0! #14013500 1! #14014000 0! #14014500 1! #14015000 0! #14015500 1! #14016000 0! #14016500 1! #14017000 0! #14017500 1! #14018000 0! #14018500 1! #14019000 0! #14019500 1! #14020000 0! #14020500 1! #14021000 0! #14021500 1! #14022000 0! #14022500 1! #14023000 0! #14023500 1! #14024000 0! #14024500 1! #14025000 0! #14025500 1! #14026000 0! #14026500 1! #14027000 0! #14027500 1! #14028000 0! #14028500 1! #14029000 0! #14029500 1! #14030000 0! #14030500 1! #14031000 0! #14031500 1! #14032000 0! #14032500 1! #14033000 0! #14033500 1! #14034000 0! #14034500 1! #14035000 0! #14035500 1! #14036000 0! #14036500 1! #14037000 0! #14037500 1! #14038000 0! #14038500 1! #14039000 0! #14039500 1! #14040000 0! #14040500 1! #14041000 0! #14041500 1! #14042000 0! #14042500 1! #14043000 0! #14043500 1! #14044000 0! #14044500 1! #14045000 0! #14045500 1! #14046000 0! #14046500 1! #14047000 0! #14047500 1! #14048000 0! #14048500 1! #14049000 0! #14049500 1! #14050000 0! #14050500 1! #14051000 0! #14051500 1! #14052000 0! #14052500 1! #14053000 0! #14053500 1! #14054000 0! #14054500 1! #14055000 0! #14055500 1! #14056000 0! #14056500 1! #14057000 0! #14057500 1! #14058000 0! #14058500 1! #14059000 0! #14059500 1! #14060000 0! #14060500 1! #14061000 0! #14061500 1! #14062000 0! #14062500 1! #14063000 0! #14063500 1! #14064000 0! #14064500 1! #14065000 0! #14065500 1! #14066000 0! #14066500 1! #14067000 0! #14067500 1! #14068000 0! #14068500 1! #14069000 0! #14069500 1! #14070000 0! #14070500 1! #14071000 0! #14071500 1! #14072000 0! #14072500 1! #14073000 0! #14073500 1! #14074000 0! #14074500 1! #14075000 0! #14075500 1! #14076000 0! #14076500 1! #14077000 0! #14077500 1! #14078000 0! #14078500 1! #14079000 0! #14079500 1! #14080000 0! #14080500 1! #14081000 0! #14081500 1! #14082000 0! #14082500 1! #14083000 0! #14083500 1! #14084000 0! #14084500 1! #14085000 0! #14085500 1! #14086000 0! #14086500 1! #14087000 0! #14087500 1! #14088000 0! #14088500 1! #14089000 0! #14089500 1! #14090000 0! #14090500 1! #14091000 0! #14091500 1! #14092000 0! #14092500 1! #14093000 0! #14093500 1! #14094000 0! #14094500 1! #14095000 0! #14095500 1! #14096000 0! #14096500 1! #14097000 0! #14097500 1! #14098000 0! #14098500 1! #14099000 0! #14099500 1! #14100000 0! #14100500 1! #14101000 0! #14101500 1! #14102000 0! #14102500 1! #14103000 0! #14103500 1! #14104000 0! #14104500 1! #14105000 0! #14105500 1! #14106000 0! #14106500 1! #14107000 0! #14107500 1! #14108000 0! #14108500 1! #14109000 0! #14109500 1! #14110000 0! #14110500 1! #14111000 0! #14111500 1! #14112000 0! #14112500 1! #14113000 0! #14113500 1! #14114000 0! #14114500 1! #14115000 0! #14115500 1! #14116000 0! #14116500 1! #14117000 0! #14117500 1! #14118000 0! #14118500 1! #14119000 0! #14119500 1! #14120000 0! #14120500 1! #14121000 0! #14121500 1! #14122000 0! #14122500 1! #14123000 0! #14123500 1! #14124000 0! #14124500 1! #14125000 0! #14125500 1! #14126000 0! #14126500 1! #14127000 0! #14127500 1! #14128000 0! #14128500 1! #14129000 0! #14129500 1! #14130000 0! #14130500 1! #14131000 0! #14131500 1! #14132000 0! #14132500 1! #14133000 0! #14133500 1! #14134000 0! #14134500 1! #14135000 0! #14135500 1! #14136000 0! #14136500 1! #14137000 0! #14137500 1! #14138000 0! #14138500 1! #14139000 0! #14139500 1! #14140000 0! #14140500 1! #14141000 0! #14141500 1! #14142000 0! #14142500 1! #14143000 0! #14143500 1! #14144000 0! #14144500 1! #14145000 0! #14145500 1! #14146000 0! #14146500 1! #14147000 0! #14147500 1! #14148000 0! #14148500 1! #14149000 0! #14149500 1! #14150000 0! #14150500 1! #14151000 0! #14151500 1! #14152000 0! #14152500 1! #14153000 0! #14153500 1! #14154000 0! #14154500 1! #14155000 0! #14155500 1! #14156000 0! #14156500 1! #14157000 0! #14157500 1! #14158000 0! #14158500 1! #14159000 0! #14159500 1! #14160000 0! #14160500 1! #14161000 0! #14161500 1! #14162000 0! #14162500 1! #14163000 0! #14163500 1! #14164000 0! #14164500 1! #14165000 0! #14165500 1! #14166000 0! #14166500 1! #14167000 0! #14167500 1! #14168000 0! #14168500 1! #14169000 0! #14169500 1! #14170000 0! #14170500 1! #14171000 0! #14171500 1! #14172000 0! #14172500 1! #14173000 0! #14173500 1! #14174000 0! #14174500 1! #14175000 0! #14175500 1! #14176000 0! #14176500 1! #14177000 0! #14177500 1! #14178000 0! #14178500 1! #14179000 0! #14179500 1! #14180000 0! #14180500 1! #14181000 0! #14181500 1! #14182000 0! #14182500 1! #14183000 0! #14183500 1! #14184000 0! #14184500 1! #14185000 0! #14185500 1! #14186000 0! #14186500 1! #14187000 0! #14187500 1! #14188000 0! #14188500 1! #14189000 0! #14189500 1! #14190000 0! #14190500 1! #14191000 0! #14191500 1! #14192000 0! #14192500 1! #14193000 0! #14193500 1! #14194000 0! #14194500 1! #14195000 0! #14195500 1! #14196000 0! #14196500 1! #14197000 0! #14197500 1! #14198000 0! #14198500 1! #14199000 0! #14199500 1! #14200000 0! #14200500 1! #14201000 0! #14201500 1! #14202000 0! #14202500 1! #14203000 0! #14203500 1! #14204000 0! #14204500 1! #14205000 0! #14205500 1! #14206000 0! #14206500 1! #14207000 0! #14207500 1! #14208000 0! #14208500 1! #14209000 0! #14209500 1! #14210000 0! #14210500 1! #14211000 0! #14211500 1! #14212000 0! #14212500 1! #14213000 0! #14213500 1! #14214000 0! #14214500 1! #14215000 0! #14215500 1! #14216000 0! #14216500 1! #14217000 0! #14217500 1! #14218000 0! #14218500 1! #14219000 0! #14219500 1! #14220000 0! #14220500 1! #14221000 0! #14221500 1! #14222000 0! #14222500 1! #14223000 0! #14223500 1! #14224000 0! #14224500 1! #14225000 0! #14225500 1! #14226000 0! #14226500 1! #14227000 0! #14227500 1! #14228000 0! #14228500 1! #14229000 0! #14229500 1! #14230000 0! #14230500 1! #14231000 0! #14231500 1! #14232000 0! #14232500 1! #14233000 0! #14233500 1! #14234000 0! #14234500 1! #14235000 0! #14235500 1! #14236000 0! #14236500 1! #14237000 0! #14237500 1! #14238000 0! #14238500 1! #14239000 0! #14239500 1! #14240000 0! #14240500 1! #14241000 0! #14241500 1! #14242000 0! #14242500 1! #14243000 0! #14243500 1! #14244000 0! #14244500 1! #14245000 0! #14245500 1! #14246000 0! #14246500 1! #14247000 0! #14247500 1! #14248000 0! #14248500 1! #14249000 0! #14249500 1! #14250000 0! #14250500 1! #14251000 0! #14251500 1! #14252000 0! #14252500 1! #14253000 0! #14253500 1! #14254000 0! #14254500 1! #14255000 0! #14255500 1! #14256000 0! #14256500 1! #14257000 0! #14257500 1! #14258000 0! #14258500 1! #14259000 0! #14259500 1! #14260000 0! #14260500 1! #14261000 0! #14261500 1! #14262000 0! #14262500 1! #14263000 0! #14263500 1! #14264000 0! #14264500 1! #14265000 0! #14265500 1! #14266000 0! #14266500 1! #14267000 0! #14267500 1! #14268000 0! #14268500 1! #14269000 0! #14269500 1! #14270000 0! #14270500 1! #14271000 0! #14271500 1! #14272000 0! #14272500 1! #14273000 0! #14273500 1! #14274000 0! #14274500 1! #14275000 0! #14275500 1! #14276000 0! #14276500 1! #14277000 0! #14277500 1! #14278000 0! #14278500 1! #14279000 0! #14279500 1! #14280000 0! #14280500 1! #14281000 0! #14281500 1! #14282000 0! #14282500 1! #14283000 0! #14283500 1! #14284000 0! #14284500 1! #14285000 0! #14285500 1! #14286000 0! #14286500 1! #14287000 0! #14287500 1! #14288000 0! #14288500 1! #14289000 0! #14289500 1! #14290000 0! #14290500 1! #14291000 0! #14291500 1! #14292000 0! #14292500 1! #14293000 0! #14293500 1! #14294000 0! #14294500 1! #14295000 0! #14295500 1! #14296000 0! #14296500 1! #14297000 0! #14297500 1! #14298000 0! #14298500 1! #14299000 0! #14299500 1! #14300000 0! #14300500 1! #14301000 0! #14301500 1! #14302000 0! #14302500 1! #14303000 0! #14303500 1! #14304000 0! #14304500 1! #14305000 0! #14305500 1! #14306000 0! #14306500 1! #14307000 0! #14307500 1! #14308000 0! #14308500 1! #14309000 0! #14309500 1! #14310000 0! #14310500 1! #14311000 0! #14311500 1! #14312000 0! #14312500 1! #14313000 0! #14313500 1! #14314000 0! #14314500 1! #14315000 0! #14315500 1! #14316000 0! #14316500 1! #14317000 0! #14317500 1! #14318000 0! #14318500 1! #14319000 0! #14319500 1! #14320000 0! #14320500 1! #14321000 0! #14321500 1! #14322000 0! #14322500 1! #14323000 0! #14323500 1! #14324000 0! #14324500 1! #14325000 0! #14325500 1! #14326000 0! #14326500 1! #14327000 0! #14327500 1! #14328000 0! #14328500 1! #14329000 0! #14329500 1! #14330000 0! #14330500 1! #14331000 0! #14331500 1! #14332000 0! #14332500 1! #14333000 0! #14333500 1! #14334000 0! #14334500 1! #14335000 0! #14335500 1! #14336000 0! #14336500 1! #14337000 0! #14337500 1! #14338000 0! #14338500 1! #14339000 0! #14339500 1! #14340000 0! #14340500 1! #14341000 0! #14341500 1! #14342000 0! #14342500 1! #14343000 0! #14343500 1! #14344000 0! #14344500 1! #14345000 0! #14345500 1! #14346000 0! #14346500 1! #14347000 0! #14347500 1! #14348000 0! #14348500 1! #14349000 0! #14349500 1! #14350000 0! #14350500 1! #14351000 0! #14351500 1! #14352000 0! #14352500 1! #14353000 0! #14353500 1! #14354000 0! #14354500 1! #14355000 0! #14355500 1! #14356000 0! #14356500 1! #14357000 0! #14357500 1! #14358000 0! #14358500 1! #14359000 0! #14359500 1! #14360000 0! #14360500 1! #14361000 0! #14361500 1! #14362000 0! #14362500 1! #14363000 0! #14363500 1! #14364000 0! #14364500 1! #14365000 0! #14365500 1! #14366000 0! #14366500 1! #14367000 0! #14367500 1! #14368000 0! #14368500 1! #14369000 0! #14369500 1! #14370000 0! #14370500 1! #14371000 0! #14371500 1! #14372000 0! #14372500 1! #14373000 0! #14373500 1! #14374000 0! #14374500 1! #14375000 0! #14375500 1! #14376000 0! #14376500 1! #14377000 0! #14377500 1! #14378000 0! #14378500 1! #14379000 0! #14379500 1! #14380000 0! #14380500 1! #14381000 0! #14381500 1! #14382000 0! #14382500 1! #14383000 0! #14383500 1! #14384000 0! #14384500 1! #14385000 0! #14385500 1! #14386000 0! #14386500 1! #14387000 0! #14387500 1! #14388000 0! #14388500 1! #14389000 0! #14389500 1! #14390000 0! #14390500 1! #14391000 0! #14391500 1! #14392000 0! #14392500 1! #14393000 0! #14393500 1! #14394000 0! #14394500 1! #14395000 0! #14395500 1! #14396000 0! #14396500 1! #14397000 0! #14397500 1! #14398000 0! #14398500 1! #14399000 0! #14399500 1! #14400000 0! #14400500 1! #14401000 0! #14401500 1! #14402000 0! #14402500 1! #14403000 0! #14403500 1! #14404000 0! #14404500 1! #14405000 0! #14405500 1! #14406000 0! #14406500 1! #14407000 0! #14407500 1! #14408000 0! #14408500 1! #14409000 0! #14409500 1! #14410000 0! #14410500 1! #14411000 0! #14411500 1! #14412000 0! #14412500 1! #14413000 0! #14413500 1! #14414000 0! #14414500 1! #14415000 0! #14415500 1! #14416000 0! #14416500 1! #14417000 0! #14417500 1! #14418000 0! #14418500 1! #14419000 0! #14419500 1! #14420000 0! #14420500 1! #14421000 0! #14421500 1! #14422000 0! #14422500 1! #14423000 0! #14423500 1! #14424000 0! #14424500 1! #14425000 0! #14425500 1! #14426000 0! #14426500 1! #14427000 0! #14427500 1! #14428000 0! #14428500 1! #14429000 0! #14429500 1! #14430000 0! #14430500 1! #14431000 0! #14431500 1! #14432000 0! #14432500 1! #14433000 0! #14433500 1! #14434000 0! #14434500 1! #14435000 0! #14435500 1! #14436000 0! #14436500 1! #14437000 0! #14437500 1! #14438000 0! #14438500 1! #14439000 0! #14439500 1! #14440000 0! #14440500 1! #14441000 0! #14441500 1! #14442000 0! #14442500 1! #14443000 0! #14443500 1! #14444000 0! #14444500 1! #14445000 0! #14445500 1! #14446000 0! #14446500 1! #14447000 0! #14447500 1! #14448000 0! #14448500 1! #14449000 0! #14449500 1! #14450000 0! #14450500 1! #14451000 0! #14451500 1! #14452000 0! #14452500 1! #14453000 0! #14453500 1! #14454000 0! #14454500 1! #14455000 0! #14455500 1! #14456000 0! #14456500 1! #14457000 0! #14457500 1! #14458000 0! #14458500 1! #14459000 0! #14459500 1! #14460000 0! #14460500 1! #14461000 0! #14461500 1! #14462000 0! #14462500 1! #14463000 0! #14463500 1! #14464000 0! #14464500 1! #14465000 0! #14465500 1! #14466000 0! #14466500 1! #14467000 0! #14467500 1! #14468000 0! #14468500 1! #14469000 0! #14469500 1! #14470000 0! #14470500 1! #14471000 0! #14471500 1! #14472000 0! #14472500 1! #14473000 0! #14473500 1! #14474000 0! #14474500 1! #14475000 0! #14475500 1! #14476000 0! #14476500 1! #14477000 0! #14477500 1! #14478000 0! #14478500 1! #14479000 0! #14479500 1! #14480000 0! #14480500 1! #14481000 0! #14481500 1! #14482000 0! #14482500 1! #14483000 0! #14483500 1! #14484000 0! #14484500 1! #14485000 0! #14485500 1! #14486000 0! #14486500 1! #14487000 0! #14487500 1! #14488000 0! #14488500 1! #14489000 0! #14489500 1! #14490000 0! #14490500 1! #14491000 0! #14491500 1! #14492000 0! #14492500 1! #14493000 0! #14493500 1! #14494000 0! #14494500 1! #14495000 0! #14495500 1! #14496000 0! #14496500 1! #14497000 0! #14497500 1! #14498000 0! #14498500 1! #14499000 0! #14499500 1! #14500000 0! #14500500 1! #14501000 0! #14501500 1! #14502000 0! #14502500 1! #14503000 0! #14503500 1! #14504000 0! #14504500 1! #14505000 0! #14505500 1! #14506000 0! #14506500 1! #14507000 0! #14507500 1! #14508000 0! #14508500 1! #14509000 0! #14509500 1! #14510000 0! #14510500 1! #14511000 0! #14511500 1! #14512000 0! #14512500 1! #14513000 0! #14513500 1! #14514000 0! #14514500 1! #14515000 0! #14515500 1! #14516000 0! #14516500 1! #14517000 0! #14517500 1! #14518000 0! #14518500 1! #14519000 0! #14519500 1! #14520000 0! #14520500 1! #14521000 0! #14521500 1! #14522000 0! #14522500 1! #14523000 0! #14523500 1! #14524000 0! #14524500 1! #14525000 0! #14525500 1! #14526000 0! #14526500 1! #14527000 0! #14527500 1! #14528000 0! #14528500 1! #14529000 0! #14529500 1! #14530000 0! #14530500 1! #14531000 0! #14531500 1! #14532000 0! #14532500 1! #14533000 0! #14533500 1! #14534000 0! #14534500 1! #14535000 0! #14535500 1! #14536000 0! #14536500 1! #14537000 0! #14537500 1! #14538000 0! #14538500 1! #14539000 0! #14539500 1! #14540000 0! #14540500 1! #14541000 0! #14541500 1! #14542000 0! #14542500 1! #14543000 0! #14543500 1! #14544000 0! #14544500 1! #14545000 0! #14545500 1! #14546000 0! #14546500 1! #14547000 0! #14547500 1! #14548000 0! #14548500 1! #14549000 0! #14549500 1! #14550000 0! #14550500 1! #14551000 0! #14551500 1! #14552000 0! #14552500 1! #14553000 0! #14553500 1! #14554000 0! #14554500 1! #14555000 0! #14555500 1! #14556000 0! #14556500 1! #14557000 0! #14557500 1! #14558000 0! #14558500 1! #14559000 0! #14559500 1! #14560000 0! #14560500 1! #14561000 0! #14561500 1! #14562000 0! #14562500 1! #14563000 0! #14563500 1! #14564000 0! #14564500 1! #14565000 0! #14565500 1! #14566000 0! #14566500 1! #14567000 0! #14567500 1! #14568000 0! #14568500 1! #14569000 0! #14569500 1! #14570000 0! #14570500 1! #14571000 0! #14571500 1! #14572000 0! #14572500 1! #14573000 0! #14573500 1! #14574000 0! #14574500 1! #14575000 0! #14575500 1! #14576000 0! #14576500 1! #14577000 0! #14577500 1! #14578000 0! #14578500 1! #14579000 0! #14579500 1! #14580000 0! #14580500 1! #14581000 0! #14581500 1! #14582000 0! #14582500 1! #14583000 0! #14583500 1! #14584000 0! #14584500 1! #14585000 0! #14585500 1! #14586000 0! #14586500 1! #14587000 0! #14587500 1! #14588000 0! #14588500 1! #14589000 0! #14589500 1! #14590000 0! #14590500 1! #14591000 0! #14591500 1! #14592000 0! #14592500 1! #14593000 0! #14593500 1! #14594000 0! #14594500 1! #14595000 0! #14595500 1! #14596000 0! #14596500 1! #14597000 0! #14597500 1! #14598000 0! #14598500 1! #14599000 0! #14599500 1! #14600000 0! #14600500 1! #14601000 0! #14601500 1! #14602000 0! #14602500 1! #14603000 0! #14603500 1! #14604000 0! #14604500 1! #14605000 0! #14605500 1! #14606000 0! #14606500 1! #14607000 0! #14607500 1! #14608000 0! #14608500 1! #14609000 0! #14609500 1! #14610000 0! #14610500 1! #14611000 0! #14611500 1! #14612000 0! #14612500 1! #14613000 0! #14613500 1! #14614000 0! #14614500 1! #14615000 0! #14615500 1! #14616000 0! #14616500 1! #14617000 0! #14617500 1! #14618000 0! #14618500 1! #14619000 0! #14619500 1! #14620000 0! #14620500 1! #14621000 0! #14621500 1! #14622000 0! #14622500 1! #14623000 0! #14623500 1! #14624000 0! #14624500 1! #14625000 0! #14625500 1! #14626000 0! #14626500 1! #14627000 0! #14627500 1! #14628000 0! #14628500 1! #14629000 0! #14629500 1! #14630000 0! #14630500 1! #14631000 0! #14631500 1! #14632000 0! #14632500 1! #14633000 0! #14633500 1! #14634000 0! #14634500 1! #14635000 0! #14635500 1! #14636000 0! #14636500 1! #14637000 0! #14637500 1! #14638000 0! #14638500 1! #14639000 0! #14639500 1! #14640000 0! #14640500 1! #14641000 0! #14641500 1! #14642000 0! #14642500 1! #14643000 0! #14643500 1! #14644000 0! #14644500 1! #14645000 0! #14645500 1! #14646000 0! #14646500 1! #14647000 0! #14647500 1! #14648000 0! #14648500 1! #14649000 0! #14649500 1! #14650000 0! #14650500 1! #14651000 0! #14651500 1! #14652000 0! #14652500 1! #14653000 0! #14653500 1! #14654000 0! #14654500 1! #14655000 0! #14655500 1! #14656000 0! #14656500 1! #14657000 0! #14657500 1! #14658000 0! #14658500 1! #14659000 0! #14659500 1! #14660000 0! #14660500 1! #14661000 0! #14661500 1! #14662000 0! #14662500 1! #14663000 0! #14663500 1! #14664000 0! #14664500 1! #14665000 0! #14665500 1! #14666000 0! #14666500 1! #14667000 0! #14667500 1! #14668000 0! #14668500 1! #14669000 0! #14669500 1! #14670000 0! #14670500 1! #14671000 0! #14671500 1! #14672000 0! #14672500 1! #14673000 0! #14673500 1! #14674000 0! #14674500 1! #14675000 0! #14675500 1! #14676000 0! #14676500 1! #14677000 0! #14677500 1! #14678000 0! #14678500 1! #14679000 0! #14679500 1! #14680000 0! #14680500 1! #14681000 0! #14681500 1! #14682000 0! #14682500 1! #14683000 0! #14683500 1! #14684000 0! #14684500 1! #14685000 0! #14685500 1! #14686000 0! #14686500 1! #14687000 0! #14687500 1! #14688000 0! #14688500 1! #14689000 0! #14689500 1! #14690000 0! #14690500 1! #14691000 0! #14691500 1! #14692000 0! #14692500 1! #14693000 0! #14693500 1! #14694000 0! #14694500 1! #14695000 0! #14695500 1! #14696000 0! #14696500 1! #14697000 0! #14697500 1! #14698000 0! #14698500 1! #14699000 0! #14699500 1! #14700000 0! #14700500 1! #14701000 0! #14701500 1! #14702000 0! #14702500 1! #14703000 0! #14703500 1! #14704000 0! #14704500 1! #14705000 0! #14705500 1! #14706000 0! #14706500 1! #14707000 0! #14707500 1! #14708000 0! #14708500 1! #14709000 0! #14709500 1! #14710000 0! #14710500 1! #14711000 0! #14711500 1! #14712000 0! #14712500 1! #14713000 0! #14713500 1! #14714000 0! #14714500 1! #14715000 0! #14715500 1! #14716000 0! #14716500 1! #14717000 0! #14717500 1! #14718000 0! #14718500 1! #14719000 0! #14719500 1! #14720000 0! #14720500 1! #14721000 0! #14721500 1! #14722000 0! #14722500 1! #14723000 0! #14723500 1! #14724000 0! #14724500 1! #14725000 0! #14725500 1! #14726000 0! #14726500 1! #14727000 0! #14727500 1! #14728000 0! #14728500 1! #14729000 0! #14729500 1! #14730000 0! #14730500 1! #14731000 0! #14731500 1! #14732000 0! #14732500 1! #14733000 0! #14733500 1! #14734000 0! #14734500 1! #14735000 0! #14735500 1! #14736000 0! #14736500 1! #14737000 0! #14737500 1! #14738000 0! #14738500 1! #14739000 0! #14739500 1! #14740000 0! #14740500 1! #14741000 0! #14741500 1! #14742000 0! #14742500 1! #14743000 0! #14743500 1! #14744000 0! #14744500 1! #14745000 0! #14745500 1! #14746000 0! #14746500 1! #14747000 0! #14747500 1! #14748000 0! #14748500 1! #14749000 0! #14749500 1! #14750000 0! #14750500 1! #14751000 0! #14751500 1! #14752000 0! #14752500 1! #14753000 0! #14753500 1! #14754000 0! #14754500 1! #14755000 0! #14755500 1! #14756000 0! #14756500 1! #14757000 0! #14757500 1! #14758000 0! #14758500 1! #14759000 0! #14759500 1! #14760000 0! #14760500 1! #14761000 0! #14761500 1! #14762000 0! #14762500 1! #14763000 0! #14763500 1! #14764000 0! #14764500 1! #14765000 0! #14765500 1! #14766000 0! #14766500 1! #14767000 0! #14767500 1! #14768000 0! #14768500 1! #14769000 0! #14769500 1! #14770000 0! #14770500 1! #14771000 0! #14771500 1! #14772000 0! #14772500 1! #14773000 0! #14773500 1! #14774000 0! #14774500 1! #14775000 0! #14775500 1! #14776000 0! #14776500 1! #14777000 0! #14777500 1! #14778000 0! #14778500 1! #14779000 0! #14779500 1! #14780000 0! #14780500 1! #14781000 0! #14781500 1! #14782000 0! #14782500 1! #14783000 0! #14783500 1! #14784000 0! #14784500 1! #14785000 0! #14785500 1! #14786000 0! #14786500 1! #14787000 0! #14787500 1! #14788000 0! #14788500 1! #14789000 0! #14789500 1! #14790000 0! #14790500 1! #14791000 0! #14791500 1! #14792000 0! #14792500 1! #14793000 0! #14793500 1! #14794000 0! #14794500 1! #14795000 0! #14795500 1! #14796000 0! #14796500 1! #14797000 0! #14797500 1! #14798000 0! #14798500 1! #14799000 0! #14799500 1! #14800000 0! #14800500 1! #14801000 0! #14801500 1! #14802000 0! #14802500 1! #14803000 0! #14803500 1! #14804000 0! #14804500 1! #14805000 0! #14805500 1! #14806000 0! #14806500 1! #14807000 0! #14807500 1! #14808000 0! #14808500 1! #14809000 0! #14809500 1! #14810000 0! #14810500 1! #14811000 0! #14811500 1! #14812000 0! #14812500 1! #14813000 0! #14813500 1! #14814000 0! #14814500 1! #14815000 0! #14815500 1! #14816000 0! #14816500 1! #14817000 0! #14817500 1! #14818000 0! #14818500 1! #14819000 0! #14819500 1! #14820000 0! #14820500 1! #14821000 0! #14821500 1! #14822000 0! #14822500 1! #14823000 0! #14823500 1! #14824000 0! #14824500 1! #14825000 0! #14825500 1! #14826000 0! #14826500 1! #14827000 0! #14827500 1! #14828000 0! #14828500 1! #14829000 0! #14829500 1! #14830000 0! #14830500 1! #14831000 0! #14831500 1! #14832000 0! #14832500 1! #14833000 0! #14833500 1! #14834000 0! #14834500 1! #14835000 0! #14835500 1! #14836000 0! #14836500 1! #14837000 0! #14837500 1! #14838000 0! #14838500 1! #14839000 0! #14839500 1! #14840000 0! #14840500 1! #14841000 0! #14841500 1! #14842000 0! #14842500 1! #14843000 0! #14843500 1! #14844000 0! #14844500 1! #14845000 0! #14845500 1! #14846000 0! #14846500 1! #14847000 0! #14847500 1! #14848000 0! #14848500 1! #14849000 0! #14849500 1! #14850000 0! #14850500 1! #14851000 0! #14851500 1! #14852000 0! #14852500 1! #14853000 0! #14853500 1! #14854000 0! #14854500 1! #14855000 0! #14855500 1! #14856000 0! #14856500 1! #14857000 0! #14857500 1! #14858000 0! #14858500 1! #14859000 0! #14859500 1! #14860000 0! #14860500 1! #14861000 0! #14861500 1! #14862000 0! #14862500 1! #14863000 0! #14863500 1! #14864000 0! #14864500 1! #14865000 0! #14865500 1! #14866000 0! #14866500 1! #14867000 0! #14867500 1! #14868000 0! #14868500 1! #14869000 0! #14869500 1! #14870000 0! #14870500 1! #14871000 0! #14871500 1! #14872000 0! #14872500 1! #14873000 0! #14873500 1! #14874000 0! #14874500 1! #14875000 0! #14875500 1! #14876000 0! #14876500 1! #14877000 0! #14877500 1! #14878000 0! #14878500 1! #14879000 0! #14879500 1! #14880000 0! #14880500 1! #14881000 0! #14881500 1! #14882000 0! #14882500 1! #14883000 0! #14883500 1! #14884000 0! #14884500 1! #14885000 0! #14885500 1! #14886000 0! #14886500 1! #14887000 0! #14887500 1! #14888000 0! #14888500 1! #14889000 0! #14889500 1! #14890000 0! #14890500 1! #14891000 0! #14891500 1! #14892000 0! #14892500 1! #14893000 0! #14893500 1! #14894000 0! #14894500 1! #14895000 0! #14895500 1! #14896000 0! #14896500 1! #14897000 0! #14897500 1! #14898000 0! #14898500 1! #14899000 0! #14899500 1! #14900000 0! #14900500 1! #14901000 0! #14901500 1! #14902000 0! #14902500 1! #14903000 0! #14903500 1! #14904000 0! #14904500 1! #14905000 0! #14905500 1! #14906000 0! #14906500 1! #14907000 0! #14907500 1! #14908000 0! #14908500 1! #14909000 0! #14909500 1! #14910000 0! #14910500 1! #14911000 0! #14911500 1! #14912000 0! #14912500 1! #14913000 0! #14913500 1! #14914000 0! #14914500 1! #14915000 0! #14915500 1! #14916000 0! #14916500 1! #14917000 0! #14917500 1! #14918000 0! #14918500 1! #14919000 0! #14919500 1! #14920000 0! #14920500 1! #14921000 0! #14921500 1! #14922000 0! #14922500 1! #14923000 0! #14923500 1! #14924000 0! #14924500 1! #14925000 0! #14925500 1! #14926000 0! #14926500 1! #14927000 0! #14927500 1! #14928000 0! #14928500 1! #14929000 0! #14929500 1! #14930000 0! #14930500 1! #14931000 0! #14931500 1! #14932000 0! #14932500 1! #14933000 0! #14933500 1! #14934000 0! #14934500 1! #14935000 0! #14935500 1! #14936000 0! #14936500 1! #14937000 0! #14937500 1! #14938000 0! #14938500 1! #14939000 0! #14939500 1! #14940000 0! #14940500 1! #14941000 0! #14941500 1! #14942000 0! #14942500 1! #14943000 0! #14943500 1! #14944000 0! #14944500 1! #14945000 0! #14945500 1! #14946000 0! #14946500 1! #14947000 0! #14947500 1! #14948000 0! #14948500 1! #14949000 0! #14949500 1! #14950000 0! #14950500 1! #14951000 0! #14951500 1! #14952000 0! #14952500 1! #14953000 0! #14953500 1! #14954000 0! #14954500 1! #14955000 0! #14955500 1! #14956000 0! #14956500 1! #14957000 0! #14957500 1! #14958000 0! #14958500 1! #14959000 0! #14959500 1! #14960000 0! #14960500 1! #14961000 0! #14961500 1! #14962000 0! #14962500 1! #14963000 0! #14963500 1! #14964000 0! #14964500 1! #14965000 0! #14965500 1! #14966000 0! #14966500 1! #14967000 0! #14967500 1! #14968000 0! #14968500 1! #14969000 0! #14969500 1! #14970000 0! #14970500 1! #14971000 0! #14971500 1! #14972000 0! #14972500 1! #14973000 0! #14973500 1! #14974000 0! #14974500 1! #14975000 0! #14975500 1! #14976000 0! #14976500 1! #14977000 0! #14977500 1! #14978000 0! #14978500 1! #14979000 0! #14979500 1! #14980000 0! #14980500 1! #14981000 0! #14981500 1! #14982000 0! #14982500 1! #14983000 0! #14983500 1! #14984000 0! #14984500 1! #14985000 0! #14985500 1! #14986000 0! #14986500 1! #14987000 0! #14987500 1! #14988000 0! #14988500 1! #14989000 0! #14989500 1! #14990000 0! #14990500 1! #14991000 0! #14991500 1! #14992000 0! #14992500 1! #14993000 0! #14993500 1! #14994000 0! #14994500 1! #14995000 0! #14995500 1! #14996000 0! #14996500 1! #14997000 0! #14997500 1! #14998000 0! #14998500 1! #14999000 0! #14999500 1! #15000000 0! #15000500 1! #15001000 0! #15001500 1! #15002000 0! #15002500 1! #15003000 0! #15003500 1! #15004000 0! #15004500 1! #15005000 0! #15005500 1! #15006000 0! #15006500 1! #15007000 0! #15007500 1! #15008000 0! #15008500 1! #15009000 0! #15009500 1! #15010000 0! #15010500 1! #15011000 0! #15011500 1! #15012000 0! #15012500 1! #15013000 0! #15013500 1! #15014000 0! #15014500 1! #15015000 0! #15015500 1! #15016000 0! #15016500 1! #15017000 0! #15017500 1! #15018000 0! #15018500 1! #15019000 0! #15019500 1! #15020000 0! #15020500 1! #15021000 0! #15021500 1! #15022000 0! #15022500 1! #15023000 0! #15023500 1! #15024000 0! #15024500 1! #15025000 0! #15025500 1! #15026000 0! #15026500 1! #15027000 0! #15027500 1! #15028000 0! #15028500 1! #15029000 0! #15029500 1! #15030000 0! #15030500 1! #15031000 0! #15031500 1! #15032000 0! #15032500 1! #15033000 0! #15033500 1! #15034000 0! #15034500 1! #15035000 0! #15035500 1! #15036000 0! #15036500 1! #15037000 0! #15037500 1! #15038000 0! #15038500 1! #15039000 0! #15039500 1! #15040000 0! #15040500 1! #15041000 0! #15041500 1! #15042000 0! #15042500 1! #15043000 0! #15043500 1! #15044000 0! #15044500 1! #15045000 0! #15045500 1! #15046000 0! #15046500 1! #15047000 0! #15047500 1! #15048000 0! #15048500 1! #15049000 0! #15049500 1! #15050000 0! #15050500 1! #15051000 0! #15051500 1! #15052000 0! #15052500 1! #15053000 0! #15053500 1! #15054000 0! #15054500 1! #15055000 0! #15055500 1! #15056000 0! #15056500 1! #15057000 0! #15057500 1! #15058000 0! #15058500 1! #15059000 0! #15059500 1! #15060000 0! #15060500 1! #15061000 0! #15061500 1! #15062000 0! #15062500 1! #15063000 0! #15063500 1! #15064000 0! #15064500 1! #15065000 0! #15065500 1! #15066000 0! #15066500 1! #15067000 0! #15067500 1! #15068000 0! #15068500 1! #15069000 0! #15069500 1! #15070000 0! #15070500 1! #15071000 0! #15071500 1! #15072000 0! #15072500 1! #15073000 0! #15073500 1! #15074000 0! #15074500 1! #15075000 0! #15075500 1! #15076000 0! #15076500 1! #15077000 0! #15077500 1! #15078000 0! #15078500 1! #15079000 0! #15079500 1! #15080000 0! #15080500 1! #15081000 0! #15081500 1! #15082000 0! #15082500 1! #15083000 0! #15083500 1! #15084000 0! #15084500 1! #15085000 0! #15085500 1! #15086000 0! #15086500 1! #15087000 0! #15087500 1! #15088000 0! #15088500 1! #15089000 0! #15089500 1! #15090000 0! #15090500 1! #15091000 0! #15091500 1! #15092000 0! #15092500 1! #15093000 0! #15093500 1! #15094000 0! #15094500 1! #15095000 0! #15095500 1! #15096000 0! #15096500 1! #15097000 0! #15097500 1! #15098000 0! #15098500 1! #15099000 0! #15099500 1! #15100000 0! #15100500 1! #15101000 0! #15101500 1! #15102000 0! #15102500 1! #15103000 0! #15103500 1! #15104000 0! #15104500 1! #15105000 0! #15105500 1! #15106000 0! #15106500 1! #15107000 0! #15107500 1! #15108000 0! #15108500 1! #15109000 0! #15109500 1! #15110000 0! #15110500 1! #15111000 0! #15111500 1! #15112000 0! #15112500 1! #15113000 0! #15113500 1! #15114000 0! #15114500 1! #15115000 0! #15115500 1! #15116000 0! #15116500 1! #15117000 0! #15117500 1! #15118000 0! #15118500 1! #15119000 0! #15119500 1! #15120000 0! #15120500 1! #15121000 0! #15121500 1! #15122000 0! #15122500 1! #15123000 0! #15123500 1! #15124000 0! #15124500 1! #15125000 0! #15125500 1! #15126000 0! #15126500 1! #15127000 0! #15127500 1! #15128000 0! #15128500 1! #15129000 0! #15129500 1! #15130000 0! #15130500 1! #15131000 0! #15131500 1! #15132000 0! #15132500 1! #15133000 0! #15133500 1! #15134000 0! #15134500 1! #15135000 0! #15135500 1! #15136000 0! #15136500 1! #15137000 0! #15137500 1! #15138000 0! #15138500 1! #15139000 0! #15139500 1! #15140000 0! #15140500 1! #15141000 0! #15141500 1! #15142000 0! #15142500 1! #15143000 0! #15143500 1! #15144000 0! #15144500 1! #15145000 0! #15145500 1! #15146000 0! #15146500 1! #15147000 0! #15147500 1! #15148000 0! #15148500 1! #15149000 0! #15149500 1! #15150000 0! #15150500 1! #15151000 0! #15151500 1! #15152000 0! #15152500 1! #15153000 0! #15153500 1! #15154000 0! #15154500 1! #15155000 0! #15155500 1! #15156000 0! #15156500 1! #15157000 0! #15157500 1! #15158000 0! #15158500 1! #15159000 0! #15159500 1! #15160000 0! #15160500 1! #15161000 0! #15161500 1! #15162000 0! #15162500 1! #15163000 0! #15163500 1! #15164000 0! #15164500 1! #15165000 0! #15165500 1! #15166000 0! #15166500 1! #15167000 0! #15167500 1! #15168000 0! #15168500 1! #15169000 0! #15169500 1! #15170000 0! #15170500 1! #15171000 0! #15171500 1! #15172000 0! #15172500 1! #15173000 0! #15173500 1! #15174000 0! #15174500 1! #15175000 0! #15175500 1! #15176000 0! #15176500 1! #15177000 0! #15177500 1! #15178000 0! #15178500 1! #15179000 0! #15179500 1! #15180000 0! #15180500 1! #15181000 0! #15181500 1! #15182000 0! #15182500 1! #15183000 0! #15183500 1! #15184000 0! #15184500 1! #15185000 0! #15185500 1! #15186000 0! #15186500 1! #15187000 0! #15187500 1! #15188000 0! #15188500 1! #15189000 0! #15189500 1! #15190000 0! #15190500 1! #15191000 0! #15191500 1! #15192000 0! #15192500 1! #15193000 0! #15193500 1! #15194000 0! #15194500 1! #15195000 0! #15195500 1! #15196000 0! #15196500 1! #15197000 0! #15197500 1! #15198000 0! #15198500 1! #15199000 0! #15199500 1! #15200000 0! #15200500 1! #15201000 0! #15201500 1! #15202000 0! #15202500 1! #15203000 0! #15203500 1! #15204000 0! #15204500 1! #15205000 0! #15205500 1! #15206000 0! #15206500 1! #15207000 0! #15207500 1! #15208000 0! #15208500 1! #15209000 0! #15209500 1! #15210000 0! #15210500 1! #15211000 0! #15211500 1! #15212000 0! #15212500 1! #15213000 0! #15213500 1! #15214000 0! #15214500 1! #15215000 0! #15215500 1! #15216000 0! #15216500 1! #15217000 0! #15217500 1! #15218000 0! #15218500 1! #15219000 0! #15219500 1! #15220000 0! #15220500 1! #15221000 0! #15221500 1! #15222000 0! #15222500 1! #15223000 0! #15223500 1! #15224000 0! #15224500 1! #15225000 0! #15225500 1! #15226000 0! #15226500 1! #15227000 0! #15227500 1! #15228000 0! #15228500 1! #15229000 0! #15229500 1! #15230000 0! #15230500 1! #15231000 0! #15231500 1! #15232000 0! #15232500 1! #15233000 0! #15233500 1! #15234000 0! #15234500 1! #15235000 0! #15235500 1! #15236000 0! #15236500 1! #15237000 0! #15237500 1! #15238000 0! #15238500 1! #15239000 0! #15239500 1! #15240000 0! #15240500 1! #15241000 0! #15241500 1! #15242000 0! #15242500 1! #15243000 0! #15243500 1! #15244000 0! #15244500 1! #15245000 0! #15245500 1! #15246000 0! #15246500 1! #15247000 0! #15247500 1! #15248000 0! #15248500 1! #15249000 0! #15249500 1! #15250000 0! #15250500 1! #15251000 0! #15251500 1! #15252000 0! #15252500 1! #15253000 0! #15253500 1! #15254000 0! #15254500 1! #15255000 0! #15255500 1! #15256000 0! #15256500 1! #15257000 0! #15257500 1! #15258000 0! #15258500 1! #15259000 0! #15259500 1! #15260000 0! #15260500 1! #15261000 0! #15261500 1! #15262000 0! #15262500 1! #15263000 0! #15263500 1! #15264000 0! #15264500 1! #15265000 0! #15265500 1! #15266000 0! #15266500 1! #15267000 0! #15267500 1! #15268000 0! #15268500 1! #15269000 0! #15269500 1! #15270000 0! #15270500 1! #15271000 0! #15271500 1! #15272000 0! #15272500 1! #15273000 0! #15273500 1! #15274000 0! #15274500 1! #15275000 0! #15275500 1! #15276000 0! #15276500 1! #15277000 0! #15277500 1! #15278000 0! #15278500 1! #15279000 0! #15279500 1! #15280000 0! #15280500 1! #15281000 0! #15281500 1! #15282000 0! #15282500 1! #15283000 0! #15283500 1! #15284000 0! #15284500 1! #15285000 0! #15285500 1! #15286000 0! #15286500 1! #15287000 0! #15287500 1! #15288000 0! #15288500 1! #15289000 0! #15289500 1! #15290000 0! #15290500 1! #15291000 0! #15291500 1! #15292000 0! #15292500 1! #15293000 0! #15293500 1! #15294000 0! #15294500 1! #15295000 0! #15295500 1! #15296000 0! #15296500 1! #15297000 0! #15297500 1! #15298000 0! #15298500 1! #15299000 0! #15299500 1! #15300000 0! #15300500 1! #15301000 0! #15301500 1! #15302000 0! #15302500 1! #15303000 0! #15303500 1! #15304000 0! #15304500 1! #15305000 0! #15305500 1! #15306000 0! #15306500 1! #15307000 0! #15307500 1! #15308000 0! #15308500 1! #15309000 0! #15309500 1! #15310000 0! #15310500 1! #15311000 0! #15311500 1! #15312000 0! #15312500 1! #15313000 0! #15313500 1! #15314000 0! #15314500 1! #15315000 0! #15315500 1! #15316000 0! #15316500 1! #15317000 0! #15317500 1! #15318000 0! #15318500 1! #15319000 0! #15319500 1! #15320000 0! #15320500 1! #15321000 0! #15321500 1! #15322000 0! #15322500 1! #15323000 0! #15323500 1! #15324000 0! #15324500 1! #15325000 0! #15325500 1! #15326000 0! #15326500 1! #15327000 0! #15327500 1! #15328000 0! #15328500 1! #15329000 0! #15329500 1! #15330000 0! #15330500 1! #15331000 0! #15331500 1! #15332000 0! #15332500 1! #15333000 0! #15333500 1! #15334000 0! #15334500 1! #15335000 0! #15335500 1! #15336000 0! #15336500 1! #15337000 0! #15337500 1! #15338000 0! #15338500 1! #15339000 0! #15339500 1! #15340000 0! #15340500 1! #15341000 0! #15341500 1! #15342000 0! #15342500 1! #15343000 0! #15343500 1! #15344000 0! #15344500 1! #15345000 0! #15345500 1! #15346000 0! #15346500 1! #15347000 0! #15347500 1! #15348000 0! #15348500 1! #15349000 0! #15349500 1! #15350000 0! #15350500 1! #15351000 0! #15351500 1! #15352000 0! #15352500 1! #15353000 0! #15353500 1! #15354000 0! #15354500 1! #15355000 0! #15355500 1! #15356000 0! #15356500 1! #15357000 0! #15357500 1! #15358000 0! #15358500 1! #15359000 0! #15359500 1! #15360000 0! #15360500 1! #15361000 0! #15361500 1! #15362000 0! #15362500 1! #15363000 0! #15363500 1! #15364000 0! #15364500 1! #15365000 0! #15365500 1! #15366000 0! #15366500 1! #15367000 0! #15367500 1! #15368000 0! #15368500 1! #15369000 0! #15369500 1! #15370000 0! #15370500 1! #15371000 0! #15371500 1! #15372000 0! #15372500 1! #15373000 0! #15373500 1! #15374000 0! #15374500 1! #15375000 0! #15375500 1! #15376000 0! #15376500 1! #15377000 0! #15377500 1! #15378000 0! #15378500 1! #15379000 0! #15379500 1! #15380000 0! #15380500 1! #15381000 0! #15381500 1! #15382000 0! #15382500 1! #15383000 0! #15383500 1! #15384000 0! #15384500 1! #15385000 0! #15385500 1! #15386000 0! #15386500 1! #15387000 0! #15387500 1! #15388000 0! #15388500 1! #15389000 0! #15389500 1! #15390000 0! #15390500 1! #15391000 0! #15391500 1! #15392000 0! #15392500 1! #15393000 0! #15393500 1! #15394000 0! #15394500 1! #15395000 0! #15395500 1! #15396000 0! #15396500 1! #15397000 0! #15397500 1! #15398000 0! #15398500 1! #15399000 0! #15399500 1! #15400000 0! #15400500 1! #15401000 0! #15401500 1! #15402000 0! #15402500 1! #15403000 0! #15403500 1! #15404000 0! #15404500 1! #15405000 0! #15405500 1! #15406000 0! #15406500 1! #15407000 0! #15407500 1! #15408000 0! #15408500 1! #15409000 0! #15409500 1! #15410000 0! #15410500 1! #15411000 0! #15411500 1! #15412000 0! #15412500 1! #15413000 0! #15413500 1! #15414000 0! #15414500 1! #15415000 0! #15415500 1! #15416000 0! #15416500 1! #15417000 0! #15417500 1! #15418000 0! #15418500 1! #15419000 0! #15419500 1! #15420000 0! #15420500 1! #15421000 0! #15421500 1! #15422000 0! #15422500 1! #15423000 0! #15423500 1! #15424000 0! #15424500 1! #15425000 0! #15425500 1! #15426000 0! #15426500 1! #15427000 0! #15427500 1! #15428000 0! #15428500 1! #15429000 0! #15429500 1! #15430000 0! #15430500 1! #15431000 0! #15431500 1! #15432000 0! #15432500 1! #15433000 0! #15433500 1! #15434000 0! #15434500 1! #15435000 0! #15435500 1! #15436000 0! #15436500 1! #15437000 0! #15437500 1! #15438000 0! #15438500 1! #15439000 0! #15439500 1! #15440000 0! #15440500 1! #15441000 0! #15441500 1! #15442000 0! #15442500 1! #15443000 0! #15443500 1! #15444000 0! #15444500 1! #15445000 0! #15445500 1! #15446000 0! #15446500 1! #15447000 0! #15447500 1! #15448000 0! #15448500 1! #15449000 0! #15449500 1! #15450000 0! #15450500 1! #15451000 0! #15451500 1! #15452000 0! #15452500 1! #15453000 0! #15453500 1! #15454000 0! #15454500 1! #15455000 0! #15455500 1! #15456000 0! #15456500 1! #15457000 0! #15457500 1! #15458000 0! #15458500 1! #15459000 0! #15459500 1! #15460000 0! #15460500 1! #15461000 0! #15461500 1! #15462000 0! #15462500 1! #15463000 0! #15463500 1! #15464000 0! #15464500 1! #15465000 0! #15465500 1! #15466000 0! #15466500 1! #15467000 0! #15467500 1! #15468000 0! #15468500 1! #15469000 0! #15469500 1! #15470000 0! #15470500 1! #15471000 0! #15471500 1! #15472000 0! #15472500 1! #15473000 0! #15473500 1! #15474000 0! #15474500 1! #15475000 0! #15475500 1! #15476000 0! #15476500 1! #15477000 0! #15477500 1! #15478000 0! #15478500 1! #15479000 0! #15479500 1! #15480000 0! #15480500 1! #15481000 0! #15481500 1! #15482000 0! #15482500 1! #15483000 0! #15483500 1! #15484000 0! #15484500 1! #15485000 0! #15485500 1! #15486000 0! #15486500 1! #15487000 0! #15487500 1! #15488000 0! #15488500 1! #15489000 0! #15489500 1! #15490000 0! #15490500 1! #15491000 0! #15491500 1! #15492000 0! #15492500 1! #15493000 0! #15493500 1! #15494000 0! #15494500 1! #15495000 0! #15495500 1! #15496000 0! #15496500 1! #15497000 0! #15497500 1! #15498000 0! #15498500 1! #15499000 0! #15499500 1! #15500000 0! #15500500 1! #15501000 0! #15501500 1! #15502000 0! #15502500 1! #15503000 0! #15503500 1! #15504000 0! #15504500 1! #15505000 0! #15505500 1! #15506000 0! #15506500 1! #15507000 0! #15507500 1! #15508000 0! #15508500 1! #15509000 0! #15509500 1! #15510000 0! #15510500 1! #15511000 0! #15511500 1! #15512000 0! #15512500 1! #15513000 0! #15513500 1! #15514000 0! #15514500 1! #15515000 0! #15515500 1! #15516000 0! #15516500 1! #15517000 0! #15517500 1! #15518000 0! #15518500 1! #15519000 0! #15519500 1! #15520000 0! #15520500 1! #15521000 0! #15521500 1! #15522000 0! #15522500 1! #15523000 0! #15523500 1! #15524000 0! #15524500 1! #15525000 0! #15525500 1! #15526000 0! #15526500 1! #15527000 0! #15527500 1! #15528000 0! #15528500 1! #15529000 0! #15529500 1! #15530000 0! #15530500 1! #15531000 0! #15531500 1! #15532000 0! #15532500 1! #15533000 0! #15533500 1! #15534000 0! #15534500 1! #15535000 0! #15535500 1! #15536000 0! #15536500 1! #15537000 0! #15537500 1! #15538000 0! #15538500 1! #15539000 0! #15539500 1! #15540000 0! #15540500 1! #15541000 0! #15541500 1! #15542000 0! #15542500 1! #15543000 0! #15543500 1! #15544000 0! #15544500 1! #15545000 0! #15545500 1! #15546000 0! #15546500 1! #15547000 0! #15547500 1! #15548000 0! #15548500 1! #15549000 0! #15549500 1! #15550000 0! #15550500 1! #15551000 0! #15551500 1! #15552000 0! #15552500 1! #15553000 0! #15553500 1! #15554000 0! #15554500 1! #15555000 0! #15555500 1! #15556000 0! #15556500 1! #15557000 0! #15557500 1! #15558000 0! #15558500 1! #15559000 0! #15559500 1! #15560000 0! #15560500 1! #15561000 0! #15561500 1! #15562000 0! #15562500 1! #15563000 0! #15563500 1! #15564000 0! #15564500 1! #15565000 0! #15565500 1! #15566000 0! #15566500 1! #15567000 0! #15567500 1! #15568000 0! #15568500 1! #15569000 0! #15569500 1! #15570000 0! #15570500 1! #15571000 0! #15571500 1! #15572000 0! #15572500 1! #15573000 0! #15573500 1! #15574000 0! #15574500 1! #15575000 0! #15575500 1! #15576000 0! #15576500 1! #15577000 0! #15577500 1! #15578000 0! #15578500 1! #15579000 0! #15579500 1! #15580000 0! #15580500 1! #15581000 0! #15581500 1! #15582000 0! #15582500 1! #15583000 0! #15583500 1! #15584000 0! #15584500 1! #15585000 0! #15585500 1! #15586000 0! #15586500 1! #15587000 0! #15587500 1! #15588000 0! #15588500 1! #15589000 0! #15589500 1! #15590000 0! #15590500 1! #15591000 0! #15591500 1! #15592000 0! #15592500 1! #15593000 0! #15593500 1! #15594000 0! #15594500 1! #15595000 0! #15595500 1! #15596000 0! #15596500 1! #15597000 0! #15597500 1! #15598000 0! #15598500 1! #15599000 0! #15599500 1! #15600000 0! #15600500 1! #15601000 0! #15601500 1! #15602000 0! #15602500 1! #15603000 0! #15603500 1! #15604000 0! #15604500 1! #15605000 0! #15605500 1! #15606000 0! #15606500 1! #15607000 0! #15607500 1! #15608000 0! #15608500 1! #15609000 0! #15609500 1! #15610000 0! #15610500 1! #15611000 0! #15611500 1! #15612000 0! #15612500 1! #15613000 0! #15613500 1! #15614000 0! #15614500 1! #15615000 0! #15615500 1! #15616000 0! #15616500 1! #15617000 0! #15617500 1! #15618000 0! #15618500 1! #15619000 0! #15619500 1! #15620000 0! #15620500 1! #15621000 0! #15621500 1! #15622000 0! #15622500 1! #15623000 0! #15623500 1! #15624000 0! #15624500 1! #15625000 0! #15625500 1! #15626000 0! #15626500 1! #15627000 0! #15627500 1! #15628000 0! #15628500 1! #15629000 0! #15629500 1! #15630000 0! #15630500 1! #15631000 0! #15631500 1! #15632000 0! #15632500 1! #15633000 0! #15633500 1! #15634000 0! #15634500 1! #15635000 0! #15635500 1! #15636000 0! #15636500 1! #15637000 0! #15637500 1! #15638000 0! #15638500 1! #15639000 0! #15639500 1! #15640000 0! #15640500 1! #15641000 0! #15641500 1! #15642000 0! #15642500 1! #15643000 0! #15643500 1! #15644000 0! #15644500 1! #15645000 0! #15645500 1! #15646000 0! #15646500 1! #15647000 0! #15647500 1! #15648000 0! #15648500 1! #15649000 0! #15649500 1! #15650000 0! #15650500 1! #15651000 0! #15651500 1! #15652000 0! #15652500 1! #15653000 0! #15653500 1! #15654000 0! #15654500 1! #15655000 0! #15655500 1! #15656000 0! #15656500 1! #15657000 0! #15657500 1! #15658000 0! #15658500 1! #15659000 0! #15659500 1! #15660000 0! #15660500 1! #15661000 0! #15661500 1! #15662000 0! #15662500 1! #15663000 0! #15663500 1! #15664000 0! #15664500 1! #15665000 0! #15665500 1! #15666000 0! #15666500 1! #15667000 0! #15667500 1! #15668000 0! #15668500 1! #15669000 0! #15669500 1! #15670000 0! #15670500 1! #15671000 0! #15671500 1! #15672000 0! #15672500 1! #15673000 0! #15673500 1! #15674000 0! #15674500 1! #15675000 0! #15675500 1! #15676000 0! #15676500 1! #15677000 0! #15677500 1! #15678000 0! #15678500 1! #15679000 0! #15679500 1! #15680000 0! #15680500 1! #15681000 0! #15681500 1! #15682000 0! #15682500 1! #15683000 0! #15683500 1! #15684000 0! #15684500 1! #15685000 0! #15685500 1! #15686000 0! #15686500 1! #15687000 0! #15687500 1! #15688000 0! #15688500 1! #15689000 0! #15689500 1! #15690000 0! #15690500 1! #15691000 0! #15691500 1! #15692000 0! #15692500 1! #15693000 0! #15693500 1! #15694000 0! #15694500 1! #15695000 0! #15695500 1! #15696000 0! #15696500 1! #15697000 0! #15697500 1! #15698000 0! #15698500 1! #15699000 0! #15699500 1! #15700000 0! #15700500 1! #15701000 0! #15701500 1! #15702000 0! #15702500 1! #15703000 0! #15703500 1! #15704000 0! #15704500 1! #15705000 0! #15705500 1! #15706000 0! #15706500 1! #15707000 0! #15707500 1! #15708000 0! #15708500 1! #15709000 0! #15709500 1! #15710000 0! #15710500 1! #15711000 0! #15711500 1! #15712000 0! #15712500 1! #15713000 0! #15713500 1! #15714000 0! #15714500 1! #15715000 0! #15715500 1! #15716000 0! #15716500 1! #15717000 0! #15717500 1! #15718000 0! #15718500 1! #15719000 0! #15719500 1! #15720000 0! #15720500 1! #15721000 0! #15721500 1! #15722000 0! #15722500 1! #15723000 0! #15723500 1! #15724000 0! #15724500 1! #15725000 0! #15725500 1! #15726000 0! #15726500 1! #15727000 0! #15727500 1! #15728000 0! #15728500 1! #15729000 0! #15729500 1! #15730000 0! #15730500 1! #15731000 0! #15731500 1! #15732000 0! #15732500 1! #15733000 0! #15733500 1! #15734000 0! #15734500 1! #15735000 0! #15735500 1! #15736000 0! #15736500 1! #15737000 0! #15737500 1! #15738000 0! #15738500 1! #15739000 0! #15739500 1! #15740000 0! #15740500 1! #15741000 0! #15741500 1! #15742000 0! #15742500 1! #15743000 0! #15743500 1! #15744000 0! #15744500 1! #15745000 0! #15745500 1! #15746000 0! #15746500 1! #15747000 0! #15747500 1! #15748000 0! #15748500 1! #15749000 0! #15749500 1! #15750000 0! #15750500 1! #15751000 0! #15751500 1! #15752000 0! #15752500 1! #15753000 0! #15753500 1! #15754000 0! #15754500 1! #15755000 0! #15755500 1! #15756000 0! #15756500 1! #15757000 0! #15757500 1! #15758000 0! #15758500 1! #15759000 0! #15759500 1! #15760000 0! #15760500 1! #15761000 0! #15761500 1! #15762000 0! #15762500 1! #15763000 0! #15763500 1! #15764000 0! #15764500 1! #15765000 0! #15765500 1! #15766000 0! #15766500 1! #15767000 0! #15767500 1! #15768000 0! #15768500 1! #15769000 0! #15769500 1! #15770000 0! #15770500 1! #15771000 0! #15771500 1! #15772000 0! #15772500 1! #15773000 0! #15773500 1! #15774000 0! #15774500 1! #15775000 0! #15775500 1! #15776000 0! #15776500 1! #15777000 0! #15777500 1! #15778000 0! #15778500 1! #15779000 0! #15779500 1! #15780000 0! #15780500 1! #15781000 0! #15781500 1! #15782000 0! #15782500 1! #15783000 0! #15783500 1! #15784000 0! #15784500 1! #15785000 0! #15785500 1! #15786000 0! #15786500 1! #15787000 0! #15787500 1! #15788000 0! #15788500 1! #15789000 0! #15789500 1! #15790000 0! #15790500 1! #15791000 0! #15791500 1! #15792000 0! #15792500 1! #15793000 0! #15793500 1! #15794000 0! #15794500 1! #15795000 0! #15795500 1! #15796000 0! #15796500 1! #15797000 0! #15797500 1! #15798000 0! #15798500 1! #15799000 0! #15799500 1! #15800000 0! #15800500 1! #15801000 0! #15801500 1! #15802000 0! #15802500 1! #15803000 0! #15803500 1! #15804000 0! #15804500 1! #15805000 0! #15805500 1! #15806000 0! #15806500 1! #15807000 0! #15807500 1! #15808000 0! #15808500 1! #15809000 0! #15809500 1! #15810000 0! #15810500 1! #15811000 0! #15811500 1! #15812000 0! #15812500 1! #15813000 0! #15813500 1! #15814000 0! #15814500 1! #15815000 0! #15815500 1! #15816000 0! #15816500 1! #15817000 0! #15817500 1! #15818000 0! #15818500 1! #15819000 0! #15819500 1! #15820000 0! #15820500 1! #15821000 0! #15821500 1! #15822000 0! #15822500 1! #15823000 0! #15823500 1! #15824000 0! #15824500 1! #15825000 0! #15825500 1! #15826000 0! #15826500 1! #15827000 0! #15827500 1! #15828000 0! #15828500 1! #15829000 0! #15829500 1! #15830000 0! #15830500 1! #15831000 0! #15831500 1! #15832000 0! #15832500 1! #15833000 0! #15833500 1! #15834000 0! #15834500 1! #15835000 0! #15835500 1! #15836000 0! #15836500 1! #15837000 0! #15837500 1! #15838000 0! #15838500 1! #15839000 0! #15839500 1! #15840000 0! #15840500 1! #15841000 0! #15841500 1! #15842000 0! #15842500 1! #15843000 0! #15843500 1! #15844000 0! #15844500 1! #15845000 0! #15845500 1! #15846000 0! #15846500 1! #15847000 0! #15847500 1! #15848000 0! #15848500 1! #15849000 0! #15849500 1! #15850000 0! #15850500 1! #15851000 0! #15851500 1! #15852000 0! #15852500 1! #15853000 0! #15853500 1! #15854000 0! #15854500 1! #15855000 0! #15855500 1! #15856000 0! #15856500 1! #15857000 0! #15857500 1! #15858000 0! #15858500 1! #15859000 0! #15859500 1! #15860000 0! #15860500 1! #15861000 0! #15861500 1! #15862000 0! #15862500 1! #15863000 0! #15863500 1! #15864000 0! #15864500 1! #15865000 0! #15865500 1! #15866000 0! #15866500 1! #15867000 0! #15867500 1! #15868000 0! #15868500 1! #15869000 0! #15869500 1! #15870000 0! #15870500 1! #15871000 0! #15871500 1! #15872000 0! #15872500 1! #15873000 0! #15873500 1! #15874000 0! #15874500 1! #15875000 0! #15875500 1! #15876000 0! #15876500 1! #15877000 0! #15877500 1! #15878000 0! #15878500 1! #15879000 0! #15879500 1! #15880000 0! #15880500 1! #15881000 0! #15881500 1! #15882000 0! #15882500 1! #15883000 0! #15883500 1! #15884000 0! #15884500 1! #15885000 0! #15885500 1! #15886000 0! #15886500 1! #15887000 0! #15887500 1! #15888000 0! #15888500 1! #15889000 0! #15889500 1! #15890000 0! #15890500 1! #15891000 0! #15891500 1! #15892000 0! #15892500 1! #15893000 0! #15893500 1! #15894000 0! #15894500 1! #15895000 0! #15895500 1! #15896000 0! #15896500 1! #15897000 0! #15897500 1! #15898000 0! #15898500 1! #15899000 0! #15899500 1! #15900000 0! #15900500 1! #15901000 0! #15901500 1! #15902000 0! #15902500 1! #15903000 0! #15903500 1! #15904000 0! #15904500 1! #15905000 0! #15905500 1! #15906000 0! #15906500 1! #15907000 0! #15907500 1! #15908000 0! #15908500 1! #15909000 0! #15909500 1! #15910000 0! #15910500 1! #15911000 0! #15911500 1! #15912000 0! #15912500 1! #15913000 0! #15913500 1! #15914000 0! #15914500 1! #15915000 0! #15915500 1! #15916000 0! #15916500 1! #15917000 0! #15917500 1! #15918000 0! #15918500 1! #15919000 0! #15919500 1! #15920000 0! #15920500 1! #15921000 0! #15921500 1! #15922000 0! #15922500 1! #15923000 0! #15923500 1! #15924000 0! #15924500 1! #15925000 0! #15925500 1! #15926000 0! #15926500 1! #15927000 0! #15927500 1! #15928000 0! #15928500 1! #15929000 0! #15929500 1! #15930000 0! #15930500 1! #15931000 0! #15931500 1! #15932000 0! #15932500 1! #15933000 0! #15933500 1! #15934000 0! #15934500 1! #15935000 0! #15935500 1! #15936000 0! #15936500 1! #15937000 0! #15937500 1! #15938000 0! #15938500 1! #15939000 0! #15939500 1! #15940000 0! #15940500 1! #15941000 0! #15941500 1! #15942000 0! #15942500 1! #15943000 0! #15943500 1! #15944000 0! #15944500 1! #15945000 0! #15945500 1! #15946000 0! #15946500 1! #15947000 0! #15947500 1! #15948000 0! #15948500 1! #15949000 0! #15949500 1! #15950000 0! #15950500 1! #15951000 0! #15951500 1! #15952000 0! #15952500 1! #15953000 0! #15953500 1! #15954000 0! #15954500 1! #15955000 0! #15955500 1! #15956000 0! #15956500 1! #15957000 0! #15957500 1! #15958000 0! #15958500 1! #15959000 0! #15959500 1! #15960000 0! #15960500 1! #15961000 0! #15961500 1! #15962000 0! #15962500 1! #15963000 0! #15963500 1! #15964000 0! #15964500 1! #15965000 0! #15965500 1! #15966000 0! #15966500 1! #15967000 0! #15967500 1! #15968000 0! #15968500 1! #15969000 0! #15969500 1! #15970000 0! #15970500 1! #15971000 0! #15971500 1! #15972000 0! #15972500 1! #15973000 0! #15973500 1! #15974000 0! #15974500 1! #15975000 0! #15975500 1! #15976000 0! #15976500 1! #15977000 0! #15977500 1! #15978000 0! #15978500 1! #15979000 0! #15979500 1! #15980000 0! #15980500 1! #15981000 0! #15981500 1! #15982000 0! #15982500 1! #15983000 0! #15983500 1! #15984000 0! #15984500 1! #15985000 0! #15985500 1! #15986000 0! #15986500 1! #15987000 0! #15987500 1! #15988000 0! #15988500 1! #15989000 0! #15989500 1! #15990000 0! #15990500 1! #15991000 0! #15991500 1! #15992000 0! #15992500 1! #15993000 0! #15993500 1! #15994000 0! #15994500 1! #15995000 0! #15995500 1! #15996000 0! #15996500 1! #15997000 0! #15997500 1! #15998000 0! #15998500 1! #15999000 0! #15999500 1! #16000000 0! #16000500 1! #16001000 0! #16001500 1! #16002000 0! #16002500 1! #16003000 0! #16003500 1! #16004000 0! #16004500 1! #16005000 0! #16005500 1! #16006000 0! #16006500 1! #16007000 0! #16007500 1! #16008000 0! #16008500 1! #16009000 0! #16009500 1! #16010000 0! #16010500 1! #16011000 0! #16011500 1! #16012000 0! #16012500 1! #16013000 0! #16013500 1! #16014000 0! #16014500 1! #16015000 0! #16015500 1! #16016000 0! #16016500 1! #16017000 0! #16017500 1! #16018000 0! #16018500 1! #16019000 0! #16019500 1! #16020000 0! #16020500 1! #16021000 0! #16021500 1! #16022000 0! #16022500 1! #16023000 0! #16023500 1! #16024000 0! #16024500 1! #16025000 0! #16025500 1! #16026000 0! #16026500 1! #16027000 0! #16027500 1! #16028000 0! #16028500 1! #16029000 0! #16029500 1! #16030000 0! #16030500 1! #16031000 0! #16031500 1! #16032000 0! #16032500 1! #16033000 0! #16033500 1! #16034000 0! #16034500 1! #16035000 0! #16035500 1! #16036000 0! #16036500 1! #16037000 0! #16037500 1! #16038000 0! #16038500 1! #16039000 0! #16039500 1! #16040000 0! #16040500 1! #16041000 0! #16041500 1! #16042000 0! #16042500 1! #16043000 0! #16043500 1! #16044000 0! #16044500 1! #16045000 0! #16045500 1! #16046000 0! #16046500 1! #16047000 0! #16047500 1! #16048000 0! #16048500 1! #16049000 0! #16049500 1! #16050000 0! #16050500 1! #16051000 0! #16051500 1! #16052000 0! #16052500 1! #16053000 0! #16053500 1! #16054000 0! #16054500 1! #16055000 0! #16055500 1! #16056000 0! #16056500 1! #16057000 0! #16057500 1! #16058000 0! #16058500 1! #16059000 0! #16059500 1! #16060000 0! #16060500 1! #16061000 0! #16061500 1! #16062000 0! #16062500 1! #16063000 0! #16063500 1! #16064000 0! #16064500 1! #16065000 0! #16065500 1! #16066000 0! #16066500 1! #16067000 0! #16067500 1! #16068000 0! #16068500 1! #16069000 0! #16069500 1! #16070000 0! #16070500 1! #16071000 0! #16071500 1! #16072000 0! #16072500 1! #16073000 0! #16073500 1! #16074000 0! #16074500 1! #16075000 0! #16075500 1! #16076000 0! #16076500 1! #16077000 0! #16077500 1! #16078000 0! #16078500 1! #16079000 0! #16079500 1! #16080000 0! #16080500 1! #16081000 0! #16081500 1! #16082000 0! #16082500 1! #16083000 0! #16083500 1! #16084000 0! #16084500 1! #16085000 0! #16085500 1! #16086000 0! #16086500 1! #16087000 0! #16087500 1! #16088000 0! #16088500 1! #16089000 0! #16089500 1! #16090000 0! #16090500 1! #16091000 0! #16091500 1! #16092000 0! #16092500 1! #16093000 0! #16093500 1! #16094000 0! #16094500 1! #16095000 0! #16095500 1! #16096000 0! #16096500 1! #16097000 0! #16097500 1! #16098000 0! #16098500 1! #16099000 0! #16099500 1! #16100000 0! #16100500 1! #16101000 0! #16101500 1! #16102000 0! #16102500 1! #16103000 0! #16103500 1! #16104000 0! #16104500 1! #16105000 0! #16105500 1! #16106000 0! #16106500 1! #16107000 0! #16107500 1! #16108000 0! #16108500 1! #16109000 0! #16109500 1! #16110000 0! #16110500 1! #16111000 0! #16111500 1! #16112000 0! #16112500 1! #16113000 0! #16113500 1! #16114000 0! #16114500 1! #16115000 0! #16115500 1! #16116000 0! #16116500 1! #16117000 0! #16117500 1! #16118000 0! #16118500 1! #16119000 0! #16119500 1! #16120000 0! #16120500 1! #16121000 0! #16121500 1! #16122000 0! #16122500 1! #16123000 0! #16123500 1! #16124000 0! #16124500 1! #16125000 0! #16125500 1! #16126000 0! #16126500 1! #16127000 0! #16127500 1! #16128000 0! #16128500 1! #16129000 0! #16129500 1! #16130000 0! #16130500 1! #16131000 0! #16131500 1! #16132000 0! #16132500 1! #16133000 0! #16133500 1! #16134000 0! #16134500 1! #16135000 0! #16135500 1! #16136000 0! #16136500 1! #16137000 0! #16137500 1! #16138000 0! #16138500 1! #16139000 0! #16139500 1! #16140000 0! #16140500 1! #16141000 0! #16141500 1! #16142000 0! #16142500 1! #16143000 0! #16143500 1! #16144000 0! #16144500 1! #16145000 0! #16145500 1! #16146000 0! #16146500 1! #16147000 0! #16147500 1! #16148000 0! #16148500 1! #16149000 0! #16149500 1! #16150000 0! #16150500 1! #16151000 0! #16151500 1! #16152000 0! #16152500 1! #16153000 0! #16153500 1! #16154000 0! #16154500 1! #16155000 0! #16155500 1! #16156000 0! #16156500 1! #16157000 0! #16157500 1! #16158000 0! #16158500 1! #16159000 0! #16159500 1! #16160000 0! #16160500 1! #16161000 0! #16161500 1! #16162000 0! #16162500 1! #16163000 0! #16163500 1! #16164000 0! #16164500 1! #16165000 0! #16165500 1! #16166000 0! #16166500 1! #16167000 0! #16167500 1! #16168000 0! #16168500 1! #16169000 0! #16169500 1! #16170000 0! #16170500 1! #16171000 0! #16171500 1! #16172000 0! #16172500 1! #16173000 0! #16173500 1! #16174000 0! #16174500 1! #16175000 0! #16175500 1! #16176000 0! #16176500 1! #16177000 0! #16177500 1! #16178000 0! #16178500 1! #16179000 0! #16179500 1! #16180000 0! #16180500 1! #16181000 0! #16181500 1! #16182000 0! #16182500 1! #16183000 0! #16183500 1! #16184000 0! #16184500 1! #16185000 0! #16185500 1! #16186000 0! #16186500 1! #16187000 0! #16187500 1! #16188000 0! #16188500 1! #16189000 0! #16189500 1! #16190000 0! #16190500 1! #16191000 0! #16191500 1! #16192000 0! #16192500 1! #16193000 0! #16193500 1! #16194000 0! #16194500 1! #16195000 0! #16195500 1! #16196000 0! #16196500 1! #16197000 0! #16197500 1! #16198000 0! #16198500 1! #16199000 0! #16199500 1! #16200000 0! #16200500 1! #16201000 0! #16201500 1! #16202000 0! #16202500 1! #16203000 0! #16203500 1! #16204000 0! #16204500 1! #16205000 0! #16205500 1! #16206000 0! #16206500 1! #16207000 0! #16207500 1! #16208000 0! #16208500 1! #16209000 0! #16209500 1! #16210000 0! #16210500 1! #16211000 0! #16211500 1! #16212000 0! #16212500 1! #16213000 0! #16213500 1! #16214000 0! #16214500 1! #16215000 0! #16215500 1! #16216000 0! #16216500 1! #16217000 0! #16217500 1! #16218000 0! #16218500 1! #16219000 0! #16219500 1! #16220000 0! #16220500 1! #16221000 0! #16221500 1! #16222000 0! #16222500 1! #16223000 0! #16223500 1! #16224000 0! #16224500 1! #16225000 0! #16225500 1! #16226000 0! #16226500 1! #16227000 0! #16227500 1! #16228000 0! #16228500 1! #16229000 0! #16229500 1! #16230000 0! #16230500 1! #16231000 0! #16231500 1! #16232000 0! #16232500 1! #16233000 0! #16233500 1! #16234000 0! #16234500 1! #16235000 0! #16235500 1! #16236000 0! #16236500 1! #16237000 0! #16237500 1! #16238000 0! #16238500 1! #16239000 0! #16239500 1! #16240000 0! #16240500 1! #16241000 0! #16241500 1! #16242000 0! #16242500 1! #16243000 0! #16243500 1! #16244000 0! #16244500 1! #16245000 0! #16245500 1! #16246000 0! #16246500 1! #16247000 0! #16247500 1! #16248000 0! #16248500 1! #16249000 0! #16249500 1! #16250000 0! #16250500 1! #16251000 0! #16251500 1! #16252000 0! #16252500 1! #16253000 0! #16253500 1! #16254000 0! #16254500 1! #16255000 0! #16255500 1! #16256000 0! #16256500 1! #16257000 0! #16257500 1! #16258000 0! #16258500 1! #16259000 0! #16259500 1! #16260000 0! #16260500 1! #16261000 0! #16261500 1! #16262000 0! #16262500 1! #16263000 0! #16263500 1! #16264000 0! #16264500 1! #16265000 0! #16265500 1! #16266000 0! #16266500 1! #16267000 0! #16267500 1! #16268000 0! #16268500 1! #16269000 0! #16269500 1! #16270000 0! #16270500 1! #16271000 0! #16271500 1! #16272000 0! #16272500 1! #16273000 0! #16273500 1! #16274000 0! #16274500 1! #16275000 0! #16275500 1! #16276000 0! #16276500 1! #16277000 0! #16277500 1! #16278000 0! #16278500 1! #16279000 0! #16279500 1! #16280000 0! #16280500 1! #16281000 0! #16281500 1! #16282000 0! #16282500 1! #16283000 0! #16283500 1! #16284000 0! #16284500 1! #16285000 0! #16285500 1! #16286000 0! #16286500 1! #16287000 0! #16287500 1! #16288000 0! #16288500 1! #16289000 0! #16289500 1! #16290000 0! #16290500 1! #16291000 0! #16291500 1! #16292000 0! #16292500 1! #16293000 0! #16293500 1! #16294000 0! #16294500 1! #16295000 0! #16295500 1! #16296000 0! #16296500 1! #16297000 0! #16297500 1! #16298000 0! #16298500 1! #16299000 0! #16299500 1! #16300000 0! #16300500 1! #16301000 0! #16301500 1! #16302000 0! #16302500 1! #16303000 0! #16303500 1! #16304000 0! #16304500 1! #16305000 0! #16305500 1! #16306000 0! #16306500 1! #16307000 0! #16307500 1! #16308000 0! #16308500 1! #16309000 0! #16309500 1! #16310000 0! #16310500 1! #16311000 0! #16311500 1! #16312000 0! #16312500 1! #16313000 0! #16313500 1! #16314000 0! #16314500 1! #16315000 0! #16315500 1! #16316000 0! #16316500 1! #16317000 0! #16317500 1! #16318000 0! #16318500 1! #16319000 0! #16319500 1! #16320000 0! #16320500 1! #16321000 0! #16321500 1! #16322000 0! #16322500 1! #16323000 0! #16323500 1! #16324000 0! #16324500 1! #16325000 0! #16325500 1! #16326000 0! #16326500 1! #16327000 0! #16327500 1! #16328000 0! #16328500 1! #16329000 0! #16329500 1! #16330000 0! #16330500 1! #16331000 0! #16331500 1! #16332000 0! #16332500 1! #16333000 0! #16333500 1! #16334000 0! #16334500 1! #16335000 0! #16335500 1! #16336000 0! #16336500 1! #16337000 0! #16337500 1! #16338000 0! #16338500 1! #16339000 0! #16339500 1! #16340000 0! #16340500 1! #16341000 0! #16341500 1! #16342000 0! #16342500 1! #16343000 0! #16343500 1! #16344000 0! #16344500 1! #16345000 0! #16345500 1! #16346000 0! #16346500 1! #16347000 0! #16347500 1! #16348000 0! #16348500 1! #16349000 0! #16349500 1! #16350000 0! #16350500 1! #16351000 0! #16351500 1! #16352000 0! #16352500 1! #16353000 0! #16353500 1! #16354000 0! #16354500 1! #16355000 0! #16355500 1! #16356000 0! #16356500 1! #16357000 0! #16357500 1! #16358000 0! #16358500 1! #16359000 0! #16359500 1! #16360000 0! #16360500 1! #16361000 0! #16361500 1! #16362000 0! #16362500 1! #16363000 0! #16363500 1! #16364000 0! #16364500 1! #16365000 0! #16365500 1! #16366000 0! #16366500 1! #16367000 0! #16367500 1! #16368000 0! #16368500 1! #16369000 0! #16369500 1! #16370000 0! #16370500 1! #16371000 0! #16371500 1! #16372000 0! #16372500 1! #16373000 0! #16373500 1! #16374000 0! #16374500 1! #16375000 0! #16375500 1! #16376000 0! #16376500 1! #16377000 0! #16377500 1! #16378000 0! #16378500 1! #16379000 0! #16379500 1! #16380000 0! #16380500 1! #16381000 0! #16381500 1! #16382000 0! #16382500 1! #16383000 0! #16383500 1! #16384000 0! #16384500 1! #16385000 0! #16385500 1! #16386000 0! #16386500 1! #16387000 0! #16387500 1! #16388000 0! #16388500 1! #16389000 0! #16389500 1! #16390000 0! #16390500 1! #16391000 0! #16391500 1! #16392000 0! #16392500 1! #16393000 0! #16393500 1! #16394000 0! #16394500 1! #16395000 0! #16395500 1! #16396000 0! #16396500 1! #16397000 0! #16397500 1! #16398000 0! #16398500 1! #16399000 0! #16399500 1! #16400000 0! #16400500 1! #16401000 0! #16401500 1! #16402000 0! #16402500 1! #16403000 0! #16403500 1! #16404000 0! #16404500 1! #16405000 0! #16405500 1! #16406000 0! #16406500 1! #16407000 0! #16407500 1! #16408000 0! #16408500 1! #16409000 0! #16409500 1! #16410000 0! #16410500 1! #16411000 0! #16411500 1! #16412000 0! #16412500 1! #16413000 0! #16413500 1! #16414000 0! #16414500 1! #16415000 0! #16415500 1! #16416000 0! #16416500 1! #16417000 0! #16417500 1! #16418000 0! #16418500 1! #16419000 0! #16419500 1! #16420000 0! #16420500 1! #16421000 0! #16421500 1! #16422000 0! #16422500 1! #16423000 0! #16423500 1! #16424000 0! #16424500 1! #16425000 0! #16425500 1! #16426000 0! #16426500 1! #16427000 0! #16427500 1! #16428000 0! #16428500 1! #16429000 0! #16429500 1! #16430000 0! #16430500 1! #16431000 0! #16431500 1! #16432000 0! #16432500 1! #16433000 0! #16433500 1! #16434000 0! #16434500 1! #16435000 0! #16435500 1! #16436000 0! #16436500 1! #16437000 0! #16437500 1! #16438000 0! #16438500 1! #16439000 0! #16439500 1! #16440000 0! #16440500 1! #16441000 0! #16441500 1! #16442000 0! #16442500 1! #16443000 0! #16443500 1! #16444000 0! #16444500 1! #16445000 0! #16445500 1! #16446000 0! #16446500 1! #16447000 0! #16447500 1! #16448000 0! #16448500 1! #16449000 0! #16449500 1! #16450000 0! #16450500 1! #16451000 0! #16451500 1! #16452000 0! #16452500 1! #16453000 0! #16453500 1! #16454000 0! #16454500 1! #16455000 0! #16455500 1! #16456000 0! #16456500 1! #16457000 0! #16457500 1! #16458000 0! #16458500 1! #16459000 0! #16459500 1! #16460000 0! #16460500 1! #16461000 0! #16461500 1! #16462000 0! #16462500 1! #16463000 0! #16463500 1! #16464000 0! #16464500 1! #16465000 0! #16465500 1! #16466000 0! #16466500 1! #16467000 0! #16467500 1! #16468000 0! #16468500 1! #16469000 0! #16469500 1! #16470000 0! #16470500 1! #16471000 0! #16471500 1! #16472000 0! #16472500 1! #16473000 0! #16473500 1! #16474000 0! #16474500 1! #16475000 0! #16475500 1! #16476000 0! #16476500 1! #16477000 0! #16477500 1! #16478000 0! #16478500 1! #16479000 0! #16479500 1! #16480000 0! #16480500 1! #16481000 0! #16481500 1! #16482000 0! #16482500 1! #16483000 0! #16483500 1! #16484000 0! #16484500 1! #16485000 0! #16485500 1! #16486000 0! #16486500 1! #16487000 0! #16487500 1! #16488000 0! #16488500 1! #16489000 0! #16489500 1! #16490000 0! #16490500 1! #16491000 0! #16491500 1! #16492000 0! #16492500 1! #16493000 0! #16493500 1! #16494000 0! #16494500 1! #16495000 0! #16495500 1! #16496000 0! #16496500 1! #16497000 0! #16497500 1! #16498000 0! #16498500 1! #16499000 0! #16499500 1! #16500000 0! #16500500 1! #16501000 0! #16501500 1! #16502000 0! #16502500 1! #16503000 0! #16503500 1! #16504000 0! #16504500 1! #16505000 0! #16505500 1! #16506000 0! #16506500 1! #16507000 0! #16507500 1! #16508000 0! #16508500 1! #16509000 0! #16509500 1! #16510000 0! #16510500 1! #16511000 0! #16511500 1! #16512000 0! #16512500 1! #16513000 0! #16513500 1! #16514000 0! #16514500 1! #16515000 0! #16515500 1! #16516000 0! #16516500 1! #16517000 0! #16517500 1! #16518000 0! #16518500 1! #16519000 0! #16519500 1! #16520000 0! #16520500 1! #16521000 0! #16521500 1! #16522000 0! #16522500 1! #16523000 0! #16523500 1! #16524000 0! #16524500 1! #16525000 0! #16525500 1! #16526000 0! #16526500 1! #16527000 0! #16527500 1! #16528000 0! #16528500 1! #16529000 0! #16529500 1! #16530000 0! #16530500 1! #16531000 0! #16531500 1! #16532000 0! #16532500 1! #16533000 0! #16533500 1! #16534000 0! #16534500 1! #16535000 0! #16535500 1! #16536000 0! #16536500 1! #16537000 0! #16537500 1! #16538000 0! #16538500 1! #16539000 0! #16539500 1! #16540000 0! #16540500 1! #16541000 0! #16541500 1! #16542000 0! #16542500 1! #16543000 0! #16543500 1! #16544000 0! #16544500 1! #16545000 0! #16545500 1! #16546000 0! #16546500 1! #16547000 0! #16547500 1! #16548000 0! #16548500 1! #16549000 0! #16549500 1! #16550000 0! #16550500 1! #16551000 0! #16551500 1! #16552000 0! #16552500 1! #16553000 0! #16553500 1! #16554000 0! #16554500 1! #16555000 0! #16555500 1! #16556000 0! #16556500 1! #16557000 0! #16557500 1! #16558000 0! #16558500 1! #16559000 0! #16559500 1! #16560000 0! #16560500 1! #16561000 0! #16561500 1! #16562000 0! #16562500 1! #16563000 0! #16563500 1! #16564000 0! #16564500 1! #16565000 0! #16565500 1! #16566000 0! #16566500 1! #16567000 0! #16567500 1! #16568000 0! #16568500 1! #16569000 0! #16569500 1! #16570000 0! #16570500 1! #16571000 0! #16571500 1! #16572000 0! #16572500 1! #16573000 0! #16573500 1! #16574000 0! #16574500 1! #16575000 0! #16575500 1! #16576000 0! #16576500 1! #16577000 0! #16577500 1! #16578000 0! #16578500 1! #16579000 0! #16579500 1! #16580000 0! #16580500 1! #16581000 0! #16581500 1! #16582000 0! #16582500 1! #16583000 0! #16583500 1! #16584000 0! #16584500 1! #16585000 0! #16585500 1! #16586000 0! #16586500 1! #16587000 0! #16587500 1! #16588000 0! #16588500 1! #16589000 0! #16589500 1! #16590000 0! #16590500 1! #16591000 0! #16591500 1! #16592000 0! #16592500 1! #16593000 0! #16593500 1! #16594000 0! #16594500 1! #16595000 0! #16595500 1! #16596000 0! #16596500 1! #16597000 0! #16597500 1! #16598000 0! #16598500 1! #16599000 0! #16599500 1! #16600000 0! #16600500 1! #16601000 0! #16601500 1! #16602000 0! #16602500 1! #16603000 0! #16603500 1! #16604000 0! #16604500 1! #16605000 0! #16605500 1! #16606000 0! #16606500 1! #16607000 0! #16607500 1! #16608000 0! #16608500 1! #16609000 0! #16609500 1! #16610000 0! #16610500 1! #16611000 0! #16611500 1! #16612000 0! #16612500 1! #16613000 0! #16613500 1! #16614000 0! #16614500 1! #16615000 0! #16615500 1! #16616000 0! #16616500 1! #16617000 0! #16617500 1! #16618000 0! #16618500 1! #16619000 0! #16619500 1! #16620000 0! #16620500 1! #16621000 0! #16621500 1! #16622000 0! #16622500 1! #16623000 0! #16623500 1! #16624000 0! #16624500 1! #16625000 0! #16625500 1! #16626000 0! #16626500 1! #16627000 0! #16627500 1! #16628000 0! #16628500 1! #16629000 0! #16629500 1! #16630000 0! #16630500 1! #16631000 0! #16631500 1! #16632000 0! #16632500 1! #16633000 0! #16633500 1! #16634000 0! #16634500 1! #16635000 0! #16635500 1! #16636000 0! #16636500 1! #16637000 0! #16637500 1! #16638000 0! #16638500 1! #16639000 0! #16639500 1! #16640000 0! #16640500 1! #16641000 0! #16641500 1! #16642000 0! #16642500 1! #16643000 0! #16643500 1! #16644000 0! #16644500 1! #16645000 0! #16645500 1! #16646000 0! #16646500 1! #16647000 0! #16647500 1! #16648000 0! #16648500 1! #16649000 0! #16649500 1! #16650000 0! #16650500 1! #16651000 0! #16651500 1! #16652000 0! #16652500 1! #16653000 0! #16653500 1! #16654000 0! #16654500 1! #16655000 0! #16655500 1! #16656000 0! #16656500 1! #16657000 0! #16657500 1! #16658000 0! #16658500 1! #16659000 0! #16659500 1! #16660000 0! #16660500 1! #16661000 0! #16661500 1! #16662000 0! #16662500 1! #16663000 0! #16663500 1! #16664000 0! #16664500 1! #16665000 0! #16665500 1! #16666000 0! #16666500 1! #16667000 0! #16667500 1! #16668000 0! #16668500 1! #16669000 0! #16669500 1! #16670000 0! #16670500 1! #16671000 0! #16671500 1! #16672000 0! #16672500 1! #16673000 0! #16673500 1! #16674000 0! #16674500 1! #16675000 0! #16675500 1! #16676000 0! #16676500 1! #16677000 0! #16677500 1! #16678000 0! #16678500 1! #16679000 0! #16679500 1! #16680000 0! #16680500 1! #16681000 0! #16681500 1! #16682000 0! #16682500 1! #16683000 0! #16683500 1! #16684000 0! #16684500 1! #16685000 0! #16685500 1! #16686000 0! #16686500 1! #16687000 0! #16687500 1! #16688000 0! #16688500 1! #16689000 0! #16689500 1! #16690000 0! #16690500 1! #16691000 0! #16691500 1! #16692000 0! #16692500 1! #16693000 0! #16693500 1! #16694000 0! #16694500 1! #16695000 0! #16695500 1! #16696000 0! #16696500 1! #16697000 0! #16697500 1! #16698000 0! #16698500 1! #16699000 0! #16699500 1! #16700000 0! #16700500 1! #16701000 0! #16701500 1! #16702000 0! #16702500 1! #16703000 0! #16703500 1! #16704000 0! #16704500 1! #16705000 0! #16705500 1! #16706000 0! #16706500 1! #16707000 0! #16707500 1! #16708000 0! #16708500 1! #16709000 0! #16709500 1! #16710000 0! #16710500 1! #16711000 0! #16711500 1! #16712000 0! #16712500 1! #16713000 0! #16713500 1! #16714000 0! #16714500 1! #16715000 0! #16715500 1! #16716000 0! #16716500 1! #16717000 0! #16717500 1! #16718000 0! #16718500 1! #16719000 0! #16719500 1! #16720000 0! #16720500 1! #16721000 0! #16721500 1! #16722000 0! #16722500 1! #16723000 0! #16723500 1! #16724000 0! #16724500 1! #16725000 0! #16725500 1! #16726000 0! #16726500 1! #16727000 0! #16727500 1! #16728000 0! #16728500 1! #16729000 0! #16729500 1! #16730000 0! #16730500 1! #16731000 0! #16731500 1! #16732000 0! #16732500 1! #16733000 0! #16733500 1! #16734000 0! #16734500 1! #16735000 0! #16735500 1! #16736000 0! #16736500 1! #16737000 0! #16737500 1! #16738000 0! #16738500 1! #16739000 0! #16739500 1! #16740000 0! #16740500 1! #16741000 0! #16741500 1! #16742000 0! #16742500 1! #16743000 0! #16743500 1! #16744000 0! #16744500 1! #16745000 0! #16745500 1! #16746000 0! #16746500 1! #16747000 0! #16747500 1! #16748000 0! #16748500 1! #16749000 0! #16749500 1! #16750000 0! #16750500 1! #16751000 0! #16751500 1! #16752000 0! #16752500 1! #16753000 0! #16753500 1! #16754000 0! #16754500 1! #16755000 0! #16755500 1! #16756000 0! #16756500 1! #16757000 0! #16757500 1! #16758000 0! #16758500 1! #16759000 0! #16759500 1! #16760000 0! #16760500 1! #16761000 0! #16761500 1! #16762000 0! #16762500 1! #16763000 0! #16763500 1! #16764000 0! #16764500 1! #16765000 0! #16765500 1! #16766000 0! #16766500 1! #16767000 0! #16767500 1! #16768000 0! #16768500 1! #16769000 0! #16769500 1! #16770000 0! #16770500 1! #16771000 0! #16771500 1! #16772000 0! #16772500 1! #16773000 0! #16773500 1! #16774000 0! #16774500 1! #16775000 0! #16775500 1! #16776000 0! #16776500 1! #16777000 0! #16777500 1! #16778000 0! #16778500 1! #16779000 0! #16779500 1! #16780000 0! #16780500 1! #16781000 0! #16781500 1! #16782000 0! #16782500 1! #16783000 0! #16783500 1! #16784000 0! #16784500 1! #16785000 0! #16785500 1! #16786000 0! #16786500 1! #16787000 0! #16787500 1! #16788000 0! #16788500 1! #16789000 0! #16789500 1! #16790000 0! #16790500 1! #16791000 0! #16791500 1! #16792000 0! #16792500 1! #16793000 0! #16793500 1! #16794000 0! #16794500 1! #16795000 0! #16795500 1! #16796000 0! #16796500 1! #16797000 0! #16797500 1! #16798000 0! #16798500 1! #16799000 0! #16799500 1! #16800000 0! #16800500 1! #16801000 0! #16801500 1! #16802000 0! #16802500 1! #16803000 0! #16803500 1! #16804000 0! #16804500 1! #16805000 0! #16805500 1! #16806000 0! #16806500 1! #16807000 0! #16807500 1! #16808000 0! #16808500 1! #16809000 0! #16809500 1! #16810000 0! #16810500 1! #16811000 0! #16811500 1! #16812000 0! #16812500 1! #16813000 0! #16813500 1! #16814000 0! #16814500 1! #16815000 0! #16815500 1! #16816000 0! #16816500 1! #16817000 0! #16817500 1! #16818000 0! #16818500 1! #16819000 0! #16819500 1! #16820000 0! #16820500 1! #16821000 0! #16821500 1! #16822000 0! #16822500 1! #16823000 0! #16823500 1! #16824000 0! #16824500 1! #16825000 0! #16825500 1! #16826000 0! #16826500 1! #16827000 0! #16827500 1! #16828000 0! #16828500 1! #16829000 0! #16829500 1! #16830000 0! #16830500 1! #16831000 0! #16831500 1! #16832000 0! #16832500 1! #16833000 0! #16833500 1! #16834000 0! #16834500 1! #16835000 0! #16835500 1! #16836000 0! #16836500 1! #16837000 0! #16837500 1! #16838000 0! #16838500 1! #16839000 0! #16839500 1! #16840000 0! #16840500 1! #16841000 0! #16841500 1! #16842000 0! #16842500 1! #16843000 0! #16843500 1! #16844000 0! #16844500 1! #16845000 0! #16845500 1! #16846000 0! #16846500 1! #16847000 0! #16847500 1! #16848000 0! #16848500 1! #16849000 0! #16849500 1! #16850000 0! #16850500 1! #16851000 0! #16851500 1! #16852000 0! #16852500 1! #16853000 0! #16853500 1! #16854000 0! #16854500 1! #16855000 0! #16855500 1! #16856000 0! #16856500 1! #16857000 0! #16857500 1! #16858000 0! #16858500 1! #16859000 0! #16859500 1! #16860000 0! #16860500 1! #16861000 0! #16861500 1! #16862000 0! #16862500 1! #16863000 0! #16863500 1! #16864000 0! #16864500 1! #16865000 0! #16865500 1! #16866000 0! #16866500 1! #16867000 0! #16867500 1! #16868000 0! #16868500 1! #16869000 0! #16869500 1! #16870000 0! #16870500 1! #16871000 0! #16871500 1! #16872000 0! #16872500 1! #16873000 0! #16873500 1! #16874000 0! #16874500 1! #16875000 0! #16875500 1! #16876000 0! #16876500 1! #16877000 0! #16877500 1! #16878000 0! #16878500 1! #16879000 0! #16879500 1! #16880000 0! #16880500 1! #16881000 0! #16881500 1! #16882000 0! #16882500 1! #16883000 0! #16883500 1! #16884000 0! #16884500 1! #16885000 0! #16885500 1! #16886000 0! #16886500 1! #16887000 0! #16887500 1! #16888000 0! #16888500 1! #16889000 0! #16889500 1! #16890000 0! #16890500 1! #16891000 0! #16891500 1! #16892000 0! #16892500 1! #16893000 0! #16893500 1! #16894000 0! #16894500 1! #16895000 0! #16895500 1! #16896000 0! #16896500 1! #16897000 0! #16897500 1! #16898000 0! #16898500 1! #16899000 0! #16899500 1! #16900000 0! #16900500 1! #16901000 0! #16901500 1! #16902000 0! #16902500 1! #16903000 0! #16903500 1! #16904000 0! #16904500 1! #16905000 0! #16905500 1! #16906000 0! #16906500 1! #16907000 0! #16907500 1! #16908000 0! #16908500 1! #16909000 0! #16909500 1! #16910000 0! #16910500 1! #16911000 0! #16911500 1! #16912000 0! #16912500 1! #16913000 0! #16913500 1! #16914000 0! #16914500 1! #16915000 0! #16915500 1! #16916000 0! #16916500 1! #16917000 0! #16917500 1! #16918000 0! #16918500 1! #16919000 0! #16919500 1! #16920000 0! #16920500 1! #16921000 0! #16921500 1! #16922000 0! #16922500 1! #16923000 0! #16923500 1! #16924000 0! #16924500 1! #16925000 0! #16925500 1! #16926000 0! #16926500 1! #16927000 0! #16927500 1! #16928000 0! #16928500 1! #16929000 0! #16929500 1! #16930000 0! #16930500 1! #16931000 0! #16931500 1! #16932000 0! #16932500 1! #16933000 0! #16933500 1! #16934000 0! #16934500 1! #16935000 0! #16935500 1! #16936000 0! #16936500 1! #16937000 0! #16937500 1! #16938000 0! #16938500 1! #16939000 0! #16939500 1! #16940000 0! #16940500 1! #16941000 0! #16941500 1! #16942000 0! #16942500 1! #16943000 0! #16943500 1! #16944000 0! #16944500 1! #16945000 0! #16945500 1! #16946000 0! #16946500 1! #16947000 0! #16947500 1! #16948000 0! #16948500 1! #16949000 0! #16949500 1! #16950000 0! #16950500 1! #16951000 0! #16951500 1! #16952000 0! #16952500 1! #16953000 0! #16953500 1! #16954000 0! #16954500 1! #16955000 0! #16955500 1! #16956000 0! #16956500 1! #16957000 0! #16957500 1! #16958000 0! #16958500 1! #16959000 0! #16959500 1! #16960000 0! #16960500 1! #16961000 0! #16961500 1! #16962000 0! #16962500 1! #16963000 0! #16963500 1! #16964000 0! #16964500 1! #16965000 0! #16965500 1! #16966000 0! #16966500 1! #16967000 0! #16967500 1! #16968000 0! #16968500 1! #16969000 0! #16969500 1! #16970000 0! #16970500 1! #16971000 0! #16971500 1! #16972000 0! #16972500 1! #16973000 0! #16973500 1! #16974000 0! #16974500 1! #16975000 0! #16975500 1! #16976000 0! #16976500 1! #16977000 0! #16977500 1! #16978000 0! #16978500 1! #16979000 0! #16979500 1! #16980000 0! #16980500 1! #16981000 0! #16981500 1! #16982000 0! #16982500 1! #16983000 0! #16983500 1! #16984000 0! #16984500 1! #16985000 0! #16985500 1! #16986000 0! #16986500 1! #16987000 0! #16987500 1! #16988000 0! #16988500 1! #16989000 0! #16989500 1! #16990000 0! #16990500 1! #16991000 0! #16991500 1! #16992000 0! #16992500 1! #16993000 0! #16993500 1! #16994000 0! #16994500 1! #16995000 0! #16995500 1! #16996000 0! #16996500 1! #16997000 0! #16997500 1! #16998000 0! #16998500 1! #16999000 0! #16999500 1! #17000000 0! #17000500 1! #17001000 0! #17001500 1! #17002000 0! #17002500 1! #17003000 0! #17003500 1! #17004000 0! #17004500 1! #17005000 0! #17005500 1! #17006000 0! #17006500 1! #17007000 0! #17007500 1! #17008000 0! #17008500 1! #17009000 0! #17009500 1! #17010000 0! #17010500 1! #17011000 0! #17011500 1! #17012000 0! #17012500 1! #17013000 0! #17013500 1! #17014000 0! #17014500 1! #17015000 0! #17015500 1! #17016000 0! #17016500 1! #17017000 0! #17017500 1! #17018000 0! #17018500 1! #17019000 0! #17019500 1! #17020000 0! #17020500 1! #17021000 0! #17021500 1! #17022000 0! #17022500 1! #17023000 0! #17023500 1! #17024000 0! #17024500 1! #17025000 0! #17025500 1! #17026000 0! #17026500 1! #17027000 0! #17027500 1! #17028000 0! #17028500 1! #17029000 0! #17029500 1! #17030000 0! #17030500 1! #17031000 0! #17031500 1! #17032000 0! #17032500 1! #17033000 0! #17033500 1! #17034000 0! #17034500 1! #17035000 0! #17035500 1! #17036000 0! #17036500 1! #17037000 0! #17037500 1! #17038000 0! #17038500 1! #17039000 0! #17039500 1! #17040000 0! #17040500 1! #17041000 0! #17041500 1! #17042000 0! #17042500 1! #17043000 0! #17043500 1! #17044000 0! #17044500 1! #17045000 0! #17045500 1! #17046000 0! #17046500 1! #17047000 0! #17047500 1! #17048000 0! #17048500 1! #17049000 0! #17049500 1! #17050000 0! #17050500 1! #17051000 0! #17051500 1! #17052000 0! #17052500 1! #17053000 0! #17053500 1! #17054000 0! #17054500 1! #17055000 0! #17055500 1! #17056000 0! #17056500 1! #17057000 0! #17057500 1! #17058000 0! #17058500 1! #17059000 0! #17059500 1! #17060000 0! #17060500 1! #17061000 0! #17061500 1! #17062000 0! #17062500 1! #17063000 0! #17063500 1! #17064000 0! #17064500 1! #17065000 0! #17065500 1! #17066000 0! #17066500 1! #17067000 0! #17067500 1! #17068000 0! #17068500 1! #17069000 0! #17069500 1! #17070000 0! #17070500 1! #17071000 0! #17071500 1! #17072000 0! #17072500 1! #17073000 0! #17073500 1! #17074000 0! #17074500 1! #17075000 0! #17075500 1! #17076000 0! #17076500 1! #17077000 0! #17077500 1! #17078000 0! #17078500 1! #17079000 0! #17079500 1! #17080000 0! #17080500 1! #17081000 0! #17081500 1! #17082000 0! #17082500 1! #17083000 0! #17083500 1! #17084000 0! #17084500 1! #17085000 0! #17085500 1! #17086000 0! #17086500 1! #17087000 0! #17087500 1! #17088000 0! #17088500 1! #17089000 0! #17089500 1! #17090000 0! #17090500 1! #17091000 0! #17091500 1! #17092000 0! #17092500 1! #17093000 0! #17093500 1! #17094000 0! #17094500 1! #17095000 0! #17095500 1! #17096000 0! #17096500 1! #17097000 0! #17097500 1! #17098000 0! #17098500 1! #17099000 0! #17099500 1! #17100000 0! #17100500 1! #17101000 0! #17101500 1! #17102000 0! #17102500 1! #17103000 0! #17103500 1! #17104000 0! #17104500 1! #17105000 0! #17105500 1! #17106000 0! #17106500 1! #17107000 0! #17107500 1! #17108000 0! #17108500 1! #17109000 0! #17109500 1! #17110000 0! #17110500 1! #17111000 0! #17111500 1! #17112000 0! #17112500 1! #17113000 0! #17113500 1! #17114000 0! #17114500 1! #17115000 0! #17115500 1! #17116000 0! #17116500 1! #17117000 0! #17117500 1! #17118000 0! #17118500 1! #17119000 0! #17119500 1! #17120000 0! #17120500 1! #17121000 0! #17121500 1! #17122000 0! #17122500 1! #17123000 0! #17123500 1! #17124000 0! #17124500 1! #17125000 0! #17125500 1! #17126000 0! #17126500 1! #17127000 0! #17127500 1! #17128000 0! #17128500 1! #17129000 0! #17129500 1! #17130000 0! #17130500 1! #17131000 0! #17131500 1! #17132000 0! #17132500 1! #17133000 0! #17133500 1! #17134000 0! #17134500 1! #17135000 0! #17135500 1! #17136000 0! #17136500 1! #17137000 0! #17137500 1! #17138000 0! #17138500 1! #17139000 0! #17139500 1! #17140000 0! #17140500 1! #17141000 0! #17141500 1! #17142000 0! #17142500 1! #17143000 0! #17143500 1! #17144000 0! #17144500 1! #17145000 0! #17145500 1! #17146000 0! #17146500 1! #17147000 0! #17147500 1! #17148000 0! #17148500 1! #17149000 0! #17149500 1! #17150000 0! #17150500 1! #17151000 0! #17151500 1! #17152000 0! #17152500 1! #17153000 0! #17153500 1! #17154000 0! #17154500 1! #17155000 0! #17155500 1! #17156000 0! #17156500 1! #17157000 0! #17157500 1! #17158000 0! #17158500 1! #17159000 0! #17159500 1! #17160000 0! #17160500 1! #17161000 0! #17161500 1! #17162000 0! #17162500 1! #17163000 0! #17163500 1! #17164000 0! #17164500 1! #17165000 0! #17165500 1! #17166000 0! #17166500 1! #17167000 0! #17167500 1! #17168000 0! #17168500 1! #17169000 0! #17169500 1! #17170000 0! #17170500 1! #17171000 0! #17171500 1! #17172000 0! #17172500 1! #17173000 0! #17173500 1! #17174000 0! #17174500 1! #17175000 0! #17175500 1! #17176000 0! #17176500 1! #17177000 0! #17177500 1! #17178000 0! #17178500 1! #17179000 0! #17179500 1! #17180000 0! #17180500 1! #17181000 0! #17181500 1! #17182000 0! #17182500 1! #17183000 0! #17183500 1! #17184000 0! #17184500 1! #17185000 0! #17185500 1! #17186000 0! #17186500 1! #17187000 0! #17187500 1! #17188000 0! #17188500 1! #17189000 0! #17189500 1! #17190000 0! #17190500 1! #17191000 0! #17191500 1! #17192000 0! #17192500 1! #17193000 0! #17193500 1! #17194000 0! #17194500 1! #17195000 0! #17195500 1! #17196000 0! #17196500 1! #17197000 0! #17197500 1! #17198000 0! #17198500 1! #17199000 0! #17199500 1! #17200000 0! #17200500 1! #17201000 0! #17201500 1! #17202000 0! #17202500 1! #17203000 0! #17203500 1! #17204000 0! #17204500 1! #17205000 0! #17205500 1! #17206000 0! #17206500 1! #17207000 0! #17207500 1! #17208000 0! #17208500 1! #17209000 0! #17209500 1! #17210000 0! #17210500 1! #17211000 0! #17211500 1! #17212000 0! #17212500 1! #17213000 0! #17213500 1! #17214000 0! #17214500 1! #17215000 0! #17215500 1! #17216000 0! #17216500 1! #17217000 0! #17217500 1! #17218000 0! #17218500 1! #17219000 0! #17219500 1! #17220000 0! #17220500 1! #17221000 0! #17221500 1! #17222000 0! #17222500 1! #17223000 0! #17223500 1! #17224000 0! #17224500 1! #17225000 0! #17225500 1! #17226000 0! #17226500 1! #17227000 0! #17227500 1! #17228000 0! #17228500 1! #17229000 0! #17229500 1! #17230000 0! #17230500 1! #17231000 0! #17231500 1! #17232000 0! #17232500 1! #17233000 0! #17233500 1! #17234000 0! #17234500 1! #17235000 0! #17235500 1! #17236000 0! #17236500 1! #17237000 0! #17237500 1! #17238000 0! #17238500 1! #17239000 0! #17239500 1! #17240000 0! #17240500 1! #17241000 0! #17241500 1! #17242000 0! #17242500 1! #17243000 0! #17243500 1! #17244000 0! #17244500 1! #17245000 0! #17245500 1! #17246000 0! #17246500 1! #17247000 0! #17247500 1! #17248000 0! #17248500 1! #17249000 0! #17249500 1! #17250000 0! #17250500 1! #17251000 0! #17251500 1! #17252000 0! #17252500 1! #17253000 0! #17253500 1! #17254000 0! #17254500 1! #17255000 0! #17255500 1! #17256000 0! #17256500 1! #17257000 0! #17257500 1! #17258000 0! #17258500 1! #17259000 0! #17259500 1! #17260000 0! #17260500 1! #17261000 0! #17261500 1! #17262000 0! #17262500 1! #17263000 0! #17263500 1! #17264000 0! #17264500 1! #17265000 0! #17265500 1! #17266000 0! #17266500 1! #17267000 0! #17267500 1! #17268000 0! #17268500 1! #17269000 0! #17269500 1! #17270000 0! #17270500 1! #17271000 0! #17271500 1! #17272000 0! #17272500 1! #17273000 0! #17273500 1! #17274000 0! #17274500 1! #17275000 0! #17275500 1! #17276000 0! #17276500 1! #17277000 0! #17277500 1! #17278000 0! #17278500 1! #17279000 0! #17279500 1! #17280000 0! #17280500 1! #17281000 0! #17281500 1! #17282000 0! #17282500 1! #17283000 0! #17283500 1! #17284000 0! #17284500 1! #17285000 0! #17285500 1! #17286000 0! #17286500 1! #17287000 0! #17287500 1! #17288000 0! #17288500 1! #17289000 0! #17289500 1! #17290000 0! #17290500 1! #17291000 0! #17291500 1! #17292000 0! #17292500 1! #17293000 0! #17293500 1! #17294000 0! #17294500 1! #17295000 0! #17295500 1! #17296000 0! #17296500 1! #17297000 0! #17297500 1! #17298000 0! #17298500 1! #17299000 0! #17299500 1! #17300000 0! #17300500 1! #17301000 0! #17301500 1! #17302000 0! #17302500 1! #17303000 0! #17303500 1! #17304000 0! #17304500 1! #17305000 0! #17305500 1! #17306000 0! #17306500 1! #17307000 0! #17307500 1! #17308000 0! #17308500 1! #17309000 0! #17309500 1! #17310000 0! #17310500 1! #17311000 0! #17311500 1! #17312000 0! #17312500 1! #17313000 0! #17313500 1! #17314000 0! #17314500 1! #17315000 0! #17315500 1! #17316000 0! #17316500 1! #17317000 0! #17317500 1! #17318000 0! #17318500 1! #17319000 0! #17319500 1! #17320000 0! #17320500 1! #17321000 0! #17321500 1! #17322000 0! #17322500 1! #17323000 0! #17323500 1! #17324000 0! #17324500 1! #17325000 0! #17325500 1! #17326000 0! #17326500 1! #17327000 0! #17327500 1! #17328000 0! #17328500 1! #17329000 0! #17329500 1! #17330000 0! #17330500 1! #17331000 0! #17331500 1! #17332000 0! #17332500 1! #17333000 0! #17333500 1! #17334000 0! #17334500 1! #17335000 0! #17335500 1! #17336000 0! #17336500 1! #17337000 0! #17337500 1! #17338000 0! #17338500 1! #17339000 0! #17339500 1! #17340000 0! #17340500 1! #17341000 0! #17341500 1! #17342000 0! #17342500 1! #17343000 0! #17343500 1! #17344000 0! #17344500 1! #17345000 0! #17345500 1! #17346000 0! #17346500 1! #17347000 0! #17347500 1! #17348000 0! #17348500 1! #17349000 0! #17349500 1! #17350000 0! #17350500 1! #17351000 0! #17351500 1! #17352000 0! #17352500 1! #17353000 0! #17353500 1! #17354000 0! #17354500 1! #17355000 0! #17355500 1! #17356000 0! #17356500 1! #17357000 0! #17357500 1! #17358000 0! #17358500 1! #17359000 0! #17359500 1! #17360000 0! #17360500 1! #17361000 0! #17361500 1! #17362000 0! #17362500 1! #17363000 0! #17363500 1! #17364000 0! #17364500 1! #17365000 0! #17365500 1! #17366000 0! #17366500 1! #17367000 0! #17367500 1! #17368000 0! #17368500 1! #17369000 0! #17369500 1! #17370000 0! #17370500 1! #17371000 0! #17371500 1! #17372000 0! #17372500 1! #17373000 0! #17373500 1! #17374000 0! #17374500 1! #17375000 0! #17375500 1! #17376000 0! #17376500 1! #17377000 0! #17377500 1! #17378000 0! #17378500 1! #17379000 0! #17379500 1! #17380000 0! #17380500 1! #17381000 0! #17381500 1! #17382000 0! #17382500 1! #17383000 0! #17383500 1! #17384000 0! #17384500 1! #17385000 0! #17385500 1! #17386000 0! #17386500 1! #17387000 0! #17387500 1! #17388000 0! #17388500 1! #17389000 0! #17389500 1! #17390000 0! #17390500 1! #17391000 0! #17391500 1! #17392000 0! #17392500 1! #17393000 0! #17393500 1! #17394000 0! #17394500 1! #17395000 0! #17395500 1! #17396000 0! #17396500 1! #17397000 0! #17397500 1! #17398000 0! #17398500 1! #17399000 0! #17399500 1! #17400000 0! #17400500 1! #17401000 0! #17401500 1! #17402000 0! #17402500 1! #17403000 0! #17403500 1! #17404000 0! #17404500 1! #17405000 0! #17405500 1! #17406000 0! #17406500 1! #17407000 0! #17407500 1! #17408000 0! #17408500 1! #17409000 0! #17409500 1! #17410000 0! #17410500 1! #17411000 0! #17411500 1! #17412000 0! #17412500 1! #17413000 0! #17413500 1! #17414000 0! #17414500 1! #17415000 0! #17415500 1! #17416000 0! #17416500 1! #17417000 0! #17417500 1! #17418000 0! #17418500 1! #17419000 0! #17419500 1! #17420000 0! #17420500 1! #17421000 0! #17421500 1! #17422000 0! #17422500 1! #17423000 0! #17423500 1! #17424000 0! #17424500 1! #17425000 0! #17425500 1! #17426000 0! #17426500 1! #17427000 0! #17427500 1! #17428000 0! #17428500 1! #17429000 0! #17429500 1! #17430000 0! #17430500 1! #17431000 0! #17431500 1! #17432000 0! #17432500 1! #17433000 0! #17433500 1! #17434000 0! #17434500 1! #17435000 0! #17435500 1! #17436000 0! #17436500 1! #17437000 0! #17437500 1! #17438000 0! #17438500 1! #17439000 0! #17439500 1! #17440000 0! #17440500 1! #17441000 0! #17441500 1! #17442000 0! #17442500 1! #17443000 0! #17443500 1! #17444000 0! #17444500 1! #17445000 0! #17445500 1! #17446000 0! #17446500 1! #17447000 0! #17447500 1! #17448000 0! #17448500 1! #17449000 0! #17449500 1! #17450000 0! #17450500 1! #17451000 0! #17451500 1! #17452000 0! #17452500 1! #17453000 0! #17453500 1! #17454000 0! #17454500 1! #17455000 0! #17455500 1! #17456000 0! #17456500 1! #17457000 0! #17457500 1! #17458000 0! #17458500 1! #17459000 0! #17459500 1! #17460000 0! #17460500 1! #17461000 0! #17461500 1! #17462000 0! #17462500 1! #17463000 0! #17463500 1! #17464000 0! #17464500 1! #17465000 0! #17465500 1! #17466000 0! #17466500 1! #17467000 0! #17467500 1! #17468000 0! #17468500 1! #17469000 0! #17469500 1! #17470000 0! #17470500 1! #17471000 0! #17471500 1! #17472000 0! #17472500 1! #17473000 0! #17473500 1! #17474000 0! #17474500 1! #17475000 0! #17475500 1! #17476000 0! #17476500 1! #17477000 0! #17477500 1! #17478000 0! #17478500 1! #17479000 0! #17479500 1! #17480000 0! #17480500 1! #17481000 0! #17481500 1! #17482000 0! #17482500 1! #17483000 0! #17483500 1! #17484000 0! #17484500 1! #17485000 0! #17485500 1! #17486000 0! #17486500 1! #17487000 0! #17487500 1! #17488000 0! #17488500 1! #17489000 0! #17489500 1! #17490000 0! #17490500 1! #17491000 0! #17491500 1! #17492000 0! #17492500 1! #17493000 0! #17493500 1! #17494000 0! #17494500 1! #17495000 0! #17495500 1! #17496000 0! #17496500 1! #17497000 0! #17497500 1! #17498000 0! #17498500 1! #17499000 0! #17499500 1! #17500000 0! #17500500 1! #17501000 0! #17501500 1! #17502000 0! #17502500 1! #17503000 0! #17503500 1! #17504000 0! #17504500 1! #17505000 0! #17505500 1! #17506000 0! #17506500 1! #17507000 0! #17507500 1! #17508000 0! #17508500 1! #17509000 0! #17509500 1! #17510000 0! #17510500 1! #17511000 0! #17511500 1! #17512000 0! #17512500 1! #17513000 0! #17513500 1! #17514000 0! #17514500 1! #17515000 0! #17515500 1! #17516000 0! #17516500 1! #17517000 0! #17517500 1! #17518000 0! #17518500 1! #17519000 0! #17519500 1! #17520000 0! #17520500 1! #17521000 0! #17521500 1! #17522000 0! #17522500 1! #17523000 0! #17523500 1! #17524000 0! #17524500 1! #17525000 0! #17525500 1! #17526000 0! #17526500 1! #17527000 0! #17527500 1! #17528000 0! #17528500 1! #17529000 0! #17529500 1! #17530000 0! #17530500 1! #17531000 0! #17531500 1! #17532000 0! #17532500 1! #17533000 0! #17533500 1! #17534000 0! #17534500 1! #17535000 0! #17535500 1! #17536000 0! #17536500 1! #17537000 0! #17537500 1! #17538000 0! #17538500 1! #17539000 0! #17539500 1! #17540000 0! #17540500 1! #17541000 0! #17541500 1! #17542000 0! #17542500 1! #17543000 0! #17543500 1! #17544000 0! #17544500 1! #17545000 0! #17545500 1! #17546000 0! #17546500 1! #17547000 0! #17547500 1! #17548000 0! #17548500 1! #17549000 0! #17549500 1! #17550000 0! #17550500 1! #17551000 0! #17551500 1! #17552000 0! #17552500 1! #17553000 0! #17553500 1! #17554000 0! #17554500 1! #17555000 0! #17555500 1! #17556000 0! #17556500 1! #17557000 0! #17557500 1! #17558000 0! #17558500 1! #17559000 0! #17559500 1! #17560000 0! #17560500 1! #17561000 0! #17561500 1! #17562000 0! #17562500 1! #17563000 0! #17563500 1! #17564000 0! #17564500 1! #17565000 0! #17565500 1! #17566000 0! #17566500 1! #17567000 0! #17567500 1! #17568000 0! #17568500 1! #17569000 0! #17569500 1! #17570000 0! #17570500 1! #17571000 0! #17571500 1! #17572000 0! #17572500 1! #17573000 0! #17573500 1! #17574000 0! #17574500 1! #17575000 0! #17575500 1! #17576000 0! #17576500 1! #17577000 0! #17577500 1! #17578000 0! #17578500 1! #17579000 0! #17579500 1! #17580000 0! #17580500 1! #17581000 0! #17581500 1! #17582000 0! #17582500 1! #17583000 0! #17583500 1! #17584000 0! #17584500 1! #17585000 0! #17585500 1! #17586000 0! #17586500 1! #17587000 0! #17587500 1! #17588000 0! #17588500 1! #17589000 0! #17589500 1! #17590000 0! #17590500 1! #17591000 0! #17591500 1! #17592000 0! #17592500 1! #17593000 0! #17593500 1! #17594000 0! #17594500 1! #17595000 0! #17595500 1! #17596000 0! #17596500 1! #17597000 0! #17597500 1! #17598000 0! #17598500 1! #17599000 0! #17599500 1! #17600000 0! #17600500 1! #17601000 0! #17601500 1! #17602000 0! #17602500 1! #17603000 0! #17603500 1! #17604000 0! #17604500 1! #17605000 0! #17605500 1! #17606000 0! #17606500 1! #17607000 0! #17607500 1! #17608000 0! #17608500 1! #17609000 0! #17609500 1! #17610000 0! #17610500 1! #17611000 0! #17611500 1! #17612000 0! #17612500 1! #17613000 0! #17613500 1! #17614000 0! #17614500 1! #17615000 0! #17615500 1! #17616000 0! #17616500 1! #17617000 0! #17617500 1! #17618000 0! #17618500 1! #17619000 0! #17619500 1! #17620000 0! #17620500 1! #17621000 0! #17621500 1! #17622000 0! #17622500 1! #17623000 0! #17623500 1! #17624000 0! #17624500 1! #17625000 0! #17625500 1! #17626000 0! #17626500 1! #17627000 0! #17627500 1! #17628000 0! #17628500 1! #17629000 0! #17629500 1! #17630000 0! #17630500 1! #17631000 0! #17631500 1! #17632000 0! #17632500 1! #17633000 0! #17633500 1! #17634000 0! #17634500 1! #17635000 0! #17635500 1! #17636000 0! #17636500 1! #17637000 0! #17637500 1! #17638000 0! #17638500 1! #17639000 0! #17639500 1! #17640000 0! #17640500 1! #17641000 0! #17641500 1! #17642000 0! #17642500 1! #17643000 0! #17643500 1! #17644000 0! #17644500 1! #17645000 0! #17645500 1! #17646000 0! #17646500 1! #17647000 0! #17647500 1! #17648000 0! #17648500 1! #17649000 0! #17649500 1! #17650000 0! #17650500 1! #17651000 0! #17651500 1! #17652000 0! #17652500 1! #17653000 0! #17653500 1! #17654000 0! #17654500 1! #17655000 0! #17655500 1! #17656000 0! #17656500 1! #17657000 0! #17657500 1! #17658000 0! #17658500 1! #17659000 0! #17659500 1! #17660000 0! #17660500 1! #17661000 0! #17661500 1! #17662000 0! #17662500 1! #17663000 0! #17663500 1! #17664000 0! #17664500 1! #17665000 0! #17665500 1! #17666000 0! #17666500 1! #17667000 0! #17667500 1! #17668000 0! #17668500 1! #17669000 0! #17669500 1! #17670000 0! #17670500 1! #17671000 0! #17671500 1! #17672000 0! #17672500 1! #17673000 0! #17673500 1! #17674000 0! #17674500 1! #17675000 0! #17675500 1! #17676000 0! #17676500 1! #17677000 0! #17677500 1! #17678000 0! #17678500 1! #17679000 0! #17679500 1! #17680000 0! #17680500 1! #17681000 0! #17681500 1! #17682000 0! #17682500 1! #17683000 0! #17683500 1! #17684000 0! #17684500 1! #17685000 0! #17685500 1! #17686000 0! #17686500 1! #17687000 0! #17687500 1! #17688000 0! #17688500 1! #17689000 0! #17689500 1! #17690000 0! #17690500 1! #17691000 0! #17691500 1! #17692000 0! #17692500 1! #17693000 0! #17693500 1! #17694000 0! #17694500 1! #17695000 0! #17695500 1! #17696000 0! #17696500 1! #17697000 0! #17697500 1! #17698000 0! #17698500 1! #17699000 0! #17699500 1! #17700000 0! #17700500 1! #17701000 0! #17701500 1! #17702000 0! #17702500 1! #17703000 0! #17703500 1! #17704000 0! #17704500 1! #17705000 0! #17705500 1! #17706000 0! #17706500 1! #17707000 0! #17707500 1! #17708000 0! #17708500 1! #17709000 0! #17709500 1! #17710000 0! #17710500 1! #17711000 0! #17711500 1! #17712000 0! #17712500 1! #17713000 0! #17713500 1! #17714000 0! #17714500 1! #17715000 0! #17715500 1! #17716000 0! #17716500 1! #17717000 0! #17717500 1! #17718000 0! #17718500 1! #17719000 0! #17719500 1! #17720000 0! #17720500 1! #17721000 0! #17721500 1! #17722000 0! #17722500 1! #17723000 0! #17723500 1! #17724000 0! #17724500 1! #17725000 0! #17725500 1! #17726000 0! #17726500 1! #17727000 0! #17727500 1! #17728000 0! #17728500 1! #17729000 0! #17729500 1! #17730000 0! #17730500 1! #17731000 0! #17731500 1! #17732000 0! #17732500 1! #17733000 0! #17733500 1! #17734000 0! #17734500 1! #17735000 0! #17735500 1! #17736000 0! #17736500 1! #17737000 0! #17737500 1! #17738000 0! #17738500 1! #17739000 0! #17739500 1! #17740000 0! #17740500 1! #17741000 0! #17741500 1! #17742000 0! #17742500 1! #17743000 0! #17743500 1! #17744000 0! #17744500 1! #17745000 0! #17745500 1! #17746000 0! #17746500 1! #17747000 0! #17747500 1! #17748000 0! #17748500 1! #17749000 0! #17749500 1! #17750000 0! #17750500 1! #17751000 0! #17751500 1! #17752000 0! #17752500 1! #17753000 0! #17753500 1! #17754000 0! #17754500 1! #17755000 0! #17755500 1! #17756000 0! #17756500 1! #17757000 0! #17757500 1! #17758000 0! #17758500 1! #17759000 0! #17759500 1! #17760000 0! #17760500 1! #17761000 0! #17761500 1! #17762000 0! #17762500 1! #17763000 0! #17763500 1! #17764000 0! #17764500 1! #17765000 0! #17765500 1! #17766000 0! #17766500 1! #17767000 0! #17767500 1! #17768000 0! #17768500 1! #17769000 0! #17769500 1! #17770000 0! #17770500 1! #17771000 0! #17771500 1! #17772000 0! #17772500 1! #17773000 0! #17773500 1! #17774000 0! #17774500 1! #17775000 0! #17775500 1! #17776000 0! #17776500 1! #17777000 0! #17777500 1! #17778000 0! #17778500 1! #17779000 0! #17779500 1! #17780000 0! #17780500 1! #17781000 0! #17781500 1! #17782000 0! #17782500 1! #17783000 0! #17783500 1! #17784000 0! #17784500 1! #17785000 0! #17785500 1! #17786000 0! #17786500 1! #17787000 0! #17787500 1! #17788000 0! #17788500 1! #17789000 0! #17789500 1! #17790000 0! #17790500 1! #17791000 0! #17791500 1! #17792000 0! #17792500 1! #17793000 0! #17793500 1! #17794000 0! #17794500 1! #17795000 0! #17795500 1! #17796000 0! #17796500 1! #17797000 0! #17797500 1! #17798000 0! #17798500 1! #17799000 0! #17799500 1! #17800000 0! #17800500 1! #17801000 0! #17801500 1! #17802000 0! #17802500 1! #17803000 0! #17803500 1! #17804000 0! #17804500 1! #17805000 0! #17805500 1! #17806000 0! #17806500 1! #17807000 0! #17807500 1! #17808000 0! #17808500 1! #17809000 0! #17809500 1! #17810000 0! #17810500 1! #17811000 0! #17811500 1! #17812000 0! #17812500 1! #17813000 0! #17813500 1! #17814000 0! #17814500 1! #17815000 0! #17815500 1! #17816000 0! #17816500 1! #17817000 0! #17817500 1! #17818000 0! #17818500 1! #17819000 0! #17819500 1! #17820000 0! #17820500 1! #17821000 0! #17821500 1! #17822000 0! #17822500 1! #17823000 0! #17823500 1! #17824000 0! #17824500 1! #17825000 0! #17825500 1! #17826000 0! #17826500 1! #17827000 0! #17827500 1! #17828000 0! #17828500 1! #17829000 0! #17829500 1! #17830000 0! #17830500 1! #17831000 0! #17831500 1! #17832000 0! #17832500 1! #17833000 0! #17833500 1! #17834000 0! #17834500 1! #17835000 0! #17835500 1! #17836000 0! #17836500 1! #17837000 0! #17837500 1! #17838000 0! #17838500 1! #17839000 0! #17839500 1! #17840000 0! #17840500 1! #17841000 0! #17841500 1! #17842000 0! #17842500 1! #17843000 0! #17843500 1! #17844000 0! #17844500 1! #17845000 0! #17845500 1! #17846000 0! #17846500 1! #17847000 0! #17847500 1! #17848000 0! #17848500 1! #17849000 0! #17849500 1! #17850000 0! #17850500 1! #17851000 0! #17851500 1! #17852000 0! #17852500 1! #17853000 0! #17853500 1! #17854000 0! #17854500 1! #17855000 0! #17855500 1! #17856000 0! #17856500 1! #17857000 0! #17857500 1! #17858000 0! #17858500 1! #17859000 0! #17859500 1! #17860000 0! #17860500 1! #17861000 0! #17861500 1! #17862000 0! #17862500 1! #17863000 0! #17863500 1! #17864000 0! #17864500 1! #17865000 0! #17865500 1! #17866000 0! #17866500 1! #17867000 0! #17867500 1! #17868000 0! #17868500 1! #17869000 0! #17869500 1! #17870000 0! #17870500 1! #17871000 0! #17871500 1! #17872000 0! #17872500 1! #17873000 0! #17873500 1! #17874000 0! #17874500 1! #17875000 0! #17875500 1! #17876000 0! #17876500 1! #17877000 0! #17877500 1! #17878000 0! #17878500 1! #17879000 0! #17879500 1! #17880000 0! #17880500 1! #17881000 0! #17881500 1! #17882000 0! #17882500 1! #17883000 0! #17883500 1! #17884000 0! #17884500 1! #17885000 0! #17885500 1! #17886000 0! #17886500 1! #17887000 0! #17887500 1! #17888000 0! #17888500 1! #17889000 0! #17889500 1! #17890000 0! #17890500 1! #17891000 0! #17891500 1! #17892000 0! #17892500 1! #17893000 0! #17893500 1! #17894000 0! #17894500 1! #17895000 0! #17895500 1! #17896000 0! #17896500 1! #17897000 0! #17897500 1! #17898000 0! #17898500 1! #17899000 0! #17899500 1! #17900000 0! #17900500 1! #17901000 0! #17901500 1! #17902000 0! #17902500 1! #17903000 0! #17903500 1! #17904000 0! #17904500 1! #17905000 0! #17905500 1! #17906000 0! #17906500 1! #17907000 0! #17907500 1! #17908000 0! #17908500 1! #17909000 0! #17909500 1! #17910000 0! #17910500 1! #17911000 0! #17911500 1! #17912000 0! #17912500 1! #17913000 0! #17913500 1! #17914000 0! #17914500 1! #17915000 0! #17915500 1! #17916000 0! #17916500 1! #17917000 0! #17917500 1! #17918000 0! #17918500 1! #17919000 0! #17919500 1! #17920000 0! #17920500 1! #17921000 0! #17921500 1! #17922000 0! #17922500 1! #17923000 0! #17923500 1! #17924000 0! #17924500 1! #17925000 0! #17925500 1! #17926000 0! #17926500 1! #17927000 0! #17927500 1! #17928000 0! #17928500 1! #17929000 0! #17929500 1! #17930000 0! #17930500 1! #17931000 0! #17931500 1! #17932000 0! #17932500 1! #17933000 0! #17933500 1! #17934000 0! #17934500 1! #17935000 0! #17935500 1! #17936000 0! #17936500 1! #17937000 0! #17937500 1! #17938000 0! #17938500 1! #17939000 0! #17939500 1! #17940000 0! #17940500 1! #17941000 0! #17941500 1! #17942000 0! #17942500 1! #17943000 0! #17943500 1! #17944000 0! #17944500 1! #17945000 0! #17945500 1! #17946000 0! #17946500 1! #17947000 0! #17947500 1! #17948000 0! #17948500 1! #17949000 0! #17949500 1! #17950000 0! #17950500 1! #17951000 0! #17951500 1! #17952000 0! #17952500 1! #17953000 0! #17953500 1! #17954000 0! #17954500 1! #17955000 0! #17955500 1! #17956000 0! #17956500 1! #17957000 0! #17957500 1! #17958000 0! #17958500 1! #17959000 0! #17959500 1! #17960000 0! #17960500 1! #17961000 0! #17961500 1! #17962000 0! #17962500 1! #17963000 0! #17963500 1! #17964000 0! #17964500 1! #17965000 0! #17965500 1! #17966000 0! #17966500 1! #17967000 0! #17967500 1! #17968000 0! #17968500 1! #17969000 0! #17969500 1! #17970000 0! #17970500 1! #17971000 0! #17971500 1! #17972000 0! #17972500 1! #17973000 0! #17973500 1! #17974000 0! #17974500 1! #17975000 0! #17975500 1! #17976000 0! #17976500 1! #17977000 0! #17977500 1! #17978000 0! #17978500 1! #17979000 0! #17979500 1! #17980000 0! #17980500 1! #17981000 0! #17981500 1! #17982000 0! #17982500 1! #17983000 0! #17983500 1! #17984000 0! #17984500 1! #17985000 0! #17985500 1! #17986000 0! #17986500 1! #17987000 0! #17987500 1! #17988000 0! #17988500 1! #17989000 0! #17989500 1! #17990000 0! #17990500 1! #17991000 0! #17991500 1! #17992000 0! #17992500 1! #17993000 0! #17993500 1! #17994000 0! #17994500 1! #17995000 0! #17995500 1! #17996000 0! #17996500 1! #17997000 0! #17997500 1! #17998000 0! #17998500 1! #17999000 0! #17999500 1! #18000000 0! #18000500 1! #18001000 0! #18001500 1! #18002000 0! #18002500 1! #18003000 0! #18003500 1! #18004000 0! #18004500 1! #18005000 0! #18005500 1! #18006000 0! #18006500 1! #18007000 0! #18007500 1! #18008000 0! #18008500 1! #18009000 0! #18009500 1! #18010000 0! #18010500 1! #18011000 0! #18011500 1! #18012000 0! #18012500 1! #18013000 0! #18013500 1! #18014000 0! #18014500 1! #18015000 0! #18015500 1! #18016000 0! #18016500 1! #18017000 0! #18017500 1! #18018000 0! #18018500 1! #18019000 0! #18019500 1! #18020000 0! #18020500 1! #18021000 0! #18021500 1! #18022000 0! #18022500 1! #18023000 0! #18023500 1! #18024000 0! #18024500 1! #18025000 0! #18025500 1! #18026000 0! #18026500 1! #18027000 0! #18027500 1! #18028000 0! #18028500 1! #18029000 0! #18029500 1! #18030000 0! #18030500 1! #18031000 0! #18031500 1! #18032000 0! #18032500 1! #18033000 0! #18033500 1! #18034000 0! #18034500 1! #18035000 0! #18035500 1! #18036000 0! #18036500 1! #18037000 0! #18037500 1! #18038000 0! #18038500 1! #18039000 0! #18039500 1! #18040000 0! #18040500 1! #18041000 0! #18041500 1! #18042000 0! #18042500 1! #18043000 0! #18043500 1! #18044000 0! #18044500 1! #18045000 0! #18045500 1! #18046000 0! #18046500 1! #18047000 0! #18047500 1! #18048000 0! #18048500 1! #18049000 0! #18049500 1! #18050000 0! #18050500 1! #18051000 0! #18051500 1! #18052000 0! #18052500 1! #18053000 0! #18053500 1! #18054000 0! #18054500 1! #18055000 0! #18055500 1! #18056000 0! #18056500 1! #18057000 0! #18057500 1! #18058000 0! #18058500 1! #18059000 0! #18059500 1! #18060000 0! #18060500 1! #18061000 0! #18061500 1! #18062000 0! #18062500 1! #18063000 0! #18063500 1! #18064000 0! #18064500 1! #18065000 0! #18065500 1! #18066000 0! #18066500 1! #18067000 0! #18067500 1! #18068000 0! #18068500 1! #18069000 0! #18069500 1! #18070000 0! #18070500 1! #18071000 0! #18071500 1! #18072000 0! #18072500 1! #18073000 0! #18073500 1! #18074000 0! #18074500 1! #18075000 0! #18075500 1! #18076000 0! #18076500 1! #18077000 0! #18077500 1! #18078000 0! #18078500 1! #18079000 0! #18079500 1! #18080000 0! #18080500 1! #18081000 0! #18081500 1! #18082000 0! #18082500 1! #18083000 0! #18083500 1! #18084000 0! #18084500 1! #18085000 0! #18085500 1! #18086000 0! #18086500 1! #18087000 0! #18087500 1! #18088000 0! #18088500 1! #18089000 0! #18089500 1! #18090000 0! #18090500 1! #18091000 0! #18091500 1! #18092000 0! #18092500 1! #18093000 0! #18093500 1! #18094000 0! #18094500 1! #18095000 0! #18095500 1! #18096000 0! #18096500 1! #18097000 0! #18097500 1! #18098000 0! #18098500 1! #18099000 0! #18099500 1! #18100000 0! #18100500 1! #18101000 0! #18101500 1! #18102000 0! #18102500 1! #18103000 0! #18103500 1! #18104000 0! #18104500 1! #18105000 0! #18105500 1! #18106000 0! #18106500 1! #18107000 0! #18107500 1! #18108000 0! #18108500 1! #18109000 0! #18109500 1! #18110000 0! #18110500 1! #18111000 0! #18111500 1! #18112000 0! #18112500 1! #18113000 0! #18113500 1! #18114000 0! #18114500 1! #18115000 0! #18115500 1! #18116000 0! #18116500 1! #18117000 0! #18117500 1! #18118000 0! #18118500 1! #18119000 0! #18119500 1! #18120000 0! #18120500 1! #18121000 0! #18121500 1! #18122000 0! #18122500 1! #18123000 0! #18123500 1! #18124000 0! #18124500 1! #18125000 0! #18125500 1! #18126000 0! #18126500 1! #18127000 0! #18127500 1! #18128000 0! #18128500 1! #18129000 0! #18129500 1! #18130000 0! #18130500 1! #18131000 0! #18131500 1! #18132000 0! #18132500 1! #18133000 0! #18133500 1! #18134000 0! #18134500 1! #18135000 0! #18135500 1! #18136000 0! #18136500 1! #18137000 0! #18137500 1! #18138000 0! #18138500 1! #18139000 0! #18139500 1! #18140000 0! #18140500 1! #18141000 0! #18141500 1! #18142000 0! #18142500 1! #18143000 0! #18143500 1! #18144000 0! #18144500 1! #18145000 0! #18145500 1! #18146000 0! #18146500 1! #18147000 0! #18147500 1! #18148000 0! #18148500 1! #18149000 0! #18149500 1! #18150000 0! #18150500 1! #18151000 0! #18151500 1! #18152000 0! #18152500 1! #18153000 0! #18153500 1! #18154000 0! #18154500 1! #18155000 0! #18155500 1! #18156000 0! #18156500 1! #18157000 0! #18157500 1! #18158000 0! #18158500 1! #18159000 0! #18159500 1! #18160000 0! #18160500 1! #18161000 0! #18161500 1! #18162000 0! #18162500 1! #18163000 0! #18163500 1! #18164000 0! #18164500 1! #18165000 0! #18165500 1! #18166000 0! #18166500 1! #18167000 0! #18167500 1! #18168000 0! #18168500 1! #18169000 0! #18169500 1! #18170000 0! #18170500 1! #18171000 0! #18171500 1! #18172000 0! #18172500 1! #18173000 0! #18173500 1! #18174000 0! #18174500 1! #18175000 0! #18175500 1! #18176000 0! #18176500 1! #18177000 0! #18177500 1! #18178000 0! #18178500 1! #18179000 0! #18179500 1! #18180000 0! #18180500 1! #18181000 0! #18181500 1! #18182000 0! #18182500 1! #18183000 0! #18183500 1! #18184000 0! #18184500 1! #18185000 0! #18185500 1! #18186000 0! #18186500 1! #18187000 0! #18187500 1! #18188000 0! #18188500 1! #18189000 0! #18189500 1! #18190000 0! #18190500 1! #18191000 0! #18191500 1! #18192000 0! #18192500 1! #18193000 0! #18193500 1! #18194000 0! #18194500 1! #18195000 0! #18195500 1! #18196000 0! #18196500 1! #18197000 0! #18197500 1! #18198000 0! #18198500 1! #18199000 0! #18199500 1! #18200000 0! #18200500 1! #18201000 0! #18201500 1! #18202000 0! #18202500 1! #18203000 0! #18203500 1! #18204000 0! #18204500 1! #18205000 0! #18205500 1! #18206000 0! #18206500 1! #18207000 0! #18207500 1! #18208000 0! #18208500 1! #18209000 0! #18209500 1! #18210000 0! #18210500 1! #18211000 0! #18211500 1! #18212000 0! #18212500 1! #18213000 0! #18213500 1! #18214000 0! #18214500 1! #18215000 0! #18215500 1! #18216000 0! #18216500 1! #18217000 0! #18217500 1! #18218000 0! #18218500 1! #18219000 0! #18219500 1! #18220000 0! #18220500 1! #18221000 0! #18221500 1! #18222000 0! #18222500 1! #18223000 0! #18223500 1! #18224000 0! #18224500 1! #18225000 0! #18225500 1! #18226000 0! #18226500 1! #18227000 0! #18227500 1! #18228000 0! #18228500 1! #18229000 0! #18229500 1! #18230000 0! #18230500 1! #18231000 0! #18231500 1! #18232000 0! #18232500 1! #18233000 0! #18233500 1! #18234000 0! #18234500 1! #18235000 0! #18235500 1! #18236000 0! #18236500 1! #18237000 0! #18237500 1! #18238000 0! #18238500 1! #18239000 0! #18239500 1! #18240000 0! #18240500 1! #18241000 0! #18241500 1! #18242000 0! #18242500 1! #18243000 0! #18243500 1! #18244000 0! #18244500 1! #18245000 0! #18245500 1! #18246000 0! #18246500 1! #18247000 0! #18247500 1! #18248000 0! #18248500 1! #18249000 0! #18249500 1! #18250000 0! #18250500 1! #18251000 0! #18251500 1! #18252000 0! #18252500 1! #18253000 0! #18253500 1! #18254000 0! #18254500 1! #18255000 0! #18255500 1! #18256000 0! #18256500 1! #18257000 0! #18257500 1! #18258000 0! #18258500 1! #18259000 0! #18259500 1! #18260000 0! #18260500 1! #18261000 0! #18261500 1! #18262000 0! #18262500 1! #18263000 0! #18263500 1! #18264000 0! #18264500 1! #18265000 0! #18265500 1! #18266000 0! #18266500 1! #18267000 0! #18267500 1! #18268000 0! #18268500 1! #18269000 0! #18269500 1! #18270000 0! #18270500 1! #18271000 0! #18271500 1! #18272000 0! #18272500 1! #18273000 0! #18273500 1! #18274000 0! #18274500 1! #18275000 0! #18275500 1! #18276000 0! #18276500 1! #18277000 0! #18277500 1! #18278000 0! #18278500 1! #18279000 0! #18279500 1! #18280000 0! #18280500 1! #18281000 0! #18281500 1! #18282000 0! #18282500 1! #18283000 0! #18283500 1! #18284000 0! #18284500 1! #18285000 0! #18285500 1! #18286000 0! #18286500 1! #18287000 0! #18287500 1! #18288000 0! #18288500 1! #18289000 0! #18289500 1! #18290000 0! #18290500 1! #18291000 0! #18291500 1! #18292000 0! #18292500 1! #18293000 0! #18293500 1! #18294000 0! #18294500 1! #18295000 0! #18295500 1! #18296000 0! #18296500 1! #18297000 0! #18297500 1! #18298000 0! #18298500 1! #18299000 0! #18299500 1! #18300000 0! #18300500 1! #18301000 0! #18301500 1! #18302000 0! #18302500 1! #18303000 0! #18303500 1! #18304000 0! #18304500 1! #18305000 0! #18305500 1! #18306000 0! #18306500 1! #18307000 0! #18307500 1! #18308000 0! #18308500 1! #18309000 0! #18309500 1! #18310000 0! #18310500 1! #18311000 0! #18311500 1! #18312000 0! #18312500 1! #18313000 0! #18313500 1! #18314000 0! #18314500 1! #18315000 0! #18315500 1! #18316000 0! #18316500 1! #18317000 0! #18317500 1! #18318000 0! #18318500 1! #18319000 0! #18319500 1! #18320000 0! #18320500 1! #18321000 0! #18321500 1! #18322000 0! #18322500 1! #18323000 0! #18323500 1! #18324000 0! #18324500 1! #18325000 0! #18325500 1! #18326000 0! #18326500 1! #18327000 0! #18327500 1! #18328000 0! #18328500 1! #18329000 0! #18329500 1! #18330000 0! #18330500 1! #18331000 0! #18331500 1! #18332000 0! #18332500 1! #18333000 0! #18333500 1! #18334000 0! #18334500 1! #18335000 0! #18335500 1! #18336000 0! #18336500 1! #18337000 0! #18337500 1! #18338000 0! #18338500 1! #18339000 0! #18339500 1! #18340000 0! #18340500 1! #18341000 0! #18341500 1! #18342000 0! #18342500 1! #18343000 0! #18343500 1! #18344000 0! #18344500 1! #18345000 0! #18345500 1! #18346000 0! #18346500 1! #18347000 0! #18347500 1! #18348000 0! #18348500 1! #18349000 0! #18349500 1! #18350000 0! #18350500 1! #18351000 0! #18351500 1! #18352000 0! #18352500 1! #18353000 0! #18353500 1! #18354000 0! #18354500 1! #18355000 0! #18355500 1! #18356000 0! #18356500 1! #18357000 0! #18357500 1! #18358000 0! #18358500 1! #18359000 0! #18359500 1! #18360000 0! #18360500 1! #18361000 0! #18361500 1! #18362000 0! #18362500 1! #18363000 0! #18363500 1! #18364000 0! #18364500 1! #18365000 0! #18365500 1! #18366000 0! #18366500 1! #18367000 0! #18367500 1! #18368000 0! #18368500 1! #18369000 0! #18369500 1! #18370000 0! #18370500 1! #18371000 0! #18371500 1! #18372000 0! #18372500 1! #18373000 0! #18373500 1! #18374000 0! #18374500 1! #18375000 0! #18375500 1! #18376000 0! #18376500 1! #18377000 0! #18377500 1! #18378000 0! #18378500 1! #18379000 0! #18379500 1! #18380000 0! #18380500 1! #18381000 0! #18381500 1! #18382000 0! #18382500 1! #18383000 0! #18383500 1! #18384000 0! #18384500 1! #18385000 0! #18385500 1! #18386000 0! #18386500 1! #18387000 0! #18387500 1! #18388000 0! #18388500 1! #18389000 0! #18389500 1! #18390000 0! #18390500 1! #18391000 0! #18391500 1! #18392000 0! #18392500 1! #18393000 0! #18393500 1! #18394000 0! #18394500 1! #18395000 0! #18395500 1! #18396000 0! #18396500 1! #18397000 0! #18397500 1! #18398000 0! #18398500 1! #18399000 0! #18399500 1! #18400000 0! #18400500 1! #18401000 0! #18401500 1! #18402000 0! #18402500 1! #18403000 0! #18403500 1! #18404000 0! #18404500 1! #18405000 0! #18405500 1! #18406000 0! #18406500 1! #18407000 0! #18407500 1! #18408000 0! #18408500 1! #18409000 0! #18409500 1! #18410000 0! #18410500 1! #18411000 0! #18411500 1! #18412000 0! #18412500 1! #18413000 0! #18413500 1! #18414000 0! #18414500 1! #18415000 0! #18415500 1! #18416000 0! #18416500 1! #18417000 0! #18417500 1! #18418000 0! #18418500 1! #18419000 0! #18419500 1! #18420000 0! #18420500 1! #18421000 0! #18421500 1! #18422000 0! #18422500 1! #18423000 0! #18423500 1! #18424000 0! #18424500 1! #18425000 0! #18425500 1! #18426000 0! #18426500 1! #18427000 0! #18427500 1! #18428000 0! #18428500 1! #18429000 0! #18429500 1! #18430000 0! #18430500 1! #18431000 0! #18431500 1! #18432000 0! #18432500 1! #18433000 0! #18433500 1! #18434000 0! #18434500 1! #18435000 0! #18435500 1! #18436000 0! #18436500 1! #18437000 0! #18437500 1! #18438000 0! #18438500 1! #18439000 0! #18439500 1! #18440000 0! #18440500 1! #18441000 0! #18441500 1! #18442000 0! #18442500 1! #18443000 0! #18443500 1! #18444000 0! #18444500 1! #18445000 0! #18445500 1! #18446000 0! #18446500 1! #18447000 0! #18447500 1! #18448000 0! #18448500 1! #18449000 0! #18449500 1! #18450000 0! #18450500 1! #18451000 0! #18451500 1! #18452000 0! #18452500 1! #18453000 0! #18453500 1! #18454000 0! #18454500 1! #18455000 0! #18455500 1! #18456000 0! #18456500 1! #18457000 0! #18457500 1! #18458000 0! #18458500 1! #18459000 0! #18459500 1! #18460000 0! #18460500 1! #18461000 0! #18461500 1! #18462000 0! #18462500 1! #18463000 0! #18463500 1! #18464000 0! #18464500 1! #18465000 0! #18465500 1! #18466000 0! #18466500 1! #18467000 0! #18467500 1! #18468000 0! #18468500 1! #18469000 0! #18469500 1! #18470000 0! #18470500 1! #18471000 0! #18471500 1! #18472000 0! #18472500 1! #18473000 0! #18473500 1! #18474000 0! #18474500 1! #18475000 0! #18475500 1! #18476000 0! #18476500 1! #18477000 0! #18477500 1! #18478000 0! #18478500 1! #18479000 0! #18479500 1! #18480000 0! #18480500 1! #18481000 0! #18481500 1! #18482000 0! #18482500 1! #18483000 0! #18483500 1! #18484000 0! #18484500 1! #18485000 0! #18485500 1! #18486000 0! #18486500 1! #18487000 0! #18487500 1! #18488000 0! #18488500 1! #18489000 0! #18489500 1! #18490000 0! #18490500 1! #18491000 0! #18491500 1! #18492000 0! #18492500 1! #18493000 0! #18493500 1! #18494000 0! #18494500 1! #18495000 0! #18495500 1! #18496000 0! #18496500 1! #18497000 0! #18497500 1! #18498000 0! #18498500 1! #18499000 0! #18499500 1! #18500000 0! #18500500 1! #18501000 0! #18501500 1! #18502000 0! #18502500 1! #18503000 0! #18503500 1! #18504000 0! #18504500 1! #18505000 0! #18505500 1! #18506000 0! #18506500 1! #18507000 0! #18507500 1! #18508000 0! #18508500 1! #18509000 0! #18509500 1! #18510000 0! #18510500 1! #18511000 0! #18511500 1! #18512000 0! #18512500 1! #18513000 0! #18513500 1! #18514000 0! #18514500 1! #18515000 0! #18515500 1! #18516000 0! #18516500 1! #18517000 0! #18517500 1! #18518000 0! #18518500 1! #18519000 0! #18519500 1! #18520000 0! #18520500 1! #18521000 0! #18521500 1! #18522000 0! #18522500 1! #18523000 0! #18523500 1! #18524000 0! #18524500 1! #18525000 0! #18525500 1! #18526000 0! #18526500 1! #18527000 0! #18527500 1! #18528000 0! #18528500 1! #18529000 0! #18529500 1! #18530000 0! #18530500 1! #18531000 0! #18531500 1! #18532000 0! #18532500 1! #18533000 0! #18533500 1! #18534000 0! #18534500 1! #18535000 0! #18535500 1! #18536000 0! #18536500 1! #18537000 0! #18537500 1! #18538000 0! #18538500 1! #18539000 0! #18539500 1! #18540000 0! #18540500 1! #18541000 0! #18541500 1! #18542000 0! #18542500 1! #18543000 0! #18543500 1! #18544000 0! #18544500 1! #18545000 0! #18545500 1! #18546000 0! #18546500 1! #18547000 0! #18547500 1! #18548000 0! #18548500 1! #18549000 0! #18549500 1! #18550000 0! #18550500 1! #18551000 0! #18551500 1! #18552000 0! #18552500 1! #18553000 0! #18553500 1! #18554000 0! #18554500 1! #18555000 0! #18555500 1! #18556000 0! #18556500 1! #18557000 0! #18557500 1! #18558000 0! #18558500 1! #18559000 0! #18559500 1! #18560000 0! #18560500 1! #18561000 0! #18561500 1! #18562000 0! #18562500 1! #18563000 0! #18563500 1! #18564000 0! #18564500 1! #18565000 0! #18565500 1! #18566000 0! #18566500 1! #18567000 0! #18567500 1! #18568000 0! #18568500 1! #18569000 0! #18569500 1! #18570000 0! #18570500 1! #18571000 0! #18571500 1! #18572000 0! #18572500 1! #18573000 0! #18573500 1! #18574000 0! #18574500 1! #18575000 0! #18575500 1! #18576000 0! #18576500 1! #18577000 0! #18577500 1! #18578000 0! #18578500 1! #18579000 0! #18579500 1! #18580000 0! #18580500 1! #18581000 0! #18581500 1! #18582000 0! #18582500 1! #18583000 0! #18583500 1! #18584000 0! #18584500 1! #18585000 0! #18585500 1! #18586000 0! #18586500 1! #18587000 0! #18587500 1! #18588000 0! #18588500 1! #18589000 0! #18589500 1! #18590000 0! #18590500 1! #18591000 0! #18591500 1! #18592000 0! #18592500 1! #18593000 0! #18593500 1! #18594000 0! #18594500 1! #18595000 0! #18595500 1! #18596000 0! #18596500 1! #18597000 0! #18597500 1! #18598000 0! #18598500 1! #18599000 0! #18599500 1! #18600000 0! #18600500 1! #18601000 0! #18601500 1! #18602000 0! #18602500 1! #18603000 0! #18603500 1! #18604000 0! #18604500 1! #18605000 0! #18605500 1! #18606000 0! #18606500 1! #18607000 0! #18607500 1! #18608000 0! #18608500 1! #18609000 0! #18609500 1! #18610000 0! #18610500 1! #18611000 0! #18611500 1! #18612000 0! #18612500 1! #18613000 0! #18613500 1! #18614000 0! #18614500 1! #18615000 0! #18615500 1! #18616000 0! #18616500 1! #18617000 0! #18617500 1! #18618000 0! #18618500 1! #18619000 0! #18619500 1! #18620000 0! #18620500 1! #18621000 0! #18621500 1! #18622000 0! #18622500 1! #18623000 0! #18623500 1! #18624000 0! #18624500 1! #18625000 0! #18625500 1! #18626000 0! #18626500 1! #18627000 0! #18627500 1! #18628000 0! #18628500 1! #18629000 0! #18629500 1! #18630000 0! #18630500 1! #18631000 0! #18631500 1! #18632000 0! #18632500 1! #18633000 0! #18633500 1! #18634000 0! #18634500 1! #18635000 0! #18635500 1! #18636000 0! #18636500 1! #18637000 0! #18637500 1! #18638000 0! #18638500 1! #18639000 0! #18639500 1! #18640000 0! #18640500 1! #18641000 0! #18641500 1! #18642000 0! #18642500 1! #18643000 0! #18643500 1! #18644000 0! #18644500 1! #18645000 0! #18645500 1! #18646000 0! #18646500 1! #18647000 0! #18647500 1! #18648000 0! #18648500 1! #18649000 0! #18649500 1! #18650000 0! #18650500 1! #18651000 0! #18651500 1! #18652000 0! #18652500 1! #18653000 0! #18653500 1! #18654000 0! #18654500 1! #18655000 0! #18655500 1! #18656000 0! #18656500 1! #18657000 0! #18657500 1! #18658000 0! #18658500 1! #18659000 0! #18659500 1! #18660000 0! #18660500 1! #18661000 0! #18661500 1! #18662000 0! #18662500 1! #18663000 0! #18663500 1! #18664000 0! #18664500 1! #18665000 0! #18665500 1! #18666000 0! #18666500 1! #18667000 0! #18667500 1! #18668000 0! #18668500 1! #18669000 0! #18669500 1! #18670000 0! #18670500 1! #18671000 0! #18671500 1! #18672000 0! #18672500 1! #18673000 0! #18673500 1! #18674000 0! #18674500 1! #18675000 0! #18675500 1! #18676000 0! #18676500 1! #18677000 0! #18677500 1! #18678000 0! #18678500 1! #18679000 0! #18679500 1! #18680000 0! #18680500 1! #18681000 0! #18681500 1! #18682000 0! #18682500 1! #18683000 0! #18683500 1! #18684000 0! #18684500 1! #18685000 0! #18685500 1! #18686000 0! #18686500 1! #18687000 0! #18687500 1! #18688000 0! #18688500 1! #18689000 0! #18689500 1! #18690000 0! #18690500 1! #18691000 0! #18691500 1! #18692000 0! #18692500 1! #18693000 0! #18693500 1! #18694000 0! #18694500 1! #18695000 0! #18695500 1! #18696000 0! #18696500 1! #18697000 0! #18697500 1! #18698000 0! #18698500 1! #18699000 0! #18699500 1! #18700000 0! #18700500 1! #18701000 0! #18701500 1! #18702000 0! #18702500 1! #18703000 0! #18703500 1! #18704000 0! #18704500 1! #18705000 0! #18705500 1! #18706000 0! #18706500 1! #18707000 0! #18707500 1! #18708000 0! #18708500 1! #18709000 0! #18709500 1! #18710000 0! #18710500 1! #18711000 0! #18711500 1! #18712000 0! #18712500 1! #18713000 0! #18713500 1! #18714000 0! #18714500 1! #18715000 0! #18715500 1! #18716000 0! #18716500 1! #18717000 0! #18717500 1! #18718000 0! #18718500 1! #18719000 0! #18719500 1! #18720000 0! #18720500 1! #18721000 0! #18721500 1! #18722000 0! #18722500 1! #18723000 0! #18723500 1! #18724000 0! #18724500 1! #18725000 0! #18725500 1! #18726000 0! #18726500 1! #18727000 0! #18727500 1! #18728000 0! #18728500 1! #18729000 0! #18729500 1! #18730000 0! #18730500 1! #18731000 0! #18731500 1! #18732000 0! #18732500 1! #18733000 0! #18733500 1! #18734000 0! #18734500 1! #18735000 0! #18735500 1! #18736000 0! #18736500 1! #18737000 0! #18737500 1! #18738000 0! #18738500 1! #18739000 0! #18739500 1! #18740000 0! #18740500 1! #18741000 0! #18741500 1! #18742000 0! #18742500 1! #18743000 0! #18743500 1! #18744000 0! #18744500 1! #18745000 0! #18745500 1! #18746000 0! #18746500 1! #18747000 0! #18747500 1! #18748000 0! #18748500 1! #18749000 0! #18749500 1! #18750000 0! #18750500 1! #18751000 0! #18751500 1! #18752000 0! #18752500 1! #18753000 0! #18753500 1! #18754000 0! #18754500 1! #18755000 0! #18755500 1! #18756000 0! #18756500 1! #18757000 0! #18757500 1! #18758000 0! #18758500 1! #18759000 0! #18759500 1! #18760000 0! #18760500 1! #18761000 0! #18761500 1! #18762000 0! #18762500 1! #18763000 0! #18763500 1! #18764000 0! #18764500 1! #18765000 0! #18765500 1! #18766000 0! #18766500 1! #18767000 0! #18767500 1! #18768000 0! #18768500 1! #18769000 0! #18769500 1! #18770000 0! #18770500 1! #18771000 0! #18771500 1! #18772000 0! #18772500 1! #18773000 0! #18773500 1! #18774000 0! #18774500 1! #18775000 0! #18775500 1! #18776000 0! #18776500 1! #18777000 0! #18777500 1! #18778000 0! #18778500 1! #18779000 0! #18779500 1! #18780000 0! #18780500 1! #18781000 0! #18781500 1! #18782000 0! #18782500 1! #18783000 0! #18783500 1! #18784000 0! #18784500 1! #18785000 0! #18785500 1! #18786000 0! #18786500 1! #18787000 0! #18787500 1! #18788000 0! #18788500 1! #18789000 0! #18789500 1! #18790000 0! #18790500 1! #18791000 0! #18791500 1! #18792000 0! #18792500 1! #18793000 0! #18793500 1! #18794000 0! #18794500 1! #18795000 0! #18795500 1! #18796000 0! #18796500 1! #18797000 0! #18797500 1! #18798000 0! #18798500 1! #18799000 0! #18799500 1! #18800000 0! #18800500 1! #18801000 0! #18801500 1! #18802000 0! #18802500 1! #18803000 0! #18803500 1! #18804000 0! #18804500 1! #18805000 0! #18805500 1! #18806000 0! #18806500 1! #18807000 0! #18807500 1! #18808000 0! #18808500 1! #18809000 0! #18809500 1! #18810000 0! #18810500 1! #18811000 0! #18811500 1! #18812000 0! #18812500 1! #18813000 0! #18813500 1! #18814000 0! #18814500 1! #18815000 0! #18815500 1! #18816000 0! #18816500 1! #18817000 0! #18817500 1! #18818000 0! #18818500 1! #18819000 0! #18819500 1! #18820000 0! #18820500 1! #18821000 0! #18821500 1! #18822000 0! #18822500 1! #18823000 0! #18823500 1! #18824000 0! #18824500 1! #18825000 0! #18825500 1! #18826000 0! #18826500 1! #18827000 0! #18827500 1! #18828000 0! #18828500 1! #18829000 0! #18829500 1! #18830000 0! #18830500 1! #18831000 0! #18831500 1! #18832000 0! #18832500 1! #18833000 0! #18833500 1! #18834000 0! #18834500 1! #18835000 0! #18835500 1! #18836000 0! #18836500 1! #18837000 0! #18837500 1! #18838000 0! #18838500 1! #18839000 0! #18839500 1! #18840000 0! #18840500 1! #18841000 0! #18841500 1! #18842000 0! #18842500 1! #18843000 0! #18843500 1! #18844000 0! #18844500 1! #18845000 0! #18845500 1! #18846000 0! #18846500 1! #18847000 0! #18847500 1! #18848000 0! #18848500 1! #18849000 0! #18849500 1! #18850000 0! #18850500 1! #18851000 0! #18851500 1! #18852000 0! #18852500 1! #18853000 0! #18853500 1! #18854000 0! #18854500 1! #18855000 0! #18855500 1! #18856000 0! #18856500 1! #18857000 0! #18857500 1! #18858000 0! #18858500 1! #18859000 0! #18859500 1! #18860000 0! #18860500 1! #18861000 0! #18861500 1! #18862000 0! #18862500 1! #18863000 0! #18863500 1! #18864000 0! #18864500 1! #18865000 0! #18865500 1! #18866000 0! #18866500 1! #18867000 0! #18867500 1! #18868000 0! #18868500 1! #18869000 0! #18869500 1! #18870000 0! #18870500 1! #18871000 0! #18871500 1! #18872000 0! #18872500 1! #18873000 0! #18873500 1! #18874000 0! #18874500 1! #18875000 0! #18875500 1! #18876000 0! #18876500 1! #18877000 0! #18877500 1! #18878000 0! #18878500 1! #18879000 0! #18879500 1! #18880000 0! #18880500 1! #18881000 0! #18881500 1! #18882000 0! #18882500 1! #18883000 0! #18883500 1! #18884000 0! #18884500 1! #18885000 0! #18885500 1! #18886000 0! #18886500 1! #18887000 0! #18887500 1! #18888000 0! #18888500 1! #18889000 0! #18889500 1! #18890000 0! #18890500 1! #18891000 0! #18891500 1! #18892000 0! #18892500 1! #18893000 0! #18893500 1! #18894000 0! #18894500 1! #18895000 0! #18895500 1! #18896000 0! #18896500 1! #18897000 0! #18897500 1! #18898000 0! #18898500 1! #18899000 0! #18899500 1! #18900000 0! #18900500 1! #18901000 0! #18901500 1! #18902000 0! #18902500 1! #18903000 0! #18903500 1! #18904000 0! #18904500 1! #18905000 0! #18905500 1! #18906000 0! #18906500 1! #18907000 0! #18907500 1! #18908000 0! #18908500 1! #18909000 0! #18909500 1! #18910000 0! #18910500 1! #18911000 0! #18911500 1! #18912000 0! #18912500 1! #18913000 0! #18913500 1! #18914000 0! #18914500 1! #18915000 0! #18915500 1! #18916000 0! #18916500 1! #18917000 0! #18917500 1! #18918000 0! #18918500 1! #18919000 0! #18919500 1! #18920000 0! #18920500 1! #18921000 0! #18921500 1! #18922000 0! #18922500 1! #18923000 0! #18923500 1! #18924000 0! #18924500 1! #18925000 0! #18925500 1! #18926000 0! #18926500 1! #18927000 0! #18927500 1! #18928000 0! #18928500 1! #18929000 0! #18929500 1! #18930000 0! #18930500 1! #18931000 0! #18931500 1! #18932000 0! #18932500 1! #18933000 0! #18933500 1! #18934000 0! #18934500 1! #18935000 0! #18935500 1! #18936000 0! #18936500 1! #18937000 0! #18937500 1! #18938000 0! #18938500 1! #18939000 0! #18939500 1! #18940000 0! #18940500 1! #18941000 0! #18941500 1! #18942000 0! #18942500 1! #18943000 0! #18943500 1! #18944000 0! #18944500 1! #18945000 0! #18945500 1! #18946000 0! #18946500 1! #18947000 0! #18947500 1! #18948000 0! #18948500 1! #18949000 0! #18949500 1! #18950000 0! #18950500 1! #18951000 0! #18951500 1! #18952000 0! #18952500 1! #18953000 0! #18953500 1! #18954000 0! #18954500 1! #18955000 0! #18955500 1! #18956000 0! #18956500 1! #18957000 0! #18957500 1! #18958000 0! #18958500 1! #18959000 0! #18959500 1! #18960000 0! #18960500 1! #18961000 0! #18961500 1! #18962000 0! #18962500 1! #18963000 0! #18963500 1! #18964000 0! #18964500 1! #18965000 0! #18965500 1! #18966000 0! #18966500 1! #18967000 0! #18967500 1! #18968000 0! #18968500 1! #18969000 0! #18969500 1! #18970000 0! #18970500 1! #18971000 0! #18971500 1! #18972000 0! #18972500 1! #18973000 0! #18973500 1! #18974000 0! #18974500 1! #18975000 0! #18975500 1! #18976000 0! #18976500 1! #18977000 0! #18977500 1! #18978000 0! #18978500 1! #18979000 0! #18979500 1! #18980000 0! #18980500 1! #18981000 0! #18981500 1! #18982000 0! #18982500 1! #18983000 0! #18983500 1! #18984000 0! #18984500 1! #18985000 0! #18985500 1! #18986000 0! #18986500 1! #18987000 0! #18987500 1! #18988000 0! #18988500 1! #18989000 0! #18989500 1! #18990000 0! #18990500 1! #18991000 0! #18991500 1! #18992000 0! #18992500 1! #18993000 0! #18993500 1! #18994000 0! #18994500 1! #18995000 0! #18995500 1! #18996000 0! #18996500 1! #18997000 0! #18997500 1! #18998000 0! #18998500 1! #18999000 0! #18999500 1! #19000000 0! #19000500 1! #19001000 0! #19001500 1! #19002000 0! #19002500 1! #19003000 0! #19003500 1! #19004000 0! #19004500 1! #19005000 0! #19005500 1! #19006000 0! #19006500 1! #19007000 0! #19007500 1! #19008000 0! #19008500 1! #19009000 0! #19009500 1! #19010000 0! #19010500 1! #19011000 0! #19011500 1! #19012000 0! #19012500 1! #19013000 0! #19013500 1! #19014000 0! #19014500 1! #19015000 0! #19015500 1! #19016000 0! #19016500 1! #19017000 0! #19017500 1! #19018000 0! #19018500 1! #19019000 0! #19019500 1! #19020000 0! #19020500 1! #19021000 0! #19021500 1! #19022000 0! #19022500 1! #19023000 0! #19023500 1! #19024000 0! #19024500 1! #19025000 0! #19025500 1! #19026000 0! #19026500 1! #19027000 0! #19027500 1! #19028000 0! #19028500 1! #19029000 0! #19029500 1! #19030000 0! #19030500 1! #19031000 0! #19031500 1! #19032000 0! #19032500 1! #19033000 0! #19033500 1! #19034000 0! #19034500 1! #19035000 0! #19035500 1! #19036000 0! #19036500 1! #19037000 0! #19037500 1! #19038000 0! #19038500 1! #19039000 0! #19039500 1! #19040000 0! #19040500 1! #19041000 0! #19041500 1! #19042000 0! #19042500 1! #19043000 0! #19043500 1! #19044000 0! #19044500 1! #19045000 0! #19045500 1! #19046000 0! #19046500 1! #19047000 0! #19047500 1! #19048000 0! #19048500 1! #19049000 0! #19049500 1! #19050000 0! #19050500 1! #19051000 0! #19051500 1! #19052000 0! #19052500 1! #19053000 0! #19053500 1! #19054000 0! #19054500 1! #19055000 0! #19055500 1! #19056000 0! #19056500 1! #19057000 0! #19057500 1! #19058000 0! #19058500 1! #19059000 0! #19059500 1! #19060000 0! #19060500 1! #19061000 0! #19061500 1! #19062000 0! #19062500 1! #19063000 0! #19063500 1! #19064000 0! #19064500 1! #19065000 0! #19065500 1! #19066000 0! #19066500 1! #19067000 0! #19067500 1! #19068000 0! #19068500 1! #19069000 0! #19069500 1! #19070000 0! #19070500 1! #19071000 0! #19071500 1! #19072000 0! #19072500 1! #19073000 0! #19073500 1! #19074000 0! #19074500 1! #19075000 0! #19075500 1! #19076000 0! #19076500 1! #19077000 0! #19077500 1! #19078000 0! #19078500 1! #19079000 0! #19079500 1! #19080000 0! #19080500 1! #19081000 0! #19081500 1! #19082000 0! #19082500 1! #19083000 0! #19083500 1! #19084000 0! #19084500 1! #19085000 0! #19085500 1! #19086000 0! #19086500 1! #19087000 0! #19087500 1! #19088000 0! #19088500 1! #19089000 0! #19089500 1! #19090000 0! #19090500 1! #19091000 0! #19091500 1! #19092000 0! #19092500 1! #19093000 0! #19093500 1! #19094000 0! #19094500 1! #19095000 0! #19095500 1! #19096000 0! #19096500 1! #19097000 0! #19097500 1! #19098000 0! #19098500 1! #19099000 0! #19099500 1! #19100000 0! #19100500 1! #19101000 0! #19101500 1! #19102000 0! #19102500 1! #19103000 0! #19103500 1! #19104000 0! #19104500 1! #19105000 0! #19105500 1! #19106000 0! #19106500 1! #19107000 0! #19107500 1! #19108000 0! #19108500 1! #19109000 0! #19109500 1! #19110000 0! #19110500 1! #19111000 0! #19111500 1! #19112000 0! #19112500 1! #19113000 0! #19113500 1! #19114000 0! #19114500 1! #19115000 0! #19115500 1! #19116000 0! #19116500 1! #19117000 0! #19117500 1! #19118000 0! #19118500 1! #19119000 0! #19119500 1! #19120000 0! #19120500 1! #19121000 0! #19121500 1! #19122000 0! #19122500 1! #19123000 0! #19123500 1! #19124000 0! #19124500 1! #19125000 0! #19125500 1! #19126000 0! #19126500 1! #19127000 0! #19127500 1! #19128000 0! #19128500 1! #19129000 0! #19129500 1! #19130000 0! #19130500 1! #19131000 0! #19131500 1! #19132000 0! #19132500 1! #19133000 0! #19133500 1! #19134000 0! #19134500 1! #19135000 0! #19135500 1! #19136000 0! #19136500 1! #19137000 0! #19137500 1! #19138000 0! #19138500 1! #19139000 0! #19139500 1! #19140000 0! #19140500 1! #19141000 0! #19141500 1! #19142000 0! #19142500 1! #19143000 0! #19143500 1! #19144000 0! #19144500 1! #19145000 0! #19145500 1! #19146000 0! #19146500 1! #19147000 0! #19147500 1! #19148000 0! #19148500 1! #19149000 0! #19149500 1! #19150000 0! #19150500 1! #19151000 0! #19151500 1! #19152000 0! #19152500 1! #19153000 0! #19153500 1! #19154000 0! #19154500 1! #19155000 0! #19155500 1! #19156000 0! #19156500 1! #19157000 0! #19157500 1! #19158000 0! #19158500 1! #19159000 0! #19159500 1! #19160000 0! #19160500 1! #19161000 0! #19161500 1! #19162000 0! #19162500 1! #19163000 0! #19163500 1! #19164000 0! #19164500 1! #19165000 0! #19165500 1! #19166000 0! #19166500 1! #19167000 0! #19167500 1! #19168000 0! #19168500 1! #19169000 0! #19169500 1! #19170000 0! #19170500 1! #19171000 0! #19171500 1! #19172000 0! #19172500 1! #19173000 0! #19173500 1! #19174000 0! #19174500 1! #19175000 0! #19175500 1! #19176000 0! #19176500 1! #19177000 0! #19177500 1! #19178000 0! #19178500 1! #19179000 0! #19179500 1! #19180000 0! #19180500 1! #19181000 0! #19181500 1! #19182000 0! #19182500 1! #19183000 0! #19183500 1! #19184000 0! #19184500 1! #19185000 0! #19185500 1! #19186000 0! #19186500 1! #19187000 0! #19187500 1! #19188000 0! #19188500 1! #19189000 0! #19189500 1! #19190000 0! #19190500 1! #19191000 0! #19191500 1! #19192000 0! #19192500 1! #19193000 0! #19193500 1! #19194000 0! #19194500 1! #19195000 0! #19195500 1! #19196000 0! #19196500 1! #19197000 0! #19197500 1! #19198000 0! #19198500 1! #19199000 0! #19199500 1! #19200000 0! #19200500 1! #19201000 0! #19201500 1! #19202000 0! #19202500 1! #19203000 0! #19203500 1! #19204000 0! #19204500 1! #19205000 0! #19205500 1! #19206000 0! #19206500 1! #19207000 0! #19207500 1! #19208000 0! #19208500 1! #19209000 0! #19209500 1! #19210000 0! #19210500 1! #19211000 0! #19211500 1! #19212000 0! #19212500 1! #19213000 0! #19213500 1! #19214000 0! #19214500 1! #19215000 0! #19215500 1! #19216000 0! #19216500 1! #19217000 0! #19217500 1! #19218000 0! #19218500 1! #19219000 0! #19219500 1! #19220000 0! #19220500 1! #19221000 0! #19221500 1! #19222000 0! #19222500 1! #19223000 0! #19223500 1! #19224000 0! #19224500 1! #19225000 0! #19225500 1! #19226000 0! #19226500 1! #19227000 0! #19227500 1! #19228000 0! #19228500 1! #19229000 0! #19229500 1! #19230000 0! #19230500 1! #19231000 0! #19231500 1! #19232000 0! #19232500 1! #19233000 0! #19233500 1! #19234000 0! #19234500 1! #19235000 0! #19235500 1! #19236000 0! #19236500 1! #19237000 0! #19237500 1! #19238000 0! #19238500 1! #19239000 0! #19239500 1! #19240000 0! #19240500 1! #19241000 0! #19241500 1! #19242000 0! #19242500 1! #19243000 0! #19243500 1! #19244000 0! #19244500 1! #19245000 0! #19245500 1! #19246000 0! #19246500 1! #19247000 0! #19247500 1! #19248000 0! #19248500 1! #19249000 0! #19249500 1! #19250000 0! #19250500 1! #19251000 0! #19251500 1! #19252000 0! #19252500 1! #19253000 0! #19253500 1! #19254000 0! #19254500 1! #19255000 0! #19255500 1! #19256000 0! #19256500 1! #19257000 0! #19257500 1! #19258000 0! #19258500 1! #19259000 0! #19259500 1! #19260000 0! #19260500 1! #19261000 0! #19261500 1! #19262000 0! #19262500 1! #19263000 0! #19263500 1! #19264000 0! #19264500 1! #19265000 0! #19265500 1! #19266000 0! #19266500 1! #19267000 0! #19267500 1! #19268000 0! #19268500 1! #19269000 0! #19269500 1! #19270000 0! #19270500 1! #19271000 0! #19271500 1! #19272000 0! #19272500 1! #19273000 0! #19273500 1! #19274000 0! #19274500 1! #19275000 0! #19275500 1! #19276000 0! #19276500 1! #19277000 0! #19277500 1! #19278000 0! #19278500 1! #19279000 0! #19279500 1! #19280000 0! #19280500 1! #19281000 0! #19281500 1! #19282000 0! #19282500 1! #19283000 0! #19283500 1! #19284000 0! #19284500 1! #19285000 0! #19285500 1! #19286000 0! #19286500 1! #19287000 0! #19287500 1! #19288000 0! #19288500 1! #19289000 0! #19289500 1! #19290000 0! #19290500 1! #19291000 0! #19291500 1! #19292000 0! #19292500 1! #19293000 0! #19293500 1! #19294000 0! #19294500 1! #19295000 0! #19295500 1! #19296000 0! #19296500 1! #19297000 0! #19297500 1! #19298000 0! #19298500 1! #19299000 0! #19299500 1! #19300000 0! #19300500 1! #19301000 0! #19301500 1! #19302000 0! #19302500 1! #19303000 0! #19303500 1! #19304000 0! #19304500 1! #19305000 0! #19305500 1! #19306000 0! #19306500 1! #19307000 0! #19307500 1! #19308000 0! #19308500 1! #19309000 0! #19309500 1! #19310000 0! #19310500 1! #19311000 0! #19311500 1! #19312000 0! #19312500 1! #19313000 0! #19313500 1! #19314000 0! #19314500 1! #19315000 0! #19315500 1! #19316000 0! #19316500 1! #19317000 0! #19317500 1! #19318000 0! #19318500 1! #19319000 0! #19319500 1! #19320000 0! #19320500 1! #19321000 0! #19321500 1! #19322000 0! #19322500 1! #19323000 0! #19323500 1! #19324000 0! #19324500 1! #19325000 0! #19325500 1! #19326000 0! #19326500 1! #19327000 0! #19327500 1! #19328000 0! #19328500 1! #19329000 0! #19329500 1! #19330000 0! #19330500 1! #19331000 0! #19331500 1! #19332000 0! #19332500 1! #19333000 0! #19333500 1! #19334000 0! #19334500 1! #19335000 0! #19335500 1! #19336000 0! #19336500 1! #19337000 0! #19337500 1! #19338000 0! #19338500 1! #19339000 0! #19339500 1! #19340000 0! #19340500 1! #19341000 0! #19341500 1! #19342000 0! #19342500 1! #19343000 0! #19343500 1! #19344000 0! #19344500 1! #19345000 0! #19345500 1! #19346000 0! #19346500 1! #19347000 0! #19347500 1! #19348000 0! #19348500 1! #19349000 0! #19349500 1! #19350000 0! #19350500 1! #19351000 0! #19351500 1! #19352000 0! #19352500 1! #19353000 0! #19353500 1! #19354000 0! #19354500 1! #19355000 0! #19355500 1! #19356000 0! #19356500 1! #19357000 0! #19357500 1! #19358000 0! #19358500 1! #19359000 0! #19359500 1! #19360000 0! #19360500 1! #19361000 0! #19361500 1! #19362000 0! #19362500 1! #19363000 0! #19363500 1! #19364000 0! #19364500 1! #19365000 0! #19365500 1! #19366000 0! #19366500 1! #19367000 0! #19367500 1! #19368000 0! #19368500 1! #19369000 0! #19369500 1! #19370000 0! #19370500 1! #19371000 0! #19371500 1! #19372000 0! #19372500 1! #19373000 0! #19373500 1! #19374000 0! #19374500 1! #19375000 0! #19375500 1! #19376000 0! #19376500 1! #19377000 0! #19377500 1! #19378000 0! #19378500 1! #19379000 0! #19379500 1! #19380000 0! #19380500 1! #19381000 0! #19381500 1! #19382000 0! #19382500 1! #19383000 0! #19383500 1! #19384000 0! #19384500 1! #19385000 0! #19385500 1! #19386000 0! #19386500 1! #19387000 0! #19387500 1! #19388000 0! #19388500 1! #19389000 0! #19389500 1! #19390000 0! #19390500 1! #19391000 0! #19391500 1! #19392000 0! #19392500 1! #19393000 0! #19393500 1! #19394000 0! #19394500 1! #19395000 0! #19395500 1! #19396000 0! #19396500 1! #19397000 0! #19397500 1! #19398000 0! #19398500 1! #19399000 0! #19399500 1! #19400000 0! #19400500 1! #19401000 0! #19401500 1! #19402000 0! #19402500 1! #19403000 0! #19403500 1! #19404000 0! #19404500 1! #19405000 0! #19405500 1! #19406000 0! #19406500 1! #19407000 0! #19407500 1! #19408000 0! #19408500 1! #19409000 0! #19409500 1! #19410000 0! #19410500 1! #19411000 0! #19411500 1! #19412000 0! #19412500 1! #19413000 0! #19413500 1! #19414000 0! #19414500 1! #19415000 0! #19415500 1! #19416000 0! #19416500 1! #19417000 0! #19417500 1! #19418000 0! #19418500 1! #19419000 0! #19419500 1! #19420000 0! #19420500 1! #19421000 0! #19421500 1! #19422000 0! #19422500 1! #19423000 0! #19423500 1! #19424000 0! #19424500 1! #19425000 0! #19425500 1! #19426000 0! #19426500 1! #19427000 0! #19427500 1! #19428000 0! #19428500 1! #19429000 0! #19429500 1! #19430000 0! #19430500 1! #19431000 0! #19431500 1! #19432000 0! #19432500 1! #19433000 0! #19433500 1! #19434000 0! #19434500 1! #19435000 0! #19435500 1! #19436000 0! #19436500 1! #19437000 0! #19437500 1! #19438000 0! #19438500 1! #19439000 0! #19439500 1! #19440000 0! #19440500 1! #19441000 0! #19441500 1! #19442000 0! #19442500 1! #19443000 0! #19443500 1! #19444000 0! #19444500 1! #19445000 0! #19445500 1! #19446000 0! #19446500 1! #19447000 0! #19447500 1! #19448000 0! #19448500 1! #19449000 0! #19449500 1! #19450000 0! #19450500 1! #19451000 0! #19451500 1! #19452000 0! #19452500 1! #19453000 0! #19453500 1! #19454000 0! #19454500 1! #19455000 0! #19455500 1! #19456000 0! #19456500 1! #19457000 0! #19457500 1! #19458000 0! #19458500 1! #19459000 0! #19459500 1! #19460000 0! #19460500 1! #19461000 0! #19461500 1! #19462000 0! #19462500 1! #19463000 0! #19463500 1! #19464000 0! #19464500 1! #19465000 0! #19465500 1! #19466000 0! #19466500 1! #19467000 0! #19467500 1! #19468000 0! #19468500 1! #19468600 1E 1F 1G b10100000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b0 C 1H #19469000 0! #19469500 1! #19469600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19469700 1E 1F 1G b10010000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1 C 1H #19470000 0! #19470500 1! #19470600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19471000 0! #19471500 1! #19471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11 C #19472000 0! #19472500 1! #19472600 b11 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19473000 0! #19473500 1! #19473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19474000 0! #19474500 1! #19474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19475000 0! #19475500 1! #19475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19476000 0! #19476500 1! #19476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19477000 0! #19477500 1! #19477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19478000 0! #19478500 1! #19478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19479000 0! #19479500 1! #19479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19480000 0! #19480500 1! #19480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19481000 0! #19481500 1! #19481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19482000 0! #19482500 1! #19482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19483000 0! #19483500 1! #19483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19484000 0! #19484500 1! #19484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19485000 0! #19485500 1! #19485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19486000 0! #19486500 1! #19486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19487000 0! #19487500 1! #19487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19488000 0! #19488500 1! #19488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19489000 0! #19489500 1! #19489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19490000 0! #19490500 1! #19490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19491000 0! #19491500 1! #19491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19492000 0! #19492500 1! #19492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19493000 0! #19493500 1! #19493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19494000 0! #19494500 1! #19494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19495000 0! #19495500 1! #19495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19496000 0! #19496500 1! #19496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19497000 0! #19497500 1! #19497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19498000 0! #19498500 1! #19498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19499000 0! #19499500 1! #19499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19500000 0! #19500500 1! #19500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19501000 0! #19501500 1! #19501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19502000 0! #19502500 1! #19502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19503000 0! #19503500 1! #19503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19504000 0! #19504500 1! #19504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19505000 0! #19505500 1! #19505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19506000 0! #19506500 1! #19506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19507000 0! #19507500 1! #19507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19508000 0! #19508500 1! #19508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19509000 0! #19509500 1! #19509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19510000 0! #19510500 1! #19510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19511000 0! #19511500 1! #19511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19512000 0! #19512500 1! #19512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19513000 0! #19513500 1! #19513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19514000 0! #19514500 1! #19514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19515000 0! #19515500 1! #19515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19516000 0! #19516500 1! #19516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19517000 0! #19517500 1! #19517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19518000 0! #19518500 1! #19518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19519000 0! #19519500 1! #19519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19520000 0! #19520500 1! #19520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19521000 0! #19521500 1! #19521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19522000 0! #19522500 1! #19522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19523000 0! #19523500 1! #19523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19524000 0! #19524500 1! #19524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19525000 0! #19525500 1! #19525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19526000 0! #19526500 1! #19526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19527000 0! #19527500 1! #19527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19528000 0! #19528500 1! #19528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19529000 0! #19529500 1! #19529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19530000 0! #19530500 1! #19530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19531000 0! #19531500 1! #19531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19532000 0! #19532500 1! #19532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19533000 0! #19533500 1! #19533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19534000 0! #19534500 1! #19534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19535000 0! #19535500 1! #19535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19536000 0! #19536500 1! #19536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19537000 0! #19537500 1! #19537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19538000 0! #19538500 1! #19538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19539000 0! #19539500 1! #19539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19540000 0! #19540500 1! #19540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19541000 0! #19541500 1! #19541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19542000 0! #19542500 1! #19542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19543000 0! #19543500 1! #19543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19544000 0! #19544500 1! #19544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19545000 0! #19545500 1! #19545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19546000 0! #19546500 1! #19546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19547000 0! #19547500 1! #19547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19548000 0! #19548500 1! #19548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19549000 0! #19549500 1! #19549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19550000 0! #19550500 1! #19550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19551000 0! #19551500 1! #19551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19552000 0! #19552500 1! #19552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19553000 0! #19553500 1! #19553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19554000 0! #19554500 1! #19554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19555000 0! #19555500 1! #19555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19556000 0! #19556500 1! #19556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19557000 0! #19557500 1! #19557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19558000 0! #19558500 1! #19558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19559000 0! #19559500 1! #19559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19560000 0! #19560500 1! #19560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19561000 0! #19561500 1! #19561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19562000 0! #19562500 1! #19562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19563000 0! #19563500 1! #19563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19564000 0! #19564500 1! #19564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19565000 0! #19565500 1! #19565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19566000 0! #19566500 1! #19566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19567000 0! #19567500 1! #19567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19568000 0! #19568500 1! #19568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19569000 0! #19569500 1! #19569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19570000 0! #19570500 1! #19570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19571000 0! #19571500 1! #19571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19572000 0! #19572500 1! #19572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19573000 0! #19573500 1! #19573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19574000 0! #19574500 1! #19574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19575000 0! #19575500 1! #19575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19576000 0! #19576500 1! #19576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19577000 0! #19577500 1! #19577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19578000 0! #19578500 1! #19578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19579000 0! #19579500 1! #19579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19580000 0! #19580500 1! #19580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19581000 0! #19581500 1! #19581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19582000 0! #19582500 1! #19582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19583000 0! #19583500 1! #19583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19584000 0! #19584500 1! #19584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19585000 0! #19585500 1! #19585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19586000 0! #19586500 1! #19586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19587000 0! #19587500 1! #19587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19588000 0! #19588500 1! #19588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19589000 0! #19589500 1! #19589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19590000 0! #19590500 1! #19590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19591000 0! #19591500 1! #19591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19592000 0! #19592500 1! #19592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19593000 0! #19593500 1! #19593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19594000 0! #19594500 1! #19594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19595000 0! #19595500 1! #19595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19596000 0! #19596500 1! #19596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19597000 0! #19597500 1! #19597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19598000 0! #19598500 1! #19598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19599000 0! #19599500 1! #19599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19600000 0! #19600500 1! #19600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19601000 0! #19601500 1! #19601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19602000 0! #19602500 1! #19602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19603000 0! #19603500 1! #19603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19604000 0! #19604500 1! #19604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19605000 0! #19605500 1! #19605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19606000 0! #19606500 1! #19606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19607000 0! #19607500 1! #19607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19608000 0! #19608500 1! #19608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19609000 0! #19609500 1! #19609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19610000 0! #19610500 1! #19610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19611000 0! #19611500 1! #19611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19612000 0! #19612500 1! #19612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19613000 0! #19613500 1! #19613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19614000 0! #19614500 1! #19614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19615000 0! #19615500 1! #19615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19616000 0! #19616500 1! #19616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19617000 0! #19617500 1! #19617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19618000 0! #19618500 1! #19618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19619000 0! #19619500 1! #19619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19620000 0! #19620500 1! #19620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19621000 0! #19621500 1! #19621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19622000 0! #19622500 1! #19622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19623000 0! #19623500 1! #19623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19624000 0! #19624500 1! #19624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19625000 0! #19625500 1! #19625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19626000 0! #19626500 1! #19626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19627000 0! #19627500 1! #19627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19628000 0! #19628500 1! #19628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19629000 0! #19629500 1! #19629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19630000 0! #19630500 1! #19630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19631000 0! #19631500 1! #19631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19632000 0! #19632500 1! #19632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19633000 0! #19633500 1! #19633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19634000 0! #19634500 1! #19634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19635000 0! #19635500 1! #19635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19636000 0! #19636500 1! #19636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19637000 0! #19637500 1! #19637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19638000 0! #19638500 1! #19638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19639000 0! #19639500 1! #19639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19640000 0! #19640500 1! #19640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19641000 0! #19641500 1! #19641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19642000 0! #19642500 1! #19642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19643000 0! #19643500 1! #19643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19644000 0! #19644500 1! #19644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19645000 0! #19645500 1! #19645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19646000 0! #19646500 1! #19646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19647000 0! #19647500 1! #19647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19648000 0! #19648500 1! #19648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19649000 0! #19649500 1! #19649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19650000 0! #19650500 1! #19650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19651000 0! #19651500 1! #19651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19652000 0! #19652500 1! #19652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19653000 0! #19653500 1! #19653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19654000 0! #19654500 1! #19654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19655000 0! #19655500 1! #19655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19656000 0! #19656500 1! #19656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19657000 0! #19657500 1! #19657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19658000 0! #19658500 1! #19658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19659000 0! #19659500 1! #19659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19660000 0! #19660500 1! #19660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19661000 0! #19661500 1! #19661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19662000 0! #19662500 1! #19662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19663000 0! #19663500 1! #19663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #19663700 1_ #19664000 0! #19664500 1! #19664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19665000 0! #19665500 1! #19665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19666000 0! #19666500 1! b1000011 C #19666600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19667000 0! #19667500 1! #19667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19668000 0! #19668500 1! #19668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19669000 0! #19669500 1! #19669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19670000 0! #19670500 1! #19670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19671000 0! #19671500 1! #19671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19672000 0! #19672500 1! #19672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19673000 0! #19673500 1! #19673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19674000 0! #19674500 1! #19674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19675000 0! #19675500 1! #19675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19676000 0! #19676500 1! #19676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19677000 0! #19677500 1! #19677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19678000 0! #19678500 1! #19678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19679000 0! #19679500 1! #19679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19680000 0! #19680500 1! #19680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19681000 0! #19681500 1! #19681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19682000 0! #19682500 1! #19682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19683000 0! #19683500 1! #19683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19684000 0! #19684500 1! #19684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19685000 0! #19685500 1! #19685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19686000 0! #19686500 1! #19686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19687000 0! #19687500 1! #19687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19688000 0! #19688500 1! #19688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19689000 0! #19689500 1! #19689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19690000 0! #19690500 1! #19690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19691000 0! #19691500 1! #19691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19692000 0! #19692500 1! #19692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19693000 0! #19693500 1! #19693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19694000 0! #19694500 1! #19694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19695000 0! #19695500 1! #19695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19696000 0! #19696500 1! #19696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19697000 0! #19697500 1! #19697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19698000 0! #19698500 1! #19698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19699000 0! #19699500 1! #19699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19700000 0! #19700500 1! #19700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19701000 0! #19701500 1! #19701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19702000 0! #19702500 1! #19702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19703000 0! #19703500 1! #19703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19704000 0! #19704500 1! #19704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19705000 0! #19705500 1! #19705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19706000 0! #19706500 1! #19706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19707000 0! #19707500 1! #19707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19708000 0! #19708500 1! #19708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19709000 0! #19709500 1! #19709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19710000 0! #19710500 1! #19710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19711000 0! #19711500 1! #19711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19712000 0! #19712500 1! #19712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19713000 0! #19713500 1! #19713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19714000 0! #19714500 1! #19714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #19715000 0! #19715500 1! #19715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19716000 0! #19716500 1! #19716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19717000 0! #19717500 1! #19717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19718000 0! #19718500 1! #19718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19719000 0! #19719500 1! #19719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19720000 0! #19720500 1! #19720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19721000 0! #19721500 1! #19721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19722000 0! #19722500 1! #19722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19723000 0! #19723500 1! #19723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19724000 0! #19724500 1! #19724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19725000 0! #19725500 1! #19725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19726000 0! #19726500 1! #19726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19727000 0! #19727500 1! #19727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19728000 0! #19728500 1! #19728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19729000 0! #19729500 1! #19729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19730000 0! #19730500 1! #19730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19731000 0! #19731500 1! #19731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19732000 0! #19732500 1! #19732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19733000 0! #19733500 1! #19733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19734000 0! #19734500 1! #19734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19735000 0! #19735500 1! #19735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19736000 0! #19736500 1! #19736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19737000 0! #19737500 1! #19737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19738000 0! #19738500 1! #19738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19739000 0! #19739500 1! #19739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19740000 0! #19740500 1! #19740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19741000 0! #19741500 1! #19741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19742000 0! #19742500 1! #19742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19743000 0! #19743500 1! #19743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19744000 0! #19744500 1! #19744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19745000 0! #19745500 1! #19745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19746000 0! #19746500 1! #19746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19747000 0! #19747500 1! #19747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19748000 0! #19748500 1! #19748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19749000 0! #19749500 1! #19749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19750000 0! #19750500 1! #19750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19751000 0! #19751500 1! #19751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19752000 0! #19752500 1! #19752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19753000 0! #19753500 1! #19753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19754000 0! #19754500 1! #19754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19755000 0! #19755500 1! #19755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19756000 0! #19756500 1! #19756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19757000 0! #19757500 1! #19757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19758000 0! #19758500 1! #19758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19759000 0! #19759500 1! #19759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19760000 0! #19760500 1! #19760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19761000 0! #19761500 1! #19761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19762000 0! #19762500 1! #19762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19763000 0! #19763500 1! #19763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19764000 0! #19764500 1! #19764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19765000 0! #19765500 1! #19765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19766000 0! #19766500 1! #19766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19767000 0! #19767500 1! #19767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19768000 0! #19768500 1! #19768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19769000 0! #19769500 1! #19769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19770000 0! #19770500 1! #19770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19771000 0! #19771500 1! #19771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19772000 0! #19772500 1! #19772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19773000 0! #19773500 1! #19773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19774000 0! #19774500 1! #19774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19775000 0! #19775500 1! #19775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19776000 0! #19776500 1! #19776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19777000 0! #19777500 1! #19777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19778000 0! #19778500 1! #19778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19779000 0! #19779500 1! #19779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19780000 0! #19780500 1! #19780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19781000 0! #19781500 1! #19781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19782000 0! #19782500 1! #19782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19783000 0! #19783500 1! #19783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19784000 0! #19784500 1! #19784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19785000 0! #19785500 1! #19785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19786000 0! #19786500 1! #19786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19787000 0! #19787500 1! #19787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19788000 0! #19788500 1! #19788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19789000 0! #19789500 1! #19789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19790000 0! #19790500 1! #19790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19791000 0! #19791500 1! #19791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19792000 0! #19792500 1! #19792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19793000 0! #19793500 1! #19793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19794000 0! #19794500 1! #19794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19795000 0! #19795500 1! #19795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19796000 0! #19796500 1! #19796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19797000 0! #19797500 1! #19797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19798000 0! #19798500 1! #19798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19799000 0! #19799500 1! #19799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19800000 0! #19800500 1! #19800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19801000 0! #19801500 1! #19801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19802000 0! #19802500 1! #19802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19803000 0! #19803500 1! #19803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19804000 0! #19804500 1! #19804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19805000 0! #19805500 1! #19805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19806000 0! #19806500 1! #19806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19807000 0! #19807500 1! #19807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19808000 0! #19808500 1! #19808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19809000 0! #19809500 1! #19809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19810000 0! #19810500 1! #19810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19811000 0! #19811500 1! #19811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19812000 0! #19812500 1! #19812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19813000 0! #19813500 1! #19813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19814000 0! #19814500 1! #19814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19815000 0! #19815500 1! #19815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19816000 0! #19816500 1! #19816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #19816700 0a #19817000 0! #19817500 1! #19817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19818000 0! #19818500 1! #19818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19819000 0! #19819500 1! #19819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19820000 0! #19820500 1! #19820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19821000 0! #19821500 1! #19821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19822000 0! #19822500 1! #19822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19823000 0! #19823500 1! #19823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19824000 0! #19824500 1! #19824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19825000 0! #19825500 1! #19825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19826000 0! #19826500 1! #19826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19827000 0! #19827500 1! #19827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19828000 0! #19828500 1! #19828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19829000 0! #19829500 1! #19829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19830000 0! #19830500 1! #19830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19831000 0! #19831500 1! #19831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19832000 0! #19832500 1! #19832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19833000 0! #19833500 1! #19833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19834000 0! #19834500 1! #19834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19835000 0! #19835500 1! #19835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19836000 0! #19836500 1! #19836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19837000 0! #19837500 1! #19837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19838000 0! #19838500 1! #19838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19839000 0! #19839500 1! #19839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19840000 0! #19840500 1! #19840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19841000 0! #19841500 1! #19841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19842000 0! #19842500 1! #19842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19843000 0! #19843500 1! #19843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19844000 0! #19844500 1! #19844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19845000 0! #19845500 1! #19845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19846000 0! #19846500 1! #19846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19847000 0! #19847500 1! #19847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19848000 0! #19848500 1! #19848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19849000 0! #19849500 1! #19849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19850000 0! #19850500 1! #19850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19851000 0! #19851500 1! #19851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19852000 0! #19852500 1! #19852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19853000 0! #19853500 1! #19853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19854000 0! #19854500 1! #19854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19855000 0! #19855500 1! #19855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19856000 0! #19856500 1! #19856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19857000 0! #19857500 1! #19857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19858000 0! #19858500 1! #19858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19859000 0! #19859500 1! #19859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19860000 0! #19860500 1! #19860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19861000 0! #19861500 1! #19861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19862000 0! #19862500 1! #19862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19863000 0! #19863500 1! #19863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19864000 0! #19864500 1! #19864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19865000 0! #19865500 1! #19865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19866000 0! #19866500 1! #19866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19867000 0! #19867500 1! #19867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #19867700 1` b11010001 c #19868000 0! #19868500 1! #19868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19869000 0! #19869500 1! #19869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19870000 0! #19870500 1! #19870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19871000 0! #19871500 1! #19871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19872000 0! #19872500 1! #19872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19873000 0! #19873500 1! #19873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19874000 0! #19874500 1! #19874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19875000 0! #19875500 1! #19875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19876000 0! #19876500 1! #19876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19877000 0! #19877500 1! #19877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19878000 0! #19878500 1! #19878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19879000 0! #19879500 1! #19879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19880000 0! #19880500 1! #19880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19881000 0! #19881500 1! #19881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19882000 0! #19882500 1! #19882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19883000 0! #19883500 1! #19883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19884000 0! #19884500 1! #19884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19885000 0! #19885500 1! #19885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19886000 0! #19886500 1! #19886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19887000 0! #19887500 1! #19887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19888000 0! #19888500 1! #19888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19889000 0! #19889500 1! #19889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19890000 0! #19890500 1! #19890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19891000 0! #19891500 1! #19891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19892000 0! #19892500 1! #19892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19893000 0! #19893500 1! #19893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19894000 0! #19894500 1! #19894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19895000 0! #19895500 1! #19895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19896000 0! #19896500 1! #19896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19897000 0! #19897500 1! #19897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19898000 0! #19898500 1! #19898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19899000 0! #19899500 1! #19899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19900000 0! #19900500 1! #19900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19901000 0! #19901500 1! #19901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19902000 0! #19902500 1! #19902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19903000 0! #19903500 1! #19903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19904000 0! #19904500 1! #19904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19905000 0! #19905500 1! #19905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19906000 0! #19906500 1! #19906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19907000 0! #19907500 1! #19907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19908000 0! #19908500 1! #19908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19909000 0! #19909500 1! #19909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19910000 0! #19910500 1! #19910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19911000 0! #19911500 1! #19911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19912000 0! #19912500 1! #19912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19913000 0! #19913500 1! #19913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19914000 0! #19914500 1! #19914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19915000 0! #19915500 1! #19915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19916000 0! #19916500 1! #19916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19917000 0! #19917500 1! #19917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19918000 0! #19918500 1! #19918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19919000 0! #19919500 1! #19919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19920000 0! #19920500 1! #19920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19921000 0! #19921500 1! #19921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19922000 0! #19922500 1! #19922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19923000 0! #19923500 1! #19923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19924000 0! #19924500 1! #19924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19925000 0! #19925500 1! #19925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19926000 0! #19926500 1! #19926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19927000 0! #19927500 1! #19927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19928000 0! #19928500 1! #19928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19929000 0! #19929500 1! #19929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19930000 0! #19930500 1! #19930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19931000 0! #19931500 1! #19931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19932000 0! #19932500 1! #19932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19933000 0! #19933500 1! #19933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19934000 0! #19934500 1! #19934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19935000 0! #19935500 1! #19935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19936000 0! #19936500 1! #19936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19937000 0! #19937500 1! #19937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19938000 0! #19938500 1! #19938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19939000 0! #19939500 1! #19939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19940000 0! #19940500 1! #19940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19941000 0! #19941500 1! #19941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19942000 0! #19942500 1! #19942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19943000 0! #19943500 1! #19943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19944000 0! #19944500 1! #19944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19945000 0! #19945500 1! #19945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19946000 0! #19946500 1! #19946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19947000 0! #19947500 1! #19947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19948000 0! #19948500 1! #19948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19949000 0! #19949500 1! #19949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19950000 0! #19950500 1! #19950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19951000 0! #19951500 1! #19951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19952000 0! #19952500 1! #19952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19953000 0! #19953500 1! #19953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19954000 0! #19954500 1! #19954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19955000 0! #19955500 1! #19955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19956000 0! #19956500 1! #19956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19957000 0! #19957500 1! #19957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19958000 0! #19958500 1! #19958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19959000 0! #19959500 1! #19959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19960000 0! #19960500 1! #19960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19961000 0! #19961500 1! #19961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19962000 0! #19962500 1! #19962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19963000 0! #19963500 1! #19963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19964000 0! #19964500 1! #19964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19965000 0! #19965500 1! #19965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19966000 0! #19966500 1! #19966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19967000 0! #19967500 1! #19967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19968000 0! #19968500 1! #19968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19969000 0! #19969500 1! #19969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #19969700 0i #19970000 0! #19970500 1! #19970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19971000 0! #19971500 1! #19971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19972000 0! #19972500 1! #19972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19973000 0! #19973500 1! #19973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19974000 0! #19974500 1! #19974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19975000 0! #19975500 1! #19975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19976000 0! #19976500 1! #19976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19977000 0! #19977500 1! #19977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19978000 0! #19978500 1! #19978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19979000 0! #19979500 1! #19979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19980000 0! #19980500 1! #19980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19981000 0! #19981500 1! #19981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19982000 0! #19982500 1! #19982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19983000 0! #19983500 1! #19983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19984000 0! #19984500 1! #19984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19985000 0! #19985500 1! #19985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19986000 0! #19986500 1! #19986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19987000 0! #19987500 1! #19987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19988000 0! #19988500 1! #19988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19989000 0! #19989500 1! #19989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19990000 0! #19990500 1! #19990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19991000 0! #19991500 1! #19991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19992000 0! #19992500 1! #19992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19993000 0! #19993500 1! #19993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19994000 0! #19994500 1! #19994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19995000 0! #19995500 1! #19995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19996000 0! #19996500 1! #19996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19997000 0! #19997500 1! #19997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #19998000 0! #19998500 1! #19998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #19999000 0! #19999500 1! #19999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20000000 0! #20000500 1! #20000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20001000 0! #20001500 1! #20001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20002000 0! #20002500 1! #20002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20003000 0! #20003500 1! #20003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20004000 0! #20004500 1! #20004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20005000 0! #20005500 1! #20005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20006000 0! #20006500 1! #20006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20007000 0! #20007500 1! #20007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20008000 0! #20008500 1! #20008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20009000 0! #20009500 1! #20009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20010000 0! #20010500 1! #20010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20011000 0! #20011500 1! #20011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20012000 0! #20012500 1! #20012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20013000 0! #20013500 1! #20013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20014000 0! #20014500 1! #20014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20015000 0! #20015500 1! #20015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20016000 0! #20016500 1! #20016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20017000 0! #20017500 1! #20017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20018000 0! #20018500 1! #20018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20019000 0! #20019500 1! #20019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20020000 0! #20020500 1! #20020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20021000 0! #20021500 1! #20021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20022000 0! #20022500 1! #20022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20023000 0! #20023500 1! #20023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20024000 0! #20024500 1! #20024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20025000 0! #20025500 1! #20025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20026000 0! #20026500 1! #20026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20027000 0! #20027500 1! #20027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20028000 0! #20028500 1! #20028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20029000 0! #20029500 1! #20029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20030000 0! #20030500 1! #20030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20031000 0! #20031500 1! #20031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20032000 0! #20032500 1! #20032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20033000 0! #20033500 1! #20033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20034000 0! #20034500 1! #20034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20035000 0! #20035500 1! #20035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20036000 0! #20036500 1! #20036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20037000 0! #20037500 1! #20037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20038000 0! #20038500 1! #20038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20039000 0! #20039500 1! #20039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20040000 0! #20040500 1! #20040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20041000 0! #20041500 1! #20041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20042000 0! #20042500 1! #20042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20043000 0! #20043500 1! #20043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20044000 0! #20044500 1! #20044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20045000 0! #20045500 1! #20045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20046000 0! #20046500 1! #20046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20047000 0! #20047500 1! #20047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20048000 0! #20048500 1! #20048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20049000 0! #20049500 1! #20049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20050000 0! #20050500 1! #20050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20051000 0! #20051500 1! #20051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20052000 0! #20052500 1! #20052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20053000 0! #20053500 1! #20053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20054000 0! #20054500 1! #20054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20055000 0! #20055500 1! #20055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20056000 0! #20056500 1! #20056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20057000 0! #20057500 1! #20057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20058000 0! #20058500 1! #20058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20059000 0! #20059500 1! #20059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20060000 0! #20060500 1! #20060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20061000 0! #20061500 1! #20061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20062000 0! #20062500 1! #20062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20063000 0! #20063500 1! #20063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20064000 0! #20064500 1! #20064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20065000 0! #20065500 1! #20065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20066000 0! #20066500 1! #20066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20067000 0! #20067500 1! #20067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20068000 0! #20068500 1! #20068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20069000 0! #20069500 1! #20069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20070000 0! #20070500 1! #20070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20071000 0! #20071500 1! #20071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #20071700 0_ 0f #20072000 0! #20072500 1! #20072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20073000 0! #20073500 1! #20073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20074000 0! #20074500 1! #20074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20075000 0! #20075500 1! #20075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20076000 0! #20076500 1! #20076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20077000 0! #20077500 1! #20077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20078000 0! #20078500 1! #20078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20079000 0! #20079500 1! #20079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20080000 0! #20080500 1! #20080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20081000 0! #20081500 1! #20081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20082000 0! #20082500 1! #20082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20083000 0! #20083500 1! #20083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20084000 0! #20084500 1! #20084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20085000 0! #20085500 1! #20085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20086000 0! #20086500 1! #20086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20087000 0! #20087500 1! #20087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20088000 0! #20088500 1! #20088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20089000 0! #20089500 1! #20089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20090000 0! #20090500 1! #20090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20091000 0! #20091500 1! #20091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20092000 0! #20092500 1! #20092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20093000 0! #20093500 1! #20093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20094000 0! #20094500 1! #20094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20095000 0! #20095500 1! #20095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20096000 0! #20096500 1! #20096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20097000 0! #20097500 1! #20097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20098000 0! #20098500 1! #20098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20099000 0! #20099500 1! #20099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20100000 0! #20100500 1! #20100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20101000 0! #20101500 1! #20101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20102000 0! #20102500 1! #20102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20103000 0! #20103500 1! #20103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20104000 0! #20104500 1! #20104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20105000 0! #20105500 1! #20105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20106000 0! #20106500 1! #20106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20107000 0! #20107500 1! #20107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20108000 0! #20108500 1! #20108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20109000 0! #20109500 1! #20109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20110000 0! #20110500 1! #20110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20111000 0! #20111500 1! #20111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20112000 0! #20112500 1! #20112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20113000 0! #20113500 1! #20113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20114000 0! #20114500 1! #20114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20115000 0! #20115500 1! #20115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20116000 0! #20116500 1! #20116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20117000 0! #20117500 1! #20117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20118000 0! #20118500 1! #20118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20119000 0! #20119500 1! #20119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20120000 0! #20120500 1! #20120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20121000 0! #20121500 1! #20121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20122000 0! #20122500 1! #20122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #20122700 0` b110 g b10100010 c #20123000 0! #20123500 1! #20123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20124000 0! #20124500 1! #20124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20125000 0! #20125500 1! #20125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20126000 0! #20126500 1! #20126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20127000 0! #20127500 1! #20127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20128000 0! #20128500 1! #20128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20129000 0! #20129500 1! #20129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20130000 0! #20130500 1! #20130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20131000 0! #20131500 1! #20131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20132000 0! #20132500 1! #20132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20133000 0! #20133500 1! #20133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20134000 0! #20134500 1! #20134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20135000 0! #20135500 1! #20135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20136000 0! #20136500 1! #20136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20137000 0! #20137500 1! #20137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20138000 0! #20138500 1! #20138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20139000 0! #20139500 1! #20139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20140000 0! #20140500 1! #20140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20141000 0! #20141500 1! #20141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20142000 0! #20142500 1! #20142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20143000 0! #20143500 1! #20143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20144000 0! #20144500 1! #20144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20145000 0! #20145500 1! #20145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20146000 0! #20146500 1! #20146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20147000 0! #20147500 1! #20147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20148000 0! #20148500 1! #20148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20149000 0! #20149500 1! #20149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20150000 0! #20150500 1! #20150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20151000 0! #20151500 1! #20151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20152000 0! #20152500 1! #20152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20153000 0! #20153500 1! #20153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20154000 0! #20154500 1! #20154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20155000 0! #20155500 1! #20155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20156000 0! #20156500 1! #20156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20157000 0! #20157500 1! #20157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20158000 0! #20158500 1! #20158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20159000 0! #20159500 1! #20159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20160000 0! #20160500 1! #20160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20161000 0! #20161500 1! #20161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20162000 0! #20162500 1! #20162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20163000 0! #20163500 1! #20163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20164000 0! #20164500 1! #20164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20165000 0! #20165500 1! #20165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20166000 0! #20166500 1! #20166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20167000 0! #20167500 1! #20167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20168000 0! #20168500 1! #20168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20169000 0! #20169500 1! #20169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20170000 0! #20170500 1! #20170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20171000 0! #20171500 1! #20171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20172000 0! #20172500 1! #20172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20173000 0! #20173500 1! #20173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20174000 0! #20174500 1! #20174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20175000 0! #20175500 1! #20175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20176000 0! #20176500 1! #20176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20177000 0! #20177500 1! #20177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20178000 0! #20178500 1! #20178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20179000 0! #20179500 1! #20179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20180000 0! #20180500 1! #20180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20181000 0! #20181500 1! #20181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20182000 0! #20182500 1! #20182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20183000 0! #20183500 1! #20183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20184000 0! #20184500 1! #20184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20185000 0! #20185500 1! #20185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20186000 0! #20186500 1! #20186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20187000 0! #20187500 1! #20187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20188000 0! #20188500 1! #20188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20189000 0! #20189500 1! #20189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20190000 0! #20190500 1! #20190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20191000 0! #20191500 1! #20191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20192000 0! #20192500 1! #20192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20193000 0! #20193500 1! #20193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20194000 0! #20194500 1! #20194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20195000 0! #20195500 1! #20195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20196000 0! #20196500 1! #20196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20197000 0! #20197500 1! #20197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20198000 0! #20198500 1! #20198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20199000 0! #20199500 1! #20199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20200000 0! #20200500 1! #20200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20201000 0! #20201500 1! #20201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20202000 0! #20202500 1! #20202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20203000 0! #20203500 1! #20203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20204000 0! #20204500 1! #20204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20205000 0! #20205500 1! #20205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20206000 0! #20206500 1! #20206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20207000 0! #20207500 1! #20207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20208000 0! #20208500 1! #20208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20209000 0! #20209500 1! #20209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20210000 0! #20210500 1! #20210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20211000 0! #20211500 1! #20211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20212000 0! #20212500 1! #20212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20213000 0! #20213500 1! #20213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20214000 0! #20214500 1! #20214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20215000 0! #20215500 1! #20215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20216000 0! #20216500 1! #20216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20217000 0! #20217500 1! #20217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20218000 0! #20218500 1! #20218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20219000 0! #20219500 1! #20219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20220000 0! #20220500 1! #20220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20221000 0! #20221500 1! #20221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20222000 0! #20222500 1! #20222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20223000 0! #20223500 1! #20223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20224000 0! #20224500 1! #20224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #20225000 0! #20225500 1! #20225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20226000 0! #20226500 1! #20226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20227000 0! #20227500 1! #20227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20228000 0! #20228500 1! #20228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20229000 0! #20229500 1! #20229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20230000 0! #20230500 1! #20230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20231000 0! #20231500 1! #20231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20232000 0! #20232500 1! #20232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20233000 0! #20233500 1! #20233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20234000 0! #20234500 1! #20234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20235000 0! #20235500 1! #20235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20236000 0! #20236500 1! #20236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20237000 0! #20237500 1! #20237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20238000 0! #20238500 1! #20238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20239000 0! #20239500 1! #20239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20240000 0! #20240500 1! #20240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20241000 0! #20241500 1! #20241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20242000 0! #20242500 1! #20242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20243000 0! #20243500 1! #20243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20244000 0! #20244500 1! #20244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20245000 0! #20245500 1! #20245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20246000 0! #20246500 1! #20246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20247000 0! #20247500 1! #20247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20248000 0! #20248500 1! #20248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20249000 0! #20249500 1! #20249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20250000 0! #20250500 1! #20250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20251000 0! #20251500 1! #20251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20252000 0! #20252500 1! #20252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20253000 0! #20253500 1! #20253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20254000 0! #20254500 1! #20254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20255000 0! #20255500 1! #20255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20256000 0! #20256500 1! #20256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20257000 0! #20257500 1! #20257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20258000 0! #20258500 1! #20258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20259000 0! #20259500 1! #20259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20260000 0! #20260500 1! #20260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20261000 0! #20261500 1! #20261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20262000 0! #20262500 1! #20262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20263000 0! #20263500 1! #20263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20264000 0! #20264500 1! #20264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20265000 0! #20265500 1! #20265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20266000 0! #20266500 1! #20266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20267000 0! #20267500 1! #20267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20268000 0! #20268500 1! #20268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20269000 0! #20269500 1! #20269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20270000 0! #20270500 1! #20270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20271000 0! #20271500 1! #20271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20272000 0! #20272500 1! #20272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20273000 0! #20273500 1! #20273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20274000 0! #20274500 1! #20274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20275000 0! #20275500 1! #20275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20276000 0! #20276500 1! #20276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20277000 0! #20277500 1! #20277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20278000 0! #20278500 1! #20278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20279000 0! #20279500 1! #20279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20280000 0! #20280500 1! #20280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20281000 0! #20281500 1! #20281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20282000 0! #20282500 1! #20282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20283000 0! #20283500 1! #20283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20284000 0! #20284500 1! #20284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20285000 0! #20285500 1! #20285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20286000 0! #20286500 1! #20286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20287000 0! #20287500 1! #20287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20288000 0! #20288500 1! #20288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20289000 0! #20289500 1! #20289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20290000 0! #20290500 1! #20290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20291000 0! #20291500 1! #20291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20292000 0! #20292500 1! #20292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20293000 0! #20293500 1! #20293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20294000 0! #20294500 1! #20294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20295000 0! #20295500 1! #20295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20296000 0! #20296500 1! #20296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20297000 0! #20297500 1! #20297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20298000 0! #20298500 1! #20298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20299000 0! #20299500 1! #20299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20300000 0! #20300500 1! #20300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20301000 0! #20301500 1! #20301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20302000 0! #20302500 1! #20302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20303000 0! #20303500 1! #20303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20304000 0! #20304500 1! #20304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20305000 0! #20305500 1! #20305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20306000 0! #20306500 1! #20306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20307000 0! #20307500 1! #20307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20308000 0! #20308500 1! #20308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20309000 0! #20309500 1! #20309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20310000 0! #20310500 1! #20310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20311000 0! #20311500 1! #20311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20312000 0! #20312500 1! #20312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20313000 0! #20313500 1! #20313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20314000 0! #20314500 1! #20314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20315000 0! #20315500 1! #20315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20316000 0! #20316500 1! #20316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20317000 0! #20317500 1! #20317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20318000 0! #20318500 1! #20318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20319000 0! #20319500 1! #20319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20320000 0! #20320500 1! #20320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20321000 0! #20321500 1! #20321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20322000 0! #20322500 1! #20322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20323000 0! #20323500 1! #20323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20324000 0! #20324500 1! #20324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20325000 0! #20325500 1! #20325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20326000 0! #20326500 1! #20326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #20327000 0! #20327500 1! #20327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20328000 0! #20328500 1! #20328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20329000 0! #20329500 1! #20329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20330000 0! #20330500 1! #20330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20331000 0! #20331500 1! #20331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20332000 0! #20332500 1! #20332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20333000 0! #20333500 1! #20333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20334000 0! #20334500 1! #20334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20335000 0! #20335500 1! #20335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20336000 0! #20336500 1! #20336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20337000 0! #20337500 1! #20337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20338000 0! #20338500 1! #20338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20339000 0! #20339500 1! #20339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20340000 0! #20340500 1! #20340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20341000 0! #20341500 1! #20341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20342000 0! #20342500 1! #20342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20343000 0! #20343500 1! #20343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20344000 0! #20344500 1! #20344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20345000 0! #20345500 1! #20345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20346000 0! #20346500 1! #20346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20347000 0! #20347500 1! #20347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20348000 0! #20348500 1! #20348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20349000 0! #20349500 1! #20349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20350000 0! #20350500 1! #20350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20351000 0! #20351500 1! #20351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20352000 0! #20352500 1! #20352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20353000 0! #20353500 1! #20353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20354000 0! #20354500 1! #20354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20355000 0! #20355500 1! #20355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20356000 0! #20356500 1! #20356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20357000 0! #20357500 1! #20357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20358000 0! #20358500 1! #20358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20359000 0! #20359500 1! #20359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20360000 0! #20360500 1! #20360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20361000 0! #20361500 1! #20361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20362000 0! #20362500 1! #20362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20363000 0! #20363500 1! #20363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20364000 0! #20364500 1! #20364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20365000 0! #20365500 1! #20365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20366000 0! #20366500 1! #20366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20367000 0! #20367500 1! #20367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20368000 0! #20368500 1! #20368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20369000 0! #20369500 1! #20369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20370000 0! #20370500 1! #20370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20371000 0! #20371500 1! #20371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20372000 0! #20372500 1! #20372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20373000 0! #20373500 1! #20373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20374000 0! #20374500 1! #20374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20375000 0! #20375500 1! #20375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20376000 0! #20376500 1! #20376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20377000 0! #20377500 1! #20377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #20377700 b101 g b1000101 c #20378000 0! #20378500 1! #20378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20379000 0! #20379500 1! #20379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20380000 0! #20380500 1! #20380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20381000 0! #20381500 1! #20381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20382000 0! #20382500 1! #20382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20383000 0! #20383500 1! #20383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20384000 0! #20384500 1! #20384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20385000 0! #20385500 1! #20385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20386000 0! #20386500 1! #20386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20387000 0! #20387500 1! #20387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20388000 0! #20388500 1! #20388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20389000 0! #20389500 1! #20389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20390000 0! #20390500 1! #20390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20391000 0! #20391500 1! #20391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20392000 0! #20392500 1! #20392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20393000 0! #20393500 1! #20393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20394000 0! #20394500 1! #20394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20395000 0! #20395500 1! #20395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20396000 0! #20396500 1! #20396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20397000 0! #20397500 1! #20397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20398000 0! #20398500 1! #20398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20399000 0! #20399500 1! #20399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20400000 0! #20400500 1! #20400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20401000 0! #20401500 1! #20401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20402000 0! #20402500 1! #20402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20403000 0! #20403500 1! #20403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20404000 0! #20404500 1! #20404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20405000 0! #20405500 1! #20405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20406000 0! #20406500 1! #20406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20407000 0! #20407500 1! #20407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20408000 0! #20408500 1! #20408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20409000 0! #20409500 1! #20409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20410000 0! #20410500 1! #20410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20411000 0! #20411500 1! #20411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20412000 0! #20412500 1! #20412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20413000 0! #20413500 1! #20413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20414000 0! #20414500 1! #20414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20415000 0! #20415500 1! #20415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20416000 0! #20416500 1! #20416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20417000 0! #20417500 1! #20417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20418000 0! #20418500 1! #20418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20419000 0! #20419500 1! #20419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20420000 0! #20420500 1! #20420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20421000 0! #20421500 1! #20421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20422000 0! #20422500 1! #20422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20423000 0! #20423500 1! #20423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20424000 0! #20424500 1! #20424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20425000 0! #20425500 1! #20425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20426000 0! #20426500 1! #20426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20427000 0! #20427500 1! #20427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20428000 0! #20428500 1! #20428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20429000 0! #20429500 1! #20429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20430000 0! #20430500 1! #20430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20431000 0! #20431500 1! #20431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20432000 0! #20432500 1! #20432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20433000 0! #20433500 1! #20433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20434000 0! #20434500 1! #20434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20435000 0! #20435500 1! #20435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20436000 0! #20436500 1! #20436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20437000 0! #20437500 1! #20437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20438000 0! #20438500 1! #20438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20439000 0! #20439500 1! #20439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20440000 0! #20440500 1! #20440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20441000 0! #20441500 1! #20441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20442000 0! #20442500 1! #20442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20443000 0! #20443500 1! #20443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20444000 0! #20444500 1! #20444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20445000 0! #20445500 1! #20445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20446000 0! #20446500 1! #20446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20447000 0! #20447500 1! #20447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20448000 0! #20448500 1! #20448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20449000 0! #20449500 1! #20449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20450000 0! #20450500 1! #20450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20451000 0! #20451500 1! #20451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20452000 0! #20452500 1! #20452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20453000 0! #20453500 1! #20453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20454000 0! #20454500 1! #20454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20455000 0! #20455500 1! #20455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20456000 0! #20456500 1! #20456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20457000 0! #20457500 1! #20457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20458000 0! #20458500 1! #20458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20459000 0! #20459500 1! #20459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20460000 0! #20460500 1! #20460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20461000 0! #20461500 1! #20461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20462000 0! #20462500 1! #20462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20463000 0! #20463500 1! #20463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20464000 0! #20464500 1! #20464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20465000 0! #20465500 1! #20465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20466000 0! #20466500 1! #20466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20467000 0! #20467500 1! #20467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20468000 0! #20468500 1! #20468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20469000 0! #20469500 1! #20469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20470000 0! #20470500 1! #20470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20471000 0! #20471500 1! #20471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20472000 0! #20472500 1! #20472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20473000 0! #20473500 1! #20473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20474000 0! #20474500 1! #20474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20475000 0! #20475500 1! #20475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20476000 0! #20476500 1! #20476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20477000 0! #20477500 1! #20477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20478000 0! #20478500 1! #20478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20479000 0! #20479500 1! #20479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #20480000 0! #20480500 1! #20480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20481000 0! #20481500 1! #20481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20482000 0! #20482500 1! #20482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20483000 0! #20483500 1! #20483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20484000 0! #20484500 1! #20484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20485000 0! #20485500 1! #20485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20486000 0! #20486500 1! #20486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20487000 0! #20487500 1! #20487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20488000 0! #20488500 1! #20488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20489000 0! #20489500 1! #20489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20490000 0! #20490500 1! #20490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20491000 0! #20491500 1! #20491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20492000 0! #20492500 1! #20492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20493000 0! #20493500 1! #20493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20494000 0! #20494500 1! #20494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20495000 0! #20495500 1! #20495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20496000 0! #20496500 1! #20496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20497000 0! #20497500 1! #20497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20498000 0! #20498500 1! #20498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20499000 0! #20499500 1! #20499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20500000 0! #20500500 1! #20500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20501000 0! #20501500 1! #20501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20502000 0! #20502500 1! #20502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20503000 0! #20503500 1! #20503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20504000 0! #20504500 1! #20504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20505000 0! #20505500 1! #20505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20506000 0! #20506500 1! #20506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20507000 0! #20507500 1! #20507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20508000 0! #20508500 1! #20508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20509000 0! #20509500 1! #20509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20510000 0! #20510500 1! #20510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20511000 0! #20511500 1! #20511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20512000 0! #20512500 1! #20512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20513000 0! #20513500 1! #20513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20514000 0! #20514500 1! #20514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20515000 0! #20515500 1! #20515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20516000 0! #20516500 1! #20516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20517000 0! #20517500 1! #20517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20518000 0! #20518500 1! #20518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20519000 0! #20519500 1! #20519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20520000 0! #20520500 1! #20520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20521000 0! #20521500 1! #20521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20522000 0! #20522500 1! #20522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20523000 0! #20523500 1! #20523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20524000 0! #20524500 1! #20524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20525000 0! #20525500 1! #20525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20526000 0! #20526500 1! #20526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20527000 0! #20527500 1! #20527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20528000 0! #20528500 1! #20528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20529000 0! #20529500 1! #20529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20530000 0! #20530500 1! #20530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20531000 0! #20531500 1! #20531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20532000 0! #20532500 1! #20532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20533000 0! #20533500 1! #20533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20534000 0! #20534500 1! #20534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20535000 0! #20535500 1! #20535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20536000 0! #20536500 1! #20536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20537000 0! #20537500 1! #20537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20538000 0! #20538500 1! #20538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20539000 0! #20539500 1! #20539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20540000 0! #20540500 1! #20540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20541000 0! #20541500 1! #20541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20542000 0! #20542500 1! #20542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20543000 0! #20543500 1! #20543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20544000 0! #20544500 1! #20544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20545000 0! #20545500 1! #20545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20546000 0! #20546500 1! #20546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20547000 0! #20547500 1! #20547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20548000 0! #20548500 1! #20548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20549000 0! #20549500 1! #20549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20550000 0! #20550500 1! #20550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20551000 0! #20551500 1! #20551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20552000 0! #20552500 1! #20552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20553000 0! #20553500 1! #20553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20554000 0! #20554500 1! #20554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20555000 0! #20555500 1! #20555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20556000 0! #20556500 1! #20556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20557000 0! #20557500 1! #20557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20558000 0! #20558500 1! #20558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20559000 0! #20559500 1! #20559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20560000 0! #20560500 1! #20560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20561000 0! #20561500 1! #20561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20562000 0! #20562500 1! #20562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20563000 0! #20563500 1! #20563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20564000 0! #20564500 1! #20564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20565000 0! #20565500 1! #20565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20566000 0! #20566500 1! #20566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20567000 0! #20567500 1! #20567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20568000 0! #20568500 1! #20568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20569000 0! #20569500 1! #20569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20570000 0! #20570500 1! #20570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20571000 0! #20571500 1! #20571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20572000 0! #20572500 1! #20572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20573000 0! #20573500 1! #20573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20574000 0! #20574500 1! #20574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20575000 0! #20575500 1! #20575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20576000 0! #20576500 1! #20576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20577000 0! #20577500 1! #20577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20578000 0! #20578500 1! #20578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20579000 0! #20579500 1! #20579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20580000 0! #20580500 1! #20580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20581000 0! #20581500 1! #20581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #20582000 0! #20582500 1! #20582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20583000 0! #20583500 1! #20583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20584000 0! #20584500 1! #20584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20585000 0! #20585500 1! #20585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20586000 0! #20586500 1! #20586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20587000 0! #20587500 1! #20587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20588000 0! #20588500 1! #20588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20589000 0! #20589500 1! #20589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20590000 0! #20590500 1! #20590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20591000 0! #20591500 1! #20591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20592000 0! #20592500 1! #20592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20593000 0! #20593500 1! #20593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20594000 0! #20594500 1! #20594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20595000 0! #20595500 1! #20595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20596000 0! #20596500 1! #20596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20597000 0! #20597500 1! #20597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20598000 0! #20598500 1! #20598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20599000 0! #20599500 1! #20599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20600000 0! #20600500 1! #20600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20601000 0! #20601500 1! #20601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20602000 0! #20602500 1! #20602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20603000 0! #20603500 1! #20603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20604000 0! #20604500 1! #20604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20605000 0! #20605500 1! #20605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20606000 0! #20606500 1! #20606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20607000 0! #20607500 1! #20607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20608000 0! #20608500 1! #20608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20609000 0! #20609500 1! #20609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20610000 0! #20610500 1! #20610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20611000 0! #20611500 1! #20611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20612000 0! #20612500 1! #20612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20613000 0! #20613500 1! #20613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20614000 0! #20614500 1! #20614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20615000 0! #20615500 1! #20615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20616000 0! #20616500 1! #20616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20617000 0! #20617500 1! #20617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20618000 0! #20618500 1! #20618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20619000 0! #20619500 1! #20619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20620000 0! #20620500 1! #20620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20621000 0! #20621500 1! #20621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20622000 0! #20622500 1! #20622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20623000 0! #20623500 1! #20623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20624000 0! #20624500 1! #20624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20625000 0! #20625500 1! #20625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20626000 0! #20626500 1! #20626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20627000 0! #20627500 1! #20627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20628000 0! #20628500 1! #20628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20629000 0! #20629500 1! #20629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20630000 0! #20630500 1! #20630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20631000 0! #20631500 1! #20631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20632000 0! #20632500 1! #20632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #20632700 b100 g b10001010 c #20633000 0! #20633500 1! #20633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20634000 0! #20634500 1! #20634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20635000 0! #20635500 1! #20635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20636000 0! #20636500 1! #20636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20637000 0! #20637500 1! #20637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20638000 0! #20638500 1! #20638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20639000 0! #20639500 1! #20639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20640000 0! #20640500 1! #20640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20641000 0! #20641500 1! #20641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20642000 0! #20642500 1! #20642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20643000 0! #20643500 1! #20643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20644000 0! #20644500 1! #20644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20645000 0! #20645500 1! #20645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20646000 0! #20646500 1! #20646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20647000 0! #20647500 1! #20647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20648000 0! #20648500 1! #20648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20649000 0! #20649500 1! #20649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20650000 0! #20650500 1! #20650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20651000 0! #20651500 1! #20651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20652000 0! #20652500 1! #20652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20653000 0! #20653500 1! #20653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20654000 0! #20654500 1! #20654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20655000 0! #20655500 1! #20655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20656000 0! #20656500 1! #20656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20657000 0! #20657500 1! #20657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20658000 0! #20658500 1! #20658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20659000 0! #20659500 1! #20659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20660000 0! #20660500 1! #20660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20661000 0! #20661500 1! #20661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20662000 0! #20662500 1! #20662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20663000 0! #20663500 1! #20663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20664000 0! #20664500 1! #20664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20665000 0! #20665500 1! #20665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20666000 0! #20666500 1! #20666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20667000 0! #20667500 1! #20667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20668000 0! #20668500 1! #20668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20669000 0! #20669500 1! #20669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20670000 0! #20670500 1! #20670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20671000 0! #20671500 1! #20671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20672000 0! #20672500 1! #20672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20673000 0! #20673500 1! #20673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20674000 0! #20674500 1! #20674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20675000 0! #20675500 1! #20675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20676000 0! #20676500 1! #20676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20677000 0! #20677500 1! #20677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20678000 0! #20678500 1! #20678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20679000 0! #20679500 1! #20679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20680000 0! #20680500 1! #20680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20681000 0! #20681500 1! #20681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20682000 0! #20682500 1! #20682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20683000 0! #20683500 1! #20683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20684000 0! #20684500 1! #20684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20685000 0! #20685500 1! #20685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20686000 0! #20686500 1! #20686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20687000 0! #20687500 1! #20687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20688000 0! #20688500 1! #20688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20689000 0! #20689500 1! #20689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20690000 0! #20690500 1! #20690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20691000 0! #20691500 1! #20691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20692000 0! #20692500 1! #20692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20693000 0! #20693500 1! #20693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20694000 0! #20694500 1! #20694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20695000 0! #20695500 1! #20695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20696000 0! #20696500 1! #20696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20697000 0! #20697500 1! #20697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20698000 0! #20698500 1! #20698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20699000 0! #20699500 1! #20699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20700000 0! #20700500 1! #20700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20701000 0! #20701500 1! #20701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20702000 0! #20702500 1! #20702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20703000 0! #20703500 1! #20703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20704000 0! #20704500 1! #20704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20705000 0! #20705500 1! #20705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20706000 0! #20706500 1! #20706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20707000 0! #20707500 1! #20707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20708000 0! #20708500 1! #20708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20709000 0! #20709500 1! #20709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20710000 0! #20710500 1! #20710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20711000 0! #20711500 1! #20711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20712000 0! #20712500 1! #20712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20713000 0! #20713500 1! #20713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20714000 0! #20714500 1! #20714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20715000 0! #20715500 1! #20715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20716000 0! #20716500 1! #20716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20717000 0! #20717500 1! #20717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20718000 0! #20718500 1! #20718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20719000 0! #20719500 1! #20719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20720000 0! #20720500 1! #20720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20721000 0! #20721500 1! #20721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20722000 0! #20722500 1! #20722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20723000 0! #20723500 1! #20723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20724000 0! #20724500 1! #20724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20725000 0! #20725500 1! #20725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20726000 0! #20726500 1! #20726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20727000 0! #20727500 1! #20727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20728000 0! #20728500 1! #20728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20729000 0! #20729500 1! #20729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20730000 0! #20730500 1! #20730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20731000 0! #20731500 1! #20731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20732000 0! #20732500 1! #20732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20733000 0! #20733500 1! #20733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20734000 0! #20734500 1! #20734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #20735000 0! #20735500 1! #20735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20736000 0! #20736500 1! #20736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20737000 0! #20737500 1! #20737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20738000 0! #20738500 1! #20738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20739000 0! #20739500 1! #20739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20740000 0! #20740500 1! #20740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20741000 0! #20741500 1! #20741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20742000 0! #20742500 1! #20742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20743000 0! #20743500 1! #20743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20744000 0! #20744500 1! #20744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20745000 0! #20745500 1! #20745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20746000 0! #20746500 1! #20746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20747000 0! #20747500 1! #20747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20748000 0! #20748500 1! #20748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20749000 0! #20749500 1! #20749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20750000 0! #20750500 1! #20750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20751000 0! #20751500 1! #20751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20752000 0! #20752500 1! #20752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20753000 0! #20753500 1! #20753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20754000 0! #20754500 1! #20754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20755000 0! #20755500 1! #20755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20756000 0! #20756500 1! #20756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20757000 0! #20757500 1! #20757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20758000 0! #20758500 1! #20758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20759000 0! #20759500 1! #20759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20760000 0! #20760500 1! #20760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20761000 0! #20761500 1! #20761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20762000 0! #20762500 1! #20762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20763000 0! #20763500 1! #20763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20764000 0! #20764500 1! #20764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20765000 0! #20765500 1! #20765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20766000 0! #20766500 1! #20766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20767000 0! #20767500 1! #20767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20768000 0! #20768500 1! #20768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20769000 0! #20769500 1! #20769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20770000 0! #20770500 1! #20770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20771000 0! #20771500 1! #20771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20772000 0! #20772500 1! #20772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20773000 0! #20773500 1! #20773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20774000 0! #20774500 1! #20774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20775000 0! #20775500 1! #20775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20776000 0! #20776500 1! #20776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20777000 0! #20777500 1! #20777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20778000 0! #20778500 1! #20778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20779000 0! #20779500 1! #20779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20780000 0! #20780500 1! #20780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20781000 0! #20781500 1! #20781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20782000 0! #20782500 1! #20782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20783000 0! #20783500 1! #20783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20784000 0! #20784500 1! #20784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20785000 0! #20785500 1! #20785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20786000 0! #20786500 1! #20786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20787000 0! #20787500 1! #20787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20788000 0! #20788500 1! #20788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20789000 0! #20789500 1! #20789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20790000 0! #20790500 1! #20790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20791000 0! #20791500 1! #20791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20792000 0! #20792500 1! #20792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20793000 0! #20793500 1! #20793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20794000 0! #20794500 1! #20794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20795000 0! #20795500 1! #20795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20796000 0! #20796500 1! #20796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20797000 0! #20797500 1! #20797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20798000 0! #20798500 1! #20798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20799000 0! #20799500 1! #20799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20800000 0! #20800500 1! #20800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20801000 0! #20801500 1! #20801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20802000 0! #20802500 1! #20802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20803000 0! #20803500 1! #20803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20804000 0! #20804500 1! #20804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20805000 0! #20805500 1! #20805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20806000 0! #20806500 1! #20806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20807000 0! #20807500 1! #20807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20808000 0! #20808500 1! #20808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20809000 0! #20809500 1! #20809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20810000 0! #20810500 1! #20810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20811000 0! #20811500 1! #20811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20812000 0! #20812500 1! #20812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20813000 0! #20813500 1! #20813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20814000 0! #20814500 1! #20814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20815000 0! #20815500 1! #20815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20816000 0! #20816500 1! #20816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20817000 0! #20817500 1! #20817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20818000 0! #20818500 1! #20818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20819000 0! #20819500 1! #20819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20820000 0! #20820500 1! #20820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20821000 0! #20821500 1! #20821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20822000 0! #20822500 1! #20822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20823000 0! #20823500 1! #20823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20824000 0! #20824500 1! #20824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20825000 0! #20825500 1! #20825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20826000 0! #20826500 1! #20826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20827000 0! #20827500 1! #20827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20828000 0! #20828500 1! #20828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20829000 0! #20829500 1! #20829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20830000 0! #20830500 1! #20830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20831000 0! #20831500 1! #20831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20832000 0! #20832500 1! #20832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20833000 0! #20833500 1! #20833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20834000 0! #20834500 1! #20834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20835000 0! #20835500 1! #20835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20836000 0! #20836500 1! #20836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20837000 0! #20837500 1! #20837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20838000 0! #20838500 1! #20838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20839000 0! #20839500 1! #20839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20840000 0! #20840500 1! #20840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20841000 0! #20841500 1! #20841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20842000 0! #20842500 1! #20842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20843000 0! #20843500 1! #20843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20844000 0! #20844500 1! #20844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20845000 0! #20845500 1! #20845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20846000 0! #20846500 1! #20846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20847000 0! #20847500 1! #20847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20848000 0! #20848500 1! #20848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20849000 0! #20849500 1! #20849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20850000 0! #20850500 1! #20850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20851000 0! #20851500 1! #20851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20852000 0! #20852500 1! #20852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20853000 0! #20853500 1! #20853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20854000 0! #20854500 1! #20854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20855000 0! #20855500 1! #20855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20856000 0! #20856500 1! #20856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20857000 0! #20857500 1! #20857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20858000 0! #20858500 1! #20858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20859000 0! #20859500 1! #20859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20860000 0! #20860500 1! #20860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20861000 0! #20861500 1! #20861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20862000 0! #20862500 1! #20862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20863000 0! #20863500 1! #20863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20864000 0! #20864500 1! #20864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20865000 0! #20865500 1! #20865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20866000 0! #20866500 1! #20866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20867000 0! #20867500 1! #20867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20868000 0! #20868500 1! #20868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20869000 0! #20869500 1! #20869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20870000 0! #20870500 1! #20870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20871000 0! #20871500 1! #20871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20872000 0! #20872500 1! #20872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20873000 0! #20873500 1! #20873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20874000 0! #20874500 1! #20874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20875000 0! #20875500 1! #20875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20876000 0! #20876500 1! #20876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20877000 0! #20877500 1! #20877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20878000 0! #20878500 1! #20878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20879000 0! #20879500 1! #20879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20880000 0! #20880500 1! #20880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20881000 0! #20881500 1! #20881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20882000 0! #20882500 1! #20882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20883000 0! #20883500 1! #20883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20884000 0! #20884500 1! #20884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20885000 0! #20885500 1! #20885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20886000 0! #20886500 1! #20886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20887000 0! #20887500 1! #20887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #20887700 b11 g b10100 c #20888000 0! #20888500 1! #20888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20889000 0! #20889500 1! #20889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20890000 0! #20890500 1! #20890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20891000 0! #20891500 1! #20891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20892000 0! #20892500 1! #20892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20893000 0! #20893500 1! #20893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20894000 0! #20894500 1! #20894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20895000 0! #20895500 1! #20895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20896000 0! #20896500 1! #20896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20897000 0! #20897500 1! #20897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20898000 0! #20898500 1! #20898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20899000 0! #20899500 1! #20899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20900000 0! #20900500 1! #20900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20901000 0! #20901500 1! #20901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20902000 0! #20902500 1! #20902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20903000 0! #20903500 1! #20903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20904000 0! #20904500 1! #20904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20905000 0! #20905500 1! #20905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20906000 0! #20906500 1! #20906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20907000 0! #20907500 1! #20907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20908000 0! #20908500 1! #20908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20909000 0! #20909500 1! #20909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20910000 0! #20910500 1! #20910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20911000 0! #20911500 1! #20911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20912000 0! #20912500 1! #20912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20913000 0! #20913500 1! #20913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20914000 0! #20914500 1! #20914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20915000 0! #20915500 1! #20915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20916000 0! #20916500 1! #20916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20917000 0! #20917500 1! #20917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20918000 0! #20918500 1! #20918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20919000 0! #20919500 1! #20919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20920000 0! #20920500 1! #20920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20921000 0! #20921500 1! #20921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20922000 0! #20922500 1! #20922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20923000 0! #20923500 1! #20923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20924000 0! #20924500 1! #20924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20925000 0! #20925500 1! #20925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20926000 0! #20926500 1! #20926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20927000 0! #20927500 1! #20927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20928000 0! #20928500 1! #20928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20929000 0! #20929500 1! #20929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20930000 0! #20930500 1! #20930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20931000 0! #20931500 1! #20931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20932000 0! #20932500 1! #20932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20933000 0! #20933500 1! #20933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20934000 0! #20934500 1! #20934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20935000 0! #20935500 1! #20935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20936000 0! #20936500 1! #20936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20937000 0! #20937500 1! #20937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20938000 0! #20938500 1! #20938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20939000 0! #20939500 1! #20939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20940000 0! #20940500 1! #20940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20941000 0! #20941500 1! #20941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20942000 0! #20942500 1! #20942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20943000 0! #20943500 1! #20943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20944000 0! #20944500 1! #20944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20945000 0! #20945500 1! #20945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20946000 0! #20946500 1! #20946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20947000 0! #20947500 1! #20947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20948000 0! #20948500 1! #20948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20949000 0! #20949500 1! #20949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20950000 0! #20950500 1! #20950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20951000 0! #20951500 1! #20951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20952000 0! #20952500 1! #20952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20953000 0! #20953500 1! #20953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20954000 0! #20954500 1! #20954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20955000 0! #20955500 1! #20955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20956000 0! #20956500 1! #20956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20957000 0! #20957500 1! #20957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20958000 0! #20958500 1! #20958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20959000 0! #20959500 1! #20959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20960000 0! #20960500 1! #20960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20961000 0! #20961500 1! #20961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20962000 0! #20962500 1! #20962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20963000 0! #20963500 1! #20963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20964000 0! #20964500 1! #20964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20965000 0! #20965500 1! #20965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20966000 0! #20966500 1! #20966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20967000 0! #20967500 1! #20967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20968000 0! #20968500 1! #20968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20969000 0! #20969500 1! #20969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20970000 0! #20970500 1! #20970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20971000 0! #20971500 1! #20971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20972000 0! #20972500 1! #20972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20973000 0! #20973500 1! #20973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20974000 0! #20974500 1! #20974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20975000 0! #20975500 1! #20975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20976000 0! #20976500 1! #20976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20977000 0! #20977500 1! #20977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20978000 0! #20978500 1! #20978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20979000 0! #20979500 1! #20979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20980000 0! #20980500 1! #20980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20981000 0! #20981500 1! #20981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20982000 0! #20982500 1! #20982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20983000 0! #20983500 1! #20983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20984000 0! #20984500 1! #20984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20985000 0! #20985500 1! #20985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20986000 0! #20986500 1! #20986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20987000 0! #20987500 1! #20987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20988000 0! #20988500 1! #20988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20989000 0! #20989500 1! #20989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #20990000 0! #20990500 1! #20990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20991000 0! #20991500 1! #20991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20992000 0! #20992500 1! #20992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20993000 0! #20993500 1! #20993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20994000 0! #20994500 1! #20994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20995000 0! #20995500 1! #20995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20996000 0! #20996500 1! #20996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20997000 0! #20997500 1! #20997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #20998000 0! #20998500 1! #20998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #20999000 0! #20999500 1! #20999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21000000 0! #21000500 1! #21000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21001000 0! #21001500 1! #21001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21002000 0! #21002500 1! #21002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21003000 0! #21003500 1! #21003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21004000 0! #21004500 1! #21004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21005000 0! #21005500 1! #21005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21006000 0! #21006500 1! #21006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21007000 0! #21007500 1! #21007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21008000 0! #21008500 1! #21008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21009000 0! #21009500 1! #21009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21010000 0! #21010500 1! #21010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21011000 0! #21011500 1! #21011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21012000 0! #21012500 1! #21012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21013000 0! #21013500 1! #21013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21014000 0! #21014500 1! #21014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21015000 0! #21015500 1! #21015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21016000 0! #21016500 1! #21016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21017000 0! #21017500 1! #21017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21018000 0! #21018500 1! #21018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21019000 0! #21019500 1! #21019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21020000 0! #21020500 1! #21020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21021000 0! #21021500 1! #21021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21022000 0! #21022500 1! #21022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21023000 0! #21023500 1! #21023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21024000 0! #21024500 1! #21024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21025000 0! #21025500 1! #21025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21026000 0! #21026500 1! #21026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21027000 0! #21027500 1! #21027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21028000 0! #21028500 1! #21028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21029000 0! #21029500 1! #21029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21030000 0! #21030500 1! #21030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21031000 0! #21031500 1! #21031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21032000 0! #21032500 1! #21032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21033000 0! #21033500 1! #21033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21034000 0! #21034500 1! #21034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21035000 0! #21035500 1! #21035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21036000 0! #21036500 1! #21036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21037000 0! #21037500 1! #21037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21038000 0! #21038500 1! #21038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21039000 0! #21039500 1! #21039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21040000 0! #21040500 1! #21040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21041000 0! #21041500 1! #21041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21042000 0! #21042500 1! #21042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21043000 0! #21043500 1! #21043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21044000 0! #21044500 1! #21044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21045000 0! #21045500 1! #21045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21046000 0! #21046500 1! #21046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21047000 0! #21047500 1! #21047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21048000 0! #21048500 1! #21048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21049000 0! #21049500 1! #21049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21050000 0! #21050500 1! #21050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21051000 0! #21051500 1! #21051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21052000 0! #21052500 1! #21052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21053000 0! #21053500 1! #21053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21054000 0! #21054500 1! #21054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21055000 0! #21055500 1! #21055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21056000 0! #21056500 1! #21056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21057000 0! #21057500 1! #21057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21058000 0! #21058500 1! #21058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21059000 0! #21059500 1! #21059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21060000 0! #21060500 1! #21060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21061000 0! #21061500 1! #21061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21062000 0! #21062500 1! #21062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21063000 0! #21063500 1! #21063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21064000 0! #21064500 1! #21064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21065000 0! #21065500 1! #21065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21066000 0! #21066500 1! #21066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21067000 0! #21067500 1! #21067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21068000 0! #21068500 1! #21068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21069000 0! #21069500 1! #21069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21070000 0! #21070500 1! #21070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21071000 0! #21071500 1! #21071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21072000 0! #21072500 1! #21072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21073000 0! #21073500 1! #21073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21074000 0! #21074500 1! #21074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21075000 0! #21075500 1! #21075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21076000 0! #21076500 1! #21076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21077000 0! #21077500 1! #21077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21078000 0! #21078500 1! #21078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21079000 0! #21079500 1! #21079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21080000 0! #21080500 1! #21080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21081000 0! #21081500 1! #21081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21082000 0! #21082500 1! #21082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21083000 0! #21083500 1! #21083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21084000 0! #21084500 1! #21084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21085000 0! #21085500 1! #21085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21086000 0! #21086500 1! #21086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21087000 0! #21087500 1! #21087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21088000 0! #21088500 1! #21088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21089000 0! #21089500 1! #21089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21090000 0! #21090500 1! #21090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21091000 0! #21091500 1! #21091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21092000 0! #21092500 1! #21092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21093000 0! #21093500 1! #21093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21094000 0! #21094500 1! #21094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21095000 0! #21095500 1! #21095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21096000 0! #21096500 1! #21096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21097000 0! #21097500 1! #21097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21098000 0! #21098500 1! #21098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21099000 0! #21099500 1! #21099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21100000 0! #21100500 1! #21100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21101000 0! #21101500 1! #21101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21102000 0! #21102500 1! #21102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21103000 0! #21103500 1! #21103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21104000 0! #21104500 1! #21104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21105000 0! #21105500 1! #21105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21106000 0! #21106500 1! #21106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21107000 0! #21107500 1! #21107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21108000 0! #21108500 1! #21108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21109000 0! #21109500 1! #21109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21110000 0! #21110500 1! #21110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21111000 0! #21111500 1! #21111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21112000 0! #21112500 1! #21112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21113000 0! #21113500 1! #21113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21114000 0! #21114500 1! #21114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21115000 0! #21115500 1! #21115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21116000 0! #21116500 1! #21116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21117000 0! #21117500 1! #21117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21118000 0! #21118500 1! #21118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21119000 0! #21119500 1! #21119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21120000 0! #21120500 1! #21120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21121000 0! #21121500 1! #21121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21122000 0! #21122500 1! #21122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21123000 0! #21123500 1! #21123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21124000 0! #21124500 1! #21124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21125000 0! #21125500 1! #21125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21126000 0! #21126500 1! #21126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21127000 0! #21127500 1! #21127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21128000 0! #21128500 1! #21128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21129000 0! #21129500 1! #21129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21130000 0! #21130500 1! #21130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21131000 0! #21131500 1! #21131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21132000 0! #21132500 1! #21132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21133000 0! #21133500 1! #21133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21134000 0! #21134500 1! #21134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21135000 0! #21135500 1! #21135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21136000 0! #21136500 1! #21136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21137000 0! #21137500 1! #21137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21138000 0! #21138500 1! #21138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21139000 0! #21139500 1! #21139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21140000 0! #21140500 1! #21140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21141000 0! #21141500 1! #21141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21142000 0! #21142500 1! #21142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #21142700 b10 g b101000 c #21143000 0! #21143500 1! #21143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21144000 0! #21144500 1! #21144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21145000 0! #21145500 1! #21145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21146000 0! #21146500 1! #21146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21147000 0! #21147500 1! #21147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21148000 0! #21148500 1! #21148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21149000 0! #21149500 1! #21149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21150000 0! #21150500 1! #21150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21151000 0! #21151500 1! #21151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21152000 0! #21152500 1! #21152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21153000 0! #21153500 1! #21153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21154000 0! #21154500 1! #21154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21155000 0! #21155500 1! #21155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21156000 0! #21156500 1! #21156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21157000 0! #21157500 1! #21157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21158000 0! #21158500 1! #21158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21159000 0! #21159500 1! #21159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21160000 0! #21160500 1! #21160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21161000 0! #21161500 1! #21161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21162000 0! #21162500 1! #21162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21163000 0! #21163500 1! #21163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21164000 0! #21164500 1! #21164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21165000 0! #21165500 1! #21165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21166000 0! #21166500 1! #21166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21167000 0! #21167500 1! #21167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21168000 0! #21168500 1! #21168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21169000 0! #21169500 1! #21169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21170000 0! #21170500 1! #21170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21171000 0! #21171500 1! #21171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21172000 0! #21172500 1! #21172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21173000 0! #21173500 1! #21173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21174000 0! #21174500 1! #21174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21175000 0! #21175500 1! #21175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21176000 0! #21176500 1! #21176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21177000 0! #21177500 1! #21177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21178000 0! #21178500 1! #21178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21179000 0! #21179500 1! #21179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21180000 0! #21180500 1! #21180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21181000 0! #21181500 1! #21181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21182000 0! #21182500 1! #21182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21183000 0! #21183500 1! #21183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21184000 0! #21184500 1! #21184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21185000 0! #21185500 1! #21185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21186000 0! #21186500 1! #21186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21187000 0! #21187500 1! #21187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21188000 0! #21188500 1! #21188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21189000 0! #21189500 1! #21189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21190000 0! #21190500 1! #21190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21191000 0! #21191500 1! #21191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21192000 0! #21192500 1! #21192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21193000 0! #21193500 1! #21193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21194000 0! #21194500 1! #21194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21195000 0! #21195500 1! #21195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21196000 0! #21196500 1! #21196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21197000 0! #21197500 1! #21197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21198000 0! #21198500 1! #21198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21199000 0! #21199500 1! #21199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21200000 0! #21200500 1! #21200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21201000 0! #21201500 1! #21201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21202000 0! #21202500 1! #21202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21203000 0! #21203500 1! #21203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21204000 0! #21204500 1! #21204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21205000 0! #21205500 1! #21205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21206000 0! #21206500 1! #21206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21207000 0! #21207500 1! #21207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21208000 0! #21208500 1! #21208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21209000 0! #21209500 1! #21209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21210000 0! #21210500 1! #21210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21211000 0! #21211500 1! #21211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21212000 0! #21212500 1! #21212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21213000 0! #21213500 1! #21213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21214000 0! #21214500 1! #21214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21215000 0! #21215500 1! #21215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21216000 0! #21216500 1! #21216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21217000 0! #21217500 1! #21217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21218000 0! #21218500 1! #21218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21219000 0! #21219500 1! #21219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21220000 0! #21220500 1! #21220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21221000 0! #21221500 1! #21221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21222000 0! #21222500 1! #21222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21223000 0! #21223500 1! #21223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21224000 0! #21224500 1! #21224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21225000 0! #21225500 1! #21225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21226000 0! #21226500 1! #21226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21227000 0! #21227500 1! #21227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21228000 0! #21228500 1! #21228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21229000 0! #21229500 1! #21229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21230000 0! #21230500 1! #21230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21231000 0! #21231500 1! #21231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21232000 0! #21232500 1! #21232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21233000 0! #21233500 1! #21233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21234000 0! #21234500 1! #21234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21235000 0! #21235500 1! #21235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21236000 0! #21236500 1! #21236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21237000 0! #21237500 1! #21237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21238000 0! #21238500 1! #21238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21239000 0! #21239500 1! #21239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21240000 0! #21240500 1! #21240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21241000 0! #21241500 1! #21241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21242000 0! #21242500 1! #21242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21243000 0! #21243500 1! #21243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21244000 0! #21244500 1! #21244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #21245000 0! #21245500 1! #21245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21246000 0! #21246500 1! #21246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21247000 0! #21247500 1! #21247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21248000 0! #21248500 1! #21248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21249000 0! #21249500 1! #21249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21250000 0! #21250500 1! #21250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21251000 0! #21251500 1! #21251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21252000 0! #21252500 1! #21252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21253000 0! #21253500 1! #21253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21254000 0! #21254500 1! #21254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21255000 0! #21255500 1! #21255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21256000 0! #21256500 1! #21256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21257000 0! #21257500 1! #21257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21258000 0! #21258500 1! #21258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21259000 0! #21259500 1! #21259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21260000 0! #21260500 1! #21260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21261000 0! #21261500 1! #21261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21262000 0! #21262500 1! #21262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21263000 0! #21263500 1! #21263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21264000 0! #21264500 1! #21264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21265000 0! #21265500 1! #21265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21266000 0! #21266500 1! #21266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21267000 0! #21267500 1! #21267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21268000 0! #21268500 1! #21268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21269000 0! #21269500 1! #21269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21270000 0! #21270500 1! #21270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21271000 0! #21271500 1! #21271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21272000 0! #21272500 1! #21272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21273000 0! #21273500 1! #21273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21274000 0! #21274500 1! #21274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21275000 0! #21275500 1! #21275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21276000 0! #21276500 1! #21276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21277000 0! #21277500 1! #21277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21278000 0! #21278500 1! #21278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21279000 0! #21279500 1! #21279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21280000 0! #21280500 1! #21280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21281000 0! #21281500 1! #21281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21282000 0! #21282500 1! #21282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21283000 0! #21283500 1! #21283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21284000 0! #21284500 1! #21284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21285000 0! #21285500 1! #21285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21286000 0! #21286500 1! #21286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21287000 0! #21287500 1! #21287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21288000 0! #21288500 1! #21288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21289000 0! #21289500 1! #21289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21290000 0! #21290500 1! #21290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21291000 0! #21291500 1! #21291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21292000 0! #21292500 1! #21292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21293000 0! #21293500 1! #21293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21294000 0! #21294500 1! #21294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21295000 0! #21295500 1! #21295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21296000 0! #21296500 1! #21296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21297000 0! #21297500 1! #21297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21298000 0! #21298500 1! #21298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21299000 0! #21299500 1! #21299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21300000 0! #21300500 1! #21300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21301000 0! #21301500 1! #21301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21302000 0! #21302500 1! #21302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21303000 0! #21303500 1! #21303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21304000 0! #21304500 1! #21304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21305000 0! #21305500 1! #21305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21306000 0! #21306500 1! #21306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21307000 0! #21307500 1! #21307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21308000 0! #21308500 1! #21308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21309000 0! #21309500 1! #21309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21310000 0! #21310500 1! #21310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21311000 0! #21311500 1! #21311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21312000 0! #21312500 1! #21312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21313000 0! #21313500 1! #21313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21314000 0! #21314500 1! #21314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21315000 0! #21315500 1! #21315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21316000 0! #21316500 1! #21316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21317000 0! #21317500 1! #21317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21318000 0! #21318500 1! #21318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21319000 0! #21319500 1! #21319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21320000 0! #21320500 1! #21320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21321000 0! #21321500 1! #21321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21322000 0! #21322500 1! #21322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21323000 0! #21323500 1! #21323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21324000 0! #21324500 1! #21324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21325000 0! #21325500 1! #21325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21326000 0! #21326500 1! #21326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21327000 0! #21327500 1! #21327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21328000 0! #21328500 1! #21328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21329000 0! #21329500 1! #21329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21330000 0! #21330500 1! #21330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21331000 0! #21331500 1! #21331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21332000 0! #21332500 1! #21332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21333000 0! #21333500 1! #21333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21334000 0! #21334500 1! #21334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21335000 0! #21335500 1! #21335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21336000 0! #21336500 1! #21336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21337000 0! #21337500 1! #21337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21338000 0! #21338500 1! #21338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21339000 0! #21339500 1! #21339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21340000 0! #21340500 1! #21340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21341000 0! #21341500 1! #21341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21342000 0! #21342500 1! #21342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21343000 0! #21343500 1! #21343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21344000 0! #21344500 1! #21344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21345000 0! #21345500 1! #21345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21346000 0! #21346500 1! #21346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21347000 0! #21347500 1! #21347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21348000 0! #21348500 1! #21348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21349000 0! #21349500 1! #21349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21350000 0! #21350500 1! #21350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21351000 0! #21351500 1! #21351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21352000 0! #21352500 1! #21352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21353000 0! #21353500 1! #21353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21354000 0! #21354500 1! #21354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21355000 0! #21355500 1! #21355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21356000 0! #21356500 1! #21356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21357000 0! #21357500 1! #21357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21358000 0! #21358500 1! #21358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21359000 0! #21359500 1! #21359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21360000 0! #21360500 1! #21360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21361000 0! #21361500 1! #21361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21362000 0! #21362500 1! #21362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21363000 0! #21363500 1! #21363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21364000 0! #21364500 1! #21364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21365000 0! #21365500 1! #21365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21366000 0! #21366500 1! #21366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21367000 0! #21367500 1! #21367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21368000 0! #21368500 1! #21368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21369000 0! #21369500 1! #21369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21370000 0! #21370500 1! #21370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21371000 0! #21371500 1! #21371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21372000 0! #21372500 1! #21372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21373000 0! #21373500 1! #21373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21374000 0! #21374500 1! #21374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21375000 0! #21375500 1! #21375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21376000 0! #21376500 1! #21376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21377000 0! #21377500 1! #21377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21378000 0! #21378500 1! #21378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21379000 0! #21379500 1! #21379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21380000 0! #21380500 1! #21380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21381000 0! #21381500 1! #21381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21382000 0! #21382500 1! #21382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21383000 0! #21383500 1! #21383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21384000 0! #21384500 1! #21384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21385000 0! #21385500 1! #21385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21386000 0! #21386500 1! #21386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21387000 0! #21387500 1! #21387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21388000 0! #21388500 1! #21388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21389000 0! #21389500 1! #21389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21390000 0! #21390500 1! #21390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21391000 0! #21391500 1! #21391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21392000 0! #21392500 1! #21392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21393000 0! #21393500 1! #21393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21394000 0! #21394500 1! #21394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21395000 0! #21395500 1! #21395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21396000 0! #21396500 1! #21396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21397000 0! #21397500 1! #21397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #21397700 b1 g b1010000 c #21398000 0! #21398500 1! #21398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21399000 0! #21399500 1! #21399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21400000 0! #21400500 1! #21400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21401000 0! #21401500 1! #21401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21402000 0! #21402500 1! #21402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21403000 0! #21403500 1! #21403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21404000 0! #21404500 1! #21404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21405000 0! #21405500 1! #21405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21406000 0! #21406500 1! #21406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21407000 0! #21407500 1! #21407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21408000 0! #21408500 1! #21408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21409000 0! #21409500 1! #21409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21410000 0! #21410500 1! #21410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21411000 0! #21411500 1! #21411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21412000 0! #21412500 1! #21412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21413000 0! #21413500 1! #21413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21414000 0! #21414500 1! #21414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21415000 0! #21415500 1! #21415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21416000 0! #21416500 1! #21416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21417000 0! #21417500 1! #21417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21418000 0! #21418500 1! #21418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21419000 0! #21419500 1! #21419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21420000 0! #21420500 1! #21420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21421000 0! #21421500 1! #21421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21422000 0! #21422500 1! #21422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21423000 0! #21423500 1! #21423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21424000 0! #21424500 1! #21424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21425000 0! #21425500 1! #21425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21426000 0! #21426500 1! #21426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21427000 0! #21427500 1! #21427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21428000 0! #21428500 1! #21428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21429000 0! #21429500 1! #21429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21430000 0! #21430500 1! #21430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21431000 0! #21431500 1! #21431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21432000 0! #21432500 1! #21432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21433000 0! #21433500 1! #21433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21434000 0! #21434500 1! #21434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21435000 0! #21435500 1! #21435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21436000 0! #21436500 1! #21436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21437000 0! #21437500 1! #21437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21438000 0! #21438500 1! #21438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21439000 0! #21439500 1! #21439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21440000 0! #21440500 1! #21440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21441000 0! #21441500 1! #21441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21442000 0! #21442500 1! #21442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21443000 0! #21443500 1! #21443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21444000 0! #21444500 1! #21444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21445000 0! #21445500 1! #21445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21446000 0! #21446500 1! #21446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21447000 0! #21447500 1! #21447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21448000 0! #21448500 1! #21448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21449000 0! #21449500 1! #21449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21450000 0! #21450500 1! #21450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21451000 0! #21451500 1! #21451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21452000 0! #21452500 1! #21452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21453000 0! #21453500 1! #21453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21454000 0! #21454500 1! #21454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21455000 0! #21455500 1! #21455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21456000 0! #21456500 1! #21456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21457000 0! #21457500 1! #21457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21458000 0! #21458500 1! #21458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21459000 0! #21459500 1! #21459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21460000 0! #21460500 1! #21460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21461000 0! #21461500 1! #21461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21462000 0! #21462500 1! #21462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21463000 0! #21463500 1! #21463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21464000 0! #21464500 1! #21464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21465000 0! #21465500 1! #21465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21466000 0! #21466500 1! #21466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21467000 0! #21467500 1! #21467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21468000 0! #21468500 1! #21468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21469000 0! #21469500 1! #21469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21470000 0! #21470500 1! #21470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21471000 0! #21471500 1! #21471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21472000 0! #21472500 1! #21472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21473000 0! #21473500 1! #21473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21474000 0! #21474500 1! #21474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21475000 0! #21475500 1! #21475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21476000 0! #21476500 1! #21476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21477000 0! #21477500 1! #21477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21478000 0! #21478500 1! #21478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21479000 0! #21479500 1! #21479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21480000 0! #21480500 1! #21480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21481000 0! #21481500 1! #21481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21482000 0! #21482500 1! #21482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21483000 0! #21483500 1! #21483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21484000 0! #21484500 1! #21484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21485000 0! #21485500 1! #21485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21486000 0! #21486500 1! #21486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21487000 0! #21487500 1! #21487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21488000 0! #21488500 1! #21488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21489000 0! #21489500 1! #21489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21490000 0! #21490500 1! #21490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21491000 0! #21491500 1! #21491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21492000 0! #21492500 1! #21492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21493000 0! #21493500 1! #21493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21494000 0! #21494500 1! #21494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21495000 0! #21495500 1! #21495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21496000 0! #21496500 1! #21496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21497000 0! #21497500 1! #21497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21498000 0! #21498500 1! #21498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21499000 0! #21499500 1! #21499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #21500000 0! #21500500 1! #21500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21501000 0! #21501500 1! #21501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21502000 0! #21502500 1! #21502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21503000 0! #21503500 1! #21503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21504000 0! #21504500 1! #21504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21505000 0! #21505500 1! #21505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21506000 0! #21506500 1! #21506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21507000 0! #21507500 1! #21507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21508000 0! #21508500 1! #21508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21509000 0! #21509500 1! #21509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21510000 0! #21510500 1! #21510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21511000 0! #21511500 1! #21511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21512000 0! #21512500 1! #21512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21513000 0! #21513500 1! #21513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21514000 0! #21514500 1! #21514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21515000 0! #21515500 1! #21515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21516000 0! #21516500 1! #21516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21517000 0! #21517500 1! #21517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21518000 0! #21518500 1! #21518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21519000 0! #21519500 1! #21519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21520000 0! #21520500 1! #21520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21521000 0! #21521500 1! #21521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21522000 0! #21522500 1! #21522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21523000 0! #21523500 1! #21523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21524000 0! #21524500 1! #21524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21525000 0! #21525500 1! #21525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21526000 0! #21526500 1! #21526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21527000 0! #21527500 1! #21527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21528000 0! #21528500 1! #21528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21529000 0! #21529500 1! #21529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21530000 0! #21530500 1! #21530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21531000 0! #21531500 1! #21531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21532000 0! #21532500 1! #21532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21533000 0! #21533500 1! #21533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21534000 0! #21534500 1! #21534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21535000 0! #21535500 1! #21535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21536000 0! #21536500 1! #21536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21537000 0! #21537500 1! #21537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21538000 0! #21538500 1! #21538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21539000 0! #21539500 1! #21539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21540000 0! #21540500 1! #21540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21541000 0! #21541500 1! #21541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21542000 0! #21542500 1! #21542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21543000 0! #21543500 1! #21543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21544000 0! #21544500 1! #21544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21545000 0! #21545500 1! #21545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21546000 0! #21546500 1! #21546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21547000 0! #21547500 1! #21547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21548000 0! #21548500 1! #21548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21549000 0! #21549500 1! #21549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21550000 0! #21550500 1! #21550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21551000 0! #21551500 1! #21551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21552000 0! #21552500 1! #21552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21553000 0! #21553500 1! #21553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21554000 0! #21554500 1! #21554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21555000 0! #21555500 1! #21555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21556000 0! #21556500 1! #21556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21557000 0! #21557500 1! #21557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21558000 0! #21558500 1! #21558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21559000 0! #21559500 1! #21559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21560000 0! #21560500 1! #21560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21561000 0! #21561500 1! #21561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21562000 0! #21562500 1! #21562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21563000 0! #21563500 1! #21563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21564000 0! #21564500 1! #21564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21565000 0! #21565500 1! #21565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21566000 0! #21566500 1! #21566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21567000 0! #21567500 1! #21567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21568000 0! #21568500 1! #21568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21569000 0! #21569500 1! #21569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21570000 0! #21570500 1! #21570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21571000 0! #21571500 1! #21571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21572000 0! #21572500 1! #21572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21573000 0! #21573500 1! #21573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21574000 0! #21574500 1! #21574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21575000 0! #21575500 1! #21575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21576000 0! #21576500 1! #21576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21577000 0! #21577500 1! #21577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21578000 0! #21578500 1! #21578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21579000 0! #21579500 1! #21579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21580000 0! #21580500 1! #21580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21581000 0! #21581500 1! #21581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21582000 0! #21582500 1! #21582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21583000 0! #21583500 1! #21583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21584000 0! #21584500 1! #21584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21585000 0! #21585500 1! #21585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21586000 0! #21586500 1! #21586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21587000 0! #21587500 1! #21587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21588000 0! #21588500 1! #21588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21589000 0! #21589500 1! #21589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21590000 0! #21590500 1! #21590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21591000 0! #21591500 1! #21591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21592000 0! #21592500 1! #21592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21593000 0! #21593500 1! #21593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21594000 0! #21594500 1! #21594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21595000 0! #21595500 1! #21595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21596000 0! #21596500 1! #21596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21597000 0! #21597500 1! #21597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21598000 0! #21598500 1! #21598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21599000 0! #21599500 1! #21599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21600000 0! #21600500 1! #21600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21601000 0! #21601500 1! #21601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21602000 0! #21602500 1! #21602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21603000 0! #21603500 1! #21603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21604000 0! #21604500 1! #21604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21605000 0! #21605500 1! #21605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21606000 0! #21606500 1! #21606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21607000 0! #21607500 1! #21607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21608000 0! #21608500 1! #21608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21609000 0! #21609500 1! #21609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21610000 0! #21610500 1! #21610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21611000 0! #21611500 1! #21611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21612000 0! #21612500 1! #21612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21613000 0! #21613500 1! #21613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21614000 0! #21614500 1! #21614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21615000 0! #21615500 1! #21615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21616000 0! #21616500 1! #21616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21617000 0! #21617500 1! #21617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21618000 0! #21618500 1! #21618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21619000 0! #21619500 1! #21619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21620000 0! #21620500 1! #21620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21621000 0! #21621500 1! #21621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21622000 0! #21622500 1! #21622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21623000 0! #21623500 1! #21623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21624000 0! #21624500 1! #21624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21625000 0! #21625500 1! #21625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21626000 0! #21626500 1! #21626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21627000 0! #21627500 1! #21627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21628000 0! #21628500 1! #21628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21629000 0! #21629500 1! #21629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21630000 0! #21630500 1! #21630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21631000 0! #21631500 1! #21631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21632000 0! #21632500 1! #21632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21633000 0! #21633500 1! #21633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21634000 0! #21634500 1! #21634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21635000 0! #21635500 1! #21635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21636000 0! #21636500 1! #21636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21637000 0! #21637500 1! #21637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21638000 0! #21638500 1! #21638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21639000 0! #21639500 1! #21639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21640000 0! #21640500 1! #21640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21641000 0! #21641500 1! #21641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21642000 0! #21642500 1! #21642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21643000 0! #21643500 1! #21643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21644000 0! #21644500 1! #21644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21645000 0! #21645500 1! #21645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21646000 0! #21646500 1! #21646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21647000 0! #21647500 1! #21647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21648000 0! #21648500 1! #21648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21649000 0! #21649500 1! #21649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21650000 0! #21650500 1! #21650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21651000 0! #21651500 1! #21651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21652000 0! #21652500 1! #21652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #21652700 b0 g b10100000 c 1e 1h #21653000 0! #21653500 1! #21653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21654000 0! #21654500 1! #21654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21655000 0! #21655500 1! #21655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21656000 0! #21656500 1! #21656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21657000 0! #21657500 1! #21657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21658000 0! #21658500 1! #21658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21659000 0! #21659500 1! #21659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21660000 0! #21660500 1! #21660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21661000 0! #21661500 1! #21661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21662000 0! #21662500 1! #21662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21663000 0! #21663500 1! #21663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21664000 0! #21664500 1! #21664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21665000 0! #21665500 1! #21665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21666000 0! #21666500 1! #21666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21667000 0! #21667500 1! #21667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21668000 0! #21668500 1! #21668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21669000 0! #21669500 1! #21669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21670000 0! #21670500 1! #21670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21671000 0! #21671500 1! #21671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21672000 0! #21672500 1! #21672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21673000 0! #21673500 1! #21673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21674000 0! #21674500 1! #21674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21675000 0! #21675500 1! #21675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21676000 0! #21676500 1! #21676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21677000 0! #21677500 1! #21677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21678000 0! #21678500 1! #21678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21679000 0! #21679500 1! #21679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21680000 0! #21680500 1! #21680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21681000 0! #21681500 1! #21681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21682000 0! #21682500 1! #21682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21683000 0! #21683500 1! #21683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21684000 0! #21684500 1! #21684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21685000 0! #21685500 1! #21685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21686000 0! #21686500 1! #21686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21687000 0! #21687500 1! #21687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21688000 0! #21688500 1! #21688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21689000 0! #21689500 1! #21689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21690000 0! #21690500 1! #21690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21691000 0! #21691500 1! #21691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21692000 0! #21692500 1! #21692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21693000 0! #21693500 1! #21693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21694000 0! #21694500 1! #21694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21695000 0! #21695500 1! #21695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21696000 0! #21696500 1! #21696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21697000 0! #21697500 1! #21697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21698000 0! #21698500 1! #21698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21699000 0! #21699500 1! #21699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21700000 0! #21700500 1! #21700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21701000 0! #21701500 1! #21701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21702000 0! #21702500 1! #21702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21703000 0! #21703500 1! #21703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21704000 0! #21704500 1! #21704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21705000 0! #21705500 1! #21705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21706000 0! #21706500 1! #21706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21707000 0! #21707500 1! #21707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21708000 0! #21708500 1! #21708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21709000 0! #21709500 1! #21709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21710000 0! #21710500 1! #21710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21711000 0! #21711500 1! #21711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21712000 0! #21712500 1! #21712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21713000 0! #21713500 1! #21713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21714000 0! #21714500 1! #21714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21715000 0! #21715500 1! #21715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21716000 0! #21716500 1! #21716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21717000 0! #21717500 1! #21717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21718000 0! #21718500 1! #21718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21719000 0! #21719500 1! #21719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21720000 0! #21720500 1! #21720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21721000 0! #21721500 1! #21721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21722000 0! #21722500 1! #21722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21723000 0! #21723500 1! #21723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21724000 0! #21724500 1! #21724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21725000 0! #21725500 1! #21725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21726000 0! #21726500 1! #21726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21727000 0! #21727500 1! #21727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21728000 0! #21728500 1! #21728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21729000 0! #21729500 1! #21729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21730000 0! #21730500 1! #21730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21731000 0! #21731500 1! #21731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21732000 0! #21732500 1! #21732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21733000 0! #21733500 1! #21733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21734000 0! #21734500 1! #21734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21735000 0! #21735500 1! #21735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21736000 0! #21736500 1! #21736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21737000 0! #21737500 1! #21737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21738000 0! #21738500 1! #21738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21739000 0! #21739500 1! #21739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21740000 0! #21740500 1! #21740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21741000 0! #21741500 1! #21741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21742000 0! #21742500 1! #21742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21743000 0! #21743500 1! #21743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21744000 0! #21744500 1! #21744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21745000 0! #21745500 1! #21745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21746000 0! #21746500 1! #21746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21747000 0! #21747500 1! #21747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21748000 0! #21748500 1! #21748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21749000 0! #21749500 1! #21749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21750000 0! #21750500 1! #21750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21751000 0! #21751500 1! #21751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21752000 0! #21752500 1! #21752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21753000 0! #21753500 1! #21753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21754000 0! #21754500 1! #21754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #21754700 b1 q 0j #21755000 0! #21755500 1! #21755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21756000 0! #21756500 1! #21756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21757000 0! #21757500 1! #21757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21758000 0! #21758500 1! #21758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21759000 0! #21759500 1! #21759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21760000 0! #21760500 1! #21760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21761000 0! #21761500 1! #21761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21762000 0! #21762500 1! #21762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21763000 0! #21763500 1! #21763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21764000 0! #21764500 1! #21764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21765000 0! #21765500 1! #21765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21766000 0! #21766500 1! #21766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21767000 0! #21767500 1! #21767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21768000 0! #21768500 1! #21768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21769000 0! #21769500 1! #21769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21770000 0! #21770500 1! #21770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21771000 0! #21771500 1! #21771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21772000 0! #21772500 1! #21772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21773000 0! #21773500 1! #21773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21774000 0! #21774500 1! #21774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21775000 0! #21775500 1! #21775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21776000 0! #21776500 1! #21776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21777000 0! #21777500 1! #21777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21778000 0! #21778500 1! #21778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21779000 0! #21779500 1! #21779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21780000 0! #21780500 1! #21780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21781000 0! #21781500 1! #21781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21782000 0! #21782500 1! #21782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21783000 0! #21783500 1! #21783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21784000 0! #21784500 1! #21784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21785000 0! #21785500 1! #21785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21786000 0! #21786500 1! #21786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21787000 0! #21787500 1! #21787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21788000 0! #21788500 1! #21788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21789000 0! #21789500 1! #21789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21790000 0! #21790500 1! #21790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21791000 0! #21791500 1! #21791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21792000 0! #21792500 1! #21792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21793000 0! #21793500 1! #21793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21794000 0! #21794500 1! #21794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21795000 0! #21795500 1! #21795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21796000 0! #21796500 1! #21796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21797000 0! #21797500 1! #21797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21798000 0! #21798500 1! #21798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21799000 0! #21799500 1! #21799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21800000 0! #21800500 1! #21800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21801000 0! #21801500 1! #21801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21802000 0! #21802500 1! #21802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21803000 0! #21803500 1! #21803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21804000 0! #21804500 1! #21804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21805000 0! #21805500 1! #21805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21806000 0! #21806500 1! #21806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21807000 0! #21807500 1! #21807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21808000 0! #21808500 1! #21808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21809000 0! #21809500 1! #21809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21810000 0! #21810500 1! #21810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21811000 0! #21811500 1! #21811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21812000 0! #21812500 1! #21812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21813000 0! #21813500 1! #21813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21814000 0! #21814500 1! #21814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21815000 0! #21815500 1! #21815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21816000 0! #21816500 1! #21816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21817000 0! #21817500 1! #21817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21818000 0! #21818500 1! #21818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21819000 0! #21819500 1! #21819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21820000 0! #21820500 1! #21820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21821000 0! #21821500 1! #21821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21822000 0! #21822500 1! #21822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21823000 0! #21823500 1! #21823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21824000 0! #21824500 1! #21824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21825000 0! #21825500 1! #21825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21826000 0! #21826500 1! #21826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21827000 0! #21827500 1! #21827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21828000 0! #21828500 1! #21828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21829000 0! #21829500 1! #21829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21830000 0! #21830500 1! #21830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21831000 0! #21831500 1! #21831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21832000 0! #21832500 1! #21832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21833000 0! #21833500 1! #21833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21834000 0! #21834500 1! #21834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21835000 0! #21835500 1! #21835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21836000 0! #21836500 1! #21836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21837000 0! #21837500 1! #21837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21838000 0! #21838500 1! #21838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21839000 0! #21839500 1! #21839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21840000 0! #21840500 1! #21840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21841000 0! #21841500 1! #21841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21842000 0! #21842500 1! #21842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21843000 0! #21843500 1! #21843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21844000 0! #21844500 1! #21844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21845000 0! #21845500 1! #21845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21846000 0! #21846500 1! #21846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21847000 0! #21847500 1! #21847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21848000 0! #21848500 1! #21848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21849000 0! #21849500 1! #21849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21850000 0! #21850500 1! #21850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21851000 0! #21851500 1! #21851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21852000 0! #21852500 1! #21852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21853000 0! #21853500 1! #21853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21854000 0! #21854500 1! #21854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21855000 0! #21855500 1! #21855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21856000 0! #21856500 1! #21856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q #21857000 0! #21857500 1! #21857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21858000 0! #21858500 1! #21858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21859000 0! #21859500 1! #21859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21860000 0! #21860500 1! #21860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21861000 0! #21861500 1! #21861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21862000 0! #21862500 1! #21862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21863000 0! #21863500 1! #21863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21864000 0! #21864500 1! #21864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21865000 0! #21865500 1! #21865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21866000 0! #21866500 1! #21866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21867000 0! #21867500 1! #21867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21868000 0! #21868500 1! #21868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21869000 0! #21869500 1! #21869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21870000 0! #21870500 1! #21870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21871000 0! #21871500 1! #21871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21872000 0! #21872500 1! #21872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21873000 0! #21873500 1! #21873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21874000 0! #21874500 1! #21874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21875000 0! #21875500 1! #21875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21876000 0! #21876500 1! #21876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21877000 0! #21877500 1! #21877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21878000 0! #21878500 1! #21878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21879000 0! #21879500 1! #21879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21880000 0! #21880500 1! #21880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21881000 0! #21881500 1! #21881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21882000 0! #21882500 1! #21882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21883000 0! #21883500 1! #21883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21884000 0! #21884500 1! #21884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21885000 0! #21885500 1! #21885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21886000 0! #21886500 1! #21886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21887000 0! #21887500 1! #21887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21888000 0! #21888500 1! #21888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21889000 0! #21889500 1! #21889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21890000 0! #21890500 1! #21890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21891000 0! #21891500 1! #21891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21892000 0! #21892500 1! #21892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21893000 0! #21893500 1! #21893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21894000 0! #21894500 1! #21894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21895000 0! #21895500 1! #21895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21896000 0! #21896500 1! #21896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21897000 0! #21897500 1! #21897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21898000 0! #21898500 1! #21898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21899000 0! #21899500 1! #21899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21900000 0! #21900500 1! #21900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21901000 0! #21901500 1! #21901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21902000 0! #21902500 1! #21902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21903000 0! #21903500 1! #21903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21904000 0! #21904500 1! #21904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21905000 0! #21905500 1! #21905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21906000 0! #21906500 1! #21906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21907000 0! #21907500 1! #21907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #21907700 b111 g b1000000 c 0e 0h #21908000 0! #21908500 1! #21908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21909000 0! #21909500 1! #21909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21910000 0! #21910500 1! #21910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21911000 0! #21911500 1! #21911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21912000 0! #21912500 1! #21912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21913000 0! #21913500 1! #21913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21914000 0! #21914500 1! #21914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21915000 0! #21915500 1! #21915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21916000 0! #21916500 1! #21916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21917000 0! #21917500 1! #21917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21918000 0! #21918500 1! #21918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21919000 0! #21919500 1! #21919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21920000 0! #21920500 1! #21920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21921000 0! #21921500 1! #21921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21922000 0! #21922500 1! #21922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21923000 0! #21923500 1! #21923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21924000 0! #21924500 1! #21924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21925000 0! #21925500 1! #21925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21926000 0! #21926500 1! #21926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21927000 0! #21927500 1! #21927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21928000 0! #21928500 1! #21928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21929000 0! #21929500 1! #21929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21930000 0! #21930500 1! #21930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21931000 0! #21931500 1! #21931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21932000 0! #21932500 1! #21932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21933000 0! #21933500 1! #21933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21934000 0! #21934500 1! #21934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21935000 0! #21935500 1! #21935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21936000 0! #21936500 1! #21936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21937000 0! #21937500 1! #21937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21938000 0! #21938500 1! #21938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21939000 0! #21939500 1! #21939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21940000 0! #21940500 1! #21940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21941000 0! #21941500 1! #21941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21942000 0! #21942500 1! #21942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21943000 0! #21943500 1! #21943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21944000 0! #21944500 1! #21944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21945000 0! #21945500 1! #21945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21946000 0! #21946500 1! #21946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21947000 0! #21947500 1! #21947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21948000 0! #21948500 1! #21948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21949000 0! #21949500 1! #21949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21950000 0! #21950500 1! #21950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21951000 0! #21951500 1! #21951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21952000 0! #21952500 1! #21952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21953000 0! #21953500 1! #21953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21954000 0! #21954500 1! #21954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21955000 0! #21955500 1! #21955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21956000 0! #21956500 1! #21956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21957000 0! #21957500 1! #21957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21958000 0! #21958500 1! #21958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21959000 0! #21959500 1! #21959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21960000 0! #21960500 1! #21960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21961000 0! #21961500 1! #21961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21962000 0! #21962500 1! #21962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21963000 0! #21963500 1! #21963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21964000 0! #21964500 1! #21964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21965000 0! #21965500 1! #21965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21966000 0! #21966500 1! #21966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21967000 0! #21967500 1! #21967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21968000 0! #21968500 1! #21968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21969000 0! #21969500 1! #21969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21970000 0! #21970500 1! #21970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21971000 0! #21971500 1! #21971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21972000 0! #21972500 1! #21972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21973000 0! #21973500 1! #21973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21974000 0! #21974500 1! #21974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21975000 0! #21975500 1! #21975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21976000 0! #21976500 1! #21976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21977000 0! #21977500 1! #21977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21978000 0! #21978500 1! #21978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21979000 0! #21979500 1! #21979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21980000 0! #21980500 1! #21980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21981000 0! #21981500 1! #21981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21982000 0! #21982500 1! #21982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21983000 0! #21983500 1! #21983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21984000 0! #21984500 1! #21984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21985000 0! #21985500 1! #21985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21986000 0! #21986500 1! #21986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21987000 0! #21987500 1! #21987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21988000 0! #21988500 1! #21988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21989000 0! #21989500 1! #21989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21990000 0! #21990500 1! #21990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21991000 0! #21991500 1! #21991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21992000 0! #21992500 1! #21992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21993000 0! #21993500 1! #21993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21994000 0! #21994500 1! #21994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21995000 0! #21995500 1! #21995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21996000 0! #21996500 1! #21996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21997000 0! #21997500 1! #21997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #21998000 0! #21998500 1! #21998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #21999000 0! #21999500 1! #21999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22000000 0! #22000500 1! #22000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22001000 0! #22001500 1! #22001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22002000 0! #22002500 1! #22002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22003000 0! #22003500 1! #22003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22004000 0! #22004500 1! #22004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22005000 0! #22005500 1! #22005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22006000 0! #22006500 1! #22006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22007000 0! #22007500 1! #22007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22008000 0! #22008500 1! #22008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22009000 0! #22009500 1! #22009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #22009700 1j b10 q 1i 1O #22010000 0! #22010500 1! #22010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22011000 0! #22011500 1! #22011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22012000 0! #22012500 1! #22012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22013000 0! #22013500 1! #22013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #22014000 0! #22014500 1! #22014600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22015000 0! #22015500 1! #22015600 1E 1F 1G b1 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b0 C 1H #22016000 0! #22016500 1! #22016600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22016700 1E 1F 1G b10000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #22017000 0! #22017500 1! #22017600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22018000 0! #22018500 1! #22018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #22019000 0! #22019500 1! #22019600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22020000 0! #22020500 1! #22020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22021000 0! #22021500 1! #22021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22022000 0! #22022500 1! #22022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22023000 0! #22023500 1! #22023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22024000 0! #22024500 1! #22024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22025000 0! #22025500 1! #22025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22026000 0! #22026500 1! #22026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22027000 0! #22027500 1! #22027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22028000 0! #22028500 1! #22028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22029000 0! #22029500 1! #22029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22030000 0! #22030500 1! #22030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22031000 0! #22031500 1! #22031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22032000 0! #22032500 1! #22032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22033000 0! #22033500 1! #22033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22034000 0! #22034500 1! #22034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22035000 0! #22035500 1! #22035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22036000 0! #22036500 1! #22036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22037000 0! #22037500 1! #22037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22038000 0! #22038500 1! #22038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22039000 0! #22039500 1! #22039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22040000 0! #22040500 1! #22040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22041000 0! #22041500 1! #22041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22042000 0! #22042500 1! #22042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22043000 0! #22043500 1! #22043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22044000 0! #22044500 1! #22044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22045000 0! #22045500 1! #22045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22046000 0! #22046500 1! #22046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22047000 0! #22047500 1! #22047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22048000 0! #22048500 1! #22048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22049000 0! #22049500 1! #22049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22050000 0! #22050500 1! #22050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22051000 0! #22051500 1! #22051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22052000 0! #22052500 1! #22052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22053000 0! #22053500 1! #22053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22054000 0! #22054500 1! #22054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22055000 0! #22055500 1! #22055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22056000 0! #22056500 1! #22056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22057000 0! #22057500 1! #22057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22058000 0! #22058500 1! #22058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22059000 0! #22059500 1! #22059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22060000 0! #22060500 1! #22060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22061000 0! #22061500 1! #22061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22062000 0! #22062500 1! #22062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22063000 0! #22063500 1! #22063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22064000 0! #22064500 1! #22064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22065000 0! #22065500 1! #22065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22066000 0! #22066500 1! #22066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22067000 0! #22067500 1! #22067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22068000 0! #22068500 1! #22068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22069000 0! #22069500 1! #22069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22070000 0! #22070500 1! #22070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22071000 0! #22071500 1! #22071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22072000 0! #22072500 1! #22072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22073000 0! #22073500 1! #22073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22074000 0! #22074500 1! #22074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22075000 0! #22075500 1! #22075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22076000 0! #22076500 1! #22076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22077000 0! #22077500 1! #22077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22078000 0! #22078500 1! #22078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22079000 0! #22079500 1! #22079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22080000 0! #22080500 1! #22080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22081000 0! #22081500 1! #22081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22082000 0! #22082500 1! #22082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22083000 0! #22083500 1! #22083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22084000 0! #22084500 1! #22084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22085000 0! #22085500 1! #22085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22086000 0! #22086500 1! #22086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22087000 0! #22087500 1! #22087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22088000 0! #22088500 1! #22088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22089000 0! #22089500 1! #22089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22090000 0! #22090500 1! #22090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22091000 0! #22091500 1! #22091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22092000 0! #22092500 1! #22092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22093000 0! #22093500 1! #22093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22094000 0! #22094500 1! #22094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22095000 0! #22095500 1! #22095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22096000 0! #22096500 1! #22096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22097000 0! #22097500 1! #22097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22098000 0! #22098500 1! #22098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22099000 0! #22099500 1! #22099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22100000 0! #22100500 1! #22100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22101000 0! #22101500 1! #22101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22102000 0! #22102500 1! #22102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22103000 0! #22103500 1! #22103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22104000 0! #22104500 1! #22104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22105000 0! #22105500 1! #22105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22106000 0! #22106500 1! #22106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22107000 0! #22107500 1! #22107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22108000 0! #22108500 1! #22108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22109000 0! #22109500 1! #22109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22110000 0! #22110500 1! #22110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22111000 0! #22111500 1! #22111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #22112000 0! #22112500 1! #22112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22113000 0! #22113500 1! #22113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22114000 0! #22114500 1! #22114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22115000 0! #22115500 1! #22115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22116000 0! #22116500 1! #22116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22117000 0! #22117500 1! #22117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22118000 0! #22118500 1! #22118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22119000 0! #22119500 1! #22119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22120000 0! #22120500 1! #22120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22121000 0! #22121500 1! #22121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22122000 0! #22122500 1! #22122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22123000 0! #22123500 1! #22123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22124000 0! #22124500 1! #22124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22125000 0! #22125500 1! #22125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22126000 0! #22126500 1! #22126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22127000 0! #22127500 1! #22127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22128000 0! #22128500 1! #22128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22129000 0! #22129500 1! #22129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22130000 0! #22130500 1! #22130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22131000 0! #22131500 1! #22131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22132000 0! #22132500 1! #22132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22133000 0! #22133500 1! #22133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22134000 0! #22134500 1! #22134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22135000 0! #22135500 1! #22135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22136000 0! #22136500 1! #22136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22137000 0! #22137500 1! #22137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22138000 0! #22138500 1! #22138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22139000 0! #22139500 1! #22139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22140000 0! #22140500 1! #22140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22141000 0! #22141500 1! #22141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22142000 0! #22142500 1! #22142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22143000 0! #22143500 1! #22143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22144000 0! #22144500 1! #22144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22145000 0! #22145500 1! #22145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22146000 0! #22146500 1! #22146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22147000 0! #22147500 1! #22147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22148000 0! #22148500 1! #22148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22149000 0! #22149500 1! #22149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22150000 0! #22150500 1! #22150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22151000 0! #22151500 1! #22151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22152000 0! #22152500 1! #22152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22153000 0! #22153500 1! #22153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22154000 0! #22154500 1! #22154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22155000 0! #22155500 1! #22155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22156000 0! #22156500 1! #22156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22157000 0! #22157500 1! #22157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22158000 0! #22158500 1! #22158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22159000 0! #22159500 1! #22159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22160000 0! #22160500 1! #22160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22161000 0! #22161500 1! #22161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22162000 0! #22162500 1! #22162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #22162700 b10000000 c #22163000 0! #22163500 1! #22163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22164000 0! #22164500 1! #22164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22165000 0! #22165500 1! #22165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22166000 0! #22166500 1! #22166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22167000 0! #22167500 1! #22167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22168000 0! #22168500 1! #22168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22169000 0! #22169500 1! #22169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22170000 0! #22170500 1! #22170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22171000 0! #22171500 1! #22171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22172000 0! #22172500 1! #22172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22173000 0! #22173500 1! #22173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22174000 0! #22174500 1! #22174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22175000 0! #22175500 1! #22175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22176000 0! #22176500 1! #22176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22177000 0! #22177500 1! #22177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22178000 0! #22178500 1! #22178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22179000 0! #22179500 1! #22179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22180000 0! #22180500 1! #22180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22181000 0! #22181500 1! #22181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22182000 0! #22182500 1! #22182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22183000 0! #22183500 1! #22183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22184000 0! #22184500 1! #22184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22185000 0! #22185500 1! #22185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22186000 0! #22186500 1! #22186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22187000 0! #22187500 1! #22187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22188000 0! #22188500 1! #22188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22189000 0! #22189500 1! #22189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22190000 0! #22190500 1! #22190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22191000 0! #22191500 1! #22191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22192000 0! #22192500 1! #22192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22193000 0! #22193500 1! #22193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22194000 0! #22194500 1! #22194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22195000 0! #22195500 1! #22195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22196000 0! #22196500 1! #22196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22197000 0! #22197500 1! #22197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22198000 0! #22198500 1! #22198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22199000 0! #22199500 1! #22199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22200000 0! #22200500 1! #22200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22201000 0! #22201500 1! #22201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22202000 0! #22202500 1! #22202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22203000 0! #22203500 1! #22203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22204000 0! #22204500 1! #22204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22205000 0! #22205500 1! #22205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22206000 0! #22206500 1! #22206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22207000 0! #22207500 1! #22207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22208000 0! #22208500 1! #22208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22209000 0! #22209500 1! #22209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22210000 0! #22210500 1! #22210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22211000 0! #22211500 1! #22211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22212000 0! #22212500 1! #22212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22213000 0! #22213500 1! #22213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22214000 0! #22214500 1! #22214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22215000 0! #22215500 1! #22215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22216000 0! #22216500 1! #22216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22217000 0! #22217500 1! #22217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22218000 0! #22218500 1! #22218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22219000 0! #22219500 1! #22219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22220000 0! #22220500 1! #22220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22221000 0! #22221500 1! #22221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22222000 0! #22222500 1! #22222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22223000 0! #22223500 1! #22223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22224000 0! #22224500 1! #22224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22225000 0! #22225500 1! #22225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22226000 0! #22226500 1! #22226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22227000 0! #22227500 1! #22227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22228000 0! #22228500 1! #22228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22229000 0! #22229500 1! #22229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22230000 0! #22230500 1! #22230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22231000 0! #22231500 1! #22231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22232000 0! #22232500 1! #22232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22233000 0! #22233500 1! #22233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22234000 0! #22234500 1! #22234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22235000 0! #22235500 1! #22235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22236000 0! #22236500 1! #22236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22237000 0! #22237500 1! #22237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22238000 0! #22238500 1! #22238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22239000 0! #22239500 1! #22239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22240000 0! #22240500 1! #22240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22241000 0! #22241500 1! #22241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22242000 0! #22242500 1! #22242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22243000 0! #22243500 1! #22243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22244000 0! #22244500 1! #22244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22245000 0! #22245500 1! #22245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22246000 0! #22246500 1! #22246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22247000 0! #22247500 1! #22247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22248000 0! #22248500 1! #22248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22249000 0! #22249500 1! #22249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22250000 0! #22250500 1! #22250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22251000 0! #22251500 1! #22251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22252000 0! #22252500 1! #22252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22253000 0! #22253500 1! #22253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22254000 0! #22254500 1! #22254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22255000 0! #22255500 1! #22255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22256000 0! #22256500 1! #22256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22257000 0! #22257500 1! #22257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22258000 0! #22258500 1! #22258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22259000 0! #22259500 1! #22259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22260000 0! #22260500 1! #22260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22261000 0! #22261500 1! #22261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22262000 0! #22262500 1! #22262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22263000 0! #22263500 1! #22263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22264000 0! #22264500 1! #22264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #22264700 0i #22265000 0! #22265500 1! #22265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22266000 0! #22266500 1! #22266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22267000 0! #22267500 1! #22267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22268000 0! #22268500 1! #22268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22269000 0! #22269500 1! #22269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22270000 0! #22270500 1! #22270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22271000 0! #22271500 1! #22271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22272000 0! #22272500 1! #22272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22273000 0! #22273500 1! #22273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22274000 0! #22274500 1! #22274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22275000 0! #22275500 1! #22275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22276000 0! #22276500 1! #22276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22277000 0! #22277500 1! #22277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22278000 0! #22278500 1! #22278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22279000 0! #22279500 1! #22279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22280000 0! #22280500 1! #22280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22281000 0! #22281500 1! #22281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22282000 0! #22282500 1! #22282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22283000 0! #22283500 1! #22283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22284000 0! #22284500 1! #22284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22285000 0! #22285500 1! #22285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22286000 0! #22286500 1! #22286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22287000 0! #22287500 1! #22287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22288000 0! #22288500 1! #22288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22289000 0! #22289500 1! #22289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22290000 0! #22290500 1! #22290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22291000 0! #22291500 1! #22291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22292000 0! #22292500 1! #22292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22293000 0! #22293500 1! #22293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22294000 0! #22294500 1! #22294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22295000 0! #22295500 1! #22295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22296000 0! #22296500 1! #22296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22297000 0! #22297500 1! #22297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22298000 0! #22298500 1! #22298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22299000 0! #22299500 1! #22299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22300000 0! #22300500 1! #22300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22301000 0! #22301500 1! #22301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22302000 0! #22302500 1! #22302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22303000 0! #22303500 1! #22303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22304000 0! #22304500 1! #22304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22305000 0! #22305500 1! #22305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22306000 0! #22306500 1! #22306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22307000 0! #22307500 1! #22307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22308000 0! #22308500 1! #22308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22309000 0! #22309500 1! #22309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22310000 0! #22310500 1! #22310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22311000 0! #22311500 1! #22311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22312000 0! #22312500 1! #22312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22313000 0! #22313500 1! #22313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22314000 0! #22314500 1! #22314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22315000 0! #22315500 1! #22315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22316000 0! #22316500 1! #22316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22317000 0! #22317500 1! #22317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22318000 0! #22318500 1! #22318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22319000 0! #22319500 1! #22319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22320000 0! #22320500 1! #22320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22321000 0! #22321500 1! #22321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22322000 0! #22322500 1! #22322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22323000 0! #22323500 1! #22323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22324000 0! #22324500 1! #22324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22325000 0! #22325500 1! #22325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22326000 0! #22326500 1! #22326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22327000 0! #22327500 1! #22327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22328000 0! #22328500 1! #22328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22329000 0! #22329500 1! #22329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22330000 0! #22330500 1! #22330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22331000 0! #22331500 1! #22331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22332000 0! #22332500 1! #22332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22333000 0! #22333500 1! #22333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22334000 0! #22334500 1! #22334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22335000 0! #22335500 1! #22335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22336000 0! #22336500 1! #22336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22337000 0! #22337500 1! #22337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22338000 0! #22338500 1! #22338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22339000 0! #22339500 1! #22339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22340000 0! #22340500 1! #22340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22341000 0! #22341500 1! #22341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22342000 0! #22342500 1! #22342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22343000 0! #22343500 1! #22343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22344000 0! #22344500 1! #22344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22345000 0! #22345500 1! #22345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22346000 0! #22346500 1! #22346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22347000 0! #22347500 1! #22347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22348000 0! #22348500 1! #22348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22349000 0! #22349500 1! #22349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22350000 0! #22350500 1! #22350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22351000 0! #22351500 1! #22351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22352000 0! #22352500 1! #22352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22353000 0! #22353500 1! #22353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22354000 0! #22354500 1! #22354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22355000 0! #22355500 1! #22355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22356000 0! #22356500 1! #22356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22357000 0! #22357500 1! #22357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22358000 0! #22358500 1! #22358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22359000 0! #22359500 1! #22359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22360000 0! #22360500 1! #22360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22361000 0! #22361500 1! #22361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22362000 0! #22362500 1! #22362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22363000 0! #22363500 1! #22363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22364000 0! #22364500 1! #22364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22365000 0! #22365500 1! #22365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22366000 0! #22366500 1! #22366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22367000 0! #22367500 1! #22367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22368000 0! #22368500 1! #22368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22369000 0! #22369500 1! #22369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22370000 0! #22370500 1! #22370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22371000 0! #22371500 1! #22371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22372000 0! #22372500 1! #22372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22373000 0! #22373500 1! #22373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22374000 0! #22374500 1! #22374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22375000 0! #22375500 1! #22375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22376000 0! #22376500 1! #22376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22377000 0! #22377500 1! #22377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22378000 0! #22378500 1! #22378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22379000 0! #22379500 1! #22379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22380000 0! #22380500 1! #22380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22381000 0! #22381500 1! #22381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22382000 0! #22382500 1! #22382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22383000 0! #22383500 1! #22383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22384000 0! #22384500 1! #22384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22385000 0! #22385500 1! #22385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22386000 0! #22386500 1! #22386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22387000 0! #22387500 1! #22387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22388000 0! #22388500 1! #22388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22389000 0! #22389500 1! #22389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22390000 0! #22390500 1! #22390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22391000 0! #22391500 1! #22391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22392000 0! #22392500 1! #22392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22393000 0! #22393500 1! #22393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22394000 0! #22394500 1! #22394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22395000 0! #22395500 1! #22395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22396000 0! #22396500 1! #22396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22397000 0! #22397500 1! #22397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22398000 0! #22398500 1! #22398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22399000 0! #22399500 1! #22399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22400000 0! #22400500 1! #22400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22401000 0! #22401500 1! #22401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22402000 0! #22402500 1! #22402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22403000 0! #22403500 1! #22403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22404000 0! #22404500 1! #22404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22405000 0! #22405500 1! #22405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22406000 0! #22406500 1! #22406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22407000 0! #22407500 1! #22407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22408000 0! #22408500 1! #22408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22409000 0! #22409500 1! #22409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22410000 0! #22410500 1! #22410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22411000 0! #22411500 1! #22411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22412000 0! #22412500 1! #22412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22413000 0! #22413500 1! #22413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22414000 0! #22414500 1! #22414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22415000 0! #22415500 1! #22415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22416000 0! #22416500 1! #22416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22417000 0! #22417500 1! #22417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #22417700 b110 g b0 c #22418000 0! #22418500 1! #22418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22419000 0! #22419500 1! #22419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22420000 0! #22420500 1! #22420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22421000 0! #22421500 1! #22421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22422000 0! #22422500 1! #22422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22423000 0! #22423500 1! #22423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22424000 0! #22424500 1! #22424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22425000 0! #22425500 1! #22425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22426000 0! #22426500 1! #22426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22427000 0! #22427500 1! #22427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22428000 0! #22428500 1! #22428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22429000 0! #22429500 1! #22429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22430000 0! #22430500 1! #22430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22431000 0! #22431500 1! #22431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22432000 0! #22432500 1! #22432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22433000 0! #22433500 1! #22433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22434000 0! #22434500 1! #22434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22435000 0! #22435500 1! #22435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22436000 0! #22436500 1! #22436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22437000 0! #22437500 1! #22437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22438000 0! #22438500 1! #22438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22439000 0! #22439500 1! #22439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22440000 0! #22440500 1! #22440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22441000 0! #22441500 1! #22441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22442000 0! #22442500 1! #22442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22443000 0! #22443500 1! #22443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22444000 0! #22444500 1! #22444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22445000 0! #22445500 1! #22445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22446000 0! #22446500 1! #22446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22447000 0! #22447500 1! #22447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22448000 0! #22448500 1! #22448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22449000 0! #22449500 1! #22449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22450000 0! #22450500 1! #22450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22451000 0! #22451500 1! #22451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22452000 0! #22452500 1! #22452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22453000 0! #22453500 1! #22453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22454000 0! #22454500 1! #22454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22455000 0! #22455500 1! #22455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22456000 0! #22456500 1! #22456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22457000 0! #22457500 1! #22457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22458000 0! #22458500 1! #22458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22459000 0! #22459500 1! #22459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22460000 0! #22460500 1! #22460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22461000 0! #22461500 1! #22461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22462000 0! #22462500 1! #22462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22463000 0! #22463500 1! #22463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22464000 0! #22464500 1! #22464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22465000 0! #22465500 1! #22465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22466000 0! #22466500 1! #22466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22467000 0! #22467500 1! #22467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22468000 0! #22468500 1! #22468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22469000 0! #22469500 1! #22469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22470000 0! #22470500 1! #22470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22471000 0! #22471500 1! #22471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22472000 0! #22472500 1! #22472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22473000 0! #22473500 1! #22473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22474000 0! #22474500 1! #22474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22475000 0! #22475500 1! #22475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22476000 0! #22476500 1! #22476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22477000 0! #22477500 1! #22477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22478000 0! #22478500 1! #22478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22479000 0! #22479500 1! #22479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22480000 0! #22480500 1! #22480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22481000 0! #22481500 1! #22481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22482000 0! #22482500 1! #22482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22483000 0! #22483500 1! #22483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22484000 0! #22484500 1! #22484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22485000 0! #22485500 1! #22485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22486000 0! #22486500 1! #22486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22487000 0! #22487500 1! #22487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22488000 0! #22488500 1! #22488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22489000 0! #22489500 1! #22489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22490000 0! #22490500 1! #22490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22491000 0! #22491500 1! #22491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22492000 0! #22492500 1! #22492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22493000 0! #22493500 1! #22493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22494000 0! #22494500 1! #22494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22495000 0! #22495500 1! #22495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22496000 0! #22496500 1! #22496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22497000 0! #22497500 1! #22497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22498000 0! #22498500 1! #22498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22499000 0! #22499500 1! #22499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22500000 0! #22500500 1! #22500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22501000 0! #22501500 1! #22501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22502000 0! #22502500 1! #22502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22503000 0! #22503500 1! #22503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22504000 0! #22504500 1! #22504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22505000 0! #22505500 1! #22505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22506000 0! #22506500 1! #22506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22507000 0! #22507500 1! #22507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22508000 0! #22508500 1! #22508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22509000 0! #22509500 1! #22509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22510000 0! #22510500 1! #22510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22511000 0! #22511500 1! #22511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22512000 0! #22512500 1! #22512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22513000 0! #22513500 1! #22513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22514000 0! #22514500 1! #22514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22515000 0! #22515500 1! #22515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22516000 0! #22516500 1! #22516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22517000 0! #22517500 1! #22517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22518000 0! #22518500 1! #22518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22519000 0! #22519500 1! #22519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #22520000 0! #22520500 1! #22520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22521000 0! #22521500 1! #22521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22522000 0! #22522500 1! #22522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22523000 0! #22523500 1! #22523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22524000 0! #22524500 1! #22524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22525000 0! #22525500 1! #22525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22526000 0! #22526500 1! #22526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22527000 0! #22527500 1! #22527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22528000 0! #22528500 1! #22528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22529000 0! #22529500 1! #22529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22530000 0! #22530500 1! #22530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22531000 0! #22531500 1! #22531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22532000 0! #22532500 1! #22532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22533000 0! #22533500 1! #22533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22534000 0! #22534500 1! #22534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22535000 0! #22535500 1! #22535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22536000 0! #22536500 1! #22536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22537000 0! #22537500 1! #22537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22538000 0! #22538500 1! #22538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22539000 0! #22539500 1! #22539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22540000 0! #22540500 1! #22540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22541000 0! #22541500 1! #22541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22542000 0! #22542500 1! #22542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22543000 0! #22543500 1! #22543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22544000 0! #22544500 1! #22544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22545000 0! #22545500 1! #22545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22546000 0! #22546500 1! #22546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22547000 0! #22547500 1! #22547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22548000 0! #22548500 1! #22548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22549000 0! #22549500 1! #22549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22550000 0! #22550500 1! #22550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22551000 0! #22551500 1! #22551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22552000 0! #22552500 1! #22552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22553000 0! #22553500 1! #22553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22554000 0! #22554500 1! #22554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22555000 0! #22555500 1! #22555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22556000 0! #22556500 1! #22556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22557000 0! #22557500 1! #22557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22558000 0! #22558500 1! #22558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22559000 0! #22559500 1! #22559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22560000 0! #22560500 1! #22560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22561000 0! #22561500 1! #22561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22562000 0! #22562500 1! #22562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22563000 0! #22563500 1! #22563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22564000 0! #22564500 1! #22564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22565000 0! #22565500 1! #22565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22566000 0! #22566500 1! #22566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22567000 0! #22567500 1! #22567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22568000 0! #22568500 1! #22568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22569000 0! #22569500 1! #22569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22570000 0! #22570500 1! #22570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22571000 0! #22571500 1! #22571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22572000 0! #22572500 1! #22572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22573000 0! #22573500 1! #22573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22574000 0! #22574500 1! #22574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22575000 0! #22575500 1! #22575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22576000 0! #22576500 1! #22576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22577000 0! #22577500 1! #22577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22578000 0! #22578500 1! #22578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22579000 0! #22579500 1! #22579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22580000 0! #22580500 1! #22580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22581000 0! #22581500 1! #22581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22582000 0! #22582500 1! #22582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22583000 0! #22583500 1! #22583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22584000 0! #22584500 1! #22584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22585000 0! #22585500 1! #22585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22586000 0! #22586500 1! #22586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22587000 0! #22587500 1! #22587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22588000 0! #22588500 1! #22588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22589000 0! #22589500 1! #22589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22590000 0! #22590500 1! #22590600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22591000 0! #22591500 1! #22591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22592000 0! #22592500 1! #22592600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22593000 0! #22593500 1! #22593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22594000 0! #22594500 1! #22594600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22595000 0! #22595500 1! #22595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22596000 0! #22596500 1! #22596600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22597000 0! #22597500 1! #22597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22598000 0! #22598500 1! #22598600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22599000 0! #22599500 1! #22599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22600000 0! #22600500 1! #22600600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22601000 0! #22601500 1! #22601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22602000 0! #22602500 1! #22602600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22603000 0! #22603500 1! #22603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22604000 0! #22604500 1! #22604600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22605000 0! #22605500 1! #22605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22606000 0! #22606500 1! #22606600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22607000 0! #22607500 1! #22607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22608000 0! #22608500 1! #22608600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22609000 0! #22609500 1! #22609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22610000 0! #22610500 1! #22610600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22611000 0! #22611500 1! #22611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22612000 0! #22612500 1! #22612600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22613000 0! #22613500 1! #22613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22614000 0! #22614500 1! #22614600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22615000 0! #22615500 1! #22615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22616000 0! #22616500 1! #22616600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22617000 0! #22617500 1! #22617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22618000 0! #22618500 1! #22618600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22619000 0! #22619500 1! #22619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22620000 0! #22620500 1! #22620600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22621000 0! #22621500 1! #22621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22622000 0! #22622500 1! #22622600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22623000 0! #22623500 1! #22623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22624000 0! #22624500 1! #22624600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22625000 0! #22625500 1! #22625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22626000 0! #22626500 1! #22626600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22627000 0! #22627500 1! #22627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22628000 0! #22628500 1! #22628600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22629000 0! #22629500 1! #22629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22630000 0! #22630500 1! #22630600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22631000 0! #22631500 1! #22631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22632000 0! #22632500 1! #22632600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22633000 0! #22633500 1! #22633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22634000 0! #22634500 1! #22634600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22635000 0! #22635500 1! #22635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22636000 0! #22636500 1! #22636600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22637000 0! #22637500 1! #22637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22638000 0! #22638500 1! #22638600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22639000 0! #22639500 1! #22639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22640000 0! #22640500 1! #22640600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22641000 0! #22641500 1! #22641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22642000 0! #22642500 1! #22642600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22643000 0! #22643500 1! #22643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22644000 0! #22644500 1! #22644600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22645000 0! #22645500 1! #22645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22646000 0! #22646500 1! #22646600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22647000 0! #22647500 1! #22647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22648000 0! #22648500 1! #22648600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22649000 0! #22649500 1! #22649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22650000 0! #22650500 1! #22650600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22651000 0! #22651500 1! #22651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22652000 0! #22652500 1! #22652600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22653000 0! #22653500 1! #22653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22654000 0! #22654500 1! #22654600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22655000 0! #22655500 1! #22655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22656000 0! #22656500 1! #22656600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22657000 0! #22657500 1! #22657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22658000 0! #22658500 1! #22658600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22659000 0! #22659500 1! #22659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22660000 0! #22660500 1! #22660600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22661000 0! #22661500 1! #22661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22662000 0! #22662500 1! #22662600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22663000 0! #22663500 1! #22663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22664000 0! #22664500 1! #22664600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22665000 0! #22665500 1! #22665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22666000 0! #22666500 1! #22666600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22667000 0! #22667500 1! #22667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22668000 0! #22668500 1! #22668600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22669000 0! #22669500 1! #22669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22670000 0! #22670500 1! #22670600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22671000 0! #22671500 1! #22671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22672000 0! #22672500 1! #22672600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #22672700 b101 g #22673000 0! #22673500 1! #22673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22674000 0! #22674500 1! #22674600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22675000 0! #22675500 1! #22675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22676000 0! #22676500 1! #22676600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22677000 0! #22677500 1! #22677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22678000 0! #22678500 1! #22678600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22679000 0! #22679500 1! #22679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22680000 0! #22680500 1! #22680600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22681000 0! #22681500 1! #22681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22682000 0! #22682500 1! #22682600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22683000 0! #22683500 1! #22683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22684000 0! #22684500 1! #22684600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22685000 0! #22685500 1! #22685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22686000 0! #22686500 1! #22686600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22687000 0! #22687500 1! #22687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22688000 0! #22688500 1! #22688600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22689000 0! #22689500 1! #22689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22690000 0! #22690500 1! #22690600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22691000 0! #22691500 1! #22691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22692000 0! #22692500 1! #22692600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22693000 0! #22693500 1! #22693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22694000 0! #22694500 1! #22694600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22695000 0! #22695500 1! #22695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22696000 0! #22696500 1! #22696600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22697000 0! #22697500 1! #22697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22698000 0! #22698500 1! #22698600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22699000 0! #22699500 1! #22699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22700000 0! #22700500 1! #22700600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22701000 0! #22701500 1! #22701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22702000 0! #22702500 1! #22702600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22703000 0! #22703500 1! #22703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22704000 0! #22704500 1! #22704600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22705000 0! #22705500 1! #22705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22706000 0! #22706500 1! #22706600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22707000 0! #22707500 1! #22707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22708000 0! #22708500 1! #22708600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22709000 0! #22709500 1! #22709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22710000 0! #22710500 1! #22710600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22711000 0! #22711500 1! #22711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22712000 0! #22712500 1! #22712600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22713000 0! #22713500 1! #22713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22714000 0! #22714500 1! #22714600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22715000 0! #22715500 1! #22715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22716000 0! #22716500 1! #22716600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22717000 0! #22717500 1! #22717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22718000 0! #22718500 1! #22718600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22719000 0! #22719500 1! #22719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22720000 0! #22720500 1! #22720600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22721000 0! #22721500 1! #22721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22722000 0! #22722500 1! #22722600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22723000 0! #22723500 1! #22723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22724000 0! #22724500 1! #22724600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22725000 0! #22725500 1! #22725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22726000 0! #22726500 1! #22726600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22727000 0! #22727500 1! #22727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22728000 0! #22728500 1! #22728600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22729000 0! #22729500 1! #22729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22730000 0! #22730500 1! #22730600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22731000 0! #22731500 1! #22731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22732000 0! #22732500 1! #22732600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22733000 0! #22733500 1! #22733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22734000 0! #22734500 1! #22734600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22735000 0! #22735500 1! #22735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22736000 0! #22736500 1! #22736600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22737000 0! #22737500 1! #22737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22738000 0! #22738500 1! #22738600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22739000 0! #22739500 1! #22739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22740000 0! #22740500 1! #22740600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22741000 0! #22741500 1! #22741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22742000 0! #22742500 1! #22742600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22743000 0! #22743500 1! #22743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22744000 0! #22744500 1! #22744600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22745000 0! #22745500 1! #22745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22746000 0! #22746500 1! #22746600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22747000 0! #22747500 1! #22747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22748000 0! #22748500 1! #22748600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22749000 0! #22749500 1! #22749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22750000 0! #22750500 1! #22750600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22751000 0! #22751500 1! #22751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22752000 0! #22752500 1! #22752600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22753000 0! #22753500 1! #22753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22754000 0! #22754500 1! #22754600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22755000 0! #22755500 1! #22755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22756000 0! #22756500 1! #22756600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22757000 0! #22757500 1! #22757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22758000 0! #22758500 1! #22758600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22759000 0! #22759500 1! #22759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22760000 0! #22760500 1! #22760600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22761000 0! #22761500 1! #22761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22762000 0! #22762500 1! #22762600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22763000 0! #22763500 1! #22763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22764000 0! #22764500 1! #22764600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22765000 0! #22765500 1! #22765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22766000 0! #22766500 1! #22766600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22767000 0! #22767500 1! #22767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22768000 0! #22768500 1! #22768600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22769000 0! #22769500 1! #22769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22770000 0! #22770500 1! #22770600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22771000 0! #22771500 1! #22771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22772000 0! #22772500 1! #22772600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22773000 0! #22773500 1! #22773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22774000 0! #22774500 1! #22774600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #22775000 0! #22775500 1! #22775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22776000 0! #22776500 1! #22776600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22777000 0! #22777500 1! #22777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22778000 0! #22778500 1! #22778600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22779000 0! #22779500 1! #22779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22780000 0! #22780500 1! #22780600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22781000 0! #22781500 1! #22781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22782000 0! #22782500 1! #22782600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22783000 0! #22783500 1! #22783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22784000 0! #22784500 1! #22784600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22785000 0! #22785500 1! #22785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22786000 0! #22786500 1! #22786600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22787000 0! #22787500 1! #22787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22788000 0! #22788500 1! #22788600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22789000 0! #22789500 1! #22789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22790000 0! #22790500 1! #22790600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22791000 0! #22791500 1! #22791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22792000 0! #22792500 1! #22792600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22793000 0! #22793500 1! #22793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22794000 0! #22794500 1! #22794600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22795000 0! #22795500 1! #22795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22796000 0! #22796500 1! #22796600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22797000 0! #22797500 1! #22797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22798000 0! #22798500 1! #22798600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22799000 0! #22799500 1! #22799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22800000 0! #22800500 1! #22800600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22801000 0! #22801500 1! #22801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22802000 0! #22802500 1! #22802600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22803000 0! #22803500 1! #22803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22804000 0! #22804500 1! #22804600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22805000 0! #22805500 1! #22805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22806000 0! #22806500 1! #22806600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22807000 0! #22807500 1! #22807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22808000 0! #22808500 1! #22808600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22809000 0! #22809500 1! #22809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22810000 0! #22810500 1! #22810600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22811000 0! #22811500 1! #22811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22812000 0! #22812500 1! #22812600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22813000 0! #22813500 1! #22813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22814000 0! #22814500 1! #22814600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22815000 0! #22815500 1! #22815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22816000 0! #22816500 1! #22816600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22817000 0! #22817500 1! #22817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22818000 0! #22818500 1! #22818600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22819000 0! #22819500 1! #22819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22820000 0! #22820500 1! #22820600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22821000 0! #22821500 1! #22821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22822000 0! #22822500 1! #22822600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22823000 0! #22823500 1! #22823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22824000 0! #22824500 1! #22824600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22825000 0! #22825500 1! #22825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22826000 0! #22826500 1! #22826600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22827000 0! #22827500 1! #22827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22828000 0! #22828500 1! #22828600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22829000 0! #22829500 1! #22829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22830000 0! #22830500 1! #22830600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22831000 0! #22831500 1! #22831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22832000 0! #22832500 1! #22832600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22833000 0! #22833500 1! #22833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22834000 0! #22834500 1! #22834600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22835000 0! #22835500 1! #22835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22836000 0! #22836500 1! #22836600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22837000 0! #22837500 1! #22837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22838000 0! #22838500 1! #22838600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22839000 0! #22839500 1! #22839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22840000 0! #22840500 1! #22840600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22841000 0! #22841500 1! #22841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22842000 0! #22842500 1! #22842600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22843000 0! #22843500 1! #22843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22844000 0! #22844500 1! #22844600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22845000 0! #22845500 1! #22845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22846000 0! #22846500 1! #22846600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22847000 0! #22847500 1! #22847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22848000 0! #22848500 1! #22848600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22849000 0! #22849500 1! #22849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22850000 0! #22850500 1! #22850600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22851000 0! #22851500 1! #22851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22852000 0! #22852500 1! #22852600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22853000 0! #22853500 1! #22853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22854000 0! #22854500 1! #22854600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22855000 0! #22855500 1! #22855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22856000 0! #22856500 1! #22856600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22857000 0! #22857500 1! #22857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22858000 0! #22858500 1! #22858600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22859000 0! #22859500 1! #22859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22860000 0! #22860500 1! #22860600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22861000 0! #22861500 1! #22861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22862000 0! #22862500 1! #22862600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22863000 0! #22863500 1! #22863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22864000 0! #22864500 1! #22864600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22865000 0! #22865500 1! #22865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22866000 0! #22866500 1! #22866600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22867000 0! #22867500 1! #22867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22868000 0! #22868500 1! #22868600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22869000 0! #22869500 1! #22869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22870000 0! #22870500 1! #22870600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22871000 0! #22871500 1! #22871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22872000 0! #22872500 1! #22872600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22873000 0! #22873500 1! #22873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22874000 0! #22874500 1! #22874600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22875000 0! #22875500 1! #22875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22876000 0! #22876500 1! #22876600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22877000 0! #22877500 1! #22877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22878000 0! #22878500 1! #22878600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22879000 0! #22879500 1! #22879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22880000 0! #22880500 1! #22880600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22881000 0! #22881500 1! #22881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22882000 0! #22882500 1! #22882600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22883000 0! #22883500 1! #22883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22884000 0! #22884500 1! #22884600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22885000 0! #22885500 1! #22885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22886000 0! #22886500 1! #22886600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22887000 0! #22887500 1! #22887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22888000 0! #22888500 1! #22888600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22889000 0! #22889500 1! #22889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22890000 0! #22890500 1! #22890600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22891000 0! #22891500 1! #22891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22892000 0! #22892500 1! #22892600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22893000 0! #22893500 1! #22893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22894000 0! #22894500 1! #22894600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22895000 0! #22895500 1! #22895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22896000 0! #22896500 1! #22896600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22897000 0! #22897500 1! #22897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22898000 0! #22898500 1! #22898600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22899000 0! #22899500 1! #22899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22900000 0! #22900500 1! #22900600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22901000 0! #22901500 1! #22901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22902000 0! #22902500 1! #22902600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22903000 0! #22903500 1! #22903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22904000 0! #22904500 1! #22904600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22905000 0! #22905500 1! #22905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22906000 0! #22906500 1! #22906600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22907000 0! #22907500 1! #22907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22908000 0! #22908500 1! #22908600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22909000 0! #22909500 1! #22909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22910000 0! #22910500 1! #22910600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22911000 0! #22911500 1! #22911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22912000 0! #22912500 1! #22912600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22913000 0! #22913500 1! #22913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22914000 0! #22914500 1! #22914600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22915000 0! #22915500 1! #22915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22916000 0! #22916500 1! #22916600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22917000 0! #22917500 1! #22917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22918000 0! #22918500 1! #22918600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22919000 0! #22919500 1! #22919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22920000 0! #22920500 1! #22920600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22921000 0! #22921500 1! #22921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22922000 0! #22922500 1! #22922600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22923000 0! #22923500 1! #22923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22924000 0! #22924500 1! #22924600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22925000 0! #22925500 1! #22925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22926000 0! #22926500 1! #22926600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22927000 0! #22927500 1! #22927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #22927700 b100 g #22928000 0! #22928500 1! #22928600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22929000 0! #22929500 1! #22929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22930000 0! #22930500 1! #22930600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22931000 0! #22931500 1! #22931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22932000 0! #22932500 1! #22932600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22933000 0! #22933500 1! #22933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22934000 0! #22934500 1! #22934600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22935000 0! #22935500 1! #22935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22936000 0! #22936500 1! #22936600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22937000 0! #22937500 1! #22937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22938000 0! #22938500 1! #22938600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22939000 0! #22939500 1! #22939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22940000 0! #22940500 1! #22940600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22941000 0! #22941500 1! #22941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22942000 0! #22942500 1! #22942600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22943000 0! #22943500 1! #22943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22944000 0! #22944500 1! #22944600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22945000 0! #22945500 1! #22945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22946000 0! #22946500 1! #22946600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22947000 0! #22947500 1! #22947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22948000 0! #22948500 1! #22948600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22949000 0! #22949500 1! #22949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22950000 0! #22950500 1! #22950600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22951000 0! #22951500 1! #22951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22952000 0! #22952500 1! #22952600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22953000 0! #22953500 1! #22953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22954000 0! #22954500 1! #22954600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22955000 0! #22955500 1! #22955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22956000 0! #22956500 1! #22956600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22957000 0! #22957500 1! #22957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22958000 0! #22958500 1! #22958600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22959000 0! #22959500 1! #22959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22960000 0! #22960500 1! #22960600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22961000 0! #22961500 1! #22961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22962000 0! #22962500 1! #22962600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22963000 0! #22963500 1! #22963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22964000 0! #22964500 1! #22964600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22965000 0! #22965500 1! #22965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22966000 0! #22966500 1! #22966600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22967000 0! #22967500 1! #22967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22968000 0! #22968500 1! #22968600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22969000 0! #22969500 1! #22969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22970000 0! #22970500 1! #22970600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22971000 0! #22971500 1! #22971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22972000 0! #22972500 1! #22972600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22973000 0! #22973500 1! #22973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22974000 0! #22974500 1! #22974600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22975000 0! #22975500 1! #22975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22976000 0! #22976500 1! #22976600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22977000 0! #22977500 1! #22977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22978000 0! #22978500 1! #22978600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22979000 0! #22979500 1! #22979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22980000 0! #22980500 1! #22980600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22981000 0! #22981500 1! #22981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22982000 0! #22982500 1! #22982600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22983000 0! #22983500 1! #22983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22984000 0! #22984500 1! #22984600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22985000 0! #22985500 1! #22985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22986000 0! #22986500 1! #22986600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22987000 0! #22987500 1! #22987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22988000 0! #22988500 1! #22988600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22989000 0! #22989500 1! #22989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22990000 0! #22990500 1! #22990600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22991000 0! #22991500 1! #22991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22992000 0! #22992500 1! #22992600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22993000 0! #22993500 1! #22993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22994000 0! #22994500 1! #22994600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22995000 0! #22995500 1! #22995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22996000 0! #22996500 1! #22996600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22997000 0! #22997500 1! #22997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #22998000 0! #22998500 1! #22998600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #22999000 0! #22999500 1! #22999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23000000 0! #23000500 1! #23000600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23001000 0! #23001500 1! #23001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23002000 0! #23002500 1! #23002600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23003000 0! #23003500 1! #23003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23004000 0! #23004500 1! #23004600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23005000 0! #23005500 1! #23005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23006000 0! #23006500 1! #23006600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23007000 0! #23007500 1! #23007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23008000 0! #23008500 1! #23008600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23009000 0! #23009500 1! #23009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23010000 0! #23010500 1! #23010600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23011000 0! #23011500 1! #23011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23012000 0! #23012500 1! #23012600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23013000 0! #23013500 1! #23013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23014000 0! #23014500 1! #23014600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23015000 0! #23015500 1! #23015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23016000 0! #23016500 1! #23016600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23017000 0! #23017500 1! #23017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23018000 0! #23018500 1! #23018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23019000 0! #23019500 1! #23019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23020000 0! #23020500 1! #23020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23021000 0! #23021500 1! #23021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23022000 0! #23022500 1! #23022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23023000 0! #23023500 1! #23023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23024000 0! #23024500 1! #23024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23025000 0! #23025500 1! #23025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23026000 0! #23026500 1! #23026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23027000 0! #23027500 1! #23027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23028000 0! #23028500 1! #23028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23029000 0! #23029500 1! #23029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #23030000 0! #23030500 1! #23030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23031000 0! #23031500 1! #23031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23032000 0! #23032500 1! #23032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23033000 0! #23033500 1! #23033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23034000 0! #23034500 1! #23034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23035000 0! #23035500 1! #23035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23036000 0! #23036500 1! #23036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23037000 0! #23037500 1! #23037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23038000 0! #23038500 1! #23038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23039000 0! #23039500 1! #23039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23040000 0! #23040500 1! #23040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23041000 0! #23041500 1! #23041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23042000 0! #23042500 1! #23042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23043000 0! #23043500 1! #23043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23044000 0! #23044500 1! #23044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23045000 0! #23045500 1! #23045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23046000 0! #23046500 1! #23046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23047000 0! #23047500 1! #23047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23048000 0! #23048500 1! #23048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23049000 0! #23049500 1! #23049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23050000 0! #23050500 1! #23050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23051000 0! #23051500 1! #23051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23052000 0! #23052500 1! #23052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23053000 0! #23053500 1! #23053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23054000 0! #23054500 1! #23054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23055000 0! #23055500 1! #23055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23056000 0! #23056500 1! #23056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23057000 0! #23057500 1! #23057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23058000 0! #23058500 1! #23058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23059000 0! #23059500 1! #23059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23060000 0! #23060500 1! #23060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23061000 0! #23061500 1! #23061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23062000 0! #23062500 1! #23062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23063000 0! #23063500 1! #23063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23064000 0! #23064500 1! #23064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23065000 0! #23065500 1! #23065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23066000 0! #23066500 1! #23066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23067000 0! #23067500 1! #23067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23068000 0! #23068500 1! #23068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23069000 0! #23069500 1! #23069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23070000 0! #23070500 1! #23070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23071000 0! #23071500 1! #23071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23072000 0! #23072500 1! #23072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23073000 0! #23073500 1! #23073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23074000 0! #23074500 1! #23074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23075000 0! #23075500 1! #23075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23076000 0! #23076500 1! #23076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23077000 0! #23077500 1! #23077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23078000 0! #23078500 1! #23078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23079000 0! #23079500 1! #23079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23080000 0! #23080500 1! #23080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23081000 0! #23081500 1! #23081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23082000 0! #23082500 1! #23082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23083000 0! #23083500 1! #23083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23084000 0! #23084500 1! #23084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23085000 0! #23085500 1! #23085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23086000 0! #23086500 1! #23086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23087000 0! #23087500 1! #23087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23088000 0! #23088500 1! #23088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23089000 0! #23089500 1! #23089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23090000 0! #23090500 1! #23090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23091000 0! #23091500 1! #23091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23092000 0! #23092500 1! #23092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23093000 0! #23093500 1! #23093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23094000 0! #23094500 1! #23094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23095000 0! #23095500 1! #23095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23096000 0! #23096500 1! #23096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23097000 0! #23097500 1! #23097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23098000 0! #23098500 1! #23098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23099000 0! #23099500 1! #23099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23100000 0! #23100500 1! #23100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23101000 0! #23101500 1! #23101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23102000 0! #23102500 1! #23102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23103000 0! #23103500 1! #23103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23104000 0! #23104500 1! #23104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23105000 0! #23105500 1! #23105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23106000 0! #23106500 1! #23106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23107000 0! #23107500 1! #23107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23108000 0! #23108500 1! #23108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23109000 0! #23109500 1! #23109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23110000 0! #23110500 1! #23110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23111000 0! #23111500 1! #23111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23112000 0! #23112500 1! #23112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23113000 0! #23113500 1! #23113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23114000 0! #23114500 1! #23114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23115000 0! #23115500 1! #23115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23116000 0! #23116500 1! #23116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23117000 0! #23117500 1! #23117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23118000 0! #23118500 1! #23118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23119000 0! #23119500 1! #23119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23120000 0! #23120500 1! #23120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23121000 0! #23121500 1! #23121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23122000 0! #23122500 1! #23122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23123000 0! #23123500 1! #23123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23124000 0! #23124500 1! #23124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23125000 0! #23125500 1! #23125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23126000 0! #23126500 1! #23126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23127000 0! #23127500 1! #23127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23128000 0! #23128500 1! #23128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23129000 0! #23129500 1! #23129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23130000 0! #23130500 1! #23130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23131000 0! #23131500 1! #23131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23132000 0! #23132500 1! #23132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23133000 0! #23133500 1! #23133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23134000 0! #23134500 1! #23134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23135000 0! #23135500 1! #23135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23136000 0! #23136500 1! #23136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23137000 0! #23137500 1! #23137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23138000 0! #23138500 1! #23138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23139000 0! #23139500 1! #23139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23140000 0! #23140500 1! #23140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23141000 0! #23141500 1! #23141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23142000 0! #23142500 1! #23142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23143000 0! #23143500 1! #23143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23144000 0! #23144500 1! #23144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23145000 0! #23145500 1! #23145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23146000 0! #23146500 1! #23146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23147000 0! #23147500 1! #23147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23148000 0! #23148500 1! #23148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23149000 0! #23149500 1! #23149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23150000 0! #23150500 1! #23150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23151000 0! #23151500 1! #23151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23152000 0! #23152500 1! #23152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23153000 0! #23153500 1! #23153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23154000 0! #23154500 1! #23154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23155000 0! #23155500 1! #23155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23156000 0! #23156500 1! #23156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23157000 0! #23157500 1! #23157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23158000 0! #23158500 1! #23158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23159000 0! #23159500 1! #23159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23160000 0! #23160500 1! #23160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23161000 0! #23161500 1! #23161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23162000 0! #23162500 1! #23162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23163000 0! #23163500 1! #23163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23164000 0! #23164500 1! #23164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23165000 0! #23165500 1! #23165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23166000 0! #23166500 1! #23166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23167000 0! #23167500 1! #23167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23168000 0! #23168500 1! #23168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23169000 0! #23169500 1! #23169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23170000 0! #23170500 1! #23170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23171000 0! #23171500 1! #23171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23172000 0! #23172500 1! #23172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23173000 0! #23173500 1! #23173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23174000 0! #23174500 1! #23174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23175000 0! #23175500 1! #23175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23176000 0! #23176500 1! #23176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23177000 0! #23177500 1! #23177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23178000 0! #23178500 1! #23178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23179000 0! #23179500 1! #23179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23180000 0! #23180500 1! #23180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23181000 0! #23181500 1! #23181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23182000 0! #23182500 1! #23182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #23182700 b11 g #23183000 0! #23183500 1! #23183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23184000 0! #23184500 1! #23184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23185000 0! #23185500 1! #23185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23186000 0! #23186500 1! #23186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23187000 0! #23187500 1! #23187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23188000 0! #23188500 1! #23188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23189000 0! #23189500 1! #23189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23190000 0! #23190500 1! #23190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23191000 0! #23191500 1! #23191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23192000 0! #23192500 1! #23192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23193000 0! #23193500 1! #23193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23194000 0! #23194500 1! #23194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23195000 0! #23195500 1! #23195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23196000 0! #23196500 1! #23196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23197000 0! #23197500 1! #23197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23198000 0! #23198500 1! #23198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23199000 0! #23199500 1! #23199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23200000 0! #23200500 1! #23200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23201000 0! #23201500 1! #23201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23202000 0! #23202500 1! #23202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23203000 0! #23203500 1! #23203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23204000 0! #23204500 1! #23204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23205000 0! #23205500 1! #23205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23206000 0! #23206500 1! #23206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23207000 0! #23207500 1! #23207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23208000 0! #23208500 1! #23208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23209000 0! #23209500 1! #23209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23210000 0! #23210500 1! #23210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23211000 0! #23211500 1! #23211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23212000 0! #23212500 1! #23212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23213000 0! #23213500 1! #23213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23214000 0! #23214500 1! #23214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23215000 0! #23215500 1! #23215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23216000 0! #23216500 1! #23216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23217000 0! #23217500 1! #23217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23218000 0! #23218500 1! #23218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23219000 0! #23219500 1! #23219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23220000 0! #23220500 1! #23220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23221000 0! #23221500 1! #23221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23222000 0! #23222500 1! #23222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23223000 0! #23223500 1! #23223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23224000 0! #23224500 1! #23224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23225000 0! #23225500 1! #23225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23226000 0! #23226500 1! #23226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23227000 0! #23227500 1! #23227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23228000 0! #23228500 1! #23228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23229000 0! #23229500 1! #23229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23230000 0! #23230500 1! #23230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23231000 0! #23231500 1! #23231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23232000 0! #23232500 1! #23232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23233000 0! #23233500 1! #23233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23234000 0! #23234500 1! #23234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23235000 0! #23235500 1! #23235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23236000 0! #23236500 1! #23236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23237000 0! #23237500 1! #23237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23238000 0! #23238500 1! #23238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23239000 0! #23239500 1! #23239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23240000 0! #23240500 1! #23240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23241000 0! #23241500 1! #23241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23242000 0! #23242500 1! #23242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23243000 0! #23243500 1! #23243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23244000 0! #23244500 1! #23244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23245000 0! #23245500 1! #23245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23246000 0! #23246500 1! #23246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23247000 0! #23247500 1! #23247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23248000 0! #23248500 1! #23248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23249000 0! #23249500 1! #23249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23250000 0! #23250500 1! #23250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23251000 0! #23251500 1! #23251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23252000 0! #23252500 1! #23252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23253000 0! #23253500 1! #23253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23254000 0! #23254500 1! #23254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23255000 0! #23255500 1! #23255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23256000 0! #23256500 1! #23256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23257000 0! #23257500 1! #23257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23258000 0! #23258500 1! #23258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23259000 0! #23259500 1! #23259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23260000 0! #23260500 1! #23260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23261000 0! #23261500 1! #23261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23262000 0! #23262500 1! #23262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23263000 0! #23263500 1! #23263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23264000 0! #23264500 1! #23264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23265000 0! #23265500 1! #23265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23266000 0! #23266500 1! #23266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23267000 0! #23267500 1! #23267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23268000 0! #23268500 1! #23268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23269000 0! #23269500 1! #23269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23270000 0! #23270500 1! #23270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23271000 0! #23271500 1! #23271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23272000 0! #23272500 1! #23272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23273000 0! #23273500 1! #23273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23274000 0! #23274500 1! #23274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23275000 0! #23275500 1! #23275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23276000 0! #23276500 1! #23276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23277000 0! #23277500 1! #23277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23278000 0! #23278500 1! #23278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23279000 0! #23279500 1! #23279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23280000 0! #23280500 1! #23280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23281000 0! #23281500 1! #23281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23282000 0! #23282500 1! #23282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23283000 0! #23283500 1! #23283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23284000 0! #23284500 1! #23284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #23285000 0! #23285500 1! #23285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23286000 0! #23286500 1! #23286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23287000 0! #23287500 1! #23287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23288000 0! #23288500 1! #23288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23289000 0! #23289500 1! #23289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23290000 0! #23290500 1! #23290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23291000 0! #23291500 1! #23291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23292000 0! #23292500 1! #23292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23293000 0! #23293500 1! #23293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23294000 0! #23294500 1! #23294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23295000 0! #23295500 1! #23295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23296000 0! #23296500 1! #23296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23297000 0! #23297500 1! #23297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23298000 0! #23298500 1! #23298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23299000 0! #23299500 1! #23299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23300000 0! #23300500 1! #23300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23301000 0! #23301500 1! #23301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23302000 0! #23302500 1! #23302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23303000 0! #23303500 1! #23303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23304000 0! #23304500 1! #23304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23305000 0! #23305500 1! #23305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23306000 0! #23306500 1! #23306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23307000 0! #23307500 1! #23307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23308000 0! #23308500 1! #23308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23309000 0! #23309500 1! #23309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23310000 0! #23310500 1! #23310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23311000 0! #23311500 1! #23311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23312000 0! #23312500 1! #23312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23313000 0! #23313500 1! #23313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23314000 0! #23314500 1! #23314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23315000 0! #23315500 1! #23315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23316000 0! #23316500 1! #23316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23317000 0! #23317500 1! #23317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23318000 0! #23318500 1! #23318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23319000 0! #23319500 1! #23319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23320000 0! #23320500 1! #23320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23321000 0! #23321500 1! #23321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23322000 0! #23322500 1! #23322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23323000 0! #23323500 1! #23323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23324000 0! #23324500 1! #23324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23325000 0! #23325500 1! #23325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23326000 0! #23326500 1! #23326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23327000 0! #23327500 1! #23327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23328000 0! #23328500 1! #23328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23329000 0! #23329500 1! #23329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23330000 0! #23330500 1! #23330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23331000 0! #23331500 1! #23331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23332000 0! #23332500 1! #23332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23333000 0! #23333500 1! #23333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23334000 0! #23334500 1! #23334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23335000 0! #23335500 1! #23335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23336000 0! #23336500 1! #23336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23337000 0! #23337500 1! #23337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23338000 0! #23338500 1! #23338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23339000 0! #23339500 1! #23339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23340000 0! #23340500 1! #23340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23341000 0! #23341500 1! #23341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23342000 0! #23342500 1! #23342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23343000 0! #23343500 1! #23343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23344000 0! #23344500 1! #23344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23345000 0! #23345500 1! #23345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23346000 0! #23346500 1! #23346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23347000 0! #23347500 1! #23347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23348000 0! #23348500 1! #23348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23349000 0! #23349500 1! #23349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23350000 0! #23350500 1! #23350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23351000 0! #23351500 1! #23351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23352000 0! #23352500 1! #23352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23353000 0! #23353500 1! #23353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23354000 0! #23354500 1! #23354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23355000 0! #23355500 1! #23355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23356000 0! #23356500 1! #23356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23357000 0! #23357500 1! #23357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23358000 0! #23358500 1! #23358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23359000 0! #23359500 1! #23359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23360000 0! #23360500 1! #23360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23361000 0! #23361500 1! #23361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23362000 0! #23362500 1! #23362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23363000 0! #23363500 1! #23363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23364000 0! #23364500 1! #23364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23365000 0! #23365500 1! #23365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23366000 0! #23366500 1! #23366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23367000 0! #23367500 1! #23367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23368000 0! #23368500 1! #23368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23369000 0! #23369500 1! #23369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23370000 0! #23370500 1! #23370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23371000 0! #23371500 1! #23371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23372000 0! #23372500 1! #23372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23373000 0! #23373500 1! #23373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23374000 0! #23374500 1! #23374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23375000 0! #23375500 1! #23375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23376000 0! #23376500 1! #23376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23377000 0! #23377500 1! #23377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23378000 0! #23378500 1! #23378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23379000 0! #23379500 1! #23379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23380000 0! #23380500 1! #23380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23381000 0! #23381500 1! #23381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23382000 0! #23382500 1! #23382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23383000 0! #23383500 1! #23383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23384000 0! #23384500 1! #23384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23385000 0! #23385500 1! #23385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23386000 0! #23386500 1! #23386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23387000 0! #23387500 1! #23387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23388000 0! #23388500 1! #23388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23389000 0! #23389500 1! #23389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23390000 0! #23390500 1! #23390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23391000 0! #23391500 1! #23391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23392000 0! #23392500 1! #23392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23393000 0! #23393500 1! #23393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23394000 0! #23394500 1! #23394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23395000 0! #23395500 1! #23395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23396000 0! #23396500 1! #23396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23397000 0! #23397500 1! #23397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23398000 0! #23398500 1! #23398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23399000 0! #23399500 1! #23399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23400000 0! #23400500 1! #23400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23401000 0! #23401500 1! #23401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23402000 0! #23402500 1! #23402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23403000 0! #23403500 1! #23403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23404000 0! #23404500 1! #23404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23405000 0! #23405500 1! #23405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23406000 0! #23406500 1! #23406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23407000 0! #23407500 1! #23407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23408000 0! #23408500 1! #23408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23409000 0! #23409500 1! #23409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23410000 0! #23410500 1! #23410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23411000 0! #23411500 1! #23411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23412000 0! #23412500 1! #23412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23413000 0! #23413500 1! #23413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23414000 0! #23414500 1! #23414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23415000 0! #23415500 1! #23415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23416000 0! #23416500 1! #23416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23417000 0! #23417500 1! #23417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23418000 0! #23418500 1! #23418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23419000 0! #23419500 1! #23419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23420000 0! #23420500 1! #23420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23421000 0! #23421500 1! #23421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23422000 0! #23422500 1! #23422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23423000 0! #23423500 1! #23423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23424000 0! #23424500 1! #23424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23425000 0! #23425500 1! #23425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23426000 0! #23426500 1! #23426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23427000 0! #23427500 1! #23427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23428000 0! #23428500 1! #23428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23429000 0! #23429500 1! #23429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23430000 0! #23430500 1! #23430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23431000 0! #23431500 1! #23431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23432000 0! #23432500 1! #23432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23433000 0! #23433500 1! #23433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23434000 0! #23434500 1! #23434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23435000 0! #23435500 1! #23435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23436000 0! #23436500 1! #23436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23437000 0! #23437500 1! #23437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #23437700 b10 g #23438000 0! #23438500 1! #23438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23439000 0! #23439500 1! #23439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23440000 0! #23440500 1! #23440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23441000 0! #23441500 1! #23441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23442000 0! #23442500 1! #23442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23443000 0! #23443500 1! #23443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23444000 0! #23444500 1! #23444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23445000 0! #23445500 1! #23445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23446000 0! #23446500 1! #23446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23447000 0! #23447500 1! #23447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23448000 0! #23448500 1! #23448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23449000 0! #23449500 1! #23449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23450000 0! #23450500 1! #23450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23451000 0! #23451500 1! #23451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23452000 0! #23452500 1! #23452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23453000 0! #23453500 1! #23453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23454000 0! #23454500 1! #23454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23455000 0! #23455500 1! #23455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23456000 0! #23456500 1! #23456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23457000 0! #23457500 1! #23457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23458000 0! #23458500 1! #23458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23459000 0! #23459500 1! #23459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23460000 0! #23460500 1! #23460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23461000 0! #23461500 1! #23461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23462000 0! #23462500 1! #23462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23463000 0! #23463500 1! #23463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23464000 0! #23464500 1! #23464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23465000 0! #23465500 1! #23465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23466000 0! #23466500 1! #23466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23467000 0! #23467500 1! #23467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23468000 0! #23468500 1! #23468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23469000 0! #23469500 1! #23469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23470000 0! #23470500 1! #23470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23471000 0! #23471500 1! #23471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23472000 0! #23472500 1! #23472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23473000 0! #23473500 1! #23473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23474000 0! #23474500 1! #23474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23475000 0! #23475500 1! #23475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23476000 0! #23476500 1! #23476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23477000 0! #23477500 1! #23477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23478000 0! #23478500 1! #23478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23479000 0! #23479500 1! #23479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23480000 0! #23480500 1! #23480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23481000 0! #23481500 1! #23481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23482000 0! #23482500 1! #23482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23483000 0! #23483500 1! #23483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23484000 0! #23484500 1! #23484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23485000 0! #23485500 1! #23485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23486000 0! #23486500 1! #23486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23487000 0! #23487500 1! #23487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23488000 0! #23488500 1! #23488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23489000 0! #23489500 1! #23489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23490000 0! #23490500 1! #23490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23491000 0! #23491500 1! #23491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23492000 0! #23492500 1! #23492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23493000 0! #23493500 1! #23493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23494000 0! #23494500 1! #23494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23495000 0! #23495500 1! #23495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23496000 0! #23496500 1! #23496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23497000 0! #23497500 1! #23497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23498000 0! #23498500 1! #23498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23499000 0! #23499500 1! #23499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23500000 0! #23500500 1! #23500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23501000 0! #23501500 1! #23501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23502000 0! #23502500 1! #23502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23503000 0! #23503500 1! #23503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23504000 0! #23504500 1! #23504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23505000 0! #23505500 1! #23505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23506000 0! #23506500 1! #23506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23507000 0! #23507500 1! #23507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23508000 0! #23508500 1! #23508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23509000 0! #23509500 1! #23509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23510000 0! #23510500 1! #23510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23511000 0! #23511500 1! #23511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23512000 0! #23512500 1! #23512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23513000 0! #23513500 1! #23513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23514000 0! #23514500 1! #23514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23515000 0! #23515500 1! #23515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23516000 0! #23516500 1! #23516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23517000 0! #23517500 1! #23517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23518000 0! #23518500 1! #23518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23519000 0! #23519500 1! #23519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23520000 0! #23520500 1! #23520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23521000 0! #23521500 1! #23521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23522000 0! #23522500 1! #23522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23523000 0! #23523500 1! #23523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23524000 0! #23524500 1! #23524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23525000 0! #23525500 1! #23525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23526000 0! #23526500 1! #23526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23527000 0! #23527500 1! #23527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23528000 0! #23528500 1! #23528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23529000 0! #23529500 1! #23529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23530000 0! #23530500 1! #23530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23531000 0! #23531500 1! #23531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23532000 0! #23532500 1! #23532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23533000 0! #23533500 1! #23533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23534000 0! #23534500 1! #23534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23535000 0! #23535500 1! #23535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23536000 0! #23536500 1! #23536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23537000 0! #23537500 1! #23537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23538000 0! #23538500 1! #23538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23539000 0! #23539500 1! #23539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #23540000 0! #23540500 1! #23540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23541000 0! #23541500 1! #23541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23542000 0! #23542500 1! #23542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23543000 0! #23543500 1! #23543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23544000 0! #23544500 1! #23544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23545000 0! #23545500 1! #23545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23546000 0! #23546500 1! #23546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23547000 0! #23547500 1! #23547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23548000 0! #23548500 1! #23548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23549000 0! #23549500 1! #23549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23550000 0! #23550500 1! #23550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23551000 0! #23551500 1! #23551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23552000 0! #23552500 1! #23552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23553000 0! #23553500 1! #23553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23554000 0! #23554500 1! #23554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23555000 0! #23555500 1! #23555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23556000 0! #23556500 1! #23556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23557000 0! #23557500 1! #23557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23558000 0! #23558500 1! #23558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23559000 0! #23559500 1! #23559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23560000 0! #23560500 1! #23560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23561000 0! #23561500 1! #23561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23562000 0! #23562500 1! #23562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23563000 0! #23563500 1! #23563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23564000 0! #23564500 1! #23564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23565000 0! #23565500 1! #23565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23566000 0! #23566500 1! #23566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23567000 0! #23567500 1! #23567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23568000 0! #23568500 1! #23568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23569000 0! #23569500 1! #23569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23570000 0! #23570500 1! #23570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23571000 0! #23571500 1! #23571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23572000 0! #23572500 1! #23572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23573000 0! #23573500 1! #23573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23574000 0! #23574500 1! #23574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23575000 0! #23575500 1! #23575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23576000 0! #23576500 1! #23576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23577000 0! #23577500 1! #23577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23578000 0! #23578500 1! #23578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23579000 0! #23579500 1! #23579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23580000 0! #23580500 1! #23580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23581000 0! #23581500 1! #23581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23582000 0! #23582500 1! #23582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23583000 0! #23583500 1! #23583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23584000 0! #23584500 1! #23584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23585000 0! #23585500 1! #23585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23586000 0! #23586500 1! #23586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23587000 0! #23587500 1! #23587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23588000 0! #23588500 1! #23588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23589000 0! #23589500 1! #23589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23590000 0! #23590500 1! #23590600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23591000 0! #23591500 1! #23591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23592000 0! #23592500 1! #23592600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23593000 0! #23593500 1! #23593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23594000 0! #23594500 1! #23594600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23595000 0! #23595500 1! #23595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23596000 0! #23596500 1! #23596600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23597000 0! #23597500 1! #23597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23598000 0! #23598500 1! #23598600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23599000 0! #23599500 1! #23599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23600000 0! #23600500 1! #23600600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23601000 0! #23601500 1! #23601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23602000 0! #23602500 1! #23602600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23603000 0! #23603500 1! #23603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23604000 0! #23604500 1! #23604600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23605000 0! #23605500 1! #23605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23606000 0! #23606500 1! #23606600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23607000 0! #23607500 1! #23607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23608000 0! #23608500 1! #23608600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23609000 0! #23609500 1! #23609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23610000 0! #23610500 1! #23610600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23611000 0! #23611500 1! #23611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23612000 0! #23612500 1! #23612600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23613000 0! #23613500 1! #23613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23614000 0! #23614500 1! #23614600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23615000 0! #23615500 1! #23615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23616000 0! #23616500 1! #23616600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23617000 0! #23617500 1! #23617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23618000 0! #23618500 1! #23618600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23619000 0! #23619500 1! #23619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23620000 0! #23620500 1! #23620600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23621000 0! #23621500 1! #23621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23622000 0! #23622500 1! #23622600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23623000 0! #23623500 1! #23623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23624000 0! #23624500 1! #23624600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23625000 0! #23625500 1! #23625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23626000 0! #23626500 1! #23626600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23627000 0! #23627500 1! #23627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23628000 0! #23628500 1! #23628600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23629000 0! #23629500 1! #23629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23630000 0! #23630500 1! #23630600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23631000 0! #23631500 1! #23631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23632000 0! #23632500 1! #23632600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23633000 0! #23633500 1! #23633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23634000 0! #23634500 1! #23634600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23635000 0! #23635500 1! #23635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23636000 0! #23636500 1! #23636600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23637000 0! #23637500 1! #23637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23638000 0! #23638500 1! #23638600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23639000 0! #23639500 1! #23639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23640000 0! #23640500 1! #23640600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23641000 0! #23641500 1! #23641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23642000 0! #23642500 1! #23642600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23643000 0! #23643500 1! #23643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23644000 0! #23644500 1! #23644600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23645000 0! #23645500 1! #23645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23646000 0! #23646500 1! #23646600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23647000 0! #23647500 1! #23647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23648000 0! #23648500 1! #23648600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23649000 0! #23649500 1! #23649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23650000 0! #23650500 1! #23650600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23651000 0! #23651500 1! #23651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23652000 0! #23652500 1! #23652600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23653000 0! #23653500 1! #23653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23654000 0! #23654500 1! #23654600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23655000 0! #23655500 1! #23655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23656000 0! #23656500 1! #23656600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23657000 0! #23657500 1! #23657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23658000 0! #23658500 1! #23658600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23659000 0! #23659500 1! #23659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23660000 0! #23660500 1! #23660600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23661000 0! #23661500 1! #23661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23662000 0! #23662500 1! #23662600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23663000 0! #23663500 1! #23663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23664000 0! #23664500 1! #23664600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23665000 0! #23665500 1! #23665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23666000 0! #23666500 1! #23666600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23667000 0! #23667500 1! #23667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23668000 0! #23668500 1! #23668600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23669000 0! #23669500 1! #23669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23670000 0! #23670500 1! #23670600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23671000 0! #23671500 1! #23671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23672000 0! #23672500 1! #23672600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23673000 0! #23673500 1! #23673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23674000 0! #23674500 1! #23674600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23675000 0! #23675500 1! #23675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23676000 0! #23676500 1! #23676600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23677000 0! #23677500 1! #23677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23678000 0! #23678500 1! #23678600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23679000 0! #23679500 1! #23679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23680000 0! #23680500 1! #23680600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23681000 0! #23681500 1! #23681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23682000 0! #23682500 1! #23682600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23683000 0! #23683500 1! #23683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23684000 0! #23684500 1! #23684600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23685000 0! #23685500 1! #23685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23686000 0! #23686500 1! #23686600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23687000 0! #23687500 1! #23687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23688000 0! #23688500 1! #23688600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23689000 0! #23689500 1! #23689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23690000 0! #23690500 1! #23690600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23691000 0! #23691500 1! #23691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23692000 0! #23692500 1! #23692600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #23692700 b1 g #23693000 0! #23693500 1! #23693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23694000 0! #23694500 1! #23694600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23695000 0! #23695500 1! #23695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23696000 0! #23696500 1! #23696600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23697000 0! #23697500 1! #23697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23698000 0! #23698500 1! #23698600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23699000 0! #23699500 1! #23699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23700000 0! #23700500 1! #23700600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23701000 0! #23701500 1! #23701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23702000 0! #23702500 1! #23702600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23703000 0! #23703500 1! #23703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23704000 0! #23704500 1! #23704600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23705000 0! #23705500 1! #23705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23706000 0! #23706500 1! #23706600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23707000 0! #23707500 1! #23707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23708000 0! #23708500 1! #23708600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23709000 0! #23709500 1! #23709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23710000 0! #23710500 1! #23710600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23711000 0! #23711500 1! #23711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23712000 0! #23712500 1! #23712600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23713000 0! #23713500 1! #23713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23714000 0! #23714500 1! #23714600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23715000 0! #23715500 1! #23715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23716000 0! #23716500 1! #23716600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23717000 0! #23717500 1! #23717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23718000 0! #23718500 1! #23718600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23719000 0! #23719500 1! #23719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23720000 0! #23720500 1! #23720600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23721000 0! #23721500 1! #23721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23722000 0! #23722500 1! #23722600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23723000 0! #23723500 1! #23723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23724000 0! #23724500 1! #23724600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23725000 0! #23725500 1! #23725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23726000 0! #23726500 1! #23726600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23727000 0! #23727500 1! #23727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23728000 0! #23728500 1! #23728600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23729000 0! #23729500 1! #23729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23730000 0! #23730500 1! #23730600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23731000 0! #23731500 1! #23731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23732000 0! #23732500 1! #23732600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23733000 0! #23733500 1! #23733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23734000 0! #23734500 1! #23734600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23735000 0! #23735500 1! #23735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23736000 0! #23736500 1! #23736600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23737000 0! #23737500 1! #23737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23738000 0! #23738500 1! #23738600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23739000 0! #23739500 1! #23739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23740000 0! #23740500 1! #23740600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23741000 0! #23741500 1! #23741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23742000 0! #23742500 1! #23742600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23743000 0! #23743500 1! #23743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23744000 0! #23744500 1! #23744600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23745000 0! #23745500 1! #23745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23746000 0! #23746500 1! #23746600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23747000 0! #23747500 1! #23747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23748000 0! #23748500 1! #23748600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23749000 0! #23749500 1! #23749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23750000 0! #23750500 1! #23750600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23751000 0! #23751500 1! #23751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23752000 0! #23752500 1! #23752600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23753000 0! #23753500 1! #23753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23754000 0! #23754500 1! #23754600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23755000 0! #23755500 1! #23755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23756000 0! #23756500 1! #23756600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23757000 0! #23757500 1! #23757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23758000 0! #23758500 1! #23758600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23759000 0! #23759500 1! #23759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23760000 0! #23760500 1! #23760600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23761000 0! #23761500 1! #23761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23762000 0! #23762500 1! #23762600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23763000 0! #23763500 1! #23763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23764000 0! #23764500 1! #23764600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23765000 0! #23765500 1! #23765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23766000 0! #23766500 1! #23766600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23767000 0! #23767500 1! #23767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23768000 0! #23768500 1! #23768600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23769000 0! #23769500 1! #23769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23770000 0! #23770500 1! #23770600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23771000 0! #23771500 1! #23771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23772000 0! #23772500 1! #23772600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23773000 0! #23773500 1! #23773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23774000 0! #23774500 1! #23774600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23775000 0! #23775500 1! #23775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23776000 0! #23776500 1! #23776600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23777000 0! #23777500 1! #23777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23778000 0! #23778500 1! #23778600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23779000 0! #23779500 1! #23779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23780000 0! #23780500 1! #23780600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23781000 0! #23781500 1! #23781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23782000 0! #23782500 1! #23782600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23783000 0! #23783500 1! #23783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23784000 0! #23784500 1! #23784600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23785000 0! #23785500 1! #23785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23786000 0! #23786500 1! #23786600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23787000 0! #23787500 1! #23787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23788000 0! #23788500 1! #23788600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23789000 0! #23789500 1! #23789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23790000 0! #23790500 1! #23790600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23791000 0! #23791500 1! #23791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23792000 0! #23792500 1! #23792600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23793000 0! #23793500 1! #23793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23794000 0! #23794500 1! #23794600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #23795000 0! #23795500 1! #23795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23796000 0! #23796500 1! #23796600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23797000 0! #23797500 1! #23797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23798000 0! #23798500 1! #23798600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23799000 0! #23799500 1! #23799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23800000 0! #23800500 1! #23800600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23801000 0! #23801500 1! #23801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23802000 0! #23802500 1! #23802600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23803000 0! #23803500 1! #23803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23804000 0! #23804500 1! #23804600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23805000 0! #23805500 1! #23805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23806000 0! #23806500 1! #23806600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23807000 0! #23807500 1! #23807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23808000 0! #23808500 1! #23808600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23809000 0! #23809500 1! #23809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23810000 0! #23810500 1! #23810600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23811000 0! #23811500 1! #23811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23812000 0! #23812500 1! #23812600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23813000 0! #23813500 1! #23813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23814000 0! #23814500 1! #23814600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23815000 0! #23815500 1! #23815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23816000 0! #23816500 1! #23816600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23817000 0! #23817500 1! #23817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23818000 0! #23818500 1! #23818600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23819000 0! #23819500 1! #23819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23820000 0! #23820500 1! #23820600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23821000 0! #23821500 1! #23821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23822000 0! #23822500 1! #23822600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23823000 0! #23823500 1! #23823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23824000 0! #23824500 1! #23824600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23825000 0! #23825500 1! #23825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23826000 0! #23826500 1! #23826600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23827000 0! #23827500 1! #23827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23828000 0! #23828500 1! #23828600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23829000 0! #23829500 1! #23829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23830000 0! #23830500 1! #23830600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23831000 0! #23831500 1! #23831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23832000 0! #23832500 1! #23832600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23833000 0! #23833500 1! #23833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23834000 0! #23834500 1! #23834600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23835000 0! #23835500 1! #23835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23836000 0! #23836500 1! #23836600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23837000 0! #23837500 1! #23837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23838000 0! #23838500 1! #23838600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23839000 0! #23839500 1! #23839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23840000 0! #23840500 1! #23840600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23841000 0! #23841500 1! #23841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23842000 0! #23842500 1! #23842600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23843000 0! #23843500 1! #23843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23844000 0! #23844500 1! #23844600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23845000 0! #23845500 1! #23845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23846000 0! #23846500 1! #23846600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23847000 0! #23847500 1! #23847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23848000 0! #23848500 1! #23848600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23849000 0! #23849500 1! #23849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23850000 0! #23850500 1! #23850600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23851000 0! #23851500 1! #23851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23852000 0! #23852500 1! #23852600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23853000 0! #23853500 1! #23853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23854000 0! #23854500 1! #23854600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23855000 0! #23855500 1! #23855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23856000 0! #23856500 1! #23856600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23857000 0! #23857500 1! #23857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23858000 0! #23858500 1! #23858600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23859000 0! #23859500 1! #23859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23860000 0! #23860500 1! #23860600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23861000 0! #23861500 1! #23861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23862000 0! #23862500 1! #23862600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23863000 0! #23863500 1! #23863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23864000 0! #23864500 1! #23864600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23865000 0! #23865500 1! #23865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23866000 0! #23866500 1! #23866600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23867000 0! #23867500 1! #23867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23868000 0! #23868500 1! #23868600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23869000 0! #23869500 1! #23869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23870000 0! #23870500 1! #23870600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23871000 0! #23871500 1! #23871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23872000 0! #23872500 1! #23872600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23873000 0! #23873500 1! #23873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23874000 0! #23874500 1! #23874600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23875000 0! #23875500 1! #23875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23876000 0! #23876500 1! #23876600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23877000 0! #23877500 1! #23877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23878000 0! #23878500 1! #23878600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23879000 0! #23879500 1! #23879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23880000 0! #23880500 1! #23880600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23881000 0! #23881500 1! #23881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23882000 0! #23882500 1! #23882600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23883000 0! #23883500 1! #23883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23884000 0! #23884500 1! #23884600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23885000 0! #23885500 1! #23885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23886000 0! #23886500 1! #23886600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23887000 0! #23887500 1! #23887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23888000 0! #23888500 1! #23888600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23889000 0! #23889500 1! #23889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23890000 0! #23890500 1! #23890600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23891000 0! #23891500 1! #23891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23892000 0! #23892500 1! #23892600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23893000 0! #23893500 1! #23893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23894000 0! #23894500 1! #23894600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23895000 0! #23895500 1! #23895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23896000 0! #23896500 1! #23896600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q 1O #23897000 0! #23897500 1! #23897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23898000 0! #23898500 1! #23898600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23899000 0! #23899500 1! #23899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23900000 0! #23900500 1! #23900600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23901000 0! #23901500 1! #23901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23902000 0! #23902500 1! #23902600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23903000 0! #23903500 1! #23903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23904000 0! #23904500 1! #23904600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23905000 0! #23905500 1! #23905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23906000 0! #23906500 1! #23906600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23907000 0! #23907500 1! #23907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23908000 0! #23908500 1! #23908600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23909000 0! #23909500 1! #23909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23910000 0! #23910500 1! #23910600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23911000 0! #23911500 1! #23911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23912000 0! #23912500 1! #23912600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23913000 0! #23913500 1! #23913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23914000 0! #23914500 1! #23914600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23915000 0! #23915500 1! #23915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23916000 0! #23916500 1! #23916600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23917000 0! #23917500 1! #23917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23918000 0! #23918500 1! #23918600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23919000 0! #23919500 1! #23919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23920000 0! #23920500 1! #23920600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23921000 0! #23921500 1! #23921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23922000 0! #23922500 1! #23922600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23923000 0! #23923500 1! #23923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23924000 0! #23924500 1! #23924600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23925000 0! #23925500 1! #23925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23926000 0! #23926500 1! #23926600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23927000 0! #23927500 1! #23927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23928000 0! #23928500 1! #23928600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23929000 0! #23929500 1! #23929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23930000 0! #23930500 1! #23930600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23931000 0! #23931500 1! #23931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23932000 0! #23932500 1! #23932600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23933000 0! #23933500 1! #23933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23934000 0! #23934500 1! #23934600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23935000 0! #23935500 1! #23935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23936000 0! #23936500 1! #23936600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23937000 0! #23937500 1! #23937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23938000 0! #23938500 1! #23938600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23939000 0! #23939500 1! #23939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23940000 0! #23940500 1! #23940600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23941000 0! #23941500 1! #23941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23942000 0! #23942500 1! #23942600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23943000 0! #23943500 1! #23943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23944000 0! #23944500 1! #23944600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23945000 0! #23945500 1! #23945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23946000 0! #23946500 1! #23946600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23947000 0! #23947500 1! #23947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #23947700 b0 g b1 c 1h #23948000 0! #23948500 1! #23948600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23949000 0! #23949500 1! #23949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23950000 0! #23950500 1! #23950600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23951000 0! #23951500 1! #23951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23952000 0! #23952500 1! #23952600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23953000 0! #23953500 1! #23953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23954000 0! #23954500 1! #23954600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23955000 0! #23955500 1! #23955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23956000 0! #23956500 1! #23956600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23957000 0! #23957500 1! #23957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23958000 0! #23958500 1! #23958600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23959000 0! #23959500 1! #23959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23960000 0! #23960500 1! #23960600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23961000 0! #23961500 1! #23961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23962000 0! #23962500 1! #23962600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23963000 0! #23963500 1! #23963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23964000 0! #23964500 1! #23964600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23965000 0! #23965500 1! #23965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23966000 0! #23966500 1! #23966600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23967000 0! #23967500 1! #23967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23968000 0! #23968500 1! #23968600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23969000 0! #23969500 1! #23969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23970000 0! #23970500 1! #23970600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23971000 0! #23971500 1! #23971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23972000 0! #23972500 1! #23972600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23973000 0! #23973500 1! #23973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23974000 0! #23974500 1! #23974600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23975000 0! #23975500 1! #23975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23976000 0! #23976500 1! #23976600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23977000 0! #23977500 1! #23977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23978000 0! #23978500 1! #23978600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23979000 0! #23979500 1! #23979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23980000 0! #23980500 1! #23980600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23981000 0! #23981500 1! #23981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23982000 0! #23982500 1! #23982600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23983000 0! #23983500 1! #23983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23984000 0! #23984500 1! #23984600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23985000 0! #23985500 1! #23985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23986000 0! #23986500 1! #23986600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23987000 0! #23987500 1! #23987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23988000 0! #23988500 1! #23988600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23989000 0! #23989500 1! #23989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23990000 0! #23990500 1! #23990600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23991000 0! #23991500 1! #23991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23992000 0! #23992500 1! #23992600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23993000 0! #23993500 1! #23993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23994000 0! #23994500 1! #23994600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23995000 0! #23995500 1! #23995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23996000 0! #23996500 1! #23996600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23997000 0! #23997500 1! #23997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #23998000 0! #23998500 1! #23998600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #23999000 0! #23999500 1! #23999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24000000 0! #24000500 1! #24000600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24001000 0! #24001500 1! #24001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24002000 0! #24002500 1! #24002600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24003000 0! #24003500 1! #24003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24004000 0! #24004500 1! #24004600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24005000 0! #24005500 1! #24005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24006000 0! #24006500 1! #24006600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24007000 0! #24007500 1! #24007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24008000 0! #24008500 1! #24008600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24009000 0! #24009500 1! #24009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24010000 0! #24010500 1! #24010600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24011000 0! #24011500 1! #24011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24012000 0! #24012500 1! #24012600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24013000 0! #24013500 1! #24013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24014000 0! #24014500 1! #24014600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24015000 0! #24015500 1! #24015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24016000 0! #24016500 1! #24016600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24017000 0! #24017500 1! #24017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24018000 0! #24018500 1! #24018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24019000 0! #24019500 1! #24019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24020000 0! #24020500 1! #24020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24021000 0! #24021500 1! #24021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24022000 0! #24022500 1! #24022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24023000 0! #24023500 1! #24023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24024000 0! #24024500 1! #24024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24025000 0! #24025500 1! #24025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24026000 0! #24026500 1! #24026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24027000 0! #24027500 1! #24027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24028000 0! #24028500 1! #24028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24029000 0! #24029500 1! #24029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24030000 0! #24030500 1! #24030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24031000 0! #24031500 1! #24031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24032000 0! #24032500 1! #24032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24033000 0! #24033500 1! #24033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24034000 0! #24034500 1! #24034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24035000 0! #24035500 1! #24035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24036000 0! #24036500 1! #24036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24037000 0! #24037500 1! #24037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24038000 0! #24038500 1! #24038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24039000 0! #24039500 1! #24039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24040000 0! #24040500 1! #24040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24041000 0! #24041500 1! #24041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24042000 0! #24042500 1! #24042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24043000 0! #24043500 1! #24043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24044000 0! #24044500 1! #24044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24045000 0! #24045500 1! #24045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24046000 0! #24046500 1! #24046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24047000 0! #24047500 1! #24047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24048000 0! #24048500 1! #24048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24049000 0! #24049500 1! #24049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #24049700 b11 q b1 ] 0j 0O #24050000 0! #24050500 1! #24050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24051000 0! #24051500 1! #24051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24052000 0! #24052500 1! #24052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24053000 0! #24053500 1! #24053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24054000 0! #24054500 1! #24054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24055000 0! #24055500 1! #24055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24056000 0! #24056500 1! #24056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24057000 0! #24057500 1! #24057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24058000 0! #24058500 1! #24058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24059000 0! #24059500 1! #24059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24060000 0! #24060500 1! #24060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24061000 0! #24061500 1! #24061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24062000 0! #24062500 1! #24062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24063000 0! #24063500 1! #24063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24064000 0! #24064500 1! #24064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24065000 0! #24065500 1! #24065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24066000 0! #24066500 1! #24066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24067000 0! #24067500 1! #24067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24068000 0! #24068500 1! #24068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24069000 0! #24069500 1! #24069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24070000 0! #24070500 1! #24070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24071000 0! #24071500 1! #24071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24072000 0! #24072500 1! #24072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24073000 0! #24073500 1! #24073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24074000 0! #24074500 1! #24074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24075000 0! #24075500 1! #24075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24076000 0! #24076500 1! #24076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24077000 0! #24077500 1! #24077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24078000 0! #24078500 1! #24078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24079000 0! #24079500 1! #24079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24080000 0! #24080500 1! #24080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24081000 0! #24081500 1! #24081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24082000 0! #24082500 1! #24082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24083000 0! #24083500 1! #24083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24084000 0! #24084500 1! #24084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24085000 0! #24085500 1! #24085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24086000 0! #24086500 1! #24086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24087000 0! #24087500 1! #24087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24088000 0! #24088500 1! #24088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24089000 0! #24089500 1! #24089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24090000 0! #24090500 1! #24090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24091000 0! #24091500 1! #24091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24092000 0! #24092500 1! #24092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24093000 0! #24093500 1! #24093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24094000 0! #24094500 1! #24094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24095000 0! #24095500 1! #24095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24096000 0! #24096500 1! #24096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24097000 0! #24097500 1! #24097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24098000 0! #24098500 1! #24098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24099000 0! #24099500 1! #24099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24100000 0! #24100500 1! #24100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24101000 0! #24101500 1! #24101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24102000 0! #24102500 1! #24102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24103000 0! #24103500 1! #24103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24104000 0! #24104500 1! #24104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24105000 0! #24105500 1! #24105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24106000 0! #24106500 1! #24106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24107000 0! #24107500 1! #24107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24108000 0! #24108500 1! #24108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24109000 0! #24109500 1! #24109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24110000 0! #24110500 1! #24110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24111000 0! #24111500 1! #24111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24112000 0! #24112500 1! #24112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24113000 0! #24113500 1! #24113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24114000 0! #24114500 1! #24114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24115000 0! #24115500 1! #24115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24116000 0! #24116500 1! #24116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24117000 0! #24117500 1! #24117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24118000 0! #24118500 1! #24118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24119000 0! #24119500 1! #24119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24120000 0! #24120500 1! #24120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24121000 0! #24121500 1! #24121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24122000 0! #24122500 1! #24122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24123000 0! #24123500 1! #24123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24124000 0! #24124500 1! #24124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24125000 0! #24125500 1! #24125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24126000 0! #24126500 1! #24126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24127000 0! #24127500 1! #24127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24128000 0! #24128500 1! #24128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24129000 0! #24129500 1! #24129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24130000 0! #24130500 1! #24130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24131000 0! #24131500 1! #24131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24132000 0! #24132500 1! #24132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24133000 0! #24133500 1! #24133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24134000 0! #24134500 1! #24134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24135000 0! #24135500 1! #24135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24136000 0! #24136500 1! #24136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24137000 0! #24137500 1! #24137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24138000 0! #24138500 1! #24138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24139000 0! #24139500 1! #24139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24140000 0! #24140500 1! #24140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24141000 0! #24141500 1! #24141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24142000 0! #24142500 1! #24142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24143000 0! #24143500 1! #24143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24144000 0! #24144500 1! #24144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24145000 0! #24145500 1! #24145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24146000 0! #24146500 1! #24146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24147000 0! #24147500 1! #24147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24148000 0! #24148500 1! #24148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24149000 0! #24149500 1! #24149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24150000 0! #24150500 1! #24150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24151000 0! #24151500 1! #24151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24152000 0! #24152500 1! #24152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24153000 0! #24153500 1! #24153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24154000 0! #24154500 1! #24154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24155000 0! #24155500 1! #24155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24156000 0! #24156500 1! #24156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24157000 0! #24157500 1! #24157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24158000 0! #24158500 1! #24158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24159000 0! #24159500 1! #24159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24160000 0! #24160500 1! #24160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24161000 0! #24161500 1! #24161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24162000 0! #24162500 1! #24162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24163000 0! #24163500 1! #24163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24164000 0! #24164500 1! #24164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24165000 0! #24165500 1! #24165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24166000 0! #24166500 1! #24166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24167000 0! #24167500 1! #24167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24168000 0! #24168500 1! #24168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24169000 0! #24169500 1! #24169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24170000 0! #24170500 1! #24170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24171000 0! #24171500 1! #24171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24172000 0! #24172500 1! #24172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24173000 0! #24173500 1! #24173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24174000 0! #24174500 1! #24174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24175000 0! #24175500 1! #24175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24176000 0! #24176500 1! #24176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24177000 0! #24177500 1! #24177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24178000 0! #24178500 1! #24178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24179000 0! #24179500 1! #24179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24180000 0! #24180500 1! #24180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24181000 0! #24181500 1! #24181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24182000 0! #24182500 1! #24182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24183000 0! #24183500 1! #24183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24184000 0! #24184500 1! #24184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24185000 0! #24185500 1! #24185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24186000 0! #24186500 1! #24186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24187000 0! #24187500 1! #24187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24188000 0! #24188500 1! #24188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24189000 0! #24189500 1! #24189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24190000 0! #24190500 1! #24190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24191000 0! #24191500 1! #24191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24192000 0! #24192500 1! #24192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24193000 0! #24193500 1! #24193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24194000 0! #24194500 1! #24194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24195000 0! #24195500 1! #24195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24196000 0! #24196500 1! #24196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24197000 0! #24197500 1! #24197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24198000 0! #24198500 1! #24198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24199000 0! #24199500 1! #24199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24200000 0! #24200500 1! #24200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24201000 0! #24201500 1! #24201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24202000 0! #24202500 1! #24202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #24202700 b111 g b10 c 0h #24203000 0! #24203500 1! #24203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24204000 0! #24204500 1! #24204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24205000 0! #24205500 1! #24205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24206000 0! #24206500 1! #24206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24207000 0! #24207500 1! #24207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24208000 0! #24208500 1! #24208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24209000 0! #24209500 1! #24209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24210000 0! #24210500 1! #24210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24211000 0! #24211500 1! #24211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24212000 0! #24212500 1! #24212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24213000 0! #24213500 1! #24213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24214000 0! #24214500 1! #24214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24215000 0! #24215500 1! #24215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24216000 0! #24216500 1! #24216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24217000 0! #24217500 1! #24217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24218000 0! #24218500 1! #24218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24219000 0! #24219500 1! #24219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24220000 0! #24220500 1! #24220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24221000 0! #24221500 1! #24221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24222000 0! #24222500 1! #24222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24223000 0! #24223500 1! #24223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24224000 0! #24224500 1! #24224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24225000 0! #24225500 1! #24225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24226000 0! #24226500 1! #24226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24227000 0! #24227500 1! #24227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24228000 0! #24228500 1! #24228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24229000 0! #24229500 1! #24229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24230000 0! #24230500 1! #24230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24231000 0! #24231500 1! #24231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24232000 0! #24232500 1! #24232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24233000 0! #24233500 1! #24233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24234000 0! #24234500 1! #24234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24235000 0! #24235500 1! #24235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24236000 0! #24236500 1! #24236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24237000 0! #24237500 1! #24237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24238000 0! #24238500 1! #24238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24239000 0! #24239500 1! #24239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24240000 0! #24240500 1! #24240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24241000 0! #24241500 1! #24241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24242000 0! #24242500 1! #24242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24243000 0! #24243500 1! #24243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24244000 0! #24244500 1! #24244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24245000 0! #24245500 1! #24245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24246000 0! #24246500 1! #24246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24247000 0! #24247500 1! #24247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24248000 0! #24248500 1! #24248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24249000 0! #24249500 1! #24249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24250000 0! #24250500 1! #24250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24251000 0! #24251500 1! #24251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24252000 0! #24252500 1! #24252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24253000 0! #24253500 1! #24253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24254000 0! #24254500 1! #24254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24255000 0! #24255500 1! #24255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24256000 0! #24256500 1! #24256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24257000 0! #24257500 1! #24257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24258000 0! #24258500 1! #24258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24259000 0! #24259500 1! #24259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24260000 0! #24260500 1! #24260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24261000 0! #24261500 1! #24261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24262000 0! #24262500 1! #24262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24263000 0! #24263500 1! #24263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24264000 0! #24264500 1! #24264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24265000 0! #24265500 1! #24265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24266000 0! #24266500 1! #24266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24267000 0! #24267500 1! #24267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24268000 0! #24268500 1! #24268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24269000 0! #24269500 1! #24269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24270000 0! #24270500 1! #24270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24271000 0! #24271500 1! #24271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24272000 0! #24272500 1! #24272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24273000 0! #24273500 1! #24273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24274000 0! #24274500 1! #24274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24275000 0! #24275500 1! #24275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24276000 0! #24276500 1! #24276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24277000 0! #24277500 1! #24277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24278000 0! #24278500 1! #24278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24279000 0! #24279500 1! #24279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24280000 0! #24280500 1! #24280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24281000 0! #24281500 1! #24281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24282000 0! #24282500 1! #24282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24283000 0! #24283500 1! #24283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24284000 0! #24284500 1! #24284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24285000 0! #24285500 1! #24285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24286000 0! #24286500 1! #24286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24287000 0! #24287500 1! #24287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24288000 0! #24288500 1! #24288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24289000 0! #24289500 1! #24289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24290000 0! #24290500 1! #24290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24291000 0! #24291500 1! #24291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24292000 0! #24292500 1! #24292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24293000 0! #24293500 1! #24293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24294000 0! #24294500 1! #24294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24295000 0! #24295500 1! #24295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24296000 0! #24296500 1! #24296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24297000 0! #24297500 1! #24297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24298000 0! #24298500 1! #24298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24299000 0! #24299500 1! #24299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24300000 0! #24300500 1! #24300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24301000 0! #24301500 1! #24301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24302000 0! #24302500 1! #24302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24303000 0! #24303500 1! #24303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24304000 0! #24304500 1! #24304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #24304700 1j b100 q 1i 1O #24305000 0! #24305500 1! #24305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24306000 0! #24306500 1! #24306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24307000 0! #24307500 1! #24307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24308000 0! #24308500 1! #24308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #24309000 0! #24309500 1! #24309600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24310000 0! #24310500 1! #24310600 1E 1F 1G b10100001 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b10000000 C 1H #24311000 0! #24311500 1! #24311600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24311700 1E 1F 1G b10010000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #24312000 0! #24312500 1! #24312600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24313000 0! #24313500 1! #24313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #24314000 0! #24314500 1! #24314600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24315000 0! #24315500 1! #24315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24316000 0! #24316500 1! #24316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24317000 0! #24317500 1! #24317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24318000 0! #24318500 1! #24318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24319000 0! #24319500 1! #24319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24320000 0! #24320500 1! #24320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24321000 0! #24321500 1! #24321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24322000 0! #24322500 1! #24322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24323000 0! #24323500 1! #24323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24324000 0! #24324500 1! #24324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24325000 0! #24325500 1! #24325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24326000 0! #24326500 1! #24326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24327000 0! #24327500 1! #24327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24328000 0! #24328500 1! #24328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24329000 0! #24329500 1! #24329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24330000 0! #24330500 1! #24330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24331000 0! #24331500 1! #24331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24332000 0! #24332500 1! #24332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24333000 0! #24333500 1! #24333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24334000 0! #24334500 1! #24334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24335000 0! #24335500 1! #24335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24336000 0! #24336500 1! #24336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24337000 0! #24337500 1! #24337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24338000 0! #24338500 1! #24338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24339000 0! #24339500 1! #24339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24340000 0! #24340500 1! #24340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24341000 0! #24341500 1! #24341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24342000 0! #24342500 1! #24342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24343000 0! #24343500 1! #24343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24344000 0! #24344500 1! #24344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24345000 0! #24345500 1! #24345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24346000 0! #24346500 1! #24346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24347000 0! #24347500 1! #24347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24348000 0! #24348500 1! #24348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24349000 0! #24349500 1! #24349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24350000 0! #24350500 1! #24350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24351000 0! #24351500 1! #24351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24352000 0! #24352500 1! #24352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24353000 0! #24353500 1! #24353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24354000 0! #24354500 1! #24354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24355000 0! #24355500 1! #24355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24356000 0! #24356500 1! #24356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24357000 0! #24357500 1! #24357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24358000 0! #24358500 1! #24358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24359000 0! #24359500 1! #24359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24360000 0! #24360500 1! #24360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24361000 0! #24361500 1! #24361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24362000 0! #24362500 1! #24362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24363000 0! #24363500 1! #24363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24364000 0! #24364500 1! #24364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24365000 0! #24365500 1! #24365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24366000 0! #24366500 1! #24366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24367000 0! #24367500 1! #24367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24368000 0! #24368500 1! #24368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24369000 0! #24369500 1! #24369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24370000 0! #24370500 1! #24370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24371000 0! #24371500 1! #24371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24372000 0! #24372500 1! #24372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24373000 0! #24373500 1! #24373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24374000 0! #24374500 1! #24374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24375000 0! #24375500 1! #24375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24376000 0! #24376500 1! #24376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24377000 0! #24377500 1! #24377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24378000 0! #24378500 1! #24378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24379000 0! #24379500 1! #24379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24380000 0! #24380500 1! #24380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24381000 0! #24381500 1! #24381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24382000 0! #24382500 1! #24382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24383000 0! #24383500 1! #24383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24384000 0! #24384500 1! #24384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24385000 0! #24385500 1! #24385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24386000 0! #24386500 1! #24386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24387000 0! #24387500 1! #24387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24388000 0! #24388500 1! #24388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24389000 0! #24389500 1! #24389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24390000 0! #24390500 1! #24390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24391000 0! #24391500 1! #24391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24392000 0! #24392500 1! #24392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24393000 0! #24393500 1! #24393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24394000 0! #24394500 1! #24394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24395000 0! #24395500 1! #24395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24396000 0! #24396500 1! #24396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24397000 0! #24397500 1! #24397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24398000 0! #24398500 1! #24398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24399000 0! #24399500 1! #24399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24400000 0! #24400500 1! #24400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24401000 0! #24401500 1! #24401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24402000 0! #24402500 1! #24402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24403000 0! #24403500 1! #24403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24404000 0! #24404500 1! #24404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24405000 0! #24405500 1! #24405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24406000 0! #24406500 1! #24406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24407000 0! #24407500 1! #24407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24408000 0! #24408500 1! #24408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24409000 0! #24409500 1! #24409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24410000 0! #24410500 1! #24410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24411000 0! #24411500 1! #24411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24412000 0! #24412500 1! #24412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24413000 0! #24413500 1! #24413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24414000 0! #24414500 1! #24414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24415000 0! #24415500 1! #24415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24416000 0! #24416500 1! #24416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24417000 0! #24417500 1! #24417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24418000 0! #24418500 1! #24418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24419000 0! #24419500 1! #24419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24420000 0! #24420500 1! #24420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24421000 0! #24421500 1! #24421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24422000 0! #24422500 1! #24422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24423000 0! #24423500 1! #24423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24424000 0! #24424500 1! #24424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24425000 0! #24425500 1! #24425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24426000 0! #24426500 1! #24426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24427000 0! #24427500 1! #24427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24428000 0! #24428500 1! #24428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24429000 0! #24429500 1! #24429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24430000 0! #24430500 1! #24430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24431000 0! #24431500 1! #24431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24432000 0! #24432500 1! #24432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24433000 0! #24433500 1! #24433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24434000 0! #24434500 1! #24434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24435000 0! #24435500 1! #24435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24436000 0! #24436500 1! #24436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24437000 0! #24437500 1! #24437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24438000 0! #24438500 1! #24438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24439000 0! #24439500 1! #24439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24440000 0! #24440500 1! #24440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24441000 0! #24441500 1! #24441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24442000 0! #24442500 1! #24442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24443000 0! #24443500 1! #24443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24444000 0! #24444500 1! #24444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24445000 0! #24445500 1! #24445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24446000 0! #24446500 1! #24446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24447000 0! #24447500 1! #24447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24448000 0! #24448500 1! #24448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24449000 0! #24449500 1! #24449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24450000 0! #24450500 1! #24450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24451000 0! #24451500 1! #24451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24452000 0! #24452500 1! #24452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24453000 0! #24453500 1! #24453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24454000 0! #24454500 1! #24454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24455000 0! #24455500 1! #24455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24456000 0! #24456500 1! #24456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24457000 0! #24457500 1! #24457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #24457700 b101 c #24458000 0! #24458500 1! #24458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24459000 0! #24459500 1! #24459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24460000 0! #24460500 1! #24460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24461000 0! #24461500 1! #24461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24462000 0! #24462500 1! #24462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24463000 0! #24463500 1! #24463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24464000 0! #24464500 1! #24464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24465000 0! #24465500 1! #24465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24466000 0! #24466500 1! #24466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24467000 0! #24467500 1! #24467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24468000 0! #24468500 1! #24468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24469000 0! #24469500 1! #24469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24470000 0! #24470500 1! #24470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24471000 0! #24471500 1! #24471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24472000 0! #24472500 1! #24472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24473000 0! #24473500 1! #24473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24474000 0! #24474500 1! #24474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24475000 0! #24475500 1! #24475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24476000 0! #24476500 1! #24476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24477000 0! #24477500 1! #24477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24478000 0! #24478500 1! #24478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24479000 0! #24479500 1! #24479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24480000 0! #24480500 1! #24480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24481000 0! #24481500 1! #24481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24482000 0! #24482500 1! #24482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24483000 0! #24483500 1! #24483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24484000 0! #24484500 1! #24484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24485000 0! #24485500 1! #24485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24486000 0! #24486500 1! #24486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24487000 0! #24487500 1! #24487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24488000 0! #24488500 1! #24488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24489000 0! #24489500 1! #24489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24490000 0! #24490500 1! #24490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24491000 0! #24491500 1! #24491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24492000 0! #24492500 1! #24492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24493000 0! #24493500 1! #24493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24494000 0! #24494500 1! #24494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24495000 0! #24495500 1! #24495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24496000 0! #24496500 1! #24496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24497000 0! #24497500 1! #24497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24498000 0! #24498500 1! #24498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24499000 0! #24499500 1! #24499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24500000 0! #24500500 1! #24500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24501000 0! #24501500 1! #24501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24502000 0! #24502500 1! #24502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24503000 0! #24503500 1! #24503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24504000 0! #24504500 1! #24504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24505000 0! #24505500 1! #24505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24506000 0! #24506500 1! #24506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24507000 0! #24507500 1! #24507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24508000 0! #24508500 1! #24508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #24508700 1_ 1f #24509000 0! #24509500 1! #24509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24510000 0! #24510500 1! #24510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24511000 0! #24511500 1! #24511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24512000 0! #24512500 1! #24512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24513000 0! #24513500 1! #24513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24514000 0! #24514500 1! #24514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24515000 0! #24515500 1! #24515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24516000 0! #24516500 1! #24516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24517000 0! #24517500 1! #24517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24518000 0! #24518500 1! #24518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24519000 0! #24519500 1! #24519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24520000 0! #24520500 1! #24520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24521000 0! #24521500 1! #24521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24522000 0! #24522500 1! #24522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24523000 0! #24523500 1! #24523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24524000 0! #24524500 1! #24524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24525000 0! #24525500 1! #24525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24526000 0! #24526500 1! #24526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24527000 0! #24527500 1! #24527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24528000 0! #24528500 1! #24528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24529000 0! #24529500 1! #24529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24530000 0! #24530500 1! #24530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24531000 0! #24531500 1! #24531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24532000 0! #24532500 1! #24532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24533000 0! #24533500 1! #24533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24534000 0! #24534500 1! #24534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24535000 0! #24535500 1! #24535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24536000 0! #24536500 1! #24536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24537000 0! #24537500 1! #24537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24538000 0! #24538500 1! #24538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24539000 0! #24539500 1! #24539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24540000 0! #24540500 1! #24540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24541000 0! #24541500 1! #24541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24542000 0! #24542500 1! #24542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24543000 0! #24543500 1! #24543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24544000 0! #24544500 1! #24544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24545000 0! #24545500 1! #24545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24546000 0! #24546500 1! #24546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24547000 0! #24547500 1! #24547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24548000 0! #24548500 1! #24548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24549000 0! #24549500 1! #24549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24550000 0! #24550500 1! #24550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24551000 0! #24551500 1! #24551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24552000 0! #24552500 1! #24552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24553000 0! #24553500 1! #24553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24554000 0! #24554500 1! #24554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24555000 0! #24555500 1! #24555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24556000 0! #24556500 1! #24556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24557000 0! #24557500 1! #24557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24558000 0! #24558500 1! #24558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24559000 0! #24559500 1! #24559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #24559700 b0 q #24560000 0! #24560500 1! #24560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24561000 0! #24561500 1! #24561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24562000 0! #24562500 1! #24562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24563000 0! #24563500 1! #24563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24564000 0! #24564500 1! #24564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24565000 0! #24565500 1! #24565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24566000 0! #24566500 1! #24566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24567000 0! #24567500 1! #24567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24568000 0! #24568500 1! #24568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24569000 0! #24569500 1! #24569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24570000 0! #24570500 1! #24570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24571000 0! #24571500 1! #24571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24572000 0! #24572500 1! #24572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24573000 0! #24573500 1! #24573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24574000 0! #24574500 1! #24574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24575000 0! #24575500 1! #24575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24576000 0! #24576500 1! #24576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24577000 0! #24577500 1! #24577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24578000 0! #24578500 1! #24578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24579000 0! #24579500 1! #24579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24580000 0! #24580500 1! #24580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24581000 0! #24581500 1! #24581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24582000 0! #24582500 1! #24582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24583000 0! #24583500 1! #24583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24584000 0! #24584500 1! #24584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24585000 0! #24585500 1! #24585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24586000 0! #24586500 1! #24586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24587000 0! #24587500 1! #24587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24588000 0! #24588500 1! #24588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24589000 0! #24589500 1! #24589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24590000 0! #24590500 1! #24590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24591000 0! #24591500 1! #24591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24592000 0! #24592500 1! #24592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24593000 0! #24593500 1! #24593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24594000 0! #24594500 1! #24594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24595000 0! #24595500 1! #24595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24596000 0! #24596500 1! #24596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24597000 0! #24597500 1! #24597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24598000 0! #24598500 1! #24598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24599000 0! #24599500 1! #24599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24600000 0! #24600500 1! #24600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24601000 0! #24601500 1! #24601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24602000 0! #24602500 1! #24602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24603000 0! #24603500 1! #24603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24604000 0! #24604500 1! #24604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24605000 0! #24605500 1! #24605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24606000 0! #24606500 1! #24606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24607000 0! #24607500 1! #24607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24608000 0! #24608500 1! #24608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24609000 0! #24609500 1! #24609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24610000 0! #24610500 1! #24610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24611000 0! #24611500 1! #24611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24612000 0! #24612500 1! #24612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24613000 0! #24613500 1! #24613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24614000 0! #24614500 1! #24614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24615000 0! #24615500 1! #24615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24616000 0! #24616500 1! #24616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24617000 0! #24617500 1! #24617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24618000 0! #24618500 1! #24618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24619000 0! #24619500 1! #24619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24620000 0! #24620500 1! #24620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24621000 0! #24621500 1! #24621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24622000 0! #24622500 1! #24622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24623000 0! #24623500 1! #24623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24624000 0! #24624500 1! #24624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24625000 0! #24625500 1! #24625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24626000 0! #24626500 1! #24626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24627000 0! #24627500 1! #24627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24628000 0! #24628500 1! #24628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24629000 0! #24629500 1! #24629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24630000 0! #24630500 1! #24630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24631000 0! #24631500 1! #24631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24632000 0! #24632500 1! #24632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24633000 0! #24633500 1! #24633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24634000 0! #24634500 1! #24634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24635000 0! #24635500 1! #24635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24636000 0! #24636500 1! #24636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24637000 0! #24637500 1! #24637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24638000 0! #24638500 1! #24638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24639000 0! #24639500 1! #24639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24640000 0! #24640500 1! #24640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24641000 0! #24641500 1! #24641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24642000 0! #24642500 1! #24642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24643000 0! #24643500 1! #24643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24644000 0! #24644500 1! #24644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24645000 0! #24645500 1! #24645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24646000 0! #24646500 1! #24646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24647000 0! #24647500 1! #24647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24648000 0! #24648500 1! #24648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24649000 0! #24649500 1! #24649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24650000 0! #24650500 1! #24650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24651000 0! #24651500 1! #24651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24652000 0! #24652500 1! #24652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24653000 0! #24653500 1! #24653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24654000 0! #24654500 1! #24654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24655000 0! #24655500 1! #24655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24656000 0! #24656500 1! #24656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24657000 0! #24657500 1! #24657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24658000 0! #24658500 1! #24658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24659000 0! #24659500 1! #24659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24660000 0! #24660500 1! #24660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24661000 0! #24661500 1! #24661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q 1O #24662000 0! #24662500 1! #24662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24663000 0! #24663500 1! #24663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24664000 0! #24664500 1! #24664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24665000 0! #24665500 1! #24665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24666000 0! #24666500 1! #24666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24667000 0! #24667500 1! #24667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24668000 0! #24668500 1! #24668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24669000 0! #24669500 1! #24669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24670000 0! #24670500 1! #24670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24671000 0! #24671500 1! #24671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24672000 0! #24672500 1! #24672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24673000 0! #24673500 1! #24673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24674000 0! #24674500 1! #24674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24675000 0! #24675500 1! #24675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24676000 0! #24676500 1! #24676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24677000 0! #24677500 1! #24677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24678000 0! #24678500 1! #24678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24679000 0! #24679500 1! #24679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24680000 0! #24680500 1! #24680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24681000 0! #24681500 1! #24681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24682000 0! #24682500 1! #24682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24683000 0! #24683500 1! #24683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24684000 0! #24684500 1! #24684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24685000 0! #24685500 1! #24685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24686000 0! #24686500 1! #24686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24687000 0! #24687500 1! #24687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24688000 0! #24688500 1! #24688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24689000 0! #24689500 1! #24689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24690000 0! #24690500 1! #24690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24691000 0! #24691500 1! #24691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24692000 0! #24692500 1! #24692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24693000 0! #24693500 1! #24693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24694000 0! #24694500 1! #24694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24695000 0! #24695500 1! #24695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24696000 0! #24696500 1! #24696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24697000 0! #24697500 1! #24697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24698000 0! #24698500 1! #24698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24699000 0! #24699500 1! #24699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24700000 0! #24700500 1! #24700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24701000 0! #24701500 1! #24701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24702000 0! #24702500 1! #24702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24703000 0! #24703500 1! #24703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24704000 0! #24704500 1! #24704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24705000 0! #24705500 1! #24705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24706000 0! #24706500 1! #24706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24707000 0! #24707500 1! #24707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24708000 0! #24708500 1! #24708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24709000 0! #24709500 1! #24709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24710000 0! #24710500 1! #24710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24711000 0! #24711500 1! #24711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24712000 0! #24712500 1! #24712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #24712700 1` b1011 c #24713000 0! #24713500 1! #24713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24714000 0! #24714500 1! #24714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24715000 0! #24715500 1! #24715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24716000 0! #24716500 1! #24716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24717000 0! #24717500 1! #24717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24718000 0! #24718500 1! #24718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24719000 0! #24719500 1! #24719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24720000 0! #24720500 1! #24720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24721000 0! #24721500 1! #24721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24722000 0! #24722500 1! #24722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24723000 0! #24723500 1! #24723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24724000 0! #24724500 1! #24724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24725000 0! #24725500 1! #24725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24726000 0! #24726500 1! #24726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24727000 0! #24727500 1! #24727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24728000 0! #24728500 1! #24728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24729000 0! #24729500 1! #24729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24730000 0! #24730500 1! #24730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24731000 0! #24731500 1! #24731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24732000 0! #24732500 1! #24732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24733000 0! #24733500 1! #24733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24734000 0! #24734500 1! #24734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24735000 0! #24735500 1! #24735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24736000 0! #24736500 1! #24736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24737000 0! #24737500 1! #24737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24738000 0! #24738500 1! #24738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24739000 0! #24739500 1! #24739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24740000 0! #24740500 1! #24740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24741000 0! #24741500 1! #24741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24742000 0! #24742500 1! #24742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24743000 0! #24743500 1! #24743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24744000 0! #24744500 1! #24744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24745000 0! #24745500 1! #24745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24746000 0! #24746500 1! #24746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24747000 0! #24747500 1! #24747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24748000 0! #24748500 1! #24748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24749000 0! #24749500 1! #24749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24750000 0! #24750500 1! #24750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24751000 0! #24751500 1! #24751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24752000 0! #24752500 1! #24752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24753000 0! #24753500 1! #24753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24754000 0! #24754500 1! #24754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24755000 0! #24755500 1! #24755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24756000 0! #24756500 1! #24756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24757000 0! #24757500 1! #24757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24758000 0! #24758500 1! #24758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24759000 0! #24759500 1! #24759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24760000 0! #24760500 1! #24760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24761000 0! #24761500 1! #24761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24762000 0! #24762500 1! #24762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24763000 0! #24763500 1! #24763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24764000 0! #24764500 1! #24764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24765000 0! #24765500 1! #24765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24766000 0! #24766500 1! #24766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24767000 0! #24767500 1! #24767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24768000 0! #24768500 1! #24768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24769000 0! #24769500 1! #24769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24770000 0! #24770500 1! #24770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24771000 0! #24771500 1! #24771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24772000 0! #24772500 1! #24772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24773000 0! #24773500 1! #24773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24774000 0! #24774500 1! #24774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24775000 0! #24775500 1! #24775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24776000 0! #24776500 1! #24776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24777000 0! #24777500 1! #24777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24778000 0! #24778500 1! #24778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24779000 0! #24779500 1! #24779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24780000 0! #24780500 1! #24780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24781000 0! #24781500 1! #24781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24782000 0! #24782500 1! #24782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24783000 0! #24783500 1! #24783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24784000 0! #24784500 1! #24784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24785000 0! #24785500 1! #24785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24786000 0! #24786500 1! #24786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24787000 0! #24787500 1! #24787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24788000 0! #24788500 1! #24788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24789000 0! #24789500 1! #24789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24790000 0! #24790500 1! #24790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24791000 0! #24791500 1! #24791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24792000 0! #24792500 1! #24792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24793000 0! #24793500 1! #24793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24794000 0! #24794500 1! #24794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24795000 0! #24795500 1! #24795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24796000 0! #24796500 1! #24796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24797000 0! #24797500 1! #24797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24798000 0! #24798500 1! #24798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24799000 0! #24799500 1! #24799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24800000 0! #24800500 1! #24800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24801000 0! #24801500 1! #24801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24802000 0! #24802500 1! #24802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24803000 0! #24803500 1! #24803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24804000 0! #24804500 1! #24804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24805000 0! #24805500 1! #24805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24806000 0! #24806500 1! #24806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24807000 0! #24807500 1! #24807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24808000 0! #24808500 1! #24808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24809000 0! #24809500 1! #24809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24810000 0! #24810500 1! #24810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24811000 0! #24811500 1! #24811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24812000 0! #24812500 1! #24812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24813000 0! #24813500 1! #24813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24814000 0! #24814500 1! #24814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #24814700 0i #24815000 0! #24815500 1! #24815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24816000 0! #24816500 1! #24816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24817000 0! #24817500 1! #24817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24818000 0! #24818500 1! #24818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24819000 0! #24819500 1! #24819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24820000 0! #24820500 1! #24820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24821000 0! #24821500 1! #24821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24822000 0! #24822500 1! #24822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24823000 0! #24823500 1! #24823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24824000 0! #24824500 1! #24824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24825000 0! #24825500 1! #24825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24826000 0! #24826500 1! #24826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24827000 0! #24827500 1! #24827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24828000 0! #24828500 1! #24828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24829000 0! #24829500 1! #24829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24830000 0! #24830500 1! #24830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24831000 0! #24831500 1! #24831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24832000 0! #24832500 1! #24832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24833000 0! #24833500 1! #24833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24834000 0! #24834500 1! #24834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24835000 0! #24835500 1! #24835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24836000 0! #24836500 1! #24836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24837000 0! #24837500 1! #24837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24838000 0! #24838500 1! #24838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24839000 0! #24839500 1! #24839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24840000 0! #24840500 1! #24840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24841000 0! #24841500 1! #24841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24842000 0! #24842500 1! #24842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24843000 0! #24843500 1! #24843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24844000 0! #24844500 1! #24844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24845000 0! #24845500 1! #24845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24846000 0! #24846500 1! #24846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24847000 0! #24847500 1! #24847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24848000 0! #24848500 1! #24848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24849000 0! #24849500 1! #24849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24850000 0! #24850500 1! #24850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24851000 0! #24851500 1! #24851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24852000 0! #24852500 1! #24852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24853000 0! #24853500 1! #24853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24854000 0! #24854500 1! #24854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24855000 0! #24855500 1! #24855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24856000 0! #24856500 1! #24856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24857000 0! #24857500 1! #24857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24858000 0! #24858500 1! #24858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24859000 0! #24859500 1! #24859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24860000 0! #24860500 1! #24860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24861000 0! #24861500 1! #24861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24862000 0! #24862500 1! #24862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24863000 0! #24863500 1! #24863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24864000 0! #24864500 1! #24864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24865000 0! #24865500 1! #24865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24866000 0! #24866500 1! #24866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24867000 0! #24867500 1! #24867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24868000 0! #24868500 1! #24868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24869000 0! #24869500 1! #24869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24870000 0! #24870500 1! #24870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24871000 0! #24871500 1! #24871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24872000 0! #24872500 1! #24872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24873000 0! #24873500 1! #24873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24874000 0! #24874500 1! #24874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24875000 0! #24875500 1! #24875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24876000 0! #24876500 1! #24876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24877000 0! #24877500 1! #24877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24878000 0! #24878500 1! #24878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24879000 0! #24879500 1! #24879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24880000 0! #24880500 1! #24880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24881000 0! #24881500 1! #24881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24882000 0! #24882500 1! #24882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24883000 0! #24883500 1! #24883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24884000 0! #24884500 1! #24884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24885000 0! #24885500 1! #24885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24886000 0! #24886500 1! #24886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24887000 0! #24887500 1! #24887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24888000 0! #24888500 1! #24888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24889000 0! #24889500 1! #24889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24890000 0! #24890500 1! #24890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24891000 0! #24891500 1! #24891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24892000 0! #24892500 1! #24892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24893000 0! #24893500 1! #24893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24894000 0! #24894500 1! #24894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24895000 0! #24895500 1! #24895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24896000 0! #24896500 1! #24896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24897000 0! #24897500 1! #24897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24898000 0! #24898500 1! #24898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24899000 0! #24899500 1! #24899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24900000 0! #24900500 1! #24900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24901000 0! #24901500 1! #24901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24902000 0! #24902500 1! #24902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24903000 0! #24903500 1! #24903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24904000 0! #24904500 1! #24904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24905000 0! #24905500 1! #24905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24906000 0! #24906500 1! #24906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24907000 0! #24907500 1! #24907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24908000 0! #24908500 1! #24908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24909000 0! #24909500 1! #24909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24910000 0! #24910500 1! #24910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24911000 0! #24911500 1! #24911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24912000 0! #24912500 1! #24912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24913000 0! #24913500 1! #24913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24914000 0! #24914500 1! #24914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24915000 0! #24915500 1! #24915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24916000 0! #24916500 1! #24916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #24916700 0_ 0f #24917000 0! #24917500 1! #24917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24918000 0! #24918500 1! #24918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24919000 0! #24919500 1! #24919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24920000 0! #24920500 1! #24920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24921000 0! #24921500 1! #24921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24922000 0! #24922500 1! #24922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24923000 0! #24923500 1! #24923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24924000 0! #24924500 1! #24924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24925000 0! #24925500 1! #24925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24926000 0! #24926500 1! #24926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24927000 0! #24927500 1! #24927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24928000 0! #24928500 1! #24928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24929000 0! #24929500 1! #24929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24930000 0! #24930500 1! #24930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24931000 0! #24931500 1! #24931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24932000 0! #24932500 1! #24932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24933000 0! #24933500 1! #24933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24934000 0! #24934500 1! #24934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24935000 0! #24935500 1! #24935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24936000 0! #24936500 1! #24936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24937000 0! #24937500 1! #24937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24938000 0! #24938500 1! #24938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24939000 0! #24939500 1! #24939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24940000 0! #24940500 1! #24940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24941000 0! #24941500 1! #24941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24942000 0! #24942500 1! #24942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24943000 0! #24943500 1! #24943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24944000 0! #24944500 1! #24944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24945000 0! #24945500 1! #24945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24946000 0! #24946500 1! #24946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24947000 0! #24947500 1! #24947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24948000 0! #24948500 1! #24948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24949000 0! #24949500 1! #24949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24950000 0! #24950500 1! #24950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24951000 0! #24951500 1! #24951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24952000 0! #24952500 1! #24952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24953000 0! #24953500 1! #24953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24954000 0! #24954500 1! #24954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24955000 0! #24955500 1! #24955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24956000 0! #24956500 1! #24956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24957000 0! #24957500 1! #24957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24958000 0! #24958500 1! #24958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24959000 0! #24959500 1! #24959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24960000 0! #24960500 1! #24960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24961000 0! #24961500 1! #24961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24962000 0! #24962500 1! #24962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24963000 0! #24963500 1! #24963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24964000 0! #24964500 1! #24964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24965000 0! #24965500 1! #24965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24966000 0! #24966500 1! #24966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24967000 0! #24967500 1! #24967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #24967700 0` b110 g b10110 c #24968000 0! #24968500 1! #24968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24969000 0! #24969500 1! #24969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24970000 0! #24970500 1! #24970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24971000 0! #24971500 1! #24971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24972000 0! #24972500 1! #24972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24973000 0! #24973500 1! #24973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24974000 0! #24974500 1! #24974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24975000 0! #24975500 1! #24975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24976000 0! #24976500 1! #24976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24977000 0! #24977500 1! #24977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24978000 0! #24978500 1! #24978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24979000 0! #24979500 1! #24979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24980000 0! #24980500 1! #24980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24981000 0! #24981500 1! #24981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24982000 0! #24982500 1! #24982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24983000 0! #24983500 1! #24983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24984000 0! #24984500 1! #24984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24985000 0! #24985500 1! #24985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24986000 0! #24986500 1! #24986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24987000 0! #24987500 1! #24987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24988000 0! #24988500 1! #24988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24989000 0! #24989500 1! #24989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24990000 0! #24990500 1! #24990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24991000 0! #24991500 1! #24991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24992000 0! #24992500 1! #24992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24993000 0! #24993500 1! #24993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24994000 0! #24994500 1! #24994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24995000 0! #24995500 1! #24995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24996000 0! #24996500 1! #24996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24997000 0! #24997500 1! #24997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #24998000 0! #24998500 1! #24998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #24999000 0! #24999500 1! #24999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25000000 0! #25000500 1! #25000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25001000 0! #25001500 1! #25001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25002000 0! #25002500 1! #25002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25003000 0! #25003500 1! #25003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25004000 0! #25004500 1! #25004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25005000 0! #25005500 1! #25005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25006000 0! #25006500 1! #25006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25007000 0! #25007500 1! #25007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25008000 0! #25008500 1! #25008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25009000 0! #25009500 1! #25009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25010000 0! #25010500 1! #25010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25011000 0! #25011500 1! #25011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25012000 0! #25012500 1! #25012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25013000 0! #25013500 1! #25013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25014000 0! #25014500 1! #25014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25015000 0! #25015500 1! #25015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25016000 0! #25016500 1! #25016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25017000 0! #25017500 1! #25017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25018000 0! #25018500 1! #25018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25019000 0! #25019500 1! #25019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25020000 0! #25020500 1! #25020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25021000 0! #25021500 1! #25021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25022000 0! #25022500 1! #25022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25023000 0! #25023500 1! #25023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25024000 0! #25024500 1! #25024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25025000 0! #25025500 1! #25025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25026000 0! #25026500 1! #25026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25027000 0! #25027500 1! #25027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25028000 0! #25028500 1! #25028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25029000 0! #25029500 1! #25029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25030000 0! #25030500 1! #25030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25031000 0! #25031500 1! #25031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25032000 0! #25032500 1! #25032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25033000 0! #25033500 1! #25033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25034000 0! #25034500 1! #25034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25035000 0! #25035500 1! #25035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25036000 0! #25036500 1! #25036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25037000 0! #25037500 1! #25037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25038000 0! #25038500 1! #25038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25039000 0! #25039500 1! #25039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25040000 0! #25040500 1! #25040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25041000 0! #25041500 1! #25041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25042000 0! #25042500 1! #25042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25043000 0! #25043500 1! #25043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25044000 0! #25044500 1! #25044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25045000 0! #25045500 1! #25045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25046000 0! #25046500 1! #25046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25047000 0! #25047500 1! #25047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25048000 0! #25048500 1! #25048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25049000 0! #25049500 1! #25049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25050000 0! #25050500 1! #25050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25051000 0! #25051500 1! #25051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25052000 0! #25052500 1! #25052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25053000 0! #25053500 1! #25053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25054000 0! #25054500 1! #25054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25055000 0! #25055500 1! #25055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25056000 0! #25056500 1! #25056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25057000 0! #25057500 1! #25057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25058000 0! #25058500 1! #25058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25059000 0! #25059500 1! #25059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25060000 0! #25060500 1! #25060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25061000 0! #25061500 1! #25061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25062000 0! #25062500 1! #25062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25063000 0! #25063500 1! #25063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25064000 0! #25064500 1! #25064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25065000 0! #25065500 1! #25065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25066000 0! #25066500 1! #25066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25067000 0! #25067500 1! #25067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25068000 0! #25068500 1! #25068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25069000 0! #25069500 1! #25069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #25070000 0! #25070500 1! #25070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25071000 0! #25071500 1! #25071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25072000 0! #25072500 1! #25072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25073000 0! #25073500 1! #25073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25074000 0! #25074500 1! #25074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25075000 0! #25075500 1! #25075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25076000 0! #25076500 1! #25076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25077000 0! #25077500 1! #25077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25078000 0! #25078500 1! #25078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25079000 0! #25079500 1! #25079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25080000 0! #25080500 1! #25080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25081000 0! #25081500 1! #25081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25082000 0! #25082500 1! #25082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25083000 0! #25083500 1! #25083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25084000 0! #25084500 1! #25084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25085000 0! #25085500 1! #25085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25086000 0! #25086500 1! #25086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25087000 0! #25087500 1! #25087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25088000 0! #25088500 1! #25088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25089000 0! #25089500 1! #25089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25090000 0! #25090500 1! #25090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25091000 0! #25091500 1! #25091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25092000 0! #25092500 1! #25092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25093000 0! #25093500 1! #25093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25094000 0! #25094500 1! #25094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25095000 0! #25095500 1! #25095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25096000 0! #25096500 1! #25096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25097000 0! #25097500 1! #25097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25098000 0! #25098500 1! #25098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25099000 0! #25099500 1! #25099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25100000 0! #25100500 1! #25100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25101000 0! #25101500 1! #25101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25102000 0! #25102500 1! #25102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25103000 0! #25103500 1! #25103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25104000 0! #25104500 1! #25104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25105000 0! #25105500 1! #25105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25106000 0! #25106500 1! #25106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25107000 0! #25107500 1! #25107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25108000 0! #25108500 1! #25108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25109000 0! #25109500 1! #25109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25110000 0! #25110500 1! #25110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25111000 0! #25111500 1! #25111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25112000 0! #25112500 1! #25112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25113000 0! #25113500 1! #25113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25114000 0! #25114500 1! #25114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25115000 0! #25115500 1! #25115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25116000 0! #25116500 1! #25116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25117000 0! #25117500 1! #25117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25118000 0! #25118500 1! #25118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25119000 0! #25119500 1! #25119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25120000 0! #25120500 1! #25120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25121000 0! #25121500 1! #25121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25122000 0! #25122500 1! #25122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25123000 0! #25123500 1! #25123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25124000 0! #25124500 1! #25124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25125000 0! #25125500 1! #25125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25126000 0! #25126500 1! #25126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25127000 0! #25127500 1! #25127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25128000 0! #25128500 1! #25128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25129000 0! #25129500 1! #25129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25130000 0! #25130500 1! #25130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25131000 0! #25131500 1! #25131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25132000 0! #25132500 1! #25132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25133000 0! #25133500 1! #25133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25134000 0! #25134500 1! #25134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25135000 0! #25135500 1! #25135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25136000 0! #25136500 1! #25136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25137000 0! #25137500 1! #25137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25138000 0! #25138500 1! #25138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25139000 0! #25139500 1! #25139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25140000 0! #25140500 1! #25140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25141000 0! #25141500 1! #25141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25142000 0! #25142500 1! #25142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25143000 0! #25143500 1! #25143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25144000 0! #25144500 1! #25144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25145000 0! #25145500 1! #25145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25146000 0! #25146500 1! #25146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25147000 0! #25147500 1! #25147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25148000 0! #25148500 1! #25148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25149000 0! #25149500 1! #25149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25150000 0! #25150500 1! #25150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25151000 0! #25151500 1! #25151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25152000 0! #25152500 1! #25152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25153000 0! #25153500 1! #25153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25154000 0! #25154500 1! #25154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25155000 0! #25155500 1! #25155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25156000 0! #25156500 1! #25156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25157000 0! #25157500 1! #25157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25158000 0! #25158500 1! #25158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25159000 0! #25159500 1! #25159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25160000 0! #25160500 1! #25160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25161000 0! #25161500 1! #25161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25162000 0! #25162500 1! #25162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25163000 0! #25163500 1! #25163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25164000 0! #25164500 1! #25164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25165000 0! #25165500 1! #25165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25166000 0! #25166500 1! #25166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25167000 0! #25167500 1! #25167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25168000 0! #25168500 1! #25168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25169000 0! #25169500 1! #25169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25170000 0! #25170500 1! #25170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25171000 0! #25171500 1! #25171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q 1O #25172000 0! #25172500 1! #25172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25173000 0! #25173500 1! #25173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25174000 0! #25174500 1! #25174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25175000 0! #25175500 1! #25175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25176000 0! #25176500 1! #25176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25177000 0! #25177500 1! #25177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25178000 0! #25178500 1! #25178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25179000 0! #25179500 1! #25179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25180000 0! #25180500 1! #25180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25181000 0! #25181500 1! #25181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25182000 0! #25182500 1! #25182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25183000 0! #25183500 1! #25183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25184000 0! #25184500 1! #25184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25185000 0! #25185500 1! #25185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25186000 0! #25186500 1! #25186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25187000 0! #25187500 1! #25187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25188000 0! #25188500 1! #25188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25189000 0! #25189500 1! #25189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25190000 0! #25190500 1! #25190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25191000 0! #25191500 1! #25191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25192000 0! #25192500 1! #25192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25193000 0! #25193500 1! #25193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25194000 0! #25194500 1! #25194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25195000 0! #25195500 1! #25195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25196000 0! #25196500 1! #25196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25197000 0! #25197500 1! #25197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25198000 0! #25198500 1! #25198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25199000 0! #25199500 1! #25199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25200000 0! #25200500 1! #25200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25201000 0! #25201500 1! #25201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25202000 0! #25202500 1! #25202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25203000 0! #25203500 1! #25203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25204000 0! #25204500 1! #25204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25205000 0! #25205500 1! #25205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25206000 0! #25206500 1! #25206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25207000 0! #25207500 1! #25207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25208000 0! #25208500 1! #25208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25209000 0! #25209500 1! #25209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25210000 0! #25210500 1! #25210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25211000 0! #25211500 1! #25211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25212000 0! #25212500 1! #25212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25213000 0! #25213500 1! #25213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25214000 0! #25214500 1! #25214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25215000 0! #25215500 1! #25215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25216000 0! #25216500 1! #25216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25217000 0! #25217500 1! #25217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25218000 0! #25218500 1! #25218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25219000 0! #25219500 1! #25219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25220000 0! #25220500 1! #25220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25221000 0! #25221500 1! #25221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25222000 0! #25222500 1! #25222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #25222700 b101 g b101101 c #25223000 0! #25223500 1! #25223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25224000 0! #25224500 1! #25224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25225000 0! #25225500 1! #25225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25226000 0! #25226500 1! #25226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25227000 0! #25227500 1! #25227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25228000 0! #25228500 1! #25228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25229000 0! #25229500 1! #25229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25230000 0! #25230500 1! #25230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25231000 0! #25231500 1! #25231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25232000 0! #25232500 1! #25232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25233000 0! #25233500 1! #25233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25234000 0! #25234500 1! #25234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25235000 0! #25235500 1! #25235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25236000 0! #25236500 1! #25236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25237000 0! #25237500 1! #25237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25238000 0! #25238500 1! #25238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25239000 0! #25239500 1! #25239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25240000 0! #25240500 1! #25240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25241000 0! #25241500 1! #25241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25242000 0! #25242500 1! #25242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25243000 0! #25243500 1! #25243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25244000 0! #25244500 1! #25244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25245000 0! #25245500 1! #25245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25246000 0! #25246500 1! #25246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25247000 0! #25247500 1! #25247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25248000 0! #25248500 1! #25248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25249000 0! #25249500 1! #25249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25250000 0! #25250500 1! #25250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25251000 0! #25251500 1! #25251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25252000 0! #25252500 1! #25252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25253000 0! #25253500 1! #25253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25254000 0! #25254500 1! #25254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25255000 0! #25255500 1! #25255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25256000 0! #25256500 1! #25256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25257000 0! #25257500 1! #25257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25258000 0! #25258500 1! #25258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25259000 0! #25259500 1! #25259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25260000 0! #25260500 1! #25260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25261000 0! #25261500 1! #25261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25262000 0! #25262500 1! #25262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25263000 0! #25263500 1! #25263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25264000 0! #25264500 1! #25264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25265000 0! #25265500 1! #25265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25266000 0! #25266500 1! #25266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25267000 0! #25267500 1! #25267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25268000 0! #25268500 1! #25268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25269000 0! #25269500 1! #25269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25270000 0! #25270500 1! #25270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25271000 0! #25271500 1! #25271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25272000 0! #25272500 1! #25272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25273000 0! #25273500 1! #25273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25274000 0! #25274500 1! #25274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25275000 0! #25275500 1! #25275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25276000 0! #25276500 1! #25276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25277000 0! #25277500 1! #25277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25278000 0! #25278500 1! #25278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25279000 0! #25279500 1! #25279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25280000 0! #25280500 1! #25280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25281000 0! #25281500 1! #25281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25282000 0! #25282500 1! #25282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25283000 0! #25283500 1! #25283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25284000 0! #25284500 1! #25284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25285000 0! #25285500 1! #25285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25286000 0! #25286500 1! #25286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25287000 0! #25287500 1! #25287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25288000 0! #25288500 1! #25288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25289000 0! #25289500 1! #25289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25290000 0! #25290500 1! #25290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25291000 0! #25291500 1! #25291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25292000 0! #25292500 1! #25292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25293000 0! #25293500 1! #25293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25294000 0! #25294500 1! #25294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25295000 0! #25295500 1! #25295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25296000 0! #25296500 1! #25296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25297000 0! #25297500 1! #25297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25298000 0! #25298500 1! #25298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25299000 0! #25299500 1! #25299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25300000 0! #25300500 1! #25300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25301000 0! #25301500 1! #25301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25302000 0! #25302500 1! #25302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25303000 0! #25303500 1! #25303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25304000 0! #25304500 1! #25304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25305000 0! #25305500 1! #25305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25306000 0! #25306500 1! #25306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25307000 0! #25307500 1! #25307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25308000 0! #25308500 1! #25308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25309000 0! #25309500 1! #25309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25310000 0! #25310500 1! #25310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25311000 0! #25311500 1! #25311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25312000 0! #25312500 1! #25312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25313000 0! #25313500 1! #25313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25314000 0! #25314500 1! #25314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25315000 0! #25315500 1! #25315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25316000 0! #25316500 1! #25316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25317000 0! #25317500 1! #25317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25318000 0! #25318500 1! #25318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25319000 0! #25319500 1! #25319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25320000 0! #25320500 1! #25320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25321000 0! #25321500 1! #25321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25322000 0! #25322500 1! #25322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25323000 0! #25323500 1! #25323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25324000 0! #25324500 1! #25324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #25325000 0! #25325500 1! #25325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25326000 0! #25326500 1! #25326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25327000 0! #25327500 1! #25327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25328000 0! #25328500 1! #25328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25329000 0! #25329500 1! #25329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25330000 0! #25330500 1! #25330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25331000 0! #25331500 1! #25331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25332000 0! #25332500 1! #25332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25333000 0! #25333500 1! #25333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25334000 0! #25334500 1! #25334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25335000 0! #25335500 1! #25335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25336000 0! #25336500 1! #25336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25337000 0! #25337500 1! #25337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25338000 0! #25338500 1! #25338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25339000 0! #25339500 1! #25339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25340000 0! #25340500 1! #25340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25341000 0! #25341500 1! #25341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25342000 0! #25342500 1! #25342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25343000 0! #25343500 1! #25343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25344000 0! #25344500 1! #25344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25345000 0! #25345500 1! #25345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25346000 0! #25346500 1! #25346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25347000 0! #25347500 1! #25347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25348000 0! #25348500 1! #25348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25349000 0! #25349500 1! #25349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25350000 0! #25350500 1! #25350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25351000 0! #25351500 1! #25351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25352000 0! #25352500 1! #25352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25353000 0! #25353500 1! #25353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25354000 0! #25354500 1! #25354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25355000 0! #25355500 1! #25355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25356000 0! #25356500 1! #25356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25357000 0! #25357500 1! #25357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25358000 0! #25358500 1! #25358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25359000 0! #25359500 1! #25359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25360000 0! #25360500 1! #25360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25361000 0! #25361500 1! #25361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25362000 0! #25362500 1! #25362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25363000 0! #25363500 1! #25363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25364000 0! #25364500 1! #25364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25365000 0! #25365500 1! #25365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25366000 0! #25366500 1! #25366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25367000 0! #25367500 1! #25367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25368000 0! #25368500 1! #25368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25369000 0! #25369500 1! #25369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25370000 0! #25370500 1! #25370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25371000 0! #25371500 1! #25371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25372000 0! #25372500 1! #25372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25373000 0! #25373500 1! #25373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25374000 0! #25374500 1! #25374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25375000 0! #25375500 1! #25375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25376000 0! #25376500 1! #25376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25377000 0! #25377500 1! #25377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25378000 0! #25378500 1! #25378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25379000 0! #25379500 1! #25379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25380000 0! #25380500 1! #25380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25381000 0! #25381500 1! #25381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25382000 0! #25382500 1! #25382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25383000 0! #25383500 1! #25383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25384000 0! #25384500 1! #25384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25385000 0! #25385500 1! #25385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25386000 0! #25386500 1! #25386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25387000 0! #25387500 1! #25387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25388000 0! #25388500 1! #25388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25389000 0! #25389500 1! #25389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25390000 0! #25390500 1! #25390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25391000 0! #25391500 1! #25391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25392000 0! #25392500 1! #25392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25393000 0! #25393500 1! #25393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25394000 0! #25394500 1! #25394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25395000 0! #25395500 1! #25395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25396000 0! #25396500 1! #25396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25397000 0! #25397500 1! #25397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25398000 0! #25398500 1! #25398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25399000 0! #25399500 1! #25399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25400000 0! #25400500 1! #25400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25401000 0! #25401500 1! #25401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25402000 0! #25402500 1! #25402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25403000 0! #25403500 1! #25403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25404000 0! #25404500 1! #25404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25405000 0! #25405500 1! #25405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25406000 0! #25406500 1! #25406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25407000 0! #25407500 1! #25407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25408000 0! #25408500 1! #25408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25409000 0! #25409500 1! #25409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25410000 0! #25410500 1! #25410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25411000 0! #25411500 1! #25411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25412000 0! #25412500 1! #25412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25413000 0! #25413500 1! #25413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25414000 0! #25414500 1! #25414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25415000 0! #25415500 1! #25415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25416000 0! #25416500 1! #25416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25417000 0! #25417500 1! #25417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25418000 0! #25418500 1! #25418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25419000 0! #25419500 1! #25419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25420000 0! #25420500 1! #25420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25421000 0! #25421500 1! #25421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25422000 0! #25422500 1! #25422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25423000 0! #25423500 1! #25423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25424000 0! #25424500 1! #25424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25425000 0! #25425500 1! #25425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25426000 0! #25426500 1! #25426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #25427000 0! #25427500 1! #25427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25428000 0! #25428500 1! #25428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25429000 0! #25429500 1! #25429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25430000 0! #25430500 1! #25430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25431000 0! #25431500 1! #25431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25432000 0! #25432500 1! #25432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25433000 0! #25433500 1! #25433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25434000 0! #25434500 1! #25434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25435000 0! #25435500 1! #25435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25436000 0! #25436500 1! #25436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25437000 0! #25437500 1! #25437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25438000 0! #25438500 1! #25438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25439000 0! #25439500 1! #25439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25440000 0! #25440500 1! #25440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25441000 0! #25441500 1! #25441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25442000 0! #25442500 1! #25442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25443000 0! #25443500 1! #25443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25444000 0! #25444500 1! #25444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25445000 0! #25445500 1! #25445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25446000 0! #25446500 1! #25446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25447000 0! #25447500 1! #25447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25448000 0! #25448500 1! #25448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25449000 0! #25449500 1! #25449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25450000 0! #25450500 1! #25450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25451000 0! #25451500 1! #25451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25452000 0! #25452500 1! #25452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25453000 0! #25453500 1! #25453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25454000 0! #25454500 1! #25454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25455000 0! #25455500 1! #25455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25456000 0! #25456500 1! #25456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25457000 0! #25457500 1! #25457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25458000 0! #25458500 1! #25458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25459000 0! #25459500 1! #25459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25460000 0! #25460500 1! #25460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25461000 0! #25461500 1! #25461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25462000 0! #25462500 1! #25462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25463000 0! #25463500 1! #25463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25464000 0! #25464500 1! #25464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25465000 0! #25465500 1! #25465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25466000 0! #25466500 1! #25466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25467000 0! #25467500 1! #25467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25468000 0! #25468500 1! #25468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25469000 0! #25469500 1! #25469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25470000 0! #25470500 1! #25470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25471000 0! #25471500 1! #25471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25472000 0! #25472500 1! #25472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25473000 0! #25473500 1! #25473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25474000 0! #25474500 1! #25474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25475000 0! #25475500 1! #25475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25476000 0! #25476500 1! #25476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25477000 0! #25477500 1! #25477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #25477700 b100 g b1011010 c #25478000 0! #25478500 1! #25478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25479000 0! #25479500 1! #25479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25480000 0! #25480500 1! #25480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25481000 0! #25481500 1! #25481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25482000 0! #25482500 1! #25482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25483000 0! #25483500 1! #25483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25484000 0! #25484500 1! #25484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25485000 0! #25485500 1! #25485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25486000 0! #25486500 1! #25486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25487000 0! #25487500 1! #25487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25488000 0! #25488500 1! #25488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25489000 0! #25489500 1! #25489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25490000 0! #25490500 1! #25490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25491000 0! #25491500 1! #25491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25492000 0! #25492500 1! #25492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25493000 0! #25493500 1! #25493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25494000 0! #25494500 1! #25494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25495000 0! #25495500 1! #25495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25496000 0! #25496500 1! #25496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25497000 0! #25497500 1! #25497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25498000 0! #25498500 1! #25498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25499000 0! #25499500 1! #25499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25500000 0! #25500500 1! #25500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25501000 0! #25501500 1! #25501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25502000 0! #25502500 1! #25502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25503000 0! #25503500 1! #25503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25504000 0! #25504500 1! #25504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25505000 0! #25505500 1! #25505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25506000 0! #25506500 1! #25506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25507000 0! #25507500 1! #25507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25508000 0! #25508500 1! #25508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25509000 0! #25509500 1! #25509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25510000 0! #25510500 1! #25510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25511000 0! #25511500 1! #25511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25512000 0! #25512500 1! #25512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25513000 0! #25513500 1! #25513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25514000 0! #25514500 1! #25514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25515000 0! #25515500 1! #25515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25516000 0! #25516500 1! #25516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25517000 0! #25517500 1! #25517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25518000 0! #25518500 1! #25518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25519000 0! #25519500 1! #25519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25520000 0! #25520500 1! #25520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25521000 0! #25521500 1! #25521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25522000 0! #25522500 1! #25522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25523000 0! #25523500 1! #25523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25524000 0! #25524500 1! #25524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25525000 0! #25525500 1! #25525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25526000 0! #25526500 1! #25526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25527000 0! #25527500 1! #25527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25528000 0! #25528500 1! #25528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25529000 0! #25529500 1! #25529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25530000 0! #25530500 1! #25530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25531000 0! #25531500 1! #25531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25532000 0! #25532500 1! #25532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25533000 0! #25533500 1! #25533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25534000 0! #25534500 1! #25534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25535000 0! #25535500 1! #25535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25536000 0! #25536500 1! #25536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25537000 0! #25537500 1! #25537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25538000 0! #25538500 1! #25538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25539000 0! #25539500 1! #25539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25540000 0! #25540500 1! #25540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25541000 0! #25541500 1! #25541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25542000 0! #25542500 1! #25542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25543000 0! #25543500 1! #25543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25544000 0! #25544500 1! #25544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25545000 0! #25545500 1! #25545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25546000 0! #25546500 1! #25546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25547000 0! #25547500 1! #25547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25548000 0! #25548500 1! #25548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25549000 0! #25549500 1! #25549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25550000 0! #25550500 1! #25550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25551000 0! #25551500 1! #25551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25552000 0! #25552500 1! #25552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25553000 0! #25553500 1! #25553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25554000 0! #25554500 1! #25554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25555000 0! #25555500 1! #25555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25556000 0! #25556500 1! #25556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25557000 0! #25557500 1! #25557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25558000 0! #25558500 1! #25558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25559000 0! #25559500 1! #25559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25560000 0! #25560500 1! #25560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25561000 0! #25561500 1! #25561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25562000 0! #25562500 1! #25562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25563000 0! #25563500 1! #25563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25564000 0! #25564500 1! #25564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25565000 0! #25565500 1! #25565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25566000 0! #25566500 1! #25566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25567000 0! #25567500 1! #25567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25568000 0! #25568500 1! #25568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25569000 0! #25569500 1! #25569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25570000 0! #25570500 1! #25570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25571000 0! #25571500 1! #25571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25572000 0! #25572500 1! #25572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25573000 0! #25573500 1! #25573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25574000 0! #25574500 1! #25574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25575000 0! #25575500 1! #25575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25576000 0! #25576500 1! #25576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25577000 0! #25577500 1! #25577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25578000 0! #25578500 1! #25578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25579000 0! #25579500 1! #25579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #25580000 0! #25580500 1! #25580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25581000 0! #25581500 1! #25581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25582000 0! #25582500 1! #25582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25583000 0! #25583500 1! #25583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25584000 0! #25584500 1! #25584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25585000 0! #25585500 1! #25585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25586000 0! #25586500 1! #25586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25587000 0! #25587500 1! #25587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25588000 0! #25588500 1! #25588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25589000 0! #25589500 1! #25589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25590000 0! #25590500 1! #25590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25591000 0! #25591500 1! #25591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25592000 0! #25592500 1! #25592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25593000 0! #25593500 1! #25593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25594000 0! #25594500 1! #25594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25595000 0! #25595500 1! #25595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25596000 0! #25596500 1! #25596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25597000 0! #25597500 1! #25597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25598000 0! #25598500 1! #25598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25599000 0! #25599500 1! #25599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25600000 0! #25600500 1! #25600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25601000 0! #25601500 1! #25601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25602000 0! #25602500 1! #25602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25603000 0! #25603500 1! #25603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25604000 0! #25604500 1! #25604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25605000 0! #25605500 1! #25605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25606000 0! #25606500 1! #25606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25607000 0! #25607500 1! #25607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25608000 0! #25608500 1! #25608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25609000 0! #25609500 1! #25609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25610000 0! #25610500 1! #25610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25611000 0! #25611500 1! #25611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25612000 0! #25612500 1! #25612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25613000 0! #25613500 1! #25613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25614000 0! #25614500 1! #25614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25615000 0! #25615500 1! #25615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25616000 0! #25616500 1! #25616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25617000 0! #25617500 1! #25617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25618000 0! #25618500 1! #25618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25619000 0! #25619500 1! #25619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25620000 0! #25620500 1! #25620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25621000 0! #25621500 1! #25621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25622000 0! #25622500 1! #25622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25623000 0! #25623500 1! #25623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25624000 0! #25624500 1! #25624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25625000 0! #25625500 1! #25625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25626000 0! #25626500 1! #25626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25627000 0! #25627500 1! #25627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25628000 0! #25628500 1! #25628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25629000 0! #25629500 1! #25629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25630000 0! #25630500 1! #25630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25631000 0! #25631500 1! #25631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25632000 0! #25632500 1! #25632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25633000 0! #25633500 1! #25633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25634000 0! #25634500 1! #25634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25635000 0! #25635500 1! #25635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25636000 0! #25636500 1! #25636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25637000 0! #25637500 1! #25637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25638000 0! #25638500 1! #25638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25639000 0! #25639500 1! #25639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25640000 0! #25640500 1! #25640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25641000 0! #25641500 1! #25641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25642000 0! #25642500 1! #25642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25643000 0! #25643500 1! #25643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25644000 0! #25644500 1! #25644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25645000 0! #25645500 1! #25645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25646000 0! #25646500 1! #25646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25647000 0! #25647500 1! #25647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25648000 0! #25648500 1! #25648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25649000 0! #25649500 1! #25649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25650000 0! #25650500 1! #25650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25651000 0! #25651500 1! #25651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25652000 0! #25652500 1! #25652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25653000 0! #25653500 1! #25653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25654000 0! #25654500 1! #25654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25655000 0! #25655500 1! #25655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25656000 0! #25656500 1! #25656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25657000 0! #25657500 1! #25657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25658000 0! #25658500 1! #25658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25659000 0! #25659500 1! #25659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25660000 0! #25660500 1! #25660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25661000 0! #25661500 1! #25661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25662000 0! #25662500 1! #25662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25663000 0! #25663500 1! #25663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25664000 0! #25664500 1! #25664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25665000 0! #25665500 1! #25665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25666000 0! #25666500 1! #25666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25667000 0! #25667500 1! #25667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25668000 0! #25668500 1! #25668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25669000 0! #25669500 1! #25669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25670000 0! #25670500 1! #25670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25671000 0! #25671500 1! #25671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25672000 0! #25672500 1! #25672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25673000 0! #25673500 1! #25673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25674000 0! #25674500 1! #25674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25675000 0! #25675500 1! #25675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25676000 0! #25676500 1! #25676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25677000 0! #25677500 1! #25677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25678000 0! #25678500 1! #25678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25679000 0! #25679500 1! #25679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25680000 0! #25680500 1! #25680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25681000 0! #25681500 1! #25681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25682000 0! #25682500 1! #25682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25683000 0! #25683500 1! #25683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25684000 0! #25684500 1! #25684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25685000 0! #25685500 1! #25685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25686000 0! #25686500 1! #25686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25687000 0! #25687500 1! #25687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25688000 0! #25688500 1! #25688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25689000 0! #25689500 1! #25689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25690000 0! #25690500 1! #25690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25691000 0! #25691500 1! #25691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25692000 0! #25692500 1! #25692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25693000 0! #25693500 1! #25693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25694000 0! #25694500 1! #25694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25695000 0! #25695500 1! #25695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25696000 0! #25696500 1! #25696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25697000 0! #25697500 1! #25697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25698000 0! #25698500 1! #25698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25699000 0! #25699500 1! #25699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25700000 0! #25700500 1! #25700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25701000 0! #25701500 1! #25701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25702000 0! #25702500 1! #25702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25703000 0! #25703500 1! #25703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25704000 0! #25704500 1! #25704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25705000 0! #25705500 1! #25705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25706000 0! #25706500 1! #25706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25707000 0! #25707500 1! #25707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25708000 0! #25708500 1! #25708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25709000 0! #25709500 1! #25709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25710000 0! #25710500 1! #25710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25711000 0! #25711500 1! #25711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25712000 0! #25712500 1! #25712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25713000 0! #25713500 1! #25713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25714000 0! #25714500 1! #25714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25715000 0! #25715500 1! #25715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25716000 0! #25716500 1! #25716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25717000 0! #25717500 1! #25717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25718000 0! #25718500 1! #25718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25719000 0! #25719500 1! #25719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25720000 0! #25720500 1! #25720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25721000 0! #25721500 1! #25721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25722000 0! #25722500 1! #25722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25723000 0! #25723500 1! #25723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25724000 0! #25724500 1! #25724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25725000 0! #25725500 1! #25725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25726000 0! #25726500 1! #25726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25727000 0! #25727500 1! #25727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25728000 0! #25728500 1! #25728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25729000 0! #25729500 1! #25729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25730000 0! #25730500 1! #25730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25731000 0! #25731500 1! #25731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25732000 0! #25732500 1! #25732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #25732700 b11 g b10110100 c #25733000 0! #25733500 1! #25733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25734000 0! #25734500 1! #25734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25735000 0! #25735500 1! #25735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25736000 0! #25736500 1! #25736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25737000 0! #25737500 1! #25737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25738000 0! #25738500 1! #25738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25739000 0! #25739500 1! #25739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25740000 0! #25740500 1! #25740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25741000 0! #25741500 1! #25741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25742000 0! #25742500 1! #25742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25743000 0! #25743500 1! #25743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25744000 0! #25744500 1! #25744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25745000 0! #25745500 1! #25745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25746000 0! #25746500 1! #25746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25747000 0! #25747500 1! #25747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25748000 0! #25748500 1! #25748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25749000 0! #25749500 1! #25749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25750000 0! #25750500 1! #25750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25751000 0! #25751500 1! #25751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25752000 0! #25752500 1! #25752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25753000 0! #25753500 1! #25753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25754000 0! #25754500 1! #25754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25755000 0! #25755500 1! #25755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25756000 0! #25756500 1! #25756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25757000 0! #25757500 1! #25757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25758000 0! #25758500 1! #25758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25759000 0! #25759500 1! #25759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25760000 0! #25760500 1! #25760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25761000 0! #25761500 1! #25761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25762000 0! #25762500 1! #25762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25763000 0! #25763500 1! #25763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25764000 0! #25764500 1! #25764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25765000 0! #25765500 1! #25765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25766000 0! #25766500 1! #25766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25767000 0! #25767500 1! #25767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25768000 0! #25768500 1! #25768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25769000 0! #25769500 1! #25769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25770000 0! #25770500 1! #25770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25771000 0! #25771500 1! #25771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25772000 0! #25772500 1! #25772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25773000 0! #25773500 1! #25773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25774000 0! #25774500 1! #25774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25775000 0! #25775500 1! #25775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25776000 0! #25776500 1! #25776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25777000 0! #25777500 1! #25777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25778000 0! #25778500 1! #25778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25779000 0! #25779500 1! #25779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25780000 0! #25780500 1! #25780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25781000 0! #25781500 1! #25781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25782000 0! #25782500 1! #25782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25783000 0! #25783500 1! #25783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25784000 0! #25784500 1! #25784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25785000 0! #25785500 1! #25785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25786000 0! #25786500 1! #25786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25787000 0! #25787500 1! #25787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25788000 0! #25788500 1! #25788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25789000 0! #25789500 1! #25789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25790000 0! #25790500 1! #25790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25791000 0! #25791500 1! #25791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25792000 0! #25792500 1! #25792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25793000 0! #25793500 1! #25793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25794000 0! #25794500 1! #25794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25795000 0! #25795500 1! #25795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25796000 0! #25796500 1! #25796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25797000 0! #25797500 1! #25797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25798000 0! #25798500 1! #25798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25799000 0! #25799500 1! #25799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25800000 0! #25800500 1! #25800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25801000 0! #25801500 1! #25801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25802000 0! #25802500 1! #25802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25803000 0! #25803500 1! #25803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25804000 0! #25804500 1! #25804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25805000 0! #25805500 1! #25805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25806000 0! #25806500 1! #25806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25807000 0! #25807500 1! #25807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25808000 0! #25808500 1! #25808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25809000 0! #25809500 1! #25809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25810000 0! #25810500 1! #25810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25811000 0! #25811500 1! #25811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25812000 0! #25812500 1! #25812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25813000 0! #25813500 1! #25813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25814000 0! #25814500 1! #25814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25815000 0! #25815500 1! #25815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25816000 0! #25816500 1! #25816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25817000 0! #25817500 1! #25817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25818000 0! #25818500 1! #25818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25819000 0! #25819500 1! #25819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25820000 0! #25820500 1! #25820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25821000 0! #25821500 1! #25821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25822000 0! #25822500 1! #25822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25823000 0! #25823500 1! #25823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25824000 0! #25824500 1! #25824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25825000 0! #25825500 1! #25825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25826000 0! #25826500 1! #25826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25827000 0! #25827500 1! #25827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25828000 0! #25828500 1! #25828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25829000 0! #25829500 1! #25829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25830000 0! #25830500 1! #25830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25831000 0! #25831500 1! #25831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25832000 0! #25832500 1! #25832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25833000 0! #25833500 1! #25833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25834000 0! #25834500 1! #25834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #25835000 0! #25835500 1! #25835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25836000 0! #25836500 1! #25836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25837000 0! #25837500 1! #25837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25838000 0! #25838500 1! #25838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25839000 0! #25839500 1! #25839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25840000 0! #25840500 1! #25840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25841000 0! #25841500 1! #25841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25842000 0! #25842500 1! #25842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25843000 0! #25843500 1! #25843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25844000 0! #25844500 1! #25844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25845000 0! #25845500 1! #25845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25846000 0! #25846500 1! #25846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25847000 0! #25847500 1! #25847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25848000 0! #25848500 1! #25848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25849000 0! #25849500 1! #25849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25850000 0! #25850500 1! #25850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25851000 0! #25851500 1! #25851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25852000 0! #25852500 1! #25852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25853000 0! #25853500 1! #25853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25854000 0! #25854500 1! #25854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25855000 0! #25855500 1! #25855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25856000 0! #25856500 1! #25856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25857000 0! #25857500 1! #25857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25858000 0! #25858500 1! #25858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25859000 0! #25859500 1! #25859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25860000 0! #25860500 1! #25860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25861000 0! #25861500 1! #25861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25862000 0! #25862500 1! #25862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25863000 0! #25863500 1! #25863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25864000 0! #25864500 1! #25864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25865000 0! #25865500 1! #25865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25866000 0! #25866500 1! #25866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25867000 0! #25867500 1! #25867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25868000 0! #25868500 1! #25868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25869000 0! #25869500 1! #25869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25870000 0! #25870500 1! #25870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25871000 0! #25871500 1! #25871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25872000 0! #25872500 1! #25872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25873000 0! #25873500 1! #25873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25874000 0! #25874500 1! #25874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25875000 0! #25875500 1! #25875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25876000 0! #25876500 1! #25876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25877000 0! #25877500 1! #25877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25878000 0! #25878500 1! #25878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25879000 0! #25879500 1! #25879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25880000 0! #25880500 1! #25880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25881000 0! #25881500 1! #25881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25882000 0! #25882500 1! #25882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25883000 0! #25883500 1! #25883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25884000 0! #25884500 1! #25884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25885000 0! #25885500 1! #25885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25886000 0! #25886500 1! #25886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25887000 0! #25887500 1! #25887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25888000 0! #25888500 1! #25888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25889000 0! #25889500 1! #25889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25890000 0! #25890500 1! #25890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25891000 0! #25891500 1! #25891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25892000 0! #25892500 1! #25892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25893000 0! #25893500 1! #25893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25894000 0! #25894500 1! #25894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25895000 0! #25895500 1! #25895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25896000 0! #25896500 1! #25896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25897000 0! #25897500 1! #25897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25898000 0! #25898500 1! #25898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25899000 0! #25899500 1! #25899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25900000 0! #25900500 1! #25900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25901000 0! #25901500 1! #25901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25902000 0! #25902500 1! #25902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25903000 0! #25903500 1! #25903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25904000 0! #25904500 1! #25904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25905000 0! #25905500 1! #25905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25906000 0! #25906500 1! #25906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25907000 0! #25907500 1! #25907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25908000 0! #25908500 1! #25908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25909000 0! #25909500 1! #25909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25910000 0! #25910500 1! #25910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25911000 0! #25911500 1! #25911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25912000 0! #25912500 1! #25912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25913000 0! #25913500 1! #25913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25914000 0! #25914500 1! #25914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25915000 0! #25915500 1! #25915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25916000 0! #25916500 1! #25916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25917000 0! #25917500 1! #25917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25918000 0! #25918500 1! #25918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25919000 0! #25919500 1! #25919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25920000 0! #25920500 1! #25920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25921000 0! #25921500 1! #25921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25922000 0! #25922500 1! #25922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25923000 0! #25923500 1! #25923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25924000 0! #25924500 1! #25924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25925000 0! #25925500 1! #25925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25926000 0! #25926500 1! #25926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25927000 0! #25927500 1! #25927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25928000 0! #25928500 1! #25928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25929000 0! #25929500 1! #25929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25930000 0! #25930500 1! #25930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25931000 0! #25931500 1! #25931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25932000 0! #25932500 1! #25932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25933000 0! #25933500 1! #25933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25934000 0! #25934500 1! #25934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25935000 0! #25935500 1! #25935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25936000 0! #25936500 1! #25936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25937000 0! #25937500 1! #25937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25938000 0! #25938500 1! #25938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25939000 0! #25939500 1! #25939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25940000 0! #25940500 1! #25940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25941000 0! #25941500 1! #25941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25942000 0! #25942500 1! #25942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25943000 0! #25943500 1! #25943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25944000 0! #25944500 1! #25944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25945000 0! #25945500 1! #25945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25946000 0! #25946500 1! #25946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25947000 0! #25947500 1! #25947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25948000 0! #25948500 1! #25948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25949000 0! #25949500 1! #25949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25950000 0! #25950500 1! #25950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25951000 0! #25951500 1! #25951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25952000 0! #25952500 1! #25952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25953000 0! #25953500 1! #25953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25954000 0! #25954500 1! #25954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25955000 0! #25955500 1! #25955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25956000 0! #25956500 1! #25956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25957000 0! #25957500 1! #25957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25958000 0! #25958500 1! #25958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25959000 0! #25959500 1! #25959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25960000 0! #25960500 1! #25960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25961000 0! #25961500 1! #25961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25962000 0! #25962500 1! #25962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25963000 0! #25963500 1! #25963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25964000 0! #25964500 1! #25964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25965000 0! #25965500 1! #25965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25966000 0! #25966500 1! #25966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25967000 0! #25967500 1! #25967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25968000 0! #25968500 1! #25968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25969000 0! #25969500 1! #25969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25970000 0! #25970500 1! #25970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25971000 0! #25971500 1! #25971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25972000 0! #25972500 1! #25972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25973000 0! #25973500 1! #25973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25974000 0! #25974500 1! #25974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25975000 0! #25975500 1! #25975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25976000 0! #25976500 1! #25976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25977000 0! #25977500 1! #25977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25978000 0! #25978500 1! #25978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25979000 0! #25979500 1! #25979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25980000 0! #25980500 1! #25980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25981000 0! #25981500 1! #25981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25982000 0! #25982500 1! #25982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25983000 0! #25983500 1! #25983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25984000 0! #25984500 1! #25984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25985000 0! #25985500 1! #25985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25986000 0! #25986500 1! #25986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25987000 0! #25987500 1! #25987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #25987700 b10 g b1101000 c #25988000 0! #25988500 1! #25988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25989000 0! #25989500 1! #25989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25990000 0! #25990500 1! #25990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25991000 0! #25991500 1! #25991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25992000 0! #25992500 1! #25992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25993000 0! #25993500 1! #25993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25994000 0! #25994500 1! #25994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25995000 0! #25995500 1! #25995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25996000 0! #25996500 1! #25996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25997000 0! #25997500 1! #25997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #25998000 0! #25998500 1! #25998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #25999000 0! #25999500 1! #25999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26000000 0! #26000500 1! #26000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26001000 0! #26001500 1! #26001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26002000 0! #26002500 1! #26002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26003000 0! #26003500 1! #26003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26004000 0! #26004500 1! #26004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26005000 0! #26005500 1! #26005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26006000 0! #26006500 1! #26006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26007000 0! #26007500 1! #26007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26008000 0! #26008500 1! #26008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26009000 0! #26009500 1! #26009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26010000 0! #26010500 1! #26010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26011000 0! #26011500 1! #26011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26012000 0! #26012500 1! #26012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26013000 0! #26013500 1! #26013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26014000 0! #26014500 1! #26014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26015000 0! #26015500 1! #26015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26016000 0! #26016500 1! #26016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26017000 0! #26017500 1! #26017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26018000 0! #26018500 1! #26018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26019000 0! #26019500 1! #26019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26020000 0! #26020500 1! #26020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26021000 0! #26021500 1! #26021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26022000 0! #26022500 1! #26022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26023000 0! #26023500 1! #26023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26024000 0! #26024500 1! #26024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26025000 0! #26025500 1! #26025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26026000 0! #26026500 1! #26026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26027000 0! #26027500 1! #26027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26028000 0! #26028500 1! #26028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26029000 0! #26029500 1! #26029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26030000 0! #26030500 1! #26030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26031000 0! #26031500 1! #26031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26032000 0! #26032500 1! #26032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26033000 0! #26033500 1! #26033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26034000 0! #26034500 1! #26034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26035000 0! #26035500 1! #26035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26036000 0! #26036500 1! #26036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26037000 0! #26037500 1! #26037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26038000 0! #26038500 1! #26038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26039000 0! #26039500 1! #26039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26040000 0! #26040500 1! #26040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26041000 0! #26041500 1! #26041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26042000 0! #26042500 1! #26042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26043000 0! #26043500 1! #26043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26044000 0! #26044500 1! #26044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26045000 0! #26045500 1! #26045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26046000 0! #26046500 1! #26046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26047000 0! #26047500 1! #26047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26048000 0! #26048500 1! #26048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26049000 0! #26049500 1! #26049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26050000 0! #26050500 1! #26050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26051000 0! #26051500 1! #26051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26052000 0! #26052500 1! #26052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26053000 0! #26053500 1! #26053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26054000 0! #26054500 1! #26054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26055000 0! #26055500 1! #26055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26056000 0! #26056500 1! #26056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26057000 0! #26057500 1! #26057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26058000 0! #26058500 1! #26058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26059000 0! #26059500 1! #26059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26060000 0! #26060500 1! #26060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26061000 0! #26061500 1! #26061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26062000 0! #26062500 1! #26062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26063000 0! #26063500 1! #26063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26064000 0! #26064500 1! #26064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26065000 0! #26065500 1! #26065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26066000 0! #26066500 1! #26066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26067000 0! #26067500 1! #26067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26068000 0! #26068500 1! #26068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26069000 0! #26069500 1! #26069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26070000 0! #26070500 1! #26070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26071000 0! #26071500 1! #26071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26072000 0! #26072500 1! #26072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26073000 0! #26073500 1! #26073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26074000 0! #26074500 1! #26074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26075000 0! #26075500 1! #26075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26076000 0! #26076500 1! #26076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26077000 0! #26077500 1! #26077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26078000 0! #26078500 1! #26078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26079000 0! #26079500 1! #26079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26080000 0! #26080500 1! #26080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26081000 0! #26081500 1! #26081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26082000 0! #26082500 1! #26082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26083000 0! #26083500 1! #26083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26084000 0! #26084500 1! #26084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26085000 0! #26085500 1! #26085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26086000 0! #26086500 1! #26086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26087000 0! #26087500 1! #26087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26088000 0! #26088500 1! #26088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26089000 0! #26089500 1! #26089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #26090000 0! #26090500 1! #26090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26091000 0! #26091500 1! #26091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26092000 0! #26092500 1! #26092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26093000 0! #26093500 1! #26093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26094000 0! #26094500 1! #26094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26095000 0! #26095500 1! #26095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26096000 0! #26096500 1! #26096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26097000 0! #26097500 1! #26097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26098000 0! #26098500 1! #26098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26099000 0! #26099500 1! #26099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26100000 0! #26100500 1! #26100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26101000 0! #26101500 1! #26101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26102000 0! #26102500 1! #26102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26103000 0! #26103500 1! #26103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26104000 0! #26104500 1! #26104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26105000 0! #26105500 1! #26105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26106000 0! #26106500 1! #26106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26107000 0! #26107500 1! #26107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26108000 0! #26108500 1! #26108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26109000 0! #26109500 1! #26109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26110000 0! #26110500 1! #26110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26111000 0! #26111500 1! #26111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26112000 0! #26112500 1! #26112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26113000 0! #26113500 1! #26113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26114000 0! #26114500 1! #26114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26115000 0! #26115500 1! #26115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26116000 0! #26116500 1! #26116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26117000 0! #26117500 1! #26117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26118000 0! #26118500 1! #26118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26119000 0! #26119500 1! #26119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26120000 0! #26120500 1! #26120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26121000 0! #26121500 1! #26121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26122000 0! #26122500 1! #26122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26123000 0! #26123500 1! #26123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26124000 0! #26124500 1! #26124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26125000 0! #26125500 1! #26125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26126000 0! #26126500 1! #26126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26127000 0! #26127500 1! #26127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26128000 0! #26128500 1! #26128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26129000 0! #26129500 1! #26129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26130000 0! #26130500 1! #26130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26131000 0! #26131500 1! #26131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26132000 0! #26132500 1! #26132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26133000 0! #26133500 1! #26133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26134000 0! #26134500 1! #26134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26135000 0! #26135500 1! #26135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26136000 0! #26136500 1! #26136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26137000 0! #26137500 1! #26137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26138000 0! #26138500 1! #26138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26139000 0! #26139500 1! #26139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26140000 0! #26140500 1! #26140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26141000 0! #26141500 1! #26141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26142000 0! #26142500 1! #26142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26143000 0! #26143500 1! #26143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26144000 0! #26144500 1! #26144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26145000 0! #26145500 1! #26145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26146000 0! #26146500 1! #26146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26147000 0! #26147500 1! #26147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26148000 0! #26148500 1! #26148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26149000 0! #26149500 1! #26149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26150000 0! #26150500 1! #26150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26151000 0! #26151500 1! #26151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26152000 0! #26152500 1! #26152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26153000 0! #26153500 1! #26153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26154000 0! #26154500 1! #26154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26155000 0! #26155500 1! #26155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26156000 0! #26156500 1! #26156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26157000 0! #26157500 1! #26157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26158000 0! #26158500 1! #26158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26159000 0! #26159500 1! #26159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26160000 0! #26160500 1! #26160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26161000 0! #26161500 1! #26161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26162000 0! #26162500 1! #26162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26163000 0! #26163500 1! #26163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26164000 0! #26164500 1! #26164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26165000 0! #26165500 1! #26165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26166000 0! #26166500 1! #26166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26167000 0! #26167500 1! #26167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26168000 0! #26168500 1! #26168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26169000 0! #26169500 1! #26169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26170000 0! #26170500 1! #26170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26171000 0! #26171500 1! #26171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26172000 0! #26172500 1! #26172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26173000 0! #26173500 1! #26173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26174000 0! #26174500 1! #26174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26175000 0! #26175500 1! #26175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26176000 0! #26176500 1! #26176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26177000 0! #26177500 1! #26177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26178000 0! #26178500 1! #26178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26179000 0! #26179500 1! #26179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26180000 0! #26180500 1! #26180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26181000 0! #26181500 1! #26181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26182000 0! #26182500 1! #26182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26183000 0! #26183500 1! #26183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26184000 0! #26184500 1! #26184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26185000 0! #26185500 1! #26185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26186000 0! #26186500 1! #26186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26187000 0! #26187500 1! #26187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26188000 0! #26188500 1! #26188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26189000 0! #26189500 1! #26189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26190000 0! #26190500 1! #26190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26191000 0! #26191500 1! #26191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26192000 0! #26192500 1! #26192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26193000 0! #26193500 1! #26193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26194000 0! #26194500 1! #26194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26195000 0! #26195500 1! #26195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26196000 0! #26196500 1! #26196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26197000 0! #26197500 1! #26197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26198000 0! #26198500 1! #26198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26199000 0! #26199500 1! #26199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26200000 0! #26200500 1! #26200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26201000 0! #26201500 1! #26201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26202000 0! #26202500 1! #26202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26203000 0! #26203500 1! #26203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26204000 0! #26204500 1! #26204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26205000 0! #26205500 1! #26205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26206000 0! #26206500 1! #26206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26207000 0! #26207500 1! #26207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26208000 0! #26208500 1! #26208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26209000 0! #26209500 1! #26209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26210000 0! #26210500 1! #26210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26211000 0! #26211500 1! #26211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26212000 0! #26212500 1! #26212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26213000 0! #26213500 1! #26213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26214000 0! #26214500 1! #26214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26215000 0! #26215500 1! #26215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26216000 0! #26216500 1! #26216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26217000 0! #26217500 1! #26217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26218000 0! #26218500 1! #26218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26219000 0! #26219500 1! #26219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26220000 0! #26220500 1! #26220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26221000 0! #26221500 1! #26221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26222000 0! #26222500 1! #26222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26223000 0! #26223500 1! #26223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26224000 0! #26224500 1! #26224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26225000 0! #26225500 1! #26225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26226000 0! #26226500 1! #26226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26227000 0! #26227500 1! #26227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26228000 0! #26228500 1! #26228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26229000 0! #26229500 1! #26229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26230000 0! #26230500 1! #26230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26231000 0! #26231500 1! #26231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26232000 0! #26232500 1! #26232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26233000 0! #26233500 1! #26233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26234000 0! #26234500 1! #26234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26235000 0! #26235500 1! #26235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26236000 0! #26236500 1! #26236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26237000 0! #26237500 1! #26237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26238000 0! #26238500 1! #26238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26239000 0! #26239500 1! #26239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26240000 0! #26240500 1! #26240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26241000 0! #26241500 1! #26241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26242000 0! #26242500 1! #26242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #26242700 b1 g b11010000 c #26243000 0! #26243500 1! #26243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26244000 0! #26244500 1! #26244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26245000 0! #26245500 1! #26245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26246000 0! #26246500 1! #26246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26247000 0! #26247500 1! #26247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26248000 0! #26248500 1! #26248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26249000 0! #26249500 1! #26249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26250000 0! #26250500 1! #26250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26251000 0! #26251500 1! #26251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26252000 0! #26252500 1! #26252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26253000 0! #26253500 1! #26253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26254000 0! #26254500 1! #26254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26255000 0! #26255500 1! #26255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26256000 0! #26256500 1! #26256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26257000 0! #26257500 1! #26257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26258000 0! #26258500 1! #26258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26259000 0! #26259500 1! #26259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26260000 0! #26260500 1! #26260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26261000 0! #26261500 1! #26261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26262000 0! #26262500 1! #26262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26263000 0! #26263500 1! #26263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26264000 0! #26264500 1! #26264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26265000 0! #26265500 1! #26265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26266000 0! #26266500 1! #26266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26267000 0! #26267500 1! #26267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26268000 0! #26268500 1! #26268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26269000 0! #26269500 1! #26269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26270000 0! #26270500 1! #26270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26271000 0! #26271500 1! #26271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26272000 0! #26272500 1! #26272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26273000 0! #26273500 1! #26273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26274000 0! #26274500 1! #26274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26275000 0! #26275500 1! #26275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26276000 0! #26276500 1! #26276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26277000 0! #26277500 1! #26277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26278000 0! #26278500 1! #26278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26279000 0! #26279500 1! #26279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26280000 0! #26280500 1! #26280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26281000 0! #26281500 1! #26281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26282000 0! #26282500 1! #26282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26283000 0! #26283500 1! #26283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26284000 0! #26284500 1! #26284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26285000 0! #26285500 1! #26285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26286000 0! #26286500 1! #26286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26287000 0! #26287500 1! #26287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26288000 0! #26288500 1! #26288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26289000 0! #26289500 1! #26289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26290000 0! #26290500 1! #26290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26291000 0! #26291500 1! #26291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26292000 0! #26292500 1! #26292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26293000 0! #26293500 1! #26293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26294000 0! #26294500 1! #26294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26295000 0! #26295500 1! #26295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26296000 0! #26296500 1! #26296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26297000 0! #26297500 1! #26297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26298000 0! #26298500 1! #26298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26299000 0! #26299500 1! #26299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26300000 0! #26300500 1! #26300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26301000 0! #26301500 1! #26301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26302000 0! #26302500 1! #26302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26303000 0! #26303500 1! #26303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26304000 0! #26304500 1! #26304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26305000 0! #26305500 1! #26305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26306000 0! #26306500 1! #26306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26307000 0! #26307500 1! #26307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26308000 0! #26308500 1! #26308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26309000 0! #26309500 1! #26309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26310000 0! #26310500 1! #26310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26311000 0! #26311500 1! #26311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26312000 0! #26312500 1! #26312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26313000 0! #26313500 1! #26313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26314000 0! #26314500 1! #26314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26315000 0! #26315500 1! #26315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26316000 0! #26316500 1! #26316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26317000 0! #26317500 1! #26317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26318000 0! #26318500 1! #26318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26319000 0! #26319500 1! #26319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26320000 0! #26320500 1! #26320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26321000 0! #26321500 1! #26321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26322000 0! #26322500 1! #26322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26323000 0! #26323500 1! #26323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26324000 0! #26324500 1! #26324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26325000 0! #26325500 1! #26325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26326000 0! #26326500 1! #26326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26327000 0! #26327500 1! #26327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26328000 0! #26328500 1! #26328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26329000 0! #26329500 1! #26329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26330000 0! #26330500 1! #26330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26331000 0! #26331500 1! #26331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26332000 0! #26332500 1! #26332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26333000 0! #26333500 1! #26333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26334000 0! #26334500 1! #26334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26335000 0! #26335500 1! #26335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26336000 0! #26336500 1! #26336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26337000 0! #26337500 1! #26337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26338000 0! #26338500 1! #26338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26339000 0! #26339500 1! #26339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26340000 0! #26340500 1! #26340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26341000 0! #26341500 1! #26341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26342000 0! #26342500 1! #26342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26343000 0! #26343500 1! #26343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26344000 0! #26344500 1! #26344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #26345000 0! #26345500 1! #26345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26346000 0! #26346500 1! #26346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26347000 0! #26347500 1! #26347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26348000 0! #26348500 1! #26348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26349000 0! #26349500 1! #26349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26350000 0! #26350500 1! #26350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26351000 0! #26351500 1! #26351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26352000 0! #26352500 1! #26352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26353000 0! #26353500 1! #26353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26354000 0! #26354500 1! #26354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26355000 0! #26355500 1! #26355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26356000 0! #26356500 1! #26356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26357000 0! #26357500 1! #26357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26358000 0! #26358500 1! #26358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26359000 0! #26359500 1! #26359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26360000 0! #26360500 1! #26360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26361000 0! #26361500 1! #26361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26362000 0! #26362500 1! #26362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26363000 0! #26363500 1! #26363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26364000 0! #26364500 1! #26364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26365000 0! #26365500 1! #26365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26366000 0! #26366500 1! #26366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26367000 0! #26367500 1! #26367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26368000 0! #26368500 1! #26368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26369000 0! #26369500 1! #26369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26370000 0! #26370500 1! #26370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26371000 0! #26371500 1! #26371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26372000 0! #26372500 1! #26372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26373000 0! #26373500 1! #26373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26374000 0! #26374500 1! #26374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26375000 0! #26375500 1! #26375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26376000 0! #26376500 1! #26376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26377000 0! #26377500 1! #26377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26378000 0! #26378500 1! #26378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26379000 0! #26379500 1! #26379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26380000 0! #26380500 1! #26380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26381000 0! #26381500 1! #26381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26382000 0! #26382500 1! #26382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26383000 0! #26383500 1! #26383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26384000 0! #26384500 1! #26384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26385000 0! #26385500 1! #26385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26386000 0! #26386500 1! #26386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26387000 0! #26387500 1! #26387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26388000 0! #26388500 1! #26388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26389000 0! #26389500 1! #26389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26390000 0! #26390500 1! #26390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26391000 0! #26391500 1! #26391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26392000 0! #26392500 1! #26392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26393000 0! #26393500 1! #26393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26394000 0! #26394500 1! #26394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26395000 0! #26395500 1! #26395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26396000 0! #26396500 1! #26396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26397000 0! #26397500 1! #26397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26398000 0! #26398500 1! #26398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26399000 0! #26399500 1! #26399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26400000 0! #26400500 1! #26400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26401000 0! #26401500 1! #26401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26402000 0! #26402500 1! #26402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26403000 0! #26403500 1! #26403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26404000 0! #26404500 1! #26404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26405000 0! #26405500 1! #26405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26406000 0! #26406500 1! #26406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26407000 0! #26407500 1! #26407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26408000 0! #26408500 1! #26408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26409000 0! #26409500 1! #26409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26410000 0! #26410500 1! #26410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26411000 0! #26411500 1! #26411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26412000 0! #26412500 1! #26412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26413000 0! #26413500 1! #26413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26414000 0! #26414500 1! #26414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26415000 0! #26415500 1! #26415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26416000 0! #26416500 1! #26416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26417000 0! #26417500 1! #26417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26418000 0! #26418500 1! #26418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26419000 0! #26419500 1! #26419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26420000 0! #26420500 1! #26420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26421000 0! #26421500 1! #26421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26422000 0! #26422500 1! #26422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26423000 0! #26423500 1! #26423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26424000 0! #26424500 1! #26424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26425000 0! #26425500 1! #26425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26426000 0! #26426500 1! #26426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26427000 0! #26427500 1! #26427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26428000 0! #26428500 1! #26428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26429000 0! #26429500 1! #26429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26430000 0! #26430500 1! #26430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26431000 0! #26431500 1! #26431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26432000 0! #26432500 1! #26432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26433000 0! #26433500 1! #26433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26434000 0! #26434500 1! #26434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26435000 0! #26435500 1! #26435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26436000 0! #26436500 1! #26436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26437000 0! #26437500 1! #26437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26438000 0! #26438500 1! #26438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26439000 0! #26439500 1! #26439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26440000 0! #26440500 1! #26440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26441000 0! #26441500 1! #26441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26442000 0! #26442500 1! #26442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26443000 0! #26443500 1! #26443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26444000 0! #26444500 1! #26444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26445000 0! #26445500 1! #26445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26446000 0! #26446500 1! #26446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #26447000 0! #26447500 1! #26447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26448000 0! #26448500 1! #26448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26449000 0! #26449500 1! #26449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26450000 0! #26450500 1! #26450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26451000 0! #26451500 1! #26451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26452000 0! #26452500 1! #26452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26453000 0! #26453500 1! #26453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26454000 0! #26454500 1! #26454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26455000 0! #26455500 1! #26455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26456000 0! #26456500 1! #26456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26457000 0! #26457500 1! #26457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26458000 0! #26458500 1! #26458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26459000 0! #26459500 1! #26459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26460000 0! #26460500 1! #26460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26461000 0! #26461500 1! #26461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26462000 0! #26462500 1! #26462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26463000 0! #26463500 1! #26463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26464000 0! #26464500 1! #26464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26465000 0! #26465500 1! #26465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26466000 0! #26466500 1! #26466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26467000 0! #26467500 1! #26467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26468000 0! #26468500 1! #26468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26469000 0! #26469500 1! #26469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26470000 0! #26470500 1! #26470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26471000 0! #26471500 1! #26471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26472000 0! #26472500 1! #26472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26473000 0! #26473500 1! #26473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26474000 0! #26474500 1! #26474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26475000 0! #26475500 1! #26475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26476000 0! #26476500 1! #26476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26477000 0! #26477500 1! #26477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26478000 0! #26478500 1! #26478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26479000 0! #26479500 1! #26479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26480000 0! #26480500 1! #26480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26481000 0! #26481500 1! #26481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26482000 0! #26482500 1! #26482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26483000 0! #26483500 1! #26483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26484000 0! #26484500 1! #26484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26485000 0! #26485500 1! #26485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26486000 0! #26486500 1! #26486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26487000 0! #26487500 1! #26487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26488000 0! #26488500 1! #26488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26489000 0! #26489500 1! #26489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26490000 0! #26490500 1! #26490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26491000 0! #26491500 1! #26491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26492000 0! #26492500 1! #26492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26493000 0! #26493500 1! #26493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26494000 0! #26494500 1! #26494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26495000 0! #26495500 1! #26495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26496000 0! #26496500 1! #26496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26497000 0! #26497500 1! #26497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #26497700 b0 g b10100001 c 1e 1h #26498000 0! #26498500 1! #26498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26499000 0! #26499500 1! #26499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26500000 0! #26500500 1! #26500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26501000 0! #26501500 1! #26501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26502000 0! #26502500 1! #26502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26503000 0! #26503500 1! #26503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26504000 0! #26504500 1! #26504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26505000 0! #26505500 1! #26505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26506000 0! #26506500 1! #26506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26507000 0! #26507500 1! #26507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26508000 0! #26508500 1! #26508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26509000 0! #26509500 1! #26509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26510000 0! #26510500 1! #26510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26511000 0! #26511500 1! #26511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26512000 0! #26512500 1! #26512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26513000 0! #26513500 1! #26513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26514000 0! #26514500 1! #26514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26515000 0! #26515500 1! #26515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26516000 0! #26516500 1! #26516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26517000 0! #26517500 1! #26517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26518000 0! #26518500 1! #26518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26519000 0! #26519500 1! #26519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26520000 0! #26520500 1! #26520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26521000 0! #26521500 1! #26521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26522000 0! #26522500 1! #26522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26523000 0! #26523500 1! #26523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26524000 0! #26524500 1! #26524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26525000 0! #26525500 1! #26525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26526000 0! #26526500 1! #26526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26527000 0! #26527500 1! #26527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26528000 0! #26528500 1! #26528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26529000 0! #26529500 1! #26529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26530000 0! #26530500 1! #26530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26531000 0! #26531500 1! #26531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26532000 0! #26532500 1! #26532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26533000 0! #26533500 1! #26533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26534000 0! #26534500 1! #26534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26535000 0! #26535500 1! #26535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26536000 0! #26536500 1! #26536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26537000 0! #26537500 1! #26537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26538000 0! #26538500 1! #26538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26539000 0! #26539500 1! #26539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26540000 0! #26540500 1! #26540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26541000 0! #26541500 1! #26541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26542000 0! #26542500 1! #26542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26543000 0! #26543500 1! #26543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26544000 0! #26544500 1! #26544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26545000 0! #26545500 1! #26545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26546000 0! #26546500 1! #26546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26547000 0! #26547500 1! #26547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26548000 0! #26548500 1! #26548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26549000 0! #26549500 1! #26549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26550000 0! #26550500 1! #26550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26551000 0! #26551500 1! #26551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26552000 0! #26552500 1! #26552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26553000 0! #26553500 1! #26553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26554000 0! #26554500 1! #26554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26555000 0! #26555500 1! #26555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26556000 0! #26556500 1! #26556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26557000 0! #26557500 1! #26557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26558000 0! #26558500 1! #26558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26559000 0! #26559500 1! #26559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26560000 0! #26560500 1! #26560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26561000 0! #26561500 1! #26561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26562000 0! #26562500 1! #26562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26563000 0! #26563500 1! #26563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26564000 0! #26564500 1! #26564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26565000 0! #26565500 1! #26565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26566000 0! #26566500 1! #26566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26567000 0! #26567500 1! #26567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26568000 0! #26568500 1! #26568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26569000 0! #26569500 1! #26569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26570000 0! #26570500 1! #26570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26571000 0! #26571500 1! #26571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26572000 0! #26572500 1! #26572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26573000 0! #26573500 1! #26573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26574000 0! #26574500 1! #26574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26575000 0! #26575500 1! #26575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26576000 0! #26576500 1! #26576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26577000 0! #26577500 1! #26577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26578000 0! #26578500 1! #26578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26579000 0! #26579500 1! #26579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26580000 0! #26580500 1! #26580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26581000 0! #26581500 1! #26581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26582000 0! #26582500 1! #26582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26583000 0! #26583500 1! #26583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26584000 0! #26584500 1! #26584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26585000 0! #26585500 1! #26585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26586000 0! #26586500 1! #26586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26587000 0! #26587500 1! #26587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26588000 0! #26588500 1! #26588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26589000 0! #26589500 1! #26589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26590000 0! #26590500 1! #26590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26591000 0! #26591500 1! #26591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26592000 0! #26592500 1! #26592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26593000 0! #26593500 1! #26593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26594000 0! #26594500 1! #26594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26595000 0! #26595500 1! #26595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26596000 0! #26596500 1! #26596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26597000 0! #26597500 1! #26597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26598000 0! #26598500 1! #26598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26599000 0! #26599500 1! #26599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #26599700 b1 q 1d 0j 0O #26599900 b10100101 ^ #26600000 0! #26600500 1! #26600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26601000 0! #26601500 1! #26601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26602000 0! #26602500 1! #26602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26603000 0! #26603500 1! #26603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26604000 0! #26604500 1! #26604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26605000 0! #26605500 1! #26605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26606000 0! #26606500 1! #26606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26607000 0! #26607500 1! #26607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26608000 0! #26608500 1! #26608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26609000 0! #26609500 1! #26609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26610000 0! #26610500 1! #26610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26611000 0! #26611500 1! #26611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26612000 0! #26612500 1! #26612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26613000 0! #26613500 1! #26613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26614000 0! #26614500 1! #26614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26615000 0! #26615500 1! #26615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26616000 0! #26616500 1! #26616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26617000 0! #26617500 1! #26617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26618000 0! #26618500 1! #26618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26619000 0! #26619500 1! #26619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26620000 0! #26620500 1! #26620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26621000 0! #26621500 1! #26621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26622000 0! #26622500 1! #26622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26623000 0! #26623500 1! #26623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26624000 0! #26624500 1! #26624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26625000 0! #26625500 1! #26625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26626000 0! #26626500 1! #26626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26627000 0! #26627500 1! #26627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26628000 0! #26628500 1! #26628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26629000 0! #26629500 1! #26629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26630000 0! #26630500 1! #26630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26631000 0! #26631500 1! #26631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26632000 0! #26632500 1! #26632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26633000 0! #26633500 1! #26633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26634000 0! #26634500 1! #26634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26635000 0! #26635500 1! #26635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26636000 0! #26636500 1! #26636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26637000 0! #26637500 1! #26637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26638000 0! #26638500 1! #26638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26639000 0! #26639500 1! #26639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26640000 0! #26640500 1! #26640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26641000 0! #26641500 1! #26641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26642000 0! #26642500 1! #26642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26643000 0! #26643500 1! #26643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26644000 0! #26644500 1! #26644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26645000 0! #26645500 1! #26645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26646000 0! #26646500 1! #26646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26647000 0! #26647500 1! #26647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26648000 0! #26648500 1! #26648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26649000 0! #26649500 1! #26649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26650000 0! #26650500 1! #26650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26651000 0! #26651500 1! #26651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26652000 0! #26652500 1! #26652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26653000 0! #26653500 1! #26653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26654000 0! #26654500 1! #26654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26655000 0! #26655500 1! #26655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26656000 0! #26656500 1! #26656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26657000 0! #26657500 1! #26657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26658000 0! #26658500 1! #26658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26659000 0! #26659500 1! #26659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26660000 0! #26660500 1! #26660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26661000 0! #26661500 1! #26661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26662000 0! #26662500 1! #26662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26663000 0! #26663500 1! #26663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26664000 0! #26664500 1! #26664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26665000 0! #26665500 1! #26665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26666000 0! #26666500 1! #26666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26667000 0! #26667500 1! #26667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26668000 0! #26668500 1! #26668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26669000 0! #26669500 1! #26669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26670000 0! #26670500 1! #26670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26671000 0! #26671500 1! #26671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26672000 0! #26672500 1! #26672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26673000 0! #26673500 1! #26673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26674000 0! #26674500 1! #26674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26675000 0! #26675500 1! #26675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26676000 0! #26676500 1! #26676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26677000 0! #26677500 1! #26677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26678000 0! #26678500 1! #26678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26679000 0! #26679500 1! #26679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26680000 0! #26680500 1! #26680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26681000 0! #26681500 1! #26681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26682000 0! #26682500 1! #26682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26683000 0! #26683500 1! #26683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26684000 0! #26684500 1! #26684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26685000 0! #26685500 1! #26685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26686000 0! #26686500 1! #26686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26687000 0! #26687500 1! #26687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26688000 0! #26688500 1! #26688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26689000 0! #26689500 1! #26689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26690000 0! #26690500 1! #26690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26691000 0! #26691500 1! #26691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26692000 0! #26692500 1! #26692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26693000 0! #26693500 1! #26693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26694000 0! #26694500 1! #26694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26695000 0! #26695500 1! #26695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26696000 0! #26696500 1! #26696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26697000 0! #26697500 1! #26697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26698000 0! #26698500 1! #26698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26699000 0! #26699500 1! #26699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26700000 0! #26700500 1! #26700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26701000 0! #26701500 1! #26701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26702000 0! #26702500 1! #26702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26703000 0! #26703500 1! #26703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26704000 0! #26704500 1! #26704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26705000 0! #26705500 1! #26705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26706000 0! #26706500 1! #26706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26707000 0! #26707500 1! #26707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26708000 0! #26708500 1! #26708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26709000 0! #26709500 1! #26709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26710000 0! #26710500 1! #26710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26711000 0! #26711500 1! #26711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26712000 0! #26712500 1! #26712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26713000 0! #26713500 1! #26713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26714000 0! #26714500 1! #26714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26715000 0! #26715500 1! #26715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26716000 0! #26716500 1! #26716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26717000 0! #26717500 1! #26717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26718000 0! #26718500 1! #26718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26719000 0! #26719500 1! #26719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26720000 0! #26720500 1! #26720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26721000 0! #26721500 1! #26721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26722000 0! #26722500 1! #26722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26723000 0! #26723500 1! #26723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26724000 0! #26724500 1! #26724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26725000 0! #26725500 1! #26725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26726000 0! #26726500 1! #26726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26727000 0! #26727500 1! #26727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26728000 0! #26728500 1! #26728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26729000 0! #26729500 1! #26729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26730000 0! #26730500 1! #26730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26731000 0! #26731500 1! #26731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26732000 0! #26732500 1! #26732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26733000 0! #26733500 1! #26733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26734000 0! #26734500 1! #26734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26735000 0! #26735500 1! #26735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26736000 0! #26736500 1! #26736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26737000 0! #26737500 1! #26737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26738000 0! #26738500 1! #26738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26739000 0! #26739500 1! #26739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26740000 0! #26740500 1! #26740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26741000 0! #26741500 1! #26741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26742000 0! #26742500 1! #26742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26743000 0! #26743500 1! #26743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26744000 0! #26744500 1! #26744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26745000 0! #26745500 1! #26745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26746000 0! #26746500 1! #26746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26747000 0! #26747500 1! #26747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26748000 0! #26748500 1! #26748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26749000 0! #26749500 1! #26749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26750000 0! #26750500 1! #26750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26751000 0! #26751500 1! #26751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26752000 0! #26752500 1! #26752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #26752700 b111 g b1000010 c 0e 0h #26753000 0! #26753500 1! #26753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26754000 0! #26754500 1! #26754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26755000 0! #26755500 1! #26755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26756000 0! #26756500 1! #26756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26757000 0! #26757500 1! #26757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26758000 0! #26758500 1! #26758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26759000 0! #26759500 1! #26759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26760000 0! #26760500 1! #26760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26761000 0! #26761500 1! #26761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26762000 0! #26762500 1! #26762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26763000 0! #26763500 1! #26763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26764000 0! #26764500 1! #26764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26765000 0! #26765500 1! #26765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26766000 0! #26766500 1! #26766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26767000 0! #26767500 1! #26767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26768000 0! #26768500 1! #26768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26769000 0! #26769500 1! #26769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26770000 0! #26770500 1! #26770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26771000 0! #26771500 1! #26771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26772000 0! #26772500 1! #26772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26773000 0! #26773500 1! #26773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26774000 0! #26774500 1! #26774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26775000 0! #26775500 1! #26775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26776000 0! #26776500 1! #26776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26777000 0! #26777500 1! #26777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26778000 0! #26778500 1! #26778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26779000 0! #26779500 1! #26779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26780000 0! #26780500 1! #26780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26781000 0! #26781500 1! #26781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26782000 0! #26782500 1! #26782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26783000 0! #26783500 1! #26783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26784000 0! #26784500 1! #26784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26785000 0! #26785500 1! #26785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26786000 0! #26786500 1! #26786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26787000 0! #26787500 1! #26787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26788000 0! #26788500 1! #26788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26789000 0! #26789500 1! #26789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26790000 0! #26790500 1! #26790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26791000 0! #26791500 1! #26791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26792000 0! #26792500 1! #26792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26793000 0! #26793500 1! #26793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26794000 0! #26794500 1! #26794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26795000 0! #26795500 1! #26795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26796000 0! #26796500 1! #26796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26797000 0! #26797500 1! #26797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26798000 0! #26798500 1! #26798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26799000 0! #26799500 1! #26799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26800000 0! #26800500 1! #26800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26801000 0! #26801500 1! #26801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26802000 0! #26802500 1! #26802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26803000 0! #26803500 1! #26803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26804000 0! #26804500 1! #26804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26805000 0! #26805500 1! #26805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26806000 0! #26806500 1! #26806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26807000 0! #26807500 1! #26807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26808000 0! #26808500 1! #26808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26809000 0! #26809500 1! #26809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26810000 0! #26810500 1! #26810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26811000 0! #26811500 1! #26811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26812000 0! #26812500 1! #26812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26813000 0! #26813500 1! #26813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26814000 0! #26814500 1! #26814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26815000 0! #26815500 1! #26815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26816000 0! #26816500 1! #26816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26817000 0! #26817500 1! #26817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26818000 0! #26818500 1! #26818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26819000 0! #26819500 1! #26819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26820000 0! #26820500 1! #26820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26821000 0! #26821500 1! #26821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26822000 0! #26822500 1! #26822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26823000 0! #26823500 1! #26823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26824000 0! #26824500 1! #26824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26825000 0! #26825500 1! #26825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26826000 0! #26826500 1! #26826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26827000 0! #26827500 1! #26827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26828000 0! #26828500 1! #26828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26829000 0! #26829500 1! #26829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26830000 0! #26830500 1! #26830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26831000 0! #26831500 1! #26831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26832000 0! #26832500 1! #26832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26833000 0! #26833500 1! #26833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26834000 0! #26834500 1! #26834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26835000 0! #26835500 1! #26835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26836000 0! #26836500 1! #26836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26837000 0! #26837500 1! #26837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26838000 0! #26838500 1! #26838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26839000 0! #26839500 1! #26839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26840000 0! #26840500 1! #26840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26841000 0! #26841500 1! #26841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26842000 0! #26842500 1! #26842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26843000 0! #26843500 1! #26843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26844000 0! #26844500 1! #26844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26845000 0! #26845500 1! #26845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26846000 0! #26846500 1! #26846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26847000 0! #26847500 1! #26847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26848000 0! #26848500 1! #26848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26849000 0! #26849500 1! #26849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26850000 0! #26850500 1! #26850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26851000 0! #26851500 1! #26851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26852000 0! #26852500 1! #26852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26853000 0! #26853500 1! #26853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26854000 0! #26854500 1! #26854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #26854700 1j b100 q 1i 1O #26855000 0! #26855500 1! #26855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26856000 0! #26856500 1! #26856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26857000 0! #26857500 1! #26857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000001 C #26858000 0! #26858500 1! #26858600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26859000 0! #26859500 1! #26859600 1E 1F 1G b100000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26860000 0! #26860500 1! #26860600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26861000 0! #26861500 1! #26861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #26862000 0! #26862500 1! #26862600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26863000 0! #26863500 1! #26863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26864000 0! #26864500 1! #26864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26865000 0! #26865500 1! #26865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26866000 0! #26866500 1! #26866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26867000 0! #26867500 1! #26867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26868000 0! #26868500 1! #26868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26869000 0! #26869500 1! #26869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26870000 0! #26870500 1! #26870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26871000 0! #26871500 1! #26871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26872000 0! #26872500 1! #26872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26873000 0! #26873500 1! #26873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26874000 0! #26874500 1! #26874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26875000 0! #26875500 1! #26875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26876000 0! #26876500 1! #26876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26877000 0! #26877500 1! #26877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26878000 0! #26878500 1! #26878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26879000 0! #26879500 1! #26879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26880000 0! #26880500 1! #26880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26881000 0! #26881500 1! #26881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26882000 0! #26882500 1! #26882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26883000 0! #26883500 1! #26883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26884000 0! #26884500 1! #26884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26885000 0! #26885500 1! #26885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26886000 0! #26886500 1! #26886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26887000 0! #26887500 1! #26887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26888000 0! #26888500 1! #26888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26889000 0! #26889500 1! #26889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26890000 0! #26890500 1! #26890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26891000 0! #26891500 1! #26891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26892000 0! #26892500 1! #26892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26893000 0! #26893500 1! #26893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26894000 0! #26894500 1! #26894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26895000 0! #26895500 1! #26895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26896000 0! #26896500 1! #26896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26897000 0! #26897500 1! #26897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26898000 0! #26898500 1! #26898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26899000 0! #26899500 1! #26899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26900000 0! #26900500 1! #26900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26901000 0! #26901500 1! #26901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26902000 0! #26902500 1! #26902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26903000 0! #26903500 1! #26903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26904000 0! #26904500 1! #26904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26905000 0! #26905500 1! #26905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26906000 0! #26906500 1! #26906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26907000 0! #26907500 1! #26907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26908000 0! #26908500 1! #26908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26909000 0! #26909500 1! #26909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26910000 0! #26910500 1! #26910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26911000 0! #26911500 1! #26911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26912000 0! #26912500 1! #26912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26913000 0! #26913500 1! #26913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26914000 0! #26914500 1! #26914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26915000 0! #26915500 1! #26915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26916000 0! #26916500 1! #26916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26917000 0! #26917500 1! #26917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26918000 0! #26918500 1! #26918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26919000 0! #26919500 1! #26919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26920000 0! #26920500 1! #26920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26921000 0! #26921500 1! #26921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26922000 0! #26922500 1! #26922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26923000 0! #26923500 1! #26923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26924000 0! #26924500 1! #26924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26925000 0! #26925500 1! #26925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26926000 0! #26926500 1! #26926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26927000 0! #26927500 1! #26927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26928000 0! #26928500 1! #26928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26929000 0! #26929500 1! #26929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26930000 0! #26930500 1! #26930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26931000 0! #26931500 1! #26931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26932000 0! #26932500 1! #26932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26933000 0! #26933500 1! #26933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26934000 0! #26934500 1! #26934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26935000 0! #26935500 1! #26935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26936000 0! #26936500 1! #26936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26937000 0! #26937500 1! #26937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26938000 0! #26938500 1! #26938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26939000 0! #26939500 1! #26939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26940000 0! #26940500 1! #26940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26941000 0! #26941500 1! #26941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26942000 0! #26942500 1! #26942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26943000 0! #26943500 1! #26943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26944000 0! #26944500 1! #26944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26945000 0! #26945500 1! #26945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26946000 0! #26946500 1! #26946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26947000 0! #26947500 1! #26947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26948000 0! #26948500 1! #26948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26949000 0! #26949500 1! #26949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26950000 0! #26950500 1! #26950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26951000 0! #26951500 1! #26951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26952000 0! #26952500 1! #26952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26953000 0! #26953500 1! #26953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26954000 0! #26954500 1! #26954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26955000 0! #26955500 1! #26955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26956000 0! #26956500 1! #26956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26957000 0! #26957500 1! #26957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26958000 0! #26958500 1! #26958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26959000 0! #26959500 1! #26959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26960000 0! #26960500 1! #26960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26961000 0! #26961500 1! #26961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26962000 0! #26962500 1! #26962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26963000 0! #26963500 1! #26963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26964000 0! #26964500 1! #26964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26965000 0! #26965500 1! #26965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26966000 0! #26966500 1! #26966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26967000 0! #26967500 1! #26967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26968000 0! #26968500 1! #26968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26969000 0! #26969500 1! #26969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26970000 0! #26970500 1! #26970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26971000 0! #26971500 1! #26971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26972000 0! #26972500 1! #26972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26973000 0! #26973500 1! #26973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26974000 0! #26974500 1! #26974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26975000 0! #26975500 1! #26975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26976000 0! #26976500 1! #26976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26977000 0! #26977500 1! #26977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26978000 0! #26978500 1! #26978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26979000 0! #26979500 1! #26979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26980000 0! #26980500 1! #26980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26981000 0! #26981500 1! #26981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26982000 0! #26982500 1! #26982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26983000 0! #26983500 1! #26983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26984000 0! #26984500 1! #26984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26985000 0! #26985500 1! #26985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26986000 0! #26986500 1! #26986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26987000 0! #26987500 1! #26987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26988000 0! #26988500 1! #26988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26989000 0! #26989500 1! #26989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26990000 0! #26990500 1! #26990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26991000 0! #26991500 1! #26991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26992000 0! #26992500 1! #26992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26993000 0! #26993500 1! #26993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26994000 0! #26994500 1! #26994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26995000 0! #26995500 1! #26995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26996000 0! #26996500 1! #26996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26997000 0! #26997500 1! #26997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #26998000 0! #26998500 1! #26998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #26999000 0! #26999500 1! #26999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27000000 0! #27000500 1! #27000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27001000 0! #27001500 1! #27001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27002000 0! #27002500 1! #27002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27003000 0! #27003500 1! #27003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27004000 0! #27004500 1! #27004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27005000 0! #27005500 1! #27005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27006000 0! #27006500 1! #27006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27007000 0! #27007500 1! #27007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #27007700 b1001011 ^ b10000101 c #27008000 0! #27008500 1! #27008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27009000 0! #27009500 1! #27009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27010000 0! #27010500 1! #27010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27011000 0! #27011500 1! #27011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27012000 0! #27012500 1! #27012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27013000 0! #27013500 1! #27013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27014000 0! #27014500 1! #27014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27015000 0! #27015500 1! #27015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27016000 0! #27016500 1! #27016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27017000 0! #27017500 1! #27017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27018000 0! #27018500 1! #27018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27019000 0! #27019500 1! #27019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27020000 0! #27020500 1! #27020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27021000 0! #27021500 1! #27021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27022000 0! #27022500 1! #27022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27023000 0! #27023500 1! #27023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27024000 0! #27024500 1! #27024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27025000 0! #27025500 1! #27025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27026000 0! #27026500 1! #27026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27027000 0! #27027500 1! #27027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27028000 0! #27028500 1! #27028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27029000 0! #27029500 1! #27029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27030000 0! #27030500 1! #27030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27031000 0! #27031500 1! #27031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27032000 0! #27032500 1! #27032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27033000 0! #27033500 1! #27033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27034000 0! #27034500 1! #27034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27035000 0! #27035500 1! #27035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27036000 0! #27036500 1! #27036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27037000 0! #27037500 1! #27037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27038000 0! #27038500 1! #27038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27039000 0! #27039500 1! #27039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27040000 0! #27040500 1! #27040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27041000 0! #27041500 1! #27041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27042000 0! #27042500 1! #27042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27043000 0! #27043500 1! #27043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27044000 0! #27044500 1! #27044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27045000 0! #27045500 1! #27045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27046000 0! #27046500 1! #27046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27047000 0! #27047500 1! #27047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27048000 0! #27048500 1! #27048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27049000 0! #27049500 1! #27049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27050000 0! #27050500 1! #27050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27051000 0! #27051500 1! #27051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27052000 0! #27052500 1! #27052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27053000 0! #27053500 1! #27053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27054000 0! #27054500 1! #27054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27055000 0! #27055500 1! #27055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27056000 0! #27056500 1! #27056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27057000 0! #27057500 1! #27057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27058000 0! #27058500 1! #27058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27059000 0! #27059500 1! #27059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27060000 0! #27060500 1! #27060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27061000 0! #27061500 1! #27061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27062000 0! #27062500 1! #27062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27063000 0! #27063500 1! #27063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27064000 0! #27064500 1! #27064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27065000 0! #27065500 1! #27065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27066000 0! #27066500 1! #27066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27067000 0! #27067500 1! #27067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27068000 0! #27068500 1! #27068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27069000 0! #27069500 1! #27069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27070000 0! #27070500 1! #27070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27071000 0! #27071500 1! #27071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27072000 0! #27072500 1! #27072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27073000 0! #27073500 1! #27073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27074000 0! #27074500 1! #27074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27075000 0! #27075500 1! #27075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27076000 0! #27076500 1! #27076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27077000 0! #27077500 1! #27077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27078000 0! #27078500 1! #27078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27079000 0! #27079500 1! #27079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27080000 0! #27080500 1! #27080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27081000 0! #27081500 1! #27081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27082000 0! #27082500 1! #27082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27083000 0! #27083500 1! #27083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27084000 0! #27084500 1! #27084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27085000 0! #27085500 1! #27085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27086000 0! #27086500 1! #27086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27087000 0! #27087500 1! #27087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27088000 0! #27088500 1! #27088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27089000 0! #27089500 1! #27089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27090000 0! #27090500 1! #27090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27091000 0! #27091500 1! #27091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27092000 0! #27092500 1! #27092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27093000 0! #27093500 1! #27093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27094000 0! #27094500 1! #27094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27095000 0! #27095500 1! #27095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27096000 0! #27096500 1! #27096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27097000 0! #27097500 1! #27097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27098000 0! #27098500 1! #27098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27099000 0! #27099500 1! #27099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27100000 0! #27100500 1! #27100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27101000 0! #27101500 1! #27101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27102000 0! #27102500 1! #27102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27103000 0! #27103500 1! #27103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27104000 0! #27104500 1! #27104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27105000 0! #27105500 1! #27105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27106000 0! #27106500 1! #27106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27107000 0! #27107500 1! #27107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27108000 0! #27108500 1! #27108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27109000 0! #27109500 1! #27109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #27109700 0i 0j 0O #27110000 0! #27110500 1! #27110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27111000 0! #27111500 1! #27111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27112000 0! #27112500 1! #27112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27113000 0! #27113500 1! #27113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27114000 0! #27114500 1! #27114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27115000 0! #27115500 1! #27115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27116000 0! #27116500 1! #27116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27117000 0! #27117500 1! #27117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27118000 0! #27118500 1! #27118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27119000 0! #27119500 1! #27119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27120000 0! #27120500 1! #27120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27121000 0! #27121500 1! #27121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27122000 0! #27122500 1! #27122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27123000 0! #27123500 1! #27123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27124000 0! #27124500 1! #27124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27125000 0! #27125500 1! #27125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27126000 0! #27126500 1! #27126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27127000 0! #27127500 1! #27127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27128000 0! #27128500 1! #27128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27129000 0! #27129500 1! #27129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27130000 0! #27130500 1! #27130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27131000 0! #27131500 1! #27131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27132000 0! #27132500 1! #27132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27133000 0! #27133500 1! #27133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27134000 0! #27134500 1! #27134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27135000 0! #27135500 1! #27135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27136000 0! #27136500 1! #27136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27137000 0! #27137500 1! #27137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27138000 0! #27138500 1! #27138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27139000 0! #27139500 1! #27139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27140000 0! #27140500 1! #27140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27141000 0! #27141500 1! #27141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27142000 0! #27142500 1! #27142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27143000 0! #27143500 1! #27143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27144000 0! #27144500 1! #27144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27145000 0! #27145500 1! #27145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27146000 0! #27146500 1! #27146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27147000 0! #27147500 1! #27147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27148000 0! #27148500 1! #27148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27149000 0! #27149500 1! #27149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27150000 0! #27150500 1! #27150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27151000 0! #27151500 1! #27151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27152000 0! #27152500 1! #27152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27153000 0! #27153500 1! #27153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27154000 0! #27154500 1! #27154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27155000 0! #27155500 1! #27155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27156000 0! #27156500 1! #27156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27157000 0! #27157500 1! #27157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27158000 0! #27158500 1! #27158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27159000 0! #27159500 1! #27159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27160000 0! #27160500 1! #27160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27161000 0! #27161500 1! #27161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27162000 0! #27162500 1! #27162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27163000 0! #27163500 1! #27163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27164000 0! #27164500 1! #27164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27165000 0! #27165500 1! #27165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27166000 0! #27166500 1! #27166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27167000 0! #27167500 1! #27167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27168000 0! #27168500 1! #27168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27169000 0! #27169500 1! #27169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27170000 0! #27170500 1! #27170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27171000 0! #27171500 1! #27171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27172000 0! #27172500 1! #27172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27173000 0! #27173500 1! #27173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27174000 0! #27174500 1! #27174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27175000 0! #27175500 1! #27175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27176000 0! #27176500 1! #27176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27177000 0! #27177500 1! #27177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27178000 0! #27178500 1! #27178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27179000 0! #27179500 1! #27179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27180000 0! #27180500 1! #27180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27181000 0! #27181500 1! #27181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27182000 0! #27182500 1! #27182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27183000 0! #27183500 1! #27183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27184000 0! #27184500 1! #27184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27185000 0! #27185500 1! #27185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27186000 0! #27186500 1! #27186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27187000 0! #27187500 1! #27187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27188000 0! #27188500 1! #27188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27189000 0! #27189500 1! #27189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27190000 0! #27190500 1! #27190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27191000 0! #27191500 1! #27191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27192000 0! #27192500 1! #27192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27193000 0! #27193500 1! #27193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27194000 0! #27194500 1! #27194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27195000 0! #27195500 1! #27195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27196000 0! #27196500 1! #27196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27197000 0! #27197500 1! #27197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27198000 0! #27198500 1! #27198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27199000 0! #27199500 1! #27199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27200000 0! #27200500 1! #27200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27201000 0! #27201500 1! #27201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27202000 0! #27202500 1! #27202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27203000 0! #27203500 1! #27203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27204000 0! #27204500 1! #27204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27205000 0! #27205500 1! #27205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27206000 0! #27206500 1! #27206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27207000 0! #27207500 1! #27207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27208000 0! #27208500 1! #27208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27209000 0! #27209500 1! #27209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27210000 0! #27210500 1! #27210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27211000 0! #27211500 1! #27211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27212000 0! #27212500 1! #27212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27213000 0! #27213500 1! #27213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27214000 0! #27214500 1! #27214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27215000 0! #27215500 1! #27215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27216000 0! #27216500 1! #27216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27217000 0! #27217500 1! #27217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27218000 0! #27218500 1! #27218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27219000 0! #27219500 1! #27219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27220000 0! #27220500 1! #27220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27221000 0! #27221500 1! #27221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27222000 0! #27222500 1! #27222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27223000 0! #27223500 1! #27223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27224000 0! #27224500 1! #27224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27225000 0! #27225500 1! #27225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27226000 0! #27226500 1! #27226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27227000 0! #27227500 1! #27227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27228000 0! #27228500 1! #27228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27229000 0! #27229500 1! #27229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27230000 0! #27230500 1! #27230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27231000 0! #27231500 1! #27231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27232000 0! #27232500 1! #27232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27233000 0! #27233500 1! #27233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27234000 0! #27234500 1! #27234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27235000 0! #27235500 1! #27235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27236000 0! #27236500 1! #27236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27237000 0! #27237500 1! #27237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27238000 0! #27238500 1! #27238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27239000 0! #27239500 1! #27239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27240000 0! #27240500 1! #27240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27241000 0! #27241500 1! #27241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27242000 0! #27242500 1! #27242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27243000 0! #27243500 1! #27243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27244000 0! #27244500 1! #27244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27245000 0! #27245500 1! #27245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27246000 0! #27246500 1! #27246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27247000 0! #27247500 1! #27247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27248000 0! #27248500 1! #27248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27249000 0! #27249500 1! #27249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27250000 0! #27250500 1! #27250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27251000 0! #27251500 1! #27251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27252000 0! #27252500 1! #27252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27253000 0! #27253500 1! #27253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27254000 0! #27254500 1! #27254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27255000 0! #27255500 1! #27255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27256000 0! #27256500 1! #27256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27257000 0! #27257500 1! #27257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27258000 0! #27258500 1! #27258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27259000 0! #27259500 1! #27259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27260000 0! #27260500 1! #27260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27261000 0! #27261500 1! #27261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27262000 0! #27262500 1! #27262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #27262700 b10010111 ^ b110 g b1010 c #27263000 0! #27263500 1! #27263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27264000 0! #27264500 1! #27264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27265000 0! #27265500 1! #27265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27266000 0! #27266500 1! #27266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27267000 0! #27267500 1! #27267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27268000 0! #27268500 1! #27268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27269000 0! #27269500 1! #27269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27270000 0! #27270500 1! #27270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27271000 0! #27271500 1! #27271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27272000 0! #27272500 1! #27272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27273000 0! #27273500 1! #27273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27274000 0! #27274500 1! #27274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27275000 0! #27275500 1! #27275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27276000 0! #27276500 1! #27276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27277000 0! #27277500 1! #27277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27278000 0! #27278500 1! #27278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27279000 0! #27279500 1! #27279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27280000 0! #27280500 1! #27280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27281000 0! #27281500 1! #27281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27282000 0! #27282500 1! #27282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27283000 0! #27283500 1! #27283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27284000 0! #27284500 1! #27284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27285000 0! #27285500 1! #27285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27286000 0! #27286500 1! #27286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27287000 0! #27287500 1! #27287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27288000 0! #27288500 1! #27288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27289000 0! #27289500 1! #27289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27290000 0! #27290500 1! #27290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27291000 0! #27291500 1! #27291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27292000 0! #27292500 1! #27292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27293000 0! #27293500 1! #27293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27294000 0! #27294500 1! #27294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27295000 0! #27295500 1! #27295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27296000 0! #27296500 1! #27296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27297000 0! #27297500 1! #27297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27298000 0! #27298500 1! #27298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27299000 0! #27299500 1! #27299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27300000 0! #27300500 1! #27300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27301000 0! #27301500 1! #27301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27302000 0! #27302500 1! #27302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27303000 0! #27303500 1! #27303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27304000 0! #27304500 1! #27304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27305000 0! #27305500 1! #27305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27306000 0! #27306500 1! #27306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27307000 0! #27307500 1! #27307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27308000 0! #27308500 1! #27308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27309000 0! #27309500 1! #27309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27310000 0! #27310500 1! #27310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27311000 0! #27311500 1! #27311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27312000 0! #27312500 1! #27312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27313000 0! #27313500 1! #27313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27314000 0! #27314500 1! #27314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27315000 0! #27315500 1! #27315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27316000 0! #27316500 1! #27316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27317000 0! #27317500 1! #27317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27318000 0! #27318500 1! #27318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27319000 0! #27319500 1! #27319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27320000 0! #27320500 1! #27320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27321000 0! #27321500 1! #27321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27322000 0! #27322500 1! #27322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27323000 0! #27323500 1! #27323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27324000 0! #27324500 1! #27324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27325000 0! #27325500 1! #27325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27326000 0! #27326500 1! #27326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27327000 0! #27327500 1! #27327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27328000 0! #27328500 1! #27328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27329000 0! #27329500 1! #27329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27330000 0! #27330500 1! #27330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27331000 0! #27331500 1! #27331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27332000 0! #27332500 1! #27332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27333000 0! #27333500 1! #27333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27334000 0! #27334500 1! #27334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27335000 0! #27335500 1! #27335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27336000 0! #27336500 1! #27336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27337000 0! #27337500 1! #27337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27338000 0! #27338500 1! #27338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27339000 0! #27339500 1! #27339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27340000 0! #27340500 1! #27340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27341000 0! #27341500 1! #27341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27342000 0! #27342500 1! #27342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27343000 0! #27343500 1! #27343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27344000 0! #27344500 1! #27344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27345000 0! #27345500 1! #27345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27346000 0! #27346500 1! #27346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27347000 0! #27347500 1! #27347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27348000 0! #27348500 1! #27348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27349000 0! #27349500 1! #27349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27350000 0! #27350500 1! #27350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27351000 0! #27351500 1! #27351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27352000 0! #27352500 1! #27352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27353000 0! #27353500 1! #27353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27354000 0! #27354500 1! #27354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27355000 0! #27355500 1! #27355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27356000 0! #27356500 1! #27356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27357000 0! #27357500 1! #27357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27358000 0! #27358500 1! #27358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27359000 0! #27359500 1! #27359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27360000 0! #27360500 1! #27360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27361000 0! #27361500 1! #27361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27362000 0! #27362500 1! #27362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27363000 0! #27363500 1! #27363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27364000 0! #27364500 1! #27364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #27364700 1j 1O #27365000 0! #27365500 1! #27365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27366000 0! #27366500 1! #27366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27367000 0! #27367500 1! #27367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27368000 0! #27368500 1! #27368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27369000 0! #27369500 1! #27369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27370000 0! #27370500 1! #27370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27371000 0! #27371500 1! #27371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27372000 0! #27372500 1! #27372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27373000 0! #27373500 1! #27373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27374000 0! #27374500 1! #27374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27375000 0! #27375500 1! #27375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27376000 0! #27376500 1! #27376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27377000 0! #27377500 1! #27377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27378000 0! #27378500 1! #27378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27379000 0! #27379500 1! #27379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27380000 0! #27380500 1! #27380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27381000 0! #27381500 1! #27381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27382000 0! #27382500 1! #27382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27383000 0! #27383500 1! #27383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27384000 0! #27384500 1! #27384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27385000 0! #27385500 1! #27385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27386000 0! #27386500 1! #27386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27387000 0! #27387500 1! #27387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27388000 0! #27388500 1! #27388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27389000 0! #27389500 1! #27389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27390000 0! #27390500 1! #27390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27391000 0! #27391500 1! #27391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27392000 0! #27392500 1! #27392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27393000 0! #27393500 1! #27393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27394000 0! #27394500 1! #27394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27395000 0! #27395500 1! #27395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27396000 0! #27396500 1! #27396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27397000 0! #27397500 1! #27397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27398000 0! #27398500 1! #27398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27399000 0! #27399500 1! #27399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27400000 0! #27400500 1! #27400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27401000 0! #27401500 1! #27401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27402000 0! #27402500 1! #27402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27403000 0! #27403500 1! #27403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27404000 0! #27404500 1! #27404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27405000 0! #27405500 1! #27405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27406000 0! #27406500 1! #27406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27407000 0! #27407500 1! #27407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27408000 0! #27408500 1! #27408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27409000 0! #27409500 1! #27409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27410000 0! #27410500 1! #27410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27411000 0! #27411500 1! #27411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27412000 0! #27412500 1! #27412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27413000 0! #27413500 1! #27413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27414000 0! #27414500 1! #27414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27415000 0! #27415500 1! #27415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27416000 0! #27416500 1! #27416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27417000 0! #27417500 1! #27417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27418000 0! #27418500 1! #27418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27419000 0! #27419500 1! #27419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27420000 0! #27420500 1! #27420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27421000 0! #27421500 1! #27421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27422000 0! #27422500 1! #27422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27423000 0! #27423500 1! #27423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27424000 0! #27424500 1! #27424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27425000 0! #27425500 1! #27425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27426000 0! #27426500 1! #27426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27427000 0! #27427500 1! #27427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27428000 0! #27428500 1! #27428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27429000 0! #27429500 1! #27429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27430000 0! #27430500 1! #27430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27431000 0! #27431500 1! #27431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27432000 0! #27432500 1! #27432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27433000 0! #27433500 1! #27433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27434000 0! #27434500 1! #27434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27435000 0! #27435500 1! #27435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27436000 0! #27436500 1! #27436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27437000 0! #27437500 1! #27437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27438000 0! #27438500 1! #27438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27439000 0! #27439500 1! #27439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27440000 0! #27440500 1! #27440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27441000 0! #27441500 1! #27441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27442000 0! #27442500 1! #27442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27443000 0! #27443500 1! #27443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27444000 0! #27444500 1! #27444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27445000 0! #27445500 1! #27445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27446000 0! #27446500 1! #27446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27447000 0! #27447500 1! #27447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27448000 0! #27448500 1! #27448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27449000 0! #27449500 1! #27449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27450000 0! #27450500 1! #27450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27451000 0! #27451500 1! #27451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27452000 0! #27452500 1! #27452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27453000 0! #27453500 1! #27453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27454000 0! #27454500 1! #27454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27455000 0! #27455500 1! #27455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27456000 0! #27456500 1! #27456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27457000 0! #27457500 1! #27457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27458000 0! #27458500 1! #27458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27459000 0! #27459500 1! #27459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27460000 0! #27460500 1! #27460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27461000 0! #27461500 1! #27461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27462000 0! #27462500 1! #27462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27463000 0! #27463500 1! #27463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27464000 0! #27464500 1! #27464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27465000 0! #27465500 1! #27465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27466000 0! #27466500 1! #27466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27467000 0! #27467500 1! #27467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27468000 0! #27468500 1! #27468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27469000 0! #27469500 1! #27469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27470000 0! #27470500 1! #27470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27471000 0! #27471500 1! #27471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27472000 0! #27472500 1! #27472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27473000 0! #27473500 1! #27473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27474000 0! #27474500 1! #27474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27475000 0! #27475500 1! #27475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27476000 0! #27476500 1! #27476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27477000 0! #27477500 1! #27477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27478000 0! #27478500 1! #27478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27479000 0! #27479500 1! #27479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27480000 0! #27480500 1! #27480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27481000 0! #27481500 1! #27481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27482000 0! #27482500 1! #27482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27483000 0! #27483500 1! #27483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27484000 0! #27484500 1! #27484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27485000 0! #27485500 1! #27485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27486000 0! #27486500 1! #27486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27487000 0! #27487500 1! #27487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27488000 0! #27488500 1! #27488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27489000 0! #27489500 1! #27489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27490000 0! #27490500 1! #27490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27491000 0! #27491500 1! #27491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27492000 0! #27492500 1! #27492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27493000 0! #27493500 1! #27493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27494000 0! #27494500 1! #27494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27495000 0! #27495500 1! #27495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27496000 0! #27496500 1! #27496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27497000 0! #27497500 1! #27497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27498000 0! #27498500 1! #27498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27499000 0! #27499500 1! #27499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27500000 0! #27500500 1! #27500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27501000 0! #27501500 1! #27501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27502000 0! #27502500 1! #27502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27503000 0! #27503500 1! #27503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27504000 0! #27504500 1! #27504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27505000 0! #27505500 1! #27505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27506000 0! #27506500 1! #27506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27507000 0! #27507500 1! #27507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27508000 0! #27508500 1! #27508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27509000 0! #27509500 1! #27509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27510000 0! #27510500 1! #27510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27511000 0! #27511500 1! #27511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27512000 0! #27512500 1! #27512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27513000 0! #27513500 1! #27513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27514000 0! #27514500 1! #27514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27515000 0! #27515500 1! #27515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27516000 0! #27516500 1! #27516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27517000 0! #27517500 1! #27517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #27517700 b101111 ^ b101 g b10101 c #27518000 0! #27518500 1! #27518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27519000 0! #27519500 1! #27519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27520000 0! #27520500 1! #27520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27521000 0! #27521500 1! #27521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27522000 0! #27522500 1! #27522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27523000 0! #27523500 1! #27523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27524000 0! #27524500 1! #27524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27525000 0! #27525500 1! #27525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27526000 0! #27526500 1! #27526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27527000 0! #27527500 1! #27527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27528000 0! #27528500 1! #27528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27529000 0! #27529500 1! #27529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27530000 0! #27530500 1! #27530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27531000 0! #27531500 1! #27531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27532000 0! #27532500 1! #27532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27533000 0! #27533500 1! #27533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27534000 0! #27534500 1! #27534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27535000 0! #27535500 1! #27535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27536000 0! #27536500 1! #27536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27537000 0! #27537500 1! #27537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27538000 0! #27538500 1! #27538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27539000 0! #27539500 1! #27539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27540000 0! #27540500 1! #27540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27541000 0! #27541500 1! #27541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27542000 0! #27542500 1! #27542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27543000 0! #27543500 1! #27543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27544000 0! #27544500 1! #27544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27545000 0! #27545500 1! #27545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27546000 0! #27546500 1! #27546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27547000 0! #27547500 1! #27547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27548000 0! #27548500 1! #27548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27549000 0! #27549500 1! #27549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27550000 0! #27550500 1! #27550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27551000 0! #27551500 1! #27551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27552000 0! #27552500 1! #27552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27553000 0! #27553500 1! #27553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27554000 0! #27554500 1! #27554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27555000 0! #27555500 1! #27555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27556000 0! #27556500 1! #27556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27557000 0! #27557500 1! #27557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27558000 0! #27558500 1! #27558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27559000 0! #27559500 1! #27559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27560000 0! #27560500 1! #27560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27561000 0! #27561500 1! #27561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27562000 0! #27562500 1! #27562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27563000 0! #27563500 1! #27563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27564000 0! #27564500 1! #27564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27565000 0! #27565500 1! #27565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27566000 0! #27566500 1! #27566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27567000 0! #27567500 1! #27567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27568000 0! #27568500 1! #27568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27569000 0! #27569500 1! #27569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27570000 0! #27570500 1! #27570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27571000 0! #27571500 1! #27571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27572000 0! #27572500 1! #27572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27573000 0! #27573500 1! #27573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27574000 0! #27574500 1! #27574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27575000 0! #27575500 1! #27575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27576000 0! #27576500 1! #27576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27577000 0! #27577500 1! #27577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27578000 0! #27578500 1! #27578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27579000 0! #27579500 1! #27579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27580000 0! #27580500 1! #27580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27581000 0! #27581500 1! #27581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27582000 0! #27582500 1! #27582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27583000 0! #27583500 1! #27583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27584000 0! #27584500 1! #27584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27585000 0! #27585500 1! #27585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27586000 0! #27586500 1! #27586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27587000 0! #27587500 1! #27587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27588000 0! #27588500 1! #27588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27589000 0! #27589500 1! #27589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27590000 0! #27590500 1! #27590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27591000 0! #27591500 1! #27591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27592000 0! #27592500 1! #27592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27593000 0! #27593500 1! #27593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27594000 0! #27594500 1! #27594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27595000 0! #27595500 1! #27595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27596000 0! #27596500 1! #27596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27597000 0! #27597500 1! #27597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27598000 0! #27598500 1! #27598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27599000 0! #27599500 1! #27599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27600000 0! #27600500 1! #27600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27601000 0! #27601500 1! #27601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27602000 0! #27602500 1! #27602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27603000 0! #27603500 1! #27603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27604000 0! #27604500 1! #27604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27605000 0! #27605500 1! #27605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27606000 0! #27606500 1! #27606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27607000 0! #27607500 1! #27607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27608000 0! #27608500 1! #27608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27609000 0! #27609500 1! #27609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27610000 0! #27610500 1! #27610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27611000 0! #27611500 1! #27611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27612000 0! #27612500 1! #27612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27613000 0! #27613500 1! #27613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27614000 0! #27614500 1! #27614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27615000 0! #27615500 1! #27615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27616000 0! #27616500 1! #27616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27617000 0! #27617500 1! #27617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27618000 0! #27618500 1! #27618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27619000 0! #27619500 1! #27619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #27619700 0j 0O #27620000 0! #27620500 1! #27620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27621000 0! #27621500 1! #27621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27622000 0! #27622500 1! #27622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27623000 0! #27623500 1! #27623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27624000 0! #27624500 1! #27624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27625000 0! #27625500 1! #27625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27626000 0! #27626500 1! #27626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27627000 0! #27627500 1! #27627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27628000 0! #27628500 1! #27628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27629000 0! #27629500 1! #27629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27630000 0! #27630500 1! #27630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27631000 0! #27631500 1! #27631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27632000 0! #27632500 1! #27632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27633000 0! #27633500 1! #27633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27634000 0! #27634500 1! #27634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27635000 0! #27635500 1! #27635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27636000 0! #27636500 1! #27636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27637000 0! #27637500 1! #27637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27638000 0! #27638500 1! #27638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27639000 0! #27639500 1! #27639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27640000 0! #27640500 1! #27640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27641000 0! #27641500 1! #27641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27642000 0! #27642500 1! #27642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27643000 0! #27643500 1! #27643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27644000 0! #27644500 1! #27644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27645000 0! #27645500 1! #27645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27646000 0! #27646500 1! #27646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27647000 0! #27647500 1! #27647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27648000 0! #27648500 1! #27648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27649000 0! #27649500 1! #27649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27650000 0! #27650500 1! #27650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27651000 0! #27651500 1! #27651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27652000 0! #27652500 1! #27652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27653000 0! #27653500 1! #27653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27654000 0! #27654500 1! #27654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27655000 0! #27655500 1! #27655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27656000 0! #27656500 1! #27656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27657000 0! #27657500 1! #27657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27658000 0! #27658500 1! #27658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27659000 0! #27659500 1! #27659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27660000 0! #27660500 1! #27660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27661000 0! #27661500 1! #27661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27662000 0! #27662500 1! #27662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27663000 0! #27663500 1! #27663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27664000 0! #27664500 1! #27664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27665000 0! #27665500 1! #27665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27666000 0! #27666500 1! #27666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27667000 0! #27667500 1! #27667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27668000 0! #27668500 1! #27668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27669000 0! #27669500 1! #27669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27670000 0! #27670500 1! #27670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27671000 0! #27671500 1! #27671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27672000 0! #27672500 1! #27672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27673000 0! #27673500 1! #27673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27674000 0! #27674500 1! #27674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27675000 0! #27675500 1! #27675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27676000 0! #27676500 1! #27676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27677000 0! #27677500 1! #27677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27678000 0! #27678500 1! #27678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27679000 0! #27679500 1! #27679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27680000 0! #27680500 1! #27680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27681000 0! #27681500 1! #27681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27682000 0! #27682500 1! #27682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27683000 0! #27683500 1! #27683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27684000 0! #27684500 1! #27684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27685000 0! #27685500 1! #27685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27686000 0! #27686500 1! #27686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27687000 0! #27687500 1! #27687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27688000 0! #27688500 1! #27688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27689000 0! #27689500 1! #27689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27690000 0! #27690500 1! #27690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27691000 0! #27691500 1! #27691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27692000 0! #27692500 1! #27692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27693000 0! #27693500 1! #27693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27694000 0! #27694500 1! #27694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27695000 0! #27695500 1! #27695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27696000 0! #27696500 1! #27696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27697000 0! #27697500 1! #27697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27698000 0! #27698500 1! #27698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27699000 0! #27699500 1! #27699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27700000 0! #27700500 1! #27700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27701000 0! #27701500 1! #27701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27702000 0! #27702500 1! #27702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27703000 0! #27703500 1! #27703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27704000 0! #27704500 1! #27704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27705000 0! #27705500 1! #27705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27706000 0! #27706500 1! #27706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27707000 0! #27707500 1! #27707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27708000 0! #27708500 1! #27708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27709000 0! #27709500 1! #27709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27710000 0! #27710500 1! #27710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27711000 0! #27711500 1! #27711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27712000 0! #27712500 1! #27712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27713000 0! #27713500 1! #27713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27714000 0! #27714500 1! #27714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27715000 0! #27715500 1! #27715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27716000 0! #27716500 1! #27716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27717000 0! #27717500 1! #27717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27718000 0! #27718500 1! #27718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27719000 0! #27719500 1! #27719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27720000 0! #27720500 1! #27720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27721000 0! #27721500 1! #27721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27722000 0! #27722500 1! #27722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27723000 0! #27723500 1! #27723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27724000 0! #27724500 1! #27724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27725000 0! #27725500 1! #27725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27726000 0! #27726500 1! #27726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27727000 0! #27727500 1! #27727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27728000 0! #27728500 1! #27728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27729000 0! #27729500 1! #27729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27730000 0! #27730500 1! #27730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27731000 0! #27731500 1! #27731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27732000 0! #27732500 1! #27732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27733000 0! #27733500 1! #27733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27734000 0! #27734500 1! #27734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27735000 0! #27735500 1! #27735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27736000 0! #27736500 1! #27736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27737000 0! #27737500 1! #27737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27738000 0! #27738500 1! #27738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27739000 0! #27739500 1! #27739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27740000 0! #27740500 1! #27740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27741000 0! #27741500 1! #27741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27742000 0! #27742500 1! #27742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27743000 0! #27743500 1! #27743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27744000 0! #27744500 1! #27744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27745000 0! #27745500 1! #27745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27746000 0! #27746500 1! #27746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27747000 0! #27747500 1! #27747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27748000 0! #27748500 1! #27748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27749000 0! #27749500 1! #27749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27750000 0! #27750500 1! #27750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27751000 0! #27751500 1! #27751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27752000 0! #27752500 1! #27752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27753000 0! #27753500 1! #27753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27754000 0! #27754500 1! #27754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27755000 0! #27755500 1! #27755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27756000 0! #27756500 1! #27756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27757000 0! #27757500 1! #27757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27758000 0! #27758500 1! #27758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27759000 0! #27759500 1! #27759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27760000 0! #27760500 1! #27760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27761000 0! #27761500 1! #27761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27762000 0! #27762500 1! #27762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27763000 0! #27763500 1! #27763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27764000 0! #27764500 1! #27764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27765000 0! #27765500 1! #27765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27766000 0! #27766500 1! #27766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27767000 0! #27767500 1! #27767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27768000 0! #27768500 1! #27768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27769000 0! #27769500 1! #27769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27770000 0! #27770500 1! #27770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27771000 0! #27771500 1! #27771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27772000 0! #27772500 1! #27772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #27772700 b1011111 ^ b100 g b101010 c #27773000 0! #27773500 1! #27773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27774000 0! #27774500 1! #27774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27775000 0! #27775500 1! #27775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27776000 0! #27776500 1! #27776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27777000 0! #27777500 1! #27777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27778000 0! #27778500 1! #27778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27779000 0! #27779500 1! #27779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27780000 0! #27780500 1! #27780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27781000 0! #27781500 1! #27781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27782000 0! #27782500 1! #27782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27783000 0! #27783500 1! #27783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27784000 0! #27784500 1! #27784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27785000 0! #27785500 1! #27785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27786000 0! #27786500 1! #27786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27787000 0! #27787500 1! #27787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27788000 0! #27788500 1! #27788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27789000 0! #27789500 1! #27789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27790000 0! #27790500 1! #27790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27791000 0! #27791500 1! #27791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27792000 0! #27792500 1! #27792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27793000 0! #27793500 1! #27793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27794000 0! #27794500 1! #27794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27795000 0! #27795500 1! #27795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27796000 0! #27796500 1! #27796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27797000 0! #27797500 1! #27797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27798000 0! #27798500 1! #27798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27799000 0! #27799500 1! #27799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27800000 0! #27800500 1! #27800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27801000 0! #27801500 1! #27801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27802000 0! #27802500 1! #27802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27803000 0! #27803500 1! #27803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27804000 0! #27804500 1! #27804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27805000 0! #27805500 1! #27805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27806000 0! #27806500 1! #27806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27807000 0! #27807500 1! #27807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27808000 0! #27808500 1! #27808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27809000 0! #27809500 1! #27809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27810000 0! #27810500 1! #27810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27811000 0! #27811500 1! #27811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27812000 0! #27812500 1! #27812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27813000 0! #27813500 1! #27813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27814000 0! #27814500 1! #27814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27815000 0! #27815500 1! #27815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27816000 0! #27816500 1! #27816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27817000 0! #27817500 1! #27817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27818000 0! #27818500 1! #27818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27819000 0! #27819500 1! #27819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27820000 0! #27820500 1! #27820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27821000 0! #27821500 1! #27821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27822000 0! #27822500 1! #27822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27823000 0! #27823500 1! #27823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27824000 0! #27824500 1! #27824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27825000 0! #27825500 1! #27825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27826000 0! #27826500 1! #27826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27827000 0! #27827500 1! #27827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27828000 0! #27828500 1! #27828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27829000 0! #27829500 1! #27829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27830000 0! #27830500 1! #27830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27831000 0! #27831500 1! #27831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27832000 0! #27832500 1! #27832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27833000 0! #27833500 1! #27833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27834000 0! #27834500 1! #27834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27835000 0! #27835500 1! #27835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27836000 0! #27836500 1! #27836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27837000 0! #27837500 1! #27837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27838000 0! #27838500 1! #27838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27839000 0! #27839500 1! #27839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27840000 0! #27840500 1! #27840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27841000 0! #27841500 1! #27841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27842000 0! #27842500 1! #27842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27843000 0! #27843500 1! #27843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27844000 0! #27844500 1! #27844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27845000 0! #27845500 1! #27845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27846000 0! #27846500 1! #27846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27847000 0! #27847500 1! #27847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27848000 0! #27848500 1! #27848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27849000 0! #27849500 1! #27849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27850000 0! #27850500 1! #27850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27851000 0! #27851500 1! #27851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27852000 0! #27852500 1! #27852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27853000 0! #27853500 1! #27853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27854000 0! #27854500 1! #27854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27855000 0! #27855500 1! #27855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27856000 0! #27856500 1! #27856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27857000 0! #27857500 1! #27857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27858000 0! #27858500 1! #27858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27859000 0! #27859500 1! #27859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27860000 0! #27860500 1! #27860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27861000 0! #27861500 1! #27861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27862000 0! #27862500 1! #27862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27863000 0! #27863500 1! #27863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27864000 0! #27864500 1! #27864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27865000 0! #27865500 1! #27865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27866000 0! #27866500 1! #27866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27867000 0! #27867500 1! #27867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27868000 0! #27868500 1! #27868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27869000 0! #27869500 1! #27869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27870000 0! #27870500 1! #27870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27871000 0! #27871500 1! #27871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27872000 0! #27872500 1! #27872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27873000 0! #27873500 1! #27873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27874000 0! #27874500 1! #27874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #27874700 1j 0j #27875000 0! #27875500 1! #27875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27876000 0! #27876500 1! #27876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27877000 0! #27877500 1! #27877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27878000 0! #27878500 1! #27878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27879000 0! #27879500 1! #27879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27880000 0! #27880500 1! #27880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27881000 0! #27881500 1! #27881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27882000 0! #27882500 1! #27882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27883000 0! #27883500 1! #27883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27884000 0! #27884500 1! #27884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27885000 0! #27885500 1! #27885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27886000 0! #27886500 1! #27886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27887000 0! #27887500 1! #27887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27888000 0! #27888500 1! #27888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27889000 0! #27889500 1! #27889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27890000 0! #27890500 1! #27890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27891000 0! #27891500 1! #27891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27892000 0! #27892500 1! #27892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27893000 0! #27893500 1! #27893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27894000 0! #27894500 1! #27894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27895000 0! #27895500 1! #27895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27896000 0! #27896500 1! #27896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27897000 0! #27897500 1! #27897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27898000 0! #27898500 1! #27898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27899000 0! #27899500 1! #27899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27900000 0! #27900500 1! #27900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27901000 0! #27901500 1! #27901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27902000 0! #27902500 1! #27902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27903000 0! #27903500 1! #27903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27904000 0! #27904500 1! #27904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27905000 0! #27905500 1! #27905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27906000 0! #27906500 1! #27906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27907000 0! #27907500 1! #27907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27908000 0! #27908500 1! #27908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27909000 0! #27909500 1! #27909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27910000 0! #27910500 1! #27910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27911000 0! #27911500 1! #27911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27912000 0! #27912500 1! #27912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27913000 0! #27913500 1! #27913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27914000 0! #27914500 1! #27914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27915000 0! #27915500 1! #27915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27916000 0! #27916500 1! #27916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27917000 0! #27917500 1! #27917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27918000 0! #27918500 1! #27918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27919000 0! #27919500 1! #27919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27920000 0! #27920500 1! #27920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27921000 0! #27921500 1! #27921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27922000 0! #27922500 1! #27922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27923000 0! #27923500 1! #27923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27924000 0! #27924500 1! #27924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27925000 0! #27925500 1! #27925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27926000 0! #27926500 1! #27926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27927000 0! #27927500 1! #27927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27928000 0! #27928500 1! #27928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27929000 0! #27929500 1! #27929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27930000 0! #27930500 1! #27930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27931000 0! #27931500 1! #27931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27932000 0! #27932500 1! #27932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27933000 0! #27933500 1! #27933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27934000 0! #27934500 1! #27934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27935000 0! #27935500 1! #27935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27936000 0! #27936500 1! #27936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27937000 0! #27937500 1! #27937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27938000 0! #27938500 1! #27938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27939000 0! #27939500 1! #27939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27940000 0! #27940500 1! #27940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27941000 0! #27941500 1! #27941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27942000 0! #27942500 1! #27942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27943000 0! #27943500 1! #27943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27944000 0! #27944500 1! #27944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27945000 0! #27945500 1! #27945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27946000 0! #27946500 1! #27946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27947000 0! #27947500 1! #27947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27948000 0! #27948500 1! #27948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27949000 0! #27949500 1! #27949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27950000 0! #27950500 1! #27950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27951000 0! #27951500 1! #27951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27952000 0! #27952500 1! #27952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27953000 0! #27953500 1! #27953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27954000 0! #27954500 1! #27954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27955000 0! #27955500 1! #27955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27956000 0! #27956500 1! #27956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27957000 0! #27957500 1! #27957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27958000 0! #27958500 1! #27958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27959000 0! #27959500 1! #27959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27960000 0! #27960500 1! #27960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27961000 0! #27961500 1! #27961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27962000 0! #27962500 1! #27962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27963000 0! #27963500 1! #27963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27964000 0! #27964500 1! #27964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27965000 0! #27965500 1! #27965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27966000 0! #27966500 1! #27966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27967000 0! #27967500 1! #27967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27968000 0! #27968500 1! #27968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27969000 0! #27969500 1! #27969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27970000 0! #27970500 1! #27970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27971000 0! #27971500 1! #27971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27972000 0! #27972500 1! #27972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27973000 0! #27973500 1! #27973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27974000 0! #27974500 1! #27974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27975000 0! #27975500 1! #27975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27976000 0! #27976500 1! #27976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27977000 0! #27977500 1! #27977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27978000 0! #27978500 1! #27978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27979000 0! #27979500 1! #27979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27980000 0! #27980500 1! #27980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27981000 0! #27981500 1! #27981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27982000 0! #27982500 1! #27982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27983000 0! #27983500 1! #27983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27984000 0! #27984500 1! #27984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27985000 0! #27985500 1! #27985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27986000 0! #27986500 1! #27986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27987000 0! #27987500 1! #27987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27988000 0! #27988500 1! #27988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27989000 0! #27989500 1! #27989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27990000 0! #27990500 1! #27990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27991000 0! #27991500 1! #27991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27992000 0! #27992500 1! #27992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27993000 0! #27993500 1! #27993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27994000 0! #27994500 1! #27994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27995000 0! #27995500 1! #27995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27996000 0! #27996500 1! #27996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27997000 0! #27997500 1! #27997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #27998000 0! #27998500 1! #27998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #27999000 0! #27999500 1! #27999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28000000 0! #28000500 1! #28000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28001000 0! #28001500 1! #28001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28002000 0! #28002500 1! #28002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28003000 0! #28003500 1! #28003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28004000 0! #28004500 1! #28004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28005000 0! #28005500 1! #28005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28006000 0! #28006500 1! #28006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28007000 0! #28007500 1! #28007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28008000 0! #28008500 1! #28008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28009000 0! #28009500 1! #28009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28010000 0! #28010500 1! #28010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28011000 0! #28011500 1! #28011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28012000 0! #28012500 1! #28012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28013000 0! #28013500 1! #28013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28014000 0! #28014500 1! #28014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28015000 0! #28015500 1! #28015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28016000 0! #28016500 1! #28016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28017000 0! #28017500 1! #28017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28018000 0! #28018500 1! #28018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28019000 0! #28019500 1! #28019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28020000 0! #28020500 1! #28020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28021000 0! #28021500 1! #28021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28022000 0! #28022500 1! #28022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28023000 0! #28023500 1! #28023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28024000 0! #28024500 1! #28024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28025000 0! #28025500 1! #28025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28026000 0! #28026500 1! #28026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28027000 0! #28027500 1! #28027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #28027700 b10111111 ^ b11 g b1010100 c #28028000 0! #28028500 1! #28028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28029000 0! #28029500 1! #28029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28030000 0! #28030500 1! #28030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28031000 0! #28031500 1! #28031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28032000 0! #28032500 1! #28032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28033000 0! #28033500 1! #28033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28034000 0! #28034500 1! #28034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28035000 0! #28035500 1! #28035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28036000 0! #28036500 1! #28036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28037000 0! #28037500 1! #28037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28038000 0! #28038500 1! #28038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28039000 0! #28039500 1! #28039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28040000 0! #28040500 1! #28040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28041000 0! #28041500 1! #28041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28042000 0! #28042500 1! #28042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28043000 0! #28043500 1! #28043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28044000 0! #28044500 1! #28044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28045000 0! #28045500 1! #28045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28046000 0! #28046500 1! #28046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28047000 0! #28047500 1! #28047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28048000 0! #28048500 1! #28048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28049000 0! #28049500 1! #28049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28050000 0! #28050500 1! #28050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28051000 0! #28051500 1! #28051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28052000 0! #28052500 1! #28052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28053000 0! #28053500 1! #28053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28054000 0! #28054500 1! #28054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28055000 0! #28055500 1! #28055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28056000 0! #28056500 1! #28056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28057000 0! #28057500 1! #28057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28058000 0! #28058500 1! #28058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28059000 0! #28059500 1! #28059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28060000 0! #28060500 1! #28060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28061000 0! #28061500 1! #28061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28062000 0! #28062500 1! #28062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28063000 0! #28063500 1! #28063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28064000 0! #28064500 1! #28064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28065000 0! #28065500 1! #28065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28066000 0! #28066500 1! #28066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28067000 0! #28067500 1! #28067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28068000 0! #28068500 1! #28068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28069000 0! #28069500 1! #28069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28070000 0! #28070500 1! #28070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28071000 0! #28071500 1! #28071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28072000 0! #28072500 1! #28072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28073000 0! #28073500 1! #28073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28074000 0! #28074500 1! #28074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28075000 0! #28075500 1! #28075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28076000 0! #28076500 1! #28076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28077000 0! #28077500 1! #28077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28078000 0! #28078500 1! #28078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28079000 0! #28079500 1! #28079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28080000 0! #28080500 1! #28080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28081000 0! #28081500 1! #28081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28082000 0! #28082500 1! #28082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28083000 0! #28083500 1! #28083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28084000 0! #28084500 1! #28084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28085000 0! #28085500 1! #28085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28086000 0! #28086500 1! #28086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28087000 0! #28087500 1! #28087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28088000 0! #28088500 1! #28088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28089000 0! #28089500 1! #28089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28090000 0! #28090500 1! #28090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28091000 0! #28091500 1! #28091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28092000 0! #28092500 1! #28092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28093000 0! #28093500 1! #28093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28094000 0! #28094500 1! #28094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28095000 0! #28095500 1! #28095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28096000 0! #28096500 1! #28096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28097000 0! #28097500 1! #28097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28098000 0! #28098500 1! #28098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28099000 0! #28099500 1! #28099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28100000 0! #28100500 1! #28100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28101000 0! #28101500 1! #28101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28102000 0! #28102500 1! #28102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28103000 0! #28103500 1! #28103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28104000 0! #28104500 1! #28104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28105000 0! #28105500 1! #28105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28106000 0! #28106500 1! #28106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28107000 0! #28107500 1! #28107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28108000 0! #28108500 1! #28108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28109000 0! #28109500 1! #28109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28110000 0! #28110500 1! #28110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28111000 0! #28111500 1! #28111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28112000 0! #28112500 1! #28112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28113000 0! #28113500 1! #28113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28114000 0! #28114500 1! #28114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28115000 0! #28115500 1! #28115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28116000 0! #28116500 1! #28116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28117000 0! #28117500 1! #28117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28118000 0! #28118500 1! #28118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28119000 0! #28119500 1! #28119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28120000 0! #28120500 1! #28120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28121000 0! #28121500 1! #28121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28122000 0! #28122500 1! #28122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28123000 0! #28123500 1! #28123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28124000 0! #28124500 1! #28124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28125000 0! #28125500 1! #28125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28126000 0! #28126500 1! #28126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28127000 0! #28127500 1! #28127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28128000 0! #28128500 1! #28128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28129000 0! #28129500 1! #28129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #28129700 1j 1O #28130000 0! #28130500 1! #28130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28131000 0! #28131500 1! #28131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28132000 0! #28132500 1! #28132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28133000 0! #28133500 1! #28133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28134000 0! #28134500 1! #28134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28135000 0! #28135500 1! #28135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28136000 0! #28136500 1! #28136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28137000 0! #28137500 1! #28137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28138000 0! #28138500 1! #28138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28139000 0! #28139500 1! #28139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28140000 0! #28140500 1! #28140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28141000 0! #28141500 1! #28141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28142000 0! #28142500 1! #28142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28143000 0! #28143500 1! #28143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28144000 0! #28144500 1! #28144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28145000 0! #28145500 1! #28145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28146000 0! #28146500 1! #28146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28147000 0! #28147500 1! #28147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28148000 0! #28148500 1! #28148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28149000 0! #28149500 1! #28149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28150000 0! #28150500 1! #28150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28151000 0! #28151500 1! #28151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28152000 0! #28152500 1! #28152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28153000 0! #28153500 1! #28153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28154000 0! #28154500 1! #28154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28155000 0! #28155500 1! #28155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28156000 0! #28156500 1! #28156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28157000 0! #28157500 1! #28157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28158000 0! #28158500 1! #28158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28159000 0! #28159500 1! #28159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28160000 0! #28160500 1! #28160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28161000 0! #28161500 1! #28161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28162000 0! #28162500 1! #28162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28163000 0! #28163500 1! #28163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28164000 0! #28164500 1! #28164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28165000 0! #28165500 1! #28165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28166000 0! #28166500 1! #28166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28167000 0! #28167500 1! #28167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28168000 0! #28168500 1! #28168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28169000 0! #28169500 1! #28169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28170000 0! #28170500 1! #28170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28171000 0! #28171500 1! #28171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28172000 0! #28172500 1! #28172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28173000 0! #28173500 1! #28173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28174000 0! #28174500 1! #28174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28175000 0! #28175500 1! #28175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28176000 0! #28176500 1! #28176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28177000 0! #28177500 1! #28177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28178000 0! #28178500 1! #28178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28179000 0! #28179500 1! #28179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28180000 0! #28180500 1! #28180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28181000 0! #28181500 1! #28181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28182000 0! #28182500 1! #28182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28183000 0! #28183500 1! #28183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28184000 0! #28184500 1! #28184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28185000 0! #28185500 1! #28185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28186000 0! #28186500 1! #28186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28187000 0! #28187500 1! #28187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28188000 0! #28188500 1! #28188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28189000 0! #28189500 1! #28189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28190000 0! #28190500 1! #28190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28191000 0! #28191500 1! #28191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28192000 0! #28192500 1! #28192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28193000 0! #28193500 1! #28193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28194000 0! #28194500 1! #28194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28195000 0! #28195500 1! #28195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28196000 0! #28196500 1! #28196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28197000 0! #28197500 1! #28197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28198000 0! #28198500 1! #28198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28199000 0! #28199500 1! #28199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28200000 0! #28200500 1! #28200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28201000 0! #28201500 1! #28201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28202000 0! #28202500 1! #28202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28203000 0! #28203500 1! #28203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28204000 0! #28204500 1! #28204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28205000 0! #28205500 1! #28205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28206000 0! #28206500 1! #28206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28207000 0! #28207500 1! #28207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28208000 0! #28208500 1! #28208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28209000 0! #28209500 1! #28209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28210000 0! #28210500 1! #28210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28211000 0! #28211500 1! #28211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28212000 0! #28212500 1! #28212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28213000 0! #28213500 1! #28213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28214000 0! #28214500 1! #28214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28215000 0! #28215500 1! #28215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28216000 0! #28216500 1! #28216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28217000 0! #28217500 1! #28217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28218000 0! #28218500 1! #28218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28219000 0! #28219500 1! #28219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28220000 0! #28220500 1! #28220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28221000 0! #28221500 1! #28221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28222000 0! #28222500 1! #28222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28223000 0! #28223500 1! #28223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28224000 0! #28224500 1! #28224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28225000 0! #28225500 1! #28225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28226000 0! #28226500 1! #28226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28227000 0! #28227500 1! #28227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28228000 0! #28228500 1! #28228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28229000 0! #28229500 1! #28229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28230000 0! #28230500 1! #28230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28231000 0! #28231500 1! #28231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28232000 0! #28232500 1! #28232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28233000 0! #28233500 1! #28233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28234000 0! #28234500 1! #28234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28235000 0! #28235500 1! #28235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28236000 0! #28236500 1! #28236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28237000 0! #28237500 1! #28237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28238000 0! #28238500 1! #28238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28239000 0! #28239500 1! #28239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28240000 0! #28240500 1! #28240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28241000 0! #28241500 1! #28241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28242000 0! #28242500 1! #28242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28243000 0! #28243500 1! #28243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28244000 0! #28244500 1! #28244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28245000 0! #28245500 1! #28245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28246000 0! #28246500 1! #28246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28247000 0! #28247500 1! #28247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28248000 0! #28248500 1! #28248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28249000 0! #28249500 1! #28249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28250000 0! #28250500 1! #28250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28251000 0! #28251500 1! #28251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28252000 0! #28252500 1! #28252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28253000 0! #28253500 1! #28253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28254000 0! #28254500 1! #28254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28255000 0! #28255500 1! #28255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28256000 0! #28256500 1! #28256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28257000 0! #28257500 1! #28257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28258000 0! #28258500 1! #28258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28259000 0! #28259500 1! #28259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28260000 0! #28260500 1! #28260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28261000 0! #28261500 1! #28261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28262000 0! #28262500 1! #28262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28263000 0! #28263500 1! #28263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28264000 0! #28264500 1! #28264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28265000 0! #28265500 1! #28265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28266000 0! #28266500 1! #28266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28267000 0! #28267500 1! #28267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28268000 0! #28268500 1! #28268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28269000 0! #28269500 1! #28269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28270000 0! #28270500 1! #28270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28271000 0! #28271500 1! #28271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28272000 0! #28272500 1! #28272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28273000 0! #28273500 1! #28273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28274000 0! #28274500 1! #28274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28275000 0! #28275500 1! #28275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28276000 0! #28276500 1! #28276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28277000 0! #28277500 1! #28277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28278000 0! #28278500 1! #28278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28279000 0! #28279500 1! #28279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28280000 0! #28280500 1! #28280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28281000 0! #28281500 1! #28281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28282000 0! #28282500 1! #28282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #28282700 b1111111 ^ b10 g b10101001 c #28283000 0! #28283500 1! #28283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28284000 0! #28284500 1! #28284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28285000 0! #28285500 1! #28285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28286000 0! #28286500 1! #28286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28287000 0! #28287500 1! #28287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28288000 0! #28288500 1! #28288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28289000 0! #28289500 1! #28289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28290000 0! #28290500 1! #28290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28291000 0! #28291500 1! #28291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28292000 0! #28292500 1! #28292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28293000 0! #28293500 1! #28293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28294000 0! #28294500 1! #28294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28295000 0! #28295500 1! #28295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28296000 0! #28296500 1! #28296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28297000 0! #28297500 1! #28297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28298000 0! #28298500 1! #28298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28299000 0! #28299500 1! #28299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28300000 0! #28300500 1! #28300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28301000 0! #28301500 1! #28301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28302000 0! #28302500 1! #28302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28303000 0! #28303500 1! #28303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28304000 0! #28304500 1! #28304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28305000 0! #28305500 1! #28305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28306000 0! #28306500 1! #28306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28307000 0! #28307500 1! #28307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28308000 0! #28308500 1! #28308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28309000 0! #28309500 1! #28309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28310000 0! #28310500 1! #28310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28311000 0! #28311500 1! #28311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28312000 0! #28312500 1! #28312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28313000 0! #28313500 1! #28313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28314000 0! #28314500 1! #28314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28315000 0! #28315500 1! #28315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28316000 0! #28316500 1! #28316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28317000 0! #28317500 1! #28317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28318000 0! #28318500 1! #28318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28319000 0! #28319500 1! #28319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28320000 0! #28320500 1! #28320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28321000 0! #28321500 1! #28321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28322000 0! #28322500 1! #28322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28323000 0! #28323500 1! #28323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28324000 0! #28324500 1! #28324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28325000 0! #28325500 1! #28325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28326000 0! #28326500 1! #28326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28327000 0! #28327500 1! #28327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28328000 0! #28328500 1! #28328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28329000 0! #28329500 1! #28329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28330000 0! #28330500 1! #28330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28331000 0! #28331500 1! #28331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28332000 0! #28332500 1! #28332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28333000 0! #28333500 1! #28333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28334000 0! #28334500 1! #28334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28335000 0! #28335500 1! #28335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28336000 0! #28336500 1! #28336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28337000 0! #28337500 1! #28337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28338000 0! #28338500 1! #28338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28339000 0! #28339500 1! #28339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28340000 0! #28340500 1! #28340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28341000 0! #28341500 1! #28341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28342000 0! #28342500 1! #28342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28343000 0! #28343500 1! #28343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28344000 0! #28344500 1! #28344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28345000 0! #28345500 1! #28345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28346000 0! #28346500 1! #28346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28347000 0! #28347500 1! #28347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28348000 0! #28348500 1! #28348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28349000 0! #28349500 1! #28349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28350000 0! #28350500 1! #28350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28351000 0! #28351500 1! #28351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28352000 0! #28352500 1! #28352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28353000 0! #28353500 1! #28353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28354000 0! #28354500 1! #28354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28355000 0! #28355500 1! #28355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28356000 0! #28356500 1! #28356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28357000 0! #28357500 1! #28357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28358000 0! #28358500 1! #28358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28359000 0! #28359500 1! #28359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28360000 0! #28360500 1! #28360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28361000 0! #28361500 1! #28361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28362000 0! #28362500 1! #28362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28363000 0! #28363500 1! #28363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28364000 0! #28364500 1! #28364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28365000 0! #28365500 1! #28365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28366000 0! #28366500 1! #28366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28367000 0! #28367500 1! #28367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28368000 0! #28368500 1! #28368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28369000 0! #28369500 1! #28369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28370000 0! #28370500 1! #28370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28371000 0! #28371500 1! #28371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28372000 0! #28372500 1! #28372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28373000 0! #28373500 1! #28373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28374000 0! #28374500 1! #28374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28375000 0! #28375500 1! #28375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28376000 0! #28376500 1! #28376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28377000 0! #28377500 1! #28377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28378000 0! #28378500 1! #28378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28379000 0! #28379500 1! #28379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28380000 0! #28380500 1! #28380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28381000 0! #28381500 1! #28381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28382000 0! #28382500 1! #28382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28383000 0! #28383500 1! #28383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28384000 0! #28384500 1! #28384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #28384700 0j 0O #28385000 0! #28385500 1! #28385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28386000 0! #28386500 1! #28386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28387000 0! #28387500 1! #28387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28388000 0! #28388500 1! #28388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28389000 0! #28389500 1! #28389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28390000 0! #28390500 1! #28390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28391000 0! #28391500 1! #28391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28392000 0! #28392500 1! #28392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28393000 0! #28393500 1! #28393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28394000 0! #28394500 1! #28394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28395000 0! #28395500 1! #28395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28396000 0! #28396500 1! #28396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28397000 0! #28397500 1! #28397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28398000 0! #28398500 1! #28398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28399000 0! #28399500 1! #28399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28400000 0! #28400500 1! #28400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28401000 0! #28401500 1! #28401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28402000 0! #28402500 1! #28402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28403000 0! #28403500 1! #28403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28404000 0! #28404500 1! #28404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28405000 0! #28405500 1! #28405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28406000 0! #28406500 1! #28406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28407000 0! #28407500 1! #28407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28408000 0! #28408500 1! #28408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28409000 0! #28409500 1! #28409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28410000 0! #28410500 1! #28410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28411000 0! #28411500 1! #28411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28412000 0! #28412500 1! #28412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28413000 0! #28413500 1! #28413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28414000 0! #28414500 1! #28414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28415000 0! #28415500 1! #28415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28416000 0! #28416500 1! #28416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28417000 0! #28417500 1! #28417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28418000 0! #28418500 1! #28418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28419000 0! #28419500 1! #28419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28420000 0! #28420500 1! #28420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28421000 0! #28421500 1! #28421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28422000 0! #28422500 1! #28422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28423000 0! #28423500 1! #28423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28424000 0! #28424500 1! #28424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28425000 0! #28425500 1! #28425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28426000 0! #28426500 1! #28426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28427000 0! #28427500 1! #28427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28428000 0! #28428500 1! #28428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28429000 0! #28429500 1! #28429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28430000 0! #28430500 1! #28430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28431000 0! #28431500 1! #28431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28432000 0! #28432500 1! #28432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28433000 0! #28433500 1! #28433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28434000 0! #28434500 1! #28434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28435000 0! #28435500 1! #28435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28436000 0! #28436500 1! #28436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28437000 0! #28437500 1! #28437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28438000 0! #28438500 1! #28438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28439000 0! #28439500 1! #28439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28440000 0! #28440500 1! #28440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28441000 0! #28441500 1! #28441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28442000 0! #28442500 1! #28442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28443000 0! #28443500 1! #28443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28444000 0! #28444500 1! #28444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28445000 0! #28445500 1! #28445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28446000 0! #28446500 1! #28446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28447000 0! #28447500 1! #28447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28448000 0! #28448500 1! #28448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28449000 0! #28449500 1! #28449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28450000 0! #28450500 1! #28450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28451000 0! #28451500 1! #28451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28452000 0! #28452500 1! #28452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28453000 0! #28453500 1! #28453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28454000 0! #28454500 1! #28454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28455000 0! #28455500 1! #28455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28456000 0! #28456500 1! #28456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28457000 0! #28457500 1! #28457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28458000 0! #28458500 1! #28458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28459000 0! #28459500 1! #28459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28460000 0! #28460500 1! #28460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28461000 0! #28461500 1! #28461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28462000 0! #28462500 1! #28462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28463000 0! #28463500 1! #28463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28464000 0! #28464500 1! #28464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28465000 0! #28465500 1! #28465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28466000 0! #28466500 1! #28466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28467000 0! #28467500 1! #28467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28468000 0! #28468500 1! #28468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28469000 0! #28469500 1! #28469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28470000 0! #28470500 1! #28470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28471000 0! #28471500 1! #28471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28472000 0! #28472500 1! #28472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28473000 0! #28473500 1! #28473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28474000 0! #28474500 1! #28474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28475000 0! #28475500 1! #28475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28476000 0! #28476500 1! #28476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28477000 0! #28477500 1! #28477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28478000 0! #28478500 1! #28478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28479000 0! #28479500 1! #28479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28480000 0! #28480500 1! #28480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28481000 0! #28481500 1! #28481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28482000 0! #28482500 1! #28482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28483000 0! #28483500 1! #28483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28484000 0! #28484500 1! #28484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28485000 0! #28485500 1! #28485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28486000 0! #28486500 1! #28486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28487000 0! #28487500 1! #28487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28488000 0! #28488500 1! #28488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28489000 0! #28489500 1! #28489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28490000 0! #28490500 1! #28490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28491000 0! #28491500 1! #28491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28492000 0! #28492500 1! #28492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28493000 0! #28493500 1! #28493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28494000 0! #28494500 1! #28494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28495000 0! #28495500 1! #28495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28496000 0! #28496500 1! #28496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28497000 0! #28497500 1! #28497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28498000 0! #28498500 1! #28498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28499000 0! #28499500 1! #28499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28500000 0! #28500500 1! #28500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28501000 0! #28501500 1! #28501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28502000 0! #28502500 1! #28502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28503000 0! #28503500 1! #28503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28504000 0! #28504500 1! #28504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28505000 0! #28505500 1! #28505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28506000 0! #28506500 1! #28506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28507000 0! #28507500 1! #28507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28508000 0! #28508500 1! #28508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28509000 0! #28509500 1! #28509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28510000 0! #28510500 1! #28510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28511000 0! #28511500 1! #28511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28512000 0! #28512500 1! #28512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28513000 0! #28513500 1! #28513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28514000 0! #28514500 1! #28514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28515000 0! #28515500 1! #28515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28516000 0! #28516500 1! #28516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28517000 0! #28517500 1! #28517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28518000 0! #28518500 1! #28518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28519000 0! #28519500 1! #28519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28520000 0! #28520500 1! #28520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28521000 0! #28521500 1! #28521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28522000 0! #28522500 1! #28522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28523000 0! #28523500 1! #28523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28524000 0! #28524500 1! #28524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28525000 0! #28525500 1! #28525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28526000 0! #28526500 1! #28526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28527000 0! #28527500 1! #28527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28528000 0! #28528500 1! #28528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28529000 0! #28529500 1! #28529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28530000 0! #28530500 1! #28530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28531000 0! #28531500 1! #28531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28532000 0! #28532500 1! #28532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28533000 0! #28533500 1! #28533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28534000 0! #28534500 1! #28534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28535000 0! #28535500 1! #28535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28536000 0! #28536500 1! #28536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28537000 0! #28537500 1! #28537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #28537700 b11111111 ^ b1 g b1010010 c #28538000 0! #28538500 1! #28538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28539000 0! #28539500 1! #28539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28540000 0! #28540500 1! #28540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28541000 0! #28541500 1! #28541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28542000 0! #28542500 1! #28542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28543000 0! #28543500 1! #28543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28544000 0! #28544500 1! #28544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28545000 0! #28545500 1! #28545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28546000 0! #28546500 1! #28546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28547000 0! #28547500 1! #28547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28548000 0! #28548500 1! #28548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28549000 0! #28549500 1! #28549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28550000 0! #28550500 1! #28550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28551000 0! #28551500 1! #28551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28552000 0! #28552500 1! #28552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28553000 0! #28553500 1! #28553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28554000 0! #28554500 1! #28554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28555000 0! #28555500 1! #28555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28556000 0! #28556500 1! #28556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28557000 0! #28557500 1! #28557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28558000 0! #28558500 1! #28558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28559000 0! #28559500 1! #28559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28560000 0! #28560500 1! #28560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28561000 0! #28561500 1! #28561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28562000 0! #28562500 1! #28562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28563000 0! #28563500 1! #28563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28564000 0! #28564500 1! #28564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28565000 0! #28565500 1! #28565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28566000 0! #28566500 1! #28566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28567000 0! #28567500 1! #28567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28568000 0! #28568500 1! #28568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28569000 0! #28569500 1! #28569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28570000 0! #28570500 1! #28570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28571000 0! #28571500 1! #28571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28572000 0! #28572500 1! #28572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28573000 0! #28573500 1! #28573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28574000 0! #28574500 1! #28574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28575000 0! #28575500 1! #28575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28576000 0! #28576500 1! #28576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28577000 0! #28577500 1! #28577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28578000 0! #28578500 1! #28578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28579000 0! #28579500 1! #28579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28580000 0! #28580500 1! #28580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28581000 0! #28581500 1! #28581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28582000 0! #28582500 1! #28582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28583000 0! #28583500 1! #28583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28584000 0! #28584500 1! #28584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28585000 0! #28585500 1! #28585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28586000 0! #28586500 1! #28586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28587000 0! #28587500 1! #28587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28588000 0! #28588500 1! #28588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28589000 0! #28589500 1! #28589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28590000 0! #28590500 1! #28590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28591000 0! #28591500 1! #28591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28592000 0! #28592500 1! #28592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28593000 0! #28593500 1! #28593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28594000 0! #28594500 1! #28594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28595000 0! #28595500 1! #28595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28596000 0! #28596500 1! #28596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28597000 0! #28597500 1! #28597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28598000 0! #28598500 1! #28598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28599000 0! #28599500 1! #28599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28600000 0! #28600500 1! #28600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28601000 0! #28601500 1! #28601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28602000 0! #28602500 1! #28602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28603000 0! #28603500 1! #28603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28604000 0! #28604500 1! #28604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28605000 0! #28605500 1! #28605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28606000 0! #28606500 1! #28606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28607000 0! #28607500 1! #28607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28608000 0! #28608500 1! #28608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28609000 0! #28609500 1! #28609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28610000 0! #28610500 1! #28610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28611000 0! #28611500 1! #28611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28612000 0! #28612500 1! #28612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28613000 0! #28613500 1! #28613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28614000 0! #28614500 1! #28614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28615000 0! #28615500 1! #28615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28616000 0! #28616500 1! #28616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28617000 0! #28617500 1! #28617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28618000 0! #28618500 1! #28618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28619000 0! #28619500 1! #28619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28620000 0! #28620500 1! #28620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28621000 0! #28621500 1! #28621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28622000 0! #28622500 1! #28622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28623000 0! #28623500 1! #28623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28624000 0! #28624500 1! #28624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28625000 0! #28625500 1! #28625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28626000 0! #28626500 1! #28626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28627000 0! #28627500 1! #28627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28628000 0! #28628500 1! #28628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28629000 0! #28629500 1! #28629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28630000 0! #28630500 1! #28630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28631000 0! #28631500 1! #28631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28632000 0! #28632500 1! #28632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28633000 0! #28633500 1! #28633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28634000 0! #28634500 1! #28634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28635000 0! #28635500 1! #28635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28636000 0! #28636500 1! #28636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28637000 0! #28637500 1! #28637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28638000 0! #28638500 1! #28638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28639000 0! #28639500 1! #28639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #28639700 1j 1O #28640000 0! #28640500 1! #28640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28641000 0! #28641500 1! #28641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28642000 0! #28642500 1! #28642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28643000 0! #28643500 1! #28643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28644000 0! #28644500 1! #28644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28645000 0! #28645500 1! #28645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28646000 0! #28646500 1! #28646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28647000 0! #28647500 1! #28647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28648000 0! #28648500 1! #28648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28649000 0! #28649500 1! #28649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28650000 0! #28650500 1! #28650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28651000 0! #28651500 1! #28651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28652000 0! #28652500 1! #28652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28653000 0! #28653500 1! #28653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28654000 0! #28654500 1! #28654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28655000 0! #28655500 1! #28655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28656000 0! #28656500 1! #28656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28657000 0! #28657500 1! #28657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28658000 0! #28658500 1! #28658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28659000 0! #28659500 1! #28659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28660000 0! #28660500 1! #28660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28661000 0! #28661500 1! #28661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28662000 0! #28662500 1! #28662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28663000 0! #28663500 1! #28663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28664000 0! #28664500 1! #28664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28665000 0! #28665500 1! #28665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28666000 0! #28666500 1! #28666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28667000 0! #28667500 1! #28667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28668000 0! #28668500 1! #28668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28669000 0! #28669500 1! #28669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28670000 0! #28670500 1! #28670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28671000 0! #28671500 1! #28671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28672000 0! #28672500 1! #28672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28673000 0! #28673500 1! #28673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28674000 0! #28674500 1! #28674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28675000 0! #28675500 1! #28675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28676000 0! #28676500 1! #28676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28677000 0! #28677500 1! #28677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28678000 0! #28678500 1! #28678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28679000 0! #28679500 1! #28679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28680000 0! #28680500 1! #28680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28681000 0! #28681500 1! #28681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28682000 0! #28682500 1! #28682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28683000 0! #28683500 1! #28683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28684000 0! #28684500 1! #28684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28685000 0! #28685500 1! #28685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28686000 0! #28686500 1! #28686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28687000 0! #28687500 1! #28687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28688000 0! #28688500 1! #28688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28689000 0! #28689500 1! #28689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28690000 0! #28690500 1! #28690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28691000 0! #28691500 1! #28691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28692000 0! #28692500 1! #28692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28693000 0! #28693500 1! #28693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28694000 0! #28694500 1! #28694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28695000 0! #28695500 1! #28695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28696000 0! #28696500 1! #28696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28697000 0! #28697500 1! #28697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28698000 0! #28698500 1! #28698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28699000 0! #28699500 1! #28699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28700000 0! #28700500 1! #28700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28701000 0! #28701500 1! #28701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28702000 0! #28702500 1! #28702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28703000 0! #28703500 1! #28703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28704000 0! #28704500 1! #28704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28705000 0! #28705500 1! #28705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28706000 0! #28706500 1! #28706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28707000 0! #28707500 1! #28707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28708000 0! #28708500 1! #28708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28709000 0! #28709500 1! #28709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28710000 0! #28710500 1! #28710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28711000 0! #28711500 1! #28711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28712000 0! #28712500 1! #28712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28713000 0! #28713500 1! #28713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28714000 0! #28714500 1! #28714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28715000 0! #28715500 1! #28715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28716000 0! #28716500 1! #28716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28717000 0! #28717500 1! #28717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28718000 0! #28718500 1! #28718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28719000 0! #28719500 1! #28719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28720000 0! #28720500 1! #28720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28721000 0! #28721500 1! #28721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28722000 0! #28722500 1! #28722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28723000 0! #28723500 1! #28723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28724000 0! #28724500 1! #28724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28725000 0! #28725500 1! #28725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28726000 0! #28726500 1! #28726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28727000 0! #28727500 1! #28727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28728000 0! #28728500 1! #28728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28729000 0! #28729500 1! #28729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28730000 0! #28730500 1! #28730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28731000 0! #28731500 1! #28731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28732000 0! #28732500 1! #28732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28733000 0! #28733500 1! #28733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28734000 0! #28734500 1! #28734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28735000 0! #28735500 1! #28735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28736000 0! #28736500 1! #28736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28737000 0! #28737500 1! #28737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28738000 0! #28738500 1! #28738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28739000 0! #28739500 1! #28739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28740000 0! #28740500 1! #28740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28741000 0! #28741500 1! #28741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28742000 0! #28742500 1! #28742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28743000 0! #28743500 1! #28743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28744000 0! #28744500 1! #28744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28745000 0! #28745500 1! #28745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28746000 0! #28746500 1! #28746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28747000 0! #28747500 1! #28747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28748000 0! #28748500 1! #28748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28749000 0! #28749500 1! #28749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28750000 0! #28750500 1! #28750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28751000 0! #28751500 1! #28751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28752000 0! #28752500 1! #28752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28753000 0! #28753500 1! #28753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28754000 0! #28754500 1! #28754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28755000 0! #28755500 1! #28755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28756000 0! #28756500 1! #28756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28757000 0! #28757500 1! #28757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28758000 0! #28758500 1! #28758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28759000 0! #28759500 1! #28759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28760000 0! #28760500 1! #28760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28761000 0! #28761500 1! #28761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28762000 0! #28762500 1! #28762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28763000 0! #28763500 1! #28763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28764000 0! #28764500 1! #28764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28765000 0! #28765500 1! #28765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28766000 0! #28766500 1! #28766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28767000 0! #28767500 1! #28767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28768000 0! #28768500 1! #28768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28769000 0! #28769500 1! #28769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28770000 0! #28770500 1! #28770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28771000 0! #28771500 1! #28771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28772000 0! #28772500 1! #28772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28773000 0! #28773500 1! #28773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28774000 0! #28774500 1! #28774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28775000 0! #28775500 1! #28775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28776000 0! #28776500 1! #28776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28777000 0! #28777500 1! #28777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28778000 0! #28778500 1! #28778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28779000 0! #28779500 1! #28779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28780000 0! #28780500 1! #28780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28781000 0! #28781500 1! #28781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28782000 0! #28782500 1! #28782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28783000 0! #28783500 1! #28783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28784000 0! #28784500 1! #28784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28785000 0! #28785500 1! #28785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28786000 0! #28786500 1! #28786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28787000 0! #28787500 1! #28787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28788000 0! #28788500 1! #28788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28789000 0! #28789500 1! #28789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28790000 0! #28790500 1! #28790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28791000 0! #28791500 1! #28791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28792000 0! #28792500 1! #28792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #28792700 b0 g b10100101 c 1h #28793000 0! #28793500 1! #28793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28794000 0! #28794500 1! #28794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28795000 0! #28795500 1! #28795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28796000 0! #28796500 1! #28796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28797000 0! #28797500 1! #28797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28798000 0! #28798500 1! #28798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28799000 0! #28799500 1! #28799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28800000 0! #28800500 1! #28800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28801000 0! #28801500 1! #28801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28802000 0! #28802500 1! #28802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28803000 0! #28803500 1! #28803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28804000 0! #28804500 1! #28804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28805000 0! #28805500 1! #28805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28806000 0! #28806500 1! #28806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28807000 0! #28807500 1! #28807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28808000 0! #28808500 1! #28808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28809000 0! #28809500 1! #28809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28810000 0! #28810500 1! #28810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28811000 0! #28811500 1! #28811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28812000 0! #28812500 1! #28812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28813000 0! #28813500 1! #28813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28814000 0! #28814500 1! #28814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28815000 0! #28815500 1! #28815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28816000 0! #28816500 1! #28816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28817000 0! #28817500 1! #28817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28818000 0! #28818500 1! #28818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28819000 0! #28819500 1! #28819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28820000 0! #28820500 1! #28820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28821000 0! #28821500 1! #28821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28822000 0! #28822500 1! #28822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28823000 0! #28823500 1! #28823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28824000 0! #28824500 1! #28824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28825000 0! #28825500 1! #28825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28826000 0! #28826500 1! #28826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28827000 0! #28827500 1! #28827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28828000 0! #28828500 1! #28828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28829000 0! #28829500 1! #28829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28830000 0! #28830500 1! #28830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28831000 0! #28831500 1! #28831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28832000 0! #28832500 1! #28832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28833000 0! #28833500 1! #28833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28834000 0! #28834500 1! #28834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28835000 0! #28835500 1! #28835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28836000 0! #28836500 1! #28836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28837000 0! #28837500 1! #28837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28838000 0! #28838500 1! #28838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28839000 0! #28839500 1! #28839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28840000 0! #28840500 1! #28840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28841000 0! #28841500 1! #28841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28842000 0! #28842500 1! #28842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28843000 0! #28843500 1! #28843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28844000 0! #28844500 1! #28844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28845000 0! #28845500 1! #28845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28846000 0! #28846500 1! #28846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28847000 0! #28847500 1! #28847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28848000 0! #28848500 1! #28848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28849000 0! #28849500 1! #28849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28850000 0! #28850500 1! #28850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28851000 0! #28851500 1! #28851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28852000 0! #28852500 1! #28852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28853000 0! #28853500 1! #28853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28854000 0! #28854500 1! #28854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28855000 0! #28855500 1! #28855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28856000 0! #28856500 1! #28856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28857000 0! #28857500 1! #28857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28858000 0! #28858500 1! #28858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28859000 0! #28859500 1! #28859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28860000 0! #28860500 1! #28860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28861000 0! #28861500 1! #28861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28862000 0! #28862500 1! #28862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28863000 0! #28863500 1! #28863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28864000 0! #28864500 1! #28864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28865000 0! #28865500 1! #28865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28866000 0! #28866500 1! #28866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28867000 0! #28867500 1! #28867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28868000 0! #28868500 1! #28868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28869000 0! #28869500 1! #28869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28870000 0! #28870500 1! #28870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28871000 0! #28871500 1! #28871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28872000 0! #28872500 1! #28872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28873000 0! #28873500 1! #28873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28874000 0! #28874500 1! #28874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28875000 0! #28875500 1! #28875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28876000 0! #28876500 1! #28876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28877000 0! #28877500 1! #28877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28878000 0! #28878500 1! #28878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28879000 0! #28879500 1! #28879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28880000 0! #28880500 1! #28880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28881000 0! #28881500 1! #28881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28882000 0! #28882500 1! #28882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28883000 0! #28883500 1! #28883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28884000 0! #28884500 1! #28884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28885000 0! #28885500 1! #28885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28886000 0! #28886500 1! #28886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28887000 0! #28887500 1! #28887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28888000 0! #28888500 1! #28888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28889000 0! #28889500 1! #28889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28890000 0! #28890500 1! #28890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28891000 0! #28891500 1! #28891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28892000 0! #28892500 1! #28892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28893000 0! #28893500 1! #28893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28894000 0! #28894500 1! #28894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #28894700 b101 q #28894800 b10 ] #28894900 b1011010 ^ #28895000 0! #28895500 1! #28895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28896000 0! #28896500 1! #28896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28897000 0! #28897500 1! #28897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28898000 0! #28898500 1! #28898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28899000 0! #28899500 1! #28899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28900000 0! #28900500 1! #28900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28901000 0! #28901500 1! #28901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28902000 0! #28902500 1! #28902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28903000 0! #28903500 1! #28903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28904000 0! #28904500 1! #28904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28905000 0! #28905500 1! #28905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28906000 0! #28906500 1! #28906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28907000 0! #28907500 1! #28907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28908000 0! #28908500 1! #28908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28909000 0! #28909500 1! #28909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28910000 0! #28910500 1! #28910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28911000 0! #28911500 1! #28911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28912000 0! #28912500 1! #28912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28913000 0! #28913500 1! #28913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28914000 0! #28914500 1! #28914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28915000 0! #28915500 1! #28915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28916000 0! #28916500 1! #28916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28917000 0! #28917500 1! #28917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28918000 0! #28918500 1! #28918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28919000 0! #28919500 1! #28919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28920000 0! #28920500 1! #28920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28921000 0! #28921500 1! #28921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28922000 0! #28922500 1! #28922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28923000 0! #28923500 1! #28923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28924000 0! #28924500 1! #28924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28925000 0! #28925500 1! #28925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28926000 0! #28926500 1! #28926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28927000 0! #28927500 1! #28927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28928000 0! #28928500 1! #28928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28929000 0! #28929500 1! #28929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28930000 0! #28930500 1! #28930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28931000 0! #28931500 1! #28931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28932000 0! #28932500 1! #28932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28933000 0! #28933500 1! #28933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28934000 0! #28934500 1! #28934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28935000 0! #28935500 1! #28935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28936000 0! #28936500 1! #28936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28937000 0! #28937500 1! #28937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28938000 0! #28938500 1! #28938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28939000 0! #28939500 1! #28939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28940000 0! #28940500 1! #28940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28941000 0! #28941500 1! #28941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28942000 0! #28942500 1! #28942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28943000 0! #28943500 1! #28943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28944000 0! #28944500 1! #28944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28945000 0! #28945500 1! #28945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28946000 0! #28946500 1! #28946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28947000 0! #28947500 1! #28947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28948000 0! #28948500 1! #28948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28949000 0! #28949500 1! #28949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28950000 0! #28950500 1! #28950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28951000 0! #28951500 1! #28951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28952000 0! #28952500 1! #28952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28953000 0! #28953500 1! #28953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28954000 0! #28954500 1! #28954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28955000 0! #28955500 1! #28955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28956000 0! #28956500 1! #28956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28957000 0! #28957500 1! #28957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28958000 0! #28958500 1! #28958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28959000 0! #28959500 1! #28959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28960000 0! #28960500 1! #28960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28961000 0! #28961500 1! #28961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28962000 0! #28962500 1! #28962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28963000 0! #28963500 1! #28963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28964000 0! #28964500 1! #28964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28965000 0! #28965500 1! #28965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28966000 0! #28966500 1! #28966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28967000 0! #28967500 1! #28967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28968000 0! #28968500 1! #28968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28969000 0! #28969500 1! #28969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28970000 0! #28970500 1! #28970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28971000 0! #28971500 1! #28971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28972000 0! #28972500 1! #28972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28973000 0! #28973500 1! #28973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28974000 0! #28974500 1! #28974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28975000 0! #28975500 1! #28975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28976000 0! #28976500 1! #28976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28977000 0! #28977500 1! #28977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28978000 0! #28978500 1! #28978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28979000 0! #28979500 1! #28979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28980000 0! #28980500 1! #28980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28981000 0! #28981500 1! #28981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28982000 0! #28982500 1! #28982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28983000 0! #28983500 1! #28983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28984000 0! #28984500 1! #28984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28985000 0! #28985500 1! #28985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28986000 0! #28986500 1! #28986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28987000 0! #28987500 1! #28987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28988000 0! #28988500 1! #28988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28989000 0! #28989500 1! #28989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28990000 0! #28990500 1! #28990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28991000 0! #28991500 1! #28991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28992000 0! #28992500 1! #28992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28993000 0! #28993500 1! #28993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28994000 0! #28994500 1! #28994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28995000 0! #28995500 1! #28995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28996000 0! #28996500 1! #28996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #28997000 0! #28997500 1! #28997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #28998000 0! #28998500 1! #28998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #28999000 0! #28999500 1! #28999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29000000 0! #29000500 1! #29000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29001000 0! #29001500 1! #29001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29002000 0! #29002500 1! #29002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29003000 0! #29003500 1! #29003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29004000 0! #29004500 1! #29004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29005000 0! #29005500 1! #29005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29006000 0! #29006500 1! #29006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29007000 0! #29007500 1! #29007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29008000 0! #29008500 1! #29008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29009000 0! #29009500 1! #29009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29010000 0! #29010500 1! #29010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29011000 0! #29011500 1! #29011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29012000 0! #29012500 1! #29012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29013000 0! #29013500 1! #29013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29014000 0! #29014500 1! #29014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29015000 0! #29015500 1! #29015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29016000 0! #29016500 1! #29016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29017000 0! #29017500 1! #29017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29018000 0! #29018500 1! #29018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29019000 0! #29019500 1! #29019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29020000 0! #29020500 1! #29020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29021000 0! #29021500 1! #29021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29022000 0! #29022500 1! #29022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29023000 0! #29023500 1! #29023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29024000 0! #29024500 1! #29024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29025000 0! #29025500 1! #29025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29026000 0! #29026500 1! #29026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29027000 0! #29027500 1! #29027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29028000 0! #29028500 1! #29028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29029000 0! #29029500 1! #29029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29030000 0! #29030500 1! #29030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29031000 0! #29031500 1! #29031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29032000 0! #29032500 1! #29032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29033000 0! #29033500 1! #29033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29034000 0! #29034500 1! #29034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29035000 0! #29035500 1! #29035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29036000 0! #29036500 1! #29036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29037000 0! #29037500 1! #29037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29038000 0! #29038500 1! #29038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29039000 0! #29039500 1! #29039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29040000 0! #29040500 1! #29040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29041000 0! #29041500 1! #29041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29042000 0! #29042500 1! #29042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29043000 0! #29043500 1! #29043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29044000 0! #29044500 1! #29044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29045000 0! #29045500 1! #29045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29046000 0! #29046500 1! #29046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29047000 0! #29047500 1! #29047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #29047700 b111 g b1001010 c 0h #29048000 0! #29048500 1! #29048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29049000 0! #29049500 1! #29049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29050000 0! #29050500 1! #29050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29051000 0! #29051500 1! #29051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29052000 0! #29052500 1! #29052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29053000 0! #29053500 1! #29053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29054000 0! #29054500 1! #29054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29055000 0! #29055500 1! #29055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29056000 0! #29056500 1! #29056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29057000 0! #29057500 1! #29057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29058000 0! #29058500 1! #29058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29059000 0! #29059500 1! #29059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29060000 0! #29060500 1! #29060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29061000 0! #29061500 1! #29061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29062000 0! #29062500 1! #29062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29063000 0! #29063500 1! #29063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29064000 0! #29064500 1! #29064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29065000 0! #29065500 1! #29065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29066000 0! #29066500 1! #29066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29067000 0! #29067500 1! #29067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29068000 0! #29068500 1! #29068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29069000 0! #29069500 1! #29069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29070000 0! #29070500 1! #29070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29071000 0! #29071500 1! #29071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29072000 0! #29072500 1! #29072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29073000 0! #29073500 1! #29073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29074000 0! #29074500 1! #29074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29075000 0! #29075500 1! #29075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29076000 0! #29076500 1! #29076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29077000 0! #29077500 1! #29077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29078000 0! #29078500 1! #29078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29079000 0! #29079500 1! #29079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29080000 0! #29080500 1! #29080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29081000 0! #29081500 1! #29081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29082000 0! #29082500 1! #29082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29083000 0! #29083500 1! #29083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29084000 0! #29084500 1! #29084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29085000 0! #29085500 1! #29085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29086000 0! #29086500 1! #29086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29087000 0! #29087500 1! #29087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29088000 0! #29088500 1! #29088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29089000 0! #29089500 1! #29089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29090000 0! #29090500 1! #29090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29091000 0! #29091500 1! #29091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29092000 0! #29092500 1! #29092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29093000 0! #29093500 1! #29093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29094000 0! #29094500 1! #29094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29095000 0! #29095500 1! #29095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29096000 0! #29096500 1! #29096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29097000 0! #29097500 1! #29097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29098000 0! #29098500 1! #29098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29099000 0! #29099500 1! #29099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29100000 0! #29100500 1! #29100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29101000 0! #29101500 1! #29101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29102000 0! #29102500 1! #29102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29103000 0! #29103500 1! #29103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29104000 0! #29104500 1! #29104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29105000 0! #29105500 1! #29105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29106000 0! #29106500 1! #29106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29107000 0! #29107500 1! #29107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29108000 0! #29108500 1! #29108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29109000 0! #29109500 1! #29109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29110000 0! #29110500 1! #29110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29111000 0! #29111500 1! #29111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29112000 0! #29112500 1! #29112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29113000 0! #29113500 1! #29113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29114000 0! #29114500 1! #29114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29115000 0! #29115500 1! #29115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29116000 0! #29116500 1! #29116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29117000 0! #29117500 1! #29117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29118000 0! #29118500 1! #29118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29119000 0! #29119500 1! #29119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29120000 0! #29120500 1! #29120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29121000 0! #29121500 1! #29121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29122000 0! #29122500 1! #29122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29123000 0! #29123500 1! #29123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29124000 0! #29124500 1! #29124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29125000 0! #29125500 1! #29125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29126000 0! #29126500 1! #29126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29127000 0! #29127500 1! #29127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29128000 0! #29128500 1! #29128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29129000 0! #29129500 1! #29129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29130000 0! #29130500 1! #29130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29131000 0! #29131500 1! #29131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29132000 0! #29132500 1! #29132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29133000 0! #29133500 1! #29133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29134000 0! #29134500 1! #29134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29135000 0! #29135500 1! #29135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29136000 0! #29136500 1! #29136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29137000 0! #29137500 1! #29137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29138000 0! #29138500 1! #29138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29139000 0! #29139500 1! #29139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29140000 0! #29140500 1! #29140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29141000 0! #29141500 1! #29141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29142000 0! #29142500 1! #29142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29143000 0! #29143500 1! #29143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29144000 0! #29144500 1! #29144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29145000 0! #29145500 1! #29145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29146000 0! #29146500 1! #29146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29147000 0! #29147500 1! #29147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29148000 0! #29148500 1! #29148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29149000 0! #29149500 1! #29149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #29149700 1i b100 q 0j #29150000 0! #29150500 1! #29150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29151000 0! #29151500 1! #29151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11000011 C #29152000 0! #29152500 1! #29152600 b11000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29153000 0! #29153500 1! #29153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b11000001 C 1H #29154000 0! #29154500 1! #29154600 b11000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29155000 0! #29155500 1! #29155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b10100101 C 1H #29156000 0! #29156500 1! #29156600 b10100101 K xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29157000 0! #29157500 1! #29157600 1E 1F 1G b100000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b11000001 C 1H #29158000 0! #29158500 1! #29158600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29159000 0! #29159500 1! #29159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11000011 C #29160000 0! #29160500 1! #29160600 b11000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29161000 0! #29161500 1! #29161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29162000 0! #29162500 1! #29162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29163000 0! #29163500 1! #29163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29164000 0! #29164500 1! #29164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29165000 0! #29165500 1! #29165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29166000 0! #29166500 1! #29166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29167000 0! #29167500 1! #29167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29168000 0! #29168500 1! #29168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29169000 0! #29169500 1! #29169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29170000 0! #29170500 1! #29170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29171000 0! #29171500 1! #29171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29172000 0! #29172500 1! #29172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29173000 0! #29173500 1! #29173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29174000 0! #29174500 1! #29174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29175000 0! #29175500 1! #29175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29176000 0! #29176500 1! #29176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29177000 0! #29177500 1! #29177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29178000 0! #29178500 1! #29178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29179000 0! #29179500 1! #29179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29180000 0! #29180500 1! #29180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29181000 0! #29181500 1! #29181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29182000 0! #29182500 1! #29182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29183000 0! #29183500 1! #29183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29184000 0! #29184500 1! #29184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29185000 0! #29185500 1! #29185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29186000 0! #29186500 1! #29186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29187000 0! #29187500 1! #29187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29188000 0! #29188500 1! #29188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29189000 0! #29189500 1! #29189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29190000 0! #29190500 1! #29190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29191000 0! #29191500 1! #29191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29192000 0! #29192500 1! #29192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29193000 0! #29193500 1! #29193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29194000 0! #29194500 1! #29194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29195000 0! #29195500 1! #29195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29196000 0! #29196500 1! #29196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29197000 0! #29197500 1! #29197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29198000 0! #29198500 1! #29198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29199000 0! #29199500 1! #29199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29200000 0! #29200500 1! #29200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29201000 0! #29201500 1! #29201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29202000 0! #29202500 1! #29202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29203000 0! #29203500 1! #29203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29204000 0! #29204500 1! #29204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29205000 0! #29205500 1! #29205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29206000 0! #29206500 1! #29206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29207000 0! #29207500 1! #29207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29208000 0! #29208500 1! #29208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29209000 0! #29209500 1! #29209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29210000 0! #29210500 1! #29210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29211000 0! #29211500 1! #29211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29212000 0! #29212500 1! #29212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29213000 0! #29213500 1! #29213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29214000 0! #29214500 1! #29214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29215000 0! #29215500 1! #29215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29216000 0! #29216500 1! #29216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29217000 0! #29217500 1! #29217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29218000 0! #29218500 1! #29218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29219000 0! #29219500 1! #29219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29220000 0! #29220500 1! #29220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29221000 0! #29221500 1! #29221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29222000 0! #29222500 1! #29222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29223000 0! #29223500 1! #29223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29224000 0! #29224500 1! #29224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29225000 0! #29225500 1! #29225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29226000 0! #29226500 1! #29226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29227000 0! #29227500 1! #29227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29228000 0! #29228500 1! #29228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29229000 0! #29229500 1! #29229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29230000 0! #29230500 1! #29230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29231000 0! #29231500 1! #29231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29232000 0! #29232500 1! #29232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29233000 0! #29233500 1! #29233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29234000 0! #29234500 1! #29234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29235000 0! #29235500 1! #29235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29236000 0! #29236500 1! #29236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29237000 0! #29237500 1! #29237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29238000 0! #29238500 1! #29238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29239000 0! #29239500 1! #29239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29240000 0! #29240500 1! #29240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29241000 0! #29241500 1! #29241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29242000 0! #29242500 1! #29242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29243000 0! #29243500 1! #29243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29244000 0! #29244500 1! #29244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29245000 0! #29245500 1! #29245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29246000 0! #29246500 1! #29246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29247000 0! #29247500 1! #29247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29248000 0! #29248500 1! #29248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29249000 0! #29249500 1! #29249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29250000 0! #29250500 1! #29250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29251000 0! #29251500 1! #29251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q #29252000 0! #29252500 1! #29252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29253000 0! #29253500 1! #29253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29254000 0! #29254500 1! #29254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29255000 0! #29255500 1! #29255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29256000 0! #29256500 1! #29256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29257000 0! #29257500 1! #29257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29258000 0! #29258500 1! #29258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29259000 0! #29259500 1! #29259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29260000 0! #29260500 1! #29260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29261000 0! #29261500 1! #29261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29262000 0! #29262500 1! #29262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29263000 0! #29263500 1! #29263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29264000 0! #29264500 1! #29264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29265000 0! #29265500 1! #29265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29266000 0! #29266500 1! #29266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29267000 0! #29267500 1! #29267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29268000 0! #29268500 1! #29268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29269000 0! #29269500 1! #29269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29270000 0! #29270500 1! #29270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29271000 0! #29271500 1! #29271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29272000 0! #29272500 1! #29272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29273000 0! #29273500 1! #29273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29274000 0! #29274500 1! #29274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29275000 0! #29275500 1! #29275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29276000 0! #29276500 1! #29276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29277000 0! #29277500 1! #29277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29278000 0! #29278500 1! #29278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29279000 0! #29279500 1! #29279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29280000 0! #29280500 1! #29280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29281000 0! #29281500 1! #29281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29282000 0! #29282500 1! #29282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29283000 0! #29283500 1! #29283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29284000 0! #29284500 1! #29284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29285000 0! #29285500 1! #29285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29286000 0! #29286500 1! #29286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29287000 0! #29287500 1! #29287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29288000 0! #29288500 1! #29288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29289000 0! #29289500 1! #29289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29290000 0! #29290500 1! #29290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29291000 0! #29291500 1! #29291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29292000 0! #29292500 1! #29292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29293000 0! #29293500 1! #29293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29294000 0! #29294500 1! #29294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29295000 0! #29295500 1! #29295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29296000 0! #29296500 1! #29296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29297000 0! #29297500 1! #29297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29298000 0! #29298500 1! #29298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29299000 0! #29299500 1! #29299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29300000 0! #29300500 1! #29300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29301000 0! #29301500 1! #29301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29302000 0! #29302500 1! #29302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #29302700 b10110101 ^ b10010100 c #29303000 0! #29303500 1! #29303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29304000 0! #29304500 1! #29304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29305000 0! #29305500 1! #29305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29306000 0! #29306500 1! #29306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29307000 0! #29307500 1! #29307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29308000 0! #29308500 1! #29308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29309000 0! #29309500 1! #29309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29310000 0! #29310500 1! #29310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29311000 0! #29311500 1! #29311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29312000 0! #29312500 1! #29312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29313000 0! #29313500 1! #29313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29314000 0! #29314500 1! #29314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29315000 0! #29315500 1! #29315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29316000 0! #29316500 1! #29316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29317000 0! #29317500 1! #29317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29318000 0! #29318500 1! #29318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29319000 0! #29319500 1! #29319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29320000 0! #29320500 1! #29320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29321000 0! #29321500 1! #29321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29322000 0! #29322500 1! #29322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29323000 0! #29323500 1! #29323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29324000 0! #29324500 1! #29324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29325000 0! #29325500 1! #29325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29326000 0! #29326500 1! #29326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29327000 0! #29327500 1! #29327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29328000 0! #29328500 1! #29328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29329000 0! #29329500 1! #29329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29330000 0! #29330500 1! #29330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29331000 0! #29331500 1! #29331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29332000 0! #29332500 1! #29332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29333000 0! #29333500 1! #29333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29334000 0! #29334500 1! #29334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29335000 0! #29335500 1! #29335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29336000 0! #29336500 1! #29336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29337000 0! #29337500 1! #29337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29338000 0! #29338500 1! #29338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29339000 0! #29339500 1! #29339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29340000 0! #29340500 1! #29340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29341000 0! #29341500 1! #29341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29342000 0! #29342500 1! #29342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29343000 0! #29343500 1! #29343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29344000 0! #29344500 1! #29344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29345000 0! #29345500 1! #29345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29346000 0! #29346500 1! #29346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29347000 0! #29347500 1! #29347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29348000 0! #29348500 1! #29348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29349000 0! #29349500 1! #29349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29350000 0! #29350500 1! #29350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29351000 0! #29351500 1! #29351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29352000 0! #29352500 1! #29352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29353000 0! #29353500 1! #29353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29354000 0! #29354500 1! #29354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29355000 0! #29355500 1! #29355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29356000 0! #29356500 1! #29356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29357000 0! #29357500 1! #29357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29358000 0! #29358500 1! #29358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29359000 0! #29359500 1! #29359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29360000 0! #29360500 1! #29360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29361000 0! #29361500 1! #29361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29362000 0! #29362500 1! #29362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29363000 0! #29363500 1! #29363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29364000 0! #29364500 1! #29364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29365000 0! #29365500 1! #29365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29366000 0! #29366500 1! #29366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29367000 0! #29367500 1! #29367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29368000 0! #29368500 1! #29368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29369000 0! #29369500 1! #29369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29370000 0! #29370500 1! #29370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29371000 0! #29371500 1! #29371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29372000 0! #29372500 1! #29372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29373000 0! #29373500 1! #29373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29374000 0! #29374500 1! #29374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29375000 0! #29375500 1! #29375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29376000 0! #29376500 1! #29376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29377000 0! #29377500 1! #29377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29378000 0! #29378500 1! #29378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29379000 0! #29379500 1! #29379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29380000 0! #29380500 1! #29380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29381000 0! #29381500 1! #29381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29382000 0! #29382500 1! #29382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29383000 0! #29383500 1! #29383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29384000 0! #29384500 1! #29384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29385000 0! #29385500 1! #29385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29386000 0! #29386500 1! #29386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29387000 0! #29387500 1! #29387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29388000 0! #29388500 1! #29388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29389000 0! #29389500 1! #29389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29390000 0! #29390500 1! #29390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29391000 0! #29391500 1! #29391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29392000 0! #29392500 1! #29392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29393000 0! #29393500 1! #29393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29394000 0! #29394500 1! #29394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29395000 0! #29395500 1! #29395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29396000 0! #29396500 1! #29396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29397000 0! #29397500 1! #29397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29398000 0! #29398500 1! #29398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29399000 0! #29399500 1! #29399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29400000 0! #29400500 1! #29400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29401000 0! #29401500 1! #29401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29402000 0! #29402500 1! #29402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29403000 0! #29403500 1! #29403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29404000 0! #29404500 1! #29404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #29404700 1j 0i 1O #29405000 0! #29405500 1! #29405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29406000 0! #29406500 1! #29406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29407000 0! #29407500 1! #29407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29408000 0! #29408500 1! #29408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29409000 0! #29409500 1! #29409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29410000 0! #29410500 1! #29410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29411000 0! #29411500 1! #29411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29412000 0! #29412500 1! #29412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29413000 0! #29413500 1! #29413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29414000 0! #29414500 1! #29414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29415000 0! #29415500 1! #29415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29416000 0! #29416500 1! #29416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29417000 0! #29417500 1! #29417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29418000 0! #29418500 1! #29418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29419000 0! #29419500 1! #29419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29420000 0! #29420500 1! #29420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29421000 0! #29421500 1! #29421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29422000 0! #29422500 1! #29422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29423000 0! #29423500 1! #29423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29424000 0! #29424500 1! #29424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29425000 0! #29425500 1! #29425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29426000 0! #29426500 1! #29426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29427000 0! #29427500 1! #29427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29428000 0! #29428500 1! #29428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29429000 0! #29429500 1! #29429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29430000 0! #29430500 1! #29430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29431000 0! #29431500 1! #29431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29432000 0! #29432500 1! #29432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29433000 0! #29433500 1! #29433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29434000 0! #29434500 1! #29434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29435000 0! #29435500 1! #29435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29436000 0! #29436500 1! #29436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29437000 0! #29437500 1! #29437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29438000 0! #29438500 1! #29438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29439000 0! #29439500 1! #29439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29440000 0! #29440500 1! #29440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29441000 0! #29441500 1! #29441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29442000 0! #29442500 1! #29442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29443000 0! #29443500 1! #29443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29444000 0! #29444500 1! #29444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29445000 0! #29445500 1! #29445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29446000 0! #29446500 1! #29446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29447000 0! #29447500 1! #29447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29448000 0! #29448500 1! #29448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29449000 0! #29449500 1! #29449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29450000 0! #29450500 1! #29450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29451000 0! #29451500 1! #29451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29452000 0! #29452500 1! #29452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29453000 0! #29453500 1! #29453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29454000 0! #29454500 1! #29454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29455000 0! #29455500 1! #29455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29456000 0! #29456500 1! #29456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29457000 0! #29457500 1! #29457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29458000 0! #29458500 1! #29458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29459000 0! #29459500 1! #29459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29460000 0! #29460500 1! #29460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29461000 0! #29461500 1! #29461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29462000 0! #29462500 1! #29462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29463000 0! #29463500 1! #29463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29464000 0! #29464500 1! #29464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29465000 0! #29465500 1! #29465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29466000 0! #29466500 1! #29466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29467000 0! #29467500 1! #29467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29468000 0! #29468500 1! #29468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29469000 0! #29469500 1! #29469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29470000 0! #29470500 1! #29470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29471000 0! #29471500 1! #29471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29472000 0! #29472500 1! #29472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29473000 0! #29473500 1! #29473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29474000 0! #29474500 1! #29474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29475000 0! #29475500 1! #29475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29476000 0! #29476500 1! #29476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29477000 0! #29477500 1! #29477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29478000 0! #29478500 1! #29478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29479000 0! #29479500 1! #29479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29480000 0! #29480500 1! #29480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29481000 0! #29481500 1! #29481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29482000 0! #29482500 1! #29482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29483000 0! #29483500 1! #29483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29484000 0! #29484500 1! #29484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29485000 0! #29485500 1! #29485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29486000 0! #29486500 1! #29486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29487000 0! #29487500 1! #29487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29488000 0! #29488500 1! #29488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29489000 0! #29489500 1! #29489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29490000 0! #29490500 1! #29490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29491000 0! #29491500 1! #29491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29492000 0! #29492500 1! #29492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29493000 0! #29493500 1! #29493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29494000 0! #29494500 1! #29494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29495000 0! #29495500 1! #29495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29496000 0! #29496500 1! #29496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29497000 0! #29497500 1! #29497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29498000 0! #29498500 1! #29498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29499000 0! #29499500 1! #29499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29500000 0! #29500500 1! #29500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29501000 0! #29501500 1! #29501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29502000 0! #29502500 1! #29502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29503000 0! #29503500 1! #29503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29504000 0! #29504500 1! #29504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29505000 0! #29505500 1! #29505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29506000 0! #29506500 1! #29506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29507000 0! #29507500 1! #29507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29508000 0! #29508500 1! #29508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29509000 0! #29509500 1! #29509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29510000 0! #29510500 1! #29510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29511000 0! #29511500 1! #29511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29512000 0! #29512500 1! #29512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29513000 0! #29513500 1! #29513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29514000 0! #29514500 1! #29514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29515000 0! #29515500 1! #29515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29516000 0! #29516500 1! #29516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29517000 0! #29517500 1! #29517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29518000 0! #29518500 1! #29518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29519000 0! #29519500 1! #29519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29520000 0! #29520500 1! #29520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29521000 0! #29521500 1! #29521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29522000 0! #29522500 1! #29522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29523000 0! #29523500 1! #29523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29524000 0! #29524500 1! #29524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29525000 0! #29525500 1! #29525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29526000 0! #29526500 1! #29526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29527000 0! #29527500 1! #29527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29528000 0! #29528500 1! #29528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29529000 0! #29529500 1! #29529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29530000 0! #29530500 1! #29530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29531000 0! #29531500 1! #29531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29532000 0! #29532500 1! #29532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29533000 0! #29533500 1! #29533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29534000 0! #29534500 1! #29534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29535000 0! #29535500 1! #29535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29536000 0! #29536500 1! #29536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29537000 0! #29537500 1! #29537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29538000 0! #29538500 1! #29538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29539000 0! #29539500 1! #29539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29540000 0! #29540500 1! #29540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29541000 0! #29541500 1! #29541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29542000 0! #29542500 1! #29542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29543000 0! #29543500 1! #29543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29544000 0! #29544500 1! #29544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29545000 0! #29545500 1! #29545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29546000 0! #29546500 1! #29546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29547000 0! #29547500 1! #29547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29548000 0! #29548500 1! #29548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29549000 0! #29549500 1! #29549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29550000 0! #29550500 1! #29550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29551000 0! #29551500 1! #29551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29552000 0! #29552500 1! #29552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29553000 0! #29553500 1! #29553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29554000 0! #29554500 1! #29554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29555000 0! #29555500 1! #29555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29556000 0! #29556500 1! #29556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29557000 0! #29557500 1! #29557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #29557700 b1101011 ^ b110 g b101001 c #29558000 0! #29558500 1! #29558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29559000 0! #29559500 1! #29559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29560000 0! #29560500 1! #29560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29561000 0! #29561500 1! #29561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29562000 0! #29562500 1! #29562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29563000 0! #29563500 1! #29563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29564000 0! #29564500 1! #29564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29565000 0! #29565500 1! #29565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29566000 0! #29566500 1! #29566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29567000 0! #29567500 1! #29567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29568000 0! #29568500 1! #29568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29569000 0! #29569500 1! #29569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29570000 0! #29570500 1! #29570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29571000 0! #29571500 1! #29571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29572000 0! #29572500 1! #29572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29573000 0! #29573500 1! #29573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29574000 0! #29574500 1! #29574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29575000 0! #29575500 1! #29575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29576000 0! #29576500 1! #29576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29577000 0! #29577500 1! #29577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29578000 0! #29578500 1! #29578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29579000 0! #29579500 1! #29579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29580000 0! #29580500 1! #29580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29581000 0! #29581500 1! #29581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29582000 0! #29582500 1! #29582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29583000 0! #29583500 1! #29583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29584000 0! #29584500 1! #29584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29585000 0! #29585500 1! #29585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29586000 0! #29586500 1! #29586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29587000 0! #29587500 1! #29587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29588000 0! #29588500 1! #29588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29589000 0! #29589500 1! #29589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29590000 0! #29590500 1! #29590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29591000 0! #29591500 1! #29591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29592000 0! #29592500 1! #29592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29593000 0! #29593500 1! #29593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29594000 0! #29594500 1! #29594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29595000 0! #29595500 1! #29595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29596000 0! #29596500 1! #29596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29597000 0! #29597500 1! #29597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29598000 0! #29598500 1! #29598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29599000 0! #29599500 1! #29599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29600000 0! #29600500 1! #29600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29601000 0! #29601500 1! #29601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29602000 0! #29602500 1! #29602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29603000 0! #29603500 1! #29603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29604000 0! #29604500 1! #29604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29605000 0! #29605500 1! #29605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29606000 0! #29606500 1! #29606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29607000 0! #29607500 1! #29607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29608000 0! #29608500 1! #29608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29609000 0! #29609500 1! #29609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29610000 0! #29610500 1! #29610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29611000 0! #29611500 1! #29611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29612000 0! #29612500 1! #29612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29613000 0! #29613500 1! #29613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29614000 0! #29614500 1! #29614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29615000 0! #29615500 1! #29615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29616000 0! #29616500 1! #29616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29617000 0! #29617500 1! #29617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29618000 0! #29618500 1! #29618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29619000 0! #29619500 1! #29619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29620000 0! #29620500 1! #29620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29621000 0! #29621500 1! #29621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29622000 0! #29622500 1! #29622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29623000 0! #29623500 1! #29623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29624000 0! #29624500 1! #29624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29625000 0! #29625500 1! #29625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29626000 0! #29626500 1! #29626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29627000 0! #29627500 1! #29627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29628000 0! #29628500 1! #29628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29629000 0! #29629500 1! #29629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29630000 0! #29630500 1! #29630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29631000 0! #29631500 1! #29631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29632000 0! #29632500 1! #29632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29633000 0! #29633500 1! #29633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29634000 0! #29634500 1! #29634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29635000 0! #29635500 1! #29635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29636000 0! #29636500 1! #29636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29637000 0! #29637500 1! #29637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29638000 0! #29638500 1! #29638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29639000 0! #29639500 1! #29639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29640000 0! #29640500 1! #29640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29641000 0! #29641500 1! #29641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29642000 0! #29642500 1! #29642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29643000 0! #29643500 1! #29643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29644000 0! #29644500 1! #29644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29645000 0! #29645500 1! #29645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29646000 0! #29646500 1! #29646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29647000 0! #29647500 1! #29647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29648000 0! #29648500 1! #29648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29649000 0! #29649500 1! #29649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29650000 0! #29650500 1! #29650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29651000 0! #29651500 1! #29651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29652000 0! #29652500 1! #29652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29653000 0! #29653500 1! #29653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29654000 0! #29654500 1! #29654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29655000 0! #29655500 1! #29655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29656000 0! #29656500 1! #29656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29657000 0! #29657500 1! #29657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29658000 0! #29658500 1! #29658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29659000 0! #29659500 1! #29659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #29659700 0j 0O #29660000 0! #29660500 1! #29660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29661000 0! #29661500 1! #29661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29662000 0! #29662500 1! #29662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29663000 0! #29663500 1! #29663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29664000 0! #29664500 1! #29664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29665000 0! #29665500 1! #29665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29666000 0! #29666500 1! #29666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29667000 0! #29667500 1! #29667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29668000 0! #29668500 1! #29668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29669000 0! #29669500 1! #29669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29670000 0! #29670500 1! #29670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29671000 0! #29671500 1! #29671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29672000 0! #29672500 1! #29672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29673000 0! #29673500 1! #29673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29674000 0! #29674500 1! #29674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29675000 0! #29675500 1! #29675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29676000 0! #29676500 1! #29676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29677000 0! #29677500 1! #29677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29678000 0! #29678500 1! #29678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29679000 0! #29679500 1! #29679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29680000 0! #29680500 1! #29680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29681000 0! #29681500 1! #29681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29682000 0! #29682500 1! #29682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29683000 0! #29683500 1! #29683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29684000 0! #29684500 1! #29684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29685000 0! #29685500 1! #29685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29686000 0! #29686500 1! #29686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29687000 0! #29687500 1! #29687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29688000 0! #29688500 1! #29688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29689000 0! #29689500 1! #29689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29690000 0! #29690500 1! #29690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29691000 0! #29691500 1! #29691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29692000 0! #29692500 1! #29692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29693000 0! #29693500 1! #29693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29694000 0! #29694500 1! #29694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29695000 0! #29695500 1! #29695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29696000 0! #29696500 1! #29696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29697000 0! #29697500 1! #29697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29698000 0! #29698500 1! #29698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29699000 0! #29699500 1! #29699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29700000 0! #29700500 1! #29700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29701000 0! #29701500 1! #29701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29702000 0! #29702500 1! #29702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29703000 0! #29703500 1! #29703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29704000 0! #29704500 1! #29704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29705000 0! #29705500 1! #29705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29706000 0! #29706500 1! #29706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29707000 0! #29707500 1! #29707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29708000 0! #29708500 1! #29708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29709000 0! #29709500 1! #29709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29710000 0! #29710500 1! #29710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29711000 0! #29711500 1! #29711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29712000 0! #29712500 1! #29712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29713000 0! #29713500 1! #29713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29714000 0! #29714500 1! #29714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29715000 0! #29715500 1! #29715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29716000 0! #29716500 1! #29716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29717000 0! #29717500 1! #29717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29718000 0! #29718500 1! #29718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29719000 0! #29719500 1! #29719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29720000 0! #29720500 1! #29720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29721000 0! #29721500 1! #29721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29722000 0! #29722500 1! #29722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29723000 0! #29723500 1! #29723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29724000 0! #29724500 1! #29724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29725000 0! #29725500 1! #29725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29726000 0! #29726500 1! #29726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29727000 0! #29727500 1! #29727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29728000 0! #29728500 1! #29728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29729000 0! #29729500 1! #29729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29730000 0! #29730500 1! #29730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29731000 0! #29731500 1! #29731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29732000 0! #29732500 1! #29732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29733000 0! #29733500 1! #29733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29734000 0! #29734500 1! #29734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29735000 0! #29735500 1! #29735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29736000 0! #29736500 1! #29736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29737000 0! #29737500 1! #29737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29738000 0! #29738500 1! #29738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29739000 0! #29739500 1! #29739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29740000 0! #29740500 1! #29740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29741000 0! #29741500 1! #29741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29742000 0! #29742500 1! #29742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29743000 0! #29743500 1! #29743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29744000 0! #29744500 1! #29744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29745000 0! #29745500 1! #29745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29746000 0! #29746500 1! #29746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29747000 0! #29747500 1! #29747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29748000 0! #29748500 1! #29748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29749000 0! #29749500 1! #29749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29750000 0! #29750500 1! #29750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29751000 0! #29751500 1! #29751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29752000 0! #29752500 1! #29752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29753000 0! #29753500 1! #29753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29754000 0! #29754500 1! #29754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29755000 0! #29755500 1! #29755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29756000 0! #29756500 1! #29756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29757000 0! #29757500 1! #29757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29758000 0! #29758500 1! #29758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29759000 0! #29759500 1! #29759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29760000 0! #29760500 1! #29760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29761000 0! #29761500 1! #29761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29762000 0! #29762500 1! #29762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29763000 0! #29763500 1! #29763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29764000 0! #29764500 1! #29764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29765000 0! #29765500 1! #29765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29766000 0! #29766500 1! #29766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29767000 0! #29767500 1! #29767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29768000 0! #29768500 1! #29768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29769000 0! #29769500 1! #29769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29770000 0! #29770500 1! #29770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29771000 0! #29771500 1! #29771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29772000 0! #29772500 1! #29772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29773000 0! #29773500 1! #29773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29774000 0! #29774500 1! #29774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29775000 0! #29775500 1! #29775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29776000 0! #29776500 1! #29776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29777000 0! #29777500 1! #29777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29778000 0! #29778500 1! #29778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29779000 0! #29779500 1! #29779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29780000 0! #29780500 1! #29780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29781000 0! #29781500 1! #29781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29782000 0! #29782500 1! #29782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29783000 0! #29783500 1! #29783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29784000 0! #29784500 1! #29784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29785000 0! #29785500 1! #29785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29786000 0! #29786500 1! #29786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29787000 0! #29787500 1! #29787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29788000 0! #29788500 1! #29788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29789000 0! #29789500 1! #29789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29790000 0! #29790500 1! #29790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29791000 0! #29791500 1! #29791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29792000 0! #29792500 1! #29792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29793000 0! #29793500 1! #29793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29794000 0! #29794500 1! #29794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29795000 0! #29795500 1! #29795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29796000 0! #29796500 1! #29796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29797000 0! #29797500 1! #29797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29798000 0! #29798500 1! #29798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29799000 0! #29799500 1! #29799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29800000 0! #29800500 1! #29800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29801000 0! #29801500 1! #29801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29802000 0! #29802500 1! #29802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29803000 0! #29803500 1! #29803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29804000 0! #29804500 1! #29804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29805000 0! #29805500 1! #29805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29806000 0! #29806500 1! #29806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29807000 0! #29807500 1! #29807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29808000 0! #29808500 1! #29808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29809000 0! #29809500 1! #29809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29810000 0! #29810500 1! #29810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29811000 0! #29811500 1! #29811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29812000 0! #29812500 1! #29812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #29812700 b11010111 ^ b101 g b1010010 c #29813000 0! #29813500 1! #29813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29814000 0! #29814500 1! #29814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29815000 0! #29815500 1! #29815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29816000 0! #29816500 1! #29816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29817000 0! #29817500 1! #29817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29818000 0! #29818500 1! #29818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29819000 0! #29819500 1! #29819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29820000 0! #29820500 1! #29820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29821000 0! #29821500 1! #29821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29822000 0! #29822500 1! #29822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29823000 0! #29823500 1! #29823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29824000 0! #29824500 1! #29824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29825000 0! #29825500 1! #29825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29826000 0! #29826500 1! #29826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29827000 0! #29827500 1! #29827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29828000 0! #29828500 1! #29828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29829000 0! #29829500 1! #29829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29830000 0! #29830500 1! #29830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29831000 0! #29831500 1! #29831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29832000 0! #29832500 1! #29832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29833000 0! #29833500 1! #29833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29834000 0! #29834500 1! #29834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29835000 0! #29835500 1! #29835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29836000 0! #29836500 1! #29836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29837000 0! #29837500 1! #29837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29838000 0! #29838500 1! #29838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29839000 0! #29839500 1! #29839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29840000 0! #29840500 1! #29840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29841000 0! #29841500 1! #29841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29842000 0! #29842500 1! #29842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29843000 0! #29843500 1! #29843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29844000 0! #29844500 1! #29844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29845000 0! #29845500 1! #29845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29846000 0! #29846500 1! #29846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29847000 0! #29847500 1! #29847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29848000 0! #29848500 1! #29848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29849000 0! #29849500 1! #29849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29850000 0! #29850500 1! #29850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29851000 0! #29851500 1! #29851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29852000 0! #29852500 1! #29852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29853000 0! #29853500 1! #29853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29854000 0! #29854500 1! #29854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29855000 0! #29855500 1! #29855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29856000 0! #29856500 1! #29856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29857000 0! #29857500 1! #29857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29858000 0! #29858500 1! #29858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29859000 0! #29859500 1! #29859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29860000 0! #29860500 1! #29860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29861000 0! #29861500 1! #29861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29862000 0! #29862500 1! #29862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29863000 0! #29863500 1! #29863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29864000 0! #29864500 1! #29864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29865000 0! #29865500 1! #29865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29866000 0! #29866500 1! #29866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29867000 0! #29867500 1! #29867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29868000 0! #29868500 1! #29868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29869000 0! #29869500 1! #29869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29870000 0! #29870500 1! #29870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29871000 0! #29871500 1! #29871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29872000 0! #29872500 1! #29872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29873000 0! #29873500 1! #29873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29874000 0! #29874500 1! #29874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29875000 0! #29875500 1! #29875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29876000 0! #29876500 1! #29876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29877000 0! #29877500 1! #29877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29878000 0! #29878500 1! #29878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29879000 0! #29879500 1! #29879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29880000 0! #29880500 1! #29880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29881000 0! #29881500 1! #29881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29882000 0! #29882500 1! #29882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29883000 0! #29883500 1! #29883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29884000 0! #29884500 1! #29884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29885000 0! #29885500 1! #29885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29886000 0! #29886500 1! #29886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29887000 0! #29887500 1! #29887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29888000 0! #29888500 1! #29888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29889000 0! #29889500 1! #29889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29890000 0! #29890500 1! #29890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29891000 0! #29891500 1! #29891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29892000 0! #29892500 1! #29892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29893000 0! #29893500 1! #29893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29894000 0! #29894500 1! #29894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29895000 0! #29895500 1! #29895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29896000 0! #29896500 1! #29896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29897000 0! #29897500 1! #29897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29898000 0! #29898500 1! #29898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29899000 0! #29899500 1! #29899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29900000 0! #29900500 1! #29900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29901000 0! #29901500 1! #29901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29902000 0! #29902500 1! #29902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29903000 0! #29903500 1! #29903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29904000 0! #29904500 1! #29904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29905000 0! #29905500 1! #29905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29906000 0! #29906500 1! #29906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29907000 0! #29907500 1! #29907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29908000 0! #29908500 1! #29908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29909000 0! #29909500 1! #29909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29910000 0! #29910500 1! #29910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29911000 0! #29911500 1! #29911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29912000 0! #29912500 1! #29912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29913000 0! #29913500 1! #29913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29914000 0! #29914500 1! #29914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #29914700 1j 1O #29915000 0! #29915500 1! #29915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29916000 0! #29916500 1! #29916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29917000 0! #29917500 1! #29917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29918000 0! #29918500 1! #29918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29919000 0! #29919500 1! #29919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29920000 0! #29920500 1! #29920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29921000 0! #29921500 1! #29921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29922000 0! #29922500 1! #29922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29923000 0! #29923500 1! #29923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29924000 0! #29924500 1! #29924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29925000 0! #29925500 1! #29925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29926000 0! #29926500 1! #29926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29927000 0! #29927500 1! #29927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29928000 0! #29928500 1! #29928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29929000 0! #29929500 1! #29929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29930000 0! #29930500 1! #29930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29931000 0! #29931500 1! #29931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29932000 0! #29932500 1! #29932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29933000 0! #29933500 1! #29933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29934000 0! #29934500 1! #29934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29935000 0! #29935500 1! #29935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29936000 0! #29936500 1! #29936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29937000 0! #29937500 1! #29937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29938000 0! #29938500 1! #29938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29939000 0! #29939500 1! #29939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29940000 0! #29940500 1! #29940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29941000 0! #29941500 1! #29941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29942000 0! #29942500 1! #29942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29943000 0! #29943500 1! #29943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29944000 0! #29944500 1! #29944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29945000 0! #29945500 1! #29945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29946000 0! #29946500 1! #29946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29947000 0! #29947500 1! #29947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29948000 0! #29948500 1! #29948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29949000 0! #29949500 1! #29949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29950000 0! #29950500 1! #29950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29951000 0! #29951500 1! #29951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29952000 0! #29952500 1! #29952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29953000 0! #29953500 1! #29953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29954000 0! #29954500 1! #29954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29955000 0! #29955500 1! #29955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29956000 0! #29956500 1! #29956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29957000 0! #29957500 1! #29957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29958000 0! #29958500 1! #29958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29959000 0! #29959500 1! #29959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29960000 0! #29960500 1! #29960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29961000 0! #29961500 1! #29961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29962000 0! #29962500 1! #29962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29963000 0! #29963500 1! #29963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29964000 0! #29964500 1! #29964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29965000 0! #29965500 1! #29965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29966000 0! #29966500 1! #29966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29967000 0! #29967500 1! #29967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29968000 0! #29968500 1! #29968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29969000 0! #29969500 1! #29969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29970000 0! #29970500 1! #29970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29971000 0! #29971500 1! #29971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29972000 0! #29972500 1! #29972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29973000 0! #29973500 1! #29973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29974000 0! #29974500 1! #29974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29975000 0! #29975500 1! #29975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29976000 0! #29976500 1! #29976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29977000 0! #29977500 1! #29977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29978000 0! #29978500 1! #29978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29979000 0! #29979500 1! #29979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29980000 0! #29980500 1! #29980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29981000 0! #29981500 1! #29981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29982000 0! #29982500 1! #29982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29983000 0! #29983500 1! #29983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29984000 0! #29984500 1! #29984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29985000 0! #29985500 1! #29985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29986000 0! #29986500 1! #29986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29987000 0! #29987500 1! #29987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29988000 0! #29988500 1! #29988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29989000 0! #29989500 1! #29989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29990000 0! #29990500 1! #29990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29991000 0! #29991500 1! #29991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29992000 0! #29992500 1! #29992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29993000 0! #29993500 1! #29993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29994000 0! #29994500 1! #29994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29995000 0! #29995500 1! #29995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29996000 0! #29996500 1! #29996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29997000 0! #29997500 1! #29997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #29998000 0! #29998500 1! #29998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #29999000 0! #29999500 1! #29999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30000000 0! #30000500 1! #30000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30001000 0! #30001500 1! #30001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30002000 0! #30002500 1! #30002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30003000 0! #30003500 1! #30003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30004000 0! #30004500 1! #30004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30005000 0! #30005500 1! #30005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30006000 0! #30006500 1! #30006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30007000 0! #30007500 1! #30007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30008000 0! #30008500 1! #30008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30009000 0! #30009500 1! #30009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30010000 0! #30010500 1! #30010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30011000 0! #30011500 1! #30011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30012000 0! #30012500 1! #30012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30013000 0! #30013500 1! #30013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30014000 0! #30014500 1! #30014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30015000 0! #30015500 1! #30015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30016000 0! #30016500 1! #30016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30017000 0! #30017500 1! #30017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30018000 0! #30018500 1! #30018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30019000 0! #30019500 1! #30019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30020000 0! #30020500 1! #30020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30021000 0! #30021500 1! #30021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30022000 0! #30022500 1! #30022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30023000 0! #30023500 1! #30023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30024000 0! #30024500 1! #30024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30025000 0! #30025500 1! #30025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30026000 0! #30026500 1! #30026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30027000 0! #30027500 1! #30027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30028000 0! #30028500 1! #30028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30029000 0! #30029500 1! #30029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30030000 0! #30030500 1! #30030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30031000 0! #30031500 1! #30031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30032000 0! #30032500 1! #30032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30033000 0! #30033500 1! #30033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30034000 0! #30034500 1! #30034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30035000 0! #30035500 1! #30035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30036000 0! #30036500 1! #30036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30037000 0! #30037500 1! #30037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30038000 0! #30038500 1! #30038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30039000 0! #30039500 1! #30039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30040000 0! #30040500 1! #30040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30041000 0! #30041500 1! #30041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30042000 0! #30042500 1! #30042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30043000 0! #30043500 1! #30043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30044000 0! #30044500 1! #30044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30045000 0! #30045500 1! #30045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30046000 0! #30046500 1! #30046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30047000 0! #30047500 1! #30047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30048000 0! #30048500 1! #30048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30049000 0! #30049500 1! #30049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30050000 0! #30050500 1! #30050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30051000 0! #30051500 1! #30051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30052000 0! #30052500 1! #30052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30053000 0! #30053500 1! #30053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30054000 0! #30054500 1! #30054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30055000 0! #30055500 1! #30055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30056000 0! #30056500 1! #30056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30057000 0! #30057500 1! #30057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30058000 0! #30058500 1! #30058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30059000 0! #30059500 1! #30059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30060000 0! #30060500 1! #30060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30061000 0! #30061500 1! #30061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30062000 0! #30062500 1! #30062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30063000 0! #30063500 1! #30063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30064000 0! #30064500 1! #30064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30065000 0! #30065500 1! #30065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30066000 0! #30066500 1! #30066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30067000 0! #30067500 1! #30067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #30067700 b10101111 ^ b100 g b10100101 c #30068000 0! #30068500 1! #30068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30069000 0! #30069500 1! #30069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30070000 0! #30070500 1! #30070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30071000 0! #30071500 1! #30071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30072000 0! #30072500 1! #30072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30073000 0! #30073500 1! #30073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30074000 0! #30074500 1! #30074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30075000 0! #30075500 1! #30075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30076000 0! #30076500 1! #30076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30077000 0! #30077500 1! #30077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30078000 0! #30078500 1! #30078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30079000 0! #30079500 1! #30079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30080000 0! #30080500 1! #30080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30081000 0! #30081500 1! #30081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30082000 0! #30082500 1! #30082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30083000 0! #30083500 1! #30083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30084000 0! #30084500 1! #30084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30085000 0! #30085500 1! #30085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30086000 0! #30086500 1! #30086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30087000 0! #30087500 1! #30087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30088000 0! #30088500 1! #30088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30089000 0! #30089500 1! #30089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30090000 0! #30090500 1! #30090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30091000 0! #30091500 1! #30091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30092000 0! #30092500 1! #30092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30093000 0! #30093500 1! #30093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30094000 0! #30094500 1! #30094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30095000 0! #30095500 1! #30095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30096000 0! #30096500 1! #30096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30097000 0! #30097500 1! #30097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30098000 0! #30098500 1! #30098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30099000 0! #30099500 1! #30099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30100000 0! #30100500 1! #30100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30101000 0! #30101500 1! #30101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30102000 0! #30102500 1! #30102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30103000 0! #30103500 1! #30103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30104000 0! #30104500 1! #30104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30105000 0! #30105500 1! #30105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30106000 0! #30106500 1! #30106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30107000 0! #30107500 1! #30107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30108000 0! #30108500 1! #30108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30109000 0! #30109500 1! #30109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30110000 0! #30110500 1! #30110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30111000 0! #30111500 1! #30111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30112000 0! #30112500 1! #30112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30113000 0! #30113500 1! #30113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30114000 0! #30114500 1! #30114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30115000 0! #30115500 1! #30115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30116000 0! #30116500 1! #30116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30117000 0! #30117500 1! #30117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30118000 0! #30118500 1! #30118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30119000 0! #30119500 1! #30119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30120000 0! #30120500 1! #30120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30121000 0! #30121500 1! #30121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30122000 0! #30122500 1! #30122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30123000 0! #30123500 1! #30123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30124000 0! #30124500 1! #30124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30125000 0! #30125500 1! #30125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30126000 0! #30126500 1! #30126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30127000 0! #30127500 1! #30127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30128000 0! #30128500 1! #30128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30129000 0! #30129500 1! #30129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30130000 0! #30130500 1! #30130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30131000 0! #30131500 1! #30131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30132000 0! #30132500 1! #30132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30133000 0! #30133500 1! #30133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30134000 0! #30134500 1! #30134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30135000 0! #30135500 1! #30135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30136000 0! #30136500 1! #30136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30137000 0! #30137500 1! #30137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30138000 0! #30138500 1! #30138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30139000 0! #30139500 1! #30139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30140000 0! #30140500 1! #30140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30141000 0! #30141500 1! #30141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30142000 0! #30142500 1! #30142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30143000 0! #30143500 1! #30143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30144000 0! #30144500 1! #30144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30145000 0! #30145500 1! #30145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30146000 0! #30146500 1! #30146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30147000 0! #30147500 1! #30147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30148000 0! #30148500 1! #30148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30149000 0! #30149500 1! #30149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30150000 0! #30150500 1! #30150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30151000 0! #30151500 1! #30151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30152000 0! #30152500 1! #30152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30153000 0! #30153500 1! #30153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30154000 0! #30154500 1! #30154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30155000 0! #30155500 1! #30155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30156000 0! #30156500 1! #30156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30157000 0! #30157500 1! #30157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30158000 0! #30158500 1! #30158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30159000 0! #30159500 1! #30159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30160000 0! #30160500 1! #30160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30161000 0! #30161500 1! #30161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30162000 0! #30162500 1! #30162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30163000 0! #30163500 1! #30163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30164000 0! #30164500 1! #30164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30165000 0! #30165500 1! #30165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30166000 0! #30166500 1! #30166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30167000 0! #30167500 1! #30167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30168000 0! #30168500 1! #30168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30169000 0! #30169500 1! #30169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #30170000 0! #30170500 1! #30170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30171000 0! #30171500 1! #30171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30172000 0! #30172500 1! #30172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30173000 0! #30173500 1! #30173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30174000 0! #30174500 1! #30174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30175000 0! #30175500 1! #30175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30176000 0! #30176500 1! #30176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30177000 0! #30177500 1! #30177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30178000 0! #30178500 1! #30178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30179000 0! #30179500 1! #30179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30180000 0! #30180500 1! #30180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30181000 0! #30181500 1! #30181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30182000 0! #30182500 1! #30182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30183000 0! #30183500 1! #30183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30184000 0! #30184500 1! #30184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30185000 0! #30185500 1! #30185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30186000 0! #30186500 1! #30186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30187000 0! #30187500 1! #30187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30188000 0! #30188500 1! #30188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30189000 0! #30189500 1! #30189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30190000 0! #30190500 1! #30190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30191000 0! #30191500 1! #30191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30192000 0! #30192500 1! #30192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30193000 0! #30193500 1! #30193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30194000 0! #30194500 1! #30194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30195000 0! #30195500 1! #30195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30196000 0! #30196500 1! #30196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30197000 0! #30197500 1! #30197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30198000 0! #30198500 1! #30198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30199000 0! #30199500 1! #30199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30200000 0! #30200500 1! #30200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30201000 0! #30201500 1! #30201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30202000 0! #30202500 1! #30202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30203000 0! #30203500 1! #30203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30204000 0! #30204500 1! #30204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30205000 0! #30205500 1! #30205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30206000 0! #30206500 1! #30206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30207000 0! #30207500 1! #30207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30208000 0! #30208500 1! #30208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30209000 0! #30209500 1! #30209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30210000 0! #30210500 1! #30210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30211000 0! #30211500 1! #30211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30212000 0! #30212500 1! #30212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30213000 0! #30213500 1! #30213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30214000 0! #30214500 1! #30214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30215000 0! #30215500 1! #30215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30216000 0! #30216500 1! #30216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30217000 0! #30217500 1! #30217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30218000 0! #30218500 1! #30218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30219000 0! #30219500 1! #30219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30220000 0! #30220500 1! #30220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30221000 0! #30221500 1! #30221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30222000 0! #30222500 1! #30222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30223000 0! #30223500 1! #30223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30224000 0! #30224500 1! #30224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30225000 0! #30225500 1! #30225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30226000 0! #30226500 1! #30226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30227000 0! #30227500 1! #30227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30228000 0! #30228500 1! #30228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30229000 0! #30229500 1! #30229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30230000 0! #30230500 1! #30230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30231000 0! #30231500 1! #30231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30232000 0! #30232500 1! #30232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30233000 0! #30233500 1! #30233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30234000 0! #30234500 1! #30234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30235000 0! #30235500 1! #30235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30236000 0! #30236500 1! #30236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30237000 0! #30237500 1! #30237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30238000 0! #30238500 1! #30238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30239000 0! #30239500 1! #30239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30240000 0! #30240500 1! #30240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30241000 0! #30241500 1! #30241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30242000 0! #30242500 1! #30242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30243000 0! #30243500 1! #30243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30244000 0! #30244500 1! #30244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30245000 0! #30245500 1! #30245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30246000 0! #30246500 1! #30246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30247000 0! #30247500 1! #30247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30248000 0! #30248500 1! #30248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30249000 0! #30249500 1! #30249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30250000 0! #30250500 1! #30250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30251000 0! #30251500 1! #30251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30252000 0! #30252500 1! #30252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30253000 0! #30253500 1! #30253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30254000 0! #30254500 1! #30254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30255000 0! #30255500 1! #30255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30256000 0! #30256500 1! #30256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30257000 0! #30257500 1! #30257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30258000 0! #30258500 1! #30258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30259000 0! #30259500 1! #30259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30260000 0! #30260500 1! #30260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30261000 0! #30261500 1! #30261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30262000 0! #30262500 1! #30262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30263000 0! #30263500 1! #30263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30264000 0! #30264500 1! #30264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30265000 0! #30265500 1! #30265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30266000 0! #30266500 1! #30266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30267000 0! #30267500 1! #30267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30268000 0! #30268500 1! #30268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30269000 0! #30269500 1! #30269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30270000 0! #30270500 1! #30270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30271000 0! #30271500 1! #30271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30272000 0! #30272500 1! #30272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30273000 0! #30273500 1! #30273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30274000 0! #30274500 1! #30274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30275000 0! #30275500 1! #30275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30276000 0! #30276500 1! #30276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30277000 0! #30277500 1! #30277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30278000 0! #30278500 1! #30278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30279000 0! #30279500 1! #30279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30280000 0! #30280500 1! #30280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30281000 0! #30281500 1! #30281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30282000 0! #30282500 1! #30282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30283000 0! #30283500 1! #30283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30284000 0! #30284500 1! #30284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30285000 0! #30285500 1! #30285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30286000 0! #30286500 1! #30286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30287000 0! #30287500 1! #30287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30288000 0! #30288500 1! #30288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30289000 0! #30289500 1! #30289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30290000 0! #30290500 1! #30290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30291000 0! #30291500 1! #30291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30292000 0! #30292500 1! #30292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30293000 0! #30293500 1! #30293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30294000 0! #30294500 1! #30294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30295000 0! #30295500 1! #30295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30296000 0! #30296500 1! #30296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30297000 0! #30297500 1! #30297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30298000 0! #30298500 1! #30298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30299000 0! #30299500 1! #30299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30300000 0! #30300500 1! #30300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30301000 0! #30301500 1! #30301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30302000 0! #30302500 1! #30302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30303000 0! #30303500 1! #30303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30304000 0! #30304500 1! #30304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30305000 0! #30305500 1! #30305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30306000 0! #30306500 1! #30306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30307000 0! #30307500 1! #30307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30308000 0! #30308500 1! #30308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30309000 0! #30309500 1! #30309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30310000 0! #30310500 1! #30310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30311000 0! #30311500 1! #30311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30312000 0! #30312500 1! #30312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30313000 0! #30313500 1! #30313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30314000 0! #30314500 1! #30314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30315000 0! #30315500 1! #30315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30316000 0! #30316500 1! #30316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30317000 0! #30317500 1! #30317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30318000 0! #30318500 1! #30318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30319000 0! #30319500 1! #30319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30320000 0! #30320500 1! #30320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30321000 0! #30321500 1! #30321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30322000 0! #30322500 1! #30322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #30322700 b1011111 ^ b11 g b1001011 c #30323000 0! #30323500 1! #30323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30324000 0! #30324500 1! #30324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30325000 0! #30325500 1! #30325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30326000 0! #30326500 1! #30326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30327000 0! #30327500 1! #30327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30328000 0! #30328500 1! #30328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30329000 0! #30329500 1! #30329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30330000 0! #30330500 1! #30330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30331000 0! #30331500 1! #30331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30332000 0! #30332500 1! #30332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30333000 0! #30333500 1! #30333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30334000 0! #30334500 1! #30334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30335000 0! #30335500 1! #30335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30336000 0! #30336500 1! #30336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30337000 0! #30337500 1! #30337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30338000 0! #30338500 1! #30338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30339000 0! #30339500 1! #30339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30340000 0! #30340500 1! #30340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30341000 0! #30341500 1! #30341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30342000 0! #30342500 1! #30342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30343000 0! #30343500 1! #30343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30344000 0! #30344500 1! #30344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30345000 0! #30345500 1! #30345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30346000 0! #30346500 1! #30346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30347000 0! #30347500 1! #30347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30348000 0! #30348500 1! #30348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30349000 0! #30349500 1! #30349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30350000 0! #30350500 1! #30350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30351000 0! #30351500 1! #30351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30352000 0! #30352500 1! #30352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30353000 0! #30353500 1! #30353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30354000 0! #30354500 1! #30354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30355000 0! #30355500 1! #30355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30356000 0! #30356500 1! #30356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30357000 0! #30357500 1! #30357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30358000 0! #30358500 1! #30358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30359000 0! #30359500 1! #30359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30360000 0! #30360500 1! #30360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30361000 0! #30361500 1! #30361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30362000 0! #30362500 1! #30362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30363000 0! #30363500 1! #30363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30364000 0! #30364500 1! #30364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30365000 0! #30365500 1! #30365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30366000 0! #30366500 1! #30366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30367000 0! #30367500 1! #30367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30368000 0! #30368500 1! #30368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30369000 0! #30369500 1! #30369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30370000 0! #30370500 1! #30370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30371000 0! #30371500 1! #30371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30372000 0! #30372500 1! #30372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30373000 0! #30373500 1! #30373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30374000 0! #30374500 1! #30374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30375000 0! #30375500 1! #30375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30376000 0! #30376500 1! #30376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30377000 0! #30377500 1! #30377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30378000 0! #30378500 1! #30378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30379000 0! #30379500 1! #30379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30380000 0! #30380500 1! #30380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30381000 0! #30381500 1! #30381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30382000 0! #30382500 1! #30382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30383000 0! #30383500 1! #30383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30384000 0! #30384500 1! #30384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30385000 0! #30385500 1! #30385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30386000 0! #30386500 1! #30386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30387000 0! #30387500 1! #30387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30388000 0! #30388500 1! #30388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30389000 0! #30389500 1! #30389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30390000 0! #30390500 1! #30390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30391000 0! #30391500 1! #30391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30392000 0! #30392500 1! #30392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30393000 0! #30393500 1! #30393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30394000 0! #30394500 1! #30394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30395000 0! #30395500 1! #30395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30396000 0! #30396500 1! #30396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30397000 0! #30397500 1! #30397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30398000 0! #30398500 1! #30398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30399000 0! #30399500 1! #30399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30400000 0! #30400500 1! #30400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30401000 0! #30401500 1! #30401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30402000 0! #30402500 1! #30402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30403000 0! #30403500 1! #30403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30404000 0! #30404500 1! #30404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30405000 0! #30405500 1! #30405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30406000 0! #30406500 1! #30406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30407000 0! #30407500 1! #30407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30408000 0! #30408500 1! #30408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30409000 0! #30409500 1! #30409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30410000 0! #30410500 1! #30410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30411000 0! #30411500 1! #30411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30412000 0! #30412500 1! #30412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30413000 0! #30413500 1! #30413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30414000 0! #30414500 1! #30414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30415000 0! #30415500 1! #30415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30416000 0! #30416500 1! #30416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30417000 0! #30417500 1! #30417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30418000 0! #30418500 1! #30418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30419000 0! #30419500 1! #30419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30420000 0! #30420500 1! #30420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30421000 0! #30421500 1! #30421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30422000 0! #30422500 1! #30422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30423000 0! #30423500 1! #30423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30424000 0! #30424500 1! #30424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #30424700 0j 0O #30425000 0! #30425500 1! #30425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30426000 0! #30426500 1! #30426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30427000 0! #30427500 1! #30427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30428000 0! #30428500 1! #30428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30429000 0! #30429500 1! #30429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30430000 0! #30430500 1! #30430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30431000 0! #30431500 1! #30431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30432000 0! #30432500 1! #30432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30433000 0! #30433500 1! #30433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30434000 0! #30434500 1! #30434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30435000 0! #30435500 1! #30435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30436000 0! #30436500 1! #30436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30437000 0! #30437500 1! #30437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30438000 0! #30438500 1! #30438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30439000 0! #30439500 1! #30439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30440000 0! #30440500 1! #30440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30441000 0! #30441500 1! #30441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30442000 0! #30442500 1! #30442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30443000 0! #30443500 1! #30443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30444000 0! #30444500 1! #30444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30445000 0! #30445500 1! #30445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30446000 0! #30446500 1! #30446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30447000 0! #30447500 1! #30447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30448000 0! #30448500 1! #30448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30449000 0! #30449500 1! #30449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30450000 0! #30450500 1! #30450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30451000 0! #30451500 1! #30451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30452000 0! #30452500 1! #30452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30453000 0! #30453500 1! #30453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30454000 0! #30454500 1! #30454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30455000 0! #30455500 1! #30455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30456000 0! #30456500 1! #30456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30457000 0! #30457500 1! #30457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30458000 0! #30458500 1! #30458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30459000 0! #30459500 1! #30459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30460000 0! #30460500 1! #30460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30461000 0! #30461500 1! #30461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30462000 0! #30462500 1! #30462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30463000 0! #30463500 1! #30463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30464000 0! #30464500 1! #30464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30465000 0! #30465500 1! #30465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30466000 0! #30466500 1! #30466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30467000 0! #30467500 1! #30467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30468000 0! #30468500 1! #30468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30469000 0! #30469500 1! #30469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30470000 0! #30470500 1! #30470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30471000 0! #30471500 1! #30471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30472000 0! #30472500 1! #30472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30473000 0! #30473500 1! #30473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30474000 0! #30474500 1! #30474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30475000 0! #30475500 1! #30475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30476000 0! #30476500 1! #30476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30477000 0! #30477500 1! #30477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30478000 0! #30478500 1! #30478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30479000 0! #30479500 1! #30479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30480000 0! #30480500 1! #30480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30481000 0! #30481500 1! #30481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30482000 0! #30482500 1! #30482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30483000 0! #30483500 1! #30483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30484000 0! #30484500 1! #30484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30485000 0! #30485500 1! #30485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30486000 0! #30486500 1! #30486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30487000 0! #30487500 1! #30487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30488000 0! #30488500 1! #30488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30489000 0! #30489500 1! #30489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30490000 0! #30490500 1! #30490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30491000 0! #30491500 1! #30491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30492000 0! #30492500 1! #30492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30493000 0! #30493500 1! #30493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30494000 0! #30494500 1! #30494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30495000 0! #30495500 1! #30495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30496000 0! #30496500 1! #30496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30497000 0! #30497500 1! #30497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30498000 0! #30498500 1! #30498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30499000 0! #30499500 1! #30499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30500000 0! #30500500 1! #30500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30501000 0! #30501500 1! #30501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30502000 0! #30502500 1! #30502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30503000 0! #30503500 1! #30503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30504000 0! #30504500 1! #30504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30505000 0! #30505500 1! #30505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30506000 0! #30506500 1! #30506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30507000 0! #30507500 1! #30507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30508000 0! #30508500 1! #30508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30509000 0! #30509500 1! #30509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30510000 0! #30510500 1! #30510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30511000 0! #30511500 1! #30511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30512000 0! #30512500 1! #30512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30513000 0! #30513500 1! #30513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30514000 0! #30514500 1! #30514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30515000 0! #30515500 1! #30515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30516000 0! #30516500 1! #30516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30517000 0! #30517500 1! #30517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30518000 0! #30518500 1! #30518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30519000 0! #30519500 1! #30519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30520000 0! #30520500 1! #30520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30521000 0! #30521500 1! #30521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30522000 0! #30522500 1! #30522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30523000 0! #30523500 1! #30523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30524000 0! #30524500 1! #30524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30525000 0! #30525500 1! #30525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30526000 0! #30526500 1! #30526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30527000 0! #30527500 1! #30527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30528000 0! #30528500 1! #30528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30529000 0! #30529500 1! #30529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30530000 0! #30530500 1! #30530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30531000 0! #30531500 1! #30531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30532000 0! #30532500 1! #30532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30533000 0! #30533500 1! #30533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30534000 0! #30534500 1! #30534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30535000 0! #30535500 1! #30535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30536000 0! #30536500 1! #30536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30537000 0! #30537500 1! #30537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30538000 0! #30538500 1! #30538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30539000 0! #30539500 1! #30539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30540000 0! #30540500 1! #30540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30541000 0! #30541500 1! #30541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30542000 0! #30542500 1! #30542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30543000 0! #30543500 1! #30543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30544000 0! #30544500 1! #30544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30545000 0! #30545500 1! #30545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30546000 0! #30546500 1! #30546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30547000 0! #30547500 1! #30547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30548000 0! #30548500 1! #30548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30549000 0! #30549500 1! #30549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30550000 0! #30550500 1! #30550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30551000 0! #30551500 1! #30551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30552000 0! #30552500 1! #30552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30553000 0! #30553500 1! #30553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30554000 0! #30554500 1! #30554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30555000 0! #30555500 1! #30555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30556000 0! #30556500 1! #30556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30557000 0! #30557500 1! #30557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30558000 0! #30558500 1! #30558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30559000 0! #30559500 1! #30559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30560000 0! #30560500 1! #30560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30561000 0! #30561500 1! #30561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30562000 0! #30562500 1! #30562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30563000 0! #30563500 1! #30563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30564000 0! #30564500 1! #30564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30565000 0! #30565500 1! #30565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30566000 0! #30566500 1! #30566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30567000 0! #30567500 1! #30567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30568000 0! #30568500 1! #30568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30569000 0! #30569500 1! #30569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30570000 0! #30570500 1! #30570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30571000 0! #30571500 1! #30571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30572000 0! #30572500 1! #30572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30573000 0! #30573500 1! #30573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30574000 0! #30574500 1! #30574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30575000 0! #30575500 1! #30575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30576000 0! #30576500 1! #30576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30577000 0! #30577500 1! #30577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #30577700 b10111111 ^ b10 g b10010110 c #30578000 0! #30578500 1! #30578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30579000 0! #30579500 1! #30579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30580000 0! #30580500 1! #30580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30581000 0! #30581500 1! #30581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30582000 0! #30582500 1! #30582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30583000 0! #30583500 1! #30583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30584000 0! #30584500 1! #30584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30585000 0! #30585500 1! #30585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30586000 0! #30586500 1! #30586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30587000 0! #30587500 1! #30587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30588000 0! #30588500 1! #30588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30589000 0! #30589500 1! #30589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30590000 0! #30590500 1! #30590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30591000 0! #30591500 1! #30591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30592000 0! #30592500 1! #30592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30593000 0! #30593500 1! #30593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30594000 0! #30594500 1! #30594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30595000 0! #30595500 1! #30595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30596000 0! #30596500 1! #30596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30597000 0! #30597500 1! #30597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30598000 0! #30598500 1! #30598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30599000 0! #30599500 1! #30599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30600000 0! #30600500 1! #30600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30601000 0! #30601500 1! #30601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30602000 0! #30602500 1! #30602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30603000 0! #30603500 1! #30603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30604000 0! #30604500 1! #30604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30605000 0! #30605500 1! #30605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30606000 0! #30606500 1! #30606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30607000 0! #30607500 1! #30607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30608000 0! #30608500 1! #30608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30609000 0! #30609500 1! #30609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30610000 0! #30610500 1! #30610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30611000 0! #30611500 1! #30611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30612000 0! #30612500 1! #30612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30613000 0! #30613500 1! #30613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30614000 0! #30614500 1! #30614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30615000 0! #30615500 1! #30615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30616000 0! #30616500 1! #30616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30617000 0! #30617500 1! #30617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30618000 0! #30618500 1! #30618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30619000 0! #30619500 1! #30619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30620000 0! #30620500 1! #30620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30621000 0! #30621500 1! #30621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30622000 0! #30622500 1! #30622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30623000 0! #30623500 1! #30623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30624000 0! #30624500 1! #30624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30625000 0! #30625500 1! #30625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30626000 0! #30626500 1! #30626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30627000 0! #30627500 1! #30627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30628000 0! #30628500 1! #30628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30629000 0! #30629500 1! #30629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30630000 0! #30630500 1! #30630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30631000 0! #30631500 1! #30631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30632000 0! #30632500 1! #30632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30633000 0! #30633500 1! #30633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30634000 0! #30634500 1! #30634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30635000 0! #30635500 1! #30635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30636000 0! #30636500 1! #30636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30637000 0! #30637500 1! #30637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30638000 0! #30638500 1! #30638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30639000 0! #30639500 1! #30639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30640000 0! #30640500 1! #30640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30641000 0! #30641500 1! #30641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30642000 0! #30642500 1! #30642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30643000 0! #30643500 1! #30643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30644000 0! #30644500 1! #30644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30645000 0! #30645500 1! #30645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30646000 0! #30646500 1! #30646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30647000 0! #30647500 1! #30647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30648000 0! #30648500 1! #30648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30649000 0! #30649500 1! #30649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30650000 0! #30650500 1! #30650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30651000 0! #30651500 1! #30651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30652000 0! #30652500 1! #30652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30653000 0! #30653500 1! #30653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30654000 0! #30654500 1! #30654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30655000 0! #30655500 1! #30655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30656000 0! #30656500 1! #30656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30657000 0! #30657500 1! #30657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30658000 0! #30658500 1! #30658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30659000 0! #30659500 1! #30659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30660000 0! #30660500 1! #30660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30661000 0! #30661500 1! #30661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30662000 0! #30662500 1! #30662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30663000 0! #30663500 1! #30663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30664000 0! #30664500 1! #30664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30665000 0! #30665500 1! #30665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30666000 0! #30666500 1! #30666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30667000 0! #30667500 1! #30667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30668000 0! #30668500 1! #30668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30669000 0! #30669500 1! #30669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30670000 0! #30670500 1! #30670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30671000 0! #30671500 1! #30671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30672000 0! #30672500 1! #30672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30673000 0! #30673500 1! #30673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30674000 0! #30674500 1! #30674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30675000 0! #30675500 1! #30675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30676000 0! #30676500 1! #30676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30677000 0! #30677500 1! #30677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30678000 0! #30678500 1! #30678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30679000 0! #30679500 1! #30679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #30679700 1j 1O #30680000 0! #30680500 1! #30680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30681000 0! #30681500 1! #30681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30682000 0! #30682500 1! #30682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30683000 0! #30683500 1! #30683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30684000 0! #30684500 1! #30684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30685000 0! #30685500 1! #30685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30686000 0! #30686500 1! #30686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30687000 0! #30687500 1! #30687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30688000 0! #30688500 1! #30688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30689000 0! #30689500 1! #30689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30690000 0! #30690500 1! #30690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30691000 0! #30691500 1! #30691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30692000 0! #30692500 1! #30692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30693000 0! #30693500 1! #30693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30694000 0! #30694500 1! #30694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30695000 0! #30695500 1! #30695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30696000 0! #30696500 1! #30696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30697000 0! #30697500 1! #30697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30698000 0! #30698500 1! #30698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30699000 0! #30699500 1! #30699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30700000 0! #30700500 1! #30700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30701000 0! #30701500 1! #30701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30702000 0! #30702500 1! #30702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30703000 0! #30703500 1! #30703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30704000 0! #30704500 1! #30704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30705000 0! #30705500 1! #30705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30706000 0! #30706500 1! #30706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30707000 0! #30707500 1! #30707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30708000 0! #30708500 1! #30708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30709000 0! #30709500 1! #30709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30710000 0! #30710500 1! #30710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30711000 0! #30711500 1! #30711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30712000 0! #30712500 1! #30712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30713000 0! #30713500 1! #30713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30714000 0! #30714500 1! #30714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30715000 0! #30715500 1! #30715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30716000 0! #30716500 1! #30716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30717000 0! #30717500 1! #30717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30718000 0! #30718500 1! #30718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30719000 0! #30719500 1! #30719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30720000 0! #30720500 1! #30720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30721000 0! #30721500 1! #30721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30722000 0! #30722500 1! #30722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30723000 0! #30723500 1! #30723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30724000 0! #30724500 1! #30724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30725000 0! #30725500 1! #30725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30726000 0! #30726500 1! #30726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30727000 0! #30727500 1! #30727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30728000 0! #30728500 1! #30728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30729000 0! #30729500 1! #30729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30730000 0! #30730500 1! #30730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30731000 0! #30731500 1! #30731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30732000 0! #30732500 1! #30732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30733000 0! #30733500 1! #30733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30734000 0! #30734500 1! #30734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30735000 0! #30735500 1! #30735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30736000 0! #30736500 1! #30736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30737000 0! #30737500 1! #30737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30738000 0! #30738500 1! #30738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30739000 0! #30739500 1! #30739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30740000 0! #30740500 1! #30740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30741000 0! #30741500 1! #30741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30742000 0! #30742500 1! #30742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30743000 0! #30743500 1! #30743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30744000 0! #30744500 1! #30744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30745000 0! #30745500 1! #30745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30746000 0! #30746500 1! #30746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30747000 0! #30747500 1! #30747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30748000 0! #30748500 1! #30748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30749000 0! #30749500 1! #30749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30750000 0! #30750500 1! #30750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30751000 0! #30751500 1! #30751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30752000 0! #30752500 1! #30752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30753000 0! #30753500 1! #30753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30754000 0! #30754500 1! #30754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30755000 0! #30755500 1! #30755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30756000 0! #30756500 1! #30756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30757000 0! #30757500 1! #30757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30758000 0! #30758500 1! #30758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30759000 0! #30759500 1! #30759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30760000 0! #30760500 1! #30760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30761000 0! #30761500 1! #30761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30762000 0! #30762500 1! #30762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30763000 0! #30763500 1! #30763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30764000 0! #30764500 1! #30764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30765000 0! #30765500 1! #30765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30766000 0! #30766500 1! #30766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30767000 0! #30767500 1! #30767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30768000 0! #30768500 1! #30768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30769000 0! #30769500 1! #30769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30770000 0! #30770500 1! #30770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30771000 0! #30771500 1! #30771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30772000 0! #30772500 1! #30772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30773000 0! #30773500 1! #30773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30774000 0! #30774500 1! #30774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30775000 0! #30775500 1! #30775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30776000 0! #30776500 1! #30776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30777000 0! #30777500 1! #30777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30778000 0! #30778500 1! #30778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30779000 0! #30779500 1! #30779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30780000 0! #30780500 1! #30780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30781000 0! #30781500 1! #30781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30782000 0! #30782500 1! #30782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30783000 0! #30783500 1! #30783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30784000 0! #30784500 1! #30784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30785000 0! #30785500 1! #30785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30786000 0! #30786500 1! #30786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30787000 0! #30787500 1! #30787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30788000 0! #30788500 1! #30788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30789000 0! #30789500 1! #30789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30790000 0! #30790500 1! #30790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30791000 0! #30791500 1! #30791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30792000 0! #30792500 1! #30792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30793000 0! #30793500 1! #30793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30794000 0! #30794500 1! #30794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30795000 0! #30795500 1! #30795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30796000 0! #30796500 1! #30796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30797000 0! #30797500 1! #30797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30798000 0! #30798500 1! #30798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30799000 0! #30799500 1! #30799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30800000 0! #30800500 1! #30800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30801000 0! #30801500 1! #30801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30802000 0! #30802500 1! #30802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30803000 0! #30803500 1! #30803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30804000 0! #30804500 1! #30804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30805000 0! #30805500 1! #30805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30806000 0! #30806500 1! #30806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30807000 0! #30807500 1! #30807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30808000 0! #30808500 1! #30808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30809000 0! #30809500 1! #30809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30810000 0! #30810500 1! #30810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30811000 0! #30811500 1! #30811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30812000 0! #30812500 1! #30812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30813000 0! #30813500 1! #30813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30814000 0! #30814500 1! #30814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30815000 0! #30815500 1! #30815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30816000 0! #30816500 1! #30816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30817000 0! #30817500 1! #30817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30818000 0! #30818500 1! #30818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30819000 0! #30819500 1! #30819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30820000 0! #30820500 1! #30820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30821000 0! #30821500 1! #30821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30822000 0! #30822500 1! #30822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30823000 0! #30823500 1! #30823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30824000 0! #30824500 1! #30824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30825000 0! #30825500 1! #30825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30826000 0! #30826500 1! #30826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30827000 0! #30827500 1! #30827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30828000 0! #30828500 1! #30828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30829000 0! #30829500 1! #30829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30830000 0! #30830500 1! #30830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30831000 0! #30831500 1! #30831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30832000 0! #30832500 1! #30832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #30832700 b1111111 ^ b1 g b101101 c #30833000 0! #30833500 1! #30833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30834000 0! #30834500 1! #30834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30835000 0! #30835500 1! #30835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30836000 0! #30836500 1! #30836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30837000 0! #30837500 1! #30837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30838000 0! #30838500 1! #30838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30839000 0! #30839500 1! #30839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30840000 0! #30840500 1! #30840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30841000 0! #30841500 1! #30841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30842000 0! #30842500 1! #30842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30843000 0! #30843500 1! #30843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30844000 0! #30844500 1! #30844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30845000 0! #30845500 1! #30845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30846000 0! #30846500 1! #30846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30847000 0! #30847500 1! #30847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30848000 0! #30848500 1! #30848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30849000 0! #30849500 1! #30849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30850000 0! #30850500 1! #30850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30851000 0! #30851500 1! #30851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30852000 0! #30852500 1! #30852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30853000 0! #30853500 1! #30853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30854000 0! #30854500 1! #30854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30855000 0! #30855500 1! #30855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30856000 0! #30856500 1! #30856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30857000 0! #30857500 1! #30857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30858000 0! #30858500 1! #30858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30859000 0! #30859500 1! #30859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30860000 0! #30860500 1! #30860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30861000 0! #30861500 1! #30861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30862000 0! #30862500 1! #30862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30863000 0! #30863500 1! #30863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30864000 0! #30864500 1! #30864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30865000 0! #30865500 1! #30865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30866000 0! #30866500 1! #30866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30867000 0! #30867500 1! #30867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30868000 0! #30868500 1! #30868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30869000 0! #30869500 1! #30869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30870000 0! #30870500 1! #30870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30871000 0! #30871500 1! #30871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30872000 0! #30872500 1! #30872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30873000 0! #30873500 1! #30873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30874000 0! #30874500 1! #30874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30875000 0! #30875500 1! #30875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30876000 0! #30876500 1! #30876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30877000 0! #30877500 1! #30877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30878000 0! #30878500 1! #30878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30879000 0! #30879500 1! #30879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30880000 0! #30880500 1! #30880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30881000 0! #30881500 1! #30881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30882000 0! #30882500 1! #30882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30883000 0! #30883500 1! #30883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30884000 0! #30884500 1! #30884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30885000 0! #30885500 1! #30885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30886000 0! #30886500 1! #30886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30887000 0! #30887500 1! #30887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30888000 0! #30888500 1! #30888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30889000 0! #30889500 1! #30889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30890000 0! #30890500 1! #30890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30891000 0! #30891500 1! #30891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30892000 0! #30892500 1! #30892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30893000 0! #30893500 1! #30893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30894000 0! #30894500 1! #30894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30895000 0! #30895500 1! #30895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30896000 0! #30896500 1! #30896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30897000 0! #30897500 1! #30897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30898000 0! #30898500 1! #30898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30899000 0! #30899500 1! #30899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30900000 0! #30900500 1! #30900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30901000 0! #30901500 1! #30901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30902000 0! #30902500 1! #30902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30903000 0! #30903500 1! #30903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30904000 0! #30904500 1! #30904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30905000 0! #30905500 1! #30905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30906000 0! #30906500 1! #30906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30907000 0! #30907500 1! #30907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30908000 0! #30908500 1! #30908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30909000 0! #30909500 1! #30909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30910000 0! #30910500 1! #30910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30911000 0! #30911500 1! #30911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30912000 0! #30912500 1! #30912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30913000 0! #30913500 1! #30913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30914000 0! #30914500 1! #30914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30915000 0! #30915500 1! #30915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30916000 0! #30916500 1! #30916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30917000 0! #30917500 1! #30917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30918000 0! #30918500 1! #30918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30919000 0! #30919500 1! #30919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30920000 0! #30920500 1! #30920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30921000 0! #30921500 1! #30921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30922000 0! #30922500 1! #30922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30923000 0! #30923500 1! #30923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30924000 0! #30924500 1! #30924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30925000 0! #30925500 1! #30925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30926000 0! #30926500 1! #30926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30927000 0! #30927500 1! #30927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30928000 0! #30928500 1! #30928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30929000 0! #30929500 1! #30929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30930000 0! #30930500 1! #30930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30931000 0! #30931500 1! #30931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30932000 0! #30932500 1! #30932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30933000 0! #30933500 1! #30933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30934000 0! #30934500 1! #30934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #30934700 0j 0O #30935000 0! #30935500 1! #30935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30936000 0! #30936500 1! #30936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30937000 0! #30937500 1! #30937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30938000 0! #30938500 1! #30938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30939000 0! #30939500 1! #30939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30940000 0! #30940500 1! #30940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30941000 0! #30941500 1! #30941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30942000 0! #30942500 1! #30942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30943000 0! #30943500 1! #30943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30944000 0! #30944500 1! #30944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30945000 0! #30945500 1! #30945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30946000 0! #30946500 1! #30946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30947000 0! #30947500 1! #30947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30948000 0! #30948500 1! #30948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30949000 0! #30949500 1! #30949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30950000 0! #30950500 1! #30950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30951000 0! #30951500 1! #30951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30952000 0! #30952500 1! #30952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30953000 0! #30953500 1! #30953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30954000 0! #30954500 1! #30954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30955000 0! #30955500 1! #30955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30956000 0! #30956500 1! #30956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30957000 0! #30957500 1! #30957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30958000 0! #30958500 1! #30958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30959000 0! #30959500 1! #30959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30960000 0! #30960500 1! #30960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30961000 0! #30961500 1! #30961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30962000 0! #30962500 1! #30962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30963000 0! #30963500 1! #30963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30964000 0! #30964500 1! #30964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30965000 0! #30965500 1! #30965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30966000 0! #30966500 1! #30966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30967000 0! #30967500 1! #30967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30968000 0! #30968500 1! #30968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30969000 0! #30969500 1! #30969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30970000 0! #30970500 1! #30970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30971000 0! #30971500 1! #30971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30972000 0! #30972500 1! #30972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30973000 0! #30973500 1! #30973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30974000 0! #30974500 1! #30974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30975000 0! #30975500 1! #30975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30976000 0! #30976500 1! #30976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30977000 0! #30977500 1! #30977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30978000 0! #30978500 1! #30978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30979000 0! #30979500 1! #30979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30980000 0! #30980500 1! #30980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30981000 0! #30981500 1! #30981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30982000 0! #30982500 1! #30982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30983000 0! #30983500 1! #30983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30984000 0! #30984500 1! #30984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30985000 0! #30985500 1! #30985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30986000 0! #30986500 1! #30986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30987000 0! #30987500 1! #30987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30988000 0! #30988500 1! #30988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30989000 0! #30989500 1! #30989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30990000 0! #30990500 1! #30990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30991000 0! #30991500 1! #30991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30992000 0! #30992500 1! #30992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30993000 0! #30993500 1! #30993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30994000 0! #30994500 1! #30994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30995000 0! #30995500 1! #30995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30996000 0! #30996500 1! #30996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30997000 0! #30997500 1! #30997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #30998000 0! #30998500 1! #30998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #30999000 0! #30999500 1! #30999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31000000 0! #31000500 1! #31000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31001000 0! #31001500 1! #31001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31002000 0! #31002500 1! #31002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31003000 0! #31003500 1! #31003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31004000 0! #31004500 1! #31004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31005000 0! #31005500 1! #31005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31006000 0! #31006500 1! #31006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31007000 0! #31007500 1! #31007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31008000 0! #31008500 1! #31008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31009000 0! #31009500 1! #31009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31010000 0! #31010500 1! #31010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31011000 0! #31011500 1! #31011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31012000 0! #31012500 1! #31012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31013000 0! #31013500 1! #31013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31014000 0! #31014500 1! #31014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31015000 0! #31015500 1! #31015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31016000 0! #31016500 1! #31016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31017000 0! #31017500 1! #31017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31018000 0! #31018500 1! #31018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31019000 0! #31019500 1! #31019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31020000 0! #31020500 1! #31020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31021000 0! #31021500 1! #31021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31022000 0! #31022500 1! #31022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31023000 0! #31023500 1! #31023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31024000 0! #31024500 1! #31024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31025000 0! #31025500 1! #31025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31026000 0! #31026500 1! #31026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31027000 0! #31027500 1! #31027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31028000 0! #31028500 1! #31028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31029000 0! #31029500 1! #31029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31030000 0! #31030500 1! #31030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31031000 0! #31031500 1! #31031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31032000 0! #31032500 1! #31032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31033000 0! #31033500 1! #31033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31034000 0! #31034500 1! #31034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31035000 0! #31035500 1! #31035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31036000 0! #31036500 1! #31036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31037000 0! #31037500 1! #31037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31038000 0! #31038500 1! #31038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31039000 0! #31039500 1! #31039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31040000 0! #31040500 1! #31040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31041000 0! #31041500 1! #31041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31042000 0! #31042500 1! #31042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31043000 0! #31043500 1! #31043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31044000 0! #31044500 1! #31044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31045000 0! #31045500 1! #31045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31046000 0! #31046500 1! #31046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31047000 0! #31047500 1! #31047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31048000 0! #31048500 1! #31048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31049000 0! #31049500 1! #31049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31050000 0! #31050500 1! #31050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31051000 0! #31051500 1! #31051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31052000 0! #31052500 1! #31052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31053000 0! #31053500 1! #31053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31054000 0! #31054500 1! #31054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31055000 0! #31055500 1! #31055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31056000 0! #31056500 1! #31056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31057000 0! #31057500 1! #31057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31058000 0! #31058500 1! #31058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31059000 0! #31059500 1! #31059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31060000 0! #31060500 1! #31060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31061000 0! #31061500 1! #31061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31062000 0! #31062500 1! #31062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31063000 0! #31063500 1! #31063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31064000 0! #31064500 1! #31064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31065000 0! #31065500 1! #31065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31066000 0! #31066500 1! #31066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31067000 0! #31067500 1! #31067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31068000 0! #31068500 1! #31068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31069000 0! #31069500 1! #31069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31070000 0! #31070500 1! #31070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31071000 0! #31071500 1! #31071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31072000 0! #31072500 1! #31072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31073000 0! #31073500 1! #31073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31074000 0! #31074500 1! #31074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31075000 0! #31075500 1! #31075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31076000 0! #31076500 1! #31076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31077000 0! #31077500 1! #31077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31078000 0! #31078500 1! #31078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31079000 0! #31079500 1! #31079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31080000 0! #31080500 1! #31080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31081000 0! #31081500 1! #31081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31082000 0! #31082500 1! #31082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31083000 0! #31083500 1! #31083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31084000 0! #31084500 1! #31084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31085000 0! #31085500 1! #31085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31086000 0! #31086500 1! #31086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31087000 0! #31087500 1! #31087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #31087700 b11111111 ^ b0 g b1011010 c 1h #31088000 0! #31088500 1! #31088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31089000 0! #31089500 1! #31089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31090000 0! #31090500 1! #31090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31091000 0! #31091500 1! #31091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31092000 0! #31092500 1! #31092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31093000 0! #31093500 1! #31093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31094000 0! #31094500 1! #31094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31095000 0! #31095500 1! #31095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31096000 0! #31096500 1! #31096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31097000 0! #31097500 1! #31097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31098000 0! #31098500 1! #31098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31099000 0! #31099500 1! #31099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31100000 0! #31100500 1! #31100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31101000 0! #31101500 1! #31101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31102000 0! #31102500 1! #31102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31103000 0! #31103500 1! #31103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31104000 0! #31104500 1! #31104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31105000 0! #31105500 1! #31105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31106000 0! #31106500 1! #31106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31107000 0! #31107500 1! #31107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31108000 0! #31108500 1! #31108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31109000 0! #31109500 1! #31109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31110000 0! #31110500 1! #31110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31111000 0! #31111500 1! #31111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31112000 0! #31112500 1! #31112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31113000 0! #31113500 1! #31113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31114000 0! #31114500 1! #31114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31115000 0! #31115500 1! #31115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31116000 0! #31116500 1! #31116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31117000 0! #31117500 1! #31117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31118000 0! #31118500 1! #31118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31119000 0! #31119500 1! #31119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31120000 0! #31120500 1! #31120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31121000 0! #31121500 1! #31121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31122000 0! #31122500 1! #31122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31123000 0! #31123500 1! #31123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31124000 0! #31124500 1! #31124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31125000 0! #31125500 1! #31125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31126000 0! #31126500 1! #31126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31127000 0! #31127500 1! #31127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31128000 0! #31128500 1! #31128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31129000 0! #31129500 1! #31129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31130000 0! #31130500 1! #31130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31131000 0! #31131500 1! #31131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31132000 0! #31132500 1! #31132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31133000 0! #31133500 1! #31133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31134000 0! #31134500 1! #31134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31135000 0! #31135500 1! #31135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31136000 0! #31136500 1! #31136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31137000 0! #31137500 1! #31137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31138000 0! #31138500 1! #31138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31139000 0! #31139500 1! #31139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31140000 0! #31140500 1! #31140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31141000 0! #31141500 1! #31141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31142000 0! #31142500 1! #31142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31143000 0! #31143500 1! #31143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31144000 0! #31144500 1! #31144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31145000 0! #31145500 1! #31145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31146000 0! #31146500 1! #31146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31147000 0! #31147500 1! #31147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31148000 0! #31148500 1! #31148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31149000 0! #31149500 1! #31149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31150000 0! #31150500 1! #31150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31151000 0! #31151500 1! #31151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31152000 0! #31152500 1! #31152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31153000 0! #31153500 1! #31153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31154000 0! #31154500 1! #31154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31155000 0! #31155500 1! #31155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31156000 0! #31156500 1! #31156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31157000 0! #31157500 1! #31157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31158000 0! #31158500 1! #31158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31159000 0! #31159500 1! #31159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31160000 0! #31160500 1! #31160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31161000 0! #31161500 1! #31161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31162000 0! #31162500 1! #31162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31163000 0! #31163500 1! #31163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31164000 0! #31164500 1! #31164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31165000 0! #31165500 1! #31165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31166000 0! #31166500 1! #31166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31167000 0! #31167500 1! #31167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31168000 0! #31168500 1! #31168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31169000 0! #31169500 1! #31169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31170000 0! #31170500 1! #31170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31171000 0! #31171500 1! #31171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31172000 0! #31172500 1! #31172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31173000 0! #31173500 1! #31173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31174000 0! #31174500 1! #31174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31175000 0! #31175500 1! #31175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31176000 0! #31176500 1! #31176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31177000 0! #31177500 1! #31177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31178000 0! #31178500 1! #31178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31179000 0! #31179500 1! #31179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31180000 0! #31180500 1! #31180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31181000 0! #31181500 1! #31181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31182000 0! #31182500 1! #31182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31183000 0! #31183500 1! #31183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31184000 0! #31184500 1! #31184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31185000 0! #31185500 1! #31185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31186000 0! #31186500 1! #31186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31187000 0! #31187500 1! #31187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31188000 0! #31188500 1! #31188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31189000 0! #31189500 1! #31189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #31189700 1j b101 q 1O #31189800 b11 ] #31189900 bx ^ #31190000 0! #31190500 1! #31190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31191000 0! #31191500 1! #31191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31192000 0! #31192500 1! #31192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31193000 0! #31193500 1! #31193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31194000 0! #31194500 1! #31194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31195000 0! #31195500 1! #31195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31196000 0! #31196500 1! #31196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31197000 0! #31197500 1! #31197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31198000 0! #31198500 1! #31198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31199000 0! #31199500 1! #31199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31200000 0! #31200500 1! #31200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31201000 0! #31201500 1! #31201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31202000 0! #31202500 1! #31202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31203000 0! #31203500 1! #31203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31204000 0! #31204500 1! #31204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31205000 0! #31205500 1! #31205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31206000 0! #31206500 1! #31206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31207000 0! #31207500 1! #31207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31208000 0! #31208500 1! #31208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31209000 0! #31209500 1! #31209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31210000 0! #31210500 1! #31210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31211000 0! #31211500 1! #31211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31212000 0! #31212500 1! #31212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31213000 0! #31213500 1! #31213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31214000 0! #31214500 1! #31214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31215000 0! #31215500 1! #31215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31216000 0! #31216500 1! #31216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31217000 0! #31217500 1! #31217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31218000 0! #31218500 1! #31218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31219000 0! #31219500 1! #31219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31220000 0! #31220500 1! #31220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31221000 0! #31221500 1! #31221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31222000 0! #31222500 1! #31222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31223000 0! #31223500 1! #31223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31224000 0! #31224500 1! #31224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31225000 0! #31225500 1! #31225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31226000 0! #31226500 1! #31226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31227000 0! #31227500 1! #31227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31228000 0! #31228500 1! #31228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31229000 0! #31229500 1! #31229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31230000 0! #31230500 1! #31230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31231000 0! #31231500 1! #31231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31232000 0! #31232500 1! #31232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31233000 0! #31233500 1! #31233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31234000 0! #31234500 1! #31234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31235000 0! #31235500 1! #31235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31236000 0! #31236500 1! #31236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31237000 0! #31237500 1! #31237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31238000 0! #31238500 1! #31238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31239000 0! #31239500 1! #31239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31240000 0! #31240500 1! #31240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31241000 0! #31241500 1! #31241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31242000 0! #31242500 1! #31242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31243000 0! #31243500 1! #31243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31244000 0! #31244500 1! #31244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31245000 0! #31245500 1! #31245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31246000 0! #31246500 1! #31246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31247000 0! #31247500 1! #31247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31248000 0! #31248500 1! #31248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31249000 0! #31249500 1! #31249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31250000 0! #31250500 1! #31250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31251000 0! #31251500 1! #31251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31252000 0! #31252500 1! #31252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31253000 0! #31253500 1! #31253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31254000 0! #31254500 1! #31254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31255000 0! #31255500 1! #31255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31256000 0! #31256500 1! #31256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31257000 0! #31257500 1! #31257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31258000 0! #31258500 1! #31258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31259000 0! #31259500 1! #31259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31260000 0! #31260500 1! #31260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31261000 0! #31261500 1! #31261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31262000 0! #31262500 1! #31262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31263000 0! #31263500 1! #31263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31264000 0! #31264500 1! #31264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31265000 0! #31265500 1! #31265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31266000 0! #31266500 1! #31266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31267000 0! #31267500 1! #31267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31268000 0! #31268500 1! #31268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31269000 0! #31269500 1! #31269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31270000 0! #31270500 1! #31270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31271000 0! #31271500 1! #31271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31272000 0! #31272500 1! #31272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31273000 0! #31273500 1! #31273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31274000 0! #31274500 1! #31274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31275000 0! #31275500 1! #31275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31276000 0! #31276500 1! #31276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31277000 0! #31277500 1! #31277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31278000 0! #31278500 1! #31278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31279000 0! #31279500 1! #31279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31280000 0! #31280500 1! #31280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31281000 0! #31281500 1! #31281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31282000 0! #31282500 1! #31282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31283000 0! #31283500 1! #31283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31284000 0! #31284500 1! #31284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31285000 0! #31285500 1! #31285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31286000 0! #31286500 1! #31286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31287000 0! #31287500 1! #31287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31288000 0! #31288500 1! #31288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31289000 0! #31289500 1! #31289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31290000 0! #31290500 1! #31290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31291000 0! #31291500 1! #31291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #31292000 0! #31292500 1! #31292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31293000 0! #31293500 1! #31293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31294000 0! #31294500 1! #31294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31295000 0! #31295500 1! #31295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31296000 0! #31296500 1! #31296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31297000 0! #31297500 1! #31297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31298000 0! #31298500 1! #31298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31299000 0! #31299500 1! #31299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31300000 0! #31300500 1! #31300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31301000 0! #31301500 1! #31301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31302000 0! #31302500 1! #31302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31303000 0! #31303500 1! #31303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31304000 0! #31304500 1! #31304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31305000 0! #31305500 1! #31305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31306000 0! #31306500 1! #31306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31307000 0! #31307500 1! #31307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31308000 0! #31308500 1! #31308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31309000 0! #31309500 1! #31309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31310000 0! #31310500 1! #31310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31311000 0! #31311500 1! #31311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31312000 0! #31312500 1! #31312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31313000 0! #31313500 1! #31313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31314000 0! #31314500 1! #31314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31315000 0! #31315500 1! #31315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31316000 0! #31316500 1! #31316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31317000 0! #31317500 1! #31317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31318000 0! #31318500 1! #31318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31319000 0! #31319500 1! #31319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31320000 0! #31320500 1! #31320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31321000 0! #31321500 1! #31321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31322000 0! #31322500 1! #31322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31323000 0! #31323500 1! #31323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31324000 0! #31324500 1! #31324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31325000 0! #31325500 1! #31325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31326000 0! #31326500 1! #31326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31327000 0! #31327500 1! #31327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31328000 0! #31328500 1! #31328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31329000 0! #31329500 1! #31329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31330000 0! #31330500 1! #31330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31331000 0! #31331500 1! #31331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31332000 0! #31332500 1! #31332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31333000 0! #31333500 1! #31333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31334000 0! #31334500 1! #31334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31335000 0! #31335500 1! #31335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31336000 0! #31336500 1! #31336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31337000 0! #31337500 1! #31337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31338000 0! #31338500 1! #31338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31339000 0! #31339500 1! #31339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31340000 0! #31340500 1! #31340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31341000 0! #31341500 1! #31341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31342000 0! #31342500 1! #31342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #31342700 b111 g b10110100 c 0h #31343000 0! #31343500 1! #31343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31344000 0! #31344500 1! #31344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31345000 0! #31345500 1! #31345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31346000 0! #31346500 1! #31346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31347000 0! #31347500 1! #31347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31348000 0! #31348500 1! #31348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31349000 0! #31349500 1! #31349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31350000 0! #31350500 1! #31350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31351000 0! #31351500 1! #31351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31352000 0! #31352500 1! #31352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31353000 0! #31353500 1! #31353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31354000 0! #31354500 1! #31354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31355000 0! #31355500 1! #31355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31356000 0! #31356500 1! #31356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31357000 0! #31357500 1! #31357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31358000 0! #31358500 1! #31358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31359000 0! #31359500 1! #31359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31360000 0! #31360500 1! #31360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31361000 0! #31361500 1! #31361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31362000 0! #31362500 1! #31362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31363000 0! #31363500 1! #31363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31364000 0! #31364500 1! #31364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31365000 0! #31365500 1! #31365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31366000 0! #31366500 1! #31366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31367000 0! #31367500 1! #31367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31368000 0! #31368500 1! #31368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31369000 0! #31369500 1! #31369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31370000 0! #31370500 1! #31370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31371000 0! #31371500 1! #31371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31372000 0! #31372500 1! #31372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31373000 0! #31373500 1! #31373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31374000 0! #31374500 1! #31374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31375000 0! #31375500 1! #31375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31376000 0! #31376500 1! #31376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31377000 0! #31377500 1! #31377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31378000 0! #31378500 1! #31378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31379000 0! #31379500 1! #31379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31380000 0! #31380500 1! #31380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31381000 0! #31381500 1! #31381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31382000 0! #31382500 1! #31382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31383000 0! #31383500 1! #31383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31384000 0! #31384500 1! #31384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31385000 0! #31385500 1! #31385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31386000 0! #31386500 1! #31386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31387000 0! #31387500 1! #31387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31388000 0! #31388500 1! #31388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31389000 0! #31389500 1! #31389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31390000 0! #31390500 1! #31390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31391000 0! #31391500 1! #31391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31392000 0! #31392500 1! #31392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31393000 0! #31393500 1! #31393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31394000 0! #31394500 1! #31394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31395000 0! #31395500 1! #31395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31396000 0! #31396500 1! #31396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31397000 0! #31397500 1! #31397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31398000 0! #31398500 1! #31398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31399000 0! #31399500 1! #31399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31400000 0! #31400500 1! #31400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31401000 0! #31401500 1! #31401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31402000 0! #31402500 1! #31402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31403000 0! #31403500 1! #31403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31404000 0! #31404500 1! #31404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31405000 0! #31405500 1! #31405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31406000 0! #31406500 1! #31406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31407000 0! #31407500 1! #31407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31408000 0! #31408500 1! #31408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31409000 0! #31409500 1! #31409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31410000 0! #31410500 1! #31410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31411000 0! #31411500 1! #31411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31412000 0! #31412500 1! #31412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31413000 0! #31413500 1! #31413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31414000 0! #31414500 1! #31414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31415000 0! #31415500 1! #31415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31416000 0! #31416500 1! #31416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31417000 0! #31417500 1! #31417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31418000 0! #31418500 1! #31418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31419000 0! #31419500 1! #31419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31420000 0! #31420500 1! #31420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31421000 0! #31421500 1! #31421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31422000 0! #31422500 1! #31422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31423000 0! #31423500 1! #31423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31424000 0! #31424500 1! #31424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31425000 0! #31425500 1! #31425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31426000 0! #31426500 1! #31426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31427000 0! #31427500 1! #31427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31428000 0! #31428500 1! #31428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31429000 0! #31429500 1! #31429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31430000 0! #31430500 1! #31430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31431000 0! #31431500 1! #31431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31432000 0! #31432500 1! #31432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31433000 0! #31433500 1! #31433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31434000 0! #31434500 1! #31434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31435000 0! #31435500 1! #31435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31436000 0! #31436500 1! #31436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31437000 0! #31437500 1! #31437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31438000 0! #31438500 1! #31438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31439000 0! #31439500 1! #31439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31440000 0! #31440500 1! #31440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31441000 0! #31441500 1! #31441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31442000 0! #31442500 1! #31442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31443000 0! #31443500 1! #31443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31444000 0! #31444500 1! #31444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #31444700 1i b100 q xj xO #31445000 0! #31445500 1! #31445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31446000 0! #31446500 1! #31446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31447000 0! #31447500 1! #31447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000011 C 1H b1000001 C #31448000 0! #31448500 1! #31448600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31449000 0! #31449500 1! #31449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b1011010 C 1H #31450000 0! #31450500 1! #31450600 b1011010 K xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31451000 0! #31451500 1! #31451600 1E 1F 1G b100000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #31452000 0! #31452500 1! #31452600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31453000 0! #31453500 1! #31453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #31454000 0! #31454500 1! #31454600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31455000 0! #31455500 1! #31455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31456000 0! #31456500 1! #31456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31457000 0! #31457500 1! #31457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31458000 0! #31458500 1! #31458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31459000 0! #31459500 1! #31459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31460000 0! #31460500 1! #31460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31461000 0! #31461500 1! #31461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31462000 0! #31462500 1! #31462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31463000 0! #31463500 1! #31463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31464000 0! #31464500 1! #31464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31465000 0! #31465500 1! #31465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31466000 0! #31466500 1! #31466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31467000 0! #31467500 1! #31467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31468000 0! #31468500 1! #31468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31469000 0! #31469500 1! #31469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31470000 0! #31470500 1! #31470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31471000 0! #31471500 1! #31471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31472000 0! #31472500 1! #31472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31473000 0! #31473500 1! #31473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31474000 0! #31474500 1! #31474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31475000 0! #31475500 1! #31475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31476000 0! #31476500 1! #31476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31477000 0! #31477500 1! #31477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31478000 0! #31478500 1! #31478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31479000 0! #31479500 1! #31479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31480000 0! #31480500 1! #31480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31481000 0! #31481500 1! #31481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31482000 0! #31482500 1! #31482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31483000 0! #31483500 1! #31483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31484000 0! #31484500 1! #31484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31485000 0! #31485500 1! #31485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31486000 0! #31486500 1! #31486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31487000 0! #31487500 1! #31487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31488000 0! #31488500 1! #31488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31489000 0! #31489500 1! #31489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31490000 0! #31490500 1! #31490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31491000 0! #31491500 1! #31491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31492000 0! #31492500 1! #31492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31493000 0! #31493500 1! #31493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31494000 0! #31494500 1! #31494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31495000 0! #31495500 1! #31495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31496000 0! #31496500 1! #31496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31497000 0! #31497500 1! #31497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31498000 0! #31498500 1! #31498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31499000 0! #31499500 1! #31499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31500000 0! #31500500 1! #31500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31501000 0! #31501500 1! #31501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31502000 0! #31502500 1! #31502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31503000 0! #31503500 1! #31503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31504000 0! #31504500 1! #31504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31505000 0! #31505500 1! #31505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31506000 0! #31506500 1! #31506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31507000 0! #31507500 1! #31507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31508000 0! #31508500 1! #31508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31509000 0! #31509500 1! #31509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31510000 0! #31510500 1! #31510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31511000 0! #31511500 1! #31511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31512000 0! #31512500 1! #31512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31513000 0! #31513500 1! #31513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31514000 0! #31514500 1! #31514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31515000 0! #31515500 1! #31515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31516000 0! #31516500 1! #31516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31517000 0! #31517500 1! #31517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31518000 0! #31518500 1! #31518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31519000 0! #31519500 1! #31519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31520000 0! #31520500 1! #31520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31521000 0! #31521500 1! #31521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31522000 0! #31522500 1! #31522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31523000 0! #31523500 1! #31523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31524000 0! #31524500 1! #31524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31525000 0! #31525500 1! #31525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31526000 0! #31526500 1! #31526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31527000 0! #31527500 1! #31527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31528000 0! #31528500 1! #31528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31529000 0! #31529500 1! #31529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31530000 0! #31530500 1! #31530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31531000 0! #31531500 1! #31531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31532000 0! #31532500 1! #31532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31533000 0! #31533500 1! #31533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31534000 0! #31534500 1! #31534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31535000 0! #31535500 1! #31535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31536000 0! #31536500 1! #31536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31537000 0! #31537500 1! #31537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31538000 0! #31538500 1! #31538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31539000 0! #31539500 1! #31539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31540000 0! #31540500 1! #31540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31541000 0! #31541500 1! #31541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31542000 0! #31542500 1! #31542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31543000 0! #31543500 1! #31543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31544000 0! #31544500 1! #31544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31545000 0! #31545500 1! #31545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31546000 0! #31546500 1! #31546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q #31547000 0! #31547500 1! #31547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31548000 0! #31548500 1! #31548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31549000 0! #31549500 1! #31549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31550000 0! #31550500 1! #31550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31551000 0! #31551500 1! #31551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31552000 0! #31552500 1! #31552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31553000 0! #31553500 1! #31553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31554000 0! #31554500 1! #31554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31555000 0! #31555500 1! #31555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31556000 0! #31556500 1! #31556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31557000 0! #31557500 1! #31557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31558000 0! #31558500 1! #31558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31559000 0! #31559500 1! #31559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31560000 0! #31560500 1! #31560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31561000 0! #31561500 1! #31561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31562000 0! #31562500 1! #31562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31563000 0! #31563500 1! #31563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31564000 0! #31564500 1! #31564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31565000 0! #31565500 1! #31565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31566000 0! #31566500 1! #31566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31567000 0! #31567500 1! #31567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31568000 0! #31568500 1! #31568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31569000 0! #31569500 1! #31569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31570000 0! #31570500 1! #31570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31571000 0! #31571500 1! #31571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31572000 0! #31572500 1! #31572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31573000 0! #31573500 1! #31573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31574000 0! #31574500 1! #31574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31575000 0! #31575500 1! #31575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31576000 0! #31576500 1! #31576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31577000 0! #31577500 1! #31577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31578000 0! #31578500 1! #31578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31579000 0! #31579500 1! #31579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31580000 0! #31580500 1! #31580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31581000 0! #31581500 1! #31581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31582000 0! #31582500 1! #31582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31583000 0! #31583500 1! #31583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31584000 0! #31584500 1! #31584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31585000 0! #31585500 1! #31585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31586000 0! #31586500 1! #31586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31587000 0! #31587500 1! #31587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31588000 0! #31588500 1! #31588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31589000 0! #31589500 1! #31589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31590000 0! #31590500 1! #31590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31591000 0! #31591500 1! #31591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31592000 0! #31592500 1! #31592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31593000 0! #31593500 1! #31593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31594000 0! #31594500 1! #31594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31595000 0! #31595500 1! #31595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31596000 0! #31596500 1! #31596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31597000 0! #31597500 1! #31597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #31597700 bx1 ^ b110100x c #31598000 0! #31598500 1! #31598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31599000 0! #31599500 1! #31599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31600000 0! #31600500 1! b0x000011 C #31600600 b0x000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31601000 0! #31601500 1! #31601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31602000 0! #31602500 1! #31602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31603000 0! #31603500 1! #31603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31604000 0! #31604500 1! #31604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31605000 0! #31605500 1! #31605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31606000 0! #31606500 1! #31606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31607000 0! #31607500 1! #31607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31608000 0! #31608500 1! #31608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31609000 0! #31609500 1! #31609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31610000 0! #31610500 1! #31610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31611000 0! #31611500 1! #31611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31612000 0! #31612500 1! #31612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31613000 0! #31613500 1! #31613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31614000 0! #31614500 1! #31614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31615000 0! #31615500 1! #31615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31616000 0! #31616500 1! #31616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31617000 0! #31617500 1! #31617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31618000 0! #31618500 1! #31618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31619000 0! #31619500 1! #31619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31620000 0! #31620500 1! #31620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31621000 0! #31621500 1! #31621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31622000 0! #31622500 1! #31622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31623000 0! #31623500 1! #31623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31624000 0! #31624500 1! #31624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31625000 0! #31625500 1! #31625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31626000 0! #31626500 1! #31626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31627000 0! #31627500 1! #31627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31628000 0! #31628500 1! #31628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31629000 0! #31629500 1! #31629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31630000 0! #31630500 1! #31630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31631000 0! #31631500 1! #31631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31632000 0! #31632500 1! #31632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31633000 0! #31633500 1! #31633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31634000 0! #31634500 1! #31634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31635000 0! #31635500 1! #31635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31636000 0! #31636500 1! #31636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31637000 0! #31637500 1! #31637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31638000 0! #31638500 1! #31638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31639000 0! #31639500 1! #31639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31640000 0! #31640500 1! #31640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31641000 0! #31641500 1! #31641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31642000 0! #31642500 1! #31642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31643000 0! #31643500 1! #31643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31644000 0! #31644500 1! #31644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31645000 0! #31645500 1! #31645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31646000 0! #31646500 1! #31646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31647000 0! #31647500 1! #31647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31648000 0! #31648500 1! #31648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31649000 0! #31649500 1! #31649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31650000 0! #31650500 1! #31650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31651000 0! #31651500 1! #31651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31652000 0! #31652500 1! #31652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31653000 0! #31653500 1! #31653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31654000 0! #31654500 1! #31654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31655000 0! #31655500 1! #31655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31656000 0! #31656500 1! #31656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31657000 0! #31657500 1! #31657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31658000 0! #31658500 1! #31658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31659000 0! #31659500 1! #31659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31660000 0! #31660500 1! #31660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31661000 0! #31661500 1! #31661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31662000 0! #31662500 1! #31662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31663000 0! #31663500 1! #31663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31664000 0! #31664500 1! #31664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31665000 0! #31665500 1! #31665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31666000 0! #31666500 1! #31666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31667000 0! #31667500 1! #31667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31668000 0! #31668500 1! #31668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31669000 0! #31669500 1! #31669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31670000 0! #31670500 1! #31670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31671000 0! #31671500 1! #31671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31672000 0! #31672500 1! #31672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31673000 0! #31673500 1! #31673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31674000 0! #31674500 1! #31674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31675000 0! #31675500 1! #31675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31676000 0! #31676500 1! #31676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31677000 0! #31677500 1! #31677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31678000 0! #31678500 1! #31678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31679000 0! #31679500 1! #31679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31680000 0! #31680500 1! #31680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31681000 0! #31681500 1! #31681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31682000 0! #31682500 1! #31682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31683000 0! #31683500 1! #31683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31684000 0! #31684500 1! #31684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31685000 0! #31685500 1! #31685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31686000 0! #31686500 1! #31686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31687000 0! #31687500 1! #31687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31688000 0! #31688500 1! #31688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31689000 0! #31689500 1! #31689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31690000 0! #31690500 1! #31690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31691000 0! #31691500 1! #31691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31692000 0! #31692500 1! #31692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31693000 0! #31693500 1! #31693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31694000 0! #31694500 1! #31694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31695000 0! #31695500 1! #31695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31696000 0! #31696500 1! #31696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31697000 0! #31697500 1! #31697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31698000 0! #31698500 1! #31698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31699000 0! #31699500 1! #31699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #31699700 1j 0i xj #31700000 0! #31700500 1! #31700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31701000 0! #31701500 1! #31701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31702000 0! #31702500 1! #31702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31703000 0! #31703500 1! #31703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31704000 0! #31704500 1! #31704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31705000 0! #31705500 1! #31705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31706000 0! #31706500 1! #31706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31707000 0! #31707500 1! #31707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31708000 0! #31708500 1! #31708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31709000 0! #31709500 1! #31709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31710000 0! #31710500 1! #31710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31711000 0! #31711500 1! #31711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31712000 0! #31712500 1! #31712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31713000 0! #31713500 1! #31713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31714000 0! #31714500 1! #31714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31715000 0! #31715500 1! #31715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31716000 0! #31716500 1! #31716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31717000 0! #31717500 1! #31717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31718000 0! #31718500 1! #31718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31719000 0! #31719500 1! #31719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31720000 0! #31720500 1! #31720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31721000 0! #31721500 1! #31721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31722000 0! #31722500 1! #31722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31723000 0! #31723500 1! #31723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31724000 0! #31724500 1! #31724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31725000 0! #31725500 1! #31725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31726000 0! #31726500 1! #31726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31727000 0! #31727500 1! #31727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31728000 0! #31728500 1! #31728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31729000 0! #31729500 1! #31729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31730000 0! #31730500 1! #31730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31731000 0! #31731500 1! #31731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31732000 0! #31732500 1! #31732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31733000 0! #31733500 1! #31733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31734000 0! #31734500 1! #31734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31735000 0! #31735500 1! #31735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31736000 0! #31736500 1! #31736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31737000 0! #31737500 1! #31737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31738000 0! #31738500 1! #31738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31739000 0! #31739500 1! #31739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31740000 0! #31740500 1! #31740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31741000 0! #31741500 1! #31741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31742000 0! #31742500 1! #31742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31743000 0! #31743500 1! #31743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31744000 0! #31744500 1! #31744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31745000 0! #31745500 1! #31745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31746000 0! #31746500 1! #31746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31747000 0! #31747500 1! #31747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31748000 0! #31748500 1! #31748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31749000 0! #31749500 1! #31749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31750000 0! #31750500 1! #31750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31751000 0! #31751500 1! #31751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31752000 0! #31752500 1! #31752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31753000 0! #31753500 1! #31753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31754000 0! #31754500 1! #31754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31755000 0! #31755500 1! #31755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31756000 0! #31756500 1! #31756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31757000 0! #31757500 1! #31757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31758000 0! #31758500 1! #31758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31759000 0! #31759500 1! #31759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31760000 0! #31760500 1! #31760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31761000 0! #31761500 1! #31761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31762000 0! #31762500 1! #31762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31763000 0! #31763500 1! #31763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31764000 0! #31764500 1! #31764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31765000 0! #31765500 1! #31765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31766000 0! #31766500 1! #31766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31767000 0! #31767500 1! #31767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31768000 0! #31768500 1! #31768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31769000 0! #31769500 1! #31769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31770000 0! #31770500 1! #31770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31771000 0! #31771500 1! #31771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31772000 0! #31772500 1! #31772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31773000 0! #31773500 1! #31773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31774000 0! #31774500 1! #31774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31775000 0! #31775500 1! #31775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31776000 0! #31776500 1! #31776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31777000 0! #31777500 1! #31777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31778000 0! #31778500 1! #31778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31779000 0! #31779500 1! #31779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31780000 0! #31780500 1! #31780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31781000 0! #31781500 1! #31781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31782000 0! #31782500 1! #31782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31783000 0! #31783500 1! #31783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31784000 0! #31784500 1! #31784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31785000 0! #31785500 1! #31785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31786000 0! #31786500 1! #31786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31787000 0! #31787500 1! #31787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31788000 0! #31788500 1! #31788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31789000 0! #31789500 1! #31789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31790000 0! #31790500 1! #31790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31791000 0! #31791500 1! #31791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31792000 0! #31792500 1! #31792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31793000 0! #31793500 1! #31793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31794000 0! #31794500 1! #31794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31795000 0! #31795500 1! #31795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31796000 0! #31796500 1! #31796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31797000 0! #31797500 1! #31797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31798000 0! #31798500 1! #31798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31799000 0! #31799500 1! #31799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31800000 0! #31800500 1! #31800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31801000 0! #31801500 1! #31801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31802000 0! #31802500 1! #31802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31803000 0! #31803500 1! #31803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31804000 0! #31804500 1! #31804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31805000 0! #31805500 1! #31805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31806000 0! #31806500 1! #31806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31807000 0! #31807500 1! #31807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31808000 0! #31808500 1! #31808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31809000 0! #31809500 1! #31809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31810000 0! #31810500 1! #31810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31811000 0! #31811500 1! #31811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31812000 0! #31812500 1! #31812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31813000 0! #31813500 1! #31813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31814000 0! #31814500 1! #31814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31815000 0! #31815500 1! #31815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31816000 0! #31816500 1! #31816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31817000 0! #31817500 1! #31817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31818000 0! #31818500 1! #31818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31819000 0! #31819500 1! #31819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31820000 0! #31820500 1! #31820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31821000 0! #31821500 1! #31821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31822000 0! #31822500 1! #31822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31823000 0! #31823500 1! #31823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31824000 0! #31824500 1! #31824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31825000 0! #31825500 1! #31825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31826000 0! #31826500 1! #31826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31827000 0! #31827500 1! #31827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31828000 0! #31828500 1! #31828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31829000 0! #31829500 1! #31829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31830000 0! #31830500 1! #31830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31831000 0! #31831500 1! #31831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31832000 0! #31832500 1! #31832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31833000 0! #31833500 1! #31833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31834000 0! #31834500 1! #31834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31835000 0! #31835500 1! #31835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31836000 0! #31836500 1! #31836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31837000 0! #31837500 1! #31837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31838000 0! #31838500 1! #31838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31839000 0! #31839500 1! #31839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31840000 0! #31840500 1! #31840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31841000 0! #31841500 1! #31841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31842000 0! #31842500 1! #31842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31843000 0! #31843500 1! #31843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31844000 0! #31844500 1! #31844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31845000 0! #31845500 1! #31845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31846000 0! #31846500 1! #31846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31847000 0! #31847500 1! #31847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31848000 0! #31848500 1! #31848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31849000 0! #31849500 1! #31849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31850000 0! #31850500 1! #31850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31851000 0! #31851500 1! #31851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31852000 0! #31852500 1! #31852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #31852700 bx11 ^ b110 g b110100xx c #31853000 0! #31853500 1! #31853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31854000 0! #31854500 1! #31854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31855000 0! #31855500 1! #31855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31856000 0! #31856500 1! #31856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31857000 0! #31857500 1! #31857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31858000 0! #31858500 1! #31858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31859000 0! #31859500 1! #31859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31860000 0! #31860500 1! #31860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31861000 0! #31861500 1! #31861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31862000 0! #31862500 1! #31862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31863000 0! #31863500 1! #31863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31864000 0! #31864500 1! #31864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31865000 0! #31865500 1! #31865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31866000 0! #31866500 1! #31866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31867000 0! #31867500 1! #31867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31868000 0! #31868500 1! #31868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31869000 0! #31869500 1! #31869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31870000 0! #31870500 1! #31870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31871000 0! #31871500 1! #31871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31872000 0! #31872500 1! #31872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31873000 0! #31873500 1! #31873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31874000 0! #31874500 1! #31874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31875000 0! #31875500 1! #31875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31876000 0! #31876500 1! #31876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31877000 0! #31877500 1! #31877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31878000 0! #31878500 1! #31878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31879000 0! #31879500 1! #31879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31880000 0! #31880500 1! #31880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31881000 0! #31881500 1! #31881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31882000 0! #31882500 1! #31882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31883000 0! #31883500 1! #31883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31884000 0! #31884500 1! #31884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31885000 0! #31885500 1! #31885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31886000 0! #31886500 1! #31886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31887000 0! #31887500 1! #31887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31888000 0! #31888500 1! #31888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31889000 0! #31889500 1! #31889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31890000 0! #31890500 1! #31890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31891000 0! #31891500 1! #31891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31892000 0! #31892500 1! #31892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31893000 0! #31893500 1! #31893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31894000 0! #31894500 1! #31894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31895000 0! #31895500 1! #31895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31896000 0! #31896500 1! #31896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31897000 0! #31897500 1! #31897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31898000 0! #31898500 1! #31898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31899000 0! #31899500 1! #31899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31900000 0! #31900500 1! #31900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31901000 0! #31901500 1! #31901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31902000 0! #31902500 1! #31902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31903000 0! #31903500 1! #31903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31904000 0! #31904500 1! #31904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31905000 0! #31905500 1! #31905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31906000 0! #31906500 1! #31906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31907000 0! #31907500 1! #31907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31908000 0! #31908500 1! #31908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31909000 0! #31909500 1! #31909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31910000 0! #31910500 1! #31910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31911000 0! #31911500 1! #31911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31912000 0! #31912500 1! #31912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31913000 0! #31913500 1! #31913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31914000 0! #31914500 1! #31914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31915000 0! #31915500 1! #31915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31916000 0! #31916500 1! #31916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31917000 0! #31917500 1! #31917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31918000 0! #31918500 1! #31918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31919000 0! #31919500 1! #31919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31920000 0! #31920500 1! #31920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31921000 0! #31921500 1! #31921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31922000 0! #31922500 1! #31922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31923000 0! #31923500 1! #31923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31924000 0! #31924500 1! #31924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31925000 0! #31925500 1! #31925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31926000 0! #31926500 1! #31926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31927000 0! #31927500 1! #31927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31928000 0! #31928500 1! #31928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31929000 0! #31929500 1! #31929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31930000 0! #31930500 1! #31930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31931000 0! #31931500 1! #31931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31932000 0! #31932500 1! #31932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31933000 0! #31933500 1! #31933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31934000 0! #31934500 1! #31934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31935000 0! #31935500 1! #31935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31936000 0! #31936500 1! #31936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31937000 0! #31937500 1! #31937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31938000 0! #31938500 1! #31938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31939000 0! #31939500 1! #31939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31940000 0! #31940500 1! #31940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31941000 0! #31941500 1! #31941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31942000 0! #31942500 1! #31942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31943000 0! #31943500 1! #31943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31944000 0! #31944500 1! #31944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31945000 0! #31945500 1! #31945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31946000 0! #31946500 1! #31946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31947000 0! #31947500 1! #31947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31948000 0! #31948500 1! #31948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31949000 0! #31949500 1! #31949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31950000 0! #31950500 1! #31950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31951000 0! #31951500 1! #31951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31952000 0! #31952500 1! #31952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31953000 0! #31953500 1! #31953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31954000 0! #31954500 1! #31954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #31954700 1j xj #31955000 0! #31955500 1! #31955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31956000 0! #31956500 1! #31956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31957000 0! #31957500 1! #31957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31958000 0! #31958500 1! #31958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31959000 0! #31959500 1! #31959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31960000 0! #31960500 1! #31960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31961000 0! #31961500 1! #31961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31962000 0! #31962500 1! #31962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31963000 0! #31963500 1! #31963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31964000 0! #31964500 1! #31964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31965000 0! #31965500 1! #31965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31966000 0! #31966500 1! #31966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31967000 0! #31967500 1! #31967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31968000 0! #31968500 1! #31968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31969000 0! #31969500 1! #31969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31970000 0! #31970500 1! #31970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31971000 0! #31971500 1! #31971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31972000 0! #31972500 1! #31972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31973000 0! #31973500 1! #31973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31974000 0! #31974500 1! #31974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31975000 0! #31975500 1! #31975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31976000 0! #31976500 1! #31976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31977000 0! #31977500 1! #31977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31978000 0! #31978500 1! #31978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31979000 0! #31979500 1! #31979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31980000 0! #31980500 1! #31980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31981000 0! #31981500 1! #31981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31982000 0! #31982500 1! #31982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31983000 0! #31983500 1! #31983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31984000 0! #31984500 1! #31984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31985000 0! #31985500 1! #31985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31986000 0! #31986500 1! #31986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31987000 0! #31987500 1! #31987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31988000 0! #31988500 1! #31988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31989000 0! #31989500 1! #31989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31990000 0! #31990500 1! #31990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31991000 0! #31991500 1! #31991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31992000 0! #31992500 1! #31992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31993000 0! #31993500 1! #31993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31994000 0! #31994500 1! #31994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31995000 0! #31995500 1! #31995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31996000 0! #31996500 1! #31996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31997000 0! #31997500 1! #31997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #31998000 0! #31998500 1! #31998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #31999000 0! #31999500 1! #31999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32000000 0! #32000500 1! #32000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32001000 0! #32001500 1! #32001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32002000 0! #32002500 1! #32002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32003000 0! #32003500 1! #32003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32004000 0! #32004500 1! #32004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32005000 0! #32005500 1! #32005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32006000 0! #32006500 1! #32006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32007000 0! #32007500 1! #32007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32008000 0! #32008500 1! #32008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32009000 0! #32009500 1! #32009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32010000 0! #32010500 1! #32010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32011000 0! #32011500 1! #32011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32012000 0! #32012500 1! #32012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32013000 0! #32013500 1! #32013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32014000 0! #32014500 1! #32014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32015000 0! #32015500 1! #32015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32016000 0! #32016500 1! #32016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32017000 0! #32017500 1! #32017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32018000 0! #32018500 1! #32018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32019000 0! #32019500 1! #32019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32020000 0! #32020500 1! #32020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32021000 0! #32021500 1! #32021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32022000 0! #32022500 1! #32022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32023000 0! #32023500 1! #32023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32024000 0! #32024500 1! #32024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32025000 0! #32025500 1! #32025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32026000 0! #32026500 1! #32026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32027000 0! #32027500 1! #32027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32028000 0! #32028500 1! #32028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32029000 0! #32029500 1! #32029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32030000 0! #32030500 1! #32030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32031000 0! #32031500 1! #32031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32032000 0! #32032500 1! #32032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32033000 0! #32033500 1! #32033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32034000 0! #32034500 1! #32034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32035000 0! #32035500 1! #32035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32036000 0! #32036500 1! #32036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32037000 0! #32037500 1! #32037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32038000 0! #32038500 1! #32038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32039000 0! #32039500 1! #32039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32040000 0! #32040500 1! #32040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32041000 0! #32041500 1! #32041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32042000 0! #32042500 1! #32042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32043000 0! #32043500 1! #32043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32044000 0! #32044500 1! #32044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32045000 0! #32045500 1! #32045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32046000 0! #32046500 1! #32046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32047000 0! #32047500 1! #32047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32048000 0! #32048500 1! #32048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32049000 0! #32049500 1! #32049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32050000 0! #32050500 1! #32050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32051000 0! #32051500 1! #32051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32052000 0! #32052500 1! #32052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32053000 0! #32053500 1! #32053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32054000 0! #32054500 1! #32054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32055000 0! #32055500 1! #32055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32056000 0! #32056500 1! #32056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32057000 0! #32057500 1! #32057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32058000 0! #32058500 1! #32058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32059000 0! #32059500 1! #32059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32060000 0! #32060500 1! #32060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32061000 0! #32061500 1! #32061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32062000 0! #32062500 1! #32062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32063000 0! #32063500 1! #32063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32064000 0! #32064500 1! #32064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32065000 0! #32065500 1! #32065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32066000 0! #32066500 1! #32066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32067000 0! #32067500 1! #32067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32068000 0! #32068500 1! #32068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32069000 0! #32069500 1! #32069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32070000 0! #32070500 1! #32070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32071000 0! #32071500 1! #32071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32072000 0! #32072500 1! #32072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32073000 0! #32073500 1! #32073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32074000 0! #32074500 1! #32074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32075000 0! #32075500 1! #32075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32076000 0! #32076500 1! #32076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32077000 0! #32077500 1! #32077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32078000 0! #32078500 1! #32078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32079000 0! #32079500 1! #32079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32080000 0! #32080500 1! #32080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32081000 0! #32081500 1! #32081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32082000 0! #32082500 1! #32082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32083000 0! #32083500 1! #32083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32084000 0! #32084500 1! #32084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32085000 0! #32085500 1! #32085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32086000 0! #32086500 1! #32086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32087000 0! #32087500 1! #32087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32088000 0! #32088500 1! #32088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32089000 0! #32089500 1! #32089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32090000 0! #32090500 1! #32090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32091000 0! #32091500 1! #32091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32092000 0! #32092500 1! #32092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32093000 0! #32093500 1! #32093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32094000 0! #32094500 1! #32094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32095000 0! #32095500 1! #32095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32096000 0! #32096500 1! #32096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32097000 0! #32097500 1! #32097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32098000 0! #32098500 1! #32098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32099000 0! #32099500 1! #32099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32100000 0! #32100500 1! #32100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32101000 0! #32101500 1! #32101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32102000 0! #32102500 1! #32102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32103000 0! #32103500 1! #32103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32104000 0! #32104500 1! #32104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32105000 0! #32105500 1! #32105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32106000 0! #32106500 1! #32106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32107000 0! #32107500 1! #32107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #32107700 bx111 ^ b101 g b10100xxx c xe #32108000 0! #32108500 1! #32108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32109000 0! #32109500 1! #32109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32110000 0! #32110500 1! #32110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32111000 0! #32111500 1! #32111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32112000 0! #32112500 1! #32112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32113000 0! #32113500 1! #32113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32114000 0! #32114500 1! #32114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32115000 0! #32115500 1! #32115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32116000 0! #32116500 1! #32116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32117000 0! #32117500 1! #32117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32118000 0! #32118500 1! #32118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32119000 0! #32119500 1! #32119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32120000 0! #32120500 1! #32120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32121000 0! #32121500 1! #32121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32122000 0! #32122500 1! #32122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32123000 0! #32123500 1! #32123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32124000 0! #32124500 1! #32124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32125000 0! #32125500 1! #32125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32126000 0! #32126500 1! #32126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32127000 0! #32127500 1! #32127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32128000 0! #32128500 1! #32128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32129000 0! #32129500 1! #32129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32130000 0! #32130500 1! #32130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32131000 0! #32131500 1! #32131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32132000 0! #32132500 1! #32132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32133000 0! #32133500 1! #32133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32134000 0! #32134500 1! #32134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32135000 0! #32135500 1! #32135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32136000 0! #32136500 1! #32136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32137000 0! #32137500 1! #32137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32138000 0! #32138500 1! #32138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32139000 0! #32139500 1! #32139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32140000 0! #32140500 1! #32140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32141000 0! #32141500 1! #32141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32142000 0! #32142500 1! #32142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32143000 0! #32143500 1! #32143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32144000 0! #32144500 1! #32144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32145000 0! #32145500 1! #32145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32146000 0! #32146500 1! #32146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32147000 0! #32147500 1! #32147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32148000 0! #32148500 1! #32148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32149000 0! #32149500 1! #32149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32150000 0! #32150500 1! #32150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32151000 0! #32151500 1! #32151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32152000 0! #32152500 1! #32152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32153000 0! #32153500 1! #32153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32154000 0! #32154500 1! #32154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32155000 0! #32155500 1! #32155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32156000 0! #32156500 1! #32156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32157000 0! #32157500 1! #32157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32158000 0! #32158500 1! #32158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32159000 0! #32159500 1! #32159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32160000 0! #32160500 1! #32160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32161000 0! #32161500 1! #32161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32162000 0! #32162500 1! #32162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32163000 0! #32163500 1! #32163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32164000 0! #32164500 1! #32164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32165000 0! #32165500 1! #32165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32166000 0! #32166500 1! #32166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32167000 0! #32167500 1! #32167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32168000 0! #32168500 1! #32168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32169000 0! #32169500 1! #32169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32170000 0! #32170500 1! #32170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32171000 0! #32171500 1! #32171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32172000 0! #32172500 1! #32172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32173000 0! #32173500 1! #32173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32174000 0! #32174500 1! #32174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32175000 0! #32175500 1! #32175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32176000 0! #32176500 1! #32176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32177000 0! #32177500 1! #32177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32178000 0! #32178500 1! #32178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32179000 0! #32179500 1! #32179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32180000 0! #32180500 1! #32180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32181000 0! #32181500 1! #32181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32182000 0! #32182500 1! #32182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32183000 0! #32183500 1! #32183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32184000 0! #32184500 1! #32184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32185000 0! #32185500 1! #32185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32186000 0! #32186500 1! #32186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32187000 0! #32187500 1! #32187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32188000 0! #32188500 1! #32188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32189000 0! #32189500 1! #32189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32190000 0! #32190500 1! #32190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32191000 0! #32191500 1! #32191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32192000 0! #32192500 1! #32192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32193000 0! #32193500 1! #32193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32194000 0! #32194500 1! #32194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32195000 0! #32195500 1! #32195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32196000 0! #32196500 1! #32196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32197000 0! #32197500 1! #32197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32198000 0! #32198500 1! #32198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32199000 0! #32199500 1! #32199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32200000 0! #32200500 1! #32200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32201000 0! #32201500 1! #32201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32202000 0! #32202500 1! #32202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32203000 0! #32203500 1! #32203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32204000 0! #32204500 1! #32204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32205000 0! #32205500 1! #32205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32206000 0! #32206500 1! #32206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32207000 0! #32207500 1! #32207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32208000 0! #32208500 1! #32208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32209000 0! #32209500 1! #32209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #32209700 1j xj #32210000 0! #32210500 1! #32210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32211000 0! #32211500 1! #32211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32212000 0! #32212500 1! #32212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32213000 0! #32213500 1! #32213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32214000 0! #32214500 1! #32214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32215000 0! #32215500 1! #32215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32216000 0! #32216500 1! #32216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32217000 0! #32217500 1! #32217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32218000 0! #32218500 1! #32218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32219000 0! #32219500 1! #32219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32220000 0! #32220500 1! #32220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32221000 0! #32221500 1! #32221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32222000 0! #32222500 1! #32222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32223000 0! #32223500 1! #32223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32224000 0! #32224500 1! #32224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32225000 0! #32225500 1! #32225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32226000 0! #32226500 1! #32226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32227000 0! #32227500 1! #32227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32228000 0! #32228500 1! #32228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32229000 0! #32229500 1! #32229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32230000 0! #32230500 1! #32230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32231000 0! #32231500 1! #32231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32232000 0! #32232500 1! #32232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32233000 0! #32233500 1! #32233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32234000 0! #32234500 1! #32234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32235000 0! #32235500 1! #32235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32236000 0! #32236500 1! #32236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32237000 0! #32237500 1! #32237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32238000 0! #32238500 1! #32238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32239000 0! #32239500 1! #32239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32240000 0! #32240500 1! #32240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32241000 0! #32241500 1! #32241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32242000 0! #32242500 1! #32242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32243000 0! #32243500 1! #32243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32244000 0! #32244500 1! #32244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32245000 0! #32245500 1! #32245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32246000 0! #32246500 1! #32246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32247000 0! #32247500 1! #32247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32248000 0! #32248500 1! #32248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32249000 0! #32249500 1! #32249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32250000 0! #32250500 1! #32250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32251000 0! #32251500 1! #32251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32252000 0! #32252500 1! #32252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32253000 0! #32253500 1! #32253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32254000 0! #32254500 1! #32254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32255000 0! #32255500 1! #32255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32256000 0! #32256500 1! #32256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32257000 0! #32257500 1! #32257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32258000 0! #32258500 1! #32258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32259000 0! #32259500 1! #32259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32260000 0! #32260500 1! #32260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32261000 0! #32261500 1! #32261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32262000 0! #32262500 1! #32262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32263000 0! #32263500 1! #32263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32264000 0! #32264500 1! #32264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32265000 0! #32265500 1! #32265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32266000 0! #32266500 1! #32266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32267000 0! #32267500 1! #32267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32268000 0! #32268500 1! #32268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32269000 0! #32269500 1! #32269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32270000 0! #32270500 1! #32270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32271000 0! #32271500 1! #32271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32272000 0! #32272500 1! #32272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32273000 0! #32273500 1! #32273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32274000 0! #32274500 1! #32274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32275000 0! #32275500 1! #32275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32276000 0! #32276500 1! #32276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32277000 0! #32277500 1! #32277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32278000 0! #32278500 1! #32278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32279000 0! #32279500 1! #32279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32280000 0! #32280500 1! #32280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32281000 0! #32281500 1! #32281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32282000 0! #32282500 1! #32282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32283000 0! #32283500 1! #32283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32284000 0! #32284500 1! #32284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32285000 0! #32285500 1! #32285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32286000 0! #32286500 1! #32286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32287000 0! #32287500 1! #32287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32288000 0! #32288500 1! #32288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32289000 0! #32289500 1! #32289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32290000 0! #32290500 1! #32290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32291000 0! #32291500 1! #32291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32292000 0! #32292500 1! #32292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32293000 0! #32293500 1! #32293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32294000 0! #32294500 1! #32294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32295000 0! #32295500 1! #32295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32296000 0! #32296500 1! #32296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32297000 0! #32297500 1! #32297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32298000 0! #32298500 1! #32298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32299000 0! #32299500 1! #32299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32300000 0! #32300500 1! #32300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32301000 0! #32301500 1! #32301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32302000 0! #32302500 1! #32302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32303000 0! #32303500 1! #32303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32304000 0! #32304500 1! #32304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32305000 0! #32305500 1! #32305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32306000 0! #32306500 1! #32306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32307000 0! #32307500 1! #32307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32308000 0! #32308500 1! #32308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32309000 0! #32309500 1! #32309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32310000 0! #32310500 1! #32310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32311000 0! #32311500 1! #32311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32312000 0! #32312500 1! #32312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32313000 0! #32313500 1! #32313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32314000 0! #32314500 1! #32314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32315000 0! #32315500 1! #32315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32316000 0! #32316500 1! #32316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32317000 0! #32317500 1! #32317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32318000 0! #32318500 1! #32318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32319000 0! #32319500 1! #32319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32320000 0! #32320500 1! #32320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32321000 0! #32321500 1! #32321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32322000 0! #32322500 1! #32322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32323000 0! #32323500 1! #32323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32324000 0! #32324500 1! #32324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32325000 0! #32325500 1! #32325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32326000 0! #32326500 1! #32326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32327000 0! #32327500 1! #32327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32328000 0! #32328500 1! #32328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32329000 0! #32329500 1! #32329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32330000 0! #32330500 1! #32330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32331000 0! #32331500 1! #32331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32332000 0! #32332500 1! #32332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32333000 0! #32333500 1! #32333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32334000 0! #32334500 1! #32334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32335000 0! #32335500 1! #32335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32336000 0! #32336500 1! #32336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32337000 0! #32337500 1! #32337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32338000 0! #32338500 1! #32338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32339000 0! #32339500 1! #32339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32340000 0! #32340500 1! #32340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32341000 0! #32341500 1! #32341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32342000 0! #32342500 1! #32342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32343000 0! #32343500 1! #32343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32344000 0! #32344500 1! #32344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32345000 0! #32345500 1! #32345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32346000 0! #32346500 1! #32346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32347000 0! #32347500 1! #32347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32348000 0! #32348500 1! #32348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32349000 0! #32349500 1! #32349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32350000 0! #32350500 1! #32350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32351000 0! #32351500 1! #32351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32352000 0! #32352500 1! #32352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32353000 0! #32353500 1! #32353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32354000 0! #32354500 1! #32354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32355000 0! #32355500 1! #32355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32356000 0! #32356500 1! #32356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32357000 0! #32357500 1! #32357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32358000 0! #32358500 1! #32358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32359000 0! #32359500 1! #32359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32360000 0! #32360500 1! #32360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32361000 0! #32361500 1! #32361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32362000 0! #32362500 1! #32362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #32362700 bx1111 ^ b100 g b100xxxx c 0e #32363000 0! #32363500 1! #32363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32364000 0! #32364500 1! #32364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32365000 0! #32365500 1! #32365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32366000 0! #32366500 1! #32366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32367000 0! #32367500 1! #32367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32368000 0! #32368500 1! #32368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32369000 0! #32369500 1! #32369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32370000 0! #32370500 1! #32370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32371000 0! #32371500 1! #32371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32372000 0! #32372500 1! #32372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32373000 0! #32373500 1! #32373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32374000 0! #32374500 1! #32374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32375000 0! #32375500 1! #32375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32376000 0! #32376500 1! #32376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32377000 0! #32377500 1! #32377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32378000 0! #32378500 1! #32378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32379000 0! #32379500 1! #32379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32380000 0! #32380500 1! #32380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32381000 0! #32381500 1! #32381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32382000 0! #32382500 1! #32382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32383000 0! #32383500 1! #32383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32384000 0! #32384500 1! #32384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32385000 0! #32385500 1! #32385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32386000 0! #32386500 1! #32386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32387000 0! #32387500 1! #32387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32388000 0! #32388500 1! #32388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32389000 0! #32389500 1! #32389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32390000 0! #32390500 1! #32390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32391000 0! #32391500 1! #32391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32392000 0! #32392500 1! #32392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32393000 0! #32393500 1! #32393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32394000 0! #32394500 1! #32394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32395000 0! #32395500 1! #32395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32396000 0! #32396500 1! #32396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32397000 0! #32397500 1! #32397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32398000 0! #32398500 1! #32398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32399000 0! #32399500 1! #32399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32400000 0! #32400500 1! #32400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32401000 0! #32401500 1! #32401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32402000 0! #32402500 1! #32402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32403000 0! #32403500 1! #32403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32404000 0! #32404500 1! #32404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32405000 0! #32405500 1! #32405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32406000 0! #32406500 1! #32406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32407000 0! #32407500 1! #32407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32408000 0! #32408500 1! #32408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32409000 0! #32409500 1! #32409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32410000 0! #32410500 1! #32410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32411000 0! #32411500 1! #32411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32412000 0! #32412500 1! #32412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32413000 0! #32413500 1! #32413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32414000 0! #32414500 1! #32414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32415000 0! #32415500 1! #32415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32416000 0! #32416500 1! #32416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32417000 0! #32417500 1! #32417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32418000 0! #32418500 1! #32418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32419000 0! #32419500 1! #32419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32420000 0! #32420500 1! #32420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32421000 0! #32421500 1! #32421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32422000 0! #32422500 1! #32422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32423000 0! #32423500 1! #32423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32424000 0! #32424500 1! #32424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32425000 0! #32425500 1! #32425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32426000 0! #32426500 1! #32426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32427000 0! #32427500 1! #32427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32428000 0! #32428500 1! #32428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32429000 0! #32429500 1! #32429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32430000 0! #32430500 1! #32430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32431000 0! #32431500 1! #32431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32432000 0! #32432500 1! #32432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32433000 0! #32433500 1! #32433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32434000 0! #32434500 1! #32434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32435000 0! #32435500 1! #32435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32436000 0! #32436500 1! #32436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32437000 0! #32437500 1! #32437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32438000 0! #32438500 1! #32438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32439000 0! #32439500 1! #32439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32440000 0! #32440500 1! #32440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32441000 0! #32441500 1! #32441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32442000 0! #32442500 1! #32442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32443000 0! #32443500 1! #32443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32444000 0! #32444500 1! #32444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32445000 0! #32445500 1! #32445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32446000 0! #32446500 1! #32446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32447000 0! #32447500 1! #32447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32448000 0! #32448500 1! #32448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32449000 0! #32449500 1! #32449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32450000 0! #32450500 1! #32450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32451000 0! #32451500 1! #32451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32452000 0! #32452500 1! #32452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32453000 0! #32453500 1! #32453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32454000 0! #32454500 1! #32454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32455000 0! #32455500 1! #32455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32456000 0! #32456500 1! #32456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32457000 0! #32457500 1! #32457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32458000 0! #32458500 1! #32458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32459000 0! #32459500 1! #32459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32460000 0! #32460500 1! #32460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32461000 0! #32461500 1! #32461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32462000 0! #32462500 1! #32462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32463000 0! #32463500 1! #32463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32464000 0! #32464500 1! #32464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #32464700 1j xj #32465000 0! #32465500 1! #32465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32466000 0! #32466500 1! #32466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32467000 0! #32467500 1! #32467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32468000 0! #32468500 1! #32468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32469000 0! #32469500 1! #32469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32470000 0! #32470500 1! #32470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32471000 0! #32471500 1! #32471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32472000 0! #32472500 1! #32472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32473000 0! #32473500 1! #32473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32474000 0! #32474500 1! #32474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32475000 0! #32475500 1! #32475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32476000 0! #32476500 1! #32476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32477000 0! #32477500 1! #32477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32478000 0! #32478500 1! #32478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32479000 0! #32479500 1! #32479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32480000 0! #32480500 1! #32480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32481000 0! #32481500 1! #32481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32482000 0! #32482500 1! #32482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32483000 0! #32483500 1! #32483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32484000 0! #32484500 1! #32484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32485000 0! #32485500 1! #32485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32486000 0! #32486500 1! #32486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32487000 0! #32487500 1! #32487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32488000 0! #32488500 1! #32488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32489000 0! #32489500 1! #32489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32490000 0! #32490500 1! #32490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32491000 0! #32491500 1! #32491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32492000 0! #32492500 1! #32492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32493000 0! #32493500 1! #32493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32494000 0! #32494500 1! #32494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32495000 0! #32495500 1! #32495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32496000 0! #32496500 1! #32496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32497000 0! #32497500 1! #32497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32498000 0! #32498500 1! #32498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32499000 0! #32499500 1! #32499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32500000 0! #32500500 1! #32500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32501000 0! #32501500 1! #32501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32502000 0! #32502500 1! #32502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32503000 0! #32503500 1! #32503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32504000 0! #32504500 1! #32504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32505000 0! #32505500 1! #32505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32506000 0! #32506500 1! #32506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32507000 0! #32507500 1! #32507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32508000 0! #32508500 1! #32508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32509000 0! #32509500 1! #32509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32510000 0! #32510500 1! #32510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32511000 0! #32511500 1! #32511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32512000 0! #32512500 1! #32512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32513000 0! #32513500 1! #32513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32514000 0! #32514500 1! #32514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32515000 0! #32515500 1! #32515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32516000 0! #32516500 1! #32516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32517000 0! #32517500 1! #32517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32518000 0! #32518500 1! #32518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32519000 0! #32519500 1! #32519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32520000 0! #32520500 1! #32520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32521000 0! #32521500 1! #32521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32522000 0! #32522500 1! #32522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32523000 0! #32523500 1! #32523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32524000 0! #32524500 1! #32524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32525000 0! #32525500 1! #32525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32526000 0! #32526500 1! #32526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32527000 0! #32527500 1! #32527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32528000 0! #32528500 1! #32528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32529000 0! #32529500 1! #32529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32530000 0! #32530500 1! #32530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32531000 0! #32531500 1! #32531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32532000 0! #32532500 1! #32532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32533000 0! #32533500 1! #32533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32534000 0! #32534500 1! #32534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32535000 0! #32535500 1! #32535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32536000 0! #32536500 1! #32536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32537000 0! #32537500 1! #32537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32538000 0! #32538500 1! #32538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32539000 0! #32539500 1! #32539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32540000 0! #32540500 1! #32540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32541000 0! #32541500 1! #32541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32542000 0! #32542500 1! #32542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32543000 0! #32543500 1! #32543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32544000 0! #32544500 1! #32544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32545000 0! #32545500 1! #32545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32546000 0! #32546500 1! #32546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32547000 0! #32547500 1! #32547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32548000 0! #32548500 1! #32548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32549000 0! #32549500 1! #32549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32550000 0! #32550500 1! #32550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32551000 0! #32551500 1! #32551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32552000 0! #32552500 1! #32552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32553000 0! #32553500 1! #32553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32554000 0! #32554500 1! #32554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32555000 0! #32555500 1! #32555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32556000 0! #32556500 1! #32556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32557000 0! #32557500 1! #32557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32558000 0! #32558500 1! #32558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32559000 0! #32559500 1! #32559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32560000 0! #32560500 1! #32560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32561000 0! #32561500 1! #32561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32562000 0! #32562500 1! #32562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32563000 0! #32563500 1! #32563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32564000 0! #32564500 1! #32564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32565000 0! #32565500 1! #32565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32566000 0! #32566500 1! #32566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32567000 0! #32567500 1! #32567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32568000 0! #32568500 1! #32568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32569000 0! #32569500 1! #32569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32570000 0! #32570500 1! #32570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32571000 0! #32571500 1! #32571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32572000 0! #32572500 1! #32572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32573000 0! #32573500 1! #32573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32574000 0! #32574500 1! #32574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32575000 0! #32575500 1! #32575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32576000 0! #32576500 1! #32576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32577000 0! #32577500 1! #32577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32578000 0! #32578500 1! #32578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32579000 0! #32579500 1! #32579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32580000 0! #32580500 1! #32580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32581000 0! #32581500 1! #32581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32582000 0! #32582500 1! #32582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32583000 0! #32583500 1! #32583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32584000 0! #32584500 1! #32584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32585000 0! #32585500 1! #32585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32586000 0! #32586500 1! #32586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32587000 0! #32587500 1! #32587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32588000 0! #32588500 1! #32588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32589000 0! #32589500 1! #32589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32590000 0! #32590500 1! #32590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32591000 0! #32591500 1! #32591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32592000 0! #32592500 1! #32592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32593000 0! #32593500 1! #32593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32594000 0! #32594500 1! #32594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32595000 0! #32595500 1! #32595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32596000 0! #32596500 1! #32596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32597000 0! #32597500 1! #32597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32598000 0! #32598500 1! #32598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32599000 0! #32599500 1! #32599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32600000 0! #32600500 1! #32600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32601000 0! #32601500 1! #32601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32602000 0! #32602500 1! #32602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32603000 0! #32603500 1! #32603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32604000 0! #32604500 1! #32604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32605000 0! #32605500 1! #32605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32606000 0! #32606500 1! #32606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32607000 0! #32607500 1! #32607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32608000 0! #32608500 1! #32608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32609000 0! #32609500 1! #32609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32610000 0! #32610500 1! #32610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32611000 0! #32611500 1! #32611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32612000 0! #32612500 1! #32612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32613000 0! #32613500 1! #32613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32614000 0! #32614500 1! #32614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32615000 0! #32615500 1! #32615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32616000 0! #32616500 1! #32616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32617000 0! #32617500 1! #32617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #32617700 bx11111 ^ b11 g b100xxxxx c #32618000 0! #32618500 1! #32618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32619000 0! #32619500 1! #32619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32620000 0! #32620500 1! #32620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32621000 0! #32621500 1! #32621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32622000 0! #32622500 1! #32622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32623000 0! #32623500 1! #32623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32624000 0! #32624500 1! #32624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32625000 0! #32625500 1! #32625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32626000 0! #32626500 1! #32626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32627000 0! #32627500 1! #32627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32628000 0! #32628500 1! #32628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32629000 0! #32629500 1! #32629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32630000 0! #32630500 1! #32630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32631000 0! #32631500 1! #32631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32632000 0! #32632500 1! #32632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32633000 0! #32633500 1! #32633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32634000 0! #32634500 1! #32634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32635000 0! #32635500 1! #32635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32636000 0! #32636500 1! #32636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32637000 0! #32637500 1! #32637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32638000 0! #32638500 1! #32638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32639000 0! #32639500 1! #32639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32640000 0! #32640500 1! #32640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32641000 0! #32641500 1! #32641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32642000 0! #32642500 1! #32642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32643000 0! #32643500 1! #32643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32644000 0! #32644500 1! #32644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32645000 0! #32645500 1! #32645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32646000 0! #32646500 1! #32646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32647000 0! #32647500 1! #32647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32648000 0! #32648500 1! #32648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32649000 0! #32649500 1! #32649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32650000 0! #32650500 1! #32650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32651000 0! #32651500 1! #32651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32652000 0! #32652500 1! #32652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32653000 0! #32653500 1! #32653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32654000 0! #32654500 1! #32654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32655000 0! #32655500 1! #32655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32656000 0! #32656500 1! #32656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32657000 0! #32657500 1! #32657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32658000 0! #32658500 1! #32658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32659000 0! #32659500 1! #32659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32660000 0! #32660500 1! #32660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32661000 0! #32661500 1! #32661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32662000 0! #32662500 1! #32662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32663000 0! #32663500 1! #32663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32664000 0! #32664500 1! #32664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32665000 0! #32665500 1! #32665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32666000 0! #32666500 1! #32666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32667000 0! #32667500 1! #32667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32668000 0! #32668500 1! #32668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32669000 0! #32669500 1! #32669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32670000 0! #32670500 1! #32670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32671000 0! #32671500 1! #32671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32672000 0! #32672500 1! #32672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32673000 0! #32673500 1! #32673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32674000 0! #32674500 1! #32674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32675000 0! #32675500 1! #32675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32676000 0! #32676500 1! #32676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32677000 0! #32677500 1! #32677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32678000 0! #32678500 1! #32678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32679000 0! #32679500 1! #32679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32680000 0! #32680500 1! #32680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32681000 0! #32681500 1! #32681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32682000 0! #32682500 1! #32682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32683000 0! #32683500 1! #32683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32684000 0! #32684500 1! #32684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32685000 0! #32685500 1! #32685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32686000 0! #32686500 1! #32686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32687000 0! #32687500 1! #32687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32688000 0! #32688500 1! #32688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32689000 0! #32689500 1! #32689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32690000 0! #32690500 1! #32690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32691000 0! #32691500 1! #32691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32692000 0! #32692500 1! #32692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32693000 0! #32693500 1! #32693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32694000 0! #32694500 1! #32694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32695000 0! #32695500 1! #32695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32696000 0! #32696500 1! #32696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32697000 0! #32697500 1! #32697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32698000 0! #32698500 1! #32698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32699000 0! #32699500 1! #32699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32700000 0! #32700500 1! #32700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32701000 0! #32701500 1! #32701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32702000 0! #32702500 1! #32702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32703000 0! #32703500 1! #32703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32704000 0! #32704500 1! #32704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32705000 0! #32705500 1! #32705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32706000 0! #32706500 1! #32706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32707000 0! #32707500 1! #32707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32708000 0! #32708500 1! #32708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32709000 0! #32709500 1! #32709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32710000 0! #32710500 1! #32710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32711000 0! #32711500 1! #32711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32712000 0! #32712500 1! #32712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32713000 0! #32713500 1! #32713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32714000 0! #32714500 1! #32714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32715000 0! #32715500 1! #32715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32716000 0! #32716500 1! #32716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32717000 0! #32717500 1! #32717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32718000 0! #32718500 1! #32718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32719000 0! #32719500 1! #32719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #32719700 1j xj #32720000 0! #32720500 1! #32720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32721000 0! #32721500 1! #32721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32722000 0! #32722500 1! #32722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32723000 0! #32723500 1! #32723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32724000 0! #32724500 1! #32724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32725000 0! #32725500 1! #32725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32726000 0! #32726500 1! #32726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32727000 0! #32727500 1! #32727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32728000 0! #32728500 1! #32728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32729000 0! #32729500 1! #32729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32730000 0! #32730500 1! #32730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32731000 0! #32731500 1! #32731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32732000 0! #32732500 1! #32732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32733000 0! #32733500 1! #32733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32734000 0! #32734500 1! #32734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32735000 0! #32735500 1! #32735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32736000 0! #32736500 1! #32736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32737000 0! #32737500 1! #32737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32738000 0! #32738500 1! #32738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32739000 0! #32739500 1! #32739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32740000 0! #32740500 1! #32740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32741000 0! #32741500 1! #32741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32742000 0! #32742500 1! #32742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32743000 0! #32743500 1! #32743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32744000 0! #32744500 1! #32744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32745000 0! #32745500 1! #32745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32746000 0! #32746500 1! #32746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32747000 0! #32747500 1! #32747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32748000 0! #32748500 1! #32748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32749000 0! #32749500 1! #32749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32750000 0! #32750500 1! #32750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32751000 0! #32751500 1! #32751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32752000 0! #32752500 1! #32752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32753000 0! #32753500 1! #32753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32754000 0! #32754500 1! #32754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32755000 0! #32755500 1! #32755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32756000 0! #32756500 1! #32756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32757000 0! #32757500 1! #32757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32758000 0! #32758500 1! #32758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32759000 0! #32759500 1! #32759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32760000 0! #32760500 1! #32760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32761000 0! #32761500 1! #32761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32762000 0! #32762500 1! #32762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32763000 0! #32763500 1! #32763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32764000 0! #32764500 1! #32764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32765000 0! #32765500 1! #32765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32766000 0! #32766500 1! #32766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32767000 0! #32767500 1! #32767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32768000 0! #32768500 1! #32768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32769000 0! #32769500 1! #32769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32770000 0! #32770500 1! #32770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32771000 0! #32771500 1! #32771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32772000 0! #32772500 1! #32772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32773000 0! #32773500 1! #32773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32774000 0! #32774500 1! #32774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32775000 0! #32775500 1! #32775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32776000 0! #32776500 1! #32776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32777000 0! #32777500 1! #32777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32778000 0! #32778500 1! #32778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32779000 0! #32779500 1! #32779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32780000 0! #32780500 1! #32780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32781000 0! #32781500 1! #32781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32782000 0! #32782500 1! #32782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32783000 0! #32783500 1! #32783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32784000 0! #32784500 1! #32784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32785000 0! #32785500 1! #32785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32786000 0! #32786500 1! #32786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32787000 0! #32787500 1! #32787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32788000 0! #32788500 1! #32788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32789000 0! #32789500 1! #32789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32790000 0! #32790500 1! #32790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32791000 0! #32791500 1! #32791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32792000 0! #32792500 1! #32792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32793000 0! #32793500 1! #32793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32794000 0! #32794500 1! #32794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32795000 0! #32795500 1! #32795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32796000 0! #32796500 1! #32796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32797000 0! #32797500 1! #32797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32798000 0! #32798500 1! #32798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32799000 0! #32799500 1! #32799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32800000 0! #32800500 1! #32800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32801000 0! #32801500 1! #32801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32802000 0! #32802500 1! #32802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32803000 0! #32803500 1! #32803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32804000 0! #32804500 1! #32804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32805000 0! #32805500 1! #32805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32806000 0! #32806500 1! #32806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32807000 0! #32807500 1! #32807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32808000 0! #32808500 1! #32808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32809000 0! #32809500 1! #32809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32810000 0! #32810500 1! #32810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32811000 0! #32811500 1! #32811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32812000 0! #32812500 1! #32812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32813000 0! #32813500 1! #32813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32814000 0! #32814500 1! #32814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32815000 0! #32815500 1! #32815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32816000 0! #32816500 1! #32816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32817000 0! #32817500 1! #32817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32818000 0! #32818500 1! #32818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32819000 0! #32819500 1! #32819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32820000 0! #32820500 1! #32820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32821000 0! #32821500 1! #32821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32822000 0! #32822500 1! #32822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32823000 0! #32823500 1! #32823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32824000 0! #32824500 1! #32824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32825000 0! #32825500 1! #32825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32826000 0! #32826500 1! #32826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32827000 0! #32827500 1! #32827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32828000 0! #32828500 1! #32828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32829000 0! #32829500 1! #32829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32830000 0! #32830500 1! #32830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32831000 0! #32831500 1! #32831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32832000 0! #32832500 1! #32832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32833000 0! #32833500 1! #32833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32834000 0! #32834500 1! #32834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32835000 0! #32835500 1! #32835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32836000 0! #32836500 1! #32836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32837000 0! #32837500 1! #32837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32838000 0! #32838500 1! #32838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32839000 0! #32839500 1! #32839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32840000 0! #32840500 1! #32840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32841000 0! #32841500 1! #32841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32842000 0! #32842500 1! #32842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32843000 0! #32843500 1! #32843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32844000 0! #32844500 1! #32844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32845000 0! #32845500 1! #32845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32846000 0! #32846500 1! #32846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32847000 0! #32847500 1! #32847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32848000 0! #32848500 1! #32848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32849000 0! #32849500 1! #32849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32850000 0! #32850500 1! #32850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32851000 0! #32851500 1! #32851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32852000 0! #32852500 1! #32852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32853000 0! #32853500 1! #32853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32854000 0! #32854500 1! #32854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32855000 0! #32855500 1! #32855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32856000 0! #32856500 1! #32856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32857000 0! #32857500 1! #32857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32858000 0! #32858500 1! #32858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32859000 0! #32859500 1! #32859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32860000 0! #32860500 1! #32860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32861000 0! #32861500 1! #32861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32862000 0! #32862500 1! #32862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32863000 0! #32863500 1! #32863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32864000 0! #32864500 1! #32864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32865000 0! #32865500 1! #32865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32866000 0! #32866500 1! #32866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32867000 0! #32867500 1! #32867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32868000 0! #32868500 1! #32868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32869000 0! #32869500 1! #32869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32870000 0! #32870500 1! #32870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32871000 0! #32871500 1! #32871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32872000 0! #32872500 1! #32872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #32872700 bx111111 ^ b10 g b0xxxxxx c #32873000 0! #32873500 1! #32873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32874000 0! #32874500 1! #32874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32875000 0! #32875500 1! #32875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32876000 0! #32876500 1! #32876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32877000 0! #32877500 1! #32877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32878000 0! #32878500 1! #32878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32879000 0! #32879500 1! #32879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32880000 0! #32880500 1! #32880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32881000 0! #32881500 1! #32881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32882000 0! #32882500 1! #32882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32883000 0! #32883500 1! #32883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32884000 0! #32884500 1! #32884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32885000 0! #32885500 1! #32885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32886000 0! #32886500 1! #32886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32887000 0! #32887500 1! #32887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32888000 0! #32888500 1! #32888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32889000 0! #32889500 1! #32889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32890000 0! #32890500 1! #32890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32891000 0! #32891500 1! #32891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32892000 0! #32892500 1! #32892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32893000 0! #32893500 1! #32893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32894000 0! #32894500 1! #32894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32895000 0! #32895500 1! #32895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32896000 0! #32896500 1! #32896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32897000 0! #32897500 1! #32897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32898000 0! #32898500 1! #32898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32899000 0! #32899500 1! #32899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32900000 0! #32900500 1! #32900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32901000 0! #32901500 1! #32901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32902000 0! #32902500 1! #32902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32903000 0! #32903500 1! #32903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32904000 0! #32904500 1! #32904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32905000 0! #32905500 1! #32905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32906000 0! #32906500 1! #32906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32907000 0! #32907500 1! #32907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32908000 0! #32908500 1! #32908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32909000 0! #32909500 1! #32909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32910000 0! #32910500 1! #32910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32911000 0! #32911500 1! #32911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32912000 0! #32912500 1! #32912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32913000 0! #32913500 1! #32913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32914000 0! #32914500 1! #32914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32915000 0! #32915500 1! #32915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32916000 0! #32916500 1! #32916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32917000 0! #32917500 1! #32917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32918000 0! #32918500 1! #32918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32919000 0! #32919500 1! #32919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32920000 0! #32920500 1! #32920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32921000 0! #32921500 1! #32921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32922000 0! #32922500 1! #32922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32923000 0! #32923500 1! #32923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32924000 0! #32924500 1! #32924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32925000 0! #32925500 1! #32925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32926000 0! #32926500 1! #32926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32927000 0! #32927500 1! #32927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32928000 0! #32928500 1! #32928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32929000 0! #32929500 1! #32929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32930000 0! #32930500 1! #32930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32931000 0! #32931500 1! #32931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32932000 0! #32932500 1! #32932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32933000 0! #32933500 1! #32933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32934000 0! #32934500 1! #32934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32935000 0! #32935500 1! #32935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32936000 0! #32936500 1! #32936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32937000 0! #32937500 1! #32937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32938000 0! #32938500 1! #32938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32939000 0! #32939500 1! #32939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32940000 0! #32940500 1! #32940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32941000 0! #32941500 1! #32941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32942000 0! #32942500 1! #32942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32943000 0! #32943500 1! #32943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32944000 0! #32944500 1! #32944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32945000 0! #32945500 1! #32945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32946000 0! #32946500 1! #32946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32947000 0! #32947500 1! #32947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32948000 0! #32948500 1! #32948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32949000 0! #32949500 1! #32949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32950000 0! #32950500 1! #32950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32951000 0! #32951500 1! #32951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32952000 0! #32952500 1! #32952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32953000 0! #32953500 1! #32953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32954000 0! #32954500 1! #32954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32955000 0! #32955500 1! #32955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32956000 0! #32956500 1! #32956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32957000 0! #32957500 1! #32957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32958000 0! #32958500 1! #32958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32959000 0! #32959500 1! #32959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32960000 0! #32960500 1! #32960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32961000 0! #32961500 1! #32961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32962000 0! #32962500 1! #32962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32963000 0! #32963500 1! #32963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32964000 0! #32964500 1! #32964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32965000 0! #32965500 1! #32965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32966000 0! #32966500 1! #32966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32967000 0! #32967500 1! #32967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32968000 0! #32968500 1! #32968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32969000 0! #32969500 1! #32969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32970000 0! #32970500 1! #32970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32971000 0! #32971500 1! #32971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32972000 0! #32972500 1! #32972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32973000 0! #32973500 1! #32973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32974000 0! #32974500 1! #32974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #32974700 1j xj #32975000 0! #32975500 1! #32975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32976000 0! #32976500 1! #32976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32977000 0! #32977500 1! #32977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32978000 0! #32978500 1! #32978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32979000 0! #32979500 1! #32979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32980000 0! #32980500 1! #32980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32981000 0! #32981500 1! #32981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32982000 0! #32982500 1! #32982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32983000 0! #32983500 1! #32983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32984000 0! #32984500 1! #32984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32985000 0! #32985500 1! #32985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32986000 0! #32986500 1! #32986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32987000 0! #32987500 1! #32987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32988000 0! #32988500 1! #32988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32989000 0! #32989500 1! #32989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32990000 0! #32990500 1! #32990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32991000 0! #32991500 1! #32991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32992000 0! #32992500 1! #32992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32993000 0! #32993500 1! #32993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32994000 0! #32994500 1! #32994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32995000 0! #32995500 1! #32995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32996000 0! #32996500 1! #32996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32997000 0! #32997500 1! #32997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #32998000 0! #32998500 1! #32998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #32999000 0! #32999500 1! #32999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33000000 0! #33000500 1! #33000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33001000 0! #33001500 1! #33001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33002000 0! #33002500 1! #33002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33003000 0! #33003500 1! #33003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33004000 0! #33004500 1! #33004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33005000 0! #33005500 1! #33005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33006000 0! #33006500 1! #33006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33007000 0! #33007500 1! #33007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33008000 0! #33008500 1! #33008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33009000 0! #33009500 1! #33009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33010000 0! #33010500 1! #33010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33011000 0! #33011500 1! #33011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33012000 0! #33012500 1! #33012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33013000 0! #33013500 1! #33013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33014000 0! #33014500 1! #33014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33015000 0! #33015500 1! #33015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33016000 0! #33016500 1! #33016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33017000 0! #33017500 1! #33017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33018000 0! #33018500 1! #33018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33019000 0! #33019500 1! #33019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33020000 0! #33020500 1! #33020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33021000 0! #33021500 1! #33021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33022000 0! #33022500 1! #33022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33023000 0! #33023500 1! #33023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33024000 0! #33024500 1! #33024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33025000 0! #33025500 1! #33025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33026000 0! #33026500 1! #33026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33027000 0! #33027500 1! #33027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33028000 0! #33028500 1! #33028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33029000 0! #33029500 1! #33029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33030000 0! #33030500 1! #33030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33031000 0! #33031500 1! #33031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33032000 0! #33032500 1! #33032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33033000 0! #33033500 1! #33033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33034000 0! #33034500 1! #33034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33035000 0! #33035500 1! #33035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33036000 0! #33036500 1! #33036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33037000 0! #33037500 1! #33037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33038000 0! #33038500 1! #33038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33039000 0! #33039500 1! #33039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33040000 0! #33040500 1! #33040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33041000 0! #33041500 1! #33041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33042000 0! #33042500 1! #33042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33043000 0! #33043500 1! #33043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33044000 0! #33044500 1! #33044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33045000 0! #33045500 1! #33045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33046000 0! #33046500 1! #33046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33047000 0! #33047500 1! #33047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33048000 0! #33048500 1! #33048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33049000 0! #33049500 1! #33049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33050000 0! #33050500 1! #33050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33051000 0! #33051500 1! #33051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33052000 0! #33052500 1! #33052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33053000 0! #33053500 1! #33053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33054000 0! #33054500 1! #33054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33055000 0! #33055500 1! #33055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33056000 0! #33056500 1! #33056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33057000 0! #33057500 1! #33057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33058000 0! #33058500 1! #33058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33059000 0! #33059500 1! #33059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33060000 0! #33060500 1! #33060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33061000 0! #33061500 1! #33061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33062000 0! #33062500 1! #33062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33063000 0! #33063500 1! #33063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33064000 0! #33064500 1! #33064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33065000 0! #33065500 1! #33065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33066000 0! #33066500 1! #33066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33067000 0! #33067500 1! #33067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33068000 0! #33068500 1! #33068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33069000 0! #33069500 1! #33069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33070000 0! #33070500 1! #33070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33071000 0! #33071500 1! #33071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33072000 0! #33072500 1! #33072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33073000 0! #33073500 1! #33073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33074000 0! #33074500 1! #33074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33075000 0! #33075500 1! #33075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33076000 0! #33076500 1! #33076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33077000 0! #33077500 1! #33077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33078000 0! #33078500 1! #33078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33079000 0! #33079500 1! #33079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33080000 0! #33080500 1! #33080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33081000 0! #33081500 1! #33081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33082000 0! #33082500 1! #33082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33083000 0! #33083500 1! #33083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33084000 0! #33084500 1! #33084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33085000 0! #33085500 1! #33085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33086000 0! #33086500 1! #33086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33087000 0! #33087500 1! #33087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33088000 0! #33088500 1! #33088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33089000 0! #33089500 1! #33089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33090000 0! #33090500 1! #33090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33091000 0! #33091500 1! #33091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33092000 0! #33092500 1! #33092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33093000 0! #33093500 1! #33093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33094000 0! #33094500 1! #33094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33095000 0! #33095500 1! #33095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33096000 0! #33096500 1! #33096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33097000 0! #33097500 1! #33097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33098000 0! #33098500 1! #33098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33099000 0! #33099500 1! #33099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33100000 0! #33100500 1! #33100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33101000 0! #33101500 1! #33101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33102000 0! #33102500 1! #33102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33103000 0! #33103500 1! #33103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33104000 0! #33104500 1! #33104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33105000 0! #33105500 1! #33105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33106000 0! #33106500 1! #33106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33107000 0! #33107500 1! #33107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33108000 0! #33108500 1! #33108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33109000 0! #33109500 1! #33109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33110000 0! #33110500 1! #33110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33111000 0! #33111500 1! #33111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33112000 0! #33112500 1! #33112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33113000 0! #33113500 1! #33113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33114000 0! #33114500 1! #33114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33115000 0! #33115500 1! #33115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33116000 0! #33116500 1! #33116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33117000 0! #33117500 1! #33117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33118000 0! #33118500 1! #33118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33119000 0! #33119500 1! #33119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33120000 0! #33120500 1! #33120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33121000 0! #33121500 1! #33121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33122000 0! #33122500 1! #33122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33123000 0! #33123500 1! #33123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33124000 0! #33124500 1! #33124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33125000 0! #33125500 1! #33125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33126000 0! #33126500 1! #33126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33127000 0! #33127500 1! #33127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #33127700 bx1111111 ^ b1 g b0xxxxxxx c #33128000 0! #33128500 1! #33128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33129000 0! #33129500 1! #33129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33130000 0! #33130500 1! #33130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33131000 0! #33131500 1! #33131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33132000 0! #33132500 1! #33132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33133000 0! #33133500 1! #33133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33134000 0! #33134500 1! #33134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33135000 0! #33135500 1! #33135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33136000 0! #33136500 1! #33136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33137000 0! #33137500 1! #33137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33138000 0! #33138500 1! #33138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33139000 0! #33139500 1! #33139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33140000 0! #33140500 1! #33140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33141000 0! #33141500 1! #33141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33142000 0! #33142500 1! #33142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33143000 0! #33143500 1! #33143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33144000 0! #33144500 1! #33144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33145000 0! #33145500 1! #33145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33146000 0! #33146500 1! #33146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33147000 0! #33147500 1! #33147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33148000 0! #33148500 1! #33148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33149000 0! #33149500 1! #33149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33150000 0! #33150500 1! #33150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33151000 0! #33151500 1! #33151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33152000 0! #33152500 1! #33152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33153000 0! #33153500 1! #33153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33154000 0! #33154500 1! #33154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33155000 0! #33155500 1! #33155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33156000 0! #33156500 1! #33156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33157000 0! #33157500 1! #33157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33158000 0! #33158500 1! #33158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33159000 0! #33159500 1! #33159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33160000 0! #33160500 1! #33160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33161000 0! #33161500 1! #33161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33162000 0! #33162500 1! #33162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33163000 0! #33163500 1! #33163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33164000 0! #33164500 1! #33164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33165000 0! #33165500 1! #33165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33166000 0! #33166500 1! #33166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33167000 0! #33167500 1! #33167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33168000 0! #33168500 1! #33168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33169000 0! #33169500 1! #33169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33170000 0! #33170500 1! #33170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33171000 0! #33171500 1! #33171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33172000 0! #33172500 1! #33172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33173000 0! #33173500 1! #33173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33174000 0! #33174500 1! #33174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33175000 0! #33175500 1! #33175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33176000 0! #33176500 1! #33176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33177000 0! #33177500 1! #33177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33178000 0! #33178500 1! #33178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33179000 0! #33179500 1! #33179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33180000 0! #33180500 1! #33180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33181000 0! #33181500 1! #33181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33182000 0! #33182500 1! #33182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33183000 0! #33183500 1! #33183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33184000 0! #33184500 1! #33184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33185000 0! #33185500 1! #33185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33186000 0! #33186500 1! #33186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33187000 0! #33187500 1! #33187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33188000 0! #33188500 1! #33188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33189000 0! #33189500 1! #33189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33190000 0! #33190500 1! #33190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33191000 0! #33191500 1! #33191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33192000 0! #33192500 1! #33192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33193000 0! #33193500 1! #33193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33194000 0! #33194500 1! #33194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33195000 0! #33195500 1! #33195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33196000 0! #33196500 1! #33196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33197000 0! #33197500 1! #33197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33198000 0! #33198500 1! #33198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33199000 0! #33199500 1! #33199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33200000 0! #33200500 1! #33200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33201000 0! #33201500 1! #33201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33202000 0! #33202500 1! #33202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33203000 0! #33203500 1! #33203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33204000 0! #33204500 1! #33204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33205000 0! #33205500 1! #33205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33206000 0! #33206500 1! #33206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33207000 0! #33207500 1! #33207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33208000 0! #33208500 1! #33208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33209000 0! #33209500 1! #33209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33210000 0! #33210500 1! #33210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33211000 0! #33211500 1! #33211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33212000 0! #33212500 1! #33212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33213000 0! #33213500 1! #33213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33214000 0! #33214500 1! #33214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33215000 0! #33215500 1! #33215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33216000 0! #33216500 1! #33216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33217000 0! #33217500 1! #33217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33218000 0! #33218500 1! #33218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33219000 0! #33219500 1! #33219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33220000 0! #33220500 1! #33220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33221000 0! #33221500 1! #33221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33222000 0! #33222500 1! #33222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33223000 0! #33223500 1! #33223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33224000 0! #33224500 1! #33224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33225000 0! #33225500 1! #33225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33226000 0! #33226500 1! #33226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33227000 0! #33227500 1! #33227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33228000 0! #33228500 1! #33228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33229000 0! #33229500 1! #33229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #33229700 1j xj #33230000 0! #33230500 1! #33230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33231000 0! #33231500 1! #33231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33232000 0! #33232500 1! #33232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33233000 0! #33233500 1! #33233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33234000 0! #33234500 1! #33234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33235000 0! #33235500 1! #33235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33236000 0! #33236500 1! #33236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33237000 0! #33237500 1! #33237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33238000 0! #33238500 1! #33238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33239000 0! #33239500 1! #33239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33240000 0! #33240500 1! #33240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33241000 0! #33241500 1! #33241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33242000 0! #33242500 1! #33242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33243000 0! #33243500 1! #33243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33244000 0! #33244500 1! #33244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33245000 0! #33245500 1! #33245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33246000 0! #33246500 1! #33246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33247000 0! #33247500 1! #33247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33248000 0! #33248500 1! #33248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33249000 0! #33249500 1! #33249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33250000 0! #33250500 1! #33250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33251000 0! #33251500 1! #33251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33252000 0! #33252500 1! #33252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33253000 0! #33253500 1! #33253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33254000 0! #33254500 1! #33254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33255000 0! #33255500 1! #33255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33256000 0! #33256500 1! #33256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33257000 0! #33257500 1! #33257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33258000 0! #33258500 1! #33258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33259000 0! #33259500 1! #33259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33260000 0! #33260500 1! #33260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33261000 0! #33261500 1! #33261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33262000 0! #33262500 1! #33262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33263000 0! #33263500 1! #33263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33264000 0! #33264500 1! #33264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33265000 0! #33265500 1! #33265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33266000 0! #33266500 1! #33266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33267000 0! #33267500 1! #33267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33268000 0! #33268500 1! #33268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33269000 0! #33269500 1! #33269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33270000 0! #33270500 1! #33270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33271000 0! #33271500 1! #33271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33272000 0! #33272500 1! #33272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33273000 0! #33273500 1! #33273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33274000 0! #33274500 1! #33274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33275000 0! #33275500 1! #33275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33276000 0! #33276500 1! #33276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33277000 0! #33277500 1! #33277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33278000 0! #33278500 1! #33278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33279000 0! #33279500 1! #33279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33280000 0! #33280500 1! #33280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33281000 0! #33281500 1! #33281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33282000 0! #33282500 1! #33282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33283000 0! #33283500 1! #33283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33284000 0! #33284500 1! #33284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33285000 0! #33285500 1! #33285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33286000 0! #33286500 1! #33286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33287000 0! #33287500 1! #33287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33288000 0! #33288500 1! #33288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33289000 0! #33289500 1! #33289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33290000 0! #33290500 1! #33290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33291000 0! #33291500 1! #33291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33292000 0! #33292500 1! #33292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33293000 0! #33293500 1! #33293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33294000 0! #33294500 1! #33294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33295000 0! #33295500 1! #33295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33296000 0! #33296500 1! #33296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33297000 0! #33297500 1! #33297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33298000 0! #33298500 1! #33298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33299000 0! #33299500 1! #33299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33300000 0! #33300500 1! #33300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33301000 0! #33301500 1! #33301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33302000 0! #33302500 1! #33302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33303000 0! #33303500 1! #33303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33304000 0! #33304500 1! #33304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33305000 0! #33305500 1! #33305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33306000 0! #33306500 1! #33306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33307000 0! #33307500 1! #33307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33308000 0! #33308500 1! #33308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33309000 0! #33309500 1! #33309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33310000 0! #33310500 1! #33310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33311000 0! #33311500 1! #33311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33312000 0! #33312500 1! #33312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33313000 0! #33313500 1! #33313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33314000 0! #33314500 1! #33314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33315000 0! #33315500 1! #33315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33316000 0! #33316500 1! #33316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33317000 0! #33317500 1! #33317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33318000 0! #33318500 1! #33318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33319000 0! #33319500 1! #33319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33320000 0! #33320500 1! #33320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33321000 0! #33321500 1! #33321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33322000 0! #33322500 1! #33322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33323000 0! #33323500 1! #33323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33324000 0! #33324500 1! #33324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33325000 0! #33325500 1! #33325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33326000 0! #33326500 1! #33326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33327000 0! #33327500 1! #33327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33328000 0! #33328500 1! #33328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33329000 0! #33329500 1! #33329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33330000 0! #33330500 1! #33330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33331000 0! #33331500 1! #33331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33332000 0! #33332500 1! #33332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33333000 0! #33333500 1! #33333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33334000 0! #33334500 1! #33334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33335000 0! #33335500 1! #33335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33336000 0! #33336500 1! #33336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33337000 0! #33337500 1! #33337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33338000 0! #33338500 1! #33338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33339000 0! #33339500 1! #33339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33340000 0! #33340500 1! #33340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33341000 0! #33341500 1! #33341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33342000 0! #33342500 1! #33342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33343000 0! #33343500 1! #33343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33344000 0! #33344500 1! #33344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33345000 0! #33345500 1! #33345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33346000 0! #33346500 1! #33346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33347000 0! #33347500 1! #33347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33348000 0! #33348500 1! #33348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33349000 0! #33349500 1! #33349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33350000 0! #33350500 1! #33350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33351000 0! #33351500 1! #33351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33352000 0! #33352500 1! #33352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33353000 0! #33353500 1! #33353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33354000 0! #33354500 1! #33354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33355000 0! #33355500 1! #33355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33356000 0! #33356500 1! #33356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33357000 0! #33357500 1! #33357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33358000 0! #33358500 1! #33358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33359000 0! #33359500 1! #33359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33360000 0! #33360500 1! #33360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33361000 0! #33361500 1! #33361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33362000 0! #33362500 1! #33362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33363000 0! #33363500 1! #33363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33364000 0! #33364500 1! #33364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33365000 0! #33365500 1! #33365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33366000 0! #33366500 1! #33366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33367000 0! #33367500 1! #33367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33368000 0! #33368500 1! #33368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33369000 0! #33369500 1! #33369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33370000 0! #33370500 1! #33370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33371000 0! #33371500 1! #33371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33372000 0! #33372500 1! #33372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33373000 0! #33373500 1! #33373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33374000 0! #33374500 1! #33374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33375000 0! #33375500 1! #33375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33376000 0! #33376500 1! #33376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33377000 0! #33377500 1! #33377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33378000 0! #33378500 1! #33378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33379000 0! #33379500 1! #33379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33380000 0! #33380500 1! #33380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33381000 0! #33381500 1! #33381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33382000 0! #33382500 1! #33382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #33382700 b11111111 ^ b0 g bx c xe 1h #33383000 0! #33383500 1! #33383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33384000 0! #33384500 1! #33384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33385000 0! #33385500 1! #33385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33386000 0! #33386500 1! #33386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33387000 0! #33387500 1! #33387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33388000 0! #33388500 1! #33388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33389000 0! #33389500 1! #33389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33390000 0! #33390500 1! #33390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33391000 0! #33391500 1! #33391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33392000 0! #33392500 1! #33392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33393000 0! #33393500 1! #33393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33394000 0! #33394500 1! #33394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33395000 0! #33395500 1! #33395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33396000 0! #33396500 1! #33396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33397000 0! #33397500 1! #33397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33398000 0! #33398500 1! #33398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33399000 0! #33399500 1! #33399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33400000 0! #33400500 1! #33400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33401000 0! #33401500 1! #33401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33402000 0! #33402500 1! #33402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33403000 0! #33403500 1! #33403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33404000 0! #33404500 1! #33404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33405000 0! #33405500 1! #33405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33406000 0! #33406500 1! #33406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33407000 0! #33407500 1! #33407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33408000 0! #33408500 1! #33408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33409000 0! #33409500 1! #33409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33410000 0! #33410500 1! #33410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33411000 0! #33411500 1! #33411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33412000 0! #33412500 1! #33412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33413000 0! #33413500 1! #33413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33414000 0! #33414500 1! #33414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33415000 0! #33415500 1! #33415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33416000 0! #33416500 1! #33416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33417000 0! #33417500 1! #33417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33418000 0! #33418500 1! #33418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33419000 0! #33419500 1! #33419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33420000 0! #33420500 1! #33420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33421000 0! #33421500 1! #33421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33422000 0! #33422500 1! #33422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33423000 0! #33423500 1! #33423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33424000 0! #33424500 1! #33424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33425000 0! #33425500 1! #33425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33426000 0! #33426500 1! #33426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33427000 0! #33427500 1! #33427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33428000 0! #33428500 1! #33428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33429000 0! #33429500 1! #33429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33430000 0! #33430500 1! #33430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33431000 0! #33431500 1! #33431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33432000 0! #33432500 1! #33432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33433000 0! #33433500 1! #33433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33434000 0! #33434500 1! #33434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33435000 0! #33435500 1! #33435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33436000 0! #33436500 1! #33436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33437000 0! #33437500 1! #33437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33438000 0! #33438500 1! #33438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33439000 0! #33439500 1! #33439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33440000 0! #33440500 1! #33440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33441000 0! #33441500 1! #33441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33442000 0! #33442500 1! #33442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33443000 0! #33443500 1! #33443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33444000 0! #33444500 1! #33444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33445000 0! #33445500 1! #33445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33446000 0! #33446500 1! #33446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33447000 0! #33447500 1! #33447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33448000 0! #33448500 1! #33448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33449000 0! #33449500 1! #33449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33450000 0! #33450500 1! #33450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33451000 0! #33451500 1! #33451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33452000 0! #33452500 1! #33452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33453000 0! #33453500 1! #33453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33454000 0! #33454500 1! #33454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33455000 0! #33455500 1! #33455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33456000 0! #33456500 1! #33456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33457000 0! #33457500 1! #33457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33458000 0! #33458500 1! #33458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33459000 0! #33459500 1! #33459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33460000 0! #33460500 1! #33460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33461000 0! #33461500 1! #33461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33462000 0! #33462500 1! #33462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33463000 0! #33463500 1! #33463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33464000 0! #33464500 1! #33464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33465000 0! #33465500 1! #33465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33466000 0! #33466500 1! #33466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33467000 0! #33467500 1! #33467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33468000 0! #33468500 1! #33468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33469000 0! #33469500 1! #33469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33470000 0! #33470500 1! #33470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33471000 0! #33471500 1! #33471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33472000 0! #33472500 1! #33472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33473000 0! #33473500 1! #33473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33474000 0! #33474500 1! #33474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33475000 0! #33475500 1! #33475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33476000 0! #33476500 1! #33476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33477000 0! #33477500 1! #33477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33478000 0! #33478500 1! #33478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33479000 0! #33479500 1! #33479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33480000 0! #33480500 1! #33480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33481000 0! #33481500 1! #33481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33482000 0! #33482500 1! #33482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33483000 0! #33483500 1! #33483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33484000 0! #33484500 1! #33484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #33484700 1j b101 q 1O #33484800 b100 ] #33484900 bx ^ #33485000 0! #33485500 1! #33485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33486000 0! #33486500 1! #33486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33487000 0! #33487500 1! #33487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33488000 0! #33488500 1! #33488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33489000 0! #33489500 1! #33489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33490000 0! #33490500 1! #33490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33491000 0! #33491500 1! #33491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33492000 0! #33492500 1! #33492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33493000 0! #33493500 1! #33493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33494000 0! #33494500 1! #33494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33495000 0! #33495500 1! #33495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33496000 0! #33496500 1! #33496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33497000 0! #33497500 1! #33497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33498000 0! #33498500 1! #33498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33499000 0! #33499500 1! #33499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33500000 0! #33500500 1! #33500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33501000 0! #33501500 1! #33501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33502000 0! #33502500 1! #33502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33503000 0! #33503500 1! #33503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33504000 0! #33504500 1! #33504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33505000 0! #33505500 1! #33505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33506000 0! #33506500 1! #33506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33507000 0! #33507500 1! #33507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33508000 0! #33508500 1! #33508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33509000 0! #33509500 1! #33509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33510000 0! #33510500 1! #33510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33511000 0! #33511500 1! #33511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33512000 0! #33512500 1! #33512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33513000 0! #33513500 1! #33513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33514000 0! #33514500 1! #33514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33515000 0! #33515500 1! #33515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33516000 0! #33516500 1! #33516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33517000 0! #33517500 1! #33517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33518000 0! #33518500 1! #33518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33519000 0! #33519500 1! #33519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33520000 0! #33520500 1! #33520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33521000 0! #33521500 1! #33521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33522000 0! #33522500 1! #33522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33523000 0! #33523500 1! #33523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33524000 0! #33524500 1! #33524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33525000 0! #33525500 1! #33525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33526000 0! #33526500 1! #33526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33527000 0! #33527500 1! #33527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33528000 0! #33528500 1! #33528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33529000 0! #33529500 1! #33529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33530000 0! #33530500 1! #33530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33531000 0! #33531500 1! #33531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33532000 0! #33532500 1! #33532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33533000 0! #33533500 1! #33533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33534000 0! #33534500 1! #33534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33535000 0! #33535500 1! #33535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33536000 0! #33536500 1! #33536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33537000 0! #33537500 1! #33537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33538000 0! #33538500 1! #33538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33539000 0! #33539500 1! #33539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33540000 0! #33540500 1! #33540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33541000 0! #33541500 1! #33541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33542000 0! #33542500 1! #33542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33543000 0! #33543500 1! #33543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33544000 0! #33544500 1! #33544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33545000 0! #33545500 1! #33545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33546000 0! #33546500 1! #33546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33547000 0! #33547500 1! #33547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33548000 0! #33548500 1! #33548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33549000 0! #33549500 1! #33549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33550000 0! #33550500 1! #33550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33551000 0! #33551500 1! #33551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33552000 0! #33552500 1! #33552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33553000 0! #33553500 1! #33553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33554000 0! #33554500 1! #33554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33555000 0! #33555500 1! #33555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33556000 0! #33556500 1! #33556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33557000 0! #33557500 1! #33557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33558000 0! #33558500 1! #33558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33559000 0! #33559500 1! #33559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33560000 0! #33560500 1! #33560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33561000 0! #33561500 1! #33561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33562000 0! #33562500 1! #33562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33563000 0! #33563500 1! #33563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33564000 0! #33564500 1! #33564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33565000 0! #33565500 1! #33565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33566000 0! #33566500 1! #33566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33567000 0! #33567500 1! #33567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33568000 0! #33568500 1! #33568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33569000 0! #33569500 1! #33569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33570000 0! #33570500 1! #33570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33571000 0! #33571500 1! #33571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33572000 0! #33572500 1! #33572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33573000 0! #33573500 1! #33573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33574000 0! #33574500 1! #33574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33575000 0! #33575500 1! #33575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33576000 0! #33576500 1! #33576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33577000 0! #33577500 1! #33577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33578000 0! #33578500 1! #33578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33579000 0! #33579500 1! #33579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33580000 0! #33580500 1! #33580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33581000 0! #33581500 1! #33581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33582000 0! #33582500 1! #33582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33583000 0! #33583500 1! #33583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33584000 0! #33584500 1! #33584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33585000 0! #33585500 1! #33585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33586000 0! #33586500 1! #33586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #33587000 0! #33587500 1! #33587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33588000 0! #33588500 1! #33588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33589000 0! #33589500 1! #33589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33590000 0! #33590500 1! #33590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33591000 0! #33591500 1! #33591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33592000 0! #33592500 1! #33592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33593000 0! #33593500 1! #33593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33594000 0! #33594500 1! #33594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33595000 0! #33595500 1! #33595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33596000 0! #33596500 1! #33596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33597000 0! #33597500 1! #33597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33598000 0! #33598500 1! #33598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33599000 0! #33599500 1! #33599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33600000 0! #33600500 1! #33600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33601000 0! #33601500 1! #33601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33602000 0! #33602500 1! #33602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33603000 0! #33603500 1! #33603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33604000 0! #33604500 1! #33604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33605000 0! #33605500 1! #33605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33606000 0! #33606500 1! #33606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33607000 0! #33607500 1! #33607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33608000 0! #33608500 1! #33608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33609000 0! #33609500 1! #33609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33610000 0! #33610500 1! #33610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33611000 0! #33611500 1! #33611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33612000 0! #33612500 1! #33612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33613000 0! #33613500 1! #33613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33614000 0! #33614500 1! #33614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33615000 0! #33615500 1! #33615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33616000 0! #33616500 1! #33616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33617000 0! #33617500 1! #33617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33618000 0! #33618500 1! #33618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33619000 0! #33619500 1! #33619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33620000 0! #33620500 1! #33620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33621000 0! #33621500 1! #33621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33622000 0! #33622500 1! #33622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33623000 0! #33623500 1! #33623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33624000 0! #33624500 1! #33624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33625000 0! #33625500 1! #33625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33626000 0! #33626500 1! #33626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33627000 0! #33627500 1! #33627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33628000 0! #33628500 1! #33628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33629000 0! #33629500 1! #33629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33630000 0! #33630500 1! #33630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33631000 0! #33631500 1! #33631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33632000 0! #33632500 1! #33632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33633000 0! #33633500 1! #33633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33634000 0! #33634500 1! #33634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33635000 0! #33635500 1! #33635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33636000 0! #33636500 1! #33636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33637000 0! #33637500 1! #33637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #33637700 b111 g bx0 c 0h #33638000 0! #33638500 1! #33638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33639000 0! #33639500 1! #33639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33640000 0! #33640500 1! #33640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33641000 0! #33641500 1! #33641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33642000 0! #33642500 1! #33642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33643000 0! #33643500 1! #33643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33644000 0! #33644500 1! #33644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33645000 0! #33645500 1! #33645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33646000 0! #33646500 1! #33646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33647000 0! #33647500 1! #33647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33648000 0! #33648500 1! #33648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33649000 0! #33649500 1! #33649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33650000 0! #33650500 1! #33650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33651000 0! #33651500 1! #33651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33652000 0! #33652500 1! #33652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33653000 0! #33653500 1! #33653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33654000 0! #33654500 1! #33654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33655000 0! #33655500 1! #33655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33656000 0! #33656500 1! #33656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33657000 0! #33657500 1! #33657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33658000 0! #33658500 1! #33658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33659000 0! #33659500 1! #33659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33660000 0! #33660500 1! #33660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33661000 0! #33661500 1! #33661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33662000 0! #33662500 1! #33662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33663000 0! #33663500 1! #33663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33664000 0! #33664500 1! #33664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33665000 0! #33665500 1! #33665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33666000 0! #33666500 1! #33666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33667000 0! #33667500 1! #33667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33668000 0! #33668500 1! #33668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33669000 0! #33669500 1! #33669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33670000 0! #33670500 1! #33670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33671000 0! #33671500 1! #33671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33672000 0! #33672500 1! #33672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33673000 0! #33673500 1! #33673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33674000 0! #33674500 1! #33674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33675000 0! #33675500 1! #33675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33676000 0! #33676500 1! #33676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33677000 0! #33677500 1! #33677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33678000 0! #33678500 1! #33678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33679000 0! #33679500 1! #33679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33680000 0! #33680500 1! #33680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33681000 0! #33681500 1! #33681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33682000 0! #33682500 1! #33682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33683000 0! #33683500 1! #33683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33684000 0! #33684500 1! #33684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33685000 0! #33685500 1! #33685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33686000 0! #33686500 1! #33686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33687000 0! #33687500 1! #33687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33688000 0! #33688500 1! #33688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33689000 0! #33689500 1! #33689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33690000 0! #33690500 1! #33690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33691000 0! #33691500 1! #33691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33692000 0! #33692500 1! #33692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33693000 0! #33693500 1! #33693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33694000 0! #33694500 1! #33694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33695000 0! #33695500 1! #33695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33696000 0! #33696500 1! #33696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33697000 0! #33697500 1! #33697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33698000 0! #33698500 1! #33698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33699000 0! #33699500 1! #33699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33700000 0! #33700500 1! #33700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33701000 0! #33701500 1! #33701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33702000 0! #33702500 1! #33702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33703000 0! #33703500 1! #33703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33704000 0! #33704500 1! #33704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33705000 0! #33705500 1! #33705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33706000 0! #33706500 1! #33706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33707000 0! #33707500 1! #33707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33708000 0! #33708500 1! #33708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33709000 0! #33709500 1! #33709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33710000 0! #33710500 1! #33710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33711000 0! #33711500 1! #33711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33712000 0! #33712500 1! #33712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33713000 0! #33713500 1! #33713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33714000 0! #33714500 1! #33714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33715000 0! #33715500 1! #33715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33716000 0! #33716500 1! #33716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33717000 0! #33717500 1! #33717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33718000 0! #33718500 1! #33718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33719000 0! #33719500 1! #33719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33720000 0! #33720500 1! #33720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33721000 0! #33721500 1! #33721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33722000 0! #33722500 1! #33722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33723000 0! #33723500 1! #33723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33724000 0! #33724500 1! #33724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33725000 0! #33725500 1! #33725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33726000 0! #33726500 1! #33726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33727000 0! #33727500 1! #33727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33728000 0! #33728500 1! #33728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33729000 0! #33729500 1! #33729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33730000 0! #33730500 1! #33730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33731000 0! #33731500 1! #33731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33732000 0! #33732500 1! #33732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33733000 0! #33733500 1! #33733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33734000 0! #33734500 1! #33734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33735000 0! #33735500 1! #33735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33736000 0! #33736500 1! #33736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33737000 0! #33737500 1! #33737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33738000 0! #33738500 1! #33738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33739000 0! #33739500 1! #33739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #33739700 1i b100 q xj xO #33740000 0! #33740500 1! #33740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33741000 0! #33741500 1! #33741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H bx000011 C #33742000 0! #33742500 1! #33742600 bx000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33743000 0! #33743500 1! #33743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B bx000001 C 1H #33744000 0! #33744500 1! #33744600 bx000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33745000 0! #33745500 1! #33745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B bx C 1H #33746000 0! #33746500 1! #33746600 bx K xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33747000 0! #33747500 1! #33747600 1E 1F 1G b101000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B bx000001 C 1H #33748000 0! #33748500 1! #33748600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33749000 0! #33749500 1! #33749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H bx000011 C #33750000 0! #33750500 1! #33750600 bx000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33751000 0! #33751500 1! #33751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33752000 0! #33752500 1! #33752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33753000 0! #33753500 1! #33753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33754000 0! #33754500 1! #33754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33755000 0! #33755500 1! #33755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33756000 0! #33756500 1! #33756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33757000 0! #33757500 1! #33757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33758000 0! #33758500 1! #33758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33759000 0! #33759500 1! #33759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33760000 0! #33760500 1! #33760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33761000 0! #33761500 1! #33761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33762000 0! #33762500 1! #33762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33763000 0! #33763500 1! #33763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33764000 0! #33764500 1! #33764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33765000 0! #33765500 1! #33765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33766000 0! #33766500 1! #33766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33767000 0! #33767500 1! #33767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33768000 0! #33768500 1! #33768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33769000 0! #33769500 1! #33769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33770000 0! #33770500 1! #33770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33771000 0! #33771500 1! #33771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33772000 0! #33772500 1! #33772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33773000 0! #33773500 1! #33773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33774000 0! #33774500 1! #33774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33775000 0! #33775500 1! #33775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33776000 0! #33776500 1! #33776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33777000 0! #33777500 1! #33777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33778000 0! #33778500 1! #33778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33779000 0! #33779500 1! #33779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33780000 0! #33780500 1! #33780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33781000 0! #33781500 1! #33781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33782000 0! #33782500 1! #33782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33783000 0! #33783500 1! #33783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33784000 0! #33784500 1! #33784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33785000 0! #33785500 1! #33785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33786000 0! #33786500 1! #33786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33787000 0! #33787500 1! #33787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33788000 0! #33788500 1! #33788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33789000 0! #33789500 1! #33789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33790000 0! #33790500 1! #33790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33791000 0! #33791500 1! #33791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33792000 0! #33792500 1! #33792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33793000 0! #33793500 1! #33793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33794000 0! #33794500 1! #33794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33795000 0! #33795500 1! #33795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33796000 0! #33796500 1! #33796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33797000 0! #33797500 1! #33797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33798000 0! #33798500 1! #33798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33799000 0! #33799500 1! #33799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33800000 0! #33800500 1! #33800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33801000 0! #33801500 1! #33801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33802000 0! #33802500 1! #33802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33803000 0! #33803500 1! #33803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33804000 0! #33804500 1! #33804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33805000 0! #33805500 1! #33805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33806000 0! #33806500 1! #33806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33807000 0! #33807500 1! #33807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33808000 0! #33808500 1! #33808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33809000 0! #33809500 1! #33809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33810000 0! #33810500 1! #33810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33811000 0! #33811500 1! #33811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33812000 0! #33812500 1! #33812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33813000 0! #33813500 1! #33813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33814000 0! #33814500 1! #33814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33815000 0! #33815500 1! #33815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33816000 0! #33816500 1! #33816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33817000 0! #33817500 1! #33817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33818000 0! #33818500 1! #33818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33819000 0! #33819500 1! #33819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33820000 0! #33820500 1! #33820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33821000 0! #33821500 1! #33821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33822000 0! #33822500 1! #33822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33823000 0! #33823500 1! #33823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33824000 0! #33824500 1! #33824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33825000 0! #33825500 1! #33825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33826000 0! #33826500 1! #33826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33827000 0! #33827500 1! #33827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33828000 0! #33828500 1! #33828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33829000 0! #33829500 1! #33829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33830000 0! #33830500 1! #33830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33831000 0! #33831500 1! #33831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33832000 0! #33832500 1! #33832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33833000 0! #33833500 1! #33833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33834000 0! #33834500 1! #33834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33835000 0! #33835500 1! #33835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33836000 0! #33836500 1! #33836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33837000 0! #33837500 1! #33837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33838000 0! #33838500 1! #33838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33839000 0! #33839500 1! #33839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33840000 0! #33840500 1! #33840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33841000 0! #33841500 1! #33841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q #33842000 0! #33842500 1! #33842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33843000 0! #33843500 1! #33843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33844000 0! #33844500 1! #33844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33845000 0! #33845500 1! #33845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33846000 0! #33846500 1! #33846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33847000 0! #33847500 1! #33847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33848000 0! #33848500 1! #33848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33849000 0! #33849500 1! #33849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33850000 0! #33850500 1! #33850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33851000 0! #33851500 1! #33851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33852000 0! #33852500 1! #33852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33853000 0! #33853500 1! #33853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33854000 0! #33854500 1! #33854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33855000 0! #33855500 1! #33855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33856000 0! #33856500 1! #33856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33857000 0! #33857500 1! #33857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33858000 0! #33858500 1! #33858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33859000 0! #33859500 1! #33859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33860000 0! #33860500 1! #33860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33861000 0! #33861500 1! #33861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33862000 0! #33862500 1! #33862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33863000 0! #33863500 1! #33863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33864000 0! #33864500 1! #33864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33865000 0! #33865500 1! #33865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33866000 0! #33866500 1! #33866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33867000 0! #33867500 1! #33867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33868000 0! #33868500 1! #33868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33869000 0! #33869500 1! #33869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33870000 0! #33870500 1! #33870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33871000 0! #33871500 1! #33871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33872000 0! #33872500 1! #33872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33873000 0! #33873500 1! #33873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33874000 0! #33874500 1! #33874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33875000 0! #33875500 1! #33875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33876000 0! #33876500 1! #33876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33877000 0! #33877500 1! #33877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33878000 0! #33878500 1! #33878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33879000 0! #33879500 1! #33879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33880000 0! #33880500 1! #33880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33881000 0! #33881500 1! #33881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33882000 0! #33882500 1! #33882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33883000 0! #33883500 1! #33883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33884000 0! #33884500 1! #33884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33885000 0! #33885500 1! #33885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33886000 0! #33886500 1! #33886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33887000 0! #33887500 1! #33887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33888000 0! #33888500 1! #33888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33889000 0! #33889500 1! #33889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33890000 0! #33890500 1! #33890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33891000 0! #33891500 1! #33891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33892000 0! #33892500 1! #33892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #33892700 bx1 ^ bx0x c #33893000 0! #33893500 1! #33893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33894000 0! #33894500 1! #33894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33895000 0! #33895500 1! #33895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33896000 0! #33896500 1! #33896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33897000 0! #33897500 1! #33897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33898000 0! #33898500 1! #33898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33899000 0! #33899500 1! #33899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33900000 0! #33900500 1! #33900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33901000 0! #33901500 1! #33901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33902000 0! #33902500 1! #33902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33903000 0! #33903500 1! #33903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33904000 0! #33904500 1! #33904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33905000 0! #33905500 1! #33905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33906000 0! #33906500 1! #33906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33907000 0! #33907500 1! #33907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33908000 0! #33908500 1! #33908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33909000 0! #33909500 1! #33909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33910000 0! #33910500 1! #33910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33911000 0! #33911500 1! #33911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33912000 0! #33912500 1! #33912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33913000 0! #33913500 1! #33913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33914000 0! #33914500 1! #33914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33915000 0! #33915500 1! #33915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33916000 0! #33916500 1! #33916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33917000 0! #33917500 1! #33917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33918000 0! #33918500 1! #33918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33919000 0! #33919500 1! #33919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33920000 0! #33920500 1! #33920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33921000 0! #33921500 1! #33921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33922000 0! #33922500 1! #33922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33923000 0! #33923500 1! #33923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33924000 0! #33924500 1! #33924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33925000 0! #33925500 1! #33925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33926000 0! #33926500 1! #33926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33927000 0! #33927500 1! #33927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33928000 0! #33928500 1! #33928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33929000 0! #33929500 1! #33929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33930000 0! #33930500 1! #33930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33931000 0! #33931500 1! #33931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33932000 0! #33932500 1! #33932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33933000 0! #33933500 1! #33933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33934000 0! #33934500 1! #33934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33935000 0! #33935500 1! #33935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33936000 0! #33936500 1! #33936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33937000 0! #33937500 1! #33937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33938000 0! #33938500 1! #33938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33939000 0! #33939500 1! #33939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33940000 0! #33940500 1! #33940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33941000 0! #33941500 1! #33941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33942000 0! #33942500 1! #33942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33943000 0! #33943500 1! #33943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33944000 0! #33944500 1! #33944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33945000 0! #33945500 1! #33945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33946000 0! #33946500 1! #33946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33947000 0! #33947500 1! #33947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33948000 0! #33948500 1! #33948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33949000 0! #33949500 1! #33949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33950000 0! #33950500 1! #33950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33951000 0! #33951500 1! #33951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33952000 0! #33952500 1! #33952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33953000 0! #33953500 1! #33953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33954000 0! #33954500 1! #33954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33955000 0! #33955500 1! #33955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33956000 0! #33956500 1! #33956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33957000 0! #33957500 1! #33957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33958000 0! #33958500 1! #33958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33959000 0! #33959500 1! #33959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33960000 0! #33960500 1! #33960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33961000 0! #33961500 1! #33961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33962000 0! #33962500 1! #33962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33963000 0! #33963500 1! #33963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33964000 0! #33964500 1! #33964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33965000 0! #33965500 1! #33965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33966000 0! #33966500 1! #33966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33967000 0! #33967500 1! #33967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33968000 0! #33968500 1! #33968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33969000 0! #33969500 1! #33969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33970000 0! #33970500 1! #33970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33971000 0! #33971500 1! #33971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33972000 0! #33972500 1! #33972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33973000 0! #33973500 1! #33973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33974000 0! #33974500 1! #33974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33975000 0! #33975500 1! #33975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33976000 0! #33976500 1! #33976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33977000 0! #33977500 1! #33977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33978000 0! #33978500 1! #33978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33979000 0! #33979500 1! #33979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33980000 0! #33980500 1! #33980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33981000 0! #33981500 1! #33981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33982000 0! #33982500 1! #33982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33983000 0! #33983500 1! #33983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33984000 0! #33984500 1! #33984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33985000 0! #33985500 1! #33985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33986000 0! #33986500 1! #33986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33987000 0! #33987500 1! #33987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33988000 0! #33988500 1! #33988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33989000 0! #33989500 1! #33989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33990000 0! #33990500 1! #33990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33991000 0! #33991500 1! #33991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33992000 0! #33992500 1! #33992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33993000 0! #33993500 1! #33993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33994000 0! #33994500 1! #33994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #33994700 1j 0i xj #33995000 0! #33995500 1! #33995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33996000 0! #33996500 1! #33996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33997000 0! #33997500 1! #33997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #33998000 0! #33998500 1! #33998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #33999000 0! #33999500 1! #33999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34000000 0! #34000500 1! #34000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34001000 0! #34001500 1! #34001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34002000 0! #34002500 1! #34002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34003000 0! #34003500 1! #34003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34004000 0! #34004500 1! #34004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34005000 0! #34005500 1! #34005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34006000 0! #34006500 1! #34006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34007000 0! #34007500 1! #34007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34008000 0! #34008500 1! #34008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34009000 0! #34009500 1! #34009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34010000 0! #34010500 1! #34010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34011000 0! #34011500 1! #34011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34012000 0! #34012500 1! #34012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34013000 0! #34013500 1! #34013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34014000 0! #34014500 1! #34014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34015000 0! #34015500 1! #34015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34016000 0! #34016500 1! #34016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34017000 0! #34017500 1! #34017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34018000 0! #34018500 1! #34018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34019000 0! #34019500 1! #34019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34020000 0! #34020500 1! #34020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34021000 0! #34021500 1! #34021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34022000 0! #34022500 1! #34022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34023000 0! #34023500 1! #34023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34024000 0! #34024500 1! #34024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34025000 0! #34025500 1! #34025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34026000 0! #34026500 1! #34026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34027000 0! #34027500 1! #34027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34028000 0! #34028500 1! #34028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34029000 0! #34029500 1! #34029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34030000 0! #34030500 1! #34030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34031000 0! #34031500 1! #34031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34032000 0! #34032500 1! #34032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34033000 0! #34033500 1! #34033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34034000 0! #34034500 1! #34034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34035000 0! #34035500 1! #34035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34036000 0! #34036500 1! #34036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34037000 0! #34037500 1! #34037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34038000 0! #34038500 1! #34038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34039000 0! #34039500 1! #34039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34040000 0! #34040500 1! #34040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34041000 0! #34041500 1! #34041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34042000 0! #34042500 1! #34042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34043000 0! #34043500 1! #34043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34044000 0! #34044500 1! #34044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34045000 0! #34045500 1! #34045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34046000 0! #34046500 1! #34046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34047000 0! #34047500 1! #34047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34048000 0! #34048500 1! #34048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34049000 0! #34049500 1! #34049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34050000 0! #34050500 1! #34050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34051000 0! #34051500 1! #34051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34052000 0! #34052500 1! #34052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34053000 0! #34053500 1! #34053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34054000 0! #34054500 1! #34054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34055000 0! #34055500 1! #34055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34056000 0! #34056500 1! #34056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34057000 0! #34057500 1! #34057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34058000 0! #34058500 1! #34058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34059000 0! #34059500 1! #34059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34060000 0! #34060500 1! #34060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34061000 0! #34061500 1! #34061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34062000 0! #34062500 1! #34062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34063000 0! #34063500 1! #34063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34064000 0! #34064500 1! #34064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34065000 0! #34065500 1! #34065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34066000 0! #34066500 1! #34066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34067000 0! #34067500 1! #34067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34068000 0! #34068500 1! #34068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34069000 0! #34069500 1! #34069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34070000 0! #34070500 1! #34070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34071000 0! #34071500 1! #34071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34072000 0! #34072500 1! #34072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34073000 0! #34073500 1! #34073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34074000 0! #34074500 1! #34074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34075000 0! #34075500 1! #34075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34076000 0! #34076500 1! #34076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34077000 0! #34077500 1! #34077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34078000 0! #34078500 1! #34078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34079000 0! #34079500 1! #34079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34080000 0! #34080500 1! #34080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34081000 0! #34081500 1! #34081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34082000 0! #34082500 1! #34082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34083000 0! #34083500 1! #34083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34084000 0! #34084500 1! #34084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34085000 0! #34085500 1! #34085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34086000 0! #34086500 1! #34086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34087000 0! #34087500 1! #34087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34088000 0! #34088500 1! #34088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34089000 0! #34089500 1! #34089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34090000 0! #34090500 1! #34090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34091000 0! #34091500 1! #34091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34092000 0! #34092500 1! #34092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34093000 0! #34093500 1! #34093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34094000 0! #34094500 1! #34094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34095000 0! #34095500 1! #34095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34096000 0! #34096500 1! #34096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34097000 0! #34097500 1! #34097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34098000 0! #34098500 1! #34098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34099000 0! #34099500 1! #34099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34100000 0! #34100500 1! #34100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34101000 0! #34101500 1! #34101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34102000 0! #34102500 1! #34102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34103000 0! #34103500 1! #34103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34104000 0! #34104500 1! #34104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34105000 0! #34105500 1! #34105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34106000 0! #34106500 1! #34106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34107000 0! #34107500 1! #34107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34108000 0! #34108500 1! #34108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34109000 0! #34109500 1! #34109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34110000 0! #34110500 1! #34110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34111000 0! #34111500 1! #34111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34112000 0! #34112500 1! #34112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34113000 0! #34113500 1! #34113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34114000 0! #34114500 1! #34114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34115000 0! #34115500 1! #34115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34116000 0! #34116500 1! #34116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34117000 0! #34117500 1! #34117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34118000 0! #34118500 1! #34118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34119000 0! #34119500 1! #34119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34120000 0! #34120500 1! #34120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34121000 0! #34121500 1! #34121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34122000 0! #34122500 1! #34122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34123000 0! #34123500 1! #34123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34124000 0! #34124500 1! #34124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34125000 0! #34125500 1! #34125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34126000 0! #34126500 1! #34126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34127000 0! #34127500 1! #34127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34128000 0! #34128500 1! #34128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34129000 0! #34129500 1! #34129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34130000 0! #34130500 1! #34130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34131000 0! #34131500 1! #34131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34132000 0! #34132500 1! #34132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34133000 0! #34133500 1! #34133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34134000 0! #34134500 1! #34134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34135000 0! #34135500 1! #34135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34136000 0! #34136500 1! #34136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34137000 0! #34137500 1! #34137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34138000 0! #34138500 1! #34138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34139000 0! #34139500 1! #34139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34140000 0! #34140500 1! #34140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34141000 0! #34141500 1! #34141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34142000 0! #34142500 1! #34142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34143000 0! #34143500 1! #34143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34144000 0! #34144500 1! #34144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34145000 0! #34145500 1! #34145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34146000 0! #34146500 1! #34146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34147000 0! #34147500 1! #34147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #34147700 bx11 ^ b110 g bx0xx c #34148000 0! #34148500 1! #34148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34149000 0! #34149500 1! #34149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34150000 0! #34150500 1! #34150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34151000 0! #34151500 1! #34151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34152000 0! #34152500 1! #34152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34153000 0! #34153500 1! #34153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34154000 0! #34154500 1! #34154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34155000 0! #34155500 1! #34155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34156000 0! #34156500 1! #34156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34157000 0! #34157500 1! #34157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34158000 0! #34158500 1! #34158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34159000 0! #34159500 1! #34159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34160000 0! #34160500 1! #34160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34161000 0! #34161500 1! #34161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34162000 0! #34162500 1! #34162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34163000 0! #34163500 1! #34163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34164000 0! #34164500 1! #34164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34165000 0! #34165500 1! #34165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34166000 0! #34166500 1! #34166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34167000 0! #34167500 1! #34167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34168000 0! #34168500 1! #34168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34169000 0! #34169500 1! #34169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34170000 0! #34170500 1! #34170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34171000 0! #34171500 1! #34171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34172000 0! #34172500 1! #34172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34173000 0! #34173500 1! #34173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34174000 0! #34174500 1! #34174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34175000 0! #34175500 1! #34175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34176000 0! #34176500 1! #34176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34177000 0! #34177500 1! #34177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34178000 0! #34178500 1! #34178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34179000 0! #34179500 1! #34179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34180000 0! #34180500 1! #34180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34181000 0! #34181500 1! #34181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34182000 0! #34182500 1! #34182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34183000 0! #34183500 1! #34183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34184000 0! #34184500 1! #34184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34185000 0! #34185500 1! #34185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34186000 0! #34186500 1! #34186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34187000 0! #34187500 1! #34187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34188000 0! #34188500 1! #34188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34189000 0! #34189500 1! #34189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34190000 0! #34190500 1! #34190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34191000 0! #34191500 1! #34191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34192000 0! #34192500 1! #34192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34193000 0! #34193500 1! #34193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34194000 0! #34194500 1! #34194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34195000 0! #34195500 1! #34195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34196000 0! #34196500 1! #34196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34197000 0! #34197500 1! #34197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34198000 0! #34198500 1! #34198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34199000 0! #34199500 1! #34199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34200000 0! #34200500 1! #34200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34201000 0! #34201500 1! #34201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34202000 0! #34202500 1! #34202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34203000 0! #34203500 1! #34203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34204000 0! #34204500 1! #34204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34205000 0! #34205500 1! #34205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34206000 0! #34206500 1! #34206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34207000 0! #34207500 1! #34207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34208000 0! #34208500 1! #34208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34209000 0! #34209500 1! #34209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34210000 0! #34210500 1! #34210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34211000 0! #34211500 1! #34211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34212000 0! #34212500 1! #34212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34213000 0! #34213500 1! #34213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34214000 0! #34214500 1! #34214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34215000 0! #34215500 1! #34215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34216000 0! #34216500 1! #34216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34217000 0! #34217500 1! #34217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34218000 0! #34218500 1! #34218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34219000 0! #34219500 1! #34219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34220000 0! #34220500 1! #34220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34221000 0! #34221500 1! #34221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34222000 0! #34222500 1! #34222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34223000 0! #34223500 1! #34223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34224000 0! #34224500 1! #34224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34225000 0! #34225500 1! #34225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34226000 0! #34226500 1! #34226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34227000 0! #34227500 1! #34227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34228000 0! #34228500 1! #34228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34229000 0! #34229500 1! #34229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34230000 0! #34230500 1! #34230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34231000 0! #34231500 1! #34231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34232000 0! #34232500 1! #34232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34233000 0! #34233500 1! #34233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34234000 0! #34234500 1! #34234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34235000 0! #34235500 1! #34235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34236000 0! #34236500 1! #34236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34237000 0! #34237500 1! #34237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34238000 0! #34238500 1! #34238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34239000 0! #34239500 1! #34239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34240000 0! #34240500 1! #34240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34241000 0! #34241500 1! #34241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34242000 0! #34242500 1! #34242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34243000 0! #34243500 1! #34243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34244000 0! #34244500 1! #34244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34245000 0! #34245500 1! #34245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34246000 0! #34246500 1! #34246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34247000 0! #34247500 1! #34247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34248000 0! #34248500 1! #34248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34249000 0! #34249500 1! #34249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #34249700 1j xj #34250000 0! #34250500 1! #34250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34251000 0! #34251500 1! #34251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34252000 0! #34252500 1! #34252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34253000 0! #34253500 1! #34253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34254000 0! #34254500 1! #34254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34255000 0! #34255500 1! #34255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34256000 0! #34256500 1! #34256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34257000 0! #34257500 1! #34257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34258000 0! #34258500 1! #34258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34259000 0! #34259500 1! #34259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34260000 0! #34260500 1! #34260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34261000 0! #34261500 1! #34261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34262000 0! #34262500 1! #34262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34263000 0! #34263500 1! #34263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34264000 0! #34264500 1! #34264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34265000 0! #34265500 1! #34265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34266000 0! #34266500 1! #34266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34267000 0! #34267500 1! #34267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34268000 0! #34268500 1! #34268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34269000 0! #34269500 1! #34269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34270000 0! #34270500 1! #34270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34271000 0! #34271500 1! #34271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34272000 0! #34272500 1! #34272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34273000 0! #34273500 1! #34273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34274000 0! #34274500 1! #34274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34275000 0! #34275500 1! #34275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34276000 0! #34276500 1! #34276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34277000 0! #34277500 1! #34277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34278000 0! #34278500 1! #34278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34279000 0! #34279500 1! #34279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34280000 0! #34280500 1! #34280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34281000 0! #34281500 1! #34281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34282000 0! #34282500 1! #34282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34283000 0! #34283500 1! #34283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34284000 0! #34284500 1! #34284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34285000 0! #34285500 1! #34285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34286000 0! #34286500 1! #34286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34287000 0! #34287500 1! #34287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34288000 0! #34288500 1! #34288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34289000 0! #34289500 1! #34289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34290000 0! #34290500 1! #34290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34291000 0! #34291500 1! #34291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34292000 0! #34292500 1! #34292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34293000 0! #34293500 1! #34293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34294000 0! #34294500 1! #34294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34295000 0! #34295500 1! #34295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34296000 0! #34296500 1! #34296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34297000 0! #34297500 1! #34297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34298000 0! #34298500 1! #34298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34299000 0! #34299500 1! #34299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34300000 0! #34300500 1! #34300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34301000 0! #34301500 1! #34301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34302000 0! #34302500 1! #34302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34303000 0! #34303500 1! #34303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34304000 0! #34304500 1! #34304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34305000 0! #34305500 1! #34305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34306000 0! #34306500 1! #34306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34307000 0! #34307500 1! #34307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34308000 0! #34308500 1! #34308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34309000 0! #34309500 1! #34309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34310000 0! #34310500 1! #34310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34311000 0! #34311500 1! #34311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34312000 0! #34312500 1! #34312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34313000 0! #34313500 1! #34313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34314000 0! #34314500 1! #34314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34315000 0! #34315500 1! #34315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34316000 0! #34316500 1! #34316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34317000 0! #34317500 1! #34317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34318000 0! #34318500 1! #34318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34319000 0! #34319500 1! #34319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34320000 0! #34320500 1! #34320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34321000 0! #34321500 1! #34321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34322000 0! #34322500 1! #34322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34323000 0! #34323500 1! #34323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34324000 0! #34324500 1! #34324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34325000 0! #34325500 1! #34325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34326000 0! #34326500 1! #34326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34327000 0! #34327500 1! #34327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34328000 0! #34328500 1! #34328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34329000 0! #34329500 1! #34329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34330000 0! #34330500 1! #34330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34331000 0! #34331500 1! #34331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34332000 0! #34332500 1! #34332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34333000 0! #34333500 1! #34333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34334000 0! #34334500 1! #34334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34335000 0! #34335500 1! #34335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34336000 0! #34336500 1! #34336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34337000 0! #34337500 1! #34337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34338000 0! #34338500 1! #34338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34339000 0! #34339500 1! #34339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34340000 0! #34340500 1! #34340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34341000 0! #34341500 1! #34341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34342000 0! #34342500 1! #34342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34343000 0! #34343500 1! #34343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34344000 0! #34344500 1! #34344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34345000 0! #34345500 1! #34345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34346000 0! #34346500 1! #34346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34347000 0! #34347500 1! #34347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34348000 0! #34348500 1! #34348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34349000 0! #34349500 1! #34349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34350000 0! #34350500 1! #34350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34351000 0! #34351500 1! #34351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34352000 0! #34352500 1! #34352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34353000 0! #34353500 1! #34353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34354000 0! #34354500 1! #34354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34355000 0! #34355500 1! #34355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34356000 0! #34356500 1! #34356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34357000 0! #34357500 1! #34357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34358000 0! #34358500 1! #34358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34359000 0! #34359500 1! #34359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34360000 0! #34360500 1! #34360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34361000 0! #34361500 1! #34361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34362000 0! #34362500 1! #34362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34363000 0! #34363500 1! #34363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34364000 0! #34364500 1! #34364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34365000 0! #34365500 1! #34365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34366000 0! #34366500 1! #34366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34367000 0! #34367500 1! #34367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34368000 0! #34368500 1! #34368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34369000 0! #34369500 1! #34369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34370000 0! #34370500 1! #34370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34371000 0! #34371500 1! #34371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34372000 0! #34372500 1! #34372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34373000 0! #34373500 1! #34373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34374000 0! #34374500 1! #34374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34375000 0! #34375500 1! #34375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34376000 0! #34376500 1! #34376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34377000 0! #34377500 1! #34377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34378000 0! #34378500 1! #34378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34379000 0! #34379500 1! #34379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34380000 0! #34380500 1! #34380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34381000 0! #34381500 1! #34381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34382000 0! #34382500 1! #34382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34383000 0! #34383500 1! #34383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34384000 0! #34384500 1! #34384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34385000 0! #34385500 1! #34385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34386000 0! #34386500 1! #34386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34387000 0! #34387500 1! #34387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34388000 0! #34388500 1! #34388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34389000 0! #34389500 1! #34389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34390000 0! #34390500 1! #34390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34391000 0! #34391500 1! #34391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34392000 0! #34392500 1! #34392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34393000 0! #34393500 1! #34393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34394000 0! #34394500 1! #34394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34395000 0! #34395500 1! #34395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34396000 0! #34396500 1! #34396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34397000 0! #34397500 1! #34397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34398000 0! #34398500 1! #34398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34399000 0! #34399500 1! #34399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34400000 0! #34400500 1! #34400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34401000 0! #34401500 1! #34401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34402000 0! #34402500 1! #34402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #34402700 bx111 ^ b101 g bx0xxx c #34403000 0! #34403500 1! #34403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34404000 0! #34404500 1! #34404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34405000 0! #34405500 1! #34405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34406000 0! #34406500 1! #34406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34407000 0! #34407500 1! #34407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34408000 0! #34408500 1! #34408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34409000 0! #34409500 1! #34409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34410000 0! #34410500 1! #34410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34411000 0! #34411500 1! #34411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34412000 0! #34412500 1! #34412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34413000 0! #34413500 1! #34413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34414000 0! #34414500 1! #34414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34415000 0! #34415500 1! #34415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34416000 0! #34416500 1! #34416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34417000 0! #34417500 1! #34417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34418000 0! #34418500 1! #34418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34419000 0! #34419500 1! #34419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34420000 0! #34420500 1! #34420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34421000 0! #34421500 1! #34421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34422000 0! #34422500 1! #34422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34423000 0! #34423500 1! #34423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34424000 0! #34424500 1! #34424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34425000 0! #34425500 1! #34425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34426000 0! #34426500 1! #34426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34427000 0! #34427500 1! #34427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34428000 0! #34428500 1! #34428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34429000 0! #34429500 1! #34429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34430000 0! #34430500 1! #34430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34431000 0! #34431500 1! #34431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34432000 0! #34432500 1! #34432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34433000 0! #34433500 1! #34433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34434000 0! #34434500 1! #34434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34435000 0! #34435500 1! #34435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34436000 0! #34436500 1! #34436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34437000 0! #34437500 1! #34437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34438000 0! #34438500 1! #34438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34439000 0! #34439500 1! #34439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34440000 0! #34440500 1! #34440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34441000 0! #34441500 1! #34441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34442000 0! #34442500 1! #34442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34443000 0! #34443500 1! #34443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34444000 0! #34444500 1! #34444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34445000 0! #34445500 1! #34445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34446000 0! #34446500 1! #34446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34447000 0! #34447500 1! #34447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34448000 0! #34448500 1! #34448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34449000 0! #34449500 1! #34449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34450000 0! #34450500 1! #34450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34451000 0! #34451500 1! #34451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34452000 0! #34452500 1! #34452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34453000 0! #34453500 1! #34453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34454000 0! #34454500 1! #34454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34455000 0! #34455500 1! #34455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34456000 0! #34456500 1! #34456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34457000 0! #34457500 1! #34457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34458000 0! #34458500 1! #34458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34459000 0! #34459500 1! #34459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34460000 0! #34460500 1! #34460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34461000 0! #34461500 1! #34461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34462000 0! #34462500 1! #34462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34463000 0! #34463500 1! #34463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34464000 0! #34464500 1! #34464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34465000 0! #34465500 1! #34465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34466000 0! #34466500 1! #34466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34467000 0! #34467500 1! #34467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34468000 0! #34468500 1! #34468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34469000 0! #34469500 1! #34469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34470000 0! #34470500 1! #34470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34471000 0! #34471500 1! #34471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34472000 0! #34472500 1! #34472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34473000 0! #34473500 1! #34473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34474000 0! #34474500 1! #34474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34475000 0! #34475500 1! #34475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34476000 0! #34476500 1! #34476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34477000 0! #34477500 1! #34477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34478000 0! #34478500 1! #34478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34479000 0! #34479500 1! #34479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34480000 0! #34480500 1! #34480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34481000 0! #34481500 1! #34481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34482000 0! #34482500 1! #34482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34483000 0! #34483500 1! #34483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34484000 0! #34484500 1! #34484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34485000 0! #34485500 1! #34485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34486000 0! #34486500 1! #34486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34487000 0! #34487500 1! #34487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34488000 0! #34488500 1! #34488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34489000 0! #34489500 1! #34489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34490000 0! #34490500 1! #34490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34491000 0! #34491500 1! #34491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34492000 0! #34492500 1! #34492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34493000 0! #34493500 1! #34493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34494000 0! #34494500 1! #34494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34495000 0! #34495500 1! #34495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34496000 0! #34496500 1! #34496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34497000 0! #34497500 1! #34497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34498000 0! #34498500 1! #34498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34499000 0! #34499500 1! #34499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34500000 0! #34500500 1! #34500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34501000 0! #34501500 1! #34501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34502000 0! #34502500 1! #34502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34503000 0! #34503500 1! #34503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34504000 0! #34504500 1! #34504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #34504700 1j xj #34505000 0! #34505500 1! #34505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34506000 0! #34506500 1! #34506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34507000 0! #34507500 1! #34507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34508000 0! #34508500 1! #34508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34509000 0! #34509500 1! #34509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34510000 0! #34510500 1! #34510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34511000 0! #34511500 1! #34511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34512000 0! #34512500 1! #34512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34513000 0! #34513500 1! #34513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34514000 0! #34514500 1! #34514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34515000 0! #34515500 1! #34515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34516000 0! #34516500 1! #34516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34517000 0! #34517500 1! #34517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34518000 0! #34518500 1! #34518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34519000 0! #34519500 1! #34519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34520000 0! #34520500 1! #34520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34521000 0! #34521500 1! #34521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34522000 0! #34522500 1! #34522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34523000 0! #34523500 1! #34523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34524000 0! #34524500 1! #34524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34525000 0! #34525500 1! #34525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34526000 0! #34526500 1! #34526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34527000 0! #34527500 1! #34527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34528000 0! #34528500 1! #34528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34529000 0! #34529500 1! #34529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34530000 0! #34530500 1! #34530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34531000 0! #34531500 1! #34531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34532000 0! #34532500 1! #34532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34533000 0! #34533500 1! #34533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34534000 0! #34534500 1! #34534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34535000 0! #34535500 1! #34535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34536000 0! #34536500 1! #34536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34537000 0! #34537500 1! #34537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34538000 0! #34538500 1! #34538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34539000 0! #34539500 1! #34539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34540000 0! #34540500 1! #34540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34541000 0! #34541500 1! #34541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34542000 0! #34542500 1! #34542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34543000 0! #34543500 1! #34543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34544000 0! #34544500 1! #34544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34545000 0! #34545500 1! #34545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34546000 0! #34546500 1! #34546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34547000 0! #34547500 1! #34547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34548000 0! #34548500 1! #34548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34549000 0! #34549500 1! #34549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34550000 0! #34550500 1! #34550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34551000 0! #34551500 1! #34551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34552000 0! #34552500 1! #34552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34553000 0! #34553500 1! #34553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34554000 0! #34554500 1! #34554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34555000 0! #34555500 1! #34555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34556000 0! #34556500 1! #34556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34557000 0! #34557500 1! #34557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34558000 0! #34558500 1! #34558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34559000 0! #34559500 1! #34559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34560000 0! #34560500 1! #34560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34561000 0! #34561500 1! #34561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34562000 0! #34562500 1! #34562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34563000 0! #34563500 1! #34563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34564000 0! #34564500 1! #34564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34565000 0! #34565500 1! #34565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34566000 0! #34566500 1! #34566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34567000 0! #34567500 1! #34567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34568000 0! #34568500 1! #34568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34569000 0! #34569500 1! #34569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34570000 0! #34570500 1! #34570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34571000 0! #34571500 1! #34571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34572000 0! #34572500 1! #34572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34573000 0! #34573500 1! #34573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34574000 0! #34574500 1! #34574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34575000 0! #34575500 1! #34575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34576000 0! #34576500 1! #34576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34577000 0! #34577500 1! #34577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34578000 0! #34578500 1! #34578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34579000 0! #34579500 1! #34579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34580000 0! #34580500 1! #34580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34581000 0! #34581500 1! #34581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34582000 0! #34582500 1! #34582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34583000 0! #34583500 1! #34583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34584000 0! #34584500 1! #34584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34585000 0! #34585500 1! #34585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34586000 0! #34586500 1! #34586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34587000 0! #34587500 1! #34587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34588000 0! #34588500 1! #34588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34589000 0! #34589500 1! #34589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34590000 0! #34590500 1! #34590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34591000 0! #34591500 1! #34591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34592000 0! #34592500 1! #34592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34593000 0! #34593500 1! #34593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34594000 0! #34594500 1! #34594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34595000 0! #34595500 1! #34595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34596000 0! #34596500 1! #34596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34597000 0! #34597500 1! #34597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34598000 0! #34598500 1! #34598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34599000 0! #34599500 1! #34599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34600000 0! #34600500 1! #34600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34601000 0! #34601500 1! #34601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34602000 0! #34602500 1! #34602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34603000 0! #34603500 1! #34603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34604000 0! #34604500 1! #34604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34605000 0! #34605500 1! #34605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34606000 0! #34606500 1! #34606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34607000 0! #34607500 1! #34607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34608000 0! #34608500 1! #34608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34609000 0! #34609500 1! #34609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34610000 0! #34610500 1! #34610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34611000 0! #34611500 1! #34611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34612000 0! #34612500 1! #34612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34613000 0! #34613500 1! #34613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34614000 0! #34614500 1! #34614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34615000 0! #34615500 1! #34615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34616000 0! #34616500 1! #34616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34617000 0! #34617500 1! #34617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34618000 0! #34618500 1! #34618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34619000 0! #34619500 1! #34619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34620000 0! #34620500 1! #34620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34621000 0! #34621500 1! #34621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34622000 0! #34622500 1! #34622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34623000 0! #34623500 1! #34623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34624000 0! #34624500 1! #34624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34625000 0! #34625500 1! #34625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34626000 0! #34626500 1! #34626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34627000 0! #34627500 1! #34627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34628000 0! #34628500 1! #34628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34629000 0! #34629500 1! #34629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34630000 0! #34630500 1! #34630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34631000 0! #34631500 1! #34631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34632000 0! #34632500 1! #34632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34633000 0! #34633500 1! #34633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34634000 0! #34634500 1! #34634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34635000 0! #34635500 1! #34635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34636000 0! #34636500 1! #34636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34637000 0! #34637500 1! #34637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34638000 0! #34638500 1! #34638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34639000 0! #34639500 1! #34639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34640000 0! #34640500 1! #34640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34641000 0! #34641500 1! #34641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34642000 0! #34642500 1! #34642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34643000 0! #34643500 1! #34643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34644000 0! #34644500 1! #34644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34645000 0! #34645500 1! #34645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34646000 0! #34646500 1! #34646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34647000 0! #34647500 1! #34647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34648000 0! #34648500 1! #34648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34649000 0! #34649500 1! #34649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34650000 0! #34650500 1! #34650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34651000 0! #34651500 1! #34651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34652000 0! #34652500 1! #34652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34653000 0! #34653500 1! #34653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34654000 0! #34654500 1! #34654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34655000 0! #34655500 1! #34655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34656000 0! #34656500 1! #34656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34657000 0! #34657500 1! #34657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #34657700 bx1111 ^ b100 g bx0xxxx c #34658000 0! #34658500 1! #34658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34659000 0! #34659500 1! #34659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34660000 0! #34660500 1! #34660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34661000 0! #34661500 1! #34661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34662000 0! #34662500 1! #34662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34663000 0! #34663500 1! #34663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34664000 0! #34664500 1! #34664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34665000 0! #34665500 1! #34665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34666000 0! #34666500 1! #34666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34667000 0! #34667500 1! #34667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34668000 0! #34668500 1! #34668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34669000 0! #34669500 1! #34669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34670000 0! #34670500 1! #34670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34671000 0! #34671500 1! #34671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34672000 0! #34672500 1! #34672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34673000 0! #34673500 1! #34673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34674000 0! #34674500 1! #34674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34675000 0! #34675500 1! #34675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34676000 0! #34676500 1! #34676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34677000 0! #34677500 1! #34677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34678000 0! #34678500 1! #34678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34679000 0! #34679500 1! #34679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34680000 0! #34680500 1! #34680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34681000 0! #34681500 1! #34681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34682000 0! #34682500 1! #34682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34683000 0! #34683500 1! #34683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34684000 0! #34684500 1! #34684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34685000 0! #34685500 1! #34685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34686000 0! #34686500 1! #34686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34687000 0! #34687500 1! #34687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34688000 0! #34688500 1! #34688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34689000 0! #34689500 1! #34689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34690000 0! #34690500 1! #34690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34691000 0! #34691500 1! #34691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34692000 0! #34692500 1! #34692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34693000 0! #34693500 1! #34693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34694000 0! #34694500 1! #34694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34695000 0! #34695500 1! #34695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34696000 0! #34696500 1! #34696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34697000 0! #34697500 1! #34697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34698000 0! #34698500 1! #34698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34699000 0! #34699500 1! #34699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34700000 0! #34700500 1! #34700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34701000 0! #34701500 1! #34701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34702000 0! #34702500 1! #34702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34703000 0! #34703500 1! #34703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34704000 0! #34704500 1! #34704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34705000 0! #34705500 1! #34705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34706000 0! #34706500 1! #34706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34707000 0! #34707500 1! #34707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34708000 0! #34708500 1! #34708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34709000 0! #34709500 1! #34709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34710000 0! #34710500 1! #34710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34711000 0! #34711500 1! #34711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34712000 0! #34712500 1! #34712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34713000 0! #34713500 1! #34713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34714000 0! #34714500 1! #34714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34715000 0! #34715500 1! #34715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34716000 0! #34716500 1! #34716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34717000 0! #34717500 1! #34717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34718000 0! #34718500 1! #34718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34719000 0! #34719500 1! #34719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34720000 0! #34720500 1! #34720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34721000 0! #34721500 1! #34721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34722000 0! #34722500 1! #34722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34723000 0! #34723500 1! #34723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34724000 0! #34724500 1! #34724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34725000 0! #34725500 1! #34725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34726000 0! #34726500 1! #34726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34727000 0! #34727500 1! #34727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34728000 0! #34728500 1! #34728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34729000 0! #34729500 1! #34729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34730000 0! #34730500 1! #34730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34731000 0! #34731500 1! #34731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34732000 0! #34732500 1! #34732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34733000 0! #34733500 1! #34733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34734000 0! #34734500 1! #34734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34735000 0! #34735500 1! #34735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34736000 0! #34736500 1! #34736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34737000 0! #34737500 1! #34737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34738000 0! #34738500 1! #34738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34739000 0! #34739500 1! #34739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34740000 0! #34740500 1! #34740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34741000 0! #34741500 1! #34741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34742000 0! #34742500 1! #34742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34743000 0! #34743500 1! #34743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34744000 0! #34744500 1! #34744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34745000 0! #34745500 1! #34745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34746000 0! #34746500 1! #34746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34747000 0! #34747500 1! #34747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34748000 0! #34748500 1! #34748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34749000 0! #34749500 1! #34749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34750000 0! #34750500 1! #34750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34751000 0! #34751500 1! #34751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34752000 0! #34752500 1! #34752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34753000 0! #34753500 1! #34753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34754000 0! #34754500 1! #34754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34755000 0! #34755500 1! #34755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34756000 0! #34756500 1! #34756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34757000 0! #34757500 1! #34757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34758000 0! #34758500 1! #34758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34759000 0! #34759500 1! #34759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #34759700 1j xj #34760000 0! #34760500 1! #34760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34761000 0! #34761500 1! #34761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34762000 0! #34762500 1! #34762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34763000 0! #34763500 1! #34763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34764000 0! #34764500 1! #34764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34765000 0! #34765500 1! #34765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34766000 0! #34766500 1! #34766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34767000 0! #34767500 1! #34767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34768000 0! #34768500 1! #34768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34769000 0! #34769500 1! #34769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34770000 0! #34770500 1! #34770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34771000 0! #34771500 1! #34771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34772000 0! #34772500 1! #34772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34773000 0! #34773500 1! #34773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34774000 0! #34774500 1! #34774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34775000 0! #34775500 1! #34775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34776000 0! #34776500 1! #34776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34777000 0! #34777500 1! #34777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34778000 0! #34778500 1! #34778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34779000 0! #34779500 1! #34779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34780000 0! #34780500 1! #34780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34781000 0! #34781500 1! #34781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34782000 0! #34782500 1! #34782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34783000 0! #34783500 1! #34783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34784000 0! #34784500 1! #34784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34785000 0! #34785500 1! #34785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34786000 0! #34786500 1! #34786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34787000 0! #34787500 1! #34787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34788000 0! #34788500 1! #34788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34789000 0! #34789500 1! #34789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34790000 0! #34790500 1! #34790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34791000 0! #34791500 1! #34791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34792000 0! #34792500 1! #34792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34793000 0! #34793500 1! #34793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34794000 0! #34794500 1! #34794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34795000 0! #34795500 1! #34795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34796000 0! #34796500 1! #34796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34797000 0! #34797500 1! #34797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34798000 0! #34798500 1! #34798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34799000 0! #34799500 1! #34799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34800000 0! #34800500 1! #34800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34801000 0! #34801500 1! #34801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34802000 0! #34802500 1! #34802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34803000 0! #34803500 1! #34803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34804000 0! #34804500 1! #34804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34805000 0! #34805500 1! #34805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34806000 0! #34806500 1! #34806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34807000 0! #34807500 1! #34807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34808000 0! #34808500 1! #34808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34809000 0! #34809500 1! #34809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34810000 0! #34810500 1! #34810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34811000 0! #34811500 1! #34811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34812000 0! #34812500 1! #34812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34813000 0! #34813500 1! #34813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34814000 0! #34814500 1! #34814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34815000 0! #34815500 1! #34815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34816000 0! #34816500 1! #34816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34817000 0! #34817500 1! #34817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34818000 0! #34818500 1! #34818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34819000 0! #34819500 1! #34819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34820000 0! #34820500 1! #34820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34821000 0! #34821500 1! #34821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34822000 0! #34822500 1! #34822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34823000 0! #34823500 1! #34823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34824000 0! #34824500 1! #34824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34825000 0! #34825500 1! #34825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34826000 0! #34826500 1! #34826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34827000 0! #34827500 1! #34827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34828000 0! #34828500 1! #34828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34829000 0! #34829500 1! #34829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34830000 0! #34830500 1! #34830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34831000 0! #34831500 1! #34831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34832000 0! #34832500 1! #34832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34833000 0! #34833500 1! #34833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34834000 0! #34834500 1! #34834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34835000 0! #34835500 1! #34835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34836000 0! #34836500 1! #34836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34837000 0! #34837500 1! #34837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34838000 0! #34838500 1! #34838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34839000 0! #34839500 1! #34839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34840000 0! #34840500 1! #34840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34841000 0! #34841500 1! #34841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34842000 0! #34842500 1! #34842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34843000 0! #34843500 1! #34843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34844000 0! #34844500 1! #34844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34845000 0! #34845500 1! #34845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34846000 0! #34846500 1! #34846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34847000 0! #34847500 1! #34847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34848000 0! #34848500 1! #34848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34849000 0! #34849500 1! #34849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34850000 0! #34850500 1! #34850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34851000 0! #34851500 1! #34851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34852000 0! #34852500 1! #34852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34853000 0! #34853500 1! #34853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34854000 0! #34854500 1! #34854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34855000 0! #34855500 1! #34855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34856000 0! #34856500 1! #34856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34857000 0! #34857500 1! #34857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34858000 0! #34858500 1! #34858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34859000 0! #34859500 1! #34859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34860000 0! #34860500 1! #34860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34861000 0! #34861500 1! #34861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34862000 0! #34862500 1! #34862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34863000 0! #34863500 1! #34863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34864000 0! #34864500 1! #34864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34865000 0! #34865500 1! #34865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34866000 0! #34866500 1! #34866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34867000 0! #34867500 1! #34867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34868000 0! #34868500 1! #34868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34869000 0! #34869500 1! #34869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34870000 0! #34870500 1! #34870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34871000 0! #34871500 1! #34871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34872000 0! #34872500 1! #34872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34873000 0! #34873500 1! #34873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34874000 0! #34874500 1! #34874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34875000 0! #34875500 1! #34875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34876000 0! #34876500 1! #34876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34877000 0! #34877500 1! #34877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34878000 0! #34878500 1! #34878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34879000 0! #34879500 1! #34879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34880000 0! #34880500 1! #34880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34881000 0! #34881500 1! #34881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34882000 0! #34882500 1! #34882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34883000 0! #34883500 1! #34883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34884000 0! #34884500 1! #34884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34885000 0! #34885500 1! #34885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34886000 0! #34886500 1! #34886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34887000 0! #34887500 1! #34887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34888000 0! #34888500 1! #34888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34889000 0! #34889500 1! #34889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34890000 0! #34890500 1! #34890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34891000 0! #34891500 1! #34891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34892000 0! #34892500 1! #34892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34893000 0! #34893500 1! #34893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34894000 0! #34894500 1! #34894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34895000 0! #34895500 1! #34895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34896000 0! #34896500 1! #34896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34897000 0! #34897500 1! #34897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34898000 0! #34898500 1! #34898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34899000 0! #34899500 1! #34899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34900000 0! #34900500 1! #34900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34901000 0! #34901500 1! #34901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34902000 0! #34902500 1! #34902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34903000 0! #34903500 1! #34903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34904000 0! #34904500 1! #34904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34905000 0! #34905500 1! #34905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34906000 0! #34906500 1! #34906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34907000 0! #34907500 1! #34907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34908000 0! #34908500 1! #34908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34909000 0! #34909500 1! #34909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34910000 0! #34910500 1! #34910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34911000 0! #34911500 1! #34911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34912000 0! #34912500 1! #34912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #34912700 bx11111 ^ b11 g bx0xxxxx c 0e #34913000 0! #34913500 1! #34913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34914000 0! #34914500 1! #34914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34915000 0! #34915500 1! #34915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34916000 0! #34916500 1! #34916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34917000 0! #34917500 1! #34917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34918000 0! #34918500 1! #34918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34919000 0! #34919500 1! #34919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34920000 0! #34920500 1! #34920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34921000 0! #34921500 1! #34921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34922000 0! #34922500 1! #34922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34923000 0! #34923500 1! #34923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34924000 0! #34924500 1! #34924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34925000 0! #34925500 1! #34925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34926000 0! #34926500 1! #34926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34927000 0! #34927500 1! #34927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34928000 0! #34928500 1! #34928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34929000 0! #34929500 1! #34929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34930000 0! #34930500 1! #34930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34931000 0! #34931500 1! #34931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34932000 0! #34932500 1! #34932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34933000 0! #34933500 1! #34933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34934000 0! #34934500 1! #34934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34935000 0! #34935500 1! #34935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34936000 0! #34936500 1! #34936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34937000 0! #34937500 1! #34937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34938000 0! #34938500 1! #34938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34939000 0! #34939500 1! #34939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34940000 0! #34940500 1! #34940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34941000 0! #34941500 1! #34941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34942000 0! #34942500 1! #34942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34943000 0! #34943500 1! #34943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34944000 0! #34944500 1! #34944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34945000 0! #34945500 1! #34945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34946000 0! #34946500 1! #34946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34947000 0! #34947500 1! #34947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34948000 0! #34948500 1! #34948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34949000 0! #34949500 1! #34949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34950000 0! #34950500 1! #34950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34951000 0! #34951500 1! #34951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34952000 0! #34952500 1! #34952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34953000 0! #34953500 1! #34953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34954000 0! #34954500 1! #34954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34955000 0! #34955500 1! #34955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34956000 0! #34956500 1! #34956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34957000 0! #34957500 1! #34957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34958000 0! #34958500 1! #34958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34959000 0! #34959500 1! #34959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34960000 0! #34960500 1! #34960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34961000 0! #34961500 1! #34961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34962000 0! #34962500 1! #34962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34963000 0! #34963500 1! #34963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34964000 0! #34964500 1! #34964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34965000 0! #34965500 1! #34965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34966000 0! #34966500 1! #34966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34967000 0! #34967500 1! #34967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34968000 0! #34968500 1! #34968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34969000 0! #34969500 1! #34969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34970000 0! #34970500 1! #34970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34971000 0! #34971500 1! #34971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34972000 0! #34972500 1! #34972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34973000 0! #34973500 1! #34973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34974000 0! #34974500 1! #34974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34975000 0! #34975500 1! #34975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34976000 0! #34976500 1! #34976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34977000 0! #34977500 1! #34977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34978000 0! #34978500 1! #34978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34979000 0! #34979500 1! #34979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34980000 0! #34980500 1! #34980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34981000 0! #34981500 1! #34981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34982000 0! #34982500 1! #34982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34983000 0! #34983500 1! #34983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34984000 0! #34984500 1! #34984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34985000 0! #34985500 1! #34985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34986000 0! #34986500 1! #34986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34987000 0! #34987500 1! #34987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34988000 0! #34988500 1! #34988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34989000 0! #34989500 1! #34989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34990000 0! #34990500 1! #34990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34991000 0! #34991500 1! #34991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34992000 0! #34992500 1! #34992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34993000 0! #34993500 1! #34993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34994000 0! #34994500 1! #34994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34995000 0! #34995500 1! #34995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34996000 0! #34996500 1! #34996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34997000 0! #34997500 1! #34997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #34998000 0! #34998500 1! #34998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #34999000 0! #34999500 1! #34999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35000000 0! #35000500 1! #35000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35001000 0! #35001500 1! #35001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35002000 0! #35002500 1! #35002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35003000 0! #35003500 1! #35003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35004000 0! #35004500 1! #35004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35005000 0! #35005500 1! #35005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35006000 0! #35006500 1! #35006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35007000 0! #35007500 1! #35007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35008000 0! #35008500 1! #35008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35009000 0! #35009500 1! #35009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35010000 0! #35010500 1! #35010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35011000 0! #35011500 1! #35011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35012000 0! #35012500 1! #35012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35013000 0! #35013500 1! #35013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35014000 0! #35014500 1! #35014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #35014700 1j xj #35015000 0! #35015500 1! #35015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35016000 0! #35016500 1! #35016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35017000 0! #35017500 1! #35017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35018000 0! #35018500 1! #35018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35019000 0! #35019500 1! #35019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35020000 0! #35020500 1! #35020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35021000 0! #35021500 1! #35021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35022000 0! #35022500 1! #35022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35023000 0! #35023500 1! #35023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35024000 0! #35024500 1! #35024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35025000 0! #35025500 1! #35025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35026000 0! #35026500 1! #35026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35027000 0! #35027500 1! #35027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35028000 0! #35028500 1! #35028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35029000 0! #35029500 1! #35029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35030000 0! #35030500 1! #35030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35031000 0! #35031500 1! #35031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35032000 0! #35032500 1! #35032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35033000 0! #35033500 1! #35033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35034000 0! #35034500 1! #35034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35035000 0! #35035500 1! #35035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35036000 0! #35036500 1! #35036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35037000 0! #35037500 1! #35037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35038000 0! #35038500 1! #35038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35039000 0! #35039500 1! #35039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35040000 0! #35040500 1! #35040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35041000 0! #35041500 1! #35041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35042000 0! #35042500 1! #35042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35043000 0! #35043500 1! #35043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35044000 0! #35044500 1! #35044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35045000 0! #35045500 1! #35045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35046000 0! #35046500 1! #35046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35047000 0! #35047500 1! #35047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35048000 0! #35048500 1! #35048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35049000 0! #35049500 1! #35049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35050000 0! #35050500 1! #35050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35051000 0! #35051500 1! #35051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35052000 0! #35052500 1! #35052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35053000 0! #35053500 1! #35053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35054000 0! #35054500 1! #35054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35055000 0! #35055500 1! #35055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35056000 0! #35056500 1! #35056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35057000 0! #35057500 1! #35057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35058000 0! #35058500 1! #35058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35059000 0! #35059500 1! #35059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35060000 0! #35060500 1! #35060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35061000 0! #35061500 1! #35061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35062000 0! #35062500 1! #35062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35063000 0! #35063500 1! #35063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35064000 0! #35064500 1! #35064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35065000 0! #35065500 1! #35065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35066000 0! #35066500 1! #35066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35067000 0! #35067500 1! #35067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35068000 0! #35068500 1! #35068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35069000 0! #35069500 1! #35069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35070000 0! #35070500 1! #35070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35071000 0! #35071500 1! #35071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35072000 0! #35072500 1! #35072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35073000 0! #35073500 1! #35073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35074000 0! #35074500 1! #35074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35075000 0! #35075500 1! #35075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35076000 0! #35076500 1! #35076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35077000 0! #35077500 1! #35077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35078000 0! #35078500 1! #35078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35079000 0! #35079500 1! #35079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35080000 0! #35080500 1! #35080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35081000 0! #35081500 1! #35081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35082000 0! #35082500 1! #35082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35083000 0! #35083500 1! #35083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35084000 0! #35084500 1! #35084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35085000 0! #35085500 1! #35085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35086000 0! #35086500 1! #35086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35087000 0! #35087500 1! #35087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35088000 0! #35088500 1! #35088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35089000 0! #35089500 1! #35089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35090000 0! #35090500 1! #35090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35091000 0! #35091500 1! #35091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35092000 0! #35092500 1! #35092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35093000 0! #35093500 1! #35093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35094000 0! #35094500 1! #35094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35095000 0! #35095500 1! #35095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35096000 0! #35096500 1! #35096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35097000 0! #35097500 1! #35097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35098000 0! #35098500 1! #35098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35099000 0! #35099500 1! #35099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35100000 0! #35100500 1! #35100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35101000 0! #35101500 1! #35101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35102000 0! #35102500 1! #35102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35103000 0! #35103500 1! #35103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35104000 0! #35104500 1! #35104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35105000 0! #35105500 1! #35105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35106000 0! #35106500 1! #35106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35107000 0! #35107500 1! #35107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35108000 0! #35108500 1! #35108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35109000 0! #35109500 1! #35109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35110000 0! #35110500 1! #35110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35111000 0! #35111500 1! #35111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35112000 0! #35112500 1! #35112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35113000 0! #35113500 1! #35113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35114000 0! #35114500 1! #35114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35115000 0! #35115500 1! #35115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35116000 0! #35116500 1! #35116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35117000 0! #35117500 1! #35117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35118000 0! #35118500 1! #35118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35119000 0! #35119500 1! #35119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35120000 0! #35120500 1! #35120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35121000 0! #35121500 1! #35121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35122000 0! #35122500 1! #35122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35123000 0! #35123500 1! #35123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35124000 0! #35124500 1! #35124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35125000 0! #35125500 1! #35125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35126000 0! #35126500 1! #35126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35127000 0! #35127500 1! #35127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35128000 0! #35128500 1! #35128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35129000 0! #35129500 1! #35129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35130000 0! #35130500 1! #35130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35131000 0! #35131500 1! #35131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35132000 0! #35132500 1! #35132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35133000 0! #35133500 1! #35133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35134000 0! #35134500 1! #35134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35135000 0! #35135500 1! #35135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35136000 0! #35136500 1! #35136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35137000 0! #35137500 1! #35137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35138000 0! #35138500 1! #35138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35139000 0! #35139500 1! #35139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35140000 0! #35140500 1! #35140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35141000 0! #35141500 1! #35141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35142000 0! #35142500 1! #35142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35143000 0! #35143500 1! #35143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35144000 0! #35144500 1! #35144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35145000 0! #35145500 1! #35145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35146000 0! #35146500 1! #35146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35147000 0! #35147500 1! #35147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35148000 0! #35148500 1! #35148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35149000 0! #35149500 1! #35149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35150000 0! #35150500 1! #35150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35151000 0! #35151500 1! #35151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35152000 0! #35152500 1! #35152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35153000 0! #35153500 1! #35153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35154000 0! #35154500 1! #35154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35155000 0! #35155500 1! #35155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35156000 0! #35156500 1! #35156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35157000 0! #35157500 1! #35157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35158000 0! #35158500 1! #35158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35159000 0! #35159500 1! #35159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35160000 0! #35160500 1! #35160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35161000 0! #35161500 1! #35161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35162000 0! #35162500 1! #35162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35163000 0! #35163500 1! #35163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35164000 0! #35164500 1! #35164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35165000 0! #35165500 1! #35165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35166000 0! #35166500 1! #35166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35167000 0! #35167500 1! #35167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #35167700 bx111111 ^ b10 g bx0xxxxxx c xe #35168000 0! #35168500 1! #35168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35169000 0! #35169500 1! #35169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35170000 0! #35170500 1! #35170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35171000 0! #35171500 1! #35171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35172000 0! #35172500 1! #35172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35173000 0! #35173500 1! #35173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35174000 0! #35174500 1! #35174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35175000 0! #35175500 1! #35175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35176000 0! #35176500 1! #35176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35177000 0! #35177500 1! #35177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35178000 0! #35178500 1! #35178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35179000 0! #35179500 1! #35179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35180000 0! #35180500 1! #35180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35181000 0! #35181500 1! #35181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35182000 0! #35182500 1! #35182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35183000 0! #35183500 1! #35183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35184000 0! #35184500 1! #35184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35185000 0! #35185500 1! #35185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35186000 0! #35186500 1! #35186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35187000 0! #35187500 1! #35187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35188000 0! #35188500 1! #35188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35189000 0! #35189500 1! #35189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35190000 0! #35190500 1! #35190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35191000 0! #35191500 1! #35191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35192000 0! #35192500 1! #35192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35193000 0! #35193500 1! #35193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35194000 0! #35194500 1! #35194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35195000 0! #35195500 1! #35195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35196000 0! #35196500 1! #35196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35197000 0! #35197500 1! #35197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35198000 0! #35198500 1! #35198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35199000 0! #35199500 1! #35199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35200000 0! #35200500 1! #35200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35201000 0! #35201500 1! #35201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35202000 0! #35202500 1! #35202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35203000 0! #35203500 1! #35203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35204000 0! #35204500 1! #35204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35205000 0! #35205500 1! #35205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35206000 0! #35206500 1! #35206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35207000 0! #35207500 1! #35207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35208000 0! #35208500 1! #35208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35209000 0! #35209500 1! #35209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35210000 0! #35210500 1! #35210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35211000 0! #35211500 1! #35211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35212000 0! #35212500 1! #35212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35213000 0! #35213500 1! #35213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35214000 0! #35214500 1! #35214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35215000 0! #35215500 1! #35215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35216000 0! #35216500 1! #35216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35217000 0! #35217500 1! #35217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35218000 0! #35218500 1! #35218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35219000 0! #35219500 1! #35219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35220000 0! #35220500 1! #35220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35221000 0! #35221500 1! #35221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35222000 0! #35222500 1! #35222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35223000 0! #35223500 1! #35223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35224000 0! #35224500 1! #35224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35225000 0! #35225500 1! #35225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35226000 0! #35226500 1! #35226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35227000 0! #35227500 1! #35227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35228000 0! #35228500 1! #35228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35229000 0! #35229500 1! #35229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35230000 0! #35230500 1! #35230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35231000 0! #35231500 1! #35231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35232000 0! #35232500 1! #35232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35233000 0! #35233500 1! #35233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35234000 0! #35234500 1! #35234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35235000 0! #35235500 1! #35235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35236000 0! #35236500 1! #35236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35237000 0! #35237500 1! #35237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35238000 0! #35238500 1! #35238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35239000 0! #35239500 1! #35239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35240000 0! #35240500 1! #35240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35241000 0! #35241500 1! #35241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35242000 0! #35242500 1! #35242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35243000 0! #35243500 1! #35243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35244000 0! #35244500 1! #35244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35245000 0! #35245500 1! #35245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35246000 0! #35246500 1! #35246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35247000 0! #35247500 1! #35247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35248000 0! #35248500 1! #35248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35249000 0! #35249500 1! #35249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35250000 0! #35250500 1! #35250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35251000 0! #35251500 1! #35251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35252000 0! #35252500 1! #35252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35253000 0! #35253500 1! #35253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35254000 0! #35254500 1! #35254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35255000 0! #35255500 1! #35255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35256000 0! #35256500 1! #35256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35257000 0! #35257500 1! #35257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35258000 0! #35258500 1! #35258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35259000 0! #35259500 1! #35259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35260000 0! #35260500 1! #35260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35261000 0! #35261500 1! #35261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35262000 0! #35262500 1! #35262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35263000 0! #35263500 1! #35263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35264000 0! #35264500 1! #35264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35265000 0! #35265500 1! #35265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35266000 0! #35266500 1! #35266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35267000 0! #35267500 1! #35267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35268000 0! #35268500 1! #35268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35269000 0! #35269500 1! #35269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #35269700 1j xj #35270000 0! #35270500 1! #35270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35271000 0! #35271500 1! #35271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35272000 0! #35272500 1! #35272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35273000 0! #35273500 1! #35273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35274000 0! #35274500 1! #35274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35275000 0! #35275500 1! #35275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35276000 0! #35276500 1! #35276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35277000 0! #35277500 1! #35277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35278000 0! #35278500 1! #35278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35279000 0! #35279500 1! #35279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35280000 0! #35280500 1! #35280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35281000 0! #35281500 1! #35281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35282000 0! #35282500 1! #35282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35283000 0! #35283500 1! #35283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35284000 0! #35284500 1! #35284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35285000 0! #35285500 1! #35285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35286000 0! #35286500 1! #35286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35287000 0! #35287500 1! #35287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35288000 0! #35288500 1! #35288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35289000 0! #35289500 1! #35289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35290000 0! #35290500 1! #35290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35291000 0! #35291500 1! #35291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35292000 0! #35292500 1! #35292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35293000 0! #35293500 1! #35293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35294000 0! #35294500 1! #35294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35295000 0! #35295500 1! #35295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35296000 0! #35296500 1! #35296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35297000 0! #35297500 1! #35297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35298000 0! #35298500 1! #35298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35299000 0! #35299500 1! #35299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35300000 0! #35300500 1! #35300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35301000 0! #35301500 1! #35301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35302000 0! #35302500 1! #35302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35303000 0! #35303500 1! #35303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35304000 0! #35304500 1! #35304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35305000 0! #35305500 1! #35305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35306000 0! #35306500 1! #35306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35307000 0! #35307500 1! #35307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35308000 0! #35308500 1! #35308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35309000 0! #35309500 1! #35309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35310000 0! #35310500 1! #35310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35311000 0! #35311500 1! #35311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35312000 0! #35312500 1! #35312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35313000 0! #35313500 1! #35313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35314000 0! #35314500 1! #35314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35315000 0! #35315500 1! #35315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35316000 0! #35316500 1! #35316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35317000 0! #35317500 1! #35317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35318000 0! #35318500 1! #35318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35319000 0! #35319500 1! #35319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35320000 0! #35320500 1! #35320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35321000 0! #35321500 1! #35321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35322000 0! #35322500 1! #35322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35323000 0! #35323500 1! #35323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35324000 0! #35324500 1! #35324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35325000 0! #35325500 1! #35325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35326000 0! #35326500 1! #35326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35327000 0! #35327500 1! #35327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35328000 0! #35328500 1! #35328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35329000 0! #35329500 1! #35329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35330000 0! #35330500 1! #35330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35331000 0! #35331500 1! #35331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35332000 0! #35332500 1! #35332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35333000 0! #35333500 1! #35333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35334000 0! #35334500 1! #35334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35335000 0! #35335500 1! #35335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35336000 0! #35336500 1! #35336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35337000 0! #35337500 1! #35337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35338000 0! #35338500 1! #35338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35339000 0! #35339500 1! #35339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35340000 0! #35340500 1! #35340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35341000 0! #35341500 1! #35341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35342000 0! #35342500 1! #35342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35343000 0! #35343500 1! #35343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35344000 0! #35344500 1! #35344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35345000 0! #35345500 1! #35345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35346000 0! #35346500 1! #35346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35347000 0! #35347500 1! #35347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35348000 0! #35348500 1! #35348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35349000 0! #35349500 1! #35349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35350000 0! #35350500 1! #35350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35351000 0! #35351500 1! #35351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35352000 0! #35352500 1! #35352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35353000 0! #35353500 1! #35353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35354000 0! #35354500 1! #35354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35355000 0! #35355500 1! #35355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35356000 0! #35356500 1! #35356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35357000 0! #35357500 1! #35357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35358000 0! #35358500 1! #35358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35359000 0! #35359500 1! #35359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35360000 0! #35360500 1! #35360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35361000 0! #35361500 1! #35361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35362000 0! #35362500 1! #35362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35363000 0! #35363500 1! #35363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35364000 0! #35364500 1! #35364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35365000 0! #35365500 1! #35365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35366000 0! #35366500 1! #35366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35367000 0! #35367500 1! #35367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35368000 0! #35368500 1! #35368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35369000 0! #35369500 1! #35369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35370000 0! #35370500 1! #35370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35371000 0! #35371500 1! #35371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35372000 0! #35372500 1! #35372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35373000 0! #35373500 1! #35373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35374000 0! #35374500 1! #35374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35375000 0! #35375500 1! #35375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35376000 0! #35376500 1! #35376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35377000 0! #35377500 1! #35377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35378000 0! #35378500 1! #35378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35379000 0! #35379500 1! #35379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35380000 0! #35380500 1! #35380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35381000 0! #35381500 1! #35381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35382000 0! #35382500 1! #35382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35383000 0! #35383500 1! #35383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35384000 0! #35384500 1! #35384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35385000 0! #35385500 1! #35385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35386000 0! #35386500 1! #35386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35387000 0! #35387500 1! #35387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35388000 0! #35388500 1! #35388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35389000 0! #35389500 1! #35389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35390000 0! #35390500 1! #35390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35391000 0! #35391500 1! #35391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35392000 0! #35392500 1! #35392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35393000 0! #35393500 1! #35393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35394000 0! #35394500 1! #35394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35395000 0! #35395500 1! #35395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35396000 0! #35396500 1! #35396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35397000 0! #35397500 1! #35397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35398000 0! #35398500 1! #35398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35399000 0! #35399500 1! #35399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35400000 0! #35400500 1! #35400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35401000 0! #35401500 1! #35401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35402000 0! #35402500 1! #35402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35403000 0! #35403500 1! #35403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35404000 0! #35404500 1! #35404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35405000 0! #35405500 1! #35405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35406000 0! #35406500 1! #35406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35407000 0! #35407500 1! #35407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35408000 0! #35408500 1! #35408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35409000 0! #35409500 1! #35409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35410000 0! #35410500 1! #35410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35411000 0! #35411500 1! #35411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35412000 0! #35412500 1! #35412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35413000 0! #35413500 1! #35413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35414000 0! #35414500 1! #35414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35415000 0! #35415500 1! #35415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35416000 0! #35416500 1! #35416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35417000 0! #35417500 1! #35417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35418000 0! #35418500 1! #35418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35419000 0! #35419500 1! #35419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35420000 0! #35420500 1! #35420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35421000 0! #35421500 1! #35421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35422000 0! #35422500 1! #35422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #35422700 bx1111111 ^ b1 g b0xxxxxxx c 0e #35423000 0! #35423500 1! #35423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35424000 0! #35424500 1! #35424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35425000 0! #35425500 1! #35425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35426000 0! #35426500 1! #35426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35427000 0! #35427500 1! #35427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35428000 0! #35428500 1! #35428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35429000 0! #35429500 1! #35429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35430000 0! #35430500 1! #35430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35431000 0! #35431500 1! #35431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35432000 0! #35432500 1! #35432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35433000 0! #35433500 1! #35433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35434000 0! #35434500 1! #35434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35435000 0! #35435500 1! #35435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35436000 0! #35436500 1! #35436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35437000 0! #35437500 1! #35437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35438000 0! #35438500 1! #35438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35439000 0! #35439500 1! #35439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35440000 0! #35440500 1! #35440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35441000 0! #35441500 1! #35441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35442000 0! #35442500 1! #35442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35443000 0! #35443500 1! #35443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35444000 0! #35444500 1! #35444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35445000 0! #35445500 1! #35445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35446000 0! #35446500 1! #35446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35447000 0! #35447500 1! #35447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35448000 0! #35448500 1! #35448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35449000 0! #35449500 1! #35449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35450000 0! #35450500 1! #35450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35451000 0! #35451500 1! #35451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35452000 0! #35452500 1! #35452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35453000 0! #35453500 1! #35453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35454000 0! #35454500 1! #35454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35455000 0! #35455500 1! #35455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35456000 0! #35456500 1! #35456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35457000 0! #35457500 1! #35457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35458000 0! #35458500 1! #35458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35459000 0! #35459500 1! #35459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35460000 0! #35460500 1! #35460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35461000 0! #35461500 1! #35461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35462000 0! #35462500 1! #35462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35463000 0! #35463500 1! #35463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35464000 0! #35464500 1! #35464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35465000 0! #35465500 1! #35465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35466000 0! #35466500 1! #35466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35467000 0! #35467500 1! #35467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35468000 0! #35468500 1! #35468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35469000 0! #35469500 1! #35469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35470000 0! #35470500 1! #35470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35471000 0! #35471500 1! #35471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35472000 0! #35472500 1! #35472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35473000 0! #35473500 1! #35473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35474000 0! #35474500 1! #35474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35475000 0! #35475500 1! #35475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35476000 0! #35476500 1! #35476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35477000 0! #35477500 1! #35477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35478000 0! #35478500 1! #35478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35479000 0! #35479500 1! #35479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35480000 0! #35480500 1! #35480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35481000 0! #35481500 1! #35481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35482000 0! #35482500 1! #35482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35483000 0! #35483500 1! #35483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35484000 0! #35484500 1! #35484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35485000 0! #35485500 1! #35485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35486000 0! #35486500 1! #35486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35487000 0! #35487500 1! #35487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35488000 0! #35488500 1! #35488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35489000 0! #35489500 1! #35489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35490000 0! #35490500 1! #35490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35491000 0! #35491500 1! #35491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35492000 0! #35492500 1! #35492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35493000 0! #35493500 1! #35493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35494000 0! #35494500 1! #35494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35495000 0! #35495500 1! #35495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35496000 0! #35496500 1! #35496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35497000 0! #35497500 1! #35497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35498000 0! #35498500 1! #35498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35499000 0! #35499500 1! #35499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35500000 0! #35500500 1! #35500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35501000 0! #35501500 1! #35501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35502000 0! #35502500 1! #35502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35503000 0! #35503500 1! #35503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35504000 0! #35504500 1! #35504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35505000 0! #35505500 1! #35505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35506000 0! #35506500 1! #35506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35507000 0! #35507500 1! #35507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35508000 0! #35508500 1! #35508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35509000 0! #35509500 1! #35509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35510000 0! #35510500 1! #35510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35511000 0! #35511500 1! #35511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35512000 0! #35512500 1! #35512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35513000 0! #35513500 1! #35513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35514000 0! #35514500 1! #35514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35515000 0! #35515500 1! #35515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35516000 0! #35516500 1! #35516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35517000 0! #35517500 1! #35517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35518000 0! #35518500 1! #35518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35519000 0! #35519500 1! #35519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35520000 0! #35520500 1! #35520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35521000 0! #35521500 1! #35521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35522000 0! #35522500 1! #35522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35523000 0! #35523500 1! #35523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35524000 0! #35524500 1! #35524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #35524700 1j xj #35525000 0! #35525500 1! #35525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35526000 0! #35526500 1! #35526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35527000 0! #35527500 1! #35527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35528000 0! #35528500 1! #35528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35529000 0! #35529500 1! #35529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35530000 0! #35530500 1! #35530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35531000 0! #35531500 1! #35531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35532000 0! #35532500 1! #35532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35533000 0! #35533500 1! #35533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35534000 0! #35534500 1! #35534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35535000 0! #35535500 1! #35535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35536000 0! #35536500 1! #35536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35537000 0! #35537500 1! #35537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35538000 0! #35538500 1! #35538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35539000 0! #35539500 1! #35539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35540000 0! #35540500 1! #35540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35541000 0! #35541500 1! #35541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35542000 0! #35542500 1! #35542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35543000 0! #35543500 1! #35543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35544000 0! #35544500 1! #35544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35545000 0! #35545500 1! #35545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35546000 0! #35546500 1! #35546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35547000 0! #35547500 1! #35547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35548000 0! #35548500 1! #35548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35549000 0! #35549500 1! #35549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35550000 0! #35550500 1! #35550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35551000 0! #35551500 1! #35551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35552000 0! #35552500 1! #35552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35553000 0! #35553500 1! #35553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35554000 0! #35554500 1! #35554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35555000 0! #35555500 1! #35555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35556000 0! #35556500 1! #35556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35557000 0! #35557500 1! #35557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35558000 0! #35558500 1! #35558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35559000 0! #35559500 1! #35559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35560000 0! #35560500 1! #35560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35561000 0! #35561500 1! #35561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35562000 0! #35562500 1! #35562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35563000 0! #35563500 1! #35563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35564000 0! #35564500 1! #35564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35565000 0! #35565500 1! #35565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35566000 0! #35566500 1! #35566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35567000 0! #35567500 1! #35567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35568000 0! #35568500 1! #35568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35569000 0! #35569500 1! #35569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35570000 0! #35570500 1! #35570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35571000 0! #35571500 1! #35571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35572000 0! #35572500 1! #35572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35573000 0! #35573500 1! #35573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35574000 0! #35574500 1! #35574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35575000 0! #35575500 1! #35575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35576000 0! #35576500 1! #35576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35577000 0! #35577500 1! #35577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35578000 0! #35578500 1! #35578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35579000 0! #35579500 1! #35579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35580000 0! #35580500 1! #35580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35581000 0! #35581500 1! #35581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35582000 0! #35582500 1! #35582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35583000 0! #35583500 1! #35583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35584000 0! #35584500 1! #35584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35585000 0! #35585500 1! #35585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35586000 0! #35586500 1! #35586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35587000 0! #35587500 1! #35587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35588000 0! #35588500 1! #35588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35589000 0! #35589500 1! #35589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35590000 0! #35590500 1! #35590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35591000 0! #35591500 1! #35591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35592000 0! #35592500 1! #35592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35593000 0! #35593500 1! #35593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35594000 0! #35594500 1! #35594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35595000 0! #35595500 1! #35595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35596000 0! #35596500 1! #35596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35597000 0! #35597500 1! #35597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35598000 0! #35598500 1! #35598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35599000 0! #35599500 1! #35599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35600000 0! #35600500 1! #35600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35601000 0! #35601500 1! #35601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35602000 0! #35602500 1! #35602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35603000 0! #35603500 1! #35603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35604000 0! #35604500 1! #35604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35605000 0! #35605500 1! #35605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35606000 0! #35606500 1! #35606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35607000 0! #35607500 1! #35607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35608000 0! #35608500 1! #35608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35609000 0! #35609500 1! #35609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35610000 0! #35610500 1! #35610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35611000 0! #35611500 1! #35611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35612000 0! #35612500 1! #35612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35613000 0! #35613500 1! #35613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35614000 0! #35614500 1! #35614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35615000 0! #35615500 1! #35615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35616000 0! #35616500 1! #35616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35617000 0! #35617500 1! #35617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35618000 0! #35618500 1! #35618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35619000 0! #35619500 1! #35619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35620000 0! #35620500 1! #35620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35621000 0! #35621500 1! #35621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35622000 0! #35622500 1! #35622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35623000 0! #35623500 1! #35623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35624000 0! #35624500 1! #35624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35625000 0! #35625500 1! #35625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35626000 0! #35626500 1! #35626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35627000 0! #35627500 1! #35627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35628000 0! #35628500 1! #35628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35629000 0! #35629500 1! #35629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35630000 0! #35630500 1! #35630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35631000 0! #35631500 1! #35631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35632000 0! #35632500 1! #35632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35633000 0! #35633500 1! #35633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35634000 0! #35634500 1! #35634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35635000 0! #35635500 1! #35635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35636000 0! #35636500 1! #35636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35637000 0! #35637500 1! #35637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35638000 0! #35638500 1! #35638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35639000 0! #35639500 1! #35639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35640000 0! #35640500 1! #35640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35641000 0! #35641500 1! #35641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35642000 0! #35642500 1! #35642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35643000 0! #35643500 1! #35643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35644000 0! #35644500 1! #35644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35645000 0! #35645500 1! #35645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35646000 0! #35646500 1! #35646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35647000 0! #35647500 1! #35647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35648000 0! #35648500 1! #35648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35649000 0! #35649500 1! #35649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35650000 0! #35650500 1! #35650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35651000 0! #35651500 1! #35651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35652000 0! #35652500 1! #35652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35653000 0! #35653500 1! #35653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35654000 0! #35654500 1! #35654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35655000 0! #35655500 1! #35655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35656000 0! #35656500 1! #35656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35657000 0! #35657500 1! #35657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35658000 0! #35658500 1! #35658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35659000 0! #35659500 1! #35659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35660000 0! #35660500 1! #35660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35661000 0! #35661500 1! #35661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35662000 0! #35662500 1! #35662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35663000 0! #35663500 1! #35663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35664000 0! #35664500 1! #35664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35665000 0! #35665500 1! #35665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35666000 0! #35666500 1! #35666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35667000 0! #35667500 1! #35667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35668000 0! #35668500 1! #35668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35669000 0! #35669500 1! #35669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35670000 0! #35670500 1! #35670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35671000 0! #35671500 1! #35671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35672000 0! #35672500 1! #35672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35673000 0! #35673500 1! #35673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35674000 0! #35674500 1! #35674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35675000 0! #35675500 1! #35675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35676000 0! #35676500 1! #35676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35677000 0! #35677500 1! #35677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #35677700 b11111111 ^ b0 g bx c xe 1h #35678000 0! #35678500 1! #35678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35679000 0! #35679500 1! #35679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35680000 0! #35680500 1! #35680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35681000 0! #35681500 1! #35681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35682000 0! #35682500 1! #35682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35683000 0! #35683500 1! #35683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35684000 0! #35684500 1! #35684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35685000 0! #35685500 1! #35685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35686000 0! #35686500 1! #35686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35687000 0! #35687500 1! #35687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35688000 0! #35688500 1! #35688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35689000 0! #35689500 1! #35689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35690000 0! #35690500 1! #35690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35691000 0! #35691500 1! #35691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35692000 0! #35692500 1! #35692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35693000 0! #35693500 1! #35693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35694000 0! #35694500 1! #35694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35695000 0! #35695500 1! #35695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35696000 0! #35696500 1! #35696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35697000 0! #35697500 1! #35697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35698000 0! #35698500 1! #35698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35699000 0! #35699500 1! #35699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35700000 0! #35700500 1! #35700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35701000 0! #35701500 1! #35701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35702000 0! #35702500 1! #35702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35703000 0! #35703500 1! #35703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35704000 0! #35704500 1! #35704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35705000 0! #35705500 1! #35705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35706000 0! #35706500 1! #35706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35707000 0! #35707500 1! #35707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35708000 0! #35708500 1! #35708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35709000 0! #35709500 1! #35709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35710000 0! #35710500 1! #35710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35711000 0! #35711500 1! #35711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35712000 0! #35712500 1! #35712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35713000 0! #35713500 1! #35713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35714000 0! #35714500 1! #35714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35715000 0! #35715500 1! #35715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35716000 0! #35716500 1! #35716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35717000 0! #35717500 1! #35717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35718000 0! #35718500 1! #35718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35719000 0! #35719500 1! #35719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35720000 0! #35720500 1! #35720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35721000 0! #35721500 1! #35721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35722000 0! #35722500 1! #35722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35723000 0! #35723500 1! #35723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35724000 0! #35724500 1! #35724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35725000 0! #35725500 1! #35725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35726000 0! #35726500 1! #35726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35727000 0! #35727500 1! #35727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35728000 0! #35728500 1! #35728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35729000 0! #35729500 1! #35729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35730000 0! #35730500 1! #35730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35731000 0! #35731500 1! #35731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35732000 0! #35732500 1! #35732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35733000 0! #35733500 1! #35733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35734000 0! #35734500 1! #35734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35735000 0! #35735500 1! #35735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35736000 0! #35736500 1! #35736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35737000 0! #35737500 1! #35737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35738000 0! #35738500 1! #35738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35739000 0! #35739500 1! #35739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35740000 0! #35740500 1! #35740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35741000 0! #35741500 1! #35741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35742000 0! #35742500 1! #35742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35743000 0! #35743500 1! #35743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35744000 0! #35744500 1! #35744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35745000 0! #35745500 1! #35745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35746000 0! #35746500 1! #35746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35747000 0! #35747500 1! #35747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35748000 0! #35748500 1! #35748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35749000 0! #35749500 1! #35749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35750000 0! #35750500 1! #35750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35751000 0! #35751500 1! #35751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35752000 0! #35752500 1! #35752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35753000 0! #35753500 1! #35753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35754000 0! #35754500 1! #35754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35755000 0! #35755500 1! #35755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35756000 0! #35756500 1! #35756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35757000 0! #35757500 1! #35757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35758000 0! #35758500 1! #35758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35759000 0! #35759500 1! #35759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35760000 0! #35760500 1! #35760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35761000 0! #35761500 1! #35761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35762000 0! #35762500 1! #35762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35763000 0! #35763500 1! #35763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35764000 0! #35764500 1! #35764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35765000 0! #35765500 1! #35765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35766000 0! #35766500 1! #35766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35767000 0! #35767500 1! #35767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35768000 0! #35768500 1! #35768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35769000 0! #35769500 1! #35769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35770000 0! #35770500 1! #35770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35771000 0! #35771500 1! #35771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35772000 0! #35772500 1! #35772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35773000 0! #35773500 1! #35773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35774000 0! #35774500 1! #35774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35775000 0! #35775500 1! #35775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35776000 0! #35776500 1! #35776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35777000 0! #35777500 1! #35777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35778000 0! #35778500 1! #35778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35779000 0! #35779500 1! #35779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #35779700 1j b101 q 1O #35779800 b101 ] #35779900 bx ^ #35780000 0! #35780500 1! #35780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35781000 0! #35781500 1! #35781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35782000 0! #35782500 1! #35782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35783000 0! #35783500 1! #35783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35784000 0! #35784500 1! #35784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35785000 0! #35785500 1! #35785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35786000 0! #35786500 1! #35786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35787000 0! #35787500 1! #35787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35788000 0! #35788500 1! #35788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35789000 0! #35789500 1! #35789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35790000 0! #35790500 1! #35790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35791000 0! #35791500 1! #35791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35792000 0! #35792500 1! #35792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35793000 0! #35793500 1! #35793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35794000 0! #35794500 1! #35794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35795000 0! #35795500 1! #35795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35796000 0! #35796500 1! #35796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35797000 0! #35797500 1! #35797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35798000 0! #35798500 1! #35798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35799000 0! #35799500 1! #35799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35800000 0! #35800500 1! #35800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35801000 0! #35801500 1! #35801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35802000 0! #35802500 1! #35802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35803000 0! #35803500 1! #35803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35804000 0! #35804500 1! #35804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35805000 0! #35805500 1! #35805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35806000 0! #35806500 1! #35806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35807000 0! #35807500 1! #35807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35808000 0! #35808500 1! #35808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35809000 0! #35809500 1! #35809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35810000 0! #35810500 1! #35810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35811000 0! #35811500 1! #35811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35812000 0! #35812500 1! #35812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35813000 0! #35813500 1! #35813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35814000 0! #35814500 1! #35814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35815000 0! #35815500 1! #35815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35816000 0! #35816500 1! #35816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35817000 0! #35817500 1! #35817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35818000 0! #35818500 1! #35818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35819000 0! #35819500 1! #35819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35820000 0! #35820500 1! #35820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35821000 0! #35821500 1! #35821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35822000 0! #35822500 1! #35822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35823000 0! #35823500 1! #35823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35824000 0! #35824500 1! #35824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35825000 0! #35825500 1! #35825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35826000 0! #35826500 1! #35826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35827000 0! #35827500 1! #35827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35828000 0! #35828500 1! #35828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35829000 0! #35829500 1! #35829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35830000 0! #35830500 1! #35830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35831000 0! #35831500 1! #35831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35832000 0! #35832500 1! #35832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35833000 0! #35833500 1! #35833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35834000 0! #35834500 1! #35834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35835000 0! #35835500 1! #35835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35836000 0! #35836500 1! #35836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35837000 0! #35837500 1! #35837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35838000 0! #35838500 1! #35838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35839000 0! #35839500 1! #35839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35840000 0! #35840500 1! #35840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35841000 0! #35841500 1! #35841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35842000 0! #35842500 1! #35842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35843000 0! #35843500 1! #35843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35844000 0! #35844500 1! #35844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35845000 0! #35845500 1! #35845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35846000 0! #35846500 1! #35846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35847000 0! #35847500 1! #35847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35848000 0! #35848500 1! #35848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35849000 0! #35849500 1! #35849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35850000 0! #35850500 1! #35850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35851000 0! #35851500 1! #35851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35852000 0! #35852500 1! #35852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35853000 0! #35853500 1! #35853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35854000 0! #35854500 1! #35854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35855000 0! #35855500 1! #35855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35856000 0! #35856500 1! #35856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35857000 0! #35857500 1! #35857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35858000 0! #35858500 1! #35858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35859000 0! #35859500 1! #35859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35860000 0! #35860500 1! #35860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35861000 0! #35861500 1! #35861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35862000 0! #35862500 1! #35862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35863000 0! #35863500 1! #35863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35864000 0! #35864500 1! #35864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35865000 0! #35865500 1! #35865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35866000 0! #35866500 1! #35866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35867000 0! #35867500 1! #35867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35868000 0! #35868500 1! #35868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35869000 0! #35869500 1! #35869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35870000 0! #35870500 1! #35870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35871000 0! #35871500 1! #35871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35872000 0! #35872500 1! #35872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35873000 0! #35873500 1! #35873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35874000 0! #35874500 1! #35874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35875000 0! #35875500 1! #35875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35876000 0! #35876500 1! #35876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35877000 0! #35877500 1! #35877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35878000 0! #35878500 1! #35878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35879000 0! #35879500 1! #35879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35880000 0! #35880500 1! #35880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35881000 0! #35881500 1! #35881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35882000 0! #35882500 1! #35882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35883000 0! #35883500 1! #35883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35884000 0! #35884500 1! #35884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35885000 0! #35885500 1! #35885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35886000 0! #35886500 1! #35886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35887000 0! #35887500 1! #35887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35888000 0! #35888500 1! #35888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35889000 0! #35889500 1! #35889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35890000 0! #35890500 1! #35890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35891000 0! #35891500 1! #35891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35892000 0! #35892500 1! #35892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35893000 0! #35893500 1! #35893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35894000 0! #35894500 1! #35894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35895000 0! #35895500 1! #35895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35896000 0! #35896500 1! #35896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35897000 0! #35897500 1! #35897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35898000 0! #35898500 1! #35898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35899000 0! #35899500 1! #35899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35900000 0! #35900500 1! #35900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35901000 0! #35901500 1! #35901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35902000 0! #35902500 1! #35902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35903000 0! #35903500 1! #35903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35904000 0! #35904500 1! #35904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35905000 0! #35905500 1! #35905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35906000 0! #35906500 1! #35906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35907000 0! #35907500 1! #35907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35908000 0! #35908500 1! #35908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35909000 0! #35909500 1! #35909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35910000 0! #35910500 1! #35910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35911000 0! #35911500 1! #35911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35912000 0! #35912500 1! #35912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35913000 0! #35913500 1! #35913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35914000 0! #35914500 1! #35914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35915000 0! #35915500 1! #35915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35916000 0! #35916500 1! #35916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35917000 0! #35917500 1! #35917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35918000 0! #35918500 1! #35918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35919000 0! #35919500 1! #35919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35920000 0! #35920500 1! #35920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35921000 0! #35921500 1! #35921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35922000 0! #35922500 1! #35922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35923000 0! #35923500 1! #35923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35924000 0! #35924500 1! #35924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35925000 0! #35925500 1! #35925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35926000 0! #35926500 1! #35926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35927000 0! #35927500 1! #35927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35928000 0! #35928500 1! #35928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35929000 0! #35929500 1! #35929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35930000 0! #35930500 1! #35930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35931000 0! #35931500 1! #35931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35932000 0! #35932500 1! #35932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #35932700 b111 g bx1 c 0h #35933000 0! #35933500 1! #35933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35934000 0! #35934500 1! #35934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35935000 0! #35935500 1! #35935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35936000 0! #35936500 1! #35936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35937000 0! #35937500 1! #35937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35938000 0! #35938500 1! #35938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35939000 0! #35939500 1! #35939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35940000 0! #35940500 1! #35940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35941000 0! #35941500 1! #35941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35942000 0! #35942500 1! #35942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35943000 0! #35943500 1! #35943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35944000 0! #35944500 1! #35944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35945000 0! #35945500 1! #35945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35946000 0! #35946500 1! #35946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35947000 0! #35947500 1! #35947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35948000 0! #35948500 1! #35948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35949000 0! #35949500 1! #35949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35950000 0! #35950500 1! #35950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35951000 0! #35951500 1! #35951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35952000 0! #35952500 1! #35952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35953000 0! #35953500 1! #35953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35954000 0! #35954500 1! #35954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35955000 0! #35955500 1! #35955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35956000 0! #35956500 1! #35956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35957000 0! #35957500 1! #35957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35958000 0! #35958500 1! #35958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35959000 0! #35959500 1! #35959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35960000 0! #35960500 1! #35960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35961000 0! #35961500 1! #35961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35962000 0! #35962500 1! #35962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35963000 0! #35963500 1! #35963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35964000 0! #35964500 1! #35964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35965000 0! #35965500 1! #35965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35966000 0! #35966500 1! #35966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35967000 0! #35967500 1! #35967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35968000 0! #35968500 1! #35968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35969000 0! #35969500 1! #35969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35970000 0! #35970500 1! #35970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35971000 0! #35971500 1! #35971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35972000 0! #35972500 1! #35972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35973000 0! #35973500 1! #35973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35974000 0! #35974500 1! #35974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35975000 0! #35975500 1! #35975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35976000 0! #35976500 1! #35976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35977000 0! #35977500 1! #35977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35978000 0! #35978500 1! #35978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35979000 0! #35979500 1! #35979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35980000 0! #35980500 1! #35980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35981000 0! #35981500 1! #35981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35982000 0! #35982500 1! #35982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35983000 0! #35983500 1! #35983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35984000 0! #35984500 1! #35984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35985000 0! #35985500 1! #35985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35986000 0! #35986500 1! #35986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35987000 0! #35987500 1! #35987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35988000 0! #35988500 1! #35988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35989000 0! #35989500 1! #35989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35990000 0! #35990500 1! #35990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35991000 0! #35991500 1! #35991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35992000 0! #35992500 1! #35992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35993000 0! #35993500 1! #35993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35994000 0! #35994500 1! #35994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35995000 0! #35995500 1! #35995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35996000 0! #35996500 1! #35996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35997000 0! #35997500 1! #35997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #35998000 0! #35998500 1! #35998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #35999000 0! #35999500 1! #35999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36000000 0! #36000500 1! #36000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36001000 0! #36001500 1! #36001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36002000 0! #36002500 1! #36002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36003000 0! #36003500 1! #36003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36004000 0! #36004500 1! #36004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36005000 0! #36005500 1! #36005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36006000 0! #36006500 1! #36006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36007000 0! #36007500 1! #36007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36008000 0! #36008500 1! #36008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36009000 0! #36009500 1! #36009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36010000 0! #36010500 1! #36010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36011000 0! #36011500 1! #36011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36012000 0! #36012500 1! #36012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36013000 0! #36013500 1! #36013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36014000 0! #36014500 1! #36014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36015000 0! #36015500 1! #36015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36016000 0! #36016500 1! #36016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36017000 0! #36017500 1! #36017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36018000 0! #36018500 1! #36018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36019000 0! #36019500 1! #36019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36020000 0! #36020500 1! #36020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36021000 0! #36021500 1! #36021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36022000 0! #36022500 1! #36022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36023000 0! #36023500 1! #36023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36024000 0! #36024500 1! #36024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36025000 0! #36025500 1! #36025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36026000 0! #36026500 1! #36026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36027000 0! #36027500 1! #36027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36028000 0! #36028500 1! #36028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36029000 0! #36029500 1! #36029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36030000 0! #36030500 1! #36030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36031000 0! #36031500 1! #36031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36032000 0! #36032500 1! #36032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36033000 0! #36033500 1! #36033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36034000 0! #36034500 1! #36034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #36034700 1i b0 q #36035000 0! #36035500 1! #36035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36036000 0! #36036500 1! #36036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36037000 0! #36037500 1! #36037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H bx000001 C #36038000 0! #36038500 1! #36038600 bx000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36039000 0! #36039500 1! #36039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B bx C 1H #36040000 0! #36040500 1! #36040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36041000 0! #36041500 1! #36041600 1E 1F 1G b10100000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B 1H #36042000 0! #36042500 1! #36042600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36042700 1E 1F 1G b10010000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B bx000001 C 1H #36043000 0! #36043500 1! #36043600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36044000 0! #36044500 1! #36044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H bx000011 C #36045000 0! #36045500 1! #36045600 bx000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36046000 0! #36046500 1! #36046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36047000 0! #36047500 1! #36047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36048000 0! #36048500 1! #36048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36049000 0! #36049500 1! #36049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36050000 0! #36050500 1! #36050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36051000 0! #36051500 1! #36051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36052000 0! #36052500 1! #36052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36053000 0! #36053500 1! #36053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36054000 0! #36054500 1! #36054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36055000 0! #36055500 1! #36055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36056000 0! #36056500 1! #36056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36057000 0! #36057500 1! #36057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36058000 0! #36058500 1! #36058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36059000 0! #36059500 1! #36059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36060000 0! #36060500 1! #36060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36061000 0! #36061500 1! #36061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36062000 0! #36062500 1! #36062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36063000 0! #36063500 1! #36063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36064000 0! #36064500 1! #36064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36065000 0! #36065500 1! #36065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36066000 0! #36066500 1! #36066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36067000 0! #36067500 1! #36067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36068000 0! #36068500 1! #36068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36069000 0! #36069500 1! #36069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36070000 0! #36070500 1! #36070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36071000 0! #36071500 1! #36071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36072000 0! #36072500 1! #36072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36073000 0! #36073500 1! #36073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36074000 0! #36074500 1! #36074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36075000 0! #36075500 1! #36075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36076000 0! #36076500 1! #36076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36077000 0! #36077500 1! #36077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36078000 0! #36078500 1! #36078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36079000 0! #36079500 1! #36079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36080000 0! #36080500 1! #36080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36081000 0! #36081500 1! #36081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36082000 0! #36082500 1! #36082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36083000 0! #36083500 1! #36083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36084000 0! #36084500 1! #36084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36085000 0! #36085500 1! #36085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36086000 0! #36086500 1! #36086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36087000 0! #36087500 1! #36087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36088000 0! #36088500 1! #36088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36089000 0! #36089500 1! #36089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36090000 0! #36090500 1! #36090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36091000 0! #36091500 1! #36091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36092000 0! #36092500 1! #36092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36093000 0! #36093500 1! #36093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36094000 0! #36094500 1! #36094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36095000 0! #36095500 1! #36095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36096000 0! #36096500 1! #36096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36097000 0! #36097500 1! #36097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36098000 0! #36098500 1! #36098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36099000 0! #36099500 1! #36099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36100000 0! #36100500 1! #36100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36101000 0! #36101500 1! #36101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36102000 0! #36102500 1! #36102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36103000 0! #36103500 1! #36103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36104000 0! #36104500 1! #36104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36105000 0! #36105500 1! #36105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36106000 0! #36106500 1! #36106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36107000 0! #36107500 1! #36107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36108000 0! #36108500 1! #36108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36109000 0! #36109500 1! #36109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36110000 0! #36110500 1! #36110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36111000 0! #36111500 1! #36111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36112000 0! #36112500 1! #36112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36113000 0! #36113500 1! #36113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36114000 0! #36114500 1! #36114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36115000 0! #36115500 1! #36115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36116000 0! #36116500 1! #36116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36117000 0! #36117500 1! #36117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36118000 0! #36118500 1! #36118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36119000 0! #36119500 1! #36119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36120000 0! #36120500 1! #36120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36121000 0! #36121500 1! #36121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36122000 0! #36122500 1! #36122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36123000 0! #36123500 1! #36123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36124000 0! #36124500 1! #36124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36125000 0! #36125500 1! #36125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36126000 0! #36126500 1! #36126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36127000 0! #36127500 1! #36127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36128000 0! #36128500 1! #36128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36129000 0! #36129500 1! #36129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36130000 0! #36130500 1! #36130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36131000 0! #36131500 1! #36131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36132000 0! #36132500 1! #36132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36133000 0! #36133500 1! #36133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36134000 0! #36134500 1! #36134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36135000 0! #36135500 1! #36135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36136000 0! #36136500 1! #36136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36137000 0! #36137500 1! #36137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36138000 0! #36138500 1! #36138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36139000 0! #36139500 1! #36139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36140000 0! #36140500 1! #36140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36141000 0! #36141500 1! #36141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36142000 0! #36142500 1! #36142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36143000 0! #36143500 1! #36143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36144000 0! #36144500 1! #36144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36145000 0! #36145500 1! #36145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36146000 0! #36146500 1! #36146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36147000 0! #36147500 1! #36147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36148000 0! #36148500 1! #36148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36149000 0! #36149500 1! #36149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36150000 0! #36150500 1! #36150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36151000 0! #36151500 1! #36151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36152000 0! #36152500 1! #36152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36153000 0! #36153500 1! #36153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36154000 0! #36154500 1! #36154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36155000 0! #36155500 1! #36155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36156000 0! #36156500 1! #36156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36157000 0! #36157500 1! #36157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36158000 0! #36158500 1! #36158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36159000 0! #36159500 1! #36159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36160000 0! #36160500 1! #36160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36161000 0! #36161500 1! #36161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36162000 0! #36162500 1! #36162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36163000 0! #36163500 1! #36163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36164000 0! #36164500 1! #36164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36165000 0! #36165500 1! #36165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36166000 0! #36166500 1! #36166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36167000 0! #36167500 1! #36167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36168000 0! #36168500 1! #36168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36169000 0! #36169500 1! #36169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36170000 0! #36170500 1! #36170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36171000 0! #36171500 1! #36171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36172000 0! #36172500 1! #36172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36173000 0! #36173500 1! #36173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36174000 0! #36174500 1! #36174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36175000 0! #36175500 1! #36175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36176000 0! #36176500 1! #36176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36177000 0! #36177500 1! #36177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36178000 0! #36178500 1! #36178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36179000 0! #36179500 1! #36179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36180000 0! #36180500 1! #36180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36181000 0! #36181500 1! #36181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36182000 0! #36182500 1! #36182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36183000 0! #36183500 1! #36183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36184000 0! #36184500 1! #36184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36185000 0! #36185500 1! #36185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36186000 0! #36186500 1! #36186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36187000 0! #36187500 1! #36187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #36187700 bx1 ^ bx11 c 0e #36188000 0! #36188500 1! #36188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36189000 0! #36189500 1! #36189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36190000 0! #36190500 1! #36190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36191000 0! #36191500 1! #36191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36192000 0! #36192500 1! #36192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36193000 0! #36193500 1! #36193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36194000 0! #36194500 1! #36194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36195000 0! #36195500 1! #36195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36196000 0! #36196500 1! #36196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36197000 0! #36197500 1! #36197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36198000 0! #36198500 1! #36198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36199000 0! #36199500 1! #36199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36200000 0! #36200500 1! #36200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36201000 0! #36201500 1! #36201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36202000 0! #36202500 1! #36202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36203000 0! #36203500 1! #36203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36204000 0! #36204500 1! #36204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36205000 0! #36205500 1! #36205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36206000 0! #36206500 1! #36206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36207000 0! #36207500 1! #36207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36208000 0! #36208500 1! #36208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36209000 0! #36209500 1! #36209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36210000 0! #36210500 1! #36210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36211000 0! #36211500 1! #36211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36212000 0! #36212500 1! #36212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36213000 0! #36213500 1! #36213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36214000 0! #36214500 1! #36214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36215000 0! #36215500 1! #36215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36216000 0! #36216500 1! #36216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36217000 0! #36217500 1! #36217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36218000 0! #36218500 1! #36218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36219000 0! #36219500 1! #36219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36220000 0! #36220500 1! #36220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36221000 0! #36221500 1! #36221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36222000 0! #36222500 1! #36222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36223000 0! #36223500 1! #36223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36224000 0! #36224500 1! #36224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36225000 0! #36225500 1! #36225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36226000 0! #36226500 1! #36226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36227000 0! #36227500 1! #36227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36228000 0! #36228500 1! #36228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36229000 0! #36229500 1! #36229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36230000 0! #36230500 1! #36230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36231000 0! #36231500 1! #36231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36232000 0! #36232500 1! #36232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36233000 0! #36233500 1! #36233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36234000 0! #36234500 1! #36234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36235000 0! #36235500 1! #36235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36236000 0! #36236500 1! #36236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36237000 0! #36237500 1! #36237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36238000 0! #36238500 1! #36238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #36238700 1_ 1f #36239000 0! #36239500 1! #36239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36240000 0! #36240500 1! #36240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36241000 0! #36241500 1! bx1000011 C #36241600 bx1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36242000 0! #36242500 1! #36242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36243000 0! #36243500 1! #36243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36244000 0! #36244500 1! #36244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36245000 0! #36245500 1! #36245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36246000 0! #36246500 1! #36246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36247000 0! #36247500 1! #36247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36248000 0! #36248500 1! #36248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36249000 0! #36249500 1! #36249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36250000 0! #36250500 1! #36250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36251000 0! #36251500 1! #36251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36252000 0! #36252500 1! #36252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36253000 0! #36253500 1! #36253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36254000 0! #36254500 1! #36254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36255000 0! #36255500 1! #36255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36256000 0! #36256500 1! #36256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36257000 0! #36257500 1! #36257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36258000 0! #36258500 1! #36258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36259000 0! #36259500 1! #36259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36260000 0! #36260500 1! #36260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36261000 0! #36261500 1! #36261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36262000 0! #36262500 1! #36262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36263000 0! #36263500 1! #36263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36264000 0! #36264500 1! #36264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36265000 0! #36265500 1! #36265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36266000 0! #36266500 1! #36266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36267000 0! #36267500 1! #36267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36268000 0! #36268500 1! #36268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36269000 0! #36269500 1! #36269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36270000 0! #36270500 1! #36270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36271000 0! #36271500 1! #36271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36272000 0! #36272500 1! #36272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36273000 0! #36273500 1! #36273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36274000 0! #36274500 1! #36274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36275000 0! #36275500 1! #36275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36276000 0! #36276500 1! #36276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36277000 0! #36277500 1! #36277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36278000 0! #36278500 1! #36278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36279000 0! #36279500 1! #36279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36280000 0! #36280500 1! #36280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36281000 0! #36281500 1! #36281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36282000 0! #36282500 1! #36282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36283000 0! #36283500 1! #36283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36284000 0! #36284500 1! #36284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36285000 0! #36285500 1! #36285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36286000 0! #36286500 1! #36286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36287000 0! #36287500 1! #36287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36288000 0! #36288500 1! #36288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36289000 0! #36289500 1! #36289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #36290000 0! #36290500 1! #36290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36291000 0! #36291500 1! #36291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36292000 0! #36292500 1! #36292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36293000 0! #36293500 1! #36293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36294000 0! #36294500 1! #36294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36295000 0! #36295500 1! #36295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36296000 0! #36296500 1! #36296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36297000 0! #36297500 1! #36297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36298000 0! #36298500 1! #36298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36299000 0! #36299500 1! #36299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36300000 0! #36300500 1! #36300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36301000 0! #36301500 1! #36301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36302000 0! #36302500 1! #36302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36303000 0! #36303500 1! #36303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36304000 0! #36304500 1! #36304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36305000 0! #36305500 1! #36305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36306000 0! #36306500 1! #36306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36307000 0! #36307500 1! #36307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36308000 0! #36308500 1! #36308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36309000 0! #36309500 1! #36309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36310000 0! #36310500 1! #36310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36311000 0! #36311500 1! #36311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36312000 0! #36312500 1! #36312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36313000 0! #36313500 1! #36313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36314000 0! #36314500 1! #36314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36315000 0! #36315500 1! #36315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36316000 0! #36316500 1! #36316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36317000 0! #36317500 1! #36317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36318000 0! #36318500 1! #36318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36319000 0! #36319500 1! #36319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36320000 0! #36320500 1! #36320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36321000 0! #36321500 1! #36321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36322000 0! #36322500 1! #36322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36323000 0! #36323500 1! #36323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36324000 0! #36324500 1! #36324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36325000 0! #36325500 1! #36325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36326000 0! #36326500 1! #36326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36327000 0! #36327500 1! #36327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36328000 0! #36328500 1! #36328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36329000 0! #36329500 1! #36329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36330000 0! #36330500 1! #36330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36331000 0! #36331500 1! #36331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36332000 0! #36332500 1! #36332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36333000 0! #36333500 1! #36333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36334000 0! #36334500 1! #36334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36335000 0! #36335500 1! #36335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36336000 0! #36336500 1! #36336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36337000 0! #36337500 1! #36337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36338000 0! #36338500 1! #36338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36339000 0! #36339500 1! #36339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36340000 0! #36340500 1! #36340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36341000 0! #36341500 1! #36341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36342000 0! #36342500 1! #36342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36343000 0! #36343500 1! #36343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36344000 0! #36344500 1! #36344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36345000 0! #36345500 1! #36345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36346000 0! #36346500 1! #36346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36347000 0! #36347500 1! #36347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36348000 0! #36348500 1! #36348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36349000 0! #36349500 1! #36349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36350000 0! #36350500 1! #36350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36351000 0! #36351500 1! #36351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36352000 0! #36352500 1! #36352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36353000 0! #36353500 1! #36353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36354000 0! #36354500 1! #36354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36355000 0! #36355500 1! #36355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36356000 0! #36356500 1! #36356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36357000 0! #36357500 1! #36357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36358000 0! #36358500 1! #36358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36359000 0! #36359500 1! #36359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36360000 0! #36360500 1! #36360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36361000 0! #36361500 1! #36361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36362000 0! #36362500 1! #36362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36363000 0! #36363500 1! #36363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36364000 0! #36364500 1! #36364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36365000 0! #36365500 1! #36365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36366000 0! #36366500 1! #36366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36367000 0! #36367500 1! #36367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36368000 0! #36368500 1! #36368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36369000 0! #36369500 1! #36369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36370000 0! #36370500 1! #36370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36371000 0! #36371500 1! #36371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36372000 0! #36372500 1! #36372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36373000 0! #36373500 1! #36373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36374000 0! #36374500 1! #36374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36375000 0! #36375500 1! #36375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36376000 0! #36376500 1! #36376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36377000 0! #36377500 1! #36377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36378000 0! #36378500 1! #36378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36379000 0! #36379500 1! #36379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36380000 0! #36380500 1! #36380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36381000 0! #36381500 1! #36381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36382000 0! #36382500 1! #36382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36383000 0! #36383500 1! #36383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36384000 0! #36384500 1! #36384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36385000 0! #36385500 1! #36385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36386000 0! #36386500 1! #36386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36387000 0! #36387500 1! #36387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36388000 0! #36388500 1! #36388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36389000 0! #36389500 1! #36389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36390000 0! #36390500 1! #36390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36391000 0! #36391500 1! #36391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #36392000 0! #36392500 1! #36392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36393000 0! #36393500 1! #36393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36394000 0! #36394500 1! #36394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36395000 0! #36395500 1! #36395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36396000 0! #36396500 1! #36396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36397000 0! #36397500 1! #36397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36398000 0! #36398500 1! #36398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36399000 0! #36399500 1! #36399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36400000 0! #36400500 1! #36400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36401000 0! #36401500 1! #36401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36402000 0! #36402500 1! #36402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36403000 0! #36403500 1! #36403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36404000 0! #36404500 1! #36404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36405000 0! #36405500 1! #36405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36406000 0! #36406500 1! #36406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36407000 0! #36407500 1! #36407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36408000 0! #36408500 1! #36408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36409000 0! #36409500 1! #36409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36410000 0! #36410500 1! #36410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36411000 0! #36411500 1! #36411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36412000 0! #36412500 1! #36412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36413000 0! #36413500 1! #36413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36414000 0! #36414500 1! #36414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36415000 0! #36415500 1! #36415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36416000 0! #36416500 1! #36416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36417000 0! #36417500 1! #36417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36418000 0! #36418500 1! #36418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36419000 0! #36419500 1! #36419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36420000 0! #36420500 1! #36420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36421000 0! #36421500 1! #36421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36422000 0! #36422500 1! #36422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36423000 0! #36423500 1! #36423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36424000 0! #36424500 1! #36424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36425000 0! #36425500 1! #36425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36426000 0! #36426500 1! #36426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36427000 0! #36427500 1! #36427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36428000 0! #36428500 1! #36428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36429000 0! #36429500 1! #36429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36430000 0! #36430500 1! #36430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36431000 0! #36431500 1! #36431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36432000 0! #36432500 1! #36432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36433000 0! #36433500 1! #36433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36434000 0! #36434500 1! #36434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36435000 0! #36435500 1! #36435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36436000 0! #36436500 1! #36436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36437000 0! #36437500 1! #36437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36438000 0! #36438500 1! #36438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36439000 0! #36439500 1! #36439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36440000 0! #36440500 1! #36440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36441000 0! #36441500 1! #36441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36442000 0! #36442500 1! #36442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #36442700 bx11 ^ 1` bx111 c #36443000 0! #36443500 1! #36443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36444000 0! #36444500 1! #36444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36445000 0! #36445500 1! #36445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36446000 0! #36446500 1! #36446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36447000 0! #36447500 1! #36447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36448000 0! #36448500 1! #36448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36449000 0! #36449500 1! #36449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36450000 0! #36450500 1! #36450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36451000 0! #36451500 1! #36451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36452000 0! #36452500 1! #36452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36453000 0! #36453500 1! #36453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36454000 0! #36454500 1! #36454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36455000 0! #36455500 1! #36455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36456000 0! #36456500 1! #36456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36457000 0! #36457500 1! #36457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36458000 0! #36458500 1! #36458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36459000 0! #36459500 1! #36459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36460000 0! #36460500 1! #36460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36461000 0! #36461500 1! #36461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36462000 0! #36462500 1! #36462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36463000 0! #36463500 1! #36463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36464000 0! #36464500 1! #36464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36465000 0! #36465500 1! #36465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36466000 0! #36466500 1! #36466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36467000 0! #36467500 1! #36467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36468000 0! #36468500 1! #36468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36469000 0! #36469500 1! #36469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36470000 0! #36470500 1! #36470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36471000 0! #36471500 1! #36471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36472000 0! #36472500 1! #36472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36473000 0! #36473500 1! #36473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36474000 0! #36474500 1! #36474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36475000 0! #36475500 1! #36475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36476000 0! #36476500 1! #36476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36477000 0! #36477500 1! #36477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36478000 0! #36478500 1! #36478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36479000 0! #36479500 1! #36479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36480000 0! #36480500 1! #36480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36481000 0! #36481500 1! #36481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36482000 0! #36482500 1! #36482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36483000 0! #36483500 1! #36483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36484000 0! #36484500 1! #36484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36485000 0! #36485500 1! #36485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36486000 0! #36486500 1! #36486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36487000 0! #36487500 1! #36487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36488000 0! #36488500 1! #36488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36489000 0! #36489500 1! #36489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36490000 0! #36490500 1! #36490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36491000 0! #36491500 1! #36491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36492000 0! #36492500 1! #36492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36493000 0! #36493500 1! #36493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36494000 0! #36494500 1! #36494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36495000 0! #36495500 1! #36495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36496000 0! #36496500 1! #36496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36497000 0! #36497500 1! #36497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36498000 0! #36498500 1! #36498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36499000 0! #36499500 1! #36499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36500000 0! #36500500 1! #36500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36501000 0! #36501500 1! #36501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36502000 0! #36502500 1! #36502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36503000 0! #36503500 1! #36503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36504000 0! #36504500 1! #36504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36505000 0! #36505500 1! #36505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36506000 0! #36506500 1! #36506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36507000 0! #36507500 1! #36507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36508000 0! #36508500 1! #36508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36509000 0! #36509500 1! #36509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36510000 0! #36510500 1! #36510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36511000 0! #36511500 1! #36511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36512000 0! #36512500 1! #36512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36513000 0! #36513500 1! #36513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36514000 0! #36514500 1! #36514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36515000 0! #36515500 1! #36515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36516000 0! #36516500 1! #36516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36517000 0! #36517500 1! #36517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36518000 0! #36518500 1! #36518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36519000 0! #36519500 1! #36519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36520000 0! #36520500 1! #36520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36521000 0! #36521500 1! #36521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36522000 0! #36522500 1! #36522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36523000 0! #36523500 1! #36523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36524000 0! #36524500 1! #36524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36525000 0! #36525500 1! #36525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36526000 0! #36526500 1! #36526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36527000 0! #36527500 1! #36527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36528000 0! #36528500 1! #36528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36529000 0! #36529500 1! #36529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36530000 0! #36530500 1! #36530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36531000 0! #36531500 1! #36531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36532000 0! #36532500 1! #36532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36533000 0! #36533500 1! #36533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36534000 0! #36534500 1! #36534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36535000 0! #36535500 1! #36535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36536000 0! #36536500 1! #36536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36537000 0! #36537500 1! #36537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36538000 0! #36538500 1! #36538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36539000 0! #36539500 1! #36539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36540000 0! #36540500 1! #36540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36541000 0! #36541500 1! #36541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36542000 0! #36542500 1! #36542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36543000 0! #36543500 1! #36543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36544000 0! #36544500 1! #36544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #36544700 0i #36545000 0! #36545500 1! #36545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36546000 0! #36546500 1! #36546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36547000 0! #36547500 1! #36547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36548000 0! #36548500 1! #36548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36549000 0! #36549500 1! #36549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36550000 0! #36550500 1! #36550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36551000 0! #36551500 1! #36551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36552000 0! #36552500 1! #36552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36553000 0! #36553500 1! #36553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36554000 0! #36554500 1! #36554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36555000 0! #36555500 1! #36555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36556000 0! #36556500 1! #36556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36557000 0! #36557500 1! #36557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36558000 0! #36558500 1! #36558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36559000 0! #36559500 1! #36559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36560000 0! #36560500 1! #36560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36561000 0! #36561500 1! #36561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36562000 0! #36562500 1! #36562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36563000 0! #36563500 1! #36563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36564000 0! #36564500 1! #36564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36565000 0! #36565500 1! #36565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36566000 0! #36566500 1! #36566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36567000 0! #36567500 1! #36567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36568000 0! #36568500 1! #36568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36569000 0! #36569500 1! #36569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36570000 0! #36570500 1! #36570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36571000 0! #36571500 1! #36571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36572000 0! #36572500 1! #36572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36573000 0! #36573500 1! #36573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36574000 0! #36574500 1! #36574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36575000 0! #36575500 1! #36575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36576000 0! #36576500 1! #36576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36577000 0! #36577500 1! #36577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36578000 0! #36578500 1! #36578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36579000 0! #36579500 1! #36579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36580000 0! #36580500 1! #36580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36581000 0! #36581500 1! #36581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36582000 0! #36582500 1! #36582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36583000 0! #36583500 1! #36583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36584000 0! #36584500 1! #36584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36585000 0! #36585500 1! #36585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36586000 0! #36586500 1! #36586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36587000 0! #36587500 1! #36587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36588000 0! #36588500 1! #36588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36589000 0! #36589500 1! #36589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36590000 0! #36590500 1! #36590600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36591000 0! #36591500 1! #36591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36592000 0! #36592500 1! #36592600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36593000 0! #36593500 1! #36593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36594000 0! #36594500 1! #36594600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36595000 0! #36595500 1! #36595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36596000 0! #36596500 1! #36596600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36597000 0! #36597500 1! #36597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36598000 0! #36598500 1! #36598600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36599000 0! #36599500 1! #36599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36600000 0! #36600500 1! #36600600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36601000 0! #36601500 1! #36601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36602000 0! #36602500 1! #36602600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36603000 0! #36603500 1! #36603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36604000 0! #36604500 1! #36604600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36605000 0! #36605500 1! #36605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36606000 0! #36606500 1! #36606600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36607000 0! #36607500 1! #36607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36608000 0! #36608500 1! #36608600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36609000 0! #36609500 1! #36609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36610000 0! #36610500 1! #36610600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36611000 0! #36611500 1! #36611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36612000 0! #36612500 1! #36612600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36613000 0! #36613500 1! #36613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36614000 0! #36614500 1! #36614600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36615000 0! #36615500 1! #36615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36616000 0! #36616500 1! #36616600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36617000 0! #36617500 1! #36617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36618000 0! #36618500 1! #36618600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36619000 0! #36619500 1! #36619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36620000 0! #36620500 1! #36620600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36621000 0! #36621500 1! #36621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36622000 0! #36622500 1! #36622600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36623000 0! #36623500 1! #36623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36624000 0! #36624500 1! #36624600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36625000 0! #36625500 1! #36625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36626000 0! #36626500 1! #36626600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36627000 0! #36627500 1! #36627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36628000 0! #36628500 1! #36628600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36629000 0! #36629500 1! #36629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36630000 0! #36630500 1! #36630600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36631000 0! #36631500 1! #36631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36632000 0! #36632500 1! #36632600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36633000 0! #36633500 1! #36633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36634000 0! #36634500 1! #36634600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36635000 0! #36635500 1! #36635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36636000 0! #36636500 1! #36636600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36637000 0! #36637500 1! #36637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36638000 0! #36638500 1! #36638600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36639000 0! #36639500 1! #36639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36640000 0! #36640500 1! #36640600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36641000 0! #36641500 1! #36641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36642000 0! #36642500 1! #36642600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36643000 0! #36643500 1! #36643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36644000 0! #36644500 1! #36644600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36645000 0! #36645500 1! #36645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36646000 0! #36646500 1! #36646600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #36646700 0_ 0f #36647000 0! #36647500 1! #36647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36648000 0! #36648500 1! #36648600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36649000 0! #36649500 1! #36649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36650000 0! #36650500 1! #36650600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36651000 0! #36651500 1! #36651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36652000 0! #36652500 1! #36652600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36653000 0! #36653500 1! #36653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36654000 0! #36654500 1! #36654600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36655000 0! #36655500 1! #36655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36656000 0! #36656500 1! #36656600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36657000 0! #36657500 1! #36657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36658000 0! #36658500 1! #36658600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36659000 0! #36659500 1! #36659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36660000 0! #36660500 1! #36660600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36661000 0! #36661500 1! #36661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36662000 0! #36662500 1! #36662600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36663000 0! #36663500 1! #36663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36664000 0! #36664500 1! #36664600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36665000 0! #36665500 1! #36665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36666000 0! #36666500 1! #36666600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36667000 0! #36667500 1! #36667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36668000 0! #36668500 1! #36668600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36669000 0! #36669500 1! #36669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36670000 0! #36670500 1! #36670600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36671000 0! #36671500 1! #36671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36672000 0! #36672500 1! #36672600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36673000 0! #36673500 1! #36673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36674000 0! #36674500 1! #36674600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36675000 0! #36675500 1! #36675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36676000 0! #36676500 1! #36676600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36677000 0! #36677500 1! #36677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36678000 0! #36678500 1! #36678600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36679000 0! #36679500 1! #36679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36680000 0! #36680500 1! #36680600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36681000 0! #36681500 1! #36681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36682000 0! #36682500 1! #36682600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36683000 0! #36683500 1! #36683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36684000 0! #36684500 1! #36684600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36685000 0! #36685500 1! #36685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36686000 0! #36686500 1! #36686600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36687000 0! #36687500 1! #36687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36688000 0! #36688500 1! #36688600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36689000 0! #36689500 1! #36689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36690000 0! #36690500 1! #36690600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36691000 0! #36691500 1! #36691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36692000 0! #36692500 1! #36692600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36693000 0! #36693500 1! #36693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36694000 0! #36694500 1! #36694600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36695000 0! #36695500 1! #36695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36696000 0! #36696500 1! #36696600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36697000 0! #36697500 1! #36697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #36697700 bx111 ^ 0` b110 g bx1110 c #36698000 0! #36698500 1! #36698600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36699000 0! #36699500 1! #36699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36700000 0! #36700500 1! #36700600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36701000 0! #36701500 1! #36701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36702000 0! #36702500 1! #36702600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36703000 0! #36703500 1! #36703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36704000 0! #36704500 1! #36704600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36705000 0! #36705500 1! #36705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36706000 0! #36706500 1! #36706600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36707000 0! #36707500 1! #36707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36708000 0! #36708500 1! #36708600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36709000 0! #36709500 1! #36709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36710000 0! #36710500 1! #36710600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36711000 0! #36711500 1! #36711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36712000 0! #36712500 1! #36712600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36713000 0! #36713500 1! #36713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36714000 0! #36714500 1! #36714600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36715000 0! #36715500 1! #36715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36716000 0! #36716500 1! #36716600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36717000 0! #36717500 1! #36717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36718000 0! #36718500 1! #36718600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36719000 0! #36719500 1! #36719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36720000 0! #36720500 1! #36720600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36721000 0! #36721500 1! #36721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36722000 0! #36722500 1! #36722600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36723000 0! #36723500 1! #36723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36724000 0! #36724500 1! #36724600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36725000 0! #36725500 1! #36725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36726000 0! #36726500 1! #36726600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36727000 0! #36727500 1! #36727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36728000 0! #36728500 1! #36728600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36729000 0! #36729500 1! #36729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36730000 0! #36730500 1! #36730600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36731000 0! #36731500 1! #36731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36732000 0! #36732500 1! #36732600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36733000 0! #36733500 1! #36733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36734000 0! #36734500 1! #36734600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36735000 0! #36735500 1! #36735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36736000 0! #36736500 1! #36736600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36737000 0! #36737500 1! #36737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36738000 0! #36738500 1! #36738600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36739000 0! #36739500 1! #36739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36740000 0! #36740500 1! #36740600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36741000 0! #36741500 1! #36741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36742000 0! #36742500 1! #36742600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36743000 0! #36743500 1! #36743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36744000 0! #36744500 1! #36744600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36745000 0! #36745500 1! #36745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36746000 0! #36746500 1! #36746600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36747000 0! #36747500 1! #36747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36748000 0! #36748500 1! #36748600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36749000 0! #36749500 1! #36749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36750000 0! #36750500 1! #36750600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36751000 0! #36751500 1! #36751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36752000 0! #36752500 1! #36752600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36753000 0! #36753500 1! #36753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36754000 0! #36754500 1! #36754600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36755000 0! #36755500 1! #36755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36756000 0! #36756500 1! #36756600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36757000 0! #36757500 1! #36757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36758000 0! #36758500 1! #36758600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36759000 0! #36759500 1! #36759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36760000 0! #36760500 1! #36760600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36761000 0! #36761500 1! #36761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36762000 0! #36762500 1! #36762600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36763000 0! #36763500 1! #36763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36764000 0! #36764500 1! #36764600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36765000 0! #36765500 1! #36765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36766000 0! #36766500 1! #36766600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36767000 0! #36767500 1! #36767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36768000 0! #36768500 1! #36768600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36769000 0! #36769500 1! #36769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36770000 0! #36770500 1! #36770600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36771000 0! #36771500 1! #36771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36772000 0! #36772500 1! #36772600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36773000 0! #36773500 1! #36773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36774000 0! #36774500 1! #36774600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36775000 0! #36775500 1! #36775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36776000 0! #36776500 1! #36776600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36777000 0! #36777500 1! #36777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36778000 0! #36778500 1! #36778600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36779000 0! #36779500 1! #36779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36780000 0! #36780500 1! #36780600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36781000 0! #36781500 1! #36781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36782000 0! #36782500 1! #36782600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36783000 0! #36783500 1! #36783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36784000 0! #36784500 1! #36784600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36785000 0! #36785500 1! #36785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36786000 0! #36786500 1! #36786600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36787000 0! #36787500 1! #36787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36788000 0! #36788500 1! #36788600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36789000 0! #36789500 1! #36789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36790000 0! #36790500 1! #36790600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36791000 0! #36791500 1! #36791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36792000 0! #36792500 1! #36792600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36793000 0! #36793500 1! #36793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36794000 0! #36794500 1! #36794600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36795000 0! #36795500 1! #36795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36796000 0! #36796500 1! #36796600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36797000 0! #36797500 1! #36797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36798000 0! #36798500 1! #36798600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36799000 0! #36799500 1! #36799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #36800000 0! #36800500 1! #36800600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36801000 0! #36801500 1! #36801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36802000 0! #36802500 1! #36802600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36803000 0! #36803500 1! #36803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36804000 0! #36804500 1! #36804600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36805000 0! #36805500 1! #36805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36806000 0! #36806500 1! #36806600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36807000 0! #36807500 1! #36807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36808000 0! #36808500 1! #36808600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36809000 0! #36809500 1! #36809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36810000 0! #36810500 1! #36810600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36811000 0! #36811500 1! #36811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36812000 0! #36812500 1! #36812600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36813000 0! #36813500 1! #36813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36814000 0! #36814500 1! #36814600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36815000 0! #36815500 1! #36815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36816000 0! #36816500 1! #36816600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36817000 0! #36817500 1! #36817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36818000 0! #36818500 1! #36818600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36819000 0! #36819500 1! #36819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36820000 0! #36820500 1! #36820600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36821000 0! #36821500 1! #36821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36822000 0! #36822500 1! #36822600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36823000 0! #36823500 1! #36823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36824000 0! #36824500 1! #36824600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36825000 0! #36825500 1! #36825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36826000 0! #36826500 1! #36826600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36827000 0! #36827500 1! #36827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36828000 0! #36828500 1! #36828600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36829000 0! #36829500 1! #36829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36830000 0! #36830500 1! #36830600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36831000 0! #36831500 1! #36831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36832000 0! #36832500 1! #36832600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36833000 0! #36833500 1! #36833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36834000 0! #36834500 1! #36834600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36835000 0! #36835500 1! #36835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36836000 0! #36836500 1! #36836600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36837000 0! #36837500 1! #36837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36838000 0! #36838500 1! #36838600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36839000 0! #36839500 1! #36839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36840000 0! #36840500 1! #36840600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36841000 0! #36841500 1! #36841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36842000 0! #36842500 1! #36842600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36843000 0! #36843500 1! #36843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36844000 0! #36844500 1! #36844600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36845000 0! #36845500 1! #36845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36846000 0! #36846500 1! #36846600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36847000 0! #36847500 1! #36847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36848000 0! #36848500 1! #36848600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36849000 0! #36849500 1! #36849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36850000 0! #36850500 1! #36850600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36851000 0! #36851500 1! #36851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36852000 0! #36852500 1! #36852600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36853000 0! #36853500 1! #36853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36854000 0! #36854500 1! #36854600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36855000 0! #36855500 1! #36855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36856000 0! #36856500 1! #36856600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36857000 0! #36857500 1! #36857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36858000 0! #36858500 1! #36858600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36859000 0! #36859500 1! #36859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36860000 0! #36860500 1! #36860600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36861000 0! #36861500 1! #36861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36862000 0! #36862500 1! #36862600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36863000 0! #36863500 1! #36863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36864000 0! #36864500 1! #36864600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36865000 0! #36865500 1! #36865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36866000 0! #36866500 1! #36866600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36867000 0! #36867500 1! #36867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36868000 0! #36868500 1! #36868600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36869000 0! #36869500 1! #36869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36870000 0! #36870500 1! #36870600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36871000 0! #36871500 1! #36871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36872000 0! #36872500 1! #36872600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36873000 0! #36873500 1! #36873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36874000 0! #36874500 1! #36874600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36875000 0! #36875500 1! #36875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36876000 0! #36876500 1! #36876600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36877000 0! #36877500 1! #36877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36878000 0! #36878500 1! #36878600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36879000 0! #36879500 1! #36879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36880000 0! #36880500 1! #36880600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36881000 0! #36881500 1! #36881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36882000 0! #36882500 1! #36882600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36883000 0! #36883500 1! #36883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36884000 0! #36884500 1! #36884600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36885000 0! #36885500 1! #36885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36886000 0! #36886500 1! #36886600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36887000 0! #36887500 1! #36887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36888000 0! #36888500 1! #36888600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36889000 0! #36889500 1! #36889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36890000 0! #36890500 1! #36890600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36891000 0! #36891500 1! #36891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36892000 0! #36892500 1! #36892600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36893000 0! #36893500 1! #36893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36894000 0! #36894500 1! #36894600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36895000 0! #36895500 1! #36895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36896000 0! #36896500 1! #36896600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36897000 0! #36897500 1! #36897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36898000 0! #36898500 1! #36898600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36899000 0! #36899500 1! #36899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36900000 0! #36900500 1! #36900600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36901000 0! #36901500 1! #36901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #36902000 0! #36902500 1! #36902600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36903000 0! #36903500 1! #36903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36904000 0! #36904500 1! #36904600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36905000 0! #36905500 1! #36905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36906000 0! #36906500 1! #36906600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36907000 0! #36907500 1! #36907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36908000 0! #36908500 1! #36908600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36909000 0! #36909500 1! #36909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36910000 0! #36910500 1! #36910600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36911000 0! #36911500 1! #36911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36912000 0! #36912500 1! #36912600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36913000 0! #36913500 1! #36913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36914000 0! #36914500 1! #36914600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36915000 0! #36915500 1! #36915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36916000 0! #36916500 1! #36916600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36917000 0! #36917500 1! #36917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36918000 0! #36918500 1! #36918600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36919000 0! #36919500 1! #36919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36920000 0! #36920500 1! #36920600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36921000 0! #36921500 1! #36921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36922000 0! #36922500 1! #36922600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36923000 0! #36923500 1! #36923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36924000 0! #36924500 1! #36924600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36925000 0! #36925500 1! #36925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36926000 0! #36926500 1! #36926600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36927000 0! #36927500 1! #36927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36928000 0! #36928500 1! #36928600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36929000 0! #36929500 1! #36929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36930000 0! #36930500 1! #36930600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36931000 0! #36931500 1! #36931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36932000 0! #36932500 1! #36932600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36933000 0! #36933500 1! #36933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36934000 0! #36934500 1! #36934600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36935000 0! #36935500 1! #36935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36936000 0! #36936500 1! #36936600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36937000 0! #36937500 1! #36937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36938000 0! #36938500 1! #36938600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36939000 0! #36939500 1! #36939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36940000 0! #36940500 1! #36940600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36941000 0! #36941500 1! #36941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36942000 0! #36942500 1! #36942600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36943000 0! #36943500 1! #36943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36944000 0! #36944500 1! #36944600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36945000 0! #36945500 1! #36945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36946000 0! #36946500 1! #36946600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36947000 0! #36947500 1! #36947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36948000 0! #36948500 1! #36948600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36949000 0! #36949500 1! #36949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36950000 0! #36950500 1! #36950600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36951000 0! #36951500 1! #36951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36952000 0! #36952500 1! #36952600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #36952700 bx1111 ^ b101 g bx11101 c #36953000 0! #36953500 1! #36953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36954000 0! #36954500 1! #36954600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36955000 0! #36955500 1! #36955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36956000 0! #36956500 1! #36956600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36957000 0! #36957500 1! #36957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36958000 0! #36958500 1! #36958600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36959000 0! #36959500 1! #36959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36960000 0! #36960500 1! #36960600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36961000 0! #36961500 1! #36961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36962000 0! #36962500 1! #36962600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36963000 0! #36963500 1! #36963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36964000 0! #36964500 1! #36964600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36965000 0! #36965500 1! #36965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36966000 0! #36966500 1! #36966600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36967000 0! #36967500 1! #36967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36968000 0! #36968500 1! #36968600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36969000 0! #36969500 1! #36969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36970000 0! #36970500 1! #36970600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36971000 0! #36971500 1! #36971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36972000 0! #36972500 1! #36972600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36973000 0! #36973500 1! #36973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36974000 0! #36974500 1! #36974600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36975000 0! #36975500 1! #36975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36976000 0! #36976500 1! #36976600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36977000 0! #36977500 1! #36977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36978000 0! #36978500 1! #36978600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36979000 0! #36979500 1! #36979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36980000 0! #36980500 1! #36980600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36981000 0! #36981500 1! #36981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36982000 0! #36982500 1! #36982600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36983000 0! #36983500 1! #36983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36984000 0! #36984500 1! #36984600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36985000 0! #36985500 1! #36985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36986000 0! #36986500 1! #36986600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36987000 0! #36987500 1! #36987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36988000 0! #36988500 1! #36988600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36989000 0! #36989500 1! #36989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36990000 0! #36990500 1! #36990600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36991000 0! #36991500 1! #36991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36992000 0! #36992500 1! #36992600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36993000 0! #36993500 1! #36993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36994000 0! #36994500 1! #36994600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36995000 0! #36995500 1! #36995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36996000 0! #36996500 1! #36996600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36997000 0! #36997500 1! #36997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #36998000 0! #36998500 1! #36998600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #36999000 0! #36999500 1! #36999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37000000 0! #37000500 1! #37000600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37001000 0! #37001500 1! #37001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37002000 0! #37002500 1! #37002600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37003000 0! #37003500 1! #37003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37004000 0! #37004500 1! #37004600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37005000 0! #37005500 1! #37005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37006000 0! #37006500 1! #37006600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37007000 0! #37007500 1! #37007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37008000 0! #37008500 1! #37008600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37009000 0! #37009500 1! #37009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37010000 0! #37010500 1! #37010600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37011000 0! #37011500 1! #37011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37012000 0! #37012500 1! #37012600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37013000 0! #37013500 1! #37013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37014000 0! #37014500 1! #37014600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37015000 0! #37015500 1! #37015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37016000 0! #37016500 1! #37016600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37017000 0! #37017500 1! #37017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37018000 0! #37018500 1! #37018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37019000 0! #37019500 1! #37019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37020000 0! #37020500 1! #37020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37021000 0! #37021500 1! #37021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37022000 0! #37022500 1! #37022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37023000 0! #37023500 1! #37023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37024000 0! #37024500 1! #37024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37025000 0! #37025500 1! #37025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37026000 0! #37026500 1! #37026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37027000 0! #37027500 1! #37027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37028000 0! #37028500 1! #37028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37029000 0! #37029500 1! #37029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37030000 0! #37030500 1! #37030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37031000 0! #37031500 1! #37031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37032000 0! #37032500 1! #37032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37033000 0! #37033500 1! #37033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37034000 0! #37034500 1! #37034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37035000 0! #37035500 1! #37035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37036000 0! #37036500 1! #37036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37037000 0! #37037500 1! #37037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37038000 0! #37038500 1! #37038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37039000 0! #37039500 1! #37039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37040000 0! #37040500 1! #37040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37041000 0! #37041500 1! #37041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37042000 0! #37042500 1! #37042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37043000 0! #37043500 1! #37043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37044000 0! #37044500 1! #37044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37045000 0! #37045500 1! #37045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37046000 0! #37046500 1! #37046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37047000 0! #37047500 1! #37047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37048000 0! #37048500 1! #37048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37049000 0! #37049500 1! #37049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37050000 0! #37050500 1! #37050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37051000 0! #37051500 1! #37051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37052000 0! #37052500 1! #37052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37053000 0! #37053500 1! #37053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37054000 0! #37054500 1! #37054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #37055000 0! #37055500 1! #37055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37056000 0! #37056500 1! #37056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37057000 0! #37057500 1! #37057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37058000 0! #37058500 1! #37058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37059000 0! #37059500 1! #37059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37060000 0! #37060500 1! #37060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37061000 0! #37061500 1! #37061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37062000 0! #37062500 1! #37062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37063000 0! #37063500 1! #37063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37064000 0! #37064500 1! #37064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37065000 0! #37065500 1! #37065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37066000 0! #37066500 1! #37066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37067000 0! #37067500 1! #37067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37068000 0! #37068500 1! #37068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37069000 0! #37069500 1! #37069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37070000 0! #37070500 1! #37070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37071000 0! #37071500 1! #37071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37072000 0! #37072500 1! #37072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37073000 0! #37073500 1! #37073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37074000 0! #37074500 1! #37074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37075000 0! #37075500 1! #37075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37076000 0! #37076500 1! #37076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37077000 0! #37077500 1! #37077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37078000 0! #37078500 1! #37078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37079000 0! #37079500 1! #37079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37080000 0! #37080500 1! #37080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37081000 0! #37081500 1! #37081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37082000 0! #37082500 1! #37082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37083000 0! #37083500 1! #37083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37084000 0! #37084500 1! #37084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37085000 0! #37085500 1! #37085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37086000 0! #37086500 1! #37086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37087000 0! #37087500 1! #37087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37088000 0! #37088500 1! #37088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37089000 0! #37089500 1! #37089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37090000 0! #37090500 1! #37090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37091000 0! #37091500 1! #37091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37092000 0! #37092500 1! #37092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37093000 0! #37093500 1! #37093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37094000 0! #37094500 1! #37094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37095000 0! #37095500 1! #37095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37096000 0! #37096500 1! #37096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37097000 0! #37097500 1! #37097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37098000 0! #37098500 1! #37098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37099000 0! #37099500 1! #37099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37100000 0! #37100500 1! #37100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37101000 0! #37101500 1! #37101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37102000 0! #37102500 1! #37102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37103000 0! #37103500 1! #37103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37104000 0! #37104500 1! #37104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37105000 0! #37105500 1! #37105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37106000 0! #37106500 1! #37106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37107000 0! #37107500 1! #37107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37108000 0! #37108500 1! #37108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37109000 0! #37109500 1! #37109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37110000 0! #37110500 1! #37110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37111000 0! #37111500 1! #37111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37112000 0! #37112500 1! #37112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37113000 0! #37113500 1! #37113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37114000 0! #37114500 1! #37114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37115000 0! #37115500 1! #37115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37116000 0! #37116500 1! #37116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37117000 0! #37117500 1! #37117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37118000 0! #37118500 1! #37118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37119000 0! #37119500 1! #37119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37120000 0! #37120500 1! #37120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37121000 0! #37121500 1! #37121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37122000 0! #37122500 1! #37122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37123000 0! #37123500 1! #37123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37124000 0! #37124500 1! #37124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37125000 0! #37125500 1! #37125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37126000 0! #37126500 1! #37126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37127000 0! #37127500 1! #37127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37128000 0! #37128500 1! #37128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37129000 0! #37129500 1! #37129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37130000 0! #37130500 1! #37130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37131000 0! #37131500 1! #37131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37132000 0! #37132500 1! #37132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37133000 0! #37133500 1! #37133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37134000 0! #37134500 1! #37134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37135000 0! #37135500 1! #37135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37136000 0! #37136500 1! #37136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37137000 0! #37137500 1! #37137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37138000 0! #37138500 1! #37138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37139000 0! #37139500 1! #37139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37140000 0! #37140500 1! #37140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37141000 0! #37141500 1! #37141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37142000 0! #37142500 1! #37142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37143000 0! #37143500 1! #37143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37144000 0! #37144500 1! #37144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37145000 0! #37145500 1! #37145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37146000 0! #37146500 1! #37146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37147000 0! #37147500 1! #37147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37148000 0! #37148500 1! #37148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37149000 0! #37149500 1! #37149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37150000 0! #37150500 1! #37150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37151000 0! #37151500 1! #37151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37152000 0! #37152500 1! #37152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37153000 0! #37153500 1! #37153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37154000 0! #37154500 1! #37154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37155000 0! #37155500 1! #37155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37156000 0! #37156500 1! #37156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0Q 0O #37157000 0! #37157500 1! #37157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37158000 0! #37158500 1! #37158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37159000 0! #37159500 1! #37159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37160000 0! #37160500 1! #37160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37161000 0! #37161500 1! #37161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37162000 0! #37162500 1! #37162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37163000 0! #37163500 1! #37163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37164000 0! #37164500 1! #37164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37165000 0! #37165500 1! #37165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37166000 0! #37166500 1! #37166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37167000 0! #37167500 1! #37167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37168000 0! #37168500 1! #37168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37169000 0! #37169500 1! #37169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37170000 0! #37170500 1! #37170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37171000 0! #37171500 1! #37171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37172000 0! #37172500 1! #37172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37173000 0! #37173500 1! #37173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37174000 0! #37174500 1! #37174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37175000 0! #37175500 1! #37175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37176000 0! #37176500 1! #37176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37177000 0! #37177500 1! #37177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37178000 0! #37178500 1! #37178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37179000 0! #37179500 1! #37179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37180000 0! #37180500 1! #37180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37181000 0! #37181500 1! #37181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37182000 0! #37182500 1! #37182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37183000 0! #37183500 1! #37183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37184000 0! #37184500 1! #37184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37185000 0! #37185500 1! #37185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37186000 0! #37186500 1! #37186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37187000 0! #37187500 1! #37187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37188000 0! #37188500 1! #37188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37189000 0! #37189500 1! #37189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37190000 0! #37190500 1! #37190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37191000 0! #37191500 1! #37191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37192000 0! #37192500 1! #37192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37193000 0! #37193500 1! #37193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37194000 0! #37194500 1! #37194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37195000 0! #37195500 1! #37195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37196000 0! #37196500 1! #37196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37197000 0! #37197500 1! #37197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37198000 0! #37198500 1! #37198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37199000 0! #37199500 1! #37199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37200000 0! #37200500 1! #37200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37201000 0! #37201500 1! #37201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37202000 0! #37202500 1! #37202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37203000 0! #37203500 1! #37203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37204000 0! #37204500 1! #37204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37205000 0! #37205500 1! #37205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37206000 0! #37206500 1! #37206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37207000 0! #37207500 1! #37207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #37207700 bx11111 ^ b100 g bx111010 c #37208000 0! #37208500 1! #37208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37209000 0! #37209500 1! #37209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37210000 0! #37210500 1! #37210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37211000 0! #37211500 1! #37211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37212000 0! #37212500 1! #37212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37213000 0! #37213500 1! #37213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37214000 0! #37214500 1! #37214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37215000 0! #37215500 1! #37215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37216000 0! #37216500 1! #37216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37217000 0! #37217500 1! #37217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37218000 0! #37218500 1! #37218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37219000 0! #37219500 1! #37219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37220000 0! #37220500 1! #37220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37221000 0! #37221500 1! #37221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37222000 0! #37222500 1! #37222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37223000 0! #37223500 1! #37223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37224000 0! #37224500 1! #37224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37225000 0! #37225500 1! #37225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37226000 0! #37226500 1! #37226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37227000 0! #37227500 1! #37227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37228000 0! #37228500 1! #37228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37229000 0! #37229500 1! #37229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37230000 0! #37230500 1! #37230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37231000 0! #37231500 1! #37231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37232000 0! #37232500 1! #37232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37233000 0! #37233500 1! #37233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37234000 0! #37234500 1! #37234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37235000 0! #37235500 1! #37235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37236000 0! #37236500 1! #37236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37237000 0! #37237500 1! #37237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37238000 0! #37238500 1! #37238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37239000 0! #37239500 1! #37239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37240000 0! #37240500 1! #37240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37241000 0! #37241500 1! #37241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37242000 0! #37242500 1! #37242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37243000 0! #37243500 1! #37243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37244000 0! #37244500 1! #37244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37245000 0! #37245500 1! #37245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37246000 0! #37246500 1! #37246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37247000 0! #37247500 1! #37247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37248000 0! #37248500 1! #37248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37249000 0! #37249500 1! #37249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37250000 0! #37250500 1! #37250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37251000 0! #37251500 1! #37251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37252000 0! #37252500 1! #37252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37253000 0! #37253500 1! #37253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37254000 0! #37254500 1! #37254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37255000 0! #37255500 1! #37255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37256000 0! #37256500 1! #37256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37257000 0! #37257500 1! #37257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37258000 0! #37258500 1! #37258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37259000 0! #37259500 1! #37259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37260000 0! #37260500 1! #37260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37261000 0! #37261500 1! #37261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37262000 0! #37262500 1! #37262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37263000 0! #37263500 1! #37263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37264000 0! #37264500 1! #37264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37265000 0! #37265500 1! #37265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37266000 0! #37266500 1! #37266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37267000 0! #37267500 1! #37267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37268000 0! #37268500 1! #37268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37269000 0! #37269500 1! #37269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37270000 0! #37270500 1! #37270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37271000 0! #37271500 1! #37271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37272000 0! #37272500 1! #37272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37273000 0! #37273500 1! #37273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37274000 0! #37274500 1! #37274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37275000 0! #37275500 1! #37275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37276000 0! #37276500 1! #37276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37277000 0! #37277500 1! #37277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37278000 0! #37278500 1! #37278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37279000 0! #37279500 1! #37279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37280000 0! #37280500 1! #37280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37281000 0! #37281500 1! #37281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37282000 0! #37282500 1! #37282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37283000 0! #37283500 1! #37283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37284000 0! #37284500 1! #37284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37285000 0! #37285500 1! #37285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37286000 0! #37286500 1! #37286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37287000 0! #37287500 1! #37287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37288000 0! #37288500 1! #37288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37289000 0! #37289500 1! #37289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37290000 0! #37290500 1! #37290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37291000 0! #37291500 1! #37291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37292000 0! #37292500 1! #37292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37293000 0! #37293500 1! #37293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37294000 0! #37294500 1! #37294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37295000 0! #37295500 1! #37295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37296000 0! #37296500 1! #37296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37297000 0! #37297500 1! #37297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37298000 0! #37298500 1! #37298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37299000 0! #37299500 1! #37299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37300000 0! #37300500 1! #37300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37301000 0! #37301500 1! #37301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37302000 0! #37302500 1! #37302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37303000 0! #37303500 1! #37303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37304000 0! #37304500 1! #37304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37305000 0! #37305500 1! #37305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37306000 0! #37306500 1! #37306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37307000 0! #37307500 1! #37307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37308000 0! #37308500 1! #37308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37309000 0! #37309500 1! #37309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #37310000 0! #37310500 1! #37310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37311000 0! #37311500 1! #37311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37312000 0! #37312500 1! #37312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37313000 0! #37313500 1! #37313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37314000 0! #37314500 1! #37314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37315000 0! #37315500 1! #37315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37316000 0! #37316500 1! #37316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37317000 0! #37317500 1! #37317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37318000 0! #37318500 1! #37318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37319000 0! #37319500 1! #37319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37320000 0! #37320500 1! #37320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37321000 0! #37321500 1! #37321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37322000 0! #37322500 1! #37322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37323000 0! #37323500 1! #37323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37324000 0! #37324500 1! #37324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37325000 0! #37325500 1! #37325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37326000 0! #37326500 1! #37326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37327000 0! #37327500 1! #37327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37328000 0! #37328500 1! #37328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37329000 0! #37329500 1! #37329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37330000 0! #37330500 1! #37330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37331000 0! #37331500 1! #37331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37332000 0! #37332500 1! #37332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37333000 0! #37333500 1! #37333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37334000 0! #37334500 1! #37334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37335000 0! #37335500 1! #37335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37336000 0! #37336500 1! #37336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37337000 0! #37337500 1! #37337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37338000 0! #37338500 1! #37338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37339000 0! #37339500 1! #37339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37340000 0! #37340500 1! #37340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37341000 0! #37341500 1! #37341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37342000 0! #37342500 1! #37342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37343000 0! #37343500 1! #37343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37344000 0! #37344500 1! #37344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37345000 0! #37345500 1! #37345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37346000 0! #37346500 1! #37346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37347000 0! #37347500 1! #37347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37348000 0! #37348500 1! #37348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37349000 0! #37349500 1! #37349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37350000 0! #37350500 1! #37350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37351000 0! #37351500 1! #37351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37352000 0! #37352500 1! #37352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37353000 0! #37353500 1! #37353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37354000 0! #37354500 1! #37354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37355000 0! #37355500 1! #37355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37356000 0! #37356500 1! #37356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37357000 0! #37357500 1! #37357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37358000 0! #37358500 1! #37358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37359000 0! #37359500 1! #37359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37360000 0! #37360500 1! #37360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37361000 0! #37361500 1! #37361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37362000 0! #37362500 1! #37362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37363000 0! #37363500 1! #37363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37364000 0! #37364500 1! #37364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37365000 0! #37365500 1! #37365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37366000 0! #37366500 1! #37366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37367000 0! #37367500 1! #37367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37368000 0! #37368500 1! #37368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37369000 0! #37369500 1! #37369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37370000 0! #37370500 1! #37370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37371000 0! #37371500 1! #37371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37372000 0! #37372500 1! #37372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37373000 0! #37373500 1! #37373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37374000 0! #37374500 1! #37374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37375000 0! #37375500 1! #37375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37376000 0! #37376500 1! #37376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37377000 0! #37377500 1! #37377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37378000 0! #37378500 1! #37378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37379000 0! #37379500 1! #37379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37380000 0! #37380500 1! #37380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37381000 0! #37381500 1! #37381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37382000 0! #37382500 1! #37382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37383000 0! #37383500 1! #37383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37384000 0! #37384500 1! #37384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37385000 0! #37385500 1! #37385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37386000 0! #37386500 1! #37386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37387000 0! #37387500 1! #37387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37388000 0! #37388500 1! #37388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37389000 0! #37389500 1! #37389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37390000 0! #37390500 1! #37390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37391000 0! #37391500 1! #37391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37392000 0! #37392500 1! #37392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37393000 0! #37393500 1! #37393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37394000 0! #37394500 1! #37394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37395000 0! #37395500 1! #37395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37396000 0! #37396500 1! #37396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37397000 0! #37397500 1! #37397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37398000 0! #37398500 1! #37398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37399000 0! #37399500 1! #37399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37400000 0! #37400500 1! #37400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37401000 0! #37401500 1! #37401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37402000 0! #37402500 1! #37402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37403000 0! #37403500 1! #37403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37404000 0! #37404500 1! #37404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37405000 0! #37405500 1! #37405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37406000 0! #37406500 1! #37406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37407000 0! #37407500 1! #37407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37408000 0! #37408500 1! #37408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37409000 0! #37409500 1! #37409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37410000 0! #37410500 1! #37410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37411000 0! #37411500 1! #37411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37412000 0! #37412500 1! #37412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37413000 0! #37413500 1! #37413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37414000 0! #37414500 1! #37414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37415000 0! #37415500 1! #37415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37416000 0! #37416500 1! #37416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37417000 0! #37417500 1! #37417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37418000 0! #37418500 1! #37418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37419000 0! #37419500 1! #37419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37420000 0! #37420500 1! #37420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37421000 0! #37421500 1! #37421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37422000 0! #37422500 1! #37422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37423000 0! #37423500 1! #37423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37424000 0! #37424500 1! #37424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37425000 0! #37425500 1! #37425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37426000 0! #37426500 1! #37426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37427000 0! #37427500 1! #37427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37428000 0! #37428500 1! #37428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37429000 0! #37429500 1! #37429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37430000 0! #37430500 1! #37430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37431000 0! #37431500 1! #37431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37432000 0! #37432500 1! #37432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37433000 0! #37433500 1! #37433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37434000 0! #37434500 1! #37434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37435000 0! #37435500 1! #37435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37436000 0! #37436500 1! #37436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37437000 0! #37437500 1! #37437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37438000 0! #37438500 1! #37438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37439000 0! #37439500 1! #37439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37440000 0! #37440500 1! #37440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37441000 0! #37441500 1! #37441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37442000 0! #37442500 1! #37442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37443000 0! #37443500 1! #37443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37444000 0! #37444500 1! #37444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37445000 0! #37445500 1! #37445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37446000 0! #37446500 1! #37446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37447000 0! #37447500 1! #37447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37448000 0! #37448500 1! #37448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37449000 0! #37449500 1! #37449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37450000 0! #37450500 1! #37450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37451000 0! #37451500 1! #37451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37452000 0! #37452500 1! #37452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37453000 0! #37453500 1! #37453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37454000 0! #37454500 1! #37454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37455000 0! #37455500 1! #37455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37456000 0! #37456500 1! #37456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37457000 0! #37457500 1! #37457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37458000 0! #37458500 1! #37458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37459000 0! #37459500 1! #37459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37460000 0! #37460500 1! #37460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37461000 0! #37461500 1! #37461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37462000 0! #37462500 1! #37462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #37462700 bx111111 ^ b11 g bx1110100 c #37463000 0! #37463500 1! #37463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37464000 0! #37464500 1! #37464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37465000 0! #37465500 1! #37465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37466000 0! #37466500 1! #37466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37467000 0! #37467500 1! #37467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37468000 0! #37468500 1! #37468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37469000 0! #37469500 1! #37469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37470000 0! #37470500 1! #37470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37471000 0! #37471500 1! #37471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37472000 0! #37472500 1! #37472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37473000 0! #37473500 1! #37473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37474000 0! #37474500 1! #37474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37475000 0! #37475500 1! #37475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37476000 0! #37476500 1! #37476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37477000 0! #37477500 1! #37477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37478000 0! #37478500 1! #37478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37479000 0! #37479500 1! #37479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37480000 0! #37480500 1! #37480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37481000 0! #37481500 1! #37481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37482000 0! #37482500 1! #37482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37483000 0! #37483500 1! #37483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37484000 0! #37484500 1! #37484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37485000 0! #37485500 1! #37485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37486000 0! #37486500 1! #37486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37487000 0! #37487500 1! #37487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37488000 0! #37488500 1! #37488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37489000 0! #37489500 1! #37489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37490000 0! #37490500 1! #37490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37491000 0! #37491500 1! #37491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37492000 0! #37492500 1! #37492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37493000 0! #37493500 1! #37493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37494000 0! #37494500 1! #37494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37495000 0! #37495500 1! #37495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37496000 0! #37496500 1! #37496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37497000 0! #37497500 1! #37497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37498000 0! #37498500 1! #37498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37499000 0! #37499500 1! #37499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37500000 0! #37500500 1! #37500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37501000 0! #37501500 1! #37501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37502000 0! #37502500 1! #37502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37503000 0! #37503500 1! #37503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37504000 0! #37504500 1! #37504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37505000 0! #37505500 1! #37505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37506000 0! #37506500 1! #37506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37507000 0! #37507500 1! #37507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37508000 0! #37508500 1! #37508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37509000 0! #37509500 1! #37509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37510000 0! #37510500 1! #37510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37511000 0! #37511500 1! #37511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37512000 0! #37512500 1! #37512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37513000 0! #37513500 1! #37513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37514000 0! #37514500 1! #37514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37515000 0! #37515500 1! #37515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37516000 0! #37516500 1! #37516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37517000 0! #37517500 1! #37517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37518000 0! #37518500 1! #37518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37519000 0! #37519500 1! #37519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37520000 0! #37520500 1! #37520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37521000 0! #37521500 1! #37521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37522000 0! #37522500 1! #37522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37523000 0! #37523500 1! #37523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37524000 0! #37524500 1! #37524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37525000 0! #37525500 1! #37525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37526000 0! #37526500 1! #37526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37527000 0! #37527500 1! #37527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37528000 0! #37528500 1! #37528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37529000 0! #37529500 1! #37529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37530000 0! #37530500 1! #37530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37531000 0! #37531500 1! #37531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37532000 0! #37532500 1! #37532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37533000 0! #37533500 1! #37533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37534000 0! #37534500 1! #37534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37535000 0! #37535500 1! #37535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37536000 0! #37536500 1! #37536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37537000 0! #37537500 1! #37537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37538000 0! #37538500 1! #37538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37539000 0! #37539500 1! #37539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37540000 0! #37540500 1! #37540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37541000 0! #37541500 1! #37541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37542000 0! #37542500 1! #37542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37543000 0! #37543500 1! #37543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37544000 0! #37544500 1! #37544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37545000 0! #37545500 1! #37545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37546000 0! #37546500 1! #37546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37547000 0! #37547500 1! #37547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37548000 0! #37548500 1! #37548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37549000 0! #37549500 1! #37549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37550000 0! #37550500 1! #37550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37551000 0! #37551500 1! #37551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37552000 0! #37552500 1! #37552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37553000 0! #37553500 1! #37553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37554000 0! #37554500 1! #37554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37555000 0! #37555500 1! #37555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37556000 0! #37556500 1! #37556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37557000 0! #37557500 1! #37557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37558000 0! #37558500 1! #37558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37559000 0! #37559500 1! #37559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37560000 0! #37560500 1! #37560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37561000 0! #37561500 1! #37561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37562000 0! #37562500 1! #37562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37563000 0! #37563500 1! #37563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37564000 0! #37564500 1! #37564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #37565000 0! #37565500 1! #37565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37566000 0! #37566500 1! #37566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37567000 0! #37567500 1! #37567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37568000 0! #37568500 1! #37568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37569000 0! #37569500 1! #37569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37570000 0! #37570500 1! #37570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37571000 0! #37571500 1! #37571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37572000 0! #37572500 1! #37572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37573000 0! #37573500 1! #37573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37574000 0! #37574500 1! #37574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37575000 0! #37575500 1! #37575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37576000 0! #37576500 1! #37576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37577000 0! #37577500 1! #37577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37578000 0! #37578500 1! #37578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37579000 0! #37579500 1! #37579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37580000 0! #37580500 1! #37580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37581000 0! #37581500 1! #37581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37582000 0! #37582500 1! #37582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37583000 0! #37583500 1! #37583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37584000 0! #37584500 1! #37584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37585000 0! #37585500 1! #37585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37586000 0! #37586500 1! #37586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37587000 0! #37587500 1! #37587600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37588000 0! #37588500 1! #37588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37589000 0! #37589500 1! #37589600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37590000 0! #37590500 1! #37590600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37591000 0! #37591500 1! #37591600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37592000 0! #37592500 1! #37592600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37593000 0! #37593500 1! #37593600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37594000 0! #37594500 1! #37594600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37595000 0! #37595500 1! #37595600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37596000 0! #37596500 1! #37596600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37597000 0! #37597500 1! #37597600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37598000 0! #37598500 1! #37598600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37599000 0! #37599500 1! #37599600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37600000 0! #37600500 1! #37600600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37601000 0! #37601500 1! #37601600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37602000 0! #37602500 1! #37602600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37603000 0! #37603500 1! #37603600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37604000 0! #37604500 1! #37604600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37605000 0! #37605500 1! #37605600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37606000 0! #37606500 1! #37606600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37607000 0! #37607500 1! #37607600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37608000 0! #37608500 1! #37608600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37609000 0! #37609500 1! #37609600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37610000 0! #37610500 1! #37610600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37611000 0! #37611500 1! #37611600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37612000 0! #37612500 1! #37612600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37613000 0! #37613500 1! #37613600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37614000 0! #37614500 1! #37614600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37615000 0! #37615500 1! #37615600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37616000 0! #37616500 1! #37616600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37617000 0! #37617500 1! #37617600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37618000 0! #37618500 1! #37618600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37619000 0! #37619500 1! #37619600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37620000 0! #37620500 1! #37620600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37621000 0! #37621500 1! #37621600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37622000 0! #37622500 1! #37622600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37623000 0! #37623500 1! #37623600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37624000 0! #37624500 1! #37624600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37625000 0! #37625500 1! #37625600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37626000 0! #37626500 1! #37626600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37627000 0! #37627500 1! #37627600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37628000 0! #37628500 1! #37628600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37629000 0! #37629500 1! #37629600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37630000 0! #37630500 1! #37630600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37631000 0! #37631500 1! #37631600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37632000 0! #37632500 1! #37632600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37633000 0! #37633500 1! #37633600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37634000 0! #37634500 1! #37634600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37635000 0! #37635500 1! #37635600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37636000 0! #37636500 1! #37636600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37637000 0! #37637500 1! #37637600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37638000 0! #37638500 1! #37638600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37639000 0! #37639500 1! #37639600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37640000 0! #37640500 1! #37640600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37641000 0! #37641500 1! #37641600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37642000 0! #37642500 1! #37642600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37643000 0! #37643500 1! #37643600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37644000 0! #37644500 1! #37644600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37645000 0! #37645500 1! #37645600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37646000 0! #37646500 1! #37646600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37647000 0! #37647500 1! #37647600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37648000 0! #37648500 1! #37648600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37649000 0! #37649500 1! #37649600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37650000 0! #37650500 1! #37650600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37651000 0! #37651500 1! #37651600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37652000 0! #37652500 1! #37652600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37653000 0! #37653500 1! #37653600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37654000 0! #37654500 1! #37654600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37655000 0! #37655500 1! #37655600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37656000 0! #37656500 1! #37656600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37657000 0! #37657500 1! #37657600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37658000 0! #37658500 1! #37658600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37659000 0! #37659500 1! #37659600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37660000 0! #37660500 1! #37660600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37661000 0! #37661500 1! #37661600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37662000 0! #37662500 1! #37662600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37663000 0! #37663500 1! #37663600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37664000 0! #37664500 1! #37664600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37665000 0! #37665500 1! #37665600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37666000 0! #37666500 1! #37666600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37667000 0! #37667500 1! #37667600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37668000 0! #37668500 1! #37668600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37669000 0! #37669500 1! #37669600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37670000 0! #37670500 1! #37670600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37671000 0! #37671500 1! #37671600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37672000 0! #37672500 1! #37672600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37673000 0! #37673500 1! #37673600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37674000 0! #37674500 1! #37674600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37675000 0! #37675500 1! #37675600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37676000 0! #37676500 1! #37676600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37677000 0! #37677500 1! #37677600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37678000 0! #37678500 1! #37678600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37679000 0! #37679500 1! #37679600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37680000 0! #37680500 1! #37680600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37681000 0! #37681500 1! #37681600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37682000 0! #37682500 1! #37682600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37683000 0! #37683500 1! #37683600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37684000 0! #37684500 1! #37684600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37685000 0! #37685500 1! #37685600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37686000 0! #37686500 1! #37686600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37687000 0! #37687500 1! #37687600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37688000 0! #37688500 1! #37688600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37689000 0! #37689500 1! #37689600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37690000 0! #37690500 1! #37690600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37691000 0! #37691500 1! #37691600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37692000 0! #37692500 1! #37692600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37693000 0! #37693500 1! #37693600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37694000 0! #37694500 1! #37694600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37695000 0! #37695500 1! #37695600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37696000 0! #37696500 1! #37696600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37697000 0! #37697500 1! #37697600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37698000 0! #37698500 1! #37698600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37699000 0! #37699500 1! #37699600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37700000 0! #37700500 1! #37700600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37701000 0! #37701500 1! #37701600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37702000 0! #37702500 1! #37702600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37703000 0! #37703500 1! #37703600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37704000 0! #37704500 1! #37704600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37705000 0! #37705500 1! #37705600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37706000 0! #37706500 1! #37706600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37707000 0! #37707500 1! #37707600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37708000 0! #37708500 1! #37708600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37709000 0! #37709500 1! #37709600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37710000 0! #37710500 1! #37710600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37711000 0! #37711500 1! #37711600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37712000 0! #37712500 1! #37712600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37713000 0! #37713500 1! #37713600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37714000 0! #37714500 1! #37714600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37715000 0! #37715500 1! #37715600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37716000 0! #37716500 1! #37716600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37717000 0! #37717500 1! #37717600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #37717700 bx1111111 ^ b10 g b11101000 c #37718000 0! #37718500 1! #37718600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37719000 0! #37719500 1! #37719600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37720000 0! #37720500 1! #37720600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37721000 0! #37721500 1! #37721600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37722000 0! #37722500 1! #37722600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37723000 0! #37723500 1! #37723600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37724000 0! #37724500 1! #37724600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37725000 0! #37725500 1! #37725600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37726000 0! #37726500 1! #37726600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37727000 0! #37727500 1! #37727600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37728000 0! #37728500 1! #37728600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37729000 0! #37729500 1! #37729600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37730000 0! #37730500 1! #37730600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37731000 0! #37731500 1! #37731600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37732000 0! #37732500 1! #37732600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37733000 0! #37733500 1! #37733600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37734000 0! #37734500 1! #37734600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37735000 0! #37735500 1! #37735600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37736000 0! #37736500 1! #37736600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37737000 0! #37737500 1! #37737600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37738000 0! #37738500 1! #37738600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37739000 0! #37739500 1! #37739600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37740000 0! #37740500 1! #37740600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37741000 0! #37741500 1! #37741600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37742000 0! #37742500 1! #37742600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37743000 0! #37743500 1! #37743600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37744000 0! #37744500 1! #37744600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37745000 0! #37745500 1! #37745600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37746000 0! #37746500 1! #37746600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37747000 0! #37747500 1! #37747600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37748000 0! #37748500 1! #37748600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37749000 0! #37749500 1! #37749600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37750000 0! #37750500 1! #37750600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37751000 0! #37751500 1! #37751600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37752000 0! #37752500 1! #37752600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37753000 0! #37753500 1! #37753600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37754000 0! #37754500 1! #37754600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37755000 0! #37755500 1! #37755600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37756000 0! #37756500 1! #37756600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37757000 0! #37757500 1! #37757600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37758000 0! #37758500 1! #37758600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37759000 0! #37759500 1! #37759600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37760000 0! #37760500 1! #37760600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37761000 0! #37761500 1! #37761600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37762000 0! #37762500 1! #37762600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37763000 0! #37763500 1! #37763600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37764000 0! #37764500 1! #37764600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37765000 0! #37765500 1! #37765600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37766000 0! #37766500 1! #37766600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37767000 0! #37767500 1! #37767600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37768000 0! #37768500 1! #37768600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37769000 0! #37769500 1! #37769600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37770000 0! #37770500 1! #37770600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37771000 0! #37771500 1! #37771600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37772000 0! #37772500 1! #37772600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37773000 0! #37773500 1! #37773600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37774000 0! #37774500 1! #37774600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37775000 0! #37775500 1! #37775600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37776000 0! #37776500 1! #37776600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37777000 0! #37777500 1! #37777600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37778000 0! #37778500 1! #37778600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37779000 0! #37779500 1! #37779600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37780000 0! #37780500 1! #37780600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37781000 0! #37781500 1! #37781600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37782000 0! #37782500 1! #37782600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37783000 0! #37783500 1! #37783600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37784000 0! #37784500 1! #37784600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37785000 0! #37785500 1! #37785600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37786000 0! #37786500 1! #37786600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37787000 0! #37787500 1! #37787600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37788000 0! #37788500 1! #37788600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37789000 0! #37789500 1! #37789600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37790000 0! #37790500 1! #37790600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37791000 0! #37791500 1! #37791600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37792000 0! #37792500 1! #37792600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37793000 0! #37793500 1! #37793600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37794000 0! #37794500 1! #37794600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37795000 0! #37795500 1! #37795600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37796000 0! #37796500 1! #37796600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37797000 0! #37797500 1! #37797600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37798000 0! #37798500 1! #37798600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37799000 0! #37799500 1! #37799600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37800000 0! #37800500 1! #37800600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37801000 0! #37801500 1! #37801600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37802000 0! #37802500 1! #37802600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37803000 0! #37803500 1! #37803600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37804000 0! #37804500 1! #37804600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37805000 0! #37805500 1! #37805600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37806000 0! #37806500 1! #37806600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37807000 0! #37807500 1! #37807600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37808000 0! #37808500 1! #37808600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37809000 0! #37809500 1! #37809600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37810000 0! #37810500 1! #37810600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37811000 0! #37811500 1! #37811600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37812000 0! #37812500 1! #37812600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37813000 0! #37813500 1! #37813600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37814000 0! #37814500 1! #37814600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37815000 0! #37815500 1! #37815600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37816000 0! #37816500 1! #37816600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37817000 0! #37817500 1! #37817600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37818000 0! #37818500 1! #37818600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37819000 0! #37819500 1! #37819600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #37820000 0! #37820500 1! #37820600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37821000 0! #37821500 1! #37821600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37822000 0! #37822500 1! #37822600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37823000 0! #37823500 1! #37823600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37824000 0! #37824500 1! #37824600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37825000 0! #37825500 1! #37825600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37826000 0! #37826500 1! #37826600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37827000 0! #37827500 1! #37827600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37828000 0! #37828500 1! #37828600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37829000 0! #37829500 1! #37829600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37830000 0! #37830500 1! #37830600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37831000 0! #37831500 1! #37831600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37832000 0! #37832500 1! #37832600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37833000 0! #37833500 1! #37833600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37834000 0! #37834500 1! #37834600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37835000 0! #37835500 1! #37835600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37836000 0! #37836500 1! #37836600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37837000 0! #37837500 1! #37837600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37838000 0! #37838500 1! #37838600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37839000 0! #37839500 1! #37839600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37840000 0! #37840500 1! #37840600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37841000 0! #37841500 1! #37841600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37842000 0! #37842500 1! #37842600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37843000 0! #37843500 1! #37843600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37844000 0! #37844500 1! #37844600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37845000 0! #37845500 1! #37845600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37846000 0! #37846500 1! #37846600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37847000 0! #37847500 1! #37847600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37848000 0! #37848500 1! #37848600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37849000 0! #37849500 1! #37849600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37850000 0! #37850500 1! #37850600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37851000 0! #37851500 1! #37851600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37852000 0! #37852500 1! #37852600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37853000 0! #37853500 1! #37853600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37854000 0! #37854500 1! #37854600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37855000 0! #37855500 1! #37855600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37856000 0! #37856500 1! #37856600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37857000 0! #37857500 1! #37857600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37858000 0! #37858500 1! #37858600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37859000 0! #37859500 1! #37859600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37860000 0! #37860500 1! #37860600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37861000 0! #37861500 1! #37861600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37862000 0! #37862500 1! #37862600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37863000 0! #37863500 1! #37863600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37864000 0! #37864500 1! #37864600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37865000 0! #37865500 1! #37865600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37866000 0! #37866500 1! #37866600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37867000 0! #37867500 1! #37867600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37868000 0! #37868500 1! #37868600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37869000 0! #37869500 1! #37869600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37870000 0! #37870500 1! #37870600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37871000 0! #37871500 1! #37871600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37872000 0! #37872500 1! #37872600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37873000 0! #37873500 1! #37873600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37874000 0! #37874500 1! #37874600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37875000 0! #37875500 1! #37875600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37876000 0! #37876500 1! #37876600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37877000 0! #37877500 1! #37877600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37878000 0! #37878500 1! #37878600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37879000 0! #37879500 1! #37879600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37880000 0! #37880500 1! #37880600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37881000 0! #37881500 1! #37881600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37882000 0! #37882500 1! #37882600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37883000 0! #37883500 1! #37883600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37884000 0! #37884500 1! #37884600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37885000 0! #37885500 1! #37885600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37886000 0! #37886500 1! #37886600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37887000 0! #37887500 1! #37887600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37888000 0! #37888500 1! #37888600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37889000 0! #37889500 1! #37889600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37890000 0! #37890500 1! #37890600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37891000 0! #37891500 1! #37891600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37892000 0! #37892500 1! #37892600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37893000 0! #37893500 1! #37893600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37894000 0! #37894500 1! #37894600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37895000 0! #37895500 1! #37895600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37896000 0! #37896500 1! #37896600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37897000 0! #37897500 1! #37897600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37898000 0! #37898500 1! #37898600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37899000 0! #37899500 1! #37899600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37900000 0! #37900500 1! #37900600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37901000 0! #37901500 1! #37901600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37902000 0! #37902500 1! #37902600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37903000 0! #37903500 1! #37903600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37904000 0! #37904500 1! #37904600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37905000 0! #37905500 1! #37905600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37906000 0! #37906500 1! #37906600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37907000 0! #37907500 1! #37907600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37908000 0! #37908500 1! #37908600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37909000 0! #37909500 1! #37909600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37910000 0! #37910500 1! #37910600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37911000 0! #37911500 1! #37911600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37912000 0! #37912500 1! #37912600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37913000 0! #37913500 1! #37913600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37914000 0! #37914500 1! #37914600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37915000 0! #37915500 1! #37915600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37916000 0! #37916500 1! #37916600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37917000 0! #37917500 1! #37917600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37918000 0! #37918500 1! #37918600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37919000 0! #37919500 1! #37919600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37920000 0! #37920500 1! #37920600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37921000 0! #37921500 1! #37921600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37922000 0! #37922500 1! #37922600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37923000 0! #37923500 1! #37923600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37924000 0! #37924500 1! #37924600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37925000 0! #37925500 1! #37925600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37926000 0! #37926500 1! #37926600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37927000 0! #37927500 1! #37927600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37928000 0! #37928500 1! #37928600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37929000 0! #37929500 1! #37929600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37930000 0! #37930500 1! #37930600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37931000 0! #37931500 1! #37931600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37932000 0! #37932500 1! #37932600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37933000 0! #37933500 1! #37933600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37934000 0! #37934500 1! #37934600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37935000 0! #37935500 1! #37935600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37936000 0! #37936500 1! #37936600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37937000 0! #37937500 1! #37937600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37938000 0! #37938500 1! #37938600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37939000 0! #37939500 1! #37939600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37940000 0! #37940500 1! #37940600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37941000 0! #37941500 1! #37941600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37942000 0! #37942500 1! #37942600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37943000 0! #37943500 1! #37943600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37944000 0! #37944500 1! #37944600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37945000 0! #37945500 1! #37945600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37946000 0! #37946500 1! #37946600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37947000 0! #37947500 1! #37947600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37948000 0! #37948500 1! #37948600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37949000 0! #37949500 1! #37949600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37950000 0! #37950500 1! #37950600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37951000 0! #37951500 1! #37951600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37952000 0! #37952500 1! #37952600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37953000 0! #37953500 1! #37953600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37954000 0! #37954500 1! #37954600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37955000 0! #37955500 1! #37955600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37956000 0! #37956500 1! #37956600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37957000 0! #37957500 1! #37957600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37958000 0! #37958500 1! #37958600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37959000 0! #37959500 1! #37959600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37960000 0! #37960500 1! #37960600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37961000 0! #37961500 1! #37961600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37962000 0! #37962500 1! #37962600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37963000 0! #37963500 1! #37963600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37964000 0! #37964500 1! #37964600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37965000 0! #37965500 1! #37965600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37966000 0! #37966500 1! #37966600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37967000 0! #37967500 1! #37967600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37968000 0! #37968500 1! #37968600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37969000 0! #37969500 1! #37969600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37970000 0! #37970500 1! #37970600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37971000 0! #37971500 1! #37971600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37972000 0! #37972500 1! #37972600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #37972700 b11111111 ^ b1 g b11010000 c #37973000 0! #37973500 1! #37973600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37974000 0! #37974500 1! #37974600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37975000 0! #37975500 1! #37975600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37976000 0! #37976500 1! #37976600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37977000 0! #37977500 1! #37977600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37978000 0! #37978500 1! #37978600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37979000 0! #37979500 1! #37979600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37980000 0! #37980500 1! #37980600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37981000 0! #37981500 1! #37981600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37982000 0! #37982500 1! #37982600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37983000 0! #37983500 1! #37983600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37984000 0! #37984500 1! #37984600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37985000 0! #37985500 1! #37985600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37986000 0! #37986500 1! #37986600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37987000 0! #37987500 1! #37987600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37988000 0! #37988500 1! #37988600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37989000 0! #37989500 1! #37989600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37990000 0! #37990500 1! #37990600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37991000 0! #37991500 1! #37991600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37992000 0! #37992500 1! #37992600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37993000 0! #37993500 1! #37993600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37994000 0! #37994500 1! #37994600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37995000 0! #37995500 1! #37995600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37996000 0! #37996500 1! #37996600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37997000 0! #37997500 1! #37997600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #37998000 0! #37998500 1! #37998600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #37999000 0! #37999500 1! #37999600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38000000 0! #38000500 1! #38000600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38001000 0! #38001500 1! #38001600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38002000 0! #38002500 1! #38002600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38003000 0! #38003500 1! #38003600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38004000 0! #38004500 1! #38004600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38005000 0! #38005500 1! #38005600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38006000 0! #38006500 1! #38006600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38007000 0! #38007500 1! #38007600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38008000 0! #38008500 1! #38008600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38009000 0! #38009500 1! #38009600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38010000 0! #38010500 1! #38010600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38011000 0! #38011500 1! #38011600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38012000 0! #38012500 1! #38012600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38013000 0! #38013500 1! #38013600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38014000 0! #38014500 1! #38014600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38015000 0! #38015500 1! #38015600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38016000 0! #38016500 1! #38016600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38017000 0! #38017500 1! #38017600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38018000 0! #38018500 1! #38018600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38019000 0! #38019500 1! #38019600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38020000 0! #38020500 1! #38020600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38021000 0! #38021500 1! #38021600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38022000 0! #38022500 1! #38022600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38023000 0! #38023500 1! #38023600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38024000 0! #38024500 1! #38024600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38025000 0! #38025500 1! #38025600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38026000 0! #38026500 1! #38026600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38027000 0! #38027500 1! #38027600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38028000 0! #38028500 1! #38028600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38029000 0! #38029500 1! #38029600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38030000 0! #38030500 1! #38030600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38031000 0! #38031500 1! #38031600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38032000 0! #38032500 1! #38032600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38033000 0! #38033500 1! #38033600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38034000 0! #38034500 1! #38034600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38035000 0! #38035500 1! #38035600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38036000 0! #38036500 1! #38036600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38037000 0! #38037500 1! #38037600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38038000 0! #38038500 1! #38038600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38039000 0! #38039500 1! #38039600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38040000 0! #38040500 1! #38040600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38041000 0! #38041500 1! #38041600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38042000 0! #38042500 1! #38042600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38043000 0! #38043500 1! #38043600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38044000 0! #38044500 1! #38044600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38045000 0! #38045500 1! #38045600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38046000 0! #38046500 1! #38046600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38047000 0! #38047500 1! #38047600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38048000 0! #38048500 1! #38048600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38049000 0! #38049500 1! #38049600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38050000 0! #38050500 1! #38050600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38051000 0! #38051500 1! #38051600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38052000 0! #38052500 1! #38052600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38053000 0! #38053500 1! #38053600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38054000 0! #38054500 1! #38054600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38055000 0! #38055500 1! #38055600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38056000 0! #38056500 1! #38056600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38057000 0! #38057500 1! #38057600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38058000 0! #38058500 1! #38058600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38059000 0! #38059500 1! #38059600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38060000 0! #38060500 1! #38060600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38061000 0! #38061500 1! #38061600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38062000 0! #38062500 1! #38062600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38063000 0! #38063500 1! #38063600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38064000 0! #38064500 1! #38064600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38065000 0! #38065500 1! #38065600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38066000 0! #38066500 1! #38066600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38067000 0! #38067500 1! #38067600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38068000 0! #38068500 1! #38068600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38069000 0! #38069500 1! #38069600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38070000 0! #38070500 1! #38070600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38071000 0! #38071500 1! #38071600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38072000 0! #38072500 1! #38072600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38073000 0! #38073500 1! #38073600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38074000 0! #38074500 1! #38074600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #38075000 0! #38075500 1! #38075600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38076000 0! #38076500 1! #38076600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38077000 0! #38077500 1! #38077600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38078000 0! #38078500 1! #38078600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38079000 0! #38079500 1! #38079600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38080000 0! #38080500 1! #38080600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38081000 0! #38081500 1! #38081600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38082000 0! #38082500 1! #38082600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38083000 0! #38083500 1! #38083600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38084000 0! #38084500 1! #38084600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38085000 0! #38085500 1! #38085600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38086000 0! #38086500 1! #38086600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38087000 0! #38087500 1! #38087600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38088000 0! #38088500 1! #38088600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38089000 0! #38089500 1! #38089600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38090000 0! #38090500 1! #38090600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38091000 0! #38091500 1! #38091600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38092000 0! #38092500 1! #38092600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38093000 0! #38093500 1! #38093600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38094000 0! #38094500 1! #38094600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38095000 0! #38095500 1! #38095600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38096000 0! #38096500 1! #38096600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38097000 0! #38097500 1! #38097600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38098000 0! #38098500 1! #38098600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38099000 0! #38099500 1! #38099600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38100000 0! #38100500 1! #38100600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38101000 0! #38101500 1! #38101600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38102000 0! #38102500 1! #38102600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38103000 0! #38103500 1! #38103600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38104000 0! #38104500 1! #38104600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38105000 0! #38105500 1! #38105600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38106000 0! #38106500 1! #38106600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38107000 0! #38107500 1! #38107600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38108000 0! #38108500 1! #38108600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38109000 0! #38109500 1! #38109600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38110000 0! #38110500 1! #38110600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38111000 0! #38111500 1! #38111600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38112000 0! #38112500 1! #38112600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38113000 0! #38113500 1! #38113600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38114000 0! #38114500 1! #38114600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38115000 0! #38115500 1! #38115600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38116000 0! #38116500 1! #38116600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38117000 0! #38117500 1! #38117600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38118000 0! #38118500 1! #38118600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38119000 0! #38119500 1! #38119600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38120000 0! #38120500 1! #38120600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38121000 0! #38121500 1! #38121600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38122000 0! #38122500 1! #38122600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38123000 0! #38123500 1! #38123600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38124000 0! #38124500 1! #38124600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38125000 0! #38125500 1! #38125600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38126000 0! #38126500 1! #38126600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38127000 0! #38127500 1! #38127600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38128000 0! #38128500 1! #38128600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38129000 0! #38129500 1! #38129600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38130000 0! #38130500 1! #38130600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38131000 0! #38131500 1! #38131600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38132000 0! #38132500 1! #38132600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38133000 0! #38133500 1! #38133600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38134000 0! #38134500 1! #38134600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38135000 0! #38135500 1! #38135600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38136000 0! #38136500 1! #38136600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38137000 0! #38137500 1! #38137600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38138000 0! #38138500 1! #38138600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38139000 0! #38139500 1! #38139600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38140000 0! #38140500 1! #38140600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38141000 0! #38141500 1! #38141600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38142000 0! #38142500 1! #38142600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38143000 0! #38143500 1! #38143600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38144000 0! #38144500 1! #38144600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38145000 0! #38145500 1! #38145600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38146000 0! #38146500 1! #38146600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38147000 0! #38147500 1! #38147600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38148000 0! #38148500 1! #38148600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38149000 0! #38149500 1! #38149600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38150000 0! #38150500 1! #38150600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38151000 0! #38151500 1! #38151600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38152000 0! #38152500 1! #38152600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38153000 0! #38153500 1! #38153600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38154000 0! #38154500 1! #38154600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38155000 0! #38155500 1! #38155600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38156000 0! #38156500 1! #38156600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38157000 0! #38157500 1! #38157600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38158000 0! #38158500 1! #38158600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38159000 0! #38159500 1! #38159600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38160000 0! #38160500 1! #38160600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38161000 0! #38161500 1! #38161600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38162000 0! #38162500 1! #38162600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38163000 0! #38163500 1! #38163600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38164000 0! #38164500 1! #38164600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38165000 0! #38165500 1! #38165600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38166000 0! #38166500 1! #38166600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38167000 0! #38167500 1! #38167600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38168000 0! #38168500 1! #38168600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38169000 0! #38169500 1! #38169600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38170000 0! #38170500 1! #38170600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38171000 0! #38171500 1! #38171600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38172000 0! #38172500 1! #38172600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38173000 0! #38173500 1! #38173600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38174000 0! #38174500 1! #38174600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38175000 0! #38175500 1! #38175600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38176000 0! #38176500 1! #38176600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38177000 0! #38177500 1! #38177600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38178000 0! #38178500 1! #38178600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38179000 0! #38179500 1! #38179600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38180000 0! #38180500 1! #38180600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38181000 0! #38181500 1! #38181600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38182000 0! #38182500 1! #38182600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38183000 0! #38183500 1! #38183600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38184000 0! #38184500 1! #38184600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38185000 0! #38185500 1! #38185600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38186000 0! #38186500 1! #38186600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38187000 0! #38187500 1! #38187600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38188000 0! #38188500 1! #38188600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38189000 0! #38189500 1! #38189600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38190000 0! #38190500 1! #38190600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38191000 0! #38191500 1! #38191600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38192000 0! #38192500 1! #38192600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38193000 0! #38193500 1! #38193600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38194000 0! #38194500 1! #38194600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38195000 0! #38195500 1! #38195600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38196000 0! #38196500 1! #38196600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38197000 0! #38197500 1! #38197600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38198000 0! #38198500 1! #38198600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38199000 0! #38199500 1! #38199600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38200000 0! #38200500 1! #38200600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38201000 0! #38201500 1! #38201600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38202000 0! #38202500 1! #38202600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38203000 0! #38203500 1! #38203600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38204000 0! #38204500 1! #38204600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38205000 0! #38205500 1! #38205600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38206000 0! #38206500 1! #38206600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38207000 0! #38207500 1! #38207600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38208000 0! #38208500 1! #38208600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38209000 0! #38209500 1! #38209600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38210000 0! #38210500 1! #38210600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38211000 0! #38211500 1! #38211600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38212000 0! #38212500 1! #38212600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38213000 0! #38213500 1! #38213600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38214000 0! #38214500 1! #38214600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38215000 0! #38215500 1! #38215600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38216000 0! #38216500 1! #38216600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38217000 0! #38217500 1! #38217600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38218000 0! #38218500 1! #38218600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38219000 0! #38219500 1! #38219600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38220000 0! #38220500 1! #38220600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38221000 0! #38221500 1! #38221600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38222000 0! #38222500 1! #38222600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38223000 0! #38223500 1! #38223600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38224000 0! #38224500 1! #38224600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38225000 0! #38225500 1! #38225600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38226000 0! #38226500 1! #38226600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38227000 0! #38227500 1! #38227600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #38227700 b0 g b10100000 c 1e 1h #38228000 0! #38228500 1! #38228600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38229000 0! #38229500 1! #38229600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38230000 0! #38230500 1! #38230600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38231000 0! #38231500 1! #38231600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38232000 0! #38232500 1! #38232600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38233000 0! #38233500 1! #38233600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38234000 0! #38234500 1! #38234600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38235000 0! #38235500 1! #38235600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38236000 0! #38236500 1! #38236600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38237000 0! #38237500 1! #38237600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38238000 0! #38238500 1! #38238600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38239000 0! #38239500 1! #38239600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38240000 0! #38240500 1! #38240600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38241000 0! #38241500 1! #38241600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38242000 0! #38242500 1! #38242600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38243000 0! #38243500 1! #38243600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38244000 0! #38244500 1! #38244600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38245000 0! #38245500 1! #38245600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38246000 0! #38246500 1! #38246600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38247000 0! #38247500 1! #38247600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38248000 0! #38248500 1! #38248600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38249000 0! #38249500 1! #38249600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38250000 0! #38250500 1! #38250600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38251000 0! #38251500 1! #38251600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38252000 0! #38252500 1! #38252600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38253000 0! #38253500 1! #38253600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38254000 0! #38254500 1! #38254600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38255000 0! #38255500 1! #38255600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38256000 0! #38256500 1! #38256600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38257000 0! #38257500 1! #38257600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38258000 0! #38258500 1! #38258600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38259000 0! #38259500 1! #38259600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38260000 0! #38260500 1! #38260600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38261000 0! #38261500 1! #38261600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38262000 0! #38262500 1! #38262600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38263000 0! #38263500 1! #38263600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38264000 0! #38264500 1! #38264600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38265000 0! #38265500 1! #38265600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38266000 0! #38266500 1! #38266600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38267000 0! #38267500 1! #38267600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38268000 0! #38268500 1! #38268600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38269000 0! #38269500 1! #38269600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38270000 0! #38270500 1! #38270600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38271000 0! #38271500 1! #38271600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38272000 0! #38272500 1! #38272600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38273000 0! #38273500 1! #38273600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38274000 0! #38274500 1! #38274600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38275000 0! #38275500 1! #38275600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38276000 0! #38276500 1! #38276600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38277000 0! #38277500 1! #38277600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38278000 0! #38278500 1! #38278600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38279000 0! #38279500 1! #38279600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38280000 0! #38280500 1! #38280600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38281000 0! #38281500 1! #38281600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38282000 0! #38282500 1! #38282600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38283000 0! #38283500 1! #38283600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38284000 0! #38284500 1! #38284600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38285000 0! #38285500 1! #38285600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38286000 0! #38286500 1! #38286600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38287000 0! #38287500 1! #38287600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38288000 0! #38288500 1! #38288600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38289000 0! #38289500 1! #38289600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38290000 0! #38290500 1! #38290600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38291000 0! #38291500 1! #38291600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38292000 0! #38292500 1! #38292600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38293000 0! #38293500 1! #38293600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38294000 0! #38294500 1! #38294600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38295000 0! #38295500 1! #38295600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38296000 0! #38296500 1! #38296600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38297000 0! #38297500 1! #38297600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38298000 0! #38298500 1! #38298600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38299000 0! #38299500 1! #38299600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38300000 0! #38300500 1! #38300600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38301000 0! #38301500 1! #38301600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38302000 0! #38302500 1! #38302600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38303000 0! #38303500 1! #38303600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38304000 0! #38304500 1! #38304600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38305000 0! #38305500 1! #38305600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38306000 0! #38306500 1! #38306600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38307000 0! #38307500 1! #38307600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38308000 0! #38308500 1! #38308600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38309000 0! #38309500 1! #38309600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38310000 0! #38310500 1! #38310600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38311000 0! #38311500 1! #38311600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38312000 0! #38312500 1! #38312600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38313000 0! #38313500 1! #38313600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38314000 0! #38314500 1! #38314600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38315000 0! #38315500 1! #38315600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38316000 0! #38316500 1! #38316600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38317000 0! #38317500 1! #38317600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38318000 0! #38318500 1! #38318600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38319000 0! #38319500 1! #38319600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38320000 0! #38320500 1! #38320600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38321000 0! #38321500 1! #38321600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38322000 0! #38322500 1! #38322600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38323000 0! #38323500 1! #38323600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38324000 0! #38324500 1! #38324600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38325000 0! #38325500 1! #38325600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38326000 0! #38326500 1! #38326600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38327000 0! #38327500 1! #38327600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38328000 0! #38328500 1! #38328600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38329000 0! #38329500 1! #38329600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #38329700 b1 q 0d 0j #38330000 0! #38330500 1! #38330600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38331000 0! #38331500 1! #38331600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38332000 0! #38332500 1! #38332600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38333000 0! #38333500 1! #38333600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38334000 0! #38334500 1! #38334600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38335000 0! #38335500 1! #38335600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38336000 0! #38336500 1! #38336600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38337000 0! #38337500 1! #38337600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38338000 0! #38338500 1! #38338600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38339000 0! #38339500 1! #38339600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38340000 0! #38340500 1! #38340600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38341000 0! #38341500 1! #38341600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38342000 0! #38342500 1! #38342600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38343000 0! #38343500 1! #38343600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38344000 0! #38344500 1! #38344600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38345000 0! #38345500 1! #38345600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38346000 0! #38346500 1! #38346600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38347000 0! #38347500 1! #38347600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38348000 0! #38348500 1! #38348600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38349000 0! #38349500 1! #38349600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38350000 0! #38350500 1! #38350600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38351000 0! #38351500 1! #38351600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38352000 0! #38352500 1! #38352600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38353000 0! #38353500 1! #38353600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38354000 0! #38354500 1! #38354600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38355000 0! #38355500 1! #38355600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38356000 0! #38356500 1! #38356600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38357000 0! #38357500 1! #38357600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38358000 0! #38358500 1! #38358600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38359000 0! #38359500 1! #38359600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38360000 0! #38360500 1! #38360600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38361000 0! #38361500 1! #38361600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38362000 0! #38362500 1! #38362600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38363000 0! #38363500 1! #38363600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38364000 0! #38364500 1! #38364600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38365000 0! #38365500 1! #38365600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38366000 0! #38366500 1! #38366600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38367000 0! #38367500 1! #38367600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38368000 0! #38368500 1! #38368600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38369000 0! #38369500 1! #38369600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38370000 0! #38370500 1! #38370600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38371000 0! #38371500 1! #38371600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38372000 0! #38372500 1! #38372600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38373000 0! #38373500 1! #38373600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38374000 0! #38374500 1! #38374600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38375000 0! #38375500 1! #38375600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38376000 0! #38376500 1! #38376600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38377000 0! #38377500 1! #38377600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38378000 0! #38378500 1! #38378600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38379000 0! #38379500 1! #38379600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38380000 0! #38380500 1! #38380600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38381000 0! #38381500 1! #38381600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38382000 0! #38382500 1! #38382600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38383000 0! #38383500 1! #38383600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38384000 0! #38384500 1! #38384600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38385000 0! #38385500 1! #38385600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38386000 0! #38386500 1! #38386600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38387000 0! #38387500 1! #38387600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38388000 0! #38388500 1! #38388600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38389000 0! #38389500 1! #38389600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38390000 0! #38390500 1! #38390600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38391000 0! #38391500 1! #38391600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38392000 0! #38392500 1! #38392600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38393000 0! #38393500 1! #38393600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38394000 0! #38394500 1! #38394600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38395000 0! #38395500 1! #38395600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38396000 0! #38396500 1! #38396600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38397000 0! #38397500 1! #38397600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38398000 0! #38398500 1! #38398600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38399000 0! #38399500 1! #38399600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38400000 0! #38400500 1! #38400600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38401000 0! #38401500 1! #38401600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38402000 0! #38402500 1! #38402600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38403000 0! #38403500 1! #38403600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38404000 0! #38404500 1! #38404600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38405000 0! #38405500 1! #38405600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38406000 0! #38406500 1! #38406600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38407000 0! #38407500 1! #38407600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38408000 0! #38408500 1! #38408600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38409000 0! #38409500 1! #38409600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38410000 0! #38410500 1! #38410600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38411000 0! #38411500 1! #38411600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38412000 0! #38412500 1! #38412600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38413000 0! #38413500 1! #38413600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38414000 0! #38414500 1! #38414600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38415000 0! #38415500 1! #38415600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38416000 0! #38416500 1! #38416600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38417000 0! #38417500 1! #38417600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38418000 0! #38418500 1! #38418600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38419000 0! #38419500 1! #38419600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38420000 0! #38420500 1! #38420600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38421000 0! #38421500 1! #38421600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38422000 0! #38422500 1! #38422600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38423000 0! #38423500 1! #38423600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38424000 0! #38424500 1! #38424600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38425000 0! #38425500 1! #38425600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38426000 0! #38426500 1! #38426600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38427000 0! #38427500 1! #38427600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38428000 0! #38428500 1! #38428600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38429000 0! #38429500 1! #38429600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38430000 0! #38430500 1! #38430600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38431000 0! #38431500 1! #38431600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q #38432000 0! #38432500 1! #38432600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38433000 0! #38433500 1! #38433600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38434000 0! #38434500 1! #38434600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38435000 0! #38435500 1! #38435600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38436000 0! #38436500 1! #38436600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38437000 0! #38437500 1! #38437600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38438000 0! #38438500 1! #38438600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38439000 0! #38439500 1! #38439600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38440000 0! #38440500 1! #38440600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38441000 0! #38441500 1! #38441600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38442000 0! #38442500 1! #38442600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38443000 0! #38443500 1! #38443600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38444000 0! #38444500 1! #38444600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38445000 0! #38445500 1! #38445600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38446000 0! #38446500 1! #38446600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38447000 0! #38447500 1! #38447600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38448000 0! #38448500 1! #38448600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38449000 0! #38449500 1! #38449600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38450000 0! #38450500 1! #38450600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38451000 0! #38451500 1! #38451600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38452000 0! #38452500 1! #38452600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38453000 0! #38453500 1! #38453600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38454000 0! #38454500 1! #38454600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38455000 0! #38455500 1! #38455600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38456000 0! #38456500 1! #38456600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38457000 0! #38457500 1! #38457600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38458000 0! #38458500 1! #38458600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38459000 0! #38459500 1! #38459600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38460000 0! #38460500 1! #38460600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38461000 0! #38461500 1! #38461600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38462000 0! #38462500 1! #38462600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38463000 0! #38463500 1! #38463600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38464000 0! #38464500 1! #38464600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38465000 0! #38465500 1! #38465600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38466000 0! #38466500 1! #38466600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38467000 0! #38467500 1! #38467600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38468000 0! #38468500 1! #38468600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38469000 0! #38469500 1! #38469600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38470000 0! #38470500 1! #38470600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38471000 0! #38471500 1! #38471600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38472000 0! #38472500 1! #38472600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38473000 0! #38473500 1! #38473600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38474000 0! #38474500 1! #38474600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38475000 0! #38475500 1! #38475600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38476000 0! #38476500 1! #38476600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38477000 0! #38477500 1! #38477600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38478000 0! #38478500 1! #38478600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38479000 0! #38479500 1! #38479600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38480000 0! #38480500 1! #38480600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38481000 0! #38481500 1! #38481600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38482000 0! #38482500 1! #38482600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #38482700 b111 g b1000000 c 0e 0h #38483000 0! #38483500 1! #38483600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38484000 0! #38484500 1! #38484600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38485000 0! #38485500 1! #38485600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38486000 0! #38486500 1! #38486600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38487000 0! #38487500 1! #38487600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38488000 0! #38488500 1! #38488600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38489000 0! #38489500 1! #38489600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38490000 0! #38490500 1! #38490600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38491000 0! #38491500 1! #38491600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38492000 0! #38492500 1! #38492600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38493000 0! #38493500 1! #38493600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38494000 0! #38494500 1! #38494600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38495000 0! #38495500 1! #38495600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38496000 0! #38496500 1! #38496600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38497000 0! #38497500 1! #38497600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38498000 0! #38498500 1! #38498600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38499000 0! #38499500 1! #38499600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38500000 0! #38500500 1! #38500600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38501000 0! #38501500 1! #38501600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38502000 0! #38502500 1! #38502600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38503000 0! #38503500 1! #38503600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38504000 0! #38504500 1! #38504600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38505000 0! #38505500 1! #38505600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38506000 0! #38506500 1! #38506600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38507000 0! #38507500 1! #38507600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38508000 0! #38508500 1! #38508600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38509000 0! #38509500 1! #38509600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38510000 0! #38510500 1! #38510600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38511000 0! #38511500 1! #38511600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38512000 0! #38512500 1! #38512600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38513000 0! #38513500 1! #38513600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38514000 0! #38514500 1! #38514600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38515000 0! #38515500 1! #38515600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38516000 0! #38516500 1! #38516600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38517000 0! #38517500 1! #38517600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38518000 0! #38518500 1! #38518600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38519000 0! #38519500 1! #38519600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38520000 0! #38520500 1! #38520600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38521000 0! #38521500 1! #38521600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38522000 0! #38522500 1! #38522600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38523000 0! #38523500 1! #38523600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38524000 0! #38524500 1! #38524600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38525000 0! #38525500 1! #38525600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38526000 0! #38526500 1! #38526600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38527000 0! #38527500 1! #38527600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38528000 0! #38528500 1! #38528600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38529000 0! #38529500 1! #38529600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38530000 0! #38530500 1! #38530600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38531000 0! #38531500 1! #38531600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38532000 0! #38532500 1! #38532600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38533000 0! #38533500 1! #38533600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38534000 0! #38534500 1! #38534600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38535000 0! #38535500 1! #38535600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38536000 0! #38536500 1! #38536600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38537000 0! #38537500 1! #38537600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38538000 0! #38538500 1! #38538600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38539000 0! #38539500 1! #38539600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38540000 0! #38540500 1! #38540600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38541000 0! #38541500 1! #38541600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38542000 0! #38542500 1! #38542600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38543000 0! #38543500 1! #38543600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38544000 0! #38544500 1! #38544600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38545000 0! #38545500 1! #38545600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38546000 0! #38546500 1! #38546600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38547000 0! #38547500 1! #38547600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38548000 0! #38548500 1! #38548600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38549000 0! #38549500 1! #38549600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38550000 0! #38550500 1! #38550600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38551000 0! #38551500 1! #38551600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38552000 0! #38552500 1! #38552600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38553000 0! #38553500 1! #38553600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38554000 0! #38554500 1! #38554600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38555000 0! #38555500 1! #38555600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38556000 0! #38556500 1! #38556600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38557000 0! #38557500 1! #38557600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38558000 0! #38558500 1! #38558600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38559000 0! #38559500 1! #38559600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38560000 0! #38560500 1! #38560600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38561000 0! #38561500 1! #38561600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38562000 0! #38562500 1! #38562600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38563000 0! #38563500 1! #38563600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38564000 0! #38564500 1! #38564600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38565000 0! #38565500 1! #38565600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38566000 0! #38566500 1! #38566600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38567000 0! #38567500 1! #38567600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38568000 0! #38568500 1! #38568600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38569000 0! #38569500 1! #38569600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38570000 0! #38570500 1! #38570600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38571000 0! #38571500 1! #38571600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38572000 0! #38572500 1! #38572600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38573000 0! #38573500 1! #38573600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38574000 0! #38574500 1! #38574600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38575000 0! #38575500 1! #38575600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38576000 0! #38576500 1! #38576600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38577000 0! #38577500 1! #38577600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38578000 0! #38578500 1! #38578600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38579000 0! #38579500 1! #38579600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38580000 0! #38580500 1! #38580600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38581000 0! #38581500 1! #38581600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38582000 0! #38582500 1! #38582600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38583000 0! #38583500 1! #38583600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38584000 0! #38584500 1! #38584600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #38584700 1j b10 q 1i 1O #38585000 0! #38585500 1! #38585600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38586000 0! #38586500 1! #38586600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #38587000 0! #38587500 1! #38587600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38588000 0! #38588500 1! #38588600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #38589000 0! #38589500 1! #38589600 b1000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38590000 0! #38590500 1! #38590600 1E 1F 1G b10000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 0@ 1A 1B b0xxxxxxx C 1H #38591000 0! #38591500 1! #38591600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38591700 1E 1F 1G b10000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b1000001 C 1H #38592000 0! #38592500 1! #38592600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38593000 0! #38593500 1! #38593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b1000011 C #38594000 0! #38594500 1! #38594600 b1000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38595000 0! #38595500 1! #38595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38596000 0! #38596500 1! #38596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38597000 0! #38597500 1! #38597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38598000 0! #38598500 1! #38598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38599000 0! #38599500 1! #38599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38600000 0! #38600500 1! #38600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38601000 0! #38601500 1! #38601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38602000 0! #38602500 1! #38602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38603000 0! #38603500 1! #38603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38604000 0! #38604500 1! #38604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38605000 0! #38605500 1! #38605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38606000 0! #38606500 1! #38606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38607000 0! #38607500 1! #38607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38608000 0! #38608500 1! #38608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38609000 0! #38609500 1! #38609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38610000 0! #38610500 1! #38610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38611000 0! #38611500 1! #38611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38612000 0! #38612500 1! #38612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38613000 0! #38613500 1! #38613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38614000 0! #38614500 1! #38614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38615000 0! #38615500 1! #38615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38616000 0! #38616500 1! #38616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38617000 0! #38617500 1! #38617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38618000 0! #38618500 1! #38618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38619000 0! #38619500 1! #38619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38620000 0! #38620500 1! #38620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38621000 0! #38621500 1! #38621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38622000 0! #38622500 1! #38622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38623000 0! #38623500 1! #38623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38624000 0! #38624500 1! #38624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38625000 0! #38625500 1! #38625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38626000 0! #38626500 1! #38626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38627000 0! #38627500 1! #38627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38628000 0! #38628500 1! #38628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38629000 0! #38629500 1! #38629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38630000 0! #38630500 1! #38630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38631000 0! #38631500 1! #38631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38632000 0! #38632500 1! #38632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38633000 0! #38633500 1! #38633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38634000 0! #38634500 1! #38634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38635000 0! #38635500 1! #38635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38636000 0! #38636500 1! #38636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38637000 0! #38637500 1! #38637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38638000 0! #38638500 1! #38638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38639000 0! #38639500 1! #38639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38640000 0! #38640500 1! #38640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38641000 0! #38641500 1! #38641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38642000 0! #38642500 1! #38642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38643000 0! #38643500 1! #38643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38644000 0! #38644500 1! #38644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38645000 0! #38645500 1! #38645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38646000 0! #38646500 1! #38646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38647000 0! #38647500 1! #38647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38648000 0! #38648500 1! #38648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38649000 0! #38649500 1! #38649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38650000 0! #38650500 1! #38650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38651000 0! #38651500 1! #38651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38652000 0! #38652500 1! #38652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38653000 0! #38653500 1! #38653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38654000 0! #38654500 1! #38654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38655000 0! #38655500 1! #38655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38656000 0! #38656500 1! #38656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38657000 0! #38657500 1! #38657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38658000 0! #38658500 1! #38658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38659000 0! #38659500 1! #38659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38660000 0! #38660500 1! #38660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38661000 0! #38661500 1! #38661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38662000 0! #38662500 1! #38662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38663000 0! #38663500 1! #38663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38664000 0! #38664500 1! #38664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38665000 0! #38665500 1! #38665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38666000 0! #38666500 1! #38666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38667000 0! #38667500 1! #38667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38668000 0! #38668500 1! #38668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38669000 0! #38669500 1! #38669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38670000 0! #38670500 1! #38670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38671000 0! #38671500 1! #38671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38672000 0! #38672500 1! #38672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38673000 0! #38673500 1! #38673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38674000 0! #38674500 1! #38674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38675000 0! #38675500 1! #38675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38676000 0! #38676500 1! #38676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38677000 0! #38677500 1! #38677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38678000 0! #38678500 1! #38678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38679000 0! #38679500 1! #38679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38680000 0! #38680500 1! #38680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38681000 0! #38681500 1! #38681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38682000 0! #38682500 1! #38682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38683000 0! #38683500 1! #38683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38684000 0! #38684500 1! #38684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38685000 0! #38685500 1! #38685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38686000 0! #38686500 1! #38686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #38687000 0! #38687500 1! #38687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38688000 0! #38688500 1! #38688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38689000 0! #38689500 1! #38689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38690000 0! #38690500 1! #38690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38691000 0! #38691500 1! #38691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38692000 0! #38692500 1! #38692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38693000 0! #38693500 1! #38693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38694000 0! #38694500 1! #38694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38695000 0! #38695500 1! #38695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38696000 0! #38696500 1! #38696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38697000 0! #38697500 1! #38697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38698000 0! #38698500 1! #38698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38699000 0! #38699500 1! #38699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38700000 0! #38700500 1! #38700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38701000 0! #38701500 1! #38701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38702000 0! #38702500 1! #38702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38703000 0! #38703500 1! #38703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38704000 0! #38704500 1! #38704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38705000 0! #38705500 1! #38705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38706000 0! #38706500 1! #38706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38707000 0! #38707500 1! #38707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38708000 0! #38708500 1! #38708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38709000 0! #38709500 1! #38709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38710000 0! #38710500 1! #38710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38711000 0! #38711500 1! #38711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38712000 0! #38712500 1! #38712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38713000 0! #38713500 1! #38713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38714000 0! #38714500 1! #38714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38715000 0! #38715500 1! #38715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38716000 0! #38716500 1! #38716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38717000 0! #38717500 1! #38717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38718000 0! #38718500 1! #38718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38719000 0! #38719500 1! #38719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38720000 0! #38720500 1! #38720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38721000 0! #38721500 1! #38721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38722000 0! #38722500 1! #38722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38723000 0! #38723500 1! #38723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38724000 0! #38724500 1! #38724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38725000 0! #38725500 1! #38725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38726000 0! #38726500 1! #38726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38727000 0! #38727500 1! #38727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38728000 0! #38728500 1! #38728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38729000 0! #38729500 1! #38729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38730000 0! #38730500 1! #38730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38731000 0! #38731500 1! #38731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38732000 0! #38732500 1! #38732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38733000 0! #38733500 1! #38733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38734000 0! #38734500 1! #38734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38735000 0! #38735500 1! #38735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38736000 0! #38736500 1! #38736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38737000 0! #38737500 1! #38737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #38737700 b10000000 c #38738000 0! #38738500 1! #38738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38739000 0! #38739500 1! #38739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38740000 0! #38740500 1! #38740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38741000 0! #38741500 1! #38741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38742000 0! #38742500 1! #38742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38743000 0! #38743500 1! #38743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38744000 0! #38744500 1! #38744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38745000 0! #38745500 1! #38745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38746000 0! #38746500 1! #38746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38747000 0! #38747500 1! #38747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38748000 0! #38748500 1! #38748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38749000 0! #38749500 1! #38749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38750000 0! #38750500 1! #38750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38751000 0! #38751500 1! #38751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38752000 0! #38752500 1! #38752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38753000 0! #38753500 1! #38753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38754000 0! #38754500 1! #38754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38755000 0! #38755500 1! #38755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38756000 0! #38756500 1! #38756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38757000 0! #38757500 1! #38757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38758000 0! #38758500 1! #38758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38759000 0! #38759500 1! #38759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38760000 0! #38760500 1! #38760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38761000 0! #38761500 1! #38761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38762000 0! #38762500 1! #38762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38763000 0! #38763500 1! #38763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38764000 0! #38764500 1! #38764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38765000 0! #38765500 1! #38765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38766000 0! #38766500 1! #38766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38767000 0! #38767500 1! #38767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38768000 0! #38768500 1! #38768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38769000 0! #38769500 1! #38769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38770000 0! #38770500 1! #38770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38771000 0! #38771500 1! #38771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38772000 0! #38772500 1! #38772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38773000 0! #38773500 1! #38773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38774000 0! #38774500 1! #38774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38775000 0! #38775500 1! #38775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38776000 0! #38776500 1! #38776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38777000 0! #38777500 1! #38777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38778000 0! #38778500 1! #38778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38779000 0! #38779500 1! #38779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38780000 0! #38780500 1! #38780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38781000 0! #38781500 1! #38781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38782000 0! #38782500 1! #38782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38783000 0! #38783500 1! #38783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38784000 0! #38784500 1! #38784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38785000 0! #38785500 1! #38785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38786000 0! #38786500 1! #38786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38787000 0! #38787500 1! #38787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38788000 0! #38788500 1! #38788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38789000 0! #38789500 1! #38789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38790000 0! #38790500 1! #38790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38791000 0! #38791500 1! #38791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38792000 0! #38792500 1! #38792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38793000 0! #38793500 1! #38793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38794000 0! #38794500 1! #38794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38795000 0! #38795500 1! #38795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38796000 0! #38796500 1! #38796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38797000 0! #38797500 1! #38797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38798000 0! #38798500 1! #38798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38799000 0! #38799500 1! #38799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38800000 0! #38800500 1! #38800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38801000 0! #38801500 1! #38801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38802000 0! #38802500 1! #38802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38803000 0! #38803500 1! #38803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38804000 0! #38804500 1! #38804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38805000 0! #38805500 1! #38805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38806000 0! #38806500 1! #38806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38807000 0! #38807500 1! #38807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38808000 0! #38808500 1! #38808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38809000 0! #38809500 1! #38809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38810000 0! #38810500 1! #38810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38811000 0! #38811500 1! #38811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38812000 0! #38812500 1! #38812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38813000 0! #38813500 1! #38813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38814000 0! #38814500 1! #38814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38815000 0! #38815500 1! #38815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38816000 0! #38816500 1! #38816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38817000 0! #38817500 1! #38817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38818000 0! #38818500 1! #38818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38819000 0! #38819500 1! #38819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38820000 0! #38820500 1! #38820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38821000 0! #38821500 1! #38821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38822000 0! #38822500 1! #38822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38823000 0! #38823500 1! #38823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38824000 0! #38824500 1! #38824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38825000 0! #38825500 1! #38825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38826000 0! #38826500 1! #38826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38827000 0! #38827500 1! #38827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38828000 0! #38828500 1! #38828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38829000 0! #38829500 1! #38829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38830000 0! #38830500 1! #38830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38831000 0! #38831500 1! #38831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38832000 0! #38832500 1! #38832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38833000 0! #38833500 1! #38833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38834000 0! #38834500 1! #38834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38835000 0! #38835500 1! #38835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38836000 0! #38836500 1! #38836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38837000 0! #38837500 1! #38837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38838000 0! #38838500 1! #38838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38839000 0! #38839500 1! #38839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #38839700 0i #38840000 0! #38840500 1! #38840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38841000 0! #38841500 1! #38841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38842000 0! #38842500 1! #38842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38843000 0! #38843500 1! #38843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38844000 0! #38844500 1! #38844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38845000 0! #38845500 1! #38845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38846000 0! #38846500 1! #38846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38847000 0! #38847500 1! #38847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38848000 0! #38848500 1! #38848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38849000 0! #38849500 1! #38849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38850000 0! #38850500 1! #38850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38851000 0! #38851500 1! #38851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38852000 0! #38852500 1! #38852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38853000 0! #38853500 1! #38853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38854000 0! #38854500 1! #38854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38855000 0! #38855500 1! #38855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38856000 0! #38856500 1! #38856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38857000 0! #38857500 1! #38857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38858000 0! #38858500 1! #38858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38859000 0! #38859500 1! #38859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38860000 0! #38860500 1! #38860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38861000 0! #38861500 1! #38861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38862000 0! #38862500 1! #38862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38863000 0! #38863500 1! #38863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38864000 0! #38864500 1! #38864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38865000 0! #38865500 1! #38865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38866000 0! #38866500 1! #38866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38867000 0! #38867500 1! #38867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38868000 0! #38868500 1! #38868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38869000 0! #38869500 1! #38869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38870000 0! #38870500 1! #38870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38871000 0! #38871500 1! #38871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38872000 0! #38872500 1! #38872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38873000 0! #38873500 1! #38873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38874000 0! #38874500 1! #38874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38875000 0! #38875500 1! #38875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38876000 0! #38876500 1! #38876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38877000 0! #38877500 1! #38877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38878000 0! #38878500 1! #38878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38879000 0! #38879500 1! #38879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38880000 0! #38880500 1! #38880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38881000 0! #38881500 1! #38881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38882000 0! #38882500 1! #38882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38883000 0! #38883500 1! #38883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38884000 0! #38884500 1! #38884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38885000 0! #38885500 1! #38885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38886000 0! #38886500 1! #38886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38887000 0! #38887500 1! #38887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38888000 0! #38888500 1! #38888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38889000 0! #38889500 1! #38889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38890000 0! #38890500 1! #38890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38891000 0! #38891500 1! #38891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38892000 0! #38892500 1! #38892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38893000 0! #38893500 1! #38893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38894000 0! #38894500 1! #38894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38895000 0! #38895500 1! #38895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38896000 0! #38896500 1! #38896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38897000 0! #38897500 1! #38897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38898000 0! #38898500 1! #38898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38899000 0! #38899500 1! #38899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38900000 0! #38900500 1! #38900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38901000 0! #38901500 1! #38901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38902000 0! #38902500 1! #38902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38903000 0! #38903500 1! #38903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38904000 0! #38904500 1! #38904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38905000 0! #38905500 1! #38905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38906000 0! #38906500 1! #38906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38907000 0! #38907500 1! #38907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38908000 0! #38908500 1! #38908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38909000 0! #38909500 1! #38909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38910000 0! #38910500 1! #38910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38911000 0! #38911500 1! #38911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38912000 0! #38912500 1! #38912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38913000 0! #38913500 1! #38913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38914000 0! #38914500 1! #38914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38915000 0! #38915500 1! #38915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38916000 0! #38916500 1! #38916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38917000 0! #38917500 1! #38917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38918000 0! #38918500 1! #38918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38919000 0! #38919500 1! #38919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38920000 0! #38920500 1! #38920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38921000 0! #38921500 1! #38921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38922000 0! #38922500 1! #38922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38923000 0! #38923500 1! #38923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38924000 0! #38924500 1! #38924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38925000 0! #38925500 1! #38925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38926000 0! #38926500 1! #38926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38927000 0! #38927500 1! #38927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38928000 0! #38928500 1! #38928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38929000 0! #38929500 1! #38929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38930000 0! #38930500 1! #38930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38931000 0! #38931500 1! #38931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38932000 0! #38932500 1! #38932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38933000 0! #38933500 1! #38933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38934000 0! #38934500 1! #38934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38935000 0! #38935500 1! #38935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38936000 0! #38936500 1! #38936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38937000 0! #38937500 1! #38937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38938000 0! #38938500 1! #38938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38939000 0! #38939500 1! #38939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38940000 0! #38940500 1! #38940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38941000 0! #38941500 1! #38941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38942000 0! #38942500 1! #38942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38943000 0! #38943500 1! #38943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38944000 0! #38944500 1! #38944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38945000 0! #38945500 1! #38945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38946000 0! #38946500 1! #38946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38947000 0! #38947500 1! #38947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38948000 0! #38948500 1! #38948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38949000 0! #38949500 1! #38949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38950000 0! #38950500 1! #38950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38951000 0! #38951500 1! #38951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38952000 0! #38952500 1! #38952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38953000 0! #38953500 1! #38953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38954000 0! #38954500 1! #38954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38955000 0! #38955500 1! #38955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38956000 0! #38956500 1! #38956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38957000 0! #38957500 1! #38957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38958000 0! #38958500 1! #38958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38959000 0! #38959500 1! #38959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38960000 0! #38960500 1! #38960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38961000 0! #38961500 1! #38961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38962000 0! #38962500 1! #38962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38963000 0! #38963500 1! #38963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38964000 0! #38964500 1! #38964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38965000 0! #38965500 1! #38965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38966000 0! #38966500 1! #38966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38967000 0! #38967500 1! #38967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38968000 0! #38968500 1! #38968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38969000 0! #38969500 1! #38969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38970000 0! #38970500 1! #38970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38971000 0! #38971500 1! #38971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38972000 0! #38972500 1! #38972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38973000 0! #38973500 1! #38973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38974000 0! #38974500 1! #38974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38975000 0! #38975500 1! #38975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38976000 0! #38976500 1! #38976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38977000 0! #38977500 1! #38977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38978000 0! #38978500 1! #38978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38979000 0! #38979500 1! #38979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38980000 0! #38980500 1! #38980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38981000 0! #38981500 1! #38981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38982000 0! #38982500 1! #38982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38983000 0! #38983500 1! #38983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38984000 0! #38984500 1! #38984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38985000 0! #38985500 1! #38985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38986000 0! #38986500 1! #38986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38987000 0! #38987500 1! #38987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38988000 0! #38988500 1! #38988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38989000 0! #38989500 1! #38989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38990000 0! #38990500 1! #38990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38991000 0! #38991500 1! #38991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38992000 0! #38992500 1! #38992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #38992700 b110 g b0 c #38993000 0! #38993500 1! #38993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38994000 0! #38994500 1! #38994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38995000 0! #38995500 1! #38995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38996000 0! #38996500 1! #38996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38997000 0! #38997500 1! #38997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #38998000 0! #38998500 1! #38998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #38999000 0! #38999500 1! #38999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39000000 0! #39000500 1! #39000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39001000 0! #39001500 1! #39001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39002000 0! #39002500 1! #39002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39003000 0! #39003500 1! #39003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39004000 0! #39004500 1! #39004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39005000 0! #39005500 1! #39005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39006000 0! #39006500 1! #39006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39007000 0! #39007500 1! #39007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39008000 0! #39008500 1! #39008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39009000 0! #39009500 1! #39009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39010000 0! #39010500 1! #39010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39011000 0! #39011500 1! #39011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39012000 0! #39012500 1! #39012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39013000 0! #39013500 1! #39013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39014000 0! #39014500 1! #39014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39015000 0! #39015500 1! #39015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39016000 0! #39016500 1! #39016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39017000 0! #39017500 1! #39017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39018000 0! #39018500 1! #39018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39019000 0! #39019500 1! #39019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39020000 0! #39020500 1! #39020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39021000 0! #39021500 1! #39021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39022000 0! #39022500 1! #39022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39023000 0! #39023500 1! #39023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39024000 0! #39024500 1! #39024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39025000 0! #39025500 1! #39025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39026000 0! #39026500 1! #39026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39027000 0! #39027500 1! #39027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39028000 0! #39028500 1! #39028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39029000 0! #39029500 1! #39029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39030000 0! #39030500 1! #39030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39031000 0! #39031500 1! #39031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39032000 0! #39032500 1! #39032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39033000 0! #39033500 1! #39033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39034000 0! #39034500 1! #39034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39035000 0! #39035500 1! #39035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39036000 0! #39036500 1! #39036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39037000 0! #39037500 1! #39037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39038000 0! #39038500 1! #39038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39039000 0! #39039500 1! #39039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39040000 0! #39040500 1! #39040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39041000 0! #39041500 1! #39041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39042000 0! #39042500 1! #39042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39043000 0! #39043500 1! #39043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39044000 0! #39044500 1! #39044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39045000 0! #39045500 1! #39045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39046000 0! #39046500 1! #39046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39047000 0! #39047500 1! #39047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39048000 0! #39048500 1! #39048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39049000 0! #39049500 1! #39049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39050000 0! #39050500 1! #39050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39051000 0! #39051500 1! #39051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39052000 0! #39052500 1! #39052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39053000 0! #39053500 1! #39053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39054000 0! #39054500 1! #39054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39055000 0! #39055500 1! #39055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39056000 0! #39056500 1! #39056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39057000 0! #39057500 1! #39057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39058000 0! #39058500 1! #39058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39059000 0! #39059500 1! #39059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39060000 0! #39060500 1! #39060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39061000 0! #39061500 1! #39061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39062000 0! #39062500 1! #39062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39063000 0! #39063500 1! #39063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39064000 0! #39064500 1! #39064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39065000 0! #39065500 1! #39065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39066000 0! #39066500 1! #39066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39067000 0! #39067500 1! #39067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39068000 0! #39068500 1! #39068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39069000 0! #39069500 1! #39069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39070000 0! #39070500 1! #39070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39071000 0! #39071500 1! #39071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39072000 0! #39072500 1! #39072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39073000 0! #39073500 1! #39073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39074000 0! #39074500 1! #39074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39075000 0! #39075500 1! #39075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39076000 0! #39076500 1! #39076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39077000 0! #39077500 1! #39077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39078000 0! #39078500 1! #39078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39079000 0! #39079500 1! #39079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39080000 0! #39080500 1! #39080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39081000 0! #39081500 1! #39081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39082000 0! #39082500 1! #39082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39083000 0! #39083500 1! #39083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39084000 0! #39084500 1! #39084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39085000 0! #39085500 1! #39085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39086000 0! #39086500 1! #39086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39087000 0! #39087500 1! #39087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39088000 0! #39088500 1! #39088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39089000 0! #39089500 1! #39089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39090000 0! #39090500 1! #39090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39091000 0! #39091500 1! #39091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39092000 0! #39092500 1! #39092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39093000 0! #39093500 1! #39093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39094000 0! #39094500 1! #39094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #39095000 0! #39095500 1! #39095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39096000 0! #39096500 1! #39096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39097000 0! #39097500 1! #39097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39098000 0! #39098500 1! #39098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39099000 0! #39099500 1! #39099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39100000 0! #39100500 1! #39100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39101000 0! #39101500 1! #39101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39102000 0! #39102500 1! #39102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39103000 0! #39103500 1! #39103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39104000 0! #39104500 1! #39104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39105000 0! #39105500 1! #39105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39106000 0! #39106500 1! #39106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39107000 0! #39107500 1! #39107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39108000 0! #39108500 1! #39108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39109000 0! #39109500 1! #39109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39110000 0! #39110500 1! #39110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39111000 0! #39111500 1! #39111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39112000 0! #39112500 1! #39112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39113000 0! #39113500 1! #39113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39114000 0! #39114500 1! #39114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39115000 0! #39115500 1! #39115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39116000 0! #39116500 1! #39116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39117000 0! #39117500 1! #39117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39118000 0! #39118500 1! #39118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39119000 0! #39119500 1! #39119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39120000 0! #39120500 1! #39120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39121000 0! #39121500 1! #39121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39122000 0! #39122500 1! #39122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39123000 0! #39123500 1! #39123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39124000 0! #39124500 1! #39124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39125000 0! #39125500 1! #39125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39126000 0! #39126500 1! #39126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39127000 0! #39127500 1! #39127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39128000 0! #39128500 1! #39128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39129000 0! #39129500 1! #39129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39130000 0! #39130500 1! #39130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39131000 0! #39131500 1! #39131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39132000 0! #39132500 1! #39132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39133000 0! #39133500 1! #39133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39134000 0! #39134500 1! #39134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39135000 0! #39135500 1! #39135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39136000 0! #39136500 1! #39136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39137000 0! #39137500 1! #39137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39138000 0! #39138500 1! #39138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39139000 0! #39139500 1! #39139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39140000 0! #39140500 1! #39140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39141000 0! #39141500 1! #39141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39142000 0! #39142500 1! #39142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39143000 0! #39143500 1! #39143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39144000 0! #39144500 1! #39144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39145000 0! #39145500 1! #39145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39146000 0! #39146500 1! #39146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39147000 0! #39147500 1! #39147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39148000 0! #39148500 1! #39148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39149000 0! #39149500 1! #39149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39150000 0! #39150500 1! #39150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39151000 0! #39151500 1! #39151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39152000 0! #39152500 1! #39152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39153000 0! #39153500 1! #39153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39154000 0! #39154500 1! #39154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39155000 0! #39155500 1! #39155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39156000 0! #39156500 1! #39156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39157000 0! #39157500 1! #39157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39158000 0! #39158500 1! #39158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39159000 0! #39159500 1! #39159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39160000 0! #39160500 1! #39160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39161000 0! #39161500 1! #39161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39162000 0! #39162500 1! #39162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39163000 0! #39163500 1! #39163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39164000 0! #39164500 1! #39164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39165000 0! #39165500 1! #39165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39166000 0! #39166500 1! #39166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39167000 0! #39167500 1! #39167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39168000 0! #39168500 1! #39168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39169000 0! #39169500 1! #39169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39170000 0! #39170500 1! #39170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39171000 0! #39171500 1! #39171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39172000 0! #39172500 1! #39172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39173000 0! #39173500 1! #39173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39174000 0! #39174500 1! #39174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39175000 0! #39175500 1! #39175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39176000 0! #39176500 1! #39176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39177000 0! #39177500 1! #39177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39178000 0! #39178500 1! #39178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39179000 0! #39179500 1! #39179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39180000 0! #39180500 1! #39180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39181000 0! #39181500 1! #39181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39182000 0! #39182500 1! #39182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39183000 0! #39183500 1! #39183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39184000 0! #39184500 1! #39184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39185000 0! #39185500 1! #39185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39186000 0! #39186500 1! #39186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39187000 0! #39187500 1! #39187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39188000 0! #39188500 1! #39188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39189000 0! #39189500 1! #39189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39190000 0! #39190500 1! #39190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39191000 0! #39191500 1! #39191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39192000 0! #39192500 1! #39192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39193000 0! #39193500 1! #39193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39194000 0! #39194500 1! #39194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39195000 0! #39195500 1! #39195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39196000 0! #39196500 1! #39196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39197000 0! #39197500 1! #39197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39198000 0! #39198500 1! #39198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39199000 0! #39199500 1! #39199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39200000 0! #39200500 1! #39200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39201000 0! #39201500 1! #39201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39202000 0! #39202500 1! #39202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39203000 0! #39203500 1! #39203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39204000 0! #39204500 1! #39204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39205000 0! #39205500 1! #39205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39206000 0! #39206500 1! #39206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39207000 0! #39207500 1! #39207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39208000 0! #39208500 1! #39208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39209000 0! #39209500 1! #39209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39210000 0! #39210500 1! #39210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39211000 0! #39211500 1! #39211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39212000 0! #39212500 1! #39212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39213000 0! #39213500 1! #39213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39214000 0! #39214500 1! #39214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39215000 0! #39215500 1! #39215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39216000 0! #39216500 1! #39216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39217000 0! #39217500 1! #39217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39218000 0! #39218500 1! #39218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39219000 0! #39219500 1! #39219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39220000 0! #39220500 1! #39220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39221000 0! #39221500 1! #39221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39222000 0! #39222500 1! #39222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39223000 0! #39223500 1! #39223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39224000 0! #39224500 1! #39224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39225000 0! #39225500 1! #39225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39226000 0! #39226500 1! #39226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39227000 0! #39227500 1! #39227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39228000 0! #39228500 1! #39228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39229000 0! #39229500 1! #39229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39230000 0! #39230500 1! #39230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39231000 0! #39231500 1! #39231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39232000 0! #39232500 1! #39232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39233000 0! #39233500 1! #39233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39234000 0! #39234500 1! #39234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39235000 0! #39235500 1! #39235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39236000 0! #39236500 1! #39236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39237000 0! #39237500 1! #39237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39238000 0! #39238500 1! #39238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39239000 0! #39239500 1! #39239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39240000 0! #39240500 1! #39240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39241000 0! #39241500 1! #39241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39242000 0! #39242500 1! #39242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39243000 0! #39243500 1! #39243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39244000 0! #39244500 1! #39244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39245000 0! #39245500 1! #39245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39246000 0! #39246500 1! #39246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39247000 0! #39247500 1! #39247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #39247700 b101 g #39248000 0! #39248500 1! #39248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39249000 0! #39249500 1! #39249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39250000 0! #39250500 1! #39250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39251000 0! #39251500 1! #39251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39252000 0! #39252500 1! #39252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39253000 0! #39253500 1! #39253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39254000 0! #39254500 1! #39254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39255000 0! #39255500 1! #39255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39256000 0! #39256500 1! #39256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39257000 0! #39257500 1! #39257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39258000 0! #39258500 1! #39258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39259000 0! #39259500 1! #39259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39260000 0! #39260500 1! #39260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39261000 0! #39261500 1! #39261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39262000 0! #39262500 1! #39262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39263000 0! #39263500 1! #39263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39264000 0! #39264500 1! #39264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39265000 0! #39265500 1! #39265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39266000 0! #39266500 1! #39266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39267000 0! #39267500 1! #39267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39268000 0! #39268500 1! #39268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39269000 0! #39269500 1! #39269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39270000 0! #39270500 1! #39270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39271000 0! #39271500 1! #39271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39272000 0! #39272500 1! #39272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39273000 0! #39273500 1! #39273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39274000 0! #39274500 1! #39274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39275000 0! #39275500 1! #39275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39276000 0! #39276500 1! #39276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39277000 0! #39277500 1! #39277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39278000 0! #39278500 1! #39278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39279000 0! #39279500 1! #39279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39280000 0! #39280500 1! #39280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39281000 0! #39281500 1! #39281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39282000 0! #39282500 1! #39282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39283000 0! #39283500 1! #39283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39284000 0! #39284500 1! #39284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39285000 0! #39285500 1! #39285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39286000 0! #39286500 1! #39286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39287000 0! #39287500 1! #39287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39288000 0! #39288500 1! #39288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39289000 0! #39289500 1! #39289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39290000 0! #39290500 1! #39290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39291000 0! #39291500 1! #39291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39292000 0! #39292500 1! #39292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39293000 0! #39293500 1! #39293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39294000 0! #39294500 1! #39294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39295000 0! #39295500 1! #39295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39296000 0! #39296500 1! #39296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39297000 0! #39297500 1! #39297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39298000 0! #39298500 1! #39298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39299000 0! #39299500 1! #39299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39300000 0! #39300500 1! #39300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39301000 0! #39301500 1! #39301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39302000 0! #39302500 1! #39302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39303000 0! #39303500 1! #39303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39304000 0! #39304500 1! #39304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39305000 0! #39305500 1! #39305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39306000 0! #39306500 1! #39306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39307000 0! #39307500 1! #39307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39308000 0! #39308500 1! #39308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39309000 0! #39309500 1! #39309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39310000 0! #39310500 1! #39310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39311000 0! #39311500 1! #39311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39312000 0! #39312500 1! #39312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39313000 0! #39313500 1! #39313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39314000 0! #39314500 1! #39314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39315000 0! #39315500 1! #39315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39316000 0! #39316500 1! #39316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39317000 0! #39317500 1! #39317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39318000 0! #39318500 1! #39318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39319000 0! #39319500 1! #39319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39320000 0! #39320500 1! #39320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39321000 0! #39321500 1! #39321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39322000 0! #39322500 1! #39322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39323000 0! #39323500 1! #39323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39324000 0! #39324500 1! #39324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39325000 0! #39325500 1! #39325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39326000 0! #39326500 1! #39326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39327000 0! #39327500 1! #39327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39328000 0! #39328500 1! #39328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39329000 0! #39329500 1! #39329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39330000 0! #39330500 1! #39330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39331000 0! #39331500 1! #39331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39332000 0! #39332500 1! #39332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39333000 0! #39333500 1! #39333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39334000 0! #39334500 1! #39334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39335000 0! #39335500 1! #39335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39336000 0! #39336500 1! #39336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39337000 0! #39337500 1! #39337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39338000 0! #39338500 1! #39338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39339000 0! #39339500 1! #39339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39340000 0! #39340500 1! #39340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39341000 0! #39341500 1! #39341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39342000 0! #39342500 1! #39342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39343000 0! #39343500 1! #39343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39344000 0! #39344500 1! #39344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39345000 0! #39345500 1! #39345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39346000 0! #39346500 1! #39346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39347000 0! #39347500 1! #39347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39348000 0! #39348500 1! #39348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39349000 0! #39349500 1! #39349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #39350000 0! #39350500 1! #39350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39351000 0! #39351500 1! #39351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39352000 0! #39352500 1! #39352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39353000 0! #39353500 1! #39353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39354000 0! #39354500 1! #39354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39355000 0! #39355500 1! #39355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39356000 0! #39356500 1! #39356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39357000 0! #39357500 1! #39357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39358000 0! #39358500 1! #39358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39359000 0! #39359500 1! #39359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39360000 0! #39360500 1! #39360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39361000 0! #39361500 1! #39361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39362000 0! #39362500 1! #39362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39363000 0! #39363500 1! #39363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39364000 0! #39364500 1! #39364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39365000 0! #39365500 1! #39365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39366000 0! #39366500 1! #39366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39367000 0! #39367500 1! #39367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39368000 0! #39368500 1! #39368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39369000 0! #39369500 1! #39369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39370000 0! #39370500 1! #39370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39371000 0! #39371500 1! #39371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39372000 0! #39372500 1! #39372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39373000 0! #39373500 1! #39373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39374000 0! #39374500 1! #39374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39375000 0! #39375500 1! #39375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39376000 0! #39376500 1! #39376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39377000 0! #39377500 1! #39377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39378000 0! #39378500 1! #39378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39379000 0! #39379500 1! #39379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39380000 0! #39380500 1! #39380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39381000 0! #39381500 1! #39381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39382000 0! #39382500 1! #39382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39383000 0! #39383500 1! #39383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39384000 0! #39384500 1! #39384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39385000 0! #39385500 1! #39385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39386000 0! #39386500 1! #39386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39387000 0! #39387500 1! #39387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39388000 0! #39388500 1! #39388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39389000 0! #39389500 1! #39389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39390000 0! #39390500 1! #39390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39391000 0! #39391500 1! #39391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39392000 0! #39392500 1! #39392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39393000 0! #39393500 1! #39393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39394000 0! #39394500 1! #39394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39395000 0! #39395500 1! #39395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39396000 0! #39396500 1! #39396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39397000 0! #39397500 1! #39397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39398000 0! #39398500 1! #39398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39399000 0! #39399500 1! #39399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39400000 0! #39400500 1! #39400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39401000 0! #39401500 1! #39401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39402000 0! #39402500 1! #39402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39403000 0! #39403500 1! #39403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39404000 0! #39404500 1! #39404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39405000 0! #39405500 1! #39405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39406000 0! #39406500 1! #39406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39407000 0! #39407500 1! #39407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39408000 0! #39408500 1! #39408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39409000 0! #39409500 1! #39409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39410000 0! #39410500 1! #39410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39411000 0! #39411500 1! #39411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39412000 0! #39412500 1! #39412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39413000 0! #39413500 1! #39413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39414000 0! #39414500 1! #39414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39415000 0! #39415500 1! #39415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39416000 0! #39416500 1! #39416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39417000 0! #39417500 1! #39417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39418000 0! #39418500 1! #39418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39419000 0! #39419500 1! #39419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39420000 0! #39420500 1! #39420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39421000 0! #39421500 1! #39421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39422000 0! #39422500 1! #39422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39423000 0! #39423500 1! #39423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39424000 0! #39424500 1! #39424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39425000 0! #39425500 1! #39425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39426000 0! #39426500 1! #39426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39427000 0! #39427500 1! #39427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39428000 0! #39428500 1! #39428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39429000 0! #39429500 1! #39429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39430000 0! #39430500 1! #39430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39431000 0! #39431500 1! #39431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39432000 0! #39432500 1! #39432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39433000 0! #39433500 1! #39433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39434000 0! #39434500 1! #39434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39435000 0! #39435500 1! #39435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39436000 0! #39436500 1! #39436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39437000 0! #39437500 1! #39437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39438000 0! #39438500 1! #39438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39439000 0! #39439500 1! #39439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39440000 0! #39440500 1! #39440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39441000 0! #39441500 1! #39441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39442000 0! #39442500 1! #39442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39443000 0! #39443500 1! #39443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39444000 0! #39444500 1! #39444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39445000 0! #39445500 1! #39445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39446000 0! #39446500 1! #39446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39447000 0! #39447500 1! #39447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39448000 0! #39448500 1! #39448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39449000 0! #39449500 1! #39449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39450000 0! #39450500 1! #39450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39451000 0! #39451500 1! #39451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1Q 1O #39452000 0! #39452500 1! #39452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39453000 0! #39453500 1! #39453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39454000 0! #39454500 1! #39454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39455000 0! #39455500 1! #39455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39456000 0! #39456500 1! #39456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39457000 0! #39457500 1! #39457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39458000 0! #39458500 1! #39458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39459000 0! #39459500 1! #39459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39460000 0! #39460500 1! #39460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39461000 0! #39461500 1! #39461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39462000 0! #39462500 1! #39462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39463000 0! #39463500 1! #39463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39464000 0! #39464500 1! #39464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39465000 0! #39465500 1! #39465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39466000 0! #39466500 1! #39466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39467000 0! #39467500 1! #39467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39468000 0! #39468500 1! #39468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39469000 0! #39469500 1! #39469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39470000 0! #39470500 1! #39470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39471000 0! #39471500 1! #39471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39472000 0! #39472500 1! #39472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39473000 0! #39473500 1! #39473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39474000 0! #39474500 1! #39474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39475000 0! #39475500 1! #39475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39476000 0! #39476500 1! #39476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39477000 0! #39477500 1! #39477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39478000 0! #39478500 1! #39478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39479000 0! #39479500 1! #39479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39480000 0! #39480500 1! #39480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39481000 0! #39481500 1! #39481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39482000 0! #39482500 1! #39482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39483000 0! #39483500 1! #39483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39484000 0! #39484500 1! #39484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39485000 0! #39485500 1! #39485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39486000 0! #39486500 1! #39486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39487000 0! #39487500 1! #39487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39488000 0! #39488500 1! #39488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39489000 0! #39489500 1! #39489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39490000 0! #39490500 1! #39490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39491000 0! #39491500 1! #39491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39492000 0! #39492500 1! #39492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39493000 0! #39493500 1! #39493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39494000 0! #39494500 1! #39494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39495000 0! #39495500 1! #39495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39496000 0! #39496500 1! #39496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39497000 0! #39497500 1! #39497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39498000 0! #39498500 1! #39498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39499000 0! #39499500 1! #39499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39500000 0! #39500500 1! #39500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39501000 0! #39501500 1! #39501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39502000 0! #39502500 1! #39502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #39502700 b100 g b1 c #39503000 0! #39503500 1! #39503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39504000 0! #39504500 1! #39504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39505000 0! #39505500 1! #39505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39506000 0! #39506500 1! #39506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39507000 0! #39507500 1! #39507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39508000 0! #39508500 1! #39508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39509000 0! #39509500 1! #39509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39510000 0! #39510500 1! #39510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39511000 0! #39511500 1! #39511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39512000 0! #39512500 1! #39512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39513000 0! #39513500 1! #39513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39514000 0! #39514500 1! #39514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39515000 0! #39515500 1! #39515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39516000 0! #39516500 1! #39516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39517000 0! #39517500 1! #39517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39518000 0! #39518500 1! #39518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39519000 0! #39519500 1! #39519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39520000 0! #39520500 1! #39520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39521000 0! #39521500 1! #39521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39522000 0! #39522500 1! #39522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39523000 0! #39523500 1! #39523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39524000 0! #39524500 1! #39524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39525000 0! #39525500 1! #39525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39526000 0! #39526500 1! #39526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39527000 0! #39527500 1! #39527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39528000 0! #39528500 1! #39528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39529000 0! #39529500 1! #39529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39530000 0! #39530500 1! #39530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39531000 0! #39531500 1! #39531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39532000 0! #39532500 1! #39532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39533000 0! #39533500 1! #39533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39534000 0! #39534500 1! #39534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39535000 0! #39535500 1! #39535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39536000 0! #39536500 1! #39536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39537000 0! #39537500 1! #39537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39538000 0! #39538500 1! #39538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39539000 0! #39539500 1! #39539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39540000 0! #39540500 1! #39540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39541000 0! #39541500 1! #39541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39542000 0! #39542500 1! #39542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39543000 0! #39543500 1! #39543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39544000 0! #39544500 1! #39544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39545000 0! #39545500 1! #39545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39546000 0! #39546500 1! #39546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39547000 0! #39547500 1! #39547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39548000 0! #39548500 1! #39548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39549000 0! #39549500 1! #39549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39550000 0! #39550500 1! #39550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39551000 0! #39551500 1! #39551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39552000 0! #39552500 1! #39552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39553000 0! #39553500 1! #39553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39554000 0! #39554500 1! #39554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39555000 0! #39555500 1! #39555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39556000 0! #39556500 1! #39556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39557000 0! #39557500 1! #39557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39558000 0! #39558500 1! #39558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39559000 0! #39559500 1! #39559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39560000 0! #39560500 1! #39560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39561000 0! #39561500 1! #39561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39562000 0! #39562500 1! #39562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39563000 0! #39563500 1! #39563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39564000 0! #39564500 1! #39564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39565000 0! #39565500 1! #39565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39566000 0! #39566500 1! #39566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39567000 0! #39567500 1! #39567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39568000 0! #39568500 1! #39568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39569000 0! #39569500 1! #39569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39570000 0! #39570500 1! #39570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39571000 0! #39571500 1! #39571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39572000 0! #39572500 1! #39572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39573000 0! #39573500 1! #39573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39574000 0! #39574500 1! #39574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39575000 0! #39575500 1! #39575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39576000 0! #39576500 1! #39576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39577000 0! #39577500 1! #39577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39578000 0! #39578500 1! #39578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39579000 0! #39579500 1! #39579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39580000 0! #39580500 1! #39580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39581000 0! #39581500 1! #39581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39582000 0! #39582500 1! #39582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39583000 0! #39583500 1! #39583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39584000 0! #39584500 1! #39584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39585000 0! #39585500 1! #39585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39586000 0! #39586500 1! #39586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39587000 0! #39587500 1! #39587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39588000 0! #39588500 1! #39588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39589000 0! #39589500 1! #39589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39590000 0! #39590500 1! #39590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39591000 0! #39591500 1! #39591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39592000 0! #39592500 1! #39592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39593000 0! #39593500 1! #39593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39594000 0! #39594500 1! #39594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39595000 0! #39595500 1! #39595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39596000 0! #39596500 1! #39596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39597000 0! #39597500 1! #39597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39598000 0! #39598500 1! #39598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39599000 0! #39599500 1! #39599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39600000 0! #39600500 1! #39600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39601000 0! #39601500 1! #39601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39602000 0! #39602500 1! #39602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39603000 0! #39603500 1! #39603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39604000 0! #39604500 1! #39604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #39605000 0! #39605500 1! #39605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39606000 0! #39606500 1! #39606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39607000 0! #39607500 1! #39607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39608000 0! #39608500 1! #39608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39609000 0! #39609500 1! #39609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39610000 0! #39610500 1! #39610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39611000 0! #39611500 1! #39611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39612000 0! #39612500 1! #39612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39613000 0! #39613500 1! #39613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39614000 0! #39614500 1! #39614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39615000 0! #39615500 1! #39615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39616000 0! #39616500 1! #39616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39617000 0! #39617500 1! #39617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39618000 0! #39618500 1! #39618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39619000 0! #39619500 1! #39619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39620000 0! #39620500 1! #39620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39621000 0! #39621500 1! #39621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39622000 0! #39622500 1! #39622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39623000 0! #39623500 1! #39623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39624000 0! #39624500 1! #39624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39625000 0! #39625500 1! #39625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39626000 0! #39626500 1! #39626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39627000 0! #39627500 1! #39627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39628000 0! #39628500 1! #39628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39629000 0! #39629500 1! #39629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39630000 0! #39630500 1! #39630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39631000 0! #39631500 1! #39631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39632000 0! #39632500 1! #39632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39633000 0! #39633500 1! #39633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39634000 0! #39634500 1! #39634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39635000 0! #39635500 1! #39635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39636000 0! #39636500 1! #39636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39637000 0! #39637500 1! #39637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39638000 0! #39638500 1! #39638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39639000 0! #39639500 1! #39639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39640000 0! #39640500 1! #39640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39641000 0! #39641500 1! #39641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39642000 0! #39642500 1! #39642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39643000 0! #39643500 1! #39643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39644000 0! #39644500 1! #39644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39645000 0! #39645500 1! #39645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39646000 0! #39646500 1! #39646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39647000 0! #39647500 1! #39647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39648000 0! #39648500 1! #39648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39649000 0! #39649500 1! #39649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39650000 0! #39650500 1! #39650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39651000 0! #39651500 1! #39651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39652000 0! #39652500 1! #39652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39653000 0! #39653500 1! #39653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39654000 0! #39654500 1! #39654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39655000 0! #39655500 1! #39655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39656000 0! #39656500 1! #39656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39657000 0! #39657500 1! #39657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39658000 0! #39658500 1! #39658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39659000 0! #39659500 1! #39659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39660000 0! #39660500 1! #39660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39661000 0! #39661500 1! #39661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39662000 0! #39662500 1! #39662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39663000 0! #39663500 1! #39663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39664000 0! #39664500 1! #39664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39665000 0! #39665500 1! #39665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39666000 0! #39666500 1! #39666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39667000 0! #39667500 1! #39667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39668000 0! #39668500 1! #39668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39669000 0! #39669500 1! #39669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39670000 0! #39670500 1! #39670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39671000 0! #39671500 1! #39671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39672000 0! #39672500 1! #39672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39673000 0! #39673500 1! #39673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39674000 0! #39674500 1! #39674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39675000 0! #39675500 1! #39675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39676000 0! #39676500 1! #39676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39677000 0! #39677500 1! #39677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39678000 0! #39678500 1! #39678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39679000 0! #39679500 1! #39679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39680000 0! #39680500 1! #39680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39681000 0! #39681500 1! #39681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39682000 0! #39682500 1! #39682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39683000 0! #39683500 1! #39683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39684000 0! #39684500 1! #39684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39685000 0! #39685500 1! #39685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39686000 0! #39686500 1! #39686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39687000 0! #39687500 1! #39687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39688000 0! #39688500 1! #39688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39689000 0! #39689500 1! #39689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39690000 0! #39690500 1! #39690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39691000 0! #39691500 1! #39691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39692000 0! #39692500 1! #39692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39693000 0! #39693500 1! #39693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39694000 0! #39694500 1! #39694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39695000 0! #39695500 1! #39695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39696000 0! #39696500 1! #39696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39697000 0! #39697500 1! #39697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39698000 0! #39698500 1! #39698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39699000 0! #39699500 1! #39699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39700000 0! #39700500 1! #39700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39701000 0! #39701500 1! #39701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39702000 0! #39702500 1! #39702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39703000 0! #39703500 1! #39703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39704000 0! #39704500 1! #39704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39705000 0! #39705500 1! #39705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39706000 0! #39706500 1! #39706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0Q 0O #39707000 0! #39707500 1! #39707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39708000 0! #39708500 1! #39708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39709000 0! #39709500 1! #39709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39710000 0! #39710500 1! #39710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39711000 0! #39711500 1! #39711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39712000 0! #39712500 1! #39712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39713000 0! #39713500 1! #39713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39714000 0! #39714500 1! #39714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39715000 0! #39715500 1! #39715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39716000 0! #39716500 1! #39716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39717000 0! #39717500 1! #39717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39718000 0! #39718500 1! #39718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39719000 0! #39719500 1! #39719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39720000 0! #39720500 1! #39720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39721000 0! #39721500 1! #39721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39722000 0! #39722500 1! #39722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39723000 0! #39723500 1! #39723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39724000 0! #39724500 1! #39724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39725000 0! #39725500 1! #39725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39726000 0! #39726500 1! #39726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39727000 0! #39727500 1! #39727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39728000 0! #39728500 1! #39728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39729000 0! #39729500 1! #39729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39730000 0! #39730500 1! #39730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39731000 0! #39731500 1! #39731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39732000 0! #39732500 1! #39732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39733000 0! #39733500 1! #39733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39734000 0! #39734500 1! #39734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39735000 0! #39735500 1! #39735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39736000 0! #39736500 1! #39736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39737000 0! #39737500 1! #39737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39738000 0! #39738500 1! #39738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39739000 0! #39739500 1! #39739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39740000 0! #39740500 1! #39740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39741000 0! #39741500 1! #39741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39742000 0! #39742500 1! #39742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39743000 0! #39743500 1! #39743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39744000 0! #39744500 1! #39744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39745000 0! #39745500 1! #39745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39746000 0! #39746500 1! #39746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39747000 0! #39747500 1! #39747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39748000 0! #39748500 1! #39748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39749000 0! #39749500 1! #39749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39750000 0! #39750500 1! #39750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39751000 0! #39751500 1! #39751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39752000 0! #39752500 1! #39752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39753000 0! #39753500 1! #39753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39754000 0! #39754500 1! #39754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39755000 0! #39755500 1! #39755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39756000 0! #39756500 1! #39756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39757000 0! #39757500 1! #39757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #39757700 b11 g b10 c #39758000 0! #39758500 1! #39758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39759000 0! #39759500 1! #39759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39760000 0! #39760500 1! #39760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39761000 0! #39761500 1! #39761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39762000 0! #39762500 1! #39762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39763000 0! #39763500 1! #39763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39764000 0! #39764500 1! #39764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39765000 0! #39765500 1! #39765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39766000 0! #39766500 1! #39766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39767000 0! #39767500 1! #39767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39768000 0! #39768500 1! #39768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39769000 0! #39769500 1! #39769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39770000 0! #39770500 1! #39770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39771000 0! #39771500 1! #39771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39772000 0! #39772500 1! #39772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39773000 0! #39773500 1! #39773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39774000 0! #39774500 1! #39774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39775000 0! #39775500 1! #39775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39776000 0! #39776500 1! #39776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39777000 0! #39777500 1! #39777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39778000 0! #39778500 1! #39778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39779000 0! #39779500 1! #39779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39780000 0! #39780500 1! #39780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39781000 0! #39781500 1! #39781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39782000 0! #39782500 1! #39782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39783000 0! #39783500 1! #39783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39784000 0! #39784500 1! #39784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39785000 0! #39785500 1! #39785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39786000 0! #39786500 1! #39786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39787000 0! #39787500 1! #39787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39788000 0! #39788500 1! #39788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39789000 0! #39789500 1! #39789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39790000 0! #39790500 1! #39790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39791000 0! #39791500 1! #39791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39792000 0! #39792500 1! #39792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39793000 0! #39793500 1! #39793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39794000 0! #39794500 1! #39794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39795000 0! #39795500 1! #39795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39796000 0! #39796500 1! #39796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39797000 0! #39797500 1! #39797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39798000 0! #39798500 1! #39798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39799000 0! #39799500 1! #39799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39800000 0! #39800500 1! #39800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39801000 0! #39801500 1! #39801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39802000 0! #39802500 1! #39802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39803000 0! #39803500 1! #39803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39804000 0! #39804500 1! #39804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39805000 0! #39805500 1! #39805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39806000 0! #39806500 1! #39806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39807000 0! #39807500 1! #39807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39808000 0! #39808500 1! #39808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39809000 0! #39809500 1! #39809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39810000 0! #39810500 1! #39810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39811000 0! #39811500 1! #39811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39812000 0! #39812500 1! #39812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39813000 0! #39813500 1! #39813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39814000 0! #39814500 1! #39814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39815000 0! #39815500 1! #39815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39816000 0! #39816500 1! #39816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39817000 0! #39817500 1! #39817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39818000 0! #39818500 1! #39818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39819000 0! #39819500 1! #39819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39820000 0! #39820500 1! #39820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39821000 0! #39821500 1! #39821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39822000 0! #39822500 1! #39822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39823000 0! #39823500 1! #39823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39824000 0! #39824500 1! #39824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39825000 0! #39825500 1! #39825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39826000 0! #39826500 1! #39826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39827000 0! #39827500 1! #39827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39828000 0! #39828500 1! #39828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39829000 0! #39829500 1! #39829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39830000 0! #39830500 1! #39830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39831000 0! #39831500 1! #39831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39832000 0! #39832500 1! #39832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39833000 0! #39833500 1! #39833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39834000 0! #39834500 1! #39834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39835000 0! #39835500 1! #39835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39836000 0! #39836500 1! #39836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39837000 0! #39837500 1! #39837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39838000 0! #39838500 1! #39838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39839000 0! #39839500 1! #39839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39840000 0! #39840500 1! #39840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39841000 0! #39841500 1! #39841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39842000 0! #39842500 1! #39842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39843000 0! #39843500 1! #39843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39844000 0! #39844500 1! #39844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39845000 0! #39845500 1! #39845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39846000 0! #39846500 1! #39846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39847000 0! #39847500 1! #39847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39848000 0! #39848500 1! #39848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39849000 0! #39849500 1! #39849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39850000 0! #39850500 1! #39850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39851000 0! #39851500 1! #39851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39852000 0! #39852500 1! #39852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39853000 0! #39853500 1! #39853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39854000 0! #39854500 1! #39854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39855000 0! #39855500 1! #39855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39856000 0! #39856500 1! #39856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39857000 0! #39857500 1! #39857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39858000 0! #39858500 1! #39858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39859000 0! #39859500 1! #39859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #39860000 0! #39860500 1! #39860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39861000 0! #39861500 1! #39861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39862000 0! #39862500 1! #39862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39863000 0! #39863500 1! #39863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39864000 0! #39864500 1! #39864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39865000 0! #39865500 1! #39865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39866000 0! #39866500 1! #39866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39867000 0! #39867500 1! #39867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39868000 0! #39868500 1! #39868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39869000 0! #39869500 1! #39869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39870000 0! #39870500 1! #39870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39871000 0! #39871500 1! #39871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39872000 0! #39872500 1! #39872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39873000 0! #39873500 1! #39873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39874000 0! #39874500 1! #39874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39875000 0! #39875500 1! #39875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39876000 0! #39876500 1! #39876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39877000 0! #39877500 1! #39877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39878000 0! #39878500 1! #39878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39879000 0! #39879500 1! #39879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39880000 0! #39880500 1! #39880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39881000 0! #39881500 1! #39881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39882000 0! #39882500 1! #39882600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39883000 0! #39883500 1! #39883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39884000 0! #39884500 1! #39884600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39885000 0! #39885500 1! #39885600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39886000 0! #39886500 1! #39886600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39887000 0! #39887500 1! #39887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39888000 0! #39888500 1! #39888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39889000 0! #39889500 1! #39889600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39890000 0! #39890500 1! #39890600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39891000 0! #39891500 1! #39891600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39892000 0! #39892500 1! #39892600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39893000 0! #39893500 1! #39893600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39894000 0! #39894500 1! #39894600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39895000 0! #39895500 1! #39895600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39896000 0! #39896500 1! #39896600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39897000 0! #39897500 1! #39897600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39898000 0! #39898500 1! #39898600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39899000 0! #39899500 1! #39899600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39900000 0! #39900500 1! #39900600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39901000 0! #39901500 1! #39901600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39902000 0! #39902500 1! #39902600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39903000 0! #39903500 1! #39903600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39904000 0! #39904500 1! #39904600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39905000 0! #39905500 1! #39905600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39906000 0! #39906500 1! #39906600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39907000 0! #39907500 1! #39907600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39908000 0! #39908500 1! #39908600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39909000 0! #39909500 1! #39909600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39910000 0! #39910500 1! #39910600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39911000 0! #39911500 1! #39911600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39912000 0! #39912500 1! #39912600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39913000 0! #39913500 1! #39913600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39914000 0! #39914500 1! #39914600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39915000 0! #39915500 1! #39915600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39916000 0! #39916500 1! #39916600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39917000 0! #39917500 1! #39917600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39918000 0! #39918500 1! #39918600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39919000 0! #39919500 1! #39919600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39920000 0! #39920500 1! #39920600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39921000 0! #39921500 1! #39921600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39922000 0! #39922500 1! #39922600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39923000 0! #39923500 1! #39923600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39924000 0! #39924500 1! #39924600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39925000 0! #39925500 1! #39925600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39926000 0! #39926500 1! #39926600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39927000 0! #39927500 1! #39927600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39928000 0! #39928500 1! #39928600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39929000 0! #39929500 1! #39929600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39930000 0! #39930500 1! #39930600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39931000 0! #39931500 1! #39931600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39932000 0! #39932500 1! #39932600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39933000 0! #39933500 1! #39933600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39934000 0! #39934500 1! #39934600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39935000 0! #39935500 1! #39935600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39936000 0! #39936500 1! #39936600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39937000 0! #39937500 1! #39937600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39938000 0! #39938500 1! #39938600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39939000 0! #39939500 1! #39939600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39940000 0! #39940500 1! #39940600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39941000 0! #39941500 1! #39941600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39942000 0! #39942500 1! #39942600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39943000 0! #39943500 1! #39943600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39944000 0! #39944500 1! #39944600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39945000 0! #39945500 1! #39945600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39946000 0! #39946500 1! #39946600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39947000 0! #39947500 1! #39947600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39948000 0! #39948500 1! #39948600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39949000 0! #39949500 1! #39949600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39950000 0! #39950500 1! #39950600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39951000 0! #39951500 1! #39951600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39952000 0! #39952500 1! #39952600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39953000 0! #39953500 1! #39953600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39954000 0! #39954500 1! #39954600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39955000 0! #39955500 1! #39955600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39956000 0! #39956500 1! #39956600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39957000 0! #39957500 1! #39957600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39958000 0! #39958500 1! #39958600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39959000 0! #39959500 1! #39959600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39960000 0! #39960500 1! #39960600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39961000 0! #39961500 1! #39961600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39962000 0! #39962500 1! #39962600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39963000 0! #39963500 1! #39963600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39964000 0! #39964500 1! #39964600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39965000 0! #39965500 1! #39965600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39966000 0! #39966500 1! #39966600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39967000 0! #39967500 1! #39967600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39968000 0! #39968500 1! #39968600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39969000 0! #39969500 1! #39969600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39970000 0! #39970500 1! #39970600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39971000 0! #39971500 1! #39971600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39972000 0! #39972500 1! #39972600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39973000 0! #39973500 1! #39973600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39974000 0! #39974500 1! #39974600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39975000 0! #39975500 1! #39975600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39976000 0! #39976500 1! #39976600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39977000 0! #39977500 1! #39977600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39978000 0! #39978500 1! #39978600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39979000 0! #39979500 1! #39979600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39980000 0! #39980500 1! #39980600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39981000 0! #39981500 1! #39981600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39982000 0! #39982500 1! #39982600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39983000 0! #39983500 1! #39983600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39984000 0! #39984500 1! #39984600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39985000 0! #39985500 1! #39985600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39986000 0! #39986500 1! #39986600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39987000 0! #39987500 1! #39987600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39988000 0! #39988500 1! #39988600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39989000 0! #39989500 1! #39989600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39990000 0! #39990500 1! #39990600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39991000 0! #39991500 1! #39991600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39992000 0! #39992500 1! #39992600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39993000 0! #39993500 1! #39993600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39994000 0! #39994500 1! #39994600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39995000 0! #39995500 1! #39995600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39996000 0! #39996500 1! #39996600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39997000 0! #39997500 1! #39997600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #39998000 0! #39998500 1! #39998600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #39999000 0! #39999500 1! #39999600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40000000 0! #40000500 1! #40000600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40001000 0! #40001500 1! #40001600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40002000 0! #40002500 1! #40002600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40003000 0! #40003500 1! #40003600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40004000 0! #40004500 1! #40004600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40005000 0! #40005500 1! #40005600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40006000 0! #40006500 1! #40006600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40007000 0! #40007500 1! #40007600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40008000 0! #40008500 1! #40008600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40009000 0! #40009500 1! #40009600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40010000 0! #40010500 1! #40010600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40011000 0! #40011500 1! #40011600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40012000 0! #40012500 1! #40012600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #40012700 b10 g b100 c #40013000 0! #40013500 1! #40013600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40014000 0! #40014500 1! #40014600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40015000 0! #40015500 1! #40015600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40016000 0! #40016500 1! #40016600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40017000 0! #40017500 1! #40017600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40018000 0! #40018500 1! #40018600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40019000 0! #40019500 1! #40019600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40020000 0! #40020500 1! #40020600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40021000 0! #40021500 1! #40021600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40022000 0! #40022500 1! #40022600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40023000 0! #40023500 1! #40023600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40024000 0! #40024500 1! #40024600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40025000 0! #40025500 1! #40025600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40026000 0! #40026500 1! #40026600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40027000 0! #40027500 1! #40027600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40028000 0! #40028500 1! #40028600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40029000 0! #40029500 1! #40029600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40030000 0! #40030500 1! #40030600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40031000 0! #40031500 1! #40031600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40032000 0! #40032500 1! #40032600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40033000 0! #40033500 1! #40033600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40034000 0! #40034500 1! #40034600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40035000 0! #40035500 1! #40035600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40036000 0! #40036500 1! #40036600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40037000 0! #40037500 1! #40037600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40038000 0! #40038500 1! #40038600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40039000 0! #40039500 1! #40039600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40040000 0! #40040500 1! #40040600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40041000 0! #40041500 1! #40041600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40042000 0! #40042500 1! #40042600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40043000 0! #40043500 1! #40043600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40044000 0! #40044500 1! #40044600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40045000 0! #40045500 1! #40045600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40046000 0! #40046500 1! #40046600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40047000 0! #40047500 1! #40047600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40048000 0! #40048500 1! #40048600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40049000 0! #40049500 1! #40049600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40050000 0! #40050500 1! #40050600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40051000 0! #40051500 1! #40051600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40052000 0! #40052500 1! #40052600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40053000 0! #40053500 1! #40053600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40054000 0! #40054500 1! #40054600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40055000 0! #40055500 1! #40055600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40056000 0! #40056500 1! #40056600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40057000 0! #40057500 1! #40057600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40058000 0! #40058500 1! #40058600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40059000 0! #40059500 1! #40059600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40060000 0! #40060500 1! #40060600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40061000 0! #40061500 1! #40061600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40062000 0! #40062500 1! #40062600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40063000 0! #40063500 1! #40063600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40064000 0! #40064500 1! #40064600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40065000 0! #40065500 1! #40065600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40066000 0! #40066500 1! #40066600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40067000 0! #40067500 1! #40067600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40068000 0! #40068500 1! #40068600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40069000 0! #40069500 1! #40069600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40070000 0! #40070500 1! #40070600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40071000 0! #40071500 1! #40071600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40072000 0! #40072500 1! #40072600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40073000 0! #40073500 1! #40073600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40074000 0! #40074500 1! #40074600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40075000 0! #40075500 1! #40075600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40076000 0! #40076500 1! #40076600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40077000 0! #40077500 1! #40077600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40078000 0! #40078500 1! #40078600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40079000 0! #40079500 1! #40079600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40080000 0! #40080500 1! #40080600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40081000 0! #40081500 1! #40081600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40082000 0! #40082500 1! #40082600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40083000 0! #40083500 1! #40083600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40084000 0! #40084500 1! #40084600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40085000 0! #40085500 1! #40085600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40086000 0! #40086500 1! #40086600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40087000 0! #40087500 1! #40087600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40088000 0! #40088500 1! #40088600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40089000 0! #40089500 1! #40089600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40090000 0! #40090500 1! #40090600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40091000 0! #40091500 1! #40091600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40092000 0! #40092500 1! #40092600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40093000 0! #40093500 1! #40093600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40094000 0! #40094500 1! #40094600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40095000 0! #40095500 1! #40095600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40096000 0! #40096500 1! #40096600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40097000 0! #40097500 1! #40097600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40098000 0! #40098500 1! #40098600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40099000 0! #40099500 1! #40099600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40100000 0! #40100500 1! #40100600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40101000 0! #40101500 1! #40101600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40102000 0! #40102500 1! #40102600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40103000 0! #40103500 1! #40103600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40104000 0! #40104500 1! #40104600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40105000 0! #40105500 1! #40105600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40106000 0! #40106500 1! #40106600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40107000 0! #40107500 1! #40107600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40108000 0! #40108500 1! #40108600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40109000 0! #40109500 1! #40109600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40110000 0! #40110500 1! #40110600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40111000 0! #40111500 1! #40111600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40112000 0! #40112500 1! #40112600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40113000 0! #40113500 1! #40113600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40114000 0! #40114500 1! #40114600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #40115000 0! #40115500 1! #40115600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40116000 0! #40116500 1! #40116600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40117000 0! #40117500 1! #40117600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40118000 0! #40118500 1! #40118600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40119000 0! #40119500 1! #40119600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40120000 0! #40120500 1! #40120600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40121000 0! #40121500 1! #40121600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40122000 0! #40122500 1! #40122600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40123000 0! #40123500 1! #40123600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40124000 0! #40124500 1! #40124600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40125000 0! #40125500 1! #40125600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40126000 0! #40126500 1! #40126600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40127000 0! #40127500 1! #40127600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40128000 0! #40128500 1! #40128600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40129000 0! #40129500 1! #40129600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40130000 0! #40130500 1! #40130600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40131000 0! #40131500 1! #40131600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40132000 0! #40132500 1! #40132600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40133000 0! #40133500 1! #40133600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40134000 0! #40134500 1! #40134600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40135000 0! #40135500 1! #40135600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40136000 0! #40136500 1! #40136600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40137000 0! #40137500 1! #40137600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40138000 0! #40138500 1! #40138600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40139000 0! #40139500 1! #40139600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40140000 0! #40140500 1! #40140600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40141000 0! #40141500 1! #40141600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40142000 0! #40142500 1! #40142600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40143000 0! #40143500 1! #40143600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40144000 0! #40144500 1! #40144600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40145000 0! #40145500 1! #40145600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40146000 0! #40146500 1! #40146600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40147000 0! #40147500 1! #40147600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40148000 0! #40148500 1! #40148600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40149000 0! #40149500 1! #40149600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40150000 0! #40150500 1! #40150600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40151000 0! #40151500 1! #40151600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40152000 0! #40152500 1! #40152600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40153000 0! #40153500 1! #40153600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40154000 0! #40154500 1! #40154600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40155000 0! #40155500 1! #40155600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40156000 0! #40156500 1! #40156600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40157000 0! #40157500 1! #40157600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40158000 0! #40158500 1! #40158600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40159000 0! #40159500 1! #40159600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40160000 0! #40160500 1! #40160600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40161000 0! #40161500 1! #40161600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40162000 0! #40162500 1! #40162600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40163000 0! #40163500 1! #40163600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40164000 0! #40164500 1! #40164600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40165000 0! #40165500 1! #40165600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40166000 0! #40166500 1! #40166600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40167000 0! #40167500 1! #40167600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40168000 0! #40168500 1! #40168600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40169000 0! #40169500 1! #40169600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40170000 0! #40170500 1! #40170600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40171000 0! #40171500 1! #40171600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40172000 0! #40172500 1! #40172600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40173000 0! #40173500 1! #40173600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40174000 0! #40174500 1! #40174600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40175000 0! #40175500 1! #40175600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40176000 0! #40176500 1! #40176600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40177000 0! #40177500 1! #40177600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40178000 0! #40178500 1! #40178600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40179000 0! #40179500 1! #40179600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40180000 0! #40180500 1! #40180600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40181000 0! #40181500 1! #40181600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40182000 0! #40182500 1! #40182600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40183000 0! #40183500 1! #40183600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40184000 0! #40184500 1! #40184600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40185000 0! #40185500 1! #40185600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40186000 0! #40186500 1! #40186600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40187000 0! #40187500 1! #40187600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40188000 0! #40188500 1! #40188600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40189000 0! #40189500 1! #40189600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40190000 0! #40190500 1! #40190600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40191000 0! #40191500 1! #40191600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40192000 0! #40192500 1! #40192600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40193000 0! #40193500 1! #40193600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40194000 0! #40194500 1! #40194600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40195000 0! #40195500 1! #40195600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40196000 0! #40196500 1! #40196600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40197000 0! #40197500 1! #40197600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40198000 0! #40198500 1! #40198600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40199000 0! #40199500 1! #40199600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40200000 0! #40200500 1! #40200600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40201000 0! #40201500 1! #40201600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40202000 0! #40202500 1! #40202600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40203000 0! #40203500 1! #40203600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40204000 0! #40204500 1! #40204600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40205000 0! #40205500 1! #40205600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40206000 0! #40206500 1! #40206600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40207000 0! #40207500 1! #40207600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40208000 0! #40208500 1! #40208600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40209000 0! #40209500 1! #40209600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40210000 0! #40210500 1! #40210600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40211000 0! #40211500 1! #40211600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40212000 0! #40212500 1! #40212600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40213000 0! #40213500 1! #40213600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40214000 0! #40214500 1! #40214600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40215000 0! #40215500 1! #40215600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40216000 0! #40216500 1! #40216600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40217000 0! #40217500 1! #40217600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40218000 0! #40218500 1! #40218600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40219000 0! #40219500 1! #40219600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40220000 0! #40220500 1! #40220600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40221000 0! #40221500 1! #40221600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40222000 0! #40222500 1! #40222600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40223000 0! #40223500 1! #40223600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40224000 0! #40224500 1! #40224600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40225000 0! #40225500 1! #40225600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40226000 0! #40226500 1! #40226600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40227000 0! #40227500 1! #40227600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40228000 0! #40228500 1! #40228600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40229000 0! #40229500 1! #40229600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40230000 0! #40230500 1! #40230600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40231000 0! #40231500 1! #40231600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40232000 0! #40232500 1! #40232600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40233000 0! #40233500 1! #40233600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40234000 0! #40234500 1! #40234600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40235000 0! #40235500 1! #40235600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40236000 0! #40236500 1! #40236600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40237000 0! #40237500 1! #40237600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40238000 0! #40238500 1! #40238600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40239000 0! #40239500 1! #40239600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40240000 0! #40240500 1! #40240600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40241000 0! #40241500 1! #40241600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40242000 0! #40242500 1! #40242600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40243000 0! #40243500 1! #40243600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40244000 0! #40244500 1! #40244600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40245000 0! #40245500 1! #40245600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40246000 0! #40246500 1! #40246600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40247000 0! #40247500 1! #40247600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40248000 0! #40248500 1! #40248600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40249000 0! #40249500 1! #40249600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40250000 0! #40250500 1! #40250600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40251000 0! #40251500 1! #40251600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40252000 0! #40252500 1! #40252600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40253000 0! #40253500 1! #40253600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40254000 0! #40254500 1! #40254600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40255000 0! #40255500 1! #40255600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40256000 0! #40256500 1! #40256600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40257000 0! #40257500 1! #40257600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40258000 0! #40258500 1! #40258600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40259000 0! #40259500 1! #40259600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40260000 0! #40260500 1! #40260600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40261000 0! #40261500 1! #40261600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40262000 0! #40262500 1! #40262600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40263000 0! #40263500 1! #40263600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40264000 0! #40264500 1! #40264600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40265000 0! #40265500 1! #40265600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40266000 0! #40266500 1! #40266600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40267000 0! #40267500 1! #40267600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #40267700 b1 g b1000 c #40268000 0! #40268500 1! #40268600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40269000 0! #40269500 1! #40269600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40270000 0! #40270500 1! #40270600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40271000 0! #40271500 1! #40271600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40272000 0! #40272500 1! #40272600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40273000 0! #40273500 1! #40273600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40274000 0! #40274500 1! #40274600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40275000 0! #40275500 1! #40275600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40276000 0! #40276500 1! #40276600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40277000 0! #40277500 1! #40277600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40278000 0! #40278500 1! #40278600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40279000 0! #40279500 1! #40279600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40280000 0! #40280500 1! #40280600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40281000 0! #40281500 1! #40281600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40282000 0! #40282500 1! #40282600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40283000 0! #40283500 1! #40283600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40284000 0! #40284500 1! #40284600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40285000 0! #40285500 1! #40285600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40286000 0! #40286500 1! #40286600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40287000 0! #40287500 1! #40287600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40288000 0! #40288500 1! #40288600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40289000 0! #40289500 1! #40289600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40290000 0! #40290500 1! #40290600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40291000 0! #40291500 1! #40291600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40292000 0! #40292500 1! #40292600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40293000 0! #40293500 1! #40293600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40294000 0! #40294500 1! #40294600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40295000 0! #40295500 1! #40295600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40296000 0! #40296500 1! #40296600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40297000 0! #40297500 1! #40297600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40298000 0! #40298500 1! #40298600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40299000 0! #40299500 1! #40299600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40300000 0! #40300500 1! #40300600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40301000 0! #40301500 1! #40301600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40302000 0! #40302500 1! #40302600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40303000 0! #40303500 1! #40303600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40304000 0! #40304500 1! #40304600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40305000 0! #40305500 1! #40305600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40306000 0! #40306500 1! #40306600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40307000 0! #40307500 1! #40307600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40308000 0! #40308500 1! #40308600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40309000 0! #40309500 1! #40309600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40310000 0! #40310500 1! #40310600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40311000 0! #40311500 1! #40311600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40312000 0! #40312500 1! #40312600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40313000 0! #40313500 1! #40313600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40314000 0! #40314500 1! #40314600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40315000 0! #40315500 1! #40315600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40316000 0! #40316500 1! #40316600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40317000 0! #40317500 1! #40317600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40318000 0! #40318500 1! #40318600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40319000 0! #40319500 1! #40319600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40320000 0! #40320500 1! #40320600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40321000 0! #40321500 1! #40321600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40322000 0! #40322500 1! #40322600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40323000 0! #40323500 1! #40323600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40324000 0! #40324500 1! #40324600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40325000 0! #40325500 1! #40325600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40326000 0! #40326500 1! #40326600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40327000 0! #40327500 1! #40327600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40328000 0! #40328500 1! #40328600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40329000 0! #40329500 1! #40329600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40330000 0! #40330500 1! #40330600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40331000 0! #40331500 1! #40331600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40332000 0! #40332500 1! #40332600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40333000 0! #40333500 1! #40333600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40334000 0! #40334500 1! #40334600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40335000 0! #40335500 1! #40335600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40336000 0! #40336500 1! #40336600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40337000 0! #40337500 1! #40337600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40338000 0! #40338500 1! #40338600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40339000 0! #40339500 1! #40339600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40340000 0! #40340500 1! #40340600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40341000 0! #40341500 1! #40341600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40342000 0! #40342500 1! #40342600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40343000 0! #40343500 1! #40343600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40344000 0! #40344500 1! #40344600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40345000 0! #40345500 1! #40345600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40346000 0! #40346500 1! #40346600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40347000 0! #40347500 1! #40347600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40348000 0! #40348500 1! #40348600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40349000 0! #40349500 1! #40349600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40350000 0! #40350500 1! #40350600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40351000 0! #40351500 1! #40351600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40352000 0! #40352500 1! #40352600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40353000 0! #40353500 1! #40353600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40354000 0! #40354500 1! #40354600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40355000 0! #40355500 1! #40355600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40356000 0! #40356500 1! #40356600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40357000 0! #40357500 1! #40357600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40358000 0! #40358500 1! #40358600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40359000 0! #40359500 1! #40359600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40360000 0! #40360500 1! #40360600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40361000 0! #40361500 1! #40361600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40362000 0! #40362500 1! #40362600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40363000 0! #40363500 1! #40363600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40364000 0! #40364500 1! #40364600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40365000 0! #40365500 1! #40365600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40366000 0! #40366500 1! #40366600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40367000 0! #40367500 1! #40367600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40368000 0! #40368500 1! #40368600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40369000 0! #40369500 1! #40369600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #40370000 0! #40370500 1! #40370600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40371000 0! #40371500 1! #40371600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40372000 0! #40372500 1! #40372600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40373000 0! #40373500 1! #40373600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40374000 0! #40374500 1! #40374600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40375000 0! #40375500 1! #40375600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40376000 0! #40376500 1! #40376600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40377000 0! #40377500 1! #40377600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40378000 0! #40378500 1! #40378600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40379000 0! #40379500 1! #40379600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40380000 0! #40380500 1! #40380600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40381000 0! #40381500 1! #40381600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40382000 0! #40382500 1! #40382600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40383000 0! #40383500 1! #40383600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40384000 0! #40384500 1! #40384600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40385000 0! #40385500 1! #40385600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40386000 0! #40386500 1! #40386600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40387000 0! #40387500 1! #40387600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40388000 0! #40388500 1! #40388600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40389000 0! #40389500 1! #40389600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40390000 0! #40390500 1! #40390600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40391000 0! #40391500 1! #40391600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40392000 0! #40392500 1! #40392600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40393000 0! #40393500 1! #40393600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40394000 0! #40394500 1! #40394600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40395000 0! #40395500 1! #40395600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40396000 0! #40396500 1! #40396600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40397000 0! #40397500 1! #40397600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40398000 0! #40398500 1! #40398600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40399000 0! #40399500 1! #40399600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40400000 0! #40400500 1! #40400600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40401000 0! #40401500 1! #40401600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40402000 0! #40402500 1! #40402600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40403000 0! #40403500 1! #40403600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40404000 0! #40404500 1! #40404600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40405000 0! #40405500 1! #40405600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40406000 0! #40406500 1! #40406600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40407000 0! #40407500 1! #40407600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40408000 0! #40408500 1! #40408600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40409000 0! #40409500 1! #40409600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40410000 0! #40410500 1! #40410600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40411000 0! #40411500 1! #40411600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40412000 0! #40412500 1! #40412600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40413000 0! #40413500 1! #40413600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40414000 0! #40414500 1! #40414600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40415000 0! #40415500 1! #40415600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40416000 0! #40416500 1! #40416600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40417000 0! #40417500 1! #40417600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40418000 0! #40418500 1! #40418600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40419000 0! #40419500 1! #40419600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40420000 0! #40420500 1! #40420600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40421000 0! #40421500 1! #40421600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40422000 0! #40422500 1! #40422600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40423000 0! #40423500 1! #40423600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40424000 0! #40424500 1! #40424600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40425000 0! #40425500 1! #40425600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40426000 0! #40426500 1! #40426600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40427000 0! #40427500 1! #40427600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40428000 0! #40428500 1! #40428600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40429000 0! #40429500 1! #40429600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40430000 0! #40430500 1! #40430600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40431000 0! #40431500 1! #40431600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40432000 0! #40432500 1! #40432600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40433000 0! #40433500 1! #40433600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40434000 0! #40434500 1! #40434600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40435000 0! #40435500 1! #40435600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40436000 0! #40436500 1! #40436600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40437000 0! #40437500 1! #40437600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40438000 0! #40438500 1! #40438600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40439000 0! #40439500 1! #40439600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40440000 0! #40440500 1! #40440600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40441000 0! #40441500 1! #40441600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40442000 0! #40442500 1! #40442600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40443000 0! #40443500 1! #40443600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40444000 0! #40444500 1! #40444600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40445000 0! #40445500 1! #40445600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40446000 0! #40446500 1! #40446600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40447000 0! #40447500 1! #40447600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40448000 0! #40448500 1! #40448600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40449000 0! #40449500 1! #40449600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40450000 0! #40450500 1! #40450600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40451000 0! #40451500 1! #40451600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40452000 0! #40452500 1! #40452600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40453000 0! #40453500 1! #40453600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40454000 0! #40454500 1! #40454600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40455000 0! #40455500 1! #40455600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40456000 0! #40456500 1! #40456600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40457000 0! #40457500 1! #40457600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40458000 0! #40458500 1! #40458600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40459000 0! #40459500 1! #40459600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40460000 0! #40460500 1! #40460600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40461000 0! #40461500 1! #40461600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40462000 0! #40462500 1! #40462600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40463000 0! #40463500 1! #40463600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40464000 0! #40464500 1! #40464600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40465000 0! #40465500 1! #40465600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40466000 0! #40466500 1! #40466600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40467000 0! #40467500 1! #40467600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40468000 0! #40468500 1! #40468600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40469000 0! #40469500 1! #40469600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40470000 0! #40470500 1! #40470600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40471000 0! #40471500 1! #40471600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40472000 0! #40472500 1! #40472600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40473000 0! #40473500 1! #40473600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40474000 0! #40474500 1! #40474600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40475000 0! #40475500 1! #40475600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40476000 0! #40476500 1! #40476600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40477000 0! #40477500 1! #40477600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40478000 0! #40478500 1! #40478600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40479000 0! #40479500 1! #40479600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40480000 0! #40480500 1! #40480600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40481000 0! #40481500 1! #40481600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40482000 0! #40482500 1! #40482600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40483000 0! #40483500 1! #40483600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40484000 0! #40484500 1! #40484600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40485000 0! #40485500 1! #40485600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40486000 0! #40486500 1! #40486600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40487000 0! #40487500 1! #40487600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40488000 0! #40488500 1! #40488600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40489000 0! #40489500 1! #40489600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40490000 0! #40490500 1! #40490600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40491000 0! #40491500 1! #40491600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40492000 0! #40492500 1! #40492600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40493000 0! #40493500 1! #40493600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40494000 0! #40494500 1! #40494600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40495000 0! #40495500 1! #40495600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40496000 0! #40496500 1! #40496600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40497000 0! #40497500 1! #40497600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40498000 0! #40498500 1! #40498600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40499000 0! #40499500 1! #40499600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40500000 0! #40500500 1! #40500600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40501000 0! #40501500 1! #40501600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40502000 0! #40502500 1! #40502600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40503000 0! #40503500 1! #40503600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40504000 0! #40504500 1! #40504600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40505000 0! #40505500 1! #40505600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40506000 0! #40506500 1! #40506600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40507000 0! #40507500 1! #40507600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40508000 0! #40508500 1! #40508600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40509000 0! #40509500 1! #40509600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40510000 0! #40510500 1! #40510600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40511000 0! #40511500 1! #40511600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40512000 0! #40512500 1! #40512600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40513000 0! #40513500 1! #40513600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40514000 0! #40514500 1! #40514600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40515000 0! #40515500 1! #40515600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40516000 0! #40516500 1! #40516600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40517000 0! #40517500 1! #40517600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40518000 0! #40518500 1! #40518600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40519000 0! #40519500 1! #40519600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40520000 0! #40520500 1! #40520600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40521000 0! #40521500 1! #40521600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40522000 0! #40522500 1! #40522600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1N 1L #40522700 b0 g b10000 c 1h #40523000 0! #40523500 1! #40523600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40524000 0! #40524500 1! #40524600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40525000 0! #40525500 1! #40525600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40526000 0! #40526500 1! #40526600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40527000 0! #40527500 1! #40527600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40528000 0! #40528500 1! #40528600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40529000 0! #40529500 1! #40529600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40530000 0! #40530500 1! #40530600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40531000 0! #40531500 1! #40531600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40532000 0! #40532500 1! #40532600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40533000 0! #40533500 1! #40533600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40534000 0! #40534500 1! #40534600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40535000 0! #40535500 1! #40535600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40536000 0! #40536500 1! #40536600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40537000 0! #40537500 1! #40537600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40538000 0! #40538500 1! #40538600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40539000 0! #40539500 1! #40539600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40540000 0! #40540500 1! #40540600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40541000 0! #40541500 1! #40541600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40542000 0! #40542500 1! #40542600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40543000 0! #40543500 1! #40543600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40544000 0! #40544500 1! #40544600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40545000 0! #40545500 1! #40545600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40546000 0! #40546500 1! #40546600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40547000 0! #40547500 1! #40547600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40548000 0! #40548500 1! #40548600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40549000 0! #40549500 1! #40549600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40550000 0! #40550500 1! #40550600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40551000 0! #40551500 1! #40551600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40552000 0! #40552500 1! #40552600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40553000 0! #40553500 1! #40553600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40554000 0! #40554500 1! #40554600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40555000 0! #40555500 1! #40555600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40556000 0! #40556500 1! #40556600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40557000 0! #40557500 1! #40557600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40558000 0! #40558500 1! #40558600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40559000 0! #40559500 1! #40559600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40560000 0! #40560500 1! #40560600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40561000 0! #40561500 1! #40561600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40562000 0! #40562500 1! #40562600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40563000 0! #40563500 1! #40563600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40564000 0! #40564500 1! #40564600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40565000 0! #40565500 1! #40565600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40566000 0! #40566500 1! #40566600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40567000 0! #40567500 1! #40567600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40568000 0! #40568500 1! #40568600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40569000 0! #40569500 1! #40569600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40570000 0! #40570500 1! #40570600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40571000 0! #40571500 1! #40571600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40572000 0! #40572500 1! #40572600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40573000 0! #40573500 1! #40573600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40574000 0! #40574500 1! #40574600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40575000 0! #40575500 1! #40575600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40576000 0! #40576500 1! #40576600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40577000 0! #40577500 1! #40577600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40578000 0! #40578500 1! #40578600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40579000 0! #40579500 1! #40579600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40580000 0! #40580500 1! #40580600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40581000 0! #40581500 1! #40581600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40582000 0! #40582500 1! #40582600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40583000 0! #40583500 1! #40583600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40584000 0! #40584500 1! #40584600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40585000 0! #40585500 1! #40585600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40586000 0! #40586500 1! #40586600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40587000 0! #40587500 1! #40587600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40588000 0! #40588500 1! #40588600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40589000 0! #40589500 1! #40589600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40590000 0! #40590500 1! #40590600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40591000 0! #40591500 1! #40591600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40592000 0! #40592500 1! #40592600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40593000 0! #40593500 1! #40593600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40594000 0! #40594500 1! #40594600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40595000 0! #40595500 1! #40595600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40596000 0! #40596500 1! #40596600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40597000 0! #40597500 1! #40597600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40598000 0! #40598500 1! #40598600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40599000 0! #40599500 1! #40599600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40600000 0! #40600500 1! #40600600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40601000 0! #40601500 1! #40601600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40602000 0! #40602500 1! #40602600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40603000 0! #40603500 1! #40603600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40604000 0! #40604500 1! #40604600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40605000 0! #40605500 1! #40605600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40606000 0! #40606500 1! #40606600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40607000 0! #40607500 1! #40607600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40608000 0! #40608500 1! #40608600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40609000 0! #40609500 1! #40609600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40610000 0! #40610500 1! #40610600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40611000 0! #40611500 1! #40611600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40612000 0! #40612500 1! #40612600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40613000 0! #40613500 1! #40613600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40614000 0! #40614500 1! #40614600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40615000 0! #40615500 1! #40615600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40616000 0! #40616500 1! #40616600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40617000 0! #40617500 1! #40617600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40618000 0! #40618500 1! #40618600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40619000 0! #40619500 1! #40619600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40620000 0! #40620500 1! #40620600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40621000 0! #40621500 1! #40621600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40622000 0! #40622500 1! #40622600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40623000 0! #40623500 1! #40623600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40624000 0! #40624500 1! #40624600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 0N 0L #40624700 b11 q b10000 ] #40625000 0! #40625500 1! #40625600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40626000 0! #40626500 1! #40626600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40627000 0! #40627500 1! #40627600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40628000 0! #40628500 1! #40628600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40629000 0! #40629500 1! #40629600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40630000 0! #40630500 1! #40630600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40631000 0! #40631500 1! #40631600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40632000 0! #40632500 1! #40632600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40633000 0! #40633500 1! #40633600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40634000 0! #40634500 1! #40634600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40635000 0! #40635500 1! #40635600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40636000 0! #40636500 1! #40636600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40637000 0! #40637500 1! #40637600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40638000 0! #40638500 1! #40638600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40639000 0! #40639500 1! #40639600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40640000 0! #40640500 1! #40640600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40641000 0! #40641500 1! #40641600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40642000 0! #40642500 1! #40642600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40643000 0! #40643500 1! #40643600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40644000 0! #40644500 1! #40644600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40645000 0! #40645500 1! #40645600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40646000 0! #40646500 1! #40646600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40647000 0! #40647500 1! #40647600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40648000 0! #40648500 1! #40648600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40649000 0! #40649500 1! #40649600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40650000 0! #40650500 1! #40650600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40651000 0! #40651500 1! #40651600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40652000 0! #40652500 1! #40652600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40653000 0! #40653500 1! #40653600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40654000 0! #40654500 1! #40654600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40655000 0! #40655500 1! #40655600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40656000 0! #40656500 1! #40656600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40657000 0! #40657500 1! #40657600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40658000 0! #40658500 1! #40658600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40659000 0! #40659500 1! #40659600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40660000 0! #40660500 1! #40660600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40661000 0! #40661500 1! #40661600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40662000 0! #40662500 1! #40662600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40663000 0! #40663500 1! #40663600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40664000 0! #40664500 1! #40664600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40665000 0! #40665500 1! #40665600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40666000 0! #40666500 1! #40666600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40667000 0! #40667500 1! #40667600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40668000 0! #40668500 1! #40668600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40669000 0! #40669500 1! #40669600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40670000 0! #40670500 1! #40670600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40671000 0! #40671500 1! #40671600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40672000 0! #40672500 1! #40672600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40673000 0! #40673500 1! #40673600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40674000 0! #40674500 1! #40674600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40675000 0! #40675500 1! #40675600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40676000 0! #40676500 1! #40676600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40677000 0! #40677500 1! #40677600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40678000 0! #40678500 1! #40678600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40679000 0! #40679500 1! #40679600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40680000 0! #40680500 1! #40680600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40681000 0! #40681500 1! #40681600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40682000 0! #40682500 1! #40682600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40683000 0! #40683500 1! #40683600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40684000 0! #40684500 1! #40684600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40685000 0! #40685500 1! #40685600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40686000 0! #40686500 1! #40686600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40687000 0! #40687500 1! #40687600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40688000 0! #40688500 1! #40688600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40689000 0! #40689500 1! #40689600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40690000 0! #40690500 1! #40690600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40691000 0! #40691500 1! #40691600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40692000 0! #40692500 1! #40692600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40693000 0! #40693500 1! #40693600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40694000 0! #40694500 1! #40694600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40695000 0! #40695500 1! #40695600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40696000 0! #40696500 1! #40696600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40697000 0! #40697500 1! #40697600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40698000 0! #40698500 1! #40698600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40699000 0! #40699500 1! #40699600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40700000 0! #40700500 1! #40700600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40701000 0! #40701500 1! #40701600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40702000 0! #40702500 1! #40702600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40703000 0! #40703500 1! #40703600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40704000 0! #40704500 1! #40704600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40705000 0! #40705500 1! #40705600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40706000 0! #40706500 1! #40706600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40707000 0! #40707500 1! #40707600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40708000 0! #40708500 1! #40708600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40709000 0! #40709500 1! #40709600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40710000 0! #40710500 1! #40710600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40711000 0! #40711500 1! #40711600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40712000 0! #40712500 1! #40712600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40713000 0! #40713500 1! #40713600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40714000 0! #40714500 1! #40714600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40715000 0! #40715500 1! #40715600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40716000 0! #40716500 1! #40716600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40717000 0! #40717500 1! #40717600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40718000 0! #40718500 1! #40718600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40719000 0! #40719500 1! #40719600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40720000 0! #40720500 1! #40720600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40721000 0! #40721500 1! #40721600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40722000 0! #40722500 1! #40722600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40723000 0! #40723500 1! #40723600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40724000 0! #40724500 1! #40724600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40725000 0! #40725500 1! #40725600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40726000 0! #40726500 1! #40726600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H 1Q 1O #40727000 0! #40727500 1! #40727600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40728000 0! #40728500 1! #40728600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40729000 0! #40729500 1! #40729600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40730000 0! #40730500 1! #40730600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40731000 0! #40731500 1! #40731600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40732000 0! #40732500 1! #40732600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40733000 0! #40733500 1! #40733600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40734000 0! #40734500 1! #40734600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40735000 0! #40735500 1! #40735600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40736000 0! #40736500 1! #40736600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40737000 0! #40737500 1! #40737600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40738000 0! #40738500 1! #40738600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40739000 0! #40739500 1! #40739600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40740000 0! #40740500 1! #40740600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40741000 0! #40741500 1! #40741600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40742000 0! #40742500 1! #40742600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40743000 0! #40743500 1! #40743600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40744000 0! #40744500 1! #40744600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40745000 0! #40745500 1! #40745600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40746000 0! #40746500 1! #40746600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40747000 0! #40747500 1! #40747600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40748000 0! #40748500 1! #40748600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40749000 0! #40749500 1! #40749600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40750000 0! #40750500 1! #40750600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40751000 0! #40751500 1! #40751600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40752000 0! #40752500 1! #40752600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40753000 0! #40753500 1! #40753600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40754000 0! #40754500 1! #40754600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40755000 0! #40755500 1! #40755600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40756000 0! #40756500 1! #40756600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40757000 0! #40757500 1! #40757600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40758000 0! #40758500 1! #40758600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40759000 0! #40759500 1! #40759600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40760000 0! #40760500 1! #40760600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40761000 0! #40761500 1! #40761600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40762000 0! #40762500 1! #40762600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40763000 0! #40763500 1! #40763600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40764000 0! #40764500 1! #40764600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40765000 0! #40765500 1! #40765600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40766000 0! #40766500 1! #40766600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40767000 0! #40767500 1! #40767600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40768000 0! #40768500 1! #40768600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40769000 0! #40769500 1! #40769600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40770000 0! #40770500 1! #40770600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40771000 0! #40771500 1! #40771600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40772000 0! #40772500 1! #40772600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40773000 0! #40773500 1! #40773600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40774000 0! #40774500 1! #40774600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40775000 0! #40775500 1! #40775600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40776000 0! #40776500 1! #40776600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40777000 0! #40777500 1! #40777600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 1N 1L #40777700 b111 g b100001 c 0h #40778000 0! #40778500 1! #40778600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40779000 0! #40779500 1! #40779600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40780000 0! #40780500 1! #40780600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40781000 0! #40781500 1! #40781600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40782000 0! #40782500 1! #40782600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40783000 0! #40783500 1! #40783600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40784000 0! #40784500 1! #40784600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40785000 0! #40785500 1! #40785600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40786000 0! #40786500 1! #40786600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40787000 0! #40787500 1! #40787600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40788000 0! #40788500 1! #40788600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40789000 0! #40789500 1! #40789600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40790000 0! #40790500 1! #40790600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40791000 0! #40791500 1! #40791600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40792000 0! #40792500 1! #40792600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40793000 0! #40793500 1! #40793600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40794000 0! #40794500 1! #40794600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40795000 0! #40795500 1! #40795600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40796000 0! #40796500 1! #40796600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40797000 0! #40797500 1! #40797600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40798000 0! #40798500 1! #40798600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40799000 0! #40799500 1! #40799600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40800000 0! #40800500 1! #40800600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40801000 0! #40801500 1! #40801600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40802000 0! #40802500 1! #40802600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40803000 0! #40803500 1! #40803600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40804000 0! #40804500 1! #40804600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40805000 0! #40805500 1! #40805600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40806000 0! #40806500 1! #40806600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40807000 0! #40807500 1! #40807600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40808000 0! #40808500 1! #40808600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40809000 0! #40809500 1! #40809600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40810000 0! #40810500 1! #40810600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40811000 0! #40811500 1! #40811600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40812000 0! #40812500 1! #40812600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40813000 0! #40813500 1! #40813600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40814000 0! #40814500 1! #40814600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40815000 0! #40815500 1! #40815600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40816000 0! #40816500 1! #40816600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40817000 0! #40817500 1! #40817600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40818000 0! #40818500 1! #40818600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40819000 0! #40819500 1! #40819600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40820000 0! #40820500 1! #40820600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40821000 0! #40821500 1! #40821600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40822000 0! #40822500 1! #40822600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40823000 0! #40823500 1! #40823600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40824000 0! #40824500 1! #40824600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40825000 0! #40825500 1! #40825600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40826000 0! #40826500 1! #40826600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40827000 0! #40827500 1! #40827600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40828000 0! #40828500 1! #40828600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40829000 0! #40829500 1! #40829600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40830000 0! #40830500 1! #40830600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40831000 0! #40831500 1! #40831600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40832000 0! #40832500 1! #40832600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40833000 0! #40833500 1! #40833600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40834000 0! #40834500 1! #40834600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40835000 0! #40835500 1! #40835600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40836000 0! #40836500 1! #40836600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40837000 0! #40837500 1! #40837600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40838000 0! #40838500 1! #40838600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40839000 0! #40839500 1! #40839600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40840000 0! #40840500 1! #40840600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40841000 0! #40841500 1! #40841600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40842000 0! #40842500 1! #40842600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40843000 0! #40843500 1! #40843600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40844000 0! #40844500 1! #40844600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40845000 0! #40845500 1! #40845600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40846000 0! #40846500 1! #40846600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40847000 0! #40847500 1! #40847600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40848000 0! #40848500 1! #40848600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40849000 0! #40849500 1! #40849600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40850000 0! #40850500 1! #40850600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40851000 0! #40851500 1! #40851600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40852000 0! #40852500 1! #40852600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40853000 0! #40853500 1! #40853600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40854000 0! #40854500 1! #40854600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40855000 0! #40855500 1! #40855600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40856000 0! #40856500 1! #40856600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40857000 0! #40857500 1! #40857600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40858000 0! #40858500 1! #40858600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40859000 0! #40859500 1! #40859600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40860000 0! #40860500 1! #40860600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40861000 0! #40861500 1! #40861600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40862000 0! #40862500 1! #40862600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40863000 0! #40863500 1! #40863600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40864000 0! #40864500 1! #40864600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40865000 0! #40865500 1! #40865600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40866000 0! #40866500 1! #40866600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40867000 0! #40867500 1! #40867600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40868000 0! #40868500 1! #40868600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40869000 0! #40869500 1! #40869600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40870000 0! #40870500 1! #40870600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40871000 0! #40871500 1! #40871600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40872000 0! #40872500 1! #40872600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40873000 0! #40873500 1! #40873600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40874000 0! #40874500 1! #40874600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40875000 0! #40875500 1! #40875600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40876000 0! #40876500 1! #40876600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40877000 0! #40877500 1! #40877600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40878000 0! #40878500 1! #40878600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40879000 0! #40879500 1! #40879600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H 0N 0L #40879700 b100 q 1i #40880000 0! #40880500 1! #40880600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40881000 0! #40881500 1! #40881600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H b11000011 C #40882000 0! #40882500 1! #40882600 b11000011 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40883000 0! #40883500 1! #40883600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B b11000001 C 1H #40884000 0! #40884500 1! #40884600 b11000001 J xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40885000 0! #40885500 1! #40885600 1E 1F 1G b1000000 D 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40886000 0! #40886500 1! #40886600 xE bx D x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40887000 0! #40887500 1! #40887600 0E 1F 1G 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ 00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? 1@ 0A 0B 1H #40888000 0! #40888500 1! #40888600 xE x# x$ x% x& x' x( x) x* x+ x, x- x. x/ x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? x@ xA xB xF 0G 0H #40889000 0! #40889500 1! #40890000 0! #40890500 1! #40891000 0! #40891500 1! #40892000 0! #40892500 1! #40893000 0! #40893500 1! #40894000 0! #40894500 1! #40895000 0! #40895500 1! #40896000 0! #40896500 1! #40897000 0! #40897500 1! #40898000 0! #40898500 1! #40899000 0! #40899500 1! #40900000 0! #40900500 1! #40901000 0! #40901500 1! #40902000 0! #40902500 1! #40903000 0! #40903500 1! #40904000 0! #40904500 1! #40905000 0! #40905500 1! #40906000 0! #40906500 1! #40907000 0! #40907500 1! #40908000 0! #40908500 1! #40909000 0! #40909500 1! #40910000 0! #40910500 1! #40911000 0! #40911500 1! #40912000 0! #40912500 1! #40913000 0! #40913500 1! #40914000 0! #40914500 1! #40915000 0! #40915500 1! #40916000 0! #40916500 1! #40917000 0! #40917500 1! #40918000 0! #40918500 1! #40919000 0! #40919500 1! #40920000 0! #40920500 1! #40921000 0! #40921500 1! #40922000 0! #40922500 1! #40923000 0! #40923500 1! #40924000 0! #40924500 1! #40925000 0! #40925500 1! #40926000 0! #40926500 1! #40927000 0! #40927500 1! #40928000 0! #40928500 1! #40929000 0! #40929500 1! #40930000 0! #40930500 1! #40931000 0! #40931500 1! #40932000 0! #40932500 1! #40933000 0! #40933500 1! #40934000 0! #40934500 1! #40935000 0! #40935500 1! #40936000 0! #40936500 1! #40937000 0! #40937500 1! #40938000 0! #40938500 1! #40939000 0! #40939500 1! #40940000 0! #40940500 1! #40941000 0! #40941500 1! #40942000 0! #40942500 1! #40943000 0! #40943500 1! #40944000 0! #40944500 1! #40945000 0! #40945500 1! #40946000 0! #40946500 1! #40947000 0! #40947500 1! #40948000 0! #40948500 1! #40949000 0! #40949500 1! #40950000 0! #40950500 1! #40951000 0! #40951500 1! #40952000 0! #40952500 1! #40953000 0! #40953500 1! #40954000 0! #40954500 1! #40955000 0! #40955500 1! #40956000 0! #40956500 1! #40957000 0! #40957500 1! #40958000 0! #40958500 1! #40959000 0! #40959500 1! #40960000 0! #40960500 1! #40961000 0! #40961500 1! #40962000 0! #40962500 1! #40963000 0! #40963500 1! #40964000 0! #40964500 1! #40965000 0! #40965500 1! #40966000 0! #40966500 1! #40967000 0! #40967500 1! #40968000 0! #40968500 1! #40969000 0! #40969500 1! #40970000 0! #40970500 1! #40971000 0! #40971500 1! #40972000 0! #40972500 1! #40973000 0! #40973500 1! #40974000 0! #40974500 1! #40975000 0! #40975500 1! #40976000 0! #40976500 1! #40977000 0! #40977500 1! #40978000 0! #40978500 1! #40979000 0! #40979500 1! #40980000 0! #40980500 1! #40981000 0! #40981500 1! #40981600 0Q 0O #40982000 0! #40982500 1! #40983000 0! #40983500 1! #40984000 0! #40984500 1! #40985000 0! #40985500 1! #40986000 0! #40986500 1! #40987000 0! #40987500 1! #40988000 0! #40988500 1! #40989000 0! #40989500 1! #40990000 0! #40990500 1! #40991000 0! #40991500 1! #40992000 0! #40992500 1! #40993000 0! #40993500 1! #40994000 0! #40994500 1! #40995000 0! #40995500 1! #40996000 0! #40996500 1! #40997000 0! #40997500 1! #40998000 0! #40998500 1! #40999000 0! #40999500 1! #41000000 0! #41000500 1! #41001000 0! #41001500 1! #41002000 0! #41002500 1! #41003000 0! #41003500 1! #41004000 0! #41004500 1! #41005000 0! #41005500 1! #41006000 0! #41006500 1! #41007000 0! #41007500 1! #41008000 0! #41008500 1! #41009000 0! #41009500 1! #41010000 0! #41010500 1! #41011000 0! #41011500 1! #41012000 0! #41012500 1! #41013000 0! #41013500 1! #41014000 0! #41014500 1! #41015000 0! #41015500 1! #41016000 0! #41016500 1! #41017000 0! #41017500 1! #41018000 0! #41018500 1! #41019000 0! #41019500 1! #41020000 0! #41020500 1! #41021000 0! #41021500 1! #41022000 0! #41022500 1! #41023000 0! #41023500 1! #41024000 0! #41024500 1! #41025000 0! #41025500 1! #41026000 0! #41026500 1! #41027000 0! #41027500 1! #41028000 0! #41028500 1! #41029000 0! #41029500 1! #41030000 0! #41030500 1! #41031000 0! #41031500 1! #41032000 0! #41032500 1! #41032600 1N 1L #41032700 b1000010 c #41033000 0! #41033500 1! #41034000 0! #41034500 1! #41035000 0! #41035500 1! #41036000 0! #41036500 1! #41037000 0! #41037500 1! #41038000 0! #41038500 1! #41039000 0! #41039500 1! #41040000 0! #41040500 1! #41041000 0! #41041500 1! #41042000 0! #41042500 1! #41043000 0! #41043500 1! #41044000 0! #41044500 1! #41045000 0! #41045500 1! #41046000 0! #41046500 1! #41047000 0! #41047500 1! #41048000 0! #41048500 1! #41049000 0! #41049500 1! #41050000 0! #41050500 1! #41051000 0! #41051500 1! #41052000 0! #41052500 1! #41053000 0! #41053500 1! #41054000 0! #41054500 1! #41055000 0! #41055500 1! #41056000 0! #41056500 1! #41057000 0! #41057500 1! #41058000 0! #41058500 1! #41059000 0! #41059500 1! #41060000 0! #41060500 1! #41061000 0! #41061500 1! #41062000 0! #41062500 1! #41063000 0! #41063500 1! #41064000 0! #41064500 1! #41065000 0! #41065500 1! #41066000 0! #41066500 1! #41067000 0! #41067500 1! #41068000 0! #41068500 1! #41069000 0! #41069500 1! #41070000 0! #41070500 1! #41071000 0! #41071500 1! #41072000 0! #41072500 1! #41073000 0! #41073500 1! #41074000 0! #41074500 1! #41075000 0! #41075500 1! #41076000 0! #41076500 1! #41077000 0! #41077500 1! #41078000 0! #41078500 1! #41079000 0! #41079500 1! #41080000 0! #41080500 1! #41081000 0! #41081500 1! #41082000 0! #41082500 1! #41083000 0! #41083500 1! #41083600 1Q 1O #41083700 1a 1f #41083800 b0 q #41084000 0! #41084500 1! #41085000 0! #41085500 1! #41086000 0! #41086500 1! #41087000 0! #41087500 1! #41088000 0! #41088500 1! #41089000 0! #41089500 1! #41090000 0! #41090500 1! #41091000 0! #41091500 1! #41092000 0! #41092500 1! #41093000 0! #41093500 1! #41094000 0! #41094500 1! #41095000 0! #41095500 1! #41096000 0! #41096500 1! #41097000 0! #41097500 1! #41098000 0! #41098500 1! #41099000 0! #41099500 1! #41100000 0! #41100500 1! #41101000 0! #41101500 1! #41102000 0! #41102500 1! #41103000 0! #41103500 1! #41104000 0! #41104500 1! #41105000 0! #41105500 1! #41106000 0! #41106500 1! #41107000 0! #41107500 1! #41108000 0! #41108500 1! #41109000 0! #41109500 1! #41110000 0! #41110500 1! #41111000 0! #41111500 1! #41112000 0! #41112500 1! #41113000 0! #41113500 1! #41114000 0! #41114500 1! #41115000 0! #41115500 1! #41116000 0! #41116500 1! #41117000 0! #41117500 1! #41118000 0! #41118500 1! #41119000 0! #41119500 1! #41120000 0! #41120500 1! #41121000 0! #41121500 1! #41122000 0! #41122500 1! #41123000 0! #41123500 1! #41124000 0! #41124500 1! #41125000 0! #41125500 1! #41126000 0! #41126500 1! #41127000 0! #41127500 1! #41128000 0! #41128500 1! #41129000 0! #41129500 1! #41130000 0! #41130500 1! #41131000 0! #41131500 1! #41132000 0! #41132500 1! #41133000 0! #41133500 1! #41134000 0! #41134500 1! #41135000 0! #41135500 1! #41136000 0! #41136500 1! #41137000 0! #41137500 1! #41138000 0! #41138500 1! #41139000 0! #41139500 1! #41140000 0! #41140500 1! #41141000 0! #41141500 1! #41142000 0! #41142500 1! #41143000 0! #41143500 1! #41144000 0! #41144500 1! #41145000 0! #41145500 1! #41146000 0! #41146500 1! #41147000 0! #41147500 1! #41148000 0! #41148500 1! #41149000 0! #41149500 1! #41150000 0! #41150500 1! #41151000 0! #41151500 1! #41152000 0! #41152500 1! #41153000 0! #41153500 1! #41154000 0! #41154500 1! #41155000 0! #41155500 1! #41156000 0! #41156500 1! #41157000 0! #41157500 1! #41158000 0! #41158500 1! #41159000 0! #41159500 1! #41160000 0! #41160500 1! #41161000 0! #41161500 1! #41162000 0! #41162500 1! #41163000 0! #41163500 1! #41164000 0! #41164500 1! #41165000 0! #41165500 1! #41166000 0! #41166500 1! #41167000 0! #41167500 1! #41168000 0! #41168500 1! #41169000 0! #41169500 1! #41170000 0! #41170500 1! #41171000 0! #41171500 1! #41172000 0! #41172500 1! #41173000 0! #41173500 1! #41174000 0! #41174500 1! #41175000 0! #41175500 1! #41176000 0! #41176500 1! #41177000 0! #41177500 1! #41178000 0! #41178500 1! #41179000 0! #41179500 1! #41180000 0! #41180500 1! #41181000 0! #41181500 1! #41182000 0! #41182500 1! #41183000 0! #41183500 1! #41184000 0! #41184500 1! #41185000 0! #41185500 1! #41186000 0! #41186500 1! #41187000 0! #41187500 1! #41188000 0! #41188500 1! #41189000 0! #41189500 1! #41190000 0! #41190500 1! #41191000 0! #41191500 1! #41192000 0! #41192500 1! #41193000 0! #41193500 1! #41194000 0! #41194500 1! #41195000 0! #41195500 1! #41196000 0! #41196500 1! #41197000 0! #41197500 1! #41198000 0! #41198500 1! #41199000 0! #41199500 1! #41200000 0! #41200500 1! #41201000 0! #41201500 1! #41202000 0! #41202500 1! #41203000 0! #41203500 1! #41204000 0! #41204500 1! #41205000 0! #41205500 1! #41206000 0! #41206500 1! #41207000 0! #41207500 1! #41208000 0! #41208500 1! #41209000 0! #41209500 1! #41210000 0! #41210500 1! #41211000 0! #41211500 1! #41212000 0! #41212500 1! #41213000 0! #41213500 1! #41214000 0! #41214500 1! #41215000 0! #41215500 1! #41216000 0! #41216500 1! #41217000 0! #41217500 1! #41218000 0! #41218500 1! #41219000 0! #41219500 1! #41220000 0! #41220500 1! #41221000 0! #41221500 1! #41222000 0! #41222500 1! #41223000 0! #41223500 1! #41224000 0! #41224500 1! #41225000 0! #41225500 1! #41226000 0! #41226500 1! #41227000 0! #41227500 1! #41228000 0! #41228500 1! #41229000 0! #41229500 1! #41230000 0! #41230500 1! #41231000 0! #41231500 1! #41232000 0! #41232500 1! #41233000 0! #41233500 1! #41234000 0! #41234500 1! #41235000 0! #41235500 1! #41236000 0! #41236500 1! #41237000 0! #41237500 1! #41238000 0! #41238500 1! #41239000 0! #41239500 1! #41240000 0! #41240500 1! #41241000 0! #41241500 1! #41242000 0! #41242500 1! #41243000 0! #41243500 1! #41244000 0! #41244500 1! #41245000 0! #41245500 1! #41246000 0! #41246500 1! #41247000 0! #41247500 1! #41248000 0! #41248500 1! #41249000 0! #41249500 1! #41250000 0! #41250500 1! #41251000 0! #41251500 1! #41252000 0! #41252500 1! #41253000 0! #41253500 1! #41254000 0! #41254500 1! #41255000 0! #41255500 1! #41256000 0! #41256500 1! #41257000 0! #41257500 1! #41258000 0! #41258500 1! #41259000 0! #41259500 1! #41260000 0! #41260500 1! #41261000 0! #41261500 1! #41262000 0! #41262500 1! #41263000 0! #41263500 1! #41264000 0! #41264500 1! #41265000 0! #41265500 1! #41266000 0! #41266500 1! #41267000 0! #41267500 1! #41268000 0! #41268500 1! #41269000 0! #41269500 1! #41270000 0! #41270500 1! #41271000 0! #41271500 1! #41272000 0! #41272500 1! #41273000 0! #41273500 1! #41274000 0! #41274500 1! #41275000 0! #41275500 1! #41276000 0! #41276500 1! #41277000 0! #41277500 1! #41278000 0! #41278500 1! #41279000 0! #41279500 1! #41280000 0! #41280500 1! #41281000 0! #41281500 1! #41282000 0! #41282500 1! #41283000 0! #41283500 1! #41284000 0! #41284500 1! #41285000 0! #41285500 1! #41286000 0! #41286500 1! #41287000 0! #41287500 1! #41288000 0! #41288500 1! #41289000 0! #41289500 1! #41290000 0! #41290500 1! #41291000 0! #41291500 1! #41292000 0! #41292500 1! #41293000 0! #41293500 1! #41294000 0! #41294500 1! #41295000 0! #41295500 1! #41296000 0! #41296500 1! #41297000 0! #41297500 1! #41298000 0! #41298500 1! #41299000 0! #41299500 1! #41300000 0! #41300500 1! #41301000 0! #41301500 1! #41302000 0! #41302500 1! #41303000 0! #41303500 1! #41304000 0! #41304500 1! #41305000 0! #41305500 1! #41306000 0! #41306500 1! #41307000 0! #41307500 1! #41308000 0! #41308500 1! #41309000 0! #41309500 1! #41310000 0! #41310500 1! #41311000 0! #41311500 1! #41312000 0! #41312500 1! #41313000 0! #41313500 1! #41314000 0! #41314500 1! #41315000 0! #41315500 1! #41316000 0! #41316500 1! #41317000 0! #41317500 1! #41318000 0! #41318500 1! #41319000 0! #41319500 1! #41320000 0! #41320500 1! #41321000 0! #41321500 1! #41322000 0! #41322500 1! #41323000 0! #41323500 1! #41324000 0! #41324500 1! #41325000 0! #41325500 1! #41326000 0! #41326500 1! #41327000 0! #41327500 1! #41328000 0! #41328500 1! #41329000 0! #41329500 1! #41330000 0! #41330500 1! #41331000 0! #41331500 1! #41332000 0! #41332500 1! #41333000 0! #41333500 1! #41334000 0! #41334500 1! #41335000 0! #41335500 1! #41336000 0! #41336500 1! #41337000 0! #41337500 1! #41338000 0! #41338500 1! #41339000 0! #41339500 1! #41340000 0! #41340500 1! #41341000 0! #41341500 1! #41342000 0! #41342500 1! #41343000 0! #41343500 1! #41344000 0! #41344500 1! #41345000 0! #41345500 1! #41346000 0! #41346500 1! #41347000 0! #41347500 1! #41348000 0! #41348500 1! #41349000 0! #41349500 1! #41350000 0! #41350500 1! #41351000 0! #41351500 1! #41352000 0! #41352500 1! #41353000 0! #41353500 1! #41354000 0! #41354500 1! #41355000 0! #41355500 1! #41356000 0! #41356500 1! #41357000 0! #41357500 1! #41358000 0! #41358500 1! #41359000 0! #41359500 1! #41360000 0! #41360500 1! #41361000 0! #41361500 1! #41362000 0! #41362500 1! #41363000 0! #41363500 1! #41364000 0! #41364500 1! #41365000 0! #41365500 1! #41366000 0! #41366500 1! #41367000 0! #41367500 1! #41368000 0! #41368500 1! #41369000 0! #41369500 1! #41370000 0! #41370500 1! #41371000 0! #41371500 1! #41372000 0! #41372500 1! #41373000 0! #41373500 1! #41374000 0! #41374500 1! #41375000 0! #41375500 1! #41376000 0! #41376500 1! #41377000 0! #41377500 1! #41378000 0! #41378500 1! #41379000 0! #41379500 1! #41380000 0! #41380500 1! #41381000 0! #41381500 1! #41382000 0! #41382500 1! #41383000 0! #41383500 1! #41384000 0! #41384500 1! #41385000 0! #41385500 1! #41386000 0! #41386500 1! #41387000 0! #41387500 1! #41388000 0! #41388500 1! #41389000 0! #41389500 1! #41390000 0! #41390500 1! #41391000 0! #41391500 1! #41392000 0! #41392500 1! #41393000 0! #41393500 1! #41394000 0! #41394500 1! #41395000 0! #41395500 1! #41396000 0! #41396500 1! #41397000 0! #41397500 1! #41398000 0! #41398500 1! #41399000 0! #41399500 1! #41400000 0! #41400500 1! #41401000 0! #41401500 1! #41402000 0! #41402500 1! #41403000 0! #41403500 1! #41404000 0! #41404500 1! #41405000 0! #41405500 1! #41406000 0! #41406500 1! #41407000 0! #41407500 1! #41408000 0! #41408500 1! #41409000 0! #41409500 1! #41410000 0! #41410500 1! #41411000 0! #41411500 1! #41412000 0! #41412500 1! #41413000 0! #41413500 1! #41414000 0! #41414500 1! #41415000 0! #41415500 1! #41416000 0! #41416500 1! #41417000 0! #41417500 1! #41418000 0! #41418500 1! #41419000 0! #41419500 1! #41420000 0! #41420500 1! #41421000 0! #41421500 1! #41422000 0! #41422500 1! #41423000 0! #41423500 1! #41424000 0! #41424500 1! #41425000 0! #41425500 1! #41426000 0! #41426500 1! #41427000 0! #41427500 1! #41428000 0! #41428500 1! #41429000 0! #41429500 1! #41430000 0! #41430500 1! #41431000 0! #41431500 1! #41432000 0! #41432500 1! #41433000 0! #41433500 1! #41434000 0! #41434500 1! #41435000 0! #41435500 1! #41436000 0! #41436500 1! #41437000 0! #41437500 1! #41438000 0! #41438500 1! #41439000 0! #41439500 1! #41440000 0! #41440500 1! #41441000 0! #41441500 1! #41442000 0! #41442500 1! #41443000 0! #41443500 1! #41444000 0! #41444500 1! #41445000 0! #41445500 1! #41446000 0! #41446500 1! #41447000 0! #41447500 1! #41448000 0! #41448500 1! #41449000 0! #41449500 1! #41450000 0! #41450500 1! #41451000 0! #41451500 1! #41452000 0! #41452500 1! #41453000 0! #41453500 1! #41454000 0! #41454500 1! #41455000 0! #41455500 1! #41456000 0! #41456500 1! #41457000 0! #41457500 1! #41458000 0! #41458500 1! #41459000 0! #41459500 1! #41460000 0! #41460500 1! #41461000 0! #41461500 1! #41462000 0! #41462500 1! #41463000 0! #41463500 1! #41464000 0! #41464500 1! #41465000 0! #41465500 1! #41466000 0! #41466500 1! #41467000 0! #41467500 1! #41468000 0! #41468500 1! #41469000 0! #41469500 1! #41470000 0! #41470500 1! #41471000 0! #41471500 1! #41472000 0! #41472500 1! #41473000 0! #41473500 1! #41474000 0! #41474500 1! #41475000 0! #41475500 1! #41476000 0! #41476500 1! #41477000 0! #41477500 1! #41478000 0! #41478500 1! #41479000 0! #41479500 1! #41480000 0! #41480500 1! #41481000 0! #41481500 1! #41482000 0! #41482500 1! #41483000 0! #41483500 1! #41484000 0! #41484500 1! #41485000 0! #41485500 1! #41486000 0! #41486500 1! #41487000 0! #41487500 1! #41488000 0! #41488500 1! #41489000 0! #41489500 1! #41490000 0! #41490500 1! #41491000 0! #41491500 1! #41492000 0! #41492500 1! #41493000 0! #41493500 1! #41494000 0! #41494500 1! #41495000 0! #41495500 1! #41496000 0! #41496500 1! #41497000 0! #41497500 1! #41498000 0! #41498500 1! #41499000 0! #41499500 1! #41500000 0! #41500500 1! #41501000 0! #41501500 1! #41502000 0! #41502500 1! #41503000 0! #41503500 1! #41504000 0! #41504500 1! #41505000 0! #41505500 1! #41506000 0! #41506500 1! #41507000 0! #41507500 1! #41508000 0! #41508500 1! #41509000 0! #41509500 1! #41510000 0! #41510500 1! #41511000 0! #41511500 1! #41512000 0! #41512500 1! #41513000 0! #41513500 1! #41514000 0! #41514500 1! #41515000 0! #41515500 1! #41516000 0! #41516500 1! #41517000 0! #41517500 1! #41518000 0! #41518500 1! #41519000 0! #41519500 1! #41520000 0! #41520500 1! #41521000 0! #41521500 1! #41522000 0! #41522500 1! #41523000 0! #41523500 1! #41524000 0! #41524500 1! #41525000 0! #41525500 1! #41526000 0! #41526500 1! #41527000 0! #41527500 1! #41528000 0! #41528500 1! #41529000 0! #41529500 1! #41530000 0! #41530500 1! #41531000 0! #41531500 1! #41532000 0! #41532500 1! #41533000 0! #41533500 1! #41534000 0! #41534500 1! #41535000 0! #41535500 1! #41536000 0! #41536500 1! #41537000 0! #41537500 1! #41538000 0! #41538500 1! #41539000 0! #41539500 1! #41540000 0! #41540500 1! #41541000 0! #41541500 1! #41542000 0! #41542500 1! #41543000 0! #41543500 1! #41544000 0! #41544500 1! #41545000 0! #41545500 1! #41546000 0! #41546500 1! #41547000 0! #41547500 1! #41548000 0! #41548500 1! #41549000 0! #41549500 1! #41550000 0! #41550500 1! #41551000 0! #41551500 1! #41552000 0! #41552500 1! #41553000 0! #41553500 1! #41554000 0! #41554500 1! #41555000 0! #41555500 1! #41556000 0! #41556500 1! #41557000 0! #41557500 1! #41558000 0! #41558500 1! #41559000 0! #41559500 1! #41560000 0! #41560500 1! #41561000 0! #41561500 1! #41562000 0! #41562500 1! #41563000 0! #41563500 1! #41564000 0! #41564500 1! #41565000 0! #41565500 1! #41566000 0! #41566500 1! #41567000 0! #41567500 1! #41568000 0! #41568500 1! #41569000 0! #41569500 1! #41570000 0! #41570500 1! #41571000 0! #41571500 1! #41572000 0! #41572500 1! #41573000 0! #41573500 1! #41574000 0! #41574500 1! #41575000 0! #41575500 1! #41576000 0! #41576500 1! #41577000 0! #41577500 1! #41578000 0! #41578500 1! #41579000 0! #41579500 1! #41580000 0! #41580500 1! #41581000 0! #41581500 1! #41582000 0! #41582500 1! #41583000 0! #41583500 1! #41584000 0! #41584500 1! #41585000 0! #41585500 1! #41586000 0! #41586500 1! #41587000 0! #41587500 1! #41588000 0! #41588500 1! #41589000 0! #41589500 1! #41590000 0! #41590500 1! #41591000 0! #41591500 1! #41592000 0! #41592500 1! #41593000 0! #41593500 1! #41594000 0! #41594500 1! #41595000 0! #41595500 1! #41596000 0! #41596500 1! #41597000 0! #41597500 1! #41598000 0! #41598500 1! #41599000 0! #41599500 1! #41600000 0! #41600500 1! #41601000 0! #41601500 1! #41602000 0! #41602500 1! #41603000 0! #41603500 1! #41604000 0! #41604500 1! #41605000 0! #41605500 1! #41606000 0! #41606500 1! #41607000 0! #41607500 1! #41608000 0! #41608500 1! #41609000 0! #41609500 1! #41610000 0! #41610500 1! #41611000 0! #41611500 1! #41612000 0! #41612500 1! #41613000 0! #41613500 1! #41614000 0! #41614500 1! #41615000 0! #41615500 1! #41616000 0! #41616500 1! #41617000 0! #41617500 1! #41618000 0! #41618500 1! #41619000 0! #41619500 1! #41620000 0! #41620500 1! #41621000 0! #41621500 1! #41622000 0! #41622500 1! #41623000 0! #41623500 1! #41624000 0! #41624500 1! #41625000 0! #41625500 1! #41626000 0! #41626500 1! #41627000 0! #41627500 1! #41628000 0! #41628500 1! #41629000 0! #41629500 1! #41630000 0! #41630500 1! #41631000 0! #41631500 1! #41632000 0! #41632500 1! #41633000 0! #41633500 1! #41634000 0! #41634500 1! #41635000 0! #41635500 1! #41636000 0! #41636500 1! #41637000 0! #41637500 1! #41638000 0! #41638500 1! #41639000 0! #41639500 1! #41640000 0! #41640500 1! #41641000 0! #41641500 1! #41642000 0! #41642500 1! #41643000 0! #41643500 1! #41644000 0! #41644500 1! #41645000 0! #41645500 1! #41646000 0! #41646500 1! #41647000 0! #41647500 1! #41648000 0! #41648500 1! #41649000 0! #41649500 1! #41650000 0! #41650500 1! #41651000 0! #41651500 1! #41652000 0! #41652500 1! #41653000 0! #41653500 1! #41654000 0! #41654500 1! #41655000 0! #41655500 1! #41656000 0! #41656500 1! #41657000 0! #41657500 1! #41658000 0! #41658500 1! #41659000 0! #41659500 1! #41660000 0! #41660500 1! #41661000 0! #41661500 1! #41662000 0! #41662500 1! #41663000 0! #41663500 1! #41664000 0! #41664500 1! #41665000 0! #41665500 1! #41666000 0! #41666500 1! #41667000 0! #41667500 1! #41668000 0! #41668500 1! #41669000 0! #41669500 1! #41670000 0! #41670500 1! #41671000 0! #41671500 1! #41672000 0! #41672500 1! #41673000 0! #41673500 1! #41674000 0! #41674500 1! #41675000 0! #41675500 1! #41676000 0! #41676500 1! #41677000 0! #41677500 1! #41678000 0! #41678500 1! #41679000 0! #41679500 1! #41680000 0! #41680500 1! #41681000 0! #41681500 1! #41682000 0! #41682500 1! #41683000 0! #41683500 1! #41684000 0! #41684500 1! #41685000 0! #41685500 1! #41686000 0! #41686500 1! #41687000 0! #41687500 1! #41688000 0! #41688500 1! #41689000 0! #41689500 1! #41690000 0! #41690500 1! #41691000 0! #41691500 1! #41692000 0! #41692500 1! #41693000 0! #41693500 1! #41694000 0! #41694500 1! #41695000 0! #41695500 1! #41696000 0! #41696500 1! #41697000 0! #41697500 1! #41698000 0! #41698500 1! #41699000 0! #41699500 1! #41700000 0! #41700500 1! #41701000 0! #41701500 1! #41702000 0! #41702500 1! #41703000 0! #41703500 1! #41704000 0! #41704500 1! #41705000 0! #41705500 1! #41706000 0! #41706500 1! #41707000 0! #41707500 1! #41708000 0! #41708500 1! #41709000 0! #41709500 1! #41710000 0! #41710500 1! #41711000 0! #41711500 1! #41712000 0! #41712500 1! #41713000 0! #41713500 1! #41714000 0! #41714500 1! #41715000 0! #41715500 1! #41716000 0! #41716500 1! #41717000 0! #41717500 1! #41718000 0! #41718500 1! #41719000 0! #41719500 1! #41720000 0! #41720500 1! #41721000 0! #41721500 1! #41722000 0! #41722500 1! #41723000 0! #41723500 1! #41724000 0! #41724500 1! #41725000 0! #41725500 1! #41726000 0! #41726500 1! #41727000 0! #41727500 1! #41728000 0! #41728500 1! #41729000 0! #41729500 1! #41730000 0! #41730500 1! #41731000 0! #41731500 1! #41732000 0! #41732500 1! #41733000 0! #41733500 1! #41734000 0! #41734500 1! #41735000 0! #41735500 1! #41736000 0! #41736500 1! #41737000 0! #41737500 1! #41738000 0! #41738500 1! #41739000 0! #41739500 1! #41740000 0! #41740500 1! #41741000 0! #41741500 1! #41742000 0! #41742500 1! #41743000 0! #41743500 1! #41744000 0! #41744500 1! #41745000 0! #41745500 1! #41746000 0! #41746500 1! #41747000 0! #41747500 1! #41748000 0! #41748500 1! #41749000 0! #41749500 1! #41750000 0! #41750500 1! #41751000 0! #41751500 1! #41752000 0! #41752500 1! #41753000 0! #41753500 1! #41754000 0! #41754500 1! #41755000 0! #41755500 1! #41756000 0! #41756500 1! #41757000 0! #41757500 1! #41758000 0! #41758500 1! #41759000 0! #41759500 1! #41760000 0! #41760500 1! #41761000 0! #41761500 1! #41762000 0! #41762500 1! #41763000 0! #41763500 1! #41764000 0! #41764500 1! #41765000 0! #41765500 1! #41766000 0! #41766500 1! #41767000 0! #41767500 1! #41768000 0! #41768500 1! #41769000 0! #41769500 1! #41770000 0! #41770500 1! #41771000 0! #41771500 1! #41772000 0! #41772500 1! #41773000 0! #41773500 1! #41774000 0! #41774500 1! #41775000 0! #41775500 1! #41776000 0! #41776500 1! #41777000 0! #41777500 1! #41778000 0! #41778500 1! #41779000 0! #41779500 1! #41780000 0! #41780500 1! #41781000 0! #41781500 1! #41782000 0! #41782500 1! #41783000 0! #41783500 1! #41784000 0! #41784500 1! #41785000 0! #41785500 1! #41786000 0! #41786500 1! #41787000 0! #41787500 1! #41788000 0! #41788500 1! #41789000 0! #41789500 1! #41790000 0! #41790500 1! #41791000 0! #41791500 1! #41792000 0! #41792500 1! #41793000 0! #41793500 1! #41794000 0! #41794500 1! #41795000 0! #41795500 1! #41796000 0! #41796500 1! #41797000 0! #41797500 1! #41798000 0! #41798500 1! #41799000 0! #41799500 1! #41800000 0! #41800500 1! #41801000 0! #41801500 1! #41802000 0! #41802500 1! #41803000 0! #41803500 1! #41804000 0! #41804500 1! #41805000 0! #41805500 1! #41806000 0! #41806500 1! #41807000 0! #41807500 1! #41808000 0! #41808500 1! #41809000 0! #41809500 1! #41810000 0! #41810500 1! #41811000 0! #41811500 1! #41812000 0! #41812500 1! #41813000 0! #41813500 1! #41814000 0! #41814500 1! #41815000 0! #41815500 1! #41816000 0! #41816500 1! #41817000 0! #41817500 1! #41818000 0! #41818500 1! #41819000 0! #41819500 1! #41820000 0! #41820500 1! #41821000 0! #41821500 1! #41822000 0! #41822500 1! #41823000 0! #41823500 1! #41824000 0! #41824500 1! #41825000 0! #41825500 1! #41826000 0! #41826500 1! #41827000 0! #41827500 1! #41828000 0! #41828500 1! #41829000 0! #41829500 1! #41830000 0! #41830500 1! #41831000 0! #41831500 1! #41832000 0! #41832500 1! #41833000 0! #41833500 1! #41834000 0! #41834500 1! #41835000 0! #41835500 1! #41836000 0! #41836500 1! #41837000 0! #41837500 1! #41838000 0! #41838500 1! #41839000 0! #41839500 1! #41840000 0! #41840500 1! #41841000 0! #41841500 1! #41842000 0! #41842500 1! #41843000 0! #41843500 1! #41844000 0! #41844500 1! #41845000 0! #41845500 1! #41846000 0! #41846500 1! #41847000 0! #41847500 1! #41848000 0! #41848500 1! #41849000 0! #41849500 1! #41850000 0! #41850500 1! #41851000 0! #41851500 1! #41852000 0! #41852500 1! #41853000 0! #41853500 1! #41854000 0! #41854500 1! #41855000 0! #41855500 1! #41856000 0! #41856500 1! #41857000 0! #41857500 1! #41858000 0! #41858500 1! #41859000 0! #41859500 1! #41860000 0! #41860500 1! #41861000 0! #41861500 1! #41862000 0! #41862500 1! #41863000 0! #41863500 1! #41864000 0! #41864500 1! #41865000 0! #41865500 1! #41866000 0! #41866500 1! #41867000 0! #41867500 1! #41868000 0! #41868500 1! #41869000 0! #41869500 1! #41870000 0! #41870500 1! #41871000 0! #41871500 1! #41872000 0! #41872500 1! #41873000 0! #41873500 1! #41874000 0! #41874500 1! #41875000 0! #41875500 1! #41876000 0! #41876500 1! #41877000 0! #41877500 1! #41878000 0! #41878500 1! #41879000 0! #41879500 1! #41880000 0! #41880500 1! #41881000 0! #41881500 1! #41882000 0! #41882500 1! #41883000 0! #41883500 1! #41884000 0! #41884500 1! #41885000 0! #41885500 1! #41886000 0! #41886500 1! #41887000 0! #41887500 1! #41888000 0! #41888500 1! #41889000 0! #41889500 1! #41890000 0! #41890500 1! #41891000 0! #41891500 1! #41892000 0! #41892500 1! #41893000 0! #41893500 1! #41894000 0! #41894500 1! #41895000 0! #41895500 1! #41896000 0! #41896500 1! #41897000 0! #41897500 1! #41898000 0! #41898500 1! #41899000 0! #41899500 1! #41900000 0! #41900500 1! #41901000 0! #41901500 1! #41902000 0! #41902500 1! #41903000 0! #41903500 1! #41904000 0! #41904500 1! #41905000 0! #41905500 1! #41906000 0! #41906500 1! #41907000 0! #41907500 1! #41908000 0! #41908500 1! #41909000 0! #41909500 1! #41910000 0! #41910500 1! #41911000 0! #41911500 1! #41912000 0! #41912500 1! #41913000 0! #41913500 1! #41914000 0! #41914500 1! #41915000 0! #41915500 1! #41916000 0! #41916500 1! #41917000 0! #41917500 1! #41918000 0! #41918500 1! #41919000 0! #41919500 1! #41920000 0! #41920500 1! #41921000 0! #41921500 1! #41922000 0! #41922500 1! #41923000 0! #41923500 1! #41924000 0! #41924500 1! #41925000 0! #41925500 1! #41926000 0! #41926500 1! #41927000 0! #41927500 1! #41928000 0! #41928500 1! #41929000 0! #41929500 1! #41930000 0! #41930500 1! #41931000 0! #41931500 1! #41932000 0! #41932500 1! #41933000 0! #41933500 1! #41934000 0! #41934500 1! #41935000 0! #41935500 1! #41936000 0! #41936500 1! #41937000 0! #41937500 1! #41938000 0! #41938500 1! #41939000 0! #41939500 1! #41940000 0! #41940500 1! #41941000 0! #41941500 1! #41942000 0! #41942500 1! #41943000 0! #41943500 1! #41944000 0! #41944500 1! #41945000 0! #41945500 1! #41946000 0! #41946500 1! #41947000 0! #41947500 1! #41948000 0! #41948500 1! #41949000 0! #41949500 1! #41950000 0! #41950500 1! #41951000 0! #41951500 1! #41952000 0! #41952500 1! #41953000 0! #41953500 1! #41954000 0! #41954500 1! #41955000 0! #41955500 1! #41956000 0! #41956500 1! #41957000 0! #41957500 1! #41958000 0! #41958500 1! #41959000 0! #41959500 1! #41960000 0! #41960500 1! #41961000 0! #41961500 1! #41962000 0! #41962500 1! #41963000 0! #41963500 1! #41964000 0! #41964500 1! #41965000 0! #41965500 1! #41966000 0! #41966500 1! #41967000 0! #41967500 1! #41968000 0! #41968500 1! #41969000 0! #41969500 1! #41970000 0! #41970500 1! #41971000 0! #41971500 1! #41972000 0! #41972500 1! #41973000 0! #41973500 1! #41974000 0! #41974500 1! #41975000 0! #41975500 1! #41976000 0! #41976500 1! #41977000 0! #41977500 1! #41978000 0! #41978500 1! #41979000 0! #41979500 1! #41980000 0! #41980500 1! #41981000 0! #41981500 1! #41982000 0! #41982500 1! #41983000 0! #41983500 1! #41984000 0! #41984500 1! #41985000 0! #41985500 1! #41986000 0! #41986500 1! #41987000 0! #41987500 1! #41988000 0! #41988500 1! #41989000 0! #41989500 1! #41990000 0! #41990500 1! #41991000 0! #41991500 1! #41992000 0! #41992500 1! #41993000 0! #41993500 1! #41994000 0! #41994500 1! #41995000 0! #41995500 1! #41996000 0! #41996500 1! #41997000 0! #41997500 1! #41998000 0! #41998500 1! #41999000 0! #41999500 1! #42000000 0! #42000500 1! #42001000 0! #42001500 1! #42002000 0! #42002500 1! #42003000 0! #42003500 1! #42004000 0! #42004500 1! #42005000 0! #42005500 1! #42006000 0! #42006500 1! #42007000 0! #42007500 1! #42008000 0! #42008500 1! #42009000 0! #42009500 1! #42010000 0! #42010500 1! #42011000 0! #42011500 1! #42012000 0! #42012500 1! #42013000 0! #42013500 1! #42014000 0! #42014500 1! #42015000 0! #42015500 1! #42016000 0! #42016500 1! #42017000 0! #42017500 1! #42018000 0! #42018500 1! #42019000 0! #42019500 1! #42020000 0! #42020500 1! #42021000 0! #42021500 1! #42022000 0! #42022500 1! #42023000 0! #42023500 1! #42024000 0! #42024500 1! #42025000 0! #42025500 1! #42026000 0! #42026500 1! #42027000 0! #42027500 1! #42028000 0! #42028500 1! #42029000 0! #42029500 1! #42030000 0! #42030500 1! #42031000 0! #42031500 1! #42032000 0! #42032500 1! #42033000 0! #42033500 1! #42034000 0! #42034500 1! #42035000 0! #42035500 1! #42036000 0! #42036500 1! #42037000 0! #42037500 1! #42038000 0! #42038500 1! #42039000 0! #42039500 1! #42040000 0! #42040500 1! #42041000 0! #42041500 1! #42042000 0! #42042500 1! #42043000 0! #42043500 1! #42044000 0! #42044500 1! #42045000 0! #42045500 1! #42046000 0! #42046500 1! #42047000 0! #42047500 1! #42048000 0! #42048500 1! #42049000 0! #42049500 1! #42050000 0! #42050500 1! #42051000 0! #42051500 1! #42052000 0! #42052500 1! #42053000 0! #42053500 1! #42054000 0! #42054500 1! #42055000 0! #42055500 1! #42056000 0! #42056500 1! #42057000 0! #42057500 1! #42058000 0! #42058500 1! #42059000 0! #42059500 1! #42060000 0! #42060500 1! #42061000 0! #42061500 1! #42062000 0! #42062500 1! #42063000 0! #42063500 1! #42064000 0! #42064500 1! #42065000 0! #42065500 1! #42066000 0! #42066500 1! #42067000 0! #42067500 1! #42068000 0! #42068500 1! #42069000 0! #42069500 1! #42070000 0! #42070500 1! #42071000 0! #42071500 1! #42072000 0! #42072500 1! #42073000 0! #42073500 1! #42074000 0! #42074500 1! #42075000 0! #42075500 1! #42076000 0! #42076500 1! #42077000 0! #42077500 1! #42078000 0! #42078500 1! #42079000 0! #42079500 1! #42080000 0! #42080500 1! #42081000 0! #42081500 1! #42082000 0! #42082500 1! #42083000 0! #42083500 1! #42084000 0! #42084500 1! #42085000 0! #42085500 1! #42086000 0! #42086500 1! #42087000 0! #42087500 1! #42088000 0! #42088500 1! #42089000 0! #42089500 1! #42090000 0! #42090500 1! #42091000 0! #42091500 1! #42092000 0! #42092500 1! #42093000 0! #42093500 1! #42094000 0! #42094500 1! #42095000 0! #42095500 1! #42096000 0! #42096500 1! #42097000 0! #42097500 1! #42098000 0! #42098500 1! #42099000 0! #42099500 1! #42100000 0! #42100500 1! #42101000 0! #42101500 1! #42102000 0! #42102500 1! #42103000 0! #42103500 1! #42104000 0! #42104500 1! #42105000 0! #42105500 1! #42106000 0! #42106500 1! #42107000 0! #42107500 1! #42108000 0! #42108500 1! #42109000 0! #42109500 1! #42110000 0! #42110500 1! #42111000 0! #42111500 1! #42112000 0! #42112500 1! #42113000 0! #42113500 1! #42114000 0! #42114500 1! #42115000 0! #42115500 1! #42116000 0! #42116500 1! #42117000 0! #42117500 1! #42118000 0! #42118500 1! #42119000 0! #42119500 1! #42120000 0! #42120500 1! #42121000 0! #42121500 1! #42122000 0! #42122500 1! #42123000 0! #42123500 1! #42124000 0! #42124500 1! #42125000 0! #42125500 1! #42126000 0! #42126500 1! #42127000 0! #42127500 1! #42128000 0! #42128500 1! #42129000 0! #42129500 1! #42130000 0! #42130500 1! #42131000 0! #42131500 1! #42132000 0! #42132500 1! #42133000 0! #42133500 1! #42134000 0! #42134500 1! #42135000 0! #42135500 1! #42136000 0! #42136500 1! #42137000 0! #42137500 1! #42138000 0! #42138500 1! #42139000 0! #42139500 1! #42140000 0! #42140500 1! #42141000 0! #42141500 1! #42142000 0! #42142500 1! #42143000 0! #42143500 1! #42144000 0! #42144500 1! #42145000 0! #42145500 1! #42146000 0! #42146500 1! #42147000 0! #42147500 1! #42148000 0! #42148500 1! #42149000 0! #42149500 1! #42150000 0! #42150500 1! #42151000 0! #42151500 1! #42152000 0! #42152500 1! #42153000 0! #42153500 1! #42154000 0! #42154500 1! #42155000 0! #42155500 1! #42156000 0! #42156500 1! #42157000 0! #42157500 1! #42158000 0! #42158500 1! #42159000 0! #42159500 1! #42160000 0! #42160500 1! #42161000 0! #42161500 1! #42162000 0! #42162500 1! #42163000 0! #42163500 1! #42164000 0! #42164500 1! #42165000 0! #42165500 1! #42166000 0! #42166500 1! #42167000 0! #42167500 1! #42168000 0! #42168500 1! #42169000 0! #42169500 1! #42170000 0! #42170500 1! #42171000 0! #42171500 1! #42172000 0! #42172500 1! #42173000 0! #42173500 1! #42174000 0! #42174500 1! #42175000 0! #42175500 1! #42176000 0! #42176500 1! #42177000 0! #42177500 1! #42178000 0! #42178500 1! #42179000 0! #42179500 1! #42180000 0! #42180500 1! #42181000 0! #42181500 1! #42182000 0! #42182500 1! #42183000 0! #42183500 1! #42184000 0! #42184500 1! #42185000 0! #42185500 1! #42186000 0! #42186500 1! #42187000 0! #42187500 1! #42188000 0! #42188500 1! #42189000 0! #42189500 1! #42190000 0! #42190500 1! #42191000 0! #42191500 1! #42192000 0! #42192500 1! #42193000 0! #42193500 1! #42194000 0! #42194500 1! #42195000 0! #42195500 1! #42196000 0! #42196500 1! #42197000 0! #42197500 1! #42198000 0! #42198500 1! #42199000 0! #42199500 1! #42200000 0! #42200500 1! #42201000 0! #42201500 1! #42202000 0! #42202500 1! #42203000 0! #42203500 1! #42204000 0! #42204500 1! #42205000 0! #42205500 1! #42206000 0! #42206500 1! #42207000 0! #42207500 1! #42208000 0! #42208500 1! #42209000 0! #42209500 1! #42210000 0! #42210500 1! #42211000 0! #42211500 1! #42212000 0! #42212500 1! #42213000 0! #42213500 1! #42214000 0! #42214500 1! #42215000 0! #42215500 1! #42216000 0! #42216500 1! #42217000 0! #42217500 1! #42218000 0! #42218500 1! #42219000 0! #42219500 1! #42220000 0! #42220500 1! #42221000 0! #42221500 1! #42222000 0! #42222500 1! #42223000 0! #42223500 1! #42224000 0! #42224500 1! #42225000 0! #42225500 1! #42226000 0! #42226500 1! #42227000 0! #42227500 1! #42228000 0! #42228500 1! #42229000 0! #42229500 1! #42230000 0! #42230500 1! #42231000 0! #42231500 1! #42232000 0! #42232500 1! #42233000 0! #42233500 1! #42234000 0! #42234500 1! #42235000 0! #42235500 1! #42236000 0! #42236500 1! #42237000 0! #42237500 1! #42238000 0! #42238500 1! #42239000 0! #42239500 1! #42240000 0! #42240500 1! #42241000 0! #42241500 1! #42242000 0! #42242500 1! #42243000 0! #42243500 1! #42244000 0! #42244500 1! #42245000 0! #42245500 1! #42246000 0! #42246500 1! #42247000 0! #42247500 1! #42248000 0! #42248500 1! #42249000 0! #42249500 1! #42250000 0! #42250500 1! #42251000 0! #42251500 1! #42252000 0! #42252500 1! #42253000 0! #42253500 1! #42254000 0! #42254500 1! #42255000 0! #42255500 1! #42256000 0! #42256500 1! #42257000 0! #42257500 1! #42258000 0! #42258500 1! #42259000 0! #42259500 1! #42260000 0! #42260500 1! #42261000 0! #42261500 1! #42262000 0! #42262500 1! #42263000 0! #42263500 1! #42264000 0! #42264500 1! #42265000 0! #42265500 1! #42266000 0! #42266500 1! #42267000 0! #42267500 1! #42268000 0! #42268500 1! #42269000 0! #42269500 1! #42270000 0! #42270500 1! #42271000 0! #42271500 1! #42272000 0! #42272500 1! #42273000 0! #42273500 1! #42274000 0! #42274500 1! #42275000 0! #42275500 1! #42276000 0! #42276500 1! #42277000 0! #42277500 1! #42278000 0! #42278500 1! #42279000 0! #42279500 1! #42280000 0! #42280500 1! #42281000 0! #42281500 1! #42282000 0! #42282500 1! #42283000 0! #42283500 1! #42284000 0! #42284500 1! #42285000 0! #42285500 1! #42286000 0! #42286500 1! #42287000 0! #42287500 1! #42288000 0! #42288500 1! #42289000 0! #42289500 1! #42290000 0! #42290500 1! #42291000 0! #42291500 1! #42292000 0! #42292500 1! #42293000 0! #42293500 1! #42294000 0! #42294500 1! #42295000 0! #42295500 1! #42296000 0! #42296500 1! #42297000 0! #42297500 1! #42298000 0! #42298500 1! #42299000 0! #42299500 1! #42300000 0! #42300500 1! #42301000 0! #42301500 1! #42302000 0! #42302500 1! #42303000 0! #42303500 1! #42304000 0! #42304500 1! #42305000 0! #42305500 1! #42306000 0! #42306500 1! #42307000 0! #42307500 1! #42308000 0! #42308500 1! #42309000 0! #42309500 1! #42310000 0! #42310500 1! #42311000 0! #42311500 1! #42312000 0! #42312500 1! #42313000 0! #42313500 1! #42314000 0! #42314500 1! #42315000 0! #42315500 1! #42316000 0! #42316500 1! #42317000 0! #42317500 1! #42318000 0! #42318500 1! #42319000 0! #42319500 1! #42320000 0! #42320500 1! #42321000 0! #42321500 1! #42322000 0! #42322500 1! #42323000 0! #42323500 1! #42324000 0! #42324500 1! #42325000 0! #42325500 1! #42326000 0! #42326500 1! #42327000 0! #42327500 1! #42328000 0! #42328500 1! #42329000 0! #42329500 1! #42330000 0! #42330500 1! #42331000 0! #42331500 1! #42332000 0! #42332500 1! #42333000 0! #42333500 1! #42334000 0! #42334500 1! #42335000 0! #42335500 1! #42336000 0! #42336500 1! #42337000 0! #42337500 1! #42338000 0! #42338500 1! #42339000 0! #42339500 1! #42340000 0! #42340500 1! #42341000 0! #42341500 1! #42342000 0! #42342500 1! #42343000 0! #42343500 1! #42344000 0! #42344500 1! #42345000 0! #42345500 1! #42346000 0! #42346500 1! #42347000 0! #42347500 1! #42348000 0! #42348500 1! #42349000 0! #42349500 1! #42350000 0! #42350500 1! #42351000 0! #42351500 1! #42352000 0! #42352500 1! #42353000 0! #42353500 1! #42354000 0! #42354500 1! #42355000 0! #42355500 1! #42356000 0! #42356500 1! #42357000 0! #42357500 1! #42358000 0! #42358500 1! #42359000 0! #42359500 1! #42360000 0! #42360500 1! #42361000 0! #42361500 1! #42362000 0! #42362500 1! #42363000 0! #42363500 1! #42364000 0! #42364500 1! #42365000 0! #42365500 1! #42366000 0! #42366500 1! #42367000 0! #42367500 1! #42368000 0! #42368500 1! #42369000 0! #42369500 1! #42370000 0! #42370500 1! #42371000 0! #42371500 1! #42372000 0! #42372500 1! #42373000 0! #42373500 1! #42374000 0! #42374500 1! #42375000 0! #42375500 1! #42376000 0! #42376500 1! #42377000 0! #42377500 1! #42378000 0! #42378500 1! #42379000 0! #42379500 1! #42380000 0! #42380500 1! #42381000 0! #42381500 1! #42382000 0! #42382500 1! #42383000 0! #42383500 1! #42384000 0! #42384500 1! #42385000 0! #42385500 1! #42386000 0! #42386500 1! #42387000 0! #42387500 1! #42388000 0! #42388500 1! #42389000 0! #42389500 1! #42390000 0! #42390500 1! #42391000 0! #42391500 1! #42392000 0! #42392500 1! #42393000 0! #42393500 1! #42394000 0! #42394500 1! #42395000 0! #42395500 1! #42396000 0! #42396500 1! #42397000 0! #42397500 1! #42398000 0! #42398500 1! #42399000 0! #42399500 1! #42400000 0! #42400500 1! #42401000 0! #42401500 1! #42402000 0! #42402500 1! #42403000 0! #42403500 1! #42404000 0! #42404500 1! #42405000 0! #42405500 1! #42406000 0! #42406500 1! #42407000 0! #42407500 1! #42408000 0! #42408500 1! #42409000 0! #42409500 1! #42410000 0! #42410500 1! #42411000 0! #42411500 1! #42412000 0! #42412500 1! #42413000 0! #42413500 1! #42414000 0! #42414500 1! #42415000 0! #42415500 1! #42416000 0! #42416500 1! #42417000 0! #42417500 1! #42418000 0! #42418500 1! #42419000 0! #42419500 1! #42420000 0! #42420500 1! #42421000 0! #42421500 1! #42422000 0! #42422500 1! #42423000 0! #42423500 1! #42424000 0! #42424500 1! #42425000 0! #42425500 1! #42426000 0! #42426500 1! #42427000 0! #42427500 1! #42428000 0! #42428500 1! #42429000 0! #42429500 1! #42430000 0! #42430500 1! #42431000 0! #42431500 1! #42432000 0! #42432500 1! #42433000 0! #42433500 1! #42434000 0! #42434500 1! #42435000 0! #42435500 1! #42436000 0! #42436500 1! #42437000 0! #42437500 1! #42438000 0! #42438500 1! #42439000 0! #42439500 1! #42440000 0! #42440500 1! #42441000 0! #42441500 1! #42442000 0! #42442500 1! #42443000 0! #42443500 1! #42444000 0! #42444500 1! #42445000 0! #42445500 1! #42446000 0! #42446500 1! #42447000 0! #42447500 1! #42448000 0! #42448500 1! #42449000 0! #42449500 1! #42450000 0! #42450500 1! #42451000 0! #42451500 1! #42452000 0! #42452500 1! #42453000 0! #42453500 1! #42454000 0! #42454500 1! #42455000 0! #42455500 1! #42456000 0! #42456500 1! #42457000 0! #42457500 1! #42458000 0! #42458500 1! #42459000 0! #42459500 1! #42460000 0! #42460500 1! #42461000 0! #42461500 1! #42462000 0! #42462500 1! #42463000 0! #42463500 1! #42464000 0! #42464500 1! #42465000 0! #42465500 1! #42466000 0! #42466500 1! #42467000 0! #42467500 1! #42468000 0! #42468500 1! #42469000 0! #42469500 1! #42470000 0! #42470500 1! #42471000 0! #42471500 1! #42472000 0! #42472500 1! #42473000 0! #42473500 1! #42474000 0! #42474500 1! #42475000 0! #42475500 1! #42476000 0! #42476500 1! #42477000 0! #42477500 1! #42478000 0! #42478500 1! #42479000 0! #42479500 1! #42480000 0! #42480500 1! #42481000 0! #42481500 1! #42482000 0! #42482500 1! #42483000 0! #42483500 1! #42484000 0! #42484500 1! #42485000 0! #42485500 1! #42486000 0! #42486500 1! #42487000 0! #42487500 1! #42488000 0! #42488500 1! #42489000 0! #42489500 1! #42490000 0! #42490500 1! #42491000 0! #42491500 1! #42492000 0! #42492500 1! #42493000 0! #42493500 1! #42494000 0! #42494500 1! #42495000 0! #42495500 1! #42496000 0! #42496500 1! #42497000 0! #42497500 1! #42498000 0! #42498500 1! #42499000 0! #42499500 1! #42500000 0! #42500500 1! #42501000 0! #42501500 1! #42502000 0! #42502500 1! #42503000 0! #42503500 1! #42504000 0! #42504500 1! #42505000 0! #42505500 1! #42506000 0! #42506500 1! #42507000 0! #42507500 1! #42508000 0! #42508500 1! #42509000 0! #42509500 1! #42510000 0! #42510500 1! #42511000 0! #42511500 1! #42512000 0! #42512500 1! #42513000 0! #42513500 1! #42514000 0! #42514500 1! #42515000 0! #42515500 1! #42516000 0! #42516500 1! #42517000 0! #42517500 1! #42518000 0! #42518500 1! #42519000 0! #42519500 1! #42520000 0! #42520500 1! #42521000 0! #42521500 1! #42522000 0! #42522500 1! #42523000 0! #42523500 1! #42524000 0! #42524500 1! #42525000 0! #42525500 1! #42526000 0! #42526500 1! #42527000 0! #42527500 1! #42528000 0! #42528500 1! #42529000 0! #42529500 1! #42530000 0! #42530500 1! #42531000 0! #42531500 1! #42532000 0! #42532500 1! #42533000 0! #42533500 1! #42534000 0! #42534500 1! #42535000 0! #42535500 1! #42536000 0! #42536500 1! #42537000 0! #42537500 1! #42538000 0! #42538500 1! #42539000 0! #42539500 1! #42540000 0! #42540500 1! #42541000 0! #42541500 1! #42542000 0! #42542500 1! #42543000 0! #42543500 1! #42544000 0! #42544500 1! #42545000 0! #42545500 1! #42546000 0! #42546500 1! #42547000 0! #42547500 1! #42548000 0! #42548500 1! #42549000 0! #42549500 1! #42550000 0! #42550500 1! #42551000 0! #42551500 1! #42552000 0! #42552500 1! #42553000 0! #42553500 1! #42554000 0! #42554500 1! #42555000 0! #42555500 1! #42556000 0! #42556500 1! #42557000 0! #42557500 1! #42558000 0! #42558500 1! #42559000 0! #42559500 1! #42560000 0! #42560500 1! #42561000 0! #42561500 1! #42562000 0! #42562500 1! #42563000 0! #42563500 1! #42564000 0! #42564500 1! #42565000 0! #42565500 1! #42566000 0! #42566500 1! #42567000 0! #42567500 1! #42568000 0! #42568500 1! #42569000 0! #42569500 1! #42570000 0! #42570500 1! #42571000 0! #42571500 1! #42572000 0! #42572500 1! #42573000 0! #42573500 1! #42574000 0! #42574500 1! #42575000 0! #42575500 1! #42576000 0! #42576500 1! #42577000 0! #42577500 1! #42578000 0! #42578500 1! #42579000 0! #42579500 1! #42580000 0! #42580500 1! #42581000 0! #42581500 1! #42582000 0! #42582500 1! #42583000 0! #42583500 1! #42584000 0! #42584500 1! #42585000 0! #42585500 1! #42586000 0! #42586500 1! #42587000 0! #42587500 1! #42588000 0! #42588500 1! #42589000 0! #42589500 1! #42590000 0! #42590500 1! #42591000 0! #42591500 1! #42592000 0! #42592500 1! #42593000 0! #42593500 1! #42594000 0! #42594500 1! #42595000 0! #42595500 1! #42596000 0! #42596500 1! #42597000 0! #42597500 1! #42598000 0! #42598500 1! #42599000 0! #42599500 1! #42600000 0! #42600500 1! #42601000 0! #42601500 1! #42602000 0! #42602500 1! #42603000 0! #42603500 1! #42604000 0! #42604500 1! #42605000 0! #42605500 1! #42606000 0! #42606500 1! #42607000 0! #42607500 1! #42608000 0! #42608500 1! #42609000 0! #42609500 1! #42610000 0! #42610500 1! #42611000 0! #42611500 1! #42612000 0! #42612500 1! #42613000 0! #42613500 1! #42614000 0! #42614500 1! #42615000 0! #42615500 1! #42616000 0! #42616500 1! #42617000 0! #42617500 1! #42618000 0! #42618500 1! #42619000 0! #42619500 1! #42620000 0! #42620500 1! #42621000 0! #42621500 1! #42622000 0! #42622500 1! #42623000 0! #42623500 1! #42624000 0! #42624500 1! #42625000 0! #42625500 1! #42626000 0! #42626500 1! #42627000 0! #42627500 1! #42628000 0! #42628500 1! #42629000 0! #42629500 1! #42630000 0! #42630500 1! #42631000 0! #42631500 1! #42632000 0! #42632500 1! #42633000 0! #42633500 1! #42634000 0! #42634500 1! #42635000 0! #42635500 1! #42636000 0! #42636500 1! #42637000 0! #42637500 1! #42638000 0! #42638500 1! #42639000 0! #42639500 1! #42640000 0! #42640500 1! #42641000 0! #42641500 1! #42642000 0! #42642500 1! #42643000 0! #42643500 1! #42644000 0! #42644500 1! #42645000 0! #42645500 1! #42646000 0! #42646500 1! #42647000 0! #42647500 1! #42648000 0! #42648500 1! #42649000 0! #42649500 1! #42650000 0! #42650500 1! #42651000 0! #42651500 1! #42652000 0! #42652500 1! #42653000 0! #42653500 1! #42654000 0! #42654500 1! #42655000 0! #42655500 1! #42656000 0! #42656500 1! #42657000 0! #42657500 1! #42658000 0! #42658500 1! #42659000 0! #42659500 1! #42660000 0! #42660500 1! #42661000 0! #42661500 1! #42662000 0! #42662500 1! #42663000 0! #42663500 1! #42664000 0! #42664500 1! #42665000 0! #42665500 1! #42666000 0! #42666500 1! #42667000 0! #42667500 1! #42668000 0! #42668500 1! #42669000 0! #42669500 1! #42670000 0! #42670500 1! #42671000 0! #42671500 1! #42672000 0! #42672500 1! #42673000 0! #42673500 1! #42674000 0! #42674500 1! #42675000 0! #42675500 1! #42676000 0! #42676500 1! #42677000 0! #42677500 1! #42678000 0! #42678500 1! #42679000 0! #42679500 1! #42680000 0! #42680500 1! #42681000 0! #42681500 1! #42682000 0! #42682500 1! #42683000 0! #42683500 1! #42684000 0! #42684500 1! #42685000 0! #42685500 1! #42686000 0! #42686500 1! #42687000 0! #42687500 1! #42688000 0! #42688500 1! #42689000 0! #42689500 1! #42690000 0! #42690500 1! #42691000 0! #42691500 1! #42692000 0! #42692500 1! #42693000 0! #42693500 1! #42694000 0! #42694500 1! #42695000 0! #42695500 1! #42696000 0! #42696500 1! #42697000 0! #42697500 1! #42698000 0! #42698500 1! #42699000 0! #42699500 1! #42700000 0! #42700500 1! #42701000 0! #42701500 1! #42702000 0! #42702500 1! #42703000 0! #42703500 1! #42704000 0! #42704500 1! #42705000 0! #42705500 1! #42706000 0! #42706500 1! #42707000 0! #42707500 1! #42708000 0! #42708500 1! #42709000 0! #42709500 1! #42710000 0! #42710500 1! #42711000 0! #42711500 1! #42712000 0! #42712500 1! #42713000 0! #42713500 1! #42714000 0! #42714500 1! #42715000 0! #42715500 1! #42716000 0! #42716500 1! #42717000 0! #42717500 1! #42718000 0! #42718500 1! #42719000 0! #42719500 1! #42720000 0! #42720500 1! #42721000 0! #42721500 1! #42722000 0! #42722500 1! #42723000 0! #42723500 1! #42724000 0! #42724500 1! #42725000 0! #42725500 1! #42726000 0! #42726500 1! #42727000 0! #42727500 1! #42728000 0! #42728500 1! #42729000 0! #42729500 1! #42730000 0! #42730500 1! #42731000 0! #42731500 1! #42732000 0! #42732500 1! #42733000 0! #42733500 1! #42734000 0! #42734500 1! #42735000 0! #42735500 1! #42736000 0! #42736500 1! #42737000 0! #42737500 1! #42738000 0! #42738500 1! #42739000 0! #42739500 1! #42740000 0! #42740500 1! #42741000 0! #42741500 1! #42742000 0! #42742500 1! #42743000 0! #42743500 1! #42744000 0! #42744500 1! #42745000 0! #42745500 1! #42746000 0! #42746500 1! #42747000 0! #42747500 1! #42748000 0! #42748500 1! #42749000 0! #42749500 1! #42750000 0! #42750500 1! #42751000 0! #42751500 1! #42752000 0! #42752500 1! #42753000 0! #42753500 1! #42754000 0! #42754500 1! #42755000 0! #42755500 1! #42756000 0! #42756500 1! #42757000 0! #42757500 1! #42758000 0! #42758500 1! #42759000 0! #42759500 1! #42760000 0! #42760500 1! #42761000 0! #42761500 1! #42762000 0! #42762500 1! #42763000 0! #42763500 1! #42764000 0! #42764500 1! #42765000 0! #42765500 1! #42766000 0! #42766500 1! #42767000 0! #42767500 1! #42768000 0! #42768500 1! #42769000 0! #42769500 1! #42770000 0! #42770500 1! #42771000 0! #42771500 1! #42772000 0! #42772500 1! #42773000 0! #42773500 1! #42774000 0! #42774500 1! #42775000 0! #42775500 1! #42776000 0! #42776500 1! #42777000 0! #42777500 1! #42778000 0! #42778500 1! #42779000 0! #42779500 1! #42780000 0! #42780500 1! #42781000 0! #42781500 1! #42782000 0! #42782500 1! #42783000 0! #42783500 1! #42784000 0! #42784500 1! #42785000 0! #42785500 1! #42786000 0! #42786500 1! #42787000 0! #42787500 1! #42788000 0! #42788500 1! #42789000 0! #42789500 1! #42790000 0! #42790500 1! #42791000 0! #42791500 1! #42792000 0! #42792500 1! #42793000 0! #42793500 1! #42794000 0! #42794500 1! #42795000 0! #42795500 1! #42796000 0! #42796500 1! #42797000 0! #42797500 1! #42798000 0! #42798500 1! #42799000 0! #42799500 1! #42800000 0! #42800500 1! #42801000 0! #42801500 1! #42802000 0! #42802500 1! #42803000 0! #42803500 1! #42804000 0! #42804500 1! #42805000 0! #42805500 1! #42806000 0! #42806500 1! #42807000 0! #42807500 1! #42808000 0! #42808500 1! #42809000 0! #42809500 1! #42810000 0! #42810500 1! #42811000 0! #42811500 1! #42812000 0! #42812500 1! #42813000 0! #42813500 1! #42814000 0! #42814500 1! #42815000 0! #42815500 1! #42816000 0! #42816500 1! #42817000 0! #42817500 1! #42818000 0! #42818500 1! #42819000 0! #42819500 1! #42820000 0! #42820500 1! #42821000 0! #42821500 1! #42822000 0! #42822500 1! #42823000 0! #42823500 1! #42824000 0! #42824500 1! #42825000 0! #42825500 1! #42826000 0! #42826500 1! #42827000 0! #42827500 1! #42828000 0! #42828500 1! #42829000 0! #42829500 1! #42830000 0! #42830500 1! #42831000 0! #42831500 1! #42832000 0! #42832500 1! #42833000 0! #42833500 1! #42834000 0! #42834500 1! #42835000 0! #42835500 1! #42836000 0! #42836500 1! #42837000 0! #42837500 1! #42838000 0! #42838500 1! #42839000 0! #42839500 1! #42840000 0! #42840500 1! #42841000 0! #42841500 1! #42842000 0! #42842500 1! #42843000 0! #42843500 1! #42844000 0! #42844500 1! #42845000 0! #42845500 1! #42846000 0! #42846500 1! #42847000 0! #42847500 1! #42848000 0! #42848500 1! #42849000 0! #42849500 1! #42850000 0! #42850500 1! #42851000 0! #42851500 1! #42852000 0! #42852500 1! #42853000 0! #42853500 1! #42854000 0! #42854500 1! #42855000 0! #42855500 1! #42856000 0! #42856500 1! #42857000 0! #42857500 1! #42858000 0! #42858500 1! #42859000 0! #42859500 1! #42860000 0! #42860500 1! #42861000 0! #42861500 1! #42862000 0! #42862500 1! #42863000 0! #42863500 1! #42864000 0! #42864500 1! #42865000 0! #42865500 1! #42866000 0! #42866500 1! #42867000 0! #42867500 1! #42868000 0! #42868500 1! #42869000 0! #42869500 1! #42870000 0! #42870500 1! #42871000 0! #42871500 1! #42872000 0! #42872500 1! #42873000 0! #42873500 1! #42874000 0! #42874500 1! #42875000 0! #42875500 1! #42876000 0! #42876500 1! #42877000 0! #42877500 1! #42878000 0! #42878500 1! #42879000 0! #42879500 1! #42880000 0! #42880500 1! #42881000 0! #42881500 1! #42882000 0! #42882500 1! #42883000 0! #42883500 1! #42884000 0! #42884500 1! #42885000 0! #42885500 1! #42886000 0! #42886500 1! #42887000 0! #42887500 1! #42888000 0! #42888500 1! #42889000 0! #42889500 1! #42890000 0! #42890500 1! #42891000 0! #42891500 1! #42892000 0! #42892500 1! #42893000 0! #42893500 1! #42894000 0! #42894500 1! #42895000 0! #42895500 1! #42896000 0! #42896500 1! #42897000 0! #42897500 1! #42898000 0! #42898500 1! #42899000 0! #42899500 1! #42900000 0! #42900500 1! #42901000 0! #42901500 1! #42902000 0! #42902500 1! #42903000 0! #42903500 1! #42904000 0! #42904500 1! #42905000 0! #42905500 1! #42906000 0! #42906500 1! #42907000 0! #42907500 1! #42908000 0! #42908500 1! #42909000 0! #42909500 1! #42910000 0! #42910500 1! #42911000 0! #42911500 1! #42912000 0! #42912500 1! #42913000 0! #42913500 1! #42914000 0! #42914500 1! #42915000 0! #42915500 1! #42916000 0! #42916500 1! #42917000 0! #42917500 1! #42918000 0! #42918500 1! #42919000 0! #42919500 1! #42920000 0! #42920500 1! #42921000 0! #42921500 1! #42922000 0! #42922500 1! #42923000 0! #42923500 1! #42924000 0! #42924500 1! #42925000 0! #42925500 1! #42926000 0! #42926500 1! #42927000 0! #42927500 1! #42928000 0! #42928500 1! #42929000 0! #42929500 1! #42930000 0! #42930500 1! #42931000 0! #42931500 1! #42932000 0! #42932500 1! #42933000 0! #42933500 1! #42934000 0! #42934500 1! #42935000 0! #42935500 1! #42936000 0! #42936500 1! #42937000 0! #42937500 1! #42938000 0! #42938500 1! #42939000 0! #42939500 1! #42940000 0! #42940500 1! #42941000 0! #42941500 1! #42942000 0! #42942500 1! #42943000 0! #42943500 1! #42944000 0! #42944500 1! #42945000 0! #42945500 1! #42946000 0! #42946500 1! #42947000 0! #42947500 1! #42948000 0! #42948500 1! #42949000 0! #42949500 1! #42950000 0! #42950500 1! #42951000 0! #42951500 1! #42952000 0! #42952500 1! #42953000 0! #42953500 1! #42954000 0! #42954500 1! #42955000 0! #42955500 1! #42956000 0! #42956500 1! #42957000 0! #42957500 1! #42958000 0! #42958500 1! #42959000 0! #42959500 1! #42960000 0! #42960500 1! #42961000 0! #42961500 1! #42962000 0! #42962500 1! #42963000 0! #42963500 1! #42964000 0! #42964500 1! #42965000 0! #42965500 1! #42966000 0! #42966500 1! #42967000 0! #42967500 1! #42968000 0! #42968500 1! #42969000 0! #42969500 1! #42970000 0! #42970500 1! #42971000 0! #42971500 1! #42972000 0! #42972500 1! #42973000 0! #42973500 1! #42974000 0! #42974500 1! #42975000 0! #42975500 1! #42976000 0! #42976500 1! #42977000 0! #42977500 1! #42978000 0! #42978500 1! #42979000 0! #42979500 1! #42980000 0! #42980500 1! #42981000 0! #42981500 1! #42982000 0! #42982500 1! #42983000 0! #42983500 1! #42984000 0! #42984500 1! #42985000 0! #42985500 1! #42986000 0! #42986500 1! #42987000 0! #42987500 1! #42988000 0! #42988500 1! #42989000 0! #42989500 1! #42990000 0! #42990500 1! #42991000 0! #42991500 1! #42992000 0! #42992500 1! #42993000 0! #42993500 1! #42994000 0! #42994500 1! #42995000 0! #42995500 1! #42996000 0! #42996500 1! #42997000 0! #42997500 1! #42998000 0! #42998500 1! #42999000 0! #42999500 1! #43000000 0! #43000500 1! #43001000 0! #43001500 1! #43002000 0! #43002500 1! #43003000 0! #43003500 1! #43004000 0! #43004500 1! #43005000 0! #43005500 1! #43006000 0! #43006500 1! #43007000 0! #43007500 1! #43008000 0! #43008500 1! #43009000 0! #43009500 1! #43010000 0! #43010500 1! #43011000 0! #43011500 1! #43012000 0! #43012500 1! #43013000 0! #43013500 1! #43014000 0! #43014500 1! #43015000 0! #43015500 1! #43016000 0! #43016500 1! #43017000 0! #43017500 1! #43018000 0! #43018500 1! #43019000 0! #43019500 1! #43020000 0! #43020500 1! #43021000 0! #43021500 1! #43022000 0! #43022500 1! #43023000 0! #43023500 1! #43024000 0! #43024500 1! #43025000 0! #43025500 1! #43026000 0! #43026500 1! #43027000 0! #43027500 1! #43028000 0! #43028500 1! #43029000 0! #43029500 1! #43030000 0! #43030500 1! #43031000 0! #43031500 1! #43032000 0! #43032500 1! #43033000 0! #43033500 1! #43034000 0! #43034500 1! #43035000 0! #43035500 1! #43036000 0! #43036500 1! #43037000 0! #43037500 1! #43038000 0! #43038500 1! #43039000 0! #43039500 1! #43040000 0! #43040500 1! #43041000 0! #43041500 1! #43042000 0! #43042500 1! #43043000 0! #43043500 1! #43044000 0! #43044500 1! #43045000 0! #43045500 1! #43046000 0! #43046500 1! #43047000 0! #43047500 1! #43048000 0! #43048500 1! #43049000 0! #43049500 1! #43050000 0! #43050500 1! #43051000 0! #43051500 1! #43052000 0! #43052500 1! #43053000 0! #43053500 1! #43054000 0! #43054500 1! #43055000 0! #43055500 1! #43056000 0! #43056500 1! #43057000 0! #43057500 1! #43058000 0! #43058500 1! #43059000 0! #43059500 1! #43060000 0! #43060500 1! #43061000 0! #43061500 1! #43062000 0! #43062500 1! #43063000 0! #43063500 1! #43064000 0! #43064500 1! #43065000 0! #43065500 1! #43066000 0! #43066500 1! #43067000 0! #43067500 1! #43068000 0! #43068500 1! #43069000 0! #43069500 1! #43070000 0! #43070500 1! #43071000 0! #43071500 1! #43072000 0! #43072500 1! #43073000 0! #43073500 1! #43074000 0! #43074500 1! #43075000 0! #43075500 1! #43076000 0! #43076500 1! #43077000 0! #43077500 1! #43078000 0! #43078500 1! #43079000 0! #43079500 1! #43080000 0! #43080500 1! #43081000 0! #43081500 1! #43082000 0! #43082500 1! #43083000 0! #43083500 1! #43084000 0! #43084500 1! #43085000 0! #43085500 1! #43086000 0! #43086500 1! #43087000 0! #43087500 1! #43088000 0! #43088500 1! #43089000 0! #43089500 1! #43090000 0! #43090500 1! #43091000 0! #43091500 1! #43092000 0! #43092500 1! #43093000 0! #43093500 1! #43094000 0! #43094500 1! #43095000 0! #43095500 1! #43096000 0! #43096500 1! #43097000 0! #43097500 1! #43098000 0! #43098500 1! #43099000 0! #43099500 1! #43100000 0! #43100500 1! #43101000 0! #43101500 1! #43102000 0! #43102500 1! #43103000 0! #43103500 1! #43104000 0! #43104500 1! #43105000 0! #43105500 1! #43106000 0! #43106500 1! #43107000 0! #43107500 1! #43108000 0! #43108500 1! #43109000 0! #43109500 1! #43110000 0! #43110500 1! #43111000 0! #43111500 1! #43112000 0! #43112500 1! #43113000 0! #43113500 1! #43114000 0! #43114500 1! #43115000 0! #43115500 1! #43116000 0! #43116500 1! #43117000 0! #43117500 1! #43118000 0! #43118500 1! #43119000 0! #43119500 1! #43120000 0! #43120500 1! #43121000 0! #43121500 1! #43122000 0! #43122500 1! #43123000 0! #43123500 1! #43124000 0! #43124500 1! #43125000 0! #43125500 1! #43126000 0! #43126500 1! #43127000 0! #43127500 1! #43128000 0! #43128500 1! #43129000 0! #43129500 1! #43130000 0! #43130500 1! #43131000 0! #43131500 1! #43132000 0! #43132500 1! #43133000 0! #43133500 1! #43134000 0! #43134500 1! #43135000 0! #43135500 1! #43136000 0! #43136500 1! #43137000 0! #43137500 1! #43138000 0! #43138500 1! #43139000 0! #43139500 1! #43140000 0! #43140500 1! #43141000 0! #43141500 1! #43142000 0! #43142500 1! #43143000 0! #43143500 1! #43144000 0! #43144500 1! #43145000 0! #43145500 1! #43146000 0! #43146500 1! #43147000 0! #43147500 1! #43148000 0! #43148500 1! #43149000 0! #43149500 1! #43150000 0! #43150500 1! #43151000 0! #43151500 1! #43152000 0! #43152500 1! #43153000 0! #43153500 1! #43154000 0! #43154500 1! #43155000 0! #43155500 1! #43156000 0! #43156500 1! #43157000 0! #43157500 1! #43158000 0! #43158500 1! #43159000 0! #43159500 1! #43160000 0! #43160500 1! #43161000 0! #43161500 1! #43162000 0! #43162500 1! #43163000 0! #43163500 1! #43164000 0! #43164500 1! #43165000 0! #43165500 1! #43166000 0! #43166500 1! #43167000 0! #43167500 1! #43168000 0! #43168500 1! #43169000 0! #43169500 1! #43170000 0! #43170500 1! #43171000 0! #43171500 1! #43172000 0! #43172500 1! #43173000 0! #43173500 1! #43174000 0! #43174500 1! #43175000 0! #43175500 1! #43176000 0! #43176500 1! #43177000 0! #43177500 1! #43178000 0! #43178500 1! #43179000 0! #43179500 1! #43180000 0! #43180500 1! #43181000 0! #43181500 1! #43182000 0! #43182500 1! #43183000 0! #43183500 1! #43184000 0! #43184500 1! #43185000 0! #43185500 1! #43186000 0! #43186500 1! #43187000 0! #43187500 1! #43188000 0! #43188500 1! #43189000 0! #43189500 1! #43190000 0! #43190500 1! #43191000 0! #43191500 1! #43192000 0! #43192500 1! #43193000 0! #43193500 1! #43194000 0! #43194500 1! #43195000 0! #43195500 1! #43196000 0! #43196500 1! #43197000 0! #43197500 1! #43198000 0! #43198500 1! #43199000 0! #43199500 1! #43200000 0! #43200500 1! #43201000 0! #43201500 1! #43202000 0! #43202500 1! #43203000 0! #43203500 1! #43204000 0! #43204500 1! #43205000 0! #43205500 1! #43206000 0! #43206500 1! #43207000 0! #43207500 1! #43208000 0! #43208500 1! #43209000 0! #43209500 1! #43210000 0! #43210500 1! #43211000 0! #43211500 1! #43212000 0! #43212500 1! #43213000 0! #43213500 1! #43214000 0! #43214500 1! #43215000 0! #43215500 1! #43216000 0! #43216500 1! #43217000 0! #43217500 1! #43218000 0! #43218500 1! #43219000 0! #43219500 1! #43220000 0! #43220500 1! #43221000 0! #43221500 1! #43222000 0! #43222500 1! #43223000 0! #43223500 1! #43224000 0! #43224500 1! #43225000 0! #43225500 1! #43226000 0! #43226500 1! #43227000 0! #43227500 1! #43228000 0! #43228500 1! #43229000 0! #43229500 1! #43230000 0! #43230500 1! #43231000 0! #43231500 1! #43232000 0! #43232500 1! #43233000 0! #43233500 1! #43234000 0! #43234500 1! #43235000 0! #43235500 1! #43236000 0! #43236500 1! #43237000 0! #43237500 1! #43238000 0! #43238500 1! #43239000 0! #43239500 1! #43240000 0! #43240500 1! #43241000 0! #43241500 1! #43242000 0! #43242500 1! #43243000 0! #43243500 1! #43244000 0! #43244500 1! #43245000 0! #43245500 1! #43246000 0! #43246500 1! #43247000 0! #43247500 1! #43248000 0! #43248500 1! #43249000 0! #43249500 1! #43250000 0! #43250500 1! #43251000 0! #43251500 1! #43252000 0! #43252500 1! #43253000 0! #43253500 1! #43254000 0! #43254500 1! #43255000 0! #43255500 1! #43256000 0! #43256500 1! #43257000 0! #43257500 1! #43258000 0! #43258500 1! #43259000 0! #43259500 1! #43260000 0! #43260500 1! #43261000 0! #43261500 1! #43262000 0! #43262500 1! #43263000 0! #43263500 1! #43264000 0! #43264500 1! #43265000 0! #43265500 1! #43266000 0! #43266500 1! #43267000 0! #43267500 1! #43268000 0! #43268500 1! #43269000 0! #43269500 1! #43270000 0! #43270500 1! #43271000 0! #43271500 1! #43272000 0! #43272500 1! #43273000 0! #43273500 1! #43274000 0! #43274500 1! #43275000 0! #43275500 1! #43276000 0! #43276500 1! #43277000 0! #43277500 1! #43278000 0! #43278500 1! #43279000 0! #43279500 1! #43280000 0! #43280500 1! #43281000 0! #43281500 1! #43282000 0! #43282500 1! #43283000 0! #43283500 1! #43284000 0! #43284500 1! #43285000 0! #43285500 1! #43286000 0! #43286500 1! #43287000 0! #43287500 1! #43288000 0! #43288500 1! #43289000 0! #43289500 1! #43290000 0! #43290500 1! #43291000 0! #43291500 1! #43292000 0! #43292500 1! #43293000 0! #43293500 1! #43294000 0! #43294500 1! #43295000 0! #43295500 1! #43296000 0! #43296500 1! #43297000 0! #43297500 1! #43298000 0! #43298500 1! #43299000 0! #43299500 1! #43300000 0! #43300500 1! #43301000 0! #43301500 1! #43302000 0! #43302500 1! #43303000 0! #43303500 1! #43304000 0! #43304500 1! #43305000 0! #43305500 1! #43306000 0! #43306500 1! #43307000 0! #43307500 1! #43308000 0! #43308500 1! #43309000 0! #43309500 1! #43310000 0! #43310500 1! #43311000 0! #43311500 1! #43312000 0! #43312500 1! #43313000 0! #43313500 1! #43314000 0! #43314500 1! #43315000 0! #43315500 1! #43316000 0! #43316500 1! #43317000 0! #43317500 1! #43318000 0! #43318500 1! #43319000 0! #43319500 1! #43320000 0! #43320500 1! #43321000 0! #43321500 1! #43322000 0! #43322500 1! #43323000 0! #43323500 1! #43324000 0! #43324500 1! #43325000 0! #43325500 1! #43326000 0! #43326500 1! #43327000 0! #43327500 1! #43328000 0! #43328500 1! #43329000 0! #43329500 1! #43330000 0! #43330500 1! #43331000 0! #43331500 1! #43332000 0! #43332500 1! #43333000 0! #43333500 1! #43334000 0! #43334500 1! #43335000 0! #43335500 1! #43336000 0! #43336500 1! #43337000 0! #43337500 1! #43338000 0! #43338500 1! #43339000 0! #43339500 1! #43340000 0! #43340500 1! #43341000 0! #43341500 1! #43342000 0! #43342500 1! #43343000 0! #43343500 1! #43344000 0! #43344500 1! #43345000 0! #43345500 1! #43346000 0! #43346500 1! #43347000 0! #43347500 1! #43348000 0! #43348500 1! #43349000 0! #43349500 1! #43350000 0! #43350500 1! #43351000 0! #43351500 1! #43352000 0! #43352500 1! #43353000 0! #43353500 1! #43354000 0! #43354500 1! #43355000 0! #43355500 1! #43356000 0! #43356500 1! #43357000 0! #43357500 1! #43358000 0! #43358500 1! #43359000 0! #43359500 1! #43360000 0! #43360500 1! #43361000 0! #43361500 1! #43362000 0! #43362500 1! #43363000 0! #43363500 1! #43364000 0! #43364500 1! #43365000 0! #43365500 1! #43366000 0! #43366500 1! #43367000 0! #43367500 1! #43368000 0! #43368500 1! #43369000 0! #43369500 1! #43370000 0! #43370500 1! #43371000 0! #43371500 1! #43372000 0! #43372500 1! #43373000 0! #43373500 1! #43374000 0! #43374500 1! #43375000 0! #43375500 1! #43376000 0! #43376500 1! #43377000 0! #43377500 1! #43378000 0! #43378500 1! #43379000 0! #43379500 1! #43380000 0! #43380500 1! #43381000 0! #43381500 1! #43382000 0! #43382500 1! #43383000 0! #43383500 1! #43384000 0! #43384500 1! #43385000 0! #43385500 1! #43386000 0! #43386500 1! #43387000 0! #43387500 1! #43388000 0! #43388500 1! #43388600 uhd-3.5.5/fpga/usrp2/opencores/i2c/sim/i2c_verilog/run/ncverilog.key000066400000000000000000000000051224274632000252450ustar00rootroot00000000000000exit uhd-3.5.5/fpga/usrp2/opencores/i2c/sim/i2c_verilog/run/run000077500000000000000000000010021224274632000232730ustar00rootroot00000000000000#!/bin/csh set i2c = ../../.. set bench = $i2c/bench set wave_dir = $i2c/sim/rtl_sim/i2c_verilog/waves ncverilog \ \ +access+rwc \ +define+WAVES \ \ +incdir+$bench/verilog \ +incdir+$i2c/rtl/verilog \ \ $i2c/rtl/verilog/i2c_master_bit_ctrl.v \ $i2c/rtl/verilog/i2c_master_byte_ctrl.v \ $i2c/rtl/verilog/i2c_master_top.v \ \ $bench/verilog/i2c_slave_model.v \ $bench/verilog/wb_master_model.v \ $bench/verilog/tst_bench_top.v uhd-3.5.5/fpga/usrp2/opencores/i2c/software/000077500000000000000000000000001224274632000206025ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/software/include/000077500000000000000000000000001224274632000222255ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/i2c/software/include/oc_i2c_master.h000066400000000000000000000131341224274632000251110ustar00rootroot00000000000000/* ///////////////////////////////////////////////////////////////////// //// //// //// Include file for OpenCores I2C Master core //// //// //// //// File : oc_i2c_master.h //// //// Function: c-include file //// //// //// //// Authors: Richard Herveille (richard@asics.ws) //// //// Filip Miletic //// //// //// //// www.opencores.org //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Richard Herveille //// //// Filip Miletic //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// */ /* * Definitions for the Opencores i2c master core */ /* --- Definitions for i2c master's registers --- */ /* ----- Read-write access */ #define OC_I2C_PRER_LO 0x00 /* Low byte clock prescaler register */ #define OC_I2C_PRER_HI 0x01 /* High byte clock prescaler register */ #define OC_I2C_CTR 0x02 /* Control register */ /* ----- Write-only registers */ #define OC_I2C_TXR 0x03 /* Transmit byte register */ #define OC_I2C_CR 0x04 /* Command register */ /* ----- Read-only registers */ #define OC_I2C_RXR 0x03 /* Receive byte register */ #define OC_I2C_SR 0x04 /* Status register */ /* ----- Bits definition */ /* ----- Control register */ #define OC_I2C_EN (1<<7) /* Core enable bit: */ /* 1 - core is enabled */ /* 0 - core is disabled */ #define OC_I2C_IEN (1<<6) /* Interrupt enable bit */ /* 1 - Interrupt enabled */ /* 0 - Interrupt disabled */ /* Other bits in CR are reserved */ /* ----- Command register bits */ #define OC_I2C_STA (1<<7) /* Generate (repeated) start condition*/ #define OC_I2C_STO (1<<6) /* Generate stop condition */ #define OC_I2C_RD (1<<5) /* Read from slave */ #define OC_I2C_WR (1<<4) /* Write to slave */ #define OC_I2C_ACK (1<<3) /* Acknowledge from slave */ /* 1 - ACK */ /* 0 - NACK */ #define OC_I2C_IACK (1<<0) /* Interrupt acknowledge */ /* ----- Status register bits */ #define OC_I2C_RXACK (1<<7) /* ACK received from slave */ /* 1 - ACK */ /* 0 - NACK */ #define OC_I2C_BUSY (1<<6) /* Busy bit */ #define OC_I2C_TIP (1<<1) /* Transfer in progress */ #define OC_I2C_IF (1<<0) /* Interrupt flag */ /* bit testing and setting macros */ #define OC_ISSET(reg,bitmask) ((reg)&(bitmask)) #define OC_ISCLEAR(reg,bitmask) (!(OC_ISSET(reg,bitmask))) #define OC_BITSET(reg,bitmask) ((reg)|(bitmask)) #define OC_BITCLEAR(reg,bitmask) ((reg)|(~(bitmask))) #define OC_BITTOGGLE(reg,bitmask) ((reg)^(bitmask)) #define OC_REGMOVE(reg,value) ((reg)=(value))uhd-3.5.5/fpga/usrp2/opencores/simple_gpio/000077500000000000000000000000001224274632000206025ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/simple_gpio/rtl/000077500000000000000000000000001224274632000214035ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/simple_gpio/rtl/simple_gpio.v000066400000000000000000000143621224274632000241070ustar00rootroot00000000000000///////////////////////////////////////////////////////////////////// //// //// //// OpenCores Simple General Purpose IO core //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // CVS Log // // $Id: simple_gpio.v,v 1.2 2002/12/22 16:10:17 rherveille Exp $ // // $Date: 2002/12/22 16:10:17 $ // $Revision: 1.2 $ // $Author: rherveille $ // $Locker: $ // $State: Exp $ // // Change History: // $Log: simple_gpio.v,v $ // Revision 1.2 2002/12/22 16:10:17 rherveille // Fixed some typos in the documentation section. // // // // Very basic 8bit GPIO core // // // Registers: // // 0x00: Control Register // bits 7:0 R/W Input/Output '1' = output mode // '0' = input mode // 0x01: Line Register // bits 7:0 R Status Current GPIO pin level // W Output GPIO pin output level // // // HOWTO: // // Use a pin as an input: // Program the corresponding bit in the control register to 'input mode' ('0'). // The pin's state (input level) can be checked by reading the Line Register. // Writing to the GPIO pin's Line Register bit while in input mode has no effect. // // Use a pin as an output: // Program the corresponding bit in the control register to 'output mode' ('1'). // Program the GPIO pin's output level by writing to the corresponding bit in // the Line Register. // Reading the GPIO pin's Line Register bit while in output mode returns the // current output level. // // Addapt the core for fewer GPIOs: // If less than 8 GPIOs are required, than the 'io' parameter can be set to // the amount of required interrupts. GPIOs are mapped starting at the LSBs. // So only the 'io' LSBs per register are valid. // All other bits (i.e. the 8-'io' MSBs) are set to zero '0'. // Codesize is approximately linear to the amount of interrupts. I.e. using // 4 instead of 8 GPIO sources reduces the size by approx. half. // // synopsys translate_off `include "timescale.v" // synopsys translate_on module simple_gpio( clk_i, rst_i, cyc_i, stb_i, adr_i, we_i, dat_i, dat_o, ack_o, gpio ); // // Inputs & outputs // parameter io = 8; // number of GPIOs // 8bit WISHBONE bus slave interface input clk_i; // clock input rst_i; // reset (asynchronous active low) input cyc_i; // cycle input stb_i; // strobe input adr_i; // address adr_i[1] input we_i; // write enable input [ 7:0] dat_i; // data output output [ 7:0] dat_o; // data input output ack_o; // normal bus termination // GPIO pins inout [io:1] gpio; // // Module body // reg [io:1] ctrl, line; // ControlRegister, LineRegister reg [io:1] lgpio, llgpio; // LatchedGPIO pins // // perform parameter checks // // synopsys translate_off initial begin if(io > 8) $display("simple_gpio: max. 8 GPIOs supported."); end // synopsys translate_on // // WISHBONE interface wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access always @(posedge clk_i or negedge rst_i) if (~rst_i) begin ctrl <= #1 {io{1'b0}}; line <= #1 {io{1'b0}}; end else if (wb_wr) if ( adr_i ) line <= #1 dat_i[io-1:0]; else ctrl <= #1 dat_i[io-1:0]; reg [7:0] dat_o; always @(posedge clk_i) if ( adr_i ) dat_o <= #1 { {(8-io){1'b0}}, llgpio}; else dat_o <= #1 { {(8-io){1'b0}}, ctrl}; reg ack_o; always @(posedge clk_i or negedge rst_i) if (~rst_i) ack_o <= #1 1'b0; else ack_o <= #1 wb_acc & !ack_o; // // GPIO section // latch GPIO input pins always @(posedge clk_i) lgpio <= #1 gpio; // latch again (reduce meta-stability risc) always @(posedge clk_i) llgpio <= #1 lgpio; // assign GPIO outputs integer n; reg [io:1] igpio; // temporary internal signal always @(ctrl or line) for(n=1;n<=io;n=n+1) igpio[n] <= ctrl[n] ? line[n] : 1'bz; assign gpio = igpio; endmodule uhd-3.5.5/fpga/usrp2/opencores/simple_pic/000077500000000000000000000000001224274632000204175ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/simple_pic/rtl/000077500000000000000000000000001224274632000212205ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/simple_pic/rtl/simple_pic.v000066400000000000000000000204271224274632000235400ustar00rootroot00000000000000 // Modified by M. Ettus, 2008 for 32 bit width ///////////////////////////////////////////////////////////////////// //// //// //// OpenCores Simple Programmable Interrupt Controller //// //// //// //// Author: Richard Herveille //// //// richard@asics.ws //// //// www.asics.ws //// //// //// ///////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Richard Herveille //// //// richard@asics.ws //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer.//// //// //// //// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY //// //// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED //// //// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //// //// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR //// //// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //// //// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES //// //// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE //// //// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR //// //// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF //// //// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT //// //// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT //// //// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //// //// POSSIBILITY OF SUCH DAMAGE. //// //// //// ///////////////////////////////////////////////////////////////////// // // This is a simple Programmable Interrupt Controller. // The number of interrupts is depending on the databus size. // There's one interrupt input per databit (i.e. 16 interrupts for a 16 // bit databus). // All attached devices share the same CPU priority level. // // // // Registers: // // 0x00: EdgeEnable Register // bits 7:0 R/W Edge Enable '1' = edge triggered interrupt source // '0' = level triggered interrupt source // 0x01: PolarityRegister // bits 7:0 R/W Polarity '1' = high level / rising edge // '0' = low level / falling edge // 0x02: MaskRegister // bits 7:0 R/W Mask '1' = interrupt masked (disabled) // '0' = interrupt not masked (enabled) // 0x03: PendingRegister // bits 7:0 R/W Pending '1' = interrupt pending // '0' = no interrupt pending // // A CPU interrupt is generated when an interrupt is pending and its // MASK bit is cleared. // // // // HOWTO: // // Clearing pending interrupts: // Writing a '1' to a bit in the interrupt pending register clears the // interrupt. Make sure to clear the interrupt at the source before // writing to the interrupt pending register. Otherwise the interrupt // will be set again. // // Priority based interrupts: // Upon reception of an interrupt, check the interrupt register and // determine the highest priority interrupt. Mask all interrupts from the // current level to the lowest level. This negates the interrupt line, and // makes sure only interrupts with a higher level are triggered. After // completion of the interrupt service routine, clear the interrupt source, // the interrupt bit in the pending register, and restore the MASK register // to it's previous state. // // Addapt the core for fewer interrupt sources: // If less than 8 interrupt sources are required, than the 'is' parameter // can be set to the amount of required interrupts. Interrupts are mapped // starting at the LSBs. So only the 'is' LSBs per register are valid. All // other bits (i.e. the 8-'is' MSBs) are set to zero '0'. // Codesize is approximately linear to the amount of interrupts. I.e. using // 4 instead of 8 interrupt sources reduces the size by approx. half. // module simple_pic( clk_i, rst_i, cyc_i, stb_i, adr_i, we_i, dat_i, dat_o, ack_o, int_o, irq ); parameter is = 8; // Number of interrupt sources parameter dwidth = 32; // // Inputs & outputs // // 8bit WISHBONE bus slave interface input clk_i; // clock input rst_i; // reset (asynchronous active low) input cyc_i; // cycle input stb_i; // strobe (cycle and strobe are the same signal) input [ 2:1] adr_i; // address input we_i; // write enable input [ dwidth-1:0] dat_i; // data output output [ dwidth-1:0] dat_o; // data input output ack_o; // normal bus termination output int_o; // interrupt output // // Interrupt sources // input [is:1] irq; // interrupt request inputs // // Module body // reg [is:1] pol, edgen, pending, mask; // register bank reg [is:1] lirq, dirq; // latched irqs, delayed latched irqs // // perform parameter checks // // synopsys translate_off initial begin if(is > dwidth) $display("simple_pic: max number of interrupts = data bus width."); end // synopsys translate_on // // latch interrupt inputs always @(posedge clk_i) lirq <= #1 irq; // // generate delayed latched irqs always @(posedge clk_i) dirq <= #1 lirq; // // generate actual triggers function trigger; input edgen, pol, lirq, dirq; reg edge_irq, level_irq; begin edge_irq = pol ? (lirq & ~dirq) : (dirq & ~lirq); level_irq = pol ? lirq : ~lirq; trigger = edgen ? edge_irq : level_irq; end endfunction reg [is:1] irq_event; integer n; always @(posedge clk_i) for(n=1; n<=is; n=n+1) irq_event[n] <= #1 trigger(edgen[n], pol[n], lirq[n], dirq[n]); // // generate wishbone register bank writes wire wb_acc = cyc_i & stb_i; // WISHBONE access wire wb_wr = wb_acc & we_i; // WISHBONE write access always @(posedge clk_i) if (rst_i) begin pol <= #1 {is{1'b0}}; // clear polarity register edgen <= #1 {is{1'b0}}; // clear edge enable register mask <= #1 {is{1'b1}}; // mask all interrupts end else if(wb_wr) // wishbone write cycle?? case (adr_i) // synopsys full_case parallel_case 2'b00: edgen <= #1 dat_i[is-1:0]; // EDGE-ENABLE register 2'b01: pol <= #1 dat_i[is-1:0]; // POLARITY register 2'b10: mask <= #1 dat_i[is-1:0]; // MASK register 2'b11: ; // PENDING register is a special case (see below) endcase // pending register is a special case always @(posedge clk_i) if (rst_i) pending <= #1 {is{1'b0}}; // clear all pending interrupts else if ( wb_wr & (&adr_i) ) pending <= #1 (pending & ~dat_i[is-1:0]) | irq_event; else pending <= #1 pending | irq_event; // // generate dat_o reg [dwidth-1:0] dat_o; always @(posedge clk_i) case (adr_i) // synopsys full_case parallel_case 2'b00: dat_o <= #1 { {(dwidth-is){1'b0}}, edgen}; 2'b01: dat_o <= #1 { {(dwidth-is){1'b0}}, pol}; 2'b10: dat_o <= #1 { {(dwidth-is){1'b0}}, mask}; 2'b11: dat_o <= #1 { {(dwidth-is){1'b0}}, pending}; endcase // // generate ack_o reg ack_o; always @(posedge clk_i) ack_o <= #1 wb_acc & !ack_o; // // generate CPU interrupt signal reg int_o; always @(posedge clk_i) if(rst_i) int_o <= #1 0; else int_o <= #1 |(pending & ~mask); endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/000077500000000000000000000000001224274632000170665ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/bench/000077500000000000000000000000001224274632000201455ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/bench/verilog/000077500000000000000000000000001224274632000216145ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/bench/verilog/spi_slave_model.v000066400000000000000000000070651224274632000251600ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// spi_slave_model.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "timescale.v" module spi_slave_model (rst, ss, sclk, mosi, miso); input rst; // reset input ss; // slave select input sclk; // serial clock input mosi; // master out slave in output miso; // master in slave out reg miso; reg rx_negedge; // slave receiving on negedge reg tx_negedge; // slave transmiting on negedge reg [31:0] data; // data register parameter Tp = 1; always @(posedge(sclk && !rx_negedge) or negedge(sclk && rx_negedge) or rst) begin if (rst) data <= #Tp 32'b0; else if (!ss) data <= #Tp {data[30:0], mosi}; end always @(posedge(sclk && !tx_negedge) or negedge(sclk && tx_negedge)) begin miso <= #Tp data[31]; end endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/bench/verilog/tb_spi_top.v000066400000000000000000000306351224274632000241540ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// tb_spi_top.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// Based on: //// //// - i2c/bench/verilog/tst_bench_top.v //// //// Copyright (C) 2001 Richard Herveille //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "timescale.v" module tb_spi_top(); reg clk; reg rst; wire [31:0] adr; wire [31:0] dat_i, dat_o; wire we; wire [3:0] sel; wire stb; wire cyc; wire ack; wire err; wire int; wire [7:0] ss; wire sclk; wire mosi; wire miso; reg [31:0] q; reg [31:0] q1; reg [31:0] q2; reg [31:0] q3; reg [31:0] result; parameter SPI_RX_0 = 5'h0; parameter SPI_RX_1 = 5'h4; parameter SPI_RX_2 = 5'h8; parameter SPI_RX_3 = 5'hc; parameter SPI_TX_0 = 5'h0; parameter SPI_TX_1 = 5'h4; parameter SPI_TX_2 = 5'h8; parameter SPI_TX_3 = 5'hc; parameter SPI_CTRL = 5'h10; parameter SPI_DIVIDE = 5'h14; parameter SPI_SS = 5'h18; // Generate clock always #5 clk = ~clk; // Wishbone master model wb_master_model #(32, 32) i_wb_master ( .clk(clk), .rst(rst), .adr(adr), .din(dat_i), .dout(dat_o), .cyc(cyc), .stb(stb), .we(we), .sel(sel), .ack(ack), .err(err), .rty(1'b0) ); // SPI master core spi_top i_spi_top ( .wb_clk_i(clk), .wb_rst_i(rst), .wb_adr_i(adr[4:0]), .wb_dat_i(dat_o), .wb_dat_o(dat_i), .wb_sel_i(sel), .wb_we_i(we), .wb_stb_i(stb), .wb_cyc_i(cyc), .wb_ack_o(ack), .wb_err_o(err), .wb_int_o(int), .ss_pad_o(ss), .sclk_pad_o(sclk), .mosi_pad_o(mosi), .miso_pad_i(miso) ); // SPI slave model spi_slave_model i_spi_slave ( .rst(rst), .ss(ss[0]), .sclk(sclk), .mosi(mosi), .miso(miso) ); initial begin $display("\nstatus: %t Testbench started\n\n", $time); $dumpfile("bench.vcd"); $dumpvars(1, tb_spi_top); $dumpvars(1, tb_spi_top.i_spi_slave); // Initial values clk = 0; i_spi_slave.rx_negedge = 1'b0; i_spi_slave.tx_negedge = 1'b0; result = 32'h0; // Reset system rst = 1'b0; // negate reset #2; rst = 1'b1; // assert reset repeat(20) @(posedge clk); rst = 1'b0; // negate reset $display("status: %t done reset", $time); @(posedge clk); // Program core i_wb_master.wb_write(0, SPI_DIVIDE, 32'h00); // set devider register i_wb_master.wb_write(0, SPI_TX_0, 32'h5a); // set tx register to 0x5a i_wb_master.wb_write(0, SPI_CTRL, 32'h208); // set 8 bit transfer i_wb_master.wb_write(0, SPI_SS, 32'h01); // set ss 0 $display("status: %t programmed registers", $time); i_wb_master.wb_cmp(0, SPI_DIVIDE, 32'h00); // verify devider register i_wb_master.wb_cmp(0, SPI_TX_0, 32'h5a); // verify tx register i_wb_master.wb_cmp(0, SPI_CTRL, 32'h208); // verify tx register i_wb_master.wb_cmp(0, SPI_SS, 32'h01); // verify ss register $display("status: %t verified registers", $time); i_spi_slave.rx_negedge = 1'b1; i_spi_slave.tx_negedge = 1'b0; i_spi_slave.data[31:0] = 32'ha5967e5a; i_wb_master.wb_write(0, SPI_CTRL, 32'h308); // set 8 bit transfer, start transfer $display("status: %t generate transfer: 8 bit, msb first, tx posedge, rx negedge", $time); // Check bsy bit i_wb_master.wb_read(0, SPI_CTRL, q); while (q[8]) i_wb_master.wb_read(1, SPI_CTRL, q); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; if (i_spi_slave.data[7:0] == 8'h5a && q == 32'h000000a5) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b0; i_spi_slave.tx_negedge = 1'b1; i_wb_master.wb_write(0, SPI_TX_0, 32'ha5); i_wb_master.wb_write(0, SPI_CTRL, 32'h408); // set 8 bit transfer, tx negedge i_wb_master.wb_write(0, SPI_CTRL, 32'h508); // set 8 bit transfer, tx negedge, start transfer $display("status: %t generate transfer: 8 bit, msb first, tx negedge, rx posedge", $time); // Check bsy bit i_wb_master.wb_read(0, SPI_CTRL, q); while (q[8]) i_wb_master.wb_read(1, SPI_CTRL, q); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; if (i_spi_slave.data[7:0] == 8'ha5 && q == 32'h00000096) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b0; i_spi_slave.tx_negedge = 1'b1; i_wb_master.wb_write(0, SPI_TX_0, 32'h5aa5); i_wb_master.wb_write(0, SPI_CTRL, 32'hc10); // set 16 bit transfer, tx negedge, lsb i_wb_master.wb_write(0, SPI_CTRL, 32'hd10); // set 16 bit transfer, tx negedge, start transfer $display("status: %t generate transfer: 16 bit, lsb first, tx negedge, rx posedge", $time); // Check bsy bit i_wb_master.wb_read(0, SPI_CTRL, q); while (q[8]) i_wb_master.wb_read(1, SPI_CTRL, q); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; if (i_spi_slave.data[15:0] == 16'ha55a && q == 32'h00005a7e) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b1; i_spi_slave.tx_negedge = 1'b0; i_wb_master.wb_write(0, SPI_TX_0, 32'h76543210); i_wb_master.wb_write(0, SPI_TX_1, 32'hfedcba98); i_wb_master.wb_write(0, SPI_CTRL, 32'h1a40); // set 64 bit transfer, rx negedge, lsb i_wb_master.wb_write(0, SPI_CTRL, 32'h1b40); // set 64 bit transfer, rx negedge, start transfer $display("status: %t generate transfer: 64 bit, lsb first, tx posedge, rx negedge", $time); // Check bsy bit i_wb_master.wb_read(0, SPI_CTRL, q); while (q[8]) i_wb_master.wb_read(1, SPI_CTRL, q); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; i_wb_master.wb_read(1, SPI_RX_1, q1); result = result + q1; if (i_spi_slave.data == 32'h195d3b7f && q == 32'h5aa5a55a && q1 == 32'h76543210) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b0; i_spi_slave.tx_negedge = 1'b1; i_wb_master.wb_write(0, SPI_TX_0, 32'hccddeeff); i_wb_master.wb_write(0, SPI_TX_1, 32'h8899aabb); i_wb_master.wb_write(0, SPI_TX_2, 32'h44556677); i_wb_master.wb_write(0, SPI_TX_3, 32'h00112233); i_wb_master.wb_write(0, SPI_CTRL, 32'h400); i_wb_master.wb_write(0, SPI_CTRL, 32'h500); $display("status: %t generate transfer: 128 bit, msb first, tx posedge, rx negedge", $time); // Check bsy bit i_wb_master.wb_read(0, SPI_CTRL, q); while (q[8]) i_wb_master.wb_read(1, SPI_CTRL, q); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; i_wb_master.wb_read(1, SPI_RX_1, q1); result = result + q1; i_wb_master.wb_read(1, SPI_RX_2, q2); result = result + q2; i_wb_master.wb_read(1, SPI_RX_3, q3); result = result + q3; if (i_spi_slave.data == 32'hccddeeff && q == 32'h8899aabb && q1 == 32'h44556677 && q2 == 32'h00112233 && q3 == 32'h195d3b7f) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b0; i_spi_slave.tx_negedge = 1'b1; i_wb_master.wb_write(0, SPI_TX_0, 32'haa55a5a5); i_wb_master.wb_write(0, SPI_CTRL, 32'h1420); i_wb_master.wb_write(0, SPI_CTRL, 32'h1520); $display("status: %t generate transfer: 32 bit, msb first, tx negedge, rx posedge, ie", $time); // Check interrupt signal while (!int) @(posedge clk); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; @(posedge clk); if (!int && i_spi_slave.data == 32'haa55a5a5 && q == 32'hccddeeff) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b1; i_spi_slave.tx_negedge = 1'b0; i_wb_master.wb_write(0, SPI_TX_0, 32'h01248421); i_wb_master.wb_write(0, SPI_CTRL, 32'h3220); i_wb_master.wb_write(0, SPI_CTRL, 32'h3320); $display("status: %t generate transfer: 32 bit, msb first, tx posedge, rx negedge, ie, ass", $time); while (!int) @(posedge clk); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; @(posedge clk); if (!int && i_spi_slave.data == 32'h01248421 && q == 32'haa55a5a5) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); i_spi_slave.rx_negedge = 1'b1; i_spi_slave.tx_negedge = 1'b0; i_wb_master.wb_write(0, SPI_TX_0, 32'h1); i_wb_master.wb_write(0, SPI_CTRL, 32'h3201); i_wb_master.wb_write(0, SPI_CTRL, 32'h3301); $display("status: %t generate transfer: 1 bit, msb first, tx posedge, rx negedge, ie, ass", $time); while (!int) @(posedge clk); i_wb_master.wb_read(1, SPI_RX_0, q); result = result + q; @(posedge clk); if (!int && i_spi_slave.data == 32'h02490843 && q == 32'h0) $display("status: %t transfer completed: ok", $time); else $display("status: %t transfer completed: nok", $time); $display("\n\nstatus: %t Testbench done", $time); #25000; // wait 25us $display("report (%h)", (result ^ 32'h2e8b36ab) + 32'hdeaddead); $display("exit (%h)", result ^ 32'h2e8b36ab); $stop; end endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/bench/verilog/wb_master_model.v000066400000000000000000000131321224274632000251460ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// wb_master_model.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// Based on: //// //// - i2c/bench/verilog/wb_master_model.v //// //// Copyright (C) 2001 Richard Herveille //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "timescale.v" module wb_master_model(clk, rst, adr, din, dout, cyc, stb, we, sel, ack, err, rty); parameter dwidth = 32; parameter awidth = 32; input clk, rst; output [awidth -1:0] adr; input [dwidth -1:0] din; output [dwidth -1:0] dout; output cyc, stb; output we; output [dwidth/8 -1:0] sel; input ack, err, rty; // Internal signals reg [awidth -1:0] adr; reg [dwidth -1:0] dout; reg cyc, stb; reg we; reg [dwidth/8 -1:0] sel; reg [dwidth -1:0] q; // Memory Logic initial begin adr = {awidth{1'bx}}; dout = {dwidth{1'bx}}; cyc = 1'b0; stb = 1'bx; we = 1'hx; sel = {dwidth/8{1'bx}}; #1; end // Wishbone write cycle task wb_write; input delay; integer delay; input [awidth -1:0] a; input [dwidth -1:0] d; begin // wait initial delay repeat(delay) @(posedge clk); // assert wishbone signal #1; adr = a; dout = d; cyc = 1'b1; stb = 1'b1; we = 1'b1; sel = {dwidth/8{1'b1}}; @(posedge clk); // wait for acknowledge from slave while(~ack) @(posedge clk); // negate wishbone signals #1; cyc = 1'b0; stb = 1'bx; adr = {awidth{1'bx}}; dout = {dwidth{1'bx}}; we = 1'hx; sel = {dwidth/8{1'bx}}; end endtask // Wishbone read cycle task wb_read; input delay; integer delay; input [awidth -1:0] a; output [dwidth -1:0] d; begin // wait initial delay repeat(delay) @(posedge clk); // assert wishbone signals #1; adr = a; dout = {dwidth{1'bx}}; cyc = 1'b1; stb = 1'b1; we = 1'b0; sel = {dwidth/8{1'b1}}; @(posedge clk); // wait for acknowledge from slave while(~ack) @(posedge clk); // negate wishbone signals #1; cyc = 1'b0; stb = 1'bx; adr = {awidth{1'bx}}; dout = {dwidth{1'bx}}; we = 1'hx; sel = {dwidth/8{1'bx}}; d = din; end endtask // Wishbone compare cycle (read data from location and compare with expected data) task wb_cmp; input delay; integer delay; input [awidth -1:0] a; input [dwidth -1:0] d_exp; begin wb_read (delay, a, q); if (d_exp !== q) $display("Data compare error. Received %h, expected %h at time %t", q, d_exp, $time); end endtask endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/doc/000077500000000000000000000000001224274632000176335ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/doc/spi.pdf000066400000000000000000002316251224274632000211320ustar00rootroot00000000000000%PDF-1.4 %âãÏÓ 1 0 obj << /Type /Pages /Count 13 /Kids [ 4 0 R 14 0 R 24 0 R 33 0 R 43 0 R 52 0 R 61 0 R 70 0 R 79 0 R 88 0 R 99 0 R 108 0 R 117 0 R ] >> endobj 2 0 obj << /Type /Catalog /Pages 1 0 R /AcroForm 131 0 R /Metadata 126 1 R >> endobj 3 0 obj << /Title (Microsoft Word - spi.doc) /Creator (Win2PDF http://www.daneprairie.com) /Author (simons) /CreationDate (D:20040315181321Z) /Producer (PDFlib 3.03 \(Win32\)) /ModDate (D:20040315181818+01'00') >> endobj 4 0 obj << /Type /Page /Parent 1 0 R /Resources 13 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 5 0 R 9 0 R ] >> endobj 5 0 obj << /Length 6 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…å&& ÆæÆ aCC=sSˆeS BŒÖ endstream endobj 6 0 obj 62 endobj 7 0 obj << /Type /XObject /Subtype /Image /Width 246 /Height 130 /BitsPerComponent 1 /ColorSpace /DeviceGray /Filter [ /FlateDecode ] /Length 8 0 R >> stream xœíÉ¡ °ÿ^Â>@¢ZÛ¤¹ºZk­µÖZk­µ^ôÔ;­ž endstream endobj 8 0 obj 39 endobj 9 0 obj << /Length 10 0 R /Filter /FlateDecode >> stream xœ’ÛN„0†ïûs‰‰v§¥G¯<'›ì&*¼!¬‹ tô§·ÐÅ(‘•ôbÚ¿ïŸÌôp¡ýb11¯ÈjpçÈ“_7)Y=øKD„tGjÉUH¸`Àm¬@¡V$¼Ù(y\Ã6k»¢[×géë/FSeB(ktO’C‘—»2ϺÒÕó,Ÿcz%ÄÍ7£Â¾¤Œs%ƒïxP±å`bkzwk©õFŸ$º~ïö®¹„¤¬\ Iãº)ax¹ÌFZƒQFmúOn{|{åEûÞµÔ5/‹æ<]ŒÞÞJÉs¤ªy.>( ]Ä0œ™ŸŒ æ†ðL)­ÁÁÆ!°·Íš|Lžûl'ûrŸúßûçf Ø endstream endobj 10 0 obj 286 endobj 11 0 obj << /Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Times-Bold >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Times-Italic >> endobj 13 0 obj << /ProcSet [ /PDF /ImageB /Text ] /Font << /F0 11 0 R /F1 12 0 R >> /XObject << /I0 7 0 R >> >> endobj 14 0 obj << /Type /Page /Parent 1 0 R /Resources 22 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 15 0 R 19 0 R ] /Annots [ 23 0 R ] >> endobj 15 0 obj << /Length 16 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 16 0 obj 55 endobj 17 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 18 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 18 0 obj 69 endobj 19 0 obj << /Length 20 0 R /Filter /FlateDecode >> stream xœµYÛrÛ6}×WàQí¤2nÄåщ›4dÚÄšé³"S6;º8”œLúõ qÓ…±¬Éd Ÿî.»KæëˆT›?DÀùjtõž ›Íè“ùóz:ºzKÅ\¡éb„'X%ø[÷ Ñ #É1š®FZOAÓÿFñ_õúͦ­·¿LÿMlŒ-qŒòØë„c!"'šÃ³·¿GgÛ]Ý"ëÝ>ÖófÑÌg»f³>Ï¡¬ªØ¡rÙ©®(Æü¨ñß§#¢0CRK$¨ÔH ¶G6ͨ½÷‹Ïï†åWQ­´°±GÌ“ÿþ}²1ižÛ4O6í}<(ˆ±Q™SV]ïÌßûÜ·ßAouà¹hJBp&QR@>×ßžTÖ'Ì®ÝÂìú`âºÐNŸŽ6Ò»7y¬eôéÉÊ´rg#]VÊ(!?$ŠƒP*ª.÷‹`¦ö $)“>‡& ÍÖ”"ú£Ùî6í9µy\FýuDdeâ–T£•_k.ÐÒŸr¼¶œåèaDÝníX”©*]wOüó+ZGŽ3¡(^<ÑTs“ó“˜Îpe\€&m #!n2ü Iâ!ý¡mS¸ö ,?„‰K<>Ø®_M"t”,’Åe¶î’ÅïŸpkÇb’fë$½ÁaôYÉùBˆ¸x‚} \‚­øŠ$¿7³]}:¿L2Ùg Ö>CŠˆtÝe‹KÞ¼[;W”¦ë$¿ÁÁ¦Ÿ•߈6çwáôú Dõ› ñõÓîaÓžÎ0W,ä Ö>GšÐtÝåKU¤¯`·v,U)•®“ GLVÏÌp„ £ÇN±OÁÁ ®·ó¶y CÃá4»Â’FL©‰šú»c?2j@Qz½M©”cÿ³uÔñæ‡yRªAö”`·:ÈcËÀûr˜Gð }0¢¢}À8ì_›÷²yœz˜Wá(Ûê0ÏRzÞ«à}ày*smÅõ2~)‹ ñ*æÍÃG''@·O›v‡› ޾4;4˜µ³¹ý·¬×hvw7Xœ8á¥8Y°'‹â`)N׉“ qʸNœ,¸GœŠpap"ÎH.ÍëQX†ú2Ô;Ëì'†Ítq@œŽ·VÌýñÇ#¢cæÏž7;":Q¼®©ð”¼#"¦Ì}Ùó†ˆDÏ>!=O‰ž÷Ó"Áhÿ1ˆÄ™· ˆD\‰ÒüõÓn³šíš9Ú.gßj´­íЂ¶Íýz¶D÷õºná }¤ðCqÛÔJJ¤í ½ç¿9 ùXml|òMiZ:5~y„%éT‹Z ±°Â’ôoÆuÂâ@+,IWg\',tÂ’ôz.ìA’=ÂbÑRXrÔ‡¡ÞYfw¸°p}pê©^BX"ûî²¹~l›%2ãÙKuBäá™×ÅmI¨:ïºdÌ~)˪À¢ªÍ«ÚEUç\¨jæUs¡ª,«º ö@Üû­¹Jãp‰pó9OËPB†zg™ÝáU-³Ù,ªjñUí퟼.;Þ©ë²ãº.;Þ©ë²ã ».;69q]v¼êÄuÙñ~þºÔŒ×å™ó‰¨ .!‘y÷¥¯(,šzy·Eͽ™~þ`5b}?X*FŠ1ÀbŒ4£XŒÑ9×é‚ó1:ç:]°`9F—áÂ8s·R¢Zº®fGA»] g8Þ.gîŒ?¿çàó;€Ä«Hœ„Ì‚CÁ¨¼³åY’šÌ‚C3 ðI@÷©ž% ËrãÐl{ÁL÷ÌKÿ´»£ endstream endobj 20 0 obj 1727 endobj 21 0 obj << /Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Times-Roman >> endobj 22 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F1 12 0 R /F2 21 0 R >> /XObject << /I1 17 0 R >> >> endobj 23 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 24 0 obj << /Type /Page /Parent 1 0 R /Resources 31 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 25 0 R 29 0 R ] /Annots [ 32 0 R ] >> endobj 25 0 obj << /Length 26 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 26 0 obj 55 endobj 27 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 28 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 28 0 obj 69 endobj 29 0 obj << /Length 30 0 R /Filter /FlateDecode >> stream xœµZÉn9½ë+xt#s_ŽŠÜ±P¤Dj'Œ9†x€Ä'˜óõSMöB¶¶j‰#°‘¯Š¯^‹ìþ{¡ðôÿõømr]rróø‰š†‚(ÛÖ‹[øÿuh»YA‡ŠŒ‹ã¬wˆ2Úó°ÞþCèTÕÌÏ€U‡?`Õ‰k];'xbV”§'tÔÓP1.œ Á2¦=C^hä 7J‹ÖÁð!po ¯ý»šûÅíǹý¸çÃã‹ð¾gíÇý:8NPfûqÛÃã¸v»BY²k ëÇýry(L)߇’Ä“ÔæˆõaŸ¯–U±¬6(nMABÖOOüCK5¤¯K˜É‡­¬uvH#œL¸`|à/ÆQ¯ÚR–'ònÇiJf¹¬Ö«›ûyU®–(!¤ëp2ÅÙ*™R Õ{™[—Æjƒddp•í—Ê.I]!¸ò(劼[­± k„é¦fÎ)É%ï°s“® |ù?9n¸©ãz8>À”Çá‡â|bÏæz¡a¿kÖÌÜtG8ã:5έîpëõò0ûc¹¹{½Z{@€"Ûø‚C߃°@’R¬ßÌæÙ”·ËÙbƒk‹,5ÉZÇÄ÷¶PŠcWG óTce¡/Ø v¶×KïZ½XņzÙ’i>h×Åm¹x"7"52AÉÙ9JÁ:ðÜ£ýò3í?R²„‹s;Ç:5z˜pþ¾¤–@²ð´–ˆ,{O‹Žy§ë‡BÚ9žå-®ÖÒ¨‘&zÅٶЀǶy ¢;YÀo”ÂAŒÍYy¤V‰—9w8íàš€³ƒàør4 ÇeBÕP&Bͱ鵸W7H¡rÑÍñBuÞ⬚‘u1/ÊiË$n£cR&€¢i²«¸íN^#?ûg[™t1ÍÑ]y{‡¼é’:ŽŒ‚À-]1!v<ÿ„ˆú ÔâiYoYI1g<äáÝŸ¸é6ufǸ”´ãºÃ\–©úQ²¬Þëú™wpTnAòß•›x˜õ® Z£;×]™µ û;"ÌUY„â!Ì%µE338ÃÈ,We-îEib†¯þ1 ²’À—1LΖDÕç˜Àœ4Sã8¾4D`d#Ê&ÇÅU‹;fKjçDR+Öål1R*“uå¼çä°gÄ~fíŒÐ‰ãî8öÉô— f7цŠÁÎl=¿++èîÛsÎÉ·8\”û5GY‡éuIëÎù:‡Pî‘Ý%2Œ†Vz^?¡˜¯–oÊÛûû½dÀ` ’ýE MMžûE çñÄqµ‡eµLü å‘Ñ£Õ±¨&ï'ÿì•Ñ„ endstream endobj 30 0 obj 1634 endobj 31 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F2 21 0 R >> /XObject << /I2 27 0 R >> >> endobj 32 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 33 0 obj << /Type /Page /Parent 1 0 R /Resources 41 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 34 0 R 38 0 R ] /Annots [ 42 0 R ] >> endobj 34 0 obj << /Length 35 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 35 0 obj 55 endobj 36 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 37 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 37 0 obj 69 endobj 38 0 obj << /Length 39 0 R /Filter /FlateDecode >> stream xœí]KsG’¾óWô‘±‚êýØÛÚžñ:b4ãµ³_ °Ia Íùõ›Yý@¢…ÊNîÊ7†Bf³õueå³²²²Ûÿ¼Ò¾QðG‡òcõpõþ'Ûü°»ú/øóÝÍÕû¿˜Æ(—š›»+µPY§X€ï†_tNª‰N57W9/’nnþuÕ=ñ׫ë¿?¶Ûïwûöð§›ÿ9K+…Àëfú‰8!’]yöãÏ?5–‡c»oFóñ±]­ïÖ«åq½ÛþÿFï)ÁÔ´ïµo”rìྐྵÒIÙ&æØ\š}{„PÌÍþ¾¿øåG™|“ 6>œ Z(w&âçççÅļB1/vûûqåÁ a ZNÃ,~„¿÷SÚ=ã¨B½d£O“AE[äðKû¥Q ÑÞi}Æ_ ೺ A`ÝŒŽÖMq`g^£1ùk-3ƒóDø¡SôîN&¡¤­:“P.r­•Ȇ´±9uV;ý%ƒò²Æ6ýu´ºÙ”kœŽÎàÏþަ£§wÄ”_]è鼡¨Ø â°©H–;¦;„Kx¼xN…5ô¸ ñ¾ÍÕgðÆâ¤à7½Â}pR5°Fý8^ÝP ÝAsµ1¸X Ý©nTS }¤»ëB·"qÇDìwº_¼‰€¾ ìŒQý§2/â]Ê#þº_=çh”iÏëcgz#n_ÅãÌ ·«ã¼q'Üm—l:ឪ¸¨=¡»ªãœŒßè)¿ë:.‚¾ü‚yrºùz­®Þ%C°W$÷¦£1Åsú„û\ÅqûnÍàà?#®¤†ýb~.7¢oë8«õƒËù„[Õq.™ó1pu\«qmAî„ÛÖqY¹g¤hØîˆ~dp™Pß×q:(‰´­ñD+_ê8ë•Äv¬S"k°.{‰´í™öælÑF*Ń‹Q$íµh–Ù;‰ÍB€Š)ÂbI|எÃÈ(ÏPßcæg(ÝegãÔ¶/ãõ)f~.‰µ:OéÖ}Ï…àåVã¢PÚ‰J›™eva⣠u¯¨§Öeéµ&ÔëQÞ&6ËQ·–ðþ±ŽsŽHôç:ÎÓ8ñÓõˆ}üz]Fº2ÓLVä°¸‰Š*¸(rØ€)€Àq™73⠆β.ô`’p u®ƒ 2®½&Á¹FC™nˆ_™nG–áãÌa­däZ5&OLü2vT’`u’ùI’H'Zk$Ò‰–.Áõ°O)FOÓÐú"ƒ,ÑŠ‘&Z¿þiN-‰:Á‡:.ËÖ8,Hr‰¤id¬«wª¶“Iz¢¾Wíp_ÜÃlWÅÊã¢ùø²]}Þï¶»§Csh÷ëå¦Yoíþn¹jÍrß6ÏëÛvóÒ<ÚÛæ¸k÷»/p§iWðÐÃz|Ú-÷·²Ê\ °§¹”‰¼>Š)aCuEËMû¥Ý¼F¶û„z=ŽÁß4ÂOÕMbÀÕUm”ñ'³•ЊЭ{ªÑ˜ö ¸º§quÓ6VÇŽÛbè$|¸dO¸Ù cð'å\b6d^‹¨'Ê5£•”Ýgf‹e¬„®Õ*Èppά‹ÛÂØDlŒÛ@Q›e6dÞd‰íXŸ¼È¶m´"Û¶I‰´lSrµ9æ‰5p©?–ÿÒvFæÑÎ*âYõí´sÊH´Y·—xªó6‹æŒ‘{ª‹ÙOЗq)]×K1.#áÆ+Gè~žÛDÊ{=êyûÞ½ËÄ»ëe#IµD“’Lï1‰ßÀN‡p]ߌúL£cnPtM¨;-ñÃ`ht¬Gå`¼(NÀG‹æç4±ÍÌG€óZäY!Pfø(¥‰yŸ gñóßævŠ)‘Q`ö.ÔþƒÙ“P­|ÏìI¾Zù/ã,]ó縉^Éf¨ü Ë.cô"Î2Í}æ¢l¬$%MåP÷ždáìöÕ›€ÔµF0~¢3n—\Ý?»œwÀq‡ Ðår^älÀ19/~¸Å\Ni±°: ëc\t'\Ýë§RdrÊRžH'P)2‡1>˜Cô w_ÇeÌÎæÇåžxP*à¶Yµ5TÚLng}”Ø„uÔfçJ›Ö'"s&C–Ìrþˆ!Ë`òДÔDã\¦¥¼™Ìá2NS»dòF£d–ÎP»¬Û‘³Ô.ë~ãœÎr 9OeÄp¼“Ø¥+õÃÇ_”ú¡@: W·Çì2Lª¨×2¹6nB—Í3Ếsó°Å“Ä ›‰É,9ê>û ï:ú Ñ8d·Ä2^˜ìÖˆ¼’32“—ší|d :‹"V0a.ã,µp†ç’h¼R‹_GB°^ûÂYìcrצqú2.»©¥]ÎÅ”E½¨¼È£¦Ò™­÷ŸÅÈz½*ZšÕeLÎìéº4›3‡ ÊçbÔZbá1)Q>Sås1ÓnneHZ;‰&“Ð!)Ö©ËòiXžÇSp˜RMÞÞ>ŽûÑ Æ9GyE5ÜxÇG±?µ+†c­¾Y®Víã±½mt¿Þ¶‡æÓË÷»ms|Þ5»Ã±yÜ=>m–ûfýð¸iÚí±ô_þ}J¾Ú=¶¼þþt½¾k×pe±'’w;^ñX›ßÙ!Û ß™Ü¬®‚Â&¾w»ß°·ðä Îbw ^­®¬+XÍTØ ˆH ²<¯-6(⨥¹ u@zuÕ]b—`‹jx&µºê‡Ä½#¡¬'W««~JpÝOýäËó=K0*ò€žçÕÀ|×pØ7åÛQx¯ìØ66ëN¬½ºÃØJÿëõ²9î—·íÃrÿ68ØwûÝfÙ|lÖ«ä nte\çòT‰Ñ¾)ñP"еWb'ÿëÕ~÷¼Þ·ïÞ<¾Öçߊc.7¨OŸ€óé~Ãÿµ)ÑëàK$­³êœÝ ÇœE©O8¦ÏÀFÜËl= Úº~Fo`csÂ}?7jëÑL+aÒVÄ{Ê2Þ±AwÄÕ3 «’?á˜3¬Áæg5'\=k¶V)2uÜEJøpÐeêÞ~™úBPI4^ 66[ Àî’Í4b;˜€ºSŠh…i/ÓŠX³+ÕY$mg¨u1gL6º‰´Ù½}ð¢QƒK"®£s߃={’hÅåd$t!ý õgñ‰é<3މƳÔG™¶@l¸Û¬÷I‹F –ØÓl›#I$²SºÜ,3•%Ó·¥¨,™]¸ÖQn¹ÁÒhÁÔ ,õîD*E‰åÂ^\K,7Dõé$%² €µäÇtûeM<†Ù+*¿z­0bã«X+À4™e½{#ZêÿL­ÀY‘t¢£Zž« Ç‰Œê}ª1f2ËzggÌjšÇÌB ,#iï%1¨œB¯4¯Ê±•eÈLõ…ø«7P_÷pGă$qz3ïÇŒ¸™÷cFÜœAlÑÑuU“ã WWµÁ–7§jƒ #ºž†,‰8&Å’øˆ«¥L d–ÌÁöÿ˲‚£Ò™+6[mɨLBj4•yûÅj=¡^ÁÅ)7ìÁ“%£r­Y°==—9{ðDGex/›ïY3 •òd<&¡Ò˜ÈÍ[š+›Šy r&9‰µÄÂëË’sT~ÜÕÊlš‹í?#º¾,9|ãHÂM2Y$<^çŽOC¢ñƒI»³%Çl6rÅߨ’ȇ¢¦+=3ž‘­ÑÊÖÆè4Ñ “ÆC”¯b1ÐQ™#º_3*BY·(Â@"­'Ô/ã4õöÝ(±ÜdÒÔÆ^• Ã|fÖ!ˇz÷8Æ–ǽêݹ_ÞÑL–‰_qÜ»â(¯Çdñ‹#n6³Ç£ÔÍåÌŽŒÊ¼ùŽß9à2fFÝää$º±ÊÉxV¥$‘¶Õ‰Ìi}21H䉑óÜ1|WÐÜ‹ †ØSdF‹¸‰Ô˜¼¿'%ÑJòJ¤•¬ŒH+9 Ne-ÑŠÓÑM´rgŒÈºl-%r<žÈ¥Þòã¥;×êÎ<¿ÞêÎ|~öµ‘H£(—¥k7‰Ž—qe/&OÍ[ɨ^Û(± ÈæEQÙã<\{lö>ÍúiTa¨{/²7_{棭Կ˜‚}¤Ñv® ÇcË DFÙz‰ƒ¢^1[ºÆZ VãD–™>± î…qj³³ôN´¾†@}—á¦Ô¸æe¢Or» gšd^ɲU6dºÊþÆí ¦vyá³zŸ4zºîrhë ÿ®ã<µ@æuwŸ‰¼˜Òw ëä29½%ÚÿŽÉé=‰grúLÆû“ƒS~ÿüÚ¶¼¹}ú”àj÷ð¸Y/·Çæ°Y~i›ÛöËzÕÊkßÃúµ/í±ªÜSï~é¨ûSÉ]woÿ¥]ŸöíÐï¥mAÝPø‚Ù[[ÐkÚ‚ÔL[v[±öö;=m6ÍíÓã¦ý½9|ý’þíòXú„¶‡»vÿJB`|Óá·×aë ùžîõ?– «O›V8Hòaäì ÛûãglôÝ<ïö·ÍÓ#~A›$ÝCÞG§èúO¢~Z¯µ“ßìç°+®.>~×ìöÍ_áÇÝz8òÎ^Õ¾âÿ¦¥o®%ëY¤þå÷f¹½mn~ÇþêO;pÕýú°Þޣ ^¶·÷-zp½W›Ýê·f½½m[øÏö¸yy­Bbõ¦Ýo¯]k¯ÝTäŸúüìÐnÚÕQ4’ÕÖÒ‘b÷n@SZñ_«gü.Ñ›ž¿¹žQ¬Ã2kÆ„ë¥9à{«³Œë¶=¬ï·ÍóámÛ;ïíîa¹þê«®3ÚL¸}Óæ·Öfë }æ¦]}Þî6»ûe›@ø…›_ =§6çÞœðPеO˜3õÁ—íñ38Ý¿0wfUu1ÂÿÆÿÖY> endobj 41 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F2 21 0 R /F3 40 0 R >> /XObject << /I3 36 0 R >> >> endobj 42 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 43 0 obj << /Type /Page /Parent 1 0 R /Resources 50 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 44 0 R 48 0 R ] /Annots [ 51 0 R ] >> endobj 44 0 obj << /Length 45 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 45 0 obj 55 endobj 46 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 47 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 47 0 obj 69 endobj 48 0 obj << /Length 49 0 R /Filter /FlateDecode >> stream xœµ\[w¹‘~ׯèG힌û%oqfvâs’8‰}Ösh‰’¸#“I3ùõ© Ð  ›R󢹫« … ðŸWÒvþ•ŽþÜ~¹zóÎt?l®þÿ¾ýxõæU§„ ÝÇû+q#¢ ž—?ÈDçè>~¹Šñ&Èî㿯ø‰?_]¿ÿº\ÿq³]îþëãÿWº¤(xݵ_L1¹ÂH4ô쇿½ëþ²Øí—Ûmt¾.oW÷«ÛÅ~µYŸgÐ[[ lP¿‘öÂ<«üÇW2Ýùè;gé\·]^! s·}H…ü4/¾A¹N*ú†n„©Büýû÷› „ùÃ|³Ù>ô>ЃN‚ ­²?Áÿ­íTƒ^ëÌv‰JÎA ¼¦8ücùk'nf©°Fʪ~¤Àá³’$!`\€€•ÚØÅ\—[Ô;عVóh|l‚︡7÷ó"¤U„"uk)fqH*³Èsûåà À ­º/W>7©ü”ËJ߀᧫ ¤»Ñ\¨9þEÄXF,Õ/PZz2õTB¼Ñ¤GÒGpËÊß@×ÎÈdEêxãÀvYƒ4áÆbJÿ"âÀ¨õ1?â¨$­U¨ oo´U¶G@ÀÄ€%  NDöÊK´'Ó½M¾°Ê±še´¹qŠ}£ç¥oæ9,I#mF¤¤)ÒS"–‘>‚Xeø˜Cí<#2×HØä°dcX'Ø…ÖCDkÐd øŽ”Ñ· a•ZP$o] ”QaŒ+@Û2:ERÇZ/jÖœª uŠ•ô4g̵†Æ@Í:øÞgCüÑÐIáZhðdzˆ9ÉX—hÐ(5´Kª—7Ô Ú°¡À±ÒÚeg"~ ‘I-+èI©ÁÿÄ%©hð‘£âIFg Ç5Rܬ.YQ&?¨ò¤–›’;«ÕüQ:0-D4³NCâQزøˆ“É®‚¦§úB-Ùå¸ßé@üQ>ÑRdO°Su¡rÐT ôP©Ê*`»C˜ÿ(€: ô`n åyb¢M-¨-­ÙKí$­ÉMA ±.÷¬#úoƒÊš¹o@îCçå’Œ„Ú¢ÃÎÊÜ Fô”÷¹÷)¸6ùƒÙ†2’æZ nÖüQÆô­ÉAІ?2OÐy–ÏÝJYr™#é˜Z95™WTA?„ÅY!§ä$€áE¶x²æà¸‚нR×sÌjaLå2K?]=Bâ¦|®¤Jé8 ù\€UÓ™ŸúÒC/ EcÕÞO¢\*Da e­ŠDÓ xÏ£¼(†(å¡óÅœŠ á`¤ƒªŸ¼£ÑuRÞBÌò×ïQ.ÅSÒ¿Búëa9è ƒÜæ°œ nÛ–‹ºÛ”NvÓüéíû¿þØ­Ö0w½_Ü.»Ýêa½xY?8iíg ÿ¼‚‘1vÚZ³.{C5;P–Q¹¨ ûå'¸ÌRÀYS—óŸþ»[†¤À˜IÇ´Œ@[˜¡Á_‰f¸#&o÷°¢ >œ¢¢š¾ŠSgí¡–MÐ3üo›íþÙ€Sx•E°â¬àM]ÎÁ‚Á"ä'¸ÌR0ü5å*¼ƒ!ŽžÝÁ«õkG7€£‹Sc]/ý>­îö/ÇW›‡hÅž¾ÚúP—s´ŒQ}‹p™¥Œ¦.Wñ 'Òwp$÷ÚNè««øþ°Ú.o‡•îs16¸þË£rŽR4u9G,8)ò\f©cy]®b<28å?)ƃ#F€¶Wr ÁdWy¹»Ý®¾Î 3Ì&Ðoa܆ÿhµVƒ:ƒ”H¤DÚÀX„űÕÎ ÄáÜB°ÎœÆQgÒØÏ Òwµo0íI¾9˜ã4(¨AôhÏr×+=Ëpʳô]í|Ö â§5ˆíY&léYÎSž¥ïjÏŒÕ)f°šò- z>ڷԿЖN„©¿ÔÛ ëè>ÁÝC9Ô§G‡¨D‡¼Y¢CO†•ûùo¯tô²zs7¼»úüóíÓ/?¯Î{Y§?¹–‡&l/i¡tÛºzýnýõÛþÌ·—”c ÍN¯.oŸ6·¿¼ø2ˆZó®Î“üûb¶G ÃU(̺K4Ííâ@êûb¾‡Ý½ÂpÎ>`°^g9}¬A°Ó§²2L{”läÐÊ€Ù<ÌDéj 0 ô••aðüNXUcUª‹urƒ‚d‰ƒÒ^•} ßíŽû¢ã>Ö¢Ùý©>FzOécF Q¿£,;Ùv·¿H'ËVÎëdYËå;Y©9òÁoëÛÇíf½ù¶ë&¶!¦_IS© ¼t[îÿ§[ÀŒë×e÷¸zxœÕea C]ÖçCç$:§,{b‚{YÏ Ä,»S+JlÅ –˜ÖÊÒG ÍѲ,ñÝÕ…»TÌáHvSy«ØTŽ5hr¡A“1Ô«t>Ù ‡vC>ÿ¼¸Û^†ìÉʵ=‹ìIË+½Ðìéá?o¾Ã€²¸»¦ïºÏ«ýóÛn=IL>¤å¸B “T–ÍÎp/Ë$EH*K.4¢LR…)ø(Æj™¤2IeÉrWîR,ð\é­5L<[9Ö É…MÆ,§ÿŒÎ'©³îà¬çnq„ _–FxcIv¶ŽTK¤m}¿iGšXìÝ~ó}±½ÛuûÇe‡™óxk¼'W'’+ÃMrEpœ\Qæ-ƒ£äÚÈ2oœH®än›\MP¼EtÌÛM.4h2Ô‰¼ ¸Û]LT[Þn.ÁÛÂÈ%y›ÔÒÀ`éé÷ßöbnÒÍ„½ßn¾dkCSqÑÁ š2ÜÐÁ1MQ¦)ƒ#š6²LS'hJî¶4õRLÐÑ1M[”]hQ6FzO¡©•RO¿šî–O™d#×£ǰ²tõ²Ùt¬ùíoûeÕ_ÞîëM…—riäI^MÒ¨ÜԀᆤŽç(“”ÁÑ ‘e’"81ˆmWÀÒåzñùiÙ­^4“9 |/¦'Ò×%p”H[QâhÛDÚÊG 'Rv·á¨•Î9J舣#4¹Ð É˜s'rÔºP­™«Dºÿ|Ž&#gr´põÂ-4ó¶ûíæsÞ˜}Cç SZ=‚°š'w5auPS„e¸!,‚cÂ6¢LXG„md™°NVóœ±&¬Ž +BÇ„mÑäBœXX±Þ“‹/ɪI^õ>ù·ÛË06Y9“±IË+0¶ÐÌYõÿO«»îó·]18.±:9^H8üÜðÁÑàߊ2OlÿV–yŠàxðgw[ž:5±"tÌÓM.¨‰…ë=…§c—ZhDÓÅí/ç/¤@m6rM³–×X7Uºy­÷¶ç(„a½ùþ´¼{Xv›—-ö„ z¼¤"p"±2ÜÁqbmD™° Žk#Ë„Ep"±=^RÙ`ÅxÐÑÂM.4h2fÅi{NY[JŽÖTËíö2ŒMVÎdláëÅ›t©u ,Da³=†ªN8?¢*cª&¸¦*#ª¶¢DÕ¶Tme‰ªŽ©Êî6TuÂÇñ¡£€š\hÐd õž²àLuR)©ºZ_à-†>Y9“ª¥¯—¦jÒ]Î/öÀÑo_óòÿ(®ª8^`8ÁU†®"8æj#Ê\epÄÕF–¹ŠàWU/°žÂ-Ó*£tL¤9—3±ºò¹œŠìt¸W4ÙºÕ@çd¤Ó3U¿h0Ú( ã,Ò!—ª µ mСù,JÕÝ(4º/XƒnDp|”Ê;/{BÒ¢ìœy!åêmè´ÚŸÐd4 ?YSfªœù(°¯pÂó6ðï»O«ÝãçÍzyö¡Ûy Êkɡ?ðÉãÉ›sxL9Ë=”Sx ®–Ëç­§¤ñE@/½9,§œä¾–ÓÖ rûÃrFv¿–³bž]mc÷¹Z{ãéO‡å¢*´¾{F:g/÷á  Eþé°œRq{{X®ŠöûÃr&Qüëa9WÖ÷Ç!Š/]Áv‡-DYD`õŒœ+,'mawqXNi?§—U¶øî¾ãæY·¦èÛÃrNµ^¾dÝC’›£5XÛh–ÃÜ3ÚÆ ­æ´µÁÌáŒíaNn± †øõ°ªì‡ãbµu³ô™²ܽÐ*Öi3‡ÖK?‡á6”µ~ɺÂ6Òäbœ#'ݬ¶vªìÿ¿–Ó"̉¹Ó%·×/ÕÚ†Y£ÃCŠóµâÕ†¼t±éÊy¡Zþ>cÝ+1‹Å^•#ýá‘8§7ú*òÏè3ÆÌ᯷£¬ò\­}™[óÃ9‹ç>–õpNû±óÛ&Èy|Ã냃Üýã.ÏñþNuX8Ÿ”¾éþðôįv‡{di"Û-¶Ëîi±¿}\Þu›5OØ®v«õCÇ/Øî»^Íìµç1×ÝðÆp{ÝMuø3 ËÁ¤W£·›õš¯­œ~Ù-àíÜtÙ-Xò·ªÌ7xñœ²ÈOp™¥^í¯Êù‰á²ARʘßPœpÙtDß¿@~ÕËnFÞ³.»…X+ÁŠ.Öå,m½ÍOp™¥´³M¹ ï`È;sZt?œ°¯ÝÑ;=ñ²›s¾•S„¼qu9GËÐU~‚Ë,eœiÊU|CÑÛÓâ;ø¤{íø¦ôì õ¯‘s×ÍÁ *ŒÊ)H^7å°€sïô—YŠ^„Tå*ă!#”:-ƃ#:xóÚAN!RÄywÝ‚âKÚïÔz°|§F åÑÖZ1|ü]·”?Ty×-eqÕ_ )îºÑwo*Êä0þÒO¢D¿ë–zžÂ#ù-hJ€´?ÚÞu£ïÏ´Ãê!­jPTƒèñwÝa˘åÔ13þ®ñÌ8ch`ÔCðiwÝX­N„jîºõ_–op¹ë”ýH^mLô”ÅÆDŸ6G¬÷”‰€‰¬<ØÚw¯7»ÝÏ_wgoL(˜ce+×áÔ Ê·ƒ¯Á]n_‚²L†tžæiñk„†÷$Ž: H‰Xçß͸/f”A|…:]¡i®çeÏòûbþý´–sºÄ¢P,çm â; LS/û^~_LƒT+WYÑÔP.?õ”@,À4ðWu&ƒÆ„UVŒsiša<]£NWè0úa?(/˜‚ñæ¤E osÒ"…Cq§³µû'-Xï)'-NrÒ¦C}„m‡«Y´UðO¯h8¯y}±.›TŸ¾—H]v¨éÅ»l¡š×œ–Û.Ùð‚ê1ÛˆÁ‡0ºOD uÊ~ÇhCpqŸˆvqaÐï—XÃpŸˆFZÑó~ÃÖhå¡Ïó5UŸ&bo›ëD!9ÁqDÇ'tÄñV–‘ÞS8ñ­Pjžšã_6»ÕÅF–læ<š–Î^˜¦…j>U•ïQop@¡AfµîîðŽÆñàQÈña ™¹åØÁp±ŽÌ%˜[ICAg`.ÄÜ2‹·Z‰¹2sËýoö¶Ùÿ†‘)Ž™K船Œ¶ÌÉ&c*žÈ\£eE†¹«Ý†˜{îMbn2s&sg/x`“ˆ[h–%q®Ì[dpIÜù8£2vÌ['xKpË[Ǽe oó¶ÑʼEp‚·ämË[•¶¢\NFÝèÜÆÄÚ"X­1SmóoYTÝ¡Ñ@k>Ë•`ŠõUa´Q@K3Ë[ŠLã£Z@1X®«R¼ò/oT’„›s-8ëܮǢ7azx9êÜþZ]Ò”‰ªæ=j0(ƒ^¤søöøø×ÇÐ1þ~õ”Üg endstream endobj 49 0 obj 4445 endobj 50 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F2 21 0 R >> /XObject << /I4 46 0 R >> >> endobj 51 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 52 0 obj << /Type /Page /Parent 1 0 R /Resources 59 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 53 0 R 57 0 R ] /Annots [ 60 0 R ] >> endobj 53 0 obj << /Length 54 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 54 0 obj 55 endobj 55 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 56 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 56 0 obj 69 endobj 57 0 obj << /Length 58 0 R /Filter /FlateDecode >> stream xœ½][s%7n~ׯ8Uy§Ö2ï¿y}Ùr•ã]Ë*;UöVJÖœ™Q¢Ù’|ÙüúÉæ¥›Mi޳›Í´ @| È&[¿œq}`ð_nÂ?×oÏ>úR>»;ûþû×˳¾Á”;\¾:cçÌsgã‡éî;XÅ—oϼ?wüpù¿gÔ⫳ÿùøîÓ»ûã×ÿ]ÉâŒ!ã‹Cû‹ÕN3¦èÄ«ÐöÛ|yø«‡Çãýû8|ûóñúæÕÍõÕãÍÝ»÷ëÐj]vè¨Cù× ÆÔPøç—gÜ1y°ÞŒ6ê`÷Ç3èÝ|¸.þ6ç_'Ì í ê3U¹ø÷ß?¿7_£›Ïïî_gBCÃA††QvI‹¿Áÿ^·}G ²ÔÉqñ‚/Ê£¬ ~¸8þv`çS"´â¼²/0Ø–Np=€ÃJi¤b2gD­ÓK?/ä\8ëçè»Wsr\²ÊC>ägS1Ä…ôŽ¢ÈÒø9fq@8¼MÏÆnáÙ›sZøQžsÎÅ9FÖö\Ú@ÁК#”˵‚¦,P”<·)ìÜàq\Ky.9Q,‰êܸ@1Šx¸J­ŒGn®™L}Y‰ÎãʇEŸ èK9‘¶È`yþ1ˆãJgõ,CK¸R"‰kE²d£–ÈÍw‰GñàÅ|öƒ£®™H’¹ <àîÈü r¤§ ž£XfŹ’(„á¿H1 =”À‹åI=ÎE:RÔ‹­@Ž­D–Ì]4ŠF–ytDZº=³Þ£æÊÆ_‘!Ђ¼Ê„ZI/Î=ɇ1 p,3a,aøUtu¶Æ]Óè0K<àXGã.yA)4ù9<‡.8FQ¤ rt‚¤h%¡H&ë„ ãz§øšÑK†ÜG9ñÀïB/ÖG»„±4dÎGÛp MƒH¾6ÄŒˆKr êRxD CÔÁ ˜Ä@–$Š[­“þÐ/ê¯LîÆ=Œ ãI·ˆåU '2¡&6†ÂM !‚Šia’èp-Óà å¿)Þà.ñŒM¬¥&6›ãH[íu:¡— OˆžbÒHG_2, Àä8¸PˆDÆŽ Û`P¿!GYN?ºà/n…KŠ…•Êê‚L«}ðn¡—h "t[—Ç x#ç1Þ Ëa¼¨S‚ò4Äð«” ,9”ÌY‚‚ÇA Œ­¤ p0P1‰q…S)AAN§V¹ÖO"uÄ‚n*õ ©=­S,Á3÷bSBÀý¥Š@c\GžüŒ’“b’€ÇExvž~Ë#œ"I1¦IÔ"”-ø&òX‡ŽUñ9ôhm r@±gM„ P áäCЊ%²(!SÃ(ûd £TcaЉà!ÅEf{)ÛèUIÙC%¦bEh²*¡˜)dÐ<1hš)¬Î)ÔP±Ö˜ôM@Öå©1²ÚË< ØÐ %EŒJˆ¥œ@ÁDá,M@aø˜ËÁ¦£â1F¯e9M{›~d@ã0u£Ʀ¡ážÜh ûÆy‚ ÅÍ3% y¦°œZÉìjtš|q#¦ ‘$9Ä0•fmA©[/Nc±¨ðyùòþøÐ°w°Äµqv—Ïñ.Õõsr—‚R9µ gâRÂ7Ï•ƒ—Ž h}žƒ=4Ì ²ƒ£–؇ɺôð÷7/ßìûVÆ"{+K‰yÍgñwµf ÷•Ö¦%‡ kž®[‚R©›ÎÑ{Mç¡ ’ÚJCDá¹iÉ(Ûógè‘_†ú¢HýKY᫜ìe¡µ1N4D`,ˆ±†­lYêZÑòU¶(™J.aEXS³¤ÆZ®²f©ïÍ#­²Fçá^¸†Šœu)hª¡ ¬>äój5Œ!ejr{È@™šÜTó&£jÞ¨BÓÛt¶R’lZ}ò&[ñ÷CrH=©ƒ*õŒ_1Ï¥žRóS¦ž$÷ýROa6îØl¥žÃØÅ9{xKãËËDDL¼Ê HŰá‰h3«Î¬w•eV*µˆKH^᳑JµO âjˆWkÄR-‚ÄPÖ'^ Üΰ`-¦Ú;Hí±¨vZÞ¨XÃUhz›Çi[ØyÏP$ìÄ*ì¸S`§Ðü¤Ø‰rß;‹ÙCìŒ5NØQÜø;Øa'P[ìDÖ;ÄÚ`';ì´RvˆØa§°ˆ=vzµ¸Å ðýLe˜ ýgj´©l¡FuÞ¨XÃUhz›ÇŽæn;Ýñ•'cÇWàçúà)$ŸúþýšO”+ÈÇû«woo8Í­•Öª‡{8!µƒ±¶p ¬-œØÃ©‘Jp ÄNX‚WàÔ¬5fNHí᨜ZÞ¨XÃUhz›‡“gb N'YòO»Š‚O§Bîiá´xŠNS ¶àhRï¡8·¤Rø±ƒ"{("µƒ"±¶P ¬-‘ØC±‘JP ÄŠX‚bx ÚC±3,X‹ïN;("µ‡b vPly£b oT¡émŠšáé÷u(žbEUÊ?éŠ* >5K¹'…bá‰ñÌ6¹ÊòÒõpBb'¤vp"ÖNµ…{85R NØÃ©KpBâ œ:µšQ€»Ê0Í"®²©l¡FuÞ¨XÃUhz›‡“pf N§Xd%ù§_d•’OЧBîiñ´¸zŒ§¹…—æ‚÷åû‚@ xâEØj¸fRà)²ê:‹ÄÊ2kÀS <ñ"@[©OD xâEضbž‘ðÄ‹`î Ö*Ñã)P;<µÅSÇkx£ MoóxRvÙT¨¯}zyñÕ)&¨ØC9Aíܦ™T¡úIUÈ=- OØ»^|z÷îñþîöpõîåááñêñׇÃÖ+¼uLIÁ{L!±ÇR;Lk‹©ÀÚb ‰=¦©„©@ì1Õˆ%L!qSaÁZ©V0%¥ZÁT v˜jy£b oT¡émSxø¢\,Çg¾üîËÏ>ïvÞƒª¥U§X%Á'GU!÷´¨Z<áèö§·w×ÿsxyóÛÍK˜ž(ovZ@!±R;@k ¨ÀÚ ‰= ©¨@ìÕˆ%@!qPaÁZ±²¨ÝЍíªãЉ•팮·y@9“ÖÈÚU€úöÛS`i¿`é$K¨(øäX*äžK‹',¿ßÞ^ýv<<o×O„’eývD vë§@m×O‘µY?k³~ ÄnýÔJ%(b·~jÅ”دŸzµ¼Þ ªó®;þØÑ1H ÇUå^oQµÎ#b8¥¨*wñz7ƒ¨€pl0 ½€+Øh@ÔF@x¿ˆtæOU®mTÐY]) ViˆH'óTåðÆ·DmtX%öG^W ÅÞé±étƒóõºòê§ÛãÊÅ“5I˜á’¤ 9×Ô@¤JÄ‹ù¾Äáíuü\@àøŒóî‹¶{0øý/>Á6ë|ï)%¾ÛM>Á¸nøâýÿUn\¾dîûm>Á ©Çü¿Ì÷z›O¯g¾›m>% «¶ù4s ßã€Ï°);Œ’S~ ù¯Òoäm§ /^móyigz—ŒñÆšAï’C¶ËÜr›OèÂönÖ\o#U¡ñ‡smþK›Ÿ¶õÑLÍÄ ]X©b`ä ㊱ø}›Ï‰©H•Î^{¹Íç3ÅËì°1J°blßmóIÖj9ê]Y1Õ{<÷N|×Û|Fú)>+ä J•ëзÁgýŸ/#{¬5+#r;r5óE¿Û9[sýkYŽõÝ6Ÿ*Çz;&´ònJK]jù¯=-­`3ø‚ªÈNùÜ—Vogx¨J‹~ßìhið£39Ñ¡šœ8’*½œ‰£œ›±ÝÀPÎØn´Mœ´´¥Ô_l3º2¶Ó€qåä¿HÆË5-~Ñj" ÞČӭð…¼ÿÚæ“žÏ$ «ÌTidµš‚¬Iü”~Æ·ÓâÈ‹Õ46°Æy=’֫‹ۅ~‘b& áGEfb ̘ò¢ƒÊl “9f›¸1Aë·¿Âjà§ãáêúñæ·ãtßìÚ]ÌÜHæ[&6Þ‡ÕSwÝJdUªÂš%©áâ&äû!ÝÚkï™)Û‡Æÿ9ÕJò¥é‹¶mö¯ù[Ëò5ëE¾Ú_=#O¸æßyŠ-虸„†À¯žS‹åš =óŽþ7…¸˜ÿ³¯ù#î,î6”ïó’ù¯7‡›^¢²Õí(eô Û8äÏK!ýÅÓL,¯˜"º½¦â’ ©O¿xª¥¡æé&árÇ4Ž|þU"½–kŠŠ"æ—±a‡£5¬&–× C0T× £fx« ¦h4Í…Á®}„1ø¹¹‚ò9ð,€ á9r…nËçÜ¢’ê¹€@ý§ÂY4‡çp•›ÓŸ½A‹3·cŽNTçðÇTÓn¾"ú3mg&/ë÷‰tjbGm¨—¿Cš’‘ÆY³©Ú+¬†"P•Æ´$¦ð)ˆQhÓþ—µFå–Žå.Ÿ‘'GplAÏÄE\>§KEð“Ãï›BÿÆsˆNÊ\pÔ§k¾¾ÚùøÊDü€;ÉÒ+p_\t7ˆWóyH틹@ Í+jøVÑs:5±£& «ßÅ€&Zèò…[¯p°ÂÐÅJËDÅ j窞˜‚5ÌU% (D¡K4vÄ TÍa¢ DšhTe@£+QµV‰S»îÌB×F§{Qï±ë®@õ$)šÜ°·¦TÂÚ¸ëjÝ‹Õ[Õsñ¿QÑú&Ÿ-aôYª‹ãÃññðÝÕí¯Çx+þ³3YôlU3ËòǶè‡Ð½ƒs÷ªÂßNs‡+‹æëøS\áÓ‡¿.o£™ïÍàmLa¾ú0Ùhÿ[à;úÄýÙàí€ò ß`Ÿ\I±ð vý•Ó¼‘–ÆZ^ öþol_çÃáÌ·½ë)¼n}¹Ê'™,úìHÃ? ßoƒ÷Î4ý>ã=–”øù¿(MoÝßEX‘á…Í2R¨ïmc)æÍL¨*˜g¾ímS%ÜbÈ`‡AÅ ßËu·­·ÔBÏ„mÈ‘3–aB¡r%¸¶ÃBy%g@¨Y1h£ícf‹~l†—pÙß ×|fTµR…Ï_íI5¬Ðaûœ6¦…Î:Ÿ-}¾´+Ú@žçz&h|Ù41Ö¿Æ;ѯá¥÷^<ÇWs¯ó)1•îæSéž¾D:›îUb&‚Œ+ñ¾AÆ{5£«ÅïóN`ÜrÅæQa!§Ï`ÒÊ2sl{Þ*]X3Ø=ÖÂ5V´ÄÏöMDµºˆâ?{×z*ŠÃº{ø¹å™Œ…ŸÄŸk¨ë§²…ƒzee“勹a[øŸ[ø¶ó•‰oPˆ1X7e¾í]~ßïÍ|ƒãÜý¾”ºèwP‚Iigì ŠŽÌw¾W(†|”¸¿”˜ý'¼ˆÿË|ƒ#>ø:2ßàðŒ+­ÞËÖÂû"vÇ1˜g3½KŽõÃ~,JîU£cðŸÆ¦u>%ÜLdHÜÉ|?oóá)±yƹ$HëÄüØÈ ‡ƒÚ5,Ǫއ‡KJÏêP¡ŠÈÔ¡²Ôr·Ue ƒh«¦z7ÆÍ LYÍfrr\NÉsÞNÙþiÂÛš•>¨9×£ŠV(5“[´(³À wiýLœkUŽÞö{b­ËÑx7dëhB)µÜžG´Sb&§i|;>ãð¬}o&ü|0Üù-(q¸— ¾¡­=¿[g¥Å &Vm441¥w?Tâe lob_fÃíËLá¯öªÖÊ»ÛùÃJ6U›Xéì B,$¤™Ñ·º¬"µ:~TqqÖh?e‡íü2üåpñ‡ì»øC®î‡ww‡_Ž/é+~w‡»wÝ­Ìíë˜|JŸ´Æ­ó¯ÿ~ùùLJË7Çê¤úËæ¨úŽpX“²Z8ÝÊ|fݯ^N‰Ñ”R}}`öù¶’™5îÞÝþk¹cz~øäðýýÍãñðxwx|s|8N ·´¼(v.èÌûÓÜä~‡¬µï¡mû¤…ä•/>N¿ßÜÞ¶öwiǤV?aK#3·åAfgçe׃šwc&tÄó® ãàè‘ÑfŽÑV]ï}-B8S²¿,âXiûv!'™/%N q_Ú>X• UÚ¾}š@†üiÛ¥Ò~jÜÃY¥…q;G‡ÃJ ãî‡Â".³o¿P—x×ra|˜È+5xŠÉÒUƒ¥Ç=¯Ì8ø†‹`f*’”TbjÜ•ô.ǧûÕ”“`Øm;JëŒ¦Ê Ûu” ÑpƤ*¿ˆÃØTl*¯Å”1¨5îÙŸ¬8s­¾Ã×-¢è‘ZÍi­d9Vƒ·Z°©È׆—]V޽팮‚‘“|ÿ£/êTñ?X1Wj:8JÏݘÐDú™½©ân †Fy>FWèÚ†¡1Õd6XA[Áçü`û´ÎèÔ\N1^ø)÷XV•»K#®;öuF<13UV 1…(«¸™3I9ÿ Ø°ÖŸp¾ÅÏkN™DµvZ_¡`Û§ŽÉ¹äãx5GmO’0OtàxZ¹­ò—<•Û_|ñp>,·?¿<ûæìÿ`i‰“ endstream endobj 58 0 obj 6814 endobj 59 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F1 12 0 R /F2 21 0 R >> /XObject << /I5 55 0 R >> >> endobj 60 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 61 0 obj << /Type /Page /Parent 1 0 R /Resources 68 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 62 0 R 66 0 R ] /Annots [ 69 0 R ] >> endobj 62 0 obj << /Length 63 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 63 0 obj 55 endobj 64 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 65 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 65 0 obj 69 endobj 66 0 obj << /Length 67 0 R /Filter /FlateDecode >> stream xœ½]Y“]·~ï_q«æEžJ$nàâ·Èñx\ålRW–§\éJî‰Ômw··ùõCðl Ï%ˆÛ²Wì+êã.8ß^h8¨üöå?¯Þ_<ûÜ~{ñ—üÏóË‹gÿeF¹x¸|s¡žª¤c(Àß.Ð)ªCpêpùþ"¥§Q.ÿïbªñÅÅ“?}s¼ùäöîxÿÑåÿVmi¥øäÐþÅÉNœòžt’\©ûòÏŸþpuÿp¼;`‡—ß_]¿¹~uõp}{óaÚaœ:´Ï4<3J9¶ñO//tTöR8xðîàwNjܲùp÷vþñâ3£ñm yKîè©r‹øá‡§·™Í¯ÍOoïÞ®c(½Îm@žå¸Œâ³üÿ·mß3k«ÂyIFoƒËŒ ¶ðáÅñûƒz*jœÖ}¥uuAf†M?2ÃhkÓrÆ3"lý<ÙMáéJ1¤†ù~šèÛ72EmUÅ¡Tä‰V"ÒÆ¦8IQ˜æ¯Ì›Zkµ¦Èp´1–áL˜„ƒ^F3Í—}j¿¿z¸:<Ü]ÝÜ¿¿~È}½½.šõ?—?ŠZEZ^hù»¬ªQa­úäŸm½,®<úöBÈ3” ÞO¿îðn’~ú»`Þ]|}aœ Kò{FȲL¯5þöŸ‡ÒQðˆœõ4™ä²xæÿêl1&õÞfÉ}“Íé6oÔcš¨tWì²CX[™°U\žç9þ–Óœ >赇òp>#´2Ka’%ýñX¶ƒqy„Ƭ;X˜$».tKaa{.D¶7¥J©:—¬Ÿªû¹òÌØ7ë̯µá¸ì:S¡WÙÎ/ÅуÝVºŠÚ, ¹d–…mdYDhá"¤pn´©ÿí¢y2…py†… ¿³*Ä\cú=¡&… ¿—›B”¢I!Ü#¢4ñk(DÌ2k¬_ÅÕV ñ»W¯Ž÷g¹)§42ÂZµ¬nªýâÙßDQ¬OžNmˆ˜—Bdq^'iiô ü¥Q?wÔHõwXæì\¦UZGQäo?àBE “P:"ÔÓ4ÓÂE¢HáÜhSj— ¡öV¯‚L#fê©Æô{BMÝÒßK "ÔX4 µ¬Pc“PŸÝÄyV>«§˜–õ*¡þãÕûãyÐyF ›™Y¤MéáÉâŒ$Í H%»XX$ZU¥¹§hlÔϵMÿn‘èRV$ZQáÛ ¸P¡Ý$‘ž–¢¡E·lá"­eý²T#ŠŒlnâ¸+,ZR=/>¥pZ|lE@3Ö©´ÖɽÀíåÁ)&)˜ÎûJà.¯þõîxÂ=Õ’ËÖqiiUè âTùãɇ½l}Øs4 €Y£V PzŽq^½ûîøñAý¨æÿ‰W“» Ùé_œãò‡©{LœtË÷Õó¸ ­~Ú-?‹1ŸòÉe‰¿:¾§Þp_wqFeiÅK5Gu'Ñ:Ä ýû>ÎjÒêƒCÝYp}œÕ´Ç2pE¿èãB–ášöÓ8 WÜ+½¨½äI¿×]œU†Ìá÷}œÖm¿§¤| Y6³mkåNVÇ¢G=×!šQiý¨˜m6i£4p?˜b‹á@¼ÂÂÛ>N;"°ïØ×§Y}º¦#õl’­ˆ2GG2R\ç©9xÝÇ+R\uQƒ¿XqAi'ip/²žU®UcˆñøWgiï#Žæ@CÄì½éF­:¸à$œ„ö›>.PÉ¿ïãªå}—‚’-¯ŒHν ¢¹öÚ´r~g´j$œ™=o½Qãth¸Íµ TÚš¼éxv´ÎÐq½’H†OÐÊùéWeIï?öqÚ¶3ÎŒ2{è¢y&Do²ÁJ½ Î wƽɱáö¬ˆÛdôFê´<q;Qíþk•7.Fá:™%ú œÖZ™#ì´V«®S¶þ+®?’¼°› Ǹ¢*»++nä§í҆ÆäxxÅ1®£¥TÃ8ÌÙu”´ŠPÓ׊ìƆŽê¥dE÷½.mjzçZM$3d•%<ê[W‹çB58IVt?°ÖEQïŽÎx_ã²ÛHúíÛ‹;P’ö<•s†´GnG%’–•\7tpþªR¤wÆW ê=û÷Z"çÎXÒï[Æ›7IÂg£n¤£LØÐý5ÅAÙ´âõK¸ŒŒÛ!¹pÉXÑ(ShmçwkjÏDkh*ó}ãƒÜ"îS®èOÏÞíoÙ€w¤½þ¶OÚûb4ÊdÄ~@J-í§½G•DC¼¦³Êx؆®h}Ë[ÕÎ{FD‡£«ÄÈyÒû—O×^‹„Þ{ºœ<åB9!µí±¡B’MN¢ ù›‘³©¼’(DÐt!ï+D¨¦¼¯ÁQóõãÚ;ÒÞÿ0.;UìÄà¨Ê|̸öÔ ´ŒkO]‚]{’9ŒJ¥FÁ˜V£¶­{{gdË~4tÙ'Á¡ÐÁG—Wøüÿ¸áF›A¹K³¡ã¸[Ò{?ø5HA{ÆÇ]j~3¢Ð]óÈÀä³øÁh<º+ nx-¡©‚™dM}I5x±¦†sȵ"c½É”Å#¹zV{ÜZ4ÃÖ)¾u±Î“1Æ¡÷„¾¾u±eÅŒ/("#ëbKh¶ èãRÉÜf_‰ôÎ9ô!58ÎÅ4JI$Ðáf’X®^Vh•s‰ŒµïZ9ðÄæ0›êÞÉ`‚¼»âú6ÚEM$²¿µëð “`Ai-á (ïD8Mµ±¿†€¦|…`½Qã44ÜæZºÊ0Ûî%¼ÐTÂëñúÑ%¹M„D3T6é’›}/‘\¯}’pÇ:7œ³o‰öaï¨þsÎ~´ ½C»ïX<ÛÔÓÙæ—=•90¾DÕ[¥öçŒcC3çÁ—mÍÝ߯ JÊû+À[,‚™Î¾»’HN(š‚ö,õò:œn}ƒ΋ô/ÇÀHçwû ZÉB°"Ù ‘®ßÌÁD¢ëw?ðÎþ¾ÈD­d=óH½(ÔŒùmÆõý9ž=¸ùBŒ~Š÷—sýwÇûûÃíÝáø­¨Αf&ýúŽñmÑ£™áÜ”€ÛV näJ ç—(eÁ¢«èú£Õ:l83jµXßÝ÷–¬2Væ~JÑÉ1í¶èä‚ë[}[¢™7Š}ò2¿M?³‹`ƒ#ÔôWZ[¢ï§×ù(’Ò•ƒ¢ñ(¡£͸³Q$óÙá%3Äxžà íà à²w% =š ¢Ÿ:ÕZÁ^&¡ce.TTœg6H ¥f¸9l]pðXº¶ ÿÓ¶v†ë½²u}›ÁZ‰fBT¡¡½ƒKª‘ñæ|ŠN®OÙ#µÛä5Õ»¡7e¨è{!Ù/%³Å\ÜptU`üfP"Ùó@õ“i/Iè66ÒÔÁ%-™wƒkè`}Wj•J9QïÙ̸Fר (AI$(àÝÆZ7¸Vó"šÊž€&ˆZ¢™Áœ1ÊE+vˆ29ɈllTÔSÍPÔ”&ßÇj¹Ýìä⻀ËêBù¿®îs¸üÑ®n^çÿÚÃÕÝñpsûpøîþøºÞßnovïjÏ»bÞy f}НIÊ£PwøäöæáîöÝÔùÃÕÃw÷äeè'—/¾Ø½Ö f{´ °=Ú„°=Ô¬~}´9ט~‡í¡fõv6Kч=Ú,Mü*ÏyœŸÖÅË_èѦ {Pësc–W›ZÔ€Uºj ÔÞ½¦ަlG/=ƒçµŽ}lÏÉ«s{ÎîtÚê˜Göì\:¿gð‰©#}Ë¥ Í8÷à%oÑÇíâ6ü:ºôÈÑùP|¹•øÈVÞ[[ l%:€ŠS~Òÿ±¬z¶H;Ù1¹~)`ìî}ð¾°Ø3c«×гá3v÷@y‚f©]J-žE´­Z|±Z Ýôœx* 1í¡q…:“ýâꬎS!^AYKc1ä 4F3Õmd_9`I!Ä=´lŶ­zggZ#Þ–K3[ýLÔûV#n„´ˆ f4žm/Å ¾¶Ù“…óÄžzø=-3ÍÃï¶pžB\ÓHá4Y5rž–¦0.+)©>³ºFÎL­ göÕÕgFÕÈ™øÓÔ!D¿,þw‰çŸþ.˜mñŸj”ß3ª°‡þ^kÅ?Ìï¤ÿ–·4ñk,þ±ØR¿ºa?ÿu³!ƒdÉ¥–Ǭøpni…<¼=s7Œ×4‰†ËÓG>Ì/}*ýB GôŒ~†}^g‘†sÐ.[Ñ©GÉÖºŒ†9#}p^ wÎ3=þÁyi´óà¼ú»ùÁù4Ø1ò2ˆC]”´â¬š{sy™\K‹ÅÇÚk¢’¹¨©ÑŠ·µ§¥¡ª=Õµ]&*ÌËØV'ƒLF>…Âù ·1ß­¥ÓbSõ=Õ}ƒ·°¯=­JUí¹¨®í1¯T)Ä‹BKé´|U#Ÿ‹ê‘ƒnFÛ÷´ÎU}ÏEuß÷ÝçB»±mZw:qÃWög Ã…§ÉÐ.RäË‚ìká¨Ëœ×…qY[Iõe†*äÂøªpágU}aS…œ‰oèüvq²°¸x©mqèoĬîÀ\cú=¡&w€þ^jlî@)ú°|5¥‰_%SIP‘Ö¤w?wjƒ½†Toû`^ƒ»ï»ýó3—ò)½ÆÚøœ²ïw/_~`»)¯‹¤Ý¼˜•› Ÿ~°ƒ/¦Ê_ìF{º¶Wa­½tüü±û *ÎE3ç{øêŸ~öNE 3¾_¢;ŽHŽÞÖ:'!õ<ÀÔ„M¹ç>ûÓWÏ_þã}ëü/&ÊQ7OòÉÿîÅW_|úG‘[R¢”Ö-)…;·Ä«9ûÐãÜ’ÒhÇ-©þnvK¦A´nÉ4ˆC]„ÙH·¤îÜ’R»vKvµÑ-ÙÕ.KT]{.ªk·¤îÜ’zäsÖnÜ’™ù[R÷=Õ}·dW»¬Žuí¹¨®]Ü’R¸sKê‘ÏEõÈ‹[²ë»¬·ußsQÝwqKæÂÖ-Ù èÄ ¨¢÷©ÔÌiƒ[8-åºÙ©²ËÚìrœ.4sÞ#º§55ÚîiM {³KÒªlt•ÂÝFWÛÿTØÖ ¥»Ý¯¶þTØÔ/[b¥p·%ÖŽ*lëã>ÙD»OÖö?6ü+›g»ú‹èÂnó§í¿ì¨•ÂÝŽZ;þ©°©_¶Ùvý/â[õ?6ã/{o¥p¿÷¶“Õ©´ÁÉBIÞ+ƒÇs_­0Ê{eRZ[ªòÝŽ«f©¤ƒ˜Ÿ«cº—õ1Ý9>bç¬ÒÇŸ)ùÕ>á”$ùU°[÷ÆÖnäÑ`Þ¬èß‹Õ1OôŠÝä0Å‚/h ǼˆA§cÅ1oWŒÖn˜¥ͼœqN‹zwÉ4Ts½{åE­¢­’Ó’kЧqч ÇeÉ-™I«¡}xkPïæ©ƒ‹"j¬BÍW}œ¥Ôô7XG%ƒM @䲟XÂâ"$_Ðd®‡÷Scq'¹ ‘4›¡†yv¯’ÝpÌ=Ål4$\t&Ya^%á] ±&8²ÞñêÊŠcÞyư·.Œ—Ñ9‰ºDí4s“Q%i´²ªAS;ÁÜßÄ2;‘V4>}£Yì» :‡\Ú.ª‡ÜL#£&PÉeîVÖ¶ÿÌ+j™†*d|^»(Ñ|/øVscÑP{ÌŒÏRzûƒÀ$ÃQ>ÿÔÇíwøþÞÂÅþÍhásß4Rîpïù­—Û± ‚‘ÈNÀ½df•÷ü‚9 6Ь|p!œA×­ÔÁy'áy2+¢;Ã7  ¡é$.g"ù˜|V0ʨ©?ÜÏ5šöÖÊŸåï7zû§JÉ‚ëK“N(% ®Ï’áVÐ^vàÓ†c²¼ô7ÜÐ×¶:H¨66ª9Oß‘Þû«{ÙæYqLb¯’{Áq¯¢0®p;xÒï0A dn˜WæJª¹”^ÊK¸h5êîx®­qªé—óŠñC1’ÞKLp­â¡¾@‚¬‡$‘s¨õgÒbFI{ø²MÂK¼VSëÍIœSTÒ¿_¬®¸á[$N27Î*hô†õô=áåKÆÓ÷±Á±<µXL\¨¼1œŠQKl†KT¹<FdÓ@SK.MÕVBjßF/N²1Ô"Êʤš™}ÿ$±à­ñ+(‘¦¾âð(z+‘#HtefbŽ‚¤_y Äšé ]!û{ay¡"søÓ¨UG5މSÀ´þ4ÎëÖr½ʾ]ðÑ“VÿÌøíÐþùÐoOd>™7õ:ùíÇÁÛØÄÓ¸{yõ´˜x.)B/óö*‘2œL¿BéW¨<ß‘O’ùD±DgcÉÍž½—PS^SZù„ž}ò£Weºx ®Ï¯òíŠÇø¤˜ŠwÅ1>®Ö¤_Æ׉ôÛÏ:bŠ/±à¸d½64ôr¾pÙÃ_ÐL€WjjØ]y%£=D-™C­ÍMÒ^2×&¡ ÷kñ¸\Àó¼H¹­=¶ìH,h.#B"­þt†ndï]Iøoñk@úðñ˜„_˜MF‚‹Tט˜%RéìëZÈøÞŽ<]L̺¢û#ID“˜LN“öú#PÍìgŒtÕ¬ôsº¹€ÞÁ‚ûŒñÄpûOŒ'Ng¯jewgÁ=g¼eEèíû#P|¬÷ÆOvd|£\rà•Èžç IdÏ!Ðud¸CŸ¼•Høt}BjW½¦zÝ?ó&´kÅ8q”¢C¿•Õ)>Õ˜ÇT»ztp!ˆp”Änù@× &ÓAH"û–E%ŠúÅw bY ˜OGÀÅ€éžB0ÞH¨ –Ê·ƒžZŠ£oæIz÷ÊIæ&x/ãN 2ÁÄ år,c!ÑYa¸¢H£ò­,rÙ íû”…O'í‡ÌŽŒñô•›0+Žû”…ÓŽñ‹qg\ОQHÞ‚ãüçõ®8æN úÏ+nà?¯8æãÎzGgoOêVtÿÞ‘ñV5³ÂúÙ‘Œaà?Kx„™5$sƒþs=7ìí*Œ¿kd’a •ŒaÆ^—ãoI«î,š<¥‰û …!4qûÞ!H¤ÓF*íÌMäÈŒ3»¹JyI¿NQ+À|ÊMGÒï0O™Õ-Ï;¸d%\t΄;å“+®îè¼± wØôäDÔD/šk‡wÑTC¹U>n0¯ª@fA%×/ÀLÕª!}=G­@ÿÜ€ZJ.7®q™ÌT-á6^pÛ À¯¿ z÷øé¾zå£\"=ž$Jz·Tι ¹É‹pÎ'‰Dzô%Tã>¸`ó~ÇÓ¸@5kxVèêÉx ˜!G ‘ASF†Ú¾¾å 6¶´}ÀਦËb¾Bnx-’•à“–ÌY^ E+ZˆÖKd%T~-Ó/~¢M<[QS/³ïëDÌý·âÎÙÛ›üv›–o`Ï,¸»~¸¾y[^¼zw¼ºÃ?`f±ÃõÍáåËæYÀ ‡÷—>– ö»ôc¼cÛý1öÞr~ÐÝþ„_ â}ìѬ¸ñÝþ¼­hînþ׊ãîögŸ}Åqwû³ž­¸ñÝ~Jw·?ZQï°£š½ÛŸíˆ¤U|‡*§)†Ô OãVßY8“¶šÉáÝ~ŒÔ%­b¤.‹‰­©aïéXç-D³á˜tÌ3.¡&/K"žGMúe>$ˆw²$¸dã†ëßhvxr³âú/œ¦6c$çï!®hæÃÞœh”x'KÀmJ‹¨äEýú¤Î :Ș‹Tv†ž±ÚÙ·Ó8¼]'4ÐçЖÒÄD9ðÝpL̄稂™Lb(à%T3ÙP¡šÉa~èADur¤UæKy ¨ö @2‡^SífôÅÛù55ìÝТ±¥‰ËŽì½„—ÞSg¾RœH|¤ë 371¶’q‡›ÇbžMõÉc¬©¥Þ’·ÚKh –zLïΊV»Ôú3íáwxs<•1î¿éCÀ+މýp—aÅö¢£‚îŸkG| % &*AgßÎO&-ïšS˜›¨Ü}÷ÍÃáþúíÍÕ»Ãõýáõñêþþx÷€ ‘ß`â«Ã‹ãÕkürÇßrès<<ÜæØç§5Î%K~Ü“ä„Wìæ±š9SÌóŸ#jIQ‹¢–7ŽZ”ÛÐ\Ô¤wöE²Úp\Ԣ̆G-&lh.j1ZÔ» ¶¡š=“ ^Ô*Þà“ÓÀ5èÓ¸Hiç^$k%šÉbÇÜ0jQ^KZµZ‰|X¼ëQSÃÞ€r¤ÕþM뀴ڿAbÒþ|Ô;~ÉN0ïy±9C–-ž æÝ¦¤$óî•eîÕ±r™/ok+r—§HÂ#g#l8æœ ïî¸ã0W”œOm'á~VÍK6Þñ^¢.ÿ[¢ ¨ }tíÈ|2çxD0C%¿¿@޳CÈGé"i•ù45à÷²&¼"r<]‡a^HD‰˜¯ 'Ez—}¢Õ+Õ±qMDÿj_¹èµâúŸW-½VÜ?û8kÉä~ù¤R5ü.Ž£hîþWÉ`y¡¼â†ç2шÖ0©%e^[$å0£€À’íE^F0T4¸oRÑ`b ­ÈQS­´}5 "O,ûÉgxb!(í!ˆÖÎôμEÁ¯ª ڋʈ<†ò:bÅ}/2 ‘®ß9®0%Ýç“çÈítZR%•Úƒë\+ž}Q2ì-Àþ⚇ðýÈ?ÆoÉmpÆ¡ÅLn‰MlEÒðâ`3¯Š1>Ø€ƒa2wß‚±çŒ·ë6xÿUŽIÉŠFj•ó"Ú-¾sm€ì!ˆÒÎÝñª&u(8«œÉ`TOjëÛæ¥µ?6V0ZÆY<žnd€’H ,>“hSÞŸÁY‡îãg^#XM9Ë<7vI£(¬œUH¦¶VH ‘ ‘Ž”»€Q4©.)Ù,9 ¾%-‚ª¸É¤ÐÁV¹s•¬~J£/àRå -ºO&‰*à¡U#PãÛQø]ׯ¬Ž+OI퇅÷K7`?. ®Z¶úap•Íd"Õ›7:dÞцûûÚÅ÷߀£í+ʸû]AfBòA$hQU ÜhC0êJ͹»`V¶E“v´ŸsÊ •Ë«ÏåœÐ5-ŸO/×ÅŽ¯sxøúxøÃËçxÜòpwusÿþúááøúÙÝñÕñúû¼¹¾»8|ù䇯¯_}—ËðnÙ¥p·ÄÇz¥÷¿ËêFc¶º9FòÓ·až½*¥*îñ£ú¦x [ßóÕzД¹võp8ë+ôZaþ£e¦Ñ¼>~s¼y}¸½)Ó°$™Ï“¸7*Ú5—ÇD™Ä=XŠtÞ™F*8Ñö;>òo‘d¢ìl”é’s–r“I…Wê7 sÖW6šÜtAS;2Ú¾qQƒŒ$|º$7.%ªtÌõ9@¤tåm’„S@,à)XÚY' ĈsP­}ô>‘îf›U惪"Œqßµ“- Þ˜(â©·•=fŽ¿œÞéûi (ÕŠ2{¬Hß}¨¸9Š|ªœæp-%-b~Pΰxå“z’U$H5*ÇJ¤£“qˆZtÑ‹Ä$@T­˜°7ÃÀŠ„%Äj¤Ü[»ÀI`TæœYÊ!ˆÄ/šŠ$$’úÐø­¥Ëé0bz9ÿêÝ¿¿úæêõW·£g/íÉÀ§—¹ø)ù “ endstream endobj 67 0 obj 7928 endobj 68 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F2 21 0 R >> /XObject << /I6 64 0 R >> >> endobj 69 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 70 0 obj << /Type /Page /Parent 1 0 R /Resources 77 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 71 0 R 75 0 R ] /Annots [ 78 0 R ] >> endobj 71 0 obj << /Length 72 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 72 0 obj 55 endobj 73 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 74 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 74 0 obj 69 endobj 75 0 obj << /Length 76 0 R /Filter /FlateDecode >> stream xœ½=mo&5’ßó+Zº/Üé&ø­Ê6Ò}XŽcµËîÎÌ-ZN(džÌdÉ$îûþ﫲û¥ºŸÇîÊ é8ÕåzwÙ]¶8³0ú×bùqùöìã/ãðÙÝÙ_éßO_ž}üŸnp&¤áåÕ™97Ù¦XŸM¿ØœÌƒ^¾=Ëù<ÙáåÿÕ7þxöÑŸ¿?Üþþîþðð¯/ÿ±ÂeaÀ†íNv ¢è$‡òî‹¿|9üéâáñp?pËï—×W×—×w·Öa¦Ú¡ÿØÂÇΘÐEþùË3›Œbކ‡ûÃuÄbî_Ï¿ÐÉ79¬ƒŒL utnÂJÄïÞ½;¿#1_²˜Ïïî_Ï4”Ñ -§‰Š/è¿×Û¾Gf¬J½dgâHPÑ9<‰~ÃM¯wŸOoÛp Ó»‡´µºÓp(­ý® !.pß´á)~߆˸‹&\0NHñUÎ:§¡/8»•_G+ÁËÞÛR Aç7!HÛy݆i;·m8”žÐ‘btBÚ7{\'Uܤ#ë`#5tÓ‹*Ë€Uümû+8+tsÙË*¿Ÿ¶~ÝH>¢ÛXnO:(5ÔöCˆÎl,£‡5E¯’Q–½·yG#{ß‹ihQHઠçœJãèMÒXz´*¸`ƒÆÎ1 j¼‘R)³ñîžt¢ì½mGȹ¾"bÊV[0'Ðë0ZÛvÛ꺇Շ°Ñx:èò‡¨òôˆ²÷¶}DÌBRߵᢌƒí±'¦$¼±=6’“Æ’‘ü¶-#Œ†¾äÀltý¤Œ=RÀëKÞfÎ…'¸¶ämfÎ&¸¶Õ9ª~õ¢ßïvspŽrt'_õl\/‚ʶg:¢ßvœqèE¿mûpÑ&´]ŒBÚ{y²Ë4ºñÆnîw³o0*¬Ž}w‚ëdé. ™w²tŸE¿í(ì¤+nNÕü|‚{×É»9;Ø·_2·}[ô1§ '4N¾™1k$ŒôжDƒµ°¡¤—kº$ènÏ{¥ây…‚F^ iì- ½wæ1Įۉ<«ñÝà£ÛÁHoÓÖnå×Ë8Á;U£&RÎl5Q#EÀ°oz\—q\ÁÍJ‡{ó4ÆohhÀ*ª£õIã¯h³ ²=6¢‹Aã×”UgM¤Ä mgoÞƒèƒÆ)\¦eô°fkT2ZåmÞã*ÏØÍ™ÖÞ+¢“cOÛÞbYÜ÷Æ,ªðÜÊò4 Ûxmë¼Æ>â*WlG¶˜åxÓŽÉ}ñ÷-Š÷X‹wËrÿG_w2q¸¶Í;ƒqëäÌÖæ®³ÆkiÄÐàãùé ×É­½ôíÙ¼ Ñ,ÐvWñ„¸»=¬Éé$•’Tç»F–½w2SㄤöFAoQHªý]ƒŠ êÝØpÝë#ãšÖ\6YzšÚcµçU=…WxL*z ñOyŠA…5K*;™½‘>¹›Ù[´šÞMÎ52 4MÕÈ @Ȫ1 @ʨ³ÂÒÛsWàò…åB¬âš+#Žœ©uƒ–Ò…? s*;Ç'Eh\EèÎ*7Ü÷cg^¡ËGuùFû:2O2ší~Ȉšy–¯ðÚȳ|u„Ž«±¶Ó»7¨‘eô2jÛy䯠 YFÛ ã4:Ño;BGL^c¹1â–ßžSJ*®sTym2OèÍgœ´Œ¶ý&OgÊ@Ês\,Ó‡‹ïÞ^<^_^ÜÜü2\Þ.‹+®˜{|sï/n®è—«ëÛë‡7‡WçÃ×÷××·¯ ùãÁ\? ß^?o.†Û»ápuu¸||úÜÈ*¨÷žoæû«¦|l»Àý¹3!mÏpíqÖÙì¸Ï;ó #ð}²;ßðúwm8Ñ{g埣ä®[ÇãtgŽÇ_,g¸NO¢9ö ×ù.’£è·;#ºîdùlT3\·ÒÇiø ÐÈůtÝ¡³šn·n)dTI‡kJf¸vüñ„í´× }”ÒnÛ˜QôÛ±i¶"¸ng>cÔðxÌTð¬õ+ì~¯¶Ø™Õx)ÎœŠ¦?ëõRF¿ïÌ1¤vfÉ|Ï;³+ðýq/Ï64›UøXôÿ@'hÖ5–>[B@ÐèÀªâ Œ;¹ð Qíÿ4»ˆ*nZEBÁugEÞ„¬ñkšW¨Æ"¤!xãÿ½ÌÙƒð¯öL<Á¿ë_²D^¡ShœÀÒÆ‚z½');<娗¢‘šìäÅÖDÆ£“Òé}׈¨—y 2R¶¿˜G]ï¼æ¦ˆcÔxwŒNUh˜ôuf5)n£Y/¿7^P¹·ÂœlΞJ¥ÏZãOʧ)‚îô`‹-Opíhc‹-Op{¶â¬ú‹6œ vëdó^RÙþzòÓNÞ]­îE'ïN‚¾¿ïq¼ygO@öfë| ÉÉmtØË/M ¬ÞJ*÷¾Ðz'%ÐÉÁéyJÌôvä¹Rs†nçQ“à©Gù˜…DÛy”ÏFP¹—Gƒkg¥ØzØð~Ž× f¸Nõ¹·N£ñ@S…®Wï£F×÷ªhø€¨“ ¡½Ýtþ~­ÐuHAÙïRQ[d©zŸ¡;Uê\õ>ÃuêĹ‚gí§á|ºiç‘56ŒÆÆ‚à·=£Ñ5D+´×[c7*[Þ‹¤á7[«Ñ¥þ0¨£#å̪ޱddj¬^ʼSãsÔX8†ü Ç’—íÇ\Ê™Æ1À׎¹”- |{17ZIe'Ë´Y«âjœkûCôÒÿ{µ;Nø¯Þ¨Æ×XV | Ýw×Ä£ôžö—±˜2j¢@ÌÙh¸N¼wSÙ$‹Bæí¼ŠR^sÒΕÙr܉ê¥.~†ëÔfp-á שü69.pj®œá:+°. >:+º\#8ÃíÍáiˆ t{æç¸Šs†ëäµÑn:•0ÂFÚýz÷¤ÂšÙJöuèì}7SµR“íçÙ3\{Æã¹bi†ëìãämá3\{Æã1 Ý´g<>Fa¹{3Ÿ½ÀÚöÌ`¼×XF(s˜•»•+Yåµ4åT¶W¶Í´5Þ‚wSŠ%úí俼ª_DÜxíi¸(-\¬Köd™]Ti(KYžwòd‰¯³Öj­Ùàë֥بñqp2¾µ#ÂÞö*ø(XÛ5– jô1ÌÉ  {¹hZˆíeê1f•‰}'+÷µxãtçÛ<ïÁSPéùlš®SÇìyÞ‘wwŒx>Qh†kG_VòîNA×/ò cVîTñÉ*;kÏIÚDGŠY°¢.ÚzCùšwwª'í¼Sçà¥åvê˜ùd!…nBH*]S*tÝŽ¡|›àzuѼ>´o³!Ðh9”5¿9$>À„'xt9DÁ ¬¢^g=7£zQ@·w­âÖ™gPéLÂhlJMBæ%óÜï¾Ò³)PÙ:—4ZAïœ>>á*:vrXª±Ñ'}|¢ ½ÊÒÊy# ›@ÞO4ÃýÜÎ Ä ×Ý6©¼;:¯²Èè­*ªPn éPøzë´Ñk<¡V5ìK;F£ã·T+Lp{5F1ÕØ3¨ü&9·©¤Új¤˜¬{uR:훺â;ÁýòÔl8Ø”ÇlxÜýùîúñM)‹®{2Káó\3}ûjx8\Þݾºùe(€èáðÈÕÒ÷«ºêó-9›JilÌý5›iî?ÃõV¦cZà:ù.ïœáöFGG‰ì½wN ”KÏÐذÀu꘡¤9f O§ábøºç µ½ÍeãT2çŸÖüvWœ­€îÕ{à–›n½GN*¬ž`ž£ì Ý9m²JãQPÙ; …Wtæ9 ¢ª_®ÜQh2ë5LBÜÊ÷Fà$×í9ràò\‡•¿v2ï•¿v2yÙÁÇû…þ¢ìw·2<¡ŽÊlqccݺTÅ àݶ žÀèý—½Þ}F&!`ÖØ/ð×f…ß•&sÖØ9ðA ÝмT|ð7AuD¥Y‡*ª õB:{gè¡ *žÏµTŒà¸òÚý•n' Ûßý¦H Ü_:³/4þå^ïIZñŸ:s /;Y=W@+ìˆfV#sšu¨FfšuܼR¡q@B_¡O²¨·&†7w·¿ð¤æa yOȨЃµôu êÛëÇGš?]ßw·bb4ü÷÷†JèåÅíðíá)„ZT¿œÆ_誤ž!zuÅZˆTŒÁ¯ŒaøÁülìðOº’íNèˆàPµf™õ_ƒÐ Ø%Ô=Ð •Wtô+PŠvœéÿ³å¥*,¾žù$®rXñu¼ºìfTË­WzYù(ߟî„pÊî³Íòu6ŽÉ~ Ic¸M›0O²‰ ä3)ù$#¯¿Ÿ'c¸ss /¿Σ™¯éG Ãg×?]¿:Ü÷‡××å²™ÿùìË¿}ùÙçÏÿWØkËç/Ï~8³\v öíøÌ3›z]Ëê™anÎÞœ9OS°ñú\¡\ð°~žÞøú߆[ÑQ9ªÊ–[hÌyv\‡À?-Ÿ—Wî£9j|þÅÙÕÙ_àß Åê²³c{™ïÌ8YuZ_sóéõãð/OI#F;÷P~)+åÀŠõ8íí'Ÿâ8Ǩ‘2¥5_G? ŸìßóÂ;ö£'Oá ˆPoyi4²F¹±lm[«ê7 åгÒè2.Íp ,ò͉/æÙžl¬Ä²™PËh%L˜Úeãd§¢æF¿4Öž¶H'ÿAÊÝ'ÿὓÏÈg†Yü§¾QŸ+T¥E>Ooÿá¦ê?ð¾þÃ(ªÿ<Å“ü'9NìÍl‚ëK~wyyxx˜Ãã¸"¬Ã79Ä"Þ‘qÍÍP„ãÔõ`'|ŽïŸˆ1–¸ºÜ@¤ÃO¹E… ›ßüµÎÍ8Zòa¦Vz7²Ž­Yµz[ZÍS•V Ÿ‘Ʊ£IW"fÇ™‚Oãù8™8›¨€Ñ$I†Ãº‰ÏÜ´.LÇëd¾'ÆHÿ9â· TÂd3ÁÔeã䢿F¿4Ž=mNžšÈÎFO%ÛÄÉ;åsY<µ¾QžG¨B‹|žßžÊM詌â7ñTRx2~β,®<ì«‹·‡é4šø¸Ï1äñZ¶‡ÃýO‡£ ãÇ:´käõóÙ˜éü°ìÏÛú!7û!ø|€2Ò–Ê¿M~Èm'ü°”­ý!ü°¾~ä‡Gü! Y¹Li-f¾\'wZg…aì[?>Õ¸EZr†Òx"g(´nÁG‰Ä–ÙÒºÅp²ñØ¥Žm28ˆ»2øÙ£^^|{s818…‰?N˜&ãºW#Úu•â“£į° ”–å&˜½ûqøÛÅ͇OÊ4͘+úçÃfJÕ®lí<¶îØÿ?ˆ·ìw7Zö÷®÷É›ìt†Û=º€KfèŸÚpžf3\磳O¢÷Î_¼ùz†k—ß9ðî ÜD Ñ3toKˆÞw?÷³kÏÐÝ‹ýœFCž?ƒ*¨ô|¤þ ·û)ÛaíÏóž·Çkzç£/×’oÀå¬Ñ¸çƒRf¸½@¥÷."Iñ 2âå…&ƒ1*MÞШ¶ÎÀÛt*³f¸Î‡j¾èG¡!¥…ýІã >Y6fiú!o¼ì4\ Â";¥ÇYFÊÝÄÖníí4œ3*KªH ^ÚyïHicú‘†ƒd6VÓ=žËûºSÂÊSìµÍö°òv9…¡ñª± yÛ»Ú¿Ðåm,8 ç¥ÿÒ† ¨Ãºñ!oDzÓp…¿Ýãš/Qxæ,4Þ¹^ÎÐXF´AÕotNô»wÉY 2é»%cF{QD9†v.Á‹2æv¸IV•ßPò®OÃñU/ úÊöªuTé¸5™œŒÐO¾Z/—òñwŽš¿>Ü]òu:Wâ’…éý)aîÔ<òýjyÿîAç9\)î`ö,µ·M:°Y…âÂT/E/¨º÷Ä”æžjæ5÷T£ ²Sýgœyï|Û5º)wmäÕý–ÝÊL2ïì)+Ãíþ­™ž×Õóþ¡”Î&U¿ x7¬ù^½K·Ú¯3å= » FzEïŽ<çôvœ´£ÎN0‚ÊNZ‚ÊËŸ!3Ãuî´ƒŒª~1›M¿Ýó¸rÔxcà=B ; YJ§wÿ´Á½†ã`:ÃõnÞË ‘"8)ÞN0Éo/Ũ¢tÖB.»'*ðɧ3t{±¥ÜP­ðÈ’›ý›§¥;·I8iáDÑ¥ ±EäîŠHŽÁ ]wö«)}[~»;¼ä8×¹—;Ê‘¡CeòÛhv.[!Åöô8òî E<‰Ö¨¤mÚÆúÓpNæ*Ô´,ìLp{Óã46Aæ*{ ,ånj…×–»©g¸NúÎg|(Æ„˜=j¢T22“ëí“™\§^Óer§áœÛ„'(í8Ÿcë ûÅååÝý+¾¶¢\Zq®înnîÞqÃá‡/¯ïn?Ùâ×ÔêüpVWø-¥‰|õ± Y—oÏxÃH<§”§<Ý{ÎåÎŽëÞ\ægyeÜ™sšiâ9å&—gÖÓTÿyXž‘Žèÿ”^žÑO¾=ÝñkÏ,9–³õÑeú«7çèèÞtã΃§G²mêø™¥ÈsyVž«B>§ŸÏøÈöàë#ŸC‘¹KdL¡öÏ›Ç ÓO=J•™hê—;sxné=2\ó˜ËêŽþBï\áîÏø>»T@-T=€ó¶žZÌ3·œÄ17™ µ¡J*±H‚a³8/ÉòÇ]þ0»¨Àg¾+uVAå¹>DÖIºÊÆSº\¹|Ør-å|—³| ¼$s(?°tLžÊUŽI#‰_ ö,SNzõüé¡ÐX»Àʧ—g¢+Ï¡èÙ¦Ânà¿8Ïd88w,-W -°51ÇýØŠÖ™\Cô¬-Cr·å0üPÎ!d¡>ã]ȾªÒ`¥´°È÷?¥*ïÒ2Iñ æÑ˜H?ž©yÆ›RFi^Nb¤o‡Ð8³8¼;+ßX)œ[.¤ .¹ñ—›³gGU#ÅccîK¿žç² KÊüuÎôýíË>\^®Çlo^*«ÓKåÏ[¬qà— «–áVUÎï­XɪH«¬~ c幸€a_bAŠÐc±‰\ÄÎ6+yÆG-Ô§\48>3åå}Þ¦cªÒRõ†¢ž²;®j‚‘¦<HZÚó¨dCÉjuÑ¢¯32Wˆ×Ö0?³®Ï\>],“ÉÃvǾ]<‚4ÈöD}•'öÌG6'î‹Z¹´7Ô¿“±`}ŸƒÖ0BÁj…ôB{ÆbnÔ+·á§h‹¿ýD£äXBTb[±"â¯Ç¥5æù‰=azA«†¸¯tmEÎïK˜ q\9W ®ÌÕX‡P„cKœcp›¯Âeâ°°lk°¦÷'°ð+Çତ`¥ž™ •xÖ¸‰äòm¾<A|(Ä3Ê03_•®µ+œÃb+`l$Ì\[IÀ婈½¼Ã/c ÀŒëàA{TÔhW‰ èàw ™Å,ª^»0\$Ëãj¬e5}¾ò*ŒŸ‚TºsE²?•WHÖ, ã³Å ’ŠbÌœ­T#¾GšžX8ÓsæV¶ Î[ ê¸Äÿ_ˆj[‡oJÆþ}b¤Š/W¬#ÁV¶ð?òŠEä%LpñEy§øŒ¯¥:^} ¦\£øœ«c_n 'åÂòêǶòW|ÖO\Å™¿uÇg¾ø9”Ð`a Ä\ …9WŠ›B«qÈUòV&{+ù$ƒê|2TµÃ’¹ùªL.ò¨qd).Ũq"k¡¤]Œ/—cMùá¦<”Ò+ŸHÁõÓ×»ÑëãÚ–Ÿ5 Mâ¡ ß’ãø 1 ۬˷ü^äZ»œËÃMy@[1N?c­´«ùQ…¥‡ ë°ÂL?ËjŸ%°;Cz¹|ÒË®¡uÝΪ¦d™/ù¡›w Õ=ªwß3[Å2O·7/È-J5Ì”[0õãtäòæ;^ýY!0µlüÝ·ª÷éEæ8,û¢Æ3¿ò KÔΛV̸C‡7?†‡ÃÍáòQl“xñâýwHXJ[q*µ4qSµèæ›kG§·Æ_*`)vÛü2½µÔÖ¶+ ­8~«½Ä’]—šýª›%øÚ1KS¨éNɧÍG»wžX?ÊKQ3æRA6VÙ)7K˜M)&ô²pri•E’µUVIÎÚ†(+­ïÇñíuYéêoKÛš¸RlY[«-+†u¹é¶å–G"Ú´†µà<„׿mÑèQ+,­ÛšðcijsóÉÕ³sóQ¸³?¯~a0áÜõ­ñ— 8µúezK:7·}¨s3Žßj#±4ïùTìä âh<þ ¶r]&­fï´—cF÷›9jHßV‘×Ö£2rÖžÿ ‡g´BòõÇJòÚx\J^)Ù:7Ãn‹É' ÛjòŒWqÔ8²®'¯¾ùFn¿òn†>öîÓ­Œ‚^&¿uüÕuj‡ǶVüHœÌø5‡^Æærjv˜ÿJÿþ?5™< endstream endobj 76 0 obj 7305 endobj 77 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F1 12 0 R /F2 21 0 R >> /XObject << /I7 73 0 R >> >> endobj 78 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 79 0 obj << /Type /Page /Parent 1 0 R /Resources 86 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 80 0 R 84 0 R ] /Annots [ 87 0 R ] >> endobj 80 0 obj << /Length 81 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 81 0 obj 55 endobj 82 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 83 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 83 0 obj 69 endobj 84 0 obj << /Length 85 0 R /Filter /FlateDecode >> stream xœ¥ZYs#·~ç¯Àã:åhq5ð[â8®­r¯XɃ+µÅ•FZ&¹¦¸Rì_ŸÆ 9Ó@+ÖQBßt£ïFÏü¼0 4}›Ðÿ¹yX¼}ÕŸv‹éûËÅÛ?[eµjy·ÐW:™ˆ=ð÷§&E­Ðkµ|X¤tZþºîøañæoŸ»í·»}÷øÕòßg´ŒÖøFÍÿq‘‰×!0&É÷÷^ÿýúËêñÐíUæ¡®?w7ë»õÍê°ÞmCà ãÀн5ðÖjí«Ä¿[.LÔNaB xÔ¾[£¬fµ¿?^¼ÿ^¦ßhƒ2RÈ{!FWÚŸ©øùùùjGj¾Éj¾ÚíïÇ=ô7C4€¬O»øž~ï缌T…vIÖL›#E¡ëõð¾{RúJD¼1gòõB¾×ôHRØpA ãÔ†-žÄi[#L|í›"¦™òÃ`èÝLCÑ8}¦¡ÔÈ£E>d¬Kqð"ì÷ó Ц 8õp¼v!©ÍÑàü:c6‹O ë‚=Ý1\(ëœ_ŸîøçïÔ–1 Ê’ÑôU²É“E诡 <úÅ"ëŽ2È´pÿ‰3wÕ­PHâØx2– g>ý×ÕC7h]‹Ò4#‡þƒ ­93¦£»?vû§îö59ç%ñ}àÄõà)××MOAëIÉ6)4$™åhPZ¥•i±7i^LÙ¦Çe¸„†3.Ç>`ó²óãâq dç¼h_u¨ó*ýÔ{?¦Åìj§UÚ­¨âDtrÔ‹3¢ÖÓç~‘”:-ÃHÀMà`¼—˜ ;¬Î(\\|éË/î#_δ¸“ð"ªÎ0zlQõž¡oÊ8 ȈÛTpÔ^¸®Œ \šU‡À,¹/ã"·M…oL8án˸Ä=è놽NŒû³¬g¶NK$ó69‰Ý½ó0ó¦.‰üÈŸyƶŒÏd¿oi*pM™:rÚ™bb²ïTAû ñ=è{ž¶ÀZf¡_ZÜвø€;ðxoe%q ÓL£—qÈ¥)çJ (Òyîý‡”¬D;As*ËŒ‹3[W´li'¸È¸·ª9*¬DöÀ¨~*ã‚Ez@Í2Q«b„hçJ'´Pò¢ÌZ湨¹çÞ6¤AkçÕò2Îi'Ú¥ãJÙ†èÊuŽÀsA…j๠ìˆ/ªe{fÉÏe\âyµ\Ñ¢Ö¢è‰F{ ßhxE+Û&Ú8¯¸¯êÞ£“µÑUg÷p¹—>á>Tzýì'\Yt5®œi©×÷®Ü Y—3£`>wˆ'\«[Èû„.G³ísØ WÎ"¹¶ËµšNLê–çÛÞ£OèrÜÙ”¢\v'´;³P«&9¯£ˆªOÌNµŽ½Dv×wm ¹¾£8áž*?‡–…\²^eÔÏ'‰4^ƒÈ6Þ8‘v|ïRi¼sIÄÝ[+ñvg1^íÍ#‹¡çJ·mXTTN.‘[¼rÒHΈt™¢“Ðí@¢¡¿?áZ'°‰íR·Ð@â—|åÚÁˆt!¸ßÚ.£å7ÈõWî+(©[¹·‡¾¾·k@ÈÏv–gÀ²ÝCßˉwyfÉòy-€Å.ˆq/ç߀<ÊþÓìÊQ”ßBr,Æ[• 5¯–eÍS;$šGëµDGèxV/ë½Ì1?ÂÈ<ÊÊ5 çÛìŸP’ 0Êò Fž+ZLA¤¨(Q?΢ûª!u´¼ö”'ÞÔ•3©ÙYÖ•;|gyúmòc«W™~ç· F\eúm£W™~;®2ýÎO^G\eú ší¯2ÕεB‚Ëfĵ¦ß6ŸûGt9ÚdÝ„«tìùÁãˆkN¿ó©^@Õåçì#®9ý¶3ôeœãT+Óej g2pù9ä ך.;Œj¹/sù 4â*³räÜ+ºŒfn¡.àŒ^3v]2Ìž•Vs6§ËÕætÙi‘|žŽB®U3=µŸºÒÃCD‘rW>âZÓeOéT¥t´ðy:!ŽRÐÈdªL— Ï%•é²å¹¤2]>Ë´•é²KZbq –D;ÔòHˆso¯iŒêYFnM—!yQn‚ÄeªL—ueä`<«FÍé²å5¸2]vVÆ’˜$s‡³Œ\9‹Ï‰­uq/gî€)Ф‰ E»LÚÎpÕ.Ÿ÷•þTGQ¤¶ÂIv‰–ë²BϦ$É袕ç*ô1HrïÎ*ÓïÀ¥®àW“r•Æhµ$ `âZ¬LÉóÔ]À7jå¾h¬¨Î‘(É;ÔÌϽëUç€|ŒXïìä ÿ¯äÉ>¯n?ìÔf½íÔa§>vjõå°{XÖ7«Íæu»_?uÛü¯ÕÍ.ÕãauèÔÝn¯Ÿ:uûeß¿CœßòÌŸûÕöñ®Ûýš}QÍûʯ|Æ~[«í­z^o6y;ÓÖÛ‹[Øw‡‘ýú¡{ñ2mã…§ï–‹ÿdf£ endstream endobj 85 0 obj 2058 endobj 86 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F2 21 0 R >> /XObject << /I8 82 0 R >> >> endobj 87 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 88 0 obj << /Type /Page /Parent 1 0 R /Resources 96 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 89 0 R 93 0 R ] /Annots [ 97 0 R 98 0 R ] >> endobj 89 0 obj << /Length 90 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 90 0 obj 55 endobj 91 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 92 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 92 0 obj 69 endobj 93 0 obj << /Length 94 0 R /Filter /FlateDecode >> stream xœÅ][“%µ‘~ï_QÆ=£[êâˆ}/ ³ƒé‰e#Œƒ˜iÎ mwO݇Ý_¿J]ª²êeåcd×ùJÊL¥¤L)¥úáBäò?Ú—ÿ]Ý^<{ž¦ÿ¸»øSþç£ÏþÓLF¹8½x}¡žª¤c(Àßö?tŠj NM/n/Rzõôâÿ.êŸ]<ùâÝáíïïî¼øëª,­ŸLÛNVâ”÷¤’äÊ»—_>Ÿ>ùðx¸Ÿ°ŽéòÝáêúõõÕËÇë»·¿¬Â@+ŒµBûLÃ3£”c ÿøÅ…ŽÊN!…Ƀw“Ÿî¹"Tótÿ¦_}"Óo4~Ò’G^rEO•[©øýû÷Oﲚ¯PÍOïîßÌ<”½Îe@n娹ø$ÿûf[w“`.UØ.Éè…¹¬¨`‹¾:ü}ROEE€Óz%_)À㻺 ³Â*‘FK«,vqö[4DXêydfCÚ(ß׆¾{-ÓPÔV­4”Jy¢•Ȇ´±)V+ µýBB9¼sÓíE4F?ÕqÒÖØé&ÿ™{ÉŠFX¦­6k:5c(­AZ{XÓS«¦t-óû‹¨tz j櫼Ô*,´sþ©ü“"ñÕ×UP£M“3³ŸUO˜ÜÏ?™©73TYW¡©Amð.h¥4W-Õh³–×Õüi;ÀÛÞvõˆY'ÆgÈM· iÅìNá½U þÉ»1Îë´àc\ôw?ÄMË{9Æ9TIÇ=ŽqtÆ]q!«dÆÝ q¹%Ô‚k#³Útäã®-­Æ•Ë}Që?9E9½à¾â²aÁ‚»fpù?3®Lmm0:‰6Yú}5ÆYmÜÝç©ýžÁ"õaKo¬Hvà Ùc¶ÌýrŒKÊ,¸·;¥ænFx¸ã4ÕÀ—cœ¡2=߫ݩ(‘ɺ¤72ÆA$µwº/œ~ûßüæçc\Ò^Ò¶6ù(±T§@I,0ÏìNbÑÎP¾ã¬s9\DÄŸƒ´é!§qàˆu>cpÉIìÍEôwÃà€XÐc\tgôI—¢¨•AÑÞ3n=ОŒG·cœÕ¤¼wc\6/‰vÀA”X­wÜ_’•ôWðT;Ú†¨Ò¦m¸HlìǸ¢„K¯‚‘´²×@´=ž½qIÒ§<ú—«ñ«Vfäp)‰Ê[õ½q_ñ«ÖÛë+>»Ë’ÖóI9ÉHâSÍÝa5ÂŽm;h:oŽm;è¸íSŒÔÁ*ÑlR’¶ÉÓ”¨­„´éY§qÞŠæŸà“ȣʡaŒ8!:Ѹ"­wl !Ñ<•ýg¢—§;­W=úÃ1Î$srúÝè†òí”ÿ n<¶è„cUÇízªíJͱ±]pŒ?mUXpã>nlÔ©9.]’• ”Êù݆èè»1.è°Ñåi\D¤ã~³'MÒ2.SµÅ:ÊÃŒ’”š#³Ñ%Wª ¤Ôñèe-‰}d§“X;çÇ»­} p‰Øå¸×[^Ä_"ïxT²QÇ} ²ÉÆEr^§JDš¿31CÙ„3ŽHór¯v“Dç9"°Ù3Œô²7cœ·¢~ã²£!-rD y]ñ:rÄdDzIÔ&öz ¨´m›Ó8¼¤§‚$ÂY·GNãœÙJ3À¥$ÂA°’V†ìD/¸Wc\ 3:wìÍ›ÿ+±aÈDŠŽõLD MŒcy‚#Ò0¼Õ é{Þé­œ§>ÊÇ(_3ñëŸ3qí×ã­ <ÑѧŒ¿Ÿˆ41<õ*¾`ŽBH¤¿}Ëì§1¾¥²DšñÜå5årì[zˆÔcÈc¶ÁŒû–,'ƾ¥Çç·ç[úèEã‰OF4ž¥ˆÇóAžZI½{¾eÈŽ…D—Á:¢K½W*(R*³~y‚Þ<íÝã¾éþN4ëê5`zTͯzùxýêæpŽk¡$ëaŽ–Vÿyúðæfzyuuxx8Bœ3ÎjN^ûñûÃâª?ÐlÉéåãQá+—kX'/ÊøÈŽˆíªšúöýãã»ß={v”·øìýõÃ÷¯îÞž!kÏÞ¿ÂÿûJ?}÷]qèzRcT9TrÙ™Ò/Ëi<'ð‰.×÷‚fƒº§fº<Ü_¿¼ù•Þ˜j"ê^Ø3ãvž'{HíÌ&.ЭK=úǥ.)R/³Ý€Ë3ŽI/ª½íOã½Õrïqニ±3nìN˜è•H‹)O-ZEµÈ„DÊ'‰­R/³±b²Ã!¶1kc•Šél3ŽÙ’V±žj{lÛ6X+±‹ùÅ’ò"ˆ¬Á&½åÝ^‘vœv°± ®TDýßYP›þuç”–XšËñÉ‚c6‹0a@li.XQ‹;ÌôCcIAy Œ‘ôд_ï& #âЭØy¥”¤•M‰Ô@GGn“%íìmX†Ã’RCµMј ˜j)Ñ"¦Z z‚W`6­Ç=:ˆ,ȉMxLŒ*9Ô“Õ»ê×Û“Æ;/âÒ§$ѹtŒdRÎ"­—Kæ2Qbc9t<ÃrƒÖAbA§m¿aSº¨ç5N± ŽŽL8 ~ëQÆy}†ý†Õ\ËÈõv^âJÅK}DEG¢±}DMç‡q"kÔt /b•D¬Sã¹,:Hü޾tÊ’Í8ÆSÅ`mÆí¥tXG3Û &’ÚÇz06’Ú?9» n¬FV/n˯ëå¤6::ÃÃ;‚¶1)ð©³7ï6åq^5Fn3šIöÁÔÇx·«6d¼j —LòóaÁ1Þ2Fn3no9Íz*õ8õÑFcEÚ‰´­÷F¯< níh€ „Kn«ÃŠ,Èc$mã¬ö—d©7ŽK²” ­3L&/¤´áõæ³ç&ÑN¤\r)NT;»‹ô*‰Ž@{%ƒÀ€“X$àC±E‚ÑX¸%ám F^tTᘒ’XÄ@Úð§=¿‹ ú¡GOK`^G-±4o¼•ôCoA4öùÜa%6æ‡×­%òz:æî‘Ðdôab„D-woå!(:?ìÍvÁ¸ ±Ëâ 4ðpŠ@¦àèˆ5Þ~ ˜ò+©S~–ðf‚ÇmÈDàÊ]A½ô͸qŠ@4Ôß÷ÿì¾êåžåùÚÐS¦BÝ6zûãí«£Œ³iÃ\Àr«Â“{<Ùÿêúñazw¸Ÿï_¾}À—ožüø7ŽüÑÕƒ© Òºôvm–Œ»:ÛRλ¢J±¨þ=ã÷çˆwÆ1ºÂþÓqc;1xZdÆ1ž·‰„?Æ÷µè#w·`Í‚cVÆñž‹·¿xO¸dâ ãF‹ì‘g*S*^1ã¸t)*Ó9}Äjô)ú›Ì1iܽ™qÌ1iëIy㄃<Èk—µ¸Ö0ã˜ã˸4ã˜Å'R³“¢’X]e¬¤÷”ƒ3Ž9¾¬‚“Èá4íÝ\|ÓIË8Î!œ¤ï:gŒ¨v<Ô'ÐNY£ô‡rTBR^0 ieնמÆ%EZ™[ÅRïîú³‚(‘´V’QŒ‰íä8‚ô½Ýƒ–ŽÓÌŽƒ J¢K:B0«äžŽû Q>ˆt„)?‚Yí×»þ­ [ôiœ¦s(wÌÁ‘þ5žk½gèȃ͸Þ+ÒÇ¡´Wp8:æ2kïщFHÊKtncc|̆Œ[àüÖÚOãð˜ÁŒcrYðŠ]BÐ^ToHÄÒ˜è¯.Û¯/»dûöæý÷F"_V¥Z:0‡› ö½o:£1+õeÿd¿Oú`‚¤÷ø’‡wy ìÜG:f0;)þÞìyÁšÎ=ß<áœkÒ!˜SИ‚6ãÆ V¡$ ì;Oa5¬8¢îñ‚Ut¸àÜe/ê`!‚– (!MÞ'q%ÑeƬ¢– Îqåþ1÷¯Nv*á%È $yU•L—È-yg6 ·æíh‰Ü¢wîÜ pÜ F qXíªjÆÿÆÂÈ$øÀJÌê4î.Ào>Øó‚}Ò2½—k˜gàý®wâ~˜¼)ÕâáÿȤž¨(k¦<¥D‘ö­ÉÃðÜ7­ ”.™¨Œ}Âì‡Û-§ÞÅmÕìE¤QÖú%¡fîí[¼ªRb®N9E€ÌAUmÝ‚9“c‰±8ë´¨­Ê9b‰Agÿ=ˆÌÏÁJvÆÓÇ&6ëÂÚV;+í’Ï቙”µvIÕ€g[àßO5Bî.ßç1Z¤S(ש ú>à‘¦Må gà•Ûvv-] 5¢P1i€uÿuKöÿefí5Ñ áPvoVÃÎîÕAn5¬3‹å`‚L$¯•L$<ª¶)‘½¶(¨ú¸jý½F j5ªrIë«Öß-׬Äc*YçϾÜÚ)ëû¯¦rf»®§íÛÐVÖ¨ÁXÙ(ðäÓÜ;x\02NÁÈ&åÁ‹zjðAÖõBX ¨»Máå~Ï¥ÜÇ´ÑÙ ÁɆɨé4ꢾTî[ݘÉyAžŽzQ¯HŠ%ûþêåÛšò[îcº?\®ÿ~øæƒrqÒç—M¯¯ïð—Ë/Ÿ?ûüúêþîýõýaºº»}wsýòícFÞÝðg,¿»•ã­‚o7]#öÜÏÒÎ}ë¬dîì¬4³ \Sâ©dö_œ¡ pÇ}5 ³á•‰¤|°[ž†U+15qU5 %uT5û%+ãÔªx¤$6m"×WËÇ$‚•¯)HZ©œü]€ï÷8 2 DE IFJʈÕ¦xT5{h§®:7ûœººLÖ»ÁOÝ‚èð¯˜À?Ô9XÎ;ZúÿœÚ»ÚïkÜ¥•m0Ž/&Ó-ÀÝUw£¨¹¯[»ædšÉ¦fÀ[#²À'ØšÂi`”æêÔº¾¿?¢CZ™“§”Ru¯VöÇxËz5üqGy“ßòȆ.ŠDòëIŠÉ+ZORŒ)ÊDò^ŸÑù}4²™Â×­ZH)µ› dŠÓÀº]³¯ª`V®sÖYw§°2&}߯Æ-&^Z‹úRž¶’ð*Õ´_Én$ u¼½´|ŸúõÍÝ»‡ßœå¤âuh/–QÇ˹ÚÏÞVY$ê@Æ›Ôůê@.£½ä©¬ªæÝ)§Œ— ŠrÊQMŠWÑG€ÜZº§²ïzè©ÌBÎP]•ËPõN$’ÕÎo«fÏ@•ÿ^d‹Öi%ã”kˆG cQíE6kƒg´[ùˆïç–ÂC™¢SÅmÜï4nÝnÜ¥û&‰do«åÈÜðhË,$¨Úm¥ÝÏ‘yCáÌ%7~5`0ù:uA¦™‚èÒvLaO’zYmd–Fé”=$ºê†ŒXw6öG,€§L¦º×T§ÌÅ4AÓG!ZØËȧM¢AÂ׬ÂýVòøíòM‰l^»¡`ÒeL ;9’¢VòΘ3ÌÄCT2j,³b€uX•õ+“— –V]zßa]õW&¿Â(%*‚YyŒgk¬­‚sT$Æ©†Ußg|Úš¼?ðï¤f¯xLT›ÌM”iÕG_¿="é"å3º ·´]³U:œ»íf¥ó³U4~鈷-ŸÒ]€cÛ*Á/@Æ¿Äs8 ñ/µ¦U3i":Ydœe¼{gr ðè, Ôcœ³B ®Ì@ÎO_)|÷.™`iC2‹ÏѪ­ÚYo=‘`¶÷ düÞ²V²Öë„G%,·)µ§ñ\m2‘Š›0Çn‚õdU•¶U³LW]„É«O«.Â,\âUÀÙ·-‘ÍSWTUL®ˆ+êzÎ*ÙðàܪêÝÅgp^Æ@YwWÖÿ%š-ëÿ‚ŽâÒª­öo„tGüžjwÔOÍjrø‰ñÐÍÑ0ÉžOµ2U‹²I§f« ìðkf"%#›t ¸‡3Iè‰ÞÉÔž\ØJ½w?ŒÄ ½6°å”õüW:宓t´ÜÝ“² (¿cÌ{§D­_îŠi ¬5níYù3ºžO«Añ§ÕÊñ`F´N2 Q²ÎðJ<‰AgGBml®J’9VãÓž™„ dži OC„sÆÓ'P~Ç{qQk»&wïXvúæ—{qRÿÇß«o\õ‹M×Óá§ÃÕ‡ï¦W‡Ç÷‡ÃÛ’ Òo–|ø5>îûñ‹ £ñÛÊå–$äÓ…ŸÊÒÓ'ùß7¹–é¿.âôù…6ÓûùûYËK·•<‘}saµ×+º`n.¾¿¸¼x»ýêVÖÇåø®¨òGöä}ýÆg×S\}šëÙÃ÷ï^~÷íÝŸÕ_š?\dÄeO?êœG8gP‚ï/¾þ·é¨Î“_úÊeüé æL˜¿ï•¶¼0†Å@ž³z1åãnõÃkM0½L{ûOÌëiÝl™³ú+3gr¸èðƸ$k.ìó/_|üÕtÖM©'*qÙŠ]¨ß¬.mR3½®nþVEßÈ{~ÿ0¹Ç_ž0›cC‡»ãY[o½½{¸>É,^ïûó™ýáÂàÁaP&¡w4a`8,fÀ0¾¯ÝÜ«uXÕu{ýpW¿&•ÖK¥È:Wç˜uk³ohÐõ y_n}@[p·•ö˜ÎvsQÒÑ)]0ç hWGœé¢³6ßç—_LÓç_\>Ÿ¦Ëßö‡izvy97_¶Jƒ~xnnõ¯±5‹ë—Y—AïÉågþ÷Ç“:sRÊ e»…¹I̸IÜm¥[3xôO(}v“&VÓ$Ï&Ò$w/j“èM“f›DŸß$%‰\ÐKÜm¥[3D“UAé³›ÄÇ"×Ïì%½ði/ xñÓ°IŽ>+h’”µ xu[òô\é¤}¥3e‘ 3e§«‹N«©!CœÚû™ºêåfúiWérOOy«S¶bC­¡!±Åg¾®²Š-~ tVümóýðÍ›ösêÐЉük–9{‘—•\ÊMÔ^(ôM±“€×K·ß ݤk4~‚Ø€GÊN¥œB]áïª?u¡# •ßÇß]èõ4?$oeÊO§L•²üü4ÍÈÆŠ¬ÂÚBãÒv[Ïž¯Ï«È€G£š4…nÒ4:óØÏ ß™Ò]Às¿õ)¦èUd¥Š4…nÒ4[ß*|—²š4¥†þ´É½ð…Ò@À´JS¹¨Ò€Ç¹n‘Æá¶e“¦ÐMšFg3Õd(×ã5iœê2–͆,T‘¦ÐMšFgË[…ïRV“¦ÔОn ²ó…Ò8…fW¥©\Ti²w«¨4¢›gûBW³E+,Ÿ7l¿Uzù­ÿZGè¿UkÆ=®l>„J7ËöÑ,¿E3[v¥Ñ^óØlßí–탟êŽ,Tµl¤[=†r4Ä"妯G¦›khO 7Ùù*–Œ›-»pÑ,ÛÛ•ö åÞߤ)t·ìJ£½¦Øúi¦æ~šiÕŸ†Þ*U-;-Zk4à*[ç»”Õ¤)5ô§iF¦E¯ìÜO+ͲKw –—,5i Ý-»Òh¯…åbÃ&©Ù²M—1S®# U-é&M£¡ä³4¾KYMšRCê;²óU,wºe.ª4.‡+Ë.V¨Rqš ?.tµB‡;UËoq–´ÒÈ?h2á»]Ò<¸ô§¾ë¤RUR¤[=6Sy+Sjê|¨‚Í5ô§±#;_ERsy“´pÑ$Ç’â„s_ÄoºõSÈo½¿Üt:óŸßh2•w›¤óãûS5#U—´Ð­žN¬AJO]±©?­ÜØiá«X(^ Ó$­\TI½ÑñXR›•”ûe¹Ȗ黌, kì¿y˜G–Jãx‘ºLåÝ>²¤y&M`;ì<² Ýêé4Lå­L™©óa å¯O+70-|¡¤Qõ¹±IÐG–Ô5Ðܼ ,9L>>Z‹RÙ(kQ3î¶ÒmÉÉ(Œ–½Z~úáB‡Iº€Kè ùHÅÕ§áÉwÞ—5¼™Px{œÇ0¢|¶ev¿.Kã&¾ã*âó= Þã‡ÀKWæñ“Uȼú1_´@™ÿt'¯êw'?Úæ¢ ð‹= ~hÜêTï÷øx«›ðfЬŽûÚ8µ<€ß üì |ȲÀüûm¥=F7yÁÛÁ(]0«€Çî„Õ Lí<%ÞÁp§;´ÔM±SÃOAC„yy«}ÅHÅgM.Vv=11û‚»­tÓQö3âŠ>[_€+”T_›¤°¾Ê•¶T_ƉCì½áô²µ«õŒ»­tÓQ£WôÙú yôü'ê+8ô‘FöeØÂ³¾îaÆYØÏŠ%Úí+)[?ZÒ)tœ:­¦†t¸]Þw±†sºÒ%Œt•XLy«S®bÛgQJè×ø*Ñ.Xœ¤s””¹ÄDºòæM{nT8Švƒq­ÍüÒmæÆËèÛo•ÎÞ²Yé<ålóLÙ©–ƒÔþ®úS:²PPfîB×zíSÞÒ*´²*eùùiš‘¯`²&8׸´ÝsØèëó9&]šJWiíKLà*ß™Ò]šìçÇþ‡ŽŠ,´˜º4ÆÞYÞB¾kYUšZC{:²óUczª4õÍ*MŽ •¦züUšJWi]ÏÔdp¦Jh»ÏߟêŽ,´˜`¶FãØl:ßµ¬*M­¡>-Üdç«Å®KS߬Òä˜@Qi,&4ôI¬ÐÕlK´ æzg˜×ctÿ­w„þ[±fËÂOõ ‘ž}R³ü†Þg³ìJûâ“v.~h³ìâ¶§º#aÖ^¡[=6¡z­°ÆUŸTõ§…¦…¯æ“ÎÚ«\4ËÆ‹‰öª_¥©QC•¦Ñ¾xýM†òaÏ&MêS s?-t“¦Ñ&Ôh£ð]ÊjÒ”úÓ4#Ó"MŽ%æ~Z¹¨ÒäXbÕOküU¥©Ñ^³l软\Tm‚š-ºŒe#®! -t]šF›P£ÄÂw)«ISjèO¡#;_- ³e.šeƒ±+Ë.Vhêf ºE»8-¿ÅYÒJ#ÿ É„ïvIñÔE{ê|GªJŠt«§Ó¦žÕpµñ*%ÚÅúÓØ‘¯"iLi–´pÑ$Å˯$Å»æoqÓ*Ý¢]t1æßz¹é4Út™Ê»ÝBq¹½=ísŽŸg"üØj=vSy+Szê|èZVêO+7nZø* ÉÌZ¸hŠwªIŠû:·® ]%Í6Ëon¶ÞFgþ£é2•w›¤™†ù©íHk»¤…nõt¦ò–Cq;¦`Qþú´rÓÂWYLŸ›MÒ¨»š›€÷ç8Lö<™‹ýùt´;ãn+Û¢D¸×½ ]0ÕIìfsÝ&$ŒxÉìLäI—¥;§FñìéðªÃM<;úmÉ1ÐáÅôütˆ„ÞD£§ÞÃ6= „ºyS£Ñc•m#ÓúZ÷™Ò—–üüøyi™š_sÜÊ-¥fÆÝVºµlõ MZY _‚íšÁTb™õØé”‹ã3ZlÙ|OÛ-µ#_~´¥&bι¸ËœÞ2g­ÿ§0Éì2g¶Ì9\`úu™+Óh°sˆÖ'òb~YXgp“×Å8okºqVLÿB±~V š¼ eÕZ'³bYÀÝ¢_”J¨”ŠŠ&\:3+¦¼oõ’ëv:+†æÄàâf©OG]£ÅLqZ£÷«×ù7EIXWiQ¦®±’þtñÿµw‹® endstream endobj 94 0 obj 8443 endobj 95 0 obj << /Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Helvetica-Bold >> endobj 96 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F2 21 0 R /F3 40 0 R /F4 95 0 R >> /XObject << /I9 91 0 R >> >> endobj 97 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 98 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 309.3 374.45 321.89999 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org/wishbone/specs/wbspec_b1.pdf)>> >> endobj 99 0 obj << /Type /Page /Parent 1 0 R /Resources 106 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 100 0 R 104 0 R ] /Annots [ 107 0 R ] >> endobj 100 0 obj << /Length 101 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 101 0 obj 55 endobj 102 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 103 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 103 0 obj 69 endobj 104 0 obj << /Length 105 0 R /Filter /FlateDecode >> stream xœíZMo\Ǽï¯xGH¨÷1o9ÄŠ¢8œ˜ä!€mC)L´¢B‘á_Ÿùè®®Y’Òr-^‚@ <µÕÕ=ov¦ffŸÿ½™ü0æS¨ÿ9ßnž|3î6ßå_ŸmžüqæÑ­ÃÙ›Íx<¦i5ò· ¦´ŽCtãp¶Ý¤t¼NÃÙ/›¦x±9úˇ‹÷O¯®/n¾:ûg—kÇx4ìwqcT$¹ª=ýë7ÃË×7?]\¥ÆpúáâüòÍåùëŸ.¯Þÿº‚Ñ{.¸¶‚Ë“É?™ÇÑ}2ù³³Í´ŽËS‚nÃõÅ&*ã<\¿•ÆÉóýÆwÃ0Í>…Ò—\èxtÝüøñø*óyæã«ë·èC†)çðùk^µÏóßÛÝÚòȺç÷’æÉ:—*.uN.þ3ŒÇ{¥ðnšºç« BÑN52Xkäãl­‹ú8ŸÿFãê­ÎѺß4XcÚüоè«7ûÐ:-c7B©.£iÜkMó’Ö6‹bûþ¦áÏ›ux¹™æácÏóßÛüµMkŽÒ°•¶§áÝf©Õ¹]bÞmþ±9ÅȽ¿c†iLxŽ æiÉY—”t æØÍ—››W^ÿýÕÕ'ŸJ»›Ÿ®ör.ËZz<»Ñk/»v‰9¸ÇóìðÕÍý ß^Ý\Ògúœ¦ýäv‰9¼ÏÑ/Úç©åíåÍUíóåÞ}vÙÈ–qö¥Ïµ½Œkî[Ly9tísPŸ}ÌYçüé8/]ŸŸž¼øþÅé×?¿Æß >ýÓïO^½xömýìçq•ÏþöêÛgÏˇ“|r‚O†O/zdçóŽäÜó#·v¬“Þ~îÛ%æó¼ŒÑu.ú4¸²E”5½‡~få‡}ÈîsWþÙ .,ºýĹŠ8:ûùûñǾzЄ]|uÂ.kN%“´k—˜ƒ'ìõùîZ;FXA×Þï»»§Ç.LêÇnÞq…;¾¡;²Ìys×,å¹]},Å%çõyý¼ÂF¸]c~^Ÿw /k)~IA-ŇéÚ%æ`Kñ>š¥ø{-eºÛR^ß²”ñ¶¥Lû>rǨӲµ›D—Ï]ûPK‰SY÷j)ù˜Ð[ÊË_k)1Ÿï³”ôKq.ÏCÙ·[{qå w)Ï«®½ß¾}‡ù…|XËÙéqF¯›ó‰LòçE‡‘ˆ‰vhíÕ<=·÷; Ü7¡Üvi$ÖrÚé(#qò°‘˲èœhí6Â:ú¾}èœ>®0'¾ü†\\yNºá¶§os¢µÛ™†ü7/Ë„_\¶ù5bY—Uu8ÍÓÙ°r®Nzã\[(q™3¬œå4œ¹ä'æ\X3^ëaµõk­‡ÒÂ…Z¯qõÀJ\ÕsNÉ/{—qe_S®íq5g\ «9I׸¦kœé¸Ÿ­&×qgnÍw怕³g0œ¹:.Ä+G9·Ù£Ë¸gX9Ëi8sóôõ€•£œÀ™‹c_X9Ê ¼¥µ/sk¼¬#—ºµ‰5®œ­i‹Ý¶ó 뫜é gnšºz–G9Ò!¶¬‡yêtˆUŽtÀ…[ûzÈ£ëV«çS_±Ê‘¸¬#ß×CåH‡Ø²B_±Ê‘8si^;ò(G:Ä–õ°ôõ«y9páRWÏò(Ǻdõ\>'uºdõ*G:àÂ…¾ò(Ǻ`õòèuÁêUŽtÀ[Ú·˜“œØïnïqù–Ò×£½±q¦óù¡¾ÖèÞh´uÜÚÉãǰ®ÝÖþ¡o4b²ßÚ×þ§ËówÿÚëǼƒþ$PM£]óìÐP®€Êµë  LÓµƒé×t3ÕPcÚå¤^å,§Åª1‘±Ê™Î°“é,r¤C¬é«é€Õ˜H‡<ʱnµzÕlX·Z½Ê‘X‰t风ǮD:Ä*G:`5&Ò!r¤C¬é«Í%`5&šƒÈ£ë’Õ«fúdõ*G:`5&Ò!r¬ V¯š ë‚Õ«逷´n˜“œXo·×X3¦»×fãvÖ´¼_©—y‚ËLÇ•Ó8sËe†8ÃÊYNÃrÑ!®^Ü¢^tj[tK\•«B\‹•·eÁEý Û¸X/V‹véšÝ‚ŸÄkNÓ5.Ê…¬p±¿I_j{)ÄU,—怅£g0,—怅ãœÀr™!ΰp”Ó°\f˜ŽsËe†9`á8'°\f˜ŽsËe†9`á8'°\f˜ŽsËe†9`á8'°\fˆ3,å4,—怅ãœÀr™aX8Î ,—怅ãœÀr™aX8Î ,—怅ãœÀrÑ!î΃–äio#—ÙéáŠÛRûÐ7®eÈ¿ØAËJ¸v\:X84àlZÓØ šaá(§ám3>怅ãœÀ[2h5Bg¦§ufÊ•3ãµØm{÷Ä:Ä*G:à­®Ó!r¬ÓØrè[ûzˆUÎt†‹Iú®žåQŽtˆ-f—÷hÖ!V9Ò—CßÜ×CåH‡Øbvs_±Ê‘¸piétÈ£ë6NŸR_±Ê‘¸˜dèë!r¦³Øbv¡›g«é€å=ëG9Ò!¶˜ÝÒ×C¬r¤.‡¾±¯‡<Ê‘±ÛöÞuˆUŽtÀ…‹s§CåX§±åUOt½Nc•£pñ×Õ³<Ê‘±ÅC\WÏb•Û=ØÉÛ¹ê'É~…/\}-%œ¼¢2Ï’WYõ`gºÊ‰®ý靈âY»œÖ«e9-V<‹uˆU?#°xëGýŒu+žÕé4VýÌt†Å³HgyÔÏH‡Xñ,Ö!VýŒtÀâY¬Cõ3Ò!V<‹uˆU?#°xëGýŒu s¢úP§K˜KÍ£H,žÅ:äQ?3ÅŠg‘ÎbÕÏH,žÅ:äQ?#bųX‡Xõ3Ò‹g±yÔÏH‡Xñ,Ö!VýŒtÀâY¬Cõ3Öi¬xV§ÓXõ3ò`ñ,öäQ?#bųX‡Xõ3Ó}·ù/ߺå endstream endobj 105 0 obj 2437 endobj 106 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F2 21 0 R >> /XObject << /I10 102 0 R >> >> endobj 107 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 108 0 obj << /Type /Page /Parent 1 0 R /Resources 115 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 109 0 R 113 0 R ] /Annots [ 116 0 R ] >> endobj 109 0 obj << /Length 110 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 110 0 obj 55 endobj 111 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 112 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 112 0 obj 69 endobj 113 0 obj << /Length 114 0 R /Filter /FlateDecode >> stream xœÅYYoG~Ÿ_1ÚWõÝû¶ñ&^/Ö¹, †À¥$&<RŽ€ýõ©£{8”EöÄY 0›_×]ÝÕÅ_;ô=Ð? òg±é^½Eìÿ¹ë~ _]w¯¾1½—úëÛȘ¢ ¿¬0'裃þzÓå<$ì¯ÿ×éŽÿtWß=,·¯wûåáo×?ŸðB^õÏ¿xQˆƒ&B²“½ï¿Û¿»9<.÷=Ëèß?,«ÛÕâæqµÛþ9Ñû©À¤í+ô¯ €»ÈüëëØ>æØ\úý²#Aìç~WˆßÌóo2¡Gãs`]HÐîÄÅOOOÎܼ`7»ýݨƒl H<<…9U-ÞÐwÏe F®3ã’ •#GE+~øqù[Ã,Þ!žØ' ïEA’Ô ‡M¹©ŠÕœvDcòG9Wy^¤˜Ÿ9?h w·ó<”Љ‡²È¬BcsÒ,Š?ë¬ëm¤ï¬ß»ä-Cô†êâÍHÝûw©×Qy?®:rØ(¼ýº ™ò}J fÝÝwï»m‡†X ±@b1 ¾óÄBèHÔ'´`*‹_;ÌzèèØ hä(IyßýôE¿=ÍL8ºõèÌ/.6@‘‰ÀÞܳö'M‰³B&‹8üÿj#¹o[ÀÀgß·€žŒ%ÚYÕñ«Ђæòw- qÓÕ·- 5ækÖ; ÷É›Y¶ûèâ,M}Õôõ<¦Y®¢‚PŸ~l1)ÇC©ÂƬ´šµ`ÚI{zŽ KÞÕÜwä6cñBÝŽ¥:îÙ(ITO¼?¡s¬3 )”¹Î¦*Ϫ/›A*9έ/Ý¡™ä ÙØV})0¹ÜÊ1Fçæ‰ö¹™4 tÑ´²VÖ„V})2i^})°y Ðçbû¶LÚÒ\=¶€1ªèe Jeí›@Ð@Þ¶€Þ©7oZ@çUô¢¤‹ìhL)j-¤¦@Jìù y©˜cDjð,X¶†ÄøóÅ|Än”N–¶Ð©“›Ò‚Ñ"®ÀvVèR6ÔiD÷r~xX}xÜ= ¿]l9êÝNöEã,%ð±#tàÿ­»d©+žÒ‚ik\\5–Ñâ zwr_ÅØ©Ê‡7ÿý°ûCöEÕØ?j<¥óùÛ«Æ6œh¼ÙVŸ£³£Æªêœ ŽzNiÆ|¾Î>›QçÓ§Ãfu؉ΫV3š€^yh-÷ŒÉÒkBhÒÏPWƒz1f MÇKõc6ƒ¥Vß%é¢i d6­X*Yq‰)ú“±™“z@‘ÿå•ãÁ Ëd0ä•3h¤©kÎÞD–É+>*ÆéÇÊÄ[Ö‘W’áÍèC` ¯d23!… ®-~NeÇßpx °1Ô`AQÏÅ‚‚ EºéÅ-Á™º‹à`(•„FÈe ¨¶|ñ ‹f‹¢úÖ¤$rcQ5Š1’YA>è “*o£lIä·b2:F#9¹hB÷“hB kD‚˜Š”ˆ5"6IùØkÙd款…„,rR&e¢ž[ØšTØÝ…ã ”ȪLÌäQ˜RYBO+^Ý’Q¢ÇV£z’?ÏXU†VÈÀHQV'h&D?jKNgÝ¢¯á '!µ±%‚@Zr&PÓQµ5š Ñaq8X+ÚÆâÊmebª `Ä@îŽùcD ºÇ’K@9©ºÕp@VO²þh,ÙEïÛ±¬Äµ\-Še¬+ÎJcu ‰AyŒi° ¨IKD½$G>¥Š)édjÊAE*L ÆÂ+Æ¿%SD›ŠþPëιÑêRàä:õ¤«»ÄQ¦ž†šDŒä Mcã4‚ᨉ“Œ¡“ßjÉ„¨Õaœ86øT‹]ÙQ„Ê–R…ˆ`GßòL.Äqb/!èkAy-¨@]á‡^(š ê Ÿ*¡•ºËçzòP_-!ó)ÖÜpR´R•£6R“ǦH–ú²kä Ie%W3 Š¬äÆš’-¾éõ¨¿çyÏ$ š2’0—F¥:Wh.P©­¨R(bá*•zÓÝ~ò^Lôt¯•›N?ÐAO,BÌ'Ï•Hcø"žî×_z×qÙNp‹³8j+ðˆ»?£{ìˆ[Ç´§të/âøÌq˳¸H)5ÇŽh§üÎËå8qÏã’³süL)oŸÙ1ù§ãÈ™J‚ZÔ1Oß²´5×÷Ë~2=æÑ)ýo{X<Ú{¼ß/—ýÃÍž>îwOÛ~µ¥Åe»[¯wO«í]»ºû¸_þ}ö˜ùÿ»B-™Ì×)ãäV¹›ÐÔ/-–ŸÐŠ‘±Ÿì-랎è‘Î+ŸZ1÷c{ûý¡–úwc¹þuZñäH™w éu:ÎO„.³Iê½ì =™Ÿ> /XObject << /I11 111 0 R >> >> endobj 116 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 117 0 obj << /Type /Page /Parent 1 0 R /Resources 124 0 R /MediaBox [ 0 0 612 792 ] /Contents [ 118 0 R 122 0 R ] /Annots [ 125 0 R ] >> endobj 118 0 obj << /Length 119 0 R /Filter /FlateDecode >> stream xœ+ä2T0BC 4·4RHÎå2Ð30µ´´ ë"s€r…åFf æ&`QCˆ LÉ)m endstream endobj 119 0 obj 55 endobj 120 0 obj << /Type /XObject /Subtype /Image /Width 15 /Height 16 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Filter [ /FlateDecode ] /Length 121 0 R >> stream xœûÿŸRÀÀÐ@’bbÔÃÕTQ@¤z¬Šq©Ç¥Y=1Úñ[‡GÍd.V{q¹¿ qy «z<²xC õ¸…i+’ endstream endobj 121 0 obj 69 endobj 122 0 obj << /Length 123 0 R /Filter /FlateDecode >> stream xœ­}Y“¹‘Ø{ÿŠïqáîÁ™ ømuX‡µ–4 ‡ß&¸Ts†^#rŽÕþzç‰B»ªAíÆ„D: Hä  ¾¿ÝÅz ô_ùçÕ»»¯¿‰éö»w¦ÿ~óâîëÿžn)”v{ñú.<„ ä½?ÄÞ K¸½xw×ûC‹·ÿ~§oü¯»¯þ÷ïûáãã§ÿòâÿíÆŠ!0àW·ãžœ¤€i’^äÝoÿôÍí/?ýôøñÆsܾýññÕ›×o^½üé͇÷ÿ± ±Öy¦æ¯cý:…P.ÿý‹»ØB¾aÇT(7¸}|¼£‰˜Î·ß[ã/X£oKp‹©v`\h¢‡Pv$þõ×_>™_1™>|ü~à /B¤1*±¹9 ÿ}œÛV0F]äKOqCŽ…Yèð—Ç_náaiˆZbÜ­O~7 $LD°y4EÑ—ó,êD-Ô‡ª=$HÊÍ`ÙI¤Ä謧7FTd@è_Cè&}÷¨Lg¤™òÇG•^Àö. HR$c3æ’ª™È2Y4Ÿl=Ýzç–”³- IQKUóTE£Õø[hË>²Ã4—4GXƒ}ŒS¬Æ[I”ˆšc˜’1±±!é0±™LÇÛ»˜0l9h 2$H,cq.­»^Ò´Ü*•˜_­4µªÑí=v™˜Û‚ KHõ¨J÷âìŒ*S±W‹J´•Ù:˜ZR$²P5‡b€Øq¼ÒmôaSáS§ e5E035¥¦ñËh+d ÙÙ·&”t3Ô¤ $~(ªD5©'¹¼‚#ª Ô#Ë ?j hy‹õ7jOæµéú€á%§<Úd’å†-Œ’= Zš|¥ÁÔ€¥–…zÄÊROòM¥kh>­Ž¥í¤cV¬†d úÔ°µ‹Xƒ¹ÍFÒ¤‚¸)¥`dŒl6½0Ø'~ƒG6ôRToAÆHù%"ES ­(•¨ÍqKU)ÏŽ@i˜ˆ2¬u¤òH>²dPAÊAå³´bÌÊI\Í ·\‚‘%þ¹VÅ6 n™U‹†R­Õ¨‘Á—GÂXÕÇÔÜÕz²ÓTÌKà˜œÜ’bU8€\Æ#qÈ^ëø%ˆÿ$eÎŽFâC³y 19¹,î's³é&âX;¨±«S.d‚óGêesåæ^Öéc&©¥î “/Ž6›Ù"ª³7¢¥±ÌÐ}¬æ›‹¹.æ/ÐŒh¢°-ëŸ(d;žú¤þlCØ8»Œ9s®"‡j¦ÑÍÈdÊ>{¦® —ØÔ5óz“YÊ)™É QMqó9SI‹ìylѨÞq˜%Ã4Œ¥g£9íRÌ饖¹­|HÃã˜iH'SÛ Èe×õ-tYKME¡ø[ä£e 59zÝ–™›“¿g}+%'E/&’UýõTóAƒ8]üJuÊ8@)@¤êÓDô÷0¬ÓƦ)§ Ã# —»‰±Èuíuváòh.œÚÎüޅ׎^Éí]8„rpá nÒ_ˆfy7wË&pï¡ÀpÏÚVÈ"sÍm…¡¤ã0&…;NÎáàÂÙì]8»½ /=\¸xŒ §d¸pi› gȽ çØkïÂyƽ /-\x1 ¾¹p^ÝÞ…S’upáBsáÒ6·-b0·7ÎÜÜ»pˆùàÂ!¥ƒ ‡gšƒL.j?¸pÀrpá Q©»pvq{Ž .-nÛ\8';{Ž˜gN{vᢛ çfïÂ-‡\x“€y¸ðÆ•’Í…SØ>»ð¦tœ\8ç;{ÎSì]8£±wáhº¹¹pÉIw.-:Ü\8V8¸pT·<¹pLùàÂÑfß\8[òÉ…¦ƒ 'þÎ.\Ö\8lí]¸'› Ëc6Îr¸wá³)ûìq˜ºáÂÁb'œÌRœ]8x65¼$<¸pÈppáâ²v.j>¸pJ f.Z8¸phíàÂÁBÇÍ…CïŽ!\8ë÷.C?¸pŒñàÂQíÌäÂ1æƒ G®àl.| Wʃì]8O´wá,ó{Ž®ph¢—.z›]8ô|páÐêÁ…ÂÁ…ƒ…»› ‡ZgN{pá`…žÍ…CêΆpïÂ]7΋߻p°,Ü\¸àáÂg1f¹&ïÉö¥ uoÖ~ËmƒÃ>ö®úo–óí„ ö³Ùš­bP&G=0í%Õ«£0h0`#k9{°[e ä±{Õ¨ªÜWRµèaRFêTîÜâSO·‡±—"µfãdulÊ„$DbÍ'Ði dœµ®•º<2ÅHÞ¥ YÕˆœ·MQ­Ô& 4 ­AÕ»K¹F{²UÒ:8æVÀár¢ÁhKjžA{‚W¨-nh©9;Ð2ªì#sjîÆWGÙŠiE¢ ß`|7›”Ý£tåõ¸ÿè`µ¬d×ÊÅÀb¾ÁÆÉžžHýâÄaü Z®Ù<\è!ŒR§*_ëVCÎÁ`Z#BAwÓZVC¢ MBI6$èðê2Sq—Ù4·ÍýdÓ3MYÓ*Lú¨<­€Ø ª™lžtX¶:Q/®E%‘åÄ5€aÛAíDéè¯4‹f'Æ SÌ ‘Z(ÓÌisRvp\'o—5pÑè‡ÄÀ"*l&·|Øà=xˆ‡ hÀű X·a»‘WÄRÖ† FË2bjè”=Y¶ÈÔ©üõ3l†MþÍ ÖêÒNV^­#f5Õ¢Œ2Q>5hµÀ¬¤ôts#à=8ŒÞÜþ—ËOdÁßq[ãÃŒ5 u8ÑÙz£V܆IÀŒæ¹©G I…a/Q“—ZmïbP«ün 5”eÉ2> ¥ªd[mв¥†£GÕZãRb¸%¯Áö^Ä Ë+Á­cÈÙY§Bä¯d´X‡ÀÚ,&zœJ˜9 ^C nºÅóÙ¦&¡Ö² y#sKäy”Í£λ( ®Lò˜ÔÎ9_„K¹Z¶ñÎÚ”m0T†¶Ï{ÈåF%€®&w­”¯­Cáh!j¼¯0%6+i»?+šyX€AfEë].JµJ jZAÍËz4îi¦3-á-›½z@µø§t @B‡¨´7˜¬ûvdM ·šM¾’ùlà@A¥Éå‚UJSF„j›a,ƒ†O±J¸ ¬Å h» ò)&Ò­ƒ( áoi‰ÄâÓc¾™‘’G¬6šŸÕG«fú[÷«Ä´Ý¯ ŽÊ­'Tðm!Ë­ó,I4nâš@÷-h¤\jìëX[mPÙvƒ¬­0%E󻿷¨§ÙÞ«uÉÕp3ÓOr¢ GéÍ$GÚ±A(²ä‘SêÁ(&Ѥ͙LF ARqÇ1¾hDmc´d¬Ÿ›*}‰›À«ÀdÎJ² yˆY‰‘«S=òB½kVîMõ;S“ìå¶ìøg/Kd‹N![X]…A%ŠÃ]{ËbGŠ–Œj0¶‘+kL* ŽVÁd̽`®Ý‚×Ö IE(xÅÅm ³¢¹dÂÓ·Ý]åTB”¹õ!?ÚV¹J±Ú “Rv¯Ieò_™’JÐxKƒ^éñ±ê£o6ë€ÕÃe{Œ&W \Ó ’´Iñ¬ýuí<ŽˆG¶ú O¤Æ^‰ÏõeaÇÐAU —³•—£¦¬:Lª£¶dÃÆêµ%mk=i³öbû;ðžu-m Ñ­Þ&Y©Œ{$ )`ØÁ÷1Šq©[µ–O5¨€t­Óp¾ ª¼gªKáQâ¡ \§Ôhß­`·}6VkC¦YªÒ³IP×`NŒÁtcQ·”z4jjÁ ¡K©`kG‰<”ÏK½RFÙ¬–ÜÙ©€·¬< —ÒÁ·˜¹€¢ü1Q$Qõ€ÕAl^vÕä-|Í5\u8Ž×̽%—4¹ÐWjÝç€ÙOb4%ù°Ž W´¾ãúNÏ5¬Ìª¹€oXx®œ²{ýCW ÕZøy?áíÔ€ž‰‘tC嬧à¯du8à¥[Dí×9« kõƒf»óÀÕMÙÝðK#uKIh ¶‘š#lù8©š%hp^53Ò+›:׸ ™D<æcY÷2¨½…*¿ íÑ?Æ,:šøDìø4JÊÞc.¢l‚—½–êÑ0 Úò\̪×RÃÝšâhÉ›¨­ö##Í=<]®¯G·Éxc†ñ–Na£¯6¡¶'ÕE‚å’h®ŠC&rñx„ÏTÈ_Kóž˜åqkg7>ÞþÁ—E壀êÌš‘¤Ûg´*änÒã²ÌÇ=4ø0Bz”Ó‚HŠ3´—ªmC²FÏeØIª¸ù˜\ÀÉ&€¦ßêr 7ôžŠ= õ­*,¬ M2ؼ$çÈK^:úì ‘éw¥/\´G eXOTÏP+vR¯òAÔ©pMO••'¾‹kŠ.§¨s'q3Àµ±Ö}œª™jÄ%=v&  —ÕÏÑ>¯Ÿ“Éq=Óøo¿ÖGDè\³[7™ ÃŒ™xD+hõâ"l›ÀØ=Òj¶ùÅÅ3|ÃÙTÁãop3Ð*Øñ.·dêI 31f¡F{ÕÉÄG0¥sÊæ«¢íäd¥7Œ ¹ )†í®”cÙ+ý5G¢Ñ-§µƒ¹šõÇh%¡ì›*ÔÃÃzµtóë:gmÁ2™H’A?ž%ȈQ‹FAXª*^;@/öqŒÜÆd¹d0²”¬D°Íÿ«mþL¯‡|˜"ØŒ ®ÂÌ@54õˆÛr‚WÛ–°Í4ƒh>ÈFXŸh#¾#31Èž˜h‹šm«ž„a’–ÏYšxN¯m„¨\²ý´mêñ0˜Ìõ[xN=Å't»Æ“ùSð4Ѳ|ä3_ÕNê zlDÂskg¥«ž.™Ú ìD% ¼å*·Z>K‡ £“í@J0ËÂ|SËÒû`TKv‰HY‚öäA4i놱@î6ŒÑ [cÃXfÜN+P» cÁ|·a,«Ûm£”šç c¥O [[ùÝÂ|ÞhÖ­ŒH"P“m¶eó_Èù‡Ø«b 6²ÒàÝ\V+Ípl®|æš‚˜U ªôB¥¸Gƒîn˪–70C앱ßÖ;­Ø¢%Èe, 籺TÆæãô‘Z[…¨„vh+Œ”¢´Þ/ÉÊÑÊXrRáÒÅr  +{%wK-`!Ÿ½*¡ž—ÀÄÔË+¾ÔS,‹vy,ÉÏZPŒ¹['ä:í4tµP³SKD¨'˜›CDÎÏÁNC+¹z‰$êc2׆>¬g¶ÝÂmñÅÊ‹ìiGpåκ!&»+ÖÛ–q¶žf)·Ûžl[ÿÌSCû8¬ÄÉjúÖVÎz~|4vZnHKÒó.Â_=i•HŒ‡Êjêh[Å.Ùv©ÙªšdN9U3„£íoc ®kØý•l•8?ÚO=Æß:–Y,3.nôÙèÞàà¯Æ…¼'¡m³¸ßÊÉŠêàv%G;1RÝ#æÐ412a ^^v¾0¼>¥è¥n¦(åA=7rmôØÉQ’ѹIåBDZäž+Fs“ÜuÔq|e~4SWJÚ· ÌÛ®˜Ñ2¡Ð\µ¨IèÙ)dÿ¯VÙ)S¢mo§vÇwê±R˰¥%Z ¿¸Ã,É{¯z¶ðîY k ¯BRжª[N.™kñÎi^º1׋GÈW+dêä2\¼,‹OÔv~¦X˜R‡‡,ˆæ‹òè±½/r¶Fjȃrµ%}öhU+…Ó8V/g~§fƒñЊ¼í¼ ~€4ÜPÊSB‡ÌQ¬;jk‘Û¢ë£Cd'IJï'(øY»6Ýá!oû;<Ô÷wx(zhû;<Ôû;<Ô³mÕCr˜ÝÙ‡Zf@=~êÔÎ`O~…ÆKW¼9º»ÃCL¸mwx¯ŽìîðÐøqºÃ³=ªe£·ÝáÙX ò|‡›Eã¶â£åR”0…ýl~ÓÆO˜PŸTp}¢Äh‡‡zúþù«²¿ÃCô û;<ÔÓJÓþOãmÀíO V!²ÇTq‡§%Ûwx۳ݞ–,wxZò[[¸õÀt‡§%ß’÷;<àîîðP‡澈ü~¬Ú²˜Æ–~w‡§ñúÝž–sîálY)`׎ Ãîݨww¶;<·¥·;<-æíN‘.<ÚÉ• çhÕ‚q‡‡8îïð4ߺwx¤gw‡gƒñ;<2Îîõ„ýžmÇmÜá wwx¨'ìïðìL‡Ú’ü‚¸¿ÃC\ Óž ˜_}­w SLvÅ,ÛÇÇ;Æ3õÂW,­õý $ÍÚ 4#o¸ÿa´&ÐmÔ$ veóµÞA ÓµÉĆٯMêEœý–;ßš×S+w?Ÿ‚'¿ˆþ«çpEopÏá(ÌÙàÎnž>Mþ-mЯÎárN+XV ç3àޟÑÞà^ŸÂñù£ îÍ9ý³Á}Ç÷¤ÜÏçp à µ1¦ îå9߈p?ÃÕWÖ‹¬ðƒä9ø1Kðçצÿ³zÎï†ç¦×Ô¿z¡X?yGŸ’ô÷a–á' É ô úÝ9\¼Á=žÃQ ±Wf,zKŠñ6èOçpPÛ÷ã9¸%,[žhþê®Ç‰Šo.àH3ÜëS¸r^²ª#~TÌ â s&s?àþ~WrXï¯Oà*¬p%Cn™½ZuÃIv>žÃõÜWf/!M²ó·s¸§Õü|—bXáuIVÖQrZ¢báo1,h~YäJÙqåý9β}. …‚óƒt]p¹ô:­æå)\ ³lŸcY9:p}föJaðŠ&ð=Ì^×R&™ø÷s¸šÊ7WXBï+Ö¬b›$íÃ9\CX¢åÎêSBY²:¬hŸ6]‘ H%­pRÏ+ë%EhKëØqù9 °ÂÀX^Úfò/çp|–sÁ `€‰F?œÃÅÙSŸóÓ'¼½€ë“ì¼~fÕ\[¡%—…¾`T¾—²ÀwÄ–hÔÊh7åíKÚ-Éà~í Ÿ³é›ÝÒ=-þfÍÇÇ/]K¨»¯þœG?±Q’ëàž3ö–7¸s}L¼:à.¢¸aƒ;ç_¢ yƒ»ˆö¥Áî\Ê(fnKë(uZï¹Î¤šqƒ;׊ªÛÒ:€tp….Ð'üÎãÆ„ó¼ÿõ¹Ø¿õº4{/Ӫϵ*‡y5ÏiUŽmâá·±õ,³ºˆ­çÕ|óÜì5N”úãED÷Û¥õ¶¾&þèÍÊš(:®+”¯)öËFñóDËsÏ@† V,V-iZõ÷Wñó4ï¹§áï¬Hßâ]чŠ0Íû׋»â —kŸeçïÏÅ|1ÀŠ€¸¶àÌtÁZgIKp°ÄerKKÒÅsÒpgÏúz%γŸû9Tº¬Ðë’µÀP&ÞœWºø˜Ö\š5æ\Â)ÎŽ+š¹Õ¥y ö¥ykYй°ö%OHŽV¸Œ|9a™{Ø0­è5öYÆÎ5«…Y¯Ïí"o­P§ÅY³Î5†âõ£æI•šn²L<9û}óññÕOo~yüt{óþöÓ·O?¾ù߼üôðËíÓ‡Ÿ?¾z¼½~óöñáö‚þ<½ð’ÒŒ—Ÿn¯?¼}ûá×OÿíˆÆé·^½'¬`ŒÁ"¼?}óÝï¾ù?ßüî÷ùî7ß¼øîŸsä‹Ñ“â¹rý€;7#)äºÁ]ë¡á÷\Q!%v€}Q0Ïqõ"õào™ ¸suN|žce<þË€»ØžÔÃá. úˆÓxÉDcµ_¯s*¸[ïU8ò4û¹y h(­Ìžù’Õ€»ØNHØWd'ç<Éâ¹yÈ%Õ%üjh벘¡ÔÞd.³,hLÆ~¤âÕì\þ_´Â's$·D˜4æß.’ˆ+¼)yæõ~¥Në¸Øv¨õ8ÞUº³¾^÷%`]˜½×¼²šú4ÞE?ãõÓp ˺¾Ö&Þ\¤9¥ÃA/Ëð)-­ #¬HFÅYÒÎõ¦òšem¤”V8¢aëµ×ã4ï¹íÌ|”p{™¿=஢jÒÆw§Yº.¢àäpOÏúÙNY®|5ƒ‰@ïËå«{Ίþú~¡¿ƒ\=d‚è·î_}Rrdþ»|ž†gùÔ·P¾¸Á­WwúYFé­ú\[¿o‰ÿˆ:P¼¡|–‡Qöòß­]Éî*‡øŒLƒQç÷iI ·(y†°.N.›Þ“é]ç{>«Öµ/+q9%Ko¸é§ï+äòá}eo'£Ò̼ŒZyæ]MŽ2­ÙZeB¾òÑÙì«Â±>±ºÖæÏT1 ±nC?)Âf$ªØR+¹©Ij‡ôç ¥ Ãhë'ñy<ýì;›½èÎв”™„bQ;²yŠW“׸ܽdþ<åä¥È©—’O›rC>vS¶å?p+Wƒ•¯.q#Âø¿ysŒOþ¶jŸÃ2ÒÂD.Py1Ý-O‡t‡wK—Œ°i0˜–ÞÉ|nÕçã›Ôzfúí‡ï/ÿ•›‡™RãPu›É~Àv€á™1bc+icpÐJ‚n?»kç!ž¦fcy( ‘#ý£Òz’QÞ½ùì'zŸ~gü¶’濚úîå¿­½kÒ ðÅvÎܸŸyU’0Cœ×JÄO¯ÞþëÚR‚€ Kÿô÷OO¼ÿ„ˆeØDlwFþùWùÛß•>É?z¿”?¾nRDÒË(üîñõËŸßþtûååÛŸoo>±iþb^9‚â!cbáûã?ýßï~û?þé/Ǿì'žuÊý„DÏœÆpÏœÆpÏœÆpÏŸÆ!­З§qòwQ¹Ï}ZõÕiÎÝÆãë0îê4μêËÓ8iƒ»¼¼ýôñåûOŸå('á!àK”þcr¨õy†ôí·OÜRøGÒú!÷{ñàÇ—_¾{üéñãÍ®kÈõ÷?¿ûêúðúöéíË_oŸß>¾úéöVîsü'pGÄùyî´/ÍEÿâîÏôßÿÎãg‘ endstream endobj 123 0 obj 8824 endobj 124 0 obj << /ProcSet [ /PDF /ImageC /Text ] /Font << /F0 11 0 R /F1 12 0 R /F2 21 0 R >> /XObject << /I12 120 0 R >> >> endobj 125 0 obj << /Type /Annot /Subtype /Link /Rect [ 109.55 33.72 200.50999 46.32001 ] /BS << /Type /Border /S /D /D [ 3 3 ] >> /Border [ 0 0 1 [ 3 3 ] ] /C [ 0 0 0 ] /A << /S /URI /URI (http://www.opencores.org)>> >> endobj 126 1 obj << /Type /Metadata /Subtype /XML /Length 1337 >> stream Microsoft Word - spi.doc Win2PDF http://www.daneprairie.com simons 2004-03-15T18:13:21Z PDFlib 3.03 (Win32) 2004-03-15T18:18:18+01:00 Microsoft Word - spi.doc simons 2004-03-15T18:13:21Z 2004-03-15T18:18:18+01:00 2004-03-15T18:18:18+01:00 Microsoft Word - spi.doc simons endstream endobj 131 0 obj << /Fields [ ] /DR << /Font << /ZaDb 132 0 R /Helv 133 0 R >> /Encoding << /PDFDocEncoding 134 0 R >> >> /DA (/Helv 0 Tf 0 g ) >> endobj 132 0 obj << /Type /Font /Name /ZaDb /BaseFont /ZapfDingbats /Subtype /Type1 >> endobj 133 0 obj << /Type /Font /Name /Helv /BaseFont /Helvetica /Subtype /Type1 /Encoding 134 0 R >> endobj 134 0 obj << /Type /Encoding /Differences [ 24 /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde 39 /quotesingle 96 /grave 128 /bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction /guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft /quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron /Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron 160 /Euro 164 /currency 166 /brokenbar 168 /dieresis /copyright /ordfeminine 172 /logicalnot /.notdef /registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu 183 /periodcentered /cedilla /onesuperior /ordmasculine 188 /onequarter /onehalf /threequarters 192 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] >> endobj xref 0 135 0000000127 65535 f 0000000016 00000 n 0000000168 00000 n 0000000259 00000 n 0000000482 00000 n 0000000606 00000 n 0000000744 00000 n 0000000763 00000 n 0000000981 00000 n 0000001000 00000 n 0000001363 00000 n 0000001384 00000 n 0000001489 00000 n 0000001596 00000 n 0000001714 00000 n 0000001861 00000 n 0000001994 00000 n 0000002014 00000 n 0000002261 00000 n 0000002281 00000 n 0000004086 00000 n 0000004108 00000 n 0000004214 00000 n 0000004344 00000 n 0000004573 00000 n 0000004720 00000 n 0000004853 00000 n 0000004873 00000 n 0000005120 00000 n 0000005140 00000 n 0000006852 00000 n 0000006874 00000 n 0000006993 00000 n 0000007222 00000 n 0000007369 00000 n 0000007502 00000 n 0000007522 00000 n 0000007769 00000 n 0000007789 00000 n 0000011971 00000 n 0000011993 00000 n 0000012097 00000 n 0000012227 00000 n 0000012456 00000 n 0000012603 00000 n 0000012736 00000 n 0000012756 00000 n 0000013003 00000 n 0000013023 00000 n 0000017546 00000 n 0000017568 00000 n 0000017687 00000 n 0000017916 00000 n 0000018063 00000 n 0000018196 00000 n 0000018216 00000 n 0000018463 00000 n 0000018483 00000 n 0000025375 00000 n 0000025397 00000 n 0000025527 00000 n 0000025756 00000 n 0000025903 00000 n 0000026036 00000 n 0000026056 00000 n 0000026303 00000 n 0000026323 00000 n 0000034329 00000 n 0000034351 00000 n 0000034470 00000 n 0000034699 00000 n 0000034846 00000 n 0000034979 00000 n 0000034999 00000 n 0000035246 00000 n 0000035266 00000 n 0000042649 00000 n 0000042671 00000 n 0000042801 00000 n 0000043030 00000 n 0000043177 00000 n 0000043310 00000 n 0000043330 00000 n 0000043577 00000 n 0000043597 00000 n 0000045733 00000 n 0000045755 00000 n 0000045874 00000 n 0000046103 00000 n 0000046257 00000 n 0000046390 00000 n 0000046410 00000 n 0000046657 00000 n 0000046677 00000 n 0000055198 00000 n 0000055220 00000 n 0000055329 00000 n 0000055470 00000 n 0000055699 00000 n 0000055955 00000 n 0000056106 00000 n 0000056241 00000 n 0000056262 00000 n 0000056511 00000 n 0000056532 00000 n 0000059049 00000 n 0000059072 00000 n 0000059183 00000 n 0000059413 00000 n 0000059565 00000 n 0000059700 00000 n 0000059721 00000 n 0000059970 00000 n 0000059991 00000 n 0000062514 00000 n 0000062537 00000 n 0000062659 00000 n 0000062889 00000 n 0000063041 00000 n 0000063176 00000 n 0000063197 00000 n 0000063446 00000 n 0000063467 00000 n 0000072371 00000 n 0000072394 00000 n 0000072527 00000 n 0000072757 00001 n 0000000128 00001 f 0000000129 00001 f 0000000130 00001 f 0000000000 00001 f 0000074180 00000 n 0000074331 00000 n 0000074424 00000 n 0000074533 00000 n trailer << /Size 135 /Info 3 0 R /Root 2 0 R /ID[<61157b87417603fcb09444d379486afb><61157b87417603fcb09444d379486afb>] >> startxref 75883 %%EOF uhd-3.5.5/fpga/usrp2/opencores/spi/doc/src/000077500000000000000000000000001224274632000204225ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/doc/src/spi.doc000077500000000000000000007050001224274632000217110ustar00rootroot00000000000000ÐÏࡱá>þÿ ¤¦þÿÿÿ¢£ü{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì¥Á5@ ø¿¬<bjbjÏ2Ï2 æö­X­XÄ/urÿÿÿÿÿÿˆ<<<<ppp4Æn®n®n®hÖ®œr¯Æ· ’±R䴦еее€ Š‘¤.’Tn¶p¶p¶p¶p¶p¶p¶$?¹R‘»”¶p””†d €”””””¶<<ее’Щ¶:ʞʞʞ””è<2еpеn¶Êž””n¶ÊžÔÊžžŸʪ€npƬ冱 V³° Än®|˜J¬,­\ ã¶<·v¬P•¼š •¼XƬ¤¸<<<<•¼pƬL‚’ZÜ’@Êž“4P“D‚’‚’‚’”¶”¶ÆÆ„OJo$?œž.ÆÆJoSPI Master Core Specification Author: Simon Srot simons@opencores.org Rev. 0.6  TIME \@ "MMMM d, yyyy" March 15, 2004 Revision History Rev.DateAuthorDescription0.1June 13, 2002Simon SrotFirst Draft0.2July 12, 2002Simon SrotDocument is lectured.0.3December 28, 2002Simon SrotSupport for 64 bit character len added.0.4March 26, 2003Simon SrotAutomatic slave select signal generation added.0.5April 15 2003Simon SrotSupport for 128 bit character len added.0.6March 15, 2004Simon SrotBit fields in CTRL changed. Contents  TOC \o "2-2" \h \z \t "Headeing 1 Name,1"  HYPERLINK \l "_Toc28803244" Contents  PAGEREF _Toc28803244 \h ii  HYPERLINK \l "_Toc28803245" Introduction  PAGEREF _Toc28803245 \h 1  HYPERLINK \l "_Toc28803246" IO ports  PAGEREF _Toc28803246 \h 2  HYPERLINK \l "_Toc28803247" 2.1 WISHBONE interface signals  PAGEREF _Toc28803247 \h 2  HYPERLINK \l "_Toc28803248" 2.2 SPI external connections  PAGEREF _Toc28803248 \h 2  HYPERLINK \l "_Toc28803249" Registers  PAGEREF _Toc28803249 \h 3  HYPERLINK \l "_Toc28803250" 3.1 Core Registers list  PAGEREF _Toc28803250 \h 3  HYPERLINK \l "_Toc28803251" 3.2 Data receive register low/high[RxL/RxH]  PAGEREF _Toc28803251 \h 3  HYPERLINK \l "_Toc28803252" 3.3 Data transmit register low/high[TxL/TxH]  PAGEREF _Toc28803252 \h 4  HYPERLINK \l "_Toc28803253" 3.4 Control and status register [CTRL]  PAGEREF _Toc28803253 \h 4  HYPERLINK \l "_Toc28803254" 3.5 Divider register [DIVIDER]  PAGEREF _Toc28803254 \h 5  HYPERLINK \l "_Toc28803255" 3.6 Slave select register [SS]  PAGEREF _Toc28803255 \h 5  HYPERLINK \l "_Toc28803256" Operation  PAGEREF _Toc28803256 \h 7  HYPERLINK \l "_Toc28803257" 4.1 WISHBONE interface  PAGEREF _Toc28803257 \h 7  HYPERLINK \l "_Toc28803258" 4.2 Serial interface  PAGEREF _Toc28803258 \h 7  HYPERLINK \l "_Toc28803259" Architecture  PAGEREF _Toc28803259 \h 9  HYPERLINK \l "_Toc28803260" Core configuration  PAGEREF _Toc28803260 \h 10  1 Introduction This document provides specifications for the SPI (Serial Peripheral Interface) Master core. Synchronous serial interfaces are widely used to provide economical board-level interfaces between different devices such as microcontrollers, DACs, ADCs and other. Although there is no single standard for a synchronous serial bus, there are industry-wide accepted guidelines based on two most popular implementations: SPI (a trademark of Motorola Semiconductor) Microwire/Plus (a trademark of National Semiconductor) Many IC manufacturers produce components that are compatible with SPI and Microwire/Plus. The SPI Master core is compatible with both above-mentioned protocols as master with some additional functionality. At the hosts side, the core acts like a WISHBONE compliant slave device. Features: Full duplex synchronous serial data transfer Variable length of transfer word up to 128 bits MSB or LSB first data transfer Rx and Tx on both rising or falling edge of serial clock independently 8 slave select lines Fully static synchronous design with one clock domain Technology independent Verilog Fully synthesizable 2 IO ports 2.1 WISHBONE interface signals PortWidthDirectionDescriptionwb_clk_i1InputMaster clockwb_rst_i1InputSynchronous reset, active highwb_adr_i5InputLower address bitswb_dat_i32InputData towards the corewb_dat_o32OutputData from the corewb_sel_i4InputByte select signalswb_we_i1InputWrite enable inputwb_stb_i1InputStrobe signal/Core select inputwb_cyc_i1InputValid bus cycle inputwb_ack_o1OutputBus cycle acknowledge outputwb_err_o1OutputBus cycle error outputwb_int_o1OutputInterrupt signal outputTable  SEQ Table \* ARABIC 1: Wishbone interface signals All output WISHBONE signals are registered and driven on the rising edge of wb_clk_i. All input WISHBONE signals are latched on the rising edge of wb_clk_i. 2.2 SPI external connections PortWidthDirectionDescription/ss_pad_o8OutputSlave select output signalssclk_pad_o1OutputSerial clock outputmosi_pad_o1OutputMaster out slave in data signal outputmiso_pad_i1InputMaster in slave out data signal inputTable  SEQ Table \* ARABIC 2: SPI external connections 3 Registers 3.1 Core Registers list NameAddressWidthAccessDescriptionRx00x0032RData receive register 0Rx10x0432RData receive register 1Rx20x0832RData receive register 2Rx30x0c32RData receive register 3Tx00x0032R/WData transmit register 0Tx10x0432R/WData transmit register 1Tx20x0832R/WData transmit register 2Tx30x0c32R/WData transmit register 3CTRL0x1032R/WControl and status registerDIVIDER0x1432R/WClock divider registerSS0x1832R/WSlave select registerTable  SEQ Table \* ARABIC 3: List of core registers All registers are 32-bit wide and accessible only with 32 bits (all wb_sel_i signals must be active). 3.2 Data receive registers[RxX] Bit #31:0AccessRNameRxTable  SEQ Table \* ARABIC 4: Data Receive register Reset Value: 0x00000000 RxX The Data Receive registers hold the value of received data of the last executed transfer. Valid bits depend on the character length field in the CTRL register (i.e. if CTRL[9:3] is set to 0x08, bit RxL[7:0] holds the received data). If character length is less or equal to 32 bits, Rx1,Rx2 and Rx3 are not used, if character length is less than 64 bits, Rx2 and Rx3 are not used and so on. NOTE: The Data Received registers are read-only registers. A Write to these registers will actually modify the Transmit registers because those registers share the same FFs. 3.3 Data transmit register [TxX] Bit #31:0AccessR/WNameTxTable  SEQ Table \* ARABIC 5: Data Transmit register Reset Value: 0x00000000 TxX The Data Receive registers hold the data to be transmitted in the next transfer. Valid bits depend on the character length field in the CTRL register (i.e. if CTRL[9:3] is set to 0x08, the bit Tx0[7:0] will be transmitted in next transfer). If character length is less or equal to 32 bits, Tx1, Tx2 and Tx3 are not used, if character len is less than 64 bits, Tx2 and Tx3 are not used and so on. 3.4 Control and status register [CTRL] Bit #31:14131211109876:0AccessRR/WR/WR/WR/WR/WR/WRR/WNameReservedASSIELSBTx_NEGRx_NEGGO_BSYReservedCHAR_LENTable  SEQ Table \* ARABIC 6: Control and Status register Reset Value: 0x00000000 ASS If this bit is set, ss_pad_o signals are generated automatically. This means that slave select signal, which is selected in SS register is asserted by the SPI controller, when transfer is started by setting CTRL[GO_BSY] and is de-asserted after transfer is finished. If this bit is cleared, slave select signals are asserted and de-aserted by writing and clearing bits in SS register. IE If this bit is set, the interrupt output is set active after a transfer is finished. The Interrupt signal is deasserted after a Read or Write to any register. LSB If this bit is set, the LSB is sent first on the line (bit TxL[0]), and the first bit received from the line will be put in the LSB position in the Rx register (bit RxL[0]). If this bit is cleared, the MSB is transmitted/received first (which bit in TxX/RxX register that is depends on the CHAR_LEN field in the CTRL register). Tx_NEG If this bit is set, the mosi_pad_o signal is changed on the falling edge of a sclk_pad_o clock signal, or otherwise the mosi_pad_o signal is changed on the rising edge of sclk_pad_o. Rx_NEG If this bit is set, the miso_pad_i signal is latched on the falling edge of a sclk_pad_o clock signal, or otherwise the miso_pad_i signal is latched on the rising edge of sclk_pad_o. GO_BSY Writing 1 to this bit starts the transfer. This bit remains set during the transfer and is automatically cleared after the transfer finished. Writing 0 to this bit has no effect. NOTE: All registers, including the CTRL register, should be set before writing 1 to the GO_BSY bit in the CTRL register. The configuration in the CTRL register must be changed with the GO_BSY bit cleared, i.e. two Writes to the CTRL register must be executed when changing the configuration and performing the next transfer, firstly with the GO_BSY bit cleared and secondly with GO_BSY bit set to start the transfer. When a transfer is in progress, writing to any register of the SPI Master core has no effect. CHAR_LEN This field specifies how many bits are transmitted in one transfer. Up to 64 bits can be transmitted. CHAR_LEN = 0x01 … 1 bit CHAR_LEN = 0x02 … 2 bits … CHAR_LEN = 0x7f … 127 bits CHAR_LEN = 0x00 … 128 bits 3.5 Divider register [DIVIDER] Bit #31:1615:0AccessRR/WNameReservedDIVIDERTable  SEQ Table \* ARABIC 7: Divider register Reset Value: 0x0000ffff DIVIDER The value in this field is the frequency divider of the system clock wb_clk_i to generate the serial clock on the output sclk_pad_o. The desired frequency is obtained according to the following equation:  EMBED Equation.3  3.6 Slave select register [SS] Bit #31:87:0AccessRR/WNameReservedSSTable  SEQ Table \* ARABIC 8: Slave Select register Reset Value: 0x00000000 SS If CTRL[ASS] bit is cleared, writing 1 to any bit location of this field sets the proper ss_pad_o line to an active state and writing 0 sets the line back to inactive state. If CTRL[ASS] bit is set, writing 1 to any bit location of this field will select appropriate ss_pad_o line to be automatically driven to active state for the duration of the transfer, and will be driven to inactive state for the rest of the time. 4 Operation This core is an SPI and Microwire/Plus compliant synchronous serial controller. At the host side, it is controlled via registers accessible through a WISHBONE rev. B1 interface.  4.1 WISHBONE interface The SPI core has five 32-bit registers through the WISHBONE rev. B1 compatible interface. All accesses to SPI registers must be 32-bit (wb_sel[3:0] = 0xf). Please refer to the WISHBONE specification at  HYPERLINK "http://www.opencores.org/wishbone/specs/wbspec_b1.pdf" http://www.opencores.org/wishbone/specs/wbspec_b1.pdf 4.2 Serial interface The serial interface consists of slave select lines, serial clock lines, as well as input and output data lines. All transfers are full duplex transfers of a programmable number of bits per transfer (up to 64 bits). Compared to the SPI/Microwire protocol, this core has some additional functionality. It can drive data to the output data line in respect to the falling (SPI/Microwire compliant) or rising edge of the serial clock, and it can latch data on an input data line on the rising (SPI/Microwire compliant) or falling edge of a serial clock line. It also can transmit (receive) the MSB first (SPI/Microwire compliant) or the LSB first. It is important to know that the RxX and TxX registers share the same flip-flops, which means that what is received from the input data line in one transfer will be transmitted on the output data line in the next transfer if no write access to the TxX register is executed between the transfers.              5 Architecture The SPI Master core consists of three parts shown in the following figure:    Appendix A Core configuration To meet specific system requirements and size constraints on behalf of the core functionality, the SPI Master core can be configuredby setting the appropriate define directives in the spi_defines.v source file. The directives are as follows: SPI_DIVIDER_BIT_NB This parameter defines the maximum number of bits needed for the divider. Set this parameter accordingly to the maximum system frequency and lowest serial clock frequency:  EMBED Equation.3  Default value is 16. SPI_MAX_CHAR This parameter defines the maximum number of bits that can be received/transmitted in one transfer. The default value is 64. SPI_SS_NB This parameter defines the number of slave select lines. The default value is 8. OpenCores SPI Master Core Specification  DATE \* MERGEFORMAT 3/15/2004 HYPERLINK "http://www.opencores.org/"www.opencores.org Rev 0.3 Preliminary  PAGE ii of  SECTIONPAGES3 HYPERLINK "http://www.opencores.org/"www.opencores.org Rev 0.5  PAGE ii HYPERLINK "http://www.opencores.org/"www.opencores.org Rev 0.6  PAGE 8 of  SECTIONPAGES10 /ss_pad_o[0] /ss_pad_o[1] /ss_pad_o[2] MASTER sclk_pad_o mosi_pad_o miso_pad_i MISO MOSI SCLK /SS SLAVE 2 MISO MOSI SCLK / SS SLAVE 1 MISO MOSI SCLK /SS SLAVE 0 /ss_pad_o[0] /ss_pad_o[1] /ss_pad_o[2] MASTER sclk_pad_o mosi_pad_o miso_pad_i WISHBONE MISO MOSI SCLK/SS SLAVE 2 MISO MOSI SCLK/SS SLAVE 1 MISO MOSI SCLK/SS SLAVE 0 miso_pad_i mosi_pad_o sclk_pad_o ss_pad_o Clock generator spi_clgen.v Serial Interface spi_shift.v spi_top.v WHISHBONE Interface WHISHBONE SOC Bus WISHBONE LSB (Tx[0]) ss_pad_o sclk_pad_o mosi_pad_o miso_pad_i LSB (Rx[0]) CTRL[LSB] = 0, CTRL[CHAR_LEN] = 0x08, CTRL[TX_NEG] = 1, CTRL[RX_NEG] = 0 CTRL[LSB] = 1, CTRL[CHAR_LEN] = 0x0a, CTRL[TX_NEG] = 0, CTRL[RX_NEG] = 1 miso_pad_i MSB (Rx[9]) mosi_pad_o sclk_pad_o ss_pad_o LSB (Tx[0]) MSB (Tx[9]) MSB (Tx[7]) MSB (Rx[7]) LSB (Rx[0]) !4KRSTUmn|}‘¯   " # - . U W ¦ í ( 4 5 6 a b êÜÒËž·°·¤·¤—¤¾“·Œ“ˆ“ˆ“ˆ“ˆ“„€|“vlvljháW´CJU háW´CJhÖUãhdKÃhX$ýhúwa háW´5\háW´h×\Â5CJ mHnHujháW´5CJ U hÖUã5CJ háW´5CJ háW´6CJ háW´CJ háW´5CJ4háW´CJ`OJQJháW´CJ`OJQJmH sH *jháW´CJOJQJUmHnHtH u# !4IJKT~‘–›¢®ûy 4² ûy 4² òy 2Ëòy 2Ëðy ¼òy ¼òy ¼òy ¼òy ¼òòîìææææ$If$ Æf!a$¤Ä799«<ýýý®¯³ÁÌ9.(($If  ÆàÀ!$IfÆkd$$If–lÖ    Ö\”ÿÐ~ ôÀ!< ® v Ì  Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö,"ÖÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laöpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿÌØÙÝëö ùcùùùù•kdk$$If–lÖ    Ö\”ÿÐ~ ôÀ!<ÿÿÿÿ®ÿÿÿÿvÿÿÿÿÌÿÿÿÿ t¯Ö0    ö,"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laö$If  # . V icccc$If•kd=$$If–lÖ    Ö\”ÿÐ~ ôÀ!<®vÌ t¯Ö0    ö,"ÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laöV W [ j u ¥ icccc$If•kd$$If–lÖ    Ö\”ÿÐ~ ôÀ!<®vÌ t¯Ö0    ö,"ÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laö¥ ¦ ª ¸ à ì icccc$If•kdÅ$$If–lÖ    Ö\”ÿÐ~ ôÀ!<®vÌ t¯Ö0    ö,"ÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laöì í ñ ' icccc$If•kd‰$$If–lÖ    Ö\”ÿÐ~ ôÀ!<®vÌ t¯Ö0    ö,"ÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laö' ( ) + 4 5 ¬ ù B iga\UOOO Æ  Æ $a$ ÆàÀ!•kdM$$If–lÖ    Ö\”ÿÐ~ ôÀ!<®vÌ t¯Ö0    ö,"ÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿÖÿÿÿÿ4Ö laöb c d  € ‚ Š ‹ Œ ¥ ¦ § © ª « ¬ ­ ® É Ê Ë Ì Ø Ù Ú ó ô õ ö íßÖß¼íß±¢±‘¢†¢ívíßÖß\íß±¢±K¢† j‚húwaUmHnHu2jh·húwa>*B*UmHnHphÿuhúwa5;\mHnHtH uh×\ÂmHnHu jŒhúwaUmHnHujhúwaUmHnHuhúwamHnHu2jh·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHu$jh·húwa0JUmHnHuö ÷ ø ù ú û     ! " # < = > ? @ A B C D _ ` a b € ‚ › ðÝÍÝ¿¶¿œÝ¿‘ð‘€ðuðÝÍÝ¿¶¿[Ý¿‘ð‘2jóh·húwa>*B*UmHnHphÿuh×\ÂmHnHu jxhúwaUmHnHuhúwamHnHu2jýh·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHuhúwa5;\mHnHtH u$jh·húwa0JUmHnHujhúwaUmHnHu› œ ž Ÿ   ¡ ¢ £ ¾ ¿ À Á Ý Þ ß ø ù ú û ü ý þ ÿ     ' ( ïàÕ൧ž§„§yàyhàÕ൧ž§N§y2jß h·húwa>*B*UmHnHphÿu jd húwaUmHnHuhúwamHnHu2jé h·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHuhúwa:mHnHtH u$jh·húwa0JUmHnHuh×\ÂmHnHujhúwaUmHnHu jn húwaUmHnHuB ¡ þ H   y à ?žè?”á579FGãäGH¢ùùóùùùùùùóùùóóìêèæææÛÛÖæD & F D ÆhЄÐ^„Ð Æ  Æ  Æ ( ) B C D E F G H I J e f g h  € š › œ ž Ÿ   ¡ ¢ ½ ¾ ðåÔðÉ𶦶˜˜u¶˜åðådðÉð¶W¶˜˜húwa:mHnHtH u jP húwaUmHnHu2jÕ h·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHuhúwa5;\mHnHtH u$jh·húwa0JUmHnHuh×\ÂmHnHu jZ húwaUmHnHuhúwamHnHujhúwaUmHnHu¾ ¿ À ë ì í     ) * + , X Y Z s t u v w x y z { æÓź«ºš««Ó‚ÓÅyÅ_Óź«ºN««Ó‚ÓÅ j<húwaUmHnHu2jÁ h·húwa>*B*UmHnHphÿuhúwamHnHuhúwa:mHnHtH uh×\ÂmHnHu jF húwaUmHnHujhúwaUmHnHuhúwamHnHuh·húwa0JmHnHu$jh·húwa0JUmHnHu2jË h·húwa>*B*UmHnHphÿu{ – — ˜ ™ ¿ À Á Ú Û Ü Ý Þ ß à á â ý þ ÿ  9:;<=>?öèλ谡°¡…¡»x»èöè^»è°¡°M¡…¡»x j(húwaUmHnHu2j­h·húwa>*B*UmHnHphÿuhúwa:mHnHtH uh×\ÂmHnHu j2húwaUmHnHujhúwaUmHnHuhúwamHnHu$jh·húwa0JUmHnHu2j·h·húwa>*B*UmHnHphÿuh·húwa0JmHnHuhúwamHnHu?@A\]^_}~˜™š›œžŸ »¼½¾ÇÈÉâãäåæíßÖß¼íß±¢±‘¢†¢íyíßÖß_íß±¢±N¢†¢ jhúwaUmHnHu2j™h·húwa>*B*UmHnHphÿuhúwa:mHnHtH uh×\ÂmHnHu jhúwaUmHnHujhúwaUmHnHuhúwamHnHu2j£h·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHu$jh·húwa0JUmHnHuæçèéê 9:;<=>?@A\]^_stuŽíÝíÏÆÏ¬íÏ¡’¡’v’íiíÏÆÏOíÏ¡’¡2j…h·húwa>*B*UmHnHphÿuhúwa:mHnHtH uh×\ÂmHnHu j húwaUmHnHujhúwaUmHnHuhúwamHnHu2jh·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHuhúwa5;\mHnHtH u$jh·húwa0JUmHnHuŽ‘’“”•–±²³´ÀÁÂÛÜÝÞßàáâãþÿïàÕ൧ž§„§yàyhàÕàÂX§ž§húwa5;\mHnHtH u jöhúwaUmHnHuhúwamHnHu2j{h·húwa>*B*UmHnHphÿuhúwamHnHuh·húwa0JmHnHuhúwa:mHnHtH u$jh·húwa0JUmHnHuh×\ÂmHnHujhúwaUmHnHu jhúwaUmHnHuÿ./0234567`j Á­Úüš£ÁÊ•æÓź«ºš««Óuokd_Z_kSkKkKkháW´mHsH háW´5\ hdKÃ5 háW´5 háW´5CJ(háW´ háW´CJjháW´CJUhúwa5;\mHnHtH uh×\ÂmHnHu jìhúwaUmHnHujhúwaUmHnHuhúwamHnHuh·húwa0JmHnHu$jh·húwa0JUmHnHu2jqh·húwa>*B*UmHnHphÿu¢_`j—Çæ-Bx˜¬­°¹ºÙÚßåïûý÷ýòòòòòòòòýðîýìýææææ$If & F ÆàÀ!ûü9.% $$Ifa$  ÆàÀ!$IfÆkdg$$If–lÖ    Ö\”ÿÍN^ 8"9Ú Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ÖÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿ $&,KùùcùZùù $$Ifa$•kdî$$If–lÖ    Ö\”ÿÍN^ 8"9ÿÿÿÿÿÿÿÿÿÿÿÿÚÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö$IfKLUW]picZcc $$Ifa$$If•kdÜ$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöpqz}ƒ™icZcc $$Ifa$$If•kd¼$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö™š£¦­ÀicZcc $$Ifa$$If•kdœ$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÀÁÊÌÒæicZcc $$Ifa$$If•kd|$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöæçïñ÷ icZcc $$Ifa$$If•kd\$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö  <icZcc $$Ifa$$If•kd<$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö<=FHNdicZcc $$Ifa$$If•kd$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laödenpw”icZcT$If $$Ifa$$If•kdü$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö”•ž §¾icZcT$If $$Ifa$$If•kdÜ$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö•žðñ ÅÆäÛÜñòóô89LS_`bcƒ…†‡Š•¬­®ÔÕûü%&OPyz£¤ÑÒýþ#$*+@ABCøôìôìãìôÓôÌôìôìãìôÓôÇ̼³Ì­§­§¡ô§¡§¡§™§™§™§™§™§™§™§™§™ôìôìãìhdKÃh÷S; h÷S;CJ hdKÃCJ háW´CJháW´\mH sH háW´5\mH sH  háW´ háW´5\háW´cHdhdhdhÆbh×\ÂmHnHujháW´UháW´háW´mHsH<¾¿ÈÊÑéicZcR$$If $$Ifa$$If•kd¼ $$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöéê&'ÄÅÆãäéïidbbbb`bZZ$If*$a$•kdœ!$$If–lÖ    Ö\”ÿÍN^ 8"9Ú t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÖÿÿÿ4Ö laö ïùùù3(  ÆàÀ!$IfÆkdŠ"$$If–lÖ    Ö\”ÿF$ 8"²Þì( Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ÖÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿ$If56ACJ^öððZðöðð•kd$$$If–lÖ    Ö\”ÿF$ 8"²ÿÿÿÿÞÿÿÿÿìÿÿÿÿ(ÿÿÿÿ t¯Ö0    ö¤"ÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö$If $$Ifa$^_jlsšicZcc $$Ifa$$If•kdÿ$$$If–lÖ    Ö\”ÿF$ 8"²Þì( t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laö𛦍®ÔicZcR$$If $$Ifa$$If•kdß%$$If–lÖ    Ö\”ÿF$ 8"²Þì( t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÿÿÿÿÖÿÿÿ4Ö laöÔÕ789iddb`^\^^*$a$•kd¿&$$If–lÖ    Ö\”ÿF$ 8"²Þì( t¯Ö0    ö¤"ÖÿÿÿÿÖÿÿÿÖÖÿÿÿ4Ö laö 9>FLS_ùðùðê$If $$Ifa$$If_`ìkd­'$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä Ö @@@@@ t¯Ö2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö†"ööÖÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4pÖ2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿ`diln†‡‹ùðððù?ù°kdf)$$If–l4Ö    Ör”ÿ8ÊN V"¤ÿÿÿÿ’ÿÿÿÿ„ÿÿÿÿÿÿÿÿÄÿÿÿÿ t¯Ö0    ö†"ööÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4 $$Ifa$$If‹“•­®²óóóí<í°kdp*$$If–l4Ö    Ör”ÿ8ÊN V"¤ÿÿÿÿ’ÿÿÿÿ„ÿÿÿÿÿÿÿÿÄÿÿÿÿ t¯Ö0    ö†"ööÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4$If $$Ifa$gdáW´²·º¼ÔÕóóóí<°kdz+$$If–l4Ö    Ör”ÿ8ÊN V"¤ÿÿÿÿ’ÿÿÿÿ„ÿÿÿÿÿÿÿÿÄÿÿÿÿ t¯Ö0    ö†"ööÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4$If $$Ifa$gdáW´ÕÙÞáãûüöêêêö9°kd„,$$If–l4Ö    Ör”ÿ8ÊN V"¤ÿÿÿÿ’ÿÿÿÿ„ÿÿÿÿÿÿÿÿÄÿÿÿÿ t¯Ö0    ö†"ööÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4 $$Ifa$gd¡ ˆ $Ifgd¡ ˆü %ôëëëå$If $$Ifa$  ÆàÀ!$If%&*/26NC777 $$Ifa$gdáW´  ÆàÀ!$If°kdŽ-$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf46OPTYöE7+ $$Ifa$gd¡ ˆ  ÆàÀ!$Ifgd¡ ˆ°kdŠ.$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4 $IfgdáW´Y\`yzóóê9°kd†/$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4 $Ifgd¡ ˆ $$Ifa$gd¡ ˆz~ƒ†Š£ñåååÜ $Ifgd¡ ˆ $$Ifa$gd¡ ˆ  ÆàÀ!$Ifgd¡ ˆ£¤©®±µÑNH???H $$Ifa$$If°kd‚0$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4ÑÒÚßâæýNH???H $$Ifa$$If°kd~1$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4ýþ  #NH???7$$If $$Ifa$$If°kdz2$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÿÿÿÿÿÖÿÿÿÿ4Ö laöf4#$\]ÃÄäåNIGEGCG *$a$°kdv3$$If–l4Ö    Ör”ÿ8ÊN V"¤’„Ä t¯Ö0    ö†"ööÖÿÿÿÿÿÖÿÿÿÿÖÖÿÿÿÿ4Ö laöf4CÄÞáâåæìñòøü  !"#$WXYijrxç!"BVWßá,56ap¯°³¹¿ÅËÐÔÚÛðñòó'()9:BH®ëìüøüøüóìæÝìæ×æüÏüÏÆÏüøüøÂüÂüÂøüÂü¾Âøü·°·°·°·Âüøüìæìæ×æüÏüÏÆÏüøüøÂüÂüøü h÷S;6] háW´6]hÕV¬h÷S;h×\ÂmHnHujháW´U háW´CJháW´\mH sH  háW´CJ háW´5\ háW´hdKÃháW´Eåæìñòùûýôôrôô‚kd€4$$If–l4Ö    Ö0”ÿ„"ð– Ö@ t¯Ö ÿíëÿÖ0    ö†"ÖÿÿÖÿÖÿÿÖÿ4Ö laöf4pÖ ÿíëÿ $$Ifa$ûü{uj $$$Ifa$ $If„kd‘5$$If–l4Ö    ”Ö0”ÿ„"ð– Ö@ t¯Ö ÿíëÿÖ0    ö†"ÖÿÿÖÿÖÿÿÖÿ4Ö laöf4pÖ ÿíëÿ<TUYàᑲ³{vtrrtttppt*$a$„kd˜6$$If–l4Ö    ”Ö0”ÿ„"ð– Ö@ t¯Ö ÿíëÿÖ0    ö†"ÖÿÿÖÿÖÖÿ4Ö laöf4pÖ ÿíëÿ ³¹¾¿ÆÊöötöö‚kd‘7$$If–l4Ö    Ö0”ÿ„"ð– Ö@ t¯Ö ÿíëÿÖ0    ö†"ÖÿÿÖÿÖÿÿÖÿ4Ö laöf4pÖ ÿíëÿ $$Ifa$ÊËÐÓ{uj $$$Ifa$ $If„kd¢8$$If–l4Ö    ”Ö0”ÿ„"ð– Ö@ t¯Ö ÿíëÿÖ0    ö†"ÖÿÿÖÿÖÿÿÖÿ4Ö laöf4pÖ ÿíëÿÓÔ $%)µ ¶ Ý Þ ä ê {vttrttptgg $$Ifa$*$a$„kd©9$$If–l4Ö    ”Ö0”ÿ„"ð– Ö@ t¯Ö ÿíëÿÖ0    ö†"ÖÿÿÖÿÖÖÿ4Ö laöf4pÖ ÿíëÿ ì  & . h ´ Þ ä !!)!.!>!I!j!p!q!†!‡!ˆ!‰!¿!À!Ã!‹"C#E#è#é#*$+$”$•$é$ê$í$î$o'o)p)à)ò)ø) **%*.*@*J*j*p*|*‚*Š*üøôðüìøåßåßÙßÏßøÇøÇ¾Çøº¶º¶ºø±øðøðøðøðøªø¦ž¦ž¦ž¦ž¦ø—‘—‘ háW´CJ háW´5\hÖUãmHsHhÖUã háW´6] háW´5h”cñhX$ýh×\ÂmHnHujháW´UhÖUãCJmHsH hÖUãCJ hÖUãCJ hÖUã5\h’†hÕV¬h÷S;háW´hdKÃ6ê í ð ó ö ø ú ü !!! !!!!!!"!$!(!)!.!7!;!>!B!I!ööööööööñööööööööööìæööööö $IfFfs@Ffq< $$Ifa$I!P!W!`!i!j!§!¿!À!Ä!E#F#I#è#é#í#5%6%=%ô%õ%ü%³&´&»&ööëëæáßÚÚÕßÓßßÓßßÓßßÓßßÓgdX$ýgdX$ý*$a$FfyD $$$Ifa$ $$Ifa$»&n'o')o)p)y)à)ø)**.*I*J*i*j*p*v*{*ýýýýýøóóóóóóýñýèèè $$Ifa$gdÖUãgdÖUã{*|*ƒ*…*‰*jaaa $$Ifa$•kdºF$$If–l4Ö    ÖF”ÿþå ƒçç Ö@ t¯Ö ÿíëÿÖ0    öQ!Ö ÿÿÿÖ ÿÖ ÿÿÿÖ ÿ4Ö laöf4pÖ ÿíëÿ‰*Š**˜* *hbYN $$$Ifa$ $$Ifa$ $If—kdïG$$If–l4Ö    ”ÖF”ÿþå ƒçç Ö@ t¯Ö ÿíëÿÖ0    öQ!Ö ÿÿÿÖ ÿÖ ÿÿÿÖ ÿ4Ö laöf4pÖ ÿíëÿŠ**¡*§*¨*½*¾*¿*À*Á+Â+Õ+Ö+×+Ø+ú+, ,,,,*,0,1,F,G,H,I,},›,×,!.1.2.å.æ.//Ì/Í/000G0H01013 333ß3úôðèðèßèðèðÎÄèð½ô½ôúôðèðèßèð¹ð¹ð©ð—ð“ðèðˆè‚èð“ð“ð“ð háW´0JjqPháW´UhÕV¬"jháW´CJUmHnHtH ujháW´CJUmHnHuh”cñ háW´5\jEJháW´EHäÿU!j䯱@ háW´CJUVnH tH h×\ÂmHnHujháW´UháW´ háW´CJ háW´CJ3 *¡*Ó*ë*ì*ô*À+Á+Ù+Ú+ù+hcaa_aaYaW„Ð`„Ð*$a$—kdI$$If–l4Ö    ”ÖF”ÿþå ƒçç Ö@ t¯Ö ÿíëÿÖ0    öQ!Ö ÿÿÿÖ ÿÖ Ö ÿ4Ö laöf4pÖ ÿíëÿ ù+ú+,, , ,,,,ýôôô_ôôô•kdæL$$If–l4Ö    ÖF”ÿþå ƒçç Ö@ t¯Ö ÿíëÿÖ0    öQ!Ö ÿÿÿÖ ÿÖ ÿÿÿÖ ÿ4Ö laöf4pÖ ÿíëÿ $$Ifa$,,,&,),hbYN $$$Ifa$ $$Ifa$ $If—kdN$$If–l4Ö    ”ÖF”ÿþå ƒçç Ö@ t¯Ö ÿíëÿÖ0    öQ!Ö ÿÿÿÖ ÿÖ ÿÿÿÖ ÿ4Ö laöf4pÖ ÿíëÿ),*,a,y,z,},".#.&.0.1.hcaa_aa][a*$a$—kdFO$$If–l4Ö    ”ÖF”ÿþå ƒçç Ö@ t¯Ö ÿíëÿÖ0    öQ!Ö ÿÿÿÖ ÿÖ Ö ÿ4Ö laöf4pÖ ÿíëÿ 1.ä.å.ç.è.é.//Ì/I0J0_0`091å2 444444444+44454748494ýûûûûùûýýûùûûûûûûûûûûûûûûûûûû ß3à3444444444*4+434546494H4J4K4L4M4N4S4T4V4W4^4Æ4Ç4È4É4Ë4Ù4ï56®6¯6Â6Ã6Ä6Å6Ú6Ü6é6N7e7h7r7Ä7Å7í7î788888üøæøæøæøæøæøæøæøæøæøæøæøæøæøæøæøæøáø×áĸ×áøáøüøáø¥øø”øh×\ÂmHnHujháW´U$j(THh0‘b&háW´OJQJUjNQháW´EHàÿU\$jÊè±@ háW´5CJUVnH tH jháW´U\ háW´\"jháW´CJUmHnHtH uháW´hÕV¬994I4J4L4N4T4W4_4`4a4b4c4d4e4f4g4h4k4x4y4Ä4Å4Æ4È4Ê4Ë4å4ø4ù4ýýýýýýýýýýýýýýýýûùýýýýýýýûùýù4ú4û4ü4î5ï56®6Æ6Û6Ü6é6N7g7h7r7«7Ã7Ä7888‚8Ò8ýûûùû÷ûûûû÷ûûû÷ûûûæûÜûÍ ÆÀ!ð$dNÆÿ $dNÆÿ Æ À!ÐX &dPÆÿ 88788898J8K8T8`8a8g8h8j8k8o8p8}8~88€8‚8ƒ8¨8©8ª8»8¼8Ä8Å8Æ8Ì8Í8Ï8Ð8Ñ8Ó8Ô8ù8ú8û8 9 9999999 9óëÛóÕóÑÉ¿¹¿®¿¹¿¹¿®¿ÑóëžóÕóšÉ¿¹¿¿¹ÑóëóÕó{É¿¹¿¿h×\Âj›ZháW´B*Uphÿh×\Â0JmHnHuh¡ ˆjöYháW´B*UphÿháW´0JmHnHu háW´0JjháW´0JUháW´B*phÿháW´ háW´0JjQYháW´B*UphÿháW´B*phÿjháW´B*Uphÿ0Ò8Ó8798999F9S9`9i9t9u9€9‹9Œ9¢9£9«9¬9­9Ã9Ä9Ì9Í9Î9ä9å9í9ýîýýéééýéýééýýýääýýýääýýýä$a$$a$ ÆÀ!X $dNÆÿ 9$9%9293959698999‹9Œ9¬9­9Í9Î9î9ü95:L:M:T:V:W:q:r:‹:Œ::¦:§:¨:³:´:¿:À:Ë:Ì:Õ:Ö:æ:ô:;;2;3;E;F;O;P;\;];f;g;r;s;~;;Š;‹;—;˜;â;ã;-<.<úðúðåðáÝ×á×á×á×áË×ἯáËáË×áË×á×á×á×á×á¨á¨á¨á¨á¨á¢á×á×á×á×á¢á×á×á háW´CJ háW´5\háW´5OJQJ\^JháW´5CJOJQJ\^JháW´CJOJQJ^J háW´CJh×\ÂháW´h×\Â0JmHnHujháW´0JU háW´0J@í9î9ï9ð9ñ9ò9ó9ô9õ9ö9÷9ø9ù9ú9û9ü9 ::#:*:5:6:A:L:M:V:W:i:q:úøøøøøøøøøøøøøøóóóøóøóóøúøúú$a$$a$q:r:„:Œ::Ÿ:§:¨:³:´:¿:À:Ë:Ì:Õ:Ö:æ:ç:ó:ô:;;;;;;2;3;E;ýýøýýøýýýýýýýýýøøøýøøøýøýøýø$a$E;F;O;P;T;\;];f;g;r;s;~;;Š;‹;;—;˜;â;ã;-<.<9<:<><F<G<R<S<ýøýøøýýýýýýýýýøøýýýýýýýøøýýý$a$.<9<:<F<G<R<S<^<_<h<i<u<v<‚<ƒ<<<œ<<©<¬<úöðöúöúöúöðöðöðöðöðö háW´CJháW´ háW´CJS<^<_<h<i<m<u<v<z<‚<ƒ<‡<<<”<œ<<¡<©<ª<«<¬<ýýýýøøýøøýøøýøøýøøýýý$a$8 000€&P P/R °ƒ. °ÇA!°"°# $ %°0200€&P P/R °ƒ. °ÇA!°"°p# $ %°/0€&P P/R °ƒ. °ÇA!°"°# $ %°nð?   zœ4(ZRaCÔ¤¶¾ÿ‰PNG  IHDRö‚úâHgAMA±ˆ•˜ô¦ åIDATxœíÛ–ä¨DÉYçÿ9ç!O{h@"tlk¯~˜ª²1¶IdÎçûý–$y.ÿìî@’Ä’ONJ“̱bJ‘%e£¦Ë0Þ/Ä[%î+ÁÛ ú‡‹õòÞRâÎ;$î›–¾ ÕA!süJYçÇ“8ªðv‚þ1ìöP+CËÑÏÍë§j§õáOAÁOŸ‹ïZqÞPâo4ÕaªKýÇÆj}(¦Éæƒ%nY¤ãÂC^*ßóß_§]ýiº™¯yÅ÷ç6I½S9Fâ‚V4{æ«âÅ4üHïPÍõ)ê;=;Ò³Iâ)hœi>¤ÎdOµë•ãÎåîÜé«‚"\ïí\^OéOMHUÎV'Uš•AÑÚn"%î8§Þ÷ãX¢žSBi¬3õW~Ϋýú¥K;+}‹*©â'ñt#0&½CÅsÔoÊè}Ogèº'Ч}+;®•x úì¿£Ó(ûïa#u÷xƒÁŸÞ4Åt&ƒ’H|¯¬O4⌇*aLv™9~Rï§Ê–üf=Ãö½u¯Ãqbw™¨D=AÐ?q˜–Æ+á"…5Gª†.Þ÷¡_ƒ•8ÿìž!hÑRO{+.)~YxˆÞ†—÷8a¬S¡[uOTôaºJ3ì¹g*0ÄÄÁÌÀídýƒò»Ã2¡¨Yä,FRÈó´,kq7*—BÍñÑë•|@μ8'IÏ] 5J™qX&DÞœb"ä°è*ÌÕÁ*Î^K©ºº_Fe×ÍKk+?ìzuœ®ø5$h^ ¾g[sXâRk òLƒHùàÆpóe¤3uR…ÏK”ÑbwÉ<Šêl5‘—~¶È™}/†æ ‘‹£Ùà?ýnü%šDuüæ’±7H”bÓAÔñ¿ýÕ‡‡1JBà¡.}uŸ¿›#ûù‡?íçšÑ‹Ý>&ñ {ãeÝ\Ý«ÃáZ‡zËìæ4[ÅÌåÍÌ[oFbªC}aë !qá@ñ!ú¢Ã,!•c–Αü)CS¶Où(FˆÌM1W9MÙN½¸oëò…M*cÚ_˜yŽº_‘úñto y“ šÉÇ)x fT¢ÍgEõžðÌ—b&s™ü†‹LÏ0iÜÑgh„ÝŸÎIç N],”ÙØ°ë¦ßÔ.×¾¨‚“¿Ù-ñ‹~Eâ$ŒVÛ0̱ ÁW¤¡"¿Á›ïg‹›J‰Oðâ¾þÛHíJE§4¿)† †qUd‘¶|w¤¡ÿ@K¼yCH ¨£/g¬_%ÀŽñè WÂ àž•©¹¿9²ºIMռԤʺXé`CŽüÀ•ð'‰{Ÿ¦ä˜k#–ˆ¾Ÿz§Jó'Þj_¥(ªÏÒàøILï½±ÑñK÷a³8rÃÓñ€˜fææ³óÁ[¥ûGc¬_6? ÅCè_ÜnSÎJ|W®ƒâ C¥€·àÃß×çRm>€a1‹쾉Ç•°JPº¾XãþxSø[>´aà.bߣSU7£—¤þ¢«çÕ9“ˆöÏ„©àþ vLµŽÐÚøÎL›*2ŸÀ_é¥ÀlÉtCCª,|k¦.‹·^qÖt“)?ɨÔ\Açn*ni@&-º‰PÍÄdSÀ€J|ñ¤Î :oªàQE‰ß|AÙú•–‰ˆâ3Çì4¼˜ŽrpøÞ|“ô‡ÝYˆhrÕ!¢dŸ}¦3¦eáÓ%ߣ²^+ÈmÜTÁ^EVd‰ÓyËJ¾Ã¾B?N[HÐyw¼RïFÁ1ûm¦[qDâøiAžnÖ<@Ð?Ü·g©ãB¼2àŽïÛF ð; 3ÅáEmšÈŒÂÜ«c`ûŠ·ßŸÂoЏ´úýBDoKôИ*Ló{c=aX Q¿_*¥³Ã‹Ë3*)ëL®CT·ëµ6‚h‡-×§7I§æGEREzïêrißâºwðâ©«ž`‚¢ö¸Ìûë©ýJ-ªÒ¸ëÖ¦}0V Œ òÙ§Ä;Œå$E¼yÇÃSú¦‚ŒbÓ,2Pö-þ[¿Óð4E,'©S"ê¦Dm6íSU${#S«#26*Þ7‹# é2šŒ©õ”Š5›ãyg²ªšÍåÂEV‡ï'ž¨‰çWÌj––L4ÕC”9lÏ¢?.Û•}CSž1(’ÝyŒ{ó`PËwcú›aÀ•MÔÃ0™†ê›i]ŠºF˜ ŸZ_ƒ`jT# Ñ`Üó§J3ýY Â{¿¡Q™Þa£°PA —ž&×h!Ʊ„¤JøÀƒo0hœ Û¿›Äùj““®ÇƎá(|­ ö<à²`CºVÐJ¼&Œkzßòô`Çœ4Õ“azXšTåÒ[ûS5ÍWg†ÿŠ÷ƒÃMÑkC ¢æ÷MOú?5€ ÑâË#J0×Yá¸Øf˜²üл®³Væ…¦ý©vl‡Q¡Yÿ•š‡¨x¨y…àÊn7.•¿¾MõDþÕ–Ö':ñÜ‹¹©åŸ† C –x Þ\‚ù“QH$uS`Rew6ú?s/ªõvS¸Éß nô©I½ü-‚©¦]|Â4®¨™á¹Í*„Läü1ºL¹÷d¢y¾W}§¡:âMv™9 Ðd‹"-õðq|yWƒ k_ì¡¥x=™ðŒŠfêFßN ÈÓÕüU˜È’ù±¿b‘Läk°„^-«…A⎓º%ÙÇ€¨ä#ÿPêZÆsE©•£üFÅL‹š‚Y8‹7vó¢7'q´8#sº QV>Ý3?OÐ=ûª›vOI© QÛ°à¢?÷ºlõÐÒ6Íì.àë&*JUŒÚÓ¢³F.9ïHM7ì–8(”±˜ÇŒ¾ A“´´å3åÝ7Òˆ^­Â~ð U“T™¦ƒêÖ∰ѺÆÏÐtƒö›i‡ï^×C“r‰œžŠ€ÏÑ4Þì>l³¸{*ºå¡æÒº Qé:ϯLN#\v¥ÀB˜¦B9ÇC¿OÖ5~WÔ‡¿)p¼Ø™›OóÐåÆUû°É‹7~ZD½i©¯ÿ̺Äoù•,—8ã¿ø¤x#tæH;q‚*I)eÛ~ñ:IÇûrE4i'hMAï`ßÛüݲWQIAŸÁç«{ ‹PWÚ™q¤ ßÄîÒϱ i0Nðm6 `·ÄãpL´¥ ï̳$Žk1ýœ$±åa£¦SÐ7a÷×vŠpñ)è—ámT¼ï(Äl‰NðâÛÓ)èG q~"Ø"—Ûîméçÿg î•RÓïÆu×åU" ‡)ëäÞFeªò Ý¤©é„ À‹7½„^%y6/^´°RÐÉ*Â>Ø––ä ̳xÉMÉÑxÌâÒDJ*;YHä6¬”rr~^< üON’{’Oο?>+f¤ÈIEND®B`‚i$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö,"ö5Ö<5Ö®5Öv5ÖÌ/Ö  ÿ/Ö ÿ/Ö  /Ö ÿ/Ö ÿ4ÖpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿÐ$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l t¯Ö0    ö,"ö5Ö<5Ö®5Öv5ÖÌ/Ö ÿÿÿÿÿÿÿÿ4ÖÂ$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l t¯Ö0    ö,"ö5Ö<5Ö®5Öv5ÖÌ4ÖÂ$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l t¯Ö0    ö,"ö5Ö<5Ö®5Öv5ÖÌ4ÖÂ$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l t¯Ö0    ö,"ö5Ö<5Ö®5Öv5ÖÌ4ÖÂ$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l t¯Ö0    ö,"ö5Ö<5Ö®5Öv5ÖÌ4ÖÂ$$If–!vh5Ö<5Ö®5Öv5ÖÌ#v<#v®#vv#vÌ:V –l t¯Ö0    ö,"ö5Ö<5Ö®5Öv5ÖÌ4Ö{DÐÉêyùºÎŒ‚ªK©  _Toc28803244{DÐÉêyùºÎŒ‚ªK©  _Toc28803244{DÐÉêyùºÎŒ‚ªK©  _Toc28803245{DÐÉêyùºÎŒ‚ªK©  _Toc28803245{DÐÉêyùºÎŒ‚ªK©  _Toc28803246{DÐÉêyùºÎŒ‚ªK©  _Toc28803246{DÐÉêyùºÎŒ‚ªK©  _Toc28803247{DÐÉêyùºÎŒ‚ªK©  _Toc28803247{DÐÉêyùºÎŒ‚ªK©  _Toc28803248{DÐÉêyùºÎŒ‚ªK©  _Toc28803248{DÐÉêyùºÎŒ‚ªK©  _Toc28803249{DÐÉêyùºÎŒ‚ªK©  _Toc28803249{DÐÉêyùºÎŒ‚ªK©  _Toc28803250{DÐÉêyùºÎŒ‚ªK©  _Toc28803250{DÐÉêyùºÎŒ‚ªK©  _Toc28803251{DÐÉêyùºÎŒ‚ªK©  _Toc28803251{DÐÉêyùºÎŒ‚ªK©  _Toc28803252{DÐÉêyùºÎŒ‚ªK©  _Toc28803252{DÐÉêyùºÎŒ‚ªK©  _Toc28803253{DÐÉêyùºÎŒ‚ªK©  _Toc28803253{DÐÉêyùºÎŒ‚ªK©  _Toc28803254{DÐÉêyùºÎŒ‚ªK©  _Toc28803254{DÐÉêyùºÎŒ‚ªK©  _Toc28803255{DÐÉêyùºÎŒ‚ªK©  _Toc28803255{DÐÉêyùºÎŒ‚ªK©  _Toc28803256{DÐÉêyùºÎŒ‚ªK©  _Toc28803256{DÐÉêyùºÎŒ‚ªK©  _Toc28803257{DÐÉêyùºÎŒ‚ªK©  _Toc28803257{DÐÉêyùºÎŒ‚ªK©  _Toc28803258{DÐÉêyùºÎŒ‚ªK©  _Toc28803258{DÐÉêyùºÎŒ‚ªK©  _Toc28803259{DÐÉêyùºÎŒ‚ªK©  _Toc28803259{DÐÉêyùºÎŒ‚ªK©  _Toc28803260{DÐÉêyùºÎŒ‚ªK©  _Toc28803260…$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿì$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4ÖÞ$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö 4Öì$$If–!vh5Ö95Ö5Ö5ÖÚ#v9#v#v#vÚ:V –l t¯Ö0    ö¤"ö5Ö95Ö5Ö5ÖÚ/Ö /Ö  /Ö 4Ö…$$If–!vh5Ö²5ÖÞ5Öì5Ö(#v²#vÞ#vì#v(:V –l Ö@@@@ t¯Ö(ÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö¤"ö5Ö²5ÖÞ5Öì5Ö(/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4ÖpÖ(ÿíëÿÿíëÿÿíëÿÿíëÿì$$If–!vh5Ö²5ÖÞ5Öì5Ö(#v²#vÞ#vì#v(:V –l t¯Ö0    ö¤"ö5Ö²5ÖÞ5Öì5Ö(/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4ÖÞ$$If–!vh5Ö²5ÖÞ5Öì5Ö(#v²#vÞ#vì#v(:V –l t¯Ö0    ö¤"ö5Ö²5ÖÞ5Öì5Ö(/Ö /Ö 4ÖÞ$$If–!vh5Ö²5ÖÞ5Öì5Ö(#v²#vÞ#vì#v(:V –l t¯Ö0    ö¤"ö5Ö²5ÖÞ5Öì5Ö(/Ö /Ö 4Öì$$If–!vh5Ö²5ÖÞ5Öì5Ö(#v²#vÞ#vì#v(:V –l t¯Ö0    ö¤"ö5Ö²5ÖÞ5Öì5Ö(/Ö /Ö  /Ö 4Ö·$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 Ö @@@@@ t¯Ö2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿÖ0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö  ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö ÿ4Öf4pÖ2ÿíëÿÿíëÿÿíëÿÿíëÿÿíëÿ$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öf4$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öf4$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öf4$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö ÿÿÿÿÿÿÿÿ/Ö 4Öf4ú$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö 4Öf4ú$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö 4Öf4ú$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö 4Öf4ú$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö 4Öf4ú$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö 4Öf4ú$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö 4Öf4$$If–!vh5Ö¤5Ö’5Ö„5Ö5ÖÄ#v¤#v’#v„#v#vÄ:V –l4 t¯Ö0    ö†"ö5Ö¤5Ö’5Ö„5Ö5ÖÄ/Ö /Ö  /Ö 4Öf4$$If–!vh5Öð5Ö–#vð#v–:V –l4 Ö@ t¯Ö ÿíëÿÖ0    ö†"ö5Öð5Ö–/Ö /Ö ÿ/Ö ÿ/Ö ÿ/Ö ÿ/Ö 4Öf4pÖ ÿíëÿ$$If–!vh5Öð5Ö–#vð#v–:V –l4” Ö@ t¯Ö ÿíëÿÖ0    ö†"ö5Öð5Ö–/Ö /Ö ÿ/Ö ÿ/Ö ÿ/Ö 4Öf4pÖ ÿíëÿ÷$$If–!vh5Öð5Ö–#vð#v–:V –l4” Ö@ t¯Ö ÿíëÿÖ0    ö†"ö5Öð5Ö–/Ö /Ö ÿ/Ö ÿ/Ö  4Öf4pÖ ÿíëÿ$$If–!vh5Öð5Ö–#vð#v–:V –l4 Ö@ t¯Ö ÿíëÿÖ0    ö†"ö5Öð5Ö–/Ö /Ö ÿ/Ö ÿ/Ö ÿ/Ö ÿ/Ö 4Öf4pÖ ÿíëÿ$$If–!vh5Öð5Ö–#vð#v–:V –l4” Ö@ t¯Ö ÿíëÿÖ0    ö†"ö5Öð5Ö–/Ö /Ö ÿ/Ö ÿ/Ö ÿ/Ö 4Öf4pÖ ÿíëÿ÷$$If–!vh5Öð5Ö–#vð#v–:V –l4” Ö@ t¯Ö ÿíëÿÖ0    ö†"ö5Öð5Ö–/Ö /Ö ÿ/Ö ÿ/Ö  4Öf4pÖ ÿíëÿÍ$$If–!v h5Öð5ÖÒ5Öv5Öv5ÖÐ5ÖÞ5ÖÞ5Ö85Ö Þ5Ö F#vð#vÒ#vv#vÐ#vÞ#v8#v Þ#v F:V –l4 Ö@ t¯Ö ÿíëÿÖ0    ö–$ö5Öð5ÖÒ5Öv5ÖÐ5ÖÞ5Ö85Ö Þ5Ö F/Ö /Ö ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö /Ö ÿ/Ö 4Öf4pÖ ÿíëÿ;kd¢:$$If–l4Ö    Öà ”ÿ„VÌ B ðÎä*$ðÒvvÐÞÞ8ÞF Ö@ t¯Ö ÿíëÿÖ0    ö–$ööÖ(ÿÿÿÿÿÿÿÿÿÿÖ(ÿÖ(ÿÿÿÿÿÿÿÿÿÿÖ(ÿ4Ö laöf4pÖ ÿíëÿÃ$$If–!v h5Öð5ÖÒ5Öv5Öv5ÖÐ5ÖÞ5ÖÞ5Ö85Ö Þ5Ö F#vð#vÒ#vv#vÐ#vÞ#v8#v Þ#v F:V –l4” Ö@ t¯Ö ÿíëÿÖ0    ö–$ö5Öð5ÖÒ5Öv5ÖÐ5ÖÞ5Ö85Ö Þ5Ö F/Ö /Ö ÿ/Ö ÿ/Ö  /Ö /Ö ÿ/Ö /Ö 4Öf4pÖ ÿíëÿ?kd®>$$If–l4Ö    ”Öà ”ÿ„VÌ B ðÎä*$ðÒvvÐÞÞ8ÞF Ö@ t¯Ö ÿíëÿÖ0    ö–$ööÖ(ÿÿÿÿÿÿÿÿÿÿÖ(ÿÖ(ÿÿÿÿÿÿÿÿÿÿÖ(ÿ4Ö laöf4pÖ ÿíëÿÃ$$If–!v h5Öð5ÖÒ5Öv5Öv5ÖÐ5ÖÞ5ÖÞ5Ö85Ö Þ5Ö F#vð#vÒ#vv#vÐ#vÞ#v8#v Þ#v F:V –l4” Ö@ t¯Ö ÿíëÿÖ0    ö–$ö5Öð5ÖÒ5Öv5ÖÐ5ÖÞ5Ö85Ö Þ5Ö F/Ö /Ö ÿ/Ö ÿ/Ö  /Ö /Ö /Ö /Ö  4Öf4pÖ ÿíëÿ?kd´B$$If–l4Ö    ”Öà ”ÿ„VÌ B ðÎä*$ðÒvvÐÞÞ8ÞF Ö@ t¯Ö ÿíëÿÖ0    ö–$ööÖ(ÿÿÿÿÿÿÿÿÿÿÖ(ÿÖ(Ö(ÿ4Ö laöf4pÖ ÿíëÿ3$$If–!vh5Öƒ5Öç5Öç#vƒ#vç:V –l4 Ö@ t¯Ö ÿíëÿÖ0    öQ!ö5Öƒ5Öç/Ö /Ö ÿ/Ö ÿ/Ö /Ö ÿ/Ö /Ö ÿ/Ö 4Öf4pÖ ÿíëÿ)$$If–!vh5Öƒ5Öç5Öç#vƒ#vç:V –l4” Ö@ t¯Ö ÿíëÿÖ0    öQ!ö5Öƒ5Öç/Ö /Ö ÿ/Ö ÿ/Ö /Ö ÿ/Ö /Ö 4Öf4pÖ ÿíëÿ)$$If–!vh5Öƒ5Öç5Öç#vƒ#vç:V –l4” Ö@ t¯Ö ÿíëÿÖ0    öQ!ö5Öƒ5Öç/Ö /Ö ÿ/Ö ÿ/Ö /Ö /Ö  /Ö 4Öf4pÖ ÿíëÿ¡Dd œ ¼èèðJ² ð C ðA?¿ ÿ"ñ¿€ð€2ð}üóÏıXˆ¼ ­v£Lÿ߉J/`!ð×}üóÏıXˆ¼ ­v£Lð``¸ÕPÇ¥þxÚSMKÃ@ÝDÛnS[´ŠˆbQ«(Ú»P° 9è¡­^m+õ+´rÓàÅ»?DP¼x’Ò ø¼V¡qf³©¢J7lö½äíÌ›I–A@{gxƒI 1€3Ä}ÄSˆq×u%ZfãêY¸£3xA/D‡Í Fa\C ù=¢;œ‰(À´Ž{”Æ€­bý(žeîO®µ_¤‡+JÊñŠå«T­€&†hDvÞì1œLêVÂ’ ®)ñ¤  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{þÿÿÿ}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡«ýÿÿÿýÿÿÿ¥¨þÿÿÿ©ªZ1¬­®¯°±²þÿÿÿ´µ¶Ã¸¹º»¼½¾¿ÀÁ³ÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûýýÿÿÿþÿRoot Entryÿÿÿÿÿÿÿÿ ÀFPƒÖ¶° ħ@Data ÿÿÿÿÿÿÿÿÿÿÿÿ|@[WordDocumentÿÿÿÿÿÿÿÿæöObjectPoolÿÿÿÿ0ãN³° ÄPƒÖ¶° Ä_1085386724ÿÿÿÿ ÎÀF0ãN³° Ä0ãN³° ÄOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObjÿÿÿÿfObjInfoÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿ þÿÿÿþÿÿÿ þÿÿÿ !"#$%&'()*+,-./0123456789:;<=>þÿÿÿ@þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿ ÿÿÿÿÎÀFMicrosoft Equation 3.0 DS Equation Equation.3ô9²q•àÏì­ ƒf ƒsƒcƒlƒk †=ƒf ƒwƒb‚_ƒcƒlƒk ƒDƒIƒVƒIƒDƒEƒR†+ˆ1–(–)†"ˆ2Equation Native ÿÿÿÿÿÿÿÿÿÿÿÿ±_1085401290ÿÿÿÿÿÿÿÿ ÎÀF -Q³° Ä -Q³° ÄOle ÿÿÿÿÿÿÿÿÿÿÿÿCompObj ÿÿÿÿfþÿ ÿÿÿÿÎÀFMicrosoft Equation 3.0 DS Equation Equation.3ô9²qÂïÐ9¬ó SPI_DIVIDER_BIT_NB †= log 2 ƒf ƒsƒyƒs‚m‚a‚x ƒf ƒsƒcƒlƒk‚m‚i‚n †"ˆ2†"ˆ1–[–]ObjInfoÿÿÿÿ ÿÿÿÿ Equation Native ÿÿÿÿÿÿÿÿÿÿÿÿ 1Tableÿÿÿÿ·í¼SummaryInformation(ÿÿÿÿ2\NëôfÞé%žb½{<&××q R$âÜ«Œ†ŸŸzçi^Ò ŠG=møö:zÈ[åZb»l'²U«x Ý=på) msˆ)Çç£ÒÓªª5áö—ǯ•«<¬"ÅžÓÅ·oÒìÕ.BŠ…ŽÿÙ0ñEÅoxR#¾ö'/볞°ÊÓÒˆ2æ®™ÙÈ*7‡¬ }¦Ÿý<þ»›¬Ï¯RÝ´…†h¿rbúý½Ò±±Kž´)F{j(êly~¼ÈžŸ$»•'Žq>“sjõ²EL¨ÿdÿuC“Ï¿Sž˜3$$If–!vh5Öƒ5Öç5Öç#vƒ#vç:V –l4 Ö@ t¯Ö ÿíëÿÖ0    öQ!ö5Öƒ5Öç/Ö /Ö ÿ/Ö ÿ/Ö /Ö ÿ/Ö /Ö ÿ/Ö 4Öf4pÖ ÿíëÿ)$$If–!vh5Öƒ5Öç5Öç#vƒ#vç:V –l4” Ö@ t¯Ö ÿíëÿÖ0    öQ!ö5Öƒ5Öç/Ö /Ö ÿ/Ö ÿ/Ö /Ö ÿ/Ö /Ö 4Öf4pÖ ÿíëÿ)$$If–!vh5Öƒ5Öç5Öç#vƒ#vç:V –l4” Ö@ t¯Ö ÿíëÿÖ0    öQ!ö5Öƒ5Öç/Ö /Ö ÿ/Ö ÿ/Ö /Ö /Ö  /Ö 4Öf4pÖ ÿíëÿÝDÐÉêyùºÎŒ‚ªK© àÉêyùºÎŒ‚ªK© lhttp://www.opencores.org/wishbone/specs/wbspec_b1.pdfÚDd øèèðJ² ð C ðA?¿ ÿ"ñ¿€ð€2ð<ïæa9‹*LØë¨|¥Ü}Hÿ’Q/`!ðïæa9‹*LØë¨|¥Ü}HþàÀˆÃ,`\ÞþxÚcdàd``þÏ$d@€ˆ9™`,&FF(‹‘éÿÿÿ`–£TŒ®Ž‡éË! KŸAŠá?H1ƒÈÚ Ä €Æ³õ@Õð0ø&–d„T¤‚ 翘 :@¨A—b¶SÓaKÈb”¹ó7SÃ?ˆÊ 2¡@penR~C¹È,f®@ÞЯåb@ÌVg5“‘d——<óOi̯J?”Âÿ å¯g„ðVÂÔÛ ƒø¯àê!ü×põþK(ÿS´ˆ¯ å¿a6—ñµàò)ü ¾m%ÿ0°ý’™›Z¬à—Z®”Ÿ›˜Ç€Ý?L`úÜ_˜Áî6„Ûk, âUrBå똬œüôT˜- …|Ÿ‹Âç†òÕ8@2AñNž!ñ~N*B*.)@¢!. Page NumberL>@2L Title$¤ð¤<@&a$5CJ@KHOJQJHþOH Headeing 1 Name$a$5CJH@YR@  Document Map-D OJQJ<@< TOC 1 ¤x¤x 5;\aJ6@6 TOC 2 „ð^„ð:aJ88 TOC 3 „à^„à 6]aJ22 TOC 4 „Ð^„ÐaJ22 TOC 5 „À^„ÀaJ22 TOC 6 „°^„°aJ22 TOC 7 „ ^„ aJ22 TOC 8 „^„aJ22 TOC 9 „€^„€aJ0K@0 Salutation4B@4 Body Text $a$FV@¢F FollowedHyperlink >*B* ph€€DT@"D Block Text"„ „ ¤x]„ ^„ <P@2< Body Text 2 #dà¤x>Q@B> Body Text 3$¤xCJaJZM@RZ Body Text First Indent%$„Ò¤x`„Òa$HC@bH Body Text Indent&„¤x^„TN@arT Body Text First Indent 2 '„Ò`„ÒRR@‚R Body Text Indent 2(„dà¤x^„TS@’T Body Text Indent 3)„¤x^„CJaJ<"@< Caption *¤x¤x 5CJ\2?@²2 Closing +„œ^„œ8Â8  Comment Text,CJ$L@$ Date-<[@â< E-mail Signature.8+ò8  Endnote Text/CJl$@l Envelope Address!0„@ „üÿ„ôÿ„ð&€+D¼/„^„@ OJQJ^JaJJ%@J Envelope Return1CJOJQJ^J:":  Footnote Text2CJ:`@2: HTML Address36]Ne@BN HTML Preformatted4CJOJQJ^J: @: Index 15„ð„ÿ^„ð`„ÿ: : Index 26„à„ÿ^„à`„ÿ: : Index 37„Єÿ^„Ð`„ÿ: : Index 48„À„ÿ^„À`„ÿ:: Index 59„°„ÿ^„°`„ÿ:: Index 6:„ „ÿ^„ `„ÿ:: Index 7;„„ÿ^„`„ÿ:: Index 8<„€„ÿ^„€`„ÿ:: Index 9=„p„ÿ^„p`„ÿH!RH  Index Heading>5OJQJ\^J4/@ò4 List?„„åþ^„`„åþ82@8 List 2@„6„åþ^„6`„åþ83@8 List 3A„Q„åþ^„Q`„åþ84@"8 List 4B„l„åþ^„l`„åþ85@28 List 5C„‡„åþ^„‡`„åþ:0@B: List Bullet D & F >6@R> List Bullet 2 E & F >7@b> List Bullet 3 F & F >8@r> List Bullet 4 G & F >9@‚> List Bullet 5 H & FBD@’B List ContinueI„¤x^„FE@¢F List Continue 2J„6¤x^„6FF@²F List Continue 3K„Q¤x^„QFG@ÂF List Continue 4L„l¤x^„lFH@ÒF List Continue 5M„‡¤x^„‡:1@â: List Number N & F>:@ò> List Number 2 O & F>;@> List Number 3 P & F><@> List Number 4 Q & F>=@"> List Number 5 R & Fl-ñÿ2l  Macro Text"S Æ àÀ €` @ àOJQJ^J_HmH sH tH®I@B® Message HeadergT„n„’û$d%d&d'd-DMÆ ÿÿNÆÿOÆÿPÆÿQÆÿ^„n`„’ûOJQJ^JaJ8^@R8 Normal (Web)UaJ>@b> Normal Indent V„Ä^„Ä4O@4 Note HeadingW@Z@‚@ Plain TextXCJOJQJ^J6@@’6 Signature Y„œ^„œJJ@¢J SubtitleZ$¤<@&a$OJQJ^JaJT,T Table of Authorities[„ð„ÿ^„ð`„ÿL#L Table of Figures\„à„ þ^„à`„ þL.L  TOA Heading]¤x5OJQJ\^JaJH™âH ›¢®¯³ÁÌØÙÝëö  #.VW[ju¥¦ª¸Ãìíñ '()+45¬ùB¡þH  yà?žè?”á579FGã ä  G H ¢ _ ` j — Ç æ - B x ˜ ¬ ­ ° ¹ º Ù Ú ß å ï û ü     $ & , K L U W ] p q z } ƒ ™ š £ ¦ ­ À Á Ê Ì Ò æ ç ï ñ ÷  <=FHNdenpw”•ž §¾¿ÈÊÑéê&'ÄÅÆãäéïù56ACJ^_jls𛦍®ÔÕ789>FLS_`diln†‡‹“•­®²·º¼ÔÕÙÞáãûü %&*/26OPTY\`yz~ƒ†Š£¤©®±µÑÒÚßâæýþ  #$\]ÃÄäåæìñòùûü<TUYàᑲ³¹¾¿ÆÊËÐÓÔ $%)µ¶ÝÞäêíðóöøúü "$().7;>BIPW`ij§¿ÀÄEFIèéí56=ôõü³´»no!o!p!y!à!ø!""."I"J"i"j"p"v"{"|"ƒ"…"‰"Š""˜" "¡"Ó"ë"ì"ô"À#Á#Ù#Ú#ù#ú#$$ $ $$$$$$&$)$*$a$y$z$}$"&#&&&0&1&ä&å&ç&è&é&''Ì'I(J(_(`(9)å* ,,,,,,,,,+,4,5,7,8,9,I,J,L,N,T,W,_,`,a,b,c,d,e,f,g,h,k,x,y,Ä,Å,Æ,È,Ê,Ë,å,ø,ù,ú,û,ü,î-ï-.®.Æ.Û.Ü.é.N/g/h/r/«/Ã/Ä/000‚0Ò0Ó0718191F1S1`1i1t1u1€1‹1Œ1¢1£1«1¬1­1Ã1Ä1Ì1Í1Î1ä1å1í1î1ï1ð1ñ1ò1ó1ô1õ1ö1÷1ø1ù1ú1û1ü1 22#2*25262A2L2M2V2W2i2q2r2„2Œ22Ÿ2§2¨2³2´2¿2À2Ë2Ì2Õ2Ö2æ2ç2ó2ô23333332333E3F3O3P3T3\3]3f3g3r3s3~33Š3‹33—3˜3â3ã3-4.494:4>4F4G4R4S4^4_4h4i4m4u4v4z4‚4ƒ4‡444”4œ44¡4©4ª4­40€€è0€€ø€˜0€˜0€80€˜0€!˜0€!˜0€!˜0€€˜0€€˜0€!H0€!€˜0€©0€X ©0€X ©0€X ©0€X ™0€\ ©0€X ©0€X ©0€X ©0€X ™0€\ ©0€X ©0€X ©0€X ©0€X ™0€\ ©0€X ©0€X ©0€X ©0€X ™0€\ ©0€ ©0€ ©0€ ©0€ ™0€\ ©0€X ©0€ ©0€ ©0€ ™0€\ ©0€€ø ©0€€ø ©0€€ø ©0€€ø ™0€€ü ˜0€€ø€˜0€˜0€˜0€˜0€€˜0€€€˜0€€€˜0€€€˜0€€˜0€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜˜0€€˜0€€˜0€0€€˜0€ü˜0€ü˜0€ü˜0€ü˜ D0€ü˜ D0€ü˜D0€ü˜0€ü˜0€ü˜0€ü˜0€ü˜ 0€ü˜ 0€€˜ 0€´˜ 0€´˜ 0€´˜ 0€´˜ 0€´˜ 0€´˜0€´0€€˜0€) ˜0€) 0€) ˜0€6 ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ©0€6  ©0€6  ©0€6  ©0€6  ™0€6  ˜*0€€€˜0€6 ˜0€6 ˜0€6 0€) 0€) ˜0€B©0€B ©0€B ©0€B ©0€B ™0€B ©0€B ©0€B ©0€B ©0€B ™0€B ©0€B ©0€B ©0€B ©0€B ™0€B ©0€B ©0€B ©0€B ©0€B ™0€B ©0€B ©0€B ©0€B ©0€B ™0€B ˜*0€€˜*0€B0€€˜0€˜0€0€˜0€›˜0€›©0€› ©0€› ©0€› ©0€› ©0€› ™0€› ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ™@0€€ ©@0€› ©@0€› ©@0€› ©@0€› ©@0€› ™@0€› ©@0€› ©@0€› ©@0€› ©@0€› ©@0€› ™@0€› ˜*0€€˜0€›˜ 0€›˜0€›0€€˜0€¨˜0€¨©0€¨ ©0€¨ ™0€¨ ©0€¨ ©0€¨ ™0€¨ © 0€¨ ©0€¨ ™0€¨ ˜*0€€˜0€¨(0€¨(0€€˜0€€˜0€E˜0€E0€0€€˜0€]©0€] ©0€] ™0€] ©0€] ©0€] ™0€] © 0€] ©0€] ™0€] ˜*0€€˜0€]˜0€](0€€˜0€€˜0€€0€˜0€Z©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ © 0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ˜*0€€˜0€Z(0€Z(0€Z˜0€€˜0€U(0€Z˜0€Ù˜0€Ù(0€Z˜0€|˜0€€(0€Z˜0€¡˜0€¡(0€Z˜0€`˜0€`(0€Z˜0€˜0€˜0€˜0€˜0€€(0€€˜@0€É˜@0€É˜@0€É˜@0€É˜@0€€˜@0€€˜0€€0€˜0€Û ©0€Û  ©0€Û  ©0€Û  ™0€Û  ©0€Û  ©0€Û  ©0€Û  ™0€Û  © 0€Û  ©0€Û  ©0€Û  ™0€Û  ˜*0€€˜0€Û ˜0€Û (0€Û ˜0€}!˜0€}!˜0€}!˜0€}!0€˜0€k"©0€k" ©0€k" ©0€k" ™0€k" ©0€k" ©0€k" ©0€k" ™0€k" © 0€k" ©0€k" ©0€k" ™0€k" ˜*0€€˜0€k"˜0€k"(0€k"˜0€ #˜0€ #0€€˜0€´$˜0€´$˜ 0€´$˜0€´$˜0€´$˜0€´$˜0€´$0€´$˜0€z%˜ 0€z%˜ 0€z%˜0€z%0€´$˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&˜0€Û&0€€˜0€ù*˜0€ù*˜0€ù*˜0€ù*˜0€ù*˜0€ù*˜0€ù*˜0€ù*0€€˜0€\+˜0€\+˜0€\+˜0€\+˜0€\+˜ 0€\+˜0€\+x0€\+˜0€€,˜0€€,˜0€€,˜0€€,x0€\+˜0€m-˜0€m-˜0€m-x0€\+˜0€ù-˜0€ù-˜0€€š@0€€˜@0€€š@0€€˜@0€€˜@0€€˜@0€€š@0€€˜@0€€ 0ó2;˜0€€@˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€@˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€@˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€˜0€€˜0€€€˜0€€ !4IJKT~‘–›¢®¯³ÁÌØÙÝëö  #.VW[ju¥¦ª¸Ãìíñ '()+45¬ùB¡þH  yà?žè?”á579FGã ä  G H ¢ _ ` j — Ç æ - B x ˜ ¬ ­ ° ¹ º Ù Ú ß å ï û ü     $ & , K L U W ] p q z } ƒ ™ š £ ¦ ­ À Á Ê Ì Ò æ ç ï ñ ÷  <=FHNdenpw”•ž §¾¿ÈÊÑéê&'ÄÅÆãäéïù56ACJ^_jls𛦍®ÔÕ789>FLS_`diln†‡‹“•­®²·º¼ÔÕÙÞáãûü %&*/26OPTY\`yz~ƒ†Š£¤©®±µÑÒÚßâæýþ  #$\]ÃÄäåæìñòùûü<TUYàᑲ³¹¾¿ÆÊËÐÓÔ $%)µ¶ÝÞäêíðóöøúü "$().7;>BIPW`ij§¿ÀÄEFIèéí56=ôõü³´»no!o!p!y!à!ø!""."I"J"i"j"p"v"{"|"ƒ"…"‰"Š""˜" "¡"Ó"ë"ì"ô"À#Á#Ù#Ú#ù#ú#$$ $ $$$$$$&$)$*$a$y$z$}$"&#&&&0&1&ä&å&ç&è&é&''Ì'I(J(_(`(9)å* ,,,,,,,,,+,4,5,7,8,9,I,J,L,N,T,W,_,`,a,b,c,d,e,f,g,h,k,x,y,Ä,Å,Æ,È,Ê,Ë,å,ø,ù,ú,û,ü,î-ï-.®.Æ.Û.Ü.é.N/g/h/r/«/Ã/Ä/Ò0Ó071­40€€€0€€€˜0€€€˜0€€€80€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€H0€€€˜0€€€©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜ D0€€€˜ D0€€€˜D0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜ 0€€€˜ 0€€€˜ 0€€€˜ 0€€€˜ 0€€€˜ 0€€€˜ 0€€€˜ 0€€€˜0€€€0€€€˜0€€€˜0€€€0€€€˜0€€€©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ˜*0€€€˜0€€€˜0€€€˜0€€€˜0€€ˆ0€€€˜0€€€©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ˜*0€€ˆ˜*0€€€0€€€˜0€€€˜0€€€0€€€˜0€€€˜0€€ˆ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©@0€€ ©@0€€ ©@0€€ ©0€€ ‘@0€€ ©0€€ ©@0€€ ©@0€€ ©@0€€ ©0€€ ‘@0€€ ©0€€ ©0€€ ©@      !"#$%&'()*+,-./0`þÿÿÿ3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYþÿÿÿ[\]^_Ãabcdefghijklmnopqrstuvwxyz|ýÿÿÿ}~€0€€ ©@0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©@0€€ ©@0€€ ©0€€ ™0€€ ©0€€ ©0€€ ©@0€€ ©@0€€ ©@0€€ ‘@0€€ ©@0€€ ©0€€ ©@0€€ ©@0€€ ©@0€€ ‘@0€€ ©@0€€ ©0€€ ©@0€€ ©@0€€ ©@0€€ ‘@0€€ ˜*0€€€˜0€€€˜ 0€€€˜0€€€0€€€˜0€€€˜0€€ˆ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ‘0€€ © 0€€ ©0€€ ™0€€ ˜*0€€€˜0€€€(0€€€(0€€€˜0€€€˜0€€€˜0€€€0€€€0€€€˜0€€€©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ‘0€€ © 0€€ ©0€€ ‘0€€ ˜*0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€0€€€˜0€€€©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ©0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ©0€€ ©0€€ ™0€€ © 0€€ ©@0€€ ©@0€€ ©@0€€ ©@0€€ ©0€€ ©0€€ ©0€€ ©0€€ ©0€€ ™0€€ ˜*0€€€˜0€€€(0€€€(0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€(0€€€˜@0€€€˜@0€€€˜@0€€€˜@0€€€˜@0€€€˜@0€€€˜0€€€0€€€˜0€€€©0€€ ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ©0€€ ™0€€ © 0€€ ©0€€ ©0€€ ‘0€€ ˜*0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€˜0€€€˜0€€€0€€€˜0€€€©0€€ ©0€€ ©0€€ ‘0€€ ©0€€ ©0€€ ©0€€ ‘0€€ © 0€€ ©0€€ ©0€€ ‘0€€ ˜*0€€€˜0€€€˜0€€€(0€€€˜0€€€˜0€€€0€€€˜0€€€˜0€€€˜ 0€€€˜0€€€˜0€€€˜0€€€˜0€€€0€€€˜0€€€˜ 0€€€˜ 0€€€˜0€€€0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜0€€€˜ 0€€€˜0€€€x0€€€˜0€€€˜0€€€˜0€€€˜0€€€x0€€€˜0€€€˜0€€€˜0€€€x0€€€˜0€€€˜0€€€˜0€€€@0uÔPMy00à‡ä€My00€0ˆxö‰MM¾¾¾¾¾¾tttwb ö › ( ¾ { ?æŽÿ•CìŠ*ß38 9.<¬<)*+-./0123@W^djmos®Ì V ¥ ì ' B ¢ûKp™Àæ <d”¾éï^šÔ9_`‹²Õü%6Yz£Ñý#åû³ÊÓê I!»&{*‰* *ù+,),1.94ù4Ò8í9q:E;S<¬< "#$%&'(,456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVXYZ[\]_`abcefghiklnpqrt«<!Tm|5ab‹¦©ª¬ËÙôö÷ù"=?@BaœžŸ¡ÀÞùûüþ(CEFHg€›ž ¿ì   +Ytvwy˜ÀÛÝÞàÿ:<=?^~™›œž½Èãåæè:<=?^t‘’”³ÁÜÞßá/235ðÛñó*@B !#Úðòp†ˆ§"½"¿"Á#Õ#×#0$F$H$Ì'(G(®.Â.Ä.¬4 ”ÿ•€ ÿX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•ÌX”ÿ%ÿ•À•Ì•Œ ÿ•€ ÿ•€ ÿ•€ ÿ•€ ÿ•€ ÿ•€ ÿ•€:”ÿ•€ ÿ•€X”ÿ„:”ÿ•„)@JMt†œ£¦«¹»¾å÷ 6HRY[`nqwtÿ•€XÿŒ!tÿ•€Btÿ•€XÿŒ!tÿ•€XÿŒ!tÿ•€Btÿ•€ðð(¶ºð,bð$   zœ4(ZRaCÔ¤¶¾ÿG Ÿêƒ ðp0e‚˜²ƒ0e„˜²…‡ˆ‰¿ ô   ÀÁÂÿÿÿà ÄÅAÆÁÇÈÉÊË5%ÌÍÎÏÁÐÑÒÓÔÕ×ÿ€€€ËËË 8c8c     ?€‚ƒœ1„…ðù†‡÷ˆ ¿ÀÁÂdÃÄÅÆÇÈÉÊ0uËÐÌ0íìÿÍ@T‰Î€Ï€ÿÿÐyÿÑ2Ò NÓPÃÔÕ'Öp”×°<ÿÿØÙ'Úp”ÿA¨)BCD|¾E„|¾…†|¾‡S"ñ‘’¿‚‚@ñÿÿÿ€€€÷ðÍ ð¹ 0ñŒ   ! "#ð Ìð( ð´n ðð6 ð@ ðñ´ý&@ ð  ðððN ð€  ð€ðÁ´­ ð ððN ð  ð€ða¼@ð ððN ð„  ð€ðѼ@ð ððN ð…  ð€ðA¼ý&@ð ððZB ðB S ðD¿Ñÿð­ T© TððÖðL ð­  "¼ ð–ð­  "¼ððTB ðŽB C ðD¿ÿð­  " ð ðZB ð S ðD¿Ñÿð" "¼ð ðZB ð‘ S ðD¿ÑÿðU U¼ð ðZB ð’ S ðD¿Ñÿðå å¼ð ðTB ð“‚ C ðD¿ÿðÉTɼððTB 𔂠C ðD¿ÿð9T9¼ððTB ð•‚ C ðD¿ÿð© T© ¼ððTB ðœ C ðD¿ÿð­ 8-$8ððZB ð S ðD¿Ñÿð-$8-$¼ððZB ðž S ðD¿Ñÿð½8½¼ð ðZB ðŸ S ðD¿ÑÿðM8M¼ð ðTB ð  C ðD¿ÿð­ hµhððZB ð¡ S ðD¿Ñÿðµhµ¼ððTB ð¢ C ðD¿ÿð­ %ððZB ð£ S ðD¿Ñÿð%%¼ððTB ð¤ C ðD¿ÿð­ Е%ÐððZB ð¥ S ðD¿Ñÿð•%Е%¼ðð~ ð¦ c ð6€ ˆЦÀÿÿÿÿÃWISHBONEðñ´ ð ð ðtB ðÖ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðððtB ð× “ ð6¿D¿ÿ?¿ÿ"ñ¿ðððtB ðØ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðð#ðtB ðÙ€ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðððtB ðÚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð ððtB ðÛ@ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðððtB ðÜ€ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðððzB ðÝ £ ð<¿D¿ÿ?¿ÿˆ"ñ¿ð ð@ðzB ðÞ £ ð<¿D¿ÿ?¿ÿˆ"ñ¿ðð,ðzB ð £ ð<¿D¿ÿ?¿ÿˆ"ñ¿ð ð&ðzB ð £ ð<¿D¿ÿ?¿ÿˆ"ñ¿ð ððŽðT ðŒÃ<+  ð7#"ñ ‘ðððŒðL ðŒÃä+  ð1ðŒÃä+ ðð†B ð­‚ £ ð<¿D¿ÿ?¿ÿˆ!"ñ¿ðŒÃŒ+ ð5ð†B ð® £ ð<¿D¿ÿ?¿ÿˆ!"ñ¿ðŒÃ8Ãð9ð†B 剷 ð<¿D¿ÿ?¿ÿˆ!"ñ¿ð8Ã8+ ð8ð†B ð  £ ð<¿D¿ÿ?¿ÿˆ!"ñ¿ð8+ ä+ ð%ð–ðn ðŒÃä+  ð2 ðˆ#"ñ ‘ðäÃ<+ ðð€B ð3‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ð4 “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ð5 “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ð6 “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð’ðb ðŒÃ<+  ð8 ðˆ#"ñ ‘ððð‚ðZ ðŒÃä+  ð9 ðˆðŒÃä+ ðð€B ð:‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ð; “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ð< “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ð= “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð–ðn ðŒÃä+  ð> ðˆ#"ñ ‘ðäÃ<+ ðð€B ð?‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ð@ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ðA “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ðB “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð’ðb ðŒÃ<+  ðC ðˆ#"ñ ‘ððð‚ðZ ðŒÃä+  ðD ðˆðŒÃä+ ðð€B ðE‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ðF “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ðG “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ðH “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð–ðn ðŒÃä+  ðI ðˆ#"ñ ‘ðäÃ<+ ðð€B ðJ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ðK “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ðL “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ðM “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð’ðb ðŒÃ<+  ðN ðˆ#"ñ ‘ððð‚ðZ ðŒÃä+  ðO ðˆðŒÃä+ ðð€B ðP‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ðQ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ðR “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ðS “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð–ðn ðŒÃä+  ðT ðˆ#"ñ ‘ðäÃ<+ ðð€B ðU‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ðV “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ðW “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ðX “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ððBðT ða !k  ð}#"ñ ‘ðððŒðL ða ¹k  ðYða ¹k ðð†B ðß £ ð<¿D¿ÿ?¿ÿˆ""ñ¿ða ·k ðTð†B ðà‚ £ ð<¿D¿ÿ?¿ÿˆ""ñ¿ða ·k ðUð†B ðâ £ ð<¿D¿ÿ?¿ÿˆ"ñ¿ð·k ¹k ð7ð†B ðã £ ð<¿D¿ÿ?¿ÿˆ"ñ¿ð· ¹ ðDð–ðn ða ¹k  ðZ ðˆ#"ñ ‘ð¹ k ðð€B ð[ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð\‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð] “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð^ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ðð–ðn ða ¹k  ð_ ðˆ#"ñ ‘ð ik ðð€B ð` “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ða‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðb “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðc “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ðð–ðn ða ¹k  ðd ðˆ#"ñ ‘ði Ák ðð€B ðe “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðf‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðg “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðh “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ðð–ðn ða ¹k  ði ðˆ#"ñ ‘ðÁ k ðð€B ðj “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðk‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðl “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðm “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ðð–ðn ða ¹k  ðn ðˆ#"ñ ‘ð qk ðð€B ðo “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðp‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðq “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðr “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ðð–ðn ða ¹k  ðs ðˆ#"ñ ‘ðq Ék ðð€B ðt “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðu‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðv “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðw “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ðð–ðn ða ¹k  ðx ðˆ#"ñ ‘ðÉ !k ðð€B ðy “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðz‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð{ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð| “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð𺢠ð€ ³ ðp€"¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ðð ð"ð†¢ ð‚ £ ð<€#Š‚¿‚€Àÿÿÿÿ?¿ÿ"ñ¿ðð ð#ðÀ¢ ðƒ à ðv€$Šƒ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ð ð ð$ðtB ð­ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðð ðtB ð® “ ð6¿D¿ÿ?¿ÿ"ñ¿ðð ðtB 㒹 ð6¿D¿ÿ?¿ÿ"ñ¿ðð ðtB ð° “ ð6¿D¿ÿ?¿ÿ"ñ¿ðð ðFðb ða !k  ð² ðˆ#"ñ ‘ððð‚ðZ ða ¹k  ð³ ðˆða ¹k ðð€B ð´ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B 𵂠“ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ð¶ “ ð6¿DocumentSummaryInformation8ÿÿÿÿÿÿÿÿÿÿÿÿŒ CompObjÿÿÿÿÿÿÿÿÿÿÿÿ?jÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿà…ŸòùOh«‘+'³Ù0,N˜ ¸ÄØä , H T ` lx€ˆ˜äSPI Master CorePI  Simon SrotCimoSpecifications Template.dotAdministrator T5miMicrosoft Word 10.0@¼ e@jò|° Ä@êU“dÃ@°µ ° Ä!£(GŒLÿÿÿÿ Rtd 6&½  Ó6®&.û¼"System6®&ô/raÎ0¨Ýa ®&-½A Ì‚öY ›(ö‚ÿÿÿþþþþ"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""3333333332""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#32"#333333332"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"""""""#33333332"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32""""""""""#33333332""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32"#33332"""""#33333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32"333333332"""""333333332"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32#33333333333""""""33333332""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"33""""#3333333""""""#3333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32"""""""#33333333"""""33333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32"""""""""""333333333"""#33333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"3"""""""""""""""#33333332"""333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32"3""""""""""""""""""#3333332""""333333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32#3"""""""""""""""""""""3333333""""#333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32#3"""""""""""""""""""""""33333333""""#333333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32#3"""""""""""""""""""""""""333333332""""#333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""32#3""""""""3333"""""""""""""""#33333333"""""#333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32"""""""333333"""""""""""""""""#33333333"""""#333333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32""""""#32""#32"""""""""""""""""""333333333"""""#333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32""""""32""""#3""""#33""""""""""""""#333333333"""""#333333333""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32"""""#3""""""32""#33332"""""""""""""""#333333333""""""333333333"""""""""""""""""""""""""""""""""""""""""""""""""""""""#3"32"""""#2"#332"32"#33"#332"""""""""""""""""#333333333""""""33333333"""""""""""""""""""""""""""""""""""""""""""""""""""""#3"3""""""32"3333"#2"#3""""33""#32"""""""""""""""#333333332""""""33333332""""""""""""""""""""""""""""""""""""""""""""""""""#3"3""""""3""32"3"#2"3""""""3""#333"""""""""""""""""#333333332""""""#333332""""""""""""""""""""""""""""""""""""""""""""""""32#3""""""3"#3""32#3#3""33""32"#233#332""""""""""""""""#333333332""""""#333333"""""""""""""""""""""""""""""""""""""""""""""32#3""""""3"#2""33#3#2"#333"#2"32"3#33233"""""""""""""""""#333333332""""""#3333333"""""""""""""""""""""""""""""""""""""""""32#3"""""#2"#2""33333""3333"#3"3""232#23332#32"""""""""""""""#333333332""""""333333332"""""""""""""""""""""""""""""""""""""3233"""""#2"#2""""323"#3""32"3"3"#23"#23"32#3332""""""""""""""""#333333332""""""33333333""""""""""""""""""""""""""""""""""#3"32"""""#2"32""""""3"#3""32"3"3"#33"#23"#2#3332"""""""""""""""""""333333333""""""#3333333""""""""""""""""""""""""""""""""#3"32"""""#2"32""""""3"#2""#2"3"3"#32"#32"#"32"3""""#32""""""""""""""""333333332""""""33333332"""""""""""""""""""""""""""""#3"32"""""#2"3""""""#2"#2""#2"3"3"#323#32"3"32"3""""#333""""""""""""""""""33333333""""""#33333332""""""""""""""""""""""""""#3"32"""""#2"32"#32"#2"32""32"3#2"#3"3#32"3"3""3""""#333"""3""""""""""""""""#33333333""""""33333333""""""""""""""""""""""""#3"32"""""#2"#2"#333#2"3"""3""3#2"33#3#32"3"3"#3""""#2"3"""332"""""""""""""""""#333333332""""#3333333""""""""""""""""""""""#3"32""""""3"#3"32#3#2"3"""3""3#2"33#3#32"3"3"#2""""#2"332#3332"33""""""""""""""""3333333332""""#3333333"""""""""""""""""""#3#3"""""""3""333"#3#2"3"""3"#2#2"3233#32"3"3"#32"""#2"33332"#2"3333"""""""""""""""""3333333332"""""3333333""""""""""""""""#3#3"""""""32"#32"#2#2"32"#3"#2#2"3233#3"#2#3"#333"""2""333""3""3333""""""""""""""""""""#33333333""""""333333""""""""""""""32#3"""""""#2"""""32#3"#2"#2"#2#2"3"33#3"#2#2"""333""2""""3""3"#3"#3""#32""""""""""""""""""#3333333""""""3333332"""""""""""32#3"""""""#32"""#3"#3"#3332"323""3#23#3"#2#2""""#32"3"33"""#2"#3"#2""#3332#3"""""""""""""""""#3333333"""""33333"""""""""""32#3""""""""332""32""3""333""3"3"#2#2333"#2#2"""""#3"3"3332"#2"#2"32""#2#32#3332""""""""""""""""""3333332"""""#32""""""""""32#3"""""""""33333"""32""#""#3"3"#232333"#2#2"332""3"3"3332"3""#2"32""32"#2#333333""""""""""""""""""#3333333"""32"""""""""#3"#3""""""""""333""""#3"""""32"3"#"3"333"32#2"3332"323"3"#""3""#2"32""32"3"32"#3333"""""""""""""""""""#333332""32"""""""""#3"32""""""""""""""""""32"""33""3"#"3"#32"3"3""3#33"#23"3"3"#2""#2"32""3""3"32""""332"33"""""""""""""""""#3333""32"""""""""#3"32""""""""""""""""""#333332""2""#2"#32"3"3""3"#3"#23"323"#2""32"32""3""3"3""""""32"333333""""""""""""""""#32"32"""""""""#3"32"""""""""""""""""""#3333""#2""#2"#32"3"3"#3"#3"323"#32"3"""32"3"""3""3"3"#332"#3"3"#33333#3"""""""""""""33"32"""""""""#2#32""""""""""""""""""""""""""#33"32"#2""3"3"#3"#2"323"#32"3"""3"#3"""3""3"3"#333""3#3""""#33#3332""""""""""#3"32"""""""""#2#3"""""""""""""""""""""""""""#3333""#2"#3"3"#3332"3"3"#3"#2"""3"#3""#3"#3"3"#2#32"3#3"""""#3#333333""""""""#3"32"""""""""#2#3""""""""""""""""""""""""""""""33""#32#3"3""#33""3"3"#3"#2"""3"#3""#3"#2#3"#2"#2"3#2"""""#332#333332""""""#3"32"""""""""#2#3""""""""""""""""""""""""""""""""""#3332#2""""""#2"#2#3"3""""3"#3""#3"#2#2"32"32"3#2"#33"#232""""332""""""#3"32"""""""""32#3"""""""""""""""""""""""""""""""""""#332#33"""""32"#2#2"3"""#3"#3""#2"#2#2"33332#3#2"#333323""""""#2""""""#3"32"""""""""32#3"""""""""""""""""""""""""""""""""""""#2#33333"33""#2#2#2"33#2"#2""#2"#2#2"3333"#2#2"#2#3323"#3"""#2""""""#3"32"""""""""32#3""""""""""""""""""""""""""""""""""""""""""333332""#2""#2"3332"32""32"#2#2""""""3232"32""#23"#333"3"""""""#3#32"""""""""3233""""""""""""""""""""""""""""""""""""""""""""332"""#2""3""3"32"332"32"3"#2"332#33"32"3"""""3"#33333"""""""32#3"""""""""#3232""""""""""""""""""""""""""""""""""""""""""""""""""#32"3""3""""333332"3"3""333232"32"3""""#3"32"#33"""""""32#3"""""""""#3"32"""""""""""""""33"""""""""""""""""""""""""""""""""#3332"#2""""""3332"3"3""3#32#2"3""3""""#2"33"""""""""""32#3"""""""""#3"32"""""""""""""""3332"""""""""""""""""""""""""""""""""#32"#32""""""33""3"3"#3"#2#2"3""3""""#2"3333"""""""""3233"""""""""#3"3"""""""""""""""#3332"33""""""""""""""""""""""""""""""""""#3333"""#33""3"3"#2"32#3#3""3""""#2""#333""""""""3232"""""""""#2"3"""""""""""""""#3"#2"3332""""""""""""""""""""""""""""""""""333332#33"#3"3"#3332#3#3"#3""""#2""""#3""""""""3232"""""""""#2"3"""""""""""""""32"#2#3#32""33"""""""""""""""""""""""""""""""""3333333#2"2"#333"#2#3"#2""""#2"""""3"""""""#3"32"""""""""#2#3"""""""""""""""32"#2#2"#2""3333""""""""""""""""""""""""""""""""""333332#2""""""#2#3"#2""""3""33"#2"""""""#3"32"""""""""#2#3"""""""""""""""3"3#2#2"#2""3333"""#2""""""""""""""""""""""""""""""""#32#33"""""32#2"#2""""3""33332"""""""#3#3""""""""""32#3""""""""""""""#3"3#23""#2"#3"#3""33332"""""""""""""""""""""""""""""""""#33333"33"#2"#2""""3""3"#32"""""""#3#3""""""""""32#2""""""""""""""#2#3#23#2#2"#3"#2"3333332"""""""""""""""""""""""""""""""""""333332"32"32""""3"#2"""""""""""32#3""""""""""32#2""""""""""""""32#3#23#2#2"#2"#2#32"""33""33"""""""""""""""""""""""""""""""""333""3323"""""3"#332"""""""""32#3"""""""""#3"#2""""""""""""""32#3#3232#2"#2"32#3""""#32"3332""""""""""""""""""""""""""""""""""""3333"""""2"#33333"""""""32#3"""""""""#3"32""""""""""""""3"33#3232#2"#2"3232"33""32"3332"#32""""""""""""""""""""""""""""""""""33""""#2""""333"""""""32#3"""""""""#3"32"""""""""""""#3"33#3"32#2"#2"3233"333"#2#3"#2"#3332""""""""""""""""""""""""""""""""""""""#33"""""3""""""#3232"""""""""#3"32"""""""""""""#2"33#3#32#2"32"323333#3"#3#3"#2"#3332#332""""""""""""""""""""""""""""""""""#33333"#3""""""#3"32"""""""""#3"3""""""""""""""32"33#3#32#2"3""3""#32"32#3#2"32"#2"32#33333""""""""""""""""""""""""""""""""""3333332""""""#3"32"""""""""#3"3""""""""""""""32#23#2#32#3"3""3"""""33"#3#2"3""#2"3"#2#3333"""""""""""""""""""""""""""""""""""#3332""""""#3"32"""""""""33#3"""""""""""""#3"#23#2#32#3"3""3""#3333"#2#2"3""32"3"32""#333"""""""""""""""""""""""""""""""""""""32""""""#3"32"""""""""32#3"""""""""""""#3"#23#23#2#3"3"#3"#3333""#2#2"3""32#3"3"""""#3""""#332"""""""""""""""""""""""""""""""""""""#3"32"""""""""32#3"""""""""""""#2"333#"3#2#3"3"#3"33"""""3232#3""3"#3"3"#3"""32""333332""""""""""""""""""""""""""""""""""""32#3""""""""""32#3"""""""""""""32"3#3""3#2#3#2"#3#3"""""#3"3"#33"3"#3"3"#332"#2"#32""332"""""""""""""""""""""""""""""""""""32#3""""""""""32#3"""""""""""""3""3#3"#332#3#2"#2#2""""#33"3"#3333"#3"3"#333"#3"#3""""32""#32""""""""""""""""""""""""""""""32#3""""""""""32#2""""""""""""#33#3#3"#232#3#2"#2#2""33332"3""""33"#2"3"#2"32#3"3""""""3""#333"""""""""""""""""""""""""""""32#3"""""""""#3"#2""""""""""""#3332#3"#232#3#2"#232"3333"""3"""""""#2#2"3""32#3#2""33""32"#2#3""#32""""""""""""""""""""""""32#3"""""""""#3"32""""""""""""""#32#323232#3#2"#23"#323""""3"""""""#2#2"32"3"#2#2"#333"#2"32"3""3333""""""""""""""""""""""#32#3"""""""""#3"#3"""""""""""""""""#333"32#3#""323"#3"332"#2"#32"""32#2"3333"#23""32#3"#2"3""2"#2"33"33"""""""""""""""""""#3"32"""""""""#3"#3"""""""""""""""""""#3"33333""3232"333332#2"#3332"32#2""332"323"#3""32"3"3"#2"#2"#3"333333"""""""""""""""#3"32"""""""""#3"#333""""""""""""""""""""333333"3"#2"332"#2#2"#2#32"32#2"3"""#3"3"#2""#2"3"3"#2"3""#2"3"333333"""""""""""""#3"32"""""""""#3""33333""""""""""""""""""""333333"#3"""""3"#2"32"#2"3"3""332#32#3"#2""#2"3"3"#2#2""#2#3""""#33"""""""""""""#3"32"""""""""#3"""3333333"""""""""""""""""""""33""32"""#3"#2"3""#2"3"3""333"3"#2"#2""#2"3"3"#232""32#2""""""3"""""""""""""#3"32"""""""""#32""""33333332""""""""""""""""""""""#332#32"3""3""32"3"3""2"3"32#2"32""32"3#2"#23"""32#2"32"""3"""""""""""""#2"32""""""""""3332""""33333332"""""""""""""""""""""#3333""3""3""3""3"3"#2"3"#2#2"3"""3""3#2"3#2"2"32#2"3332#2"""""""""""""#2#32""""""""""#33332""""#3333333""""""""""""""""""""#33"""33#3""3"#3"3"#333"#2#2"3"""3""3#2"33"#2"32#2"333332"""""""""""""#2#3"""""""""""""3333332""""#3333333"""""""""""""""""""""""3332""3"#3"2"#333"#2#2"3"""3"#2#2"33"#2"3"#2#3""332"""""""""""""#2#3""""""""""""""33333333""""#33333333""""""""""""""""""""""32"#33#2#2""#32"#2#2"32"#3"#2#2"32"32"3"3"#32"""""""""""""""""#2#3""""""""""""""""33333333""""#333333333""""""""""""""""""""""#3332#3""""""32#3"#3"32"#232#3"#3""3"3"#3332"""""""""""""""32#3"""""""""""""""""""33333333""""#333333333"""""""""""""""""""""#32#333"""#3"#3"#3332"323"#3"3#"#3"3"""3332""""""""""""""3"#3""""""""""""""""""""""33333333""""#333333333"""""""""""""""""""""#33333332""3""333""3"3"#2"33"#3"3"""""32""""""""""""""3"#3""""""""""""""""""""""""333333333"""""333333332""""""""""""""""""""#33333"""32"""""#3"3"""#23"#3"3"""""#2""""""""""""""3"32""""""""""""""""""""""""""#3333333332""""33333333"""""""""""""""""""""""""""#3"""""32"3"""3"3"#2#2"#32"3"""""""""""""""3"32"""""""""""""""""""""""""""""#3333333332""""33333333"""""""""""""""""""""""""33"""33""3""#3"3"#2#2"#3333""""""""""""""#3"32""""""""""""""""""""""""""""""""#3333333332"""#33333333""""""""""""""""""""""#333332"#2""#2"3"#2#2"#2"33""""""""""""""#3"32""""""""""""""""""""""""""""""""""""#333333332"""333333333""""""""""""""""""""#3332""#2""3""2"32#2"3""""""""""""""""""#3"32"""""""""""""""""""""""""""""""""""""""#333333332"""333333333""""""""""""""""""""""""#3332"#2"32#2"333""""""""""""""""#3"32""""""""""""""""""""""""""""""""""""""""""#333333332"""333333333"""""""""""""""""""""#3332"#2"32#""333332"""""""""""""#3#3""""""""""""""""""""""""""""""""""""""""""""""3333333332"""333333333""""""""""""""""""""#3""#333"3""""#332"""""""""""""33#3"""""""""""""""""""""""""""""""""""""""""""""""""333333333""""333333333"""""""""""""""""""""#333"332""""#2"""""""""""""32#3""""""""""""""""""""""""""""""""""""""""""""""""""""33333333"""""333333333""""""""""""""""""""#3"333332"32"""""""""""""32#3"""""""""""""""""""""""""""""""""""""""""""""""""""""""33333332"""""333333332"""""""""""""""""""""#333333""""""""""""""32#3"""""""""""""""""""""""""""""""""""""""""""""""""""""""""#3333332""""""333333332"""""""""""""""""""""3333"""""""""""""#3232""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""33333332""""""333333332""""""""""""""""""""#3"""""""""""""#3"32""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""333333332"""""#33333333"""""""""""""""""""""""""""""""""#3"32""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333333332"""""#33333333""""""""""""""""""""""""""""""#3"32"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333333333"""""#33333332"""""""""""""""""""""""""""#3"32""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333333333"""""333333332""""""""""""""""""""""""#3#3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333333333"""""333333333"""""""""""""""""""""#3#3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""333333332""""#333333333""""""""""""""""""32#3"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""333333332""""#333333333"""""""""""""""32#3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""333333332""""#333333332""""""""""""32#3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#33333333"""""#33333332"""""""""#32#3"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#33333332"""""#3333333"""""""#3"33""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""33333332""""""3333333332""33"32"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""33333332"""""333333333332"32"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""3333332"""""33333333""32""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""3333333""""""#332""3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""33333332"""""""#3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#33333332""""#3""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333333333332"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#333333332""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#33333"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""'ÿÿûàü¼@Times- "2 8u Ã&Ð6SPI Master Core¼ê7Èó7 cUÈA‘Uc 2 8é Ã&Ð6 t°2 ¹ Ã&Ð6Specification½½ccÞ Þc Þ½ 2 é Ã&Ð6 t°ûOþ¼@Times New Roman- 2 —é Ã&Ð6 têÐ6Ã&'ÿÿ 2 ‰!é Ã&Ð6 têÐ6Ã&'ÿÿûõþ@Times New Roman-&2 Þ"ÏÃ&Ð6Author: Simon Srot£†J…†hXB†JÀ†…C…g†J 2 Þ"é Ã&Ð6 tŠÐ6Ã&'ÿÿ)2 $Ã&Ð6simons@opencores.orghJÀ††gõ††u†v†huhC†g† 2 $é Ã&Ð6 tŠÐ6Ã&'ÿÿ 2 C%é Ã&Ð6 t‹Ð6Ã&'ÿÿ 2 v&é Ã&Ð6 t‹Ð6Ã&'ÿÿûõþ¼@Times New Roman-2 ©'ZÃ&Ð6Rev. 0.Àv†CC†B 2 ©'d Ã&Ð66t… 2 ©'é Ã&Ð6 t‘Ð6Ã&'ÿÿ- 2 Ü(þÃ&Ð6March 15, 2004ü†vv•B…†CB…†…†- 2 Ü(é Ã&Ð6 tŠÐ6Ã&'ÿÿ-Ð6Ð6Ã&Ã&Ï6Ï6Â&Â&Î6Î6Á&Á&Í6Í6À&À&Ì6Ì6¿&¿&Ë6Ë6¾&¾&Ê6Ê6½&½&É6É6¼&¼&È6È6»&»& Ç6 Ç6º& º&  Æ6 Æ6¹& ¹&  Å6 Å6¸& ¸&  Ä6 Ä6·& ·&  Ã6 Ã6¶& ¶& Â6Â6µ&µ&Á6Á6´&´&À6À6³&³&¿6¿6²&²&¾6¾6±&±&½6½6°&°&¼6¼6¯&¯&»6»6®&®&º6º6­&­&¹6¹6¬&¬&¸6¸6«&«&·6·6ª&ª&¶6¶6©&©&µ6µ6¨&¨&´6´6§&§&³6³6¦&¦&²6²6¥&¥&±6±6¤&¤& °6 °6£& £& !!¯6!¯6¢&!¢&!!""®6"®6¡&"¡&""##­6#­6 &# &##$$¬6$¬6Ÿ&$Ÿ&$$%%«6%«6ž&%ž&%%þÿÕÍÕœ.“—+,ù®DÕÍÕœ.“—+,ù®Ô pxŒ”œ¤¬ ´¼ÄÌ Ô œä OpenCoresw|V¬/­ !SPI Master CoreSPI Master CoreSpecification12# 2.1 WISHBONE interface signals! 2.2 SPI external connections3 3.1 Core Registers list$ 3.2 Data receive registers[RxX] RxX % 3.3 Data transmit register [TxX] TxX+ 3.4 Control and status register [CTRL] ASS IE LSB Tx_NEG Rx_NEG GO_BSY CHAR_LEN# 3.5 Divider register [DIVIDER] DIVIDER# 3.6 Slave select register [SS] SS4 4.1 WISHBONE interface 4.2 Serial interface5 Appendix A Title Headings t 8@ _PID_HLINKSäA,~& ‡6http://www.opencores.org/wishbone/specs/wbspec_b1.pdf?e _Toc28803260<_ _Toc28803259<Y _Toc28803258<S _Toc28803257<M _Toc28803256<G _Toc28803255<A _Toc28803254<; _Toc28803253<5 _Toc28803252</ _Toc28803251<) _Toc28803250=# _Toc28803249= _Toc28803248= _Toc28803247= _Toc28803246=  _Toc28803245= _Toc28803244Khttp://www.opencores.org/K http://www.opencores.org/Khttp://www.opencores.org/þÿ ÿÿÿÿ ÀFMicrosoft Word Document MSWoD¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ð· “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ð¸ ðˆ#"ñ ‘ð¹ k ðð€B ð¹ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B 𺂠“ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ð» “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ð¼ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ð½ ðˆ#"ñ ‘ð ik ðð€B ð¾ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ð¿‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÀ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ðÁ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ð ðˆ#"ñ ‘ði Ák ðð€B ðà “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÄ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÅ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ðÆ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ðÇ ðˆ#"ñ ‘ðÁ k ðð€B ðÈ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÉ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÊ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ðË “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ðÌ ðˆ#"ñ ‘ð qk ðð€B ðÍ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ð΂ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÏ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ðÐ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ðÑ ðˆ#"ñ ‘ðq Ék ðð€B ðÒ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÓ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÔ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ðÕ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ð–ðn ða ¹k  ðÖ ðˆ#"ñ ‘ðÉ !k ðð€B ð× “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðØ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ð ð€B ðÙ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ð ð€B ðÚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ð ðÀ¢ ðÛ à ðv€%ŠÛ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ðð ð%ðÀ¢ ðÜ à ðv€'ŠÜ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÒÿÿÿÒÿÿÿ`TŽT`TŽTÒÿÿÿ"ñ¿ð ð ð'ðtB ðq “ ð6¿D¿ÿ?¿ÿ"ñ¿ð.ððtB ðr “ ð6¿D¿ÿ?¿ÿ"ñ¿ð-ððtB ðs “ ð6¿D¿ÿ?¿ÿ"ñ¿ð,ððtB ðt€ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð+ððtB ðu “ ð6¿D¿ÿ?¿ÿ"ñ¿ð*ððtB ðv@ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð)ððtB ðw€ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð1ððtB ðx “ ð6¿D¿ÿ?¿ÿ"ñ¿ð4ððtB ðy “ ð6¿D¿ÿ?¿ÿ"ñ¿ð7ððtB ðz “ ð6¿D¿ÿ?¿ÿ"ñ¿ð6ððtB ð{ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8ð ðÀ¢ ð| à ðv€.Š|¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ð3ð ð.ð’ðb ðŒÃ<+  ð} ðˆ#"ñ ‘ð(ðð‚ðZ ðŒÃä+  ð~ ðˆðŒÃä+ ðð€B ð‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð€ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B ð‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð–ðn ðŒÃä+  ðƒ ðˆ#"ñ ‘ðäÃ<+ ðð€B ð„‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð… “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B ð† “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B ð‡ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð’ðb ðŒÃ<+  ðˆ ðˆ#"ñ ‘ð'ðð‚ðZ ðŒÃä+  ð‰ ðˆðŒÃä+ ðð€B ðŠ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð‹ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B ðŒ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð–ðn ðŒÃä+  ðŽ ðˆ#"ñ ‘ðäÃ<+ ðð€B ð‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B ð‘ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B ð’ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð’ðb ðŒÃ<+  ð“ ðˆ#"ñ ‘ð&ðð‚ðZ ðŒÃä+  ð” ðˆðŒÃä+ ðð€B ð•‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð– “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B ð— “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B 𘠓 ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð–ðn ðŒÃä+  ð™ ðˆ#"ñ ‘ðäÃ<+ ðð€B ðš‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð› “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B 𜠓 ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð’ðb ðŒÃ<+  ðž ðˆ#"ñ ‘ð%ðð‚ðZ ðŒÃä+  ðŸ ðˆðŒÃä+ ðð€B ð ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B ð¡ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B 𢠓 ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B 𣠓 ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð ð–ðn ðŒÃä+  ð¤ ðˆ#"ñ ‘ðäÃ<+ ðð€B 𥂠“ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ð ð€B 𦠓 ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãð ð€B ð§ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ð ð€B 𨠓 ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ð 𺢠ðÒ ³ ðp€-¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ð$ð ð-ð†¢ ðÓ £ ð<€,ŠÓ¿‚€Àÿÿÿÿ?¿ÿ"ñ¿ð#ð ð,𺢠ðÔ ³ ðp€+¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ð"ð ð+ðÀ¢ ð à ðv€)Š ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ð!ð ð)𺢠ð ³ ðp€(¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÒÿÿÿÒÿÿÿ`TŽT`TŽTÒÿÿÿ"ñ¿ð/ð ð(ð’ðb ðŒÃ<+  ð  ðˆ#"ñ ‘ð0ðð‚ðZ ðŒÃä+  ð  ðˆðŒÃä+ ðð€B ð ‚ “ ð6¿D¿‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð–ðn ðŒÃä+  ð  ðˆ#"ñ ‘ðäÃ<+ ðð€B ð ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃŒ+ ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ðŒÃ8Ãðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8Ã8+ ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð8+ ä+ ðð°ðT ðÁ1#ƒ ð #"ñ ‘ð5ððˆð` ða ¹k  ðª# ð ˆ#ðÁƒðð€B ð« “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B 𬂠“ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð­ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð® “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð¯# ð ˆ##"ñ ‘ðqƒðð€B ð° “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B 𱂠“ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð² “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð³ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð´# ð ˆ##"ñ ‘ðqɃðð€B ðµ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð¶‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð· “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B 𸠓 ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð¹# ð ˆ##"ñ ‘ðÉ!ƒðð€B 𺠓 ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B 𻂠“ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð¼ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð½ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð¾# ð ˆ##"ñ ‘ð!yƒðð€B ð¿ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÀ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÁ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðÃ# ð ˆ##"ñ ‘ðyуðð€B ðÄ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÅ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÆ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðÇ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðÈ# ð ˆ##"ñ ‘ðÑ)ƒðð€B ðÉ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÊ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðË “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðÌ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðÍ# ð ˆ##"ñ ‘ð) ƒðð€B ðÎ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÏ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðÐ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðÑ “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð # ð ˆ#"ñ ‘ð Ù!ƒðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð # ð ˆ#"ñ ‘ðÙ!1#ƒðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððÀ¢ ðN à ðv€/ŠN ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ð2ð ð/ðÀ¢ ðO à ðv€0ŠO ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ðð ð0ðÀ¢ ðP à ðv€1ŠP ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ðð ð1ðÀ¢ ðQ à ðv€!ŠQ ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ðð ð!ðÀ¢ ðR à ðv€&ŠR ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ðð ð&ðtB ðS “ ð6¿D¿ÿ?¿ÿ"ñ¿ð?ððtB ðT “ ð6¿D¿ÿ?¿ÿ"ñ¿ð>ððtB ðU “ ð6¿D¿ÿ?¿ÿ"ñ¿ð=ððtB ðV “ ð6¿D¿ÿ?¿ÿ"ñ¿ð<ððÀ¢ ðW à ðv€2ŠW ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ð;ð ð2ð¾ðb ðÁ1#ƒ ðX  ðˆ#"ñ ‘ð:ððˆð` ða ¹k  ðY # ð ˆðÁƒðð€B ðZ  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð[ ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð\  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð]  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð^ # ð ˆ#"ñ ‘ðqƒðð€B ð_  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð` ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ða  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðb  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðc # ð ˆ#"ñ ‘ðqɃðð€B ðd  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðe ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðf  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðg  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðh # ð ˆ#"ñ ‘ðÉ!ƒðð€B ði  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðj ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðk  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðl  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðm # ð ˆ#"ñ ‘ð!yƒðð€B ðn  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðo ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðp  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðq  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðr # ð ˆ#"ñ ‘ðyуðð€B ðs  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðt ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðu  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðv  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ðw # ð ˆ#"ñ ‘ðÑ)ƒðð€B ðx  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðy ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðz  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð{  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð| # ð ˆ#"ñ ‘ð) ƒðð€B ð}  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð~ ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð€  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð # ð ˆ#"ñ ‘ð Ù!ƒðð€B ð‚  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðƒ ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð„  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ð…  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððœðt ða ¹k  ð† # ð ˆ#"ñ ‘ðÙ!1#ƒðð€B ð‡  “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ðˆ ‚ “ ð6¿D¿ÿ?¿ÿ"ñ¿ða ·k ðð€B ð‰  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð·k ¹k ðð€B ðŠ  “ ð6¿D¿ÿ?¿ÿ"ñ¿ð· ¹ ððÀ¢ ð‹ à ðv€*Š‹ ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ ` þÿÿ þÿÿ`TVV`TVV þÿÿ"ñ¿ð9ð ð*ð´² ðŒ ƒ ðpAÁ¿ÿƒÃ.¿ `wishlogo¨ÿÿÿ¨ÿÿÿºS`TºS`T¨ÿÿÿ#"ñ ’¿ðððz ð £ ð<¿ÀÀÀ¿Ëœ1ÿ?¿ÿ¿ `"ñ¿ð@ð ðbR ðŽ c ð$¿ÿ?¿ÿ"ñ¿ðNððÆ¢ ð Ó ð|€ˆŠ ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `¸ýÿÿ¸ýÿÿ`T¨V`T¨V¸ýÿÿ"ñ¿ðOð ððÆ¢ ð‘ Ó ð|€ˆŠ‘ ¿ÀÀÀ¿ÿ?¿ÿƒÃ.¿ `¸ýÿÿ¸ýÿÿ`T¨V`T¨V¸ýÿÿ"ñ¿ðMð ððÆ¢ ð“ Ó ð|€Š“ ¿ÀÀÀ¿ÀÀÀÀÿ?¿ÿƒÃ.¿ `©ÿÿÿ©ÿÿÿ`T·T`T·T©ÿÿÿ"ñ¿ðLð ððŒ¢ ð” ³ ðB€ˆŠ” ¿‚€Àÿÿÿÿ?¿ÿ"ñ¿ðKð ðð€¢ ð• “ ð6€¿‚€Àÿÿÿÿ?¿ÿ"ñ¿ðAð ððbb ð– c ð$¿ÿ?¿ÿ"ñ¿ðJððzB ð— £ ð<¿D¿Ñÿ?¿ÿ"ñ¿ðGð ðzB 𘠣 ð<¿D¿Ñÿ?¿ÿ"ñ¿ðIððzB ðš £ ð<¿D¿Ñÿ?¿ÿ"ñ¿ðEð ðzB ð› @ £ ð<¿D¿Ñÿ?¿ÿ"ñ¿ðCððÀ¢ ðœ à ðv€Šœ ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ðHð ðð†¢ ð £ ð<€Š ¿‚€Àÿÿÿÿ?¿ÿ"ñ¿ðBð ððÀ¢ ðž à ðv€Šž ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ðFð ððÀ¢ ðŸ à ðv€ŠŸ ¿‚€Àÿÿÿÿ?¿ÿƒÃ.¿ `ÿÿÿÿÿÿ`TCU`TCUÿÿÿ"ñ¿ðDð ðð„ ðb ðY¼e(H ð¡  ðˆ#"ñ ‘ðððT ð¢  # 𠀊¢ ðÉÄ…Hð ððT ð£  # 𠀊£ ð9ÄõHð ððT ð¤  # ð €Ф ð© Äe(Hð ððZB ð¥ B S ðD¿Ñÿð\"\ððêð` ð­  "¼ ð¦ # ð ˆð¨y#ÄððTB ð§ B C ðD¿ÿð­  " ððZB ð¨  S ðD¿Ñÿð" "¼ððZB ð©  S ðD¿ÑÿðU U¼ððZB ðª  S ðD¿Ñÿðå å¼ððTB ð« ‚ C ðD¿ÿð1\1ÄððTB 𬠂 C ðD¿ÿð¡\¡ÄððTB ð­ ‚ C ðD¿ÿð"\"ÄððTB ð®  C ðD¿ÿð@•%@ððZB ð¯  S ðD¿Ñÿð•%@•%ÄððZB ð°  S ðD¿Ñÿð%@%ÄððZB ð±  S ðD¿Ñÿðµ@µÄððTB ð²  C ðD¿ÿðppððZB ð³  S ðD¿ÑÿðpÄððTB ð´  C ðD¿ÿð$$ððZB ðµ  S ðD¿Ñÿð$ÄððTB ð¶  C ðD¿ÿðØý&ØððZB ð·  S ðD¿Ñÿðý&Øý&Äðð~ ð¸  c ð6€ˆЏ ÀÿÿÿÿÃWISHBONEðY¼& ð ððT ð¹  # ð €й ð) ¼ð ððB ðS ð¿Ëÿ ?ððHð ð0ð( ð ð 1&å&,,,,,,,,,,, ,!,",#,$,%,&,',(,),+,,,-,.,/,0,1,2,5,9,:,;,<,=,>,?,@,A,B,C,D,E,F,G,J,L,N,O,P,Q,R,T,U,W,X,Y,Z,[,\,],Æ,È,Ë,Ì,Í,Î,Ï,Ð,Ñ,Ò,Ó,Ô,Õ,Ö,×,Ø,¬4Œ üÿÿt† ,@¡ Q…]!T  ìþÿÿ\øè t€ösÛt@Ö/s st‚öCótÛ/—;—tQ v[ÐÃt@O  [hÃt@ƒö[ t@z[±[tÝ/[¼[tz¯±¯tÚ¯ûÿÿ†ûÿÿtÙ¯ûÿÿ¯/üÿÿt× ûÿÿ /üÿÿt7;ýÿÿëoþÿÿtØ /üÿÿ¯/üÿÿtC›ýÿÿKoþÿÿtNKýÿÿûoþÿÿt8ëýÿÿ›oþÿÿtÜûoþÿÿ±oþÿÿt}¼Gÿÿÿ|¯tÞ/¯¼¯tR v»Ð#t@P  »h#t@²¼»|#t°z#±#t¯z»±»t®/#¼#t­/»¼»tÛö»kt@Ü%Ó±;t@ ö'×t@ÔöŸOt@Óö_tÒögÏt@žK_ûÇt“›_KÇtˆë_›Çt};_ëÇtv/Ç;Çtu¯g†gtt¯g¯‡ts ‡¯‡tr g ‡tq/g gt %g ±Ï t@ û7«Ÿtw«‹±‹tN ÒO,·t@|º O·t@x/OOt O€·tzÿO±Oty/££t{ÿ£±£t‹ Ò¯,t@X ¯€tW º ¯t@V ÿ±tU ÿ¯±¯tT /tS /¯¯t /|_t@•  ƒÎst ÿƒŠ 3t› ÎK ÿK tŸ ÿs Š k t@š Î+ ÿ+ tž ÿS Š  t@— Î[ÿ[tœ ÿëŠ › t@˜ ÎÃÿÃt– óKvût” EûΫt“ ² Ot@‘ Ûû ƒt@Ž ø[» t Éÿÿÿ#ø«t@ÿÿ _Toc1771883 _Toc1771949 _Toc28803244 _Toc28803245 _Toc28803246 _Toc28803247 _Toc28803248 _Toc28803249 _Toc28803250 _Toc28803251 _Toc28803252 _Toc28803253 _Toc28803254 _Toc28803255 _Toc28803256 _Toc28803257 _Toc28803258 _Toc28803259 _Toc28803260 _Hlt11659852+9° º ÆÄ‘¶J"Ú#&&é&J(k,å,1­4 @3E¸ Ø â6ã±Üh"ø#/&ÿ&^(w,÷,1­4ÿÿ–ÇŸ? ‚—ÇŸ?L˜ÇŸ? ™ÇŸ?̚ǟ?¤¯›ÇŸ?\õn³Ý[ªñ­4Àê"i·ÿ­48*€urn:schemas-microsoft-com:office:smarttags€date€ €12€13€15€2002€2003€2004€26€28€3€4€6€7€Day€Month€Year         /3ÇËñõ)-KNpt¾Âáä 3 7   ’ › ü   # L T q y š £ Á Ê ç î =Eem•ž¿Çs{ºÂ6@_i›¥L_¡©ßâUX"Š­°%(wz>HIO¶À(+’•çî6<U_‹•µ¿èòõûJTt~§±à!ò!ø! ""%"."@"9#A#m#w#J&S&‰''M)V)×)à)O*X*¾*Ç*+ +++Ý+à+v-‚-´-Á-Ä/Å/Î/8191ý12 2222*24262@2A2K2­4 " š ¢ Á É •öÕßw{ÈÍ>ABH;C(,à!÷!ø!""-"."H"Œ''j-n-'/;/Ä/Ó01 1$161718191A1C1N1P1[1]1Œ1–1­1·1Î1Ø122222 2U3X33“3˜33ã3è3?4B4n4q4{4~4ˆ4‹4•4˜4¢4¥4­4333333333333333333333333333333RST}í(‹ªÙ÷"@ŸÞü(F€žì YwÀÞ=~œÈæ=t’Áß3ð Ûô*C $ÚóÞÞèéëìîïñòóõö÷øùúþ"$()BHIJPVWhijp‰55o!I"§"À"Á#Ø#0$I$e/Ä/Ä/í/0Ã0Ä0118191£1«1Ä1Ì1å1í1M2U2i2p2„2‹2Ÿ2¦2¨2²2´2¾2À2Ê2Ì2Ô2Ö2ò23331333D3F3N3P3[3]3e3g3q3s3}33‰3‹3–3.484:4E4G4Q4S4]4_4g4i4t4v44ƒ4Ž44›44¨4­4Ä/Ä/118191­4ÿÿ Flextronics Flextronics Flextronics Flextronicsigormsimonsigormigormigorm Administrator|ÿÿÿìl:›Rÿÿÿÿÿÿÿÿ}ÿÿÿ@.UQÿÿÿÿÿÿÿÿ~ÿÿÿØq* PÿÿÿÿÿÿÿÿÿÿÿH"“Oÿÿÿÿÿÿÿÿ€ÿÿÿótHÿÿÿÿÿÿÿÿÿÿÿÒŸè©Gÿÿÿÿÿÿÿÿ‚ÿÿÿ"ê4 FÿÿÿÿÿÿÿÿƒÿÿÿVö«Eÿÿÿÿÿÿÿÿˆÿÿÿvè2—Nÿÿÿÿÿÿÿÿ‰ÿÿÿœpºÁDÿÿÿÿÿÿÿÿþßÿíao ä"¦.ÿÿÿÿÿÿÿÿÿ ,l5\C¼æÿÿÿÿÿÿÿÿÿ‹À>>Ö>ÿÆ`BÆoìÂÿÿÿÿÿÿÿÿÿa@&Gÿÿÿÿÿÿÿÿÿá0[ÿÿÿÿÿÿÿÿÿÉ+º}´Óÿÿÿÿÿÿÿÿÿ:|~ÿÿÿÿÿÿÿÿÿ„Ô„˜þÆÔ^„Ô`„˜þ.„¹„˜þƹ^„¹`„˜þ.„ž„˜þÆž^„ž`„˜þ.„ƒ„˜þƃ^„ƒ`„˜þ. „Ô„˜þÆÔ^„Ô`„˜þOJQJo(·ð „¹„˜þƹ^„¹`„˜þOJQJo(·ð „ž„˜þÆž^„ž`„˜þOJQJo(·ð „ƒ„˜þƃ^„ƒ`„˜þOJQJo(·ð„h„˜þÆh^„h`„˜þ. „h„˜þÆh^„h`„˜þOJQJo(·ð „h„˜þÆh^„h`„˜þOJQJo(·ðh „Є˜þÆÐ^„Ð`„˜þOJQJo(·ðh „ „˜þÆ ^„ `„˜þOJQJo(oh „p„˜þÆp^„p`„˜þOJQJo(§ðh „@ „˜þÆ@ ^„@ `„˜þOJQJo(·ðh „„˜þÆ^„`„˜þOJQJo(oh „à„˜þÆà^„à`„˜þOJQJo(§ðh „°„˜þư^„°`„˜þOJQJo(·ðh „€„˜þÆ€^„€`„˜þOJQJo(oh „P„˜þÆP^„P`„˜þOJQJo(§ð„h„˜þÆh^„h`„˜þ.„„PþÆ^„`„Pþ..„È„þÆ^„È`„þ...„À„xýÆØ ^„À`„xý.... „¸„èüƨ ^„¸`„èü ..... „° „XüÆ^„° `„Xü ...... „¨ „ÈûÆà^„¨ `„Èû....... „ „8ûư^„ `„8û........ „à„`úÆ€^„à`„`ú.........„h„˜þÆh^„h`„˜þ„h„˜þÆh^„h`„˜þo(-„h„˜þÆh^„h`„˜þo()„h„˜þÆh^„h`„˜þo() „h„˜þÆh^„h`„˜þOJQJo(nð„h„˜þÆh^„h`„˜þo()‹À> ,l5Æ`Ba@&Gþß:|~É+º}á0[íao ‰ÿÿÿƒÿÿÿ‚ÿÿÿÿÿÿ€ÿÿÿˆÿÿÿÿÿÿ~ÿÿÿ}ÿÿÿ|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ          å N -ãt4÷S;úwa’†¡ ˆÕV¬áW´×\ÂdKÃÖUã”cñX$ý‘–›¢®¯³ÁÌØÙÝëö  #.VW[ju¥¦ª¸Ãìíñ '(+G ¢ Ù Ú ß å ï û ü     $ & , K L U W ] p q z } ƒ ™ š £ ¦ ­ À Á Ê Ì Ò æ ç ï ñ ÷  <=FHNdenpw”•ž §¾¿ÈÊÑéêÄäéïù56ACJ^_jls𛦍®ÔÕ9>FLS_`diln†‡‹“•­®²·º¼ÔÕÙÞáãûü %&*/26OPTY\`yz~ƒ†Š£¤©®±µÑÒÚßâæýþ  #$æìñòùûü²³¹¾¿ÆÊËÐÓÔÞäêíðóöøúü "$().7;>BIPW`iji"j"p"v"{"|"ƒ"…"‰"Š""˜" "¡"ù#ú#$$ $ $$$$$$&$)$*$Ä/Ó08191Ì2Õ2­4žžžžžž–a°•0žžžžžžžžžžžž–žžžž–žžžžžžžžžžž–žž–žž–žž–žž–žž–ÝÝÿ@€H"H"Lú„H"H"@„À{¬4P@ÿÿUnknownRichard Herveilleÿÿÿÿÿÿÿÿÿÿÿÿ G‡z €ÿTimes New Roman5€Symbol3& ‡z €ÿArial3TimesA&LucidabrightA"GenevaArial?5 ‡z €ÿCourier New5& ‡z!€ÿTahoma;€Wingdings"qˆðÐäh#|tFŒ|ƒ&‹|ƒ& !£(V!£(V1ð£Ã+H4d¬/¬/ 2ƒQðßßHàÿ?äÅÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷S;ÿÿGC:\Program Files\Microsoft Office\Sjablonen\Specifications Template.dotSPI Master Core Simon Srot AdministratorX              rdDocWord.Document.8ô9²quhd-3.5.5/fpga/usrp2/opencores/spi/rtl/000077500000000000000000000000001224274632000176675ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/rtl/verilog/000077500000000000000000000000001224274632000213365ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/rtl/verilog/spi_clgen.v000066400000000000000000000115701224274632000234740ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// spi_clgen.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "spi_defines.v" module spi_clgen (clk_in, rst, go, enable, last_clk, divider, clk_out, pos_edge, neg_edge); input clk_in; // input clock (system clock) input rst; // reset input enable; // clock enable input go; // start transfer input last_clk; // last clock input [`SPI_DIVIDER_LEN-1:0] divider; // clock divider (output clock is divided by this value) output clk_out; // output clock output pos_edge; // pulse marking positive edge of clk_out output neg_edge; // pulse marking negative edge of clk_out reg clk_out; reg pos_edge; reg neg_edge; reg [`SPI_DIVIDER_LEN-1:0] cnt; // clock counter wire cnt_zero; // conter is equal to zero wire cnt_one; // conter is equal to one assign cnt_zero = cnt == {`SPI_DIVIDER_LEN{1'b0}}; assign cnt_one = cnt == {{`SPI_DIVIDER_LEN-1{1'b0}}, 1'b1}; // Counter counts half period always @(posedge clk_in) begin if(rst) cnt <= {`SPI_DIVIDER_LEN{1'b1}}; else begin if(!enable || cnt_zero) cnt <= divider; else cnt <= cnt - {{`SPI_DIVIDER_LEN-1{1'b0}}, 1'b1}; end end // clk_out is asserted every other half period always @(posedge clk_in) begin if(rst) clk_out <= 1'b0; else clk_out <= (enable && cnt_zero && (!last_clk || clk_out)) ? ~clk_out : clk_out; end // Pos and neg edge signals always @(posedge clk_in) begin if(rst) begin pos_edge <= 1'b0; neg_edge <= 1'b0; end else begin pos_edge <= (enable && !clk_out && cnt_one) || (!(|divider) && clk_out) || (!(|divider) && go && !enable); neg_edge <= (enable && clk_out && cnt_one) || (!(|divider) && !clk_out && enable); end end endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/rtl/verilog/spi_defines.v000066400000000000000000000143011224274632000240140ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// spi_define.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // Number of bits used for devider register. If used in system with // low frequency of system clock this can be reduced. // Use SPI_DIVIDER_LEN for fine tuning theexact number. // `define SPI_DIVIDER_LEN_8 //`define SPI_DIVIDER_LEN_16 //`define SPI_DIVIDER_LEN_24 //`define SPI_DIVIDER_LEN_32 `ifdef SPI_DIVIDER_LEN_8 `define SPI_DIVIDER_LEN 8 // Can be set from 1 to 8 `endif `ifdef SPI_DIVIDER_LEN_16 `define SPI_DIVIDER_LEN 16 // Can be set from 9 to 16 `endif `ifdef SPI_DIVIDER_LEN_24 `define SPI_DIVIDER_LEN 24 // Can be set from 17 to 24 `endif `ifdef SPI_DIVIDER_LEN_32 `define SPI_DIVIDER_LEN 32 // Can be set from 25 to 32 `endif // // Maximum nuber of bits that can be send/received at once. // Use SPI_MAX_CHAR for fine tuning the exact number, when using // SPI_MAX_CHAR_32, SPI_MAX_CHAR_24, SPI_MAX_CHAR_16, SPI_MAX_CHAR_8. // `define SPI_MAX_CHAR_128 //`define SPI_MAX_CHAR_64 //`define SPI_MAX_CHAR_32 //`define SPI_MAX_CHAR_24 //`define SPI_MAX_CHAR_16 //`define SPI_MAX_CHAR_8 `ifdef SPI_MAX_CHAR_128 `define SPI_MAX_CHAR 128 // Can only be set to 128 `define SPI_CHAR_LEN_BITS 7 `endif `ifdef SPI_MAX_CHAR_64 `define SPI_MAX_CHAR 64 // Can only be set to 64 `define SPI_CHAR_LEN_BITS 6 `endif `ifdef SPI_MAX_CHAR_32 `define SPI_MAX_CHAR 32 // Can be set from 25 to 32 `define SPI_CHAR_LEN_BITS 5 `endif `ifdef SPI_MAX_CHAR_24 `define SPI_MAX_CHAR 24 // Can be set from 17 to 24 `define SPI_CHAR_LEN_BITS 5 `endif `ifdef SPI_MAX_CHAR_16 `define SPI_MAX_CHAR 16 // Can be set from 9 to 16 `define SPI_CHAR_LEN_BITS 4 `endif `ifdef SPI_MAX_CHAR_8 `define SPI_MAX_CHAR 8 // Can be set from 1 to 8 `define SPI_CHAR_LEN_BITS 3 `endif // // Number of device select signals. Use SPI_SS_NB for fine tuning the // exact number. // //`define SPI_SS_NB_8 `define SPI_SS_NB_16 //`define SPI_SS_NB_24 //`define SPI_SS_NB_32 `ifdef SPI_SS_NB_8 `define SPI_SS_NB 8 // Can be set from 1 to 8 `endif `ifdef SPI_SS_NB_16 `define SPI_SS_NB 16 // Can be set from 9 to 16 `endif `ifdef SPI_SS_NB_24 `define SPI_SS_NB 24 // Can be set from 17 to 24 `endif `ifdef SPI_SS_NB_32 `define SPI_SS_NB 32 // Can be set from 25 to 32 `endif // // Bits of WISHBONE address used for partial decoding of SPI registers. // `define SPI_OFS_BITS 4:2 // // Register offset // `define SPI_RX_0 0 `define SPI_RX_1 1 `define SPI_RX_2 2 `define SPI_RX_3 3 `define SPI_TX_0 0 `define SPI_TX_1 1 `define SPI_TX_2 2 `define SPI_TX_3 3 `define SPI_CTRL 4 `define SPI_DIVIDE 5 `define SPI_SS 6 // // Number of bits in ctrl register // `define SPI_CTRL_BIT_NB 14 // // Control register bit position // `define SPI_CTRL_ASS 13 `define SPI_CTRL_IE 12 `define SPI_CTRL_LSB 11 `define SPI_CTRL_TX_NEGEDGE 10 `define SPI_CTRL_RX_NEGEDGE 9 `define SPI_CTRL_GO 8 `define SPI_CTRL_RES_1 7 `define SPI_CTRL_CHAR_LEN 6:0 uhd-3.5.5/fpga/usrp2/opencores/spi/rtl/verilog/spi_shift.v000066400000000000000000000217101224274632000235160ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// spi_shift.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "spi_defines.v" module spi_shift (clk, rst, latch, byte_sel, len, lsb, go, pos_edge, neg_edge, rx_negedge, tx_negedge, tip, last, p_in, p_out, s_clk, s_in, s_out); input clk; // system clock input rst; // reset input [3:0] latch; // latch signal for storing the data in shift register input [3:0] byte_sel; // byte select signals for storing the data in shift register input [`SPI_CHAR_LEN_BITS-1:0] len; // data len in bits (minus one) input lsb; // lbs first on the line input go; // start stansfer input pos_edge; // recognize posedge of sclk input neg_edge; // recognize negedge of sclk input rx_negedge; // s_in is sampled on negative edge input tx_negedge; // s_out is driven on negative edge output tip; // transfer in progress output last; // last bit input [31:0] p_in; // parallel in output [`SPI_MAX_CHAR-1:0] p_out; // parallel out input s_clk; // serial clock input s_in; // serial in output s_out; // serial out reg s_out; reg tip; reg [`SPI_CHAR_LEN_BITS:0] cnt; // data bit count reg [`SPI_MAX_CHAR-1:0] data; // shift register wire [`SPI_CHAR_LEN_BITS:0] tx_bit_pos; // next bit position wire [`SPI_CHAR_LEN_BITS:0] rx_bit_pos; // next bit position wire rx_clk; // rx clock enable wire tx_clk; // tx clock enable assign p_out = data; assign tx_bit_pos = lsb ? {!(|len), len} - cnt : cnt - {{`SPI_CHAR_LEN_BITS{1'b0}},1'b1}; assign rx_bit_pos = lsb ? {!(|len), len} - (rx_negedge ? cnt + {{`SPI_CHAR_LEN_BITS{1'b0}},1'b1} : cnt) : (rx_negedge ? cnt : cnt - {{`SPI_CHAR_LEN_BITS{1'b0}},1'b1}); assign last = !(|cnt); assign rx_clk = (rx_negedge ? neg_edge : pos_edge) && (!last || s_clk); assign tx_clk = (tx_negedge ? neg_edge : pos_edge) && !last; // Character bit counter always @(posedge clk) begin if(rst) cnt <= {`SPI_CHAR_LEN_BITS+1{1'b0}}; else begin if(tip) cnt <= pos_edge ? (cnt - {{`SPI_CHAR_LEN_BITS{1'b0}}, 1'b1}) : cnt; else cnt <= !(|len) ? {1'b1, {`SPI_CHAR_LEN_BITS{1'b0}}} : {1'b0, len}; end end // Transfer in progress always @(posedge clk) begin if(rst) tip <= 1'b0; else if(go && ~tip) tip <= 1'b1; else if(tip && last && pos_edge) tip <= 1'b0; end // Sending bits to the line always @(posedge clk) begin if (rst) s_out <= 1'b0; else s_out <= (tx_clk || !tip) ? data[tx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]] : s_out; end // Receiving bits from the line always @(posedge clk) begin if (rst) data <= {`SPI_MAX_CHAR{1'b0}}; `ifdef SPI_MAX_CHAR_128 else if (latch[0] && !tip) begin if (byte_sel[3]) data[31:24] <= p_in[31:24]; if (byte_sel[2]) data[23:16] <= p_in[23:16]; if (byte_sel[1]) data[15:8] <= p_in[15:8]; if (byte_sel[0]) data[7:0] <= p_in[7:0]; end else if (latch[1] && !tip) begin if (byte_sel[3]) data[63:56] <= p_in[31:24]; if (byte_sel[2]) data[55:48] <= p_in[23:16]; if (byte_sel[1]) data[47:40] <= p_in[15:8]; if (byte_sel[0]) data[39:32] <= p_in[7:0]; end else if (latch[2] && !tip) begin if (byte_sel[3]) data[95:88] <= p_in[31:24]; if (byte_sel[2]) data[87:80] <= p_in[23:16]; if (byte_sel[1]) data[79:72] <= p_in[15:8]; if (byte_sel[0]) data[71:64] <= p_in[7:0]; end else if (latch[3] && !tip) begin if (byte_sel[3]) data[127:120] <= p_in[31:24]; if (byte_sel[2]) data[119:112] <= p_in[23:16]; if (byte_sel[1]) data[111:104] <= p_in[15:8]; if (byte_sel[0]) data[103:96] <= p_in[7:0]; end `else `ifdef SPI_MAX_CHAR_64 else if (latch[0] && !tip) begin if (byte_sel[3]) data[31:24] <= p_in[31:24]; if (byte_sel[2]) data[23:16] <= p_in[23:16]; if (byte_sel[1]) data[15:8] <= p_in[15:8]; if (byte_sel[0]) data[7:0] <= p_in[7:0]; end else if (latch[1] && !tip) begin if (byte_sel[3]) data[63:56] <= p_in[31:24]; if (byte_sel[2]) data[55:48] <= p_in[23:16]; if (byte_sel[1]) data[47:40] <= p_in[15:8]; if (byte_sel[0]) data[39:32] <= p_in[7:0]; end `else else if (latch[0] && !tip) begin `ifdef SPI_MAX_CHAR_8 if (byte_sel[0]) data[`SPI_MAX_CHAR-1:0] <= p_in[`SPI_MAX_CHAR-1:0]; `endif `ifdef SPI_MAX_CHAR_16 if (byte_sel[0]) data[7:0] <= p_in[7:0]; if (byte_sel[1]) data[`SPI_MAX_CHAR-1:8] <= p_in[`SPI_MAX_CHAR-1:8]; `endif `ifdef SPI_MAX_CHAR_24 if (byte_sel[0]) data[7:0] <= p_in[7:0]; if (byte_sel[1]) data[15:8] <= p_in[15:8]; if (byte_sel[2]) data[`SPI_MAX_CHAR-1:16] <= p_in[`SPI_MAX_CHAR-1:16]; `endif `ifdef SPI_MAX_CHAR_32 if (byte_sel[0]) data[7:0] <= p_in[7:0]; if (byte_sel[1]) data[15:8] <= p_in[15:8]; if (byte_sel[2]) data[23:16] <= p_in[23:16]; if (byte_sel[3]) data[`SPI_MAX_CHAR-1:24] <= p_in[`SPI_MAX_CHAR-1:24]; `endif end `endif `endif else data[rx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]] <= rx_clk ? s_in : data[rx_bit_pos[`SPI_CHAR_LEN_BITS-1:0]]; end endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/rtl/verilog/spi_top.v000066400000000000000000000277571224274632000232240ustar00rootroot00000000000000 // Modified 2010 by Matt Ettus to remove old verilog style ////////////////////////////////////////////////////////////////////// //// //// //// spi_top.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "spi_defines.v" module spi_top ( // Wishbone signals wb_clk_i, wb_rst_i, wb_adr_i, wb_dat_i, wb_dat_o, wb_sel_i, wb_we_i, wb_stb_i, wb_cyc_i, wb_ack_o, wb_err_o, wb_int_o, // SPI signals ss_pad_o, sclk_pad_o, mosi_pad_o, miso_pad_i ); // Wishbone signals input wb_clk_i; // master clock input input wb_rst_i; // synchronous active high reset input [4:0] wb_adr_i; // lower address bits input [32-1:0] wb_dat_i; // databus input output [32-1:0] wb_dat_o; // databus output input [3:0] wb_sel_i; // byte select inputs input wb_we_i; // write enable input input wb_stb_i; // stobe/core select signal input wb_cyc_i; // valid bus cycle input output wb_ack_o; // bus cycle acknowledge output output wb_err_o; // termination w/ error output wb_int_o; // interrupt request signal output // SPI signals output [`SPI_SS_NB-1:0] ss_pad_o; // slave select output sclk_pad_o; // serial clock output mosi_pad_o; // master out slave in input miso_pad_i; // master in slave out reg [32-1:0] wb_dat_o; reg wb_ack_o; reg wb_int_o; // Internal signals reg [`SPI_DIVIDER_LEN-1:0] divider; // Divider register reg [`SPI_CTRL_BIT_NB-1:0] ctrl; // Control and status register reg [`SPI_SS_NB-1:0] ss; // Slave select register reg [32-1:0] wb_dat; // wb data out wire [`SPI_MAX_CHAR-1:0] rx; // Rx register wire rx_negedge; // miso is sampled on negative edge wire tx_negedge; // mosi is driven on negative edge wire [`SPI_CHAR_LEN_BITS-1:0] char_len; // char len wire go; // go wire lsb; // lsb first on line wire ie; // interrupt enable wire ass; // automatic slave select wire spi_divider_sel; // divider register select wire spi_ctrl_sel; // ctrl register select wire [3:0] spi_tx_sel; // tx_l register select wire spi_ss_sel; // ss register select wire tip; // transfer in progress wire pos_edge; // recognize posedge of sclk wire neg_edge; // recognize negedge of sclk wire last_bit; // marks last character bit // Address decoder assign spi_divider_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_DIVIDE); assign spi_ctrl_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_CTRL); assign spi_tx_sel[0] = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_TX_0); assign spi_tx_sel[1] = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_TX_1); assign spi_tx_sel[2] = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_TX_2); assign spi_tx_sel[3] = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_TX_3); assign spi_ss_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[`SPI_OFS_BITS] == `SPI_SS); // Read from registers always @(wb_adr_i or rx or ctrl or divider or ss) begin case (wb_adr_i[`SPI_OFS_BITS]) `ifdef SPI_MAX_CHAR_128 `SPI_RX_0: wb_dat = rx[31:0]; `SPI_RX_1: wb_dat = rx[63:32]; `SPI_RX_2: wb_dat = rx[95:64]; `SPI_RX_3: wb_dat = {{128-`SPI_MAX_CHAR{1'b0}}, rx[`SPI_MAX_CHAR-1:96]}; `else `ifdef SPI_MAX_CHAR_64 `SPI_RX_0: wb_dat = rx[31:0]; `SPI_RX_1: wb_dat = {{64-`SPI_MAX_CHAR{1'b0}}, rx[`SPI_MAX_CHAR-1:32]}; `SPI_RX_2: wb_dat = 32'b0; `SPI_RX_3: wb_dat = 32'b0; `else `SPI_RX_0: wb_dat = {{32-`SPI_MAX_CHAR{1'b0}}, rx[`SPI_MAX_CHAR-1:0]}; `SPI_RX_1: wb_dat = 32'b0; `SPI_RX_2: wb_dat = 32'b0; `SPI_RX_3: wb_dat = 32'b0; `endif `endif `SPI_CTRL: wb_dat = {{32-`SPI_CTRL_BIT_NB{1'b0}}, ctrl}; `SPI_DIVIDE: wb_dat = {{32-`SPI_DIVIDER_LEN{1'b0}}, divider}; `SPI_SS: wb_dat = {{32-`SPI_SS_NB{1'b0}}, ss}; default: wb_dat = 32'bx; endcase end // Wb data out always @(posedge wb_clk_i) begin if (wb_rst_i) wb_dat_o <= 32'b0; else wb_dat_o <= wb_dat; end // Wb acknowledge always @(posedge wb_clk_i) begin if (wb_rst_i) wb_ack_o <= 1'b0; else wb_ack_o <= wb_cyc_i & wb_stb_i & ~wb_ack_o; end // Wb error assign wb_err_o = 1'b0; // Interrupt always @(posedge wb_clk_i) begin if (wb_rst_i) wb_int_o <= 1'b0; else if (ie && tip && last_bit && pos_edge) wb_int_o <= 1'b1; else if (wb_ack_o) wb_int_o <= 1'b0; end // Divider register always @(posedge wb_clk_i) begin if (wb_rst_i) divider <= {`SPI_DIVIDER_LEN{1'b0}}; else if (spi_divider_sel && wb_we_i && !tip) begin `ifdef SPI_DIVIDER_LEN_8 if (wb_sel_i[0]) divider <= wb_dat_i[`SPI_DIVIDER_LEN-1:0]; `endif `ifdef SPI_DIVIDER_LEN_16 if (wb_sel_i[0]) divider[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) divider[`SPI_DIVIDER_LEN-1:8] <= wb_dat_i[`SPI_DIVIDER_LEN-1:8]; `endif `ifdef SPI_DIVIDER_LEN_24 if (wb_sel_i[0]) divider[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) divider[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) divider[`SPI_DIVIDER_LEN-1:16] <= wb_dat_i[`SPI_DIVIDER_LEN-1:16]; `endif `ifdef SPI_DIVIDER_LEN_32 if (wb_sel_i[0]) divider[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) divider[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) divider[23:16] <= wb_dat_i[23:16]; if (wb_sel_i[3]) divider[`SPI_DIVIDER_LEN-1:24] <= wb_dat_i[`SPI_DIVIDER_LEN-1:24]; `endif end end // Ctrl register always @(posedge wb_clk_i) begin if (wb_rst_i) ctrl <= {`SPI_CTRL_BIT_NB{1'b0}}; else if(spi_ctrl_sel && wb_we_i && !tip) begin if (wb_sel_i[0]) ctrl[7:0] <= wb_dat_i[7:0] | {7'b0, ctrl[0]}; if (wb_sel_i[1]) ctrl[`SPI_CTRL_BIT_NB-1:8] <= wb_dat_i[`SPI_CTRL_BIT_NB-1:8]; end else if(tip && last_bit && pos_edge) ctrl[`SPI_CTRL_GO] <= 1'b0; end assign rx_negedge = ctrl[`SPI_CTRL_RX_NEGEDGE]; assign tx_negedge = ctrl[`SPI_CTRL_TX_NEGEDGE]; assign go = ctrl[`SPI_CTRL_GO]; assign char_len = ctrl[`SPI_CTRL_CHAR_LEN]; assign lsb = ctrl[`SPI_CTRL_LSB]; assign ie = ctrl[`SPI_CTRL_IE]; assign ass = ctrl[`SPI_CTRL_ASS]; // Slave select register always @(posedge wb_clk_i) begin if (wb_rst_i) ss <= {`SPI_SS_NB{1'b0}}; else if(spi_ss_sel && wb_we_i && !tip) begin `ifdef SPI_SS_NB_8 if (wb_sel_i[0]) ss <= wb_dat_i[`SPI_SS_NB-1:0]; `endif `ifdef SPI_SS_NB_16 if (wb_sel_i[0]) ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) ss[`SPI_SS_NB-1:8] <= wb_dat_i[`SPI_SS_NB-1:8]; `endif `ifdef SPI_SS_NB_24 if (wb_sel_i[0]) ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) ss[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) ss[`SPI_SS_NB-1:16] <= wb_dat_i[`SPI_SS_NB-1:16]; `endif `ifdef SPI_SS_NB_32 if (wb_sel_i[0]) ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) ss[15:8] <= wb_dat_i[15:8]; if (wb_sel_i[2]) ss[23:16] <= wb_dat_i[23:16]; if (wb_sel_i[3]) ss[`SPI_SS_NB-1:24] <= wb_dat_i[`SPI_SS_NB-1:24]; `endif end end assign ss_pad_o = ~((ss & {`SPI_SS_NB{tip & ass}}) | (ss & {`SPI_SS_NB{!ass}})); spi_clgen clgen (.clk_in(wb_clk_i), .rst(wb_rst_i), .go(go), .enable(tip), .last_clk(last_bit), .divider(divider), .clk_out(sclk_pad_o), .pos_edge(pos_edge), .neg_edge(neg_edge)); spi_shift shift (.clk(wb_clk_i), .rst(wb_rst_i), .len(char_len[`SPI_CHAR_LEN_BITS-1:0]), .latch(spi_tx_sel[3:0] & {4{wb_we_i}}), .byte_sel(wb_sel_i), .lsb(lsb), .go(go), .pos_edge(pos_edge), .neg_edge(neg_edge), .rx_negedge(rx_negedge), .tx_negedge(tx_negedge), .tip(tip), .last(last_bit), .p_in(wb_dat_i), .p_out(rx), .s_clk(sclk_pad_o), .s_in(miso_pad_i), .s_out(mosi_pad_o)); endmodule uhd-3.5.5/fpga/usrp2/opencores/spi/rtl/verilog/spi_top16.v000066400000000000000000000201051224274632000233470ustar00rootroot00000000000000 // Modified 2010 by Matt Ettus to remove old verilog style and // allow 16-bit operation ////////////////////////////////////////////////////////////////////// //// //// //// spi_top.v //// //// //// //// This file is part of the SPI IP core project //// //// http://www.opencores.org/projects/spi/ //// //// //// //// Author(s): //// //// - Simon Srot (simons@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2002 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// `include "spi_defines.v" module spi_top16 (input wb_clk_i, input wb_rst_i, input [4:0] wb_adr_i, input [15:0] wb_dat_i, output reg [15:0] wb_dat_o, input [1:0] wb_sel_i, input wb_we_i, input wb_stb_i, input wb_cyc_i, output reg wb_ack_o, output wb_err_o, output reg wb_int_o, // SPI signals output [15:0] ss_pad_o, output sclk_pad_o, output mosi_pad_o, input miso_pad_i); // Internal signals reg [15:0] divider; // Divider register reg [`SPI_CTRL_BIT_NB-1:0] ctrl; // Control and status register reg [15:0] ss; // Slave select register reg [31:0] wb_dat; // wb data out wire [31:0] rx; // Rx register wire rx_negedge; // miso is sampled on negative edge wire tx_negedge; // mosi is driven on negative edge wire [`SPI_CHAR_LEN_BITS-1:0] char_len; // char len wire go; // go wire lsb; // lsb first on line wire ie; // interrupt enable wire ass; // automatic slave select wire spi_divider_sel; // divider register select wire spi_ctrl_sel; // ctrl register select wire [3:0] spi_tx_sel; // tx_l register select wire spi_ss_sel; // ss register select wire tip; // transfer in progress wire pos_edge; // recognize posedge of sclk wire neg_edge; // recognize negedge of sclk wire last_bit; // marks last character bit // Address decoder assign spi_divider_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_DIVIDE); assign spi_ctrl_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_CTRL); assign spi_tx_sel[0] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_0); assign spi_tx_sel[1] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_1); assign spi_tx_sel[2] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_2); assign spi_tx_sel[3] = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_TX_3); assign spi_ss_sel = wb_cyc_i & wb_stb_i & (wb_adr_i[4:2] == `SPI_SS); always @(wb_adr_i or rx or ctrl or divider or ss) case (wb_adr_i[4:2]) `SPI_RX_0: wb_dat = rx[31:0]; `SPI_CTRL: wb_dat = {{32-`SPI_CTRL_BIT_NB{1'b0}}, ctrl}; `SPI_DIVIDE: wb_dat = {16'b0, divider}; `SPI_SS: wb_dat = {16'b0, ss}; default : wb_dat = 32'd0; endcase // case (wb_adr_i[4:2]) always @(posedge wb_clk_i) if (wb_rst_i) wb_dat_o <= 32'b0; else wb_dat_o <= wb_adr_i[1] ? wb_dat[31:16] : wb_dat[15:0]; always @(posedge wb_clk_i) if (wb_rst_i) wb_ack_o <= 1'b0; else wb_ack_o <= wb_cyc_i & wb_stb_i & ~wb_ack_o; assign wb_err_o = 1'b0; // Interrupt always @(posedge wb_clk_i) if (wb_rst_i) wb_int_o <= 1'b0; else if (ie && tip && last_bit && pos_edge) wb_int_o <= 1'b1; else if (wb_ack_o) wb_int_o <= 1'b0; // Divider register always @(posedge wb_clk_i) if (wb_rst_i) divider <= 16'b0; else if (spi_divider_sel && wb_we_i && !tip && ~wb_adr_i[1]) divider <= wb_dat_i; // Ctrl register always @(posedge wb_clk_i) if (wb_rst_i) ctrl <= {`SPI_CTRL_BIT_NB{1'b0}}; else if(spi_ctrl_sel && wb_we_i && !tip && ~wb_adr_i[1]) begin if (wb_sel_i[0]) ctrl[7:0] <= wb_dat_i[7:0] | {7'b0, ctrl[0]}; if (wb_sel_i[1]) ctrl[`SPI_CTRL_BIT_NB-1:8] <= wb_dat_i[`SPI_CTRL_BIT_NB-1:8]; end else if(tip && last_bit && pos_edge) ctrl[`SPI_CTRL_GO] <= 1'b0; assign rx_negedge = ctrl[`SPI_CTRL_RX_NEGEDGE]; assign tx_negedge = ctrl[`SPI_CTRL_TX_NEGEDGE]; assign go = ctrl[`SPI_CTRL_GO]; assign char_len = ctrl[`SPI_CTRL_CHAR_LEN]; assign lsb = ctrl[`SPI_CTRL_LSB]; assign ie = ctrl[`SPI_CTRL_IE]; assign ass = ctrl[`SPI_CTRL_ASS]; // Slave select register always @(posedge wb_clk_i) if (wb_rst_i) ss <= 16'b0; else if(spi_ss_sel && wb_we_i && !tip & ~wb_adr_i[1]) begin if (wb_sel_i[0]) ss[7:0] <= wb_dat_i[7:0]; if (wb_sel_i[1]) ss[15:8] <= wb_dat_i[15:8]; end assign ss_pad_o = ~((ss & {16{tip & ass}}) | (ss & {16{!ass}})); spi_clgen clgen (.clk_in(wb_clk_i), .rst(wb_rst_i), .go(go), .enable(tip), .last_clk(last_bit), .divider(divider[`SPI_DIVIDER_LEN-1:0]), .clk_out(sclk_pad_o), .pos_edge(pos_edge), .neg_edge(neg_edge)); wire [3:0] new_sels = { (wb_adr_i[1] & wb_sel_i[1]), (wb_adr_i[1] & wb_sel_i[0]), (~wb_adr_i[1] & wb_sel_i[1]), (~wb_adr_i[1] & wb_sel_i[0]) }; spi_shift shift (.clk(wb_clk_i), .rst(wb_rst_i), .len(char_len[`SPI_CHAR_LEN_BITS-1:0]), .latch(spi_tx_sel[3:0] & {4{wb_we_i}}), .byte_sel(new_sels), .lsb(lsb), .go(go), .pos_edge(pos_edge), .neg_edge(neg_edge), .rx_negedge(rx_negedge), .tx_negedge(tx_negedge), .tip(tip), .last(last_bit), .p_in({wb_dat_i,wb_dat_i}), .p_out(rx), .s_clk(sclk_pad_o), .s_in(miso_pad_i), .s_out(mosi_pad_o)); endmodule // spi_top16 uhd-3.5.5/fpga/usrp2/opencores/spi/sim/000077500000000000000000000000001224274632000176565ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/sim/rtl_sim/000077500000000000000000000000001224274632000213275ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/sim/rtl_sim/run/000077500000000000000000000000001224274632000221335ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi/sim/rtl_sim/run/rtl.fl000066400000000000000000000000421224274632000232530ustar00rootroot00000000000000spi_top.v spi_clgen.v spi_shift.v uhd-3.5.5/fpga/usrp2/opencores/spi/sim/rtl_sim/run/run_sim000077500000000000000000000061061224274632000235400ustar00rootroot00000000000000#!/bin/csh -f set current_par = 0 set output_waveform = 0 while ( $current_par < $# ) @ current_par = $current_par + 1 case wave: @ output_waveform = 1 breaksw default: echo 'Unknown option "'$argv[$current_par]'"!' exit breaksw endsw end echo "TEST: spi" #echo "-CDSLIB ./cds.lib" > ncvlog.args #echo "-HDLVAR ./hdl.var" >> ncvlog.args echo "-MESSAGES" > ncvlog.args echo "-INCDIR ../../../bench/verilog" >> ncvlog.args echo "-INCDIR ../../../rtl/verilog" >> ncvlog.args echo "-NOCOPYRIGHT" >> ncvlog.args echo "-UPDATE" >> ncvlog.args echo "-LOGFILE ncvlog.log" >> ncvlog.args foreach filename ( `cat ./rtl.fl` ) echo "../../../rtl/verilog/"$filename >> ncvlog.args end foreach filename ( `cat ./sim.fl` ) echo "../../../bench/verilog/"$filename >> ncvlog.args end ncvlog -f ncvlog.args if ($status != 0) then echo "STATUS: failed" exit endif echo "-MESSAGES" > ncelab.args echo "-NOCOPYRIGHT" >> ncelab.args #echo "-CDSLIB ./cds.lib" >> ncelab.args #echo "-HDLVAR ./hdl.var" >> ncelab.args echo "-LOGFILE ncelab.log" >> ncelab.args echo "-SNAPSHOT worklib.tb_spi_top:v" >> ncelab.args echo "-NOTIMINGCHECKS" >> ncelab.args echo "-ACCESS +RWC" >> ncelab.args echo "tb_spi_top" >> ncelab.args ncelab -f ncelab.args if ($status != 0) then echo "STATUS: failed" exit endif echo "-MESSAGES" > ncsim.args echo "-NOCOPYRIGHT" >> ncsim.args #echo "-CDSLIB ./cds.lib" >> ncsim.args #echo "-HDLVAR ./hdl.var" >> ncsim.args echo "-INPUT ncsim.tcl" >> ncsim.args echo "-LOGFILE ncsim.log" >> ncsim.args echo "worklib.tb_spi_top:v" >> ncsim.args if ( $output_waveform ) then echo "database -open waves -shm -into ../out/wav" > ./ncsim.tcl echo "probe -create -database waves -shm tb_spi_top -all -depth all" >> ./ncsim.tcl echo "stop -create -time 25000000 -relative" >> ./ncsim.tcl echo "run" >> ./ncsim.tcl else echo "stop -create -time 25000000 -relative" >> ./ncsim.tcl echo "run" > ./ncsim.tcl endif echo "exit" >> ncsim.tcl ncsim -LICQUEUE -f ./ncsim.args set exit_line_nb = `sed -n '/exit/=' < ./ncsim.log` set dead_line_nb = 0 if ( $exit_line_nb ) then @ dead_line_nb = $exit_line_nb - 1 set exit_line=`sed -n $exit_line_nb's/exit/&/gp' < ./ncsim.log` set dead_line=`sed -n $dead_line_nb's/report/&/gp' < ./ncsim.log` if ( "$dead_line" == "report (deaddead)" ) then if ( "$exit_line" == "exit (00000000)" ) then echo "STATUS: passed" #|tee -a ./run_sim.log 2>&1 else echo "STATUS: failed" #|tee -a ./run_sim.log 2>&1 endif else echo "STATUS: failed" endif endif exit uhd-3.5.5/fpga/usrp2/opencores/spi/sim/rtl_sim/run/sim.fl000066400000000000000000000000611224274632000232430ustar00rootroot00000000000000tb_spi_top.v wb_master_model.v spi_slave_model.v uhd-3.5.5/fpga/usrp2/opencores/spi_boot/000077500000000000000000000000001224274632000201115ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/COMPILE_LIST000066400000000000000000000014551224274632000217640ustar00rootroot00000000000000 Compile list for the spi_boot core ================================== Version: $Date: 2005/04/14 21:26:22 $ bench/vhdl/tb.vhd rtl/vhdl/spi_boot_pack-p.vhd bench/vhdl/tb_pack-p.vhd bench/vhdl/tb_elem.vhd rtl/vhdl/chip-e.vhd rtl/vhdl/chip-full-a.vhd rtl/vhdl/spi_boot.vhd rtl/vhdl/spi_counter.vhd rtl/vhdl/spi_counter-c.vhd rtl/vhdl/spi_boot-c.vhd rtl/vhdl/chip-full-c.vhd bench/vhdl/card.vhd bench/vhdl/card-c.vhd bench/vhdl/tb_elem-full-c.vhd rtl/vhdl/chip-mmc-a.vhd rtl/vhdl/chip-mmc-c.vhd bench/vhdl/tb_elem-mmc-c.vhd rtl/vhdl/chip-sd-a.vhd rtl/vhdl/chip-sd-c.vhd bench/vhdl/tb_elem-sd-c.vhd rtl/vhdl/chip-minimal-a.vhd rtl/vhdl/chip-minimal-c.vhd bench/vhdl/tb_elem-minimal-c.vhd bench/vhdl/tb-c.vhd bench/vhdl/tb_rl.vhd rtl/vhdl/sample/ram_loader.vhd rtl/vhdl/sample/ram_loader-c.vhd bench/vhdl/tb_rl-c.vhd uhd-3.5.5/fpga/usrp2/opencores/spi_boot/COPYING000066400000000000000000000431271224274632000211530ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. uhd-3.5.5/fpga/usrp2/opencores/spi_boot/KNOWN_BUGS000066400000000000000000000001471224274632000215520ustar00rootroot00000000000000 Known bugs of the spi_boot core =============================== Version: $Date: 2005/02/13 18:28:35 $ uhd-3.5.5/fpga/usrp2/opencores/spi_boot/README000066400000000000000000000135201224274632000207720ustar00rootroot00000000000000 README for the spi_boot core ============================ Version: $Date: 2005/04/14 21:32:58 $ Description ----------- The SD/MMC Bootloader is a CPLD design that manages configuration and bootstrapping of FPGAs. It is able to retrieve the required data from SecureDigital (SD) cards or MultiMediaCards (MMC) and manages the FPGA configuration process. SD cards as well as MMCs are operated in SPI mode which is part of both standards thus eliminating the need for dedicated implementations. The SD/MMC Bootloader fits both. Beyond configuration, this core supports a bootstrapping strategy where multiple images are stored on one single memory card. For example consider a system completely based on SRAM. The bootloader provides the initial configuration data from the first image to the FPGA. This image contains a design which pulls the next image from the memory card and transfers this data to SRAM. In the third step the final FPGA design is loaded from the third image. These images are clustered in sets which can be selected by external switches for example. Several configuration sets can be stored on one memory card allowing you to provide a number of applications which are downloaded quickly to the FPGA. The schematic (rev. B) shows how the core can be used with an FPGA board. I use it to configure/boot the Xilinx Spartan IIe on BurchED's B5-X300 board. SV2 fits the "SERIAL MODE" connector on this board but you will have to add a separate wire from R6 to attach INIT. Please check the proper use of the pull-up resistors for your specific board. Features -------- * Configuration mode: configures SRAM based FPGAs via slave serial mode (Xilinx and Altera) * Data mode: provides stored data over a simple synchronous serial interface * Broad compatability using SPI mode + SecureDigital cards using dedicated initialization command + MultiMediaCards (see below) * Operation triggerd by power-up or card insertion * Multiple configuration sets stored on on single memory card Compatability ------------- These cards have been tested with the SD/MMC Bootloader: * Hama 64 MB SD * SanDisk 128 MB SD * SanDisk 64 MB MMC * Panasonic 32 MB SD Some MMC might fail with this core as not all cards support CMD18 (READ_MULTIPLE_BLOCK). Please consult the data sheet of your specific model. In case your MMC does not implement CMD18 you might want to have a look at the FPGA MMC-Card Config project. Tools ----- Downloading the configuration data to the card is a straight forward process. The images have to be written starting at dedicated locations. For the provided toplevel designs, these locations are multiples of 256 K. I.e. 0, 0x40000, 0x80000 and so forth. dd (part of the GNU coreutils) serves this purpose: $ dd if=ram_loader.bin of=/dev/sdX bs=512 $ dd if=pongrom_6.bin of=/dev/sdX bs=512 seek=512 $ dd if=pacman.bin of=/dev/sdX bs=512 seek=1024 The name of the device node depends on how the card reader is attached to the kernel. For Linux systems this is most often something like /dev/sdX with X ranging from a-z. Please note that it is essential to use the device without any trailing numbers as they refer to partitions leading to wrong offsets for data written to the card. All this works perfectly for my Spartan IIe device as this FPGA expects the configuration data as it is delivered from the card: Consecutive bytes each with its most significant bit first. Altera devices like the FLEX family are different here. They expect the bytes with least significant bit first. Therefore, the configuration data has to be swapped bitwise before it is written to the card. Verification ------------ The spi_boot core comes with a simple testbench that simulates an SD/MMC card. All four implementations of the core are verified there in parallel while transferring the data for several sets. You should normally not need to run the testbench. But in case you modified the VHDL code the testbench gives some hints if the design has been broken. Directory Structure ------------------- The core's directory structure follows the proposal of OpenCores.org. spi_boot | \--+-- doc : Documentation | | | \-- src : Source files of documentation | +-- rtl | | | \-- vhdl : VHDL code containing the RTL description | of the core. | +-- bench | | | \-- vhdl : VHDL testbench code. | \-- sim | \-- rtl_sim : Directory for running simulations. RAM Loader ---------- Directory rtl/vhdl/ram_loader contains the sample design which loads the next image from the card and stores its contents to external asynchronous RAM. After reading 64 KB it triggers a new configuration process for the final FPGA design. Refer to the code for the mechanisms involved. Compiling the VHDL Code ----------------------- VHDL compilation and simulation tasks take place inside in sim/rtl_sim directory. The project setup supports only the GHDL simulator (see http://ghdl.free.fr). To compile the code simply type at the shell $ make This should result in a file called tb_behav_c0 which can be executed as any other executable. The basic simple sequence list can be found in COMPILE_LIST. This can be useful to quickly set up the analyze stage of any compiler or synthesizer. Especially when synthesizing the code, you want to skip the VHDL configurations in *-c.vhd and everything below the bench/ directory. References ---------- * SanDisk SD Card Product Manual http://www.sandisk.com/pdf/oem/ProdManualSDCardv1.9.pdf * SanDisk MMC Product Manual http://www.sandisk.com/pdf/oem/manual-rs-mmcv1.0.pdf * Toshiba SD Card Specification http://i.cmpnet.com/chipcenter/memory/images/prod055.pdf * BurchED http://burched.biz/ * FPGA MMC-Card Config project http://www.opencores.org/projects.cgi/web/mmcfpgaconfig/overview uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/000077500000000000000000000000001224274632000211705ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/000077500000000000000000000000001224274632000221255ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/card-c.vhd000066400000000000000000000005141224274632000237610ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: card-c.vhd,v 1.1 2005/02/08 21:09:18 arniml Exp $ -- ------------------------------------------------------------------------------- configuration card_behav_c0 of card is for behav end for; end card_behav_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/card.vhd000066400000000000000000000303211224274632000235400ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Simple SD and MMC model -- -- $Id: card.vhd,v 1.2 2005/02/13 17:06:22 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity card is generic ( card_type_g : string := "none"; is_sd_card_g : integer := 1 ); port ( spi_clk_i : in std_logic; spi_cs_n_i : in std_logic; spi_data_i : in std_logic; spi_data_o : out std_logic ); end card; library ieee; use ieee.numeric_std.all; library std; use std.textio.all; use work.tb_pack.all; architecture behav of card is signal power_on_n_s : std_logic; signal soft_res_n_s : std_logic; signal res_n_s : std_logic; signal rx_s : std_logic_vector(47 downto 0); signal set_spi_mode_s, spi_mode_q : boolean; signal set_idle_mode_s, poll_idle_mode_s : boolean; signal idle_mode_q : natural; signal block_len_q, block_len_s : unsigned(31 downto 0); signal set_block_len_s : boolean; signal new_read_addr_s, read_addr_q : unsigned(31 downto 0); signal set_read_addr_s, inc_read_addr_s : boolean; signal cmd_spi_data_s, read_spi_data_s : std_logic; signal start_read_s : boolean; signal reading_s : boolean; procedure rise_clk is begin wait until spi_clk_i'event and to_X01(spi_clk_i) = '1'; end rise_clk; -- procedure rise_clk(num : natural) is -- begin -- for i in 1 to num loop -- rise_clk; -- end loop; -- end rise_clk; procedure fall_clk is begin wait until spi_clk_i'event and to_X01(spi_clk_i) = '0'; end fall_clk; procedure fall_clk(num : natural) is begin for i in 1 to num loop fall_clk; end loop; end fall_clk; begin res_n_s <= power_on_n_s and soft_res_n_s; ----------------------------------------------------------------------------- -- Power on reset ----------------------------------------------------------------------------- por: process begin power_on_n_s <= '0'; wait for 200 ns; power_on_n_s <= '1'; wait; end process por; ----------------------------------------------------------------------------- -- ctrl: process function check_crc(payload : in std_logic_vector(47 downto 0)) return boolean is begin return calc_crc(payload(47 downto 8)) = payload(7 downto 1); end check_crc; variable rx_v : std_logic_vector(47 downto 0); variable cmd_v : std_logic_vector( 5 downto 0); variable arg_v : std_logic_vector(31 downto 0); variable crc_v : std_logic_vector( 6 downto 0); variable wrong_v : std_logic; variable read_data_v : boolean; begin rx_s <= (others => '0'); set_spi_mode_s <= false; set_idle_mode_s <= false; poll_idle_mode_s <= false; cmd_spi_data_s <= '1'; soft_res_n_s <= '1'; set_block_len_s <= false; block_len_s <= (others => '0'); new_read_addr_s <= (others => '0'); set_read_addr_s <= false; start_read_s <= false; read_data_v := false; loop rise_clk; -- wait for startbit of command while to_X01(spi_data_i) = '1' loop rise_clk; end loop; rx_v(47) := '0'; -- read remaining 47 bits of command for i in 46 downto 0 loop rise_clk; rx_v(i) := to_X01(spi_data_i); end loop; rx_s <= rx_v; -- dissect received data cmd_v := rx_v(45 downto 40); arg_v := rx_v(39 downto 8); crc_v := rx_v( 7 downto 1); assert spi_mode_q or check_crc(payload => rx_v) report "CRC mismatch" severity error; wrong_v := '0'; case cmd_v is -- CMD0: GO_IDLE_STATE ------------------------------------------------ when "000000" => set_spi_mode_s <= true; set_idle_mode_s <= true; -- CMD1: SEND_OP_COND ------------------------------------------------- when "000001" => poll_idle_mode_s <= true; -- CMD12: STOP_TRANSMISSION ------------------------------------------- when "001100" => start_read_s <= false; read_data_v := false; -- CMD16: SET_BLOCKLEN ------------------------------------------------ when "010000" => block_len_s <= unsigned(arg_v); set_block_len_s <= true; -- CMD18: READ_MULTIPLE_BLOCK ----------------------------------------- when "010010" => new_read_addr_s <= unsigned(arg_v); set_read_addr_s <= true; read_data_v := true; -- CMD55: APPL_CMD ---------------------------------------------------- when "110111" => -- command only available for SD card if is_sd_card_g /= 1 then wrong_v := '1'; end if; -- ACMD41: SEND_OP_COND ----------------------------------------------- when "101001" => -- command only available for SD card if is_sd_card_g /= 1 then wrong_v := '1'; else poll_idle_mode_s <= true; end if; when others => wrong_v := '1'; null; end case; -- spend some time before removing control signals fall_clk(2); poll_idle_mode_s <= false; set_idle_mode_s <= false; fall_clk(6); set_spi_mode_s <= false; set_block_len_s <= false; set_read_addr_s <= false; if reading_s then wait until not reading_s; end if; -- wait for a total two "bytes" before sending out response for i in 1 to 8 loop fall_clk; end loop; for i in 7 downto 0 loop fall_clk; case i is when 2 => cmd_spi_data_s <= wrong_v; when 0 => if idle_mode_q = 0 then cmd_spi_data_s <= '0'; else cmd_spi_data_s <= '1'; end if; when others => cmd_spi_data_s <= '0'; end case; end loop; fall_clk; cmd_spi_data_s <= '1'; -- transmit data if requested start_read_s <= read_data_v; end loop; end process ctrl; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- seq: process (res_n_s, spi_clk_i, set_spi_mode_s, set_idle_mode_s, poll_idle_mode_s, set_block_len_s, block_len_s) begin if res_n_s = '0' then spi_mode_q <= false; idle_mode_q <= 5; block_len_q <= (others => '0'); read_addr_q <= (others => '0'); elsif spi_clk_i'event and spi_clk_i = '1' then if set_spi_mode_s then spi_mode_q <= true; end if; if set_idle_mode_s then idle_mode_q <= 5; elsif poll_idle_mode_s then if idle_mode_q > 0 then idle_mode_q <= idle_mode_q - 1; end if; end if; if set_block_len_s then block_len_q <= block_len_s; end if; if set_read_addr_s then read_addr_q <= new_read_addr_s; elsif inc_read_addr_s then read_addr_q <= read_addr_q + 1; end if; end if; end process seq; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- read_block: process variable t_v : unsigned(7 downto 0); begin -- default assignments inc_read_addr_s <= false; reading_s <= false; read_spi_data_s <= '1'; loop if not start_read_s then wait until start_read_s; end if; reading_s <= true; fall_clk(8); -- delay for one "byte" -- send data token fall_clk(7); -- 7 ones in a data token read_spi_data_s <= '0'; -- send payload payload: for i in 0 to to_integer(block_len_q)-1 loop t_v := read_addr_q(0) & calc_crc(read_addr_q); for bit in 7 downto 0 loop fall_clk; read_spi_data_s <= t_v(bit); exit payload when not start_read_s; end loop; inc_read_addr_s <= true; rise_clk; inc_read_addr_s <= false; wait for 10 ns; end loop; if start_read_s then -- send crc for i in 0 to 15 loop fall_clk; t_v := to_unsigned(i, 8); read_spi_data_s <= t_v(0); end loop; fall_clk; end if; read_spi_data_s <= '1'; reading_s <= false; -- loop for one "byte" fall_clk(8); end loop; end process read_block; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- clk_check: process (spi_clk_i) variable last_rising_v : time := 0 ns; variable dump_line : line; begin if spi_clk_i'event and spi_clk_i = '1' then if is_sd_card_g = 0 and card_type_g /= "Minimal Chip" and idle_mode_q > 0 then if now - last_rising_v < 2.5 us and last_rising_v > 0 ns then write(dump_line, card_type_g); write(dump_line, string'(" @ ")); write(dump_line, now); write(dump_line, string'(": Last rising edge of SPI clock ")); write(dump_line, now - last_rising_v); write(dump_line, string'(" ago.")); writeline(output, dump_line); end if; last_rising_v := now; end if; end if; end process clk_check; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Output Mapping ----------------------------------------------------------------------------- spi_data_o <= cmd_spi_data_s and read_spi_data_s when spi_cs_n_i = '0' else 'Z'; end behav; ------------------------------------------------------------------------------- -- File History: -- -- $Log: card.vhd,v $ -- Revision 1.2 2005/02/13 17:06:22 arniml -- handle termination properly -- -- Revision 1.1 2005/02/08 21:09:20 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb-c.vhd000066400000000000000000000013051224274632000234540ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb-c.vhd,v 1.1 2005/02/08 21:09:20 arniml Exp $ -- ------------------------------------------------------------------------------- configuration tb_behav_c0 of tb is for behav for tb_elem_full_b : tb_elem use configuration work.tb_elem_behav_full; end for; for tb_elem_mmc_b : tb_elem use configuration work.tb_elem_behav_mmc; end for; for tb_elem_sd_b : tb_elem use configuration work.tb_elem_behav_sd; end for; for tb_elem_minimal_b : tb_elem use configuration work.tb_elem_behav_minimal; end for; end for; end tb_behav_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb.vhd000066400000000000000000000134261224274632000232430ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Testbench -- -- $Id: tb.vhd,v 1.1 2005/02/08 21:09:20 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- entity tb is end tb; library ieee; use ieee.std_logic_1164.all; architecture behav of tb is component tb_elem generic ( chip_type_g : string := "none"; has_sd_card_g : integer := 1 ); port ( clk_i : in std_logic; reset_i : in std_logic; eos_o : out boolean ); end component; constant period_c : time := 100 ns; constant reset_level_c : integer := 0; signal clk_s : std_logic; signal reset_s : std_logic; signal eos_full_s, eos_mmc_s, eos_sd_s, eos_minimal_s : boolean; begin ----------------------------------------------------------------------------- -- Testbench element including full featured chip ----------------------------------------------------------------------------- tb_elem_full_b : tb_elem generic map ( chip_type_g => "Full Chip", has_sd_card_g => 1 ) port map ( clk_i => clk_s, reset_i => reset_s, eos_o => eos_full_s ); ----------------------------------------------------------------------------- -- Testbench element including MMC chip ----------------------------------------------------------------------------- tb_elem_mmc_b : tb_elem generic map ( chip_type_g => "MMC Chip", has_sd_card_g => 0 ) port map ( clk_i => clk_s, reset_i => reset_s, eos_o => eos_mmc_s ); ----------------------------------------------------------------------------- -- Testbench element including SD chip ----------------------------------------------------------------------------- tb_elem_sd_b : tb_elem generic map ( chip_type_g => "SD Chip", has_sd_card_g => 1 ) port map ( clk_i => clk_s, reset_i => reset_s, eos_o => eos_sd_s ); ----------------------------------------------------------------------------- -- Testbench element including cip with minimal features ----------------------------------------------------------------------------- tb_elem_minimal_b : tb_elem generic map ( chip_type_g => "Minimal Chip", has_sd_card_g => 0 ) port map ( clk_i => clk_s, reset_i => reset_s, eos_o => eos_minimal_s ); ----------------------------------------------------------------------------- -- Clock Generator ----------------------------------------------------------------------------- clk: process begin clk_s <= '0'; wait for period_c / 2; clk_s <= '1'; wait for period_c / 2; end process clk; ----------------------------------------------------------------------------- -- Reset Generator ----------------------------------------------------------------------------- reset: process begin if reset_level_c = 0 then reset_s <= '0'; else reset_s <= '1'; end if; wait for period_c * 4 + 10 ns; reset_s <= not reset_s; wait; end process reset; ----------------------------------------------------------------------------- -- End Of Simulation Detection ----------------------------------------------------------------------------- eos: process (eos_full_s, eos_mmc_s, eos_sd_s, eos_minimal_s) begin if eos_full_s and eos_mmc_s and eos_sd_s and eos_minimal_s then assert false report "End of Simulation." severity failure; end if; end process eos; end behav; ------------------------------------------------------------------------------- -- File History: -- -- $Log: tb.vhd,v $ -- Revision 1.1 2005/02/08 21:09:20 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_elem-full-c.vhd000066400000000000000000000010001224274632000254060ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb_elem-full-c.vhd,v 1.1 2005/02/08 21:09:20 arniml Exp $ -- ------------------------------------------------------------------------------- configuration tb_elem_behav_full of tb_elem is for behav for dut_b : chip use configuration work.chip_full_c0; end for; for card_b : card use configuration work.card_behav_c0; end for; end for; end tb_elem_behav_full; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_elem-minimal-c.vhd000066400000000000000000000010141224274632000260770ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb_elem-minimal-c.vhd,v 1.1 2005/02/08 21:09:20 arniml Exp $ -- ------------------------------------------------------------------------------- configuration tb_elem_behav_minimal of tb_elem is for behav for dut_b : chip use configuration work.chip_minimal_c0; end for; for card_b : card use configuration work.card_behav_c0; end for; end for; end tb_elem_behav_minimal; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_elem-mmc-c.vhd000066400000000000000000000007741224274632000252410ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb_elem-mmc-c.vhd,v 1.1 2005/02/08 21:09:20 arniml Exp $ -- ------------------------------------------------------------------------------- configuration tb_elem_behav_mmc of tb_elem is for behav for dut_b : chip use configuration work.chip_mmc_c0; end for; for card_b : card use configuration work.card_behav_c0; end for; end for; end tb_elem_behav_mmc; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_elem-sd-c.vhd000066400000000000000000000007701224274632000250670ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb_elem-sd-c.vhd,v 1.1 2005/02/08 21:09:20 arniml Exp $ -- ------------------------------------------------------------------------------- configuration tb_elem_behav_sd of tb_elem is for behav for dut_b : chip use configuration work.chip_sd_c0; end for; for card_b : card use configuration work.card_behav_c0; end for; end for; end tb_elem_behav_sd; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_elem.vhd000066400000000000000000000253131224274632000242430ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Generic testbench element for a specific feature set -- -- $Id: tb_elem.vhd,v 1.7 2005/04/07 20:43:36 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity tb_elem is generic ( chip_type_g : string := "none"; has_sd_card_g : integer := 1 ); port ( clk_i : in std_logic; reset_i : in std_logic; eos_o : out boolean ); end tb_elem; library ieee; use ieee.numeric_std.all; library std; use std.textio.all; use work.spi_boot_pack.all; use work.tb_pack.all; architecture behav of tb_elem is component chip port ( clk_i : in std_logic; reset_i : in std_logic; set_sel_n_i : in std_logic_vector(3 downto 0); spi_clk_o : out std_logic; spi_cs_n_o : out std_logic; spi_data_in_i : in std_logic; spi_data_out_o : out std_logic; start_i : in std_logic; mode_i : in std_logic; config_n_o : out std_logic; detached_o : out std_logic; cfg_init_n_i : in std_logic; cfg_done_i : in std_logic; dat_done_i : in std_logic; cfg_clk_o : out std_logic; cfg_dat_o : out std_logic ); end component; component card generic ( card_type_g : string := "none"; is_sd_card_g : integer := 1 ); port ( spi_clk_i : in std_logic; spi_cs_n_i : in std_logic; spi_data_i : in std_logic; spi_data_o : out std_logic ); end component; signal reset_s : std_logic; -- SPI interface signals signal spi_clk_s : std_logic; signal spi_data_to_card_s : std_logic; signal spi_data_from_card_s : std_logic; signal spi_cs_n_s : std_logic; -- config related signals signal start_s : std_logic; signal mode_s : std_logic; signal config_n_s : std_logic; signal cfg_init_n_s : std_logic; signal cfg_done_s : std_logic; signal dat_done_s : std_logic; signal cfg_clk_s : std_logic; signal cfg_dat_s : std_logic; signal data_s : unsigned(7 downto 0); signal set_sel_n_s : std_logic_vector(3 downto 0); constant verbose_c : boolean := false; begin -- weak pull-ups spi_clk_s <= 'H'; spi_cs_n_s <= 'H'; spi_data_to_card_s <= 'H'; ----------------------------------------------------------------------------- -- DUT ----------------------------------------------------------------------------- dut_b : chip port map ( clk_i => clk_i, reset_i => reset_s, set_sel_n_i => set_sel_n_s, spi_clk_o => spi_clk_s, spi_cs_n_o => spi_cs_n_s, spi_data_in_i => spi_data_from_card_s, spi_data_out_o => spi_data_to_card_s, start_i => start_s, mode_i => mode_s, config_n_o => config_n_s, detached_o => open, cfg_init_n_i => cfg_init_n_s, cfg_done_i => cfg_done_s, dat_done_i => dat_done_s, cfg_clk_o => cfg_clk_s, cfg_dat_o => cfg_dat_s ); card_b : card generic map ( card_type_g => chip_type_g, is_sd_card_g => has_sd_card_g ) port map ( spi_clk_i => spi_clk_s, spi_cs_n_i => spi_cs_n_s, spi_data_i => spi_data_to_card_s, spi_data_o => spi_data_from_card_s ); ----------------------------------------------------------------------------- -- DUT Stimuli -- stim: process procedure rise_cfg_clk(num : integer) is begin for i in 1 to num loop wait until cfg_clk_s'event and cfg_clk_s = '1'; end loop; end rise_cfg_clk; -- procedure fall_cfg_clk(num : integer) is -- begin -- for i in 1 to num loop -- wait until cfg_clk_s'event and cfg_clk_s = '0'; -- end loop; -- end fall_cfg_clk; procedure rise_clk(num : integer) is begin for i in 1 to num loop wait until clk_i'event and clk_i = '1'; end loop; end rise_clk; procedure read_check_byte(ref : unsigned(7 downto 0)) is variable byte_v : unsigned(7 downto 0); variable dump_line : line; begin for bit in 7 downto 0 loop rise_cfg_clk(1); byte_v(bit) := cfg_dat_s; end loop; data_s <= byte_v; if byte_v /= ref then write(dump_line, chip_type_g); write(dump_line, string'(" at ")); write(dump_line, now); write(dump_line, string'(": read_check_byte failed ")); write(dump_line, to_integer(byte_v)); write(dump_line, string'(" ")); write(dump_line, to_integer(ref)); writeline(output, dump_line); end if; end read_check_byte; variable dump_line : line; variable addr_v : unsigned(31 downto 0); variable temp_v : unsigned( 7 downto 0); variable set_sel_v : unsigned(3 downto 0); begin -- default assignments -- these defaults show the required pull resistors -- except start_i as this must be pulled high for automatic start start_s <= '0'; mode_s <= '1'; cfg_init_n_s <= '1'; cfg_done_s <= '0'; dat_done_s <= '1'; data_s <= (others => '1'); addr_v := (others => '0'); eos_o <= false; set_sel_n_s <= (others => '1'); reset_s <= '0'; -- loop through some sets for set in 0 to 3 loop set_sel_v := to_unsigned(set, 4); addr_v(23 downto 20) := set_sel_v; -- must match num_bits_per_img_g -- plus width_img_cnt_g set_sel_n_s <= not std_logic_vector(set_sel_v); assert not verbose_c report chip_type_g & ": Processing set " & to_string(set) severity note; wait for 100 us; reset_s <= '1'; assert not verbose_c report chip_type_g & ": Requesting image 0" severity note; -- signal start start_s <= '1'; mode_s <= '1'; cfg_done_s <= '0'; addr_v(19 downto 0) := (others => '0'); wait until config_n_s = '0'; -- run through configuration sequence rise_clk(1); cfg_init_n_s <= '0'; rise_clk(3); cfg_init_n_s <= '1'; -- and receive 32 bytes from image 0 for i in 1 to 32 loop temp_v := addr_v(0) & calc_crc(addr_v); read_check_byte(temp_v); addr_v := addr_v + 1; end loop; start_s <= '0'; cfg_done_s <= '1'; rise_clk(10); assert not verbose_c report chip_type_g & ": Requesting image 1" severity note; -- request next image mode_s <= '0'; start_s <= '1'; addr_v(17 downto 0) := (others => '0'); addr_v(19 downto 18) := "01"; -- must match num_bits_per_img_g in chip-*-a.vhd dat_done_s <= '0'; -- receive another 32 bytes from image 1 for i in 1 to 32 loop temp_v := addr_v(0) & calc_crc(addr_v); read_check_byte(temp_v); addr_v := addr_v + 1; end loop; start_s <= '0'; dat_done_s <= '1'; rise_clk(10); assert not verbose_c report chip_type_g & ": Requesting image 2" severity note; -- request next image mode_s <= '1'; start_s <= '1'; addr_v(17 downto 0) := (others => '0'); addr_v(19 downto 18) := "10"; -- must match num_bits_per_img_g in chip-*-a.vhd wait until config_n_s = '0'; -- run through configuration sequence rise_clk(1); cfg_done_s <= '0'; cfg_init_n_s <= '0'; rise_clk(3); cfg_init_n_s <= '1'; -- receive another 32 bytes from image 2 for i in 1 to 32 loop temp_v := addr_v(0) & calc_crc(addr_v); read_check_byte(temp_v); addr_v := addr_v + 1; end loop; start_s <= '0'; cfg_done_s <= '1'; -- give dut a chance to stop current transfer wait until spi_cs_n_s = '1'; rise_clk(10); reset_s <= '0'; end loop; eos_o <= true; wait; end process stim; -- ----------------------------------------------------------------------------- end behav; ------------------------------------------------------------------------------- -- File History: -- -- $Log: tb_elem.vhd,v $ -- Revision 1.7 2005/04/07 20:43:36 arniml -- add new port detached_o -- -- Revision 1.6 2005/03/09 19:48:04 arniml -- make verbosity level switchable -- -- Revision 1.5 2005/03/08 22:06:21 arniml -- added set selection -- -- Revision 1.4 2005/02/17 18:59:23 arniml -- clarify wording for images -- -- Revision 1.3 2005/02/16 19:34:56 arniml -- add weak pull-ups for SPI lines -- -- Revision 1.2 2005/02/13 17:14:03 arniml -- change dat_done handling -- -- Revision 1.1 2005/02/08 21:09:20 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_pack-p.vhd000066400000000000000000000047001224274632000244710ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb_pack-p.vhd,v 1.2 2005/03/08 22:06:39 arniml Exp $ -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; package tb_pack is function calc_crc(payload : in std_logic_vector) return std_logic_vector; function calc_crc(payload : in unsigned) return unsigned; function to_string(value : in integer) return string; end tb_pack; package body tb_pack is function calc_crc(payload : in std_logic_vector) return std_logic_vector is variable crc_v : std_logic_vector(6 downto 0); variable temp_v : std_logic; begin crc_v := (others => '0'); for i in payload'high downto payload'low loop temp_v := payload(i) xor crc_v(6); crc_v(6 downto 4) := crc_v(5 downto 3); crc_v(3) := crc_v(2) xor temp_v; crc_v(2 downto 1) := crc_v(1 downto 0); crc_v(0) := temp_v; end loop; return crc_v; end calc_crc; function calc_crc(payload : in unsigned) return unsigned is begin return unsigned(calc_crc(std_logic_vector(payload))); end calc_crc; function to_string(value : in integer) return string is variable str: string (11 downto 1); variable val: integer := value; variable digit: natural; variable index: natural := 0; begin -- Taken from: -- textio package body. This file is part of GHDL. -- Copyright (C) 2002 Tristan Gingold. -- Note: the absolute value of VAL cannot be directly taken, since -- it may be greather that the maximum value of an INTEGER. loop -- LRM93 7.2.6 -- (A rem B) has the sign of A and an absolute value less then -- the absoulte value of B. digit := abs (val rem 10); val := val / 10; index := index + 1; str (index) := character'val(48 + digit); exit when val = 0; end loop; if value < 0 then index := index + 1; str(index) := '-'; end if; return str; end to_string; end tb_pack; ------------------------------------------------------------------------------- -- File History: -- -- $Log: tb_pack-p.vhd,v $ -- Revision 1.2 2005/03/08 22:06:39 arniml -- added integer->string conversion function -- -- Revision 1.1 2005/02/08 21:09:20 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_rl-c.vhd000066400000000000000000000011071224274632000241510ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: tb_rl-c.vhd,v 1.1 2005/04/10 18:07:26 arniml Exp $ -- ------------------------------------------------------------------------------- configuration tb_rl_behav_c0 of tb_rl is for behav for dut_b : chip use configuration work.chip_full_c0; end for; for card_b : card use configuration work.card_behav_c0; end for; for rl_b : ram_loader use configuration work.ram_loader_rtl_c0; end for; end for; end tb_rl_behav_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/bench/vhdl/tb_rl.vhd000066400000000000000000000172151224274632000237400ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Testbench for ram_loader -- -- $Id: tb_rl.vhd,v 1.1 2005/04/10 18:07:25 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- entity tb_rl is end tb_rl; library ieee; use ieee.std_logic_1164.all; architecture behav of tb_rl is component chip port ( clk_i : in std_logic; reset_i : in std_logic; set_sel_n_i : in std_logic_vector(3 downto 0); spi_clk_o : out std_logic; spi_cs_n_o : out std_logic; spi_data_in_i : in std_logic; spi_data_out_o : out std_logic; start_i : in std_logic; mode_i : in std_logic; config_n_o : out std_logic; detached_o : out std_logic; cfg_init_n_i : in std_logic; cfg_done_i : in std_logic; dat_done_i : in std_logic; cfg_clk_o : out std_logic; cfg_dat_o : out std_logic ); end component; component card generic ( card_type_g : string := "none"; is_sd_card_g : integer := 1 ); port ( spi_clk_i : in std_logic; spi_cs_n_i : in std_logic; spi_data_i : in std_logic; spi_data_o : out std_logic ); end component; component ram_loader port ( clk_i : in std_logic; reset_i : in std_logic; lamp_o : out std_logic; cfg_clk_i : in std_logic; cfg_data_i : in std_logic; start_o : out std_logic; mode_o : out std_logic; done_o : out std_logic; detached_i : in std_logic; ram_addr_o : out std_logic_vector(15 downto 0); ram_data_b : out std_logic_vector( 7 downto 0); ram_ce_no : out std_logic_vector( 3 downto 0); ram_oe_no : out std_logic; ram_we_no : out std_logic ); end component; constant period_c : time := 100 ns; constant rl_period_c : time := 20 ns; constant reset_level_c : integer := 0; signal clk_s : std_logic; signal rl_clk_s: std_logic; signal reset_s : std_logic; -- SPI interface signals signal spi_clk_s : std_logic; signal spi_data_to_card_s : std_logic; signal spi_data_from_card_s : std_logic; signal spi_cs_n_s : std_logic; -- config related signals signal start_s : std_logic; signal mode_s : std_logic; signal config_n_s : std_logic; signal cfg_init_n_s : std_logic; signal cfg_done_s : std_logic; signal dat_done_s : std_logic; signal cfg_clk_s : std_logic; signal cfg_dat_s : std_logic; signal detached_s : std_logic; signal set_sel_n_s : std_logic_vector(3 downto 0); begin set_sel_n_s <= (others => '1'); cfg_init_n_s <= '1'; cfg_done_s <= '1'; ----------------------------------------------------------------------------- -- DUT ----------------------------------------------------------------------------- dut_b : chip port map ( clk_i => clk_s, reset_i => reset_s, set_sel_n_i => set_sel_n_s, spi_clk_o => spi_clk_s, spi_cs_n_o => spi_cs_n_s, spi_data_in_i => spi_data_from_card_s, spi_data_out_o => spi_data_to_card_s, start_i => start_s, mode_i => mode_s, config_n_o => config_n_s, detached_o => detached_s, cfg_init_n_i => cfg_init_n_s, cfg_done_i => cfg_done_s, dat_done_i => dat_done_s, cfg_clk_o => cfg_clk_s, cfg_dat_o => cfg_dat_s ); card_b : card generic map ( card_type_g => "Full Chip", is_sd_card_g => 1 ) port map ( spi_clk_i => spi_clk_s, spi_cs_n_i => spi_cs_n_s, spi_data_i => spi_data_to_card_s, spi_data_o => spi_data_from_card_s ); rl_b : ram_loader port map ( clk_i => rl_clk_s, reset_i => reset_s, lamp_o => open, cfg_clk_i => cfg_clk_s, cfg_data_i => cfg_dat_s, start_o => start_s, mode_o => mode_s, done_o => dat_done_s, detached_i => detached_s, ram_addr_o => open, ram_data_b => open, ram_ce_no => open, ram_oe_no => open, ram_we_no => open ); ----------------------------------------------------------------------------- -- Clock Generator ----------------------------------------------------------------------------- clk: process begin clk_s <= '0'; wait for period_c / 2; clk_s <= '1'; wait for period_c / 2; end process clk; rl_clk: process begin rl_clk_s <= '0'; wait for rl_period_c / 2; rl_clk_s <= '1'; wait for rl_period_c / 2; end process rl_clk; ----------------------------------------------------------------------------- -- Reset Generator ----------------------------------------------------------------------------- reset: process begin if reset_level_c = 0 then reset_s <= '0'; else reset_s <= '1'; end if; wait for period_c * 4 + 10 ns; reset_s <= not reset_s; wait; end process reset; ----------------------------------------------------------------------------- -- End of Simulation ----------------------------------------------------------------------------- eos: process begin wait for 4 ms; assert false report "No checks have been performed. Investigate waveforms." severity note; assert false report "End of simulation." severity failure; end process eos; end behav; ------------------------------------------------------------------------------- -- File History: -- -- $Log: tb_rl.vhd,v $ -- Revision 1.1 2005/04/10 18:07:25 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/000077500000000000000000000000001224274632000206565ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/spi_boot.pdf000066400000000000000000003364031224274632000232000ustar00rootroot00000000000000%PDF-1.2 %Çì¢ 6 0 obj <> stream xœUËnÛ0¼ó+ö˜ͧDöÔ¦é­9ØÐs 8¶ ËŽ›¤_Üé’"!‰+#…‡Ã}ÌÄ .A„'½»ž]Øjc`÷Â. ãV~u=ܶ¸éÁ8hŸØpBBã¸2`Mô=»ùñ¡ýÅ´â²Æíö‘ÝÜEÀp›U¤æÆ$à>2Kô}¨ÚM ¿´‘7šoG¡í©™Á¤Ña •Ò¼©ÇÉNä©tJÉíØìÿtv¤œÏ‘cFiÅÏ´Õ¢‰¥»a~rèêìgSÛÒƒ/”Åé*_¿Kn×·Ë¥Âlh{r¤mJ튎ÿÐd %M¬›ók*§,]áãü'¦¸Oÿ<™s>\íyª_7¯}OݼàyIC×úHk_ˆ¥èAAuW2~kaÍÖx·ay îCŸµÂ‘82-¯"ñÈöì'œðBTÖãÿÚÇ‹Ï;­oÀ j¥NoO´…»3[Çç#”—endstream endobj 7 0 obj 544 endobj 19 0 obj <> stream xœ•VÉnÛ0½ë+æ˜Êp‘¹\Ó=E\=»Ž·V¶cÇhп/)’29¤Ü†!¿á,ož4#Ÿ€Ô}Âu¹oNÍ“ýj£ˆ5“öå.}è¦9ǾÙ6ßàМ€é!©½23 uzÈ?ç ¶Š«c}ƒ+ ࡳ>ÆÕЭÏŒcŒ0îò@·oî¾¼ë~4–‚¶‡Ýss÷â°$¼ xåðŒÌxÀtþÁÇÇã#:>;,ˆžJ÷ê°íE\‰*Jf2õéÚÈî1¯vï 'R«Ž7}v&MÚ2I)«3ŸCǾ¤Ê:Jc|Añ½ÇiE²ðX%.ÏÈëtI&޵z©§L«.©%1bç3FíÖ¨À®ìlésrw6)ª€….­GB,žS]dÙÅûR›Êm¯ˆ^µ’‹—$è?™ª;x ³7ÿ~œ7“Ëì€J<±R9‰Zî´†¶óí²nc»©ÌíuŒ^ÑT‚?§Ù£¢ˆáH.g xƒðª2EvΓIÜ¢œ1’JB0¯ïµ¢’˜äî ‡òÆW¨ú\½¨Ô¥t©•ºQ©sDQ‹ÒÔûD‚Oàß½ýD?¹šëÒë‚JMÞ£ëƒ_©µ(½¥égÞÈ‚ ÿãÆ¥o’8@†‚ôdÃô¼åUÞ¢ )F$’†wÖÄšÍwZ‚ÃʤS;p\J·Þ˜I|à'Q>%'òmFQµ}8„T 5 笭¼NâÿS—Û…mÅKžçâ~…ðäçorQ.lRz Û™CÚ(@å5µËzV¢•Ð » …ïz0ÚÿVƒ­õ6÷¿êaª(endstream endobj 20 0 obj 625 endobj 27 0 obj <> stream xœíYKs5¾Ï¯Ð19ìDI ä@ŠŠYàlÖñÚ`ïú•@þ/?=gZ-ÍìæA¤¨œnµ>uÝji5w„öŒPÿ/ýÝÜtwíȶ³L- 'bP„©Ü¿%ãÆDõ`ô¤ætQmjË“š Æ'ý·Ž¥” JSrÿ+†¡×äºcÔð^Ö²7½î.»_È®»#ÌÇÝ_Û+kI„0!†g§Ü’“½[ůãl“)MA’kgc¢§†¬]Pqœ0Æzç¦Ã!ë›îÉO׿uÎ ã×çÝ“[/ëžË$¿õ²êOò¿Œóóð> 'áÞ ÂQ]b yüÁË.1y9¸Ì¤ÑãJC†>)WzæEÞka3QõÚ«L/K‘iJYÛ[Rc¼@«î³ÏÈQòX£\G•œ™q†äózÌ{âR“†÷˜³[„‚Q7Q¦âªtý"ŠÆ”ÃÔÈYÐãa LS¨5cÆŠ`yœÒl¢kÕªf ÆY=©Ao‡×i)q3lÇPå+&´‹j¥L/x08õŒO™ ™ŠÛ"*ÞcÅUMûCÓFŽ‚Ýþ§2 ¤}lĸifµæ#lû4j Ϻ·€®‘æºäH·˜ë+î{ãHŽé5ê#¼ &¯Ø‡µ'ô 0{¬M诜üèš&éyš ycfà²ÕBŠž¨ÄÄøI½Žï¡d|ƒ†ï‘|Uî-r »Ü˜Rx½‹9,çˆ+î X1évÕ¸7‹Ì€áÒ9*8ÊÁg¯sß"ç1=¿"0<ŸCp:+¨à$i~^6{„ºƒsüÝx•í³AíïûxIö¿P\ïà Ûtî.”IðÓÑcÌÛÊ Ž•Ùãì‰3ñólíâsËà.5­3W{eS t»²Ó½r­!´£*·=r/—hæÛ.ÕÜëÔ·T68k‘ &|VÑM9ûÏÝOuIÜBÈs(`R%‡×#¨ˆ/êúªû-`S‚Š/7· €¸×SÏXâÅ ¢ÂÊ+Ae.x­ø¨Š/Ú²¬*\ÎóA'[Îà›üg¶XúÕôØWu¹ã¢.‚(Ê?Õž].mßб«ýßÂ)¸rg!>qo¥t@¼#vøQw•`áÆ|ä>`‹û@ÿ¿þ¡»†l6Á/S'Ǖή dÅ¥ÿÁ. ‹¥Ã?½tò¥ÁÌõ…ªG'îõWsi8â7P#ûø¥Úu­ÂÀEGƲœùYÛwó§Ùòï¬úÐ_îÐó× ì|aÙèå£ýôN±mÅ;XÛ,¥Æxލ!lr⦅sщ1óO6¦>z¡U£×4ü^¸x.Gj`Ŭõ/¨átrîüÛ;b¹9qÙÁ¢áÏh_d´àÝÂ1ðÅÌ6RS¨Ìàø7kò¦‹Ïà§ß¥ÿÜog_ÏáÃt~>·Ô¿}‹ð¬Ì ú±?fú–ÅtÚè¹—áC¶»(o›’8 7>k–pà ïø,<·Iµnà =ã7¿Pâ)þ8v¹±Ž*ÈîiÉæãýrádÞ<왕ãIÔx•FâIÔxŒÓ Bj"gDD"ÆLµÒ–ÊôáÉJ" ªøìä”(ãG§R0…¢ Lá(ð˜ bz¥Ê€‰”“3ÝÀäÌL1½ReÀDÊ€I]¥Ô˜ÔèÚO¯¬üDJ©¬´SLeSìÐÏ Ä~beœ®pÓ¹†_ƒRe˜Ž”¡(-> stream xœí[KSÛ0¾ûWèHzY–Ž2´‡–’ºÓ3ëíÊп_=mkm(PìÄÃd’Õ®>}»–²kg¹ASDì_x?¾Ìn²CóÒ„ "—]ú¼(°D%ŠaÑ–­éEö#ûŽ®²D•5ïçZ#¡þö‚hoiV±ëÛ`J´Sm0Q¨<Ë<3Š(¥˜2‹ƒÊËlëà]ù+3$”Q–'ÙÖµ•%f"ȧVÎq΂|ô»~~T/:·VàX¬"ê[y{ÁxͲ 82ùêW*"ô^ºÒ¶–\›Èø¡OvHa‘ŠTB»Ù¢6ÆXu9× K’»6Ê…=3Ž€|Ò^Æ=Ä’7L:ØÃ˜]ˆzìeÒ€ø™R?ó¢R©ºÔ£¶Cw«`˜Ü^SªÚ4ê ‰&²=4kG lŒ£ö¤Žðvà°öDÒö”ôдǑK»Ëg4'XK4+–¢Þ™,Ç:ÙxŒÖ§ÇEƒ1{P¥É¥¥ºXa5‡9NÂ|1z3.±PÎä£58çõ³£ŒŒJšª^_]b÷Ý¢1MNpCÿ àí®À|úà#½Æ>Ä`ÓaM«)Ò?Õ~Â[o¼·^Âýõ+´n™ÔÙ¢oèq'øò <ÕU¶uÕÖL0WÍÌsÃïA’^¬Hâ|–汈€ELòs?ŸÊ¯¯&€5¤3÷öRp<ëÄ¿µ~h|6ÍŸ¡ñÙ4†Æçüy±/õÿo5“Û/àϵŽy˜u— ½ñù¶/›Ãô «‰¼åõÓ—¡èµZoh|&ÿ×{½¡ñãzëžú&#¤êkŒ˜»sXcѬýCÄÈû¾làOªBU \=©BZ1ô}ǤŸô“~Ò?C?ÈÔ6Ym’UúœBÁ‚=”£ˆÀv1„HÍ{+X„F¡€;ƒ¿KØd¼±óß4¼±óß4¼·à?ÞèqÂÄëÃÃ~ Ùæ%:Ì|×õb?|¸=ïmÖnöAÇnmMl«5w]ÌÔ5lÿñ•F\õa18#û‘Wõ_y¹êØv­¾õÏ1®ê¢MáÒ†ïz:<Ä«àΫ js!¸,RIt{ŠÎLxmˆŸ]¦´ U3º‹4~0÷©°jäÀ:è~C£ZÔO–:º ï=kl@T9®´F Î(âÞu7Hˆ~Ìþ_À_‡6û2endstream endobj 36 0 obj 911 endobj 41 0 obj <> stream xœÍ]iÜ6ÝÏó+„ý”n®V·v?ùŠcÀqâÉ8`‘ØñŒgì±ÄûëW·ÈÇWUTÏÌÂ0 [U,«^$Õï’,Í“¬û3þûìÍÑ»£'íß}³Këd·­³äÍtQîºÎŽòlŸáU×ðìèÕÑÉùÑ»$ß÷DÛ›tÛ4I“u/ì{úÇ'U™Ü»h{éúiÛŽM³‘äÎiÛ¦io¤Ù>9}q4p–'yž§yÑÑINß}ñí—§µ,ìÛ‡§Ï¾xÛ]×iQ׿w×Ût[Œ×çðüîðþôø_v×eº—Ƚï®OŠrat—¥Ûz|üý@®š¸»ç÷vÜ]i]6­t†[ßt·öiå_æu–åœãd ±Ÿº¸3t¹óFäpŒ×àý³áÚí_ùu¸Þ9MžC”Ó(ÇÒyGY½å$Ý^Ÿu·ªtzãõ@q’Ý èàu8²gÍbïLô€‚é•k¿ŸʧçY65©ÃQlBÙi'B'B%´Š‰,êV=èv“T½^oŠÎðÚ§›:O«j`פ¬û&ù¾Öf»K»;m‹‡]‹Á6µ¤f“êeœ{Š’WíÐ]»í{U+Š…âGlÑÏjÞ¤MA»x,] ÅóaXe‹6E?®ªm^WÉf·O‹ÖXûF§¾¾êÕ×ÕÕé"æ0a6Ð{Ã\×÷ÇÓºº; 2ݘ¸½  ¿;Ÿqìâô|6\çôÍ_Átžãw^†ºEó_¸|*î{ oüªÈø.Œù;ù#îú)hBtZª£{O`ÈÊK÷õs`ºú¾þJü‡¡÷LÓ›plHá\#ÿrôˆŽ¢ãw`8@½…á"vëm¾,a~ Ù» ©Ì¸¾ 3é‹ðšV»¦Ñt²ªÓÂàóiê>€Âo!Ì››;ä@I‹Ñ3‡GÂöÛE®®ô¾eS]t²ÉËɼu9šEÈFÿ<|/]X’„sóØÑw@þÁ€‹³ó¾ 8ù~¥ñ:¸»œÝÊC¸þ×8”Åh&™€Óhx¿¹Ò8 ‡Oâ!"$¢æËÔ6œbAhó„î¤X "•?-§i %tºT ö¸fìz‚‹<œ9=ç:Oý Eö’A·1é/`&Ÿž­õ>¢(JPý|ȳ!‹ËíçÌ'š„¢ùå‹ðÞ<úG ÿ|9AŠ:=ÏB®£§=m™à$4cÑ]‚ýÝ Àô¦nF”²€rrƒ^F CÛ\zŽz <ˆ¿ó4Wç\fnñN3îuâ0¤†Z#64¨-ÎûFo3œy6Cã6Å¢7Ä6—„à£çë¡Ý†\ ¹™hÒó†*tE€tdÉæ#0’ðû­<ÂXÒ‚]ÌaÐÒOöCæVÂÄpî:WÃ>_ïEghÄþïGÜu1¬Êþ5j#Tû ð˜ 1‹ *B8œb¦"LeFü™aEsW Ly æÅúB’XÊNE!`"Ñ©_Àñ©œÛoaƒéÂC`ß'PìɆ•0%ž‰š6ç&®¾†ÆÏ€Ø«ƒDÄÜ¡ó†7µèFHùê>WŒGIœâe;¡a[¾ˆ$À¦„ˆŠ‡^SZâgãÖ¸>ähÈç’$OÒG¢!DÃ!§•"§Ÿ8gZ,®ˆcL–æaYpÖ¼s­±„6$;ÔÜY3ÌCfÔº! …E£ãŽâ"<àÌ30ksgDsøÂ›i‡[0 ÑäÐìŽVvœYKù•cW«TN*é;ôŽCöã ûN»= ²¿ô~åâ¾æ*ÅEãàU~¶óæ Nè7”â¨7©iøœÐ¿3LeN”ßiõIäBv'¤3³ÄÁuüBQv’v…¢vQ×Á½ÃR¸,€[þôJ+lº„j*Úäü\Í…zÁ †¼@òV¼P»$&³à¥Ö7­ Ê„¸ˆÉRY Q±€¼2v=ìEä ¤&ðIgmÊc=U@Aûˆså:U,DöÌËkÅxe•:•f¬äåþ+ö‰Á5æã”(4]^æÇÀ¿ d;T]bÙ c“m5ÅFZƒ–Í µGðîØ†ŠØŸSINnç¸!”‡ã¡œ£—€}Øë=};#]dµÉ›qbÆÒd¥9\£í¿Ý—‘ŸèZÑÝ@vñ]*DÌv qô«ãsPÆO”1Õþ­"1&[X¡â!µ6͉p„Šà:æIõ¼6­VÆj +hæÛÄ´—!6¥9é®\cZLÇ­‹Nú"¬§»ŒE%^’1È¡\ýˆLM‚¤âñr*Dm_ªçû¬{‹äÄ÷òäLÜB¦AÚ¶âz³1±P Ö0¬Dq„×Ó@¿Ï-ý‘=\Üws/Ç^»î߈òŽÜpº؉`fý(qÙG˜­˜T]%é•&Ož7 @ŒRbPý[iHyÕ¶³F¯&D˜·a8gd tVˆ‹+œÈ³B¸°rÕhT݆›ý\Ö-—Bl!jƒ)”ÔqiS­­ в•¾p¤nÁk¡º'¡Ÿm:ÎËjòäEëØÍÚZ9ß0k¨¯²Äph3©­Á–ß™Á¸ž/;#òâË©ß!Éø%½áYÑ€ ÄûY… c•ÖšÝIY„%bÁPÜÊi%/pº·¸Ï\žO'Â'|¹ex% ·ôª5þiåÃ_ÓíDÙZD·þÚ ¢…¤o %i-ßó-Ö*<À¾ v­ ŒÐ¦&(– 8´cw–M¨ ÅýI§çýðÆ$EÇcev|…§ô"rW5q•—Š?_÷ €ú.í¸Åñ¨ò¶²f€rîÑèø$/§ceeÖŸ¤ÛUÚÔ‹V/Q8RðÎ<áÁŸ`—ð2?»z;É;^¦£¿›î?M––IYí»3¶ÿøžÃ -Ûf½y•Ûîp×׫ü\rÄGwÇö¶™'y÷‡ZËVMê_ÐmDaûŽE 2@Mšk("É«—<¯èôtÙˆU£eÙ_,G‘„çdâÉKeJ?à‘‡aì##a‘”#ãJÙ’jìdÆOáô‘±œ…\Z þß  Å»…JÔ‰¿M•×þþ <‹f²8`¯íp4AÁ÷²•w ¾—YïÞ„G•ðÕë•ÿ| ËìN5Øë†³º}/Œ®w¥Y†¿ÕÕdgÔõhBîVTk/¤ÕY\l}ø2žX6'{% Ï ÕÚŠ€/þ “nõ•ë„e "„7R®UQe…T÷?/Â[Z¥. ÊE Æå»N=º†ó†¿ðPÓ,eƒŸ¾@ÍÔzíÒa!¬¡·Á ‰[Û4˜æfÌö}EœÞ×A¦ÃÙ ‰Cê\yQwÚ•íÇÜGÒ¯¼¬zËzKìZÞÈAÚézôÐaeÁ“tä´ Ë³fR£–r•DÜ»5| ÉZ“Y®Â@É8²ž12Ë4𓸢Iáu ~?oÞýžÓ¦I÷U'J6‡_Q×Õ °A9ÇÄž1cô±Ž0„ð<7Z¾e.h°Bph…/ξP»§°ÝQF䌉À߸ÐðBÝ =`)‰ãS3ËùܵAøÌi„$Â!ŒcGã¤= “ÌŠ˜xÁA)Ë÷ÁŽL&iE-.šÕ–ÔZ²0jŠBZ¢wÙ¤HlL§Ÿ)Á4o:tðÀÔ* »7Jeq ©º‹êæé"6¶RN|.èò.2'CK‘â5Zj\nWÏ^ÚG€´G‚.ÚéyzþÛÔyĵˆû0‘ —¼õ´‚ü9 XÞˆ‹41ÒE÷bÅlðX« ±`£È/V£Õ¡aL-[Yë}„‹¸ØZª»á,®¾ç’¼IZbaoåí„ cïNüÂ*¢¾µ*;q^€±[µÜ×€h;—f„çêžçѦ¨­;~DXJÑZ+'Ž aÉ{å¼Q_[IRQæçÐG\)  5‘0¥ƒ¨Àë?jý@‰ ÄÌK"X/úš«ï¶X7…ÓÅ­¢ÉÕT÷EâãI]Hª‚*L’E³ÃK#F”ChÑ‚`D{ƒœêºýLxqñaJ‰SsÝêgnF!`UùÓˆ÷?ïlWNOECEXrÀñYƒÇ¡ÒÉ1vlVeÇIÖËx:XGwªÁ³¬èp»~ãLi¸à|Ýá<Ú¸º±H.«„{Ô d¤Õäô²~'ÃÊ£E™Œ˜æ *û õðŒ¿§^þxi¼C}Ëcz@ΙٷpG¦ÎáúàÒÏzˆ¿`…?Ó=òW=ÿ7`ñ;óy«²Þ%û}‘Ôq§­˜t‹ý¾ž+á_„8„?E¬rÖ•¡‰¤a«¢»•ïÊ8óð½édKøK6®º½[¶òðÅÜ鮬ê¤*‹*)¡v7ëín?Ü,¶Îݺ¨ý»OÚ?ÿ>DToendstream endobj 42 0 obj 4722 endobj 50 0 obj <> stream xœ½ÛŽ$·‘†ïû)êÎ^Câ™Ì½[ËöÂÀ¶¥|)HsR¯»g$M´»O¿ “dü™YU]U0a¾b“™ ‚ddæO5郢ÿ꿯Ÿî~ºû{þ?Íq ‡èƒ:<-?l¤ï´J QÆÇ»îþqøp÷ÓA§rÑüï<ùy>ÌŠ ¤rý/¿öæð‡ù.tŸœ·fUµ‡ß¿Êyæœ0©txõîŽk¦ZëIºÎáÕÓÝoÿúo¯þû.W!å?¾zs÷Ûéw˜Œ«¿ßÒo?å›ñïð÷¯¸üòçðçŸé·ÒÞå>Ñï/¿6¶W4ªÉ‡úçoørn©Ýäݾ¤Ÿf vέÃI¡¤49ùS¥ôv|´Üâ÷|Ë($jŒ¿Ÿ¡ü#ÿïˆE¾ãßqÈò²`;Õv´C¬8¶ÕÛ—ïúš’Ü´”xà+.m÷nð°–ì5_Ó$)ÙnãÀ°aÊàJ©UH/WjÉÖRܯÛf£Û7}£Q7®eÖ•Pg%ÛóÁ•q}oTnˆü×û 'çúµ)‹ %‹N¥5î}œ(%çøÒb~šÅHÐ.Ë6öž{ŽJCÓihõyJÃ4)£ÅÐÈÕÛ¿¦ÌÿïÀ•²=ÿ[Ìf}cŠdN›ÉfÉbšL®GÉôJÎÄRï0^`P$î˜ {Óˆ ¸^!˜âÚK' ¿ßBa¼Ø³¬ËçñÚ› o-GS`)üŽ¥hê3cE7Zl§ä7 ÕþÀdÔœ_îL#=èã%ai‰¯Ö—Yî<$ýžûy6[2‹Ïë:.ëàV ‚AµŠ…!?þÞ™‚ ÄÔ`µü¢rbº¡õ³)æ’ù‰@»÷Í–·*ü'˜’¨gWtcð|¢¼¨Q03Zƒ ýywÖèMÍÕz̦¡7æ)‘žá÷¯¼Ž¤ÍÞÃÂG»Z4Î;¨éÆdÊmc ½=±!9%§ëÆEËáø”ÿ´¡'òåõÖjÐχu'nê^äyô궪_Þx™ÿC®{ÒÑŸw;øÈ¢9\l£e¡Ëôå×Ú6sUEÒr÷&$2[)ÏbëlZn`š-‹“ðƒÑ‹¼J‹®Í©”º]½©“FÛõù›{­sFíð[CóìÖÞÐõŠJYmXkØb›§3¶ Ê‚Ï'ß; BI/Võ‰k6²Ãû’8Gï}{É~ìù*eX8pææ¨ïxö­Íج3à®õŠÃÅA~r:lo"cslÎìÉýZàÈÞ<îNܶe½ù92î.ÊRëƒd´NÞe+öf^kâæØ>ÒÀmž}ý¹R€¸ÐãnÚÉvÝ8ºÚYÔѽÜÞšr}qr"ܸm»êxÃ>Kàoè‡ ØûT5k$ ¯kÖ³Â4_®)±Ø±-«3üÈÓ[ì[ÕC•ˆ*öh@ÄÎ9ºÆGwa^àŸMòrpõÐO­w¢ÚŽj;üãÖyô»6'ÎÚNØSuûZ×ÚÜG5¼ €…¦=uš g€Ü!Î68µ7¹±"íâ­#±sž^Ú.»w>/MÕSó§¶¡÷Ï9Þ?:\›OØÕéâ×YÎ|÷Fé^‡uÒ¸¥¸lP9dgt #ž¬BðöºËý°!rÊ Dm¸Q“cZbñ´¼ƒÅ]øÝÜSb­†8(f'ÞãŒ`ËWW<¿t4^éÌsÜÝMº£ŠüN̺ËâäÎq|ψ–[펛Èè»c¼9ðliçèîÚçeÚ‹ŠBÎçèg®~ßóžçù52M4q̰3þ÷ʵ½O†KɸÿõÂG”í¶ëcÅ#±¡¿“oóhçëær»1OD ÕbG'×®²\Yê×a¼(¼í¼}º•¥|dþŒhŸí®Üµ{â¼7þ/‰¹ÕæßÉà—}£dLZE!œ’³/ÿ²nÙèìÖØÛ< ³QpÃÏÝð†K¯ÓáàÄ ítê¡SÆVpþî*t*è÷_œ>Üö_z”±+üµgžG#%·Ô÷±óÃ3xOk^UÌ%ŽÂ ïH\#ðf×ìÞYMÞ¬ûê õ¿ÓÈÛ­°ùHÈ–¥¿#åFü™«ÄêÑy•SQé/4–ír‘åšU⯿㧾¿þÏ ?¿ß}X||[s†Ã¬¶/YŠ6Èi¨ªyÒCÒãÝ7Κ°T “+;qC¸)¤§Òßd/R÷“Éó8ä1s^ÊE —z¼{÷»Aº’ÊÓY K>:¥èD×2å57y™TÊ‘$ÿ%ŠÇfáòˆÉ„)(V<Ÿ~|øöÍwÏß]¥Zl¢á6ç9öÔ˜ȦlÐI.C#çqÈŠ9›¹°3È|M2‘$ÇÂyTfì™gdW8XdËœMáhYÆYƘ€õÜóNýš‚YÆl~‡^gÁUÆ„Ì2z‡Ì2fíÌ2’zÌ2:\û4«ùRUaL(º>g™\z‹öX’®W6Of®h6uß±ÑP÷ð=zž|×Y‹.õ2U‘}©âge1ò-Ê=£q“ £`C&禲¨`¹›¨Š9ë¼Ü>ƒr#„5ż¹„Ì ™³Àº.d32/dE›æ…Ì*d^ÈŒGæ…ÛhäºpGäºpd^4TBf•Ež›á!بžGp5T"²éuÌ2ê€\eTÈÕ0sÈÕ0›‘YFk‘YF‘kŸjàÅ Ⱥ‚/Ö ÆçuÐŒ ¤Ù·S Íj¨Êa°5šéyu¥.´5Ý0]²!WU«r×h“/c¼½ñ´Ž…ÜKOË( d fßÌ.§u[ržÖUÉ‘9"—{ù¤‘=³GvÌ3r™~vȆ9!—Î Ê +æÌ³++"9rž„ÌmHZF2Ë2ÏÈ®×Yp•E!›Þ&‚uoCÁÜw1³–ä>œzŸ Ž—jŠæƒ$z£=VKÊ 4…÷Ù° q¥=m„>Q7©©Œ´|Ä »äqÙe"…K½PS8_ŽÇ³ÚÑÔ'Á²*nI“lÈE·µ2‰ ^§*òiM>Žý’çïž?ºJSd—×.¶ÆÂTQí‹…,xf6ÀžО-ä‘5³C6…ÝŒl™=²cVȾ0[Ë#f ›ˆÌ2ƒÌ2–u~d£zÁº_S°éuÌ2ZÌ2Ú™et™e,ö `–Ñd–ÑäÚ§زŒÁ#³ŒeÌŒ|±­¡³¼ðV´ó™ì- íé# ÆõëTK¾GϳXêe*D{z‡²l¯)¢A²!W56Vå®Ñ ZeeL3–^­›±ñîáý·®Ó!´h¸X4ãÂe¼jÔ‘뇧±dÖ'´—ñI #0_“æ—ä2þiÁö̹Ì/2|€-³C6Ì ¹ôV ù%™eôQrœYFš_’ãgäЮ)Ù·:H®²Xd–…ô‰d–…|AÉ, ù‚’Yò'–…|AÉéj ”›¢:¡&Ý@'žç¹¢aâµ0Ðôä.™jOÔ|xxfµs;$Ê1¥@Îd9Ì*j£ž4åT+Oa~üøós?¦ÍzKåÁzºAZW›DQg£«É)ƒ‘i²¯–xd×b=釋«£«²Â¾©/Á‰ÕmH®êH!‡6M$ó5i{@2 GÛ’ë´ÈUdž¶. Wu¤€#m2Õ$³Œ´ñ+96õ%9 yFöÃ5GvCF¶½Î‚«ŒY÷6Ì2ÒÆ»àPÕTBîËd–‘Π$‡kUœ+»¦iTqKÒ U\YÇÄQÅåîaÛ¢ç¡Wê ¥WK]ªâRöZ|U\—lÈ5ç+8™Äob÷ ž©¸7?pرŸò"•o¦³ÒõŠUØrÜÃjÍ^ýWUk¿¹T«9•aeÄi]Môš¥M­jÑÔ‚=éò6Èwšf2œLî;Öòßü­„üÞ›<ÐTÖûüÜóȦ·é yÕö’ÐUt?ļÖvN7'va3ÎÅ\•œÇ#+æ¸8B΋Ì×49¶90d_Ø)dÇì-óŒl {‹Ì2úˆÌ2ò1ÞÀzîy§~MÁ,£KÈ¡×Y0Ëȇ#³ŒÖ#³Œý0ba–Ñd–ÑhäÚ§øbgµñæ«:“ÕW^aoè«æ±à'Úþl'k¹Ù™ÝWíyÏK½Liçñ­Éší'kÎ$=ÅylÈ´8¦Xî*uåè©$\U:„ýøÏ«R˜÷kÊÓ’y Nydnþ$˜Ý×()¹Ö9!×:Ï‚íÌÞHc#_ªíl‹æOKêûˆW+Hšù.×3ÅÉ+w+m{P/Ou\ûö÷G,ðÂ@æÙ¥ò1¥lK”× ™Ô<ÃÞÎÆjn¹×¯Ršb±s§%zÏŸ¾ÝSb¼mñEÆs L¶|€9†vê%ó‰y’9Æ[ä#™c`ȓ̇äIHæÃVò$Ž¡mHÉ5æ' ³ŒäIHfBfÉS”Ì2’I"¹Æ8d–Ñäzè¢ëá²æÃ²£%Y÷6lz úT°ëc@0ËXÆÌÈÞ^¨>úQL6ÐÅ)›s·Nl1B¹ºS‹rÿN5ÔjÉB· ¥Ì…aEdPs8d +ª2 Y¬[B™ ÔU‡kùZžÍ*«Ç\»SË}Íb.\cÏ2 r{32=r5$WÝ¢k¬]@®ºE#×¹‘«n±Ès›Ë‚]-tȺé ÉU·hdÛt‘d×t—äKé«nIÈU—Zäª["2Ëè5°W½/×>UȦ÷µ`Ûdž`×tˆà‹Äìú¤=ˆÙUÊÍÄl¢=ˆÙÔJ{³çYÄÄR—*–åAÌ®Wš`C¦åAL,wÍB~X¾s;¶ÿîùÚhÅl¼…ÙqˆOa+ÉM*8rôpÉ#¹†é(d[¡·QHækš„\#í r [æ°•Ü(’kĤóȶ’'p,tÈ5L'!³ŒA#³ŒA!³ŒÞ#³Œ^#·°$à*£‘jÄ$µ‰d–1kUà†5#‡ÖG’{ŸJv×j zÀ”Œ4Å’t»Ÿ\Qz‘Dð¡Þ©öÇ’%çi ð©e.Œï¡ç‡éUC|OkÈâ àUŠ"»Fä0Û'z›L}2âç[¨ Úx|j¬šj\£ÒJÁ<ÄsEuj’US ‚kT©ÉuˆäØTƒäÐTƒdßTƒä…g‘mS ’MS ’uS ’US ‚ýÜTƒäªÂ"rlªAr OȾ©É®©ɶ÷‘`ÓTƒä« K5 {¢¦ÜPIÐn¨ £–ÈSWö–'u¤ÈR—ê ?§Ii¡'Áz¦`ì´Ô²Ü-Âm¾&irRÙ–ha€šÞ43–p¸òj£¿|Å{Â[Aί?>ý8½<ÊÙᢳLyi§­ý§»l>Ù²¹³$=I´7ÏÏ#¶‚-éšG×Ã俢D&zb™ãû‡gÜä~ý¡<ž|Ó@¨vbyzû±bµ¤&C/xK±òê6{Žzxz ±èûî~bÕ¤Q¬¾gß Þ`Ï>¯ù=·ùÔX·õGp5WJÁ<¯uD®úÌ W}ÛC À5¢Úׇ@rKWým‘cÓë’C[$×ò€ÜÍQɶ­K’M[Ç$ë¶îIVm\#æC®2*d–Ñzäöð°ï}!Øõ¾\í‘„l®^£¢ôáÂq‘ªI7\¥|TS}°¬®R¹{ªÓÛòÌž]\,ué*Eo‰A¬RM²!—WS}® ^gÍÆÉ&’ÁOô¶RaOß¼=7»w†ÉWpu¿ ÒùEKz“’âsUÇå¤K’Í‚Y‘KÇyZö”–‚ùUFl¿ã’tÍ*¦9û†´¥`l ózûüí§·×½¡ìõXkÚsΙë³Í ™÷¤‚®{ŽYã×½o\÷r}¶9 W+H#×=¸ˆÜöúë³Í ¹v¼E®{Ž xÙsÔÈíl¸>Û¬ë³Í¹î9&äºÇj‘ëô‹ÈõÙfœz_®}ª€ëžcpȺ Á,cK#›KCÊ»juôÜ„´ÿkÒíö©Ò“vÃ~"uÿTOl–<ËK°Ô…û‰¹ÁÃ$Î)º`C¦˜/“J¹›Øÿ–÷‹ýÿöù»×?¼}ÓTK–×M¦¿ãîiHÉåh~™àÉžs´í@ÇÀÆÛ)Úöûu.á ™~=GÙ í¨?ù”¿&ä–¥?/¥seß«_ŸSþ¥KŽ¥†õR„×ÔS½°ÎÐî+©Š§ÆåÑCÑU’³.j ³CöÌ™=‚òNß‘}-‘s.» ™gäòr6CÇ:’“8rÙòz`Á,;wJ®e2׎3$³,ôúÁÛŽM%×{%dÍ<{®—HfÙéÁ>ÁµÍéXV2÷Q°È\çà€ë ×DHæ:Óñ®à¹ö©¶—ãÛìÔ’VŽfz©²x +•j?•†ÈjÒû2OêlÍÝÌöb–¤¼fÉó¸*õÂx-QE'L^;z·Ÿ,Ôh|K§'ôå¡%×ãºà5©M¼±îøe–v98)/°ë‹)d~±"lŒÌ/VäCŽ‘ùšå`@p/ôÂE`~É`9ØÌ/V,#—ƒ“òH`~‘dˆÈü"ɨ‘YÆè‘YƘYÆ‘YÆh‘YÆYÆà«Œ³d>8)/øf½FŽ­Í%³Œ|03rïSÉ—¢Xe,ͤ6‡¤~ÚЃ%ov®²¼©²«,¯·ìç*-Ër®e.|¹e?Wio·$í¹–s•UÁ«æ¸*k—-z­r‡ª¬]#s}…. Fà™Ù»ZÖ"f\ÌtKÁ—À\7#sµlBvÌ3résåpä½Û²v fÙ‹­$˜ëà,rÍãë5=p¨e2×ÙEd–q°•Ô`C©b+ æ¾(¶ÒÈl#(¯‘¹ÎÞ s‹­4²å:óùâHѦb0S9Ä3³ÑLÙ’{Ò ME[,n4 rWOÕ ¬&23-ÀƒI¥^ø‚ºÙRÞÑ$$[L3«òˆÏ°þ¯ ^£. ­ÊÕ]X¸Ü„VqàÄìùõñd%{æˆÌç"ô¦(Á¾–‘Ë+d¢QÀe dÖÈ–Ù Gf kY‡Ì²\ËäZ·ˆÌ²Pt˜àÀmhfd¾WQÅ‚5³ö\‡¢Š³ìE\ÛœÕòÈ\碊sm®c ¨bÁµÎ x®}j/v²÷CŸo,‹%¥/·ý73,Hœ©8@‹² 1E?(‹,š™LÏó¸*õBeAç5£¦h¢7E²U¼P¢ÐUFÙ V§bFU. ´Ív¡`ÃÆ3mµ{f‡ì˜2_“ŒRɆ9"—…‰¶ú€³—¬Ùx¶dTK.†M<àÈœYÆhYÆ<,YFr$³Œä,H6ýFÖCÝFfioTpš»ì‚Sk+É,#9 ’Cë ɵO#ò¥ŽiЧ÷’dËv`Ý ª'¶-éjcÀ𲡛ën8캎ž„§ž™jãÕ_D®óO#×}¾€Ü>¦\Ç©C®ã4!ó8 ¸êÚÏ“\çŸF®û|9´ù*¹Îˈ\÷ù,rûXpÕ7¹Ê8#×}>\õMiCÁ©·¹àª_ òЧ‚/ö×Ûœ®ñãœn! 7›Ó:_ZläåÞ¼<ž§¨EJ)téŒ6!‘‡?Îè&×+›E€UÁ«\sz…œ¥wP<-\÷?JÌÒÀ?.3“F—Ìûd K®eƒd_ ÛÌÙ2;àb ™™cÀFÌÙ0kàXë¬ë~ÇŒÌu¶ ˜Ýzúò dvëgŽÑyÙOA®e-pª÷2ȵ¬FfYJ¬ÝÈìšÒ« =sBæ¶5QrPµl@æ67˜?*TÆÒÈÜVéÉ( 1ô%©^íqÏÙ¶vEOÓ»lž•Õœª>-¡Û×,«B/t¸“Š“£™cÝÌËÀÃ7YS^ô±äz\¼Þï®yeö¹fÌ añµ%³OWŒyÁìÓ•ÐzÁÕ§³ÈìÓ•Ð}ÁìÖPÁìÖGWV!wVrõa0/„Å×–Ì2Ò‚-¹úæÙ×Ùõ:®²ÌȦË(¸îE(d–Å`6‹O-¹ö]D¾Ø oÁêÝ oÎôí òÅ-îùâLwƒ¼åi9”ºÔ™îys¦»AÞs5ƒ ‘Kg}D§GoZ=I9DoIÍ„X¾ô×£7{®½9\B5‡;^½Yžú,£ù4·Ô¼Åüw>QàÕoîîµ2ÙÎK‡ñáŠþe›l EÚU¾ÏJÙTŸ½øpÁûåÛ§Ì–×÷¯#.ï)n)ý@¨}è¥t%\?”ìî`Ì\¿*N+_§RVOÛbå›Ê®'ö-Ûå+Ë¿ûÚÀbendstream endobj 51 0 obj 8563 endobj 58 0 obj <> stream xœÝ]Y·ÎóþŠòbÙQ“;òfùŠ8²¥ ’†¤=äxµ»ÒJ–í_Ÿf³ÖÇ*’=3„@€$rÈ"Y¬‹UEöë¢Ü©¢´¦_¼:y}R.®NzeŠºªM¡JÕª®‹7Åå‰êuï껺Z«uÛ)W­é×z ¥j‡–]Ýy@ÚV¹ê¶öëz€=V7½^«+­KW­KURØZ5-™`3««¦TkýÃÚº¾Ý5ØMY¼š Ukÿ¹>QeWbÉ6¼>yyòïâæäu¡ºYÿý®îû¢/m‡nÄÛƒ'CÓ¯n‡Qì8CÛ©i9!¶xx6´ÖZîÊ®8¦é~/”R;¥-œâìÕÉg??ûïÉ0…nøñìüä³;[nvÚLå [®wµžÊ7ðû—®ÿüó-üüÆ–«]'»·åOtµN´-wu3ýüÔ3óì¾¢£=°E½kª~ÀŽ«úÎVu;C‹ª)KÅϸp0ºyˆ‡nÈ–¬È›1–ßBÿkWöGÄ.Ï\¹õšœCÄÓ„ÇÊë‚G\Ýñ ýQ_Ø*³›{üì θ»„~WöÂÁÔ]™ˆ3W×-Róïe97iÂUœ†¸a¶A:ƒT–'QfU5޶Õ@ÛÚö©Ñ#]j»BÛâ‘ÃÿBî¯lÙ1‚7éù×+¿€‚Ôð¥Ã@CP=w~4~å·n^Ë4.`›ß¸•Uj^Y«-ݪ~`+ÛàŒòØËäÌ++“<±[à#¥_ËÏ`2W ‰…ð‘fÌ´ø8ñ¦ÅâÄËý±=. §ù‹?™{ʸâX+s[ ¥þ7!JvÚ²Ó–,íŸÇö7…‚ÿË<,ª½( QJ6§‰eÄO ž9²^›,”H©e Ï/SØ¥G}4é_oóö›+Y."RÂUÛ÷¼Öe»V‘É!Uy¿ß».¥·œ"lõ,þEVÕm@uçþï)$‘­cfÉìÃíö.!Œjf†§ªš¤1JT2Í{ÐA)9õ.FØG& ŒN#-%<«2%k7 ?V?XÃ!G+ ¶–ÎëŽ]‡›ÈTmU/ß8)½XOA¥Ñ`ZÙá'ª±äbU¸1^µN!¨˜lŒ.˜Û²*ëI,,;yÓ~ ;T™ËÎ<‡ÎH}×PÆßþï;2–'æÅyUï`[¶´”éw¥ñL-ÜøP†™]QÒ¶„·[×<ÓU ð ´ìÚqwþ`hý¼¥ÅŸ‰Á‘¹Í¢tøööÈ\„‡R™¹6É´ÑÚPM­çò"G2eÀ,Ò7:?4Nˆ$*„_`8”³¨R $s#ï´–ñ{œ¹ã)êSçŒß¾ i‰©b,}rÚÿ[(Ãÿ€EÈGA¿jrËО\4À›é¼ #*ÂR'¬_¿3ŠŒiÅXå7q*@KK-E1óïC"È“ç“À1ž¤ú 70=ö´ERçòYŠÕ}7WNÒÒz|½soŽ…)rLLÑg¹ÕÄü°>ÉP\ë¸G’GqþRdÁ™>ÊŒWâòpË®ð¬I—gD晇¢†ˆ¢Ôqu[Tn¾w®„S›`F6â8g Ž#ð”0Ì¥ó|ÿHžBü"”H3%˜hGpÀ3âqu¥lJÆ>½«>ØYò“=>06|ËJã›Ê‚€çYŽ,}kDÄ¢„²H¹·ÀBÿJ”¨“Dok4ŒB ™¿À4Ž Mâtkwý^±=&‘g!È’'ÏpûeÛWê‘2­mu»e8­Éˆ;,êjÍo5©59ž§ìÊÔ1þ¡Û>"(Šû ˜éO~^ßoð4¬ 8(ðó›r”«óF¾wNí£@ÈU¾GÛ”Ö@= w ÌiÉܼò5B"Øh AÙG2܈…i¥¡`j- › ›ñ¶b¼ñÞi{)k‚7Y1?Îor¤ù#õŒÙfÌyÕ#˜TÄx³†ÃRV©(5ÂÒLê(Ý2iSžjâ ŸJ2§ê0õ$ÝqƱŹê+4¶ý±Tˆ‘@ÈVMr;Õåΰ”…öØÕ “`MƒŽ3_~ã”D¦`%F´)Å{Òža6å“2>›Oâuad Š™ó§äø#˜yð¤Y4‘®:§Š*›»ÌuÕEw´ø3-þD‹/hñš5X·–NË]«ú¾U¬öJ‰TäõÚÿñ/À˜B<ÛO™üòßG^0ŸéÂp#AXÇ0Ù‰²³wª´]ý‘wâ>Úø7¦Šå®P÷GÙuàÆŒâÄÔ«5´á|yâÑ'eG¡…§¨H¤Ó”7꟬aÜ3`Saƒ”öÍy.Ó?GÚ­Jå ì£Ðî9->£Å·Ñ_Š„„®;k•Wµ[Ñl>9ï\š¡<† "§ð±¿jV8Ã8lî‚dîdUù‡Çø˜^p¾ÏpOÈñ"]0!3Ò@RbO'ÒvטPåc„ðÞ`q5Ž÷z{çâ¾[Z|Ç€ò™QßÐ3FüxÇ!&ýxœ¢nWÛW"þÈA1ƒô÷cDô/n—`)g¤œÎ'Ÿ3X’Ž‘ù€˜O„âǶgŽª•w»ëT{ßÚ(m½kÆFg@Öh?÷ÈêVwá_Ä2epjó¡þU ¢õ~ÒS7óúYOcâtKùëgÄßC‰ý6œù 'ñª—‡ªd7iN ÅÆ¾Y¼Èt™‹~Ÿa¿÷I•‘.á.„ÀÌä€ßKY•£óïTµÖ9g›,YN3¥Ü…sð.- “šÅ'Ò§¥XÃ+7]>:Š:1% gÊzQ#Þ¯M{”y™Ém"”uf¥ÃAÌtïR%$Eo&¡Fæ|`JSHb|îH TŽ=žÄelH!í$؉:¯ÞûŒ8ßVj² —bvû4ÂéƒJžùÀøcCOkoµ­wm%zñŸx‘ˆõËÒ}Y;cd+zW%ã&Tv´[?Êë¼+ïC™0ÿ¼1bÞ`q¿=Ó͆٩°ÂV-ês!;?¡ÿýÁAŸvŸ—¬™ ™( ™{J‚–Î8øeùÚC ïB{°‹œ8qטQ…ÌL #éçL2`éý’ËÉ›·›è¯z¡CàÛIôy]ê.ÌŒ%]fòV|Ä.4G/E0¹lä6ÌŒ ’>蜟‡¶Ù´M4©ŒA§Ð%ÜýÐ,3ä»Ýþ*që½H2Òo±‘ˆ6ïÂrsÞt­ ŒÌÕgVF‰–ȸ¦OÖ½) "ß?Õë*1.»s•Y>Ç¡½êûšbŸ‹Íï›W†³šžhikr¾¡¨Íh(~À|ÝØH!E)Z|i6éZ@šévý cfëPÙKç;q÷ÖeìmªõA(9¢/eª~*ÑüNÏÏ LÑ|ˆƒGþ†/iâW´ÈÅ+ϰÁø˜ÿI‹ßÐâ#Zu~µz¼à¨ð$:Ò·ÑÆ_Ðâw´øg‡ï塺Q]•“â\¦ê)€›PœS*"jÈÉ}yûYVûçn±Û‰Â$ŠC²%’í<ëp‡¶X˜öîµ`îj’©3]ØK›ÞïÈðF©Ñ`c¿ÏƒgËÅ_ßFA}‡³w/{J‹`­|ýõ_ (O€°Éò( |ÊÓu!ÉA»/ƒ†ÏÙ›’ðÆÜaöP4Ë<ýHZ†>dÞæ‹XSy7Í%sÃgÒ‹I‘ù2á¼ì´ÚµË¾WƒHl¾›ÙsJ‹ö~ŒkXÌÇUùªãCô/Lä«- ¾%A·wWŸÖDÝNéz¾¡M¶UæQòv#ZeSæþF]ÉyV£Šòã«HÊA¹·š¥ @^ºržÏá<М¥ŽèÍMŒ™‘õj”QÆäPkáåÙŒ®,û¬Ê,š¯q|”Ò©ŽeŸINÓ¬'ãýS!¬.AŒ¦;ÈLÆ÷Ü% OñA=^ð´MŽN®Kk´@Å{ѱ]ç¨DHŽþ@ÐÃ…Q•®œ)-]ŠŽß‚zÃ4öý0*ôÈaCaá©—üŽ*üÈŽÊ£çॴ £U§òaÖ‘˜j‰3aºÜË:Šè[f± Ë1®dÍÈ’®É7>è¥âv¾T<ùÜ^QÆ‚xÕ.íæ`}?¨©Î±¾DM×Jm¢ŽdÌ OQÄh>õþŠäùñ¦Zõàa¡,–æÏÔÚÿ躲—føÛ~8íO€R×thÑØ0—ê+ÉmÃȧ›Í+à?DzF‰(uOIåíTÕÖY;Uu• ‘­Êó°Èi™„ ìPiw¹¹²g†ËãדŽ ú(t¢¶çð#{ñâðØ£ôdWnFâ6¯™œh$û†=E`‘X wøâ/9e¼È‘ñê`Ôzú²Ûµç4K®1q¢—QPç4—2y׆ ˆ·¾O9²;nû›{<‘1§6ûŠE‰þÑ/ÉI¡ì<}‰¸¶ŒSùAwå2bü2÷5„lágcPñ¾×À·ºÏ„oSï ¥b ‚,¼X ð=ûs¿‡„¸³²öt[ãq&ê8lèU;ø„x^ä‘iõ¢‹Æß|Æ,Æ ñø-³ó÷ëOœÔ´ð@ðY4$æà«®Ñáô©ÑÞy<ÛBâR )tW¡>ÃoŠDC¤ieH¾ZVºçzM—Ǧ◠¢—iÅÏÌl¾Š™m0ð¯ÃÈ3®Ú–R{îµê@ƒItè1/óóU ø\ ¬(È 7B ;2ƒ=^ü¥•Èü/·øj^È|”òq&Ê›ÎìÎ{º)3%<ö1=þ#MÑ/l%)=ñµþ;‹Ñ!SGEÙ|vGŽj&\à˜ð­]ºyc eŒvw3_ž<á ˜K‰Õ'´?& àïâ 6BªLö9ðEb>{$¥3‰^ÌM}A ï7)ï»|åžsÛ?8’ñZ:ðž\$ãXc!TÉ@ÌŒ—ÆÞ¬!¾ ò=„è: Æä;*x˜×)ä={ˆä-Ÿ·–4Lr¿ß†c1ßodR’N§e{­.Ã*.KL 6©¯ÿDÿ‰gêxþôŒŽ/È'«ütĨ˜d¸ éw÷p# _È•ÑV¯ ðYdüÔZlÙ7èÙ°Ü3Ùs6" Ì›Hʳ}%þ!¤}LŠ~ð/òàÇôŽ·Æ&9Ÿ˜ç“û^›$pÓfS’ݤh2žD‡âHeïqîËƃˆÇû8BS_,ÑùõYñÉ‹J>ùvúÏ›«“×…²ÿ/ç^¼*ž¼ác^KÀ%ü*X&Ô¿8g â!‹¹Ò¢Újef¦s_xAûJŽ—a+fZ*ì¨JÛÊ4…©´)*‡Ô^™¢®j3Tª†V6´Rõº·µ¶BUS¥n;TŽÝµ.™îZë°;TŽÝË®bº—]=¶lüîPi»›~\&tj» ;Vº–rSªý–PiªÚzš§ñ+˜|ÛÚô†Æ TN0ëa ¬¬,ÚÆJ³VŽ0Õ30­>G˜Pé`ÚJC‘\™¹B˜¦3K#L¨t0m¥¡˜¯*S„8˜Õ„äÚ‡ •¦­4€d­3O­ªpíPé`ÚJoí®{Ùºu~w¨tÝm¥Y+í”´VeÀ2: ùf€©òÖeKÉÆµ,Û l Ç6„9éÐÒø-Ûž}¨ÕȪ©™Ñ‡Z2º«¬USÙ}X>eX3È¥æ°Wcm­Õ$/†” špMÇZlj™{lÚøMÇZð|6uµØÔròØ´ö+KͬÀµUÈöÍ4–Ï¢]ß2\[…ì<°c€W«.5áº\­ ˜¯#ërM«”§*fc-NÀÒÿØ´ó+gõ@;¶UÈ,°ßcå¢tÍQÁÈÁº\­ ø¥›¿©«UÃè±®VÃLÀÕâ,Ç m©ºì™Åº¶€†?ÿjØ|iendstream endobj 59 0 obj 5110 endobj 67 0 obj <> stream xœÅ\Is·Í™¿â;ÚI8¾¤*‡8{¥²ØRU.ºH¶,3Ejwç×ç5¶0˜d’r©È険ݯ_C¿¿°‰_ý—~~}wõþêKüsÞNæbµa—»|!-ý¸½â̱þм½úîêï—7Wï/Ü…AñÓOÚû‹gô‚ ã?ùÊøËoÞbšϦGYRàòÅ3<ã!˜˜»<ûö*jÆ/œó‰ çòìî곿~þìWPÁáæ³o®>{G×f*]¿¢k=i‘®ßt÷ßÏ·ßv·?еœÜÚpéúÉWBΊZ6i“n?é¬ÝoÚٞХ˜ŒôðNý™DnRí%7Œñ±Æ—8†ËS|§´E•Æýõ§îýÛx]ÏØ¿ò"^Ûê‘oºGz?%?Êê•^ñÞWïÆCÖ³~M"5å7nâˆÙwßvÜ,-û:Ž)\kÙªsºzÇ„àr®(Äó}Æò#fiÅõÒ7ƒe8}àÔÁXb©;$21¶%rNP`_+âêZ…Å=4[zã»°„+!p‰Ã™<œDÏZ~l£úS{ù¢½ü0x¸R´Kš¨~²RøC Ö¬ouÿumÐë-ëz ˜º‘zMþWØtÀR"ñM=Y¦C׎̜ý;Zš2^ÿþ7õÃ?ÖZ}¶Üѵo¦½YjòõŽò/:åÆ DÙÿ”æ~Y«ÿ}}1rÏËoë÷¿í"©x ÌÀ]½í¯S9ª¬ê×îc‹S7o¯Ç³6uö3vceš0i.«‘õ¶Þ¯¨Þ]–ÙgDz»ÄÀì÷jØ( ­G«;?ˆƒáß.loïçRW‰¦h­Þ@—¨áÊc…¢ô&ZqÍÊÊF°­ÄÂÇ1d¼ë‘³Šæuùë¶{óŸ[H£lf7I ³¢ÅŠÖ®öÄF¸Õzþ~ËŽó v¸UªwòŽu zý¸ýì¡ø2ãw»Dì×àÓê¾}»T¬¤wóÀ–Aà7Aõæ`œÌ¯7ûîL€Ë´Ä¿ËRt‹‹Òrû%6uñVÞè¹ÍÖŠW±*F.h.náÐÀJx/0­·ºÊ«Òõ+ñ–ú•ATDÇamêo‡óšËI©ã‹·ÁØJ öŽZ Žþ~œC’V5BMµodR7îhJÎÝèï¿Üª*ÍEoíž·ô¥çºëéqÓ©™wªÁ6Í^ç*Åï—C6kð f"`×µ`‚Öðš{à‰çTݺWr3 †,³ -qÀ9ùÙï¶BຨZ¬5~¹RœOQãw»­qÜn\öòqÐKô òÖ¶â¬Ø»|³5¡ñGŸÈ?Æþ»Óü@GxŒ´. ñaiˆ“øo]„÷)ß·ø«íïJ|׺5È…k¿µ†«y¹ø\†þù[ÝõNP¹:Ì>ÿœdO~uá´Q˜Ï;®éÏ&yqït°ð“ð༩XÎXh … üžltܤ?ï®{¿¼\|ÄôÖ7šìͺôØÖcßfýûE 5½¢éêtƒ>ƒªõò€arÍÅû›v»ë±¹9`o½½ë›cÅïWÑx Åñ–Èvªƒ?önócoF°ýËök°Ê+õ`»-ÝkÇ[rsû™ŒT.ô’Æ-£vú•øeôi¿kRîóz0·ˆ©'_ `•+G¸YÖ®jj¬ñ ££'bÒËÜÜÎì-뛢uòØ· =!Š‹‚Kà$1MqŽ÷Âϲ3ªºÎ¯Y…ëúÞ¥iÁktN×f Tþ”@½JÏ/vJ¯>VxU ±ôdΣ:S©4®3óY_ãŽÔ™Õóže©:‡UÜ®¶'vê×™á€K«l ¦ïEùÙ½œ›•¦ˆ’vÒ‡bJʉExê]ÿ‹nizÅÿNלÏjök™¾Œ°¦7cäÖEQOwúÏ>=6!°á #<ÜÚÏïs%V-Îã¨Ø?[›Dç犄ÆÁ!Ìd¶ƒC©P‘¸§YJEÚêàˆÊíS™M@åòÀ**¯˜ª¶€÷Q˜»íºÆcaƒð@Žá‡Oöº—cÇ„¨ý8ÝÁ‘c²e¿¶6Ú:㨨d^”½ƒËkoøípr¯'wdQ¹ÈGO6Ds¸¢•±ÇPó8dþ–ð,âöGÂ}©~´ƒÎó6Òûê‰íææp‚pÍò9Vê=Þm©3ĵêþ×Vð[LþÂÞÛ©QHËê÷Gou½ïÛDmrè•ðêW¬E˜ß>»|yðÕïÓ/^¯~a[¹šçÙE†£cœ©èV±»=ò±?8ÛøRôÍ8GØÚ7—:'¬|¸ÂT«ŸéƳfe¼×Å©X*½8'.æòáÕqy!Ÿó®pŽœW{ø«Ö…½ éóÖïÁ´_ËlHÇÛ§BÐs+çÑÓ.©æÞÛeÅY,c÷!TûÔ@­Á7°¼q©•Ê\”ŽÈèT‡_s&Ó %]vøº³ùÈÙ’¾U•\äžñwuÂÝ,Õ}½ôõ÷KÇö<âÕ¯9ç!J‰\´Þͷ߃3½¶Mº‹ä¨ çZÿ^Ù…ÓÛ¶4~XÎÄQM£DL:ˆ˜|'†øµÁ|0‹CéÈ)Q'߯6"ˆxtºgKœ"ØFWH*M"dWJ© •òFѧeA$'EžóšgUm)ª6IƒDr¢òH0Zû 7!‚9N5"'%\ŸE,ˆ·"ˆF^»V–h|IdFúEV£ÛŒóm" =œ$à¢A$ÌÄÓk:üвhLXI2"hÀ£ûÐFprŸq~²QOá‰B„,MÁ Â#pgò0"'¬ƒ;YÉhŠH"f£f 4“`W>ÄD )>ŠàâðøIjîáŽ8F.ˆlØ"§¨"EKB°d'¥£ˆ…8†HǨåñè‚DÄ5 Á+8›Ÿq–¼Ø U´l§CìqÝ(¥-جkT×x\ðÆ@ üºqÊ}Žãì,¤ç­K5"'Åqv¼Æ"i9¯FN*Ñ,’+‡z^dÄìäšH $V®‰¬û¤mUÐS‡žBèZS‡'}ΩŠ$İ⬤CŠt‰…IóåtPA¶" Š7©~œó!‹ÐÇê&MéàL´É,”£ÝÕ:㉋"”µà!àÑÇbI1Žg B Ä8žáŠþÐ3‚uÆ4xM¹•€OQCž†Jð‘Èé10ïóà h!29sC$iáf̆DäàHÀ*†J%øŸ‹È=Ë!½/¤¾P¼xÉÈÓWŸ**ÂT£X óäÿº &QUµô Ⱦ”ÁùúÁ„JÂqB¨ÀHm!O¢Û‘Q­Ýa¨•”úþ”ÐPj³†”gÑíȨÖîG …ìÓ>êiRhlÜŸ$·#sZ‹N ©ÀIÁ‡1e/îÇËÌ7 á±$fp Ù D,Ó—„SF ­ªÀ •+FB<ˆ@C\‹&|**ð„êêajjø !°Nƒ'°Ápy¤é†ÀÚøøMØ@-Tψ¤iÊŠá`>s ‰¢ ^UŽ í´2߈Èv!êÒfÈ­Z‘T‘¿”2iˆu˦˜ÆDfݱâjº"]U•A„dV!•n!_Š^{”RÑÐí¥*óE®¾Žƒ+F¡=Z "šþ_Éʼn—hçÂKÅ^@ª2¿NpÅ3KD4Kfò—èMÇ.¤ Ì+‘âB½ RÑ-… AnR³8€”‹1›©$:’£Bg$«ât¾ÓŒ„…±®Ž¨W«&4š£YP¦µL¶aƒÚz™£8»Š:ÕúÓbâÅÙë{ݸ0Vá†mÖÎÂO)Ðó [¤QʬšÛ¦}Ð4Ò‰&¦ Ïò:ð tb¼Nƒ¸³EB¬ òP4&à´…Õó¨ 0M‚hí íÿW™¥5í ¸V”ÚÔ”¡m\îI‹Èn²]£=*É1A+"F rh0çÜ#Fx|ºÒ#F‚ˆâ‘JƒX&˜Np*orZå&˜hr*·Ê L3eZê§yðÜtKïsÒæÖ\ÂS‰q§þw Ü䓈ûš Îåã¾\[´¢À–Iq]¸àÇXû°Cò¸1ݼ‹ñ|`0µqcå9þ{wÍŸþÓ;ü{ù²¦„½ˆ7­1˜ˆ;KâøÔxÙ §º©ÆONRïÅɹ #Ú/s‹“s#<—g'½ðùÏî®OšŽ t|þ™8½Ø<|7rRåY^§Iù}¬UÔÅ*svbd)¹šøä+”wtþg§Eó.˜«¦=k­&ˆ<íf”Á+7Ÿœ…K™³.–Æ„ž”Þâg¦£åNOç*Zò̩騬ÛÓ.E¡"Ðù¨%b+ˆ8פKJ7¥ª1É¢ª3‘’É´³ß*×nq% ­O|¯&]¢ £­¦Ú‚$ºÕÚý€4ã÷oÒ%qw T[D·#£Z»¡I—žƒÌ©û5éyËént´10¨µùámº…vÎ>N›~Иt¸_£>Ï]ïð±¼Z¶YÞÁ,{…:|vÑì(jk×l;–Ö¶lM‚Þ1Ñn`‚ ÓìrFžßl…J™IkÙ0EãÕ4êŠÓ ‰®é6pÎä ̼CËÀ,Y»Ëœê>®tPE#T{LÃÀæ}³—,=<ÄJ‹Á‚ˆ:gÛŠ M>̉ŒÙœš“d¯:ŠVžŸØ/¡n𼡚*éèt@Ô­‚H—cšØ IGÔ]œt’çN(õz’úÖ "<w¦µJ£¤V3ÅFê+¥…N¢iÔ¥µéx¢ô¨’ZMnëFVÒÁ”jÚ]i•£e«šbˆäÔôé’Ž¯òÙJl¯!²ùl%öà’úVkëF}F³ê!ÖƒEi‰ ÒѺJ#‘¯*½¹IGBÅ8ÎÊÆDv1öÆOÁ™œ¼iè„R6>76]¥e1HÆtø“WÎÀI¬]_ƒ_RZå ²OhR¨ÐFr:<Ⱥf]GV8]G&Ié" á«‘Î9RŒkYN„r&h¨ÐžãHM§#MR)Ð#Ë[WåÐ4&¨ ­lDTeÒvBJvI&mZ%H’–ÛÔÀ!ab9ÿ‰ð"‰5hQc”tDéj¤‚ˆçó˜gR¢5rÍæ$žñy¨„Œ©œj=!áy!A,0?Ÿ7%†DçSîÖ¨ у(CÂý¹z<ð̆ÎÜ|ú†út6¨‚ÇOo}Äðß8½I¤DÓ_®ðåç$sqݱcq@‘Gr+]ŸÑ<Ýç9‹s’z ²Áxf êX&4Ÿ[<=C[‹CC‚"0[¯×Ý* ”jOÏ/@õaR6wþrç”nå ­2N>ï?5Ìü©Z§|Çu?÷ç$®¼Öæõy¯UmAÖrfÍgÌ­:¤2P)·§š›Å2Pé£î¶ 0ê°}è¾enÇé ;ã ãÿû9|/). ?|úàÅo ¥G¦¯ÛèÓJ5 «ï-óÇ–_^ýjQªÏendstream endobj 68 0 obj 4559 endobj 74 0 obj <> stream xœµ][o·~ׯط¦AΚ÷%ûRÄ—FÛ±U}2K²ÕY¶äÄm~}‡wÎ,÷܃ ñ·\ÞfÈof8Ëã|ØÈæÿI¾»=û|ö ükÝ4šaÒ† ·ùANþõg–Ñ'_q}öáì×áãÙçÛÐ)üéFíÜà˜o`Cÿ^Ofxz£øq nªÊÒ†ÇçPÇAÁÈìp~}gÆÎùÈ…ïg8¿=ûæå_Ïÿ}S°ðòüòì›OþÙŒB¥ç+ÿ¬G-ÒóGòþIlŸ_ß‘×÷þYŽv©»ÿüèµu¢µI¯ßÄîTžÝS<Ú#ÿ(F#h'ýì‹ì¨ð#7ŒñþŒ‡Ø‡ÍC<ŽCNH¢fÆôù i¿ŽÏ툴ÉE|žš*—¤ ÕSÒ£lšÐ‰S]}êwÙŽúΩ1·¸‰=fÝ]“næ’½‹} ‹%[T*&l.kË„x~ÏX®bæR¬æºé,{Gé¥vúóI°ŠLÜÛnPa_¯EÀÛ•á£R¡ŠÌU¤ U¸’^+=¾ä2ñSXÏfY'”‚¾¹iÅârth¿µ5²pÑ.Šmâ°0BÔQ?ƉJ°"ÌT_Õ°šì( ]¨sމõ!ìÇv’ùaˆJ&$/Œ{Ïdå5i—7V"äÉ>!ñÇy:l³z_ÈÈkòŒ*_.\Î7\—Õ !¬®sý°i„òLÚ–Ù×ÞQwiô²ÆW¤»Mk†$ÿ4[é¦: ¢3Ë›yï#±tdnتuØaTŒ²tdLjÑ|[TÖzûÀ—›…íLýn·ºÒ}gªvVæc—0sy&çè–hŠ.æµÞÍ‹ß+Sc—‰L_“µhÌ_§ÓE2mêzƒnVJã·“ÜÂm´Èr‰Sô=’˜îļĈmóá4„»lIgDßK|Mæ–Ä7†=ªZz:÷m&Œ˜úº³>ßa†=vÂþÈ 1Ó|ñ$òŸm;+“¹bM?»Ryf8¶Ð €Ý˜Ó©EwÝšìŒN“?H“?ϳÌ4{ï²aPm|œï-~Nù E§AíKgFÕØí¦ßŽïûŽ#ìS¶hq;£ÝÍu‡¶l¶IM“ŽïzÇ›]Í•õLýäm¼7õëpÑ’ø™÷eíÆÍ®RfSÈ–&-ê.„Ø|1Ö\p"‹Qà%mìšÝüø‚¸‘&¦ÈÖí¿ým÷²~ Ñô±¦ÈÂR@¸ÐéCöçx AÚ õ¶éâZoê{'nt~ÛÝé<>ØÐݧ6ªN:ƒÝìâïí<;q9”ž™Üp7¯Ýé~¹¯® ÙæQ>íSyϱsr™à»‡ÞàA›Ð›fÑ^#û»ÿ%’÷ µõÛxCƒå…}G|å}²©–¤AÊó?‰UE Ö?D-ôDg–ê»ešÑ¹öÌwwë·ºÂéšÎhÝ÷wmûmg‰Ï‹û¹›ÔÞj•¿[tRmÑn.§Ç„¶—ƒÎ[{íÈyðašÎp£‡yX4ãÕqœçÛ´+wU¶Úeܶ—Ý2hw”Û‰T;.á¾k¡¶¬Û†¨aŸörÙpwNËÇ™ÎâÌ8Ú=kîJBw•l{ÈñÖX{+—ÒÔp?t5,g!Ä‚-¢Ý]úÙ·ÔЄLïè¶Ô×.ç šã,ÒRzö~áX¹™êX™2äAç r¨ ¢ò¼õƒÅ\+ÆÅÂ\ú^±¿‡è/ÄÔñý\ÎÂNÜuý÷#ñThÇSÎõ·™r¾é7ú©òézfxcº¶íq´;¹ï%ÛA4!çŸã6ä:óì ½OV{«{é ¿%볘‡ñÀfQg¶;ÅåY+Š “žßçÕëÙwÊÌa:í‰~g_vëÿß—à™ž(~L[1·§9sº›»±ÛÒàd»QÁ;»yÛ÷©%£Ý Šº ©ÌŽyèO’ ¢àfD”Ûîó¶éÃvÙwfÔBû]¿Æ4S@&ç/±?¾Ù S•]vVlS>ƒV žöÑk.óõa ¬çJ(ˆèBçyxQ§™oÁƒ.òý¢»M*ÿÑS*iƒqØ~ž_™ĂG¾ŠZ¬—,ü½/o]Š`÷Xš™Ñcã]†ì—lÚ/”¯tË" QƒE+÷â×F 4K*Ò"Ñןý¥KÌbc«?íc×nŽã¨Kûè¸-OëC`Z±æ-¥÷Xúïhgsuò}Ašêæ'“ÔÍ Ž`€Ÿ¿œÅ[ž¯LàþýâåÐöÒ%ÇîÍñp;ô+68_£”©·¾{dmäX¸‘H¿r–çä ÙÒuÁro¡¿Ò>ÍÏþ&³Ðßû¢Tëü½i°V f¸¿®A½^ÅûiWXë•×jø5V!á÷$Â|·¶{:oˆf·óZá"#Ÿdí]§Ñ¸sÙkóÀ½=\Ïku¦Õ¹¾É‘J'©Ì $„Î2*Õ=ÙX(tSj„Á¥”ïß8ÃR¸¼6ËëÂ{ë"¬ß¿7ì凹¸™‹÷~¾6¿õvhç,Lºb„S'Óx9ÛŽÿF|lGÛÏ“g¥¶®™ÎÍ’ƒ$Nw|1ŸÎºg1q«?æ¢w:Úmwó†T´ŽB®ç}¯wꛘµN×ôº6UìvSÒÙ¤Ñm¡JÞéœÁâVç’Å­îoÿ f›sí†Ûˆ[µ>S vY‹Cüûó ÁWèÿÆÓedÜÛ7O‰å|²‰:Эa£tœÌ%÷Š@!`:jѺIM×µUzþpöÄYbæ4 ztÜ‚-òÜ„éY9†šQI° ffL`é«»¯W÷ÃoŸ¢Ú8#©Ñ0#ƒŸüü4\Ë^q=Ó°`±¬šÂË_¾}þô§goßœþ¬¨zW5ÀÔä(D«†\ÔªAOn´i¢£ 72æ lR§ƒ2@VÌùJb2`W“´1}òý«Wo¡Êþr* ûvBr¦¢VNnù8q$g)*rnP*7‚(+É$²P80ÏRùÞs-1YéÏ’Í€µÖŠ…“Ö4iðÓ>›¢ƒ¾zøt÷ñáj¸ûÏßSøÃ¥ ÍAý¨]P­âq«1° Òaí¿yöâéÛ—‡­¨ÁŽPÞ*$5+ ¤Õ£B+P‹ö[!c‡äRŒL·+À…Í7¡K­c¶¶Ÿ38yUtäù“‹ûËáær}ôÏ™™»dc@¤Dô¤}° 6Á±Ú—ÜǺվ4pçS«ýZTT]î§} ®a4¼Õ~í½èµÔªÚ¯ž@ûº õeí¯`ZJ÷¿×¿‰ }hk±©}óìüíãŸ^>ùÇOÏ^ì½ÿ¹U¹v;æ¢fÿsmÃÍ·f;Ö¢Ýöi§”ò†¤0µrç{@–¢cö?xi0ë:ž~½¸ù2\ßÝ_.î¿ÝIÄÇÃ_· e'å÷j±Ž¨ö1X28”„È ”ñéva.xw&óÑ~SÇÁ¶sSÓK-ˆ#½ :8,<ñääd‚߉8{¨Fp\ ‚UÄœb1#؆>ýO™[‚£ù…¸†âè§ü)c±&8HXQœú”G/+ 8ZgÇ)v3‚­ Ø:Š£ìÖu%íDq”ÑŠãœÃÚµ8Èè·Öm¼KZ"½ay.q×áÎÇÃ~0IåóÒÂ~Ía5FnÃÄG™ö—¿Pj¬i“õÙõ·{ðS‚µŸ¼ “öQ! l}\IíY*­gͲÅ9†m aa›Œã†µXŰ/0 cYÖbO¡Ì0ŒuaƼ0 a;†a, ÃÎ;]Sl Ã0ž ö•a«Â0ŒmaÂN†a\Öb¯¤Ì0ŒeaÆSaX‹£ŒÇ±-WÚ¢r8!á>Ó0&?N²a\ª²ž5:sj勉¸÷¼ åb5mt Ÿ<¾ÍxR™d-– R!Æ¢ aVI†q%Æ•d >˜HFp!ƶŒ`“É„qr!À‚ ™.djq™³uëB&Œ]!¼’ cSÈÔà$ËqÄJäÎÙ÷¤ÄbötëÊüä}þ³+UYÏH,&C,™’)E”™•*­gÍNÁ-ítá–¶•[-ö2%>\ø„1·™O«Ì'‚YáÂÌ>a, ŸZ¬ó~×ëìÀ®<ÃØžµØ$Gây†ñT8‡0/<#Xežl3Ï0"óŒàʳGâ\NµEå4:ÎAŸ0…Ö™ùɪqf¹ÊzÖè0Î ÖDq,™Ò£h½Y®´ž5;çS…sÜeY1†™žaÌ ÏSáƲð aî Ï0Ö…góÂ3„ó~׫Â3ŒuáÆ•gsQx†±)LLG^ Aqô‘>Ç8òL;ÁÑw‚‹#8é^Sl3¿ ®ñ*†eûAp²–â(#G¹¡8Ê(ÅQFÿ¹ ã(£°G¥ Øf¾b¬Å¡Ü¢yyŸÕË9»šªÏER ]B­|ªËE'` ’“OJ{áüm Û°n㶆¿¹¶nªhÿy•ÄFû2DÓA4©F‹6>Aƒ¤-µ¸K² 5<Ž„)ØL8˜pJ‘0§˜EÌÆ´ã([‚C@öÁq,c(Žc±‡½À‚uÄ’âTG`lÂa,ð’àÔ–Qç¬ÁIFm)Ž:ÑÁI‡ÚPe×ã#‚Jšðn?â”o‘µè„q¦7ËþËP3ýbŒ¦ 3ý®ƒÂsTIíÇ8ƒù\h6¢å@<œ•iãÊYÃS0.†šÇð2²¬ÅBÊÂ2Œ+Ë•eW–!Ì+Ë0®,ø² af Ë0V…eW–!œûä«Â2Œ+Ë•eëÂ2Œ]aÂIça½Z|pHY7\ )gŸMOJ¯Rfz•ˆ²Ð«´Ñ¡ô*1e+ZŠ)+½J9kx4½`©­1‘^‡¥ÖþÔ…qܪþ´„qœ©?å`·˜µGíYIð”¨é(ކ&ÜÒ@XŠc, Å1NNXR·6,3ÁQFË)Ž2ZMq’ÑQet’`eô§RŒyÔ9§¸Rashfrvߊœ‚pI¢+¥¨ããJÑ H¨ìúôu:\‡€eyÐlúÜW«5†ƒ i´'• _ü'í)¦LpÆ_n…­µ¸‹—f w½q@/8u¾×£Êp„ç–—´ ·,¥3%Á*¥EÅé¸Å –%CpIÅ`,J*†à’Š!¸¤b0æ%CpJÅHŠSºT,JÊ…à’r!8e ÁIFk)Nßà&‚UI¹œR7š`~tú%ßj‹Êõ™Ó¥_ Oç/Ö×ô‹Ÿü˜?MùôK®²ž5:,ý5´KfÇô}5¦_r¥õ¬Ù Ò/ЕËéÀ1•ákaSœnŸ€á 8¦2£8¥24Å)•Á)N<ž(.ßó 6•Ç—ïü§Ô¡8ÊÈÆ.~Çö)#‚£Œ~Ë`œRU‚┪2G%£X¾¶8®ÅQqhåVSŽ2}0- ÌE§ËµxIÆx=*åZüš¥x¹Ž…Ù¥ „[˜láÞõÇ;Ï9ÙÒŠ[j à½ÄE±á ¾2p%dqgŠW†°®. ãêÂVu»c,Š CXÚâÂ0VÅ…aÌŠ C8»MqRŸ¢¸º6Œó œ2üÞµa¬‹køº6„“ìÞµalŠkCX³âÚ0®® á ãqn.]öl‹Ê¥Íº9ˆ±ýÏÆÍÁäGÕ|eÈUÖ³Fº9e§’L³tÿ;»¹Ti=kvÔeTÈŸ!|¦ËÄÿ_Ä¿®âßd á)¸>hÿû:/Z§wù(†ÙøæÅ]¼º ÆÂ…¿4žK†Ú”þV³V+ÐÊhtþZ, ×`ãÿa6(ûňôÛ<í¿ýÍJ}U%ÄügÍïjòj~9û?£$endstream endobj 75 0 obj 4546 endobj 81 0 obj <> stream xœÅ]kÝ6’ýÞ¿â~ÛÌì´"Š”D-°’83cLžvï `8ínÛ;×Ý~M²Ù_¿¤H–XÅâC÷¶±d|¤KJ,’§ªX,ªßúNzû?ÿïõ›‹w?™ÿô2wÓa§þð&\ÈÙþs¼½îé•-x¼xuñóáîâÝAèõ¡æß¥—å°ô¶‚^Ÿÿù-îÍ[ì{LY_´÷ 8|ueÊ,æF×ëÃÕí…k™8!:1Øç®Þ\|öîþûÂ4A›¯^\|öÖ^OÝ üõ½»qð×wä÷¯]ýðó=ùù½½–Î=þüÉ ·†Î}7Nþç§îq*´î~Ûçörè&¹˜Þq·¾³·t§ð¥˜ú^ð->¸gèðНÜ+g$QÔbzý‘Ô?ºëø´Êsw=GE^"´Ÿ|?ʨ m8í«·ü#ã·^Û[ª 5^»'†¾»%/xJvíž9h,Y¶sÈhǬ“Kkh¿÷}(2¥R\¦}à ;ÓéL§2ÏÒFôM·&7·¥áÜ`'ö¥Öyu9X m‰/]3'Ôã[>†Ö”f…Úèrpå',%ŒÖ<üôgúö?á§“—ÑÒ¯Öé?šT„’tÝÇ…½ˆ=iä¼Odè±7özAãûœ¼þu:îâ} åI ²Õ7fæzn«ÑÐy[á·ñï¨ó~óó+Òta Ų5ïŸñßíHÊ~HŸÆHG{œ)ÂÉ\xÉÛ¤¿“+Z2V‚-ù²,êóʨ0B¡±)ô˼,Èš˜ù izèmu4E\\¥ŠÞΈumcVR¦Ê?²ï*Tú½òP¦7i©uöUl=€K!ÍÿÛ»¿0æ'UËç(¨ºšÌ×¥þG2C»¦ÈÌŒ-Îö&SõÁ-›rúšÔ¯ˆÆhM¯gûüÔϼ³¤W˜÷üwCF5åfÒ&]úlÒà+{¹¹žhìó=@-MEž†ZŒl›ÓYÉj6Œöë~“ÈØ2Fx:j¶ó$Û;nMh›bL— \S£ŠÃÁhGƸ„aŽn¹ Ý yÒÝ1-‰ÊÜB,ùþ¾ÃzŽ*‘MsCwsí£*j9Z™®_Ž•òÿÛ0ÝZÛÒêWîÐÞÔËë5W™róH S,è»[½;ºÉ‹þ÷ÏH‹öz€T+0 6¾¬^èƒ_4©1bùâS,ƒ*—¥"µ:aÄ+Öàܯ”(•Aƃö÷?ípv˜ÏóhKþ‡¡Ž kꞪÎ}Fä5n7"Š4¨ Ϊç=fd{G˜oùJŒ¶f†²Í¤åW¾ñ,cìPNC@ÀÄ({¥Öûh1Š´kù *°¦¶vé[Z˜ sæÜ/Á sÌåW ‰bȶ¥âj}¢èA<˜´ë©•v &eWÞ\@"'ïw–µ7ãOÒÐ-îl6*6á´IföâL/•lüöÇäm~±—[XžÀ¢óám¶éyÝ«=´íV›Öa4bD R^Ÿ2­9Isç5nk§2KÆ´1ïÉ÷Ëþ>>z5n7d6—ýR$ìT…>Ë©Íì2:3i+j¶Åy@÷½¨>qÀ˜¬òЍFíßy;°'’Á­÷Diß—5_þ‰…î?-fCz•Ž:ÇíŒ/„}Û|«31!>†Æ¼%&SP…ÍnþIÓ:U»·B¶¦îZМw3Ðþõï•ÂûKtÄÊ“ feíy»6¡Ö_R%ñCzëYÜ6×Èé™m&ã.Uî‰tKþ*-ÿeú’+ö%SŽ´Éþ‡Oa\B5ÝMDy“^0é±>n6ÞË»pm{®ÙéăØð £>Ãö;3•ò)2ñëX%äƒÜS¾qL{ëÂܺÉ‚{ûÒ›ÉÄ•‹^R.âÀ%åÖ±tB= .A¬öó:6Ìz…†¿¤ µß”š¢Z”*êÕeÁ³“v¸¿íAâR¸eñ“M DÆ…‘·móû éq®ø]½µtÆýH:èqJ´ÂAE¯¬g´{Ñûzãõr®Ÿè\mu0~j£.$´é²|6e=aë“$¶°ݸ,(¥{Õ´"ÎÙïꑈF4ýi7MÌ£“¹_»Ê"\óÆ<™EÑë¹ÐmĆ}ŒÛ„.œ³À ldOZ×ÒQ•†ü€šbM“>¨Jå6|Ë Øl}6ñ)Χƶ`Òø½€|ÖIž‚­1¨1m룢Šeœ²|;ÿ~êyâ[aƲ‹#Æãk ³Ò§ÖrÕ˜G0²‚óTt³N@<ý£¼d¿².xnuL3ÔrŽmÜŠºw…bT¹Ä„üSÿ0£²+ç]¡gÒdúîZfÒ+Ø¥KÑT«03)¿n)qÿeÜí[mk÷}t/E MÈ¥–GUè4­97y}e£ãö©#q/õvCÎ$ã åýz6Ž²é¦šiÌhÖUÐwAÐn¨E úÏ[£g<ªRƒ—”ˆ’£$¼¢nÊCNt\Yí`‘èa 2葆µ ‡_‘†e7ø3/[zYq“¬blèʾtxL^×ÂÙ@ií@VÞT¢dÔQEÙ†Íþæˆ_!’É8ôÅxÿºWTÉ<‘Cèà™àÛ¶+Ÿ_s¶ÆJŠÓXi%ôpn‰É±B&"ïì[Ò·;dJ¥:¸zŠ# AÆëpïá¶hÂfÜ ½)2_vîÙäœË¢œqͳ µ¶Õ|wîD}K¾Ø˜üÜC-ò-¾Åìδdp—œ¨ünDnÔpPZ×Üc>™¡‘¸%ÉÎ:IÔ?eÇ)]zíÛ,…Ãa9Ÿ^£yë— vm 6‹ZLðâüøø­¤éÌŒ-­2Æ æØScÒx$»âˆ·±fÎÑWú|õ§Ç8ÁâÔu{N{Ò ¿éJVˆáEh¿rMp*Ù#özMç|µ¿I|uØ-û†\OžwòvpÁ9D:wæÜvy]Ò  ŒŸÕùÙ[šºlæ]»¶çƒ©Msuw¤'çD%Â$••£$µÃì9£Ðz&߯‹!‡Nˆ-äµlü”—iÓkz'Ÿá[9ÁmhL^¨¼‹)•Küe¾pTM¨X…ˆ>ÆTÓ°Èâ½t¤-•kZÕ¤Ô.¹£Ò$Z±ö) šw–ù¸R¶ûjGœË2c%©ÒHÈ\T„57ImSGÖÔù¥˜fgq—µA­Z¿<êS>ã4ä:·eG3…Mý¯,ø*®{c4„*2Íhú´K9²ŸOtefê®äŒ7>¦+ ¸²¥Ü‰¥ÒáñÊx׎GÖŠ’>‚‘è2„Ü·ªK´z&wLVºµ‰B½Ï³G>§`QÅÚGÒÖÊŸ?™Â·ïV=¨çXÀMÍÜàËøò9¾¼fTTöQ/\3à|égË®@fF•þÅÝŠ È·f~ï\£„„ïŠÑnúšÐ2ÄjxA¦ˆsÈFܰ3¶sÕû¾Âºp ÜךvCàrZ§ª5:NÔŸm!¶æªŠ9œïK­y.¾‰®|ó„îgÃŽ´Ï2äÙœwj‘n}Yê”÷Ì ®ÆÐòÁ“O±ƒyªfä¿GyB¢;³0­Æ³èXS¦]¥mìévê7l!í:äY©˜ù€OKÆ;hRAÕ–µµ‘ °¼Ïý#Þ¶ ­³½é+7§sy”µ­ÛÊ\Lv=Jµ  þ–EùºëÅ…À%™“|ŽR¦p1! Ð+b=+iÔp´0-g$²©É,X3ç bÕÆ„òoYS¡Å˜vö‘_Óê%¾g #?ЬÊiþ!ø5çv×â‰×.…S¿•„er¾*id)pЉ ø35!kYd'~åš¡{eBò_‚Û{ªèä¯Ãø‹ÆeïHˆœSßü.sšÕe™*»§QœTÔà9º &>®U‹Åe wü~êžS‡„nþÔ’œ£ç•ÔjíCai”²ú]K«ãlG){»a;»¸%pÌx gï#¹f—ú˧ÑÚ¤[sM„éR‘Šñ…Ë2ë2°QÌ6E}uÆž¬Èv&;¡´Å•{KyŸ§á|£]s=k¿þqZj­ˆÃ-9÷½z €IÒc# ÉnK¿²¡`•”¥o:ÐÅ«rïM«N¤j©j,Æ_2‡)›6‰X›Föžv„ásOÊ| þyZ<^¹¼Ý–oÁŸå ^[ŽNg¿“@V ùc›ç}«(š¼óÃl]·(¥Ÿadœ~³°( ªRüüÂþ¿ùA6ÆóÆÇ¶ 'v(þü7Õ˜¯ÄÐ…ò^M‰ã#å €OêÈô;ŠÌ÷™í}Vmµ9i±-Z7ê× 7ø×öF io”àKß AÛÅ™£ñ0cÞ¥ó= €ãSnk¨xA4a¶²ÏW4(ÌBŽÙÍ;cèa É……cKx¦1JU`åÔ§<²›é™Ø}Ã"¢a ø¬x,ö(þ?VQÕ?,Æ|Ê‹È+Z ÍË4‹ûÀMá¬À™ü¥]‡v™Vœ²’MV[ø‘̉1ö¸c9ZޤÀ y轓|Ê®c6†›¼úWóO¥Žf= ¯ð¡‰³ÝëjìoÏŸr9e;I“n)¶¬Çó¬Ï„<|dx¹»2¨ê‡r½ÌtBí+„;Ýâþ ü%K%Ça|.«ä ?‘ ù#–ÆÄÙG«[]ø¬f¢u¹o5çnÃ[`v­öé{´a¶ß ñú•¢Î«œ¥f‘îÙµô®sdÍÉ-«Uþ4úŽ:Ž2×òD$J>iæžÓsE-tÒ‹l3Š3¦Á·MÑZOò£šmŸ¾}™íÀÚ_½8w‡‰öD--…ö€Oa|Ê“ì* å~suøéÂý­ê'ñàýË쟸Žÿt´pKë¡d±þëß°aøÍéÐiæíçŽëWúѡŸj¾#×~Æõ*ó<ø+Äe# õ}û&ò¼yÊ<ï%tª6sANóAëá0ÞßnM÷Ú.Þ×»ƒÖ¶óâ~˜ÞH„_½©û›C™*‘.-µþ9f1ËíéþOBQ¢=³¸€nߦëmZŠióG¨êÒYªé ä Òuª0ºþ „»?Lsú;ßׂëk9Ù™8OV½Ûžþsâ3DSõ%ÖôÿL;”ÚŠwøÊ® Bw*üÜ#š„é´+Ç1ElÔ˜ê“xRPê|HµØmÆ}‰dÊùÿä/›39X†û´^U$ÎíÑô¹Ó!b¤&£ÖÖUo` †Ù¦gígÛ(ýDüéâÝ…X†á°˜xã ”ãt8^(aæ|Œm‘ãÅ«‹ŸwÙ:χÑÐeÖb£]?Ë3Uu³´ÿÎf(Üdýú»GBÛ†^³™†Fõ\š…¸˜f—ûûä›/=ûî?¾½züã·ß<ûêÛ¾þÛSk2δ0Jî7#àkÛ"#¾XAýá²7 H÷«Ê³­3’«›x9Œ£è ß\»2­ç[­ctk0@æÖVn½ºxj^_yáÐ멦žéÂÁ&j›[Ó´tFEÀ­ct«_ænöT„[ðÂý}nºu4o’Fo(íTñÏÏ_<ÜÞ¿?|øøüýGèΚȥ[480•A (tÎàÈn6K !Œß9Ìtp^½~ùjSÜ‹A)ã¡èiUÌ«úUÓ@ðâ± X/÷¯ÚO ÅÂaMð<;Õ¡µ0­4K +ð²tku;ÝÚ5“¡Òàgž1cPæ˜Ô:^Üþ1’®*Ù¤-IF•RÁ´}•5àz])…BǤZ`ô鄳68NùIgIã±d YŒÕ2É0–@2„=Y-É0d@2„g $Ãx’a¬de (d/@2„¯¿’ ã Hã±ïdK Æ3,ÆNƳùø86F¸QˆÎ \D8Ótï¬Âù2Ǥ֩„y”3‘Ìh…çKÓŠçs®×8×{cyc!fàÆx†p¿Ï0g àYŒûEÏ0VÀ3Œ{àÂÞ`Xž!Ê KàÆ3ð,Æ¡Íj¡XÏ0ÖÀ3„Å<Ãxža¼ÏbìdcCä Å©!1h»ó`; ¦ÙS§Çh‡Á ®n; v*vë¬ û ´Ö>ÊѰjvbÉüƒYÖ Ž¶’Šç‘ÐNˆYy™W¼¾w2¯'ØÉløA°›@¶#0vB Š]oZí…±›pÖˆ ¼Óûšâð{bO;YÌÚ`'‹]Ìaìd±93{Y$ÅN»8ÆØÉb„''Ë2R,€¨ût™ý¤JRsÞ\¨Þ¸irŒq¶[)ѳyfã˜Ök1‚ÙÓ?oÖ1³If¦k¼¿¸•Qknö1©µ—gzr Òãê ¯<[ì*/ I…¯Gï>ŸÉ1³ÖŽ ¼"ØÍ¿¥§Øój¢xE°çÕL±ç•$X¯ÁØ<¾ |#øF°ç›¢ØóMSìe(Ö[Ÿ |Ãx¾ |Ãx>›{!©*âÞ–gµÝÒ†Žëvc”<n=û¬h6Ë}cŸÄnÝ)ÙÊ̲[£´Ö‰ìzì;¹Äì‹……Rrp ÁIÅó—kÆ]€åÚè—&Vcì—&3Å~i2PìC„šb"Tû%×B±ó¯WwaˆììCŸ’àɇ>gŠýRRPì—’Å~ÉÕSìC½ŠbúÔ;Yl(c¿_§ Å©L£ Ñ­-T2,‹ñÙöÖ0kàÆjËk ·lg¤õaÿ°ÎGí“ࡌaˆŸ¸Ö©‘N£Å¬§G:7a·RÒp^â[®âùë<—Äâ±7Uv‚ÇØ%®¸µÆ2˜Œ{¿V(ökDA±7a=Æ.qÅ­í0v¦Ê®í0v&Ã%ÀD8¬½&‚C™‘b'‹K†‰±_ JŒC›ÇbLÁ¾ =Á™ì5a¿¬ÑûµàŒñéI,›k I,INù.ë ‰–uÄË:HY¡µN]ÖAK,™ObÙ–u±’T<›s>‰Åá)Ä5FŒ]âŠwëÏg¾ ŠUàÁ}àÆýxFðxFpxFðxFðxFðx†±×7k ÂSàÆCxF° <#x<ÃXŠÀ3ŒONbIŽcÄ·,‰%°gKb œÛ’Xç¶”ZëDÎmI,±d>‰8·e¬$ÏçœKbñ8ؘ‘`µ-¥–3ð c 9‰e›†.‰%9›ó€„ƒ$ $±á e…Ö:•pÄI’X6ÂAÆJRñ¬3…¦ EoÇgîlØÀž1ú¯›õ¬÷ •6|k´‰Ñ'ö¸à÷þS?f­-ídµG]ÝAB8áziW¦Òž³Õݼ˜ú[=ã-Ï6ä?ѿ̸P¦+œë¢aŽ*]ªÑ,]•5ýi5øÍîÆÚ?´Õ íçêÁ‘©õ°¶Y”Ùå—aÿzR{4ÞCrsý^ƒê5ú¸:ê 缺ø?ÙÏê¸endstream endobj 82 0 obj 7255 endobj 87 0 obj <> stream xœÕ]Y·Îù2¿¢eÀÓÛ×ô‘·Hr ÁŽ•¬6p +í¥h/í®-+¿ÞÍ>YůŠìÞ±œÀ0´œáY,~¬“ó!Jâ4JÌÿo¯66ÿlÿ¯›*.£jW&ÑÕXÈ+óÏå&Mê„—LÅËÍÅæûèzó!Jë®Óöß&Þ5MÔ$¦AÝõpX7Ñó›v3N[w¨š ˆžµušöƒ8©££³M?³4JÓ4N3ÓOttµyòò‹£ÿlÚ)Ôí—G'›'·¦\ÆY1”OMyﲡ|;Ö·¿¾a_ß™r×Rw÷¦|p˜åóD«$Þ•ÃׯúîŠqvÏéh¦˜ÅeÞ´Ôé?ú»ù¨Ž ZLË$IñŒ£¾zâi?dEVd͘—Xû˾lÈ›÷åʪrªp: tÌ­&|âœV·¸K{Ô·æ£"[¼ë{iwÆxç®ìmßgVÓ•‰Äa#pÂtÌU×Ó„Òñû$«”î*¶.mÀ¶¢¢‚¾2wIÐGeÏÛy{æ2ÃØÛ"ëøj›™Z¬ØÐÓCNš½Ö9z7Îs(Ÿ³s÷£Ýø®ßæ„íÒ´k¬3Þ¹<­¨¯™fBϤò‰Ö’|é› g3ÞÙ•)7sùFœ?güPñ™pRÂöÖL¦™Ïüt±dü{zBùt†…ÚÝûftʺøÙž?ϼò­]yX›´£¬|vx§Ð‰÷÷έ¢ò"_‹ÿpY×lòTùoý²'ÁçŒ _÷wêMÊÕ|"wCÁß÷Ir§áD…s0q&‚ µâòþÉy‰ýÀtÔßâ…µBxÎlòúsE´B\6Mù¼Äb‹¶Ä©U´Ò¹º½”@­K÷#~' [™gòŒr££u1°±­C€¹M—Ù ˆIeŒªÿ¨x{-9¹À‚þí.(Œþ¾ öç áÑmcß?£øÞjz¹p¾Œçx20D!ð?(L¾"ÌÃe1Aö›N(‡n4‰²"¿ÊYýöº«(ôHâ÷{9ÂM$Šž™Ýø‡/aÿÒm@š­2·Mc@0§vR-löÖßA,$äæ§z"°½×@;Éê°¾"D±TUFûSoCP¥ÑnØjùl}¡WÞëS"¾@&r’Kü2Hc',ÖÖÝÕJ2Ý™{xØ\Â"Nö„¬ë“¾íʱ†8Dæé»+ÎñØ6™ûKsr™E/ÑÑ­;Îå¹{ƒ•© µJ­˜½¹ ¾í‡°=¤ìê~áÂÖè¶>ý°Ù“©=ígbëóßÒê/‡ÅZcL1Y3\ã®è•;¶Í>ëÆ€…íÜ’Ýð‘¼ÀQs}Uﳎ.@s6sÜýDˆ§¶ ½‡Èê;fƒïSxSuARðIr~{šhÝ`nèÏžG^’Ú8W€€ƒ`[dxã. ØpZØ6õŠGúÖàH7`vL5I=v» ’è ô ¥{'UˆCÏ€§=­ÒØ^²äiOëÄ;̳©¢11˜–¤rf/.›Ï÷âU?áŠP…™ûØžÎV”V¾g¼Êz»¥ÅSvïúÖn ’2¯µY‡ç`ˆcæiFÉ%ðjž2byxõc?ƒ„&Ýõº«œ/è׈‹\BÛ“sµƒ·ŒÇ®Ál0Ñ*D3íÏ^%hthÚ$QÑÔFß2ð(sg…ù;BRÃ$Io¡GÇ«ÚHúµ¤ÃŽë?ѧ23ù¸œ¥\­ðÄp@Ó­™‹ÂÑ<«[£C ²¢Á7,+ÀŽ‹FÑ™´o‹­n4PSzO!Mð’É>p`äP4MI…6=ªªÃ¼4-mrÚœ¢`Ž 3<†¹ý g®a˜8Ôüâ¶`аè|–ä„‚˜Q;–œ]Ag´xN‹¯i‘µ½¤Å÷ìfï~´·*ËSl[Îjl­‰Ç³®\Ë -Ó"Ùµ˜åø Ÿ{‘’ÚÃÂRbvà"V¼ˆ¢ECô¶3P÷åõòkŠîPÚ4»ß~“l1N¸Ç)²,<•à×wña ÕŠ ‚…¹®Nð´­ KS»»î!ô8®0ƒR)c¶\Sä{ßnì9²ôÖ3rî©0Ýt­…á “H<æÖâVÂÜꥂ²Å i¤e»Ö-h“Sd˜ðø9Q_ÑW‚É…ó…u9ÒžŠ¤%©\x›!Ì£Ú¢qøb }4l|Þœ{x>}â$ÝYÈ|´à-z4°¦¹Ì×$)hªë‘èœòE‡¤7d;}ÉHЊ,yW|Ñê _û Í_—IM{VÂÉœ Úyÿ„T¢%1µ~í§Äd´PÝ`>éøvIe Í÷ø™/ö  ¼”A¦÷ªÚFÖ¿Êà !Ú¬¦Œïðˆ")㙆L¿â¦ÂgØÓ[ ý–þ7»h-±ä¦x`ÛÛhdü™Ð|ôèû\\¾ðNø`0òÔäÑK•#å뎽‰‹-¼µô0ŠУU‚’ð‚5å÷§aì²²J¯ÞG{ˆ_'—' °gFx»KW‘Ö± Èw‡±H7²ð6Ο@û¶ ß;|ºW»JÛœ½®5æÑ «°@¢°@+×Þ»MüZY»‡buœ5Ëœq¤²mR(èž ò¾IÎE æá>.Öp†S!LÛºÏ_‹®:[úƒÐ 8ö@ºâ­T9{€ ªˆì1_ø±AEêŽä=Z)ÝZ hÄçÞ‚Et1p]) ¡Â=ö`[4%ѶŸÙJÝgVæy `²úûäâ´~pãJy”8±_xÌZµ•ÁÜ~Wƒ];q_Â'Çþ5+ØëÕ"MR„z\¯q—ÐHdLc÷ôçà÷ZdŽ”S‡ým!d&„]q- ÐZ¤«$ÉÃæÂEÚs÷.T‘˜€6( Q‚fD§°4&_mØë’+Š 1Š"ãÍIœŸÅ,ñ¡DÄ-ŸÝ°§½}éÀb.Á¨úÎÞè;œâ̰Ì&}&.-}XÌVeN 6<åäËäàß+£;¦;m5P¸^óÎp ¤X»ÉšgX¸±3ìÑ ÿŠ©ày ›ç•¹` ²ËAR;IYo‰Oùú3¨‚׿sÇzåŽ5æwåQmã™íT9|ý—¤ZÈ4<¬<Òü¬o9E×,ËB)×2 ]†Âå‰A.Žò'ÌIÿD·W¹§Î•»äÕCRl¦ã OA½Dòà8·¾\—°Žù†3Gì¢~±^Èqy©z½h~Äc°6tbë~K`É{Dl’ý~7ð&{Ü-’Oh™WD•fBÏIМ–NB=ðë{X d\Zê3RCfæâ¹øé‡%á šD”³Ë•QðØìnå”Snšú/ß,÷8»–ôöaò¶ÏñýX#%xÑZå{Ä(x.ö/Ø5lH6_ÕÀ®ºƵX¿²¤^‚9 :îUãÃo`:ßQ鄱.-©Ï7:üzøãî\LR²Ô2¦<¥¼K©ìîLs³½ácOª†ò™m–¦XÛ(üâ#W|¦2×ÜyÓï# ýݳöÃüJÖ߬¼¿ó‰¨uËyYEuEetwµä5$^F]“õ×Ϧð!%!_ÂO‚°BT4w± vkuŠHZåsïÕ0šeã‘7.ï¹µÀ´ÀÏc¦„¤U^”Q‘·ÊMÞÕdÕý”Êz{endstream endobj 88 0 obj 3950 endobj 100 0 obj <> stream xœí]KoÜF¾Ï¯àa¡ø`qœÁnâØÑ">XØ–%{-dÉŽãýõË7»¾®G“’’,Üd³»ºººÞ]ó.Jâ4JÚÿ†¿//6ï6Ošÿ«z—Ñ~W&ÑÅØÈ÷íŸóMšT ¶ÚŽç›×›Ÿ£Ãæ]”VÝ Íß:ÞÕuT'íU7þÑÓ4É¢G—Í4íDMç¡o2@=zšå3 û$Þ•ÃëŸúኺGt¶£¶™Åe^7èé}ß>ªâ‚6Ó2IR⨣§xØO¹'+r Æö{øþ¼o»3â'ÏûöÞér]OsçquÅéÎú²}TÄãoúGÜÂoü•½ìÇÌ*º290"¦#®ªšJÇ÷I2v)ýUl}Ü0ÛÎ A*3Væ‘=*{Ú®£¢£ëm–4ˆhÞnË4.Š®K1vÉË®Kº«v°ÝíãöAÓá»¶CW…wHʲö´8HNÉ6§u\ΰ·ì4Ÿ{t¨i KKvÄ7> —8æ¡_HÞð—¬[I‘vãm÷Uœ5vŽéÉ{ݬ;I‹x—18”Á{¤<2Øsxyå¾|#±G­˜yÎLCþvé¾üU[à‰ûò|3+…n‰3ØÁìt€ ÷«¤ œöî¢ßßÜ?,YEqæ­x Î͈O`]—þÙ<7‹(ï!¯=l–ü‡oàCê{]Hg&´¹ã…¡Î[·ØÿTÀ.ý„ÄĘÛù'Šzþê Þ# 7| ‚öt´¾ò‡a&è3s†`.<79ì]âÀÂQ—ÁÛŸ;$j›{FTz1p‡n‹¬#Žmÿò P̰WßHYÔ—}»"æÈèª|bÏr /XËÐŽ{1‘棘([q°ÍЏ. E°üô+]A±=ÍFÎêøøÎês~œƒ#«`!³Ä^-1ï‹áXàl©G2îº\a›&û8)¢¨l:{<¡öEÚGèŽR !ÆmÈ «è©¥DqÈæˆ?YªâLŸ$8BêsAEê¢Î!˼S‰~æÎç½K•Lg´¸>‰e2F„óÕÛ ¹ˆy"°¯,0ÀeíŠÙì 쓵`3êóˆŸN•µ¤XÕDÛ®O‚6±›9ž}gÝÜ¡ÈöuÇÙy4mÖ,¯‚t*âštæò•Yªì† ̨¥ŒÐev’Pƒsa7ƒèî„]#¹3Gâ̾ÐTóˆp¾g+BÉ@û>‡‘p8Ž:Þ9p#[t?”äk¸²~í±ª’ÇÈ]ÀXkÆå¹1ʧ‘yö¨;Êá®äÝN ³n9fDVŒ¾õc;d#ë u0úUDZIøª÷8–åúÂþès׿T\ql†ÎP3±œ=¨ ãyEuÛ‚¢¦yHä3¶ð+Þ<ðH{ìjŠ;ØüÒÄsÙ±äDõ˜R⫵ʖ©ÎUÑÆ–¬¸“¬-~ç~ÿÁXá8˜Ã‘$ŒeΦ+NÿäöTÃy®\EÚÒše7””ä^"¼¯õ59êªj: ü±x’m†K ê8RAÞ®zf¶š’‹±äƒbv˜ƒ"ª;D8&‰Š¸173°(Œdnñç‘‚ –ÆEÆB,°!Ù}aóev}¾!¶„)Jë²Q7ÈNÕHuÙ6ÊOÕØ7ƒS°bž–ì$£Â22„Yµ¨ûr2bœí;Ÿn¾%#%\Ø€DZWã2AmžBj 2ˆpw­™À5±½_ó0®ò&ÔWi€Õ韺Šqr¢ý¢#ä“ /™U±,s `¿|fŸgÁRP4«ånÕ`7¼2ì²4ß3ë:0 M{¼†õên„Pð£jH$+fV´H¸,Š:œ¸òEËòMWUJ& üØôƒÿèëöÑ>.uÍš`(LS’ÝÐî£KñÊ=ƒ#w.ÆÄ.¶Ñðñ.J;kàHç$4+o\p%­šK)È•yMú6˜ Nà9ÄþDA¼â©gç \âƒ̺xOË”£ïILYcÓ BwÀoyÌiS„Ñ^¸KŒ^&†C2³0\BLïR1ºÊ“²ˆ¥Å„ÕZè¶Ëѽ°T—Ý0cÁÁ”Y$Ë2ÞúðNú3oìÏËüsû(Mç-c²hD欩âA¾Á49ñW8+àû|x$)à˜©‚ÔMx rnIë äkV²†šKxLÑH$áä*¸“òlP ¤,ă èošx)JÔÉaD—Îð„‡ÕJ6~êõòË•ÂÓ™Ð?Ã÷ΖsŸ±!¸dg˜¬ ž¢§Ï¹ˆ…ˆš0ƒÏ;µŒD]ªÍ§ÄÞÑÝZ#ãûgî|~–bðFÙû¦u½çw˜„‘ṡüÅ\1(U$ãÓ—ÃŒnÎjlèéÒ+k×ëÍÑ¢È  Lüz(];i˜£q5rÇÇpž€÷ƒMUHnô%nÖîHawBw5J8)µßÄ“é ‘ÌÚ¬VI]DC£Ó_¶é¾™¡K¶¤»’³c‘{/¶Íéîs^5`D€ª™r¸q¹­¤°w†1ªËB^lY”8_˜L´ä9ŽÊDyÑ× ˆÇãÜêEÎ3Œù®xƒÌç 3¼^‚w–ïÚcâ¤x÷ʘ”†-¤‹©Èln´´ ÈSýœoÔÑU–$YðH“Øy´TBy&ÅÈ®áã“~œäð¬CלŽX °cŠ 9¼¨‘s(Œ WnX42Ö$m‹äÑIŽ´þ¸Œmþ`Li1ŠNìÛÚ5–…ˆUÕ„å± #¶BÀ­ 7A˜a!‰Z©ÐŒ4cR?˜åløT «†Èý¨§ #S$1Ã:’\ðô2Ã{/ǹñÜ9«:3æá³ÁÕL5C;L]–Ù+†P­ñ§ÛB"¼kbx«ü_ 6îÊ.RÇ8™)ªc«Ó‚È–F îLʙ糷Ð/VÈüPQõo+¼¦<9±Ñ¼¾„,X*tÜ7–ü^qqÅJ wFñ¨jfxìÚüèçN'ÂV9‡û܇@Ž [»oÀ9{²Âuø£ÓtÝA8”y„$ï€T“ª³à÷xwôêI¬…ð)C—óCº:sûïü£\j¬òƒô³¶S wcÒ‰…)þk¼Ä…ïs®³Ó&‰§§pÉ’aGë¨VÏÉ<²þàï³*×zŸÜV´øPïs̱̋à§`¤¸&/Û€M† uÜâèvÄ!‹ yçcÌìFø¿ú¶X×@uXœ˜ûaŠŽdwÉIJÔHÐrȪ7äo™(ÙLFU•‚\'ŒRE6ʈ;|Ѷ+”Û¬HšƒSµ*bûþoí{¸±)^“†Ed S|}XB!µÛ^,`:‡1vFzYÎi{5\y÷]4®p\¿Öd!³b`|×éµ¥ø/-š,Öcï÷Q÷4¸<à¹æí~‚zÜK›c•ç0e˜´BAVQ…°ÊÖ¬ù¢³l1| ĵ”ó,¹&– }îL3®Œ`“= ÜjXUµ Ë°úÖ¸Ú0ãÃ\£ß3Ú콑5Bœù)C ÝNêBíý¥žKþЬÄC‘å«…x)œ‹çª¿%b@×–Ãì»h×R¹é0ìAÄß‚Ôi»YêIÅ“.ÜÛºƒš7Dü½_ko–˜ÎÒÙà­ÞAö»‰wTˆCİdQ¯‰ò²Å°òÀfäj.ûd~’‘ XN°3ªQéÇk˜´l‡†H©h¨Yµ5÷ꢫߊ²¡ónaݱ‘ª-÷Zbm¸òV×ÓNUSI''¾>Žžl’æI=ývøÇõÙæ]”¶ÿNÆ?//¢‡Ç›£§Yõ9Cǧ›´ïÕI”w¿‹FÇÃÌÞÇeÓïÂk¼| 뾂6âåí/I!ŒwÍï0õŽ8ßðéQTR:¤V ÖórUÍ +£ëWÑiƒÞÅ˰›UU‹<ÃO) Ù´;†/g„Áä>Sˆý^ÝM…tŸÏ£Wç˜*>Œ´‰.iʸOý^ X©ÿaJPºÏ‹2*òææ=RÛ‡ån_õ³ó´ÌJúôIóßÿn Ûendstream endobj 101 0 obj 4228 endobj 106 0 obj <> stream xœÍ]YEÞçù-^ÖHžvUuuuõ#Æ,²Ä.`FË> !Ûã± ãñ5üï·îʈüâÈênc!4ή<#3ãŽÈ·«l¯²ö¿áïÓWgoÏ~lþ¯÷»uµÚm«lõj,lvíŸë³<«3^j+^Ÿ½8ûyusöv•×]§Íßýz»ß¯öYÛ îú¿÷¨i±z𺦨©<Ô͆¬î_4•öÍë¦âÅÕY?µ|•çù:/ÚŽV¯Îî|ÿåÅogÍêæãÅåÙ7m¹ZåP~Ö–·ëm1”oØ÷¯ûöãç×ìó»¶¼Y×RwïÛò½GÅfžè.[o«áóO}wå8»t´{m±XW›}žþ§·?Õë’ó*Ër<ãUßG=q¿rGV̘—oYû뾎ț<îË» Ê%«Âá4Àq4áç°zƒ» G}ÚþT®Ç/ûGØ]±^Æ+{Ú÷YÔte"pØ0ÝáªëiBùø=ËÆ*U¼Šó6`ÛÐPA_E<‰ÌõSÕŸí¼9ÛE{°ÏË¢;WçE»B´eO<^°ïüT¼jËûùvuk¬BØ—í¥ `ß.-ìÞ£M>Mo×näy¾oîF[á«ˆÕØûªï 'w·œ/ëcv†ÙM¾ gwÝwVÑ•Mm­±0¤„ÎøDøDoé\^²±ùX|nW ǽçòŽíÂÔx>`âtç*O´å]†IaÚò¹§›ðûó°À—qo=ßå{¬~wç,^³ò´g_Ç—’y¿ÇÍû’nã¥]³ÎH}¾ç—DÅMs•£fŽãÊAçÿbpÿa$H3fùv¸™Ý.k½Ûïk6‹à§÷á ç1]±yQÈ šg3œ×h=s /0hHPÆÈK«&[ü8úagpËàtß$݉ n4Èñ¦ºy ÀoÀ”¦Ž~ ?>É“ÿä£n<9ì%x’Ró`dHQ‚þÖ 8obLöäŠ]»u|l8¼Ægb·ú`œsÀ9®<¸¼¨2rÈñŒ9Á™àø:žÞ70W‚é 88®ã<ƽ¸³'ñ|’µJèœjÛó¿#(\Ç?qbOû—½W?ØÝø‘èH 1°üéæÍØëF™Ë\ Üð@â /²ëÍ•ïÇÄ=>ftOãYmÿ¦gÆoâ-þgOárNW$Þ¶kqxYÎÓ ‹m8Ð9»ãaºMX9‹ ë=ÌÄ ¾MåG¸ Lãš}\± sVí¿l…1M¹E„ÜÉ Þ$¾ÓÁ”Ç)»ûE?DüÄ:‘2¨òˆí48þ£`üô]ÿS)Ï&bg¿ï›ÔŒ?{Óû†Dÿä*´€£oÞ™D‘€dLA@ÄŒ“NƒÄ B¤NÁ¾`:î½o†‚Ö!{cÒ°ýGq–(Žmÿ\JÙ®LØžê™›}`4ˆpÐÏÆßDT,*ºÎ.ék؃¢TÛî*ü™qÜœ§…ôX’óÅÀFI•´OàjrÄl‰@£B(¾·c Ž+}ãd–·ì‹†t4¦G@]\Ʀ ýâ=yÈ zA/ ,rŒÃLâ¸|óøä “$á$Ép¼òïÉû È´¼ÓIú4qŽŸ¡NâÞD0’©\‰x; 2J·ñ+Y#™îtP„2çB?ˆ ã2ˆ`d™ÎC‘\lç:ŒÛ”É® ôfÝ4u¬òAGQRÃ<>.KÇöPs¬/]<ˆX—oçû¬9Ò {&u’¯ÈOàGŒ+b9]AD\KΕC<>uÆPöë2,zÎ{F -gK°9Câ¡cXº(*c60À·UM2òzYÕ²Ùî÷l/?™„¢Z<À–©Ýœj¨ø„ÏõEÝýPV÷ ;Å—³éÁÇ騯;«½b †¥`w+ Û@ÒÂL9Ð7»†á¯j­ÈÙS“O¨_ŒÌâ‹Í wPÖŠ-á=Û<ƃLW wË(+k+èu§¡ÞŠX”OÒêé’rCö»‰&²§2‘h×N”|ä¾4®ðIVUIä[Œ¬°IA­yîˆT±”|µN¸†KÝ@bÅžÄ2‹w*›)xMMeKRøt·@g©ÁÊú¬$â)SRz_÷O„°¿£©² ž÷¨½¨0åûý6¬=k—niñ1-¾•ÿ¬HK¼œÀó¥þ!¯è^Óâ%->óNÐ"˜²Îlë( Åümˆ™UR½biGÒ`•Žªˆ1°uö, ¡ï¤²æ91Cäçö§<×5‹‘ zÖy•ë¼’±AÀ·žV¼wû§˜m¬Ù€(`f ÆKYß ÜUuK;ýgÀúåN|ê!uâÔ– ©š†skòUÖp);gsE‹ÏiñWm1¤vãEj¿|É6ö.‘ô º¹ ‚W‡Ðßa–Dèd•»ð+pD$6À‹Õ‹Gù†'7T¦FÇ>çLYÝë%:Öº\÷œµê_l±«È(#y“q ¸G¥,ò©Vçr•¬ 1ǺӠ&Gñ*•:h‰üƒDf îøy|/-]1h²€‰¯ÚxYa®òµ>½Ìb±@¿CìÀA8ë£ËëþËhRÔÛVz;/¶­¡¿­òñ\[ÃE>,œ›õHä‰h?£ƒO2És¶²óm¢6G¢0#=v]BE0¦)!N¬K m‰ûä>©“È#ÔOb¿‘-¦´¦|ó¸ß?²(s ô¼‚-͵Ó0œbªè™k´Y?w(2€IQä^žÅMIåâÀO¶#®É’A Ç„Üb–ªAÅ»á' Úü™aûbw UÑß\˜Oòm¬3Š@)yjv.וfë"ˆÇÂ*@‡¥ŸQʱ:r@ÙŠ«Ï[¯êc=¦˜pÏ|² ˆ‚Õ¾N—Æö;…ÇZáý„xiCëÌ- ºLóo¸O£«¬lFº¤ÜÙCüÒY(]”©’Ç*ª¦#Iòí´áïæh€„¼û±¡ì±·Ün·Í`%b¬ðÇ7÷-­ƒE=nœ?9]`°0`rTp,.£Ê‡‡ò¬­¬SøÐÁ{¯Ü¶–ᇬf†QÔÚꔂƒ8ظÀ ÎŒSÐ+J+$Üd\²q‚{/Â"vSð\€œ€08w´§äÍ`CYøží›Ã]ZñÌöÑÆ7üvÓ€Û³ §T<¶ÓSNƒžÂr Dï&JúeJñÁ—‚±€ßG…§æP2«â™#)%f§½Ö¼Ù|CˆˆãH•×çz#´P!$QG.}8E\¢d•ÔÞ©Êk‡£‚¾ LÇ9¼Œˆ0GÀŽ ;B »h«H÷.U-X¹LO”÷;ª¼~‹$Ù L;O2/ø_Iç QF”ßGAâ>+èsàHH‰TxÔ§GB´t,‡;°í³§:û¼t@-àxé²yu*©}%œ$ˆ‡`a£ÚÑâ%åÊ:&æá}/‰jÁð€‡›9h0þâ4Æ-·¹œ˜¢è…«Š€£-ªaq9›¤e˜1<æ¶‚/É–=ÇX7Û¢(£iŠ CGÖßï Ä"FEþqÃÍGÌo„€U ç†×ÜDŽÊJ÷ 5Z|мãA£’–݈µFüÞç6õĨÅâÄòÎÔ„oÜÇÏÉV‹òOÛu<¾q4‘•Ê~Šjƒ4bÇö]“62Uõ®9“Ɉ˜Ÿ-‹p³±BÿÇöDLâ`§^0û* ±0Ó…yAõý>vÜÆ,«+­ŒÜ1èÅ! Ïí~Ô©%™2F‹C·×„õ&GÖŠyáèZEÇ0æSRŸðcêôñ"c‹<ðý”÷N…¯HBj‘vÊcÙ=A„t” "–½¹ Ö8ƾLu-jL9B]šËÐÙOFäs𰇜Ööš‘3\À•ìV’J¬T/`Oj¸ùqB͆3è°þGó,=QXùN5Þ”ºóó†â·¾”¸aWˆi!ôÆYk>5ÕÍèB¾ØôÉ@Fën÷ªÓµÓ BÝmÑÄ}ùô©'°(6D9  ” ÁÂM—1Lå4=ú+:;nä1ˆ}2–ÆO j£N÷4Ø$3Y³ ˜iÙ,hp!cv9ÙñÆ¥RêVÒe<íì´måj5¾©I°Þ‘Ÿ‡•0âþ™IññèèIôMŽßWAÏ1‚ã—æXJe-°$$ªw-½L’ ÎÊ?SLPçy6W#à(U™êj½¾`· ë¡qË`åÃaå‘ZÜoK3`?T}pU×µq(MpÕüÊ….ÙÑR‚•*ÞˆÑÒ8p.kc¤ø¥fJYHMÓƒø¢I%÷U™ä YûØ|PK Ó!7(à‚P´Èö¿?©•ÝèóŒ™I’´E‡]à©] þã|#:2÷iñ¹‚j‰/ÿ®ºÜ%^ÝcqQhùA’¸ƒÜÚ~ 5´f¢*’© b/( ZnxK|ö¤©ŸÄI·º˜qÔ˜òêÍ9€G`,$*ûÑ*ژnjÐ%I¥²//¢"IrñjzÃbdðUÞ†Œ:=>F»îw¦ã“²,PK[ cÄÍ;î¤÷BêªÍÑÀK~™ ÷…ÚÕ¥Nœ¯£c»jôq E¶í"ÿŠlTŠá¨è2‰A¹Â"ƒ@ãÅóˆ=:”íæ¬Í¢ŒšÂ¥snÅ{™,õµž× C¯Ç’oäÔJ󉤑jRH`:Ô} \°Náû¢p()×ÖcÌÄÉñOè¼pP–e[ .Y;qZpöùš*éDtAôåŒFM±G‚¸H_*LÍÍb†äì•W ÇÀ™„c[;|X÷`¹DŠ£˜”Ž ˜^Ñ%ÓŠ›ÃÂi($jñ|é¶ã  s½,ÜZMR~¸DÆHhâûC¾ñSœš P(Õž~÷^œ¿M|ÁéĨ«$Dxx¸a$ðEv6"0I[Ö`â¯È˜øñcN-™T,'‹åæÉµ‹ªøxNó£[鈞 x×y&äÒ7RwX”=¶nAḟ‹h«dJ¤(ö Y*C3ÕØÈ¬ÂµX²¯@«ïȲÍç·MÁ¬âYÛU’¤Âœ?³ ÜÇzžMãYÌÌgÒ|ìçDÉ›±ü£SË/ãkÜpi±}¢µQ$-Þ†íÝ–ÖXD—šxÚòT’¼šá;¡65’í ¦pÿ‰"µ°çƒñ¦K^ŽLòíAw§–{õ J.`“ð©Ð뢞œóÖe_`Ÿ± Æ…ßoœ»ïólzÙÔO™,€£{5WÅõ¼g+çºåTDì%oR¦åµ4BÜ£9³[âŸãAoGz4·¤0K ;úOM1nâ%¦o><úà3vòŒRo²,´è|Û³\ùÅ ò®Ð ”…›"z"ý@T }“L–grÒðQðf>~Ï`x¾¯{¿›’K˜HE.¿†Ÿ°ŽÍi’êvIÔ&_ŽÿYÖ;”ÖÐÄ; !\ožÈzÌpÀÃÊñh;àCõ»î§ ds9!ª¨äòqÁ –|h|4ш0f!Ü‹Þ}aâ‚§wæ\v¼‰î3bBqa4#ž,+ü:ç¡%[3VäuyW. ýXˆ€R•­ª‰ÊˆPƒÛ¡,&1˜Ž€$¨¾YŸ{¥C÷k‡~óù¾fY×%~Ýn]˜Q٣ϖõÞ±I0A‡%GU+Q5_#·©>è`y=þÕ*o9ˆùn~nØðöíËî«"oÈÓêâÕÙtgy¢¯Ù”²NZ´:æ®âŸÞ/i‘ILÔ`J`&y0•”®mNj{­¶^ ɳ6·p 9W’Á,é…6èL,{Vr±:)>ÞRq“s¨¢RÕRÉY'i’–á NšîÉR8jê×ë  Ø/ͯ4èXÍí"° Ø©š†‹È1sj<8n†FßâUZl°±<‹OO„–äçzœÔ07âæ>>s3ã‘ßÕtÃ;ÌgI›8u}Àž'G4 ±ÒyÙŸ*ä¨JHî+Äf:¡²'£0¹72]ÎwÛf½ºœïº—­NK˜Ÿ¨=ë„™™oRÚ*„¹üDt9&JüÍ­¹ä@•#‡xBq2|ãá>{A{‚ˆø¥¼±žªª$—ÉÒí8˜ç vÿZôB‡=‰ÓPß p:§Â%«LúcÔÂ.b0¸Æ&á„üŒ•ŸÍ’Õ¥ÄTÿ–y×<Ç? ã ¬l —˜Y8/³ðá¬%ø&g¤¡$±#èEmV´òt„*£3nu°\r¸Þi0NP¾`ãÛ!o•Гó%@ï]“¸&ixéäÈ®ÎC¼“Ú¶Ü‘²1íA{x·ñÐ|vò£tXÛh<óŠ´F4Ñ›©Dʤws†_Êü+æ¦(e;ÁcÈpãË®›®‰²¶ó,‚ψa´/×5iä‘b= ØA 9”™ΊõJT’S ÌAàÉÒÊ·Ñ{éÄK—wC‚„oiqOrH«úøt…ªñµ^9åõ§É#AÕÝ©FŸÔ‰¨Þ:è%\qÉÞÔ(Š…XeÊ…ÜK!Öê­y›þŽÏÜÔÃaf%é6ÊUEîEÀÒð‰ó‡Å »²C ä5žŽ+û¼Ü•¥:îÝ ÕãþÁßõßCëA¿iÜ?8Å3†m‰„T(ÍèûUk.pI™Û(m'/Ò¬|G¨ ¿9< -994/f˜T7§o…å±÷7ò6Ü+|>›dŸ¸}y–\çÏ‘çbAûݨï_yfó¼EN3n¶"z¹x¢Ò+U€º‡qeé|a‘aLÈ]‹Õâ/éÅsiöH/¢¼íõ(Sý*>A'3Ôiùœd¬$úýz‡¥› Ç#G„wîðS´y 5¸ûì¹C¹v_›ÆÌ ’+Þ9 #¨e¥E]Duï70 ß+ Xý/ x0ŠË¬G›@Ä¢-ôf—Î͹@îXÊó¢nöfjѦ”a„¥ «»ß¼™ZˆævhBÄWž¨¦·~S)Ö› |–—Àn,ïfb#û …Dœ]ŠÄ²2ï [Ë¥gm$žF›/û±V%oá¸%Ü×2Iþˆ«<¶õÁ·ÇO– Óxå³T’Ç UªZÂmü“<ß(yhª§ñ„Aßl˜_3ð]ǽ|4!Ê÷àä]Œ|†·Ñ&`½d]ÜØS –÷ÑØp:ÓÞ;Dûi`YïûVu€¯bÌ f Úѹo.V?žõÖýGßÿx÷üìmsMW]©ÿóôÕêþEs‹Í|G¯€}¶ÚÔÃãe±KÀŸ=6ÞWa™…ìÄ7rb9Þ°2dIbÇ¢ áñþ&8ýñ¬ekF, f%èïùÔºÙ´Mµ[Õu±ªVïž­®ð¶ NƒnQ×-ðB?¢ äK˜œë͸v h­Ž,ç»ÍÜû~-g¾©Àˇj¶®âZ`ZyÜ0' ÝmÊjUn‚¸éZ7󨫪\½YÕýo?6ÿýcSëendstream endobj 107 0 obj 5839 endobj 112 0 obj <> stream xœí][sݶî³~íNEðvȼÙq’fšNE¼dÆcK–,[7ËŽ]ç×—7Ø» ðHª:m&“( A\‹o¯ÀyŸd©I²þŸéïÑÅÞû½Ÿ»›v›Öɶª³äŠmÿç|ÏdM†¥¾âùÞ›½_“˽÷‰i†F»¿mZµmÒfýÍÐþþ1eòìªë¦ï¨«<Õͦ$O»Jm÷ ÍšäðdošIŒ1©Éû†’˽G?=>|»×¡é^ï=ºîËuš—Sùu_®Ò*ŸÊ—ðþ›ñ{ûú ^ßôå"m¤æ>ôåýƒ¼XºÍÒªž^ÿ26WÚÑ=£½í÷Å<­‹¶#Ïøèý£&-iÑÔYfø'cíâéØå–ÌÈ1–?Â÷çcÙí?y9–·N•c¨‚tšèX8ŸàÀ‘V×|“n¯Gý£2µ_œ-ZÚ@gþÌŽÆ6ó†ÎL$ô€„˜«iæû>Ël•ÚŸÅÆ§ ³ì Ñ¢2måþ ²¨GõÈÛE·çòž±7¥É{ÖÞäý 1å„wúÞ…ò¸»¦Âçq޵%æh,?²-ü‚õ/úr»”Ïàý¥;|úøŽ9ëÐÈ—EyãÖg8{jÂÖ¸v«[LrPƒ–鎼Ÿ˜>“¾?÷ÛOM~b¦3/ä͸K³F™;îÀ¹|̯²ýü•Ûֽ†Š pСq~` ˆŒtw (Í8Šk<–[*¿bÖ4Äù¶míÞM¢Ðg¥Ñ×~;̼C3ìè²ÀPi,832Ë´õÁŸÓÖ F» ú/eª¶!€Ý!kÑmÿdÓýÉYüùÝmfz kornaO¦Í\ •+·²q ¹E%áKfë H{ö **PÏ£X¨þ ì¥ç?ˆx6Ï…YKBÅc ²ÒAN>étÓNHZzÓÿO›¥ER7£¦ú—QœÖVœÎ mVv‚¾«Vô⤯9HÆEÃ;£ÅcZüH‹ohñ…ÚÔ-žªßÑâ¥:ŒLË®*a²¬[ÿ);]ª¯ð ”¤ñ À±Ê#¬’Þ <Ø¢fÁ gácTcpd„uøž<‰¥lå2-n+3XM#€’ØqÐN(nÉD Ø]²ôó%nJ8òKŸ*‚ÚÁÐÚä¡ÉDÍö®îR³~¯˜ö‘Š•ÞÏžªè^Å[®öÙ‹ Z*©ß3š,Jk€¦'Nb”¬UÚ‡q¦KHï£ß`«u{`Ñ(B*´“†J)^3‹ãó’ð±@^ j08pððÐ}œÃÇhJ©îº ȶbÖ]YÑuŠé%AÐ5/*¬PrTÖ#Üá!3ˆ! åØ °ìÃêÂ7<GÊ#†`“lÎ}Î]–ˆ¶¸ç ¨fG_-ãbVAH»‘VØõì¾v€É®¨óˆniRJÇ–²«Í9«ëÉV+Á‡+ŸåâÈÄÌÜ’Ü´Ívzd­»²G ‹ËQÝ}/î„éBõ2d‰DÙ"E6TÿwZëTþW´–˜ Ô¦®iñ5-Þ¨ßêÏKZÛ]# f ~ql°vr^ÊB,$lïʾDL.1âʶj¶u¿YëÄRzžhÌøœÁ¼x¼Í&mQÓGåiðmçZ /5nÆvJ¾ f,ó„–G/ýfO£:‡ÞG‡gl\’'þ†8ó[ŽóÄÞ>¾Âì=†IÿðGnÚ‡¸^p ³€%‡vƒâ(L:uU€¶&÷½°ÎHîÌÐ`ªv®a ¦jڎ݇š [€ûTW.Õ·+}žUŸ*±¨ln€çÕŸ?!TME­SŸˆŸüb74‡¹ñ÷ ¬WY}¼ŒÖn~›,%„¡¶‰Z¾¿mŸøß3>rãë¶×YWaº-ÝžÆ`I'O¼­Ï€š(K䑜˜QR 'Š!âºë²v¤NANC»a‡¶†¤K”mþD¶@ @*í&N0Ü¥ìb#k˜ºæhØ2 ÆpgÆ7<>Ší¹|Ý…ijdÅQѼqD%qG„¥JGÁÏ0eÐ:19Î’¬£‡z¼¿N5õVIf§8*Æ!X~}cC¶H|B¬ÖÆæ&ÔèP„)­±Ë£LDÌn §ˆFWeòp¶µÈŒ 3ÎBf JJo‰ÙÑ+#¤)€bB¿]˜eÝÙ|%/Á…_õeäšë: g;84iízeÁàÀŒýÉê‰{\ý¯ ƒ¡AGGÈø/пå”ÙPh¼éÃZlH ÖQ/‰!ì.”܇õ39oѤš sÇyt,è9cyˆø”8˜˜è”ÑfLN­E\t†n”E\Tn\xNp(Bžžt¥6Ž{ð¶ëÛ::§Åwê·€1ŸVÁƃ¸õQÈKÊåíbö5¯qÆdì æ!ùTP’Øýewvœ‘—Ëuæª[ž ã%_³lr¦‘PB5ãÜV-™8K, ‰3]™¾&e!`Ç3“ŽM2† cÍk1+Ùê“ø +±0ŒM;Ž3¶š°@'‚M&󽨬h|¯¿ Ï3?Þ=èÙñÈ¢R^÷ÐÜ ¡6®o{¿ê¶ÐÄ«ƒ_˜çûŒß™¢É: 0y—àØ|Hõ`bü‹Žg„ÆDZ„ÐO€”zÇæ" l¤¶*}x$gœ†;_˜ŒzÄZNºq|ìuÆœÔâtݱ¦9b½ «=|nÅ*ÙP·u~25‘¡,÷;h%Ùâ¹=HžI–üü"Eea¾ùFOýi÷Œ²­¦GsΑë*ÉmÂpÁ3µØñÈd~Á—ŒÝÇÞI¤©ð·IäÚÎñRè<$E2¨E‡ \mQzáû…ZL"ÜÁ-â0œ"©áÒØMŸ…%šQ²ëdŒ˜Ö y//å…[Åx£ ìc¨›­élDz1iîZê…g©oÛ^ûX*âFBšüöh’‹$ž™™™LèÃóÔ{Ì!„SqáâpÇá9. š/ù§b•÷Ò´>HÚò_µ:ä[Vj\ÝMÞ´ýÍ ‹oã» åÀ‹Â;éÛ^\h'¹4Ìqn?FmHº)2÷b˜ÐQ–Ï# 2²;ÍÂÂÇT ø¯ßÐ×ó1—§1§ )‡ºp2_ŸCïï ;øü^ãÜ>éƒ?QÖÕ̲ŽPþ¹Ö‹“gUïÅéV¢R½8¹Pk¨è¸q 9 ”Ò?Ý qb”ºAF-æÀVÈæÛ¬ß›¼NÏáûYZù=^ÜèbôâÿxéÉ24'íË·2JEÑ@ÿ‚úC=È¡i' 8¤„RßJ-8”>j¢8rÔH—•"SͼŽêG›,§3#ü„2wœ°+´z[¥Hˆ²»£d\¿Ñy4†“‚SùéÈÒ-3-’F‰¢¨uCNž¯‡­(ÚJE’“­T”Í ²/|Å’¨q…ˆéTn¼—JÂ/’^à zXM¡I™EQ¤¨¬ŒÄè R$t¶\»³/ïtƒ(¤ÈkjJ‹ÄÈóáá ÿ;5!9àòUit^"¡ ÷ãÐí€Þþj÷¿ÐúZ²vꕉ"k6pU_™X%+Úç(°QÎÙë2%ãß­h ÷±Qcɘ·mº!cÞVSPòA©ØÖ·aÀ¸3 )›ºûo )Óï›ÿeZ²\¸1™Ïóµ6-ç“9!wŽp‡Š+¨@p&'!ú‰xëj(2%Xb{÷|ökל²3{Ç~Ú¡AVêGƒ©Z²æ;×[@a+fUSv=ú2+ Þ]w-Ô¨¿ìͺåiA" ›(¾œó_œjš–jߎƒ±ca\|ÌpHvŒ-ÿ?p³Ô~¤½€}þÃHF÷vÌ)Q/ïíÁIÕCåoj·,élæ2(ªø±MX—î^øû4¯9…ç1 ÑÎÌÖÏøCÙt(ðØ(f`ñ ºe!ò&¾À5pwpØ™l눤 æ‡ âv¿ê@€¢qwI%FMµ–˜¹©"Ö¢á‘jxEtéqîna¤»zç„|rÙõ$O“­>›—¥ ^ eíÊ«Çiy¬ô( žî¸Ò8&t_N@qð3„IiG“0r=C'hü»³ý¼†¯|á-ÚI`3‡ÆêH.8c6W|v<½Œ„Y§ £L«v™@XP%}èT¾­t“:¾Œª¥æ«‘BÄÙ=V–‰71*ä ]ÀøÀôÞ‚%ÏýGßû+ýdä²ZžV¼™ ªEf¦–tr~8µËqÁ7ܾ²2„™¼Y+ß\Ã^aÂÆ×ÞBËÑg)Üž·BÌ©¶o“Ÿ÷FËÁ÷ÓÿÜœŠ¿0Ç$á—=aó<ïÿôNβ;‚çkx¹(cjÍg@\™ð¸Kðú渼ϵ7î0º:2´* l3ñ¥U׿¼õ¿ßáw3¡$%3`3)\^ä«Q‰È> stream xœí]Ù®Þ¶¾?O¡Ë诈‹(©@/⦴uâ4—A¼»µÏñָɃôy+µß )ýËIœ´0àß ‡ÃYÉ!E¿©šZUÿ3ý>zuõ檩‡FWáoU½}v5([µÊôUßÞToŸTO¯T×·l]ÖÚº6­Àí0°vF­pO[»v´;Ñ&0ÑžÁD›Àzèí ÿz人ÚU]ëšêÕü`:ÿóòJ5}ƒOñåÕó«o«›«7#?$†ñw¨=§Cãô$‘O(­«ÏoÇn|G#ò„ÛL2«î]H蛾ºÙï+¥T­´'T]¿ºúäþï®ÿq5òÐ/¯_}òÚ?»ZÛéù‰nëVOÏ7ðþO¡ýüú^¿õϦîsäÞùçOh³2Ú5uë¦×ßrvæîó´·Oý£®FñÐ_=¨¯mú¨\Ó(™ã*Ðèç.î….»dDÇøüÚ¿ ÏqØäûðÜE(å4ÉÑDMq”Õk™dÜë#²õÜâE 8Ëî)tð‚ìQ ©ûtdYá@(2®¾_Róû¦™QÅËFP» tA¨-Í™hv\°í1^]t3 b|{pª¶–PÚÅ8BQÊxiÚ®öãK1Ô}dâ䲺÷îYBŠóá$rÖzmA#ûE)ðJ5ñe5>t}­Ç^é:õ£çd~óE[} oáç6nürÖAú¬´„ü!hÚÙØÂ¢Æ¯žÅ+  Cú¬ûa‰Ë­![`û~DÒF–—ˆTu¤ñw©/c÷ï¹a¥±×1ò[Pß NüU°IÃ=P÷*?NŠ…\| Mîs9¿e£0‰ÛRÚkBÍ‘Vš ÃïxÈz˜MòðŒ«­ÌìÐzPÞtZùܼDŒÎ¦œ¨"Õ}·zÊ·Iøx½?†”úž žlq sïŸsÅ "¶´Yùš=ÖA˜Áp¤B¯¯¥á”½!æ FW­iîsPí¬ ä ƒÍ?czß13rQSʡ֭ì}É¥Oµ*š#-éáåÆß„?ôA>71~âÿbf½ŠkT¼H2*os±½å;ÕÄ𘒄“dúdºa˜øzbòŽ„š'üŸRÂÄŽv ÄSÑŽID‚)¢¨~à‰Q*;2ò¶ƒ—Y"Ý0„ò„c=å¾Î.¡ Býž“¨<D7¹U³¶r¨À á`zJ6Þo§éïNÇ4b¤ÛjŒ1“‡IÛÕÍ쪱Š>@|ÄÓñ=ÁàÈ!o/­÷6âŶyœ·ò\–“ÌÙ¾Õ^Bƒ‘gP’ÂÉÖ±ðšÏ¨4^Û®tYôf¡|4cÒr9ížmÁ‚P¶Ù+;°1OçÖYRÊà“¢‚.­O1kξœ&‘R‚|SV«‰òñG©Öç¢X2bÿÙ"ÄIqrk)¬i‘>–—.5Ý—C¶‚yÚ¹¾qº…&©§H˜ÓpL_@zOy—8ßOÌH(mŽž*¦Ù%¶ŽACªöÛ»‡~Ùcg—Š3¿‡q"×z±]ç7ÒGëuÕ<ˆEm‘mÓaùGð§‚>]GÌ1¦&%|9‹¸] FÐpRo×.ÐÁÿ5Nœ¥ï(>$ìUD;¼a ÄÛŽîä°0})OôDݤ‡Ô?–Hñs|DqO,›ÜŽ_2áò//:æž6·ïÈÐ n(í_Ëð*·ZSÒ$7´È _}Üùç´/q¤SÀìˆD$„â–Ó)ö–-霘w(à.ƒò™ö!Æ@ŠSâ ÄœÑÃò<)!—($àG–‘Ö‚¶AッpÑÔÔöaê:Òn²&‚>~zæA%„^ ÎZµ<8šáFAoWtêüˆ×6§G¿TS2[XüÛ€s OÁëîÉ9ÚIé)Ž%6œ¬å¦]B-Gð†[˜´Gœ­L ²—9Z†nŸt±u,iã{¡c¾S÷ðC‘t-ŸX A†‡µƒ±ÎÙA;?yˆoE9œ¹MݺuŠ’xâV^!3‘uˆ7›y“.F ̨‚¸÷¤°t±•˜NØ].|lT(n ­~^î¬tnxoÆN: ¥yå¨T%Œb™ã|(ˆ’DtùRvwý³` Ë3V>Ùñ(Á¢-KA‡.¸ï’×y~ãC̽æ¡åð)œT¾z.ÍË$‰–J-Øþ3.¤œ` ‘B«¶Ê_ÂÎ.ð=½¸’ÈK‘iW…þàÚô,üé[I‰`§YlÛzá,nì'^»1ÀÁÿ{#: ³,iV:-{¹µÔIG˳8& 4n4þSBnvWê´|°5óÌç¦xIUÚE£+):Q›ê0FÍu˜_eôÍ{œ)H&î;ÊÝ‚%?¢ØÁëÿ–éoLù>ó7ÎÁÙç;*CîL½òÑ,ñKãƒëçcúì„èhµt„x‹ ñã*fþV\°ô ì1þǯF:îHûù•Ùƒi(VGË÷»¾|%sÏ–¼'™±~†v^ `šüÛŒÄ/uÙIÙ`N1Ïë”»õ}Ô®ë¬u,n„£)óÕ‡n¨5‡˜nǻ͖]âÉgã½°‡R8ÖüDˆ°—¼^Th̬Ðrbš œÙ$â6ÿæåcáÛ”•IcNæ[8Äy_Š™ixsä-—*–‹sé¾®¾¾ >øbúÇÛgÙûJã{@U@¨†¦2t•£¢ K?þçŽ?9.~^_×RÆ‹†–¹$?ŽÀ–ƒ,Ho¹R2Cï´Ÿøs@o9ø‹ôž-BíkdWõ½®\¸r¶©¼ˆ“®î{/¼XÂRâ~àÖ Øáé§æX´}§\·X¸òsÞÛo‡'28ßL>åX§¹)wƺʚ1#M÷{ k»>uAv)t¹§Øå*m œî.nGs¯”ÓÉÍÅ ÷§@¢Ù4N ÙŒ*1Ši"hÐÓ´þdFs„ZÂŒoXf@OD³³@³³šñÉ€D€DÓ5m ß×؆¸lŸ­é¸ŽL;(áD€DÓ6FàÓŽžÀh"hhjÉæG¨ácG Ñ ÑTÆ cW£'0>H4H4}¸æ|6 K H4H—¾÷F³@­{«8ó#”̦íâkàè;Bàr»<ëȹ^èÈyº&¹o>RóV A`„ò €@jn-47C°¤wRsÿ12S‡ÖŽ›7}s5 ‚6G¨×Ñ(­¨9©y;ÎüõôÌëÔ|4Z¡w£Þ;©y#]54L=*5j@Â4U 3†–¦tiÊ7j²N5i£ÕjšŒopzÐÙ7*AËú6 š5@KæšS P¤êfªnf M½F@%(¢úŒÈ (2à§JP¤êóG%( RZb (0@Ù†Q P¤êf$Tݬ‚$·Ì $TÛ™4e´*AUÏ*Hг Ò?T ŠT}Üå¨TŠœu„  êÄ«‹½ @‹“‚ (2à¡&T ª0þ9A T)€¨K !ÔU,®‘–hP ªX ªEªMàu‰Bµ ¼.PêÃP<*‚©)™«Ø.3©ÿIþ *jѨendstream endobj 121 0 obj 3498 endobj 5 0 obj <> /Contents 6 0 R >> endobj 18 0 obj <> /Contents 19 0 R >> endobj 26 0 obj <> /Contents 27 0 R >> endobj 34 0 obj <> /Contents 35 0 R >> endobj 40 0 obj <> /Contents 41 0 R >> endobj 49 0 obj <> /Contents 50 0 R >> endobj 57 0 obj <> /Contents 58 0 R >> endobj 66 0 obj <> /Contents 67 0 R >> endobj 73 0 obj <> /Contents 74 0 R >> endobj 80 0 obj <> /Contents 81 0 R >> endobj 86 0 obj <> /Contents 87 0 R >> endobj 99 0 obj <> /Contents 100 0 R >> endobj 105 0 obj <> /Contents 106 0 R >> endobj 111 0 obj <> /Contents 112 0 R >> endobj 119 0 obj <> /Contents 120 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R 18 0 R 26 0 R 34 0 R 40 0 R 49 0 R 57 0 R 66 0 R 73 0 R 80 0 R 86 0 R 99 0 R 105 0 R 111 0 R 119 0 R ] /Count 15 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 14 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀÇ"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¢€ (¢€ (¢€ (¢€ (®OÆ>-M6³²e}EÇ'¨„çßÐ~'ŒPƒ›²¬¢¼CCñ änÓ NgØŸ;œò}y8?âAö-+SµÕìRîÎMñ·¼‡º‘Øÿž•¥Z.Ÿ “¹vŠ(¬FQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEr~1ñjhѵ“+ê.9=D ÷>þƒñ<`(’G–F’Gg‘Éff9,ORM{V§á}SÜÓÙF’¶ãæÅò6[«}ãߜ׬ü;¸‡2i}¥?猤+Ž€{žqø×u ”â­³%¦p•«áývëA¾ç|m,$ü²è}o¦AÍ’7ŠFŽDd‘ VV*GPE2»ZRVdžó¥jvº½Š]Ùɾ6àƒ÷÷R;óҮׇx]ºÐo…Źß`K ?,ƒúCÛé}“JÔíu{»³“|mÁï!î¤v?ç¥yu¨ºnëbÓ¹vŠ(¬QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ\~¿ãË-=š =Vöã}XyK{½Ž8½Aª„%7hØQ^??޵ùfgK¨àSÒ8áR£é¸úÔð›x‡þ‚ù?þ&º>©?!\öJ+Ï´ˆÁäòõ{eŒ1âkpp½:©$úœƒøWyðܳ[ËÑ7ÝxØ2žÜXΜ¡ñ!ÜÄñW†`×ír»b¾ˆ~ê\uÿe½¿—_P|‚òÖ{©-®¢h¦ˆá‘»ŸZ÷úä~ hK¨éfþ!‹›4,pÏR öäÇŽk|=gÊöG“Ö¯‡õÛ­ø\[ñ¶°“òÈ?¡ô=¾™*ŠôMY{Ε©Úêö)wg&øÛ‚ÞCÝHìÏJ»^áývëA¾ç|m,$ü²è}o¦AöM+SµÕìRîÎMñ·¼‡º‘Øÿž•å֢黭‹NåÚ(¢°QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÁ|Eñ ‚1£Ú;,’׬8CŸ÷ç‚zqŽ ×›U½Rõõ-NæòMÀÏ!|3nÚ ásì0? ©^½((FÄ0¢Š+Quñ Ñõ1opíö’`7$üþG§ó\½2Š’³ô5‘á[×Ô<5aq&ï0DZ‹6âÅIRÄûã?k×%fÑg†xO^¿{f¡DqÉ” I™FO<+2»ŠHºÍ¥Á_Ý=¾ÅlŽJ±$ãÃó®"½zRæ‚d0­_ë·Z ð¸·;ãl a'åCè{}2Um&¬Ä{Ε©Úêö)wg&øÛ‚ÞCÝHìÏJ»^áývëA¾ç|m,$ü²è}o¦AöM+SµÕìRîÎMñ·¼‡º‘Øÿž•å֢黭‹NåÚ(¢°QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEs~!ñm¦{og¹^g‘<ãÉÆHÉ8ç8è?@j1rv@t”QEH<ÑZ¾%ÓH×n­|½‘o/2G–y\×> ÖU{i¦®ŒÂŠ(¦EøãydXãFy…UQ’ÄôP°øþDûûiÿ£º*¡¢iãKÑ­,€PaŒÚIÏ,F}I&¯×‹7y6<ø©ÿ0¯ûmÿ²WžW]ñ&xåñ*¤m–†ÝÆ,Øü˜~uÈשAZš!îQEl ­_ë·Z ð¸·;ãl a'åCè{}2UšMYï:V§k«Ø¥Ýœ›ãn?yu#±ÿ=*íxw‡õÛ­ø\[ñ¶°“òÈ?¡ô=¾™Ù4­N×W±K»97ÆÜ~òêGcþzW—Z‹¦î¶-;—h¢ŠÀaEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEÉøÇÅ©£FÖvL¯¨¸äõƒÜûúÄñ€jsv@1ñjhѵ“+ê.9=D ÷>þƒñ<`(’G–F’Gg‘Éff9,ORMHòÈÒHìò9,ÌÇ%‰êI¦W«J’¦¬ˆnçµøCT·‡­¥,Í4CÉ”±$—P9$õÈÁükn¼oÁºÿö©ûæÅ•Æ|.HÆv°ïÁ?‘<ŠöäIcY#uxÜVSÀô ן^Ÿ$¼ŠLç*ê× =¶“2@Ñùòḓ,Bƒì6“לAZ¾ ðU¥žž·Z­¼w7w•4yXTó·k½êONƒ¹ iÿìf—eýŒÖªHãq(ê[€@t»{+»{ûH®­%Y ”nG^‡ü·jÁ×|¤êZ|±ÛØÛÚÝo&H—Ë»nÚ9¨<Šá¾ê×ÚúéÛ™­®Ãe7p®váï…Çn£ÐP¯QX~#ñ=—‡>ÍöØ®$ûFí¾J©ÆÜg9#û³uŸiÚeµ»E—77¤Ë!v+@sÎp3ùh®¢¹ xÒÇÄý›ËkKÜ;¯ÝnäHÀüpMt·vö’Ý]ʰÁÜîÝøŸnô=ç·­RP,ôɦ´²ˆÎ}0qÓœ×MáïéÞ!óVͤŽh¹h¦9_ï ‘ž=»õÜ¢²¼A®ÚøzÅ.ï#™ãy@D9 žäqÁ¬‹ßéVº=µò¤Ï%Ðc¹À”•ËrB®WçØu”W £üI±½»X/­ZÄ9 ’™ ë÷ŽÑÓžzó€+¤ñ6¢tŸß^¡a$qâ2 ¾U8<`(?Ä~3Ó´ Í´‹%ÍÞÂÞTXœ|¡‰DÁÏÆH'8â€;Ê+^ñ6™áõQ{+œnH"]ÎÃ8Ï R3ƒŒâ¹ýâMíÚÁ}jÖ!ÈT”È_¼p6Žœóל@ÍÎZxÇO»ñh±Ãt.VI",Ê»2™Ï;³”ö®Ž€ (¢€8Oø?í~f§¥Çþ‘÷¦GúÏVQýïQßë×Í+èjáKˆï-ï%$0L¬ÎݺgÔÿ3€@: á¾)ê&ÛD·±BÁ¯$Ëp(˜$àî(xô?Ž€uwPñAwpÖEÚk¬(¤îl Œ.æ<…Á<údo|SÓΉo|‹YɆäð =ÉÜqê>ø_N—EMNòîæ¹Ü&@Ɇ#€z’Fsøùçþ"ø~ÓFÔ-î,‡—æòaåF\go±ÝÓ·ÓÐ|=ñFŠšeäñÚMm¸«ÌáRE,Oô œcññƒñ\·×µKK-5Zà[A"r%v*0 u{çŽ0HO¯ßÿiü+kÃ'šòC˜ûvåÄŠŒâÚ¹‡þ¶×u ™/—̵¶A˜Ã•,Íœtìnãœ{×]¯Øf|+k3”ñØ›·aÌŠ_œŸâ'Ú³~ÿÌ_þØÿìô¥â¨-<)àÛë}5d…o¦ªçxRÊ ·8*êr.[Á7³¶žmpÆ÷lû&…¥EL‘’sïÇlœöŸ,÷Â’<{‹Zȳ•UÜX ©úœûWà› Þ[O¸#Kµ}èóLÑ#&À!€È9÷ç¾*xÚ_Ü]ÛÜx}”Oq´h¸ÆÒóœzzõêüE=Þ¿ðÎÖö‘™vIr1ƒ \«œ/Ýóvã•«Màm;RŽÚ--¯bÆešÞåÈN8 óa¯#ç uÒk:…|;c'öeõµ”„ªDv—ˆœ¶ÎO'©ÇCŽ”ÄxWÇ) é±XK¦¬‘‰ 4Ñ>Ö žIù˜}GÙ­›(|â=fK¹$‘n®¹6“·’¡²FÜe‰çŽw=%ÒôO xËO7pÚÿgÝÄÑZɃPÛ‚9 9Ï<â3³vá·=³Øü}ëKǾ1´“O›JÒçó¥—h–hŽP!ä¨`y'€zŒ:ÕÏ…úMÅ–—s{p­½)å£. E ô;nÙèhŠøƒÿ#¦¡ÿlÿôZסi>Ò¬­ì¤–&:„%iÖVåÔ†86äc¦qïÍyïÄù5ûgÿ¢Ö½º€½ãÙmÚ%{¥³BNð€0LÇËcÜýkÓo|%£\irÙE§ÚÀÍÄ™bÐã†ÝÔqÔóß­y§‹ —@ñÌ—Q.s2ÞÅæCwãn 1×ñ®æ÷⊚\³ZNÏyåæ8Îò8 x®cŒÐðûþGM?þÚ趯n¯ø}ÿ#¦Ÿÿm?ô[W·PEPEP ã_ý¯ÌÔô¸ÿÒ>ôÐ(ÿYêÊ?½ê;ýzù¥} \'|ö¿3SÒãÿHûÓ@£ýg«(þ÷¨ïõëÛB½½ÙÑæ”QEw’î>ž; i¯nQnˆNåFÒ?0kë×>]}£ÂÉÍ¿f•âÎs»'~}¾ö? äÅ«Á2‘ÕWŸ|TÌz\ƦU-Ž;p3ïƒùôÄñv’úÎ5¼(¯r„IfÛóñ‡ýêz(;.Ì#þÛì”ÍÁv> ð~Ÿsæ5¥î$S*(!ÿzßy{8#ñÀØxÃ^#û7Ûe¸ìû¶ù,£;±œä£ièÚ\6Í#Ãí¦B ±nps@žðE†…:]4’]^¦vÊß*®A(=ÁÇ$ôãÑ^Ú[ßÚKkwÍ£k£t?à}ûTôPžÝü-µyA³Ôæ†êK?z6_5z™ ŽýIëÚ´ü9à};Dq<‡í·c’TPƒUyÁéÎIãŒfºš(޳¦C¬ésX\´‰ ÛwÈ 0Á¸È=ÅQðç†,¼9öŸ±Kq'Ú6îó™N6çÀÞ5¹EÄjÿ ôëÙäšÊâK‘÷01ÈUàŽyëÓ½Åh¿tË |ÛéP‘NUYvF:•ÉÉàõ8 ô®ºöÒÞþÒ[[¸–h%]¡ÿïÚ§¢€<öïám«Ê ž§41ã•–!!Ï®A^:qŠÒÐþiš\ðÜÏ,×w1ÊI؃eX(ç#©#¯ØQ@u2gKšÂå¤HfÛ¸Æ@a† ÆAî*‡<1eáÏ´ýŠ[‰>Ñ·wœÊq·8Æþñ­Ê(ž§¦YêÖ†ÖþžCm$‚îä§©®&ïám«Ê ž§41ã•–!!Ï®A^:qŠô*(ŒÒ>i6/·%üËÎå9È;G·$ƒÏÙÑErÚÏtÍgTšþæ{Äšm»„n¡F/SØWSEçú÷Šô9în´ßh×öÓ2!U•È!ƒ¬»°QŽNiÚ>™à­!—QMN—@%í Z<x@ÝÏB  `Öö½àý']Ÿí1ÉÉÀi m¬À `ä~¸ÏœW1ÂÄ¡—WfŒ¹Vßi#¸qÁ÷Á ᵫÜx¾ ¨[hä•óÔ‚»8÷ËÖ½ž²´ÇÃöŠ6\îyd »úd€8‡õ&µh¢Š(¢Š(¢Š(„ñ¯ƒþ׿jz\ézh¬õeÞõþ½|Ò¾†®ƾû_™©éqÿ¤}é Qþ³Õ”{Ôwúõí¡^Þì‰hóJì>ê©c¬Ég.ÕŽôVhÏ#2Í{bHE‘p¾Ã*OækfÃÃ:6Ÿ'™m§Ä$È`Ï™ ‘ЂÄãð­Þ* aXóï x*ãUÙs¨ -¬Y7!R7Éž˜8òG†¢¼gGñ†¯¤ÇåG2ÜB;€X/@0rÀÆqí]=ĨNÿO‘0œ¼-þéÆ^æ¸e†šÛR®wôW3¥xÒËW¾KK;;÷‘¹$¢mA݉ÝÀÿ=k¦¬%f0¢Š*@(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šá> endobj 16 0 obj <> endobj 17 0 obj <> endobj 21 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 24 0 obj <> endobj 25 0 obj <> endobj 29 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 32 0 obj <> endobj 33 0 obj <> endobj 37 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 38 0 obj <> endobj 39 0 obj <> endobj 43 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 46 0 obj <>stream 0 0 0 0 25 25 d1 25 0 0 25 0 0 cm BI /IM true /W 25 /H 25 /BPC 1 /D[1 0] /F/CCF /DP<> ID &¢š <'§§Þ½Çß_&«Öû[[Xad,@@ EI endstream endobj 47 0 obj <> endobj 48 0 obj <> endobj 52 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 55 0 obj <> endobj 56 0 obj <> endobj 60 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 63 0 obj <>stream 0 0 0 0 77 69 d1 77 0 0 69 0 0 cm BI /IM true /W 77 /H 69 /BPC 1 /D[1 0] /F/CCF /DP<> ID & ¨\iééééë§§ÞÞÞÞÞß{ííííííííí÷½§wwjºª“P×(–)iiii~–––––––––½iiuµµµ†¶·Ú€€ EI endstream endobj 64 0 obj <> endobj 65 0 obj <> endobj 69 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 71 0 obj <> endobj 72 0 obj <> endobj 76 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 78 0 obj <> endobj 79 0 obj <> endobj 83 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 84 0 obj <> endobj 85 0 obj <> endobj 89 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 91 0 obj <>stream 0 0 0 -53 71 -20 d1 71 0 0 33 0 -53 cm BI /IM true /W 71 /H 33 /BPC 1 /D[1 0] /F/CCF /DP<> ID þM@ñÿÿÿÿù߆ÿ€€ EI endstream endobj 92 0 obj <>stream 0 0 0 -1 51 52 d1 51 0 0 53 0 -1 cm BI /IM true /W 51 /H 53 /BPC 1 /D[1 0] /F/CCF /DP<> ID &¡ œ6_ÿÿÿòÞˆ.?zzn‡§§§ÃÂééÅáaé“Tô :,7 °ÄBà  ,0°ÂÓÁ„< ðŽˆò°ÃÂVÈ[°äÕ-®Úßamu‡ÚV¸X|lÿÿÿX€ EI endstream endobj 93 0 obj <>stream 0 0 0 -34 24 85 d1 24 0 0 119 0 -34 cm BI /IM true /W 24 /H 119 /BPC 1 /D[1 0] /F/CCF /DP<> ID & ßZÖ––—éikÖ—ékú_¥ÿ¥úÿZÿZÿë×þ¿ý~¿ÿÿ×Çÿÿÿÿòj¿ßÿþÿýÿïÿÞÿû÷ûÿ{ÿ{þßíþýïÞÞýï····{Ü@ EI endstream endobj 94 0 obj <> stream 71 0 0 0 0 0 d1 endstream endobj 95 0 obj <>stream 0 0 0 -96 71 -26 d1 71 0 0 70 0 -96 cm BI /IM true /W 71 /H 70 /BPC 1 /D[1 0] /F/CCF /DP<> ID & Ô|¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄ”ÿ“Pj> _ÿÿÿÿÿÿÿÿÿÿÿÿÿÿþ  EI endstream endobj 96 0 obj <>stream 0 0 0 -34 24 85 d1 24 0 0 119 0 -34 cm BI /IM true /W 24 /H 119 /BPC 1 /D[1 0] /F/CCF /DP<> ID 0Üš§·¾Þß{÷·û·ûÞýþýÿíÿþßÿ¿ÿÿ¿ÿÿÿÿÿÿÿÿÿúýÿúý¯ÿÒÿý/þµëõëô¿­z×­tºÒ×KJ*ª  EI endstream endobj 97 0 obj <> endobj 98 0 obj <> endobj 102 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 103 0 obj <> endobj 104 0 obj <> endobj 108 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 109 0 obj <> endobj 110 0 obj <> endobj 114 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 116 0 obj <>stream 0 0 0 -70 71 0 d1 71 0 0 70 0 -70 cm BI /IM true /W 71 /H 70 /BPC 1 /D[1 0] /F/CCF /DP<> ID üšãÿðáÁÇM`xaàÁᇃ† x0xaàÁᇃ†<x`ðaáƒÁ‡†, X °`‚‚  ,, °@°‚Á  ,, °@°‚ˆ(PP ¡A@@ EI endstream endobj 117 0 obj <> endobj 118 0 obj <> endobj 122 0 obj <>stream ÿØÿîAdobedÿÛC  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YÿÛC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYÿÀMK"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ôš(¢€ (¦H‚HÞ6,RUŠž}ä}ErúÏŽ´ý+U^\—!2'xˆýÛvPÞ>¼Œ{œÔG"KI«Æà2²œ†¡¼çÄŸ¼ˆe»ÑšIüÆÕ¾fÆNvøãƒÏ’x¬_ø©ô š$º|›™£Œ.årÌ3×îãs]®„' Òz¢og©ìtS#‘%$‰ÕãpYNCЃO®"‚Š( Š*•¦©kyygo'™%žÑ)t3gåϨÛϧ×8i6ãß]Y^/M—ÉeLÏ*˜(Èã‚G<ŽF yìww1Ý›¨î&K’KyÊä>OSž¼ä×Añ !ñuËȸY’7C‘Êí ŸÍOå\Å{XxESVêf÷=kÀž'“Z†[Kù7ßÅ— (xò9㌂qÐq޼×ñNOñ4¦#òÝ ¸+ÏÊÄÝùÉþ8íZ ­':µÕç”ßfX FNÛË)Ç¿ðãÔS¾*]oÔl-6cʉ¥Ýž»Ž1mŸ­sÁ(b9c°úžñaðûIosKc).B½ÈÎ3œAúŽùõèäIcI"uxÜVSÀô ×ÏÔø3Å/¡Ü-­Á_ìé¤Ý!Ù–CŒdcè¹ëÀàg­bpÜþüwÏa¢™‰,i$N¯€ÊÊr„}yEœ/޼\ö úVœÌ—D:nžX# /¹¯nÜôâ|+®`ké¢óbt1J£ï$¯¿¯ÓŽ£Õ;ñ<š,1ZXI²þ\9b‚G“Ïcõ#ùÕnj¾+Õµ}:;+¹Ôħs”]¦^r7cŽ;¾H¬:¦îK·C©ðgŠ_C¸[[‚¿ÙÓIºC³,‡ÈÇÑs×ÀÏ_a®Á û'—©ê±ÿ¤ýè`aþ«Ñ˜{Ðvúôï+ÍÅJŸºTB°üQáØ†¸Z÷Oø”x«Jÿ–w¶eýÔ«È©ü¸>†°á[hÿóóÿÿ‰©£‰Œ#É=)¯NðGƒ~Éåêz¬é?zªôfÞô¾½:Ko h¶²[IŸ ÉlKFÜ’ îI?6;g8íŠØ¬ëbù×,4ˆQEÂPQEVм7¿`U|¸¯)ŠŒœgåcŒíäôïÏ=õQ“‹ºÁ%MK@Ôe€É5Ú¯åKƒ‚c*~†½k‘ë¯iö­ví™å»¶ò‘vVÀ>Ý»óÓZãM²º»‚ê{Xd¸€†ŽFQ¹qœsí’qëÏZ·]±Ò)[RR°QEÊPQEÿÙ endstream endobj 123 0 obj <> endobj 124 0 obj <> endobj 61 0 obj <> endobj 115 0 obj <>/FontBBox[0 0 71 140]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 0/Widths[ 0] >> endobj 90 0 obj <>/FontBBox[0 0 71 166]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 5/Widths[ 0 0 0 71 0 0] >> endobj 62 0 obj <>/FontBBox[0 0 77 69]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 0/Widths[ 0] >> endobj 45 0 obj <>/FontBBox[0 0 25 25]/FontMatrix[1 0 0 1 0 0]/FirstChar 0/LastChar 0/Widths[ 0] >> endobj 10 0 obj <> endobj 11 0 obj <> endobj 125 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 77 0 obj <> endobj 70 0 obj <> endobj 126 0 obj <> endobj 22 0 obj <> endobj 23 0 obj <> endobj 30 0 obj <> endobj 31 0 obj <> endobj 127 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 54 0 obj <> endobj 53 0 obj <> endobj 44 0 obj <> endobj 2 0 obj <>endobj xref 0 128 0000000000 65535 f 0000063804 00000 n 0000111231 00000 n 0000063643 00000 n 0000063852 00000 n 0000061060 00000 n 0000000015 00000 n 0000000629 00000 n 0000110891 00000 n 0000110955 00000 n 0000109007 00000 n 0000109070 00000 n 0000109227 00000 n 0000109288 00000 n 0000063907 00000 n 0000074056 00000 n 0000074086 00000 n 0000074118 00000 n 0000061244 00000 n 0000000648 00000 n 0000001345 00000 n 0000074170 00000 n 0000110514 00000 n 0000110574 00000 n 0000076353 00000 n 0000076385 00000 n 0000061412 00000 n 0000001365 00000 n 0000002814 00000 n 0000076437 00000 n 0000110647 00000 n 0000110709 00000 n 0000078620 00000 n 0000078652 00000 n 0000061580 00000 n 0000002835 00000 n 0000003818 00000 n 0000078715 00000 n 0000080898 00000 n 0000080930 00000 n 0000061748 00000 n 0000003838 00000 n 0000008632 00000 n 0000080982 00000 n 0000111160 00000 n 0000108836 00000 n 0000083165 00000 n 0000083356 00000 n 0000083388 00000 n 0000061924 00000 n 0000008653 00000 n 0000017288 00000 n 0000083460 00000 n 0000111102 00000 n 0000111031 00000 n 0000085643 00000 n 0000085675 00000 n 0000062092 00000 n 0000017309 00000 n 0000022491 00000 n 0000085749 00000 n 0000108187 00000 n 0000108665 00000 n 0000087932 00000 n 0000088168 00000 n 0000088200 00000 n 0000062268 00000 n 0000022512 00000 n 0000027143 00000 n 0000088283 00000 n 0000109435 00000 n 0000090466 00000 n 0000090498 00000 n 0000062436 00000 n 0000027164 00000 n 0000031782 00000 n 0000090601 00000 n 0000109362 00000 n 0000092784 00000 n 0000092816 00000 n 0000062604 00000 n 0000031803 00000 n 0000039130 00000 n 0000092890 00000 n 0000095073 00000 n 0000095105 00000 n 0000062772 00000 n 0000039151 00000 n 0000043173 00000 n 0000095190 00000 n 0000108432 00000 n 0000097373 00000 n 0000097557 00000 n 0000097823 00000 n 0000098072 00000 n 0000098136 00000 n 0000098352 00000 n 0000098601 00000 n 0000098633 00000 n 0000062948 00000 n 0000043194 00000 n 0000047496 00000 n 0000098725 00000 n 0000100909 00000 n 0000100944 00000 n 0000063119 00000 n 0000047518 00000 n 0000053431 00000 n 0000101019 00000 n 0000103203 00000 n 0000103238 00000 n 0000063291 00000 n 0000053453 00000 n 0000057444 00000 n 0000103322 00000 n 0000108258 00000 n 0000105506 00000 n 0000105775 00000 n 0000105810 00000 n 0000063471 00000 n 0000057466 00000 n 0000061038 00000 n 0000105904 00000 n 0000108088 00000 n 0000108123 00000 n 0000109163 00000 n 0000110455 00000 n 0000110801 00000 n trailer << /Size 128 /Root 1 0 R /Info 2 0 R >> startxref 111281 %%EOF uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/spi_boot_schematic.pdf000066400000000000000000002522251224274632000252170ustar00rootroot00000000000000%PDF-1.2 %Çì¢ 6 0 obj <> stream xœì½Ë²%¹’6ϯ8CR²: <"€˜Š”õL2¶®¤HûRVE³nøû‚¿—GÌŠ¹ïLVƒÊXg/b8^ŽýØ>ËÇFÿéÿ¿ÿñí_¿ý‡îÿòß¿ýçõÏvlµn|Û÷Sþù»üsÖþM?ÐþýÛÿýñß¾‘­}«ËÖ¿ýË·òñ_¿•2ûçq~Ôv¶Ïº,-`ÿÜwêgk‹éȶ~²A„´­ßýMûì=#õsŸ™%Z–$þû·ÿò?}Û>·mëó,£}üÈï?ÿÓ·e)ÎóK B¡dseŸë8—«NsžŸ¥ß’2¸ÒLÈül{b)–•¥©ßRr’IHbÿ‚”­Hu|ô` K\8ªâ¶ª~Ý?Ê~®7$·yÞ ŸëŒ#ýøÜ‹ JêûçÑéù±‘N‰¢˜í–ìõø§'½Á"~Nú¢ÚCûç £{Ÿ%Ç'ÛSV†Úç~fZÑ4Bšå]5ì“ÄF—ݱßñl”ÞöyÎ,@Ô2°¦õ-ûª½-½=Ö’rÑÏ4Êé!º©eD$ù`‰’í<–Äë«*ë£ïsek!çjk°¸Ô‰Ùs¯Ôéü”^>gdI“ãsÖLR$Ì GÒ½õ5—sÿlë%˜ÛùsfzcHªõJrU• T*%geèàFX+ AÂr@ž¾Ð^Öz…‘4\mDgfY­DÏÈjId¢vƒôn¹·J@%’ŠQ¶ ²f9¤aËiúFûFI Pq!'¹þºXµ ’U½… êDz’>2K‘0¬¤:²µ™td{êRõŒ•¡³¬þ9’Ž òô…ö@G«Y@²ÚçßgöG%~ß7ýs¥^! UUŒ jß´×á‡ßô—SÏÎ(Ó•ßV‘vî&ÙüìŸ×ßçÇ÷o̱ŠÓ G¸ñ³$¡ÏD› ûÁ˜RM•o‘€#šá{ó;|¿SukÔˉ“œ<„ ©¶’;?YÅ}ýdHùÏÀ÷%ëœZö›õNëÿ`$NˆIU–`d”HHâX^ô'‘Y±q}Ÿï\¼µ,×n¹©¥l\½©Ö-ÿoõ ÙÔ3dIô¹ "¬¥Þò¬¤".ß®d`˜H‚€a&YÚ·Üú-yBÌÝÙm$ˆü%ÎUg%Ñ¡ŒíËåq^†ÆgË´ã³ËÀ&l#¤9Úß³’ÛÆã‡?P·BîÖ=%×€s#‡z‹ ,@Ô²±,õ[ZÒo÷¬%<~AKÎÙÚ&}쿇íIœ¦nmYÞÙ¹>–±ÇÎ…ÜvjßêXàÁ rÐÀh "¬còçÎH£N"!«í92K´,,MýVó=V÷0h¨¸ò°ó˜ŸØ“”+£<ž?hh”€•d«ÁÊÐj´ÏL«êp€é€,}¥]”<Ößë‰J’Ù^n*y.·{?ZB–Hkø¬@Ìr°$õ[JÔ%%‰Ý+I™(($å³™´b9Aœ¼³Ì™Xæª Q#Buê Sò¬Õqâ*,_oõY¤)µœ×ëãÊÁÐÖÈ* eŠk̲àã¤Jï €Vì+g»6áf5Aœ´³Ì‘(<ò ÛYW{6Ó›:b(Ëõš‡ôõˆ¬†8±1ËÎz]CÖ$ 4ÅC EpцNš84©ëEÖ\î×™uDH’7V®‰m#« jâB¹ ¿#rH¡k¨¨U¤)µ œ)ïö×*®ßžŸ'ÖDF¶îUíŸBUtÈ+•“¢â¹Ý tþ°.††Vóð] i+éê"#[Ö#!%“Þ§aÔD|W©x+Ir¦0x‚$j"B&£³~AÅv’›Ž*’Õ‰_ô\H­øEÏ•—¶ƒ"¤d’Êêv]yNûžŠ}û¬YÅÅné{žMÝè&9~ø=¤íb°\²°ì'ÿe»8ןÖE¶Ú»íâýžìšò’ö½©ä^>{j‰½?oÒ»€å€,yTÑ{ZWÑ{c[@´Zëõºø¡¶wµYëTîäb€ù”¢‚† iü€¤¢‚]^Ò¾¥!­¤o™Ù¾å³ñþx.Ԁ෠¶…@2ÁÀn@–ø—­!íÓi[C2Û÷›­áK} Z6雬mÜhyïSjyÔ³ñ§= Ø Èÿ²g­Žw D+U^¯‰oÒ0zfWZ¢U/zæ;µñuá‹6Ï0¾Öß8K2I³AgFŠ,–*-CW’ö}h¡ÓIWý¨e¨_³³­ß¶r&þ¦…Ú=àbf$)ßS°É¢0(H-ë/(Hù:m[‚ Ìl#$0šö1•v‘78âLÀê:á,²#~:×I~¦Y»‹ ²•ÌR,+ëÁAç*ý(t®ÜÂá\ôp®²2¤}д?AÓiRc/tÖ¾:b¢ë‘”n9X:{‡­{vQPἿ¾©¥™FH3pѲ×cЩÇÒ;»È2©1XȤ}ó¿Ò¨: A„ÕÎC¾Œz,;W\ä‚v…¤ißR’~K§ÝØÜÁßä-âdO ÿœùqp ãd¨väðhø÷d5 O[Hªa/4 \N sA„2h´M6¹­ÀÔpÎëºÕàpÂ÷ô£Ýlô½tÙ²ËtŠÒ° 93«ZÀ£Š¥œ[ú¹UÐÏÒ¾ê·ÞCê— ¸jC@\@'©`”Ýr$ ÓA£$º!^.Æy¢àÑå¨8(H@Áx4…“Emâ.¸ìUÚ,ƒ ø”•8Ãw¬ç™á{3$1–k¦g¾àSá‰#Úúe?øŽýˆs|qv¢YG•Ì8#”ꮟG«yÚéx´jV£åóOî/›Â$t³ÁyP£%„oîõ–ð‡ ºUPÐÒþ“‚<»ºþÎ<+X¤nÒë~ЄÇzæÞØŸI Þa íásmNšçñ$ô™Ëc+~1xöÐ ø£§ ˆçA xó[Ü™åßî‡*+q€Úy·Â:ïA¯ûN»á9G<­ÀwÒºñ¨&~³^ê˜`$IˆH-”F¿ndyåçŽ ðý[äE™×÷ùžº:“zÏæ#G@tté$€ö¶lö=#¼À¤@̰³ I¡»³côo:¸ÌÀ–;<‡ÚÑdêÈií¨²€¦Ò 8ïe§á'BZÿ…ˆtqHzk§÷·á%£Û Ú“Žïÿw~Ýy 7›í^6~Ykû¶Ó¡o2í9Õ@¸Õ5Ö([Ñl÷Z¤¾Û/êN½‹ðGOAσð<æ·x­Ù¦Ò-¹Ù¦Ðlóÿ±ÙV›mÿ5Éf$I›í^謡üØl+ͶýòÏ6®ïó={‡Ñn›/Ík Ör8ËgõlÖ)8•è€Í$:çI³Þ¡·­îZ»‘€-û‡>“hdz|&ÑOpÅL"B:“x=çþ²56áS»+÷—2º»‡ˆx„Èz§:‚7÷@ÇðƒõÀOä¤vlp¶ÕcÖ#>æmä£ûÇnÏÑÂí…°æÄ’ˆgMŠÊ~1-t¸ôñ<¨Ïc~‹×.ßÜàlǦ œ|äÛò„+68 `ƒã¿±ÆÄŒpÈB>@ƒ¢ €‘ålp€Ç~™×÷Ñåò1vvâ#”Ð §{Lj?Šœ;-–A˜uv:M+g…o•JFbÉÄZfÖ³`BD>r0!Ê9Üi]ži Y e¨ñ$GªÎƒ€]„4õS#u®”VGîõ³÷Á§í²œ™sµP»A7Ä1Ö#Á²±4õ;:Òo''Z™èô–­w£ùH†NÄŸ]4%ÝÒ1ìd©_t´€Læ”;d"d“½ЏËç,ó -H9¸©Cj¶û!xZýÐx@–ƒ¯k$Å5)IÇs]‚Dd+%y+×Ñ I&íeZÍ¿§d³ÏÏ•¤ëIInˆ†· %2%ç²…ñ€,_*1ÂB7‹æˆÇr1’n %Q%dÚ†aÓÿõ a¡¤ Ý4œ Є È…tš‰¦:¢£ÇÄ Õ,&ŽõÚUH{m!ä½"Ò³ É” æþëAq@G Šã´@C E¯ õ5AsÑ´CžþW:Bt¦PÍ¢3Ýð~^é³Ñ°ªÿ Ldé?Öñ'õÑüADÄg R fØYoÖñ¥ú^¤ÑÂetÓIú?è±o|×?kÍ‹AD< b†ƒõÖïúµö1\£…›ã¦Òô¤ã~æÇ=¶+ˆªæ¤@Ìp°ÞÜϼÔcƒÆÙÌx†ÎŸø7|ŸûîV¢®·qðuX'½×óy͇_Üxàx›q„lyÕ‘W„"[×e)ClÕʠų…H„ƒ¨… ²iX6[—Š_ȺUXðgOÃË…Y°\æ÷x) [÷•-€dQÊBŸÙª•GG‹•- ¿ÑkaÄ[rBèÄ0l¶l ÙÊVäEù?1 [$“ŠØÃ°y)â¨QÐâÙ⤑ÔÂZ‹$4›ý]KÏéþì bY0–Åü/bÃòuH‹FƒŸyÙY|4(_‹¡¿Ñ kaÄ/_€N Ä…ç yùz^ì'‘ÿ±}]¾ˆÍ G+; ‚Ï& ¤$ÐZ¤`¡Ø¬xâR|aÁŸ= C,fA3™^â¥PlQ¼IÉXø3+:ÅëQÔâ7f-Œ8`º#tb(6+;HÈŠ7òb?‰üŸŠíGÅKÕ3•¯ Q|'_€Ï4ï±§žrþÜ- 9ŸîiÈ3°ýŠÏ,ø³§aˆåÂ,X.ó{Ü+â“osKEì•ÎÙÄG±â›Ü/§"žr3`üfðÅ'`Ä(․x܈•Ÿ'Ely±ŸDþÅÆå}.E\úAw+@+âH'«)J‡?7ö« ˆ9I"¦©ö3šh{†"ö_hºö4 ±\˜Ëe~[E\hÙ<q@Z:t¯ÑÅGþMÉELgÔqÇIãÕ,⼈ââ #Z~‘±çÅ~ù—÷Ñ"noÙ„ví`ØbÁ—‚eštC{BxÏ;°1ËÁz5„í(Ür;‚rô¥„èÀ])²íAómïa¡ããÇ@DóñãU©é(¦»$Ò5J(oH”ΑL^Ò0¼~O÷ñ]Œ„ä(«îDíu%P@ÇÇŸ÷Uj­‚`€Zó d_ ¦3XÊSkUB¸æ+³¬×ƒzmŒ }V÷"J' ÉÓkc@V±‚æU/l#$¸ÔÇW”ŒØKÆŠøLZ·Ò5¾C°AËÂz·’{)‹ÏJÔ,ÏÁÓ ˆÆ²|]+#øU(§1ª ˆx`FŠ˜a& "]#¡ËÄuû‡Âx5øU(éª\7ˆF %2%g²ñ€,_+Ù\8›f}Ǩ³®&ÂØYƒ‡H×ãüNRiÁîî1c^ ÇJzÈ4ïYçÆ×ýÓ†ÒúaD¤¯–#nÙYïý¾_l)½÷vZtÕn!ÉÀ”¼Ñãü¬ó6IÙ‚ˆvÒ›{œ×ún×Ñi!šÛFH2ð…ŽÛáÛ±I릡 ÛÎû‰<ÔaèјÖYÀЉ|ÄDqÒ%Ãp°^žÕYYØå ›O¼p®FV!•M‰w•tëI²’¥6®£p5um{ÞÈïH\¨l¬¸ˆº6vóµ#‰´Ûžî>gî™/¦®<ƒë”°ë”••!ë%ZÑ3`: K_iЉÆÞ;^LÍM$^ˆKâ¬:†]ç<¸–ºIð/¼–ºqð/$MYwutÓIúW;-ÔNÔqµ§´kÞ×—ÄY® …èb8D ï÷CõRÖ%»ŒkQÉÎãZ$“MYYܪ{£ŠlÇB ÈJ²âÎ!¯[ñe[ý‹/ðN|EI´\õÚÅ×¿í¨“þ>«“?SLdéÿYÉ•ãeä´ÀuhÍa¤Ã$µv§ÿÇóÊÉäs«t1 ¬Ò‘_KBž‰!âݵàÏ–„–3`yÌoqk‡Î Àž»J28Òq@rÀmÙ;¤þ-oyLùšf à;È®b¿™íz#HBLrˆµ•åC¦$‘,3úx1r}#qÎʹ+´}i™”Ð7ç,äÉÖI•œÃƒÒV5áêá¬Fµ‹ËË :÷+²ÄR,+KS¿·yÙ£w?WýcXĦÃ뜭&!§iCDz.|˜ÒXšòE)‰6–Ȧc· %>ñ³r¬10½êªi,R´Cª q~AAïPL1oøïH(Ô&€ï°M$AÐîø|ØŸ€‚Öî?TЮ©–Þc‹–òôñv[ÿ,=솺>o¯TÞ<©Š`YYOoÀ×lÁ1âãõz€W<ûšÿº.†]€<õ/ZÄ;*z`i¬¿a¹…"X˜å`½YE C‚€D*ò{)Œ—P¸e„4ý˽+©Ueö)³ +.•Hõ¼ÑK¯gÞOÏ}êâ_ ¼«&,4Þ“® Èý|ìR·ýÏ'itö ±,˜Ë"¼Á­ ]ôÛyH•¢å¼ 5 %¹wm×_Ž!ù9k:ËÐþf½ä +LYJhôO»#´f°cBÇ3c¿ñ쪑Ë}Oá¦ÊI‡±v7µNQï#ÜÄ<2–‡Eš£qˆül%sA»BÒ´o}#çyH€6ÅôƒMiÈ#xÔ˜Hk ¡*î™qІq«yÚBúûëž§^’¬*“€¶T’^NV f9XoV‘’èh)ttÈÖIœåK)a!Mÿ²P¥Ëw1¯dK|1ûcHÒ„YÏ”L–™õd^)ý|þ'Vø@“@\7]ó»#%ÚÈ2€Jú­@^'ýæ ¯9€¨&À2ÝâED¾ã¨Éïü²á.!«9quJ‚@³®Îî‚jªßvÔäG_7]tR·­óS«›]o«Àzìt$pÑOzUxîT™è¤!“Ù™BW“5²À Ø#¨7;át³IöI8¢™ žG|…[3ÙôÓsg1šl2h9^K²PÜpznÔij¦[ à;ÍøÊÀ!~39ȹ@b’C4”#“ÛBB|ÿyóO6þô>—Þ/‚VZ;¡% Ùº\cä$:à8V÷ŒPI´+¤G!+£ÝöÐ’ÞLo4g€.aZ¡ÝH¿‘`Ù–:¿øFNª`«d¶§Pÿ dçÛxȬ,!;b’8鉎a×I»NßÞÐqÛ+ŸF_yh:ò#:‡–<ùb+P$MY7utËiú_ëX·Uà ê¸N‘hïéHùk5#¼wI $»L²´oõ~ôÛ3éÈÐö\Çsh좋`!M¿Âú+r•ËCƒ¥w^Ú=¬¤ ɳœ÷êÈiÎ ÈÞÐ1 »‚ÕY~KkXÎÐY>~ts+øcî¼&CPa=Ñí ç‰7æñ?ÃcòhŸ H ®šÆÿ¼%$ØÈ2€:š_õÑ|¯¨7€¨$À2Õâ ľã¨Åïü²ÃózãΗI‚€¨ÞVÒÌzúeó–¤Z(B÷Á_öÏÒû*²ž›ø>ËZo ÏzÞïß¡°àýÃ-ÐUˆÇÂ- }&†¬ÿÆ/&÷9aÁž# G4jÁs™ßã–S¶ZI>nÏšH7Ð1´Œ9ÀÐz®´€kA/¯4e&2~3y(q@b’C4#Ffe—3€8–ý äŸm\ßÇœ2ÚTúQfçm}ô W‰xNEÔ-¨'Ýg„óÕ®np åë=A³BÒ¤o¹“f,¹+¯]‡-D‡•Ú…˜\ˆG›}N†ÚgANÕÙ9°§Ý°¹)´!¹€„ áSÞñ®€t Ïä¤fa×\Ž@L²žU}†¶ïICÎV——Ý?/€Ä 1@¡¢²~IÇ8ãgªÅY¼:rþhvº(9ôœ¬2åÉ ¿ÑOá=‘sÕ2k“8×h9 K¾@äëW4ô#@ÒS‘•vÒ ì´äÔlpÞª¡wDDŽD†ˆI¶Vi#|>nš .^†Ò̃šÛPq!t8&½-~×9~J×A@4CÒûTä䳦’)önìøíÚj3¤:ïu_è[ S޵‚uy‰û9xvß9˜Ù ½¹o‰Îo­wqˆò5Uë®wi»e„4}£Ù4­„‹ë{~_A¢¿5–wÉ& ¢rÞª#‘Ϭ#åjB‡‹ÏÚ%++C\XùLE*º½jî;íϦÊHKq§#ë¹ó [“/ˆǾKàÁ@Ú)ÁYÍ@ãM­‘„ Œ÷Œv¯¨VtxT­üšQ„~q¥(X ÈÓN·cªµÒZ\ Rõ’ÆPu§Úü;*ß?y«5èˆi,F’efYê·$ëÉg¯AE¡'© jä,èê,• -äé?Ur!ÅnrÖF»r©»ªHÿHrÀìç½:rG ßç:DÙ:µ“ó–uDHÓ7ZŠQ; 4" ì0aÒѬpžl4ð%±ÀÑ€¸f>ŸyCF°eUô œÞ6ú&OoÃÑ/X¾ë7µŽ°íÓÚ±Øå©_(òöÏßõ«-$YÛ¡[ˆÆqòû*²žeàØŠž×gJV¯Rqdãmfá˜9Ôž†>ë=*ÜæÚ/&ou þìi(â¹P žËü·œú-úç•óý<ZÇÑXÏvkrŽxÁKêÝOžò߬·šŒ ) ó“ë’Y#¤sÇ„øþ-ò¢?ü³ëûäS0Ak^ṳâÓ[FŠ0s™·H ]!=š¡ ?ÛçQï¶É-@l,›Oñm¡1çñ@Eïyc;@Á*BçŸ7…ú™/ÿžý\˜}vh$kãÓ Ä¾^oOßù=Ã91ûòâX˜¶pÔËô-4•Z­¢9}ðMsK±Æoµn|üŒÚEY¹0d=K4ÒrNqÁý¹Ò€\WC&]âëÊä+= }&ÂÜ¥éµ_и`„{ŒÑ<¨Ïc~‹[§Äêú@9d+§Ý¨Q]é÷•Bô!U€CÃ*°F.…âWü hh$€SÎÔ4i¬F(ÆðŽ @Ë‹þ$2+6®ï£C„5Ö`£¹!„‰E£ È¹“ËZ Y¬³/S²Ý© ¾ˆ$!Í"'#É2³ž57…æïrsCùâ 'ï²F€‚„q뢴 Ä94"ØEHS‡Áé±//SÑ®ÙòZeÁ솊«FóÜ]Bønà`b–¥©ßêúÖo'w}®"<Ûs9c{° ÝMÃÅì–Òô¥ ‹hÒfRHeŽÄN£ Q9ÏÝ¢¾‚šë™’hYX–ú½SçРºÕu]Bï¶MÌ®‰ Û)Kª7”Ëyú3mÈÓÙlWÒ'¼ý}é4ñ;²Úg¿hˆé¦¬7+ “àö¾0å=9 >wÝÇèSà¹$Bú%aÒVUƒ©Õ:úT6"2ݬ]B'ef=š´ucbõ‘Œ1ûm¤~ Ò K§¾}êÕk£OÏzDõÖS=7Öëµ&l­ÖÄü, ‚¢L×þ¥ˆXÇò/!- Ð{ ݳuÝ/ÑG‘]‚ÔN=)*Òêc×›ú3eƒwË90Ù pì&ž„>cV©Üö‹yÐäOX°gOBσð<æ·¸5[{n;­Ç‹"Sbå´qœ ²hÇÎ[Þ©üÔS, 3yQ`—ÓôM:“ Fæ.ZyBPô%Ë‹þ$2+6®ïó=PÝ7ºÑ.Χ®çÝ"ç3ÐÏÚuJC)®†“ýLrÔ4<^J$F’]"iÂw>õÓù §LrŸEít5ß1/Ðngzuù!9gŠ<]‡AëY¾:æû—*. Ë]"@iú jlÿ ² `¢†õVÙÞ6/Ð.w2¹Žy€çÅ-n=Aœ…˽vÓ„ëh—Qàû ÒiJ¢âõÆú•¼ K7d½QɸÞÕn£èu¹`´ p6 fhêýÁÎ{]É5ðäKÚè&"Þܸѯ$]cȽ#&‰sžè†ƒÅiߺ8LfÀ(ý"±øéÆAª”É-©xxÁE‰7Utë j¿ !¬J ®¨|Ž‘âœHŒ aa½WÃXÊPÖ¡‘oêfdK&¨)ѽÒg;á“^ˆ_|òÞO-KR¿§#ñÁošÙóõMƒu€, ©>ZÇW+jß÷*@{ÈN &ÁH` ÎI‚ ]&=¹VÑ{™¸ø0ºf*ªýÌÐ’oäÞ í­§]3ZwȳðUouÒe³ŠsGDz´(àKž€äˆÛ5Òëõt´ó\GÊXK¼"çÙ >&H²`4›„ªrŸjèH—äÖ’^Xhì” ¢ˆ’Ö-‘Þ¨$Q÷¬$eªç62C[ b†DäýC•LÕKYVK[æ[ÉH¡uè`â­¤³Þ¬%Ö.‡¢ ª–qÎôæz%.H²£™DHšI繚“ ®¿Ÿ’·J¤ú0RK™üb=ïôÆñL+)<¤ „¢°‡ƒ/ ‰$ä™tS__´Iÿwþè)by0–Çü·î¦C ¼-‡ê×Éw T©.{‡”\T#XXÞû£Àw*‘] É~CcöFà„˜dP£ ù`¤ ê4 !ˆcy±ŸxfÕÆå}lÐ* wº£[~5˜åN©dx%Ž@…„£T‰TyAJ&€f™b)ß$PÞ¹²à–;µÒUY(K~dcT‹n‰Ä©DžÆ²DëY¾ zCÇ>€}wª rÙ‡®?&„—(ƒˆÒ{•dƒ}^ .ç|]I‡|ýÑy±HéÖÄYøjÙrý2”´ÝðÂÄ¥ËFŠ‹™M”„°nÈz£’±›ÞÕ¶oøË ’k™cG@* ð^WÒ6À¥×ºùï¦vÄï¯vÖ)Ã2°^¿õÚw#À½Ô¶ýn¯È®¸¶ ·´të *ŸõÇZÂ]ìªܘþ×ZÚ&„ðFŽÄ- ëÑ]ì®eÜ–þPKß©<ÝÎÖò,_lØŠz ´×Ehô “ñÊ"¼¬aˆH-Ö;ëe|ãPsüƒn´H<ÿ•üdõ2x¯×KÛ±þìaÝd†!¶…c=7>µåÏwx¬ÇÊ9½ð=N‘€<Çø…ìà þŒ<"}£[þòÜrÎöÆ_lð@ˆ÷ftÚm ›7¸¼GÚàÑi;}M¿)|5 @w^Ä›3ÀˆìÞ€„lƒGäÅ~â™U—÷ùž?òÓ{Ç…êÌ>ï~(6*ADF.Á Ä,;KR¿õ¡'mmìd·þÒ‡c'ÆÀÅÍ#$y¸ŽeôØâ¾=ÇaDîˆUÜVeg«§íÂ'ò‹‘d™Y–ú½9qúú?à°##[ºG'ÜV„Ô·õÓŽÉa;äé‰<´ŽÐ ´×µÜ)Ñ<@KB>bŸA<òF„ø= j(ïU‘ Žyº„mwò}΋Íný?Ü0*Úö|cA:íãQ„ÔiÏè JBX8 ½SÉØ-ïj›czYŸ]9/Ð&{à|¿ B" ðž(©³Üd„o÷™pJHk“!.Š‘(‰v$ißj'i—`K3ãeÒ°4 Šd²ùÌø%Á:@š…ÇJƤ¢±bâÑÖ .È6KWÀ²®2¼[KŸS¼@y•!Y.ž/)„u€, y Ö>ÕÐÒ¾æxã¿þ¾­#FD:k'9àvôDIû¾á]Ÿ~ßÑ{;1ºj7äáÒ{³éI:ÑŽÁZÖ._¢ å,¼ÆX&O–Å#os¢m PðÚÑbôåSèXO@ž‰°¼¶Öá -Øs$áˆæÁ,XóKÜòuiÿúØU\ÇÌë´»š n½bRè¼ÇXå‚Ò6X)#û …†h$€SâdÔ(Æ i¼ý€8–û‰gVm\Þ'ŸwÜËØå’UNï$wŸ8À?KØà‹éPN#‹‘d™Y–ú½‰Ÿ14~¸½v’§çvxY™+æl€t€ <M£õ€, _w¼£åBšl–8æ&oÐÃ,@Ô2°Þ«%,óu‰xãZ:Ä9ãé'2TŠ™ ©¸ÎÓ–ç˜C5Ô\H•)JxgFêA›?aÖB¦îÒT]íõN59µ£šœQžv¢p:546­ÁJI´JÖº+R`5•·5o4¶6 ï†]C…8cy ™25ïÖÄYpšEm¡s+t\HÕþ:ÞX:UvH eÑ‘éíL@D8 ½QIæIIΔ,rtZ^˜hªlBL)¼_P’ŒL’Ò9û]!mr™À V f9XççÍ…k:±”•ìô¯_R2fôœÓwn!ÉßöÒjÍÔLÏÊ_w•¶LZ]{Ó‘›?Óx¾ñÎ?Ch« Å€1 v–Nß[ò¬çó¹½°_Ì)kwfÁž# C,fÁr™ßãÖ¤Þ9¹ÕæöN>I„ørNwÆòóê±yþjpˆ>¾S--ÚtØoÖÿ·Fà„ˆäÐl¼EÏPŒ†€8–û‰gVm\Þçû«íÏF| sÏÈÆ×‰:)³¤·º³¯ ([Y<ìÔfH/œÞðVJj§É×d\•—£ ²ž¹j®gš,ðGN• ¾]Ú ìjØ“Ðgb¬¦‰ËÅ~Aûˆ XðgOCË„ð<æ·¸w•Ã6>›ª\åçä辜}?ù4®5€ïß8ÏgÃ߬jÜ'€"’C-ŒPϽcBPäfË‹þ$2+6®ï“nɃ©½Í &\iÓîYWRTÏ÷ï·â%’"`XYfrü‚·˜m±ûÜ*ݦxæåNN„ä¾;`Õë óYòéªb D×6Œ+ÊV{ äŠ뙎f9X’ú=;_ªƒˆ½§ÀAª"º¥£ZNÞéø¥Žq‚ÂT‹swt´8!ÜJ'#É2³žœ ýˆÃ3½–5Ò` K~{¨cœ) –;iÔ•× p $Gܰ‘Þ«¢Ÿ&Dœ„Œ•‘ή4ZH-YE„$y!ÙÕÙt#ž/k¼¼“ßTC9.˜Þy—^–#nØY4dù³†”­«†„`UG€Ù¥wAó‹ñÂ6B’Ë]ydxƉÒñZeYÏ•–zí M<Û)@èNS:‘„ãiä7øÁ´R¾?z†X”o9ÌïðÒ)þBŽtŠg½O>ØÉ™õ\ä °®1NñÄoô„Nq@‚S<|âòFh@´cBÄ)žøIä_l\Þ'߄ݷ½!cN=m¬1yðð{ÜJ„ˆÜ\„,Aв°ž¸qwô~ãΘg¾‚‡2q¹‚ ¹»XvoXÈ’ÇOZ£…îõ²'OoR‹MŸ(Ktê’¨ Nz¤¢–$~KÅqi²GÑH¢Ä–¸ä :A¦¶ØÂº©¢YN¶þRÅØµlšÅÞâ*JîFFh‘/qHf™ódËrhè{ŠŸiØÚ!Ó3Á:¦nâËiòÊzYÃØÃí$Ûæm^â('³k¤÷jè›·3R’ˆ©ëà¤ðÜ2B’ü—®CH¨ž¾©!†r\0sG!X˜ag=Ð0\xSu@@Jvr×Áiá'¸m„êW×ìZ·ÛVýž'ºЏcÐf§·gÙÌ ®UÙ¥bX %´]»>‡ïà?˜V jÀŸ= C,jÀò˜ßâ–óÐN¾G ‡€´ßoóø_KüÈÎC“=×ð›%ùÎCî<ÄQÏ rçÁób?‰ü‹Ëû˜ó°Fè|I8õ ¿»xEÆ!É^~cf‡ÔÆ–‘Æ·– K´,¬GÎ]‡qqê®o;y×8΀²2$w-«êúXÈ’o·¸¯Ðc´O^7%ä`ãõNLàyº ioOa%wpHÕ-» MtG—"\nè2à.@Ü݇õ"!w‡×à?˜&¨ðgOÂË„°<æ·¸ÏBâB Ûöø;‡Š—`—Pè6ÐÝè'º »Äµ#¸ÛwùaD}‚HÈÝÏ‹ý$ò/6.ïcûdbórž›ÏÍç,©kí áõxd–õ 6EE¹DŒ$(EØD zYŒy° f ­Ñëæ˜Û´ý!1éJ²ö§:¢aa=˜ÜŒ#>éDP=¯-Ç–‘{:‚í€,_éhƒ=Íe ì´]ª½Í‡ €˜hA ëõѨh#²ÐÌæz3R²Š]f–A2°eà+½÷sѬ›]uøÊëôÄ4 ’ `WHº?PѺ¨ÐÌ¿ˆÈTè2ÔÉÀ6BçU´}ÿD‡E]Õ!éÕgE1Ñ‚$–&~KGÚ=’Ž´}z&Í@D|Р‹÷¢í€Î¯ÚFÞÕ¿£´——|­xß@8|ËïȲ»£C“@L7c½WÉS|BTòd¿‘_vPû›CšB¥!äJ:퉒ÖóB7£½3ôŽxSg¬G ä›úﯣ/°Þ9š:DJî¯oµ/ô3ªIt4*ôŽxkç¤'mä{z×1zS-»@¬Atoµ‘/ô4* t5*[t xsç¤'ä{ú×1úS-»@¬Atoµ‘¯ô5c2û¢nå³q§#ë¹s¨]Og[q„×d¬ÙF¶¨['ÅÝð‹Æ«VaÁŸ= C,fÁr™ßã¥e]Öd¤eÝJçk,ë®çÆñElµÕXÖßè’mq@‚eݲ3ÃŒ´Æ¡M"!bY7~ù—÷ùž‹Ø§à½€ñ”éïx´ùq@x= zúß’°)x/ÿ…–Ÿ[ðgOÃÍ„°<æ·xi 8 -øö³¹q(`›?ßè{qÀ  =gF´ô"!/`Ï‹ÿÄó/6.ïs)`Ÿ.ñòQÄËOg*âÙæ2áÙŽ° ³!‘†M—xù/´üÜ‚?{†X.Ì‚å2¿ÇK&PÄiéè$…ŸÍc@Û\GüF'Cˆ^Ä2yiF´ü"!/bÏ‹ý$ò/6.ïcë,%¸~4¢ü SLà.€¬ü+÷;'î€8È÷>3Òi£{b ‚†…¥ißéîÖow>Q@\ÙfL…¿ $$ãv‡„ð¥e¨_.…8h˼äÛY:\ ÑèÖ¯UåBÇFwU•Þž„ùY›„HM1Ý”õ^%Ý`V’’”-yUöOà¹Êá¥*é­bٻƷ6ÖBv9}Í\nJB*ÇGC#É2³Þ«âJqȦ7{ä³ý "B²o8EîkB«YÒ.q5xǨØÐ€&74´ ? áMAÁD-Kw‘Ü9ÙOÙ¥î"2ƒI¼,¢ïø1Nl r« ’´/…lóY¨hÔÒ» ÒNt«‡nÆQ9ÅóN cǾ­lP[‰Îü8Ä5ôýj©ŠÆy]Ãå3®ŠJü·ùÖçÁ°[Ý䮸…ìÔ¿[9E CúF³ ‡ Ìêt¯ö€Çl¼V‚F’]&YÚ,häîŸÿé¯Ô=¸š­F-ñ<ÅA_\P“1ÕÊÁ>gBV C‹¨FËÐFþkâíSŠŒäYP¢¨üа ¢ÀIe—¦®Ñ±ëÕ r,?s µ$öZr4ŠADn-¢l°"NkËß=yEÚm'Hrà7^0·¤ï¹~Ûyšc§­þ|éí‚8hâolŽ¿¶¸Ï ­T‡@Eö´Ÿrôah/HД،ƒzœ##‘‡!S¦¥©²¬Œ“µ<ø§éYUn´¤å4ð]h ˆH¤?i©Iûž˜ÏŒ»&ÀÛ® ǧK¹ìÇy8¬gÒÒ¡ÐÒ‰?ÓÒ³`<¯—\)–•MÂCF-Üôl SC$zmÞù ½ŽÀN&kYÆOÅ-ú©@L¹- M‘;rñ9O|ã÷‚*Ï,cE-¼Žš õÆÁÀ*}†´rVJUu9®Ñ—EPåŒq|’TvY k±P´z.nxwjÝ×èŠ%+gý¬X8p–¥#^ÞJ*·^Ö|²š'ïíAÍû¶I4ÐÐ Xˆ?ÒÜ K÷òÔgKþÒTôõš«U´úC:®·*Öº@¬b~¡ãÉ · a‹(¤#QB|Kïkµ×ªD§¤:+iu‰Þ¦”Tãú™’§žB%Ou´AÌ€";Œ¡BNoy]€ÄR$,ëIÛ rjëøs5­¡U^†Däu©`<ÏÁEK­dî°ãÙÅ#˜YË?«ëݽ«ëëÈAn+³zª«ájîˆÕùG~C´¦F9³D.¶¹©Óúdú/Þj[EíQ³K•Ù€<›úa¨Ã»ÜZÇÚ…œ¼í׺¢'9ƒe‡=;ûµ%#ýYޏec½~ˆvåáи´vÔuACÏ´ÈQNä´§±DNzb-`K‡h¤É+뢣G3qÕ<æ O#XsÃADT–#nÙX¯G3-æHȦñ4 c@¦£³\´° &ŸulëÝøœš×ǶÞm6¬5XÍr–×¾ºò·•Œp„0`b–õ >¶õ"-×GÊVÅš€V>e!T—'‡ºÐ.‡º$Éë¢cÔGS-jM V³œåµÏADT V fÙYêcèèµÆe³š€V¾ÐÑ!×ÑX!š[FH’ÿZǶÉõ¡ãB¦x°€¨¯,åƒ" aÕ€ˆYÖ)ËÜ7&Q·Î[ËCGf7”MRÈÀ ×1 SÄY.ZXH“ÿ‘ŽTË[Òq}¡s$硇悵SwŽŠ¢ª9+³¬)ÎÖ'ŸêC²õ$ÛJaœ98ì iPi4Ílgèü±’t‹²Ü¥gºÑ]ÂûŽJ–U· Yhš»£$ˆˆlN ÀìiÊÁ”:–fmŸéHì‘t¤ú™‘ƒ@ÔÑ!×Ñi!šÛFȚѯu\ub;“ŽsØÙ|GôÖ-`íÉ4DusV f9XSLî(9­õs%'DzDÝV %+¹ª_»(iP(i4Íl#d iRR½h#ÕÓ–,kí‚e-¢z1 aOYޏeg½ÞFºï-™¹:ÞÚ  ¢û>©,stÀr@–ü—>$´‘®š·dXk,k]@Tµ`9â–õz :Z;²Ycˆ6ˆ ¤C.¤ÓB6· ók%×È©ÕÆwä’{¦b—€)ÂÇÌ»×ÈAQn¨¶ÉšÃÁ4²Óh1±A˲Ôo)Yû¦ñ 0Ì¥]B’©=eN.‘˜¤FËЮ‡ פ`ѸCšþ޳rëC䃎l XámÙiËÏïÈjŸ3 â€ifœwªÈmkV‘²´Ë«¢ »H¦4„\àýcU„z¥,¨{Ô‹ìgF:²M,F’ef½WǨU€Ì‹Ž5Ý€¼ª›GÀ¸Cš¾²²ŽŸâ<@GŽ£!‘°ïèøÂW –%©ßŒÙÑPGæîý¹Ž?ûªÃ8BíÏõ±lW%Ù1b²P?ÖNñôøÝ áq¯ «Òô^Óß4ê;Â;X‹‘d™Y–ú=ϧóÍ䜇]â4ÙKOLЄx<¹šI)jz«°ªìÜEÃyêÊS;MË¢Œ}¥E_¼l »/R·ôÄ43Ò{U¤,”¬bçËþÔ¥¦érDvv»†+¼°’Pµ„µ¯·"wl²yl`#mr  3ëÝJFÝD+ +‰žr^=eŒä9P^R’g3x6t;ÅÑ»£ä _6v–$~sÖ§Ò´K(És3g®äϾî0ŽäàZ'+}fÐ {+æ¹ñ9Egù¼c!§§Ñ؉Abí çÁüsÏŽógœ) qˆ€L:+CUϨ­Ø¤o˜ÈÒWšêHíÚ‰3ã…Ûµô¾†„$Æ ÕJkÒÿR)@Tb ‚–…õDÉ"ÛQIž-AIPÙ”•¡&Q;€V56˜ÈÒWš*ÙšFcs%íÕ.ø¾†„&Æ ÝZ“Øßˆ‰G,AÐrŠ×þ’’”‡–•¤ŒâÜ8*›²2T-„šÓŠÆzÓYúJËu2æ~¬Æ M :$›1³Ê•®€HRì*éõ™Ÿ¨‘>;ãÐ'Ñ ³¨’iÝBžV@4å ÕÉÚ«Œm%Á'“zº¡Ý¼PCøÖÕSaÑÝ¥§þæ`‘g(%Z>tc<§~KËA7:0“çXÖ3w‡¿I¦xÿî1;φ%¨ÉNM%fH#¯Ë< Zè’éHw°®öŽ®a>DGº^ª25Ÿ!sÕ%DIHgF' %úR 2’hWHšö­/û¤%{z ºN–Wkˆ}²”+ OÀ'ðYv+Cvñ„’ºøh×!O|‡À8~[jhh7ªÆ»Æ­«*‡_ÌêŠùe©€Ø…ªNì*鉆qê¿kܧ*rà³ ÷«¤÷«É®R»yâx»j¥H¢˜iH!¤fÚ»âr)«ËªÕ:CWõDí­™¯kHÜ#kH¹ÚAC|VÁ”•¡CW •´ë!ØuÈ?`>¼Ò¹éõKhé„äĆKhÛŒí_£¢ÊßÔ—H‚ ]&½Þ69í!g)·‡iã×ì(=B²'yz&­tI5ÜWË»¥zHÈ™Ú-C¼J)jÝNÛó÷ŒtšTB’hWHOêá^9uõ…sõŸµÒ)+C]wS(©ëÆ °ë'Þa¼–5Zlëa¡³|+Œ!Q©Œ¯TZÓH;3‰$Òë5‘ˆ{®‰”¥žk"BZ픘¡ñÙ.¼COMõ€ YM¤Ãû©"ÊQI¬0ŠDÔ:j3FFúçH~F£ByT Ç~íQ(KØ£à³U9ae¨cBg'/= @žxÇe«´D•p[Un ¬+†D}RRT¹mî12 D‰$VÖëµ2Pr-¤\n¹"¤UN‰’25¹"tÉúå:U4“±Ò\ÐŽokH(b¬PmõUêUr¨²Á:Tµ°<Ôó~UGbžYGÊÔÌ:"¤¢)1C‡, o—¯­tIG~t+d™ ãB Ýoëˆ+â,W­œóà‚l#±ËÊzYÇÅ<ÅÏö7åLµ¤c‚D4#fhÊÖ€à ]-ë@2g•X-Ø,¶Uû¶äkâmœ‘¢l«tÎyEJâð3Z=´¿~½]lÔ´çvQóäM>k#¨¬ iÌY#íµì:ä‰Ó£œ´5ùR¨çwuÄÔp’ëUN:‘Þ22å"7')v•ô@C掤!çê9Ò³f¬ MYñRµ“†yâFÍö]¢†òíâ»*r( “Ïò‚lI €]%=ÒоfxWûtMx6ÁìSFh¨9>Z°'ž¾dºœBwПåK¦+À‡~Û2ˆž6 VÛ¥û/´ù^Æspœ`¢–ƒ%©ßT±ðE·ªžU$vãø[u…ʩΌr!’ÒZ¹˜:Õm<Ϊ¾¼Oç xYËÕ°Òv”’[Z¹xò†”õ”3• ‘éXd1’,3K¿Õ·th•dòÜ+¹ ªëXÀÓ;©Ñx@–ƒŠëX/(Én› äBô2k«^ á*,@Ô2°Þ©$wÀcf¤ŠkãJ:uËyQÝx‚8×:Y(ÔEï¡d¡c%óLï+~¨Bzöy¿EÉBGwFR’óYóWˆ}ÊB»ûu¿ ¤ÄŸÇ‚æ‡wõÕñØûîáx<|@ºÏÚž ]!=ñz"ˆ¾{'3_üxT'BèÔ‘a‘ÞÁ¦Cž0ÌŠÙ D¡žÝRo7©~Ù‘kåÒ|ŽçDívm>_W/n-ò7õKŠD xœ—é};Ʊ«uÀªCžt£¡@‚‚zI$¼©_$ibØ]“¡—ÝÿHóÙ‰´+¤G ú¥‘ñ®vG¤ª&—_ PÙٸ׬ÖËÌl¾êPï‚€vOw¼hÜå­ZØÅÝ®–_ ˆ]ÓíЬžè÷vû›Æ5ÝóÌó<¡†ß|\, VëeÌr‰CÁªlÂãYÙT1›`œ˜q°Kˆt]ý –…¼ ÃëÕ9ˆoå³ÌʧÑé†oP¿Ì'F&°ÝÒ|bËÄëÜóø(cÛdÇËBxó}9Ρc‹@ºdÁYt¯ÿ„¶«Ô °‹œ@Ì®‘4í[Ápè·´›³ÐhÛå28©'èÚ¼ Žz¡Êkˆm¿‘MCN¤ÜÊÞ7g‰5ÏÅ© Õ<—a^«¸£&mØ'4BÞG´+$Mû–šôÛ3«yR8£_R“2²e5iƒ{_0gB‰Ô<Ï*ƒs`m²7 Ð ëHß}¬@Ìr°Þ­çyʹé>Lz:D÷$p8ý Z&Îz"¤™p¢í3¡õä]=¿µ!¡Œ±L=ûn‘o;X˜å`=Г2Q³ž´‡eÏz"äâírž> øÚŸ¶›GH3qýÚéо£ž›ìñKo-¶ƒÂzÒv¾IMÊBÉjR>{þÚò†’‰·ÛÎWÔ¬“GÜ?œ9BNn)Ã6d?å8™“ö•vS¤²àYƒ$ €v«–§}KMêZY©«?>ºôDºë“²E§93°s¼Oce¨Ò.÷D+ZÀt@žåY½œ»ö¦$h*é qQŒºmyÈö‡.&U'ÔÏ‹¡¨`ÊÊPÓ& hU×;Àt@žåy[Ù©i®Uê"m%oÝ_H—ãM†p3r(Â,n‡ì ]v{ÏHÕ~:XŒ$Ë̲Ôoùç›´ ¿q&øØC[ÓV°È××?{ø8¥³2TåD Ъî Ói”'ZþëG‘\ËìÇÿò·oÿៗNû/ß¶:%B¦x)½?¸ÌçÇßþøFSkÜþñ·ïßþÝ?ýoÿéßÿíÿýö¿þ‹gɹ“ë¸7*?*ž•Eú¨Ç^h¸ý; ýÔúé, t(B˲vB: PeHX6–¤~Ïq]¿=¹“Z™5öÊa~Ô(_äYî›8›ÉvHaÅóÐó½@Y£Ëc d†²ähv ¬ :V‚|\–= r…(–ƒìZ6$QÒ3!ð’$í{:ž<ûóÀg õ›òjSâd &©lC¯;*†Ý€<ñ‹ŠV³BE«}þ²ÌÓö‡‰|®™D5 Ö{UŒÚè¯Uïäë¯D{Ÿ\! 5øWóg÷ÉaΑ3»È2$ +éýjÞþ¶éjÒ–)´þÌ:äÉ+Ñ\ªMÜ%šwâÀ‡ 9¸;t£8C†ô.Ûm‚Õ›„Î[H¥–=!…â„&–"`YY’ú=%G“ùoÊÏ’šFk'CÀ`¥ºË&q„ºôGJÌPÕ Ù*ƒæòL(ñªçò¶šô¤ØVGÒó8퀱]ËeQõ€¥XV–¤~³fÒéì$çɧ³“vC—:ô°ÈËD×.ÌdyÈj–ƒŽýp9õpìä9rj2ud³öPIz i)•‹_щGܬ‘$é›5“NüÆ9¡=¤ÊœÍZMŠ6‡ÐÁ'Òœ˜ •µ93±nòl¶íÙ’7ŠÕÉ~ÐtÈX)Ú4¾®¦ˆsL´ºñ”"\VÈqÄÍ鉊”…¶')›² ïbd’)1A› Aƒ¸Uÿ˜Í<@–‰- Ao;ª×qïGu}¨Ëõ'OõÿúÿYJ;Ó¤Ëà­ ¿rh«Âñ&V QÐCñ9iÀFQÜg‘™aĬC€Ã„ ‹(£Gj‘8<͵Ü@Nû_Ö¦¹$÷&F—mY0-CwË–<sp€V„8§ŒÀô¿ávêðn¨’gÃÐÉa´ø•d˜ÂË#Açàû.ù-wÝã9ýÁ\Ë ¹ ¦.„\Ï—¸N ·ï¥À×p àk³¡(}®Ñ‹Û¨o*SD÷׆luj¼!-š¸8Ž TÔ ðâ¤3gÍ…ó‘^5úA±¸œ´J±Ë$B•^ïV!¬® ¨TGcHØ5’¤}KrZêâIEÕéx”_xe¤d^/:{Ö²<(Ï{†!51´\î$M–Ã;ºŒ\©ÃI Ï*G:œ GÜ®“iÙ96pÒ²ŸVC“€\¸a»h Z>±~uN¤Üî5‰‰f‰Ö`TvÚAÍR9 BzkEBc=jµÍ®“ž¨Yüæx]ZD>²(™t~Çýy” ¤™p¢«ÉkãÜ´Î!jÒÚx¡`Ëò…(€~œpžø~hVHšòM-yhùg¡ˆ”…±‚œWΡðóª|Ñ7§úNŠÐ@H%z8 f{ÑÙÞ Ùôoص)â]n‰¹µ”sè ŸMö2ýÈ“½K¦}ÏŸ@I³½ùloðtnäYHÓ½2ô‰q*ìÆùXÖŸ?p–Ï1”CÖ),8²ËÊz0J¦‡ÄŠa,eTÇq6w€Î0(1Cõs\xE«!XȲP?ŒHdO=MfuÔóhk´Iã‘ÿýÿü›GhâvâR'G3œpK ±XzcÔäø’{BV•::°QËÀzýþ#ÞëÙÓýG”¯cÃk¤"×F ÊÙ…TåÍõžú±ˆd XR:´M–nÍ)»lG[ZÒ&¾k‹»rxÜ$žÉÉçîA6‘m9'KÒeªš“á•¶@h±÷iK¦,È©rÊ‚ö0W.3ÉÝ=­icçúôi÷ö¨<.¢#ukôö½L‘J¾‰í• ¹…÷äËÆô’.Þ´ù½¡,ÒÕO£¢þ“ÚYg¤W¢˜© âÉTÈ3JAûg*˜2RS™¬wb2 E6DI’×W’z†€Â²½íf©hQžrŠ[‘;¥BFÏ—!¹Ñ‹ ò-‚â ¥¼8dÂñ 3Ë{¯\vŽ Åi€–8„ªÚŽ”î­D[`i Sè~lòÝ)T·ˆYÖëmÎÊD•}ßÞ.p¾h:æÅXQ¾dÉÁhÍO¸i„4ÎK!µÊ¾$žBj-d—~lS—Ç´ Ý` aƲÉ-Š@R +K¿§¤ŒÖ!¦Ó7‘©«p›\zŠÈy©…Fž…"ãyRx²¾>b\ènŒÄ\Ï“ÐÕxÜ  —úIîýëý`O.[â¢fƒ£ÖßP’ní)Íw/]GtD§•2ÅUf:ãA.ü³ß#Ô&s¶Jétë•lŸ3“yÂÎrýÞ3ÒÛÞ áGo‡Þ€§Ý¹4MO¢ð½L]Þ¼š*7+I4+$Mùž~ƒ¢ˆ·ˆ ž"‘D•:ø˜[<¯<ÑL±Q2T%B²Š.Üá€<ùŠ¡Ý ¥Ws]iI³S-l4Ò¢ ¡´PÈ's¨â ©È&­Æë35#ƒÏ+5¤.yº±Ñ¤Ð– º±“¦,d'8ÓC2Œäj¸:9 !ÊVGÖ8Ý:ï–Òôf:®öaµÖMö„4º€‰NøÖ•䔋9$(ÝÕÐHÏ4¤Ón´–º›DC€CEÔЫ€t=€OY›ŠHˆ’IkkÃswKé•+Ž´ØèÞ+ ¸Þ±ÿ›¼-ᨅ7cdèྚ‰8›uV¡é¸SŽ(œ>­XŠ„eeiê÷ y+—AÓÓ ‰Ý30y™%I YÄ –­C€å€<ý›ÚYØÕW¥Qô‹m‚Cˆ:Á2ǤMÚ»rd„߈YvÖWeebH¨w(4eºHŽ _b,„æ!ƒ?gÍc·îÔ,#¤éM•äÒ•$älø¾˜&ÎrÝÆÒ¶d€t!É7¬¤':ÒH »|TÑåËÀVƒ• 2’Ë·€ãâò%ÈÒWšé¸’¢åOÍ´ó㤨BKùÕœÛjîï59<ââziƒC”óMw,ž¼Sý+H‰Q¼Ç!¥ ±àøLòé·Sj™²É½ÑÆ}nQ7½ª ñ~ùrEŠô¨¶ÌÓ°°Ç™¯2uóŽ:еīö*2ÝÇYW_t½`éˆ?åß8ó{¹@ƒfú¶±¹ó°ft°ä9Í“</qB±ÌÁݶ2ŽDKtêÔ"ÆÎÎ7ÖÈýÒ~õ),@¨ëåËäÆ9º ¥™Cóºzó‚¶pm>,•)wÁÿ‘Ú¡™¶h†È>_ÔÀ†ú´±n@‡5ht¹Â©:w+_¡ÑÚ÷?µ„g}X(UÚKö a÷ˆv!Àzk§òSÉiUpÏH“º«´ Y¯´Ý ©2Xƒ]C,†r]cIÞÕ’vKÒ¥•iÕ¿;õ[¾ ïówÓ: ·"»N–QIÉu Ÿ1Eì¡e)÷mj=•£^w+8­ÚæÃ­ÚÜÏO÷NS‰ïá!DÅVÀí’r\)79øËFyı5™h¦ty"'€]ÝLÝLÈ.ˉ++²;“RÖ…€}ò9Íݽ‘xZ¿1Yv}ge×ËÊ!.àš:Ér¨fÓ¶+" Ju½Ôˆò_›Bvœ€Ÿ &×I¯m×näSƒTûG2xw4m Û)îhdc—Õ(òs·–ƒIU£.ð×ØŽŒPa$’aV)]7Ý‘»shýúåh;•ìD·ƒÓ<Ê:©.Ä 5ûLœWm´Öò<4ˆäû’’]OÄÉÉÝ©FèYÄ;²¸Ä´óÜ«¸¾€­©MŽ»²ÛJÀNw1pzíõ¢w—cÎ ªº¸B~ˆv©•WLWÎüì[@E ¤ eó«¡×Õm×U€>ÍÇмK—ÍËe—nŽn‘Ŭ•§vʇ.𕵋æ©>·\ç—ÂÜS´úY^))L½±• œ›&Cn6;Ç´:X­Ù9†¾ÿÙ.õ9 ¨ôªx@EÐiVÀû¹S.²½9¨C §úCâvÊIO(—aýVÁTmž)Ú<K°¬,Iý¦ê§U}¡©5øWT¿6[«›Ð6ÊÍä™(i˜õ’žmwwǾŽ.Û'8)n' ¹ÜrpðÎ ¬è†DE|Ê]™¾ ÷KN›* ´›ÔÜ)ñÖfºËãÐaÍ{Tôn›´£¢Ä.ÿT*óÏ÷®ÄÆ»eÅw°8@3†¬‹“h>O‚5ê* 9¤à€%Ò“­1qñŠïc‰‹V8Ñã‚ð1;¸z!óBœ¦7­ mƒ éöyJJ\|xa@%nò>!< N,AÀ°ž)i¡òám-.~HˆÉf‘ò:tžÈi»…– ÛA0V~å(;*IÈÙà… MŒºYµJÈ!S+À é‘’ƒ¢f%)[%)‰ˆÊ¦¼ L:Ô3ËAú "Ç£:!uƒ"åSÜ8ª6u×Pó†”Qeä,Úö ××Ò¯I"DoD– `YYšú-)PÜÖ5¾¼&3tÒhåTãtsT ÚK” >¯âÄ í£.ˆÕöl†y€<;ƨ«| –vöm]ƒxÒÑ x+2 2 Ž"³{Ρ¥SÁ›[RÅ –"`XYšö=57¾}ù7ÎÄÆHÉàÁ·ÑÌfç\é lFhÛLлnÐtÖÐ.Ld0žµ”£pƒ’Ô»Ó–‰xcCBc…rԒБDø€:²ËÊz¤%µà#kYeó2¨ˆ*§´„t=­è,:®–µDÈ3Ðñ°bå%¿=iI{»Sµ4TQ(7t³ Eên°ËÊz¦å8e$¼ð¬¾†¯ªbÊ -!Ýæ-E§«/ZäPÞÅòµGw}|…БíÔéqgm§]óf~ "âú K´¬.ÔƒµGð†l…|Ju^iwÊ™7Wuš¹>`; ÏÁ—Þh©Î¼±" Š²@9õlçY‚ åñxü¡x_÷~\@L8÷‡R(hæü€í€<_úC¡¥¹?ñƆ„*Æ åÌ·ADÜd ‚–Õz¢exDþ¾áÿ˜(ˆ¨pá42éð¹J·§ÿEΓ¹ôàZ¢§­”óÄœö+wìŠÞ8Ö£‡Yëõ%å›CKîï°ÿæAyO½u¡-û’ FЃä]x½Ãóy&~Ї‡–Þcû[ÊËųÎé¯c}zص~ÿ‰šÑƒûëFí¢ ¤ÒEuâAô.;Ì™øº5­ÏŽ·V”QVˆ§Ý1Ek¯s¬W»Öó?RÓûðx]ï±C€L:ïŲn<ˆÞi‡ù€"¹×›$qü(·MÂ0O * F‹UVѲ9H‚„]á<=Ú”0ƳÛ&c ˆ íþI„ä*I é]“hÛ ÈAºR¯(õãx_B#…lzEqB†ìž– aXI”ô‹ãmý"c—•ͯ6Fhè6#§éMÆhÛ ÈAºÝ8FÕtØ8ð>ô^¥;Cqº›ñ¸ ;­¢É³¹ÁìΛÁ[qNöŽ_‡oUϧq«Ý#]ªy„4N|0¯ÑèèkE1[9efÙ…A„µ ’f×9oŸÕ  ˆ^/‡ŠB5 5Ò¹y„4W5-Þx¨iñÆá­Z¦¬'UóMjnÖUÂ붪aÌ£ŠdÑú¹›uó%5gÑ™Sàê3ÍåãjcÅØ›Z”½e¤ÑJ²ËÊz4çXDy4N9-i4ˆŽ½•†ÈÐà&ÁZU æÑ8B–ãY/ÞŠÎÜø|[ë:sãóbŠÀÜ™²`~­Ê9TD*oy–"`YYÏfÜÚ¦a­bZl}C3ϸbókBC„¶å·j1ëÂ4@–ã]<"AªãQŒòÜò¡ 6XtŸ õ‰‚fØÈsð¥OJš /lHˆb¬ÎüDÄB– `Ù\©'Z†Wäï>‰‚ˆ ^@êíðXÀn; ÏAòмÝóQ·>:1$F0ÆòAŽ5{HËk=îµ°OF=ÑVú°$ZF¼ ¤Cœh-òæ2ˆÞ8†ù€<?h/avÃZǘ‡Pæ*”ÓÚð m#p¬ý »ÖÆ>šßðÖ2& ¼mŒi €l2ÃÛË€¼Á ¢7a> ÏĥŤ,k´}Ò^×çË3×—qîäZò0ÆŠ\m9>äþúÁÙ¾ [b9â–¥©ßÑ“~;7¹å³Éé 2xú5Ÿýf%:ðyekÒFn#!4ÉsÒê‡]€,ucåûTé¡Á!ÂìúÔs’CŽªž¥~^M{ÚUဠá‹hK´,,Mý–ŽtÆ|p¥*<èL“_ z*±šUxûø€+UÒKf‘§7Ñ¢qƒ ùvÚ6xйt9¼Ecjœà-#ÒhGwÚMæ¤$’nÖ9Sâ[ÝÓØ‡9cèÖk¢ó÷ƹ’à?;å‚ðÙç%H/3šÝw¶²¤;ÐY$òlv¹SŒu¤ŽlºÿÖ€N[b]Xâô]µ,àà¨EÈÖHä‚f…¤)ß ¬³~Ë÷÷’r¼so‡¾‡î¡¦DeLˆÒ0Z†v‹<‚Æò,ìé¢A#mòu¶ª‘jF“ðáÛæï±}xÊZ¯¼>¹RŠzÆš!ÛトYV–¥~KMú-G3ÿmW–]9Ž+·ò6P>š8hO]ûÿ}ÂÈ×Nù¦ë«:£ \*‚àØ"V¡ÕrJ»üTgÑÇ2‰HËÚÖRŽ!i™]¼ 9A,”3äM€\°){r¶µ ¿Î:6½á¸ÊJÓÎîñdo¢o.d÷ Ô>…Ê+ìö†SC{F†´ÉtË‹àˆ5 mK¤‚Õ÷\'š÷ŒnKXxѶN¿ *ß"iÇó÷bóf…vÝÿQNt§Xšß´„“ðÔ ‚†ïž,…&ñ½´OÐ]g>†Z:̃G¯¿RÑ~lÜ+§¼=·šs@äA…Õê°¾Ô´Þž¹Ôè#Ä)–Ï¥¾ï˜é+µÅ kç?Lr—ÎE3l9»‰CêܧœùhÕ<‚¤¤ËšÝY!çMZ¿x8»»eÿh܉DŸ{ö?É!¿¶ÿÛú5YêK“Sß A[&rͱ‰§Ôœöù”’R€‹y(½³h†”ýú£L2RHO2YJ’5}ï£Ò‡B—ÃÕ·*ú[Eä!Þ–r ]Í8t΄œ$¨³¿ Ý„ØïCÈ™¼úoH¾í>Í£(5¸¥èòX›™!»å2Cß ñWG’s[•É‘Üû^9r¶õh6{OilÏé=;̤žCG ±-ö)˜åóŽÍªV¯–êPÚ>-IÏXµÜs…¬ÆŽž©mì–_T/ÏâoZ´Od†”ê–îG>@Ó42¤÷Ì´WšAÙÐk|s~Ë`¸wOˆ^èÝ«·â35z³÷Í®rƒ½DÀðÕ/s<î—èM©K4KòdH.§3éUHsås't»(]¡]“'E‡(¨Ó˜³ü´göÚ¡4¾0I7yÿÛeÜäÅìàT‚›>˜õDw.u1Þ9/à YŠT"¡RöëÏF‚Œ#N&¨Ò3“ ªþÎÿœzø•éBb@!{`ªeÈ~û‹|‚ÛÜ$XE:Áëßš¤.Ö©""½Ô GjÀ‚húÀ"e+6)ûéG ÎíÔ’z™OP¥[æܤdà¹ò¿ù=Ê'ȧd©5Ý¡8!üü-Ÿ ½M[Œ÷¢i1„¸U¥TX^¤½(ˆ¦Æ`) ÐR?·Å|Œ £ÁkÐ0,Ìøòy(Ažô"¥"1i&Ⱦ¦Êз b}k¼ŒMw:/ÄS‰²ÙëK{¦áÈ‚T§Ž×NÌ®{EôéøÒ@Î…R•4EV{’tý–^y‰>³ÚUóLØãÛ{qìä K/èðwiíþ†ùl6)ÎáoÄ×iÕ#ê¶©©}°ê+“µùQ¿|ÂvÜ ÍR ˆ ¹jªg«GÏÇ’.`kÜ3’ ooÜ3ãò1›³eý9ä±ËÎüO¿•ð°g¼?¥ˆàQú<'£@òÁI°BÝßø£†TÛo¦¢K+äÔ験kü¼gFíQ “+º©‘š¹GÇÓu Ï/äˆáarf»Læ:×瘳UÄÞ‘Œ¬ÖsAúO?+˜+%&ÜvÈ}x^KkÔÿ26#ñ–ÙÄ*ÔoyÍóm+O(ZÐKî6É»¸0‘2­øp|1!þœŸ¤Vëb%‘`I~“KM²X¹Ô”‘vÜrìÊ #›åv1‚’Èýç\ÂÀB(m0²GD¯V²ÐneœI¯ ý6“°.FÚI†ö›U^Ðzc²@Ñ‚ý“‘¹þ_æÍóÝ?`òã;õ’вæ[2úd)ìßdòÛñ å Y >ÙäÒ5­ÆµJÒ¼þÿ ¢‘.Äß}ë×L`’!bAë"ùr÷ŠtÙÊ-R†°f“ò_–ïÖ*þü£ê¦å|ñ]!ßé^´þX4u*¤*dG$$uØÂž5'„ßotX¼KõÍí¿è1¤¤3ë–VCóggצš?Þæôë+5‹­ žò¬ëÒ@³ßo†4Ý—Õó–9øô·Á‚Xþ§óЦVðÊHrد¯^óB4kÂ…ì¶U»ËA™ìÌÉàôßZ´Â’,füoK]×l@‘ùz3=®Ø| ðB†}ņß:4ž¹f¨È¡Rž£ÉùŠÍw¶‘á&ùòGüÖ¢[|»¤¦ÒÃ’Ãs“H›åâ±´ø¬MÏ9&ÈÐ=ú ñúË»fʧ¾e¦„)Çæ)´„fíŠc·S¦ ±òA22½MSËèÀ\Ч#Ó4÷ÕH5R‘<è:tû©®9 ñÔw’oÈÿÆMåÔ{o \!ÍÚ‹Œ_, ½²cÑËOË寽4/ŽŸò†¾ŸçÏœšÜ©˜V˜è’²;k¡t6}žD´K’Ò3ðî¼ Pú²mÕÇ605Æf;‘ˆ²[ä,ö65Õ"Û¤Ug»ÞiÛÓòçýÏnsBŽ‘Ù4–Ìa$9M×2ÔäAÄ(Ãñ"p«Cv.òÉ<¬Çi]œC_NÏÎâìæ»ÙÌjÅÍÈ®ÛY\Ѱ]{vWÅ¥ä´ý uræÀÎ0ƒ®&¢m^{ØöáΩíaÿ§~×j9ÔíŽô3FÍâl#ÜžŽµuîjf<ëa,:@u ¯ÍsŠÔÚ!²ç…am3=Ç;†¾‰ìá†y´ø§™ÎæÛ ê(9 d1ç.·.€¨ÚmøRð´-– ™Áq[Üy-žQBu¯ûF¾J¥¤vÊ VÃÝ›4*¢öµÛÓ,ýJóœŽépä´“ ›5dx.øª!Ë6°}o¶ï>¨£[Ì)zF^íÌuZ¾i‘—¶6¦ƒ±û„uDòûSÓËZE-Ü›9[ VZ…¤fz+ЇFü㣙ieûäÙZ¾A<åÐ莉˜–O‘ÈšnÄÉçÜÜ sySºåò­öÜlF_öî…¨ƒI ˜º¡ÎV2»™uZ’”e^‹µM½$A)ÇKG1Ú©¹Ýذ-ù2,_\xs·ˆ8GÏÜÌl;^>Ðç†kºgÛŸV@H¸ZÏÑ–û\&#Ctc±Á“šƒjéAüDGWÊp®f ×|è´1Èûjﱬ:dw'9ào—îpnˆY#z¿ýkJaÿÐ=–˜ÔЂ±…A;ÇƇ¯‘0³~òÈ9 ˆ‘›D•¼q‚ô x.^%ý0W@Ñ[VL²ôéå>–^{þ‚ú¨ö1˜LXÑ<0¹‡­IIé^-raÈnµÌžÕ´çáåÒþçCŽQ2±C ³†›”`˜uPÎC>†®\ƒ=ëøÓv¤#æ*ø ‰-×êQ$¸¼ù±Ã_¹skLð`– ½ú9É|ò†´axîAÿµ0uÚ²ÝûLjm—9Ž[ÝÊ`uÕYÈÖ;¬ç‚ßüŒñᥗӲ\j0-ßzh‘÷èOCªBÞ¥T‹‘š1™ðûÂf\Ïõ¦mHDÕU `$„@Ú!…ÏÚ¨H3^S¦}ŒªÖdÞ)æªÂ[) ­Z‰Œ²ªP«2¾²c½ á×ó%Ilæ…¾áOßHÒRɘoæD7ü‹T÷ËÔ<|‘ÿ‹8ȯ0B€S†#†l/Ÿ¤Žð!©9!ü>D5:LñRktäH‹„ThYµ"ÍWRªùÑIj6©·SP|-<¢ÖŽEð“_cèðGnÚ£ZfjN¿Pv&3ý ükÃosÄ.Ÿ­²«è,ù]ý4u·Qr¬²WåˆÕ[ãX´™È”ìÊ}³gØ¢çõ Ô ß­m÷_ÆÈ×÷E‚œ¶©~!ú(~[$¨²’ãA<|?´zŽ´ÅñÓíæÇ{ŠHõÉ¥ø‚CËg^È =šiu[®ˆølH]ËEnZ@Ds÷=0Eä6‰Ø~‡æSZØg|ú¡Ï9·EndE“7ùαYX¡_¥±ƒŠÅ søòFÉQº†o\È&Q‚¾ÓÜŽ Y |Xm— ÐôòöþлnHÜ®¯){tÌV²Ù\~u¸î^ÈnëÕ Ñ­#Eº{éÃzxî6ù™UÄ·u‚X+"3ú^¤ô}3+z —\’Ž­¥Ãû3?bhMkþPI’Ó™ )³= ]ÖÍBéÔuÓ>µîw,B[é=9¦èÜÁ¶2f·ÅL¦–ØaSšúæŠÍmi’SCm6Ûéý™¦=õÉ›ÿlFi‰8gFÒ³Œ4Û~äÑ8W¿hkÛ¹<ª‡¦Hà‘oeÙ;ŒÃ¾"݇<ÜŠ‹º[Ï^èôOGUœYAš×Ò÷Öº!z¤îíl† ÷î®i9cLÿ¬¾†ÇÛ7ûô­Å@šú[ÓV˜êôÚnÈyÄðSã9N¿/"#tUO´Z”¬npiÖ;ƵýÍnasŽýKŸ·P£þßÔSd‘ßj¶2OÙÍV\,`ÅœÖÆl½¬&wBhßÍ,åã4sê=ñqš탼•²sõѾr6$æß ®|l^ñPý—­pN»õÖe ç|u¢ÁW3Þ‡?¤ÓžØl\{eCð´¡¿¬Ñ¡‹;}µ«<3ÆlßmXÛÑ »8åæ=ÜÝ”§o8‹‹«ÿÔ÷þ,rù7õõ©VÊÒÃÈ˶É9ã,í—åe—pD¾05ÝŠ“͹:Æçvï«É=7³ÐìÝy˜¥§ÌÃ\`Z‰ÔÅ<Š% 2‹µÙ#¶È©eÙheỲ]ÏÝ"‰4ýðã9<äÄw”!4W3ìfsñ¿ÁP6 çh•ˆGÑ’í²ŽúÑÌ´Ò3 ·âô2UlÅà ݊(^hº LOuófî–y¼¨E´×ÿsh·ÕÉn›‹ 5[Ö¬¸µ#·¦ÄÍyƉC· þÑÁ´:¤“â?êè—ÒuÇ?Þù ¡;$:˜=?ÍáWÛÅØmŸÅ|È?æ:ì–ì’ rx1í+û£(vuAòˆI¡áï5Äì“c¤¶¢µ‡WÛTW(~ðh‘!«¯7K=Ò|ÖÙÃÝÅÊ“8dßcåDT—ýûK2Ý»'žÐ©Ò Ó³SàkºíéÈl»MóiºÅmßÜü¯¬ú»2ãôÙó:ctñdB‹Þ-V·ê7-§æ¹±®8=­ÆæMo-²_]£g³Î·Œ'mn Òq¶ê]>ÎH^×èô92gGó¥±aB=>'ç‡íÃOѨ mk« çÉô9+&|´åÕ-ÔÈÖ¬N«µB,KÝèÚâ$o6w;9¥nµèÒù³…EÂDf‹+šñL!mmöèCXdœÉÝÎn¾Œ¬û‚–VÇÀlwÑH‘^9êxŠÍKu8†æ´C4¾s‰¡ƒA>ÎÈlW00~á0F÷÷éVœÏØãsÌ?Õﺓ ;cÌ¥£hAu‡Ñ‚õ34ÝC†û“5¹÷>™ÃG€Ñ¡…êlœD³f ÌäÐŒÁæ6wx¿±¹Û<Ýûé «#HŸ1 ›÷–¾ôµaïÆÐ{\$Ž4þªyKågÜmY­´as†£1»ZôÈÉÜ­{:]㘃 ³õ;Þ ˜­õóᇥœ‡C§«ŸáìfŒŠ±„—œHèØéÞP'~ØÎ²­‰·†îØ<…R³]:Ù@@J4'oÿ@š¥s:çÞ žjP¡{¡÷ç¬ÿÒ±¶ÕgB'}Æ—¸r Ⱦ®¯þvf‰ZÇZBðŒýÄ;‚I5åfXj?cBCdLÜZ:¶0>|œHÖ˜@͈kû oLpîÇ‘(õ‚]B)}5Wdøô^€†z}ú…²¹Á\‚æ'v&1j¯Ö(·þªÉÚ…šbر§@Ö/ç#[#s‹îÂHœ€áhP ×GºcÆ4ñ=ü,•¼Àè1SÁW ¿÷Beìa~ð;c%e- ÞY„ ›¶»Á~nÀ_ݽaÙÿ§-Wßí§Ñ@dö Óô¿ðݱÚǨ °Ryk·»ÿ¹'›ýú›³WD½Ä*ÔnB¾ÙÏšÂïçþœ)%…~ì”vŸ!ƒ- ?R*@ÇVIÂzÇÇ›æ9¾ÇN±÷̀ͯyÅPw)?tbÍ á÷Ë9”ïâÓ)ŠïôÓYG yRyfâ»øi~®’Rq =5›Ô[§(ØûÏ³ŽØêÇy~d‚½†lŸ¤vºn´ï7¿ÿiïþß>v­rD_ÈNkPCÜ1§ÐKÙU÷J ¢w(YCʶÿÌãõ·‡ôõïæá¸`Õon–‘¥œè´¶½Š­GTã†n‚: Uk$Ýöè[ >R*8ÛäeòYÍÆÎR@ R?e¦˜_–—td)¶HÐjwHlõ]\ÒMP'¡°ÄSc«]3-´ÿ“ÛíZ9IføóZš?ª 6¡JéÙ]Ïù­§ï˜ìc¾îú ¹`6kè‘é/5K–]ÇY›5âÚn6ë4}眚5Z¸C½/ ƒÂ8µ™µ 2ù–Ñî@:„ùñ¸µDäeÜJV·£ŽÀ-[ ÖÁ\ 3/û„„úm&¾ÌOC.µò¬¹-rô… F被í‚èuy–Åúñ˜/z³«eæÁGˆÐæXZ¢ÚwÊ-žU“”ÔYªÎ’`e_yþd*qþâ=—‘œ—<0b“EÊ€Zí¶ý€CÍÔTæÍæTæÍsVd½Ý!(æÃd‘º ò¼žA’Ƙ/ò{qJR(X‹©€›.RôBèç<æ ‚oÅ|BYoÑ A1ƒ¤¦‹ÔM7àõ2O]J¼ç¬ç©‰óx”†¾õ¯¡¯æßiVÎ! aÂÈf½€¾˜ChðúŒA£ H Da¬útÀˆÎ4àýßéB䱋9$Ç&Œ…ÅPÅBºšjNä çñb¡‘k“00C£Ô§FlÊH!P ¡7Æ-f[>gЂA³HB˜ERSF*'È[ðr9ÖKÉrÐ%XL¤› oÀË™„ˆôyƒ¾8xóY¡ :s°T ©9¤Þ`sI~mÌI !Næ‚|R ±wJ › oÀ˹äX$qÔ{>û’ÝìSIB˜7tÃnŽ×ÐSÉï´ 3 A1mP«^@¯g¾6oð( $GbHåhµy¡ 2u”1o¹—ygôÆ\B#,&‡Å`¹„‡t5ULì ÷ñy.ᱫSG`Ðt™§6/Dç– $‡Ô;#7f]Ý/hå‚aê³ A1+\L¤œ oÁëÙDª'γ‰~:y2‘â=qwÑd¶aÛ£˜±©ƒ„€„Þ²Ÿ~Äã.sz™K´bU™KDvé ‘:'u.I(æ’ÃÄ‘º ò¼žK’Ƙ9ð¹ #k1)0bI Å!ô9“à[1o€D‚´œIŠ™$Å0m¤n‚¼¯g’mê³î÷œöv®š–¦@9oìcÑ·§¯ ¯¦’ßiVÎ% aâÈf½€¾˜KhðúÌ‘ƒ ÆaåXõi9xÄ;Ÿà"ïŒ]Ì$9¾0mä(LC3 èjª9m_H(œÇ‹™„F®M4¾üß9]$G©O ŒØ´AR@Bo½3n1ÐØòYƒ` 9HcIóHÊaÒHåy ^Ï#òLO3bÚDÏ;MA§#G‹ý˜±iƒ„€@1¤Î§I>¦ËEžIš-)iÞ}ˬȌû01“$3IŠaÚHÝy^Ï$IdLù½‰')¼Å¬ÀˆM$š!õs&s.Á×bæ%„ÌÛ[‚b.I1L©› oÀë¹äDIoG\§ݿ˹PNM2×ÐWsÉï4+ç’„0qd³^@_Ì%4€}ê qcR¯>30¢szÒ1„Ìã³IŽ1L9 ŠáŠÙ„u5Öœ:È7$äÅlB£×fbä( ŒTŸ±Éƒ¤€@1¤Þ»˜Oh|ùìAƒjÌ' a>I9L©œ oAOâ&Gž9ùe<Jiy ã'Lû5¢ü$‘µµùá‰S^ýÀ¡nzàä¨"K¹ûAÐz;\¾H6•º ê$ 6M&µ®Ù¾þõœYrº&* ^ÑK¥EZì5[ÆÂhÝ3–å¶}äµ±ORñÈâ`§žòIÛ ÒçdÿdÂ"k¬Þ Y=)CÝs û‡¾÷¶rξå! ¨{zK—ò¿ÒROʃNq~W¹6Í}²œ{éI€gGG.Í.Î&y‰€à5rK=ìëL¿âLÞž–¿¾Eo(»Š,ör>»`Q7U¡8ZÜIÈiÓæÛ“û$÷a¯Œ[_înwØGï~Ù$޶+ªAGЉÄ1uJÅQöqµní9ü² ¤€@3¤~z¸-õ,ª«¹ ûýœ‚èI¶‹芣4 9) Xï0ÔYŠxlb‘C_*ÃX–h €\ç˜ÁbËû"ÿ³*2:Ñ,d©5ÿågÆ]- r(ö‚òm•2ÔÏþqüŠKUhó‘˜b«ß/$Õ ¡.W RÚQ'd¯K¨€=%q`JáM/–g2Ó‹Sj­¼QþݤEÄÖª2þ»‚‡s›“«^ȰÚó¨IxLKjZ¡î%Û£L!CÍú™äâõiO(šÐ¸x¦¬º·µ°¸éëWþ`Gˆ—JÞ¬vcÖ*¢k5‘·x”àîÆ£5©ðAPf‚òìâ$çÅY{BÑ„Rîqúþšx܆>+ /$I )жÙK"4Ûw‘1„õšÐ;LŠl¯LJ£Ze„!§Í+ÔÍÑœ'‘bí E:]ÝŽÍö>¦æøºˆ<$!°ØRó"@Æâ™º ÔO:¢ä ¢/|Š”!¤Ù¥¦'{À¤ÔÉÆ—ìð}1‘–o=öÅaŽEŸe2Ô¥þÞ™r:|&LÁm³P$µ‚&¸\X¥¼ü•ܵ žX¥$ê;Äž¦­sŒ3^¬…Ô8ãM™tšl0¢e…XÊÒìRþëÏØ´Ìÿè`±uá´Ì$/6Ìå]]Ø 2N- ¹ ¾¦‡œ<›3Ê B\.|å®O»‰Í}×÷·ôÍ$/!•܉3‘M)F4G-K9Bš]ê-6wK¡ÍlÊöd/l&êöH½Í'L¹mñK쩜 4Áå0kÍ4fÓžßð7;B¼¸q7·ßDV·ß”2„4»Ô{lŽiåòèƒ%•[eHRgrÚ=áäÆâ—qR9Ah‚ËÝ¢¡as^FC#r зîOõB¦oÍ_VzhÀE?,dëU¡³í&¯%q‰††˜Y†ú¦Oà*4teDÑA ‘\„>¤7àe,DzäCëâRDšG6Y«¬×dÞ`±P~'Ÿdƒ   ±A ‘\>¤7àe$”,FÜ“_HRÉYD5ŒXäÃR†°f“ú9 áK3ì 9i ä‘ÉEØCÚyJ„Y¸éƒ}š»G;ü3ñ­½ÌÝ›•åÜMˆÏÝ)Hj©æéžðØ4£ ÏÝ£Y^Kž©7}7^!}v\&ï„bòNALÕ©ž 4âõì|b®ÆW3{˜½ ñÙ;¥IÍ!õŸ9{ãƒi®ZròhúN(¦ïÄdê B#^ÏßÄgÌÖùÕ$3!•ìÅüMˆÏß$åHj©·øÄüœ³5h!(ÈË <¡˜ÀSÓuª'¨3ø5$¹¯ 7}Í+=Gh5èR¹`Ü4Á3Za°ÈÂzMè­¤å–-+ÈmzBŸ\ ËE¬ÕX`¹æg—¤=¡hB§ãÌM^G/™$öŠì‹IVB ÄiJž­]z¬ÈÂz¶‹~ʤn•IÍT™dÈisÁ ›T÷Ó8ÒP4€XŒ%µìœÏÆ ñ±DòÇ' ñõú½eTD3ÞT"H+éRþëÏÆ÷¢1¯ÄE|ÿ›•øzºÕ•øºyâhhgÄ›¹ŸïjLyU;™ÌytOU´0bÔ¥h†Ô/ïjLÉgU¹œ’^£r (¹„`2Úñ&ܹ”›û .õgù`ÈÀ\ä=³ü&å¦l+LÊ}ÔY­2!2ÁÓ²ý<´ÊŸ0)Ù¸W^ƒKrž²=ä@®¥C&×ÛrgâÑ“–r„»Ô[+piÄRWàš–£¬ÀÁrÛå $¥2Ê \n¤÷ºg(šr1ï‹íØä^Û~ØŽMîˆ9B»f.E;k›Ö.ˆb)GH³K½·×¶iPVöÚvO…’{f@rcÍä*tx‚SÈm«ŸP¥r‚З»EC´Šô؇ÖzŽÐzÐ¥hÍè‘ #ý°”!¬Ù¤ÞXE"ÊuBŸ\ KFDCy4Drúv@Þ€—±Pò‘O~m ÉHH%k×0b±Kš‡oý”ÇŒ…ð¥ø€†œ´Œ…7©|H7 ÿù^2W:á± +È`U/Iˆ{É” $‡Ô;ëœô’XˆOŒå C¾¨!7 n2áS=Aш/ü$ík„WÌ݇@r‡"¤r#ü$!î'S*ÔRoíkÀOæÆCzElO›é( G™‚p‹©ž 4¢zJ öËö$[7 ‡´ äqlgØéIÄ µHÆ'õófE4¹I%š!µ{Æ´'W2%ÆÑhdš¨´­IäFž] Ù4-k…4o)ÒœŠEN‹Y’[hgÈšbÁåªi£iý(árÕ9÷BOô—H$¿©©Èyñ†f­¿Ó‰KÇŒhòlå»Wà´z/*tlF®ÇŸ«fY>£»i±Ó‹¶U@!½y¡-·ü³ò}ë²ôJ Yêni«Ú¥¦v»C‘X­c()g…oy X «¾¥ßmû§ÔRωJý¢ /*Íý²ž-0‘-ükôæ²Úcæ¤(öiói·h_î+2Öyò¤[¤ìV²«ˆ¦Qã.X_Τ»¦èÍ E†wû¨ä>î•Y{ˆw¹÷‰Ìûåï&._àMÀ¯â’Œ_×Ýšl‚Šåt¡6e~|}w“ø¥•ë»Ú¨rš»«b I³ÊíÝ ‰¤÷ÐÍ5 ĈÅS8êšÄSYœz¡ùe*rm,ŠŒß‹Wä°ñAÈnvBZ“ñ_~Ƣ߉W>N½¼Öú´¨u¶̹~ðûö!U¡¸Þœb@õv{+rÆã5#zÏ)9OJn@ˆå? !O‘°ÊÜ-× Ù>v–‰C+D~œ2a•ó›~pÊmSÉÁˆåG±Ù_¹Ý3n“r‚¼!<­`ë›òh9Æõ>îÐéãD¨+rxN àäÂâia†ó¦)>Y?œ|+±`óZ’"ãi0¬lä&I›w´î×Rb¤É§Ž5òÊH]Eö(©.µJî¥06J<ÏÄ¢s~žßNh‹ò]»f„h!¶÷vƒ´z°õIÜÒ–ö“C¼äwÑz‚Ü)˴ܱ„4¯ˆ®\Ì~’=ÎïØžu‰ej9¼tº:'}²ê]ô V©Vù_ì*zô=º²@Á™Ž‰}Tfwɼue ÞßÞ!Ç%pý –ÊøWÿ©% ú¹X¨šÈô8™ÓY;ì }AôÙ<‹’jCÊ~úQºÍ.Y®ÿ㘯*¢•ÿÑVÚ\p.: ˜Z„R²Wô,¶{)RMÿ~ˆ%‡ZüIÖàí0­²ƒìèn2.‘5ˆ©Þ¢`ß!厂XAA–r„5›”ÿú#&‡…áFЉè‚ñt8s²W¼VDϦ!V¡Èðrã´k¤<¡l·¡W9i•˜h.Ñä…èö Y½„«#V}²[Ê$Yïo†hIÊ‚héú"¥HѬRñëb‰e?Ôx¤ –˜b‘ôpÈ«oúDËC¬B+ª—CÎË»²ò„¢.wãRË8mÌ¥æ ïÄe¦¿H©H‘V1æXÊÒìRÓ+X™K¹©²mÌ¥ì’XM]HÉ–ÛeAŒ9–r„4»”ýú#.7-cÊ\Šô,\êœqÞ‘¥rIPpIrA)O(ZðšKùKõä`NnU´É\â5}JÅ‹{°Âˆ1ÇRŽf—šžöûÉ#|­âÀ\ŠÞ­pé ñ÷Ä%AÁ%Éq¤<¡hÁk.uf`*5©ÄöW ÅHaĈc)GH³Ké?Û-дð̤̽0[_ŒØö1IP0IrA)O(ZP™<­‡§ÖfžcÕžÑÙÀÆa"‹Ó)9±QNš¾;f@‹L"¡Bûþƒy§YвÈëRŸv†NÆË%MåmÚ¸AZy äÙ­ËISmÚ²@îÆ¤$ Ò{±àM|°Ui~À¤l#]Ë%šÏÎ)céu!ÿ퇩šd+ƒ˜áõo˜”VlûMîð­sÒžP´ÀåÞ`R×WfR¶—}¾vûbÄl0¥€@3¤~™Kù…¥r)Íè…K i•K„v†¬w«ÜÛé©þ‚˽/ž _ìU“zg|ÿ“{»æ²Â¤´r©VÉFó´}½gãû9“û¾iÕëÿ>õÞÊhq4زÓ6!´^usßíL¨ ‹l„)CX³IÙ?*/°7]wþc²Öõ‡¦uúG›eûçÔ'Íh±HUh±zØZÏpåМPþþB7ÌAÉqNÛ„m‚ؾ ÔP‡ê¬%Œm,åiv©Ó§óLçiEå“Iï…É(¢N€×YO& ZJ©q¢-5„ßÉd;Í뀶vF¢ ‡oЧÔÑ8˜FŒ6–r„4»Ôi®ëIÁ á¼ò(ÐRx”škl'x$Èy„HKÍ:¿áQ.“õÎDÊg[“¹Hš“‰ìGc>ðO#ŒÿÞÒé"ö»8ì§î81‡Ýú„(ëVчfY ’C‚œCH°ÔL~ÿ%‡z•¨ã8;F£#×Oos8ŽÃŠ;‚FŒ7–r„4»Ô9žÎ4ú·£2) gaR~ô¼Ke’ gR -5„ßÉä¼Dö2Ñ̳a8:rØqT ‘Ý%(aÄh#!H¯ Ùo?âq^ß±VE|+<ÎCïÚ2`g£Ä#AÎ#¤@Zj&¿ÿ’ÇóúºÑ˜Çó<0&‘ŠH…HA–2J1ÞXÊÒìRö똼þû<#âuž9¥$Röû¥º>äš?ô:¾Š¯Êɶi'éožw@Ãp—bh+ËHíÓÕ¶;B/Cþë&®«–|Ô7ëšûm[}k'*°â'Å*ÕY=R\í¢ÇÕ/s®”Y½éaÍ_ "§ä#¤6G,Óß¶œ¶±d-|Æôè–¾O„ãnŠæÐùGÛ¾ãÊ™Av†xA‹å¬Q³XŒÊÍ–n -~¥¦¢}ÐO+±k¦qÜ Õ2 Šàâ·”ÐÔi‰s¨g”c¹›»—ž‘T{é±é=£ý¹ù9mòÃ7æžöŒög[=ú<'=#¯Z’_Eôî{é…Mo’Uh³Ì‚Þ£rælŸ•߇³Õîô{[—´Ö1÷¹,úÄç_Av™ .dX×@äöëÔ«ª!u,‹Ý4iM.4!›e a½&¿ý„칬úöþŸKxÚÕ ÒL ÔW¿J+÷te”!9g[S°BÍþ¥ ÜÉI=Ah„ V6åŒàÐ äî²øå|Ææ>»Øý[R1®$’H¨…Œýò³ºy)Ù™K=Þéû_p)ív5:õx×Þä‡z†¼)iI¯}9É2÷óò פBĸÔ\’Z“yË.¥K_Ù.¥•{¡’ ÍÅž2™Êò&ܘüÉ¿ÀCRë‡N¯I 0çB¿Ëå·c\BŠÂÈjP§]JR øl^Sì8V­+®lÊ—!çœzÃ;¬v/;D.À¯Œj·YÝv$!X­ Å/?árH‚WynÂr†3$OªÄtÚÄõ£úä¢Bvý>+Ôíæ$ 6³ú„Ðt.·®×,¯.™rµû_AvÙò¸nFÈ4¶:hBjȵ=#o»š}…VÑôA,ek6©øõ‡¶©ÆöÏÕˆÅiKe£ ò‹—C’çÊÎmZ}+ Ô†%è!ÁæNH}BhDVÛì˶XŒ˜¦xZì÷À6¦§óBb %j!d¿ü„Ëëowû Øæ­z‰ã}Û”W£Ú¦¼áRg”êòF@0¸ÜÕ#öåÖ¸ 9$Ô½þás9öIIj·í˜Mö ";¼$ ô¦Ì°ï{¦Ÿë6y³žÊæ¡oò¨OÃ\$AÄ@!¹<Î"(—k»QêòF@ðΦ,ÞÖ¦dÈoOÙ”6ö£"v)GH³KÙ¯?ãshU¦Síoè”Lº'ÁmÚž©'ÈÛrÁ¦,0Ä>†?fjò¬k; Y+›ŸùíîÂ'¿’<ü(Ldé† ‹6]4_¿uØÁW¯ÿ)å§®.UßÚ*MIùµèéë Ò}ŽÒ €²ºÞÚ0Êum® Þ¬þܹ/–Œª@ÙÔÕüÝ·=3·ÊM É_HíÃ|Ä©ÉÌ ²Éú‰¤ Í)õ—¬ãƒýÓ’P÷ÌÒ7f[9ð¬íx™úxšlþ”s¹ b´ü—"¼ôÂå!Çdû@a›ÒÒãÁ‡“ÃÑ@З\/ðÁòŒ±×¯„&'—zgF#½.ó†vNþ-_Û?ª&s¨|6½ -¸Ífòôùú>yæ<5nmË.;™}õ‚O–s|بw™åô‡Â¢˜ ‘ëCg'¡H­Éø/?âQl¯AÉÚR§2} ­ŽoYm¥Ô×E{†¡Ån^A!i™†±)xœÃŽÔS=CÞ—úD­K¥Ã–SWtÛä›·-¦) ‹Ý>¦ð,NDL ÉÝn7Ê^±9%ŒÆæ¦OÕTVÀvÉ^e›&‹¿“Ö¶Ÿ³B«>‚!.!*W-Ìõ'*Ñ‚ntÜb,¢Òg|¢¨ ©+\n[a…Ý„,4ÿ —ˆ±’KLåÉ%Aú¼–g÷„‚î„öa6ž=äï¹Ì!áTñ§ñà4… `½&ôûLbˆgœ„!žq ÄI)ˆÐ4Õäm¸G«Áå¢ož8ö?OÄìw.#$š~±6CJB<ì¼âˆuVdµdMIæâÅ¡ž)nu)µ.±0ýžM½EQB¢„cEˆ/ÂR 4Cª?ß0§-Us>ËïÅ䕬$ô ¹,ƒ aОˆ·à¾,[ñXªc›e· ¿Xñ-†o©ÔSV5è¥nÀÄÁ0GÆš.ú'æ+5¬WßR8+ݹ}¬%n=·ÍKº%‘‹¹ÑiÙôs$gñÂ4yiØxøòû|–þ7f¯ô“¤ÏYánÁ§ßtéu¡·ü/f3xÈœ¹à0 g›“Y@LÓ'~C;#Ûm¬b›\¡èlâRMÛs@ޏ€h或@’ºn× _’i#Ãý!™§/Þ°%&÷×Z5`iý<«Ë%àJ¦#Äå©PÿÄ%Zp÷¶¾b2m Æd2!µÛ]=¢%ó´Ü@ó_‘‰uY’‰EX’IP+‚‚7 ^pWK]äØdïë ãt¶±\%Ä—´$ek6©ßg3}+AáHÁ&A±ÊM¹XÒ’ö„ІºÌõ!+¹j¶}¦dÚYŠÏÜÖ³ž"lëŒíç‰Ä¨†ÒëB»gðyÂ¥”½žÕgJÊ¢ê!õ k»AKìÃÆ8”‚4¬C=CÞˆ¯¼f’>2?Ȱ4o’ånåHrB¿Î&œf² §)ù¬û ¢hÁf}@̦ þ÷lÂ4]†,ÓÝ!î"Óœ .]è?à–™,3¹Ÿ™‚á!S;4ásĪ&¶Ù³brµôN˜üÁ‡ZØòö´’{—·%g«Ln»_Þ{—ÉïÇx¨gÈñÉ*}MDféë&²Ÿ@@f%›¾0eÄ–¡$äéu¡·ì ©´¬š’M‚‚M,¤Šu) Æ"”Ô'„FÜ®ªø:ŸØôU=}5¸ÌJŸÌìAê—ùÌ]|0õé3 Ÿ‰m“„ˆÏüïù„¡…PÚ¢o€0b[N$äéu¡ÿ€Í02‚‰MXglB‘ubË)ÙLl¾Þ…"Ç 6áá°ù“±½°èw›ßu¨'(ñ…m÷#6wÙxÌæ¾çYuH5Üë±k<ŒèMŸ0o×…ü·±¹–n›ØÜÅïƒ:Ñh·XúöŒØ”· ˜W} ž!oħë?¾ µ¯Z3†&uAö²DßåÄñ Y}_ݨê$"Tɳas9Þ¤7¶~Dø5>öÎ{Pûµ£LòûÚcÃ?¡ã>ï”´öˆ‹TÛú7]Àß晴–<À]Zé”Hìó^§DŒJB¤â²hãq·±–<ÛÞæ/qž‚£’v hÂçë/W(Òwy-Ћ¿è«­kig<ú Ñ&Î V3N ÚkW|¶O¯l‹–J“s…Í»‰Ÿ›»sØ9ð„í~Ø>’O• íúh’ÝÇõuç YüT/ Œìsõó×¹[Ö}mÛQù<üb&AÍŸ-¤}'Ôl¬ÐUØëg»Ö3tVžÕM¾ +Y'7¿"l×g%“ãR.âNçX={t€³àðžŽ9.×; úDÒ+N‹ý½<ƒB~Âwcå{}k:¡nG»~϶Bqt®ÏŽÖâu¤u[}²p¬úB­Bš½œ{… ›×q›÷撚’l%„¦Ôê§Éh"?î…'œÇ‡äÌ ÒêÁCqóôÁw6·ÝRþ'w•³Ç´rHÁ¦#fÄbf–r„4»”ýú3>·VüƒBZ½6ÌPë à¢èDÈœê jé‘^EÑG?íµZ²×Gì½ñÜ®$Õ|}K#ÄŒBBoÊø*þ ›c-¤(´Ø“8¢®Ï{((?[þ@È6CŒ 1”3äMø*ê“ô)­D}ÇQvÄI‘Õ)º8Žíc-ÑE"ð¾ÝS:¾Ãlzߟpm™(ä“,0ÇQb ÍsCp‡6¢‚"ú®1ÂÝ÷¾I?C/#¾CJo•ˆïíãý.‰ðŽ„Þ²Ÿ~hÛçG=%;¤¾Yû¾!ç¡é¿ÿ:ÖÓ‰³Äzr¿l”XOÊI-%ÖË;ñPL­HÄzr49²C¢V€m…±›m˪¦-?À¦¯¨àŒí+Îxkš.ãúÞ»›¾>x¿ùd@öš¥gã`O·Ô·#²u7nÈaï}Ó´ ªÁ^Ð+¥¹ÖÆ"uÅÎÉ"ÿe"l‘¦S#6í±”#¤Ù¥ìבކe²'×­EÄê¬×öW÷ÒGYLzB˜S³^ªOøâÂÝ >¯ß:þ‚ÏØxo½Y=BÀ§oÅ¿Ç'ŽÛÚµŒ>‹Ï>|}wðIP4âÓVüg>ý¨’¿:`&¥?Ôå#v%—ù $4§Ôßñ ÂY%ha¨{†ãK@¹Ø >ãR.ñ (ù|ýÎ1ùôµ´àÅ'}ɪÐJ˜Æˆù×6<é€Óî7ÿ—ùΑ>6ViD  ëg—úΑ xÅkmoòÓwvÞCЗ\/’,ãwŽôÕ[d0©cý¨3QF‰Ü¹ ûåg\öÝ/ á™#}¬?jlÇáÏîÙm{Ž˜LL¦ÜwLfjÈ[m÷Ò©0B8Má3aÉä!ÝÂñ W¨­Á'n%‡ëZ»£aç3zÌ‘'lï§íùä–¼*™ixU†Ü…æ–Að– ›ÃÞW]`©+4,Ë÷ [Øë'šmîžeÊ=ۥϗp@–ØÆ ©}âèBÜÓB*‘Ð ©¹?M<}ý-.ÐÇAh›G,YãÔS4.ó­Éá ±‚ähC=CxIñÙ÷go²‘Ó7;´¸‘Gfùe¦eï¾IñØòï3ÆNØøÕÂ¥ìåyÈöV·Õˆt’–¨…¿`û\r×ÇmüÔ™±´ÎÍì/­m­6žPµñøî.)Ãûð~­gÖâ“NçjŽÛ¶#/»€”š„ÿî#¾»,É+$E­Ù]'CÌðDéÀJ‚>1›º™7Ç‹*úªE|Ó´ûºùÊ€n#æs;88¹m÷e·ÅŸiôÑà?üŒÆÕoÓePÑWM É6*Íw&deŠ˜I‚‚ÉnõZÿÀd¶áöŽÊ½g26©L$¸„”dx¬Äb–zHvÒ_Й>t¦ƒ mqJ>Pzê‡p°Ô[ ýˆÏÍmµ¾¯†U%v ´4ÍX Udqó­ïP¸£Éδ;¿@ùŒiÎ^œ…ÕåŠ ¦Ép.âÂ"N÷á+àsÜ:4nP·'„–¾¾(~÷Ë^€Å*^«dB|!… µÑqoxÞÜsøÌ.\(Aáhi‰ (—ÈÄþ´MøbëÝgnÞqÀ|ÿ™ÊOAZØ!#f«Ú‚ð/:à'aCÌÅ´“øØü:HË,Ý…R øâÕ;‚´÷bÞÏtŠ·=u ãÍÉù>Õþ,PËWï'ã} g<ïSç\ö§™ù³—Ê%ÛU߆¥Ñ&¤Ç¥H5Kñœtâ”C*‘МR§euzâ1d`´ê¢Í•)PjwÞ&Êmø™SΊS!H|†z†¼_­DDMã] þh’7¼ïØô¥HßãD#¶ 8[ÝEÒ¨oï‘,"Ã@òíÁb-B„ ‚KÚ¹±yÅ·ÔÈ×Ö"ÒºãÕíþªˆ3Ž©&ôÅR¤î%IôYö’˜Ì` V‚L_ðOZ]äéFRo‡§ÈeHÛ=ŸP¬:ˆ Z¹‰ƒg ÉÍgNSuBhÀ˦%3ɬیDÝߨƒÂczBbBˆqvœÖ÷/HŒ¡`¿üŒÇŽKêX‡t\e‡}¶Ó²Œ0´ØQ™¸l«/Å¿å2ñEà .á`Af"ÁfJ5+ö@Ì$â6ûHvÓ_ðI.7ø$ÿ|245>»Ü€ÈdGÀ¿fw%ô#>7·Ö¥„iiW@`zœah ²¸×ËÈÜSdoúJäo9_# )V"aw´îëdh‰sR,EåR¤­~Ý0—"Ù¥XwdÇ'„¦~±i%z~Ñ p¢ 7‹>HÀ—$ãéu¡{^Z†¼ 6œ(Cæi‰Ù@’XˆåšÊ Š&|± ñI›‰ÄTÿ‚ÈO!¬·T ìAðþ2œq÷ lúþ=™ßDhgh Ì0¡hÃËŒÐÞ‹x?Ó‰uH˧‡o8äûdû³(-"ç-ö's-ò¦×þ4; ÓÆ¢Wð)RËøÀ#µ±áò«‡cù¨aoSˆ¬ÕDü—1>–—"#XKóžÍÆQw‘ûصî&G !€XD¤:!4àó571ŸKÉ,å—FÉÇ™œ@è§,¦Ò9ž–ê»þvÄ;̸SÕG÷DŸA|0â¤åªG$WPYÕeoF°L]žúÅ¢.=ð×½0Î’¢ºiUù²ñe\ 9@z£çÞñ¿¹yA¯AThµÁD/ ¤‚¹’ƒz@Ùˆ¯w—šJæõSûñšÌX‹ ~ˆ¥H¾ŒËBÀàRùYôpxËm•|ÅLsü‘JD¹ÈH‹Œ2r‡P0!´á &ÇÙoÇÙðÍŽtoFJu¿¬´`VÈ2Ž^:Ÿ§èçYê›(4ïo¶Fï÷¬¨£q‡8ì2!Øe ¦B=Aç­¢Ê-ÎzÁfoØ0û9› yIÙ+6=˜xMDY£Çóç_`Ór9— ØdèŒD}¯£VbÓcTþê@‚™”ÚPÁö ±ýæ3МRÇ'Ì!*ha¨Å숳åñ;ÄgBàóõ]ëäÓOø£/±» 'iŽøªŸÛ¸ÇQ€‰ƒä¿à2#ècãì(t5yÖ“‚b‘;f½]6ä|¿Ý ¯ˆ)§ü&o¹ä'r­N×rÁlHAÛ­PIˆ1GBw*AÿißûˆÊõƒNøþ-_ë[,cì·]˜1¶¸­ )÷-•т׭Å=¾¨—þ@¸K˜qzG·.~ì+¼¶ó[^%ß­/ŽÚYØGŸ~ï¾p¥d›áJ:âvø„¡?vßþÃï+æG»W¦£ßkt;ñõÞ˜ëjU؃ü)O@ê)ÏÕ¹3æ2±#`½AˆwÇ”ëì 8÷Ìèdž‘àÛ{ȃN™ë«Ðè”)—Aê`ùÜ[©*ù`¿7BPtŠ4{‰Ö)ÒºVÏÜ窭ím¾ ŒN!èõ1üÜO™®e^qÃÜÙÙ0¡Á² ‚ÑD¾èÒë2öÛÏ8߇ô!{›)‡+û¢ ȼ}?C`齩—˜ËŒÂÀ%C«/˘"GQuUBÙôÍôŸDðZÛö Óc#‹ÌÒ L¦#ÔM¶løK2ÃvrëÆÐþ¹–ló;‘Øü"*c@T&Ôj ±º1›¾ò&%?Ÿ×*{/;¬ŒØ¶! ’ŠÁÿÎ2÷e_Q¹ ÆJPóÕVr™ÈLAß8$í@Є×YÙ,-Ç1YO 9Èÿl–IÝ=ó÷’%=~Ë,‘ó8Ç8çOè‰Y¦5Í$~ÿeYâÑ7³‰Ç@’Ç‚k%„X®hfßê¡¿ »­I$ö²“H‚ÂYbÃ*¡HM™¢©›ú—›OéKÉ“CÆç[.d”¾çR‘ŧù²—Íäu¤m*þ=ÝÊ‚sÃ&LÚ$An¸Ø–‚][cCë·¾ŒCêñ„¢¯÷¶Éë~Ý6!…x]@ˆí²”#¤9:î·‹]ÄWüF°É‡¤D0 d‚Ø2LõE#¾Ø“õ•ó‰õÑ >ch`Ý[$Äí5–o°ÀËNøÁ2+Ö.Dg,zþ@'2ÊÁa$;ÜXŸ‘)Æ*Ž 4â‹MÙÙ›Lž¬^ëì(hâHkÈÇíRmG®C”Z¾}ðh R@H³KÙ¯?ãS’Õ*³G®² MÛˆÄ u?îÊh5 <®… ÅS¡ž¡ùm¢3"ªüh [”< ¡µV<Ìm·»¿Æ%"¬äáT×§ô:8m!Ädˆý÷L¦aºÙ¥X„x8EÖìqéR¿ÏeÚeB°K™b¬Œˆ*µA^曳äÄ’ª’¾åòc<CjØ@|Äå9ÇÀe;ãÎË›\~?ÆC=[¦7⫌ód𡦒t†TòS!>ã”#¤Ù¥Þ²ÍŒ¢`=¡‚O‚‚ÏœƒÂ”‚˜pR}BhÄ!Ròx~5íV§/½&ˆÜAæ—Ù̽ʖ™^“ ÷š’\Bì¿ç2­,¤Ò#Ò!ăK’r„4»Ôï³ #( 1éLÛD¸™¶‰Ø2ùLh~_÷\'؃‡{ÂçOÆzj†Ô;¾3ù„ï|ŸÏïÆ:Ô“}F#nö‰S9Àå=æóÀuvvÜ÷}é³äT‰úùɹ,õ½—³ü{à ¬mQŸËþQÎqxÂò9£šOä:Õmÿùlžq‚ #Êòàð$¡Ø3•Æ"ŹžHãn;ÐçÒî Oy(_Ó©ô:K±}6™vR•ÈR‹)Ìó¼åáfä‡ð€o|DZ5¾>M1´ù}X5 æè=rïL^AT­òq^AT­ò‘†\VçÿtïJoë4ÿÝgLÊ[ôêÎu»§Î…å2tÜë¥$”þ‚p®©ž ýVŸöÎäåyÎò2él-L0€#*SChC¶x·0BÌ! }ÜDºmü<áRžÓܬR^áÔû@¢ñVòC~õÆ% ²Ê$ õ 7Á[nâó¢§DýçÕŽ³T™:¯fl¼E}îKä¿öµP"p¹ ·~Lnúܟн£z''>å¹Z}E _{[tÉ÷ZNT(VXÒ’›Ë}“†^&'>¯ˆ©•EíÙwûÃ÷º$–°$H*)ûñgŒ÷aur!v^ÑÓò[”§ /aI;4ᶨõM¨sFéƒØ¨:g ŽŒà!5ªüÚ5‘XĦÒìRöëÏØ”g5ô`@ y{S÷©Îqƃš„¦ïbë P.k!˜kX¨'(ñņ Ñ–˜ ä° ×)´×­+É\ˆü:—°Ìäfhy¢+ioÓ2'r6‚Ëüï¹LÓt!²L±„ø¨&{v„Øt©ßg3-3!X&ØLã<cT§ö@² /7¯DÇ< —cFæ'\þ`”§bHyv¦'\^3Ã1o\®ñRèM.ÿ0Ê×xu”7â«Í+2Mߪ" $é ©äÓ—¦ŒØò•¥!Í.õ–mbó*­;UÉ'AÁ'6¯Š- Æê•ÔÊF¼Þp!>#>ͯ· ©½n^ÜAæ—ÙÌŸ›ñ)ü&AŸ2ˆ'”lBð¿g3í,¤ÒcaDˆ/žHÊÒìR¿Ï'ŒŒ Y2«UëŒåY'ÖNÉ' äó‹åT:O°÷„ÏŸŒöÔ ©w¼'ñ¹ÞÓÙÿ˜ÏoG{¨'(ñÚ>Çrh΂äs,ûYù¼LñâR»ßðõPAdÅDBB/dÏ—ðg6¯¿Ýo¥s.èž¾O5Öô}ú³œ½„!¬sR«¡TÏÐþmñœ±¬CÞHæÔ~!—vi–Ïͧö ¸B{xñêÕäQ^]üˆÞX¢þŒðˆ^¢^­:oõsô{ç éq”åS?CiCJé²·;€¡W+ÔëÿŸbÄÜ%Ljܩït‰Ç©,H*)ûñg„·Õ+E´u‰Ÿ· :ï39‹RYw Ù€Ï%ttÔUŽGØWŒ[zŽôiµ"ÒºÔžž¸Á½hAÔÓ^R‹¿ÙJd“„¥9—ů?ãrhoo!o@nÞâÒ¸UäúU/‡ãCîA/h+=îg/¨ù®nBhÃë©l,³ÇÞI'&ü›!Ô‡Wc/„hP¤IÅ.4ûÓ­“ëoϬ-édÚC¥?iïŠçœ¤\Ĥœ h§„Endr,A/`G}é¯ÈÒ ¹Ó¯óOŒ,ݤJ†¨ë§V+@Èf˜¼¶ïÝòzŽlСòþeØÃ¼ µ’kª@Ù2_DŽӌþ<âæl¯+„–Þ‚‹W½r­Ã 1$y!„ó/; +ˆÞþ"©DBsJýåø\_…1) m7wáNÀR OR9C=Š…¾|Ι\Ú±bù`ÀIL÷0^„„XÔ€1 •çvoш§,ü¥~nÈ| £ÄÎfú0pŠbô%‘`%Ü®¿§¢oBp² ’cŽ„nT‚ý7œ.ÞWñÇÚk*øN–(; "‘ûŽÇlÀËÇœ: ®Å"1eXðÛ3?Ì+‘u{Øû‚XD`6bƒì°ŸD ݪ â<§s²Ñ˜ôòÐ'à aüK!§[°û¹":aÈãî8@·X×䑃_jq±VH}×+á_©/Éîv©îù3q)úãb¨8. H‹ ˆÇâá%éÙ[ð°Ù§ }U¿Á—ðÆJ!Þ@2ØŠE ø3Á¾ [Ö­ÚBp Ùu‹ü¯r¼Àx+(΂â\NDsì{çLŒ;Ú·Ø$Å.å?þˆÍ±(á5ÇÞ}ŠC$RJêÜ6²™ê B#*›ng4ÔÍi@>°MíïY‘.Ü,e+6©÷F:l3‡âÛ¶)M[çMð°°ÕÊF¸àm‹@JÐOÊwqWUèÈeaë$±¶’ç¹ ºÜCØ'}¹íµø/?çWäÒKƧ ZâŒ?ÖVªñ¸AË­º.C±F:ú}m%ãr¶ e^oˆ–µlÐGrø3æ”:V\ t2 1îHèNfÈtO_ô„ÌN5ÿ-ßê[ÇÑjmÝ —<&Sî;"{¹~|Û"8®ñ?v6È ð{•´XÛ‡_Nn/ËJB|‹à8"ñè—¬ÊúDO4l+Do9ò„çc¹Ö½š¥C±Ð}Þª¦ÄóA±\•¦ì¥ÐÏKþq+¬{ASöïjÇz½I ­,›Ù-‰4¬…Bê›~ñ-îÍ@²ÃCÊW5XªØ$ë¹#ÖrŠsúŠõì®Ø Nøb“À;ŠÖ£i|‰„}Æ&Ašðg‚c“€ ¶-&8ì:Û$ðAG‹ÖŸº[O®Zav¹F…qVh‹çŸ;!v ¨bK€:PŽ¿Ø& –¾Ü&HŽ^€«}Ý/ûë$/Û ¡@RqHý؇ßáfÿÀw„ËØ& (¶ HÐwH;ã%‹zÁ€‚ ÏCQE"Vˆ!@!NŠ4Z:“÷â $†É¸Y`2®`ˆn:ìwLöÛ†Ë "³¯Ò™0•~úET•ŠÚóÉJ"š¦t@ ÙIÃ%Ä’Kœ~%—¸•'b 9+Ü>’¸§ú ››Ç¿[9ó%‹ $­Î}É2ýз"‹ÇÄüÖ±tS Ù•væûׄ#Ÿvœú¦ÉáˆfIHØ.}¡¯@=ÎÝÏqëÎ8á¥NO-}}£Œüî×½.4¤ÒÍF/b·XÊÒìR?w¼¸ÕðŠ^øO‚ÂË&¿€’_âCª'è›§cY€7DŸ™Œq‘qD"!n¬ÞAþ߉’LD ß’‰!ýEBqá&#¼4CÄ ¡_ñ9[p&{3rE'²z}ª”ºl —ñt)Aˆ­6 9¨!ã¹–Ÿ°9½*A’9Û­n)œ7h‹×æ°Ì€h}‚´Šõ Y¾ºé(øQ£«ä¸ô°Ä!, ÄÃW)]ÎÁ)Y:†ç±:ñPùŠÍ#K‡‡Ó<$|Ï®Bx\ œ  <#‡„9œ~¯Žb× õLÖG{»A‡$è-Ñr@ˆ©o‹;ùÙsçÅ„'QˆÆw d]KâQø àëN`½&ä¿ýˆr!q”äGCHìõü<1ä+ZUœX$OŸ†z†ÎHÝüêÕÓÈ£u6r OörwTþ;Êi¯ü×Kå˜@’¼#6,^ÐicÃýzNÄ« û<¥i˜«*¬¬¥§ ™$—Ú­ã\¢¯/—îj‰K àR(vV±e÷@ ·Ÿïq ÷›\Â×&—í¥hEà ¨|Ù@=ä\6ÍÃ\¶Uö´˜Ë뿽„Xòߣ\eÄ*–r„4»Tó,4O¸lÍGk’Ù!¬0'·ÛodîýãÆe ˆ±R U*'(šðEX jʵfù©m|Á¦‡YòßY®53bAUÛFý'Rz¢†m)=¡òX" ¨¼‚ uû#•Û¼U±d(b,açýËg…Ј/.⪚²Æ¥¯2¾`2F+!>¢·Qÿ 9/¶„^¤þ[>5–²DHBß0™#‚ÏОj ~Þ¼’øJ”XÑ L4ùÍ@¨„âh´àJÌx);Ši؉Àøcú +Í)î'v{}ê¯HÏJvÎCÉYB`6‚«Wdï¸îÁ†MN1P K¦‰ÆýUp•~7‚«ôޤ§Yð² 4oº4»Ô[~7Ã+¸FÄRé,r/›#ÄÓ ‚C9Cí•Ý‚+9Ï]‹…·»± ±&Sy•  î8ã-Ú 2}lد?#³ë•ÿ]õ5î¨Á^Ecݶ՟­;à€ˆÎ«_ÇöG:³¯7j™OÛ–e>Ÿ!ÕzMY÷¶Ô @ó_ñ‰ÚäÛ²ÉgBò³3 ”.!;"¼möß`3ü¯‹¤»õ-WFl["þOÒé"¿Ï#\+AáG“Ç„|—–äbK–´'„6Ô]Ú®ÎiGÓJ]&;,ŽÌ%ê‡Ô8?8•–’Œ#¤×…ì·qÙ/oRr_Èr«‡výèî\ÚJÒ¿e¤ A„¥©ž µF¸w.íés9·/ˆŒØj¬‘J:¢TB<,›ßIäˆG9Ae¼zzb–³‹g+êñŽwŽ)š!ÕìªÜ>ÇŒ¤âWóƒ›&- }ÃgºKÂ9B{"Ñ„¯ÂÕq+ÅÁß ¼xð-™±Ž[Q2òDÊ^`Ëz4üÄzLjH4ÂÕ¤{r–ÐQ2ý~AöDín„«1h®áÂÛ3Å 0ñ¯ÂÕô½œ¦ $]FHÁÕŸ|ӤׅÞñ½ˆUÓ9f` AÐV¨3Ä4}âêZk”[ƒÕ¾(×dß}9bÈnWü¨ŽZ‡¤®Å“¼dÚ°ð_Hæ”K¢¬öË jÀ¢q­ûÛò³µxBĦôëùg6ш×áóiÁóø„Jö‚™DÌ×r/ÍÅ'‚¬äUòIÐá§]²‚C Žp_K½äØdïëñj:Û> ñ•¤ aÍ&õûl¦{%(|i†¬ EÈšrŸ’ö„І— ú6ý-GÄ}ˆ¹ºƒ~ͺg¹ˈ]†ƒP¡7…æÓÇ£_áÕ¬qA¿bá/Å-Pç ~q ¼Á¼ õ y#>ÝŽó µï]â/ ZûÞnûþýúÛgár•£oí–F"éŒH–‹[©W@ÇùMùñ³œs{R~ÞRR_ÐŒìÇŠÆ^C[!3öí.ÇwÁ.õ^D¶ÔÇ Íû þléë:)Ü/ P¿ryŠ£vIpS¢ƒDbþJ) ¤Ù¥Þ"=ãŽ` _œíwháv„ä|1š¼B9Cç‚—>Âw=ö9ÒúG‰´zk·ð PBH¯ Ùo?㲟1Ë>ã$ĵËfnˆ×½%."2]Žˆ å ‘}òu¨•TF`•Ÿ ÄïW§ÐŽ(ÁÊ^+yЯs‰H+¹D¤ui\÷Ô"õN,™!øß³ Ãt²K˜ñ *ÙâÒ…~ŸKØe"°KP™‚,ÈED•ºœ·ÐìÆã¥â(»Õ=^ô<âñùøNµÒŸ~Èã–7Y‚ÇõVVò‡<~?¾×H8›Ðv[4Üã«4Ɉ¦Òv•!”\ÆôOˆÏö)äéu¡·l2ã+ØMSÁ%!ÁeÎì af‡fñTžšðú²%q±T~38KHÁ[‚—½Öî`©_f3C'|pÆIð–…·ÄkBI'ÿ{>af!”–1%!¶;MB^ú}6ÃÆ CL2Ó6c»:m[ÓÉeBàòõv5¹L0ßö€ËŒóÔ ¡w|&q>óm.¿硜 hÂë*3cÈ>ë —tTffŒeF&'I7lf¦Õ%!þ’n¬K›\ÿîòЇ/•ý&ë° …ÿåC: OÞ%K½ŒÈ™céÚ-*WsãšQû¼AK$އtÅ¢Uš;⾫=¤“ÖmõÕÜØ–ûÛºq™ÒZj0ô²ÜL|7x²•HšRÍ_)$£‰ü¸žp’ÒœÁCó–)9!âéM‚ïlÚÔÏlÊÜ_ÜE9¤`ÒáF1WËRŽf—²_Èg¼Í&>g”šMò܆Zn™} ‚÷MAøÚTOP4â…ûâÜ öŽy»$8ŽŽIÈù×=vjÁçºEñ@x‘°a†Ž¨ÏÇ(=9á¶S=Aш›'ßwÕx¹ÛÕ’Ž\H“ËãÏf€H9§Ã—’WŒ–)JÞòœÑ‹I$š!e¿þÌ't/:¿ïšN¡ÝÌl—â]FÞ¥qŸ7h1Ïá‚ m×È9Ï"¸]–7͇z†¼t>7IÜ!öÂW]˜lSfŒ Ø"ï–ċ˼Ç&)v)ûígl^^Y_€Šp×üãR¬Éž¦=HeJ€€·nwJŸR ݉ 7&¯©jë6B-ÁÇ&5#uöZ,Çi"Vå¹”™ÿ¨¬$Ì­¶õŠK)Ö·á×ÎV‡U›Í· íö–j;#Šhœ³Bˬt&:¯ÿµµ?Ñ™mp_]67¦s—Jƒ'Ó tBjoA !»¹Ûì„@¨£þ‚ÎÝü/Ó¹‹ž…N†{˜µ‡ãN´p?¬vSš{+¡ç|nБ%†¶Ë’ª±1î«/pYô²1÷B ÙS’àiþ=Ÿn?û;²02†Ü¥©ëqƒ|o;»A’`2 A†- Àe°Nó.s )8IpIHׄ^,åHjF¼á6“×\b"(æ ä2¡à2å9Ãÿ+O-0±û„žvÓwZO 4Îu¥w-Sö˜ôƒÝ±I72O„8——TŸñül:Ù®n©k dŒwm7'}ØWÎð0„†_`“ÖøWÛ4<¢>H(ú`øù:1>¦=Ý è´Šäûî){¹¡‹] ¸Ó6d`0÷ŽYÈy·9x2Óð}ãÉŒ›ºXÊRìRöÛÏÂÖcÈÁÜOË—Ž8`.¾#NH³‡œ9•SÉÅÄEÊejh6>—îi'Ã¢å·æÆ6ž¼¤Ô[lBsJõlj'e ¡›Ui¿sñíî4VГ—AëC>C=CÞˆ/ù„m‚=ØÐ>cd3r-˜ª¤×eÞ±Mb3Ìçm61`IPK³X'AÙˆ:Ò#2˜Ûæ›cWÍmõ¥;$&¤’;Ÿã±8€¤IÍ!e¿þŒÏ­Ùš<#ƒ)‡5ÒJZ òiä“< F$ÚA^dziA\Š f‹›„@¤ÞÐÆ³×<¦_Ψ%ÄG6¤€@3¤ìן±Ùö¿£òÛAnÚAnV¹i&z²ÊmHøÀÖãÑâBÉÜf'³ìYCX¯ ½e•›&þ+Vy©;÷J%AÁÛæò*B,¸Ú«VŸá‚·p5¹ôà‰¾<„àÁK"Á¤~—MD«ù¹ˆŠÒ_ÎRB`3ÿk6ÉÊ"8…!Flš€-êIDÖj"¿ÎdšAa„r&„3í2VôÄdBhÄ-ð)ð— ~í•Ï9é…Ð;þ’Øtù6™ßr×NH4áf•?¨{2v t¡í¬Ž 2mÃB‰ìµÂÑP÷D4Úý‚6sº'€PZ'Q€'Õ3ä¸×äÙ.ªäéeÒ¹uÍ£É_m•~2¡·êEý››\ ¨ln}µ¬0Tö‰ (e‚OëEýˆÍçõ¢¾³MT×!$*ð@ÈVlR¿_/ê§¶™5yR0 ðú„²oÖä¡:Z)µ¶’—D‚;”ìú]6¿«É“E´òµ4jòpA.'…Êv½Å&- Ãå¸>Ÿôõ ŽçZ«¥š\¡BïT†ÃH§ÒmïŽôuñ¤±)¸.Ã.V¤z†¼46ÙW£šMÿ Ò¤/Ò†1!”Ü]È& +ˆ^Ág!Š^zË6Uø(¶yAûG!“#.Ä*´Ø}1’»ìWC8RžP6ÁÝ2×U=óÕöìh<&c6¥|\/‰w.õËlªaŸu¤K»Ž2^ ñAíb%)ûïÙ¤!kBoó¢W…~K­‰Ì—ÏF9)OM¨£Ù°±DÂs¬'„±žrI”Ê&|1Ö/—±—‰h½üÊÆ¦¹^N±5¶ÍõØüh!Ä©K) ¡BúÛϸ”çv³Ú¦TªóüÄœ7HÞK±iIË„XåE¾²Ìk2ëk±ÌkÆ;v¶ÌUžë°a®›Ÿé'-„8s)ä@ê !ûíg\Ê:ñf—WD0:[áº/1 ²¶·›vI¸L9—ÊÚoîán—×,;{±KIÊvÇ'›H©Íß¡‚Bœ»”Íê–ùû ›šÖ²æ˜vó¬pt»îÍP³;ád™€’N&wPO·á 6·Ëí…Ím阉°s3!>“”!¬Ù¤ü×±¹I,½:·eÚ%ð÷éÄŒN‚1}“ú„Јیîƒvkz…žFúÖV?²že Ú®ÅY/3Er õ†PóëûOØ”œ­ŒôMRÂó°ÞäA}«ÈAy t‚Â2I.Ì0u'‚|a™—–vËÜVƤ„Ð[L¦Þ²ß~Ƥ$ lÕ.·=–Fa„É AÁìò!™POP4â+6Ó.ƒ»´ŸlÆ€%Äu 9@z]è-»L6ÃvÞ&ƒœ1¢¡=4á6Æå¨GìE¬Ä"£®¯P.¤ÇÒ:ÐBÉœl m‘ .… ½.d¿ýŒËÃßiP°*—ûé+¼+*h³rBP0×= AmÚulãÃ:Ú  !\^´Ë^ú6š§Y›ÀîWŽSh5ýDK"Á¤~—Ë´J|nšàh>÷tÁ%™üÏÙL ¡´Ã®d™>¤É2IÅ.ôûl†…f˜d¦ebˆÃ¢c<§Õ“·R4c3Ù‡?`yDåOyj†Ô´Œ+¸ôgÂÄe?}•ü6—ߌr('»Œ&Üíò"¾ïÅ./âGq˜$-!”Ô‰ø¬È![¯EÊ‘TìBoÙåh–ªƒlGÖP{á„ nø(†Û—!¹ÍVc¬|„àAK"Á¤~—ËŒ‰ð¹ÁñtÁ%™üÏÙL ¡´Ã ñ€’¤IÅ.ôûl†…f˜d&„r'SyBhÂë}aò™ ží ™?æ©RïøÌdní]6¿çPN–M¸Y¦ß·ìË1jv=)Ùmè4'¥öš¥ úꇤé5»Müú³3 k"ðWí~Oó‚æ-•Mæ0äG>¸¨™ô¤ žý¤z†¼_<ìËX"QC°wYÌÙžòé× "7†‹¤×eì·Ÿ±9¶£’9VÏoñ.™¸ L‚q_˜Ôm¸Ý ¶ ÿt>)öaÈZ¹üÌnx@íì^ƒÇˆSY§!Ãïïv½s‘Hœaú=ã÷Î0ñšà?ý¡ô¥oo•¦¤üÖ}½AÓ*S/$„^èg$ò·ƒÚàÍá—󬓠lêí–üËž9[å&ä/¤v‹‚#éMA41I%šSê/YÇ·¸È‘´$ÔåݽáHoRyqR=Aш{ªÏäD|zÞ¦òÕ5“Y1ü)!îs1™5“Ó{|"“p‹«„I  °O¤¿`^8l\nŒ‚¾ä3˜¶Ì!üÑÐìä2ïÍi¤Ø¥ÞðÂÈ$Â_k§Ô<1Áì*ŸMh/¨D ^ÏgëÚüD)ü«ÜÅáÆy:ü-ŽÜáo ±É+eôߤÔ$üwžO‹"s2[×qË{—éäFã¸ÜhBáFS3Wª'x=›­›f¥Ùlݶh}¢v]÷x“þˆ –É#«Jm~_/f®u[ê›ýmŸ%}.óö=c\J«§*Èãl*{ÕW¯îãåq!èÕo2åD¦ÜÕYk݉OP´óõñä¿ãv# ùÈ@ÞPúX0I¨ Áï©ÌFÜÀkÆs»ñÃ/àõZÐägÛt…)Œ9¯9……1²Ê“>esÛ¾å7o–à¸Y–ýƒ»fËtyEŸ©*²–gòylj!¿ …·Ý …Ö¶ ·÷¯:!nŸ1ä·Ï¸÷­åЋ«•gq½Ô/@Ð/!õm¿˜£%) ÐRöëIoäA é¹\éù‚xEz†£Mí‰x îþ"‚\•̘ †÷)JûLe¬f ñ/u@  2âwîJR¤æô‡Hí.crçNÀR6» AA6â©Åˆìg쉅û½¢ü˜ÁE=Há2Æ:!îoIÊÒìRý|¼'¶ZÉÐâ‚Çb›*éãžCv™¦2 Á!FãÜu3‚¼v¿r=Æ^@ ØGä¼Ò’Äc ¹¼ÁH bîWØ=ÇØË“Ù%~y’ºí'×)—ô¬9ìg$ÉB˜  Û V9Ý/A¤±gu¿/ú ®X24#{lv ×îW¯-•ê èH}×/ç¦h†Ô|¼ã°kÙˆ)¬gœ Ö Š3ô}Á:èB;4á+ŒûÀX¹ÁòÀ8?“K0B|™F]Ȩ)ãÞ»L8 Š0Ñ p·`&Ûf !H¯Ë¼å~“Íp¿ß’Î6×¼@°æ…Xn1„nBÖÌ÷rÓA•FæsG²Œ@ÖÈQ ©å£F­ ¸cM {MZ¿ýŒÉÙ­1 òÙnyuTã²Þ ÍÒ]Jw‚ä4C=CшûdvÅålg½â£’æÒq"iÎÌå ø¦dÿÞÞeé–ܸҜó)ÒŒ¦ù+.@\†T&Åb‹"%f¶zÐÕV&«’dê’H35kÒïÕï×pÀ×òå±÷>¹Oœ¬â$ù¯³ñ·àrHt/–ýÒï±<=2·”Ês½œªÓ¤ÙǼ!}Še¼ãñøBÇ£¢™xþŽ/mèyêñ0MY ÿs˜xÇSŠF”ñJ‹© šîðøµßûˆ;",+ÍeÞF<¤OÓ<'?9;ÞòøšÓÈ—:’‰™¸Os±.™¶Ó”iŒ‚øÎª2ÞkqQaÊtýÔ<-ÅK£d—]ódmH|ÓiŒ×šÉ«„L¼xÓ—ÆyI#ª¥=Œ)¨–V–ô¡q±øé©âTÅé…‹ S†k\ý=žFÍ-úÒÊ}Éã'»Æ~A¼ø¬Hž”‚'ŒÉ«„L\yz/;–cËw©wÝã))ƒç…Á1¤âÒÝ@O‘oæúô÷xžøšE)2ñôXÇöƒŠóÈ}µ”ò¡Ç:6añ˜dñÖ1¹'`B¼jÛd^à½w¿ø›8w4Ƙm]Ê6ö‚ÇÉRœò,–]vÉÓ­"çºûEŸÆÉL<ï¿ N¼ÜÄI8iò=ð&”1ôч ÍxÙI3ÞlÒiµ7 ½ì”8 #F>‘z(¯X¢”q7Å;E“åùS,½ V?‘I”™CÍE·r|Þv yÓß+šAÃùg0k?æ:•CßO¡ óðâEëž•æX­8ëŽsÅñ Ê9zkF”wpúCWç†È7ñ¦o³Ï´»q¬V’,–ä‘ßôø¦¿…3òðâEœx¯'â„«ncº"Àˆâïµ<(Lù‹pÆ«Nœñ^gHí²ó¥]§¥“F¾ØL=”£yúIjÁîÜYKºÒF;{êÃ/ûéaÙetÙÅ4I×=§ÆöK+XKîsZÁšò´³-ЏvC-ìè™Y†„>|ÙaäEb&^ôá[257B¶¦w}AÓ‡—Ëžæð—¼ˆ-V[‡R°òÂAŽË¾W(-ØÒ– åQ>Žå¸ÿîÏ‘¥HYr±u #¹@X¤ÈÃó9Xlޏg %cÄ›ºçW9~OIÒqc™uÌvÈbjCp„ô ŽñnÓÈ7™©‡‚,<|Î÷–Èš{˜¼e ¤‚ÖêÅ1co…77AQš©°Ä£áBñŒÆís ì¾{?3ö" ò‰TÙÄ?Ýr[ñµË…_%CTAŽæ-¤Ë„=î:êZŒ—¢N„"<Ý5+xŠòò)HÊîºUÛ²_Õa —XKˆ„ª5:!©ÂL^¥ù2V¸t¬ìM(éÔQô•‘JøŠoå2¡€Þ&+®<Ç›áW“瑺›]Ú}%ÖRœ.…Ø(ÔÌ3$ò´³’çqéßæx"ŠsDQœTˆ“®åÒíWeÔ´ú 0å/‰x"ŠÓ£‡(Î âiúQ#"±N#ªÚH=”Ÿ€¦Ö¾Ã…êv¶‰?{ä›ôû¡h–Ÿž£Ô­!¡"%G‘F´õyHM=$æáY¨ÇÍz iVÔàÕ4‹gù:µ{Úãø¤&H•ñB‡ B¤ S¿ô{$-æW:ϽI –¡¢e ®eºŒ/ßoøäeFâ*•qD¼â[Kñ'ÐØ¬mÈ‹‰7W‚Š›n¡”tÝTÊÛ'N¬eKmH—*>ë ¥!KQuå{,‘¸Jۥͺ6=m(;§’µw§’šž6^/‰e‰…cÀ Ð;âL¯*ÇÅ߃ÙØ)’HSVÿ¬ O?.MQ»è”gBE"ËRFGìÓ0™…çCPa‰:XB!K˜ÊÁ•{NEodâ¸é~ Êxʼn2^h eÂw%¾â”¢Í ÓåGÿ¬­¾4­­½8ÓJèu_lËÇ¿©k{¸—D•±'\¡ åpÕñ¼ß!¹çà*]ÚüsGJkkQ¶ý"­þM‰ƒ'J±£‡ÆØ¾ÃäUòL<¿FkCƒ=}+^[W¶¦ÁüºŸXéì;Œ^þ<1ÂWe éõ¹@á³ó=–Ÿ9}Qö¾ÇüÈ!Xº´"ð kKñÒBíhV¸+àSO!¦äñaÜ/™Òx„Ü 9}¾¸O š­x0P¶Â•Óî‡õjí+Š×µârERv×-èÑ”z4\Û~ý8µn ˜Xÿ†ÄúF©l‘¼J×Èd—‚^Zݳ¦ÕÒ*¨¼I³”c ¢ÃUv?]Û¦T[«ÂE…)Ó5®þÏÒ*Å=×Á¥ö³¬´ÈÚ5.庴¦`Ï_ò)Å~+cs“WÉ3ñjÃU9ú[åyL~Ô3•=ÖÖûm¾âÁö²ýTxÛ‹Õ•ƒ‹Íz:‡¯ÿ}x»Å%/*ÇŠ®.é3¢‡4aßñ2¦øæçˆ|Ñ3X¶Žä#«Ó˜Æû²ÇÒ-»uއ Š#ßÏô'Ó¤åïÜÉ€"haŽH\%ÏÂCñöö¬œ»ÕRÒÏ(gý`#8„réf”sõeQª2êZqQAÂ4í£†|‡åÙ»¼ÚË(ça2j—¢œ›ïÇ©z›Äö-$V¾4FMËäUB&^T¾ÕNOŸ jkjZöS­x…ÓûªŒ„>(Àé¿ø[8ë´#þ-Šfðâ(‡–âš?\'» òÐ7§I2ñü L]úÚZŹl„è N>„ÉÞ2¡ôÏWj‚¤ëžÅ×õ¾CsŦö ¹v…¡i¥cÎ-™HøžF~¼ŠäCŠL|Í…+žéŠùþñÚª2ÞlqQaÊtýä<—ðBÚ’1I|ÙiŒ7›É‹ÄL¼zÙKk Î2ç@ÚM™ÛMë1N 0¢8¼pQaÊpõ‹¿GÓ–¾ç/×µ`N +Ø«#Ò<Úe¡I)hÂ(è¼JÈÄ‹ ­ZûaÐ2¨­?J€q×Mœ‘²»ªEýÏÖƒ9óŠ´jÑÚóVð‰ð0x“'’W‰™x>©eἦô=¥Ö Ã[*Õƒ…“gñ g)h¡€Þ~ùb¥<ÇTŒ_ý=žÛ„æÓZžlÍkíáÜ“Tö­ŠDžíÑNçòŒL<ŸØžx¹ƒ'ò¤«ØžŒD&”1‘¥O Sþ"žñ¾“g¼Üä)Òf“æé}§ÄÉ­0b.+R§ò’&ÊÙæ'í½W:Y¦?EÓËâ¶\¾ÿÕ­  †2½ùy}oÑ<ÆÉ±ú¶¿U:>Y?£¹ÕñÝ_‹â~ù›9xñªïmü”Xî ŽS¢Â #xsÞi.Â; ¿ò{÷jÝô–ïÛü-ç—mþvÕ9/G‰où#/^qrÄû©€#<ÛÉm6ÎD>¦û% ãõ&Èx— R¤Ù¿»ÄëM) ä~=z"RåÇH‡tEyìÜú¥bÉ]g,ùh[•1"W(H9\Çøø÷Ís~èjÚ‰D—ÊòèñR²„ÝvARŒÒiŒ!9“ ™x5 µµ7½¤ÙŽ­½Ëö.OjDã1uAÓ¿ö[4·yEØkÐÜæåºÓá3iÊ@ˆFŽz"y‘˜‰ç Ò¶ù”9µßãNÎK¾Û„#ÐùT,PZ:ñ/+³»¦´at›·{G”5­ÿ=‡ï1oã隯mv:fFÆ4ÿ“Ç`ö2ئ“­x "á1›Š ûcšßîy© eb=.³úüüŸüdlòIÙ@ ~pÕK·@•Q劋 S¦ë‹©¯ùÈ ÁÒî[s8ká0¢ÎÔC™/½‰K¿@hz7@î™Jp=)ÃÞ5Peôä]€ïËÑdç î—=€K';"¡sÀ’¾"½ä 2Q û€TïÚ‡¨Q¡¢§u.ºZ¢xÏJ\<ý)ܪ‡Ùi Æ£¬NEâ†|v¶Bbg‹­Ú'yF&žO ´~„UÚªY…4¤ÚÖ_WáZwœc‰ZW”ш‰i’®{ªŸ$üÍ,;µj# |ª;ËÖÓÍΧ¸T§!±:-[N#y‘˜‰çÓ{–Ì™¾pÛµöíMÔ-µ|îœ*Þ>­3>­RY/Û~ýêïñ´S/½„ò°!úOûü”¿U‹„ÉgËÜ™O8ØÚýoù˜UÉÄ‹^ÂÚfk[wM%È<ðD=(Š·<á¢Â”é*ãâ;<×Íã‹¶(n˜ O` é<£-¢‘-SYx±|ÝÙÓ±_rÏTÈ-Ø'iŽUìÛzð£¾×Qʡě€Úå5j÷Ï)ÁÜùˆeì$Ú&r‰t1'ð x™c%À–_©^ñʨ„2M_HÏ×±K%ŒF-*K(Ô]Qå¨(/ƒ¤ì®[Õp4j¬'Ù‚Eµ!Ò”6f)H="Fò*1Ï'c¶åW ú¬}C†x k>I°+<)鑦¿ãÚïÑܸåž]®qZq*°6å“•vÕ=Ob‹D˜6›·ÿ(ÌÈÃóu×ÓWY L*„I×”÷‰àõ­<(L÷‹`ríµÀÄBë€Êš|IŠú>Ö¶L;”Ÿ‚¤Ô¿îŠÚÖW¤«2V­«Ë)ðîúéYFåjÒ€’¯c­Kê!1O×±ovàuš*Üv.ÊŽ‘\ã¼r}ËEñ—:\T˜2\ãêïÑ´-Qy‘Õf+Gr¿j8®ZóNËâ5ßNO@êª Uf8ßS)%•͸g*䂲ìPÊÍÞ7°ÓÓHk;y3•ÂfÊùž±ŸÅ«g(oŸ}ż½ÍA<Ê*‰‹¼Q|CBñ=½9—®Áe…àfÇÌ^¥} >¹ž÷ v;•Q»» YR·@X‚Ó|9tJ•WO@S®qñ·pïSõ8 ììSÁ·fv.«4·“ç° ) eŽLX%^þùwí}]qÞ-@¶7jI wÛ’ŽÙ—ùr¦*ŽM\®HÊîZ}¿Á;$×¼å±Ký ··Ñå˵/{WS$À¤Qà!y•®[1/ý+áé½)¹k*ÓØ . ñ¼dž¡€]?5Oô°‚'ûS–â¥Óµ¯¨A8J‰%Lj‰3X’|HÌÄå‹wA…§wS宩°„+êJò ôèú‰y²ã7ÌnjÔž"¡ªdÏ5¤àIãÿ|žQÒÈs¾œ€¨JŸ±VÓ$]÷üô4YÈDBQ š!a [J'æ«…fH¯N !ÖždÇ:ó¶GÊtÝ©=ƒ'kÏÛ‹)¬d ½)ßú©;IÙm±>8*|¸?pÞ-" HÓŽÆ.iû(ù¹luL“Äãò ”Sª+lCë–oØ ywÇ}õ¥Öä(ŠS Ë#G¸nU‡VvRø8d÷S(UÚF<Á0†ï5FÉÁ°%ж£,Als¡O!ú¾ã⇠¢xÔ¸f=Ä.U0D 1Sß™¼yË+Ïgw×Àzø‘§z÷“<”ô±ºÑ÷p³RfÐñÀ=êiÄk·­Õ}r%)çé¶yÔ6‘Ñü<˾K~P˜îJ i¾ñ–q6K<5è.O– Ÿ¾ÇxÇhB铟ŸóHxóÛ8üxÞ=Šô|>µ:q³8ž-C¾G ‰ø=^¤eLûã‘ø=Kmß°R•í‚ 'V-DÊË ×½J{ÜHª´ë:M '‘Pµ€€Jäô8’‰™p#‚k¶;±‚Xæjël,¸æÔ+h öc…²~Œ½Å4Í'“`Dðh 醩ŽS6ß¡9#’øé«ƒ›„xãí9ícñŒï"•±ÌI"Í0:&/2q¡É²i¡P)›eÝýÅ-·XJ²nW~eñãÔ¤dÚ6§=Ã@"Á¡d¾É’É‹ÄL\Xz%ZÊæ£cT´¥Tv« ¬[¢i»èó++ àáÓ÷œ^aûÅßÄéçVyÙ%?Ý*jRKqÊõ­]v©gHÄÙžlÿjó#8‘ ÔÊ×®nàôŽ­à¤œ4õZCÅ»ò ÄcúšÑ×%Íèë’¦H~|›“Ħ*ŒèDê¡|Ë>œ³ÃŽF òÁ›”)*,w>œ“²éù¬L^Zý!?ê B@YFqÍ~|«=ïÖ+KJ ¢.*L™®:âÀ¿uLÆ‘^q;øÀû8x¡û!¥x¯‡¯xHkå©î³obcÇ'éPÓ•ãv ¿ jVĽÅÑë=UFݨ.W$ew«¿¹?yGÛ J›•º‚û,”¬-ǪQ§Yxþ1§ÚJÁÔû·-Í¥&š|[åXSïß6¢—%“RŪ˚¿äØNïeÉJñÈÐù÷콉ûøÈ}ÿÚn’ßFßÿÙ°iÝý"µ*?*ä¿ùA›Ñóï»ÁS/ßr0&YDB6ŸÆÉOd?3(®ÅÏ€Å8UËŠ‹ S¦ëK¯øt6F²Á$”â=zŽmCâØ–> d#íPüúב­OºIŸbÑû…LF¯_Ê­÷8U½R)ÿTøŽ| INºÄÝr†…DBA¡dŸ?ôQ£t³Cï@H¯P +Ý1Z’ûu!*Ox¢‚HQ›¸@ÿ*—ç¸[–XuŠ‚ú5P†D–ð}%³ð¼»¿µAîœÖ"Ø–Ñ3}-¯©! ŸjëpizEo®Ä5My¸üêonžÝÆV®hÀl?yÉÝýjsÑWiÿ_RX† ­•$³ð¼³½Ê{Z`Êœh>òµ-ÄkZ`ÛŒç=“RÅ0SöÔ†ÙFì3+ V¡ ó¾¹ýÛO©Œ:u[Ö˜0\ê…ˆÛãKÍîzÛÓS ÁŒœÓš¸¾äFË21_æôy;–ŒµZŠÆÁç.Û*pj=*Š·Zâ‚)ÃõåÐçÔj ”ÆQ¤ÑŽQa36´ZL:\þE;&$½ÕÒûuE˜ŒêWНW¤ªŒÊV^*|U¾ˆ$2Þ.[­@Ë%«_‘PýFgeoBH/q ëßÑtÉ={[õ(Ú²¨kÑ*‰â-—¸`òÜ©}Ù–ÅíFËÅjT$¯k£-£Â¦Œ¶O²Œ,<~×:{«4ù1¯ìP“Ï.C°“ŸGÉD¿ÌÎ)J]% ¾¢ žc—Ï'ØÚ-í¹Ÿpz¼ŽxhÇ»{gê¹úDÓXPPO?›Y:[§Ÿà,Rêïg÷$EO¶åÔWj`AÁ3úÓä3Ø"Í—§Êe9F6{²§±„x0}âqø0!Âú®$»uo—Z‡èž±}²{ö)ŽhÎõpì‰ýæáÒ?C¿ªžc Uô½êágSiã|ptWñµ)ÑÅû¶ârERvWõ@om·]®4Û›¾ä™l;E`½ô³ŠŸS,ý¬ØÏ #û¶‘|HËsšèmûØ¢½]ñ¥rù„oÝý¨x*õ2šÈJïíÚ©kk{—³°¡û€¾îÈß{¼w?VXº]m8ÅN–÷uŸ<«„΋t`Ž–Ï $>ƒzŽˆÉÒ×Ýüd)Ñ›Ÿ€,RdõEg7=—Þµ6Pˆ¦uò}­Pг¥‰Ó¥é ™óvÙ± (!õÅ©³K)z»4²sËÔ©0 ¯º»Á[¹g(Äâº(¾èj‰âݱx ¨ðUù"˜ÑÛåíFß–LBbÑŒînHlìYÌ£GÀ—!¤—8I†°wwã¦]ˆŠž¨lASg'®š|7ªßèíònÙµZT$Ôµ3$¤ñ“0™‡çÝ];ífÍÍ‚h_)j*šv^‘vwí …)u°Dñ¯Á\êൈiy@W WÎáÁ¹òÖÑ=~B´÷yíïõRvW^ ’Ç8ˆ>oHQö¯&žbõøJõž±H A¥ç½^;pgZRåO… ž MŸz*^×ÒD!ž6LûhÞ~¦‰ïÄ^ª2Šb˜(0]š|ÛÓ;4ÛàwÎ+oöíÁiãå·×í"UßeÄÁoH,›aŒ‚ÈäEB&®eÓ·èY2ãÀ/lã“»¦0¶PÀùæ;E9ú¿{{óKší;7¢B±Ø{ îØU¨R¨¼…ûÀï1ʇðྠ&RMû³ä(-'>,Cؤ-7öÃO®TÉϵ’'Òó]d{+ùE‡xûqxLEBÓ=¶ÛîL8Eyý "a<„~í÷[°¥Úw· Õ´I¤ ÑPùŠ˜ù"uQ˜…ç_çµo@ÚâhWìJwÅvS¥êâ˜}±{ªŒÙIu¹")»kõíoЛói–£5³w?U›RÀ©—n,Ë*«èÏ*½¶sf‹ÉœÀÁ™›`&Èr2ç)lö ЖÅkÀš5^‘PšYI‹ô¼-“úw4]RIº 0Šu-a†òòHÂîºUû²-‹ê‘-Wp U-3‘Èé `&/3ñ|ßéQzÍ¢EÜwNKGÛN•FfÇês…L( ·\E O¼ey»;v&Éô£ø!“R`[Š[ÉÒºbƒ#y†Džë•Ü#Læàa§ä”Hz/WHR!Én±Œ{ *Y%ÐaÄa‚]XÁÒlí™öjCŠª€FÖ²L=”/æ(-Ø”«Ü1€Peœ¥¢µ+ÂÑ]?=ǨRCb•JŽ!ùè@|8LERéÅù*èZY¨´-u­öå²ôñØ'|Ql®Þ'ÚN?cÖ^÷ÕºVí¿sn‹Dñ—»Õ½aãÌÌ2jºcudëA3øðÝD“î×^®ç\YŠs¹H ¦xWt][ÞvÔÍe½H¬Z~óàà°W0¢8Ú;¸bçµKäô2GÙñ¶æ9Ê{(ýQZ¨¼3± |ë™ÇQ?.ÂÎ íþ$ƒ+ÕýiCyó¡ðX±­~ÎCÁ-1Äitˆ ×HÖVÇdüg¯³4\$Úx$6;ßɹö}GàaÍXSVLS‰]UcGà¹,(ξ‡J•±Ïê\Ö1}%Jå¼ü˜†÷«¿Åû\·q<£™g{µ›TG`¹l~&»¥è‡yP²ðf½LrW HØ}u.›—oîµ:ì° )2q™†'™mçÍý”z×®X\¬-ñœö1QÝy)’fQÊ”(Ÿ41 $ʘôÑge¹ìŒÿ¬2Ì‚ÁŽH”(6pQîBúOÎɃÀ¤<.J‘‰çÓjRƒ^Ô”<áŠdD“’êrERv×­:8x.g<ã‰:—]ˆP0I)6ÌHJâ!1 ÏgÕ¤‡à­‡°gš|£õçSY¤ d‰ÁÎðΟŒ£“…š]‘˜Õ´°rZ­¾®“EL‚À_’ J$ì¦qíw˜ aÜî£å Ú u¥EÿMÏTŸ)éW˜÷,í#’'ŒIšüó‹§1È–ÔCñÀ’­òj= %9÷té†] (Í5ØzN—ÓV:Õ¦´^vŸ ZìynKVеÞMYÇJ@Qêèäw×jײäÜÇ]Þ# iâ=²ž°…äç6vc,ôÌZ§¥ç¬nSɽ÷°@H‹½›}ƦI}WMRz¾á[®Oe‹þ_§ÙÚ¨x*M9m<O%<•p¡8/V%î[RÚ•Ödr!Ò…çóy/öÂÖT¾›tŒW—¼Uò c’&Ü#Æö..Z¾UñÀ…ò½÷8Víßg”o«E½¦XF ƒÒ.Ý_²pí*†¥Ÿ½›”År¥.(‘2\ãêo²\F™°jp,ç¾³­g‹Eצ„EÙÇVcØ’d'¡g[SðP¶Hž·¡L.Å~$«×QS,£€&á·ÅæŽãªLÉE…)Óõù$kS÷D²gkS$¢86ØT²Éš#Ùú¼E"™¤‘Ø.­×jᮊ¶^vnl_Œ&ÊŽz®ÖF—]"¼­&ì¦qí·8®Gߤ)­×:Úvmªì u¿HGŸÇ”Ö+$¶^aD[©‡â9xÑz Io«ô†¡Š·^®/(cëµÖ™µëh½TmÕZ×QE©r@Z¯µµ^}±[¯[¼Ùz6UM¤£/’’ÖË2»äÖK$´^k-^äÙVÙe—­—>•g­Ÿ Û*>Qü©„ Å™-‘(£±¦ Ïçó–Ö ¼¥©ï$Â,­WHl½Âˆ¶*RÅsð¢õ²“¢½|{[ÕS=´õ²K¯«¶^†É+o‡Tm•¸¨0e¸ÆÕßd¹Œ2ÁÖËîvI­WZÇU™sëZ¯°±©Š´Eò Ii½p·ÑVIVæÜzQbëE[4UL[¥‘­W9¦4ôêgïUm¼Š£<´ñ²E‰àM•˜¨0a7Ó›gÁ·ŸöhÒvëAä¶«ŒŽG–ú¼Ÿ¶]!±í #ZªH=ÏÁ‹¶+8zC¥· …H¼é²cÑ䌦«Ô‰UëhºT U©~¢±(Þ°é*­1Ûû¸I›-Wð`3ÐDڽʖËòºå–K$´\–ÿ9·\ÅÚÞ‹²÷ø?Ñré3yÖrá™°™â3ÅŸI˜P”Ù‰2Ú)1A`ºð|6mi·@[)ÐNÒŽqè& æv+Œh¥"õP</Ú-»½4èê‰m¶ìÊÛ©ÍVÁ4 UF#%.*L™®ó}’ó(lµì1l©ÕêêÈÊÑwZH«Z­°±‰Š´Eò ó°Õª­Õš8¥{ÜÅÍf+€° j"íÞýd³UkŸ5ÓfK$4[v57RvÛEÙ09æÍ–>”gÍ [)>Qü¡„ ¥™m(£™¦ Ïçó–† ¼¥•ï$m‚n|Øp…ÍT¤ŠçàEÃU­Ï¼kËÕSÕ†ËþTµá²¼xµàM*£™$LÓ9âz‹ä4J.S¦ÔpÕ±o.)}ü¬ WHh¸ÂÆV*ÒNÒùºá"G¶S¸]œˆ˜œ› ¬LÉŠ'¦Ïæ( î5š)Qe@“†‹.Ú¢•bÚY:Ÿ4\㸲â»o¬<.}²©+“—(—S\ó$¶ÖnÉÊbïD¸Dñ”ŵ¿{PC±]Acöxµ™®˜bîõ¡¥Vý{Ã<õ:ÖRêyZÔÔ”Ùòôo‘n’Î1ãë6¡ØêËbë¾ç:(n½6´…ñ>2„}ùýaÚm5̆7v[³2÷wX]C‘„‡É¯ýC[~bµÙŠn÷ŽeoöVŸúçáíÕâgĨäËÄ4'¬É†Ä‹»Ï)έ4´F®Ìë2Ö¼®öY¶ óxÑ L‡…¤g½·®Ø£IBzÉ4M·›üÊo1œW‹óͰörhnÛÌÜ3՛᩵v¬•*Өݖ¥«içûkÊ!áòó#ÁøåÀâ‹„åßÓó£“* ^jrEÒ¦¢‚ ?‘ײŽãl³2e‚"]MÀ%)‡„Ë?!¢,f-!4vQw÷ÜËÅé§êöKL{–¬ˆ­aLRñ0;b<þM“Éó_f¹Øf+EilÏÅ[(Ï>¶KJþ%ÓP"a¸ÆµßkOÖ’8šµ~G 1|áx®c'€&RQ×gS´&÷Ø…âÒ^ײjÑRe?1A Špý¤-ý’).#&‘R ‰¥1Œ,z‘¼HåYY,‡QŒ¶q£”t·®è+:L÷^쟂cÙÇöL½Ñs¬Ô—“R¼ÂÞwxó­~›#&¦u«39á0µT1È 2aA\Ëù‘¾øŠ0¦ÄC…éÂ4®ýÇ©ONé ÄÔ*°5Í@XzÓ™•‘Of B DØ8Ýi‹äH3ë´-öE£Ø|ì2¾Al>™vz„âš2÷9ÙûAÉ"‘Iiܦ} ]|*g&Ûù¢,\ 6Æv›?‘;”whOÖyú¦ç³oôï÷×m¾Ì²)Ûèì¨Tý#ÄÖgG“TÏ1¨êÙßw ž|(¤iÅ#ØëEª|c¤ʪÁ¯-…œÓS±ã7·ôTjÁ<ËZÆAÁn9ò0[„÷žI’Öä.éiü½÷L¶É?q¸&5û–Ÿ@Å@[¤>á͇éO`Y•›J÷½‡R|ÍPÏ£.W$ewÝbiÕ÷œYc.I¨ˆâäÜ–”yÌv‡kö$i‘˜÷±åî[¤”åÑqzÇ®w 9‹˜Êé±£ä†ËIÙ]÷Xî};pb‰¯A%¶¤LcŠ1\}ñÂR$fÀ}—^ ÷ûÞ^vzæÓß*Óéù¢k:½ËÈMV¬Ó£®¡hÊÞyW‹å2CF¥dö’úAvÑ# #ü¯ôƒDò~P¸Ðé‘”CâõŸõƒ¤w{äv]$Ã$Ô¼O£Êèö¨i(š°wŸnqdO(î ÐØÉ{BáB·GR‰×Ú èøÄýB &p7ôjTu ESöÔ’Ñâý²ë&"8¶è ‰ä}¡p¡ã#)‡Äë§¾ÛáKdØV/Û~S±¹ÍãÔÖÛ¦‹6Ä!Œ¦Z,Þ˜Gªhï×·Èôßnkj»mbq.©¥¶¹<;¸*Iãl+i½EBóF6Ö‘|H‘‰çíw°dkÍ»†`à":4Ä!x[-´ç‘.Úü;4£õæíF[M(*9ºh¿EBF6ב|H‘‰ç-¸ÐD{wíŠqWÀó¦8o­Åƒ=ÒE«‹&Ûï¸]¶ÖE$ c .šð0²ÁŽäCŠLä6|_úñK:v\zqâ¹ £@7ÉHÑkVzV“k(’ð0Ý;6óy;.5ÏIˆ€âpei̱Šks~š2$¹þ°]ÆŽsýûï2RÜÆçÇw†ŽÛÞ¿¼$¥o}W(H8\ÇÇ›­Î<>2ëÈÑÒÛ¾h丵<žyähát¶QL‘¼Jž ?{¾.3–gÁ3Ÿãã%±¨2Ð…+$L×O>_—~Äc–F¡I)hÒ蘼Jž‰+ÍÍÝ&š`Ë7Ý-dÃs¯hþD47;\#Ó´õ¼±X·1üfÙüš{»“cN³ëìãcÎ>¸"î’9 «QÒˆÒŽì_ärERv×½yeôÊäÃX£3¡`cñ]¿¢ôÅGêš±]’‰pߥí‘Þº75Ò§vEúÝî’¾¹·#ªŒ¦F]CÑ”½ÉºÕ[gë}j46ìw‡€®9[‘¼õ šI9$^?µ>,_Ñ[GŒ~µ+ÒõvWtνx…à%P<(¥‘.Jò­þ:Ëdt¨Y£Û-:ç,•"¡X†‘…0’)2‘Êe«à¦å«_ûÿ¥ÝÌã¾ú«~ö—8¿*_ýðÏ?ûfîê7öumû˜öó+;—¡Ý÷ÿþ³¯×¿øáÿþY{è­†=¿úá·?³s·¯~ø¯?ûzYÿâ?ûfé[ùƒÿÖôÅ,_—¥ýsc}´"Ú|_ÏSû[úzÞ›`™˜-SËË7¥e£Ìiiäál£eÂkÍãÒ/û›o翳 l=‚!ÙÞX»p#|–Ò:·ö«_ÿî»ßüÞ~öMÿÝÚzA~´­ë¸ƒøöÛßüîûÕ3vÂR«—W;ì«U -qïëÔïqÝÚ- v¸x«o À\Ç?Ö÷gvö¯ÖÉ>àñþ¶Ísn™’œ£Yß÷ón÷7²nc‹å+[¸VZ«Ð×ꫲÖÿöÃ/=~7—ÅÖ¬n­«ÚÆ|þSû_í¿ýáÛ¿é—]?¦mkC;“Ô¢©øÛ#éwÞŸ.~cÇŒ¶'ã?ÙÏm¿úáo¿#­yÕ´¾±Bm¤à÷Új]'òÃw¿é‰Ù8‰õGÒ`ï£|–cm§ÅŘ˜B<è¾ûýøYK œ–@'”ÞÙa¿©«í†iÜíLªc!¦6$ë?ûö¯ý_¾ûeGXz=?µU~ý²_—žÕ6´øÙV>÷㌭ó¼2•ßüî7?ü<î ”Ê¸±ÓþÅÿÁŽ~Ý='Ë1#ïÿî7–“_¶„öKÖ3Y? ¶×f¼\ßÿðË?üðØÉ‹#±^ìÐâ~“¶¶no¿•;7—7ùíoÿf ªÛ•$wf{ê^üGÛ1yî:úßÿîWw[®Üì7­c2σނ›mOröBJ~¿ÿßðû9ð<‹Ç2]žl{´ýÕé?:νÿ®¥ø<“—âWí ζ"aæ«dÑš˜Ëo¿ÿù€ˆÔ,—ÔÖþ€¿9â /(6ØðÂûûßýõo~ýØR¯ïª‰Õ‹kø"kx¾šµkj—çÛÆ¤¶ eü¨´”ýEÿÛß÷¶2II¶g»ER•Eå·sMiïõIJiÕw¢/ò÷§Ù1#?üêû_ýàïèCJ_wä¶Y ÝCýÊf¡7¼SûŽ ½ÕÁ£Bg l˰Xi®µ–QrÚ•þË÷¿úíÏÿÏõÿz£ðÔy’ÞòNzÛûéÍ路¿ŸÞôNz½v¶“Óí•N½ \ßýê‡_~ûŸ~õýö”·y)—*géÕë7vN¶UÏëjKäØž|Ó§2[‹¾/ã97Õ–ãXÓ`AÝÆ¯Mj«ÒlµXÊiG³´®ßÌ|}7>õNÚÙÀÏßÉ{#›SßÝ7ÞÈ™­¦¾“k¼“½¥j/¥³ëµüf®enlàçïÄ×Þó¬‡]rŠ[³;-$¸Rr¡\…ŠjtnCþÖVøKÓŒ,°¿U­MIYþ¦X‡ÿ ¹Pa» ûc²Çõ7ãyØTiÙÖ¸›vË‹ñèjcó~¼êþ±l¥Îû=Y¤§uÓ }Óû’½ZضetÌçV1V:ì1ÏßÌÞ§YlÚfô¸×`Òžb$¹¿JÒÒY^¥³>¤³=¤S¼´¶tÖÇtf¯éÊCJõS)ðËÃîÕö½¶j Øq6>ùw)ËCøñâ0ÍŸQ,ÇímçÇf–ìQì7ª‡×Mö› ö*ôÇë‚9µÏò»QÊŠño¯º}<­;ªëƒ/üÕïÿC üfÝFyïJþùÛ>Q§ã«õüØcèÚÞOkž¾úÛÿôÿ¾x3NÛÝÞÛ´±ÛÛn35v*÷ •çE¢ÇSXwõ=o`öÖ|c{ä7'èÿôì-µc&ÚðhéoåÛYYmz·5E“]ed¥,£­mÆ¿ú¶ušÿÊß‘†²•´ãc+åU«ØÞöšÚ—ÉÖ‹\ŽÉ´}Q˜ÚÛvÖöŸº¿Èõ^>ê~ìͰÙÌÜ( /ïÈå*gùj±(åx÷)Á­5‡ßBXÊXc'[Ϋ_¯• ÷ýðÛo÷6^ÿû>whg7ŸÅ¶s=0k=¯Íq·wùÿûëK÷Àú™Ë±ÿÁ²È/Ø]Èzt®¿¯ú3=´uû¯Å«*Ëû$ª½³‹úÞC¿Ø ÈÞ÷@çû/’}ªý: ò´=_­ºiÕa«øËû/®h:íºåcjµîóëY´6ÊšÛ¨«Êœ ×'ÿ…Va[GÁâ WïZ|öDlýÖXbÑ:ÌÛû¯·m@ZíØÛfõ Ð7cy±æ¯b:í’ã§O|¶þ¯ÞÞ¿üƒ-Y¹jïðÞ¼¨7íkãºyý×®Ô}¼÷¯üÓÿøóWÞØG½É&Šlîþ/~a Ð/¬½ú…µ<¿°†êÖäüÂ~8Ÿ­¦Ü[ÇÙ}.hêÉŽ·çû?ÿãü¹7V~¹QÉÿíŸþÛ?5»mg)m\3îûÛþ—¯¾ý·?ý×ÿ>þE~nÿòÝ?þùí²ßýénÁsäMûÕ_ýýÏ,0boÞþ{Ú‡:‹¼W-,œíÑ—M…bþkWÜ„h!ÑÐ&/U1†{2A‰„á/4r™l'º…%Üû7ïÍŽòèá–ÏeÄÙç¾-2K=nI*c•“øìãÂð1õ·oK„²#ŽopÛýy(uû¹h²€¨%1 ÜÂ%†k\ü=’G¦‘P=nˆb«#ÒE’j_Ç $)‘$} ‰‹‚<%yôQ€’ìñ?÷DÒšæ¢$Ï?“PÀ-L®HÂîò‹¿y[I[Ú6×ÌíÜû:™$õ£vJJDIÁEê"!ÏYn}®²¬çX_ŠõBaÙÓZ•P@.LP"a¸6vòË­oM,·¾8XÁÙÿݶ‹´û¯È2$° _€cê"!OYZ°¢~žÉ­wº¥ºò°0ZWˆuTB¹0¹" »Ë/þfÄ«¦VYö0jgg'E­©TK,)‘%}©‹„<׋K9/ýö&íþ«I‰ é jL]$ÏÂS޶ÐsKerµÓÁSM¹}* m#LB¶0¹" »Ë/þÉÕ>†¥±c“zèÑÄíœüW!ýä % … é"µH[$ä “´R­ÞwÓzXÑ7Ü»ƒ¦s%ZìúŒ$`ƒ)q<8¾Ùâô»°»·OûNŽöBZè«~ÔS¿†}õHÒ4úÙnT‰$é»,$Ÿôƒlz¤µêBòl}¨šPRšHÎ ü’{)ñP`²ðÜ!yÚׯ#‘´ýt½¬•›UÚ}0|}Ïo&©’ç¾AÒNå/ó"$í(ùc“;¦àLÂl§}G[jRZûV¥L†ÀdiºAÒò0ÕD²?%’IØ`Ti^Ç8+|öß>½©«äy€ÏIîöemW’¶ƒoÓ2 °ÐDrÕÆZsRl<¶Š‰Ó¥éK+Ñ%³´3ÐÏÌR%çF•ª‡‚Ÿõ§ÌR%Ï|ƒåPîô\ÇîBÁ! ~‡H»Ÿõ-Æ1S‘@Š„LÀè$í@г(I;å·$”TÀ…&’³ÁýœXÚ À®ÿ;R…åË~ròœXÚQ÷gj=’äàܘ¤é眊qÍ©,UB&`Ë6ÊX¶Ä²5û{f …\` r¥¡“Ò‡Ùb‚éÂt‹æîÇCÊíî~¤@ èv?´S¤–‘iÉÆ6 ªùW ™€Ñi.-Ū­ølË>&í†04»6rØ3Í6ÌYMA¦;4—±ÄNi.-åšZñ$9:7&šÇ1¦K…æ˜)O4EMA³ôÙZ¥Ygï?“&Ò„‰ììÈèé¢l– ˜ Dº0Ý¢i;ì¾X`Š˜Ý—”eDÛ²±5Bâ"!îÉã´ûR’çô‘z¡ LÁmëÓ·IéS¼b‚éÂt‹d+}#½ÜmË眛•n“´ù6e1¶Ü¢IBò"!0:MÛþ_M‹(q&šT†&²³EÇ{ª("‘¬{î°´cÎÔSï¹,¹QÉÁ¹1IÓö‘+Ìu|¤U”*!îÉ­Ÿû­$7ÛÀ–n ©ÀàrÓ³–bßMÄ!½ÝîØÕ—=SÜ<|›Ð Ȇ1I¥ŽããÅXü9I^$dFçX¦ÝûÎàXZÓ_G* BS€;êG=ÎJûHð!J˜îдMñuK4-ŸSn>TrtnL42>: ÍcýÈÓCIMA³l©{Ù×^¦Ž ÂtÉûN2geµZJ<"Y˜n±´Oû5³lÙ\sÉT ,‡1I-#SîJ•ÅgQ%y‘ Á²•ŽÔ„—£âЛ†B.î rÛê­L(ËGI‘,L·X¶,̹ /Çö±]Ê¥H7ŒIjYs#^6?cH’ ™€ÑYÖ¥~¤àÙBÞ”4§04‘]µ6KVf[Š!&‘.LwhV;_>Å-[¹æÅÁ¹-IÓ2BJ‰¯åuÉåR%dF°ÜŠÖZÆrë¡ûôž¡ LAn|¢OJ &&‘.L·Xn¶g"³Ü<À¨@ è†1Ieǽ‰±/LM0CA`s–ÛÔgŸ„å6ÕË\`¡)ÈYÔ²Ìò°-—ÊB°„éKËÔËå6•’•œËÃ"–¶º-Ïn¨šG:ÁpÞZéȳ›-ãÊ4¡&Ld·ÙúάÌ=έ˜ Dº0Ý¢Ùò°æ’¹•õcÏ͈J 9ŒIZ&{E’q>Ç*QI^$dFÐ<–ùN`45Oê@ X‚œ-K]Ì­&5SÄÏoQ<æñ¥TnóX?ò·‰$Ù0&©žãè"1Öc¬À‘äEB&`TŠçÅò€±øÙ• Oÿj;°YÅ9)ÏuO.W4åáºÏ³>ðì úÙ3)öÍv [’¼P|-¯ùSO’/4ûþ]i.ˆöJñØÌá²Åk¢ h† Фì®qõ÷×,‰f_°'våìÇ©²ã7¤I)hÒGt‘¸HÈÂ+šk󕦭NÙM[ÁRÍ©ð7Î%° IÙ]«×;ï®{Ù3M‹•ÐÙÔí–•ÍB–P%]Á )‹‚Ë¿ Ù×CJ²¯™Z•d_Wu(ɾö*•KQœ›¸ HÊîW{5V.–}¹TUn}MÕ™•Úד ÊÈ2|$‰‹ä9xÅÒVé•ÄÒVò¥³¯öK5f_˜ê>Q@.\P$ew«¿¿F°f˜eöt6Õ¸d¥ô “RÀ¤/È1ñ˜…W4mýè™hÚÓ¢4û:ÔSizÌaá"гhJÊNs\ýýÕ«G¦iëKWeסîYéŽ&² W€cÒ!1/XöUÍ©¾ì+ŸSÉì«£SÉì+¨ÏÄ2° IÙ]ãêo®©>m«,ûªçT=N¥ä?G„@%I)P–ÜdG²"áâ¯8¶qkÆh‹ñSei ö•âXÓ¯µž*`FI×!öK¿¿Æ?¿Ý}~ªûRýš•¾3a¤é lL\$dá9ɱÿCëʱGä”cII,ëþq$”8õ@‘tÝ4®ýþÞ“ônÝ!ZÇ’#+ãÄÖ`)ˆà$q‘…W,Û0kI(mëRI(m{Ó™PÚ¨’°„tá‚")»«_üý=QkfiƒÛ-‘kƒºcNŠmÚ2KJÁ’¾ÇÄEB^±´ýr5Álï¦v,Ƕ»ª,ûÖ¼TÄDqrâËHØQŽk¿¿WoË,§5÷ÉÇ–»š•£¯ï–!‘eø YxÁ²ïãÔ|ìõ¬ æºÉHüô-£5± ,i‚ éºi\ûý=¤iü8vy¦w¼o=²²ã7dI)XÒGp‘¸HÈÂ+–Kߢ,gw¥ïSÞfßËœ ¦(ÎN\ ));Íqõ÷w7—LsÄv}“òš•>M 4C"Íð:&.²ð‚æ¾§bÙ7Æo ¥ÅKMå²o°ßÊP€2\P$ewío–ʾÛ=Ç–ø%Q«[îõ½õóœ9R ŽôZ$.²ðУİ'”¶’6‘œ—qXC˜leIBBÔÂ%’uϸòûg@,™äÚ7³(·±H4)¥Ÿü¯$)Iú‰YxE²5¾%µ;ûüÈq½r,1 y$¥öc(ÔE¥fË6üÃq{ •ãåk"©’g‚FýîX•¤}ª;ä–ù'™ÐBn¥/xOÊlÏP]Tj¶Ü Ù?n‰¤esY3‘€m“T|"KŒV–LR$dFýžI.=*8o™’ -ä6õÈàIéç)«‹JÍ–;$í“öžI.>Ï$@D¶aL’}Ò>³Ñ>|_ʤHÈŒºF£(ɾ$#n9þ“°€[_n±eÅN‡M.*5[nì -ŽD²/ÇÈeR%ÇæÆ$m#¢‰ø¶™O©‹„C;è˜Ã~pPM “ä眻Q¥–)—Æ~rPîù$É3A£œpµhiìZÅü™ü $aá¡ñÕÂi%ÅÎ~Ô¾»(5[nì¡82I;Ì*K’äØÜ¨’EUÈ­L?ÍjÏ$UŠƒ>wie^Å$~ˆR0ÎB´ îÇ¢,¥`¥À|m‘‡¿>$TÍ‚¬‹‡\xd %-Q^(XÛ xûöOüçý—Ÿ]Âüæÿú矿ˆVÐÃ5xЂپc÷‰D-hÊj‹"¸@(l‹ébfßÏËw.;@?u!Dºð|~Ђžƒ)-hÒò‘Ço¢xKì¶$í~ÒŠøliB|¯^³„Àç]2AÔ‚à†à¡ A¸¤ ¨ˆ2À…É…HžA åˆ+ Ü<ö€*#>’¤$é lH[dàIF- 7’@$¤ ¨ˆ2À…i’®{î-’+ à<ö€*#>¢¤(é#¸H\$dáKD-–. „ A ‚‹(]˜\ˆtá¹´@YzX ‡Øªìø X†D–á pL\$dáKF- 9–@,¤ ¸ˆ2Ð…i’®{î-–+ ä<ö€*#>²¤,é#¸H\$dáKD-–. „ A ‚‹(]˜\ˆtá¹´@YzX ‡Ø¢x|aY†/À1q‘…W,µ È!¸@(@.).¢ tar!Ò…çFÐeéa„œÇPeÄ'P–”‚%}މ‹„,o¿IôEò"!0‚fëʯFóèл†B00»Ú'’Ò¯-&‘.L·h¶‚½æm,[G>šN% Æ$Õýrâ~Ïí|¡)2£ÓìcûD³ï½MgnRš‚});²Ò¯-4!M˜îдْËñ@–Ï Sç¶ÄòŒÁò¬£C,,EKÁ²öÝ¡Êr›.ER!K˜Hn|»ÍJµíNb‚éÂt‹¥}åʇ&ÚÊš+?•@s“´ú Qb´¯\ ¦(Èl`ÙÊÆ™®j÷a«§ôž¡ LAnïK“RÆùW4AˆtaºÅÒ¾½æ£élFårð¾J7ŒIÚëø®)F ƒäEB&`4—Éf–•fS[ÓwŠƒ Ø-}‰KzŸ]<"Y÷Ü`ÙrÐ7 Ëž©|ð~’8“4Ç™Æ0J$/2#Xî¶ê_Q¶æ~ÚÒ=C!÷¸±ì*)«UòâÉÂt‹å^/Çî7i¿»Ÿ$€Æ$Õ8ØFûöwa)2£³œÛ?œz˜gSö5Á¤04;[¸deñ~'hBš0Ý¡9P.Jsž·Ë±ûIrtóC ˜Å–æ³~›4yC¡)hšµêQ¯F³u¶=Ñ„Bš0‘]_¦zQfïyÂ!Ò…éÍÍ%Ál¹:.0EÌk˜Å‚pl™¥å R Y€,Ïâ}J²l€óH÷ …X` r¶tzÍÊìýN˜ Dº0Ýb9Bº$˜-Ÿ9N’€î!LÏÚ9g£-0­™¦HÈŒNÓ&> ¡Ó”ê-îš ÀÐDv}1ÉÊäýN˜ Dº0Ý¡¹XP—Lsi}— 'IŽÎIj?ÏEs™úÑ, S%äÁ}`¹¯zÔ«±l=˜šYB!˜‚œm1ÉJ9½ß „H¦[,-¤Ë‘Yîë%N’n“T§Ëü=·SÉ0EB&`tšv'%Ñìn½iÀBK³O©cÔ7>)Jÿ;HÂr‡¤%SÓ,GÏä¥IVɱ¹1‘<â`c´ "k&)HÂ’­lì5‘l=˜4Ë YÂDr};Þ–•ãC;Fø;R…åKÛ°´e–u¹6È*å0&i‰ca´ KiTž$dF°l} tÙ”%Ïì„B.09Û$ºge÷~'L"]˜nÑ<§qâ–Üî9_ŽßOÐ c’¶8ÞFÛH7gš"!0:ͲNyŽ£)sžÙ `h"»¾uù¢ìiŽ#„H¦;4‹mðÌ4-[ùmÅÁ¹-Iȳøl{gf©²#X¶Ò±e–{ÿئ÷ …X` r6ódeó^'L"]˜n±Üú¦©ÄrŸ.Çï' è†1Iø<*FÛvœa†‚,Àæ,ëtx,ë<å9ŽP€…¦ 7yHJõ^'XB–0ÝaiyÈÇï7é¼6È*987&–Çö‘c 7©\ŽßOhšå¸ÌqÔÖüï™&Ò„‰ìê8ÿ2)Õ{0AˆtaºEsvI4[¶rDœ$æCD˜žµš;§vI>~?IÈŒ yìÞ§$Íã¼LíP!˜‚Š“…’§9(D²î¹ÅòØFvåfã'I7ŒI²¥9¹KeÇ⬖"!0:ËmÙ>Ê­õ`ò$`‡àúAMsVÖ*B$ Ó–ÛÒçY”å¶ì—ˆ8IrpnLÒTø%ÆikI%y‘ •ey€y>ÀD\ú•4‹„/hJ?Ø8)cC]륂ë>ÏòÀs|¿õÀ¢xôز´ŽS™Õ·0ä‰Ypã…&;„¡ Â…ðAS§).W$ewÝh 4s@Øy`Uvü†4C"Íð$³ð‚&;„¡ Â…ðÁEg'.W$ewÝh 4GØAç¡ TÙü'dI…(ÃEnL9^þ9I4 7†¡ Â…ðd¢Êà¦.W$ew}~@‰˜Á TÑ ¥H`)>“ÄCB^°D@ƒ ‡°¡ 4A¸¾ ¨ˆâäÄ劤ì® ¦Çt˜@•½@a†D˜á#¹HœRdáM4v;@…¡ èbørQe°S—Ó””æ€JÓ£;„&P¥‡/˜¡€¥¸.’¦xÎ’ ‚„‚ÐáBø‚`)г—+’²»n4–ˆ< äJÉŽèJ2$¢,¹É–dCâÅ_pô€ BñØðDøðHŠ3 “ ’®Cüü€ÊÐc4L Êˆ^ C"Æð[$³ð”d4¸< ‚„ËãÊ:¸äqEÒuÓ€Á’1HŽ TÑ ‚¥JŽD}N‰YxÁÒ8„¡ „ðEG'.W$ew}~@eé1„œ&Å£(ËÈ2|‰‡Ä,¼`‰€ÎãP`hš¾€TTäÔå,#aGy# ²ô˜A TÑ „¥H`)>‚‹ÄCbž³d@ƒ@‡À¡xl‚0!|A°ÅY†ÉI×M7KÄr˜@•¿!ËÈ2|'‰‡Ä,¼`‰€Aa¨04] _@.ª vêrš’²Ó¼Ð@izÌ`‡ÀªŒèBS$ÐÑEâ!1 ÏiŽ€aBAh‚° |A ÅQŠËIÙ]ŸÐ@8"æ€PóÀªŒèÊ1$r  Iâ!1 /8" A€óÈ! 8A˜æù#½«"¬q|XV"Y÷Üh $=æ€póÀªŒèJ2$’ ±Eâ”" /Hâ`÷Èq½r,1 yQz}¢.*5[>ÿ`åè'¯\8î—GŽœµÜ²¯µ‚éäTUØd.}ÓÃ|ÇÌyÜnü a³>+^²bL%•š-7(ö ñt0`Ÿ6ϧD'É¡¹1I6èÚ³q[/!’„LÀ(ßxÖ%‘´/:rËü“Lh!7;^>³]ú8V]Tj¶Ü!Yú y"YŽK`ˆ$[ÙyN4$ûLs!¹”K`ˆ$!0òÛã©=ãÛ£Ü2ÿ$ZÀÍ>".¥FЗ5+5[|øUÏT ‘$`›üƒOHýóᑌö‘1†H’g‚Fù"¾ëáWãû÷·Ì?É„rkúÌ$íówvQ©Ùrƒdÿ¨IÚ§ï"IÀ6ŒI²É¾3íÛ÷…¤HÈŒ²N#56}Q†Ü1ÿ$8Hml«NJÙ¨‰JÍ–;Ÿ –µõ¹±Q Ж“'|Bjùʯv_Q2F‘÷éÚ!=y¬ŠŽ?A$, f‹€Ö,ô­šj¢R“ãžø'…2K„ÒÙXIrdnLÒá…`´%B5aT ™€Q׳e޶z­ÄóO"¡…ØliÚE9, ê¢R³åÉj‹H[¹v)¨Õéã±eãÒØ÷…k[æ(²£®°<Çñ…’7Ì?I„PëË%Ǿ¢R‰R³åÇyÎ!!ÆjÊÜT ÔæË¹Ý=W9$ÄXL™;‘*yhÔu¿z”o_å»É óO¡…Ôlo&kË/ÉE¥fË ŽË8‚[Aö¾¹žS ØÎîîKwkn úß I‘ u5ú–H®Õ;‰ã–ù'™ÐBn¶¬<³m=¦-»¨Ôl¹CrÁH®årJt’€íáìî±¢<7Q}Ýù‘IŠ„LÀ¨»$ÉùÜl’·‚IXÀ­owس2ÛÃW•š-7HÎãn%Ù·Cd’*9¶ùáìî±Ñ!“ìÛ!ÒüIB&`Ô½;5‘¬›wÇ-óO2¡…ÜlNf›‹ñ,…<~|‡a-—`cNîª`µ\‚AŒ­7¹…² :yH# ²›î%KÝGÛ9Í ÿ" @«o «Y±Á½˜(Ôl¸Ãpá¼å@ª×°©Ô7‚eßÇu{Ú¢xhÓ‰`ßÈóñ'qÐBb¶Iñ¢¬—9¢Pj¶Ü Ø·'æy ÛĘCA$ І1Iµ°í€±.—PIB&`”ý¶kšñé»kå–ù'™ÐBnsõ~a(}ݦº¨Ôl¹Crí³®‰äz0€ˆlëÆh•lÓl®Pmkm>.>IÈŒÜ~äyбë;aÅŸ8µ7,8Ø·Ÿ*¿f¥äy Qj¶Ü8v¿oåÎ ,S{ê&ÉOöuc’öziä{V§4ºN2£œNæ)ÆYrËü“Lh!·ö¨ÏÌv­yžH”š-wHÖý ¾¡—5 Øê~ ÑÈÇ&÷s.$EB&`”33J&¹L2Q!’ -àf‡_lKV¶šˆŽ\DqvâЦ<\w"&M5vù@•Ai†Dšá:I<$fáMDLšˆl ‚„ ñ‚‹(ÎN\®HÊîº3AizXƒ`‡Ø¢x€¡)hŠè"ñ˜…43!Ø!¶A(.DH.¢8;q¹")»ëFÔ¥é „G?Pe„HPš!‘føˆ.‰YxJ3¢&€]D7‚&b$Q:»ärERî®[q‚&Cã¨2‚$M•pÚø&³ð‚&â&;Ä7!Â…( ÁEg'.W$ew݈œ 4=¸°óªŒ0 J3$Ò ÑEâ!1 Ïi2rÙ1ÆAÐD„ éKNN “ÄCb^ÐD…`ç¡B@0„0!^B`Åщ˕HØMŸCAQz˜ç±TÙñ¢ ‰(ÃGn‘xHÈÁs’Œ¡@pŒu(!P"bBPÅÁ‰k(šòp݉¢ 0ê@Ðy<QFÌeI…(Ãn’tHÌÀ…eÙ.çÛîåzô ãBOz!QMJòx ù¹g•ì6 É' îrÚá²?@äÆ$‘f3ÍòHói¿¨•›)Ól¬¤³S© LÁn+—óm÷mñ3a‚éÂt‹fëÜùŒAËŽ“‘€n“$ç Á؆Bg>cP%dF§y,»žüï¦à¬:Ü5€¡‰ìŽÖìÔ5+«ÇZ€ B¤ ÓšG{§|*že+Ÿ!&Šƒs[’ZÆJ>Ê>—LùT<•ÁrÛ/'/bðž¡ LA®ôÉ·¤¬f„H¦[,·m¬A’ÛÝö±¿R ˆt›×ê"µ¬]À¶˜¡ °9Ësê a„å9õ£Ïäž© MAîÀ9ÿ¡ôêDXB–0ÝayNÛåäÿž­|ò’œËce˜ °l£6M˜"&Œ Ùªè’iÚF£t^Ò„‰ìÎ¥/ÑJÊ:ŽÝ¢ B¤ Ó-š­¼œŠgÙºœŠ§hc’ZÖ.gÿŸKœ)ŒäEB&`Í£â•æe戟µÖŒœ5+«Ÿ7„H¦[[÷«äSÜ,[G®öT´aLÒ¶^OÄk×ç!­H^$dÆÁqµ‰¤MÏ nŠÝ~Ü4Ç[§©æón›²~lêñ¿#QXn\mB,5;=OùÐ$ jîKÊ´²u†¯52%RŸ$dFplóž9Úé½$R)¸Ùh'“l•ò®ÿ;R…åÉÖxÔ3£l­ãT3‘n“T [gÇñ:‰¥HÈŒÎÒf¼=s¹)§÷ q×TÀ…¦ ׺léÌåÕ&µŽô M˜îМ[ó±¥sÕW›!›S…—$GçÆD³5€˜G?­ Á 0Ý–e×¹e“¦³C!K˜Hn^j>ƒyµÉ¶3™ Dº0ÝbÙ?nµ¹»?.I`9ŒI²]¸g6¶&fÏ0UB&`Íq\©Ò=[¹ÂSÉѹ1IS½Ž"mÄe©2#hn§÷¡IsŸ½Í»†B00;›48²RSÄ"]˜nÑ´#Ö2LËU®õT¹îKJ‰ äð•rEª„,À(,Ï”ÛJ,[[Áò”ØQë1ÎÂKÊ–cPQ‘„ÝuŸå#Ì^«!*”(: ¶,m¾¢H|eììÔÄCb6]QD,&äò)„…¢ ‘£‚¥([Ž@J$ ×XRÂrñpOBÎcB©²ã7dY†à$ñ˜…ç,J*È!àS( EâFQ¶*”H®‘¤”åˆ÷$à<&”*›ÿ„$©d¸H)‡ÂË?åÈ@R¤ÆpO¡ $MˆE"ªl9úT(‘0\ŸGJ0"ÔSPC<(UFÐ()HŠÜ$ñƒç$F*¸!ØS(EbFQ¶{*”H®Q¤¥zp J•2JQ†D”á#·HœRdá9K‘ rõD…á `bÄ(RQeË‘§‚e$ –7bH)Kôä J•1JP†’â"¶HšRdà)I† nô ‚AÑ„xQAR”-Ç %†ëF)!‰PO­”üç¥C"È’›iI6$^ü9E Èè)å–ˆIÙRЩ"Y üüøQJÐC< 2¥Ê¥C"ÄðZ$³ðŒc„¶ó BAÑäÁ¢d[Ž8J$ ÓèQA’žÈQ T¡¢‚¤JD}ŽM‰YxNÒƒG6„x a èA¤¨€"Ê–#N… Ãõù±£”¤‡wnJ¥$C"Éð[$³ðœ$BG8ðDA àaœ(2QeËñ¦‚$ÓÈ‘£”¤w nˆ¥Ê%$EIñ[$³ð”$G8x Åc@у(QAR”-› !’…éFÜ(!‰ÐNÂÍã?©²ã7$I†Ø$ñ˜…ç$6*¸!¸€‚‰1¢HE•-Çš –‘0XÞˆ¥,=°SCô'UFˆ(a)XŠà"ñ˜…§,GШÀ†ÐN¡ üˆ EÙr¤©P"a¸>7f”PDX'a江T¢”bH¤> “ÄCbžSDȨÀæ±B@ø'zæù#½¥"l9ÊT(Lž£”£ujùI•J9†DŽá#´HœRdá9G¤'Ø)®Š…SŒéÀ±1i—MTj¶|þ9zJѺ»PÜ(.9+¹eŸ­ñûêß4íPØd¶üH mj¼ÆÝòO ÄÚànÉ m9›¨Ôl¹ÃЦ»kfhyš3 ‘€l“4ÕK€€>)Žƒ‘¼HÈŒú 'ÆþÅ&n9þ“°€›}Œ™³P­UV•š78ö0é æž¥|rp’š“dÙ:²qóÓ{$y‘ õ»bæh_KÜ1ÿ$ZˆmÙóŸ8©š*U~‡aékµÃâ'– ‘¬øiR"Y¦rM`ç53 ™€Q¿n§—ºÌ–ûåŸB  õOÕgVª ¼ÄJÍ–;$í3õ‘INç%G’€mU²|¥#^ísöø©«äy€O×\$޶ÂâæŸ$B ©•ͣąRýôuº¨Ôl¹Á±/›H§Å%ó І1I-_9¾ÑX\Q3H‘ u-ОH®ýôÞ2ÿ$ZÈml!JJõotQ©Ùr‡¤Í¼d¶æçR°DµîKÊTyö<|Óz9;8IÈŒÿgW#· ïy…n±`G#‘’Æ@Ar ròÑH`Ïv'pV‹YÅÿ7‰ºÉ.vÑÈ…ðÁ`Áåm°{†]åo¨ù ½Vb_ÜÒ)SM¯šÍŒD9¼zÈ”å’{§«h|xñP–- š"Þ FœJ ý÷²"ŒèïM²’QÝi°e,¡ (Ð-Ù–9ƒÆ!‘)-JÊòÀJÊI>ÀxÈdKD‚†ˆ÷ˆå†äÂJ:ÈŠ0¢¿ÏIÉcŸ èÓ–±„& ˜nz1wb$È-.Ç*HdJ‹’½öÁ¤¤\Üå#Œ‡L¶~®_åz%—¯zq—"QÊE€èo™“’r§¼<$±‚" @5¹,Î:î-ÀB$"T ÉhΫ’Ñ‰á “lÊ~à o#Š[‹X+Áh~ê!†û«¥<ɰ‚ @±~âdž4âp"È”ep¡RqXªžÐ!&X¢Ô‡º'”áξ%ÈJ0¢ŸÃ!uì¦l¸,M‘B1Õt¤¦BB>©ƒ$2¥AG¦á¾PŠªúBeÙ2‘ )Ô}¡ŒÜp¦ AV„ÝtXIÉ`™‹iËXBP ÛP¥G¥Y0úµ.HdJ‹’rñŠ;C)ªê =d²%"Aò…6?Velà®ÆCV„ÝÄbHI™Ot[Æš€bºéìáÈH•líÈ”%Ó…@R2}ãL‚8ÈdKDéà!?t:‘•ôP.D7GKÉÖijv.[ÆšLU²µÄά¤ Í2 HdJƒ’: Ëý¡NÌò‹×C&["´×ů˜åþÐCVCæ¹én÷)–Mw» c E@jûbee”›Y@"SZt¦º?Ô1îJ™hÃT¿Æ¥®ª?ú¡î=dEѹIIõ(º–¥iR(¦›ÜBŠ#!ŸØÁ™Ò ¤°ê.Àï_eÕ)Ôý¡š pè!+Áˆð +ÔöÂíKÈÁŸùˆE`M‡1ŸÔA™Ò¢à~ø¬:Cµ»à¯‡L°D$hU¤x²»àÎÐCV„½7 }©N,nËXBPL7¹i420rT”C"1Zt짺/T ~ízÈDë§ú®î*üPUî =”‹Ñû‘ŽêävŒ%$²É0c>®ƒ$£AG¹\Uu…j Ä:zÈDKD‚B¶ÈuD¹HÅ]¡‡¬#zÿ*úµV»*·c,! (­œºžüª˜$2¥EÉaª;C½ÈÄÇ™l‰HQñSU®NñKÆ!V‚ѼŸeƒŸ åÉvK‹*‹#R{´#c>­ƒ$2¥!'SÑ8qTŠâè[‡ä,¢L#HlÑ8oTÌÓ¸7$ÈJ0¢wù£lpñô;¹ c E@jCÈgõ‚Œù¬È”ƒ~XD:†¹ê 2Ù‘ á›Pq±ó«òF=dEÑ»O²’û#zq[Æš€bº©äÂÈX%Š$2¥EI1œYÉ~®zC‚L¶DôHÒÃUm&¹7$(¢÷D¥lpùÆ|v[Æš€ÝBȧõ‚Œù´È”%ÕÖ”:-Š{C‚L¶D$(ŒUo˜ÜO+é +ˆީ—²Áå[óÉmKh tëëÜu1±=2 HdJ‹’b·{b%‡¹ê 2Ù‘ ~äÞ0yòFÒAVCæyÿhÒQ¾5Ç᧬k¢ïR@!œŸ7•‡nùÇ ú©õ3ë§Ѭƒ‡,ó. šÆª'LÑÔËdEÑû™SB¸|g^2Ö±‚ Pœ kº?•) @dB‹Š!ÞU"ÊU!ÎJ÷)¦_žÎë^æÝz{8<ßÖ?/çíåîüp=¼^>^ž¯|Z×í°~¹Ü¾\/¯{E%Y4îÂ÷£¢ä(î.)îÍœ7©yŸ¦ŽKÒüå²}> /Contents 6 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 14 0 obj <> endobj 15 0 obj <> endobj 10 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 16 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 17 0 obj <> endobj 2 0 obj <>endobj xref 0 18 0000000000 65535 f 0000085948 00000 n 0000086700 00000 n 0000085889 00000 n 0000085996 00000 n 0000085728 00000 n 0000000015 00000 n 0000085707 00000 n 0000086498 00000 n 0000086557 00000 n 0000086144 00000 n 0000086217 00000 n 0000086275 00000 n 0000086346 00000 n 0000086051 00000 n 0000086081 00000 n 0000086435 00000 n 0000086644 00000 n trailer << /Size 18 /Root 1 0 R /Info 2 0 R >> startxref 86750 %%EOF uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/000077500000000000000000000000001224274632000214455ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/architecture.eps000066400000000000000000000327731224274632000246540ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: architecture.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Thu Apr 14 00:29:54 2005 %%For: arnim@lola (Arnim Laeuger) %%BoundingBox: 0 0 452 241 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 241 moveto 0 0 lineto 452 0 lineto 452 241 lineto closepath clip newpath -194.1 454.9 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06299 0.06299 sc % % Fig objects follow % /Courier ff 150.00 scf sf 6570 4005 m gs 1 -1 sc (controller) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 6570 4185 m gs 1 -1 sc (FSM) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 7.500 slw gs clippath 5025 5107 m 5025 5152 l 5146 5152 l 5056 5130 l 5146 5107 l cp eoclip n 8100 5130 m 5040 5130 l gs col0 s gr gr % arrowhead n 5146 5107 m 5056 5130 l 5146 5152 l 5146 5107 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 7290 5085 m gs 1 -1 sc (spi_data) col0 sh gr % Polyline gs clippath 8115 3712 m 8115 3667 l 7994 3667 l 8084 3690 l 7994 3712 l cp eoclip n 7200 3690 m 8100 3690 l gs col0 s gr gr % arrowhead n 7994 3712 m 8084 3690 l 7994 3667 l 7994 3712 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 7605 3645 m gs 1 -1 sc (control) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline gs clippath 5025 3667 m 5025 3712 l 5146 3712 l 5056 3690 l 5146 3667 l cp eoclip n 5940 3690 m 5040 3690 l gs col0 s gr gr % arrowhead n 5146 3667 m 5056 3690 l 5146 3712 l 5146 3667 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 5220 3645 m gs 1 -1 sc (control) col0 sh gr % Polyline gs clippath 5955 4252 m 5955 4207 l 5834 4207 l 5924 4230 l 5834 4252 l cp eoclip n 5040 4230 m 5940 4230 l gs col0 s gr gr % arrowhead n 5834 4252 m 5924 4230 l 5834 4207 l 5834 4252 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 5175 4185 m gs 1 -1 sc (status) col0 sh gr % Polyline gs clippath 4035 3667 m 4035 3712 l 4156 3712 l 4066 3690 l 4156 3667 l cp eoclip n 4320 3690 m 4050 3690 l gs col0 s gr gr % arrowhead n 4156 3667 m 4066 3690 l 4156 3712 l 4156 3667 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 3735 m gs 1 -1 sc (config_n) dup sw pop neg 0 rm col0 sh gr % Polyline gs clippath 4335 3937 m 4335 3892 l 4214 3892 l 4304 3915 l 4214 3937 l cp eoclip n 4320 3915 m 4050 3915 l gs col0 s gr gr % arrowhead n 4214 3937 m 4304 3915 l 4214 3892 l 4214 3937 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 3960 m gs 1 -1 sc (cfg_init_n) dup sw pop neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 4680 3870 m gs 1 -1 sc (config) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 4680 4050 m gs 1 -1 sc (port) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 15.000 slw n 4320 3420 m 5040 3420 l 5040 5310 l 4320 5310 l cp gs col0 s gr % Polyline 7.500 slw gs clippath 4335 4162 m 4335 4117 l 4214 4117 l 4304 4140 l 4214 4162 l cp eoclip n 4320 4140 m 4050 4140 l gs col0 s gr gr % arrowhead n 4214 4162 m 4304 4140 l 4214 4117 l 4214 4162 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 4185 m gs 1 -1 sc (cfg_done) dup sw pop neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 4680 6120 m gs 1 -1 sc (data) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 4680 6300 m gs 1 -1 sc (port) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 15.000 slw n 4320 5670 m 5040 5670 l 5040 7200 l 4320 7200 l cp gs col0 s gr /Courier ff 150.00 scf sf 8460 3870 m gs 1 -1 sc (SPI) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 8460 4050 m gs 1 -1 sc (port) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 8100 3420 m 8820 3420 l 8820 5310 l 8100 5310 l cp gs col0 s gr % Polyline 7.500 slw gs clippath 9105 3712 m 9105 3667 l 8984 3667 l 9074 3690 l 8984 3712 l cp eoclip n 8820 3690 m 9090 3690 l gs col0 s gr gr % arrowhead n 8984 3712 m 9074 3690 l 8984 3667 l 8984 3712 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 9135 3735 m gs 1 -1 sc (spi_clk) col0 sh gr % Polyline gs clippath 9105 3937 m 9105 3892 l 8984 3892 l 9074 3915 l 8984 3937 l cp eoclip n 8820 3915 m 9090 3915 l gs col0 s gr gr % arrowhead n 8984 3937 m 9074 3915 l 8984 3892 l 8984 3937 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 9135 3960 m gs 1 -1 sc (spi_cs_n) col0 sh gr % Polyline gs clippath 9105 4162 m 9105 4117 l 8984 4117 l 9074 4140 l 8984 4162 l cp eoclip n 8820 4140 m 9090 4140 l gs col0 s gr gr % arrowhead n 8984 4162 m 9074 4140 l 8984 4117 l 8984 4162 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 9135 4185 m gs 1 -1 sc (spi_data_in) col0 sh gr % Polyline gs clippath 9105 4387 m 9105 4342 l 8984 4342 l 9074 4365 l 8984 4387 l cp eoclip n 8820 4365 m 9090 4365 l gs col0 s gr gr % arrowhead n 8984 4387 m 9074 4365 l 8984 4342 l 8984 4387 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 9135 4410 m gs 1 -1 sc (spi_data_out) col0 sh gr /Courier ff 150.00 scf sf 8460 6480 m gs 1 -1 sc (cmd) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 8460 6660 m gs 1 -1 sc (FSM) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 15.000 slw n 8100 5850 m 8820 5850 l 8820 7200 l 8100 7200 l cp gs col0 s gr % Polyline 7.500 slw gs clippath 8482 5295 m 8437 5295 l 8437 5416 l 8460 5326 l 8482 5416 l cp eoclip n 8460 5850 m 8460 5310 l gs col0 s gr gr % arrowhead n 8482 5416 m 8460 5326 l 8437 5416 l 8482 5416 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 8550 5625 m gs 1 -1 sc (spi_data) col0 sh gr % Polyline gs clippath 4035 4882 m 4035 4927 l 4156 4927 l 4066 4905 l 4156 4882 l cp eoclip n 4320 4905 m 4050 4905 l gs col0 s gr gr % arrowhead n 4156 4882 m 4066 4905 l 4156 4927 l 4156 4882 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 4950 m gs 1 -1 sc (cfg_clk) dup sw pop neg 0 rm col0 sh gr % Polyline gs clippath 4035 5107 m 4035 5152 l 4156 5152 l 4066 5130 l 4156 5107 l cp eoclip n 4320 5130 m 4050 5130 l gs col0 s gr gr % arrowhead n 4156 5107 m 4066 5130 l 4156 5152 l 4156 5107 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 5175 m gs 1 -1 sc (cfg_dat) dup sw pop neg 0 rm col0 sh gr % Polyline gs clippath 4335 5962 m 4335 5917 l 4214 5917 l 4304 5940 l 4214 5962 l cp eoclip n 4320 5940 m 4050 5940 l gs col0 s gr gr % arrowhead n 4214 5962 m 4304 5940 l 4214 5917 l 4214 5962 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 5985 m gs 1 -1 sc (start) dup sw pop neg 0 rm col0 sh gr % Polyline gs clippath 4335 6412 m 4335 6367 l 4214 6367 l 4304 6390 l 4214 6412 l cp eoclip n 4320 6390 m 4050 6390 l gs col0 s gr gr % arrowhead n 4214 6412 m 4304 6390 l 4214 6367 l 4214 6412 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 6435 m gs 1 -1 sc (dat_done) dup sw pop neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 6660 6390 m gs 1 -1 sc (MMC) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 6660 6570 m gs 1 -1 sc (comp.) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 15.000 slw n 6390 6210 m 6930 6210 l 6930 6660 l 6390 6660 l cp gs col0 s gr /Courier ff 150.00 scf sf 7515 6390 m gs 1 -1 sc (bit) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 7515 6570 m gs 1 -1 sc (cnt) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 7245 6210 m 7785 6210 l 7785 6660 l 7245 6660 l cp gs col0 s gr /Courier ff 150.00 scf sf 7515 6930 m gs 1 -1 sc (img) dup sw pop 2 div neg 0 rm col0 sh gr /Courier ff 150.00 scf sf 7515 7110 m gs 1 -1 sc (cnt) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 7245 6750 m 7785 6750 l 7785 7200 l 7245 7200 l cp gs col0 s gr % Polyline 7.500 slw gs clippath 4335 6187 m 4335 6142 l 4214 6142 l 4304 6165 l 4214 6187 l cp eoclip n 4320 6165 m 4050 6165 l gs col0 s gr gr % arrowhead n 4214 6187 m 4304 6165 l 4214 6142 l 4214 6187 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 6210 m gs 1 -1 sc (mode) dup sw pop neg 0 rm col0 sh gr % Polyline n 4050 7020 m 4185 7020 l 4185 6975 l 4275 7065 l 4185 7155 l 4185 7110 l 4050 7110 l cp gs col0 s gr /Courier ff 150.00 scf sf 3960 7110 m gs 1 -1 sc (set_sel) dup sw pop neg 0 rm col0 sh gr % Polyline gs clippath 4035 6592 m 4035 6637 l 4156 6637 l 4066 6615 l 4156 6592 l cp eoclip n 4320 6615 m 4050 6615 l gs col0 s gr gr % arrowhead n 4156 6592 m 4066 6615 l 4156 6637 l 4156 6592 l cp gs 0.00 setgray ef gr col0 s /Courier ff 150.00 scf sf 4005 6660 m gs 1 -1 sc (detached) dup sw pop neg 0 rm col0 sh gr 0.000 slw % Ellipse n 7020 5130 35 35 0 360 DrawEllipse gs 0.00 setgray ef gr % Polyline 7.500 slw gs clippath 7042 4665 m 6997 4665 l 6997 4786 l 7020 4696 l 7042 4786 l cp eoclip n 7020 5130 m 7020 4680 l gs col0 s gr gr % arrowhead n 7042 4786 m 7020 4696 l 6997 4786 l 7042 4786 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8115 5962 m 8115 5917 l 7994 5917 l 8084 5940 l 7994 5962 l cp eoclip n 6840 4680 m 6840 5940 l 8100 5940 l gs col0 s gr gr % arrowhead n 7994 5962 m 8084 5940 l 7994 5917 l 7994 5962 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6682 4665 m 6637 4665 l 6637 4786 l 6660 4696 l 6682 4786 l cp eoclip n 8100 6120 m 6660 6120 l 6660 4680 l gs col0 s gr gr % arrowhead n 6682 4786 m 6660 4696 l 6637 4786 l 6682 4786 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6142 4665 m 6097 4665 l 6097 4786 l 6120 4696 l 6142 4786 l cp eoclip n 6120 4680 m 6120 5940 l 5040 5940 l gs col0 s gr gr % arrowhead n 6142 4786 m 6120 4696 l 6097 4786 l 6142 4786 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7260 6907 m 7260 6862 l 7139 6862 l 7229 6885 l 7139 6907 l cp eoclip n 6300 4680 m 6300 6885 l 7245 6885 l gs col0 s gr gr % arrowhead n 7139 6907 m 7229 6885 l 7139 6862 l 7139 6907 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8115 6457 m 8115 6412 l 7994 6412 l 8084 6435 l 7994 6457 l cp eoclip n 7785 6435 m 8100 6435 l gs col0 s gr gr % arrowhead n 7994 6457 m 8084 6435 l 7994 6412 l 7994 6457 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 8115 6997 m 8115 6952 l 7994 6952 l 8084 6975 l 7994 6997 l cp eoclip n 7785 6975 m 8100 6975 l gs col0 s gr gr % arrowhead n 7994 6997 m 8084 6975 l 7994 6952 l 7994 6997 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6457 6225 m 6502 6225 l 6502 6104 l 6480 6194 l 6457 6104 l cp eoclip n 6480 4680 m 6480 6210 l gs col0 s gr gr % arrowhead n 6457 6104 m 6480 6194 l 6502 6104 l 6457 6104 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 7260 6457 m 7260 6412 l 7139 6412 l 7229 6435 l 7139 6457 l cp eoclip n 6930 6435 m 7245 6435 l gs col0 s gr gr % arrowhead n 7139 6457 m 7229 6435 l 7139 6412 l 7139 6457 l cp gs 0.00 setgray ef gr col0 s % Polyline n 5040 7020 m 7110 7020 l 7110 6975 l 7200 7065 l 7110 7155 l 7110 7110 l 5040 7110 l cp gs col0 s gr /Courier ff 150.00 scf sf 7155 5895 m gs 1 -1 sc (state) col0 sh gr /Courier ff 150.00 scf sf 7155 6075 m gs 1 -1 sc (finished) col0 sh gr /Courier ff 150.00 scf sf 5265 5895 m gs 1 -1 sc (status) col0 sh gr /Courier ff 150.00 scf sf 6705 6840 m gs 1 -1 sc (cnt) col0 sh gr % Polyline 15.000 slw n 5940 3420 m 7200 3420 l 7200 4680 l 5940 4680 l cp gs col0 s gr $F2psEnd rs uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/architecture.fig000066400000000000000000000143711224274632000246240ustar00rootroot00000000000000#FIG 3.2 Landscape Center Metric A4 100.00 Single -2 1200 2 6 5895 3375 7245 4725 6 6120 3915 7020 4185 4 1 0 50 0 12 10 0.0000 4 90 900 6570 4005 controller\001 4 1 0 50 0 12 10 0.0000 4 90 270 6570 4185 FSM\001 -6 2 2 0 2 0 7 40 0 -1 0.000 0 0 -1 0 0 5 5940 3420 7200 3420 7200 4680 5940 4680 5940 3420 -6 6 5040 4995 8100 5175 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 8100 5130 5040 5130 4 0 0 50 0 12 10 0.0000 4 120 720 7290 5085 spi_data\001 -6 6 7200 3555 8100 3735 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 7200 3690 8100 3690 4 1 0 50 0 12 10 0.0000 4 90 630 7605 3645 control\001 -6 6 5040 3555 5940 3735 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 5940 3690 5040 3690 4 0 0 50 0 12 10 0.0000 4 90 630 5220 3645 control\001 -6 6 5040 4095 5940 4275 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 5040 4230 5940 4230 4 0 0 50 0 12 10 0.0000 4 90 540 5175 4185 status\001 -6 6 3285 3645 4320 3780 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 4320 3690 4050 3690 4 2 0 50 0 12 10 0.0000 4 120 720 4005 3735 config_n\001 -6 6 3105 3870 4320 4005 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 1 1 1.00 45.00 90.00 4320 3915 4050 3915 4 2 0 50 0 12 10 0.0000 4 120 900 4005 3960 cfg_init_n\001 -6 6 4275 3375 5085 5355 6 4410 3780 4950 4095 4 1 0 50 0 12 10 0.0000 4 120 540 4680 3870 config\001 4 1 0 50 0 12 10 0.0000 4 120 360 4680 4050 port\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 4320 3420 5040 3420 5040 5310 4320 5310 4320 3420 -6 6 3285 4095 4320 4230 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 1 1 1.00 45.00 90.00 4320 4140 4050 4140 4 2 0 50 0 12 10 0.0000 4 120 720 4005 4185 cfg_done\001 -6 6 4275 5625 5085 7245 6 4500 6030 4860 6345 4 1 0 50 0 12 10 0.0000 4 90 360 4680 6120 data\001 4 1 0 50 0 12 10 0.0000 4 120 360 4680 6300 port\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 4320 5670 5040 5670 5040 7200 4320 7200 4320 5670 -6 6 8055 3375 8865 5355 6 8280 3780 8640 4095 4 1 0 50 0 12 10 0.0000 4 90 270 8460 3870 SPI\001 4 1 0 50 0 12 10 0.0000 4 120 360 8460 4050 port\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 8100 3420 8820 3420 8820 5310 8100 5310 8100 3420 -6 6 8820 3645 9765 3780 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 8820 3690 9090 3690 4 0 0 50 0 12 10 0.0000 4 120 630 9135 3735 spi_clk\001 -6 6 8820 3870 9855 4005 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 8820 3915 9090 3915 4 0 0 50 0 12 10 0.0000 4 120 720 9135 3960 spi_cs_n\001 -6 6 8820 4095 10125 4230 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 8820 4140 9090 4140 4 0 0 50 0 12 10 0.0000 4 120 990 9135 4185 spi_data_in\001 -6 6 8820 4320 10215 4455 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 8820 4365 9090 4365 4 0 0 50 0 12 10 0.0000 4 120 1080 9135 4410 spi_data_out\001 -6 6 8055 5805 8865 7245 6 8325 6390 8595 6660 4 1 0 50 0 12 10 0.0000 4 90 270 8460 6480 cmd\001 4 1 0 50 0 12 10 0.0000 4 90 270 8460 6660 FSM\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 8100 5850 8820 5850 8820 7200 8100 7200 8100 5850 -6 6 8415 5310 9270 5850 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 8460 5850 8460 5310 4 0 0 50 0 12 10 0.0000 4 120 720 8550 5625 spi_data\001 -6 6 3375 4860 4320 4995 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 4320 4905 4050 4905 4 2 0 50 0 12 10 0.0000 4 120 630 4005 4950 cfg_clk\001 -6 6 3375 5085 4320 5220 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 4320 5130 4050 5130 4 2 0 50 0 12 10 0.0000 4 120 630 4005 5175 cfg_dat\001 -6 6 3555 5895 4320 5985 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 1 1 1.00 45.00 90.00 4320 5940 4050 5940 4 2 0 50 0 12 10 0.0000 4 90 450 4005 5985 start\001 -6 6 3285 6345 4320 6480 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 1 1 1.00 45.00 90.00 4320 6390 4050 6390 4 2 0 50 0 12 10 0.0000 4 105 720 4005 6435 dat_done\001 -6 6 6345 6165 6975 6705 6 6435 6300 6885 6615 4 1 0 50 0 12 10 0.0000 4 90 270 6660 6390 MMC\001 4 1 0 50 0 12 10 0.0000 4 90 450 6660 6570 comp.\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 6390 6210 6930 6210 6930 6660 6390 6660 6390 6210 -6 6 7200 6165 7830 6705 6 7380 6300 7650 6570 4 1 0 50 0 12 10 0.0000 4 90 270 7515 6390 bit\001 4 1 0 50 0 12 10 0.0000 4 90 270 7515 6570 cnt\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 7245 6210 7785 6210 7785 6660 7245 6660 7245 6210 -6 6 7200 6705 7830 7245 6 7380 6840 7650 7110 4 1 0 50 0 12 10 0.0000 4 120 270 7515 6930 img\001 4 1 0 50 0 12 10 0.0000 4 90 270 7515 7110 cnt\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 7245 6750 7785 6750 7785 7200 7245 7200 7245 6750 -6 6 3645 6120 4320 6210 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 1 1 1.00 45.00 90.00 4320 6165 4050 6165 4 2 0 50 0 12 10 0.0000 4 90 360 4005 6210 mode\001 -6 6 3330 6975 4275 7155 2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 4050 7020 4185 7020 4185 6975 4275 7065 4185 7155 4185 7110 4050 7110 4050 7020 4 2 0 50 0 12 10 0.0000 4 105 630 3960 7110 set_sel\001 -6 6 3285 6570 4320 6660 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 4320 6615 4050 6615 4 2 0 50 0 12 10 0.0000 4 90 720 4005 6660 detached\001 -6 1 3 0 0 0 -1 50 0 20 0.000 1 0.0000 7020 5130 35 35 7020 5130 7055 5130 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 7020 5130 7020 4680 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 1 1 1.00 45.00 90.00 6840 4680 6840 5940 8100 5940 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 1 1 1.00 45.00 90.00 8100 6120 6660 6120 6660 4680 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 3 1 1 1.00 45.00 90.00 6120 4680 6120 5940 5040 5940 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 1 1 1.00 45.00 90.00 6300 4680 6300 6885 7245 6885 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 7785 6435 8100 6435 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 7785 6975 8100 6975 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 6480 4680 6480 6210 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 6930 6435 7245 6435 2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 5040 7020 7110 7020 7110 6975 7200 7065 7110 7155 7110 7110 5040 7110 5040 7020 4 0 0 50 0 12 10 0.0000 4 90 450 7155 5895 state\001 4 0 0 50 0 12 10 0.0000 4 90 720 7155 6075 finished\001 4 0 0 50 0 12 10 0.0000 4 90 540 5265 5895 status\001 4 0 0 50 0 12 10 0.0000 4 90 270 6705 6840 cnt\001 uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/initialization.eps000066400000000000000000000205261224274632000252120ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: initialization.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Thu Mar 16 15:45:46 2006 %%For: arnim@lola (Arnim Laeuger) %%BoundingBox: 0 0 194 312 %%Magnification: 0.6500 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 312 moveto 0 0 lineto 194 0 lineto 194 312 lineto closepath clip newpath -124.4 424.7 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.04094 0.04094 sc % % Fig objects follow % % Polyline 15.000 slw n 3060 2790 m 4500 2790 l 4500 3420 l 3060 3420 l cp gs col0 s gr /Helvetica ff 150.00 scf sf 3780 3150 m gs 1 -1 sc (Power up) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 4027 m gs 1 -1 sc (CMD0) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 4252 m gs 1 -1 sc (GO_IDLE_STATE) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3060 3780 m 4500 3780 l 4500 4410 l 3060 4410 l cp gs col0 s gr /Helvetica ff 150.00 scf sf 3780 5017 m gs 1 -1 sc (CMD55) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 5242 m gs 1 -1 sc (APP_CMD) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3060 4770 m 4500 4770 l 4500 5400 l 3060 5400 l cp gs col0 s gr % Polyline n 3780 5760 m 4500 6030 l 3780 6390 l 3060 6030 l cp gs col0 s gr /Helvetica ff 150.00 scf sf 3780 6112 m gs 1 -1 sc (Response ok?) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 6997 m gs 1 -1 sc (ACMD41) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 7222 m gs 1 -1 sc (SEND_OP_CMD) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3060 6750 m 4500 6750 l 4500 7380 l 3060 7380 l cp gs col0 s gr % Polyline n 3780 7740 m 4500 8010 l 3780 8370 l 3060 8010 l cp gs col0 s gr /Helvetica ff 150.00 scf sf 3780 8092 m gs 1 -1 sc (Card idle?) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 6390 6997 m gs 1 -1 sc (CMD1) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 6390 7222 m gs 1 -1 sc (SEND_OP_CMD) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 5670 6750 m 7110 6750 l 7110 7380 l 5670 7380 l cp gs col0 s gr % Polyline n 6390 7740 m 7110 8010 l 6390 8370 l 5670 8010 l cp gs col0 s gr /Helvetica ff 150.00 scf sf 6390 8092 m gs 1 -1 sc (Card idle?) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 8977 m gs 1 -1 sc (CMD16) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 150.00 scf sf 3780 9202 m gs 1 -1 sc (SET_BLOCKLEN) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3060 8730 m 4500 8730 l 4500 9360 l 3060 9360 l cp gs col0 s gr % Polyline n 3060 9720 m 4500 9720 l 4500 10350 l 3060 10350 l cp gs col0 s gr /Helvetica ff 150.00 scf sf 3780 10080 m gs 1 -1 sc (Wait for start) dup sw pop 2 div neg 0 rm col0 sh gr % Arc 7.500 slw n 5130.0 6030.0 45.0 180.0 0.0 arc gs col0 s gr % Polyline gs clippath 3757 3795 m 3802 3795 l 3802 3674 l 3780 3764 l 3757 3674 l cp eoclip n 3780 3420 m 3780 3780 l gs col0 s gr gr % arrowhead n 3757 3674 m 3780 3764 l 3802 3674 l 3757 3674 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3757 4785 m 3802 4785 l 3802 4664 l 3780 4754 l 3757 4664 l cp eoclip n 3780 4410 m 3780 4770 l gs col0 s gr gr % arrowhead n 3757 4664 m 3780 4754 l 3802 4664 l 3757 4664 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3757 5775 m 3802 5775 l 3802 5654 l 3780 5744 l 3757 5654 l cp eoclip n 3780 5400 m 3780 5760 l gs col0 s gr gr % arrowhead n 3757 5654 m 3780 5744 l 3802 5654 l 3757 5654 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3757 6765 m 3802 6765 l 3802 6644 l 3780 6734 l 3757 6644 l cp eoclip n 3780 6390 m 3780 6750 l gs col0 s gr gr % arrowhead n 3757 6644 m 3780 6734 l 3802 6644 l 3757 6644 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3757 7755 m 3802 7755 l 3802 7634 l 3780 7724 l 3757 7634 l cp eoclip n 3780 7380 m 3780 7740 l gs col0 s gr gr % arrowhead n 3757 7634 m 3780 7724 l 3802 7634 l 3757 7634 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3765 4522 m 3765 4567 l 3886 4567 l 3796 4545 l 3886 4522 l cp eoclip n 4500 8010 m 5130 8010 l 5130 4545 l 3780 4545 l gs col0 s gr gr % arrowhead n 3886 4522 m 3796 4545 l 3886 4567 l 3886 4522 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6367 6765 m 6412 6765 l 6412 6644 l 6390 6734 l 6367 6644 l cp eoclip n 5175 6030 m 6390 6030 l 6390 6750 l gs col0 s gr gr % arrowhead n 6367 6644 m 6390 6734 l 6412 6644 l 6367 6644 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6367 7755 m 6412 7755 l 6412 7634 l 6390 7724 l 6367 7634 l cp eoclip n 6390 7380 m 6390 7740 l gs col0 s gr gr % arrowhead n 6367 7634 m 6390 7724 l 6412 7634 l 6367 7634 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 6375 6007 m 6375 6052 l 6496 6052 l 6406 6030 l 6496 6007 l cp eoclip n 7110 8010 m 7740 8010 l 7740 6030 l 6390 6030 l gs col0 s gr gr % arrowhead n 6496 6007 m 6406 6030 l 6496 6052 l 6496 6007 l cp gs 0.00 setgray ef gr col0 s % Polyline n 4500 6030 m 5085 6030 l gs col0 s gr % Polyline gs clippath 3757 8745 m 3802 8745 l 3802 8624 l 3780 8714 l 3757 8624 l cp eoclip n 3780 8370 m 3780 8730 l gs col0 s gr gr % arrowhead n 3757 8624 m 3780 8714 l 3802 8624 l 3757 8624 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3765 8482 m 3765 8527 l 3886 8527 l 3796 8505 l 3886 8482 l cp eoclip n 6390 8370 m 6390 8505 l 3780 8505 l gs col0 s gr gr % arrowhead n 3886 8482 m 3796 8505 l 3886 8527 l 3886 8482 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3757 9735 m 3802 9735 l 3802 9614 l 3780 9704 l 3757 9614 l cp eoclip n 3780 9360 m 3780 9720 l gs col0 s gr gr % arrowhead n 3757 9614 m 3780 9704 l 3802 9614 l 3757 9614 l cp gs 0.00 setgray ef gr col0 s /Helvetica ff 150.00 scf sf 4590 7965 m gs 1 -1 sc (Yes) col0 sh gr /Helvetica ff 150.00 scf sf 3870 6570 m gs 1 -1 sc (Yes) col0 sh gr /Helvetica ff 150.00 scf sf 4590 5985 m gs 1 -1 sc (No) col0 sh gr /Helvetica ff 150.00 scf sf 7200 7965 m gs 1 -1 sc (Yes) col0 sh gr /Helvetica ff 150.00 scf sf 6480 8550 m gs 1 -1 sc (No) col0 sh gr /Helvetica ff 150.00 scf sf 3690 8550 m gs 1 -1 sc (No) dup sw pop neg 0 rm col0 sh gr $F2psEnd rs uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/initialization.fig000066400000000000000000000072211224274632000251650ustar00rootroot00000000000000#FIG 3.2 Landscape Center Metric A4 65.00 Single -2 1200 2 5 1 0 1 0 7 50 0 -1 0.000 0 0 0 0 5130.000 6030.000 5085 6030 5130 5985 5175 6030 6 3015 2745 4545 3465 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3060 2790 4500 2790 4500 3420 3060 3420 3060 2790 4 1 0 50 0 16 10 0.0000 4 135 540 3780 3150 Power up\001 -6 6 3015 3735 4545 4455 6 3285 3915 4275 4275 4 1 0 50 0 16 10 0.0000 4 105 360 3780 4027 CMD0\001 4 1 0 50 0 16 10 0.0000 4 120 975 3780 4252 GO_IDLE_STATE\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3060 3780 4500 3780 4500 4410 3060 4410 3060 3780 -6 6 3015 4725 4545 5445 6 3465 4905 4095 5265 4 1 0 50 0 16 10 0.0000 4 105 435 3780 5017 CMD55\001 4 1 0 50 0 16 10 0.0000 4 120 585 3780 5242 APP_CMD\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3060 4770 4500 4770 4500 5400 3060 5400 3060 4770 -6 6 3015 5715 4545 6435 2 3 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3780 5760 4500 6030 3780 6390 3060 6030 3780 5760 4 1 0 50 0 16 10 0.0000 4 135 825 3780 6112 Response ok?\001 -6 6 3015 6705 4545 7425 6 3285 6840 4275 7245 4 1 0 50 0 16 10 0.0000 4 120 510 3780 6997 ACMD41\001 4 1 0 50 0 16 10 0.0000 4 120 930 3780 7222 SEND_OP_CMD\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3060 6750 4500 6750 4500 7380 3060 7380 3060 6750 -6 6 3015 7695 4545 8415 2 3 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3780 7740 4500 8010 3780 8370 3060 8010 3780 7740 4 1 0 50 0 16 10 0.0000 4 120 600 3780 8092 Card idle?\001 -6 6 5625 6705 7155 7425 6 5895 6840 6885 7245 4 1 0 50 0 16 10 0.0000 4 120 360 6390 6997 CMD1\001 4 1 0 50 0 16 10 0.0000 4 120 930 6390 7222 SEND_OP_CMD\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 5670 6750 7110 6750 7110 7380 5670 7380 5670 6750 -6 6 5625 7695 7155 8415 2 3 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 6390 7740 7110 8010 6390 8370 5670 8010 6390 7740 4 1 0 50 0 16 10 0.0000 4 120 600 6390 8092 Card idle?\001 -6 6 3015 8685 4545 9405 6 3285 8820 4275 9225 4 1 0 50 0 16 10 0.0000 4 120 435 3780 8977 CMD16\001 4 1 0 50 0 16 10 0.0000 4 120 945 3780 9202 SET_BLOCKLEN\001 -6 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3060 8730 4500 8730 4500 9360 3060 9360 3060 8730 -6 6 3015 9675 4545 10395 2 2 0 2 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3060 9720 4500 9720 4500 10350 3060 10350 3060 9720 4 1 0 50 0 16 10 0.0000 4 120 705 3780 10080 Wait for start\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 3420 3780 3780 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 4410 3780 4770 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 5400 3780 5760 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 6390 3780 6750 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 7380 3780 7740 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 45.00 90.00 4500 8010 5130 8010 5130 4545 3780 4545 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 1 1 1.00 45.00 90.00 5175 6030 6390 6030 6390 6750 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 6390 7380 6390 7740 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 1 1 1.00 45.00 90.00 7110 8010 7740 8010 7740 6030 6390 6030 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 4500 6030 5085 6030 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 8370 3780 8730 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 3 1 1 1.00 45.00 90.00 6390 8370 6390 8505 3780 8505 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 1.00 45.00 90.00 3780 9360 3780 9720 4 0 0 50 0 16 10 0.0000 4 105 210 4590 7965 Yes\001 4 0 0 50 0 16 10 0.0000 4 105 210 3870 6570 Yes\001 4 0 0 50 0 16 10 0.0000 4 105 165 4590 5985 No\001 4 0 0 50 0 16 10 0.0000 4 105 210 7200 7965 Yes\001 4 0 0 50 0 16 10 0.0000 4 105 165 6480 8550 No\001 4 2 0 50 0 16 10 0.0000 4 105 165 3690 8550 No\001 uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/memory_organization.eps000066400000000000000000000341431224274632000262570ustar00rootroot00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: memory_organization.eps %%Creator: fig2dev Version 3.2 Patchlevel 3d %%CreationDate: Thu Mar 16 15:57:13 2006 %%For: arnim@lola (Arnim Laeuger) %%BoundingBox: 0 0 339 316 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 316 moveto 0 0 lineto 339 0 lineto 339 316 lineto closepath clip newpath -180.3 421.6 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Courier /Courier-iso isovec ReEncode /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0.06299 0.06299 sc % % Fig objects follow % % Polyline 7.500 slw n 3870 4860 m 6750 4860 l 6750 5220 l 3870 5220 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 5070 m gs 1 -1 sc (Image 0) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 4500 m 6750 4500 l 6750 4860 l 3870 4860 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 4710 m gs 1 -1 sc (Image 1) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 4140 m 6750 4140 l 6750 4500 l 3870 4500 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 4350 m gs 1 -1 sc (...) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 3780 m 6750 3780 l 6750 4140 l 3870 4140 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 3990 m gs 1 -1 sc (Image i-1) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 30.000 slw n 3870 3780 m 6750 3780 l 6750 5220 l 3870 5220 l cp gs col0 s gr % Polyline 2 slj 7.500 slw n 3780 3780 m 3778 3781 l 3775 3782 l 3769 3784 l 3761 3788 l 3753 3793 l 3745 3799 l 3737 3807 l 3730 3816 l 3725 3827 l 3720 3840 l 3717 3854 l 3714 3872 l 3713 3893 l 3712 3909 l 3711 3927 l 3711 3946 l 3710 3967 l 3710 3989 l 3710 4013 l 3710 4038 l 3710 4065 l 3710 4091 l 3709 4119 l 3709 4146 l 3708 4173 l 3707 4199 l 3706 4225 l 3704 4249 l 3702 4272 l 3700 4294 l 3697 4314 l 3694 4333 l 3690 4350 l 3682 4376 l 3673 4398 l 3662 4418 l 3651 4436 l 3639 4450 l 3627 4463 l 3615 4473 l 3605 4481 l 3597 4488 l 3590 4492 l 3586 4496 l 3585 4500 l 3586 4504 l 3590 4508 l 3597 4512 l 3605 4519 l 3615 4527 l 3627 4537 l 3639 4550 l 3651 4564 l 3662 4582 l 3673 4602 l 3682 4624 l 3690 4650 l 3694 4667 l 3697 4686 l 3700 4706 l 3702 4728 l 3704 4751 l 3706 4775 l 3707 4801 l 3708 4827 l 3709 4854 l 3709 4881 l 3710 4909 l 3710 4935 l 3710 4962 l 3710 4987 l 3710 5011 l 3710 5033 l 3711 5054 l 3711 5073 l 3712 5091 l 3713 5108 l 3714 5128 l 3717 5146 l 3720 5160 l 3725 5173 l 3730 5184 l 3737 5193 l 3745 5201 l 3753 5207 l 3761 5212 l 3769 5216 l 3775 5218 l 3778 5219 l 3780 5220 l gs col0 s gr /Courier-iso ff 150.00 scf sf 3510 4545 m gs 1 -1 sc (Set 1) dup sw pop neg 0 rm col0 sh gr % Polyline 0 slj n 3870 2790 m 6750 2790 l 6750 3150 l 3870 3150 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 3000 m gs 1 -1 sc (Image 0) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 2430 m 6750 2430 l 6750 2790 l 3870 2790 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 2640 m gs 1 -1 sc (Image 1) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 2070 m 6750 2070 l 6750 2430 l 3870 2430 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 2280 m gs 1 -1 sc (...) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 1710 m 6750 1710 l 6750 2070 l 3870 2070 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 1920 m gs 1 -1 sc (Image i-1) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 30.000 slw n 3870 1710 m 6750 1710 l 6750 3150 l 3870 3150 l cp gs col0 s gr % Polyline 2 slj 7.500 slw n 3780 1710 m 3778 1711 l 3775 1712 l 3769 1714 l 3761 1718 l 3753 1723 l 3745 1729 l 3737 1737 l 3730 1746 l 3725 1757 l 3720 1770 l 3717 1784 l 3714 1802 l 3713 1823 l 3712 1839 l 3711 1857 l 3711 1876 l 3710 1897 l 3710 1919 l 3710 1943 l 3710 1968 l 3710 1995 l 3710 2021 l 3709 2049 l 3709 2076 l 3708 2103 l 3707 2129 l 3706 2155 l 3704 2179 l 3702 2202 l 3700 2224 l 3697 2244 l 3694 2263 l 3690 2280 l 3682 2306 l 3673 2328 l 3662 2348 l 3651 2366 l 3639 2380 l 3627 2393 l 3615 2403 l 3605 2411 l 3597 2418 l 3590 2422 l 3586 2426 l 3585 2430 l 3586 2434 l 3590 2438 l 3597 2442 l 3605 2449 l 3615 2457 l 3627 2467 l 3639 2480 l 3651 2494 l 3662 2512 l 3673 2532 l 3682 2554 l 3690 2580 l 3694 2597 l 3697 2616 l 3700 2636 l 3702 2658 l 3704 2681 l 3706 2705 l 3707 2731 l 3708 2757 l 3709 2784 l 3709 2811 l 3710 2839 l 3710 2865 l 3710 2892 l 3710 2917 l 3710 2941 l 3710 2963 l 3711 2984 l 3711 3003 l 3712 3021 l 3713 3038 l 3714 3058 l 3717 3076 l 3720 3090 l 3725 3103 l 3730 3114 l 3737 3123 l 3745 3131 l 3753 3137 l 3761 3142 l 3769 3146 l 3775 3148 l 3778 3149 l 3780 3150 l gs col0 s gr /Courier-iso ff 150.00 scf sf 3510 2475 m gs 1 -1 sc (Set s-1) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 3060 m gs 1 -1 sc (\(\(p-1\)*m\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 3105 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 2700 m gs 1 -1 sc (\(\(p-1\)*m+1\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 2745 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 2340 m gs 1 -1 sc (\(\(p-1\)*m+2\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 2385 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 1980 m gs 1 -1 sc (\(\(p-1\)*m+m-1\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 2025 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 3690 m gs 1 -1 sc (\(2*m\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 3735 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 4050 m gs 1 -1 sc (\(1*m+m-1\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 4095 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 4410 m gs 1 -1 sc (\(1*m+2\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 4455 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 4770 m gs 1 -1 sc (\(1*m+1\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 4815 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 5130 m gs 1 -1 sc (\(1*m\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 5175 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 6210 m gs 1 -1 sc (1*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 6255 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 5850 m gs 1 -1 sc (2*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 5895 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr /Courier-iso ff 120.00 scf sf 6930 5490 m gs 1 -1 sc (\(m-1\)*bpi) col0 sh gr /Courier-iso ff 150.00 scf sf 6930 5535 m gs 1 -1 sc (2) dup sw pop neg 0 rm col0 sh gr % Polyline 0 slj n 3870 6300 m 6750 6300 l 6750 6660 l 3870 6660 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 6510 m gs 1 -1 sc (Image 0) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 5940 m 6750 5940 l 6750 6300 l 3870 6300 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 6150 m gs 1 -1 sc (Image 1) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 5580 m 6750 5580 l 6750 5940 l 3870 5940 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 5790 m gs 1 -1 sc (...) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3870 5220 m 6750 5220 l 6750 5580 l 3870 5580 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 5430 m gs 1 -1 sc (Image i-1) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 30.000 slw n 3870 5220 m 6750 5220 l 6750 6660 l 3870 6660 l cp gs col0 s gr % Polyline 2 slj 7.500 slw n 3780 5220 m 3778 5221 l 3775 5222 l 3769 5224 l 3761 5228 l 3753 5233 l 3745 5239 l 3737 5247 l 3730 5256 l 3725 5267 l 3720 5280 l 3717 5294 l 3714 5312 l 3713 5333 l 3712 5349 l 3711 5367 l 3711 5386 l 3710 5407 l 3710 5429 l 3710 5453 l 3710 5478 l 3710 5505 l 3710 5531 l 3709 5559 l 3709 5586 l 3708 5613 l 3707 5639 l 3706 5665 l 3704 5689 l 3702 5712 l 3700 5734 l 3697 5754 l 3694 5773 l 3690 5790 l 3682 5816 l 3673 5838 l 3662 5858 l 3651 5876 l 3639 5890 l 3627 5903 l 3615 5913 l 3605 5921 l 3597 5928 l 3590 5932 l 3586 5936 l 3585 5940 l 3586 5944 l 3590 5948 l 3597 5952 l 3605 5959 l 3615 5967 l 3627 5977 l 3639 5990 l 3651 6004 l 3662 6022 l 3673 6042 l 3682 6064 l 3690 6090 l 3694 6107 l 3697 6126 l 3700 6146 l 3702 6168 l 3704 6191 l 3706 6215 l 3707 6241 l 3708 6267 l 3709 6294 l 3709 6321 l 3710 6349 l 3710 6375 l 3710 6402 l 3710 6427 l 3710 6451 l 3710 6473 l 3711 6494 l 3711 6513 l 3712 6531 l 3713 6548 l 3714 6568 l 3717 6586 l 3720 6600 l 3725 6613 l 3730 6624 l 3737 6633 l 3745 6641 l 3753 6647 l 3761 6652 l 3769 6656 l 3775 6658 l 3778 6659 l 3780 6660 l gs col0 s gr /Courier-iso ff 150.00 scf sf 3510 5985 m gs 1 -1 sc (Set 0) dup sw pop neg 0 rm col0 sh gr % Polyline 0 slj 30.000 slw n 3870 3780 m 6750 3780 l 6750 3150 l 3870 3150 l cp gs col0 s gr /Courier-iso ff 150.00 scf sf 5310 3480 m gs 1 -1 sc (...) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 7.500 slw n 6750 2790 m 6840 2790 l gs col0 s gr % Polyline n 6750 2430 m 6840 2430 l gs col0 s gr % Polyline n 6750 2070 m 6840 2070 l gs col0 s gr % Polyline 30.000 slw n 6750 3780 m 6930 3780 l gs col0 s gr % Polyline n 6750 5220 m 6930 5220 l gs col0 s gr % Polyline 7.500 slw n 6750 4140 m 6840 4140 l gs col0 s gr % Polyline n 6750 4500 m 6840 4500 l gs col0 s gr % Polyline n 6750 4860 m 6840 4860 l gs col0 s gr % Polyline 30.000 slw n 6750 6660 m 6930 6660 l gs col0 s gr % Polyline 7.500 slw n 6750 5580 m 6840 5580 l gs col0 s gr % Polyline n 6750 5940 m 6840 5940 l gs col0 s gr % Polyline n 6750 6300 m 6840 6300 l gs col0 s gr % Polyline 30.000 slw n 6750 3150 m 6930 3150 l gs col0 s gr /Courier-iso ff 150.00 scf sf 6840 6615 m gs 1 -1 sc (0) col0 sh gr $F2psEnd rs uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/memory_organization.fig000066400000000000000000000130501224274632000262270ustar00rootroot00000000000000#FIG 3.2 Landscape Center Metric A4 100.00 Single -2 1200 2 6 3060 3735 6795 5265 6 3870 4860 6750 5220 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 4860 6750 4860 6750 5220 3870 5220 3870 4860 4 1 0 50 0 12 10 0.0000 4 120 630 5310 5070 Image 0\001 -6 6 3870 4500 6750 4860 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 4500 6750 4500 6750 4860 3870 4860 3870 4500 4 1 0 50 0 12 10 0.0000 4 135 630 5310 4710 Image 1\001 -6 6 3870 4140 6750 4500 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 4140 6750 4140 6750 4500 3870 4500 3870 4140 4 1 0 50 0 12 10 0.0000 4 30 270 5310 4350 ...\001 -6 6 3870 3780 6750 4140 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 3780 6750 3780 6750 4140 3870 4140 3870 3780 4 1 0 50 0 12 10 0.0000 4 135 810 5310 3990 Image i-1\001 -6 2 2 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 3780 6750 3780 6750 5220 3870 5220 3870 3780 3 0 0 1 0 7 50 0 -1 0.000 0 0 0 7 3780 3780 3690 3780 3735 4455 3510 4500 3735 4545 3690 5220 3780 5220 0.000 1.000 1.000 1.000 1.000 1.000 0.000 4 2 0 50 0 12 10 0.0000 4 120 450 3510 4545 Set 1\001 -6 6 2880 1665 6795 3195 6 3870 2790 6750 3150 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 2790 6750 2790 6750 3150 3870 3150 3870 2790 4 1 0 50 0 12 10 0.0000 4 120 630 5310 3000 Image 0\001 -6 6 3870 2430 6750 2790 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 2430 6750 2430 6750 2790 3870 2790 3870 2430 4 1 0 50 0 12 10 0.0000 4 135 630 5310 2640 Image 1\001 -6 6 3870 2070 6750 2430 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 2070 6750 2070 6750 2430 3870 2430 3870 2070 4 1 0 50 0 12 10 0.0000 4 30 270 5310 2280 ...\001 -6 6 3870 1710 6750 2070 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 1710 6750 1710 6750 2070 3870 2070 3870 1710 4 1 0 50 0 12 10 0.0000 4 135 810 5310 1920 Image i-1\001 -6 2 2 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 1710 6750 1710 6750 3150 3870 3150 3870 1710 3 0 0 1 0 7 50 0 -1 0.000 0 0 0 7 3780 1710 3690 1710 3735 2385 3510 2430 3735 2475 3690 3150 3780 3150 0.000 1.000 1.000 1.000 1.000 1.000 0.000 4 2 0 50 0 12 10 0.0000 4 120 630 3510 2475 Set s-1\001 -6 6 6840 2970 7920 3105 4 0 0 50 0 12 8 0.0000 4 90 975 6930 3060 ((p-1)*m)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 3105 2\001 -6 6 6840 2610 8055 2745 4 0 0 50 0 12 8 0.0000 4 90 1125 6930 2700 ((p-1)*m+1)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 2745 2\001 -6 6 6840 2250 8055 2385 4 0 0 50 0 12 8 0.0000 4 90 1125 6930 2340 ((p-1)*m+2)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 2385 2\001 -6 6 6840 1890 8235 2025 4 0 0 50 0 12 8 0.0000 4 90 1275 6930 1980 ((p-1)*m+m-1)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 2025 2\001 -6 6 6840 3600 7605 3735 4 0 0 50 0 12 8 0.0000 4 90 675 6930 3690 (2*m)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 3735 2\001 -6 6 6840 3960 7920 4095 4 0 0 50 0 12 8 0.0000 4 90 975 6930 4050 (1*m+m-1)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 4095 2\001 -6 6 6840 4320 7785 4455 4 0 0 50 0 12 8 0.0000 4 90 825 6930 4410 (1*m+2)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 4455 2\001 -6 6 6840 4680 7785 4815 4 0 0 50 0 12 8 0.0000 4 90 825 6930 4770 (1*m+1)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 4815 2\001 -6 6 6840 5040 7605 5175 4 0 0 50 0 12 8 0.0000 4 90 675 6930 5130 (1*m)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 5175 2\001 -6 6 6840 6120 7335 6255 4 0 0 50 0 12 8 0.0000 4 90 375 6930 6210 1*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 6255 2\001 -6 6 6840 5760 7335 5895 4 0 0 50 0 12 8 0.0000 4 90 375 6930 5850 2*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 5895 2\001 -6 6 6840 5400 7605 5535 4 0 0 50 0 12 8 0.0000 4 90 675 6930 5490 (m-1)*bpi\001 4 2 0 50 0 12 10 0.0000 4 90 90 6930 5535 2\001 -6 6 3060 5175 6795 6705 6 3870 6300 6750 6660 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 6300 6750 6300 6750 6660 3870 6660 3870 6300 4 1 0 50 0 12 10 0.0000 4 120 630 5310 6510 Image 0\001 -6 6 3870 5940 6750 6300 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 5940 6750 5940 6750 6300 3870 6300 3870 5940 4 1 0 50 0 12 10 0.0000 4 135 630 5310 6150 Image 1\001 -6 6 3870 5580 6750 5940 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 5580 6750 5580 6750 5940 3870 5940 3870 5580 4 1 0 50 0 12 10 0.0000 4 30 270 5310 5790 ...\001 -6 6 3870 5220 6750 5580 2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 5220 6750 5220 6750 5580 3870 5580 3870 5220 4 1 0 50 0 12 10 0.0000 4 135 810 5310 5430 Image i-1\001 -6 2 2 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 5220 6750 5220 6750 6660 3870 6660 3870 5220 3 0 0 1 0 7 50 0 -1 0.000 0 0 0 7 3780 5220 3690 5220 3735 5895 3510 5940 3735 5985 3690 6660 3780 6660 0.000 1.000 1.000 1.000 1.000 1.000 0.000 4 2 0 50 0 12 10 0.0000 4 105 450 3510 5985 Set 0\001 -6 6 3825 3105 6795 3825 2 2 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 5 3870 3780 6750 3780 6750 3150 3870 3150 3870 3780 4 1 0 50 0 12 10 0.0000 4 30 270 5310 3480 ...\001 -6 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 2790 6840 2790 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 2430 6840 2430 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 2070 6840 2070 2 1 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 3780 6930 3780 2 1 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 5220 6930 5220 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 4140 6840 4140 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 4500 6840 4500 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 4860 6840 4860 2 1 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 6660 6930 6660 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 5580 6840 5580 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 5940 6840 5940 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 6300 6840 6300 2 1 0 3 0 7 50 0 -1 0.000 0 0 -1 0 0 2 6750 3150 6930 3150 4 0 0 50 0 12 10 0.0000 4 90 90 6840 6615 0\001 uhd-3.5.5/fpga/usrp2/opencores/spi_boot/doc/src/spi_boot.sxw000066400000000000000000001153611224274632000240350ustar00rootroot00000000000000PKÀp4á¥19mimetypeapplication/vnd.sun.xml.writerPKÀp4ObjBFFFDF41/content.xml•”ÁNÛ@†ï}ŠéªD–€‰$•*‚D"Ä¥Öb¯•âÝÔ;©Aˆ \xnðn<ÏÀ:ÎG®Ýæb¯WÿüûíŒgÚëx x¢…’i6v pé«@ÈÈ!ãÑCÒq?µ?÷†ÝÑåYb†“£ìgã㓟] ;”g\ÃPø¼¡’ˆÒÞ¨ã ÀÅ~&`pƾIiÿ”É,Äm¯, ‹Ô‹¥C&ˆ³#JÓ4m¤û Ûf«uH3'šÛÙPÍc&QøÚZ%*µK‘‡J¢Æ›)wˆ@6>q5²Ût)³zä×èzv{ñµ‰) ‚„k]²Uy„Æ„£?¹qHȦš×±Jõ—cô|f—ÒݳJ¹†*ç±w%P{3žx"f_g§%«*”×ǧ:˜ª°·ûçú;\ý;k¾,¢Z-⨠¦¥sªIêHkþ^ÆÛ$‹ÿSÇT81Œ¼B2Ê%¤lºA^ PUµÞLJ… ÍÈÏX͈sÓGY?™yW}ù=WøÝË_Ë–ö~Ýæ[åŸ6ß¿ƒ-øjîŸå¶Áä}ë#f-AKù·%ç Î’Fý/î;PKzæìÏ»íPKÀp4ObjBFFFDF41/settings.xml½™]oÚ0†ï÷+2߃ªS©(­†´*´Õ.Mr«‰ÙN¡ûõ³ ¡+ùhGâ]†8ïã÷øøä8t®·ï¼‚”³+Ô¬7Ìåe«+ô8¿­] ëî·Î÷áÝ`þëþÆáË%uáÒãnS5 Jé±Ò¹ìGÕ0¾ ÝíÆÕ¹Xa<œøz¸ÌÑ Œo¦ÈA±`ÝSêvrÕõ,™¼Œo_¡µRá%Æ\sø;§Õh4p|öl}Ê^ã7›M}s¶Ûl·Ûxw7êr¶¤«í&އ $¢v˜{2ån'¾®Qñãìf$ÐN^)l.QÖ3Ç?éñ=dÎC”ÜQo¡¾C™BÝF§¾®:†¥² ûL=µÎÒm·[çå¤]­3ç|~ÑÎ–ÎøÑ¬À×Ö+¾ˆQzåÿeáz>]1“ÓGs•k.ôl›§…¡O$Ür¦2ÃH·NÔæJñ`BÄŠ²låÓbI-l¦=Õ×·t Þ±¾:¬¨;à‘  œ)lª@Í“9¤ž Ä¯„‚.s s€4fœv΀v1É>÷#·àÜÂPwI| ¥ #E|êÚbDÌ5ÛHÚuòN±êf—Ë ËvØ4 ú ô?PsØ¦Š‹ ÎÑÛpáƒ}Sqì¬&Þa5íLM³j#Øõ`j¦]1Áª ³I¬šˆÅ”ˆJûϪ¿(¶ÌŒäÌ%>ô|¿/ˆû긢Táe$ÍŠL¸ÄM+^Ô{5'v_÷º”*¦ÜfWYü¹Æøº~…}p‡T*ÂÜ”^<Ó;ü#ÆÍÖ)gô·Ê{û/÷4iÄ<}`Ìáü¨ 3¦Måå}æ×‡"žîG*[V3RDçšYû>q¾­RG×­2ؘ2x.8•Mî=iŒ”™eB˜ç«"[ºý‰3¢èlZ’¥wlgÑBº‚†9ˆV5 Þ6)&f!qM¶‘c¾±«Åź¤ Ñïí€ûQÀ íœUú4jgå(IQûôåSÒMÂ)ôR6Å8W…€’ú»Žë‹o벨"eëòì-XpB ¢ÀbñŠ9º ˆx³Èy C«[ßLÜJ§:çá _s?ïâÔzœ÷wC÷PKö²VPKÀp4-Pictures/200000070000AFCE0000FBDFB308A81C.wmfíÛ?n^E…ñëQ(ÒPÒ%û`_‹¡diBÏ `ˆÎ|öÖ§Û÷Ï™9çy~"…¿÷ÌÓr³¼^–Û·-ËÍòÏŸËÅW—_·7ß.__þþæÕ/øæþŸ¾{õ~y÷ð'~úþÇåÓåw~[>Þÿñå»w˧˟zùç¿ÿßúááßýúûÍòöÍòðë?w€l?/Ëú—ûÔö9áŒÏB"'ó¿!‘öz&$rÂv/†DNØbcHä„çí ‰œð”!‘¾t8$rµ“!‘V’È ÂÈifòÈiNB"§Ù4 ‰œæÑ!$rš 9AŽœ GNÐ"'h‘´È Bä-r‚9Aˆœ DN"'‘„È Bä!r‚9ÄûX–ÈÉ%çÉÈ©®ÀW#§r´O&|¸Ì«ð”!‘ÓlÚU$|»À“ð™>!‘Óðz†tþíOªHä4*Z"' WH'.óª™yC"§‘ØCŠm‰œv±WtòÕb›=¡óO–|Û<ìýHž,ù¶yØã)Ô9=ÏO­–Èé)örT•áðìÙm‰œ¾dÏFøLUî•=›Ò-‘Ó5{6Õ["§Gölh‰œVölÆh‰œîÜûÔ9Ù÷©¥És²?XK3çd_~¼–¦ÍÉ>û-Í™“}sÕCØo&'ûà·DNö¿ÆøŠÒ9 ó c|EÝœFz…1¾¢hNç¶O=Ò'ÔÍIr°}ça“ðZûÎÕ/ÓxÏQúøº9÷"EÏ®žS»;+nk£nNC¾KÅ›«ç4äÓÔº6çÛûìÖíÙÇ´Ç`_ Ãh!UÉÉuÞëÙ;‰Ä{^Ýݺ}N•YBn«2×vör:ï“v[Î%Bö~: 5Æm-~z ö„Ú{ØØìÉ_-ö°Ø+¾ZìaS±‡tþÕb›=¤3¯{ØÌì-xµØÃ`oi׫ņ•½¥¯{®Ù[Úòj±‡áš=¤-¯{®Ù+Úø^ùNÎ^Ñ®gªrç„ìx rÏÀþ(‡ßÅ~vÅ¢Ú}…ý-N~ˆýøEuøûH^Áþ ÉQõùûìÂåíU·±O-_Ûþ99uõ¼Ü¾j£aí•0HÏ í£ wËü:ã =ï´&Ü͵gì&=Oµ/¦-dÕ¨Mì_Qq´ñ¶êcCuáI>3d®wþ£æ{í±¿.j+ ûö±_e(-ûò‰ì——X©û Ú‰ìÇ—X©û,´4FH+û8’¡ì—‡ïÓ}"Z#¤•}(Z#¤•}®Ã‹ÙÏΜūèbö·ÎœÅ®âhöçÜ$D¹Ýì/ž6H”ZÓÙ=j@…Ö³¿{αª hú•ØÐþú #”?£=û…„io€v ßÓ^!í’<©=BÚ+vU{„t@ì°ö*é€ÌmíaÒ1 ÛÛ ¤ÃG¶BH‡îlï„K›Úž !‘6¸=B:#ms{6„tFÔìör館ñ;wBHr9-iïÙr'!É͓Ӌ?Kõ 3‹jIuÏÆÛI.-'ÕI[®"$¹´–Î_Õâl”™ÓÞÃÝ€½bszþÂÖ?Ç„·„ZÈ Bä!r‚9Aˆœ DN"'‘„È B's¢(\#'ω¢ðH’Ea¥Ê‰¢p—÷¿m¢4mNt5¹F9ÑÕœZçDiS!$„ B„!B‚!Aˆ DH"$„ B„!B‚!Aˆ DH"$„ àE·Ë½PKŠ¡£V$ÎPKÀp4 ObjBFFFDFD4í€Ü¸Ù†g“33333昙™™™™™™™™™™ŠW¾¶×özùßÙÝËŸfflI–-Ù~žËÓ$³²ôIï¦I6o½9ÎWWß=é×áX¬1°1¤9JcÄa^U~1¨ÿ'c7ô]Òl6s”ÍynÌÿ_¥è'Jy&`y&`y&&ì3Êè}ßB ò"•¡aAd@!/’.,ˆ ¨-äEÂȀzB^t#!,ˆ ¨!äEGRÂȀºA^´cDÔ òb8¬Â‚È€ú@^ ‹CXPÈ‹¡8‡‘u€¼è#cXPyÈ‹¦§° 2 ÚÂȀ Só¼ðDT•:çENaAd@%©m^äDTzæEaAd@Ũa^DT‰ºåEÁaAd@e¨U^ "ªA}ò‚DÈBMò‚ŒÈHò‚ŒÈNåó‚¤ðBµó‚¤ðE…ó‚¤ðHUó‚¤ðK%ó‚°ðNõò‚¤ÈƒŠåaUÊ Â ?*“„@®T#/ €¼©@^Pn~ÎãÕ™O'Ê“äÉòyª.ŸOʧäÓòù¬|N>/_/Ê—äËòùª|M¾.ßoÊ·äÛòù®|O¾/?ÊäÇòù©üL~.¿_ʯä×òWò×ò7ò·òwò÷òùùGù'ùgùùWù7ù­ü»ü‡ü§üNþKþ[þG~/ÿ+?ÊŸäÏrH+}e£Gßä9P’#ÈåHrd9ŠUŽ&G—cÈ1åXrl9ŽWŽ'Ç—È åDrb9‰œTN&'—SÈ)åTrj9œVN'§—3ÈåLrf9‹œUÎ&g—sÈ9å\rn9œWÎ'ç— ÈåBra¹ˆ\T.&—KÈ%åRri¹Œ\V.'——+Èå`¹’\Y®"W•«ÉÕårM¹–\[®#וëÉõårC¹‘ÜXn"7•›ÉÍårK¹•ÜZn#·•ÛÉíårG¹“ÜYî"w•»ÉÝårO¹—Ü[î#÷•ûÉýåò@y"•ÉÇåòIù”|Z>#Ÿ•ÏÉçå òEù’|Y¾"_•¯É×åòMù–|[¾#ß•ïÉ÷åòCù‘üX~"?•ŸÉÏåòKù•üZþJþZþFþVþNþ^~#ÿ ÿ(ÿ$ÿ,ÿ"ÿ*ÿ&¿•—ÿÿ”ßÉÉËÿÈïååòGù“üY‘MÙ ç_å 9‚QŽ$G–£ÈQåhrt9†SŽ%Ç–ãÈqåxr|9œPN$'–“ÈIådrr9…œRN%§–ÓÈiåtrz9ƒœQÎ$g–³ÈYålrv9‡œSÎ%ç–óÈyå|r~¹€\P.$–‹ÈEåbrq¹„\R.%—–ËÈeårry¹‚\Q–+É•å*rU¹š\]®!×”kɵå:r]¹ž\_n 7”Éå&rS¹™Ü\n!·”[É­å6r[¹Ü^î w”;Éå.rW¹›Ü]î!÷”{É!Êì}ôý¾r?¹¿<@(’ËCä¡ò0y¸A17ÏàmŸÈÈyõÄ6, ŸŽ€OPä3xÏ'2²C^@=qË‹Ô$ÔyÛ Þí‰ /PC̳ yà Þꃟ@5 / †XýÂ!ò¼(E· Þçc8„ @^@ ±z«[=#?Aei•Á›|$ç«Ï‘Ì'éöQ/:L’^NÏdÚìs¶tNgíº†XÕVdå%ê“Á;|þ#ÊBYž²ö×­p.ÉãTÝ.t^Új¼Õl 'iBöi“wê°}/—[-‘ë`ÃM™¼õ‘%Š ïÏiê·§ýu+œKJiµµö™SXMî±ÔÔóL&ã„ÉÛ4¬9¬JÍu°áŽR Þô¼7Ãà•—â”œ)ËSÖþºÎ%%´Úš-¶“{,5ý@É8›—ãÊc«Rsl¸£d‚·»œ:aðâËrP¶xyTS'ñòà´¿n…sIÉ#­¶f‹íäKM?ÐDœ§*ì¬Ü&±Z%×Áæ›êFðF—k ^‰ÎÊœøŸ2/“d))y¤—tÞEòø,³yÜþÑ<ÍËœ©“„:ÃöÁæ›êHð—w ^¹ŽËøŸ2ÙOb[RòH/˜e#æƒÛKÍx†&#;.šÇYy™‡šÝJr;@ó8×Ùq@Æ34™÷ùø](ï3ì6ØaZÛ­ %x[+²ßBéN,™Øž²äa^&±*)u˜aIÎøª³Û˜öíØnÍê|R·™z ©3d™*ž3L®ßù ‚7´â»_ð]”ñкö)kÐR‹qX˰fóÊ–Ë‚C †G—}w¶Ì÷hwF¼“;^•üÑä9“ëtØ]ðVªûYjðóuhÉã)3YÅö¹Ë2•áÆ}•äp€ÉäT§É…y¬kXXöS²Á¹Ôä¥ /±ªßawÁ›XØÖWdÁÍã¹µ“ñ)3yŸ·Èò¼xyèÜJê8¡áŠY°Úr·Ü®-lÝÔylO)ãågp¨ßüóúmw¼}ÅÐúЬ0ø¡y<·á0yL2^Þq€ùg²¨í$%u›Ð¶x7òزá$Þ—vžÇöˆ¼_Þ>Àd†[6/ÞjkÁW¨ÎVÀQD~ìyœa§¬Ûµæ>ƒ†—›L›å’¯2ŸZžÛ– çI^×d ©3Ø…ÉÞ/ï8Àp#©[6/Þ|kÁ[VÀtÈûL [(ªÓÎòØf¹¶ã$¶×¶×à0Cö9jð{솚Lhµt–…ò¾kÔ¶*à ½ìÚðÚàÍ*ª˜ŽböüØ£ŠŒœüÒa{Ù»t¤&ïd“ò‚·©8cb8 ØKð[àý.t|ÊhzæØG—5y'§–¼AÅŸíä·‹à÷"ld¸=•ÕÆð@8º¼©Ã;9¹Âе¦jü¦†ø-¦Œpz‘PùwrB‘UêH#x^Ä~Ë(/œ^$TûÜ­Î*õ¢JâiÈ„T›²çÅP¶bÂ*Oeò",„Tò";„Ôò"#„Ôò" „ÔòÂÂjyáauƒ¼p€°€B^ØBX@=!/¬ , ¶æPgÈ <&a%…¼H…°h’‰øM ÂJ yÑïIAX@Ù!/†#¤ , }ä„T†šçE®1AX@•¨g^„TŒzæE“_YXRÛ¼hò{6Ô9/šüi(cjžMþR€äE“/$`yÑa y1 òbX €nÃAXt„¼h‡°h‡¼èa0äE7 €a!/ ,†B^$CXôA^¤BX4É 3 òL /ÀòL /ÀòL /ÀòL /ÀåÅÀ„çª75–]ýýo‹åÌr¬Æ‹ú¾§1qïëkéãÏÙèõB¿… `y&`yµççž0 Ñ8Qž$O–§ÈSåiòty†$–ÈGåcòqù„|R>%Ÿ–ÏÈgåsòyùBëw¿åKòeùŠ|U¾&_—oÈ7å[òmùŽ|W¾'ß—ÈåGòcù‰üT~&?—_È/åWòkù+ùkùù[ù;ù{ùüƒü£ü“ü³ü‹ü«ü›üVþ]þCþS~'ÿ%ÿ-ÿ#¿—ÿ•?ÈåOòg9D6eë`ôÈr $G#Ê‘äÈr9ªMŽ.ÇcʱäØr9®OŽ/'ʉäÄr9©œLN.§SÊ©äÔr9­œNN/g3Ê™äÌr9«œMÎ.çsʹäÜr9¯œOÎ/ Ê…äÂr¹¨\L..—KÊ¥äÒr¹¬\N./W+ÊÁr%¹²\E®*W“«Ë5äšr-¹¶\G®+דëË ä†r#¹±ÜDn*7“›Ë-ä–r+¹µÜFn+·“ÛËäŽr'¹³ÜEî*w“»Ë=äžr/¹·ÜGî+÷“ûËäò y°*“Ë'ä“ò)ù´|F>+Ÿ“ÏËä‹ò%ù²|E¾*_“¯Ë7ä›ò-ù¶|G¾+ß“ïËä‡ò#ù±üD~*?“ŸË/ä—ò+ùµü•üµüü­üü½üFþAþQþIþYþEþUþM~+ÿ.ÿ!ÿ)¿“ÿ’ÿ–ÿ‘ßËÿÊäò'ù³"›²1HÏ¿ ÊAr9¢IŽ,G‘£ÊÑäèr 9¦KŽ-Ç‘ãÊñäør9¡œHN,'‘“ÊÉäär 9¥œJN-§‘ÓÊéäôr9£œIÎ,g‘³ÊÙäìr9§œKÎ-ç‘óÊùäür¹ \H.,‘‹ÊÅäâr ¹¤\J.-—‘ËÊåäòr¹¢,W’+ËUäªr5¹º\C®)×’kËuäºr=¹¾Ü@n(7’ËMä¦r3¹¹ÜBn)·’[Ëmä¶r;¹½ÜAî(w’;Ë]ä®r7¹»ÜCî)÷’{Ë}ä¾r?¹¿<@(’ËCä¡ò0y¸y¿|@>(’ËGä£ò1ù¸|B>)Ÿ’OËgä³ò9ù¼|A¾(_’/ËWä«ò5ùº|C¶þÀÜ[òmùŽ|W¾'ß—ÈåGòcù‰üT~&?—Cô9Ö—úþ«þCôðÿ€ ä… ‡Ž>vß·Ð…ƒ¼HehXPgÈ‹d† "j y‘@ǰ 2 žÝH "jyё԰ 2 n톑µ‚¼«° 2 >ÃâDÔòb(ÎaAd@ /úÈDTò¢é),ˆ ¨6ä…ǰ 2 ÂÔaÑ^g®°"ò¼ÈõS÷€Å˜”Z@ö˜s^Ô3, Û€ÑæElÝ5x@–8ó"¶Ö<ˆ N„y[S  DÄ@lyaG žDÄ@Tya; žDDB‘‘òê‰mX>Ÿ È;gðžOdd‡¼€zâ–©H¨'(ò¶¼Û^ / †˜gA)ò"þ†¼Õ?j@^@ ±ú…CäyQŠn¼ÏÇp€¼€bõV·zF ~‚ÊÒ*ƒ7ùHÎ! VŸ#™OÒí£^*t˜$'¼œžÉ´Ùç,léœÎ$Úu ±ª­ÈÊKÔ'ƒwøxŽ¢`:>\Î[· ³L›±6óñå¥Öf¾M«™m¯õµn1gâVöu³×Ðmç™Öu£\M2x{ê4ŠÁðù²zd:^’eÚìµå1ÒáôRÎvf«ü.0¡ù óØÖo»hê„5˜Ôã0³ÕºÎ”®Cïí±HÞ8oåyñòй•ÔqBó`µån5¸][غ©óØžRÆË;ÎàP¿ù%æõÛî.xûŠ¡õYaðCóxnÃaò˜d¼¼ãó'ÎdQÛIJê6¡mñnä±eÃI¼/í<íy¿¼}€É. ·l^¼ÕÖ‚7®P­€£ˆüØó8à OY·kÍ 0| /7™6Ë $_e2>µ<·-Γ¼®ÉRg°= “%¼_Þq€áFR·l^¼ùÖ‚·¬€é÷™¶PT§å±ÍrmÇIl¯m¯Áa†ìs:Ôà÷Ø /4™Ðjé, å}×2©mU†zÙµáµÁ›UT11Åì%ø±G9=ø¥Ãö²w'èHMÞÉ&åoSqÆÄp°—à·Àû]èø”Ñô̱= Ž.'jòNN-/xƒŠ?)ÚÉoÁïEØÈp{*«áptyS‡wrr…kMÕ øM),2 ñ[Láô"¡òïä„"«Ô‘*Fð¼ˆ'2ü–Q^8½H¨ö;¹[UêE•$x^Ä~ (;œ^$TøÜ±ÔÊ´ jCðoØaÙÉ)/š¿tË,ׯó­» , ùåE³·a:_Õ·jì‚°€,äšÎo§ÕÎ ¿7 jB„y¼úê±Ák&,À#äE­òÂûÍ€ú@^äÚiƒ—MX€/È‹šä…ß{5„¼¨C^ø½APOÈ‹Êç…ß»µ…¼¨v^ø½5PgÈ‹ ç…ßû5‡¼¨j^ø½)äE%óÂïh’UÌ ¿· ò¢byá÷^ …¼È¯—¢HCÈ‹Êä…÷0,æE3¾Èˆ~Ï ò¢yá÷ð:B^”=/üž<@7âÌ‹fL‘ó<8@2äEN=9ÚÂ܈6/šqDF´Å{¢MŠœÊóR@vJ—͈?‡³*/”1/úˆ°'PaÊ›}ÄÓ ¨6eÏ‹¡„mÅ„TžÊäEX ¨<äEv ¨äEF ¨ äE ¨ä…3„Ô ò Âêyáa5„¼°…°€zB^XAX@m!/Ì!, Î&xL ÂJ y‘ aÐ$/ñ›„”ò¢#Þ“‚°€²C^ GIAX@ /úÈ)& ¨ 5Ï‹\c‚°€*Qϼ( & ¨õÌ‹&¿²°¤¶yÑä÷,l¨s^4ùÓPÆÔ Ìþl '×7 þVî¿]\·›ÊQ®P¸›2㎚åMkT(´º-…ÿÞ_)0N¡py{¤ñþògptþË¢ÎFÃþÄß~>;ÎôS¡`Â0¦7L¹X,øïGâÛyÑ—·§²¹Ã~8K[c·±Ú[Ñ7µÍ–:_ÚÎeû¡é¶žÏçùy…Z–ÎÎÎ ¿u® W¦5Q]X~èšñ´°=½•M٤Ǭ娎À‹ý<Šëœ#ðÙ¹?V­åø£F*ƒ© dc˜ìxÁO 7ð’þ¸¹öÐgM–vŽ Üùõ-mºrÞäHr_Wmûóçñ,°†\VæÜ߇Àѹëëöù/„dï‰Â7Ô ðUÇQ­ÎˤgêGÊÐä†êDÓ_‚ï|} vmóø‘³ùÛŠ1õ훿ʘÁ,­ÿùÈ2'ªh1Õœ>èYµ4Î÷›@Ö4g–Æ,å–Í£àý“:5í¿úšðKá˜f)†-­7®ÀÂPûÁ«F»ÑŒþØŒŽ#Ÿ/AQ/"®ÿÝú#tÕ1p@´wù|ƒžµ ³»ÊòØB:„Ú-¦EªcfÄo´ÒMyýgYšÅðx¼dd{®Ùö&#û–Y9°1H_ §çž—Ï·9öõ¬¯ Ôž¥ÆN‚àÛMá(ÄlUâ‘:s€¥­Ÿ£.Ü=Œþ ˆÓuVr r¥H~7µ`³µ øš?˜kÜèKµ|¹ÚŸÐL'ª5ÒŒœÎ†°óÅj=ø‚fýù(¯jôІø¤êÚ6cÞÈóÜÒвr¸|>Ò­œÓ£)û¦±zNùFì¬@[Õgcñäøûœœc¾R:ExùK‹é¹`ƒZ½^ÿç5 »Èºrþ¤~¶ ºRé¬x¶xÍlÀÍv)xåÓ³µ°×ʼÓ|©V]^¥V¬Wׯ¿¢r}x¬“gü±¯ê9±$sJë§§öŸF–93œ FÁŸ§ø¯¡gZ 5åÀ|`î\Ït@Ð2,–ûþ®Ôøßø;u;Uh<º ¶tV ½+6îÀ/BÝQÅs —”‚mêÚ@ùS‘þñ7£¦ÁüùH«>öM¸ü¦ Ì`Ûm)îC¥6QGÌ£«GŠôëø@ê© ”÷GêÖÔë‘z%U÷Ÿörf´K¢7ü0Ì„ÁN×ЂÞ2Z×sÛFkëÝ£5™HÙ:ûV–àY¼AG-7ÄrüëÛR±žÞ}¦Ã«°w£ºÚ‹{Ïûû+©õÎSà<¦Ó5ÄËš8O*^¨¢Ž¥öTµ˜á¼'ÑC’­ªŒÍeÔÛ÷E±+ ¬¡Û¼{´n¬Ûd€çÚú.áRmO¸¶Ø'\.-ö ÃOŒMÁ +Ø ÓÇš±,ŵlœÅ•|í´´ÔßY«–‹éеl¼Åà¿¥þÎRù¬R[¼L¼Å§ùz¥¼Ô{R:] {[vÇñß·æ¸y—îØÚ¶Ý±o’ÔïÒ Bç@êŸÔ[;¸c·aä×îØí µùîѺîX ñVËÛÀ󾺡@*¼e´î«#¤Â»Gë>82âOhÞ«#£’•#£X^jŠ—*ÅÒž‚JVaoõ“å~–R­XY¼ŒÂÞª•¥1ƒ¥b­¸†#£’MØÛI¾xZ_êg)ÖJ'ë€wð³ü$~–ÊÁÏò³øY*Û{{¿¤~ó~–ÊÁϲ Cµrð³l­‡°·Ýàyi,оãy_ý,•åá>ûŽÖ}õ³T#;Ás|Hæ{õ³T³ñ³”ó`i/÷œVËéMñj6~–R9_?[žýX­Ÿ­áh©\?‹« zpü´öcõ`?nC¯þöã>:Õƒ¡³Mñ'0töA#Gò{ÕÈë™|®8Z¬”ËkŽÕ3ÒÈóõòÒ³»“bqŠõl>Kùrui½Zåätè29÷<Ë——K©œ•רFRß²1Ãê¬>|} 7_ä´•¾w?…QSß²Qó¶Iþ.ÏAë[>ý HþæíÙúÁžÝ†Uÿ ìÙWAëᑸy ñN<ûDóFùä ÛZûzTˆž·Œ×} Šõþñúªg°÷gñTµÔ‘¥NÇò¯°p tÕ¨Ö@6™¨¶0MAJ‰Wše;Ê=æ0¤<žæOÜj€>„Òœä|¢Ü·Óc¶Ï±iijŸ#H1 Â= Ý:”¥_–%Éy¿r`©óOÏš­aQÀêß]£/=*úέü?«Ç·ÑÙµ|ùäÌm‚SLY^õyTxºGvÇt¿²à¯M•lñ*å×'z0Ù+)Å㨩‘½;R¿È&»q‹Zf|(kÍÇ–9 â9&Ëx]æ${n¼>½ž†1•Aä½Ñ á72‚pa‰¡jˆ”œ0Væ<ˆ¨‰fY¦åÂÑ5Ó‚åú¡ˆõ’¼ÿ?Š­Ï&š¡}à‰âŸÅ3œ¯¥ÚŽï‘žßFc†ï÷ž>ó?R'“dwºi„²iOnzéö_ à7üö[ÚT)ÖDD½üIM ”EôãƒI Fb‰ )û*=†„HÜ«ƒÙ‰a¯(E•t¹f&÷¸çðå” r.§ÙH¸œ®M4g#Æß¡ä‰ØïAòl@/lCÌÍPǞʰj¾t/ÂbÞDØ?¦öíÙÙAŠe%Å"þŽ½Ô…öO,E/ïA,½ »ª’¯Ç‹“苃4Ù­4‰ŸI"NLk2ÓÕÅ^Ë +N´Á@²)±y?³ã½Ä3ï©#nKâ—Ü@s`ŒË²X¬Å ñFöÏow“åð¢7:¥’qâÙH†ƒÍÓgæá|#îºÅóÝ"„HqßÉcJ:ôèì™é’óHáRøK|Në†~õ³æ-5ÃSN~hfû¶Üm0E=ŽÂÔÕ©ˆ%h¥OÕŸ"®r‚³]lŠ©”ÓNÅž ‡Ú¬ƒ‘j~ Aú̇/æk|ÇY>÷ çYy•yîvŽÕ×™ãÎiY{•y–w:ÇúëÌqç´œÆNc§±)r‡ÓØÃiì‚yNc§±oø4¶vð«üj¿ÚÁ¯vð«üj¿ÚÁ¯vð«üj ôÆúAo<è½ñ 7ôƃÞxÐzãAo<è\oäžHY]$ª;ÞFÒµª£ò†G¡ÏñB¯Am¤9¶¼Ióa^Øç¿ˆxCŒX:6û·3€c¬¯Ûq9ë4{ª«/9sæèšÁrbUÉEÅçÐÖõ™íX*%ƒ6ìŒî ܼøqãNZ–:×8a7êçJÍ,æ-èXäO£bêO0¨LƒÙûWÖwr&0ýîoEõSé)ÿýÚ>9ÒîSþØ´rÎË”ë¦<>œË•ò¥ •äÁÀ{¹b¾\«ÊB^åKU÷™¬ZÉWktS;ý•å†K …ÿ\<}[løùèOù@tquuÕºj¹ï8<¶†%cå3{Œu6ðõ@>Rû°ŽhiצêK™Ÿ.ÆZWspátZ…››¦ò‹”ÎFLKÀï…i::tÍ,Ihêî/@Qº®pÞ™²¾«ˆ˜|5÷e—k²~[9:oÌ ê§•“kX†6ñÏkå×ÿïÿÌF!\¬žlõè\Å¡ôÿ ›¢Ñ‡-ÐΛÖ(Á—µ¥SÝÞÛúÑù{Î+•|9”®ÇåºÖžÎù¶6·UîY¥b-åb±ž+Vr¥z·tò©TýT,ߨV¬”êÇ ¾àWI}â“GT#ÚFT'ñ‰  f1­?vëcÄu|º c_q˜Ÿ­Í÷ï¹g_À‘÷0,çð³£óîX³¼G«¶ÒcÌP4R €iT]Q°àŒÒÓUã)Ÿ€ñ@•ÆE£aq!å+h¦õâû ÷íOô§Âv÷sê*²#= Hù.ðyŽ—…YÒ>ß ©§úä"ý'ÍôŸ´ÂŸŒî-9ËœÛÁð$Ô9ô°tÎ. I´ˆ-ô.TQ–‘­ÄeGªBxØt€\l®£½„o¡™ÒÚ'Ìî[Ú4¨XÄÀSˆ°OàI†œV^k2ÁÛ¾Kùbv„^ ûRùè¼|’»b½l´µ×†'ˆ RΔ Â•#®‹*P+¯4Ëv”_yù¸”¬øú WÎ’á*q¡†&Ÿ‡t¼êxųUÌX<Ëîw`ÆÌømJÊöд›9J߃yêì”+«qÐÁZt/ðàmÝ+¯Ì›Õ\©º ÆR5טx3 o~%Ý«O¨…k7ݵÈLÌœÅÕÌYzm欯dÎú9“îâÄŽXgt§üXÏËÙÑ8¬%ü(œ5 øQläõÌ`mÆÂºü¸hÄ-樚ÎÊÀ³ss¨Œ˜Á,­¯ SzÂÐ:£^W—¹ kÚÊPûÁXJ›y_îq'mòƒ;ä5ášCyP¡JSËtàW¬øLçT#c¬êŽý̬?Ðogh¶ëº ’³Í™ÕgüëÐ9„{ú Ü>£Õ¡Ý×ä¿ÏMTëÉ^ô’$Ž•ÜS9jÄ8è{Ï9l2ÕQy‹L_âM>,Ñ‘I1¼m3ÔSxr1'»î¥ `¼»þXâ…Úüð¬ÓÄ>W{0ms*œ¿œÿ©,³<¼Ó¹ùÍOŠóGqøîÆv2VL|ôÄEĹè)ÿôè‰ –sÑSùéÑK碧úÓ£'.ÌÎEOí§GO\ž‹žúOž¸=='?=zâb÷\ôœþôè‰ ësÑsöÓ£'6âÏÓ ‹ï A1zù]yáQdµ±´( )>lL§Ìh?”FªÏävYÁß×ñ‹ ŠÁIJl•Ó`KB_YÁ²òVñ|qz±(èm`s0£øw©#ÎK!«tQ «?ÖÐY,ÜG’¨ìãnÊxÜ_¸ƒZÂÚYßÅiÒ.î”{ÓrìnÍ0zãɱl¨º?‚0/ZS*ä07úaèRÀøDü>ŽEê.+ã€ùç…ȸ‹­.ѰgšOhë®TË º<Ö‚Á£œæ~ÊÐ%³ðÃÕÔsÝ-çÝ1SDÀž§h¶¢*Íû뺎´‘¡8cÕQ&ªâÒÆ¡!Vï{s0u:ÅùšÃ•ÑnW÷_¶ Œàrm‡†E—šc*s, #3øåßfš…Ž,ÕQ¼]jåÖ‡ÅÕ¨iUŒó¡Óú¨ôaò¶bZ+û¹™éŽvÚÚÄO‚=Ö>Òü%fXœZESËì3ÛΦÅȪ­ÌÑó¯„à¦Vµ˜bÒêŒh†Ò¹o+x¯•2ký±B‘GÀX@…žéŒy¹B7³†W\*yö\ƒA/xÖ7€IöyŸ:5IÐØñL2Ô`WÇ!òÊ{1 YC÷2 €kϦSÀUAV¡àe6zØaA)Ä6  >qªí@¡ëÒ€ßà+x?aÓz!d& òØý &Ê~¨8A„ÖÖp"ªb¿Ø°ºá ¾p˜þ¢ôT›ÚyhÜp ¬"T/6 ‰ÿ ÃÀd0Ls4U±‡ÇÕH!Åp!H–Bü9ÊLU3ŸbrÚOgºn ²þ¸=ûƺx3ÝY6§#ò· úFW@ÎôXgøÄâb`ø&=ðÆÞ¬Ìã²ùäRh„s´'¥Ë ¢ øf%JpM|=@¨ó@è̦ÚDBúeU¹Ú8„´æ#ù$_ÆÚœ‹DØYAÚr”6cJéæ<f(—|ÊãJôÃ.<á  ¾÷¢LÍ9ØV³)n¢$Q@aZVð0>V{ ®êe –)(À˜—Òg‚…!ãBÍb`ö Ù¦j41.6Üò2ñ¹“@.•]_´º$w‚çZŒgú©P˜Ïçù@ ~Ajçû#­ì©öˆ;EÜ³Ææ…£óM¾Q“°—ÝèÕoîù{ Uô"Qê!ò$šÑL¶“Èòr(öµÝQ:wWÝï‡K~¾¸ûµÝºl)¿+ݯ—Jóîþ÷‡ö—¯]åëÝuëò¡£4n[ðô¶ûоøÖ½ƒÿôo3Óùk£Ÿó©Iãöwåò·û‡ËNG¹{PÚ7÷×mèÆyhÜvÛ—c¥}Û¼þÖjß~9V +åö®«\·oÚ]hÖ½;¦á£Ÿ)wWÊÍåCó+üÚ¸h_·»¿ÓxWíî-Žuƒ5”ûÆC·ÝüvÝxPî¿=Üßu.œ`«Ýi^7Ú7—-Ø4oaDåò×ËÛ®ÒùÚ¸¾¦ߺ_¡ø/0Ç‹K­qq}Éû‡¹µÚ—Í.NÂû© ˜¨®AÒ]6ÛøÃåo—0…ÆÃïÇ¢ÏÎåûà¥ÒjÜ4¾ÀŒ>¬@Фùíáò!…Ùw¾]tºíî·î¥òåî®Eèí\>üÚn^vþª\ßuGß:—Ç0B·AC€ x ?_|ë´ UíÛîåÃ÷ûnûîö#Ð÷; `lÀ§-ÂéÝ-Mðr÷ð;vŠ8 ”+ß¿^ÂóD#aª(èÆš]3ØõÍQ¹½ürÝþryۼķwØË÷vçò#P¨ÝÁm>ì÷Œù¦Œ”¨ø>Ž=&ú)í+¥Ñúµ`‹Æ@ñN[p¡¬ùU ;¼2Vš¥ü!jqš1“(Øc‚'»I¬ÖrmÛVkÀY‘Ò²T}ßr‰³ÀÚ°©ÖöŒØ’dªÈW> üÀ,z$ë ân<•6còH’#·©€~âI€EŒ²ÅéœðpžGû“,Û±%¨tM´©ë¸cyCûüjã¶s°ØŽQõG=m Уçf­UR'ÒÒ„…Ê;l<á Õ²d²¹.“ñ]®gþˆKi,RÔ1‚IREÂb©–/×JòeÍÈɤÅÓ|©ZIZ¬-‰bé›jnÍÄ€\ €üÅR‡ÚSÂ,L¼Ø¹êKÂ’‡§T: ç`ÂtJ1³©Õ?ÿçÙÔÞ8 S°pp‰,áy¿—H`“?ò›ÀåÓ¿”ü¹ø¾:žáÅrþ)f÷t³ÿ¤€Â ÈøÔ¿³QèŽXM°BÒŠ’~àë€Çu!UוáÌèó +0¼5 ¨Wî¸÷` = ¿„fôõÙ@ô 97×¥‚‘BfßÔ•¹æŒCzÿ17œ„§ Œ\–jV(GÁ–5ê5ŸbQæ ¯[ê,‰Kã¾|‚Æ,H‰Ðy_>•˜t¿R$Ym…©ý±ô®¸Ó—MñŠ#ÕQ ”Ô©iÐ^ÑÓÐI`1u’W.©#ÉšQ‘Ê{Ô›éCîT@óáŸÔ©iÿÕVx§6£!Í)''a*¯|¨¾Ý!0Ån¤±Çlp–Û8Ih<ÔU0cð5·g(~ØAoú6¤Ÿ…œ&¤4¸€nš\ 'ùâŒÓ&d·ÏAäFæÑ+ò¡–ßwA>ÒцåhI:éóSÝF.‚‚Ôƒ-ÌìI`h2iÁ„‹ !Ú$–£ ¸ª¥;‹c±Ôþ“ð_ñJ’kfÀm†phÑÌaùZ䣄 õ‰ Å$À5ŠDAÜVžpn•"ù^WnÕÍ…Š5p‚þÉáLו€ÛƒKœ$ºÈÀší9Çaö®€bîÂâߪ 0h“ÙD铬Zœ9HLV‹Å¿ÿÇÓ×?¸›³/„¹H7Eå Eg& “äã>Hô ªº+Üc4AÛ畬aE¡-¨pªLaYÇ­moxw\Q³ñä`€ž‰õÉr´R Ý‡5Ð^—ójvZè*¹¹þW?Óf­ñR`2̇(Ç뻾9zºqùõ%ùõ”ùõôùõôùõhþpV)šµ’;´42Š ¯m”…Û䜚Y".àüý$âÖÖÍ‹¼¯ÀdÐG×ן²#sÙ2÷`X׎•æõß²#xp5q·Ù]ºL”µ—óèH{_)sŠ–€¢×&(AÓkS¥Ãtôh€îõÌ”ð‰Å¾“­ŒGm¨{r¬à©ÝÝlyòíÎHŒz h+_MÛ!ÀȰMÈ™Ù;%s-2›"õb]€ËœÎíì8¯¹DD^ 3‘[x¸ËÜJö×÷﹦J»¿ÔYW:¸¨Y\ýº{‹®áÝš¼4!¥†ŸÊ–›Yèþ™˜>'i#ˆØ 0ÄgÎtæ(Ì IsË qÑ£ÅßssÂÒ0bÌIRÆL0Ò!½Y#áuÏýmÏIàï^¡¨1×Òáá*m súcƃ„Û@ŒÄ£#ÐñAk"Àh"B‚`ÜìÆ6ŽˆJ’ÉÊ¿ldU–F•”†Q%½aTIoUÒVªl¯°Rel©ÊfüQ;¯ J îhsPÞQq¥ÊFê!y™iþ•õuCÆhÞÝ^µ¿ì,÷w_7ÊŽå²°*ÛäKDowL4®÷»ÓY7ä½Ñð£ûÂ}n£û-+«s3XÚ·íîž±ÞƒFÁ‚l0bòxhð4kH>î7ÃvÃÑ#zþ÷‚Ð(ñ[w·—{M¦€¬[qm5Œ üA!'O´Ó–ëxUvËÎkº!}³s“nÈöY² £Éþn¶•5ŽRÈ15+oOeAa£„ŒÕè6²ªG·!$íÛìk]8"Œ5Ø7SiSSØÇpþI N™|,Â÷‘гC¾×uΩÝB<~fSÇ–çäî¡=åùɇ¸«¸š™¡X"64’§Eá&П›D™YÛñß”% +qþQìªÇã”4K™0Õ˜“ûuªKü:Õ”~jz¿N5ê×ÉÊ®îÇ¥ºY1ëýò-T7;zÂ<àìК­ýo:si Ú˜ñÃxз;m`3d‡SÅ^×´ñÝ`|¥M¦x¡Hqyœ|ðÿþ?ÑeýH&ã±RJÝË@¦¾ÀYš¥›QÚ_šá!ò5L¯ Qʵ?^ï®PÚæ>º]•Ç_'ÏÃ0VÚ=Û-ž7йACz„Ÿš7л;ÌÒg³=4{•»¼©ÊV Aån¹Š¯PtjÚ7)ßQ¢à8\íà™9QÜNp–©»“å"«bºYMÐöc’ü“xx¬µÁ0ƒi…žöðL†} .§4ÑÌqY á²T§/™hºb,‘ ýïªÈo¸¸4¥)Ø0¬Wv1mŽX$kzL‰o˜ÅoºåxÈ E¯Ûlªó”>ž‡fœ¯Ü<< 4¥1DEä#sd ¬Ej¸f„ëh®¸T|_¬HºZ^¹e?(ÛÀèLtÃ˶¹BùLs ü?a¯ íx7œ4¯|›R"´«OK›Á7¦K!¤²d™onu°ŒZ=Ýè§<™an’熌%…i”´-ÑÁoÀàqDx#jG/`DÙ6?x·ÌÙhIc¦„åF&Ö>kéƒõ© mP’¥HÀ—a¸±tÇÄiPé¶]Ëõ²«øÄžÏdl;Ôcl‡rB;_ª—ÒjÝQ[¢§x—7·%Nbl‰Únl‰Ø)U‚¶D»^ÁŒ(onFÄxŠB‹Ñ¿®ši8:^P[lBº§Æå$ÕVSfS±fmª´L~ÇĪt°ÀKÕªÈÔî¿ô±šr M!Šb–Šª ¡Ã{Ç¢¤ Ê'&Ì$;Ϧ·Õ¡¨?;˜ ´¸Ôàø1ÛãqL郜ˆIÛ¿°™¸7ÖóÆÄòjÒ$ö²_¿¶®q…PüKRoT5Ô­®aÛ32¥Ÿž§ð»²~Ò¦SyÛ‡+"<ÛÈÓN\'3¿BŠá3Õ„AD>Ót×o:D%¹@8o1b‚¬ * –«-œ—ÖãÍ·ënûlW2u:®yGÏéÇpè‡O÷µIÙ”ŒQáˆæÇ4Œ‚Ö¥›À-2HÁu¢ú#]ò¨ª[Ž»'I©[Ê”;<ó.,- ‡âŒO¢Ù•ì PÒÛ}ó‡ØD :~ˆLàñm2½Vfö¨à{Œê‚·»ùt—;høäĺZU›î\‹j.B%9ËŸ•kႺÅ|íô,F+9 j%Ê`ä‹«««ÖUµ´±^’Êu¬WH†=êÄòª"A1×FœwìÖ=äõQÉ€æ„ì'âWé Áܸ„׉T©Oü;q$“|VHqˆû¸Î3ðÄ…åK~]u Tü¼„8"$ì"¶XµÒ›ÁÍ1Õà…uq\˜wI>J}Æ'¯û“·æi6þhRÓC̽UIÚxÂuˆ"AsÑ]8÷‘3”ðB¢ˆ©StË:s†ÍM>…>- ¶t£?ÑÝœxÍò1ÆCˆÌnˆsMj[äUã@¸WÝùOñ”Î˜ÐÆÃZ³´{$‚ ôNÎõ¡qïÒ¬€<’0K¼¡Ñ¥8´Kú-tw‹ðÜšîÝýc÷¡qÛ¹iw:í;á|+t«äp†Àä®ÅQŸù¹Ù笗^+ºY‰"-ýV:×b÷¢pP¾ñÅ`£K^‚æ:ïüš,îëãÍE«6¨0hY.¢Rýâ*§ÛŽ ð_’˜vˆ«M½úΫè ÜBÁ¢SA™m¸a#KõK¹˜Ë ÷¸šßj–¨^Täf¬.žÏ$HH lsKsL ê™Ï®mœx‘kÒžVCÚøîe—ÝR)Ï™LÜÄqÇ^_”™1Wi?纫æÈ¿J½ËÇ\Ëx7W9õŠÆ{DOrÀy¢TsÂéYâÈ‚«â8Œ»;õ “n·™Ï~ÆcËìûÂGµ?Šc0ÚûHF »TÁŠ¡I›a€ arš‹‰ÑMqÜ„ÌIÊ+žbÊ­àŠ&ßñ f‘®q‡´ Yõæèôß]+„ Õ™ŽÑU*ߤ gÀwÖ» ÑC~@n=î³á¤ a«Ö €9À8.ü=ÖWg¶˜ºf{ pŽiÒ\^ÒZÈ …ýÝC£Q`úC•+7Òû!H–t)ÇPb-q£"ÏÎRå.˜sC_X^bàëYžp©t›#jó¨{Ìñ©{†ÖõBðiKâËCÊ [ZUÀ¸Þ-kÀ'òÊ+¡ËQºú /$1‚¹ntc¡M‚Éf^ÿ¤È”fb®r­®üMhs`äT‹ðþpŠ?ð|g§éŒS‘|&«—€Á”/·ßHÜÍM‡ÅGד‰ÃÉéÌšš6 »˜âh^-ÿúÖ†Ÿay>ò­ ßÓpŸø\î)؃ߔžý¹VJr¿0VnSÓjùX_ÐÀÌž’ö[öõ«öÁ‚_Úi©X®¦\O´mKäòU«kÀü€1Ö£—|k1÷Â[‡ŸíI¶~b–:öU‚[b¯A“ ÞöÈ÷^AJ °‘èÄínø€®VèNüoßìzÔÜyåžn´C¡Æ„Ó•d4,,Ü‘xÅHK¾9KËw'\”:öÈ5-[°6ó|§È’_ ºÐ€àéÜ2)iÈSû¥×H®Z¿ž›JQÀ¬6:³7­' ²¾£s¿Øä%f¯âk¢šŠÊ¾ GˆJ%Õø0]{f–ßA‚°R›õgT£¸÷âÈ4ø/Ž Š â€=í&ò&åC™SöžëËß@lO4ç ´!¹…¼H"âs žÆ¥!‘º ÇëÊ8N¢ùzñ%ö\%¥ >Ÿk¶kepl¬G5ÚN:¨§à)l’%î¦,X-èÕÊW€èx—/ÑUC¼—@«*ß à­¼ñÑí3? óŠQ¶i•ðk_Üh×~E(…ŸýÇ3«?¾lÉÀ΋Zî· ì=“̻ίe~2vÀo*ì\>àE|7w­Kqua_ÖÚçžfó¯•,ÐsÆU¹-ª 1Ì1À4CοuzMRJÁÂg®`€ 0‚y8M!ñF`¼¥ôK ¯{åëFµ¤§ª/æ’„¸Õ£ó;t”DY‘’+=V\í%”„")|*²ÂD ؾ*%›{E“ãå‰ÐUAä¿ñ.ˆ^P·À;<ÁX>÷7‘!Íݯ¡››V{pbb Øñ§‚\;A2²8ï§£É Pþ{R”|°UêîCé£ïTSÄZ¡óIÆGù¼Rv|Ь ŸZ²NDFR9Õ1É*éTkîÅb€HQëØV\Δ܈‘fŒ´ççQ¶[bf+×&8wäL+!&Ët Îu‚lAûKôújÔ>MÞ³Ëg"FQ„F%qÂèD½^ ªÔÊÜ\ìðÝ`»]V¤IáÚšÙ‚Ø"ä'pÚ®òC~`Ä èЬãÅÛxÀyg9®M¿,F*ýBàK­P¡…ÑÞˆV;N@ŸÆÁo™Èk¨üañ*ªHñß[@C#¤siLºÜy=Hu^áØñ(† Ö7<¡P>ÈóÏ7úá¼ñDRxj|ÞºÐiªí¥õ¶–_[P @RÞÑÖ,7ð7mðùhè%©É·¹¾æŒn-üè›Ð=sð²$J4sÕÀÂùE—]¼×>é!WøCŸ“!€R¡ðww×—Xò‘ÜÀÐăÏÃî ‡ ‡v‹•Öl;à+qÙÂÌ"•<’RZê\Õ„Ù¥*›oR?¡mÄÇ»a°vàºé\–eW(tЭeË5Øéã>KC»Vül˜}“î. áÐá’ÜM‹–Ë ãJæ¿.ˆ®ÐòyéýgÒ@pcf5Û <æ^rlRp)úví1 y0Ê㺠¨Ü]?æ–§>ˆÓ\*²n(4"HÍd{Vlw¸Ñˆ ÀÇ&E¹q¹¶‚à$3æo`~Þ¡˜=r%‡Þþ©Œ£UWŠó =t™¿LÝb)¼zÚ@Wó %X*k?$Yõ£ó/"šß+nBK“æ³âÇûŽªé¦åׄi‹çe`ëcÁ8. è^/—@æÂØ"z Ùý™m‹I韕9èI±·tÿw‚d*àÅp¾al¯,PKÓW=Yá0y†¨õ¸<šLÞ¢ §s™ˆÎ#œ"¥ldJºÒø×™-OˆÌP,Yè”àV…p-f’/Ÿ|ò"eíÉ®íšâZe‘Ý‚66q³3# Ðí¨¼@LŽñ¼ü§™î¸éyö“¥… l ™ ð<.ßq%ºïzT*Ë_ÉmSW­v4`}‹\9&¯±JNQdr*™x£|Üu û¬ØæýuË…Â>c3n?®­#£DzesÐÈZ näH—uÁL¶©ç}xÊ™ÀWÞT%5JežÉAœFýÉ»iÝ›µñŽØ1,ÊL©.z#¡–„ÎYq-tŽÜêOBË„UO“²ª6mĪÁJZüÌw¾YÖ·*ºT Èoúý}2ŠÑǧ:O ”|9³±-Y_tÐEŸxeBµá¦ˆ‹Ý~Hi>iiëÆpç)”ôâÊè•õ3V"‹PШÊ&"1 ±v…5{Àã‘W ªÓ"sÃuF(”ºX‰‹xI6®:ÌóÄìG”V¡œn¬2'4|^¸Nd ¢yæ¿fÛ½žû¯QÌàa¾¸2Ú?¨Ðg6eU鿦¹Ú;_7‘ÀEüãA¾ßa&“þ#¿›í9);ã]Õ(ƒÁÇ1Wm»—sã¯r§d‰Q„CÌ"„wÃH—‹HÅØ«·…L@¿9Å`ÒÞEáâ¦OUÀ+nþ†Ïí¡Æìè<ùGíå0ò§p.{ZN{Ðjÿñ?þoƒ šƒ~¡ ? æµJAùøÃÓ¤¤[2ð?+åÑyãá1§w7RÙõ0¾Å íCÕÆÕ¢Ñqxõ%á{;Èø|Y,‚³‹àTî‹„Ïu™bïô–‡¿<®éš«²œƳͦúû$nÍW@Š2`å¤\Sˆ1–ðNî¤ôQ+eh‡ÍÄJ"ß^‚ªyQ×»9­Ϭ´æêi¬¹ÞТ,áS忆Ïba¯_ՉХ42íô^5TÛ4´¾R)gÛsG5ZšýÚ~ÆxsTm3é¸îx)ÀéØÜcÙnÅ2˜,<&NÕtɪtÎhQ\ î±è{å¼çoèq¥´&åCLîÓGïØß4PÝ÷Nì1cY<ÞG«H'0¥ÓK\&“ñá)m†LV>,šÿf kÅ †–e™O+`0únôÆ““†Ì‰;…ù«eRª‘ÛŸº$™‡'ÿŒgú©P˜Ïçy°] D¡7­QAôeçû#­0g½ÈÀát¤òšjVÏ›ŽÎ7îBLLM“:ô ¡ñµÊÖCãïèš^ÆP¥7Ií5}^}ã©æ›õ¢ÀÖ&m”|øúÜFe‡üö¦øíi&Üþñïÿ‹çR2‘¿æÖÀ;1ÄÑçàÊûRÙ½½fïØ‘°lïPûÆ”èið`»àP7Çí×Ü/Rï™8¼[AÙ°¿_ê¾-¼±<êm²›ýhøííðÛX›ÊHmܨL!m¿o’ûЧ÷¨{·áî8¯¿Õºüç]@Ð$[¿5ž‰}zoFêÉTü7ËsÌ@޳,÷&X®ki²^%;E}[¼Gjóm°ÄWd5Xë†Øé=ñ(ù²g¬s¬¼¶é´¼ôïP±qsf´"FIùD…ãy©žèû"¼˜”0îköŽx.Z7cÏØ$×6Üç[àÀQ¦6IŠ‹)f$t®e¬æÕ&Xüý;âÁHe™}dÁìœn[eAW]ÛÎ9É,YÔëUL“d™î›M¤-ðLß­ ¬“<7!£øŸ,†åû÷\S%Ç™¬f¬•±¸ø㣂x".„ÿR:Rh<Ä¡[e£tt.šqþI¹Öèæ*·N†æ öIÔE¿ Ìþ v˘ÀßçÿPKY˜Ušh:c PKÀp4 styles.xmlí]i’ã8vþïSÐêhÇL„)‰ÚU®¬‰Z:{:\[LV»íŸIIœ¢HHæÒ¿>Š/áûø¾‚‚‹¸)³QÓUÂþÞòx_ÿåñ`+÷&ö-×¹hÃñ@1Ý5,gw3øõÛ­ºüåÍ?¼þÇ_Þû¯?)îvkéæ+ÃÕÃéª<Ù¦¯|ýõÝÇ_Þ+u4úâ™ÎZjèâÝhôáÛ…ýþUR ›Ñè§ÏeÀš1xóº¤m¡ã¿b™7ƒ}x¯F#zq“^&ãñxÄ~¢ ´veyZ‚ÌÇ ²4)F›mÓ¼¸ÑCeiR8ÎËoݸôÃÃÃðaJKjëõzôïwG·.> x,¶å|/-OsyQ'&ìÃ‡ÊÆI˜>[^õÈY‘—ýŒ¶ÄR»uAb S·ý7¯)“…ývÐdæ.@øîé°qí²uY¡-:XöS6/ÕáœoÂUŸåŽNôQÖ~¾m–¥îLÇÄ–~3Àî9™žèÀþ{„-&ÓMFöÞ ±ebå³ùÞ?!Ïõÿ%U„%TŽ÷à&vjt«×oÄ…­õh§zûd9úÞÍ÷ÃÓ+˜{¢eb[Ë&7w~ßÐ$ ß:OoвucÜUþFd¬tŽÊ•ÏE­Ž (bÉt¡ÉçSÜúÈÞB±Š’+zö,ßoÒsJÍ&혀ÆCúZº/yžÞeßCÝ2Ð[»}A6·é8F®*JbP‹Õ0·(´#Ɔ´ÃÈÛ[º?à…= >ˆ01Ðøy`‡©úÒÖ¨{[¿C§È¾Œ‡“ÕT÷[Vøž4¦ç‹šŽ!Új®hA›lð¡oª€¼ ÷Ae͵]H³Žî„>ûÖï­M<6‡6rv!ÚA’É énè¸÷ë]®Yùr -,i–g³ÆY&oŸç9®7êª(+éRwžm>–w(ì6Î-ê¸0“€g…Kføb¦K%IE¶·@'mƒM€Ö@²ã¾°™$þþf`c5ØÄXDÕõ|"ãÇB'e„ZDÒ=„c‘¨KñéG|€úý“·7?¶Èö³‰ÄUlåP0ªÒfn“\!/ô÷'ŠØÈ0ÉólÈÁ jа:z² V@7]Ü’q.Ǫa]tH'Úp²L¬UV <àå`T-ßi¹Ž×ް1(•v>!6ò}eºìeIXƒHÇ‘H©põ€0¬-`qÉø“´îbmr†ø¸q•*ÒSÍ$J2®R„KUäî-%ŠI¦mí`PýÀÚ>ñ*ÑOèÐÙÙÀai-r1H®ãsex°€ÿþ±j˜|.¢vLØ¢‹q•;HTá„ |~)×x:©oD©Åú“V“‘@Ÿ 9´Ùvוzh›Û€hÜb:Ï*#–‰ŠRAbã‹Y£Äê©™L&B¿ÙDAˆÍ ½.&—¡ú¯&2R†¿ ÍFº@N†…¹ÂŒòp6™ æ”Õ=Z4F¶vVd#Y°ã‘± …uk ‹Ydç¿›¦î#Ø«ÝÆ¥öªî<)Z'3EZ7ióÊgHH`€Ÿ-÷Ûo«ÏáA[ž«Ýå2.6‘³•—Z>˜¬k¥óǪ¤2Y-žÍê9(X› :§ºzIêP\¥nÌ­‹9BŠjm uð2}ŸQI~¼Zé%ù[›i7=ðMÄÏdyÌS OÎÀž˜ê-¶Â|L´ñïF©QãÇÉ´ñãĤñ©xQ1ÜÖüÊcú§\Er+¨ã.÷®olÏ{6œÍÉdO0šmP$ —j¯|A&¨•“N´ò¸@N?BBb¤2¶¤Œ$éßwО‘ |¡lÏQWú÷óT×Ébv†º¦8h€­•û‚j6íEÍZD)˜D)‹ÚúĪÔÓ'º)¨Qmä9ȿ֧Až]—¤0uä%¥(_X®¢¬:è7N#unVâ ×·c,̘åò&»Çs |["<®´^Ex~%"ù¿¶ÛØð—­#áµZ…bt$':jâ—n·W2é—˜aq ×ÒôN‡“9™Ý‘ˆöÇV´ƒY_^ɬgýÏj¶,ö?Úp<_Õð?õ× Z§ë„vvbVW9i A/jLÚø ­ h}m>¯_4Ÿ×ma³ush&<5dß¡Å]r²¯ÑÁá€z´þje¯< -cÁ¨üä^LG+•ñ9î7PO«ø®mñvC}çÎTÒÈ-Âþ~>œÌúÀ}·®ô#R‚'ÞQr-){©“ó¥)ïfšÎ$•€•Î1OQ<ÝWôcÜBsèVcrÐ,~šL)ipÖWÌ ™;ϯÕ÷]ùêñ \yq‘B@)¾âìhÖÞ#Hü%¬?_­8zí /æ*†¤TÍ{G³s‹á/EïÌ:Tj¯á€ãèI2j9aþ½5 lú¾Ù(I6vÎ:ÿê.üÖ¯Ï \ “ö“c<{iýfç±E ,Ú^€Ž¿ 8¹¢f=ŸF—ÒyJ KÁA“…ëÑûØQ(e@~u›ÛS8±ºÍœ56@Œ7ýD2ÔçMn3ò¼éõøY˜7'O»e _\VÕ²”4ƒÝË =hOGÑ~qm{TAòÖþé$B"ž…kÕßS¶­îÞ½3FÄÕ? ÛVuäùõL§€.ž’nÌF~ÆëOÊt¥µ:)GKÁäfC¼ÙßmˆSj Ïg‰æQˆ´ZÔæã{šç^cNÚsçMrî¸áø(¢–÷#Qƒå‹u»ÖîšxÞkˆ‚0Ï'CM{¹rÞk€@ žÏg/–å½ï×`ùzñrMK¯GýÂ<ŸNzq¦å›Ø­ìȉ²[ß#§´\QïBî™—l3 Š¿›Ø¡Ž¶^÷^®ÐEˆã>ξ¶{v¤TéÝ[ñmípt&je(5díü ž³Ž ëÅšäoäu£©gó)F]bÊ6­ÃazÆ 1ùžŠß~SãW?!¯ÑTˆl„§žú)ØD"á0«q'›H@h‹GÎÄ ôO+UÍyÞ—fŸ[ÝNèVÏ›D—¤¶^î„&7»¹æWSæ.µEšÝÀ)¹g»6´²ö)aÃâù°¡•uO æÏ€ $ÉrÂf‹ñ¶ ;$õÚp[§´^vë”Ø+ÃoÒzm® b?Ó3:´Ðëg`¡:Eo-÷õņ.ÑÛôù°¡Kô6y>lè½µ|Ñ%>!»'Î}\¤iðű—¾1ÐÅתZ Djé3ˆõCêùk:OmF§J§KF€ætA¾û|ºä, ü?]2zÍM¤àz"Öùb¸\ŠuÛ¶{ë€è¥éû ØJ ¯7Gß9Ý,yOÛ©6P4&*¹I§ÒñXEX7' nùNÔgz ¦A<гYñ}vƒF¯Ä¶u¨þÕF–ÓI(B}SåêðöÙa€º¿\WÍYv›ÉÝ*oÀ|›ž0åâ§p—~ù.Í—[kâ«àIÝï¢ò-òäËÛ~ŒA;—*\TwJ&E>£†WMz¹—ŽÉ]:*1uñ¤îÅ©ÙÅ7Ó8ÀþÝ9¼Ï‡çŸaÍ'̦à ~¼ñÝÕô«à©KÅŠy$gíßâg+wOèò˜-¤ó*'ú•`òâýÄ X ˜I¢Í- í@ùÊy¯Üªºc=Á†›óL§ÆOUÕÁI ˜3l[ùŒMz¡®Ub] «Ç çªâBëz9ƒ<9ÀÛr¾·6ƒÅ ’~³a»å Sñ†Å‰‰I¤÷Í€ sq._%»%â”þ›KTÓPbŠ?öGñнRÑ3űj#òI÷bý,v:ŒdYï‡Ù\ÕºùBkŸ¯eLÔkö¸è½Çeï=®zïQ÷ߥ֠KKœB¸ÄNç/ýQ3åò&SùM`5+B²#ƒ1%;Òìhb„^ ;Ö½š«2XPÒèW¢ÍYº_úy æÞUöPzs¿{õÈ×Nðï§Ì:ê ±â€ˆcöGŸÚ ™ži¨qk>™'Õ¶Vn@%üqC|tkùž OG6@µëå2°i§ÆªFß âÅÈ^ÜïÄ[È.{R¹%ÍÏÜÏœ·}òœ]ƒ>S 9$Ι/’LÉé'˜ªÐF̓|ú6W–ù ÏÉñ“o|„çñê`†ç#¥—Ÿ,©t|nÐÅFQšmÞ›6ˉ¾¹CnZÊd¨ä4DÎkJYp ¤¡ 4EŸ1ˆvÈ€ÊúÉäjF2- iX¨ö¬Qíy£Ú‹Fµ—j¯Õ^7ª­ËªJ5#Ùô,Ù›"²—”Lu}ªêXèϨ@õ6¤n·Ö#yÚ¯™Ø‡³õ:-÷%£­Aˤ'Z|éfüPÜx8g±7:§¡³_g—¡±÷¹œ_„ÎI¯4..Ccïs¹¼Óá¸g:W¢s>îWnסsÖû|rB[šÐT¶P¢‘ÆåiÃŽèÎÀH´ «=ü¿ÿùßµQaäDêÔ­œ¬Û4 b¥z4£Ù Aî‘^AÌÔŒÞ%Ø« W?5¡®×B­ ŠjFíâZ¨ÄSM¨œtB=Ò+ˆ«šÑ;½ÝÄWÍè]] µ‚(« µÓë±T¢X«¹‹Î•·æâw¯Øˆt×ñM= ¬{Žá’o9ÕÛºjÉ8«â»ìÞîŽÕKØzî;M/aé¹ï½„ÝŸ—°³óvm^ÄŽÌËØmá—ϯÜóÇ7%¥ë—®_º~éú¥ë—®_ºþ\ÿôú]?»)=¿ôüÒóKÏ/=¿ôüÒó·àùg×îùã×k¥ë—®_º~éú¥ë—®_ºþ\ÿ¼ë À̽ïpÄ9Z!@ñÿõ?­ÆDP4 ‘€A $`€A†?`XôÁð‰$bˆA"‰$bˆ¡bXö…–!‘¨ $`€A $`€¡`XõVÁ`‰$bˆA"‰$bˆ¡bX7@ Eìi;2HQºwéÞ¥{—î]ºwéÞ›¹÷ø)¦ÎwÒ_/j´% —ýH\ qÄH\Ð.hÿÂ2\ eq‡MÊ»‚O!§˜(Ž´¡6›°Ñ€Q#GOŸ*|QZn)Hè ¡ƒ„:Hè ¡ƒt˜üÑXEžžXÃ>i¡• ‡è^æ…œz1iÓV>ù’ ùûbÒfíÜ~iÖêÀ€bÒæ­Üžµe˳V!“¶öXlðýÑV9Ó¶¦mUá领 á‰bÊVÂîm6«˜5ž}!œQLÛZ¶ùp\ñUŠ(W¢rôÑå[‹ÏŠÈ¹‘ 7äF‚ÜH ÏΕ·ÿx"#‘ÈôT|ñ‹c˜ÍŽÊVóòøA¢‰$j¨A¢‰ÚD MÞ]üƒPHÿ.ý»ôïÒ¿Kÿ.ýû³óïMžI¬·+°8™øNF&Jè ¡ƒ„:Hè ¡ÃõC‡&ï%ÖƒG&6Ø"è@¢‰$:è@¢‰ºDMG|kíBŒËu"·nôoŠºþÛ¨†­›Šn\㩸‡ y\¯PDyÄT R¸eƒÃÞð,=¹a î°e¨Üxècò¿¢Èf!yC0oŠ7ér8Ü<¥Êi3­¸mZzs­À²È}ˆÅ%_ˆr¿"?zaî¨_~€È<&…ArY‰ ø¦ÇYÌgcm•ãµ)OIkeÐä³°2þú[°…KÇɪp2ÿ‘§¦±xÆ$"Î Ù›ˆ ³¬²dÍ!ÈgA™VXɼ(‡Ëešú'PE²f%p²œŒ¹h„[ŠŽ{udpk 9;<ÎûĶJ…ÏÜ^Ê*ñ§KóS™Ïaœ…ôb«Ä3º±JÓ…´J/Î*Š”~tžZ>±ü¼œý¼ÔÛÏ¥»—Š%Ýýst÷…`—´þì’\„H«$­Ò³²JìÈ镈‘ìŒUú¬sû P±¢ƒTõ'%ú'ÍÙpH”Jöߨ¯GéŸ<ïà:Á^Iå„ÈN(hàÉD¸¤ûQ޾ää,Te0Þ E‰„yÝñ]'%Ç]5¿¿Äd(:TôòÁÐ¥ù ©†Áßï^¥â¦èî!IKŒcEMÛý]µÈƒ®ô¬ö‘œ4¼Úcs ŠþÕÒƒ›þhÂT~IþóööýOäïÛwnßMÇ«·+íýðá°åuÙP|ëàLEiþžXS&ÏàIš†i¼¸ÎG¥nf6ä˜"\ÖÝ_<ÓyVÒÏW Ð$ÃõøÉp` TwFŸ>½WÞ¾Ù.™BåÎ3u ĉzÚ¨V¶¸"¡\«c SÓjãÇÓÀã…:žªÚâ›¶|¥M_Í×ÿ¼^Þh õÂ*ÉŽ:&µ8·¼#ƒ–5eå¢ùU‹OÃëçÆ_2BsÎdhÞ«ÑèááavÔÑÉ4 ]¼Ð X×åêd¦ýU·2äæçoæ½2N„ågžoB¸î‚×¥f$iâ›¶©ÔþÜ ô“ ˜jÏjRþMÕÞ‘Kˆ¦ÌÚ)Kwka?P¾ÒŒr[—„HB¿)¾KíÏW÷ô¯.9­ª£é5ÕiFu"ª4ªÒ¨^±Q=ћґævqReg×`g]ØEòE"iÿ†1Š}«0Â%®ÍHÏE¹Ñ¬k$—ÏÊHº[q-Y¥:¬oUGÅ {žÌ£†yÆÿPK û–„PKÀp4âGò<ÍÍmeta.xml OpenOffice.org 1.1.4 (Linux)SD/MMC Bootloader SpecificationSD/MMC Bootloader Specification2005-02-26T15:36:042006-03-16T17:14:002006-03-16T17:13:58en-US126PT19H50M36SPKÀp4 settings.xmlÍYÝnãÆ¾ïS(B ´HmR”¼¶¶^-†Ô¯-Ûú—¥¶#rLqMΰäвZ`¼ ´iÚ-Ðv³I“tï‹ö2Ò.°b>_¡3”¼uliוL ¾IÍ™ïœ9sÎwÎŒvŸ[fâ 9®Að£djSL&V‰f`ýQ²Ý*nì$ç¾·û^þHiõj…991TôP#ªg!L7\D)“uµ¶\­(‰ä† ÙEr›ÄÑ!ßÊ'fïùù´S$…Ãd"9ÜÔ¨–Ìí.EgVb÷áløQrH©ýPÓCþ«GEQ˜½'çÎMŸ¾‘F›£t$›Êf³B4z%ª|bèoÁN 3‘䕾ãµ7¶_™œÛ‰Ï7 Š,¾žÄük -¶’3Þ¬2¹hÎwå;L8¶ˆ¼¡c›˜&sé­L:»µ+܆¹;tÐEØâz°]C£ÃE¸’”×Ä.#C.4:µ“ΤVoɨ4#HB¬#÷†‚!&‚8™£Ž‡V×QFPCNwh˜HvÈÈe‘°LÑ 4Ý54 ¡ñkªà Ý ü†í kèi·÷qÖDsƒ8ã»EQE»aªKîžOPiõè\–L)i;“]vYú?Ø’¤W…u‰î=û#ÔXè*Bn,Ë|I³;kAË„Rb-´{[ÚNgVïbµÔÍxgu7sÐ"T)qḭ̂·‰L¤R¤öÅ ù¼àËëɹlxžï‹XÁ¼[y½x¤¬Pÿ/uhZ :°Y4m¨¾…*Wgÿ£Ú@¼@7ùç>˜¸ÊÚ›¶­Aºˆ‹¯"c}.g`h¬L:,ÙrÖæä*+¸Ôo=gå'p5(Äãú— îÕVä èßd¡9ªðîù2Ò Ì6kÙjßûÁ~¼ùð'þë×_¿þç¥ÿ×Kÿù¥ÏþuéÿûòçÿAà_þGÿIàÿ6ðø¿ü?þŸƒ‹gÁÅçÁÅóàâ‹àé·ÁÓiðôe8ù œ|N> 'Ÿ†“ÏÂÉßÂɳpòe8™†Óçáô«púM8ýG8}¾ü"|ùeøêï«9¦€µ·,ëû?üéÏ~õú›×/.ý¿\úŸþÇÿ›Àÿ4ð? ü?þŸÂɇáäãpòm8}N¿_}¾z˼3p®B[!–í —7þ÷Îâ4™oL´GKÛÍ5aÆE‡• dÙ&{މÕjÐF×ÓDÔ»Yûïc%Œ £ŠÄΕŒÖchÍ£eðn¨ciý#ü¨¾ÄÎÕ’Ù†Çd½BXv3.ç gað@=ÈȆŒÇsž^}_5s`uư{ ·Ë{ö7LUÿ—mQ+¶L¹Ùy·h€ö¯½ÂNûmöx:¨д²F£T{Mp®`™­}KìW² ©ãõ÷ìÞX®«–éi¥ÎX±²l¼Ãž‹"ìf½ZG>SqcÜ뚢bž©%ÓT)2œÃ'½î¹YkFÀ¦½ã=ÌpO{];¥¦´ÏtÔZÀ=PF£jì÷¤¬;HïöeæÅñ!°GªtnjVÇerׯûvOjgf½]hä·uXè7†Š)ûR§móè”Í-Ïön¯›©_s¬ËT}©Pmt¨xµ­ãú/Ñ. î7ʰ$4F9šy-σ@Öýl¹ÇÇ¥ÇqA‰»œñêH€Ípù‹bt¼Â5¥¥èו ×—ª8½ºóäýޏ—¡ÛZ‰“Ò W¦XTåh_ùGAçÏþèq}ÛC6®Y t @6ù÷} A¹öS¤DFö¸}Rd?—mPÇõÑ&[ï~F05E,)'¬¬3}½-s›A1²2Šô£hªì±ñ:ïë‡ÛÏ×Q½º,‚b体 <,«¥Ü¿@›¯ãš ×ùøMÿ*;Ì¿àÑ0&4jÞ—w°+[`Ûæ¸í"')¼+ÈÔâdà& 4, -- 16 sets width_bit_cnt_g => 12, -- 512 bytes per block width_img_cnt_g => 2, -- 4 images num_bits_per_img_g => 18, -- 256 kByte per image sd_init_g => 1, -- use SD specific initialization mmc_compat_clk_div_g => 13, -- MMC compat 400 kHz > 10 MHz / (13*2) width_mmc_clk_div_g => 4 -- need 5 bits for MMC compat divider ) port map ( clk_i => clk_i, reset_i => reset_i, set_sel_i => set_sel_s, spi_clk_o => spi_clk_s, spi_cs_n_o => spi_cs_n_s, spi_data_in_i => spi_data_in_i, spi_data_out_o => spi_data_out_s, spi_en_outs_o => spi_en_outs_s, start_i => start_i, mode_i => mode_i, config_n_o => config_n_o, detached_o => detached_o, cfg_init_n_i => cfg_init_n_i, cfg_done_i => cfg_done_i, dat_done_i => dat_done_i, cfg_clk_o => cfg_clk_o, cfg_dat_o => cfg_dat_o ); ----------------------------------------------------------------------------- -- Three state drivers for SPI outputs. ----------------------------------------------------------------------------- spi_clk_o <= spi_clk_s when spi_en_outs_s = '1' else 'Z'; spi_cs_n_o <= spi_cs_n_s when spi_en_outs_s = '1' else 'Z'; spi_data_out_o <= spi_data_out_s when spi_en_outs_s = '1' else 'Z'; end full; ------------------------------------------------------------------------------- -- File History: -- -- $Log: chip-full-a.vhd,v $ -- Revision 1.6 2005/04/07 20:44:23 arniml -- add new port detached_o -- -- Revision 1.5 2005/03/09 19:48:34 arniml -- invert level of set_sel input -- -- Revision 1.4 2005/03/08 22:07:12 arniml -- added set selection -- -- Revision 1.3 2005/02/18 06:42:11 arniml -- clarify wording for images -- -- Revision 1.2 2005/02/16 18:54:37 arniml -- added tri-state drivers for spi outputs -- -- Revision 1.1 2005/02/08 20:41:31 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-full-c.vhd000066400000000000000000000006511224274632000244570ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: chip-full-c.vhd,v 1.1 2005/02/08 20:41:31 arniml Exp $ -- ------------------------------------------------------------------------------- configuration chip_full_c0 of chip is for full for spi_boot_b : spi_boot use configuration work.spi_boot_rtl_c0; end for; end for; end chip_full_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-minimal-a.vhd000066400000000000000000000136361224274632000251500ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Chip toplevel design with minimal feature set -- -- $Id: chip-minimal-a.vhd,v 1.6 2005/04/07 20:44:23 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; architecture minimal of chip is component spi_boot generic ( width_set_sel_g : integer := 4; width_bit_cnt_g : integer := 6; width_img_cnt_g : integer := 2; num_bits_per_img_g : integer := 18; sd_init_g : integer := 0; mmc_compat_clk_div_g : integer := 0; width_mmc_clk_div_g : integer := 0; reset_level_g : integer := 0 ); port ( clk_i : in std_logic; reset_i : in std_logic; set_sel_i : in std_logic_vector(width_set_sel_g-1 downto 0); spi_clk_o : out std_logic; spi_cs_n_o : out std_logic; spi_data_in_i : in std_logic; spi_data_out_o : out std_logic; spi_en_outs_o : out std_logic; start_i : in std_logic; mode_i : in std_logic; config_n_o : out std_logic; detached_o : out std_logic; cfg_init_n_i : in std_logic; cfg_done_i : in std_logic; dat_done_i : in std_logic; cfg_clk_o : out std_logic; cfg_dat_o : out std_logic ); end component; signal spi_clk_s : std_logic; signal spi_cs_n_s : std_logic; signal spi_data_out_s : std_logic; signal spi_en_outs_s : std_logic; signal set_sel_s : std_logic_vector(3 downto 0); begin set_sel_s <= not set_sel_n_i; spi_boot_b : spi_boot generic map ( width_set_sel_g => 4, -- 16 sets width_bit_cnt_g => 6, -- 8 bytes per block width_img_cnt_g => 2, -- 4 images num_bits_per_img_g => 18, -- 256 kByte per image sd_init_g => 0, -- no SD specific initialization mmc_compat_clk_div_g => 0, -- no MMC compatibility width_mmc_clk_div_g => 0 -- no MMC compatibility ) port map ( clk_i => clk_i, reset_i => reset_i, set_sel_i => set_sel_s, spi_clk_o => spi_clk_s, spi_cs_n_o => spi_cs_n_s, spi_data_in_i => spi_data_in_i, spi_data_out_o => spi_data_out_s, spi_en_outs_o => spi_en_outs_s, start_i => start_i, mode_i => mode_i, config_n_o => config_n_o, detached_o => detached_o, cfg_init_n_i => cfg_init_n_i, cfg_done_i => cfg_done_i, dat_done_i => dat_done_i, cfg_clk_o => cfg_clk_o, cfg_dat_o => cfg_dat_o ); ----------------------------------------------------------------------------- -- Three state drivers for SPI outputs. ----------------------------------------------------------------------------- spi_clk_o <= spi_clk_s when spi_en_outs_s = '1' else 'Z'; spi_cs_n_o <= spi_cs_n_s when spi_en_outs_s = '1' else 'Z'; spi_data_out_o <= spi_data_out_s when spi_en_outs_s = '1' else 'Z'; end minimal; ------------------------------------------------------------------------------- -- File History: -- -- $Log: chip-minimal-a.vhd,v $ -- Revision 1.6 2005/04/07 20:44:23 arniml -- add new port detached_o -- -- Revision 1.5 2005/03/09 19:48:34 arniml -- invert level of set_sel input -- -- Revision 1.4 2005/03/08 22:07:12 arniml -- added set selection -- -- Revision 1.3 2005/02/18 06:42:12 arniml -- clarify wording for images -- -- Revision 1.2 2005/02/16 18:54:39 arniml -- added tri-state drivers for spi outputs -- -- Revision 1.1 2005/02/08 20:41:31 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-minimal-c.vhd000066400000000000000000000006651224274632000251500ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: chip-minimal-c.vhd,v 1.1 2005/02/08 20:41:32 arniml Exp $ -- ------------------------------------------------------------------------------- configuration chip_minimal_c0 of chip is for minimal for spi_boot_b : spi_boot use configuration work.spi_boot_rtl_c0; end for; end for; end chip_minimal_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-mmc-a.vhd000066400000000000000000000136521224274632000242740ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Chip toplevel design with MMC feature set -- -- $Id: chip-mmc-a.vhd,v 1.6 2005/04/07 20:44:23 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; architecture mmc of chip is component spi_boot generic ( width_set_sel_g : integer := 4; width_bit_cnt_g : integer := 6; width_img_cnt_g : integer := 2; num_bits_per_img_g : integer := 18; sd_init_g : integer := 0; mmc_compat_clk_div_g : integer := 0; width_mmc_clk_div_g : integer := 0; reset_level_g : integer := 0 ); port ( clk_i : in std_logic; reset_i : in std_logic; set_sel_i : in std_logic_vector(width_set_sel_g-1 downto 0); spi_clk_o : out std_logic; spi_cs_n_o : out std_logic; spi_data_in_i : in std_logic; spi_data_out_o : out std_logic; spi_en_outs_o : out std_logic; start_i : in std_logic; mode_i : in std_logic; config_n_o : out std_logic; detached_o : out std_logic; cfg_init_n_i : in std_logic; cfg_done_i : in std_logic; dat_done_i : in std_logic; cfg_clk_o : out std_logic; cfg_dat_o : out std_logic ); end component; signal spi_clk_s : std_logic; signal spi_cs_n_s : std_logic; signal spi_data_out_s : std_logic; signal spi_en_outs_s : std_logic; signal set_sel_s : std_logic_vector(3 downto 0); begin set_sel_s <= not set_sel_n_i; spi_boot_b : spi_boot generic map ( width_set_sel_g => 4, -- 16 sets width_bit_cnt_g => 12, -- 512 bytes per block width_img_cnt_g => 2, -- 4 images num_bits_per_img_g => 18, -- 256 kByte per image sd_init_g => 0, -- no SD specific initialization mmc_compat_clk_div_g => 13, -- MMC compat 400 kHz > 10 MHz / (13*2) width_mmc_clk_div_g => 4 -- need 5 bits for MMC compat divider ) port map ( clk_i => clk_i, reset_i => reset_i, set_sel_i => set_sel_s, spi_clk_o => spi_clk_s, spi_cs_n_o => spi_cs_n_s, spi_data_in_i => spi_data_in_i, spi_data_out_o => spi_data_out_s, spi_en_outs_o => spi_en_outs_s, start_i => start_i, mode_i => mode_i, config_n_o => config_n_o, detached_o => detached_o, cfg_init_n_i => cfg_init_n_i, cfg_done_i => cfg_done_i, dat_done_i => dat_done_i, cfg_clk_o => cfg_clk_o, cfg_dat_o => cfg_dat_o ); ----------------------------------------------------------------------------- -- Three state drivers for SPI outputs. ----------------------------------------------------------------------------- spi_clk_o <= spi_clk_s when spi_en_outs_s = '1' else 'Z'; spi_cs_n_o <= spi_cs_n_s when spi_en_outs_s = '1' else 'Z'; spi_data_out_o <= spi_data_out_s when spi_en_outs_s = '1' else 'Z'; end mmc; ------------------------------------------------------------------------------- -- File History: -- -- $Log: chip-mmc-a.vhd,v $ -- Revision 1.6 2005/04/07 20:44:23 arniml -- add new port detached_o -- -- Revision 1.5 2005/03/09 19:48:34 arniml -- invert level of set_sel input -- -- Revision 1.4 2005/03/08 22:07:12 arniml -- added set selection -- -- Revision 1.3 2005/02/18 06:42:13 arniml -- clarify wording for images -- -- Revision 1.2 2005/02/16 18:54:39 arniml -- added tri-state drivers for spi outputs -- -- Revision 1.1 2005/02/08 20:41:32 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-mmc-c.vhd000066400000000000000000000006451224274632000242740ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: chip-mmc-c.vhd,v 1.1 2005/02/08 20:41:32 arniml Exp $ -- ------------------------------------------------------------------------------- configuration chip_mmc_c0 of chip is for mmc for spi_boot_b : spi_boot use configuration work.spi_boot_rtl_c0; end for; end for; end chip_mmc_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-sd-a.vhd000066400000000000000000000136041224274632000241230ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Chip toplevel design with SD feature set -- -- $Id: chip-sd-a.vhd,v 1.6 2005/04/07 20:44:23 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; architecture sd of chip is component spi_boot generic ( width_set_sel_g : integer := 4; width_bit_cnt_g : integer := 6; width_img_cnt_g : integer := 2; num_bits_per_img_g : integer := 18; sd_init_g : integer := 0; mmc_compat_clk_div_g : integer := 0; width_mmc_clk_div_g : integer := 0; reset_level_g : integer := 0 ); port ( clk_i : in std_logic; reset_i : in std_logic; set_sel_i : in std_logic_vector(width_set_sel_g-1 downto 0); spi_clk_o : out std_logic; spi_cs_n_o : out std_logic; spi_data_in_i : in std_logic; spi_data_out_o : out std_logic; spi_en_outs_o : out std_logic; start_i : in std_logic; mode_i : in std_logic; config_n_o : out std_logic; detached_o : out std_logic; cfg_init_n_i : in std_logic; cfg_done_i : in std_logic; dat_done_i : in std_logic; cfg_clk_o : out std_logic; cfg_dat_o : out std_logic ); end component; signal spi_clk_s : std_logic; signal spi_cs_n_s : std_logic; signal spi_data_out_s : std_logic; signal spi_en_outs_s : std_logic; signal set_sel_s : std_logic_vector(3 downto 0); begin set_sel_s <= not set_sel_n_i; spi_boot_b : spi_boot generic map ( width_set_sel_g => 4, -- 16 sets width_bit_cnt_g => 12, -- 512 bytes per block width_img_cnt_g => 2, -- 4 images num_bits_per_img_g => 18, -- 256 kByte per image sd_init_g => 1, -- SD specific initialization mmc_compat_clk_div_g => 0, -- no MMC compatibility width_mmc_clk_div_g => 0 -- no MMC compatibility ) port map ( clk_i => clk_i, reset_i => reset_i, set_sel_i => set_sel_s, spi_clk_o => spi_clk_s, spi_cs_n_o => spi_cs_n_s, spi_data_in_i => spi_data_in_i, spi_data_out_o => spi_data_out_s, spi_en_outs_o => spi_en_outs_s, start_i => start_i, mode_i => mode_i, config_n_o => config_n_o, detached_o => detached_o, cfg_init_n_i => cfg_init_n_i, cfg_done_i => cfg_done_i, dat_done_i => dat_done_i, cfg_clk_o => cfg_clk_o, cfg_dat_o => cfg_dat_o ); ----------------------------------------------------------------------------- -- Three state drivers for SPI outputs. ----------------------------------------------------------------------------- spi_clk_o <= spi_clk_s when spi_en_outs_s = '1' else 'Z'; spi_cs_n_o <= spi_cs_n_s when spi_en_outs_s = '1' else 'Z'; spi_data_out_o <= spi_data_out_s when spi_en_outs_s = '1' else 'Z'; end sd; ------------------------------------------------------------------------------- -- File History: -- -- $Log: chip-sd-a.vhd,v $ -- Revision 1.6 2005/04/07 20:44:23 arniml -- add new port detached_o -- -- Revision 1.5 2005/03/09 19:48:34 arniml -- invert level of set_sel input -- -- Revision 1.4 2005/03/08 22:07:12 arniml -- added set selection -- -- Revision 1.3 2005/02/18 06:42:14 arniml -- clarify wording for images -- -- Revision 1.2 2005/02/16 18:54:39 arniml -- added tri-state drivers for spi outputs -- -- Revision 1.1 2005/02/08 20:41:32 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/chip-sd-c.vhd000066400000000000000000000006411224274632000241220ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: chip-sd-c.vhd,v 1.1 2005/02/08 20:41:33 arniml Exp $ -- ------------------------------------------------------------------------------- configuration chip_sd_c0 of chip is for sd for spi_boot_b : spi_boot use configuration work.spi_boot_rtl_c0; end for; end for; end chip_sd_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/sample/000077500000000000000000000000001224274632000231305ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/sample/ram_loader-c.vhd000066400000000000000000000005001224274632000261530ustar00rootroot00000000000000------------------------------------------------------------------------------- -- $Id: ram_loader-c.vhd,v 1.1 2005/04/10 18:02:32 arniml Exp $ ------------------------------------------------------------------------------- configuration ram_loader_rtl_c0 of ram_loader is for rtl end for; end ram_loader_rtl_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/sample/ram_loader.vhd000066400000000000000000000237441224274632000257520ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Sample client for loading an image to asynchronous SRAM -- -- $Id: ram_loader.vhd,v 1.2 2005/04/10 17:17:23 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity ram_loader is port ( -- Global Interface ------------------------------------------------------- clk_i : in std_logic; reset_i : in std_logic; lamp_o : out std_logic; -- Config Interface ------------------------------------------------------- cfg_clk_i : in std_logic; cfg_data_i : in std_logic; start_o : out std_logic; mode_o : out std_logic; done_o : out std_logic; detached_i : in std_logic; -- Asynchronous RAM Interface --------------------------------------------- ram_addr_o : out std_logic_vector(15 downto 0); ram_data_b : out std_logic_vector( 7 downto 0); ram_ce_no : out std_logic_vector( 3 downto 0); ram_oe_no : out std_logic; ram_we_no : out std_logic ); end ram_loader; library ieee; use ieee.numeric_std.all; architecture rtl of ram_loader is signal addr_q : unsigned(17 downto 0); signal inc_addr_s : boolean; signal shift_dat_q : std_logic_vector(7 downto 0); signal ser_dat_q : std_logic_vector(7 downto 0); signal bit_q : unsigned(2 downto 0); signal bit_ovfl_q : boolean; type fsm_t is (IDLE, WE_ON, WE_OFF, INC_ADDR1, INC_ADDR2, FINISHED); signal fsm_s, fsm_q : fsm_t; signal done_q : std_logic; signal done_s : boolean; signal mode_q, mode_s : std_logic; signal ram_we_n_q, ram_we_n_s : std_logic; signal ram_ce_n_q, ram_ce_n_s : std_logic_vector(3 downto 0); type start_fsm_t is (WAIT_DETACH, CHECK_NO_DONE, WAIT_DONE); signal start_fsm_s, start_fsm_q : start_fsm_t; signal start_s, start_q : std_logic; signal enable_s, enable_q : boolean; begin ----------------------------------------------------------------------------- -- Process seq -- -- Purpose: -- Implements the sequential elements clocked with cfg_clk_i. -- seq: process (cfg_clk_i, reset_i) begin if reset_i = '0' then addr_q <= (others => '0'); shift_dat_q <= (others => '0'); ser_dat_q <= (others => '0'); bit_q <= (others => '0'); bit_ovfl_q <= false; fsm_q <= IDLE; ram_we_n_q <= '1'; ram_ce_n_q <= (others => '1'); done_q <= '0'; mode_q <= '0'; elsif cfg_clk_i'event and cfg_clk_i = '1' then if inc_addr_s then addr_q <= addr_q + 1; end if; if enable_q then bit_q <= bit_q + 1; bit_ovfl_q <= bit_q = 7; shift_dat_q(0) <= cfg_data_i; shift_dat_q(7 downto 1) <= shift_dat_q(6 downto 0); end if; -- update register when 8 serial bits have been shifted in if bit_ovfl_q then ser_dat_q <= shift_dat_q; end if; fsm_q <= fsm_s; ram_we_n_q <= ram_we_n_s; ram_ce_n_q <= ram_ce_n_s; -- done only settable once if done_s then done_q <= '1'; end if; mode_q <= mode_s; end if; end process seq; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process fsm -- -- Purpose: -- Implements the combinational logic of the RAM loader FSM. -- fsm: process (fsm_q, bit_ovfl_q, start_q, addr_q) begin -- default assignments inc_addr_s <= false; ram_we_n_s <= '1'; done_s <= false; fsm_s <= IDLE; lamp_o <= '1'; mode_s <= '0'; case fsm_q is when IDLE => lamp_o <= '0'; if start_q = '1' then if bit_ovfl_q then fsm_s <= WE_ON; end if; end if; when WE_ON => ram_we_n_s <= '0'; fsm_s <= WE_OFF; when WE_OFF => fsm_s <= INC_ADDR1; when INC_ADDR1 => fsm_s <= INC_ADDR2; when INC_ADDR2 => if addr_q = "001111111111111111" then -- load only 64k fsm_s <= FINISHED; done_s <= true; mode_s <= '1'; else inc_addr_s <= true; fsm_s <= IDLE; end if; when FINISHED => fsm_s <= FINISHED; lamp_o <= '1'; mode_s <= '1'; when others => end case; end process fsm; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process ce_gen -- -- Purpose: -- Generates the four CE signals for the external RAM chips. -- ce_gen: process (addr_q) begin ram_ce_n_s <= (others => '1'); ram_ce_n_s(to_integer(addr_q(17 downto 16))) <= '0'; end process ce_gen; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process start_seq -- -- Purpose: -- Implements the sequential elements clocked with clk_i. -- start_seq: process (clk_i, reset_i) begin if reset_i = '0' then start_fsm_q <= WAIT_DETACH; start_q <= '0'; enable_q <= false; elsif clk_i'event and clk_i = '1' then start_fsm_q <= start_fsm_s; enable_q <= enable_s; start_q <= start_s; end if; end process start_seq; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process start_comb -- -- Purpose: -- Implements the combinational logic of the start FSM. -- start_comb: process (start_fsm_q, detached_i, done_q, enable_q, start_q) begin -- default assignments start_fsm_s <= WAIT_DETACH; enable_s <= enable_q; start_s <= start_q; case start_fsm_q is -- Wait for detached_i to become '1' -- This state is entered/left twice: -- 1. after reset to start the data download -- 2. after data download to start the next configuration cycle when WAIT_DETACH => if detached_i = '1' then start_fsm_s <= CHECK_NO_DONE; enable_s <= true; start_s <= '1'; else start_fsm_s <= WAIT_DETACH; end if; -- Wait until done_q is '0' -- This ensures that the FSM stalls when it has started the configuration -- download. There must be no further action in this case. when CHECK_NO_DONE => if done_q = '0' then start_fsm_s <= WAIT_DONE; else start_fsm_s <= CHECK_NO_DONE; end if; -- Wait until done_q is '1' -- done_q is the signal that the main FSM has finished its work. We -- need to start the configuration download. when WAIT_DONE => if done_q = '1' then start_fsm_s <= WAIT_DETACH; enable_s <= false; start_s <= '0'; else start_fsm_s <= WAIT_DONE; end if; when others => null; end case; end process start_comb; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Output Mapping ----------------------------------------------------------------------------- start_o <= start_q; mode_o <= mode_q; done_o <= done_q when start_q = '1' else '1'; ram_addr_o <= std_logic_vector(addr_q(15 downto 0)); ram_data_b <= ser_dat_q; ram_oe_no <= '1'; ram_ce_no <= ram_ce_n_q; ram_we_no <= ram_we_n_q; end rtl; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/spi_boot-c.vhd000066400000000000000000000011331224274632000244060ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: spi_boot-c.vhd,v 1.2 2005/02/18 06:42:11 arniml Exp $ -- ------------------------------------------------------------------------------- configuration spi_boot_rtl_c0 of spi_boot is for rtl for img_cnt for img_cnt_b : spi_counter use configuration work.spi_counter_rtl_c0; end for; end for; for mmc_cnt for mmc_cnt_b : spi_counter use configuration work.spi_counter_rtl_c0; end for; end for; end for; end spi_boot_rtl_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/spi_boot.vhd000066400000000000000000000726421224274632000242030ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: spi_boot.vhd,v 1.9 2007/02/25 18:24:12 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity spi_boot is generic ( -- width of set selection width_set_sel_g : integer := 4; -- width of bit counter: minimum 6, maximum 12 width_bit_cnt_g : integer := 6; -- width of image counter: minimum 0, maximum n width_img_cnt_g : integer := 2; -- number of bits required to address one image num_bits_per_img_g : integer := 18; -- SD specific initialization sd_init_g : integer := 0; -- clock divider to reach 400 kHz for MMC compatibility mmc_compat_clk_div_g : integer := 0; width_mmc_clk_div_g : integer := 0; -- active level of reset_i reset_level_g : integer := 0 ); port ( -- System Interface ------------------------------------------------------- clk_i : in std_logic; reset_i : in std_logic; set_sel_i : in std_logic_vector(width_set_sel_g-1 downto 0); -- Card Interface --------------------------------------------------------- spi_clk_o : out std_logic; spi_cs_n_o : out std_logic; spi_data_in_i : in std_logic; spi_data_out_o : out std_logic; spi_en_outs_o : out std_logic; -- FPGA Configuration Interface ------------------------------------------- start_i : in std_logic; mode_i : in std_logic; config_n_o : out std_logic; detached_o : out std_logic; cfg_init_n_i : in std_logic; cfg_done_i : in std_logic; dat_done_i : in std_logic; cfg_clk_o : out std_logic; cfg_dat_o : out std_logic ); end spi_boot; library ieee; use ieee.numeric_std.all; use work.spi_boot_pack.all; architecture rtl of spi_boot is component spi_counter generic ( cnt_width_g : integer := 4; cnt_max_g : integer := 15 ); port ( clk_i : in std_logic; reset_i : in boolean; cnt_en_i : in boolean; cnt_o : out std_logic_vector(cnt_width_g-1 downto 0); cnt_ovfl_o : out boolean ); end component; ----------------------------------------------------------------------------- -- States of the controller FSM -- type ctrl_states_t is (POWER_UP1, POWER_UP2, CMD0, CMD1, CMD55, ACMD41, CMD16, WAIT_START, WAIT_INIT_LOW, WAIT_INIT_HIGH, CMD18, CMD18_DATA, CMD12, INC_IMG_CNT); -- signal ctrl_fsm_q, ctrl_fsm_s : ctrl_states_t; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- States of the command FSM -- type cmd_states_t is (CMD, START, R1, PAUSE); -- signal cmd_fsm_q, cmd_fsm_s : cmd_states_t; -- ----------------------------------------------------------------------------- subtype op_r is integer range 5 downto 0; type res_bc_t is (NONE, RES_MAX, RES_47, RES_15, RES_7); signal bit_cnt_q : unsigned(width_bit_cnt_g-1 downto 0); signal res_bc_s : res_bc_t; signal upper_bitcnt_zero_s : boolean; signal cfg_dat_q : std_logic; signal spi_clk_q : std_logic; signal spi_clk_rising_q : boolean; signal spi_clk_falling_q : boolean; signal spi_dat_q, spi_dat_s : std_logic; signal spi_cs_n_q, spi_cs_n_s : std_logic; signal cfg_clk_q : std_logic; signal start_q : std_logic; signal img_cnt_s : std_logic_vector(width_img_cnt_g downto 0); signal cnt_en_img_s : boolean; signal mmc_cnt_ovfl_s : boolean; signal mmc_compat_s : boolean; signal cmd_finished_s : boolean; signal r1_result_q : std_logic; signal done_q, send_cmd12_q : boolean; signal en_outs_s, en_outs_q : boolean; signal reset_s : boolean; signal true_s : boolean; begin true_s <= true; reset_s <= true when (reset_level_g = 1 and reset_i = '1') or (reset_level_g = 0 and reset_i = '0') else false; ----------------------------------------------------------------------------- -- Process seq -- -- Purpose: -- Implements several sequential elements. -- seq: process (clk_i, reset_s) variable bit_cnt_v : unsigned(1 downto 0); begin if reset_s then -- reset bit counter to 63 for power up bit_cnt_q <= (others => '0'); bit_cnt_q(op_r) <= "111111"; spi_dat_q <= '1'; spi_cs_n_q <= '1'; cfg_dat_q <= '1'; start_q <= '0'; done_q <= false; send_cmd12_q <= false; ctrl_fsm_q <= POWER_UP1; cmd_fsm_q <= CMD; r1_result_q <= '0'; en_outs_q <= false; elsif clk_i'event and clk_i = '1' then -- bit counter control if spi_clk_rising_q then case res_bc_s is when NONE => bit_cnt_q <= bit_cnt_q - 1; when RES_MAX => bit_cnt_q <= (others => '1'); when RES_47 => bit_cnt_q <= (others => '0'); bit_cnt_q(op_r) <= "101111"; when RES_15 => bit_cnt_q <= (others => '0'); bit_cnt_q(op_r) <= "001111"; when RES_7 => bit_cnt_q <= (others => '0'); bit_cnt_q(op_r) <= "000111"; when others => bit_cnt_q <= (others => '0'); end case; end if; -- Card data output register -- spi_clk_falling_q acts as enable during MMC clock compatibility mode. -- As soon as this mode is left, the register must start latching. -- There is no explicit relation to spi_clk_q anymore in normal mode. -- Instead, spi_dat_s is operated by bit_cnt_q above which changes its -- value after the rising edge of spi_clk_q. -- -> spi_dat_q changes upon falling edge of spi_clk_q if spi_clk_falling_q or not mmc_compat_s then spi_dat_q <= spi_dat_s; end if; -- config data output register -- a new value is loaded when config clock is high, -- i.e. input data is sampled with rising spi_clk -- while output value changes on falling edge of cfg_clk if cfg_clk_q = '1' and spi_clk_rising_q then cfg_dat_q <= spi_data_in_i; end if; -- Controller FSM state ctrl_fsm_q <= ctrl_fsm_s; -- Command FSM state cmd_fsm_q <= cmd_fsm_s; -- CS signal for SPI card if spi_clk_q = '1' then spi_cs_n_q <= spi_cs_n_s; end if; -- Extract flags from R1 response if cmd_fsm_q = R1 then bit_cnt_v := bit_cnt_q(1 downto 0); case bit_cnt_v(1 downto 0) is when "10" => -- always save "Illegal Command" flag r1_result_q <= to_X01(spi_data_in_i); when "00" => -- overwrite with "Idle State" flag when not in CMD55 if ctrl_fsm_q /= CMD55 then r1_result_q <= to_X01(spi_data_in_i); end if; when others => null; end case; end if; -- Start trigger register for rising edge detection -- the reset value is '0' thus a rising edge will always be detected -- after reset even though start_i is tied to '1' if start_i = '0' then start_q <= '0'; elsif ctrl_fsm_q = WAIT_START and cmd_finished_s then start_q <= start_i; end if; -- Marker for cfg_done and dat_done if ctrl_fsm_q = CMD18_DATA then if cfg_done_i = '1' and dat_done_i = '1' then done_q <= true; end if; if done_q and (not upper_bitcnt_zero_s or cmd_fsm_q = START) then -- activate sending of CMD12 when it is safe: -- * upper bits of bit counter are not zero -- -> transmission of CMD12 is not running -- * cmd FSM is in START state -- -> also no transmission running send_cmd12_q <= true; end if; elsif ctrl_fsm_q = WAIT_START then -- reset done_q when WAIT_START has been reached -- this is necessary to let the stop transmission process come to -- an end without interruption or generation of unwanted cfg_clk_q done_q <= false; send_cmd12_q <= false; end if; -- output enable if spi_clk_rising_q then en_outs_q <= en_outs_s; end if; end if; end process seq; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process upper_bits -- -- Purpose: -- Detects that the upper bits of the bit counter are zero. -- Upper bits = n downto 6, i.e. the optional part that is not required for -- commands but for extension of data blocks. -- upper_bits: process (bit_cnt_q) variable zero_v : boolean; begin zero_v := true; for i in bit_cnt_q'high downto 6 loop if bit_cnt_q(i) = '1' then zero_v := false; end if; end loop; upper_bitcnt_zero_s <= zero_v; end process upper_bits; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process clk_gen -- -- Purpose: -- Generates clocks for card and FPGA configuration. -- The card clock is free running with a divide by two of clk_i. -- The clock for FPGA config has an enable and is stopped on high level. -- There is a phase shift of half a period between spi_clk and cfg_clk. -- clk_gen: process (clk_i, reset_s) begin if reset_s then spi_clk_q <= '0'; cfg_clk_q <= '1'; elsif clk_i'event and clk_i = '1' then -- spi_clk_q rises according to the flag -- it falls with overflow indication -- the resulting duty cycle is not exactly 50:50, -- high time is a bit longer if mmc_compat_s then -- MMC clock compatibility mode: -- spi_clk_q rises when flagged by spi_clk_rising_q if spi_clk_rising_q then spi_clk_q <= '1'; elsif mmc_cnt_ovfl_s then -- upon counter overflow spi_clk_q falls in case it does not rise spi_clk_q <= '0'; end if; else -- normal mode -- spi_clk_q follows spi_clk_rising_q if spi_clk_rising_q then spi_clk_q <= '1'; else spi_clk_q <= '0'; end if; end if; -- clock for FPGA config must be enabled and follows spi_clk if ctrl_fsm_q = CMD18_DATA and cmd_fsm_q = CMD and not done_q then cfg_clk_q <= spi_clk_q; else cfg_clk_q <= '1'; end if; end if; end process clk_gen; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Indication flags for rising and falling spi_clk_q. -- Essential for MMC clock compatibility mode. ----------------------------------------------------------------------------- mmc_comap: if mmc_compat_clk_div_g > 0 generate mmc_compat_sig: process (clk_i, reset_s) begin if reset_s then spi_clk_rising_q <= false; spi_clk_falling_q <= false; elsif clk_i'event and clk_i = '1' then if mmc_compat_s then -- MMC clock compatibility mode: -- spi_clk_rising_q is an impulse right before rising edge of spi_clk_q -- spi_clk_falling_q is an impulse right before falling edge of spi_clk_q if mmc_cnt_ovfl_s then spi_clk_rising_q <= spi_clk_q = '0'; spi_clk_falling_q <= spi_clk_q = '1'; else spi_clk_rising_q <= false; spi_clk_falling_q <= false; end if; else -- normal mode spi_clk_rising_q <= not spi_clk_rising_q; spi_clk_falling_q <= true; end if; end if; end process mmc_compat_sig; end generate; no_mmc_compat: if mmc_compat_clk_div_g = 0 generate -- SPI clock rising whenever spi_clk_q is '0' spi_clk_rising_q <= spi_clk_q = '0'; -- SPI clock falling whenever spi_clk_q is '1' spi_clk_falling_q <= spi_clk_q = '1'; end generate; ----------------------------------------------------------------------------- -- Process ctrl_fsm -- -- Purpose: -- Implements the controller FSM. -- ctrl_fsm: process (ctrl_fsm_q, cmd_finished_s, r1_result_q, start_i, start_q, mode_i, cfg_init_n_i) variable mmc_compat_v : boolean; begin -- default assignments ctrl_fsm_s <= POWER_UP1; config_n_o <= '1'; cnt_en_img_s <= false; spi_cs_n_s <= '0'; mmc_compat_v := false; en_outs_s <= true; case ctrl_fsm_q is -- Let card finish power up, step 1 ------------------------------------- when POWER_UP1 => mmc_compat_v := true; spi_cs_n_s <= '1'; if cmd_finished_s then ctrl_fsm_s <= POWER_UP2; else ctrl_fsm_s <= POWER_UP1; end if; -- Let card finish power up, step 2 ------------------------------------- when POWER_UP2 => mmc_compat_v := true; if cmd_finished_s then ctrl_fsm_s <= CMD0; else spi_cs_n_s <= '1'; ctrl_fsm_s <= POWER_UP2; end if; -- Issue CMD0: GO_IDLE_STATE -------------------------------------------- when CMD0 => mmc_compat_v := true; if cmd_finished_s then if sd_init_g = 1 then ctrl_fsm_s <= CMD55; else ctrl_fsm_s <= CMD1; end if; else ctrl_fsm_s <= CMD0; end if; -- Issue CMD55: APP_CMD ------------------------------------------------- when CMD55 => if sd_init_g = 1 then mmc_compat_v := true; if cmd_finished_s then if r1_result_q = '0' then -- command accepted, it's an SD card ctrl_fsm_s <= ACMD41; else -- command rejected, it's an MMC card ctrl_fsm_s <= CMD1; end if; else ctrl_fsm_s <= CMD55; end if; end if; -- Issue ACMD41: SEND_OP_COND ------------------------------------------- when ACMD41 => if sd_init_g = 1 then mmc_compat_v := true; if cmd_finished_s then if r1_result_q = '0' then ctrl_fsm_s <= CMD16; else ctrl_fsm_s <= CMD55; end if; else ctrl_fsm_s <= ACMD41; end if; end if; -- Issue CMD1: SEND_OP_COND --------------------------------------------- when CMD1 => mmc_compat_v := true; if cmd_finished_s then if r1_result_q = '0' then ctrl_fsm_s <= CMD16; else ctrl_fsm_s <= CMD1; end if; else ctrl_fsm_s <= CMD1; end if; -- Issue CMD16: SET_BLOCKLEN -------------------------------------------- when CMD16 => if cmd_finished_s then ctrl_fsm_s <= WAIT_START; else ctrl_fsm_s <= CMD16; end if; -- Wait for configuration start request --------------------------------- when WAIT_START => spi_cs_n_s <= '1'; -- detect rising edge of start_i if start_i = '1' and start_q = '0' then -- decide which mode is requested if cmd_finished_s then if mode_i = '0' then ctrl_fsm_s <= CMD18; else ctrl_fsm_s <= WAIT_INIT_LOW; end if; else en_outs_s <= false; ctrl_fsm_s <= WAIT_START; end if; else en_outs_s <= false; ctrl_fsm_s <= WAIT_START; end if; -- Wait for INIT to become low ------------------------------------------ when WAIT_INIT_LOW => spi_cs_n_s <= '1'; -- activate FPGA configuration config_n_o <= '0'; if cfg_init_n_i = '0' then ctrl_fsm_s <= WAIT_INIT_HIGH; else ctrl_fsm_s <= WAIT_INIT_LOW; end if; -- Wait for INIT to become high ----------------------------------------- when WAIT_INIT_HIGH => spi_cs_n_s <= '1'; if cfg_init_n_i = '1' and cmd_finished_s then ctrl_fsm_s <= CMD18; else ctrl_fsm_s <= WAIT_INIT_HIGH; end if; -- Issue CMD18: READ_MULTIPLE_BLOCKS ------------------------------------ when CMD18 => if cmd_finished_s then ctrl_fsm_s <= CMD18_DATA; else ctrl_fsm_s <= CMD18; end if; -- -- receive a data block when CMD18_DATA => if cmd_finished_s then ctrl_fsm_s <= CMD12; else ctrl_fsm_s <= CMD18_DATA; end if; -- Issued CMD12: STOP_TRANSMISSION -------------------------------------- when CMD12 => if cmd_finished_s then ctrl_fsm_s <= INC_IMG_CNT; else ctrl_fsm_s <= CMD12; end if; -- Increment Image Counter ---------------------------------------------- when INC_IMG_CNT => spi_cs_n_s <= '1'; ctrl_fsm_s <= WAIT_START; cnt_en_img_s <= true; when others => null; end case; -- mmc_compat_s is suppressed if MMC clock compatibility is not required if mmc_compat_clk_div_g > 0 then mmc_compat_s <= mmc_compat_v; else mmc_compat_s <= false; end if; end process ctrl_fsm; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process cmd_fsm -- -- Purpose: -- Implements the command FSM. -- cmd_fsm: process (spi_clk_rising_q, spi_data_in_i, bit_cnt_q, ctrl_fsm_q, cmd_fsm_q, send_cmd12_q) variable cnt_zero_v : boolean; variable spi_data_low_v : boolean; variable no_startbit_v : boolean; begin -- default assignments cmd_finished_s <= false; cmd_fsm_s <= CMD; res_bc_s <= NONE; cnt_zero_v := spi_clk_rising_q and bit_cnt_q = 0; spi_data_low_v := spi_clk_rising_q and spi_data_in_i = '0'; -- these are no real commands thus there will be no startbit case ctrl_fsm_q is when POWER_UP1 | POWER_UP2 | WAIT_START | WAIT_INIT_HIGH | WAIT_INIT_LOW => no_startbit_v := true; when others => no_startbit_v := false; end case; case cmd_fsm_q is -- Send the command ----------------------------------------------------- when CMD => if cnt_zero_v then if ctrl_fsm_q /= CMD18_DATA then -- normal commands including CMD12 require startbit of R1 response cmd_fsm_s <= START; else if not send_cmd12_q then -- CMD18_DATA needs to read CRC cmd_fsm_s <= R1; res_bc_s <= RES_15; else -- CMD18_DATA finished, scan for startbit of response cmd_finished_s <= true; cmd_fsm_s <= START; end if; end if; else cmd_fsm_s <= CMD; end if; -- Wait for startbit of response ---------------------------------------- when START => -- startbit detection or skip of this check if no_startbit_v and spi_clk_rising_q then cmd_fsm_s <= R1; res_bc_s <= RES_7; elsif spi_data_low_v then if ctrl_fsm_q /= CMD18_DATA then cmd_fsm_s <= R1; else -- CMD18_DATA startbit detected, read payload cmd_fsm_s <= CMD; res_bc_s <= RES_MAX; end if; else cmd_fsm_s <= START; res_bc_s <= RES_7; end if; -- Read R1 response ----------------------------------------------------- when R1 => if cnt_zero_v then res_bc_s <= RES_7; if not (ctrl_fsm_q = CMD18 or ctrl_fsm_q = CMD18_DATA) then cmd_fsm_s <= PAUSE; else -- CMD18 needs another startbit detection for the data token. -- CMD18_DATA needs a startbit after having received the CRC, either -- * next data token -- * R1 response of CMD12 cmd_fsm_s <= START; if ctrl_fsm_q = CMD18 then -- CMD18 response received -> advance to CMD18_DATA cmd_finished_s <= true; end if; end if; else cmd_fsm_s <= R1; end if; -- PAUSE state -> required for Nrc, card response to host command ------- when PAUSE => if cnt_zero_v then cmd_fsm_s <= CMD; res_bc_s <= RES_47; cmd_finished_s <= true; else cmd_fsm_s <= PAUSE; end if; when others => null; end case; end process cmd_fsm; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Process transmit -- -- Purpose: -- Generates the serial data output values based on the current FSM state -- -- The local variable cmd_v is 64 bits wide in contrast to an SPI command -- with 48 bits. There are two reasons for this: -- * During "overlaid" sending of CMD12 in FSM state CMD18_DATA, the bit -- counter will start from 3F on its lowest 6 bits. Therefore, it is -- necessary to provide all 64 positions in cmd_v. -- * Reduces logic. -- transmit: process (ctrl_fsm_q, cmd_fsm_q, bit_cnt_q, img_cnt_s, send_cmd12_q, set_sel_i, upper_bitcnt_zero_s) subtype cmd_r is natural range 47 downto 0; subtype cmd_t is std_logic_vector(cmd_r); subtype ext_cmd_t is std_logic_vector(63 downto 0); -- STCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcccccccS constant cmd0_c : cmd_t := "010000000000000000000000000000000000000010010101"; constant cmd1_c : cmd_t := "0100000100000000000000000000000000000000-------1"; constant cmd12_c : cmd_t := "0100110000000000000000000000000000000000-------1"; constant cmd16_c : cmd_t := "0101000000000000000000000000000000000000-------1"; constant cmd18_c : cmd_t := "0101001000000000000000000000000000000000-------1"; constant cmd55_c : cmd_t := "0111011100000000000000000000000000000000-------1"; constant acmd41_c : cmd_t := "0110100100000000000000000000000000000000-------1"; variable cmd_v : ext_cmd_t; variable tx_v : boolean; begin -- default assignments spi_dat_s <= '1'; cmd_v := (others => '1'); tx_v := false; if cmd_fsm_q = CMD then case ctrl_fsm_q is when CMD0 => cmd_v(cmd_r) := cmd0_c; tx_v := true; when CMD1 => cmd_v(cmd_r) := cmd1_c; tx_v := true; when CMD16 => cmd_v(cmd_r) := cmd16_c; cmd_v(8 + width_bit_cnt_g-3) := '1'; tx_v := true; when CMD18 => cmd_v(cmd_r) := cmd18_c; -- insert image counter cmd_v(8 + num_bits_per_img_g + width_img_cnt_g downto 8 + num_bits_per_img_g) := img_cnt_s; -- insert set selection cmd_v(8 + num_bits_per_img_g + width_img_cnt_g + width_set_sel_g-1 downto 8 + num_bits_per_img_g + width_img_cnt_g) := set_sel_i; tx_v := true; when CMD18_DATA => cmd_v(cmd_r) := cmd12_c; if send_cmd12_q and upper_bitcnt_zero_s then tx_v := true; end if; when CMD55 => cmd_v(cmd_r) := cmd55_c; tx_v := true; when ACMD41 => cmd_v(cmd_r) := acmd41_c; tx_v := true; when others => null; end case; end if; if tx_v then spi_dat_s <= cmd_v(to_integer(bit_cnt_q(5 downto 0))); end if; end process transmit; -- ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- -- Optional Image Counter ----------------------------------------------------------------------------- img_cnt: if width_img_cnt_g > 0 generate img_cnt_b : spi_counter generic map ( cnt_width_g => width_img_cnt_g, cnt_max_g => 2**width_img_cnt_g - 1 ) port map ( clk_i => clk_i, reset_i => reset_s, cnt_en_i => cnt_en_img_s, cnt_o => img_cnt_s(width_img_cnt_g-1 downto 0), cnt_ovfl_o => open ); img_cnt_s(width_img_cnt_g) <= '0'; end generate; no_img_cnt: if width_img_cnt_g = 0 generate img_cnt_s <= (others => '0'); end generate; ----------------------------------------------------------------------------- -- Optional MMC compatibility counter ----------------------------------------------------------------------------- mmc_cnt: if mmc_compat_clk_div_g > 0 generate mmc_cnt_b : spi_counter generic map ( cnt_width_g => width_mmc_clk_div_g, cnt_max_g => mmc_compat_clk_div_g ) port map ( clk_i => clk_i, reset_i => reset_s, cnt_en_i => true_s, cnt_o => open, cnt_ovfl_o => mmc_cnt_ovfl_s ); end generate; no_mmc_cnt: if mmc_compat_clk_div_g = 0 generate mmc_cnt_ovfl_s <= true; end generate; ----------------------------------------------------------------------------- -- Output Mapping ----------------------------------------------------------------------------- spi_clk_o <= spi_clk_q; spi_cs_n_o <= spi_cs_n_q; spi_data_out_o <= spi_dat_q; spi_en_outs_o <= '1' when en_outs_q else '0'; cfg_clk_o <= cfg_clk_q; cfg_dat_o <= cfg_dat_q; detached_o <= '0' when en_outs_q else '1'; end rtl; ------------------------------------------------------------------------------- -- File History: -- -- $Log: spi_boot.vhd,v $ -- Revision 1.9 2007/02/25 18:24:12 arniml -- fix type handling of resets -- -- Revision 1.8 2006/09/11 23:03:36 arniml -- disable outputs with reset -- -- Revision 1.7 2005/04/07 20:44:23 arniml -- add new port detached_o -- -- Revision 1.6 2005/03/09 19:48:34 arniml -- invert level of set_sel input -- -- Revision 1.5 2005/03/08 22:07:12 arniml -- added set selection -- -- Revision 1.4 2005/02/18 06:42:08 arniml -- clarify wording for images -- -- Revision 1.3 2005/02/16 18:59:10 arniml -- include output enable control for SPI outputs -- -- Revision 1.2 2005/02/13 17:25:51 arniml -- major update to fix several problems -- configuration/data download of multiple sets works now -- -- Revision 1.1 2005/02/08 20:41:33 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/spi_boot_pack-p.vhd000066400000000000000000000021551224274632000254260ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: spi_boot_pack-p.vhd,v 1.1 2005/02/08 20:41:33 arniml Exp $ -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; package spi_boot_pack is function "=" (a : std_logic; b : integer) return boolean; end spi_boot_pack; package body spi_boot_pack is function "=" (a : std_logic; b : integer) return boolean is variable result_v : boolean; begin result_v := false; case a is when '0' => if b = 0 then result_v := true; end if; when '1' => if b = 1 then result_v := true; end if; when others => null; end case; return result_v; end; end spi_boot_pack; ------------------------------------------------------------------------------- -- File History: -- -- $Log: spi_boot_pack-p.vhd,v $ -- Revision 1.1 2005/02/08 20:41:33 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/spi_counter-c.vhd000066400000000000000000000005421224274632000251250ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- -- $Id: spi_counter-c.vhd,v 1.1 2005/02/08 20:41:33 arniml Exp $ -- ------------------------------------------------------------------------------- configuration spi_counter_rtl_c0 of spi_counter is for rtl end for; end spi_counter_rtl_c0; uhd-3.5.5/fpga/usrp2/opencores/spi_boot/rtl/vhdl/spi_counter.vhd000066400000000000000000000072071224274632000247120ustar00rootroot00000000000000------------------------------------------------------------------------------- -- -- SD/MMC Bootloader -- Generic counter module -- -- $Id: spi_counter.vhd,v 1.2 2007/02/25 18:24:12 arniml Exp $ -- -- Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) -- -- All rights reserved, see COPYING. -- -- Redistribution and use in source and synthezised forms, with or without -- modification, are permitted provided that the following conditions are met: -- -- Redistributions of source code must retain the above copyright notice, -- this list of conditions and the following disclaimer. -- -- Redistributions in synthesized form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in the -- documentation and/or other materials provided with the distribution. -- -- Neither the name of the author nor the names of other contributors may -- be used to endorse or promote products derived from this software without -- specific prior written permission. -- -- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE -- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -- POSSIBILITY OF SUCH DAMAGE. -- -- Please report bugs to the author, but before you do so, please -- make sure that this is not a derivative work and that -- you have the latest version of this file. -- -- The latest version of this file can be found at: -- http://www.opencores.org/projects.cgi/web/spi_boot/overview -- ------------------------------------------------------------------------------- library ieee; use ieee.std_logic_1164.all; entity spi_counter is generic ( cnt_width_g : integer := 4; cnt_max_g : integer := 15 ); port ( clk_i : in std_logic; reset_i : in boolean; cnt_en_i : in boolean; cnt_o : out std_logic_vector(cnt_width_g-1 downto 0); cnt_ovfl_o : out boolean ); end spi_counter; library ieee; use ieee.numeric_std.all; use work.spi_boot_pack.all; architecture rtl of spi_counter is signal cnt_q : unsigned(cnt_width_g-1 downto 0); signal cnt_ovfl_s : boolean; begin cnt: process (clk_i, reset_i) begin if reset_i then cnt_q <= (others => '0'); elsif clk_i'event and clk_i = '1' then if cnt_en_i then if not cnt_ovfl_s then cnt_q <= cnt_q + 1; else cnt_q <= (others => '0'); end if; end if; end if; end process cnt; cnt_ovfl_s <= cnt_q = cnt_max_g; ----------------------------------------------------------------------------- -- Output Mapping ----------------------------------------------------------------------------- cnt_ovfl_o <= cnt_ovfl_s; cnt_o <= std_logic_vector(cnt_q); end rtl; ------------------------------------------------------------------------------- -- File History: -- -- $Log: spi_counter.vhd,v $ -- Revision 1.2 2007/02/25 18:24:12 arniml -- fix type handling of resets -- -- Revision 1.1 2005/02/08 20:41:33 arniml -- initial check-in -- ------------------------------------------------------------------------------- uhd-3.5.5/fpga/usrp2/opencores/spi_boot/sim/000077500000000000000000000000001224274632000207015ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/sim/rtl_sim/000077500000000000000000000000001224274632000223525ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/sim/rtl_sim/Makefile000066400000000000000000000121171224274632000240140ustar00rootroot00000000000000############################################################################## # # Makefile for the spi_boot project. # # The dependencies for all VHDL source files are stored here. # # Copyright (c) 2005, Arnim Laeuger (arniml@opencores.org) # # All rights reserved # ############################################################################## PROJECT_DIR = ../.. RTL_DIR = $(PROJECT_DIR)/rtl/vhdl BENCH_DIR = $(PROJECT_DIR)/bench/vhdl ANALYZE=ghdl -a --std=87 --workdir=work ELABORATE=ghdl -e --std=87 --workdir=work .PHONY: all all: work elaborate work: mkdir work work/spi_boot_pack-p.o: $(RTL_DIR)/spi_boot_pack-p.vhd $(ANALYZE) $(RTL_DIR)/spi_boot_pack-p.vhd work/spi_counter.o: $(RTL_DIR)/spi_counter.vhd \ work/spi_boot_pack-p.o $(ANALYZE) $(RTL_DIR)/spi_counter.vhd work/spi_counter-c.o: $(RTL_DIR)/spi_counter-c.vhd \ work/spi_counter.o $(ANALYZE) $(RTL_DIR)/spi_counter-c.vhd work/spi_boot.o: $(RTL_DIR)/spi_boot.vhd \ work/spi_boot_pack-p.o $(ANALYZE) $(RTL_DIR)/spi_boot.vhd work/spi_boot-c.o: $(RTL_DIR)/spi_boot-c.vhd \ work/spi_boot.o \ work/spi_counter-c.o $(ANALYZE) $(RTL_DIR)/spi_boot-c.vhd work/chip-e.o: $(RTL_DIR)/chip-e.vhd $(ANALYZE) $(RTL_DIR)/chip-e.vhd work/chip-full-a.o: $(RTL_DIR)/chip-full-a.vhd \ work/chip-e.o $(ANALYZE) $(RTL_DIR)/chip-full-a.vhd work/chip-full-c.o: $(RTL_DIR)/chip-full-c.vhd \ work/chip-full-a.o \ work/spi_boot-c.o $(ANALYZE) $(RTL_DIR)/chip-full-c.vhd work/chip-mmc-a.o: $(RTL_DIR)/chip-mmc-a.vhd \ work/chip-e.o $(ANALYZE) $(RTL_DIR)/chip-mmc-a.vhd work/chip-mmc-c.o: $(RTL_DIR)/chip-mmc-c.vhd \ work/chip-mmc-a.o \ work/spi_boot-c.o $(ANALYZE) $(RTL_DIR)/chip-mmc-c.vhd work/chip-sd-a.o: $(RTL_DIR)/chip-sd-a.vhd \ work/chip-e.o $(ANALYZE) $(RTL_DIR)/chip-sd-a.vhd work/chip-sd-c.o: $(RTL_DIR)/chip-sd-c.vhd \ work/chip-sd-a.o \ work/spi_boot-c.o $(ANALYZE) $(RTL_DIR)/chip-sd-c.vhd work/chip-minimal-a.o: $(RTL_DIR)/chip-minimal-a.vhd \ work/chip-e.o $(ANALYZE) $(RTL_DIR)/chip-minimal-a.vhd work/chip-minimal-c.o: $(RTL_DIR)/chip-minimal-c.vhd \ work/chip-minimal-a.o \ work/spi_boot-c.o $(ANALYZE) $(RTL_DIR)/chip-minimal-c.vhd work/ram_loader.o: $(RTL_DIR)/sample/ram_loader.vhd $(ANALYZE) $(RTL_DIR)/sample/ram_loader.vhd work/ram_loader-c.o: $(RTL_DIR)/sample/ram_loader-c.vhd \ work/ram_loader.o $(ANALYZE) $(RTL_DIR)/sample/ram_loader-c.vhd work/tb_pack-p.o: $(BENCH_DIR)/tb_pack-p.vhd $(ANALYZE) $(BENCH_DIR)/tb_pack-p.vhd work/card.o: $(BENCH_DIR)/card.vhd \ work/tb_pack-p.o $(ANALYZE) $(BENCH_DIR)/card.vhd work/card-c.o: $(BENCH_DIR)/card-c.vhd \ work/card.o $(ANALYZE) $(BENCH_DIR)/card-c.vhd work/tb_elem.o: $(BENCH_DIR)/tb_elem.vhd \ work/spi_boot_pack-p.o \ work/tb_pack-p.o $(ANALYZE) $(BENCH_DIR)/tb_elem.vhd work/tb_elem-full-c.o: $(BENCH_DIR)/tb_elem-full-c.vhd \ work/tb_elem.o \ work/chip-full-c.o \ work/card-c.o $(ANALYZE) $(BENCH_DIR)/tb_elem-full-c.vhd work/tb_elem-mmc-c.o: $(BENCH_DIR)/tb_elem-mmc-c.vhd \ work/tb_elem.o \ work/chip-mmc-c.o \ work/card-c.o $(ANALYZE) $(BENCH_DIR)/tb_elem-mmc-c.vhd work/tb_elem-sd-c.o: $(BENCH_DIR)/tb_elem-sd-c.vhd \ work/tb_elem.o \ work/chip-sd-c.o \ work/card-c.o $(ANALYZE) $(BENCH_DIR)/tb_elem-sd-c.vhd work/tb_elem-minimal-c.o: $(BENCH_DIR)/tb_elem-minimal-c.vhd \ work/tb_elem.o \ work/chip-minimal-c.o \ work/card-c.o $(ANALYZE) $(BENCH_DIR)/tb_elem-minimal-c.vhd work/tb.o: $(BENCH_DIR)/tb.vhd $(ANALYZE) $(BENCH_DIR)/tb.vhd work/tb-c.o: $(BENCH_DIR)/tb-c.vhd \ work/tb.o \ work/tb_elem-full-c.o \ work/tb_elem-mmc-c.o \ work/tb_elem-sd-c.o \ work/tb_elem-minimal-c.o $(ANALYZE) $(BENCH_DIR)/tb-c.vhd work/tb_rl.o: $(BENCH_DIR)/tb_rl.vhd $(ANALYZE) $(BENCH_DIR)/tb_rl.vhd work/tb_rl-c.o: $(BENCH_DIR)/tb_rl-c.vhd \ work/tb_rl.o \ work/chip-full-c.o \ work/card-c.o \ work/ram_loader-c.o $(ANALYZE) $(BENCH_DIR)/tb_rl-c.vhd .PHONY: elaborate elaborate: tb_behav_c0 tb_rl_behav_c0 tb_behav_c0: work/tb-c.o $(ELABORATE) tb_behav_c0; \ strip tb_behav_c0 tb_rl_behav_c0: work/tb_rl-c.o $(ELABORATE) tb_rl_behav_c0; \ strip tb_rl_behav_c0 .PHONY: analyze analyze: work/tb-c.o work/tb_rl-c.o .PHONY: clean clean: rm -rf work tb_behav_c0 tb_rl_behav_c0 *~ uhd-3.5.5/fpga/usrp2/opencores/spi_boot/sw/000077500000000000000000000000001224274632000205425ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/sw/misc/000077500000000000000000000000001224274632000214755ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/spi_boot/sw/misc/bit_reverse.c000066400000000000000000000027431224274632000241600ustar00rootroot00000000000000// Altera requires configuration bytes to be sent LSB first but the // SD Card reads bytes MSB first // This code reverses the bits of the altera bitstream so // it will come out correct when read from the SD card // $Log: bit_reverse.c,v $ // Revision 1.1 2006/01/06 14:44:17 mbl // initial version // #include "stdio.h" #include "string.h" FILE* fileOut; FILE* fileIn; void outIOerror(char* pfn); void inIOerror(char* pfn); int main(int argc, char* arg[]) { unsigned char input, output; unsigned char in_mask, out_mask; int i; fileOut = fopen(arg[2],"wb"); if (fileOut == NULL) { outIOerror(arg[2]); exit(-1); } printf("Opening input file %s\n", arg[1]); fileIn = fopen(arg[1],"rb"); if (fileIn == NULL) { inIOerror(arg[1]); exit(-1); } while (!feof(fileIn) && fgets((char*)&input, 2 ,fileIn) != NULL) { in_mask = 1; out_mask = 0x80; output = 0; for ( i=0; i < 8; ++i ) { if (input & in_mask) { output |= out_mask; } out_mask = out_mask >> 1; in_mask = in_mask << 1; } fwrite((void*)&output,sizeof(char),1,fileOut); } fclose(fileIn); fclose(fileOut); printf("\n%s has been created\n", arg[2]); exit(0); } void outIOerror(char *pfn) { printf("I/O Error while writing to file=%s\n",pfn); } void inIOerror(char *pfn) { printf("I/O Error while reading file=%s\n",pfn); } uhd-3.5.5/fpga/usrp2/opencores/wb_zbt/000077500000000000000000000000001224274632000175625ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/wb_zbt/wb_zbt.v000066400000000000000000000103641224274632000212440ustar00rootroot00000000000000/* * Multi-port ZBT SRAM WISHBONE controller * Copyright (C) 2008 Sebastien Bourdeauducq - http://lekernel.net * This file is part of Milkymist. * * Milkymist is free software; you can redistribute it and/or modify it * under the terms of the GNU Library General Public License as published * by the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, * USA. */ module wb_zbt( input clk, input rst, // Wishbone bus A, highest priority, with prefetch input [31:0] wbA_adr_i, input [31:0] wbA_dat_i, output [31:0] wbA_dat_o, input [ 3:0] wbA_sel_i, input wbA_cyc_i, input wbA_stb_i, output wbA_ack_o, input wbA_we_i, // Wishbone bus B, lower priority input [31:0] wbB_adr_i, input [31:0] wbB_dat_i, output [31:0] wbB_dat_o, input [ 3:0] wbB_sel_i, input wbB_cyc_i, input wbB_stb_i, output wbB_ack_o, input wbB_we_i, // Memory connection output sram_clk, output [17:0] sram_a, inout [31:0] sram_d, output sram_we, output [ 3:0] sram_bw, output sram_adv, output sram_ce, output sram_oe, output sram_mode, output sram_zz ); assign sram_clk = clk; assign sram_oe = 1'b0; assign sram_ce = 1'b0; assign sram_adv = 1'b0; assign sram_mode = 1'b0; assign sram_zz = 1'b0; /* Wishbone decoding */ wire busA_active; wire busB_active; assign busA_active = wbA_cyc_i & wbA_stb_i; assign busB_active = wbB_cyc_i & wbB_stb_i; /* Those are used to represent the state of the SRAM pipeline * Bit 0 = Write Enable * Bits 18..1 = Address */ wire [18:0] pipeline_in; reg [18:0] pipeline_internal; reg [18:0] pipeline_out; always @(posedge clk or posedge rst) begin if(rst) begin pipeline_internal <= 0; pipeline_out <= 0; end else begin pipeline_internal <= pipeline_in; pipeline_out <= pipeline_internal; end end /* Pipeline contents decode */ wire inprogressA; wire inprogressB; assign inprogressA = (pipeline_internal[18:1] == wbA_adr_i[19:2]) & (pipeline_internal[0] == wbA_we_i); assign inprogressB = (pipeline_internal[18:1] == wbB_adr_i[19:2]) & (pipeline_internal[0] == wbB_we_i); wire hitA; wire hitB; assign hitA = (pipeline_out[18:1] == wbA_adr_i[19:2]) & (pipeline_out[0] == wbA_we_i); assign hitB = (pipeline_out[18:1] == wbB_adr_i[19:2]) & (pipeline_out[0] == wbB_we_i); /* Access arbitration */ wire [1:0] bus_request; assign bus_request[0] = busA_active & ~inprogressA & ~hitA; assign bus_request[1] = busB_active & ~inprogressB & ~hitB; wire prefetch_enable; reg [17:0] prefetch_address; assign prefetch_enable = ~bus_request[0] & ~bus_request[1]; always @(posedge clk) begin if(prefetch_enable) prefetch_address <= wbA_adr_i[19:2] + 2; else prefetch_address <= wbA_adr_i[19:2] + 1; end wire [1:0] bus_selected; assign bus_selected[0] = bus_request[0]; assign bus_selected[1] = bus_request[1] & ~bus_request[0]; assign pipeline_in[18:1] = ({18{bus_selected[0]}} & wbA_adr_i[19:2]) | ({18{bus_selected[1]}} & wbB_adr_i[19:2]) | ({18{prefetch_enable}} & prefetch_address); assign pipeline_in[0] = (bus_selected[0] & wbA_we_i)|(bus_selected[1] & wbB_we_i); /* SRAM control */ assign sram_a = pipeline_in[18:1]; assign sram_bw = ~(({4{bus_selected[0]}} & wbA_sel_i)|({4{bus_selected[1]}} & wbB_sel_i)); assign sram_we = ~pipeline_in[0]; /* SRAM data */ wire [31:0] bus_wdata; assign wbA_ack_o = busA_active & hitA; assign wbB_ack_o = busB_active & hitB; assign bus_wdata = ({32{hitA}} & wbA_dat_i)|({32{hitB}} & wbB_dat_i); assign sram_d = pipeline_out[0] ? bus_wdata : 32'hzzzzzzzz; assign wbA_dat_o = sram_d; assign wbB_dat_o = sram_d; endmodule uhd-3.5.5/fpga/usrp2/opencores/zpu/000077500000000000000000000000001224274632000171115ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/zpu/core/000077500000000000000000000000001224274632000200415ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/zpu/core/zpu_config.vhd000066400000000000000000000013141224274632000227060ustar00rootroot00000000000000library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; package zpu_config is -- generate trace output or not. constant Generate_Trace : boolean := false; constant wordPower : integer := 5; -- during simulation, set this to '0' to get matching trace.txt constant DontCareValue : std_logic := '0'; -- Clock frequency in MHz. constant ZPU_Frequency : std_logic_vector(7 downto 0) := x"40"; -- This is the msb address bit. bytes=2^(maxAddrBitIncIO+1) constant maxAddrBitIncIO : integer := 15; -- start byte address of stack. -- point to top of RAM - 2*words constant spStart : std_logic_vector(maxAddrBitIncIO downto 0) := x"3ff8"; end zpu_config; uhd-3.5.5/fpga/usrp2/opencores/zpu/core/zpu_core.vhd000066400000000000000000000631671224274632000224070ustar00rootroot00000000000000 -- Company: ZPU4 generic memory interface CPU -- Engineer: Øyvind Harboe library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; use IEEE.STD_LOGIC_arith.ALL; library work; use work.zpu_config.all; use work.zpupkg.all; entity zpu_core is Port ( clk : in std_logic; areset : in std_logic; enable : in std_logic; mem_req : out std_logic; mem_we : out std_logic; mem_ack : in std_logic; mem_read : in std_logic_vector(wordSize-1 downto 0); mem_write : out std_logic_vector(wordSize-1 downto 0); out_mem_addr : out std_logic_vector(maxAddrBitIncIO downto 0); mem_writeMask: out std_logic_vector(wordBytes-1 downto 0); interrupt : in std_logic; break : out std_logic; zpu_status : out std_logic_vector(63 downto 0)); end zpu_core; architecture behave of zpu_core is type InsnType is ( State_AddTop, State_Dup, State_DupStackB, State_Pop, State_Popdown, State_Add, State_Or, State_And, State_Store, State_AddSP, State_Shift, State_Nop, State_Im, State_LoadSP, State_StoreSP, State_Emulate, State_Load, State_PushPC, State_PushSP, State_PopPC, State_PopPCRel, State_Not, State_Flip, State_PopSP, State_Neqbranch, State_Eq, State_Loadb, State_Mult, State_Lessthan, State_Lessthanorequal, State_Ulessthanorequal, State_Ulessthan, State_Pushspadd, State_Call, State_Callpcrel, State_Sub, State_Break, State_Storeb, State_Interrupt, State_InsnFetch ); type StateType is ( State_Idle, -- using first state first on the list out of paranoia State_Load2, State_Popped, State_LoadSP2, State_LoadSP3, State_AddSP2, State_Fetch, State_Execute, State_Decode, State_Decode2, State_Resync, State_StoreSP2, State_Resync2, State_Resync3, State_Loadb2, State_Storeb2, State_Mult2, State_Mult3, State_Mult5, State_Mult6, State_Mult4, State_BinaryOpResult ); signal pc : std_logic_vector(maxAddrBitIncIO downto 0); signal sp : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal incSp : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal incIncSp : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal decSp : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal stackA : std_logic_vector(wordSize-1 downto 0); signal binaryOpResult : std_logic_vector(wordSize-1 downto 0); signal multResult2 : std_logic_vector(wordSize-1 downto 0); signal multResult3 : std_logic_vector(wordSize-1 downto 0); signal multResult : std_logic_vector(wordSize-1 downto 0); signal multA : std_logic_vector(wordSize-1 downto 0); signal multB : std_logic_vector(wordSize-1 downto 0); signal stackB : std_logic_vector(wordSize-1 downto 0); signal idim_flag : std_logic; signal busy : std_logic; signal mem_readEnable : std_logic; signal mem_addr : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal mem_delayAddr : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal mem_delayReadEnable : std_logic; signal mem_busy : std_logic; signal decodeWord : std_logic_vector(wordSize-1 downto 0); signal state : StateType; signal insn : InsnType; type InsnArray is array(0 to wordBytes-1) of InsnType; signal decodedOpcode : InsnArray; type OpcodeArray is array(0 to wordBytes-1) of std_logic_vector(7 downto 0); signal opcode : OpcodeArray; signal begin_inst : std_logic; signal trace_opcode : std_logic_vector(7 downto 0); signal trace_pc : std_logic_vector(maxAddrBitIncIO downto 0); signal trace_sp : std_logic_vector(maxAddrBitIncIO downto minAddrBit); signal trace_topOfStack : std_logic_vector(wordSize-1 downto 0); signal trace_topOfStackB : std_logic_vector(wordSize-1 downto 0); signal out_mem_req : std_logic; signal inInterrupt : std_logic; -- state machine. begin zpu_status(maxAddrBitIncIO downto 0) <= trace_pc; zpu_status(31) <= '1'; zpu_status(39 downto 32) <= trace_opcode; zpu_status(40) <= '1' when (state = State_Idle) else '0'; zpu_status(62) <= '1'; traceFileGenerate: if Generate_Trace generate trace_file: trace port map ( clk => clk, begin_inst => begin_inst, pc => trace_pc, opcode => trace_opcode, sp => trace_sp, memA => trace_topOfStack, memB => trace_topOfStackB, busy => busy, intsp => (others => 'U') ); end generate; -- the memory subsystem will tell us one cycle later whether or -- not it is busy out_mem_addr(maxAddrBitIncIO downto minAddrBit) <= mem_addr; out_mem_addr(minAddrBit-1 downto 0) <= (others => '0'); mem_req <= out_mem_req; incSp <= sp + 1; incIncSp <= sp + 2; decSp <= sp - 1; mem_busy <= out_mem_req and not mem_ack; -- '1' when the memory is busy opcodeControl: process(clk, areset) variable tOpcode : std_logic_vector(OpCode_Size-1 downto 0); variable spOffset : std_logic_vector(4 downto 0); variable tSpOffset : std_logic_vector(4 downto 0); variable nextPC : std_logic_vector(maxAddrBitIncIO downto 0); variable tNextState : InsnType; variable tDecodedOpcode : InsnArray; variable tMultResult : std_logic_vector(wordSize*2-1 downto 0); begin if areset = '1' then state <= State_Idle; break <= '0'; sp <= spStart(maxAddrBitIncIO downto minAddrBit); pc <= (others => '0'); idim_flag <= '0'; begin_inst <= '0'; mem_we <= '0'; multA <= (others => '0'); multB <= (others => '0'); mem_writeMask <= (others => '1'); out_mem_req <= '0'; mem_addr <= (others => DontCareValue); mem_write <= (others => DontCareValue); inInterrupt <= '0'; elsif (clk'event and clk = '1') then -- we must multiply unconditionally to get pipelined multiplication tMultResult := multA * multB; multResult3 <= multResult2; multResult2 <= multResult; multResult <= tMultResult(wordSize-1 downto 0); spOffset(4):=not opcode(conv_integer(pc(byteBits-1 downto 0)))(4); spOffset(3 downto 0):=opcode(conv_integer(pc(byteBits-1 downto 0)))(3 downto 0); nextPC := pc + 1; -- prepare trace snapshot trace_opcode <= opcode(conv_integer(pc(byteBits-1 downto 0))); trace_pc <= pc; trace_sp <= sp; trace_topOfStack <= stackA; trace_topOfStackB <= stackB; begin_inst <= '0'; -- we terminate the requeset as soon as we get acknowledge if mem_ack = '1' then out_mem_req <= '0'; mem_we <= '0'; end if; if interrupt='0' then inInterrupt <= '0'; -- no longer in an interrupt end if; case state is when State_Idle => if enable='1' then state <= State_Resync; end if; -- Initial state of ZPU, fetch top of stack + first instruction when State_Resync => if mem_busy='0' then mem_addr <= sp; out_mem_req <= '1'; state <= State_Resync2; end if; when State_Resync2 => if mem_busy='0' then stackA <= mem_read; mem_addr <= incSp; out_mem_req <= '1'; state <= State_Resync3; end if; when State_Resync3 => if mem_busy='0' then stackB <= mem_read; mem_addr <= pc(maxAddrBitIncIO downto minAddrBit); out_mem_req <= '1'; state <= State_Decode; end if; when State_Decode => if mem_busy='0' then decodeWord <= mem_read; state <= State_Decode2; end if; when State_Decode2 => -- decode 4 instructions in parallel for i in 0 to wordBytes-1 loop tOpcode := decodeWord((wordBytes-1-i+1)*8-1 downto (wordBytes-1-i)*8); tSpOffset(4):=not tOpcode(4); tSpOffset(3 downto 0):=tOpcode(3 downto 0); opcode(i) <= tOpcode; if (tOpcode(7 downto 7)=OpCode_Im) then tNextState:=State_Im; elsif (tOpcode(7 downto 5)=OpCode_StoreSP) then if tSpOffset = 0 then tNextState := State_Pop; elsif tSpOffset=1 then tNextState := State_PopDown; else tNextState :=State_StoreSP; end if; elsif (tOpcode(7 downto 5)=OpCode_LoadSP) then if tSpOffset = 0 then tNextState :=State_Dup; elsif tSpOffset = 1 then tNextState :=State_DupStackB; else tNextState :=State_LoadSP; end if; elsif (tOpcode(7 downto 5)=OpCode_Emulate) then tNextState :=State_Emulate; if tOpcode(5 downto 0)=OpCode_Neqbranch then tNextState :=State_Neqbranch; elsif tOpcode(5 downto 0)=OpCode_Eq then tNextState :=State_Eq; elsif tOpcode(5 downto 0)=OpCode_Lessthan then tNextState :=State_Lessthan; elsif tOpcode(5 downto 0)=OpCode_Lessthanorequal then --tNextState :=State_Lessthanorequal; elsif tOpcode(5 downto 0)=OpCode_Ulessthan then tNextState :=State_Ulessthan; elsif tOpcode(5 downto 0)=OpCode_Ulessthanorequal then --tNextState :=State_Ulessthanorequal; elsif tOpcode(5 downto 0)=OpCode_Loadb then tNextState :=State_Loadb; elsif tOpcode(5 downto 0)=OpCode_Mult then tNextState :=State_Mult; elsif tOpcode(5 downto 0)=OpCode_Storeb then tNextState :=State_Storeb; elsif tOpcode(5 downto 0)=OpCode_Pushspadd then tNextState :=State_Pushspadd; elsif tOpcode(5 downto 0)=OpCode_Callpcrel then tNextState :=State_Callpcrel; elsif tOpcode(5 downto 0)=OpCode_Call then --tNextState :=State_Call; elsif tOpcode(5 downto 0)=OpCode_Sub then tNextState :=State_Sub; elsif tOpcode(5 downto 0)=OpCode_PopPCRel then --tNextState :=State_PopPCRel; end if; elsif (tOpcode(7 downto 4)=OpCode_AddSP) then if tSpOffset = 0 then tNextState := State_Shift; elsif tSpOffset = 1 then tNextState := State_AddTop; else tNextState :=State_AddSP; end if; else case tOpcode(3 downto 0) is when OpCode_Nop => tNextState :=State_Nop; when OpCode_PushSP => tNextState :=State_PushSP; when OpCode_PopPC => tNextState :=State_PopPC; when OpCode_Add => tNextState :=State_Add; when OpCode_Or => tNextState :=State_Or; when OpCode_And => tNextState :=State_And; when OpCode_Load => tNextState :=State_Load; when OpCode_Not => tNextState :=State_Not; when OpCode_Flip => tNextState :=State_Flip; when OpCode_Store => tNextState :=State_Store; when OpCode_PopSP => tNextState :=State_PopSP; when others => tNextState := State_Break; end case; end if; tDecodedOpcode(i) := tNextState; end loop; insn <= tDecodedOpcode(conv_integer(pc(byteBits-1 downto 0))); -- once we wrap, we need to fetch tDecodedOpcode(0) := State_InsnFetch; decodedOpcode <= tDecodedOpcode; state <= State_Execute; -- Each instruction must: -- -- 1. set idim_flag -- 2. increase pc if applicable -- 3. set next state if appliable -- 4. do it's operation when State_Execute => insn <= decodedOpcode(conv_integer(nextPC(byteBits-1 downto 0))); case insn is when State_InsnFetch => state <= State_Fetch; when State_Im => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '1'; pc <= pc + 1; if idim_flag='1' then stackA(wordSize-1 downto 7) <= stackA(wordSize-8 downto 0); stackA(6 downto 0) <= opcode(conv_integer(pc(byteBits-1 downto 0)))(6 downto 0); else out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; stackB <= stackA; sp <= decSp; for i in wordSize-1 downto 7 loop stackA(i) <= opcode(conv_integer(pc(byteBits-1 downto 0)))(6); end loop; stackA(6 downto 0) <= opcode(conv_integer(pc(byteBits-1 downto 0)))(6 downto 0); end if; else insn <= insn; end if; when State_StoreSP => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; state <= State_StoreSP2; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= sp+spOffset; mem_write <= stackA; stackA <= stackB; sp <= incSp; else insn <= insn; end if; when State_LoadSP => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; state <= State_LoadSP2; sp <= decSp; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; else insn <= insn; end if; when State_Emulate => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; sp <= decSp; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; stackA <= (others => DontCareValue); stackA(maxAddrBitIncIO downto 0) <= pc + 1; stackB <= stackA; -- The emulate address is: -- 98 7654 3210 -- 0000 00aa aaa0 0000 pc <= (others => '0'); pc(9 downto 5) <= opcode(conv_integer(pc(byteBits-1 downto 0)))(4 downto 0); state <= State_Fetch; else insn <= insn; end if; when State_Callpcrel => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; stackA <= (others => DontCareValue); stackA(maxAddrBitIncIO downto 0) <= pc + 1; pc <= pc + stackA(maxAddrBitIncIO downto 0); state <= State_Fetch; else insn <= insn; end if; when State_Call => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; stackA <= (others => DontCareValue); stackA(maxAddrBitIncIO downto 0) <= pc + 1; pc <= stackA(maxAddrBitIncIO downto 0); state <= State_Fetch; else insn <= insn; end if; when State_AddSP => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; state <= State_AddSP2; out_mem_req <= '1'; mem_addr <= sp+spOffset; else insn <= insn; end if; when State_PushSP => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; sp <= decSp; stackA <= (others => '0'); stackA(maxAddrBitIncIO downto minAddrBit) <= sp; stackB <= stackA; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; else insn <= insn; end if; when State_PopPC => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= stackA(maxAddrBitIncIO downto 0); sp <= incSp; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; state <= State_Resync; else insn <= insn; end if; when State_PopPCRel => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= stackA(maxAddrBitIncIO downto 0) + pc; sp <= incSp; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; state <= State_Resync; else insn <= insn; end if; when State_Add => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; stackA <= stackA + stackB; out_mem_req <= '1'; mem_addr <= incIncSp; sp <= incSp; state <= State_Popped; else insn <= insn; end if; when State_Sub => begin_inst <= '1'; idim_flag <= '0'; binaryOpResult <= stackB - stackA; state <= State_BinaryOpResult; when State_Pop => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; mem_addr <= incIncSp; out_mem_req <= '1'; sp <= incSp; stackA <= stackB; state <= State_Popped; else insn <= insn; end if; when State_PopDown => if mem_busy='0' then -- PopDown leaves top of stack unchanged begin_inst <= '1'; idim_flag <= '0'; mem_addr <= incIncSp; out_mem_req <= '1'; sp <= incSp; state <= State_Popped; else insn <= insn; end if; when State_Or => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; stackA <= stackA or stackB; out_mem_req <= '1'; mem_addr <= incIncSp; sp <= incSp; state <= State_Popped; else insn <= insn; end if; when State_And => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; stackA <= stackA and stackB; out_mem_req <= '1'; mem_addr <= incIncSp; sp <= incSp; state <= State_Popped; else insn <= insn; end if; when State_Eq => begin_inst <= '1'; idim_flag <= '0'; binaryOpResult <= (others => '0'); if (stackA=stackB) then binaryOpResult(0) <= '1'; end if; state <= State_BinaryOpResult; when State_Ulessthan => begin_inst <= '1'; idim_flag <= '0'; binaryOpResult <= (others => '0'); if (stackA begin_inst <= '1'; idim_flag <= '0'; binaryOpResult <= (others => '0'); if (stackA<=stackB) then binaryOpResult(0) <= '1'; end if; state <= State_BinaryOpResult; when State_Lessthan => begin_inst <= '1'; idim_flag <= '0'; binaryOpResult <= (others => '0'); if (signed(stackA) begin_inst <= '1'; idim_flag <= '0'; binaryOpResult <= (others => '0'); if (signed(stackA)<=signed(stackB)) then binaryOpResult(0) <= '1'; end if; state <= State_BinaryOpResult; when State_Load => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; state <= State_Load2; mem_addr <= stackA(maxAddrBitIncIO downto minAddrBit); out_mem_req <= '1'; else insn <= insn; end if; when State_Dup => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; sp <= decSp; stackB <= stackA; mem_write <= stackB; mem_addr <= incSp; out_mem_req <= '1'; mem_we <= '1'; else insn <= insn; end if; when State_DupStackB => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; sp <= decSp; stackA <= stackB; stackB <= stackA; mem_write <= stackB; mem_addr <= incSp; out_mem_req <= '1'; mem_we <= '1'; else insn <= insn; end if; when State_Store => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; mem_addr <= stackA(maxAddrBitIncIO downto minAddrBit); mem_write <= stackB; out_mem_req <= '1'; mem_we <= '1'; sp <= incIncSp; state <= State_Resync; else insn <= insn; end if; when State_PopSP => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; mem_write <= stackB; mem_addr <= incSp; out_mem_req <= '1'; mem_we <= '1'; sp <= stackA(maxAddrBitIncIO downto minAddrBit); state <= State_Resync; else insn <= insn; end if; when State_Nop => begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; when State_Not => begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; stackA <= not stackA; when State_Flip => begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; for i in 0 to wordSize-1 loop stackA(i) <= stackA(wordSize-1-i); end loop; when State_AddTop => begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; stackA <= stackA + stackB; when State_Shift => begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; stackA(wordSize-1 downto 1) <= stackA(wordSize-2 downto 0); stackA(0) <= '0'; when State_Pushspadd => begin_inst <= '1'; idim_flag <= '0'; pc <= pc + 1; stackA <= (others => '0'); stackA(maxAddrBitIncIO downto minAddrBit) <= stackA(maxAddrBitIncIO-minAddrBit downto 0)+sp; when State_Neqbranch => -- branches are almost always taken as they form loops begin_inst <= '1'; idim_flag <= '0'; sp <= incIncSp; if (stackB/=0) then pc <= stackA(maxAddrBitIncIO downto 0) + pc; else pc <= pc + 1; end if; -- need to fetch stack again. state <= State_Resync; when State_Mult => begin_inst <= '1'; idim_flag <= '0'; multA <= stackA; multB <= stackB; state <= State_Mult2; when State_Break => report "Break instruction encountered" severity failure; break <= '1'; when State_Loadb => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; state <= State_Loadb2; mem_addr <= stackA(maxAddrBitIncIO downto minAddrBit); out_mem_req <= '1'; else insn <= insn; end if; when State_Storeb => if mem_busy='0' then begin_inst <= '1'; idim_flag <= '0'; state <= State_Storeb2; mem_addr <= stackA(maxAddrBitIncIO downto minAddrBit); out_mem_req <= '1'; else insn <= insn; end if; when others => -- sp <= (others => DontCareValue); report "Illegal instruction" severity failure; break <= '1'; end case; when State_StoreSP2 => if mem_busy='0' then mem_addr <= incSp; out_mem_req <= '1'; state <= State_Popped; end if; when State_LoadSP2 => if mem_busy='0' then state <= State_LoadSP3; out_mem_req <= '1'; mem_addr <= sp+spOffset+1; end if; when State_LoadSP3 => if mem_busy='0' then pc <= pc + 1; state <= State_Execute; stackB <= stackA; stackA <= mem_read; end if; when State_AddSP2 => if mem_busy='0' then pc <= pc + 1; state <= State_Execute; stackA <= stackA + mem_read; end if; when State_Load2 => if mem_busy='0' then stackA <= mem_read; pc <= pc + 1; state <= State_Execute; end if; when State_Loadb2 => if mem_busy='0' then stackA <= (others => '0'); stackA(7 downto 0) <= mem_read(((wordBytes-1-conv_integer(stackA(byteBits-1 downto 0)))*8+7) downto (wordBytes-1-conv_integer(stackA(byteBits-1 downto 0)))*8); pc <= pc + 1; state <= State_Execute; end if; when State_Storeb2 => if mem_busy='0' then mem_addr <= stackA(maxAddrBitIncIO downto minAddrBit); mem_write <= mem_read; mem_write(((wordBytes-1-conv_integer(stackA(byteBits-1 downto 0)))*8+7) downto (wordBytes-1-conv_integer(stackA(byteBits-1 downto 0)))*8) <= stackB(7 downto 0) ; out_mem_req <= '1'; mem_we <= '1'; pc <= pc + 1; sp <= incIncSp; state <= State_Resync; end if; when State_Fetch => if mem_busy='0' then if interrupt='1' and inInterrupt='0' and idim_flag='0' then -- We got an interrupt inInterrupt <= '1'; sp <= decSp; out_mem_req <= '1'; mem_we <= '1'; mem_addr <= incSp; mem_write <= stackB; stackA <= (others => DontCareValue); stackA(maxAddrBitIncIO downto 0) <= pc; stackB <= stackA; pc <= conv_std_logic_vector(32, maxAddrBitIncIo+1); -- interrupt address report "ZPU jumped to interrupt!" severity note; else mem_addr <= pc(maxAddrBitIncIO downto minAddrBit); out_mem_req <= '1'; state <= State_Decode; end if; end if; when State_Mult2 => state <= State_Mult3; when State_Mult3 => state <= State_Mult4; when State_Mult4 => state <= State_Mult5; when State_Mult5 => stackA <= multResult3; state <= State_Mult6; when State_Mult6 => if mem_busy='0' then out_mem_req <= '1'; mem_addr <= incIncSp; sp <= incSp; state <= State_Popped; end if; when State_BinaryOpResult => if mem_busy='0' then -- NB!!!! we know that the memory isn't busy at this point!!!! out_mem_req <= '1'; mem_addr <= incIncSp; sp <= incSp; stackA <= binaryOpResult; state <= State_Popped; end if; when State_Popped => if mem_busy='0' then pc <= pc + 1; stackB <= mem_read; state <= State_Execute; end if; when others => -- sp <= (others => DontCareValue); report "Illegal state" severity failure; break <= '1'; end case; end if; end process; end behave; uhd-3.5.5/fpga/usrp2/opencores/zpu/core/zpupkg.vhd000066400000000000000000000157571224274632000221030ustar00rootroot00000000000000library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_ARITH.all; library work; use work.zpu_config.all; package zpupkg is -- This bit is set for read/writes to IO -- FIX!!! eventually this should be set to wordSize-1 so as to -- to make the address of IO independent of amount of memory -- reserved for CPU. Requires trivial tweaks in toolchain/runtime -- libraries. constant byteBits : integer := wordPower-3; -- # of bits in a word that addresses bytes constant maxAddrBit : integer := maxAddrBitIncIO-1; constant ioBit : integer := maxAddrBit+1; constant wordSize : integer := 2**wordPower; constant wordBytes : integer := wordSize/8; constant minAddrBit : integer := byteBits; -- configurable internal stack size. Probably going to be 16 after toolchain is done constant stack_bits : integer := 5; constant stack_size : integer := 2**stack_bits; component dualport_ram is port (clk : in std_logic; memAWriteEnable : in std_logic; memAAddr : in std_logic_vector(maxAddrBit downto minAddrBit); memAWrite : in std_logic_vector(wordSize-1 downto 0); memARead : out std_logic_vector(wordSize-1 downto 0); memBWriteEnable : in std_logic; memBAddr : in std_logic_vector(maxAddrBit downto minAddrBit); memBWrite : in std_logic_vector(wordSize-1 downto 0); memBRead : out std_logic_vector(wordSize-1 downto 0)); end component; component dram is port (clk : in std_logic; areset : in std_logic; mem_writeEnable : in std_logic; mem_readEnable : in std_logic; mem_addr : in std_logic_vector(maxAddrBit downto 0); mem_write : in std_logic_vector(wordSize-1 downto 0); mem_read : out std_logic_vector(wordSize-1 downto 0); mem_busy : out std_logic; mem_writeMask : in std_logic_vector(wordBytes-1 downto 0)); end component; component trace is port( clk : in std_logic; begin_inst : in std_logic; pc : in std_logic_vector(maxAddrBitIncIO downto 0); opcode : in std_logic_vector(7 downto 0); sp : in std_logic_vector(maxAddrBitIncIO downto minAddrBit); memA : in std_logic_vector(wordSize-1 downto 0); memB : in std_logic_vector(wordSize-1 downto 0); busy : in std_logic; intSp : in std_logic_vector(stack_bits-1 downto 0) ); end component; component zpu_core is port ( clk : in std_logic; areset : in std_logic; enable : in std_logic; mem_req : out std_logic; mem_we : out std_logic; mem_ack : in std_logic; mem_read : in std_logic_vector(wordSize-1 downto 0); mem_write : out std_logic_vector(wordSize-1 downto 0); out_mem_addr : out std_logic_vector(maxAddrBitIncIO downto 0); mem_writeMask: out std_logic_vector(wordBytes-1 downto 0); interrupt : in std_logic; break : out std_logic; zpu_status : out std_logic_vector(63 downto 0)); end component; component timer is port( clk : in std_logic; areset : in std_logic; sample : in std_logic; reset : in std_logic; counter : out std_logic_vector(63 downto 0)); end component; component zpuio is port ( areset : in std_logic; cpu_clk : in std_logic; clk_status : in std_logic_vector(2 downto 0); cpu_din : in std_logic_vector(15 downto 0); cpu_a : in std_logic_vector(20 downto 0); cpu_we : in std_logic_vector(1 downto 0); cpu_re : in std_logic; cpu_dout : inout std_logic_vector(15 downto 0)); end component; -- opcode decode constants constant OpCode_Im : std_logic_vector(7 downto 7) := "1"; constant OpCode_StoreSP : std_logic_vector(7 downto 5) := "010"; constant OpCode_LoadSP : std_logic_vector(7 downto 5) := "011"; constant OpCode_Emulate : std_logic_vector(7 downto 5) := "001"; constant OpCode_AddSP : std_logic_vector(7 downto 4) := "0001"; constant OpCode_Short : std_logic_vector(7 downto 4) := "0000"; constant OpCode_Break : std_logic_vector(3 downto 0) := "0000"; constant OpCode_Shiftleft: std_logic_vector(3 downto 0) := "0001"; constant OpCode_PushSP : std_logic_vector(3 downto 0) := "0010"; constant OpCode_PushInt : std_logic_vector(3 downto 0) := "0011"; constant OpCode_PopPC : std_logic_vector(3 downto 0) := "0100"; constant OpCode_Add : std_logic_vector(3 downto 0) := "0101"; constant OpCode_And : std_logic_vector(3 downto 0) := "0110"; constant OpCode_Or : std_logic_vector(3 downto 0) := "0111"; constant OpCode_Load : std_logic_vector(3 downto 0) := "1000"; constant OpCode_Not : std_logic_vector(3 downto 0) := "1001"; constant OpCode_Flip : std_logic_vector(3 downto 0) := "1010"; constant OpCode_Nop : std_logic_vector(3 downto 0) := "1011"; constant OpCode_Store : std_logic_vector(3 downto 0) := "1100"; constant OpCode_PopSP : std_logic_vector(3 downto 0) := "1101"; constant OpCode_Compare : std_logic_vector(3 downto 0) := "1110"; constant OpCode_PopInt : std_logic_vector(3 downto 0) := "1111"; constant OpCode_Lessthan : std_logic_vector(5 downto 0) := conv_std_logic_vector(36, 6); constant OpCode_Lessthanorequal : std_logic_vector(5 downto 0) := conv_std_logic_vector(37, 6); constant OpCode_Ulessthan : std_logic_vector(5 downto 0) := conv_std_logic_vector(38, 6); constant OpCode_Ulessthanorequal : std_logic_vector(5 downto 0) := conv_std_logic_vector(39, 6); constant OpCode_Swap : std_logic_vector(5 downto 0) := conv_std_logic_vector(40, 6); constant OpCode_Mult : std_logic_vector(5 downto 0) := conv_std_logic_vector(41, 6); constant OpCode_Lshiftright : std_logic_vector(5 downto 0) := conv_std_logic_vector(42, 6); constant OpCode_Ashiftleft : std_logic_vector(5 downto 0) := conv_std_logic_vector(43, 6); constant OpCode_Ashiftright : std_logic_vector(5 downto 0) := conv_std_logic_vector(44, 6); constant OpCode_Call : std_logic_vector(5 downto 0) := conv_std_logic_vector(45, 6); constant OpCode_Eq : std_logic_vector(5 downto 0) := conv_std_logic_vector(46, 6); constant OpCode_Neq : std_logic_vector(5 downto 0) := conv_std_logic_vector(47, 6); constant OpCode_Sub : std_logic_vector(5 downto 0) := conv_std_logic_vector(49, 6); constant OpCode_Loadb : std_logic_vector(5 downto 0) := conv_std_logic_vector(51, 6); constant OpCode_Storeb : std_logic_vector(5 downto 0) := conv_std_logic_vector(52, 6); constant OpCode_Eqbranch : std_logic_vector(5 downto 0) := conv_std_logic_vector(55, 6); constant OpCode_Neqbranch : std_logic_vector(5 downto 0) := conv_std_logic_vector(56, 6); constant OpCode_Poppcrel : std_logic_vector(5 downto 0) := conv_std_logic_vector(57, 6); constant OpCode_Pushspadd : std_logic_vector(5 downto 0) := conv_std_logic_vector(61, 6); constant OpCode_Mult16x16 : std_logic_vector(5 downto 0) := conv_std_logic_vector(62, 6); constant OpCode_Callpcrel : std_logic_vector(5 downto 0) := conv_std_logic_vector(63, 6); constant OpCode_Size : integer := 8; end zpupkg; uhd-3.5.5/fpga/usrp2/opencores/zpu/wishbone/000077500000000000000000000000001224274632000207275ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/opencores/zpu/wishbone/wishbone_pkg.vhd000066400000000000000000000056521224274632000241210ustar00rootroot00000000000000-- ZPU -- -- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com -- -- The FreeBSD license -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: -- -- 1. Redistributions of source code must retain the above copyright -- notice, this list of conditions and the following disclaimer. -- 2. Redistributions in binary form must reproduce the above -- copyright notice, this list of conditions and the following -- disclaimer in the documentation and/or other materials -- provided with the distribution. -- -- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY -- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- -- The views and conclusions contained in the software and documentation -- are those of the authors and should not be interpreted as representing -- official policies, either expressed or implied, of the ZPU Project. library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; package wishbone_pkg is type wishbone_bus_in is record adr : std_logic_vector(15 downto 0); sel : std_logic_vector(3 downto 0); we : std_logic; dat : std_logic_vector(31 downto 0); -- Note! Data written with 'we' cyc : std_logic; stb : std_logic; end record; type wishbone_bus_out is record dat : std_logic_vector(31 downto 0); ack : std_logic; end record; type wishbone_bus is record insig : wishbone_bus_in; outsig : wishbone_bus_out; end record; component atomic32_access is port ( cpu_clk : in std_logic; areset : in std_logic; -- Wishbone from CPU interface wb_16_i : in wishbone_bus_in; wb_16_o : out wishbone_bus_out; -- Wishbone to FPGA registers and ethernet core wb_32_i : in wishbone_bus_out; wb_32_o : out wishbone_bus_in); end component; component eth_access_corr is port ( cpu_clk : in std_logic; areset : in std_logic; -- Wishbone from Wishbone MUX eth_raw_o : out wishbone_bus_out; eth_raw_i : in wishbone_bus_in; -- Wishbone ethernet core eth_slave_i : in wishbone_bus_out; eth_slave_o : out wishbone_bus_in); end component; end wishbone_pkg; uhd-3.5.5/fpga/usrp2/opencores/zpu/wishbone/zpu_system.vhd000066400000000000000000000066201224274632000236600ustar00rootroot00000000000000-- ZPU -- -- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com -- -- The FreeBSD license -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: -- -- 1. Redistributions of source code must retain the above copyright -- notice, this list of conditions and the following disclaimer. -- 2. Redistributions in binary form must reproduce the above -- copyright notice, this list of conditions and the following -- disclaimer in the documentation and/or other materials -- provided with the distribution. -- -- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY -- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- -- The views and conclusions contained in the software and documentation -- are those of the authors and should not be interpreted as representing -- official policies, either expressed or implied, of the ZPU Project. library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; library work; use work.zpu_top_pkg.all; use work.wishbone_pkg.all; use work.zpupkg.all; use work.zpu_config.all; entity zpu_system is generic( simulate : boolean := false); port ( areset : in std_logic; cpu_clk : in std_logic; -- ZPU Control signals enable : in std_logic; interrupt : in std_logic; zpu_status : out std_logic_vector(63 downto 0); -- wishbone interfaces zpu_wb_i : in wishbone_bus_out; zpu_wb_o : out wishbone_bus_in); end zpu_system; architecture behave of zpu_system is signal mem_req : std_logic; signal mem_we : std_logic; signal mem_ack : std_logic; signal mem_read : std_logic_vector(wordSize-1 downto 0); signal mem_write : std_logic_vector(wordSize-1 downto 0); signal out_mem_addr : std_logic_vector(maxAddrBitIncIO downto 0); signal mem_writeMask : std_logic_vector(wordBytes-1 downto 0); begin my_zpu_core: zpu_core port map ( clk => cpu_clk, areset => areset, enable => enable, mem_req => mem_req, mem_we => mem_we, mem_ack => mem_ack, mem_read => mem_read, mem_write => mem_write, out_mem_addr => out_mem_addr, mem_writeMask => mem_writeMask, interrupt => interrupt, zpu_status => zpu_status, break => open); my_zpu_wb_bridge: zpu_wb_bridge port map ( clk => cpu_clk, areset => areset, mem_req => mem_req, mem_we => mem_we, mem_ack => mem_ack, mem_read => mem_read, mem_write => mem_write, out_mem_addr => out_mem_addr, mem_writeMask => mem_writeMask, zpu_wb_i => zpu_wb_i, zpu_wb_o => zpu_wb_o); end behave; uhd-3.5.5/fpga/usrp2/opencores/zpu/wishbone/zpu_wb_bridge.vhd000066400000000000000000000053341224274632000242610ustar00rootroot00000000000000-- ZPU -- -- Copyright 2004-2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com -- -- The FreeBSD license -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions -- are met: -- -- 1. Redistributions of source code must retain the above copyright -- notice, this list of conditions and the following disclaimer. -- 2. Redistributions in binary form must reproduce the above -- copyright notice, this list of conditions and the following -- disclaimer in the documentation and/or other materials -- provided with the distribution. -- -- THIS SOFTWARE IS PROVIDED BY THE ZPU PROJECT ``AS IS'' AND ANY -- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -- PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -- ZPU PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -- -- The views and conclusions contained in the software and documentation -- are those of the authors and should not be interpreted as representing -- official policies, either expressed or implied, of the ZPU Project. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; library work; use work.zpu_top_pkg.all; use work.wishbone_pkg.all; use work.zpupkg.all; use work.zpu_config.all; entity zpu_wb_bridge is port ( -- Native ZPU interface clk : in std_logic; areset : in std_logic; mem_req : in std_logic; mem_we : in std_logic; mem_ack : out std_logic; mem_read : out std_logic_vector(wordSize-1 downto 0); mem_write : in std_logic_vector(wordSize-1 downto 0); out_mem_addr : in std_logic_vector(maxAddrBitIncIO downto 0); mem_writeMask : in std_logic_vector(wordBytes-1 downto 0); -- Wishbone from ZPU zpu_wb_i : in wishbone_bus_out; zpu_wb_o : out wishbone_bus_in); end zpu_wb_bridge; architecture behave of zpu_wb_bridge is begin mem_read <= zpu_wb_i.dat; mem_ack <= zpu_wb_i.ack; zpu_wb_o.adr <= out_mem_addr; zpu_wb_o.dat <= mem_write; zpu_wb_o.sel <= mem_writeMask; zpu_wb_o.stb <= mem_req; zpu_wb_o.cyc <= mem_req; zpu_wb_o.we <= mem_we; end behave; uhd-3.5.5/fpga/usrp2/opencores/zpu/zpu_top_pkg.vhd000066400000000000000000000025551224274632000221640ustar00rootroot00000000000000library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; library work; use work.zpupkg.all; use work.zpu_config.all; use work.wishbone_pkg.all; package zpu_top_pkg is component zpu_wb_bridge is port ( -- Native ZPU interface clk : in std_logic; areset : in std_logic; mem_req : in std_logic; mem_we : in std_logic; mem_ack : out std_logic; mem_read : out std_logic_vector(wordSize-1 downto 0); mem_write : in std_logic_vector(wordSize-1 downto 0); out_mem_addr : in std_logic_vector(maxAddrBitIncIO downto 0); mem_writeMask : in std_logic_vector(wordBytes-1 downto 0); -- Wishbone from ZPU zpu_wb_i : in wishbone_bus_out; zpu_wb_o : out wishbone_bus_in); end component; component zpu_system is generic( simulate : boolean := false); port ( areset : in std_logic; cpu_clk : in std_logic; -- ZPU Control signals enable : in std_logic; interrupt : in std_logic; zpu_status : out std_logic_vector(63 downto 0); -- wishbone interfaces zpu_wb_i : in wishbone_bus_out; zpu_wb_o : out wishbone_bus_in); end component; end zpu_top_pkg; uhd-3.5.5/fpga/usrp2/opencores/zpu/zpu_wb_top.vhd000066400000000000000000000035131224274632000220060ustar00rootroot00000000000000library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; library work; use work.zpu_top_pkg.all; use work.wishbone_pkg.all; use work.zpupkg.all; use work.zpu_config.all; ------------------------------------------------------------------------ -- Top level ZPU + wishbone componenent to use in a verilog design: -- zpu_wb_top wraps around the zpu_system component. -- All IO lines are exposed as std_logic for verilog. ------------------------------------------------------------------------ entity zpu_wb_top is generic ( dat_w: integer := 32; adr_w: integer := 16; sel_w: integer := 4 ); port ( clk: in std_logic; rst: in std_logic; enb: in std_logic; -- wishbone interface dat_i: in std_logic_vector(dat_w-1 downto 0); ack_i: in std_logic; adr_o: out std_logic_vector(adr_w-1 downto 0); sel_o: out std_logic_vector(sel_w-1 downto 0); we_o: out std_logic; dat_o: out std_logic_vector(dat_w-1 downto 0); cyc_o: out std_logic; stb_o: out std_logic; -- misc zpu signals interrupt: in std_logic; zpu_status: out std_logic_vector(63 downto 0) ); end zpu_wb_top; architecture syn of zpu_wb_top is --wishbone interface (records) signal zpu_wb_i: wishbone_bus_out; signal zpu_wb_o: wishbone_bus_in; begin --assign wishbone signals to records zpu_wb_i.dat <= dat_i; zpu_wb_i.ack <= ack_i; adr_o <= zpu_wb_o.adr; sel_o <= zpu_wb_o.sel; we_o <= zpu_wb_o.we; dat_o <= zpu_wb_o.dat; cyc_o <= zpu_wb_o.cyc; stb_o <= zpu_wb_o.stb; --instantiate the zpu system zpu_system0: zpu_system port map( cpu_clk => clk, areset => rst, enable => enb, interrupt => interrupt, zpu_status => zpu_status, zpu_wb_i => zpu_wb_i, zpu_wb_o => zpu_wb_o ); end architecture syn; uhd-3.5.5/fpga/usrp2/sdr_lib/000077500000000000000000000000001224274632000157145ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/sdr_lib/.gitignore000066400000000000000000000000221224274632000176760ustar00rootroot00000000000000/a.out /db /*.vcd uhd-3.5.5/fpga/usrp2/sdr_lib/HB.sav000066400000000000000000000022531224274632000167220ustar00rootroot00000000000000[size] 1400 967 [pos] -1 -1 *-46.395245 2565000000000000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] hb_dec_tb. @420 hb_dec_tb.data_in[17:0] @28 hb_dec_tb.strobe_in hb_dec_tb.strobe_out hb_dec_tb.uut.write_even @22 hb_dec_tb.uut.addr_even[3:0] @420 hb_dec_tb.uut.data_even[17:0] hb_dec_tb.uut.data_odd_a[17:0] hb_dec_tb.uut.data_odd_b[17:0] hb_dec_tb.uut.data_odd_c[17:0] hb_dec_tb.uut.data_odd_d[17:0] @28 hb_dec_tb.uut.write_odd @420 hb_dec_tb.uut.prod1[35:0] hb_dec_tb.uut.prod2[35:0] @24 hb_dec_tb.uut.phase[2:0] @28 hb_dec_tb.uut.stb_in hb_dec_tb.uut.stb_out @420 hb_dec_tb.uut.sum2[17:0] hb_dec_tb.uut.stb_out_pre[15:0] @28 hb_dec_tb.uut.do_acc hb_dec_tb.uut.clear @420 hb_dec_tb.uut.sum1[17:0] hb_dec_tb.uut.coeff1[17:0] hb_dec_tb.uut.prod1[35:0] hb_dec_tb.uut.prod2[35:0] hb_dec_tb.uut.final_sum[17:0] hb_dec_tb.uut.coeff2[17:0] hb_dec_tb.uut.sum_of_prod[21:0] hb_dec_tb.data_out[17:0] @28 hb_dec_tb.uut.do_acc hb_dec_tb.uut.clear @24 hb_dec_tb.uut.addr_odd_a[3:0] hb_dec_tb.uut.addr_odd_b[3:0] hb_dec_tb.uut.addr_odd_c[3:0] hb_dec_tb.uut.addr_odd_d[3:0] @28 hb_dec_tb.uut.write_odd hb_dec_tb.uut.write_even @22 hb_dec_tb.uut.data_even[17:0] uhd-3.5.5/fpga/usrp2/sdr_lib/Makefile.srcs000066400000000000000000000014131224274632000203240ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # ################################################## # FIFO Sources ################################################## SDR_LIB_SRCS = $(abspath $(addprefix $(BASE_DIR)/../sdr_lib/, \ acc.v \ add2.v \ add2_and_clip.v \ add2_and_clip_reg.v \ add2_and_round.v \ add2_and_round_reg.v \ add2_reg.v \ cic_dec_shifter.v \ cic_decim.v \ cic_int_shifter.v \ cic_interp.v \ cic_strober.v \ clip.v \ clip_reg.v \ cordic.v \ cordic_z24.v \ cordic_stage.v \ ddc_chain.v \ duc_chain.v \ dspengine_16to8.v \ dspengine_8to16.v \ hb_dec.v \ hb_interp.v \ pipectrl.v \ pipestage.v \ round.v \ round_reg.v \ round_sd.v \ rx_dcoffset.v \ rx_frontend.v \ sign_extend.v \ small_hb_dec.v \ small_hb_int.v \ tx_frontend.v \ dsp_tx_glue.v \ dsp_rx_glue.v \ )) uhd-3.5.5/fpga/usrp2/sdr_lib/SMALL_HB.sav000066400000000000000000000020221224274632000176440ustar00rootroot00000000000000[size] 1400 967 [pos] -1 -1 *-11.608687 1834 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] small_hb_dec_tb. [treeopen] small_hb_dec_tb.uut. @28 small_hb_dec_tb.uut.clk small_hb_dec_tb.uut.phase @10421 small_hb_dec_tb.uut.data_in[17:0] @420 small_hb_dec_tb.uut.d1[17:0] small_hb_dec_tb.uut.d2[17:0] small_hb_dec_tb.uut.d3[17:0] small_hb_dec_tb.uut.d4[17:0] small_hb_dec_tb.uut.d5[17:0] small_hb_dec_tb.uut.d6[17:0] small_hb_dec_tb.uut.coeff[17:0] small_hb_dec_tb.uut.sum[17:0] small_hb_dec_tb.uut.prod[35:0] small_hb_dec_tb.uut.accum_rnd[17:0] @28 small_hb_dec_tb.uut.stb_in @420 small_hb_dec_tb.uut.final_sum[17:0] @28 small_hb_dec_tb.uut.go small_hb_dec_tb.uut.go_d1 small_hb_dec_tb.uut.go_d2 small_hb_dec_tb.uut.go_d3 small_hb_dec_tb.uut.go_d4 small_hb_dec_tb.uut.stb_out @420 small_hb_dec_tb.uut.data_out[17:0] small_hb_dec_tb.uut.prod[35:0] small_hb_dec_tb.uut.accum_rnd[17:0] small_hb_dec_tb.uut.final_sum[17:0] @10421 small_hb_dec_tb.uut.round_acc.out[17:0] small_hb_dec_tb.uut.data_out[17:0] uhd-3.5.5/fpga/usrp2/sdr_lib/acc.v000066400000000000000000000025471224274632000166410ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module acc #(parameter IWIDTH=16, OWIDTH=30) (input clk, input clear, input acc, input [IWIDTH-1:0] in, output reg [OWIDTH-1:0] out); wire [OWIDTH-1:0] in_signext; sign_extend #(.bits_in(IWIDTH),.bits_out(OWIDTH)) acc_signext (.in(in),.out(in_signext)); // CLEAR & ~ACC --> clears the accumulator // CLEAR & ACC --> loads the accumulator // ~CLEAR & ACC --> accumulates // ~CLEAR & ~ACC --> hold wire [OWIDTH-1:0] addend1 = clear ? 0 : out; wire [OWIDTH-1:0] addend2 = ~acc ? 0 : in_signext; wire [OWIDTH-1:0] sum_int = addend1 + addend2; always @(posedge clk) out <= sum_int; endmodule // acc uhd-3.5.5/fpga/usrp2/sdr_lib/add2.v000066400000000000000000000017211224274632000167160ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module add2 #(parameter WIDTH=16) (input [WIDTH-1:0] in1, input [WIDTH-1:0] in2, output [WIDTH-1:0] sum); wire [WIDTH:0] sum_int = {in1[WIDTH-1],in1} + {in2[WIDTH-1],in2}; assign sum = sum_int[WIDTH:1]; // Note -- will have some bias endmodule // add2 uhd-3.5.5/fpga/usrp2/sdr_lib/add2_and_clip.v000066400000000000000000000004741224274632000205530ustar00rootroot00000000000000 module add2_and_clip #(parameter WIDTH=16) (input [WIDTH-1:0] in1, input [WIDTH-1:0] in2, output [WIDTH-1:0] sum); wire [WIDTH:0] sum_int = {in1[WIDTH-1],in1} + {in2[WIDTH-1],in2}; clip #(.bits_in(WIDTH+1),.bits_out(WIDTH)) clip (.in(sum_int),.out(sum)); endmodule // add2_and_clip uhd-3.5.5/fpga/usrp2/sdr_lib/add2_and_clip_reg.v000066400000000000000000000010271224274632000214030ustar00rootroot00000000000000 module add2_and_clip_reg #(parameter WIDTH=16) (input clk, input rst, input [WIDTH-1:0] in1, input [WIDTH-1:0] in2, input strobe_in, output reg [WIDTH-1:0] sum, output reg strobe_out); wire [WIDTH-1:0] sum_int; add2_and_clip #(.WIDTH(WIDTH)) add2_and_clip (.in1(in1),.in2(in2),.sum(sum_int)); always @(posedge clk) if(rst) sum <= 0; else if(strobe_in) sum <= sum_int; always @(posedge clk) strobe_out <= strobe_in; endmodule // add2_and_clip_reg uhd-3.5.5/fpga/usrp2/sdr_lib/add2_and_round.v000066400000000000000000000017451224274632000207550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module add2_and_round #(parameter WIDTH=16) (input [WIDTH-1:0] in1, input [WIDTH-1:0] in2, output [WIDTH-1:0] sum); wire [WIDTH:0] sum_int = {in1[WIDTH-1],in1} + {in2[WIDTH-1],in2}; assign sum = sum_int[WIDTH:1] + (sum_int[WIDTH] & sum_int[0]); endmodule // add2_and_round uhd-3.5.5/fpga/usrp2/sdr_lib/add2_and_round_reg.v000066400000000000000000000020321224274632000216000ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module add2_and_round_reg #(parameter WIDTH=16) (input clk, input [WIDTH-1:0] in1, input [WIDTH-1:0] in2, output reg [WIDTH-1:0] sum); wire [WIDTH-1:0] sum_int; add2_and_round #(.WIDTH(WIDTH)) add2_n_rnd (.in1(in1),.in2(in2),.sum(sum_int)); always @(posedge clk) sum <= sum_int; endmodule // add2_and_round_reg uhd-3.5.5/fpga/usrp2/sdr_lib/add2_reg.v000066400000000000000000000017671224274632000175650ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module add2_reg #(parameter WIDTH=16) (input clk, input [WIDTH-1:0] in1, input [WIDTH-1:0] in2, output reg [WIDTH-1:0] sum); wire [WIDTH-1:0] sum_int; add2 #(.WIDTH(WIDTH)) add2 (.in1(in1),.in2(in2),.sum(sum_int)); always @(posedge clk) sum <= sum_int; endmodule // add2_reg uhd-3.5.5/fpga/usrp2/sdr_lib/cic_dec_shifter.v000066400000000000000000000076171224274632000212130ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // NOTE This only works for N=4, max decim rate of 128 // NOTE signal "rate" is EQUAL TO the actual rate, no more -1 BS module cic_dec_shifter(rate,signal_in,signal_out); parameter bw = 16; parameter maxbitgain = 28; input [7:0] rate; input wire [bw+maxbitgain-1:0] signal_in; output reg [bw-1:0] signal_out; function [4:0] bitgain; input [7:0] rate; case(rate) // Exact Cases -- N*log2(rate) 8'd1 : bitgain = 0; 8'd2 : bitgain = 4; 8'd4 : bitgain = 8; 8'd8 : bitgain = 12; 8'd16 : bitgain = 16; 8'd32 : bitgain = 20; 8'd64 : bitgain = 24; 8'd128 : bitgain = 28; // Nearest without overflow -- ceil(N*log2(rate)) 8'd3 : bitgain = 7; 8'd5 : bitgain = 10; 8'd6 : bitgain = 11; 8'd7 : bitgain = 12; 8'd9 : bitgain = 13; 8'd10,8'd11 : bitgain = 14; 8'd12,8'd13 : bitgain = 15; 8'd14,8'd15 : bitgain = 16; 8'd17,8'd18,8'd19 : bitgain = 17; 8'd20,8'd21,8'd22 : bitgain = 18; 8'd23,8'd24,8'd25,8'd26 : bitgain = 19; 8'd27,8'd28,8'd29,8'd30,8'd31 : bitgain = 20; 8'd33,8'd34,8'd35,8'd36,8'd37,8'd38 : bitgain = 21; 8'd39,8'd40,8'd41,8'd42,8'd43,8'd44,8'd45 : bitgain = 22; 8'd46,8'd47,8'd48,8'd49,8'd50,8'd51,8'd52,8'd53 : bitgain = 23; 8'd54,8'd55,8'd56,8'd57,8'd58,8'd59,8'd60,8'd61,8'd62,8'd63 : bitgain = 24; 8'd65,8'd66,8'd67,8'd68,8'd69,8'd70,8'd71,8'd72,8'd73,8'd74,8'd75,8'd76 : bitgain = 25; 8'd77,8'd78,8'd79,8'd80,8'd81,8'd82,8'd83,8'd84,8'd85,8'd86,8'd87,8'd88,8'd89,8'd90 : bitgain = 26; 8'd91,8'd92,8'd93,8'd94,8'd95,8'd96,8'd97,8'd98,8'd99,8'd100,8'd101,8'd102,8'd103,8'd104,8'd105,8'd106,8'd107 : bitgain = 27; default : bitgain = 28; endcase // case(rate) endfunction // bitgain wire [4:0] shift = bitgain(rate); // We should be able to do this, but can't .... // assign signal_out = signal_in[shift+bw-1:shift]; always @* case(shift) 5'd0 : signal_out = signal_in[0+bw-1:0]; 5'd4 : signal_out = signal_in[4+bw-1:4]; 5'd7 : signal_out = signal_in[7+bw-1:7]; 5'd8 : signal_out = signal_in[8+bw-1:8]; 5'd10 : signal_out = signal_in[10+bw-1:10]; 5'd11 : signal_out = signal_in[11+bw-1:11]; 5'd12 : signal_out = signal_in[12+bw-1:12]; 5'd13 : signal_out = signal_in[13+bw-1:13]; 5'd14 : signal_out = signal_in[14+bw-1:14]; 5'd15 : signal_out = signal_in[15+bw-1:15]; 5'd16 : signal_out = signal_in[16+bw-1:16]; 5'd17 : signal_out = signal_in[17+bw-1:17]; 5'd18 : signal_out = signal_in[18+bw-1:18]; 5'd19 : signal_out = signal_in[19+bw-1:19]; 5'd20 : signal_out = signal_in[20+bw-1:20]; 5'd21 : signal_out = signal_in[21+bw-1:21]; 5'd22 : signal_out = signal_in[22+bw-1:22]; 5'd23 : signal_out = signal_in[23+bw-1:23]; 5'd24 : signal_out = signal_in[24+bw-1:24]; 5'd25 : signal_out = signal_in[25+bw-1:25]; 5'd26 : signal_out = signal_in[26+bw-1:26]; 5'd27 : signal_out = signal_in[27+bw-1:27]; 5'd28 : signal_out = signal_in[28+bw-1:28]; default : signal_out = signal_in[28+bw-1:28]; endcase // case(shift) endmodule // cic_dec_shifter uhd-3.5.5/fpga/usrp2/sdr_lib/cic_decim.v000077500000000000000000000047421224274632000200140ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // module cic_decim #(parameter bw = 16, parameter N = 4, parameter log2_of_max_rate = 7) (input clock, input reset, input enable, input [7:0] rate, input strobe_in, input strobe_out, input [bw-1:0] signal_in, output reg [bw-1:0] signal_out); localparam maxbitgain = N * log2_of_max_rate; wire [bw+maxbitgain-1:0] signal_in_ext; reg [bw+maxbitgain-1:0] integrator [0:N-1]; reg [bw+maxbitgain-1:0] differentiator [0:N-1]; reg [bw+maxbitgain-1:0] pipeline [0:N-1]; reg [bw+maxbitgain-1:0] sampler; integer i; sign_extend #(bw,bw+maxbitgain) ext_input (.in(signal_in),.out(signal_in_ext)); always @(posedge clock) if(~enable) for(i=0;i. // //! The USRP digital down-conversion chain module ddc_chain #( parameter BASE = 0, parameter DSPNO = 0, parameter WIDTH = 24 ) (input clk, input rst, input clr, input set_stb, input [7:0] set_addr, input [31:0] set_data, input set_stb_user, input [7:0] set_addr_user, input [31:0] set_data_user, // From RX frontend input [WIDTH-1:0] rx_fe_i, input [WIDTH-1:0] rx_fe_q, // To RX control output [31:0] sample, input run, output strobe, output [31:0] debug ); localparam cwidth = 25; localparam zwidth = 24; wire ddc_enb; wire [31:0] phase_inc; reg [31:0] phase; wire [17:0] scale_factor; wire [cwidth-1:0] i_cordic, q_cordic; wire [WIDTH-1:0] i_cordic_clip, q_cordic_clip; wire [WIDTH-1:0] i_cic, q_cic; wire [WIDTH-1:0] i_hb1, q_hb1; wire [WIDTH-1:0] i_hb2, q_hb2; wire strobe_cic, strobe_hb1, strobe_hb2; wire enable_hb1, enable_hb2; wire [7:0] cic_decim_rate; reg [WIDTH-1:0] rx_fe_i_mux, rx_fe_q_mux; wire realmode; wire swap_iq; setting_reg #(.my_addr(BASE+0)) sr_0 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(phase_inc),.changed()); setting_reg #(.my_addr(BASE+1), .width(18)) sr_1 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(scale_factor),.changed()); setting_reg #(.my_addr(BASE+2), .width(10)) sr_2 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({enable_hb1, enable_hb2, cic_decim_rate}),.changed()); setting_reg #(.my_addr(BASE+3), .width(2)) sr_3 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({realmode,swap_iq}),.changed()); // MUX so we can do realmode signals on either input always @(posedge clk) if(swap_iq) begin rx_fe_i_mux <= rx_fe_q; rx_fe_q_mux <= realmode ? 0 : rx_fe_i; end else begin rx_fe_i_mux <= rx_fe_i; rx_fe_q_mux <= realmode ? 0 : rx_fe_q; end // NCO always @(posedge clk) if(rst) phase <= 0; else if(~ddc_enb) phase <= 0; else phase <= phase + phase_inc; //sign extension of cordic input wire [WIDTH-1:0] to_ddc_chain_i, to_ddc_chain_q; wire [cwidth-1:0] to_cordic_i, to_cordic_q; sign_extend #(.bits_in(WIDTH), .bits_out(cwidth)) sign_extend_cordic_i (.in(to_ddc_chain_i), .out(to_cordic_i)); sign_extend #(.bits_in(WIDTH), .bits_out(cwidth)) sign_extend_cordic_q (.in(to_ddc_chain_q), .out(to_cordic_q)); // CORDIC 24-bit I/O cordic_z24 #(.bitwidth(cwidth)) cordic(.clock(clk), .reset(rst), .enable(ddc_enb), .xi(to_cordic_i),. yi(to_cordic_q), .zi(phase[31:32-zwidth]), .xo(i_cordic),.yo(q_cordic),.zo() ); clip_reg #(.bits_in(cwidth), .bits_out(WIDTH)) clip_i (.clk(clk), .in(i_cordic), .strobe_in(1'b1), .out(i_cordic_clip)); clip_reg #(.bits_in(cwidth), .bits_out(WIDTH)) clip_q (.clk(clk), .in(q_cordic), .strobe_in(1'b1), .out(q_cordic_clip)); // CIC decimator 24 bit I/O cic_strober cic_strober(.clock(clk),.reset(rst),.enable(ddc_enb),.rate(cic_decim_rate), .strobe_fast(1),.strobe_slow(strobe_cic) ); cic_decim #(.bw(WIDTH)) decim_i (.clock(clk),.reset(rst),.enable(ddc_enb), .rate(cic_decim_rate),.strobe_in(1'b1),.strobe_out(strobe_cic), .signal_in(i_cordic_clip),.signal_out(i_cic)); cic_decim #(.bw(WIDTH)) decim_q (.clock(clk),.reset(rst),.enable(ddc_enb), .rate(cic_decim_rate),.strobe_in(1'b1),.strobe_out(strobe_cic), .signal_in(q_cordic_clip),.signal_out(q_cic)); // First (small) halfband 24 bit I/O small_hb_dec #(.WIDTH(WIDTH)) small_hb_i (.clk(clk),.rst(rst),.bypass(~enable_hb1),.run(ddc_enb), .stb_in(strobe_cic),.data_in(i_cic),.stb_out(strobe_hb1),.data_out(i_hb1)); small_hb_dec #(.WIDTH(WIDTH)) small_hb_q (.clk(clk),.rst(rst),.bypass(~enable_hb1),.run(ddc_enb), .stb_in(strobe_cic),.data_in(q_cic),.stb_out(),.data_out(q_hb1)); // Second (large) halfband 24 bit I/O wire [8:0] cpi_hb = enable_hb1 ? {cic_decim_rate,1'b0} : {1'b0,cic_decim_rate}; hb_dec #(.WIDTH(WIDTH)) hb_i (.clk(clk),.rst(rst),.bypass(~enable_hb2),.run(ddc_enb),.cpi(cpi_hb), .stb_in(strobe_hb1),.data_in(i_hb1),.stb_out(strobe_hb2),.data_out(i_hb2)); hb_dec #(.WIDTH(WIDTH)) hb_q (.clk(clk),.rst(rst),.bypass(~enable_hb2),.run(ddc_enb),.cpi(cpi_hb), .stb_in(strobe_hb1),.data_in(q_hb1),.stb_out(),.data_out(q_hb2)); //scalar operation (gain of 6 bits) wire [35:0] prod_i, prod_q; MULT18X18S mult_i (.P(prod_i), .A(i_hb2[WIDTH-1:WIDTH-18]), .B(scale_factor), .C(clk), .CE(strobe_hb2), .R(rst) ); MULT18X18S mult_q (.P(prod_q), .A(q_hb2[WIDTH-1:WIDTH-18]), .B(scale_factor), .C(clk), .CE(strobe_hb2), .R(rst) ); //pipeline for the multiplier (gain of 10 bits) reg [WIDTH-1:0] prod_reg_i, prod_reg_q; reg strobe_mult; always @(posedge clk) begin strobe_mult <= strobe_hb2; prod_reg_i <= prod_i[33:34-WIDTH]; prod_reg_q <= prod_q[33:34-WIDTH]; end // Round final answer to 16 bits wire [31:0] ddc_chain_out; wire ddc_chain_stb; round_sd #(.WIDTH_IN(WIDTH),.WIDTH_OUT(16)) round_i (.clk(clk),.reset(rst), .in(prod_reg_i),.strobe_in(strobe_mult), .out(ddc_chain_out[31:16]), .strobe_out(ddc_chain_stb)); round_sd #(.WIDTH_IN(WIDTH),.WIDTH_OUT(16)) round_q (.clk(clk),.reset(rst), .in(prod_reg_q),.strobe_in(strobe_mult), .out(ddc_chain_out[15:0]), .strobe_out()); dsp_rx_glue #(.DSPNO(DSPNO), .WIDTH(WIDTH)) custom( .clock(clk), .reset(rst), .clear(clr), .enable(run), .set_stb(set_stb_user), .set_addr(set_addr_user), .set_data(set_data_user), .frontend_i(rx_fe_i_mux), .frontend_q(rx_fe_q_mux), .ddc_in_i(to_ddc_chain_i), .ddc_in_q(to_ddc_chain_q), .ddc_out_sample(ddc_chain_out), .ddc_out_strobe(ddc_chain_stb), .ddc_out_enable(ddc_enb), .bb_sample(sample), .bb_strobe(strobe)); assign debug = {enable_hb1, enable_hb2, run, strobe, strobe_cic, strobe_hb1, strobe_hb2}; endmodule // ddc_chain uhd-3.5.5/fpga/usrp2/sdr_lib/dsp_core_rx_tb.v000066400000000000000000000026761224274632000211120ustar00rootroot00000000000000 `timescale 1ns/1ns module ddc_chain_tb(); reg clk, rst; initial rst = 1; initial #1000 rst = 0; initial clk = 0; always #5 clk = ~clk; initial $dumpfile("ddc_chain_tb.vcd"); initial $dumpvars(0,ddc_chain_tb); reg signed [23:0] adc_in; wire signed [15:0] adc_out_i, adc_out_q; always @(posedge clk) begin $display(adc_in); $display(adc_out_i); $display(adc_out_q); end reg run; reg set_stb; reg [7:0] set_addr; reg [31:0] set_data; ddc_chain #(.BASE(0)) ddc_chain (.clk(clk),.rst(rst), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .adc_i(adc_in), .adc_ovf_i(0), .adc_q(0), .adc_ovf_q(0), .sample({adc_out_i,adc_out_q}), .run(run), .strobe(), .debug()); initial begin run <= 0; @(negedge rst); @(posedge clk); set_addr <= 1; set_data <= {16'd64,16'd64}; // set gains set_stb <= 1; @(posedge clk); set_addr <= 2; set_data <= {16'd0,8'd3,8'd1}; // set decim set_stb <= 1; @(posedge clk); set_addr <= 0; //set_data <= {32'h0000_0000}; set_data <= {32'h01CA_C083}; // 700 kHz set_stb <= 1; @(posedge clk); set_stb <= 0; @(posedge clk); run <= 1; end always @(posedge clk) //adc_in <= 24'd1000000; adc_in <= 24'h80_0000; /* always @(posedge clk) if(rst) adc_in <= 0; else adc_in <= adc_in + 4; //adc_in <= (($random % 473) + 23)/4; */ endmodule // ddc_chain_tb uhd-3.5.5/fpga/usrp2/sdr_lib/dsp_rx_glue.v000066400000000000000000000067711224274632000204310ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //The following module effects the IO of the DDC chain. //By default, this entire module is a simple pass-through. module dsp_rx_glue #( //the dsp unit number: 0, 1, 2... parameter DSPNO = 0, //frontend bus width parameter WIDTH = 24 ) ( //control signals input clock, input reset, input clear, input enable, //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //full rate inputs directly from the RX frontend input [WIDTH-1:0] frontend_i, input [WIDTH-1:0] frontend_q, //full rate outputs directly to the DDC chain output [WIDTH-1:0] ddc_in_i, output [WIDTH-1:0] ddc_in_q, //strobed samples {I16,Q16} from the RX DDC chain input [31:0] ddc_out_sample, input ddc_out_strobe, //high on valid sample output ddc_out_enable, //enables DDC module //strobbed baseband samples {I16,Q16} from this module output [31:0] bb_sample, output bb_strobe, //high on valid sample //debug output (optional) output [31:0] debug ); generate if (DSPNO==0) begin `ifndef RX_DSP0_MODULE assign ddc_in_i = frontend_i; assign ddc_in_q = frontend_q; assign bb_sample = ddc_out_sample; assign bb_strobe = ddc_out_strobe; assign ddc_out_enable = enable; `else `RX_DSP0_MODULE #(.WIDTH(WIDTH)) rx_dsp0_custom ( .clock(clock), .reset(reset), .clear(clear), .enable(enable), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .frontend_i(frontend_i), .frontend_q(frontend_q), .ddc_in_i(ddc_in_i), .ddc_in_q(ddc_in_q), .ddc_out_sample(ddc_out_sample), .ddc_out_strobe(ddc_out_strobe), .ddc_out_enable(ddc_out_enable), .bb_sample(bb_sample), .bb_strobe(bb_strobe) ); `endif end else begin `ifndef RX_DSP1_MODULE assign ddc_in_i = frontend_i; assign ddc_in_q = frontend_q; assign bb_sample = ddc_out_sample; assign bb_strobe = ddc_out_strobe; assign ddc_out_enable = enable; `else `RX_DSP1_MODULE #(.WIDTH(WIDTH)) rx_dsp1_custom ( .clock(clock), .reset(reset), .clear(clear), .enable(enable), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .frontend_i(frontend_i), .frontend_q(frontend_q), .ddc_in_i(ddc_in_i), .ddc_in_q(ddc_in_q), .ddc_out_sample(ddc_out_sample), .ddc_out_strobe(ddc_out_strobe), .ddc_out_enable(ddc_out_enable), .bb_sample(bb_sample), .bb_strobe(bb_strobe) ); `endif end endgenerate endmodule //dsp_rx_glue uhd-3.5.5/fpga/usrp2/sdr_lib/dsp_tx_glue.v000066400000000000000000000070011224274632000204160ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //The following module effects the IO of the DUC chain. //By default, this entire module is a simple pass-through. module dsp_tx_glue #( //the dsp unit number: 0, 1, 2... parameter DSPNO = 0, //frontend bus width parameter WIDTH = 24 ) ( //control signals input clock, input reset, input clear, input enable, //user settings bus, controlled through user setting regs API input set_stb, input [7:0] set_addr, input [31:0] set_data, //full rate outputs directly to the TX frontend output [WIDTH-1:0] frontend_i, output [WIDTH-1:0] frontend_q, //full rate outputs directly from the DUC chain input [WIDTH-1:0] duc_out_i, input [WIDTH-1:0] duc_out_q, //strobed samples {I16,Q16} to the TX DUC chain output [31:0] duc_in_sample, input duc_in_strobe, //this is a backpressure signal output duc_in_enable, //enables DUC module //strobbed baseband samples {I16,Q16} to this module input [31:0] bb_sample, output bb_strobe, //this is a backpressure signal //debug output (optional) output [31:0] debug ); generate if (DSPNO==0) begin `ifndef TX_DSP0_MODULE assign frontend_i = duc_out_i; assign frontend_q = duc_out_q; assign duc_in_sample = bb_sample; assign bb_strobe = duc_in_strobe; assign duc_in_enable = enable; `else `TX_DSP0_MODULE #(.WIDTH(WIDTH)) tx_dsp0_custom ( .clock(clock), .reset(reset), .clear(clear), .enable(enable), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .frontend_i(frontend_i), .frontend_q(frontend_q), .duc_out_i(duc_out_i), .duc_out_q(duc_out_q), .duc_in_sample(duc_in_sample), .duc_in_strobe(duc_in_strobe), .duc_in_enable(duc_in_enable), .bb_sample(bb_sample), .bb_strobe(bb_strobe) ); `endif end else begin `ifndef TX_DSP1_MODULE assign frontend_i = duc_out_i; assign frontend_q = duc_out_q; assign duc_in_sample = bb_sample; assign bb_strobe = duc_in_strobe; assign duc_in_enable = enable; `else `TX_DSP1_MODULE #(.WIDTH(WIDTH)) tx_dsp1_custom ( .clock(clock), .reset(reset), .clear(clear), .enable(enable), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .frontend_i(frontend_i), .frontend_q(frontend_q), .duc_out_i(duc_out_i), .duc_out_q(duc_out_q), .duc_in_sample(duc_in_sample), .duc_in_strobe(duc_in_strobe), .duc_in_enable(duc_in_enable), .bb_sample(bb_sample), .bb_strobe(bb_strobe) ); `endif end endgenerate endmodule //dsp_tx_glue uhd-3.5.5/fpga/usrp2/sdr_lib/dspengine_16to8.v000066400000000000000000000140121224274632000210160ustar00rootroot00000000000000 // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module dspengine_16to8 #(parameter BASE = 0, parameter BUF_SIZE = 9) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, output access_we, output access_stb, input access_ok, output access_done, output access_skip_read, output [BUF_SIZE-1:0] access_adr, input [BUF_SIZE-1:0] access_len, output [35:0] access_dat_o, input [35:0] access_dat_i ); wire convert; setting_reg #(.my_addr(BASE),.width(1)) sr_16to8 (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(convert),.changed()); reg [2:0] dsp_state; localparam DSP_IDLE = 0; localparam DSP_PARSE_HEADER = 1; localparam DSP_CONVERT = 2; localparam DSP_CONVERT_DRAIN_PIPE = 3; localparam DSP_READ_TRAILER = 4; localparam DSP_WRITE_TRAILER = 5; localparam DSP_WRITE_HEADER = 6; localparam DSP_DONE = 7; // Parse VITA header wire is_if_data = (access_dat_i[31:29] == 3'b000); wire has_streamid = access_dat_i[28]; wire has_classid = access_dat_i[27]; wire has_trailer = access_dat_i[26]; // 25:24 reserved, aka SOB/EOB wire has_secs = |access_dat_i[23:22]; wire has_tics = |access_dat_i[21:20]; wire [3:0] hdr_length = 1 + has_streamid + has_classid + has_classid + has_secs + has_tics + has_tics; wire [35:0] prod_i, prod_q; wire [15:0] scaled_i, scaled_q; wire [7:0] i8, q8; reg [7:0] i8_reg, q8_reg; wire stb_read, stb_clip, val_read, val_clip; wire stb_out, stb_reg; reg even; reg [BUF_SIZE-1:0] read_adr, write_adr; reg has_trailer_reg; wire last = (read_adr + 1) == (access_len - has_trailer_reg); wire last_o, even_o; wire stb_write = stb_out & (even_o | last_o); wire send_to_pipe = ~stb_write & (dsp_state == DSP_CONVERT); reg [31:0] new_header, new_trailer, trailer_mask; reg [15:0] length; reg wait_for_trailer; always @(posedge clk) if(reset | clear) dsp_state <= DSP_IDLE; else case(dsp_state) DSP_IDLE : begin read_adr <= 0; write_adr <= 0; even <= 0; if(access_ok) dsp_state <= DSP_PARSE_HEADER; end DSP_PARSE_HEADER : begin has_trailer_reg <= has_trailer; new_header[31:16] <= access_dat_i[31:16]; new_header[15:0] <= access_len; length <= access_len; if(is_if_data & convert) begin read_adr <= hdr_length; write_adr <= hdr_length; dsp_state <= DSP_CONVERT; end else dsp_state <= DSP_WRITE_HEADER; end DSP_CONVERT: begin new_header[26] <= 1'b1; // all converted packets have a trailer if(stb_write) write_adr <= write_adr + 1; else if(stb_read) // should always be 1 if we are here begin read_adr <= read_adr + 1; even <= ~even; if(last) begin dsp_state <= DSP_CONVERT_DRAIN_PIPE; if(~even) trailer_mask <= 32'h00400400; else trailer_mask <= 32'h00400000; end end end DSP_CONVERT_DRAIN_PIPE : if(stb_write) begin write_adr <= write_adr + 1; if(last_o) if(has_trailer_reg) begin dsp_state <= DSP_READ_TRAILER; wait_for_trailer <= 0; end else begin dsp_state <= DSP_WRITE_TRAILER; new_trailer <= trailer_mask; end end DSP_READ_TRAILER : begin wait_for_trailer <= 1; if(wait_for_trailer) dsp_state <= DSP_WRITE_TRAILER; new_trailer <= access_dat_i[31:0] | trailer_mask; end DSP_WRITE_TRAILER : begin dsp_state <= DSP_WRITE_HEADER; write_adr <= 0; new_header[15:0] <= write_adr + 1; end DSP_WRITE_HEADER : dsp_state <= DSP_DONE; DSP_DONE : begin read_adr <= 0; write_adr <= 0; dsp_state <= DSP_IDLE; end endcase // case (dsp_state) assign access_skip_read = 0; assign access_done = (dsp_state == DSP_DONE); assign access_stb = 1; assign access_we = (dsp_state == DSP_WRITE_HEADER) | (dsp_state == DSP_WRITE_TRAILER) | stb_write; assign access_dat_o = (dsp_state == DSP_WRITE_HEADER) ? { 4'h1, new_header } : (dsp_state == DSP_WRITE_TRAILER) ? { 4'h2, new_trailer } : (last_o&~even_o) ? {4'h0, 16'd0, i8, q8 } : {4'h0, i8, q8, i8_reg, q8_reg }; assign access_adr = (stb_write|(dsp_state == DSP_WRITE_HEADER)|(dsp_state == DSP_WRITE_TRAILER)) ? write_adr : read_adr; // DSP Pipeline wire [15:0] i16 = access_dat_i[31:16]; wire [15:0] q16 = access_dat_i[15:0]; pipectrl #(.STAGES(2), .TAGWIDTH(2)) pipectrl (.clk(clk), .reset(reset), .src_rdy_i(send_to_pipe), .dst_rdy_o(), // dst_rdy_o will always be 1 since dst_rdy_i is 1, below .src_rdy_o(stb_out), .dst_rdy_i(1), // always accept output of chain .strobes({stb_clip,stb_read}), .valids({val_clip,val_read}), .tag_i({last,even}), .tag_o({last_o,even_o})); always @(posedge clk) if(stb_out & ~even_o) {i8_reg,q8_reg} <= {i8,q8}; clip_reg #(.bits_in(16),.bits_out(8),.STROBED(1)) clip_i (.clk(clk), .in(i16), .out(i8), .strobe_in(stb_clip), .strobe_out()); clip_reg #(.bits_in(16),.bits_out(8),.STROBED(1)) clip_q (.clk(clk), .in(q16), .out(q8), .strobe_in(stb_clip), .strobe_out()); endmodule // dspengine_16to8 uhd-3.5.5/fpga/usrp2/sdr_lib/dspengine_8to16.v000066400000000000000000000134731224274632000210300ustar00rootroot00000000000000 // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module dspengine_8to16 #(parameter BASE = 0, parameter BUF_SIZE = 9, parameter HEADER_OFFSET = 0) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, output access_we, output access_stb, input access_ok, output access_done, output access_skip_read, output [BUF_SIZE-1:0] access_adr, input [BUF_SIZE-1:0] access_len, output [35:0] access_dat_o, input [35:0] access_dat_i ); wire convert; setting_reg #(.my_addr(BASE),.width(1)) sr_8to16 (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(convert),.changed()); reg [3:0] dsp_state; localparam DSP_IDLE = 0; localparam DSP_IDLE_RD = 1; localparam DSP_PARSE_HEADER = 2; localparam DSP_READ = 3; localparam DSP_READ_WAIT = 4; localparam DSP_WRITE_1 = 5; localparam DSP_WRITE_0 = 6; localparam DSP_READ_TRAILER = 7; localparam DSP_WRITE_TRAILER = 8; localparam DSP_WRITE_HEADER = 9; localparam DSP_DONE = 10; // Parse VITA header wire is_if_data = (access_dat_i[31:29] == 3'b000); wire has_streamid = access_dat_i[28]; wire has_classid = access_dat_i[27]; wire has_trailer = access_dat_i[26]; // 25:24 reserved, aka SOB/EOB wire has_secs = |access_dat_i[23:22]; wire has_tics = |access_dat_i[21:20]; wire [3:0] hdr_length = 1 + has_streamid + has_classid + has_classid + has_secs + has_tics + has_tics; reg [15:0] hdr_length_reg; reg odd; reg [BUF_SIZE-1:0] read_adr, write_adr; reg has_trailer_reg; reg [31:0] new_header, new_trailer, trailer_mask; reg wait_for_trailer; reg [15:0] data_in_len; wire is_odd = access_dat_i[22] & access_dat_i[10]; wire [15:0] data_in_lenx2 = {data_in_len[14:0], 1'b0} - is_odd; reg [7:0] i8_0, q8_0; wire [7:0] i8_1 = access_dat_i[31:24]; wire [7:0] q8_1 = access_dat_i[23:16]; reg skip; always @(posedge clk) { i8_0, q8_0 } <= access_dat_i[15:0]; always @(posedge clk) if(reset | clear) dsp_state <= DSP_IDLE; else case(dsp_state) DSP_IDLE : begin read_adr <= HEADER_OFFSET; write_adr <= HEADER_OFFSET; if(access_ok) dsp_state <= DSP_IDLE_RD; end DSP_IDLE_RD: //extra idle state for read to become valid dsp_state <= DSP_PARSE_HEADER; DSP_PARSE_HEADER : begin has_trailer_reg <= has_trailer; new_header[31:0] <= access_dat_i[31:0]; hdr_length_reg <= hdr_length; if(~is_if_data | ~convert | ~has_trailer) // ~convert is valid (16 bit mode) but both ~trailer and ~is_if_data are both // really error conditions on the TX side. We shouldn't ever see them in the TX chain dsp_state <= DSP_WRITE_HEADER; else begin read_adr <= access_dat_i[15:0] + HEADER_OFFSET - 1; // point to trailer dsp_state <= DSP_READ_TRAILER; wait_for_trailer <= 0; data_in_len <= access_dat_i[15:0] - hdr_length - 1 /*trailer*/; end end DSP_READ_TRAILER : begin wait_for_trailer <= 1; if(wait_for_trailer) dsp_state <= DSP_WRITE_TRAILER; new_trailer <= access_dat_i[31:0]; // Leave trailer unchanged odd <= is_odd; write_adr <= hdr_length_reg + data_in_lenx2 + HEADER_OFFSET; end DSP_WRITE_TRAILER : begin dsp_state <= DSP_READ; write_adr <= write_adr - 1; read_adr <= read_adr - 1; new_header[15:0] <= write_adr + (1 - HEADER_OFFSET); // length = addr of trailer + 1 end DSP_READ : begin read_adr <= read_adr - 1; if(odd) dsp_state <= DSP_READ_WAIT; else dsp_state <= DSP_WRITE_1; odd <= 0; end DSP_READ_WAIT : dsp_state <= DSP_WRITE_0; DSP_WRITE_1 : begin write_adr <= write_adr - 1; if(write_adr == (hdr_length_reg+HEADER_OFFSET)) begin write_adr <= HEADER_OFFSET; dsp_state <= DSP_WRITE_HEADER; end dsp_state <= DSP_WRITE_0; end DSP_WRITE_0 : begin write_adr <= write_adr - 1; if(write_adr == (hdr_length_reg+HEADER_OFFSET)) begin write_adr <= HEADER_OFFSET; dsp_state <= DSP_WRITE_HEADER; end else dsp_state <= DSP_READ; end DSP_WRITE_HEADER : dsp_state <= DSP_DONE; DSP_DONE : begin read_adr <= HEADER_OFFSET; write_adr <= HEADER_OFFSET; dsp_state <= DSP_IDLE; end endcase // case (dsp_state) assign access_skip_read = 0; assign access_done = (dsp_state == DSP_DONE); assign access_stb = 1; assign access_we = (dsp_state == DSP_WRITE_HEADER) | (dsp_state == DSP_WRITE_TRAILER) | (dsp_state == DSP_WRITE_0) | (dsp_state == DSP_WRITE_1); assign access_dat_o = (dsp_state == DSP_WRITE_HEADER) ? { 4'h0, new_header } : (dsp_state == DSP_WRITE_TRAILER) ? { 4'h2, new_trailer } : (dsp_state == DSP_WRITE_0) ? { 4'h0, i8_0, 8'd0, q8_0, 8'd0 } : (dsp_state == DSP_WRITE_1) ? { 4'h0, i8_1, 8'd0, q8_1, 8'd0 } : 34'h0DEADBEEF; assign access_adr = access_we ? write_adr : read_adr; endmodule // dspengine_16to8 uhd-3.5.5/fpga/usrp2/sdr_lib/duc.v000077500000000000000000000052731224274632000166700ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // DUC block module duc(input clock, input reset, input enable, input [3:0] rate1, input [3:0] rate2, output strobe, input [31:0] freq, input [15:0] i_in, input [15:0] q_in, output [15:0] i_out, output [15:0] q_out ); parameter bw = 16; parameter zw = 16; wire [15:0] i_interp_out, q_interp_out; wire [31:0] phase; wire strobe1, strobe2; reg [3:0] strobe_ctr1,strobe_ctr2; always @(posedge clock) if(reset | ~enable) strobe_ctr2 <= #1 4'd0; else if(strobe2) strobe_ctr2 <= #1 4'd0; else strobe_ctr2 <= #1 strobe_ctr2 + 4'd1; always @(posedge clock) if(reset | ~enable) strobe_ctr1 <= #1 4'd0; else if(strobe1) strobe_ctr1 <= #1 4'd0; else if(strobe2) strobe_ctr1 <= #1 strobe_ctr1 + 4'd1; assign strobe2 = enable & ( strobe_ctr2 == rate2 ); assign strobe1 = strobe2 & ( strobe_ctr1 == rate1 ); assign strobe = strobe1; function [2:0] log_ceil; input [3:0] val; log_ceil = val[3] ? 3'd4 : val[2] ? 3'd3 : val[1] ? 3'd2 : 3'd1; endfunction wire [2:0] shift1 = log_ceil(rate1); wire [2:0] shift2 = log_ceil(rate2); cordic #(.bitwidth(bw),.zwidth(zw),.stages(16)) cordic(.clock(clock), .reset(reset), .enable(enable), .xi(i_interp_out), .yi(q_interp_out), .zi(phase[31:32-zw]), .xo(i_out), .yo(q_out), .zo() ); cic_interp_2stage #(.bw(bw),.N(4)) interp_i(.clock(clock),.reset(reset),.enable(enable), .strobe1(strobe1),.strobe2(strobe2),.strobe3(1'b1),.shift1(shift1),.shift2(shift2), .signal_in(i_in),.signal_out(i_interp_out)); cic_interp_2stage #(.bw(bw),.N(4)) interp_q(.clock(clock),.reset(reset),.enable(enable), .strobe1(strobe1),.strobe2(strobe2),.strobe3(1'b1),.shift1(shift1),.shift2(shift2), .signal_in(q_in),.signal_out(q_interp_out)); phase_acc #(.resolution(32)) nco (.clk(clock),.reset(reset),.enable(enable), .freq(freq),.phase(phase)); endmodule uhd-3.5.5/fpga/usrp2/sdr_lib/duc_chain.v000066400000000000000000000143321224274632000200230ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //! The USRP digital up-conversion chain module duc_chain #( parameter BASE = 0, parameter DSPNO = 0, parameter WIDTH = 24 ) (input clk, input rst, input clr, input set_stb, input [7:0] set_addr, input [31:0] set_data, input set_stb_user, input [7:0] set_addr_user, input [31:0] set_data_user, // To TX frontend output [WIDTH-1:0] tx_fe_i, output [WIDTH-1:0] tx_fe_q, // From TX control input [31:0] sample, input run, output strobe, output [31:0] debug ); wire duc_enb; wire [17:0] scale_factor; wire [31:0] phase_inc; reg [31:0] phase; wire [7:0] interp_rate; wire [3:0] tx_femux_a, tx_femux_b; wire enable_hb1, enable_hb2; wire rate_change; setting_reg #(.my_addr(BASE+0)) sr_0 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(phase_inc),.changed()); setting_reg #(.my_addr(BASE+1), .width(18)) sr_1 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(scale_factor),.changed()); setting_reg #(.my_addr(BASE+2), .width(10)) sr_2 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({enable_hb1, enable_hb2, interp_rate}),.changed(rate_change)); // Strobes are all now delayed by 1 cycle for timing reasons wire strobe_cic_pre, strobe_hb1_pre, strobe_hb2_pre; reg strobe_cic = 1; reg strobe_hb1 = 1; reg strobe_hb2 = 1; cic_strober #(.WIDTH(8)) cic_strober(.clock(clk),.reset(rst),.enable(duc_enb & ~rate_change),.rate(interp_rate), .strobe_fast(1),.strobe_slow(strobe_cic_pre) ); cic_strober #(.WIDTH(2)) hb2_strober(.clock(clk),.reset(rst),.enable(duc_enb & ~rate_change),.rate(enable_hb2 ? 2 : 1), .strobe_fast(strobe_cic_pre),.strobe_slow(strobe_hb2_pre) ); cic_strober #(.WIDTH(2)) hb1_strober(.clock(clk),.reset(rst),.enable(duc_enb & ~rate_change),.rate(enable_hb1 ? 2 : 1), .strobe_fast(strobe_hb2_pre),.strobe_slow(strobe_hb1_pre) ); always @(posedge clk) strobe_hb1 <= strobe_hb1_pre; always @(posedge clk) strobe_hb2 <= strobe_hb2_pre; always @(posedge clk) strobe_cic <= strobe_cic_pre; // NCO always @(posedge clk) if(rst) phase <= 0; else if(~duc_enb) phase <= 0; else phase <= phase + phase_inc; wire signed [17:0] da, db; wire signed [35:0] prod_i, prod_q; wire [15:0] bb_i; wire [15:0] bb_q; wire [17:0] i_interp, q_interp; wire [17:0] hb1_i, hb1_q, hb2_i, hb2_q; wire [7:0] cpo = enable_hb2 ? ({interp_rate,1'b0}) : interp_rate; // Note that max CIC rate is 128, which would give an overflow on cpo if enable_hb2 is true, // but the default case inside hb_interp handles this hb_interp #(.IWIDTH(18),.OWIDTH(18),.ACCWIDTH(WIDTH)) hb_interp_i (.clk(clk),.rst(rst),.bypass(~enable_hb1),.cpo(cpo),.stb_in(strobe_hb1),.data_in({bb_i, 2'b0}),.stb_out(strobe_hb2),.data_out(hb1_i)); hb_interp #(.IWIDTH(18),.OWIDTH(18),.ACCWIDTH(WIDTH)) hb_interp_q (.clk(clk),.rst(rst),.bypass(~enable_hb1),.cpo(cpo),.stb_in(strobe_hb1),.data_in({bb_q, 2'b0}),.stb_out(strobe_hb2),.data_out(hb1_q)); small_hb_int #(.WIDTH(18)) small_hb_interp_i (.clk(clk),.rst(rst),.bypass(~enable_hb2),.stb_in(strobe_hb2),.data_in(hb1_i), .output_rate(interp_rate),.stb_out(strobe_cic),.data_out(hb2_i)); small_hb_int #(.WIDTH(18)) small_hb_interp_q (.clk(clk),.rst(rst),.bypass(~enable_hb2),.stb_in(strobe_hb2),.data_in(hb1_q), .output_rate(interp_rate),.stb_out(strobe_cic),.data_out(hb2_q)); cic_interp #(.bw(18),.N(4),.log2_of_max_rate(7)) cic_interp_i(.clock(clk),.reset(rst),.enable(duc_enb & ~rate_change),.rate(interp_rate), .strobe_in(strobe_cic),.strobe_out(1), .signal_in(hb2_i),.signal_out(i_interp)); cic_interp #(.bw(18),.N(4),.log2_of_max_rate(7)) cic_interp_q(.clock(clk),.reset(rst),.enable(duc_enb & ~rate_change),.rate(interp_rate), .strobe_in(strobe_cic),.strobe_out(1), .signal_in(hb2_q),.signal_out(q_interp)); localparam cwidth = WIDTH; // was 18 localparam zwidth = 24; // was 16 wire [cwidth-1:0] da_c, db_c; cordic_z24 #(.bitwidth(cwidth)) cordic(.clock(clk), .reset(rst), .enable(duc_enb), .xi({i_interp,{(cwidth-18){1'b0}}}),.yi({q_interp,{(cwidth-18){1'b0}}}), .zi(phase[31:32-zwidth]), .xo(da_c),.yo(db_c),.zo() ); MULT18X18S MULT18X18S_inst (.P(prod_i), // 36-bit multiplier output .A(da_c[cwidth-1:cwidth-18]), // 18-bit multiplier input .B(scale_factor), // 18-bit multiplier input .C(clk), // Clock input .CE(1), // Clock enable input .R(rst) // Synchronous reset input ); MULT18X18S MULT18X18S_inst_2 (.P(prod_q), // 36-bit multiplier output .A(db_c[cwidth-1:cwidth-18]), // 18-bit multiplier input .B(scale_factor), // 18-bit multiplier input .C(clk), // Clock input .CE(1), // Clock enable input .R(rst) // Synchronous reset input ); dsp_tx_glue #(.DSPNO(DSPNO), .WIDTH(WIDTH)) dsp_tx_glue( .clock(clk), .reset(rst), .clear(clr), .enable(run), .set_stb(set_stb_user), .set_addr(set_addr_user), .set_data(set_data_user), .frontend_i(tx_fe_i), .frontend_q(tx_fe_q), .duc_out_i(prod_i[33:34-WIDTH]), .duc_out_q(prod_q[33:34-WIDTH]), .duc_in_sample({bb_i, bb_q}), .duc_in_strobe(strobe_hb1), .duc_in_enable(duc_enb), .bb_sample(sample), .bb_strobe(strobe)); assign debug = {strobe_cic, strobe_hb1, strobe_hb2,run}; endmodule // dsp_core uhd-3.5.5/fpga/usrp2/sdr_lib/dummy_rx.v000066400000000000000000000042551224274632000177550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `define DSP_CORE_RX_BASE 160 module dummy_rx (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [13:0] adc_a, input adc_ovf_a, input [13:0] adc_b, input adc_ovf_b, output [31:0] sample, input run, output strobe ); wire [15:0] scale_i, scale_q; wire [31:0] phase_inc; reg [31:0] phase; wire [23:0] i_decim, q_decim; wire [7:0] decim_rate; setting_reg #(.my_addr(`DSP_CORE_RX_BASE+0)) sr_0 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(phase_inc),.changed()); setting_reg #(.my_addr(`DSP_CORE_RX_BASE+1)) sr_1 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({scale_i,scale_q}),.changed()); setting_reg #(.my_addr(`DSP_CORE_RX_BASE+2)) sr_2 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(decim_rate),.changed()); strobe_gen strobe_gen(.clock(clk),.reset(rst),.enable(run),.rate(decim_rate), .strobe_in(1),.strobe(strobe) ); reg [15:0] i_out, q_out; assign sample = {i_out,q_out}; always @(posedge clk) if(rst) i_out <= 0; else if(~run) i_out <= 0; else if(strobe) i_out <= i_out + 1; reg run_d1; always @(posedge clk) if(rst) run_d1 <= 0; else run_d1 <= run; always @(posedge clk) if(rst) q_out <= 0; else if (run & ~run_d1) q_out <= q_out + 1; endmodule // ddc_chain uhd-3.5.5/fpga/usrp2/sdr_lib/gen_cordic_consts.py000077500000000000000000000003111224274632000217510ustar00rootroot00000000000000#!/usr/bin/env python import math zwidth = 24 for i in range(24): c = math.atan (1.0/(2**i)) / (2 * math.pi) * (1 << zwidth) print "localparam c%02d = %d'd%d;" % (i, zwidth, round (c)) uhd-3.5.5/fpga/usrp2/sdr_lib/halfband_ideal.v000066400000000000000000000063601224274632000210050ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module halfband_ideal ( input clock, input reset, input enable, input strobe_in, input wire signed [17:0] data_in, output reg strobe_out, output reg signed [17:0] data_out ) ; parameter decim = 1 ; parameter rate = 2 ; reg signed [40:0] temp ; reg signed [17:0] delay[30:0] ; reg signed [17:0] coeffs[30:0] ; reg [7:0] count ; integer i ; initial begin for( i = 0 ; i < 31 ; i = i + 1 ) begin coeffs[i] = 18'd0 ; end coeffs[0] = -1390 ; coeffs[2] = 1604 ; coeffs[4] = -1896 ; coeffs[6] = 2317 ; coeffs[8] = -2979 ; coeffs[10] = 4172 ; coeffs[12] = -6953 ; coeffs[14] = 20860 ; coeffs[15] = 32768 ; coeffs[16] = 20860 ; coeffs[18] = -6953 ; coeffs[20] = 4172 ; coeffs[22] = -2979 ; coeffs[24] = 2317 ; coeffs[26] = -1896 ; coeffs[28] = 1604 ; coeffs[30] = -1390 ; end always @(posedge clock) begin if( reset ) begin count <= 0 ; for( i = 0 ; i < 31 ; i = i + 1 ) begin delay[i] <= 18'd0 ; end temp <= 41'd0 ; data_out <= 18'd0 ; strobe_out <= 1'b0 ; end else if( enable ) begin if( (decim && (count == rate-1)) || !decim ) strobe_out <= strobe_in ; else strobe_out <= 1'b0 ; if( strobe_in ) begin // Increment decimation count count <= count + 1 ; // Shift the input for( i = 30 ; i > 0 ; i = i - 1 ) begin delay[i] = delay[i-1] ; end delay[0] = data_in ; // clear the temp reg temp = 18'd0 ; if( (decim && (count == rate-1)) || !decim ) begin count <= 0 ; for( i = 0 ; i < 31 ; i = i + 1 ) begin // Multiply Accumulate temp = temp + delay[i]*coeffs[i] ; end // Assign data output data_out <= temp >>> 15 ; end end end end endmodule uhd-3.5.5/fpga/usrp2/sdr_lib/halfband_tb.v000066400000000000000000000102571224274632000203340ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module halfband_tb( ) ; // Parameters for instantiation parameter clocks = 2 ; // Number of clocks per input parameter decim = 0 ; // Sets the filter to decimate parameter rate = 2 ; // Sets the decimation rate reg clock ; reg reset ; reg enable ; reg strobe_in ; reg signed [17:0] data_in ; wire strobe_out ; wire signed [17:0] data_out ; // Setup the clock initial clock = 1'b0 ; always #5 clock <= ~clock ; // Come out of reset after a while initial reset = 1'b1 ; initial #100 reset = 1'b0 ; // Enable the entire system initial enable = 1'b1 ; // Instantiate UUT halfband_ideal #( .decim ( decim ), .rate ( rate ) ) uut( .clock ( clock ), .reset ( reset ), .enable ( enable ), .strobe_in ( strobe_in ), .data_in ( data_in ), .strobe_out ( strobe_out ), .data_out ( data_out ) ) ; integer i, ri, ro, infile, outfile ; // Setup file IO initial begin infile = $fopen("input.dat","r") ; outfile = $fopen("output.dat","r") ; $timeformat(-9, 2, " ns", 10) ; end reg endofsim ; reg signed [17:0] compare ; integer noe ; initial noe = 0 ; initial begin // Initialize inputs strobe_in <= 1'd0 ; data_in <= 18'd0 ; // Wait for reset to go away @(negedge reset) #0 ; // While we're still simulating ... while( !endofsim ) begin // Write the input from the file or 0 if EOF... @( posedge clock ) begin #1 ; strobe_in <= 1'b1 ; if( !$feof(infile) ) ri = $fscanf( infile, "%d", data_in ) ; else data_in <= 18'd0 ; end // Clocked in - set the strobe to 0 if the number of // clocks per sample is greater than 1 if( clocks > 1 ) begin @(posedge clock) begin strobe_in <= 1'b0 ; end // Wait for the specified number of cycles for( i = 0 ; i < (clocks-2) ; i = i + 1 ) begin @(posedge clock) #1 ; end end end // Print out the number of errors that occured if( noe ) $display( "FAILED: %d errors during simulation", noe ) ; else $display( "PASSED: Simulation successful" ) ; $stop ; end // Output comparison of simulated values versus known good values always @ (posedge clock) begin if( reset ) endofsim <= 1'b0 ; else begin if( !$feof(outfile) ) begin if( strobe_out ) begin ro = $fscanf( outfile, "%d\n", compare ) ; if( compare != data_out ) begin $display( "%t: %d != %d", $realtime, data_out, compare ) ; noe = noe + 1 ; end end end else begin // Signal end of simulation when no more outputs endofsim <= 1'b1 ; end end end endmodule uhd-3.5.5/fpga/usrp2/sdr_lib/hb/000077500000000000000000000000001224274632000163055ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/sdr_lib/hb/acc.v000066400000000000000000000022721224274632000172250ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module acc (input clock, input reset, input clear, input enable_in, output reg enable_out, input signed [30:0] addend, output reg signed [33:0] sum ); always @(posedge clock) if(reset) sum <= #1 34'd0; //else if(clear & enable_in) // sum <= #1 addend; //else if(clear) // sum <= #1 34'd0; else if(clear) sum <= #1 addend; else if(enable_in) sum <= #1 sum + addend; always @(posedge clock) enable_out <= #1 enable_in; endmodule // acc uhd-3.5.5/fpga/usrp2/sdr_lib/hb/coeff_ram.v000066400000000000000000000027641224274632000204260ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module coeff_ram (input clock, input [3:0] rd_addr, output reg [15:0] rd_data); always @(posedge clock) case (rd_addr) 4'd0 : rd_data <= #1 -16'd16; 4'd1 : rd_data <= #1 16'd74; 4'd2 : rd_data <= #1 -16'd254; 4'd3 : rd_data <= #1 16'd669; 4'd4 : rd_data <= #1 -16'd1468; 4'd5 : rd_data <= #1 16'd2950; 4'd6 : rd_data <= #1 -16'd6158; 4'd7 : rd_data <= #1 16'd20585; 4'd8 : rd_data <= #1 16'd20585; 4'd9 : rd_data <= #1 -16'd6158; 4'd10 : rd_data <= #1 16'd2950; 4'd11 : rd_data <= #1 -16'd1468; 4'd12 : rd_data <= #1 16'd669; 4'd13 : rd_data <= #1 -16'd254; 4'd14 : rd_data <= #1 16'd74; 4'd15 : rd_data <= #1 -16'd16; default : rd_data <= #1 16'd0; endcase // case(rd_addr) endmodule // ram uhd-3.5.5/fpga/usrp2/sdr_lib/hb/coeff_rom.v000066400000000000000000000022011224274632000204260ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module coeff_rom (input clock, input [2:0] addr, output reg [15:0] data); always @(posedge clock) case (addr) 3'd0 : data <= #1 -16'd49; 3'd1 : data <= #1 16'd165; 3'd2 : data <= #1 -16'd412; 3'd3 : data <= #1 16'd873; 3'd4 : data <= #1 -16'd1681; 3'd5 : data <= #1 16'd3135; 3'd6 : data <= #1 -16'd6282; 3'd7 : data <= #1 16'd20628; endcase // case(addr) endmodule // coeff_rom uhd-3.5.5/fpga/usrp2/sdr_lib/hb/halfband_decim.v000066400000000000000000000147331224274632000214040ustar00rootroot00000000000000/* -*- verilog -*- * * USRP - Universal Software Radio Peripheral * * Copyright (C) 2005 Matt Ettus * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA */ /* * This implements a 31-tap halfband filter that decimates by two. * The coefficients are symmetric, and with the exception of the middle tap, * every other coefficient is zero. The middle section of taps looks like this: * * ..., -1468, 0, 2950, 0, -6158, 0, 20585, 32768, 20585, 0, -6158, 0, 2950, 0, -1468, ... * | * middle tap -------+ * * See coeff_rom.v for the full set. The taps are scaled relative to 32768, * thus the middle tap equals 1.0. Not counting the middle tap, there are 8 * non-zero taps on each side, and they are symmetric. A naive implementation * requires a mulitply for each non-zero tap. Because of symmetry, we can * replace 2 multiplies with 1 add and 1 multiply. Thus, to compute each output * sample, we need to perform 8 multiplications. Since the middle tap is 1.0, * we just add the corresponding delay line value. * * About timing: We implement this with a single multiplier, so it takes * 8 cycles to compute a single output. However, since we're decimating by two * we can accept a new input value every 4 cycles. strobe_in is asserted when * there's a new input sample available. Depending on the overall decimation * rate, strobe_in may be asserted less frequently than once every 4 clocks. * On the output side, we assert strobe_out when output contains a new sample. * * Implementation: Every time strobe_in is asserted we store the new data into * the delay line. We split the delay line into two components, one for the * even samples, and one for the odd samples. ram16_odd is the delay line for * the odd samples. This ram is written on each odd assertion of strobe_in, and * is read on each clock when we're computing the dot product. ram16_even is * similar, although because it holds the even samples we must be able to read * two samples from different addresses at the same time, while writing the incoming * even samples. Thus it's "triple-ported". */ module halfband_decim (input clock, input reset, input enable, input strobe_in, output wire strobe_out, input wire [15:0] data_in, output reg [15:0] data_out,output wire [15:0] debugctrl); reg [3:0] rd_addr1; reg [3:0] rd_addr2; reg [3:0] phase; reg [3:0] base_addr; wire signed [15:0] mac_out,middle_data, sum, coeff; wire signed [30:0] product; wire signed [33:0] sum_even; wire clear; reg store_odd; always @(posedge clock) if(reset) store_odd <= #1 1'b0; else if(strobe_in) store_odd <= #1 ~store_odd; wire start = strobe_in & store_odd; always @(posedge clock) if(reset) base_addr <= #1 4'd0; else if(start) base_addr <= #1 base_addr + 4'd1; always @(posedge clock) if(reset) phase <= #1 4'd8; else if (start) phase <= #1 4'd0; else if(phase != 4'd8) phase <= #1 phase + 4'd1; reg start_d1,start_d2,start_d3,start_d4,start_d5,start_d6,start_d7,start_d8,start_d9,start_dA,start_dB,start_dC,start_dD; always @(posedge clock) begin start_d1 <= #1 start; start_d2 <= #1 start_d1; start_d3 <= #1 start_d2; start_d4 <= #1 start_d3; start_d5 <= #1 start_d4; start_d6 <= #1 start_d5; start_d7 <= #1 start_d6; start_d8 <= #1 start_d7; start_d9 <= #1 start_d8; start_dA <= #1 start_d9; start_dB <= #1 start_dA; start_dC <= #1 start_dB; start_dD <= #1 start_dC; end // always @ (posedge clock) reg mult_en, mult_en_pre; always @(posedge clock) begin mult_en_pre <= #1 phase!=8; mult_en <= #1 mult_en_pre; end assign clear = start_d4; // was dC wire latch_result = start_d4; // was dC assign strobe_out = start_d5; // was dD wire acc_en; always @* case(phase[2:0]) 3'd0 : begin rd_addr1 = base_addr + 4'd0; rd_addr2 = base_addr + 4'd15; end 3'd1 : begin rd_addr1 = base_addr + 4'd1; rd_addr2 = base_addr + 4'd14; end 3'd2 : begin rd_addr1 = base_addr + 4'd2; rd_addr2 = base_addr + 4'd13; end 3'd3 : begin rd_addr1 = base_addr + 4'd3; rd_addr2 = base_addr + 4'd12; end 3'd4 : begin rd_addr1 = base_addr + 4'd4; rd_addr2 = base_addr + 4'd11; end 3'd5 : begin rd_addr1 = base_addr + 4'd5; rd_addr2 = base_addr + 4'd10; end 3'd6 : begin rd_addr1 = base_addr + 4'd6; rd_addr2 = base_addr + 4'd9; end 3'd7 : begin rd_addr1 = base_addr + 4'd7; rd_addr2 = base_addr + 4'd8; end default: begin rd_addr1 = base_addr + 4'd0; rd_addr2 = base_addr + 4'd15; end endcase // case(phase) coeff_rom coeff_rom (.clock(clock),.addr(phase[2:0]-3'd1),.data(coeff)); ram16_2sum ram16_even (.clock(clock),.write(strobe_in & ~store_odd), .wr_addr(base_addr),.wr_data(data_in), .rd_addr1(rd_addr1),.rd_addr2(rd_addr2), .sum(sum)); ram16 ram16_odd (.clock(clock),.write(strobe_in & store_odd), // Holds middle items .wr_addr(base_addr),.wr_data(data_in), //.rd_addr(base_addr+4'd7),.rd_data(middle_data)); .rd_addr(base_addr+4'd6),.rd_data(middle_data)); mult mult(.clock(clock),.x(coeff),.y(sum),.product(product),.enable_in(mult_en),.enable_out(acc_en)); acc acc(.clock(clock),.reset(reset),.enable_in(acc_en),.enable_out(), .clear(clear),.addend(product),.sum(sum_even)); wire signed [33:0] dout = sum_even + {{4{middle_data[15]}},middle_data,14'b0}; // We already divided product by 2!!!! always @(posedge clock) if(reset) data_out <= #1 16'd0; else if(latch_result) data_out <= #1 dout[30:15] + (dout[33]& |dout[14:0]); assign debugctrl = { clock,reset,acc_en,mult_en,clear,latch_result,store_odd,strobe_in,strobe_out,phase}; endmodule // halfband_decim uhd-3.5.5/fpga/usrp2/sdr_lib/hb/halfband_interp.v000066400000000000000000000104701224274632000216160ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module halfband_interp (input clock, input reset, input enable, input strobe_in, input strobe_out, input [15:0] signal_in_i, input [15:0] signal_in_q, output reg [15:0] signal_out_i, output reg [15:0] signal_out_q, output wire [12:0] debug); wire [15:0] coeff_ram_out; wire [15:0] data_ram_out_i; wire [15:0] data_ram_out_q; wire [3:0] data_rd_addr; reg [3:0] data_wr_addr; reg [2:0] coeff_rd_addr; wire filt_done; wire [15:0] mac_out_i; wire [15:0] mac_out_q; reg [15:0] delayed_middle_i, delayed_middle_q; wire [7:0] shift = 8'd9; reg stb_out_happened; wire [15:0] data_ram_out_i_b; always @(posedge clock) if(strobe_in) stb_out_happened <= #1 1'b0; else if(strobe_out) stb_out_happened <= #1 1'b1; assign debug = {filt_done,data_rd_addr,data_wr_addr,coeff_rd_addr}; wire [15:0] signal_out_i = stb_out_happened ? mac_out_i : delayed_middle_i; wire [15:0] signal_out_q = stb_out_happened ? mac_out_q : delayed_middle_q; /* always @(posedge clock) if(reset) begin signal_out_i <= #1 16'd0; signal_out_q <= #1 16'd0; end else if(strobe_in) begin signal_out_i <= #1 delayed_middle_i; // Multiply by 1 for middle coeff signal_out_q <= #1 delayed_middle_q; end //else if(filt_done&stb_out_happened) else if(stb_out_happened) begin signal_out_i <= #1 mac_out_i; signal_out_q <= #1 mac_out_q; end */ always @(posedge clock) if(reset) coeff_rd_addr <= #1 3'd0; else if(coeff_rd_addr != 3'd0) coeff_rd_addr <= #1 coeff_rd_addr + 3'd1; else if(strobe_in) coeff_rd_addr <= #1 3'd1; reg filt_done_d1; always@(posedge clock) filt_done_d1 <= #1 filt_done; always @(posedge clock) if(reset) data_wr_addr <= #1 4'd0; //else if(strobe_in) else if(filt_done & ~filt_done_d1) data_wr_addr <= #1 data_wr_addr + 4'd1; always @(posedge clock) if(coeff_rd_addr == 3'd7) begin delayed_middle_i <= #1 data_ram_out_i_b; // delayed_middle_q <= #1 data_ram_out_q_b; end // always @(posedge clock) // if(reset) // data_rd_addr <= #1 4'd0; // else if(strobe_in) // data_rd_addr <= #1 data_wr_addr + 4'd1; // else if(!filt_done) // data_rd_addr <= #1 data_rd_addr + 4'd1; // else // data_rd_addr <= #1 data_wr_addr; wire [3:0] data_rd_addr1 = data_wr_addr + {1'b0,coeff_rd_addr}; wire [3:0] data_rd_addr2 = data_wr_addr + 15 - {1'b0,coeff_rd_addr}; // always @(posedge clock) // if(reset) // filt_done <= #1 1'b1; // else if(strobe_in) // filt_done <= #1 1'b0; // else if(coeff_rd_addr == 4'd0) // filt_done <= #1 1'b1; assign filt_done = (coeff_rd_addr == 3'd0); coeff_ram coeff_ram ( .clock(clock),.rd_addr({1'b0,coeff_rd_addr}),.rd_data(coeff_ram_out) ); ram16_2sum data_ram_i ( .clock(clock),.write(strobe_in),.wr_addr(data_wr_addr),.wr_data(signal_in_i), .rd_addr1(data_rd_addr1),.rd_addr2(data_rd_addr2),.rd_data(data_ram_out_i_b),.sum(data_ram_out_i)); ram16_2sum data_ram_q ( .clock(clock),.write(strobe_in),.wr_addr(data_wr_addr),.wr_data(signal_in_q), .rd_addr1(data_rd_addr1),.rd_addr2(data_rd_addr2),.rd_data(data_ram_out_q)); mac mac_i (.clock(clock),.reset(reset),.enable(~filt_done),.clear(strobe_in), .x(data_ram_out_i),.y(coeff_ram_out),.shift(shift),.z(mac_out_i) ); mac mac_q (.clock(clock),.reset(reset),.enable(~filt_done),.clear(strobe_in), .x(data_ram_out_q),.y(coeff_ram_out),.shift(shift),.z(mac_out_q) ); endmodule // halfband_interp uhd-3.5.5/fpga/usrp2/sdr_lib/hb/hbd_tb/000077500000000000000000000000001224274632000175275ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/sdr_lib/hb/hbd_tb/HBD000066400000000000000000000041771224274632000200600ustar00rootroot00000000000000*-6.432683 5736 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 @28 test_hbd.clock test_hbd.reset @420 test_hbd.halfband_decim.middle_data[15:0] @22 test_hbd.halfband_decim.sum_even[33:0] test_hbd.halfband_decim.base_addr[3:0] @420 test_hbd.i_in[15:0] @24 test_hbd.halfband_decim.phase[3:0] test_hbd.halfband_decim.ram16_even.rd_addr1[3:0] test_hbd.halfband_decim.ram16_even.rd_addr2[3:0] test_hbd.halfband_decim.ram16_even.wr_addr[3:0] test_hbd.halfband_decim.ram16_even.wr_data[15:0] @28 test_hbd.halfband_decim.ram16_even.write @420 test_hbd.halfband_decim.sum[15:0] test_hbd.halfband_decim.product[30:0] test_hbd.halfband_decim.dout[33:0] test_hbd.halfband_decim.sum_even[33:0] @22 test_hbd.halfband_decim.acc.addend[30:0] @28 test_hbd.halfband_decim.acc.reset @420 test_hbd.halfband_decim.acc.sum[33:0] test_hbd.halfband_decim.mult.x[15:0] test_hbd.halfband_decim.mult.y[15:0] @28 test_hbd.halfband_decim.acc.clear test_hbd.strobe_in test_hbd.strobe_out test_hbd.halfband_decim.acc_en @420 test_hbd.i_out[15:0] @28 test_hbd.halfband_decim.mult_en test_hbd.halfband_decim.latch_result @420 test_hbd.halfband_decim.sum[15:0] test_hbd.halfband_decim.sum_even[33:0] test_hbd.halfband_decim.dout[33:0] test_hbd.halfband_decim.data_out[15:0] @22 test_hbd.halfband_decim.data_out[15:0] @28 test_hbd.halfband_decim.dout[33:0] @29 test_hbd.halfband_decim.acc_en @22 test_hbd.halfband_decim.base_addr[3:0] @28 test_hbd.halfband_decim.clear test_hbd.halfband_decim.latch_result test_hbd.halfband_decim.mult_en test_hbd.halfband_decim.mult_en_pre @22 test_hbd.halfband_decim.phase[3:0] @28 test_hbd.halfband_decim.start test_hbd.halfband_decim.start_d1 test_hbd.halfband_decim.start_d2 test_hbd.halfband_decim.start_d3 test_hbd.halfband_decim.start_d4 test_hbd.halfband_decim.start_d5 test_hbd.halfband_decim.start_d6 test_hbd.halfband_decim.start_d7 test_hbd.halfband_decim.start_d8 test_hbd.halfband_decim.start_d9 test_hbd.halfband_decim.start_dA test_hbd.halfband_decim.start_dB test_hbd.halfband_decim.start_dC test_hbd.halfband_decim.start_dD test_hbd.halfband_decim.store_odd test_hbd.halfband_decim.strobe_in test_hbd.halfband_decim.strobe_out uhd-3.5.5/fpga/usrp2/sdr_lib/hb/hbd_tb/really_golden000066400000000000000000000016571224274632000223030ustar00rootroot00000000000000VCD info: dumpfile test_hbd.vcd opened for output. x x x x x x x x x x x x x x x x 0 0 0 0 0 0 0 0 0 0 0 8192 0 0 0 0 0 0 0 0 0 0 0 0 0 - 4 18 - 63 167 - 367 737 - 1539 5146 5146 - 1539 737 - 367 167 - 63 18 - 4 0 0 0 0 0 - 4 14 - 49 118 - 249 488 7141 12287 17433 15894 16631 16264 16432 16368 16387 16383 16383 16383 16383 16383 16387 16368 16432 16264 16631 15894 9241 4095 - 1051 488 - 249 118 - 49 14 - 4 0 0 0 0 0 - 4 14 - 49 118 - 249 488 - 1051 12287 17433 15894 16631 16264 16432 16368 16387 16383 16383 16383 16383 16383 16387 16368 16432 16264 16631 15894 17433 4095 - 1051 488 - 249 118 - 49 14 - 4 0 0 0 0 uhd-3.5.5/fpga/usrp2/sdr_lib/hb/hbd_tb/regression000066400000000000000000000051731224274632000216400ustar00rootroot00000000000000echo "Baseline 1000" iverilog -y .. -o test_hbd -DRATE=1000 test_hbd.v ; ./test_hbd >golden diff golden really_golden echo echo "Test 100" iverilog -y .. -o test_hbd -DRATE=100 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 50" iverilog -y .. -o test_hbd -DRATE=50 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 40" iverilog -y .. -o test_hbd -DRATE=40 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 30" iverilog -y .. -o test_hbd -DRATE=30 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 25" iverilog -y .. -o test_hbd -DRATE=25 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 20" iverilog -y .. -o test_hbd -DRATE=20 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 19" iverilog -y .. -o test_hbd -DRATE=19 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 18" iverilog -y .. -o test_hbd -DRATE=18 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 17" iverilog -y .. -o test_hbd -DRATE=17 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 16" iverilog -y .. -o test_hbd -DRATE=16 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 15" iverilog -y .. -o test_hbd -DRATE=15 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 14" iverilog -y .. -o test_hbd -DRATE=14 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 13" iverilog -y .. -o test_hbd -DRATE=13 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 12" iverilog -y .. -o test_hbd -DRATE=12 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 11" iverilog -y .. -o test_hbd -DRATE=11 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 10" iverilog -y .. -o test_hbd -DRATE=10 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 9" iverilog -y .. -o test_hbd -DRATE=9 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 8" iverilog -y .. -o test_hbd -DRATE=8 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 7" iverilog -y .. -o test_hbd -DRATE=7 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 6" iverilog -y .. -o test_hbd -DRATE=6 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 5" iverilog -y .. -o test_hbd -DRATE=5 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 4" iverilog -y .. -o test_hbd -DRATE=4 test_hbd.v ; ./test_hbd >output ; diff output golden echo echo "Test 3" iverilog -y .. -o test_hbd -DRATE=3 test_hbd.v ; ./test_hbd >output ; diff output golden uhd-3.5.5/fpga/usrp2/sdr_lib/hb/hbd_tb/run_hbd000077500000000000000000000000741224274632000210770ustar00rootroot00000000000000#!/bin/sh iverilog -y .. -o test_hbd test_hbd.v ./test_hbd uhd-3.5.5/fpga/usrp2/sdr_lib/hb/hbd_tb/test_hbd.v000066400000000000000000000044041224274632000215140ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module test_hbd(); reg clock; initial clock = 1'b0; always #5 clock <= ~clock; reg reset; initial reset = 1'b1; initial #1000 reset = 1'b0; initial $dumpfile("test_hbd.vcd"); initial $dumpvars(0,test_hbd); reg [15:0] i_in, q_in; wire [15:0] i_out, q_out; reg strobe_in; wire strobe_out; reg coeff_write; reg [15:0] coeff_data; reg [4:0] coeff_addr; halfband_decim halfband_decim ( .clock(clock),.reset(reset),.enable(),.strobe_in(strobe_in),.strobe_out(strobe_out), .data_in(i_in),.data_out(i_out) ); always @(posedge strobe_out) if(i_out[15]) $display("-%d",65536-i_out); else $display("%d",i_out); initial begin strobe_in = 1'b0; @(negedge reset); @(posedge clock); while(1) begin strobe_in <= #1 1'b1; @(posedge clock); strobe_in <= #1 1'b0; repeat (`RATE) @(posedge clock); end end initial #10000000 $finish; // Just in case... initial begin i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); i_in <= #1 16'd16384; @(posedge strobe_in); i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); i_in <= #1 16'd16384; @(posedge strobe_in); i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); i_in <= #1 16'd16384; repeat (40) @(posedge strobe_in); i_in <= #1 16'd0; repeat (41) @(posedge strobe_in); i_in <= #1 16'd16384; repeat (40) @(posedge strobe_in); i_in <= #1 16'd0; repeat (40) @(posedge strobe_in); repeat (7) @(posedge clock); $finish; end // initial begin endmodule // test_hb uhd-3.5.5/fpga/usrp2/sdr_lib/hb/mac.v000066400000000000000000000047011224274632000172360ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module mac (input clock, input reset, input enable, input clear, input signed [15:0] x, input signed [15:0] y, input [7:0] shift, output [15:0] z ); reg signed [30:0] product; reg signed [39:0] z_int; reg signed [15:0] z_shift; reg enable_d1; always @(posedge clock) enable_d1 <= #1 enable; always @(posedge clock) if(reset | clear) z_int <= #1 40'd0; else if(enable_d1) z_int <= #1 z_int + {{9{product[30]}},product}; always @(posedge clock) product <= #1 x*y; always @* // FIXME full case? parallel case? case(shift) //8'd0 : z_shift <= z_int[39:24]; //8'd1 : z_shift <= z_int[38:23]; //8'd2 : z_shift <= z_int[37:22]; //8'd3 : z_shift <= z_int[36:21]; //8'd4 : z_shift <= z_int[35:20]; //8'd5 : z_shift <= z_int[34:19]; 8'd6 : z_shift <= z_int[33:18]; 8'd7 : z_shift <= z_int[32:17]; 8'd8 : z_shift <= z_int[31:16]; 8'd9 : z_shift <= z_int[30:15]; 8'd10 : z_shift <= z_int[29:14]; 8'd11 : z_shift <= z_int[28:13]; //8'd12 : z_shift <= z_int[27:12]; //8'd13 : z_shift <= z_int[26:11]; //8'd14 : z_shift <= z_int[25:10]; //8'd15 : z_shift <= z_int[24:9]; //8'd16 : z_shift <= z_int[23:8]; //8'd17 : z_shift <= z_int[22:7]; //8'd18 : z_shift <= z_int[21:6]; //8'd19 : z_shift <= z_int[20:5]; //8'd20 : z_shift <= z_int[19:4]; //8'd21 : z_shift <= z_int[18:3]; //8'd22 : z_shift <= z_int[17:2]; //8'd23 : z_shift <= z_int[16:1]; //8'd24 : z_shift <= z_int[15:0]; default : z_shift <= z_int[15:0]; endcase // case(shift) // FIXME do we need to saturate? //assign z = z_shift; assign z = z_int[15:0]; endmodule // mac uhd-3.5.5/fpga/usrp2/sdr_lib/hb/mult.v000066400000000000000000000020271224274632000174560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module mult (input clock, input signed [15:0] x, input signed [15:0] y, output reg signed [30:0] product, input enable_in, output reg enable_out ); always @(posedge clock) if(enable_in) product <= #1 x*y; else product <= #1 31'd0; always @(posedge clock) enable_out <= #1 enable_in; endmodule // mult uhd-3.5.5/fpga/usrp2/sdr_lib/hb/ram16_2port.v000066400000000000000000000022651224274632000205550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ram16_2port (input clock, input write, input [3:0] wr_addr, input [15:0] wr_data, input [3:0] rd_addr1, output reg [15:0] rd_data1, input [3:0] rd_addr2, output reg [15:0] rd_data2); reg [15:0] ram_array [0:31]; always @(posedge clock) rd_data1 <= #1 ram_array[rd_addr1]; always @(posedge clock) rd_data2 <= #1 ram_array[rd_addr2]; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; endmodule // ram16_2port uhd-3.5.5/fpga/usrp2/sdr_lib/hb/ram16_2sum.v000066400000000000000000000025141224274632000203720ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ram16_2sum (input clock, input write, input [3:0] wr_addr, input [15:0] wr_data, input [3:0] rd_addr1, input [3:0] rd_addr2, output reg [15:0] sum); reg signed [15:0] ram_array [0:15]; reg signed [15:0] a,b; wire signed [16:0] sum_int; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; always @(posedge clock) begin a <= #1 ram_array[rd_addr1]; b <= #1 ram_array[rd_addr2]; end assign sum_int = {a[15],a} + {b[15],b}; always @(posedge clock) sum <= #1 sum_int[16:1] + (sum_int[16]&sum_int[0]); endmodule // ram16_2sum uhd-3.5.5/fpga/usrp2/sdr_lib/hb/ram32_2sum.v000066400000000000000000000022571224274632000203740ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ram32_2sum (input clock, input write, input [4:0] wr_addr, input [15:0] wr_data, input [4:0] rd_addr1, input [4:0] rd_addr2, output reg [15:0] sum); reg [15:0] ram_array [0:31]; wire [16:0] sum_int; always @(posedge clock) if(write) ram_array[wr_addr] <= #1 wr_data; assign sum_int = ram_array[rd_addr1] + ram_array[rd_addr2]; always @(posedge clock) sum <= #1 sum_int[16:1] + (sum_int[16]&sum_int[0]); endmodule // ram32_2sum uhd-3.5.5/fpga/usrp2/sdr_lib/hb_dec.v000066400000000000000000000142631224274632000173150ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Final halfband decimator // Implements impulse responses of the form [A 0 B 0 C .. 0 H 0.5 H 0 .. C 0 B 0 A] // Strobe in cannot come faster than every 2nd clock cycle // These taps designed by halfgen4 from ldoolittle // myfilt = round(2^18 * halfgen4(.7/4,8)) module hb_dec #(parameter WIDTH=24) (input clk, input rst, input bypass, input run, input [8:0] cpi, // Clocks per input -- equal to the decimation ratio ahead of this block input stb_in, input [WIDTH-1:0] data_in, output reg stb_out, output reg [WIDTH-1:0] data_out); localparam INTWIDTH = 17; localparam ACCWIDTH = WIDTH + 3; // Round off inputs to 17 bits because of 18 bit multipliers wire [INTWIDTH-1:0] data_rnd; wire stb_rnd; round_sd #(.WIDTH_IN(WIDTH),.WIDTH_OUT(INTWIDTH)) round_in (.clk(clk),.reset(rst),.in(data_in),.strobe_in(stb_in),.out(data_rnd),.strobe_out(stb_rnd)); // Control reg [3:0] addr_odd_a, addr_odd_b, addr_odd_c, addr_odd_d; wire write_odd, write_even, do_mult; reg odd; reg [2:0] phase, phase_d1; reg stb_out_int; wire clear, do_acc; assign do_mult = 1; always @(posedge clk) if(rst | ~run) odd <= 0; else if(stb_rnd) odd <= ~odd; assign write_odd = stb_rnd & odd; assign write_even = stb_rnd & ~odd; always @(posedge clk) if(rst | ~run) phase <= 0; else if(stb_rnd & odd) phase <= 1; else if(phase == 4) phase <= 0; else if(phase != 0) phase <= phase + 1; always @(posedge clk) phase_d1 <= phase; reg [15:0] stb_out_pre; always @(posedge clk) if(rst) stb_out_pre <= 0; else stb_out_pre <= {stb_out_pre[14:0],(stb_rnd & odd)}; always @* case(phase) 1 : begin addr_odd_a = 0; addr_odd_b = 15; end 2 : begin addr_odd_a = 1; addr_odd_b = 14; end 3 : begin addr_odd_a = 2; addr_odd_b = 13; end 4 : begin addr_odd_a = 3; addr_odd_b = 12; end default : begin addr_odd_a = 0; addr_odd_b = 15; end endcase // case(phase) always @* case(phase) 1 : begin addr_odd_c = 4; addr_odd_d = 11; end 2 : begin addr_odd_c = 5; addr_odd_d = 10; end 3 : begin addr_odd_c = 6; addr_odd_d = 9; end 4 : begin addr_odd_c = 7; addr_odd_d = 8; end default : begin addr_odd_c = 4; addr_odd_d = 11; end endcase // case(phase) assign do_acc = |stb_out_pre[6:3]; assign clear = stb_out_pre[3]; // Data wire [INTWIDTH-1:0] data_odd_a, data_odd_b, data_odd_c, data_odd_d; reg [INTWIDTH:0] sum1, sum2; // these are 18-bit inputs to mult reg [WIDTH:0] final_sum; wire [WIDTH-1:0] final_sum_clip; reg [17:0] coeff1, coeff2; wire [35:0] prod1, prod2; always @* // Outer coeffs case(phase_d1) 1 : coeff1 = -107; 2 : coeff1 = 445; 3 : coeff1 = -1271; 4 : coeff1 = 2959; default : coeff1 = -107; endcase // case(phase) always @* // Inner coeffs case(phase_d1) 1 : coeff2 = -6107; 2 : coeff2 = 11953; 3 : coeff2 = -24706; 4 : coeff2 = 82359; default : coeff2 = -6107; endcase // case(phase) srl #(.WIDTH(INTWIDTH)) srl_odd_a (.clk(clk),.write(write_odd),.in(data_rnd),.addr(addr_odd_a),.out(data_odd_a)); srl #(.WIDTH(INTWIDTH)) srl_odd_b (.clk(clk),.write(write_odd),.in(data_rnd),.addr(addr_odd_b),.out(data_odd_b)); srl #(.WIDTH(INTWIDTH)) srl_odd_c (.clk(clk),.write(write_odd),.in(data_rnd),.addr(addr_odd_c),.out(data_odd_c)); srl #(.WIDTH(INTWIDTH)) srl_odd_d (.clk(clk),.write(write_odd),.in(data_rnd),.addr(addr_odd_d),.out(data_odd_d)); always @(posedge clk) sum1 <= {data_odd_a[INTWIDTH-1],data_odd_a} + {data_odd_b[INTWIDTH-1],data_odd_b}; always @(posedge clk) sum2 <= {data_odd_c[INTWIDTH-1],data_odd_c} + {data_odd_d[INTWIDTH-1],data_odd_d}; wire [INTWIDTH-1:0] data_even; reg [3:0] addr_even; always @(posedge clk) case(cpi) // 1 is an error 2 : addr_even <= 9; // Maximum speed (overall decim by 4) 3, 4, 5, 6, 7 : addr_even <= 8; default : addr_even <= 7; endcase // case(cpi) srl #(.WIDTH(INTWIDTH)) srl_even (.clk(clk),.write(write_even),.in(data_rnd),.addr(addr_even),.out(data_even)); MULT18X18S mult1(.C(clk), .CE(do_mult), .R(rst), .P(prod1), .A(coeff1), .B(sum1) ); MULT18X18S mult2(.C(clk), .CE(do_mult), .R(rst), .P(prod2), .A(coeff2), .B(sum2) ); reg [35:0] sum_of_prod; always @(posedge clk) sum_of_prod <= prod1 + prod2; // Can't overflow wire [ACCWIDTH-1:0] acc_out; acc #(.IWIDTH(ACCWIDTH-2),.OWIDTH(ACCWIDTH)) acc (.clk(clk),.clear(clear),.acc(do_acc),.in(sum_of_prod[35:38-ACCWIDTH]),.out(acc_out)); wire [ACCWIDTH-1:0] data_even_signext; localparam SHIFT_FACTOR = 6; sign_extend #(.bits_in(INTWIDTH),.bits_out(ACCWIDTH-SHIFT_FACTOR)) signext_data_even (.in(data_even),.out(data_even_signext[ACCWIDTH-1:SHIFT_FACTOR])); assign data_even_signext[SHIFT_FACTOR-1:0] = 0; always @(posedge clk) final_sum <= acc_out + data_even_signext; clip #(.bits_in(WIDTH+1), .bits_out(WIDTH)) clip (.in(final_sum), .out(final_sum_clip)); // Output MUX to allow for bypass wire selected_stb = bypass ? stb_in : stb_out_pre[8]; always @(posedge clk) begin stb_out <= selected_stb; if(selected_stb) data_out <= bypass ? data_in : final_sum_clip; end endmodule // hb_dec uhd-3.5.5/fpga/usrp2/sdr_lib/hb_dec_tb.v000066400000000000000000000107711224274632000200020ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module hb_dec_tb( ) ; // Parameters for instantiation parameter clocks = 9'd12 ; // Number of clocks per input parameter decim = 1 ; // Sets the filter to decimate parameter rate = 2 ; // Sets the decimation rate reg clock ; reg reset ; reg enable ; reg strobe_in ; reg signed [23:0] data_in ; wire strobe_out ; wire signed [23:0] data_out ; initial begin $dumpfile("hb_dec_tb.vcd"); $dumpvars(0,hb_dec_tb); end // Setup the clock initial clock = 1'b0 ; always #5 clock <= ~clock ; // Come out of reset after a while initial reset = 1'b1 ; initial #1000 reset = 1'b0 ; // Enable the entire system initial enable = 1'b1 ; // Instantiate UUT /* halfband_ideal #( .decim ( decim ), .rate ( rate ) ) uut( .clock ( clock ), .reset ( reset ), .enable ( enable ), .strobe_in ( strobe_in ), .data_in ( data_in ), .strobe_out ( strobe_out ), .data_out ( data_out ) ) ; */ hb_dec #(.WIDTH(24)) uut (.clk(clock),.rst(reset),.bypass(0),.run(1),.cpi(clocks),.stb_in(strobe_in),.data_in(data_in), .stb_out(strobe_out),.data_out(data_out) ); integer i, ri, ro, infile, outfile ; always @(posedge clock) begin if(strobe_out) $display(data_out); end // Setup file IO initial begin infile = $fopen("input.dat","r") ; outfile = $fopen("output.dat","r") ; $timeformat(-9, 2, " ns", 10) ; end reg endofsim ; reg signed [17:0] compare ; integer noe ; initial noe = 0 ; initial begin // Initialize inputs strobe_in <= 1'd0 ; data_in <= 18'd0 ; // Wait for reset to go away @(negedge reset) #0 ; // While we're still simulating ... while( !endofsim ) begin // Write the input from the file or 0 if EOF... @( posedge clock ) begin //#1 ; strobe_in <= 1'b1 ; if( !$feof(infile) ) ri = $fscanf( infile, "%d", data_in ) ; else data_in <= 18'd0 ; end // Clocked in - set the strobe to 0 if the number of // clocks per sample is greater than 1 if( clocks > 1 ) begin @(posedge clock) begin strobe_in <= 1'b0 ; end // Wait for the specified number of cycles for( i = 0 ; i < (clocks-2) ; i = i + 1 ) begin @(posedge clock) #1 ; end end end // Print out the number of errors that occured if( noe ) $display( "FAILED: %d errors during simulation", noe ) ; else $display( "PASSED: Simulation successful" ) ; $finish ; end // Output comparison of simulated values versus known good values always @ (posedge clock) begin if( reset ) endofsim <= 1'b0 ; else begin if( !$feof(outfile) ) begin if( strobe_out ) begin ro = $fscanf( outfile, "%d\n", compare ) ; if( compare != data_out ) begin //$display( "%t: %d != %d", $realtime, data_out, compare ) ; noe = noe + 1 ; end end end else begin // Signal end of simulation when no more outputs endofsim <= 1'b1 ; end end end endmodule // hb_dec_tb uhd-3.5.5/fpga/usrp2/sdr_lib/hb_interp.v000066400000000000000000000131471224274632000200630ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // First halfband iterpolator // Implements impulse responses of the form [A 0 B 0 C .. 0 H 0.5 H 0 .. C 0 B 0 A] // Strobe in cannot come faster than every 4th clock cycle, // Strobe out cannot come faster than every 2nd clock cycle // These taps designed by halfgen4 from ldoolittle // myfilt = round(2^18 * halfgen4(.7/4,8)) module hb_interp #(parameter IWIDTH=18, OWIDTH=18, ACCWIDTH=24) (input clk, input rst, input bypass, input [7:0] cpo, // Clocks per output, must be at least 2 input stb_in, input [IWIDTH-1:0] data_in, input stb_out, output reg [OWIDTH-1:0] data_out); localparam MWIDTH = ACCWIDTH-2; localparam CWIDTH = 18; reg [CWIDTH-1:0] coeff1, coeff2; reg [3:0] addr_a, addr_b, addr_c, addr_d, addr_e; wire [IWIDTH-1:0] data_a, data_b, data_c, data_d, data_e, sum1, sum2; wire [35:0] prod1, prod2; reg [2:0] phase, phase_d1, phase_d2, phase_d3, phase_d4, phase_d5; always @(posedge clk) if(rst) phase <= 0; else if(stb_in) phase <= 1; else if(phase==4) phase <= 0; else if(phase!=0) phase <= phase + 1; always @(posedge clk) phase_d1 <= phase; always @(posedge clk) phase_d2 <= phase_d1; always @(posedge clk) phase_d3 <= phase_d2; always @(posedge clk) phase_d4 <= phase_d3; always @(posedge clk) phase_d5 <= phase_d4; srl #(.WIDTH(IWIDTH)) srl_a (.clk(clk),.write(stb_in),.in(data_in),.addr(addr_a),.out(data_a)); srl #(.WIDTH(IWIDTH)) srl_b (.clk(clk),.write(stb_in),.in(data_in),.addr(addr_b),.out(data_b)); srl #(.WIDTH(IWIDTH)) srl_c (.clk(clk),.write(stb_in),.in(data_in),.addr(addr_c),.out(data_c)); srl #(.WIDTH(IWIDTH)) srl_d (.clk(clk),.write(stb_in),.in(data_in),.addr(addr_d),.out(data_d)); srl #(.WIDTH(IWIDTH)) srl_e (.clk(clk),.write(stb_in),.in(data_in),.addr(addr_e),.out(data_e)); always @* case(phase) 1 : begin addr_a = 0; addr_b = 15; end 2 : begin addr_a = 1; addr_b = 14; end 3 : begin addr_a = 2; addr_b = 13; end 4 : begin addr_a = 3; addr_b = 12; end default : begin addr_a = 0; addr_b = 15; end endcase // case(phase) always @* case(phase) 1 : begin addr_c = 4; addr_d = 11; end 2 : begin addr_c = 5; addr_d = 10; end 3 : begin addr_c = 6; addr_d = 9; end 4 : begin addr_c = 7; addr_d = 8; end default : begin addr_c = 4; addr_d = 11; end endcase // case(phase) always @* case(cpo) 2 : addr_e <= 9; 3,4,5,6,7,8 : addr_e <= 8; default : addr_e <= 7; // This case works for 256, which = 0 due to overflow outside this block endcase // case(cpo) always @* // Outer coeffs case(phase_d1) 1 : coeff1 = -107; 2 : coeff1 = 445; 3 : coeff1 = -1271; 4 : coeff1 = 2959; default : coeff1 = -107; endcase // case(phase) always @* // Inner coeffs case(phase_d1) 1 : coeff2 = -6107; 2 : coeff2 = 11953; 3 : coeff2 = -24706; 4 : coeff2 = 82359; default : coeff2 = -6107; endcase // case(phase) add2_reg /*_and_round_reg*/ #(.WIDTH(IWIDTH)) add1 (.clk(clk),.in1(data_a),.in2(data_b),.sum(sum1)); add2_reg /*_and_round_reg*/ #(.WIDTH(IWIDTH)) add2 (.clk(clk),.in1(data_c),.in2(data_d),.sum(sum2)); // sum1, sum2 available on phase_d1 wire do_mult = 1; MULT18X18S mult1(.C(clk), .CE(do_mult), .R(rst), .P(prod1), .A(coeff1), .B(sum1) ); MULT18X18S mult2(.C(clk), .CE(do_mult), .R(rst), .P(prod2), .A(coeff2), .B(sum2) ); // prod1, prod2 available on phase_d2 wire [MWIDTH-1:0] sum_of_prod; add2_and_round_reg #(.WIDTH(MWIDTH)) add3 (.clk(clk),.in1(prod1[35:36-MWIDTH]),.in2(prod2[35:36-MWIDTH]),.sum(sum_of_prod)); // sum_of_prod available on phase_d3 wire [ACCWIDTH-1:0] acc_out; wire [OWIDTH-1:0] acc_round; wire clear = (phase_d3 == 1); wire do_acc = (phase_d3 != 0); acc #(.IWIDTH(MWIDTH),.OWIDTH(ACCWIDTH)) acc (.clk(clk),.clear(clear),.acc(do_acc),.in(sum_of_prod),.out(acc_out)); // acc_out available on phase_d4 wire [ACCWIDTH-6:0] clipped_acc; clip #(.bits_in(ACCWIDTH),.bits_out(ACCWIDTH-5)) final_clip(.in(acc_out),.out(clipped_acc)); reg [ACCWIDTH-6:0] clipped_reg; always @(posedge clk) if(phase_d4 == 4) clipped_reg <= clipped_acc; // clipped_reg available on phase_d5 wire [OWIDTH-1:0] data_out_round; round #(.bits_in(ACCWIDTH-5),.bits_out(OWIDTH)) final_round (.in(clipped_reg),.out(data_out_round)); reg odd; always @(posedge clk) if(rst) odd <= 0; else if(stb_in) odd <= 0; else if(stb_out) odd <= 1; always @(posedge clk) if(bypass) data_out <= data_in; else if(stb_out) if(odd) data_out <= data_e; else data_out <= data_out_round; // data_out available on phase_d6 endmodule // hb_interp uhd-3.5.5/fpga/usrp2/sdr_lib/hb_interp_tb.v000066400000000000000000000104571224274632000205510ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module hb_interp_tb( ) ; // Parameters for instantiation parameter clocks = 8'd2 ; // Number of clocks per output parameter decim = 1 ; // Sets the filter to decimate parameter rate = 2 ; // Sets the decimation rate reg clock ; reg reset ; reg enable ; wire strobe_in ; reg signed [17:0] data_in ; wire strobe_out ; wire signed [17:0] data_out ; initial begin $dumpfile("hb_interp_tb.vcd"); $dumpvars(0,hb_interp_tb); end // Setup the clock initial clock = 1'b0 ; always #5 clock <= ~clock ; // Come out of reset after a while initial reset = 1'b1 ; initial #1000 reset = 1'b0 ; always @(posedge clock) enable <= ~reset; // Instantiate UUT /* halfband_ideal #( .decim ( decim ), .rate ( rate ) ) uut( .clock ( clock ), .reset ( reset ), .enable ( enable ), .strobe_in ( strobe_in ), .data_in ( data_in ), .strobe_out ( strobe_out ), .data_out ( data_out ) ) ; */ cic_strober #(.WIDTH(8)) out_strober(.clock(clock),.reset(reset),.enable(enable),.rate(clocks), .strobe_fast(1),.strobe_slow(strobe_out) ); cic_strober #(.WIDTH(8)) in_strober(.clock(clock),.reset(reset),.enable(enable),.rate(2), .strobe_fast(strobe_out),.strobe_slow(strobe_in) ); hb_interp #() uut (.clk(clock),.rst(reset),.bypass(0),.cpo(clocks),.stb_in(strobe_in),.data_in(data_in), .stb_out(strobe_out),/* .output_rate(clocks), */ .data_out(data_out) ); integer i, ri, ro, infile, outfile ; always @(posedge clock) begin if(strobe_out) $display(data_out); end // Setup file IO initial begin infile = $fopen("input.dat","r") ; outfile = $fopen("output.dat","r") ; $timeformat(-9, 2, " ns", 10) ; end reg endofsim ; reg signed [17:0] compare ; integer noe ; initial noe = 0 ; initial begin // Initialize inputs data_in <= 18'd0 ; // Wait for reset to go away @(negedge reset) #0 ; // While we're still simulating ... while( !endofsim ) begin // Write the input from the file or 0 if EOF... @( negedge clock ) begin if(strobe_in) if( !$feof(infile) ) ri <= #1 $fscanf( infile, "%d", data_in ) ; else data_in <= 18'd0 ; end end // Print out the number of errors that occured if( noe ) $display( "FAILED: %d errors during simulation", noe ) ; else $display( "PASSED: Simulation successful" ) ; $finish ; end // Output comparison of simulated values versus known good values always @ (posedge clock) begin if( reset ) endofsim <= 1'b0 ; else begin if( !$feof(outfile) ) begin if( strobe_out ) begin ro = $fscanf( outfile, "%d\n", compare ) ; if( compare != data_out ) begin //$display( "%t: %d != %d", $realtime, data_out, compare ) ; noe = noe + 1 ; end end end else begin // Signal end of simulation when no more outputs if($feof(infile)) endofsim <= 1'b1 ; end end end endmodule // small_hb_int_tb uhd-3.5.5/fpga/usrp2/sdr_lib/hb_tb.v000066400000000000000000000101671224274632000171660ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module hb_tb(); localparam SWIDTH = 17; localparam CWIDTH = 18; localparam TWIDTH = 20; localparam ACC_WIDTH = 40; reg clk = 0, rst = 1; wire strobe_in, strobe_out; reg [SWIDTH-1:0] sample_in; wire signed [SWIDTH:0] sample_out; reg set_stb; reg [7:0] set_addr; reg [31:0] set_data; localparam DECIM = 3; initial $dumpfile("hb_tb.vcd"); initial $dumpvars(0,hb_tb); always #5 clk <= ~clk; initial begin @(posedge clk); @(negedge clk); rst <= 0; end reg [7:0] stb_counter; always @(posedge clk) if(rst) stb_counter <= 0; else if(stb_counter == 0) stb_counter <= DECIM; else stb_counter <= stb_counter - 1; assign strobe_in = (stb_counter == 0); hb_decim #(.SWIDTH(SWIDTH),.CWIDTH(CWIDTH), .TWIDTH(TWIDTH),.ACC_WIDTH(ACC_WIDTH)) hb_decim (.clk(clk), .rst(rst), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .sample_in(sample_in), .strobe_in(strobe_in), .sample_out(sample_out), .strobe_out(strobe_out) ); initial begin : load_coeffs @(negedge rst); @(posedge clk); set_addr <= 124; // load coeffs set_stb <= 1; set_data <= -18'd49; @(posedge clk); set_data <= 18'd165; @(posedge clk); set_data <= -18'd412; @(posedge clk); set_data <= 18'd873; @(posedge clk); set_data <= -18'd1681; @(posedge clk); set_data <= 18'd3135; @(posedge clk); set_data <= -18'd6282; @(posedge clk); set_data <= 18'd20628; @(posedge clk); set_addr <=125; // load table // { stb_out, accum, load_accum, done, even_addr, odd_addr_a, odd_addr_b, coeff_addr } set_data <= {1'b1,1'b1,1'b0,1'b1,4'd15,4'd15,4'd0,4'd0}; // Phase 8 @(posedge clk); set_data <= {1'b0,1'b1,1'b0,1'b0,4'd15,4'd14,4'd1,4'd1}; // Phase 7 @(posedge clk); set_data <= {1'b0,1'b1,1'b0,1'b0,4'd15,4'd13,4'd2,4'd2}; // Phase 6 @(posedge clk); set_data <= {1'b0,1'b1,1'b0,1'b0,4'd15,4'd12,4'd3,4'd3}; // Phase 5 @(posedge clk); set_data <= {1'b0,1'b1,1'b0,1'b0,4'd15,4'd11,4'd4,4'd4}; // Phase 4 @(posedge clk); set_data <= {1'b0,1'b1,1'b0,1'b0,4'd15,4'd10,4'd5,4'd5}; // Phase 3 @(posedge clk); set_data <= {1'b0,1'b1,1'b0,1'b0,4'd15,4'd9,4'd6,4'd6}; // Phase 2 @(posedge clk); set_data <= {1'b0,1'b0,1'b1,1'b0,4'd15,4'd8,4'd7,4'd7}; // Phase 1 @(posedge clk); set_data <= {1'b0,1'b0,1'b0,1'b0,4'd15,4'd8,4'd7,4'd7}; // Phase 0 @(posedge clk); set_stb <= 0; end // block: load_coeffs initial begin sample_in <= 0; repeat(40) @(posedge strobe_in); $display("EVEN"); sample_in <= 0; repeat(10) @(posedge strobe_in); sample_in <= 1; @(posedge strobe_in); sample_in <= 0; repeat(40) @(posedge strobe_in); sample_in <= 1; repeat(40) @(posedge strobe_in); sample_in <= 0; repeat(60) @(posedge strobe_in); sample_in <= 1; repeat(2) @(posedge strobe_in); sample_in <= 0; repeat(60) @(posedge strobe_in); $display("ODD"); sample_in <= 0; repeat(10) @(posedge strobe_in); sample_in <= 1; @(posedge strobe_in); sample_in <= 0; repeat(40) @(posedge strobe_in); sample_in <= 1; repeat(40) @(posedge strobe_in); sample_in <= 0; repeat(60) @(posedge strobe_in); sample_in <= 1; repeat(2) @(posedge strobe_in); sample_in <= 0; repeat(60) @(posedge strobe_in); $finish; end always @(posedge clk) if(strobe_in) $display(sample_in); always @(posedge clk) if(strobe_out) $display("\t",sample_out); endmodule // hb_tb uhd-3.5.5/fpga/usrp2/sdr_lib/input.dat000066400000000000000000000012151224274632000175440ustar00rootroot000000000000000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8388607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8388607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 8388607 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 uhd-3.5.5/fpga/usrp2/sdr_lib/integrate.v000066400000000000000000000026021224274632000200650ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module integrate #(parameter INPUTW = 16, parameter ACCUMW = 32, parameter OUTPUTW = 16) (input clk_i, input rst_i, input ena_i, input dump_i, input [INPUTW-1:0] data_i, output reg stb_o, output reg [OUTPUTW-1:0] integ_o ); wire [ACCUMW-1:0] data_ext = {{ACCUMW-INPUTW{data_i[INPUTW-1]}},data_i}; reg [ACCUMW-1:0] accum; always @(posedge clk_i) if (rst_i | ~ena_i) begin accum <= 0; integ_o <= 0; end else if (dump_i) begin integ_o <= accum[ACCUMW-1:ACCUMW-OUTPUTW]; accum <= data_ext; end else accum <= accum + data_ext; always @(posedge clk_i) stb_o <= dump_i; endmodule // integrate uhd-3.5.5/fpga/usrp2/sdr_lib/med_hb_int.v000066400000000000000000000065401224274632000202000ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Medium halfband decimator (intended to be followed by another stage) // Implements impulse responses of the form [A 0 B 0 C 0 D 0.5 D 0 C 0 B 0 A] // // These taps designed by halfgen_test: // 2 * 131072 * halfgen_test(.8/8,4,1) // -597, 0, 4283, 0, -17516, 0, 79365, 131072, 79365, 0, -17516, 0, 4283, 0, -597 module med_hb_int #(parameter WIDTH=18) (input clk, input rst, input bypass, input stb_in, input [WIDTH-1:0] data_in, input [7:0] output_rate, input stb_out, output reg [WIDTH-1:0] data_out); localparam coeff_a = -597; localparam coeff_b = 4283; localparam coeff_c = -17516; localparam coeff_d = 79365; reg phase; reg [WIDTH-1:0] d1, d2, d3, d4, d5, d6, d7, d8; localparam MWIDTH = 36; wire [MWIDTH-1:0] prod; reg [6:0] stbin_d; always @(posedge clk) stbin_d <= {stbin_d[5:0],stb_in}; always @(posedge clk) if(stb_in) begin d1 <= data_in; d2 <= d1; d3 <= d2; d4 <= d3; d5 <= d4; d6 <= d5; d7 <= d6; d8 <= d7; end wire [WIDTH-1:0] sum_a, sum_b, sum_c, sum_d; add2_and_round_reg #(.WIDTH(WIDTH)) add_a (.clk(clk),.in1(d1),.in2(d8),.sum(sum_a)); add2_and_round_reg #(.WIDTH(WIDTH)) add_b (.clk(clk),.in1(d2),.in2(d7),.sum(sum_b)); add2_and_round_reg #(.WIDTH(WIDTH)) add_c (.clk(clk),.in1(d3),.in2(d6),.sum(sum_c)); add2_and_round_reg #(.WIDTH(WIDTH)) add_d (.clk(clk),.in1(d4),.in2(d5),.sum(sum_d)); MULT18X18S mult1(.C(clk), .CE(1), .R(rst), .P(prod1), .A(stbin_d[1] ? coeff_a : coeff_b), .B(stbin_d[1] ? sum_a : sum_b) ); MULT18X18S mult2(.C(clk), .CE(1), .R(rst), .P(prod2), .A(stbin_d[1] ? coeff_c : coeff_d), .B(stbin_d[1] ? sum_c : sum_d) ); wire [MWIDTH:0] accum; acc #(.IWIDTH(MWIDTH),.OWIDTH(MWIDTH+1)) acc (.clk(clk),.clear(stbin_d[2]),.acc(|stbin_d[3:2]),.in(prod),.out(accum)); wire [WIDTH+2:0] accum_rnd; round_reg #(.bits_in(MWIDTH+1),.bits_out(WIDTH+3)) final_round (.clk(clk),.in(accum),.out(accum_rnd)); wire [WIDTH-1:0] clipped; clip_reg #(.bits_in(WIDTH+3),.bits_out(WIDTH)) final_clip (.clk(clk),.in(accum_rnd),.out(clipped)); reg [WIDTH-1:0] saved, saved_d3; always @(posedge clk) if(stbin_d[6]) saved <= clipped; always @(posedge clk) if(stbin_d[3]) saved_d3 <= d3; always @(posedge clk) if(bypass) data_out <= data_in; else if(stb_in & stb_out) case(output_rate) 1 : data_out <= d6; 2 : data_out <= d4; 3, 4, 5, 6, 7 : data_out <= d3; default : data_out <= d2; endcase // case(output_rate) else if(stb_out) data_out <= saved; endmodule // small_hb_int uhd-3.5.5/fpga/usrp2/sdr_lib/output.dat000066400000000000000000000005011224274632000177420ustar00rootroot00000000000000-1390 0 1604 0 -1896 0 2317 0 -2979 0 4172 0 -6953 0 20860 32768 20860 0 -6953 0 4172 0 -2979 0 2317 0 -1896 0 1604 0 -1390 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 uhd-3.5.5/fpga/usrp2/sdr_lib/pipectrl.v000066400000000000000000000043501224274632000177270ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Control DSP pipeline with 1 cycle per stage. Minimum 2 stages or this won't work module pipectrl #(parameter STAGES = 2, parameter TAGWIDTH = 1) (input clk, input reset, input src_rdy_i, output dst_rdy_o, output src_rdy_o, input dst_rdy_i, output [STAGES-1:0] strobes, output [STAGES-1:0] valids, input [TAGWIDTH-1:0] tag_i, output [TAGWIDTH-1:0] tag_o); wire new_input = src_rdy_i & dst_rdy_o; wire new_output = src_rdy_o & dst_rdy_i; wire [TAGWIDTH-1:0] tags [STAGES-1:0]; assign dst_rdy_o = ~valids[0] | strobes[1]; pipestage #(.TAGWIDTH(TAGWIDTH)) head (.clk(clk),.reset(reset), .stb_in(strobes[0]), .stb_out(strobes[1]),.valid(valids[0]), .tag_in(tag_i), .tag_out(tags[0])); assign strobes[0] = src_rdy_i & (~valids[0] | strobes[1]); genvar i; generate for(i = 1; i < STAGES - 1; i = i + 1) begin : gen_stages pipestage #(.TAGWIDTH(TAGWIDTH)) pipestage (.clk(clk),.reset(reset), .stb_in(strobes[i]),.stb_out(strobes[i+1]),.valid(valids[i]), .tag_in(tags[i-1]),.tag_out(tags[i])); assign strobes[i] = valids[i-1] & (~valids[i] | strobes[i+1]); end endgenerate pipestage #(.TAGWIDTH(TAGWIDTH)) tail (.clk(clk),.reset(reset), .stb_in(strobes[STAGES-1]), .stb_out(dst_rdy_i),.valid(valids[STAGES-1]), .tag_in(tags[STAGES-2]), .tag_out(tags[STAGES-1])); assign strobes[STAGES-1] = valids[STAGES-2] & (~valids[STAGES-1] | new_output); assign src_rdy_o = valids[STAGES-1]; assign tag_o = tags[STAGES-1]; endmodule // pipectrl uhd-3.5.5/fpga/usrp2/sdr_lib/pipestage.v000066400000000000000000000022421224274632000200640ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module pipestage #(parameter TAGWIDTH = 1) (input clk, input reset, input stb_in, input stb_out, output reg valid, input [TAGWIDTH-1:0] tag_in, output reg [TAGWIDTH-1:0] tag_out); always @(posedge clk) if(reset) begin valid <= 0; tag_out <= 0; end else if(stb_in) begin valid <= 1; tag_out <= tag_in; end else if(stb_out) begin valid <= 0; tag_out <= 0; end endmodule // pipestage uhd-3.5.5/fpga/usrp2/sdr_lib/round.v000066400000000000000000000041211224274632000172300ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2011 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Rounding "macro" // Keeps the topmost bits, does proper 2s comp round to zero (unbiased truncation) module round #(parameter bits_in=0, parameter bits_out=0, parameter round_to_zero=0, // original behavior parameter round_to_nearest=1, // lowest noise parameter trunc=0) // round to negative infinity (input [bits_in-1:0] in, output [bits_out-1:0] out, output [bits_in-bits_out:0] err); wire round_corr,round_corr_trunc,round_corr_rtz,round_corr_nearest,round_corr_nearest_safe; assign round_corr_trunc = 0; assign round_corr_rtz = (in[bits_in-1] & |in[bits_in-bits_out-1:0]); assign round_corr_nearest = in[bits_in-bits_out-1]; generate if(bits_in-bits_out > 1) assign round_corr_nearest_safe = (~in[bits_in-1] & (&in[bits_in-2:bits_out])) ? 0 : round_corr_nearest; else assign round_corr_nearest_safe = round_corr_nearest; endgenerate assign round_corr = round_to_nearest ? round_corr_nearest_safe : trunc ? round_corr_trunc : round_to_zero ? round_corr_rtz : 0; // default to trunc assign out = in[bits_in-1:bits_in-bits_out] + round_corr; assign err = in - {out,{(bits_in-bits_out){1'b0}}}; endmodule // round uhd-3.5.5/fpga/usrp2/sdr_lib/round_reg.v000066400000000000000000000025731224274632000200760ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2008 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Rounding "macro" // Keeps the topmost bits, does proper 2s comp rounding (round-to-zero) module round_reg #(parameter bits_in=0, parameter bits_out=0) (input clk, input [bits_in-1:0] in, output reg [bits_out-1:0] out, output reg [bits_in-bits_out:0] err); wire [bits_out-1:0] temp; wire [bits_in-bits_out:0] err_temp; round #(.bits_in(bits_in),.bits_out(bits_out)) round (.in(in),.out(temp), .err(err_temp)); always @(posedge clk) out <= temp; always @(posedge clk) err <= err_temp; endmodule // round_reg uhd-3.5.5/fpga/usrp2/sdr_lib/round_sd.v000066400000000000000000000014061224274632000177210ustar00rootroot00000000000000 module round_sd #(parameter WIDTH_IN=18, parameter WIDTH_OUT=16, parameter DISABLE_SD=0) (input clk, input reset, input [WIDTH_IN-1:0] in, input strobe_in, output [WIDTH_OUT-1:0] out, output strobe_out); localparam ERR_WIDTH = WIDTH_IN - WIDTH_OUT + 1; wire [ERR_WIDTH-1:0] err; wire [WIDTH_IN-1:0] err_ext, sum; sign_extend #(.bits_in(ERR_WIDTH),.bits_out(WIDTH_IN)) ext_err (.in(err), .out(err_ext)); add2_and_clip_reg #(.WIDTH(WIDTH_IN)) add2_and_clip_reg (.clk(clk), .rst(reset), .in1(in), .in2((DISABLE_SD == 0) ? err_ext : 0), .strobe_in(strobe_in), .sum(sum), .strobe_out(strobe_out)); round #(.bits_in(WIDTH_IN),.bits_out(WIDTH_OUT)) round_sum (.in(sum), .out(out), .err(err)); endmodule // round_sd uhd-3.5.5/fpga/usrp2/sdr_lib/round_sd_tb.v000066400000000000000000000023471224274632000204130ustar00rootroot00000000000000 module round_sd_tb(); reg clk, rst; initial rst = 1; initial #1000 rst = 0; initial clk = 0; always #5 clk = ~clk; initial $dumpfile("round_sd_tb.vcd"); initial $dumpvars(0,round_sd_tb); localparam WIDTH_IN = 8; localparam WIDTH_OUT = 5; reg [WIDTH_IN-1:0] adc_in, adc_in_del; wire [WIDTH_OUT-1:0] adc_out; integer factor = 1<<(WIDTH_IN-WIDTH_OUT); always @(posedge clk) if(~rst) begin if(adc_in_del[WIDTH_IN-1]) $write("-%d\t",-adc_in_del); else $write("%d\t",adc_in_del); if(adc_out[WIDTH_OUT-1]) $write("-%d\t",-adc_out); else $write("%d\t",adc_out); $write("\n"); //$write("%f\t",adc_in_del/factor); //$write("%f\n",adc_in_del/factor-adc_out); end round_sd #(.WIDTH_IN(WIDTH_IN),.WIDTH_OUT(WIDTH_OUT)) round_sd(.clk(clk),.reset(rst), .in(adc_in), .strobe_in(1'b1), .out(adc_out), .strobe_out()); reg [5:0] counter = 0; always @(posedge clk) counter <= counter+1; always @(posedge clk) adc_in_del <= adc_in; always @(posedge clk) if(rst) adc_in <= 0; else if(counter == 63) adc_in <= adc_in + 1; initial #300000 $finish; endmodule // longfifo_tb uhd-3.5.5/fpga/usrp2/sdr_lib/round_tb.v000066400000000000000000000033111224274632000177150ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2011 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Rounding "macro" // Keeps the topmost bits, does proper 2s comp round to zero (unbiased truncation) module round_tb(); localparam IW=8; localparam OW=4; localparam EW=IW-OW+1; reg signed [IW-1:0] in; wire signed [OW-1:0] out; wire signed [EW-1:0] err; round #(.bits_in(IW), .bits_out(OW), .round_to_zero(0), // original behavior .round_to_nearest(1), // lowest noise .trunc(0)) // round to negative infinity round (.in(in),.out(out),.err(err)); initial $dumpfile("round_tb.vcd"); initial $dumpvars(0,round_tb); wire signed [IW-1:0] out_round = {out,{IW-OW{1'b0}}}; initial begin in <= -129; #1; repeat (260) begin in <= in + 1; #1; $display("In %d, out %d, out_rnd %d, err %d, real err %d",in,out,out_round,-err,out_round-in); #1; end $finish; end endmodule // round uhd-3.5.5/fpga/usrp2/sdr_lib/rssi.v000066400000000000000000000027501224274632000170670ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module rssi (input clock, input reset, input enable, input [11:0] adc, output [15:0] rssi, output [15:0] over_count); wire over_hi = (adc == 12'h7FF); wire over_lo = (adc == 12'h800); wire over = over_hi | over_lo; reg [25:0] over_count_int; always @(posedge clock) if(reset | ~enable) over_count_int <= #1 26'd0; else over_count_int <= #1 over_count_int + (over ? 26'd65535 : 26'd0) - over_count_int[25:10]; assign over_count = over_count_int[25:10]; wire [11:0] abs_adc = adc[11] ? ~adc : adc; reg [25:0] rssi_int; always @(posedge clock) if(reset | ~enable) rssi_int <= #1 26'd0; else rssi_int <= #1 rssi_int + abs_adc - rssi_int[25:10]; assign rssi = rssi_int[25:10]; endmodule // rssi uhd-3.5.5/fpga/usrp2/sdr_lib/rx_control.v000066400000000000000000000137031224274632000203000ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `define DSP_CORE_RX_BASE 160 module rx_control #(parameter FIFOSIZE = 10) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [31:0] master_time, output overrun, // To FIFO interface of Buffer Pool output [31:0] wr_dat_o, output [3:0] wr_flags_o, input wr_ready_i, output wr_ready_o, // From DSP Core input [31:0] sample, output run, input strobe, // FIFO Levels output [15:0] fifo_occupied, output fifo_full, output fifo_empty, // Debug output [31:0] debug_rx ); wire [31:0] new_time, new_command; wire sc_pre1, clear_overrun; wire [31:0] rcvtime_pre; reg [31:0] rcvtime; wire [8:0] lines_per_frame; wire [20:0] numlines; wire send_imm_pre, chain_pre; reg send_imm, chain; wire full_ctrl, read_ctrl, empty_ctrl, write_ctrl; setting_reg #(.my_addr(`DSP_CORE_RX_BASE+3)) sr_3 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_time),.changed(sc_pre1)); setting_reg #(.my_addr(`DSP_CORE_RX_BASE+4)) sr_4 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_command),.changed()); setting_reg #(.my_addr(`DSP_CORE_RX_BASE+5)) sr_5 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(),.changed(clear_overrun)); reg sc_pre2; always @(posedge clk) sc_pre2 <= sc_pre1; assign write_ctrl = sc_pre1 & ~sc_pre2; shortfifo #(.WIDTH(64)) commandfifo (.clk(clk),.rst(rst),.clear(clear_overrun), .datain({new_command,new_time}), .write(write_ctrl), .full(full_ctrl), .dataout({send_imm_pre,chain_pre,numlines,lines_per_frame,rcvtime_pre}), .read(read_ctrl), .empty(empty_ctrl) ); // Buffer interface to internal FIFO wire have_space, write; wire [35:0] fifo_line; // Internal FIFO, size 9 is 2K, size 10 is 4K fifo_cascade #(.WIDTH(36),.SIZE(FIFOSIZE)) rxfifo (.clk(clk),.reset(rst),.clear(clear_overrun), .datain(fifo_line), .src_rdy_i(write), .dst_rdy_o(have_space), .dataout({wr_flags_o,wr_dat_o}), .src_rdy_o(wr_ready_o), .dst_rdy_i(wr_ready_i), .space(),.occupied(fifo_occupied) ); assign fifo_full = ~have_space; assign fifo_empty = ~wr_ready_o; // Internal FIFO to DSP interface reg [22:0] lines_left; reg [8:0] lines_left_frame; localparam IBS_IDLE = 0; localparam IBS_WAITING = 1; localparam IBS_FIRSTLINE = 2; localparam IBS_RUNNING = 3; localparam IBS_OVERRUN = 4; reg [2:0] ibs_state; wire [32:0] delta_time = {1'b0,rcvtime}-{1'b0,master_time}; wire too_late = (delta_time[32:31] == 2'b11) & ~send_imm; wire go_now = send_imm | ( master_time == rcvtime ); always @(posedge clk) if(rst) begin ibs_state <= IBS_IDLE; lines_left <= 0; lines_left_frame <= 0; rcvtime <= 0; send_imm <= 0; chain <= 0; end else if(clear_overrun) begin ibs_state <= IBS_IDLE; lines_left <= 0; lines_left_frame <= 0; rcvtime <= 0; send_imm <= 0; chain <= 0; end else case(ibs_state) IBS_IDLE : if(~empty_ctrl) begin lines_left <= numlines; lines_left_frame <= lines_per_frame; rcvtime <= rcvtime_pre; ibs_state <= IBS_WAITING; send_imm <= send_imm_pre; chain <= chain_pre; end IBS_WAITING : if(go_now) ibs_state <= IBS_FIRSTLINE; else if(too_late) ibs_state <= IBS_OVERRUN; IBS_FIRSTLINE : if(~have_space | strobe) ibs_state <= IBS_OVERRUN; else ibs_state <= IBS_RUNNING; IBS_RUNNING : if(strobe) if(~have_space) ibs_state <= IBS_OVERRUN; else begin lines_left <= lines_left - 1; if(lines_left == 1) if(~chain) ibs_state <= IBS_IDLE; else if(empty_ctrl) ibs_state <= IBS_OVERRUN; else begin lines_left <= numlines; lines_left_frame <= lines_per_frame; rcvtime <= rcvtime_pre; ibs_state <= IBS_FIRSTLINE; send_imm <= send_imm_pre; chain <= chain_pre; end else if(lines_left_frame == 1) begin lines_left_frame <= lines_per_frame; ibs_state <= IBS_FIRSTLINE; end else lines_left_frame <= lines_left_frame - 1; end // else: !if(~have_space) endcase // case(ibs_state) assign fifo_line = (ibs_state == IBS_FIRSTLINE) ? {2'b0,1'b0,1'b1,master_time} : {2'b0,((lines_left==1)|(lines_left_frame==1)),1'b0,sample}; assign write = ((ibs_state == IBS_FIRSTLINE) | strobe) & have_space; // & (ibs_state == IBS_RUNNING) should strobe only when running assign overrun = (ibs_state == IBS_OVERRUN); assign run = (ibs_state == IBS_RUNNING) | (ibs_state == IBS_FIRSTLINE); assign read_ctrl = ( (ibs_state == IBS_IDLE) | ((ibs_state == IBS_RUNNING) & strobe & have_space & (lines_left==1) & chain) ) & ~empty_ctrl; assign debug_rx = { 8'd0, 1'd0, send_imm, chain, wr_ready_i,wr_ready_o, 2'b0, run, write,have_space,wr_flags_o[1:0],write_ctrl,full_ctrl,read_ctrl,empty_ctrl, sc_pre1, clear_overrun, go_now, too_late, overrun, ibs_state[2:0] }; endmodule // rx_control uhd-3.5.5/fpga/usrp2/sdr_lib/rx_dcoffset.v000066400000000000000000000035551224274632000204210ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module rx_dcoffset #(parameter WIDTH=16, parameter ADDR=8'd0, parameter alpha_shift=20) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [WIDTH-1:0] in, output [WIDTH-1:0] out); wire set_now = set_stb & (ADDR == set_addr); reg fixed; // uses fixed offset wire [WIDTH-1:0] fixed_dco; localparam int_width = WIDTH + alpha_shift; reg [int_width-1:0] integrator; wire [WIDTH-1:0] quantized; always @(posedge clk) if(rst) begin fixed <= 0; integrator <= {int_width{1'b0}}; end else if(set_now) begin fixed <= set_data[31]; if(set_data[30]) integrator <= {set_data[29:0],{(int_width-30){1'b0}}}; end else if(~fixed) integrator <= integrator + {{(alpha_shift){out[WIDTH-1]}},out}; round_sd #(.WIDTH_IN(int_width),.WIDTH_OUT(WIDTH)) round_sd (.clk(clk), .reset(rst), .in(integrator), .strobe_in(1'b1), .out(quantized), .strobe_out()); add2_and_clip_reg #(.WIDTH(WIDTH)) add2_and_clip_reg (.clk(clk), .rst(rst), .in1(in), .in2(-quantized), .strobe_in(1'b1), .sum(out), .strobe_out()); endmodule // rx_dcoffset uhd-3.5.5/fpga/usrp2/sdr_lib/rx_dcoffset_tb.v000066400000000000000000000026501224274632000211010ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns/1ns module rx_dcoffset_tb(); reg clk, rst; initial rst = 1; initial #1000 rst = 0; initial clk = 0; always #5 clk = ~clk; initial $dumpfile("rx_dcoffset_tb.vcd"); initial $dumpvars(0,rx_dcoffset_tb); reg [13:0] adc_in; wire [13:0] adc_out; always @(posedge clk) begin if(adc_in[13]) $write("-%d,",-adc_in); else $write("%d,",adc_in); if(adc_out[13]) $write("-%d\n",-adc_out); else $write("%d\n",adc_out); end rx_dcoffset #(.WIDTH(14),.ADDR(0), .alpha_shift(8)) rx_dcoffset(.clk(clk),.rst(rst),.set_stb(0),.set_addr(0),.set_data(0), .in(adc_in),.out(adc_out)); always @(posedge clk) adc_in <= (($random % 473) + 23)/4; endmodule // longfifo_tb uhd-3.5.5/fpga/usrp2/sdr_lib/rx_frontend.v000066400000000000000000000051461224274632000204410ustar00rootroot00000000000000 module rx_frontend #(parameter BASE = 0, parameter IQCOMP_EN = 1) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [15:0] adc_a, input adc_ovf_a, input [15:0] adc_b, input adc_ovf_b, output [23:0] i_out, output [23:0] q_out, input run, output [31:0] debug ); reg [15:0] adc_i, adc_q; wire [17:0] adc_i_ofs, adc_q_ofs; wire [35:0] corr_i, corr_q; wire [17:0] mag_corr,phase_corr; wire swap_iq; setting_reg #(.my_addr(BASE), .width(1)) sr_8 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(swap_iq),.changed()); always @(posedge clk) if(swap_iq) // Swap {adc_i,adc_q} <= {adc_b,adc_a}; else {adc_i,adc_q} <= {adc_a,adc_b}; setting_reg #(.my_addr(BASE+1),.width(18)) sr_1 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(mag_corr),.changed()); setting_reg #(.my_addr(BASE+2),.width(18)) sr_2 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(phase_corr),.changed()); generate if(IQCOMP_EN == 1) begin rx_dcoffset #(.WIDTH(18),.ADDR(BASE+3)) rx_dcoffset_i (.clk(clk),.rst(rst),.set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .in({adc_i,2'b00}),.out(adc_i_ofs)); rx_dcoffset #(.WIDTH(18),.ADDR(BASE+4)) rx_dcoffset_q (.clk(clk),.rst(rst),.set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .in({adc_q,2'b00}),.out(adc_q_ofs)); MULT18X18S mult_mag_corr (.P(corr_i), .A(adc_i_ofs), .B(mag_corr), .C(clk), .CE(1), .R(rst) ); MULT18X18S mult_phase_corr (.P(corr_q), .A(adc_i_ofs), .B(phase_corr), .C(clk), .CE(1), .R(rst) ); add2_and_clip_reg #(.WIDTH(24)) add_clip_i (.clk(clk), .rst(rst), .in1({adc_i_ofs,6'd0}), .in2(corr_i[35:12]), .strobe_in(1'b1), .sum(i_out), .strobe_out()); add2_and_clip_reg #(.WIDTH(24)) add_clip_q (.clk(clk), .rst(rst), .in1({adc_q_ofs,6'd0}), .in2(corr_q[35:12]), .strobe_in(1'b1), .sum(q_out), .strobe_out()); end // if (IQCOMP_EN == 1) else begin rx_dcoffset #(.WIDTH(24),.ADDR(BASE+3)) rx_dcoffset_i (.clk(clk),.rst(rst),.set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .in({adc_i,8'b00}),.out(i_out)); rx_dcoffset #(.WIDTH(24),.ADDR(BASE+4)) rx_dcoffset_q (.clk(clk),.rst(rst),.set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .in({adc_q,8'b00}),.out(q_out)); end // else: !if(IQCOMP_EN == 1) endgenerate endmodule // rx_frontend uhd-3.5.5/fpga/usrp2/sdr_lib/rx_frontend_tb.v000066400000000000000000000016111224274632000211170ustar00rootroot00000000000000 `timescale 1ns/1ns module rx_frontend_tb(); reg clk, rst; initial rst = 1; initial #1000 rst = 0; initial clk = 0; always #5 clk = ~clk; initial $dumpfile("rx_frontend_tb.vcd"); initial $dumpvars(0,rx_frontend_tb); reg [15:0] adc_in; wire [17:0] adc_out; always @(posedge clk) begin if(adc_in[13]) $write("-%d,",-adc_in); else $write("%d,",adc_in); if(adc_out[13]) $write("-%d\n",-adc_out); else $write("%d\n",adc_out); end rx_frontend #(.BASE(0)) rx_frontend (.clk(clk),.rst(rst), .set_stb(0),.set_addr(0),.set_data(0), .adc_a(adc_in), .adc_ovf_a(0), .adc_b(0), .adc_ovf_b(0), .i_out(adc_out),.q_out(), .run(), .debug()); always @(posedge clk) if(rst) adc_in <= 0; else adc_in <= adc_in + 4; //adc_in <= (($random % 473) + 23)/4; endmodule // rx_frontend_tb uhd-3.5.5/fpga/usrp2/sdr_lib/sign_extend.v000066400000000000000000000021621224274632000204130ustar00rootroot00000000000000// -*- verilog -*- // // USRP - Universal Software Radio Peripheral // // Copyright (C) 2003 Matt Ettus // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA // // Sign extension "macro" // bits_out should be greater than bits_in module sign_extend (in,out); parameter bits_in=0; // FIXME Quartus insists on a default parameter bits_out=0; input [bits_in-1:0] in; output [bits_out-1:0] out; assign out = {{(bits_out-bits_in){in[bits_in-1]}},in}; endmodule uhd-3.5.5/fpga/usrp2/sdr_lib/small_hb_dec.v000066400000000000000000000073211224274632000205020ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Short halfband decimator (intended to be followed by another stage) // Implements impulse responses of the form [A 0 B 0.5 B 0 A] // // These taps designed by halfgen4 from ldoolittle: // 2 * 131072 * halfgen4(.75/8,2) module small_hb_dec #(parameter WIDTH=18) (input clk, input rst, input bypass, input run, input stb_in, input [WIDTH-1:0] data_in, output reg stb_out, output reg [WIDTH-1:0] data_out); // Round off inputs to 17 bits because of 18 bit multipliers localparam INTWIDTH = 17; wire [INTWIDTH-1:0] data_rnd; wire stb_rnd; round_sd #(.WIDTH_IN(WIDTH),.WIDTH_OUT(INTWIDTH)) round_in (.clk(clk),.reset(rst),.in(data_in),.strobe_in(stb_in),.out(data_rnd),.strobe_out(stb_rnd)); reg stb_rnd_d1; reg [INTWIDTH-1:0] data_rnd_d1; always @(posedge clk) stb_rnd_d1 <= stb_rnd; always @(posedge clk) data_rnd_d1 <= data_rnd; wire go; reg phase, go_d1, go_d2, go_d3, go_d4; always @(posedge clk) if(rst | ~run) phase <= 0; else if(stb_rnd_d1) phase <= ~phase; assign go = stb_rnd_d1 & phase; always @(posedge clk) if(rst | ~run) begin go_d1 <= 0; go_d2 <= 0; go_d3 <= 0; go_d4 <= 0; end else begin go_d1 <= go; go_d2 <= go_d1; go_d3 <= go_d2; go_d4 <= go_d3; end wire [17:0] coeff_a = -10690; wire [17:0] coeff_b = 75809; reg [INTWIDTH-1:0] d1, d2, d3, d4 , d5, d6; always @(posedge clk) if(stb_rnd_d1 | rst) begin d1 <= data_rnd_d1; d2 <= d1; d3 <= d2; d4 <= d3; d5 <= d4; d6 <= d5; end reg [17:0] sum_a, sum_b, middle, middle_d1; always @(posedge clk) if(go) begin sum_a <= {data_rnd_d1[INTWIDTH-1],data_rnd_d1} + {d6[INTWIDTH-1],d6}; sum_b <= {d2[INTWIDTH-1],d2} + {d4[INTWIDTH-1],d4}; //middle <= {d3[INTWIDTH-1],d3}; middle <= {d3,1'b0}; end always @(posedge clk) if(go_d1) middle_d1 <= middle; wire [17:0] sum = go_d1 ? sum_b : sum_a; wire [17:0] coeff = go_d1 ? coeff_b : coeff_a; wire [35:0] prod; MULT18X18S mult(.C(clk), .CE(go_d1 | go_d2), .R(rst), .P(prod), .A(coeff), .B(sum) ); localparam ACCWIDTH = 30; reg [ACCWIDTH-1:0] accum; always @(posedge clk) if(rst) accum <= 0; else if(go_d2) accum <= {middle_d1[17],middle_d1[17],middle_d1,{(16+ACCWIDTH-36){1'b0}}} + {prod[35:36-ACCWIDTH]}; else if(go_d3) accum <= accum + {prod[35:36-ACCWIDTH]}; wire [WIDTH:0] accum_rnd; wire [WIDTH-1:0] accum_rnd_clip; wire stb_round; round_sd #(.WIDTH_IN(ACCWIDTH),.WIDTH_OUT(WIDTH+1)) round_acc (.clk(clk), .reset(rst), .in(accum), .strobe_in(go_d4), .out(accum_rnd), .strobe_out(stb_round)); clip #(.bits_in(WIDTH+1),.bits_out(WIDTH)) clip (.in(accum_rnd), .out(accum_rnd_clip)); // Output always @(posedge clk) begin stb_out <= bypass ? stb_in : stb_round; data_out <= bypass ? data_in : accum_rnd_clip; end endmodule // small_hb_dec uhd-3.5.5/fpga/usrp2/sdr_lib/small_hb_dec_tb.v000066400000000000000000000107511224274632000211700ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module hb_dec_tb( ) ; // Parameters for instantiation parameter clocks = 9'd2 ; // Number of clocks per input parameter decim = 1 ; // Sets the filter to decimate parameter rate = 2 ; // Sets the decimation rate reg clock ; reg reset ; reg enable ; reg strobe_in ; reg signed [17:0] data_in ; wire strobe_out ; wire signed [17:0] data_out ; initial begin $dumpfile("hb_dec_tb.vcd"); $dumpvars(0,hb_dec_tb); end // Setup the clock initial clock = 1'b0 ; always #5 clock <= ~clock ; // Come out of reset after a while initial reset = 1'b1 ; initial #1000 reset = 1'b0 ; // Enable the entire system initial enable = 1'b1 ; // Instantiate UUT /* halfband_ideal #( .decim ( decim ), .rate ( rate ) ) uut( .clock ( clock ), .reset ( reset ), .enable ( enable ), .strobe_in ( strobe_in ), .data_in ( data_in ), .strobe_out ( strobe_out ), .data_out ( data_out ) ) ; */ small_hb_dec #(.WIDTH(18)) uut (.clk(clock),.rst(reset),.bypass(0),.stb_in(strobe_in),.data_in(data_in), .stb_out(strobe_out),.data_out(data_out) ); integer i, ri, ro, infile, outfile ; always @(posedge clock) begin if(strobe_out) $display(data_out); end // Setup file IO initial begin infile = $fopen("input.dat","r") ; outfile = $fopen("output.dat","r") ; $timeformat(-9, 2, " ns", 10) ; end reg endofsim ; reg signed [17:0] compare ; integer noe ; initial noe = 0 ; initial begin // Initialize inputs strobe_in <= 1'd0 ; data_in <= 18'd0 ; // Wait for reset to go away @(negedge reset) #0 ; // While we're still simulating ... while( !endofsim ) begin // Write the input from the file or 0 if EOF... @( posedge clock ) begin //#1 ; strobe_in <= 1'b1 ; if( !$feof(infile) ) ri = $fscanf( infile, "%d", data_in ) ; else data_in <= 18'd0 ; end // Clocked in - set the strobe to 0 if the number of // clocks per sample is greater than 1 if( clocks > 1 ) begin @(posedge clock) begin strobe_in <= 1'b0 ; end // Wait for the specified number of cycles for( i = 0 ; i < (clocks-2) ; i = i + 1 ) begin @(posedge clock) #1 ; end end end // Print out the number of errors that occured if( noe ) $display( "FAILED: %d errors during simulation", noe ) ; else $display( "PASSED: Simulation successful" ) ; $finish ; end // Output comparison of simulated values versus known good values always @ (posedge clock) begin if( reset ) endofsim <= 1'b0 ; else begin if( !$feof(outfile) ) begin if( strobe_out ) begin ro = $fscanf( outfile, "%d\n", compare ) ; if( compare != data_out ) begin //$display( "%t: %d != %d", $realtime, data_out, compare ) ; noe = noe + 1 ; end end end else begin // Signal end of simulation when no more outputs endofsim <= 1'b1 ; end end end endmodule // hb_dec_tb uhd-3.5.5/fpga/usrp2/sdr_lib/small_hb_int.v000066400000000000000000000056411224274632000205440ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Short halfband decimator (intended to be followed by another stage) // Implements impulse responses of the form [A 0 B 0.5 B 0 A] // // These taps designed by halfgen4 from ldoolittle: // 2 * 131072 * halfgen4(.75/8,2) module small_hb_int #(parameter WIDTH=18) (input clk, input rst, input bypass, input stb_in, input [WIDTH-1:0] data_in, input [7:0] output_rate, input stb_out, output reg [WIDTH-1:0] data_out); reg phase; reg [WIDTH-1:0] d1, d2, d3, d4, d5, d6; localparam MWIDTH = 36; wire [MWIDTH-1:0] prod; reg [6:0] stbin_d; always @(posedge clk) stbin_d <= {stbin_d[5:0],stb_in}; always @(posedge clk) if(stb_in) begin d1 <= data_in; d2 <= d1; d3 <= d2; d4 <= d3; d5 <= d4; d6 <= d5; end wire [WIDTH-1:0] sum_outer, sum_inner; add2_and_round_reg #(.WIDTH(WIDTH)) add_outer (.clk(clk),.in1(d1),.in2(d4),.sum(sum_outer)); add2_and_round_reg #(.WIDTH(WIDTH)) add_inner (.clk(clk),.in1(d2),.in2(d3),.sum(sum_inner)); wire [17:0] coeff_outer = -10690; wire [17:0] coeff_inner = 75809; MULT18X18S mult(.C(clk), .CE(1), .R(rst), .P(prod), .A(stbin_d[1] ? coeff_outer : coeff_inner), .B(stbin_d[1] ? sum_outer : sum_inner) ); wire [MWIDTH:0] accum; acc #(.IWIDTH(MWIDTH),.OWIDTH(MWIDTH+1)) acc (.clk(clk),.clear(stbin_d[2]),.acc(|stbin_d[3:2]),.in(prod),.out(accum)); wire [WIDTH+2:0] accum_rnd; round_reg #(.bits_in(MWIDTH+1),.bits_out(WIDTH+3)) final_round (.clk(clk),.in(accum),.out(accum_rnd)); wire [WIDTH-1:0] clipped; clip_reg #(.bits_in(WIDTH+3),.bits_out(WIDTH)) final_clip (.clk(clk),.in(accum_rnd),.strobe_in(1'b1), .out(clipped)); reg [WIDTH-1:0] saved, saved_d3; always @(posedge clk) if(stbin_d[6]) saved <= clipped; always @(posedge clk) if(stbin_d[3]) saved_d3 <= d3; always @(posedge clk) if(bypass) data_out <= data_in; else if(stb_in & stb_out) case(output_rate) 1 : data_out <= d6; 2 : data_out <= d4; 3, 4, 5, 6, 7 : data_out <= d3; default : data_out <= d2; endcase // case(output_rate) else if(stb_out) data_out <= saved; endmodule // small_hb_int uhd-3.5.5/fpga/usrp2/sdr_lib/small_hb_int_tb.v000066400000000000000000000104611224274632000212250ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module small_hb_int_tb( ) ; // Parameters for instantiation parameter clocks = 8'd1 ; // Number of clocks per output parameter decim = 1 ; // Sets the filter to decimate parameter rate = 2 ; // Sets the decimation rate reg clock ; reg reset ; reg enable ; wire strobe_in ; reg signed [17:0] data_in ; wire strobe_out ; wire signed [17:0] data_out ; initial begin $dumpfile("small_hb_int_tb.vcd"); $dumpvars(0,small_hb_int_tb); end // Setup the clock initial clock = 1'b0 ; always #5 clock <= ~clock ; // Come out of reset after a while initial reset = 1'b1 ; initial #1000 reset = 1'b0 ; always @(posedge clock) enable <= ~reset; // Instantiate UUT /* halfband_ideal #( .decim ( decim ), .rate ( rate ) ) uut( .clock ( clock ), .reset ( reset ), .enable ( enable ), .strobe_in ( strobe_in ), .data_in ( data_in ), .strobe_out ( strobe_out ), .data_out ( data_out ) ) ; */ cic_strober #(.WIDTH(8)) out_strober(.clock(clock),.reset(reset),.enable(enable),.rate(clocks), .strobe_fast(1),.strobe_slow(strobe_out) ); cic_strober #(.WIDTH(8)) in_strober(.clock(clock),.reset(reset),.enable(enable),.rate(2), .strobe_fast(strobe_out),.strobe_slow(strobe_in) ); small_hb_int #(.WIDTH(18)) uut (.clk(clock),.rst(reset),.bypass(0),.stb_in(strobe_in),.data_in(data_in), .stb_out(strobe_out),.output_rate(clocks),.data_out(data_out) ); integer i, ri, ro, infile, outfile ; always @(posedge clock) begin if(strobe_out) $display(data_out); end // Setup file IO initial begin infile = $fopen("input.dat","r") ; outfile = $fopen("output.dat","r") ; $timeformat(-9, 2, " ns", 10) ; end reg endofsim ; reg signed [17:0] compare ; integer noe ; initial noe = 0 ; initial begin // Initialize inputs data_in <= 18'd0 ; // Wait for reset to go away @(negedge reset) #0 ; // While we're still simulating ... while( !endofsim ) begin // Write the input from the file or 0 if EOF... @( negedge clock ) begin if(strobe_in) if( !$feof(infile) ) ri <= #1 $fscanf( infile, "%d", data_in ) ; else data_in <= 18'd0 ; end end // Print out the number of errors that occured if( noe ) $display( "FAILED: %d errors during simulation", noe ) ; else $display( "PASSED: Simulation successful" ) ; $finish ; end // Output comparison of simulated values versus known good values always @ (posedge clock) begin if( reset ) endofsim <= 1'b0 ; else begin if( !$feof(outfile) ) begin if( strobe_out ) begin ro = $fscanf( outfile, "%d\n", compare ) ; if( compare != data_out ) begin //$display( "%t: %d != %d", $realtime, data_out, compare ) ; noe = noe + 1 ; end end end else begin // Signal end of simulation when no more outputs if($feof(infile)) endofsim <= 1'b1 ; end end end endmodule // small_hb_int_tb uhd-3.5.5/fpga/usrp2/sdr_lib/tx_control.v000066400000000000000000000131001224274632000202710ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `define DSP_CORE_TX_BASE 128 module tx_control #(parameter FIFOSIZE = 10) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [31:0] master_time, output underrun, // To FIFO interface from Buffer Pool input [31:0] rd_dat_i, input [3:0] rd_flags_i, input rd_ready_i, output rd_ready_o, // To DSP Core output [31:0] sample, output run, input strobe, // FIFO Levels output [15:0] fifo_occupied, output fifo_full, output fifo_empty, // Debug output [31:0] debug ); wire rd_sop_i = rd_flags_i[0]; // Unused wire rd_eop_i = rd_flags_i[1]; wire rd_occ_i = rd_flags_i[3:2]; // Unused, should always be 0 // Buffer interface to internal FIFO wire write_data, write_ctrl, full_data, full_ctrl; wire read_data, read_ctrl, empty_data, empty_ctrl; wire clear_state; reg [1:0] xfer_state; reg [2:0] held_flags; localparam XFER_IDLE = 0; localparam XFER_CTRL = 1; localparam XFER_PKT = 2; // Add underrun state? always @(posedge clk) if(rst) xfer_state <= XFER_IDLE; else if(clear_state) xfer_state <= XFER_IDLE; else if(rd_ready_i & rd_ready_o) case(xfer_state) XFER_IDLE : begin xfer_state <= XFER_CTRL; held_flags <= rd_dat_i[2:0]; end XFER_CTRL : xfer_state <= XFER_PKT; XFER_PKT : if(rd_eop_i) xfer_state <= XFER_IDLE; endcase // case(xfer_state) wire have_data_space; assign full_data = ~have_data_space; assign write_data = (xfer_state == XFER_PKT) & rd_ready_i & rd_ready_o; assign write_ctrl = (xfer_state == XFER_CTRL) & rd_ready_i & rd_ready_o; assign rd_ready_o = ~full_data & ~full_ctrl; wire [31:0] data_o; wire eop_o, eob, sob, send_imm; wire [31:0] sendtime; wire [4:0] occ_ctrl; /* cascadefifo2 #(.WIDTH(33),.SIZE(FIFOSIZE)) txctrlfifo (.clk(clk),.rst(rst),.clear(clear_state), .datain({rd_eop_i,rd_dat_i[31:0]}), .write(write_data), .full(full_data), .dataout({eop_o,data_o}), .read(read_data), .empty(empty_data), .space(), .occupied(fifo_occupied) ); */ wire have_data; assign empty_data = ~have_data; fifo_cascade #(.WIDTH(33),.SIZE(FIFOSIZE)) txctrlfifo (.clk(clk),.reset(rst),.clear(clear_state), .datain({rd_eop_i,rd_dat_i[31:0]}), .src_rdy_i(write_data), .dst_rdy_o(have_data_space), .dataout({eop_o,data_o}), .src_rdy_o(have_data), .dst_rdy_i(read_data), .space(), .occupied(fifo_occupied) ); assign fifo_full = full_data; assign fifo_empty = empty_data; shortfifo #(.WIDTH(35)) ctrlfifo (.clk(clk),.rst(rst),.clear(clear_state), .datain({held_flags[2:0],rd_dat_i[31:0]}), .write(write_ctrl), .full(full_ctrl), .dataout({send_imm,sob,eob,sendtime}), .read(read_ctrl), .empty(empty_ctrl), .space(), .occupied(occ_ctrl) ); // Internal FIFO to DSP interface reg [2:0] ibs_state; localparam IBS_IDLE = 0; localparam IBS_WAIT = 1; localparam IBS_RUNNING = 2; localparam IBS_CONT_BURST = 3; localparam IBS_UNDERRUN = 7; wire [32:0] delta_time = {1'b0,sendtime}-{1'b0,master_time}; wire too_late = (delta_time[32:31] == 2'b11); wire go_now = ( master_time == sendtime ); always @(posedge clk) if(rst) ibs_state <= IBS_IDLE; else case(ibs_state) IBS_IDLE : if(~empty_ctrl & ~empty_data) ibs_state <= IBS_WAIT; IBS_WAIT : if(send_imm) ibs_state <= IBS_RUNNING; else if(too_late) ibs_state <= IBS_UNDERRUN; else if(go_now) ibs_state <= IBS_RUNNING; IBS_RUNNING : if(strobe) if(empty_data) ibs_state <= IBS_UNDERRUN; else if(eop_o) if(eob) ibs_state <= IBS_IDLE; else ibs_state <= IBS_CONT_BURST; IBS_CONT_BURST : if(~empty_ctrl) // & ~empty_data) ibs_state <= IBS_RUNNING; else if(strobe) ibs_state <= IBS_UNDERRUN; IBS_UNDERRUN : // FIXME Should probably clean everything out if(clear_state) ibs_state <= IBS_IDLE; endcase // case(ibs_state) assign read_ctrl = (ibs_state == IBS_RUNNING) & strobe & eop_o; // & ~empty_ctrl; assign read_data = (ibs_state == IBS_RUNNING) & strobe & ~empty_data; assign run = (ibs_state == IBS_RUNNING) | (ibs_state == IBS_CONT_BURST); assign underrun = (ibs_state == IBS_UNDERRUN); wire [7:0] interp_rate; setting_reg #(.my_addr(`DSP_CORE_TX_BASE+3)) sr_3 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(),.changed(clear_state)); assign sample = data_o; assign debug = { {16'b0}, { read_data, write_data, read_ctrl, write_ctrl, xfer_state[1:0],full_ctrl,empty_ctrl }, { occ_ctrl, eop_o, clear_state, underrun} }; endmodule // tx_control uhd-3.5.5/fpga/usrp2/sdr_lib/tx_frontend.v000066400000000000000000000066061224274632000204450ustar00rootroot00000000000000 module tx_frontend #(parameter BASE=0, parameter WIDTH_OUT=16, parameter IQCOMP_EN=1) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [23:0] tx_i, input [23:0] tx_q, input run, output reg [WIDTH_OUT-1:0] dac_a, output reg [WIDTH_OUT-1:0] dac_b ); // IQ balance --> DC offset --> rounding --> mux wire [23:0] i_dco, q_dco, i_ofs, q_ofs; wire [WIDTH_OUT-1:0] i_final, q_final; wire [7:0] mux_ctrl; wire [35:0] corr_i, corr_q; wire [23:0] i_bal, q_bal; wire [17:0] mag_corr, phase_corr; setting_reg #(.my_addr(BASE+0), .width(24)) sr_0 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(i_dco),.changed()); setting_reg #(.my_addr(BASE+1), .width(24)) sr_1 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(q_dco),.changed()); setting_reg #(.my_addr(BASE+2),.width(18)) sr_2 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(mag_corr),.changed()); setting_reg #(.my_addr(BASE+3),.width(18)) sr_3 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(phase_corr),.changed()); setting_reg #(.my_addr(BASE+4), .width(8)) sr_4 (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(mux_ctrl),.changed()); generate if(IQCOMP_EN==1) begin // IQ Balance MULT18X18S mult_mag_corr (.P(corr_i), .A(tx_i[23:6]), .B(mag_corr), .C(clk), .CE(1), .R(rst) ); MULT18X18S mult_phase_corr (.P(corr_q), .A(tx_i[23:6]), .B(phase_corr), .C(clk), .CE(1), .R(rst) ); add2_and_clip_reg #(.WIDTH(24)) add_clip_i (.clk(clk), .rst(rst), .in1(tx_i), .in2(corr_i[35:12]), .strobe_in(1'b1), .sum(i_bal), .strobe_out()); add2_and_clip_reg #(.WIDTH(24)) add_clip_q (.clk(clk), .rst(rst), .in1(tx_q), .in2(corr_q[35:12]), .strobe_in(1'b1), .sum(q_bal), .strobe_out()); // DC Offset add2_and_clip_reg #(.WIDTH(24)) add_dco_i (.clk(clk), .rst(rst), .in1(i_dco), .in2(i_bal), .strobe_in(1'b1), .sum(i_ofs), .strobe_out()); add2_and_clip_reg #(.WIDTH(24)) add_dco_q (.clk(clk), .rst(rst), .in1(q_dco), .in2(q_bal), .strobe_in(1'b1), .sum(q_ofs), .strobe_out()); end // if (IQCOMP_EN==1) else begin // DC Offset add2_and_clip_reg #(.WIDTH(24)) add_dco_i (.clk(clk), .rst(rst), .in1(i_dco), .in2(tx_i), .strobe_in(1'b1), .sum(i_ofs), .strobe_out()); add2_and_clip_reg #(.WIDTH(24)) add_dco_q (.clk(clk), .rst(rst), .in1(q_dco), .in2(tx_q), .strobe_in(1'b1), .sum(q_ofs), .strobe_out()); end // else: !if(IQCOMP_EN==1) endgenerate // Rounding round_sd #(.WIDTH_IN(24),.WIDTH_OUT(WIDTH_OUT)) round_i (.clk(clk), .reset(rst), .in(i_ofs),.strobe_in(1'b1), .out(i_final), .strobe_out()); round_sd #(.WIDTH_IN(24),.WIDTH_OUT(WIDTH_OUT)) round_q (.clk(clk), .reset(rst), .in(q_ofs),.strobe_in(1'b1), .out(q_final), .strobe_out()); // Mux always @(posedge clk) case(mux_ctrl[3:0]) 0 : dac_a <= i_final; 1 : dac_a <= q_final; default : dac_a <= 0; endcase // case (mux_ctrl[3:0]) always @(posedge clk) case(mux_ctrl[7:4]) 0 : dac_b <= i_final; 1 : dac_b <= q_final; default : dac_b <= 0; endcase // case (mux_ctrl[7:4]) endmodule // tx_frontend uhd-3.5.5/fpga/usrp2/serdes/000077500000000000000000000000001224274632000155635ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/serdes/Makefile.srcs000066400000000000000000000004521224274632000201750ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # SERDES Sources ################################################## SERDES_SRCS = $(abspath $(addprefix $(BASE_DIR)/../serdes/, \ serdes.v \ serdes_fc_rx.v \ serdes_fc_tx.v \ serdes_rx.v \ serdes_tx.v \ )) uhd-3.5.5/fpga/usrp2/serdes/serdes.v000066400000000000000000000065321224274632000172450ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // SERDES TX and RX along with all flow control logic module serdes #(parameter TXFIFOSIZE = 9, parameter RXFIFOSIZE = 9) (input clk, input rst, // TX side output ser_tx_clk, output [15:0] ser_t, output ser_tklsb, output ser_tkmsb, input [31:0] rd_dat_i, input [3:0] rd_flags_i, output rd_ready_o, input rd_ready_i, // RX side input ser_rx_clk, input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, output [31:0] wr_dat_o, output [3:0] wr_flags_o, output wr_ready_o, input wr_ready_i, output [15:0] tx_occupied, output tx_full, output tx_empty, output [15:0] rx_occupied, output rx_full, output rx_empty, output serdes_link_up, output [31:0] debug0, output [31:0] debug1); wire [15:0] fifo_space; wire xon_rcvd, xoff_rcvd, inhibit_tx, send_xon, send_xoff, sent; wire [31:0] debug_rx, debug_tx; serdes_tx #(.FIFOSIZE(TXFIFOSIZE)) serdes_tx (.clk(clk),.rst(rst), .ser_tx_clk(ser_tx_clk),.ser_t(ser_t),.ser_tklsb(ser_tklsb),.ser_tkmsb(ser_tkmsb), .rd_dat_i(rd_dat_i),.rd_flags_i(rd_flags_i),.rd_ready_o(rd_ready_o),.rd_ready_i(rd_ready_i), .inhibit_tx(inhibit_tx), .send_xon(send_xon), .send_xoff(send_xoff), .sent(sent), .fifo_occupied(tx_occupied),.fifo_full(tx_full),.fifo_empty(tx_empty), .debug(debug_tx) ); serdes_rx #(.FIFOSIZE(RXFIFOSIZE)) serdes_rx (.clk(clk),.rst(rst), .ser_rx_clk(ser_rx_clk),.ser_r(ser_r),.ser_rklsb(ser_rklsb),.ser_rkmsb(ser_rkmsb), .wr_dat_o(wr_dat_o),.wr_flags_o(wr_flags_o),.wr_ready_o(wr_ready_o),.wr_ready_i(wr_ready_i), .fifo_space(fifo_space), .xon_rcvd(xon_rcvd), .xoff_rcvd(xoff_rcvd), .fifo_occupied(rx_occupied),.fifo_full(rx_full),.fifo_empty(rx_empty), .serdes_link_up(serdes_link_up), .debug(debug_rx) ); serdes_fc_tx serdes_fc_tx (.clk(clk),.rst(rst), .xon_rcvd(xon_rcvd),.xoff_rcvd(xoff_rcvd),.inhibit_tx(inhibit_tx) ); serdes_fc_rx #(.LWMARK(32),.HWMARK(128)) serdes_fc_rx (.clk(clk),.rst(rst), .fifo_space(fifo_space),.send_xon(send_xon),.send_xoff(send_xoff),.sent(sent) ); //assign debug = { fifo_space, send_xon, send_xoff, debug_rx[13:0] }; //assign debug = debug_rx; assign debug0 = { { 2'b00, rd_ready_o, rd_ready_i, rd_flags_i[3:0]}, { debug_tx[5:4] /* full,empty */ , inhibit_tx, send_xon, send_xoff, sent, ser_tkmsb, ser_tklsb}, { ser_t[15:8] }, { ser_t[7:0] } }; assign debug1 = { { debug_rx[7:0] }, /* odd,xfer_active,sop_i,eop_i,error_i,state[2:0] */ { wr_flags_o[1:0], wr_ready_i, wr_ready_o, xon_rcvd, xoff_rcvd, ser_rkmsb, ser_rklsb }, { ser_r[15:8] }, { ser_r[7:0] } }; endmodule // serdes uhd-3.5.5/fpga/usrp2/serdes/serdes_fc_rx.v000066400000000000000000000035601224274632000204240ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module serdes_fc_rx #(parameter LWMARK = 64, parameter HWMARK = 320) (input clk, input rst, input [15:0] fifo_space, output reg send_xon, output reg send_xoff, input sent); reg [15:0] countdown; reg send_xon_int, send_xoff_int; always @(posedge clk) if(rst) begin send_xon_int <= 0; send_xoff_int <= 0; countdown <= 0; end else begin send_xon_int <= 0; send_xoff_int <= 0; if(countdown == 0) if(fifo_space < LWMARK) begin send_xoff_int <= 1; countdown <= 240; end else ; else if(fifo_space > HWMARK) begin send_xon_int <= 1; countdown <= 0; end else countdown <= countdown - 1; end // else: !if(rst) // If we are between the high and low water marks, we let the countdown expire always @(posedge clk) if(rst) send_xon <= 0; else if(send_xon_int) send_xon <= 1; else if(sent) send_xon <= 0; always @(posedge clk) if(rst) send_xoff <= 0; else if(send_xoff_int) send_xoff <= 1; else if(sent) send_xoff <= 0; endmodule // serdes_fc_rx uhd-3.5.5/fpga/usrp2/serdes/serdes_fc_tx.v000066400000000000000000000023251224274632000204240ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module serdes_fc_tx (input clk, input rst, input xon_rcvd, input xoff_rcvd, output reg inhibit_tx); // XOFF means stop sending, XON means start sending // clock domain stuff happens elsewhere, everything here is on main clk reg [15:0] state; always @(posedge clk) if(rst) state <= 0; else if(xoff_rcvd) state <= 255; else if(xon_rcvd) state <= 0; else if(state !=0) state <= state - 1; always @(posedge clk) inhibit_tx <= (state != 0); endmodule // serdes_fc_tx uhd-3.5.5/fpga/usrp2/serdes/serdes_rx.v000066400000000000000000000203421224274632000177510ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // SERDES Interface // LS-Byte is sent first, MS-Byte is second // Invalid K Codes // K0.0 000-00000 Error detected // K31.7 111-11111 Loss of input signal // Valid K Codes // K28.0 000-11100 // K28.1 001-11100 Alternate COMMA? // K28.2 010-11100 // K28.3 011-11100 // K28.4 100-11100 // K28.5 101-11100 Standard COMMA? // K28.6 110-11100 // K28.7 111-11100 Bad COMMA? // K23.7 111-10111 // K27.7 111-11011 // K29.7 111-11101 // K30.7 111-11110 module serdes_rx #(parameter FIFOSIZE = 9) (input clk, input rst, // RX HW Interface input ser_rx_clk, input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, output [31:0] wr_dat_o, output [3:0] wr_flags_o, input wr_ready_i, output wr_ready_o, output [15:0] fifo_space, output xon_rcvd, output xoff_rcvd, output [15:0] fifo_occupied, output fifo_full, output fifo_empty, output reg serdes_link_up, output [31:0] debug ); localparam K_COMMA = 8'b101_11100; // 0xBC K28.5 localparam K_IDLE = 8'b001_11100; // 0x3C K28.1 localparam K_PKT_START = 8'b110_11100; // 0xDC K28.6 localparam K_PKT_END = 8'b100_11100; // 0x9C K28.4 localparam K_XON = 8'b010_11100; // 0x5C K28.2 localparam K_XOFF = 8'b011_11100; // 0x7C K28.3 localparam K_LOS = 8'b111_11111; // 0xFF K31.7 localparam K_ERROR = 8'b000_00000; // 0x00 K00.0 localparam D_56 = 8'b110_00101; // 0xC5 D05.6 localparam IDLE = 3'd0; localparam FIRSTLINE1 = 3'd1; localparam FIRSTLINE2 = 3'd2; localparam PKT1 = 3'd3; localparam PKT2 = 3'd4; localparam CRC_CHECK = 3'd5; localparam ERROR = 3'd6; localparam DONE = 3'd7; wire [17:0] even_data; reg [17:0] odd_data; wire [17:0] chosen_data; reg odd; reg [31:0] line_i; reg sop_i, eop_i, error_i; wire error_o, sop_o, eop_o, write; reg [15:0] halfline; reg [8:0] holder; wire [31:0] line_o; reg [2:0] state; reg [15:0] CRC; wire [15:0] nextCRC; reg write_d; wire rst_rxclk; wire have_space; oneshot_2clk rst_1s(.clk_in(clk),.in(rst),.clk_out(ser_rx_clk),.out(rst_rxclk)); assign even_data = {ser_rkmsb,ser_rklsb,ser_r}; always @(posedge ser_rx_clk) if(rst_rxclk) holder <= 9'd0; else holder <= {even_data[17],even_data[15:8]}; always @(posedge ser_rx_clk) if(rst_rxclk) odd_data <= 18'd0; else odd_data <= {even_data[16],holder[8],even_data[7:0],holder[7:0]}; assign chosen_data = odd ? odd_data : even_data; // Transfer xon and xoff info to the main system clock for flow control purposes reg xon_rcvd_rxclk, xoff_rcvd_rxclk; always @(posedge ser_rx_clk) xon_rcvd_rxclk = ({1'b1,K_XON} == {ser_rkmsb,ser_r[15:8]}) | ({1'b1,K_XON} == {ser_rklsb,ser_r[7:0]} ); always @(posedge ser_rx_clk) xoff_rcvd_rxclk = ({1'b1,K_XOFF} == {ser_rkmsb,ser_r[15:8]}) | ({1'b1,K_XOFF} == {ser_rklsb,ser_r[7:0]} ); oneshot_2clk xon_1s(.clk_in(ser_rx_clk),.in(xon_rcvd_rxclk),.clk_out(clk),.out(xon_rcvd)); oneshot_2clk xoff_1s(.clk_in(ser_rx_clk),.in(xoff_rcvd_rxclk),.clk_out(clk),.out(xoff_rcvd)); // If the other side is sending xon or xoff, or is flow controlled (b/c we told them to be), don't fill the fifos wire wait_here = ((chosen_data == {2'b10,K_COMMA,D_56})|| (chosen_data == {2'b11,K_XON,K_XON})|| (chosen_data == {2'b11,K_XOFF,K_XOFF}) ); always @(posedge ser_rx_clk) if(rst_rxclk) sop_i <= 0; else if(state == FIRSTLINE1) sop_i <= 1; else if(write_d) sop_i <= 0; reg write_pre; always @(posedge ser_rx_clk) if(rst_rxclk) begin state <= IDLE; odd <= 0; halfline <= 0; line_i <= 0; eop_i <= 0; error_i <= 0; write_pre <= 0; end else case(state) IDLE : begin error_i <= 0; write_pre <= 0; if(even_data == {2'b11,K_PKT_START,K_PKT_START}) begin state <= FIRSTLINE1; odd <= 0; end else if(odd_data == {2'b11,K_PKT_START,K_PKT_START}) begin state <= FIRSTLINE1; odd <= 1; end end FIRSTLINE1 : if(chosen_data[17:16] == 0) begin halfline <= chosen_data[15:0]; state <= FIRSTLINE2; end else if(wait_here) ; // Flow Controlled, so wait here and do nothing else state <= ERROR; FIRSTLINE2 : if(chosen_data[17:16] == 0) begin line_i <= {chosen_data[15:0],halfline}; if(~have_space) // No space to write to! Should have been avoided by flow control state <= ERROR; else begin state <= PKT1; write_pre <= 1; end end // if (chosen_data[17:16] == 0) else if(wait_here) ; // Flow Controlled, so wait here and do nothing else state <= ERROR; PKT1 : begin write_pre <= 0; if(chosen_data[17:16] == 0) begin halfline <= chosen_data[15:0]; state <= PKT2; end else if(wait_here) ; // Flow Controlled else if(chosen_data == {2'b11,K_PKT_END,K_PKT_END}) state <= CRC_CHECK; else state <= ERROR; end // case: PKT1 PKT2 : if(chosen_data[17:16] == 0) begin line_i <= {1'b0,1'b0,1'b0,chosen_data[15:0],halfline}; if(~have_space) // No space to write to! state <= ERROR; else begin state <= PKT1; write_pre <= 1; end end // if (chosen_data[17:16] == 0) else if(wait_here) ; // Flow Controlled else state <= ERROR; CRC_CHECK : if(chosen_data[17:0] == {2'b00,CRC}) begin if(~have_space) state <= ERROR; else begin eop_i <= 1; state <= DONE; end end else if(wait_here) ; else state <= ERROR; ERROR : begin error_i <= 1; if(have_space) state <= IDLE; end DONE : begin state <= IDLE; eop_i <= 0; end endcase // case(state) always @(posedge ser_rx_clk) if(rst_rxclk) CRC <= 16'hFFFF; else if(state == IDLE) CRC <= 16'hFFFF; else if(chosen_data[17:16] == 2'b00) CRC <= nextCRC; CRC16_D16 crc_blk(chosen_data[15:0],CRC,nextCRC); always @(posedge ser_rx_clk) if(rst_rxclk) write_d <= 0; else write_d <= write_pre; // Internal FIFO, size 9 is 2K, size 10 is 4K Bytes assign write = eop_i | (error_i & have_space) | (write_d & (state != CRC_CHECK)); wire dummy; // avoid warning on unconnected pin fifo_2clock_cascade #(.WIDTH(36),.SIZE(FIFOSIZE)) serdes_rx_fifo (.arst(rst), .wclk(ser_rx_clk),.datain({1'b0,error_i,sop_i,eop_i,line_i}), .src_rdy_i(write), .dst_rdy_o(have_space), .space(fifo_space), .rclk(clk),.dataout({dummy,error_o,sop_o,eop_o,line_o}), .src_rdy_o(wr_ready_o), .dst_rdy_i(wr_ready_i), .occupied(fifo_occupied) ); assign fifo_full = ~have_space; // Note -- in the wrong clock domain assign fifo_empty = ~wr_ready_o; // Internal FIFO to Buffer interface assign wr_dat_o = line_o; assign wr_flags_o = { 2'b00, eop_o | error_o, sop_o | error_o }; wire slu = ~(({2'b11,K_ERROR,K_ERROR}=={ser_rkmsb,ser_rklsb,ser_r}) || ({2'b11,K_LOS,K_LOS}=={ser_rkmsb,ser_rklsb,ser_r})); reg [3:0] slu_reg; always @(posedge clk) if(rst) slu_reg <= 0; else slu_reg <= {slu_reg[2:0],slu}; always @(posedge clk) serdes_link_up <= &slu_reg[3:1]; assign debug = { have_space, wr_ready_o, odd, sop_i, eop_i, error_i, state[2:0] }; endmodule // serdes_rx uhd-3.5.5/fpga/usrp2/serdes/serdes_tb.v000066400000000000000000000213271224274632000177310ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // FIXME need to add flow control module serdes_tb(); reg clk, rst; wire ser_rx_clk, ser_tx_clk; wire ser_rklsb, ser_rkmsb, ser_tklsb, ser_tkmsb; wire [15:0] ser_r, ser_t; initial clk = 0; initial rst = 1; initial #1000 rst = 0; always #100 clk = ~clk; // Wishbone reg [31:0] wb_dat_i; wire [31:0] wb_dat_o_rx, wb_dat_o_tx; reg wb_we, wb_en_rx, wb_en_tx; reg [8:0] wb_adr; // Buffer Control reg go, clear, read, write; reg [3:0] buf_num; wire [31:0] ctrl_word = {buf_num,3'b0,clear,write,read,step,lastline,firstline}; reg [8:0] firstline = 0, lastline = 0; reg [3:0] step = 1; reg first_tx = 1, first_rx = 1; // for verif // TX Side reg wb_we_tx; wire en_tx, we_tx; wire [8:0] addr_tx; wire [31:0] f2r_tx, r2f_tx; wire [31:0] data_tx; wire read_tx, done_tx, error_tx, sop_tx, eop_tx; wire fdone_tx, ferror_tx; reg even; reg channel_error = 0; serdes_tx serdes_tx (.clk(clk),.rst(rst), .ser_tx_clk(ser_tx_clk),.ser_t(ser_t),.ser_tklsb(ser_tklsb),.ser_tkmsb(ser_tkmsb), .rd_dat_i(data_tx),.rd_read_o(read_tx),.rd_done_o(done_tx), .rd_error_o(error_tx),.rd_sop_i(sop_tx),.rd_eop_i(eop_tx) ); ram_2port #(.DWIDTH(32),.AWIDTH(9)) ram_tx(.clka(clk),.ena(wb_en_tx),.wea(wb_we_tx),.addra(wb_adr),.dia(wb_dat_i),.doa(wb_dat_o_tx), .clkb(clk),.enb(en_tx),.web(we_tx),.addrb(addr_tx),.dib(f2r_tx),.dob(r2f_tx)); buffer_int #(.BUFF_NUM(1)) buffer_int_tx (.clk(clk),.rst(rst), .ctrl_word(ctrl_word),.go(go), .done(fdone_tx),.error(ferror_tx), .en_o(en_tx),.we_o(we_tx),.addr_o(addr_tx),.dat_to_buf(f2r_tx),.dat_from_buf(r2f_tx), .wr_dat_i(0),.wr_write_i(0),.wr_done_i(0), .wr_error_i(0),.wr_ready_o(),.wr_full_o(), .rd_dat_o(data_tx),.rd_read_i(read_tx),.rd_done_i(done_tx), .rd_error_i(error_tx),.rd_sop_o(sop_tx),.rd_eop_o(eop_tx) ); // RX Side reg wb_we_rx; wire en_rx, we_rx; wire [8:0] addr_rx; wire [31:0] f2r_rx, r2f_rx; wire [31:0] data_rx; wire write_rx, done_rx, error_rx, ready_rx, empty_rx; wire fdone_rx, ferror_rx; serdes_rx serdes_rx (.clk(clk),.rst(rst), .ser_rx_clk(ser_rx_clk),.ser_r(ser_r),.ser_rklsb(ser_rklsb),.ser_rkmsb(ser_rkmsb), .wr_dat_o(data_rx),.wr_write_o(write_rx),.wr_done_o(done_rx), .wr_error_o(error_rx),.wr_ready_i(ready_rx),.wr_full_i(full_rx) ); ram_2port #(.DWIDTH(32),.AWIDTH(9)) ram_rx(.clka(clk),.ena(wb_en_rx),.wea(wb_we_rx),.addra(wb_adr),.dia(wb_dat_i),.doa(wb_dat_o_rx), .clkb(clk),.enb(en_rx),.web(we_rx),.addrb(addr_rx),.dib(f2r_rx),.dob(r2f_rx) ); buffer_int #(.BUFF_NUM(0)) buffer_int_rx (.clk(clk),.rst(rst), .ctrl_word(ctrl_word),.go(go), .done(fdone_rx),.error(ferror_rx), .en_o(en_rx),.we_o(we_rx),.addr_o(addr_rx),.dat_to_buf(f2r_rx),.dat_from_buf(r2f_rx), .wr_dat_i(data_rx),.wr_write_i(write_rx),.wr_done_i(done_rx), .wr_error_i(error_rx),.wr_ready_o(ready_rx),.wr_full_o(full_rx), .rd_dat_o(),.rd_read_i(0),.rd_done_i(0), .rd_error_i(0),.rd_sop_o(),.rd_eop_o() ); // Simulate the connection serdes_model serdes_model (.ser_tx_clk(ser_tx_clk), .ser_tkmsb(ser_tkmsb), .ser_tklsb(ser_tklsb), .ser_t(ser_t), .ser_rx_clk(ser_rx_clk), .ser_rkmsb(ser_rkmsb), .ser_rklsb(ser_rklsb), .ser_r(ser_r), .even(even), .error(channel_error) ); initial begin wb_en_rx <= 0; wb_en_tx <=0; wb_we_tx <= 0; wb_we_rx <= 0; wb_adr <= 0; wb_dat_i <= 0; go <= 0; even <= 0; @(negedge rst); @(posedge clk); FillTXRAM; ClearRXRAM; ResetBuffer(0); ResetBuffer(1); // receive a full buffer ReceiveSERDES(0,10); SendSERDES(0,10); // Receive a partial buffer SendSERDES(11,20); ReceiveSERDES(11,50); // Receive too many for buffer SendSERDES(21,100); ReceiveSERDES(21,30); // Send 3 packets, then wait to receive them, so they stack up in the rx fifo SendSERDES(31,40); SendSERDES(41,50); SendSERDES(51,60); repeat (10) @(posedge clk); ReceiveSERDES(31,40); ReceiveSERDES(41,50); repeat (1000) @(posedge clk); ReceiveSERDES(51,60); // Overfill the FIFO, should get an error on 3rd packet SendSERDES(1,400); SendSERDES(1,400); WaitForTX; //WaitForRX; repeat(1000) @(posedge clk); ReceiveSERDES(101,500); ReceiveSERDES(101,500); ReadRAM(80); $finish; end // initial begin always @(posedge clk) if(write_rx) $display("SERDES RX, FIFO WRITE %x, FIFO RDY %d, FIFO FULL %d",data_rx, ready_rx, full_rx); always @(posedge clk) if(read_tx) $display("SERDES TX, FIFO READ %x, SOP %d, EOP %d",data_tx, sop_tx, eop_tx); initial begin $dumpfile("serdes_tb.vcd"); $dumpvars(0,serdes_tb); end initial #10000000 $finish; initial #259300 channel_error <= 1; initial #259500 channel_error <= 0; task FillTXRAM; begin wb_adr <= 0; wb_dat_i <= 32'h10802000; wb_we_tx <= 1; wb_en_tx <= 1; @(posedge clk); repeat(511) begin wb_dat_i <= wb_dat_i + 32'h00010001; wb_adr <= wb_adr + 1; @(posedge clk); end // repeat (511) wb_we_tx <= 0; wb_en_tx <= 0; @(posedge clk); $display("Done entering Data into TX RAM\n"); end endtask // FillTXRAM task ClearRXRAM; begin wb_adr <= 0; wb_dat_i <= 0; wb_we_rx <= 1; wb_en_rx <= 1; wb_dat_i <= 0; @(posedge clk); repeat(511) begin wb_adr <= wb_adr + 1; @(posedge clk); end // repeat (511) wb_we_rx <= 0; wb_en_rx <= 0; @(posedge clk); $display("Done clearing RX RAM\n"); end endtask // FillRAM task ReadRAM; input [8:0] lastline; begin wb_en_rx <= 1; wb_adr <= 0; @(posedge clk); @(posedge clk); repeat(lastline) begin $display("ADDR: %h DATA %h", wb_adr, wb_dat_o_rx); wb_adr <= wb_adr + 1; @(posedge clk); @(posedge clk); end // repeat (511) $display("ADDR: %h DATA %h", wb_adr, wb_dat_o_rx); wb_en_rx <= 0; @(posedge clk); $display("Done reading out RX RAM\n"); end endtask // FillRAM task ResetBuffer; input [3:0] buffer_num; begin buf_num <= buffer_num; clear <= 1; read <= 0; write <= 0; go <= 1; @(posedge clk); go <= 0; @(posedge clk); $display("Buffer Reset"); end endtask // ClearBuffer task SetBufferWrite; input [3:0] buffer_num; input [8:0] start; input [8:0] stop; begin buf_num <= buffer_num; clear <= 0; read <= 0; write <= 1; firstline <= start; lastline <= stop; go <= 1; @(posedge clk); go <= 0; @(posedge clk); $display("Buffer Set for Write"); end endtask // SetBufferWrite task SetBufferRead; input [3:0] buffer_num; input [8:0] start; input [8:0] stop; begin buf_num <= buffer_num; clear <= 0; read <= 1; write <= 0; firstline <= start; lastline <= stop; go <= 1; @(posedge clk); go <= 0; @(posedge clk); $display("Buffer Set for Read"); end endtask // SetBufferRead task WaitForTX; begin while (!(fdone_tx | ferror_tx)) @(posedge clk); end endtask // WaitForTX task WaitForRX; begin while (!(fdone_rx | ferror_rx)) @(posedge clk); end endtask // WaitForRX task SendSERDES; input [8:0] start; input [8:0] stop; begin if(~first_tx) WaitForTX; else first_tx <= 0; ResetBuffer(1); SetBufferRead(1,start,stop); $display("Here"); end endtask // SendSERDES task ReceiveSERDES; input [8:0] start; input [8:0] stop; begin if(~first_rx) WaitForRX; else first_rx <= 0; ResetBuffer(0); SetBufferWrite(0,start,stop); $display("Here2"); end endtask // ReceiveSERDES endmodule // serdes_tb uhd-3.5.5/fpga/usrp2/serdes/serdes_tx.v000066400000000000000000000126051224274632000177560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // SERDES Interface // LS-Byte is sent first, MS-Byte is second // Invalid K Codes // K0.0 000-00000 Error detected // K31.7 111-11111 Loss of input signal // Valid K Codes // K28.0 000-11100 // K28.1 001-11100 Alternate COMMA? // K28.2 010-11100 // K28.3 011-11100 // K28.4 100-11100 // K28.5 101-11100 Standard COMMA? // K28.6 110-11100 // K28.7 111-11100 Bad COMMA? // K23.7 111-10111 // K27.7 111-11011 // K29.7 111-11101 // K30.7 111-11110 module serdes_tx #(parameter FIFOSIZE = 9) (input clk, input rst, // TX HW Interface output ser_tx_clk, output reg [15:0] ser_t, output reg ser_tklsb, output reg ser_tkmsb, // TX Stream Interface input [31:0] rd_dat_i, input [3:0] rd_flags_i, output rd_ready_o, input rd_ready_i, // Flow control interface input inhibit_tx, input send_xon, input send_xoff, output sent, // FIFO Levels output [15:0] fifo_occupied, output fifo_full, output fifo_empty, // DEBUG output [31:0] debug ); localparam K_COMMA = 8'b101_11100; // 0xBC K28.5 localparam K_IDLE = 8'b001_11100; // 0x3C K28.1 localparam K_PKT_START = 8'b110_11100; // 0xDC K28.6 localparam K_PKT_END = 8'b100_11100; // 0x9C K28.4 localparam K_XON = 8'b010_11100; // 0x5C K28.2 localparam K_XOFF = 8'b011_11100; // 0x7C K28.3 localparam K_LOS = 8'b111_11111; // 0xFF K31.7 localparam K_ERROR = 8'b000_00000; // 0x00 K00.0 localparam D_56 = 8'b110_00101; // 0xC5 D05.6 assign ser_tx_clk = clk; localparam IDLE = 3'd0; localparam RUN1 = 3'd1; localparam RUN2 = 3'd2; localparam DONE = 3'd3; localparam SENDCRC = 3'd4; localparam WAIT = 3'd5; reg [2:0] state; reg [15:0] CRC; wire [15:0] nextCRC; reg [3:0] wait_count; // Internal FIFO, size 9 is 2K, size 10 is 4K bytes wire sop_o, eop_o; wire [31:0] data_o; wire rd_sop_i = rd_flags_i[0]; wire rd_eop_i = rd_flags_i[1]; wire [1:0] rd_occ_i = rd_flags_i[3:2]; // Unused wire have_data, empty, read; fifo_cascade #(.WIDTH(34),.SIZE(FIFOSIZE)) serdes_tx_fifo (.clk(clk),.reset(rst),.clear(0), .datain({rd_sop_i,rd_eop_i,rd_dat_i}), .src_rdy_i(rd_ready_i), .dst_rdy_o(rd_ready_o), .dataout({sop_o,eop_o,data_o}), .dst_rdy_i(read), .src_rdy_o(have_data), .space(), .occupied(fifo_occupied) ); assign fifo_full = ~rd_ready_o; assign empty = ~have_data; assign fifo_empty = empty; // FIXME Implement flow control reg [15:0] second_word; reg [33:0] pipeline; assign read = (~send_xon & ~send_xoff & (state==RUN2)) | ((state==IDLE) & ~empty & ~sop_o); assign sent = send_xon | send_xoff; // 2nd half of above probably not necessary. Just in case we get junk between packets always @(posedge clk) if(rst) begin state <= IDLE; wait_count <= 0; {ser_tkmsb,ser_tklsb,ser_t} <= 18'd0; //{2'b10,K_COMMA,K_COMMA}; // make tkmsb and tklsb different so they can go in IOFFs end else if(send_xon) {ser_tkmsb,ser_tklsb,ser_t} <= {2'b11,K_XON,K_XON}; else if(send_xoff) {ser_tkmsb,ser_tklsb,ser_t} <= {2'b11,K_XOFF,K_XOFF}; else case(state) IDLE : begin if(sop_o & ~empty & ~inhibit_tx) begin {ser_tkmsb,ser_tklsb,ser_t} <= {2'b11,K_PKT_START,K_PKT_START}; state <= RUN1; end else {ser_tkmsb,ser_tklsb,ser_t} <= {2'b10,K_COMMA,D_56}; end RUN1 : begin if(empty | inhibit_tx) {ser_tkmsb,ser_tklsb,ser_t} <= {2'b10,K_COMMA,D_56}; else begin {ser_tkmsb,ser_tklsb,ser_t} <= {2'b00,data_o[15:0]}; state <= RUN2; end end RUN2 : begin {ser_tkmsb,ser_tklsb,ser_t} <= {2'b00,data_o[31:16]}; if(eop_o) state <= DONE; else state <= RUN1; end DONE : begin {ser_tkmsb,ser_tklsb,ser_t} <= {2'b11,K_PKT_END,K_PKT_END}; state <= SENDCRC; end SENDCRC : begin {ser_tkmsb,ser_tklsb,ser_t} <= {2'b00,CRC}; state <= WAIT; wait_count <= 4'd15; end WAIT : begin {ser_tkmsb,ser_tklsb,ser_t} <= {2'b10,K_COMMA,D_56}; if(wait_count == 0) state <= IDLE; else wait_count <= wait_count - 1; end default state <= IDLE; endcase // case(state) always @(posedge clk) if(rst) CRC <= 16'hFFFF; else if(state == IDLE) CRC <= 16'hFFFF; else if( (~empty & ~inhibit_tx & (state==RUN1)) || (state==RUN2) ) CRC <= nextCRC; CRC16_D16 crc_blk( (state==RUN1) ? data_o[15:0] : data_o[31:16], CRC, nextCRC); assign debug = { 28'd0, state[2:0] }; endmodule // serdes_tx uhd-3.5.5/fpga/usrp2/simple_gemac/000077500000000000000000000000001224274632000167235ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/simple_gemac/.gitignore000066400000000000000000000000471224274632000207140ustar00rootroot00000000000000/a.out /*.vcd simple_gemac_wrapper_tb uhd-3.5.5/fpga/usrp2/simple_gemac/Makefile.srcs000066400000000000000000000011371224274632000213360ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # Simple GEMAC Sources ################################################## SIMPLE_GEMAC_SRCS = $(abspath $(addprefix $(BASE_DIR)/../simple_gemac/, \ simple_gemac_wrapper.v \ simple_gemac.v \ simple_gemac_wb.v \ simple_gemac_tx.v \ simple_gemac_rx.v \ crc.v \ delay_line.v \ flow_ctrl_tx.v \ flow_ctrl_rx.v \ address_filter.v \ address_filter_promisc.v \ ll8_to_txmac.v \ rxmac_to_ll8.v \ miim/eth_miim.v \ miim/eth_clockgen.v \ miim/eth_outputcontrol.v \ miim/eth_shiftreg.v \ ethtx_realign.v \ ethrx_realign.v \ )) uhd-3.5.5/fpga/usrp2/simple_gemac/address_filter.v000066400000000000000000000027031224274632000221060ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module address_filter (input clk, input reset, input go, input [7:0] data, input [47:0] address, output match, output done); reg [2:0] af_state; always @(posedge clk) if(reset) af_state <= 0; else if(go) af_state <= (data == address[47:40]) ? 1 : 7; else case(af_state) 1 : af_state <= (data == address[39:32]) ? 2 : 7; 2 : af_state <= (data == address[31:24]) ? 3 : 7; 3 : af_state <= (data == address[23:16]) ? 4 : 7; 4 : af_state <= (data == address[15:8]) ? 5 : 7; 5 : af_state <= (data == address[7:0]) ? 6 : 7; 6, 7 : af_state <= 0; endcase // case (af_state) assign match = (af_state==6); assign done = (af_state==6)|(af_state==7); endmodule // address_filter uhd-3.5.5/fpga/usrp2/simple_gemac/address_filter_promisc.v000066400000000000000000000024251224274632000236430ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module address_filter_promisc (input clk, input reset, input go, input [7:0] data, output match, output done); reg [2:0] af_state; always @(posedge clk) if(reset) af_state <= 0; else if(go) af_state <= (data[0] == 1'b0) ? 1 : 7; else case(af_state) 1 : af_state <= 2; 2 : af_state <= 3; 3 : af_state <= 4; 4 : af_state <= 5; 5 : af_state <= 6; 6, 7 : af_state <= 0; endcase // case (af_state) assign match = (af_state==6); assign done = (af_state==6)|(af_state==7); endmodule // address_filter_promisc uhd-3.5.5/fpga/usrp2/simple_gemac/crc.v000066400000000000000000000071531224274632000176670ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module crc (input clk, input reset, input clear, input [7:0] data, input calc, output [31:0] crc_out, output match); function[31:0] NextCRC; input[7:0] D; input[31:0] C; reg[31:0] NewCRC; begin NewCRC[0] = C[24]^C[30]^D[1]^D[7]; NewCRC[1] = C[25]^C[31]^D[0]^D[6]^C[24]^C[30]^D[1]^D[7]; NewCRC[2] = C[26]^D[5]^C[25]^C[31]^D[0]^D[6]^C[24]^C[30]^D[1]^D[7]; NewCRC[3] = C[27]^D[4]^C[26]^D[5]^C[25]^C[31]^D[0]^D[6]; NewCRC[4] = C[28]^D[3]^C[27]^D[4]^C[26]^D[5]^C[24]^C[30]^D[1]^D[7]; NewCRC[5] = C[29]^D[2]^C[28]^D[3]^C[27]^D[4]^C[25]^C[31]^D[0]^D[6]^C[24]^C[30]^D[1]^D[7]; NewCRC[6] = C[30]^D[1]^C[29]^D[2]^C[28]^D[3]^C[26]^D[5]^C[25]^C[31]^D[0]^D[6]; NewCRC[7] = C[31]^D[0]^C[29]^D[2]^C[27]^D[4]^C[26]^D[5]^C[24]^D[7]; NewCRC[8] = C[0]^C[28]^D[3]^C[27]^D[4]^C[25]^D[6]^C[24]^D[7]; NewCRC[9] = C[1]^C[29]^D[2]^C[28]^D[3]^C[26]^D[5]^C[25]^D[6]; NewCRC[10] = C[2]^C[29]^D[2]^C[27]^D[4]^C[26]^D[5]^C[24]^D[7]; NewCRC[11] = C[3]^C[28]^D[3]^C[27]^D[4]^C[25]^D[6]^C[24]^D[7]; NewCRC[12] = C[4]^C[29]^D[2]^C[28]^D[3]^C[26]^D[5]^C[25]^D[6]^C[24]^C[30]^D[1]^D[7]; NewCRC[13] = C[5]^C[30]^D[1]^C[29]^D[2]^C[27]^D[4]^C[26]^D[5]^C[25]^C[31]^D[0]^D[6]; NewCRC[14] = C[6]^C[31]^D[0]^C[30]^D[1]^C[28]^D[3]^C[27]^D[4]^C[26]^D[5]; NewCRC[15] = C[7]^C[31]^D[0]^C[29]^D[2]^C[28]^D[3]^C[27]^D[4]; NewCRC[16] = C[8]^C[29]^D[2]^C[28]^D[3]^C[24]^D[7]; NewCRC[17] = C[9]^C[30]^D[1]^C[29]^D[2]^C[25]^D[6]; NewCRC[18] = C[10]^C[31]^D[0]^C[30]^D[1]^C[26]^D[5]; NewCRC[19] = C[11]^C[31]^D[0]^C[27]^D[4]; NewCRC[20] = C[12]^C[28]^D[3]; NewCRC[21] = C[13]^C[29]^D[2]; NewCRC[22] = C[14]^C[24]^D[7]; NewCRC[23] = C[15]^C[25]^D[6]^C[24]^C[30]^D[1]^D[7]; NewCRC[24] = C[16]^C[26]^D[5]^C[25]^C[31]^D[0]^D[6]; NewCRC[25] = C[17]^C[27]^D[4]^C[26]^D[5]; NewCRC[26] = C[18]^C[28]^D[3]^C[27]^D[4]^C[24]^C[30]^D[1]^D[7]; NewCRC[27] = C[19]^C[29]^D[2]^C[28]^D[3]^C[25]^C[31]^D[0]^D[6]; NewCRC[28] = C[20]^C[30]^D[1]^C[29]^D[2]^C[26]^D[5]; NewCRC[29] = C[21]^C[31]^D[0]^C[30]^D[1]^C[27]^D[4]; NewCRC[30] = C[22]^C[31]^D[0]^C[28]^D[3]; NewCRC[31] = C[23]^C[29]^D[2]; NextCRC = NewCRC; end endfunction reg [31:0] crc_reg; always @ (posedge clk) if (reset | clear) crc_reg <= 32'hffffffff; else if (calc) crc_reg <= NextCRC(data,crc_reg); assign crc_out = ~{crc_reg[24],crc_reg[25],crc_reg[26],crc_reg[27],crc_reg[28],crc_reg[29],crc_reg[30],crc_reg[31], crc_reg[16],crc_reg[17],crc_reg[18],crc_reg[19],crc_reg[20],crc_reg[21],crc_reg[22],crc_reg[23], crc_reg[8],crc_reg[9],crc_reg[10],crc_reg[11],crc_reg[12],crc_reg[13],crc_reg[14],crc_reg[15], crc_reg[0],crc_reg[1],crc_reg[2],crc_reg[3],crc_reg[4],crc_reg[5],crc_reg[6],crc_reg[7] }; assign match = (crc_reg == 32'hc704_dd7b); endmodule // crc uhd-3.5.5/fpga/usrp2/simple_gemac/delay_line.v000066400000000000000000000021141224274632000212150ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module delay_line #(parameter WIDTH=32) (input clk, input [3:0] delay, input [WIDTH-1:0] din, output [WIDTH-1:0] dout); genvar i; generate for (i=0;i. // task SendFlowCtrl; input [15:0] fc_len; begin $display("Sending Flow Control, quanta = %d, time = %d", fc_len,$time); pause_time <= fc_len; @(posedge clk); pause_req <= 1; @(posedge clk); pause_req <= 0; $display("Sent Flow Control"); end endtask // SendFlowCtrl task SendPacket2MAC; input tx_clk; input [7:0] data_start; input [31:0] data_len; output [7:0] tx_data; output tx_valid; output tx_error; input tx_ack; reg [15:0] count; begin $display("Sending Packet Len=%d, %d", data_len, $time); count <= 1; tx_data <= data_start; tx_error <= 0; tx_valid <= 1; while(~tx_ack) @(posedge tx_clk); $display("Packet Accepted, %d", $time); while(count < data_len) begin tx_data <= tx_data + 1; count <= count + 1; @(posedge clk); end tx_valid <= 0; @(posedge tx_clk); end endtask // SendPacket2MAC task SendPacket_to_ll8; input [7:0] data_start; input [15:0] data_len; // output [7:0] tx_data; // output tx_sof; // output tx_eof; // output tx_src_rdy; // input tx_dst_rdy; reg [15:0] count; begin $display("Sending Packet Len=%d, %d", data_len, $time); count <= 2; tx_ll_data2 <= data_start; tx_ll_src_rdy2 <= 1; tx_ll_sof2 <= 1; tx_ll_eof2 <= 0; #1; while(count < data_len) begin while(~tx_ll_dst_rdy2) @(posedge clk); @(posedge clk); tx_ll_data2 = tx_ll_data2 + 1; count = count + 1; tx_ll_sof2 <= 0; end tx_ll_eof2 <= 1; while(~tx_ll_dst_rdy2) @(posedge clk); @(posedge clk); tx_ll_src_rdy2 <= 0; end endtask // SendPacket_to_ll8 task SendPacketFromFile; input clk; input [31:0] data_len; output [7:0] tx_data; output tx_valid; output tx_error; input tx_ack; reg [15:0] count; begin $display("Sending Packet From File Len=%d, %d",data_len,$time); $readmemh("test_packet.mem",pkt_rom ); count = 0; tx_data = pkt_rom[count]; tx_error = 0; tx_valid = 1; while(~tx_ack) @(posedge clk); $display("Packet Accepted, %d",$time); count = 1; while(count < data_len) begin tx_data = pkt_rom[count]; count = count + 1; @(posedge clk); end tx_valid <= 0; @(posedge clk); end endtask // SendPacketFromFile task Waiter; input [31:0] wait_length; begin tx_ll_src_rdy2 <= 0; repeat(wait_length) @(posedge clk); tx_ll_src_rdy2 <= 1; end endtask // Waiter task SendPacketFromFile_ll8; input [31:0] data_len; input [31:0] wait_length; input [31:0] wait_time; integer count; begin $display("Sending Packet From File to LL8 Len=%d, %d",data_len,$time); $readmemh("test_packet.mem",pkt_rom ); while(~tx_ll_dst_rdy2) @(posedge clk); tx_ll_data2 <= pkt_rom[0]; tx_ll_src_rdy2 <= 1; tx_ll_sof2 <= 1; tx_ll_eof2 <= 0; @(posedge clk); for(i=1;i. // task SendFlowCtrl; input [15:0] fc_len; begin $display("Sending Flow Control, quanta = %d, time = %d", fc_len,$time); pause_time <= fc_len; @(posedge eth_clk); pause_req <= 1; @(posedge eth_clk); pause_req <= 0; $display("Sent Flow Control"); end endtask // SendFlowCtrl task SendPacket_to_fifo19; input [31:0] data_start; input [15:0] data_len; reg [15:0] count; begin $display("Sending Packet Len=%d, %d", data_len, $time); count <= 2; tx_f19_data <= {2'b0, 1'b0, 1'b1, data_start}; tx_f19_src_rdy <= 1; #1; while(count < data_len) begin while(~tx_f19_dst_rdy) @(posedge sys_clk); @(posedge sys_clk); //tx_f19_data[31:0] = tx_f19_data[31:0] + 32'h0101_0101; count = count + 4; //tx_f19_data[32] <= 0; end //tx_f19_data[33] <= 1; while(~tx_f19_dst_rdy) @(posedge sys_clk); @(posedge sys_clk); tx_f19_src_rdy <= 0; end endtask // SendPacket_to_fifo19 /* task Waiter; input [31:0] wait_length; begin tx_ll_src_rdy2 <= 0; repeat(wait_length) @(posedge clk); tx_ll_src_rdy2 <= 1; end endtask // Waiter */ /* task SendPacketFromFile_f19; input [31:0] data_len; input [31:0] wait_length; input [31:0] wait_time; integer count; begin $display("Sending Packet From File to LL8 Len=%d, %d",data_len,$time); $readmemh("test_packet.mem",pkt_rom ); while(~tx_f19_dst_rdy) @(posedge clk); tx_f19_data <= pkt_rom[0]; tx_f19_src_rdy <= 1; tx_f19_eof <= 0; @(posedge clk); for(i=1;i. // task SendFlowCtrl; input [15:0] fc_len; begin $display("Sending Flow Control, quanta = %d, time = %d", fc_len,$time); //pause_time <= fc_len; @(posedge eth_clk); //pause_req <= 1; @(posedge eth_clk); //pause_req <= 0; $display("Sent Flow Control"); end endtask // SendFlowCtrl task SendPacket_to_fifo36; input [31:0] data_start; input [15:0] data_len; reg [15:0] count; begin $display("Sending Packet Len=%d, %d", data_len, $time); count <= 2; tx_f36_data <= {2'b0, 1'b0, 1'b1, data_start}; tx_f36_src_rdy <= 1; #1; while(count < data_len) begin while(~tx_f36_dst_rdy) @(posedge sys_clk); @(posedge sys_clk); tx_f36_data[31:0] = tx_f36_data[31:0] + 32'h0101_0101; count = count + 4; tx_f36_data[32] <= 0; end tx_f36_data[33] <= 1; while(~tx_f36_dst_rdy) @(posedge sys_clk); @(posedge sys_clk); tx_f36_src_rdy <= 0; end endtask // SendPacket_to_fifo36 /* task Waiter; input [31:0] wait_length; begin tx_ll_src_rdy2 <= 0; repeat(wait_length) @(posedge clk); tx_ll_src_rdy2 <= 1; end endtask // Waiter */ /* task SendPacketFromFile_f36; input [31:0] data_len; input [31:0] wait_length; input [31:0] wait_time; integer count; begin $display("Sending Packet From File to LL8 Len=%d, %d",data_len,$time); $readmemh("test_packet.mem",pkt_rom ); while(~tx_f36_dst_rdy) @(posedge clk); tx_f36_data <= pkt_rom[0]; tx_f36_src_rdy <= 1; tx_f36_eof <= 0; @(posedge clk); for(i=1;i. // // NOTE: Will not work with single-line frames module ethrx_realign (input clk, input reset, input clear, input [35:0] datain, input src_rdy_i, output dst_rdy_o, output [35:0] dataout, output src_rdy_o, input dst_rdy_i); reg [1:0] state; reg [15:0] held; reg [1:0] held_occ; wire xfer_in = src_rdy_i & dst_rdy_o; wire xfer_out = src_rdy_o & dst_rdy_i; wire sof_in = datain[32]; wire eof_in = datain[33]; wire [1:0] occ_in = datain[35:34]; wire sof_out, eof_out; wire [1:0] occ_out; always @(posedge clk) if(reset | clear) begin held <= 0; held_occ <= 0; end else if(xfer_in) begin held <= datain[15:0]; held_occ <= datain[35:34]; end localparam RE_IDLE = 0; localparam RE_HELD = 1; localparam RE_DONE = 2; always @(posedge clk) if(reset | clear) state <= RE_IDLE; else case(state) RE_IDLE : if(src_rdy_i & dst_rdy_i) if(eof_in) state <= RE_DONE; else state <= RE_HELD; RE_HELD : if(src_rdy_i & dst_rdy_i & eof_in) if((occ_in==0)|(occ_in==3)) state <= RE_DONE; else state <= RE_IDLE; RE_DONE : if(dst_rdy_i) state <= RE_IDLE; endcase // case (state) assign sof_out = (state == RE_IDLE); assign eof_out = (state == RE_DONE) | (occ_in == 1) | (occ_in == 2); assign occ_out = (state == RE_DONE) ? ((held_occ == 3) ? 1 : 2) : (occ_in == 1) ? 3 : 0; assign dataout = {occ_out,eof_out,sof_out,held,datain[31:16]}; assign src_rdy_o = (state == RE_DONE) | src_rdy_i; assign dst_rdy_o = dst_rdy_i & ((state == RE_IDLE)|(state == RE_HELD)); endmodule // ethrx_realign uhd-3.5.5/fpga/usrp2/simple_gemac/ethtx_realign.v000066400000000000000000000050751224274632000217560ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //////////////////////////////////////////////////////////////////////// // Ethernet TX - Realign // // - removes a 2-byte pad from the front a fifo36 stream // - occupancy is preserved // module ethtx_realign (input clk, input reset, input clear, input [35:0] datain, input src_rdy_i, output dst_rdy_o, output [35:0] dataout, output src_rdy_o, input dst_rdy_i); reg [1:0] state; reg [15:0] held; reg [1:0] held_occ; reg held_sof; wire xfer_in = src_rdy_i & dst_rdy_o; wire xfer_out = src_rdy_o & dst_rdy_i; wire sof_in = datain[32]; wire eof_in = datain[33]; wire [1:0] occ_in = datain[35:34]; wire occ_low = occ_in[1] ^ occ_in[0]; //occ is 1 or 2 always @(posedge clk) if(reset | clear) begin held <= 0; held_occ <= 0; held_sof <= 0; end else if(xfer_in) begin held <= datain[15:0]; held_occ <= occ_in; held_sof <= sof_in; end localparam RE_IDLE = 0; localparam RE_HELD = 1; localparam RE_DONE = 2; always @(posedge clk) if(reset | clear) state <= RE_IDLE; else case(state) RE_IDLE : if(xfer_in & eof_in) state <= RE_DONE; else if(xfer_in & sof_in) state <= RE_HELD; RE_HELD : if(xfer_in & xfer_out & eof_in) if(occ_low) state <= RE_IDLE; else state <= RE_DONE; RE_DONE : if(xfer_out) state <= RE_IDLE; endcase // case (state) wire sof_out = held_sof; wire eof_out = (state == RE_HELD)? (eof_in & occ_low) : (state == RE_DONE); wire [1:0] occ_out = ((state == RE_DONE)? held_occ : occ_in) ^ 2'b10; //(occ + 2)%4 assign dataout = {occ_out,eof_out,sof_out,held,datain[31:16]}; assign src_rdy_o = (state == RE_HELD)? src_rdy_i : (state == RE_DONE); assign dst_rdy_o = (state == RE_HELD)? dst_rdy_i : (state == RE_IDLE); endmodule // ethtx_realign uhd-3.5.5/fpga/usrp2/simple_gemac/flow_ctrl_rx.v000066400000000000000000000051021224274632000216140ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // RX side of flow control -- when we are running out of RX space, send a PAUSE module flow_ctrl_rx (input pause_request_en, input [15:0] pause_time, input [15:0] pause_thresh, input rx_clk, input rx_reset, input [15:0] rx_fifo_space, input tx_clk, input tx_reset, output reg pause_req, output reg [15:0] pause_time_req ); // ****************************************************************************** // Force our TX to send a PAUSE frame because our RX is nearly full // ****************************************************************************** // RX Clock Domain reg xon, xoff; reg [21:0] countdown; wire [15:0] pause_low_thresh = pause_thresh; wire [15:0] pause_hi_thresh = 16'hFFFF; wire [21:0] pq_reduced = {pause_time,6'd0} - 1700; always @(posedge rx_clk) if(rx_reset) xoff <= 0; else xoff <= (pause_request_en & (countdown==0) & (rx_fifo_space < pause_low_thresh)); always @(posedge rx_clk) if(rx_reset) xon <= 0; else xon <= ((countdown!=0) & (rx_fifo_space > pause_hi_thresh)); always @(posedge rx_clk) if(rx_reset) countdown <= 0; else if(xoff) countdown <= pq_reduced; else if(xon) countdown <= 0; else if(countdown != 0) countdown <= countdown - 1; // Cross clock domains wire xon_tx, xoff_tx; oneshot_2clk send_xon (.clk_in(rx_clk), .in(xon), .clk_out(tx_clk), .out(xon_tx)); oneshot_2clk send_xoff (.clk_in(rx_clk), .in(xoff), .clk_out(tx_clk), .out(xoff_tx)); always @(posedge tx_clk) if(xoff_tx) pause_time_req <= pause_time; else if(xon_tx) pause_time_req <= 0; always @(posedge tx_clk) if(tx_reset) pause_req <= 0; else pause_req <= xon_tx | xoff_tx; endmodule // flow_ctrl_rx uhd-3.5.5/fpga/usrp2/simple_gemac/flow_ctrl_tx.v000066400000000000000000000037751224274632000216340ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // TX side of flow control -- when other side sends PAUSE, we wait module flow_ctrl_tx (input rst, input tx_clk, //host processor input tx_pause_en, // From MAC_rx_ctrl input [15:0] pause_quanta, input pause_quanta_val, // MAC_tx_ctrl output pause_apply, input paused); // ****************************************************************************** // Inhibit our TX from transmitting because they sent us a PAUSE frame // ****************************************************************************** // Pauses are in units of 512 bit times, or 64 bytes/clock cycles, and can be // as big as 16 bits, so 22 bits are needed for the counter reg [15+6:0] pause_quanta_counter; reg pqval_d1, pqval_d2; always @(posedge tx_clk) pqval_d1 <= pause_quanta_val; always @(posedge tx_clk) pqval_d2 <= pqval_d1; always @ (posedge tx_clk or posedge rst) if (rst) pause_quanta_counter <= 0; else if (pqval_d1 & ~pqval_d2) pause_quanta_counter <= {pause_quanta, 6'b0}; else if((pause_quanta_counter!=0) & paused) pause_quanta_counter <= pause_quanta_counter - 1; assign pause_apply = tx_pause_en & (pause_quanta_counter != 0); endmodule // flow_ctrl uhd-3.5.5/fpga/usrp2/simple_gemac/ll8_to_txmac.v000066400000000000000000000035671224274632000215220ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module ll8_to_txmac (input clk, input reset, input clear, input [7:0] ll_data, input ll_sof, input ll_eof, input ll_src_rdy, output ll_dst_rdy, output [7:0] tx_data, output tx_valid, output tx_error, input tx_ack ); reg [2:0] xfer_state; localparam XFER_IDLE = 0; localparam XFER_ACTIVE = 1; localparam XFER_WAIT1 = 2; localparam XFER_UNDERRUN = 3; localparam XFER_DROP = 4; always @(posedge clk) if(reset | clear) xfer_state <= XFER_IDLE; else case(xfer_state) XFER_IDLE : if(tx_ack) xfer_state <= XFER_ACTIVE; XFER_ACTIVE : if(~ll_src_rdy) xfer_state <= XFER_UNDERRUN; else if(ll_eof) xfer_state <= XFER_WAIT1; XFER_WAIT1 : xfer_state <= XFER_IDLE; XFER_UNDERRUN : xfer_state <= XFER_DROP; XFER_DROP : if(ll_eof) xfer_state <= XFER_IDLE; endcase // case (xfer_state) assign ll_dst_rdy = (xfer_state == XFER_ACTIVE) | tx_ack | (xfer_state == XFER_DROP); assign tx_valid = (ll_src_rdy & (xfer_state == XFER_IDLE))|(xfer_state == XFER_ACTIVE); assign tx_data = ll_data; assign tx_error = (xfer_state == XFER_UNDERRUN); endmodule // ll8_to_txmac uhd-3.5.5/fpga/usrp2/simple_gemac/miim/000077500000000000000000000000001224274632000176565ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/simple_gemac/miim/eth_clockgen.v000066400000000000000000000132211224274632000224710ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// eth_clockgen.v //// //// //// //// This file is part of the Ethernet IP core project //// //// http://www.opencores.org/projects/ethmac/ //// //// //// //// Author(s): //// //// - Igor Mohor (igorM@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // CVS Revision History // // $Log: eth_clockgen.v,v $ // Revision 1.2 2005/12/13 12:54:49 maverickist // first simulation passed // // Revision 1.1.1.1 2005/12/13 01:51:45 Administrator // no message // // Revision 1.2 2005/04/27 15:58:45 Administrator // no message // // Revision 1.1.1.1 2004/12/15 06:38:54 Administrator // no message // // Revision 1.3 2002/01/23 10:28:16 mohor // Link in the header changed. // // Revision 1.2 2001/10/19 08:43:51 mohor // eth_timescale.v changed to timescale.v This is done because of the // simulation of the few cores in a one joined project. // // Revision 1.1 2001/08/06 14:44:29 mohor // A define FPGA added to select between Artisan RAM (for ASIC) and Block Ram (For Virtex). // Include files fixed to contain no path. // File names and module names changed ta have a eth_ prologue in the name. // File eth_timescale.v is used to define timescale // All pin names on the top module are changed to contain _I, _O or _OE at the end. // Bidirectional signal MDIO is changed to three signals (Mdc_O, Mdi_I, Mdo_O // and Mdo_OE. The bidirectional signal must be created on the top level. This // is done due to the ASIC tools. // // Revision 1.1 2001/07/30 21:23:42 mohor // Directory structure changed. Files checked and joind together. // // Revision 1.3 2001/06/01 22:28:55 mohor // This files (MIIM) are fully working. They were thoroughly tested. The testbench is not updated. // // module eth_clockgen(Clk, Reset, Divider, MdcEn, MdcEn_n, Mdc); //parameter Tp=1; input Clk; // Input clock (Host clock) input Reset; // Reset signal input [7:0] Divider; // Divider (input clock will be divided by the Divider[7:0]) output Mdc; // Output clock output MdcEn; // Enable signal is asserted for one Clk period before Mdc rises. output MdcEn_n; // Enable signal is asserted for one Clk period before Mdc falls. reg Mdc; reg [7:0] Counter; wire CountEq0; wire [7:0] CounterPreset; wire [7:0] TempDivider; assign TempDivider[7:0] = (Divider[7:0]<2)? 8'h02 : Divider[7:0]; // If smaller than 2 assign CounterPreset[7:0] = (TempDivider[7:0]>>1) -1; // We are counting half of period // Counter counts half period always @ (posedge Clk or posedge Reset) begin if(Reset) Counter[7:0] <= 8'h1; else begin if(CountEq0) begin Counter[7:0] <= CounterPreset[7:0]; end else Counter[7:0] <= Counter - 8'h1; end end // Mdc is asserted every other half period always @ (posedge Clk or posedge Reset) begin if(Reset) Mdc <= 1'b0; else begin if(CountEq0) Mdc <= ~Mdc; end end assign CountEq0 = Counter == 8'h0; assign MdcEn = CountEq0 & ~Mdc; assign MdcEn_n = CountEq0 & Mdc; endmodule uhd-3.5.5/fpga/usrp2/simple_gemac/miim/eth_miim.v000066400000000000000000000405751224274632000216530ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// eth_miim.v //// //// //// //// This file is part of the Ethernet IP core project //// //// http://www.opencores.org/projects/ethmac/ //// //// //// //// Author(s): //// //// - Igor Mohor (igorM@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // CVS Revision History // // $Log: eth_miim.v,v $ // Revision 1.3 2006/01/19 14:07:53 maverickist // verification is complete. // // Revision 1.1.1.1 2005/12/13 01:51:44 Administrator // no message // // Revision 1.4 2005/08/16 12:07:57 Administrator // no message // // Revision 1.3 2005/05/19 07:04:29 Administrator // no message // // Revision 1.2 2005/04/27 15:58:46 Administrator // no message // // Revision 1.1.1.1 2004/12/15 06:38:54 Administrator // no message // // Revision 1.5 2003/05/16 10:08:27 mohor // Busy was set 2 cycles too late. Reported by Dennis Scott. // // Revision 1.4 2002/08/14 18:32:10 mohor // - Busy signal was not set on time when scan status operation was performed // and clock was divided with more than 2. // - Nvalid remains valid two more clocks (was previously cleared too soon). // // Revision 1.3 2002/01/23 10:28:16 mohor // Link in the header changed. // // Revision 1.2 2001/10/19 08:43:51 mohor // eth_timescale.v changed to timescale.v This is done because of the // simulation of the few cores in a one joined project. // // Revision 1.1 2001/08/06 14:44:29 mohor // A define FPGA added to select between Artisan RAM (for ASIC) and Block Ram (For Virtex). // Include files fixed to contain no path. // File names and module names changed ta have a eth_ prologue in the name. // File eth_timescale.v is used to define timescale // All pin names on the top module are changed to contain _I, _O or _OE at the end. // Bidirectional signal MDIO is changed to three signals (Mdc_O, Mdi_I, Mdo_O // and Mdo_OE. The bidirectional signal must be created on the top level. This // is done due to the ASIC tools. // // Revision 1.2 2001/08/02 09:25:31 mohor // Unconnected signals are now connected. // // Revision 1.1 2001/07/30 21:23:42 mohor // Directory structure changed. Files checked and joind together. // // Revision 1.3 2001/06/01 22:28:56 mohor // This files (MIIM) are fully working. They were thoroughly tested. The testbench is not updated. // // module eth_miim ( Clk, Reset, Divider, NoPre, CtrlData, Rgad, Fiad, WCtrlData, RStat, ScanStat, Mdio, Mdc, Busy, Prsd, LinkFail, Nvalid, WCtrlDataStart, RStatStart, UpdateMIIRX_DATAReg ); input Clk; // Host Clock input Reset; // General Reset input [7:0] Divider; // Divider for the host clock input [15:0] CtrlData; // Control Data (to be written to the PHY reg.) input [4:0] Rgad; // Register Address (within the PHY) input [4:0] Fiad; // PHY Address input NoPre; // No Preamble (no 32-bit preamble) input WCtrlData; // Write Control Data operation input RStat; // Read Status operation input ScanStat; // Scan Status operation inout Mdio; // MII Management Data In output Mdc; // MII Management Data Clock output Busy; // Busy Signal output LinkFail; // Link Integrity Signal output Nvalid; // Invalid Status (qualifier for the valid scan result) output [15:0] Prsd; // Read Status Data (data read from the PHY) output WCtrlDataStart; // This signals resets the WCTRLDATA bit in the MIIM Command register output RStatStart; // This signal resets the RSTAT BIT in the MIIM Command register output UpdateMIIRX_DATAReg;// Updates MII RX_DATA register with read data //parameter Tp = 1; reg Nvalid; reg EndBusy_d; // Pre-end Busy signal reg EndBusy; // End Busy signal (stops the operation in progress) reg WCtrlData_q1; // Write Control Data operation delayed 1 Clk cycle reg WCtrlData_q2; // Write Control Data operation delayed 2 Clk cycles reg WCtrlData_q3; // Write Control Data operation delayed 3 Clk cycles reg WCtrlDataStart; // Start Write Control Data Command (positive edge detected) reg WCtrlDataStart_q; reg WCtrlDataStart_q1; // Start Write Control Data Command delayed 1 Mdc cycle reg WCtrlDataStart_q2; // Start Write Control Data Command delayed 2 Mdc cycles reg RStat_q1; // Read Status operation delayed 1 Clk cycle reg RStat_q2; // Read Status operation delayed 2 Clk cycles reg RStat_q3; // Read Status operation delayed 3 Clk cycles reg RStatStart; // Start Read Status Command (positive edge detected) reg RStatStart_q1; // Start Read Status Command delayed 1 Mdc cycle reg RStatStart_q2; // Start Read Status Command delayed 2 Mdc cycles reg ScanStat_q1; // Scan Status operation delayed 1 cycle reg ScanStat_q2; // Scan Status operation delayed 2 cycles reg SyncStatMdcEn; // Scan Status operation delayed at least cycles and synchronized to MdcEn wire WriteDataOp; // Write Data Operation (positive edge detected) wire ReadStatusOp; // Read Status Operation (positive edge detected) wire ScanStatusOp; // Scan Status Operation (positive edge detected) wire StartOp; // Start Operation (start of any of the preceding operations) wire EndOp; // End of Operation reg InProgress; // Operation in progress reg InProgress_q1; // Operation in progress delayed 1 Mdc cycle reg InProgress_q2; // Operation in progress delayed 2 Mdc cycles reg InProgress_q3; // Operation in progress delayed 3 Mdc cycles reg WriteOp; // Write Operation Latch (When asserted, write operation is in progress) reg [6:0] BitCounter; // Bit Counter wire [3:0] ByteSelect; // Byte Select defines which byte (preamble, data, operation, etc.) is loaded and shifted through the shift register. wire MdcEn; // MII Management Data Clock Enable signal is asserted for one Clk period before Mdc rises. wire ShiftedBit; // This bit is output of the shift register and is connected to the Mdo signal wire LatchByte1_d2; wire LatchByte0_d2; reg LatchByte1_d; reg LatchByte0_d; reg [1:0] LatchByte; // Latch Byte selects which part of Read Status Data is updated from the shift register reg UpdateMIIRX_DATAReg;// Updates MII RX_DATA register with read data wire Mdo; // MII Management Data Output wire MdoEn; // MII Management Data Output Enable wire Mdi; assign Mdi=Mdio; assign Mdio=MdoEn?Mdo:1'bz; // Generation of the EndBusy signal. It is used for ending the MII Management operation. always @ (posedge Clk or posedge Reset) begin if(Reset) begin EndBusy_d <= 1'b0; EndBusy <= 1'b0; end else begin EndBusy_d <= ~InProgress_q2 & InProgress_q3; EndBusy <= EndBusy_d; end end // Update MII RX_DATA register always @ (posedge Clk or posedge Reset) begin if(Reset) UpdateMIIRX_DATAReg <= 0; else if(EndBusy & ~WCtrlDataStart_q) UpdateMIIRX_DATAReg <= 1; else UpdateMIIRX_DATAReg <= 0; end // Generation of the delayed signals used for positive edge triggering. always @ (posedge Clk or posedge Reset) begin if(Reset) begin WCtrlData_q1 <= 1'b0; WCtrlData_q2 <= 1'b0; WCtrlData_q3 <= 1'b0; RStat_q1 <= 1'b0; RStat_q2 <= 1'b0; RStat_q3 <= 1'b0; ScanStat_q1 <= 1'b0; ScanStat_q2 <= 1'b0; SyncStatMdcEn <= 1'b0; end else begin WCtrlData_q1 <= WCtrlData; WCtrlData_q2 <= WCtrlData_q1; WCtrlData_q3 <= WCtrlData_q2; RStat_q1 <= RStat; RStat_q2 <= RStat_q1; RStat_q3 <= RStat_q2; ScanStat_q1 <= ScanStat; ScanStat_q2 <= ScanStat_q1; if(MdcEn) SyncStatMdcEn <= ScanStat_q2; end end // Generation of the Start Commands (Write Control Data or Read Status) always @ (posedge Clk or posedge Reset) begin if(Reset) begin WCtrlDataStart <= 1'b0; WCtrlDataStart_q <= 1'b0; RStatStart <= 1'b0; end else begin if(EndBusy) begin WCtrlDataStart <= 1'b0; RStatStart <= 1'b0; end else begin if(WCtrlData_q2 & ~WCtrlData_q3) WCtrlDataStart <= 1'b1; if(RStat_q2 & ~RStat_q3) RStatStart <= 1'b1; WCtrlDataStart_q <= WCtrlDataStart; end end end // Generation of the Nvalid signal (indicates when the status is invalid) always @ (posedge Clk or posedge Reset) begin if(Reset) Nvalid <= 1'b0; else begin if(~InProgress_q2 & InProgress_q3) begin Nvalid <= 1'b0; end else begin if(ScanStat_q2 & ~SyncStatMdcEn) Nvalid <= 1'b1; end end end // Signals used for the generation of the Operation signals (positive edge) always @ (posedge Clk or posedge Reset) begin if(Reset) begin WCtrlDataStart_q1 <= 1'b0; WCtrlDataStart_q2 <= 1'b0; RStatStart_q1 <= 1'b0; RStatStart_q2 <= 1'b0; InProgress_q1 <= 1'b0; InProgress_q2 <= 1'b0; InProgress_q3 <= 1'b0; LatchByte0_d <= 1'b0; LatchByte1_d <= 1'b0; LatchByte <= 2'b00; end else begin if(MdcEn) begin WCtrlDataStart_q1 <= WCtrlDataStart; WCtrlDataStart_q2 <= WCtrlDataStart_q1; RStatStart_q1 <= RStatStart; RStatStart_q2 <= RStatStart_q1; LatchByte[0] <= LatchByte0_d; LatchByte[1] <= LatchByte1_d; LatchByte0_d <= LatchByte0_d2; LatchByte1_d <= LatchByte1_d2; InProgress_q1 <= InProgress; InProgress_q2 <= InProgress_q1; InProgress_q3 <= InProgress_q2; end end end // Generation of the Operation signals assign WriteDataOp = WCtrlDataStart_q1 & ~WCtrlDataStart_q2; assign ReadStatusOp = RStatStart_q1 & ~RStatStart_q2; assign ScanStatusOp = SyncStatMdcEn & ~InProgress & ~InProgress_q1 & ~InProgress_q2; assign StartOp = WriteDataOp | ReadStatusOp | ScanStatusOp; // Busy reg Busy; always @ (posedge Clk or posedge Reset) if (Reset) Busy <=0; else if(WCtrlData | WCtrlDataStart | RStat | RStatStart | SyncStatMdcEn | EndBusy | InProgress | InProgress_q3 | Nvalid) Busy <=1; else Busy <=0; //assign Busy = WCtrlData | WCtrlDataStart | RStat | RStatStart | SyncStatMdcEn | EndBusy | InProgress | InProgress_q3 | Nvalid; // Generation of the InProgress signal (indicates when an operation is in progress) // Generation of the WriteOp signal (indicates when a write is in progress) always @ (posedge Clk or posedge Reset) begin if(Reset) begin InProgress <= 1'b0; WriteOp <= 1'b0; end else begin if(MdcEn) begin if(StartOp) begin if(~InProgress) WriteOp <= WriteDataOp; InProgress <= 1'b1; end else begin if(EndOp) begin InProgress <= 1'b0; WriteOp <= 1'b0; end end end end end // Bit Counter counts from 0 to 63 (from 32 to 63 when NoPre is asserted) always @ (posedge Clk or posedge Reset) begin if(Reset) BitCounter[6:0] <= 7'h0; else begin if(MdcEn) begin if(InProgress) begin if(NoPre & ( BitCounter == 7'h0 )) BitCounter[6:0] <= 7'h21; else BitCounter[6:0] <= BitCounter[6:0] + 1'b1; end else BitCounter[6:0] <= 7'h0; end end end // Operation ends when the Bit Counter reaches 63 assign EndOp = BitCounter==63; assign ByteSelect[0] = InProgress & ((NoPre & (BitCounter == 7'h0)) | (~NoPre & (BitCounter == 7'h20))); assign ByteSelect[1] = InProgress & (BitCounter == 7'h28); assign ByteSelect[2] = InProgress & WriteOp & (BitCounter == 7'h30); assign ByteSelect[3] = InProgress & WriteOp & (BitCounter == 7'h38); // Latch Byte selects which part of Read Status Data is updated from the shift register assign LatchByte1_d2 = InProgress & ~WriteOp & BitCounter == 7'h37; assign LatchByte0_d2 = InProgress & ~WriteOp & BitCounter == 7'h3F; wire MdcEn_n; // Connecting the Clock Generator Module eth_clockgen clkgen(.Clk(Clk), .Reset(Reset), .Divider(Divider[7:0]), .MdcEn(MdcEn), .MdcEn_n(MdcEn_n), .Mdc(Mdc) ); // Connecting the Shift Register Module eth_shiftreg shftrg(.Clk(Clk), .Reset(Reset), .MdcEn_n(MdcEn_n), .Mdi(Mdi), .Fiad(Fiad), .Rgad(Rgad), .CtrlData(CtrlData), .WriteOp(WriteOp), .ByteSelect(ByteSelect), .LatchByte(LatchByte), .ShiftedBit(ShiftedBit), .Prsd(Prsd), .LinkFail(LinkFail) ); // Connecting the Output Control Module eth_outputcontrol outctrl(.Clk(Clk), .Reset(Reset), .MdcEn_n(MdcEn_n), .InProgress(InProgress), .ShiftedBit(ShiftedBit), .BitCounter(BitCounter), .WriteOp(WriteOp), .NoPre(NoPre), .Mdo(Mdo), .MdoEn(MdoEn) ); endmodule uhd-3.5.5/fpga/usrp2/simple_gemac/miim/eth_outputcontrol.v000066400000000000000000000146371224274632000236610ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// eth_outputcontrol.v //// //// //// //// This file is part of the Ethernet IP core project //// //// http://www.opencores.org/projects/ethmac/ //// //// //// //// Author(s): //// //// - Igor Mohor (igorM@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // CVS Revision History // // $Log: eth_outputcontrol.v,v $ // Revision 1.2 2005/12/13 12:54:49 maverickist // first simulation passed // // Revision 1.1.1.1 2005/12/13 01:51:45 Administrator // no message // // Revision 1.2 2005/04/27 15:58:46 Administrator // no message // // Revision 1.1.1.1 2004/12/15 06:38:54 Administrator // no message // // Revision 1.4 2002/07/09 20:11:59 mohor // Comment removed. // // Revision 1.3 2002/01/23 10:28:16 mohor // Link in the header changed. // // Revision 1.2 2001/10/19 08:43:51 mohor // eth_timescale.v changed to timescale.v This is done because of the // simulation of the few cores in a one joined project. // // Revision 1.1 2001/08/06 14:44:29 mohor // A define FPGA added to select between Artisan RAM (for ASIC) and Block Ram (For Virtex). // Include files fixed to contain no path. // File names and module names changed ta have a eth_ prologue in the name. // File eth_timescale.v is used to define timescale // All pin names on the top module are changed to contain _I, _O or _OE at the end. // Bidirectional signal MDIO is changed to three signals (Mdc_O, Mdi_I, Mdo_O // and Mdo_OE. The bidirectional signal must be created on the top level. This // is done due to the ASIC tools. // // Revision 1.1 2001/07/30 21:23:42 mohor // Directory structure changed. Files checked and joind together. // // Revision 1.3 2001/06/01 22:28:56 mohor // This files (MIIM) are fully working. They were thoroughly tested. The testbench is not updated. // // module eth_outputcontrol(Clk, Reset, InProgress, ShiftedBit, BitCounter, WriteOp, NoPre, MdcEn_n, Mdo, MdoEn); input Clk; // Host Clock input Reset; // General Reset input WriteOp; // Write Operation Latch (When asserted, write operation is in progress) input NoPre; // No Preamble (no 32-bit preamble) input InProgress; // Operation in progress input ShiftedBit; // This bit is output of the shift register and is connected to the Mdo signal input [6:0] BitCounter; // Bit Counter input MdcEn_n; // MII Management Data Clock Enable signal is asserted for one Clk period before Mdc falls. output Mdo; // MII Management Data Output output MdoEn; // MII Management Data Output Enable wire SerialEn; reg MdoEn_2d; reg MdoEn_d; reg MdoEn; reg Mdo_2d; reg Mdo_d; reg Mdo; // MII Management Data Output // Generation of the Serial Enable signal (enables the serialization of the data) assign SerialEn = WriteOp & InProgress & ( BitCounter>31 | ( ( BitCounter == 0 ) & NoPre ) ) | ~WriteOp & InProgress & (( BitCounter>31 & BitCounter<46 ) | ( ( BitCounter == 0 ) & NoPre )); // Generation of the MdoEn signal always @ (posedge Clk or posedge Reset) begin if(Reset) begin MdoEn_2d <= 1'b0; MdoEn_d <= 1'b0; MdoEn <= 1'b0; end else begin if(MdcEn_n) begin MdoEn_2d <= SerialEn | InProgress & BitCounter<32; MdoEn_d <= MdoEn_2d; MdoEn <= MdoEn_d; end end end // Generation of the Mdo signal. always @ (posedge Clk or posedge Reset) begin if(Reset) begin Mdo_2d <= 1'b0; Mdo_d <= 1'b0; Mdo <= 1'b0; end else begin if(MdcEn_n) begin Mdo_2d <= ~SerialEn & BitCounter<32; Mdo_d <= ShiftedBit | Mdo_2d; Mdo <= Mdo_d; end end end endmodule uhd-3.5.5/fpga/usrp2/simple_gemac/miim/eth_shiftreg.v000066400000000000000000000155131224274632000225250ustar00rootroot00000000000000////////////////////////////////////////////////////////////////////// //// //// //// eth_shiftreg.v //// //// //// //// This file is part of the Ethernet IP core project //// //// http://www.opencores.org/projects/ethmac/ //// //// //// //// Author(s): //// //// - Igor Mohor (igorM@opencores.org) //// //// //// //// All additional information is avaliable in the Readme.txt //// //// file. //// //// //// ////////////////////////////////////////////////////////////////////// //// //// //// Copyright (C) 2001 Authors //// //// //// //// This source file may be used and distributed without //// //// restriction provided that this copyright statement is not //// //// removed from the file and that any derivative work contains //// //// the original copyright notice and the associated disclaimer. //// //// //// //// This source file is free software; you can redistribute it //// //// and/or modify it under the terms of the GNU Lesser General //// //// Public License as published by the Free Software Foundation; //// //// either version 2.1 of the License, or (at your option) any //// //// later version. //// //// //// //// This source is distributed in the hope that it will be //// //// useful, but WITHOUT ANY WARRANTY; without even the implied //// //// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //// //// PURPOSE. See the GNU Lesser General Public License for more //// //// details. //// //// //// //// You should have received a copy of the GNU Lesser General //// //// Public License along with this source; if not, download it //// //// from http://www.opencores.org/lgpl.shtml //// //// //// ////////////////////////////////////////////////////////////////////// // // CVS Revision History // // $Log: eth_shiftreg.v,v $ // Revision 1.2 2005/12/13 12:54:49 maverickist // first simulation passed // // Revision 1.1.1.1 2005/12/13 01:51:45 Administrator // no message // // Revision 1.2 2005/04/27 15:58:47 Administrator // no message // // Revision 1.1.1.1 2004/12/15 06:38:54 Administrator // no message // // Revision 1.5 2002/08/14 18:16:59 mohor // LinkFail signal was not latching appropriate bit. // // Revision 1.4 2002/03/02 21:06:01 mohor // LinkFail signal was not latching appropriate bit. // // Revision 1.3 2002/01/23 10:28:16 mohor // Link in the header changed. // // Revision 1.2 2001/10/19 08:43:51 mohor // eth_timescale.v changed to timescale.v This is done because of the // simulation of the few cores in a one joined project. // // Revision 1.1 2001/08/06 14:44:29 mohor // A define FPGA added to select between Artisan RAM (for ASIC) and Block Ram (For Virtex). // Include files fixed to contain no path. // File names and module names changed ta have a eth_ prologue in the name. // File eth_timescale.v is used to define timescale // All pin names on the top module are changed to contain _I, _O or _OE at the end. // Bidirectional signal MDIO is changed to three signals (Mdc_O, Mdi_I, Mdo_O // and Mdo_OE. The bidirectional signal must be created on the top level. This // is done due to the ASIC tools. // // Revision 1.1 2001/07/30 21:23:42 mohor // Directory structure changed. Files checked and joind together. // // Revision 1.3 2001/06/01 22:28:56 mohor // This files (MIIM) are fully working. They were thoroughly tested. The testbench is not updated. // // module eth_shiftreg(Clk, Reset, MdcEn_n, Mdi, Fiad, Rgad, CtrlData, WriteOp, ByteSelect, LatchByte, ShiftedBit, Prsd, LinkFail); input Clk; // Input clock (Host clock) input Reset; // Reset signal input MdcEn_n; // Enable signal is asserted for one Clk period before Mdc falls. input Mdi; // MII input data input [4:0] Fiad; // PHY address input [4:0] Rgad; // Register address (within the selected PHY) input [15:0]CtrlData; // Control data (data to be written to the PHY) input WriteOp; // The current operation is a PHY register write operation input [3:0] ByteSelect; // Byte select input [1:0] LatchByte; // Byte select for latching (read operation) output ShiftedBit; // Bit shifted out of the shift register output[15:0]Prsd; // Read Status Data (data read from the PHY) output LinkFail; // Link Integrity Signal reg [7:0] ShiftReg; // Shift register for shifting the data in and out reg [15:0]Prsd; reg LinkFail; // ShiftReg[7:0] :: Shift Register Data always @ (posedge Clk or posedge Reset) begin if(Reset) begin ShiftReg[7:0] <= 8'h0; Prsd[15:0] <= 16'h0; LinkFail <= 1'b0; end else begin if(MdcEn_n) begin if(|ByteSelect) begin case (ByteSelect[3:0]) 4'h1 : ShiftReg[7:0] <= {2'b01, ~WriteOp, WriteOp, Fiad[4:1]}; 4'h2 : ShiftReg[7:0] <= {Fiad[0], Rgad[4:0], 2'b10}; 4'h4 : ShiftReg[7:0] <= CtrlData[15:8]; 4'h8 : ShiftReg[7:0] <= CtrlData[7:0]; default : ShiftReg[7:0] <= 8'h0; endcase end else begin ShiftReg[7:0] <= {ShiftReg[6:0], Mdi}; if(LatchByte[0]) begin Prsd[7:0] <= {ShiftReg[6:0], Mdi}; if(Rgad == 5'h01) LinkFail <= ~ShiftReg[1]; // this is bit [2], because it is not shifted yet end else begin if(LatchByte[1]) Prsd[15:8] <= {ShiftReg[6:0], Mdi}; end end end end end assign ShiftedBit = ShiftReg[7]; endmodule uhd-3.5.5/fpga/usrp2/simple_gemac/rxmac_to_ll8.v000066400000000000000000000044341224274632000215120ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module rxmac_to_ll8 (input clk, input reset, input clear, input [7:0] rx_data, input rx_valid, input rx_error, input rx_ack, output [7:0] ll_data, output ll_sof, output ll_eof, output ll_error, output ll_src_rdy, input ll_dst_rdy ); reg [2:0] xfer_state; localparam XFER_IDLE = 0; localparam XFER_ACTIVE = 1; localparam XFER_ERROR = 2; localparam XFER_ERROR2 = 3; localparam XFER_OVERRUN = 4; localparam XFER_OVERRUN2 = 5; assign ll_data = rx_data; assign ll_src_rdy = ((rx_valid & (xfer_state != XFER_OVERRUN2) ) | (xfer_state == XFER_ERROR) | (xfer_state == XFER_OVERRUN)); assign ll_sof = ((xfer_state==XFER_IDLE)|(xfer_state==XFER_ERROR)|(xfer_state==XFER_OVERRUN)); assign ll_eof = (rx_ack | (xfer_state==XFER_ERROR) | (xfer_state==XFER_OVERRUN)); assign ll_error = (xfer_state == XFER_ERROR)|(xfer_state==XFER_OVERRUN); always @(posedge clk) if(reset | clear) xfer_state <= XFER_IDLE; else case(xfer_state) XFER_IDLE : if(rx_valid) xfer_state <= XFER_ACTIVE; XFER_ACTIVE : if(rx_error) xfer_state <= XFER_ERROR; else if(~rx_valid) xfer_state <= XFER_IDLE; else if(~ll_dst_rdy) xfer_state <= XFER_OVERRUN; XFER_ERROR : if(ll_dst_rdy) xfer_state <= XFER_ERROR2; XFER_ERROR2 : if(~rx_error) xfer_state <= XFER_IDLE; XFER_OVERRUN : if(ll_dst_rdy) xfer_state <= XFER_OVERRUN2; XFER_OVERRUN2 : if(~rx_valid) xfer_state <= XFER_IDLE; endcase // case (xfer_state) endmodule // rxmac_to_ll8 uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac.v000066400000000000000000000061401224274632000215400ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac (input clk125, input reset, // GMII output GMII_GTX_CLK, output GMII_TX_EN, output GMII_TX_ER, output [7:0] GMII_TXD, input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, input [7:0] GMII_RXD, // Flow Control Interface input pause_req, input [15:0] pause_time_req, input pause_respect_en, // Settings input [47:0] ucast_addr, input [47:0] mcast_addr, input pass_ucast, input pass_mcast, input pass_bcast, input pass_pause, input pass_all, // RX Client Interface output rx_clk, output [7:0] rx_data, output rx_valid, output rx_error, output rx_ack, // TX Client Interface output tx_clk, input [7:0] tx_data, input tx_valid, input tx_error, output tx_ack, output [31:0] debug ); localparam SGE_IFG = 8'd12; // 12 should be the absolute minimum wire rst_rxclk, rst_txclk; reset_sync reset_sync_tx (.clk(tx_clk),.reset_in(reset),.reset_out(rst_txclk)); reset_sync reset_sync_rx (.clk(rx_clk),.reset_in(reset),.reset_out(rst_rxclk)); wire [15:0] pause_quanta_rcvd; wire pause_rcvd, pause_apply, paused; simple_gemac_tx simple_gemac_tx (.clk125(clk125),.reset(rst_txclk), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .tx_clk(tx_clk), .tx_data(tx_data), .tx_valid(tx_valid), .tx_error(tx_error), .tx_ack(tx_ack), .ifg(SGE_IFG), .mac_addr(ucast_addr), .pause_req(pause_req), .pause_time(pause_time_req), // We request flow control .pause_apply(pause_apply), .paused(paused) // We respect flow control ); simple_gemac_rx simple_gemac_rx (.reset(rst_rxclk), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .rx_clk(rx_clk), .rx_data(rx_data), .rx_valid(rx_valid), .rx_error(rx_error), .rx_ack(rx_ack), .ucast_addr(ucast_addr), .mcast_addr(mcast_addr), .pass_ucast(pass_ucast), .pass_mcast(pass_mcast), .pass_bcast(pass_bcast), .pass_pause(pass_pause), .pass_all(pass_all), .pause_quanta_rcvd(pause_quanta_rcvd), .pause_rcvd(pause_rcvd), .debug(debug) ); flow_ctrl_tx flow_ctrl_tx (.rst(rst_txclk), .tx_clk(tx_clk), .tx_pause_en(pause_respect_en), .pause_quanta(pause_quanta_rcvd), // 16 bit value .pause_quanta_val(pause_rcvd), .pause_apply(pause_apply), .paused(paused) ); endmodule // simple_gemac uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_rx.v000066400000000000000000000141521224274632000222530ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac_rx (input reset, input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, input [7:0] GMII_RXD, output rx_clk, output [7:0] rx_data, output reg rx_valid, output rx_error, output reg rx_ack, input [47:0] ucast_addr, input [47:0] mcast_addr, input pass_ucast, input pass_mcast, input pass_bcast, input pass_pause, input pass_all, output reg [15:0] pause_quanta_rcvd, output pause_rcvd, output [31:0] debug ); localparam RX_IDLE = 0; localparam RX_PREAMBLE = 1; localparam RX_FRAME = 2; localparam RX_GOODFRAME = 3; localparam RX_DO_PAUSE = 4; localparam RX_ERROR = 5; localparam RX_DROP = 6; localparam RX_PAUSE = 16; localparam RX_PAUSE_CHK88 = RX_PAUSE + 5; localparam RX_PAUSE_CHK08 = RX_PAUSE_CHK88 + 1; localparam RX_PAUSE_CHK00 = RX_PAUSE_CHK08 + 1; localparam RX_PAUSE_CHK01 = RX_PAUSE_CHK00 + 1; localparam RX_PAUSE_STORE_MSB = RX_PAUSE_CHK01 + 1; localparam RX_PAUSE_STORE_LSB = RX_PAUSE_STORE_MSB + 1; localparam RX_PAUSE_WAIT_CRC = RX_PAUSE_STORE_LSB + 1; reg [7:0] rxd_d1; reg rx_dv_d1, rx_er_d1; assign rx_clk = GMII_RX_CLK; always @(posedge rx_clk) begin rx_dv_d1 <= GMII_RX_DV; rx_er_d1 <= GMII_RX_ER; rxd_d1 <= GMII_RXD; end reg [7:0] rx_state; wire [7:0] rxd_del; wire rx_dv_del, rx_er_del; reg go_filt; wire match_crc; wire clear_crc = rx_state == RX_IDLE; wire calc_crc = (rx_state == RX_FRAME) | rx_state[7:4]==4'h1; localparam DELAY = 6; delay_line #(.WIDTH(10)) rx_delay (.clk(rx_clk), .delay(DELAY), .din({rx_dv_d1,rx_er_d1,rxd_d1}),.dout({rx_dv_del,rx_er_del,rxd_del})); always @(posedge rx_clk) if(reset) rx_ack <= 0; else rx_ack <= (rx_state == RX_GOODFRAME); wire is_ucast, is_bcast, is_mcast, is_pause, is_any_ucast; wire keep_packet = (pass_all & is_any_ucast) | (pass_ucast & is_ucast) | (pass_mcast & is_mcast) | (pass_bcast & is_bcast) | (pass_pause & is_pause); assign rx_data = rxd_del; assign rx_error = (rx_state == RX_ERROR); always @(posedge rx_clk) if(reset) rx_valid <= 0; else if(keep_packet) rx_valid <= 1; else if((rx_state == RX_IDLE)|(rx_state == RX_ERROR)) rx_valid <= 0; address_filter af_ucast (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1), .address(ucast_addr), .match(is_ucast), .done()); address_filter af_mcast (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1), .address(mcast_addr), .match(is_mcast), .done()); address_filter af_bcast (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1), .address(48'hFFFF_FFFF_FFFF), .match(is_bcast), .done()); address_filter af_pause (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1), .address(48'h0180_c200_0001), .match(is_pause), .done()); address_filter_promisc af_promisc (.clk(rx_clk), .reset(reset), .go(go_filt), .data(rxd_d1), .match(is_any_ucast), .done()); always @(posedge rx_clk) go_filt <= (rx_state==RX_PREAMBLE) & (rxd_d1 == 8'hD5); reg [15:0] pkt_len_ctr; always @(posedge rx_clk) if(reset |(rx_state == RX_IDLE)) pkt_len_ctr <= 0; else pkt_len_ctr <= pkt_len_ctr + 1; localparam MIN_PAUSE_LEN = 71; // 6 wire pkt_long_enough = (pkt_len_ctr >= MIN_PAUSE_LEN); always @(posedge rx_clk) if(reset) rx_state <= RX_IDLE; else if(rx_er_d1) // | (~pkt_long_enough & ~rx_dv_d1) & (rx_state != RX_IDLE)) rx_state <= RX_ERROR; else case(rx_state) RX_IDLE : if(rx_dv_d1) if(rxd_d1 == 8'h55) rx_state <= RX_PREAMBLE; else rx_state <= RX_ERROR; RX_PREAMBLE : if(~rx_dv_d1) rx_state <= RX_ERROR; else if(rxd_d1 == 8'hD5) rx_state <= RX_FRAME; else if(rxd_d1 != 8'h55) rx_state <= RX_ERROR; RX_FRAME : if(is_pause) rx_state <= RX_PAUSE; else if(~rx_dv_d1) if(match_crc) rx_state <= RX_GOODFRAME; else rx_state <= RX_ERROR; RX_PAUSE_CHK88 : if(rxd_d1 != 8'h88) rx_state <= RX_DROP; else rx_state <= RX_PAUSE_CHK08; RX_PAUSE_CHK08 : if(rxd_d1 != 8'h08) rx_state <= RX_DROP; else rx_state <= RX_PAUSE_CHK00; RX_PAUSE_CHK00 : if(rxd_d1 != 8'h00) rx_state <= RX_DROP; else rx_state <= RX_PAUSE_CHK01; RX_PAUSE_CHK01 : if(rxd_d1 != 8'h01) rx_state <= RX_DROP; else rx_state <= RX_PAUSE_STORE_MSB; RX_PAUSE_WAIT_CRC : if(pkt_long_enough) if(match_crc) rx_state <= RX_DO_PAUSE; else rx_state <= RX_DROP; RX_DO_PAUSE : rx_state <= RX_IDLE; RX_GOODFRAME : rx_state <= RX_IDLE; RX_DROP, RX_ERROR : if(~rx_dv_d1) rx_state <= RX_IDLE; default rx_state <= rx_state + 1; endcase // case (rx_state) assign pause_rcvd = (rx_state == RX_DO_PAUSE); crc crc_check(.clk(rx_clk),.reset(reset),.clear(clear_crc), .data(rxd_d1),.calc(calc_crc),.crc_out(),.match(match_crc)); always @(posedge rx_clk) if(reset) pause_quanta_rcvd <= 0; else if(rx_state == RX_PAUSE_STORE_MSB) pause_quanta_rcvd[15:8] <= rxd_d1; else if(rx_state == RX_PAUSE_STORE_LSB) pause_quanta_rcvd[7:0] <= rxd_d1; assign rx_clk = GMII_RX_CLK; assign debug = rx_state; endmodule // simple_gemac_rx uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_tb.v000066400000000000000000000147431224274632000222350ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac_tb; `include "eth_tasks.v" reg clk = 0; reg reset = 1; initial #1000 reset = 0; always #50 clk = ~clk; wire GMII_RX_DV, GMII_RX_ER, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK; wire [7:0] GMII_RXD, GMII_TXD; wire rx_valid, rx_error, rx_ack; wire tx_ack, tx_valid, tx_error; wire [7:0] rx_data, tx_data; reg [15:0] pause_time; reg pause_req = 0; wire GMII_RX_CLK = GMII_GTX_CLK; reg [7:0] FORCE_DAT_ERR = 0; reg FORCE_ERR = 0; // Loopback assign GMII_RX_DV = GMII_TX_EN; assign GMII_RX_ER = GMII_TX_ER | FORCE_ERR; assign GMII_RXD = GMII_TXD ^ FORCE_DAT_ERR; wire [47:0] ucast_addr = 48'hF1F2_F3F4_F5F6; wire [47:0] mcast_addr = 0; wire pass_ucast =1, pass_mcast=0, pass_bcast=1, pass_pause=0, pass_all=0; simple_gemac simple_gemac (.clk125(clk), .reset(reset), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .pause_req(pause_req), .pause_time(pause_time), .pause_en(1), .ucast_addr(ucast_addr), .mcast_addr(mcast_addr), .pass_ucast(pass_ucast), .pass_mcast(pass_mcast), .pass_bcast(pass_bcast), .pass_pause(pass_pause), .pass_all(pass_all), .rx_clk(rx_clk), .rx_data(rx_data), .rx_valid(rx_valid), .rx_error(rx_error), .rx_ack(rx_ack), .tx_clk(tx_clk), .tx_data(tx_data), .tx_valid(tx_valid), .tx_error(tx_error), .tx_ack(tx_ack) ); wire rx_ll_sof, rx_ll_eof, rx_ll_src_rdy, rx_ll_dst_rdy; wire rx_ll_sof2, rx_ll_eof2, rx_ll_src_rdy2; reg rx_ll_dst_rdy2 = 1; wire [7:0] rx_ll_data, rx_ll_data2; wire rx_ll_error, rx_ll_error2; rxmac_to_ll8 rx_adapt (.clk(clk), .reset(reset), .clear(0), .rx_data(rx_data), .rx_valid(rx_valid), .rx_error(rx_error), .rx_ack(rx_ack), .ll_data(rx_ll_data), .ll_sof(rx_ll_sof), .ll_eof(rx_ll_eof), .ll_error(rx_ll_error), .ll_src_rdy(rx_ll_src_rdy), .ll_dst_rdy(rx_ll_dst_rdy)); ll8_shortfifo rx_sfifo (.clk(clk), .reset(reset), .clear(0), .datain(rx_ll_data), .sof_i(rx_ll_sof), .eof_i(rx_ll_eof), .error_i(rx_ll_error), .src_rdy_i(rx_ll_src_rdy), .dst_rdy_o(rx_ll_dst_rdy), .dataout(rx_ll_data2), .sof_o(rx_ll_sof2), .eof_o(rx_ll_eof2), .error_o(rx_ll_error2), .src_rdy_o(rx_ll_src_rdy2), .dst_rdy_i(rx_ll_dst_rdy2)); wire tx_ll_sof, tx_ll_eof, tx_ll_src_rdy, tx_ll_dst_rdy; reg tx_ll_sof2=0, tx_ll_eof2=0; reg tx_ll_src_rdy2 = 0; wire tx_ll_dst_rdy2; wire [7:0] tx_ll_data; reg [7:0] tx_ll_data2 = 0; wire tx_ll_error; wire tx_ll_error2 = 0; ll8_shortfifo tx_sfifo (.clk(clk), .reset(reset), .clear(clear), .datain(tx_ll_data2), .sof_i(tx_ll_sof2), .eof_i(tx_ll_eof2), .error_i(tx_ll_error2), .src_rdy_i(tx_ll_src_rdy2), .dst_rdy_o(tx_ll_dst_rdy2), .dataout(tx_ll_data), .sof_o(tx_ll_sof), .eof_o(tx_ll_eof), .error_o(tx_ll_error), .src_rdy_o(tx_ll_src_rdy), .dst_rdy_i(tx_ll_dst_rdy)); ll8_to_txmac ll8_to_txmac (.clk(clk), .reset(reset), .clear(clear), .ll_data(tx_ll_data), .ll_sof(tx_ll_sof), .ll_eof(tx_ll_eof), .ll_src_rdy(tx_ll_src_rdy), .ll_dst_rdy(tx_ll_dst_rdy), .tx_data(tx_data), .tx_valid(tx_valid), .tx_error(tx_error), .tx_ack(tx_ack)); initial $dumpfile("simple_gemac_tb.vcd"); initial $dumpvars(0,simple_gemac_tb); integer i; reg [7:0] pkt_rom[0:65535]; reg [1023:0] ROMFile; initial for (i=0;i<65536;i=i+1) pkt_rom[i] <= 8'h0; initial begin @(negedge reset); repeat (10) @(posedge clk); SendFlowCtrl(16'h0007); // Send flow control @(posedge clk); #30000; @(posedge clk); SendFlowCtrl(16'h0009); // Increas flow control before it expires #10000; @(posedge clk); SendFlowCtrl(16'h0000); // Cancel flow control before it expires @(posedge clk); SendPacket_to_ll8(8'hAA,10); // This packet gets dropped by the filters repeat (10) @(posedge clk); SendPacketFromFile_ll8(60,0,0); // The rest are valid packets repeat (10) @(posedge clk); SendPacketFromFile_ll8(61,0,0); repeat (10) @(posedge clk); SendPacketFromFile_ll8(62,0,0); repeat (10) @(posedge clk); SendPacketFromFile_ll8(63,0,0); repeat (1) @(posedge clk); SendPacketFromFile_ll8(64,0,0); repeat (10) @(posedge clk); SendPacketFromFile_ll8(59,0,0); repeat (1) @(posedge clk); SendPacketFromFile_ll8(58,0,0); repeat (1) @(posedge clk); SendPacketFromFile_ll8(100,0,0); repeat (1) @(posedge clk); SendPacketFromFile_ll8(200,150,30); // waiting 14 empties the fifo, 15 underruns repeat (1) @(posedge clk); SendPacketFromFile_ll8(100,0,30); #10000 $finish; end // Force a CRC error initial begin #90000; @(posedge clk); FORCE_DAT_ERR <= 8'h10; @(posedge clk); FORCE_DAT_ERR <= 8'h00; end // Force an RX_ER error (i.e. link loss) initial begin #116000; @(posedge clk); FORCE_ERR <= 1; @(posedge clk); FORCE_ERR <= 0; end // Cause receive fifo to fill, causing an RX overrun initial begin #126000; @(posedge clk); rx_ll_dst_rdy2 <= 0; repeat (30) // Repeat of 14 fills the shortfifo, but works. 15 overflows @(posedge clk); rx_ll_dst_rdy2 <= 1; end // Tests: Send and recv flow control, send and receive good packets, RX CRC err, RX_ER, RX overrun, TX underrun // Still need to test: CRC errors on Pause Frames always @(posedge clk) if(rx_ll_src_rdy2 & rx_ll_dst_rdy2) begin if(rx_ll_sof2 & ~rx_ll_eof2) $display("RX-PKT-START %d",$time); $display("RX-PKT SOF %d EOF %d ERR%d DAT %x",rx_ll_sof2,rx_ll_eof2,rx_ll_error2,rx_ll_data2); if(rx_ll_eof2 & ~rx_ll_sof2) $display("RX-PKT-END %d",$time); end endmodule // simple_gemac_tb uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_tx.v000066400000000000000000000163431224274632000222610ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac_tx (input clk125, input reset, output GMII_GTX_CLK, output reg GMII_TX_EN, output reg GMII_TX_ER, output reg [7:0] GMII_TXD, output tx_clk, input [7:0] tx_data, input tx_valid, input tx_error, output tx_ack, input [7:0] ifg, input [47:0] mac_addr, input pause_req, input [15:0] pause_time, input pause_apply, output reg paused ); reg tx_en_pre, tx_er_pre; reg [7:0] txd_pre; assign GMII_GTX_CLK = clk125; assign tx_clk = clk125; reg [7:0] tx_state; reg [7:0] ifg_ctr; reg [15:0] frame_len_ctr; reg [7:0] pause_ctr, pause_dat; wire in_ifg = (ifg_ctr != 0); wire [31:0] crc_out; localparam TX_IDLE = 0; localparam TX_PREAMBLE = 1; localparam TX_SOF_DEL = TX_PREAMBLE + 7; localparam TX_FIRSTBYTE = TX_SOF_DEL + 1; localparam TX_IN_FRAME = TX_FIRSTBYTE + 1; localparam TX_IN_FRAME_2 = TX_IN_FRAME + 1; localparam TX_PAD = TX_IN_FRAME_2 + 1; localparam TX_CRC_0 = 16; localparam TX_CRC_1 = TX_CRC_0 + 1; localparam TX_CRC_2 = TX_CRC_0 + 2; localparam TX_CRC_3 = TX_CRC_0 + 3; localparam TX_ERROR = 32; localparam TX_PAUSE = 55; localparam TX_PAUSE_SOF = TX_PAUSE + 7; localparam TX_PAUSE_FIRST = TX_PAUSE_SOF + 1; localparam TX_PAUSE_END = TX_PAUSE_SOF + 18; localparam MIN_FRAME_LEN = 64 + 8 - 4; // Min frame length includes preamble but not CRC localparam MAX_FRAME_LEN = 8192; // How big are the jumbo frames we want to handle? always @(posedge tx_clk) if(reset |(tx_state == TX_IDLE)) frame_len_ctr <= 0; else frame_len_ctr <= frame_len_ctr + 1; reg send_pause; reg [15:0] pause_time_held; always @(posedge tx_clk) if(reset) send_pause <= 0; else if(pause_req) send_pause <= 1; else if(tx_state == TX_PAUSE) send_pause <= 0; always @(posedge tx_clk) if(pause_req) pause_time_held <= pause_time; always @(posedge tx_clk) if(reset) tx_state <= TX_IDLE; else case(tx_state) TX_IDLE : if(~in_ifg) if(send_pause) tx_state <= TX_PAUSE; else if(tx_valid & ~pause_apply) tx_state <= TX_PREAMBLE; TX_FIRSTBYTE : if(tx_error) tx_state <= TX_ERROR; // underrun else if(~tx_valid) tx_state <= TX_PAD; else tx_state <= TX_IN_FRAME; TX_IN_FRAME : if(tx_error) tx_state <= TX_ERROR; // underrun else if(~tx_valid) tx_state <= TX_PAD; else if(frame_len_ctr == MIN_FRAME_LEN - 1) tx_state <= TX_IN_FRAME_2; TX_IN_FRAME_2 : if(tx_error) tx_state <= TX_ERROR; // underrun else if(~tx_valid) tx_state <= TX_CRC_0; TX_PAD : if(frame_len_ctr == MIN_FRAME_LEN) tx_state <= TX_CRC_0; TX_CRC_3 : tx_state <= TX_IDLE; TX_ERROR : tx_state <= TX_IDLE; TX_PAUSE_END : tx_state <= TX_PAD; default : tx_state <= tx_state + 1; endcase // case (tx_state) always @(posedge tx_clk) if(reset) begin tx_en_pre <= 0; tx_er_pre <= 0; txd_pre <= 0; end else casex(tx_state) TX_IDLE : begin tx_en_pre <= 0; tx_er_pre <= 0; txd_pre <= 0; end TX_PREAMBLE, TX_PAUSE : begin txd_pre <= 8'h55; tx_en_pre <= 1; end TX_SOF_DEL, TX_PAUSE_SOF : txd_pre <= 8'hD5; TX_FIRSTBYTE, TX_IN_FRAME, TX_IN_FRAME_2 : txd_pre <= tx_valid ? tx_data : 0; TX_ERROR : begin tx_er_pre <= 1; txd_pre <= 0; end TX_CRC_3 : tx_en_pre <= 0; TX_PAD : txd_pre <= 0; TX_PAUSE_FIRST, 8'b01xx_xxxx : // In Pause Frame txd_pre <= pause_dat; endcase // case (tx_state) localparam SGE_FLOW_CTRL_ADDR = 48'h01_80_C2_00_00_01; always @(posedge tx_clk) case(tx_state) TX_PAUSE_SOF : pause_dat <= SGE_FLOW_CTRL_ADDR[47:40]; // Note everything must be 1 cycle early TX_PAUSE_SOF + 1: pause_dat <= SGE_FLOW_CTRL_ADDR[39:32]; TX_PAUSE_SOF + 2: pause_dat <= SGE_FLOW_CTRL_ADDR[31:24]; TX_PAUSE_SOF + 3: pause_dat <= SGE_FLOW_CTRL_ADDR[23:16]; TX_PAUSE_SOF + 4: pause_dat <= SGE_FLOW_CTRL_ADDR[15:8]; TX_PAUSE_SOF + 5: pause_dat <= SGE_FLOW_CTRL_ADDR[7:0]; TX_PAUSE_SOF + 6: pause_dat <= mac_addr[47:40]; TX_PAUSE_SOF + 7: pause_dat <= mac_addr[39:32]; TX_PAUSE_SOF + 8: pause_dat <= mac_addr[31:24]; TX_PAUSE_SOF + 9: pause_dat <= mac_addr[23:16]; TX_PAUSE_SOF + 10: pause_dat <= mac_addr[15:8]; TX_PAUSE_SOF + 11: pause_dat <= mac_addr[7:0]; TX_PAUSE_SOF + 12: pause_dat <= 8'h88; // Type = 8808 = MAC ctrl frame TX_PAUSE_SOF + 13: pause_dat <= 8'h08; TX_PAUSE_SOF + 14: pause_dat <= 8'h00; // Opcode = 0001 = PAUSE TX_PAUSE_SOF + 15: pause_dat <= 8'h01; TX_PAUSE_SOF + 16: pause_dat <= pause_time_held[15:8]; TX_PAUSE_SOF + 17: pause_dat <= pause_time_held[7:0]; endcase // case (tx_state) wire start_ifg = (tx_state == TX_CRC_3); always @(posedge tx_clk) if(reset) ifg_ctr <= 100; else if(start_ifg) ifg_ctr <= ifg; else if(ifg_ctr != 0) ifg_ctr <= ifg_ctr - 1; wire clear_crc = (tx_state == TX_IDLE); wire calc_crc = (tx_state==TX_IN_FRAME) | (tx_state==TX_IN_FRAME_2) | (tx_state==TX_PAD) | (tx_state[6]); crc crc(.clk(tx_clk), .reset(reset), .clear(clear_crc), .data(txd_pre), .calc(calc_crc), .crc_out(crc_out)); assign tx_ack = (tx_state == TX_FIRSTBYTE); always @(posedge tx_clk) begin GMII_TX_EN <= tx_en_pre; GMII_TX_ER <= tx_er_pre; case(tx_state) TX_CRC_0 : GMII_TXD <= crc_out[31:24]; TX_CRC_1 : GMII_TXD <= crc_out[23:16]; TX_CRC_2 : GMII_TXD <= crc_out[15:8]; TX_CRC_3 : GMII_TXD <= crc_out[7:0]; default : GMII_TXD <= txd_pre; endcase // case (tx_state) end // report that we are paused only when we get back to IDLE always @(posedge tx_clk) if(reset) paused <= 0; else if(~pause_apply) paused <= 0; else if(tx_state == TX_IDLE) paused <= 1; endmodule // simple_gemac_tx // Testing code /* reg [7:0] crc_ctr; reg calc_crc_d1; always @(posedge tx_clk) calc_crc_d1 <= calc_crc; always @(posedge tx_clk) if(reset) crc_ctr <= 0; else if(calc_crc) crc_ctr <= crc_ctr+1; else if(calc_crc_d1) $display("CRC COUNT = %d",crc_ctr); else crc_ctr <= 0; */ uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_wb.v000066400000000000000000000154751224274632000222430ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module wb_reg #(parameter ADDR=0, parameter DEFAULT=0, parameter WIDTH=32) (input clk, input rst, input [5:0] adr, input wr_acc, input [31:0] dat_i, output reg [WIDTH-1:0] dat_o); always @(posedge clk) if(rst) dat_o <= DEFAULT; else if(wr_acc & (adr == ADDR)) dat_o <= dat_i[WIDTH-1:0]; endmodule // wb_reg module simple_gemac_wb (input wb_clk, input wb_rst, input wb_cyc, input wb_stb, output reg wb_ack, input wb_we, input [7:0] wb_adr, input [31:0] wb_dat_i, output reg [31:0] wb_dat_o, inout mdio, output mdc, output [47:0] ucast_addr, output [47:0] mcast_addr, output pass_ucast, output pass_mcast, output pass_bcast, output pass_pause, output pass_all, output pause_respect_en, output pause_request_en, output [15:0] pause_time, output [15:0] pause_thresh ); wire acc = wb_cyc & wb_stb; wire wr_acc = wb_cyc & wb_stb & wb_we; wire rd_acc = wb_cyc & wb_stb & ~wb_we; always @(posedge wb_clk) if(wb_rst) wb_ack <= 0; else wb_ack <= acc & ~wb_ack; wire [6:0] misc_settings; assign {pause_request_en, pass_ucast, pass_mcast, pass_bcast, pass_pause, pass_all, pause_respect_en} = misc_settings; wb_reg #(.ADDR(0),.DEFAULT(7'b0111011),.WIDTH(7)) wb_reg_settings (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(misc_settings) ); wb_reg #(.ADDR(1),.DEFAULT(0),.WIDTH(16)) wb_reg_ucast_h (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(ucast_addr[47:32]) ); wb_reg #(.ADDR(2),.DEFAULT(0),.WIDTH(32)) wb_reg_ucast_l (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(ucast_addr[31:0]) ); wb_reg #(.ADDR(3),.DEFAULT(0),.WIDTH(16)) wb_reg_mcast_h (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(mcast_addr[47:32]) ); wb_reg #(.ADDR(4),.DEFAULT(0),.WIDTH(32)) wb_reg_mcast_l (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(mcast_addr[31:0]) ); //MII to CPU wire [7:0] Divider; // Divider for the host clock wire [15:0] CtrlData; // Control Data (to be written to the PHY reg.) wire [4:0] Rgad; // Register Address (within the PHY) wire [4:0] Fiad; // PHY Address wire NoPre; // No Preamble (no 32-bit preamble) wire WCtrlData; // Write Control Data operation wire RStat; // Read Status operation wire ScanStat; // Scan Status operation wire Busy; // Busy Signal wire LinkFail; // Link Integrity Signal wire Nvalid; // Invalid Status (qualifier for the valid scan result) wire [15:0] Prsd; // Read Status Data (data read from the PHY) wire WCtrlDataStart; // This signals resets the WCTRLDATA bit in the MIIM Command register wire RStatStart; // This signal resets the RSTAT BIT in the MIIM Command register wire UpdateMIIRX_DATAReg; // Updates MII RX_DATA register with read data // registers for controlling the MII interface reg [2:0] MIICOMMAND; wire [12:0] MIIADDRESS; reg [15:0] MIIRX_DATA; wire [2:0] MIISTATUS; wb_reg #(.ADDR(5),.DEFAULT(0),.WIDTH(9)) wb_reg_miimoder (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o({NoPre,Divider}) ); wb_reg #(.ADDR(6),.DEFAULT(0),.WIDTH(13)) wb_reg_miiaddr (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(MIIADDRESS) ); wb_reg #(.ADDR(7),.DEFAULT(0),.WIDTH(16)) wb_reg_miidata (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(CtrlData) ); // MIICOMMAND register - needs special treatment because of auto-resetting bits always @ (posedge wb_clk) if (wb_rst) MIICOMMAND <= 0; else if (wr_acc & (wb_adr[7:2] == 6'd8)) MIICOMMAND <= wb_dat_i; else begin if ( WCtrlDataStart ) MIICOMMAND[2] <= 0; if ( RStatStart ) MIICOMMAND[1] <= 0; end // MIIRX_DATA register always @(posedge wb_clk) if (wb_rst) MIIRX_DATA <= 0; else if (UpdateMIIRX_DATAReg ) MIIRX_DATA <= Prsd; // MIICOMMAND assign WCtrlData = MIICOMMAND[2]; assign RStat = MIICOMMAND[1]; assign ScanStat = MIICOMMAND[0]; // MIIADDRESS assign Rgad = MIIADDRESS[12:8]; assign Fiad = MIIADDRESS[4:0]; // MIISTATUS assign MIISTATUS[2:0] = { Nvalid, Busy, LinkFail }; eth_miim eth_miim (.Clk(wb_clk), .Reset(wb_rst), .Divider(Divider), .NoPre(NoPre), .CtrlData(CtrlData), .Rgad(Rgad), .Fiad(Fiad), .WCtrlData(WCtrlData), .RStat(RStat), .ScanStat(ScanStat), .Mdio(mdio), .Mdc(mdc), .Busy(Busy), .Prsd(Prsd), .LinkFail(LinkFail), .Nvalid(Nvalid), .WCtrlDataStart(WCtrlDataStart), .RStatStart(RStatStart), .UpdateMIIRX_DATAReg(UpdateMIIRX_DATAReg) ); wb_reg #(.ADDR(11),.DEFAULT(0),.WIDTH(16)) wb_reg_pausetime (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(pause_time) ); wb_reg #(.ADDR(12),.DEFAULT(0),.WIDTH(16)) wb_reg_pausethresh (.clk(wb_clk), .rst(wb_rst), .adr(wb_adr[7:2]), .wr_acc(wr_acc), .dat_i(wb_dat_i), .dat_o(pause_thresh) ); always @(posedge wb_clk) case(wb_adr[7:2]) //0 : wb_dat_o <= misc_settings; //1 : wb_dat_o <= ucast_addr[47:32]; //2 : wb_dat_o <= ucast_addr[31:0]; //3 : wb_dat_o <= mcast_addr[47:32]; //4 : wb_dat_o <= mcast_addr[31:0]; //5 : wb_dat_o <= {NoPre,Divider}; //6 : wb_dat_o <= MIIADDRESS; //7 : wb_dat_o <= CtrlData; 8 : wb_dat_o <= MIICOMMAND; 9 : wb_dat_o <= MIISTATUS; 10: wb_dat_o <= MIIRX_DATA; //11: wb_dat_o <= pause_time; //12: wb_dat_o <= pause_thresh; endcase // case (wb_adr[7:2]) endmodule // simple_gemac_wb uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_wrapper.build000077500000000000000000000002341224274632000241330ustar00rootroot00000000000000iverilog -Wimplict -Wportbind -y ../fifo/ -y ../models/ -y . -y miim -y ../coregen/ -y ../control_lib/ -o simple_gemac_wrapper_tb simple_gemac_wrapper_tb.v uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_wrapper.v000066400000000000000000000174701224274632000233100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac_wrapper #(parameter RXFIFOSIZE=9, parameter TXFIFOSIZE=9, parameter RX_FLOW_CTRL=0) (input clk125, input reset, // GMII output GMII_GTX_CLK, output GMII_TX_EN, output GMII_TX_ER, output [7:0] GMII_TXD, input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, input [7:0] GMII_RXD, // Client FIFO Interfaces input sys_clk, output [35:0] rx_f36_data, output rx_f36_src_rdy, input rx_f36_dst_rdy, input [35:0] tx_f36_data, input tx_f36_src_rdy, output tx_f36_dst_rdy, // Wishbone Interface input wb_clk, input wb_rst, input wb_stb, input wb_cyc, output wb_ack, input wb_we, input [7:0] wb_adr, input [31:0] wb_dat_i, output [31:0] wb_dat_o, // MIIM inout mdio, output mdc, output [31:0] debug); wire clear = 0; wire [7:0] rx_data, tx_data; wire tx_clk, tx_valid, tx_error, tx_ack; wire rx_clk, rx_valid, rx_error, rx_ack; wire [47:0] ucast_addr, mcast_addr; wire pass_ucast, pass_mcast, pass_bcast, pass_pause, pass_all; wire pause_req; wire pause_request_en, pause_respect_en; wire [15:0] pause_time, pause_thresh, pause_time_req, rx_fifo_space; wire [31:0] debug_state; wire tx_reset, rx_reset; reset_sync reset_sync_tx (.clk(tx_clk),.reset_in(reset),.reset_out(tx_reset)); reset_sync reset_sync_rx (.clk(rx_clk),.reset_in(reset),.reset_out(rx_reset)); simple_gemac simple_gemac (.clk125(clk125), .reset(reset), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .pause_req(RX_FLOW_CTRL ? pause_req : 1'b0), .pause_time_req(RX_FLOW_CTRL ? pause_time_req : 16'd0), .pause_respect_en(pause_respect_en), .ucast_addr(ucast_addr), .mcast_addr(mcast_addr), .pass_ucast(pass_ucast), .pass_mcast(pass_mcast), .pass_bcast(pass_bcast), .pass_pause(pass_pause), .pass_all(pass_all), .rx_clk(rx_clk), .rx_data(rx_data), .rx_valid(rx_valid), .rx_error(rx_error), .rx_ack(rx_ack), .tx_clk(tx_clk), .tx_data(tx_data), .tx_valid(tx_valid), .tx_error(tx_error), .tx_ack(tx_ack), .debug(debug_state) ); simple_gemac_wb simple_gemac_wb (.wb_clk(wb_clk), .wb_rst(wb_rst), .wb_cyc(wb_cyc), .wb_stb(wb_stb), .wb_ack(wb_ack), .wb_we(wb_we), .wb_adr(wb_adr), .wb_dat_i(wb_dat_i), .wb_dat_o(wb_dat_o), .mdio(mdio), .mdc(mdc), .ucast_addr(ucast_addr), .mcast_addr(mcast_addr), .pass_ucast(pass_ucast), .pass_mcast(pass_mcast), .pass_bcast(pass_bcast), .pass_pause(pass_pause), .pass_all(pass_all), .pause_respect_en(pause_respect_en), .pause_request_en(pause_request_en), .pause_time(pause_time), .pause_thresh(pause_thresh) ); // RX FIFO Chain wire rx_ll_sof, rx_ll_eof, rx_ll_src_rdy, rx_ll_dst_rdy; wire [7:0] rx_ll_data; wire [18:0] rx_f19_data_int1, rx_f19_data_int2; wire rx_f19_src_rdy_int1, rx_f19_dst_rdy_int1, rx_f19_src_rdy_int2, rx_f19_dst_rdy_int2; wire [35:0] rx_f36_data_int; wire rx_f36_src_rdy_int, rx_f36_dst_rdy_int; rxmac_to_ll8 rx_adapt (.clk(rx_clk), .reset(rx_reset), .clear(0), .rx_data(rx_data), .rx_valid(rx_valid), .rx_error(rx_error), .rx_ack(rx_ack), .ll_data(rx_ll_data), .ll_sof(rx_ll_sof), .ll_eof(rx_ll_eof), .ll_error(), // error also encoded in sof/eof .ll_src_rdy(rx_ll_src_rdy), .ll_dst_rdy(rx_ll_dst_rdy)); ll8_to_fifo19 ll8_to_fifo19 (.clk(rx_clk), .reset(rx_reset), .clear(0), .ll_data(rx_ll_data), .ll_sof(rx_ll_sof), .ll_eof(rx_ll_eof), .ll_src_rdy(rx_ll_src_rdy), .ll_dst_rdy(rx_ll_dst_rdy), .f19_data(rx_f19_data_int1), .f19_src_rdy_o(rx_f19_src_rdy_int1), .f19_dst_rdy_i(rx_f19_dst_rdy_int1)); fifo19_rxrealign fifo19_rxrealign (.clk(rx_clk), .reset(rx_reset), .clear(0), .datain(rx_f19_data_int1), .src_rdy_i(rx_f19_src_rdy_int1), .dst_rdy_o(rx_f19_dst_rdy_int1), .dataout(rx_f19_data_int2), .src_rdy_o(rx_f19_src_rdy_int2), .dst_rdy_i(rx_f19_dst_rdy_int2) ); fifo19_to_fifo36 rx_fifo19_to_fifo36 (.clk(rx_clk), .reset(rx_reset), .clear(0), .f19_datain(rx_f19_data_int2), .f19_src_rdy_i(rx_f19_src_rdy_int2), .f19_dst_rdy_o(rx_f19_dst_rdy_int2), .f36_dataout(rx_f36_data_int), .f36_src_rdy_o(rx_f36_src_rdy_int), .f36_dst_rdy_i(rx_f36_dst_rdy_int) ); fifo_2clock_cascade #(.WIDTH(36), .SIZE(RXFIFOSIZE)) rx_2clk_fifo (.wclk(rx_clk), .datain(rx_f36_data_int), .src_rdy_i(rx_f36_src_rdy_int), .dst_rdy_o(rx_f36_dst_rdy_int), .space(rx_fifo_space), .rclk(sys_clk), .dataout(rx_f36_data), .src_rdy_o(rx_f36_src_rdy), .dst_rdy_i(rx_f36_dst_rdy), .occupied(), .arst(reset)); // TX FIFO Chain wire tx_ll_sof, tx_ll_eof, tx_ll_src_rdy, tx_ll_dst_rdy; wire [7:0] tx_ll_data; wire [35:0] tx_f36_data_int1, tx_f36_data_int2; wire tx_f36_src_rdy_int1, tx_f36_dst_rdy_int1, tx_f36_src_rdy_int2, tx_f36_dst_rdy_int2; fifo_2clock_cascade #(.WIDTH(36), .SIZE(TXFIFOSIZE)) tx_2clk_fifo (.wclk(sys_clk), .datain(tx_f36_data), .src_rdy_i(tx_f36_src_rdy), .dst_rdy_o(tx_f36_dst_rdy), .space(), .rclk(tx_clk), .dataout(tx_f36_data_int1), .src_rdy_o(tx_f36_src_rdy_int1), .dst_rdy_i(tx_f36_dst_rdy_int1), .occupied(), .arst(reset)); ethtx_realign ethtx_realign (.clk(tx_clk), .reset(tx_reset), .clear(clear), .datain(tx_f36_data_int1), .src_rdy_i(tx_f36_src_rdy_int1), .dst_rdy_o(tx_f36_dst_rdy_int1), .dataout(tx_f36_data_int2), .src_rdy_o(tx_f36_src_rdy_int2), .dst_rdy_i(tx_f36_dst_rdy_int2) ); fifo36_to_ll8 fifo36_to_ll8 (.clk(tx_clk), .reset(tx_reset), .clear(clear), .f36_data(tx_f36_data_int2), .f36_src_rdy_i(tx_f36_src_rdy_int2), .f36_dst_rdy_o(tx_f36_dst_rdy_int2), .ll_data(tx_ll_data), .ll_sof(tx_ll_sof), .ll_eof(tx_ll_eof), .ll_src_rdy(tx_ll_src_rdy), .ll_dst_rdy(tx_ll_dst_rdy)); ll8_to_txmac ll8_to_txmac (.clk(tx_clk), .reset(tx_reset), .clear(clear), .ll_data(tx_ll_data), .ll_sof(tx_ll_sof), .ll_eof(tx_ll_eof), .ll_src_rdy(tx_ll_src_rdy), .ll_dst_rdy(tx_ll_dst_rdy), .tx_data(tx_data), .tx_valid(tx_valid), .tx_error(tx_error), .tx_ack(tx_ack)); // Flow Control generate if(RX_FLOW_CTRL==1) flow_ctrl_rx flow_ctrl_rx (.pause_request_en(pause_request_en), .pause_time(pause_time), .pause_thresh(pause_thresh), .rx_clk(rx_clk), .rx_reset(rx_reset), .rx_fifo_space(rx_fifo_space), .tx_clk(tx_clk), .tx_reset(tx_reset), .pause_req(pause_req), .pause_time_req(pause_time_req)); endgenerate wire [31:0] debug_tx, debug_rx; assign debug_tx = { { tx_ll_data }, { tx_ll_sof, tx_ll_eof, tx_ll_src_rdy, tx_ll_dst_rdy, 4'b0 }, { tx_valid, tx_error, tx_ack, tx_f36_src_rdy_int1, tx_f36_dst_rdy_int1, tx_f36_data_int1[34:32]}, { tx_data} }; assign debug_rx = { { rx_ll_data }, { rx_ll_sof, rx_ll_eof, rx_ll_src_rdy, rx_ll_dst_rdy, 4'b0 }, { rx_valid, rx_error, rx_ack, rx_f36_src_rdy_int, rx_f36_dst_rdy_int, rx_f36_data_int[34:32]}, { rx_data} }; assign debug = debug_rx; endmodule // simple_gemac_wrapper uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_wrapper_f36_tb.v000066400000000000000000000172341224274632000244510ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac_wrapper_f36_tb; `include "eth_tasks_f36.v" reg clk = 0; reg reset = 1; initial #1000 reset = 0; always #50 clk = ~clk; reg wb_clk = 0; wire wb_rst = reset; always #173 wb_clk = ~wb_clk; wire GMII_RX_DV, GMII_RX_ER, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK; wire [7:0] GMII_RXD, GMII_TXD; wire rx_valid, rx_error, rx_ack; wire tx_ack, tx_valid, tx_error; wire [7:0] rx_data, tx_data; reg [15:0] pause_time; reg pause_req = 0; wire GMII_RX_CLK = GMII_GTX_CLK; reg [7:0] FORCE_DAT_ERR = 0; reg FORCE_ERR = 0; // Loopback assign GMII_RX_DV = GMII_TX_EN; assign GMII_RX_ER = GMII_TX_ER | FORCE_ERR; assign GMII_RXD = GMII_TXD ^ FORCE_DAT_ERR; wire rx_ll_sof, rx_ll_eof, rx_ll_src_rdy, rx_ll_dst_rdy; wire rx_ll_sof2, rx_ll_eof2, rx_ll_src_rdy2; wire rx_ll_dst_rdy2; wire [7:0] rx_ll_data, rx_ll_data2; wire rx_ll_error, rx_ll_error2; wire [31:0] wb_dat_o; reg [31:0] wb_dat_i; reg [7:0] wb_adr; reg wb_stb=0, wb_cyc=0, wb_we=0; wire wb_ack; reg [35:0] tx_f36_dat; reg tx_f36_src_rdy; wire tx_f36_dst_rdy; wire [35:0] rx_f36_dat; wire rx_f36_src_rdy; reg rx_f36_dst_rdy = 1; simple_gemac_wrapper simple_gemac_wrapper (.clk125(clk), .reset(reset), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .pause_req(pause_req), .pause_time(pause_time), .rx_clk(rx_clk), .rx_ll_data(rx_ll_data), .rx_ll_sof(rx_ll_sof), .rx_ll_eof(rx_ll_eof), .rx_ll_src_rdy(rx_ll_src_rdy), .rx_ll_dst_rdy(rx_ll_dst_rdy), .tx_clk(tx_clk), .tx_ll_data(tx_ll_data), .tx_ll_sof(tx_ll_sof), .tx_ll_eof(tx_ll_eof), .tx_ll_src_rdy(tx_ll_src_rdy), .tx_ll_dst_rdy(tx_ll_dst_rdy), .wb_clk(wb_clk), .wb_rst(wb_rst), .wb_stb(wb_stb), .wb_cyc(wb_cyc), .wb_ack(wb_ack), .wb_we(wb_we), .wb_adr(wb_adr), .wb_dat_i(wb_dat_i), .wb_dat_o(wb_dat_o), .mdio(mdio), .mdc(mdc) ); wire rx_ll_dst_rdy2_n; assign rx_ll_dst_rdy2 = ~rx_ll_dst_rdy2_n; ll8_shortfifo rx_sfifo (.clk(clk), .reset(reset), .clear(0), .datain(rx_ll_data), .sof_i(rx_ll_sof), .eof_i(rx_ll_eof), .error_i(rx_ll_error), .src_rdy_i(rx_ll_src_rdy), .dst_rdy_o(rx_ll_dst_rdy), .dataout(rx_ll_data2), .sof_o(rx_ll_sof2), .eof_o(rx_ll_eof2), .error_o(rx_ll_error2), .src_rdy_o(rx_ll_src_rdy2), .dst_rdy_i(rx_ll_dst_rdy2)); ll8_to_fifo36 ll8_to_fifo36 (.clk(clk), .reset(reset), .clear(0), .ll_data(rx_ll_data2), .ll_sof_n(~rx_ll_sof2), .ll_eof_n(~rx_ll_eof2), .ll_src_rdy_n(~rx_ll_src_rdy2), .ll_dst_rdy_n(rx_ll_dst_rdy2_n), .f36_data(rx_f36_dat), .f36_src_rdy_o(rx_f36_src_rdy), .f36_dst_rdy_i(rx_f36_dst_rdy)); wire tx_ll_sof, tx_ll_eof, tx_ll_src_rdy, tx_ll_dst_rdy; wire tx_ll_sof2_n, tx_ll_eof2_n; wire tx_ll_src_rdy2_n, tx_ll_dst_rdy2; wire [7:0] tx_ll_data, tx_ll_data2; wire tx_ll_error; wire tx_ll_error2 = 0; fifo36_to_ll8 fifo36_to_ll8 (.clk(clk), .reset(reset), .clear(clear), .f36_data(tx_f36_dat), .f36_src_rdy_i(tx_f36_src_rdy), .f36_dst_rdy_o(tx_f36_dst_rdy), .ll_data(tx_ll_data2), .ll_sof_n(tx_ll_sof2_n), .ll_eof_n(tx_ll_eof2_n), .ll_src_rdy_n(tx_ll_src_rdy2_n), .ll_dst_rdy_n(~tx_ll_dst_rdy2)); ll8_shortfifo tx_sfifo (.clk(clk), .reset(reset), .clear(clear), .datain(tx_ll_data2), .sof_i(~tx_ll_sof2_n), .eof_i(~tx_ll_eof2_n), .error_i(tx_ll_error2), .src_rdy_i(~tx_ll_src_rdy2_n), .dst_rdy_o(tx_ll_dst_rdy2), .dataout(tx_ll_data), .sof_o(tx_ll_sof), .eof_o(tx_ll_eof), .error_o(tx_ll_error), .src_rdy_o(tx_ll_src_rdy), .dst_rdy_i(tx_ll_dst_rdy)); initial $dumpfile("simple_gemac_wrapper_f36_tb.vcd"); initial $dumpvars(0,simple_gemac_wrapper_f36_tb); integer i; reg [7:0] pkt_rom[0:65535]; reg [1023:0] ROMFile; initial for (i=0;i<65536;i=i+1) pkt_rom[i] <= 8'h0; initial begin @(negedge reset); repeat (10) @(posedge clk); WishboneWR(0,6'b111001); WishboneWR(4,16'hF1F2); WishboneWR(8,32'hF3F4_F5F6); WishboneWR(12,16'h0000); WishboneWR(16,32'h0000_0000); @(posedge clk); SendFlowCtrl(16'h0007); // Send flow control @(posedge clk); #30000; @(posedge clk); SendFlowCtrl(16'h0009); // Increase flow control before it expires #10000; @(posedge clk); SendFlowCtrl(16'h0000); // Cancel flow control before it expires @(posedge clk); SendPacket_to_fifo36(8'hAA,10); // This packet gets dropped by the filters repeat (10) @(posedge clk); SendPacketFromFile_fifo36(60,0,0); // The rest are valid packets repeat (10) @(posedge clk); SendPacketFromFile_fifo36(61,0,0); repeat (10) @(posedge clk); SendPacketFromFile_fifo36(62,0,0); repeat (10) @(posedge clk); SendPacketFromFile_fifo36(63,0,0); repeat (1) @(posedge clk); SendPacketFromFile_fifo36(64,0,0); repeat (10) @(posedge clk); SendPacketFromFile_fifo36(59,0,0); repeat (1) @(posedge clk); SendPacketFromFile_fifo36(58,0,0); repeat (1) @(posedge clk); SendPacketFromFile_fifo36(100,0,0); repeat (1) @(posedge clk); SendPacketFromFile_fifo36(200,150,30); // waiting 14 empties the fifo, 15 underruns repeat (1) @(posedge clk); SendPacketFromFile_fifo36(100,0,30); #10000 $finish; end /* // Force a CRC error initial begin #90000; @(posedge clk); FORCE_DAT_ERR <= 8'h10; @(posedge clk); FORCE_DAT_ERR <= 8'h00; end // Force an RX_ER error (i.e. link loss) initial begin #116000; @(posedge clk); FORCE_ERR <= 1; @(posedge clk); FORCE_ERR <= 0; end // Cause receive fifo to fill, causing an RX overrun initial begin #126000; @(posedge clk); rx_f36_dst_rdy <= 0; repeat (30) // Repeat of 14 fills the shortfifo, but works. 15 overflows @(posedge clk); rx_f36_dst_rdy <= 1; end */ // Tests: Send and recv flow control, send and receive good packets, RX CRC err, RX_ER, RX overrun, TX underrun // Still need to test: CRC errors on Pause Frames, MDIO, wishbone task WishboneWR; input [7:0] adr; input [31:0] value; begin wb_adr <= adr; wb_dat_i <= value; wb_stb <= 1; wb_cyc <= 1; wb_we <= 1; while (~wb_ack) @(posedge wb_clk); @(posedge wb_clk); wb_stb <= 0; wb_cyc <= 0; wb_we <= 0; end endtask // WishboneWR always @(posedge clk) if(rx_f36_src_rdy & rx_f36_dst_rdy) begin if(rx_f36_dat[32] & ~rx_f36_dat[33]) $display("RX-PKT-START %d",$time); $display("RX-PKT SOF %d EOF %d ERR %d OCC %d DAT %x",rx_f36_dat[32],rx_f36_dat[33], &rx_f36_dat[33:32],rx_f36_dat[35:34],rx_f36_dat[31:0]); if(rx_f36_dat[33] & ~rx_f36_dat[32]) $display("RX-PKT-END %d",$time); if(rx_f36_dat[33] & rx_f36_dat[32]) $display("RX-PKT-ERROR %d",$time); end endmodule // simple_gemac_wrapper_tb uhd-3.5.5/fpga/usrp2/simple_gemac/simple_gemac_wrapper_tb.v000066400000000000000000000132631224274632000237710ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_gemac_wrapper_tb; `include "eth_tasks_f36.v" reg reset = 1; initial #1000 reset = 0; wire wb_rst = reset; reg eth_clk = 0; always #50 eth_clk = ~eth_clk; reg wb_clk = 0; always #173 wb_clk = ~wb_clk; reg sys_clk = 0; always #77 sys_clk = ~ sys_clk; wire GMII_RX_DV, GMII_RX_ER, GMII_TX_EN, GMII_TX_ER, GMII_GTX_CLK; wire [7:0] GMII_RXD, GMII_TXD; wire rx_valid, rx_error, rx_ack; wire tx_ack, tx_valid, tx_error; wire [7:0] rx_data, tx_data; wire GMII_RX_CLK = GMII_GTX_CLK; reg [7:0] FORCE_DAT_ERR = 0; reg FORCE_ERR = 0; // Loopback assign GMII_RX_DV = GMII_TX_EN; assign GMII_RX_ER = GMII_TX_ER | FORCE_ERR; assign GMII_RXD = GMII_TXD ^ FORCE_DAT_ERR; wire [31:0] wb_dat_o; reg [31:0] wb_dat_i; reg [7:0] wb_adr; reg wb_stb=0, wb_cyc=0, wb_we=0; wire wb_ack; reg [35:0] tx_f36_data=0; reg tx_f36_src_rdy = 0; wire tx_f36_dst_rdy; wire [35:0] rx_f36_data; wire rx_f36_src_rdy; wire rx_f36_dst_rdy = 1; simple_gemac_wrapper simple_gemac_wrapper (.clk125(eth_clk), .reset(reset), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .sys_clk(sys_clk), .rx_f36_data(rx_f36_data), .rx_f36_src_rdy(rx_f36_src_rdy), .rx_f36_dst_rdy(rx_f36_dst_rdy), .tx_f36_data(tx_f36_data), .tx_f36_src_rdy(tx_f36_src_rdy), .tx_f36_dst_rdy(tx_f36_dst_rdy), .wb_clk(wb_clk), .wb_rst(wb_rst), .wb_stb(wb_stb), .wb_cyc(wb_cyc), .wb_ack(wb_ack), .wb_we(wb_we), .wb_adr(wb_adr), .wb_dat_i(wb_dat_i), .wb_dat_o(wb_dat_o), .mdio(), .mdc(), .debug() ); initial $dumpfile("simple_gemac_wrapper_tb.vcd"); initial $dumpvars(0,simple_gemac_wrapper_tb); integer i; reg [7:0] pkt_rom[0:65535]; reg [1023:0] ROMFile; initial for (i=0;i<65536;i=i+1) pkt_rom[i] <= 8'h0; initial begin @(negedge reset); repeat (10) @(posedge wb_clk); WishboneWR(0,6'b111101); WishboneWR(4,16'hA0B0); WishboneWR(8,32'hC0D0_A1B1); WishboneWR(12,16'h0000); WishboneWR(16,32'h0000_0000); @(posedge eth_clk); SendFlowCtrl(16'h0007); // Send flow control @(posedge eth_clk); #30000; @(posedge eth_clk); SendFlowCtrl(16'h0009); // Increase flow control before it expires #10000; @(posedge eth_clk); SendFlowCtrl(16'h0000); // Cancel flow control before it expires @(posedge eth_clk); repeat (1000) @(posedge sys_clk); SendPacket_to_fifo36(32'hA0B0C0D0,10); // This packet gets dropped by the filters repeat (1000) @(posedge sys_clk); SendPacket_to_fifo36(32'hAABBCCDD,100); // This packet gets dropped by the filters repeat (10) @(posedge sys_clk); /* SendPacketFromFile_f36(60,0,0); // The rest are valid packets repeat (10) @(posedge clk); SendPacketFromFile_f36(61,0,0); repeat (10) @(posedge clk); SendPacketFromFile_f36(62,0,0); repeat (10) @(posedge clk); SendPacketFromFile_f36(63,0,0); repeat (1) @(posedge clk); SendPacketFromFile_f36(64,0,0); repeat (10) @(posedge clk); SendPacketFromFile_f36(59,0,0); repeat (1) @(posedge clk); SendPacketFromFile_f36(58,0,0); repeat (1) @(posedge clk); SendPacketFromFile_f36(100,0,0); repeat (1) @(posedge clk); SendPacketFromFile_f36(200,150,30); // waiting 14 empties the fifo, 15 underruns repeat (1) @(posedge clk); SendPacketFromFile_f36(100,0,30); */ #100000 $finish; end // Force a CRC error initial begin #90000; @(posedge eth_clk); FORCE_DAT_ERR <= 8'h10; @(posedge eth_clk); FORCE_DAT_ERR <= 8'h00; end // Force an RX_ER error (i.e. link loss) initial begin #116000; @(posedge eth_clk); FORCE_ERR <= 1; @(posedge eth_clk); FORCE_ERR <= 0; end /* // Cause receive fifo to fill, causing an RX overrun initial begin #126000; @(posedge clk); rx_ll_dst_rdy2 <= 0; repeat (30) // Repeat of 14 fills the shortfifo, but works. 15 overflows @(posedge clk); rx_ll_dst_rdy2 <= 1; end */ // Tests: Send and recv flow control, send and receive good packets, RX CRC err, RX_ER, RX overrun, TX underrun // Still need to test: CRC errors on Pause Frames, MDIO, wishbone task WishboneWR; input [7:0] adr; input [31:0] value; begin wb_adr <= adr; wb_dat_i <= value; wb_stb <= 1; wb_cyc <= 1; wb_we <= 1; while (~wb_ack) @(posedge wb_clk); @(posedge wb_clk); wb_stb <= 0; wb_cyc <= 0; wb_we <= 0; end endtask // WishboneWR /* always @(posedge clk) if(rx_ll_src_rdy2 & rx_ll_dst_rdy2) begin if(rx_ll_sof2 & ~rx_ll_eof2) $display("RX-PKT-START %d",$time); $display("RX-PKT SOF %d EOF %d ERR%d DAT %x",rx_ll_sof2,rx_ll_eof2,rx_ll_error2,rx_ll_data2); if(rx_ll_eof2 & ~rx_ll_sof2) $display("RX-PKT-END %d",$time); end */ endmodule // simple_gemac_wrapper_tb uhd-3.5.5/fpga/usrp2/simple_gemac/test_packet.mem000066400000000000000000000003061224274632000217300ustar00rootroot00000000000000ff ff ff ff ff ff 08 00 07 5c 2e e4 08 06 00 01 08 04 06 02 00 01 08 00 07 5c 2e e4 03 64 00 00 00 00 00 00 02 64 00 3a f3 5c 4f 12 01 10 00 01 00 00 00 00 00 00 20 41 42 41 08 00 AA BB CC DD EE FF uhd-3.5.5/fpga/usrp2/testbench/000077500000000000000000000000001224274632000162555ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/testbench/.gitignore000066400000000000000000000000611224274632000202420ustar00rootroot00000000000000/single_u2_sim /dual_u2_sim /*.lxt /*.vcd /*.sav uhd-3.5.5/fpga/usrp2/testbench/Makefile000066400000000000000000000004241224274632000177150ustar00rootroot00000000000000all: single dual single: iverilog -Wimplicit -Wportbind -c cmdfile ../top/single_u2_sim/single_u2_sim.v -o single_u2_sim dual: iverilog -Wimplicit -Wportbind -c cmdfile ../top/dual_u2_sim/dual_u2_sim.v -o dual_u2_sim clean: rm -f single_u2_sim dual_u2_sim *.vcd *.lxt uhd-3.5.5/fpga/usrp2/testbench/README000066400000000000000000000001301224274632000171270ustar00rootroot00000000000000The path to happiness: make clean make ./u2_sim +rom=../../firmware/eth_test.rom -lxt2 uhd-3.5.5/fpga/usrp2/testbench/cmdfile000066400000000000000000000007321224274632000176050ustar00rootroot00000000000000 # My stuff -y . -y ../top/u2_core -y ../control_lib -y ../control_lib/newfifo -y ../serdes -y ../sdr_lib -y ../timing -y ../coregen -y ../extram -y ../simple_gemac -y ../simple_gemac/miim # Models -y ../models -y ../models/CY7C1356C # Open Cores -y ../opencores/8b10b -y ../opencores/spi/rtl/verilog +incdir+../opencores/spi/rtl/verilog -y ../opencores/i2c/rtl/verilog +incdir+../opencores/i2c/rtl/verilog -y ../opencores/aemb/rtl/verilog -y ../opencores/simple_pic/rtl uhd-3.5.5/fpga/usrp2/testbench/single_u2_sim.v000066400000000000000000000225021224274632000212040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// module single_u2_sim(); // Misc, debug wire [7:0] leds; wire [31:0] debug; wire [1:0] debug_clk; // Expansion wire exp_pps_in; wire exp_pps_out; // GMII // GMII-CTRL wire GMII_COL; wire GMII_CRS; // GMII-TX wire [7:0] GMII_TXD; wire GMII_TX_EN; wire GMII_TX_ER; wire GMII_GTX_CLK; wire GMII_TX_CLK; // 100mbps clk // GMII-RX wire [7:0] GMII_RXD; wire GMII_RX_CLK; wire GMII_RX_DV; wire GMII_RX_ER; // GMII-Management wire MDIO; wire MDC; wire PHY_INTn; // open drain wire PHY_RESETn; wire PHY_CLK; // possibly use on-board osc // RAM wire [17:0] RAM_D; wire [18:0] RAM_A; wire RAM_CE1n; wire RAM_CENn; wire RAM_CLK; wire RAM_WEn; wire RAM_OEn; wire RAM_LDn; // SERDES wire ser_enable; wire ser_prbsen; wire ser_loopen; wire ser_rx_en; wire ser_tx_clk; wire [15:0] ser_t; wire ser_tklsb; wire ser_tkmsb; wire ser_rx_clk; wire [15:0] ser_r; wire ser_rklsb; wire ser_rkmsb; // CPLD interface wire cpld_din, cpld_clk, cpld_detached, cpld_start, cpld_mode, cpld_done; // ADC wire [13:0] adc_a; wire adc_ovf_a; wire adc_on_a, adc_oe_a; wire [13:0] adc_b; wire adc_ovf_b; wire adc_on_b, adc_oe_b; // DAC wire [15:0] dac_a; wire [15:0] dac_b; // I2C wire SCL; wire SDA; // Clock Gen Control wire [1:0] clk_en; wire [1:0] clk_sel; wire clk_func; // FIXME is an input to control the 9510 wire clk_status; // Clocks reg clk_fpga; reg clk_to_mac; wire pps_in; // Generic SPI wire sclk, mosi, miso; wire sen_clk; wire sen_dac; wire sen_tx_db; wire sen_tx_adc; wire sen_tx_dac; wire sen_rx_db; wire sen_rx_adc; wire sen_rx_dac; // GPIO to DBoards wire [15:0] io_tx; wire [15:0] io_rx; wire wb_clk; wire start, clock_ready; reg aux_clk; initial aux_clk= 1'b0; always #6 aux_clk = ~aux_clk; initial clk_fpga = 1'bx; initial #3007 clk_fpga = 1'b0; always #5 clk_fpga = ~clk_fpga; initial clk_to_mac = 0; always #4 clk_to_mac = ~clk_to_mac; wire div_clk, dsp_clk; reg [7:0] div_ctr = 0; assign dsp_clk = clock_ready ? clk_fpga : aux_clk; assign wb_clk = div_clk; `define CLK_DIV_2 1 //`define CLK_DIV_3 `ifdef CLK_DIV_2 localparam clock_divider = 4'd2; always @(posedge dsp_clk) div_ctr <= div_ctr + 1; assign div_clk = div_ctr[0]; `endif `ifdef CLK_DIV_3 localparam clock_divider = 2; always @(posedge dsp_clk or negedge dsp_clk) if(div_ctr == 5) div_ctr <= 0; else div_ctr <= div_ctr + 1; assign div_clk = ((div_ctr == 0) | (div_ctr == 1) | (div_ctr == 2)); `endif initial $monitor($time, ,clock_ready); always #1000000 $monitor("Time in ns ",$time); initial begin @(negedge cpld_done); @(posedge cpld_done); $dumpfile("single_u2_sim.lxt"); $dumpvars(0,single_u2_sim); end initial #10000000 $finish; cpld_model cpld_model (.aux_clk(aux_clk),.start(cpld_start),.mode(cpld_mode),.done(cpld_done), .dout(cpld_din),.sclk(cpld_clk),.detached(cpld_detached)); serdes_model serdes_model (.ser_tx_clk(ser_tx_clk), .ser_tkmsb(ser_tkmsb), .ser_tklsb(ser_tklsb), .ser_t(ser_t), .ser_rx_clk(ser_rx_clk), .ser_rkmsb(ser_rkmsb), .ser_rklsb(ser_rklsb), .ser_r(ser_r), .even(0),.error(0) ); adc_model adc_model (.clk(dsp_clk),.rst(0), .adc_a(adc_a),.adc_ovf_a(adc_ovf_a),.adc_on_a(adc_on_a),.adc_oe_a(adc_oe_a), .adc_b(adc_b),.adc_ovf_b(adc_ovf_b),.adc_on_b(adc_on_b),.adc_oe_b(adc_oe_b) ); wire [2:0] speed; phy_sim phy_model (.Gtx_clk(GMII_GTX_CLK), . Rx_clk(GMII_RX_CLK), .Tx_clk(GMII_TX_CLK), .Tx_er(GMII_TX_ER), .Tx_en(GMII_TX_EN), .Txd(GMII_TXD), .Rx_er(GMII_RX_ER), .Rx_dv(GMII_RX_DV), .Rxd(GMII_RXD), .Crs(GMII_CRS), .Col(GMII_COL), .Speed(speed), .Done(0) ); pullup p3(MDIO); miim_model miim_model (.mdc_i(MDC),.mdio(MDIO),.phy_resetn_i(PHY_RESETn),.phy_clk_i(PHY_CLK), .phy_intn_o(PHY_INTn),.speed_o(speed) ); xlnx_glbl glbl (.GSR(),.GTS()); wire RAM_MODE = 1'b0; cy1356 ram_model(.d(RAM_D),.clk(RAM_CLK),.a(RAM_A), .bws(2'b00),.we_b(RAM_WEn),.adv_lb(RAM_LDn), .ce1b(RAM_CE1n),.ce2(1'b1),.ce3b(1'b0), .oeb(RAM_OEn),.cenb(RAM_CENn),.mode(RAM_MODE) ); M24LC024B eeprom_model(.A0(0),.A1(0),.A2(0),.WP(0), .SDA(SDA),.SCL(SCL),.RESET(0)); wire scl_pad_i, scl_pad_o, scl_pad_oen_o; wire sda_pad_i, sda_pad_o, sda_pad_oen_o; pullup p1(SCL); pullup p2(SDA); assign scl_pad_i = SCL; assign sda_pad_i = SDA; assign SCL = scl_pad_oen_o ? 1'bz : scl_pad_o; assign SDA = sda_pad_oen_o ? 1'bz : sda_pad_o; // printf output wire uart_baud_o, uart_tx_o, uart_rx_i; assign uart_rx_i = 1'b1; uart_rx uart_rx(.baudclk(uart_baud_o),.rxd(uart_tx_o)); // End the simulation always @(posedge wb_clk) if((u2_core.m0_we == 1'd1)&&(u2_core.m0_adr == 16'hC2F0)) begin $display($time, "Finish called.",); $finish; end u2_core #(.RAM_SIZE(32768)) u2_core(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), .clk_to_mac (clk_to_mac), .pps_in (pps_in), .leds (leds), .debug (debug[31:0]), .debug_clk (debug_clk[1:0]), .exp_pps_in (exp_pps_in), .exp_pps_out (exp_pps_out), .GMII_COL (GMII_COL), .GMII_CRS (GMII_CRS), .GMII_TXD (GMII_TXD[7:0]), .GMII_TX_EN (GMII_TX_EN), .GMII_TX_ER (GMII_TX_ER), .GMII_GTX_CLK (GMII_GTX_CLK), .GMII_TX_CLK (GMII_TX_CLK), .GMII_RXD (GMII_RXD[7:0]), .GMII_RX_CLK (GMII_RX_CLK), .GMII_RX_DV (GMII_RX_DV), .GMII_RX_ER (GMII_RX_ER), .MDIO (MDIO), .MDC (MDC), .PHY_INTn (PHY_INTn), .PHY_RESETn (PHY_RESETn), .ser_enable (ser_enable), .ser_prbsen (ser_prbsen), .ser_loopen (ser_loopen), .ser_rx_en (ser_rx_en), .ser_tx_clk (ser_tx_clk), .ser_t (ser_t[15:0]), .ser_tklsb (ser_tklsb), .ser_tkmsb (ser_tkmsb), .ser_rx_clk (ser_rx_clk), .ser_r (ser_r[15:0]), .ser_rklsb (ser_rklsb), .ser_rkmsb (ser_rkmsb), .cpld_start (cpld_start), .cpld_mode (cpld_mode), .cpld_done (cpld_done), .cpld_din (cpld_din), .cpld_clk (cpld_clk), .cpld_detached (cpld_detached), .cpld_init_b (1), .por (0), .adc_a (adc_a[13:0]), .adc_ovf_a (adc_ovf_a), .adc_on_a (adc_on_a), .adc_oe_a (adc_oe_a), .adc_b (adc_b[13:0]), .adc_ovf_b (adc_ovf_b), .adc_on_b (adc_on_b), .adc_oe_b (adc_oe_b), .dac_a (dac_a[15:0]), .dac_b (dac_b[15:0]), .scl_pad_i (scl_pad_i), .scl_pad_o (scl_pad_o), .scl_pad_oen_o (scl_pad_oen_o), .sda_pad_i (sda_pad_i), .sda_pad_o (sda_pad_o), .sda_pad_oen_o (sda_pad_oen_o), .clk_en (clk_en[1:0]), .clk_sel (clk_sel[1:0]), .clk_func (clk_func), .clk_status (clk_status), .sclk (sclk), .mosi (mosi), .miso (miso), .sen_clk (sen_clk), .sen_dac (sen_dac), .sen_tx_db (sen_tx_db), .sen_tx_adc (sen_tx_adc), .sen_tx_dac (sen_tx_dac), .sen_rx_db (sen_rx_db), .sen_rx_adc (sen_rx_adc), .sen_rx_dac (sen_rx_dac), .io_tx (io_tx[15:0]), .io_rx (io_rx[15:0]), .RAM_D (RAM_D), .RAM_A (RAM_A), .RAM_CE1n (RAM_CE1n), .RAM_CENn (RAM_CENn), .RAM_CLK (RAM_CLK), .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), .uart_tx_o (uart_tx_o), .uart_rx_i (uart_rx_i), .uart_baud_o (uart_baud_o), .sim_mode (1'b1), .clock_divider (clock_divider) ); endmodule // single_u2_sim uhd-3.5.5/fpga/usrp2/timing/000077500000000000000000000000001224274632000155655ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/timing/.gitignore000066400000000000000000000000161224274632000175520ustar00rootroot00000000000000/a.out /*.vcd uhd-3.5.5/fpga/usrp2/timing/Makefile.srcs000066400000000000000000000005141224274632000201760ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # Timing Sources ################################################## TIMING_SRCS = $(abspath $(addprefix $(BASE_DIR)/../timing/, \ time_64bit.v \ time_compare.v \ time_receiver.v \ time_sender.v \ time_sync.v \ timer.v \ simple_timer.v \ )) uhd-3.5.5/fpga/usrp2/timing/simple_timer.v000066400000000000000000000036611224274632000204530ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module simple_timer #(parameter BASE=0) (input clk, input reset, input set_stb, input [7:0] set_addr, input [31:0] set_data, output reg onetime_int, output reg periodic_int); reg [31:0] onetime_ctr; always @(posedge clk) if(reset) begin onetime_int <= 0; onetime_ctr <= 0; end else if(set_stb & (set_addr == BASE)) begin onetime_int <= 0; onetime_ctr <= set_data; end else begin if(onetime_ctr == 1) onetime_int <= 1; if(onetime_ctr != 0) onetime_ctr <= onetime_ctr - 1; else onetime_int <= 0; end // else: !if(set_stb & (set_addr == BASE)) reg [31:0] periodic_ctr, period; always @(posedge clk) if(reset) begin periodic_int <= 0; periodic_ctr <= 0; period <= 0; end else if(set_stb & (set_addr == (BASE+1))) begin periodic_int <= 0; periodic_ctr <= set_data; period <= set_data; end else if(periodic_ctr == 1) begin periodic_int <= 1; periodic_ctr <= period; end else if(periodic_ctr != 0) begin periodic_int <= 0; periodic_ctr <= periodic_ctr - 1; end endmodule // simple_timer uhd-3.5.5/fpga/usrp2/timing/time_64bit.v000066400000000000000000000110361224274632000177230ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module time_64bit #( parameter BASE = 0) (input clk, input rst, input set_stb, input [7:0] set_addr, input [31:0] set_data, input pps, output reg [63:0] vita_time, output reg [63:0] vita_time_pps, output pps_int, input exp_time_in, output exp_time_out, output reg good_sync, output [31:0] debug ); localparam NEXT_TICKS_HI = 0; localparam NEXT_TICKS_LO = 1; localparam PPS_POLSRC = 2; localparam PPS_IMM = 3; localparam MIMO_SYNC = 5; reg [63:0] ticks; always @(posedge clk) vita_time <= ticks; wire [63:0] vita_time_rcvd; wire [63:0] next_ticks_preset; wire set_on_pps_trig; reg set_on_next_pps; wire pps_polarity, pps_source, set_imm; reg [1:0] pps_del; reg pps_reg_p, pps_reg_n, pps_reg; wire pps_edge; reg [15:0] sync_counter; wire sync_rcvd; wire [63:0] mimo_ticks; wire mimo_sync_now; wire mimo_sync; wire [7:0] sync_delay; setting_reg #(.my_addr(BASE+NEXT_TICKS_LO)) sr_next_ticks_lo (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(next_ticks_preset[31:0]),.changed()); setting_reg #(.my_addr(BASE+NEXT_TICKS_HI)) sr_next_ticks_hi (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(next_ticks_preset[63:32]),.changed(set_on_pps_trig)); setting_reg #(.my_addr(BASE+PPS_POLSRC), .width(2)) sr_pps_polsrc (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({pps_source,pps_polarity}),.changed()); setting_reg #(.my_addr(BASE+PPS_IMM), .width(1)) sr_pps_imm (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(set_imm),.changed()); setting_reg #(.my_addr(BASE+MIMO_SYNC), .at_reset(0), .width(9)) sr_mimosync (.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({mimo_sync,sync_delay}),.changed()); always @(posedge clk) pps_reg_p <= pps; always @(negedge clk) pps_reg_n <= pps; always @* pps_reg <= pps_polarity ? pps_reg_p : pps_reg_n; always @(posedge clk) if(rst) pps_del <= 2'b00; else pps_del <= {pps_del[0],pps_reg}; assign pps_edge = pps_del[0] & ~pps_del[1]; always @(posedge clk) if(pps_edge) vita_time_pps <= vita_time; always @(posedge clk) if(rst) set_on_next_pps <= 0; else if(set_on_pps_trig) set_on_next_pps <= 1; else if(set_imm | pps_edge) set_on_next_pps <= 0; wire [63:0] ticks_plus_one = ticks + 1; always @(posedge clk) if(rst) begin ticks <= 64'd0; end else if((set_imm | pps_edge) & set_on_next_pps) begin ticks <= next_ticks_preset; end else if(mimo_sync_now) begin ticks <= mimo_ticks; end else ticks <= ticks_plus_one; assign pps_int = pps_edge; // MIMO Connector Time Sync wire send_sync = (sync_counter == 59999); // X % 10 = 9 always @(posedge clk) if(rst) sync_counter <= 0; else if(send_sync) sync_counter <= 0; else sync_counter <= sync_counter + 1; time_sender time_sender (.clk(clk),.rst(rst), .vita_time(vita_time), .send_sync(send_sync), .exp_time_out(exp_time_out) ); time_receiver time_receiver (.clk(clk),.rst(rst), .vita_time(vita_time_rcvd), .sync_rcvd(sync_rcvd), .exp_time_in(exp_time_in) ); assign mimo_ticks = vita_time_rcvd[63:0] + {48'd0,sync_delay}; assign mimo_sync_now = mimo_sync & sync_rcvd; assign debug = { { 24'b0} , { 2'b0, exp_time_in, exp_time_out, mimo_sync, mimo_sync_now, sync_rcvd, send_sync} }; always @(posedge clk) if(rst) good_sync <= 0; else if(sync_rcvd) good_sync <= 1; endmodule // time_64bit uhd-3.5.5/fpga/usrp2/timing/time_compare.v000066400000000000000000000020471224274632000204230ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // 64 bits worth of ticks module time_compare (input [63:0] time_now, input [63:0] trigger_time, output now, output early, output late, output too_early); assign now = time_now == trigger_time; assign late = time_now > trigger_time; assign early = ~now & ~late; assign too_early = 0; //not implemented endmodule // time_compare uhd-3.5.5/fpga/usrp2/timing/time_receiver.v000066400000000000000000000077051224274632000206070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module time_receiver (input clk, input rst, output reg [63:0] vita_time, output reg sync_rcvd, input exp_time_in); wire code_err, disp_err, dispout, complete_word; reg disp_reg; reg [9:0] shiftreg; reg [3:0] bit_count; wire [8:0] dataout; reg [8:0] dataout_reg; reg exp_time_in_reg, exp_time_in_reg2; always @(posedge clk) exp_time_in_reg <= exp_time_in; always @(posedge clk) exp_time_in_reg2 <= exp_time_in_reg; always @(posedge clk) shiftreg <= {exp_time_in_reg2, shiftreg[9:1]}; localparam COMMA_0 = 10'h283; localparam COMMA_1 = 10'h17c; wire found_comma = (shiftreg == COMMA_0) | (shiftreg == COMMA_1); wire set_disp = (shiftreg == COMMA_1); always @(posedge clk) if(rst) bit_count <= 0; else if(found_comma | complete_word) bit_count <= 0; else bit_count <= bit_count + 1; assign complete_word = (bit_count == 9); always @(posedge clk) if(set_disp) disp_reg <= 1; else if(complete_word) disp_reg <= dispout; always @(posedge clk) if(complete_word) dataout_reg <= dataout; decode_8b10b decode_8b10b (.datain(shiftreg),.dispin(disp_reg), .dataout(dataout),.dispout(dispout), .code_err(code_err),.disp_err(disp_err) ); reg error; always @(posedge clk) if(complete_word) error <= code_err | disp_err; localparam STATE_IDLE = 0; localparam STATE_T0 = 1; localparam STATE_T1 = 2; localparam STATE_T2 = 3; localparam STATE_T3 = 4; localparam STATE_T4 = 5; localparam STATE_T5 = 6; localparam STATE_T6 = 7; localparam STATE_T7 = 8; localparam STATE_TAIL = 9; localparam HEAD = 9'h13c; localparam TAIL = 9'h1F7; reg [3:0] state; reg [63:0] vita_time_pre; reg sync_rcvd_pre; always @(posedge clk) if(rst) state <= STATE_IDLE; else if(complete_word) if(code_err | disp_err) state <= STATE_IDLE; else case(state) STATE_IDLE : if(dataout_reg == HEAD) state <= STATE_T0; STATE_T0 : begin vita_time_pre[63:56] <= dataout_reg[7:0]; state <= STATE_T1; end STATE_T1 : begin vita_time_pre[55:48] <= dataout_reg[7:0]; state <= STATE_T2; end STATE_T2 : begin vita_time_pre[47:40] <= dataout_reg[7:0]; state <= STATE_T3; end STATE_T3 : begin vita_time_pre[39:32] <= dataout_reg[7:0]; state <= STATE_T4; end STATE_T4 : begin vita_time_pre[31:24] <= dataout_reg[7:0]; state <= STATE_T5; end STATE_T5 : begin vita_time_pre[23:16] <= dataout_reg[7:0]; state <= STATE_T6; end STATE_T6 : begin vita_time_pre[15:8] <= dataout_reg[7:0]; state <= STATE_T7; end STATE_T7 : begin vita_time_pre[7:0] <= dataout_reg[7:0]; state <= STATE_TAIL; end STATE_TAIL : state <= STATE_IDLE; endcase // case(state) always @(posedge clk) if(rst) sync_rcvd_pre <= 0; else sync_rcvd_pre <= (complete_word & (state == STATE_TAIL) & (dataout_reg[8:0] == TAIL)); always @(posedge clk) sync_rcvd <= sync_rcvd_pre; always @(posedge clk) vita_time <= vita_time_pre; endmodule // time_sender uhd-3.5.5/fpga/usrp2/timing/time_sender.v000066400000000000000000000067751224274632000202710ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module time_sender (input clk, input rst, input [63:0] vita_time, input send_sync, output reg exp_time_out); reg [7:0] datain; reg k; wire [9:0] dataout; reg [9:0] dataout_reg; reg disp_reg; wire disp, new_word; reg [4:0] state; reg [3:0] bit_count; encode_8b10b encode_8b10b (.datain({k,datain}),.dispin(disp_reg), .dataout(dataout),.dispout(disp)); always @(posedge clk) if(rst) disp_reg <= 0; else if(new_word) disp_reg <= disp; always @(posedge clk) if(rst) dataout_reg <= 0; else if(new_word) dataout_reg <= dataout; else dataout_reg <= {1'b0,dataout_reg[9:1]}; always @(posedge clk) exp_time_out <= dataout_reg[0]; assign new_word = (bit_count == 9); always @(posedge clk) if(rst) bit_count <= 0; else if(new_word | send_sync) bit_count <= 0; else bit_count <= bit_count + 1; localparam SEND_IDLE = 0; localparam SEND_HEAD = 1; localparam SEND_T0 = 2; localparam SEND_T1 = 3; localparam SEND_T2 = 4; localparam SEND_T3 = 5; localparam SEND_T4 = 6; localparam SEND_T5 = 7; localparam SEND_T6 = 8; localparam SEND_T7 = 9; localparam SEND_TAIL = 10; localparam COMMA = 8'hBC; localparam HEAD = 8'h3C; localparam TAIL = 8'hF7; reg [63:0] vita_time_reg; always @(posedge clk) if(rst) vita_time_reg <= 0; else if(send_sync) vita_time_reg <= vita_time; always @(posedge clk) if(rst) begin {k,datain} <= 0; state <= SEND_IDLE; end else if(send_sync) state <= SEND_HEAD; else if(new_word) case(state) SEND_IDLE : {k,datain} <= {1'b1,COMMA}; SEND_HEAD : begin {k,datain} <= {1'b1, HEAD}; state <= SEND_T0; end SEND_T0 : begin {k,datain} <= {1'b0, vita_time_reg[63:56] }; state <= SEND_T1; end SEND_T1 : begin {k,datain} <= {1'b0, vita_time_reg[55:48]}; state <= SEND_T2; end SEND_T2 : begin {k,datain} <= {1'b0, vita_time_reg[47:40]}; state <= SEND_T3; end SEND_T3 : begin {k,datain} <= {1'b0, vita_time_reg[39:32]}; state <= SEND_T4; end SEND_T4 : begin {k,datain} <= {1'b0, vita_time_reg[31:24]}; state <= SEND_T5; end SEND_T5 : begin {k,datain} <= {1'b0, vita_time_reg[23:16]}; state <= SEND_T6; end SEND_T6 : begin {k,datain} <= {1'b0, vita_time_reg[15:8]}; state <= SEND_T7; end SEND_T7 : begin {k,datain} <= {1'b0, vita_time_reg[7:0]}; state <= SEND_TAIL; end SEND_TAIL : begin {k,datain} <= {1'b1, TAIL}; state <= SEND_IDLE; end default : state <= SEND_IDLE; endcase // case(state) endmodule // time_sender uhd-3.5.5/fpga/usrp2/timing/time_sync.v000066400000000000000000000106621224274632000177530ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module time_sync (input wb_clk_i, input rst_i, input cyc_i, input stb_i, input [2:0] adr_i, input we_i, input [31:0] dat_i, output [31:0] dat_o, output ack_o, input sys_clk_i, output [31:0] master_time_o, input pps_posedge, input pps_negedge, input exp_pps_in, output exp_pps_out, output reg int_o, output reg epoch_o, output reg pps_o ); wire [31:0] master_time_rcvd; reg [31:0] master_time; reg [31:0] delta_time; reg internal_tick; wire sync_rcvd, pps_ext; reg [31:0] tick_time, tick_time_wb; wire tick_free_run; reg tick_int_enable, tick_source, external_sync; reg [31:0] tick_interval; reg sync_on_next_pps; reg sync_every_pps; reg pps_edge; // Generate master time always @(posedge sys_clk_i) if(rst_i) master_time <= 0; else if(external_sync & sync_rcvd) master_time <= master_time_rcvd + delta_time; else if(pps_ext & (sync_on_next_pps|sync_every_pps)) master_time <= 0; else master_time <= master_time + 1; assign master_time_o = master_time; time_sender time_sender (.clk(sys_clk_i),.rst(rst_i), .master_time(master_time), .send_sync(internal_tick), .exp_pps_out(exp_pps_out) ); time_receiver time_receiver (.clk(sys_clk_i),.rst(rst_i), .master_time(master_time_rcvd), .sync_rcvd(sync_rcvd), .exp_pps_in(exp_pps_in) ); assign ack_o = stb_i; wire wb_write = cyc_i & stb_i & we_i; wire wb_read = cyc_i & stb_i & ~we_i; wire wb_acc = cyc_i & stb_i; always @(posedge wb_clk_i) if(rst_i) begin tick_source <= 0; tick_int_enable <= 0; external_sync <= 0; tick_interval <= 100000-1; // default to 1K times per second delta_time <= 0; pps_edge <= 0; sync_every_pps <= 0; end else if(wb_write) case(adr_i[2:0]) 3'd0 : begin tick_source <= dat_i[0]; tick_int_enable <= dat_i[1]; external_sync <= dat_i[2]; pps_edge <= dat_i[3]; sync_every_pps <= dat_i[4]; end 3'd1 : tick_interval <= dat_i; 3'd2 : delta_time <= dat_i; 3'd3 : ; // Do nothing here, this is to arm the sync_on_next endcase // case(adr_i[2:0]) always @(posedge sys_clk_i) if(rst_i) sync_on_next_pps <= 0; else if(pps_ext) sync_on_next_pps <= 0; else if(wb_write & (adr_i[2:0] == 3)) sync_on_next_pps <= 1; always @(posedge sys_clk_i) if(internal_tick) tick_time <= master_time; always @(posedge wb_clk_i) tick_time_wb <= tick_time; assign dat_o = tick_time_wb; always @(posedge sys_clk_i) internal_tick <= (tick_source == 0) ? tick_free_run : pps_ext; reg [31:0] counter; always @(posedge sys_clk_i) if(rst_i) counter <= 0; else if(tick_free_run) counter <= 0; else counter <= counter + 1; assign tick_free_run = (counter >= tick_interval); // Properly Latch and edge detect External PPS input reg pps_in_d1, pps_in_d2; always @(posedge sys_clk_i) begin pps_in_d1 <= pps_edge ? pps_posedge : pps_negedge; pps_in_d2 <= pps_in_d1; end assign pps_ext = pps_in_d1 & ~pps_in_d2; always @(posedge sys_clk_i) pps_o <= pps_ext; // Need to register this? reg internal_tick_d1; always @(posedge sys_clk_i) internal_tick_d1 <= internal_tick; always @(posedge wb_clk_i) if(rst_i) int_o <= 0; else if(tick_int_enable & (internal_tick | internal_tick_d1)) int_o <= 1; else int_o <= 0; always @(posedge sys_clk_i) if(rst_i) epoch_o <= 0; else epoch_o <= (master_time_o[27:0] == 0); endmodule // time_sync uhd-3.5.5/fpga/usrp2/timing/time_transfer_tb.v000066400000000000000000000033731224274632000213110ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps module time_transfer_tb(); reg clk = 0, rst = 1; always #5 clk = ~clk; initial begin @(negedge clk); @(negedge clk); rst <= 0; end initial $dumpfile("time_transfer_tb.vcd"); initial $dumpvars(0,time_transfer_tb); initial #100000000 $finish; wire exp_time, pps, pps_rcv; wire [63:0] vita_time_rcv; reg [63:0] vita_time = 0; reg [63:0] counter = 0; localparam PPS_PERIOD = 439; // PPS_PERIOD % 10 must = 9 always @(posedge clk) if(counter == PPS_PERIOD) counter <= 0; else counter <= counter + 1; assign pps = (counter == (PPS_PERIOD-1)); always @(posedge clk) vita_time <= vita_time + 1; time_sender time_sender (.clk(clk),.rst(rst), .vita_time(vita_time), .send_sync(pps), .exp_time_out(exp_time) ); time_receiver time_receiver (.clk(clk),.rst(rst), .vita_time(vita_time_rcv), .sync_rcvd(pps_rcv), .exp_time_in(exp_time) ); wire [31:0] delta = vita_time - vita_time_rcv; endmodule // time_transfer_tb uhd-3.5.5/fpga/usrp2/timing/timer.v000066400000000000000000000027101224274632000170740ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module timer (input wb_clk_i, input rst_i, input cyc_i, input stb_i, input [2:0] adr_i, input we_i, input [31:0] dat_i, output [31:0] dat_o, output ack_o, input sys_clk_i, input [31:0] master_time_i, output int_o ); reg [31:0] time_wb; always @(posedge wb_clk_i) time_wb <= master_time_i; assign ack_o = stb_i; reg [31:0] int_time; reg int_reg; always @(posedge sys_clk_i) if(rst_i) begin int_time <= 0; int_reg <= 0; end else if(|int_time && (master_time_i == int_time)) begin int_time <= 0; int_reg <= 1; end else if(stb_i & we_i) begin int_time <= dat_i; int_reg <= 0; end assign dat_o = time_wb; assign int_o = int_reg; endmodule // timer uhd-3.5.5/fpga/usrp2/top/000077500000000000000000000000001224274632000151005ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/.gitignore000066400000000000000000000000161224274632000170650ustar00rootroot00000000000000/*.sav build* uhd-3.5.5/fpga/usrp2/top/B100/000077500000000000000000000000001224274632000155025ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/B100/.gitignore000066400000000000000000000000071224274632000174670ustar00rootroot00000000000000build* uhd-3.5.5/fpga/usrp2/top/B100/B100.ucf000066400000000000000000000125251224274632000166100ustar00rootroot00000000000000## Main Clock NET "CLK_FPGA_P" LOC = "R7" ; NET "CLK_FPGA_N" LOC = "T7" ; ## I2C NET "SDA_FPGA" LOC = "T13" ; NET "SCL_FPGA" LOC = "R13" ; ## CGEN NET "cgen_st_ld" LOC = "M13" ; NET "cgen_st_refmon" LOC = "J14" ; NET "cgen_st_status" LOC = "P6" ; NET "cgen_ref_sel" LOC = "T2" ; NET "cgen_sync_b" LOC = "H15" ; ## FPGA Config #NET "fpga_cfg_din" LOC = "T14" ; #NET "fpga_cfg_cclk" LOC = "R14" ; #NET "fpga_cfg_init_b" LOC = "T12" ; ## MISC #NET "mystery_bus<1>" LOC = "C4" ; #NET "mystery_bus<0>" LOC = "E7" ; NET "reset_n" LOC = "D5" ; NET "PPS_IN" LOC = "M14" ; NET "reset_codec" LOC = "B14" ; ## recycles fpga_cfg_cclk for reset from fw NET "ext_reset" LOC = "R14" ; ## GPIF NET "GPIF_D<15>" LOC = "P7" ; NET "GPIF_D<14>" LOC = "N8" ; NET "GPIF_D<13>" LOC = "T5" ; NET "GPIF_D<12>" LOC = "T6" ; NET "GPIF_D<11>" LOC = "N6" ; NET "GPIF_D<10>" LOC = "P5" ; NET "GPIF_D<9>" LOC = "R3" ; NET "GPIF_D<8>" LOC = "T3" ; NET "GPIF_D<7>" LOC = "N12" ; NET "GPIF_D<6>" LOC = "P13" ; NET "GPIF_D<5>" LOC = "P11" ; NET "GPIF_D<4>" LOC = "R9" ; NET "GPIF_D<3>" LOC = "T9" ; NET "GPIF_D<2>" LOC = "N9" ; NET "GPIF_D<1>" LOC = "P9" ; NET "GPIF_D<0>" LOC = "P8" ; ##NET "GPIF_CTL<3>" LOC = "N5" ; NET "GPIF_CTL<3>" LOC = "P12" ; NET "GPIF_CTL<2>" LOC = "M11" ; NET "GPIF_CTL<1>" LOC = "M9" ; NET "GPIF_CTL<0>" LOC = "M7" ; ##NET "GPIF_RDY<3>" LOC = "N11" ; ##NET "GPIF_RDY<2>" LOC = "T10" ; NET "GPIF_SLWR" LOC = "T4" ; NET "GPIF_SLRD" LOC = "R5" ; ##NET "GPIF_CS" LOC = "P12" ; NET "GPIF_SLOE" LOC = "R11" ; NET "GPIF_PKTEND" LOC = "P10" ; NET "GPIF_ADR<0>" LOC = "T11" ; NET "GPIF_ADR<1>" LOC = "H16" ; NET "IFCLK" LOC = "T8" ; ## LEDs NET "debug_led<2>" LOC = "R2" ; NET "debug_led<1>" LOC = "N4" ; NET "debug_led<0>" LOC = "P4" ; ## Debug bus NET "debug_clk<0>" LOC = "K15" ; NET "debug_clk<1>" LOC = "K14" ; NET "debug<0>" LOC = "K16" ; NET "debug<1>" LOC = "J16" ; NET "debug<2>" LOC = "C16" ; NET "debug<3>" LOC = "C15" ; NET "debug<4>" LOC = "E13" ; NET "debug<5>" LOC = "D14" ; NET "debug<6>" LOC = "D16" ; NET "debug<7>" LOC = "D15" ; NET "debug<8>" LOC = "E14" ; NET "debug<9>" LOC = "F13" ; NET "debug<10>" LOC = "G13" ; NET "debug<11>" LOC = "F14" ; NET "debug<12>" LOC = "E16" ; NET "debug<13>" LOC = "F15" ; NET "debug<14>" LOC = "H13" ; NET "debug<15>" LOC = "G14" ; NET "debug<16>" LOC = "G16" ; NET "debug<17>" LOC = "F16" ; NET "debug<18>" LOC = "J12" ; NET "debug<19>" LOC = "J13" ; NET "debug<20>" LOC = "L14" ; NET "debug<21>" LOC = "L16" ; NET "debug<22>" LOC = "M15" ; NET "debug<23>" LOC = "M16" ; NET "debug<24>" LOC = "L13" ; NET "debug<25>" LOC = "K13" ; NET "debug<26>" LOC = "P16" ; NET "debug<27>" LOC = "N16" ; NET "debug<28>" LOC = "R15" ; NET "debug<29>" LOC = "P15" ; NET "debug<30>" LOC = "N13" ; NET "debug<31>" LOC = "N14" ; ## ADC NET "adc<11>" LOC = "B15" ; NET "adc<10>" LOC = "A8" ; NET "adc<9>" LOC = "B8" ; NET "adc<8>" LOC = "C8" ; NET "adc<7>" LOC = "D8" ; NET "adc<6>" LOC = "C9" ; NET "adc<5>" LOC = "A9" ; NET "adc<4>" LOC = "C10" ; NET "adc<3>" LOC = "D9" ; NET "adc<2>" LOC = "A3" ; NET "adc<1>" LOC = "B3" ; NET "adc<0>" LOC = "A4" ; NET "RXSYNC" LOC = "D10" ; ## DAC NET "TXBLANK" LOC = "K1" ; NET "TXSYNC" LOC = "J2" ; NET "dac<0>" LOC = "J1" ; NET "dac<1>" LOC = "H3" ; NET "dac<2>" LOC = "J3" ; NET "dac<3>" LOC = "G2" ; NET "dac<4>" LOC = "H1" ; NET "dac<5>" LOC = "N3" ; NET "dac<6>" LOC = "M4" ; NET "dac<7>" LOC = "R1" ; NET "dac<8>" LOC = "P2" ; NET "dac<9>" LOC = "P1" ; NET "dac<10>" LOC = "M1" ; NET "dac<11>" LOC = "N1" ; NET "dac<12>" LOC = "M3" ; NET "dac<13>" LOC = "L4" ; ## TX DB NET "io_tx<0>" LOC = "K4" ; NET "io_tx<1>" LOC = "L3" ; NET "io_tx<2>" LOC = "L2" ; NET "io_tx<3>" LOC = "F1" ; NET "io_tx<4>" LOC = "F3" ; NET "io_tx<5>" LOC = "G3" ; NET "io_tx<6>" LOC = "E3" ; NET "io_tx<7>" LOC = "E2" ; NET "io_tx<8>" LOC = "E4" ; NET "io_tx<9>" LOC = "F4" ; NET "io_tx<10>" LOC = "D1" ; NET "io_tx<11>" LOC = "E1" ; NET "io_tx<12>" LOC = "D4" ; NET "io_tx<13>" LOC = "D3" ; NET "io_tx<14>" LOC = "C2" ; NET "io_tx<15>" LOC = "C1" ; ## RX DB NET "io_rx<0>" LOC = "D7" ; NET "io_rx<1>" LOC = "C6" ; NET "io_rx<2>" LOC = "A6" ; NET "io_rx<3>" LOC = "B6" ; NET "io_rx<4>" LOC = "E9" ; NET "io_rx<5>" LOC = "A7" ; NET "io_rx<6>" LOC = "C7" ; NET "io_rx<7>" LOC = "B10" ; NET "io_rx<8>" LOC = "A10" ; NET "io_rx<9>" LOC = "C11" ; NET "io_rx<10>" LOC = "A11" ; NET "io_rx<11>" LOC = "D11" ; NET "io_rx<12>" LOC = "B12" ; NET "io_rx<13>" LOC = "A12" ; NET "io_rx<14>" LOC = "A14" ; NET "io_rx<15>" LOC = "A13" ; ## SPI #NET "SEN_AUX" LOC = "C12" ; #NET "SCLK_AUX" LOC = "D12" ; #NET "MISO_AUX" LOC = "J5" ; NET "SCLK_CODEC" LOC = "K3" ; NET "SEN_CODEC" LOC = "D13" ; NET "MOSI_CODEC" LOC = "C13" ; NET "MISO_CODEC" LOC = "G4" ; NET "MISO_RX_DB" LOC = "E6" ; NET "SEN_RX_DB" LOC = "B4" ; NET "MOSI_RX_DB" LOC = "A5" ; NET "SCLK_RX_DB" LOC = "C5" ; NET "MISO_TX_DB" LOC = "J4" ; NET "SEN_TX_DB" LOC = "N2" ; NET "MOSI_TX_DB" LOC = "L1" ; NET "SCLK_TX_DB" LOC = "G1" ; ## Dedicated pins #NET "TMS" LOC = "B2" ; #NET "TDO" LOC = "B16" ; #NET "TDI" LOC = "B1" ; #NET "TCK" LOC = "A15" ; #NET "fpga_cfg_prog_b" LOC = "A2" ; #NET "fpga_cfg_done" LOC = "T15" ; uhd-3.5.5/fpga/usrp2/top/B100/B100.v000066400000000000000000000212601224274632000162740ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// module B100 (input CLK_FPGA_P, input CLK_FPGA_N, // Diff output [2:0] debug_led, output [31:0] debug, output [1:0] debug_clk, // GPIF inout [15:0] GPIF_D, input [3:0] GPIF_CTL, output GPIF_SLOE, output [1:0] GPIF_ADR, output GPIF_SLWR, output GPIF_SLRD, output GPIF_PKTEND, input IFCLK, inout SDA_FPGA, inout SCL_FPGA, // I2C output SCLK_TX_DB, output SEN_TX_DB, output MOSI_TX_DB, input MISO_TX_DB, // DB TX SPI output SCLK_RX_DB, output SEN_RX_DB, output MOSI_RX_DB, input MISO_RX_DB, // DB TX SPI output SCLK_CODEC, output SEN_CODEC, output MOSI_CODEC, input MISO_CODEC, // AD9862 main SPI input cgen_st_status, input cgen_st_ld, input cgen_st_refmon, output cgen_sync_b, output cgen_ref_sel, inout [15:0] io_tx, inout [15:0] io_rx, output [13:0] dac, output TXSYNC, output TXBLANK, input [11:0] adc, input RXSYNC, input PPS_IN, input reset_n, output reset_codec, input ext_reset ); assign reset_codec = 1; // Believed to be active low // ///////////////////////////////////////////////////////////////////////// // Clocking wire clk_fpga, clk_fpga_in, reset; wire gpif_clk = IFCLK; wire gpif_rst; IBUFGDS #(.IOSTANDARD("LVDS_33"), .DIFF_TERM("TRUE")) clk_fpga_pin (.O(clk_fpga_in),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); BUFG clk_fpga_BUFG (.I(clk_fpga_in), .O(clk_fpga)); reset_sync reset_sync(.clk(clk_fpga), .reset_in((~reset_n) | (~ext_reset)), .reset_out(reset)); reset_sync reset_sync_gpif(.clk(gpif_clk), .reset_in((~reset_n) | (~ext_reset)), .reset_out(gpif_rst)); // ///////////////////////////////////////////////////////////////////////// // SPI wire mosi, sclk, miso; assign { SCLK_TX_DB, MOSI_TX_DB } = ~SEN_TX_DB ? {sclk,mosi} : 2'b0; assign { SCLK_RX_DB, MOSI_RX_DB } = ~SEN_RX_DB ? {sclk,mosi} : 2'b0; assign { SCLK_CODEC, MOSI_CODEC } = ~SEN_CODEC ? {sclk,mosi} : 2'b0; assign miso = (~SEN_TX_DB & MISO_TX_DB) | (~SEN_RX_DB & MISO_RX_DB) | (~SEN_CODEC & MISO_CODEC); // ///////////////////////////////////////////////////////////////////////// // TX DAC -- handle the interleaved data bus to DAC, with clock doubling DLL assign TXBLANK = 0; wire [13:0] tx_i, tx_q; genvar i; generate for(i=0;i<14;i=i+1) begin : gen_dacout ODDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset ODDR2_inst (.Q(dac[i]), // 1-bit DDR output data .C0(clk_fpga), // 1-bit clock input .C1(~clk_fpga), // 1-bit clock input .CE(1'b1), // 1-bit clock enable input .D0(tx_i[i]), // 1-bit data input (associated with C0) .D1(tx_q[i]), // 1-bit data input (associated with C1) .R(1'b0), // 1-bit reset input .S(1'b0)); // 1-bit set input end // block: gen_dacout endgenerate ODDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset ODDR2_txsnc (.Q(TXSYNC), // 1-bit DDR output data .C0(clk_fpga), // 1-bit clock input .C1(~clk_fpga), // 1-bit clock input .CE(1'b1), // 1-bit clock enable input .D0(1'b0), // 1-bit data input (associated with C0) .D1(1'b1), // 1-bit data input (associated with C1) .R(1'b0), // 1-bit reset input .S(1'b0)); // 1-bit set input // ///////////////////////////////////////////////////////////////////////// // RX ADC -- handles deinterleaving wire rxsync_0, rxsync_1; reg [11:0] rx_i, rx_q; wire [11:0] rx_a, rx_b; genvar j; generate for(j=0;j<12;j=j+1) begin : gen_adcin IDDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT_Q0(1'b0), // Sets initial state of the Q0 output to 1’b0 or 1’b1 .INIT_Q1(1'b0), // Sets initial state of the Q1 output to 1’b0 or 1’b1 .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset IDDR2_inst (.Q0(rx_a[j]), // 1-bit output captured with C0 clock .Q1(rx_b[j]), // 1-bit output captured with C1 clock .C0(clk_fpga), // 1-bit clock input .C1(~clk_fpga), // 1-bit clock input .CE(1'b1), // 1-bit clock enable input .D(adc[j]), // 1-bit DDR data input .R(1'b0), // 1-bit reset input .S(1'b0)); // 1-bit set input end // block: gen_adcin endgenerate IDDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT_Q0(1'b0), // Sets initial state of the Q0 output to 1’b0 or 1’b1 .INIT_Q1(1'b0), // Sets initial state of the Q1 output to 1’b0 or 1’b1 .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset IDDR2_sync (.Q0(rxsync_0), // 1-bit output captured with C0 clock .Q1(rxsync_1), // 1-bit output captured with C1 clock .C0(clk_fpga), // 1-bit clock input .C1(~clk_fpga), // 1-bit clock input .CE(1'b1), // 1-bit clock enable input .D(RXSYNC), // 1-bit DDR data input .R(1'b0), // 1-bit reset input .S(1'b0)); // 1-bit set input always @(posedge clk_fpga) if(rxsync_0) begin rx_i <= ~rx_b; rx_q <= ~rx_a; end else begin rx_i <= ~rx_a; rx_q <= ~rx_b; end // ///////////////////////////////////////////////////////////////////////// // Main Core wire [35:0] rx_data, tx_data, ctrl_data, resp_data; wire rx_src_rdy, rx_dst_rdy, tx_src_rdy, tx_dst_rdy, resp_src_rdy, resp_dst_rdy, ctrl_src_rdy, ctrl_dst_rdy; wire dsp_rx_run, dsp_tx_run; wire [7:0] sen8; assign {SEN_CODEC,SEN_TX_DB,SEN_RX_DB} = sen8[2:0]; wire [31:0] core_debug; assign debug_led = {dsp_tx_run, dsp_rx_run, cgen_st_ld}; wire cgen_sync; assign { cgen_sync_b, cgen_ref_sel } = {~cgen_sync, 1'b1}; u1plus_core #( `ifdef NUM_RX_DSP .NUM_RX_DSPS(`NUM_RX_DSP), `else .NUM_RX_DSPS(1), `endif .DSP_RX_XTRA_FIFOSIZE(11), .DSP_TX_XTRA_FIFOSIZE(12), .USE_PACKET_PADDER(1) ) core( .clk(clk_fpga), .reset(reset), .debug(core_debug), .debug_clk(debug_clk), .rx_data(rx_data), .rx_src_rdy(rx_src_rdy), .rx_dst_rdy(rx_dst_rdy), .tx_data(tx_data), .tx_src_rdy(tx_src_rdy), .tx_dst_rdy(tx_dst_rdy), .ctrl_data(ctrl_data), .ctrl_src_rdy(ctrl_src_rdy), .ctrl_dst_rdy(ctrl_dst_rdy), .resp_data(resp_data), .resp_src_rdy(resp_src_rdy), .resp_dst_rdy(resp_dst_rdy), .dsp_rx_run(dsp_rx_run), .dsp_tx_run(dsp_tx_run), .clock_sync(cgen_sync), .db_sda(SDA_FPGA), .db_scl(SCL_FPGA), .sclk(sclk), .sen(sen8), .mosi(mosi), .miso(miso), .io_tx(io_tx), .io_rx(io_rx), .tx_i(tx_i), .tx_q(tx_q), .rx_i(rx_i), .rx_q(rx_q), .pps_in(PPS_IN) ); // ///////////////////////////////////////////////////////////////////////// // Interface from host to/from GPIF wire [31:0] gpif_debug; slave_fifo slave_fifo (.gpif_clk(gpif_clk), .gpif_rst(gpif_rst), .gpif_d(GPIF_D), .gpif_ctl(GPIF_CTL), .sloe(GPIF_SLOE), .slwr(GPIF_SLWR), .slrd(GPIF_SLRD), .pktend(GPIF_PKTEND), .fifoadr(GPIF_ADR), .fifo_clk(clk_fpga), .fifo_rst(reset), .rx_data(rx_data), .rx_src_rdy(rx_src_rdy), .rx_dst_rdy(rx_dst_rdy), .tx_data(tx_data), .tx_src_rdy(tx_src_rdy), .tx_dst_rdy(tx_dst_rdy), .ctrl_data(ctrl_data), .ctrl_src_rdy(ctrl_src_rdy), .ctrl_dst_rdy(ctrl_dst_rdy), .resp_data(resp_data), .resp_src_rdy(resp_src_rdy), .resp_dst_rdy(resp_dst_rdy), .debug(gpif_debug)); //assign debug = gpif_debug; assign debug = core_debug; endmodule // B100 uhd-3.5.5/fpga/usrp2/top/B100/Makefile000066400000000000000000000003411224274632000171400ustar00rootroot00000000000000# # Copyright 2011 Ettus Research LLC # all: B100 B100_2RX find -name "*.twr" | xargs grep constraint | grep met clean: rm -rf build* B100: make -f Makefile.$@ bin B100_2RX: make -f Makefile.$@ bin .PHONY: all clean uhd-3.5.5/fpga/usrp2/top/B100/Makefile.B100000066400000000000000000000057151224274632000175530ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE := B100 BUILD_DIR := build-B100/ # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../gpif/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan3A" \ device XC3S1400A \ package ft256 \ speed -4 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ B100.v \ u1plus_core.v \ B100.ucf \ timing.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \ $(GPIF_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "$(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 \ "Unused IOB Pins" "Pull Up" SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/B100/Makefile.B100_2RX000066400000000000000000000057571224274632000202540ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE := B100 BUILD_DIR := build-B100_2RX/ # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../gpif/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan3A" \ device XC3S1400A \ package ft256 \ speed -4 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ B100.v \ u1plus_core.v \ B100.ucf \ timing.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \ $(GPIF_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "NUM_RX_DSP=2 DISABLE_TX_DSP=1 $(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 \ "Unused IOB Pins" "Pull Up" SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/B100/core_compile000077500000000000000000000006621224274632000200740ustar00rootroot00000000000000iverilog -Wall -y. -y ../../control_lib/ -y ../../custom/ -y ../../fifo/ -y ../../gpif/ -y ../../models/ -y ../../sdr_lib/ -y ../../coregen/ -y ../../vrt/ -y ../../opencores/i2c/rtl/verilog/ -y ../../opencores/spi/rtl/verilog/ -y ../../timing/ -y ../../opencores/8b10b/ -I ../../opencores/spi/rtl/verilog/ -I ../../opencores/i2c/rtl/verilog/ -y ../../simple_gemac B100.v 2>&1 | grep -v timescale | grep -v coregen | grep -v models uhd-3.5.5/fpga/usrp2/top/B100/timing.ucf000066400000000000000000000013431224274632000174710ustar00rootroot00000000000000NET "CLK_FPGA_P" TNM_NET = "CLK_FPGA_P"; TIMESPEC "TS_CLK_FPGA_P" = PERIOD "CLK_FPGA_P" 15625 ps HIGH 50 %; NET "IFCLK" TNM_NET = "IFCLK"; TIMESPEC "TS_IFCLK" = PERIOD "IFCLK" 20833 ps HIGH 50 %; #constrain FX2 IO INST "GPIF_D<*>" TNM = gpif_net_in; INST "GPIF_CTL<*>" TNM = gpif_net_in; INST "GPIF_D<*>" TNM = gpif_net_out; INST "GPIF_ADR<*>" TNM = gpif_net_out; INST "GPIF_SLWR" TNM = gpif_net_out; INST "GPIF_SLOE" TNM = gpif_net_out; INST "GPIF_SLRD" TNM = gpif_net_out; INST "GPIF_PKTEND" TNM = gpif_net_out; TIMEGRP "gpif_net_in" OFFSET = IN 5 ns VALID 10 ns BEFORE "IFCLK" RISING; TIMEGRP "gpif_net_out" OFFSET = OUT 7 ns AFTER "IFCLK" RISING; TIMESPEC TS_Pad2Pad = FROM PADS TO PADS 7 ns; NET PPS_IN TIG; NET debug_led* TIG; uhd-3.5.5/fpga/usrp2/top/B100/u1plus_core.v000066400000000000000000000362711224274632000201430ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module u1plus_core #( parameter NUM_RX_DSPS = 2, parameter CTRL_ACK_SID = 20, //needed for reply parameter DSP_TX_FIFOSIZE = 10, //4K MTU parameter DSP_RX_FIFOSIZE = 10, //4K MTU parameter DSP_RX_XTRA_FIFOSIZE = 11, parameter DSP_TX_XTRA_FIFOSIZE = 11, parameter USE_PACKET_PADDER = 0 ) (input clk, input reset, output [31:0] debug, output [1:0] debug_clk, // Host Interface input [35:0] tx_data, input tx_src_rdy, output tx_dst_rdy, output [35:0] rx_data, output rx_src_rdy, input rx_dst_rdy, input [35:0] ctrl_data, input ctrl_src_rdy, output ctrl_dst_rdy, output [35:0] resp_data, output resp_src_rdy, input resp_dst_rdy, output dsp_rx_run, output dsp_tx_run, output clock_sync, inout db_sda, inout db_scl, output sclk, output [7:0] sen, output mosi, input miso, inout [15:0] io_tx, inout [15:0] io_rx, output [13:0] tx_i, output [13:0] tx_q, input [11:0] rx_i, input [11:0] rx_q, input pps_in ); localparam SR_MISC = 0; // 5 localparam SR_USER_REGS = 5; // 2 localparam SR_PADDER = 10; // 2 localparam SR_TX_CTRL = 32; // 6 localparam SR_TX_DSP = 40; // 5 localparam SR_TX_FE = 48; // 5 localparam SR_RX_CTRL0 = 96; // 9 localparam SR_RX_DSP0 = 106; // 7 localparam SR_RX_FE = 114; // 5 localparam SR_RX_CTRL1 = 128; // 9 localparam SR_RX_DSP1 = 138; // 7 localparam SR_TIME64 = 192; // 6 localparam SR_SPI = 208; // 3 localparam SR_I2C = 216; // 1 localparam SR_GPIO = 224; // 5 //compatibility number -> increment when the fpga has been sufficiently altered localparam compat_num = {16'd11, 16'd3}; //major, minor //assign run signals used for ATR logic wire [NUM_RX_DSPS-1:0] run_rx_n; wire run_tx; wire run_rx = |(run_rx_n); assign dsp_rx_run = run_rx; assign dsp_tx_run = run_tx; //shared time core signals wire [63:0] vita_time, vita_time_pps; //shared settings bus signals wire set_stb, set_stb_user; wire [31:0] set_data, set_data_user; wire [7:0] set_addr, set_addr_user; //shared SPI core signals wire [31:0] spi_readback; wire spi_ready; //shared I2C core signals wire [31:0] i2c_readback; wire i2c_ready; //shared GPIO core signals wire [31:0] gpio_readback; /////////////////////////////////////////////////////////////////////////// // Misc Registers - persistent across resets /////////////////////////////////////////////////////////////////////////// wire [31:0] config_word0; setting_reg #(.my_addr(SR_MISC+0), .width(32)) sr_misc_config0 (.clk(clk), .rst(1'b0/*reset*/), .strobe(set_stb), .addr(set_addr), .in(set_data), .out(config_word0)); wire [31:0] config_word1; setting_reg #(.my_addr(SR_MISC+1), .width(32)) sr_misc_config1 (.clk(clk), .rst(1'b0/*reset*/), .strobe(set_stb), .addr(set_addr), .in(set_data), .out(config_word1)); wire clock_sync_inv, clock_sync_enb; setting_reg #(.my_addr(SR_MISC+2), .width(2)) sr_misc_clock_sync (.clk(clk), .rst(reset), .strobe(set_stb), .addr(set_addr), .in(set_data), .out({clock_sync_inv, clock_sync_enb})); /////////////////////////////////////////////////////////////////////////// // Settings Bus and Readback /////////////////////////////////////////////////////////////////////////// user_settings #(.BASE(SR_USER_REGS)) user_settings (.clk(clk),.rst(reset), .set_stb(set_stb), .set_addr(set_addr),.set_data(set_data), .set_addr_user(set_addr_user),.set_data_user(set_data_user), .set_stb_user(set_stb_user) ); wire [35:0] ctrl_out_data, ctrl_int_data; wire ctrl_out_src_rdy, ctrl_out_dst_rdy; wire ctrl_int_src_rdy, ctrl_int_dst_rdy; fifo_cascade #(.WIDTH(36), .SIZE(9)) ctrl_fifo (.clk(clk), .reset(reset), .clear(1'b0), .datain(ctrl_data), .src_rdy_i(ctrl_src_rdy), .dst_rdy_o(ctrl_dst_rdy), .space(), .dataout(ctrl_int_data), .src_rdy_o(ctrl_int_src_rdy), .dst_rdy_i(ctrl_int_dst_rdy), .occupied()); wire [31:0] num_rx_dsps_rb = NUM_RX_DSPS; wire [31:0] sfc_debug; settings_fifo_ctrl #(.PROT_HDR(0), .ACK_SID(CTRL_ACK_SID), .XPORT_HDR(0)) sfc ( .clock(clk), .reset(reset), .clear(1'b0), .vita_time(vita_time), .perfs_ready(spi_ready & i2c_ready), .in_data(ctrl_int_data), .in_valid(ctrl_int_src_rdy), .in_ready(ctrl_int_dst_rdy), .out_data(ctrl_out_data), .out_valid(ctrl_out_src_rdy), .out_ready(ctrl_out_dst_rdy), .strobe(set_stb), .addr(set_addr), .data(set_data), .word00(spi_readback),.word01(compat_num),.word02(i2c_readback),.word03(gpio_readback), .word04(config_word0),.word05(config_word1),.word06(num_rx_dsps_rb),.word07(32'hffff_ffff), .word08(32'hffff_ffff),.word09(32'hffff_ffff),.word10(vita_time[63:32]), .word11(vita_time[31:0]),.word12(32'hffff_ffff),.word13(32'hffff_ffff), .word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0]), .debug(sfc_debug) ); /////////////////////////////////////////////////////////////////////////// // Time Core /////////////////////////////////////////////////////////////////////////// time_64bit #(.BASE(SR_TIME64)) time_64bit (.clk(clk), .rst(reset), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .pps(pps_in), .vita_time(vita_time), .vita_time_pps(vita_time_pps), .exp_time_in(0)); assign clock_sync = (clock_sync_enb)? (pps_in ^ clock_sync_inv) : 1'b0; /////////////////////////////////////////////////////////////////////////// // SPI Core /////////////////////////////////////////////////////////////////////////// simple_spi_core #(.BASE(SR_SPI), .WIDTH(8), .CLK_IDLE(0), .SEN_IDLE(8'hff)) simple_spi_core (.clock(clk), .reset(reset), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .readback(spi_readback), .ready(spi_ready), .sen(sen), .sclk(sclk), .mosi(mosi), .miso(miso)); /////////////////////////////////////////////////////////////////////////// // I2C Core /////////////////////////////////////////////////////////////////////////// wire scl_pad_i, scl_pad_o, scl_pad_oen_o, sda_pad_i, sda_pad_o, sda_pad_oen_o; simple_i2c_core #(.BASE(SR_I2C)) i2c_core (.clock(clk),.reset(reset), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .readback(i2c_readback), .ready(i2c_ready), .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_pad_oen_o), .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_pad_oen_o) ); // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(db_scl), .I(scl_pad_o), .T(scl_pad_oen_o)); IOBUF sda_pin(.O(sda_pad_i), .IO(db_sda), .I(sda_pad_o), .T(sda_pad_oen_o)); /////////////////////////////////////////////////////////////////////////// // GPIO Core /////////////////////////////////////////////////////////////////////////// gpio_atr #(.BASE(SR_GPIO), .WIDTH(32)) gpio_atr(.clk(clk),.reset(reset), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .rx(run_rx), .tx(run_tx), .gpio({io_tx, io_rx}), .gpio_readback(gpio_readback) ); // ///////////////////////////////////////////////////////////////////////// // RX ADC Frontend, does IQ Balance, DC Offset, muxing wire [23:0] rx_fe_i, rx_fe_q; // 24 bits is total overkill here, but it matches u2/u2p rx_frontend #(.BASE(SR_RX_FE)) rx_frontend (.clk(clk),.rst(reset), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .adc_a({rx_i,4'b00}),.adc_ovf_a(0), .adc_b({rx_q,4'b00}),.adc_ovf_b(0), .i_out(rx_fe_i), .q_out(rx_fe_q), .run(run_rx), .debug()); // ///////////////////////////////////////////////////////////////////////// // DSP RX * wire [35:0] rx_int2_data [NUM_RX_DSPS-1:0]; wire rx_int2_src_rdy [NUM_RX_DSPS-1:0]; wire rx_int2_dst_rdy [NUM_RX_DSPS-1:0]; genvar dspno; generate for(dspno = 0; dspno < NUM_RX_DSPS; dspno = dspno + 1) begin:gen_rx_dsps wire [31:0] sample_rx; wire strobe_rx, clear_rx; wire [35:0] vita_rx_data; wire vita_rx_src_rdy, vita_rx_dst_rdy; wire [35:0] int_rx_data; wire int_rx_src_rdy, int_rx_dst_rdy; ddc_chain #(.BASE(SR_RX_DSP0+dspno*32), .DSPNO(dspno)) ddc_chain (.clk(clk), .rst(reset), .clr(clear_rx), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .rx_fe_i(rx_fe_i),.rx_fe_q(rx_fe_q), .sample(sample_rx), .run(run_rx_n[dspno]), .strobe(strobe_rx), .debug() ); vita_rx_chain #(.BASE(SR_RX_CTRL0+dspno*32), .UNIT(dspno), .FIFOSIZE(DSP_RX_FIFOSIZE), .PROT_ENG_FLAGS(0), .DSP_NUMBER(dspno)) vita_rx_chain (.clk(clk),.reset(reset), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .overrun(), .sample(sample_rx), .run(run_rx_n[dspno]), .strobe(strobe_rx), .clear_o(clear_rx), .rx_data_o(vita_rx_data), .rx_dst_rdy_i(vita_rx_dst_rdy), .rx_src_rdy_o(vita_rx_src_rdy), .debug() ); fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_FIFOSIZE+1)) rx_data_fifo (.clk(clk), .reset(reset), .clear(1'b0), .datain(vita_rx_data), .src_rdy_i(vita_rx_src_rdy), .dst_rdy_o(vita_rx_dst_rdy), .space(), .dataout(int_rx_data), .src_rdy_o(int_rx_src_rdy), .dst_rdy_i(int_rx_dst_rdy), .occupied()); if (dspno == 0) begin assign rx_int2_data[dspno] = int_rx_data; assign rx_int2_src_rdy[dspno] = int_rx_src_rdy; assign int_rx_dst_rdy = rx_int2_dst_rdy[dspno]; end else begin fifo36_mux #(.prio(0)) // No priority, fair sharing combine_rx_dsps ( .clk(clk), .reset(reset), .clear(1'b0/*noclear*/), .data0_i(rx_int2_data[dspno-1]), .src0_rdy_i(rx_int2_src_rdy[dspno-1]), .dst0_rdy_o(rx_int2_dst_rdy[dspno-1]), .data1_i(int_rx_data), .src1_rdy_i(int_rx_src_rdy), .dst1_rdy_o(int_rx_dst_rdy), .data_o(rx_int2_data[dspno]), .src_rdy_o(rx_int2_src_rdy[dspno]), .dst_rdy_i(rx_int2_dst_rdy[dspno]) ); end end endgenerate // ///////////////////////////////////////////////////////////////////////// // RX Stream muxing wire [35:0] rx_int3_data; wire rx_int3_src_rdy, rx_int3_dst_rdy; fifo_cascade #(.WIDTH(36), .SIZE(DSP_RX_XTRA_FIFOSIZE)) rx_data_fifo_combined (.clk(clk), .reset(reset), .clear(1'b0), .datain(rx_int2_data[NUM_RX_DSPS-1]), .src_rdy_i(rx_int2_src_rdy[NUM_RX_DSPS-1]), .dst_rdy_o(rx_int2_dst_rdy[NUM_RX_DSPS-1]), .space(), .dataout(rx_int3_data), .src_rdy_o(rx_int3_src_rdy), .dst_rdy_i(rx_int3_dst_rdy), .occupied()); generate if (USE_PACKET_PADDER) begin packet_padder36 #(.BASE(SR_PADDER)) packet_padder_rx_data36( .clk(clk), .reset(reset), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .data_i(rx_int3_data), .src_rdy_i(rx_int3_src_rdy), .dst_rdy_o(rx_int3_dst_rdy), .data_o(rx_data), .src_rdy_o(rx_src_rdy), .dst_rdy_i(rx_dst_rdy), .always_flush(~dsp_rx_run)); end else begin assign rx_data = rx_int3_data; assign rx_src_rdy = rx_int3_src_rdy; assign rx_int3_dst_rdy = rx_dst_rdy; end endgenerate /////////////////////////////////////////////////////////////////////////// // MUX for TX async and resp data /////////////////////////////////////////////////////////////////////////// wire [35:0] tx_err_data, resp_data_int; wire tx_err_src_rdy, resp_src_rdy_int; wire tx_err_dst_rdy, resp_dst_rdy_int; fifo36_mux #(.prio(0)) // No priority, fair sharing combine_async_and_resp ( .clk(clk), .reset(reset), .clear(1'b0/*noclear*/), .data0_i(ctrl_out_data), .src0_rdy_i(ctrl_out_src_rdy), .dst0_rdy_o(ctrl_out_dst_rdy), .data1_i(tx_err_data), .src1_rdy_i(tx_err_src_rdy), .dst1_rdy_o(tx_err_dst_rdy), .data_o(resp_data_int), .src_rdy_o(resp_src_rdy_int), .dst_rdy_i(resp_dst_rdy_int) ); fifo_cascade #(.WIDTH(36), .SIZE(9)) resp_fifo (.clk(clk), .reset(reset), .clear(1'b0), .datain(resp_data_int), .src_rdy_i(resp_src_rdy_int), .dst_rdy_o(resp_dst_rdy_int), .space(), .dataout(resp_data), .src_rdy_o(resp_src_rdy), .dst_rdy_i(resp_dst_rdy), .occupied()); // /////////////////////////////////////////////////////////////////////////////////// // DSP TX wire [23:0] tx_fe_i, tx_fe_q; wire [31:0] sample_tx; wire strobe_tx, clear_tx; `ifdef DISABLE_TX_DSP assign tx_dst_rdy = 1; //null sink assign run_tx = 0; assign tx_i = 0; assign tx_q = 0; `else vita_tx_chain #(.BASE(SR_TX_CTRL), .FIFOSIZE(DSP_TX_FIFOSIZE), .POST_ENGINE_FIFOSIZE(DSP_TX_XTRA_FIFOSIZE), .REPORT_ERROR(1), .DO_FLOW_CONTROL(0), .PROT_ENG_FLAGS(0), .USE_TRANS_HEADER(0), .DSP_NUMBER(0)) vita_tx_chain (.clk(clk), .reset(reset), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .tx_data_i(tx_data), .tx_src_rdy_i(tx_src_rdy), .tx_dst_rdy_o(tx_dst_rdy), .err_data_o(tx_err_data), .err_src_rdy_o(tx_err_src_rdy), .err_dst_rdy_i(tx_err_dst_rdy), .sample(sample_tx), .strobe(strobe_tx), .underrun(), .run(run_tx), .clear_o(clear_tx), .debug()); duc_chain #(.BASE(SR_TX_DSP), .DSPNO(0)) duc_chain (.clk(clk), .rst(reset), .clr(clear_tx), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .tx_fe_i(tx_fe_i),.tx_fe_q(tx_fe_q), .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), .debug() ); tx_frontend #(.BASE(SR_TX_FE), .WIDTH_OUT(14)) tx_frontend (.clk(clk), .rst(reset), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .tx_i(tx_fe_i), .tx_q(tx_fe_q), .run(1'b1), .dac_a(tx_i), .dac_b(tx_q)); `endif // ///////////////////////////////////////////////////////////////////////////////////// // Debug circuitry assign debug_clk = 2'b11; assign debug = 32'hffffffff; endmodule // u1plus_core uhd-3.5.5/fpga/usrp2/top/E1x0/000077500000000000000000000000001224274632000156155ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/E1x0/.gitignore000066400000000000000000000000421224274632000176010ustar00rootroot00000000000000*~ build *.log *.cmd tb_u1e *.lxt uhd-3.5.5/fpga/usrp2/top/E1x0/E1x0.ucf000066400000000000000000000203531224274632000170340ustar00rootroot00000000000000 NET "CLK_FPGA_P" LOC = "Y11" ; NET "CLK_FPGA_N" LOC = "Y10" ; ## GPMC NET "EM_D<15>" LOC = "D13" ; NET "EM_D<14>" LOC = "D15" ; NET "EM_D<13>" LOC = "C16" ; NET "EM_D<12>" LOC = "B20" ; NET "EM_D<11>" LOC = "A19" ; NET "EM_D<10>" LOC = "A17" ; NET "EM_D<9>" LOC = "E15" ; NET "EM_D<8>" LOC = "F15" ; NET "EM_D<7>" LOC = "E16" ; NET "EM_D<6>" LOC = "F16" ; NET "EM_D<5>" LOC = "B17" ; NET "EM_D<4>" LOC = "C17" ; NET "EM_D<3>" LOC = "B19" ; NET "EM_D<2>" LOC = "D19" ; NET "EM_D<1>" LOC = "C19" ; NET "EM_D<0>" LOC = "A20" ; NET "EM_A<10>" LOC = "C14" ; NET "EM_A<9>" LOC = "C10" ; NET "EM_A<8>" LOC = "C5" ; NET "EM_A<7>" LOC = "A18" ; NET "EM_A<6>" LOC = "A15" ; NET "EM_A<5>" LOC = "A12" ; NET "EM_A<4>" LOC = "A10" ; NET "EM_A<3>" LOC = "E7" ; NET "EM_A<2>" LOC = "A7" ; NET "EM_A<1>" LOC = "C15" ; NET "EM_NCS6" LOC = "E17" ; NET "EM_NCS5" LOC = "E10" ; NET "EM_NCS4" LOC = "E6" ; #NET "EM_NCS1" LOC = "D18" ; #NET "EM_NCS0" LOC = "D17" ; NET "EM_CLK" LOC = "F11" ; NET "EM_WAIT0" LOC = "F14" ; NET "EM_NBE<1>" LOC = "D14" ; NET "EM_NBE<0>" LOC = "A13" ; NET "EM_NWE" LOC = "B13" ; NET "EM_NOE" LOC = "A14" ; #NET "EM_NADV_ALE" LOC = "B15" ; #NET "EM_NWP" LOC = "F13" ; ## Overo GPIO NET "overo_gpio0" LOC = "F9" ; # MISC GPIO for debug NET "overo_gpio14" LOC = "C4" ; # MISC GPIO for debug NET "overo_gpio21" LOC = "D5" ; # MISC GPIO for debug NET "overo_gpio22" LOC = "A3" ; # MISC GPIO for debug NET "overo_gpio23" LOC = "B3" ; # MISC GPIO for debug NET "overo_gpio64" LOC = "A4" ; # MISC GPIO for debug NET "overo_gpio65" LOC = "F8" ; # MISC GPIO for debug NET "overo_gpio127" LOC = "C8" ; # Changed name to gpio10 NET "overo_gpio128" LOC = "G8" ; # Changed name to gpio186 NET "overo_gpio144" LOC = "A5" ; # tx_have_space NET "overo_gpio145" LOC = "C7" ; # tx_underrun NET "overo_gpio146" LOC = "A6" ; # rx_have_data NET "overo_gpio147" LOC = "B6" ; # rx_overrun NET "overo_gpio163" LOC = "D7" ; # MISC GPIO for debug NET "overo_gpio170" LOC = "E8" ; # MISC GPIO for debug NET "overo_gpio176" LOC = "B4" ; # MISC GPIO for debug ## Overo UART NET "overo_txd1" LOC = "C6" ; NET "overo_rxd1" LOC = "D6" ; NET "fpga_txd1" LOC = "AB9" ; NET "fpga_rxd1" LOC = "AB8" ; ## FTDI UART to USB converter NET "FPGA_TXD" LOC = "G19" ; NET "FPGA_RXD" LOC = "F20" ; #NET "SYSEN" LOC = "C11" ; ## I2C NET "db_scl" LOC = "F19" ; NET "db_sda" LOC = "F18" ; ## SPI ### DBoard SPI NET "db_sclk_rx" LOC = "D21" ; NET "db_miso_rx" LOC = "D22" ; NET "db_mosi_rx" LOC = "D20" ; NET "db_sen_rx" LOC = "E19" ; NET "db_sclk_tx" LOC = "F21" ; NET "db_miso_tx" LOC = "E20" ; NET "db_mosi_tx" LOC = "G17" ; NET "db_sen_tx" LOC = "G18" ; ### AD9862 SPI and aux SPI Interfaces #NET "aux_sdi_codec" LOC = "G3" ; #NET "aux_sdo_codec" LOC = "F3" ; #NET "aux_sclk_codec" LOC = "C1" ; NET "sen_codec" LOC = "F5" |IOSTANDARD = LVCMOS33; NET "mosi_codec" LOC = "F4" |IOSTANDARD = LVCMOS33; NET "miso_codec" LOC = "H4" ; NET "sclk_codec" LOC = "H3" |IOSTANDARD = LVCMOS33; ### Clock Gen SPI NET "cgen_miso" LOC = "F22" ; NET "cgen_mosi" LOC = "E22" ; NET "cgen_sclk" LOC = "J19" ; NET "cgen_sen_b" LOC = "H20" ; ## Clock gen control NET "cgen_st_status" LOC = "P20" ; NET "cgen_st_ld" LOC = "R17" ; NET "cgen_st_refmon" LOC = "P17" ; NET "cgen_sync_b" LOC = "U18" ; NET "cgen_ref_sel" LOC = "U19" ; ## Debug pins NET "debug_led<3>" LOC = "Y15" ; NET "debug_led<2>" LOC = "K16" ; NET "debug_led<1>" LOC = "J17" ; NET "debug_led<0>" LOC = "H22" ; NET "debug<0>" LOC = "G22" ; NET "debug<1>" LOC = "H17" ; NET "debug<2>" LOC = "H18" ; NET "debug<3>" LOC = "K20" ; NET "debug<4>" LOC = "J20" ; NET "debug<5>" LOC = "K19" ; NET "debug<6>" LOC = "K18" ; NET "debug<7>" LOC = "L22" ; NET "debug<8>" LOC = "K22" ; NET "debug<9>" LOC = "N22" ; NET "debug<10>" LOC = "M22" ; NET "debug<11>" LOC = "N20" ; NET "debug<12>" LOC = "N19" ; NET "debug<13>" LOC = "R22" ; NET "debug<14>" LOC = "P22" ; NET "debug<15>" LOC = "N17" ; NET "debug<16>" LOC = "P16" ; NET "debug<17>" LOC = "U22" ; NET "debug<18>" LOC = "P19" ; NET "debug<19>" LOC = "R18" ; NET "debug<20>" LOC = "U20" ; NET "debug<21>" LOC = "T20" ; NET "debug<22>" LOC = "R19" ; NET "debug<23>" LOC = "R20" ; NET "debug<24>" LOC = "W22" ; NET "debug<25>" LOC = "Y22" ; NET "debug<26>" LOC = "T18" ; NET "debug<27>" LOC = "T17" ; NET "debug<28>" LOC = "W19" ; NET "debug<29>" LOC = "V20" ; NET "debug<30>" LOC = "Y21" ; NET "debug<31>" LOC = "AA22" ; NET "debug_clk<0>" LOC = "N18" ; NET "debug_clk<1>" LOC = "M17" ; NET "debug_pb" LOC = "C22" ; #NET "reset_codec" LOC = "C2" ; NET "RXSYNC" LOC = "F2" ; NET "DB<11>" LOC = "G6" ; NET "DB<10>" LOC = "G5" ; NET "DB<9>" LOC = "E4" ; NET "DB<8>" LOC = "E3" ; NET "DB<7>" LOC = "H6" ; NET "DB<6>" LOC = "H5" ; NET "DB<5>" LOC = "H1" ; NET "DB<4>" LOC = "G1" ; NET "DB<3>" LOC = "K5" ; NET "DB<2>" LOC = "K4" ; NET "DB<1>" LOC = "H2" ; NET "DB<0>" LOC = "L5" ; NET "DA<11>" LOC = "K6" ; NET "DA<10>" LOC = "K3" ; NET "DA<9>" LOC = "K2" ; NET "DA<8>" LOC = "N1" ; NET "DA<7>" LOC = "N5" ; NET "DA<6>" LOC = "N6" ; NET "DA<5>" LOC = "P2" ; NET "DA<4>" LOC = "P1" ; NET "DA<3>" LOC = "R6" ; NET "DA<2>" LOC = "P6" ; NET "DA<1>" LOC = "R1" ; NET "DA<0>" LOC = "R2" ; NET "TX<13>" LOC = "T6" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<12>" LOC = "U1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<11>" LOC = "T1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<10>" LOC = "R5" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<9>" LOC = "V1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<8>" LOC = "U2" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<7>" LOC = "T4" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<6>" LOC = "R3" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<5>" LOC = "W1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<4>" LOC = "Y1" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<3>" LOC = "V3" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<2>" LOC = "V4" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<1>" LOC = "W2" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TX<0>" LOC = "W3" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TXSYNC" LOC = "U5" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "TXBLANK" LOC = "U4" |IOSTANDARD = LVCMOS33 |DRIVE = 12 |SLEW = FAST ; NET "PPS_IN" LOC = "M5" ; NET "io_tx<0>" LOC = "AB20" ; NET "io_tx<1>" LOC = "Y17" ; NET "io_tx<2>" LOC = "Y16" ; NET "io_tx<3>" LOC = "U16" ; NET "io_tx<4>" LOC = "V16" ; NET "io_tx<5>" LOC = "AB19" ; NET "io_tx<6>" LOC = "AA19" ; NET "io_tx<7>" LOC = "U14" ; NET "io_tx<8>" LOC = "U15" ; NET "io_tx<9>" LOC = "AB17" ; NET "io_tx<10>" LOC = "AB18" ; NET "io_tx<11>" LOC = "Y13" ; NET "io_tx<12>" LOC = "W14" ; NET "io_tx<13>" LOC = "U13" ; NET "io_tx<14>" LOC = "AA15" ; NET "io_tx<15>" LOC = "AB14" ; NET "io_rx<0>" LOC = "Y8" ; NET "io_rx<1>" LOC = "Y9" ; NET "io_rx<2>" LOC = "V7" ; NET "io_rx<3>" LOC = "U8" ; NET "io_rx<4>" LOC = "V10" ; NET "io_rx<5>" LOC = "U9" ; NET "io_rx<6>" LOC = "AB7" ; NET "io_rx<7>" LOC = "AA8" ; NET "io_rx<8>" LOC = "W8" ; NET "io_rx<9>" LOC = "V8" ; NET "io_rx<10>" LOC = "AB5" ; NET "io_rx<11>" LOC = "AB6" ; NET "io_rx<12>" LOC = "AB4" ; NET "io_rx<13>" LOC = "AA4" ; NET "io_rx<14>" LOC = "W5" ; NET "io_rx<15>" LOC = "Y4" ; #NET "CLKOUT2_CODEC" LOC = "U12" ; #NET "CLKOUT1_CODEC" LOC = "V12" ; ## FPGA Config Pins #NET "fpga_cfg_prog_b" LOC = "A2" ; #NET "fpga_cfg_done" LOC = "AB21" ; #NET "fpga_cfg_din" LOC = "W17" ; #NET "fpga_cfg_cclk" LOC = "V17" ; #NET "fpga_cfg_init_b" LOC = "W15" ; ## Unused #NET "unnamed_net53" LOC = "B1" ; # TMS #NET "unnamed_net52" LOC = "B22" ; # TDO #NET "unnamed_net51" LOC = "D2" ; # TDI #NET "unnamed_net50" LOC = "A21" ; # TCK #NET "unnamed_net59" LOC = "F7" ; # PUDC_B #NET "unnamed_net58" LOC = "V6" ; # M2 #NET "unnamed_net57" LOC = "AA3" ; # M1 #NET "unnamed_net56" LOC = "AB3" ; # M0 #NET "GND" LOC = "V19" ; # Suspend, unused uhd-3.5.5/fpga/usrp2/top/E1x0/E1x0.v000066400000000000000000000206571224274632000165330ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// module E1x0 (input CLK_FPGA_P, input CLK_FPGA_N, // Diff output [3:0] debug_led, output [31:0] debug, output [1:0] debug_clk, input debug_pb, output FPGA_TXD, input FPGA_RXD, output fpga_txd1, input fpga_rxd1, input overo_txd1, output overo_rxd1, // GPMC input EM_CLK, inout [15:0] EM_D, input [10:1] EM_A, input [1:0] EM_NBE, input EM_WAIT0, input EM_NCS4, input EM_NCS5, input EM_NCS6, input EM_NWE, input EM_NOE, inout db_sda, inout db_scl, // I2C output db_sclk_tx, output db_sen_tx, output db_mosi_tx, input db_miso_tx, // DB TX SPI output db_sclk_rx, output db_sen_rx, output db_mosi_rx, input db_miso_rx, // DB TX SPI output sclk_codec, output sen_codec, output mosi_codec, input miso_codec, // AD9862 main SPI output cgen_sclk, output cgen_sen_b, output cgen_mosi, input cgen_miso, // Clock gen SPI input cgen_st_status, input cgen_st_ld, input cgen_st_refmon, output cgen_sync_b, output cgen_ref_sel, input overo_gpio65, input overo_gpio128, input overo_gpio145, output overo_gpio147, //aux SPI output overo_gpio144, output overo_gpio146, // Fifo controls input overo_gpio0, input overo_gpio14, input overo_gpio21, input overo_gpio22, // Misc GPIO input overo_gpio23, input overo_gpio64, input overo_gpio127, // Misc GPIO input overo_gpio176, input overo_gpio163, input overo_gpio170, // Misc GPIO inout [15:0] io_tx, inout [15:0] io_rx, output [13:0] TX, output TXSYNC, output TXBLANK, input [11:0] DA, input [11:0] DB, input RXSYNC, input PPS_IN ); assign FPGA_TXD = 0; //dont care // ///////////////////////////////////////////////////////////////////////// // Clocking wire clk_fpga; wire reset; reg por_rst; reg [7:0] por_counter = 8'h0; always @(posedge clk_fpga) if (por_counter != 8'h55) begin por_counter <= por_counter + 8'h1; por_rst <= 1'b1; end else por_rst <= 1'b0; wire async_reset; cross_clock_reader #(.WIDTH(1)) read_gpio_reset (.clk(clk_fpga), .rst(por_rst), .in(cgen_sen_b & ~cgen_sclk), .out(async_reset)); IBUFGDS #(.IOSTANDARD("LVDS_33"), .DIFF_TERM("TRUE")) clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); reset_sync reset_sync(.clk(clk_fpga), .reset_in(async_reset), .reset_out(reset)); // ///////////////////////////////////////////////////////////////////////// // UART level conversion assign fpga_txd1 = overo_txd1; assign overo_rxd1 = fpga_rxd1; // SPI wire mosi, sclk, miso; assign { db_sclk_tx, db_mosi_tx } = ~db_sen_tx ? {sclk,mosi} : 2'b0; assign { db_sclk_rx, db_mosi_rx } = ~db_sen_rx ? {sclk,mosi} : 2'b0; assign { sclk_codec, mosi_codec } = ~sen_codec ? {sclk,mosi} : 2'b0; //assign { cgen_sclk, cgen_mosi } = ~cgen_sen_b ? {sclk,mosi} : 2'b0; //replaced by aux spi assign miso = (~db_sen_tx & db_miso_tx) | (~db_sen_rx & db_miso_rx) | (~sen_codec & miso_codec) | (~cgen_sen_b & cgen_miso); //assign the aux spi to the cgen (bypasses control fifo) assign cgen_sclk = overo_gpio65; assign cgen_sen_b = overo_gpio128; assign cgen_mosi = overo_gpio145; wire has_resp; //re-purpose gpio for interrupt when we are not using aux spi assign overo_gpio147 = (cgen_sen_b == 1'b0)? cgen_miso : has_resp; wire _cgen_sen_b; //assign cgen_sen_b = _cgen_sen_b; //replaced by aux spi // ///////////////////////////////////////////////////////////////////////// // TX DAC -- handle the interleaved data bus to DAC, with clock doubling DLL assign TXBLANK = 0; wire [13:0] tx_i, tx_q; reg[13:0] delay_q; always @(posedge clk_fpga) delay_q <= tx_q; genvar i; generate for(i=0;i<14;i=i+1) begin : gen_dacout ODDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset ODDR2_inst (.Q(TX[i]), // 1-bit DDR output data .C0(clk_fpga), // 1-bit clock input .C1(~clk_fpga), // 1-bit clock input .CE(1'b1), // 1-bit clock enable input .D0(tx_i[i]), // 1-bit data input (associated with C0) .D1(delay_q[i]), // 1-bit data input (associated with C1) .R(1'b0), // 1-bit reset input .S(1'b0)); // 1-bit set input end // block: gen_dacout endgenerate ODDR2 #(.DDR_ALIGNMENT("NONE"), // Sets output alignment to "NONE", "C0" or "C1" .INIT(1'b0), // Sets initial state of the Q output to 1'b0 or 1'b1 .SRTYPE("SYNC")) // Specifies "SYNC" or "ASYNC" set/reset ODDR2_txsnc (.Q(TXSYNC), // 1-bit DDR output data .C0(clk_fpga), // 1-bit clock input .C1(~clk_fpga), // 1-bit clock input .CE(1'b1), // 1-bit clock enable input .D0(1'b0), // 1-bit data input (associated with C0) .D1(1'b1), // 1-bit data input (associated with C1) .R(1'b0), // 1-bit reset input .S(1'b0)); // 1-bit set input // ///////////////////////////////////////////////////////////////////////// // RX ADC -- handles inversion reg [11:0] rx_i, rx_q; always @(posedge clk_fpga) begin rx_i <= ~DA; rx_q <= ~DB; end // ///////////////////////////////////////////////////////////////////////// // Main Core wire [35:0] rx_data, tx_data, ctrl_data, resp_data; wire rx_src_rdy, rx_dst_rdy, tx_src_rdy, tx_dst_rdy, resp_src_rdy, resp_dst_rdy, ctrl_src_rdy, ctrl_dst_rdy; wire dsp_rx_run, dsp_tx_run; wire [7:0] sen8; assign {_cgen_sen_b,sen_codec,db_sen_tx,db_sen_rx} = sen8[3:0]; wire [31:0] core_debug; assign debug_led = ~{PPS_IN, dsp_tx_run, dsp_rx_run, cgen_st_ld}; wire cgen_sync; assign { cgen_sync_b, cgen_ref_sel } = {~cgen_sync, 1'b1}; u1plus_core #( .NUM_RX_DSPS(2), .DSP_RX_XTRA_FIFOSIZE(10), .DSP_TX_XTRA_FIFOSIZE(10), .USE_PACKET_PADDER(0) ) core( .clk(clk_fpga), .reset(reset), .debug(core_debug), .debug_clk(debug_clk), .rx_data(rx_data), .rx_src_rdy(rx_src_rdy), .rx_dst_rdy(rx_dst_rdy), .tx_data(tx_data), .tx_src_rdy(tx_src_rdy), .tx_dst_rdy(tx_dst_rdy), .ctrl_data(ctrl_data), .ctrl_src_rdy(ctrl_src_rdy), .ctrl_dst_rdy(ctrl_dst_rdy), .resp_data(resp_data), .resp_src_rdy(resp_src_rdy), .resp_dst_rdy(resp_dst_rdy), .dsp_rx_run(dsp_rx_run), .dsp_tx_run(dsp_tx_run), .clock_sync(cgen_sync), .db_sda(db_sda), .db_scl(db_scl), .sclk(sclk), .sen(sen8), .mosi(mosi), .miso(miso), .io_tx(io_tx), .io_rx(io_rx), .tx_i(tx_i), .tx_q(tx_q), .rx_i(rx_i), .rx_q(rx_q), .pps_in(PPS_IN) ); // ///////////////////////////////////////////////////////////////////////// // Interface between GPMC/host wire [31:0] gpmc_debug; gpmc #(.TXFIFOSIZE(13), .RXFIFOSIZE(13)) gpmc (.arst(async_reset), .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS6(EM_NCS6), .EM_NWE(EM_NWE), .EM_NOE(EM_NOE), .rx_have_data(overo_gpio146), .tx_have_space(overo_gpio144), .resp_have_data(has_resp), .fifo_clk(clk_fpga), .fifo_rst(reset), .rx_data(rx_data), .rx_src_rdy(rx_src_rdy), .rx_dst_rdy(rx_dst_rdy), .tx_data(tx_data), .tx_src_rdy(tx_src_rdy), .tx_dst_rdy(tx_dst_rdy), .ctrl_data(ctrl_data), .ctrl_src_rdy(ctrl_src_rdy), .ctrl_dst_rdy(ctrl_dst_rdy), .resp_data(resp_data), .resp_src_rdy(resp_src_rdy), .resp_dst_rdy(resp_dst_rdy), .debug(gpmc_debug)); //assign debug = gpmc_debug; assign debug = core_debug; endmodule // E1x0 uhd-3.5.5/fpga/usrp2/top/E1x0/Makefile000066400000000000000000000003311224274632000172520ustar00rootroot00000000000000# # Copyright 2011 Ettus Research LLC # all: E100 E110 find -name "*.twr" | xargs grep constraint | grep met clean: rm -rf build* E100: make -f Makefile.$@ bin E110: make -f Makefile.$@ bin .PHONY: all clean uhd-3.5.5/fpga/usrp2/top/E1x0/Makefile.E100000066400000000000000000000057511224274632000176710ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = E1x0 BUILD_DIR = $(abspath build$(ISE)-E100) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../gpmc/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan-3A DSP" \ device xc3sd1800a \ package cs484 \ speed -4 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ ../B100/u1plus_core.v \ E1x0.v \ E1x0.ucf \ timing.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \ $(GPMC_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "$(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 \ "Unused IOB Pins" "Pull Up" SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/E1x0/Makefile.E110000066400000000000000000000057511224274632000176720ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = E1x0 BUILD_DIR = $(abspath build$(ISE)-E110) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../gpmc/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan-3A DSP" \ device xc3sd3400a \ package cs484 \ speed -4 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ ../B100/u1plus_core.v \ E1x0.v \ E1x0.ucf \ timing.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) \ $(GPMC_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "$(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 \ "Unused IOB Pins" "Pull Up" SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/E1x0/README000066400000000000000000000000441224274632000164730ustar00rootroot00000000000000 make clean make sim ./tb_u1e -lxt2 uhd-3.5.5/fpga/usrp2/top/E1x0/cmdfile000066400000000000000000000005561224274632000171510ustar00rootroot00000000000000 # My stuff -y . -y ../../control_lib -y ../../control_lib/newfifo -y ../../sdr_lib -y ../../timing -y ../../coregen -y ../../gpmc # Models -y ../../models -y /opt/Xilinx/10.1/ISE/verilog/src/unisims # Open Cores -y ../../opencores/spi/rtl/verilog +incdir+../../opencores/spi/rtl/verilog -y ../../opencores/i2c/rtl/verilog +incdir+../../opencores/i2c/rtl/verilog uhd-3.5.5/fpga/usrp2/top/E1x0/core_compile000077500000000000000000000007071224274632000202070ustar00rootroot00000000000000iverilog -Wall -y. -y ../../control_lib/ -y ../../custom/ -y ../../fifo/ -y ../../gpmc/ -y ../../models/ -y ../../sdr_lib/ -y ../../coregen/ -y ../../vrt/ -y ../../opencores/i2c/rtl/verilog/ -y ../../opencores/spi/rtl/verilog/ -y ../../timing/ -y ../../opencores/8b10b/ -I ../../opencores/spi/rtl/verilog/ -I ../../opencores/i2c/rtl/verilog/ -y ../B100 -y $XILINX/verilog/src/unisims E1x0.v 2>&1 | grep -v timescale | grep -v coregen | grep -v models uhd-3.5.5/fpga/usrp2/top/E1x0/make.sim000066400000000000000000000001661224274632000172470ustar00rootroot00000000000000all: sim sim: iverilog -Wimplicit -Wportbind -c cmdfile tb_u1e.v -o tb_u1e clean: rm -f tb_u1e *.vcd *.lxt a.out uhd-3.5.5/fpga/usrp2/top/E1x0/tb_u1e.v000066400000000000000000000034741224274632000171730ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ps / 1ps ////////////////////////////////////////////////////////////////////////////////// module tb_u1e(); wire [2:0] debug_led; wire [31:0] debug; wire [1:0] debug_clk; xlnx_glbl glbl (.GSR(),.GTS()); initial begin $dumpfile("tb_u1e.lxt"); $dumpvars(0,tb_u1e); end // GPMC wire EM_CLK, EM_WAIT0, EM_NCS4, EM_NCS6, EM_NWE, EM_NOE; wire [15:0] EM_D; wire [10:1] EM_A; wire [1:0] EM_NBE; reg clk_fpga = 0, rst_fpga = 1; always #15625 clk_fpga = ~clk_fpga; initial #200000 @(posedge clk_fpga) rst_fpga <= 0; u1e_core u1e_core(.clk_fpga(clk_fpga), .rst_fpga(rst_fpga), .debug_led(debug_led), .debug(debug), .debug_clk(debug_clk), .EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS6(EM_NCS6), .EM_NWE(EM_NWE), .EM_NOE(EM_NOE) ); gpmc_model_async gpmc_model_async (.EM_CLK(EM_CLK), .EM_D(EM_D), .EM_A(EM_A), .EM_NBE(EM_NBE), .EM_WAIT0(EM_WAIT0), .EM_NCS4(EM_NCS4), .EM_NCS6(EM_NCS6), .EM_NWE(EM_NWE), .EM_NOE(EM_NOE) ); endmodule // tb_u1e uhd-3.5.5/fpga/usrp2/top/E1x0/timing.ucf000066400000000000000000000014331224274632000176040ustar00rootroot00000000000000 NET "CLK_FPGA_P" TNM_NET = "CLK_FPGA_P"; TIMESPEC "TS_clk_fpga_p" = PERIOD "CLK_FPGA_P" 15625 ps HIGH 50 %; NET "EM_CLK" TNM_NET = "EM_CLK"; TIMESPEC "TS_em_clk" = PERIOD "EM_CLK" 18867 ps HIGH 50 %; #constrain GPMC IO INST "EM_D<*>" TNM = gpmc_net_out; INST "EM_D<*>" TNM = gpmc_net; INST "EM_A<*>" TNM = gpmc_net; INST "EM_NCS4" TNM = gpmc_net; INST "EM_NCS6" TNM = gpmc_net; INST "EM_NWE" TNM = gpmc_net; INST "EM_NOE" TNM = gpmc_net; TIMEGRP "gpmc_net" OFFSET = IN 6 ns VALID 10 ns BEFORE "EM_CLK" FALLING; #TIMEGRP "gpmc_net_out" OFFSET = OUT 13 ns AFTER "EM_CLK" RISING; //2 clock cyc per read #constrain interrupt lines NET "overo_gpio144" MAXDELAY = 5.5 ns; #have space NET "overo_gpio146" MAXDELAY = 5.5 ns; #have data NET "overo_gpio147" MAXDELAY = 5.5 ns; #have msg/aux spi miso uhd-3.5.5/fpga/usrp2/top/Makefile.common000066400000000000000000000031441224274632000200310ustar00rootroot00000000000000# # Copyright 2008-2011 Ettus Research LLC # ################################################## # Constants ################################################## ISE_VER = $(shell xtclsh -h | head -n1 | cut -f2 -d" " | cut -f1 -d.) ifeq ($(ISE_VER),10) ISE_EXT = ise else ISE_EXT = xise endif BASE_DIR = $(abspath ..) ISE_HELPER = xtclsh $(BASE_DIR)/tcl/ise_helper.tcl SANITY_CHECKER = python $(BASE_DIR)/python/check_inout.py TIMING_CHECKER = python $(BASE_DIR)/python/check_timing.py ISE_FILE = $(BUILD_DIR)/$(TOP_MODULE).$(ISE_EXT) BIN_FILE = $(BUILD_DIR)/$(TOP_MODULE).bin BIT_FILE = $(BUILD_DIR)/$(TOP_MODULE).bit MCS_FILE = $(BUILD_DIR)/$(TOP_MODULE).mcs TWR_FILE = $(BUILD_DIR)/$(TOP_MODULE).twr ################################################## # Global Targets ################################################## all: bin proj: $(ISE_FILE) check: $(ISE_FILE) $(SANITY_CHECKER) $(TOP_MODULE).v $(TOP_MODULE).ucf $(ISE_HELPER) "Check Syntax" synth: $(ISE_FILE) $(ISE_HELPER) "Synthesize - XST" bin: check $(BIN_FILE) $(TIMING_CHECKER) $(TWR_FILE) mcs: $(MCS_FILE) clean: $(RM) -r $(BUILD_DIR) .PHONY: all proj check synth bin mcs clean ################################################## # Dependency Targets ################################################## .SECONDEXPANSION: $(ISE_FILE): $$(SOURCES) $$(MAKEFILE_LIST) @echo $@ $(ISE_HELPER) "" $(BIN_FILE): $(ISE_FILE) $$(SOURCES) $$(MAKEFILE_LIST) @echo $@ $(ISE_HELPER) "Generate Programming File" 2>&1 | tee $(BUILD_DIR)/build.log touch $@ $(MCS_FILE): $(BIN_FILE) promgen -w -spi -p mcs -o $(MCS_FILE) -s 4096 -u 0 $(BIT_FILE) .EXPORT_ALL_VARIABLES: uhd-3.5.5/fpga/usrp2/top/N2x0/000077500000000000000000000000001224274632000156275ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/N2x0/.gitignore000066400000000000000000000000071224274632000176140ustar00rootroot00000000000000build* uhd-3.5.5/fpga/usrp2/top/N2x0/Makefile000066400000000000000000000004631224274632000172720ustar00rootroot00000000000000# # Copyright 2011 Ettus Research LLC # all: N200R3 N210R3 N200R4 N210R4 find -name "*.twr" | xargs grep constraint | grep met clean: rm -rf build* N200R3: make -f Makefile.$@ bin N210R3: make -f Makefile.$@ bin N200R4: make -f Makefile.$@ bin N210R4: make -f Makefile.$@ bin .PHONY: all clean uhd-3.5.5/fpga/usrp2/top/N2x0/Makefile.N200R3000066400000000000000000000056671224274632000201300ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = u2plus BUILD_DIR = $(abspath build$(ISE)-N200R3) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extramfifo/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan-3A DSP" \ device xc3sd1800a \ package fg676 \ speed -5 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ u2plus_core.v \ u2plus.v \ u2plus.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "$(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/N2x0/Makefile.N200R4000066400000000000000000000057221224274632000201210ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = u2plus BUILD_DIR = $(abspath build$(ISE)-N200R4) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extramfifo/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan-3A DSP" \ device xc3sd1800a \ package fg676 \ speed -5 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ capture_ddrlvds.v \ u2plus_core.v \ u2plus.v \ u2plus.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "LVDS=1 $(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/N2x0/Makefile.N210R3000066400000000000000000000056671224274632000201310ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = u2plus BUILD_DIR = $(abspath build$(ISE)-N210R3) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extramfifo/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan-3A DSP" \ device xc3sd3400a \ package fg676 \ speed -5 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ u2plus_core.v \ u2plus.v \ u2plus.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "$(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/N2x0/Makefile.N210R4000066400000000000000000000057221224274632000201220ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = u2plus BUILD_DIR = $(abspath build$(ISE)-N210R4) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extramfifo/Makefile.srcs ################################################## # Project Properties ################################################## export PROJECT_PROPERTIES := \ family "Spartan-3A DSP" \ device xc3sd3400a \ package fg676 \ speed -5 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ capture_ddrlvds.v \ u2plus_core.v \ u2plus.v \ u2plus.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "LVDS=1 $(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/N2x0/bootloader.rmi000066400000000000000000001540001224274632000204720ustar00rootroot00000000000000defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_dbaa0400_3a0b0b80_80e7e80c_82700b0b_0b0b0b0b; defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_800c0400_880c840c_80dbf42d_88080b0b_80088408; defparam bootram.RAM0.INIT_02=256'h00000000_00000000_04000000_ffff0652_832b2a83_81058205_72830609_71fd0608; defparam bootram.RAM0.INIT_03=256'h83a70400_0b0b0b0b_7383ffff_2b2b0906_05820583_83060981_83ffff73_71fd0608; defparam bootram.RAM0.INIT_04=256'h00000000_00000000_53510400_070a8106_73097306_09060906_72057373_72098105; defparam bootram.RAM0.INIT_05=256'h00000000_00000000_00000000_00000000_00000000_51040000_732e0753_72722473; defparam bootram.RAM0.INIT_06=256'h00000000_53510400_81065151_0a31050a_0a720a10_30720a10_71068106_71737109; defparam bootram.RAM0.INIT_07=256'h00000000_00000000_00000000_00000000_00000000_51040000_732e0753_72722673; defparam bootram.RAM0.INIT_08=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM0.INIT_09=256'h00000000_00000000_00000000_00000000_00000000_00000000_c4040000_0b0b0b88; defparam bootram.RAM0.INIT_0A=256'h00000000_00000000_00000000_00000000_00000000_00000000_0a535104_720a722b; defparam bootram.RAM0.INIT_0B=256'h00000000_00000000_00000000_00000000_05040000_0b0b88a7_0981050b_72729f06; defparam bootram.RAM0.INIT_0C=256'h00000000_00000000_04000000_06075351_8106ff05_0974090a_739f062a_72722aff; defparam bootram.RAM0.INIT_0D=256'h00000000_0c515104_0772fc06_832b0b2b_81058205_73830609_020d0406_71715351; defparam bootram.RAM0.INIT_0E=256'h00000000_00000000_00000000_51040000_0a810653_81050906_72050970_72098105; defparam bootram.RAM0.INIT_0F=256'h00000000_00000000_00000000_53510400_0a098106_81050906_72050970_72098105; defparam bootram.RAM0.INIT_10=256'h00000000_00000000_00000000_00000000_00000000_00000000_52040000_71098105; defparam bootram.RAM0.INIT_11=256'h00000000_00000000_00000000_00000000_00000000_04000000_05055351_72720981; defparam bootram.RAM0.INIT_12=256'h00000000_00000000_00000000_00000000_00000000_07535104_73730906_72097206; defparam bootram.RAM0.INIT_13=256'h00000000_00000000_04000000_81ff0652_1010102a_81058305_72830609_71fc0608; defparam bootram.RAM0.INIT_14=256'h00000000_00000000_88aa0400_060b0b0b_10100508_d4738306_0b0b80e7_71fc0608; defparam bootram.RAM0.INIT_15=256'h00000000_0c510400_0c840c80_80085688_cb2d5050_0b0b80d2_88087575_80088408; defparam bootram.RAM0.INIT_16=256'h00000000_0c510400_0c840c80_80085688_fd2d5050_0b0b80d3_88087575_80088408; defparam bootram.RAM0.INIT_17=256'h04000000_07515151_05ff0506_73097274_70547106_8106ff05_0509060a_72097081; defparam bootram.RAM0.INIT_18=256'h51040000_06075151_7405ff05_06730972_05705471_098106ff_0509060a_72097081; defparam bootram.RAM0.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_05ff0504; defparam bootram.RAM0.INIT_1A=256'h00000000_00000000_00000000_00000000_00000000_51040000_80e7e40c_810b0b0b; defparam bootram.RAM0.INIT_1B=256'h00000000_00000000_00000000_00000000_00000000_00000000_04000000_71810552; defparam bootram.RAM0.INIT_1C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM0.INIT_1D=256'h00000000_00000000_00000000_00000000_00000000_04000000_10100552_02840572; defparam bootram.RAM0.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM0.INIT_1F=256'h00000000_00000000_00000000_00000000_00000000_020d0400_05715351_717105ff; defparam bootram.RAM0.INIT_20=256'h10101010_10101010_10101010_10101010_10101010_10101010_d3f13f04_82813f80; defparam bootram.RAM0.INIT_21=256'hfc060c51_102b0772_83051010_06098105_ff067383_51047381_10101053_10101010; defparam bootram.RAM0.INIT_22=256'h51535104_72ed3851_0a100a53_71105272_09720605_8106ff05_72728072_51043c04; defparam bootram.RAM0.INIT_23=256'h800b80e8_b40c82a0_0b0b80e8_8380800b_822ebd38_80e7e808_802ea438_80e7e408; defparam bootram.RAM0.INIT_24=256'h0b80e8b8_80808280_e8b40cf8_0b0b0b80_808080a4_bc0c04f8_800b80e8_b80c8290; defparam bootram.RAM0.INIT_25=256'h940b80e8_80c0a880_80e8b40c_8c0b0b0b_80c0a880_e8bc0c04_84800b80_0cf88080; defparam bootram.RAM0.INIT_26=256'h70085252_80e7f008_5170a738_80e8c033_04ff3d0d_80e8bc0c_80dca40b_b80c0b0b; defparam bootram.RAM0.INIT_27=256'hc034833d_810b80e8_5270ee38_08700852_2d80e7f0_e7f00c70_38841280_70802e94; defparam bootram.RAM0.INIT_28=256'h38823d0d_09810685_800b802e_0b0b0b0b_802e8e38_80e8b008_3d0d0b0b_0d040480; defparam bootram.RAM0.INIT_29=256'h389d3d22_5b7a80c4_0da13d08_0404e63d_3f823d0d_0b0bf5d4_e8b0510b_040b0b80; defparam bootram.RAM0.INIT_2A=256'h862e8c38_39798380_8e3882fb_8380842e_248b3879_79838085_852eac38_5a798380; defparam bootram.RAM0.INIT_2B=256'h0c82d439_7a80e8c4_81e4d00c_0c86397a_0b81e2cc_0c8e3981_0b81e18c_82f13981; defparam bootram.RAM0.INIT_2C=256'h82b53979_842e9f38_38798380_8085248b_a7387983_8380852e_225b4079_800ba03d; defparam bootram.RAM0.INIT_2D=256'h4288539d_83409a3d_81408339_82408739_3882a439_80872e8c_8b387983_8380862e; defparam bootram.RAM0.INIT_2E=256'h9d3df405_963d7053_80cbe43f_3d526251_4388539d_f23f983d_615180cb_3d880552; defparam bootram.RAM0.INIT_2F=256'h3f800808_68458cde_22993d23_08498e1b_fb38881b_3d082780_3f8f0ba3_5241acb8; defparam bootram.RAM0.INIT_30=256'h9c3de405_08456052_cf3f8008_2e88388c_5b5b7a7a_06657b06_8008087a_5a8ccd3f; defparam bootram.RAM0.INIT_31=256'hff5b7a44_51a0da3f_9c3de405_81068b38_797b2e09_065a805b_800881ff_51abf93f; defparam bootram.RAM0.INIT_32=256'h887c26ed_34811c5c_5b79337b_3d7d055b_5c7b1d9e_0b833d5e_e0055480_84559c3d; defparam bootram.RAM0.INIT_33=256'h621d5b5b_5e5c7b1d_800b883d_615b5f5f_08028405_8bdc3f80_519ff53f_389f3d22; defparam bootram.RAM0.INIT_34=256'h811c5c88_79337b34_631d5b5b_5e5c7b1d_800b901f_7c26ef38_811c5c88_79337b34; defparam bootram.RAM0.INIT_35=256'h805c7b1e_7c26ef38_811c5c86_79337b34_7f1d5b5b_5e5c7b1d_800b881f_7c26ef38; defparam bootram.RAM0.INIT_36=256'h84120859_3d0d686a_3d0d04ee_9af13f9c_7c26ef38_811c5c86_79337b34_611d5b5b; defparam bootram.RAM0.INIT_37=256'h95e93f80_80dca851_75538c52_802e8c38_2e943875_0856758c_279c3877_5a588379; defparam bootram.RAM0.INIT_38=256'hff9f1756_8818085d_8c5ba05c_d63fa057_dcf85195_53a45280_268e3878_e15778a3; defparam bootram.RAM0.INIT_39=256'heb399518_08085e81_8a9a3f80_0480c15c_05567508_2980dee8_81387584_75922682; defparam bootram.RAM0.INIT_3A=256'h97193357_0852800b_08538c18_33549018_76559618_83388457_7580f22e_33568257; defparam bootram.RAM0.INIT_3B=256'h3dea0553_33705495_b3398d18_80d35c81_3f80085f_76519791_83388157_5775772e; defparam bootram.RAM0.INIT_3C=256'h3f80c85c_52568ecc_538c1933_70548e19_398d1833_80c95c94_568dbf3f_8c193352; defparam bootram.RAM0.INIT_3D=256'h058c1908_2980dfb4_c2387584_75852680_33ff0556_ff399418_b5053480_75028405; defparam bootram.RAM0.INIT_3E=256'h39768429_2277239b_a2399218_1808770c_5fa93990_ae397622_0476085f_58567508; defparam bootram.RAM0.INIT_3F=256'h785e80cc_d25cad39_710c5680_05901908_2980e8c4_8e397684_70084056_80e8c405; defparam bootram.RAM1.INIT_00=256'h81185888_75337734_79055757_7719963d_833d5a58_0554800b_55943ddc_5c8c1808; defparam bootram.RAM1.INIT_01=256'h57753377_3d790557_58771996_0b833d5a_dc055480_a455943d_a439a05c_7826ed38; defparam bootram.RAM1.INIT_02=256'hc4525393_705380dd_fe3d0d74_943d0d04_519c8d3f_38838080_887826ed_34811858; defparam bootram.RAM1.INIT_03=256'h88b33f72_a0527251_a33f8d39_90b83f9d_c43f8151_52a05188_2e9238a0_863f7280; defparam bootram.RAM1.INIT_04=256'h805192c7_8a5280de_5189a43f_3f80dde4_973fa5de_fa3d0d82_843d0d04_5190a73f; defparam bootram.RAM1.INIT_05=256'h90fc3f88_3f800851_e23f878e_abe53f87_80e8e00c_be3f820b_dea05192_3f8c5280; defparam bootram.RAM1.INIT_06=256'h95b83f86_52800851_86f03f73_3f800854_b53f8780_91963f88_3f800851_c13f878c; defparam bootram.RAM1.INIT_07=256'h83808451_3f8ab252_805195fe_d7528380_95c23f8d_518f873f_85528008_ef3f8380; defparam bootram.RAM1.INIT_08=256'h875195d6_b2528380_95e03f8a_83808551_3f8ab252_865195ea_b2528380_95f43f8a; defparam bootram.RAM1.INIT_09=256'h8e3faea0_90d451ac_518ef33f_a7bb3f80_83809251_5195cb3f_52838082_3f80c3cf; defparam bootram.RAM1.INIT_0A=256'h82fdee2e_22555573_80088e05_80c93876_8008802e_3f800856_05518eea_3f883dfc; defparam bootram.RAM1.INIT_0B=256'h90e93f94_80decc51_80089a38_80c6f03f_08900551_dec45280_38845380_098106ad; defparam bootram.RAM1.INIT_0C=256'h8e3f8ce1_8def3fa7_519c863f_39745275_85e03f88_f93f7351_8fda3f86_16705254; defparam bootram.RAM1.INIT_0D=256'h51868f3f_3f9f5280_963f88e6_87ea3f8c_3f82b73f_c23f92b1_fe3d0d86_3fff9e39; defparam bootram.RAM1.INIT_0E=256'h885185d1_c83f8852_82ac518b_5185de3f_3f845284_ac518bd5_85eb3f82_9f528051; defparam bootram.RAM1.INIT_0F=256'h3f80e451_805185b5_82539f52_518bae3f_c43f82ac_52905185_8bbb3f90_3f82ac51; defparam bootram.RAM1.INIT_10=256'h85b03f9f_9f529e51_8025df38_ff135372_518b923f_a83f80e4_529c5185_8b9f3f9f; defparam bootram.RAM1.INIT_11=256'h8b2a8106_808c0870_803d0d82_843d0d04_810b800c_81e0840c_8c3f890b_52815185; defparam bootram.RAM1.INIT_12=256'h57585957_82055a57_30708025_a7053370_7f028c05_3d0d7a7d_3d0d04f9_800c5182; defparam bootram.RAM1.INIT_13=256'h51538054_30709f2a_388a5573_88557383_832e8838_88055575_38728025_75822e93; defparam bootram.RAM1.INIT_14=256'h54548054_842b0751_fe057072_05777131_76812cff_802e9738_38725472_8177259e; defparam bootram.RAM1.INIT_15=256'h51b0b43f_73528118_51b0bc3f_ff065277_c63f7281_527b51b0_81805474_86397353; defparam bootram.RAM1.INIT_16=256'h527551fe_54bd5378_815580ca_9f053356_fb3d0d02_893d0d04_51b0ac3f_815280da; defparam bootram.RAM1.INIT_17=256'h81ff0653_bb3f8008_51d63ffe_3f815281_c551b083_0d815280_0d04fe3d_e63f873d; defparam bootram.RAM1.INIT_18=256'h81705654_787a5757_04fa3d0d_53843d0d_81e0800c_08709007_3881e080_72802ef3; defparam bootram.RAM1.INIT_19=256'h38805581_81ff2e83_71335271_83388054_5270802e_17703352_279e3872_80537276; defparam bootram.RAM1.INIT_1A=256'h33557481_0d80e8e4_0d04fc3d_800c883d_38815170_70802e83_74740751_1353df39; defparam bootram.RAM1.INIT_1B=256'h74802e95_81ff0655_9e3f8008_80d051b0_e8538252_865480e8_80e8e434_e138810b; defparam bootram.RAM1.INIT_1C=256'he8e85180_dfcc5280_38865380_74802e8f_81ff0655_8c3f8008_e8e851ff_38865280; defparam bootram.RAM1.INIT_1D=256'h845280e8_802e9538_ff065574_3f800881_d051afe3_538c5280_5480e8f0_c0993f84; defparam bootram.RAM1.INIT_1E=256'hf453b852_845480e8_80e8f00c_80dfd408_802e8938_ff065574_3f800881_f051fed1; defparam bootram.RAM1.INIT_1F=256'h81ff0655_9c3f8008_e8f451fe_38845280_74802e95_81ff0655_ae3f8008_80d051af; defparam bootram.RAM1.INIT_20=256'h0881ff06_aef93f80_5280d051_e8f85388_0c845480_0880e8f4_3880dfd8_74802e89; defparam bootram.RAM1.INIT_21=256'hdc0880e8_893880df_5574802e_0881ff06_fde73f80_80e8f851_95388452_5574802e; defparam bootram.RAM1.INIT_22=256'h3f80e8f8_0c04fdfa_e8f00b80_fe843f80_0b800c04_3f80e8e8_0d04fe8e_f80c863d; defparam bootram.RAM1.INIT_23=256'had993f80_5280d051_5475538c_0d775684_0c04fb3d_e8f40b80_fdf03f80_0b800c04; defparam bootram.RAM1.INIT_24=256'h80e8e434_3d0d810b_3d0d04fe_74800c87_80e8f00c_87387508_5574802e_0881ff06; defparam bootram.RAM1.INIT_25=256'hfc080607_067180e8_73097375_04803d0d_3f843d0d_e851be8f_cc5280e8_945380df; defparam bootram.RAM1.INIT_26=256'h077080e9_e9800806_75067180_0d730973_0d04803d_0c51823d_0c81e08c_7080e8fc; defparam bootram.RAM1.INIT_27=256'h800c843d_81c73f72_53538051_3d0d7470_af3f04fe_3d0d0481_980c5182_800c81e0; defparam bootram.RAM1.INIT_28=256'h06545472_337081ff_79565674_fb3d0d77_833d0d04_5181b63f_0d8a5280_0d04ff3d; defparam bootram.RAM1.INIT_29=256'h3d0d7352_3d0d04ff_0b800c87_3fe53980_52558191_ff065376_81157481_802e9038; defparam bootram.RAM1.INIT_2A=256'h0b800c84_80e73f80_8a527251_53ffbd3f_76537052_fe3d0d74_833d0d04_8051cd3f; defparam bootram.RAM1.INIT_2B=256'h1234823d_3380e7f4_51028f05_803d0d72_833d0d04_8051dd3f_3d0d7352_3d0d04ff; defparam bootram.RAM1.INIT_2C=256'hfe3d0d80_833d0d04_720c5351_e0057022_751080df_82908005_0d73a029_0d04ff3d; defparam bootram.RAM1.INIT_2D=256'h38843d0d_827325e5_3f811353_527251ce_e7f81333_51c63f80_13335272_5380e7f4; defparam bootram.RAM1.INIT_2E=256'h87388d52_2e098106_33537281_80e7f414_81069538_748a2e09_76785654_04fc3d0d; defparam bootram.RAM1.INIT_2F=256'h04fe3d0d_0c863d0d_38748c15_72802ef8_84140853_90800554_73a02982_7351de3f; defparam bootram.RAM1.INIT_30=256'h0d04ff3d_800c843d_12085372_2e853890_ff537080_11085252_90800588_74a02982; defparam bootram.RAM1.INIT_31=256'h800b81a8_840c5181_882a81a8_a8800c70_81ff0681_e8802270_a8880c80_0d800b81; defparam bootram.RAM1.INIT_32=256'h81a89008_2e818638_81517180_33555354_88059705_0d767802_0d04fd3d_880c833d; defparam bootram.RAM1.INIT_33=256'ha8900870_a8900c81_81900b81_81a88c0c_72108107_5170f138_81065151_70862a70; defparam bootram.RAM1.INIT_34=256'h70802eba_51515151_06708132_872a7081_a8900870_70f13881_06515151_812a7081; defparam bootram.RAM1.INIT_35=256'h70810651_0870812a_0c81a890_7081a890_8338a051_5171812e_b13880e8_3871802e; defparam bootram.RAM1.INIT_36=256'h0b81a890_883980c0_cc398151_34ff1252_70810556_08517074_3881a88c_515170f1; defparam bootram.RAM1.INIT_37=256'h2a708106_90087086_535481a8_97053355_78028805_fd3d0d76_853d0d04_0c70800c; defparam bootram.RAM1.INIT_38=256'h81a89008_81a8900c_81905170_802e8438_81d05171_81a88c0c_f1387210_51515170; defparam bootram.RAM1.INIT_39=256'h5170802e_32515151_81067081_70872a70_81a89008_5170f138_81065151_70812a70; defparam bootram.RAM1.INIT_3A=256'h900c81a8_517081a8_2e833890_d0517181_a88c0c80_38733381_802e80c5_80cf3871; defparam bootram.RAM1.INIT_3B=256'h51515170_70813251_2a708106_90087087_f13881a8_51515170_2a708106_90087081; defparam bootram.RAM1.INIT_3C=256'h0c853d0d_80517080_81a8900c_3980c00b_3981518a_5354ffb7_8114ff13_802e8e38; defparam bootram.RAM1.INIT_3D=256'h8d9f7127_31515186_ac087073_085281b8_3881b8ac_7274259b_75548053_04fd3d0d; defparam bootram.RAM1.INIT_3E=256'h0b828084_80800cef_81e20b82_8280880c_3d0dff0b_3d0d04ff_53e23985_f1388113; defparam bootram.RAM1.INIT_3F=256'h38833d0d_708025f1_0cff1151_70840554_51a0f172_f3a85287_808c0c80_0cff0b82; defparam bootram.RAM2.INIT_00=256'h74760652_f3a85555_53810b80_58515280_8c087106_70098280_82808808_04fb3d0d; defparam bootram.RAM2.INIT_01=256'h877325dc_10575553_13841576_0c8f3981_7482808c_0852712d_38725173_71802e8f; defparam bootram.RAM2.INIT_02=256'h2b700982_0c518172_a8057571_842980f3_269f3871_73527187_04ff3d0d_38873d0d; defparam bootram.RAM2.INIT_03=256'h81e0c40c_22747008_0d029205_0404ff3d_52833d0d_880c5351_72068280_80880870; defparam bootram.RAM2.INIT_04=256'h802ef338_06515170_a0087084_cc0c81b8_810b81e0_04803d0d_0c833d0d_5281e0c8; defparam bootram.RAM2.INIT_05=256'h54527280_08708106_0d81b8a0_0c04fe3d_7181e0c0_0d04de3f_cc0c823d_820b81e0; defparam bootram.RAM2.INIT_06=256'h5271802e_70810651_3971812a_8080529a_0c535381_71902a71_b8a00875_2e933881; defparam bootram.RAM2.INIT_07=256'h7080c006_81b8a008_04803d0d_0c843d0d_72527180_3fff9e3f_ec51f8d3_8b3880df; defparam bootram.RAM2.INIT_08=256'h0781e0cc_70902b88_028e0522_04ff3d0d_0c823d0d_80800b80_2ef23881_51517080; defparam bootram.RAM2.INIT_09=256'h0d755480_0d04fd3d_cc0c833d_840b81e0_802ef338_06515170_a0087090_0c5281b8; defparam bootram.RAM2.INIT_0A=256'h853d0d04_7327e638_81135385_52a6ff3f_14703352_f7a53f72_8638ba51_5372802e; defparam bootram.RAM2.INIT_0B=256'h3d0d04f6_80ed3f87_80dff051_70335356_81113354_82113355_83113356_fb3d0d77; defparam bootram.RAM2.INIT_0C=256'h3875802e_7680258f_5d5b5957_2a515b5f_7030709f_05bb0533_61630290_3d0d7c7e; defparam bootram.RAM2.INIT_0D=256'h3f800851_7651aec5_80537752_79557854_77269438_76305777_ad51782d_8a387952; defparam bootram.RAM2.INIT_0E=256'h8b053351_803d0d02_8c3d0d04_3351782d_80dffc05_dd3f8008_527651ae_ffbd3f77; defparam bootram.RAM2.INIT_0F=256'h06575775_337081ff_5c5a5878_5208a3d8_70708405_3d0d8c3d_3d0d04f7_f68d3f82; defparam bootram.RAM2.INIT_10=256'h2e80fb38_597580f0_19703357_80db3881_2e098106_065675a5_387681ff_802e81d1; defparam bootram.RAM2.INIT_11=256'h80e42e80_81953975_2e819e38_8a387580_7580e324_e32eb938_a0387580_7580f024; defparam bootram.RAM2.INIT_12=256'h80f82eba_80f53975_2e80db38_387580f3_80f5248b_2eac3875_397580f5_c638818b; defparam bootram.RAM2.INIT_13=256'h59568055_19710852_da397784_51792d80_56805275_12335259_77841983_3880ec39; defparam bootram.RAM2.INIT_14=256'h19710852_92397784_81538a52_55a3d854_52595680_84197108_53903977_a3d85480; defparam bootram.RAM2.INIT_15=256'h5675802e_59567633_19710859_9e397784_51fdd03f_53905275_a3d85480_59568055; defparam bootram.RAM2.INIT_16=256'h048a0b81_0c8b3d0d_39800b80_1959fea3_2dec3981_58335179_76708105_8e388052; defparam bootram.RAM2.INIT_17=256'h04fc3d0d_38823d0d_515170ef_70810651_8c2a8132_b8b40870_803d0d81_e0d00c04; defparam bootram.RAM2.INIT_18=256'h0a075272_86387181_5570802e_55555654_07728106_72982b7b_059b0533_797b0288; defparam bootram.RAM2.INIT_19=256'h7181e0d4_51ffa93f_79712b51_52a07531_71820a07_802e8638_06515170_822a7081; defparam bootram.RAM2.INIT_1A=256'hfc3d0d76_863d0d04_5170800c_81b88008_38ff953f_73802e89_d80c7351_0c7081e0; defparam bootram.RAM2.INIT_1B=256'h2a517080_ee397190_15555351_22730581_72101570_74278f38_55805372_787a5455; defparam bootram.RAM2.INIT_1C=256'h5280e988_0d865375_0d04fd3d_800c863d_52ec3971_72902a05_83ffff06_2e8d3871; defparam bootram.RAM2.INIT_1D=256'h8812ff12_5180720c_e9985289_ff3d0d80_853d0d04_e9900c54_76700880_51b0983f; defparam bootram.RAM2.INIT_1E=256'h5472742e_52527022_0b80e994_05225380_3d0d0296_3d0d04fd_25f33883_52527080; defparam bootram.RAM2.INIT_1F=256'h83ffff06_0d787a71_0d04fa3d_800c853d_38805170_897225ee_88125252_8e388112; defparam bootram.RAM2.INIT_20=256'h55555573_0b80e994_0880e998_0cad3980_80088405_2e893876_3f800880_535856c7; defparam bootram.RAM2.INIT_21=256'h84140c88_75732376_389dad3f_897525eb_88145455_8f388115_5271802e_08881555; defparam bootram.RAM2.INIT_22=256'h913ddc05_3d880552_3f735392_5254aee7_923dd605_54933d53_3d0d8670_3d0d04f1; defparam bootram.RAM2.INIT_23=256'h8c3d2381_0523800b_028405a6_8b3d2380_818a800b_05a20523_90800284_51aed83f; defparam bootram.RAM2.INIT_24=256'h8a52913d_665e8053_0523685d_028405ae_8d3d2380_80c0910b_05aa0523_80800284; defparam bootram.RAM2.INIT_25=256'h23800b91_8405ba05_963d2202_22903d23_0523983d_028405ae_b73f8008_e40551fd; defparam bootram.RAM2.INIT_26=256'h913d0d04_519fb03f_81e68405_6980c029_3dd40552_23ac5391_8405be05_3d238002; defparam bootram.RAM2.INIT_27=256'h529a3df8_5380e988_adc53f86_3df20551_9b3d529a_3d238653_5b800b97_e83d0d80; defparam bootram.RAM2.INIT_28=256'h9b3dc411_585a800b_80088008_23f7e23f_0580e205_05220284_3f0280f2_0551adb7; defparam bootram.RAM2.INIT_29=256'h8305fc06_5fa33d08_5ea13d08_5c905d6e_08465984_0845a33d_6e44a13d_43f00543; defparam bootram.RAM2.INIT_2A=256'h0c750854_84387376_55737527_3151565a_31908071_701a787c_84587508_408c3d56; defparam bootram.RAM2.INIT_2B=256'he63f7508_e09851ef_2e883880_06547380_94160883_54738c38_38738306_73802e9a; defparam bootram.RAM2.INIT_2C=256'hbf268438_ffac3878_57778025_17ff1959_84055708_823f7570_5276519e_53941608; defparam bootram.RAM2.INIT_2D=256'h7f1f9405_0b943d23_40818a80_0d6b6e40_0d04ea3d_e83f9a3d_822a51f6_80c05978; defparam bootram.RAM2.INIT_2E=256'h075a7996_6980c080_80ce0523_80028405_3d238180_23800b95_0580ca05_5a790284; defparam bootram.RAM2.INIT_2F=256'h3f800809_525cfae0_52933d70_4780538a_90084668_052380e9_840580d2_3d238002; defparam bootram.RAM2.INIT_30=256'h79923880_81ff065a_873f8008_535c5e8c_53983d70_23913d70_0580d205_5a790284; defparam bootram.RAM2.INIT_31=256'h7b549080_575d9455_5960586b_027f5a6d_d53fa939_f6b63fed_c23f7a51_e0c451f7; defparam bootram.RAM2.INIT_32=256'hf73d0d7f_983d0d04_38fd893f_867c26ef_34811c5c_5b79337b_1d7c1f5b_53805c7b; defparam bootram.RAM2.INIT_33=256'ha6052377_80028405_768b3d23_23881857_8405a205_8d3d2202_228a3d23_5802ae05; defparam bootram.RAM2.INIT_34=256'h23908002_810b8e3d_04ee3d0d_3f8b3d0d_7d51fe9e_05539152_548b3df8_567e5588; defparam bootram.RAM2.INIT_35=256'h53800852_eb8c3f86_05b60523_34810284_8405b505_3d348402_23860b8f_8405b205; defparam bootram.RAM2.INIT_36=256'h943df605_86538052_51a9e43f_943df205_53800852_eb863f84_51a9f43f_943dec05; defparam bootram.RAM2.INIT_37=256'h53805b7a_05549086_55943de4_5780569c_59805880_5a025c80_64700844_51aaf13f; defparam bootram.RAM2.INIT_38=256'h0b8e3d23_ee3d0d81_943d0d04_38fbcd3f_867b26ef_34811b5b_901b337a_1c5a80e0; defparam bootram.RAM2.INIT_39=256'h893f8653_b60523ea_81028405_05b50534_34840284_860b8f3d_05b20523_90800284; defparam bootram.RAM2.INIT_3A=256'h53805294_a8e13f86_3df20551_80085294_833f8453_a8f13fea_3dec0551_80085294; defparam bootram.RAM2.INIT_3B=256'he4055490_9c55943d_80578056_80598058_0843025c_e73f8008_a9ee3fe9_3df60551; defparam bootram.RAM2.INIT_3C=256'h04d83d0d_3f943d0d_ef38fac8_5b867b26_7a34811b_e0901b33_7a1c5a80_8653805b; defparam bootram.RAM2.INIT_3D=256'h5c799b26_29f2055b_ad3d0884_cc38901d_09810682_7e90862e_1122405d_ab3d088e; defparam bootram.RAM2.INIT_3E=256'h225a7990_9138821c_09810687_5a79812e_9d397b22_f49d3f87_80e0f451_8d387952; defparam bootram.RAM2.INIT_3F=256'h2e098106_225a7982_f538861c_09810686_798c842e_841c225a_06878338_802e0981; defparam bootram.RAM3.INIT_00=256'h79527a51_51a7a03f_981d5279_3d5a8653_a7ad3fa8_1d527a51_5b84539e_a238943d; defparam bootram.RAM3.INIT_01=256'h5b888c3f_a81d7052_4088943f_9e1d7052_0686bb38_812e0981_1c225a79_87953f86; defparam bootram.RAM3.INIT_02=256'h5a865380_9138a83d_5e800886_f63f8008_a40551a5_52aa3dff_5380e990_80084384; defparam bootram.RAM3.INIT_03=256'h34851c33_1c33a33d_82052384_02840581_23821c22_7b22a23d_51a6d43f_e9885279; defparam bootram.RAM3.INIT_04=256'h70547b53_a6a13f84_3de40551_537952aa_86052386_02840581_85053482_02840581; defparam bootram.RAM3.INIT_05=256'haa3df405_79537f52_51a6843f_981d527a_055b8653_3f028192_525aa693_ab3dea05; defparam bootram.RAM3.INIT_06=256'haa3ddc05_575d9c55_597e587e_027e5a7e_51a5ec3f_537a527f_9f3d4086_51a5f83f; defparam bootram.RAM3.INIT_07=256'h397e9080_e73f84ee_26ef38f7_1c5c867c_337b3481_1d5b5b79_5c7b1d60_547e537d; defparam bootram.RAM3.INIT_08=256'h2a708f06_d1387988_09810684_5b60842e_8c2a435b_1d702270_84e43890_2e098106; defparam bootram.RAM3.INIT_09=256'he0905282_5e865380_84b4387e_ff065f7e_1b2280ff_84c03886_2e098106_515a7985; defparam bootram.RAM3.INIT_0A=256'h08833881_a3ed3f80_70535b5c_80e99054_901c6255_38815e7e_3f800883_1d51a483; defparam bootram.RAM3.INIT_0B=256'h5d407f81_22ec1140_1b33821c_84c53f89_529c1d51_8138881d_7b802e84_5c7d8738; defparam bootram.RAM3.INIT_0C=256'h7a2e8f38_5d42407d_8411225d_7a08a41f_388c1b08_810683de_7f912e09_2e81bb38; defparam bootram.RAM3.INIT_0D=256'h08428008_f4913f80_22535d5d_e41d821d_bd39ac1d_f0bd3f83_80e19451_79537d52; defparam bootram.RAM3.INIT_0E=256'h3d408853_a3e13f9d_7d527951_5f5a8853_9b3d9a3d_3d237f4a_387a229a_802e83a6; defparam bootram.RAM3.INIT_0F=256'h88537952_51a3c03f_b4055279_53aa3dff_23604888_1b22983d_a3d53f82_79527f51; defparam bootram.RAM3.INIT_10=256'h7c26ef38_811c5c88_79337b34_7c1f5b5b_5e5c7b1d_557e843d_3f7b567c_7d51a3b7; defparam bootram.RAM3.INIT_11=256'had398c1b_5a792d82_61840508_7b26ef38_811b5b88_84051c34_5a793302_805b7f1b; defparam bootram.RAM3.INIT_12=256'h2e098106_335a7983_9539811a_81bb3882_387d882e_7d832e8a_33405b42_08a41e70; defparam bootram.RAM3.INIT_13=256'h3f800841_2251f2cf_81f4387c_2e098106_5e5c7991_8912335c_1d80c01e_81a238ac; defparam bootram.RAM3.INIT_14=256'h7d51a29b_88537a52_9c3d5c5e_794c993d_229c3d23_1c085a7c_80fe388c_8008802e; defparam bootram.RAM3.INIT_15=256'h3dcc0552_4e8853aa_9e3d2379_5a821d22_3f901c08_7f51a28f_88537d52_3f973d40; defparam bootram.RAM3.INIT_16=256'h5b79337b_1d7c1f5b_3d5e5c7b_7e557e84_ee3f7e56_527d51a1_3f88537a_7a51a1f7; defparam bootram.RAM3.INIT_17=256'h38608405_887b26ef_34811b5b_0284051c_1b5a7933_38805b7f_887c26ef_34811c5c; defparam bootram.RAM3.INIT_18=256'hd105347e_02840580_963d347e_1d5d5d7e_39ac1de4_e63f80de_80e951e3_085a792d; defparam bootram.RAM3.INIT_19=256'h3d70525b_53605295_d605237e_02840580_23861a22_1a22973d_d2052384_02840580; defparam bootram.RAM3.INIT_1A=256'h567c557d_d205237b_02840580_08095a79_f08e3f80_2a527c51_08537b81_f09a3f80; defparam bootram.RAM3.INIT_1B=256'h3d0d800b_e80c04fc_800b80e9_80e9e40c_0d04800b_c53faa3d_526151f4_547a537f; defparam bootram.RAM3.INIT_1C=256'h2e098106_53517075_71088c13_ec545651_700880e9_27a43876_55537274_80e9e408; defparam bootram.RAM3.INIT_1D=256'h71535755_3d0d7779_3d0d04fb_70800c86_e738ff51_53737326_8b398113_85387251; defparam bootram.RAM3.INIT_1E=256'he9e80881_0c8e3980_1480e9e4_26893881_08547387_3880e9e4_088025ba_ffb93f80; defparam bootram.RAM3.INIT_1F=256'he9f01451_53755280_0c515486_80e9ec12_822b7608_73101470_e9e80c54_11870680; defparam bootram.RAM3.INIT_20=256'hfd3d0d75_873d0d04_519fa43f_80e9f005_52738429_54865375_10800805_94398008; defparam bootram.RAM3.INIT_21=256'h5276519e_80e9f005_53738429_08055486_80081080_08249938_80547380_51fed83f; defparam bootram.RAM3.INIT_22=256'h14337088_902b0782_71982b71_33811233_3d0d7570_3d0d04fd_73800c85_fa3f8154; defparam bootram.RAM3.INIT_23=256'h22565957_7f80eacc_f93d0d7d_853d0d04_54565452_800c5253_16337107_2b720783; defparam bootram.RAM3.INIT_24=256'h902980ea_90291470_80d33873_54738326_72315256_8b3d2270_83ffff06_76a83873; defparam bootram.RAM3.INIT_25=256'h38749029_748326ad_31575754_3d227072_ffff068d_c0397383_76742380_d0055154; defparam bootram.RAM3.INIT_26=256'h33535474_38751770_75782791_ea3f8056_d005519d_902980ea_8a3d5273_15548853; defparam bootram.RAM3.INIT_27=256'hd0545480_800b80ea_80eacc23_029a0522_04fc3d0d_39893d0d_811656ec_51e1de3f; defparam bootram.RAM3.INIT_28=256'h14829014_eddc3f81_22740551_5280eacc_140cb8f4_800b828c_8288140c_7323800b; defparam bootram.RAM3.INIT_29=256'h06515675_81327081_5c847c2c_80ead05a_3d0d800b_3d0d04f4_27d93886_54548374; defparam bootram.RAM3.INIT_2A=256'h08ff2e80_e1a33f80_055b7b51_38781a88_ff2680d6_5b5d7981_82881a08_81be3875; defparam bootram.RAM3.INIT_2B=256'h58587680_53515951_71802507_30728025_728d3270_8a327030_81ff0670_c5388008; defparam bootram.RAM3.INIT_2C=256'h811a5a81_828c1a0c_1a0c800b_81058288_82881908_81055d34_5d777b70_2e833881; defparam bootram.RAM3.INIT_2D=256'h568b7627_828c1b0c_19088111_9138828c_80d2387c_1908802e_b1388288_ff7a27ff; defparam bootram.RAM3.INIT_2E=256'h57577533_771a781a_833d5b58_1954800b_19085588_ab388288_5675802e_bf387822; defparam bootram.RAM3.INIT_2F=256'h828c1a0c_1a0c800b_800b8288_51f0e93f_cc227c05_ef3880ea_58887826_77348118; defparam bootram.RAM3.INIT_30=256'h685194ba_5780c052_883d7054_04ea3d0d_388e3d0d_7c27fea9_1a5a5c83_811c8290; defparam bootram.RAM3.INIT_31=256'h94387416_2e098106_387381aa_81ff2e9d_33515473_55741770_059d0557_3f800284; defparam bootram.RAM3.INIT_32=256'h800c983d_38805473_be7527d1_39811555_3881548b_09810685_7381992e_70335154; defparam bootram.RAM3.INIT_33=256'hca3f8008_52735199_5380e1b8_3f805584_795193ea_54548452_0d863d70_0d04f93d; defparam bootram.RAM3.INIT_34=256'h3f8ac23f_3d0d8dd7_940c04fc_810b81e0_893d0d04_5574800c_06833881_752e0981; defparam bootram.RAM3.INIT_35=256'he1bc5181_73883880_06515154_8d2a7081_b8b40870_89c13f81_06558051_800881ff; defparam bootram.RAM3.INIT_36=256'h51dd843f_3880e2a0_08802e9a_febf3f80_b0800a51_51dd983f_3880e1f4_833974b5; defparam bootram.RAM3.INIT_37=256'h51fee33f_3998800a_d85180cc_b53f80e2_800a5184_e1b73fb0_3f82ac51_81518987; defparam bootram.RAM3.INIT_38=256'h80e3d051_5192bf3f_5298800a_5380ffff_3f838080_a451dcd7_bb3880e3_8008802e; defparam bootram.RAM3.INIT_39=256'he93f8839_3f805183_ac51e0e9_dcb13f82_80e3f451_3ffee53f_ac51e0f9_dcc13f82; defparam bootram.RAM3.INIT_3A=256'he5893fa0_e4fc5254_75705380_04fd3d0d_80f3900c_3d0d0471_dc9d3f86_80e4b051; defparam bootram.RAM3.INIT_3B=256'h528051da_fe3d0da0_853d0d04_7351722d_802e8538_90085372_cc3f80f3_52a051da; defparam bootram.RAM3.INIT_3C=256'hff0b8008_51898d3f_fc3d0d9a_843d0d04_8051722d_802e8538_90085372_b03f80f3; defparam bootram.RAM3.INIT_3D=256'h7182802e_5580e454_86800653_820b8008_2e80ec38_81557180_06515354_862a7081; defparam bootram.RAM3.INIT_3E=256'h845188c8_8338ff54_7184802e_3987e854_2e8e388a_8a547180_80248a38_9b387182; defparam bootram.RAM3.INIT_3F=256'h7080f39c_e5f41133_06720780_8a2c7083_8c068008_3f71882a_855188c0_3f800852; defparam bootram.RAM4.INIT_00=256'h80f39408_dac93f74_11085252_0680e888_71822b8c_52dab03f_55535154_0c80e5b4; defparam bootram.RAM4.INIT_01=256'h2e098106_9e397482_38fec13f_098106a3_3874812e_74822ea6_80f3940c_2e983874; defparam bootram.RAM4.INIT_02=256'h863d0d04_5187cd3f_fdfb3f99_a73f7351_f3980cfe_8e387380_f398082e_96387380; defparam bootram.RAM4.INIT_03=256'h3f8d5298_995187ac_80f3980c_940cff0b_800b80f3_5187a23f_e13f8008_fd3d0dd7; defparam bootram.RAM4.INIT_04=256'h908007f4_8f3f8008_3f845187_8451dfb1_3fbf9452_9c5187cd_81ae8052_5187d63f; defparam bootram.RAM4.INIT_05=256'hcc51e2a7_735280e5_38800853_80082e8d_86fa3f73_b03f8451_54845187_9f067053; defparam bootram.RAM4.INIT_06=256'h70852a82_02970533_04fd3d0d_3f853d0d_80518789_84800752_e33f8008_3f805186; defparam bootram.RAM4.INIT_07=256'h71730707_832ba006_10900674_73070773_2a880671_84067281_0771832a_0671872a; defparam bootram.RAM4.INIT_08=256'h51555255_0c515253_0682c080_077081ff_0778872b_c0067072_76852b80_7081ff06; defparam bootram.RAM4.INIT_09=256'h983f81aa_81ff51ff_51ff9e3f_075381ff_0681d00a_0d74d00a_0d04fe3d_5552853d; defparam bootram.RAM4.INIT_0A=256'h5252fef5_7081ff06_3f72882a_e151ff81_ff873f80_8c3fb251_819951ff_51ff923f; defparam bootram.RAM4.INIT_0B=256'h902a7081_fedb3f72_72982a51_51fee23f_e83f8181_3fb251fe_0651feed_3f7281ff; defparam bootram.RAM4.INIT_0C=256'ha051feb5_51feba3f_febf3f8e_c43f8051_81a151fe_51feca3f_fecf3fb0_ff065253; defparam bootram.RAM4.INIT_0D=256'h05538052_54873dfc_fb3d0d82_843d0d04_51fea63f_feab3f80_b03fa051_3f8051fe; defparam bootram.RAM4.INIT_0E=256'h12085859_d73d0884_d53d0880_b23d0d80_3d0d04ff_22800c87_ce3f863d_80d05183; defparam bootram.RAM4.INIT_0F=256'h2681b238_16567596_bc39ff9f_dff53f81_80e68451_53829452_26903877_57778293; defparam bootram.RAM4.INIT_10=256'h0b81e2cc_e18c0c81_5e810b81_3f800808_c15cd4c0_75080480_e6d00556_75842980; defparam bootram.RAM4.INIT_11=256'hfef63f80_5c80f839_085f80c6_8c9d3f80_3f80085e_8a398c99_e4d00c81_0c800b81; defparam bootram.RAM4.INIT_12=256'hc55c80d3_89f53f80_80f3c851_8c170852_90170853_5c80e839_065e80d6_0883ffff; defparam bootram.RAM4.INIT_13=256'h39941753_80c25cb7_c45cbc39_2e863880_06567580_800881ff_518aba3f_3980f3c8; defparam bootram.RAM4.INIT_14=256'h1708518b_1708528c_80055390_80d03dfe_d75ca439_88dc3f80_8c170851_90170852; defparam bootram.RAM4.INIT_15=256'h54800b83_3dfdec05_945580d0_39a05c82_fcf83f83_d35c8051_5c8d3980_b93f80d2; defparam bootram.RAM4.INIT_16=256'he6fe3f80_83808251_7826ec38_81185888_75337734_79055757_1980d23d_3d5a5877; defparam bootram.RAM4.INIT_17=256'h05ab0533_05330284_3d0d02a7_83973ff9_ce3fff51_e7ac51d4_803d0d80_d03d0d04; defparam bootram.RAM4.INIT_18=256'h7f7f5a57_3d0d7a7c_3d0d04f8_dfeb3f89_81528051_98547553_57578255_71882b07; defparam bootram.RAM4.INIT_19=256'h8405a105_05583302_34767081_54738a3d_75811757_7425b738_16565480_575874ff; defparam bootram.RAM4.INIT_1A=256'h802e8538_d8c73f73_06548a51_800881ff_51d7993f_7781ff06_3dfc0552_3482538a; defparam bootram.RAM4.INIT_1B=256'h883d3481_38dc5675_de567483_05335580_3d0d02a3_3d0d04fa_73800c8a_c1398154; defparam bootram.RAM4.INIT_1C=256'h893d3481_02ab0533_3d0d7c57_3d0d04f9_ff893f88_5280d051_055381f7_54883dfc; defparam bootram.RAM4.INIT_1D=256'h38807725_73802e9e_06705654_800881ff_56d6b93f_05337052_055202a7_53893dfc; defparam bootram.RAM4.INIT_1E=256'h0c893d0d_81557480_802e8338_70565473_0881ff06_d4fc3f80_7b527551_97387653; defparam bootram.RAM4.INIT_1F=256'h80de2e09_33565674_800b883d_51ffa03f_f75280d0_fc055381_8154883d_04fa3d0d; defparam bootram.RAM4.INIT_20=256'h81c0ac0c_800ca60b_eb0b81c0_c0940c80_04990b81_0c883d0d_81567580_81068338; defparam bootram.RAM4.INIT_21=256'hc0a00c81_51820b81_81c0980c_06708107_882bbe80_803d0d72_c0b00c04_89b00b81; defparam bootram.RAM4.INIT_22=256'h72882bbe_04803d0d_0c823d0d_c0a80880_70f13881_06515151_812a7081_c0a40870; defparam bootram.RAM4.INIT_23=256'h70810651_0870812a_0c81c0a4_0b81c0a0_c09c0c84_0c517381_0781c098_80067081; defparam bootram.RAM4.INIT_24=256'h83065271_71913875_55555757_7c728306_3d0d787a_04ff39fa_38823d0d_515170f1; defparam bootram.RAM4.INIT_25=256'h822b7711_27943873_55557375_72822a72_5188ca3f_2e863881_06527180_8a387283; defparam bootram.RAM4.INIT_26=256'h80e7b811_2a708f06_0d747084_0d04fe3d_e939883d_52811454_720c5254_77127008; defparam bootram.RAM4.INIT_27=256'h82e09008_04803d0d_3f843d0d_5253cffb_e7b81133_728f0680_53d0883f_33545153; defparam bootram.RAM4.INIT_28=256'h8c800607_80ff067a_93053378_fe3d0d02_823d0d04_5170f138_81065151_70882a70; defparam bootram.RAM4.INIT_29=256'h82e0900c_e0800c71_f1387682_51515170_2a708106_90087088_535382e0_80c08007; defparam bootram.RAM4.INIT_2A=256'h882a7081_e0900870_2e963882_72517280_82e0900c_71828007_82e0980c_7581ff06; defparam bootram.RAM4.INIT_2B=256'h88805588_82e0940c_3d0d810b_3d0d04fc_70800c84_e0800851_70f13882_06515151; defparam bootram.RAM4.INIT_2C=256'h51fef13f_53815281_90548a80_0d888055_0d04fc3d_873f863d_528051ff_54805380; defparam bootram.RAM4.INIT_2D=256'h863d0d04_51fed53f_53815280_55885486_3d0d8880_3d0d04fc_06800c86_800881ff; defparam bootram.RAM4.INIT_2E=256'h70802ef4_81ff0651_eb3f8008_04803d0d_0c823d0d_32810680_3f800881_803d0dca; defparam bootram.RAM4.INIT_2F=256'h5475fe9b_888055a0_3fffb43f_269b38dd_3f758008_775684e3_04fb3d0d_38823d0d; defparam bootram.RAM4.INIT_30=256'h08ff1156_0880cb3d_0d80c93d_04ffba3d_3f873d0d_8051fe84_07538152_0a069b0a; defparam bootram.RAM4.INIT_31=256'hff52883d_82805381_2681a738_3f738008_1754849f_81b43875_7381ff26_57578055; defparam bootram.RAM4.INIT_32=256'h82e0980c_fd9f3f74_3ffed43f_ea3ffefd_5273518a_80cb3d08_8f3f7553_7052548c; defparam bootram.RAM4.INIT_33=256'h0b82e090_980c88a0_810b82e0_82e0800c_80c00a07_fec00a06_e0900c76_88800b82; defparam bootram.RAM4.INIT_34=256'h84157008_8c0c54fe_700882e0_56fe8015_c83d558f_fcef3f80_82e0900c_0c8aa00b; defparam bootram.RAM4.INIT_35=256'h82e0900c_5488800b_82e0800c_8c157008_840c54fe_700882e0_54fe8815_82e0880c; defparam bootram.RAM4.INIT_36=256'h81557480_82e0980c_bc38800b_758025ff_90165656_b03fff16_e0900cfc_8a800b82; defparam bootram.RAM4.INIT_37=256'hcb388157_80082680_3f805773_565682db_7212575a_0d797b7d_0d04f93d_0c80c83d; defparam bootram.RAM4.INIT_38=256'h76547753_75278338_75555776_82807431_802ea238_ff065473_c3387581_74802e80; defparam bootram.RAM4.INIT_39=256'he1388280_82807527_8e387454_5674802e_76315759_16741976_fdeb3f73_73527551; defparam bootram.RAM4.INIT_3A=256'h38731354_73802e8d_7a565455_3d0d7678_3d0d04fc_76800c89_8c3f8157_54dc39fd; defparam bootram.RAM4.INIT_3B=256'h08307074_81cb3f80_750ca639_84160c80_160c800b_38800b88_08742790_81ed3f80; defparam bootram.RAM4.INIT_3C=256'h3f863d0d_7151fcc9_7188160c_0684160c_72760c74_3f800830_515281bd_06ff1656; defparam bootram.RAM4.INIT_3D=256'h15082e94_88140884_9f388153_5271802e_ff067054_3f800881_7554fc98_04fd3d0d; defparam bootram.RAM4.INIT_3E=256'h3d0d8880_3d0d04fc_72800c85_943f8053_160c51fc_08057088_88140880_3881823f; defparam bootram.RAM4.INIT_3F=256'h0d80f3a0_0d04ff3d_800c863d_fe800a06_a33f8008_528151fa_f90a5381_55a05481; defparam bootram.RAM5.INIT_00=256'h387180f3_09810693_5170a02e_ff065451_06800881_2a7081ff_3f800888_08a038d7; defparam bootram.RAM5.INIT_01=256'h0880e882_04c03f80_0c833d0d_b33f7180_278438f5_52528271_a008ea11_a00c80f3; defparam bootram.RAM5.INIT_02=256'h0d7d56f9_0c04f63d_80082b80_a93f810b_800c04ff_0b80082b_04f33f81_0533800c; defparam bootram.RAM5.INIT_03=256'h810b82e0_82e0800c_0c7c882b_0b82e084_e0900c8b_88800b82_82e0980c_983f800b; defparam bootram.RAM5.INIT_04=256'h3888800b_762780d3_55805473_f8e73f7e_82e0900c_0c8aa80b_0b82e090_980c88a8; defparam bootram.RAM5.INIT_05=256'h5a82e080_82e08408_e0880859_8c085882_cc3f82e0_e0900cf8_8a800b82_82e0900c; defparam bootram.RAM5.INIT_06=256'h70337570_38711751_71732791_70538052_73278338_57905370_76753152_085b883d; defparam bootram.RAM5.INIT_07=256'h7251f789_04803d0d_0c8c3d0d_0b82e098_ffa93980_39721454_811252ec_81055734; defparam bootram.RAM5.INIT_08=256'h70800c54_de3f8008_05085182_528c0888_088c0508_0d80538c_8c0cfd3d_3f8c0802; defparam bootram.RAM5.INIT_09=256'h82b93f80_88050851_08528c08_8c088c05_3d0d8153_028c0cfd_0c048c08_853d0d8c; defparam bootram.RAM5.INIT_0A=256'h88050880_050c8c08_0b8c08fc_f93d0d80_08028c0c_8c0c048c_54853d0d_0870800c; defparam bootram.RAM5.INIT_0B=256'h810b8c08_05088838_0c8c08fc_8c08f405_050c800b_308c0888_08880508_25ab388c; defparam bootram.RAM5.INIT_0C=256'h8c088c05_8c050830_ab388c08_05088025_0c8c088c_8c08fc05_08f40508_f4050c8c; defparam bootram.RAM5.INIT_0D=256'h08fc050c_f005088c_050c8c08_0b8c08f0_08883881_8c08fc05_08f0050c_0c800b8c; defparam bootram.RAM5.INIT_0E=256'hfc050880_0c548c08_8c08f805_3f800870_085181a7_8c088805_8c050852_80538c08; defparam bootram.RAM5.INIT_0F=256'h048c0802_3d0d8c0c_800c5489_f8050870_050c8c08_308c08f8_08f80508_2e8c388c; defparam bootram.RAM5.INIT_10=256'h0888050c_0508308c_388c0888_08802593_8c088805_08fc050c_0d800b8c_8c0cfb3d; defparam bootram.RAM5.INIT_11=256'h538c088c_8c050c81_08308c08_8c088c05_80258c38_088c0508_fc050c8c_810b8c08; defparam bootram.RAM5.INIT_12=256'h388c08f8_08802e8c_8c08fc05_f8050c54_08708c08_51ad3f80_08880508_0508528c; defparam bootram.RAM5.INIT_13=256'hfd3d0d81_08028c0c_8c0c048c_54873d0d_0870800c_8c08f805_08f8050c_0508308c; defparam bootram.RAM5.INIT_14=256'hfc050880_ac388c08_88050827_05088c08_0c8c088c_8c08f805_050c800b_0b8c08fc; defparam bootram.RAM5.INIT_15=256'h08108c08_8c08fc05_088c050c_0508108c_388c088c_05082499_0b8c088c_2ea33880; defparam bootram.RAM5.INIT_16=256'h8c088805_0826a138_8c088805_088c0508_80c9388c_0508802e_398c08fc_fc050cc9; defparam bootram.RAM5.INIT_17=256'h8c08fc05_08f8050c_0508078c_088c08fc_8c08f805_0888050c_0508318c_088c088c; defparam bootram.RAM5.INIT_18=256'h802e8f38_08900508_ffaf398c_088c050c_08812a8c_8c088c05_08fc050c_08812a8c; defparam bootram.RAM5.INIT_19=256'hf4050880_0c518c08_8c08f405_f8050870_8d398c08_f4050c51_08708c08_8c088805; defparam bootram.RAM5.INIT_1A=256'h802eb038_83065170_38747407_8372278c_79565652_3d0d7877_8c0c04fc_0c853d0d; defparam bootram.RAM5.INIT_1B=256'h54555571_8115ff14_bd388115_2e098106_52537271_74337433_ff2ea038_ff125271; defparam bootram.RAM5.INIT_1C=256'h38841184_0981068f_0873082e_74545170_3d0d0474_0b800c86_06e23880_ff2e0981; defparam bootram.RAM5.INIT_1D=256'h3d0d7670_3d0d04fc_31800c86_af397271_735555ff_26e93870_54517183_14fc1454; defparam bootram.RAM5.INIT_1E=256'h98387270_5271ff2e_a738ff12_5170802e_75078306_278c3872_55558f72_797b5555; defparam bootram.RAM5.INIT_1F=256'h74517270_863d0d04_3874800c_098106ea_5271ff2e_5634ff12_74708105_81055433; defparam bootram.RAM5.INIT_20=256'h71708405_84055408_530c7270_71708405_84055408_530c7270_71708405_84055408; defparam bootram.RAM5.INIT_21=256'h70840554_27953872_c9388372_52718f26_530cf012_71708405_84055408_530c7270; defparam bootram.RAM5.INIT_22=256'h059f0533_7971028c_fc3d0d76_54ff8339_26ed3870_12527183_05530cfc_08717084; defparam bootram.RAM5.INIT_23=256'h70810555_93387373_5271ff2e_a238ff12_5170802e_38748306_8372278a_57555355; defparam bootram.RAM5.INIT_24=256'h2b075154_07707190_74882b75_3d0d0474_74800c86_8106ef38_71ff2e09_34ff1252; defparam bootram.RAM5.INIT_25=256'h71708405_05530c72_72717084_8405530c_0c727170_70840553_a5387271_518f7227; defparam bootram.RAM5.INIT_26=256'hf2387053_52718326_530cfc12_71708405_27903872_dd388372_52718f26_530cf012; defparam bootram.RAM5.INIT_27=256'h2e80d438_06517080_71740783_2e80d938_55527280_7c705455_3d0d787a_ff9039fa; defparam bootram.RAM5.INIT_28=256'h7081ff06_2e818738_a9387280_2e098106_56517471_71337433_ff2eb138_ff135372; defparam bootram.RAM5.INIT_29=256'h56517081_71337433_8106d138_72ff2e09_15555552_128115ff_80fc3881_5170802e; defparam bootram.RAM5.INIT_2A=256'h71087408_73278838_74575583_3d0d0471_70800c88_31515252_ff067171_ff067581; defparam bootram.RAM5.INIT_2B=256'h70f88482_fdff1206_7009f7fb_b1387408_5372802e_9739fc13_765552ff_2e883874; defparam bootram.RAM5.INIT_2C=256'h765552fe_2ed03874_74087608_7327d038_17575583_38841584_5151709a_81800651; defparam bootram.RAM5.INIT_2D=256'hf3a40cff_9e387380_5472812e_e7e80854_0d800b80_0d04fd3d_800c883d_df39800b; defparam bootram.RAM5.INIT_2E=256'hffad813f_80f3a40c_f6a33f72_3f800851_51ffb5b8_e89c5281_acba3f80_ad9e3fff; defparam bootram.RAM5.INIT_2F=256'ha40bfc05_3d0d80e8_00ff39ff_51f6863f_9b3f8008_8151ffb5_80e89c52_ffac9d3f; defparam bootram.RAM5.INIT_30=256'h0404ffad_38833d0d_098106f1_5270ff2e_12700852_38702dfc_70ff2e91_70085252; defparam bootram.RAM5.INIT_31=256'h636b6574_6c207061_6e74726f_6e20636f_6f722069_21457272_00000040_ac3f0400; defparam bootram.RAM5.INIT_32=256'h6c697479_74696269_6f6d7061_65642063_70656374_3a204578_646c6572_2068616e; defparam bootram.RAM5.INIT_33=256'h6f722069_21457272_25640a00_676f7420_62757420_25642c20_62657220_206e756d; defparam bootram.RAM5.INIT_34=256'h70656374_3a204578_646c6572_2068616e_636b6574_6c207061_6e74726f_6e20636f; defparam bootram.RAM5.INIT_35=256'h74202564_7420676f_2c206275_68202564_656e6774_6164206c_61796c6f_65642070; defparam bootram.RAM5.INIT_36=256'h203d2025_70656564_643a2073_616e6765_6b206368_206c696e_0a657468_0a000000; defparam bootram.RAM5.INIT_37=256'h720a0000_6f616465_6f6f746c_44502062_31302055_50204e32_0a555352_640a0000; defparam bootram.RAM5.INIT_38=256'h640a0000_723a2025_756d6265_7479206e_62696c69_70617469_20636f6d_46504741; defparam bootram.RAM5.INIT_39=256'h723a2025_756d6265_7479206e_62696c69_70617469_20636f6d_77617265_4669726d; defparam bootram.RAM5.INIT_3A=256'h7061636b_65727920_65636f76_69702072_476f7420_00000000_61646472_640a0000; defparam bootram.RAM5.INIT_3B=256'h00000826_00000826_00000826_00000826_00000826_00000731_00000000_65743a20; defparam bootram.RAM5.INIT_3C=256'h00000826_00000826_000007fc_00000826_00000826_00000776_0000078d_00000826; defparam bootram.RAM5.INIT_3D=256'h000007cf_000007ca_000007c5_0000073e_000007aa_00000826_00000826_00000826; defparam bootram.RAM5.INIT_3E=256'hffffff00_c0a80a01_c0a80a02_3fff0000_0050c285_000007ea_000007dd_000007d6; defparam bootram.RAM5.INIT_3F=256'h30313233_2e256400_642e2564_25642e25_45000000_01b200d9_05160364_14580a2c; defparam bootram.RAM6.INIT_00=256'h5f706b74_73656e64_ffff0000_ffffffff_00000000_43444546_38394142_34353637; defparam bootram.RAM6.INIT_01=256'h72206275_6e642f6f_656e2061_6f66206c_656e7420_69676e6d_6420616c_3a206261; defparam bootram.RAM6.INIT_02=256'h74206361_6f206869_65642074_6661696c_6f6e3a20_636f6d6d_6e65745f_66000000; defparam bootram.RAM6.INIT_03=256'h6172703a_646c655f_0a68616e_00000000_666f7220_696e6720_6c6f6f6b_63686520; defparam bootram.RAM6.INIT_04=256'h6e736973_696e636f_55445020_0a000000_3d202564_697a6520_72642073_20776569; defparam bootram.RAM6.INIT_05=256'h53746172_0b0b0b0b_00000000_2025640a_3a202564_67746873_206c656e_74656e74; defparam bootram.RAM6.INIT_06=256'h6164696e_2e204c6f_6d6f6465_61666520_696e2073_50322b20_20555352_74696e67; defparam bootram.RAM6.INIT_07=256'h20666f72_6b696e67_43686563_00000000_6172652e_69726d77_66652066_67207361; defparam bootram.RAM6.INIT_08=256'h2e2e2e00_6d616765_47412069_6e204650_6374696f_726f6475_69642070_2076616c; defparam bootram.RAM6.INIT_09=256'h666f756e_61676520_4120696d_20465047_74696f6e_6f647563_64207072_56616c69; defparam bootram.RAM6.INIT_0A=256'h616c6964_4e6f2076_742e0000_20626f6f_6720746f_7074696e_7474656d_642e2041; defparam bootram.RAM6.INIT_0B=256'h2e0a4661_6f756e64_67652066_20696d61_46504741_696f6e20_64756374_2070726f; defparam bootram.RAM6.INIT_0C=256'h726d7761_6e206669_6c742d69_20627569_6820746f_726f7567_67207468_6c6c696e; defparam bootram.RAM6.INIT_0D=256'h6520666f_6d776172_20666972_74696f6e_6f647563_64207072_56616c69_72652e00; defparam bootram.RAM6.INIT_0E=256'h64696e67_206c6f61_73686564_46696e69_2e2e2e00_64696e67_204c6f61_756e642e; defparam bootram.RAM6.INIT_0F=256'h65747572_523a2052_4552524f_2e000000_6d616765_6e672069_61727469_2e205374; defparam bootram.RAM6.INIT_10=256'h6f756c64_73207368_20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672; defparam bootram.RAM6.INIT_11=256'h64756374_2070726f_616c6964_4e6f2076_6e210000_61707065_65722068_206e6576; defparam bootram.RAM6.INIT_12=256'h7468726f_696e6720_46616c6c_6e642e20_20666f75_77617265_6669726d_696f6e20; defparam bootram.RAM6.INIT_13=256'h53706565_2e000000_77617265_6669726d_2d696e20_75696c74_746f2062_75676820; defparam bootram.RAM6.INIT_14=256'h58000000_57455f54_00000000_4e4f4e45_00000000_2025640a_7420746f_64207365; defparam bootram.RAM6.INIT_15=256'h20666c6f_726e6574_65746865_43000000_45545249_53594d4d_58000000_57455f52; defparam bootram.RAM6.INIT_16=256'h2077726f_4144563a_4e45475f_4155544f_5048595f_6c3a2000_6e74726f_7720636f; defparam bootram.RAM6.INIT_17=256'h00000001_00030003_00000000_780a0000_20307825_20676f74_7825782c_74652030; defparam bootram.RAM6.INIT_18=256'h68616e64_6b657420_20706163_64617465_6e207570_6f722069_21457272_00030203; defparam bootram.RAM6.INIT_19=256'h2025642c_6e677468_64206c65_796c6f61_64207061_65637465_20457870_6c65723a; defparam bootram.RAM6.INIT_1A=256'h00002261_000022b1_000022b1_0000220b_00000000_2025640a_20676f74_20627574; defparam bootram.RAM6.INIT_1B=256'h000022b1_000022b1_000022b1_000022b1_000022b1_000022b1_0000222a_0000224c; defparam bootram.RAM6.INIT_1C=256'h000022b1_000022a7_00002290_000022b1_000022b1_000022b1_000022b1_000022b1; defparam bootram.RAM6.INIT_1D=256'h34353637_30313233_00000000_6f72740a_0a0a6162_0000227d_0000223c_000022b1; defparam bootram.RAM6.INIT_1E=256'hffff00ff_ff00ffff_00ffffff_65000000_792e6578_64756d6d_43444546_38394142; defparam bootram.RAM6.INIT_1F=256'hffff0031_05050400_01010100_0000342c_00000000_00000000_00000000_ffffff00; defparam bootram.RAM6.INIT_20=256'h000033c8_10101200_000032a8_000032a0_00003298_00003290_000b0000_0018000f; defparam bootram.RAM6.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_ffffffff_00000000_ffffffff; defparam bootram.RAM6.INIT_22=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_24=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_25=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_26=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_27=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_28=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_29=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_2A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_2B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_2C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_2D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_2E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_2F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_30=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_31=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_32=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_33=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_34=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_35=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_36=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_37=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_38=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_39=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_3A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_3B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_3C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_3D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_3E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM6.INIT_3F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_00=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_01=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_02=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_03=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_04=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_05=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_06=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_07=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_08=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_09=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_0A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_0B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_0C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_0D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_0E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_0F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_10=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_11=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_12=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_13=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_14=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_15=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_16=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_17=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_18=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_1A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_1B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_1C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_1D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_1F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_20=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_21=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_22=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_23=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_24=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_25=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_26=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_27=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_28=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_29=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_2A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_2B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_2C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_2D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_2E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_2F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_30=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_31=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_32=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_33=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_34=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_35=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_36=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_37=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_38=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_39=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_3A=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_3B=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_3C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_3D=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_3E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; defparam bootram.RAM7.INIT_3F=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000; uhd-3.5.5/fpga/usrp2/top/N2x0/capture_ddrlvds.v000066400000000000000000000032121224274632000212010ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module capture_ddrlvds #(parameter WIDTH=7) (input clk, input ssclk_p, input ssclk_n, input [WIDTH-1:0] in_p, input [WIDTH-1:0] in_n, output reg [(2*WIDTH)-1:0] out); wire [WIDTH-1:0] ddr_dat; wire ssclk; wire [(2*WIDTH)-1:0] out_pre1; reg [(2*WIDTH)-1:0] out_pre2; IBUFGDS #(.IOSTANDARD("LVDS_33"), .DIFF_TERM("TRUE")) clkbuf (.O(ssclk), .I(ssclk_p), .IB(ssclk_n)); genvar i; generate for(i = 0; i < WIDTH; i = i + 1) begin : gen_lvds_pins IBUFDS #(.IOSTANDARD("LVDS_33"),.DIFF_TERM("FALSE")) ibufds (.O(ddr_dat[i]), .I(in_p[i]), .IB(in_n[i]) ); IDDR2 #(.DDR_ALIGNMENT("C1")) iddr2 (.Q0(out_pre1[2*i]), .Q1(out_pre1[(2*i)+1]), .C0(ssclk), .C1(~ssclk), .CE(1'b1), .D(ddr_dat[i]), .R(1'b0), .S(1'b0)); end endgenerate always @(posedge clk) out_pre2 <= out_pre1; always @(posedge clk) out <= out_pre2; endmodule // capture_ddrlvds uhd-3.5.5/fpga/usrp2/top/N2x0/u2plus.ucf000077500000000000000000000365351224274632000175770ustar00rootroot00000000000000## Main 100 MHz Clock NET "CLK_FPGA_P" LOC = "AA13" ; NET "CLK_FPGA_N" LOC = "Y13" ; ## ADC NET "ADC_clkout_p" LOC = "P1" ; NET "ADC_clkout_n" LOC = "P2" ; NET "ADCA_12_p" LOC = "Y1" ; NET "ADCA_12_n" LOC = "Y2" ; NET "ADCA_10_p" LOC = "W3" ; NET "ADCA_10_n" LOC = "W4" ; NET "ADCA_8_p" LOC = "T7" ; NET "ADCA_8_n" LOC = "U6" ; NET "ADCA_6_p" LOC = "U5" ; NET "ADCA_6_n" LOC = "V5" ; NET "ADCA_4_p" LOC = "T10" ; NET "ADCA_4_n" LOC = "T9" ; NET "ADCA_2_p" LOC = "V1" ; NET "ADCA_2_n" LOC = "V2" ; NET "ADCA_0_p" LOC = "R8" ; NET "ADCA_0_n" LOC = "R7" ; NET "ADCB_2_p" LOC = "U7" ; NET "ADCB_2_n" LOC = "U8" ; NET "ADCB_0_p" LOC = "AA2" ; NET "ADCB_0_n" LOC = "AA3" ; NET "ADCB_4_p" LOC = "AE1" ; NET "ADCB_4_n" LOC = "AE2" ; NET "ADCB_6_p" LOC = "W1" ; NET "ADCB_6_n" LOC = "W2" ; NET "ADCB_8_p" LOC = "U3" ; NET "ADCB_8_n" LOC = "V4" ; NET "ADCB_10_p" LOC = "J1" ; NET "ADCB_10_n" LOC = "K1" ; NET "ADCB_12_p" LOC = "J3" ; NET "ADCB_12_n" LOC = "J2" ; ## DAC NET "DAC_LOCK" LOC = "P4" ; NET "DACA<0>" LOC = "P8" ; NET "DACA<1>" LOC = "P9" ; NET "DACA<2>" LOC = "R5" ; NET "DACA<3>" LOC = "R6" ; NET "DACA<4>" LOC = "P7" ; NET "DACA<5>" LOC = "P6" ; NET "DACA<6>" LOC = "T3" ; NET "DACA<7>" LOC = "T4" ; NET "DACA<8>" LOC = "R3" ; NET "DACA<9>" LOC = "R4" ; NET "DACA<10>" LOC = "R2" ; NET "DACA<11>" LOC = "N1" ; NET "DACA<12>" LOC = "N2" ; NET "DACA<13>" LOC = "N5" ; NET "DACA<14>" LOC = "N4" ; NET "DACA<15>" LOC = "M2" ; NET "DACB<0>" LOC = "M5" ; NET "DACB<1>" LOC = "M6" ; NET "DACB<2>" LOC = "M4" ; NET "DACB<3>" LOC = "M3" ; NET "DACB<4>" LOC = "M8" ; NET "DACB<5>" LOC = "M7" ; NET "DACB<6>" LOC = "L4" ; NET "DACB<7>" LOC = "L3" ; NET "DACB<8>" LOC = "K3" ; NET "DACB<9>" LOC = "K2" ; NET "DACB<10>" LOC = "K5" ; NET "DACB<11>" LOC = "K4" ; NET "DACB<12>" LOC = "M10" ; NET "DACB<13>" LOC = "M9" ; NET "DACB<14>" LOC = "J5" ; NET "DACB<15>" LOC = "J4" ; ## TX DB GPIO NET "io_tx<15>" LOC = "K6" ; NET "io_tx<14>" LOC = "L7" ; NET "io_tx<13>" LOC = "H2" ; NET "io_tx<12>" LOC = "H1" ; NET "io_tx<11>" LOC = "L10" ; NET "io_tx<10>" LOC = "L9" ; NET "io_tx<9>" LOC = "G3" ; NET "io_tx<8>" LOC = "F3" ; NET "io_tx<7>" LOC = "K7" ; NET "io_tx<6>" LOC = "J6" ; NET "io_tx<5>" LOC = "E1" ; NET "io_tx<4>" LOC = "F2" ; NET "io_tx<3>" LOC = "J7" ; NET "io_tx<2>" LOC = "H6" ; NET "io_tx<1>" LOC = "F5" ; NET "io_tx<0>" LOC = "G4" ; ## RX DB GPIO NET "io_rx<15>" LOC = "AD1" ; NET "io_rx<14>" LOC = "AD2" ; NET "io_rx<13>" LOC = "AC2" ; NET "io_rx<12>" LOC = "AC3" ; NET "io_rx<11>" LOC = "W7" ; NET "io_rx<10>" LOC = "W6" ; NET "io_rx<9>" LOC = "U9" ; NET "io_rx<8>" LOC = "V8" ; NET "io_rx<7>" LOC = "AB1" ; NET "io_rx<6>" LOC = "AC1" ; NET "io_rx<5>" LOC = "V7" ; NET "io_rx<4>" LOC = "V6" ; NET "io_rx<3>" LOC = "Y5" ; NET "io_rx<2>" LOC = "R10" ; NET "io_rx<1>" LOC = "R1" ; NET "io_rx<0>" LOC = "M1" ; ## MISC NET "leds<5>" LOC = "AF25" ; NET "leds<4>" LOC = "AE25" ; NET "leds<3>" LOC = "AF23" ; NET "leds<2>" LOC = "AE23" ; NET "leds<1>" LOC = "AB18" ; NET "FPGA_RESET" LOC = "K24" ; ## Debug NET "debug_clk<0>" LOC = "AA10" ; NET "debug_clk<1>" LOC = "AD11" ; NET "debug<0>" LOC = "AC19" ; NET "debug<1>" LOC = "AF20" ; NET "debug<2>" LOC = "AE20" ; NET "debug<3>" LOC = "AC16" ; NET "debug<4>" LOC = "AB16" ; NET "debug<5>" LOC = "AF19" ; NET "debug<6>" LOC = "AE19" ; NET "debug<7>" LOC = "V15" ; NET "debug<8>" LOC = "U15" ; NET "debug<9>" LOC = "AE17" ; NET "debug<10>" LOC = "AD17" ; NET "debug<11>" LOC = "V14" ; NET "debug<12>" LOC = "W15" ; NET "debug<13>" LOC = "AC15" ; NET "debug<14>" LOC = "AD14" ; NET "debug<15>" LOC = "AC14" ; NET "debug<16>" LOC = "AC11" ; NET "debug<17>" LOC = "AB12" ; NET "debug<18>" LOC = "AC12" ; NET "debug<19>" LOC = "V13" ; NET "debug<20>" LOC = "W13" ; NET "debug<21>" LOC = "AE8" ; NET "debug<22>" LOC = "AF8" ; NET "debug<23>" LOC = "V12" ; NET "debug<24>" LOC = "W12" ; NET "debug<25>" LOC = "AB9" ; NET "debug<26>" LOC = "AC9" ; NET "debug<27>" LOC = "AC8" ; NET "debug<28>" LOC = "AB7" ; NET "debug<29>" LOC = "V11" ; NET "debug<30>" LOC = "U11" ; NET "debug<31>" LOC = "Y10" ; ## UARTS NET "TXD<3>" LOC = "AD20" ; NET "TXD<2>" LOC = "AC20" ; NET "TXD<1>" LOC = "AD19" ; NET "RXD<3>" LOC = "AF17" ; NET "RXD<2>" LOC = "AF15" ; NET "RXD<1>" LOC = "AD12" ; ## AD9510 NET "clk_status" LOC = "AD22" ; NET "CLK_FUNC" LOC = "AC21" ; NET "clk_sel<0>" LOC = "AE21" ; NET "clk_sel<1>" LOC = "AD21" ; NET "clk_en<1>" LOC = "AA17" ; NET "clk_en<0>" LOC = "Y17" ; ## I2C NET "SDA" LOC = "V16" ; NET "SCL" LOC = "U16" ; ## Timing NET "PPS_IN" LOC = "AB6" ; NET "PPS2_IN" LOC = "AA20" ; ## SPI NET "SEN_CLK" LOC = "AA18" ; NET "MOSI_CLK" LOC = "W17" ; NET "SCLK_CLK" LOC = "V17" ; NET "MISO_CLK" LOC = "AC10" ; NET "SEN_DAC" LOC = "AE7" ; NET "SCLK_DAC" LOC = "AF5" ; NET "MOSI_DAC" LOC = "AE6" ; NET "MISO_DAC" LOC = "Y3" ; NET "SCLK_ADC" LOC = "B1" ; NET "MOSI_ADC" LOC = "J8" ; NET "SEN_ADC" LOC = "J9" ; NET "MOSI_TX_ADC" LOC = "V10" ; NET "SEN_TX_ADC" LOC = "W10" ; NET "SCLK_TX_ADC" LOC = "AC6" ; NET "MISO_TX_ADC" LOC = "G1" ; NET "MOSI_TX_DAC" LOC = "AD6" ; NET "SEN_TX_DAC" LOC = "AE4" ; NET "SCLK_TX_DAC" LOC = "AF4" ; NET "SCLK_TX_DB" LOC = "AE3" ; NET "MOSI_TX_DB" LOC = "AF3" ; NET "SEN_TX_DB" LOC = "W9" ; NET "MISO_TX_DB" LOC = "AA5" ; NET "MOSI_RX_ADC" LOC = "E3" ; NET "SCLK_RX_ADC" LOC = "F4" ; NET "SEN_RX_ADC" LOC = "D3" ; NET "MISO_RX_ADC" LOC = "C1" ; NET "SCLK_RX_DAC" LOC = "E4" ; NET "SEN_RX_DAC" LOC = "K9" ; NET "MOSI_RX_DAC" LOC = "K8" ; NET "SCLK_RX_DB" LOC = "G6" ; NET "MOSI_RX_DB" LOC = "H7" ; NET "SEN_RX_DB" LOC = "B2" ; NET "MISO_RX_DB" LOC = "H4" ; ## ETH PHY NET "CLK_TO_MAC" LOC = "P26" ; NET "GMII_TXD<7>" LOC = "G21" ; NET "GMII_TXD<6>" LOC = "C26" ; NET "GMII_TXD<5>" LOC = "C25" ; NET "GMII_TXD<4>" LOC = "J21" ; NET "GMII_TXD<3>" LOC = "H21" ; NET "GMII_TXD<2>" LOC = "D25" ; NET "GMII_TXD<1>" LOC = "D24" ; NET "GMII_TXD<0>" LOC = "E26" ; NET "GMII_TX_EN" LOC = "D26" ; NET "GMII_TX_ER" LOC = "J19" ; NET "GMII_GTX_CLK" LOC = "J20" ; NET "GMII_TX_CLK" LOC = "P25" ; NET "GMII_RX_CLK" LOC = "P21" ; NET "GMII_RXD<7>" LOC = "G22" ; NET "GMII_RXD<6>" LOC = "K19" ; NET "GMII_RXD<5>" LOC = "K18" ; NET "GMII_RXD<4>" LOC = "E24" ; NET "GMII_RXD<3>" LOC = "F23" ; NET "GMII_RXD<2>" LOC = "L18" ; NET "GMII_RXD<1>" LOC = "L17" ; NET "GMII_RXD<0>" LOC = "F25" ; NET "GMII_RX_DV" LOC = "F24" ; NET "GMII_RX_ER" LOC = "L20" ; NET "GMII_CRS" LOC = "K20" ; NET "GMII_COL" LOC = "G23" ; NET "PHY_INTn" LOC = "L22" ; NET "MDIO" LOC = "K21" ; NET "MDC" LOC = "J23" ; NET "PHY_RESETn" LOC = "J22" ; NET "ETH_LED" LOC = "H20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; ## MIMO Interface NET "exp_time_out_p" LOC = "Y14" ; NET "exp_time_out_n" LOC = "AA14" ; NET "exp_time_in_p" LOC = "N18" ; NET "exp_time_in_n" LOC = "N17" ; NET "exp_user_out_p" LOC = "AF14" ; NET "exp_user_out_n" LOC = "AE14" ; NET "exp_user_in_p" LOC = "L24" ; NET "exp_user_in_n" LOC = "M23" ; ## SERDES NET "ser_enable" LOC = "R20" ; NET "ser_prbsen" LOC = "U23" ; NET "ser_loopen" LOC = "R19" ; NET "ser_rx_en" LOC = "Y21" ; NET "ser_tx_clk" LOC = "P23" ; # SERDES TX CLK NET "ser_t<15>" LOC = "V23" ; NET "ser_t<14>" LOC = "U22" ; NET "ser_t<13>" LOC = "V24" ; NET "ser_t<12>" LOC = "V25" ; NET "ser_t<11>" LOC = "W23" ; NET "ser_t<10>" LOC = "V22" ; NET "ser_t<9>" LOC = "T18" ; NET "ser_t<8>" LOC = "T17" ; NET "ser_t<7>" LOC = "Y24" ; NET "ser_t<6>" LOC = "Y25" ; NET "ser_t<5>" LOC = "U21" ; NET "ser_t<4>" LOC = "T20" ; NET "ser_t<3>" LOC = "Y22" ; NET "ser_t<2>" LOC = "Y23" ; NET "ser_t<1>" LOC = "U19" ; NET "ser_t<0>" LOC = "U18" ; NET "ser_tkmsb" LOC = "AA24" ; NET "ser_tklsb" LOC = "AA25" ; NET "ser_rx_clk" LOC = "P18" ; NET "ser_r<15>" LOC = "V21" ; NET "ser_r<14>" LOC = "U20" ; NET "ser_r<13>" LOC = "AA22" ; NET "ser_r<12>" LOC = "AA23" ; NET "ser_r<11>" LOC = "V18" ; NET "ser_r<10>" LOC = "V19" ; NET "ser_r<9>" LOC = "AB23" ; NET "ser_r<8>" LOC = "AC26" ; NET "ser_r<7>" LOC = "AB26" ; NET "ser_r<6>" LOC = "AD26" ; NET "ser_r<5>" LOC = "AC25" ; NET "ser_r<4>" LOC = "W20" ; NET "ser_r<3>" LOC = "W21" ; NET "ser_r<2>" LOC = "AC23" ; NET "ser_r<1>" LOC = "AC24" ; NET "ser_r<0>" LOC = "AE26" ; NET "ser_rkmsb" LOC = "AD25" ; NET "ser_rklsb" LOC = "Y20" ; ## SRAM NET "RAM_D<35>" LOC = "K16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<34>" LOC = "D20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<33>" LOC = "C20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<32>" LOC = "E21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<31>" LOC = "D21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<30>" LOC = "C21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<29>" LOC = "B21" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<28>" LOC = "H17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<27>" LOC = "G17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<26>" LOC = "B23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<25>" LOC = "A22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<24>" LOC = "D23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<23>" LOC = "C23" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<22>" LOC = "D22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<21>" LOC = "C22" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<20>" LOC = "F19" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<19>" LOC = "G20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<18>" LOC = "F20" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<17>" LOC = "F7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<16>" LOC = "E7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<15>" LOC = "G9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<14>" LOC = "H9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<13>" LOC = "G10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<12>" LOC = "H10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<11>" LOC = "A4" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<10>" LOC = "B4" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<9>" LOC = "C5" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<8>" LOC = "D6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<7>" LOC = "J11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<6>" LOC = "K11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<5>" LOC = "B7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<4>" LOC = "C7" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<3>" LOC = "B6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<2>" LOC = "C6" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<1>" LOC = "C8" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_D<0>" LOC = "D8" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<0>" LOC = "C11" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<1>" LOC = "E12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<2>" LOC = "F12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<3>" LOC = "D13" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<4>" LOC = "C12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<5>" LOC = "A12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<6>" LOC = "B12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<7>" LOC = "E14" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<8>" LOC = "F14" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<9>" LOC = "B15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<10>" LOC = "A15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<11>" LOC = "D16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<12>" LOC = "C15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<13>" LOC = "D17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<14>" LOC = "C16" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<15>" LOC = "F15" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<16>" LOC = "C17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<17>" LOC = "B17" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<18>" LOC = "B18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<19>" LOC = "A18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_A<20>" LOC = "D18" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_BWn<3>" LOC = "D9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_BWn<2>" LOC = "A9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_BWn<1>" LOC = "B9" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_BWn<0>" LOC = "G12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_ZZ" LOC = "J12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_LDn" LOC = "H12" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_OEn" LOC = "C10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_WEn" LOC = "D10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_CENn" LOC = "B10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; NET "RAM_CLK" LOC = "A10" |IOSTANDARD = LVCMOS25 |DRIVE = 8 |SLEW = FAST ; ## SPI Flash NET "flash_miso" LOC = "AF24" ; NET "flash_clk" LOC = "AE24" ; NET "flash_mosi" LOC = "AB15" ; NET "flash_cs" LOC = "AA7" ; ## MISC FPGA, unused for now #NET "PROG_B" LOC = "A2" ; #NET "PUDC_B" LOC = "G8" ; #NET "DONE" LOC = "AB21" ; #NET "INIT_B" LOC = "AA15" ; #NET "unnamed_net19" LOC = "AE9" ; # VS1 #NET "unnamed_net18" LOC = "AF9" ; # VS0 #NET "unnamed_net17" LOC = "AA12" ; # VS2 #NET "unnamed_net16" LOC = "Y7" ; # M2 #NET "unnamed_net15" LOC = "AC4" ; # M1 #NET "unnamed_net14" LOC = "AD4" ; # M0 #NET "unnamed_net13" LOC = "D4" ; # TMS #NET "unnamed_net12" LOC = "E23" ; # TDO #NET "unnamed_net11" LOC = "G7" ; # TDI #NET "unnamed_net10" LOC = "A25" ; # TCK #NET "unnamed_net20" LOC = "V20" ; # SUSPEND NET "clk_to_mac" TNM_NET = "clk_to_mac"; TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; NET "clk_fpga_p" TNM_NET = "clk_fpga_p"; TIMESPEC "TS_clk_fpga_p" = PERIOD "clk_fpga_p" 10 ns HIGH 50 %; NET "GMII_RX_CLK" TNM_NET = "GMII_RX_CLK"; TIMESPEC "TS_GMII_RX_CLK" = PERIOD "GMII_RX_CLK" 8 ns HIGH 50 %; NET "ser_rx_clk" TNM_NET = "ser_rx_clk"; TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; TIMESPEC "TS_clk_div_to_dsp_clk" = FROM "clk_div" TO "dcm_out" 10 ns; #NET "CLK_FPGA_P" CLOCK_DEDICATED_ROUTE = FALSE; #PIN "DCM_INST/DCM_SP.CLKIN" CLOCK_DEDICATED_ROUTE = FALSE; #NET "RAM_CLK" CLOCK_DEDICATED_ROUTE = FALSE; #PIN "DCM_INST1/DCM_SP.CLKFB" CLOCK_DEDICATED_ROUTE = FALSE; uhd-3.5.5/fpga/usrp2/top/N2x0/u2plus.v000066400000000000000000000355041224274632000172570ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps //`define LVDS 1 //`define DCM_FOR_RAMCLK ////////////////////////////////////////////////////////////////////////////////// module u2plus ( input CLK_FPGA_P, input CLK_FPGA_N, // Diff // ADC input ADC_clkout_p, input ADC_clkout_n, input ADCA_12_p, input ADCA_12_n, input ADCA_10_p, input ADCA_10_n, input ADCA_8_p, input ADCA_8_n, input ADCA_6_p, input ADCA_6_n, input ADCA_4_p, input ADCA_4_n, input ADCA_2_p, input ADCA_2_n, input ADCA_0_p, input ADCA_0_n, input ADCB_12_p, input ADCB_12_n, input ADCB_10_p, input ADCB_10_n, input ADCB_8_p, input ADCB_8_n, input ADCB_6_p, input ADCB_6_n, input ADCB_4_p, input ADCB_4_n, input ADCB_2_p, input ADCB_2_n, input ADCB_0_p, input ADCB_0_n, // DAC output reg [15:0] DACA, output reg [15:0] DACB, input DAC_LOCK, // unused for now // DB IO Pins inout [15:0] io_tx, inout [15:0] io_rx, // Misc, debug output [5:1] leds, // LED4 is shared w/INIT_B input FPGA_RESET, output [1:0] debug_clk, output [31:0] debug, output [3:1] TXD, input [3:1] RXD, // UARTs //input [3:0] dipsw, // Forgot DIP Switches... // Clock Gen Control output [1:0] clk_en, output [1:0] clk_sel, input CLK_FUNC, // FIXME is an input to control the 9510 input clk_status, inout SCL, inout SDA, // I2C // PPS input PPS_IN, input PPS2_IN, // SPI output SEN_CLK, output SCLK_CLK, output MOSI_CLK, input MISO_CLK, output SEN_DAC, output SCLK_DAC, output MOSI_DAC, input MISO_DAC, output SEN_ADC, output SCLK_ADC, output MOSI_ADC, output SEN_TX_DB, output SCLK_TX_DB, output MOSI_TX_DB, input MISO_TX_DB, output SEN_TX_DAC, output SCLK_TX_DAC, output MOSI_TX_DAC, output SEN_TX_ADC, output SCLK_TX_ADC, output MOSI_TX_ADC, input MISO_TX_ADC, output SEN_RX_DB, output SCLK_RX_DB, output MOSI_RX_DB, input MISO_RX_DB, output SEN_RX_DAC, output SCLK_RX_DAC, output MOSI_RX_DAC, output SEN_RX_ADC, output SCLK_RX_ADC, output MOSI_RX_ADC, input MISO_RX_ADC, // GigE PHY input CLK_TO_MAC, output reg [7:0] GMII_TXD, output reg GMII_TX_EN, output reg GMII_TX_ER, output GMII_GTX_CLK, input GMII_TX_CLK, // 100mbps clk input GMII_RX_CLK, input [7:0] GMII_RXD, input GMII_RX_DV, input GMII_RX_ER, input GMII_COL, input GMII_CRS, input PHY_INTn, // open drain inout MDIO, output MDC, output PHY_RESETn, output ETH_LED, // input POR, // Expansion input exp_time_in_p, input exp_time_in_n, // Diff output exp_time_out_p, output exp_time_out_n, // Diff input exp_user_in_p, input exp_user_in_n, // Diff output exp_user_out_p, output exp_user_out_n, // Diff // SERDES output ser_enable, output ser_prbsen, output ser_loopen, output ser_rx_en, output ser_tx_clk, output reg [15:0] ser_t, output reg ser_tklsb, output reg ser_tkmsb, input ser_rx_clk, input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, // SRAM inout [35:0] RAM_D, output [20:0] RAM_A, output [3:0] RAM_BWn, output RAM_ZZ, output RAM_LDn, output RAM_OEn, output RAM_WEn, output RAM_CENn, output RAM_CLK, // SPI Flash output flash_cs, output flash_clk, output flash_mosi, input flash_miso ); wire CLK_TO_MAC_int, CLK_TO_MAC_int2; IBUFG phyclk (.O(CLK_TO_MAC_int), .I(CLK_TO_MAC)); BUFG phyclk2 (.O(CLK_TO_MAC_int2), .I(CLK_TO_MAC_int)); // FPGA-specific pins connections wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; IBUFGDS clk_fpga_pin (.O(clk_fpga),.I(CLK_FPGA_P),.IB(CLK_FPGA_N)); defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; wire exp_time_in; IBUFDS exp_time_in_pin (.O(exp_time_in),.I(exp_time_in_p),.IB(exp_time_in_n)); defparam exp_time_in_pin.IOSTANDARD = "LVDS_25"; wire exp_time_out; OBUFDS exp_time_out_pin (.O(exp_time_out_p),.OB(exp_time_out_n),.I(exp_time_out)); defparam exp_time_out_pin.IOSTANDARD = "LVDS_25"; wire exp_user_in; IBUFDS exp_user_in_pin (.O(exp_user_in),.I(exp_user_in_p),.IB(exp_user_in_n)); defparam exp_user_in_pin.IOSTANDARD = "LVDS_25"; wire exp_user_out; OBUFDS exp_user_out_pin (.O(exp_user_out_p),.OB(exp_user_out_n),.I(exp_user_out)); defparam exp_user_out_pin.IOSTANDARD = "LVDS_25"; reg [5:0] clock_ready_d; always @(posedge clk_fpga) clock_ready_d[5:0] <= {clock_ready_d[4:0],clock_ready}; wire dcm_rst = ~&clock_ready_d & |clock_ready_d; // ADC A is inverted on the schematic to facilitate a clean layout // We account for that here by inverting it `ifdef LVDS wire [13:0] adc_a, adc_a_inv, adc_b; capture_ddrlvds #(.WIDTH(14)) capture_ddrlvds (.clk(dsp_clk), .ssclk_p(ADC_clkout_p), .ssclk_n(ADC_clkout_n), .in_p({{ADCA_12_p, ADCA_10_p, ADCA_8_p, ADCA_6_p, ADCA_4_p, ADCA_2_p, ADCA_0_p}, {ADCB_12_p, ADCB_10_p, ADCB_8_p, ADCB_6_p, ADCB_4_p, ADCB_2_p, ADCB_0_p}}), .in_n({{ADCA_12_n, ADCA_10_n, ADCA_8_n, ADCA_6_n, ADCA_4_n, ADCA_2_n, ADCA_0_n}, {ADCB_12_n, ADCB_10_n, ADCB_8_n, ADCB_6_n, ADCB_4_n, ADCB_2_n, ADCB_0_n}}), .out({adc_a_inv,adc_b})); assign adc_a = ~adc_a_inv; `else reg [13:0] adc_a, adc_b, adc_a_pre, adc_b_pre; always @(posedge dsp_clk) begin adc_a_pre <= {ADCA_12_p,ADCA_12_n, ADCA_10_p,ADCA_10_n, ADCA_8_p,ADCA_8_n, ADCA_6_p,ADCA_6_n, ADCA_4_p,ADCA_4_n, ADCA_2_p,ADCA_2_n, ADCA_0_p,ADCA_0_n }; adc_b_pre <= {ADCB_12_p,ADCB_12_n, ADCB_10_p,ADCB_10_n, ADCB_8_p,ADCB_8_n, ADCB_6_p,ADCB_6_n, ADCB_4_p,ADCB_4_n, ADCB_2_p,ADCB_2_n, ADCB_0_p,ADCB_0_n }; adc_a <= ~adc_a_pre; //Note: A must be inverted, but not B adc_b <= adc_b_pre; end `endif // !`ifdef LVDS // Handle Clocks DCM DCM_INST (.CLKFB(dsp_clk), .CLKIN(clk_fpga), .DSSEN(0), .PSCLK(0), .PSEN(0), .PSINCDEC(0), .RST(dcm_rst), .CLKDV(clk_div), .CLKFX(), .CLKFX180(), .CLK0(dcm_out), .CLK2X(), .CLK2X180(), .CLK90(), .CLK180(), .CLK270(clk270_100), .LOCKED(LOCKED_OUT), .PSDONE(), .STATUS()); defparam DCM_INST.CLK_FEEDBACK = "1X"; defparam DCM_INST.CLKDV_DIVIDE = 2.0; defparam DCM_INST.CLKFX_DIVIDE = 1; defparam DCM_INST.CLKFX_MULTIPLY = 4; defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE"; defparam DCM_INST.CLKIN_PERIOD = 10.000; defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE"; defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW"; defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST.FACTORY_JF = 16'h8080; defparam DCM_INST.PHASE_SHIFT = 0; defparam DCM_INST.STARTUP_WAIT = "FALSE"; BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); // Create clock for external SRAM thats -90degree phase to DSPCLK (i.e) 2nS earlier at 100MHz. BUFG clk270_100_buf_i1 (.I(clk270_100), .O(clk270_100_buf)); OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), .C0(clk270_100_buf), .C1(~clk270_100_buf), .CE(1'b1), .D0(1'b1), .D1(1'b0), .R(1'b0), .S(1'b0)); // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); // LEDs are active low outputs wire [5:0] leds_int; assign {ETH_LED,leds} = {6'b011111 ^ leds_int}; // drive low to turn on leds // SPI wire miso, mosi, sclk; assign {SCLK_CLK,MOSI_CLK} = ~SEN_CLK ? {sclk,mosi} : 2'B0; assign {SCLK_DAC,MOSI_DAC} = ~SEN_DAC ? {sclk,mosi} : 2'B0; assign {SCLK_ADC,MOSI_ADC} = ~SEN_ADC ? {sclk,mosi} : 2'B0; assign {SCLK_TX_DB,MOSI_TX_DB} = ~SEN_TX_DB ? {sclk,mosi} : 2'B0; assign {SCLK_TX_DAC,MOSI_TX_DAC} = ~SEN_TX_DAC ? {sclk,mosi} : 2'B0; assign {SCLK_TX_ADC,MOSI_TX_ADC} = ~SEN_TX_ADC ? {sclk,mosi} : 2'B0; assign {SCLK_RX_DB,MOSI_RX_DB} = ~SEN_RX_DB ? {sclk,mosi} : 2'B0; assign {SCLK_RX_DAC,MOSI_RX_DAC} = ~SEN_RX_DAC ? {sclk,mosi} : 2'B0; assign {SCLK_RX_ADC,MOSI_RX_ADC} = ~SEN_RX_ADC ? {sclk,mosi} : 2'B0; assign miso = (~SEN_CLK & MISO_CLK) | (~SEN_DAC & MISO_DAC) | (~SEN_TX_DB & MISO_TX_DB) | (~SEN_TX_ADC & MISO_TX_ADC) | (~SEN_RX_DB & MISO_RX_DB) | (~SEN_RX_ADC & MISO_RX_ADC); wire GMII_TX_EN_unreg, GMII_TX_ER_unreg; wire [7:0] GMII_TXD_unreg; wire GMII_GTX_CLK_int; always @(posedge GMII_GTX_CLK_int) begin GMII_TX_EN <= GMII_TX_EN_unreg; GMII_TX_ER <= GMII_TX_ER_unreg; GMII_TXD <= GMII_TXD_unreg; end OFDDRRSE OFDDRRSE_gmii_inst (.Q(GMII_GTX_CLK), // Data output (connect directly to top-level port) .C0(GMII_GTX_CLK_int), // 0 degree clock input .C1(~GMII_GTX_CLK_int), // 180 degree clock input .CE(1), // Clock enable input .D0(0), // Posedge data input .D1(1), // Negedge data input .R(0), // Synchronous reset input .S(0) // Synchronous preset input ); wire ser_tklsb_unreg, ser_tkmsb_unreg; wire [15:0] ser_t_unreg; wire ser_tx_clk_int; always @(posedge ser_tx_clk_int) begin ser_tklsb <= ser_tklsb_unreg; ser_tkmsb <= ser_tkmsb_unreg; ser_t <= ser_t_unreg; end assign ser_tx_clk = clk_fpga; reg [15:0] ser_r_int; reg ser_rklsb_int, ser_rkmsb_int; always @(posedge ser_rx_clk) begin ser_r_int <= ser_r; ser_rklsb_int <= ser_rklsb; ser_rkmsb_int <= ser_rkmsb; end /* OFDDRRSE OFDDRRSE_serdes_inst (.Q(ser_tx_clk), // Data output (connect directly to top-level port) .C0(ser_tx_clk_int), // 0 degree clock input .C1(~ser_tx_clk_int), // 180 degree clock input .CE(1), // Clock enable input .D0(0), // Posedge data input .D1(1), // Negedge data input .R(0), // Synchronous reset input .S(0) // Synchronous preset input ); */ // // Instantiate IO for Bidirectional bus to SRAM // wire [35:0] RAM_D_pi; wire [35:0] RAM_D_po; wire RAM_D_poe; genvar i; generate for (i=0;i<36;i=i+1) begin : gen_RAM_D_IO IOBUF #( .DRIVE(12), .IOSTANDARD("LVCMOS25"), .SLEW("FAST") ) RAM_D_i ( .O(RAM_D_pi[i]), .I(RAM_D_po[i]), .IO(RAM_D[i]), .T(RAM_D_poe) ); end // block: gen_RAM_D_IO endgenerate wire [15:0] dac_a_int, dac_b_int; // DAC A and B are swapped in schematic to facilitate clean layout // DAC A is also inverted in schematic to facilitate clean layout always @(negedge dsp_clk) DACA <= ~dac_b_int; always @(negedge dsp_clk) DACB <= dac_a_int; wire pps; assign pps = PPS_IN ^ PPS2_IN; u2plus_core u2p_c(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), .clk_to_mac (CLK_TO_MAC_int2), .pps_in (pps), .leds (leds_int), .debug (debug[31:0]), .debug_clk (debug_clk[1:0]), .exp_time_in (exp_time_in), .exp_time_out (exp_time_out), .GMII_COL (GMII_COL), .GMII_CRS (GMII_CRS), .GMII_TXD (GMII_TXD_unreg[7:0]), .GMII_TX_EN (GMII_TX_EN_unreg), .GMII_TX_ER (GMII_TX_ER_unreg), .GMII_GTX_CLK (GMII_GTX_CLK_int), .GMII_TX_CLK (GMII_TX_CLK), .GMII_RXD (GMII_RXD[7:0]), .GMII_RX_CLK (GMII_RX_CLK), .GMII_RX_DV (GMII_RX_DV), .GMII_RX_ER (GMII_RX_ER), .MDIO (MDIO), .MDC (MDC), .PHY_INTn (PHY_INTn), .PHY_RESETn (PHY_RESETn), .ser_enable (ser_enable), .ser_prbsen (ser_prbsen), .ser_loopen (ser_loopen), .ser_rx_en (ser_rx_en), .ser_tx_clk (ser_tx_clk_int), .ser_t (ser_t_unreg[15:0]), .ser_tklsb (ser_tklsb_unreg), .ser_tkmsb (ser_tkmsb_unreg), .ser_rx_clk (ser_rx_clk), .ser_r (ser_r_int[15:0]), .ser_rklsb (ser_rklsb_int), .ser_rkmsb (ser_rkmsb_int), .adc_a (adc_a[13:0]), .adc_ovf_a (1'b0), .adc_on_a (), .adc_oe_a (), .adc_b (adc_b[13:0]), .adc_ovf_b (1'b0), .adc_on_b (), .adc_oe_b (), .dac_a (dac_a_int[15:0]), .dac_b (dac_b_int[15:0]), .scl_pad_i (scl_pad_i), .scl_pad_o (scl_pad_o), .scl_pad_oen_o (scl_pad_oen_o), .sda_pad_i (sda_pad_i), .sda_pad_o (sda_pad_o), .sda_pad_oen_o (sda_pad_oen_o), .clk_en (clk_en[1:0]), .clk_sel (clk_sel[1:0]), .clk_func (clk_func), .clk_status (clk_status), .sclk (sclk), .mosi (mosi), .miso (miso), .sen_clk (SEN_CLK), .sen_dac (SEN_DAC), .sen_adc (SEN_ADC), .sen_tx_db (SEN_TX_DB), .sen_tx_adc (SEN_TX_ADC), .sen_tx_dac (SEN_TX_DAC), .sen_rx_db (SEN_RX_DB), .sen_rx_adc (SEN_RX_ADC), .sen_rx_dac (SEN_RX_DAC), .io_tx (io_tx[15:0]), .io_rx (io_rx[15:0]), .RAM_D_po (RAM_D_po), .RAM_D_pi (RAM_D_pi), .RAM_D_poe (RAM_D_poe), .RAM_A (RAM_A), .RAM_CE1n (RAM_CE1n), .RAM_CENn (RAM_CENn), .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), .uart_tx_o (TXD[3:1]), .uart_rx_i ({1'b1,RXD[3:1]}), .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2), .button (FPGA_RESET), .spiflash_cs (flash_cs), .spiflash_clk (flash_clk), .spiflash_miso (flash_miso), .spiflash_mosi (flash_mosi) ); // Drive low so that RAM does not sleep. assign RAM_ZZ = 0; // Byte Writes are qualified by the global write enable // Always do 36bit operations to extram. assign RAM_BWn = 4'b0000; endmodule // u2plus uhd-3.5.5/fpga/usrp2/top/N2x0/u2plus_core.v000066400000000000000000001005721224274632000202650ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // //////////////////////////////////////////////////////////////////////////////// // Module Name: u2_core // //////////////////////////////////////////////////////////////////////////////// module u2plus_core (// Clocks input dsp_clk, input wb_clk, output clock_ready, input clk_to_mac, input pps_in, // Misc, debug output [7:0] leds, output [31:0] debug, output [1:0] debug_clk, // Expansion input exp_time_in, output exp_time_out, // GMII // GMII-CTRL input GMII_COL, input GMII_CRS, // GMII-TX output [7:0] GMII_TXD, output GMII_TX_EN, output GMII_TX_ER, output GMII_GTX_CLK, input GMII_TX_CLK, // 100mbps clk // GMII-RX input [7:0] GMII_RXD, input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, // GMII-Management inout MDIO, output MDC, input PHY_INTn, // open drain output PHY_RESETn, // SERDES output ser_enable, output ser_prbsen, output ser_loopen, output ser_rx_en, output ser_tx_clk, output [15:0] ser_t, output ser_tklsb, output ser_tkmsb, input ser_rx_clk, input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, input por, output config_success, // ADC input [13:0] adc_a, input adc_ovf_a, output adc_on_a, output adc_oe_a, input [13:0] adc_b, input adc_ovf_b, output adc_on_b, output adc_oe_b, // DAC output [15:0] dac_a, output [15:0] dac_b, // I2C input scl_pad_i, output scl_pad_o, output scl_pad_oen_o, input sda_pad_i, output sda_pad_o, output sda_pad_oen_o, // Clock Gen Control output [1:0] clk_en, output [1:0] clk_sel, input clk_func, // FIXME is an input to control the 9510 input clk_status, // Generic SPI output sclk, output mosi, input miso, output sen_clk, output sen_dac, output sen_adc, output sen_tx_db, output sen_tx_adc, output sen_tx_dac, output sen_rx_db, output sen_rx_adc, output sen_rx_dac, // GPIO to DBoards inout [15:0] io_tx, inout [15:0] io_rx, // External RAM input [35:0] RAM_D_pi, output [35:0] RAM_D_po, output RAM_D_poe, output [20:0] RAM_A, output RAM_CE1n, output RAM_CENn, output RAM_WEn, output RAM_OEn, output RAM_LDn, // Debug stuff output [3:0] uart_tx_o, input [3:0] uart_rx_i, output [3:0] uart_baud_o, input sim_mode, input [3:0] clock_divider, input button, output spiflash_cs, output spiflash_clk, input spiflash_miso, output spiflash_mosi ); localparam SR_MISC = 0; // 7 regs localparam SR_USER_REGS = 8; // 2 localparam SR_TIME64 = 10; // 6 localparam SR_BUF_POOL = 16; // 4 localparam SR_SPI_CORE = 20; // 3 localparam SR_RX_FRONT = 24; // 5 localparam SR_RX_CTRL0 = 32; // 9 localparam SR_RX_DSP0 = 48; // 7 localparam SR_RX_CTRL1 = 80; // 9 localparam SR_RX_DSP1 = 96; // 7 localparam SR_TX_FRONT = 128; // ? localparam SR_TX_CTRL = 144; // 6 localparam SR_TX_DSP = 160; // 5 localparam SR_GPIO = 184; // 5 localparam SR_UDP_SM = 192; // 64 // FIFO Sizes, 9 = 512 lines, 10 = 1024, 11 = 2048 // all (most?) are 36 bits wide, so 9 is 1 BRAM, 10 is 2, 11 is 4 BRAMs // localparam DSP_TX_FIFOSIZE = 9; unused -- DSPTX uses extram fifo localparam DSP_RX_FIFOSIZE = 10; localparam DSP_TX_FIFOSIZE = 10; localparam ETH_TX_FIFOSIZE = 9; localparam ETH_RX_FIFOSIZE = 11; localparam SERDES_TX_FIFOSIZE = 9; localparam SERDES_RX_FIFOSIZE = 9; // RX currently doesn't use a fifo? wire [7:0] set_addr, set_addr_dsp, set_addr_user; wire [31:0] set_data, set_data_dsp, set_data_user; wire set_stb, set_stb_dsp, set_stb_user; reg wb_rst; wire dsp_rst = wb_rst; wire [31:0] status; wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; wire proc_int, overrun0, overrun1, underrun; wire [3:0] uart_tx_int, uart_rx_int; wire [31:0] debug_gpio_0, debug_gpio_1; wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, debug_extfifo, debug_extfifo2; wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; wire ser_rx_empty, ser_tx_empty, dsp_rx_empty, dsp_tx_empty, eth_rx_empty, eth_tx_empty, eth_rx_empty2; wire serdes_link_up, good_sync; wire epoch; wire [31:0] irq; wire [63:0] vita_time, vita_time_pps; wire run_rx0, run_rx1, run_tx; reg run_rx0_d1, run_rx1_d1; // /////////////////////////////////////////////////////////////////////////////////////////////// // Wishbone Single Master INTERCON localparam dw = 32; // Data bus width localparam aw = 16; // Address bus width, for byte addressibility, 16 = 64K byte memory space localparam sw = 4; // Select width -- 32-bit data bus with 8-bit granularity. wire [dw-1:0] m0_dat_o, m0_dat_i; wire [dw-1:0] s0_dat_o, s1_dat_o, s0_dat_i, s1_dat_i, s2_dat_o, s3_dat_o, s2_dat_i, s3_dat_i, s4_dat_o, s5_dat_o, s4_dat_i, s5_dat_i, s6_dat_o, s7_dat_o, s6_dat_i, s7_dat_i, s8_dat_o, s9_dat_o, s8_dat_i, s9_dat_i, sa_dat_o, sa_dat_i, sb_dat_i, sb_dat_o, sc_dat_i, sc_dat_o, sd_dat_i, sd_dat_o, se_dat_i, se_dat_o, sf_dat_i, sf_dat_o; wire [aw-1:0] m0_adr,s0_adr,s1_adr,s2_adr,s3_adr,s4_adr,s5_adr,s6_adr,s7_adr,s8_adr,s9_adr,sa_adr,sb_adr,sc_adr, sd_adr, se_adr, sf_adr; wire [sw-1:0] m0_sel,s0_sel,s1_sel,s2_sel,s3_sel,s4_sel,s5_sel,s6_sel,s7_sel,s8_sel,s9_sel,sa_sel,sb_sel,sc_sel, sd_sel, se_sel, sf_sel; wire m0_ack,s0_ack,s1_ack,s2_ack,s3_ack,s4_ack,s5_ack,s6_ack,s7_ack,s8_ack,s9_ack,sa_ack,sb_ack,sc_ack, sd_ack, se_ack, sf_ack; wire m0_stb,s0_stb,s1_stb,s2_stb,s3_stb,s4_stb,s5_stb,s6_stb,s7_stb,s8_stb,s9_stb,sa_stb,sb_stb,sc_stb, sd_stb, se_stb, sf_stb; wire m0_cyc,s0_cyc,s1_cyc,s2_cyc,s3_cyc,s4_cyc,s5_cyc,s6_cyc,s7_cyc,s8_cyc,s9_cyc,sa_cyc,sb_cyc,sc_cyc, sd_cyc, se_cyc, sf_cyc; wire m0_err, m0_rty; wire m0_we,s0_we,s1_we,s2_we,s3_we,s4_we,s5_we,s6_we,s7_we,s8_we,s9_we,sa_we,sb_we,sc_we,sd_we,se_we,sf_we; wb_1master #(.decode_w(8), .s0_addr(8'b0000_0000),.s0_mask(8'b1100_0000), // Main RAM (0-16K) .s1_addr(8'b0100_0000),.s1_mask(8'b1111_0000), // Packet Router (16-20K) .s2_addr(8'b0101_0000),.s2_mask(8'b1111_1100), // SPI .s3_addr(8'b0101_0100),.s3_mask(8'b1111_1100), // I2C .s4_addr(8'b0101_1000),.s4_mask(8'b1111_1100), // Unused .s5_addr(8'b0101_1100),.s5_mask(8'b1111_1100), // Readback .s6_addr(8'b0110_0000),.s6_mask(8'b1111_0000), // Ethernet MAC .s7_addr(8'b0111_0000),.s7_mask(8'b1111_0000), // Settings Bus (only uses 1K) .s8_addr(8'b1000_0000),.s8_mask(8'b1111_1100), // PIC .s9_addr(8'b1000_0100),.s9_mask(8'b1111_1100), // Unused .sa_addr(8'b1000_1000),.sa_mask(8'b1111_1100), // UART .sb_addr(8'b1000_1100),.sb_mask(8'b1111_1100), // Unused .sc_addr(8'b1001_0000),.sc_mask(8'b1111_0000), // Unused .sd_addr(8'b1010_0000),.sd_mask(8'b1111_0000), // ICAP .se_addr(8'b1011_0000),.se_mask(8'b1111_0000), // SPI Flash .sf_addr(8'b1100_0000),.sf_mask(8'b1100_0000), // 48K-64K, Boot RAM .dw(dw),.aw(aw),.sw(sw)) wb_1master (.clk_i(wb_clk),.rst_i(wb_rst), .m0_dat_o(m0_dat_o),.m0_ack_o(m0_ack),.m0_err_o(m0_err),.m0_rty_o(m0_rty),.m0_dat_i(m0_dat_i), .m0_adr_i(m0_adr),.m0_sel_i(m0_sel),.m0_we_i(m0_we),.m0_cyc_i(m0_cyc),.m0_stb_i(m0_stb), .s0_dat_o(s0_dat_o),.s0_adr_o(s0_adr),.s0_sel_o(s0_sel),.s0_we_o (s0_we),.s0_cyc_o(s0_cyc),.s0_stb_o(s0_stb), .s0_dat_i(s0_dat_i),.s0_ack_i(s0_ack),.s0_err_i(0),.s0_rty_i(0), .s1_dat_o(s1_dat_o),.s1_adr_o(s1_adr),.s1_sel_o(s1_sel),.s1_we_o (s1_we),.s1_cyc_o(s1_cyc),.s1_stb_o(s1_stb), .s1_dat_i(s1_dat_i),.s1_ack_i(s1_ack),.s1_err_i(0),.s1_rty_i(0), .s2_dat_o(s2_dat_o),.s2_adr_o(s2_adr),.s2_sel_o(s2_sel),.s2_we_o (s2_we),.s2_cyc_o(s2_cyc),.s2_stb_o(s2_stb), .s2_dat_i(s2_dat_i),.s2_ack_i(s2_ack),.s2_err_i(0),.s2_rty_i(0), .s3_dat_o(s3_dat_o),.s3_adr_o(s3_adr),.s3_sel_o(s3_sel),.s3_we_o (s3_we),.s3_cyc_o(s3_cyc),.s3_stb_o(s3_stb), .s3_dat_i(s3_dat_i),.s3_ack_i(s3_ack),.s3_err_i(0),.s3_rty_i(0), .s4_dat_o(s4_dat_o),.s4_adr_o(s4_adr),.s4_sel_o(s4_sel),.s4_we_o (s4_we),.s4_cyc_o(s4_cyc),.s4_stb_o(s4_stb), .s4_dat_i(s4_dat_i),.s4_ack_i(s4_ack),.s4_err_i(0),.s4_rty_i(0), .s5_dat_o(s5_dat_o),.s5_adr_o(s5_adr),.s5_sel_o(s5_sel),.s5_we_o (s5_we),.s5_cyc_o(s5_cyc),.s5_stb_o(s5_stb), .s5_dat_i(s5_dat_i),.s5_ack_i(s5_ack),.s5_err_i(0),.s5_rty_i(0), .s6_dat_o(s6_dat_o),.s6_adr_o(s6_adr),.s6_sel_o(s6_sel),.s6_we_o (s6_we),.s6_cyc_o(s6_cyc),.s6_stb_o(s6_stb), .s6_dat_i(s6_dat_i),.s6_ack_i(s6_ack),.s6_err_i(0),.s6_rty_i(0), .s7_dat_o(s7_dat_o),.s7_adr_o(s7_adr),.s7_sel_o(s7_sel),.s7_we_o (s7_we),.s7_cyc_o(s7_cyc),.s7_stb_o(s7_stb), .s7_dat_i(s7_dat_i),.s7_ack_i(s7_ack),.s7_err_i(0),.s7_rty_i(0), .s8_dat_o(s8_dat_o),.s8_adr_o(s8_adr),.s8_sel_o(s8_sel),.s8_we_o (s8_we),.s8_cyc_o(s8_cyc),.s8_stb_o(s8_stb), .s8_dat_i(s8_dat_i),.s8_ack_i(s8_ack),.s8_err_i(0),.s8_rty_i(0), .s9_dat_o(s9_dat_o),.s9_adr_o(s9_adr),.s9_sel_o(s9_sel),.s9_we_o (s9_we),.s9_cyc_o(s9_cyc),.s9_stb_o(s9_stb), .s9_dat_i(s9_dat_i),.s9_ack_i(s9_ack),.s9_err_i(0),.s9_rty_i(0), .sa_dat_o(sa_dat_o),.sa_adr_o(sa_adr),.sa_sel_o(sa_sel),.sa_we_o(sa_we),.sa_cyc_o(sa_cyc),.sa_stb_o(sa_stb), .sa_dat_i(sa_dat_i),.sa_ack_i(sa_ack),.sa_err_i(0),.sa_rty_i(0), .sb_dat_o(sb_dat_o),.sb_adr_o(sb_adr),.sb_sel_o(sb_sel),.sb_we_o(sb_we),.sb_cyc_o(sb_cyc),.sb_stb_o(sb_stb), .sb_dat_i(sb_dat_i),.sb_ack_i(sb_ack),.sb_err_i(0),.sb_rty_i(0), .sc_dat_o(sc_dat_o),.sc_adr_o(sc_adr),.sc_sel_o(sc_sel),.sc_we_o(sc_we),.sc_cyc_o(sc_cyc),.sc_stb_o(sc_stb), .sc_dat_i(sc_dat_i),.sc_ack_i(sc_ack),.sc_err_i(0),.sc_rty_i(0), .sd_dat_o(sd_dat_o),.sd_adr_o(sd_adr),.sd_sel_o(sd_sel),.sd_we_o(sd_we),.sd_cyc_o(sd_cyc),.sd_stb_o(sd_stb), .sd_dat_i(sd_dat_i),.sd_ack_i(sd_ack),.sd_err_i(0),.sd_rty_i(0), .se_dat_o(se_dat_o),.se_adr_o(se_adr),.se_sel_o(se_sel),.se_we_o(se_we),.se_cyc_o(se_cyc),.se_stb_o(se_stb), .se_dat_i(se_dat_i),.se_ack_i(se_ack),.se_err_i(0),.se_rty_i(0), .sf_dat_o(sf_dat_o),.sf_adr_o(sf_adr),.sf_sel_o(sf_sel),.sf_we_o(sf_we),.sf_cyc_o(sf_cyc),.sf_stb_o(sf_stb), .sf_dat_i(sf_dat_i),.sf_ack_i(sf_ack),.sf_err_i(0),.sf_rty_i(0)); assign s2_ack = 0; assign s4_ack = 0; assign s9_ack = 0; assign sb_ack = 0; assign sc_ack = 0; // //////////////////////////////////////////////////////////////////////////////////////// // Reset Controller reg cpu_bldr_ctrl_state; localparam CPU_BLDR_CTRL_WAIT = 0; localparam CPU_BLDR_CTRL_DONE = 1; wire bldr_done; wire por_rst; wire [aw-1:0] cpu_adr; // Swap boot ram and main ram when in bootloader mode assign m0_adr = (^cpu_adr[15:14] | (cpu_bldr_ctrl_state == CPU_BLDR_CTRL_DONE)) ? cpu_adr : cpu_adr ^ 16'hC000; system_control sysctrl (.wb_clk_i(wb_clk), .wb_rst_o(por_rst), .ram_loader_done_i(1'b1) ); always @(posedge wb_clk) if(por_rst) begin cpu_bldr_ctrl_state <= CPU_BLDR_CTRL_WAIT; wb_rst <= 1'b1; end else begin case(cpu_bldr_ctrl_state) CPU_BLDR_CTRL_WAIT: begin wb_rst <= 1'b0; if (bldr_done == 1'b1) begin //set by the bootloader cpu_bldr_ctrl_state <= CPU_BLDR_CTRL_DONE; wb_rst <= 1'b1; end end CPU_BLDR_CTRL_DONE: begin //stay here forever wb_rst <= 1'b0; end endcase //cpu_bldr_ctrl_state end // ///////////////////////////////////////////////////////////////////////// // Processor assign bus_error = m0_err | m0_rty; wire [63:0] zpu_status; zpu_wb_top #(.dat_w(dw), .adr_w(aw), .sel_w(sw)) zpu_top0 (.clk(wb_clk), .rst(wb_rst), .enb(~wb_rst), // Data Wishbone bus to system bus fabric .we_o(m0_we),.stb_o(m0_stb),.dat_o(m0_dat_i),.adr_o(cpu_adr), .dat_i(m0_dat_o),.ack_i(m0_ack),.sel_o(m0_sel),.cyc_o(m0_cyc), // Interrupts and exceptions .zpu_status(zpu_status), .interrupt(proc_int & 1'b0)); // ///////////////////////////////////////////////////////////////////////// // Dual Ported Boot RAM -- D-Port is Slave #0 on main Wishbone // Dual Ported Main RAM -- D-Port is Slave #F on main Wishbone // I-port connects directly to processor bootram bootram(.clk(wb_clk), .reset(wb_rst), .if_adr(14'b0), .if_data(), .dwb_adr_i(sf_adr[13:0]), .dwb_dat_i(sf_dat_o), .dwb_dat_o(sf_dat_i), .dwb_we_i(sf_we), .dwb_ack_o(sf_ack), .dwb_stb_i(sf_stb), .dwb_sel_i(sf_sel)); ////blinkenlights v0.1 //defparam bootram.RAM0.INIT_00=256'hbc32fff0_aa43502b_b00000fe_30630001_80000000_10600000_a48500ff_10a00000; //defparam bootram.RAM0.INIT_01=256'ha48500ff_b810ffd0_f880200c_30a50001_10830000_308000ff_be23000c_a4640001; `include "bootloader.rmi" ram_harvard2 #(.AWIDTH(14),.RAM_SIZE(16384)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), .if_adr(14'b0), .if_data(), .dwb_adr_i(s0_adr[13:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool, slave #1 wire rd0_ready_i, rd0_ready_o; wire rd1_ready_i, rd1_ready_o; wire rd2_ready_i, rd2_ready_o; wire rd3_ready_i, rd3_ready_o; wire [35:0] rd0_dat, rd1_dat, rd2_dat, rd3_dat; wire wr0_ready_i, wr0_ready_o; wire wr1_ready_i, wr1_ready_o; wire wr2_ready_i, wr2_ready_o; wire wr3_ready_i, wr3_ready_o; wire [35:0] wr0_dat, wr1_dat, wr2_dat, wr3_dat; wire [35:0] sfc_wr_data, sfc_rd_data; wire sfc_wr_ready, sfc_rd_ready; wire sfc_wr_valid, sfc_rd_valid; wire [35:0] tx_err_data; wire tx_err_src_rdy, tx_err_dst_rdy; wire [31:0] router_debug; packet_router #(.BUF_SIZE(9), .UDP_BASE(SR_UDP_SM), .CTRL_BASE(SR_BUF_POOL)) packet_router (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), .wb_we_i(s1_we),.wb_stb_i(s1_stb),.wb_adr_i(s1_adr),.wb_dat_i(s1_dat_o), .wb_dat_o(s1_dat_i),.wb_ack_o(s1_ack),.wb_err_o(),.wb_rty_o(), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), .stream_clk(dsp_clk), .stream_rst(dsp_rst), .stream_clr(1'b0), .status(status), .sys_int_o(buffer_int), .debug(router_debug), .ser_inp_data(wr0_dat), .ser_inp_valid(wr0_ready_i), .ser_inp_ready(wr0_ready_o), .dsp0_inp_data(wr1_dat), .dsp0_inp_valid(wr1_ready_i), .dsp0_inp_ready(wr1_ready_o), .dsp1_inp_data(wr3_dat), .dsp1_inp_valid(wr3_ready_i), .dsp1_inp_ready(wr3_ready_o), .eth_inp_data(wr2_dat), .eth_inp_valid(wr2_ready_i), .eth_inp_ready(wr2_ready_o), .err_inp_data(tx_err_data), .err_inp_valid(tx_err_src_rdy), .err_inp_ready(tx_err_dst_rdy), .ctl_inp_data(sfc_wr_data), .ctl_inp_valid(sfc_wr_valid), .ctl_inp_ready(sfc_wr_ready), .ser_out_data(rd0_dat), .ser_out_valid(rd0_ready_o), .ser_out_ready(rd0_ready_i), .dsp_out_data(rd1_dat), .dsp_out_valid(rd1_ready_o), .dsp_out_ready(rd1_ready_i), .ctl_out_data(sfc_rd_data), .ctl_out_valid(sfc_rd_valid), .ctl_out_ready(sfc_rd_ready), .eth_out_data(rd2_dat), .eth_out_valid(rd2_ready_o), .eth_out_ready(rd2_ready_i) ); // ///////////////////////////////////////////////////////////////////////// // SPI -- Slave #2 wire [31:0] spi_debug; wire [31:0] spi_readback; wire spi_ready; simple_spi_core #(.BASE(SR_SPI_CORE), .WIDTH(9)) shared_spi( .clock(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), .readback(spi_readback), .ready(spi_ready), .sen({sen_adc, sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}), .sclk(sclk), .mosi(mosi), .miso(miso), .debug(spi_debug) ); // ///////////////////////////////////////////////////////////////////////// // I2C -- Slave #3 i2c_master_top #(.ARST_LVL(1)) i2c (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.arst_i(1'b0), .wb_adr_i(s3_adr[4:2]),.wb_dat_i(s3_dat_o[7:0]),.wb_dat_o(s3_dat_i[7:0]), .wb_we_i(s3_we),.wb_stb_i(s3_stb),.wb_cyc_i(s3_cyc), .wb_ack_o(s3_ack),.wb_inta_o(i2c_int), .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_pad_oen_o), .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_pad_oen_o) ); assign s3_dat_i[31:8] = 24'd0; // ///////////////////////////////////////////////////////////////////////// // GPIOs wire [31:0] gpio_readback; gpio_atr #(.BASE(SR_GPIO), .WIDTH(32)) gpio_atr(.clk(dsp_clk),.reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .rx(run_rx0_d1 | run_rx1_d1), .tx(run_tx), .gpio({io_tx,io_rx}), .gpio_readback(gpio_readback) ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 //compatibility number -> increment when the fpga has been sufficiently altered localparam compat_num = {16'd10, 16'd0}; //major, minor wire [31:0] irq_readback = {18'b0, button, spi_ready, clk_status, serdes_link_up, 10'b0}; wb_readback_mux buff_pool_status (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), .wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack), .word00(spi_readback),.word01(32'hffff_ffff),.word02(32'hffff_ffff),.word03(32'hffff_ffff), .word04(32'hffff_ffff),.word05(32'hffff_ffff),.word06(32'hffff_ffff),.word07(32'hffff_ffff), .word08(status),.word09(32'hffff_ffff),.word10(32'hffff_ffff), .word11(vita_time[31:0]),.word12(compat_num),.word13(irq_readback), .word14(32'hffff_ffff),.word15(32'hffff_ffff) ); // ///////////////////////////////////////////////////////////////////////// // Ethernet MAC Slave #6 simple_gemac_wrapper #(.RXFIFOSIZE(ETH_RX_FIFOSIZE), .TXFIFOSIZE(ETH_TX_FIFOSIZE)) simple_gemac_wrapper (.clk125(clk_to_mac), .reset(wb_rst), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .sys_clk(dsp_clk), .rx_f36_data(wr2_dat), .rx_f36_src_rdy(wr2_ready_i), .rx_f36_dst_rdy(wr2_ready_o), .tx_f36_data(rd2_dat), .tx_f36_src_rdy(rd2_ready_o), .tx_f36_dst_rdy(rd2_ready_i), .wb_clk(wb_clk), .wb_rst(wb_rst), .wb_stb(s6_stb), .wb_cyc(s6_cyc), .wb_ack(s6_ack), .wb_we(s6_we), .wb_adr(s6_adr), .wb_dat_i(s6_dat_o), .wb_dat_o(s6_dat_i), .mdio(MDIO), .mdc(MDC), .debug(debug_mac)); // ///////////////////////////////////////////////////////////////////////// // Settings Bus -- Slave #7 settings_bus settings_bus (.wb_clk(wb_clk),.wb_rst(wb_rst),.wb_adr_i(s7_adr),.wb_dat_i(s7_dat_o), .wb_stb_i(s7_stb),.wb_we_i(s7_we),.wb_ack_o(s7_ack), .strobe(set_stb),.addr(set_addr),.data(set_data)); assign s7_dat_i = 32'd0; wire set_stb_dsp0, set_stb_dsp1; wire [31:0] set_data_dsp0, set_data_dsp1; wire [7:0] set_addr_dsp0, set_addr_dsp1; //mux settings_bus_crossclock and settings_readback_bus_fifo_ctrl with prio assign set_stb_dsp = set_stb_dsp0 | set_stb_dsp1; assign set_addr_dsp = set_stb_dsp1? set_addr_dsp1 : set_addr_dsp0; assign set_data_dsp = set_stb_dsp1? set_data_dsp1 : set_data_dsp0; settings_bus_crossclock #(.FLOW_CTRL(1/*on*/)) settings_bus_crossclock (.clk_i(wb_clk), .rst_i(wb_rst), .set_stb_i(set_stb), .set_addr_i(set_addr), .set_data_i(set_data), .clk_o(dsp_clk), .rst_o(dsp_rst), .set_stb_o(set_stb_dsp0), .set_addr_o(set_addr_dsp0), .set_data_o(set_data_dsp0), .blocked(set_stb_dsp1)); user_settings #(.BASE(SR_USER_REGS)) user_settings (.clk(dsp_clk),.rst(dsp_rst),.set_stb(set_stb_dsp), .set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_addr_user(set_addr_user),.set_data_user(set_data_user), .set_stb_user(set_stb_user) ); // ///////////////////////////////////////////////////////////////////////// // Settings + Readback Bus -- FIFO controlled wire [31:0] sfc_debug; wire sfc_clear; settings_fifo_ctrl #(.PROT_DEST(3), .PROT_HDR(1)) sfc ( .clock(dsp_clk), .reset(dsp_rst), .clear(sfc_clear), .vita_time(vita_time), .perfs_ready(spi_ready), .in_data(sfc_rd_data), .in_valid(sfc_rd_valid), .in_ready(sfc_rd_ready), .out_data(sfc_wr_data), .out_valid(sfc_wr_valid), .out_ready(sfc_wr_ready), .strobe(set_stb_dsp1), .addr(set_addr_dsp1), .data(set_data_dsp1), .word00(spi_readback),.word01(32'hffff_ffff),.word02(32'hffff_ffff),.word03(32'hffff_ffff), .word04(32'hffff_ffff),.word05(32'hffff_ffff),.word06(32'hffff_ffff),.word07(32'hffff_ffff), .word08(32'hffff_ffff),.word09(gpio_readback),.word10(vita_time[63:32]), .word11(vita_time[31:0]),.word12(32'hffff_ffff),.word13(irq_readback), .word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0]), .debug(sfc_debug) ); setting_reg #(.my_addr(SR_BUF_POOL+1/*same as packet dispatcher*/),.width(1)) sr_clear_sfc (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.changed(sfc_clear)); // Output control lines wire [7:0] clock_outs, serdes_outs, adc_outs; assign {clock_ready, clk_en[1:0], clk_sel[1:0]} = clock_outs[4:0]; assign {ser_enable, ser_prbsen, ser_loopen, ser_rx_en} = serdes_outs[3:0]; assign {adc_oe_a, adc_on_a, adc_oe_b, adc_on_b } = adc_outs[3:0]; wire phy_reset; assign PHY_RESETn = ~phy_reset; setting_reg #(.my_addr(SR_MISC+0),.width(8)) sr_clk (.clk(wb_clk),.rst(wb_rst),.strobe(s7_ack),.addr(set_addr),.in(set_data),.out(clock_outs),.changed()); setting_reg #(.my_addr(SR_MISC+1),.width(8)) sr_ser (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(serdes_outs),.changed()); setting_reg #(.my_addr(SR_MISC+2),.width(8)) sr_adc (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(adc_outs),.changed()); setting_reg #(.my_addr(SR_MISC+4),.width(1)) sr_phy (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(phy_reset),.changed()); setting_reg #(.my_addr(SR_MISC+5),.width(1)) sr_bld (.clk(wb_clk),.rst(wb_rst),.strobe(set_stb),.addr(set_addr),.in(set_data),.out(bldr_done),.changed()); // ///////////////////////////////////////////////////////////////////////// // LEDS // register 8 determines whether leds are controlled by SW or not // 1 = controlled by HW, 0 = by SW // In Rev3 there are only 6 leds, and the highest one is on the ETH connector wire [7:0] led_src, led_sw; wire [7:0] led_hw = {run_tx, (run_rx0_d1 | run_rx1_d1), clk_status, serdes_link_up & good_sync, 1'b0}; setting_reg #(.my_addr(SR_MISC+3),.width(8)) sr_led (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(led_sw),.changed()); setting_reg #(.my_addr(SR_MISC+6),.width(8), .at_reset(8'b0001_1110)) sr_led_src (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp), .in(set_data_dsp),.out(led_src),.changed()); assign leds = (led_src & led_hw) | (~led_src & led_sw); // ///////////////////////////////////////////////////////////////////////// // Interrupt Controller, Slave #8 assign irq= {{8'b0}, {uart_tx_int[3:0], uart_rx_int[3:0]}, {4'b0, clk_status, 3'b0}, {3'b0, PHY_INTn,i2c_int,spi_int,2'b00}}; pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), .we_i(s8_we),.dat_i(s8_dat_o),.dat_o(s8_dat_i),.ack_o(s8_ack),.int_o(proc_int), .irq(irq) ); // ///////////////////////////////////////////////////////////////////////// // UART, Slave #10 quad_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries (.clk_i(wb_clk),.rst_i(wb_rst), .we_i(sa_we),.stb_i(sa_stb),.cyc_i(sa_cyc),.ack_o(sa_ack), .adr_i(sa_adr[6:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), .rx_int_o(uart_rx_int),.tx_int_o(uart_tx_int), .tx_o(uart_tx_o),.rx_i(uart_rx_i),.baud_o(uart_baud_o)); // ///////////////////////////////////////////////////////////////////////// // ICAP for reprogramming the FPGA, Slave #13 (D) s3a_icap_wb s3a_icap_wb (.clk(wb_clk), .reset(wb_rst), .cyc_i(sd_cyc), .stb_i(sd_stb), .we_i(sd_we), .ack_o(sd_ack), .dat_i(sd_dat_o), .dat_o(sd_dat_i)); // ///////////////////////////////////////////////////////////////////////// // SPI for Flash -- Slave #14 (E) spi_top flash_spi (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(se_adr[4:0]),.wb_dat_i(se_dat_o), .wb_dat_o(se_dat_i),.wb_sel_i(se_sel),.wb_we_i(se_we),.wb_stb_i(se_stb), .wb_cyc_i(se_cyc),.wb_ack_o(se_ack),.wb_err_o(se_err),.wb_int_o(spiflash_int), .ss_pad_o(spiflash_cs), .sclk_pad_o(spiflash_clk),.mosi_pad_o(spiflash_mosi),.miso_pad_i(spiflash_miso) ); // ///////////////////////////////////////////////////////////////////////// // ADC Frontend wire [23:0] rx_fe_i, rx_fe_q; rx_frontend #(.BASE(SR_RX_FRONT)) rx_frontend (.clk(dsp_clk),.rst(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .adc_a({adc_a,2'b00}),.adc_ovf_a(adc_ovf_a), .adc_b({adc_b,2'b00}),.adc_ovf_b(adc_ovf_b), .i_out(rx_fe_i), .q_out(rx_fe_q), .run(run_rx0_d1 | run_rx1_d1), .debug()); // ///////////////////////////////////////////////////////////////////////// // DSP RX 0 wire [31:0] sample_rx0; wire strobe_rx0, clear_rx0; always @(posedge dsp_clk) run_rx0_d1 <= run_rx0; ddc_chain #(.BASE(SR_RX_DSP0), .DSPNO(0)) ddc_chain0 (.clk(dsp_clk), .rst(dsp_rst), .clr(clear_rx0), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .rx_fe_i(rx_fe_i),.rx_fe_q(rx_fe_q), .sample(sample_rx0), .run(run_rx0_d1), .strobe(strobe_rx0), .debug() ); vita_rx_chain #(.BASE(SR_RX_CTRL0),.UNIT(0),.FIFOSIZE(DSP_RX_FIFOSIZE), .DSP_NUMBER(0)) vita_rx_chain0 (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .overrun(overrun0), .sample(sample_rx0), .run(run_rx0), .strobe(strobe_rx0), .clear_o(clear_rx0), .rx_data_o(wr1_dat), .rx_src_rdy_o(wr1_ready_i), .rx_dst_rdy_i(wr1_ready_o), .debug() ); // ///////////////////////////////////////////////////////////////////////// // DSP RX 1 wire [31:0] sample_rx1; wire strobe_rx1, clear_rx1; always @(posedge dsp_clk) run_rx1_d1 <= run_rx1; ddc_chain #(.BASE(SR_RX_DSP1), .DSPNO(1)) ddc_chain1 (.clk(dsp_clk), .rst(dsp_rst), .clr(clear_rx1), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .rx_fe_i(rx_fe_i),.rx_fe_q(rx_fe_q), .sample(sample_rx1), .run(run_rx1_d1), .strobe(strobe_rx1), .debug() ); vita_rx_chain #(.BASE(SR_RX_CTRL1),.UNIT(2),.FIFOSIZE(DSP_RX_FIFOSIZE), .DSP_NUMBER(1)) vita_rx_chain1 (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .overrun(overrun1), .sample(sample_rx1), .run(run_rx1), .strobe(strobe_rx1), .clear_o(clear_rx1), .rx_data_o(wr3_dat), .rx_src_rdy_o(wr3_ready_i), .rx_dst_rdy_i(wr3_ready_o), .debug() ); // /////////////////////////////////////////////////////////////////////////////////// // DSP TX wire [35:0] tx_data; wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; wire clear_tx; assign RAM_A[20:18] = 3'b0; ext_fifo #(.EXT_WIDTH(36),.INT_WIDTH(36),.RAM_DEPTH(18),.FIFO_DEPTH(18)) ext_fifo_i1 (.int_clk(dsp_clk), .ext_clk(dsp_clk), .rst(dsp_rst | clear_tx), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), .RAM_A(RAM_A[17:0]), .RAM_WEn(RAM_WEn), .RAM_CENn(RAM_CENn), .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .datain(rd1_dat), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy), .debug(debug_extfifo), .debug2(debug_extfifo2) ); wire [23:0] tx_fe_i, tx_fe_q; wire [31:0] sample_tx; wire strobe_tx; vita_tx_chain #(.BASE(SR_TX_CTRL), .FIFOSIZE(DSP_TX_FIFOSIZE), .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), .PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1), .DSP_NUMBER(0)) vita_tx_chain (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .tx_data_i(tx_data), .tx_src_rdy_i(tx_src_rdy), .tx_dst_rdy_o(tx_dst_rdy), .err_data_o(tx_err_data), .err_src_rdy_o(tx_err_src_rdy), .err_dst_rdy_i(tx_err_dst_rdy), .sample(sample_tx), .strobe(strobe_tx), .underrun(underrun), .run(run_tx), .clear_o(clear_tx), .debug(debug_vt)); duc_chain #(.BASE(SR_TX_DSP), .DSPNO(0)) duc_chain (.clk(dsp_clk),.rst(dsp_rst), .clr(clear_tx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .tx_fe_i(tx_fe_i),.tx_fe_q(tx_fe_q), .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), .debug() ); tx_frontend #(.BASE(SR_TX_FRONT)) tx_frontend (.clk(dsp_clk), .rst(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .tx_i(tx_fe_i), .tx_q(tx_fe_q), .run(1'b1), .dac_a(dac_a), .dac_b(dac_b)); // /////////////////////////////////////////////////////////////////////////////////// // SERDES serdes #(.TXFIFOSIZE(SERDES_TX_FIFOSIZE),.RXFIFOSIZE(SERDES_RX_FIFOSIZE)) serdes (.clk(dsp_clk),.rst(dsp_rst), .ser_tx_clk(ser_tx_clk),.ser_t(ser_t),.ser_tklsb(ser_tklsb),.ser_tkmsb(ser_tkmsb), .rd_dat_i(rd0_dat[31:0]),.rd_flags_i(rd0_dat[35:32]),.rd_ready_o(rd0_ready_i),.rd_ready_i(rd0_ready_o), .ser_rx_clk(ser_rx_clk),.ser_r(ser_r),.ser_rklsb(ser_rklsb),.ser_rkmsb(ser_rkmsb), .wr_dat_o(wr0_dat[31:0]),.wr_flags_o(wr0_dat[35:32]),.wr_ready_o(wr0_ready_i),.wr_ready_i(wr0_ready_o), .tx_occupied(ser_tx_occ),.tx_full(ser_tx_full),.tx_empty(ser_tx_empty), .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); // ///////////////////////////////////////////////////////////////////////// // VITA Timing wire [31:0] debug_sync; time_64bit #(.BASE(SR_TIME64)) time_64bit (.clk(dsp_clk), .rst(dsp_rst), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), .pps(pps_in), .vita_time(vita_time), .vita_time_pps(vita_time_pps), .pps_int(pps_int), .exp_time_in(exp_time_in), .exp_time_out(exp_time_out), .good_sync(good_sync), .debug(debug_sync)); // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins assign debug_clk = 2'b00; // {dsp_clk, clk_to_mac}; assign debug = 32'd0; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; endmodule // u2_core uhd-3.5.5/fpga/usrp2/top/USRP2/000077500000000000000000000000001224274632000157535ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/USRP2/.gitignore000066400000000000000000000006701224274632000177460ustar00rootroot00000000000000/*.ptwx /*.xrpt /*.zip /*_xdb /templates /netgen /_ngo /_xmsgs /_pace.ucf /*.cmd /*.ibs /*.lfp /*.mfp /*.bit /*.bin /*.stx /*.par /*.unroutes /*.ntrc_log /*.ngr /*.mrp /*.html /*.lso /*.twr /*.bld /*.ncd /*.txt /*.cmd_log /*.drc /*.map /*.twr /*.xml /*.syr /*.ngm /*.xst /*.csv /*.html /*.lock /*.ncd /*.twx /*.ise_ISE_Backup /*.xml /*.ut /*.xpi /*.ngd /*.ncd /*.pad /*.bgn /*.ngc /*.pcf /*.ngd /xst /*.log /*.rpt /*.cel /*.restore /build* uhd-3.5.5/fpga/usrp2/top/USRP2/Makefile000066400000000000000000000056531224274632000174240ustar00rootroot00000000000000# # Copyright 2008-2012 Ettus Research LLC # ################################################## # Project Setup ################################################## TOP_MODULE = u2_rev3 BUILD_DIR = $(abspath build) # set me in a custom makefile CUSTOM_SRCS = CUSTOM_DEFS = ################################################## # Include other makefiles ################################################## include ../Makefile.common include ../../fifo/Makefile.srcs include ../../control_lib/Makefile.srcs include ../../sdr_lib/Makefile.srcs include ../../serdes/Makefile.srcs include ../../simple_gemac/Makefile.srcs include ../../timing/Makefile.srcs include ../../opencores/Makefile.srcs include ../../vrt/Makefile.srcs include ../../udp/Makefile.srcs include ../../coregen/Makefile.srcs include ../../extramfifo/Makefile.srcs ################################################## # Project Properties ################################################## PROJECT_PROPERTIES = \ family Spartan3 \ device xc3s2000 \ package fg456 \ speed -5 \ top_level_module_type "HDL" \ synthesis_tool "XST (VHDL/Verilog)" \ simulator "ISE Simulator (VHDL/Verilog)" \ "Preferred Language" "Verilog" \ "Enable Message Filtering" FALSE \ "Display Incremental Messages" FALSE ################################################## # Sources ################################################## TOP_SRCS = \ u2_core.v \ u2_rev3.v \ u2_rev3.ucf SOURCES = $(abspath $(TOP_SRCS)) $(FIFO_SRCS) \ $(CONTROL_LIB_SRCS) $(SDR_LIB_SRCS) $(SERDES_SRCS) \ $(SIMPLE_GEMAC_SRCS) $(TIMING_SRCS) $(OPENCORES_SRCS) \ $(VRT_SRCS) $(UDP_SRCS) $(COREGEN_SRCS) $(EXTRAM_SRCS) ################################################## # Process Properties ################################################## SYNTHESIZE_PROPERTIES = \ "Number of Clock Buffers" 8 \ "Pack I/O Registers into IOBs" Yes \ "Optimization Effort" High \ "Optimize Instantiated Primitives" TRUE \ "Register Balancing" Yes \ "Use Clock Enable" Auto \ "Use Synchronous Reset" Auto \ "Use Synchronous Set" Auto \ "Verilog Macros" "FIFO_CTRL_NO_TIME=1 $(CUSTOM_DEFS)" TRANSLATE_PROPERTIES = \ "Macro Search Path" "$(shell pwd)/../../coregen/" MAP_PROPERTIES = \ "Generate Detailed MAP Report" TRUE \ "Allow Logic Optimization Across Hierarchy" TRUE \ "Map to Input Functions" 4 \ "Optimization Strategy (Cover Mode)" Speed \ "Pack I/O Registers/Latches into IOBs" "For Inputs and Outputs" \ "Perform Timing-Driven Packing and Placement" TRUE \ "Map Effort Level" High \ "Extra Effort" Normal \ "Combinatorial Logic Optimization" TRUE \ "Register Duplication" TRUE PLACE_ROUTE_PROPERTIES = \ "Place & Route Effort Level (Overall)" High STATIC_TIMING_PROPERTIES = \ "Number of Paths in Error/Verbose Report" 10 \ "Report Type" "Error Report" GEN_PROG_FILE_PROPERTIES = \ "Configuration Rate" 6 \ "Create Binary Configuration File" TRUE \ "Done (Output Events)" 5 \ "Enable Bitstream Compression" TRUE \ "Enable Outputs (Output Events)" 6 SIM_MODEL_PROPERTIES = "" uhd-3.5.5/fpga/usrp2/top/USRP2/u2_core.v000066400000000000000000000775041224274632000175150ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // //////////////////////////////////////////////////////////////////////////////// // Module Name: u2_core // //////////////////////////////////////////////////////////////////////////////// module u2_core (// Clocks input dsp_clk, input wb_clk, output clock_ready, input clk_to_mac, input pps_in, // Misc, debug output [7:0] leds, output [31:0] debug, output [1:0] debug_clk, // Expansion input exp_time_in, output exp_time_out, // GMII // GMII-CTRL input GMII_COL, input GMII_CRS, // GMII-TX output [7:0] GMII_TXD, output GMII_TX_EN, output GMII_TX_ER, output GMII_GTX_CLK, input GMII_TX_CLK, // 100mbps clk // GMII-RX input [7:0] GMII_RXD, input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, // GMII-Management inout MDIO, output MDC, input PHY_INTn, // open drain output PHY_RESETn, // SERDES output ser_enable, output ser_prbsen, output ser_loopen, output ser_rx_en, output ser_tx_clk, output [15:0] ser_t, output ser_tklsb, output ser_tkmsb, input ser_rx_clk, input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, // CPLD interface output cpld_start, output cpld_mode, output cpld_done, input cpld_din, input cpld_clk, input cpld_detached, output cpld_misc, input cpld_init_b, input por, output config_success, // ADC input [13:0] adc_a, input adc_ovf_a, output adc_on_a, output adc_oe_a, input [13:0] adc_b, input adc_ovf_b, output adc_on_b, output adc_oe_b, // DAC output [15:0] dac_a, output [15:0] dac_b, // I2C input scl_pad_i, output scl_pad_o, output scl_pad_oen_o, input sda_pad_i, output sda_pad_o, output sda_pad_oen_o, // Clock Gen Control output [1:0] clk_en, output [1:0] clk_sel, input clk_func, // FIXME is an input to control the 9510 input clk_status, // Generic SPI output sclk, output mosi, input miso, output sen_clk, output sen_dac, output sen_tx_db, output sen_tx_adc, output sen_tx_dac, output sen_rx_db, output sen_rx_adc, output sen_rx_dac, // GPIO to DBoards inout [15:0] io_tx, inout [15:0] io_rx, // External RAM input [17:0] RAM_D_pi, output [17:0] RAM_D_po, output RAM_D_poe, output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, output RAM_WEn, output RAM_OEn, output RAM_LDn, // Debug stuff output uart_tx_o, input uart_rx_i, output uart_baud_o, input sim_mode, input [3:0] clock_divider ); localparam SR_MISC = 0; // 7 regs localparam SR_USER_REGS = 8; // 2 localparam SR_TIME64 = 10; // 6 localparam SR_BUF_POOL = 16; // 4 localparam SR_SPI_CORE = 20; // 3 localparam SR_RX_FRONT = 24; // 5 localparam SR_RX_CTRL0 = 32; // 9 localparam SR_RX_DSP0 = 48; // 7 localparam SR_RX_CTRL1 = 80; // 9 localparam SR_RX_DSP1 = 96; // 7 localparam SR_TX_FRONT = 128; // ? localparam SR_TX_CTRL = 144; // 6 localparam SR_TX_DSP = 160; // 5 localparam SR_GPIO = 184; // 5 localparam SR_UDP_SM = 192; // 64 // FIFO Sizes, 9 = 512 lines, 10 = 1024, 11 = 2048 // all (most?) are 36 bits wide, so 9 is 1 BRAM, 10 is 2, 11 is 4 BRAMs // localparam DSP_TX_FIFOSIZE = 9; unused -- DSPTX uses extram fifo localparam DSP_RX_FIFOSIZE = 10; localparam DSP_TX_FIFOSIZE = 10; localparam ETH_TX_FIFOSIZE = 9; localparam ETH_RX_FIFOSIZE = 11; localparam SERDES_TX_FIFOSIZE = 9; localparam SERDES_RX_FIFOSIZE = 9; // RX currently doesn't use a fifo? wire [7:0] set_addr, set_addr_dsp, set_addr_user; wire [31:0] set_data, set_data_dsp, set_data_user; wire set_stb, set_stb_dsp, set_stb_user; wire ram_loader_done, ram_loader_rst; wire wb_rst; wire dsp_rst = wb_rst; wire [31:0] status; wire bus_error, spi_int, i2c_int, pps_int, onetime_int, periodic_int, buffer_int; wire proc_int, overrun0, overrun1, underrun; wire uart_tx_int, uart_rx_int; wire [31:0] debug_gpio_0, debug_gpio_1; wire [31:0] debug_rx, debug_mac, debug_mac0, debug_mac1, debug_tx_dsp, debug_txc, debug_serdes0, debug_serdes1, debug_serdes2, debug_rx_dsp, debug_udp, debug_extfifo, debug_extfifo2; wire [15:0] ser_rx_occ, ser_tx_occ, dsp_rx_occ, dsp_tx_occ, eth_rx_occ, eth_tx_occ, eth_rx_occ2; wire ser_rx_full, ser_tx_full, dsp_rx_full, dsp_tx_full, eth_rx_full, eth_tx_full, eth_rx_full2; wire ser_rx_empty, ser_tx_empty, dsp_rx_empty, dsp_tx_empty, eth_rx_empty, eth_tx_empty, eth_rx_empty2; wire serdes_link_up, good_sync; wire epoch; wire [31:0] irq; wire [63:0] vita_time, vita_time_pps; wire run_rx0, run_rx1, run_tx; reg run_rx0_d1, run_rx1_d1; // /////////////////////////////////////////////////////////////////////////////////////////////// // Wishbone Single Master INTERCON localparam dw = 32; // Data bus width localparam aw = 16; // Address bus width, for byte addressibility, 16 = 64K byte memory space localparam sw = 4; // Select width -- 32-bit data bus with 8-bit granularity. wire [dw-1:0] m0_dat_o, m0_dat_i; wire [dw-1:0] s0_dat_o, s1_dat_o, s0_dat_i, s1_dat_i, s2_dat_o, s3_dat_o, s2_dat_i, s3_dat_i, s4_dat_o, s5_dat_o, s4_dat_i, s5_dat_i, s6_dat_o, s7_dat_o, s6_dat_i, s7_dat_i, s8_dat_o, s9_dat_o, s8_dat_i, s9_dat_i, sa_dat_o, sa_dat_i, sb_dat_i, sb_dat_o, sc_dat_i, sc_dat_o, sd_dat_i, sd_dat_o, se_dat_i, se_dat_o, sf_dat_i, sf_dat_o; wire [aw-1:0] m0_adr,s0_adr,s1_adr,s2_adr,s3_adr,s4_adr,s5_adr,s6_adr,s7_adr,s8_adr,s9_adr,sa_adr,sb_adr,sc_adr, sd_adr, se_adr, sf_adr; wire [sw-1:0] m0_sel,s0_sel,s1_sel,s2_sel,s3_sel,s4_sel,s5_sel,s6_sel,s7_sel,s8_sel,s9_sel,sa_sel,sb_sel,sc_sel, sd_sel, se_sel, sf_sel; wire m0_ack,s0_ack,s1_ack,s2_ack,s3_ack,s4_ack,s5_ack,s6_ack,s7_ack,s8_ack,s9_ack,sa_ack,sb_ack,sc_ack, sd_ack, se_ack, sf_ack; wire m0_stb,s0_stb,s1_stb,s2_stb,s3_stb,s4_stb,s5_stb,s6_stb,s7_stb,s8_stb,s9_stb,sa_stb,sb_stb,sc_stb, sd_stb, se_stb, sf_stb; wire m0_cyc,s0_cyc,s1_cyc,s2_cyc,s3_cyc,s4_cyc,s5_cyc,s6_cyc,s7_cyc,s8_cyc,s9_cyc,sa_cyc,sb_cyc,sc_cyc, sd_cyc, se_cyc, sf_cyc; wire m0_err, m0_rty; wire m0_we,s0_we,s1_we,s2_we,s3_we,s4_we,s5_we,s6_we,s7_we,s8_we,s9_we,sa_we,sb_we,sc_we,sd_we,se_we,sf_we; wb_1master #(.decode_w(8), .s0_addr(8'b0000_0000),.s0_mask(8'b1100_0000), // Main RAM (0-16K) .s1_addr(8'b0100_0000),.s1_mask(8'b1111_0000), // Packet Router (16-20K) .s2_addr(8'b0101_0000),.s2_mask(8'b1111_1100), // SPI .s3_addr(8'b0101_0100),.s3_mask(8'b1111_1100), // I2C .s4_addr(8'b0101_1000),.s4_mask(8'b1111_1100), // Unused .s5_addr(8'b0101_1100),.s5_mask(8'b1111_1100), // Readback .s6_addr(8'b0110_0000),.s6_mask(8'b1111_0000), // Ethernet MAC .s7_addr(8'b0111_0000),.s7_mask(8'b1111_0000), // Settings Bus (only uses 1K) .s8_addr(8'b1000_0000),.s8_mask(8'b1111_1100), // PIC .s9_addr(8'b1000_0100),.s9_mask(8'b1111_1100), // Unused .sa_addr(8'b1000_1000),.sa_mask(8'b1111_1100), // UART .sb_addr(8'b1000_1100),.sb_mask(8'b1111_1100), // Unused .sc_addr(8'b1001_0000),.sc_mask(8'b1111_0000), // Unused .sd_addr(8'b1010_0000),.sd_mask(8'b1111_0000), // Unused .se_addr(8'b1011_0000),.se_mask(8'b1111_0000), // Unused .sf_addr(8'b1100_0000),.sf_mask(8'b1100_0000), // Unused .dw(dw),.aw(aw),.sw(sw)) wb_1master (.clk_i(wb_clk),.rst_i(wb_rst), .m0_dat_o(m0_dat_o),.m0_ack_o(m0_ack),.m0_err_o(m0_err),.m0_rty_o(m0_rty),.m0_dat_i(m0_dat_i), .m0_adr_i(m0_adr),.m0_sel_i(m0_sel),.m0_we_i(m0_we),.m0_cyc_i(m0_cyc),.m0_stb_i(m0_stb), .s0_dat_o(s0_dat_o),.s0_adr_o(s0_adr),.s0_sel_o(s0_sel),.s0_we_o (s0_we),.s0_cyc_o(s0_cyc),.s0_stb_o(s0_stb), .s0_dat_i(s0_dat_i),.s0_ack_i(s0_ack),.s0_err_i(0),.s0_rty_i(0), .s1_dat_o(s1_dat_o),.s1_adr_o(s1_adr),.s1_sel_o(s1_sel),.s1_we_o (s1_we),.s1_cyc_o(s1_cyc),.s1_stb_o(s1_stb), .s1_dat_i(s1_dat_i),.s1_ack_i(s1_ack),.s1_err_i(0),.s1_rty_i(0), .s2_dat_o(s2_dat_o),.s2_adr_o(s2_adr),.s2_sel_o(s2_sel),.s2_we_o (s2_we),.s2_cyc_o(s2_cyc),.s2_stb_o(s2_stb), .s2_dat_i(s2_dat_i),.s2_ack_i(s2_ack),.s2_err_i(0),.s2_rty_i(0), .s3_dat_o(s3_dat_o),.s3_adr_o(s3_adr),.s3_sel_o(s3_sel),.s3_we_o (s3_we),.s3_cyc_o(s3_cyc),.s3_stb_o(s3_stb), .s3_dat_i(s3_dat_i),.s3_ack_i(s3_ack),.s3_err_i(0),.s3_rty_i(0), .s4_dat_o(s4_dat_o),.s4_adr_o(s4_adr),.s4_sel_o(s4_sel),.s4_we_o (s4_we),.s4_cyc_o(s4_cyc),.s4_stb_o(s4_stb), .s4_dat_i(s4_dat_i),.s4_ack_i(s4_ack),.s4_err_i(0),.s4_rty_i(0), .s5_dat_o(s5_dat_o),.s5_adr_o(s5_adr),.s5_sel_o(s5_sel),.s5_we_o (s5_we),.s5_cyc_o(s5_cyc),.s5_stb_o(s5_stb), .s5_dat_i(s5_dat_i),.s5_ack_i(s5_ack),.s5_err_i(0),.s5_rty_i(0), .s6_dat_o(s6_dat_o),.s6_adr_o(s6_adr),.s6_sel_o(s6_sel),.s6_we_o (s6_we),.s6_cyc_o(s6_cyc),.s6_stb_o(s6_stb), .s6_dat_i(s6_dat_i),.s6_ack_i(s6_ack),.s6_err_i(0),.s6_rty_i(0), .s7_dat_o(s7_dat_o),.s7_adr_o(s7_adr),.s7_sel_o(s7_sel),.s7_we_o (s7_we),.s7_cyc_o(s7_cyc),.s7_stb_o(s7_stb), .s7_dat_i(s7_dat_i),.s7_ack_i(s7_ack),.s7_err_i(0),.s7_rty_i(0), .s8_dat_o(s8_dat_o),.s8_adr_o(s8_adr),.s8_sel_o(s8_sel),.s8_we_o (s8_we),.s8_cyc_o(s8_cyc),.s8_stb_o(s8_stb), .s8_dat_i(s8_dat_i),.s8_ack_i(s8_ack),.s8_err_i(0),.s8_rty_i(0), .s9_dat_o(s9_dat_o),.s9_adr_o(s9_adr),.s9_sel_o(s9_sel),.s9_we_o (s9_we),.s9_cyc_o(s9_cyc),.s9_stb_o(s9_stb), .s9_dat_i(s9_dat_i),.s9_ack_i(s9_ack),.s9_err_i(0),.s9_rty_i(0), .sa_dat_o(sa_dat_o),.sa_adr_o(sa_adr),.sa_sel_o(sa_sel),.sa_we_o(sa_we),.sa_cyc_o(sa_cyc),.sa_stb_o(sa_stb), .sa_dat_i(sa_dat_i),.sa_ack_i(sa_ack),.sa_err_i(0),.sa_rty_i(0), .sb_dat_o(sb_dat_o),.sb_adr_o(sb_adr),.sb_sel_o(sb_sel),.sb_we_o(sb_we),.sb_cyc_o(sb_cyc),.sb_stb_o(sb_stb), .sb_dat_i(sb_dat_i),.sb_ack_i(sb_ack),.sb_err_i(0),.sb_rty_i(0), .sc_dat_o(sc_dat_o),.sc_adr_o(sc_adr),.sc_sel_o(sc_sel),.sc_we_o(sc_we),.sc_cyc_o(sc_cyc),.sc_stb_o(sc_stb), .sc_dat_i(sc_dat_i),.sc_ack_i(sc_ack),.sc_err_i(0),.sc_rty_i(0), .sd_dat_o(sd_dat_o),.sd_adr_o(sd_adr),.sd_sel_o(sd_sel),.sd_we_o(sd_we),.sd_cyc_o(sd_cyc),.sd_stb_o(sd_stb), .sd_dat_i(sd_dat_i),.sd_ack_i(sd_ack),.sd_err_i(0),.sd_rty_i(0), .se_dat_o(se_dat_o),.se_adr_o(se_adr),.se_sel_o(se_sel),.se_we_o(se_we),.se_cyc_o(se_cyc),.se_stb_o(se_stb), .se_dat_i(se_dat_i),.se_ack_i(se_ack),.se_err_i(0),.se_rty_i(0), .sf_dat_o(sf_dat_o),.sf_adr_o(sf_adr),.sf_sel_o(sf_sel),.sf_we_o(sf_we),.sf_cyc_o(sf_cyc),.sf_stb_o(sf_stb), .sf_dat_i(sf_dat_i),.sf_ack_i(sf_ack),.sf_err_i(0),.sf_rty_i(0)); assign s2_ack = 0; assign s4_ack = 0; assign s9_ack = 0; assign sb_ack = 0; assign sc_ack = 0; assign sd_ack = 0; assign se_ack = 0; assign sf_ack = 0; // //////////////////////////////////////////////////////////////////////////////////////// // Reset Controller system_control sysctrl (.wb_clk_i(wb_clk), // .por_i(por), .ram_loader_rst_o(ram_loader_rst), .wb_rst_o(wb_rst), .ram_loader_done_i(ram_loader_done)); assign config_success = ram_loader_done; reg takeover = 0; wire cpld_start_int, cpld_mode_int, cpld_done_int; always @(posedge wb_clk) if(ram_loader_done) takeover = 1; assign cpld_misc = ~takeover; wire sd_clk, sd_csn, sd_mosi, sd_miso; assign sd_miso = cpld_din; assign cpld_start = takeover ? sd_clk : cpld_start_int; assign cpld_mode = takeover ? sd_csn : cpld_mode_int; assign cpld_done = takeover ? sd_mosi : cpld_done_int; // /////////////////////////////////////////////////////////////////// // RAM Loader wire [31:0] ram_loader_dat; wire [15:0] ram_loader_adr; wire [3:0] ram_loader_sel; wire ram_loader_stb, ram_loader_we; ram_loader #(.AWIDTH(aw),.RAM_SIZE(16384)) ram_loader (.wb_clk(wb_clk),.dsp_clk(dsp_clk),.ram_loader_rst(ram_loader_rst), .wb_dat(ram_loader_dat),.wb_adr(ram_loader_adr), .wb_stb(ram_loader_stb),.wb_sel(ram_loader_sel), .wb_we(ram_loader_we), .ram_loader_done(ram_loader_done), // CPLD Interface .cpld_clk(cpld_clk), .cpld_din(cpld_din), .cpld_start(cpld_start_int), .cpld_mode(cpld_mode_int), .cpld_done(cpld_done_int), .cpld_detached(cpld_detached)); // ///////////////////////////////////////////////////////////////////////// // Processor assign bus_error = m0_err | m0_rty; wire [63:0] zpu_status; zpu_wb_top #(.dat_w(dw), .adr_w(aw), .sel_w(sw)) zpu_top0 (.clk(wb_clk), .rst(wb_rst), .enb(ram_loader_done), // Data Wishbone bus to system bus fabric .we_o(m0_we),.stb_o(m0_stb),.dat_o(m0_dat_i),.adr_o(m0_adr), .dat_i(m0_dat_o),.ack_i(m0_ack),.sel_o(m0_sel),.cyc_o(m0_cyc), // Interrupts and exceptions .zpu_status(zpu_status), .interrupt(proc_int & 1'b0)); // ///////////////////////////////////////////////////////////////////////// // Dual Ported RAM -- D-Port is Slave #0 on main Wishbone // I-port connects directly to processor and ram loader ram_harvard #(.AWIDTH(14),.RAM_SIZE(16384),.ICWIDTH(7),.DCWIDTH(6)) sys_ram(.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), .ram_loader_adr_i(ram_loader_adr[13:0]), .ram_loader_dat_i(ram_loader_dat), .ram_loader_stb_i(ram_loader_stb), .ram_loader_sel_i(ram_loader_sel), .ram_loader_we_i(ram_loader_we), .ram_loader_done_i(ram_loader_done), .if_adr(16'b0), .if_data(), .dwb_adr_i(s0_adr[13:0]), .dwb_dat_i(s0_dat_o), .dwb_dat_o(s0_dat_i), .dwb_we_i(s0_we), .dwb_ack_o(s0_ack), .dwb_stb_i(s0_stb), .dwb_sel_i(s0_sel)); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool, slave #1 wire rd0_ready_i, rd0_ready_o; wire rd1_ready_i, rd1_ready_o; wire rd2_ready_i, rd2_ready_o; wire rd3_ready_i, rd3_ready_o; wire [35:0] rd0_dat, rd1_dat, rd2_dat, rd3_dat; wire wr0_ready_i, wr0_ready_o; wire wr1_ready_i, wr1_ready_o; wire wr2_ready_i, wr2_ready_o; wire wr3_ready_i, wr3_ready_o; wire [35:0] wr0_dat, wr1_dat, wr2_dat, wr3_dat; wire [35:0] sfc_wr_data, sfc_rd_data; wire sfc_wr_ready, sfc_rd_ready; wire sfc_wr_valid, sfc_rd_valid; wire [35:0] tx_err_data; wire tx_err_src_rdy, tx_err_dst_rdy; wire [31:0] router_debug; packet_router #(.BUF_SIZE(9), .UDP_BASE(SR_UDP_SM), .CTRL_BASE(SR_BUF_POOL)) packet_router (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst), .wb_we_i(s1_we),.wb_stb_i(s1_stb),.wb_adr_i(s1_adr),.wb_dat_i(s1_dat_o), .wb_dat_o(s1_dat_i),.wb_ack_o(s1_ack),.wb_err_o(),.wb_rty_o(), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), .stream_clk(dsp_clk), .stream_rst(dsp_rst), .stream_clr(1'b0), .status(status), .sys_int_o(buffer_int), .debug(router_debug), .ser_inp_data(wr0_dat), .ser_inp_valid(wr0_ready_i), .ser_inp_ready(wr0_ready_o), .dsp0_inp_data(wr1_dat), .dsp0_inp_valid(wr1_ready_i), .dsp0_inp_ready(wr1_ready_o), .dsp1_inp_data(wr3_dat), .dsp1_inp_valid(wr3_ready_i), .dsp1_inp_ready(wr3_ready_o), .eth_inp_data(wr2_dat), .eth_inp_valid(wr2_ready_i), .eth_inp_ready(wr2_ready_o), .err_inp_data(tx_err_data), .err_inp_valid(tx_err_src_rdy), .err_inp_ready(tx_err_dst_rdy), .ctl_inp_data(sfc_wr_data), .ctl_inp_valid(sfc_wr_valid), .ctl_inp_ready(sfc_wr_ready), .ser_out_data(rd0_dat), .ser_out_valid(rd0_ready_o), .ser_out_ready(rd0_ready_i), .dsp_out_data(rd1_dat), .dsp_out_valid(rd1_ready_o), .dsp_out_ready(rd1_ready_i), .ctl_out_data(sfc_rd_data), .ctl_out_valid(sfc_rd_valid), .ctl_out_ready(sfc_rd_ready), .eth_out_data(rd2_dat), .eth_out_valid(rd2_ready_o), .eth_out_ready(rd2_ready_i) ); // ///////////////////////////////////////////////////////////////////////// // SPI -- Slave #2 wire [31:0] spi_debug; wire [31:0] spi_readback; wire spi_ready; simple_spi_core #(.BASE(SR_SPI_CORE), .WIDTH(8)) shared_spi( .clock(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), .readback(spi_readback), .ready(spi_ready), .sen({sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}), .sclk(sclk), .mosi(mosi), .miso(miso), .debug(spi_debug) ); // ///////////////////////////////////////////////////////////////////////// // I2C -- Slave #3 i2c_master_top #(.ARST_LVL(1)) i2c (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.arst_i(1'b0), .wb_adr_i(s3_adr[4:2]),.wb_dat_i(s3_dat_o[7:0]),.wb_dat_o(s3_dat_i[7:0]), .wb_we_i(s3_we),.wb_stb_i(s3_stb),.wb_cyc_i(s3_cyc), .wb_ack_o(s3_ack),.wb_inta_o(i2c_int), .scl_pad_i(scl_pad_i),.scl_pad_o(scl_pad_o),.scl_padoen_o(scl_pad_oen_o), .sda_pad_i(sda_pad_i),.sda_pad_o(sda_pad_o),.sda_padoen_o(sda_pad_oen_o) ); assign s3_dat_i[31:8] = 24'd0; // ///////////////////////////////////////////////////////////////////////// // GPIOs wire [31:0] gpio_readback; gpio_atr #(.BASE(SR_GPIO), .WIDTH(32)) gpio_atr(.clk(dsp_clk),.reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .rx(run_rx0_d1 | run_rx1_d1), .tx(run_tx), .gpio({io_tx,io_rx}), .gpio_readback(gpio_readback) ); // ///////////////////////////////////////////////////////////////////////// // Buffer Pool Status -- Slave #5 //compatibility number -> increment when the fpga has been sufficiently altered localparam compat_num = {16'd10, 16'd0}; //major, minor wire [31:0] irq_readback = {19'b0, spi_ready, clk_status, serdes_link_up, 10'b0}; wb_readback_mux buff_pool_status (.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb), .wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack), .word00(spi_readback),.word01(32'hffff_ffff),.word02(32'hffff_ffff),.word03(32'hffff_ffff), .word04(32'hffff_ffff),.word05(32'hffff_ffff),.word06(32'hffff_ffff),.word07(32'hffff_ffff), .word08(status),.word09(gpio_readback),.word10(vita_time[63:32]), .word11(vita_time[31:0]),.word12(compat_num),.word13(irq_readback), .word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0]) ); // ///////////////////////////////////////////////////////////////////////// // Ethernet MAC Slave #6 simple_gemac_wrapper #(.RXFIFOSIZE(ETH_RX_FIFOSIZE), .TXFIFOSIZE(ETH_TX_FIFOSIZE)) simple_gemac_wrapper (.clk125(clk_to_mac), .reset(wb_rst), .GMII_GTX_CLK(GMII_GTX_CLK), .GMII_TX_EN(GMII_TX_EN), .GMII_TX_ER(GMII_TX_ER), .GMII_TXD(GMII_TXD), .GMII_RX_CLK(GMII_RX_CLK), .GMII_RX_DV(GMII_RX_DV), .GMII_RX_ER(GMII_RX_ER), .GMII_RXD(GMII_RXD), .sys_clk(dsp_clk), .rx_f36_data(wr2_dat), .rx_f36_src_rdy(wr2_ready_i), .rx_f36_dst_rdy(wr2_ready_o), .tx_f36_data(rd2_dat), .tx_f36_src_rdy(rd2_ready_o), .tx_f36_dst_rdy(rd2_ready_i), .wb_clk(wb_clk), .wb_rst(wb_rst), .wb_stb(s6_stb), .wb_cyc(s6_cyc), .wb_ack(s6_ack), .wb_we(s6_we), .wb_adr(s6_adr), .wb_dat_i(s6_dat_o), .wb_dat_o(s6_dat_i), .mdio(MDIO), .mdc(MDC), .debug(debug_mac)); // ///////////////////////////////////////////////////////////////////////// // Settings Bus -- Slave #7 settings_bus settings_bus (.wb_clk(wb_clk),.wb_rst(wb_rst),.wb_adr_i(s7_adr),.wb_dat_i(s7_dat_o), .wb_stb_i(s7_stb),.wb_we_i(s7_we),.wb_ack_o(s7_ack), .strobe(set_stb),.addr(set_addr),.data(set_data)); assign s7_dat_i = 32'd0; wire set_stb_dsp0, set_stb_dsp1; wire [31:0] set_data_dsp0, set_data_dsp1; wire [7:0] set_addr_dsp0, set_addr_dsp1; //mux settings_bus_crossclock and settings_readback_bus_fifo_ctrl with prio assign set_stb_dsp = set_stb_dsp0 | set_stb_dsp1; assign set_addr_dsp = set_stb_dsp1? set_addr_dsp1 : set_addr_dsp0; assign set_data_dsp = set_stb_dsp1? set_data_dsp1 : set_data_dsp0; settings_bus_crossclock #(.FLOW_CTRL(1/*on*/)) settings_bus_crossclock (.clk_i(wb_clk), .rst_i(wb_rst), .set_stb_i(set_stb), .set_addr_i(set_addr), .set_data_i(set_data), .clk_o(dsp_clk), .rst_o(dsp_rst), .set_stb_o(set_stb_dsp0), .set_addr_o(set_addr_dsp0), .set_data_o(set_data_dsp0), .blocked(set_stb_dsp1)); user_settings #(.BASE(SR_USER_REGS)) user_settings (.clk(dsp_clk),.rst(dsp_rst),.set_stb(set_stb_dsp), .set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_addr_user(set_addr_user),.set_data_user(set_data_user), .set_stb_user(set_stb_user) ); // ///////////////////////////////////////////////////////////////////////// // Settings + Readback Bus -- FIFO controlled wire [31:0] sfc_debug; wire sfc_clear; /* settings_fifo_ctrl #(.PROT_DEST(3), .PROT_HDR(1)) sfc ( .clock(dsp_clk), .reset(dsp_rst), .clear(sfc_clear), .vita_time(vita_time), .perfs_ready(spi_ready), .in_data(sfc_rd_data), .in_valid(sfc_rd_valid), .in_ready(sfc_rd_ready), .out_data(sfc_wr_data), .out_valid(sfc_wr_valid), .out_ready(sfc_wr_ready), .strobe(set_stb_dsp1), .addr(set_addr_dsp1), .data(set_data_dsp1), .word00(spi_readback),.word01(32'hffff_ffff),.word02(32'hffff_ffff),.word03(32'hffff_ffff), .word04(32'hffff_ffff),.word05(32'hffff_ffff),.word06(32'hffff_ffff),.word07(32'hffff_ffff), .word08(32'hffff_ffff),.word09(gpio_readback),.word10(vita_time[63:32]), .word11(vita_time[31:0]),.word12(32'hffff_ffff),.word13(irq_readback), .word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0]), .debug(sfc_debug) ); */ assign sfc_debug = 0; assign set_stb_dsp1 = 0; assign set_addr_dsp1 = 0; assign set_data_dsp1 = 0; assign sfc_rd_ready = 1; assign sfc_wr_valid = 0; assign sfc_wr_data = 0; setting_reg #(.my_addr(SR_BUF_POOL+1/*same as packet dispatcher*/),.width(1)) sr_clear_sfc (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.changed(sfc_clear)); // Output control lines wire [7:0] clock_outs, serdes_outs, adc_outs; assign {clock_ready, clk_en[1:0], clk_sel[1:0]} = clock_outs[4:0]; assign {ser_enable, ser_prbsen, ser_loopen, ser_rx_en} = serdes_outs[3:0]; assign {adc_oe_a, adc_on_a, adc_oe_b, adc_on_b } = adc_outs[3:0]; wire phy_reset; assign PHY_RESETn = ~phy_reset; setting_reg #(.my_addr(SR_MISC+0),.width(8)) sr_clk (.clk(wb_clk),.rst(wb_rst),.strobe(s7_ack),.addr(set_addr),.in(set_data),.out(clock_outs),.changed()); setting_reg #(.my_addr(SR_MISC+1),.width(8)) sr_ser (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(serdes_outs),.changed()); setting_reg #(.my_addr(SR_MISC+2),.width(8)) sr_adc (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(adc_outs),.changed()); setting_reg #(.my_addr(SR_MISC+4),.width(1)) sr_phy (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(phy_reset),.changed()); // ///////////////////////////////////////////////////////////////////////// // LEDS // register 8 determines whether leds are controlled by SW or not // 1 = controlled by HW, 0 = by SW // In Rev3 there are only 6 leds, and the highest one is on the ETH connector wire [7:0] led_src, led_sw; wire [7:0] led_hw = {run_tx, (run_rx0_d1 | run_rx1_d1), clk_status, serdes_link_up & good_sync, 1'b0}; setting_reg #(.my_addr(SR_MISC+3),.width(8)) sr_led (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.out(led_sw),.changed()); setting_reg #(.my_addr(SR_MISC+6),.width(8), .at_reset(8'b0001_1110)) sr_led_src (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp), .in(set_data_dsp),.out(led_src),.changed()); assign leds = (led_src & led_hw) | (~led_src & led_sw); // ///////////////////////////////////////////////////////////////////////// // Interrupt Controller, Slave #8 assign irq= {{8'b0}, {3'b0, uart_tx_int, 2'b0, uart_rx_int}, {4'b0, clk_status, 3'b0}, {3'b0, PHY_INTn,i2c_int,spi_int,2'b00}}; pic pic(.clk_i(wb_clk),.rst_i(wb_rst),.cyc_i(s8_cyc),.stb_i(s8_stb),.adr_i(s8_adr[4:2]), .we_i(s8_we),.dat_i(s8_dat_o),.dat_o(s8_dat_i),.ack_o(s8_ack),.int_o(proc_int), .irq(irq) ); // ///////////////////////////////////////////////////////////////////////// // UART, Slave #10 simple_uart #(.TXDEPTH(3),.RXDEPTH(3)) uart // depth of 3 is 128 entries (.clk_i(wb_clk),.rst_i(wb_rst), .we_i(sa_we),.stb_i(sa_stb),.cyc_i(sa_cyc),.ack_o(sa_ack), .adr_i(sa_adr[4:2]),.dat_i(sa_dat_o),.dat_o(sa_dat_i), .rx_int_o(uart_rx_int),.tx_int_o(uart_tx_int), .tx_o(uart_tx_o),.rx_i(uart_rx_i),.baud_o(uart_baud_o)); // ///////////////////////////////////////////////////////////////////////// // ADC Frontend wire [23:0] rx_fe_i, rx_fe_q; rx_frontend #(.BASE(SR_RX_FRONT)) rx_frontend (.clk(dsp_clk),.rst(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .adc_a({adc_a,2'b00}),.adc_ovf_a(adc_ovf_a), .adc_b({adc_b,2'b00}),.adc_ovf_b(adc_ovf_b), .i_out(rx_fe_i), .q_out(rx_fe_q), .run(run_rx0_d1 | run_rx1_d1), .debug()); // ///////////////////////////////////////////////////////////////////////// // DSP RX 0 wire [31:0] sample_rx0; wire strobe_rx0, clear_rx0; always @(posedge dsp_clk) run_rx0_d1 <= run_rx0; ddc_chain #(.BASE(SR_RX_DSP0), .DSPNO(0)) ddc_chain0 (.clk(dsp_clk), .rst(dsp_rst), .clr(clear_rx0), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .rx_fe_i(rx_fe_i),.rx_fe_q(rx_fe_q), .sample(sample_rx0), .run(run_rx0_d1), .strobe(strobe_rx0), .debug() ); vita_rx_chain #(.BASE(SR_RX_CTRL0),.UNIT(0),.FIFOSIZE(DSP_RX_FIFOSIZE), .DSP_NUMBER(0)) vita_rx_chain0 (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .overrun(overrun0), .sample(sample_rx0), .run(run_rx0), .strobe(strobe_rx0), .clear_o(clear_rx0), .rx_data_o(wr1_dat), .rx_src_rdy_o(wr1_ready_i), .rx_dst_rdy_i(wr1_ready_o), .debug() ); // ///////////////////////////////////////////////////////////////////////// // DSP RX 1 wire [31:0] sample_rx1; wire strobe_rx1, clear_rx1; always @(posedge dsp_clk) run_rx1_d1 <= run_rx1; ddc_chain #(.BASE(SR_RX_DSP1), .DSPNO(1)) ddc_chain1 (.clk(dsp_clk), .rst(dsp_rst), .clr(clear_rx1), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .rx_fe_i(rx_fe_i),.rx_fe_q(rx_fe_q), .sample(sample_rx1), .run(run_rx1_d1), .strobe(strobe_rx1), .debug() ); vita_rx_chain #(.BASE(SR_RX_CTRL1),.UNIT(2),.FIFOSIZE(DSP_RX_FIFOSIZE), .DSP_NUMBER(1)) vita_rx_chain1 (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .overrun(overrun1), .sample(sample_rx1), .run(run_rx1), .strobe(strobe_rx1), .clear_o(clear_rx1), .rx_data_o(wr3_dat), .rx_src_rdy_o(wr3_ready_i), .rx_dst_rdy_i(wr3_ready_o), .debug() ); // /////////////////////////////////////////////////////////////////////////////////// // DSP TX wire [35:0] tx_data; wire tx_src_rdy, tx_dst_rdy; wire [31:0] debug_vt; wire clear_tx; ext_fifo #(.EXT_WIDTH(18),.INT_WIDTH(36),.RAM_DEPTH(19),.FIFO_DEPTH(19)) ext_fifo_i1 (.int_clk(dsp_clk), .ext_clk(clk_to_mac), .rst(dsp_rst | clear_tx), .RAM_D_pi(RAM_D_pi), .RAM_D_po(RAM_D_po), .RAM_D_poe(RAM_D_poe), .RAM_A(RAM_A), .RAM_WEn(RAM_WEn), .RAM_CENn(RAM_CENn), .RAM_LDn(RAM_LDn), .RAM_OEn(RAM_OEn), .RAM_CE1n(RAM_CE1n), .datain(rd1_dat), .src_rdy_i(rd1_ready_o), .dst_rdy_o(rd1_ready_i), .dataout(tx_data), .src_rdy_o(tx_src_rdy), .dst_rdy_i(tx_dst_rdy), .debug(debug_extfifo), .debug2(debug_extfifo2) ); wire [23:0] tx_fe_i, tx_fe_q; wire [31:0] sample_tx; wire strobe_tx; vita_tx_chain #(.BASE(SR_TX_CTRL), .FIFOSIZE(DSP_TX_FIFOSIZE), .REPORT_ERROR(1), .DO_FLOW_CONTROL(1), .PROT_ENG_FLAGS(1), .USE_TRANS_HEADER(1), .DSP_NUMBER(0)) vita_tx_chain (.clk(dsp_clk), .reset(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .vita_time(vita_time), .tx_data_i(tx_data), .tx_src_rdy_i(tx_src_rdy), .tx_dst_rdy_o(tx_dst_rdy), .err_data_o(tx_err_data), .err_src_rdy_o(tx_err_src_rdy), .err_dst_rdy_i(tx_err_dst_rdy), .sample(sample_tx), .strobe(strobe_tx), .underrun(underrun), .run(run_tx), .clear_o(clear_tx), .debug(debug_vt)); duc_chain #(.BASE(SR_TX_DSP), .DSPNO(0)) duc_chain (.clk(dsp_clk),.rst(dsp_rst), .clr(clear_tx), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .tx_fe_i(tx_fe_i),.tx_fe_q(tx_fe_q), .sample(sample_tx), .run(run_tx), .strobe(strobe_tx), .debug() ); tx_frontend #(.BASE(SR_TX_FRONT)) tx_frontend (.clk(dsp_clk), .rst(dsp_rst), .set_stb(set_stb_dsp),.set_addr(set_addr_dsp),.set_data(set_data_dsp), .tx_i(tx_fe_i), .tx_q(tx_fe_q), .run(1'b1), .dac_a(dac_a), .dac_b(dac_b)); // /////////////////////////////////////////////////////////////////////////////////// // SERDES serdes #(.TXFIFOSIZE(SERDES_TX_FIFOSIZE),.RXFIFOSIZE(SERDES_RX_FIFOSIZE)) serdes (.clk(dsp_clk),.rst(dsp_rst), .ser_tx_clk(ser_tx_clk),.ser_t(ser_t),.ser_tklsb(ser_tklsb),.ser_tkmsb(ser_tkmsb), .rd_dat_i(rd0_dat[31:0]),.rd_flags_i(rd0_dat[35:32]),.rd_ready_o(rd0_ready_i),.rd_ready_i(rd0_ready_o), .ser_rx_clk(ser_rx_clk),.ser_r(ser_r),.ser_rklsb(ser_rklsb),.ser_rkmsb(ser_rkmsb), .wr_dat_o(wr0_dat[31:0]),.wr_flags_o(wr0_dat[35:32]),.wr_ready_o(wr0_ready_i),.wr_ready_i(wr0_ready_o), .tx_occupied(ser_tx_occ),.tx_full(ser_tx_full),.tx_empty(ser_tx_empty), .rx_occupied(ser_rx_occ),.rx_full(ser_rx_full),.rx_empty(ser_rx_empty), .serdes_link_up(serdes_link_up),.debug0(debug_serdes0), .debug1(debug_serdes1) ); assign RAM_CLK = clk_to_mac; // ///////////////////////////////////////////////////////////////////////// // VITA Timing wire [31:0] debug_sync; time_64bit #(.BASE(SR_TIME64)) time_64bit (.clk(dsp_clk), .rst(dsp_rst), .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp), .pps(pps_in), .vita_time(vita_time), .vita_time_pps(vita_time_pps), .pps_int(pps_int), .exp_time_in(exp_time_in), .exp_time_out(exp_time_out), .good_sync(good_sync), .debug(debug_sync)); // ///////////////////////////////////////////////////////////////////////////////////////// // Debug Pins assign debug_clk = 2'b00; // {dsp_clk, clk_to_mac}; assign debug = 32'd0; assign debug_gpio_0 = 32'd0; assign debug_gpio_1 = 32'd0; endmodule // u2_core uhd-3.5.5/fpga/usrp2/top/USRP2/u2_rev3.ucf000066400000000000000000000351131224274632000177420ustar00rootroot00000000000000NET "leds[0]" LOC = "E8" ; NET "leds[1]" LOC = "F7" ; NET "leds[2]" LOC = "E5" ; NET "leds[3]" LOC = "B7" ; NET "leds[4]" LOC = "C11" ; NET "leds[5]" LOC = "AB19" ; NET "debug[0]" LOC = "N5" ; NET "debug[1]" LOC = "N6" ; NET "debug[2]" LOC = "P1" ; NET "debug[3]" LOC = "P2" ; NET "debug[4]" LOC = "P4" ; NET "debug[5]" LOC = "P5" ; NET "debug[6]" LOC = "R1" ; NET "debug[7]" LOC = "R2" ; NET "debug[8]" LOC = "P6" ; NET "debug[9]" LOC = "R5" ; NET "debug[10]" LOC = "R4" ; NET "debug[11]" LOC = "T3" ; NET "debug[12]" LOC = "U3" ; NET "debug[13]" LOC = "M2" ; NET "debug[14]" LOC = "M3" ; NET "debug[15]" LOC = "M4" ; NET "debug[16]" LOC = "M5" ; NET "debug[17]" LOC = "M6" ; NET "debug[18]" LOC = "N1" ; NET "debug[19]" LOC = "N2" ; NET "debug[20]" LOC = "N3" ; NET "debug[21]" LOC = "T1" ; NET "debug[22]" LOC = "T2" ; NET "debug[23]" LOC = "U2" ; NET "debug[24]" LOC = "T4" ; NET "debug[25]" LOC = "U4" ; NET "debug[26]" LOC = "T5" ; NET "debug[27]" LOC = "T6" ; NET "debug[28]" LOC = "U5" ; NET "debug[29]" LOC = "V5" ; NET "debug[30]" LOC = "W2" ; NET "debug[31]" LOC = "W3" ; NET "debug_clk[0]" LOC = "N4" ; NET "debug_clk[1]" LOC = "M1" ; NET "uart_tx_o" LOC = "C7" ; NET "uart_rx_i" LOC = "A3" ; NET "exp_time_in_p" LOC = "V3" ; NET "exp_time_in_n" LOC = "V4" ; NET "exp_time_out_p" LOC = "V1" ; NET "exp_time_out_n" LOC = "V2" ; NET "GMII_COL" LOC = "U16" ; NET "GMII_CRS" LOC = "U17" ; NET "GMII_TXD[0]" LOC = "W14" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[1]" LOC = "AA20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[2]" LOC = "AB20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[3]" LOC = "Y18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[4]" LOC = "AA18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[5]" LOC = "AB18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[6]" LOC = "V17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TXD[7]" LOC = "W17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TX_EN" LOC = "Y17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TX_ER" LOC = "V16" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_GTX_CLK" LOC = "AA17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "GMII_TX_CLK" LOC = "W13" ; NET "GMII_RXD[0]" LOC = "AA15" ; NET "GMII_RXD[1]" LOC = "AB15" ; NET "GMII_RXD[2]" LOC = "U14" ; NET "GMII_RXD[3]" LOC = "V14" ; NET "GMII_RXD[4]" LOC = "U13" ; NET "GMII_RXD[5]" LOC = "V13" ; NET "GMII_RXD[6]" LOC = "Y13" ; NET "GMII_RXD[7]" LOC = "AA13" ; NET "GMII_RX_CLK" LOC = "AA12" ; NET "GMII_RX_DV" LOC = "AB16" ; NET "GMII_RX_ER" LOC = "AA16" ; NET "MDIO" LOC = "Y16" |PULLUP ; NET "MDC" LOC = "V18" ; NET "PHY_INTn" LOC = "AB13" ; NET "PHY_RESETn" LOC = "AA19" ; NET "PHY_CLK" LOC = "V15" ; NET "RAM_D[0]" LOC = "N20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[1]" LOC = "N21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[2]" LOC = "N22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[3]" LOC = "M17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[4]" LOC = "M18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[5]" LOC = "M19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[6]" LOC = "M20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[7]" LOC = "M21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[8]" LOC = "M22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[9]" LOC = "Y22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[10]" LOC = "Y21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[11]" LOC = "Y20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[12]" LOC = "Y19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[13]" LOC = "W22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[14]" LOC = "W21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[15]" LOC = "W20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[16]" LOC = "W19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_D[17]" LOC = "V22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[0]" LOC = "U21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[1]" LOC = "T19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[2]" LOC = "V21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[3]" LOC = "V20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[4]" LOC = "T20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[5]" LOC = "T21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[6]" LOC = "T22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[7]" LOC = "T18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[8]" LOC = "R18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[9]" LOC = "P19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[10]" LOC = "P21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[11]" LOC = "P22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[12]" LOC = "N19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[13]" LOC = "N17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[14]" LOC = "N18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[15]" LOC = "T17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[16]" LOC = "U19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[17]" LOC = "U18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_A[18]" LOC = "V19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_CE1n" LOC = "U20" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_CENn" LOC = "P18" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_CLK" LOC = "P17" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_WEn" LOC = "R22" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_OEn" LOC = "R21" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "RAM_LDn" LOC = "R19" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_enable" LOC = "W11" ; NET "ser_prbsen" LOC = "AA3" ; NET "ser_loopen" LOC = "Y4" ; NET "ser_rx_en" LOC = "AB9" ; NET "ser_tx_clk" LOC = "U7" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[0]" LOC = "V7" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[1]" LOC = "V10" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[2]" LOC = "AB4" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[3]" LOC = "AA4" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[4]" LOC = "Y5" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[5]" LOC = "W5" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[6]" LOC = "AB5" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[7]" LOC = "AA5" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[8]" LOC = "W6" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[9]" LOC = "V6" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[10]" LOC = "AA6" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[11]" LOC = "Y6" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[12]" LOC = "W8" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[13]" LOC = "V8" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[14]" LOC = "AB8" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_t[15]" LOC = "AA8" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_tklsb" LOC = "U10" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_tkmsb" LOC = "U11" |IOSTANDARD = LVCMOS25 |DRIVE = 12 |SLEW = FAST ; NET "ser_rx_clk" LOC = "AA11" ; NET "ser_r[0]" LOC = "AB10" ; NET "ser_r[1]" LOC = "AA10" ; NET "ser_r[2]" LOC = "U9" ; NET "ser_r[3]" LOC = "U6" ; NET "ser_r[4]" LOC = "AB11" ; NET "ser_r[5]" LOC = "Y7" ; NET "ser_r[6]" LOC = "W7" ; NET "ser_r[7]" LOC = "AB7" ; NET "ser_r[8]" LOC = "AA7" ; NET "ser_r[9]" LOC = "W9" ; NET "ser_r[10]" LOC = "W10" ; NET "ser_r[11]" LOC = "Y1" ; NET "ser_r[12]" LOC = "Y3" ; NET "ser_r[13]" LOC = "Y2" ; NET "ser_r[14]" LOC = "W4" ; NET "ser_r[15]" LOC = "W1" ; NET "ser_rklsb" LOC = "V9" ; NET "ser_rkmsb" LOC = "Y10" ; NET "cpld_start" LOC = "AA9" ; NET "cpld_mode" LOC = "U12" ; NET "cpld_done" LOC = "V12" ; NET "cpld_din" LOC = "AA14" ; NET "cpld_clk" LOC = "AB14" ; NET "cpld_detached" LOC = "V11" ; NET "cpld_init_b" LOC = "W12" ; NET "cpld_misc" LOC = "Y12" ; NET "POR" LOC = "W18" ; NET "WDI" LOC = "W15" ; NET "adc_a[0]" LOC = "A14" | IOBDELAY= "NONE" ; NET "adc_a[1]" LOC = "B14" | IOBDELAY= "NONE" ; NET "adc_a[2]" LOC = "C13" | IOBDELAY= "NONE" ; NET "adc_a[3]" LOC = "D13" | IOBDELAY= "NONE" ; NET "adc_a[4]" LOC = "A13" | IOBDELAY= "NONE" ; NET "adc_a[5]" LOC = "B13" | IOBDELAY= "NONE" ; NET "adc_a[6]" LOC = "E12" | IOBDELAY= "NONE" ; NET "adc_a[7]" LOC = "C22" | IOBDELAY= "NONE" ; NET "adc_a[8]" LOC = "C20" | IOBDELAY= "NONE" ; NET "adc_a[9]" LOC = "C21" | IOBDELAY= "NONE" ; NET "adc_a[10]" LOC = "D20" | IOBDELAY= "NONE" ; NET "adc_a[11]" LOC = "D19" | IOBDELAY= "NONE" ; NET "adc_a[12]" LOC = "D21" | IOBDELAY= "NONE" ; NET "adc_a[13]" LOC = "E18" | IOBDELAY= "NONE" ; NET "adc_ovf_a" LOC = "F18" ; NET "adc_oen_a" LOC = "E19" ; NET "adc_pdn_a" LOC = "E20" ; NET "adc_b[0]" LOC = "A12" | IOBDELAY= "NONE"; NET "adc_b[1]" LOC = "E16" | IOBDELAY= "NONE" ; NET "adc_b[2]" LOC = "F12" | IOBDELAY= "NONE" ; NET "adc_b[3]" LOC = "F13" | IOBDELAY= "NONE" ; NET "adc_b[4]" LOC = "F16" | IOBDELAY= "NONE" ; NET "adc_b[5]" LOC = "F17" | IOBDELAY= "NONE" ; NET "adc_b[6]" LOC = "C19" | IOBDELAY= "NONE" ; NET "adc_b[7]" LOC = "B20" | IOBDELAY= "NONE" ; NET "adc_b[8]" LOC = "B19" | IOBDELAY= "NONE" ; NET "adc_b[9]" LOC = "C18" | IOBDELAY= "NONE" ; NET "adc_b[10]" LOC = "D18" | IOBDELAY= "NONE" ; NET "adc_b[11]" LOC = "B18" | IOBDELAY= "NONE" ; NET "adc_b[12]" LOC = "D17" | IOBDELAY= "NONE" ; NET "adc_b[13]" LOC = "E17" | IOBDELAY= "NONE" ; NET "adc_ovf_b" LOC = "B17" ; NET "adc_oen_b" LOC = "C17" ; NET "adc_pdn_b" LOC = "D15" ; NET "dac_a[0]" LOC = "A5" ; NET "dac_a[1]" LOC = "B5" ; NET "dac_a[2]" LOC = "C5" ; NET "dac_a[3]" LOC = "D5" ; NET "dac_a[4]" LOC = "A4" ; NET "dac_a[5]" LOC = "B4" ; NET "dac_a[6]" LOC = "F6" ; NET "dac_a[7]" LOC = "D10" ; NET "dac_a[8]" LOC = "D9" ; NET "dac_a[9]" LOC = "A10" ; NET "dac_a[10]" LOC = "L2" ; NET "dac_a[11]" LOC = "L4" ; NET "dac_a[12]" LOC = "L3" ; NET "dac_a[13]" LOC = "L6" ; NET "dac_a[14]" LOC = "L5" ; NET "dac_a[15]" LOC = "K2" ; NET "dac_b[0]" LOC = "D11" ; NET "dac_b[1]" LOC = "E11" ; NET "dac_b[2]" LOC = "F11" ; NET "dac_b[3]" LOC = "B10" ; NET "dac_b[4]" LOC = "C10" ; NET "dac_b[5]" LOC = "E10" ; NET "dac_b[6]" LOC = "F10" ; NET "dac_b[7]" LOC = "A9" ; NET "dac_b[8]" LOC = "B9" ; NET "dac_b[9]" LOC = "E9" ; NET "dac_b[10]" LOC = "F9" ; NET "dac_b[11]" LOC = "A8" ; NET "dac_b[12]" LOC = "B8" ; NET "dac_b[13]" LOC = "D7" ; NET "dac_b[14]" LOC = "E7" ; NET "dac_b[15]" LOC = "B6" ; NET "dac_lock" LOC = "D6" ; NET "SCL" LOC = "A7" ; NET "SDA" LOC = "D8" ; NET "clk_en[0]" LOC = "C4" ; NET "clk_en[1]" LOC = "D1" ; NET "clk_sel[0]" LOC = "C3" ; NET "clk_sel[1]" LOC = "C2" ; NET "clk_func" LOC = "C12" ; NET "clk_status" LOC = "B12" ; NET "clk_fpga_p" LOC = "A11" ; NET "clk_fpga_n" LOC = "B11" ; NET "clk_to_mac" LOC = "AB12" ; NET "pps_in" LOC = "K1" ; NET "sclk" LOC = "K5" ; NET "sen_clk" LOC = "K6" ; NET "sen_dac" LOC = "L1" ; NET "sdi" LOC = "J1" ; NET "sdo" LOC = "J2" ; NET "sen_tx_db" LOC = "C1" ; NET "sclk_tx_db" LOC = "D3" ; NET "sdo_tx_db" LOC = "G3" ; NET "sdi_tx_db" LOC = "G4" ; NET "sen_tx_adc" LOC = "G2" ; NET "sclk_tx_adc" LOC = "H1" ; NET "sdo_tx_adc" LOC = "H2" ; NET "sdi_tx_adc" LOC = "J4" ; NET "sen_tx_dac" LOC = "H4" ; NET "sclk_tx_dac" LOC = "J5" ; NET "sdi_tx_dac" LOC = "J6" ; NET "io_tx[0]" LOC = "K4" ; NET "io_tx[1]" LOC = "K3" ; NET "io_tx[2]" LOC = "G1" ; NET "io_tx[3]" LOC = "G5" ; NET "io_tx[4]" LOC = "H5" ; NET "io_tx[5]" LOC = "F3" ; NET "io_tx[6]" LOC = "F2" ; NET "io_tx[7]" LOC = "F5" ; NET "io_tx[8]" LOC = "G6" ; NET "io_tx[9]" LOC = "E2" ; NET "io_tx[10]" LOC = "E1" ; NET "io_tx[11]" LOC = "E3" ; NET "io_tx[12]" LOC = "F4" ; NET "io_tx[13]" LOC = "D2" ; NET "io_tx[14]" LOC = "D4" ; NET "io_tx[15]" LOC = "E4" ; NET "sen_rx_db" LOC = "D22" ; NET "sclk_rx_db" LOC = "F19" ; NET "sdo_rx_db" LOC = "G20" ; NET "sdi_rx_db" LOC = "H19" ; NET "sen_rx_adc" LOC = "H18" ; NET "sclk_rx_adc" LOC = "J17" ; NET "sdo_rx_adc" LOC = "H21" ; NET "sdi_rx_adc" LOC = "H22" ; NET "sen_rx_dac" LOC = "J18" ; NET "sclk_rx_dac" LOC = "J19" ; NET "sdi_rx_dac" LOC = "J21" ; NET "io_rx[0]" LOC = "L21" ; NET "io_rx[1]" LOC = "L20" ; NET "io_rx[2]" LOC = "L19" ; NET "io_rx[3]" LOC = "L18" ; NET "io_rx[4]" LOC = "L17" ; NET "io_rx[5]" LOC = "K22" ; NET "io_rx[6]" LOC = "K21" ; NET "io_rx[7]" LOC = "K20" ; NET "io_rx[8]" LOC = "G22" ; NET "io_rx[9]" LOC = "G21" ; NET "io_rx[10]" LOC = "F21" ; NET "io_rx[11]" LOC = "F20" ; NET "io_rx[12]" LOC = "G19" ; NET "io_rx[13]" LOC = "G18" ; NET "io_rx[14]" LOC = "G17" ; NET "io_rx[15]" LOC = "E22" ; NET "clk_to_mac" TNM_NET = "clk_to_mac"; TIMESPEC "TS_clk_to_mac" = PERIOD "clk_to_mac" 8 ns HIGH 50 %; NET "clk_fpga_p" TNM_NET = "clk_fpga_p"; TIMESPEC "TS_clk_fpga_p" = PERIOD "clk_fpga_p" 10 ns HIGH 50 %; NET "cpld_clk" TNM_NET = "cpld_clk"; TIMESPEC "TS_cpld_clk" = PERIOD "cpld_clk" 40 ns HIGH 50 %; NET "GMII_RX_CLK" TNM_NET = "GMII_RX_CLK"; TIMESPEC "TS_GMII_RX_CLK" = PERIOD "GMII_RX_CLK" 8 ns HIGH 50 %; NET "ser_rx_clk" TNM_NET = "ser_rx_clk"; TIMESPEC "TS_ser_rx_clk" = PERIOD "ser_rx_clk" 10 ns HIGH 50 %; NET "cpld_clk" CLOCK_DEDICATED_ROUTE = FALSE; NET "GMII_RX_CLK" CLOCK_DEDICATED_ROUTE = FALSE; #NET "adc_a<*>" TNM_NET = ADC_DATA_GRP; #NET "adc_b<*>" TNM_NET = ADC_DATA_GRP; #TIMEGRP "ADC_DATA_GRP" OFFSET = IN 1 ns VALID 5 ns BEFORE "clk_fpga_p" RISING; #NET "adc_a<*>" OFFSET = IN 1 ns VALID 5 ns BEFORE "clk_fpga_p" RISING; #NET "adc_b<*>" OFFSET = IN 1 ns VALID 5 ns BEFORE "clk_fpga_p" RISING; TIMESPEC "TS_clk_div_to_dsp_clk" = FROM "clk_div" TO "dcm_out" 10 ns; uhd-3.5.5/fpga/usrp2/top/USRP2/u2_rev3.v000066400000000000000000000410731224274632000174340ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// module u2_rev3 ( // Misc, debug output [5:0] leds, output [31:0] debug, output [1:0] debug_clk, output uart_tx_o, input uart_rx_i, // Expansion input exp_time_in_p, // Diff input exp_time_in_n, // Diff output exp_time_out_p, // Diff output exp_time_out_n, // Diff // GMII // GMII-CTRL input GMII_COL, input GMII_CRS, // GMII-TX output reg [7:0] GMII_TXD, output reg GMII_TX_EN, output reg GMII_TX_ER, output GMII_GTX_CLK, input GMII_TX_CLK, // 100mbps clk // GMII-RX input [7:0] GMII_RXD, input GMII_RX_CLK, input GMII_RX_DV, input GMII_RX_ER, // GMII-Management inout MDIO, output MDC, input PHY_INTn, // open drain output PHY_RESETn, input PHY_CLK, // possibly use on-board osc // RAM inout [17:0] RAM_D, output [18:0] RAM_A, output RAM_CE1n, output RAM_CENn, output RAM_CLK, output RAM_WEn, output RAM_OEn, output RAM_LDn, // SERDES output ser_enable, output ser_prbsen, output ser_loopen, output ser_rx_en, output ser_tx_clk, output reg [15:0] ser_t, output reg ser_tklsb, output reg ser_tkmsb, input ser_rx_clk, input [15:0] ser_r, input ser_rklsb, input ser_rkmsb, // CPLD interface output cpld_start, // AA9 output cpld_mode, // U12 output cpld_done, // V12 input cpld_din, // AA14 Now shared with CFG_Din input cpld_clk, // AB14 serial clock input cpld_detached,// V11 unused output cpld_init_b, // W12 unused dual purpose output cpld_misc, // Y12 // Watchdog interface input POR, output WDI, // ADC input [13:0] adc_a, input adc_ovf_a, output adc_oen_a, output adc_pdn_a, input [13:0] adc_b, input adc_ovf_b, output adc_oen_b, output adc_pdn_b, // DAC output reg [15:0] dac_a, output reg [15:0] dac_b, input dac_lock, // unused for now // I2C inout SCL, inout SDA, // Clock Gen Control output [1:0] clk_en, output [1:0] clk_sel, input clk_func, // FIXME is an input to control the 9510 input clk_status, // Clocks input clk_fpga_p, // Diff input clk_fpga_n, // Diff input clk_to_mac, input pps_in, // Generic SPI output sclk, output sen_clk, output sen_dac, output sdi, input sdo, // TX DBoard output sen_tx_db, output sclk_tx_db, input sdo_tx_db, output sdi_tx_db, output sen_tx_adc, output sclk_tx_adc, input sdo_tx_adc, output sdi_tx_adc, output sen_tx_dac, output sclk_tx_dac, output sdi_tx_dac, inout [15:0] io_tx, // RX DBoard output sen_rx_db, output sclk_rx_db, input sdo_rx_db, output sdi_rx_db, output sen_rx_adc, output sclk_rx_adc, input sdo_rx_adc, output sdi_rx_adc, output sen_rx_dac, output sclk_rx_dac, output sdi_rx_dac, inout [15:0] io_rx ); assign cpld_init_b = 0; // FPGA-specific pins connections wire clk_fpga, dsp_clk, clk_div, dcm_out, wb_clk, clock_ready; wire clk90, clk180, clk270; // reset the watchdog continuously reg [15:0] wd; wire config_success; always @(posedge wb_clk) if(~config_success) wd <= 0; else wd <= wd + 1; assign WDI = wd[15]; wire clk_fpga_unbuf; IBUFGDS clk_fpga_pin (.O(clk_fpga_unbuf),.I(clk_fpga_p),.IB(clk_fpga_n)); BUFG clk_fpga_BUF (.O(clk_fpga),.I(clk_fpga_unbuf)); defparam clk_fpga_pin.IOSTANDARD = "LVPECL_25"; wire cpld_clock_buf; BUFG cpld_clock_BUF (.O(cpld_clock_buf),.I(cpld_clock)); wire exp_time_in; IBUFDS exp_time_in_pin (.O(exp_time_in),.I(exp_time_in_p),.IB(exp_time_in_n)); defparam exp_time_in_pin.IOSTANDARD = "LVDS_25"; wire exp_time_out; OBUFDS exp_time_out_pin (.O(exp_time_out_p),.OB(exp_time_out_n),.I(exp_time_out)); defparam exp_time_out_pin.IOSTANDARD = "LVDS_25"; reg [5:0] clock_ready_d; always @(posedge clk_fpga) clock_ready_d[5:0] <= {clock_ready_d[4:0],clock_ready}; wire dcm_rst = ~&clock_ready_d & |clock_ready_d; wire adc_on_a, adc_on_b, adc_oe_a, adc_oe_b; assign adc_oen_a = ~adc_oe_a; assign adc_oen_b = ~adc_oe_b; assign adc_pdn_a = ~adc_on_a; assign adc_pdn_b = ~adc_on_b; reg [13:0] adc_a_reg1, adc_b_reg1, adc_a_reg2, adc_b_reg2; reg adc_ovf_a_reg1, adc_ovf_a_reg2, adc_ovf_b_reg1, adc_ovf_b_reg2; // ADC A and B are swapped in schematic to facilitate clean layout always @(posedge dsp_clk) begin adc_a_reg1 <= adc_b; adc_b_reg1 <= adc_a; adc_ovf_a_reg1 <= adc_ovf_b; adc_ovf_b_reg1 <= adc_ovf_a; end always @(posedge dsp_clk) begin adc_a_reg2 <= adc_a_reg1; adc_b_reg2 <= adc_b_reg1; adc_ovf_a_reg2 <= adc_ovf_a_reg1; adc_ovf_b_reg2 <= adc_ovf_b_reg1; end // always @ (posedge dsp_clk) // Handle Clocks DCM DCM_INST (.CLKFB(dsp_clk), .CLKIN(clk_fpga), .DSSEN(0), .PSCLK(0), .PSEN(0), .PSINCDEC(0), .RST(dcm_rst), .CLKDV(clk_div), .CLKFX(), .CLKFX180(), .CLK0(dcm_out), .CLK2X(), .CLK2X180(), .CLK90(clk90), .CLK180(clk180), .CLK270(clk270), .LOCKED(LOCKED_OUT), .PSDONE(), .STATUS()); defparam DCM_INST.CLK_FEEDBACK = "1X"; defparam DCM_INST.CLKDV_DIVIDE = 2.0; defparam DCM_INST.CLKFX_DIVIDE = 1; defparam DCM_INST.CLKFX_MULTIPLY = 4; defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE"; defparam DCM_INST.CLKIN_PERIOD = 10.000; defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE"; defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW"; defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST.FACTORY_JF = 16'h8080; defparam DCM_INST.PHASE_SHIFT = 0; defparam DCM_INST.STARTUP_WAIT = "FALSE"; BUFG dspclk_BUFG (.I(dcm_out), .O(dsp_clk)); BUFG wbclk_BUFG (.I(clk_div), .O(wb_clk)); // I2C -- Don't use external transistors for open drain, the FPGA implements this IOBUF scl_pin(.O(scl_pad_i), .IO(SCL), .I(scl_pad_o), .T(scl_pad_oen_o)); IOBUF sda_pin(.O(sda_pad_i), .IO(SDA), .I(sda_pad_o), .T(sda_pad_oen_o)); // LEDs are active low outputs wire [5:0] leds_int; assign leds = 6'b011111 ^ leds_int; // all except eth are active-low // SPI wire miso, mosi, sclk_int; assign {sclk,sdi} = (~sen_clk | ~sen_dac) ? {sclk_int,mosi} : 2'b0; assign {sclk_tx_db,sdi_tx_db} = ~sen_tx_db ? {sclk_int,mosi} : 2'b0; assign {sclk_tx_dac,sdi_tx_dac} = ~sen_tx_dac ? {sclk_int,mosi} : 2'b0; assign {sclk_tx_adc,sdi_tx_adc} = ~sen_tx_adc ? {sclk_int,mosi} : 2'b0; assign {sclk_rx_db,sdi_rx_db} = ~sen_rx_db ? {sclk_int,mosi} : 2'b0; assign {sclk_rx_dac,sdi_rx_dac} = ~sen_rx_dac ? {sclk_int,mosi} : 2'b0; assign {sclk_rx_adc,sdi_rx_adc} = ~sen_rx_adc ? {sclk_int,mosi} : 2'b0; assign miso = (~sen_clk & sdo) | (~sen_dac & sdo) | (~sen_tx_db & sdo_tx_db) | (~sen_tx_adc & sdo_tx_adc) | (~sen_rx_db & sdo_rx_db) | (~sen_rx_adc & sdo_rx_adc); wire GMII_TX_EN_unreg, GMII_TX_ER_unreg; wire [7:0] GMII_TXD_unreg; wire GMII_GTX_CLK_int; always @(posedge GMII_GTX_CLK_int) begin GMII_TX_EN <= GMII_TX_EN_unreg; GMII_TX_ER <= GMII_TX_ER_unreg; GMII_TXD <= GMII_TXD_unreg; end OFDDRRSE OFDDRRSE_gmii_inst (.Q(GMII_GTX_CLK), // Data output (connect directly to top-level port) .C0(GMII_GTX_CLK_int), // 0 degree clock input .C1(~GMII_GTX_CLK_int), // 180 degree clock input .CE(1), // Clock enable input .D0(0), // Posedge data input .D1(1), // Negedge data input .R(0), // Synchronous reset input .S(0) // Synchronous preset input ); wire ser_tklsb_unreg, ser_tkmsb_unreg; wire [15:0] ser_t_unreg; wire ser_tx_clk_int; always @(posedge ser_tx_clk_int) begin ser_tklsb <= ser_tklsb_unreg; ser_tkmsb <= ser_tkmsb_unreg; ser_t <= ser_t_unreg; end assign ser_tx_clk = clk_fpga; reg [15:0] ser_r_int; reg ser_rklsb_int, ser_rkmsb_int; wire ser_rx_clk_buf; BUFG ser_rx_clk_BUF (.O(ser_rx_clk_buf),.I(ser_rx_clk)); always @(posedge ser_rx_clk_buf) begin ser_r_int <= ser_r; ser_rklsb_int <= ser_rklsb; ser_rkmsb_int <= ser_rkmsb; end wire [15:0] dac_a_int, dac_b_int; // DAC A and B are swapped in schematic to facilitate clean layout // DAC A is also inverted in schematic to facilitate clean layout always @(posedge dsp_clk) dac_a <= ~dac_b_int; always @(posedge dsp_clk) dac_b <= dac_a_int; /* OFDDRRSE OFDDRRSE_serdes_inst (.Q(ser_tx_clk), // Data output (connect directly to top-level port) .C0(ser_tx_clk_int), // 0 degree clock input .C1(~ser_tx_clk_int), // 180 degree clock input .CE(1), // Clock enable input .D0(0), // Posedge data input .D1(1), // Negedge data input .R(0), // Synchronous reset input .S(0) // Synchronous preset input ); */ wire [17:0] RAM_D_pi; wire [17:0] RAM_D_po; wire RAM_D_poe; genvar i; // // Instantiate IO for Bidirectional bus to SRAM // generate for (i=0;i<18;i=i+1) begin : gen_RAM_D_IO IOBUF #( .DRIVE(12), .IOSTANDARD("LVCMOS25"), .SLEW("FAST") ) RAM_D_i ( .O(RAM_D_pi[i]), .I(RAM_D_po[i]), .IO(RAM_D[i]), .T(RAM_D_poe) ); end // block: gen_RAM_D_IO endgenerate // // DCM edits start here // wire RAM_CLK_buf; wire clk_to_mac_buf; wire clk125_ext_clk0; wire clk125_ext_clk180; wire clk125_ext_clk0_buf; wire clk125_ext_clk180_buf; wire clk125_int_buf; wire clk125_int; IBUFG clk_to_mac_buf_i1 (.I(clk_to_mac), .O(clk_to_mac_buf)); DCM DCM_INST1 (.CLKFB(RAM_CLK_buf), .CLKIN(clk_to_mac_buf), .DSSEN(1'b0), .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0), .RST(1'b0), .CLK0(clk125_ext_clk0), .CLK180(clk125_ext_clk180) ); defparam DCM_INST1.CLK_FEEDBACK = "1X"; defparam DCM_INST1.CLKDV_DIVIDE = 2.0; defparam DCM_INST1.CLKFX_DIVIDE = 1; defparam DCM_INST1.CLKFX_MULTIPLY = 4; defparam DCM_INST1.CLKIN_DIVIDE_BY_2 = "FALSE"; defparam DCM_INST1.CLKIN_PERIOD = 8.000; defparam DCM_INST1.CLKOUT_PHASE_SHIFT = "FIXED"; defparam DCM_INST1.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; defparam DCM_INST1.DFS_FREQUENCY_MODE = "LOW"; defparam DCM_INST1.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST1.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST1.FACTORY_JF = 16'h8080; defparam DCM_INST1.PHASE_SHIFT = -64; defparam DCM_INST1.STARTUP_WAIT = "FALSE"; IBUFG RAM_CLK_buf_i1 (.I(RAM_CLK), .O(RAM_CLK_buf)); BUFG clk125_ext_clk0_buf_i1 (.I(clk125_ext_clk0), .O(clk125_ext_clk0_buf)); BUFG clk125_ext_clk180_buf_i1 (.I(clk125_ext_clk180), .O(clk125_ext_clk180_buf)); OFDDRRSE RAM_CLK_i1 (.Q(RAM_CLK), .C0(clk125_ext_clk0_buf), .C1(clk125_ext_clk180_buf), .CE(1'b1), .D0(1'b1), .D1(1'b0), .R(1'b0), .S(1'b0)); // SRL16 dcm2_rst_i1 (.D(1'b0), // .CLK(clk_to_mac_buf), // .Q(dcm2_rst), // .A0(1'b1), // .A1(1'b1), // .A2(1'b1), // .A3(1'b1)); // synthesis attribute init of dcm2_rst_i1 is "000F"; DCM DCM_INST2 (.CLKFB(clk125_int_buf), .CLKIN(clk_to_mac_buf), .DSSEN(1'b0), .PSCLK(1'b0), .PSEN(1'b0), .PSINCDEC(1'b0), .RST(1'b0), .CLK0(clk125_int)); defparam DCM_INST2.CLK_FEEDBACK = "1X"; defparam DCM_INST2.CLKDV_DIVIDE = 2.0; defparam DCM_INST2.CLKFX_DIVIDE = 1; defparam DCM_INST2.CLKFX_MULTIPLY = 4; defparam DCM_INST2.CLKIN_DIVIDE_BY_2 = "FALSE"; defparam DCM_INST2.CLKIN_PERIOD = 8.000; defparam DCM_INST2.CLKOUT_PHASE_SHIFT = "NONE"; defparam DCM_INST2.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; defparam DCM_INST2.DFS_FREQUENCY_MODE = "LOW"; defparam DCM_INST2.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST2.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST2.FACTORY_JF = 16'h8080; defparam DCM_INST2.PHASE_SHIFT = 0; defparam DCM_INST2.STARTUP_WAIT = "FALSE"; BUFG clk125_int_buf_i1 (.I(clk125_int), .O(clk125_int_buf)); // // DCM edits end here // u2_core u2_core(.dsp_clk (dsp_clk), .wb_clk (wb_clk), .clock_ready (clock_ready), .clk_to_mac (clk125_int_buf), .pps_in (pps_in), .leds (leds_int), .debug (debug[31:0]), .debug_clk (debug_clk[1:0]), .exp_time_in (exp_time_in), .exp_time_out (exp_time_out), .GMII_COL (GMII_COL), .GMII_CRS (GMII_CRS), .GMII_TXD (GMII_TXD_unreg[7:0]), .GMII_TX_EN (GMII_TX_EN_unreg), .GMII_TX_ER (GMII_TX_ER_unreg), .GMII_GTX_CLK (GMII_GTX_CLK_int), .GMII_TX_CLK (GMII_TX_CLK), .GMII_RXD (GMII_RXD[7:0]), .GMII_RX_CLK (GMII_RX_CLK), .GMII_RX_DV (GMII_RX_DV), .GMII_RX_ER (GMII_RX_ER), .MDIO (MDIO), .MDC (MDC), .PHY_INTn (PHY_INTn), .PHY_RESETn (PHY_RESETn), .ser_enable (ser_enable), .ser_prbsen (ser_prbsen), .ser_loopen (ser_loopen), .ser_rx_en (ser_rx_en), .ser_tx_clk (ser_tx_clk_int), .ser_t (ser_t_unreg[15:0]), .ser_tklsb (ser_tklsb_unreg), .ser_tkmsb (ser_tkmsb_unreg), .ser_rx_clk (ser_rx_clk_buf), .ser_r (ser_r_int[15:0]), .ser_rklsb (ser_rklsb_int), .ser_rkmsb (ser_rkmsb_int), .cpld_start (cpld_start), .cpld_mode (cpld_mode), .cpld_done (cpld_done), .cpld_din (cpld_din), .cpld_clk (cpld_clk), .cpld_detached (cpld_detached), .cpld_misc (cpld_misc), .cpld_init_b (cpld_init_b), .por (~POR), .config_success (config_success), .adc_a (adc_a_reg2), .adc_ovf_a (adc_ovf_a_reg2), .adc_on_a (adc_on_a), .adc_oe_a (adc_oe_a), .adc_b (adc_b_reg2), .adc_ovf_b (adc_ovf_b_reg2), .adc_on_b (adc_on_b), .adc_oe_b (adc_oe_b), .dac_a (dac_a_int), .dac_b (dac_b_int), .scl_pad_i (scl_pad_i), .scl_pad_o (scl_pad_o), .scl_pad_oen_o (scl_pad_oen_o), .sda_pad_i (sda_pad_i), .sda_pad_o (sda_pad_o), .sda_pad_oen_o (sda_pad_oen_o), .clk_en (clk_en[1:0]), .clk_sel (clk_sel[1:0]), .clk_func (clk_func), .clk_status (clk_status), .sclk (sclk_int), .mosi (mosi), .miso (miso), .sen_clk (sen_clk), .sen_dac (sen_dac), .sen_tx_db (sen_tx_db), .sen_tx_adc (sen_tx_adc), .sen_tx_dac (sen_tx_dac), .sen_rx_db (sen_rx_db), .sen_rx_adc (sen_rx_adc), .sen_rx_dac (sen_rx_dac), .io_tx (io_tx[15:0]), .io_rx (io_rx[15:0]), .RAM_D_pi (RAM_D_pi), .RAM_D_po (RAM_D_po), .RAM_D_poe (RAM_D_poe), .RAM_A (RAM_A), .RAM_CE1n (RAM_CE1n), .RAM_CENn (RAM_CENn), // .RAM_CLK (RAM_CLK), .RAM_WEn (RAM_WEn), .RAM_OEn (RAM_OEn), .RAM_LDn (RAM_LDn), .uart_tx_o (uart_tx_o), .uart_rx_i (uart_rx_i), .uart_baud_o (), .sim_mode (1'b0), .clock_divider (2) ); endmodule // u2_rev2 uhd-3.5.5/fpga/usrp2/top/extract_usage.py000077500000000000000000000035121224274632000203140ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import os import sys ALL_MAP_FILES = """\ ./N2x0/build-N210R4/u2plus_map.map N210 ./N2x0/build-N200R4/u2plus_map.map N200 ./USRP2/build/u2_rev3_map.map USRP2 ./E1x0/build-E100/u1e_map.map E100 ./E1x0/build-E110/u1e_map.map E110 ./B100/build-B100/B100_map.map B100 """ def extract_map_from_file(path): output = '' found = False for line in open(path).readlines(): if line.strip() == 'Mapping completed.': found = False if line.strip() == 'Logic Utilization:': found = True if found: output += line return output def extract_maps(): output = '' for line in ALL_MAP_FILES.splitlines(): path, name = line.split() if not os.path.exists(path): print 'DNE ', path, ' skipping...' output += """ ######################################################################## ## %s Usage Summary ######################################################################## %s"""%(name, extract_map_from_file(path).strip()) return output + '\n\n' if __name__ == '__main__': summary = extract_maps() if len(sys.argv) == 1: print summary else: open(sys.argv[1], 'w').write(summary) uhd-3.5.5/fpga/usrp2/top/python/000077500000000000000000000000001224274632000164215ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/python/check_inout.py000077500000000000000000000041121224274632000212670ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Description: # generates a list of inputs and outputs from the top-level Verilog file and cross-references them to the .ucf. # outputs errors for pins that aren't found in the UCF, checks for capitalization errors and other common mistakes import sys import re if __name__=='__main__': if len(sys.argv) == 2: print "Usage: %s " sys.exit(-1) verilog_filename = sys.argv[1] ucf_filename = sys.argv[2] verilog_file = open(verilog_filename, 'r') ucf_file = open(ucf_filename, 'r') verilog_iolist = list() ucf_iolist = list() #read in all input, inout, and output declarations and compile a list for line in verilog_file: for match in re.findall(r"(?:input|inout|output) (?:reg )*(?:\[.*\] )*(\w+)", line.split("//")[0]): verilog_iolist.append(match) for line in ucf_file: m = re.search(r"""NET "(\w+).*" """, line.split("#")[0]) if m is not None: ucf_iolist.append(m.group(1)) #now find corresponding matches and error when you don't find one #we search for .v defs without matching .ucf defs since the reverse isn't necessarily a problem err = False for item in verilog_iolist: if item not in ucf_iolist: print "Error: %s appears in the top-level Verilog file, but is not in the UCF definition file!" % item err = True if err: sys.exit(-1) print "No errors found." sys.exit(0) uhd-3.5.5/fpga/usrp2/top/python/check_timing.py000077500000000000000000000022361224274632000214250ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import sys import re def print_timing_constraint_summary(twr_file): output = "" keep = False done = False for line in open(twr_file).readlines(): if 'Derived Constraint Report' in line: keep = True if 'constraint' in line and 'met' in line: done = True if not keep and done: keep = True if keep: output += line if done: break print("\n\n"+output) if __name__=='__main__': map(print_timing_constraint_summary, sys.argv[1:]) uhd-3.5.5/fpga/usrp2/top/tcl/000077500000000000000000000000001224274632000156625ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/top/tcl/ise_helper.tcl000066400000000000000000000054721224274632000205150ustar00rootroot00000000000000# # Copyright 2008 Ettus Research LLC # # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. # proc set_props {process options} { if ![string compare $options ""] { return } set state 1 foreach opt $options { if $state { set key $opt set state 0 } else { puts ">>> Setting: $process\[$key\] = $opt" if ![string compare $process "Project"] { project set $key $opt } else { project set $key $opt -process $process } set state 1 } } } if [file isfile $env(ISE_FILE)] { puts ">>> Opening project: $env(ISE_FILE)" project open $env(ISE_FILE) } else { puts ">>> Creating project: $env(ISE_FILE)" project new $env(ISE_FILE) ################################################## # Set the project properties ################################################## set_props "Project" $env(PROJECT_PROPERTIES) ################################################## # Add the sources ################################################## foreach source $env(SOURCES) { puts ">>> Adding source to project: $source" xfile add $source } ################################################## # Add the custom sources ################################################## foreach source $env(CUSTOM_SRCS) { puts ">>> Adding custom source to project: $source" xfile add $source -include_global } ################################################## # Set the top level module ################################################## project set top $env(TOP_MODULE) ################################################## # Set the process properties ################################################## set_props "Synthesize - XST" $env(SYNTHESIZE_PROPERTIES) set_props "Translate" $env(TRANSLATE_PROPERTIES) set_props "Map" $env(MAP_PROPERTIES) set_props "Place & Route" $env(PLACE_ROUTE_PROPERTIES) set_props "Generate Post-Place & Route Static Timing" $env(STATIC_TIMING_PROPERTIES) set_props "Generate Programming File" $env(GEN_PROG_FILE_PROPERTIES) set_props "Generate Post-Place & Route Simulation Model" $env(SIM_MODEL_PROPERTIES) } if [string compare [lindex $argv 0] ""] { puts ">>> Running Process: [lindex $argv 0]" process run [lindex $argv 0] } project close exit uhd-3.5.5/fpga/usrp2/udp/000077500000000000000000000000001224274632000150665ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/udp/Makefile.srcs000066400000000000000000000004361224274632000175020ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # UDP Sources ################################################## UDP_SRCS = $(abspath $(addprefix $(BASE_DIR)/../udp/, \ udp_wrapper.v \ fifo19_rxrealign.v \ prot_eng_tx.v \ add_onescomp.v \ )) uhd-3.5.5/fpga/usrp2/udp/add_onescomp.v000066400000000000000000000017141224274632000177130ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module add_onescomp #(parameter WIDTH = 16) (input [WIDTH-1:0] A, input [WIDTH-1:0] B, output [WIDTH-1:0] SUM); wire [WIDTH:0] SUM_INT = {1'b0,A} + {1'b0,B}; assign SUM = SUM_INT[WIDTH-1:0] + {{WIDTH-1{1'b0}},SUM_INT[WIDTH]}; endmodule // add_onescomp uhd-3.5.5/fpga/usrp2/udp/fifo19_rxrealign.v000066400000000000000000000037131224274632000204310ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Adds a junk line at the beginning of every packet, which the // following stages should ignore. This gives us proper alignment due // to the 14 byte ethernet header // Bit 18 -- odd length // Bit 17 -- eof // Bit 16 -- sof // Bit 15:0 -- data module fifo19_rxrealign (input clk, input reset, input clear, input [18:0] datain, input src_rdy_i, output dst_rdy_o, output [18:0] dataout, output src_rdy_o, input dst_rdy_i); reg rxre_state; localparam RXRE_DUMMY = 0; localparam RXRE_PKT = 1; assign dataout[18] = datain[18]; assign dataout[17] = datain[17]; assign dataout[16] = (rxre_state==RXRE_DUMMY) | (datain[17] & datain[16]); // allows for passing error signal assign dataout[15:0] = datain[15:0]; always @(posedge clk) if(reset | clear) rxre_state <= RXRE_DUMMY; else if(src_rdy_i & dst_rdy_i) case(rxre_state) RXRE_DUMMY : rxre_state <= RXRE_PKT; RXRE_PKT : if(datain[17]) // if eof or error rxre_state <= RXRE_DUMMY; endcase // case (rxre_state) assign src_rdy_o = src_rdy_i & dst_rdy_i; // Send anytime both sides are ready assign dst_rdy_o = src_rdy_i & dst_rdy_i & (rxre_state == RXRE_PKT); // Only consume after the dummy endmodule // fifo19_rxrealign uhd-3.5.5/fpga/usrp2/udp/prot_eng_rx.v000066400000000000000000000100411224274632000175770ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Protocol Engine Receiver // Checks each line (16 bits) against values in setting regs // 3 options for each line -- // Error if mismatch, Slowpath if mismatch, or ignore line // The engine increases the length of each packet by 32 or 48 bits, // bringing the total length to a multiple of 32 bits. The last line // is entirely new, and contains the results of the matching operation: // 16 bits of flags, 16 bits of data. Flags indicate error or slowpath // Data indicates line that caused mismatch if any. // Flags[2:0] is {occ, eop, sop} // Protocol word format is: // 22 Last Header Line // 21 SLOWPATH if mismatch // 20 ERROR if mismatch // 19 This is the IP checksum // 18 This is the UDP checksum // 17 Compute IP checksum on this word // 16 Compute UDP checksum on this word // 15:0 data word to be matched module prot_eng_rx #(parameter BASE=0) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [18:0] datain, input src_rdy_i, output dst_rdy_o, output [18:0] dataout, output src_rdy_o, input dst_rdy_i); localparam HDR_WIDTH = 16 + 7; // 16 bits plus flags localparam HDR_LEN = 32; // Up to 64 bytes of protocol // Store header values in a small dual-port (distributed) ram reg [HDR_WIDTH-1:0] header_ram[0:HDR_LEN-1]; wire [HDR_WIDTH-1:0] header_word; always @(posedge clk) if(set_stb & ((set_addr & 8'hE0) == BASE)) header_ram[set_addr[4:0]] <= set_data; assign header_word = header_ram[state]; wire consume_input = src_rdy_i & dst_rdy_o; wire produce_output = src_rdy_o & dst_rdy_i; // Main State Machine reg [15:0] pkt_length, fail_word, dataout_int; reg slowpath, error, sof_o, eof_o, occ_o, odd; assign dataout = {occ_o, eof_o, sof_o, dataout_int}; wire [15:0] calc_ip_checksum, calc_udp_checksum; reg [15:0] rx_ip_checksum, rx_udp_checksum; always @(posedge clk) if(header_word[19]) rx_ip_checksum <= datain[15:0]; always @(posedge clk) if(header_word[18]) rx_udp_checksum <= datain[15:0]; always @(posedge clk) if(reset | clear) begin slowpath <= 0; error <= 0; state <= 0; fail_word <= 0; eof_o <= 0; occ_o <= 0; end else if(src_rdy_i & dst_rdy_i) case (state) 0 : begin slowpath <= 0; error <= 0; eof_o <= 0; occ_o <= 0; state <= 1; end ST_SLOWPATH : ; ST_ERROR : ; ST_PAYLOAD : ; ST_FILLER : ; ST_END1 : ; ST_END2 : ; default : if(header_word[21] && mismatch) state <= ST_SLOWPATH; else if(header_word[20] && mismatch) state <= ST_ERROR; else if(header_word[22]) state <= ST_PAYLOAD; else state <= state + 1; endcase // case (state) // IP + UDP checksum state machines checksum_sm ip_chk (.clk(clk), .reset(reset), .in(datain), .calc(consume_input & header_word[17]), .clear(state==0), .checksum(ip_checksum)); checksum_sm udp_chk (.clk(clk), .reset(reset), .in(datain), .calc(consume_input & header_word[16]), .clear(state==0), .checksum(udp_checksum)); endmodule // prot_eng_rx uhd-3.5.5/fpga/usrp2/udp/prot_eng_tx.v000066400000000000000000000101211224274632000176000ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module prot_eng_tx #(parameter BASE=0) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [35:0] datain, input src_rdy_i, output dst_rdy_o, output [35:0] dataout, output src_rdy_o, input dst_rdy_i); wire src_rdy_int1, dst_rdy_int1; wire src_rdy_int2, dst_rdy_int2; wire [35:0] data_int1, data_int2; // Shortfifo on input to guarantee no deadlock fifo_short #(.WIDTH(36)) head_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(datain), .src_rdy_i(src_rdy_i), .dst_rdy_o(dst_rdy_o), .dataout(data_int1), .src_rdy_o(src_rdy_int1), .dst_rdy_i(dst_rdy_int1), .space(),.occupied() ); // Store header values in a small dual-port (distributed) ram reg [31:0] header_ram[0:63]; reg [3:0] state; reg [1:0] port_sel; always @(posedge clk) if(set_stb & ((set_addr & 8'hC0) == BASE)) header_ram[set_addr[5:0]] <= set_data; wire [31:0] header_word = header_ram[{port_sel[1:0],state[3:0]}]; reg [15:0] pre_checksums [0:3]; always @(posedge clk) if(set_stb & ((set_addr & 8'hCF)== (BASE+7))) pre_checksums[set_addr[5:4]] <= set_data[15:0]; wire [15:0] pre_checksum = pre_checksums[port_sel[1:0]]; // Protocol State Machine reg [15:0] length; wire [15:0] ip_length = length + 28; // IP HDR + UDP HDR wire [15:0] udp_length = length + 8; // UDP HDR reg sof_o; reg [31:0] prot_data; always @(posedge clk) if(reset) begin state <= 0; sof_o <= 0; end else if(src_rdy_int1 & dst_rdy_int2) case(state) 0 : begin port_sel <= data_int1[18:17]; length <= data_int1[15:0]; sof_o <= 1; if(data_int1[16]) state <= 1; else state <= 12; end 12 : begin sof_o <= 0; if(data_int1[33]) // eof state <= 0; end default : begin sof_o <= 0; state <= state + 1; end endcase // case (state) wire [15:0] ip_checksum; add_onescomp #(.WIDTH(16)) add_onescomp (.A(pre_checksum),.B(ip_length),.SUM(ip_checksum)); reg [15:0] ip_checksum_reg; always @(posedge clk) ip_checksum_reg <= ip_checksum; always @* case(state) 1 : prot_data <= header_word; // ETH, top half ignored 2 : prot_data <= header_word; // ETH 3 : prot_data <= header_word; // ETH 4 : prot_data <= header_word; // ETH 5 : prot_data <= { header_word[31:16], ip_length }; // IP 6 : prot_data <= header_word; // IP 7 : prot_data <= { header_word[31:16], (16'hFFFF ^ ip_checksum_reg) }; // IP 8 : prot_data <= header_word; // IP 9 : prot_data <= header_word; // IP 10: prot_data <= header_word; // UDP 11: prot_data <= { udp_length, header_word[15:0]}; // UDP default : prot_data <= data_int1[31:0]; endcase // case (state) assign data_int2 = { data_int1[35:33] & {3{state[3]}}, sof_o, prot_data }; assign dst_rdy_int1 = dst_rdy_int2 & ((state == 0) | (state == 12)); assign src_rdy_int2 = src_rdy_int1 & (state != 0); // Shortfifo on output to guarantee no deadlock fifo_short #(.WIDTH(36)) tail_fifo (.clk(clk),.reset(reset),.clear(clear), .datain(data_int2), .src_rdy_i(src_rdy_int2), .dst_rdy_o(dst_rdy_int2), .dataout(dataout), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .space(),.occupied() ); endmodule // prot_eng_tx uhd-3.5.5/fpga/usrp2/udp/prot_eng_tx_tb.v000066400000000000000000000116111224274632000202720ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module prot_eng_tx_tb(); localparam BASE = 128; reg clk = 0; reg rst = 1; reg clear = 0; initial #1000 rst = 0; always #50 clk = ~clk; reg [31:0] f36_data; reg [1:0] f36_occ; reg f36_sof, f36_eof; wire [35:0] f36_in = {f36_occ,f36_eof,f36_sof,f36_data}; reg src_rdy_f36i = 0; wire dst_rdy_f36i; wire [35:0] casc_do; wire src_rdy_f36o, dst_rdy_f36o; wire [35:0] prot_out; wire src_rdy_prot, dst_rdy_prot; wire [35:0] realign_out; wire src_rdy_realign; reg dst_rdy_realign = 1; reg [15:0] count; reg set_stb; reg [7:0] set_addr; reg [31:0] set_data; fifo_short #(.WIDTH(36)) fifo_cascade36 (.clk(clk),.reset(rst),.clear(clear), .datain(f36_in),.src_rdy_i(src_rdy_f36i),.dst_rdy_o(dst_rdy_f36i), .dataout(casc_do),.src_rdy_o(src_rdy_f36o),.dst_rdy_i(dst_rdy_f36o)); prot_eng_tx #(.BASE(BASE)) prot_eng_tx (.clk(clk), .reset(rst), .clear(0), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .datain(casc_do),.src_rdy_i(src_rdy_f36o),.dst_rdy_o(dst_rdy_f36o), .dataout(prot_out),.src_rdy_o(src_rdy_prot),.dst_rdy_i(dst_rdy_prot)); ethtx_realign ethtx_realign (.clk(clk), .reset(rst), .clear(0), .datain(prot_out),.src_rdy_i(src_rdy_prot),.dst_rdy_o(dst_rdy_prot), .dataout(realign_out),.src_rdy_o(src_rdy_realign),.dst_rdy_i(dst_rdy_realign)); reg [35:0] printer; task WriteSREG; input [7:0] addr; input [31:0] data; begin @(posedge clk); set_addr <= addr; set_data <= data; set_stb <= 1; @(posedge clk); set_stb <= 0; end endtask // WriteSREG always @(posedge clk) if(src_rdy_realign) $display("Read: %h",realign_out); task ReadFromFIFO36; begin $display("Read from FIFO36"); #1 dst_rdy_realign <= 1; while(~src_rdy_prot) @(posedge clk); while(1) begin while(~src_rdy_prot) @(posedge clk); $display("Read: %h",realign_out); @(posedge clk); end end endtask // ReadFromFIFO36 task PutPacketInFIFO36; input [31:0] data_start; input [31:0] data_len; begin count <= 4; src_rdy_f36i <= 1; f36_data <= 32'h0001_000c; f36_sof <= 1; f36_eof <= 0; f36_occ <= 0; $display("Put Packet in FIFO36"); while(~dst_rdy_f36i) @(posedge clk); @(posedge clk); $display("PPI_FIFO36: Entered First Line"); f36_sof <= 0; f36_data <= data_start; while(~dst_rdy_f36i) @(posedge clk); @(posedge clk); while(count+4 < data_len) begin f36_data <= f36_data + 32'h01010101; count <= count + 4; while(~dst_rdy_f36i) @(posedge clk); @(posedge clk); $display("PPI_FIFO36: Entered New Line"); end f36_data <= f36_data + 32'h01010101; f36_eof <= 1; if(count + 4 == data_len) f36_occ <= 0; else if(count + 3 == data_len) f36_occ <= 3; else if(count + 2 == data_len) f36_occ <= 2; else f36_occ <= 1; while(~dst_rdy_f36i) @(posedge clk); @(posedge clk); f36_occ <= 0; f36_eof <= 0; f36_data <= 0; src_rdy_f36i <= 0; $display("PPI_FIFO36: Entered Last Line"); end endtask // PutPacketInFIFO36 initial $dumpfile("prot_eng_tx_tb.vcd"); initial $dumpvars(0,prot_eng_tx_tb); initial begin #10000; @(posedge clk); //ReadFromFIFO36; end initial begin @(negedge rst); @(posedge clk); WriteSREG(BASE, 32'h89AB_CDEF); WriteSREG(BASE+1, 32'h1111_2222); WriteSREG(BASE+2, 32'h3333_4444); WriteSREG(BASE+3, 32'h5555_6666); WriteSREG(BASE+4, 32'h7777_8888); WriteSREG(BASE+5, 32'h9999_aaaa); WriteSREG(BASE+6, 32'hbbbb_cccc); WriteSREG(BASE+7, 32'hdddd_eeee); WriteSREG(BASE+8, 32'h0f0f_0011); WriteSREG(BASE+9, 32'h0022_0033); WriteSREG(BASE+10, 32'h0044_0055); WriteSREG(BASE+11, 32'h0066_0077); WriteSREG(BASE+12, 32'h0088_0099); @(posedge clk); PutPacketInFIFO36(32'hA0B0C0D0,16); @(posedge clk); @(posedge clk); #10000; @(posedge clk); //PutPacketInFIFO36(32'hE0F0A0B0,36); @(posedge clk); @(posedge clk); @(posedge clk); @(posedge clk); @(posedge clk); end initial #20000 $finish; endmodule // prot_eng_tx_tb uhd-3.5.5/fpga/usrp2/udp/udp_wrapper.v000066400000000000000000000111631224274632000176070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module udp_wrapper #(parameter BASE=0) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [18:0] rx_f19_data, input rx_f19_src_rdy_i, output rx_f19_dst_rdy_o, output [18:0] tx_f19_data, output tx_f19_src_rdy_o, input tx_f19_dst_rdy_i, output [35:0] rx_f36_data, output rx_f36_src_rdy_o, input rx_f36_dst_rdy_i, input [35:0] tx_f36_data, input tx_f36_src_rdy_i, output tx_f36_dst_rdy_o, output [31:0] debug ); wire tx_int1_src_rdy, tx_int1_dst_rdy; wire [18:0] tx_int1_data; wire tx_int2_src_rdy, tx_int2_dst_rdy; wire [18:0] tx_int2_data; wire [31:0] debug_state; // TX side fifo36_to_fifo19 fifo36_to_fifo19 (.clk(clk), .reset(reset), .clear(clear), .f36_datain(tx_f36_data), .f36_src_rdy_i(tx_f36_src_rdy_i), .f36_dst_rdy_o(tx_f36_dst_rdy_o), .f19_dataout(tx_int1_data), .f19_src_rdy_o(tx_int1_src_rdy), .f19_dst_rdy_i(tx_int1_dst_rdy) ); fifo_short #(.WIDTH(19)) shortfifo19_a (.clk(clk), .reset(reset), .clear(clear), .datain(tx_int1_data), .src_rdy_i(tx_int1_src_rdy), .dst_rdy_o(tx_int1_dst_rdy), .dataout(tx_int2_data), .src_rdy_o(tx_int2_src_rdy), .dst_rdy_i(tx_int2_dst_rdy), .space(), .occupied() ); prot_eng_tx #(.BASE(BASE)) prot_eng_tx (.clk(clk), .reset(reset), .clear(clear), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .datain(tx_int2_data), .src_rdy_i(tx_int2_src_rdy), .dst_rdy_o(tx_int2_dst_rdy), .dataout(tx_f19_data), .src_rdy_o(tx_f19_src_rdy_o), .dst_rdy_i(tx_f19_dst_rdy_i) ); // RX side wire rx_int1_src_rdy, rx_int1_dst_rdy; wire [18:0] rx_int1_data; wire rx_int2_src_rdy, rx_int2_dst_rdy; wire [18:0] rx_int2_data; //wire rx_int3_src_rdy, rx_int3_dst_rdy; //wire [35:0] rx_int3_data; `ifdef USE_PROT_ENG prot_eng_rx #(.BASE(BASE+32)) prot_eng_rx (.clk(clk), .reset(reset), .clear(clear), .datain(rx_f19_data), .src_rdy_i(rx_f19_src_rdy_i), .dst_rdy_o(rx_f19_dst_rdy_o), .dataout(rx_int1_data), .src_rdy_o(rx_int1_src_rdy), .dst_rdy_i(rx_int1_dst_rdy) ); `else fifo19_rxrealign fifo19_rxrealign (.clk(clk), .reset(reset), .clear(clear), .datain(rx_f19_data), .src_rdy_i(rx_f19_src_rdy_i), .dst_rdy_o(rx_f19_dst_rdy_o), .dataout(rx_int1_data), .src_rdy_o(rx_int1_src_rdy), .dst_rdy_i(rx_int1_dst_rdy) ); `endif // !`ifdef USE_PROT_ENG fifo_short #(.WIDTH(19)) shortfifo19_b (.clk(clk), .reset(reset), .clear(clear), .datain(rx_int1_data), .src_rdy_i(rx_int1_src_rdy), .dst_rdy_o(rx_int1_dst_rdy), .dataout(rx_int2_data), .src_rdy_o(rx_int2_src_rdy), .dst_rdy_i(rx_int2_dst_rdy), .space(), .occupied() ); fifo19_to_fifo36 fifo19_to_fifo36 (.clk(clk), .reset(reset), .clear(clear), .f19_datain(rx_int2_data), .f19_src_rdy_i(rx_int2_src_rdy), .f19_dst_rdy_o(rx_int2_dst_rdy), .f36_dataout(rx_f36_data), .f36_src_rdy_o(rx_f36_src_rdy_o), .f36_dst_rdy_i(rx_f36_dst_rdy_i), .debug(debug_state)); /* fifo_cascade #(.WIDTH(36),.SIZE(RXFIFOSIZE)) eth0_rxfifo (.clk(clk), .reset(reset), .clear(clear), .datain(rx_int3_data), .src_rdy_i(rx_int3_src_rdy), .dst_rdy_o(rx_int3_dst_rdy), .dataout(rx_f36_data), .src_rdy_o(rx_f36_src_rdy_o), .dst_rdy_i(rx_f36_dst_rdy_i), .space(), .occupied() ); */ /* assign debug = { { 1'b0, rx_f19_data[18:16], rx_f19_src_rdy_i, rx_f19_dst_rdy_o, rx_f36_src_rdy_o, rx_f36_dst_rdy_i }, { 2'b0, rx_int1_src_rdy, rx_int1_dst_rdy, rx_int2_src_rdy, rx_int2_dst_rdy, rx_int3_src_rdy, rx_int3_dst_rdy}, { rx_int3_data[35:32], rx_f36_data[35:32] }, { debug_state[1:0], rx_int1_data[18:16], rx_int2_data[18:16] } }; */ assign debug = { { 3'd0, tx_int1_src_rdy, tx_int1_dst_rdy, tx_int1_data[18:16] }, { 3'd0, tx_int2_src_rdy, tx_int2_dst_rdy, tx_int2_data[18:16] }, { tx_int2_data[15:8] }, { tx_int2_data[7:0] } }; endmodule // udp_wrapper uhd-3.5.5/fpga/usrp2/vrt/000077500000000000000000000000001224274632000151115ustar00rootroot00000000000000uhd-3.5.5/fpga/usrp2/vrt/.gitignore000066400000000000000000000000421224274632000170750ustar00rootroot00000000000000vita_rx_tb vita_tx_tb *.vcd *.sav uhd-3.5.5/fpga/usrp2/vrt/Makefile.srcs000066400000000000000000000006711224274632000175260ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # ################################################## # VRT Sources ################################################## VRT_SRCS = $(abspath $(addprefix $(BASE_DIR)/../vrt/, \ vita_rx_control.v \ vita_rx_framer.v \ vita_rx_chain.v \ vita_tx_control.v \ vita_tx_deframer.v \ vita_tx_chain.v \ gen_context_pkt.v \ trigger_context_pkt.v \ vita_pkt_gen.v \ vita_rx_engine_glue.v \ vita_tx_engine_glue.v \ )) uhd-3.5.5/fpga/usrp2/vrt/gen_context_pkt.v000066400000000000000000000063131224274632000204760ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module gen_context_pkt #(parameter PROT_ENG_FLAGS=1, parameter DSP_NUMBER=0) (input clk, input reset, input clear, input trigger, output sent, input [31:0] streamid, input [63:0] vita_time, input [31:0] message, input [31:0] seqnum, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); localparam CTXT_IDLE = 0; localparam CTXT_PROT_ENG = 1; localparam CTXT_HEADER = 2; localparam CTXT_STREAMID = 3; localparam CTXT_TICS = 4; localparam CTXT_TICS2 = 5; localparam CTXT_MESSAGE = 6; localparam CTXT_FLOWCTRL = 7; localparam CTXT_DONE = 8; reg [33:0] data_int; wire src_rdy_int, dst_rdy_int; reg [3:0] seqno; reg [3:0] ctxt_state; reg [63:0] err_time; reg [31:0] stored_message; always @(posedge clk) if(reset | clear) stored_message <= 0; else if(trigger) stored_message <= message; else if(ctxt_state == CTXT_DONE) stored_message <= 0; // Don't want to clear most of this to avoid getting stuck with a half packet in the pipe always @(posedge clk) if(reset) begin ctxt_state <= CTXT_IDLE; seqno <= 0; end else case(ctxt_state) CTXT_IDLE : if(trigger) begin err_time <= vita_time; if(PROT_ENG_FLAGS) ctxt_state <= CTXT_PROT_ENG; else ctxt_state <= CTXT_HEADER; end CTXT_DONE : begin ctxt_state <= CTXT_IDLE; seqno <= seqno + 4'd1; end default : if(dst_rdy_int) ctxt_state <= ctxt_state + 1; endcase // case (ctxt_state) assign src_rdy_int = ~( (ctxt_state == CTXT_IDLE) | (ctxt_state == CTXT_DONE) ); always @* case(ctxt_state) CTXT_PROT_ENG : data_int <= { 2'b01, 13'b0, DSP_NUMBER[0], 1'b1, 1'b1, 16'd24 }; // UDP port 1 or 3 CTXT_HEADER : data_int <= { 1'b0, (PROT_ENG_FLAGS ? 1'b0 : 1'b1), 12'b010100000001, seqno, 16'd6 }; CTXT_STREAMID : data_int <= { 2'b00, streamid }; CTXT_TICS : data_int <= { 2'b00, err_time[63:32] }; CTXT_TICS2 : data_int <= { 2'b00, err_time[31:0] }; CTXT_MESSAGE : data_int <= { 2'b00, message }; CTXT_FLOWCTRL : data_int <= { 2'b10, seqnum }; default : data_int <= {2'b00, 32'b00}; endcase // case (ctxt_state) fifo_short #(.WIDTH(34)) ctxt_fifo (.clk(clk), .reset(reset), .clear(0), .datain(data_int), .src_rdy_i(src_rdy_int), .dst_rdy_o(dst_rdy_int), .dataout(data_o[33:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i)); assign data_o[35:34] = 2'b00; endmodule // gen_context_pkt uhd-3.5.5/fpga/usrp2/vrt/trigger_context_pkt.v000066400000000000000000000040451224274632000213700ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module trigger_context_pkt #(parameter BASE=0) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, input packet_consumed, output reg trigger); wire [23:0] cycles; wire [15:0] packets; wire [6:0] dummy1; wire [14:0] dummy2; wire enable_cycle, enable_consumed; reg [30:0] cycle_count, packet_count; setting_reg #(.my_addr(BASE+4), .at_reset(0)) sr_cycles (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({enable_cycle,dummy1,cycles}),.changed()); setting_reg #(.my_addr(BASE+5), .at_reset(0)) sr_packets (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out({enable_consumed,dummy2,packets}),.changed()); always @(posedge clk) if(reset | clear) cycle_count <= 0; else if(trigger) cycle_count <= 0; else if(enable_cycle) cycle_count <= cycle_count + 1; always @(posedge clk) if(reset | clear) packet_count <= 0; else if(trigger) packet_count <= 0; else if(packet_consumed & enable_consumed) packet_count <= packet_count + 1; always @(posedge clk) if(reset | clear) trigger <= 0; else if((cycle_count > cycles)|(packet_count > packets)) trigger <= 1; else trigger <= 0; endmodule // trigger_context_pkt uhd-3.5.5/fpga/usrp2/vrt/vita_pkt_gen.v000066400000000000000000000027701224274632000177600ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_pkt_gen (input clk, input reset, input clear, input [15:0] len, output [35:0] data_o, output src_rdy_o, input dst_rdy_i); reg [15:0] state; reg [31:0] seq, data; wire sof = (state == 0); wire eof = (state == (len-1)); wire consume = src_rdy_o & dst_rdy_i; assign src_rdy_o = 1; always @(posedge clk) if(reset | clear) begin state <= 0; seq <= 0; end else if(consume) if(eof) begin state <= 0; seq <= seq + 1; end else state <= state + 1; always @* case(state) 0 : data <= {24'h000,seq[3:0],len}; 1 : data <= seq; default : data <= {~state,state}; endcase // case (state) assign data_o = {2'b00, eof, sof, data}; endmodule // vita_pkt_gen uhd-3.5.5/fpga/usrp2/vrt/vita_rx.build000077500000000000000000000003431224274632000176110ustar00rootroot00000000000000iverilog -Wimplict -Wportbind -y ../models -y . -y ../control_lib/ -y ../fifo -y ../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -y ../timing -o vita_rx_tb vita_rx_tb.v uhd-3.5.5/fpga/usrp2/vrt/vita_rx_chain.v000066400000000000000000000112311224274632000201140ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_rx_chain #(parameter BASE=0, parameter UNIT=0, parameter FIFOSIZE=10, parameter PROT_ENG_FLAGS=1, parameter DSP_NUMBER=0) (input clk, input reset, input set_stb, input [7:0] set_addr, input [31:0] set_data, input set_stb_user, input [7:0] set_addr_user, input [31:0] set_data_user, input [63:0] vita_time, input [31:0] sample, input strobe, output [35:0] rx_data_o, output rx_src_rdy_o, input rx_dst_rdy_i, output overrun, output run, output clear_o, output [31:0] debug ); wire [100:0] sample_data; wire sample_dst_rdy, sample_src_rdy; wire [31:0] vrc_debug, vrf_debug; wire [35:0] rx_data_int; wire rx_src_rdy_int, rx_dst_rdy_int; wire clear; assign clear_o = clear; wire clear_int; setting_reg #(.my_addr(BASE+8)) sr (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(),.changed(clear_int)); vita_rx_control #(.BASE(BASE), .WIDTH(32)) vita_rx_control (.clk(clk), .reset(reset), .clear(clear), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .vita_time(vita_time), .overrun(overrun), .sample(sample), .run(run), .strobe(strobe), .sample_fifo_o(sample_data), .sample_fifo_dst_rdy_i(sample_dst_rdy), .sample_fifo_src_rdy_o(sample_src_rdy), .debug_rx(vrc_debug)); vita_rx_framer #(.BASE(BASE), .MAXCHAN(1)) vita_rx_framer (.clk(clk), .reset(reset), .clear(clear), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .sample_fifo_i(sample_data), .sample_fifo_dst_rdy_o(sample_dst_rdy), .sample_fifo_src_rdy_i(sample_src_rdy), .data_o(rx_data_int), .src_rdy_o(rx_src_rdy_int), .dst_rdy_i(rx_dst_rdy_int), .debug_rx(vrf_debug) ); wire [FIFOSIZE-1:0] access_adr, access_len; wire access_we, access_stb, access_ok, access_done, access_skip_read; wire [35:0] dsp_to_buf, buf_to_dsp; wire [35:0] rx_data_int2; wire rx_src_rdy_int2, rx_dst_rdy_int2; double_buffer #(.BUF_SIZE(FIFOSIZE)) db (.clk(clk),.reset(reset),.clear(clear), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(dsp_to_buf), .access_dat_o(buf_to_dsp), .data_i(rx_data_int), .src_rdy_i(rx_src_rdy_int), .dst_rdy_o(rx_dst_rdy_int), .data_o(rx_data_int2), .src_rdy_o(rx_src_rdy_int2), .dst_rdy_i(rx_dst_rdy_int2)); vita_rx_engine_glue #(.DSPNO(DSP_NUMBER), .MAIN_SETTINGS_BASE(BASE+3), .BUF_SIZE(FIFOSIZE)) dspengine_rx (.clock(clk),.reset(reset),.clear(clear), .set_stb_main(set_stb), .set_addr_main(set_addr), .set_data_main(set_data), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(buf_to_dsp), .access_dat_o(dsp_to_buf)); add_routing_header #(.PORT_SEL(UNIT), .PROT_ENG_FLAGS(PROT_ENG_FLAGS)) dsp_routing_header (.clk(clk), .reset(reset), .clear(clear), .data_i(rx_data_int2), .src_rdy_i(rx_src_rdy_int2), .dst_rdy_o(rx_dst_rdy_int2), .data_o(rx_data_o), .src_rdy_o(rx_src_rdy_o), .dst_rdy_i(rx_dst_rdy_i) ); //only clear once a full packet has passed through the output interface reg xfer_pkt, clear_oneshot; assign clear = (clear_oneshot)? ~xfer_pkt : 0; always @(posedge clk) begin if (reset || clear) begin clear_oneshot <= 0; end else if (clear_int) begin clear_oneshot <= 1; end if (reset || clear) begin xfer_pkt <= 0; end else if (rx_src_rdy_o && rx_dst_rdy_i) begin xfer_pkt <= ~rx_data_o[33]; end end assign debug = vrc_debug; // | vrf_debug; endmodule // vita_rx_chain uhd-3.5.5/fpga/usrp2/vrt/vita_rx_control.v000066400000000000000000000156351224274632000205260ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_rx_control #(parameter BASE=0, parameter WIDTH=32) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [63:0] vita_time, output overrun, // To vita_rx_framer output [5+64+WIDTH-1:0] sample_fifo_o, output sample_fifo_src_rdy_o, input sample_fifo_dst_rdy_i, // From DSP Core input [WIDTH-1:0] sample, output run, input strobe, output [31:0] debug_rx ); // FIXME add TX Interruption (halt, pause, continue) functionality wire [63:0] new_time; wire [31:0] new_command; wire sc_pre1; wire [63:0] rcvtime_pre; reg [63:0] rcvtime; wire [27:0] numlines_pre; wire send_imm_pre, chain_pre, reload_pre, stop_pre; reg send_imm, chain, reload; wire read_ctrl, not_empty_ctrl, write_ctrl; reg sc_pre2; wire [33:0] fifo_line; reg [27:0] lines_left, lines_total; reg [2:0] ibs_state; wire now, early, late; wire sample_fifo_in_rdy; setting_reg #(.my_addr(BASE)) sr_cmd (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_command),.changed()); setting_reg #(.my_addr(BASE+1)) sr_time_h (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_time[63:32]),.changed()); setting_reg #(.my_addr(BASE+2)) sr_time_l (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(new_time[31:0]),.changed(sc_pre1)); // FIFO to store commands sent from the settings bus always @(posedge clk) if(reset | clear) sc_pre2 <= 0; else sc_pre2 <= sc_pre1; assign write_ctrl = sc_pre1 & ~sc_pre2; wire [4:0] command_queue_len; fifo_short #(.WIDTH(96)) commandfifo (.clk(clk),.reset(reset),.clear(clear), .datain({new_command,new_time}), .src_rdy_i(write_ctrl), .dst_rdy_o(), .dataout({send_imm_pre,chain_pre,reload_pre,stop_pre,numlines_pre,rcvtime_pre}), .src_rdy_o(not_empty_ctrl), .dst_rdy_i(read_ctrl), .occupied(command_queue_len), .space() ); reg [33:0] pkt_fifo_line; localparam IBS_IDLE = 0; localparam IBS_WAITING = 1; localparam IBS_RUNNING = 2; localparam IBS_OVERRUN = 4; localparam IBS_BROKENCHAIN = 5; localparam IBS_LATECMD = 6; localparam IBS_ZEROLEN = 7; wire signal_cmd_done = (lines_left == 1) & (~chain | (not_empty_ctrl & stop_pre)); wire signal_overrun = (ibs_state == IBS_OVERRUN); wire signal_brokenchain = (ibs_state == IBS_BROKENCHAIN); wire signal_latecmd = (ibs_state == IBS_LATECMD); wire signal_zerolen = (ibs_state == IBS_ZEROLEN); // Buffer of samples for while we're writing the packet headers wire [4:0] flags = {signal_zerolen,signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; wire attempt_sample_write = ((run & strobe) | (ibs_state==IBS_OVERRUN) | (ibs_state==IBS_BROKENCHAIN) | (ibs_state==IBS_LATECMD) | (ibs_state==IBS_ZEROLEN)); fifo_short #(.WIDTH(5+64+WIDTH)) rx_sample_fifo (.clk(clk),.reset(reset),.clear(clear), .datain({flags,vita_time,sample}), .src_rdy_i(attempt_sample_write), .dst_rdy_o(sample_fifo_in_rdy), .dataout(sample_fifo_o), .src_rdy_o(sample_fifo_src_rdy_o), .dst_rdy_i(sample_fifo_dst_rdy_i), .space(), .occupied() ); // Inband Signalling State Machine time_compare time_compare (.time_now(vita_time), .trigger_time(rcvtime), .now(now), .early(early), .late(late)); wire go_now = now | send_imm; wire full = ~sample_fifo_in_rdy; reg too_late; always @(posedge clk) if(reset | clear) too_late <= 0; else too_late <= late & ~send_imm; reg late_valid; always @(posedge clk) if(reset | clear) begin ibs_state <= IBS_IDLE; lines_left <= 0; lines_total <= 0; rcvtime <= 0; send_imm <= 0; chain <= 0; reload <= 0; late_valid <= 0; end else case(ibs_state) IBS_IDLE : if(not_empty_ctrl) begin lines_left <= numlines_pre; lines_total <= numlines_pre; rcvtime <= rcvtime_pre; late_valid <= 0; if(stop_pre) ibs_state <= IBS_ZEROLEN; else ibs_state <= IBS_WAITING; send_imm <= send_imm_pre; chain <= chain_pre; reload <= reload_pre; end IBS_WAITING : begin late_valid <= 1; if(late_valid) if(go_now) ibs_state <= IBS_RUNNING; else if(too_late) ibs_state <= IBS_LATECMD; end IBS_RUNNING : if(strobe) if(full) ibs_state <= IBS_OVERRUN; else begin lines_left <= lines_left - 1; if(lines_left == 1) if(~chain) ibs_state <= IBS_IDLE; else if(~not_empty_ctrl & reload) begin ibs_state <= IBS_RUNNING; lines_left <= lines_total; end else if(~not_empty_ctrl) ibs_state <= IBS_BROKENCHAIN; else begin lines_left <= numlines_pre; lines_total <= numlines_pre; rcvtime <= rcvtime_pre; send_imm <= send_imm_pre; chain <= chain_pre; reload <= reload_pre; if(stop_pre) // If we are told to stop here ibs_state <= IBS_IDLE; else ibs_state <= IBS_RUNNING; end end // else: !if(full) IBS_OVERRUN : if(sample_fifo_in_rdy) ibs_state <= IBS_IDLE; IBS_LATECMD : if(sample_fifo_in_rdy) ibs_state <= IBS_IDLE; IBS_BROKENCHAIN : if(sample_fifo_in_rdy) ibs_state <= IBS_IDLE; IBS_ZEROLEN : if(sample_fifo_in_rdy) ibs_state <= IBS_IDLE; endcase // case(ibs_state) assign overrun = (ibs_state == IBS_OVERRUN); assign run = (ibs_state == IBS_RUNNING); assign read_ctrl = ( (ibs_state == IBS_IDLE) | ((ibs_state == IBS_RUNNING) & strobe & ~full & (lines_left==1) & chain) ) & not_empty_ctrl; assign debug_rx = { { ibs_state[2:0], command_queue_len }, { 8'd0 }, { go_now, too_late, run, strobe, read_ctrl, write_ctrl, 1'b0, ~not_empty_ctrl }, { 2'b0, overrun, chain_pre, sample_fifo_in_rdy, attempt_sample_write, sample_fifo_src_rdy_o,sample_fifo_dst_rdy_i} }; endmodule // vita_rx_control uhd-3.5.5/fpga/usrp2/vrt/vita_rx_engine_glue.v000066400000000000000000000101661224274632000213210ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //The following module is used to re-write receive packets to the host. //This module provides a packet-based ram interface for manipulating packets. //By default, this module uses the built-in 16 to 8 bit converter engine. module vita_rx_engine_glue #( //the dsp unit number: 0, 1, 2... parameter DSPNO = 0, //buffer size for ram interface engine parameter BUF_SIZE = 10, //base address for built-in settings registers used in this module parameter MAIN_SETTINGS_BASE = 0 ) ( //control signals input clock, input reset, input clear, //main settings bus for built-in modules input set_stb_main, input [7:0] set_addr_main, input [31:0] set_data_main, //user settings bus, controlled through user setting regs API input set_stb_user, input [7:0] set_addr_user, input [31:0] set_data_user, //ram interface for engine output access_we, output access_stb, input access_ok, output access_done, output access_skip_read, output [BUF_SIZE-1:0] access_adr, input [BUF_SIZE-1:0] access_len, output [35:0] access_dat_o, input [35:0] access_dat_i, //debug output (optional) output [31:0] debug ); generate if (DSPNO==0) begin `ifndef RX_ENG0_MODULE dspengine_16to8 #(.BASE(MAIN_SETTINGS_BASE), .BUF_SIZE(BUF_SIZE)) dspengine_16to8 (.clk(clock),.reset(reset),.clear(clear), .set_stb(set_stb_main), .set_addr(set_addr_main), .set_data(set_data_main), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `else `RX_ENG0_MODULE #(.BUF_SIZE(BUF_SIZE)) rx_eng0_custom (.clock(clock),.reset(reset),.clear(clear), .set_stb(set_stb_user), .set_addr(set_addr_user), .set_data(set_data_user), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `endif end else begin `ifndef RX_ENG1_MODULE dspengine_16to8 #(.BASE(MAIN_SETTINGS_BASE), .BUF_SIZE(BUF_SIZE)) dspengine_16to8 (.clk(clock),.reset(reset),.clear(clear), .set_stb(set_stb_main), .set_addr(set_addr_main), .set_data(set_data_main), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `else `RX_ENG1_MODULE #(.BUF_SIZE(BUF_SIZE)) rx_eng1_custom (.clock(clock),.reset(reset),.clear(clear), .set_stb(set_stb_user), .set_addr(set_addr_user), .set_data(set_data_user), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `endif end endgenerate endmodule //vita_rx_engine_glue uhd-3.5.5/fpga/usrp2/vrt/vita_rx_framer.v000066400000000000000000000175741224274632000203260ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_rx_framer #(parameter BASE=0, parameter MAXCHAN=1) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, // To FIFO interface of Buffer Pool output [35:0] data_o, input dst_rdy_i, output src_rdy_o, // From vita_rx_control input [5+64+(32*MAXCHAN)-1:0] sample_fifo_i, input sample_fifo_src_rdy_i, output sample_fifo_dst_rdy_o, output [31:0] debug_rx ); localparam SAMP_WIDTH = 5+64+(32*MAXCHAN); reg [3:0] sample_phase; wire [3:0] numchan; wire [4:0] flags_fifo_o = sample_fifo_i[SAMP_WIDTH-1:SAMP_WIDTH-5]; wire [63:0] vita_time_fifo_o = sample_fifo_i[SAMP_WIDTH-6:SAMP_WIDTH-69]; reg [31:0] data_fifo_o; // The tools won't synthesize properly without this kludge because of the variable // parameter length wire [127:0] FIXED_WIDTH_KLUDGE = sample_fifo_i; always @* case(sample_phase) 4'd0 : data_fifo_o = FIXED_WIDTH_KLUDGE[31:0]; 4'd1 : data_fifo_o = FIXED_WIDTH_KLUDGE[63:32]; 4'd2 : data_fifo_o = FIXED_WIDTH_KLUDGE[95:64]; 4'd3 : data_fifo_o = FIXED_WIDTH_KLUDGE[127:96]; default : data_fifo_o = 32'hDEADBEEF; endcase // case (sample_phase) wire clear_pkt_count, pkt_fifo_rdy, sample_fifo_in_rdy; wire [31:0] vita_header, vita_streamid, vita_trailer; wire [15:0] samples_per_packet; reg [33:0] pkt_fifo_line; reg [3:0] vita_state; reg [15:0] sample_ctr; reg [3:0] pkt_count; wire [15:0] vita_pkt_len = samples_per_packet + 6; //wire [4:0] flags = {signal_zerolen,signal_overrun,signal_brokenchain,signal_latecmd,signal_cmd_done}; setting_reg #(.my_addr(BASE+4)) sr_header (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(vita_header),.changed()); setting_reg #(.my_addr(BASE+5)) sr_streamid (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(vita_streamid),.changed(clear_pkt_count)); setting_reg #(.my_addr(BASE+6)) sr_trailer (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(vita_trailer),.changed()); setting_reg #(.my_addr(BASE+7),.width(16)) sr_samples_per_pkt (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(samples_per_packet),.changed()); assign numchan = 0;/* setting_reg #(.my_addr(BASE+8),.width(4), .at_reset(0)) sr_numchan (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(numchan),.changed()); */ // Output FIFO for packetized data localparam VITA_IDLE = 0; localparam VITA_HEADER = 1; localparam VITA_STREAMID = 2; localparam VITA_TICS = 3; localparam VITA_TICS2 = 4; localparam VITA_PAYLOAD = 5; localparam VITA_TRAILER = 6; localparam VITA_ERR_HEADER = 7; // All ERR at 4'b1000 or'ed with base localparam VITA_ERR_STREAMID = 8; localparam VITA_ERR_TICS = 9; localparam VITA_ERR_TICS2 = 10; localparam VITA_ERR_PAYLOAD = 11; localparam VITA_ERR_TRAILER = 12; // Extension context packets have no trailer always @(posedge clk) if(reset | clear | clear_pkt_count) pkt_count <= 0; else if((vita_state == VITA_TRAILER) & pkt_fifo_rdy) pkt_count <= pkt_count + 1; wire has_streamid = vita_header[28]; wire has_trailer = vita_header[26]; reg trl_eob; always @* case(vita_state) // Data packets are IF Data packets with or w/o streamid, no classid, with trailer VITA_HEADER : pkt_fifo_line <= {2'b01,3'b000,vita_header[28],2'b01,vita_header[25:24], vita_header[23:20],pkt_count[3:0],vita_pkt_len[15:0]}; VITA_STREAMID : pkt_fifo_line <= {2'b00,vita_streamid}; VITA_TICS : pkt_fifo_line <= {2'b00,vita_time_fifo_o[63:32]}; VITA_TICS2 : pkt_fifo_line <= {2'b00,vita_time_fifo_o[31:0]}; VITA_PAYLOAD : pkt_fifo_line <= {2'b00,data_fifo_o}; VITA_TRAILER : pkt_fifo_line <= {2'b10,vita_trailer[31:21],1'b1,vita_trailer[19:9],trl_eob,8'd0}; // Error packets are Extension Context packets, which have no trailer VITA_ERR_HEADER : pkt_fifo_line <= {2'b01,4'b0101,4'b0000,vita_header[23:20],pkt_count,16'd5}; VITA_ERR_STREAMID : pkt_fifo_line <= {2'b00,vita_streamid}; VITA_ERR_TICS : pkt_fifo_line <= {2'b00,vita_time_fifo_o[63:32]}; VITA_ERR_TICS2 : pkt_fifo_line <= {2'b00,vita_time_fifo_o[31:0]}; VITA_ERR_PAYLOAD : pkt_fifo_line <= {2'b10,27'd0,flags_fifo_o}; //VITA_ERR_TRAILER : pkt_fifo_line <= {2'b11,vita_trailer}; default : pkt_fifo_line <= 34'h0_FFFF_FFFF; endcase // case (vita_state) always @(posedge clk) if(reset | clear) begin vita_state <= VITA_IDLE; sample_ctr <= 0; sample_phase <= 0; end else if(vita_state==VITA_IDLE) begin sample_ctr <= 1; sample_phase <= 0; if(sample_fifo_src_rdy_i) if(|flags_fifo_o[4:1]) vita_state <= VITA_ERR_HEADER; else vita_state <= VITA_HEADER; end else if(pkt_fifo_rdy) case(vita_state) VITA_HEADER : if(has_streamid) vita_state <= VITA_STREAMID; else vita_state <= VITA_TICS; VITA_PAYLOAD : if(sample_fifo_src_rdy_i) begin if(sample_phase == numchan) begin sample_phase <= 0; sample_ctr <= sample_ctr + 1; trl_eob <= flags_fifo_o[0]; if(sample_ctr == samples_per_packet) vita_state <= VITA_TRAILER; if(|flags_fifo_o) // end early if any flag is set vita_state <= VITA_TRAILER; end else sample_phase <= sample_phase + 1; end // if (sample_fifo_src_rdy_i) VITA_ERR_PAYLOAD : vita_state <= VITA_IDLE; VITA_TRAILER : vita_state <= VITA_IDLE; default : vita_state <= vita_state + 1; endcase // case (vita_state) reg req_write_pkt_fifo; always @* case(vita_state) VITA_IDLE : req_write_pkt_fifo <= 0; VITA_HEADER, VITA_STREAMID, VITA_TICS, VITA_TICS2, VITA_TRAILER : req_write_pkt_fifo <= 1; VITA_PAYLOAD : // Write if sample ready and no error flags req_write_pkt_fifo <= (sample_fifo_src_rdy_i & ~|flags_fifo_o[4:1]); VITA_ERR_HEADER, VITA_ERR_STREAMID, VITA_ERR_TICS, VITA_ERR_TICS2, VITA_ERR_PAYLOAD : req_write_pkt_fifo <= 1; default : req_write_pkt_fifo <= 0; endcase // case (vita_state) //wire req_write_pkt_fifo = (vita_state != VITA_IDLE) & (sample_fifo_src_rdy_i | (vita_state != VITA_PAYLOAD)); // Short FIFO to buffer between us and the FIFOs outside fifo_short #(.WIDTH(34)) rx_pkt_fifo (.clk(clk), .reset(reset), .clear(clear), .datain(pkt_fifo_line), .src_rdy_i(req_write_pkt_fifo), .dst_rdy_o(pkt_fifo_rdy), .dataout(data_o[33:0]), .src_rdy_o(src_rdy_o), .dst_rdy_i(dst_rdy_i), .space(),.occupied() ); assign data_o[35:34] = 2'b00; // Always write full lines assign sample_fifo_dst_rdy_o = pkt_fifo_rdy & ( ((vita_state==VITA_PAYLOAD) & (sample_phase == numchan) & ~|flags_fifo_o[4:1]) | (vita_state==VITA_ERR_PAYLOAD)); assign debug_rx = vita_state; endmodule // vita_rx_framer uhd-3.5.5/fpga/usrp2/vrt/vita_rx_tb.v000066400000000000000000000167161224274632000174540ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_rx_tb; localparam DECIM = 8'd4; localparam MAXCHAN=1; localparam NUMCHAN=1; reg clk = 0; reg reset = 1; initial #1000 reset = 0; always #50 clk = ~clk; initial $dumpfile("vita_rx_tb.vcd"); initial $dumpvars(0,vita_rx_tb); wire [(MAXCHAN*32)-1:0] sample; wire strobe, run; wire [35:0] data_o; wire src_rdy; reg dst_rdy = 1; wire [63:0] vita_time; reg set_stb = 0; reg [7:0] set_addr; reg [31:0] set_data; wire set_stb_dsp; wire [7:0] set_addr_dsp; wire [31:0] set_data_dsp; /* settings_bus_crossclock settings_bus_xclk_dsp (.clk_i(clk), .rst_i(reset), .set_stb_i(set_stb), .set_addr_i(set_addr), .set_data_i(set_data), .clk_o(clk), .rst_o(reset), .set_stb_o(set_stb_dsp), .set_addr_o(set_addr_dsp), .set_data_o(set_data_dsp)); */ wire sample_dst_rdy, sample_src_rdy; //wire [99:0] sample_data_o; wire [64+5+(MAXCHAN*32)-1:0] sample_data_o; vita_rx_control #(.BASE(0), .WIDTH(32*MAXCHAN)) vita_rx_control (.clk(clk), .reset(reset), .clear(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .vita_time(vita_time), .overrun(overrun), .sample_fifo_o(sample_data_o), .sample_fifo_dst_rdy_i(sample_dst_rdy), .sample_fifo_src_rdy_o(sample_src_rdy), .sample(sample), .run(run), .strobe(strobe)); vita_rx_framer #(.BASE(0), .MAXCHAN(MAXCHAN)) vita_rx_framer (.clk(clk), .reset(reset), .clear(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .data_o(data_o), .dst_rdy_i(dst_rdy), .src_rdy_o(src_rdy), .sample_fifo_i(sample_data_o), .sample_fifo_dst_rdy_o(sample_dst_rdy), .sample_fifo_src_rdy_i(sample_src_rdy), .fifo_occupied(), .fifo_full(), .fifo_empty() ); rx_dsp_model rx_dsp_model (.clk(clk), .reset(reset), .run(run), .decim(DECIM), .strobe(strobe), .sample(sample[31:0])); generate if(MAXCHAN>1) assign sample[(MAXCHAN*32)-1:32] = 0; endgenerate time_64bit #(.TICKS_PER_SEC(120000000), .BASE(0)) time_64bit (.clk(clk), .rst(reset), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .pps(0), .vita_time(vita_time)); always @(posedge clk) if(src_rdy & dst_rdy) begin if(data_o[32] & ~data_o[33]) begin $display("RX-PKT-START %d",$time); $display(" RX-PKT-DAT %x",data_o[31:0]); end else if(data_o[32] & data_o[33]) begin $display(" RX-PKT-DAT %x -- With ERR",data_o[31:0]); $display("RX-PKT-ERR %d",$time); end else if(~data_o[32] & data_o[33]) begin $display(" RX-PKT-DAT %x",data_o[31:0]); $display("RX-PKT-END %d",$time); end else $display(" RX-PKT DAT %x",data_o[31:0]); end initial begin @(negedge reset); @(posedge clk); write_setting(4,32'h15F00000); // VITA header write_setting(5,32'hF00D1234); // VITA streamid write_setting(6,32'hE0000000); // VITA trailer write_setting(7,8); // Samples per VITA packet write_setting(8,NUMCHAN); // Vector length queue_rx_cmd(1,1,0,10,32'h0,32'h0); // send imm, single packet #10000; queue_rx_cmd(1,0,0,0,32'h0,32'h0); // send imm, single packet //queue_rx_cmd(1,1,0,0,32'h0,32'h0); // send imm, single packet //queue_rx_cmd(1,0,0,0,32'h0,32'h0); // send imm, single packet /* queue_rx_cmd(1,0,0,8,32'h0,32'h0); // send imm, single packet queue_rx_cmd(1,0,0,16,32'h0,32'h0); // send imm, 2 packets worth queue_rx_cmd(1,0,0,7,32'h0,32'h0); // send imm, 1 short packet worth queue_rx_cmd(1,0,0,9,32'h0,32'h0); // send imm, just longer than 1 packet queue_rx_cmd(1,1,0,16,32'h0,32'h0); // chained queue_rx_cmd(0,0,0,8,32'h0,32'h0); // 2nd in chain queue_rx_cmd(1,1,0,17,32'h0,32'h0); // chained, odd length queue_rx_cmd(0,0,0,9,32'h0,32'h0); // 2nd in chain, also odd length queue_rx_cmd(0,0,0,8,32'h0,32'h340); // send at, on time queue_rx_cmd(0,0,0,8,32'h0,32'h100); // send at, but late #100000; $display("\nChained, break chain\n"); queue_rx_cmd(1,1,0,8,32'h0,32'h0); // chained, but break chain #100000; $display("\nSingle packet\n"); queue_rx_cmd(1,0,0,8,32'h0,32'h0); // send imm, single packet #100000; $display("\nEnd chain with zero samples, shouldn't error\n"); queue_rx_cmd(1,1,0,8,32'h0,32'h0); // chained queue_rx_cmd(0,0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error #100000; $display("\nEnd chain with zero samples on odd-length, shouldn't error\n"); queue_rx_cmd(1,1,0,14,32'h0,32'h0); // chained queue_rx_cmd(0,0,0,0,32'h0,32'h0); // end chain with zero samples, should keep us out of error #100000; $display("Should have gotten 14 samples and EOF by now\n"); queue_rx_cmd(1,1,0,9,32'h0,32'h0); // chained, but break chain, odd length #100000; dst_rdy <= 0; // stop pulling out of fifo so we can get an overrun queue_rx_cmd(1,0,0,100,32'h0,32'h0); // long enough to fill the fifos queue_rx_cmd(1,0,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent #100000; dst_rdy <= 1; // restart the reads so we can see what we got #100000; dst_rdy <= 0; // stop pulling out of fifo so we can get an overrun queue_rx_cmd(1,1,0,100,32'h0,32'h0); // long enough to fill the fifos //queue_rx_cmd(1,0,0,5,32'h0,32'h0); // this command waits until the previous error packet is sent #100000; @(posedge clk); dst_rdy <= 1; */ #100000 $finish; end task write_setting; input [7:0] addr; input [31:0] data; begin set_stb <= 0; @(posedge clk); set_addr <= addr; set_data <= data; set_stb <= 1; @(posedge clk); set_stb <= 0; end endtask // write_setting task queue_rx_cmd; input send_imm; input chain; input reload; input [28:0] lines; input [31:0] secs; input [31:0] tics; begin write_setting(0,{send_imm,chain,reload,lines}); write_setting(1,secs); write_setting(2,tics); end endtask // queue_rx_cmd endmodule // rx_control_tb module rx_dsp_model (input clk, input reset, input run, input [7:0] decim, output strobe, output [31:0] sample); reg [15:0] pktnum = 0; reg [15:0] counter = 0; reg run_d1; always @(posedge clk) run_d1 <= run; always @(posedge clk) if(run & ~run_d1) begin counter <= 0; pktnum <= pktnum + 1; end else if(run & strobe) counter <= counter + 1; assign sample = {pktnum,counter}; reg [7:0] stb_ctr = 0; always @(posedge clk) if(reset) stb_ctr <= 0; else if(run & ~run_d1) stb_ctr <= 1; else if(run) if(stb_ctr == decim-1) stb_ctr <= 0; else stb_ctr <= stb_ctr + 1; assign strobe = stb_ctr == decim-1; endmodule // rx_dsp_model uhd-3.5.5/fpga/usrp2/vrt/vita_tx.build000077500000000000000000000003611224274632000176130ustar00rootroot00000000000000iverilog -Wimplict -Wportbind -y ../sdr_lib -y ../models -y . -y ../control_lib/ -y ../fifo -y ../coregen -y /opt/Xilinx/10.1/ISE/verilog/src/XilinxCoreLib -y /opt/Xilinx/10.1/ISE/verilog/src/unisims/ -y ../timing -o vita_tx_tb vita_tx_tb.v uhd-3.5.5/fpga/usrp2/vrt/vita_tx_chain.v000066400000000000000000000163121224274632000201230ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_tx_chain #(parameter BASE=0, parameter FIFOSIZE=10, parameter POST_ENGINE_FIFOSIZE=10, parameter REPORT_ERROR=0, parameter DO_FLOW_CONTROL=0, parameter PROT_ENG_FLAGS=0, parameter USE_TRANS_HEADER=0, parameter DSP_NUMBER=0) (input clk, input reset, input set_stb, input [7:0] set_addr, input [31:0] set_data, input set_stb_user, input [7:0] set_addr_user, input [31:0] set_data_user, input [63:0] vita_time, input [35:0] tx_data_i, input tx_src_rdy_i, output tx_dst_rdy_o, output [35:0] err_data_o, output err_src_rdy_o, input err_dst_rdy_i, output [31:0] sample, input strobe, output underrun, output run, output clear_o, output [31:0] debug); localparam MAXCHAN = 1; localparam FIFOWIDTH = 5+64+16+(32*MAXCHAN); wire [FIFOWIDTH-1:0] tx1_data; wire tx1_src_rdy, tx1_dst_rdy; wire [31:0] streamid, message; wire trigger, sent; wire [31:0] debug_vtc, debug_vtd, debug_tx_dsp; wire error, packet_consumed, ack; wire [31:0] error_code; wire clear_seqnum; wire [31:0] current_seqnum; wire clear, flush; assign clear_o = clear; assign underrun = error; assign message = error_code; setting_reg #(.my_addr(BASE+0), .width(1)) sr (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(flush),.changed(clear)); setting_reg #(.my_addr(BASE+2), .at_reset(0)) sr_streamid (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(streamid),.changed(clear_seqnum)); //flush control - full rate vacuum of input until flush cleared wire tx_dst_rdy_int, tx_src_rdy_int; wire [35:0] tx_data_int; valve36 flusher_valve (.clk(clk), .reset(reset), .clear(clear & flush), .shutoff(flush), .data_i(tx_data_i), .src_rdy_i(tx_src_rdy_i), .dst_rdy_o(tx_dst_rdy_o), .data_o(tx_data_int), .src_rdy_o(tx_src_rdy_int), .dst_rdy_i(tx_dst_rdy_int)); wire [35:0] tx_data_int1; wire tx_src_rdy_int1, tx_dst_rdy_int1; generate if (FIFOSIZE==0) begin assign tx_data_int1 = tx_data_int; assign tx_src_rdy_int1 = tx_src_rdy_int; assign tx_dst_rdy_int = tx_dst_rdy_int1; end else begin wire [FIFOSIZE-1:0] access_adr, access_len; wire access_we, access_stb, access_ok, access_done, access_skip_read; wire [35:0] dsp_to_buf, buf_to_dsp; wire [35:0] tx_data_int0; wire tx_src_rdy_int0, tx_dst_rdy_int0; double_buffer #(.BUF_SIZE(FIFOSIZE)) db (.clk(clk),.reset(reset),.clear(clear), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(dsp_to_buf), .access_dat_o(buf_to_dsp), .data_i(tx_data_int), .src_rdy_i(tx_src_rdy_int), .dst_rdy_o(tx_dst_rdy_int), .data_o(tx_data_int0), .src_rdy_o(tx_src_rdy_int0), .dst_rdy_i(tx_dst_rdy_int0)); vita_tx_engine_glue #(.DSPNO(DSP_NUMBER), .MAIN_SETTINGS_BASE(BASE+1), .BUF_SIZE(FIFOSIZE), .HEADER_OFFSET(USE_TRANS_HEADER)) dspengine_tx (.clock(clk),.reset(reset),.clear(clear), .set_stb_main(set_stb), .set_addr_main(set_addr), .set_data_main(set_data), .set_stb_user(set_stb_user), .set_addr_user(set_addr_user), .set_data_user(set_data_user), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(buf_to_dsp), .access_dat_o(dsp_to_buf)); fifo_cascade #(.WIDTH(36), .SIZE(POST_ENGINE_FIFOSIZE)) post_engine_buffering( .clk(clk), .reset(reset), .clear(clear), .datain(tx_data_int0), .src_rdy_i(tx_src_rdy_int0), .dst_rdy_o(tx_dst_rdy_int0), .dataout(tx_data_int1), .src_rdy_o(tx_src_rdy_int1), .dst_rdy_i(tx_dst_rdy_int1)); end endgenerate vita_tx_deframer #(.BASE(BASE), .MAXCHAN(MAXCHAN), .USE_TRANS_HEADER(USE_TRANS_HEADER)) vita_tx_deframer (.clk(clk), .reset(reset), .clear(clear), .clear_seqnum(clear_seqnum), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .data_i(tx_data_int1), .src_rdy_i(tx_src_rdy_int1), .dst_rdy_o(tx_dst_rdy_int1), .sample_fifo_o(tx1_data), .sample_fifo_src_rdy_o(tx1_src_rdy), .sample_fifo_dst_rdy_i(tx1_dst_rdy), .current_seqnum(current_seqnum), .debug(debug_vtd) ); vita_tx_control #(.BASE(BASE), .WIDTH(32*MAXCHAN)) vita_tx_control (.clk(clk), .reset(reset), .clear(clear), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .vita_time(vita_time), .error(error), .ack(ack), .error_code(error_code), .sample_fifo_i(tx1_data), .sample_fifo_src_rdy_i(tx1_src_rdy), .sample_fifo_dst_rdy_o(tx1_dst_rdy), .sample(sample), .run(run), .strobe(strobe), .packet_consumed(packet_consumed), .debug(debug_vtc) ); wire [35:0] flow_data, err_data_int; wire flow_src_rdy, flow_dst_rdy, err_src_rdy_int, err_dst_rdy_int; gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS),.DSP_NUMBER(DSP_NUMBER)) gen_flow_pkt (.clk(clk), .reset(reset), .clear(clear), .trigger(trigger & (DO_FLOW_CONTROL==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(32'd0), .seqnum(current_seqnum), .data_o(flow_data), .src_rdy_o(flow_src_rdy), .dst_rdy_i(flow_dst_rdy)); trigger_context_pkt #(.BASE(BASE)) trigger_context_pkt (.clk(clk), .reset(reset), .clear(clear), .set_stb(set_stb),.set_addr(set_addr),.set_data(set_data), .packet_consumed(packet_consumed), .trigger(trigger)); gen_context_pkt #(.PROT_ENG_FLAGS(PROT_ENG_FLAGS),.DSP_NUMBER(DSP_NUMBER)) gen_tx_err_pkt (.clk(clk), .reset(reset), .clear(clear), .trigger((error|ack) & (REPORT_ERROR==1)), .sent(), .streamid(streamid), .vita_time(vita_time), .message(message), .seqnum(current_seqnum), .data_o(err_data_int), .src_rdy_o(err_src_rdy_int), .dst_rdy_i(err_dst_rdy_int)); assign debug = debug_vtc | debug_vtd; fifo36_mux #(.prio(1)) mux_err_and_flow // Priority to err messages (.clk(clk), .reset(reset), .clear(0), // Don't clear this or it could get clogged .data0_i(err_data_int), .src0_rdy_i(err_src_rdy_int), .dst0_rdy_o(err_dst_rdy_int), .data1_i(flow_data), .src1_rdy_i(flow_src_rdy), .dst1_rdy_o(flow_dst_rdy), .data_o(err_data_o), .src_rdy_o(err_src_rdy_o), .dst_rdy_i(err_dst_rdy_i)); endmodule // vita_tx_chain uhd-3.5.5/fpga/usrp2/vrt/vita_tx_control.v000066400000000000000000000142241224274632000205210ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_tx_control #(parameter BASE=0, parameter WIDTH=32) (input clk, input reset, input clear, input set_stb, input [7:0] set_addr, input [31:0] set_data, input [63:0] vita_time, output error, output ack, output reg [31:0] error_code, output reg packet_consumed, // From vita_tx_deframer input [5+64+16+WIDTH-1:0] sample_fifo_i, input sample_fifo_src_rdy_i, output sample_fifo_dst_rdy_o, // To DSP Core output [WIDTH-1:0] sample, output reg run, input strobe, output [31:0] debug ); wire [63:0] send_time = sample_fifo_i[63:0]; wire [15:0] seqnum = sample_fifo_i[79:64]; wire eop = sample_fifo_i[80]; wire eob = sample_fifo_i[81]; wire sob = sample_fifo_i[82]; wire send_at = sample_fifo_i[83]; wire seqnum_err = sample_fifo_i[84]; wire now, early, late, too_early; time_compare time_compare (.time_now(vita_time), .trigger_time(send_time), .now(now), .early(early), .late(late), .too_early(too_early)); reg late_qual, late_del; always @(posedge clk) if(reset | clear) late_del <= 0; else late_del <= late; always @(posedge clk) if(reset | clear) late_qual <= 0; else late_qual <= (sample_fifo_src_rdy_i & ~sample_fifo_dst_rdy_o); localparam IBS_IDLE = 0; localparam IBS_RUN = 1; // FIXME do we need this? localparam IBS_CONT_BURST = 2; localparam IBS_ERROR = 3; localparam IBS_ERROR_DONE = 4; localparam IBS_ERROR_WAIT = 5; wire [31:0] CODE_EOB_ACK = {seqnum,16'd1}; wire [31:0] CODE_UNDERRUN = {seqnum,16'd2}; wire [31:0] CODE_SEQ_ERROR = {seqnum,16'd4}; wire [31:0] CODE_TIME_ERROR = {seqnum,16'd8}; wire [31:0] CODE_UNDERRUN_MIDPKT = {seqnum,16'd16}; wire [31:0] CODE_SEQ_ERROR_MIDBURST = {seqnum,16'd32}; reg [2:0] ibs_state; wire [31:0] error_policy; setting_reg #(.my_addr(BASE+3)) sr_error_policy (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(error_policy),.changed()); wire policy_wait = error_policy[0]; wire policy_next_packet = error_policy[1]; wire policy_next_burst = error_policy[2]; reg send_error, send_ack; always @(posedge clk) if(reset | clear) begin ibs_state <= IBS_IDLE; send_error <= 0; send_ack <= 0; error_code <= 0; end else case(ibs_state) IBS_IDLE : if(sample_fifo_src_rdy_i) if(seqnum_err) begin ibs_state <= IBS_ERROR; error_code <= CODE_SEQ_ERROR; send_error <= 1; end else if(~send_at | now) ibs_state <= IBS_RUN; else if((late_qual & late_del) | too_early) begin ibs_state <= IBS_ERROR; error_code <= CODE_TIME_ERROR; send_error <= 1; end IBS_RUN : if(strobe) if(~sample_fifo_src_rdy_i) begin ibs_state <= IBS_ERROR; error_code <= CODE_UNDERRUN_MIDPKT; send_error <= 1; end else if(eop) if(eob) begin ibs_state <= IBS_ERROR_DONE; // Not really an error error_code <= CODE_EOB_ACK; send_ack <= 1; end else ibs_state <= IBS_CONT_BURST; IBS_CONT_BURST : if(strobe) begin if(policy_next_packet) ibs_state <= IBS_ERROR_DONE; else if(policy_wait) ibs_state <= IBS_ERROR_WAIT; else ibs_state <= IBS_ERROR; error_code <= CODE_UNDERRUN; send_error <= 1; end else if(sample_fifo_src_rdy_i) if(seqnum_err) begin ibs_state <= IBS_ERROR; error_code <= CODE_SEQ_ERROR_MIDBURST; send_error <= 1; end else ibs_state <= IBS_RUN; IBS_ERROR : begin send_error <= 0; if(sample_fifo_src_rdy_i & eop) if(policy_next_packet | (policy_next_burst & eob)) ibs_state <= IBS_IDLE; else if(policy_wait) ibs_state <= IBS_ERROR_WAIT; end IBS_ERROR_DONE : begin send_error <= 0; send_ack <= 0; ibs_state <= IBS_IDLE; end IBS_ERROR_WAIT : send_error <= 0; endcase // case (ibs_state) assign sample_fifo_dst_rdy_o = (ibs_state == IBS_ERROR) | (strobe & (ibs_state == IBS_RUN)); // FIXME also cleanout //register the output sample reg [31:0] sample_held; assign sample = sample_held; always @(posedge clk) if(reset | clear) sample_held <= 0; else if (~run) sample_held <= 0; else if (strobe) sample_held <= sample_fifo_i[5+64+16+WIDTH-1:5+64+16]; assign error = send_error; assign ack = send_ack; localparam MAX_IDLE = 1000000; // approx 10 ms timeout with a 100 MHz clock, but burning samples will slow that down reg [19:0] countdown; always @(posedge clk) if(reset | clear) begin run <= 0; countdown <= 0; end else if (ibs_state == IBS_RUN) if(eob & eop & strobe & sample_fifo_src_rdy_i) run <= 0; else begin run <= 1; countdown <= MAX_IDLE; end else if (countdown == 0) run <= 0; else countdown <= countdown - 1; always @(posedge clk) if(reset | clear) packet_consumed <= 0; else packet_consumed <= eop & sample_fifo_src_rdy_i & sample_fifo_dst_rdy_o; assign debug = { { now,late_qual,late_del,ack,eop,eob,sob,send_at }, { sample_fifo_src_rdy_i, sample_fifo_dst_rdy_o, strobe, run, error, ibs_state[2:0] }, { 8'b0 }, { 8'b0 } }; endmodule // vita_tx_control uhd-3.5.5/fpga/usrp2/vrt/vita_tx_deframer.v000066400000000000000000000205071224274632000206270ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_tx_deframer #(parameter BASE=0, parameter MAXCHAN=1, parameter USE_TRANS_HEADER=0) (input clk, input reset, input clear, input clear_seqnum, input set_stb, input [7:0] set_addr, input [31:0] set_data, // To FIFO interface of Buffer Pool input [35:0] data_i, input src_rdy_i, output dst_rdy_o, output [5+64+16+(32*MAXCHAN)-1:0] sample_fifo_o, output sample_fifo_src_rdy_o, input sample_fifo_dst_rdy_i, output [31:0] current_seqnum, // FIFO Levels output [15:0] fifo_occupied, output fifo_full, output fifo_empty, output [31:0] debug ); localparam FIFOWIDTH = 5+64+16+(32*MAXCHAN); wire [1:0] numchan = 0;/* setting_reg #(.my_addr(BASE), .at_reset(0), .width(2)) sr_numchan (.clk(clk),.rst(reset),.strobe(set_stb),.addr(set_addr), .in(set_data),.out(numchan),.changed()); */ reg [3:0] vita_state; wire has_streamid, has_classid, has_secs, has_tics, has_trailer; assign has_streamid = (data_i[31:28]==4'b0001); assign has_classid = data_i[27]; assign has_secs = ~(data_i[23:22]==2'b00); assign has_tics = ~(data_i[21:20]==2'b00); assign has_trailer = data_i[26]; wire is_sob = data_i[25]; wire is_eob = data_i[24]; wire eof = data_i[33]; reg has_streamid_reg, has_classid_reg, has_secs_reg, has_tics_reg; reg has_trailer_reg, is_sob_reg, is_eob_reg; reg [15:0] pkt_len; reg [1:0] vector_phase; wire line_done; wire [31:0] seqnum = data_i; reg [31:0] seqnum_reg; wire [31:0] next_seqnum = seqnum_reg + 32'd1; wire [3:0] vita_seqnum = data_i[19:16]; reg [3:0] vita_seqnum_reg; wire [3:0] next_vita_seqnum = vita_seqnum_reg[3:0] + 4'd1; reg seqnum_err; assign current_seqnum = seqnum_reg; // Output FIFO for packetized data localparam VITA_TRANS_HEADER = 0; localparam VITA_HEADER = 1; localparam VITA_STREAMID = 2; localparam VITA_CLASSID = 3; localparam VITA_CLASSID2 = 4; localparam VITA_SECS = 5; localparam VITA_TICS = 6; localparam VITA_TICS2 = 7; localparam VITA_PAYLOAD = 8; localparam VITA_TRAILER = 10; localparam VITA_DUMP = 11; wire [15:0] hdr_len = 2 + has_streamid_reg + has_classid_reg + has_classid_reg + has_secs_reg + has_tics_reg + has_tics_reg + has_trailer_reg; wire vita_eof = (pkt_len==hdr_len); wire eop = eof | vita_eof; // FIXME would ignoring eof allow larger VITA packets? wire fifo_space; always @(posedge clk) if(reset | clear | clear_seqnum) begin seqnum_reg <= 32'hFFFF_FFFF; vita_seqnum_reg <= 4'hF; end else begin if((vita_state==VITA_TRANS_HEADER) & src_rdy_i) seqnum_reg <= seqnum; if((vita_state==VITA_HEADER) & src_rdy_i) vita_seqnum_reg <= vita_seqnum; end // else: !if(reset | clear_seqnum) always @(posedge clk) if(reset | clear) begin vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; {has_streamid_reg, has_classid_reg, has_secs_reg, has_tics_reg, has_trailer_reg, is_sob_reg, is_eob_reg} <= 0; seqnum_err <= 0; end else if(src_rdy_i & dst_rdy_o) begin //valid read case(vita_state) VITA_TRANS_HEADER : begin seqnum_err <= ~(seqnum == next_seqnum); vita_state <= VITA_HEADER; end VITA_HEADER : begin {has_streamid_reg, has_classid_reg, has_secs_reg, has_tics_reg, has_trailer_reg, is_sob_reg, is_eob_reg} <= {has_streamid, has_classid, has_secs, has_tics, has_trailer, is_sob, is_eob}; pkt_len <= data_i[15:0]; vector_phase <= 0; if(has_streamid) vita_state <= VITA_STREAMID; else if(has_classid) vita_state <= VITA_CLASSID; else if(has_secs) vita_state <= VITA_SECS; else if(has_tics) vita_state <= VITA_TICS; else vita_state <= VITA_PAYLOAD; seqnum_err <= seqnum_err | ~(vita_seqnum == next_vita_seqnum); end // case: VITA_HEADER VITA_STREAMID : if(has_classid_reg) vita_state <= VITA_CLASSID; else if(has_secs_reg) vita_state <= VITA_SECS; else if(has_tics_reg) vita_state <= VITA_TICS; else vita_state <= VITA_PAYLOAD; VITA_CLASSID : vita_state <= VITA_CLASSID2; VITA_CLASSID2 : if(has_secs_reg) vita_state <= VITA_SECS; else if(has_tics_reg) vita_state <= VITA_TICS; else vita_state <= VITA_PAYLOAD; VITA_SECS : if(has_tics_reg) vita_state <= VITA_TICS; else vita_state <= VITA_PAYLOAD; VITA_TICS : vita_state <= VITA_TICS2; VITA_TICS2 : vita_state <= VITA_PAYLOAD; VITA_PAYLOAD : begin //step through each element until line done, then reset vector_phase <= (line_done)? 0: vector_phase + 1; //decrement the packet count after each line pkt_len <= (line_done)? pkt_len - 1 : pkt_len; //end of frame reached, determine next state //otherwise, keep processing through the payload if (line_done && vita_eof) begin if (eof) begin vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; end else if (has_trailer_reg) begin vita_state <= VITA_TRAILER; end else begin vita_state <= VITA_DUMP; end end //line_done && vita_eof end //end VITA_PAYLOAD VITA_TRAILER : if(eof) vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; else vita_state <= VITA_DUMP; VITA_DUMP : if(eof) vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; default : vita_state <= (USE_TRANS_HEADER==1) ? VITA_TRANS_HEADER : VITA_HEADER; endcase // case (vita_state) end //valid read assign line_done = (MAXCHAN == 1)? 1 : (vector_phase == numchan); wire [FIFOWIDTH-1:0] fifo_i; reg [63:0] send_time; always @(posedge clk) case(vita_state) VITA_TICS : send_time[63:32] <= data_i[31:0]; VITA_TICS2 : send_time[31:0] <= data_i[31:0]; endcase // case (vita_state) //sample registers for de-framing a vector input reg [31:0] sample_reg [1:0]; always @(posedge clk) if(src_rdy_i && dst_rdy_o) sample_reg[vector_phase] <= data_i[31:0]; wire store = (vita_state == VITA_PAYLOAD)? (src_rdy_i && line_done) : 0; assign dst_rdy_o = (vita_state == VITA_PAYLOAD)? fifo_space : 1; fifo_short #(.WIDTH(FIFOWIDTH)) short_tx_q (.clk(clk), .reset(reset), .clear(clear), .datain(fifo_i), .src_rdy_i(store), .dst_rdy_o(fifo_space), .dataout(sample_fifo_o), .src_rdy_o(sample_fifo_src_rdy_o), .dst_rdy_i(sample_fifo_dst_rdy_i) ); //assign registered/live data to the samples vector //the numchan'th sample vector is muxed to live data wire [(32*MAXCHAN)-1:0] samples; generate genvar i; for (i=0; i < MAXCHAN; i = i +1) begin : assign_samples wire live_data = (i == (MAXCHAN-1))? 1 : numchan == i; assign samples[32*i + 31:32*i] = (live_data)? data_i[31:0] : sample_reg[i]; end endgenerate // sob, eob, has_tics (send_at) ignored on all lines except first assign fifo_i = {samples,seqnum_err,has_tics_reg,is_sob_reg,is_eob_reg,eop, 12'd0,seqnum_reg[3:0],send_time}; assign debug = { { 8'b0 }, { 8'b0 }, { eof, line_done, store, fifo_space, src_rdy_i, dst_rdy_o, vector_phase[1:0] }, { has_secs_reg, is_sob_reg, is_eob_reg, eop, vita_state[3:0] } }; endmodule // vita_tx_deframer uhd-3.5.5/fpga/usrp2/vrt/vita_tx_engine_glue.v000066400000000000000000000106461224274632000213260ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //The following module is used to re-write transmit packets from the host. //This module provides a packet-based ram interface for manipulating packets. //By default, this module uses the built-in 8 to 16 bit converter engine. module vita_tx_engine_glue #( //the dsp unit number: 0, 1, 2... parameter DSPNO = 0, //buffer size for ram interface engine parameter BUF_SIZE = 10, //base address for built-in settings registers used in this module parameter MAIN_SETTINGS_BASE = 0, //the number of 32bit lines between start of buffer and vita header //the metadata before the header should be preserved by the engine parameter HEADER_OFFSET = 0 ) ( //control signals input clock, input reset, input clear, //main settings bus for built-in modules input set_stb_main, input [7:0] set_addr_main, input [31:0] set_data_main, //user settings bus, controlled through user setting regs API input set_stb_user, input [7:0] set_addr_user, input [31:0] set_data_user, //ram interface for engine output access_we, output access_stb, input access_ok, output access_done, output access_skip_read, output [BUF_SIZE-1:0] access_adr, input [BUF_SIZE-1:0] access_len, output [35:0] access_dat_o, input [35:0] access_dat_i, //debug output (optional) output [31:0] debug ); generate if (DSPNO==0) begin `ifndef TX_ENG0_MODULE dspengine_8to16 #(.BASE(MAIN_SETTINGS_BASE), .BUF_SIZE(BUF_SIZE), .HEADER_OFFSET(HEADER_OFFSET)) dspengine_8to16 (.clk(clock),.reset(reset),.clear(clear), .set_stb(set_stb_main), .set_addr(set_addr_main), .set_data(set_data_main), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `else `TX_ENG0_MODULE #(.BUF_SIZE(BUF_SIZE), .HEADER_OFFSET(HEADER_OFFSET)) tx_eng0_custom (.clock(clock),.reset(reset),.clear(clear), .set_stb(set_stb_user), .set_addr(set_addr_user), .set_data(set_data_user), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `endif end else begin `ifndef TX_ENG1_MODULE dspengine_8to16 #(.BASE(MAIN_SETTINGS_BASE), .BUF_SIZE(BUF_SIZE), .HEADER_OFFSET(HEADER_OFFSET)) dspengine_8to16 (.clk(clock),.reset(reset),.clear(clear), .set_stb(set_stb_main), .set_addr(set_addr_main), .set_data(set_data_main), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `else `TX_ENG1_MODULE #(.BUF_SIZE(BUF_SIZE), .HEADER_OFFSET(HEADER_OFFSET)) tx_eng1_custom (.clock(clock),.reset(reset),.clear(clear), .set_stb(set_stb_user), .set_addr(set_addr_user), .set_data(set_data_user), .access_we(access_we), .access_stb(access_stb), .access_ok(access_ok), .access_done(access_done), .access_skip_read(access_skip_read), .access_adr(access_adr), .access_len(access_len), .access_dat_i(access_dat_i), .access_dat_o(access_dat_o)); `endif end endgenerate endmodule //vita_tx_engine_glue uhd-3.5.5/fpga/usrp2/vrt/vita_tx_tb.v000066400000000000000000000132731224274632000174510ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // module vita_tx_tb; localparam DECIM = 8'd4; localparam INTERP = 8'd4; localparam MAXCHAN=1; localparam NUMCHAN=1; reg clk = 0; reg reset = 1; initial #1000 reset = 0; always #50 clk = ~clk; initial $dumpfile("vita_tx_tb.vcd"); initial $dumpvars(0,vita_tx_tb); wire [(MAXCHAN*32)-1:0] sample, sample_tx; wire strobe, run; reg [35:0] data_o = 36'h0; reg src_rdy = 0; wire dst_rdy; wire [63:0] vita_time; reg set_stb = 0; reg [7:0] set_addr; reg [31:0] set_data; wire set_stb_dsp; wire [7:0] set_addr_dsp; wire [31:0] set_data_dsp; wire sample_dst_rdy, sample_src_rdy; wire [5+64+16+(MAXCHAN*32)-1:0] sample_data_o, sample_data_tx; time_64bit #(.TICKS_PER_SEC(100000000), .BASE(0)) time_64bit (.clk(clk), .rst(reset), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .pps(0), .vita_time(vita_time)); wire [35:0] data_tx; wire src_rdy_tx, dst_rdy_tx; wire sample_dst_rdy_tx, sample_src_rdy_tx; fifo_long #(.WIDTH(36)) fifo_short (.clk(clk), .reset(reset), .clear(0), .datain(data_o), .src_rdy_i(src_rdy), .dst_rdy_o(dst_rdy), .dataout(data_tx), .src_rdy_o(src_rdy_tx), .dst_rdy_i(dst_rdy_tx)); vita_tx_deframer #(.BASE(16), .MAXCHAN(MAXCHAN), .USE_TRANS_HEADER(0)) vita_tx_deframer (.clk(clk), .reset(reset), .clear(0), .clear_seqnum(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .data_i(data_tx), .dst_rdy_o(dst_rdy_tx), .src_rdy_i(src_rdy_tx), .sample_fifo_o(sample_data_tx), .sample_fifo_dst_rdy_i(sample_dst_rdy_tx), .sample_fifo_src_rdy_o(sample_src_rdy_tx), .fifo_occupied(), .fifo_full(), .fifo_empty() ); vita_tx_control #(.BASE(16), .WIDTH(MAXCHAN*32)) vita_tx_control (.clk(clk), .reset(reset), .clear(0), .set_stb(set_stb), .set_addr(set_addr), .set_data(set_data), .vita_time(vita_time), .error(underrun), .error_code(), .sample_fifo_i(sample_data_tx), .sample_fifo_dst_rdy_o(sample_dst_rdy_tx), .sample_fifo_src_rdy_i(sample_src_rdy_tx), .sample(sample_tx), .run(run_tx), .strobe(strobe_tx)); tx_dsp_model tx_dsp_model (.clk(clk), .reset(reset), .run(run_tx), .interp(INTERP), .strobe(strobe_tx), .sample(sample_tx[31:0] )); task write_setting; input [7:0] addr; input [31:0] data; begin set_stb <= 0; @(posedge clk); set_addr <= addr; set_data <= data; set_stb <= 1; @(posedge clk); set_stb <= 0; end endtask // write_setting initial begin @(negedge reset); @(posedge clk); write_setting(4,32'h14900008); // VITA header write_setting(5,32'hF00D1234); // VITA streamid write_setting(6,32'h98765432); // VITA trailer write_setting(7,8); // Samples per VITA packet write_setting(8,NUMCHAN); // Samples per VITA packet #10000; queue_vita_packets(0, 32'h300, 5, 32'h0000_1000, 32'h0, 4'h0, 1, 0, 1); queue_vita_packets(0, 32'h0, 5, 32'h0000_2000, 32'h0, 4'h1, 0, 0, 0); queue_vita_packets(0, 32'h0, 5, 32'h0000_3000, 32'h0, 4'h2, 0, 0, 0); queue_vita_packets(0, 32'h400, 3, 32'h0000_4000, 32'h0, 4'h3, 1, 0, 1); queue_vita_packets(0, 32'h0, 3, 32'h0000_5000, 32'h0, 4'h4, 0, 0, 0); queue_vita_packets(0, 32'h0, 3, 32'h0000_6000, 32'h0, 4'h5, 0, 1, 0); #300000 $finish; end task queue_vita_packets; input [31:0] send_secs; input [31:0] sendtime; input [15:0] samples; input [15:0] word; input [31:0] trailer; input [3:0] seqnum; input sob; input eob; input sendat; reg [15:0] i; begin src_rdy <= 0; @(posedge clk); src_rdy <= 1; data_o <= {4'b0001,4'h0,1'b0,|trailer,sob,eob,{2{sendat}},1'b0,sendat,seqnum,(16'd1+samples+|trailer+sendat+sendat+sendat)}; // header @(posedge clk); //data_o <= {4'b0000,32'h0}; // streamid //@(posedge clk); if(sendat) begin data_o <= {4'b0000,send_secs}; // SECS @(posedge clk); data_o <= {4'b0000,32'h0}; // TICS @(posedge clk); data_o <= {4'b0000,sendtime}; // TICS @(posedge clk); end for(i=0;i. # ######################################################################## #IF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) # MESSAGE(FATAL_ERROR "Prevented in-tree built. This is bad practice.") #ENDIF(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) ######################################################################## # Project setup ######################################################################## CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(UHD CXX) ENABLE_TESTING() LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) ######################################################################## # Packaging Variables ######################################################################## SET(LIBUHD_PKG ${LIBUHD_PKG} CACHE BOOL "Build Debian libuhd003 package") SET(LIBUHDDEV_PKG ${LIBUHDDEV_PKG} CACHE BOOL "Build Debian libuhd-dev package") SET(UHDHOST_PKG ${UHDPOST_PKG} CACHE BOOL "Build Debian uhd-host package") INCLUDE(UHDComponent) #enable components INCLUDE(UHDPackage) #setup cpack ######################################################################## # Install Dirs ######################################################################## #when the library suffix should be 64 (applies to redhat linux family) IF(NOT DEFINED LIB_SUFFIX AND REDHAT AND CMAKE_SYSTEM_PROCESSOR MATCHES "64$") SET(LIB_SUFFIX 64) ENDIF() SET(LIB_SUFFIX ${LIB_SUFFIX} CACHE STRING "lib directory suffix") SET(RUNTIME_DIR bin) SET(LIBRARY_DIR lib${LIB_SUFFIX}) SET(INCLUDE_DIR include) SET(PKG_DATA_DIR share/uhd) IF(NOT DEFINED PKG_LIB_DIR) SET(PKG_LIB_DIR ${PKG_DATA_DIR}) ENDIF() SET(PKG_DOC_DIR share/doc/uhd) SET(PKG_MAN_DIR share/man/man1) ######################################################################## # Local Include Dir ######################################################################## INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) ######################################################################## # Optional Compiler Flags ######################################################################## INCLUDE(CheckCXXCompilerFlag) MACRO(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG flag have) CHECK_CXX_COMPILER_FLAG(${flag} ${have}) IF(${have}) ADD_DEFINITIONS(${flag}) ENDIF(${have}) ENDMACRO(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG) #select the release build type by default to get optimization flags IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE "Release") MESSAGE(STATUS "Build type not specified: defaulting to release.") ENDIF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING "") #force UHD_RELEASE_MODE to be a string for cmake-gui SET(UHD_RELEASE_MODE "${UHD_RELEASE_MODE}" CACHE STRING "UHD Release Mode") IF(CMAKE_COMPILER_IS_GNUCXX) IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -s") ENDIF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") ADD_DEFINITIONS(-Wall) ADD_DEFINITIONS(-Wextra) ADD_DEFINITIONS(-Wsign-compare) #ADD_DEFINITIONS(-Wconversion) #ADD_DEFINITIONS(-pedantic) #ADD_DEFINITIONS(-ansi) IF(NOT WIN32) #only export symbols that are declared to be part of the uhd api (non dll platforms) UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-fvisibility=hidden HAVE_VISIBILITY_HIDDEN) UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-fvisibility-inlines-hidden HAVE_VISIBILITY_INLINES_HIDDEN) ENDIF(NOT WIN32) ENDIF(CMAKE_COMPILER_IS_GNUCXX) IF(MSVC) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/cmake/msvc) ADD_DEFINITIONS( #stop all kinds of compatibility warnings -D_SCL_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE ) ENDIF(MSVC) IF(CYGWIN) ADD_DEFINITIONS(-D__USE_W32_SOCKETS) #boost asio says we need this ENDIF(CYGWIN) IF(WIN32) ADD_DEFINITIONS(-D_WIN32_WINNT=0x0501) #minimum version required is windows xp ADD_DEFINITIONS(-DNOMINMAX) #disables stupidity and enables std::min and std::max ENDIF(WIN32) ######################################################################## # Setup Boost ######################################################################## MESSAGE(STATUS "") MESSAGE(STATUS "Configuring Boost C++ Libraries...") SET(BOOST_REQUIRED_COMPONENTS date_time filesystem program_options regex system thread unit_test_framework ) IF(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64") LIST(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix ENDIF(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64") IF(MSVC) SET(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking") IF(BOOST_ALL_DYN_LINK) ADD_DEFINITIONS(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc ELSE(BOOST_ALL_DYN_LINK) UNSET(BOOST_REQUIRED_COMPONENTS) #empty components list for static link ENDIF(BOOST_ALL_DYN_LINK) ENDIF(MSVC) SET(Boost_ADDITIONAL_VERSIONS "1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39" "1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44" "1.45.0" "1.45" "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.49.0" "1.49" "1.50.0" "1.50" "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54" "1.55.0" "1.55" "1.56.0" "1.56" "1.57.0" "1.57" "1.58.0" "1.58" "1.59.0" "1.59" "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64" "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69" ) FIND_PACKAGE(Boost 1.36 COMPONENTS ${BOOST_REQUIRED_COMPONENTS}) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) MESSAGE(STATUS "Boost include directories: ${Boost_INCLUDE_DIRS}") MESSAGE(STATUS "Boost library directories: ${Boost_LIBRARY_DIRS}") MESSAGE(STATUS "Boost libraries: ${Boost_LIBRARIES}") ######################################################################## # Check Python Modules ######################################################################## INCLUDE(UHDPython) PYTHON_CHECK_MODULE( "Python version 2.6 or greater" "platform" "platform.python_version() >= '2.6'" HAVE_PYTHON_PLAT_MIN_VERSION ) PYTHON_CHECK_MODULE( "Cheetah templates 2.0.0 or greater" "Cheetah" "Cheetah.Version >= '2.0.0'" HAVE_PYTHON_MODULE_CHEETAH ) ######################################################################## # Create Uninstall Target ######################################################################## CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake @ONLY) ADD_CUSTOM_TARGET(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake ) ######################################################################## # Install Package Docs ######################################################################## UHD_INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.txt ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS.txt DESTINATION ${PKG_DOC_DIR} COMPONENT readme ) ######################################################################## # Images download directory for utils/uhd_images_downloader.py ######################################################################## SET(UHD_IMAGES_MD5SUM "7f2fb75dbe3091539e3e761b0b79480a") SET(UHD_IMAGES_DOWNLOAD_SRC "http://files.ettus.com/binaries/maint_images/archive/uhd-images_003.005.005-release.zip") ######################################################################## # Register top level components ######################################################################## LIBUHD_REGISTER_COMPONENT("LibUHD" ENABLE_LIBUHD ON "Boost_FOUND;HAVE_PYTHON_PLAT_MIN_VERSION;HAVE_PYTHON_MODULE_CHEETAH" OFF) LIBUHD_REGISTER_COMPONENT("Examples" ENABLE_EXAMPLES ON "ENABLE_LIBUHD" OFF) LIBUHD_REGISTER_COMPONENT("Utils" ENABLE_UTILS ON "ENABLE_LIBUHD" OFF) LIBUHD_REGISTER_COMPONENT("Tests" ENABLE_TESTS ON "ENABLE_LIBUHD" OFF) ######################################################################## # Add the subdirectories ######################################################################## ADD_SUBDIRECTORY(docs) ADD_SUBDIRECTORY(include) IF(ENABLE_EXAMPLES) ADD_SUBDIRECTORY(examples) ENDIF(ENABLE_EXAMPLES) IF(ENABLE_LIBUHD) ADD_SUBDIRECTORY(lib) ENDIF(ENABLE_LIBUHD) IF(ENABLE_TESTS) ADD_SUBDIRECTORY(tests) ENDIF(ENABLE_TESTS) IF(ENABLE_UTILS) ADD_SUBDIRECTORY(utils) ENDIF(ENABLE_UTILS) ######################################################################## # Create Pkg Config File ######################################################################## FOREACH(inc ${Boost_INCLUDE_DIRS}) LIST(APPEND UHD_PC_CFLAGS "-I${inc}") ENDFOREACH(inc) FOREACH(lib ${Boost_LIBRARY_DIRS}) LIST(APPEND UHD_PC_LIBS "-L${lib}") ENDFOREACH(lib) #use space-separation format for the pc file STRING(REPLACE ";" " " UHD_PC_REQUIRES "${UHD_PC_REQUIRES}") STRING(REPLACE ";" " " UHD_PC_CFLAGS "${UHD_PC_CFLAGS}") STRING(REPLACE ";" " " UHD_PC_LIBS "${UHD_PC_LIBS}") #unset these vars to avoid hard-coded paths to cross environment IF(CMAKE_CROSSCOMPILING) UNSET(UHD_PC_CFLAGS) UNSET(UHD_PC_LIBS) ENDIF(CMAKE_CROSSCOMPILING) IF(NOT LIBUHD_PKG AND NOT UHDHOST_PKG) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/uhd.pc.in ${CMAKE_CURRENT_BINARY_DIR}/uhd.pc @ONLY) INSTALL( FILES ${CMAKE_CURRENT_BINARY_DIR}/uhd.pc DESTINATION ${LIBRARY_DIR}/pkgconfig COMPONENT libraries ) ENDIF(NOT LIBUHD_PKG AND NOT UHDHOST_PKG) ######################################################################## # Handle pre-built images ######################################################################## IF(DEFINED UHD_IMAGES_DIR AND EXISTS "${UHD_IMAGES_DIR}") FILE(GLOB_RECURSE _image_files "${UHD_IMAGES_DIR}/*") MESSAGE(STATUS "Using images:") FOREACH(_img ${_image_files}) MESSAGE(STATUS " ${_img}") ENDFOREACH(_img) UHD_INSTALL(FILES ${_image_files} DESTINATION ${PKG_DATA_DIR}/images COMPONENT images) ENDIF(DEFINED UHD_IMAGES_DIR AND EXISTS "${UHD_IMAGES_DIR}") ######################################################################## # Print Summary ######################################################################## IF(LIBUHD_PKG) MESSAGE(STATUS "") SET(PRINT_APPEND " (Debian libuhd003 package configuration)") ELSEIF(LIBUHDDEV_PKG) MESSAGE(STATUS "") SET(PRINT_APPEND " (Debian libuhd-dev package configuration)") ELSEIF(UHDHOST_PKG) MESSAGE(STATUS "") SET(PRINT_APPEND " (Debian uhd-host package configuration)") ENDIF(LIBUHD_PKG) UHD_PRINT_COMPONENT_SUMMARY() MESSAGE(STATUS "Building version: ${UHD_VERSION}${PRINT_APPEND}") MESSAGE(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}") MESSAGE(STATUS "Compatible images can be downloaded from: ${UHD_IMAGES_DOWNLOAD_SRC}") uhd-3.5.5/host/LICENSE.txt000066400000000000000000000011441224274632000151060ustar00rootroot00000000000000This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . uhd-3.5.5/host/README.txt000066400000000000000000000017071224274632000147660ustar00rootroot00000000000000############################################### # Ettus Research - USRP Hardware Driver ############################################### The hardware driver for Ettus Research products. ############################################### # Supported USRP Motherboards ############################################### USRP1 USRP2 N200 N210 E100 E110 B100 ############################################### # Supported USRP Daughterboards ############################################### Basic RX Basic TX LF RX LF TX RFX Series XCVR 2450 WBX + Simple GDB DBSRX DBSRX2 TVRX TVRX2 SBX ############################################### # Documentation ############################################### Online documentation available at: http://code.ettus.com/redmine/ettus/projects/uhd/wiki The build system can generate the html for the manual and Doxygen. Docutils and Doxygen are required to build the html docs. See the docs directory for the manual source (reStructuredText). uhd-3.5.5/host/apps/000077500000000000000000000000001224274632000142265ustar00rootroot00000000000000uhd-3.5.5/host/apps/omap_debug/000077500000000000000000000000001224274632000163305ustar00rootroot00000000000000uhd-3.5.5/host/apps/omap_debug/.gitignore000066400000000000000000000004311224274632000203160ustar00rootroot00000000000000.gitignore clkgen-config fpga-downloader usrp-e-button usrp-e-crc-rw usrp-e-ctl usrp-e-debug-pins usrp-e-fpga-rw usrp-e-gpio usrp-e-i2c usrp-e-lb-test usrp-e-led usrp-e-loopback usrp-e-random-loopback usrp-e-rw usrp-e-spi usrp-e-timed usrp-e-uart usrp-e-uart-rx usrp-e-mm-loopback uhd-3.5.5/host/apps/omap_debug/Makefile000066400000000000000000000014111224274632000177650ustar00rootroot00000000000000CFLAGS=-Wall -I../../lib/usrp/usrp_e/ -march=armv7-a -mtune=cortex-a8 -mfpu=neon -O3 CXXFLAGS=-Wall -I../../lib/usrp/usrp_e/ -march=armv7-a -mtune=cortex-a8 -mfpu=neon -O3 all : usrp-e-spi usrp-e-i2c usrp-e-uart usrp-e-led usrp-e-ctl usrp-e-button usrp-e-uart-rx usrp-e-gpio usrp-e-debug-pins usrp-e-spi : usrp-e-spi.c usrp-e-i2c : usrp-e-i2c.c usrp-e-uart : usrp-e-uart.c usrp-e-uart-rx : usrp-e-uart-rx.c usrp-e-led : usrp-e-led.c usrp-e-ctl : usrp-e-ctl.c usrp-e-button : usrp-e-button.c usrp-e-gpio : usrp-e-gpio.c usrp-e-debug-pins : usrp-e-debug-pins.c clean : rm -f usrp-e-spi rm -f usrp-e-i2c rm -f usrp-e-uart rm -f usrp-e-uart-rx rm -f usrp-e-led rm -f usrp-e-ctl rm -f usrp-e-button rm -f usrp-e-gpio rm -f usrp-e-debug-pins rm -f usrp-e-lb-test uhd-3.5.5/host/apps/omap_debug/README000066400000000000000000000000371224274632000172100ustar00rootroot00000000000000OMAP development tools go here uhd-3.5.5/host/apps/omap_debug/set_debug_pins.py000077500000000000000000000013101224274632000216720ustar00rootroot00000000000000#!/usr/bin/python import os # Memory Map misc_base = 0 uart_base = 1 spi_base = 2 i2c_base = 3 gpio_base = 4 * 128 settings_base = 5 # GPIO offset gpio_pins = 0 gpio_ddr = 4 gpio_ctrl_lo = 8 gpio_ctrl_hi = 12 def set_reg(reg, val): os.system("./usrp1-e-ctl w %d 1 %d" % (reg,val)) def get_reg(reg): fin,fout = os.popen4("./usrp1-e-ctl r %d 1" % (reg,)) print fout.read() # Set DDRs to output set_reg(gpio_base+gpio_ddr, 0xFFFF) set_reg(gpio_base+gpio_ddr+2, 0xFFFF) # Set CTRL to Debug #0 ( A is for debug 0, F is for debug 1 ) set_reg(gpio_base+gpio_ctrl_lo, 0xAAAA) set_reg(gpio_base+gpio_ctrl_lo+2, 0xAAAA) set_reg(gpio_base+gpio_ctrl_hi, 0xAAAA) set_reg(gpio_base+gpio_ctrl_hi+2, 0xAAAA) uhd-3.5.5/host/apps/omap_debug/test.c000066400000000000000000000010311224274632000174460ustar00rootroot00000000000000#include void main() { int x; char *y; long long z; x = 0x01020304; z = 0x0102030405060708LL; printf("%x\n",x); y = (char *)&x; printf("%x\n",y[0]); printf("%x\n",y[1]); printf("%x\n",y[2]); printf("%x\n",y[3]); printf("Printing z ...\n"); printf("%llx\n",z); printf("Printing z done\n"); y = (char *)&z; printf("%x\n",y[0]); printf("%x\n",y[1]); printf("%x\n",y[2]); printf("%x\n",y[3]); printf("%x\n",y[4]); printf("%x\n",y[5]); printf("%x\n",y[6]); printf("%x\n",y[7]); } uhd-3.5.5/host/apps/omap_debug/u1e-read-stream.c000066400000000000000000000005301224274632000213660ustar00rootroot00000000000000#include #include #include int main(int rgc, char *argv[]) { int fp, cnt, n; short buf[1024]; n = 0; fp = open("/dev/usrp1_e0", O_RDONLY); printf("fp = %d\n", fp); do { cnt = read(fp, buf, 2048); n++; // printf("Bytes read - %d\n", cnt); } while(n < 10*512); printf("Data - %hX\n", buf[0]); } uhd-3.5.5/host/apps/omap_debug/usrp-e-button.c000066400000000000000000000016211224274632000212200ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "usrp_e.h" #include "usrp_e_regs.hpp" // Usage: usrp_e_uart #define PB1 (1<<8) #define PB2 (1<<9) #define PB3 (1<<10) #define P1 (0) #define P2 (0xFF) #define P3 (0xAA) #define P4 (0x55) int main(int argc, char *argv[]) { int fp, ret; struct usrp_e_ctl16 d; int pb1=0, pb2=0, pb3=0, p1=0, p2=0, p3=0, p4=0; fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); d.offset = UE_REG_MISC_SW; d.count = 1; do { ret = ioctl(fp, USRP_E_READ_CTL16, &d); if (d.buf[0] & PB1) { pb1 = 1; printf("Pushbutton 1 hit\n"); } if (d.buf[0] & PB2) { pb2 = 1; printf("Pushbutton 2 hit\n"); } if (d.buf[0] & PB3) { pb3 = 1; printf("Pushbutton 3 hit\n"); } sleep(1); } while (!(pb1 && pb2 && pb3)); return 0; } uhd-3.5.5/host/apps/omap_debug/usrp-e-ctl.c000066400000000000000000000017561224274632000205000ustar00rootroot00000000000000#include #include #include #include #include #include "usrp_e.h" // Usage: usrp_e_ctl w|r offset number_of_values val1 val2 .... int main(int argc, char *argv[]) { int fp, i, cnt, ret; struct usrp_e_ctl16 ctl_data; if (argc < 4) { printf("Usage: usrp_e_ctl w|r offset number_of_values val1 val2 ....\n"); exit(-1); } cnt = atoi(argv[3]); ctl_data.offset = atoi(argv[2]); ctl_data.count = cnt; fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); if (*argv[1] == 'w') { for (i=0; i #include #include #include #include #include #include #include "usrp_e.h" #include "usrp_e_regs.hpp" // Usage: usrp_e_gpio static int fp; static int read_reg(__u16 reg) { int ret; struct usrp_e_ctl16 d; d.offset = reg; d.count = 1; ret = ioctl(fp, USRP_E_READ_CTL16, &d); return d.buf[0]; } static void write_reg(__u16 reg, __u16 val) { int ret; struct usrp_e_ctl16 d; d.offset = reg; d.count = 1; d.buf[0] = val; ret = ioctl(fp, USRP_E_WRITE_CTL16, &d); } int main(int argc, char *argv[]) { int test; test = 0; if (argc < 2) { printf("%s 0|1|off\n", argv[0]); } fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); if (fp < 0) { perror("Open failed"); return -1; } if (strcmp(argv[1], "0") == 0) { printf("Selected 0 based on %s\n", argv[1]); write_reg(UE_REG_GPIO_TX_DDR, 0xFFFF); write_reg(UE_REG_GPIO_RX_DDR, 0xFFFF); write_reg(UE_REG_GPIO_TX_SEL, 0x0); write_reg(UE_REG_GPIO_RX_SEL, 0x0); write_reg(UE_REG_GPIO_TX_DBG, 0xFFFF); write_reg(UE_REG_GPIO_RX_DBG, 0xFFFF); } else if (strcmp(argv[1], "1") == 0) { printf("Selected 1 based on %s\n", argv[1]); write_reg(UE_REG_GPIO_TX_DDR, 0xFFFF); write_reg(UE_REG_GPIO_RX_DDR, 0xFFFF); write_reg(UE_REG_GPIO_TX_SEL, 0xFFFF); write_reg(UE_REG_GPIO_RX_SEL, 0xFFFF); write_reg(UE_REG_GPIO_TX_DBG, 0xFFFF); write_reg(UE_REG_GPIO_RX_DBG, 0xFFFF); } else { printf("Selected off based on %s\n", argv[1]); write_reg(UE_REG_GPIO_TX_DDR, 0x0); write_reg(UE_REG_GPIO_RX_DDR, 0x0); } return 0; } uhd-3.5.5/host/apps/omap_debug/usrp-e-i2c.c000066400000000000000000000032351224274632000203650ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "usrp_e.h" // Usage: usrp_e_i2c w address data0 data1 data 2 .... // Usage: usrp_e_i2c r address count int main(int argc, char *argv[]) { int fp, ret, i, tmp; struct usrp_e_i2c *i2c_msg; int direction, address, count; if (argc < 3) { printf("Usage: usrp-e-i2c w address data0 data1 data2 ...\n"); printf("Usage: usrp-e-i2c r address count\n"); printf("All addresses and data in hex.\n"); exit(-1); } if (strcmp(argv[1], "r") == 0) { direction = 0; } else if (strcmp(argv[1], "w") == 0) { direction = 1; } else { return -1; } sscanf(argv[2], "%X", &address); printf("Address = %X\n", address); fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); if (fp < 0) { perror("Open failed"); return -1; } // sleep(1); if (direction) { count = argc - 3; } else { sscanf(argv[3], "%X", &count); } printf("Count = %X\n", count); i2c_msg = malloc(sizeof(i2c_msg) + count * sizeof(char)); i2c_msg->addr = address; i2c_msg->len = count; for (i = 0; i < count; i++) { i2c_msg->data[i] = i; } if (direction) { // Write for (i=0; idata[i] = tmp; } ret = ioctl(fp, USRP_E_I2C_WRITE, i2c_msg); printf("Return value from i2c_write ioctl: %d\n", ret); } else { // Read ret = ioctl(fp, USRP_E_I2C_READ, i2c_msg); printf("Return value from i2c_read ioctl: %d\n", ret); printf("Ioctl: %d Data read :", ret); for (i=0; idata[i]); } printf("\n"); } return 0; } uhd-3.5.5/host/apps/omap_debug/usrp-e-lb-test.c000066400000000000000000000024311224274632000212570ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "usrp_e.h" // max length #define PKT_DATA_LENGTH 1016 int main(int argc, char *argv[]) { struct usrp_transfer_frame *tx_data, *rx_data; int i, fp, packet_data_length, cnt; struct usrp_e_ctl16 d; if (argc < 2) { printf("%s data_size (in bytes < 2040)\n", argv[0]); return -1; } packet_data_length = atoi(argv[1]); fp = open("/dev/usrp_e0", O_RDWR); d.offset = 14; d.count = 1; d.buf[0] = (1 << 13); ioctl(fp, USRP_E_WRITE_CTL16, &d); tx_data = malloc(2048); rx_data = malloc(2048); tx_data->status = 0; tx_data->len = sizeof(struct usrp_transfer_frame) + packet_data_length; while (1) { for (i = 0; i < packet_data_length; i++) { tx_data->buf[i] = random() >> 24; } cnt = write(fp, tx_data, 2048); cnt = read(fp, rx_data, 2048); if (tx_data->len != rx_data->len) printf("Bad frame length sent %d, read %d\n", tx_data->len, rx_data->len); for (i = 0; i < packet_data_length; i++) { if (tx_data->buf[i] != rx_data->buf[i]) printf("Bad data at %d, sent %d, received %d\n", i, tx_data->buf[i], rx_data->buf[i]); } printf("---------------------------------------------------\n"); sleep(1); } } uhd-3.5.5/host/apps/omap_debug/usrp-e-led.c000066400000000000000000000010371224274632000204520ustar00rootroot00000000000000#include #include #include #include #include #include #include #include "usrp_e.h" #include "usrp_e_regs.hpp" // Usage: usrp_e_uart int main(int argc, char *argv[]) { int fp, i, ret; struct usrp_e_ctl16 d; fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); d.offset = UE_REG_MISC_BASE; d.count = 1; while (1) { for (i=0; i<8; i++) { d.buf[0] = i; ret = ioctl(fp, USRP_E_WRITE_CTL16, &d); sleep(1); } } return 0; } uhd-3.5.5/host/apps/omap_debug/usrp-e-ram.c000066400000000000000000000007661224274632000204750ustar00rootroot00000000000000#include #include #include int main(int rgc, char *argv[]) { int fp, i, cnt; unsigned short buf[1024]; unsigned short buf_rb[1024]; fp = open("/dev/usrp1_e0", O_RDWR); printf("fp = %d\n", fp); for (i=0; i<1024; i++) buf[i] = i*256; write(fp, buf, 2048); read(fp, buf_rb, 2048); printf("Read back %hX %hX\n", buf_rb[0], buf_rb[1]); for (i=0; i<1024; i++) { if (buf[i] != buf_rb[i]) printf("Read - %hX, expected - %hX\n", buf_rb[i], buf[i]); } } uhd-3.5.5/host/apps/omap_debug/usrp-e-read.c000066400000000000000000000004721224274632000206230ustar00rootroot00000000000000#include #include #include int main(int rgc, char *argv[]) { int fp, cnt; short buf[1024]; fp = open("/dev/usrp1_e0", O_RDONLY); printf("fp = %d\n", fp); do { cnt = read(fp, buf, 2048); // printf("Bytes read - %d\n", cnt); } while(1); printf("Data - %hX\n", buf[0]); } uhd-3.5.5/host/apps/omap_debug/usrp-e-spi.c000066400000000000000000000017611224274632000205050ustar00rootroot00000000000000#include #include #include #include #include #include #include "usrp_e.h" // Usage: usrp_e_spi w|rb slave data int main(int argc, char *argv[]) { int fp, slave, length, ret; unsigned int data; struct usrp_e_spi spi_dat; if (argc < 5) { printf("Usage: usrp_e_spi w|rb slave transfer_length data\n"); exit(-1); } slave = atoi(argv[2]); length = atoi(argv[3]); data = atoll(argv[4]); printf("Data = %X\n", data); fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); if (fp < 0) { perror("Open failed"); return -1; } // sleep(1); spi_dat.slave = slave; spi_dat.data = data; spi_dat.length = length; spi_dat.flags = UE_SPI_PUSH_FALL | UE_SPI_LATCH_RISE; if (*argv[1] == 'r') { spi_dat.readback = 1; ret = ioctl(fp, USRP_E_SPI, &spi_dat); printf("Ioctl returns: %d, Data returned = %d\n", ret, spi_dat.data); } else { spi_dat.readback = 0; ioctl(fp, USRP_E_SPI, &spi_dat); } return 0; } uhd-3.5.5/host/apps/omap_debug/usrp-e-uart-rx.c000066400000000000000000000017061224274632000213130ustar00rootroot00000000000000#include #include #include #include #include #include #include "usrp_e.h" #include "usrp_e_regs.hpp" // Usage: usrp_e_uart int main(int argc, char *argv[]) { int fp, ret; struct usrp_e_ctl16 d; __u16 clkdiv; if (argc == 0) { printf("Usage: usrp-e-uart-rx \n"); printf("clkdiv = 278 is 230.4k \n"); printf("clkdiv = 556 is 115.2k \n"); exit(-1); } fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); if (argc == 2) { clkdiv = atoi(argv[1]); d.offset = UE_REG_UART_CLKDIV; d.count = 1; d.buf[0] = clkdiv; ret = ioctl(fp, USRP_E_WRITE_CTL16, &d); } while(1) { d.offset = UE_REG_UART_RXLEVEL; d.count = 1; ret = ioctl(fp, USRP_E_READ_CTL16, &d); if (d.buf[0] > 0) { d.offset = UE_REG_UART_RXCHAR; d.count = 1; ret = ioctl(fp, USRP_E_READ_CTL16, &d); printf("%c", d.buf[0]); fflush(stdout); } } return 0; } uhd-3.5.5/host/apps/omap_debug/usrp-e-uart.c000066400000000000000000000016521224274632000206640ustar00rootroot00000000000000#include #include #include #include #include #include #include "usrp_e.h" #include "usrp_e_regs.hpp" // Usage: usrp_e_uart int main(int argc, char *argv[]) { int fp, i, ret; struct usrp_e_ctl16 d; char *str = argv[1]; __u16 clkdiv; if (argc < 2) { printf("Usage: usrp_e_uart \n"); printf("clkdiv = 278 is 230.4k \n"); printf("clkdiv = 556 is 115.2k \n"); exit(-1); } fp = open("/dev/usrp_e0", O_RDWR); printf("fp = %d\n", fp); if (argc == 3) { clkdiv = atoi(argv[2]); d.offset = UE_REG_UART_CLKDIV; d.count = 1; d.buf[0] = clkdiv; ret = ioctl(fp, USRP_E_WRITE_CTL16, &d); } for (i=0; i #include #include int main(int rgc, char *argv[]) { int fp, i, cnt; short buf[1024]; fp = open("/dev/usrp1_e0", O_WRONLY); printf("fp = %d\n", fp); for (i=0; i<1024; i++) { buf[i] = i; } // do { cnt = write(fp, buf, 2048); printf("Bytes written - %d\n", cnt); // } while (1); } uhd-3.5.5/host/apps/omap_debug/usrp_e.h000066400000000000000000000026721224274632000200050ustar00rootroot00000000000000 /* * Copyright (C) 2010 Ettus Research, LLC * * Written by Philip Balister * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #ifndef __USRP_E_H #define __USRP_E_H #include #include struct usrp_e_ctl16 { __u32 offset; __u32 count; __u16 buf[20]; }; struct usrp_e_ctl32 { __u32 offset; __u32 count; __u32 buf[10]; }; #define USRP_E_IOC_MAGIC 'u' #define USRP_E_WRITE_CTL16 _IOW(USRP_E_IOC_MAGIC, 0x20, struct usrp_e_ctl16) #define USRP_E_READ_CTL16 _IOWR(USRP_E_IOC_MAGIC, 0x21, struct usrp_e_ctl16) #define USRP_E_WRITE_CTL32 _IOW(USRP_E_IOC_MAGIC, 0x22, struct usrp_e_ctl32) #define USRP_E_READ_CTL32 _IOWR(USRP_E_IOC_MAGIC, 0x23, struct usrp_e_ctl32) #define USRP_E_GET_RB_INFO _IOR(USRP_E_IOC_MAGIC, 0x27, struct usrp_e_ring_buffer_size_t) #define USRP_E_GET_COMPAT_NUMBER _IO(USRP_E_IOC_MAGIC, 0x28) #define USRP_E_COMPAT_NUMBER 2 /* Flag defines */ #define RB_USER (1<<0) #define RB_KERNEL (1<<1) #define RB_OVERRUN (1<<2) #define RB_DMA_ACTIVE (1<<3) #define RB_USER_PROCESS (1<<4) struct ring_buffer_info { int flags; int len; }; struct usrp_e_ring_buffer_size_t { int num_pages_rx_flags; int num_rx_frames; int num_pages_tx_flags; int num_tx_frames; }; #endif uhd-3.5.5/host/cmake/000077500000000000000000000000001224274632000143435ustar00rootroot00000000000000uhd-3.5.5/host/cmake/Modules/000077500000000000000000000000001224274632000157535ustar00rootroot00000000000000uhd-3.5.5/host/cmake/Modules/CMakeParseArgumentsCopy.cmake000066400000000000000000000134031224274632000234520ustar00rootroot00000000000000# CMAKE_PARSE_ARGUMENTS( args...) # # CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions for # parsing the arguments given to that macro or function. # It processes the arguments and defines a set of variables which hold the # values of the respective options. # # The argument contains all options for the respective macro, # i.e. keywords which can be used when calling the macro without any value # following, like e.g. the OPTIONAL keyword of the install() command. # # The argument contains all keywords for this macro # which are followed by one value, like e.g. DESTINATION keyword of the # install() command. # # The argument contains all keywords for this macro # which can be followed by more than one value, like e.g. the TARGETS or # FILES keywords of the install() command. # # When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the # keywords listed in , and # a variable composed of the given # followed by "_" and the name of the respective keyword. # These variables will then hold the respective value from the argument list. # For the keywords this will be TRUE or FALSE. # # All remaining arguments are collected in a variable # _UNPARSED_ARGUMENTS, this can be checked afterwards to see whether # your macro was called with unrecognized parameters. # # As an example here a my_install() macro, which takes similar arguments as the # real install() command: # # function(MY_INSTALL) # set(options OPTIONAL FAST) # set(oneValueArgs DESTINATION RENAME) # set(multiValueArgs TARGETS CONFIGURATIONS) # cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) # ... # # Assume my_install() has been called like this: # my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub) # # After the cmake_parse_arguments() call the macro will have set the following # variables: # MY_INSTALL_OPTIONAL = TRUE # MY_INSTALL_FAST = FALSE (this option was not used when calling my_install() # MY_INSTALL_DESTINATION = "bin" # MY_INSTALL_RENAME = "" (was not used) # MY_INSTALL_TARGETS = "foo;bar" # MY_INSTALL_CONFIGURATIONS = "" (was not used) # MY_INSTALL_UNPARSED_ARGUMENTS = "blub" (no value expected after "OPTIONAL" # # You can the continue and process these variables. # # Keywords terminate lists of values, e.g. if directly after a one_value_keyword # another recognized keyword follows, this is interpreted as the beginning of # the new option. # E.g. my_install(TARGETS foo DESTINATION OPTIONAL) would result in # MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION would # be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor. #============================================================================= # Copyright 2010 Alexander Neundorf # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) if(__CMAKE_PARSE_ARGUMENTS_INCLUDED) return() endif() set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE) function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames) # first set all result variables to empty/FALSE foreach(arg_name ${_singleArgNames} ${_multiArgNames}) set(${prefix}_${arg_name}) endforeach(arg_name) foreach(option ${_optionNames}) set(${prefix}_${option} FALSE) endforeach(option) set(${prefix}_UNPARSED_ARGUMENTS) set(insideValues FALSE) set(currentArgName) # now iterate over all arguments and fill the result variables foreach(currentArg ${ARGN}) list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1) if(insideValues) if("${insideValues}" STREQUAL "SINGLE") set(${prefix}_${currentArgName} ${currentArg}) set(insideValues FALSE) elseif("${insideValues}" STREQUAL "MULTI") list(APPEND ${prefix}_${currentArgName} ${currentArg}) endif() else(insideValues) list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg}) endif(insideValues) else() if(NOT ${optionIndex} EQUAL -1) set(${prefix}_${currentArg} TRUE) set(insideValues FALSE) elseif(NOT ${singleArgIndex} EQUAL -1) set(currentArgName ${currentArg}) set(${prefix}_${currentArgName}) set(insideValues "SINGLE") elseif(NOT ${multiArgIndex} EQUAL -1) set(currentArgName ${currentArg}) set(${prefix}_${currentArgName}) set(insideValues "MULTI") endif() endif() endforeach(currentArg) # propagate the result variables to the caller: foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames}) set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE) endforeach(arg_name) set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE) endfunction(CMAKE_PARSE_ARGUMENTS _options _singleArgs _multiArgs) uhd-3.5.5/host/cmake/Modules/FindDocutils.cmake000066400000000000000000000016431224274632000213500ustar00rootroot00000000000000# # Copyright 2011-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## FIND_PROGRAM(RST2HTML_EXECUTABLE NAMES rst2html rst2html.py) INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Docutils DEFAULT_MSG RST2HTML_EXECUTABLE) uhd-3.5.5/host/cmake/Modules/FindGZip.cmake000066400000000000000000000016021224274632000204260ustar00rootroot00000000000000# # Copyright 2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## FIND_PROGRAM(GZIP_EXECUTABLE NAMES gzip) INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(GZip DEFAULT_MSG GZIP_EXECUTABLE) uhd-3.5.5/host/cmake/Modules/FindGit.cmake000066400000000000000000000026711224274632000203070ustar00rootroot00000000000000# The module defines the following variables: # GIT_EXECUTABLE - path to git command line client # GIT_FOUND - true if the command line client was found # Example usage: # find_package(Git) # if(GIT_FOUND) # message("git found: ${GIT_EXECUTABLE}") # endif() #============================================================================= # Copyright 2010 Kitware, Inc. # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) # Look for 'git' or 'eg' (easy git) # set(git_names git eg) # Prefer .cmd variants on Windows unless running in a Makefile # in the MSYS shell. # if(WIN32) if(NOT CMAKE_GENERATOR MATCHES "MSYS") set(git_names git.cmd git eg.cmd eg) endif() endif() find_program(GIT_EXECUTABLE NAMES ${git_names} DOC "git command line client" ) mark_as_advanced(GIT_EXECUTABLE) # Handle the QUIETLY and REQUIRED arguments and set GIT_FOUND to TRUE if # all listed variables are TRUE include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Git DEFAULT_MSG GIT_EXECUTABLE) uhd-3.5.5/host/cmake/Modules/FindUSB1.cmake000066400000000000000000000022461224274632000202740ustar00rootroot00000000000000 #find libusb 1.0 on various systems #sets LIBUSB_FOUND, LIBUSB_LIBRARIES, LIBUSB_INCLUDE_DIRS #override LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIRS to manually set INCLUDE(FindPkgConfig) PKG_CHECK_MODULES(PC_LIBUSB QUIET libusb-1.0) FIND_PATH(LIBUSB_INCLUDE_DIRS NAMES libusb.h HINTS $ENV{LIBUSB_DIR}/include ${PC_LIBUSB_INCLUDEDIR} PATHS /usr/local/include/libusb-1.0 /usr/local/include /usr/include/libusb-1.0 /usr/include /opt/local/include/libusb-1.0 #non-conforming naming convention, #backwards compatible with old script ${LIBUSB_INCLUDE_DIR} ) #standard library name for libusb-1.0 set(libusb1_library_names usb-1.0) #libusb-1.0 compatible library on freebsd if((CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") OR (CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")) list(APPEND libusb1_library_names usb) endif() FIND_LIBRARY(LIBUSB_LIBRARIES NAMES ${libusb1_library_names} HINTS $ENV{LIBUSB_DIR}/lib ${PC_LIBUSB_LIBDIR} PATHS /usr/local/lib /usr/lib /opt/local/lib ) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIRS) MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIRS LIBUSB_LIBRARIES) uhd-3.5.5/host/cmake/Modules/UHDComponent.cmake000066400000000000000000000131151224274632000212610ustar00rootroot00000000000000# # Copyright 2010-2011,2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## SET(_uhd_enabled_components "" CACHE INTERNAL "" FORCE) SET(_uhd_disabled_components "" CACHE INTERNAL "" FORCE) ######################################################################## # Register a component into the system # - name the component string name # - var the global enable variable # - enb the default enable setting # - deps a list of dependencies # - dis the default disable setting ######################################################################## MACRO(LIBUHD_REGISTER_COMPONENT name var enb deps dis) MESSAGE(STATUS "") MESSAGE(STATUS "Configuring ${name} support...") FOREACH(dep ${deps}) MESSAGE(STATUS " Dependency ${dep} = ${${dep}}") ENDFOREACH(dep) #setup the dependent option for this component INCLUDE(CMakeDependentOption) CMAKE_DEPENDENT_OPTION(${var} "enable ${name} support" ${enb} "${deps}" ${dis}) #append the component into one of the lists IF(${var}) MESSAGE(STATUS " Enabling ${name} support.") LIST(APPEND _uhd_enabled_components ${name}) ELSE(${var}) MESSAGE(STATUS " Disabling ${name} support.") LIST(APPEND _uhd_disabled_components ${name}) ENDIF(${var}) MESSAGE(STATUS " Override with -D${var}=ON/OFF") #make components lists into global variables SET(_uhd_enabled_components ${_uhd_enabled_components} CACHE INTERNAL "" FORCE) SET(_uhd_disabled_components ${_uhd_disabled_components} CACHE INTERNAL "" FORCE) ENDMACRO(LIBUHD_REGISTER_COMPONENT) ######################################################################## # Install only if appropriate for package and if component is enabled ######################################################################## FUNCTION(UHD_INSTALL) include(CMakeParseArgumentsCopy) CMAKE_PARSE_ARGUMENTS(UHD_INSTALL "" "DESTINATION;COMPONENT" "TARGETS;FILES;PROGRAMS" ${ARGN}) IF(UHD_INSTALL_FILES) SET(TO_INSTALL "${UHD_INSTALL_FILES}") ELSEIF(UHD_INSTALL_PROGRAMS) SET(TO_INSTALL "${UHD_INSTALL_PROGRAMS}") ELSEIF(UHD_INSTALL_TARGETS) SET(TO_INSTALL "${UHD_INSTALL_TARGETS}") ENDIF(UHD_INSTALL_FILES) IF(UHD_INSTALL_COMPONENT STREQUAL "headers") IF(NOT LIBUHD_PKG AND NOT UHDHOST_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT UHDHOST_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "examples") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "tests") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "utilities") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "manual") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "doxygen") IF(NOT LIBUHD_PKG AND NOT UHDHOST_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT UHDHOST_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "manpages") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "images") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG AND NOT UHDHOST_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG AND NOT UHDHOST_PKG) ELSEIF(UHD_INSTALL_COMPONENT STREQUAL "readme") IF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG AND NOT UHDHOST_PKG) INSTALL(${ARGN}) ENDIF(NOT LIBUHD_PKG AND NOT LIBUHDDEV_PKG AND NOT UHDHOST_PKG) ENDIF(UHD_INSTALL_COMPONENT STREQUAL "headers") ENDFUNCTION(UHD_INSTALL) ######################################################################## # Print the registered component summary ######################################################################## FUNCTION(UHD_PRINT_COMPONENT_SUMMARY) MESSAGE(STATUS "") MESSAGE(STATUS "######################################################") MESSAGE(STATUS "# UHD enabled components ") MESSAGE(STATUS "######################################################") FOREACH(comp ${_uhd_enabled_components}) MESSAGE(STATUS " * ${comp}") ENDFOREACH(comp) MESSAGE(STATUS "") MESSAGE(STATUS "######################################################") MESSAGE(STATUS "# UHD disabled components ") MESSAGE(STATUS "######################################################") FOREACH(comp ${_uhd_disabled_components}) MESSAGE(STATUS " * ${comp}") ENDFOREACH(comp) MESSAGE(STATUS "") ENDFUNCTION(UHD_PRINT_COMPONENT_SUMMARY) uhd-3.5.5/host/cmake/Modules/UHDPackage.cmake000066400000000000000000000204571224274632000206610ustar00rootroot00000000000000# # Copyright 2010-2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## INCLUDE(UHDVersion) #sets version information SET(UHD_RELEASE_MODE "${UHD_RELEASE_MODE}" CACHE BOOL "set UHD to release mode to build installers") ######################################################################## # Setup additional defines for OS types ######################################################################## IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") SET(LINUX TRUE) ENDIF() IF(LINUX AND EXISTS "/etc/debian_version") SET(DEBIAN TRUE) ENDIF() IF(LINUX AND EXISTS "/etc/redhat-release") SET(REDHAT TRUE) ENDIF() ######################################################################## # Set generator type for recognized systems ######################################################################## IF(CPACK_GENERATOR) #already set ELSEIF(APPLE) SET(CPACK_GENERATOR PackageMaker) ELSEIF(WIN32) SET(CPACK_GENERATOR NSIS) ELSEIF(DEBIAN) SET(CPACK_GENERATOR DEB) ELSEIF(REDHAT) SET(CPACK_GENERATOR RPM) ELSE() SET(CPACK_GENERATOR TGZ) ENDIF() ######################################################################## # Setup package file name ######################################################################## IF(DEBIAN AND LIBUHD_PKG) SET(CPACK_PACKAGE_FILE_NAME "libuhd${UHD_VERSION_MAJOR}_${TRIMMED_UHD_VERSION}_${CMAKE_SYSTEM_PROCESSOR}") ELSEIF(DEBIAN AND LIBUHDDEV_PKG) SET(CPACK_PACKAGE_FILE_NAME "libuhd-dev_${TRIMMED_UHD_VERSION}_${CMAKE_SYSTEM_PROCESSOR}") ELSEIF(DEBIAN AND UHDHOST_PKG) SET(CPACK_PACKAGE_FILE_NAME "uhd-host_${TRIMMED_UHD_VERSION}_${CMAKE_SYSTEM_PROCESSOR}") ELSE() FIND_PROGRAM(LSB_RELEASE_EXECUTABLE lsb_release) IF((DEBIAN OR REDHAT) AND LSB_RELEASE_EXECUTABLE) #extract system information by executing the commands EXECUTE_PROCESS( COMMAND ${LSB_RELEASE_EXECUTABLE} --short --id OUTPUT_VARIABLE LSB_ID OUTPUT_STRIP_TRAILING_WHITESPACE ) EXECUTE_PROCESS( COMMAND ${LSB_RELEASE_EXECUTABLE} --short --release OUTPUT_VARIABLE LSB_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE ) #set a more sensible package name for this system SET(CPACK_PACKAGE_FILE_NAME "uhd_${UHD_VERSION}_${LSB_ID}-${LSB_RELEASE}-${CMAKE_SYSTEM_PROCESSOR}") ENDIF() ENDIF(DEBIAN AND LIBUHD_PKG) IF(${CPACK_GENERATOR} STREQUAL NSIS) ENABLE_LANGUAGE(C) include(CheckTypeSize) check_type_size("void*[8]" BIT_WIDTH BUILTIN_TYPES_ONLY) SET(CPACK_PACKAGE_FILE_NAME "uhd_${UHD_VERSION}_Win${BIT_WIDTH}") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_PROJECT_NAME}") ENDIF() ######################################################################## # Setup CPack General ######################################################################## SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ettus Research - USRP Hardware Driver") SET(CPACK_PACKAGE_VENDOR "Ettus Research LLC") SET(CPACK_PACKAGE_CONTACT "Ettus Research ") SET(CPACK_PACKAGE_VERSION "${UHD_VERSION}") SET(CPACK_RESOURCE_FILE_WELCOME ${CMAKE_SOURCE_DIR}/README.txt) SET(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/AUTHORS.txt) SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) ######################################################################## # Setup CPack Source ######################################################################## SET(CPACK_SOURCE_PACKAGE_FILE_NAME "uhd-source_${UHD_VERSION}") SET(CPACK_SOURCE_IGNORE_FILES "\\\\.git*") ######################################################################## # Setup CPack Components ######################################################################## SET(CPACK_COMPONENT_LIBRARIES_GROUP "Development") SET(CPACK_COMPONENT_HEADERS_GROUP "Development") SET(CPACK_COMPONENT_UTILITIES_GROUP "Runtime") SET(CPACK_COMPONENT_EXAMPLES_GROUP "Runtime") SET(CPACK_COMPONENT_TESTS_GROUP "Runtime") SET(CPACK_COMPONENT_MANUAL_GROUP "Documentation") SET(CPACK_COMPONENT_DOXYGEN_GROUP "Documentation") SET(CPACK_COMPONENT_README_GROUP "Documentation") SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "Libraries") SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers") SET(CPACK_COMPONENT_UTILITIES_DISPLAY_NAME "Utilities") SET(CPACK_COMPONENT_EXAMPLES_DISPLAY_NAME "Examples") SET(CPACK_COMPONENT_TESTS_DISPLAY_NAME "Unit Tests") SET(CPACK_COMPONENT_MANUAL_DISPLAY_NAME "Manual") SET(CPACK_COMPONENT_DOXYGEN_DISPLAY_NAME "Doxygen") SET(CPACK_COMPONENT_README_DISPLAY_NAME "Readme") SET(CPACK_COMPONENT_IMAGES_DISPLAY_NAME "Images") SET(CPACK_COMPONENT_LIBRARIES_DESCRIPTION "Dynamic link library") SET(CPACK_COMPONENT_HEADERS_DESCRIPTION "C++ development headers") SET(CPACK_COMPONENT_UTILITIES_DESCRIPTION "Utility executables and python scripts") SET(CPACK_COMPONENT_EXAMPLES_DESCRIPTION "Example executables") SET(CPACK_COMPONENT_TESTS_DESCRIPTION "Unit test executables") SET(CPACK_COMPONENT_MANUAL_DESCRIPTION "Manual/application notes (rst and html)") SET(CPACK_COMPONENT_DOXYGEN_DESCRIPTION "API documentation (html)") SET(CPACK_COMPONENT_README_DESCRIPTION "Readme files (txt)") SET(CPACK_COMPONENT_IMAGES_DESCRIPTION "FPGA and firmware images") SET(CPACK_COMPONENT_README_REQUIRED TRUE) SET(CPACK_COMPONENT_UTILITIES_DEPENDS libraries) SET(CPACK_COMPONENT_EXAMPLES_DEPENDS libraries) SET(CPACK_COMPONENT_TESTS_DEPENDS libraries) SET(CPACK_COMPONENTS_ALL libraries headers utilities examples tests manual doxygen readme images) ######################################################################## # Setup CPack Debian ######################################################################## SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libusb-1.0-0, libboost-all-dev") SET(CPACK_DEBIAN_PACKAGE_RECOMMENDS "python, python-tk") FOREACH(filename preinst postinst prerm postrm) LIST(APPEND CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${CMAKE_BINARY_DIR}/debian/${filename}) FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/debian) CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/debian/${filename}.in ${CMAKE_BINARY_DIR}/debian/${filename} @ONLY) ENDFOREACH(filename) CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/debian/watch ${CMAKE_BINARY_DIR}/debian/watch @ONLY) ######################################################################## # Setup CPack RPM ######################################################################## SET(CPACK_RPM_PACKAGE_REQUIRES "boost-devel, libusb1") FOREACH(filename post_install post_uninstall pre_install pre_uninstall) STRING(TOUPPER ${filename} filename_upper) LIST(APPEND CPACK_RPM_${filename_upper}_SCRIPT_FILE ${CMAKE_BINARY_DIR}/redhat/${filename}) FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/redhat) CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/redhat/${filename}.in ${CMAKE_BINARY_DIR}/redhat/${filename} @ONLY) ENDFOREACH(filename) ######################################################################## # Setup CPack NSIS ######################################################################## SET(CPACK_NSIS_MODIFY_PATH ON) SET(HLKM_ENV "\\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\"") SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " WriteRegStr HKLM ${HLKM_ENV} \\\"UHD_PKG_DATA_PATH\\\" \\\"$INSTDIR\\\\share\\\\uhd\\\" ") SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS " DeleteRegValue HKLM ${HLKM_ENV} \\\"UHD_PKG_DATA_PATH\\\" ") IF(MSVC) #Install necessary MSVC runtime DLL's INCLUDE(InstallRequiredSystemLibraries) ENDIF(MSVC) ######################################################################## INCLUDE(CPack) #include after setting vars uhd-3.5.5/host/cmake/Modules/UHDPython.cmake000066400000000000000000000055751224274632000206130ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # IF(NOT DEFINED INCLUDED_UHD_PYTHON_CMAKE) SET(INCLUDED_UHD_PYTHON_CMAKE TRUE) ######################################################################## # Setup Python ######################################################################## MESSAGE(STATUS "") MESSAGE(STATUS "Configuring the python interpreter...") #this allows the user to override PYTHON_EXECUTABLE IF(PYTHON_EXECUTABLE) SET(PYTHONINTERP_FOUND TRUE) #otherwise if not set, try to automatically find it ELSE(PYTHON_EXECUTABLE) #use the built-in find script FIND_PACKAGE(PythonInterp) #and if that fails use the find program routine IF(NOT PYTHONINTERP_FOUND) FIND_PROGRAM(PYTHON_EXECUTABLE NAMES python python2.7 python2.6) IF(PYTHON_EXECUTABLE) SET(PYTHONINTERP_FOUND TRUE) ENDIF(PYTHON_EXECUTABLE) ENDIF(NOT PYTHONINTERP_FOUND) ENDIF(PYTHON_EXECUTABLE) #make the path to the executable appear in the cmake gui SET(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE} CACHE FILEPATH "python interpreter") MESSAGE(STATUS "Python interpreter: ${PYTHON_EXECUTABLE}") MESSAGE(STATUS "Override with: -DPYTHON_EXECUTABLE=") IF(NOT PYTHONINTERP_FOUND) MESSAGE(FATAL_ERROR "Error: Python interpretor required by the build system.") ENDIF(NOT PYTHONINTERP_FOUND) MACRO(PYTHON_CHECK_MODULE desc mod cmd have) MESSAGE(STATUS "") MESSAGE(STATUS "Python checking for ${desc}") EXECUTE_PROCESS( COMMAND ${PYTHON_EXECUTABLE} -c " ######################################### try: import ${mod} except: exit(1) try: assert ${cmd} except: exit(2) exit(0) #########################################" RESULT_VARIABLE ${have} ) IF(${have} EQUAL 0) MESSAGE(STATUS "Python checking for ${desc} - found") SET(${have} TRUE) ELSEIF(${have} EQUAL 1) MESSAGE(STATUS "Python checking for ${desc} - \"import ${mod}\" failed") SET(${have} FALSE) ELSEIF(${have} EQUAL 2) MESSAGE(STATUS "Python checking for ${desc} - \"assert ${cmd}\" failed") SET(${have} FALSE) ELSE() MESSAGE(STATUS "Python checking for ${desc} - unknown error") SET(${have} FALSE) ENDIF() ENDMACRO(PYTHON_CHECK_MODULE) ENDIF(NOT DEFINED INCLUDED_UHD_PYTHON_CMAKE) uhd-3.5.5/host/cmake/Modules/UHDVersion.cmake000066400000000000000000000074721224274632000207550ustar00rootroot00000000000000# # Copyright 2010-2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## INCLUDE(UHDPython) #requires python for parsing FIND_PACKAGE(Git QUIET) ######################################################################## # Setup Version Numbers # - increment major on api compatibility changes # - increment minor on feature-level changes # - increment patch on for bug fixes and docs ######################################################################## SET(UHD_VERSION_MAJOR 003) SET(UHD_VERSION_MINOR 005) SET(UHD_VERSION_PATCH 005) ######################################################################## # Set up trimmed version numbers for DLL resource files and packages ######################################################################## FUNCTION(DEPAD_NUM input_num output_num) EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${PYTHON_EXECUTABLE} -c "print int('${input_num}')" OUTPUT_VARIABLE depadded_num OUTPUT_STRIP_TRAILING_WHITESPACE ) SET(${output_num} ${depadded_num} PARENT_SCOPE) ENDFUNCTION(DEPAD_NUM) DEPAD_NUM(${UHD_VERSION_MAJOR} TRIMMED_VERSION_MAJOR) DEPAD_NUM(${UHD_VERSION_MINOR} TRIMMED_VERSION_MINOR) DEPAD_NUM(${UHD_VERSION_PATCH} TRIMMED_VERSION_PATCH) SET(TRIMMED_UHD_VERSION "${TRIMMED_VERSION_MAJOR}.${TRIMMED_VERSION_MINOR}.${TRIMMED_VERSION_PATCH}") ######################################################################## # Version information discovery through git log ######################################################################## #grab the git ref id for the current head EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${GIT_EXECUTABLE} describe --always --abbrev=8 --long OUTPUT_VARIABLE _git_describe OUTPUT_STRIP_TRAILING_WHITESPACE RESULT_VARIABLE _git_describe_result ) #only set the build info on success IF(_git_describe_result EQUAL 0) EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${PYTHON_EXECUTABLE} -c "print '${_git_describe}'.split('-')[1]" OUTPUT_VARIABLE UHD_GIT_COUNT OUTPUT_STRIP_TRAILING_WHITESPACE ) EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${PYTHON_EXECUTABLE} -c "print '${_git_describe}'.split('-')[2]" OUTPUT_VARIABLE UHD_GIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) ENDIF() IF(NOT UHD_GIT_COUNT) SET(UHD_GIT_COUNT "0") ENDIF() IF(NOT UHD_GIT_HASH) SET(UHD_GIT_HASH "unknown") ENDIF() IF(UHD_RELEASE_MODE) SET(UHD_GIT_HASH ${UHD_RELEASE_MODE}) #Ignore UHD_GIT_COUNT in UHD_VERSION if the string 'release' is in UHD_RELEASE_MODE EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMAND ${PYTHON_EXECUTABLE} -c "print 'release' in '${UHD_RELEASE_MODE}'" OUTPUT_VARIABLE TRIM_UHD_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ) ENDIF() ######################################################################## IF(TRIM_UHD_VERSION STREQUAL "True") SET(UHD_VERSION "${UHD_VERSION_MAJOR}.${UHD_VERSION_MINOR}.${UHD_VERSION_PATCH}-${UHD_GIT_HASH}") ELSE() SET(UHD_VERSION "${UHD_VERSION_MAJOR}.${UHD_VERSION_MINOR}.${UHD_VERSION_PATCH}-${UHD_GIT_COUNT}-${UHD_GIT_HASH}") ENDIF() uhd-3.5.5/host/cmake/Toolchains/000077500000000000000000000000001224274632000164465ustar00rootroot00000000000000uhd-3.5.5/host/cmake/Toolchains/arm_cortex_a8_cross.cmake000066400000000000000000000021031224274632000234100ustar00rootroot00000000000000######################################################################## # Toolchain file for cross building for ARM Cortex A8 w/ NEON # Usage: cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchains/arm_cortex_a8_\ cross.cmake -DENABLE_E100=ON -DENABLE_USRP_E_UTILS=TRUE -DENABLE_ORC=ON \ -DCAMKE_INSTALL_PREFIX=./install ../ ######################################################################## set( CMAKE_SYSTEM_NAME Linux ) set( CMAKE_CXX_COMPILER arm-angstrom-linux-gnueabi-g++ ) set( CMAKE_C_COMPILER arm-angstrom-linux-gnueabi-gcc ) set( CMAKE_CXX_FLAGS "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp" CACHE STRING "" FORCE ) set( CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE ) #same flags for C sources set( CMAKE_FIND_ROOT_PATH /usr/local/angstrom/arm/ /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi ) #set( BOOST_ROOT ${CMAKE_FIND_ROOT_PATH} ) #set( BOOST_INCLUDEDIR ${CMAKE_FIND_ROOT_PATH}/usr/include/boost ) #set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY ) set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) uhd-3.5.5/host/cmake/Toolchains/arm_cortex_a8_native.cmake000066400000000000000000000010171224274632000235500ustar00rootroot00000000000000######################################################################## # Toolchain file for building native on a ARM Cortex A8 w/ NEON # Usage: cmake -DCMAKE_TOOLCHAIN_FILE= ######################################################################## set(CMAKE_CXX_COMPILER g++) set(CMAKE_C_COMPILER gcc) set(CMAKE_CXX_FLAGS "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS} CACHE STRING "" FORCE) #same flags for C sources uhd-3.5.5/host/cmake/cmake_uninstall.cmake.in000066400000000000000000000017751224274632000211350ustar00rootroot00000000000000# http://www.vtk.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) STRING(REGEX REPLACE "\n" ";" files "${files}") FOREACH(file ${files}) MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") IF(EXISTS "$ENV{DESTDIR}${file}") EXEC_PROGRAM( "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval ) IF(NOT "${rm_retval}" STREQUAL 0) MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") ENDIF(NOT "${rm_retval}" STREQUAL 0) ELSE(EXISTS "$ENV{DESTDIR}${file}") MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") ENDIF(EXISTS "$ENV{DESTDIR}${file}") ENDFOREACH(file) uhd-3.5.5/host/cmake/debian/000077500000000000000000000000001224274632000155655ustar00rootroot00000000000000uhd-3.5.5/host/cmake/debian/postinst.in000077500000000000000000000015711224274632000200070ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011,2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # if [ "$1" = "configure" ]; then cp @CMAKE_INSTALL_PREFIX@/share/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/uhd-usrp.rules udevadm control --reload-rules udevadm trigger ldconfig fi uhd-3.5.5/host/cmake/debian/postrm.in000077500000000000000000000013341224274632000174450ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # if [ "$1" = "remove" ]; then ldconfig fi uhd-3.5.5/host/cmake/debian/preinst.in000077500000000000000000000013531224274632000176060ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # if [ "$1" = "install" ]; then echo 'Installing UHD.' fi uhd-3.5.5/host/cmake/debian/prerm.in000077500000000000000000000014671224274632000172550ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # if [ "$1" = "remove" ]; then echo 'Uninstalling UHD.' rm /etc/udev/rules.d/uhd-usrp.rules udevadm control --reload-rules fi uhd-3.5.5/host/cmake/debian/watch000066400000000000000000000002101224274632000166070ustar00rootroot00000000000000version=3 opts=uversionmangle=s/([^0-9]|)0*(\d)/$1$2/g;s/_/./g \ https://github.com/EttusResearch/uhd/tags .*/release_([\d_]+)\.tar\..* uhd-3.5.5/host/cmake/msvc/000077500000000000000000000000001224274632000153135ustar00rootroot00000000000000uhd-3.5.5/host/cmake/msvc/inttypes.h000066400000000000000000000173021224274632000173460ustar00rootroot00000000000000// ISO C9x compliant inttypes.h for Microsoft Visual Studio // Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 // // Copyright (c) 2006 Alexander Chemeris // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // 3. The name of the author may be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // /////////////////////////////////////////////////////////////////////////////// #ifndef _MSC_VER // [ #error "Use this header only with Microsoft Visual C++ compilers!" #endif // _MSC_VER ] #ifndef _MSC_INTTYPES_H_ // [ #define _MSC_INTTYPES_H_ #if _MSC_VER > 1000 #pragma once #endif #include // 7.8 Format conversion of integer types typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; // 7.8.1 Macros for format specifiers // The fprintf macros for signed integers are: #define PRId8 "d" #define PRIi8 "i" #define PRIdLEAST8 "d" #define PRIiLEAST8 "i" #define PRIdFAST8 "d" #define PRIiFAST8 "i" #define PRId16 "hd" #define PRIi16 "hi" #define PRIdLEAST16 "hd" #define PRIiLEAST16 "hi" #define PRIdFAST16 "hd" #define PRIiFAST16 "hi" #define PRId32 "I32d" #define PRIi32 "I32i" #define PRIdLEAST32 "I32d" #define PRIiLEAST32 "I32i" #define PRIdFAST32 "I32d" #define PRIiFAST32 "I32i" #define PRId64 "I64d" #define PRIi64 "I64i" #define PRIdLEAST64 "I64d" #define PRIiLEAST64 "I64i" #define PRIdFAST64 "I64d" #define PRIiFAST64 "I64i" #define PRIdMAX "I64d" #define PRIiMAX "I64i" #define PRIdPTR "Id" #define PRIiPTR "Ii" // The fprintf macros for unsigned integers are: #define PRIo8 "o" #define PRIu8 "u" #define PRIx8 "x" #define PRIX8 "X" #define PRIoLEAST8 "o" #define PRIuLEAST8 "u" #define PRIxLEAST8 "x" #define PRIXLEAST8 "X" #define PRIoFAST8 "o" #define PRIuFAST8 "u" #define PRIxFAST8 "x" #define PRIXFAST8 "X" #define PRIo16 "ho" #define PRIu16 "hu" #define PRIx16 "hx" #define PRIX16 "hX" #define PRIoLEAST16 "ho" #define PRIuLEAST16 "hu" #define PRIxLEAST16 "hx" #define PRIXLEAST16 "hX" #define PRIoFAST16 "ho" #define PRIuFAST16 "hu" #define PRIxFAST16 "hx" #define PRIXFAST16 "hX" #define PRIo32 "I32o" #define PRIu32 "I32u" #define PRIx32 "I32x" #define PRIX32 "I32X" #define PRIoLEAST32 "I32o" #define PRIuLEAST32 "I32u" #define PRIxLEAST32 "I32x" #define PRIXLEAST32 "I32X" #define PRIoFAST32 "I32o" #define PRIuFAST32 "I32u" #define PRIxFAST32 "I32x" #define PRIXFAST32 "I32X" #define PRIo64 "I64o" #define PRIu64 "I64u" #define PRIx64 "I64x" #define PRIX64 "I64X" #define PRIoLEAST64 "I64o" #define PRIuLEAST64 "I64u" #define PRIxLEAST64 "I64x" #define PRIXLEAST64 "I64X" #define PRIoFAST64 "I64o" #define PRIuFAST64 "I64u" #define PRIxFAST64 "I64x" #define PRIXFAST64 "I64X" #define PRIoMAX "I64o" #define PRIuMAX "I64u" #define PRIxMAX "I64x" #define PRIXMAX "I64X" #define PRIoPTR "Io" #define PRIuPTR "Iu" #define PRIxPTR "Ix" #define PRIXPTR "IX" // The fscanf macros for signed integers are: #define SCNd8 "d" #define SCNi8 "i" #define SCNdLEAST8 "d" #define SCNiLEAST8 "i" #define SCNdFAST8 "d" #define SCNiFAST8 "i" #define SCNd16 "hd" #define SCNi16 "hi" #define SCNdLEAST16 "hd" #define SCNiLEAST16 "hi" #define SCNdFAST16 "hd" #define SCNiFAST16 "hi" #define SCNd32 "ld" #define SCNi32 "li" #define SCNdLEAST32 "ld" #define SCNiLEAST32 "li" #define SCNdFAST32 "ld" #define SCNiFAST32 "li" #define SCNd64 "I64d" #define SCNi64 "I64i" #define SCNdLEAST64 "I64d" #define SCNiLEAST64 "I64i" #define SCNdFAST64 "I64d" #define SCNiFAST64 "I64i" #define SCNdMAX "I64d" #define SCNiMAX "I64i" #ifdef _WIN64 // [ # define SCNdPTR "I64d" # define SCNiPTR "I64i" #else // _WIN64 ][ # define SCNdPTR "ld" # define SCNiPTR "li" #endif // _WIN64 ] // The fscanf macros for unsigned integers are: #define SCNo8 "o" #define SCNu8 "u" #define SCNx8 "x" #define SCNX8 "X" #define SCNoLEAST8 "o" #define SCNuLEAST8 "u" #define SCNxLEAST8 "x" #define SCNXLEAST8 "X" #define SCNoFAST8 "o" #define SCNuFAST8 "u" #define SCNxFAST8 "x" #define SCNXFAST8 "X" #define SCNo16 "ho" #define SCNu16 "hu" #define SCNx16 "hx" #define SCNX16 "hX" #define SCNoLEAST16 "ho" #define SCNuLEAST16 "hu" #define SCNxLEAST16 "hx" #define SCNXLEAST16 "hX" #define SCNoFAST16 "ho" #define SCNuFAST16 "hu" #define SCNxFAST16 "hx" #define SCNXFAST16 "hX" #define SCNo32 "lo" #define SCNu32 "lu" #define SCNx32 "lx" #define SCNX32 "lX" #define SCNoLEAST32 "lo" #define SCNuLEAST32 "lu" #define SCNxLEAST32 "lx" #define SCNXLEAST32 "lX" #define SCNoFAST32 "lo" #define SCNuFAST32 "lu" #define SCNxFAST32 "lx" #define SCNXFAST32 "lX" #define SCNo64 "I64o" #define SCNu64 "I64u" #define SCNx64 "I64x" #define SCNX64 "I64X" #define SCNoLEAST64 "I64o" #define SCNuLEAST64 "I64u" #define SCNxLEAST64 "I64x" #define SCNXLEAST64 "I64X" #define SCNoFAST64 "I64o" #define SCNuFAST64 "I64u" #define SCNxFAST64 "I64x" #define SCNXFAST64 "I64X" #define SCNoMAX "I64o" #define SCNuMAX "I64u" #define SCNxMAX "I64x" #define SCNXMAX "I64X" #ifdef _WIN64 // [ # define SCNoPTR "I64o" # define SCNuPTR "I64u" # define SCNxPTR "I64x" # define SCNXPTR "I64X" #else // _WIN64 ][ # define SCNoPTR "lo" # define SCNuPTR "lu" # define SCNxPTR "lx" # define SCNXPTR "lX" #endif // _WIN64 ] // 7.8.2 Functions for greatest-width integer types // 7.8.2.1 The imaxabs function #define imaxabs _abs64 // 7.8.2.2 The imaxdiv function // This is modified version of div() function from Microsoft's div.c found // in %MSVC.NET%\crt\src\div.c #ifdef STATIC_IMAXDIV // [ static #else // STATIC_IMAXDIV ][ _inline #endif // STATIC_IMAXDIV ] imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) { imaxdiv_t result; result.quot = numer / denom; result.rem = numer % denom; if (numer < 0 && result.rem > 0) { // did division wrong; must fix up ++result.quot; result.rem -= denom; } return result; } // 7.8.2.3 The strtoimax and strtoumax functions #define strtoimax _strtoi64 #define strtoumax _strtoui64 // 7.8.2.4 The wcstoimax and wcstoumax functions #define wcstoimax _wcstoi64 #define wcstoumax _wcstoui64 #endif // _MSC_INTTYPES_H_ ] uhd-3.5.5/host/cmake/msvc/stdint.h000066400000000000000000000156671224274632000170100ustar00rootroot00000000000000// ISO C9x compliant stdint.h for Microsoft Visual Studio // Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 // // Copyright (c) 2006 Alexander Chemeris // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, // this list of conditions and the following disclaimer. // // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // // 3. The name of the author may be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // /////////////////////////////////////////////////////////////////////////////// #ifndef _MSC_VER // [ #error "Use this header only with Microsoft Visual C++ compilers!" #endif // _MSC_VER ] #ifndef _MSC_STDINT_H_ // [ #define _MSC_STDINT_H_ #if _MSC_VER > 1000 #pragma once #endif #include // For Visual Studio 6 in C++ mode wrap include with 'extern "C++" {}' // or compiler give many errors like this: // error C2733: second C linkage of overloaded function 'wmemchr' not allowed #if (_MSC_VER < 1300) && defined(__cplusplus) extern "C++" { #endif # include #if (_MSC_VER < 1300) && defined(__cplusplus) } #endif // 7.18.1 Integer types // 7.18.1.1 Exact-width integer types typedef __int8 int8_t; typedef __int16 int16_t; typedef __int32 int32_t; typedef __int64 int64_t; typedef unsigned __int8 uint8_t; typedef unsigned __int16 uint16_t; typedef unsigned __int32 uint32_t; typedef unsigned __int64 uint64_t; // 7.18.1.2 Minimum-width integer types typedef int8_t int_least8_t; typedef int16_t int_least16_t; typedef int32_t int_least32_t; typedef int64_t int_least64_t; typedef uint8_t uint_least8_t; typedef uint16_t uint_least16_t; typedef uint32_t uint_least32_t; typedef uint64_t uint_least64_t; // 7.18.1.3 Fastest minimum-width integer types typedef int8_t int_fast8_t; typedef int16_t int_fast16_t; typedef int32_t int_fast32_t; typedef int64_t int_fast64_t; typedef uint8_t uint_fast8_t; typedef uint16_t uint_fast16_t; typedef uint32_t uint_fast32_t; typedef uint64_t uint_fast64_t; // 7.18.1.4 Integer types capable of holding object pointers #ifdef _WIN64 // [ typedef __int64 intptr_t; typedef unsigned __int64 uintptr_t; #else // _WIN64 ][ typedef int intptr_t; typedef unsigned int uintptr_t; #endif // _WIN64 ] // 7.18.1.5 Greatest-width integer types typedef int64_t intmax_t; typedef uint64_t uintmax_t; // 7.18.2 Limits of specified-width integer types #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 // 7.18.2.1 Limits of exact-width integer types #define INT8_MIN ((int8_t)_I8_MIN) #define INT8_MAX _I8_MAX #define INT16_MIN ((int16_t)_I16_MIN) #define INT16_MAX _I16_MAX #define INT32_MIN ((int32_t)_I32_MIN) #define INT32_MAX _I32_MAX #define INT64_MIN ((int64_t)_I64_MIN) #define INT64_MAX _I64_MAX #define UINT8_MAX _UI8_MAX #define UINT16_MAX _UI16_MAX #define UINT32_MAX _UI32_MAX #define UINT64_MAX _UI64_MAX // 7.18.2.2 Limits of minimum-width integer types #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST8_MAX INT8_MAX #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST16_MAX INT16_MAX #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST32_MAX INT32_MAX #define INT_LEAST64_MIN INT64_MIN #define INT_LEAST64_MAX INT64_MAX #define UINT_LEAST8_MAX UINT8_MAX #define UINT_LEAST16_MAX UINT16_MAX #define UINT_LEAST32_MAX UINT32_MAX #define UINT_LEAST64_MAX UINT64_MAX // 7.18.2.3 Limits of fastest minimum-width integer types #define INT_FAST8_MIN INT8_MIN #define INT_FAST8_MAX INT8_MAX #define INT_FAST16_MIN INT16_MIN #define INT_FAST16_MAX INT16_MAX #define INT_FAST32_MIN INT32_MIN #define INT_FAST32_MAX INT32_MAX #define INT_FAST64_MIN INT64_MIN #define INT_FAST64_MAX INT64_MAX #define UINT_FAST8_MAX UINT8_MAX #define UINT_FAST16_MAX UINT16_MAX #define UINT_FAST32_MAX UINT32_MAX #define UINT_FAST64_MAX UINT64_MAX // 7.18.2.4 Limits of integer types capable of holding object pointers #ifdef _WIN64 // [ # define INTPTR_MIN INT64_MIN # define INTPTR_MAX INT64_MAX # define UINTPTR_MAX UINT64_MAX #else // _WIN64 ][ # define INTPTR_MIN INT32_MIN # define INTPTR_MAX INT32_MAX # define UINTPTR_MAX UINT32_MAX #endif // _WIN64 ] // 7.18.2.5 Limits of greatest-width integer types #define INTMAX_MIN INT64_MIN #define INTMAX_MAX INT64_MAX #define UINTMAX_MAX UINT64_MAX // 7.18.3 Limits of other integer types #ifdef _WIN64 // [ # define PTRDIFF_MIN _I64_MIN # define PTRDIFF_MAX _I64_MAX #else // _WIN64 ][ # define PTRDIFF_MIN _I32_MIN # define PTRDIFF_MAX _I32_MAX #endif // _WIN64 ] #define SIG_ATOMIC_MIN INT_MIN #define SIG_ATOMIC_MAX INT_MAX #ifndef SIZE_MAX // [ # ifdef _WIN64 // [ # define SIZE_MAX _UI64_MAX # else // _WIN64 ][ # define SIZE_MAX _UI32_MAX # endif // _WIN64 ] #endif // SIZE_MAX ] // WCHAR_MIN and WCHAR_MAX are also defined in #ifndef WCHAR_MIN // [ # define WCHAR_MIN 0 #endif // WCHAR_MIN ] #ifndef WCHAR_MAX // [ # define WCHAR_MAX _UI16_MAX #endif // WCHAR_MAX ] #define WINT_MIN 0 #define WINT_MAX _UI16_MAX #endif // __STDC_LIMIT_MACROS ] // 7.18.4 Limits of other integer types #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 // 7.18.4.1 Macros for minimum-width integer constants #define INT8_C(val) val##i8 #define INT16_C(val) val##i16 #define INT32_C(val) val##i32 #define INT64_C(val) val##i64 #define UINT8_C(val) val##ui8 #define UINT16_C(val) val##ui16 #define UINT32_C(val) val##ui32 #define UINT64_C(val) val##ui64 // 7.18.4.2 Macros for greatest-width integer constants #ifndef INTMAX_C #define INTMAX_C INT64_C #endif #ifndef UINTMAX_C #define UINTMAX_C UINT64_C #endif #endif // __STDC_CONSTANT_MACROS ] #endif // _MSC_STDINT_H_ ] uhd-3.5.5/host/cmake/redhat/000077500000000000000000000000001224274632000156125ustar00rootroot00000000000000uhd-3.5.5/host/cmake/redhat/post_install.in000077500000000000000000000015061224274632000206620ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011,2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # cp @CMAKE_INSTALL_PREFIX@/share/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/uhd-usrp.rules udevadm control --reload-rules udevadm trigger ldconfig uhd-3.5.5/host/cmake/redhat/post_uninstall.in000077500000000000000000000012701224274632000212230ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ldconfig uhd-3.5.5/host/cmake/redhat/pre_install.in000077500000000000000000000013061224274632000204610ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # echo 'Installing UHD.' uhd-3.5.5/host/cmake/redhat/pre_uninstall.in000077500000000000000000000014131224274632000210230ustar00rootroot00000000000000#!/bin/sh # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # echo 'Uninstalling UHD.' rm /etc/udev/rules.d/uhd-usrp.rules udevadm control --reload-rules uhd-3.5.5/host/docs/000077500000000000000000000000001224274632000142135ustar00rootroot00000000000000uhd-3.5.5/host/docs/CMakeLists.txt000066400000000000000000000130411224274632000167520ustar00rootroot00000000000000# # Copyright 2010-2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # List of manual sources ######################################################################## SET(manual_sources index.rst identification.rst build.rst calibration.rst coding.rst dboards.rst gpsdo.rst general.rst images.rst stream.rst sync.rst transport.rst usrp1.rst usrp2.rst usrp_b100.rst usrp_e1x0.rst ) ######################################################################## # Setup Manual ######################################################################## MESSAGE(STATUS "") FIND_PACKAGE(Docutils) LIBUHD_REGISTER_COMPONENT("Manual" ENABLE_MANUAL ON "DOCUTILS_FOUND" OFF) IF(UHDHOST_PKG) SET(PKG_DOC_DIR share/doc/uhd-host) ENDIF(UHDHOST_PKG) IF(ENABLE_MANUAL) #setup rst2html options SET(stylesheet ${CMAKE_CURRENT_SOURCE_DIR}/style.css) SET(rst2html_options --stylesheet=${stylesheet} --no-toc-backlinks --date --time ) #create generation rule for each source FOREACH(rstfile ${manual_sources}) #set input and output file names SET(rstfile ${CMAKE_CURRENT_SOURCE_DIR}/${rstfile}) GET_FILENAME_COMPONENT(rstfile_we ${rstfile} NAME_WE) SET(htmlfile ${CMAKE_CURRENT_BINARY_DIR}/${rstfile_we}.html) #make the html file depend on the rst file ADD_CUSTOM_COMMAND( OUTPUT ${htmlfile} DEPENDS ${rstfile} ${stylesheet} COMMAND ${RST2HTML_EXECUTABLE} ${rstfile} ${htmlfile} ${rst2html_options} COMMENT "Generating ${htmlfile}" ) #make the manual target depend on the html file LIST(APPEND manual_html_files ${htmlfile}) UHD_INSTALL(FILES ${htmlfile} DESTINATION ${PKG_DOC_DIR}/manual/html COMPONENT manual) ENDFOREACH(rstfile ${manual_sources}) #make the html manual a build-time dependency ADD_CUSTOM_TARGET(manual_html ALL DEPENDS ${manual_html_files}) UHD_INSTALL(FILES ${manual_sources} DESTINATION ${PKG_DOC_DIR}/manual/rst COMPONENT manual) ENDIF(ENABLE_MANUAL) ######################################################################## # Setup Doxygen ######################################################################## MESSAGE(STATUS "") FIND_PACKAGE(Doxygen) LIBUHD_REGISTER_COMPONENT("Doxygen" ENABLE_DOXYGEN ON "DOXYGEN_FOUND" OFF) IF(LIBUHDDEV_PKG) SET(PKG_DOC_DIR share/doc/libuhd-dev) ENDIF(LIBUHDDEV_PKG) IF(ENABLE_DOXYGEN) #generate the doxygen configuration file SET(CMAKE_CURRENT_BINARY_DIR_DOXYGEN ${CMAKE_CURRENT_BINARY_DIR}/doxygen) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY) #make doxygen directory depend on the header files FILE(GLOB_RECURSE header_files ${CMAKE_SOURCE_DIR}/include/*.hpp) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN} DEPENDS ${header_files} COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile COMMENT "Generating documentation with doxygen" ) #make the doxygen generation a built-time dependency ADD_CUSTOM_TARGET(doxygen_docs ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN}) UHD_INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN} DESTINATION ${PKG_DOC_DIR} COMPONENT doxygen) ENDIF(ENABLE_DOXYGEN) ######################################################################## # List of man page sources ######################################################################## SET(man_page_sources uhd_cal_rx_iq_balance.1 uhd_cal_tx_dc_offset.1 uhd_cal_tx_iq_balance.1 uhd_find_devices.1 uhd_images_downloader.1 uhd_usrp_probe.1 usrp_n2xx_simple_net_burner.1 usrp2_card_burner.1 ) ######################################################################## # Setup man pages ######################################################################## MESSAGE(STATUS "") FIND_PACKAGE(GZip) LIBUHD_REGISTER_COMPONENT("Man Pages" ENABLE_MAN_PAGES ON "GZIP_FOUND;LINUX" OFF) IF(ENABLE_MAN_PAGES) #Generate man pages FOREACH(manfile ${man_page_sources}) #make the gzip file depend on the text file STRING(REPLACE ".1" "" PROGRAM_NAME "${manfile}") SET(gzfile "${CMAKE_CURRENT_BINARY_DIR}/${manfile}.gz") SET(manfile "${CMAKE_CURRENT_SOURCE_DIR}/${manfile}") ADD_CUSTOM_COMMAND( OUTPUT ${gzfile} DEPENDS ${manfile} COMMAND ${GZIP_EXECUTABLE} -9 -cf ${manfile} > ${gzfile} COMMENT "Generating ${PROGRAM_NAME} man page" ) #make the man page target depend on the gz file LIST(APPEND man_page_gz_files ${gzfile}) UHD_INSTALL(FILES ${gzfile} DESTINATION ${PKG_MAN_DIR} COMPONENT manpages) ENDFOREACH(manfile ${man_page_sources}) #make the man pages a build-time dependency ADD_CUSTOM_TARGET(man_page_gzips ALL DEPENDS ${man_page_gz_files}) ENDIF(ENABLE_MAN_PAGES) uhd-3.5.5/host/docs/Doxyfile.in000066400000000000000000001737001224274632000163360ustar00rootroot00000000000000# Doxyfile 1.6.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = @CPACK_PACKAGE_NAME@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @CPACK_PACKAGE_VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR_DOXYGEN@ # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = @CMAKE_SOURCE_DIR@/include # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.hpp # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) # there is already a search function so this one should typically # be disabled. SEARCHENGINE = YES #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES uhd-3.5.5/host/docs/build.rst000066400000000000000000000166131224274632000160530ustar00rootroot00000000000000======================================================================== UHD - Build Guide ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Build Dependencies ------------------------------------------------------------------------ **Linux Notes:** This is dependent on the distribution you are using, but most, if not all, of the dependencies should be available in the package repositories for your package manager. **Mac OS X Notes:** Install the "Xcode Developer Tools" to get the build tools (GCC and Make). Use MacPorts to get the Boost and Cheetah dependencies. Other dependencies can be downloaded as DMG installers from the web. **Windows Notes:** The dependencies can be acquired through installable EXE files. Usually, the Windows installer can be found on the project's website. Some projects do not host Windows installers, and if this is the case, follow the auxiliary download URL for the Windows installer (below). ^^^^^^^^^^^^^^^^ Git ^^^^^^^^^^^^^^^^ Required to check out the repository. On Windows, install Cygwin with Git support to checkout the repository or install msysGit from http://code.google.com/p/msysgit/downloads/list. ^^^^^^^^^^^^^^^^ C++ Compiler ^^^^^^^^^^^^^^^^ The following compilers are known to work: * GCC * Clang * MSVC ^^^^^^^^^^^^^^^^ CMake ^^^^^^^^^^^^^^^^ * **Purpose:** generates project build files * **Minimum Version:** 2.6 * **Usage:** build time (required) * **Download URL:** http://www.cmake.org/cmake/resources/software.html ^^^^^^^^^^^^^^^^ Boost ^^^^^^^^^^^^^^^^ * **Purpose:** C++ library * **Minimum Version:** 1.36 (Linux), 1.40 (Windows) * **Usage:** build time + runtime (required) * **Download URL:** http://www.boost.org/users/download/ * **Download URL (Windows installer):** http://www.boostpro.com/download ^^^^^^^^^^^^^^^^ LibUSB ^^^^^^^^^^^^^^^^ * **Purpose:** USB-based hardware support * **Minimum Version:** 1.0 * **Usage:** build time + runtime (optional) * **Download URL:** http://sourceforge.net/projects/libusb/files/libusb-1.0/ * **Download URL (Windows):** https://github.com/libusbx/libusbx ^^^^^^^^^^^^^^^^ Python ^^^^^^^^^^^^^^^^ * **Purpose:** used by Cheetah and utility scripts * **Minimum Version:** 2.6 * **Usage:** build time + runtime utility scripts (required) * **Download URL:** http://www.python.org/download/ ^^^^^^^^^^^^^^^^ Cheetah ^^^^^^^^^^^^^^^^ * **Purpose:** source code generation * **Minimum Version:** 2.0 * **Usage:** build time (required) * **Download URL:** http://www.cheetahtemplate.org/download.html * **Download URL (Windows installer):** http://feisley.com/python/cheetah/ **Alternative method:** Install **setuptools**, and use the **easy_install** command to install Cheetah. http://pypi.python.org/pypi/setuptools ^^^^^^^^^^^^^^^^ Doxygen ^^^^^^^^^^^^^^^^ * **Purpose:** generates HTML API documentation * **Usage:** build time (optional) * **Download URL:** http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc ^^^^^^^^^^^^^^^^ Docutils ^^^^^^^^^^^^^^^^ * **Purpose:** generates HTML user manual * **Usage:** build time (optional) * **Download URL:** http://docutils.sourceforge.net/ **Alternate method:** Install **setuptools**, and use the **easy_install** command to install Docutils. http://pypi.python.org/pypi/setuptools ------------------------------------------------------------------------ Build Instructions (Unix) ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Generate Makefiles with CMake ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: cd /host mkdir build cd build cmake ../ Additionally, configuration variables can be passed into CMake via the command line. The following common-use configuration variables are listed below: * For a custom install prefix: **-DCMAKE_INSTALL_PREFIX=** * To install libs into lib64: **cmake -DLIB_SUFFIX=64** Example usage: :: cmake -DCMAKE_INSTALL_PREFIX=/opt/uhd ../ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Build and install ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: make make test sudo make install ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Setup the library path (Linux) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Make sure that **libuhd.so** is in your **LD_LIBRARY_PATH**, or add it to **/etc/ld.so.conf** and make sure to run: :: sudo ldconfig ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Setup the library path (Mac OS X) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Make sure that **libuhd.dylib** is in your **DYLD_LIBRARY_PATH**. ------------------------------------------------------------------------ Build Instructions (Windows) ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Generate the project with CMake ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Open the CMake GUI. * Set the path to the source code: **/host**. * Set the path to the build directory: **/host/build**. * Make sure that the paths do not contain spaces. * Click "Configure" and select "Microsoft Visual Studio 10". * Set the build variables and click "Configure" again. * Click "Generate", and a project file will be created in the build directory. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ LibUSB notes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ On Windows, CMake does not have the advantage of **pkg-config**, so we must manually tell CMake how to locate the LibUSB header and lib. * From the CMake GUI, select "Advanced View". * Set **LIBUSB_INCLUDE_DIRS** to the directory with **libusb.h**. * Set **LIBUSB_LIBRARIES** to the full path for **libusb-1.0.lib**. * Recommend the static **libusb-1.0.lib** to simplify runtime dependencies. * Check the box to enable USB support, click "Configure" and "Generate". **Note:** On Windows, LibUSBx is required to use most USB3 controllers. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Build the project in MSVC ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Open the generated project file in MSVC. * Change the build type from "Debug" to "Release". * Select the "Build All" target, right-click, and choose "Build". * Select the install target, right-click, and choose "Build". **Note:** You may not have permission to build the install target. You need to be an administrator or to run MSVC as administrator. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Build the project in MSVC (command line) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Open the Visual Studio Command Prompt Shorcut: :: cd \host\build DevEnv uhd.sln /build Release /project ALL_BUILD DevEnv uhd.sln /build Release /project INSTALL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Setup the PATH environment variable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Add the UHD bin path to **%PATH%** (usually **C:\\Program Files\\UHD\\bin**) **Note:** The default interface for editing environment variable paths in Windows is very poor. We recommend using "Rapid Environment Editor" (http://www.rapidee.com) over the default editor. ------------------------------------------------------------------------ Post-Install Tasks ------------------------------------------------------------------------ For USB-based devices, see the `USB Transport Application Notes <./transport.html#usb-transport-libusb>`_ for platform-specific post-installation tasks. uhd-3.5.5/host/docs/calibration.rst000066400000000000000000000056521224274632000172440ustar00rootroot00000000000000======================================================================== UHD - Calibration Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Self-calibration ------------------------------------------------------------------------ UHD comes with several self-calibration utilities for minimizing IQ imbalance and DC offset. These utilities perform calibration sweeps using transmit leakage into the receive path (special equipment is not required). The results from a calibration are written to a CSV file in the user's home directory. UHD will automatically apply corrections at runtime when the user re-tunes the daughterboard LO. Calibration results are specific to an individual RF board. **Note:** When a calibration table is present, and the user wishes to override the calibration settings through the API: the user should re-apply the desired setting every time the LO is re-tuned. UHD comes with the following calibration utilities: * **uhd_cal_rx_iq_balance:** - mimimizes RX IQ imbalance vs. LO frequency * **uhd_cal_tx_dc_offset:** - mimimizes TX DC offset vs. LO frequency * **uhd_cal_tx_iq_balance:** - mimimizes TX IQ imbalance vs. LO frequency The following RF frontends are supported by the self-calibration utilities: * WBX transceiver board * SBX transceiver board * RFX transceiver board ******************************************** Calibration Utilities ******************************************** UHD installs the calibration utilities into **/bin**. **Disconnect** any external hardware from the RF antenna ports, and run the following from the command line. Each utility will take several minutes to complete. :: uhd_cal_rx_iq_balance --verbose --args= uhd_cal_tx_iq_balance --verbose --args= uhd_cal_tx_dc_offset --verbose --args= See the output given by --help for more advanced options, such as: manually choosing the frequency range and step size for the sweeps. **Note:** Your daughterboard needs a serial number to run a calibration utility. Some older daughterboards may not have a serial number. If this is the case, run the following command to burn a serial number into the daughterboard's EEPROM: :: /share/uhd/utils/usrp_burn_db_eeprom --ser= --args= ******************************************** Calibration Data ******************************************** Calibration files are stored in the user's home/application directory. They can easily be moved from machine to another by copying the "cal" directory. Re-running a calibration utility will replace the existing calibration file. The old calibration file will be renamed so it may be recovered by the user. * **Linux:** ${HOME}/.uhd/cal/ * **Windows:** %APPDATA%\\.uhd\\cal\\ uhd-3.5.5/host/docs/coding.rst000066400000000000000000000024531224274632000162140ustar00rootroot00000000000000======================================================================== UHD - Coding to the API ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Various API interfaces ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Low-Level: The device API ^^^^^^^^^^^^^^^^^^^^^^^^^^^ A device is an abstraction for hardware that is connected to the host system. For a USRP, this means that the motherboard and everything on it would be considered to be a "device". The device API provides ways to: * Discover devices that are physically connected to the host system. * Create a device object for a particular device identified by address. * Register a device driver into the discovery and factory sub-system. * Streaming samples with metadata into and out of the device. * Set and get properties on the device object. See the documentation in *device.hpp* for reference. ^^^^^^^^^^^^^^^^^^^^^^^^^^^ High-Level: The Multi-USRP ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Multi-USRP class provides a fat interface to a single USRP with one or more channels, or multiple USRPs in a homogeneous setup. See the documentation in *usrp/multi_usrp.hpp* for reference. uhd-3.5.5/host/docs/dboards.rst000066400000000000000000000262431224274632000163720ustar00rootroot00000000000000======================================================================== UHD - Daughterboard Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Daughterboard Properties ------------------------------------------------------------------------ The following contains interesting notes about each daughterboard. Eventually, this page will be expanded to list out the full properties of each board as well. ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Basic RX and LFRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Basic RX and LFRX boards have 4 frontends: * **Frontend A:** real signal on antenna RXA * **Frontend B:** real signal on antenna RXB * **Frontend AB:** quadrature frontend using both antennas (IQ) * **Frontend BA:** quadrature frontend using both antennas (QI) The boards have no tunable elements or programmable gains. Through the magic of aliasing, you can down-convert signals greater than the Nyquist rate of the ADC. BasicRX Bandwidth (Hz): * **For Real-Mode (A or B frontend)**: 250M * **For Complex (AB or BA frontend)**: 500M LFRX Bandwidth (Hz): * **For Real-Mode (A or B frontend)**: 33M * **For Complex (AB or BA frontend)**: 66M ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Basic TX and LFTX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Basic TX and LFTX boards have 4 frontends: * **Frontend A:** real signal on antenna TXA * **Frontend B:** real signal on antenna TXB * **Frontend AB:** quadrature frontend using both antennas (IQ) * **Frontend BA:** quadrature frontend using both antennas (QI) The boards have no tunable elements or programmable gains. Through the magic of aliasing, you can up-convert signals greater than the Nyquist rate of the DAC. BasicTX Bandwidth (Hz): 250M * **For Real-Mode (A or B frontend**): 250M * **For Complex (AB or BA frontend)**: 500M LFTX Bandwidth (Hz): 33M * **For Real-Mode (A or B frontend)**: 33M * **For Complex (AB or BA frontend)**: 66M ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The DBSRX board has 1 quadrature frontend. It defaults to direct conversion but can use a low IF through lo_offset in **uhd::tune_request_t**. Receive Antennas: **J3** * **Frontend 0:** Complex baseband signal from antenna J3 The board has no user selectable antenna setting. Receive Gains: * **GC1**, Range: 0-56dB * **GC2**, Range: 0-24dB Bandwidth (Hz): 8M-66M Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The DBSRX2 board has 1 quadrature frontend. It defaults to direct conversion, but can use a low IF through lo_offset in **uhd::tune_request_t**. Receive Antennas: **J3** * **Frontend 0:** Complex baseband signal from antenna J3 The board has no user-selectable antenna setting. Receive Gains: * **GC1**, Range: 0-73dB * **BBG**, Range: 0-15dB Bandwidth (Hz): 8M-80M Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ RFX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The RFX Series boards have 2 quadrature frontends: Transmit and Receive. Transmit defaults to low IF, and Receive defaults to direct conversion. The IF can be adjusted through lo_offset in **uhd::tune_request_t**. The RFX Series boards have independent receive and transmit LO's and synthesizers allowing full-duplex operation on different transmit and receive frequencies. Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** * **Frontend 0:** Complex baseband signal for selected antenna The user may set the receive antenna to be TX/RX or RX2. However, when using an RFX board in full-duplex mode, the receive antenna will always be set to RX2, regardless of the settings. Receive Gains: **PGA0**, Range: 0-70dB (except RFX400 range is 0-45dB) Bandwidths (Hz): * **RX**: 40M * **TX**: 40M Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ XCVR 2450 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The XCVR2450 has 2 quadrature frontends, one transmit, one receive. Transmit and Receive default to direct conversion but can be used in low IF mode through lo_offset in uhd::tune_request_t The XCVR2450 has a non-contiguous tuning range consisting of a high band (4.9-6.0GHz) and a low band (2.4-2.5GHz). Transmit Antennas: **J1** or **J2** Receive Antennas: **J1** or **J2** * **Frontend 0:** Complex baseband signal for selected antenna The XCVR2450 uses a common LO for both receive and transmit. Even though the API allows the RX and TX LOs to be individually set, a change of one LO setting will be reflected in the other LO setting. The XCVR2450 does not support full-duplex mode, attempting to operate in full-duplex will result in transmit-only operation. Transmit Gains: * **VGA**, Range: 0-30dB * **BB**, Range: 0-5dB Receive Gains: * **LNA**, Range: 0-30.5dB * **VGA**, Range: 0-62dB Bandwidths (Hz): * **RX**: 15M, 19M, 28M, 36M; (each +-0, 5, or 10%) * **TX**: 24M, 36M, 48M Sensors: * **lo_locked**: boolean for LO lock state * **rssi**: float for rssi in dBm ^^^^^^^^^^^^^^^^^^^^^^^^^^^ WBX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The WBX Series boards have 2 quadrature frontends, one transmit, one receive. Transmit and Receive default to direct conversion but can be used in low IF mode through lo_offset in **uhd::tune_request_t**. The WBX Series boards have independent receive and transmit LO's and synthesizers allowing full-duplex operation on different transmit and receive frequencies. Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** * **Frontend 0:** Complex baseband signal for selected antenna The user may set the receive antenna to be TX/RX or RX2. However, when using an WBX board in full-duplex mode, the receive antenna will always be set to RX2, regardless of the settings. Transmit Gains: **PGA0**, Range: 0-25dB Receive Gains: **PGA0**, Range: 0-31.5dB Bandwidths (Hz): * **RX**: 40M * **TX**: 40M Sensors: * **lo_locked**: boolean for LO lock state ^^^^^^^^^^^^^^^^^^^^^^^^^^^ SBX Series ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The SBX Series boards have 2 quadrature frontends, one transmit, one receive. Transmit and Receive default to direct conversion but can be used in low IF mode through lo_offset in **uhd::tune_request_t**. The SBX Series boards have independent receive and transmit LO's and synthesizers allowing full-duplex operation on different transmit and receive frequencies. Transmit Antennas: **TX/RX** Receive Antennas: **TX/RX** or **RX2** * **Frontend 0:** Complex baseband signal for selected antenna The user may set the receive antenna to be TX/RX or RX2. However, when using an SBX board in full-duplex mode, the receive antenna will always be set to RX2, regardless of the settings. Transmit Gains: **PGA0**, Range: 0-31.5dB Receive Gains: **PGA0**, Range: 0-31.5dB Bandwidths (Hz): * **RX**: 40M * **TX**: 40M Sensors: * **lo_locked**: boolean for LO lock state LEDs: * All LEDs flash when dboard control is initialized * **TX LD**: Transmit Synthesizer Lock Detect * **TX/RX**: Receiver on TX/RX antenna port (No TX) * **RX LD**: Receive Synthesizer Lock Detect * **RX1/RX2**: Receiver on RX2 antenna port ^^^^^^^^^^^^^^^^^^^^^^^^^^^ TVRX ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The TVRX board has 1 real-mode frontend. It is operated at a low IF. Receive Antennas: RX * **Frontend 0:** real-mode baseband signal from antenna RX Receive Gains: * **RF**, Range: -13.3-50.3dB (frequency-dependent) * **IF**, Range: -1.5-32.5dB Bandwidth: 6MHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^ TVRX2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The TVRX2 board has 2 real-mode frontends. It is operated at a low IF. Receive Frontends: * **Frontend RX1:** real-mode baseband from antenna J100 * **Frontend RX2:** real-mode baseband from antenna J140 Note: The TVRX2 has always-on AGC; the software controllable gain is the final gain stage which controls the AGC set-point for output to ADC. Receive Gains: * **IF**, Range: 0.0-30.0dB Bandwidth: 1.7MHz, 6MHz, 7MHz, 8MHz, 10MHz Sensors: * **lo_locked**: boolean for LO lock state * **rssi**: float for measured RSSI in dBm * **temperature**: float for measured temperature in degC ------------------------------------------------------------------------ Daughterboard Modifications ------------------------------------------------------------------------ Sometimes, daughterboards will require modification to work on certain frequencies or to work with certain hardware. Modification usually involves moving/removing an SMT component and burning a new daughterboard ID into the EEPROM. ^^^^^^^^^^^^^^^^^^^^^^^^^^^ DBSRX - Mod ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Due to different clocking capabilities, the DBSRX will require modifications to operate on a non-USRP1 motherboard. On a USRP1 motherboard, a divided clock is provided from an FPGA pin because the standard daughterboard clock lines cannot provided a divided clock. However, on other USRP motherboards, the divided clock is provided over the standard daughterboard clock lines. **Step 1: Move the clock configuration resistor** Remove **R193** (which is 10 ohms, 0603 size), and put it on **R194**, which is empty. This is made somewhat more complicated by the fact that the silkscreen is not clear in that area. **R193** is on the back, immediately below the large beige connector, **J2**. **R194** is just below, and to the left of **R193**. The silkscreen for **R193** is ok, but for **R194**, it is upside down, and partially cut off. If you lose **R193**, you can use anything from 0 to 10 ohms there. **Step 2: Burn a new daughterboard id into the EEPROM** With the daughterboard plugged-in, run the following commands: :: cd /share/uhd/utils ./usrp_burn_db_eeprom --id=0x000d --unit=RX --args= --slot= * **** are device address arguments (optional if only one USRP is on your machine) * **** is the name of the daughterboard slot (optional if the USRP has only one slot) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ RFX - Mod ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Older RFX boards require modifications to use the motherboard oscillator. If this is the case, UHD will print a warning about the modification. Please follow the modification procedures below: **Step 1: Disable the daughterboard clocks** Move **R64** to **R84**. Move **R142** to **R153**. **Step 2: Connect the motherboard blocks** Move **R35** to **R36**. Move **R117** to **R115**. These are all 0-ohm, so if you lose one, just short across the appropriate pads. **Step 3: Burn the appropriate daughterboard ID into the EEPROM** With the daughterboard plugged-in, run the following commands: :: cd /share/uhd/utils ./usrp_burn_db_eeprom --id= --unit=RX --args= --slot= ./usrp_burn_db_eeprom --id= --unit=TX --args= --slot= * **** choose the appropriate RX ID for your daughterboard * **RFX400:** 0x0024 * **RFX900:** 0x0025 * **RFX1800:** 0x0034 * **RFX1200:** 0x0026 * **RFX2400:** 0x0027 * **** choose the appropriate TX ID for your daughterboard * **RFX400:** 0x0028 * **RFX900:** 0x0029 * **RFX1800:** 0x0035 * **RFX1200:** 0x002a * **RFX2400:** 0x002b * **** are device address arguments (optional if only one USRP is on your machine) * **** is the name of the daughterboard slot (optional if the USRP has only one slot) uhd-3.5.5/host/docs/general.rst000066400000000000000000000203241224274632000163630ustar00rootroot00000000000000======================================================================== UHD - General Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Tuning Notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Two-stage tuning process ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A USRP device has two stages of tuning: * RF front-end: translates bewteen RF and IF * DSP: translates between IF and baseband In a typical use-case, the user specifies an overall center frequency for the signal chain. The RF front-end will be tuned as close as possible to the center frequency, and the DSP will account for the error in tuning between target frequency and actual frequency. The user may also explicitly control both stages of tuning through through the **tune_request_t** object, which allows for more advanced tuning. In general, Using UHD's advanced tuning is highly recommended as it makes it easy to move the DC component out of your band-of-interest. This can be done by passing your desired LO offset to the **tune_request_t** object, and letting UHD handle the rest. Tuning the receive chain: :: //tuning to a desired center frequency usrp->set_rx_freq(target_frequency_in_hz); --OR-- //advanced tuning with tune_request_t uhd::tune_request_t tune_req(target_frequency_in_hz, desired_lo_offset); //fill in any additional/optional tune request fields... usrp->set_rx_freq(tune_req); More information can be fonud in *tune_request.hpp*. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RF front-end settling time ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ After tuning, the RF front-end will need time to settle into a usable state. Typically, this means that the local oscillators must be given time to lock before streaming begins. Lock time is not consistent; it varies depending upon the device and requested settings. After tuning and before streaming, the user should wait for the **lo_locked** sensor to become true or sleep for a conservative amount of time (perhaps a second). Pseudo-code for dealing with settling time after tuning on receive: :: usrp->set_rx_freq(...); sleep(1); usrp->issue_stream_command(...); --OR-- usrp->set_rx_freq(...); while (not usrp->get_rx_sensor("lo_locked").to_bool()){ //sleep for a short time in milliseconds } usrp->issue_stream_command(...); ------------------------------------------------------------------------ Specifying the Subdevice to Use ------------------------------------------------------------------------ A subdevice specification string for USRP family devices is composed of: :: : Ex: The subdev spec markup string to select a WBX on slot B. :: B:0 Ex: The subdev spec markup string to select a BasicRX on slot B. :: B:AB -- OR -- B:A -- OR -- B:B ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ USRP Family Motherboard Slot Names ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All USRP family motherboards have a first slot named **A:**. The USRP1 has two daughterboard subdevice slots, known as **A:** and **B:**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Daughterboard Frontend Names ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Daughterboard frontend names can be used to specify which signal path is used from a daughterboard. Most daughterboards have only one frontend **:0**. A few daughterboards (Basic, LF and TVRX2) have multiple frontend names available. The frontend names are documented in the `Daughterboard Application Notes <./dboards.html>`_ ------------------------------------------------------------------------ Overflow/Underflow Notes ------------------------------------------------------------------------ **Note:** The following overflow/underflow notes do not apply to USRP1, which does not support the advanced features available in newer products. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Overflow notes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When receiving, the device produces samples at a constant rate. Overflows occurs when the host does not consume data fast enough. When UHD detects the overflow, it prints an "O" to stdout, and pushes an inline message packet into the receive stream. **Network-based devices**: The host does not back-pressure the receive stream. When the kernel's socket buffer becomes full, it will drop subsequent packets. UHD detects the overflow as a discontinuity in the packet's sequence numbers, and pushes an inline message packet into the receive stream. **Other devices**: The host back-pressures the receive stream. Therefore, overflows always occur in the device itself. When the device's internal buffers become full, streaming is shut off, and an inline message packet is sent to the host. If the device was in continuous streaming mode, UHD will automatically restart streaming. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Underflow notes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When transmitting, the device consumes samples at a constant rate. Underflow occurs when the host does not produce data fast enough. When UHD detects underflow, it prints a "U" to stdout, and pushes a message packet into the async message stream. ------------------------------------------------------------------------ Threading Notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Thread safety notes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For the most part, UHD is thread-safe. Please observe the following limitations: **Fast-path thread requirements:** There are three fast-path methods for a device: **send()**, **recv()**, and **recv_async_msg()**. All three methods are thread-safe and can be called from different thread contexts. For performance, the user should call each method from a separate thread context. These methods can also be used in a non-blocking fashion by using a timeout of zero. **Slow-path thread requirements:** It is safe to change multiple settings simultaneously. However, this could leave the settings for a device in an uncertain state. This is because changing one setting could have an impact on how a call affects other settings. Example: setting the channel mapping affects how the antennas are set. It is recommended to use at most one thread context for manipulating device settings. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Thread priority scheduling ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When UHD spawns a new thread it may try to boost the thread's scheduling priority. When setting the priority fails, UHD prints out an error. This error is harmless; it simply means that the thread will have a normal scheduling priority. **Linux Notes:** Non-privileged users need special permission to change the scheduling priority. Add the following line to **/etc/security/limits.conf**: :: @ - rtprio 99 Replace **** with a group to which your user belongs. Settings will not take effect until the user is in a different login session. ------------------------------------------------------------------------ Miscellaneous Notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Support for dynamically loadable modules ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For a module to be loaded at runtime, it must be: * found in the **UHD_MODULE_PATH** environment variable, * installed into the **/share/uhd/modules** directory, * or installed into **/usr/share/uhd/modules** directory (UNIX only). ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Disabling or redirecting prints to stdout ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The user can disable the UHD library from printing directly to stdout by registering a custom message handler. The handler will intercept all messages, which can be dropped or redirected. Only one handler can be registered at a time. Make **register_handler** your first call into UHD: :: #include void my_handler(uhd::msg::type_t type, const std::string &msg){ //handle the message... } uhd::msg::register_handler(&my_handler); uhd-3.5.5/host/docs/gpsdo.rst000066400000000000000000000065311224274632000160660ustar00rootroot00000000000000======================================================================== UHD - Internal GPSDO Application Notes ======================================================================== .. contents:: Table of Contents This application note describes the use of integrated GPS-disciplined oscillators with Ettus Research USRP devices. It pertains specifically to the Jackson Labs Firefly-1A device unless noted otherwise. ------------------------------------------------------------------------ Specifications ------------------------------------------------------------------------ * **Receiver type**: 50 channel with WAAS, EGNOS, MSAS * **10MHz ADEV**: 1e-11 over >24h * **1PPS RMS jitter**: <50ns 1-sigma * **Holdover**: <11us over 3h * **Phase noise**: * **1Hz:** -80dBc/Hz * **10Hz:** -110dBc/Hz * **100Hz:** -135dBc/Hz * **1kHz:** -145dBc/Hz * **10kHz:** <-145dBc/Hz **Antenna Types:** The GPSDO is capable of supplying a 3V for active GPS antennas or supporting passive antennas. ------------------------------------------------------------------------ Installation Instructions ------------------------------------------------------------------------ Installation instructions can be found here: `http://www.ettus.com/content/files/gpsdo-kit_2.pdf `_ ******************************************** Post-installation Task (N-Series only) ******************************************** **Note:** The following instructions are only necessary for UHD 3.4.* and below. This is necessary if you require absolute GPS time in your application or need to communicate with the GPSDO to obtain location, satellite info, etc. If you only require 10MHz and PPS signals for reference or MIMO use (see the `Synchronization Application Notes <./sync.html>`_), it is not necessary to perform this step. To configure the USRP to communicate with the GPSDO, use the **usrp_burn_mb_eeprom** utility: :: cd /share/uhd/utils ./usrp_burn_mb_eeprom --args= --key=gpsdo --val=internal -- restore original setting -- ./usrp_burn_mb_eeprom --args= --key=gpsdo --val=none ------------------------------------------------------------------------ Using the GPSDO in Your Application ------------------------------------------------------------------------ By default, if a GPSDO is detected at startup, the USRP will be configured to use it as a frequency and time reference. The internal VITA timestamp will be initialized to the GPS time, and the internal oscillator will be phase-locked to the 10MHz GPSDO reference. If the GPSDO is not locked to satellites, the VITA time will not be initialized. GPS data is obtained through the **mboard_sensors** interface. To retrieve the current GPS time, use the **gps_time** sensor: :: usrp->get_mboard_sensor("gps_time"); The returned value will be the current epoch time, in seconds since January 1, 1970. This value is readily converted into human-readable format using the **time.h** library in C, **boost::posix_time** in C++, etc. Other information can be fetched as well. You can query the lock status with the **gps_locked** sensor, as well as obtain raw NMEA sentences using the **gps_gprmc**, and **gps_gpgga** sensors. Location information can be parsed out of the **gps_gpgga** sensor by using **gpsd** or another NMEA parser. uhd-3.5.5/host/docs/identification.rst000066400000000000000000000105451224274632000177430ustar00rootroot00000000000000======================================================================== UHD - Device Identification Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Identifying USRPs ------------------------------------------------------------------------ Devices are addressed through key/value string pairs. These string pairs can be used to narrow down the search for a specific device or group of devices. Most UHD utility applications and examples have an **--args** parameter that takes a device address, which is expressed as a delimited string. See the documentation in **types/device_addr.hpp** for reference. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Common device identifiers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Every device has several ways of identifying it on the host system: +------------+------------+--------------------------------------------+ | Identifier | Key | Notes | +============+============+============================================+ | Serial | serial | globally unique identifier | +------------+------------+--------------------------------------------+ | Address | addr | unique identifier on a network | +------------+------------+--------------------------------------------+ | Name | name | optional user-set identifier | +------------+------------+--------------------------------------------+ | Type | type | hardware series identifier | +------------+------------+--------------------------------------------+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Device discovery via command line ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Devices attached to your system can be discovered using the **uhd_find_devices** program. This program scans your system for supported devices and prints out an enumerated list of discovered devices and their addresses. The list of discovered devices can be narrowed down by specifying device address args. :: uhd_find_devices Device address arguments can be supplied to narrow the scope of the search. :: uhd_find_devices --args="type=usrp1" -- OR -- uhd_find_devices --args="serial=12345678" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Device discovery through the API ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The **device::find()** API call searches for devices and returns a list of discovered devices. :: uhd::device_addr_t hint; //an empty hint discovers all devices uhd::device_addrs_t dev_addrs = uhd::device::find(hint); The **hint** argument can be populated to narrow the scope of the search. :: uhd::device_addr_t hint; hint["type"] = "usrp1"; uhd::device_addrs_t dev_addrs = uhd::device::find(hint); -- OR -- uhd::device_addr_t hint; hint["serial"] = "12345678"; uhd::device_addrs_t dev_addrs = uhd::device::find(hint); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Device properties ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Properties of devices attached to your system can be probed with the **uhd_usrp_probe** program. This program constructs an instance of the device and prints out its properties, such as detected daughterboards, frequency range, gain ranges, etc... **Usage:** :: uhd_usrp_probe --args ------------------------------------------------------------------------ Naming a USRP ------------------------------------------------------------------------ For convenience purposes, users may assign a custom name to their USRPs. The USRP can then be identified via name, rather than a difficult to remember serial or address. A name has the following properties: * is composed of ASCII characters * is 0-20 characters * is not required to be unique ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set a custom name ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Run the following commands: :: cd /share/uhd/utils ./usrp_burn_mb_eeprom --args= --key=name --val=lab1_xcvr ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Discovery via name ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The keyword **name** can be used to narrow the scope of the search. Example with the find devices utility: :: uhd_find_devices --args="name=lab1_xcvr" -- OR -- uhd_find_devices --args="type=usrp1, name=lab1_xcvr" uhd-3.5.5/host/docs/images.rst000066400000000000000000000103501224274632000162110ustar00rootroot00000000000000======================================================================== UHD - Firmware and FPGA Image Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Images Overview ------------------------------------------------------------------------ Every USRP device must be loaded with special firmware and FPGA images. The methods of loading images into the device vary among devices: * **USRP1:** The host code will automatically load the firmware and FPGA at runtime. * **USRP2:** The user must manually write the images onto the USRP2 SD card. * **USRP-N Series:** The user must manually transfer the images over ethernet. * **USRP-E Series:** The host code will automatically load the FPGA at runtime. * **USRP-B Series:** The host code will automatically load the FPGA at runtime. ------------------------------------------------------------------------ Pre-built Images ------------------------------------------------------------------------ Pre-built images are available for download. * `Master Branch images `_ * `Maint Branch images `_ See the UHD wiki for the download link. The pre-built images come in two forms: * bundled with UHD in a platform-specific installer * stand-alone platform-independent archive files ^^^^^^^^^^^^^^^^^^^^^^ UHD Images Downloader ^^^^^^^^^^^^^^^^^^^^^^ The UHD Images Downloader is a new feature in UHD 003.005.000. This script downloads UHD images that are guaranteed to be compatible with the host code and places them in the default images directory. By default, it can be found at: **/share/uhd/utils/uhd_images_downloader.py** By default, it installs images to: **/share/uhd/images** ^^^^^^^^^^^^^^^^^^^^^^ Platform installers ^^^^^^^^^^^^^^^^^^^^^^ The UNIX-based installers will install the images into **/usr/share/uhd/images**. The Windows installers will install the images into **C:/Program Files/UHD/share/uhd/images**. ^^^^^^^^^^^^^^^^^^^^^^ Archive install ^^^^^^^^^^^^^^^^^^^^^^ When installing images from an archive, there are two options: **Option 1:** Unpack the archive into the UHD installation prefix. UHD will always search **/share/uhd/images** for image files. Where **** was set by the **CMAKE_INSTALL_PREFIX** at configure-time. **Option 2:** Unpack the archive anywhere and set the **UHD_IMAGES_PATH** environment variable. **UHD_IMAGES_PATH** may contain a list of directories to search for image files. ------------------------------------------------------------------------ Building Images ------------------------------------------------------------------------ The UHD source repository comes with the source code necessary to build both firmware and FPGA images for all supported devices. The build commands for a particular image can be found in **/images/Makefile**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Xilinx FPGA builds ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Xilinx ISE 12.x and up is required to build the Xilinx FPGA images. The build requires that you have a UNIX-like environment with **Make**. Make sure that **xtclsh** from the Xilinx ISE bin directory is in your **$PATH**. See **/fpga/usrp2/top/**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ZPU firmware builds ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The ZPU GCC compiler is required to build the ZPU firmware images. The build requires that you have a UNIX-like environment with **CMake** and **Make**. Make sure that **zpu-elf-gcc** is in your **$PATH**. See **/firmware/zpu**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Altera FPGA builds ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Quartus is required to build the Altera FPGA images. Pre-built images can also be found in **/fpga/usrp1/rbf**. See **/fpga/usrp1/toplevel/***. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FX2 firmware builds ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The SDCC compiler is required to build the FX2 firmware images. The build requires that you have a UNIX-like environment with **CMake** and **Make**. See **/firmware/fx2**. uhd-3.5.5/host/docs/index.rst000066400000000000000000000034661224274632000160650ustar00rootroot00000000000000======================================================================== UHD - USRP Hardware Driver ======================================================================== UHD is the "Universal Software Radio Peripheral" hardware driver. The goal of UHD is to provide a host driver and API for current and future Ettus Research products. Users will be able to use the UHD driver standalone or with third-party applications. ------------------------------------------------------------------------ Contents ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Building and Installing UHD ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * `Build Guide <./build.html>`_ * `Installation Guide (Linux) `_ * `Installation Guide (Windows) `_ ^^^^^^^^^^^^^^^^^^^^^ Application Notes ^^^^^^^^^^^^^^^^^^^^^ * `General Application Notes <./general.html>`_ * `Device Identification Notes <./identification.html>`_ * `Firmware and FPGA Image Notes <./images.html>`_ * `USRP1 Application Notes <./usrp1.html>`_ * `USRP2 Application Notes <./usrp2.html>`_ * `USRP-N2X0 Series Application Notes <./usrp2.html>`_ * `USRP-B100 Series Application Notes <./usrp_b100.html>`_ * `USRP-E1X0 Series Application Notes <./usrp_e1x0.html>`_ * `Daughterboard Application Notes <./dboards.html>`_ * `Transport Application Notes <./transport.html>`_ * `Synchronization Application Notes <./sync.html>`_ * `Internal GPSDO Application Notes <./gpsdo.html>`_ * `Calibration Application Notes <./calibration.html>`_ ^^^^^^^^^^^^^^^^^^^^^ API Documentation ^^^^^^^^^^^^^^^^^^^^^ * `Doxygen <./../../doxygen/html/index.html>`_ * `Using the API <./coding.html>`_ * `Device Streaming <./stream.html>`_ uhd-3.5.5/host/docs/stream.rst000066400000000000000000000052611224274632000162440ustar00rootroot00000000000000======================================================================== UHD - Device streaming ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Introduction to Streaming ------------------------------------------------------------------------ The concept of streaming refers to the transportation of samples between host and device. A stream is an object that facilitates streaming between host application and device. An RX stream allows the user to receive samples from the device. A TX stream allows the user to transmit samples to the device. ------------------------------------------------------------------------ Link Layer Encapsulation ------------------------------------------------------------------------ The VITA49 standard provides encapsulation for sample data across a link layer. On all generation2 hardware, samples are encapsulated into VRT IF data packets. These packets also provide sample decoration such as stream time and burst flags. Sample decoration is exposed to the user in the form of RX and TX metadata structs. The length of an IF data packet can be limited by several factors: * **MTU of the link layer:** network card, network switch * **Buffering on the host:** frame size in a ring buffer * **Buffering on the device:** size of BRAM FIFOs ------------------------------------------------------------------------ Data Types ------------------------------------------------------------------------ There are two important data types to consider when streaming: * The data type of the samples used on the host for processing * The data type of the samples sent through the link-layer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The host/CPU data type ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The host data type refers to the format of samples used in the host for baseband processing. Typically, the data type is complex baseband such as normalized **complex-float32** or **complex-int16**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The link-layer data type ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The link-layer or "over-the-wire" data type refers to the format of the samples sent through the link. Typically, this data type is **complex-int16**. However, to increase throughput over the link-layer, at the expense of precision, **complex-int8** may be used. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Conversion ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The user may request arbitrary combinations of host and link data types; however, not all combinations are supported. The user may register custom data type formats and conversion routines. See **uhd/convert.hpp** for futher documentation. TODO: provide example of convert API uhd-3.5.5/host/docs/style.css000066400000000000000000000032161224274632000160670ustar00rootroot00000000000000body{ font-family:Arial, Helvetica, sans-serif; font-size:11pt; color:black; background-color:white; width:90%; margin:0 auto 0 auto; } div.document div.contents{ border:1px solid #333333; padding:10px 30px 10px 10px; margin-left:50px; color:inherit; background-color:#FCFCFC; display:inline-block; } div.document p.topic-title{ font-weight:bold; } div.document a:link, div.document a:visited{ color:#236B8E; background-color:inherit; text-decoration:none; } div.document a:hover{ color:#4985D6; background-color:inherit; text-decoration:none; } div.document h1.title{ font-size:150%; border-left:1px solid #333333; border-bottom:1px solid #333333; text-align:left; padding:10px 0px 10px 10px; margin:10px 5px 20px 5px; color:#333333; background-color:inherit; } div.document h2.subtitle, div.section h1{ margin-top:50px; border-bottom:1px solid #333333; font-size:140%; text-align:center; padding:20px 0px 10px 0px; color:#333333; background-color:inherit; } div.section h2{ font-size:110%; text-align:left; padding:15px 0px 5px 0px; text-decoration:underline; color:#333333; background-color:inherit; } div.document pre.literal-block{ border:1px inset #333333; padding:5px; margin:10px 5px 10px 5px; color:inherit; background-color:#FCFCFC; font-size:90%; } div.document table{ padding:5px; font-size:95%; } div.document th{ padding:3px 7px 3px 7px; border:1px solid #333333; text-align:center; color:inherit; background-color:#ECECEC; } div.document tr{ } div.document td{ padding:3px 7px 3px 7px; border:1px solid #333333; text-align:center; color:inherit; background-color:#FCFCFC; } div.footer{ margin:50px auto 30px auto; text-align:center; font-size:85%; } uhd-3.5.5/host/docs/sync.rst000066400000000000000000000202261224274632000157230ustar00rootroot00000000000000======================================================================== UHD - Synchronization Application Notes ======================================================================== .. contents:: Table of Contents The following application notes explain how to synchronize multiple USRPs with the goal of transmitting or receiving time-aligned samples for MIMO or other applications requiring multiple USRPs operating synchronously. **Note:** The following synchronization notes do not apply to USRP1, which does not support the advanced features available in newer products. ------------------------------------------------------------------------ Common Reference Signals ------------------------------------------------------------------------ USRPs take two reference signals in order to synchronize clocks and time: * A 10MHz reference to provide a single frequency reference for both devices. * A pulse-per-second (PPS) to synchronize the sample time across devices. * A MIMO cable transmits an encoded time message from one device to another. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PPS and 10 MHz reference signals ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Connect the front panel SMA connectors to the reference sources. Typically, these signals are provided by an external GPSDO. However, some USRP models can provide these signals from an optional internal GPSDO. :: usrp->set_clock_source("external"); usrp->set_time_source("external"); **Note:** Sometimes the delay on the PPS signal will cause it to arrive inside the timing margin the FPGA sampling clock, causing PPS edges to be separated by less or more than 100 million cycles of the FPGA clock. If this is the case, you can change the edge reference of the PPS signal with this parameter: :: usrp->set_time_source("_external_"); **Note2:** For users generating their own signals for the external SMA connectors, the PPS should be clocked from the 10MHz reference. See the application notes for your device for specific signal requirements. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ MIMO cable reference signals ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use the MIMO expansion cable to share reference sources (USRP2 and N-Series). The MIMO cable can be used synchronize one device to another device. Users of the MIMO cable may use Method 1 (explained below) to synchronize multiple pairs of devices. :: usrp->set_clock_source("mimo"); usrp->set_time_source("mimo"); ------------------------------------------------------------------------ Synchronizing the Device Time ------------------------------------------------------------------------ The purpose of the PPS signal is to synchronously latch a time into the device. You can use the **set_time_next_pps(...)** function to either initialize the sample time to 0 or an absolute time, such as GPS time or UTC time. For the purposes of synchronizing devices, it doesn't matter what time you initialize to when using **set_time_next_pps(...)**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Method 1 - poll the USRP time registers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ One way to initialize the PPS edge is to poll the "last PPS" time from the USRP device. When the last PPS time increments, the user can determine that a PPS has occurred: :: const uhd::time_spec_t last_pps_time = usrp->get_time_last_pps(); while (last_pps_time == usrp->get_time_last_pps()){ //sleep 100 milliseconds (give or take) } usrp->set_time_next_pps(uhd::time_spec_t(0.0)); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Method 2 - query the GPSDO for seconds ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Most GPSDOs can be configured to output a NMEA string over the serial port once every PPS. The user can wait for this string to determine the PPS edge, and the user can also parse this string to determine GPS time: :: //call user's function to wait for NMEA message... usrp->set_time_next_pps(uhd::time_spec_t(0.0)); -- OR -- //call user's function to wait for NMEA message... //call user's function to parse the NMEA message... usrp->set_time_next_pps(uhd::time_spec_t(gps_time+1)); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Method 3 - internal GPSDO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ USRPs with internal GPSDOs properly configured will automatically configure themselves to set the VITA time to current UTC time. See the `GPSDO Application Notes <./gpsdo.html>`_ for more details. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Method 4 - MIMO cable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A USRP can synchronize its time to another USRP via the MIMO cable. Unlike the other methods, this does not use a real "pulse per second". Rather, the USRP sends an encoded time message over the MIMO cable. The slave device will automatically synchronize to the time on the master device. See the `MIMO Cable Application Notes <./usrp2.html#using-the-mimo-cable>`_ for more detail. ------------------------------------------------------------------------ Synchronizing Channel Phase ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Align CORDICs in the DSP ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In order to achieve phase alignment between USRPs, the CORDICS in both devices must be aligned with respect to each other. This is easily achieved by issuing stream commands with a time spec property, which instructs the streaming to begin at a specified time. Since the devices are already synchronized via the 10MHz and PPS inputs, the streaming will start at exactly the same time on both devices. The CORDICs are reset at each start-of-burst command, so users should ensure that every start-of-burst also has a time spec set. For receive, a burst is started when the user issues a stream command. This stream command should have a time spec set: :: uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = samps_to_recv; stream_cmd.stream_now = false; stream_cmd.time_spec = time_to_recv; usrp->issue_stream_cmd(stream_cmd); For transmit, a burst is started when the user calls send(). The metadata should have a time spec set: :: uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = false; md.has_time_spec = true; md.time_spec = time_to_send; //send a single packet size_t num_tx_samps = tx_streamer->send(buffs, samps_to_send, md); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Align LOs in the front-end (SBX/WBX + N-Series) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Using timed commands, multiple frontends can be tuned at a specific time. This timed-tuning ensures that the phase offsets between VCO/PLL chains will remain constant after each re-tune. See notes below: * There is a random phase offset between any two frontends * This phase offset is different for different LO frequencies * This phase offset remains constant after retuning * Due to divider, WBX phase offset will be randomly +/- 180 deg after re-tune * This phase offset will drift over time due to thermal and other characteristics * Periodic calibration will be necessary for phase-coherent applications Code snippet example, tuning with timed commands: :: //we will tune the frontends in 100ms from now uhd::time_spec_t cmd_time = usrp->get_time_now() + uhd::time_spec_t(0.1); //sets command time on all devices //the next commands are all timed usrp->set_command_time(cmd_time); //tune channel 0 and channel 1 usrp->set_rx_freq(1.03e9, 0/*ch0*/); usrp->set_rx_freq(1.03e9, 1/*ch1*/); //end timed commands usrp->clear_command_time(); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Align LOs in the front-end (others) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ After tuning the RF front-ends, each local oscillator may have a random phase offset due to the dividers in the VCO/PLL chains. This offset will remain constant after the device has been initialized, and will remain constant until the device is closed or re-tuned. This phase offset is typically removed by the user in MIMO applications, using a training sequence to estimate the offset. It will be necessary to re-align the LOs after each tune command. uhd-3.5.5/host/docs/transport.rst000066400000000000000000000163601224274632000170070ustar00rootroot00000000000000======================================================================== UHD - Transport Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Introduction ------------------------------------------------------------------------ A transport is the layer between the packet interface and a device IO interface. The advanced user can pass optional parameters into the underlying transport layer through the device address. These optional parameters control how the transport object allocates memory, resizes kernel buffers, spawns threads, etc. When not spcified, the transport layer will use values for these parameters that are known to perform well on a variety of systems. The transport parameters are defined below for the various transports in the UHD: ------------------------------------------------------------------------ UDP Transport (Sockets) ------------------------------------------------------------------------ The UDP transport is implemented with user-space sockets. This means standard Berkeley sockets API using send()/recv(). ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Transport parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following parameters can be used to alter the transport's default behavior: * **recv_frame_size:** The size of a single receive buffer in bytes * **num_recv_frames:** The number of receive buffers to allocate * **send_frame_size:** The size of a single send buffer in bytes * **num_send_frames:** The number of send buffers to allocate **Note1:** **num_recv_frames** does not affect performance. **Note2:** **num_send_frames** does not affect performance. **Note3:** **recv_frame_size** and **send_frame_size** can be used to increase or decrease the maximum number of samples per packet. The frame sizes default to an MTU of 1472 bytes per IP/UDP packet and may be increased if permitted by your network hardware. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Flow control parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The host-based flow control expects periodic update packets from the device. These update packets inform the host of the last packet consumed by the device, which allows the host to determine throttling conditions for the transmission of packets. The following mechanisms affect the transmission of periodic update packets: * **ups_per_fifo:** The number of update packets for each FIFO's worth of bytes sent into the device * **ups_per_sec:** The number of update packets per second (defaults to 20 updates per second) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Resize socket buffers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ It may be useful to increase the size of the socket buffers to move the burden of buffering samples into the kernel or to buffer incoming samples faster than they can be processed. However, if your application cannot process samples fast enough, no amount of buffering can save you. The following parameters can be used to alter socket's buffer sizes: * **recv_buff_size:** The desired size of the receive buffer in bytes * **send_buff_size:** The desired size of the send buffer in bytes **Note:** Large send buffers tend to decrease transmit performance. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Latency Optimization ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Latency is a measurement of the time it takes a sample to travel between the host and device. Most computer hardware and software is bandwidth optimized, which may negatively affect latency. If your application has strict latency requirements, please consider the following notes: **Note1:** The time taken by the device to populate a packet is proportional to the sample rate. Therefore, to improve receive latency, configure the transport for a smaller frame size. **Note2:** For overall latency improvements, look for "Interrupt Coalescing" settings for your OS and ethernet chipset. It seems the Intel ethernet chipsets offer fine-grained control in Linux. Also, consult: * http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/interrupt_coal.htm ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Linux specific notes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ On Linux, the maximum buffer sizes are capped by the sysctl values **net.core.rmem_max** and **net.core.wmem_max**. To change the maximum values, run the following commands: :: sudo sysctl -w net.core.rmem_max= sudo sysctl -w net.core.wmem_max= Set the values permanently by editing **/etc/sysctl.conf**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Windows specific notes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **UDP send fast-path:** It is important to change the default UDP behavior such that 1500 byte packets still travel through the fast path of the sockets stack. This can be adjusted with the FastSendDatagramThreshold registry key: * FastSendDatagramThreshold registry key documented here: * http://www.microsoft.com/windows/windowsmedia/howto/articles/optimize_web.aspx#appendix_e * Double click and run /share/uhd/FastSendDatagramThreshold.reg * A system reboot is recommended after the registry key change. **Power profile:** The Windows power profile can seriously impact instantaneous bandwidth. Application can take time to ramp-up to full performance capability. It is recommended that users set the power profile to "high performance". ------------------------------------------------------------------------ USB Transport (LibUSB) ------------------------------------------------------------------------ The USB transport is implemented with LibUSB. LibUSB provides an asynchronous API for USB bulk transfers. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Transport parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following parameters can be used to alter the transport's default behavior: * **recv_frame_size:** The size of a single receive transfers in bytes * **num_recv_frames:** The number of simultaneous receive transfers * **send_frame_size:** The size of a single send transfers in bytes * **num_send_frames:** The number of simultaneous send transfers ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Setup Udev for USB (Linux) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ On Linux, Udev handles USB plug and unplug events. The following commands install a Udev rule so that non-root users may access the device: :: cd /share/uhd/utils sudo cp uhd-usrp.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Install USB driver (Windows) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A driver package must be installed to use a USB-based product with UHD: * Download the driver from the UHD wiki page `here `_. * Unzip the file into a known location. We will refer to this as the ****. * Open the device manager and plug in the USRP. You will see an unrecognized USB device in the device manager. * Right click on the unrecognized USB device and select update/install driver software (may vary for your OS). * In the driver installation wizard, select "browse for driver", browse to the ****, and select the **.inf** file. * Continue through the installation wizard until the driver is installed. uhd-3.5.5/host/docs/uhd_cal_rx_iq_balance.1000066400000000000000000000043031224274632000205430ustar00rootroot00000000000000.TH "uhd_cal_rx_iq_balance" "1" "3.5.1" "UHD" "User Commands" .SH NAME uhd_cal_rx_iq_balance \- Generate RX IQ Balance Calibration Table for a UHD Device .SH DESCRIPTION The Universal Software Radio Peripheral Hardware Drivers handle calibration information. This application reduces RX IQ imbalance within the specified frequency range using transmit leakage into the receive path. Remove all external hardware from the RF antenna ports before using this application. This can take up to several minutes with default settings. .LP NOTE: This application can only be used with the WBX, SBX, XCVR2450, and RFX daughterboards. .SH OPTIONS .TP \fB\-\-help\fR help message .TP \fB\-\-verbose\fR enable some verbose .TP \fB\-\-args\fR arg device address args [default = ""] .TP \fB\-\-tx_wave_freq\fR arg (=507123) Transmit wave frequency in Hz .TP \fB\-\-tx_wave_ampl\fR arg (=0.69999999999999996) Transmit wave amplitude in counts .TP \fB\-\-tx_offset\fR arg (=934400) TX LO offset from the RX LO in Hz .TP \fB\-\-freq_start\fR arg Frequency start in Hz (will use beginning of frequency range if unspecified) .TP \fB\-\-freq_stop\fR arg Frequency stop in Hz (will use end of frequency range if unspecified) .TP \fB\-\-freq_step\fR arg (=7300000) Step size for LO sweep in Hz .TP \fB\-\-nsamps\fR arg (=10000) Samples per data capture .PP .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_cal_tx_dc_offset(1) uhd_cal_tx_iq_balance(1) .SH AUTHOR This manual page was written by Maitland Bottoms and Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2012 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/uhd_cal_tx_dc_offset.1000066400000000000000000000042761224274632000204340ustar00rootroot00000000000000.TH "uhd_cal_tx_dc_offset" "1" "3.5.1" "UHD" "User Commands" .SH NAME uhd_cal_tx_dc_offset \- Generate TX DC Offset Calibration Table for a UHD Device .SH DESCRIPTION The Universal Software Radio Peripheral Hardware Drivers handle calibration information. This application reduces TX DC offset within the specified frequency range using transmit leakage into the receive path. Remove all external hardware from the RF antenna ports before using this application. This can take up to several minutes with default settings. .LP NOTE: This application can only be used with the WBX, SBX, XCVR2450, and RFX daughterboards. .SH OPTIONS .TP \fB\-\-help\fR help message .TP \fB\-\-verbose\fR enable some verbose .TP \fB\-\-args\fR arg device address args [default = ""] .TP \fB\-\-tx_wave_freq\fR arg (=507123) Transmit wave frequency in Hz .TP \fB\-\-tx_wave_ampl\fR arg (=0.69999999999999996) Transmit wave amplitude in counts .TP \fB\-\-rx_offset\fR arg (=934400) RX LO offset from the TX LO in Hz .TP \fB\-\-freq_start\fR arg Frequency start in Hz (will use beginning of frequency range if unspecified) .TP \fB\-\-freq_stop\fR arg Frequency stop in Hz (will use end of frequency range if unspecified) .TP \fB\-\-freq_step\fR arg (=7300000) Step size for LO sweep in Hz .TP \fB\-\-nsamps\fR arg (=10000) Samples per data capture .PP .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_cal_rx_iq_balance(1) uhd_cal_tx_iq_balance(1) .SH AUTHOR This manual page was written by Maitland Bottoms and Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2012 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/uhd_cal_tx_iq_balance.1000066400000000000000000000043031224274632000205450ustar00rootroot00000000000000.TH "uhd_cal_tx_iq_balance" "1" "3.5.1" "UHD" "User Commands" .SH NAME uhd_cal_tx_iq_balance \- Generate TX IQ Balance Calibration Table for a UHD Device .SH DESCRIPTION The Universal Software Radio Peripheral Hardware Drivers handle calibration information. This application reduces TX IQ imbalance within the specified frequency range using transmit leakage into the receive path. Remove all external hardware from the RF antenna ports before using this application. This can take up to several minutes with default settings. .LP NOTE: This application can only be used with the WBX, SBX, XCVR2450, and RFX daughterboards. .SH OPTIONS .TP \fB\-\-help\fR help message .TP \fB\-\-verbose\fR enable some verbose .TP \fB\-\-args\fR arg device address args [default = ""] .TP \fB\-\-tx_wave_freq\fR arg (=507123) Transmit wave frequency in Hz .TP \fB\-\-tx_wave_ampl\fR arg (=0.69999999999999996) Transmit wave amplitude in counts .TP \fB\-\-rx_offset\fR arg (=934400) RX LO offset from the TX LO in Hz .TP \fB\-\-freq_start\fR arg Frequency start in Hz (will use beginning of frequency range if unspecified) .TP \fB\-\-freq_stop\fR arg Frequency stop in Hz (will use end of frequency range if unspecified) .TP \fB\-\-freq_step\fR arg (=7300000) Step size for LO sweep in Hz .TP \fB\-\-nsamps\fR arg (=10000) Samples per data capture .PP .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_cal_tx_dc_offset(1) uhd_cal_rx_iq_balance(1) .SH AUTHOR This manual page was written by Maitland Bottoms and Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2012 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/uhd_find_devices.1000066400000000000000000000063431224274632000175650ustar00rootroot00000000000000.TH "uhd_find_devices" 1 "3.5.1" UHD "User Commands" .SH NAME uhd_find_devices \- USRP Hardware Driver Discovery Utility .SH DESCRIPTION Find UHD-supporting Software Radio Peripherals attached by USB, network or embedded configuration. .LP The UHD package is the universal hardware driver for Ettus Research products. The goal is to provide a host driver and API for current and future Ettus Research products. Users will be able to use the UHD driver standalone or with 3rd party applications. .LP Hardware supporting UHD drivers includes the Universal Software Radio Peripheral, or USRP, available in several models. .SH SYNOPSIS .B uhd_find_devices [OPTIONS] .SH OPTIONS .IP "Device Address Arguments:" --args \fIarg\fR .IP "This help information:" --help .SH IDENTIFYING USRP DEVICES .sp Devices are addressed through key/value string pairs. These string pairs can be used to narrow down the search for a specific device or group of devices. Most UHD utility applications and examples have a \-\-args parameter that takes a device address, where the device address is expressed as a delimited string. See the documentation in types/device_addr.hpp for reference. Every device has several ways of identifying it on the host system. .SS Identifying by hardware identifier .sp All USRP devices can be found through their hardware series identifier, which match to USRP devices as follows: Argument | Device type=usrp1 | USRP1 type=usrp2 | USRP2, USRP N200, USRP N210 type=b100 | USRP B100 type=e100 | USRP E100, USRP E110 .SS Identifying by serial number All USRP devices are given a unique serial number, which can be used to identify a device as follows: serial=12345678 .SS Identifying by IP address USRP2, USRP N200, and USRP N210 devices connected to the host machine can all be found through their IP addresses, as follows: addr=192.168.10.2 .SS Identifying by name Users have the option of giving their USRP devices short names using the usrp_burn_mb_eeprom utility in lib/uhd/utils. Devices that have been given a name can be identified as follows: name=foo .fi .SH EXAMPLES .SS Device discovery via command line .sp Device address arguments can be supplied to narrow the scope of the search. .sp .nf .ft C uhd_find_devices \-\-args="type=usrp1" \-\- OR \-\- uhd_find_devices \-\-args="serial=12345678" .ft P .fi .IP "Find all devices available to this system:" uhd_find_devices .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_usrp_probe(1) .SH AUTHOR This manual page was written by Maitland Bottoms and Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2010 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/uhd_images_downloader.1000066400000000000000000000041201224274632000206150ustar00rootroot00000000000000.TH "uhd_images_downloader" 1 "3.5.1" UHD "User Commands" .SH NAME uhd_images_downloader \- USRP Hardware Driver firmware/FPGA downloader .SH DESCRIPTION The UHD package is the universal hardware driver for Ettus Research products. The goal of the UHD is to provide a host driver and API for current and future Ettus Research products. Users will be able to use the UHD driver standalone or with 3rd party applications. .LP Hardware supporting UHD drivers includes the Universal Software Radio Peripheral, or USRP, available in several models. .LP This program installs the firmware and FPGA binaries from Ettus Research matching this UHD driver release onto the host system. If the uhd-images package is installed, there is no need to run this installer. .SH SYNOPSIS .B uhd_images_downloader Usage: uhd_images_downloader.py [options] .SH OPTIONS This program works best without any arguments. .PP -h, --help show this help message and exit .PP --download-location=DOWNLOAD_LOCATION Set custom download location for images, [default=/usr/share/uhd/images] .PP --buffer-size=BUFFER_SIZE Set download buffer size, [default=8192] .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp usrp2_card_burner(1) usrp_n2xx_simple_net_burner(1) .SH AUTHOR This manual page was written by Maitland Bottoms and Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2012 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/uhd_usrp_probe.1000066400000000000000000000066561224274632000173320ustar00rootroot00000000000000.TH "uhd_usrp_probe" 1 "3.5.1" UHD "User Commands" .SH NAME uhd_usrp_probe \- Universal Hardware Driver Peripheral Report Utility .SH DESCRIPTION Report detailed information on UHD-supported Software Radio Peripherals attached by USB, network, or embedded configuration. .LP The UHD package is the universal hardware driver for Ettus Research products. The goal is to provide a host driver and API for current and future Ettus Research products. Users will be able to use the UHD driver standalone or with 3rd party applications. .LP Details include unit names, revision numbers, and available sensors on all attached USRP motherboards and daughterboards. .SH SYNOPSIS .B uhd_usrp_probe [OPTIONS] .SH OPTIONS .IP "Device Address Arguments:" --args \fIarg\fR .IP "Print a complete property tree:" --tree .IP "Query a string value from the properties tree:" --string \fIarg\fR .IP "Print the version string and exit:" --version .IP "This help information:" --help .SH IDENTIFYING USRP DEVICES .sp Devices are addressed through key/value string pairs. These string pairs can be used to narrow down the search for a specific device or group of devices. Most UHD utility applications and examples have a \-\-args parameter that takes a device address, where the device address is expressed as a delimited string. See the documentation in types/device_addr.hpp for reference. Every device has several ways of identifying it on the host system. .SS Identifying by hardware identifier .sp All USRP devices can be found through their hardware series identifier, which match to USRP devices as follows: Argument | Device type=usrp1 | USRP1 type=usrp2 | USRP2, USRP N200, USRP N210 type=b100 | USRP B100 type=e100 | USRP E100, USRP E110 .SS Identifying by serial number All USRP devices are given a unique serial number, which can be used to identify a device as follows: serial=12345678 .SS Identifying by IP address USRP2, USRP N200, and USRP N210 devices connected to the host machine can all be found through their IP addresses, as follows: addr=192.168.10.2 .SS Identifying by name Users have the option of giving their USRP devices short names using the usrp_burn_mb_eeprom utility in lib/uhd/utils. Devices that have been given a name can be identified as follows: name=foo .fi .fi .SH EXAMPLES .SS Device discovery via command line .sp Device address arguments can be supplied to narrow the scope of the search. .sp .nf .ft C uhd_usrp_probe \-\-args="type=usrp1" \-\- OR \-\- uhd_usrp_probe \-\-args="serial=12345678" .ft P .fi .IP "Find all devices available to this system:" uhd_usrp_probe .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_find_devices(1) .SH AUTHOR This manual page was written by Maitland Bottoms and Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2010 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/usrp1.rst000066400000000000000000000071671224274632000160320ustar00rootroot00000000000000======================================================================== UHD - USRP1 Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Comparative features list ------------------------------------------------------------------------ * 2 transceiver card slots * 2 RX DDC chains in FPGA * 2 TX DUC chains in FPGA (no TX CORDIC -> uses DAC) * 64 MHz fixed clock rate * sc16 sample modes * sc8 sample mode - RX only ------------------------------------------------------------------------ Specify a Non-standard Image ------------------------------------------------------------------------ The standard USRP1 images installer comes with two FPGA images: * **usrp1_fpga.rbf:** 2 DDCs + 2 DUCs * **usrp1_fpga_4rx.rbf:** 4 DDCs + 0 DUCs By default, the USRP1 uses the FPGA image with 2 DDCs and 2 DUCs. However, a device address parameter can be used to override the FPGA image selection to use an alternate or a custom FPGA image. See the images application notes for installing custom images. Example device address string representations to specify non-standard firmware and/or FPGA images: :: fpga=usrp1_fpga_4rx.rbf -- OR -- fw=usrp1_fw_custom.ihx -- OR -- fpga=usrp1_fpga_4rx.rbf, fw=usrp1_fw_custom.ihx ------------------------------------------------------------------------ Missing and Emulated Features ------------------------------------------------------------------------ The USRP1 FPGA does not have the necessary space to support the advanced streaming capabilities that are possible with the newer USRP devices. Some of these features are emulated in software to support the API. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ List of emulated features ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Setting the current device time * Getting the current device time * Transmitting at a specific time * Transmitting a specific number of samples * Receiving at a specific time * Receiving a specific number of samples * End of burst flags for transmit/receive * Notification on late stream command * Notification on late transmit packet * Notification on underflow or overflow * Notification on broken chain error **Note:** These emulated features rely on the host system's clock for timed operations and therefore may not have sufficient precision for the application. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ List of missing features ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * Start of burst flags for transmit/receive ------------------------------------------------------------------------ Hardware Setup Notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ External clock modification ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The USRP can be modified to accept an external clock reference instead of the 64MHz onboard reference. * Solder SMA (**LTI-SASF54GT**) connector to **J2001**. * Move 0 ohm 0603 resistor **R2029** to **R2030**. * Move 0.01uF 0603 capacitor **C925** to **C926**. * Remove 0.01uF 0603 capacitor **C924**. The new external clock needs to be a square wave between +7dBm and +15dBm After the hardware modification, the user should burn the setting into the EEPROM, so UHD can initialize with the correct clock rate. Run the following commands to record the setting into the EEPROM: :: cd /share/uhd/utils ./usrp_burn_mb_eeprom --args= --key=mcr --val= The user may override the clock rate specified in the EEPROM by using a device address: Example: :: uhd_usrp_probe --args="mcr=52e6" uhd-3.5.5/host/docs/usrp2.rst000066400000000000000000000440371224274632000160300ustar00rootroot00000000000000======================================================================== UHD - USRP2 and N2X0 Series Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Comparative features list ------------------------------------------------------------------------ * 1 transceiver card slot * 2 RX DDC chains in FPGA * 1 TX DUC chain in FPGA * Timed commands in FPGA (N2x0 only) * Timed sampling in FPGA * External PPS reference * External 10MHz reference * MIMO cable shared reference * Fixed 100 MHz clock rate * Internal GPSDO option (N2x0 only) * sc8 and sc16 sample modes ------------------------------------------------------------------------ Load the Images onto the SD card (USRP2 only) ------------------------------------------------------------------------ **Warning!** Use **usrp2_card_burner.py** with caution. If you specify the wrong device node, you could overwrite your hard drive. Make sure that **--dev=** specifies the SD card. **Warning!** It is possible to use 3rd party SD cards with the USRP2. However, certain types of SD cards will not interface with the CPLD: * Cards can be SDHC, which is not a supported interface. * Cards can have unexpected timing characteristics. For these reasons, we recommend that you use the SD card that was supplied with the USRP2. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use the card burner tool (UNIX) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: sudo /share/uhd/utils/usrp2_card_burner_gui.py -- OR -- cd /share/uhd/utils sudo ./usrp2_card_burner.py --dev=/dev/sd --fpga= sudo ./usrp2_card_burner.py --dev=/dev/sd --fw= Use the **--list** option to get a list of possible raw devices. The list result will filter out disk partitions and devices too large to be the sd card. The list option has been implemented on Linux, Mac OS X, and Windows. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use the card burner tool (Windows) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: /share/uhd/utils/usrp2_card_burner_gui.py ------------------------------------------------------------------------ Load the Images onto the On-board Flash (USRP-N Series only) ------------------------------------------------------------------------ The USRP-N Series can be reprogrammed over the network to update or change the firmware and FPGA images. When updating images, always burn both the FPGA and firmware images before power cycling. This ensures that when the device reboots, it has a compatible set of images to boot into. **Note:** Different hardware revisions require different FPGA images. Determine the revision number from the sticker on the rear of the chassis. Use this number to select the correct FPGA image for your device. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use the net burner tool (UNIX) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: /share/uhd/utils/usrp_n2xx_net_burner_gui.py -- OR -- cd /share/uhd/utils ./usrp_n2xx_net_burner.py --addr= --fw= ./usrp_n2xx_net_burner.py --addr= --fpga= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use the net burner tool (Windows) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :: /share/uhd/utils/usrp_n2xx_net_burner_gui.py ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Burning images without Python ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For users who do not wish to install Python, a new script is available in UHD 003.005.000: the USRP N2XX Simple Net Burner. It provides the same functionality as its Python counterpart, but by default, it automatically installs the default images without the user needing to specify their location on the command line. The utility can be found at: **/share/uhd/utils/usrp_n2xx_simple_net_burner** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Device recovery and bricking ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Its possible to put the device into an unusable state by loading bad images. Fortunately, the USRP-N Series can be booted into a safe (read-only) image. Once booted into the safe image, the user can once again load images onto the device. The safe-mode button is a pushbutton switch (S2) located inside the enclosure. To boot into the safe image, hold-down the safe-mode button while power-cycling the device. Continue to hold-down the button until the front-panel LEDs blink and remain solid. When in safe-mode, the USRP-N device will always have the IP address **192.168.10.2**. ------------------------------------------------------------------------ Setup Networking ------------------------------------------------------------------------ The USRP2 only supports Gigabit Ethernet and will not work with a 10/100 Mbps interface. However, a 10/100 Mbps interface can be connected indirectly to a USRP2 through a Gigabit Ethernet switch. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Setup the host interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The USRP2 communicates at the IP/UDP layer over the gigabit ethernet. The default IP address of the USRP2 is **192.168.10.2**. You will need to configure the host's Ethernet interface with a static IP address to enable communication. An address of **192.168.10.1** and a subnet mask of **255.255.255.0** is recommended. On a Linux system, you can set a static IP address very easily by using the 'ifconfig' command: :: sudo ifconfig 192.168.10.1 Note that **** is usually something like **eth0**. You can discover the names of the network interfaces in your computer by running **ifconfig** without any parameters: :: ifconfig -a **Note:** When using UHD, if an IP address for the USRP2 is not specified, the software will use UDP broadcast packets to locate the USRP2. On some systems, the firewall will block UDP broadcast packets. It is recommended that you change or disable your firewall settings. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Multiple devices per host ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For maximum throughput, one Ethernet interface per USRP2 is recommended, although multiple devices may be connected via a Gigabit Ethernet switch. In any case, each Ethernet interface should have its own subnet, and the corresponding USRP2 device should be assigned an address in that subnet. Example: **Configuration for USRP2 device 0:** * Ethernet interface IPv4 address: **192.168.10.1** * Ethernet interface subnet mask: **255.255.255.0** * USRP2 device IPv4 address: **192.168.10.2** **Configuration for USRP2 device 1:** * Ethernet interface IPv4 address: **192.168.20.1** * Ethernet interface subnet mask: **255.255.255.0** * USRP2 device IPv4 address: **192.168.20.2** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Change the USRP2's IP address ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You may need to change the USRP2's IP address for several reasons: * to satisfy your particular network configuration * to use multiple USRP2s on the same host computer * to set a known IP address into USRP2 (in case you forgot) **Method 1:** To change the USRP2's IP address, you must know the current address of the USRP2, and the network must be setup properly as described above. Run the following commands: :: cd /share/uhd/utils ./usrp_burn_mb_eeprom --args= --key=ip-addr --val=192.168.10.3 **Method 2 (Linux Only):** This method assumes that you do not know the IP address of your USRP2. It uses raw Ethernet packets to bypass the IP/UDP layer to communicate with the USRP2. Run the following commands: :: cd /share/uhd/utils sudo ./usrp2_recovery.py --ifc=eth0 --new-ip=192.168.10.3 ------------------------------------------------------------------------ Communication Problems ------------------------------------------------------------------------ When setting up a development machine for the first time, you may have various difficulties communicating with the USRP device. The following tips are designed to help narrow down and diagnose the problem. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: no control response ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is a common error that occurs when you have set the subnet of your network interface to a different subnet than the network interface of the USRP. For example, if your network interface is set to **192.168.20.1**, and the USRP is **192.168.10.2** (note the difference in the third numbers of the IP addresses), you will likely see a 'no control response' error message. Fixing this is simple - just set the your host PC's IP address to the same subnet as that of your USRP. Instructions for setting your IP address are in the previous section of this documentation. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Firewall issues ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ When the IP address is not specified, the device discovery broadcasts UDP packets from each ethernet interface. Many firewalls will block the replies to these broadcast packets. If disabling your system's firewall or specifying the IP address yields a discovered device, then your firewall may be blocking replies to UDP broadcast packets. If this is the case, we recommend that you disable the firewall or create a rule to allow all incoming packets with UDP source port **49152**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ping the device ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The USRP will reply to ICMP echo requests. A successful ping response means that the device has booted properly and that it is using the expected IP address. :: ping 192.168.10.2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Monitor the serial output ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Read the serial port to get debug verbose output from the embedded microcontroller. The microcontroller prints useful information about IP addresses, MAC addresses, control packets, fast-path settings, and bootloading. Use a standard USB to 3.3v-level serial converter at 230400 baud. Connect **GND** to the converter ground, and connect **TXD** to the converter receive. The **RXD** pin can be left unconnected as this is only a one-way communication. * **USRP2:** Serial port located on the rear edge * **N210:** Serial port located on the left side ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Monitor the host network traffic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Use Wireshark to monitor packets sent to and received from the device. ------------------------------------------------------------------------ Addressing the Device ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Single device configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In a single-device configuration, the USRP device must have a unique IPv4 address on the host computer. The USRP can be identified through its IPv4 address, resolvable hostname, or by other means. See the application notes on `device identification <./identification.html>`_. Use this addressing scheme with the **single_usrp** interface. Example device address string representation for a USRP2 with IPv4 address **192.168.10.2**: :: addr=192.168.10.2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Multiple device configuration ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In a multi-device configuration, each USRP device must have a unique IPv4 address on the host computer. The device address parameter keys must be suffixed with the device index. Each parameter key should be of the format . Use this addressing scheme with the **multi_usrp** interface. * The order in which devices are indexed corresponds to the indexing of the transmit and receive channels. * The key indexing provides the same granularity of device identification as in the single device case. Example device address string representation for 2 USRP2s with IPv4 addresses **192.168.10.2** and **192.168.20.2**: :: addr0=192.168.10.2, addr1=192.168.20.2 ------------------------------------------------------------------------ Using the MIMO Cable ------------------------------------------------------------------------ The MIMO cable allows two USRP devices to share reference clocks, time synchronization, and the Ethernet interface. One of the devices will sync its clock and time references to the MIMO cable. This device will be referred to as the slave, and the other device, the master. * The slave device acquires the clock and time references from the master device. * The master and slave may be used individually or in a multi-device configuration. * External clocking is optional and should only be supplied to the master device. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Shared ethernet mode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In shared Ethernet mode, only one device in the configuration can be attached to the Ethernet. * Clock reference, time reference, and data are communicated over the MIMO cable. * Master and slave must have different IPv4 addresses in the same subnet. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dual ethernet mode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In dual Ethernet mode, both devices in the configuration must be attached to the Ethernet. * Only clock reference and time reference are communicated over the MIMO cable. * The master and slave must have different IPv4 addresses in different subnets. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Configuring the slave ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In order for the slave to synchronize to the master over MIMO cable, the following clock configuration must be set on the slave device: :: uhd::clock_config_t clock_config; clock_config.ref_source = uhd::clock_config_t::REF_MIMO; clock_config.pps_source = uhd::clock_config_t::PPS_MIMO; usrp->set_clock_config(clock_config, slave_index); ------------------------------------------------------------------------ Alternative stream destination ------------------------------------------------------------------------ It is possible to program the USRP to send RX packets to an alternative IP/UDP destination. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set the subnet and gateway ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To use an alternative streaming destination, the device needs to be able to determine if the destination address is within its subnet, and ARP appropriately. Therefore, the user should ensure that subnet and gateway addresses have been programmed into the device's EEPROM. Run the following commands: :: cd /share/uhd/utils ./usrp_burn_mb_eeprom --args= --key=subnet --val=255.255.255.0 ./usrp_burn_mb_eeprom --args= --key=gateway --val=192.168.10.1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Create a receive streamer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set the stream args "addr" and "port" values to the alternative destination. Packets will be sent to this destination when the user issues a stream command. :: //create a receive streamer, host type does not matter uhd::stream_args_t stream_args("fc32"); //resolvable address and port for a remote udp socket stream_args.args["addr"] = "192.168.10.42"; stream_args.args["port"] = "12345"; //create the streamer uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //issue stream command uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = total_num_samps; stream_cmd.stream_now = true; usrp->issue_stream_cmd(stream_cmd); **Note:** Calling recv() on this streamer object should yield a timeout. ------------------------------------------------------------------------ Hardware Setup Notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Front panel LEDs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The LEDs on the front panel can be useful in debugging hardware and software issues. The LEDs reveal the following about the state of the device: * **LED A:** transmitting * **LED B:** mimo cable link * **LED C:** receiving * **LED D:** firmware loaded * **LED E:** reference lock * **LED F:** CPLD loaded ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ref Clock - 10MHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Using an external 10MHz reference clock, a square wave will offer the best phase noise performance, but a sinusoid is acceptable. The reference clock requires the following power level: * **USRP2** 5 to 15dBm * **N2XX** 0 to 15dBm ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PPS - Pulse Per Second ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Using a PPS signal for timestamp synchronization requires a square wave signal with the following amplitude: * **USRP2** 5Vpp * **N2XX** 3.3 to 5Vpp Test the PPS input with the following app: * **** are device address arguments (optional if only one USRP is on your machine) :: cd /share/uhd/examples ./test_pps_input --args= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Internal GPSDO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Please see the `Internal GPSDO Application Notes <./gpsdo.html>`_ for information on configuring and using the internal GPSDO. ------------------------------------------------------------------------ Miscellaneous ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Available Sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following sensors are available for the USRP2/N-Series motherboards; they can be queried through the API. * **mimo_locked** - clock reference locked over the MIMO cable * **ref_locked** - clock reference locked (internal/external) * other sensors are added when the GPSDO is enabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Multiple RX channels ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There are two complete DDC chains in the FPGA. In the single channel case, only one chain is ever used. To receive from both channels, the user must set the **RX** subdevice specification. This hardware has only one daughterboard slot, which has been aptly named slot **A**. In the following example, a TVRX2 is installed. Channel 0 is sourced from subdevice **RX1**, and channel 1 is sourced from subdevice **RX2**: :: usrp->set_rx_subdev_spec("A:RX1 A:RX2"); uhd-3.5.5/host/docs/usrp2_card_burner.1000066400000000000000000000030571224274632000177230ustar00rootroot00000000000000.TH "usrp2_card_burner" 1 "3.5.1" UHD "User Commands" .SH NAME usrp2_card_burner - USRP N-Series FPGA/Firmware Burner .SH DESCRIPTION Burn USRP2 firmware and FPGA images onto an SD card plugged into the host machine. .SH SYNOPSIS .B usrp2_card_burner [OPTIONS] .SH OPTIONS .IP "Raw device path:" --addr=\fI"Address"\fR (default: 192.168.10.2) .IP "This help information:" --help .IP "Firmware Filepath:" --fw=\fI"filepath"\fR .IP "FPGA Filepath:" --fpga=\fI"filepath"\fR .IP "List all USRP devices without burning" --list .IP "Override safety check" --force .SH EXAMPLES .SS Standard burning procedure .sp usrp2_card_burner --dev=/dev/sdd1 --fw=usrp2_fw.bin --fpga=usrp2_fpga.bin .ft .fi .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_images_downloader(1) usrp_n2xx_simple_net_burner(1) .SH AUTHOR This manual page was written by Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2012 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/docs/usrp_b100.rst000066400000000000000000000067361224274632000164740ustar00rootroot00000000000000======================================================================== UHD - USRP-B100 Series Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Comparative features list ------------------------------------------------------------------------ * 1 transceiver card slot * 1 RX DDC chain in FPGA * 1 TX DUC chain in FPGA * Timed commands in FPGA * Timed sampling in FPGA * External PPS reference * External 10MHz reference * Configurable clock rate (defaults 64 MHz) * sc8 and sc16 sample modes ------------------------------------------------------------------------ Specify a Non-standard Image ------------------------------------------------------------------------ UHD will automatically select the USRP B-Series images from the installed images package. The image selection can be overridden with the **--fpga=** and **--fw=** device address parameters. Example device address string representations to specify non-standard images: :: fpga=usrp_b100_fpga_firmware.bin -- OR -- fw=usrp_b100_fw_firmware.ihx ------------------------------------------------------------------------ Changing the Master Clock Rate ------------------------------------------------------------------------ The master clock rate of the USRP embedded feeds both the FPGA DSP and the codec chip. Hundreds of rates between 32MHz and 64MHz are available. A few notable rates are: * **64MHz:** maximum rate of the codec chip * **61.44MHz:** good for UMTS/WCDMA applications * **52Mhz:** good for GSM applications ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set 61.44MHz - uses external VCXO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To use the 61.44MHz clock rate, the USRP embedded will require one jumper to be moved, and X4 must be populated with a 61.44 MHz oscillator. * **J15** is a three pin header, move the jumper to (pin1, pin2) * **357LB3I061M4400** is the recommended oscillator for X4 **Note:** See instructions below to communicate the desired clock rate into UHD. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set other rates - uses internal VCO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To use other clock rates, the jumper will need to be in the default position. * **J15** is a three pin header, move the jumper to (pin2, pin3) To communicate the desired clock rate into UHD, specify the a special device address argument, where the key is **master_clock_rate** and the value is a rate in Hz. Example: :: uhd_usrp_probe --args="master_clock_rate=52e6" ------------------------------------------------------------------------ Hardware setup notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Front panel LEDs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The LEDs on the front panel can be useful in debugging hardware and software issues. The LEDs reveal the following about the state of the device: * **LED A:** transmitting * **LED B:** fpga loaded * **LED C:** receiving * **LED D:** fpga loaded * **LED E:** reference lock * **LED F:** board power ------------------------------------------------------------------------ Miscellaneous ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Available Sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following sensors are available; they can be queried through the API. * **ref_locked:** clock reference locked (internal/external) uhd-3.5.5/host/docs/usrp_e1x0.rst000066400000000000000000000121421224274632000165730ustar00rootroot00000000000000======================================================================== UHD - USRP-E1X0 Series Application Notes ======================================================================== .. contents:: Table of Contents ------------------------------------------------------------------------ Comparative features list ------------------------------------------------------------------------ * 1 transceiver card slot * 2 RX DDC chains in FPGA * 1 TX DUC chain in FPGA * Timed commands in FPGA * Timed sampling in FPGA * Internal PPS reference * Internal 10MHz reference * Configurable clock rate (defaults 64 MHz) * Internal GPSDO option * sc8 and sc16 sample modes ------------------------------------------------------------------------ Specify a Non-standard Image ------------------------------------------------------------------------ UHD will automatically select the USRP-Embedded FPGA image from the installed images package. The FPGA image selection can be overridden with the **--fpga=** device address parameter. Example device address string representations to specify non-standard FPGA image: :: fpga=usrp_e100_custom.bin ------------------------------------------------------------------------ Changing the Master Clock Rate ------------------------------------------------------------------------ The master clock rate of the USRP-Embedded feeds both the FPGA DSP and the codec chip. Hundreds of rates between 32MHz and 64MHz are available. A few notable rates are: * **64MHz:** maximum rate of the codec chip * **61.44MHz:** good for UMTS/WCDMA applications * **52Mhz:** good for GSM applications ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set 61.44MHz - uses external VCXO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To use the 61.44MHz clock rate with the USRP-Embedded, two jumpers must be moved on the device. * **J16** is a two pin header; remove the jumper (or leave it on pin1 only). * **J15** is a three pin header; move the jumper to (pin1, pin2). **Note:** See instructions below to communicate the desired clock rate UHD. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Set other rates - uses internal VCO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To use other clock rates, the jumpers will need to be in the default position. * **J16** is a two pin header; move the jumper to (pin1, pin2). * **J15** is a three pin header; move the jumper to (pin2, pin3). To communicate the desired clock rate into UHD, specify the a special device address argument, where the key is **master_clock_rate** and the value is a rate in Hz. Example: :: uhd_usrp_probe --args="master_clock_rate=52e6" ------------------------------------------------------------------------ Clock Synchronization ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ref Clock - 10MHz ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The E1xx has a 10MHz TCXO which can be used to discipline the flexible clocking by selecting **REF_INT** for the **clock_config_t**. Alternately, an external 10MHz reference clock can be supplied by soldering a connector. * Connector **J10** (REF_IN) needs MCX connector **WM5541-ND** or similar. * Square wave will offer the best phase noise performance, but sinusoid is acceptable. * **Power level:** 0 to 15dBm * Select **REF_SMA** in **clock_config_t**. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ PPS - Pulse Per Second ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ An exteral PPS signal for timestamp synchronization can be supplied by soldering a connector. * Connector **J13** (PPS) needs MCX connector **WM5541-ND** or similar. * Requires a square wave signal. * **Amplitude:** 3.3 to 5Vpp Test the PPS input with the following app: * **/share/uhd/examples ./test_pps_input --args= ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Internal GPSDO ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Please see the `Internal GPSDO Application Notes <./gpsdo.html>`_ for information on configuring and using the internal GPSDO. UHD will always try to detect an installed GPSDO at runtime. There is not a special EEPROM value to burn for GPSDO detection. ------------------------------------------------------------------------ Hardware Setup Notes ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Front panel LEDs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The LEDs on the front panel can be useful in debugging hardware and software issues. The LEDs reveal the following about the state of the device: * **LED A:** transmitting * **LED B:** PPS signal * **LED C:** receiving * **LED D:** fpga loaded * **LED E:** reference lock * **LED F:** board power ------------------------------------------------------------------------ Miscellaneous ------------------------------------------------------------------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Available Sensors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The following sensors are available; they can be queried through the API. * **ref_locked:** clock reference locked (internal/external) * other sensors are added when the GPSDO is enabled uhd-3.5.5/host/docs/usrp_n2xx_simple_net_burner.1000066400000000000000000000036131224274632000220440ustar00rootroot00000000000000.TH "usrp_n2xx_simple_net_burner" 1 "3.5.1" UHD "User Commands" .SH NAME usrp_n2xx_simple_net_burner - USRP N-Series FPGA/Firmware Burner .SH DESCRIPTION Burn firmware and FPGA images onto connected USRP N-Series devices. The program takes an IP address as an argument, queries the USRP device to identify which model and revision it is, and burns the appropriate images over Ethernet. .SH SYNOPSIS .B usrp_n2xx_simple_net_burner [OPTIONS] .SH OPTIONS This program works best when only an IP address is specified. .IP "Device IP Address:" --addr=\fI"Address"\fR (default: 192.168.10.2) .IP "This help information:" --help .IP "Custom Firmware Filepath:" --fw=\fI"filepath"\fR .IP "Custom FPGA Filepath:" --fpga=\fI"filepath"\fR .IP "Don't burn firmware:" --no_fw .IP "Don't burn FPGA:" --no_fpga .IP "Automatically reboot USRP device after burning" --auto_reboot .IP "List all USRP devices without burning" --list .SH EXAMPLES .SS Selecting a USRP device with a non-standard IP address .sp usrp_n2xx_simple_net_burner --addr=192.168.10.3 .ft .fi .SH SEE ALSO UHD documentation: .B http://files.ettus.com/uhd_docs/manual/html/index.html .LP GR-UHD documentation: .B http://gnuradio.org/doc/doxygen/page_uhd.html .LP Other UHD programs: .sp uhd_images_downloader(1) usrp2_card_burner(1) .SH AUTHOR This manual page was written by Nicholas Corgan for the Debian project (but may be used by others). .SH COPYRIGHT Copyright (c) 2012 Ettus Research LLC .LP This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. .LP This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. uhd-3.5.5/host/examples/000077500000000000000000000000001224274632000151015ustar00rootroot00000000000000uhd-3.5.5/host/examples/CMakeLists.txt000066400000000000000000000043331224274632000176440ustar00rootroot00000000000000# # Copyright 2010-2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # example applications ######################################################################## SET(example_sources benchmark_rate.cpp network_relay.cpp rx_multi_samples.cpp rx_samples_to_file.cpp rx_samples_to_udp.cpp rx_timed_samples.cpp test_dboard_coercion.cpp test_messages.cpp test_pps_input.cpp test_timed_commands.cpp transport_hammer.cpp tx_bursts.cpp tx_samples_from_file.cpp tx_timed_samples.cpp tx_waveforms.cpp txrx_loopback_to_file.cpp latency_test.cpp ) #for each source: build an executable and install FOREACH(example_source ${example_sources}) GET_FILENAME_COMPONENT(example_name ${example_source} NAME_WE) ADD_EXECUTABLE(${example_name} ${example_source}) TARGET_LINK_LIBRARIES(${example_name} uhd ${Boost_LIBRARIES}) UHD_INSTALL(TARGETS ${example_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/examples COMPONENT examples) ENDFOREACH(example_source) ######################################################################## # ASCII Art DFT - requires curses, so this part is optional ######################################################################## FIND_PACKAGE(Curses) IF(CURSES_FOUND) INCLUDE_DIRECTORIES(${CURSES_INCLUDE_DIR}) ADD_EXECUTABLE(rx_ascii_art_dft rx_ascii_art_dft.cpp) TARGET_LINK_LIBRARIES(rx_ascii_art_dft uhd ${CURSES_LIBRARIES} ${Boost_LIBRARIES}) UHD_INSTALL(TARGETS rx_ascii_art_dft RUNTIME DESTINATION ${PKG_LIB_DIR}/examples COMPONENT examples) ENDIF(CURSES_FOUND) uhd-3.5.5/host/examples/ascii_art_dft.hpp000066400000000000000000000254621224274632000204160ustar00rootroot00000000000000// // ASCII Art DFT Plotter - Josh Blum // #ifndef ASCII_ART_DFT_HPP #define ASCII_ART_DFT_HPP #include #include #include #include #include namespace acsii_art_dft{ //! Type produced by the log power DFT function typedef std::vector log_pwr_dft_type; /*! * Get a logarithmic power DFT of the input samples. * Samples are expected to be in the range [-1.0, 1.0]. * \param samps a pointer to an array of complex samples * \param nsamps the number of samples in the array * \return a real range of DFT bins in units of dB */ template log_pwr_dft_type log_pwr_dft( const std::complex *samps, size_t nsamps ); /*! * Convert a DFT to a piroundable ascii plot. * \param dft the log power dft bins * \param width the frame width in characters * \param height the frame height in characters * \param samp_rate the sample rate in Sps * \param dc_freq the DC frequency in Hz * \param dyn_rng the dynamic range in dB * \param ref_lvl the reference level in dB * \return the plot as an ascii string */ std::string dft_to_plot( const log_pwr_dft_type &dft, size_t width, size_t height, double samp_rate, double dc_freq, float dyn_rng, float ref_lvl ); } //namespace ascii_dft /*********************************************************************** * Implementation includes **********************************************************************/ #include #include #include /*********************************************************************** * Helper functions **********************************************************************/ namespace {/*anon*/ static const double pi = double(std::acos(-1.0)); //! Round a floating-point value to the nearest integer template int iround(T val){ return (val > 0)? int(val + 0.5) : int(val - 0.5); } //! Pick the closest number that is nice to display template T to_clean_num(const T num){ if (num == 0) return 0; const T pow10 = std::pow(T(10), int(std::floor(std::log10(std::abs(num))))); const T norm = std::abs(num)/pow10; static const int cleans[] = {1, 2, 5, 10}; int clean = cleans[0]; for (size_t i = 1; i < sizeof(cleans)/sizeof(cleans[0]); i++){ if (std::abs(norm - cleans[i]) < std::abs(norm - clean)) clean = cleans[i]; } return ((num < 0)? -1 : 1)*clean*pow10; } //! Compute an FFT with pre-computed factors using Cooley-Tukey template std::complex ct_fft_f( const std::complex *samps, size_t nsamps, const std::complex *factors, size_t start = 0, size_t step = 1 ){ if (nsamps == 1) return samps[start]; std::complex E_k = ct_fft_f(samps, nsamps/2, factors+1, start, step*2); std::complex O_k = ct_fft_f(samps, nsamps/2, factors+1, start+step, step*2); return E_k + factors[0]*O_k; } //! Compute an FFT for a particular bin k using Cooley-Tukey template std::complex ct_fft_k( const std::complex *samps, size_t nsamps, size_t k ){ //pre-compute the factors to use in Cooley-Tukey std::vector > factors; for (size_t N = nsamps; N != 0; N /= 2){ factors.push_back(std::exp(std::complex(0, T(-2*pi*k/N)))); } return ct_fft_f(samps, nsamps, &factors.front()); } //! Helper class to build a DFT plot frame class frame_type{ public: frame_type(size_t width, size_t height): _frame(width-1, std::vector(height, ' ')) { /* NOP */ } //accessors to parts of the frame char &get_plot(size_t b, size_t z){return _frame.at(b+albl_w).at(z+flbl_h);} char &get_albl(size_t b, size_t z){return _frame.at(b) .at(z+flbl_h);} char &get_ulbl(size_t b) {return _frame.at(b) .at(flbl_h-1);} char &get_flbl(size_t b) {return _frame.at(b+albl_w).at(flbl_h-1);} //dimension accessors size_t get_plot_h(void) const{return _frame.front().size() - flbl_h;} size_t get_plot_w(void) const{return _frame.size() - albl_w;} size_t get_albl_w(void) const{return albl_w;} std::string to_string(void){ std::stringstream frame_ss; for (size_t z = 0; z < _frame.front().size(); z++){ for (size_t b = 0; b < _frame.size(); b++){ frame_ss << _frame[b][_frame[b].size()-z-1]; } frame_ss << std::endl; } return frame_ss.str(); } private: static const size_t albl_w = 6, flbl_h = 1; std::vector > _frame; }; } //namespace /*anon*/ /*********************************************************************** * Implementation code **********************************************************************/ namespace acsii_art_dft{ //! skip constants for amplitude and frequency labels static const size_t albl_skip = 5, flbl_skip = 20; template log_pwr_dft_type log_pwr_dft( const std::complex *samps, size_t nsamps ){ if (nsamps & (nsamps - 1)) throw std::runtime_error("num samps is not a power of 2"); //compute the window double win_pwr = 0; std::vector > win_samps; for(size_t n = 0; n < nsamps; n++){ //double w_n = 1; //double w_n = 0.54 //hamming window // -0.46*std::cos(2*pi*n/(nsamps-1)) //; double w_n = 0.35875 //blackman-harris window -0.48829*std::cos(2*pi*n/(nsamps-1)) +0.14128*std::cos(4*pi*n/(nsamps-1)) -0.01168*std::cos(6*pi*n/(nsamps-1)) ; //double w_n = 1 // flat top window // -1.930*std::cos(2*pi*n/(nsamps-1)) // +1.290*std::cos(4*pi*n/(nsamps-1)) // -0.388*std::cos(6*pi*n/(nsamps-1)) // +0.032*std::cos(8*pi*n/(nsamps-1)) //; win_samps.push_back(T(w_n)*samps[n]); win_pwr += w_n*w_n; } //compute the log-power dft log_pwr_dft_type log_pwr_dft; for(size_t k = 0; k < nsamps; k++){ std::complex dft_k = ct_fft_k(&win_samps.front(), nsamps, k); log_pwr_dft.push_back(float( + 20*std::log10(std::abs(dft_k)) - 20*std::log10(T(nsamps)) - 10*std::log10(win_pwr/nsamps) + 3 )); } return log_pwr_dft; } std::string dft_to_plot( const log_pwr_dft_type &dft_, size_t width, size_t height, double samp_rate, double dc_freq, float dyn_rng, float ref_lvl ){ frame_type frame(width, height); //fill this frame //re-order the dft so dc in in the center const size_t num_bins = dft_.size() - 1 + dft_.size()%2; //make it odd log_pwr_dft_type dft(num_bins); for (size_t n = 0; n < num_bins; n++){ dft[n] = dft_[(n + num_bins/2)%num_bins]; } //fill the plot with dft bins for (size_t b = 0; b < frame.get_plot_w(); b++){ //indexes from the dft to grab for the plot const size_t n_start = std::max(iround(double(b-0.5)*(num_bins-1)/(frame.get_plot_w()-1)), 0); const size_t n_stop = std::min(iround(double(b+0.5)*(num_bins-1)/(frame.get_plot_w()-1)), int(num_bins)); //calculate val as the max across points float val = dft.at(n_start); for (size_t n = n_start; n < n_stop; n++) val = std::max(val, dft.at(n)); const float scaled = (val - (ref_lvl - dyn_rng))*(frame.get_plot_h()-1)/dyn_rng; for (size_t z = 0; z < frame.get_plot_h(); z++){ static const std::string syms(".:!|"); if (scaled-z > 1) frame.get_plot(b, z) = syms.at(syms.size()-1); else if (scaled-z > 0) frame.get_plot(b, z) = syms.at(size_t((scaled-z)*syms.size())); } } //create vertical amplitude labels const float db_step = to_clean_num(dyn_rng/(frame.get_plot_h()-1)*albl_skip); for ( float db = db_step*(int((ref_lvl - dyn_rng)/db_step)); db <= db_step*(int(ref_lvl/db_step)); db += db_step ){ const int z = iround((db - (ref_lvl - dyn_rng))*(frame.get_plot_h()-1)/dyn_rng); if (z < 0 or size_t(z) >= frame.get_plot_h()) continue; std::stringstream ss; ss << db; std::string lbl = ss.str(); for (size_t i = 0; i < lbl.size() and i < frame.get_albl_w(); i++){ frame.get_albl(i, z) = lbl[i]; } } //create vertical units label std::string ulbl = "dBfs"; for (size_t i = 0; i < ulbl.size(); i++){ frame.get_ulbl(i+1) = ulbl[i]; } //create horizontal frequency labels const double f_step = to_clean_num(samp_rate/frame.get_plot_w()*flbl_skip); for ( double freq = f_step*int((-samp_rate/2/f_step)); freq <= f_step*int((+samp_rate/2/f_step)); freq += f_step ){ const int b = iround((freq + samp_rate/2)*(frame.get_plot_w()-1)/samp_rate); std::stringstream ss; ss << (freq+dc_freq)/1e6 << "MHz"; std::string lbl = ss.str(); if (b < int(lbl.size()/2) or b + lbl.size() - lbl.size()/2 >= frame.get_plot_w()) continue; for (size_t i = 0; i < lbl.size(); i++){ frame.get_flbl(b + i - lbl.size()/2) = lbl[i]; } } return frame.to_string(); } } //namespace ascii_dft #endif /*ASCII_ART_DFT_HPP*/ /* //example main function to test the dft #include #include #include int main(void){ initscr(); while (true){ clear(); std::vector > samples; for(size_t i = 0; i < 512; i++){ samples.push_back(std::complex( float(std::rand() - RAND_MAX/2)/(RAND_MAX)/4, float(std::rand() - RAND_MAX/2)/(RAND_MAX)/4 )); samples[i] += 0.5*std::sin(i*3.14/2) + 0.7; } acsii_art_dft::log_pwr_dft_type dft; dft = acsii_art_dft::log_pwr_dft(&samples.front(), samples.size()); printw("%s", acsii_art_dft::dft_to_plot( dft, COLS, LINES, 12.5e4, 2.45e9, 60, 0 ).c_str()); sleep(1); } endwin(); std::cout << "here\n"; return 0; } */ uhd-3.5.5/host/examples/benchmark_rate.cpp000066400000000000000000000250701224274632000205560ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Test result variables **********************************************************************/ unsigned long long num_overflows = 0; unsigned long long num_underflows = 0; unsigned long long num_rx_samps = 0; unsigned long long num_tx_samps = 0; unsigned long long num_dropped_samps = 0; unsigned long long num_seq_errors = 0; /*********************************************************************** * Benchmark RX Rate **********************************************************************/ void benchmark_rx_rate(uhd::usrp::multi_usrp::sptr usrp, const std::string &rx_cpu, const std::string &rx_otw){ uhd::set_thread_priority_safe(); //create a receive streamer uhd::stream_args_t stream_args(rx_cpu, rx_otw); for (size_t ch = 0; ch < usrp->get_num_mboards(); ch++) //linear channel mapping stream_args.channels.push_back(ch); uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //print pre-test summary std::cout << boost::format( "Testing receive rate %f Msps" ) % (usrp->get_rx_rate()/1e6) << std::endl; //setup variables and allocate buffer uhd::rx_metadata_t md; const size_t max_samps_per_packet = rx_stream->get_max_num_samps(); std::vector buff(max_samps_per_packet*uhd::convert::get_bytes_per_item(rx_cpu)); std::vector buffs; for (size_t ch = 0; ch < stream_args.channels.size(); ch++) buffs.push_back(&buff.front()); //same buffer for each channel bool had_an_overflow = false; uhd::time_spec_t last_time; const double rate = usrp->get_rx_rate(); uhd::stream_cmd_t cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS); cmd.time_spec = usrp->get_time_now() + uhd::time_spec_t(0.05); cmd.stream_now = (buffs.size() == 1); usrp->issue_stream_cmd(cmd); while (not boost::this_thread::interruption_requested()){ num_rx_samps += rx_stream->recv(buffs, max_samps_per_packet, md); //handle the error codes switch(md.error_code){ case uhd::rx_metadata_t::ERROR_CODE_NONE: if (had_an_overflow){ had_an_overflow = false; num_dropped_samps += boost::math::iround((md.time_spec - last_time).get_real_secs()*rate); } break; case uhd::rx_metadata_t::ERROR_CODE_OVERFLOW: had_an_overflow = true; last_time = md.time_spec; num_overflows++; break; default: std::cerr << "Error code: " << md.error_code << std::endl; std::cerr << "Unexpected error on recv, continuing..." << std::endl; break; } } usrp->issue_stream_cmd(uhd::stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS); } /*********************************************************************** * Benchmark TX Rate **********************************************************************/ void benchmark_tx_rate(uhd::usrp::multi_usrp::sptr usrp, const std::string &tx_cpu, const std::string &tx_otw){ uhd::set_thread_priority_safe(); //create a transmit streamer uhd::stream_args_t stream_args(tx_cpu, tx_otw); for (size_t ch = 0; ch < usrp->get_num_mboards(); ch++) //linear channel mapping stream_args.channels.push_back(ch); uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //print pre-test summary std::cout << boost::format( "Testing transmit rate %f Msps" ) % (usrp->get_tx_rate()/1e6) << std::endl; //setup variables and allocate buffer uhd::tx_metadata_t md; md.time_spec = usrp->get_time_now() + uhd::time_spec_t(0.05); const size_t max_samps_per_packet = tx_stream->get_max_num_samps(); std::vector buff(max_samps_per_packet*uhd::convert::get_bytes_per_item(tx_cpu)); std::vector buffs; for (size_t ch = 0; ch < stream_args.channels.size(); ch++) buffs.push_back(&buff.front()); //same buffer for each channel md.has_time_spec = (buffs.size() != 1); while (not boost::this_thread::interruption_requested()){ num_tx_samps += tx_stream->send(buffs, max_samps_per_packet, md); md.has_time_spec = false; } //send a mini EOB packet md.end_of_burst = true; tx_stream->send(buffs, 0, md); } void benchmark_tx_rate_async_helper(uhd::usrp::multi_usrp::sptr usrp){ //setup variables and allocate buffer uhd::async_metadata_t async_md; while (not boost::this_thread::interruption_requested()){ if (not usrp->get_device()->recv_async_msg(async_md)) continue; //handle the error codes switch(async_md.event_code){ case uhd::async_metadata_t::EVENT_CODE_BURST_ACK: return; case uhd::async_metadata_t::EVENT_CODE_UNDERFLOW: case uhd::async_metadata_t::EVENT_CODE_UNDERFLOW_IN_PACKET: num_underflows++; break; case uhd::async_metadata_t::EVENT_CODE_SEQ_ERROR: case uhd::async_metadata_t::EVENT_CODE_SEQ_ERROR_IN_BURST: num_seq_errors++; break; default: std::cerr << "Event code: " << async_md.event_code << std::endl; std::cerr << "Unexpected event on async recv, continuing..." << std::endl; break; } } } /*********************************************************************** * Main code + dispatcher **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; double duration; double rx_rate, tx_rate; std::string rx_otw, tx_otw; std::string rx_cpu, tx_cpu; std::string mode; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("duration", po::value(&duration)->default_value(10.0), "duration for the test in seconds") ("rx_rate", po::value(&rx_rate), "specify to perform a RX rate test (sps)") ("tx_rate", po::value(&tx_rate), "specify to perform a TX rate test (sps)") ("rx_otw", po::value(&rx_otw)->default_value("sc16"), "specify the over-the-wire sample mode for RX") ("tx_otw", po::value(&tx_otw)->default_value("sc16"), "specify the over-the-wire sample mode for TX") ("rx_cpu", po::value(&rx_cpu)->default_value("fc32"), "specify the host/cpu sample mode for RX") ("tx_cpu", po::value(&tx_cpu)->default_value("fc32"), "specify the host/cpu sample mode for TX") ("mode", po::value(&mode)->default_value("none"), "multi-channel sync mode option: none, mimo") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help") or (vm.count("rx_rate") + vm.count("tx_rate")) == 0){ std::cout << boost::format("UHD Benchmark Rate %s") % desc << std::endl; std::cout << " Specify --rx_rate for a receive-only test.\n" " Specify --tx_rate for a transmit-only test.\n" " Specify both options for a full-duplex test.\n" << std::endl; return ~0; } //create a usrp device std::cout << std::endl; uhd::device_addrs_t device_addrs = uhd::device::find(args); if (not device_addrs.empty() and device_addrs.at(0).get("type", "") == "usrp1"){ std::cerr << "*** Warning! ***" << std::endl; std::cerr << "Benchmark results will be inaccurate on USRP1 due to insufficient features.\n" << std::endl; } std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; if (mode == "mimo"){ usrp->set_clock_source("mimo", 0); usrp->set_time_source("mimo", 0); boost::this_thread::sleep(boost::posix_time::seconds(1)); } boost::thread_group thread_group; //spawn the receive test thread if (vm.count("rx_rate")){ usrp->set_rx_rate(rx_rate); thread_group.create_thread(boost::bind(&benchmark_rx_rate, usrp, rx_cpu, rx_otw)); } //spawn the transmit test thread if (vm.count("tx_rate")){ usrp->set_tx_rate(tx_rate); thread_group.create_thread(boost::bind(&benchmark_tx_rate, usrp, tx_cpu, tx_otw)); thread_group.create_thread(boost::bind(&benchmark_tx_rate_async_helper, usrp)); } //sleep for the required duration const long secs = long(duration); const long usecs = long((duration - secs)*1e6); boost::this_thread::sleep(boost::posix_time::seconds(secs) + boost::posix_time::microseconds(usecs)); //interrupt and join the threads thread_group.interrupt_all(); thread_group.join_all(); //print summary std::cout << std::endl << boost::format( "Benchmark rate summary:\n" " Num received samples: %u\n" " Num dropped samples: %u\n" " Num overflows detected: %u\n" " Num transmitted samples: %u\n" " Num sequence errors: %u\n" " Num underflows detected: %u\n" ) % num_rx_samps % num_dropped_samps % num_overflows % num_tx_samps % num_seq_errors % num_underflows << std::endl; //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/latency_test.cpp000066400000000000000000000150071224274632000203060ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; size_t nsamps; double rate; double rtt; size_t nruns; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("nsamps", po::value(&nsamps)->default_value(100), "number of samples per run") ("nruns", po::value(&nruns)->default_value(1000), "number of tests to perform") ("rtt", po::value(&rtt)->default_value(0.001), "delay between receive and transmit (seconds)") ("rate", po::value(&rate)->default_value(100e6/4), "sample rate for receive and transmit (sps)") ("verbose", "specify to enable inner-loop verbose") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD - Latency Test %s") % desc << std::endl; std::cout << " Latency test receives a packet at time t,\n" " and tries to send a packet at time t + rtt,\n" " where rtt is the round trip time sample time\n" " from device to host and back to the device.\n" << std::endl; return ~0; } bool verbose = vm.count("verbose") != 0; //create a usrp device std::cout << std::endl; //std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; usrp->set_time_now(uhd::time_spec_t(0.0)); //set the tx sample rate usrp->set_tx_rate(rate); std::cout << boost::format("Actual TX Rate: %f Msps...") % (usrp->get_tx_rate()/1e6) << std::endl; //set the rx sample rate usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate()/1e6) << std::endl; //allocate a buffer to use std::vector > buffer(nsamps); //create RX and TX streamers uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //initialize result counts int time_error = 0; int ack = 0; int underflow = 0; int other = 0; for(size_t nrun = 0; nrun < nruns; nrun++){ /*************************************************************** * Issue a stream command some time in the near future **************************************************************/ uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = buffer.size(); stream_cmd.stream_now = false; stream_cmd.time_spec = usrp->get_time_now() + uhd::time_spec_t(0.01); usrp->issue_stream_cmd(stream_cmd); /*************************************************************** * Receive the requested packet **************************************************************/ uhd::rx_metadata_t rx_md; size_t num_rx_samps = rx_stream->recv( &buffer.front(), buffer.size(), rx_md ); if(verbose) std::cout << boost::format("Got packet: %u samples, %u full secs, %f frac secs") % num_rx_samps % rx_md.time_spec.get_full_secs() % rx_md.time_spec.get_frac_secs() << std::endl; /*************************************************************** * Transmit a packet with delta time after received packet **************************************************************/ uhd::tx_metadata_t tx_md; tx_md.start_of_burst = true; tx_md.end_of_burst = true; tx_md.has_time_spec = true; tx_md.time_spec = rx_md.time_spec + uhd::time_spec_t(rtt); size_t num_tx_samps = tx_stream->send( &buffer.front(), buffer.size(), tx_md ); if(verbose) std::cout << boost::format("Sent %d samples") % num_tx_samps << std::endl; /*************************************************************** * Check the async messages for result **************************************************************/ uhd::async_metadata_t async_md; if (not usrp->get_device()->recv_async_msg(async_md)){ std::cout << boost::format("failed:\n Async message recv timed out.\n") << std::endl; continue; } switch(async_md.event_code){ case uhd::async_metadata_t::EVENT_CODE_TIME_ERROR: time_error++; break; case uhd::async_metadata_t::EVENT_CODE_BURST_ACK: ack++; break; case uhd::async_metadata_t::EVENT_CODE_UNDERFLOW: underflow++; break; default: std::cerr << boost::format( "failed:\n Got unexpected event code 0x%x.\n" ) % async_md.event_code << std::endl; other++; break; } } /*************************************************************** * Print the summary **************************************************************/ std::cout << boost::format("\nACK %d, UNDERFLOW %d, TIME_ERR %d, other %d") % ack % underflow % time_error % other << std::endl; return 0; } uhd-3.5.5/host/examples/network_relay.cpp000066400000000000000000000212431224274632000204740ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; namespace asio = boost::asio; typedef boost::shared_ptr socket_type; static const size_t insane_mtu = 9000; boost::mutex spawn_mutex; #if defined(UHD_PLATFORM_MACOS) //limit buffer resize on macos or it will error const size_t rx_dsp_buff_size = size_t(1e6); #else //set to half-a-second of buffering at max rate const size_t rx_dsp_buff_size = size_t(50e6); #endif const size_t tx_dsp_buff_size = (1 << 20); /*********************************************************************** * Signal handlers **********************************************************************/ static bool stop_signal_called = false; void sig_int_handler(int){stop_signal_called = true;} static bool wait_for_recv_ready(int sock_fd){ //setup timeval for timeout timeval tv; tv.tv_sec = 0; tv.tv_usec = 100000; //100ms //setup rset for timeout fd_set rset; FD_ZERO(&rset); FD_SET(sock_fd, &rset); //call select with timeout on receive socket return ::select(sock_fd+1, &rset, NULL, NULL, &tv) > 0; } /*********************************************************************** * Relay class **********************************************************************/ class udp_relay_type{ public: udp_relay_type( const std::string &server_addr, const std::string &client_addr, const std::string &port, const size_t server_rx_size = 0, const size_t server_tx_size = 0, const size_t client_rx_size = 0, const size_t client_tx_size = 0 ):_port(port){ { asio::ip::udp::resolver resolver(_io_service); asio::ip::udp::resolver::query query(asio::ip::udp::v4(), server_addr, port); asio::ip::udp::endpoint endpoint = *resolver.resolve(query); _server_socket = boost::shared_ptr(new asio::ip::udp::socket(_io_service, endpoint)); resize_buffs(_server_socket, server_rx_size, server_tx_size); } { asio::ip::udp::resolver resolver(_io_service); asio::ip::udp::resolver::query query(asio::ip::udp::v4(), client_addr, port); asio::ip::udp::endpoint endpoint = *resolver.resolve(query); _client_socket = boost::shared_ptr(new asio::ip::udp::socket(_io_service)); _client_socket->open(asio::ip::udp::v4()); _client_socket->connect(endpoint); resize_buffs(_client_socket, client_rx_size, client_tx_size); } std::cout << "spawning relay threads... " << _port << std::endl; _thread_group.create_thread(boost::bind(&udp_relay_type::server_thread, this)); spawn_mutex.lock(); spawn_mutex.lock(); spawn_mutex.unlock(); _thread_group.create_thread(boost::bind(&udp_relay_type::client_thread, this)); spawn_mutex.lock(); spawn_mutex.lock(); spawn_mutex.unlock(); std::cout << " done!" << std::endl << std::endl; } ~udp_relay_type(void){ std::cout << "killing relay threads... " << _port << std::endl; _thread_group.interrupt_all(); _thread_group.join_all(); std::cout << " done!" << std::endl << std::endl; } private: static void resize_buffs(socket_type sock, const size_t rx_size, const size_t tx_size){ if (rx_size != 0) sock->set_option(asio::socket_base::receive_buffer_size(rx_size)); if (tx_size != 0) sock->set_option(asio::socket_base::send_buffer_size(tx_size)); } void server_thread(void){ uhd::set_thread_priority_safe(); std::cout << " entering server_thread..." << std::endl; spawn_mutex.unlock(); std::vector buff(insane_mtu); while (not boost::this_thread::interruption_requested()){ if (wait_for_recv_ready(_server_socket->native())){ boost::mutex::scoped_lock lock(_endpoint_mutex); const size_t len = _server_socket->receive_from(asio::buffer(&buff.front(), buff.size()), _endpoint); lock.unlock(); _client_socket->send(asio::buffer(&buff.front(), len)); //perform sequence error detection on tx dsp data (can detect bad network cards) /* if (_port[4] == '7'){ static boost::uint32_t next_seq; const boost::uint32_t this_seq = ntohl(reinterpret_cast(&buff.front())[0]); if (next_seq != this_seq and this_seq != 0) std::cout << "S" << std::flush; next_seq = this_seq + 1; } */ } } std::cout << " exiting server_thread..." << std::endl; } void client_thread(void){ uhd::set_thread_priority_safe(); std::cout << " entering client_thread..." << std::endl; spawn_mutex.unlock(); std::vector buff(insane_mtu); while (not boost::this_thread::interruption_requested()){ if (wait_for_recv_ready(_client_socket->native())){ const size_t len = _client_socket->receive(asio::buffer(&buff.front(), buff.size())); boost::mutex::scoped_lock lock(_endpoint_mutex); _server_socket->send_to(asio::buffer(&buff.front(), len), _endpoint); } } std::cout << " exiting client_thread..." << std::endl; } const std::string _port; boost::thread_group _thread_group; asio::io_service _io_service; asio::ip::udp::endpoint _endpoint; boost::mutex _endpoint_mutex; socket_type _server_socket, _client_socket; }; /*********************************************************************** * Main **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string addr; std::string bind; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("addr", po::value(&addr), "the resolvable address of the usrp (must be specified)") ("bind", po::value(&bind)->default_value("0.0.0.0"), "bind the server to this network address (default: any)") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help") or not vm.count("addr")){ std::cout << boost::format("UHD Network Relay %s") % desc << std::endl << "Runs a network relay between UHD on one computer and a USRP on the network.\n" << "This example is basically for test purposes. Use at your own convenience.\n" << std::endl; return ~0; } { boost::shared_ptr ctrl (new udp_relay_type(bind, addr, "49152")); boost::shared_ptr rxdsp0(new udp_relay_type(bind, addr, "49156", 0, tx_dsp_buff_size, rx_dsp_buff_size, 0)); boost::shared_ptr txdsp0(new udp_relay_type(bind, addr, "49157", tx_dsp_buff_size, 0, 0, tx_dsp_buff_size)); boost::shared_ptr rxdsp1(new udp_relay_type(bind, addr, "49158", 0, tx_dsp_buff_size, rx_dsp_buff_size, 0)); boost::shared_ptr gps (new udp_relay_type(bind, addr, "49172")); std::signal(SIGINT, &sig_int_handler); std::cout << "Press Ctrl + C to stop streaming..." << std::endl; while (not stop_signal_called){ boost::this_thread::sleep(boost::posix_time::milliseconds(100)); } } //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/rx_ascii_art_dft.cpp000066400000000000000000000205101224274632000211070ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include "ascii_art_dft.hpp" //implementation #include #include //gets time #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args, ant, subdev, ref; size_t num_bins; double rate, freq, gain, bw, frame_rate; float ref_lvl, dyn_rng; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "multi uhd device address args") // hardware parameters ("rate", po::value(&rate), "rate of incoming samples (sps)") ("freq", po::value(&freq), "RF center frequency in Hz") ("gain", po::value(&gain), "gain for the RF chain") ("ant", po::value(&ant), "daughterboard antenna selection") ("subdev", po::value(&subdev), "daughterboard subdevice specification") ("bw", po::value(&bw), "daughterboard IF filter bandwidth in Hz") // display parameters ("num-bins", po::value(&num_bins)->default_value(512), "the number of bins in the DFT") ("frame-rate", po::value(&frame_rate)->default_value(5), "frame rate of the display (fps)") ("ref-lvl", po::value(&ref_lvl)->default_value(0), "reference level for the display (dB)") ("dyn-rng", po::value(&dyn_rng)->default_value(60), "dynamic range for the display (dB)") ("ref", po::value(&ref)->default_value("internal"), "waveform type (internal, external, mimo)") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help") or not vm.count("rate")){ std::cout << boost::format("UHD RX ASCII Art DFT %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //Lock mboard clocks usrp->set_clock_source(ref); //always select the subdevice first, the channel mapping affects the other settings if (vm.count("subdev")) usrp->set_rx_subdev_spec(subdev); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the sample rate if (not vm.count("rate")){ std::cerr << "Please specify the sample rate with --rate" << std::endl; return ~0; } std::cout << boost::format("Setting RX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate()/1e6) << std::endl << std::endl; //set the center frequency if (not vm.count("freq")){ std::cerr << "Please specify the center frequency with --freq" << std::endl; return ~0; } std::cout << boost::format("Setting RX Freq: %f MHz...") % (freq/1e6) << std::endl; usrp->set_rx_freq(freq); std::cout << boost::format("Actual RX Freq: %f MHz...") % (usrp->get_rx_freq()/1e6) << std::endl << std::endl; //set the rf gain if (vm.count("gain")){ std::cout << boost::format("Setting RX Gain: %f dB...") % gain << std::endl; usrp->set_rx_gain(gain); std::cout << boost::format("Actual RX Gain: %f dB...") % usrp->get_rx_gain() << std::endl << std::endl; } //set the IF filter bandwidth if (vm.count("bw")){ std::cout << boost::format("Setting RX Bandwidth: %f MHz...") % bw << std::endl; usrp->set_rx_bandwidth(bw); std::cout << boost::format("Actual RX Bandwidth: %f MHz...") % usrp->get_rx_bandwidth() << std::endl << std::endl; } //set the antenna if (vm.count("ant")) usrp->set_rx_antenna(ant); boost::this_thread::sleep(boost::posix_time::seconds(1)); //allow for some setup time //Check Ref and LO Lock detect std::vector sensor_names; sensor_names = usrp->get_rx_sensor_names(0); if (std::find(sensor_names.begin(), sensor_names.end(), "lo_locked") != sensor_names.end()) { uhd::sensor_value_t lo_locked = usrp->get_rx_sensor("lo_locked",0); std::cout << boost::format("Checking RX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } sensor_names = usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(sensor_names.begin(), sensor_names.end(), "mimo_locked") != sensor_names.end())) { uhd::sensor_value_t mimo_locked = usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking RX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end())) { uhd::sensor_value_t ref_locked = usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking RX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //allocate recv buffer and metatdata uhd::rx_metadata_t md; std::vector > buff(num_bins); //------------------------------------------------------------------ //-- Initialize //------------------------------------------------------------------ initscr(); //curses init usrp->issue_stream_cmd(uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS); boost::system_time next_refresh = boost::get_system_time(); //------------------------------------------------------------------ //-- Main loop //------------------------------------------------------------------ while (true){ //read a buffer's worth of samples every iteration size_t num_rx_samps = rx_stream->recv( &buff.front(), buff.size(), md ); if (num_rx_samps != buff.size()) continue; //check and update the display refresh condition if (boost::get_system_time() < next_refresh) continue; next_refresh = boost::get_system_time() + boost::posix_time::microseconds(long(1e6/frame_rate)); //calculate the dft and create the ascii art frame acsii_art_dft::log_pwr_dft_type lpdft( acsii_art_dft::log_pwr_dft(&buff.front(), num_rx_samps) ); std::string frame = acsii_art_dft::dft_to_plot( lpdft, COLS, LINES, usrp->get_rx_rate(), usrp->get_rx_freq(), dyn_rng, ref_lvl ); //curses screen handling: clear and print frame clear(); printw("%s", frame.c_str()); //curses key handling: no timeout, any key to exit timeout(0); int ch = getch(); if (ch != KEY_RESIZE and ch != ERR) break; } //------------------------------------------------------------------ //-- Cleanup //------------------------------------------------------------------ usrp->issue_stream_cmd(uhd::stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS); endwin(); //curses done //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/rx_multi_samples.cpp000066400000000000000000000166311224274632000212030ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args, sync, subdev; double seconds_in_future; size_t total_num_samps; double rate; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("secs", po::value(&seconds_in_future)->default_value(1.5), "number of seconds in the future to receive") ("nsamps", po::value(&total_num_samps)->default_value(10000), "total number of samples to receive") ("rate", po::value(&rate)->default_value(100e6/16), "rate of incoming samples") ("sync", po::value(&sync)->default_value("now"), "synchronization method: now, pps, mimo") ("subdev", po::value(&subdev), "subdev spec (homogeneous across motherboards)") ("dilv", "specify to disable inner-loop verbose") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD RX Multi Samples %s") % desc << std::endl; std::cout << " This is a demonstration of how to receive aligned data from multiple channels.\n" " This example can receive from multiple DSPs, multiple motherboards, or both.\n" " The MIMO cable or PPS can be used to synchronize the configuration. See --sync\n" "\n" " Specify --subdev to select multiple channels per motherboard.\n" " Ex: --subdev=\"0:A 0:B\" to get 2 channels on a Basic RX.\n" "\n" " Specify --args to select multiple motherboards in a configuration.\n" " Ex: --args=\"addr0=192.168.10.2, addr1=192.168.10.3\"\n" << std::endl; return ~0; } bool verbose = vm.count("dilv") == 0; //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //always select the subdevice first, the channel mapping affects the other settings if (vm.count("subdev")) usrp->set_rx_subdev_spec(subdev); //sets across all mboards std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the rx sample rate (sets across all channels) std::cout << boost::format("Setting RX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate()/1e6) << std::endl << std::endl; std::cout << boost::format("Setting device timestamp to 0...") << std::endl; if (sync == "now"){ //This is not a true time lock, the devices will be off by a few RTT. //Rather, this is just to allow for demonstration of the code below. usrp->set_time_now(uhd::time_spec_t(0.0)); } else if (sync == "pps"){ usrp->set_time_source("external"); usrp->set_time_unknown_pps(uhd::time_spec_t(0.0)); boost::this_thread::sleep(boost::posix_time::seconds(1)); //wait for pps sync pulse } else if (sync == "mimo"){ UHD_ASSERT_THROW(usrp->get_num_mboards() == 2); //make mboard 1 a slave over the MIMO Cable usrp->set_clock_source("mimo", 1); usrp->set_time_source("mimo", 1); //set time on the master (mboard 0) usrp->set_time_now(uhd::time_spec_t(0.0), 0); //sleep a bit while the slave locks its time to the master boost::this_thread::sleep(boost::posix_time::milliseconds(100)); } //create a receive streamer //linearly map channels (index0 = channel0, index1 = channel1, ...) uhd::stream_args_t stream_args("fc32"); //complex floats for (size_t chan = 0; chan < usrp->get_rx_num_channels(); chan++) stream_args.channels.push_back(chan); //linear mapping uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //setup streaming std::cout << std::endl; std::cout << boost::format( "Begin streaming %u samples, %f seconds in the future..." ) % total_num_samps % seconds_in_future << std::endl; uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = total_num_samps; stream_cmd.stream_now = false; stream_cmd.time_spec = uhd::time_spec_t(seconds_in_future); usrp->issue_stream_cmd(stream_cmd); //tells all channels to stream //meta-data will be filled in by recv() uhd::rx_metadata_t md; //allocate buffers to receive with samples (one buffer per channel) const size_t samps_per_buff = rx_stream->get_max_num_samps(); std::vector > > buffs( usrp->get_rx_num_channels(), std::vector >(samps_per_buff) ); //create a vector of pointers to point to each of the channel buffers std::vector *> buff_ptrs; for (size_t i = 0; i < buffs.size(); i++) buff_ptrs.push_back(&buffs[i].front()); //the first call to recv() will block this many seconds before receiving double timeout = seconds_in_future + 0.1; //timeout (delay before receive + padding) size_t num_acc_samps = 0; //number of accumulated samples while(num_acc_samps < total_num_samps){ //receive a single packet size_t num_rx_samps = rx_stream->recv( buff_ptrs, samps_per_buff, md, timeout ); //use a small timeout for subsequent packets timeout = 0.1; //handle the error code if (md.error_code == uhd::rx_metadata_t::ERROR_CODE_TIMEOUT) break; if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ throw std::runtime_error(str(boost::format( "Unexpected error code 0x%x" ) % md.error_code)); } if(verbose) std::cout << boost::format( "Received packet: %u samples, %u full secs, %f frac secs" ) % num_rx_samps % md.time_spec.get_full_secs() % md.time_spec.get_frac_secs() << std::endl; num_acc_samps += num_rx_samps; } if (num_acc_samps < total_num_samps) std::cerr << "Receive timeout before all samples received..." << std::endl; //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/rx_samples_to_file.cpp000066400000000000000000000223501224274632000214650ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; static bool stop_signal_called = false; void sig_int_handler(int){stop_signal_called = true;} template void recv_to_file( uhd::usrp::multi_usrp::sptr usrp, const std::string &cpu_format, const std::string &wire_format, const std::string &file, size_t samps_per_buff, int num_requested_samples ){ int num_total_samps = 0; //create a receive streamer uhd::stream_args_t stream_args(cpu_format,wire_format); uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); uhd::rx_metadata_t md; std::vector buff(samps_per_buff); std::ofstream outfile(file.c_str(), std::ofstream::binary); bool overflow_message = true; //setup streaming uhd::stream_cmd_t stream_cmd((num_requested_samples == 0)? uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS: uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE ); stream_cmd.num_samps = num_requested_samples; stream_cmd.stream_now = true; stream_cmd.time_spec = uhd::time_spec_t(); usrp->issue_stream_cmd(stream_cmd); while(not stop_signal_called and (num_requested_samples != num_total_samps or num_requested_samples == 0)){ size_t num_rx_samps = rx_stream->recv(&buff.front(), buff.size(), md, 3.0); if (md.error_code == uhd::rx_metadata_t::ERROR_CODE_TIMEOUT) { std::cout << boost::format("Timeout while streaming") << std::endl; break; } if (md.error_code == uhd::rx_metadata_t::ERROR_CODE_OVERFLOW){ if (overflow_message){ overflow_message = false; std::cerr << boost::format( "Got an overflow indication. Please consider the following:\n" " Your write medium must sustain a rate of %fMB/s.\n" " Dropped samples will not be written to the file.\n" " Please modify this example for your purposes.\n" " This message will not appear again.\n" ) % (usrp->get_rx_rate()*sizeof(samp_type)/1e6); } continue; } if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ throw std::runtime_error(str(boost::format( "Unexpected error code 0x%x" ) % md.error_code)); } num_total_samps += num_rx_samps; outfile.write((const char*)&buff.front(), num_rx_samps*sizeof(samp_type)); } outfile.close(); } int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args, file, type, ant, subdev, ref, wirefmt; size_t total_num_samps, spb; double rate, freq, gain, bw; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "multi uhd device address args") ("file", po::value(&file)->default_value("usrp_samples.dat"), "name of the file to write binary samples to") ("type", po::value(&type)->default_value("short"), "sample type: double, float, or short") ("nsamps", po::value(&total_num_samps)->default_value(0), "total number of samples to receive") ("spb", po::value(&spb)->default_value(10000), "samples per buffer") ("rate", po::value(&rate), "rate of incoming samples") ("freq", po::value(&freq), "RF center frequency in Hz") ("gain", po::value(&gain), "gain for the RF chain") ("ant", po::value(&ant), "daughterboard antenna selection") ("subdev", po::value(&subdev), "daughterboard subdevice specification") ("bw", po::value(&bw), "daughterboard IF filter bandwidth in Hz") ("ref", po::value(&ref)->default_value("internal"), "waveform type (internal, external, mimo)") ("wirefmt", po::value(&wirefmt)->default_value("sc16"), "wire format (sc8 or sc16)") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD RX samples to file %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //Lock mboard clocks usrp->set_clock_source(ref); //always select the subdevice first, the channel mapping affects the other settings if (vm.count("subdev")) usrp->set_rx_subdev_spec(subdev); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the sample rate if (not vm.count("rate")){ std::cerr << "Please specify the sample rate with --rate" << std::endl; return ~0; } std::cout << boost::format("Setting RX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate()/1e6) << std::endl << std::endl; //set the center frequency if (not vm.count("freq")){ std::cerr << "Please specify the center frequency with --freq" << std::endl; return ~0; } std::cout << boost::format("Setting RX Freq: %f MHz...") % (freq/1e6) << std::endl; usrp->set_rx_freq(freq); std::cout << boost::format("Actual RX Freq: %f MHz...") % (usrp->get_rx_freq()/1e6) << std::endl << std::endl; //set the rf gain if (vm.count("gain")){ std::cout << boost::format("Setting RX Gain: %f dB...") % gain << std::endl; usrp->set_rx_gain(gain); std::cout << boost::format("Actual RX Gain: %f dB...") % usrp->get_rx_gain() << std::endl << std::endl; } //set the IF filter bandwidth if (vm.count("bw")){ std::cout << boost::format("Setting RX Bandwidth: %f MHz...") % bw << std::endl; usrp->set_rx_bandwidth(bw); std::cout << boost::format("Actual RX Bandwidth: %f MHz...") % usrp->get_rx_bandwidth() << std::endl << std::endl; } //set the antenna if (vm.count("ant")) usrp->set_rx_antenna(ant); boost::this_thread::sleep(boost::posix_time::seconds(1)); //allow for some setup time //Check Ref and LO Lock detect std::vector sensor_names; sensor_names = usrp->get_rx_sensor_names(0); if (std::find(sensor_names.begin(), sensor_names.end(), "lo_locked") != sensor_names.end()) { uhd::sensor_value_t lo_locked = usrp->get_rx_sensor("lo_locked",0); std::cout << boost::format("Checking RX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } sensor_names = usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(sensor_names.begin(), sensor_names.end(), "mimo_locked") != sensor_names.end())) { uhd::sensor_value_t mimo_locked = usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking RX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end())) { uhd::sensor_value_t ref_locked = usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking RX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } if (total_num_samps == 0){ std::signal(SIGINT, &sig_int_handler); std::cout << "Press Ctrl + C to stop streaming..." << std::endl; } //recv to file if (type == "double") recv_to_file >(usrp, "fc64", wirefmt, file, spb, total_num_samps); else if (type == "float") recv_to_file >(usrp, "fc32", wirefmt, file, spb, total_num_samps); else if (type == "short") recv_to_file >(usrp, "sc16", wirefmt, file, spb, total_num_samps); else throw std::runtime_error("Unknown type " + type); //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/rx_samples_to_udp.cpp000066400000000000000000000163751224274632000213500ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args, file, ant, subdev, ref; size_t total_num_samps; double rate, freq, gain, bw; std::string addr, port; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "multi uhd device address args") ("nsamps", po::value(&total_num_samps)->default_value(1000), "total number of samples to receive") ("rate", po::value(&rate)->default_value(100e6/16), "rate of incoming samples") ("freq", po::value(&freq)->default_value(0), "rf center frequency in Hz") ("gain", po::value(&gain)->default_value(0), "gain for the RF chain") ("ant", po::value(&ant), "daughterboard antenna selection") ("subdev", po::value(&subdev), "daughterboard subdevice specification") ("bw", po::value(&bw), "daughterboard IF filter bandwidth in Hz") ("port", po::value(&port)->default_value("7124"), "server udp port") ("addr", po::value(&addr)->default_value("192.168.1.10"), "resolvable server address") ("ref", po::value(&ref)->default_value("internal"), "waveform type (internal, external, mimo)") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD RX to UDP %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //Lock mboard clocks usrp->set_clock_source(ref); //set the rx sample rate std::cout << boost::format("Setting RX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate()/1e6) << std::endl << std::endl; //set the rx center frequency std::cout << boost::format("Setting RX Freq: %f Mhz...") % (freq/1e6) << std::endl; usrp->set_rx_freq(freq); std::cout << boost::format("Actual RX Freq: %f Mhz...") % (usrp->get_rx_freq()/1e6) << std::endl << std::endl; //set the rx rf gain std::cout << boost::format("Setting RX Gain: %f dB...") % gain << std::endl; usrp->set_rx_gain(gain); std::cout << boost::format("Actual RX Gain: %f dB...") % usrp->get_rx_gain() << std::endl << std::endl; //set the IF filter bandwidth if (vm.count("bw")){ std::cout << boost::format("Setting RX Bandwidth: %f MHz...") % bw << std::endl; usrp->set_rx_bandwidth(bw); std::cout << boost::format("Actual RX Bandwidth: %f MHz...") % usrp->get_rx_bandwidth() << std::endl << std::endl; } //set the antenna if (vm.count("ant")) usrp->set_rx_antenna(ant); boost::this_thread::sleep(boost::posix_time::seconds(1)); //allow for some setup time //Check Ref and LO Lock detect std::vector sensor_names; sensor_names = usrp->get_rx_sensor_names(0); if (std::find(sensor_names.begin(), sensor_names.end(), "lo_locked") != sensor_names.end()) { uhd::sensor_value_t lo_locked = usrp->get_rx_sensor("lo_locked",0); std::cout << boost::format("Checking RX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } sensor_names = usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(sensor_names.begin(), sensor_names.end(), "mimo_locked") != sensor_names.end())) { uhd::sensor_value_t mimo_locked = usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking RX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end())) { uhd::sensor_value_t ref_locked = usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking RX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //setup streaming uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = total_num_samps; stream_cmd.stream_now = true; usrp->issue_stream_cmd(stream_cmd); //loop until total number of samples reached size_t num_acc_samps = 0; //number of accumulated samples uhd::rx_metadata_t md; std::vector > buff(rx_stream->get_max_num_samps()); uhd::transport::udp_simple::sptr udp_xport = uhd::transport::udp_simple::make_connected(addr, port); while(num_acc_samps < total_num_samps){ size_t num_rx_samps = rx_stream->recv( &buff.front(), buff.size(), md ); //handle the error codes switch(md.error_code){ case uhd::rx_metadata_t::ERROR_CODE_NONE: break; case uhd::rx_metadata_t::ERROR_CODE_TIMEOUT: if (num_acc_samps == 0) continue; std::cout << boost::format( "Got timeout before all samples received, possible packet loss, exiting loop..." ) << std::endl; goto done_loop; default: std::cout << boost::format( "Got error code 0x%x, exiting loop..." ) % md.error_code << std::endl; goto done_loop; } //send complex single precision floating point samples over udp udp_xport->send(boost::asio::buffer(buff, num_rx_samps*sizeof(buff.front()))); num_acc_samps += num_rx_samps; } done_loop: //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/rx_timed_samples.cpp000066400000000000000000000115441224274632000211510ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; double seconds_in_future; size_t total_num_samps; double rate; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("secs", po::value(&seconds_in_future)->default_value(1.5), "number of seconds in the future to receive") ("nsamps", po::value(&total_num_samps)->default_value(10000), "total number of samples to receive") ("rate", po::value(&rate)->default_value(100e6/16), "rate of incoming samples") ("dilv", "specify to disable inner-loop verbose") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD RX Timed Samples %s") % desc << std::endl; return ~0; } bool verbose = vm.count("dilv") == 0; //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the rx sample rate std::cout << boost::format("Setting RX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_rx_rate(rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (usrp->get_rx_rate()/1e6) << std::endl << std::endl; std::cout << boost::format("Setting device timestamp to 0...") << std::endl; usrp->set_time_now(uhd::time_spec_t(0.0)); //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //setup streaming std::cout << std::endl; std::cout << boost::format( "Begin streaming %u samples, %f seconds in the future..." ) % total_num_samps % seconds_in_future << std::endl; uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = total_num_samps; stream_cmd.stream_now = false; stream_cmd.time_spec = uhd::time_spec_t(seconds_in_future); usrp->issue_stream_cmd(stream_cmd); //meta-data will be filled in by recv() uhd::rx_metadata_t md; //allocate buffer to receive with samples std::vector > buff(rx_stream->get_max_num_samps()); //the first call to recv() will block this many seconds before receiving double timeout = seconds_in_future + 0.1; //timeout (delay before receive + padding) size_t num_acc_samps = 0; //number of accumulated samples while(num_acc_samps < total_num_samps){ //receive a single packet size_t num_rx_samps = rx_stream->recv( &buff.front(), buff.size(), md, timeout, true ); //use a small timeout for subsequent packets timeout = 0.1; //handle the error code if (md.error_code == uhd::rx_metadata_t::ERROR_CODE_TIMEOUT) break; if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ throw std::runtime_error(str(boost::format( "Unexpected error code 0x%x" ) % md.error_code)); } if(verbose) std::cout << boost::format( "Received packet: %u samples, %u full secs, %f frac secs" ) % num_rx_samps % md.time_spec.get_full_secs() % md.time_spec.get_frac_secs() << std::endl; num_acc_samps += num_rx_samps; } if (num_acc_samps < total_num_samps) std::cerr << "Receive timeout before all samples received..." << std::endl; //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/test_dboard_coercion.cpp000066400000000000000000000605561224274632000217740ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /************************************************************************ * Misc functions ************************************************************************/ std::string return_MHz_string(double freq){ std::string nice_string = std::string(str(boost::format("%5.2f MHz") % (freq / 1e6))); return nice_string; } std::string return_USRP_config_string(uhd::usrp::multi_usrp::sptr usrp, bool test_tx, bool test_rx){ uhd::dict tx_info = usrp->get_usrp_tx_info(); uhd::dict rx_info = usrp->get_usrp_rx_info(); std::string info_string; std::string mboard_id, mboard_serial; std::string tx_serial, tx_subdev_name, tx_subdev_spec; std::string rx_serial, rx_subdev_name, rx_subdev_spec; mboard_id = tx_info.get("mboard_id"); if(tx_info.get("mboard_serial") != "") mboard_serial = tx_info.get("mboard_serial"); else mboard_serial = "no serial"; info_string = std::string(str(boost::format("Motherboard: %s (%s)\n") % mboard_id % mboard_serial)); if(test_tx){ if(tx_info.get("tx_serial") != "") tx_serial = tx_info.get("tx_serial"); else tx_serial = "no serial"; tx_subdev_name = tx_info.get("tx_subdev_name"); tx_subdev_spec = tx_info.get("tx_subdev_spec"); info_string += std::string(str(boost::format("TX: %s (%s, %s)") % tx_subdev_name % tx_serial % tx_subdev_spec)); } if(test_tx and test_rx) info_string += "\n"; if(test_rx){ if(rx_info.get("rx_serial") != "") rx_serial = rx_info.get("rx_serial"); else rx_serial = "no serial"; rx_subdev_name = rx_info.get("rx_subdev_name"); rx_subdev_spec = rx_info.get("rx_subdev_spec"); info_string += std::string(str(boost::format("RX: %s (%s, %s)") % rx_subdev_name % rx_serial % rx_subdev_spec)); } return info_string; } /************************************************************************ * TX Frequency/Gain Coercion ************************************************************************/ std::string tx_test(uhd::usrp::multi_usrp::sptr usrp, bool test_gain, bool verbose){ //Establish frequency range std::vector freqs; std::vector xcvr_freqs; BOOST_FOREACH(const uhd::range_t &range, usrp->get_fe_tx_freq_range()){ double freq_begin = range.start(); double freq_end = range.stop(); double freq_step; if(usrp->get_usrp_tx_info().get("tx_subdev_name") == "XCVR2450 TX"){ xcvr_freqs.push_back(freq_begin); xcvr_freqs.push_back(freq_end); } if(freq_end - freq_begin > 1000e6) freq_step = 100e6; else if(freq_end - freq_begin < 300e6) freq_step = 10e6; else freq_step = 50e6; double current_freq = freq_begin; while(current_freq < freq_end){ freqs.push_back(current_freq); current_freq += freq_step; } if(freq_end != *freqs.end()) freqs.push_back(freq_end); } std::vector gains; if(test_gain){ //Establish gain range double gain_begin = usrp->get_tx_gain_range().start(); if(gain_begin < 0.0) gain_begin = 0.0; double gain_end = usrp->get_tx_gain_range().stop(); double current_gain = gain_begin; while(current_gain < gain_end){ gains.push_back(current_gain); current_gain++; } if(gain_end != *gains.end()) gains.push_back(gain_end); } //Establish error-storing variables std::vector bad_tune_freqs; std::vector no_lock_freqs; std::vector< std::vector< double > > bad_gain_vals; std::vector dboard_sensor_names = usrp->get_tx_sensor_names(); std::vector mboard_sensor_names = usrp->get_mboard_sensor_names(); bool has_sensor = (std::find(dboard_sensor_names.begin(), dboard_sensor_names.end(), "lo_locked")) != dboard_sensor_names.end(); for(std::vector::iterator f = freqs.begin(); f != freqs.end(); ++f){ //Testing for successful frequency tune usrp->set_tx_freq(*f); boost::this_thread::sleep(boost::posix_time::microseconds(long(1000))); double actual_freq = usrp->get_tx_freq(); if(*f == 0.0){ if(floor(actual_freq + 0.5) == 0.0){ if(verbose) std::cout << boost::format("\nTX frequency successfully tuned to %s.") % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("\nTX frequency tuned to %s instead of %s.") % return_MHz_string(actual_freq) % return_MHz_string(*f) << std::endl; } } else{ if((*f / actual_freq > 0.9999) and (*f / actual_freq < 1.0001)){ if(verbose) std::cout << boost::format("\nTX frequency successfully tuned to %s.") % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("\nTX frequency tuned to %s instead of %s.") % return_MHz_string(actual_freq) % return_MHz_string(*f) << std::endl; bad_tune_freqs.push_back(*f); } } //Testing for successful lock if(has_sensor){ bool is_locked = false; for(int i = 0; i < 1000; i++){ boost::this_thread::sleep(boost::posix_time::microseconds(1000)); if(usrp->get_tx_sensor("lo_locked",0).to_bool()){ is_locked = true; break; } } if(is_locked){ if(verbose) std::cout << boost::format("LO successfully locked at TX frequency %s.") % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("LO did not successfully lock at TX frequency %s.") % return_MHz_string(*f) << std::endl; no_lock_freqs.push_back(*f); } } if(test_gain){ //Testing for successful gain tune for(std::vector::iterator g = gains.begin(); g != gains.end(); ++g){ usrp->set_tx_gain(*g); boost::this_thread::sleep(boost::posix_time::microseconds(1000)); double actual_gain = usrp->get_tx_gain(); if(*g == 0.0){ if(actual_gain == 0.0){ if(verbose) std::cout << boost::format("TX gain successfully set to %5.2f at TX frequency %s.") % *g % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("TX gain set to %5.2f instead of %5.2f at TX frequency %s.") % actual_gain % *g % return_MHz_string(*f) << std::endl; std::vector bad_gain_freq; bad_gain_freq.push_back(*f); bad_gain_freq.push_back(*g); bad_gain_vals.push_back(bad_gain_freq); } } else{ if((*g / actual_gain) > 0.9 and (*g / actual_gain) < 1.1){ if(verbose) std::cout << boost::format("TX gain successfully set to %5.2f at TX frequency %s.") % *g % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("TX gain set to %5.2f instead of %5.2f at TX frequency %s.") % actual_gain % *g % return_MHz_string(*f) << std::endl; std::vector bad_gain_freq; bad_gain_freq.push_back(*f); bad_gain_freq.push_back(*g); bad_gain_vals.push_back(bad_gain_freq); } } } } } std::string tx_results = "TX Summary:\n"; if(usrp->get_usrp_tx_info().get("tx_subdev_name") == "XCVR2450 TX"){ tx_results += std::string(str(boost::format("Frequency Range: %s - %s, %s - %s\n") % return_MHz_string(xcvr_freqs.at(0)) % return_MHz_string(xcvr_freqs.at(1)) % return_MHz_string(xcvr_freqs.at(2)) % return_MHz_string(xcvr_freqs.at(3)))); } else tx_results += std::string(str(boost::format("Frequency Range: %s - %s\n") % return_MHz_string(freqs.front()) % return_MHz_string(freqs.back()))); if(test_gain) tx_results += std::string(str(boost::format("Gain Range: %5.2f - %5.2f\n") % gains.front() % gains.back())); if(bad_tune_freqs.empty()) tx_results += "USRP successfully tuned to all frequencies."; else{ tx_results += "USRP did not successfully tune to the following frequencies: "; for(std::vector::iterator i = bad_tune_freqs.begin(); i != bad_tune_freqs.end(); ++i){ if(i != bad_tune_freqs.begin()) tx_results += ", "; tx_results += return_MHz_string(*i); } } if(has_sensor){ tx_results += "\n"; if(no_lock_freqs.empty()) tx_results += "LO successfully locked at all frequencies."; else{ tx_results += "LO did not lock at the following frequencies: "; for(std::vector::iterator i = no_lock_freqs.begin(); i != no_lock_freqs.end(); ++i){ if(i != no_lock_freqs.begin()) tx_results += ", "; tx_results += return_MHz_string(*i); } } } if(test_gain){ tx_results += "\n"; if(bad_gain_vals.empty()) tx_results += "USRP successfully set all specified gain values at all frequencies."; else{ tx_results += "USRP did not successfully set gain under the following circumstances:"; for(std::vector< std::vector >::iterator i = bad_gain_vals.begin(); i != bad_gain_vals.end(); ++i){ std::vector bad_pair = *i; double bad_freq = bad_pair.front(); double bad_gain = bad_pair.back(); tx_results += std::string(str(boost::format("\nFrequency: %s, Gain: %5.2f") % return_MHz_string(bad_freq) % bad_gain)); } } } return tx_results; } /************************************************************************ * RX Frequency/Gain Coercion ************************************************************************/ std::string rx_test(uhd::usrp::multi_usrp::sptr usrp, bool test_gain, bool verbose){ //Establish frequency range std::vector freqs; std::vector xcvr_freqs; BOOST_FOREACH(const uhd::range_t &range, usrp->get_fe_rx_freq_range()){ double freq_begin = range.start(); double freq_end = range.stop(); if(usrp->get_usrp_rx_info().get("rx_subdev_name") == "XCVR2450 RX"){ xcvr_freqs.push_back(freq_begin); xcvr_freqs.push_back(freq_end); } double freq_step; if(freq_end - freq_begin > 1000e6) freq_step = 100e6; else if(freq_end - freq_begin < 300e6) freq_step = 10e6; else freq_step = 50e6; double current_freq = freq_begin; while(current_freq < freq_end){ freqs.push_back(current_freq); current_freq += freq_step; } } std::vector gains; if(test_gain){ //Establish gain range double gain_begin = usrp->get_rx_gain_range().start(); if(gain_begin < 0.0) gain_begin = 0.0; double gain_end = usrp->get_rx_gain_range().stop(); double current_gain = gain_begin; while(current_gain < gain_end){ gains.push_back(current_gain); current_gain++; } if(gain_end != *gains.end()) gains.push_back(gain_end); } //Establish error-storing variables std::vector bad_tune_freqs; std::vector no_lock_freqs; std::vector< std::vector< double > > bad_gain_vals; std::vector dboard_sensor_names = usrp->get_rx_sensor_names(); std::vector mboard_sensor_names = usrp->get_mboard_sensor_names(); bool has_sensor = (std::find(dboard_sensor_names.begin(), dboard_sensor_names.end(), "lo_locked")) != dboard_sensor_names.end(); for(std::vector::iterator f = freqs.begin(); f != freqs.end(); ++f){ //Testing for successful frequency tune usrp->set_rx_freq(*f); boost::this_thread::sleep(boost::posix_time::microseconds(long(1000))); double actual_freq = usrp->get_rx_freq(); if(*f == 0.0){ if(floor(actual_freq + 0.5) == 0.0){ if(verbose) std::cout << boost::format("\nRX frequency successfully tuned to %s.") % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("\nRX frequency tuned to %s instead of %s.") % return_MHz_string(actual_freq) % return_MHz_string(*f) << std::endl; } } else{ if((*f / actual_freq > 0.9999) and (*f / actual_freq < 1.0001)){ if(verbose) std::cout << boost::format("\nRX frequency successfully tuned to %s.") % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("\nRX frequency tuned to %s instead of %s.") % return_MHz_string(actual_freq) % return_MHz_string(*f) << std::endl; bad_tune_freqs.push_back(*f); } } //Testing for successful lock if(has_sensor){ bool is_locked = false; for(int i = 0; i < 1000; i++){ boost::this_thread::sleep(boost::posix_time::microseconds(1000)); if(usrp->get_rx_sensor("lo_locked",0).to_bool()){ is_locked = true; break; } } if(is_locked){ if(verbose) std::cout << boost::format("LO successfully locked at RX frequency %s.") % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("LO did not successfully lock at RX frequency %s.") % return_MHz_string(*f) << std::endl; no_lock_freqs.push_back(*f); } } if(test_gain){ //Testing for successful gain tune for(std::vector::iterator g = gains.begin(); g != gains.end(); ++g){ usrp->set_rx_gain(*g); boost::this_thread::sleep(boost::posix_time::microseconds(1000)); double actual_gain = usrp->get_rx_gain(); if(*g == 0.0){ if(actual_gain == 0.0){ if(verbose) std::cout << boost::format("RX gain successfully set to %5.2f at RX frequency %s.") % *g % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("RX gain set to %5.2f instead of %5.2f at RX frequency %s.") % actual_gain % *g % return_MHz_string(*f) << std::endl; std::vector bad_gain_freq; bad_gain_freq.push_back(*f); bad_gain_freq.push_back(*g); bad_gain_vals.push_back(bad_gain_freq); } } else{ if((*g / actual_gain) > 0.9 and (*g / actual_gain) < 1.1){ if(verbose) std::cout << boost::format("RX gain successfully set to %5.2f at RX frequency %s.") % *g % return_MHz_string(*f) << std::endl; } else{ if(verbose) std::cout << boost::format("RX gain set to %5.2f instead of %5.2f at RX frequency %s.") % actual_gain % *g % return_MHz_string(*f) << std::endl; std::vector bad_gain_freq; bad_gain_freq.push_back(*f); bad_gain_freq.push_back(*g); bad_gain_vals.push_back(bad_gain_freq); } } } } } std::string rx_results = "RX Summary:\n"; if(usrp->get_usrp_rx_info().get("rx_subdev_name") == "XCVR2450 RX"){ rx_results += std::string(str(boost::format("Frequency Range: %s - %s, %s - %s\n") % return_MHz_string(xcvr_freqs.at(0)) % return_MHz_string(xcvr_freqs.at(1)) % return_MHz_string(xcvr_freqs.at(2)) % return_MHz_string(xcvr_freqs.at(3)))); } else rx_results += std::string(str(boost::format("Frequency Range: %s - %s\n") % return_MHz_string(freqs.front()) % return_MHz_string(freqs.back()))); if(test_gain) rx_results += std::string(str(boost::format("Gain Range: %5.2f - %5.2f\n") % gains.front() % gains.back())); if(bad_tune_freqs.empty()) rx_results += "USRP successfully tuned to all frequencies."; else{ rx_results += "USRP did not successfully tune to the following frequencies: "; for(std::vector::iterator i = bad_tune_freqs.begin(); i != bad_tune_freqs.end(); ++i){ if(i != bad_tune_freqs.begin()) rx_results += ", "; rx_results += return_MHz_string(*i); } } if(has_sensor){ rx_results += "\n"; if(no_lock_freqs.empty()) rx_results += "LO successfully locked at all frequencies."; else{ rx_results += "LO did not successfully lock at the following frequencies: "; for(std::vector::iterator i = no_lock_freqs.begin(); i != no_lock_freqs.end(); ++i){ if( i != no_lock_freqs.begin()) rx_results += ", "; rx_results += return_MHz_string(*i); } } } if(test_gain){ rx_results += "\n"; if(bad_gain_vals.empty()) rx_results += "USRP successfully set all specified gain values at all frequencies."; else{ rx_results += "USRP did not successfully set gain under the following circumstances:"; for(std::vector< std::vector >::iterator i = bad_gain_vals.begin(); i != bad_gain_vals.end(); ++i){ std::vector bad_pair = *i; double bad_freq = bad_pair.front(); double bad_gain = bad_pair.back(); rx_results += std::string(str(boost::format("\nFrequency: %s, Gain: %5.2f") % return_MHz_string(bad_freq) % bad_gain)); } } } return rx_results; } /************************************************************************ * Initial Setup ************************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ //Variables std::string args; double gain_step; std::string ref; std::string tx_results; std::string rx_results; std::string usrp_config; //Set up the program options po::options_description desc("Allowed Options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "Specify the UHD device") ("gain_step", po::value(&gain_step)->default_value(1.0), "Specify the delta between gain scans") ("tx", "Specify to test TX frequency and gain coercion") ("rx", "Specify to test RX frequency and gain coercion") ("ref", po::value(&ref)->default_value("internal"), "Waveform type: internal, external, or mimo") ("no_tx_gain", "Do not test TX gain") ("no_rx_gain", "Do not test RX gain") ("verbose", "Output every frequency and gain check instead of just final summary") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //Create a USRP device std::cout << std::endl; uhd::device_addrs_t device_addrs = uhd::device::find(args); std::cout << boost::format("Creating the USRP device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << std::endl << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; usrp->set_tx_rate(1e6); usrp->set_rx_rate(1e6); //Boolean variables based on command line input bool test_tx = vm.count("tx") > 0; bool test_rx = vm.count("rx") > 0; bool test_tx_gain = !(vm.count("no_tx_gain") > 0) and (usrp->get_tx_gain_range().stop() > 0); bool test_rx_gain = !(vm.count("no_rx_gain") > 0) and (usrp->get_rx_gain_range().stop() > 0); bool verbose = vm.count("verbose") > 0; //Help messages, errors if(vm.count("help") > 0){ std::cout << "UHD Daughterboard Coercion Test\n" "This program tests your USRP daughterboard(s) to\n" "make sure that they can successfully tune to all\n" "frequencies and gains in their advertised ranges.\n\n"; std::cout << desc << std::endl; return ~0; } if(ref != "internal" and ref != "external" and ref != "mimo"){ std::cout << desc << std::endl; std::cout << "REF must equal internal, external, or mimo." << std::endl; return ~0; } if(vm.count("tx") + vm.count("rx") == 0){ std::cout << desc << std::endl; std::cout << "Specify --tx to test for TX frequency coercion\n" "Specify --rx to test for RX frequency coercion\n"; return ~0; } if(test_rx and usrp->get_usrp_rx_info().get("rx_id") == "Basic RX (0x0001)"){ std::cout << desc << std::endl; std::cout << "This test does not work with the Basic RX daughterboard." << std::endl; return ~0; } else if(test_rx and usrp->get_usrp_rx_info().get("rx_id") == "Unknown (0xffff)"){ std::cout << desc << std::endl; std::cout << "This daughterboard is unrecognized, or there is no RX daughterboard." << std::endl; return ~0; } if(test_tx and usrp->get_usrp_tx_info().get("tx_id") == "Basic TX (0x0000)"){ std::cout << desc << std::endl; std::cout << "This test does not work with the Basic TX daughterboard." << std::endl; return ~0; } else if(test_tx and usrp->get_usrp_tx_info().get("tx_id") == "Unknown (0xffff)"){ std::cout << desc << std::endl; std::cout << "This daughterboard is unrecognized, or there is no TX daughterboard." << std::endl; return ~0; } //Setting clock source usrp->set_clock_source(ref); boost::this_thread::sleep(boost::posix_time::seconds(1)); std::vector sensor_names = usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(sensor_names.begin(), sensor_names.end(), "mimo_locked") != sensor_names.end())) { uhd::sensor_value_t mimo_locked = usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking MIMO lock: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end())) { uhd::sensor_value_t ref_locked = usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking REF lock: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } usrp_config = return_USRP_config_string(usrp, test_tx, test_rx); if(test_tx) tx_results = tx_test(usrp, test_tx_gain, verbose); if(test_rx) rx_results = rx_test(usrp, test_rx_gain, verbose); if(verbose) std::cout << std::endl; std::cout << usrp_config << std::endl << std::endl; if(test_tx) std::cout << tx_results << std::endl; if(test_tx and test_rx) std::cout << std::endl; if(test_rx) std::cout << rx_results << std::endl; return 0; } uhd-3.5.5/host/examples/test_messages.cpp000066400000000000000000000264631224274632000204660ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*! * Test the late command message: * Issue a stream command with a time that is in the past. * We expect to get an inline late command message. */ bool test_late_command_message(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr rx_stream, uhd::tx_streamer::sptr){ std::cout << "Test late command message... " << std::flush; usrp->set_time_now(uhd::time_spec_t(200.0)); //set time uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = rx_stream->get_max_num_samps(); stream_cmd.stream_now = false; stream_cmd.time_spec = uhd::time_spec_t(100.0); //time in the past usrp->issue_stream_cmd(stream_cmd); std::vector > buff(rx_stream->get_max_num_samps()); uhd::rx_metadata_t md; const size_t nsamps = rx_stream->recv( &buff.front(), buff.size(), md ); switch(md.error_code){ case uhd::rx_metadata_t::ERROR_CODE_LATE_COMMAND: std::cout << boost::format( "success:\n" " Got error code late command message.\n" ) << std::endl; return true; case uhd::rx_metadata_t::ERROR_CODE_TIMEOUT: std::cout << boost::format( "failed:\n" " Inline message recv timed out.\n" ) << std::endl; return false; default: std::cout << boost::format( "failed:\n" " Got unexpected error code 0x%x, nsamps %u.\n" ) % md.error_code % nsamps << std::endl; return false; } } /*! * Test the broken chain message: * Issue a stream command with num samps and more. * We expect to get an inline broken chain message. */ bool test_broken_chain_message(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr rx_stream, uhd::tx_streamer::sptr){ std::cout << "Test broken chain message... " << std::flush; uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_MORE); stream_cmd.stream_now = true; stream_cmd.num_samps = rx_stream->get_max_num_samps(); usrp->issue_stream_cmd(stream_cmd); std::vector > buff(rx_stream->get_max_num_samps()); uhd::rx_metadata_t md; rx_stream->recv( //once for the requested samples &buff.front(), buff.size(), md ); rx_stream->recv( //again for the inline message &buff.front(), buff.size(), md ); switch(md.error_code){ case uhd::rx_metadata_t::ERROR_CODE_BROKEN_CHAIN: std::cout << boost::format( "success:\n" " Got error code broken chain message.\n" ) << std::endl; return true; case uhd::rx_metadata_t::ERROR_CODE_TIMEOUT: std::cout << boost::format( "failed:\n" " Inline message recv timed out.\n" ) << std::endl; return false; default: std::cout << boost::format( "failed:\n" " Got unexpected error code 0x%x.\n" ) % md.error_code << std::endl; return false; } } /*! * Test the burst ack message: * Send a burst of many samples that will fragment internally. * We expect to get an burst ack async message. */ bool test_burst_ack_message(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr, uhd::tx_streamer::sptr tx_stream){ std::cout << "Test burst ack message... " << std::flush; uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = true; md.has_time_spec = false; //3 times max-sps guarantees a SOB, no burst, and EOB packet std::vector > buff(tx_stream->get_max_num_samps()*3); tx_stream->send( &buff.front(), buff.size(), md ); uhd::async_metadata_t async_md; if (not usrp->get_device()->recv_async_msg(async_md)){ std::cout << boost::format( "failed:\n" " Async message recv timed out.\n" ) << std::endl; return false; } switch(async_md.event_code){ case uhd::async_metadata_t::EVENT_CODE_BURST_ACK: std::cout << boost::format( "success:\n" " Got event code burst ack message.\n" ) << std::endl; return true; default: std::cout << boost::format( "failed:\n" " Got unexpected event code 0x%x.\n" ) % async_md.event_code << std::endl; return false; } } /*! * Test the underflow message: * Send a start of burst packet with no following end of burst. * We expect to get an underflow(within a burst) async message. */ bool test_underflow_message(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr, uhd::tx_streamer::sptr tx_stream){ std::cout << "Test underflow message... " << std::flush; uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = false; md.has_time_spec = false; tx_stream->send("", 0, md); uhd::async_metadata_t async_md; if (not usrp->get_device()->recv_async_msg(async_md, 1)){ std::cout << boost::format( "failed:\n" " Async message recv timed out.\n" ) << std::endl; return false; } switch(async_md.event_code){ case uhd::async_metadata_t::EVENT_CODE_UNDERFLOW: std::cout << boost::format( "success:\n" " Got event code underflow message.\n" ) << std::endl; return true; default: std::cout << boost::format( "failed:\n" " Got unexpected event code 0x%x.\n" ) % async_md.event_code << std::endl; return false; } } /*! * Test the time error message: * Send a burst packet that occurs at a time in the past. * We expect to get a time error async message. */ bool test_time_error_message(uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr, uhd::tx_streamer::sptr tx_stream){ std::cout << "Test time error message... " << std::flush; uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = true; md.has_time_spec = true; md.time_spec = uhd::time_spec_t(100.0); //send at 100s usrp->set_time_now(uhd::time_spec_t(200.0)); //time at 200s tx_stream->send("", 0, md); uhd::async_metadata_t async_md; if (not usrp->get_device()->recv_async_msg(async_md)){ std::cout << boost::format( "failed:\n" " Async message recv timed out.\n" ) << std::endl; return false; } switch(async_md.event_code){ case uhd::async_metadata_t::EVENT_CODE_TIME_ERROR: std::cout << boost::format( "success:\n" " Got event code time error message.\n" ) << std::endl; return true; default: std::cout << boost::format( "failed:\n" " Got unexpected event code 0x%x.\n" ) % async_md.event_code << std::endl; return false; } } void flush_async(uhd::usrp::multi_usrp::sptr usrp){ uhd::async_metadata_t async_md; while (usrp->get_device()->recv_async_msg(async_md)){} } void flush_recv(uhd::rx_streamer::sptr rx_stream){ std::vector > buff(rx_stream->get_max_num_samps()); uhd::rx_metadata_t md; do{ rx_stream->recv(&buff.front(), buff.size(), md); } while (md.error_code != uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; size_t ntests; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "multi uhd device address args") ("ntests", po::value(&ntests)->default_value(50), "number of tests to run") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD Test Messages %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //create RX and TX streamers uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //------------------------------------------------------------------ // begin messages test //------------------------------------------------------------------ static const uhd::dict > tests = boost::assign::map_list_of ("Test Burst ACK ", &test_burst_ack_message) ("Test Underflow ", &test_underflow_message) ("Test Time Error", &test_time_error_message) ("Test Late Command", &test_late_command_message) ("Test Broken Chain", &test_broken_chain_message) ; //init result counts uhd::dict failures, successes; BOOST_FOREACH(const std::string &key, tests.keys()){ failures[key] = 0; successes[key] = 0; } //run the tests, pick at random std::srand((unsigned int) time(NULL)); for (size_t n = 0; n < ntests; n++){ std::string key = tests.keys()[std::rand() % tests.size()]; bool pass = tests[key](usrp, rx_stream, tx_stream); flush_async(usrp); flush_recv(rx_stream); //store result if (pass) successes[key]++; else failures[key]++; } //print the result summary std::cout << std::endl << "Summary:" << std::endl << std::endl; BOOST_FOREACH(const std::string &key, tests.keys()){ std::cout << boost::format( "%s -> %3u successes, %3u failures" ) % key % successes[key] % failures[key] << std::endl; } //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/test_pps_input.cpp000066400000000000000000000043141224274632000206670ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD Test PPS Input %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the time at an unknown pps (will throw if no pps) std::cout << std::endl << "Attempt to detect the PPS and set the time..." << std::endl << std::endl; usrp->set_time_unknown_pps(uhd::time_spec_t(0.0)); std::cout << std::endl << "Success!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/test_timed_commands.cpp000066400000000000000000000114761224274632000216400ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD Test Timed Commands %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //check if timed commands are supported std::cout << std::endl; std::cout << "Testing support for timed commands on this hardware... " << std::flush; try{ usrp->set_command_time(uhd::time_spec_t(0.0)); usrp->clear_command_time(); } catch (const std::exception &e){ std::cout << "fail" << std::endl; std::cerr << "Got exception: " << e.what() << std::endl; std::cerr << "Timed commands are not supported on this hardware." << std::endl; return ~0; } std::cout << "pass" << std::endl; //readback time really fast, time diff is small std::cout << std::endl; std::cout << "Perform fast readback of registers:" << std::endl; uhd::time_spec_t total_time; for (size_t i = 0; i < 100; i++){ const uhd::time_spec_t t0 = usrp->get_time_now(); const uhd::time_spec_t t1 = usrp->get_time_now(); total_time += (t1-t0); } std::cout << boost::format( "Difference between paired reads: %f us" ) % (total_time.get_real_secs()/100*1e6) << std::endl; //use a timed command to start a stream at a specific time //this is not the right way start streaming at time x, //but it should approximate it within control RTT/2 //setup streaming std::cout << std::endl; std::cout << "About to start streaming using timed command:" << std::endl; //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = 100; stream_cmd.stream_now = true; const uhd::time_spec_t stream_time = usrp->get_time_now() + uhd::time_spec_t(0.1); usrp->set_command_time(stream_time); usrp->issue_stream_cmd(stream_cmd); usrp->clear_command_time(); //meta-data will be filled in by recv() uhd::rx_metadata_t md; //allocate buffer to receive with samples std::vector > buff(stream_cmd.num_samps); const size_t num_rx_samps = rx_stream->recv(&buff.front(), buff.size(), md, 1.0); if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ throw std::runtime_error(str(boost::format( "Unexpected error code 0x%x" ) % md.error_code)); } std::cout << boost::format( "Received packet: %u samples, %u full secs, %f frac secs" ) % num_rx_samps % md.time_spec.get_full_secs() % md.time_spec.get_frac_secs() << std::endl; std::cout << boost::format( "Stream time was: %u full secs, %f frac secs" ) % stream_time.get_full_secs() % stream_time.get_frac_secs() << std::endl; std::cout << boost::format( "Difference between stream time and first packet: %f us" ) % ((md.time_spec-stream_time).get_real_secs()/100*1e6) << std::endl; //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/transport_hammer.cpp000066400000000000000000000253271224274632000212030ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Test result variables **********************************************************************/ unsigned long long num_overflows = 0; unsigned long long num_underflows = 0; unsigned long long num_rx_samps = 0; unsigned long long num_tx_samps = 0; unsigned long long num_dropped_samps = 0; unsigned long long num_seq_errors = 0; /*********************************************************************** * RX Hammer **********************************************************************/ void rx_hammer(uhd::usrp::multi_usrp::sptr usrp, const std::string &rx_cpu, const std::string &rx_otw){ uhd::set_thread_priority_safe(); //create a receive streamer uhd::stream_args_t stream_args(rx_cpu, rx_otw); for (size_t ch = 0; ch < usrp->get_num_mboards(); ch++) //linear channel mapping stream_args.channels.push_back(ch); uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //print pre-test summary std::cout << boost::format( "Testing receive rate %f Msps" ) % (usrp->get_rx_rate()/1e6) << std::endl; //setup variables and allocate buffer uhd::rx_metadata_t md; const size_t max_samps_per_packet = rx_stream->get_max_num_samps(); std::vector buff(max_samps_per_packet*uhd::convert::get_bytes_per_item(rx_cpu)); std::vector buffs; for (size_t ch = 0; ch < stream_args.channels.size(); ch++) buffs.push_back(&buff.front()); //same buffer for each channel bool had_an_overflow = false; uhd::time_spec_t last_time; const double rate = usrp->get_rx_rate(); double timeout = 1; uhd::stream_cmd_t cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); cmd.time_spec = usrp->get_time_now() + uhd::time_spec_t(0.05); cmd.stream_now = (buffs.size() == 1); srand( time(NULL) ); while (not boost::this_thread::interruption_requested()){ cmd.num_samps = rand() % 100000; usrp->issue_stream_cmd(cmd); num_rx_samps += rx_stream->recv(buffs, max_samps_per_packet, md, timeout, true); //handle the error codes switch(md.error_code){ case uhd::rx_metadata_t::ERROR_CODE_NONE: if (had_an_overflow){ had_an_overflow = false; num_dropped_samps += boost::math::iround((md.time_spec - last_time).get_real_secs()*rate); } break; case uhd::rx_metadata_t::ERROR_CODE_OVERFLOW: had_an_overflow = true; last_time = md.time_spec; num_overflows++; break; default: std::cerr << "Error code: " << md.error_code << std::endl; std::cerr << "Unexpected error on recv, continuing..." << std::endl; break; } } } /*********************************************************************** * TX Hammer **********************************************************************/ void tx_hammer(uhd::usrp::multi_usrp::sptr usrp, const std::string &tx_cpu, const std::string &tx_otw){ uhd::set_thread_priority_safe(); //create a transmit streamer uhd::stream_args_t stream_args(tx_cpu, tx_otw); for (size_t ch = 0; ch < usrp->get_num_mboards(); ch++) //linear channel mapping stream_args.channels.push_back(ch); uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); uhd::tx_metadata_t md; std::vector > buff(10000); //print pre-test summary std::cout << boost::format( "Testing transmit rate %f Msps" ) % (usrp->get_tx_rate()/1e6) << std::endl; //setup variables and allocate buffer std::srand( time(NULL) ); while(not boost::this_thread::interruption_requested()){ size_t total_num_samps = rand() % 100000; size_t num_acc_samps = 0; float timeout = 1; usrp->set_time_now(uhd::time_spec_t(0.0)); while(num_acc_samps < total_num_samps){ //send a single packet num_tx_samps += tx_stream->send(&buff, tx_stream->get_max_num_samps(), md, timeout); num_acc_samps += std::min(total_num_samps-num_acc_samps, tx_stream->get_max_num_samps()); } //send a mini EOB packet md.end_of_burst = true; tx_stream->send("", 0, md); } } void tx_hammer_async_helper(uhd::usrp::multi_usrp::sptr usrp){ //setup variables and allocate buffer uhd::async_metadata_t async_md; while (not boost::this_thread::interruption_requested()){ if (not usrp->get_device()->recv_async_msg(async_md)) continue; //handle the error codes switch(async_md.event_code){ case uhd::async_metadata_t::EVENT_CODE_BURST_ACK: return; case uhd::async_metadata_t::EVENT_CODE_UNDERFLOW: case uhd::async_metadata_t::EVENT_CODE_UNDERFLOW_IN_PACKET: num_underflows++; break; case uhd::async_metadata_t::EVENT_CODE_SEQ_ERROR: case uhd::async_metadata_t::EVENT_CODE_SEQ_ERROR_IN_BURST: num_seq_errors++; break; default: std::cerr << "Event code: " << async_md.event_code << std::endl; std::cerr << "Unexpected event on async recv, continuing..." << std::endl; break; } } } /*********************************************************************** * Main code + dispatcher **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; double duration; double rx_rate, tx_rate; std::string rx_otw, tx_otw; std::string rx_cpu, tx_cpu; std::string mode; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("duration", po::value(&duration)->default_value(10.0), "if random, specify duration for the test in seconds") ("rx_rate", po::value(&rx_rate), "specify to perform a RX rate test (sps)") ("tx_rate", po::value(&tx_rate), "specify to perform a TX rate test (sps)") ("rx_otw", po::value(&rx_otw)->default_value("sc16"), "specify the over-the-wire sample mode for RX") ("tx_otw", po::value(&tx_otw)->default_value("sc16"), "specify the over-the-wire sample mode for TX") ("rx_cpu", po::value(&rx_cpu)->default_value("fc32"), "specify the host/cpu sample mode for RX") ("tx_cpu", po::value(&tx_cpu)->default_value("fc32"), "specify the host/cpu sample mode for TX") ("mode", po::value(&mode)->default_value("none"), "multi-channel sync mode option: none, mimo") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help") or (vm.count("rx_rate") + vm.count("tx_rate")) == 0){ //std::cout << boost::format("UHD Transport Hammer - %s") % desc << std::endl; std::cout << "UHD Transport Hammer: a transport layer stress test that continuously\n" "calls for random amounts of TX and RX samples\n\n"; std::cout << desc << std::endl << " Specify --rx_rate for a receive-only test.\n" " Specify --tx_rate for a transmit-only test.\n" " Specify both options for a full-duplex test.\n" << std::endl; return ~0; } //create a usrp device std::cout << std::endl; uhd::device_addrs_t device_addrs = uhd::device::find(args); if (not device_addrs.empty() and device_addrs.at(0).get("type", "") == "usrp1"){ std::cerr << "*** Warning! ***" << std::endl; std::cerr << "Results will be inaccurate on USRP1 due to insufficient features.\n" << std::endl; } std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; if (mode == "mimo"){ usrp->set_clock_source("mimo", 0); usrp->set_time_source("mimo", 0); boost::this_thread::sleep(boost::posix_time::seconds(1)); } boost::thread_group thread_group; //spawn the receive test thread if (vm.count("rx_rate")){ usrp->set_rx_rate(rx_rate); thread_group.create_thread(boost::bind(&rx_hammer, usrp, rx_cpu, rx_otw)); } //spawn the transmit test thread if (vm.count("tx_rate")){ usrp->set_tx_rate(tx_rate); thread_group.create_thread(boost::bind(&tx_hammer, usrp, tx_cpu, tx_otw)); thread_group.create_thread(boost::bind(&tx_hammer_async_helper, usrp)); } //sleep for the required duration const long secs = long(duration); const long usecs = long((duration - secs)*1e6); boost::this_thread::sleep(boost::posix_time::seconds(secs) + boost::posix_time::microseconds(usecs)); //interrupt and join the threads thread_group.interrupt_all(); thread_group.join_all(); //print summary std::cout << std::endl << boost::format( "Transport Hammer summary:\n" " Num received samples: %u\n" " Num dropped samples: %u\n" " Num overflows detected: %u\n" " Num transmitted samples: %u\n" " Num sequence errors: %u\n" " Num underflows detected: %u\n" ) % num_rx_samps % num_dropped_samps % num_overflows % num_tx_samps % num_seq_errors % num_underflows << std::endl; //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/tx_bursts.cpp000066400000000000000000000147371224274632000176560ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; static bool stop_signal_called = false; void sig_int_handler(int){stop_signal_called = true;} int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; double seconds_in_future; size_t total_num_samps; double rate; float ampl; double freq; double rep_rate; double gain; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "multi uhd device address args") ("secs", po::value(&seconds_in_future)->default_value(1.5), "delay before first burst") ("repeat", "repeat burst") ("rep-delay", po::value(&rep_rate)->default_value(0.5), "delay between bursts") ("nsamps", po::value(&total_num_samps)->default_value(10000), "total number of samples to transmit") ("rate", po::value(&rate)->default_value(100e6/16), "rate of outgoing samples") ("ampl", po::value(&l)->default_value(float(0.3)), "amplitude of each sample") ("freq", po::value(&freq)->default_value(0), "center frequency") ("gain", po::value(&gain)->default_value(0), "gain") ("dilv", "specify to disable inner-loop verbose") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD TX Timed Samples %s") % desc << std::endl; return ~0; } bool verbose = vm.count("dilv") == 0; bool repeat = vm.count("repeat") != 0; //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the tx sample rate std::cout << boost::format("Setting TX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_tx_rate(rate); std::cout << boost::format("Actual TX Rate: %f Msps...") % (usrp->get_tx_rate()/1e6) << std::endl << std::endl; std::cout << boost::format("Setting TX Freq: %f MHz...") % (freq/1e6) << std::endl; for(size_t i=0; i < usrp->get_tx_num_channels(); i++) usrp->set_tx_freq(freq, i); std::cout << boost::format("Actual TX Freq: %f MHz...") % (usrp->get_tx_freq()/1e6) << std::endl << std::endl; std::cout << boost::format("Setting TX Gain: %f...") % (gain) << std::endl; for(size_t i=0; i < usrp->get_tx_num_channels(); i++) usrp->set_tx_gain(gain, i); std::cout << boost::format("Actual TX Gain: %f...") % (usrp->get_tx_gain()) << std::endl << std::endl; std::cout << boost::format("Setting device timestamp to 0...") << std::endl; usrp->set_time_now(uhd::time_spec_t(0.0)); //create a transmit streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //allocate buffer with data to send const size_t spb = tx_stream->get_max_num_samps(); std::vector > buff(spb, std::complex(ampl, ampl)); std::vector *> buffs(usrp->get_tx_num_channels(), &buff.front()); std::signal(SIGINT, &sig_int_handler); if(repeat) std::cout << "Press Ctrl + C to quit..." << std::endl; double time_to_send = seconds_in_future; do { //setup metadata for the first packet uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = false; md.has_time_spec = true; md.time_spec = uhd::time_spec_t(time_to_send); //the first call to send() will block this many seconds before sending: double timeout = std::max(rep_rate, seconds_in_future) + 0.1; //timeout (delay before transmit + padding) size_t num_acc_samps = 0; //number of accumulated samples while(num_acc_samps < total_num_samps){ size_t samps_to_send = std::min(total_num_samps - num_acc_samps, spb); //send a single packet size_t num_tx_samps = tx_stream->send( buffs, samps_to_send, md, timeout ); //do not use time spec for subsequent packets md.has_time_spec = false; md.start_of_burst = false; if (num_tx_samps < samps_to_send) std::cerr << "Send timeout..." << std::endl; if(verbose) std::cout << boost::format("Sent packet: %u samples") % num_tx_samps << std::endl; num_acc_samps += num_tx_samps; } md.end_of_burst = true; tx_stream->send(buffs, 0, md, timeout); time_to_send += rep_rate; std::cout << std::endl << "Waiting for async burst ACK... " << std::flush; uhd::async_metadata_t async_md; bool got_async_burst_ack = false; //loop through all messages for the ACK packet (may have underflow messages in queue) while (not got_async_burst_ack and usrp->get_device()->recv_async_msg(async_md, seconds_in_future)){ got_async_burst_ack = (async_md.event_code == uhd::async_metadata_t::EVENT_CODE_BURST_ACK); } std::cout << (got_async_burst_ack? "success" : "fail") << std::endl; } while (not stop_signal_called and repeat); //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/tx_samples_from_file.cpp000066400000000000000000000200351224274632000220060ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; static bool stop_signal_called = false; void sig_int_handler(int){stop_signal_called = true;} template void send_from_file( uhd::usrp::multi_usrp::sptr usrp, const std::string &cpu_format, const std::string &wire_format, const std::string &file, size_t samps_per_buff ){ //create a transmit streamer uhd::stream_args_t stream_args(cpu_format, wire_format); uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); uhd::tx_metadata_t md; md.start_of_burst = false; md.end_of_burst = false; std::vector buff(samps_per_buff); std::ifstream infile(file.c_str(), std::ifstream::binary); //loop until the entire file has been read while(not md.end_of_burst and not stop_signal_called){ infile.read((char*)&buff.front(), buff.size()*sizeof(samp_type)); size_t num_tx_samps = infile.gcount()/sizeof(samp_type); md.end_of_burst = infile.eof(); tx_stream->send(&buff.front(), num_tx_samps, md); } infile.close(); } int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args, file, type, ant, subdev, ref, wirefmt; size_t spb; double rate, freq, gain, bw, delay; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "multi uhd device address args") ("file", po::value(&file)->default_value("usrp_samples.dat"), "name of the file to read binary samples from") ("type", po::value(&type)->default_value("short"), "sample type: double, float, or short") ("spb", po::value(&spb)->default_value(10000), "samples per buffer") ("rate", po::value(&rate), "rate of outgoing samples") ("freq", po::value(&freq), "RF center frequency in Hz") ("gain", po::value(&gain), "gain for the RF chain") ("ant", po::value(&ant), "daughterboard antenna selection") ("subdev", po::value(&subdev), "daughterboard subdevice specification") ("bw", po::value(&bw), "daughterboard IF filter bandwidth in Hz") ("ref", po::value(&ref)->default_value("internal"), "waveform type (internal, external, mimo)") ("wirefmt", po::value(&wirefmt)->default_value("sc16"), "wire format (sc8 or sc16)") ("delay", po::value(&delay)->default_value(0.0), "specify a delay between repeated transmission of file") ("repeat", "repeatedly transmit file") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD TX samples from file %s") % desc << std::endl; return ~0; } bool repeat = vm.count("repeat"); //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //Lock mboard clocks usrp->set_clock_source(ref); //always select the subdevice first, the channel mapping affects the other settings if (vm.count("subdev")) usrp->set_tx_subdev_spec(subdev); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the sample rate if (not vm.count("rate")){ std::cerr << "Please specify the sample rate with --rate" << std::endl; return ~0; } std::cout << boost::format("Setting TX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_tx_rate(rate); std::cout << boost::format("Actual TX Rate: %f Msps...") % (usrp->get_tx_rate()/1e6) << std::endl << std::endl; //set the center frequency if (not vm.count("freq")){ std::cerr << "Please specify the center frequency with --freq" << std::endl; return ~0; } std::cout << boost::format("Setting TX Freq: %f MHz...") % (freq/1e6) << std::endl; usrp->set_tx_freq(freq); std::cout << boost::format("Actual TX Freq: %f MHz...") % (usrp->get_tx_freq()/1e6) << std::endl << std::endl; //set the rf gain if (vm.count("gain")){ std::cout << boost::format("Setting TX Gain: %f dB...") % gain << std::endl; usrp->set_tx_gain(gain); std::cout << boost::format("Actual TX Gain: %f dB...") % usrp->get_tx_gain() << std::endl << std::endl; } //set the IF filter bandwidth if (vm.count("bw")){ std::cout << boost::format("Setting TX Bandwidth: %f MHz...") % bw << std::endl; usrp->set_tx_bandwidth(bw); std::cout << boost::format("Actual TX Bandwidth: %f MHz...") % usrp->get_tx_bandwidth() << std::endl << std::endl; } //set the antenna if (vm.count("ant")) usrp->set_tx_antenna(ant); boost::this_thread::sleep(boost::posix_time::seconds(1)); //allow for some setup time //Check Ref and LO Lock detect std::vector sensor_names; sensor_names = usrp->get_tx_sensor_names(0); if (std::find(sensor_names.begin(), sensor_names.end(), "lo_locked") != sensor_names.end()) { uhd::sensor_value_t lo_locked = usrp->get_tx_sensor("lo_locked",0); std::cout << boost::format("Checking TX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } sensor_names = usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(sensor_names.begin(), sensor_names.end(), "mimo_locked") != sensor_names.end())) { uhd::sensor_value_t mimo_locked = usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking TX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end())) { uhd::sensor_value_t ref_locked = usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking TX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } //set sigint if user wants to receive if(repeat){ std::signal(SIGINT, &sig_int_handler); std::cout << "Press Ctrl + C to stop streaming..." << std::endl; } //send from file do{ if (type == "double") send_from_file >(usrp, "fc64", wirefmt, file, spb); else if (type == "float") send_from_file >(usrp, "fc32", wirefmt, file, spb); else if (type == "short") send_from_file >(usrp, "sc16", wirefmt, file, spb); else throw std::runtime_error("Unknown type " + type); if(repeat and delay != 0.0) boost::this_thread::sleep(boost::posix_time::milliseconds(delay)); } while(repeat and not stop_signal_called); //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/tx_timed_samples.cpp000066400000000000000000000116741224274632000211570ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args; double seconds_in_future; size_t total_num_samps; double rate; float ampl; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("secs", po::value(&seconds_in_future)->default_value(1.5), "number of seconds in the future to transmit") ("nsamps", po::value(&total_num_samps)->default_value(10000), "total number of samples to transmit") ("rate", po::value(&rate)->default_value(100e6/16), "rate of outgoing samples") ("ampl", po::value(&l)->default_value(float(0.3)), "amplitude of each sample") ("dilv", "specify to disable inner-loop verbose") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD TX Timed Samples %s") % desc << std::endl; return ~0; } bool verbose = vm.count("dilv") == 0; //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the tx sample rate std::cout << boost::format("Setting TX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_tx_rate(rate); std::cout << boost::format("Actual TX Rate: %f Msps...") % (usrp->get_tx_rate()/1e6) << std::endl << std::endl; std::cout << boost::format("Setting device timestamp to 0...") << std::endl; usrp->set_time_now(uhd::time_spec_t(0.0)); //create a transmit streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //allocate buffer with data to send std::vector > buff(tx_stream->get_max_num_samps(), std::complex(ampl, ampl)); //setup metadata for the first packet uhd::tx_metadata_t md; md.start_of_burst = false; md.end_of_burst = false; md.has_time_spec = true; md.time_spec = uhd::time_spec_t(seconds_in_future); //the first call to send() will block this many seconds before sending: const double timeout = seconds_in_future + 0.1; //timeout (delay before transmit + padding) size_t num_acc_samps = 0; //number of accumulated samples while(num_acc_samps < total_num_samps){ size_t samps_to_send = std::min(total_num_samps - num_acc_samps, buff.size()); //send a single packet size_t num_tx_samps = tx_stream->send( &buff.front(), samps_to_send, md, timeout ); //do not use time spec for subsequent packets md.has_time_spec = false; if (num_tx_samps < samps_to_send) std::cerr << "Send timeout..." << std::endl; if(verbose) std::cout << boost::format("Sent packet: %u samples") % num_tx_samps << std::endl; num_acc_samps += num_tx_samps; } //send a mini EOB packet md.end_of_burst = true; tx_stream->send("", 0, md); std::cout << std::endl << "Waiting for async burst ACK... " << std::flush; uhd::async_metadata_t async_md; bool got_async_burst_ack = false; //loop through all messages for the ACK packet (may have underflow messages in queue) while (not got_async_burst_ack and usrp->get_device()->recv_async_msg(async_md, timeout)){ got_async_burst_ack = (async_md.event_code == uhd::async_metadata_t::EVENT_CODE_BURST_ACK); } std::cout << (got_async_burst_ack? "success" : "fail") << std::endl; //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/tx_waveforms.cpp000066400000000000000000000255601224274632000203410ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Signal handlers **********************************************************************/ static bool stop_signal_called = false; void sig_int_handler(int){stop_signal_called = true;} /*********************************************************************** * Waveform generators **********************************************************************/ static const size_t wave_table_len = 8192; class wave_table_class{ public: wave_table_class(const std::string &wave_type, const float ampl): _wave_table(wave_table_len) { //compute real wave table with 1.0 amplitude std::vector real_wave_table(wave_table_len); if (wave_type == "CONST"){ for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = 1.0; } else if (wave_type == "SQUARE"){ for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = (i < wave_table_len/2)? 0.0 : 1.0; } else if (wave_type == "RAMP"){ for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = 2.0*i/(wave_table_len-1) - 1.0; } else if (wave_type == "SINE"){ static const double tau = 2*std::acos(-1.0); for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = std::sin((tau*i)/wave_table_len); } else throw std::runtime_error("unknown waveform type: " + wave_type); //compute i and q pairs with 90% offset and scale to amplitude for (size_t i = 0; i < wave_table_len; i++){ const size_t q = (i+(3*wave_table_len)/4)%wave_table_len; _wave_table[i] = std::complex(ampl*real_wave_table[i], ampl*real_wave_table[q]); } } inline std::complex operator()(const size_t index) const{ return _wave_table[index % wave_table_len]; } private: std::vector > _wave_table; }; /*********************************************************************** * Main function **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //variables to be set by po std::string args, wave_type, ant, subdev, ref, otw; size_t spb; double rate, freq, gain, wave_freq, bw; float ampl; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "single uhd device address args") ("spb", po::value(&spb)->default_value(0), "samples per buffer, 0 for default") ("rate", po::value(&rate), "rate of outgoing samples") ("freq", po::value(&freq), "RF center frequency in Hz") ("ampl", po::value(&l)->default_value(float(0.3)), "amplitude of the waveform [0 to 0.7]") ("gain", po::value(&gain), "gain for the RF chain") ("ant", po::value(&ant), "daughterboard antenna selection") ("subdev", po::value(&subdev), "daughterboard subdevice specification") ("bw", po::value(&bw), "daughterboard IF filter bandwidth in Hz") ("wave-type", po::value(&wave_type)->default_value("CONST"), "waveform type (CONST, SQUARE, RAMP, SINE)") ("wave-freq", po::value(&wave_freq)->default_value(0), "waveform frequency in Hz") ("ref", po::value(&ref)->default_value("internal"), "clock reference (internal, external, mimo)") ("otw", po::value(&otw)->default_value("sc16"), "specify the over-the-wire sample mode") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD TX Waveforms %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //Lock mboard clocks usrp->set_clock_source(ref); //always select the subdevice first, the channel mapping affects the other settings if (vm.count("subdev")) usrp->set_tx_subdev_spec(subdev); std::cout << boost::format("Using Device: %s") % usrp->get_pp_string() << std::endl; //set the sample rate if (not vm.count("rate")){ std::cerr << "Please specify the sample rate with --rate" << std::endl; return ~0; } std::cout << boost::format("Setting TX Rate: %f Msps...") % (rate/1e6) << std::endl; usrp->set_tx_rate(rate); std::cout << boost::format("Actual TX Rate: %f Msps...") % (usrp->get_tx_rate()/1e6) << std::endl << std::endl; //set the center frequency if (not vm.count("freq")){ std::cerr << "Please specify the center frequency with --freq" << std::endl; return ~0; } for(size_t chan = 0; chan < usrp->get_tx_num_channels(); chan++) { std::cout << boost::format("Setting TX Freq: %f MHz...") % (freq/1e6) << std::endl; usrp->set_tx_freq(freq, chan); std::cout << boost::format("Actual TX Freq: %f MHz...") % (usrp->get_tx_freq(chan)/1e6) << std::endl << std::endl; //set the rf gain if (vm.count("gain")){ std::cout << boost::format("Setting TX Gain: %f dB...") % gain << std::endl; usrp->set_tx_gain(gain, chan); std::cout << boost::format("Actual TX Gain: %f dB...") % usrp->get_tx_gain(chan) << std::endl << std::endl; } //set the IF filter bandwidth if (vm.count("bw")){ std::cout << boost::format("Setting TX Bandwidth: %f MHz...") % bw << std::endl; usrp->set_tx_bandwidth(bw, chan); std::cout << boost::format("Actual TX Bandwidth: %f MHz...") % usrp->get_tx_bandwidth(chan) << std::endl << std::endl; } //set the antenna if (vm.count("ant")) usrp->set_tx_antenna(ant, chan); } boost::this_thread::sleep(boost::posix_time::seconds(1)); //allow for some setup time //for the const wave, set the wave freq for small samples per period if (wave_freq == 0 and wave_type == "CONST"){ wave_freq = usrp->get_tx_rate()/2; } //error when the waveform is not possible to generate if (std::abs(wave_freq) > usrp->get_tx_rate()/2){ throw std::runtime_error("wave freq out of Nyquist zone"); } if (usrp->get_tx_rate()/std::abs(wave_freq) > wave_table_len/2){ throw std::runtime_error("wave freq too small for table"); } //pre-compute the waveform values const wave_table_class wave_table(wave_type, ampl); const size_t step = boost::math::iround(wave_freq/usrp->get_tx_rate() * wave_table_len); size_t index = 0; //create a transmit streamer //linearly map channels (index0 = channel0, index1 = channel1, ...) uhd::stream_args_t stream_args("fc32", otw); for (size_t chan = 0; chan < usrp->get_tx_num_channels(); chan++) stream_args.channels.push_back(chan); //linear mapping uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //allocate a buffer which we re-use for each channel if (spb == 0) spb = tx_stream->get_max_num_samps()*10; std::vector > buff(spb); std::vector *> buffs(usrp->get_tx_num_channels(), &buff.front()); //setup the metadata flags uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = false; md.has_time_spec = true; md.time_spec = uhd::time_spec_t(0.1); std::cout << boost::format("Setting device timestamp to 0...") << std::endl; usrp->set_time_now(uhd::time_spec_t(0.0)); //Check Ref and LO Lock detect std::vector sensor_names; sensor_names = usrp->get_tx_sensor_names(0); if (std::find(sensor_names.begin(), sensor_names.end(), "lo_locked") != sensor_names.end()) { uhd::sensor_value_t lo_locked = usrp->get_tx_sensor("lo_locked",0); std::cout << boost::format("Checking TX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } sensor_names = usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(sensor_names.begin(), sensor_names.end(), "mimo_locked") != sensor_names.end())) { uhd::sensor_value_t mimo_locked = usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking TX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end())) { uhd::sensor_value_t ref_locked = usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking TX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } std::signal(SIGINT, &sig_int_handler); std::cout << "Press Ctrl + C to stop streaming..." << std::endl; //send data until the signal handler gets called while(not stop_signal_called){ //fill the buffer with the waveform for (size_t n = 0; n < buff.size(); n++){ buff[n] = wave_table(index += step); } //send the entire contents of the buffer tx_stream->send(buffs, buff.size(), md); md.start_of_burst = false; md.has_time_spec = false; } //send a mini EOB packet md.end_of_burst = true; tx_stream->send("", 0, md); //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/examples/txrx_loopback_to_file.cpp000066400000000000000000000475131224274632000221770ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Signal handlers **********************************************************************/ static bool stop_signal_called = false; void sig_int_handler(int){stop_signal_called = true;} /*********************************************************************** * Waveform generators **********************************************************************/ static const size_t wave_table_len = 8192; class wave_table_class{ public: wave_table_class(const std::string &wave_type, const float ampl): _wave_table(wave_table_len) { //compute real wave table with 1.0 amplitude std::vector real_wave_table(wave_table_len); if (wave_type == "CONST"){ for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = 1.0; } else if (wave_type == "SQUARE"){ for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = (i < wave_table_len/2)? 0.0 : 1.0; } else if (wave_type == "RAMP"){ for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = 2.0*i/(wave_table_len-1) - 1.0; } else if (wave_type == "SINE"){ static const double tau = 2*std::acos(-1.0); for (size_t i = 0; i < wave_table_len; i++) real_wave_table[i] = std::sin((tau*i)/wave_table_len); } else throw std::runtime_error("unknown waveform type: " + wave_type); //compute i and q pairs with 90% offset and scale to amplitude for (size_t i = 0; i < wave_table_len; i++){ const size_t q = (i+(3*wave_table_len)/4)%wave_table_len; _wave_table[i] = std::complex(ampl*real_wave_table[i], ampl*real_wave_table[q]); } } inline std::complex operator()(const size_t index) const{ return _wave_table[index % wave_table_len]; } private: std::vector > _wave_table; }; /*********************************************************************** * transmit_worker function * A function to be used as a boost::thread_group thread for transmitting **********************************************************************/ void transmit_worker( std::vector > buff, wave_table_class wave_table, uhd::tx_streamer::sptr tx_streamer, uhd::tx_metadata_t metadata, size_t step, size_t index, int num_channels ){ std::vector *> buffs(num_channels, &buff.front()); //send data until the signal handler gets called while(not stop_signal_called){ //fill the buffer with the waveform for (size_t n = 0; n < buff.size(); n++){ buff[n] = wave_table(index += step); } //send the entire contents of the buffer tx_streamer->send(buffs, buff.size(), metadata); metadata.start_of_burst = false; metadata.has_time_spec = false; } //send a mini EOB packet metadata.end_of_burst = true; tx_streamer->send("", 0, metadata); } /*********************************************************************** * recv_to_file function **********************************************************************/ template void recv_to_file( uhd::usrp::multi_usrp::sptr usrp, const std::string &cpu_format, const std::string &wire_format, const std::string &file, size_t samps_per_buff, int num_requested_samples, float settling_time ){ int num_total_samps = 0; //create a receive streamer uhd::stream_args_t stream_args(cpu_format,wire_format); uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); uhd::rx_metadata_t md; std::vector buff(samps_per_buff); std::ofstream outfile(file.c_str(), std::ofstream::binary); bool overflow_message = true; float timeout = settling_time + 0.1; //expected settling time + padding for first recv //setup streaming uhd::stream_cmd_t stream_cmd((num_requested_samples == 0)? uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS: uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE ); stream_cmd.num_samps = num_requested_samples; stream_cmd.stream_now = false; stream_cmd.time_spec = uhd::time_spec_t(settling_time); usrp->issue_stream_cmd(stream_cmd); while(not stop_signal_called and (num_requested_samples != num_total_samps or num_requested_samples == 0)){ size_t num_rx_samps = rx_stream->recv(&buff.front(), buff.size(), md, timeout); timeout = 0.1; //small timeout for subsequent recv if (md.error_code == uhd::rx_metadata_t::ERROR_CODE_TIMEOUT) { std::cout << boost::format("Timeout while streaming") << std::endl; break; } if (md.error_code == uhd::rx_metadata_t::ERROR_CODE_OVERFLOW){ if (overflow_message){ overflow_message = false; std::cerr << boost::format( "Got an overflow indication. Please consider the following:\n" " Your write medium must sustain a rate of %fMB/s.\n" " Dropped samples will not be written to the file.\n" " Please modify this example for your purposes.\n" " This message will not appear again.\n" ) % (usrp->get_rx_rate()*sizeof(samp_type)/1e6); } continue; } if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ throw std::runtime_error(str(boost::format( "Unexpected error code 0x%x" ) % md.error_code)); } num_total_samps += num_rx_samps; outfile.write((const char*)&buff.front(), num_rx_samps*sizeof(samp_type)); } outfile.close(); } /*********************************************************************** * Main function **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); //transmit variables to be set by po std::string tx_args, wave_type, tx_ant, tx_subdev, ref, otw; double tx_rate, tx_freq, tx_gain, wave_freq, tx_bw; float ampl; //receive variables to be set by po std::string rx_args, file, type, rx_ant, rx_subdev; size_t total_num_samps, spb; double rx_rate, rx_freq, rx_gain, rx_bw; float settling; //setup the program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("tx-args", po::value(&tx_args)->default_value(""), "uhd transmit device address args") ("rx-args", po::value(&rx_args)->default_value(""), "uhd receive device address args") ("file", po::value(&file)->default_value("usrp_samples.dat"), "name of the file to write binary samples to") ("type", po::value(&type)->default_value("short"), "sample type in file: double, float, or short") ("nsamps", po::value(&total_num_samps)->default_value(0), "total number of samples to receive") ("settling", po::value(&settling)->default_value(float(0.2)), "settling time (seconds) before receiving") ("spb", po::value(&spb)->default_value(0), "samples per buffer, 0 for default") ("tx-rate", po::value(&tx_rate), "rate of transmit outgoing samples") ("rx-rate", po::value(&rx_rate), "rate of receive incoming samples") ("tx-freq", po::value(&tx_freq), "transmit RF center frequency in Hz") ("rx-freq", po::value(&rx_freq), "receive RF center frequency in Hz") ("ampl", po::value(&l)->default_value(float(0.3)), "amplitude of the waveform [0 to 0.7]") ("tx-gain", po::value(&tx_gain), "gain for the transmit RF chain") ("rx-gain", po::value(&rx_gain), "gain for the receive RF chain") ("tx-ant", po::value(&tx_ant), "daughterboard transmit antenna selection") ("rx-ant", po::value(&rx_ant), "daughterboard receive antenna selection") ("tx-subdev", po::value(&tx_subdev), "daughterboard transmit subdevice specification") ("rx-subdev", po::value(&rx_subdev), "daughterboard receive subdevice specification") ("tx-bw", po::value(&tx_bw), "daughterboard transmit IF filter bandwidth in Hz") ("rx-bw", po::value(&rx_bw), "daughterboard receive IF filter bandwidth in Hz") ("wave-type", po::value(&wave_type)->default_value("CONST"), "waveform type (CONST, SQUARE, RAMP, SINE)") ("wave-freq", po::value(&wave_freq)->default_value(0), "waveform frequency in Hz") ("ref", po::value(&ref)->default_value("internal"), "clock reference (internal, external, mimo)") ("otw", po::value(&otw)->default_value("sc16"), "specify the over-the-wire sample mode") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD TXRX Loopback to File %s") % desc << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the transmit usrp device with: %s...") % tx_args << std::endl; uhd::usrp::multi_usrp::sptr tx_usrp = uhd::usrp::multi_usrp::make(tx_args); std::cout << std::endl; std::cout << boost::format("Creating the receive usrp device with: %s...") % rx_args << std::endl; uhd::usrp::multi_usrp::sptr rx_usrp = uhd::usrp::multi_usrp::make(rx_args); //Lock mboard clocks tx_usrp->set_clock_source(ref); rx_usrp->set_clock_source(ref); //always select the subdevice first, the channel mapping affects the other settings if (vm.count("tx-subdev")) tx_usrp->set_tx_subdev_spec(tx_subdev); if (vm.count("rx-subdev")) rx_usrp->set_rx_subdev_spec(rx_subdev); std::cout << boost::format("Using Device: %s") % tx_usrp->get_pp_string() << std::endl; std::cout << boost::format("Using Device: %s") % rx_usrp->get_pp_string() << std::endl; //set the transmit sample rate if (not vm.count("tx-rate")){ std::cerr << "Please specify the transmit sample rate with --tx-rate" << std::endl; return ~0; } std::cout << boost::format("Setting TX Rate: %f Msps...") % (tx_rate/1e6) << std::endl; tx_usrp->set_tx_rate(tx_rate); std::cout << boost::format("Actual TX Rate: %f Msps...") % (tx_usrp->get_tx_rate()/1e6) << std::endl << std::endl; //set the receive sample rate if (not vm.count("rx-rate")){ std::cerr << "Please specify the sample rate with --rx-rate" << std::endl; return ~0; } std::cout << boost::format("Setting RX Rate: %f Msps...") % (rx_rate/1e6) << std::endl; rx_usrp->set_rx_rate(rx_rate); std::cout << boost::format("Actual RX Rate: %f Msps...") % (rx_usrp->get_rx_rate()/1e6) << std::endl << std::endl; //set the transmit center frequency if (not vm.count("tx-freq")){ std::cerr << "Please specify the transmit center frequency with --tx-freq" << std::endl; return ~0; } for(size_t chan = 0; chan < tx_usrp->get_tx_num_channels(); chan++) { std::cout << boost::format("Setting TX Freq: %f MHz...") % (tx_freq/1e6) << std::endl; tx_usrp->set_tx_freq(tx_freq, chan); std::cout << boost::format("Actual TX Freq: %f MHz...") % (tx_usrp->get_tx_freq(chan)/1e6) << std::endl << std::endl; //set the rf gain if (vm.count("tx-gain")){ std::cout << boost::format("Setting TX Gain: %f dB...") % tx_gain << std::endl; tx_usrp->set_tx_gain(tx_gain, chan); std::cout << boost::format("Actual TX Gain: %f dB...") % tx_usrp->get_tx_gain(chan) << std::endl << std::endl; } //set the IF filter bandwidth if (vm.count("tx-bw")){ std::cout << boost::format("Setting TX Bandwidth: %f MHz...") % tx_bw << std::endl; tx_usrp->set_tx_bandwidth(tx_bw, chan); std::cout << boost::format("Actual TX Bandwidth: %f MHz...") % tx_usrp->get_tx_bandwidth(chan) << std::endl << std::endl; } //set the antenna if (vm.count("tx-ant")) tx_usrp->set_tx_antenna(tx_ant, chan); } //set the receive center frequency if (not vm.count("rx-freq")){ std::cerr << "Please specify the center frequency with --rx-freq" << std::endl; return ~0; } std::cout << boost::format("Setting RX Freq: %f MHz...") % (rx_freq/1e6) << std::endl; rx_usrp->set_rx_freq(rx_freq); std::cout << boost::format("Actual RX Freq: %f MHz...") % (rx_usrp->get_rx_freq()/1e6) << std::endl << std::endl; //set the receive rf gain if (vm.count("rx_gain")){ std::cout << boost::format("Setting RX Gain: %f dB...") % rx_gain << std::endl; rx_usrp->set_rx_gain(rx_gain); std::cout << boost::format("Actual RX Gain: %f dB...") % rx_usrp->get_rx_gain() << std::endl << std::endl; } //set the receive IF filter bandwidth if (vm.count("rx_bw")){ std::cout << boost::format("Setting RX Bandwidth: %f MHz...") % rx_bw << std::endl; rx_usrp->set_rx_bandwidth(rx_bw); std::cout << boost::format("Actual RX Bandwidth: %f MHz...") % rx_usrp->get_rx_bandwidth() << std::endl << std::endl; } //set the receive antenna if (vm.count("ant")) rx_usrp->set_rx_antenna(rx_ant); //for the const wave, set the wave freq for small samples per period if (wave_freq == 0 and wave_type == "CONST"){ wave_freq = tx_usrp->get_tx_rate()/2; } //error when the waveform is not possible to generate if (std::abs(wave_freq) > tx_usrp->get_tx_rate()/2){ throw std::runtime_error("wave freq out of Nyquist zone"); } if (tx_usrp->get_tx_rate()/std::abs(wave_freq) > wave_table_len/2){ throw std::runtime_error("wave freq too small for table"); } //pre-compute the waveform values const wave_table_class wave_table(wave_type, ampl); const size_t step = boost::math::iround(wave_freq/tx_usrp->get_tx_rate() * wave_table_len); size_t index = 0; //create a transmit streamer //linearly map channels (index0 = channel0, index1 = channel1, ...) uhd::stream_args_t stream_args("fc32", otw); for (size_t chan = 0; chan < tx_usrp->get_tx_num_channels(); chan++) stream_args.channels.push_back(chan); //linear mapping uhd::tx_streamer::sptr tx_stream = tx_usrp->get_tx_stream(stream_args); //allocate a buffer which we re-use for each channel if (spb == 0) spb = tx_stream->get_max_num_samps()*10; std::vector > buff(spb); int num_channels = tx_usrp->get_tx_num_channels(); //setup the metadata flags uhd::tx_metadata_t md; md.start_of_burst = true; md.end_of_burst = false; md.has_time_spec = true; md.time_spec = uhd::time_spec_t(0.1); //give us 0.1 seconds to fill the tx buffers //Check Ref and LO Lock detect std::vector tx_sensor_names, rx_sensor_names; tx_sensor_names = tx_usrp->get_tx_sensor_names(0); if (std::find(tx_sensor_names.begin(), tx_sensor_names.end(), "lo_locked") != tx_sensor_names.end()) { uhd::sensor_value_t lo_locked = tx_usrp->get_tx_sensor("lo_locked",0); std::cout << boost::format("Checking TX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } rx_sensor_names = rx_usrp->get_rx_sensor_names(0); if (std::find(rx_sensor_names.begin(), rx_sensor_names.end(), "lo_locked") != rx_sensor_names.end()) { uhd::sensor_value_t lo_locked = rx_usrp->get_rx_sensor("lo_locked",0); std::cout << boost::format("Checking RX: %s ...") % lo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(lo_locked.to_bool()); } tx_sensor_names = tx_usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(tx_sensor_names.begin(), tx_sensor_names.end(), "mimo_locked") != tx_sensor_names.end())) { uhd::sensor_value_t mimo_locked = tx_usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking TX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(tx_sensor_names.begin(), tx_sensor_names.end(), "ref_locked") != tx_sensor_names.end())) { uhd::sensor_value_t ref_locked = tx_usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking TX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } rx_sensor_names = rx_usrp->get_mboard_sensor_names(0); if ((ref == "mimo") and (std::find(rx_sensor_names.begin(), rx_sensor_names.end(), "mimo_locked") != rx_sensor_names.end())) { uhd::sensor_value_t mimo_locked = rx_usrp->get_mboard_sensor("mimo_locked",0); std::cout << boost::format("Checking RX: %s ...") % mimo_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(mimo_locked.to_bool()); } if ((ref == "external") and (std::find(rx_sensor_names.begin(), rx_sensor_names.end(), "ref_locked") != rx_sensor_names.end())) { uhd::sensor_value_t ref_locked = rx_usrp->get_mboard_sensor("ref_locked",0); std::cout << boost::format("Checking RX: %s ...") % ref_locked.to_pp_string() << std::endl; UHD_ASSERT_THROW(ref_locked.to_bool()); } if (total_num_samps == 0){ std::signal(SIGINT, &sig_int_handler); std::cout << "Press Ctrl + C to stop streaming..." << std::endl; } //reset usrp time to prepare for transmit/receive std::cout << boost::format("Setting device timestamp to 0...") << std::endl; tx_usrp->set_time_now(uhd::time_spec_t(0.0)); //start transmit worker thread boost::thread_group transmit_thread; transmit_thread.create_thread(boost::bind(&transmit_worker, buff, wave_table, tx_stream, md, step, index, num_channels)); //recv to file if (type == "double") recv_to_file >(rx_usrp, "fc64", otw, file, spb, total_num_samps, settling); else if (type == "float") recv_to_file >(rx_usrp, "fc32", otw, file, spb, total_num_samps, settling); else if (type == "short") recv_to_file >(rx_usrp, "sc16", otw, file, spb, total_num_samps, settling); else { //clean up transmit worker stop_signal_called = true; transmit_thread.join_all(); throw std::runtime_error("Unknown type " + type); } //clean up transmit worker stop_signal_called = true; transmit_thread.join_all(); //finished std::cout << std::endl << "Done!" << std::endl << std::endl; return 0; } uhd-3.5.5/host/include/000077500000000000000000000000001224274632000147065ustar00rootroot00000000000000uhd-3.5.5/host/include/CMakeLists.txt000066400000000000000000000012741224274632000174520ustar00rootroot00000000000000# # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ADD_SUBDIRECTORY(uhd) uhd-3.5.5/host/include/uhd/000077500000000000000000000000001224274632000154665ustar00rootroot00000000000000uhd-3.5.5/host/include/uhd/CMakeLists.txt000066400000000000000000000020301224274632000202210ustar00rootroot00000000000000 # Copyright 2010-2011,2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ADD_SUBDIRECTORY(transport) ADD_SUBDIRECTORY(types) ADD_SUBDIRECTORY(usrp) ADD_SUBDIRECTORY(utils) UHD_INSTALL(FILES config.hpp convert.hpp deprecated.hpp device.hpp device_deprecated.ipp exception.hpp property_tree.ipp property_tree.hpp stream.hpp version.hpp DESTINATION ${INCLUDE_DIR}/uhd COMPONENT headers ) uhd-3.5.5/host/include/uhd/config.hpp000066400000000000000000000074421224274632000174530ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_CONFIG_HPP #define INCLUDED_UHD_CONFIG_HPP #include #ifdef BOOST_MSVC // suppress warnings //# pragma warning(push) //# pragma warning(disable: 4511) // copy constructor can't not be generated //# pragma warning(disable: 4512) // assignment operator can't not be generated //# pragma warning(disable: 4100) // unreferenced formal parameter //# pragma warning(disable: 4996) // was declared deprecated # pragma warning(disable: 4355) // 'this' : used in base member initializer list //# pragma warning(disable: 4706) // assignment within conditional expression # pragma warning(disable: 4251) // class 'A' needs to have dll-interface to be used by clients of class 'B' //# pragma warning(disable: 4127) // conditional expression is constant //# pragma warning(disable: 4290) // C++ exception specification ignored except to ... //# pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored # pragma warning(disable: 4275) // non dll-interface class ... used as base for dll-interface class ... //# pragma warning(disable: 4267) // 'var' : conversion from 'size_t' to 'type', possible loss of data //# pragma warning(disable: 4511) // 'class' : copy constructor could not be generated //# pragma warning(disable: 4250) // 'class' : inherits 'method' via dominance # pragma warning(disable: 4200) // nonstandard extension used : zero-sized array in struct/union // define logical operators #include // define ssize_t #include typedef ptrdiff_t ssize_t; #endif //BOOST_MSVC //define cross platform attribute macros #if defined(BOOST_MSVC) #define UHD_EXPORT __declspec(dllexport) #define UHD_IMPORT __declspec(dllimport) #define UHD_INLINE __forceinline #define UHD_DEPRECATED __declspec(deprecated) #define UHD_ALIGNED(x) __declspec(align(x)) #elif defined(__GNUG__) && __GNUG__ >= 4 #define UHD_EXPORT __attribute__((visibility("default"))) #define UHD_IMPORT __attribute__((visibility("default"))) #define UHD_INLINE inline __attribute__((always_inline)) #define UHD_DEPRECATED __attribute__((deprecated)) #define UHD_ALIGNED(x) __attribute__((aligned(x))) #else #define UHD_EXPORT #define UHD_IMPORT #define UHD_INLINE inline #define UHD_DEPRECATED #define UHD_ALIGNED(x) #endif // Define API declaration macro #ifdef UHD_DLL_EXPORTS #define UHD_API UHD_EXPORT #else #define UHD_API UHD_IMPORT #endif // UHD_DLL_EXPORTS // Platform defines for conditional parts of headers: // Taken from boost/config/select_platform_config.hpp, // however, we define macros, not strings for platforms. #if defined(linux) || defined(__linux) || defined(__linux__) #define UHD_PLATFORM_LINUX #elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) #define UHD_PLATFORM_WIN32 #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) #define UHD_PLATFORM_MACOS #elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) #define UHD_PLATFORM_BSD #endif #endif /* INCLUDED_UHD_CONFIG_HPP */ uhd-3.5.5/host/include/uhd/convert.hpp000066400000000000000000000065071224274632000176670ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_CONVERT_HPP #define INCLUDED_UHD_CONVERT_HPP #include #include #include #include #include #include namespace uhd{ namespace convert{ //! A conversion class that implements a conversion from inputs -> outputs. class converter{ public: typedef boost::shared_ptr sptr; typedef uhd::ref_vector output_type; typedef uhd::ref_vector input_type; //! Set the scale factor (used in floating point conversions) virtual void set_scalar(const double) = 0; //! The public conversion method to convert inputs -> outputs UHD_INLINE void conv(const input_type &in, const output_type &out, const size_t num){ if (num != 0) (*this)(in, out, num); } private: //! Callable method: input vectors, output vectors, num samples virtual void operator()(const input_type&, const output_type&, const size_t) = 0; }; //! Conversion factory function typedef typedef boost::function function_type; //! Priority of conversion routines typedef int priority_type; //! Identify a conversion routine in the registry struct id_type : boost::equality_comparable{ std::string input_format; size_t num_inputs; std::string output_format; size_t num_outputs; std::string to_pp_string(void) const; }; //! Implement equality_comparable interface UHD_API bool operator==(const id_type &, const id_type &); /*! * Register a converter function. * \param id identify the conversion * \param fcn makes a new converter * \param prio the function priority */ UHD_API void register_converter( const id_type &id, const function_type &fcn, const priority_type prio ); /*! * Get a converter factory function. * \param id identify the conversion * \param prio the desired prio or -1 for best * \return the converter factory function */ UHD_API function_type get_converter( const id_type &id, const priority_type prio = -1 ); /*! * Register the size of a particular item. * \param format the item format * \param size the size in bytes */ UHD_API void register_bytes_per_item( const std::string &format, const size_t size ); //! Convert an item format to a size in bytes UHD_API size_t get_bytes_per_item(const std::string &format); }} //namespace #endif /* INCLUDED_UHD_CONVERT_HPP */ uhd-3.5.5/host/include/uhd/deprecated.hpp000066400000000000000000000046341224274632000203060ustar00rootroot00000000000000//---------------------------------------------------------------------- //-- deprecated interfaces below, to be removed when the API is changed //---------------------------------------------------------------------- // // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_OTW_TYPE_HPP #define INCLUDED_UHD_TYPES_OTW_TYPE_HPP #include namespace uhd{ /*! * Description for over-the-wire integers: * The DSP units in the FPGA deal with signed 16-bit integers. * The width and shift define the translation between OTW and DSP, * defined by the following relation: otw_int = dsp_int >> shift * * Note: possible combinations of width, shift, and byteorder * depend on the internals of the FPGA. Not all are supported! */ struct UHD_API otw_type_t{ /*! * Width of an over-the-wire integer in bits. */ size_t width; //in bits /*! * Shift of an over-the-wire integer in bits. * otw_int = dsp_int >> shift * dsp_int = otw_int << shift */ size_t shift; //in bits /*! * Constants for byte order (borrowed from numpy's dtype) */ enum /*bo_t*/ { BO_NATIVE = int('='), BO_LITTLE_ENDIAN = int('<'), BO_BIG_ENDIAN = int('>'), BO_NOT_APPLICABLE = int('|') } byteorder; /*! * Get the sample size of this otw type. * \return the size of a sample in bytes */ size_t get_sample_size(void) const; otw_type_t(void); }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_OTW_TYPE_HPP */ #include //wish it was in here #include //wish it was in here uhd-3.5.5/host/include/uhd/device.hpp000066400000000000000000000067641224274632000174530ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_DEVICE_HPP #define INCLUDED_UHD_DEVICE_HPP #include #include #include #include #include #include #include namespace uhd{ class property_tree; //forward declaration /*! * The usrp device interface represents the usrp hardware. * The api allows for discovery, configuration, and streaming. */ class UHD_API device : boost::noncopyable{ public: typedef boost::shared_ptr sptr; typedef boost::function find_t; typedef boost::function make_t; /*! * Register a device into the discovery and factory system. * * \param find a function that discovers devices * \param make a factory function that makes a device */ static void register_device( const find_t &find, const make_t &make ); /*! * \brief Find usrp devices attached to the host. * * The hint device address should be used to narrow down the search * to particular transport types and/or transport arguments. * * \param hint a partially (or fully) filled in device address * \return a vector of device addresses for all usrps on the system */ static device_addrs_t find(const device_addr_t &hint); /*! * \brief Create a new usrp device from the device address hint. * * The make routine will call find and pick one of the results. * By default, the first result will be used to create a new device. * Use the which parameter as an index into the list of results. * * \param hint a partially (or fully) filled in device address * \param which which address to use when multiple are found * \return a shared pointer to a new device instance */ static sptr make(const device_addr_t &hint, size_t which = 0); //! Make a new receive streamer from the streamer arguments virtual rx_streamer::sptr get_rx_stream(const stream_args_t &args) = 0; //! Make a new transmit streamer from the streamer arguments virtual tx_streamer::sptr get_tx_stream(const stream_args_t &args) = 0; /*! * Receive and asynchronous message from the device. * \param async_metadata the metadata to be filled in * \param timeout the timeout in seconds to wait for a message * \return true when the async_metadata is valid, false for timeout */ virtual bool recv_async_msg( async_metadata_t &async_metadata, double timeout = 0.1 ) = 0; //! Get access to the underlying property structure virtual boost::shared_ptr get_tree(void) const = 0; #include }; } //namespace uhd #endif /* INCLUDED_UHD_DEVICE_HPP */ uhd-3.5.5/host/include/uhd/device_deprecated.ipp000066400000000000000000000161701224274632000216240ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //this file is included inside device class //it supports the old send/recv functions //this was replaced by the streamer API #define _lazymin(x, y) (((x) > (y))? (y) : (x)) /*! * Send modes for the device send routine. */ enum send_mode_t{ //! Tells the send routine to send the entire buffer SEND_MODE_FULL_BUFF = 0, //! Tells the send routine to return after one packet SEND_MODE_ONE_PACKET = 1 }; /*! * Recv modes for the device recv routine. */ enum recv_mode_t{ //! Tells the recv routine to recv the entire buffer RECV_MODE_FULL_BUFF = 0, //! Tells the recv routine to return after one packet RECV_MODE_ONE_PACKET = 1 }; //! Typedef for a pointer to a single, or a collection of send buffers typedef ref_vector send_buffs_type; //! Typedef for a pointer to a single, or a collection of recv buffers typedef ref_vector recv_buffs_type; /*! * Send buffers containing IF data described by the metadata. * * Send handles fragmentation as follows: * If the buffer has more samples than the maximum per packet, * the send method will fragment the samples across several packets. * Send will respect the burst flags when fragmenting to ensure * that start of burst can only be set on the first fragment and * that end of burst can only be set on the final fragment. * Fragmentation only applies in the full buffer send mode. * * This is a blocking call and will not return until the number * of samples returned have been read out of each buffer. * Under a timeout condition, the number of samples returned * may be less than the number of samples specified. * * \param buffs a vector of read-only memory containing IF data * \param nsamps_per_buff the number of samples to send, per buffer * \param metadata data describing the buffer's contents * \param io_type the type of data loaded in the buffer * \param send_mode tells send how to unload the buffer * \param timeout the timeout in seconds to wait on a packet * \return the number of samples sent */ size_t send( const send_buffs_type &buffs, size_t nsamps_per_buff, const tx_metadata_t &metadata, const io_type_t &io_type, send_mode_t send_mode, double timeout = 0.1 ){ if (_tx_streamer.get() == NULL or _tx_streamer->get_num_channels() != buffs.size() or _send_tid != io_type.tid){ _send_tid = io_type.tid; _tx_streamer.reset(); //cleanup possible old one stream_args_t args; args.cpu_format = (_send_tid == io_type_t::COMPLEX_FLOAT32)? "fc32" : "sc16"; args.otw_format = "sc16"; args.args["noclear"] = "1"; for (size_t ch = 0; ch < buffs.size(); ch++) args.channels.push_back(ch); //linear mapping _tx_streamer = get_tx_stream(args); } const size_t nsamps = (send_mode == SEND_MODE_ONE_PACKET)? _lazymin(nsamps_per_buff, get_max_send_samps_per_packet()) : nsamps_per_buff; return _tx_streamer->send(buffs, nsamps, metadata, timeout); } /*! * Receive buffers containing IF data described by the metadata. * * Receive handles fragmentation as follows: * If the buffer has insufficient space to hold all samples * that were received in a single packet over-the-wire, * then the buffer will be completely filled and the implementation * will hold a pointer into the remaining portion of the packet. * Subsequent calls will load from the remainder of the packet, * and will flag the metadata to show that this is a fragment. * The next call to receive, after the remainder becomes exahausted, * will perform an over-the-wire receive as usual. * See the rx metadata fragment flags and offset fields for details. * * This is a blocking call and will not return until the number * of samples returned have been written into each buffer. * Under a timeout condition, the number of samples returned * may be less than the number of samples specified. * * When using the full buffer recv mode, the metadata only applies * to the first packet received and written into the recv buffers. * Use the one packet recv mode to get per packet metadata. * * \param buffs a vector of writable memory to fill with IF data * \param nsamps_per_buff the size of each buffer in number of samples * \param metadata data to fill describing the buffer * \param io_type the type of data to fill into the buffer * \param recv_mode tells recv how to load the buffer * \param timeout the timeout in seconds to wait for a packet * \return the number of samples received or 0 on error */ size_t recv( const recv_buffs_type &buffs, size_t nsamps_per_buff, rx_metadata_t &metadata, const io_type_t &io_type, recv_mode_t recv_mode, double timeout = 0.1 ){ if (_rx_streamer.get() == NULL or _rx_streamer->get_num_channels() != buffs.size() or _recv_tid != io_type.tid){ _recv_tid = io_type.tid; _rx_streamer.reset(); //cleanup possible old one stream_args_t args; args.cpu_format = (_recv_tid == io_type_t::COMPLEX_FLOAT32)? "fc32" : "sc16"; args.otw_format = "sc16"; args.args["noclear"] = "1"; for (size_t ch = 0; ch < buffs.size(); ch++) args.channels.push_back(ch); //linear mapping _rx_streamer = get_rx_stream(args); } const size_t nsamps = (recv_mode == RECV_MODE_ONE_PACKET)? _lazymin(nsamps_per_buff, get_max_recv_samps_per_packet()) : nsamps_per_buff; return _rx_streamer->recv(buffs, nsamps, metadata, timeout); } /*! * Get the maximum number of samples per packet on send. * \return the number of samples */ size_t get_max_send_samps_per_packet(void){ if (_tx_streamer.get() == NULL){ stream_args_t args; args.cpu_format = "fc32"; args.otw_format = "sc16"; args.args["noclear"] = "1"; _tx_streamer = get_tx_stream(args); _send_tid = io_type_t::COMPLEX_FLOAT32; } return _tx_streamer->get_max_num_samps(); } /*! * Get the maximum number of samples per packet on recv. * \return the number of samples */ size_t get_max_recv_samps_per_packet(void){ if (_rx_streamer.get() == NULL){ stream_args_t args; args.cpu_format = "fc32"; args.otw_format = "sc16"; args.args["noclear"] = "1"; _rx_streamer = get_rx_stream(args); _recv_tid = io_type_t::COMPLEX_FLOAT32; } return _rx_streamer->get_max_num_samps(); } private: rx_streamer::sptr _rx_streamer; io_type_t::tid_t _recv_tid; tx_streamer::sptr _tx_streamer; io_type_t::tid_t _send_tid; uhd-3.5.5/host/include/uhd/exception.hpp000066400000000000000000000136221224274632000202010ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_EXCEPTION_HPP #define INCLUDED_UHD_EXCEPTION_HPP #include #include #include #include /*! * Define common exceptions used throughout the code: * * - The python built-in exceptions were used as inspiration. * - Exceptions inherit from std::exception to provide what(). * - Exceptions inherit from uhd::exception to provide code(). * * The code() provides an error code which allows the application * the option of printing a cryptic error message from the 1990s. * * The dynamic_clone() and dynamic_throw() methods allow us to: * catch an exception by dynamic type (i.e. derived class), save it, * and later rethrow it, knowing only the static type (i.e. base class), * and then finally to catch it again using the derived type. * * http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2106.html */ namespace uhd{ struct UHD_API exception : std::runtime_error{ exception(const std::string &what); virtual unsigned code(void) const = 0; virtual exception *dynamic_clone(void) const = 0; virtual void dynamic_throw(void) const = 0; }; struct UHD_API assertion_error : exception{ assertion_error(const std::string &what); virtual unsigned code(void) const; virtual assertion_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API lookup_error : exception{ lookup_error(const std::string &what); virtual unsigned code(void) const; virtual lookup_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API index_error : lookup_error{ index_error(const std::string &what); virtual unsigned code(void) const; virtual index_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API key_error : lookup_error{ key_error(const std::string &what); virtual unsigned code(void) const; virtual key_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API type_error : exception{ type_error(const std::string &what); virtual unsigned code(void) const; virtual type_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API value_error : exception{ value_error(const std::string &what); virtual unsigned code(void) const; virtual value_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API runtime_error : exception{ runtime_error(const std::string &what); virtual unsigned code(void) const; virtual runtime_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API not_implemented_error : runtime_error{ not_implemented_error(const std::string &what); virtual unsigned code(void) const; virtual not_implemented_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API environment_error : exception{ environment_error(const std::string &what); virtual unsigned code(void) const; virtual environment_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API io_error : environment_error{ io_error(const std::string &what); virtual unsigned code(void) const; virtual io_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API os_error : environment_error{ os_error(const std::string &what); virtual unsigned code(void) const; virtual os_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; struct UHD_API system_error : exception{ system_error(const std::string &what); virtual unsigned code(void) const; virtual system_error *dynamic_clone(void) const; virtual void dynamic_throw(void) const; }; /*! * Create a formated string with throw-site information. * Fills in the function name, file name, and line number. * \param what the std::exeption message * \return the formatted exception message */ #define UHD_THROW_SITE_INFO(what) std::string( \ std::string(what) + "\n" + \ " in " + std::string(BOOST_CURRENT_FUNCTION) + "\n" + \ " at " + std::string(__FILE__) + ":" + BOOST_STRINGIZE(__LINE__) + "\n" \ ) /*! * Throws an invalid code path exception with throw-site information. * Use this macro in places that code execution is not supposed to go. */ #define UHD_THROW_INVALID_CODE_PATH() \ throw uhd::system_error(UHD_THROW_SITE_INFO("invalid code path")) /*! * Assert the result of the code evaluation. * If the code evaluates to false, throw an assertion error. * \param code the code that resolved to a boolean */ #define UHD_ASSERT_THROW(code) if (not (code)) \ throw uhd::assertion_error(UHD_THROW_SITE_INFO(#code)); \ else void(0) } //namespace uhd #endif /* INCLUDED_UHD_EXCEPTION_HPP */ uhd-3.5.5/host/include/uhd/property_tree.hpp000066400000000000000000000125121224274632000211030ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_PROPERTY_TREE_HPP #define INCLUDED_UHD_PROPERTY_TREE_HPP #include #include #include #include #include namespace uhd{ /*! * A templated property interface for holding a value * and registering callbacks when that value changes. */ template class property : boost::noncopyable{ public: typedef boost::function subscriber_type; typedef boost::function publisher_type; typedef boost::function coercer_type; /*! * Register a coercer into the property. * A coercer is a special subscribes that coerces the value. * Only one coercer may be registered per property. * Registering a coercer replaces the previous coercer. * \param coercer the coercer callback function * \return a reference to this property for chaining */ virtual property &coerce(const coercer_type &coercer) = 0; /*! * Register a publisher into the property. * A publisher is a special callback the provides the value. * Publishers are useful for creating read-only properties. * Only one publisher may be registered per property. * Registering a publisher replaces the previous publisher. * \param publisher the publisher callback function * \return a reference to this property for chaining */ virtual property &publish(const publisher_type &publisher) = 0; /*! * Register a subscriber into the property. * All subscribers are called when the value changes. * Once a subscriber is registered, it cannot be unregistered. * \param subscriber the subscriber callback function * \return a reference to this property for chaining */ virtual property &subscribe(const subscriber_type &subscriber) = 0; /*! * Update calls all subscribers w/ the current value. * \return a reference to this property for chaining */ virtual property &update(void) = 0; /*! * Set the new value and call all subscribers. * The coercer (when provided) is called initially, * and the coerced value is used to set the subscribers. * \param value the new value to set on this property * \return a reference to this property for chaining */ virtual property &set(const T &value) = 0; /*! * Get the current value of this property. * The publisher (when provided) yields the value, * otherwise an internal shadow is used for the value. * \return the current value in the property */ virtual T get(void) const = 0; /*! * A property is empty if it has never been set. * A property with a publisher is never empty. * \return true if the property is empty */ virtual bool empty(void) const = 0; }; /*! * FS Path: A glorified string with path manipulations. * Inspired by boost filesystem path, but without the dependency. * * Notice: we do not declare UHD_API on the whole structure * because MSVC will do weird things with std::string and linking. */ struct fs_path : std::string{ UHD_API fs_path(void); UHD_API fs_path(const char *); UHD_API fs_path(const std::string &); UHD_API std::string leaf(void) const; UHD_API fs_path branch_path(void) const; }; UHD_API fs_path operator/(const fs_path &, const fs_path &); /*! * The property tree provides a file system structure for accessing properties. */ class UHD_API property_tree : boost::noncopyable{ public: typedef boost::shared_ptr sptr; //! Create a new + empty property tree static sptr make(void); //! Get a subtree with a new root starting at path virtual sptr subtree(const fs_path &path) const = 0; //! Remove a property or directory (recursive) virtual void remove(const fs_path &path) = 0; //! True if the path exists in the tree virtual bool exists(const fs_path &path) const = 0; //! Get an iterable to all things in the given path virtual std::vector list(const fs_path &path) const = 0; //! Create a new property entry in the tree template property &create(const fs_path &path); //! Get access to a property in the tree template property &access(const fs_path &path); private: //! Internal create property with wild-card type virtual void _create(const fs_path &path, const boost::shared_ptr &prop) = 0; //! Internal access property with wild-card type virtual boost::shared_ptr &_access(const fs_path &path) const = 0; }; } //namespace uhd #include #endif /* INCLUDED_UHD_PROPERTY_TREE_HPP */ uhd-3.5.5/host/include/uhd/property_tree.ipp000066400000000000000000000061311224274632000211040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_PROPERTY_TREE_IPP #define INCLUDED_UHD_PROPERTY_TREE_IPP #include #include #include /*********************************************************************** * Implement templated property impl **********************************************************************/ namespace uhd{ namespace /*anon*/{ template class property_impl : public property{ public: property &coerce(const typename property::coercer_type &coercer){ _coercer = coercer; return *this; } property &publish(const typename property::publisher_type &publisher){ _publisher = publisher; return *this; } property &subscribe(const typename property::subscriber_type &subscriber){ _subscribers.push_back(subscriber); return *this; } property &update(void){ this->set(this->get()); return *this; } property &set(const T &value){ _value = boost::shared_ptr(new T(_coercer.empty()? value : _coercer(value))); BOOST_FOREACH(typename property::subscriber_type &subscriber, _subscribers){ subscriber(*_value); //let errors propagate } return *this; } T get(void) const{ if (empty()) throw uhd::runtime_error("Cannot get() on an empty property"); return _publisher.empty()? *_value : _publisher(); } bool empty(void) const{ return _publisher.empty() and _value.get() == NULL; } private: std::vector::subscriber_type> _subscribers; typename property::publisher_type _publisher; typename property::coercer_type _coercer; boost::shared_ptr _value; }; }} //namespace uhd::/*anon*/ /*********************************************************************** * Implement templated methods for the property tree **********************************************************************/ namespace uhd{ template property &property_tree::create(const fs_path &path){ this->_create(path, typename boost::shared_ptr >(new property_impl())); return this->access(path); } template property &property_tree::access(const fs_path &path){ return *boost::static_pointer_cast >(this->_access(path)); } } //namespace uhd #endif /* INCLUDED_UHD_PROPERTY_TREE_IPP */ uhd-3.5.5/host/include/uhd/stream.hpp000066400000000000000000000210721224274632000174740ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_STREAM_HPP #define INCLUDED_UHD_STREAM_HPP #include #include #include #include #include #include #include #include namespace uhd{ /*! * A struct of parameters to construct a streamer. * * Note: * Not all combinations of CPU and OTW format have conversion support. * You may however write and register your own conversion routines. */ struct UHD_API stream_args_t{ //! Convenience constructor for streamer args stream_args_t( const std::string &cpu = "", const std::string &otw = "" ){ cpu_format = cpu; otw_format = otw; } /*! * The CPU format is a string that describes the format of host memory. * Conversions for the following CPU formats have been implemented: * - fc64 - complex * - fc32 - complex * - sc16 - complex * - sc8 - complex * * The following are not implemented, but are listed to demonstrate naming convention: * - f32 - float * - f64 - double * - s16 - int16_t * - s8 - int8_t */ std::string cpu_format; /*! * The OTW format is a string that describes the format over-the-wire. * The following over-the-wire formats have been implemented: * - sc16 - Q16 I16 * - sc8 - Q8_1 I8_1 Q8_0 I8_0 * * The following are not implemented, but are listed to demonstrate naming convention: * - s16 - R16_1 R16_0 * - s8 - R8_3 R8_2 R8_1 R8_0 */ std::string otw_format; /*! * The args parameter is used to pass arbitrary key/value pairs. * Possible keys used by args (depends on implementation): * * - fullscale: specifies the full-scale amplitude when using floats. * By default, the fullscale amplitude under floating point is 1.0. * Set the "fullscale" to scale the samples in the host to the * expected input range and/or output range of your application. * * - peak: specifies a fractional sample level to calculate scaling with the sc8 wire format. * When using sc8 samples over the wire, the device must scale samples * (both on the host and in the device) to satisfy the dynamic range needs. * The peak value specifies a fraction of the maximum sample level (1.0 = 100%). * Set peak to max_sample_level/full_scale_level to ensure optimum dynamic range. * * - underflow_policy: how the TX DSP should recover from underflow. * Possible options are "next_burst" or "next_packet". * In the "next_burst" mode, the DSP drops incoming packets until a new burst is started. * In the "next_packet" mode, the DSP starts transmitting again at the next packet. * * - spp: (samples per packet) controls the size of RX packets. * When not specified, the packets are always maximum frame size. * Users should specify this option to request smaller than default * packets, probably with the intention of reducing packet latency. * * The following are not implemented, but are listed for conceptual purposes: * - function: magnitude or phase/magnitude * - units: numeric units like counts or dBm */ device_addr_t args; /*! * The channels is a list of channel numbers. * Leave this blank to default to channel 0. * Set channels for a multi-channel application. * Channel mapping depends on the front-end selection. */ std::vector channels; }; /*! * The RX streamer is the host interface to receiving samples. * It represents the layer between the samples on the host * and samples inside the device's receive DSP processing. */ class UHD_API rx_streamer : boost::noncopyable{ public: typedef boost::shared_ptr sptr; //! Get the number of channels associated with this streamer virtual size_t get_num_channels(void) const = 0; //! Get the max number of samples per buffer per packet virtual size_t get_max_num_samps(void) const = 0; //! Typedef for a pointer to a single, or a collection of recv buffers typedef ref_vector buffs_type; /*! * Receive buffers containing samples described by the metadata. * * Receive handles fragmentation as follows: * If the buffer has insufficient space to hold all samples * that were received in a single packet over-the-wire, * then the buffer will be completely filled and the implementation * will hold a pointer into the remaining portion of the packet. * Subsequent calls will load from the remainder of the packet, * and will flag the metadata to show that this is a fragment. * The next call to receive, after the remainder becomes exahausted, * will perform an over-the-wire receive as usual. * See the rx metadata fragment flags and offset fields for details. * * This is a blocking call and will not return until the number * of samples returned have been written into each buffer. * Under a timeout condition, the number of samples returned * may be less than the number of samples specified. * * The one_packet option allows the user to guarantee that * the call will return after a single packet has been processed. * This may be useful to maintain packet boundaries in some cases. * * \param buffs a vector of writable memory to fill with samples * \param nsamps_per_buff the size of each buffer in number of samples * \param metadata data to fill describing the buffer * \param timeout the timeout in seconds to wait for a packet * \param one_packet return after the first packet is received * \return the number of samples received or 0 on error */ virtual size_t recv( const buffs_type &buffs, const size_t nsamps_per_buff, rx_metadata_t &metadata, const double timeout = 0.1, const bool one_packet = false ) = 0; }; /*! * The TX streamer is the host interface to transmitting samples. * It represents the layer between the samples on the host * and samples inside the device's transmit DSP processing. */ class UHD_API tx_streamer : boost::noncopyable{ public: typedef boost::shared_ptr sptr; //! Get the number of channels associated with this streamer virtual size_t get_num_channels(void) const = 0; //! Get the max number of samples per buffer per packet virtual size_t get_max_num_samps(void) const = 0; //! Typedef for a pointer to a single, or a collection of send buffers typedef ref_vector buffs_type; /*! * Send buffers containing samples described by the metadata. * * Send handles fragmentation as follows: * If the buffer has more items than the maximum per packet, * the send method will fragment the samples across several packets. * Send will respect the burst flags when fragmenting to ensure * that start of burst can only be set on the first fragment and * that end of burst can only be set on the final fragment. * * This is a blocking call and will not return until the number * of samples returned have been read out of each buffer. * Under a timeout condition, the number of samples returned * may be less than the number of samples specified. * * \param buffs a vector of read-only memory containing samples * \param nsamps_per_buff the number of samples to send, per buffer * \param metadata data describing the buffer's contents * \param timeout the timeout in seconds to wait on a packet * \return the number of samples sent */ virtual size_t send( const buffs_type &buffs, const size_t nsamps_per_buff, const tx_metadata_t &metadata, const double timeout = 0.1 ) = 0; }; } //namespace uhd #endif /* INCLUDED_UHD_STREAM_HPP */ uhd-3.5.5/host/include/uhd/transport/000077500000000000000000000000001224274632000175225ustar00rootroot00000000000000uhd-3.5.5/host/include/uhd/transport/CMakeLists.txt000066400000000000000000000017521224274632000222670ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # UHD_INSTALL(FILES bounded_buffer.hpp bounded_buffer.ipp buffer_pool.hpp if_addrs.hpp udp_simple.hpp udp_zero_copy.hpp usb_control.hpp usb_zero_copy.hpp usb_device_handle.hpp vrt_if_packet.hpp zero_copy.hpp DESTINATION ${INCLUDE_DIR}/uhd/transport COMPONENT headers ) uhd-3.5.5/host/include/uhd/transport/bounded_buffer.hpp000066400000000000000000000105101224274632000232010ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_BOUNDED_BUFFER_HPP #define INCLUDED_UHD_TRANSPORT_BOUNDED_BUFFER_HPP #include //detail namespace uhd{ namespace transport{ /*! * Implement a templated bounded buffer: * Used for passing elements between threads in a producer-consumer model. * The bounded buffer implemented waits and timed waits with condition variables. * The pop operation blocks on the bounded_buffer to become non empty. * The push operation blocks on the bounded_buffer to become non full. */ template class bounded_buffer{ public: /*! * Create a new bounded buffer object. * \param capacity the bounded_buffer capacity */ bounded_buffer(size_t capacity): _detail(capacity) { /* NOP */ } /*! * Push a new element into the bounded buffer immediately. * The element will not be pushed when the buffer is full. * \param elem the element reference pop to * \return false when the buffer is full */ UHD_INLINE bool push_with_haste(const elem_type &elem){ return _detail.push_with_haste(elem); } /*! * Push a new element into the bounded buffer. * If the buffer is full prior to the push, * make room by poping the oldest element. * \param elem the new element to push * \return true if the element fit without popping for space */ UHD_INLINE bool push_with_pop_on_full(const elem_type &elem){ return _detail.push_with_pop_on_full(elem); } /*! * Push a new element into the bounded_buffer. * Wait until the bounded_buffer becomes non-full. * \param elem the new element to push */ UHD_INLINE void push_with_wait(const elem_type &elem){ return _detail.push_with_wait(elem); } /*! * Push a new element into the bounded_buffer. * Wait until the bounded_buffer becomes non-full or timeout. * \param elem the new element to push * \param timeout the timeout in seconds * \return false when the operation times out */ UHD_INLINE bool push_with_timed_wait(const elem_type &elem, double timeout){ return _detail.push_with_timed_wait(elem, timeout); } /*! * Pop an element from the bounded buffer immediately. * The element will not be popped when the buffer is empty. * \param elem the element reference pop to * \return false when the buffer is empty */ UHD_INLINE bool pop_with_haste(elem_type &elem){ return _detail.pop_with_haste(elem); } /*! * Pop an element from the bounded_buffer. * Wait until the bounded_buffer becomes non-empty. * \param elem the element reference pop to */ UHD_INLINE void pop_with_wait(elem_type &elem){ return _detail.pop_with_wait(elem); } /*! * Pop an element from the bounded_buffer. * Wait until the bounded_buffer becomes non-empty or timeout. * \param elem the element reference pop to * \param timeout the timeout in seconds * \return false when the operation times out */ UHD_INLINE bool pop_with_timed_wait(elem_type &elem, double timeout){ return _detail.pop_with_timed_wait(elem, timeout); } private: bounded_buffer_detail _detail; }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_BOUNDED_BUFFER_HPP */ uhd-3.5.5/host/include/uhd/transport/bounded_buffer.ipp000066400000000000000000000120141224274632000232030ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_BOUNDED_BUFFER_IPP #define INCLUDED_UHD_TRANSPORT_BOUNDED_BUFFER_IPP #include #include #include #include #include #include #include namespace uhd{ namespace transport{ namespace{ /*anon*/ template class bounded_buffer_detail : boost::noncopyable{ public: bounded_buffer_detail(size_t capacity): _buffer(capacity) { _not_full_fcn = boost::bind(&bounded_buffer_detail::not_full, this); _not_empty_fcn = boost::bind(&bounded_buffer_detail::not_empty, this); } UHD_INLINE bool push_with_haste(const elem_type &elem){ boost::mutex::scoped_lock lock(_mutex); if (_buffer.full()) return false; _buffer.push_front(elem); lock.unlock(); _empty_cond.notify_one(); return true; } UHD_INLINE bool push_with_pop_on_full(const elem_type &elem){ boost::mutex::scoped_lock lock(_mutex); if (_buffer.full()){ _buffer.pop_back(); _buffer.push_front(elem); lock.unlock(); _empty_cond.notify_one(); return false; } else{ _buffer.push_front(elem); lock.unlock(); _empty_cond.notify_one(); return true; } } UHD_INLINE void push_with_wait(const elem_type &elem){ if (this->push_with_haste(elem)) return; boost::mutex::scoped_lock lock(_mutex); _full_cond.wait(lock, _not_full_fcn); _buffer.push_front(elem); lock.unlock(); _empty_cond.notify_one(); } UHD_INLINE bool push_with_timed_wait(const elem_type &elem, double timeout){ if (this->push_with_haste(elem)) return true; boost::mutex::scoped_lock lock(_mutex); if (not _full_cond.timed_wait( lock, to_time_dur(timeout), _not_full_fcn )) return false; _buffer.push_front(elem); lock.unlock(); _empty_cond.notify_one(); return true; } UHD_INLINE bool pop_with_haste(elem_type &elem){ boost::mutex::scoped_lock lock(_mutex); if (_buffer.empty()) return false; this->pop_back(elem); lock.unlock(); _full_cond.notify_one(); return true; } UHD_INLINE void pop_with_wait(elem_type &elem){ if (this->pop_with_haste(elem)) return; boost::mutex::scoped_lock lock(_mutex); _empty_cond.wait(lock, _not_empty_fcn); this->pop_back(elem); lock.unlock(); _full_cond.notify_one(); } UHD_INLINE bool pop_with_timed_wait(elem_type &elem, double timeout){ if (this->pop_with_haste(elem)) return true; boost::mutex::scoped_lock lock(_mutex); if (not _empty_cond.timed_wait( lock, to_time_dur(timeout), _not_empty_fcn )) return false; this->pop_back(elem); lock.unlock(); _full_cond.notify_one(); return true; } private: boost::mutex _mutex; boost::condition _empty_cond, _full_cond; boost::circular_buffer _buffer; bool not_full(void) const{return not _buffer.full();} bool not_empty(void) const{return not _buffer.empty();} boost::function _not_full_fcn, _not_empty_fcn; /*! * Three part operation to pop an element: * 1) assign elem to the back element * 2) assign the back element to empty * 3) pop the back to move the counter */ UHD_INLINE void pop_back(elem_type &elem){ elem = _buffer.back(); _buffer.back() = elem_type(); _buffer.pop_back(); } static UHD_INLINE boost::posix_time::time_duration to_time_dur(double timeout){ return boost::posix_time::microseconds(long(timeout*1e6)); } }; }}} //namespace #endif /* INCLUDED_UHD_TRANSPORT_BOUNDED_BUFFER_IPP */ uhd-3.5.5/host/include/uhd/transport/buffer_pool.hpp000066400000000000000000000036721224274632000225450ustar00rootroot00000000000000// // Copyright 2011-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_BUFFER_POOL_HPP #define INCLUDED_UHD_TRANSPORT_BUFFER_POOL_HPP #include #include #include namespace uhd{ namespace transport{ /*! * A buffer pool manages memory for a homogeneous set of buffers. * Each buffer is the pool start at a 16-byte alignment boundary. */ class UHD_API buffer_pool : boost::noncopyable{ public: typedef boost::shared_ptr sptr; typedef void * ptr_type; /*! * Make a new buffer pool. * \param num_buffs the number of buffers to allocate * \param buff_size the size of each buffer in bytes * \param alignment the alignment boundary in bytes * \return a new buffer pool buff_size X num_buffs */ static sptr make( const size_t num_buffs, const size_t buff_size, const size_t alignment = 16 ); //! Get a pointer to the buffer start at the specified index virtual ptr_type at(const size_t index) const = 0; //! Get the number of buffers in this pool virtual size_t size(void) const = 0; }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_BUFFER_POOL_HPP */ uhd-3.5.5/host/include/uhd/transport/if_addrs.hpp000066400000000000000000000025021224274632000220050ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_IF_ADDRS_HPP #define INCLUDED_UHD_TRANSPORT_IF_ADDRS_HPP #include #include #include namespace uhd{ namespace transport{ /*! * The address for a network interface. */ struct UHD_API if_addrs_t{ std::string inet; std::string mask; std::string bcast; }; /*! * Get a list of network interface addresses. * The internal implementation is system-dependent. * \return a vector of if addrs */ UHD_API std::vector get_if_addrs(void); }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_IF_ADDRS_HPP */ uhd-3.5.5/host/include/uhd/transport/udp_simple.hpp000066400000000000000000000066741224274632000224110ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_UDP_SIMPLE_HPP #define INCLUDED_UHD_TRANSPORT_UDP_SIMPLE_HPP #include #include #include #include #include namespace uhd{ namespace transport{ class UHD_API udp_simple : boost::noncopyable{ public: typedef boost::shared_ptr sptr; //! The maximum number of bytes per udp packet. static const size_t mtu = 1500 - 20 - 8; //default ipv4 mtu - ipv4 header - udp header /*! * Make a new connected udp transport: * This transport is for sending and receiving * between this host and a single endpoint. * The primary usage for this transport will be control transactions. * The underlying implementation is simple and portable (not fast). * * The address will be resolved, it can be a host name or ipv4. * The port will be resolved, it can be a port type or number. * * \param addr a string representing the destination address * \param port a string representing the destination port */ static sptr make_connected(const std::string &addr, const std::string &port); /*! * Make a new broadcasting udp transport: * This transport can send udp broadcast datagrams * and receive datagrams from multiple sources. * The primary usage for this transport will be to discover devices. * * The address will be resolved, it can be a host name or ipv4. * The port will be resolved, it can be a port type or number. * * \param addr a string representing the destination address * \param port a string representing the destination port */ static sptr make_broadcast(const std::string &addr, const std::string &port); /*! * Make a UART interface from a UDP transport. * \param udp the UDP transport object * \return a new UART interface */ static uart_iface::sptr make_uart(sptr udp); /*! * Send a single buffer. * Blocks until the data is sent. * \param buff single asio buffer * \return the number of bytes sent */ virtual size_t send(const boost::asio::const_buffer &buff) = 0; /*! * Receive into the provided buffer. * Blocks until data is received or a timeout occurs. * \param buff a mutable buffer to receive into * \param timeout the timeout in seconds * \return the number of bytes received or zero on timeout */ virtual size_t recv(const boost::asio::mutable_buffer &buff, double timeout = 0.1) = 0; /*! * Get the last IP address as seen by recv(). * Only use this with the broadcast socket. */ virtual std::string get_recv_addr(void) = 0; }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_UDP_SIMPLE_HPP */ uhd-3.5.5/host/include/uhd/transport/udp_zero_copy.hpp000066400000000000000000000046751224274632000231300ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_UDP_ZERO_COPY_HPP #define INCLUDED_UHD_TRANSPORT_UDP_ZERO_COPY_HPP #include #include #include #include namespace uhd{ namespace transport{ /*! * A zero copy udp transport provides an efficient way to handle data. * by avoiding the extra copy when recv() or send() is called on the socket. * Rather, the zero copy transport gives the caller memory references. * The caller informs the transport when it is finished with the reference. * * On linux systems, the zero copy transport can use a kernel packet ring. * If no platform specific solution is available, make returns a boost asio * implementation that wraps the functionality around a standard send/recv calls. */ class UHD_API udp_zero_copy : public virtual zero_copy_if{ public: typedef boost::shared_ptr sptr; /*! * Make a new zero copy udp transport: * This transport is for sending and receiving * between this host and a single endpoint. * The primary usage for this transport will be data transactions. * The underlying implementation is fast and platform specific. * * The address will be resolved, it can be a host name or ipv4. * The port will be resolved, it can be a port type or number. * * \param addr a string representing the destination address * \param port a string representing the destination port * \param hints optional parameters to pass to the underlying transport */ static sptr make( const std::string &addr, const std::string &port, const device_addr_t &hints = device_addr_t() ); }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_UDP_ZERO_COPY_HPP */ uhd-3.5.5/host/include/uhd/transport/usb_control.hpp000066400000000000000000000045661224274632000225770ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_USB_CONTROL_HPP #define INCLUDED_UHD_TRANSPORT_USB_CONTROL_HPP #include namespace uhd { namespace transport { class UHD_API usb_control : boost::noncopyable { public: typedef boost::shared_ptr sptr; /*! * Create a new usb control transport: * This transport is for sending and receiving control information from * the host to device using the Default Control Pipe. * * \param handle a device handle that uniquely identifies a USB device * \param interface the USB interface number for the control transport */ static sptr make(usb_device_handle::sptr handle, const size_t interface); /*! * Submit a USB device request: * Blocks until the request returns * * For format and corresponding USB request fields * see USB Specification Revision 2.0 - 9.3 USB Device Requests * * Usage is device specific * * \param request_type 1-byte bitmask (bmRequestType) * \param request 1-byte (bRequest) * \param value 2-byte (wValue) * \param index 2-byte (wIndex) * \param buff buffer to hold send or receive data * \param length 2-byte (wLength) * \return number of bytes submitted or error code */ virtual ssize_t submit(boost::uint8_t request_type, boost::uint8_t request, boost::uint16_t value, boost::uint16_t index, unsigned char *buff, boost::uint16_t length) = 0; }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_USB_CONTROL_HPP */ uhd-3.5.5/host/include/uhd/transport/usb_device_handle.hpp000066400000000000000000000050061224274632000236570ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_USB_DEVICE_HANDLE_HPP #define INCLUDED_UHD_TRANSPORT_USB_DEVICE_HANDLE_HPP #include #include #include #include #include namespace uhd { namespace transport { /*! * Device handle class that represents a USB device * Used for identifying devices on the USB bus and selecting which device is * used when creating a USB transport. A minimal subset of USB descriptor * fields are used. Fields can be found in the USB 2.0 specification Table * 9-8 (Standard Device Descriptor). In addition to fields of the device * descriptor, the interface returns the device's USB device address. * * Note: The USB 2.0 Standard Device Descriptor contains an index rather then * a true descriptor serial number string. This interface returns the * actual string descriptor. */ class UHD_API usb_device_handle : boost::noncopyable { public: typedef boost::shared_ptr sptr; /*! * Return the device's serial number * \return a string describing the device's serial number */ virtual std::string get_serial() const = 0; /*! * Return the device's Vendor ID (usually assigned by the USB-IF) * \return a Vendor ID */ virtual boost::uint16_t get_vendor_id() const = 0; /*! * Return the device's Product ID (usually assigned by manufacturer) * \return a Product ID */ virtual boost::uint16_t get_product_id() const = 0; /*! * Return a vector of USB devices on this host * \return a vector of USB device handles that match vid and pid */ static std::vector get_device_list(boost::uint16_t vid, boost::uint16_t pid); }; //namespace usb }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_USB_DEVICE_HANDLE_HPP */ uhd-3.5.5/host/include/uhd/transport/usb_zero_copy.hpp000066400000000000000000000065321224274632000231230ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_USB_ZERO_COPY_HPP #define INCLUDED_UHD_TRANSPORT_USB_ZERO_COPY_HPP #include #include #include namespace uhd { namespace transport { /*! * A zero copy usb transport provides an efficient way to handle data. * by avoiding the extra copy when recv() or send() is called on the handle. * Rather, the zero copy transport gives the caller memory references. * The caller informs the transport when it is finished with the reference. * * On linux systems, the zero copy transport can use a kernel packet ring. * If no platform specific solution is available, make returns a boost asio * implementation that wraps functionality around standard send/recv calls. */ class UHD_API usb_zero_copy : public virtual zero_copy_if { public: typedef boost::shared_ptr sptr; /*! * Make a new zero copy usb transport: * This transport is for sending and receiving between the host * and a pair of USB bulk transfer endpoints. * The primary usage for this transport is data transactions. * The underlying implementation may be platform specific. * * \param handle a device handle that uniquely identifying the device * \param recv_interface an integer specifiying an IN interface number * \param recv_endpoint an integer specifiying an IN endpoint number * \param send_interface an integer specifiying an OUT interface number * \param send_endpoint an integer specifiying an OUT endpoint number * \param hints optional parameters to pass to the underlying transport * \return a new zero copy usb object */ static sptr make( usb_device_handle::sptr handle, const size_t recv_interface, const size_t recv_endpoint, const size_t send_interface, const size_t send_endpoint, const device_addr_t &hints = device_addr_t() ); /*! * Make a wrapper around a zero copy implementation. * The wrapper performs the following functions: * - Pad commits to the frame boundary * - Extract multiple packets on recv * * When enable multiple receive packets is set to true, * the implementation inspects the vita length on transfers, * and may split a single transfer into multiple managed buffers. * * \param usb_zc a usb zero copy interface object * \param usb_frame_boundary bytes per frame * \return a new zero copy wrapper object */ static sptr make_wrapper( sptr usb_zc, size_t usb_frame_boundary = 512 ); }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_USB_ZERO_COPY_HPP */ uhd-3.5.5/host/include/uhd/transport/vrt_if_packet.hpp000066400000000000000000000070011224274632000230510ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_VRT_IF_PACKET_HPP #define INCLUDED_UHD_TRANSPORT_VRT_IF_PACKET_HPP #include #include #include //size_t namespace uhd{ namespace transport{ namespace vrt{ //! The maximum number of 32-bit words in a vrt if packet header static const size_t max_if_hdr_words32 = 7; //hdr+sid+cid+tsi+tsf /*! * Definition for fields that can be packed into a vrt if header. * The size fields are used for input and output depending upon * the operation used (ie the pack or unpack function call). */ struct UHD_API if_packet_info_t{ //packet type (pack only supports data) enum packet_type_t { PACKET_TYPE_DATA = 0x0, PACKET_TYPE_EXTENSION = 0x1, PACKET_TYPE_CONTEXT = 0x2 } packet_type; //size fields size_t num_payload_words32; //required in pack, derived in unpack size_t num_payload_bytes; //required in pack, derived in unpack size_t num_header_words32; //derived in pack, derived in unpack size_t num_packet_words32; //derived in pack, required in unpack //header fields size_t packet_count; bool sob, eob; //optional fields bool has_sid; boost::uint32_t sid; bool has_cid; boost::uint64_t cid; bool has_tsi; boost::uint32_t tsi; bool has_tsf; boost::uint64_t tsf; bool has_tlr; boost::uint32_t tlr; }; /*! * Pack a vrt header from metadata (big endian format). * \param packet_buff memory to write the packed vrt header * \param if_packet_info the if packet info (read/write) */ UHD_API void if_hdr_pack_be( boost::uint32_t *packet_buff, if_packet_info_t &if_packet_info ); /*! * Unpack a vrt header to metadata (big endian format). * \param packet_buff memory to read the packed vrt header * \param if_packet_info the if packet info (read/write) */ UHD_API void if_hdr_unpack_be( const boost::uint32_t *packet_buff, if_packet_info_t &if_packet_info ); /*! * Pack a vrt header from metadata (little endian format). * \param packet_buff memory to write the packed vrt header * \param if_packet_info the if packet info (read/write) */ UHD_API void if_hdr_pack_le( boost::uint32_t *packet_buff, if_packet_info_t &if_packet_info ); /*! * Unpack a vrt header to metadata (little endian format). * \param packet_buff memory to read the packed vrt header * \param if_packet_info the if packet info (read/write) */ UHD_API void if_hdr_unpack_le( const boost::uint32_t *packet_buff, if_packet_info_t &if_packet_info ); } //namespace vrt }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_VRT_IF_PACKET_HPP */ uhd-3.5.5/host/include/uhd/transport/zero_copy.hpp000066400000000000000000000122051224274632000222440ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TRANSPORT_ZERO_COPY_HPP #define INCLUDED_UHD_TRANSPORT_ZERO_COPY_HPP #include #include #include #include #include namespace uhd{ namespace transport{ //! Simple managed buffer with release interface class UHD_API managed_buffer{ public: managed_buffer(void):_ref_count(0){} /*! * Signal to the transport that we are done with the buffer. * This should be called to release the buffer to the transport object. * After calling, the referenced memory should be considered invalid. */ virtual void release(void) = 0; /*! * Use commit() to re-write the length (for use with send buffers). * \param num_bytes the number of bytes written into the buffer */ UHD_INLINE void commit(size_t num_bytes){ _length = num_bytes; } /*! * Get a pointer to the underlying buffer. * \return a pointer into memory */ template UHD_INLINE T cast(void) const{ return static_cast(_buffer); } /*! * Get the size of the underlying buffer. * \return the number of bytes */ UHD_INLINE size_t size(void) const{ return _length; } //! Create smart pointer to a reusable managed buffer template UHD_INLINE boost::intrusive_ptr make( T *p, void *buffer, size_t length ){ _buffer = buffer; _length = length; return boost::intrusive_ptr(p); } boost::detail::atomic_count _ref_count; protected: void *_buffer; size_t _length; }; UHD_INLINE void intrusive_ptr_add_ref(managed_buffer *p){ ++(p->_ref_count); } UHD_INLINE void intrusive_ptr_release(managed_buffer *p){ if (--(p->_ref_count) == 0) p->release(); } /*! * A managed receive buffer: * Contains a reference to transport-managed memory, * and a method to release the memory after reading. */ class UHD_API managed_recv_buffer : public managed_buffer{ public: typedef boost::intrusive_ptr sptr; }; /*! * A managed send buffer: * Contains a reference to transport-managed memory, * and a method to commit the memory after writing. */ class UHD_API managed_send_buffer : public managed_buffer{ public: typedef boost::intrusive_ptr sptr; }; /*! * A zero-copy interface for transport objects. * Provides a way to get send and receive buffers * with memory managed by the transport object. */ class UHD_API zero_copy_if : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Get a new receive buffer from this transport object. * \param timeout the timeout to get the buffer in seconds * \return a managed buffer, or null sptr on timeout/error */ virtual managed_recv_buffer::sptr get_recv_buff(double timeout = 0.1) = 0; /*! * Get the number of receive frames: * The number of simultaneous receive buffers in use. * \return number of frames */ virtual size_t get_num_recv_frames(void) const = 0; /*! * Get the size of a receive frame: * The maximum capacity of a single receive buffer. * \return frame size in bytes */ virtual size_t get_recv_frame_size(void) const = 0; /*! * Get a new send buffer from this transport object. * \param timeout the timeout to get the buffer in seconds * \return a managed buffer, or null sptr on timeout/error */ virtual managed_send_buffer::sptr get_send_buff(double timeout = 0.1) = 0; /*! * Get the number of send frames: * The number of simultaneous send buffers in use. * \return number of frames */ virtual size_t get_num_send_frames(void) const = 0; /*! * Get the size of a send frame: * The maximum capacity of a single send buffer. * \return frame size in bytes */ virtual size_t get_send_frame_size(void) const = 0; }; }} //namespace #endif /* INCLUDED_UHD_TRANSPORT_ZERO_COPY_HPP */ uhd-3.5.5/host/include/uhd/types/000077500000000000000000000000001224274632000166325ustar00rootroot00000000000000uhd-3.5.5/host/include/uhd/types/CMakeLists.txt000066400000000000000000000020231224274632000213670ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # UHD_INSTALL(FILES clock_config.hpp device_addr.hpp dict.ipp dict.hpp io_type.hpp mac_addr.hpp metadata.hpp otw_type.hpp ranges.hpp ref_vector.hpp sensors.hpp serial.hpp stream_cmd.hpp time_spec.hpp tune_request.hpp tune_result.hpp DESTINATION ${INCLUDE_DIR}/uhd/types COMPONENT headers ) uhd-3.5.5/host/include/uhd/types/clock_config.hpp000066400000000000000000000045141224274632000217670ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_CLOCK_CONFIG_HPP #define INCLUDED_UHD_TYPES_CLOCK_CONFIG_HPP #include namespace uhd{ /*! * The DEPRECATED Clock configuration settings: * The source for the 10MHz reference clock. * The source and polarity for the PPS clock. * * Deprecated in favor of set time/clock source calls. * Its still in this file for the sake of gr-uhd swig. * * Use the convenience functions external() and internal(), * unless you have a special purpose and cannot use them. */ struct UHD_API clock_config_t{ //------ simple usage --------// //! A convenience function to create an external clock configuration static clock_config_t external(void); //! A convenience function to create an internal clock configuration static clock_config_t internal(void); //------ advanced usage --------// enum ref_source_t { REF_AUTO = int('a'), //automatic (device specific) REF_INT = int('i'), //internal reference REF_SMA = int('s'), //external sma port REF_MIMO = int('m'), //reference from mimo cable } ref_source; enum pps_source_t { PPS_INT = int('i'), //there is no internal PPS_SMA = int('s'), //external sma port PPS_MIMO = int('m'), //time sync from mimo cable } pps_source; enum pps_polarity_t { PPS_NEG = int('n'), //negative edge PPS_POS = int('p') //positive edge } pps_polarity; clock_config_t(void); }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_CLOCK_CONFIG_HPP */ uhd-3.5.5/host/include/uhd/types/device_addr.hpp000066400000000000000000000072141224274632000216000ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_DEVICE_ADDR_HPP #define INCLUDED_UHD_TYPES_DEVICE_ADDR_HPP #include #include #include #include #include #include namespace uhd{ /*! * Mapping of key/value pairs for locating devices on the system. * When left empty, the device discovery routines will search * all available transports on the system (ethernet, usb...). * * To narrow down the discovery process to a particular device, * specify a transport key/value pair specific to your device. * - Ex, to find a usrp2: my_dev_addr["addr"] = [resolvable_hostname_or_ip] * * The device address can also be used to pass arguments into * the transport layer control to set (for example) buffer sizes. * * An arguments string, is a way to represent a device address * using a single string with delimiter characters. * - Ex: addr=192.168.10.2 * - Ex: addr=192.168.10.2, recv_buff_size=1e6 */ class UHD_API device_addr_t : public dict{ public: /*! * Create a device address from an args string. * \param args the arguments string */ device_addr_t(const std::string &args = ""); /*! * Convert a device address into a pretty print string. * \return a printable string representing the device address */ std::string to_pp_string(void) const; /*! * Convert the device address into an args string. * The args string contains delimiter symbols. * \return a string with delimiter markup */ std::string to_string(void) const; /*! * Lexically cast a parameter to the specified type, * or use the default value if the key is not found. * \param key the key as one of the address parameters * \param def the value to use when key is not present * \return the casted value as type T or the default * \throw error when the parameter cannot be casted */ template T cast(const std::string &key, const T &def) const{ if (not this->has_key(key)) return def; try{ return boost::lexical_cast((*this)[key]); } catch(const boost::bad_lexical_cast &){ throw std::runtime_error("cannot cast " + key + " = " + (*this)[key]); } } }; //! A typedef for a vector of device addresses typedef std::vector device_addrs_t; //! Separate an indexed device address into a vector of device addresses UHD_API device_addrs_t separate_device_addr(const device_addr_t &dev_addr); //! Combine a vector of device addresses into an indexed device address UHD_API device_addr_t combine_device_addrs(const device_addrs_t &dev_addrs); } //namespace uhd #endif /* INCLUDED_UHD_TYPES_DEVICE_ADDR_HPP */ uhd-3.5.5/host/include/uhd/types/dict.hpp000066400000000000000000000073641224274632000203000ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_DICT_HPP #define INCLUDED_UHD_TYPES_DICT_HPP #include #include #include namespace uhd{ /*! * A templated dictionary class with a python-like interface. */ template class dict{ public: /*! * Create a new empty dictionary. */ dict(void); /*! * Input iterator constructor: * Makes boost::assign::map_list_of work. * \param first the begin iterator * \param last the end iterator */ template dict(InputIterator first, InputIterator last); /*! * Get the number of elements in this dict. * \return the number of elements */ std::size_t size(void) const; /*! * Get a list of the keys in this dict. * Key order depends on insertion precedence. * \return vector of keys */ std::vector keys(void) const; /*! * Get a list of the values in this dict. * Value order depends on insertion precedence. * \return vector of values */ std::vector vals(void) const; /*! * Does the dictionary contain this key? * \param key the key to look for * \return true if found */ bool has_key(const Key &key) const; /*! * Get a value in the dict or default. * \param key the key to look for * \param other use if key not found * \return the value or default */ const Val &get(const Key &key, const Val &other) const; /*! * Get a value in the dict or throw. * \param key the key to look for * \return the value or default */ const Val &get(const Key &key) const; /*! * Set a value in the dict at the key. * \param key the key to set at * \param val the value to set */ void set(const Key &key, const Val &val); /*! * Get a value for the given key if it exists. * If the key is not found throw an error. * \param key the key to look for * \return the value at the key * \throw an exception when not found */ const Val &operator[](const Key &key) const; /*! * Set a value for the given key, however, in reality * it really returns a reference which can be assigned to. * \param key the key to set to * \return a reference to the value */ Val &operator[](const Key &key); /*! * Pop an item out of the dictionary. * \param key the item key * \return the value of the item * \throw an exception when not found */ Val pop(const Key &key); private: typedef std::pair pair_t; std::list _map; //private container }; } //namespace uhd #include #endif /* INCLUDED_UHD_TYPES_DICT_HPP */ uhd-3.5.5/host/include/uhd/types/dict.ipp000066400000000000000000000102251224274632000202670ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_DICT_IPP #define INCLUDED_UHD_TYPES_DICT_IPP #include #include #include #include #include namespace uhd{ namespace /*anon*/{ template struct key_not_found: uhd::key_error{ key_not_found(const Key &key): uhd::key_error( str(boost::format( "key \"%s\" not found in dict(%s, %s)" ) % boost::lexical_cast(key) % typeid(Key).name() % typeid(Val).name() ) ){ /* NOP */ } }; } // namespace /*anon*/ template dict::dict(void){ /* NOP */ } template template dict::dict(InputIterator first, InputIterator last): _map(first, last) { /* NOP */ } template std::size_t dict::size(void) const{ return _map.size(); } template std::vector dict::keys(void) const{ std::vector keys; BOOST_FOREACH(const pair_t &p, _map){ keys.push_back(p.first); } return keys; } template std::vector dict::vals(void) const{ std::vector vals; BOOST_FOREACH(const pair_t &p, _map){ vals.push_back(p.second); } return vals; } template bool dict::has_key(const Key &key) const{ BOOST_FOREACH(const pair_t &p, _map){ if (p.first == key) return true; } return false; } template const Val &dict::get(const Key &key, const Val &other) const{ BOOST_FOREACH(const pair_t &p, _map){ if (p.first == key) return p.second; } return other; } template const Val &dict::get(const Key &key) const{ BOOST_FOREACH(const pair_t &p, _map){ if (p.first == key) return p.second; } throw key_not_found(key); } template void dict::set(const Key &key, const Val &val){ (*this)[key] = val; } template const Val &dict::operator[](const Key &key) const{ BOOST_FOREACH(const pair_t &p, _map){ if (p.first == key) return p.second; } throw key_not_found(key); } template Val &dict::operator[](const Key &key){ BOOST_FOREACH(pair_t &p, _map){ if (p.first == key) return p.second; } _map.push_back(std::make_pair(key, Val())); return _map.back().second; } template Val dict::pop(const Key &key){ typename std::list::iterator it; for (it = _map.begin(); it != _map.end(); it++){ if (it->first == key){ Val val = it->second; _map.erase(it); return val; } } throw key_not_found(key); } } //namespace uhd #endif /* INCLUDED_UHD_TYPES_DICT_IPP */ uhd-3.5.5/host/include/uhd/types/io_type.hpp000066400000000000000000000046141224274632000210200ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_IO_TYPE_HPP #define INCLUDED_UHD_TYPES_IO_TYPE_HPP #include namespace uhd{ /*! * The DEPRECATED Input/Output configuration struct: * Used to specify the IO type with device send/recv. * * Deprecated in favor of streamer interface. * Its still in this file for the sake of gr-uhd swig. */ class UHD_API io_type_t{ public: /*! * Built in IO types known to the system. */ enum tid_t{ //! Custom type (technically unsupported by implementation) CUSTOM_TYPE = int('?'), //! Complex floating point (64-bit floats) range [-1.0, +1.0] COMPLEX_FLOAT64 = int('d'), //! Complex floating point (32-bit floats) range [-1.0, +1.0] COMPLEX_FLOAT32 = int('f'), //! Complex signed integer (16-bit integers) range [-32768, +32767] COMPLEX_INT16 = int('s'), //! Complex signed integer (8-bit integers) range [-128, 127] COMPLEX_INT8 = int('b') }; /*! * The size of this io type in bytes. */ const size_t size; /*! * The type id of this io type. * Good for using with switch statements. */ const tid_t tid; /*! * Create an io type from a built-in type id. * \param tid a type id known to the system */ io_type_t(tid_t tid); /*! * Create an io type from attributes. * The tid will be set to custom. * \param size the size in bytes */ io_type_t(size_t size); }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_IO_TYPE_HPP */ uhd-3.5.5/host/include/uhd/types/mac_addr.hpp000066400000000000000000000037671224274632000211120ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_MAC_ADDR_HPP #define INCLUDED_UHD_TYPES_MAC_ADDR_HPP #include #include #include namespace uhd{ /*! * Wrapper for an ethernet mac address. * Provides conversion between string and binary formats. */ class UHD_API mac_addr_t{ public: /*! * Create a mac address a byte array. * \param bytes a vector of bytes * \return a new mac address */ static mac_addr_t from_bytes(const byte_vector_t &bytes); /*! * Create a mac address from a string. * \param mac_addr_str the string with delimiters * \return a new mac address */ static mac_addr_t from_string(const std::string &mac_addr_str); /*! * Get the byte representation of the mac address. * \return a vector of bytes */ byte_vector_t to_bytes(void) const; /*! * Get the string representation of this mac address. * \return a string with delimiters */ std::string to_string(void) const; private: mac_addr_t(const byte_vector_t &bytes); //private constructor const byte_vector_t _bytes; //internal representation }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_MAC_ADDR_HPP */ uhd-3.5.5/host/include/uhd/types/metadata.hpp000066400000000000000000000127451224274632000211340ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_METADATA_HPP #define INCLUDED_UHD_TYPES_METADATA_HPP #include #include #include namespace uhd{ /*! * RX metadata structure for describing sent IF data. * Includes time specification, fragmentation flags, burst flags, and error codes. * The receive routines will convert IF data headers into metadata. */ struct UHD_API rx_metadata_t{ //! Has time specification? bool has_time_spec; //! Time of the first sample. time_spec_t time_spec; /*! * Fragmentation flag: * Similar to IPv4 fragmentation: http://en.wikipedia.org/wiki/IPv4#Fragmentation_and_reassembly * More fragments is true when the input buffer has insufficient size to fit * an entire received packet. More fragments will be false for the last fragment. */ bool more_fragments; /*! * Fragmentation offset: * The fragment offset is the sample number at the start of the receive buffer. * For non-fragmented receives, the fragment offset should always be zero. */ size_t fragment_offset; //! Start of burst will be true for the first packet in the chain. bool start_of_burst; //! End of burst will be true for the last packet in the chain. bool end_of_burst; /*! * The error condition on a receive call. * * Note: When an overrun occurs in continuous streaming mode, * the device will continue to send samples to the host. * For other streaming modes, streaming will discontinue * until the user issues a new stream command. * * The metadata fields have meaning for the following error codes: * - none * - late command * - broken chain * - overflow */ enum error_code_t { //! No error associated with this metadata. ERROR_CODE_NONE = 0x0, //! No packet received, implementation timed-out. ERROR_CODE_TIMEOUT = 0x1, //! A stream command was issued in the past. ERROR_CODE_LATE_COMMAND = 0x2, //! Expected another stream command. ERROR_CODE_BROKEN_CHAIN = 0x4, //! An internal receive buffer has filled. ERROR_CODE_OVERFLOW = 0x8, //! Multi-channel alignment failed. ERROR_CODE_ALIGNMENT = 0xc, //! The packet could not be parsed. ERROR_CODE_BAD_PACKET = 0xf } error_code; }; /*! * TX metadata structure for describing received IF data. * Includes time specification, and start and stop burst flags. * The send routines will convert the metadata to IF data headers. */ struct UHD_API tx_metadata_t{ /*! * Has time specification? * - Set false to send immediately. * - Set true to send at the time specified by time spec. */ bool has_time_spec; //! When to send the first sample. time_spec_t time_spec; //! Set start of burst to true for the first packet in the chain. bool start_of_burst; //! Set end of burst to true for the last packet in the chain. bool end_of_burst; /*! * The default constructor: * Sets the fields to default values (flags set to false). */ tx_metadata_t(void); }; /*! * Async metadata structure for describing transmit related events. */ struct UHD_API async_metadata_t{ //! The channel number in a mimo configuration size_t channel; //! Has time specification? bool has_time_spec; //! When the async event occurred. time_spec_t time_spec; /*! * The type of event for a receive async message call. */ enum event_code_t { //! A burst was successfully transmitted. EVENT_CODE_BURST_ACK = 0x1, //! An internal send buffer has emptied. EVENT_CODE_UNDERFLOW = 0x2, //! Packet loss between host and device. EVENT_CODE_SEQ_ERROR = 0x4, //! Packet had time that was late. EVENT_CODE_TIME_ERROR = 0x8, //! Underflow occurred inside a packet. EVENT_CODE_UNDERFLOW_IN_PACKET = 0x10, //! Packet loss within a burst. EVENT_CODE_SEQ_ERROR_IN_BURST = 0x20, //! Some kind of custom user payload EVENT_CODE_USER_PAYLOAD = 0x40 } event_code; /*! * A special payload populated by custom FPGA fabric. */ boost::uint32_t user_payload[4]; }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_METADATA_HPP */ uhd-3.5.5/host/include/uhd/types/otw_type.hpp000066400000000000000000000001501224274632000212110ustar00rootroot00000000000000//The OTW type API has been deprecated in favor of the streamer interface #include uhd-3.5.5/host/include/uhd/types/ranges.hpp000066400000000000000000000074241224274632000206310ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_RANGES_HPP #define INCLUDED_UHD_TYPES_RANGES_HPP #include #include #include namespace uhd{ /*! * A range object describes a set of discrete values of the form: * y = start + step*n, where n is an integer between 0 and (stop - start)/step */ class UHD_API range_t{ public: /*! * Create a range from a single value. * The step size will be taken as zero. * \param value the only possible value in this range */ range_t(double value = 0); /*! * Create a range from a full set of values. * A step size of zero implies infinite precision. * \param start the minimum value for this range * \param stop the maximum value for this range * \param step the step size for this range */ range_t(double start, double stop, double step = 0); //! Get the start value for this range. double start(void) const; //! Get the stop value for this range. double stop(void) const; //! Get the step value for this range. double step(void) const; //! Convert this range to a printable string const std::string to_pp_string(void) const; private: double _start, _stop, _step; }; /*! * A meta-range object holds a list of individual ranges. */ struct UHD_API meta_range_t : std::vector{ //! A default constructor for an empty meta-range meta_range_t(void); /*! * Input iterator constructor: * Makes boost::assign::list_of work. * \param first the begin iterator * \param last the end iterator */ template meta_range_t(InputIterator first, InputIterator last): std::vector(first, last){ /* NOP */ } /*! * A convenience constructor for a single range. * A step size of zero implies infinite precision. * \param start the minimum value for this range * \param stop the maximum value for this range * \param step the step size for this range */ meta_range_t(double start, double stop, double step = 0); //! Get the overall start value for this meta-range. double start(void) const; //! Get the overall stop value for this meta-range. double stop(void) const; //! Get the overall step value for this meta-range. double step(void) const; /*! * Clip the target value to a possible range value. * \param value the value to clip to this range * \param clip_step if true, clip to steps as well * \return a value that is in one of the ranges */ double clip(double value, bool clip_step = false) const; //! Convert this meta-range to a printable string const std::string to_pp_string(void) const; }; typedef meta_range_t gain_range_t; typedef meta_range_t freq_range_t; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_RANGES_HPP */ uhd-3.5.5/host/include/uhd/types/ref_vector.hpp000066400000000000000000000046241224274632000215070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_REF_VECTOR_HPP #define INCLUDED_UHD_TYPES_REF_VECTOR_HPP #include namespace uhd{ /*! * Reference vector: * - Provides a std::vector-like interface for an array. * - Statically sized, and does not manage the memory. */ template class UHD_API ref_vector{ public: /*! * Create a reference vector of size 1 from a pointer. * Therefore: rv[0] == ptr and rv.size() == 1 * \param ptr a pointer to a chunk of memory */ template ref_vector(Ptr *ptr): _ptr(T(ptr)), _mem(_mem_t(&_ptr)), _size(1) { /* NOP */ } /*! * Create a reference vector from a std::vector container. * Therefore: rv[n] == vec[n] and rv.size() == vec.size() * \param vec a const reference to an std::vector */ template ref_vector(const Vector &vec): _ptr(T()), _mem(_mem_t(&vec.front())), _size(vec.size()) { /* NOP */ } /*! * Create a reference vector from a pointer and a length * Therefore: rv[n] == mem[n] and rv.size() == len * \param mem a pointer to an array of pointers * \param len the length of the array of pointers */ ref_vector(const T *mem, size_t len): _ptr(T()), _mem(_mem_t(mem)), _size(len) { /* NOP */ } //! Index operator gets the value of rv[index] const T &operator[](size_t index) const{ return _mem[index]; } //! The number of elements in this container size_t size(void) const{ return _size; } private: const T _ptr; typedef T* _mem_t; const _mem_t _mem; const size_t _size; }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_REF_VECTOR_HPP */ uhd-3.5.5/host/include/uhd/types/sensors.hpp000066400000000000000000000104641224274632000210440ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_SENSORS_HPP #define INCLUDED_UHD_TYPES_SENSORS_HPP #include #include namespace uhd{ /*! * A sensor value stores a sensor reading as a string with unit and data type. * The sensor value class can be used in the following way: * * sensor_value_t ref_lock_sensor("Reference", my_lock, "unlocked", "locked"); * std::cout << ref_lock_sensor.to_pp_string() << std::endl; * //prints Reference: locked * * sensor_value_t temp_sensor("Temperature", my_temp, "C"); * std::cout << temp_sensor.to_pp_string() << std::endl; * //prints Temperature: 38.5 C */ struct UHD_API sensor_value_t{ /*! * Create a sensor value from a boolean. * \param name the name of the sensor * \param value the value true or false * \param utrue the unit string when value is true * \param ufalse the unit string when value is false */ sensor_value_t( const std::string &name, bool value, const std::string &utrue, const std::string &ufalse ); /*! * Create a sensor value from an integer. * \param name the name of the sensor * \param value the signed integer value * \param unit the associated unit type * \param formatter the formatter string */ sensor_value_t( const std::string &name, signed value, const std::string &unit, const std::string &formatter = "%d" ); /*! * Create a sensor value from a real number. * \param name the name of the sensor * \param value the real number value * \param unit the associated unit type * \param formatter the formatter string */ sensor_value_t( const std::string &name, double value, const std::string &unit, const std::string &formatter = "%f" ); /*! * Create a sensor value from a string. * \param name the name of the sensor * \param value the real number value * \param unit the associated unit type */ sensor_value_t( const std::string &name, const std::string &value, const std::string &unit ); //! convert the sensor value to a boolean bool to_bool(void) const; //! convert the sensor value to an integer signed to_int(void) const; //! convert the sensor value to real number double to_real(void) const; //! The name of the sensor value const std::string name; /*! * The sensor value as a string. * For integer and real number types, this will be the output of the formatter. * For boolean types, the value will be the string literal "true" or "false". */ const std::string value; /*! * The sensor value's unit type. * For boolean types, this will be the one of the two units * depending upon the value of the boolean true or false. */ const std::string unit; //! Enumeration of possible data types in a sensor enum data_type_t { BOOLEAN = 'b', INTEGER = 'i', REALNUM = 'r', STRING = 's' }; //! The data type of the value const data_type_t type; //! Convert this sensor value into a printable string std::string to_pp_string(void) const; }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_SENSORS_HPP */ uhd-3.5.5/host/include/uhd/types/serial.hpp000066400000000000000000000135511224274632000206270ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_SERIAL_HPP #define INCLUDED_UHD_TYPES_SERIAL_HPP #include #include #include #include namespace uhd{ /*! * Byte vector typedef for passing data in and out of I2C interfaces. */ typedef std::vector byte_vector_t; /*! * The i2c interface class: * Provides i2c and eeprom functionality. * A subclass should only have to implement the i2c routines. * An eeprom implementation comes for free with the interface. * * The eeprom routines are implemented on top of i2c. * The built in eeprom implementation only does single * byte reads and byte writes over the i2c interface, * so it should be portable across multiple eeproms. * Override the eeprom routines if this is not acceptable. */ class UHD_API i2c_iface{ public: typedef boost::shared_ptr sptr; /*! * Write bytes over the i2c. * \param addr the address * \param buf the vector of bytes */ virtual void write_i2c( boost::uint8_t addr, const byte_vector_t &buf ) = 0; /*! * Read bytes over the i2c. * \param addr the address * \param num_bytes number of bytes to read * \return a vector of bytes */ virtual byte_vector_t read_i2c( boost::uint8_t addr, size_t num_bytes ) = 0; /*! * Write bytes to an eeprom. * \param addr the address * \param offset byte offset * \param buf the vector of bytes */ virtual void write_eeprom( boost::uint8_t addr, boost::uint8_t offset, const byte_vector_t &buf ); /*! * Read bytes from an eeprom. * \param addr the address * \param offset byte offset * \param num_bytes number of bytes to read * \return a vector of bytes */ virtual byte_vector_t read_eeprom( boost::uint8_t addr, boost::uint8_t offset, size_t num_bytes ); }; /*! * The SPI configuration struct: * Used to configure a SPI transaction interface. */ struct UHD_API spi_config_t{ /*! * The edge type specifies when data is valid * relative to the edge of the serial clock. */ enum edge_t{ EDGE_RISE = 'r', EDGE_FALL = 'f' }; //! on what edge is the mosi data valid? edge_t mosi_edge; //! on what edge is the miso data valid? edge_t miso_edge; /*! * Create a new spi config. * \param edge the default edge for mosi and miso */ spi_config_t(edge_t edge = EDGE_RISE); }; /*! * The SPI interface class. * Provides routines to transact SPI and do other useful things which haven't been defined yet. */ class UHD_API spi_iface{ public: typedef boost::shared_ptr sptr; /*! * Perform a spi transaction. * \param which_slave the slave device number * \param config spi config args * \param data the bits to write * \param num_bits how many bits in data * \param readback true to readback a value * \return spi data if readback set */ virtual boost::uint32_t transact_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits, bool readback ) = 0; /*! * Read from the SPI bus. * \param which_slave the slave device number * \param config spi config args * \param data the bits to write out (be sure to set write bit) * \param num_bits how many bits in data * \return spi data */ virtual boost::uint32_t read_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); /*! * Write to the SPI bus. * \param which_slave the slave device number * \param config spi config args * \param data the bits to write * \param num_bits how many bits in data */ virtual void write_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); }; /*! * UART interface to write and read bytes. */ class UHD_API uart_iface{ public: typedef boost::shared_ptr sptr; /*! * Write to a serial port. * \param buf the data to write */ virtual void write_uart(const std::string &buf) = 0; /*! * Read from a serial port. * Reads until complete line or timeout. * \param timeout the timeout in seconds * \return the data read from the serial port */ virtual std::string read_uart(double timeout) = 0; }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_SERIAL_HPP */ uhd-3.5.5/host/include/uhd/types/stream_cmd.hpp000066400000000000000000000047131224274632000214660ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_STREAM_CMD_HPP #define INCLUDED_UHD_TYPES_STREAM_CMD_HPP #include #include namespace uhd{ /*! * Command struct for configuration and control of streaming: * * A stream command defines how the device sends samples to the host. * Streaming is controlled by submitting a stream command to the rx dsp. * Granular control over what the device streams to the host can be * achieved through submission of multiple (carefully-crafted) commands. * * The mode parameter controls how streaming is issued to the device: * - "Start continuous" tells the device to stream samples indefinitely. * - "Stop continuous" tells the device to end continuous streaming. * - "Num samps and done" tells the device to stream num samps and * to not expect a future stream command for contiguous samples. * - "Num samps and more" tells the device to stream num samps and * to expect a future stream command for contiguous samples. * * The stream now parameter controls when the stream begins. * When true, the device will begin streaming ASAP. When false, * the device will begin streaming at a time specified by time_spec. */ struct UHD_API stream_cmd_t{ enum stream_mode_t { STREAM_MODE_START_CONTINUOUS = int('a'), STREAM_MODE_STOP_CONTINUOUS = int('o'), STREAM_MODE_NUM_SAMPS_AND_DONE = int('d'), STREAM_MODE_NUM_SAMPS_AND_MORE = int('m') } stream_mode; size_t num_samps; bool stream_now; time_spec_t time_spec; stream_cmd_t(const stream_mode_t &stream_mode); }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_STREAM_CMD_HPP */ uhd-3.5.5/host/include/uhd/types/time_spec.hpp000066400000000000000000000117601224274632000213200ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_TIME_SPEC_HPP #define INCLUDED_UHD_TYPES_TIME_SPEC_HPP #include #include #include namespace uhd{ /*! * A time_spec_t holds a seconds and a fractional seconds time value. * Depending upon usage, the time_spec_t can represent absolute times, * relative times, or time differences (between absolute times). * * The time_spec_t provides clock-domain independent time storage, * but can convert fractional seconds to/from clock-domain specific units. * * The fractional seconds are stored as double precision floating point. * This gives the fractional seconds enough precision to unambiguously * specify a clock-tick/sample-count up to rates of several petahertz. */ class UHD_API time_spec_t : boost::additive, boost::totally_ordered{ public: /*! * Get the system time in time_spec_t format. * Uses the highest precision clock available. * \return the system time as a time_spec_t */ static time_spec_t get_system_time(void); /*! * Create a time_spec_t from a real-valued seconds count. * \param secs the real-valued seconds count (default = 0) */ time_spec_t(double secs = 0); /*! * Create a time_spec_t from whole and fractional seconds. * \param full_secs the whole/integer seconds count * \param frac_secs the fractional seconds count (default = 0) */ time_spec_t(time_t full_secs, double frac_secs = 0); /*! * Create a time_spec_t from whole seconds and fractional ticks. * Translation from clock-domain specific units. * \param full_secs the whole/integer seconds count * \param tick_count the fractional seconds tick count * \param tick_rate the number of ticks per second */ time_spec_t(time_t full_secs, long tick_count, double tick_rate); /*! * Create a time_spec_t from a 64-bit tick count. * Translation from clock-domain specific units. * \param ticks an integer count of ticks * \param tick_rate the number of ticks per second */ static time_spec_t from_ticks(long long ticks, double tick_rate); /*! * Convert the fractional seconds to clock ticks. * Translation into clock-domain specific units. * \param tick_rate the number of ticks per second * \return the fractional seconds tick count */ long get_tick_count(double tick_rate) const; /*! * Convert the time spec into a 64-bit tick count. * Translation into clock-domain specific units. * \param tick_rate the number of ticks per second * \return an integer number of ticks */ long long to_ticks(const double tick_rate) const; /*! * Get the time as a real-valued seconds count. * Note: If this time_spec_t represents an absolute time, * the precision of the fractional seconds may be lost. * \return the real-valued seconds */ double get_real_secs(void) const; /*! * Get the whole/integer part of the time in seconds. * \return the whole/integer seconds */ time_t get_full_secs(void) const; /*! * Get the fractional part of the time in seconds. * \return the fractional seconds */ double get_frac_secs(void) const; //! Implement addable interface time_spec_t &operator+=(const time_spec_t &); //! Implement subtractable interface time_spec_t &operator-=(const time_spec_t &); //private time storage details private: time_t _full_secs; double _frac_secs; }; //! Implement equality_comparable interface UHD_API bool operator==(const time_spec_t &, const time_spec_t &); //! Implement less_than_comparable interface UHD_API bool operator<(const time_spec_t &, const time_spec_t &); UHD_INLINE time_t time_spec_t::get_full_secs(void) const{ return this->_full_secs; } UHD_INLINE double time_spec_t::get_frac_secs(void) const{ return this->_frac_secs; } } //namespace uhd #endif /* INCLUDED_UHD_TYPES_TIME_SPEC_HPP */ uhd-3.5.5/host/include/uhd/types/tune_request.hpp000066400000000000000000000062701224274632000220730ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_TUNE_REQUEST_HPP #define INCLUDED_UHD_TYPES_TUNE_REQUEST_HPP #include namespace uhd{ /*! * A tune request instructs the implementation how to tune the RF chain. * The policies can be used to select automatic tuning or * fined control over the daughterboard IF and DSP tuning. * Not all combinations of policies are applicable. * Convenience constructors are supplied for most use cases. */ struct UHD_API tune_request_t{ /*! * Make a new tune request for a particular center frequency. * Use an automatic policy for the RF and DSP frequency * to tune the chain as close as possible to the target frequency. * \param target_freq the target frequency in Hz */ tune_request_t(double target_freq = 0); /*! * Make a new tune request for a particular center frequency. * Use a manual policy for the RF frequency, * and an automatic policy for the DSP frequency, * to tune the chain as close as possible to the target frequency. * \param target_freq the target frequency in Hz * \param lo_off the LO offset frequency in Hz */ tune_request_t(double target_freq, double lo_off); //! Policy options for tunable elements in the RF chain. enum policy_t { //! Do not set this argument, use current setting. POLICY_NONE = int('N'), //! Automatically determine the argument's value. POLICY_AUTO = int('A'), //! Use the argument's value for the setting. POLICY_MANUAL = int('M') }; /*! * The target frequency of the overall chain in Hz. * Set this even if all policies are set to manual. */ double target_freq; /*! * The policy for the RF frequency. * Automatic behavior: the target frequency + default LO offset. */ policy_t rf_freq_policy; /*! * The RF frequency in Hz. * Set when the policy is set to manual. */ double rf_freq; /*! * The policy for the DSP frequency. * Automatic behavior: the difference between the target and IF. */ policy_t dsp_freq_policy; /*! * The DSP frequency in Hz. * Set when the policy is set to manual. */ double dsp_freq; }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_TUNE_REQUEST_HPP */ uhd-3.5.5/host/include/uhd/types/tune_result.hpp000066400000000000000000000024701224274632000217170ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_TYPES_TUNE_RESULT_HPP #define INCLUDED_UHD_TYPES_TUNE_RESULT_HPP #include #include namespace uhd{ /*! * The tune result struct holds result of a 2-phase tuning. */ struct UHD_API tune_result_t{ double target_rf_freq; double actual_rf_freq; double target_dsp_freq; double actual_dsp_freq; /*! * Create a pretty print string for this tune result struct. * \return the printable string */ std::string to_pp_string(void) const; }; } //namespace uhd #endif /* INCLUDED_UHD_TYPES_TUNE_RESULT_HPP */ uhd-3.5.5/host/include/uhd/usrp/000077500000000000000000000000001224274632000164575ustar00rootroot00000000000000uhd-3.5.5/host/include/uhd/usrp/CMakeLists.txt000066400000000000000000000020001224274632000212070ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # UHD_INSTALL(FILES #### dboard headers ### dboard_base.hpp dboard_eeprom.hpp dboard_id.hpp dboard_iface.hpp dboard_manager.hpp ### utilities ### gps_ctrl.hpp mboard_eeprom.hpp subdev_spec.hpp ### interfaces ### multi_usrp.hpp DESTINATION ${INCLUDE_DIR}/uhd/usrp COMPONENT headers ) uhd-3.5.5/host/include/uhd/usrp/dboard_base.hpp000066400000000000000000000053151224274632000214210ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_DBOARD_BASE_HPP #define INCLUDED_UHD_USRP_DBOARD_BASE_HPP #include #include #include #include #include #include #include namespace uhd{ namespace usrp{ /*! * A daughter board dboard_base class for all dboards. * Only other dboard dboard_base classes should inherit this. */ class UHD_API dboard_base : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * An opaque type for the dboard constructor args. * Derived classes should pass the args into the base class, * but should not deal with the internals of the args. */ typedef void * ctor_args_t; //structors dboard_base(ctor_args_t); protected: std::string get_subdev_name(void); dboard_iface::sptr get_iface(void); dboard_id_t get_rx_id(void); dboard_id_t get_tx_id(void); property_tree::sptr get_rx_subtree(void); property_tree::sptr get_tx_subtree(void); private: UHD_PIMPL_DECL(impl) _impl; }; /*! * A xcvr daughter board implements rx and tx methods * Sub classes for xcvr boards should inherit this. */ class UHD_API xcvr_dboard_base : public dboard_base{ public: /*! * Create a new xcvr dboard object, override in subclasses. */ xcvr_dboard_base(ctor_args_t); }; /*! * A rx daughter board only implements rx methods. * Sub classes for rx-only boards should inherit this. */ class UHD_API rx_dboard_base : public dboard_base{ public: /*! * Create a new rx dboard object, override in subclasses. */ rx_dboard_base(ctor_args_t); }; /*! * A tx daughter board only implements tx methods. * Sub classes for rx-only boards should inherit this. */ class UHD_API tx_dboard_base : public dboard_base{ public: /*! * Create a new rx dboard object, override in subclasses. */ tx_dboard_base(ctor_args_t); }; }} //namespace #endif /* INCLUDED_UHD_USRP_DBOARD_BASE_HPP */ uhd-3.5.5/host/include/uhd/usrp/dboard_eeprom.hpp000066400000000000000000000033301224274632000217710ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_DBOARD_EEPROM_HPP #define INCLUDED_UHD_USRP_DBOARD_EEPROM_HPP #include #include #include #include namespace uhd{ namespace usrp{ struct UHD_API dboard_eeprom_t{ //! The ID for the daughterboard type dboard_id_t id; //! The unique serial number std::string serial; //! A hardware revision number std::string revision; /*! * Create an empty dboard eeprom struct. */ dboard_eeprom_t(void); /*! * Load the object with bytes from the eeprom. * \param iface the serial interface with i2c * \param addr the i2c address for the eeprom */ void load(i2c_iface &iface, boost::uint8_t addr); /*! * Store the object to bytes in the eeprom. * \param iface the serial interface with i2c * \param addr the i2c address for the eeprom */ void store(i2c_iface &iface, boost::uint8_t addr) const; }; }} //namespace #endif /* INCLUDED_UHD_USRP_DBOARD_EEPROM_HPP */ uhd-3.5.5/host/include/uhd/usrp/dboard_id.hpp000066400000000000000000000062151224274632000211030ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_DBOARD_ID_HPP #define INCLUDED_UHD_USRP_DBOARD_ID_HPP #include #include #include #include namespace uhd{ namespace usrp{ class UHD_API dboard_id_t : boost::equality_comparable{ public: /*! * Create a dboard id from an integer. * \param id the integer representation */ dboard_id_t(boost::uint16_t id = 0xffff); /*! * Obtain a dboard id that represents no dboard. * \return the dboard id with the 0xffff id. */ static dboard_id_t none(void); /*! * Create a new dboard id from an integer representation. * \param uint16 an unsigned 16 bit integer * \return a new dboard id containing the integer */ static dboard_id_t from_uint16(boost::uint16_t uint16); /*! * Get the dboard id represented as an integer. * \return an unsigned 16 bit integer representation */ boost::uint16_t to_uint16(void) const; /*! * Create a new dboard id from a string representation. * If the string has a 0x prefix, it will be parsed as hex. * \param string a numeric string, possibly hex * \return a new dboard id containing the integer */ static dboard_id_t from_string(const std::string &string); /*! * Get the dboard id represented as an integer. * \return a hex string representation with 0x prefix */ std::string to_string(void) const; /*! * Get the dboard id represented as a canonical name. * \return the canonical string representation */ std::string to_cname(void) const; /*! * Get the pretty print representation of this dboard id. * \return a string with the dboard name and id number */ std::string to_pp_string(void) const; private: boost::uint16_t _id; //internal representation }; /*! * Comparator operator overloaded for dboard ids. * The boost::equality_comparable provides the !=. * \param lhs the dboard id to the left of the operator * \param rhs the dboard id to the right of the operator * \return true when the dboard ids are equal */ UHD_API bool operator==(const dboard_id_t &lhs, const dboard_id_t &rhs); }} //namespace #endif /* INCLUDED_UHD_USRP_DBOARD_ID_HPP */ uhd-3.5.5/host/include/uhd/usrp/dboard_iface.hpp000066400000000000000000000212121224274632000215500ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_DBOARD_IFACE_HPP #define INCLUDED_UHD_USRP_DBOARD_IFACE_HPP #include #include #include #include #include #include #include namespace uhd{ namespace usrp{ //! Special properties that differentiate this daughterboard slot struct UHD_API dboard_iface_special_props_t{ /*! * Soft clock divider: * When a motherboard cannot provided a divided dboard clock, * it may provided a "soft" divided clock over an FPGA GPIO. * The implementation must know the type of clock provided. */ bool soft_clock_divider; /*! * Mangle i2c addresses: * When i2c is shared across multiple daugterboard slots, * the i2c addresses will be mangled on the secondary slot * to avoid conflicts between slots in the i2c address space. * The mangling is daguhterboard specific so the implementation * needs to know whether it should use mangled addresses or not. */ bool mangle_i2c_addrs; }; /*! * The daughter board dboard interface to be subclassed. * A dboard instance interfaces with the mboard though this api. * This interface provides i2c, spi, gpio, atr, aux dac/adc access. * Each mboard should have a specially tailored iface for its dboard. */ class UHD_API dboard_iface : public uhd::i2c_iface{ public: typedef boost::shared_ptr sptr; typedef dboard_iface_special_props_t special_props_t; //! tells the host which unit to use enum unit_t{ UNIT_RX = int('r'), UNIT_TX = int('t') }; //! possible atr registers enum atr_reg_t{ ATR_REG_IDLE = int('i'), ATR_REG_TX_ONLY = int('t'), ATR_REG_RX_ONLY = int('r'), ATR_REG_FULL_DUPLEX = int('f') }; //! aux dac selection enums (per unit) enum aux_dac_t{ AUX_DAC_A = int('a'), AUX_DAC_B = int('b'), AUX_DAC_C = int('c'), AUX_DAC_D = int('d') }; //! aux adc selection enums (per unit) enum aux_adc_t{ AUX_ADC_A = int('a'), AUX_ADC_B = int('b') }; /*! * Get special properties information for this dboard slot. * This call helps the dboard code to handle implementation * differences between different motherboards and dboard slots. * \return the special properties struct */ virtual special_props_t get_special_props(void) = 0; /*! * Write to an aux dac. * * \param unit which unit rx or tx * \param which_dac the dac index 0, 1, 2, 3... * \param value the value in volts */ virtual void write_aux_dac(unit_t unit, aux_dac_t which_dac, double value) = 0; /*! * Read from an aux adc. * * \param unit which unit rx or tx * \param which_adc the adc index 0, 1, 2, 3... * \return the value in volts */ virtual double read_aux_adc(unit_t unit, aux_adc_t which_adc) = 0; /*! * Set a daughterboard output pin control source. * * \param unit which unit rx or tx * \param value 16-bits, 0=GPIO controlled, 1=ATR controlled * \param mask 16-bits, 0=do not change, 1=change value */ virtual void set_pin_ctrl( unit_t unit, boost::uint16_t value, boost::uint16_t mask = 0xffff ); /*! * Read back the pin control setting. * * \param unit which unit rx or tx * \return the 16-bit settings value */ virtual boost::uint16_t get_pin_ctrl(unit_t unit); /*! * Set a daughterboard ATR register. * * \param unit which unit rx or tx * \param reg which ATR register * \param value 16-bits, 0=ATR output low, 1=ATR output high * \param mask 16-bits, 0=do not change, 1=change value */ virtual void set_atr_reg( unit_t unit, atr_reg_t reg, boost::uint16_t value, boost::uint16_t mask = 0xffff ); /*! * Read back an ATR register setting. * * \param unit which unit rx or tx * \param reg which ATR register * \return the 16-bit settings value */ virtual boost::uint16_t get_atr_reg(unit_t unit, atr_reg_t reg); /*! * Set daughterboard GPIO data direction setting. * * \param unit which unit rx or tx * \param value 16-bits, 0=GPIO input, 1=GPIO output * \param mask 16-bits, 0=do not change, 1=change value */ virtual void set_gpio_ddr( unit_t unit, boost::uint16_t value, boost::uint16_t mask = 0xffff ); /*! * Read back the GPIO data direction setting. * * \param unit which unit rx or tx * \return the 16-bit settings value */ virtual boost::uint16_t get_gpio_ddr(unit_t unit); /*! * Set daughterboard GPIO pin output setting. * * \param unit which unit rx or tx * \param value 16-bits, 0=GPIO output low, 1=GPIO output high * \param mask 16-bits, 0=do not change, 1=change value */ virtual void set_gpio_out( unit_t unit, boost::uint16_t value, boost::uint16_t mask = 0xffff ); /*! * Read back the GPIO pin output setting. * * \param unit which unit rx or tx * \return the 16-bit settings value */ virtual boost::uint16_t get_gpio_out(unit_t unit); /*! * Setup the GPIO debug mux. * * \param unit which unit rx or tx * \param which which debug: 0, 1 */ virtual void set_gpio_debug(unit_t unit, int which) = 0; /*! * Read daughterboard GPIO pin values. * * \param unit which unit rx or tx * \return the value of the gpio unit */ virtual boost::uint16_t read_gpio(unit_t unit) = 0; /*! * Write data to SPI bus peripheral. * * \param unit which unit, rx or tx * \param config configuration settings * \param data the bits to write MSB first * \param num_bits the number of bits in data */ virtual void write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ) = 0; /*! * Read and write data to SPI bus peripheral. * * \param unit which unit, rx or tx * \param config configuration settings * \param data the bits to write MSB first * \param num_bits the number of bits in data * \return the data that was read */ virtual boost::uint32_t read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ) = 0; /*! * Set the rate of a dboard clock. * * \param unit which unit rx or tx * \param rate the clock rate in Hz */ virtual void set_clock_rate(unit_t unit, double rate) = 0; /*! * Get the rate of a dboard clock. * * \param unit which unit rx or tx * \return the clock rate in Hz */ virtual double get_clock_rate(unit_t unit) = 0; /*! * Get a list of possible rates for the dboard clock. * * \param unit which unit rx or tx * \return a list of clock rates in Hz */ virtual std::vector get_clock_rates(unit_t unit) = 0; /*! * Enable or disable a dboard clock. * * \param unit which unit rx or tx * \param enb true for enabled */ virtual void set_clock_enabled(unit_t unit, bool enb) = 0; /*! * Get the rate of the codec. * For rx, this is the rate the ADC feeds the DSP. * For tx, this is the rate the DSP feeds the DAC. * \param unit which unit rx or tx * \return the codec rate in Hz */ virtual double get_codec_rate(unit_t unit) = 0; private: UHD_PIMPL_DECL(impl) _impl; virtual void _set_pin_ctrl(unit_t unit, boost::uint16_t value) = 0; virtual void _set_atr_reg(unit_t unit, atr_reg_t reg, boost::uint16_t value) = 0; virtual void _set_gpio_ddr(unit_t unit, boost::uint16_t value) = 0; virtual void _set_gpio_out(unit_t unit, boost::uint16_t value) = 0; protected: dboard_iface(void); }; }} //namespace #endif /* INCLUDED_UHD_USRP_DBOARD_IFACE_HPP */ uhd-3.5.5/host/include/uhd/usrp/dboard_manager.hpp000066400000000000000000000065011224274632000221170ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP #define INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP #include #include #include #include #include #include #include #include namespace uhd{ namespace usrp{ /*! * A daughter board subdev dboard_manager class. * Create subdev instances for each subdev on a dboard. * Provide wax::obj access to the subdevs inside. */ class UHD_API dboard_manager : boost::noncopyable{ public: typedef boost::shared_ptr sptr; //dboard constructor (each dboard should have a ::make with this signature) typedef dboard_base::sptr(*dboard_ctor_t)(dboard_base::ctor_args_t); /*! * Register a rx or tx dboard into the system. * For single subdevice boards, omit subdev_names. * \param dboard_id the dboard id (rx or tx) * \param dboard_ctor the dboard constructor function pointer * \param name the canonical name for the dboard represented * \param subdev_names the names of the subdevs on this dboard */ static void register_dboard( const dboard_id_t &dboard_id, dboard_ctor_t dboard_ctor, const std::string &name, const std::vector &subdev_names = std::vector(1, "0") ); /*! * Register an xcvr dboard into the system. * For single subdevice boards, omit subdev_names. * \param rx_dboard_id the rx unit dboard id * \param tx_dboard_id the tx unit dboard id * \param dboard_ctor the dboard constructor function pointer * \param name the canonical name for the dboard represented * \param subdev_names the names of the subdevs on this dboard */ static void register_dboard( const dboard_id_t &rx_dboard_id, const dboard_id_t &tx_dboard_id, dboard_ctor_t dboard_ctor, const std::string &name, const std::vector &subdev_names = std::vector(1, "0") ); /*! * Make a new dboard manager. * \param rx_dboard_id the id of the rx dboard * \param tx_dboard_id the id of the tx dboard * \param gdboard_id the id of the grand-dboard * \param iface the custom dboard interface * \param subtree the subtree to load with props * \return an sptr to the new dboard manager */ static sptr make( dboard_id_t rx_dboard_id, dboard_id_t tx_dboard_id, dboard_id_t gdboard_id, dboard_iface::sptr iface, property_tree::sptr subtree ); }; }} //namespace #endif /* INCLUDED_UHD_USRP_DBOARD_MANAGER_HPP */ uhd-3.5.5/host/include/uhd/usrp/gps_ctrl.hpp000066400000000000000000000032161224274632000210070ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_GPS_CTRL_HPP #define INCLUDED_GPS_CTRL_HPP #include #include #include #include #include #include namespace uhd{ class UHD_API gps_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Make a GPS config for Jackson Labs or generic NMEA GPS devices */ static sptr make(uart_iface::sptr uart); /*! * Retrieve the list of sensors this GPS object provides */ virtual std::vector get_sensors(void) = 0; /*! * Retrieve the named sensor */ virtual uhd::sensor_value_t get_sensor(std::string key) = 0; /*! * Tell you if there's a supported GPS connected or not * \return true if a supported GPS is connected */ virtual bool gps_detected(void) = 0; //TODO: other fun things you can do with a GPS. }; } //namespace uhd #endif /* INCLUDED_GPS_CTRL_HPP */ uhd-3.5.5/host/include/uhd/usrp/mboard_eeprom.hpp000066400000000000000000000036021224274632000220040ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_MBOARD_EEPROM_HPP #define INCLUDED_UHD_USRP_MBOARD_EEPROM_HPP #include #include #include #include namespace uhd{ namespace usrp{ /*! * The motherboard EEPROM object: * Knows how to read and write the EEPROM for various USRPs. * The class inherits from a string, string dictionary. * Use the dictionary interface to get and set values. * Commit to the EEPROM to save changed settings. */ struct UHD_API mboard_eeprom_t : uhd::dict{ //! Make a new empty mboard eeprom mboard_eeprom_t(void); /*! * Make a new mboard EEPROM handler. * \param iface the interface to i2c * \param which which EEPROM map to use */ mboard_eeprom_t(i2c_iface &iface, const std::string &which); /*! * Write the contents of this object to the EEPROM. * \param iface the interface to i2c * \param which which EEPROM map to use */ void commit(i2c_iface &iface, const std::string &which) const; }; }} //namespace #endif /* INCLUDED_UHD_USRP_MBOARD_EEPROM_HPP */ uhd-3.5.5/host/include/uhd/usrp/multi_usrp.hpp000066400000000000000000000762101224274632000214010ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_MULTI_USRP_HPP #define INCLUDED_UHD_USRP_MULTI_USRP_HPP //define API capabilities for compile time detection of new features #define UHD_USRP_MULTI_USRP_REF_SOURCES_API #define UHD_USRP_MULTI_USRP_GET_RATES_API #define UHD_USRP_MULTI_USRP_FRONTEND_CAL_API #define UHD_USRP_MULTI_USRP_COMMAND_TIME_API #define UHD_USRP_MULTI_USRP_BW_RANGE_API #define UHD_USRP_MULTI_USRP_USER_REGS_API #define UHD_USRP_MULTI_USRP_GET_USRP_INFO_API #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace uhd{ namespace usrp{ /*! * The Multi-USRP device class: * * This class facilitates ease-of-use for most use-case scenarios. * The wrapper provides convenience functions to tune the devices, * set the dboard gains, antennas, filters, and other properties. * This class can be used to interface with a single USRP with * one or more channels, or multiple USRPs in a homogeneous setup. * All members take an optional parameter for board number or channel number. * In the single device, single channel case, these parameters can be unspecified. * * When using a single device with multiple channels: * - Channel mapping is determined by the frontend specifications * - All channels share a common RX sample rate * - All channels share a common TX sample rate * * When using multiple devices in a configuration: * - Channel mapping is determined by the device address arguments * - All boards share a common RX sample rate * - All boards share a common TX sample rate * - All boards share a common RX frontend specification size * - All boards share a common TX frontend specification size * - All boards must have synchronized times (see the set_time_*() calls) * * Example to setup channel mapping for multiple devices: *
 *
 * //create a multi_usrp with two boards in the configuration
 * device_addr_t dev_addr;
 * dev_addr["addr0"] = "192.168.10.2"
 * dev_addr["addr1"] = "192.168.10.3";
 * multi_usrp::sptr dev = multi_usrp::make(dev_addr);
 *
 * //set the board on 10.2 to use the A RX frontend (RX channel 0)
 * dev->set_rx_subdev_spec("A:A", 0);
 *
 * //set the board on 10.3 to use the B RX frontend (RX channel 1)
 * dev->set_rx_subdev_spec("A:B", 1);
 *
 * //set both boards to use the AB TX frontend (TX channels 0 and 1)
 * dev->set_tx_subdev_spec("A:AB", multi_usrp::ALL_MBOARDS);
 *
 * //now that all the channels are mapped, continue with configuration...
 *
 * 
*/ class UHD_API multi_usrp : boost::noncopyable{ public: typedef boost::shared_ptr sptr; //! A wildcard motherboard index static const size_t ALL_MBOARDS = size_t(~0); //! A wildcard channel index static const size_t ALL_CHANS = size_t(~0); //! A wildcard gain element name static const std::string ALL_GAINS; /*! * Make a new multi usrp from the device address. * \param dev_addr the device address * \return a new single usrp object */ static sptr make(const device_addr_t &dev_addr); /*! * Get the underlying device object. * This is needed to get access to the streaming API and properties. * \return the device object within this single usrp */ virtual device::sptr get_device(void) = 0; //! Convenience method to get a RX streamer rx_streamer::sptr get_rx_stream(const stream_args_t &args){ return this->get_device()->get_rx_stream(args); } //! Convenience method to get a TX streamer tx_streamer::sptr get_tx_stream(const stream_args_t &args){ return this->get_device()->get_tx_stream(args); } /*! * Returns identifying information about this USRP's configuration. * Returns motherboard ID, name, and serial. * Returns daughterboard RX ID, subdev name and spec, serial, and antenna. * \param chan channel index 0 to N-1 * \return RX info */ virtual dict get_usrp_rx_info(size_t chan = 0) = 0; /*! * Returns identifying information about this USRP's configuration. * Returns motherboard ID, name, and serial. * Returns daughterboard TX ID, subdev name and spec, serial, and antenna. * \param chan channel index 0 to N-1 * \return TX info */ virtual dict get_usrp_tx_info(size_t chan = 0) = 0; /******************************************************************* * Mboard methods ******************************************************************/ /*! * Set the master clock rate. * This controls the rate of the clock that feeds the FPGA DSP. * On some devices, this re-tunes the clock to the specified rate. * If the specified rate is not available, this method will throw. * On other devices, this method notifies the software of the rate, * but requires the the user has made the necessary hardware change. * \param rate the new master clock rate in Hz * \param mboard the motherboard index 0 to M-1 */ virtual void set_master_clock_rate(double rate, size_t mboard = ALL_MBOARDS) = 0; /*! * Get the master clock rate. * \param mboard the motherboard index 0 to M-1 * \return the master clock rate in Hz. */ virtual double get_master_clock_rate(size_t mboard = 0) = 0; /*! * Get a printable summary for this USRP configuration. * \return a printable string */ virtual std::string get_pp_string(void) = 0; /*! * Get canonical name for this USRP motherboard. * \param mboard which motherboard to query * \return a string representing the name */ virtual std::string get_mboard_name(size_t mboard = 0) = 0; /*! * Get the current time in the usrp time registers. * \param mboard which motherboard to query * \return a timespec representing current usrp time */ virtual time_spec_t get_time_now(size_t mboard = 0) = 0; /*! * Get the time when the last pps pulse occured. * \param mboard which motherboard to query * \return a timespec representing the last pps */ virtual time_spec_t get_time_last_pps(size_t mboard = 0) = 0; /*! * Sets the time registers on the usrp immediately. * * If only one MIMO master is present in your configuration, set_time_now is * safe to use because the slave's time automatically follows the master's time. * Otherwise, this call cannot set the time synchronously across multiple devices. * Please use the set_time_next_pps or set_time_unknown_pps calls with a PPS signal. * * \param time_spec the time to latch into the usrp device * \param mboard the motherboard index 0 to M-1 */ virtual void set_time_now(const time_spec_t &time_spec, size_t mboard = ALL_MBOARDS) = 0; /*! * Set the time registers on the usrp at the next pps tick. * The values will not be latched in until the pulse occurs. * It is recommended that the user sleep(1) after calling to ensure * that the time registers will be in a known state prior to use. * * Note: Because this call sets the time on the "next" pps, * the seconds in the time spec should be current seconds + 1. * * \param time_spec the time to latch into the usrp device * \param mboard the motherboard index 0 to M-1 */ virtual void set_time_next_pps(const time_spec_t &time_spec, size_t mboard = ALL_MBOARDS) = 0; /*! * Synchronize the times across all motherboards in this configuration. * Use this method to sync the times when the edge of the PPS is unknown. * * Ex: Host machine is not attached to serial port of GPSDO * and can therefore not query the GPSDO for the PPS edge. * * This is a 2-step process, and will take at most 2 seconds to complete. * Upon completion, the times will be synchronized to the time provided. * * - Step1: wait for the last pps time to transition to catch the edge * - Step2: set the time at the next pps (synchronous for all boards) * * \param time_spec the time to latch at the next pps after catching the edge */ virtual void set_time_unknown_pps(const time_spec_t &time_spec) = 0; /*! * Are the times across all motherboards in this configuration synchronized? * Checks that all time registers are approximately close but not exact, * given that the RTT may varying for a control packet transaction. * \return true when all motherboards time registers are in sync */ virtual bool get_time_synchronized(void) = 0; /*! * Set the time at which the control commands will take effect. * * A timed command will back-pressure all subsequent timed commands, * assuming that the subsequent commands occur within the time-window. * If the time spec is late, the command will be activated upon arrival. * * \param time_spec the time at which the next command will activate * \param mboard which motherboard to set the config */ virtual void set_command_time(const uhd::time_spec_t &time_spec, size_t mboard = ALL_MBOARDS) = 0; /*! * Clear the command time so future commands are sent ASAP. * * \param mboard which motherboard to set the config */ virtual void clear_command_time(size_t mboard = ALL_MBOARDS) = 0; /*! * Issue a stream command to the usrp device. * This tells the usrp to send samples into the host. * See the documentation for stream_cmd_t for more info. * * With multiple devices, the first stream command in a chain of commands * should have a time spec in the near future and stream_now = false; * to ensure that the packets can be aligned by their time specs. * * \param stream_cmd the stream command to issue * \param chan the channel index 0 to N-1 */ virtual void issue_stream_cmd(const stream_cmd_t &stream_cmd, size_t chan = ALL_CHANS) = 0; /*! * Set the clock configuration for the usrp device. * DEPRECATED in favor of set time and clock source calls. * This tells the usrp how to get a 10Mhz reference and PPS clock. * See the documentation for clock_config_t for more info. * \param clock_config the clock configuration to set * \param mboard which motherboard to set the config */ virtual void set_clock_config(const clock_config_t &clock_config, size_t mboard = ALL_MBOARDS) = 0; /*! * Set the time source for the usrp device. * This sets the method of time synchronization, * typically a pulse per second or an encoded time. * Typical options for source: external, MIMO. * \param source a string representing the time source * \param mboard which motherboard to set the config */ virtual void set_time_source(const std::string &source, const size_t mboard = ALL_MBOARDS) = 0; /*! * Get the currently set time source. * \param mboard which motherboard to get the config * \return the string representing the time source */ virtual std::string get_time_source(const size_t mboard) = 0; /*! * Get a list of possible time sources. * \param mboard which motherboard to get the list * \return a vector of strings for possible settings */ virtual std::vector get_time_sources(const size_t mboard) = 0; /*! * Set the clock source for the usrp device. * This sets the source for a 10 Mhz reference clock. * Typical options for source: internal, external, MIMO. * \param source a string representing the clock source * \param mboard which motherboard to set the config */ virtual void set_clock_source(const std::string &source, const size_t mboard = ALL_MBOARDS) = 0; /*! * Get the currently set clock source. * \param mboard which motherboard to get the config * \return the string representing the clock source */ virtual std::string get_clock_source(const size_t mboard) = 0; /*! * Get a list of possible clock sources. * \param mboard which motherboard to get the list * \return a vector of strings for possible settings */ virtual std::vector get_clock_sources(const size_t mboard) = 0; /*! * Get the number of USRP motherboards in this configuration. */ virtual size_t get_num_mboards(void) = 0; /*! * Get a motherboard sensor value. * \param name the name of the sensor * \param mboard the motherboard index 0 to M-1 * \return a sensor value object */ virtual sensor_value_t get_mboard_sensor(const std::string &name, size_t mboard = 0) = 0; /*! * Get a list of possible motherboard sensor names. * \param mboard the motherboard index 0 to M-1 * \return a vector of sensor names */ virtual std::vector get_mboard_sensor_names(size_t mboard = 0) = 0; /*! * Perform write on the user configuration register bus. These only exist if * the user has implemented custom setting registers in the device FPGA. * \param addr 8-bit register address * \param data 32-bit register value * \param mboard which motherboard to set the user register */ virtual void set_user_register(const boost::uint8_t addr, const boost::uint32_t data, size_t mboard = ALL_MBOARDS) = 0; /******************************************************************* * RX methods ******************************************************************/ /*! * Set the RX frontend specification: * The subdev spec maps a physical part of a daughter-board to a channel number. * Set the subdev spec before calling into any methods with a channel number. * The subdev spec must be the same size across all motherboards. * \param spec the new frontend specification * \param mboard the motherboard index 0 to M-1 */ virtual void set_rx_subdev_spec(const uhd::usrp::subdev_spec_t &spec, size_t mboard = ALL_MBOARDS) = 0; /*! * Get the RX frontend specification. * \param mboard the motherboard index 0 to M-1 * \return the frontend specification in use */ virtual uhd::usrp::subdev_spec_t get_rx_subdev_spec(size_t mboard = 0) = 0; /*! * Get the number of RX channels in this configuration. * This is the number of USRPs times the number of RX channels per board, * where the number of RX channels per board is homogeneous among all USRPs. */ virtual size_t get_rx_num_channels(void) = 0; /*! * Get the name of the RX frontend. * \param chan the channel index 0 to N-1 * \return the frontend name */ virtual std::string get_rx_subdev_name(size_t chan = 0) = 0; /*! * Set the RX sample rate. * \param rate the rate in Sps * \param chan the channel index 0 to N-1 */ virtual void set_rx_rate(double rate, size_t chan = ALL_CHANS) = 0; /*! * Gets the RX sample rate. * \param chan the channel index 0 to N-1 * \return the rate in Sps */ virtual double get_rx_rate(size_t chan = 0) = 0; /*! * Get a range of possible RX rates. * \param chan the channel index 0 to N-1 * \return the meta range of rates */ virtual meta_range_t get_rx_rates(size_t chan = 0) = 0; /*! * Set the RX center frequency. * \param tune_request tune request instructions * \param chan the channel index 0 to N-1 * \return a tune result object */ virtual tune_result_t set_rx_freq( const tune_request_t &tune_request, size_t chan = 0 ) = 0; /*! * Get the RX center frequency. * \param chan the channel index 0 to N-1 * \return the frequency in Hz */ virtual double get_rx_freq(size_t chan = 0) = 0; /*! * Get the RX center frequency range. * This range includes the overall tunable range of the RX chain, * including frontend chain and digital down conversion chain. * This tunable limit does not include the baseband bandwidth; * users should assume that the actual range is +/- samp_rate/2. * \param chan the channel index 0 to N-1 * \return a frequency range object */ virtual freq_range_t get_rx_freq_range(size_t chan = 0) = 0; /*! * Get the center frequency range of the RF frontend. * \param chan the channel index 0 to N-1 * \return a frequency range object */ virtual freq_range_t get_fe_rx_freq_range(size_t chan = 0) = 0; /*! * Set the RX gain value for the specified gain element. * For an empty name, distribute across all gain elements. * \param gain the gain in dB * \param name the name of the gain element * \param chan the channel index 0 to N-1 */ virtual void set_rx_gain(double gain, const std::string &name, size_t chan = 0) = 0; //! A convenience wrapper for setting overall RX gain void set_rx_gain(double gain, size_t chan = 0){ return this->set_rx_gain(gain, ALL_GAINS, chan); } /*! * Get the RX gain value for the specified gain element. * For an empty name, sum across all gain elements. * \param name the name of the gain element * \param chan the channel index 0 to N-1 * \return the gain in dB */ virtual double get_rx_gain(const std::string &name, size_t chan = 0) = 0; //! A convenience wrapper for getting overall RX gain double get_rx_gain(size_t chan = 0){ return this->get_rx_gain(ALL_GAINS, chan); } /*! * Get the RX gain range for the specified gain element. * For an empty name, calculate the overall gain range. * \param name the name of the gain element * \param chan the channel index 0 to N-1 * \return a gain range object */ virtual gain_range_t get_rx_gain_range(const std::string &name, size_t chan = 0) = 0; //! A convenience wrapper for getting overall RX gain range gain_range_t get_rx_gain_range(size_t chan = 0){ return this->get_rx_gain_range(ALL_GAINS, chan); } /*! * Get the names of the gain elements in the RX chain. * Gain elements are ordered from antenna to FPGA. * \param chan the channel index 0 to N-1 * \return a vector of gain element names */ virtual std::vector get_rx_gain_names(size_t chan = 0) = 0; /*! * Select the RX antenna on the frontend. * \param ant the antenna name * \param chan the channel index 0 to N-1 */ virtual void set_rx_antenna(const std::string &ant, size_t chan = 0) = 0; /*! * Get the selected RX antenna on the frontend. * \param chan the channel index 0 to N-1 * \return the antenna name */ virtual std::string get_rx_antenna(size_t chan = 0) = 0; /*! * Get a list of possible RX antennas on the frontend. * \param chan the channel index 0 to N-1 * \return a vector of antenna names */ virtual std::vector get_rx_antennas(size_t chan = 0) = 0; /*! * Get the locked status of the LO on the frontend. * \param chan the channel index 0 to N-1 * \return true for locked */ UHD_DEPRECATED bool get_rx_lo_locked(size_t chan = 0){ return this->get_rx_sensor("lo_locked", chan).to_bool(); } /*! * Set the RX bandwidth on the frontend. * \param bandwidth the bandwidth in Hz * \param chan the channel index 0 to N-1 */ virtual void set_rx_bandwidth(double bandwidth, size_t chan = 0) = 0; /*! * Get the RX bandwidth on the frontend. * \param chan the channel index 0 to N-1 * \return the bandwidth in Hz */ virtual double get_rx_bandwidth(size_t chan = 0) = 0; /*! * Get the range of the possible RX bandwidth settings. * \param chan the channel index 0 to N-1 * \return a range of bandwidths in Hz */ virtual meta_range_t get_rx_bandwidth_range(size_t chan = 0) = 0; /*! * Read the RSSI value on the RX frontend. * \param chan the channel index 0 to N-1 * \return the rssi in dB * \throw exception if RSSI readback not supported */ UHD_DEPRECATED double read_rssi(size_t chan = 0){ return this->get_rx_sensor("rssi", chan).to_real(); } /*! * Get the dboard interface object for the RX frontend. * The dboard interface gives access to GPIOs, SPI, I2C, low-speed ADC and DAC. * Use at your own risk! * \param chan the channel index 0 to N-1 * \return the dboard interface sptr */ virtual dboard_iface::sptr get_rx_dboard_iface(size_t chan = 0) = 0; /*! * Get an RX frontend sensor value. * \param name the name of the sensor * \param chan the channel index 0 to N-1 * \return a sensor value object */ virtual sensor_value_t get_rx_sensor(const std::string &name, size_t chan = 0) = 0; /*! * Get a list of possible RX frontend sensor names. * \param chan the channel index 0 to N-1 * \return a vector of sensor names */ virtual std::vector get_rx_sensor_names(size_t chan = 0) = 0; /*! * Enable/disable the automatic RX DC offset correction. * The automatic correction subtracts out the long-run average. * * When disabled, the averaging option operation is halted. * Once halted, the average value will be held constant * until the user re-enables the automatic correction * or overrides the value by manually setting the offset. * * \param enb true to enable automatic DC offset correction * \param chan the channel index 0 to N-1 */ virtual void set_rx_dc_offset(const bool enb, size_t chan = ALL_CHANS) = 0; /*! * Set a constant RX DC offset value. * The value is complex to control both I and Q. * Only set this when automatic correction is disabled. * \param offset the dc offset (1.0 is full-scale) * \param chan the channel index 0 to N-1 */ virtual void set_rx_dc_offset(const std::complex &offset, size_t chan = ALL_CHANS) = 0; /*! * Set the RX frontend IQ imbalance correction. * Use this to adjust the magnitude and phase of I and Q. * * \param correction the complex correction (1.0 is full-scale) * \param chan the channel index 0 to N-1 */ virtual void set_rx_iq_balance(const std::complex &correction, size_t chan = ALL_CHANS) = 0; /******************************************************************* * TX methods ******************************************************************/ /*! * Set the TX frontend specification: * The subdev spec maps a physical part of a daughter-board to a channel number. * Set the subdev spec before calling into any methods with a channel number. * The subdev spec must be the same size across all motherboards. * \param spec the new frontend specification * \param mboard the motherboard index 0 to M-1 */ virtual void set_tx_subdev_spec(const uhd::usrp::subdev_spec_t &spec, size_t mboard = ALL_MBOARDS) = 0; /*! * Get the TX frontend specification. * \param mboard the motherboard index 0 to M-1 * \return the frontend specification in use */ virtual uhd::usrp::subdev_spec_t get_tx_subdev_spec(size_t mboard = 0) = 0; /*! * Get the number of TX channels in this configuration. * This is the number of USRPs times the number of TX channels per board, * where the number of TX channels per board is homogeneous among all USRPs. */ virtual size_t get_tx_num_channels(void) = 0; /*! * Get the name of the TX frontend. * \param chan the channel index 0 to N-1 * \return the frontend name */ virtual std::string get_tx_subdev_name(size_t chan = 0) = 0; /*! * Set the TX sample rate. * \param rate the rate in Sps * \param chan the channel index 0 to N-1 */ virtual void set_tx_rate(double rate, size_t chan = ALL_CHANS) = 0; /*! * Gets the TX sample rate. * \param chan the channel index 0 to N-1 * \return the rate in Sps */ virtual double get_tx_rate(size_t chan = 0) = 0; /*! * Get a range of possible TX rates. * \param chan the channel index 0 to N-1 * \return the meta range of rates */ virtual meta_range_t get_tx_rates(size_t chan = 0) = 0; /*! * Set the TX center frequency. * \param tune_request tune request instructions * \param chan the channel index 0 to N-1 * \return a tune result object */ virtual tune_result_t set_tx_freq( const tune_request_t &tune_request, size_t chan = 0 ) = 0; /*! * Get the TX center frequency. * \param chan the channel index 0 to N-1 * \return the frequency in Hz */ virtual double get_tx_freq(size_t chan = 0) = 0; /*! * Get the TX center frequency range. * This range includes the overall tunable range of the TX chain, * including frontend chain and digital up conversion chain. * This tunable limit does not include the baseband bandwidth; * users should assume that the actual range is +/- samp_rate/2. * \param chan the channel index 0 to N-1 * \return a frequency range object */ virtual freq_range_t get_tx_freq_range(size_t chan = 0) = 0; /*! * Get the center frequency range of the TX frontend. * \param chan the channel index 0 to N-1 * \return a frequency range object */ virtual freq_range_t get_fe_tx_freq_range(size_t chan = 0) = 0; /*! * Set the TX gain value for the specified gain element. * For an empty name, distribute across all gain elements. * \param gain the gain in dB * \param name the name of the gain element * \param chan the channel index 0 to N-1 */ virtual void set_tx_gain(double gain, const std::string &name, size_t chan = 0) = 0; //! A convenience wrapper for setting overall TX gain void set_tx_gain(double gain, size_t chan = 0){ return this->set_tx_gain(gain, ALL_GAINS, chan); } /*! * Get the TX gain value for the specified gain element. * For an empty name, sum across all gain elements. * \param name the name of the gain element * \param chan the channel index 0 to N-1 * \return the gain in dB */ virtual double get_tx_gain(const std::string &name, size_t chan = 0) = 0; //! A convenience wrapper for getting overall TX gain double get_tx_gain(size_t chan = 0){ return this->get_tx_gain(ALL_GAINS, chan); } /*! * Get the TX gain range for the specified gain element. * For an empty name, calculate the overall gain range. * \param name the name of the gain element * \param chan the channel index 0 to N-1 * \return a gain range object */ virtual gain_range_t get_tx_gain_range(const std::string &name, size_t chan = 0) = 0; //! A convenience wrapper for getting overall TX gain range gain_range_t get_tx_gain_range(size_t chan = 0){ return this->get_tx_gain_range(ALL_GAINS, chan); } /*! * Get the names of the gain elements in the TX chain. * Gain elements are ordered from antenna to FPGA. * \param chan the channel index 0 to N-1 * \return a vector of gain element names */ virtual std::vector get_tx_gain_names(size_t chan = 0) = 0; /*! * Select the TX antenna on the frontend. * \param ant the antenna name * \param chan the channel index 0 to N-1 */ virtual void set_tx_antenna(const std::string &ant, size_t chan = 0) = 0; /*! * Get the selected TX antenna on the frontend. * \param chan the channel index 0 to N-1 * \return the antenna name */ virtual std::string get_tx_antenna(size_t chan = 0) = 0; /*! * Get a list of possible TX antennas on the frontend. * \param chan the channel index 0 to N-1 * \return a vector of antenna names */ virtual std::vector get_tx_antennas(size_t chan = 0) = 0; /*! * Get the locked status of the LO on the frontend. * \param chan the channel index 0 to N-1 * \return true for locked */ UHD_DEPRECATED bool get_tx_lo_locked(size_t chan = 0){ return this->get_tx_sensor("lo_locked", chan).to_bool(); } /*! * Set the TX bandwidth on the frontend. * \param bandwidth the bandwidth in Hz * \param chan the channel index 0 to N-1 */ virtual void set_tx_bandwidth(double bandwidth, size_t chan = 0) = 0; /*! * Get the TX bandwidth on the frontend. * \param chan the channel index 0 to N-1 * \return the bandwidth in Hz */ virtual double get_tx_bandwidth(size_t chan = 0) = 0; /*! * Get the range of the possible TX bandwidth settings. * \param chan the channel index 0 to N-1 * \return a range of bandwidths in Hz */ virtual meta_range_t get_tx_bandwidth_range(size_t chan = 0) = 0; /*! * Get the dboard interface object for the TX frontend. * The dboard interface gives access to GPIOs, SPI, I2C, low-speed ADC and DAC. * Use at your own risk! * \param chan the channel index 0 to N-1 * \return the dboard interface sptr */ virtual dboard_iface::sptr get_tx_dboard_iface(size_t chan = 0) = 0; /*! * Get an TX frontend sensor value. * \param name the name of the sensor * \param chan the channel index 0 to N-1 * \return a sensor value object */ virtual sensor_value_t get_tx_sensor(const std::string &name, size_t chan = 0) = 0; /*! * Get a list of possible TX frontend sensor names. * \param chan the channel index 0 to N-1 * \return a vector of sensor names */ virtual std::vector get_tx_sensor_names(size_t chan = 0) = 0; /*! * Set a constant TX DC offset value. * The value is complex to control both I and Q. * \param offset the dc offset (1.0 is full-scale) * \param chan the channel index 0 to N-1 */ virtual void set_tx_dc_offset(const std::complex &offset, size_t chan = ALL_CHANS) = 0; /*! * Set the TX frontend IQ imbalance correction. * Use this to adjust the magnitude and phase of I and Q. * * \param correction the complex correction (1.0 is full-scale) * \param chan the channel index 0 to N-1 */ virtual void set_tx_iq_balance(const std::complex &correction, size_t chan = ALL_CHANS) = 0; }; }} #endif /* INCLUDED_UHD_USRP_MULTI_USRP_HPP */ uhd-3.5.5/host/include/uhd/usrp/subdev_spec.hpp000066400000000000000000000064171224274632000215020ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_USRP_SUBDEV_SPEC_HPP #define INCLUDED_UHD_USRP_SUBDEV_SPEC_HPP #include #include #include #include namespace uhd{ namespace usrp{ /*! * A subdevice specification (daughterboard slot, subdevice) name pairing. */ struct UHD_API subdev_spec_pair_t : boost::equality_comparable{ //! The daughterboard slot name std::string db_name; //! The subdevice name std::string sd_name; /*! * Create a new subdevice specification pair from dboard and subdev names. * \param db_name the name of a daughterboard slot * \param sd_name the name of a subdevice on that daughterboard */ subdev_spec_pair_t( const std::string &db_name = "", const std::string &sd_name = "" ); }; //! overloaded comparison operator for subdev_spec_pair_t UHD_API bool operator==(const subdev_spec_pair_t &, const subdev_spec_pair_t &); /*! * A list of (daughterboard slot name, subdevice name) pairs: * * A subdevice specification represents a list of subdevices on a motherboard. * The subdevices specified may span across multiple daughterboards; * Hence the need for a subdevice specification over a simple list of strings. * Typically, the user will pass a RX or TX subdevice specification into the API, * and the implementation will infer the channel configuration from the specification. * * The subdevice specification can be represented as a markup-string. * The markup-string is a whitespace separated list of dboard:subdev pairs. * The first pair represents the subdevice for channel zero, * the second pair represents the subdevice for channel one, and so on. */ class UHD_API subdev_spec_t : public std::vector{ public: /*! * Create a subdev specification from a markup string. * \param markup the markup string */ subdev_spec_t(const std::string &markup = ""); /*! * Convert a subdev specification into a pretty print string. * \return a printable string representing the subdev specification */ std::string to_pp_string(void) const; /*! * Convert the subdevice specification into a markup string. * The markup string contains the delimiter symbols. * \return a string with delimiter markup */ std::string to_string(void) const; }; }} #endif /* INCLUDED_UHD_USRP_SUBDEV_SPEC_HPP */ uhd-3.5.5/host/include/uhd/utils/000077500000000000000000000000001224274632000166265ustar00rootroot00000000000000uhd-3.5.5/host/include/uhd/utils/CMakeLists.txt000066400000000000000000000020411224274632000213630ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # UHD_INSTALL(FILES algorithm.hpp assert_has.hpp assert_has.ipp atomic.hpp byteswap.hpp byteswap.ipp csv.hpp gain_group.hpp images.hpp log.hpp msg.hpp paths.hpp pimpl.hpp safe_call.hpp safe_main.hpp static.hpp tasks.hpp thread_priority.hpp DESTINATION ${INCLUDE_DIR}/uhd/utils COMPONENT headers ) uhd-3.5.5/host/include/uhd/utils/algorithm.hpp000066400000000000000000000064711224274632000213350ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_ALGORITHM_HPP #define INCLUDED_UHD_UTILS_ALGORITHM_HPP #include #include #include /*! * Useful templated functions and classes that I like to pretend are part of stl. * Many of the range wrapper functions come with recent versions of boost (1.43). */ namespace uhd{ /*! * A wrapper around std::sort that takes a range instead of an iterator. * * The elements are sorted into ascending order using the less-than operator. * This wrapper sorts the elements non-destructively into a new range. * Based on the builtin python function sorted(...) * * \param range the range of elements to be sorted * \return a new range with the elements sorted */ template inline Range sorted(const Range &range){ Range r(range); std::sort(boost::begin(r), boost::end(r)); return r; } /*! * A wrapper around std::reverse that takes a range instead of an iterator. * * The elements are reversed into descending order using the less-than operator. * This wrapper reverses the elements non-destructively into a new range. * Based on the builtin python function reversed(...) * * \param range the range of elements to be reversed * \return a new range with the elements reversed */ template inline Range reversed(const Range &range){ Range r(range); std::reverse(boost::begin(r), boost::end(r)); return r; } /*! * Is the value found within the elements in this range? * * Uses std::find to search the iterable for an element. * * \param range the elements to search through * \param value the match to look for in the range * \return true when the value is found in the range */ template inline bool has(const Range &range, const T &value){ return boost::end(range) != std::find(boost::begin(range), boost::end(range), value); } /*! * A templated clip implementation. * \param val the value to clip between an upper and lower limit * \param bound1 the upper or lower bound * \param bound2 the upper or lower bound * \return the value clipped at the bounds */ template inline T clip(const T &val, const T &bound1, const T &bound2){ const T minimum = std::min(bound1, bound2); if (val < minimum) return minimum; const T maximum = std::max(bound1, bound2); if (val > maximum) return maximum; return val; } } //namespace uhd #endif /* INCLUDED_UHD_UTILS_ALGORITHM_HPP */ uhd-3.5.5/host/include/uhd/utils/assert_has.hpp000066400000000000000000000030101224274632000214650ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_ASSERT_HAS_HPP #define INCLUDED_UHD_UTILS_ASSERT_HAS_HPP #include #include namespace uhd{ /*! * Check that an element is found in a container. * If not, throw a meaningful assertion error. * The "what" in the error will show what is * being set and a list of known good values. * * \param range a list of possible settings * \param value an element that may be in the list * \param what a description of what the value is * \throw assertion_error when elem not in list */ template void assert_has( const Range &range, const T &value, const std::string &what = "unknown" ); }//namespace uhd #include #endif /* INCLUDED_UHD_UTILS_ASSERT_HAS_HPP */ uhd-3.5.5/host/include/uhd/utils/assert_has.ipp000066400000000000000000000033471224274632000215030ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_ASSERT_HAS_IPP #define INCLUDED_UHD_UTILS_ASSERT_HAS_IPP #include #include #include #include #include namespace uhd{ template UHD_INLINE void assert_has( const Range &range, const T &value, const std::string &what ){ if (uhd::has(range, value)) return; std::string possible_values = ""; size_t i = 0; BOOST_FOREACH(const T &v, range){ if (i++ > 0) possible_values += ", "; possible_values += boost::lexical_cast(v); } throw uhd::assertion_error(str(boost::format( "assertion failed:\n" " %s is not a valid %s.\n" " possible values are: [%s].\n" ) % boost::lexical_cast(value) % what % possible_values )); } }//namespace uhd #endif /* INCLUDED_UHD_UTILS_ASSERT_HAS_IPP */ uhd-3.5.5/host/include/uhd/utils/atomic.hpp000066400000000000000000000134401224274632000206150ustar00rootroot00000000000000// // Copyright 2012-2013 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_ATOMIC_HPP #define INCLUDED_UHD_UTILS_ATOMIC_HPP #include #include #include #include #include #include #include #if BOOST_VERSION >= 104800 # define BOOST_IPC_DETAIL boost::interprocess::ipcdetail #else # define BOOST_IPC_DETAIL boost::interprocess::detail #endif namespace uhd{ //! A 32-bit integer that can be atomically accessed class UHD_API atomic_uint32_t{ public: //! Create a new atomic 32-bit integer, initialized to zero UHD_INLINE atomic_uint32_t(void){ this->write(0); } //! Compare with cmp, swap with newval if same, return old value UHD_INLINE boost::uint32_t cas(boost::uint32_t newval, boost::uint32_t cmp){ return BOOST_IPC_DETAIL::atomic_cas32(&_num, newval, cmp); } //! Sets the atomic integer to a new value UHD_INLINE void write(const boost::uint32_t newval){ BOOST_IPC_DETAIL::atomic_write32(&_num, newval); } //! Gets the current value of the atomic integer UHD_INLINE boost::uint32_t read(void){ return BOOST_IPC_DETAIL::atomic_read32(&_num); } //! Increment by 1 and return the old value UHD_INLINE boost::uint32_t inc(void){ return BOOST_IPC_DETAIL::atomic_inc32(&_num); } //! Decrement by 1 and return the old value UHD_INLINE boost::uint32_t dec(void){ return BOOST_IPC_DETAIL::atomic_dec32(&_num); } private: volatile boost::uint32_t _num; }; /*! * A reusable barrier to sync multiple threads. * All threads spin on wait() until count is reset. */ class UHD_API reusable_barrier{ public: //! Resize the barrier for N threads void resize(const size_t size){ _size = size; } /*! * Force the barrier wait to throw a boost::thread_interrupted * The threads were not getting the interruption_point on windows. */ void interrupt(void) { _done.inc(); } //! Wait on the barrier condition UHD_INLINE void wait(void) { if (_size == 1) return; //entry barrier with condition variable _entry_counter.inc(); _entry_counter.cas(0, _size); boost::mutex::scoped_lock lock(_mutex); while (_entry_counter.read() != 0) { this->check_interrupt(); _cond.timed_wait(lock, boost::posix_time::milliseconds(1)); } lock.unlock(); //unlock before notify _cond.notify_one(); //exit barrier to ensure known condition of entry count _exit_counter.inc(); _exit_counter.cas(0, _size); while (_exit_counter.read() != 0) this->check_interrupt(); } //! Wait on the barrier condition UHD_INLINE void wait_others(void) { while (_entry_counter.read() != (_size-1)) this->check_interrupt(); } private: size_t _size; atomic_uint32_t _entry_counter; atomic_uint32_t _exit_counter; atomic_uint32_t _done; boost::mutex _mutex; boost::condition_variable _cond; UHD_INLINE void check_interrupt(void) { if (_done.read() != 0) throw boost::thread_interrupted(); boost::this_thread::interruption_point(); boost::this_thread::yield(); } }; /*! * Spin-wait on a condition with a timeout. * \param cond an atomic variable to compare * \param value compare to atomic for true/false * \param timeout the timeout in seconds * \return true for cond == value, false for timeout */ UHD_INLINE bool spin_wait_with_timeout( atomic_uint32_t &cond, boost::uint32_t value, const double timeout ){ if (cond.read() == value) return true; const time_spec_t exit_time = time_spec_t::get_system_time() + time_spec_t(timeout); while (cond.read() != value){ if (time_spec_t::get_system_time() > exit_time) return false; boost::this_thread::interruption_point(); boost::this_thread::yield(); } return true; } /*! * Claimer class to provide synchronization for multi-thread access. * Claiming enables buffer classes to be used with a buffer queue. */ class simple_claimer{ public: simple_claimer(void){ this->release(); } UHD_INLINE void release(void){ _locked.write(0); } UHD_INLINE bool claim_with_wait(const double timeout){ if (spin_wait_with_timeout(_locked, 0, timeout)){ _locked.write(1); return true; } return false; } private: atomic_uint32_t _locked; }; } //namespace uhd #endif /* INCLUDED_UHD_UTILS_ATOMIC_HPP */ uhd-3.5.5/host/include/uhd/utils/byteswap.hpp000066400000000000000000000033351224274632000212010ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_BYTESWAP_HPP #define INCLUDED_UHD_UTILS_BYTESWAP_HPP #include #include /*! \file byteswap.hpp * Provide fast byteswaping routines for 16, 32, and 64 bit integers, * by using the system's native routines/intrinsics when available. */ namespace uhd{ //! perform a byteswap on a 16 bit integer boost::uint16_t byteswap(boost::uint16_t); //! perform a byteswap on a 32 bit integer boost::uint32_t byteswap(boost::uint32_t); //! perform a byteswap on a 64 bit integer boost::uint64_t byteswap(boost::uint64_t); //! network to host: short, long, or long-long template T ntohx(T); //! host to network: short, long, or long-long template T htonx(T); //! worknet to host: short, long, or long-long template T wtohx(T); //! host to worknet: short, long, or long-long template T htowx(T); } //namespace uhd #include #endif /* INCLUDED_UHD_UTILS_BYTESWAP_HPP */ uhd-3.5.5/host/include/uhd/utils/byteswap.ipp000066400000000000000000000100121224274632000211700ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_BYTESWAP_IPP #define INCLUDED_UHD_UTILS_BYTESWAP_IPP /*********************************************************************** * Platform-specific implementation details for byteswap below: **********************************************************************/ #if defined(BOOST_MSVC) //http://msdn.microsoft.com/en-us/library/a3140177%28VS.80%29.aspx #include UHD_INLINE boost::uint16_t uhd::byteswap(boost::uint16_t x){ return _byteswap_ushort(x); } UHD_INLINE boost::uint32_t uhd::byteswap(boost::uint32_t x){ return _byteswap_ulong(x); } UHD_INLINE boost::uint64_t uhd::byteswap(boost::uint64_t x){ return _byteswap_uint64(x); } #elif defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 3 UHD_INLINE boost::uint16_t uhd::byteswap(boost::uint16_t x){ return (x>>8) | (x<<8); //DNE return __builtin_bswap16(x); } UHD_INLINE boost::uint32_t uhd::byteswap(boost::uint32_t x){ return __builtin_bswap32(x); } UHD_INLINE boost::uint64_t uhd::byteswap(boost::uint64_t x){ return __builtin_bswap64(x); } #elif defined(UHD_PLATFORM_MACOS) #include UHD_INLINE boost::uint16_t uhd::byteswap(boost::uint16_t x){ return OSSwapInt16(x); } UHD_INLINE boost::uint32_t uhd::byteswap(boost::uint32_t x){ return OSSwapInt32(x); } UHD_INLINE boost::uint64_t uhd::byteswap(boost::uint64_t x){ return OSSwapInt64(x); } #elif defined(UHD_PLATFORM_LINUX) #include UHD_INLINE boost::uint16_t uhd::byteswap(boost::uint16_t x){ return bswap_16(x); } UHD_INLINE boost::uint32_t uhd::byteswap(boost::uint32_t x){ return bswap_32(x); } UHD_INLINE boost::uint64_t uhd::byteswap(boost::uint64_t x){ return bswap_64(x); } #else //http://www.koders.com/c/fidB93B34CD44F0ECF724F1A4EAE3854BA2FE692F59.aspx UHD_INLINE boost::uint16_t uhd::byteswap(boost::uint16_t x){ return (x>>8) | (x<<8); } UHD_INLINE boost::uint32_t uhd::byteswap(boost::uint32_t x){ return (boost::uint32_t(uhd::byteswap(boost::uint16_t(x&0xfffful)))<<16) | (uhd::byteswap(boost::uint16_t(x>>16))); } UHD_INLINE boost::uint64_t uhd::byteswap(boost::uint64_t x){ return (boost::uint64_t(uhd::byteswap(boost::uint32_t(x&0xffffffffull)))<<32) | (uhd::byteswap(boost::uint32_t(x>>32))); } #endif /*********************************************************************** * Define the templated network to/from host conversions **********************************************************************/ #include template UHD_INLINE T uhd::ntohx(T num){ #ifdef BOOST_BIG_ENDIAN return num; #else return uhd::byteswap(num); #endif } template UHD_INLINE T uhd::htonx(T num){ #ifdef BOOST_BIG_ENDIAN return num; #else return uhd::byteswap(num); #endif } template UHD_INLINE T uhd::wtohx(T num){ #ifdef BOOST_BIG_ENDIAN return uhd::byteswap(num); #else return num; #endif } template UHD_INLINE T uhd::htowx(T num){ #ifdef BOOST_BIG_ENDIAN return uhd::byteswap(num); #else return num; #endif } #endif /* INCLUDED_UHD_UTILS_BYTESWAP_IPP */ uhd-3.5.5/host/include/uhd/utils/csv.hpp000066400000000000000000000021541224274632000201340ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_CSV_HPP #define INCLUDED_UHD_UTILS_CSV_HPP #include #include #include #include namespace uhd{ namespace csv{ typedef std::vector row_type; typedef std::vector rows_type; //! Convert an input stream to csv rows. UHD_API rows_type to_rows(std::istream &input); }} //namespace uhd::csv #endif /* INCLUDED_UHD_UTILS_CSV_HPP */ uhd-3.5.5/host/include/uhd/utils/gain_group.hpp000066400000000000000000000070741224274632000215010ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_GAIN_GROUP_HPP #define INCLUDED_UHD_UTILS_GAIN_GROUP_HPP #include #include #include #include #include #include #include namespace uhd{ /*! * A set of function to control a gain element. */ struct UHD_API gain_fcns_t{ boost::function get_range; boost::function get_value; boost::function set_value; }; class UHD_API gain_group : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Get the gain range for the gain element specified by name. * For an empty name, get the overall gain range for this group. * Overall step is defined as the minimum step size. * \param name name of the gain element (optional) * \return a gain range with overall min, max, step */ virtual gain_range_t get_range(const std::string &name = "") = 0; /*! * Get the gain value for the gain element specified by name. * For an empty name, get the overall gain value for this group. * \param name name of the gain element (optional) * \return a gain value of the element or all elements */ virtual double get_value(const std::string &name = "") = 0; /*! * Set the gain value for the gain element specified by name. * For an empty name, set the overall gain value for this group. * The power will be distributed across individual gain elements. * The semantics of how to do this are determined by the priority. * \param gain the gain to set for the lement or across the group * \param name name of the gain element (optional) */ virtual void set_value(double gain, const std::string &name = "") = 0; /*! * Get a list of names of registered gain elements. * The names are in the order that they were registered. * \return a vector of gain name strings */ virtual const std::vector get_names(void) = 0; /*! * Register a set of gain functions into this group: * * The name should be a unique and non-empty name. * Othwerwise, the implementation will rename it. * * Priority determines how power will be distributed * with higher priorities getting the power first, * and lower priorities getting the remainder power. * * \param name the name of the gain element * \param gain_fcns the set of gain functions * \param priority the priority of the gain element */ virtual void register_fcns( const std::string &name, const gain_fcns_t &gain_fcns, size_t priority = 0 ) = 0; /*! * Make a new empty gain group. * \return a gain group object. */ static sptr make(void); }; } //namespace uhd #endif /* INCLUDED_UHD_UTILS_GAIN_GROUP_HPP */ uhd-3.5.5/host/include/uhd/utils/images.hpp000066400000000000000000000033471224274632000206130ustar00rootroot00000000000000// // Copyright 2010,2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_IMAGES_HPP #define INCLUDED_UHD_UTILS_IMAGES_HPP #include #include namespace uhd{ /*! * Search for an image in the system image paths: * Search compiled-in paths and environment variable paths * for a specific image file with the provided file name. * \param image_name the name of the file * \return the full system path to the file * \throw exception if the image was not found */ UHD_API std::string find_image_path(const std::string &image_name); /*! * Search for the location of the UHD Images Downloader script. * \return the full system path to uhd_images_downloader.py */ UHD_API std::string find_images_downloader(void); /*! * Return the error string for recommending using the UHD Images Downloader. * String depends on OS. * \return the message suggesting the use of uhd_images_downloader.py */ UHD_API std::string print_images_error(void); } //namespace uhd #endif /* INCLUDED_UHD_UTILS_IMAGES_HPP */ uhd-3.5.5/host/include/uhd/utils/log.hpp000066400000000000000000000062371224274632000201300ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_LOG_HPP #define INCLUDED_UHD_UTILS_LOG_HPP #include #include #include #include #include /*! \file log.hpp * The UHD logging facility. * * The logger enables UHD library code to easily log events into a file. * Log entries are time-stamped and stored with file, line, and function. * Each call to the UHD_LOG macros is synchronous and thread-safe. * * The log file can be found in the path /uhd.log, * where is the user or system's temporary directory. * To override , set the UHD_TEMP_PATH environment variable. * * All log messages with verbosity greater than or equal to the log level * (in other words, as often or less often than the current log level) * are recorded into the log file. All other messages are sent to null. * * The default log level is "never", but can be overridden: * - at compile time by setting the pre-processor define UHD_LOG_LEVEL. * - at runtime by setting the environment variable UHD_LOG_LEVEL. * * UHD_LOG_LEVEL can be the name of a verbosity enum or integer value: * - Example pre-processor define: -DUHD_LOG_LEVEL=3 * - Example pre-processor define: -DUHD_LOG_LEVEL=regularly * - Example environment variable: export UHD_LOG_LEVEL=3 * - Example environment variable: export UHD_LOG_LEVEL=regularly */ /*! * A UHD logger macro with configurable verbosity. * Usage: UHD_LOGV(very_rarely) << "the log message" << std::endl; */ #define UHD_LOGV(verbosity) \ uhd::_log::log(uhd::_log::verbosity, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION)() /*! * A UHD logger macro with default verbosity. * Usage: UHD_LOG << "the log message" << std::endl; */ #define UHD_LOG \ UHD_LOGV(regularly) namespace uhd{ namespace _log{ //! Verbosity levels for the logger enum verbosity_t{ always = 1, often = 2, regularly = 3, rarely = 4, very_rarely = 5, never = 6, }; //! Internal logging object (called by UHD_LOG macros) class UHD_API log{ public: log( const verbosity_t verbosity, const std::string &file, const unsigned int line, const std::string &function ); ~log(void); std::ostream &operator()(void); private: UHD_PIMPL_DECL(impl) _impl; }; }} //namespace uhd::_log #endif /* INCLUDED_UHD_UTILS_LOG_HPP */ uhd-3.5.5/host/include/uhd/utils/msg.hpp000066400000000000000000000042201224274632000201230ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_MSG_HPP #define INCLUDED_UHD_UTILS_MSG_HPP #include #include #include #include /*! * A UHD message macro with configurable type. * Usage: UHD_MSG(warning) << "some warning message" << std::endl; */ #define UHD_MSG(type) \ uhd::msg::_msg(uhd::msg::type)() //! Helpful debug tool to print site info #define UHD_HERE() \ UHD_MSG(status) << __FILE__ << ":" << __LINE__ << std::endl //! Helpful debug tool to print a variable #define UHD_VAR(var) \ UHD_MSG(status) << #var << " = " << var << std::endl; namespace uhd{ namespace msg{ //! Possible message types enum type_t{ status = 's', warning = 'w', error = 'e', fastpath= 'f' }; //! Typedef for a user-registered message handler typedef void (*handler_t)(type_t, const std::string &); /*! * Register the handler for uhd system messages. * Only one handler can be registered at once. * This replaces the default std::cout/cerr handler. * \param handler a new handler callback function */ UHD_API void register_handler(const handler_t &handler); //! Internal message object (called by UHD_MSG macro) class UHD_API _msg{ public: _msg(const type_t type); ~_msg(void); std::ostream &operator()(void); private: UHD_PIMPL_DECL(impl) _impl; }; }} //namespace uhd::msg #endif /* INCLUDED_UHD_UTILS_MSG_HPP */ uhd-3.5.5/host/include/uhd/utils/paths.hpp000066400000000000000000000023211224274632000204540ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_PATHS_HPP #define INCLUDED_UHD_UTILS_PATHS_HPP #include #include namespace uhd{ //! Get a string representing the system's temporary directory UHD_API std::string get_tmp_path(void); //! Get a string representing the system's appdata directory UHD_API std::string get_app_path(void); //! Get a string representing the system's pkg data directory UHD_API std::string get_pkg_data_path(void); } //namespace uhd #endif /* INCLUDED_UHD_UTILS_PATHS_HPP */ uhd-3.5.5/host/include/uhd/utils/pimpl.hpp000066400000000000000000000035751224274632000204720ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_PIMPL_HPP #define INCLUDED_UHD_UTILS_PIMPL_HPP #include #include /*! \file pimpl.hpp * "Pimpl idiom" (pointer to implementation idiom). * The UHD_PIMPL_* macros simplify code overhead for declaring and making pimpls. * * Each pimpl is implemented as a shared pointer to the implementation: * - The container class will not have to deallocate the pimpl. * - The container class will use the pimpl as a regular pointer. * - Usage: _impl->method(arg0, arg1) * - Usage: _impl->member = value; * * \see http://en.wikipedia.org/wiki/Opaque_pointer */ /*! * Make a declaration for a pimpl in a header file. * - Usage: UHD_PIMPL_DECL(impl) _impl; * \param _name the name of the pimpl class */ #define UHD_PIMPL_DECL(_name) \ struct _name; boost::shared_ptr<_name> /*! * Make an instance of a pimpl in a source file. * - Usage: _impl = UHD_PIMPL_MAKE(impl, ()); * - Usage: _impl = UHD_PIMPL_MAKE(impl, (a0, a1)); * \param _name the name of the pimpl class * \param _args the constructor args for the pimpl */ #define UHD_PIMPL_MAKE(_name, _args) \ boost::shared_ptr<_name>(new _name _args) #endif /* INCLUDED_UHD_UTILS_PIMPL_HPP */ uhd-3.5.5/host/include/uhd/utils/safe_call.hpp000066400000000000000000000030141224274632000212460ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_SAFE_CALL_HPP #define INCLUDED_UHD_UTILS_SAFE_CALL_HPP #include #include #include //! helper macro for safe call to produce warnings #define _UHD_SAFE_CALL_WARNING(code, what) UHD_LOGV(rarely) << \ UHD_THROW_SITE_INFO("Exception caught in safe-call.") + #code + " -> " + what \ ; /*! * A safe-call catches all exceptions thrown by code, * and creates a verbose warning about the exception. * Usage: UHD_SAFE_CALL(some_code_to_call();) * \param code the block of code to call safely */ #define UHD_SAFE_CALL(code) \ try{code} \ catch(const std::exception &e){ \ _UHD_SAFE_CALL_WARNING(code, e.what()); \ } \ catch(...){ \ _UHD_SAFE_CALL_WARNING(code, "unknown exception"); \ } #endif /* INCLUDED_UHD_UTILS_SAFE_CALL_HPP */ uhd-3.5.5/host/include/uhd/utils/safe_main.hpp000066400000000000000000000030241224274632000212600ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_SAFE_MAIN_HPP #define INCLUDED_UHD_UTILS_SAFE_MAIN_HPP #include #include #include /*! * Defines a safe wrapper that places a catch-all around main. * If an exception is thrown, it prints to stderr and returns. * Usage: int UHD_SAFE_MAIN(int argc, char *argv[]){ main code here } * \param _argc the declaration for argc * \param _argv the declaration for argv */ #define UHD_SAFE_MAIN(_argc, _argv) _main(int, char*[]); \ int main(int argc, char *argv[]){ \ try { \ return _main(argc, argv); \ } catch(const std::exception &e) { \ std::cerr << "Error: " << e.what() << std::endl; \ } catch(...) { \ std::cerr << "Error: unknown exception" << std::endl; \ } \ return ~0; \ } int _main(_argc, _argv) #endif /* INCLUDED_UHD_UTILS_SAFE_MAIN_HPP */ uhd-3.5.5/host/include/uhd/utils/static.hpp000066400000000000000000000031311224274632000206240ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_STATIC_HPP #define INCLUDED_UHD_UTILS_STATIC_HPP #include /*! * Defines a function that implements the "construct on first use" idiom * \param _t the type definition for the instance * \param _x the name of the defined function * \return a reference to the lazy instance */ #define UHD_SINGLETON_FCN(_t, _x) static _t &_x(){static _t _x; return _x;} /*! * Defines a static code block that will be called before main() * The static block will catch and print exceptions to std error. * \param _x the unique name of the fixture (unique per source) */ #define UHD_STATIC_BLOCK(_x) \ void _x(void); \ static _uhd_static_fixture _x##_fixture(&_x, #_x); \ void _x(void) //! Helper for static block, constructor calls function struct UHD_API _uhd_static_fixture{ _uhd_static_fixture(void (*)(void), const char *); }; #endif /* INCLUDED_UHD_UTILS_STATIC_HPP */ uhd-3.5.5/host/include/uhd/utils/tasks.hpp000066400000000000000000000033301224274632000204630ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_TASKS_HPP #define INCLUDED_UHD_UTILS_TASKS_HPP #include #include #include #include namespace uhd{ class UHD_API task : boost::noncopyable{ public: typedef boost::shared_ptr sptr; typedef boost::function task_fcn_type; /*! * Create a new task object with function callback. * The task function callback will be run in a loop. * until the thread is interrupted by the deconstructor. * * A task should return in a reasonable amount of time * or may block forever under the following conditions: * - The blocking call is interruptible. * - The task polls the interrupt condition. * * \param task_fcn the task callback function * \return a new task object */ static sptr make(const task_fcn_type &task_fcn); }; } //namespace uhd #endif /* INCLUDED_UHD_UTILS_TASKS_HPP */ uhd-3.5.5/host/include/uhd/utils/thread_priority.hpp000066400000000000000000000036231224274632000225530ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_UTILS_THREAD_PRIORITY_HPP #define INCLUDED_UHD_UTILS_THREAD_PRIORITY_HPP #include namespace uhd{ static const float default_thread_priority = float(0.5); /*! * Set the scheduling priority on the current thread. * * A new thread or calling process should make this call * with the defailts this to enable realtime scheduling. * * A priority of zero corresponds to normal priority. * Positive priority values are higher than normal. * Negative priority values are lower than normal. * * \param priority a value between -1 and 1 * \param realtime true to use realtime mode * \throw exception on set priority failure */ UHD_API void set_thread_priority( float priority = default_thread_priority, bool realtime = true ); /*! * Set the scheduling priority on the current thread. * Same as set_thread_priority but does not throw on failure. * \return true on success, false on failure */ UHD_API bool set_thread_priority_safe( float priority = default_thread_priority, bool realtime = true ); } //namespace uhd #endif /* INCLUDED_UHD_UTILS_THREAD_PRIORITY_HPP */ uhd-3.5.5/host/include/uhd/version.hpp000066400000000000000000000026421224274632000176700ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_UHD_VERSION_HPP #define INCLUDED_UHD_VERSION_HPP #include #include /*! * The ABI version string that the client application builds against. * Call get_abi_string() to check this against the library build. * The format is oldest API compatible release - ABI compat number. * The compatibility number allows pre-release ABI to be versioned. */ #define UHD_VERSION_ABI_STRING "3.4.0-3" namespace uhd{ //! Get the version string (dotted version number + build info) UHD_API std::string get_version_string(void); //! Get the ABI compatibility string for this build of the library UHD_API std::string get_abi_string(void); } //namespace uhd #endif /* INCLUDED_UHD_VERSION_HPP */ uhd-3.5.5/host/lib/000077500000000000000000000000001224274632000140315ustar00rootroot00000000000000uhd-3.5.5/host/lib/CMakeLists.txt000066400000000000000000000117471224274632000166030ustar00rootroot00000000000000# # Copyright 2010-2011,2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Helpful Macros ######################################################################## MACRO(LIBUHD_APPEND_SOURCES) LIST(APPEND libuhd_sources ${ARGV}) ENDMACRO(LIBUHD_APPEND_SOURCES) MACRO(LIBUHD_APPEND_LIBS) LIST(APPEND libuhd_libs ${ARGV}) ENDMACRO(LIBUHD_APPEND_LIBS) MACRO(LIBUHD_PYTHON_GEN_SOURCE pyfile outfile) #ensure that the directory exists for outfile GET_FILENAME_COMPONENT(outfile_dir ${outfile} PATH) FILE(MAKE_DIRECTORY ${outfile_dir}) #make the outfile depend on the python script ADD_CUSTOM_COMMAND( OUTPUT ${outfile} DEPENDS ${pyfile} ${LIBUHD_PYTHON_GEN_SOURCE_DEPS} COMMAND ${PYTHON_EXECUTABLE} -B ${pyfile} ${outfile} COMMENT "Generating ${outfile}" ) #make libuhd depend on the outfile LIBUHD_APPEND_SOURCES(${outfile}) ENDMACRO(LIBUHD_PYTHON_GEN_SOURCE) MACRO(INCLUDE_SUBDIRECTORY subdir) #insert the current directories on the front of the list LIST(INSERT _cmake_source_dirs 0 ${CMAKE_CURRENT_SOURCE_DIR}) LIST(INSERT _cmake_binary_dirs 0 ${CMAKE_CURRENT_BINARY_DIR}) #set the current directories to the names of the subdirs SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/${subdir}) SET(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/${subdir}) #include the subdirectory CMakeLists to run it FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt) #reset the value of the current directories LIST(GET _cmake_source_dirs 0 CMAKE_CURRENT_SOURCE_DIR) LIST(GET _cmake_binary_dirs 0 CMAKE_CURRENT_BINARY_DIR) #pop the subdir names of the front of the list LIST(REMOVE_AT _cmake_source_dirs 0) LIST(REMOVE_AT _cmake_binary_dirs 0) ENDMACRO(INCLUDE_SUBDIRECTORY) ######################################################################## # Include subdirectories (different than add) ######################################################################## INCLUDE_SUBDIRECTORY(ic_reg_maps) INCLUDE_SUBDIRECTORY(types) INCLUDE_SUBDIRECTORY(convert) INCLUDE_SUBDIRECTORY(transport) INCLUDE_SUBDIRECTORY(usrp) INCLUDE_SUBDIRECTORY(utils) ######################################################################## # Setup UHD_VERSION_STRING for version.cpp ######################################################################## CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/version.cpp ${CMAKE_CURRENT_BINARY_DIR}/version.cpp @ONLY) ######################################################################## # Append to the list of sources for lib uhd ######################################################################## LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/deprecated.cpp ${CMAKE_CURRENT_SOURCE_DIR}/device.cpp ${CMAKE_CURRENT_SOURCE_DIR}/exception.cpp ${CMAKE_CURRENT_SOURCE_DIR}/property_tree.cpp ${CMAKE_CURRENT_BINARY_DIR}/version.cpp ) ######################################################################## # Add DLL resource file to Windows build ######################################################################## IF(MSVC) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/uhd.rc.in ${CMAKE_CURRENT_BINARY_DIR}/uhd.rc @ONLY) LIST(APPEND libuhd_sources ${CMAKE_CURRENT_BINARY_DIR}/uhd.rc) ENDIF(MSVC) ######################################################################## # Setup libuhd library ######################################################################## ADD_LIBRARY(uhd SHARED ${libuhd_sources}) TARGET_LINK_LIBRARIES(uhd ${Boost_LIBRARIES} ${libuhd_libs}) SET_TARGET_PROPERTIES(uhd PROPERTIES DEFINE_SYMBOL "UHD_DLL_EXPORTS") IF(NOT LIBUHDDEV_PKG) SET_TARGET_PROPERTIES(uhd PROPERTIES SOVERSION "${UHD_VERSION_MAJOR}") SET_TARGET_PROPERTIES(uhd PROPERTIES VERSION "${UHD_VERSION_MAJOR}.${UHD_VERSION_MINOR}") ENDIF(NOT LIBUHDDEV_PKG) IF(DEFINED LIBUHD_OUTPUT_NAME) SET_TARGET_PROPERTIES(uhd PROPERTIES OUTPUT_NAME ${LIBUHD_OUTPUT_NAME}) ENDIF(DEFINED LIBUHD_OUTPUT_NAME) IF(NOT UHDHOST_PKG) #Syntax makes it unusable by UHD_INSTALL INSTALL(TARGETS uhd LIBRARY DESTINATION ${LIBRARY_DIR} COMPONENT libraries # .so file ARCHIVE DESTINATION ${LIBRARY_DIR} COMPONENT libraries # .lib file RUNTIME DESTINATION ${RUNTIME_DIR} COMPONENT libraries # .dll file ) ENDIF(NOT UHDHOST_PKG) uhd-3.5.5/host/lib/convert/000077500000000000000000000000001224274632000155115ustar00rootroot00000000000000uhd-3.5.5/host/lib/convert/CMakeLists.txt000066400000000000000000000107311224274632000202530ustar00rootroot00000000000000# # Copyright 2011-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## INCLUDE(CheckIncludeFileCXX) MESSAGE(STATUS "") ######################################################################## # Look for Orc support ######################################################################## FIND_PACKAGE(PkgConfig) IF(PKG_CONFIG_FOUND) PKG_CHECK_MODULES(ORC "orc-0.4 > 0.4.11") ENDIF(PKG_CONFIG_FOUND) FIND_PROGRAM(ORCC_EXECUTABLE orcc) LIBUHD_REGISTER_COMPONENT("ORC" ENABLE_ORC ON "ENABLE_LIBUHD;ORC_FOUND;ORCC_EXECUTABLE" OFF) IF(ENABLE_ORC) INCLUDE_DIRECTORIES(${ORC_INCLUDE_DIRS}) LINK_DIRECTORIES(${ORC_LIBRARY_DIRS}) ENABLE_LANGUAGE(C) SET(orcc_src ${CMAKE_CURRENT_SOURCE_DIR}/convert_orc.orc) GET_FILENAME_COMPONENT(orc_file_name_we ${orcc_src} NAME_WE) SET(orcc_gen ${CMAKE_CURRENT_BINARY_DIR}/${orc_file_name_we}.c) MESSAGE(STATUS "Orc found, enabling Orc support.") ADD_CUSTOM_COMMAND( COMMAND ${ORCC_EXECUTABLE} --implementation -o ${orcc_gen} ${orcc_src} DEPENDS ${orcc_src} OUTPUT ${orcc_gen} ) LIBUHD_APPEND_SOURCES(${orcc_gen}) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/convert_with_orc.cpp ) LIBUHD_APPEND_LIBS(${ORC_LIBRARIES}) ELSE(ENABLE_ORC) MESSAGE(STATUS "Orc not found, disabling orc support.") ENDIF(ENABLE_ORC) ######################################################################## # Check for SSE2 SIMD headers ######################################################################## IF(CMAKE_COMPILER_IS_GNUCXX) SET(EMMINTRIN_FLAGS -msse2) ELSEIF(MSVC) SET(EMMINTRIN_FLAGS /arch:SSE2) ENDIF() SET(CMAKE_REQUIRED_FLAGS ${EMMINTRIN_FLAGS}) CHECK_INCLUDE_FILE_CXX(emmintrin.h HAVE_EMMINTRIN_H) UNSET(CMAKE_REQUIRED_FLAGS) IF(HAVE_EMMINTRIN_H) SET(convert_with_sse2_sources ${CMAKE_CURRENT_SOURCE_DIR}/sse2_sc16_to_fc64.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_sc16_to_fc32.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_sc8_to_fc64.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_sc8_to_fc32.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_fc64_to_sc16.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_fc32_to_sc16.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_fc64_to_sc8.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sse2_fc32_to_sc8.cpp ) SET_SOURCE_FILES_PROPERTIES( ${convert_with_sse2_sources} PROPERTIES COMPILE_FLAGS "${EMMINTRIN_FLAGS}" ) LIBUHD_APPEND_SOURCES(${convert_with_sse2_sources}) ENDIF(HAVE_EMMINTRIN_H) ######################################################################## # Check for NEON SIMD headers ######################################################################## IF(CMAKE_COMPILER_IS_GNUCXX) SET(NEON_FLAGS "-mfloat-abi=softfp -mfpu=neon") SET(CMAKE_REQUIRED_FLAGS ${NEON_FLAGS}) CHECK_INCLUDE_FILE_CXX(arm_neon.h HAVE_ARM_NEON_H) UNSET(CMAKE_REQUIRED_FLAGS) ENDIF(CMAKE_COMPILER_IS_GNUCXX) IF(HAVE_ARM_NEON_H) SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/convert_with_neon.cpp PROPERTIES COMPILE_FLAGS "${NEON_FLAGS}" ) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/convert_with_neon.cpp ) ENDIF() ######################################################################## # Convert types generation ######################################################################## INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_convert_general.py ${CMAKE_CURRENT_BINARY_DIR}/convert_general.cpp ) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/convert_with_tables.cpp ${CMAKE_CURRENT_SOURCE_DIR}/convert_impl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/convert_item32.cpp ) uhd-3.5.5/host/lib/convert/convert_common.hpp000066400000000000000000000233461224274632000212620ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_CONVERT_COMMON_HPP #define INCLUDED_LIBUHD_CONVERT_COMMON_HPP #include #include #include #include #define _DECLARE_CONVERTER(name, in_form, num_in, out_form, num_out, prio) \ struct name : public uhd::convert::converter{ \ static sptr make(void){return sptr(new name());} \ double scale_factor; \ void set_scalar(const double s){scale_factor = s;} \ void operator()(const input_type&, const output_type&, const size_t); \ }; \ UHD_STATIC_BLOCK(__register_##name##_##prio){ \ uhd::convert::id_type id; \ id.input_format = #in_form; \ id.num_inputs = num_in; \ id.output_format = #out_form; \ id.num_outputs = num_out; \ uhd::convert::register_converter(id, &name::make, prio); \ } \ void name::operator()( \ const input_type &inputs, const output_type &outputs, const size_t nsamps \ ) #define DECLARE_CONVERTER(in_form, num_in, out_form, num_out, prio) \ _DECLARE_CONVERTER(__convert_##in_form##_##num_in##_##out_form##_##num_out##_##prio, in_form, num_in, out_form, num_out, prio) /*********************************************************************** * Setup priorities **********************************************************************/ static const int PRIORITY_GENERAL = 0; static const int PRIORITY_EMPTY = -1; #ifdef __ARM_NEON__ static const int PRIORITY_LIBORC = 3; static const int PRIORITY_SIMD = 2; //neon conversions could be implemented better, orc wins static const int PRIORITY_TABLE = 1; //tables require large cache, so they are slower on arm #else static const int PRIORITY_LIBORC = 2; static const int PRIORITY_SIMD = 3; static const int PRIORITY_TABLE = 1; #endif /*********************************************************************** * Typedefs **********************************************************************/ typedef std::complex fc64_t; typedef std::complex fc32_t; typedef std::complex sc32_t; typedef std::complex sc16_t; typedef std::complex sc8_t; typedef double f64_t; typedef float f32_t; typedef boost::int32_t s32_t; typedef boost::int16_t s16_t; typedef boost::int8_t s8_t; typedef boost::uint32_t item32_t; typedef item32_t (*xtox_t)(item32_t); /*********************************************************************** * Convert xx to items32 sc16 buffer **********************************************************************/ template UHD_INLINE item32_t xx_to_item32_sc16_x1( const std::complex &num, const double scale_factor ){ boost::uint16_t real = boost::int16_t(num.real()*float(scale_factor)); boost::uint16_t imag = boost::int16_t(num.imag()*float(scale_factor)); return (item32_t(real) << 16) | (item32_t(imag) << 0); } template <> UHD_INLINE item32_t xx_to_item32_sc16_x1( const sc16_t &num, const double ){ boost::uint16_t real = boost::int16_t(num.real()); boost::uint16_t imag = boost::int16_t(num.imag()); return (item32_t(real) << 16) | (item32_t(imag) << 0); } template UHD_INLINE void xx_to_item32_sc16( const std::complex *input, item32_t *output, const size_t nsamps, const double scale_factor ){ for (size_t i = 0; i < nsamps; i++){ const item32_t item = xx_to_item32_sc16_x1(input[i], scale_factor); output[i] = to_wire(item); } } /*********************************************************************** * Convert items32 sc16 buffer to xx **********************************************************************/ template UHD_INLINE std::complex item32_sc16_x1_to_xx( const item32_t item, const double scale_factor ){ return std::complex( T(boost::int16_t(item >> 16)*float(scale_factor)), T(boost::int16_t(item >> 0)*float(scale_factor)) ); } template <> UHD_INLINE sc16_t item32_sc16_x1_to_xx( const item32_t item, const double ){ return sc16_t( boost::int16_t(item >> 16), boost::int16_t(item >> 0) ); } template UHD_INLINE void item32_sc16_to_xx( const item32_t *input, std::complex *output, const size_t nsamps, const double scale_factor ){ for (size_t i = 0; i < nsamps; i++){ const item32_t item_i = to_host(input[i]); output[i] = item32_sc16_x1_to_xx(item_i, scale_factor); } } /*********************************************************************** * Convert xx to items32 sc8 buffer **********************************************************************/ template UHD_INLINE item32_t xx_to_item32_sc8_x1( const std::complex &in0, const std::complex &in1, const double scale_factor ){ boost::uint8_t real0 = boost::int8_t(in0.real()*float(scale_factor)); boost::uint8_t imag0 = boost::int8_t(in0.imag()*float(scale_factor)); boost::uint8_t real1 = boost::int8_t(in1.real()*float(scale_factor)); boost::uint8_t imag1 = boost::int8_t(in1.imag()*float(scale_factor)); return (item32_t(real0) << 8) | (item32_t(imag0) << 0) | (item32_t(real1) << 24) | (item32_t(imag1) << 16) ; } template <> UHD_INLINE item32_t xx_to_item32_sc8_x1( const sc16_t &in0, const sc16_t &in1, const double ){ boost::uint8_t real0 = boost::int8_t(in0.real()); boost::uint8_t imag0 = boost::int8_t(in0.imag()); boost::uint8_t real1 = boost::int8_t(in1.real()); boost::uint8_t imag1 = boost::int8_t(in1.imag()); return (item32_t(real0) << 8) | (item32_t(imag0) << 0) | (item32_t(real1) << 24) | (item32_t(imag1) << 16) ; } template <> UHD_INLINE item32_t xx_to_item32_sc8_x1( const sc8_t &in0, const sc8_t &in1, const double ){ boost::uint8_t real0 = boost::int8_t(in0.real()); boost::uint8_t imag0 = boost::int8_t(in0.imag()); boost::uint8_t real1 = boost::int8_t(in1.real()); boost::uint8_t imag1 = boost::int8_t(in1.imag()); return (item32_t(real0) << 8) | (item32_t(imag0) << 0) | (item32_t(real1) << 24) | (item32_t(imag1) << 16) ; } template UHD_INLINE void xx_to_item32_sc8( const std::complex *input, item32_t *output, const size_t nsamps, const double scale_factor ){ const size_t num_pairs = nsamps/2; for (size_t i = 0, j = 0; i < num_pairs; i++, j+=2){ const item32_t item = xx_to_item32_sc8_x1(input[j], input[j+1], scale_factor); output[i] = to_wire(item); } if (nsamps != num_pairs*2){ const item32_t item = xx_to_item32_sc8_x1(input[nsamps-1], std::complex(0), scale_factor); output[num_pairs] = to_wire(item); } } /*********************************************************************** * Convert items32 sc8 buffer to xx **********************************************************************/ template UHD_INLINE void item32_sc8_x1_to_xx( const item32_t item, std::complex &out0, std::complex &out1, const double scale_factor ){ out0 = std::complex( T(boost::int8_t(item >> 8)*float(scale_factor)), T(boost::int8_t(item >> 0)*float(scale_factor)) ); out1 = std::complex( T(boost::int8_t(item >> 24)*float(scale_factor)), T(boost::int8_t(item >> 16)*float(scale_factor)) ); } template <> UHD_INLINE void item32_sc8_x1_to_xx( const item32_t item, sc16_t &out0, sc16_t &out1, const double ){ out0 = sc16_t( boost::int16_t(boost::int8_t(item >> 8)), boost::int16_t(boost::int8_t(item >> 0)) ); out1 = sc16_t( boost::int16_t(boost::int8_t(item >> 24)), boost::int16_t(boost::int8_t(item >> 16)) ); } template <> UHD_INLINE void item32_sc8_x1_to_xx( const item32_t item, sc8_t &out0, sc8_t &out1, const double ){ out0 = sc8_t( boost::int8_t(boost::int8_t(item >> 8)), boost::int8_t(boost::int8_t(item >> 0)) ); out1 = sc8_t( boost::int8_t(boost::int8_t(item >> 24)), boost::int8_t(boost::int8_t(item >> 16)) ); } template UHD_INLINE void item32_sc8_to_xx( const item32_t *input, std::complex *output, const size_t nsamps, const double scale_factor ){ input = reinterpret_cast(size_t(input) & ~0x3); std::complex dummy; size_t num_samps = nsamps; if ((size_t(input) & 0x3) != 0){ const item32_t item0 = to_host(*input++); item32_sc8_x1_to_xx(item0, dummy, *output++, scale_factor); num_samps--; } const size_t num_pairs = num_samps/2; for (size_t i = 0, j = 0; i < num_pairs; i++, j+=2){ const item32_t item_i = to_host(input[i]); item32_sc8_x1_to_xx(item_i, output[j], output[j+1], scale_factor); } if (num_samps != num_pairs*2){ const item32_t item_n = to_host(input[num_pairs]); item32_sc8_x1_to_xx(item_n, output[num_samps-1], dummy, scale_factor); } } #endif /* INCLUDED_LIBUHD_CONVERT_COMMON_HPP */ uhd-3.5.5/host/lib/convert/convert_impl.cpp000066400000000000000000000126511224274632000207230ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include using namespace uhd; bool convert::operator==(const convert::id_type &lhs, const convert::id_type &rhs){ return true and (lhs.input_format == rhs.input_format) and (lhs.num_inputs == rhs.num_inputs) and (lhs.output_format == rhs.output_format) and (lhs.num_outputs == rhs.num_outputs) ; } std::string convert::id_type::to_pp_string(void) const{ return str(boost::format( "conversion ID\n" " Input format: %s\n" " Num inputs: %d\n" " Output format: %s\n" " Num outputs: %d\n" ) % this->input_format % this->num_inputs % this->output_format % this->num_outputs ); } /*********************************************************************** * Setup the table registry **********************************************************************/ typedef uhd::dict > fcn_table_type; UHD_SINGLETON_FCN(fcn_table_type, get_table); /*********************************************************************** * The registry functions **********************************************************************/ void uhd::convert::register_converter( const id_type &id, const function_type &fcn, const priority_type prio ){ get_table()[id][prio] = fcn; //----------------------------------------------------------------// UHD_LOGV(always) << "register_converter: " << id.to_pp_string() << std::endl << " prio: " << prio << std::endl << std::endl ; //----------------------------------------------------------------// } /*********************************************************************** * The converter functions **********************************************************************/ convert::function_type convert::get_converter( const id_type &id, const priority_type prio ){ if (not get_table().has_key(id)) throw uhd::key_error( "Cannot find a conversion routine for " + id.to_pp_string()); //find a matching priority priority_type best_prio = -1; BOOST_FOREACH(priority_type prio_i, get_table()[id].keys()){ if (prio_i == prio) return get_table()[id][prio]; best_prio = std::max(best_prio, prio_i); } //wanted a specific prio, didnt find if (prio != -1) throw uhd::key_error( "Cannot find a conversion routine [with prio] for " + id.to_pp_string()); //otherwise, return best prio return get_table()[id][best_prio]; } /*********************************************************************** * Mappings for item format to byte size for all items we can **********************************************************************/ typedef uhd::dict item_size_type; UHD_SINGLETON_FCN(item_size_type, get_item_size_table); void convert::register_bytes_per_item( const std::string &format, const size_t size ){ get_item_size_table()[format] = size; } size_t convert::get_bytes_per_item(const std::string &format){ if (get_item_size_table().has_key(format)) return get_item_size_table()[format]; //OK. I am sorry about this. //We didnt find a match, so lets find a match for the first term. //This is partially a hack because of the way I append strings. //But as long as life is kind, we can keep this. const size_t pos = format.find("_"); if (pos != std::string::npos){ return get_bytes_per_item(format.substr(0, pos)); } throw uhd::key_error("Cannot find an item size:\n" + format); } UHD_STATIC_BLOCK(convert_register_item_sizes){ //register standard complex types convert::register_bytes_per_item("fc64", sizeof(std::complex)); convert::register_bytes_per_item("fc32", sizeof(std::complex)); convert::register_bytes_per_item("sc64", sizeof(std::complex)); convert::register_bytes_per_item("sc32", sizeof(std::complex)); convert::register_bytes_per_item("sc16", sizeof(std::complex)); convert::register_bytes_per_item("sc8", sizeof(std::complex)); //register standard real types convert::register_bytes_per_item("f64", sizeof(double)); convert::register_bytes_per_item("f32", sizeof(float)); convert::register_bytes_per_item("s64", sizeof(boost::int64_t)); convert::register_bytes_per_item("s32", sizeof(boost::int32_t)); convert::register_bytes_per_item("s16", sizeof(boost::int16_t)); convert::register_bytes_per_item("s8", sizeof(boost::int8_t)); } uhd-3.5.5/host/lib/convert/convert_item32.cpp000066400000000000000000000037311224274632000210640ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #define __DECLARE_ITEM32_CONVERTER(cpu_type, wire_type, xe, htoxx, xxtoh) \ DECLARE_CONVERTER(cpu_type, 1, wire_type ## _item32_ ## xe, 1, PRIORITY_GENERAL){ \ const cpu_type ## _t *input = reinterpret_cast(inputs[0]); \ item32_t *output = reinterpret_cast(outputs[0]); \ xx_to_item32_ ## wire_type(input, output, nsamps, scale_factor); \ } \ DECLARE_CONVERTER(wire_type ## _item32_ ## xe, 1, cpu_type, 1, PRIORITY_GENERAL){ \ const item32_t *input = reinterpret_cast(inputs[0]); \ cpu_type ## _t *output = reinterpret_cast(outputs[0]); \ item32_ ## wire_type ## _to_xx(input, output, nsamps, scale_factor); \ } #define _DECLARE_ITEM32_CONVERTER(cpu_type, wire_type) \ __DECLARE_ITEM32_CONVERTER(cpu_type, wire_type, be, uhd::htonx, uhd::ntohx) \ __DECLARE_ITEM32_CONVERTER(cpu_type, wire_type, le, uhd::htowx, uhd::wtohx) #define DECLARE_ITEM32_CONVERTER(cpu_type) \ _DECLARE_ITEM32_CONVERTER(cpu_type, sc8) \ _DECLARE_ITEM32_CONVERTER(cpu_type, sc16) DECLARE_ITEM32_CONVERTER(sc16) DECLARE_ITEM32_CONVERTER(fc32) DECLARE_ITEM32_CONVERTER(fc64) _DECLARE_ITEM32_CONVERTER(sc8, sc8) uhd-3.5.5/host/lib/convert/convert_orc.orc000066400000000000000000000027701224274632000205470ustar00rootroot00000000000000.function _convert_fc32_1_to_item32_1_nswap_orc .source 8 src .dest 4 dst .floatparam 4 scalar .temp 8 scaled .temp 8 converted .temp 4 short x2 mulf scaled, src, scalar x2 convfl converted, scaled x2 convlw short, converted swapl short, short x2 swapw dst, short .function _convert_fc32_1_to_item32_1_bswap_orc .source 8 src .dest 4 dst .floatparam 4 scalar .temp 8 scaled .temp 8 converted .temp 4 short x2 mulf scaled, src, scalar x2 convfl converted, scaled x2 convlw short, converted x2 swapw dst, short .function _convert_item32_1_to_fc32_1_nswap_orc .source 4 src .dest 8 dst .floatparam 4 scalar .temp 4 tmp1 .temp 8 tmp2 x2 swapw tmp1, src swapl tmp1, tmp1 x2 convswl tmp2, tmp1 x2 convlf tmp2, tmp2 x2 mulf dst, tmp2, scalar .function _convert_item32_1_to_fc32_1_bswap_orc .source 4 src .dest 8 dst .floatparam 4 scalar .temp 4 tmp1 .temp 8 tmp2 x2 swapw tmp1, src x2 convswl tmp2, tmp1 x2 convlf tmp2, tmp2 x2 mulf dst, tmp2, scalar .function _convert_sc16_1_to_item32_1_nswap_orc .source 4 src .dest 4 dst .temp 4 tmp .floatparam 4 scalar swapl tmp, src x2 swapw dst, tmp .function _convert_item32_1_to_sc16_1_nswap_orc .source 4 src .dest 4 dst .floatparam 4 scalar .temp 4 tmp x2 swapw tmp, src swapl dst, tmp .function _convert_swap_byte_pairs_orc .source 4 src .dest 4 dst swapl dst, src .function _convert_fc32_1_to_sc8_1_nswap_orc .source 8 src .dest 2 dst .temp 8 tmp .temp 4 tmp2 .floatparam 4 scalar x2 mulf tmp, src, scalar x2 convfl tmp, tmp swaplq tmp, tmp x2 convlw tmp2, tmp x2 convwb dst, tmp2 uhd-3.5.5/host/lib/convert/convert_with_neon.cpp000066400000000000000000000042711224274632000217530ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_SIMD){ const fc32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); size_t i; float32x4_t Q0 = vdupq_n_f32(float(scale_factor)); for (i=0; i < (nsamps & ~0x03); i+=2) { float32x4_t Q1 = vld1q_f32(reinterpret_cast(&input[i])); float32x4_t Q2 = vmulq_f32(Q1, Q0); int32x4_t Q3 = vcvtq_s32_f32(Q2); int16x4_t D8 = vmovn_s32(Q3); int16x4_t D9 = vrev32_s16(D8); vst1_s16((reinterpret_cast(&output[i])), D9); } xx_to_item32_sc16(input+i, output+i, nsamps-i, scale_factor); } DECLARE_CONVERTER(sc16_item32_le, 1, fc32, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(inputs[0]); fc32_t *output = reinterpret_cast(outputs[0]); size_t i; float32x4_t Q1 = vdupq_n_f32(float(scale_factor)); for (i=0; i < (nsamps & ~0x03); i+=2) { int16x4_t D0 = vld1_s16(reinterpret_cast(&input[i])); int16x4_t D1 = vrev32_s16(D0); int32x4_t Q2 = vmovl_s16(D1); float32x4_t Q3 = vcvtq_f32_s32(Q2); float32x4_t Q4 = vmulq_f32(Q3, Q1); vst1q_f32((reinterpret_cast(&output[i])), Q4); } item32_sc16_to_xx(input+i, output+i, nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/convert_with_orc.cpp000066400000000000000000000053231224274632000215760ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include using namespace uhd::convert; extern "C" { extern void _convert_fc32_1_to_item32_1_nswap_orc(void *, const void *, float, int); extern void _convert_fc32_1_to_item32_1_bswap_orc(void *, const void *, float, int); extern void _convert_item32_1_to_fc32_1_nswap_orc(void *, const void *, float, int); extern void _convert_item32_1_to_fc32_1_bswap_orc(void *, const void *, float, int); extern void _convert_sc16_1_to_item32_1_nswap_orc(void *, const void *, float, int); extern void _convert_item32_1_to_sc16_1_nswap_orc(void *, const void *, float, int); extern void _convert_fc32_1_to_sc8_1_nswap_orc(void *, const void *, float, int); extern void _convert_swap_byte_pairs_orc(void *, const void *, int); } DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_LIBORC){ _convert_fc32_1_to_item32_1_nswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } DECLARE_CONVERTER(fc32, 1, sc16_item32_be, 1, PRIORITY_LIBORC){ _convert_fc32_1_to_item32_1_bswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } DECLARE_CONVERTER(sc16_item32_le, 1, fc32, 1, PRIORITY_LIBORC){ _convert_item32_1_to_fc32_1_nswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } DECLARE_CONVERTER(sc16_item32_be, 1, fc32, 1, PRIORITY_LIBORC){ _convert_item32_1_to_fc32_1_bswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } DECLARE_CONVERTER(sc16, 1, sc16_item32_le, 1, PRIORITY_LIBORC){ _convert_sc16_1_to_item32_1_nswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } DECLARE_CONVERTER(sc16_item32_le, 1, sc16, 1, PRIORITY_LIBORC){ _convert_item32_1_to_sc16_1_nswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } DECLARE_CONVERTER(fc32, 1, sc8_item32_be, 1, PRIORITY_LIBORC){ _convert_fc32_1_to_sc8_1_nswap_orc(outputs[0], inputs[0], scale_factor, nsamps); _convert_swap_byte_pairs_orc(outputs[0], outputs[0], (nsamps + 1)/2); } DECLARE_CONVERTER(fc32, 1, sc8_item32_le, 1, PRIORITY_LIBORC){ _convert_fc32_1_to_sc8_1_nswap_orc(outputs[0], inputs[0], scale_factor, nsamps); } uhd-3.5.5/host/lib/convert/convert_with_tables.cpp000066400000000000000000000254511224274632000222710ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include #include using namespace uhd::convert; static const size_t sc16_table_len = size_t(1 << 16); typedef boost::uint16_t (*tohost16_type)(boost::uint16_t); /*********************************************************************** * Implementation for sc16 to sc8 lookup table * - Lookup the real and imaginary parts individually **********************************************************************/ template class convert_sc16_1_to_sc8_item32_1 : public converter{ public: convert_sc16_1_to_sc8_item32_1(void): _table(sc16_table_len){} void set_scalar(const double scalar){ for (size_t i = 0; i < sc16_table_len; i++){ const boost::int16_t val = boost::uint16_t(i); _table[i] = boost::int8_t(boost::math::iround(val * scalar / 32767.)); } } void operator()(const input_type &inputs, const output_type &outputs, const size_t nsamps){ const sc16_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const size_t num_pairs = nsamps/2; for (size_t i = 0, j = 0; i < num_pairs; i++, j+=2){ output[i] = this->lookup(input[j], input[j+1]); } if (nsamps != num_pairs*2){ output[num_pairs] = this->lookup(input[nsamps-1], 0);; } } item32_t lookup(const sc16_t &in0, const sc16_t &in1){ if (swap){ //hope this compiles out, its a template constant return (item32_t(_table[boost::uint16_t(in0.real())]) << 16) | (item32_t(_table[boost::uint16_t(in0.imag())]) << 24) | (item32_t(_table[boost::uint16_t(in1.real())]) << 0) | (item32_t(_table[boost::uint16_t(in1.imag())]) << 8) ; } return (item32_t(_table[boost::uint16_t(in0.real())]) << 8) | (item32_t(_table[boost::uint16_t(in0.imag())]) << 0) | (item32_t(_table[boost::uint16_t(in1.real())]) << 24) | (item32_t(_table[boost::uint16_t(in1.imag())]) << 16) ; } private: std::vector _table; }; /*********************************************************************** * Implementation for sc16 lookup table * - Lookup the real and imaginary parts individually **********************************************************************/ template class convert_sc16_item32_1_to_fcxx_1 : public converter{ public: convert_sc16_item32_1_to_fcxx_1(void): _table(sc16_table_len){} void set_scalar(const double scalar){ for (size_t i = 0; i < sc16_table_len; i++){ const boost::uint16_t val = tohost(boost::uint16_t(i & 0xffff)); _table[i] = type(boost::int16_t(val)*scalar); } } void operator()(const input_type &inputs, const output_type &outputs, const size_t nsamps){ const item32_t *input = reinterpret_cast(inputs[0]); std::complex *output = reinterpret_cast *>(outputs[0]); for (size_t i = 0; i < nsamps; i++){ const item32_t item = input[i]; output[i] = std::complex( _table[boost::uint16_t(item >> re_shift)], _table[boost::uint16_t(item >> im_shift)] ); } } private: std::vector _table; }; /*********************************************************************** * Implementation for sc8 lookup table * - Lookup the real and imaginary parts together **********************************************************************/ template class convert_sc8_item32_1_to_fcxx_1 : public converter{ public: convert_sc8_item32_1_to_fcxx_1(void): _table(sc16_table_len){} //special case for sc16 type, 32767 undoes float normalization static type conv(const boost::int8_t &num, const double scalar){ if (sizeof(type) == sizeof(s16_t)){ return type(boost::math::iround(num*scalar*32767)); } return type(num*scalar); } void set_scalar(const double scalar){ for (size_t i = 0; i < sc16_table_len; i++){ const boost::uint16_t val = tohost(boost::uint16_t(i & 0xffff)); const type real = conv(boost::int8_t(val >> 8), scalar); const type imag = conv(boost::int8_t(val >> 0), scalar); _table[i] = std::complex(real, imag); } } void operator()(const input_type &inputs, const output_type &outputs, const size_t nsamps){ const item32_t *input = reinterpret_cast(size_t(inputs[0]) & ~0x3); std::complex *output = reinterpret_cast *>(outputs[0]); size_t num_samps = nsamps; if ((size_t(inputs[0]) & 0x3) != 0){ const item32_t item0 = *input++; *output++ = _table[boost::uint16_t(item0 >> hi_shift)]; num_samps--; } const size_t num_pairs = num_samps/2; for (size_t i = 0, j = 0; i < num_pairs; i++, j+=2){ const item32_t item_i = (input[i]); output[j] = _table[boost::uint16_t(item_i >> lo_shift)]; output[j + 1] = _table[boost::uint16_t(item_i >> hi_shift)]; } if (num_samps != num_pairs*2){ const item32_t item_n = input[num_pairs]; output[num_samps-1] = _table[boost::uint16_t(item_n >> lo_shift)]; } } private: std::vector > _table; }; /*********************************************************************** * Factory functions and registration **********************************************************************/ #ifdef BOOST_BIG_ENDIAN # define SHIFT_PAIR0 16, 0 # define SHIFT_PAIR1 0, 16 # define BE_SWAP false # define LE_SWAP true #else # define SHIFT_PAIR0 0, 16 # define SHIFT_PAIR1 16, 0 # define BE_SWAP true # define LE_SWAP false #endif static converter::sptr make_convert_sc16_item32_be_1_to_fc32_1(void){ return converter::sptr(new convert_sc16_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc16_item32_be_1_to_fc64_1(void){ return converter::sptr(new convert_sc16_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc16_item32_le_1_to_fc32_1(void){ return converter::sptr(new convert_sc16_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc16_item32_le_1_to_fc64_1(void){ return converter::sptr(new convert_sc16_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc8_item32_be_1_to_fc32_1(void){ return converter::sptr(new convert_sc8_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc8_item32_be_1_to_fc64_1(void){ return converter::sptr(new convert_sc8_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc8_item32_le_1_to_fc32_1(void){ return converter::sptr(new convert_sc8_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc8_item32_le_1_to_fc64_1(void){ return converter::sptr(new convert_sc8_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc8_item32_be_1_to_sc16_1(void){ return converter::sptr(new convert_sc8_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc8_item32_le_1_to_sc16_1(void){ return converter::sptr(new convert_sc8_item32_1_to_fcxx_1()); } static converter::sptr make_convert_sc16_1_to_sc8_item32_be_1(void){ return converter::sptr(new convert_sc16_1_to_sc8_item32_1()); } static converter::sptr make_convert_sc16_1_to_sc8_item32_le_1(void){ return converter::sptr(new convert_sc16_1_to_sc8_item32_1()); } UHD_STATIC_BLOCK(register_convert_sc16_item32_1_to_fcxx_1){ uhd::convert::id_type id; id.num_inputs = 1; id.num_outputs = 1; id.output_format = "fc32"; id.input_format = "sc16_item32_be"; uhd::convert::register_converter(id, &make_convert_sc16_item32_be_1_to_fc32_1, PRIORITY_TABLE); id.output_format = "fc64"; id.input_format = "sc16_item32_be"; uhd::convert::register_converter(id, &make_convert_sc16_item32_be_1_to_fc64_1, PRIORITY_TABLE); id.output_format = "fc32"; id.input_format = "sc16_item32_le"; uhd::convert::register_converter(id, &make_convert_sc16_item32_le_1_to_fc32_1, PRIORITY_TABLE); id.output_format = "fc64"; id.input_format = "sc16_item32_le"; uhd::convert::register_converter(id, &make_convert_sc16_item32_le_1_to_fc64_1, PRIORITY_TABLE); id.output_format = "fc32"; id.input_format = "sc8_item32_be"; uhd::convert::register_converter(id, &make_convert_sc8_item32_be_1_to_fc32_1, PRIORITY_TABLE); id.output_format = "fc64"; id.input_format = "sc8_item32_be"; uhd::convert::register_converter(id, &make_convert_sc8_item32_be_1_to_fc64_1, PRIORITY_TABLE); id.output_format = "fc32"; id.input_format = "sc8_item32_le"; uhd::convert::register_converter(id, &make_convert_sc8_item32_le_1_to_fc32_1, PRIORITY_TABLE); id.output_format = "fc64"; id.input_format = "sc8_item32_le"; uhd::convert::register_converter(id, &make_convert_sc8_item32_le_1_to_fc64_1, PRIORITY_TABLE); id.output_format = "sc16"; id.input_format = "sc8_item32_be"; uhd::convert::register_converter(id, &make_convert_sc8_item32_be_1_to_sc16_1, PRIORITY_TABLE); id.output_format = "sc16"; id.input_format = "sc8_item32_le"; uhd::convert::register_converter(id, &make_convert_sc8_item32_le_1_to_sc16_1, PRIORITY_TABLE); id.input_format = "sc16"; id.output_format = "sc8_item32_be"; uhd::convert::register_converter(id, &make_convert_sc16_1_to_sc8_item32_be_1, PRIORITY_TABLE); id.input_format = "sc16"; id.output_format = "sc8_item32_le"; uhd::convert::register_converter(id, &make_convert_sc16_1_to_sc8_item32_le_1, PRIORITY_TABLE); } uhd-3.5.5/host/lib/convert/gen_convert_general.py000066400000000000000000000110041224274632000220650ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2011-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # TMPL_HEADER = """ #import time /*********************************************************************** * This file was generated by $file on $time.strftime("%c") **********************************************************************/ \#include "convert_common.hpp" \#include using namespace uhd::convert; """ TMPL_CONV_GEN2_ITEM32 = """ DECLARE_CONVERTER(item32, 1, sc16_item32_$(end), 1, PRIORITY_GENERAL){ const item32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); for (size_t i = 0; i < nsamps; i++){ output[i] = $(to_wire)(input[i]); } } DECLARE_CONVERTER(sc16_item32_$(end), 1, item32, 1, PRIORITY_GENERAL){ const item32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); for (size_t i = 0; i < nsamps; i++){ output[i] = $(to_host)(input[i]); } } """ TMPL_CONV_USRP1_COMPLEX = """ DECLARE_CONVERTER($(cpu_type), $(width), sc16_item16_usrp1, 1, PRIORITY_GENERAL){ #for $w in range($width) const $(cpu_type)_t *input$(w) = reinterpret_cast(inputs[$(w)]); #end for boost::uint16_t *output = reinterpret_cast(outputs[0]); for (size_t i = 0, j = 0; i < nsamps; i++){ #for $w in range($width) output[j++] = $(to_wire)(boost::uint16_t(boost::int16_t(input$(w)[i].real()$(do_scale)))); output[j++] = $(to_wire)(boost::uint16_t(boost::int16_t(input$(w)[i].imag()$(do_scale)))); #end for } } DECLARE_CONVERTER(sc16_item16_usrp1, 1, $(cpu_type), $(width), PRIORITY_GENERAL){ const boost::uint16_t *input = reinterpret_cast(inputs[0]); #for $w in range($width) $(cpu_type)_t *output$(w) = reinterpret_cast<$(cpu_type)_t *>(outputs[$(w)]); #end for for (size_t i = 0, j = 0; i < nsamps; i++){ #for $w in range($width) output$(w)[i] = $(cpu_type)_t( boost::int16_t($(to_host)(input[j+0]))$(do_scale), boost::int16_t($(to_host)(input[j+1]))$(do_scale) ); j += 2; #end for } } DECLARE_CONVERTER(sc8_item16_usrp1, 1, $(cpu_type), $(width), PRIORITY_GENERAL){ const boost::uint16_t *input = reinterpret_cast(inputs[0]); #for $w in range($width) $(cpu_type)_t *output$(w) = reinterpret_cast<$(cpu_type)_t *>(outputs[$(w)]); #end for for (size_t i = 0, j = 0; i < nsamps; i++){ #for $w in range($width) { const boost::uint16_t num = $(to_host)(input[j++]); output$(w)[i] = $(cpu_type)_t( boost::int8_t(num)$(do_scale), boost::int8_t(num >> 8)$(do_scale) ); } #end for } } """ def parse_tmpl(_tmpl_text, **kwargs): from Cheetah.Template import Template return str(Template(_tmpl_text, kwargs)) if __name__ == '__main__': import sys, os file = os.path.basename(__file__) output = parse_tmpl(TMPL_HEADER, file=file) #generate complex converters for all gen2 platforms for end, to_host, to_wire in ( ('be', 'uhd::ntohx', 'uhd::htonx'), ('le', 'uhd::wtohx', 'uhd::htowx'), ): output += parse_tmpl( TMPL_CONV_GEN2_ITEM32, end=end, to_host=to_host, to_wire=to_wire ) #generate complex converters for usrp1 format for width in 1, 2, 4: for cpu_type, do_scale in ( ('fc64', '*scale_factor'), ('fc32', '*float(scale_factor)'), ('sc16', ''), ): output += parse_tmpl( TMPL_CONV_USRP1_COMPLEX, width=width, to_host='uhd::wtohx', to_wire='uhd::htowx', cpu_type=cpu_type, do_scale=do_scale ) open(sys.argv[1], 'w').write(output) uhd-3.5.5/host/lib/convert/sse2_fc32_to_sc16.cpp000066400000000000000000000113771224274632000212550ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_SIMD){ const fc32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)); #define convert_fc32_1_to_item32_1_nswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128 tmplo = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+0)); \ __m128 tmphi = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+2)); \ \ /* convert and scale */ \ __m128i tmpilo = _mm_cvtps_epi32(_mm_mul_ps(tmplo, scalar)); \ __m128i tmpihi = _mm_cvtps_epi32(_mm_mul_ps(tmphi, scalar)); \ \ /* pack + swap 16-bit pairs */ \ __m128i tmpi = _mm_packs_epi32(tmpilo, tmpihi); \ tmpi = _mm_shufflelo_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ tmpi = _mm_shufflehi_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+i), tmpi); \ } \ size_t i = 0; //dispatch according to alignment switch (size_t(input) & 0xf){ case 0x8: xx_to_item32_sc16(input, output, 1, scale_factor); i++; case 0x0: convert_fc32_1_to_item32_1_nswap_guts(_) break; default: convert_fc32_1_to_item32_1_nswap_guts(u_) } //convert remainder xx_to_item32_sc16(input+i, output+i, nsamps-i, scale_factor); } DECLARE_CONVERTER(fc32, 1, sc16_item32_be, 1, PRIORITY_SIMD){ const fc32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)); #define convert_fc32_1_to_item32_1_bswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128 tmplo = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+0)); \ __m128 tmphi = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+2)); \ \ /* convert and scale */ \ __m128i tmpilo = _mm_cvtps_epi32(_mm_mul_ps(tmplo, scalar)); \ __m128i tmpihi = _mm_cvtps_epi32(_mm_mul_ps(tmphi, scalar)); \ \ /* pack + byteswap -> byteswap 16 bit words */ \ __m128i tmpi = _mm_packs_epi32(tmpilo, tmpihi); \ tmpi = _mm_or_si128(_mm_srli_epi16(tmpi, 8), _mm_slli_epi16(tmpi, 8)); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+i), tmpi); \ } \ size_t i = 0; //dispatch according to alignment switch (size_t(input) & 0xf){ case 0x8: xx_to_item32_sc16(input, output, 1, scale_factor); i++; case 0x0: convert_fc32_1_to_item32_1_bswap_guts(_) break; default: convert_fc32_1_to_item32_1_bswap_guts(u_) } //convert remainder xx_to_item32_sc16(input+i, output+i, nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_fc32_to_sc8.cpp000066400000000000000000000117111224274632000211660ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; template UHD_INLINE __m128i pack_sc32_4x( const __m128 &in0, const __m128 &in1, const __m128 &in2, const __m128 &in3, const __m128 &scalar ){ __m128i tmpi0 = _mm_cvtps_epi32(_mm_mul_ps(in0, scalar)); tmpi0 = _mm_shuffle_epi32(tmpi0, shuf); __m128i tmpi1 = _mm_cvtps_epi32(_mm_mul_ps(in1, scalar)); tmpi1 = _mm_shuffle_epi32(tmpi1, shuf); const __m128i lo = _mm_packs_epi32(tmpi0, tmpi1); __m128i tmpi2 = _mm_cvtps_epi32(_mm_mul_ps(in2, scalar)); tmpi2 = _mm_shuffle_epi32(tmpi2, shuf); __m128i tmpi3 = _mm_cvtps_epi32(_mm_mul_ps(in3, scalar)); tmpi3 = _mm_shuffle_epi32(tmpi3, shuf); const __m128i hi = _mm_packs_epi32(tmpi2, tmpi3); return _mm_packs_epi16(lo, hi); } DECLARE_CONVERTER(fc32, 1, sc8_item32_be, 1, PRIORITY_SIMD){ const fc32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)); const int shuf = _MM_SHUFFLE(1, 0, 3, 2); #define convert_fc32_1_to_sc8_item32_1_bswap_guts(_al_) \ for (size_t j = 0; i+7 < nsamps; i+=8, j+=4){ \ /* load from input */ \ __m128 tmp0 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+0)); \ __m128 tmp1 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+2)); \ __m128 tmp2 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+4)); \ __m128 tmp3 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+6)); \ \ /* convert */ \ const __m128i tmpi = pack_sc32_4x(tmp0, tmp1, tmp2, tmp3, scalar); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+j), tmpi); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(input) & 0xf) == 0){ convert_fc32_1_to_sc8_item32_1_bswap_guts(_) } else{ convert_fc32_1_to_sc8_item32_1_bswap_guts(u_) } //convert remainder xx_to_item32_sc8(input+i, output+(i/2), nsamps-i, scale_factor); } DECLARE_CONVERTER(fc32, 1, sc8_item32_le, 1, PRIORITY_SIMD){ const fc32_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)); const int shuf = _MM_SHUFFLE(2, 3, 0, 1); #define convert_fc32_1_to_sc8_item32_1_nswap_guts(_al_) \ for (size_t j = 0; i+7 < nsamps; i+=8, j+=4){ \ /* load from input */ \ __m128 tmp0 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+0)); \ __m128 tmp1 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+2)); \ __m128 tmp2 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+4)); \ __m128 tmp3 = _mm_load ## _al_ ## ps(reinterpret_cast(input+i+6)); \ \ /* convert */ \ const __m128i tmpi = pack_sc32_4x(tmp0, tmp1, tmp2, tmp3, scalar); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+j), tmpi); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(input) & 0xf) == 0){ convert_fc32_1_to_sc8_item32_1_nswap_guts(_) } else{ convert_fc32_1_to_sc8_item32_1_nswap_guts(u_) } //convert remainder xx_to_item32_sc8(input+i, output+(i/2), nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_fc64_to_sc16.cpp000066400000000000000000000127551224274632000212630ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; DECLARE_CONVERTER(fc64, 1, sc16_item32_le, 1, PRIORITY_SIMD){ const fc64_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor); #define convert_fc64_1_to_item32_1_nswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128d tmp0 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+0)); \ __m128d tmp1 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+1)); \ __m128d tmp2 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+2)); \ __m128d tmp3 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+3)); \ \ /* convert and scale */ \ __m128i tmpi0 = _mm_cvttpd_epi32(_mm_mul_pd(tmp0, scalar)); \ __m128i tmpi1 = _mm_cvttpd_epi32(_mm_mul_pd(tmp1, scalar)); \ __m128i tmpilo = _mm_unpacklo_epi64(tmpi0, tmpi1); \ __m128i tmpi2 = _mm_cvttpd_epi32(_mm_mul_pd(tmp2, scalar)); \ __m128i tmpi3 = _mm_cvttpd_epi32(_mm_mul_pd(tmp3, scalar)); \ __m128i tmpihi = _mm_unpacklo_epi64(tmpi2, tmpi3); \ \ /* pack + swap 16-bit pairs */ \ __m128i tmpi = _mm_packs_epi32(tmpilo, tmpihi); \ tmpi = _mm_shufflelo_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ tmpi = _mm_shufflehi_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+i), tmpi); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(input) & 0xf) == 0){ convert_fc64_1_to_item32_1_nswap_guts(_) } else{ convert_fc64_1_to_item32_1_nswap_guts(u_) } //convert remainder xx_to_item32_sc16(input+i, output+i, nsamps-i, scale_factor); } DECLARE_CONVERTER(fc64, 1, sc16_item32_be, 1, PRIORITY_SIMD){ const fc64_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor); #define convert_fc64_1_to_item32_1_bswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128d tmp0 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+0)); \ __m128d tmp1 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+1)); \ __m128d tmp2 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+2)); \ __m128d tmp3 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+3)); \ \ /* convert and scale */ \ __m128i tmpi0 = _mm_cvttpd_epi32(_mm_mul_pd(tmp0, scalar)); \ __m128i tmpi1 = _mm_cvttpd_epi32(_mm_mul_pd(tmp1, scalar)); \ __m128i tmpilo = _mm_unpacklo_epi64(tmpi0, tmpi1); \ __m128i tmpi2 = _mm_cvttpd_epi32(_mm_mul_pd(tmp2, scalar)); \ __m128i tmpi3 = _mm_cvttpd_epi32(_mm_mul_pd(tmp3, scalar)); \ __m128i tmpihi = _mm_unpacklo_epi64(tmpi2, tmpi3); \ \ /* pack + byteswap -> byteswap 16 bit words */ \ __m128i tmpi = _mm_packs_epi32(tmpilo, tmpihi); \ tmpi = _mm_or_si128(_mm_srli_epi16(tmpi, 8), _mm_slli_epi16(tmpi, 8)); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+i), tmpi); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(input) & 0xf) == 0){ convert_fc64_1_to_item32_1_bswap_guts(_) } else{ convert_fc64_1_to_item32_1_bswap_guts(u_) } //convert remainder xx_to_item32_sc16(input+i, output+i, nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_fc64_to_sc8.cpp000066400000000000000000000143341224274632000211770ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; UHD_INLINE __m128i pack_sc8_item32_4x( const __m128i &in0, const __m128i &in1, const __m128i &in2, const __m128i &in3 ){ const __m128i lo = _mm_packs_epi32(in0, in1); const __m128i hi = _mm_packs_epi32(in2, in3); return _mm_packs_epi16(lo, hi); } UHD_INLINE __m128i pack_sc32_4x( const __m128d &lo, const __m128d &hi, const __m128d &scalar ){ const __m128i tmpi_lo = _mm_cvttpd_epi32(_mm_mul_pd(hi, scalar)); const __m128i tmpi_hi = _mm_cvttpd_epi32(_mm_mul_pd(lo, scalar)); return _mm_unpacklo_epi64(tmpi_lo, tmpi_hi); } DECLARE_CONVERTER(fc64, 1, sc8_item32_be, 1, PRIORITY_SIMD){ const fc64_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor); #define convert_fc64_1_to_sc8_item32_1_bswap_guts(_al_) \ for (size_t j = 0; i+7 < nsamps; i+=8, j+=4){ \ /* load from input */ \ __m128d tmp0 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+0)); \ __m128d tmp1 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+1)); \ __m128d tmp2 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+2)); \ __m128d tmp3 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+3)); \ __m128d tmp4 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+4)); \ __m128d tmp5 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+5)); \ __m128d tmp6 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+6)); \ __m128d tmp7 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+7)); \ \ /* interleave */ \ const __m128i tmpi = pack_sc8_item32_4x( \ pack_sc32_4x(tmp0, tmp1, scalar), \ pack_sc32_4x(tmp2, tmp3, scalar), \ pack_sc32_4x(tmp4, tmp5, scalar), \ pack_sc32_4x(tmp6, tmp7, scalar) \ ); \ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+j), tmpi); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(input) & 0xf) == 0){ convert_fc64_1_to_sc8_item32_1_bswap_guts(_) } else{ convert_fc64_1_to_sc8_item32_1_bswap_guts(u_) } //convert remainder xx_to_item32_sc8(input+i, output+(i/2), nsamps-i, scale_factor); } DECLARE_CONVERTER(fc64, 1, sc8_item32_le, 1, PRIORITY_SIMD){ const fc64_t *input = reinterpret_cast(inputs[0]); item32_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor); #define convert_fc64_1_to_sc8_item32_1_nswap_guts(_al_) \ for (size_t j = 0; i+7 < nsamps; i+=8, j+=4){ \ /* load from input */ \ __m128d tmp0 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+0)); \ __m128d tmp1 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+1)); \ __m128d tmp2 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+2)); \ __m128d tmp3 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+3)); \ __m128d tmp4 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+4)); \ __m128d tmp5 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+5)); \ __m128d tmp6 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+6)); \ __m128d tmp7 = _mm_load ## _al_ ## pd(reinterpret_cast(input+i+7)); \ \ /* interleave */ \ __m128i tmpi = pack_sc8_item32_4x( \ pack_sc32_4x(tmp1, tmp0, scalar), \ pack_sc32_4x(tmp3, tmp2, scalar), \ pack_sc32_4x(tmp5, tmp4, scalar), \ pack_sc32_4x(tmp7, tmp6, scalar) \ ); \ tmpi = _mm_or_si128(_mm_srli_epi16(tmpi, 8), _mm_slli_epi16(tmpi, 8)); /*byteswap*/\ \ /* store to output */ \ _mm_storeu_si128(reinterpret_cast<__m128i *>(output+j), tmpi); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(input) & 0xf) == 0){ convert_fc64_1_to_sc8_item32_1_nswap_guts(_) } else{ convert_fc64_1_to_sc8_item32_1_nswap_guts(u_) } //convert remainder xx_to_item32_sc8(input+i, output+(i/2), nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_sc16_to_fc32.cpp000066400000000000000000000120151224274632000212430ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; DECLARE_CONVERTER(sc16_item32_le, 1, fc32, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(inputs[0]); fc32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)/(1 << 16)); const __m128i zeroi = _mm_setzero_si128(); #define convert_item32_1_to_fc32_1_nswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* unpack + swap 16-bit pairs */ \ tmpi = _mm_shufflelo_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ tmpi = _mm_shufflehi_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ __m128i tmpilo = _mm_unpacklo_epi16(zeroi, tmpi); /* value in upper 16 bits */ \ __m128i tmpihi = _mm_unpackhi_epi16(zeroi, tmpi); \ \ /* convert and scale */ \ __m128 tmplo = _mm_mul_ps(_mm_cvtepi32_ps(tmpilo), scalar); \ __m128 tmphi = _mm_mul_ps(_mm_cvtepi32_ps(tmpihi), scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## ps(reinterpret_cast(output+i+0), tmplo); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+i+2), tmphi); \ } \ size_t i = 0; //dispatch according to alignment switch (size_t(output) & 0xf){ case 0x8: item32_sc16_to_xx(input, output, 1, scale_factor); i++; case 0x0: convert_item32_1_to_fc32_1_nswap_guts(_) break; default: convert_item32_1_to_fc32_1_nswap_guts(u_) } //convert remainder item32_sc16_to_xx(input+i, output+i, nsamps-i, scale_factor); } DECLARE_CONVERTER(sc16_item32_be, 1, fc32, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(inputs[0]); fc32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)/(1 << 16)); const __m128i zeroi = _mm_setzero_si128(); #define convert_item32_1_to_fc32_1_bswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* byteswap + unpack -> byteswap 16 bit words */ \ tmpi = _mm_or_si128(_mm_srli_epi16(tmpi, 8), _mm_slli_epi16(tmpi, 8)); \ __m128i tmpilo = _mm_unpacklo_epi16(zeroi, tmpi); /* value in upper 16 bits */ \ __m128i tmpihi = _mm_unpackhi_epi16(zeroi, tmpi); \ \ /* convert and scale */ \ __m128 tmplo = _mm_mul_ps(_mm_cvtepi32_ps(tmpilo), scalar); \ __m128 tmphi = _mm_mul_ps(_mm_cvtepi32_ps(tmpihi), scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## ps(reinterpret_cast(output+i+0), tmplo); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+i+2), tmphi); \ } \ size_t i = 0; //dispatch according to alignment switch (size_t(output) & 0xf){ case 0x8: item32_sc16_to_xx(input, output, 1, scale_factor); i++; case 0x0: convert_item32_1_to_fc32_1_bswap_guts(_) break; default: convert_item32_1_to_fc32_1_bswap_guts(u_) } //convert remainder item32_sc16_to_xx(input+i, output+i, nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_sc16_to_fc64.cpp000066400000000000000000000133031224274632000212510ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; DECLARE_CONVERTER(sc16_item32_le, 1, fc64, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(inputs[0]); fc64_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor/(1 << 16)); const __m128i zeroi = _mm_setzero_si128(); #define convert_item32_1_to_fc64_1_nswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* unpack + swap 16-bit pairs */ \ tmpi = _mm_shufflelo_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ tmpi = _mm_shufflehi_epi16(tmpi, _MM_SHUFFLE(2, 3, 0, 1)); \ __m128i tmpilo = _mm_unpacklo_epi16(zeroi, tmpi); /* value in upper 16 bits */ \ __m128i tmpihi = _mm_unpackhi_epi16(zeroi, tmpi); \ \ /* convert and scale */ \ __m128d tmp0 = _mm_mul_pd(_mm_cvtepi32_pd(tmpilo), scalar); \ tmpilo = _mm_unpackhi_epi64(tmpilo, zeroi); \ __m128d tmp1 = _mm_mul_pd(_mm_cvtepi32_pd(tmpilo), scalar); \ __m128d tmp2 = _mm_mul_pd(_mm_cvtepi32_pd(tmpihi), scalar); \ tmpihi = _mm_unpackhi_epi64(tmpihi, zeroi); \ __m128d tmp3 = _mm_mul_pd(_mm_cvtepi32_pd(tmpihi), scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+0), tmp0); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+1), tmp1); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+2), tmp2); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+3), tmp3); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(output) & 0xf) == 0){ convert_item32_1_to_fc64_1_nswap_guts(_) } else{ convert_item32_1_to_fc64_1_nswap_guts(u_) } //convert remainder item32_sc16_to_xx(input+i, output+i, nsamps-i, scale_factor); } DECLARE_CONVERTER(sc16_item32_be, 1, fc64, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(inputs[0]); fc64_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor/(1 << 16)); const __m128i zeroi = _mm_setzero_si128(); #define convert_item32_1_to_fc64_1_bswap_guts(_al_) \ for (; i+3 < nsamps; i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* byteswap + unpack -> byteswap 16 bit words */ \ tmpi = _mm_or_si128(_mm_srli_epi16(tmpi, 8), _mm_slli_epi16(tmpi, 8)); \ __m128i tmpilo = _mm_unpacklo_epi16(zeroi, tmpi); /* value in upper 16 bits */ \ __m128i tmpihi = _mm_unpackhi_epi16(zeroi, tmpi); \ \ /* convert and scale */ \ __m128d tmp0 = _mm_mul_pd(_mm_cvtepi32_pd(tmpilo), scalar); \ tmpilo = _mm_unpackhi_epi64(tmpilo, zeroi); \ __m128d tmp1 = _mm_mul_pd(_mm_cvtepi32_pd(tmpilo), scalar); \ __m128d tmp2 = _mm_mul_pd(_mm_cvtepi32_pd(tmpihi), scalar); \ tmpihi = _mm_unpackhi_epi64(tmpihi, zeroi); \ __m128d tmp3 = _mm_mul_pd(_mm_cvtepi32_pd(tmpihi), scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+0), tmp0); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+1), tmp1); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+2), tmp2); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+i+3), tmp3); \ } \ size_t i = 0; //dispatch according to alignment if ((size_t(output) & 0xf) == 0){ convert_item32_1_to_fc64_1_bswap_guts(_) } else{ convert_item32_1_to_fc64_1_bswap_guts(u_) } //convert remainder item32_sc16_to_xx(input+i, output+i, nsamps-i, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_sc8_to_fc32.cpp000066400000000000000000000127501224274632000211720ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; static const __m128i zeroi = _mm_setzero_si128(); template UHD_INLINE void unpack_sc32_4x( const __m128i &in, __m128 &out0, __m128 &out1, __m128 &out2, __m128 &out3, const __m128 &scalar ){ const __m128i tmplo = _mm_unpacklo_epi8(zeroi, in); /* value in upper 8 bits */ __m128i tmp0 = _mm_shuffle_epi32(_mm_unpacklo_epi16(zeroi, tmplo), shuf); /* value in upper 16 bits */ __m128i tmp1 = _mm_shuffle_epi32(_mm_unpackhi_epi16(zeroi, tmplo), shuf); out0 = _mm_mul_ps(_mm_cvtepi32_ps(tmp0), scalar); out1 = _mm_mul_ps(_mm_cvtepi32_ps(tmp1), scalar); const __m128i tmphi = _mm_unpackhi_epi8(zeroi, in); __m128i tmp2 = _mm_shuffle_epi32(_mm_unpacklo_epi16(zeroi, tmphi), shuf); __m128i tmp3 = _mm_shuffle_epi32(_mm_unpackhi_epi16(zeroi, tmphi), shuf); out2 = _mm_mul_ps(_mm_cvtepi32_ps(tmp2), scalar); out3 = _mm_mul_ps(_mm_cvtepi32_ps(tmp3), scalar); } DECLARE_CONVERTER(sc8_item32_be, 1, fc32, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(size_t(inputs[0]) & ~0x3); fc32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)/(1 << 24)); const int shuf = _MM_SHUFFLE(1, 0, 3, 2); size_t i = 0, j = 0; fc32_t dummy; size_t num_samps = nsamps; if ((size_t(inputs[0]) & 0x3) != 0){ item32_sc8_to_xx(input++, output++, 1, scale_factor); num_samps--; } #define convert_sc8_item32_1_to_fc32_1_bswap_guts(_al_) \ for (; j+7 < num_samps; j+=8, i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* unpack + swap 8-bit pairs */ \ __m128 tmp0, tmp1, tmp2, tmp3; \ unpack_sc32_4x(tmpi, tmp0, tmp1, tmp2, tmp3, scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+0), tmp0); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+2), tmp1); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+4), tmp2); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+6), tmp3); \ } //dispatch according to alignment if ((size_t(output) & 0xf) == 0){ convert_sc8_item32_1_to_fc32_1_bswap_guts(_) } else{ convert_sc8_item32_1_to_fc32_1_bswap_guts(u_) } //convert remainder item32_sc8_to_xx(input+i, output+j, num_samps-j, scale_factor); } DECLARE_CONVERTER(sc8_item32_le, 1, fc32, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(size_t(inputs[0]) & ~0x3); fc32_t *output = reinterpret_cast(outputs[0]); const __m128 scalar = _mm_set_ps1(float(scale_factor)/(1 << 24)); const int shuf = _MM_SHUFFLE(2, 3, 0, 1); size_t i = 0, j = 0; fc32_t dummy; size_t num_samps = nsamps; if ((size_t(inputs[0]) & 0x3) != 0){ item32_sc8_to_xx(input++, output++, 1, scale_factor); num_samps--; } #define convert_sc8_item32_1_to_fc32_1_nswap_guts(_al_) \ for (; j+7 < num_samps; j+=8, i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* unpack + swap 8-bit pairs */ \ __m128 tmp0, tmp1, tmp2, tmp3; \ unpack_sc32_4x(tmpi, tmp0, tmp1, tmp2, tmp3, scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+0), tmp0); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+2), tmp1); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+4), tmp2); \ _mm_store ## _al_ ## ps(reinterpret_cast(output+j+6), tmp3); \ } //dispatch according to alignment if ((size_t(output) & 0xf) == 0){ convert_sc8_item32_1_to_fc32_1_nswap_guts(_) } else{ convert_sc8_item32_1_to_fc32_1_nswap_guts(u_) } //convert remainder item32_sc8_to_xx(input+i, output+j, num_samps-j, scale_factor); } uhd-3.5.5/host/lib/convert/sse2_sc8_to_fc64.cpp000066400000000000000000000147501224274632000212010ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "convert_common.hpp" #include #include using namespace uhd::convert; static const __m128i zeroi = _mm_setzero_si128(); UHD_INLINE void unpack_sc32_8x( const __m128i &in, __m128d &out0, __m128d &out1, __m128d &out2, __m128d &out3, __m128d &out4, __m128d &out5, __m128d &out6, __m128d &out7, const __m128d &scalar ){ const int shuf = _MM_SHUFFLE(1, 0, 3, 2); __m128i tmp; const __m128i tmplo = _mm_unpacklo_epi8(zeroi, in); /* value in upper 8 bits */ tmp = _mm_unpacklo_epi16(zeroi, tmplo); /* value in upper 16 bits */ out0 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); tmp = _mm_shuffle_epi32(tmp, shuf); out1 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); tmp = _mm_unpackhi_epi16(zeroi, tmplo); out2 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); tmp = _mm_shuffle_epi32(tmp, shuf); out3 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); const __m128i tmphi = _mm_unpackhi_epi8(zeroi, in); tmp = _mm_unpacklo_epi16(zeroi, tmphi); out4 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); tmp = _mm_shuffle_epi32(tmp, shuf); out5 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); tmp = _mm_unpackhi_epi16(zeroi, tmphi); out6 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); tmp = _mm_shuffle_epi32(tmp, shuf); out7 = _mm_mul_pd(_mm_cvtepi32_pd(tmp), scalar); } DECLARE_CONVERTER(sc8_item32_be, 1, fc64, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(size_t(inputs[0]) & ~0x3); fc64_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor/(1 << 24)); size_t i = 0, j = 0; fc32_t dummy; size_t num_samps = nsamps; if ((size_t(inputs[0]) & 0x3) != 0){ item32_sc8_to_xx(input++, output++, 1, scale_factor); num_samps--; } #define convert_sc8_item32_1_to_fc64_1_bswap_guts(_al_) \ for (; j+7 < num_samps; j+=8, i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* unpack */ \ __m128d tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; \ unpack_sc32_8x(tmpi, tmp1, tmp0, tmp3, tmp2, tmp5, tmp4, tmp7, tmp6, scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+0), tmp0); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+1), tmp1); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+2), tmp2); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+3), tmp3); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+4), tmp4); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+5), tmp5); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+6), tmp6); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+7), tmp7); \ } //dispatch according to alignment if ((size_t(output) & 0xf) == 0){ convert_sc8_item32_1_to_fc64_1_bswap_guts(_) } else{ convert_sc8_item32_1_to_fc64_1_bswap_guts(u_) } //convert remainder item32_sc8_to_xx(input+i, output+j, num_samps-j, scale_factor); } DECLARE_CONVERTER(sc8_item32_le, 1, fc64, 1, PRIORITY_SIMD){ const item32_t *input = reinterpret_cast(size_t(inputs[0]) & ~0x3); fc64_t *output = reinterpret_cast(outputs[0]); const __m128d scalar = _mm_set1_pd(scale_factor/(1 << 24)); size_t i = 0, j = 0; fc32_t dummy; size_t num_samps = nsamps; if ((size_t(inputs[0]) & 0x3) != 0){ item32_sc8_to_xx(input++, output++, 1, scale_factor); num_samps--; } #define convert_sc8_item32_1_to_fc64_1_nswap_guts(_al_) \ for (; j+7 < num_samps; j+=8, i+=4){ \ /* load from input */ \ __m128i tmpi = _mm_loadu_si128(reinterpret_cast(input+i)); \ \ /* unpack */ \ __m128d tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; \ tmpi = _mm_or_si128(_mm_srli_epi16(tmpi, 8), _mm_slli_epi16(tmpi, 8)); /*byteswap*/\ unpack_sc32_8x(tmpi, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, scalar); \ \ /* store to output */ \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+0), tmp0); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+1), tmp1); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+2), tmp2); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+3), tmp3); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+4), tmp4); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+5), tmp5); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+6), tmp6); \ _mm_store ## _al_ ## pd(reinterpret_cast(output+j+7), tmp7); \ } //dispatch according to alignment if ((size_t(output) & 0xf) == 0){ convert_sc8_item32_1_to_fc64_1_nswap_guts(_) } else{ convert_sc8_item32_1_to_fc64_1_nswap_guts(u_) } //convert remainder item32_sc8_to_xx(input+i, output+j, num_samps-j, scale_factor); } uhd-3.5.5/host/lib/deprecated.cpp000066400000000000000000000044521224274632000166420ustar00rootroot00000000000000//---------------------------------------------------------------------- //-- deprecated interfaces below, to be removed when the API is changed //---------------------------------------------------------------------- #include #include #include #include #include #include using namespace uhd; /*********************************************************************** * otw type **********************************************************************/ size_t otw_type_t::get_sample_size(void) const{ return (this->width * 2) / 8; } otw_type_t::otw_type_t(void): width(0), shift(0), byteorder(BO_NATIVE) { /* NOP */ } /*********************************************************************** * io type **********************************************************************/ static std::vector get_tid_size_table(void){ std::vector table(128, 0); table[size_t(io_type_t::COMPLEX_FLOAT64)] = sizeof(std::complex); table[size_t(io_type_t::COMPLEX_FLOAT32)] = sizeof(std::complex); table[size_t(io_type_t::COMPLEX_INT16)] = sizeof(std::complex); table[size_t(io_type_t::COMPLEX_INT8)] = sizeof(std::complex); return table; } static const std::vector tid_size_table(get_tid_size_table()); io_type_t::io_type_t(tid_t tid): size(tid_size_table[size_t(tid) & 0x7f]), tid(tid) { /* NOP */ } io_type_t::io_type_t(size_t size): size(size), tid(CUSTOM_TYPE) { /* NOP */ } #include using namespace uhd; clock_config_t clock_config_t::external(void){ clock_config_t clock_config; clock_config.ref_source = clock_config_t::REF_SMA; clock_config.pps_source = clock_config_t::PPS_SMA; clock_config.pps_polarity = clock_config_t::PPS_POS; return clock_config; } clock_config_t clock_config_t::internal(void){ clock_config_t clock_config; clock_config.ref_source = clock_config_t::REF_INT; clock_config.pps_source = clock_config_t::PPS_SMA; clock_config.pps_polarity = clock_config_t::PPS_POS; return clock_config; } clock_config_t::clock_config_t(void): ref_source(REF_INT), pps_source(PPS_SMA), pps_polarity(PPS_POS) { /* NOP */ } uhd-3.5.5/host/lib/device.cpp000066400000000000000000000124031224274632000157740ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; static boost::mutex _device_mutex; /*********************************************************************** * Helper Functions **********************************************************************/ /*! * Make a device hash that maps 1 to 1 with a device address. * The hash will be used to identify created devices. * \param dev_addr the device address * \return the hash number */ static size_t hash_device_addr( const device_addr_t &dev_addr ){ //combine the hashes of sorted keys/value pairs size_t hash = 0; BOOST_FOREACH(const std::string &key, uhd::sorted(dev_addr.keys())){ boost::hash_combine(hash, key); boost::hash_combine(hash, dev_addr[key]); } return hash; } /*********************************************************************** * Registration **********************************************************************/ typedef boost::tuple dev_fcn_reg_t; // instantiate the device function registry container UHD_SINGLETON_FCN(std::vector, get_dev_fcn_regs) void device::register_device( const find_t &find, const make_t &make ){ UHD_LOGV(always) << "registering device" << std::endl; get_dev_fcn_regs().push_back(dev_fcn_reg_t(find, make)); } /*********************************************************************** * Discover **********************************************************************/ device_addrs_t device::find(const device_addr_t &hint){ boost::mutex::scoped_lock lock(_device_mutex); device_addrs_t device_addrs; BOOST_FOREACH(const dev_fcn_reg_t &fcn, get_dev_fcn_regs()){ try{ device_addrs_t discovered_addrs = fcn.get<0>()(hint); device_addrs.insert( device_addrs.begin(), discovered_addrs.begin(), discovered_addrs.end() ); } catch(const std::exception &e){ UHD_MSG(error) << "Device discovery error: " << e.what() << std::endl; } } return device_addrs; } /*********************************************************************** * Make **********************************************************************/ device::sptr device::make(const device_addr_t &hint, size_t which){ boost::mutex::scoped_lock lock(_device_mutex); typedef boost::tuple dev_addr_make_t; std::vector dev_addr_makers; BOOST_FOREACH(const dev_fcn_reg_t &fcn, get_dev_fcn_regs()){ BOOST_FOREACH(device_addr_t dev_addr, fcn.get<0>()(hint)){ //append the discovered address and its factory function dev_addr_makers.push_back(dev_addr_make_t(dev_addr, fcn.get<1>())); } } //check that we found any devices if (dev_addr_makers.size() == 0){ throw uhd::key_error(str( boost::format("No devices found for ----->\n%s") % hint.to_pp_string() )); } //check that the which index is valid if (dev_addr_makers.size() <= which){ throw uhd::index_error(str( boost::format("No device at index %d for ----->\n%s") % which % hint.to_pp_string() )); } //create a unique hash for the device address device_addr_t dev_addr; make_t maker; boost::tie(dev_addr, maker) = dev_addr_makers.at(which); size_t dev_hash = hash_device_addr(dev_addr); UHD_LOG << boost::format("Device hash: %u") % dev_hash << std::endl; //copy keys that were in hint but not in dev_addr //this way, we can pass additional transport arguments BOOST_FOREACH(const std::string &key, hint.keys()){ if (not dev_addr.has_key(key)) dev_addr[key] = hint[key]; } //map device address hash to created devices static uhd::dict > hash_to_device; //try to find an existing device try{ UHD_ASSERT_THROW(hash_to_device.has_key(dev_hash)); UHD_ASSERT_THROW(not hash_to_device[dev_hash].expired()); return hash_to_device[dev_hash].lock(); } //create and register a new device catch(const uhd::assertion_error &){ device::sptr dev = maker(dev_addr); hash_to_device[dev_hash] = dev; return dev; } } uhd-3.5.5/host/lib/exception.cpp000066400000000000000000000043371224274632000165420ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include using namespace uhd; exception::exception(const std::string &what): std::runtime_error(what){/* NOP */} #define make_exception_impl(name, class, base) \ class::class(const std::string &what): \ base(str(boost::format("%s: %s") % name % what)){} \ unsigned class::code(void) const{return boost::hash()(#class) & 0xfff;} \ class *class::dynamic_clone(void) const{return new class(*this);} \ void class::dynamic_throw(void) const{throw *this;} make_exception_impl("AssertionError", assertion_error, exception) make_exception_impl("LookupError", lookup_error, exception) make_exception_impl("IndexError", index_error, lookup_error) make_exception_impl("KeyError", key_error, lookup_error) make_exception_impl("TypeError", type_error, exception) make_exception_impl("ValueError", value_error, exception) make_exception_impl("RuntimeError", runtime_error, exception) make_exception_impl("NotImplementedError", not_implemented_error, runtime_error) make_exception_impl("EnvironmentError", environment_error, exception) make_exception_impl("IOError", io_error, environment_error) make_exception_impl("OSError", os_error, environment_error) make_exception_impl("SystemError", system_error, exception) uhd-3.5.5/host/lib/ic_reg_maps/000077500000000000000000000000001224274632000163015ustar00rootroot00000000000000uhd-3.5.5/host/lib/ic_reg_maps/CMakeLists.txt000066400000000000000000000060731224274632000210470ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) SET(LIBUHD_PYTHON_GEN_SOURCE_DEPS ${CMAKE_CURRENT_SOURCE_DIR}/common.py) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_adf4350_regs.py ${CMAKE_CURRENT_BINARY_DIR}/adf4350_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_adf4351_regs.py ${CMAKE_CURRENT_BINARY_DIR}/adf4351_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_adf4360_regs.py ${CMAKE_CURRENT_BINARY_DIR}/adf4360_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ad9510_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ad9510_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ad9777_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ad9777_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ad5623_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ad5623_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ad7922_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ad7922_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_max2829_regs.py ${CMAKE_CURRENT_BINARY_DIR}/max2829_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_max2118_regs.py ${CMAKE_CURRENT_BINARY_DIR}/max2118_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_max2112_regs.py ${CMAKE_CURRENT_BINARY_DIR}/max2112_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_max2112_regs.py ${CMAKE_CURRENT_BINARY_DIR}/max2112_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ad9862_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ad9862_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ad9522_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ad9522_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_ads62p44_regs.py ${CMAKE_CURRENT_BINARY_DIR}/ads62p44_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_tuner_4937di5_regs.py ${CMAKE_CURRENT_BINARY_DIR}/tuner_4937di5_regs.hpp ) LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_tda18272hnm_regs.py ${CMAKE_CURRENT_BINARY_DIR}/tda18272hnm_regs.hpp ) UNSET(LIBUHD_PYTHON_GEN_SOURCE_DEPS) uhd-3.5.5/host/lib/ic_reg_maps/common.py000066400000000000000000000145501224274632000201500ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import re import sys import math from Cheetah.Template import Template COMMON_TMPL = """\ #import time /*********************************************************************** * This file was generated by $file on $time.strftime("%c") **********************************************************************/ \#ifndef INCLUDED_$(name.upper())_HPP \#define INCLUDED_$(name.upper())_HPP \#include \#include \#include \#include class $(name)_t{ public: #for $reg in $regs #if $reg.get_enums() enum $reg.get_type(){ #for $i, $enum in enumerate($reg.get_enums()) #set $end_comma = ',' if $i < len($reg.get_enums())-1 else '' $(reg.get_name().upper())_$(enum[0].upper()) = $enum[1]$end_comma #end for }; #end if $reg.get_type() $reg.get_name(); #end for $(name)_t(void){ _state = NULL; #for $reg in $regs $reg.get_name() = $reg.get_default(); #end for } ~$(name)_t(void){ delete _state; } $body void save_state(void){ if (_state == NULL) _state = new $(name)_t(); #for $reg in $regs _state->$reg.get_name() = this->$reg.get_name(); #end for } template std::set get_changed_addrs(void){ if (_state == NULL) throw uhd::runtime_error("no saved state"); //check each register for changes std::set addrs; #for $reg in $regs if(_state->$reg.get_name() != this->$reg.get_name()){ addrs.insert($reg.get_addr()); } #end for return addrs; } #for $mreg in $mregs $mreg.get_type() get_$(mreg.get_name())(void){ return #set $shift = 0 #for $reg in $mreg.get_regs() ($(mreg.get_type())($reg.get_name() & $reg.get_mask()) << $shift) | #set $shift = $shift + $reg.get_bit_width() #end for 0; } void set_$(mreg.get_name())($mreg.get_type() reg){ #set $shift = 0 #for $reg in $mreg.get_regs() $reg.get_name() = (reg >> $shift) & $reg.get_mask(); #set $shift = $shift + $reg.get_bit_width() #end for } #end for private: $(name)_t *_state; }; \#endif /* INCLUDED_$(name.upper())_HPP */ """ def parse_tmpl(_tmpl_text, **kwargs): return str(Template(_tmpl_text, kwargs)) def to_num(arg): return int(eval(arg)) class reg: def __init__(self, reg_des): try: self.parse(reg_des) except Exception, e: raise Exception, 'Error parsing register description: "%s"\nWhat: %s'%(reg_des, e) def parse(self, reg_des): x = re.match('^(\w*)\s*(\w*)\[(.*)\]\s*(\w*)\s*(.*)$', reg_des) name, addr, bit_range, default, enums = x.groups() #store variables self._name = name self._addr = to_num(addr) if ':' in bit_range: self._addr_spec = sorted(map(int, bit_range.split(':'))) else: self._addr_spec = int(bit_range), int(bit_range) self._default = to_num(default) #extract enum self._enums = list() if enums: enum_val = 0 for enum_str in map(str.strip, enums.split(',')): if '=' in enum_str: enum_name, enum_val = enum_str.split('=') enum_val = to_num(enum_val) else: enum_name = enum_str self._enums.append((enum_name, enum_val)) enum_val += 1 def get_addr(self): return self._addr def get_enums(self): return self._enums def get_name(self): return self._name def get_default(self): for key, val in self.get_enums(): if val == self._default: return str.upper('%s_%s'%(self.get_name(), key)) return self._default def get_type(self): if self.get_enums(): return '%s_t'%self.get_name() return 'boost::uint%d_t'%max(2**math.ceil(math.log(self.get_bit_width(), 2)), 8) def get_shift(self): return self._addr_spec[0] def get_mask(self): return hex(int('1'*self.get_bit_width(), 2)) def get_bit_width(self): return self._addr_spec[1] - self._addr_spec[0] + 1 class mreg: def __init__(self, mreg_des, regs): try: self.parse(mreg_des, regs) except Exception, e: raise Exception, 'Error parsing meta register description: "%s"\nWhat: %s'%(mreg_des, e) def parse(self, mreg_des, regs): x = re.match('^~(\w*)\s+(.*)\s*$', mreg_des) self._name, reg_names = x.groups() regs_dict = dict([(reg.get_name(), reg) for reg in regs]) self._regs = [regs_dict[reg_name] for reg_name in map(str.strip, reg_names.split(','))] def get_name(self): return self._name def get_regs(self): return self._regs def get_bit_width(self): return sum(map(reg.get_bit_width, self._regs)) def get_type(self): return 'boost::uint%d_t'%max(2**math.ceil(math.log(self.get_bit_width(), 2)), 8) def generate(name, regs_tmpl, body_tmpl='', file=__file__, append=False): #evaluate the regs template and parse each line into a register regs = list(); mregs = list() for entry in parse_tmpl(regs_tmpl).splitlines(): if entry.startswith('~'): mregs.append(mreg(entry, regs)) else: regs.append(reg(entry)) #evaluate the body template with the list of registers body = '\n '.join(parse_tmpl(body_tmpl, regs=regs).splitlines()) #evaluate the code template with the parsed registers and arguments code = parse_tmpl(COMMON_TMPL, name=name, regs=regs, mregs=mregs, body=body, file=file, ) #write the generated code to file specified by argv1 open(sys.argv[1], 'a' if append else 'w').write(code) uhd-3.5.5/host/lib/ic_reg_maps/gen_ad5623_regs.py000077500000000000000000000034531224274632000214400ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ data 0[4:15] 0 addr 0[16:18] 0 DAC_A=0, DAC_B=1, ALL=7 cmd 0[19:21] 0 wr_input_n, up_dac_n, wr_input_n_up_all, wr_up_dac_chan_n, power_down, reset, load_ldac """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint32_t get_reg(void){ boost::uint32_t reg = 0; #for $reg in filter(lambda r: r.get_addr() == 0, $regs) reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for return reg; } """ if __name__ == '__main__': import common; common.generate( name='ad5623_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_ad7922_regs.py000077500000000000000000000035531224274632000214450ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ result 0[0:11] 0 mod 0[12] 0 chn 0[13] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint16_t get_reg(void){ boost::uint16_t reg = 0; #for $reg in filter(lambda r: r.get_addr() == 0, $regs) reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for return reg; } void set_reg(boost::uint16_t reg){ #for $reg in filter(lambda r: r.get_addr() == 0, $regs) $reg.get_name() = $(reg.get_type())((reg >> $reg.get_shift()) & $reg.get_mask()); #end for } """ if __name__ == '__main__': import common; common.generate( name='ad7922_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_ad9510_regs.py000077500000000000000000000151371224274632000214410ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## serial control port config ######################################################################## long_instruction 0[4] 1 8bits, 16bits soft_reset 0[5] 0 lsb_first 0[6] 0 msb, lsb sdo_inactive 0[7] 0 active, inactive ######################################################################## ## pll settings ######################################################################## acounter 4[0:5] 0 bcounter_msb 5[0:4] 0 bcounter_lsb 6[0:7] 0 lor_enable 7[2] 0 enb, dis lor_ildd 7[5:6] 0 3cyc, 6cyc, 12cyc, 24cyc charge_pump_mode 8[0:1] 0 3state, pump_up, pump_down, normal pll_mux_control 8[2:5] 0 off, dld_high, ndiv, dld_low, rdiv, ald_nchan, acounter, prescaler, pfd_up, pfd_down, lor_high, 3state, ald_pchan, lor_lol_high, lor_lol_low, lor_low pfd_polarity 8[6] 0 neg, pos reset_all_counters 9[0] 0 ncounter_reset 9[1] 0 rcounter_reset 9[2] 0 cp_current_setting 9[4:6] 0 0_60ma, 1_2ma, 1_8ma, 2_4ma, 3_0ma, 3_6ma, 4_2ma, 4_8ma pll_power_down 0xA[0:1] 0 normal=0, async_pd=1, sync_pd=3 prescaler_value 0xA[2:4] 0 div1, div2, 2_3, 4_5, 8_9, 16_17, 32_33, div3 b_counter_bypass 0xA[6] 0 ref_counter_msb 0xB[0:5] 0 ref_counter_lsb 0xC[0:7] 0 antibacklash_pw 0xD[0:1] 0 1_3ns, 2_9ns, 6_0ns dld_window 0xD[5] 0 9_5ns, 3_5ns lock_detect_disable 0xD[6] 0 enb, dis ######################################################################## ## fine delay adjust ######################################################################## #for $i, $o in ((5, 0), (6, 4)) delay_control_out$i $hex(0x34+$o)[0] 0 ramp_current_out$i $hex(0x35+$o)[0:2] 0 200ua, 400ua, 600ua, 800ua, 1000ua, 1200ua, 1400ua, 1600ua ramp_capacitor_out$i $hex(0x35+$o)[3:5] 0 4caps=0, 3caps=1, 2caps=3, 1cap=7 delay_fine_adjust_out$i $hex(0x36+$o)[1:5] 0 #end for ######################################################################## ## outputs ######################################################################## #for $i, $o in ((0, 0), (1, 1), (2, 2), (3, 3)) power_down_lvpecl_out$i $hex(0x3C+$o)[0:1] 0 normal, test, safe_pd, total_pd output_level_lvpecl_out$i $hex(0x3C+$o)[2:3] 2 500mv, 340mv, 810mv, 660mv #end for #for $i, $o in ((4, 0), (5, 1), (6, 2), (7, 3)) power_down_lvds_cmos_out$i $hex(0x40+$o)[0] 0 output_level_lvds_out$i $hex(0x40+$o)[1:2] 1 1_75ma, 3_5ma, 5_25ma, 7ma lvds_cmos_select_out$i $hex(0x40+$o)[3] 1 lvds, cmos inverted_cmos_driver_out$i $hex(0x40+$o)[4] 0 dis, enb #end for clock_select 0x45[0] 1 clk2_drives, clk1_drives clk1_power_down 0x45[1] 0 clk2_power_down 0x45[2] 0 prescaler_clock_pd 0x45[3] 0 refin_power_down 0x45[4] 0 all_clock_inputs_pd 0x45[5] 0 ######################################################################## ## dividers ######################################################################## #for $i, $o in ((0, 0), (1, 2), (2, 4), (3, 6), (4, 8), (5, 10), (6, 12), (7, 14)) divider_high_cycles_out$i $hex(0x48+$o)[0:3] 0 divider_low_cycles_out$i $hex(0x48+$o)[4:7] 0 phase_offset_out$i $hex(0x49+$o)[0:3] 0 start_out$i $hex(0x49+$o)[4] 0 force_out$i $hex(0x49+$o)[5] 0 nosync_out$i $hex(0x49+$o)[6] 0 bypass_divider_out$i $hex(0x49+$o)[7] 0 #end for ######################################################################## ## function ######################################################################## sync_detect_enable 0x58[0] 0 dis, enb sync_select 0x58[1] 0 1_to_0_5, 0_5_to_1 soft_sync 0x58[2] 0 dist_power_down 0x58[3] 0 sync_power_down 0x58[4] 0 function_pin_select 0x58[5:6] 0 resetb, syncb, test, pdb update_registers 0x5A[0] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint16_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } boost::uint32_t get_write_reg(boost::uint16_t addr){ return (boost::uint32_t(addr) << 8) | get_reg(addr); } boost::uint32_t get_read_reg(boost::uint16_t addr){ return (boost::uint32_t(addr) << 8) | (1 << 23); } """ if __name__ == '__main__': import common; common.generate( name='ad9510_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_ad9522_regs.py000077500000000000000000000225321224274632000214410ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ sdo_active 0x000[7] 0 sdio, sdo_sdio lsb_first_addr_incr 0x000[6] 0 msb, lsb soft_reset 0x000[5] 0 mirror 0x000[3:0] 0 readback_active_registers 0x004[0] 0 buffer, active pfd_polarity 0x010[7] 0 pos, neg cp_current 0x010[6:4] 7 0_6ma, 1_2ma, 1_8ma, 2_4ma, 3_0ma, 3_6ma, 4_2ma, 4_8ma cp_mode 0x010[3:2] 3 high_imp, force_source, force_sink, normal pll_power_down 0x010[1:0] 1 normal=0, async=1, sync=3 r_counter_lsb 0x011[7:0] 1 r_counter_msb 0x012[5:0] 0 ~r_counter r_counter_lsb, r_counter_msb a_counter 0x013[5:0] 0 b_counter_lsb 0x014[7:0] 3 b_counter_msb 0x015[4:0] 0 ~b_counter b_counter_lsb, b_counter_msb set_cp_pin_to_vcp_2 0x016[7] 0 normal, vcp_2 reset_r_counter 0x016[6] 0 reset_a_and_b_counters 0x016[5] 0 reset_all_counters 0x016[4] 0 b_counter_bypass 0x016[3] 0 normal, div1 prescaler_p 0x016[2:0] 6 div1, div2, div2_3, div4_5, div8_9, div16_17, div32_33, div3 status_pin_control 0x017[7:2] 0 antibacklash_pulse_width 0x017[1:0] 0 2_9ns, 1_3ns, 6_0ns enb_cmos_ref_input_dc_off 0x018[7] 0 lock_detect_counter 0x018[6:5] 0 5cyc, 16cyc, 64cyc, 255cyc digital_lock_detect_window 0x018[4] 0 high_range, low_range disable_digital_lock_detect 0x018[3] 0 normal, disabled vco_calibration_divider 0x018[2:1] 3 div2, div4, div8, div16 vco_calibration_now 0x018[0] 0 r_a_b_counters_sync_pin_rst 0x019[7:6] 0 nothing, async, sync r_path_delay 0x019[5:3] 0 n_path_delay 0x019[2:0] 0 enable_status_pin_divider 0x01A[7] 0 ref_freq_monitor_threshold 0x01A[6] 0 1_02mhz, 6khz ld_pin_control 0x01A[5:0] 0 enable_vco_freq_monitor 0x01B[7] 0 enable_ref2_freq_monitor 0x01B[6] 0 enable_ref1_freq_monitor 0x01B[5] 0 refmon_pin_control 0x01B[4:0] 0 disable_switchover_deglitch 0x01C[7] 0 select_ref 0x01C[6] 0 ref1, ref2 use_ref_sel_pin 0x01C[5] 0 register, ref_sel enb_auto_ref_switchover 0x01C[4] 0 manual, auto stay_on_ref2 0x01C[3] 0 return_ref1, stay_ref2 enable_ref2 0x01C[2] 0 enable_ref1 0x01C[1] 0 enable_differential_ref 0x01C[0] 0 enb_stat_eeprom_at_stat_pin 0x01D[7] 1 enable_xtal_osc 0x01D[6] 0 enable_clock_doubler 0x01D[5] 0 disable_pll_status_reg 0x01D[4] 0 enable_ld_pin_comparator 0x01D[3] 0 enable_external_holdover 0x01D[1] 0 enable_holdover 0x01D[0] 0 external_zero_delay_fcds 0x01E[4:3] 0 enable_external_zero_delay 0x01E[2] 0 enable_zero_delay 0x01E[1] 0 ######################################################################## vco_calibration_finished 0x01F[6] 0 holdover_active 0x01F[5] 0 ref2_selected 0x01F[4] 0 vco_freq_gt_thresh 0x01F[3] 0 ref2_freq_gt_thresh 0x01F[2] 0 ref1_freq_gt_thresh 0x01F[1] 0 digital_lock_detect 0x01F[0] 0 ######################################################################## #for $i in range(12) #set $addr = ($i + 0x0F0) out$(i)_format $(addr)[7] 0 lvds, cmos out$(i)_cmos_configuration $(addr)[6:5] 3 off, a_on, b_on, ab_on out$(i)_polarity $(addr)[4:3] 0 lvds_a_non_b_inv=0, lvds_a_inv_b_non=1, cmos_ab_non=0, cmos_ab_inv=1, cmos_a_non_b_inv=2, cmos_a_inv_b_non=3 out$(i)_lvds_diff_voltage $(addr)[2:1] 1 1_75ma, 3_5ma, 5_25ma, 7_0ma out$(i)_lvds_power_down $(addr)[0] 0 #end for ######################################################################## #for $i in reversed(range(8)) csdld_en_out_$i 0x0FC[$i] 0 ignore, async #end for ######################################################################## #for $i in reversed(range(4)) csdld_en_out_$(8 + $i) 0x0FD[$i] 0 ignore, async #end for ######################################################################## #set $default_val = 0x7 #for $i in range(4) #set $addr0 = hex($i*3 + 0x190) #set $addr1 = hex($i*3 + 0x191) #set $addr2 = hex($i*3 + 0x192) divider$(i)_low_cycles $(addr0)[7:4] $default_val divider$(i)_high_cycles $(addr0)[3:0] $default_val divider$(i)_bypass $(addr1)[7] 0 divider$(i)_ignore_sync $(addr1)[6] 0 divider$(i)_force_high $(addr1)[5] 0 divider$(i)_start_high $(addr1)[4] 0 divider$(i)_phase_offset $(addr1)[3:0] 0 channel$(i)_power_down $(addr2)[2] 0 disable_divider$(i)_ddc $(addr2)[0] 0 #set $default_val /= 2 #end for ######################################################################## vco_divider 0x1E0[2:0] 2 div2, div3, div4, div5, div6, static, div1 power_down_clock_input_sel 0x1E1[4] 0 power_down_vco_clock_ifc 0x1E1[3] 0 power_down_vco_and_clock 0x1E1[2] 0 select_vco_or_clock 0x1E1[1] 0 external, vco bypass_vco_divider 0x1E1[0] 0 disable_power_on_sync 0x230[3] 0 power_down_sync 0x230[2] 0 power_down_dist_ref 0x230[1] 0 soft_sync 0x230[0] 0 io_update 0x232[0] 0 soft_eeprom 0xB02[1] 0 enable_eeprom_write 0xB02[0] 0 reg2eeprom 0xB03[0] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint32_t get_reg(boost::uint16_t addr){ boost::uint32_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } if (addr == 0){ //mirror 4 bits in register 0 reg |= ((reg >> 7) & 0x1) << 0; reg |= ((reg >> 6) & 0x1) << 1; reg |= ((reg >> 5) & 0x1) << 2; reg |= ((reg >> 4) & 0x1) << 3; } return reg; } void set_reg(boost::uint16_t addr, boost::uint32_t reg){ switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) $reg.get_name() = $(reg.get_type())((reg >> $reg.get_shift()) & $reg.get_mask()); #end for break; #end for } } boost::uint32_t get_write_reg(boost::uint16_t addr){ return (boost::uint32_t(addr) << 8) | get_reg(addr); } boost::uint32_t get_read_reg(boost::uint16_t addr){ return (boost::uint32_t(addr) << 8) | (1 << 23); } """ if __name__ == '__main__': import common; common.generate( name='ad9522_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_ad9777_regs.py000077500000000000000000000116751224274632000214630ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## address 0 ######################################################################## sdio_bidirectional 0[7] 0 input, io lsb_msb_first 0[6] 0 msb, lsb soft_reset 0[5] 0 sleep_mode 0[4] 0 power_down_mode 0[3] 0 x_1r_2r_mode 0[2] 0 2r, 1r pll_lock_indicator 0[1] 0 ######################################################################## ## address 1 ######################################################################## filter_interp_rate 1[6:7] 0 1x, 2x, 4x, 8x modulation_mode 1[4:5] 0 none, fs_2, fs_4, fs_8 zero_stuff_mode 1[3] 0 mix_mode 1[2] 1 complex, real modulation_form 1[1] 0 e_minus_jwt, e_plus_jwt data_clk_pll_lock_sel 1[0] 0 pll_lock, data_clk ######################################################################## ## address 2 ######################################################################## signed_input_data 2[7] 0 signed, unsigned two_port_mode 2[6] 0 two_port, one_port dataclk_driver_strength 2[5] 0 weak, strong dataclk_invert 2[4] 0 oneportclk_invert 2[2] 0 iqsel_invert 2[1] 0 iq_first 2[0] 0 i_first, q_first ######################################################################## ## address 3 ######################################################################## data_rate_clock_output 3[7] 0 pll_lock, spi_sdo pll_divide_ratio 3[0:1] 0 div1, div2, div4, div8 ######################################################################## ## address 4 ######################################################################## pll_state 4[7] 0 off, on auto_cp_control 4[6] 0 auto, manual pll_cp_control 4[0:2] 0 50ua=0, 100ua=1, 200ua=2, 400ua=3, 800ua=7 ######################################################################## ## address 5 and 9 ######################################################################## idac_fine_gain_adjust 5[0:7] 0 qdac_fine_gain_adjust 9[0:7] 0 ######################################################################## ## address 6 and A ######################################################################## idac_coarse_gain_adjust 6[0:3] 0 qdac_coarse_gain_adjust 0xA[0:3] 0 ######################################################################## ## address 7, 8 and B, C ######################################################################## idac_offset_adjust_msb 7[0:7] 0 idac_offset_adjust_lsb 8[0:1] 0 ~idac_offset_adjust idac_offset_adjust_lsb, idac_offset_adjust_msb idac_ioffset_direction 8[7] 0 out_a, out_b qdac_offset_adjust_msb 0xB[0:7] 0 qdac_offset_adjust_lsb 0xC[0:1] 0 ~qdac_offset_adjust qdac_offset_adjust_lsb, qdac_offset_adjust_msb qdac_ioffset_direction 0xC[7] 0 out_a, out_b """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } boost::uint16_t get_write_reg(boost::uint8_t addr){ return (boost::uint16_t(addr) << 8) | get_reg(addr); } boost::uint16_t get_read_reg(boost::uint8_t addr){ return (boost::uint16_t(addr) << 8) | (1 << 7); } """ if __name__ == '__main__': import common; common.generate( name='ad9777_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_ad9862_regs.py000077500000000000000000000260451224274632000214530ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## General ######################################################################## sdio_bidir 0[7] 0 sdio_sdo, sdio lsb_first 0[6] 0 msb, lsb soft_reset 0[5] 0 ######################################################################## ## Rx Power Down ######################################################################## vref_diff_pd 1[7] 0 vref_pd 1[6] 0 rx_digital_pd 1[5] 0 rx_channel_b_pd 1[4] 0 rx_channel_a_pd 1[3] 0 buffer_b_pd 1[2] 0 buffer_a_pd 1[1] 0 all_rx_pd 1[0] 0 ######################################################################## ## Rx A and B ######################################################################## #for $x, $i in (('a', 2), ('b', 3)) byp_buffer_$x $(i)[7] 0 rx_pga_$x $(i)[0:4] 0 #end for ######################################################################## ## Rx Misc ######################################################################## hs_duty_cycle 4[2] 0 shared_ref 4[1] 0 clk_duty 4[0] 0 ######################################################################## ## RX I/F (INTERFACE) ######################################################################## three_state 5[4] 0 rx_retime 5[3] 0 clkout1, clkout2 rx_twos_comp 5[2] 0 inv_rxsync 5[1] 0 mux_out 5[0] 0 rx_mux_mode=1, dual_port_mode=0 ######################################################################## ## RX Digital ######################################################################## two_channel 6[3] 1 rx_b_dis, both_enb rx_keep_ve 6[2] 0 pass_pos, pass_neg rx_hilbert 6[1] 0 dis, enb decimate 6[0] 0 dis, enb ######################################################################## ## TX Power Down ######################################################################## alt_timing_mode 8[5] 0 txoff_enable 8[4] 0 tx_digital_pd 8[3] 0 tx_analog_pd 8[0:2] 0 none=0, txb=4, txa=2, both=7 ######################################################################## ## Tx Offset and Gain ######################################################################## #for $x, $i, $j, $k in (('a', 10, 11, 14), ('b', 12, 13, 15)) dac_$(x)_offset_1_0 $(i)[6:7] 0 dac_$(x)_offset_dir $(i)[0] 0 neg_diff, pos_dif dac_$(x)_offset_9_2 $(j)[0:7] 0 dac_$(x)_coarse_gain $(k)[6:7] 0 dac_$(x)_fine_gain $(k)[0:5] 0 #end for tx_pga_gain 16[0:7] 0 ######################################################################## ## Tx Misc ######################################################################## tx_slave_enable 17[1] 0 tx_pga_mode 17[0] 0 normal, fast ######################################################################## ## Tx IF (INTERFACE) ######################################################################## tx_retime 18[6] 1 clkout1=1, clkout2=0 qi_order 18[5] 0 iq, qi inv_txsync 18[4] 0 tx_twos_comp 18[3] 0 inverse_samp 18[2] 0 rise, fall edges 18[1] 0 normal, both interleaved 18[0] 0 single, interleaved ######################################################################## ## TX Digital ######################################################################## two_data_paths 19[4] 0 single, both tx_keep_ve 19[3] 0 pass_pos, pass_neg tx_hilbert 19[2] 0 dis, enb interp 19[0:1] 0 1, 2, 4 ######################################################################## ## TX Modulator ######################################################################## neg_fine_tune 20[5] 0 pos_shift, neg_shift fine_mode 20[4] 0 bypass, nco real_mix_mode 20[3] 0 complex, real neg_coarse_tune 20[2] 0 pos_shift, neg_shift coarse_mod 20[0:1] 0 bypass, fdac_4, fdac_8 ######################################################################## ## NCO Tuning Word ######################################################################## ftw_7_0 21[0:7] 0 ftw_15_8 22[0:7] 0 ftw_23_16 23[0:7] 0 ######################################################################## ## DLL ######################################################################## input_clk_ctrl 24[6] 0 internal, external adc_div2 24[5] 0 normal, div2 dll_mult 24[3:4] 0 1, 2, 4 dll_pd 24[2] 0 dll_mode 24[0] 0 slow, fast ######################################################################## ## Clock Out ######################################################################## clkout2_div_factor 25[6:7] 0 1, 2, 4, 8 inv2 25[5] 0 normal, inverted inv1 25[1] 0 normal, inverted dis2 25[4] 0 enb, dis dis1 25[0] 0 enb, dis ######################################################################## ## Aux ADC ######################################################################## #for $x, $i in (('a2', 26), ('a1', 28), ('b2', 30), ('b1', 32)) aux_adc_$(x)_1_0 $(i)[6:7] 0 aux_adc_$(x)_9_2 $int(1+$i)[0:7] 0 #end for ######################################################################## ## Aux ADC Control ######################################################################## aux_spi 34[7] 0 dis, enb sel_bnota 34[6] 0 adc_a, adc_b #for $x, $i in (('b', 5), ('a', 2)) refsel_$(x) 34[$i] 0 external, internal select_$(x) 34[$int($i-1)] 0 aux_adc2, aux_adc1 start_$(x) 34[$int($i-2)] 0 #end for ######################################################################## ## Aux ADC Clock ######################################################################## clk_4 35[0] 0 1_2, 1_4 ######################################################################## ## Aux DAC ######################################################################## #for $x, $i in (('a', 36), ('b', 37), ('c', 38)) aux_dac_$x $(i)[0:7] 0 #end for ######################################################################## ## Aux DAC Update ######################################################################## aux_dac_slave_enable 39[7] 0 aux_dacupdate_c 39[2] 0 aux_dacupdate_b 39[1] 0 aux_dacupdate_a 39[0] 0 ######################################################################## ## AUX DAC Power Down ######################################################################## aux_dac_pd_a 40[2] 0 aux_dac_pd_b 40[1] 0 aux_dac_pd_c 40[0] 0 ######################################################################## ## AUX DAC Control ######################################################################## aux_dac_invert_a 41[2] 0 aux_dac_invert_b 41[1] 0 aux_dac_invert_c 41[0] 0 ######################################################################## ## Sig Delt ######################################################################## sig_delt_3_0 42[4:7] 0 sig_delt_11_4 43[0:7] 0 ######################################################################## ## ADC Low Power ######################################################################## rx_low_power_mode_r49 49[0:7] 0 rx_low_power_mode_r50 50[0:7] 0 ######################################################################## ## Chip ID ######################################################################## chip_id 63[0:7] 0 """ ######################################################################## # Header and Source templates below ######################################################################## BODY_TMPL=""" boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in range(0, 63+1) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint16_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } void set_reg(boost::uint8_t addr, boost::uint16_t reg){ switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) $reg.get_name() = $(reg.get_type())((reg >> $reg.get_shift()) & $reg.get_mask()); #end for break; #end for } } boost::uint16_t get_write_reg(boost::uint8_t addr){ return (boost::uint16_t(addr) << 8) | get_reg(addr); } boost::uint16_t get_read_reg(boost::uint8_t addr){ return (boost::uint16_t(addr) << 8) | (1 << 15); } """ if __name__ == '__main__': import common; common.generate( name='ad9862_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_adf4350_regs.py000077500000000000000000000123151224274632000215770ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## address 0 ######################################################################## frac_12_bit 0[3:14] 0 int_16_bit 0[15:30] 0x23 ##reserved 0[31] 0 ######################################################################## ## address 1 ######################################################################## mod_12_bit 1[3:14] 0xfff phase_12_bit 1[15:26] 0 prescaler 1[27] 0 4_5, 8_9 ##reserved 1[28:31] 0 ######################################################################## ## address 2 ######################################################################## counter_reset 2[3] 0 disabled, enabled cp_three_state 2[4] 0 disabled, enabled power_down 2[5] 0 disabled, enabled pd_polarity 2[6] 1 negative, positive ldp 2[7] 0 10ns, 6ns ldf 2[8] 0 frac_n, int_n #set $current_setting_enums = ', '.join(map(lambda x: '_'.join(("%0.2fma"%(round(x*31.27 + 31.27)/100)).split('.')), range(0,16))) charge_pump_current 2[9:12] 5 $current_setting_enums double_buffer 2[13] 0 disabled, enabled r_counter_10_bit 2[14:23] 0 reference_divide_by_2 2[24] 1 disabled, enabled reference_doubler 2[25] 0 disabled, enabled muxout 2[26:28] 1 3state, dvdd, dgnd, rdiv, ndiv, analog_ld, dld, reserved low_noise_and_spur 2[29:30] 3 low_noise, reserved0, reserved1, low_spur ##reserved 2[31] 0 ######################################################################## ## address 3 ######################################################################## clock_divider_12_bit 3[3:14] 0 clock_div_mode 3[15:16] 1 clock_divider_off, fast_lock, resync_enable, reserved ##reserved 3[17] 0 cycle_slip_reduction 3[18] 0 disabled, enabled ##reserved 3[19:20] 0 ##reserved 3[21:31] 0 ######################################################################## ## address 4 ######################################################################## output_power 4[3:4] 3 m4dbm, m1dbm, 2dbm, 5dbm rf_output_enable 4[5] 1 disabled, enabled aux_output_power 4[6:7] 0 m4dbm, m1dbm, 2dbm, 5dbm aux_output_enable 4[8] 0 disabled, enabled aux_output_select 4[9] 1 divided, fundamental mute_till_lock_detect 4[10] 0 mute_disabled, mute_enabled vco_power_down 4[11] 0 vco_powered_up, vco_powered_down band_select_clock_div 4[12:19] 0 rf_divider_select 4[20:22] 0 div1, div2, div4, div8, div16 feedback_select 4[23] 1 divided, fundamental ##reserved 4[24:31] 0 ######################################################################## ## address 5 ######################################################################## ##reserved 5[3:18] 0 ##reserved 5[19:20] 0 ##reserved 5[21] 0 ld_pin_mode 5[22:23] 1 low0, dld, low, high ##reserved 5[24:31] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ enum addr_t{ ADDR_R0 = 0, ADDR_R1 = 1, ADDR_R2 = 2, ADDR_R3 = 3, ADDR_R4 = 4, ADDR_R5 = 5 }; boost::uint32_t get_reg(boost::uint8_t addr){ boost::uint32_t reg = addr & 0x7; switch(addr){ #for $addr in range(5+1) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } """ if __name__ == '__main__': import common; common.generate( name='adf4350_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_adf4351_regs.py000077500000000000000000000126221224274632000216010ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## address 0 ######################################################################## frac_12_bit 0[3:14] 0 int_16_bit 0[15:30] 0x23 ##reserved 0[31] 0 ######################################################################## ## address 1 ######################################################################## mod_12_bit 1[3:14] 0xfff phase_12_bit 1[15:26] 0 prescaler 1[27] 0 4_5, 8_9 phase_adjust 1[28] 0 ##reserved 1[29:31] 0 ######################################################################## ## address 2 ######################################################################## counter_reset 2[3] 0 disabled, enabled cp_three_state 2[4] 0 disabled, enabled power_down 2[5] 0 disabled, enabled pd_polarity 2[6] 1 negative, positive ldp 2[7] 0 10ns, 6ns ldf 2[8] 0 frac_n, int_n #set $current_setting_enums = ', '.join(map(lambda x: '_'.join(("%0.2fma"%(round(x*31.27 + 31.27)/100)).split('.')), range(0,16))) charge_pump_current 2[9:12] 5 $current_setting_enums double_buffer 2[13] 0 disabled, enabled r_counter_10_bit 2[14:23] 0 reference_divide_by_2 2[24] 1 disabled, enabled reference_doubler 2[25] 0 disabled, enabled muxout 2[26:28] 1 3state, dvdd, dgnd, rdiv, ndiv, analog_ld, dld, reserved low_noise_and_spur 2[29:30] 3 low_noise, reserved0, reserved1, low_spur ##reserved 2[31] 0 ######################################################################## ## address 3 ######################################################################## clock_divider_12_bit 3[3:14] 0 clock_div_mode 3[15:16] 1 clock_divider_off, fast_lock, resync_enable, reserved ##reserved 3[17] 0 cycle_slip_reduction 3[18] 0 disabled, enabled ##reserved 3[19:20] 0 charge_cancel 3[21] 0 anti_backlash_pulse 3[22] 0 6ns, 3ns band_select_mode 3[23] 0 low, high ##reserved 3[24:31] 0 ######################################################################## ## address 4 ######################################################################## output_power 4[3:4] 3 m4dbm, m1dbm, 2dbm, 5dbm rf_output_enable 4[5] 1 disabled, enabled aux_output_power 4[6:7] 0 m4dbm, m1dbm, 2dbm, 5dbm aux_output_enable 4[8] 0 disabled, enabled aux_output_select 4[9] 1 divided, fundamental mute_till_lock_detect 4[10] 0 mute_disabled, mute_enabled vco_power_down 4[11] 0 vco_powered_up, vco_powered_down band_select_clock_div 4[12:19] 0 rf_divider_select 4[20:22] 0 div1, div2, div4, div8, div16, div32, div64 feedback_select 4[23] 1 divided, fundamental ##reserved 4[24:31] 0 ######################################################################## ## address 5 ######################################################################## ##reserved 5[3:18] 0 ##reserved 5[19:20] 0 ##reserved 5[21] 0 ld_pin_mode 5[22:23] 1 low0, dld, low, high ##reserved 5[24:31] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ enum addr_t{ ADDR_R0 = 0, ADDR_R1 = 1, ADDR_R2 = 2, ADDR_R3 = 3, ADDR_R4 = 4, ADDR_R5 = 5 }; boost::uint32_t get_reg(boost::uint8_t addr){ boost::uint32_t reg = addr & 0x7; switch(addr){ #for $addr in range(5+1) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } """ if __name__ == '__main__': import common; common.generate( name='adf4351_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_adf4360_regs.py000077500000000000000000000073101224274632000215770ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## address 0 ######################################################################## core_power_level 0[2:3] 0 5ma, 10ma, 15ma, 20ma counter_operation 0[4] 0 normal, reset muxout_control 0[5:7] 0 3state, dld, ndiv, dvdd, rdiv, nchan_od_ld, sdo, dgnd phase_detector_polarity 0[8] 0 neg, pos charge_pump_output 0[9] 0 normal, 3state cp_gain_0 0[10] 0 set1, set2 mute_till_ld 0[11] 0 dis, enb output_power_level 0[12:13] 0 3_5ma, 5_0ma, 7_5ma, 11_0ma #set $current_setting_enums = ', '.join(map(lambda x: x+"ma", "0_31 0_62 0_93 1_25 1_56 1_87 2_18 2_50".split())) current_setting1 0[14:16] 0 $current_setting_enums current_setting2 0[17:19] 0 $current_setting_enums power_down 0[20:21] 0 normal_op=0, async_pd=1, sync_pd=3 prescaler_value 0[22:23] 0 8_9, 16_17, 32_33 ######################################################################## ## address 2 ######################################################################## a_counter 2[2:6] 0 b_counter 2[8:20] 0 cp_gain_1 2[21] 0 set1, set2 divide_by_2_output 2[22] 0 fund, div2 divide_by_2_prescaler 2[23] 0 fund, div2 ######################################################################## ## address 1 ######################################################################## r_counter 1[2:15] 0 ablpw 1[16:17] 0 3_0ns, 1_3ns, 6_0ns lock_detect_precision 1[18] 0 3cycles, 5cycles test_mode_bit 1[19] 0 band_select_clock_div 1[20:21] 0 1, 2, 4, 8 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ enum addr_t{ ADDR_CONTROL = 0, ADDR_NCOUNTER = 2, ADDR_RCOUNTER = 1 }; boost::uint32_t get_reg(addr_t addr){ boost::uint32_t reg = addr & 0x3; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint32_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } """ if __name__ == '__main__': import common; common.generate( name='adf4360_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_ads62p44_regs.py000077500000000000000000000126211224274632000220000ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## address 0 ######################################################################## reset 0[1] 0 serial_readout 0[0] 0 ######################################################################## ## address 16 ######################################################################## clkout_strength 16[6:7] 0 weaker=1, default=0, stronger=3 ######################################################################## ## address 17 ######################################################################## dataout_strength 17[0:1] 0 weaker=1, default=0, stronger=3, maximum=2 lvds_current 17[2:3] 0 3_5ma, 2_5ma, 4_5ma, 1_75ma lvds_current_double 17[4:5] 0 default, dblclk, dbldataclock ######################################################################## ## address 18 ######################################################################## lvds_clk_term 18[0:2] 0 none, 300, 180, 110, 150, 100, 81, 60 lvds_data_term 18[3:5] 0 none, 300, 180, 110, 150, 100, 81, 60 ######################################################################## ## address 19 ######################################################################## offset_freeze 19[4] 0 ######################################################################## ## address 20 ######################################################################## power_down 20[0:2] 0 normal, a_dis, b_dis, ab_dis, global_pd, a_sby, b_sby, mux ref_select 20[3] 0 internal, external coarse_gain 20[4] 0 0db, 3_5db output_interface 20[5] 0 cmos, lvds override 20[7] 0 ######################################################################## ## address 22 ######################################################################## test_patterns 22[0:2] 0 normal, zeros, ones, toggle, ramp, custom lvds_bytewise 22[3] 0 data_format 22[4] 0 twos_complement, binary ######################################################################## ## address 23 ######################################################################## fine_gain 23[0:3] 0 ######################################################################## ## address 24 and 25 ######################################################################## custom_low 24[0:7] 0 custom_high 25[0:5] 0 ######################################################################## ## address 26 ######################################################################## gain_correction 26[0:3] 0 offset_tc 26[4:6] 0 1_1s, 0_55s, 0_27s, 0_13s, 2_15s, 4_3s low_latency 26[7] 0 ######################################################################## ## address 27 ######################################################################## decimation 27[0:2] 0 decimate_2, decimate_4, decimate_1, decimate_8 odd_tap_enable 27[3] 0 filter_enable 27[4] 0 filter_coeff_sel 27[5] 0 predefined, userdefined offset_enable 27[7] 0 ######################################################################## ## address 29 ######################################################################## decimation_filter_bands 29[0:1] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return reg; } boost::uint16_t get_write_reg(boost::uint8_t addr){ return (boost::uint16_t(addr) << 8) | get_reg(addr); } boost::uint16_t get_read_reg(boost::uint8_t addr){ return (boost::uint16_t(addr) << 8) | (1 << 7); } """ if __name__ == '__main__': import common; common.generate( name='ads62p44_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_max2112_regs.py000077500000000000000000000201331224274632000216210ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing write registers # name addr[bit range inclusive] default optional enums ######################################################################## WRITE_REGS_TMPL="""\ ######################################################################## ## Note: offsets given from perspective of data bits (excludes address) ######################################################################## ## ######################################################################## ## N-Divider MSB (0) Write ######################################################################## frac 0[7] 1 invalid, frac n_divider_msb 0[0:6] 0 ######################################################################## ## N-Divider LSB (1) Write ######################################################################## n_divider_lsb 1[0:7] 0x23 ~n_divider n_divider_lsb, n_divider_msb ######################################################################## ## Charge Pump (2) Write ######################################################################## cpmp 2[6:7] 0 cplin 2[4:5] 1 f_divider_mmsb 2[0:3] 0x2 ######################################################################## ## F-Divider MSB (3) Write ######################################################################## f_divider_msb 3[0:7] 0xF6 ######################################################################## ## F-Divider LSB (4) Write ######################################################################## f_divider_lsb 4[0:7] 0x84 ~f_divider f_divider_lsb, f_divider_msb, f_divider_mmsb ######################################################################## ## XTAL-Divider R-Divider (5) Write ######################################################################## #set $xtal_divider_names = ', '.join(map(lambda x: 'div' + str(x), range(1,9))) xtal_divider 5[5:7] 0 $xtal_divider_names r_divider 5[0:4] 1 ######################################################################## ## PLL (6) Write ######################################################################## d24 6[7] 1 div2, div4 ## div2 for LO <= 1125M, div4 > 1125M cps 6[6] 1 i_cp_from_icp, i_cp_from_vas icp 6[5] 0 i_cp_600ua, i_cp_1200ua ##reserved 6[0:4] 0 ######################################################################## ## VCO (7) Write ######################################################################## vco 7[3:7] 0x19 vas 7[2] 1 disabled, enabled adl 7[1] 1 disabled, enabled ade 7[0] 1 disabled, enabled ######################################################################## ## LPF (8) Write ######################################################################## lp 8[0:7] 0x4B ## map(lambda x: "%0.2f"%((4e6 + (x - 12) * 290e3)/1e6), range(255)) in MHz ######################################################################## ## Control (9) Write ######################################################################## stby 9[7] 0 normal, disable_sig_and_synth ##reserved 9[6] 0 pwdn 9[5] 0 normal, invalid ##reserved 9[4] 0 bbg 9[0:3] 0 ## Baseband Gain in dB ######################################################################## ## Shutdown (0xA) Write ######################################################################## ##reserved 0xA[7] 0 pll_shutdown 0xA[6] 0 normal, shutdown div_shutdown 0xA[5] 0 normal, shutdown vco_shutdown 0xA[4] 0 normal, shutdown bb_shutdown 0xA[3] 0 normal, shutdown rfmix_shutdown 0xA[2] 0 normal, shutdown rfvga_shutdown 0xA[1] 0 normal, shutdown fe_shutdown 0xA[0] 0 normal, shutdown ######################################################################## ## Test (0xB) Write ######################################################################## cptst 0xB[5:7] 0 ##reserved 0xB[4] 0 turbo 0xB[3] 1 ld_mux 0xB[0:2] 0 refout=0, invalid """ ######################################################################## # Template for raw text data describing read registers # name addr[bit range inclusive] default optional enums ######################################################################## READ_REGS_TMPL="""\ ######################################################################## ## Status Byte-1 (0xC) Read ######################################################################## por 0xC[7] 0 read, reset vasa 0xC[6] 0 vas_fail, vas_win vase 0xC[5] 0 active, inactive ld 0xC[4] 0 unlocked, locked ##reserved 0xC[0:3] 0 ######################################################################## ## Status Byte-2 (0xD) Read ######################################################################## vcosbr 0xD[3:7] 0 ## vco band readback adc 0xD[0:2] 0 ool0, lock0, vaslock0, vaslock1, vaslock2, vaslock3, lock1, ool1 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return boost::uint8_t(reg); } void set_reg(boost::uint8_t addr, boost::uint8_t reg){ switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) $reg.get_name() = $(reg.get_type())((reg >> $reg.get_shift()) & $reg.get_mask()); #end for break; #end for } } """ SPLIT_REGS_HELPER_TMPL="""\ #for $divname in ['n','f'] void set_$(divname)_divider(boost::uint32_t $divname){ #for $regname in sorted(map(lambda r: r.get_name(), filter(lambda r: r.get_name().find(divname + '_divider') == 0, $regs))) #end for } #end for """ #$regname = boost::uint8_t($divname & $regs[regname].get_mask()); #$divname = boost::uint32_t($divname >> $regs[regname].get_shift()); if __name__ == '__main__': import common; common.generate( name='max2112_write_regs', regs_tmpl=WRITE_REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) import common; common.generate( name='max2112_read_regs', regs_tmpl=READ_REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, append=True, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_max2118_regs.py000077500000000000000000000126771224274632000216450ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing write registers # name addr[bit range inclusive] default optional enums ######################################################################## WRITE_REGS_TMPL="""\ ######################################################################## ## Note: offsets given from perspective of data bits (excludes address) ######################################################################## ## ######################################################################## ## N-Divider MSB (0) Write ######################################################################## div2 0[7] 0 div4, div2 n_divider_msb 0[0:6] 3 ######################################################################## ## N-Divider LSB (1) Write ######################################################################## n_divider_lsb 1[0:7] 0xB6 ~n_divider n_divider_lsb, n_divider_msb ######################################################################## ## R, Charge Pump, and VCO (2) Write ######################################################################## #set $r_divider_names = ', '.join(map(lambda x: 'div' + str(2**(x+1)), range(0,8))) r_divider 2[5:7] 1 $r_divider_names #set $cp_current_bias = ', '.join(map(lambda x: 'i_cp_%dua'%(50*2**x), range(0,4))) cp_current 2[3:4] 3 $cp_current_bias osc_band 2[0:2] 5 ######################################################################## ## I/Q Filter DAC (3) Write ######################################################################## ##unused 3[7] 0 f_dac 3[0:6] 0x7F ## filter tuning dac, depends on m ######################################################################## ## LPF Divider DAC (4) Write ######################################################################## adl_vco_adc_latch 4[7] 0 disabled, enabled ade_vco_ade_read 4[6] 0 disabled, enabled dl_output_drive 4[5] 0 iq_590m_vpp, iq_1_vpp m_divider 4[0:4] 2 ## filter tuning counter ######################################################################## ## GC2 and Diag (5) Write ######################################################################## diag 5[5:7] 0 normal, cp_i_source, cp_i_sink, cp_high_z, unused, n_and_filt, r_and_gc2, m_div gc2 5[0:4] 0x1F ## Step Size: 0-1: 0dB, 2-22: 1dB, 23-31: 0.5dB """ ######################################################################## # Template for raw text data describing read registers # name addr[bit range inclusive] default optional enums ######################################################################## READ_REGS_TMPL="""\ ######################################################################## ## Status (0) Read ######################################################################## pwr 0[6] 0 not_reset, reset adc 0[2:4] 0 ## VCO tuning voltage, Lock Status ######################################################################## ## I/Q Filter DAC (1) Read ######################################################################## filter_dac 1[0:6] 0 ## I/Q Filter tuning DAC, current """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return boost::uint8_t(reg); } void set_reg(boost::uint8_t addr, boost::uint8_t reg){ switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) $reg.get_name() = $(reg.get_type())((reg >> $reg.get_shift()) & $reg.get_mask()); #end for break; #end for } } """ if __name__ == '__main__': import common; common.generate( name='max2118_write_regs', regs_tmpl=WRITE_REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) import common; common.generate( name='max2118_read_regs', regs_tmpl=READ_REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, append=True, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_max2829_regs.py000077500000000000000000000143431224274632000216460ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## Note: offsets given from perspective of data bits (excludes address) ######################################################################## ## ######################################################################## ## Standby (2) ######################################################################## _set_to_1_2_0 2[0] 1 _set_to_1_2_1 2[1] 1 _set_to_1_2_2 2[2] 1 pa_bias_dac 2[10] 0 voltage_ref 2[11] 0 _set_to_1_2_12 2[12] 1 mimo_select 2[13] 0 normal, mimo ######################################################################## ## Integer Divider Ratio (3) ######################################################################## int_div_ratio_word 3[0:7] 0xa2 frac_div_ratio_lsb 3[12:13] 0 ######################################################################## ## Fractional Divider Ratio (4) ######################################################################## frac_div_ratio_msb 4[0:13] 0 ######################################################################## ## Band Select and PLL (5) ######################################################################## band_select 5[0] 0 2_4ghz, 5ghz ref_divider 5[1:3] 1 pll_cp_select 5[5] 1 2ma, 4ma band_select_802_11a 5[6] 0 4_9ghz_to_5_35ghz, 5_47ghz_to_5_875ghz vco_bandswitch 5[7] 0 disable, automatic vco_spi_bandswitch 5[8] 0 fsm, spi vco_sub_band 5[9:10] 0 _set_to_1_5_11 5[11] 1 _set_to_1_5_12 5[12] 1 band_sel_mimo 5[13] 0 normal, mimo ######################################################################## ## Calibration (6) ######################################################################## rx_cal_mode 6[0] 0 dis, enb tx_cal_mode 6[1] 0 dis, enb _set_to_1_6_10 6[10] 1 iq_cal_gain 6[11:12] 3 8db, 18db, 24db, 34db ######################################################################## ## Lowpass Filter (7) ######################################################################## rx_lpf_fine_adj 7[0:2] 2 90, 95, 100, 105, 110 rx_lpf_coarse_adj 7[3:4] 1 7_5mhz, 9_5mhz, 14mhz, 18mhz tx_lpf_coarse_adj 7[5:6] 1 12mhz=1, 18mhz=2, 24mhz=3 rssi_high_bw 7[11] 0 2mhz, 6mhz ######################################################################## ## Rx Control/RSSI (8) ######################################################################## _set_to_1_8_0 8[0] 1 rx_highpass 8[2] 1 100hz, 30khz _set_to_1_8_5 8[5] 1 rssi_pin_fcn 8[8] 0 rssi, temp rssi_op_mode 8[10] 0 rssi_rxhp, enabled rssi_output_range 8[11] 0 low, high rx_vga_gain_spi 8[12] 0 io, spi ######################################################################## ## Tx Linearity/Baseband Gain (9) ######################################################################## tx_baseband_gain 9[0:1] 0 0db, 2db, 3_5db, 5db tx_upconv_linearity 9[2:3] 0 50, 63, 78, 100 tx_vga_linearity 9[6:7] 0 50, 63, 78, 100 pa_driver_linearity 9[8:9] 2 50, 63, 78, 100 tx_vga_gain_spi 9[10] 0 io, spi ######################################################################## ## PA Bias DAC (10) ######################################################################## pa_bias_dac_out_curr 10[0:5] 0 pa_bias_dac_delay 10[6:9] 0xf ######################################################################## ## Rx Gain (11) ######################################################################## rx_vga_gain 11[0:4] 0x1f rx_lna_gain 11[5:6] 3 ######################################################################## ## Tx VGA Gain (12) ######################################################################## tx_vga_gain 12[0:5] 0 """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint32_t get_reg(boost::uint8_t addr){ boost::uint16_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint16_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return (boost::uint32_t(reg) << 4) | (addr & 0xf); } """ if __name__ == '__main__': import common; common.generate( name='max2829_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_tda18272hnm_regs.py000077500000000000000000000616111224274632000224130ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing write registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## Note: offsets given from perspective of data bits (excludes address) ######################################################################## ## ######################################################################## ## ID_byte_1 (0x00) Read ######################################################################## ##reserved as 1 0x00[7] 1 ident_14_8 0x00[0:6] 0 ######################################################################## ## ID_byte_2 (0x01) Read ######################################################################## ident_7_0 0x01[0:7] 0 ##~ident ident_7_0, ident_14_8 ######################################################################## ## ID_byte_3 (0x02) Read ######################################################################## major_rev 0x02[4:7] 0 minor_rev 0x02[0:3] 0 ######################################################################## ## Thermo_byte_1 (0x03) Read ######################################################################## ##reserved 0x03[7] 0 tm_d 0x03[0:6] 0 ## 22-127deg C junction temp ######################################################################## ## Thermo_byte_2 (0x04) Write ######################################################################## ##reserved 0x04[1:7] 0 tm_on 0x04[0] 0 sensor_off, sensor_on ######################################################################## ## Power_state_byte_1 (0x05) Read ######################################################################## ##reserved 0x05[2:7] 0 por 0x05[1] 0 read, reset lo_lock 0x05[0] 0 unlocked, locked ######################################################################## ## Power_state_byte_2 (0x06) Read/Write ## Standby modes ######################################################################## ##reserved 0x06[4:7] 0 sm 0x06[3] 0 normal, standby sm_pll 0x06[2] 0 on, off sm_lna 0x06[1] 0 on, off ##resevered as 0 0x06[0] 0 ## (sm, sm_pll, sm_lna) only valid values are 000, 100, 110, and 111 ######################################################################## ## Input_Power_Level_byte (0x07) Read ######################################################################## ##reserved 0x07[7] 0 power_level 0x07[0:6] 0 ## 40dB_Vrms to 110dB_Vrms ## Trigger power level calculation with MSM_byte_1 and MSM_byte_2 ######################################################################## ## IRQ_status (0x08) Read/Write ######################################################################## irq_status 0x08[7] 0 cleared, set ##reserved 0x08[6] 0 irq_xtalcal_end 0x08[5] 0 false, true irq_rssi_end 0x08[4] 0 false, true irq_localc_end 0x08[3] 0 false, true irq_rfcal_end 0x08[2] 0 false, true irq_ircal_end 0x08[1] 0 false, true irq_rccal_end 0x08[0] 0 false, true ######################################################################## ## IRQ_enable (0x09) Read/Write ######################################################################## irq_enable 0x09[7] 1 false, true ##reserved 0x09[6] 0 irq_xtalcal_enable 0x09[5] 0 false, true irq_rssi_enable 0x09[4] 0 false, true irq_localc_enable 0x09[3] 0 false, true irq_rfcal_enable 0x09[2] 0 false, true irq_ircal_enable 0x09[1] 0 false, true irq_rccal_enable 0x09[0] 0 false, true ######################################################################## ## IRQ_clear (0x0a) Read/Write ######################################################################## irq_clear 0x0a[7] 0 false, true ##reserved 0x0a[6] 0 irq_xtalcal_clear 0x0a[5] 0 false, true irq_rssi_clear 0x0a[4] 0 false, true irq_localc_clear 0x0a[3] 0 false, true irq_rfcal_clear 0x0a[2] 0 false, true irq_ircal_clear 0x0a[1] 0 false, true irq_rccal_clear 0x0a[0] 0 false, true ######################################################################## ## IRQ_set (0x0b) Read ######################################################################## irq_set 0x0b[7] 0 false, true ##reserved 0x0b[6] 0 irq_xtalcal_set 0x0b[5] 0 false, true irq_rssi_set 0x0b[4] 0 false, true irq_localc_set 0x0b[3] 0 false, true irq_rfcal_set 0x0b[2] 0 false, true irq_ircal_set 0x0b[1] 0 false, true irq_rccal_set 0x0b[0] 0 false, true ######################################################################## ## AGC1_byte_1 (0x0c) Read/Write ######################################################################## lt_enable 0x0c[7] 0 agc1_6_15db 0x0c[6] 1 ##reserved 0x0c[4:5] 0 agc1_top 0x0c[0:3] 0 ######################################################################## ## AGC2_byte_1 (0x0d) Read ######################################################################## ##reserved 0x0d[5:7] 0 agc2_top 0x0d[0:4] 0xf ######################################################################## ## AGCK_byte_1 (0x0e) Read/Write ######################################################################## agcs_up_step_assym 0x0e[6:7] 3 agcs_up_step 0x0e[5] 1 pulse_shaper_disable 0x0e[4] 0 vsync_pulse, 500us_pulse agck_step 0x0e[2:3] 0 agck_mode 0x0e[0:1] 1 analog_tv=1, digital_tv=2 ######################################################################## ## RF_AGC_byte_1 (0x0f) Read/Write ######################################################################## pd_rfagc_adapt 0x0f[7] 0 on, off rfagc_adapt_top 0x0f[5:6] 0 rfagc_low_bw 0x0f[4] 1 rf_atten_3db 0x0f[3] 0 0db, 3db ## FIXME agc3_top 0x0f[0:2] 1 ######################################################################## ## IR_MIXER_byte_1 (0x10) Read/Write ######################################################################## ##reserved 0x10[4:7] 0 agc4_top 0x10[0:3] 1 ######################################################################## ## AGC5_byte_1 (0x11) Read/Write ######################################################################## ##reserved 0x11[7] 0 agcs_do_step_assym 0x11[5:6] 2 agc5_hpf 0x11[4] 1 off, on agc5_top 0x11[0:3] 1 ######################################################################## ## IF_AGC_byte (0x12) Read/Write ######################################################################## ##reserved 0x12[3:7] 0 if_level 0x12[0:2] 0 0_5vpp=7, 0_6vpp=6, 0_7vpp=5, 0_85vpp=4, 0_8vpp=3, 1_0vpp=2, 1_25vpp=1, 2_0vpp=0 ######################################################################## ## IF_byte_1 (0x13) Read/Write ######################################################################## if_hp_fc 0x13[6:7] 0 0_4mhz, 0_85mhz, 1_0mhz, 1_5mhz if_atsc_notch 0x13[5] 0 off, on lp_fc_offset 0x13[3:4] 0 0_percent, m4_percent, m8_percent, forbidden lp_fc 0x13[0:2] 3 1_7mhz=4, 6_0mhz=0, 7_0mhz=1, 8_0mhz=2, 10_0mhz=3 ######################################################################## ## Reference_byte (0x14) Read/Write ######################################################################## i2c_clock_mode 0x14[7] 0 digital_clock 0x14[6] 1 spread_off, spread_on ##reserved 0x14[5] 0 xtalosc_anareg_en 0x14[4] 0 ##reserved 0x14[2:3] 0 xtout 0x14[0:1] 0 no=0, 16mhz=3 ######################################################################## ## IF_Frequency_byte (0x15) Read/Write ######################################################################## if_freq 0x15[0:7] 0 ## IF frequency = if_freq*50 (kHz) ######################################################################## ## RF_Frequency_byte_1 (0x16) Read/Write ######################################################################## ##reserved 0x16[4:7] 0 rf_freq_19_16 0x16[0:3] 0 ######################################################################## ## RF_Frequency_byte_2 (0x17) Read/Write ######################################################################## rf_freq_15_8 0x17[0:7] 0 ######################################################################## ## RF_Frequency_byte_3 (0x18) Read/Write ######################################################################## rf_freq_7_0 0x18[0:7] 0 ~rf_freq rf_freq_7_0, rf_freq_15_8, rf_freq_19_16 ## RF Frequency = rf_freq (kHz) ######################################################################## ## MSM_byte_1 (0x19) Read/Write ######################################################################## rssi_meas 0x19[7] 0 rf_cal_av 0x19[6] 0 rf_cal 0x19[5] 0 ir_cal_loop 0x19[4] 0 ir_cal_image 0x19[3] 0 ir_cal_wanted 0x19[2] 0 rc_cal 0x19[1] 0 calc_pll 0x19[0] 0 ######################################################################## ## MSM_byte_2 (0x1a) Read ######################################################################## ##reserved 0x1a[2:7] 0 xtalcal_launch 0x1a[1] 0 msm_launch 0x1a[0] 0 ######################################################################## ## PSM_byte_1 (0x1b) Read ######################################################################## psm_agc1 0x1b[6:7] 0 psm_stob 0x1b[5] 0 psmrfpoly 0x1b[4] 0 psm_mixer 0x1b[3] 0 psm_ifpoly 0x1b[2] 0 psm_lodriver 0x1b[0:1] 0 ######################################################################## ## DCC_byte_1 (0x1c) Read ######################################################################## dcc_bypass 0x1c[7] 0 dcc_slow 0x1c[6] 0 dcc_psm 0x1c[5] 0 ##reserved 0x1c[0:4] 0 ######################################################################## ## FLO_Max_byte (0x1d) Read ######################################################################## ##reserved 0x1d[6:7] 0 fmax_lo 0x1d[0:5] 0xA ######################################################################## ## IR_Cal_byte_1 (0x1e) Read ######################################################################## ir_loop 0x1e[6:7] 0 ir_target 0x1e[3:5] 0 ir_gstep 0x1e[0:2] 0 ######################################################################## ## IR_Cal_byte_2 (0x1f) Read ######################################################################## ir_corr_boost 0x1f[7] 0 ir_freqlow_sel 0x1f[6] 0 ir_mode_ram_store 0x1f[5] 0 ir_freqlow 0x1f[0:4] 0 ######################################################################## ## IR_Cal_byte_3 (0x20) Read ######################################################################## ##reserved 0x20[5:7] 0 ir_freqmid 0x20[0:4] 0 ######################################################################## ## IR_Cal_byte_4 (0x21) Read ######################################################################## ##reserved 0x21[5:7] 0 coarse_ir_freqhigh 0x21[4] 0 ir_freqhigh 0x21[0:3] 0 ######################################################################## ## Vsync_Mgt_byte (0x22) Read ######################################################################## pd_vsync_mgt 0x22[7] 0 pd_ovld 0x22[6] 0 pd_udld 0x22[5] 0 agc_ovld_top 0x22[2:4] 0 agc_ovld_timer 0x22[0:1] 0 ######################################################################## ## IR_MIXER_byte_2 (0x23) Read/Write ######################################################################## ir_mixer_loop_off 0x23[7] 0 ir_mixer_do_step 0x23[5:6] 0 ##reserved 0x23[2:4] 0 hi_pass 0x23[1] 0 disable, enable ## FIXME Logic Unclear if_notch 0x23[0] 1 on, off ######################################################################## ## AGC1_byte_2 (0x24) Read ######################################################################## agc1_loop_off 0x24[7] 0 agc1_do_step 0x24[5:6] 2 force_agc1_gain 0x24[4] 0 agc1_gain 0x24[0:3] 8 ######################################################################## ## AGC5_byte_2 (0x25) Read ######################################################################## agc5_loop_off 0x25[7] 0 agc5_do_step 0x25[5:6] 0 ##reserved 0x25[4] 0 force_agc5_gain 0x25[3] 0 ##reserved 0x25[2] 0 agc5_gain 0x25[0:1] 2 ######################################################################## ## RF_Cal_byte_1 (0x26) Read ######################################################################## rfcal_offset_cprog0 0x26[6:7] 0 rfcal_freq0 0x26[4:5] 0 rfcal_offset_cprog1 0x26[2:3] 0 rfcal_freq1 0x26[0:1] 0 ######################################################################## ## RF_Cal_byte_2 (0x27) Read ######################################################################## rfcal_offset_cprog2 0x27[6:7] 0 rfcal_freq2 0x27[4:5] 0 rfcal_offset_cprog3 0x27[2:3] 0 rfcal_freq3 0x27[0:1] 0 ######################################################################## ## RF_Cal_byte_3 (0x28) Read ######################################################################## rfcal_offset_cprog4 0x28[6:7] 0 rfcal_freq4 0x28[4:5] 0 rfcal_offset_cprog5 0x28[2:3] 0 rfcal_freq5 0x28[0:1] 0 ######################################################################## ## RF_Cal_byte_4 (0x29) Read ######################################################################## rfcal_offset_cprog6 0x29[6:7] 0 rfcal_freq6 0x29[4:5] 0 rfcal_offset_cprog7 0x29[2:3] 0 rfcal_freq7 0x29[0:1] 0 ######################################################################## ## RF_Cal_byte_5 (0x2a) Read ######################################################################## rfcal_offset_cprog8 0x2a[6:7] 0 rfcal_freq8 0x2a[4:5] 0 rfcal_offset_cprog9 0x2a[2:3] 0 rfcal_freq9 0x2a[0:1] 0 ######################################################################## ## RF_Cal_byte_6 (0x2b) Read ######################################################################## rfcal_offset_cprog10 0x2b[6:7] 0 rfcal_freq10 0x2b[4:5] 0 rfcal_offset_cprog11 0x2b[2:3] 0 rfcal_freq11 0x2b[0:1] 0 ######################################################################## ## RF_Filter_byte_1 (0x2c) Read ######################################################################## rf_filter_bypass 0x2c[7] 0 ##reserved as 0 0x2c[6] 0 agc2_loop_off 0x2c[5] 0 force_agc2_gain 0x2c[4] 0 rf_filter_gv 0x2c[2:3] 2 rf_filter_band 0x2c[0:1] 0 ######################################################################## ## RF_Filter_byte_2 (0x2d) Read ######################################################################## rf_filter_cap 0x2d[0:7] 0 ######################################################################## ## RF_Filter_byte_3 (0x2e) Read ######################################################################## agc2_do_step 0x2e[6:7] 2 gain_taper 0x2e[0:5] 0 ######################################################################## ## RF_Band_Pass_Filter_byte (0x2f) Read ######################################################################## rf_bpf_bypass 0x2f[7] 0 ##reserved 0x2f[3:6] 0 rf_bpf 0x2f[0:2] 0 ######################################################################## ## CP_Current_byte (0x30) Read ######################################################################## ##reserved 0x30[7] 0 n_cp_current 0x30[0:6] 0x68 ######################################################################## ## AGC_Det_Out_byte (0x31) Read ######################################################################## up_agc5 0x31[7] 0 do_agc5 0x31[6] 0 up_agc4 0x31[5] 0 do_agc4 0x31[4] 0 up_agc2 0x31[3] 0 do_agc2 0x31[2] 0 up_agc1 0x31[1] 0 do_agc1 0x31[0] 0 ######################################################################## ## RF_AGC_Gain_byte_1 (0x32) Read ######################################################################## #set $lna_gain_names = ', '.join(map(lambda x: {0: '', 1: 'm'}[3*x-12 < 0] + str(abs(3*x-12)) + 'db=' + str(x), range(0,10))) ##reserved 0x32[6:7] 0 agc2_gain_read 0x32[4:5] 3 m11db, m8db, m5db, m2db agc1_gain_read 0x32[0:3] 9 $lna_gain_names ######################################################################## ## RF_AGC_Gain_byte_2 (0x33) Read ######################################################################## #set $top_agc3_read_names = ', '.join(map(lambda x: str(int(round(1.92*x+94))) + 'dbuvrms=' + str(x), range(0,8))) ##reserved 0x33[3:7] 0 top_agc3_read 0x33[0:2] 0 $top_agc3_read_names ######################################################################## ## IF_AGC_Gain_byte (0x34) Read ######################################################################## #set $lpf_gain_names = ', '.join(map(lambda x: str(3*x) + 'db=' + str(x), range(0,4))) #set $ir_mixer_names = ', '.join(map(lambda x: str(3*x+2) + 'db=' + str(x), range(0,5))) ##reserved 0x34[5:7] 0 agc5_gain_read 0x34[3:4] 3 $lpf_gain_names agc4_gain_read 0x34[0:2] 4 $ir_mixer_names ######################################################################## ## Power_byte_1 (0x35) Read ######################################################################## rssi 0x35[0:7] 0 ######################################################################## ## Power_byte_2 (0x36) Read ######################################################################## ##reserved 0x36[6:7] 0 rssi_av 0x36[5] 0 ##reserved 0x36[4] 0 rssi_cap_reset_en 0x36[3] 1 rssi_cap_val 0x36[2] 1 rssi_ck_speed 0x36[1] 0 rssi_dicho_not 0x36[0] 1 ######################################################################## ## Misc_byte_1 (0x37) Read/Write ######################################################################## rfcal_phi2 0x37[6:7] 1 dds_polarity 0x37[5] 0 rfcal_deltagain 0x37[1:4] 1 irq_polarity 0x37[0] 0 raised_vcc, raised_low ######################################################################## ## rfcal_log_1 (0x38) Read ######################################################################## rfcal_log_1 0x38[0:7] 0 ######################################################################## ## rfcal_log_2 (0x39) Read ######################################################################## rfcal_log_2 0x39[0:7] 0 ######################################################################## ## rfcal_log_3 (0x3a) Read ######################################################################## rfcal_log_3 0x3a[0:7] 0 ######################################################################## ## rfcal_log_4 (0x3b) Read ######################################################################## rfcal_log_4 0x3b[0:7] 0 ######################################################################## ## rfcal_log_5 (0x3c) Read ######################################################################## rfcal_log_5 0x3c[0:7] 0 ######################################################################## ## rfcal_log_6 (0x3d) Read ######################################################################## rfcal_log_6 0x3d[0:7] 0 ######################################################################## ## rfcal_log_7 (0x3e) Read ######################################################################## rfcal_log_7 0x3e[0:7] 0 ######################################################################## ## rfcal_log_8 (0x3f) Read ######################################################################## rfcal_log_8 0x3f[0:7] 0 ######################################################################## ## rfcal_log_9 (0x40) Read ######################################################################## rfcal_log_9 0x40[0:7] 0 ######################################################################## ## rfcal_log_10 (0x41) Read ######################################################################## rfcal_log_10 0x41[0:7] 0 ######################################################################## ## rfcal_log_11 (0x42) Read ######################################################################## rfcal_log_11 0x42[0:7] 0 ######################################################################## ## rfcal_log_12 (0x43) Read ######################################################################## rfcal_log_12 0x43[0:7] 0 ## ## ######################################################################## ## FORBIDDEN ACCESS to 0x50-0x67 and 0xFE-0xFF ######################################################################## ######################################################################## ## xtal_cal_dac (0x65) Write ######################################################################## magic 0x43[7] 1 untouched, xtal_cal_dac """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return boost::uint8_t(reg); } void set_reg(boost::uint8_t addr, boost::uint8_t reg){ switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) $reg.get_name() = $(reg.get_type())((reg >> $reg.get_shift()) & $reg.get_mask()); #end for break; #end for } } """ SPLIT_REGS_HELPER_TMPL="""\ #for $divname in ['n','f'] void set_$(divname)_divider(boost::uint32_t $divname){ #for $regname in sorted(map(lambda r: r.get_name(), filter(lambda r: r.get_name().find(divname + '_divider') == 0, $regs))) #end for } #end for """ if __name__ == '__main__': import common; common.generate( name='tda18272hnm_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/ic_reg_maps/gen_tuner_4937di5_regs.py000066400000000000000000000060671224274632000227620ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Template for raw text data describing registers # name addr[bit range inclusive] default optional enums ######################################################################## REGS_TMPL="""\ ######################################################################## ## Note: offsets given from perspective of data bits (excludes address) ######################################################################## ## Divider byte 1 ######################################################################## db1 0[0:6] 0x00 ######################################################################## ## Divider byte 2 ######################################################################## db2 1[0:7] 0x00 ######################################################################## ## Control byte 1 ######################################################################## cb7 2[7] 0x01 cp 2[6] 0x00 low,high os 2[0] 0x00 on,off rs 2[1:2] 0x00 d512=3,d640=0,d1024=1 test 2[3:5] 0x01 normal=0x01,cpoff=0x02,cpsink=0x06,cpsrc=0x07,cptest1=0x04,cptest2=0x05 ######################################################################## ## Control byte 2 ######################################################################## bandsel 3[4:7] 0x03 uhf=0x03,vhfhi=0x09,vhflo=0x0a power 3[3] 0x00 on,off """ ######################################################################## # Template for methods in the body of the struct ######################################################################## BODY_TMPL="""\ boost::uint8_t get_reg(boost::uint8_t addr){ boost::uint8_t reg = 0; switch(addr){ #for $addr in sorted(set(map(lambda r: r.get_addr(), $regs))) case $addr: #for $reg in filter(lambda r: r.get_addr() == addr, $regs) reg |= (boost::uint8_t($reg.get_name()) & $reg.get_mask()) << $reg.get_shift(); #end for break; #end for } return boost::uint8_t(reg); } """ if __name__ == '__main__': import common; common.generate( name='tuner_4937di5_regs', regs_tmpl=REGS_TMPL, body_tmpl=BODY_TMPL, file=__file__, ) uhd-3.5.5/host/lib/property_tree.cpp000066400000000000000000000142051224274632000174420ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include using namespace uhd; /*********************************************************************** * Helper function to iterate through paths **********************************************************************/ #include #define path_tokenizer(path) \ boost::tokenizer > \ (path, boost::char_separator("/")) /*********************************************************************** * Property path implementation wrapper **********************************************************************/ fs_path::fs_path(void): std::string(){} fs_path::fs_path(const char *p): std::string(p){} fs_path::fs_path(const std::string &p): std::string(p){} std::string fs_path::leaf(void) const{ const size_t pos = this->rfind("/"); if (pos == std::string::npos) return *this; return this->substr(pos+1); } fs_path fs_path::branch_path(void) const{ const size_t pos = this->rfind("/"); if (pos == std::string::npos) return *this; return fs_path(this->substr(0, pos)); } fs_path uhd::operator/(const fs_path &lhs, const fs_path &rhs){ //strip trailing slash on left-hand-side if (not lhs.empty() and *lhs.rbegin() == '/'){ return fs_path(lhs.substr(0, lhs.size()-1)) / rhs; } //strip leading slash on right-hand-side if (not rhs.empty() and *rhs.begin() == '/'){ return lhs / fs_path(rhs.substr(1)); } return fs_path(lhs + "/" + rhs); } /*********************************************************************** * Property tree implementation **********************************************************************/ class property_tree_impl : public uhd::property_tree{ public: property_tree_impl(const fs_path &root = fs_path()): _root(root) { _guts = boost::make_shared(); } sptr subtree(const fs_path &path_) const{ const fs_path path = _root / path_; boost::mutex::scoped_lock lock(_guts->mutex); property_tree_impl *subtree = new property_tree_impl(path); subtree->_guts = this->_guts; //copy the guts sptr return sptr(subtree); } void remove(const fs_path &path_){ const fs_path path = _root / path_; boost::mutex::scoped_lock lock(_guts->mutex); node_type *parent = NULL; node_type *node = &_guts->root; BOOST_FOREACH(const std::string &name, path_tokenizer(path)){ if (not node->has_key(name)) throw_path_not_found(path); parent = node; node = &(*node)[name]; } if (parent == NULL) throw uhd::runtime_error("Cannot uproot"); parent->pop(fs_path(path.leaf())); } bool exists(const fs_path &path_) const{ const fs_path path = _root / path_; boost::mutex::scoped_lock lock(_guts->mutex); node_type *node = &_guts->root; BOOST_FOREACH(const std::string &name, path_tokenizer(path)){ if (not node->has_key(name)) return false; node = &(*node)[name]; } return true; } std::vector list(const fs_path &path_) const{ const fs_path path = _root / path_; boost::mutex::scoped_lock lock(_guts->mutex); node_type *node = &_guts->root; BOOST_FOREACH(const std::string &name, path_tokenizer(path)){ if (not node->has_key(name)) throw_path_not_found(path); node = &(*node)[name]; } return node->keys(); } void _create(const fs_path &path_, const boost::shared_ptr &prop){ const fs_path path = _root / path_; boost::mutex::scoped_lock lock(_guts->mutex); node_type *node = &_guts->root; BOOST_FOREACH(const std::string &name, path_tokenizer(path)){ if (not node->has_key(name)) (*node)[name] = node_type(); node = &(*node)[name]; } if (node->prop.get() != NULL) throw uhd::runtime_error("Cannot create! Property already exists at: " + path); node->prop = prop; } boost::shared_ptr &_access(const fs_path &path_) const{ const fs_path path = _root / path_; boost::mutex::scoped_lock lock(_guts->mutex); node_type *node = &_guts->root; BOOST_FOREACH(const std::string &name, path_tokenizer(path)){ if (not node->has_key(name)) throw_path_not_found(path); node = &(*node)[name]; } if (node->prop.get() == NULL) throw uhd::runtime_error("Cannot access! Property uninitialized at: " + path); return node->prop; } private: void throw_path_not_found(const fs_path &path) const{ throw uhd::lookup_error("Path not found in tree: " + path); } //basic structural node element struct node_type : uhd::dict{ boost::shared_ptr prop; }; //tree guts which may be referenced in a subtree struct tree_guts_type{ node_type root; boost::mutex mutex; }; //members, the tree and root prefix boost::shared_ptr _guts; const fs_path _root; }; /*********************************************************************** * Property tree factory **********************************************************************/ uhd::property_tree::sptr uhd::property_tree::make(void){ return sptr(new property_tree_impl()); } uhd-3.5.5/host/lib/transport/000077500000000000000000000000001224274632000160655ustar00rootroot00000000000000uhd-3.5.5/host/lib/transport/CMakeLists.txt000066400000000000000000000103561224274632000206320ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## ######################################################################## # Setup libusb ######################################################################## MESSAGE(STATUS "") FIND_PACKAGE(USB1) LIBUHD_REGISTER_COMPONENT("USB" ENABLE_USB ON "ENABLE_LIBUHD;LIBUSB_FOUND" OFF) IF(ENABLE_USB) MESSAGE(STATUS "USB support enabled via libusb.") INCLUDE_DIRECTORIES(${LIBUSB_INCLUDE_DIRS}) LIBUHD_APPEND_LIBS(${LIBUSB_LIBRARIES}) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/libusb1_control.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libusb1_zero_copy.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libusb1_base.cpp ${CMAKE_CURRENT_SOURCE_DIR}/libusb1_base.hpp ) ELSE(ENABLE_USB) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/usb_dummy_impl.cpp ) ENDIF(ENABLE_USB) ######################################################################## # Setup defines for interface address discovery ######################################################################## MESSAGE(STATUS "") MESSAGE(STATUS "Configuring interface address discovery...") INCLUDE(CheckCXXSourceCompiles) INCLUDE(CheckIncludeFileCXX) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ struct ifaddrs *ifap; getifaddrs(&ifap); return 0; } " HAVE_GETIFADDRS ) CHECK_INCLUDE_FILE_CXX(winsock2.h HAVE_WINSOCK2_H) IF(HAVE_GETIFADDRS) MESSAGE(STATUS " Interface address discovery supported through getifaddrs.") SET(IF_ADDRS_DEFS HAVE_GETIFADDRS) ELSEIF(HAVE_WINSOCK2_H) MESSAGE(STATUS " Interface address discovery supported through SIO_GET_INTERFACE_LIST.") SET(IF_ADDRS_DEFS HAVE_SIO_GET_INTERFACE_LIST) ELSE() MESSAGE(STATUS " Interface address discovery not supported.") SET(IF_ADDRS_DEFS HAVE_IF_ADDRS_DUMMY) ENDIF() SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/if_addrs.cpp PROPERTIES COMPILE_DEFINITIONS "${IF_ADDRS_DEFS}" ) ######################################################################## # Setup UDP ######################################################################## IF(WIN32) LIBUHD_APPEND_SOURCES(${CMAKE_CURRENT_SOURCE_DIR}/udp_wsa_zero_copy.cpp) ELSE() LIBUHD_APPEND_SOURCES(${CMAKE_CURRENT_SOURCE_DIR}/udp_zero_copy.cpp) ENDIF() #On windows, the boost asio implementation uses the winsock2 library. #Note: we exclude the .lib extension for cygwin and mingw platforms. IF(WIN32) LIBUHD_APPEND_LIBS(ws2_32) ENDIF() #atlbase.h is not included with visual studio express #conditionally check for atlbase.h and define if found INCLUDE(CheckIncludeFileCXX) CHECK_INCLUDE_FILE_CXX(atlbase.h HAVE_ATLBASE_H) IF(HAVE_ATLBASE_H) SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/udp_zero_copy.cpp ${CMAKE_CURRENT_SOURCE_DIR}/udp_wsa_zero_copy.cpp PROPERTIES COMPILE_DEFINITIONS "HAVE_ATLBASE_H" ) ENDIF(HAVE_ATLBASE_H) ######################################################################## # Append to the list of sources for lib uhd ######################################################################## LIBUHD_PYTHON_GEN_SOURCE( ${CMAKE_CURRENT_SOURCE_DIR}/gen_vrt_if_packet.py ${CMAKE_CURRENT_BINARY_DIR}/vrt_if_packet.cpp ) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/buffer_pool.cpp ${CMAKE_CURRENT_SOURCE_DIR}/if_addrs.cpp ${CMAKE_CURRENT_SOURCE_DIR}/udp_simple.cpp ${CMAKE_CURRENT_SOURCE_DIR}/usb_zero_copy_wrapper.cpp ) uhd-3.5.5/host/lib/transport/buffer_pool.cpp000066400000000000000000000052731224274632000211020ustar00rootroot00000000000000// // Copyright 2011-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include using namespace uhd::transport; //! pad the byte count to a multiple of alignment static size_t pad_to_boundary(const size_t bytes, const size_t alignment){ return bytes + (alignment - bytes)%alignment; } /*********************************************************************** * Buffer pool implementation **********************************************************************/ class buffer_pool_impl : public buffer_pool{ public: buffer_pool_impl( const std::vector &ptrs, boost::shared_array mem ): _ptrs(ptrs), _mem(mem){ /* NOP */ } ptr_type at(const size_t index) const{ return _ptrs.at(index); } size_t size(void) const{ return _ptrs.size(); } private: std::vector _ptrs; boost::shared_array _mem; }; /*********************************************************************** * Buffer pool factor function **********************************************************************/ buffer_pool::sptr buffer_pool::make( const size_t num_buffs, const size_t buff_size, const size_t alignment ){ //1) pad the buffer size to be a multiple of alignment //2) pad the overall memory size for room after alignment //3) allocate the memory in one block of sufficient size const size_t padded_buff_size = pad_to_boundary(buff_size, alignment); boost::shared_array mem(new char[padded_buff_size*num_buffs + alignment-1]); //Fill a vector with boundary-aligned points in the memory const size_t mem_start = pad_to_boundary(size_t(mem.get()), alignment); std::vector ptrs(num_buffs); for (size_t i = 0; i < num_buffs; i++){ ptrs[i] = ptr_type(mem_start + padded_buff_size*i); } //Create a new buffer pool implementation with: // - the pre-computed pointers, and // - the reference to allocated memory. return sptr(new buffer_pool_impl(ptrs, mem)); } uhd-3.5.5/host/lib/transport/gen_vrt_if_packet.py000066400000000000000000000244741224274632000221230ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """ The vrt packer/unpacker code generator: This script will generate the pack and unpack routines that convert metatdata into vrt headers and vrt headers into metadata. The generated code infers jump tables to speed-up the parsing time. """ TMPL_TEXT = """ #import time /*********************************************************************** * This file was generated by $file on $time.strftime("%c") **********************************************************************/ \#include \#include \#include \#include \#include //define the endian macros to convert integers \#ifdef BOOST_BIG_ENDIAN \#define BE_MACRO(x) (x) \#define LE_MACRO(x) uhd::byteswap(x) \#else \#define BE_MACRO(x) uhd::byteswap(x) \#define LE_MACRO(x) (x) \#endif using namespace uhd; using namespace uhd::transport; typedef size_t pred_type; typedef std::vector pred_table_type; #define pred_table_index(hdr) ((hdr >> 20) & 0x1ff) static pred_table_type get_pred_unpack_table(void){ pred_table_type table(1 << 9, 0); //only 9 bits useful here (20-28) for (size_t i = 0; i < table.size(); i++){ boost::uint32_t vrt_hdr_word = i << 20; if(vrt_hdr_word & $hex(0x1 << 28)) table[i] |= $hex($sid_p); if(vrt_hdr_word & $hex(0x1 << 27)) table[i] |= $hex($cid_p); if(vrt_hdr_word & $hex(0x3 << 22)) table[i] |= $hex($tsi_p); if(vrt_hdr_word & $hex(0x3 << 20)) table[i] |= $hex($tsf_p); if(vrt_hdr_word & $hex(0x1 << 26)) table[i] |= $hex($tlr_p); if(vrt_hdr_word & $hex(0x1 << 24)) table[i] |= $hex($eob_p); if(vrt_hdr_word & $hex(0x1 << 25)) table[i] |= $hex($sob_p); } return table; } static const pred_table_type pred_unpack_table(get_pred_unpack_table()); //maps trailer bits to num empty bytes //maps num empty bytes to trailer bits static const size_t occ_table[] = {0, 2, 1, 3}; ######################################################################## #def gen_code($XE_MACRO, $suffix) ######################################################################## void vrt::if_hdr_pack_$(suffix)( boost::uint32_t *packet_buff, if_packet_info_t &if_packet_info ){ boost::uint32_t vrt_hdr_flags = 0; pred_type pred = 0; if (if_packet_info.has_sid) pred |= $hex($sid_p); if (if_packet_info.has_cid) pred |= $hex($cid_p); if (if_packet_info.has_tsi) pred |= $hex($tsi_p); if (if_packet_info.has_tsf) pred |= $hex($tsf_p); if (if_packet_info.has_tlr) pred |= $hex($tlr_p); if (if_packet_info.eob) pred |= $hex($eob_p); if (if_packet_info.sob) pred |= $hex($sob_p); switch(pred){ #for $pred in range(2**7) case $pred: #set $num_header_words = 1 #set $flags = 0 ########## Stream ID ########## #if $pred & $sid_p packet_buff[$num_header_words] = $(XE_MACRO)(if_packet_info.sid); #set $num_header_words += 1 #set $flags |= (0x1 << 28); #end if ########## Class ID ########## #if $pred & $cid_p packet_buff[$num_header_words] = 0; //not implemented #set $num_header_words += 1 packet_buff[$num_header_words] = 0; //not implemented #set $num_header_words += 1 #set $flags |= (0x1 << 27); #end if ########## Integer Time ########## #if $pred & $tsi_p packet_buff[$num_header_words] = $(XE_MACRO)(if_packet_info.tsi); #set $num_header_words += 1 #set $flags |= (0x3 << 22); #end if ########## Fractional Time ########## #if $pred & $tsf_p packet_buff[$num_header_words] = $(XE_MACRO)(boost::uint32_t(if_packet_info.tsf >> 32)); #set $num_header_words += 1 packet_buff[$num_header_words] = $(XE_MACRO)(boost::uint32_t(if_packet_info.tsf >> 0)); #set $num_header_words += 1 #set $flags |= (0x1 << 20); #end if ########## Burst Flags ########## #if $pred & $eob_p #set $flags |= (0x1 << 24); #end if #if $pred & $sob_p #set $flags |= (0x1 << 25); #end if ########## Trailer ########## #if $pred & $tlr_p { const size_t empty_bytes = if_packet_info.num_payload_words32*sizeof(boost::uint32_t) - if_packet_info.num_payload_bytes; if_packet_info.tlr = (0x3 << 22) | (occ_table[empty_bytes & 0x3] << 10); } packet_buff[$num_header_words+if_packet_info.num_payload_words32] = $(XE_MACRO)(if_packet_info.tlr); #set $flags |= (0x1 << 26); #set $num_trailer_words = 1; #else #set $num_trailer_words = 0; #end if ########## Variables ########## if_packet_info.num_header_words32 = $num_header_words; if_packet_info.num_packet_words32 = $($num_header_words + $num_trailer_words) + if_packet_info.num_payload_words32; vrt_hdr_flags = $hex($flags); break; #end for } //fill in complete header word packet_buff[0] = $(XE_MACRO)(boost::uint32_t(0 | (if_packet_info.packet_type << 29) | vrt_hdr_flags | ((if_packet_info.packet_count & 0xf) << 16) | (if_packet_info.num_packet_words32 & 0xffff) )); } void vrt::if_hdr_unpack_$(suffix)( const boost::uint32_t *packet_buff, if_packet_info_t &if_packet_info ){ //extract vrt header boost::uint32_t vrt_hdr_word = $(XE_MACRO)(packet_buff[0]); size_t packet_words32 = vrt_hdr_word & 0xffff; //failure case if (if_packet_info.num_packet_words32 < packet_words32) throw uhd::value_error("bad vrt header or packet fragment"); //extract fields from the header if_packet_info.packet_type = if_packet_info_t::packet_type_t(vrt_hdr_word >> 29); if_packet_info.packet_count = (vrt_hdr_word >> 16) & 0xf; const pred_type pred = pred_unpack_table[pred_table_index(vrt_hdr_word)]; size_t empty_bytes = 0; switch(pred){ #for $pred in range(2**7) case $pred: #set $has_time_spec = False #set $num_header_words = 1 ########## Stream ID ########## #if $pred & $sid_p if_packet_info.has_sid = true; if_packet_info.sid = $(XE_MACRO)(packet_buff[$num_header_words]); #set $num_header_words += 1 #else if_packet_info.has_sid = false; #end if ########## Class ID ########## #if $pred & $cid_p if_packet_info.has_cid = true; if_packet_info.cid = 0; //not implemented #set $num_header_words += 2 #else if_packet_info.has_cid = false; #end if ########## Integer Time ########## #if $pred & $tsi_p if_packet_info.has_tsi = true; if_packet_info.tsi = $(XE_MACRO)(packet_buff[$num_header_words]); #set $num_header_words += 1 #else if_packet_info.has_tsi = false; #end if ########## Fractional Time ########## #if $pred & $tsf_p if_packet_info.has_tsf = true; if_packet_info.tsf = boost::uint64_t($(XE_MACRO)(packet_buff[$num_header_words])) << 32; #set $num_header_words += 1 if_packet_info.tsf |= $(XE_MACRO)(packet_buff[$num_header_words]); #set $num_header_words += 1 #else if_packet_info.has_tsf = false; #end if ########## Burst Flags ########## #if $pred & $eob_p if_packet_info.eob = true; #else if_packet_info.eob = false; #end if #if $pred & $sob_p if_packet_info.sob = true; #else if_packet_info.sob = false; #end if ########## Trailer ########## #if $pred & $tlr_p if_packet_info.has_tlr = true; if_packet_info.tlr = $(XE_MACRO)(packet_buff[packet_words32-1]); #set $num_trailer_words = 1; { const int indicators = (if_packet_info.tlr >> 20) & (if_packet_info.tlr >> 8); if ((indicators & (1 << 0)) != 0) if_packet_info.eob = true; if ((indicators & (1 << 1)) != 0) if_packet_info.sob = true; empty_bytes = occ_table[(indicators >> 2) & 0x3]; } #else if_packet_info.has_tlr = false; #set $num_trailer_words = 0; #end if ########## Variables ########## //another failure case if (packet_words32 < $($num_header_words + $num_trailer_words)) throw uhd::value_error("bad vrt header or invalid packet length"); if_packet_info.num_header_words32 = $num_header_words; if_packet_info.num_payload_words32 = packet_words32 - $($num_header_words + $num_trailer_words); if_packet_info.num_payload_bytes = if_packet_info.num_payload_words32*sizeof(boost::uint32_t) - empty_bytes; break; #end for } } ######################################################################## #end def ######################################################################## $gen_code("BE_MACRO", "be") $gen_code("LE_MACRO", "le") """ def parse_tmpl(_tmpl_text, **kwargs): from Cheetah.Template import Template return str(Template(_tmpl_text, kwargs)) if __name__ == '__main__': import sys open(sys.argv[1], 'w').write(parse_tmpl( TMPL_TEXT, file=__file__, sid_p = 0b0000001, cid_p = 0b0000010, tsi_p = 0b0000100, tsf_p = 0b0001000, tlr_p = 0b0010000, sob_p = 0b0100000, eob_p = 0b1000000, )) uhd-3.5.5/host/lib/transport/if_addrs.cpp000066400000000000000000000116421224274632000203500ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include /*********************************************************************** * Interface address discovery through ifaddrs api **********************************************************************/ #ifdef HAVE_GETIFADDRS #include static boost::asio::ip::address_v4 sockaddr_to_ip_addr(sockaddr *addr){ return boost::asio::ip::address_v4(ntohl( reinterpret_cast(addr)->sin_addr.s_addr )); } std::vector uhd::transport::get_if_addrs(void){ std::vector if_addrs; struct ifaddrs *ifap; if (getifaddrs(&ifap) == 0){ for (struct ifaddrs *iter = ifap; iter != NULL; iter = iter->ifa_next){ //ensure that the entries are valid if (iter->ifa_addr == NULL) continue; if (iter->ifa_addr->sa_family != AF_INET) continue; if (iter->ifa_netmask->sa_family != AF_INET) continue; if (iter->ifa_broadaddr->sa_family != AF_INET) continue; //append a new set of interface addresses if_addrs_t if_addr; if_addr.inet = sockaddr_to_ip_addr(iter->ifa_addr).to_string(); if_addr.mask = sockaddr_to_ip_addr(iter->ifa_netmask).to_string(); if_addr.bcast = sockaddr_to_ip_addr(iter->ifa_broadaddr).to_string(); //correct the bcast address when its same as the gateway if (if_addr.inet == if_addr.bcast or sockaddr_to_ip_addr(iter->ifa_broadaddr) == boost::asio::ip::address_v4(0)){ //manually calculate broadcast address //https://svn.boost.org/trac/boost/ticket/5198 const boost::uint32_t addr = sockaddr_to_ip_addr(iter->ifa_addr).to_ulong(); const boost::uint32_t mask = sockaddr_to_ip_addr(iter->ifa_netmask).to_ulong(); const boost::uint32_t bcast = (addr & mask) | ~mask; if_addr.bcast = boost::asio::ip::address_v4(bcast).to_string(); } if_addrs.push_back(if_addr); } freeifaddrs(ifap); } return if_addrs; } #endif /* HAVE_GETIFADDRS */ /*********************************************************************** * Interface address discovery through windows api **********************************************************************/ #ifdef HAVE_SIO_GET_INTERFACE_LIST #include std::vector uhd::transport::get_if_addrs(void){ std::vector if_addrs; SOCKET sd = WSASocket(AF_INET, SOCK_DGRAM, 0, 0, 0, 0); if (sd == SOCKET_ERROR) { std::cerr << "Failed to get a socket. Error " << WSAGetLastError() << std::endl; return if_addrs; } INTERFACE_INFO InterfaceList[20]; unsigned long nBytesReturned; if (WSAIoctl(sd, SIO_GET_INTERFACE_LIST, 0, 0, &InterfaceList, sizeof(InterfaceList), &nBytesReturned, 0, 0) == SOCKET_ERROR) { std::cerr << "Failed calling WSAIoctl: error " << WSAGetLastError() << std::endl; return if_addrs; } int nNumInterfaces = nBytesReturned / sizeof(INTERFACE_INFO); for (int i = 0; i < nNumInterfaces; ++i) { boost::uint32_t iiAddress = ntohl(reinterpret_cast(InterfaceList[i].iiAddress).sin_addr.s_addr); boost::uint32_t iiNetmask = ntohl(reinterpret_cast(InterfaceList[i].iiNetmask).sin_addr.s_addr); boost::uint32_t iiBroadcastAddress = (iiAddress & iiNetmask) | ~iiNetmask; if_addrs_t if_addr; if_addr.inet = boost::asio::ip::address_v4(iiAddress).to_string(); if_addr.mask = boost::asio::ip::address_v4(iiNetmask).to_string(); if_addr.bcast = boost::asio::ip::address_v4(iiBroadcastAddress).to_string(); if_addrs.push_back(if_addr); } return if_addrs; } #endif /* HAVE_SIO_GET_INTERFACE_LIST */ /*********************************************************************** * Interface address discovery not included **********************************************************************/ #ifdef HAVE_IF_ADDRS_DUMMY std::vector uhd::transport::get_if_addrs(void){ return std::vector(); } #endif /* HAVE_IF_ADDRS_DUMMY */ uhd-3.5.5/host/lib/transport/libusb1_base.cpp000066400000000000000000000212251224274632000211260ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "libusb1_base.hpp" #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::transport; /*********************************************************************** * libusb session **********************************************************************/ class libusb_session_impl : public libusb::session{ public: libusb_session_impl(void){ UHD_ASSERT_THROW(libusb_init(&_context) == 0); libusb_set_debug(_context, debug_level); } ~libusb_session_impl(void){ libusb_exit(_context); } libusb_context *get_context(void) const{ return _context; } private: libusb_context *_context; }; libusb::session::sptr libusb::session::get_global_session(void){ static boost::weak_ptr global_session; //not expired -> get existing session if (not global_session.expired()) return global_session.lock(); //create a new global session sptr new_global_session(new libusb_session_impl()); global_session = new_global_session; return new_global_session; } /*********************************************************************** * libusb device **********************************************************************/ class libusb_device_impl : public libusb::device{ public: libusb_device_impl(libusb_device *dev){ _session = libusb::session::get_global_session(); _dev = dev; } ~libusb_device_impl(void){ libusb_unref_device(this->get()); } libusb_device *get(void) const{ return _dev; } private: libusb::session::sptr _session; //always keep a reference to session libusb_device *_dev; }; /*********************************************************************** * libusb device list **********************************************************************/ class libusb_device_list_impl : public libusb::device_list{ public: libusb_device_list_impl(void){ libusb::session::sptr sess = libusb::session::get_global_session(); //allocate a new list of devices libusb_device** dev_list; ssize_t ret = libusb_get_device_list(sess->get_context(), &dev_list); if (ret < 0) throw uhd::os_error("cannot enumerate usb devices"); //fill the vector of device references for (size_t i = 0; i < size_t(ret); i++) _devs.push_back( libusb::device::sptr(new libusb_device_impl(dev_list[i])) ); //free the device list but dont unref (done in ~device) libusb_free_device_list(dev_list, false/*dont unref*/); } size_t size(void) const{ return _devs.size(); } libusb::device::sptr at(size_t i) const{ return _devs.at(i); } private: std::vector _devs; }; libusb::device_list::sptr libusb::device_list::make(void){ return sptr(new libusb_device_list_impl()); } /*********************************************************************** * libusb device descriptor **********************************************************************/ class libusb_device_descriptor_impl : public libusb::device_descriptor{ public: libusb_device_descriptor_impl(libusb::device::sptr dev){ _dev = dev; UHD_ASSERT_THROW(libusb_get_device_descriptor(_dev->get(), &_desc) == 0); } const libusb_device_descriptor &get(void) const{ return _desc; } std::string get_ascii_serial(void) const{ if (this->get().iSerialNumber == 0) return ""; libusb::device_handle::sptr handle( libusb::device_handle::get_cached_handle(_dev) ); unsigned char buff[512]; ssize_t ret = libusb_get_string_descriptor_ascii( handle->get(), this->get().iSerialNumber, buff, sizeof(buff) ); if (ret < 0) return ""; //on error, just return empty string return std::string((char *)buff, ret); } private: libusb::device::sptr _dev; //always keep a reference to device libusb_device_descriptor _desc; }; libusb::device_descriptor::sptr libusb::device_descriptor::make(device::sptr dev){ return sptr(new libusb_device_descriptor_impl(dev)); } /*********************************************************************** * libusb device handle **********************************************************************/ class libusb_device_handle_impl : public libusb::device_handle{ public: libusb_device_handle_impl(libusb::device::sptr dev){ _dev = dev; UHD_ASSERT_THROW(libusb_open(_dev->get(), &_handle) == 0); } ~libusb_device_handle_impl(void){ //release all claimed interfaces for (size_t i = 0; i < _claimed.size(); i++){ libusb_release_interface(this->get(), _claimed[i]); } libusb_close(_handle); } libusb_device_handle *get(void) const{ return _handle; } void claim_interface(int interface){ UHD_ASSERT_THROW(libusb_claim_interface(this->get(), interface) == 0); _claimed.push_back(interface); } private: libusb::device::sptr _dev; //always keep a reference to device libusb_device_handle *_handle; std::vector _claimed; }; libusb::device_handle::sptr libusb::device_handle::get_cached_handle(device::sptr dev){ static uhd::dict > handles; //lock for atomic access to static table above static boost::mutex mutex; boost::mutex::scoped_lock lock(mutex); //not expired -> get existing handle if (handles.has_key(dev->get()) and not handles[dev->get()].expired()){ return handles[dev->get()].lock(); } //create a new cached handle try{ sptr new_handle(new libusb_device_handle_impl(dev)); handles[dev->get()] = new_handle; return new_handle; } catch(const uhd::exception &){ #ifdef UHD_PLATFORM_LINUX UHD_MSG(error) << "USB open failed: insufficient permissions.\n" "See the application notes for your device.\n" << std::endl; #else UHD_LOG << "USB open failed: device already claimed." << std::endl; #endif throw; } } /*********************************************************************** * libusb special handle **********************************************************************/ class libusb_special_handle_impl : public libusb::special_handle{ public: libusb_special_handle_impl(libusb::device::sptr dev){ _dev = dev; } libusb::device::sptr get_device(void) const{ return _dev; } std::string get_serial(void) const{ return libusb::device_descriptor::make(this->get_device())->get_ascii_serial(); } boost::uint16_t get_vendor_id(void) const{ return libusb::device_descriptor::make(this->get_device())->get().idVendor; } boost::uint16_t get_product_id(void) const{ return libusb::device_descriptor::make(this->get_device())->get().idProduct; } private: libusb::device::sptr _dev; //always keep a reference to device }; libusb::special_handle::sptr libusb::special_handle::make(device::sptr dev){ return sptr(new libusb_special_handle_impl(dev)); } /*********************************************************************** * list device handles implementations **********************************************************************/ std::vector usb_device_handle::get_device_list( boost::uint16_t vid, boost::uint16_t pid ){ std::vector handles; libusb::device_list::sptr dev_list = libusb::device_list::make(); for (size_t i = 0; i < dev_list->size(); i++){ usb_device_handle::sptr handle = libusb::special_handle::make(dev_list->at(i)); if (handle->get_vendor_id() == vid and handle->get_product_id() == pid){ handles.push_back(handle); } } return handles; } uhd-3.5.5/host/lib/transport/libusb1_base.hpp000066400000000000000000000115261224274632000211360ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_TRANSPORT_LIBUSB_HPP #define INCLUDED_LIBUHD_TRANSPORT_LIBUSB_HPP #include #include #include #include #include /*********************************************************************** * Libusb object oriented smart pointer wrappers: * The following wrappers provide allocation and automatic deallocation * for various libusb data types and handles. The construction routines * also store tables of already allocated structures to avoid multiple * occurrences of opened handles (for example). **********************************************************************/ namespace uhd { namespace transport { namespace libusb { /*! * This session class holds a global libusb context for this process. * The get global session call will create a new context if none exists. * When all references to session are destroyed, the context will be freed. */ class session : boost::noncopyable { public: typedef boost::shared_ptr sptr; /*! * Level 0: no messages ever printed by the library (default) * Level 1: error messages are printed to stderr * Level 2: warning and error messages are printed to stderr * Level 3: informational messages are printed to stdout, warning * and error messages are printed to stderr */ static const int debug_level = 0; //! get a shared pointer to the global session static sptr get_global_session(void); //! get the underlying libusb context pointer virtual libusb_context *get_context(void) const = 0; }; /*! * Holds a device pointer with a reference to the session. */ class device : boost::noncopyable { public: typedef boost::shared_ptr sptr; //! get the underlying device pointer virtual libusb_device *get(void) const = 0; }; /*! * This device list class holds a device list that will be * automatically freed when the last reference is destroyed. */ class device_list : boost::noncopyable { public: typedef boost::shared_ptr sptr; //! make a new device list static sptr make(void); //! the number of devices in this list virtual size_t size() const = 0; //! get the device pointer at a particular index virtual device::sptr at(size_t index) const = 0; }; /*! * Holds a device descriptor and a reference to the device. */ class device_descriptor : boost::noncopyable { public: typedef boost::shared_ptr sptr; //! make a new descriptor from a device reference static sptr make(device::sptr); //! get the underlying device descriptor virtual const libusb_device_descriptor &get(void) const = 0; virtual std::string get_ascii_serial(void) const = 0; }; /*! * Holds a device handle and a reference to the device. */ class device_handle : boost::noncopyable { public: typedef boost::shared_ptr sptr; //! get a cached handle or make a new one given the device static sptr get_cached_handle(device::sptr); //! get the underlying device handle virtual libusb_device_handle *get(void) const = 0; /*! * Open USB interfaces for control using magic value * IN interface: 2 * OUT interface: 1 * Control interface: 0 */ virtual void claim_interface(int) = 0; }; /*! * The special handle is our internal implementation of the * usb device handle which is used publicly to identify a device. */ class special_handle : public usb_device_handle { public: typedef boost::shared_ptr sptr; //! make a new special handle from device static sptr make(device::sptr); //! get the underlying device reference virtual device::sptr get_device(void) const = 0; }; } }} //namespace #endif /* INCLUDED_LIBUHD_TRANSPORT_LIBUSB_HPP */ uhd-3.5.5/host/lib/transport/libusb1_control.cpp000066400000000000000000000047471224274632000217060ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "libusb1_base.hpp" #include #include using namespace uhd::transport; const int libusb_timeout = 0; /*********************************************************************** * libusb-1.0 implementation of USB control transport **********************************************************************/ class libusb_control_impl : public usb_control { public: libusb_control_impl(libusb::device_handle::sptr handle, const size_t interface): _handle(handle) { _handle->claim_interface(interface); } ssize_t submit(boost::uint8_t request_type, boost::uint8_t request, boost::uint16_t value, boost::uint16_t index, unsigned char *buff, boost::uint16_t length ){ boost::mutex::scoped_lock lock(_mutex); return libusb_control_transfer(_handle->get(), request_type, request, value, index, buff, length, libusb_timeout); } private: libusb::device_handle::sptr _handle; boost::mutex _mutex; }; /*********************************************************************** * USB control public make functions **********************************************************************/ usb_control::sptr usb_control::make(usb_device_handle::sptr handle, const size_t interface){ return sptr(new libusb_control_impl(libusb::device_handle::get_cached_handle( boost::static_pointer_cast(handle)->get_device() ), interface)); } uhd-3.5.5/host/lib/transport/libusb1_zero_copy.cpp000066400000000000000000000272331224274632000222320ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "libusb1_base.hpp" #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::transport; static const size_t DEFAULT_NUM_XFERS = 16; //num xfers static const size_t DEFAULT_XFER_SIZE = 32*512; //bytes //! Define LIBUSB_CALL when its missing (non-windows) #ifndef LIBUSB_CALL #define LIBUSB_CALL #endif /*LIBUSB_CALL*/ /*! * All libusb callback functions should be marked with the LIBUSB_CALL macro * to ensure that they are compiled with the same calling convention as libusb. */ //! helper function: handles all async callbacks static void LIBUSB_CALL libusb_async_cb(libusb_transfer *lut){ *(static_cast(lut->user_data)) = true; } /*! * Wait for a managed buffer to become complete. * * This routine processes async events until the transaction completes. * We must call the libusb handle events in a loop because the handler * may complete managed buffers other than the one we are waiting on. * * We cannot determine if handle events timed out or processed an event. * Therefore, the timeout condition is handled by using boost system time. * * \param ctx the libusb context structure * \param timeout the wait timeout in seconds * \param completed a reference to the completed flag * \return true for completion, false for timeout */ UHD_INLINE bool wait_for_completion(libusb_context *ctx, const double timeout, bool &completed){ //already completed by a previous call? if (completed) return true; //perform a non-blocking event handle timeval tv; tv.tv_sec = 0; tv.tv_usec = 0; libusb_handle_events_timeout(ctx, &tv); if (completed) return true; //finish the rest with a timeout loop const boost::system_time timeout_time = boost::get_system_time() + boost::posix_time::microseconds(long(timeout*1000000)); while (not completed and (boost::get_system_time() < timeout_time)){ timeval tv; tv.tv_sec = 0; tv.tv_usec = 10000; /*10ms*/ libusb_handle_events_timeout(ctx, &tv); } return completed; } /*********************************************************************** * Reusable managed receiver buffer: * - Associated with a particular libusb transfer struct. * - Submits the transfer to libusb in the release method. **********************************************************************/ class libusb_zero_copy_mrb : public managed_recv_buffer{ public: libusb_zero_copy_mrb(libusb_transfer *lut, const size_t frame_size): _ctx(libusb::session::get_global_session()->get_context()), _lut(lut), _frame_size(frame_size) { /* NOP */ } void release(void){ completed = false; _lut->length = _frame_size; //always reset length UHD_ASSERT_THROW(libusb_submit_transfer(_lut) == 0); } sptr get_new(const double timeout, size_t &index){ if (wait_for_completion(_ctx, timeout, completed)){ index++; return make(this, _lut->buffer, _lut->actual_length); } return managed_recv_buffer::sptr(); } bool completed; private: libusb_context *_ctx; libusb_transfer *_lut; const size_t _frame_size; }; /*********************************************************************** * Reusable managed send buffer: * - Associated with a particular libusb transfer struct. * - Submits the transfer to libusb in the commit method. **********************************************************************/ class libusb_zero_copy_msb : public managed_send_buffer{ public: libusb_zero_copy_msb(libusb_transfer *lut, const size_t frame_size): _ctx(libusb::session::get_global_session()->get_context()), _lut(lut), _frame_size(frame_size) { completed = true; } void release(void){ completed = false; _lut->length = size(); UHD_ASSERT_THROW(libusb_submit_transfer(_lut) == 0); } sptr get_new(const double timeout, size_t &index){ if (wait_for_completion(_ctx, timeout, completed)){ index++; return make(this, _lut->buffer, _frame_size); } return managed_send_buffer::sptr(); } bool completed; private: libusb_context *_ctx; libusb_transfer *_lut; const size_t _frame_size; }; /*********************************************************************** * USB zero_copy device class **********************************************************************/ class libusb_zero_copy_impl : public usb_zero_copy{ public: libusb_zero_copy_impl( libusb::device_handle::sptr handle, const size_t recv_interface, const size_t recv_endpoint, const size_t send_interface, const size_t send_endpoint, const device_addr_t &hints ): _handle(handle), _recv_frame_size(size_t(hints.cast("recv_frame_size", DEFAULT_XFER_SIZE))), _num_recv_frames(size_t(hints.cast("num_recv_frames", DEFAULT_NUM_XFERS))), _send_frame_size(size_t(hints.cast("send_frame_size", DEFAULT_XFER_SIZE))), _num_send_frames(size_t(hints.cast("num_send_frames", DEFAULT_NUM_XFERS))), _recv_buffer_pool(buffer_pool::make(_num_recv_frames, _recv_frame_size)), _send_buffer_pool(buffer_pool::make(_num_send_frames, _send_frame_size)), _next_recv_buff_index(0), _next_send_buff_index(0) { _handle->claim_interface(recv_interface); _handle->claim_interface(send_interface); //flush the buffers out of the recv endpoint //limit the flushing to at most one second for (size_t i = 0; i < 100; i++) { unsigned char buff[512]; int transfered = 0; const int status = libusb_bulk_transfer( _handle->get(), // dev_handle (recv_endpoint & 0x7f) | 0x80, // endpoint static_cast(buff), sizeof(buff), &transfered, //bytes xfered 10 //timeout ms ); if (status == LIBUSB_ERROR_TIMEOUT) break; } //allocate libusb transfer structs and managed receive buffers for (size_t i = 0; i < get_num_recv_frames(); i++){ libusb_transfer *lut = libusb_alloc_transfer(0); UHD_ASSERT_THROW(lut != NULL); _mrb_pool.push_back(boost::make_shared(lut, this->get_recv_frame_size())); libusb_fill_bulk_transfer( lut, // transfer _handle->get(), // dev_handle (recv_endpoint & 0x7f) | 0x80, // endpoint static_cast(_recv_buffer_pool->at(i)), // buffer this->get_recv_frame_size(), // length libusb_transfer_cb_fn(&libusb_async_cb), // callback static_cast(&_mrb_pool.back()->completed), // user_data 0 // timeout (ms) ); _all_luts.push_back(lut); _mrb_pool.back()->release(); } //allocate libusb transfer structs and managed send buffers for (size_t i = 0; i < get_num_send_frames(); i++){ libusb_transfer *lut = libusb_alloc_transfer(0); UHD_ASSERT_THROW(lut != NULL); _msb_pool.push_back(boost::make_shared(lut, this->get_send_frame_size())); libusb_fill_bulk_transfer( lut, // transfer _handle->get(), // dev_handle (send_endpoint & 0x7f) | 0x00, // endpoint static_cast(_send_buffer_pool->at(i)), // buffer this->get_send_frame_size(), // length libusb_transfer_cb_fn(&libusb_async_cb), // callback static_cast(&_msb_pool.back()->completed), // user_data 0 // timeout ); _all_luts.push_back(lut); } } ~libusb_zero_copy_impl(void){ libusb_context *ctx = libusb::session::get_global_session()->get_context(); //cancel all transfers BOOST_FOREACH(libusb_transfer *lut, _all_luts){ libusb_cancel_transfer(lut); } //process all transfers until timeout occurs bool completed = false; wait_for_completion(ctx, 0.01, completed); //free all transfers BOOST_FOREACH(libusb_transfer *lut, _all_luts){ libusb_free_transfer(lut); } } managed_recv_buffer::sptr get_recv_buff(double timeout){ if (_next_recv_buff_index == _num_recv_frames) _next_recv_buff_index = 0; return _mrb_pool[_next_recv_buff_index]->get_new(timeout, _next_recv_buff_index); } managed_send_buffer::sptr get_send_buff(double timeout){ if (_next_send_buff_index == _num_send_frames) _next_send_buff_index = 0; return _msb_pool[_next_send_buff_index]->get_new(timeout, _next_send_buff_index); } size_t get_num_recv_frames(void) const { return _num_recv_frames; } size_t get_num_send_frames(void) const { return _num_send_frames; } size_t get_recv_frame_size(void) const { return _recv_frame_size; } size_t get_send_frame_size(void) const { return _send_frame_size; } private: libusb::device_handle::sptr _handle; const size_t _recv_frame_size, _num_recv_frames; const size_t _send_frame_size, _num_send_frames; //! Storage for transfer related objects buffer_pool::sptr _recv_buffer_pool, _send_buffer_pool; std::vector > _mrb_pool; std::vector > _msb_pool; size_t _next_recv_buff_index, _next_send_buff_index; //! a list of all transfer structs we allocated std::list _all_luts; }; /*********************************************************************** * USB zero_copy make functions **********************************************************************/ usb_zero_copy::sptr usb_zero_copy::make( usb_device_handle::sptr handle, const size_t recv_interface, const size_t recv_endpoint, const size_t send_interface, const size_t send_endpoint, const device_addr_t &hints ){ libusb::device_handle::sptr dev_handle(libusb::device_handle::get_cached_handle( boost::static_pointer_cast(handle)->get_device() )); return sptr(new libusb_zero_copy_impl( dev_handle, recv_interface, recv_endpoint, send_interface, send_endpoint, hints )); } uhd-3.5.5/host/lib/transport/super_recv_packet_handler.hpp000066400000000000000000000627051224274632000240110ustar00rootroot00000000000000// // Copyright 2011-2013 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_TRANSPORT_SUPER_RECV_PACKET_HANDLER_HPP #define INCLUDED_LIBUHD_TRANSPORT_SUPER_RECV_PACKET_HANDLER_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace uhd{ namespace transport{ namespace sph{ UHD_INLINE boost::uint32_t get_context_code( const boost::uint32_t *vrt_hdr, const vrt::if_packet_info_t &if_packet_info ){ //extract the context word (we dont know the endianness so mirror the bytes) boost::uint32_t word0 = vrt_hdr[if_packet_info.num_header_words32] | uhd::byteswap(vrt_hdr[if_packet_info.num_header_words32]); return word0 & 0xff; } typedef boost::function handle_overflow_type; static inline void handle_overflow_nop(void){} /*********************************************************************** * Super receive packet handler * * A receive packet handler represents a group of channels. * The channel group shares a common sample rate. * All channels are received in unison in recv(). **********************************************************************/ class recv_packet_handler{ public: typedef boost::function get_buff_type; typedef void(*vrt_unpacker_type)(const boost::uint32_t *, vrt::if_packet_info_t &); //typedef boost::function vrt_unpacker_type; /*! * Make a new packet handler for receive * \param size the number of transport channels */ recv_packet_handler(const size_t size = 1): _queue_error_for_next_call(false), _buffers_infos_index(0) { this->resize(size); set_alignment_failure_threshold(1000); } ~recv_packet_handler(void){ _task_barrier.interrupt(); _task_handlers.clear(); } //! Resize the number of transport channels void resize(const size_t size){ if (this->size() == size) return; _task_handlers.clear(); _props.resize(size); //re-initialize all buffers infos by re-creating the vector _buffers_infos = std::vector(4, buffers_info_type(size)); _task_barrier.resize(size); _task_handlers.resize(size); for (size_t i = 1/*skip 0*/; i < size; i++){ _task_handlers[i] = task::make(boost::bind(&recv_packet_handler::converter_thread_task, this, i)); }; } //! Get the channel width of this handler size_t size(void) const{ return _props.size(); } //! Setup the vrt unpacker function and offset void set_vrt_unpacker(const vrt_unpacker_type &vrt_unpacker, const size_t header_offset_words32 = 0){ _vrt_unpacker = vrt_unpacker; _header_offset_words32 = header_offset_words32; } /*! * Set the threshold for alignment failure. * How many packets throw out before giving up? * \param threshold number of packets per channel */ void set_alignment_failure_threshold(const size_t threshold){ _alignment_faulure_threshold = threshold*this->size(); } //! Set the rate of ticks per second void set_tick_rate(const double rate){ _tick_rate = rate; } //! Set the rate of samples per second void set_samp_rate(const double rate){ _samp_rate = rate; } /*! * Set the function to get a managed buffer. * \param xport_chan which transport channel * \param get_buff the getter function */ void set_xport_chan_get_buff(const size_t xport_chan, const get_buff_type &get_buff, const bool flush = false){ if (flush){ while (get_buff(0.0)); } _props.at(xport_chan).get_buff = get_buff; } //! Set the conversion routine for all channels void set_converter(const uhd::convert::id_type &id){ _num_outputs = id.num_outputs; _converter = uhd::convert::get_converter(id)(); this->set_scale_factor(1/32767.); //update after setting converter _bytes_per_otw_item = uhd::convert::get_bytes_per_item(id.input_format); _bytes_per_cpu_item = uhd::convert::get_bytes_per_item(id.output_format); } //! Set the transport channel's overflow handler void set_overflow_handler(const size_t xport_chan, const handle_overflow_type &handle_overflow){ _props.at(xport_chan).handle_overflow = handle_overflow; } //! Set the scale factor used in float conversion void set_scale_factor(const double scale_factor){ _converter->set_scalar(scale_factor); } /******************************************************************* * Receive: * The entry point for the fast-path receive calls. * Dispatch into combinations of single packet receive calls. ******************************************************************/ UHD_INLINE size_t recv( const uhd::rx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, uhd::rx_metadata_t &metadata, const double timeout, const bool one_packet ){ //handle metadata queued from a previous receive if (_queue_error_for_next_call){ _queue_error_for_next_call = false; metadata = _queue_metadata; //We want to allow a full buffer recv to be cut short by a timeout, //but do not want to generate an inline timeout message packet. if (_queue_metadata.error_code != rx_metadata_t::ERROR_CODE_TIMEOUT) return 0; } size_t accum_num_samps = recv_one_packet( buffs, nsamps_per_buff, metadata, timeout ); if (one_packet) return accum_num_samps; //first recv had an error code set, return immediately if (metadata.error_code != rx_metadata_t::ERROR_CODE_NONE) return accum_num_samps; //loop until buffer is filled or error code while(accum_num_samps < nsamps_per_buff){ size_t num_samps = recv_one_packet( buffs, nsamps_per_buff - accum_num_samps, _queue_metadata, timeout, accum_num_samps*_bytes_per_cpu_item ); //metadata had an error code set, store for next call and return if (_queue_metadata.error_code != rx_metadata_t::ERROR_CODE_NONE){ _queue_error_for_next_call = true; break; } accum_num_samps += num_samps; } return accum_num_samps; } private: vrt_unpacker_type _vrt_unpacker; size_t _header_offset_words32; double _tick_rate, _samp_rate; bool _queue_error_for_next_call; size_t _alignment_faulure_threshold; rx_metadata_t _queue_metadata; struct xport_chan_props_type{ xport_chan_props_type(void): packet_count(0), handle_overflow(&handle_overflow_nop) {} get_buff_type get_buff; size_t packet_count; handle_overflow_type handle_overflow; }; std::vector _props; size_t _num_outputs; size_t _bytes_per_otw_item; //used in conversion size_t _bytes_per_cpu_item; //used in conversion uhd::convert::converter::sptr _converter; //used in conversion //! information stored for a received buffer struct per_buffer_info_type{ managed_recv_buffer::sptr buff; const boost::uint32_t *vrt_hdr; vrt::if_packet_info_t ifpi; time_spec_t time; const char *copy_buff; }; //!information stored for a set of aligned buffers struct buffers_info_type : std::vector { buffers_info_type(const size_t size): std::vector(size), indexes_todo(size, true), alignment_time_valid(false), data_bytes_to_copy(0), fragment_offset_in_samps(0) {/* NOP */} boost::dynamic_bitset<> indexes_todo; //used in alignment logic time_spec_t alignment_time; //used in alignment logic bool alignment_time_valid; //used in alignment logic size_t data_bytes_to_copy; //keeps track of state size_t fragment_offset_in_samps; //keeps track of state rx_metadata_t metadata; //packet description }; //! a circular queue of buffer infos std::vector _buffers_infos; size_t _buffers_infos_index; buffers_info_type &get_curr_buffer_info(void){return _buffers_infos[_buffers_infos_index];} buffers_info_type &get_prev_buffer_info(void){return _buffers_infos[(_buffers_infos_index + 3)%4];} buffers_info_type &get_next_buffer_info(void){return _buffers_infos[(_buffers_infos_index + 1)%4];} void increment_buffer_info(void){_buffers_infos_index = (_buffers_infos_index + 1)%4;} //! possible return options for the packet receiver enum packet_type{ PACKET_IF_DATA, PACKET_TIMESTAMP_ERROR, PACKET_INLINE_MESSAGE, PACKET_TIMEOUT_ERROR, PACKET_SEQUENCE_ERROR }; /******************************************************************* * Get and process a single packet from the transport: * Receive a single packet at the given index. * Extract all the relevant info and store. * Check the info to determine the return code. ******************************************************************/ UHD_INLINE packet_type get_and_process_single_packet( const size_t index, buffers_info_type &prev_buffer_info, buffers_info_type &curr_buffer_info, double timeout ){ //get a single packet from the transport layer managed_recv_buffer::sptr &buff = curr_buffer_info[index].buff; buff = _props[index].get_buff(timeout); if (buff.get() == NULL) return PACKET_TIMEOUT_ERROR; //bounds check before extract size_t num_packet_words32 = buff->size()/sizeof(boost::uint32_t); if (num_packet_words32 <= _header_offset_words32){ throw std::runtime_error("recv buffer smaller than vrt packet offset"); } //extract packet info per_buffer_info_type &info = curr_buffer_info[index]; info.ifpi.num_packet_words32 = num_packet_words32 - _header_offset_words32; info.vrt_hdr = buff->cast() + _header_offset_words32; _vrt_unpacker(info.vrt_hdr, info.ifpi); info.time = time_spec_t::from_ticks(info.ifpi.tsf, _tick_rate); //assumes has_tsf is true info.copy_buff = reinterpret_cast(info.vrt_hdr + info.ifpi.num_header_words32); //-------------------------------------------------------------- //-- Determine return conditions: //-- The order of these checks is HOLY. //-------------------------------------------------------------- //1) check for inline IF message packets if (info.ifpi.packet_type != vrt::if_packet_info_t::PACKET_TYPE_DATA){ return PACKET_INLINE_MESSAGE; } //2) check for sequence errors #ifndef SRPH_DONT_CHECK_SEQUENCE const size_t expected_packet_count = _props[index].packet_count; _props[index].packet_count = (info.ifpi.packet_count + 1)%16; if (expected_packet_count != info.ifpi.packet_count){ return PACKET_SEQUENCE_ERROR; } #endif //3) check for out of order timestamps if (info.ifpi.has_tsf and prev_buffer_info[index].time > info.time){ return PACKET_TIMESTAMP_ERROR; } //4) otherwise the packet is normal! return PACKET_IF_DATA; } /******************************************************************* * Alignment check: * Check the received packet for alignment and mark accordingly. ******************************************************************/ UHD_INLINE void alignment_check( const size_t index, buffers_info_type &info ){ //if alignment time was not valid or if the sequence id is newer: // use this index's time as the alignment time // reset the indexes list and remove this index if (not info.alignment_time_valid or info[index].time > info.alignment_time){ info.alignment_time_valid = true; info.alignment_time = info[index].time; info.indexes_todo.set(); info.indexes_todo.reset(index); info.data_bytes_to_copy = info[index].ifpi.num_payload_bytes; } //if the sequence id matches: // remove this index from the list and continue else if (info[index].time == info.alignment_time){ info.indexes_todo.reset(index); } //if the sequence id is older: // continue with the same index to try again //else if (info[index].time < info.alignment_time)... } /******************************************************************* * Get aligned buffers: * Iterate through each index and try to accumulate aligned buffers. * Handle all of the edge cases like inline messages and errors. * The logic will throw out older packets until it finds a match. ******************************************************************/ UHD_INLINE void get_aligned_buffs(double timeout){ increment_buffer_info(); //increment to next buffer buffers_info_type &prev_info = get_prev_buffer_info(); buffers_info_type &curr_info = get_curr_buffer_info(); buffers_info_type &next_info = get_next_buffer_info(); //Loop until we get a message of an aligned set of buffers: // - Receive a single packet and extract its info. // - Handle the packet type yielded by the receive. // - Check the timestamps for alignment conditions. size_t iterations = 0; while (curr_info.indexes_todo.any()){ //get the index to process for this iteration const size_t index = curr_info.indexes_todo.find_first(); packet_type packet; //receive a single packet from the transport try{ packet = get_and_process_single_packet( index, prev_info, curr_info, timeout ); } //handle the case when the get packet throws catch(const std::exception &e){ UHD_MSG(error) << boost::format( "The receive packet handler caught an exception.\n%s" ) % e.what() << std::endl; std::swap(curr_info, next_info); //save progress from curr -> next curr_info.metadata.has_time_spec = false; curr_info.metadata.time_spec = time_spec_t(0.0); curr_info.metadata.more_fragments = false; curr_info.metadata.fragment_offset = 0; curr_info.metadata.start_of_burst = false; curr_info.metadata.end_of_burst = false; curr_info.metadata.error_code = rx_metadata_t::ERROR_CODE_BAD_PACKET; return; } switch(packet){ case PACKET_IF_DATA: alignment_check(index, curr_info); break; case PACKET_TIMESTAMP_ERROR: //If the user changes the device time while streaming or without flushing, //we can receive a packet that comes before the previous packet in time. //This could cause the alignment logic to discard future received packets. //Therefore, when this occurs, we reset the info to restart from scratch. if (curr_info.alignment_time_valid and curr_info.alignment_time != curr_info[index].time){ curr_info.alignment_time_valid = false; } alignment_check(index, curr_info); break; case PACKET_INLINE_MESSAGE: std::swap(curr_info, next_info); //save progress from curr -> next curr_info.metadata.has_time_spec = next_info[index].ifpi.has_tsf; curr_info.metadata.time_spec = next_info[index].time; curr_info.metadata.more_fragments = false; curr_info.metadata.fragment_offset = 0; curr_info.metadata.start_of_burst = false; curr_info.metadata.end_of_burst = false; curr_info.metadata.error_code = rx_metadata_t::error_code_t(get_context_code(next_info[index].vrt_hdr, next_info[index].ifpi)); if (curr_info.metadata.error_code == rx_metadata_t::ERROR_CODE_OVERFLOW){ _props[index].handle_overflow(); UHD_MSG(fastpath) << "O"; } return; case PACKET_TIMEOUT_ERROR: std::swap(curr_info, next_info); //save progress from curr -> next curr_info.metadata.has_time_spec = false; curr_info.metadata.time_spec = time_spec_t(0.0); curr_info.metadata.more_fragments = false; curr_info.metadata.fragment_offset = 0; curr_info.metadata.start_of_burst = false; curr_info.metadata.end_of_burst = false; curr_info.metadata.error_code = rx_metadata_t::ERROR_CODE_TIMEOUT; return; case PACKET_SEQUENCE_ERROR: alignment_check(index, curr_info); std::swap(curr_info, next_info); //save progress from curr -> next curr_info.metadata.has_time_spec = prev_info.metadata.has_time_spec; curr_info.metadata.time_spec = prev_info.metadata.time_spec + time_spec_t::from_ticks( prev_info[index].ifpi.num_payload_words32*sizeof(boost::uint32_t)/_bytes_per_otw_item, _samp_rate); curr_info.metadata.more_fragments = false; curr_info.metadata.fragment_offset = 0; curr_info.metadata.start_of_burst = false; curr_info.metadata.end_of_burst = false; curr_info.metadata.error_code = rx_metadata_t::ERROR_CODE_OVERFLOW; UHD_MSG(fastpath) << "O"; return; } //too many iterations: detect alignment failure if (iterations++ > _alignment_faulure_threshold){ UHD_MSG(error) << boost::format( "The receive packet handler failed to time-align packets.\n" "%u received packets were processed by the handler.\n" "However, a timestamp match could not be determined.\n" ) % iterations << std::endl; std::swap(curr_info, next_info); //save progress from curr -> next curr_info.metadata.has_time_spec = false; curr_info.metadata.time_spec = time_spec_t(0.0); curr_info.metadata.more_fragments = false; curr_info.metadata.fragment_offset = 0; curr_info.metadata.start_of_burst = false; curr_info.metadata.end_of_burst = false; curr_info.metadata.error_code = rx_metadata_t::ERROR_CODE_ALIGNMENT; return; } } //set the metadata from the buffer information at index zero curr_info.metadata.has_time_spec = curr_info[0].ifpi.has_tsf; curr_info.metadata.time_spec = curr_info[0].time; curr_info.metadata.more_fragments = false; curr_info.metadata.fragment_offset = 0; curr_info.metadata.start_of_burst = curr_info[0].ifpi.sob; curr_info.metadata.end_of_burst = curr_info[0].ifpi.eob; curr_info.metadata.error_code = rx_metadata_t::ERROR_CODE_NONE; } /******************************************************************* * Receive a single packet: * Handles fragmentation, messages, errors, and copy-conversion. * When no fragments are available, call the get aligned buffers. * Then copy-convert available data into the user's IO buffers. ******************************************************************/ UHD_INLINE size_t recv_one_packet( const uhd::rx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, uhd::rx_metadata_t &metadata, const double timeout, const size_t buffer_offset_bytes = 0 ){ //get the next buffer if the current one has expired if (get_curr_buffer_info().data_bytes_to_copy == 0){ //reset current buffer info members for reuse get_curr_buffer_info().fragment_offset_in_samps = 0; get_curr_buffer_info().alignment_time_valid = false; get_curr_buffer_info().indexes_todo.set(); //perform receive with alignment logic get_aligned_buffs(timeout); } buffers_info_type &info = get_curr_buffer_info(); metadata = info.metadata; //interpolate the time spec (useful when this is a fragment) metadata.time_spec += time_spec_t::from_ticks(info.fragment_offset_in_samps, _samp_rate); //extract the number of samples available to copy const size_t nsamps_available = info.data_bytes_to_copy/_bytes_per_otw_item; const size_t nsamps_to_copy = std::min(nsamps_per_buff*_num_outputs, nsamps_available); const size_t bytes_to_copy = nsamps_to_copy*_bytes_per_otw_item; const size_t nsamps_to_copy_per_io_buff = nsamps_to_copy/_num_outputs; //setup the data to share with converter threads _convert_nsamps = nsamps_to_copy_per_io_buff; _convert_buffs = &buffs; _convert_buffer_offset_bytes = buffer_offset_bytes; _convert_bytes_to_copy = bytes_to_copy; //perform N channels of conversion converter_thread_task(0); //update the copy buffer's availability info.data_bytes_to_copy -= bytes_to_copy; //setup the fragment flags and offset metadata.more_fragments = info.data_bytes_to_copy != 0; metadata.fragment_offset = info.fragment_offset_in_samps; info.fragment_offset_in_samps += nsamps_to_copy; //set for next call return nsamps_to_copy_per_io_buff; } /******************************************************************* * Perform one thread's work of the conversion task. * The entry and exit use a dual synchronization barrier, * to wait for data to become ready and block until completion. ******************************************************************/ UHD_INLINE void converter_thread_task(const size_t index) { _task_barrier.wait(); //shortcut references to local data structures buffers_info_type &buff_info = get_curr_buffer_info(); per_buffer_info_type &info = buff_info[index]; const rx_streamer::buffs_type &buffs = *_convert_buffs; //fill IO buffs with pointers into the output buffer void *io_buffs[4/*max interleave*/]; for (size_t i = 0; i < _num_outputs; i++){ char *b = reinterpret_cast(buffs[index*_num_outputs + i]); io_buffs[i] = b + _convert_buffer_offset_bytes; } const ref_vector out_buffs(io_buffs, _num_outputs); //perform the conversion operation _converter->conv(info.copy_buff, out_buffs, _convert_nsamps); //advance the pointer for the source buffer info.copy_buff += _convert_bytes_to_copy; //release the buffer if fully consumed if (buff_info.data_bytes_to_copy == _convert_bytes_to_copy){ info.buff.reset(); //effectively a release } if (index == 0) _task_barrier.wait_others(); } //! Shared variables for the worker threads reusable_barrier _task_barrier; std::vector _task_handlers; size_t _convert_nsamps; const rx_streamer::buffs_type *_convert_buffs; size_t _convert_buffer_offset_bytes; size_t _convert_bytes_to_copy; }; class recv_packet_streamer : public recv_packet_handler, public rx_streamer{ public: recv_packet_streamer(const size_t max_num_samps){ _max_num_samps = max_num_samps; } size_t get_num_channels(void) const{ return this->size(); } size_t get_max_num_samps(void) const{ return _max_num_samps; } size_t recv( const rx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, uhd::rx_metadata_t &metadata, const double timeout, const bool one_packet ){ return recv_packet_handler::recv(buffs, nsamps_per_buff, metadata, timeout, one_packet); } private: size_t _max_num_samps; }; }}} //namespace #endif /* INCLUDED_LIBUHD_TRANSPORT_SUPER_RECV_PACKET_HANDLER_HPP */ uhd-3.5.5/host/lib/transport/super_send_packet_handler.hpp000066400000000000000000000311271224274632000237750ustar00rootroot00000000000000// // Copyright 2011-2013 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_TRANSPORT_SUPER_SEND_PACKET_HANDLER_HPP #define INCLUDED_LIBUHD_TRANSPORT_SUPER_SEND_PACKET_HANDLER_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace uhd{ namespace transport{ namespace sph{ /*********************************************************************** * Super send packet handler * * A send packet handler represents a group of channels. * The channel group shares a common sample rate. * All channels are sent in unison in send(). **********************************************************************/ class send_packet_handler{ public: typedef boost::function get_buff_type; typedef void(*vrt_packer_type)(boost::uint32_t *, vrt::if_packet_info_t &); //typedef boost::function vrt_packer_type; /*! * Make a new packet handler for send * \param size the number of transport channels */ send_packet_handler(const size_t size = 1): _next_packet_seq(0) { this->resize(size); } ~send_packet_handler(void){ _task_barrier.interrupt(); _task_handlers.clear(); } //! Resize the number of transport channels void resize(const size_t size){ if (this->size() == size) return; _task_handlers.clear(); _props.resize(size); static const boost::uint64_t zero = 0; _zero_buffs.resize(size, &zero); _task_barrier.resize(size); _task_handlers.resize(size); for (size_t i = 1/*skip 0*/; i < size; i++){ _task_handlers[i] = task::make(boost::bind(&send_packet_handler::converter_thread_task, this, i)); }; } //! Get the channel width of this handler size_t size(void) const{ return _props.size(); } //! Setup the vrt packer function and offset void set_vrt_packer(const vrt_packer_type &vrt_packer, const size_t header_offset_words32 = 0){ _vrt_packer = vrt_packer; _header_offset_words32 = header_offset_words32; } //! Set the stream ID for a specific channel (or no SID) void set_xport_chan_sid(const size_t xport_chan, const bool has_sid, const boost::uint32_t sid = 0){ _props.at(xport_chan).has_sid = has_sid; _props.at(xport_chan).sid = sid; } //! Set the rate of ticks per second void set_tick_rate(const double rate){ _tick_rate = rate; } //! Set the rate of samples per second void set_samp_rate(const double rate){ _samp_rate = rate; } /*! * Set the function to get a managed buffer. * \param xport_chan which transport channel * \param get_buff the getter function */ void set_xport_chan_get_buff(const size_t xport_chan, const get_buff_type &get_buff){ _props.at(xport_chan).get_buff = get_buff; } //! Set the conversion routine for all channels void set_converter(const uhd::convert::id_type &id){ _num_inputs = id.num_inputs; _converter = uhd::convert::get_converter(id)(); this->set_scale_factor(32767.); //update after setting converter _bytes_per_otw_item = uhd::convert::get_bytes_per_item(id.output_format); _bytes_per_cpu_item = uhd::convert::get_bytes_per_item(id.input_format); } /*! * Set the maximum number of samples per host packet. * Ex: A USRP1 in dual channel mode would be half. * \param num_samps the maximum samples in a packet */ void set_max_samples_per_packet(const size_t num_samps){ _max_samples_per_packet = num_samps; } //! Set the scale factor used in float conversion void set_scale_factor(const double scale_factor){ _converter->set_scalar(scale_factor); } /******************************************************************* * Send: * The entry point for the fast-path send calls. * Dispatch into combinations of single packet send calls. ******************************************************************/ UHD_INLINE size_t send( const uhd::tx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, const uhd::tx_metadata_t &metadata, const double timeout ){ //translate the metadata to vrt if packet info vrt::if_packet_info_t if_packet_info; if_packet_info.packet_type = vrt::if_packet_info_t::PACKET_TYPE_DATA; //if_packet_info.has_sid = false; //set per channel if_packet_info.has_cid = false; if_packet_info.has_tlr = true; if_packet_info.has_tsi = false; if_packet_info.has_tsf = metadata.has_time_spec; if_packet_info.tsf = metadata.time_spec.to_ticks(_tick_rate); if_packet_info.sob = metadata.start_of_burst; if_packet_info.eob = metadata.end_of_burst; if (nsamps_per_buff <= _max_samples_per_packet){ //TODO remove this code when sample counts of zero are supported by hardware #ifndef SSPH_DONT_PAD_TO_ONE if (nsamps_per_buff == 0) return send_one_packet( _zero_buffs, 1, if_packet_info, timeout ) & 0x0; #endif return send_one_packet(buffs, nsamps_per_buff, if_packet_info, timeout); } size_t total_num_samps_sent = 0; //false until final fragment if_packet_info.eob = false; const size_t num_fragments = (nsamps_per_buff-1)/_max_samples_per_packet; const size_t final_length = ((nsamps_per_buff-1)%_max_samples_per_packet)+1; //loop through the following fragment indexes for (size_t i = 0; i < num_fragments; i++){ //send a fragment with the helper function const size_t num_samps_sent = send_one_packet( buffs, _max_samples_per_packet, if_packet_info, timeout, total_num_samps_sent*_bytes_per_cpu_item ); total_num_samps_sent += num_samps_sent; if (num_samps_sent == 0) return total_num_samps_sent; //setup metadata for the next fragment const time_spec_t time_spec = metadata.time_spec + time_spec_t::from_ticks(total_num_samps_sent, _samp_rate); if_packet_info.tsf = time_spec.to_ticks(_tick_rate); if_packet_info.sob = false; } //send the final fragment with the helper function if_packet_info.eob = metadata.end_of_burst; return total_num_samps_sent + send_one_packet( buffs, final_length, if_packet_info, timeout, total_num_samps_sent*_bytes_per_cpu_item ); } private: vrt_packer_type _vrt_packer; size_t _header_offset_words32; double _tick_rate, _samp_rate; struct xport_chan_props_type{ xport_chan_props_type(void):has_sid(false){} get_buff_type get_buff; bool has_sid; boost::uint32_t sid; managed_send_buffer::sptr buff; }; std::vector _props; size_t _num_inputs; size_t _bytes_per_otw_item; //used in conversion size_t _bytes_per_cpu_item; //used in conversion uhd::convert::converter::sptr _converter; //used in conversion size_t _max_samples_per_packet; std::vector _zero_buffs; size_t _next_packet_seq; /******************************************************************* * Send a single packet: ******************************************************************/ UHD_INLINE size_t send_one_packet( const uhd::tx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, vrt::if_packet_info_t &if_packet_info, const double timeout, const size_t buffer_offset_bytes = 0 ){ //load the rest of the if_packet_info in here if_packet_info.num_payload_bytes = nsamps_per_buff*_num_inputs*_bytes_per_otw_item; if_packet_info.num_payload_words32 = (if_packet_info.num_payload_bytes + 3/*round up*/)/sizeof(boost::uint32_t); if_packet_info.packet_count = _next_packet_seq; //get a buffer for each channel or timeout BOOST_FOREACH(xport_chan_props_type &props, _props){ if (not props.buff) props.buff = props.get_buff(timeout); if (not props.buff) return 0; //timeout } //setup the data to share with converter threads _convert_nsamps = nsamps_per_buff; _convert_buffs = &buffs; _convert_buffer_offset_bytes = buffer_offset_bytes; _convert_if_packet_info = &if_packet_info; //perform N channels of conversion converter_thread_task(0); _next_packet_seq++; //increment sequence after commits return nsamps_per_buff; } /******************************************************************* * Perform one thread's work of the conversion task. * The entry and exit use a dual synchronization barrier, * to wait for data to become ready and block until completion. ******************************************************************/ UHD_INLINE void converter_thread_task(const size_t index) { _task_barrier.wait(); //shortcut references to local data structures managed_send_buffer::sptr &buff = _props[index].buff; vrt::if_packet_info_t if_packet_info = *_convert_if_packet_info; const tx_streamer::buffs_type &buffs = *_convert_buffs; //fill IO buffs with pointers into the output buffer const void *io_buffs[4/*max interleave*/]; for (size_t i = 0; i < _num_inputs; i++){ const char *b = reinterpret_cast(buffs[index*_num_inputs + i]); io_buffs[i] = b + _convert_buffer_offset_bytes; } const ref_vector in_buffs(io_buffs, _num_inputs); //pack metadata into a vrt header boost::uint32_t *otw_mem = buff->cast() + _header_offset_words32; if_packet_info.has_sid = _props[index].has_sid; if_packet_info.sid = _props[index].sid; _vrt_packer(otw_mem, if_packet_info); otw_mem += if_packet_info.num_header_words32; //perform the conversion operation _converter->conv(in_buffs, otw_mem, _convert_nsamps); //commit the samples to the zero-copy interface const size_t num_vita_words32 = _header_offset_words32+if_packet_info.num_packet_words32; buff->commit(num_vita_words32*sizeof(boost::uint32_t)); buff.reset(); //effectively a release if (index == 0) _task_barrier.wait_others(); } //! Shared variables for the worker threads reusable_barrier _task_barrier; std::vector _task_handlers; size_t _convert_nsamps; const tx_streamer::buffs_type *_convert_buffs; size_t _convert_buffer_offset_bytes; vrt::if_packet_info_t *_convert_if_packet_info; }; class send_packet_streamer : public send_packet_handler, public tx_streamer{ public: send_packet_streamer(const size_t max_num_samps){ _max_num_samps = max_num_samps; this->set_max_samples_per_packet(_max_num_samps); } size_t get_num_channels(void) const{ return this->size(); } size_t get_max_num_samps(void) const{ return _max_num_samps; } size_t send( const tx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, const uhd::tx_metadata_t &metadata, const double timeout ){ return send_packet_handler::send(buffs, nsamps_per_buff, metadata, timeout); } private: size_t _max_num_samps; }; }}} //namespace #endif /* INCLUDED_LIBUHD_TRANSPORT_SUPER_SEND_PACKET_HANDLER_HPP */ uhd-3.5.5/host/lib/transport/udp_common.hpp000066400000000000000000000042641224274632000207440ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_TRANSPORT_VRT_PACKET_HANDLER_HPP #define INCLUDED_LIBUHD_TRANSPORT_VRT_PACKET_HANDLER_HPP #include #include namespace uhd{ namespace transport{ typedef boost::shared_ptr socket_sptr; /*! * Wait for the socket to become ready for a receive operation. * \param sock_fd the open socket file descriptor * \param timeout the timeout duration in seconds * \return true when the socket is ready for receive */ UHD_INLINE bool wait_for_recv_ready(int sock_fd, double timeout){ //setup timeval for timeout timeval tv; //If the tv_usec > 1 second on some platforms, select will //error EINVAL: An invalid timeout interval was specified. tv.tv_sec = int(timeout); tv.tv_usec = int(timeout*1000000)%1000000; //setup rset for timeout fd_set rset; FD_ZERO(&rset); FD_SET(sock_fd, &rset); //http://www.gnu.org/s/hello/manual/libc/Interrupted-Primitives.html //This macro is provided with gcc to properly deal with EINTR. //If not provided, define an empty macro, assume that is OK #ifndef TEMP_FAILURE_RETRY #define TEMP_FAILURE_RETRY(x) (x) #endif //call select with timeout on receive socket return TEMP_FAILURE_RETRY(::select(sock_fd+1, &rset, NULL, NULL, &tv)) > 0; } }} //namespace uhd::transport #endif /* INCLUDED_LIBUHD_TRANSPORT_VRT_PACKET_HANDLER_HPP */ uhd-3.5.5/host/lib/transport/udp_simple.cpp000066400000000000000000000111051224274632000207300ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "udp_common.hpp" #include #include #include using namespace uhd::transport; namespace asio = boost::asio; /*********************************************************************** * UDP simple implementation: connected and broadcast **********************************************************************/ class udp_simple_impl : public udp_simple{ public: udp_simple_impl( const std::string &addr, const std::string &port, bool bcast, bool connect ):_connected(connect){ UHD_LOG << boost::format("Creating udp transport for %s %s") % addr % port << std::endl; //resolve the address asio::ip::udp::resolver resolver(_io_service); asio::ip::udp::resolver::query query(asio::ip::udp::v4(), addr, port); _send_endpoint = *resolver.resolve(query); //create and open the socket _socket = socket_sptr(new asio::ip::udp::socket(_io_service)); _socket->open(asio::ip::udp::v4()); //allow broadcasting _socket->set_option(asio::socket_base::broadcast(bcast)); //connect the socket if (connect) _socket->connect(_send_endpoint); } size_t send(const asio::const_buffer &buff){ if (_connected) return _socket->send(asio::buffer(buff)); return _socket->send_to(asio::buffer(buff), _send_endpoint); } size_t recv(const asio::mutable_buffer &buff, double timeout){ if (not wait_for_recv_ready(_socket->native(), timeout)) return 0; return _socket->receive_from(asio::buffer(buff), _recv_endpoint); } std::string get_recv_addr(void){ return _recv_endpoint.address().to_string(); } private: bool _connected; asio::io_service _io_service; socket_sptr _socket; asio::ip::udp::endpoint _send_endpoint; asio::ip::udp::endpoint _recv_endpoint; }; /*********************************************************************** * UDP public make functions **********************************************************************/ udp_simple::sptr udp_simple::make_connected( const std::string &addr, const std::string &port ){ return sptr(new udp_simple_impl(addr, port, false, true /* no bcast, connect */)); } udp_simple::sptr udp_simple::make_broadcast( const std::string &addr, const std::string &port ){ return sptr(new udp_simple_impl(addr, port, true, false /* bcast, no connect */)); } /*********************************************************************** * Simple UART over UDP **********************************************************************/ #include class udp_simple_uart_impl : public uhd::uart_iface{ public: udp_simple_uart_impl(udp_simple::sptr udp){ _udp = udp; _len = 0; _off = 0; this->write_uart(""); //send an empty packet to init } void write_uart(const std::string &buf){ _udp->send(asio::buffer(buf)); } std::string read_uart(double timeout){ std::string line; const boost::system_time exit_time = boost::get_system_time() + boost::posix_time::milliseconds(long(timeout*1000)); do{ //drain anything in current buffer while (_off < _len){ const char ch = _buf[_off]; _off++; line += std::string(1, ch); if (ch == '\n' or ch == '\r') return line; } //recv a new packet into the buffer _len = _udp->recv(asio::buffer(_buf), std::max((exit_time - boost::get_system_time()).total_milliseconds()/1000., 0.0)); _off = 0; } while (_len != 0); return line; } private: udp_simple::sptr _udp; size_t _len, _off; boost::uint8_t _buf[udp_simple::mtu]; }; uhd::uart_iface::sptr udp_simple::make_uart(sptr udp){ return uart_iface::sptr(new udp_simple_uart_impl(udp)); } uhd-3.5.5/host/lib/transport/udp_wsa_zero_copy.cpp000066400000000000000000000300341224274632000223240ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "udp_common.hpp" #include #include //mtu #include #include #include #include #include using namespace uhd; using namespace uhd::transport; namespace asio = boost::asio; //A reasonable number of frames for send/recv and async/sync static const size_t DEFAULT_NUM_FRAMES = 32; /*********************************************************************** * Check registry for correct fast-path setting (windows only) **********************************************************************/ #ifdef HAVE_ATLBASE_H #define CHECK_REG_SEND_THRESH #include //CRegKey static void check_registry_for_fast_send_threshold(const size_t mtu){ static bool warned = false; if (warned) return; //only allow one printed warning per process CRegKey reg_key; DWORD threshold = 1024; //system default when threshold is not specified if ( reg_key.Open(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Services\\AFD\\Parameters", KEY_READ) != ERROR_SUCCESS or reg_key.QueryDWORDValue("FastSendDatagramThreshold", threshold) != ERROR_SUCCESS or threshold < mtu ){ UHD_MSG(warning) << boost::format( "The MTU (%d) is larger than the FastSendDatagramThreshold (%d)!\n" "This will negatively affect the transmit performance.\n" "See the transport application notes for more detail.\n" ) % mtu % threshold << std::endl; warned = true; } reg_key.Close(); } #endif /*HAVE_ATLBASE_H*/ /*********************************************************************** * Static initialization to take care of WSA init and cleanup **********************************************************************/ struct uhd_wsa_control{ uhd_wsa_control(void){ WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); /*windows socket startup */ } ~uhd_wsa_control(void){ WSACleanup(); } }; /*********************************************************************** * Reusable managed receiver buffer: * - Initialize with memory and a release callback. * - Call get new with a length in bytes to re-use. **********************************************************************/ class udp_zero_copy_asio_mrb : public managed_recv_buffer{ public: udp_zero_copy_asio_mrb(void *mem, int sock_fd, const size_t frame_size): _sock_fd(sock_fd), _frame_size(frame_size) { _wsa_buff.buf = reinterpret_cast(mem); ZeroMemory(&_overlapped, sizeof(_overlapped)); _overlapped.hEvent = WSACreateEvent(); UHD_ASSERT_THROW(_overlapped.hEvent != WSA_INVALID_EVENT); this->release(); //makes buffer available via get_new } ~udp_zero_copy_asio_mrb(void){ WSACloseEvent(_overlapped.hEvent); } void release(void){ _wsa_buff.len = _frame_size; _flags = 0; WSARecv(_sock_fd, &_wsa_buff, 1, &_wsa_buff.len, &_flags, &_overlapped, NULL); } UHD_INLINE sptr get_new(const double timeout, size_t &index){ const DWORD result = WSAWaitForMultipleEvents( 1, &_overlapped.hEvent, true, DWORD(timeout*1000), true ); if (result == WSA_WAIT_TIMEOUT) return managed_recv_buffer::sptr(); index++; //advances the caller's buffer WSAGetOverlappedResult(_sock_fd, &_overlapped, &_wsa_buff.len, true, &_flags); WSAResetEvent(_overlapped.hEvent); return make(this, _wsa_buff.buf, _wsa_buff.len); } private: int _sock_fd; const size_t _frame_size; WSAOVERLAPPED _overlapped; WSABUF _wsa_buff; DWORD _flags; }; /*********************************************************************** * Reusable managed send buffer: * - committing the buffer calls the asynchronous socket send * - getting a new buffer performs the blocking wait for completion **********************************************************************/ class udp_zero_copy_asio_msb : public managed_send_buffer{ public: udp_zero_copy_asio_msb(void *mem, int sock_fd, const size_t frame_size): _sock_fd(sock_fd), _frame_size(frame_size) { _wsa_buff.buf = reinterpret_cast(mem); ZeroMemory(&_overlapped, sizeof(_overlapped)); _overlapped.hEvent = WSACreateEvent(); UHD_ASSERT_THROW(_overlapped.hEvent != WSA_INVALID_EVENT); WSASetEvent(_overlapped.hEvent); //makes buffer available via get_new } ~udp_zero_copy_asio_msb(void){ WSACloseEvent(_overlapped.hEvent); } void release(void){ _wsa_buff.len = size(); WSASend(_sock_fd, &_wsa_buff, 1, NULL, 0, &_overlapped, NULL); } UHD_INLINE sptr get_new(const double timeout, size_t &index){ const DWORD result = WSAWaitForMultipleEvents( 1, &_overlapped.hEvent, true, DWORD(timeout*1000), true ); if (result == WSA_WAIT_TIMEOUT) return managed_send_buffer::sptr(); index++; //advances the caller's buffer WSAResetEvent(_overlapped.hEvent); _wsa_buff.len = _frame_size; return make(this, _wsa_buff.buf, _wsa_buff.len); } private: int _sock_fd; const size_t _frame_size; WSAOVERLAPPED _overlapped; WSABUF _wsa_buff; }; /*********************************************************************** * Zero Copy UDP implementation with WSA: * * This is not a true zero copy implementation as each * send and recv requires a copy operation to/from userspace. * * For receive, use a blocking recv() call on the socket. * This has better performance than the overlapped IO. * For send, use overlapped IO to submit async sends. **********************************************************************/ class udp_zero_copy_wsa_impl : public udp_zero_copy{ public: typedef boost::shared_ptr sptr; udp_zero_copy_wsa_impl( const std::string &addr, const std::string &port, const device_addr_t &hints ): _recv_frame_size(size_t(hints.cast("recv_frame_size", udp_simple::mtu))), _num_recv_frames(size_t(hints.cast("num_recv_frames", DEFAULT_NUM_FRAMES))), _send_frame_size(size_t(hints.cast("send_frame_size", udp_simple::mtu))), _num_send_frames(size_t(hints.cast("num_send_frames", DEFAULT_NUM_FRAMES))), _recv_buffer_pool(buffer_pool::make(_num_recv_frames, _recv_frame_size)), _send_buffer_pool(buffer_pool::make(_num_send_frames, _send_frame_size)), _next_recv_buff_index(0), _next_send_buff_index(0) { #ifdef CHECK_REG_SEND_THRESH check_registry_for_fast_send_threshold(this->get_send_frame_size()); #endif /*CHECK_REG_SEND_THRESH*/ UHD_MSG(status) << boost::format("Creating WSA UDP transport for %s:%s") % addr % port << std::endl; static uhd_wsa_control uhd_wsa; //makes wsa start happen via lazy initialization UHD_ASSERT_THROW(_num_send_frames <= WSA_MAXIMUM_WAIT_EVENTS); //resolve the address asio::io_service io_service; asio::ip::udp::resolver resolver(io_service); asio::ip::udp::resolver::query query(asio::ip::udp::v4(), addr, port); asio::ip::udp::endpoint receiver_endpoint = *resolver.resolve(query); //create the socket _sock_fd = WSASocket(AF_INET, SOCK_DGRAM, IPPROTO_UDP, NULL, 0, WSA_FLAG_OVERLAPPED); if (_sock_fd == INVALID_SOCKET){ const DWORD error = WSAGetLastError(); throw uhd::os_error(str(boost::format("WSASocket() failed with error %d") % error)); } //set the socket non-blocking for recv //u_long mode = 1; //ioctlsocket(_sock_fd, FIONBIO, &mode); //resize the socket buffers const int recv_buff_size = int(hints.cast("recv_buff_size", 0.0)); const int send_buff_size = int(hints.cast("send_buff_size", 0.0)); if (recv_buff_size > 0) setsockopt(_sock_fd, SOL_SOCKET, SO_RCVBUF, (const char *)&recv_buff_size, sizeof(recv_buff_size)); if (send_buff_size > 0) setsockopt(_sock_fd, SOL_SOCKET, SO_SNDBUF, (const char *)&send_buff_size, sizeof(send_buff_size)); //connect the socket so we can send/recv const asio::ip::udp::endpoint::data_type &servaddr = *receiver_endpoint.data(); if (WSAConnect(_sock_fd, (const struct sockaddr *)&servaddr, sizeof(servaddr), NULL, NULL, NULL, NULL) != 0){ const DWORD error = WSAGetLastError(); closesocket(_sock_fd); throw uhd::os_error(str(boost::format("WSAConnect() failed with error %d") % error)); } //allocate re-usable managed receive buffers for (size_t i = 0; i < get_num_recv_frames(); i++){ _mrb_pool.push_back(boost::shared_ptr( new udp_zero_copy_asio_mrb(_recv_buffer_pool->at(i), _sock_fd, get_recv_frame_size()) )); } //allocate re-usable managed send buffers for (size_t i = 0; i < get_num_send_frames(); i++){ _msb_pool.push_back(boost::shared_ptr( new udp_zero_copy_asio_msb(_send_buffer_pool->at(i), _sock_fd, get_send_frame_size()) )); } } ~udp_zero_copy_wsa_impl(void){ closesocket(_sock_fd); } /******************************************************************* * Receive implementation: * Block on the managed buffer's get call and advance the index. ******************************************************************/ managed_recv_buffer::sptr get_recv_buff(double timeout){ if (_next_recv_buff_index == _num_recv_frames) _next_recv_buff_index = 0; return _mrb_pool[_next_recv_buff_index]->get_new(timeout, _next_recv_buff_index); } size_t get_num_recv_frames(void) const {return _num_recv_frames;} size_t get_recv_frame_size(void) const {return _recv_frame_size;} /******************************************************************* * Send implementation: * Block on the managed buffer's get call and advance the index. ******************************************************************/ managed_send_buffer::sptr get_send_buff(double timeout){ if (_next_send_buff_index == _num_send_frames) _next_send_buff_index = 0; return _msb_pool[_next_send_buff_index]->get_new(timeout, _next_send_buff_index); } size_t get_num_send_frames(void) const {return _num_send_frames;} size_t get_send_frame_size(void) const {return _send_frame_size;} private: //memory management -> buffers and fifos const size_t _recv_frame_size, _num_recv_frames; const size_t _send_frame_size, _num_send_frames; buffer_pool::sptr _recv_buffer_pool, _send_buffer_pool; std::vector > _msb_pool; std::vector > _mrb_pool; size_t _next_recv_buff_index, _next_send_buff_index; //socket guts SOCKET _sock_fd; }; /*********************************************************************** * UDP zero copy make function **********************************************************************/ udp_zero_copy::sptr udp_zero_copy::make( const std::string &addr, const std::string &port, const device_addr_t &hints ){ return sptr(new udp_zero_copy_wsa_impl(addr, port, hints)); } uhd-3.5.5/host/lib/transport/udp_zero_copy.cpp000066400000000000000000000276551224274632000214710ustar00rootroot00000000000000// // Copyright 2010-2013 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "udp_common.hpp" #include #include //mtu #include #include #include #include #include #include #include //sleep #include using namespace uhd; using namespace uhd::transport; namespace asio = boost::asio; //A reasonable number of frames for send/recv and async/sync static const size_t DEFAULT_NUM_FRAMES = 32; /*********************************************************************** * Check registry for correct fast-path setting (windows only) **********************************************************************/ #ifdef HAVE_ATLBASE_H #define CHECK_REG_SEND_THRESH #include //CRegKey static void check_registry_for_fast_send_threshold(const size_t mtu){ static bool warned = false; if (warned) return; //only allow one printed warning per process CRegKey reg_key; DWORD threshold = 1024; //system default when threshold is not specified if ( reg_key.Open(HKEY_LOCAL_MACHINE, "System\\CurrentControlSet\\Services\\AFD\\Parameters", KEY_READ) != ERROR_SUCCESS or reg_key.QueryDWORDValue("FastSendDatagramThreshold", threshold) != ERROR_SUCCESS or threshold < mtu ){ UHD_MSG(warning) << boost::format( "The MTU (%d) is larger than the FastSendDatagramThreshold (%d)!\n" "This will negatively affect the transmit performance.\n" "See the transport application notes for more detail.\n" ) % mtu % threshold << std::endl; warned = true; } reg_key.Close(); } #endif /*HAVE_ATLBASE_H*/ /*********************************************************************** * Reusable managed receiver buffer: * - get_new performs the recv operation **********************************************************************/ class udp_zero_copy_asio_mrb : public managed_recv_buffer{ public: udp_zero_copy_asio_mrb(void *mem, int sock_fd, const size_t frame_size): _mem(mem), _sock_fd(sock_fd), _frame_size(frame_size) { /*NOP*/ } void release(void){ _claimer.release(); } UHD_INLINE sptr get_new(const double timeout, size_t &index){ if (not _claimer.claim_with_wait(timeout)) return sptr(); #ifdef MSG_DONTWAIT //try a non-blocking recv() if supported _len = ::recv(_sock_fd, (char *)_mem, _frame_size, MSG_DONTWAIT); if (_len > 0){ index++; //advances the caller's buffer return make(this, _mem, size_t(_len)); } #endif if (wait_for_recv_ready(_sock_fd, timeout)){ _len = ::recv(_sock_fd, (char *)_mem, _frame_size, 0); index++; //advances the caller's buffer return make(this, _mem, size_t(_len)); } _claimer.release(); //undo claim return sptr(); //null for timeout } private: void *_mem; int _sock_fd; size_t _frame_size; ssize_t _len; simple_claimer _claimer; }; /*********************************************************************** * Reusable managed send buffer: * - commit performs the send operation **********************************************************************/ class udp_zero_copy_asio_msb : public managed_send_buffer{ public: udp_zero_copy_asio_msb(void *mem, int sock_fd, const size_t frame_size): _mem(mem), _sock_fd(sock_fd), _frame_size(frame_size) { /*NOP*/ } void release(void){ //Retry logic because send may fail with ENOBUFS. //This is known to occur at least on some OSX systems. //But it should be safe to always check for the error. while (true) { const ssize_t ret = ::send(_sock_fd, (const char *)_mem, size(), 0); if (ret == ssize_t(size())) break; if (ret == -1 and errno == ENOBUFS) { boost::this_thread::sleep(boost::posix_time::microseconds(1)); continue; //try to send again } UHD_ASSERT_THROW(ret == ssize_t(size())); } _claimer.release(); } UHD_INLINE sptr get_new(const double timeout, size_t &index){ if (not _claimer.claim_with_wait(timeout)) return sptr(); index++; //advances the caller's buffer return make(this, _mem, _frame_size); } private: void *_mem; int _sock_fd; size_t _frame_size; simple_claimer _claimer; }; /*********************************************************************** * Zero Copy UDP implementation with ASIO: * This is the portable zero copy implementation for systems * where a faster, platform specific solution is not available. * However, it is not a true zero copy implementation as each * send and recv requires a copy operation to/from userspace. **********************************************************************/ class udp_zero_copy_asio_impl : public udp_zero_copy{ public: typedef boost::shared_ptr sptr; udp_zero_copy_asio_impl( const std::string &addr, const std::string &port, const device_addr_t &hints ): _recv_frame_size(size_t(hints.cast("recv_frame_size", udp_simple::mtu))), _num_recv_frames(size_t(hints.cast("num_recv_frames", DEFAULT_NUM_FRAMES))), _send_frame_size(size_t(hints.cast("send_frame_size", udp_simple::mtu))), _num_send_frames(size_t(hints.cast("num_send_frames", DEFAULT_NUM_FRAMES))), _recv_buffer_pool(buffer_pool::make(_num_recv_frames, _recv_frame_size)), _send_buffer_pool(buffer_pool::make(_num_send_frames, _send_frame_size)), _next_recv_buff_index(0), _next_send_buff_index(0) { UHD_LOG << boost::format("Creating udp transport for %s %s") % addr % port << std::endl; #ifdef CHECK_REG_SEND_THRESH check_registry_for_fast_send_threshold(this->get_send_frame_size()); #endif /*CHECK_REG_SEND_THRESH*/ //resolve the address asio::ip::udp::resolver resolver(_io_service); asio::ip::udp::resolver::query query(asio::ip::udp::v4(), addr, port); asio::ip::udp::endpoint receiver_endpoint = *resolver.resolve(query); //create, open, and connect the socket _socket = socket_sptr(new asio::ip::udp::socket(_io_service)); _socket->open(asio::ip::udp::v4()); _socket->connect(receiver_endpoint); _sock_fd = _socket->native(); //allocate re-usable managed receive buffers for (size_t i = 0; i < get_num_recv_frames(); i++){ _mrb_pool.push_back(boost::make_shared( _recv_buffer_pool->at(i), _sock_fd, get_recv_frame_size() )); } //allocate re-usable managed send buffers for (size_t i = 0; i < get_num_send_frames(); i++){ _msb_pool.push_back(boost::make_shared( _send_buffer_pool->at(i), _sock_fd, get_send_frame_size() )); } } //get size for internal socket buffer template size_t get_buff_size(void) const{ Opt option; _socket->get_option(option); return option.value(); } //set size for internal socket buffer template size_t resize_buff(size_t num_bytes){ Opt option(num_bytes); _socket->set_option(option); return get_buff_size(); } /******************************************************************* * Receive implementation: * Block on the managed buffer's get call and advance the index. ******************************************************************/ managed_recv_buffer::sptr get_recv_buff(double timeout){ if (_next_recv_buff_index == _num_recv_frames) _next_recv_buff_index = 0; return _mrb_pool[_next_recv_buff_index]->get_new(timeout, _next_recv_buff_index); } size_t get_num_recv_frames(void) const {return _num_recv_frames;} size_t get_recv_frame_size(void) const {return _recv_frame_size;} /******************************************************************* * Send implementation: * Block on the managed buffer's get call and advance the index. ******************************************************************/ managed_send_buffer::sptr get_send_buff(double timeout){ if (_next_send_buff_index == _num_send_frames) _next_send_buff_index = 0; return _msb_pool[_next_send_buff_index]->get_new(timeout, _next_send_buff_index); } size_t get_num_send_frames(void) const {return _num_send_frames;} size_t get_send_frame_size(void) const {return _send_frame_size;} private: //memory management -> buffers and fifos const size_t _recv_frame_size, _num_recv_frames; const size_t _send_frame_size, _num_send_frames; buffer_pool::sptr _recv_buffer_pool, _send_buffer_pool; std::vector > _msb_pool; std::vector > _mrb_pool; size_t _next_recv_buff_index, _next_send_buff_index; //asio guts -> socket and service asio::io_service _io_service; socket_sptr _socket; int _sock_fd; }; /*********************************************************************** * UDP zero copy make function **********************************************************************/ template static void resize_buff_helper( udp_zero_copy_asio_impl::sptr udp_trans, const size_t target_size, const std::string &name ){ std::string help_message; #if defined(UHD_PLATFORM_LINUX) help_message = str(boost::format( "Please run: sudo sysctl -w net.core.%smem_max=%d\n" ) % ((name == "recv")?"r":"w") % target_size); #endif /*defined(UHD_PLATFORM_LINUX)*/ //resize the buffer if size was provided if (target_size > 0){ size_t actual_size = udp_trans->resize_buff(target_size); UHD_LOG << boost::format( "Target %s sock buff size: %d bytes\n" "Actual %s sock buff size: %d bytes" ) % name % target_size % name % actual_size << std::endl; if (actual_size < target_size) UHD_MSG(warning) << boost::format( "The %s buffer could not be resized sufficiently.\n" "Target sock buff size: %d bytes.\n" "Actual sock buff size: %d bytes.\n" "See the transport application notes on buffer resizing.\n%s" ) % name % target_size % actual_size % help_message; } } udp_zero_copy::sptr udp_zero_copy::make( const std::string &addr, const std::string &port, const device_addr_t &hints ){ udp_zero_copy_asio_impl::sptr udp_trans( new udp_zero_copy_asio_impl(addr, port, hints) ); //extract buffer size hints from the device addr size_t recv_buff_size = size_t(hints.cast("recv_buff_size", 0.0)); size_t send_buff_size = size_t(hints.cast("send_buff_size", 0.0)); //call the helper to resize send and recv buffers resize_buff_helper(udp_trans, recv_buff_size, "recv"); resize_buff_helper (udp_trans, send_buff_size, "send"); return udp_trans; } uhd-3.5.5/host/lib/transport/usb_dummy_impl.cpp000066400000000000000000000027431224274632000216240ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include using namespace uhd; using namespace uhd::transport; std::vector usb_device_handle::get_device_list(boost::uint16_t, boost::uint16_t){ return std::vector(); //empty list } usb_control::sptr usb_control::make(usb_device_handle::sptr, const size_t){ throw uhd::not_implemented_error("no usb support -> usb_control::make not implemented"); } usb_zero_copy::sptr usb_zero_copy::make( usb_device_handle::sptr, const size_t, const size_t, const size_t, const size_t, const device_addr_t & ){ throw uhd::not_implemented_error("no usb support -> usb_zero_copy::make not implemented"); } uhd-3.5.5/host/lib/transport/usb_zero_copy_wrapper.cpp000066400000000000000000000201201224274632000232060ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::transport; static const boost::posix_time::time_duration AUTOFLUSH_TIMEOUT(boost::posix_time::milliseconds(1)); /*********************************************************************** * USB zero copy wrapper - managed receive buffer **********************************************************************/ class usb_zero_copy_wrapper_mrb : public managed_recv_buffer{ public: usb_zero_copy_wrapper_mrb(void){/*NOP*/} void release(void){ _mrb.reset(); //decrement ref count, other MRB's may hold a ref _claimer.release(); } UHD_INLINE sptr get_new( managed_recv_buffer::sptr &mrb, size_t &offset_bytes, const double timeout, size_t &index ){ if (not mrb or not _claimer.claim_with_wait(timeout)) return sptr(); index++; //advances the caller's buffer //hold a copy of the buffer shared pointer _mrb = mrb; //extract this packet's memory address and length in bytes char *mem = mrb->cast() + offset_bytes; const boost::uint32_t *mem32 = reinterpret_cast(mem); const size_t words32 = (uhd::wtohx(mem32[0]) & 0xffff); //length in words32 (from VRT header) const size_t len = words32*sizeof(boost::uint32_t); //length in bytes //check if this receive buffer has been exhausted offset_bytes += len; if (offset_bytes >= mrb->size()) mrb.reset(); //drop caller's ref else if (uhd::wtohx(mem32[words32]) == 0) mrb.reset(); return make(this, mem, len); } private: managed_recv_buffer::sptr _mrb; simple_claimer _claimer; }; /*********************************************************************** * USB zero copy wrapper - managed send buffer **********************************************************************/ class usb_zero_copy_wrapper_msb : public managed_send_buffer{ public: usb_zero_copy_wrapper_msb(const usb_zero_copy::sptr internal, const size_t fragmentation_size): _internal(internal), _fragmentation_size(fragmentation_size) { _ok_to_auto_flush = false; _task = uhd::task::make(boost::bind(&usb_zero_copy_wrapper_msb::auto_flush, this)); } ~usb_zero_copy_wrapper_msb(void) { //ensure the task has exited before anything auto deconstructs _task.reset(); } void release(void){ boost::mutex::scoped_lock lock(_mutex); _ok_to_auto_flush = true; //get a reference to the VITA header before incrementing const boost::uint32_t vita_header = reinterpret_cast(_mem_buffer_tip)[0]; _bytes_in_buffer += size(); _mem_buffer_tip += size(); //extract VITA end of packet flag, we must force flush under eof conditions const bool eop = (uhd::wtohx(vita_header) & (0x1 << 24)) != 0; const bool full = _bytes_in_buffer >= (_last_send_buff->size() - _fragmentation_size); if (eop or full){ _last_send_buff->commit(_bytes_in_buffer); _last_send_buff.reset(); //notify the auto-flusher to restart its timed_wait lock.unlock(); _cond.notify_one(); } } UHD_INLINE sptr get_new(const double timeout){ boost::mutex::scoped_lock lock(_mutex); _ok_to_auto_flush = false; if (not _last_send_buff){ _last_send_buff = _internal->get_send_buff(timeout); if (not _last_send_buff) return sptr(); _mem_buffer_tip = _last_send_buff->cast(); _bytes_in_buffer = 0; } return make(this, _mem_buffer_tip, _fragmentation_size); } private: usb_zero_copy::sptr _internal; const size_t _fragmentation_size; managed_send_buffer::sptr _last_send_buff; size_t _bytes_in_buffer; char *_mem_buffer_tip; //private variables for auto flusher boost::mutex _mutex; boost::condition_variable _cond; uhd::task::sptr _task; bool _ok_to_auto_flush; /*! * The auto flusher ensures that buffers are force committed when * the user has not called get_new() within a certain time window. */ void auto_flush(void) { boost::mutex::scoped_lock lock(_mutex); const bool timeout = not _cond.timed_wait(lock, AUTOFLUSH_TIMEOUT); if (timeout and _ok_to_auto_flush and _last_send_buff and _bytes_in_buffer != 0) { _last_send_buff->commit(_bytes_in_buffer); _last_send_buff.reset(); } } }; /*********************************************************************** * USB zero copy wrapper implementation **********************************************************************/ class usb_zero_copy_wrapper : public usb_zero_copy{ public: usb_zero_copy_wrapper(sptr usb_zc, const size_t frame_boundary): _internal_zc(usb_zc), _frame_boundary(frame_boundary), _next_recv_buff_index(0) { for (size_t i = 0; i < this->get_num_recv_frames(); i++){ _mrb_pool.push_back(boost::make_shared()); } _the_only_msb = boost::make_shared(usb_zc, frame_boundary); } managed_recv_buffer::sptr get_recv_buff(double timeout){ //attempt to get a managed recv buffer if (not _last_recv_buff){ _last_recv_buff = _internal_zc->get_recv_buff(timeout); _last_recv_offset = 0; //reset offset into buffer } //get the buffer to be returned to the user if (_next_recv_buff_index == _mrb_pool.size()) _next_recv_buff_index = 0; return _mrb_pool[_next_recv_buff_index]->get_new( _last_recv_buff, _last_recv_offset, timeout, _next_recv_buff_index ); } size_t get_num_recv_frames(void) const{ return _internal_zc->get_num_recv_frames(); } size_t get_recv_frame_size(void) const{ return std::min(_frame_boundary, _internal_zc->get_recv_frame_size()); } managed_send_buffer::sptr get_send_buff(double timeout){ return _the_only_msb->get_new(timeout); } size_t get_num_send_frames(void) const{ return _internal_zc->get_num_send_frames(); } size_t get_send_frame_size(void) const{ return std::min(_frame_boundary, _internal_zc->get_send_frame_size()); } private: sptr _internal_zc; size_t _frame_boundary; std::vector > _mrb_pool; boost::shared_ptr _the_only_msb; //state for last recv buffer to create multiple managed buffers managed_recv_buffer::sptr _last_recv_buff; size_t _last_recv_offset; size_t _next_recv_buff_index; }; /*********************************************************************** * USB zero copy wrapper factory function **********************************************************************/ usb_zero_copy::sptr usb_zero_copy::make_wrapper( sptr usb_zc, size_t usb_frame_boundary ){ return sptr(new usb_zero_copy_wrapper(usb_zc, usb_frame_boundary)); } uhd-3.5.5/host/lib/types/000077500000000000000000000000001224274632000151755ustar00rootroot00000000000000uhd-3.5.5/host/lib/types/CMakeLists.txt000066400000000000000000000060371224274632000177430ustar00rootroot00000000000000# # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Setup defines for high resolution timing ######################################################################## MESSAGE(STATUS "") MESSAGE(STATUS "Configuring high resolution timing...") INCLUDE(CheckCXXSourceCompiles) SET(CMAKE_REQUIRED_LIBRARIES -lrt) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ timespec ts; return clock_gettime(CLOCK_MONOTONIC, &ts); } " HAVE_CLOCK_GETTIME ) UNSET(CMAKE_REQUIRED_LIBRARIES) INCLUDE(CheckCXXSourceCompiles) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ mach_timebase_info_data_t info; mach_timebase_info(&info); mach_absolute_time(); return 0; } " HAVE_MACH_ABSOLUTE_TIME ) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ LARGE_INTEGER value; QueryPerformanceCounter(&value); QueryPerformanceFrequency(&value); return 0; } " HAVE_QUERY_PERFORMANCE_COUNTER ) IF(HAVE_CLOCK_GETTIME) MESSAGE(STATUS " High resolution timing supported through clock_gettime.") SET(TIME_SPEC_DEFS HAVE_CLOCK_GETTIME) LIBUHD_APPEND_LIBS("-lrt") ELSEIF(HAVE_MACH_ABSOLUTE_TIME) MESSAGE(STATUS " High resolution timing supported through mach_absolute_time.") SET(TIME_SPEC_DEFS HAVE_MACH_ABSOLUTE_TIME) ELSEIF(HAVE_QUERY_PERFORMANCE_COUNTER) MESSAGE(STATUS " High resolution timing supported through QueryPerformanceCounter.") SET(TIME_SPEC_DEFS HAVE_QUERY_PERFORMANCE_COUNTER) ELSE() MESSAGE(STATUS " High resolution timing supported though microsec_clock.") SET(TIME_SPEC_DEFS HAVE_MICROSEC_CLOCK) ENDIF() SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/time_spec.cpp PROPERTIES COMPILE_DEFINITIONS "${TIME_SPEC_DEFS}" ) ######################################################################## # This file included, use CMake directory variables ######################################################################## LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/device_addr.cpp ${CMAKE_CURRENT_SOURCE_DIR}/mac_addr.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ranges.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sensors.cpp ${CMAKE_CURRENT_SOURCE_DIR}/serial.cpp ${CMAKE_CURRENT_SOURCE_DIR}/time_spec.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tune.cpp ${CMAKE_CURRENT_SOURCE_DIR}/types.cpp ) uhd-3.5.5/host/lib/types/device_addr.cpp000066400000000000000000000120241224274632000201310ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include using namespace uhd; static const std::string arg_delim = ","; static const std::string pair_delim = "="; static std::string trim(const std::string &in){ return boost::algorithm::trim_copy(in); } #define tokenizer(inp, sep) \ boost::tokenizer > \ (inp, boost::char_separator(sep.c_str())) device_addr_t::device_addr_t(const std::string &args){ BOOST_FOREACH(const std::string &pair, tokenizer(args, arg_delim)){ if (trim(pair) == "") continue; std::vector toks; BOOST_FOREACH(const std::string &tok, tokenizer(pair, pair_delim)){ toks.push_back(tok); } if (toks.size() == 1) toks.push_back(""); //pad empty value if (toks.size() == 2 and not trim(toks[0]).empty()){ //only valid combination this->set(trim(toks[0]), trim(toks[1])); } else throw uhd::value_error("invalid args string: "+args); //otherwise error } } std::string device_addr_t::to_pp_string(void) const{ if (this->size() == 0) return "Empty Device Address"; std::stringstream ss; ss << "Device Address:" << std::endl; BOOST_FOREACH(std::string key, this->keys()){ ss << boost::format(" %s: %s") % key % this->get(key) << std::endl; } return ss.str(); } std::string device_addr_t::to_string(void) const{ std::string args_str; size_t count = 0; BOOST_FOREACH(const std::string &key, this->keys()){ args_str += ((count++)? arg_delim : "") + key + pair_delim + this->get(key); } return args_str; } #include device_addrs_t uhd::separate_device_addr(const device_addr_t &dev_addr){ //------------ support old deprecated way and print warning -------- if (dev_addr.has_key("addr") and not dev_addr["addr"].empty()){ std::vector addrs; boost::split(addrs, dev_addr["addr"], boost::is_any_of(" ")); if (addrs.size() > 1){ device_addr_t fixed_dev_addr = dev_addr; fixed_dev_addr.pop("addr"); for (size_t i = 0; i < addrs.size(); i++){ fixed_dev_addr[str(boost::format("addr%d") % i)] = addrs[i]; } UHD_MSG(warning) << "addr = is deprecated.\n" "To address a multi-device, use multiple = .\n" "See the USRP-NXXX application notes. Two device example:\n" " addr0 = 192.168.10.2\n" " addr1 = 192.168.10.3\n" ; return separate_device_addr(fixed_dev_addr); } } //------------------------------------------------------------------ device_addrs_t dev_addrs(1); //must be at least one (obviously) std::vector global_keys; //keys that apply to all (no numerical suffix) BOOST_FOREACH(const std::string &key, dev_addr.keys()){ boost::cmatch matches; if (not boost::regex_match(key.c_str(), matches, boost::regex("^(\\D+)(\\d*)$"))){ throw std::runtime_error("unknown key format: " + key); } std::string key_part(matches[1].first, matches[1].second); std::string num_part(matches[2].first, matches[2].second); if (num_part.empty()){ //no number? save it for later global_keys.push_back(key); continue; } const size_t num = boost::lexical_cast(num_part); dev_addrs.resize(std::max(num+1, dev_addrs.size())); dev_addrs[num][key_part] = dev_addr[key]; } //copy the global settings across all device addresses BOOST_FOREACH(device_addr_t &my_dev_addr, dev_addrs){ BOOST_FOREACH(const std::string &global_key, global_keys){ my_dev_addr[global_key] = dev_addr[global_key]; } } return dev_addrs; } device_addr_t uhd::combine_device_addrs(const device_addrs_t &dev_addrs){ device_addr_t dev_addr; for (size_t i = 0; i < dev_addrs.size(); i++){ BOOST_FOREACH(const std::string &key, dev_addrs[i].keys()){ dev_addr[str(boost::format("%s%d") % key % i)] = dev_addrs[i][key]; } } return dev_addr; } uhd-3.5.5/host/lib/types/mac_addr.cpp000066400000000000000000000044061224274632000174370ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include using namespace uhd; mac_addr_t::mac_addr_t(const byte_vector_t &bytes) : _bytes(bytes){ UHD_ASSERT_THROW(_bytes.size() == 6); } mac_addr_t mac_addr_t::from_bytes(const byte_vector_t &bytes){ return mac_addr_t(bytes); } mac_addr_t mac_addr_t::from_string(const std::string &mac_addr_str){ byte_vector_t bytes; try{ if (mac_addr_str.size() != 17){ throw uhd::value_error("expected exactly 17 characters"); } //split the mac addr hex string at the colons boost::tokenizer > hex_num_toks( mac_addr_str, boost::char_separator(":")); BOOST_FOREACH(const std::string &hex_str, hex_num_toks){ int hex_num; std::istringstream iss(hex_str); iss >> std::hex >> hex_num; bytes.push_back(boost::uint8_t(hex_num)); } } catch(std::exception const& e){ throw uhd::value_error(str( boost::format("Invalid mac address: %s\n\t%s") % mac_addr_str % e.what() )); } return mac_addr_t::from_bytes(bytes); } byte_vector_t mac_addr_t::to_bytes(void) const{ return _bytes; } std::string mac_addr_t::to_string(void) const{ std::string addr = ""; BOOST_FOREACH(boost::uint8_t byte, this->to_bytes()){ addr += str(boost::format("%s%02x") % ((addr == "")?"":":") % int(byte)); } return addr; } uhd-3.5.5/host/lib/types/ranges.cpp000066400000000000000000000110121224274632000171530ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include using namespace uhd; /*********************************************************************** * range_t implementation code **********************************************************************/ range_t::range_t(double value): _start(value), _stop(value), _step(0.0) { /* NOP */ } range_t::range_t( double start, double stop, double step ): _start(start), _stop(stop), _step(step) { if (stop < start){ throw uhd::value_error("cannot make range where stop < start"); } } double range_t::start(void) const{ return _start; } double range_t::stop(void) const{ return _stop; } double range_t::step(void) const{ return _step; } const std::string range_t::to_pp_string(void) const{ std::stringstream ss; ss << "(" << this->start(); if (this->start() != this->stop()) ss << ", " << this->stop(); if (this->step() != 0) ss << ", " << this->step(); ss << ")"; return ss.str(); } /*********************************************************************** * meta_range_t implementation code **********************************************************************/ void check_meta_range_monotonic(const meta_range_t &mr){ if (mr.empty()){ throw uhd::value_error("meta-range cannot be empty"); } for (size_t i = 1; i < mr.size(); i++){ if (mr.at(i).start() < mr.at(i-1).stop()){ throw uhd::value_error("meta-range is not monotonic"); } } } meta_range_t::meta_range_t(void){ /* NOP */ } meta_range_t::meta_range_t( double start, double stop, double step ): std::vector (1, range_t(start, stop, step)) { /* NOP */ } double meta_range_t::start(void) const{ check_meta_range_monotonic(*this); double min_start = this->front().start(); BOOST_FOREACH(const range_t &r, (*this)){ min_start = std::min(min_start, r.start()); } return min_start; } double meta_range_t::stop(void) const{ check_meta_range_monotonic(*this); double max_stop = this->front().stop(); BOOST_FOREACH(const range_t &r, (*this)){ max_stop = std::max(max_stop, r.stop()); } return max_stop; } double meta_range_t::step(void) const{ check_meta_range_monotonic(*this); std::vector non_zero_steps; range_t last = this->front(); BOOST_FOREACH(const range_t &r, (*this)){ //steps at each range if (r.step() > 0) non_zero_steps.push_back(r.step()); //and steps in-between ranges double ibtw_step = r.start() - last.stop(); if (ibtw_step > 0) non_zero_steps.push_back(ibtw_step); //store ref to last last = r; } if (non_zero_steps.empty()) return 0; //all zero steps, its zero... return *std::min_element(non_zero_steps.begin(), non_zero_steps.end()); } double meta_range_t::clip(double value, bool clip_step) const{ check_meta_range_monotonic(*this); double last_stop = this->front().stop(); BOOST_FOREACH(const range_t &r, (*this)){ //in-between ranges, clip to nearest if (value < r.start()){ return (std::abs(value - r.start()) < std::abs(value - last_stop))? r.start() : last_stop; } //in this range, clip here if (value <= r.stop()){ if (not clip_step or r.step() == 0) return value; return boost::math::round((value - r.start())/r.step())*r.step() + r.start(); } //continue on to the next range last_stop = r.stop(); } return last_stop; } const std::string meta_range_t::to_pp_string(void) const{ std::stringstream ss; BOOST_FOREACH(const range_t &r, (*this)){ ss << r.to_pp_string() << std::endl; } return ss.str(); } uhd-3.5.5/host/lib/types/sensors.cpp000066400000000000000000000045121224274632000173770ustar00rootroot00000000000000// // Copyright 2011-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include using namespace uhd; sensor_value_t::sensor_value_t( const std::string &name, bool value, const std::string &utrue, const std::string &ufalse ): name(name), value(value?"true":"false"), unit(value?utrue:ufalse), type(BOOLEAN) { /* NOP */ } sensor_value_t::sensor_value_t( const std::string &name, signed value, const std::string &unit, const std::string &formatter ): name(name), value(str(boost::format(formatter) % value)), unit(unit), type(INTEGER) { /* NOP */ } sensor_value_t::sensor_value_t( const std::string &name, double value, const std::string &unit, const std::string &formatter ): name(name), value(str(boost::format(formatter) % value)), unit(unit), type(REALNUM) { /* NOP */ } sensor_value_t::sensor_value_t( const std::string &name, const std::string &value, const std::string &unit ): name(name), value(value), unit(unit), type(STRING) { /* NOP */ } std::string sensor_value_t::to_pp_string(void) const{ switch(type){ case BOOLEAN: return str(boost::format("%s: %s") % name % unit); case INTEGER: case REALNUM: case STRING: return str(boost::format("%s: %s %s") % name % value % unit); } UHD_THROW_INVALID_CODE_PATH(); } bool sensor_value_t::to_bool(void) const{ return value == "true"; } signed sensor_value_t::to_int(void) const{ return boost::lexical_cast(value); } double sensor_value_t::to_real(void) const{ return boost::lexical_cast(value); } uhd-3.5.5/host/lib/types/serial.cpp000066400000000000000000000041561224274632000171660ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include //for sleeping #include using namespace uhd; spi_config_t::spi_config_t(edge_t edge): mosi_edge(edge), miso_edge(edge) { /* NOP */ } void i2c_iface::write_eeprom( boost::uint8_t addr, boost::uint8_t offset, const byte_vector_t &bytes ){ for (size_t i = 0; i < bytes.size(); i++){ //write a byte at a time, its easy that way byte_vector_t cmd = boost::assign::list_of(offset+i)(bytes[i]); this->write_i2c(addr, cmd); boost::this_thread::sleep(boost::posix_time::milliseconds(10)); //worst case write } } byte_vector_t i2c_iface::read_eeprom( boost::uint8_t addr, boost::uint8_t offset, size_t num_bytes ){ byte_vector_t bytes; for (size_t i = 0; i < num_bytes; i++){ //do a zero byte write to start read cycle this->write_i2c(addr, byte_vector_t(1, offset+i)); bytes.push_back(this->read_i2c(addr, 1).at(0)); } return bytes; } boost::uint32_t spi_iface::read_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ return transact_spi( which_slave, config, data, num_bits, true ); } void spi_iface::write_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ transact_spi( which_slave, config, data, num_bits, false ); } uhd-3.5.5/host/lib/types/time_spec.cpp000066400000000000000000000127111224274632000176530ustar00rootroot00000000000000// // Copyright 2011-2013 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include using namespace uhd; /*********************************************************************** * Time spec system time **********************************************************************/ #ifdef HAVE_CLOCK_GETTIME #include time_spec_t time_spec_t::get_system_time(void){ timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); return time_spec_t(ts.tv_sec, ts.tv_nsec, 1e9); } #endif /* HAVE_CLOCK_GETTIME */ #ifdef HAVE_MACH_ABSOLUTE_TIME #include time_spec_t time_spec_t::get_system_time(void){ mach_timebase_info_data_t info; mach_timebase_info(&info); intmax_t nanosecs = mach_absolute_time()*info.numer/info.denom; return time_spec_t::from_ticks(nanosecs, 1e9); } #endif /* HAVE_MACH_ABSOLUTE_TIME */ #ifdef HAVE_QUERY_PERFORMANCE_COUNTER #include time_spec_t time_spec_t::get_system_time(void){ LARGE_INTEGER counts, freq; QueryPerformanceCounter(&counts); QueryPerformanceFrequency(&freq); return time_spec_t::from_ticks(counts.QuadPart, double(freq.QuadPart)); } #endif /* HAVE_QUERY_PERFORMANCE_COUNTER */ #ifdef HAVE_MICROSEC_CLOCK #include namespace pt = boost::posix_time; time_spec_t time_spec_t::get_system_time(void){ pt::ptime time_now = pt::microsec_clock::universal_time(); pt::time_duration time_dur = time_now - pt::from_time_t(0); return time_spec_t( time_t(time_dur.total_seconds()), long(time_dur.fractional_seconds()), double(pt::time_duration::ticks_per_second()) ); } #endif /* HAVE_MICROSEC_CLOCK */ /*********************************************************************** * Time spec constructors **********************************************************************/ #define time_spec_init(full, frac) { \ const time_t _full = time_t(full); \ const double _frac = double(frac); \ const int _frac_int = int(_frac); \ _full_secs = _full + _frac_int; \ _frac_secs = _frac - _frac_int; \ if (_frac_secs < 0) {\ _full_secs -= 1; \ _frac_secs += 1; \ } \ } UHD_INLINE long long fast_llround(const double x){ return (long long)(x + 0.5); // assumption of non-negativity } time_spec_t::time_spec_t(double secs){ time_spec_init(0, secs); } time_spec_t::time_spec_t(time_t full_secs, double frac_secs){ time_spec_init(full_secs, frac_secs); } time_spec_t::time_spec_t(time_t full_secs, long tick_count, double tick_rate){ const double frac_secs = tick_count/tick_rate; time_spec_init(full_secs, frac_secs); } time_spec_t time_spec_t::from_ticks(long long ticks, double tick_rate){ const long long rate_i = (long long)(tick_rate); const double rate_f = tick_rate - rate_i; const time_t secs_full = time_t(ticks/rate_i); const long long ticks_error = ticks - (secs_full*rate_i); const double ticks_frac = ticks_error - secs_full*rate_f; return time_spec_t(secs_full, ticks_frac/tick_rate); } /*********************************************************************** * Time spec accessors **********************************************************************/ long time_spec_t::get_tick_count(double tick_rate) const{ return long(fast_llround(this->get_frac_secs()*tick_rate)); } long long time_spec_t::to_ticks(double tick_rate) const{ const long long rate_i = (long long)(tick_rate); const double rate_f = tick_rate - rate_i; const long long ticks_full = this->get_full_secs()*rate_i; const double ticks_error = this->get_full_secs()*rate_f; const double ticks_frac = this->get_frac_secs()*tick_rate; return ticks_full + fast_llround(ticks_error + ticks_frac); } double time_spec_t::get_real_secs(void) const{ return this->get_full_secs() + this->get_frac_secs(); } /*********************************************************************** * Time spec math overloads **********************************************************************/ time_spec_t &time_spec_t::operator+=(const time_spec_t &rhs){ time_spec_init( this->get_full_secs() + rhs.get_full_secs(), this->get_frac_secs() + rhs.get_frac_secs() ); return *this; } time_spec_t &time_spec_t::operator-=(const time_spec_t &rhs){ time_spec_init( this->get_full_secs() - rhs.get_full_secs(), this->get_frac_secs() - rhs.get_frac_secs() ); return *this; } bool uhd::operator==(const time_spec_t &lhs, const time_spec_t &rhs){ return lhs.get_full_secs() == rhs.get_full_secs() and lhs.get_frac_secs() == rhs.get_frac_secs() ; } bool uhd::operator<(const time_spec_t &lhs, const time_spec_t &rhs){ return ( (lhs.get_full_secs() < rhs.get_full_secs()) or ( (lhs.get_full_secs() == rhs.get_full_secs()) and (lhs.get_frac_secs() < rhs.get_frac_secs()) )); } uhd-3.5.5/host/lib/types/tune.cpp000066400000000000000000000031071224274632000166550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include using namespace uhd; tune_request_t::tune_request_t(double target_freq): target_freq(target_freq), rf_freq_policy(POLICY_AUTO), dsp_freq_policy(POLICY_AUTO) { /* NOP */ } tune_request_t::tune_request_t(double target_freq, double lo_off): target_freq(target_freq), rf_freq_policy(POLICY_MANUAL), rf_freq(target_freq + lo_off), dsp_freq_policy(POLICY_AUTO) { /* NOP */ } std::string tune_result_t::to_pp_string(void) const{ return str(boost::format( "Tune Result:\n" " Target RF Freq: %f (MHz)\n" " Actual RF Freq: %f (MHz)\n" " Target DSP Freq: %f (MHz)\n" " Actual DSP Freq: %f (MHz)\n" ) % (target_rf_freq/1e6) % (actual_rf_freq/1e6) % (target_dsp_freq/1e6) % (actual_dsp_freq/1e6) ); } uhd-3.5.5/host/lib/types/types.cpp000066400000000000000000000026131224274632000170470ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include using namespace uhd; /*********************************************************************** * stream command **********************************************************************/ stream_cmd_t::stream_cmd_t(const stream_mode_t &stream_mode): stream_mode(stream_mode), num_samps(0), stream_now(true) { /* NOP */ } /*********************************************************************** * metadata **********************************************************************/ tx_metadata_t::tx_metadata_t(void): has_time_spec(false), time_spec(time_spec_t()), start_of_burst(false), end_of_burst(false) { /* NOP */ } uhd-3.5.5/host/lib/uhd.rc.in000066400000000000000000000017401224274632000155460ustar00rootroot00000000000000#include VS_VERSION_INFO VERSIONINFO FILEVERSION @TRIMMED_VERSION_MAJOR@,@TRIMMED_VERSION_MINOR@,@TRIMMED_VERSION_PATCH@,@UHD_GIT_COUNT@ PRODUCTVERSION @TRIMMED_VERSION_MAJOR@,@TRIMMED_VERSION_MINOR@,@TRIMMED_VERSION_PATCH@,@UHD_GIT_COUNT@ FILEFLAGSMASK 0x3fL #ifndef NDEBUG FILEFLAGS 0x0L #else FILEFLAGS 0x1L #endif FILEOS VOS__WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE VFT2_DRV_INSTALLABLE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "USRP Hardware Driver (UHD) Library" VALUE "FileVersion", "@UHD_VERSION@" VALUE "InternalName", "uhd.dll" VALUE "LegalCopyright", "Licensed under GPLv3 or any later version" VALUE "OriginalFilename", "uhd.dll" VALUE "ProductName", "USRP Hardware Driver (UHD) Library" VALUE "ProductVersion", "@UHD_VERSION@" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END uhd-3.5.5/host/lib/usrp/000077500000000000000000000000001224274632000150225ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/CMakeLists.txt000066400000000000000000000030001224274632000175530ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/dboard_base.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_eeprom.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_id.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_manager.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gps_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/mboard_eeprom.cpp ${CMAKE_CURRENT_SOURCE_DIR}/multi_usrp.cpp ${CMAKE_CURRENT_SOURCE_DIR}/subdev_spec.cpp ) INCLUDE_SUBDIRECTORY(cores) INCLUDE_SUBDIRECTORY(dboard) INCLUDE_SUBDIRECTORY(common) INCLUDE_SUBDIRECTORY(usrp1) INCLUDE_SUBDIRECTORY(usrp2) INCLUDE_SUBDIRECTORY(b100) INCLUDE_SUBDIRECTORY(e100) uhd-3.5.5/host/lib/usrp/README000066400000000000000000000006711224274632000157060ustar00rootroot00000000000000######################################################################## # lib USRP directories: ######################################################################## dboard: Daughterboard implementation code for all USRP daughterboards usrp1: Implementation code for the USB-based USRP Classic motherboard. usrp2: Implementation code for USRP2, USRP-N200, and USRP-N210. usrp_e100: Implementation code for USRP-E100. uhd-3.5.5/host/lib/usrp/b100/000077500000000000000000000000001224274632000154645ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/b100/CMakeLists.txt000066400000000000000000000027001224274632000202230ustar00rootroot00000000000000# # Copyright 2011-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## ######################################################################## # Conditionally configure the B100 support ######################################################################## LIBUHD_REGISTER_COMPONENT("B100" ENABLE_B100 ON "ENABLE_LIBUHD;ENABLE_USB" OFF) IF(ENABLE_B100) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/b100_impl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/clock_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/codec_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/io_impl.cpp ) ENDIF(ENABLE_B100) uhd-3.5.5/host/lib/usrp/b100/b100_impl.cpp000066400000000000000000000655171224274632000176710ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "apply_corrections.hpp" #include "b100_impl.hpp" #include "b100_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; const boost::uint16_t B100_VENDOR_ID = 0x2500; const boost::uint16_t B100_PRODUCT_ID = 0x0002; const boost::uint16_t FX2_VENDOR_ID = 0x04b4; const boost::uint16_t FX2_PRODUCT_ID = 0x8613; static const boost::posix_time::milliseconds REENUMERATION_TIMEOUT_MS(3000); /*********************************************************************** * Discovery **********************************************************************/ static device_addrs_t b100_find(const device_addr_t &hint) { device_addrs_t b100_addrs; //return an empty list of addresses when type is set to non-b100 if (hint.has_key("type") and hint["type"] != "b100") return b100_addrs; //Return an empty list of addresses when an address is specified, //since an address is intended for a different, non-USB, device. if (hint.has_key("addr")) return b100_addrs; unsigned int vid, pid; if(hint.has_key("vid") && hint.has_key("pid") && hint.has_key("type") && hint["type"] == "b100") { sscanf(hint.get("vid").c_str(), "%x", &vid); sscanf(hint.get("pid").c_str(), "%x", &pid); } else { vid = B100_VENDOR_ID; pid = B100_PRODUCT_ID; } // Important note: // The get device list calls are nested inside the for loop. // This allows the usb guts to decontruct when not in use, // so that re-enumeration after fw load can occur successfully. // This requirement is a courtesy of libusb1.0 on windows. //find the usrps and load firmware size_t found = 0; BOOST_FOREACH(usb_device_handle::sptr handle, usb_device_handle::get_device_list(vid, pid)) { //extract the firmware path for the b100 std::string b100_fw_image; try{ b100_fw_image = find_image_path(hint.get("fw", B100_FW_FILE_NAME)); } catch(...){ UHD_MSG(warning) << boost::format("Could not locate B100 firmware. %s\n") % print_images_error(); return b100_addrs; } UHD_LOG << "the firmware image: " << b100_fw_image << std::endl; usb_control::sptr control; try{control = usb_control::make(handle, 0);} catch(const uhd::exception &){continue;} //ignore claimed fx2_ctrl::make(control)->usrp_load_firmware(b100_fw_image); found++; } //get descriptors again with serial number, but using the initialized VID/PID now since we have firmware vid = B100_VENDOR_ID; pid = B100_PRODUCT_ID; const boost::system_time timeout_time = boost::get_system_time() + REENUMERATION_TIMEOUT_MS; //search for the device until found or timeout while (boost::get_system_time() < timeout_time and b100_addrs.empty() and found != 0) { BOOST_FOREACH(usb_device_handle::sptr handle, usb_device_handle::get_device_list(vid, pid)) { usb_control::sptr control; try{control = usb_control::make(handle, 0);} catch(const uhd::exception &){continue;} //ignore claimed fx2_ctrl::sptr fx2_ctrl = fx2_ctrl::make(control); const mboard_eeprom_t mb_eeprom = mboard_eeprom_t(*fx2_ctrl, B100_EEPROM_MAP_KEY); device_addr_t new_addr; new_addr["type"] = "b100"; new_addr["name"] = mb_eeprom["name"]; new_addr["serial"] = handle->get_serial(); //this is a found b100 when the hint serial and name match or blank if ( (not hint.has_key("name") or hint["name"] == new_addr["name"]) and (not hint.has_key("serial") or hint["serial"] == new_addr["serial"]) ){ b100_addrs.push_back(new_addr); } } } return b100_addrs; } /*********************************************************************** * Make **********************************************************************/ static device::sptr b100_make(const device_addr_t &device_addr){ return device::sptr(new b100_impl(device_addr)); } UHD_STATIC_BLOCK(register_b100_device){ device::register_device(&b100_find, &b100_make); } /*********************************************************************** * Structors **********************************************************************/ b100_impl::b100_impl(const device_addr_t &device_addr){ size_t initialization_count = 0; b100_impl_constructor_begin: initialization_count++; _tree = property_tree::make(); //extract the FPGA path for the B100 std::string b100_fpga_image = find_image_path( device_addr.has_key("fpga")? device_addr["fpga"] : B100_FPGA_FILE_NAME ); //try to match the given device address with something on the USB bus std::vector device_list = usb_device_handle::get_device_list(B100_VENDOR_ID, B100_PRODUCT_ID); //locate the matching handle in the device list usb_device_handle::sptr handle; BOOST_FOREACH(usb_device_handle::sptr dev_handle, device_list) { if (dev_handle->get_serial() == device_addr["serial"]){ handle = dev_handle; break; } } UHD_ASSERT_THROW(handle.get() != NULL); //better be found //create control objects usb_control::sptr fx2_transport = usb_control::make(handle, 0); _fx2_ctrl = fx2_ctrl::make(fx2_transport); this->check_fw_compat(); //check after making fx2 //-- setup clock after making fx2 and before loading fpga --// _clock_ctrl = b100_clock_ctrl::make(_fx2_ctrl, device_addr.cast("master_clock_rate", B100_DEFAULT_TICK_RATE)); //load FPGA image, slave xfers are disabled while loading this->enable_gpif(false); _fx2_ctrl->usrp_load_fpga(b100_fpga_image); _fx2_ctrl->usrp_fpga_reset(false); //active low reset _fx2_ctrl->usrp_fpga_reset(true); //create the control transport device_addr_t ctrl_xport_args; ctrl_xport_args["recv_frame_size"] = "512"; ctrl_xport_args["num_recv_frames"] = "16"; ctrl_xport_args["send_frame_size"] = "512"; ctrl_xport_args["num_send_frames"] = "16"; _ctrl_transport = usb_zero_copy::make( handle, 4, 8, //interface, endpoint 3, 4, //interface, endpoint ctrl_xport_args ); this->enable_gpif(true); //////////////////////////////////////////////////////////////////// // Initialize FPGA control communication //////////////////////////////////////////////////////////////////// fifo_ctrl_excelsior_config fifo_ctrl_config; fifo_ctrl_config.async_sid_base = B100_TX_ASYNC_SID; fifo_ctrl_config.num_async_chan = 1; fifo_ctrl_config.ctrl_sid_base = B100_CTRL_MSG_SID; fifo_ctrl_config.spi_base = TOREG(SR_SPI); fifo_ctrl_config.spi_rb = REG_RB_SPI; _fifo_ctrl = fifo_ctrl_excelsior::make(_ctrl_transport, fifo_ctrl_config); //perform a test peek operation try{ _fifo_ctrl->peek32(0); } //try reset once in the case of failure catch(const uhd::exception &){ if (initialization_count > 1) throw; UHD_MSG(warning) << "The control endpoint was left in a bad state.\n" "Attempting endpoint re-enumeration...\n" << std::endl; _fifo_ctrl.reset(); _ctrl_transport.reset(); _fx2_ctrl->usrp_fx2_reset(); goto b100_impl_constructor_begin; } this->check_fpga_compat(); //check after reset and making control //////////////////////////////////////////////////////////////////// // Initialize peripherals after reset //////////////////////////////////////////////////////////////////// _fpga_i2c_ctrl = i2c_core_200::make(_fifo_ctrl, TOREG(SR_I2C), REG_RB_I2C); //////////////////////////////////////////////////////////////////// // Create data transport // This happens after FPGA ctrl instantiated so any junk that might // be in the FPGAs buffers doesn't get pulled into the transport // before being cleared. //////////////////////////////////////////////////////////////////// device_addr_t data_xport_args; data_xport_args["recv_frame_size"] = device_addr.get("recv_frame_size", "16384"); data_xport_args["num_recv_frames"] = device_addr.get("num_recv_frames", "16"); data_xport_args["send_frame_size"] = device_addr.get("send_frame_size", "16384"); data_xport_args["num_send_frames"] = device_addr.get("num_send_frames", "16"); //let packet padder know the LUT size in number of words32 const size_t rx_lut_size = size_t(data_xport_args.cast("recv_frame_size", 0.0)); _fifo_ctrl->poke32(TOREG(SR_PADDER+0), rx_lut_size/sizeof(boost::uint32_t)); _data_transport = usb_zero_copy::make_wrapper( usb_zero_copy::make( handle, // identifier 2, 6, // IN interface, endpoint 1, 2, // OUT interface, endpoint data_xport_args // param hints ), B100_MAX_PKT_BYTE_LIMIT ); //////////////////////////////////////////////////////////////////// // Initialize the properties tree //////////////////////////////////////////////////////////////////// _tree->create("/name").set("B-Series Device"); const fs_path mb_path = "/mboards/0"; _tree->create(mb_path / "name").set("B100"); _tree->create(mb_path / "codename").set("B-Hundo"); _tree->create(mb_path / "load_eeprom") .subscribe(boost::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, _1)); //////////////////////////////////////////////////////////////////// // setup the mboard eeprom //////////////////////////////////////////////////////////////////// const mboard_eeprom_t mb_eeprom(*_fx2_ctrl, B100_EEPROM_MAP_KEY); _tree->create(mb_path / "eeprom") .set(mb_eeprom) .subscribe(boost::bind(&b100_impl::set_mb_eeprom, this, _1)); //////////////////////////////////////////////////////////////////// // create clock control objects //////////////////////////////////////////////////////////////////// //^^^ clock created up top, just reg props here... ^^^ _tree->create(mb_path / "tick_rate") .publish(boost::bind(&b100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl)) .subscribe(boost::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, _1)) .subscribe(boost::bind(&b100_impl::update_tick_rate, this, _1)); //subscribe the command time while we are at it _tree->create(mb_path / "time/cmd") .subscribe(boost::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, _1)); //////////////////////////////////////////////////////////////////// // create codec control objects //////////////////////////////////////////////////////////////////// _codec_ctrl = b100_codec_ctrl::make(_fifo_ctrl); const fs_path rx_codec_path = mb_path / "rx_codecs/A"; const fs_path tx_codec_path = mb_path / "tx_codecs/A"; _tree->create(rx_codec_path / "name").set("ad9522"); _tree->create(rx_codec_path / "gains/pga/range").set(b100_codec_ctrl::rx_pga_gain_range); _tree->create(rx_codec_path / "gains/pga/value") .coerce(boost::bind(&b100_impl::update_rx_codec_gain, this, _1)) .set(0.0); _tree->create(tx_codec_path / "name").set("ad9522"); _tree->create(tx_codec_path / "gains/pga/range").set(b100_codec_ctrl::tx_pga_gain_range); _tree->create(tx_codec_path / "gains/pga/value") .subscribe(boost::bind(&b100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, _1)) .publish(boost::bind(&b100_codec_ctrl::get_tx_pga_gain, _codec_ctrl)) .set(0.0); //////////////////////////////////////////////////////////////////// // and do the misc mboard sensors //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "sensors/ref_locked") .publish(boost::bind(&b100_impl::get_ref_locked, this)); //////////////////////////////////////////////////////////////////// // create frontend control objects //////////////////////////////////////////////////////////////////// _rx_fe = rx_frontend_core_200::make(_fifo_ctrl, TOREG(SR_RX_FE)); _tx_fe = tx_frontend_core_200::make(_fifo_ctrl, TOREG(SR_TX_FE)); _tree->create(mb_path / "rx_subdev_spec") .subscribe(boost::bind(&b100_impl::update_rx_subdev_spec, this, _1)); _tree->create(mb_path / "tx_subdev_spec") .subscribe(boost::bind(&b100_impl::update_tx_subdev_spec, this, _1)); const fs_path rx_fe_path = mb_path / "rx_frontends" / "A"; const fs_path tx_fe_path = mb_path / "tx_frontends" / "A"; _tree->create >(rx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create(rx_fe_path / "dc_offset" / "enable") .subscribe(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, _1)) .set(true); _tree->create >(rx_fe_path / "iq_balance" / "value") .subscribe(boost::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "iq_balance" / "value") .subscribe(boost::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, _1)) .set(std::complex(0.0, 0.0)); //////////////////////////////////////////////////////////////////// // create rx dsp control objects //////////////////////////////////////////////////////////////////// const size_t num_rx_dsps = _fifo_ctrl->peek32(REG_RB_NUM_RX_DSP); for (size_t dspno = 0; dspno < num_rx_dsps; dspno++) { const size_t sr_off = dspno*32; _rx_dsps.push_back(rx_dsp_core_200::make( _fifo_ctrl, TOREG(SR_RX_DSP0+sr_off), TOREG(SR_RX_CTRL0+sr_off), B100_RX_SID_BASE + dspno )); _rx_dsps[dspno]->set_link_rate(B100_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], _1)); fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno); _tree->create(rx_dsp_path / "rate/range") .publish(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno])); _tree->create(rx_dsp_path / "rate/value") .set(1e6) //some default .coerce(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], _1)) .subscribe(boost::bind(&b100_impl::update_rx_samp_rate, this, dspno, _1)); _tree->create(rx_dsp_path / "freq/value") .coerce(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], _1)); _tree->create(rx_dsp_path / "freq/range") .publish(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno])); _tree->create(rx_dsp_path / "stream_cmd") .subscribe(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], _1)); } //////////////////////////////////////////////////////////////////// // create tx dsp control objects //////////////////////////////////////////////////////////////////// _tx_dsp = tx_dsp_core_200::make( _fifo_ctrl, TOREG(SR_TX_DSP), TOREG(SR_TX_CTRL), B100_TX_ASYNC_SID ); _tx_dsp->set_link_rate(B100_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, _1)); _tree->create(mb_path / "tx_dsps/0/rate/range") .publish(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp)); _tree->create(mb_path / "tx_dsps/0/rate/value") .set(1e6) //some default .coerce(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, _1)) .subscribe(boost::bind(&b100_impl::update_tx_samp_rate, this, 0, _1)); _tree->create(mb_path / "tx_dsps/0/freq/value") .coerce(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsp, _1)); _tree->create(mb_path / "tx_dsps/0/freq/range") .publish(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp)); //////////////////////////////////////////////////////////////////// // create time control objects //////////////////////////////////////////////////////////////////// time64_core_200::readback_bases_type time64_rb_bases; time64_rb_bases.rb_hi_now = REG_RB_TIME_NOW_HI; time64_rb_bases.rb_lo_now = REG_RB_TIME_NOW_LO; time64_rb_bases.rb_hi_pps = REG_RB_TIME_PPS_HI; time64_rb_bases.rb_lo_pps = REG_RB_TIME_PPS_LO; _time64 = time64_core_200::make( _fifo_ctrl, TOREG(SR_TIME64), time64_rb_bases ); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&time64_core_200::set_tick_rate, _time64, _1)); _tree->create(mb_path / "time/now") .publish(boost::bind(&time64_core_200::get_time_now, _time64)) .subscribe(boost::bind(&time64_core_200::set_time_now, _time64, _1)); _tree->create(mb_path / "time/pps") .publish(boost::bind(&time64_core_200::get_time_last_pps, _time64)) .subscribe(boost::bind(&time64_core_200::set_time_next_pps, _time64, _1)); //setup time source props _tree->create(mb_path / "time_source/value") .subscribe(boost::bind(&time64_core_200::set_time_source, _time64, _1)); _tree->create >(mb_path / "time_source/options") .publish(boost::bind(&time64_core_200::get_time_sources, _time64)); //setup reference source props _tree->create(mb_path / "clock_source/value") .subscribe(boost::bind(&b100_impl::update_clock_source, this, _1)); static const std::vector clock_sources = boost::assign::list_of("internal")("external")("auto"); _tree->create >(mb_path / "clock_source/options").set(clock_sources); //////////////////////////////////////////////////////////////////// // create user-defined control objects //////////////////////////////////////////////////////////////////// _user = user_settings_core_200::make(_fifo_ctrl, TOREG(SR_USER_REGS)); _tree->create(mb_path / "user/regs") .subscribe(boost::bind(&user_settings_core_200::set_reg, _user, _1)); //////////////////////////////////////////////////////////////////// // create dboard control objects //////////////////////////////////////////////////////////////////// //read the dboard eeprom to extract the dboard ids dboard_eeprom_t rx_db_eeprom, tx_db_eeprom, gdb_eeprom; rx_db_eeprom.load(*_fpga_i2c_ctrl, I2C_ADDR_RX_A); tx_db_eeprom.load(*_fpga_i2c_ctrl, I2C_ADDR_TX_A); gdb_eeprom.load(*_fpga_i2c_ctrl, I2C_ADDR_TX_A ^ 5); //disable rx dc offset if LFRX if (rx_db_eeprom.id == 0x000f) _tree->access(rx_fe_path / "dc_offset" / "enable").set(false); //create the properties and register subscribers _tree->create(mb_path / "dboards/A/rx_eeprom") .set(rx_db_eeprom) .subscribe(boost::bind(&b100_impl::set_db_eeprom, this, "rx", _1)); _tree->create(mb_path / "dboards/A/tx_eeprom") .set(tx_db_eeprom) .subscribe(boost::bind(&b100_impl::set_db_eeprom, this, "tx", _1)); _tree->create(mb_path / "dboards/A/gdb_eeprom") .set(gdb_eeprom) .subscribe(boost::bind(&b100_impl::set_db_eeprom, this, "gdb", _1)); //create a new dboard interface and manager _dboard_iface = make_b100_dboard_iface(_fifo_ctrl, _fpga_i2c_ctrl, _fifo_ctrl/*spi*/, _clock_ctrl, _codec_ctrl); _tree->create(mb_path / "dboards/A/iface").set(_dboard_iface); _dboard_manager = dboard_manager::make( rx_db_eeprom.id, tx_db_eeprom.id, gdb_eeprom.id, _dboard_iface, _tree->subtree(mb_path / "dboards/A") ); //bind frontend corrections to the dboard freq props const fs_path db_tx_fe_path = mb_path / "dboards" / "A" / "tx_frontends"; BOOST_FOREACH(const std::string &name, _tree->list(db_tx_fe_path)){ _tree->access(db_tx_fe_path / name / "freq" / "value") .subscribe(boost::bind(&b100_impl::set_tx_fe_corrections, this, _1)); } const fs_path db_rx_fe_path = mb_path / "dboards" / "A" / "rx_frontends"; BOOST_FOREACH(const std::string &name, _tree->list(db_rx_fe_path)){ _tree->access(db_rx_fe_path / name / "freq" / "value") .subscribe(boost::bind(&b100_impl::set_rx_fe_corrections, this, _1)); } //initialize io handling _recv_demuxer = recv_packet_demuxer::make(_data_transport, _rx_dsps.size(), B100_RX_SID_BASE); //allocate streamer weak ptrs containers _rx_streamers.resize(_rx_dsps.size()); _tx_streamers.resize(1/*known to be 1 dsp*/); //////////////////////////////////////////////////////////////////// // do some post-init tasks //////////////////////////////////////////////////////////////////// this->update_rates(); _tree->access(mb_path / "tick_rate") //now subscribe the clock rate setter .subscribe(boost::bind(&b100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, _1)); //reset cordic rates and their properties to zero BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){ _tree->access(mb_path / "rx_dsps" / name / "freq" / "value").set(0.0); } BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "tx_dsps")){ _tree->access(mb_path / "tx_dsps" / name / "freq" / "value").set(0.0); } _tree->access(mb_path / "rx_subdev_spec").set(subdev_spec_t("A:" + _tree->list(mb_path / "dboards/A/rx_frontends").at(0))); _tree->access(mb_path / "tx_subdev_spec").set(subdev_spec_t("A:" + _tree->list(mb_path / "dboards/A/tx_frontends").at(0))); _tree->access(mb_path / "clock_source/value").set("internal"); _tree->access(mb_path / "time_source/value").set("none"); } b100_impl::~b100_impl(void){ //NOP } void b100_impl::check_fw_compat(void){ unsigned char data[4]; //useless data buffer const boost::uint16_t fw_compat_num = _fx2_ctrl->usrp_control_read( VRQ_FW_COMPAT, 0, 0, data, sizeof(data) ); if (fw_compat_num != B100_FW_COMPAT_NUM){ throw uhd::runtime_error(str(boost::format( "Expected firmware compatibility number 0x%x, but got 0x%x:\n" "The firmware build is not compatible with the host code build.\n" "%s" ) % B100_FW_COMPAT_NUM % fw_compat_num % print_images_error())); } } void b100_impl::check_fpga_compat(void){ const boost::uint32_t fpga_compat_num = _fifo_ctrl->peek32(REG_RB_COMPAT); boost::uint16_t fpga_major = fpga_compat_num >> 16, fpga_minor = fpga_compat_num & 0xffff; if (fpga_major == 0){ //old version scheme fpga_major = fpga_minor; fpga_minor = 0; } if (fpga_major != B100_FPGA_COMPAT_NUM){ throw uhd::runtime_error(str(boost::format( "Expected FPGA compatibility number %d, but got %d:\n" "The FPGA build is not compatible with the host code build." "%s" ) % int(B100_FPGA_COMPAT_NUM) % fpga_major % print_images_error())); } _tree->create("/mboards/0/fpga_version").set(str(boost::format("%u.%u") % fpga_major % fpga_minor)); } double b100_impl::update_rx_codec_gain(const double gain){ //set gain on both I and Q, readback on one //TODO in the future, gains should have individual control _codec_ctrl->set_rx_pga_gain(gain, 'A'); _codec_ctrl->set_rx_pga_gain(gain, 'B'); return _codec_ctrl->get_rx_pga_gain('A'); } void b100_impl::set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &mb_eeprom){ mb_eeprom.commit(*_fx2_ctrl, B100_EEPROM_MAP_KEY); } void b100_impl::set_db_eeprom(const std::string &type, const uhd::usrp::dboard_eeprom_t &db_eeprom){ if (type == "rx") db_eeprom.store(*_fpga_i2c_ctrl, I2C_ADDR_RX_A); if (type == "tx") db_eeprom.store(*_fpga_i2c_ctrl, I2C_ADDR_TX_A); if (type == "gdb") db_eeprom.store(*_fpga_i2c_ctrl, I2C_ADDR_TX_A ^ 5); } void b100_impl::update_clock_source(const std::string &source){ if (source == "pps_sync"){ _clock_ctrl->use_external_ref(); _fifo_ctrl->poke32(TOREG(SR_MISC+2), 1); return; } if (source == "_pps_sync_"){ _clock_ctrl->use_external_ref(); _fifo_ctrl->poke32(TOREG(SR_MISC+2), 3); return; } _fifo_ctrl->poke32(TOREG(SR_MISC+2), 0); if (source == "auto") _clock_ctrl->use_auto_ref(); else if (source == "internal") _clock_ctrl->use_internal_ref(); else if (source == "external") _clock_ctrl->use_external_ref(); else throw uhd::runtime_error("unhandled clock configuration reference source: " + source); } ////////////////// some GPIF preparation related stuff ///////////////// void b100_impl::enable_gpif(const bool en) { _fx2_ctrl->usrp_control_write(VRQ_ENABLE_GPIF, en ? 1 : 0, 0, 0, 0); } void b100_impl::clear_fpga_fifo(void) { _fx2_ctrl->usrp_control_write(VRQ_CLEAR_FPGA_FIFO, 0, 0, 0, 0); } sensor_value_t b100_impl::get_ref_locked(void){ const bool lock = _clock_ctrl->get_locked(); return sensor_value_t("Ref", lock, "locked", "unlocked"); } void b100_impl::set_rx_fe_corrections(const double lo_freq){ apply_rx_fe_corrections(this->get_tree()->subtree("/mboards/0"), "A", lo_freq); } void b100_impl::set_tx_fe_corrections(const double lo_freq){ apply_tx_fe_corrections(this->get_tree()->subtree("/mboards/0"), "A", lo_freq); } uhd-3.5.5/host/lib/usrp/b100/b100_impl.hpp000066400000000000000000000121031224274632000176550ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_B100_IMPL_HPP #define INCLUDED_B100_IMPL_HPP #include "fx2_ctrl.hpp" #include "clock_ctrl.hpp" #include "codec_ctrl.hpp" #include "i2c_core_200.hpp" #include "rx_frontend_core_200.hpp" #include "tx_frontend_core_200.hpp" #include "rx_dsp_core_200.hpp" #include "tx_dsp_core_200.hpp" #include "time64_core_200.hpp" #include "fifo_ctrl_excelsior.hpp" #include "user_settings_core_200.hpp" #include "recv_packet_demuxer.hpp" #include #include #include #include #include #include #include #include #include #include #include #include static const double B100_LINK_RATE_BPS = 256e6/5; //pratical link rate (< 480 Mbps) static const std::string B100_FW_FILE_NAME = "usrp_b100_fw.ihx"; static const std::string B100_FPGA_FILE_NAME = "usrp_b100_fpga.bin"; static const boost::uint16_t B100_FW_COMPAT_NUM = 0x04; static const boost::uint16_t B100_FPGA_COMPAT_NUM = 11; static const boost::uint32_t B100_RX_SID_BASE = 30; static const boost::uint32_t B100_TX_ASYNC_SID = 10; static const boost::uint32_t B100_CTRL_MSG_SID = 20; static const double B100_DEFAULT_TICK_RATE = 64e6; static const size_t B100_MAX_PKT_BYTE_LIMIT = 2048; static const std::string B100_EEPROM_MAP_KEY = "B100"; #define I2C_ADDR_TX_A (I2C_DEV_EEPROM | 0x4) #define I2C_ADDR_RX_A (I2C_DEV_EEPROM | 0x5) #define I2C_ADDR_TX_B (I2C_DEV_EEPROM | 0x6) #define I2C_ADDR_RX_B (I2C_DEV_EEPROM | 0x7) #define I2C_DEV_EEPROM 0x50 #define VRQ_FW_COMPAT 0x83 #define VRQ_ENABLE_GPIF 0x0d #define VRQ_CLEAR_FPGA_FIFO 0x0e //! Make a b100 dboard interface uhd::usrp::dboard_iface::sptr make_b100_dboard_iface( wb_iface::sptr wb_iface, uhd::i2c_iface::sptr i2c_iface, uhd::spi_iface::sptr spi_iface, b100_clock_ctrl::sptr clock, b100_codec_ctrl::sptr codec ); //! Implementation guts class b100_impl : public uhd::device { public: //structors b100_impl(const uhd::device_addr_t &); ~b100_impl(void); //the io interface uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t &args); uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t &args); bool recv_async_msg(uhd::async_metadata_t &, double); private: uhd::property_tree::sptr _tree; //controllers fifo_ctrl_excelsior::sptr _fifo_ctrl; i2c_core_200::sptr _fpga_i2c_ctrl; rx_frontend_core_200::sptr _rx_fe; tx_frontend_core_200::sptr _tx_fe; std::vector _rx_dsps; tx_dsp_core_200::sptr _tx_dsp; time64_core_200::sptr _time64; user_settings_core_200::sptr _user; b100_clock_ctrl::sptr _clock_ctrl; b100_codec_ctrl::sptr _codec_ctrl; uhd::usrp::fx2_ctrl::sptr _fx2_ctrl; //transports uhd::transport::zero_copy_if::sptr _ctrl_transport; uhd::transport::zero_copy_if::sptr _data_transport; uhd::usrp::recv_packet_demuxer::sptr _recv_demuxer; //dboard stuff uhd::usrp::dboard_manager::sptr _dboard_manager; uhd::usrp::dboard_iface::sptr _dboard_iface; //device properties interface uhd::property_tree::sptr get_tree(void) const{ return _tree; } std::vector > _rx_streamers; std::vector > _tx_streamers; void check_fw_compat(void); void check_fpga_compat(void); double update_rx_codec_gain(const double); //sets A and B at once void set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &); void set_db_eeprom(const std::string &, const uhd::usrp::dboard_eeprom_t &); void update_tick_rate(const double rate); void update_rx_samp_rate(const size_t, const double rate); void update_tx_samp_rate(const size_t, const double rate); void update_rates(void); void update_rx_subdev_spec(const uhd::usrp::subdev_spec_t &); void update_tx_subdev_spec(const uhd::usrp::subdev_spec_t &); void update_clock_source(const std::string &); void enable_gpif(const bool); void clear_fpga_fifo(void); uhd::sensor_value_t get_ref_locked(void); void set_rx_fe_corrections(const double); void set_tx_fe_corrections(const double); }; #endif /* INCLUDED_b100_IMPL_HPP */ uhd-3.5.5/host/lib/usrp/b100/b100_regs.hpp000066400000000000000000000037221224274632000176630ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_B100_REGS_HPP #define INCLUDED_B100_REGS_HPP #include #define TOREG(x) ((x)*4) #define localparam static const int localparam SR_MISC = 0; // 5 localparam SR_USER_REGS = 5; // 2 localparam SR_PADDER = 10; // 2 localparam SR_TX_CTRL = 32; // 6 localparam SR_TX_DSP = 40; // 5 localparam SR_TX_FE = 48; // 5 localparam SR_RX_CTRL0 = 96; // 9 localparam SR_RX_DSP0 = 106; // 7 localparam SR_RX_FE = 114; // 5 localparam SR_RX_CTRL1 = 128; // 9 localparam SR_RX_DSP1 = 138; // 7 localparam SR_TIME64 = 192; // 6 localparam SR_SPI = 208; // 3 localparam SR_I2C = 216; // 1 localparam SR_GPIO = 224; // 5 #define REG_RB_TIME_NOW_HI TOREG(10) #define REG_RB_TIME_NOW_LO TOREG(11) #define REG_RB_TIME_PPS_HI TOREG(14) #define REG_RB_TIME_PPS_LO TOREG(15) #define REG_RB_SPI TOREG(0) #define REG_RB_COMPAT TOREG(1) #define REG_RB_GPIO TOREG(3) #define REG_RB_I2C TOREG(2) #define REG_RB_NUM_RX_DSP TOREG(6) //spi slave constants #define B100_SPI_SS_AD9862 (1 << 2) #define B100_SPI_SS_TX_DB (1 << 1) #define B100_SPI_SS_RX_DB (1 << 0) #endif /*INCLUDED_B100_REGS_HPP*/ uhd-3.5.5/host/lib/usrp/b100/clock_ctrl.cpp000066400000000000000000000500651224274632000203150ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "clock_ctrl.hpp" #include "ad9522_regs.hpp" #include #include #include #include #include #include #include "b100_regs.hpp" //spi slave constants #include #include #include #include #include //gcd #include #include using namespace uhd; /*********************************************************************** * Constants **********************************************************************/ static const bool ENABLE_THE_TEST_OUT = true; static const double REFERENCE_INPUT_RATE = 10e6; /*********************************************************************** * Helpers **********************************************************************/ template static void set_clock_divider( size_t divider, div_type &low, div_type &high, bypass_type &bypass ){ high = divider/2 - 1; low = divider - high - 2; bypass = (divider == 1)? 1 : 0; } /*********************************************************************** * Clock rate calculation stuff: * Using the internal VCO between 1400 and 1800 MHz **********************************************************************/ struct clock_settings_type{ size_t ref_clock_doubler, r_counter, a_counter, b_counter, prescaler, vco_divider, chan_divider; size_t get_n_counter(void) const{return prescaler * b_counter + a_counter;} double get_ref_rate(void) const{return REFERENCE_INPUT_RATE * ref_clock_doubler;} double get_vco_rate(void) const{return get_ref_rate()/r_counter * get_n_counter();} double get_chan_rate(void) const{return get_vco_rate()/vco_divider;} double get_out_rate(void) const{return get_chan_rate()/chan_divider;} std::string to_pp_string(void) const{ return str(boost::format( " r_counter: %d\n" " a_counter: %d\n" " b_counter: %d\n" " prescaler: %d\n" " vco_divider: %d\n" " chan_divider: %d\n" " vco_rate: %fMHz\n" " chan_rate: %fMHz\n" " out_rate: %fMHz\n" ) % r_counter % a_counter % b_counter % prescaler % vco_divider % chan_divider % (get_vco_rate()/1e6) % (get_chan_rate()/1e6) % (get_out_rate()/1e6) ); } }; //! gives the greatest divisor of num between 1 and max inclusive template static inline T greatest_divisor(T num, T max){ for (T i = max; i > 1; i--) if (num%i == 0) return i; return 1; } //! gives the least divisor of num between min and num exclusive template static inline T least_divisor(T num, T min){ for (T i = min; i < num; i++) if (num%i == 0) return i; return 1; } static clock_settings_type get_clock_settings(double rate){ clock_settings_type cs; cs.ref_clock_doubler = 2; //always doubling cs.prescaler = 8; //set to 8 when input is under 2400 MHz //basic formulas used below: //out_rate*X = ref_rate*Y //X = i*ref_rate/gcd //Y = i*out_rate/gcd //X = chan_div * vco_div * R //Y = P*B + A const boost::uint64_t out_rate = boost::uint64_t(rate); const boost::uint64_t ref_rate = boost::uint64_t(cs.get_ref_rate()); const size_t gcd = size_t(boost::math::gcd(ref_rate, out_rate)); for (size_t i = 1; i <= 100; i++){ const size_t X = i*ref_rate/gcd; const size_t Y = i*out_rate/gcd; //determine A and B (P is fixed) cs.b_counter = Y/cs.prescaler; cs.a_counter = Y - cs.b_counter*cs.prescaler; static const double vco_bound_pad = 100e6; for ( //calculate an r divider that fits into the bounds of the vco cs.r_counter = size_t(cs.get_n_counter()*cs.get_ref_rate()/(1800e6 - vco_bound_pad)); cs.r_counter <= size_t(cs.get_n_counter()*cs.get_ref_rate()/(1400e6 + vco_bound_pad)) and cs.r_counter > 0; cs.r_counter++ ){ //determine chan_div and vco_div //and fill in that order of preference cs.chan_divider = greatest_divisor(X/cs.r_counter, 32); cs.vco_divider = greatest_divisor(X/cs.chan_divider/cs.r_counter, 6); //avoid a vco divider of 1 (if possible) if (cs.vco_divider == 1){ cs.vco_divider = least_divisor(cs.chan_divider, 2); cs.chan_divider /= cs.vco_divider; } UHD_LOGV(always) << "gcd " << gcd << std::endl << "X " << X << std::endl << "Y " << Y << std::endl << cs.to_pp_string() << std::endl ; //filter limits on the counters if (cs.vco_divider == 1) continue; if (cs.r_counter >= (1<<14)) continue; if (cs.b_counter == 2) continue; if (cs.b_counter == 1 and cs.a_counter != 0) continue; if (cs.b_counter >= (1<<13)) continue; if (cs.a_counter >= (1<<6)) continue; if (cs.get_vco_rate() > 1800e6 - vco_bound_pad) continue; if (cs.get_vco_rate() < 1400e6 + vco_bound_pad) continue; if (cs.get_out_rate() != rate) continue; UHD_MSG(status) << "USRP-B100 clock control: " << i << std::endl << cs.to_pp_string() << std::endl; return cs; } } throw uhd::value_error(str(boost::format( "USRP-B100 clock control: could not calculate settings for clock rate %fMHz" ) % (rate/1e6))); } /*********************************************************************** * Clock Control Implementation **********************************************************************/ class b100_clock_ctrl_impl : public b100_clock_ctrl{ public: b100_clock_ctrl_impl(i2c_iface::sptr iface, double master_clock_rate){ _iface = iface; _chan_rate = 0.0; _out_rate = 0.0; //perform soft-reset _ad9522_regs.soft_reset = 1; this->send_reg(0x000); this->latch_regs(); _ad9522_regs.soft_reset = 0; //init the clock gen registers _ad9522_regs.sdo_active = ad9522_regs_t::SDO_ACTIVE_SDO_SDIO; _ad9522_regs.enb_stat_eeprom_at_stat_pin = 0; //use status pin _ad9522_regs.status_pin_control = 0x1; //n divider _ad9522_regs.ld_pin_control = 0x00; //dld _ad9522_regs.refmon_pin_control = 0x12; //show ref2 _ad9522_regs.lock_detect_counter = ad9522_regs_t::LOCK_DETECT_COUNTER_16CYC; this->use_internal_ref(); this->set_fpga_clock_rate(master_clock_rate); //initialize to something this->enable_fpga_clock(true); this->enable_test_clock(ENABLE_THE_TEST_OUT); this->enable_rx_dboard_clock(false); this->enable_tx_dboard_clock(false); } ~b100_clock_ctrl_impl(void){ UHD_SAFE_CALL( this->enable_test_clock(ENABLE_THE_TEST_OUT); this->enable_rx_dboard_clock(false); this->enable_tx_dboard_clock(false); //this->enable_fpga_clock(false); //FIXME ) } /*********************************************************************** * Clock rate control: * - set clock rate w/ internal VCO * - set clock rate w/ external VCXO **********************************************************************/ void set_clock_settings_with_internal_vco(double rate){ const clock_settings_type cs = get_clock_settings(rate); //set the rates to private variables so the implementation knows! _chan_rate = cs.get_chan_rate(); _out_rate = cs.get_out_rate(); _ad9522_regs.enable_clock_doubler = (cs.ref_clock_doubler == 2)? 1 : 0; _ad9522_regs.set_r_counter(cs.r_counter); _ad9522_regs.a_counter = cs.a_counter; _ad9522_regs.set_b_counter(cs.b_counter); UHD_ASSERT_THROW(cs.prescaler == 8); //assumes this below: _ad9522_regs.prescaler_p = ad9522_regs_t::PRESCALER_P_DIV8_9; _ad9522_regs.pll_power_down = ad9522_regs_t::PLL_POWER_DOWN_NORMAL; _ad9522_regs.cp_current = ad9522_regs_t::CP_CURRENT_1_2MA; _ad9522_regs.bypass_vco_divider = 0; switch(cs.vco_divider){ case 1: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV1; break; case 2: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV2; break; case 3: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV3; break; case 4: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV4; break; case 5: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV5; break; case 6: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV6; break; } _ad9522_regs.select_vco_or_clock = ad9522_regs_t::SELECT_VCO_OR_CLOCK_VCO; //setup fpga master clock _ad9522_regs.out0_format = ad9522_regs_t::OUT0_FORMAT_LVDS; set_clock_divider(cs.chan_divider, _ad9522_regs.divider0_low_cycles, _ad9522_regs.divider0_high_cycles, _ad9522_regs.divider0_bypass ); //setup codec clock _ad9522_regs.out3_format = ad9522_regs_t::OUT3_FORMAT_LVDS; set_clock_divider(cs.chan_divider, _ad9522_regs.divider1_low_cycles, _ad9522_regs.divider1_high_cycles, _ad9522_regs.divider1_bypass ); this->send_all_regs(); calibrate_now(); } void set_clock_settings_with_external_vcxo(double rate){ //set the rates to private variables so the implementation knows! _chan_rate = rate; _out_rate = rate; _ad9522_regs.enable_clock_doubler = 1; //doubler always on const double ref_rate = REFERENCE_INPUT_RATE*2; //bypass prescaler such that N = B long gcd = boost::math::gcd(long(ref_rate), long(rate)); _ad9522_regs.set_r_counter(int(ref_rate/gcd)); _ad9522_regs.a_counter = 0; _ad9522_regs.set_b_counter(int(rate/gcd)); _ad9522_regs.prescaler_p = ad9522_regs_t::PRESCALER_P_DIV1; //setup external vcxo _ad9522_regs.pll_power_down = ad9522_regs_t::PLL_POWER_DOWN_NORMAL; _ad9522_regs.cp_current = ad9522_regs_t::CP_CURRENT_1_2MA; _ad9522_regs.bypass_vco_divider = 1; _ad9522_regs.select_vco_or_clock = ad9522_regs_t::SELECT_VCO_OR_CLOCK_EXTERNAL; //setup fpga master clock _ad9522_regs.out0_format = ad9522_regs_t::OUT0_FORMAT_LVDS; _ad9522_regs.divider0_bypass = 1; //setup codec clock _ad9522_regs.out3_format = ad9522_regs_t::OUT3_FORMAT_LVDS; _ad9522_regs.divider1_bypass = 1; this->send_all_regs(); } void set_fpga_clock_rate(double rate){ if (_out_rate == rate) return; if (rate == 61.44e6) set_clock_settings_with_external_vcxo(rate); else set_clock_settings_with_internal_vco(rate); //clock rate changed! update dboard clocks and FPGA ticks per second set_rx_dboard_clock_rate(rate); set_tx_dboard_clock_rate(rate); } double get_fpga_clock_rate(void){ return this->_out_rate; } /*********************************************************************** * FPGA clock enable **********************************************************************/ void enable_fpga_clock(bool enb){ _ad9522_regs.out0_format = ad9522_regs_t::OUT0_FORMAT_LVDS; _ad9522_regs.out0_lvds_power_down = !enb; this->send_reg(0x0F0); this->latch_regs(); } /*********************************************************************** * Special test clock output **********************************************************************/ void enable_test_clock(bool enb){ //setup test clock (same divider as codec clock) _ad9522_regs.out4_format = ad9522_regs_t::OUT4_FORMAT_CMOS; _ad9522_regs.out4_cmos_configuration = (enb)? ad9522_regs_t::OUT4_CMOS_CONFIGURATION_A_ON : ad9522_regs_t::OUT4_CMOS_CONFIGURATION_OFF; this->send_reg(0x0F4); this->latch_regs(); } /*********************************************************************** * RX Dboard Clock Control (output 9, divider 3) **********************************************************************/ void enable_rx_dboard_clock(bool enb){ _ad9522_regs.out9_format = ad9522_regs_t::OUT9_FORMAT_LVDS; _ad9522_regs.out9_lvds_power_down = !enb; this->send_reg(0x0F9); this->latch_regs(); } std::vector get_rx_dboard_clock_rates(void){ std::vector rates; for(size_t div = 1; div <= 16+16; div++) rates.push_back(this->_chan_rate/div); return rates; } void set_rx_dboard_clock_rate(double rate){ assert_has(get_rx_dboard_clock_rates(), rate, "rx dboard clock rate"); _rx_clock_rate = rate; size_t divider = size_t(this->_chan_rate/rate); //set the divider registers set_clock_divider(divider, _ad9522_regs.divider3_low_cycles, _ad9522_regs.divider3_high_cycles, _ad9522_regs.divider3_bypass ); this->send_reg(0x199); this->send_reg(0x19a); this->soft_sync(); } double get_rx_clock_rate(void){ return _rx_clock_rate; } /*********************************************************************** * TX Dboard Clock Control (output 6, divider 2) **********************************************************************/ void enable_tx_dboard_clock(bool enb){ _ad9522_regs.out6_format = ad9522_regs_t::OUT6_FORMAT_LVDS; _ad9522_regs.out6_lvds_power_down = !enb; this->send_reg(0x0F6); this->latch_regs(); } std::vector get_tx_dboard_clock_rates(void){ return get_rx_dboard_clock_rates(); //same master clock, same dividers... } void set_tx_dboard_clock_rate(double rate){ assert_has(get_tx_dboard_clock_rates(), rate, "tx dboard clock rate"); _tx_clock_rate = rate; size_t divider = size_t(this->_chan_rate/rate); //set the divider registers set_clock_divider(divider, _ad9522_regs.divider2_low_cycles, _ad9522_regs.divider2_high_cycles, _ad9522_regs.divider2_bypass ); this->send_reg(0x196); this->send_reg(0x197); this->soft_sync(); } double get_tx_clock_rate(void){ return _tx_clock_rate; } /*********************************************************************** * Clock reference control **********************************************************************/ void use_internal_ref(void) { _ad9522_regs.enable_ref2 = 1; _ad9522_regs.enable_ref1 = 0; _ad9522_regs.select_ref = ad9522_regs_t::SELECT_REF_REF2; _ad9522_regs.enb_auto_ref_switchover = ad9522_regs_t::ENB_AUTO_REF_SWITCHOVER_MANUAL; this->send_reg(0x01C); this->latch_regs(); } void use_external_ref(void) { _ad9522_regs.enable_ref2 = 0; _ad9522_regs.enable_ref1 = 1; _ad9522_regs.select_ref = ad9522_regs_t::SELECT_REF_REF1; _ad9522_regs.enb_auto_ref_switchover = ad9522_regs_t::ENB_AUTO_REF_SWITCHOVER_MANUAL; this->send_reg(0x01C); this->latch_regs(); } void use_auto_ref(void) { _ad9522_regs.enable_ref2 = 1; _ad9522_regs.enable_ref1 = 1; _ad9522_regs.select_ref = ad9522_regs_t::SELECT_REF_REF1; _ad9522_regs.enb_auto_ref_switchover = ad9522_regs_t::ENB_AUTO_REF_SWITCHOVER_AUTO; this->send_reg(0x01C); this->latch_regs(); } bool get_locked(void){ static const boost::uint8_t addr = 0x01F; boost::uint32_t reg = this->read_reg(addr); _ad9522_regs.set_reg(addr, reg); return _ad9522_regs.digital_lock_detect != 0; } private: i2c_iface::sptr _iface; ad9522_regs_t _ad9522_regs; double _out_rate; //rate at the fpga and codec double _chan_rate; //rate before final dividers double _rx_clock_rate, _tx_clock_rate; void latch_regs(void){ _ad9522_regs.io_update = 1; this->send_reg(0x232); } void send_reg(boost::uint16_t addr){ boost::uint32_t reg = _ad9522_regs.get_write_reg(addr); UHD_LOGV(often) << "clock control write reg: " << std::hex << reg << std::endl; byte_vector_t buf; buf.push_back(boost::uint8_t(reg >> 16)); buf.push_back(boost::uint8_t(reg >> 8)); buf.push_back(boost::uint8_t(reg & 0xff)); _iface->write_i2c(0x5C, buf); } boost::uint8_t read_reg(boost::uint16_t addr){ byte_vector_t buf; buf.push_back(boost::uint8_t(addr >> 8)); buf.push_back(boost::uint8_t(addr & 0xff)); _iface->write_i2c(0x5C, buf); buf = _iface->read_i2c(0x5C, 1); return boost::uint32_t(buf[0] & 0xFF); } void calibrate_now(void){ //vco calibration routine: _ad9522_regs.vco_calibration_now = 0; this->send_reg(0x18); this->latch_regs(); _ad9522_regs.vco_calibration_now = 1; this->send_reg(0x18); this->latch_regs(); //wait for calibration done: static const boost::uint8_t addr = 0x01F; for (size_t ms10 = 0; ms10 < 100; ms10++){ boost::this_thread::sleep(boost::posix_time::milliseconds(10)); boost::uint32_t reg = read_reg(addr); _ad9522_regs.set_reg(addr, reg); if (_ad9522_regs.vco_calibration_finished) goto wait_for_ld; } UHD_MSG(error) << "USRP-B100 clock control: VCO calibration timeout" << std::endl; wait_for_ld: //wait for digital lock detect: for (size_t ms10 = 0; ms10 < 100; ms10++){ boost::this_thread::sleep(boost::posix_time::milliseconds(10)); boost::uint32_t reg = read_reg(addr); _ad9522_regs.set_reg(addr, reg); if (_ad9522_regs.digital_lock_detect) return; } UHD_MSG(error) << "USRP-B100 clock control: lock detection timeout" << std::endl; } void soft_sync(void){ _ad9522_regs.soft_sync = 1; this->send_reg(0x230); this->latch_regs(); _ad9522_regs.soft_sync = 0; this->send_reg(0x230); this->latch_regs(); } void send_all_regs(void){ //setup a list of register ranges to write typedef std::pair range_t; static const std::vector ranges = boost::assign::list_of (range_t(0x000, 0x000)) (range_t(0x010, 0x01F)) (range_t(0x0F0, 0x0FD)) (range_t(0x190, 0x19B)) (range_t(0x1E0, 0x1E1)) (range_t(0x230, 0x230)) ; //write initial register values and latch/update BOOST_FOREACH(const range_t &range, ranges){ for(boost::uint16_t addr = range.first; addr <= range.second; addr++){ this->send_reg(addr); } } this->latch_regs(); } }; /*********************************************************************** * Clock Control Make **********************************************************************/ b100_clock_ctrl::sptr b100_clock_ctrl::make(i2c_iface::sptr iface, double master_clock_rate){ return sptr(new b100_clock_ctrl_impl(iface, master_clock_rate)); } uhd-3.5.5/host/lib/usrp/b100/clock_ctrl.hpp000066400000000000000000000072071224274632000203220ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_B100_CLOCK_CTRL_HPP #define INCLUDED_B100_CLOCK_CTRL_HPP #include #include #include #include /*! * The usrp-e clock control: * - Setup system clocks. * - Disable/enable clock lines. */ class b100_clock_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Make a new clock control object. * \param iface the controller iface object * \param master_clock_rate the master FPGA/sample clock rate * \return the clock control object */ static sptr make(uhd::i2c_iface::sptr iface, double master_clock_rate); /*! * Set the rate of the fpga clock line. * Throws if rate is not valid. * \param rate the new rate in Hz */ virtual void set_fpga_clock_rate(double rate) = 0; /*! * Get the rate of the fpga clock line. * \return the fpga clock rate in Hz */ virtual double get_fpga_clock_rate(void) = 0; /*! * Get the possible rates of the rx dboard clock. * \return a vector of clock rates in Hz */ virtual std::vector get_rx_dboard_clock_rates(void) = 0; /*! * Get the possible rates of the tx dboard clock. * \return a vector of clock rates in Hz */ virtual std::vector get_tx_dboard_clock_rates(void) = 0; /*! * Set the rx dboard clock rate to a possible rate. * \param rate the new clock rate in Hz * \throw exception when rate cannot be achieved */ virtual void set_rx_dboard_clock_rate(double rate) = 0; /*! * Set the tx dboard clock rate to a possible rate. * \param rate the new clock rate in Hz * \throw exception when rate cannot be achieved */ virtual void set_tx_dboard_clock_rate(double rate) = 0; /*! * Get the current rx dboard clock rate. * \return the clock rate in Hz */ virtual double get_rx_clock_rate(void) = 0; /*! * Get the current tx dboard clock rate. * \return the clock rate in Hz */ virtual double get_tx_clock_rate(void) = 0; /*! * Enable/disable the FPGA clock. * \param enb true to enable */ virtual void enable_fpga_clock(bool enb) = 0; /*! * Enable/disable the rx dboard clock. * \param enb true to enable */ virtual void enable_rx_dboard_clock(bool enb) = 0; /*! * Enable/disable the tx dboard clock. * \param enb true to enable */ virtual void enable_tx_dboard_clock(bool enb) = 0; /*! * Use the internal TCXO reference */ virtual void use_internal_ref(void) = 0; /*! * Use the external SMA reference */ virtual void use_external_ref(void) = 0; /*! * Use external if available, internal otherwise */ virtual void use_auto_ref(void) = 0; //! Is the reference locked? virtual bool get_locked(void) = 0; }; #endif /* INCLUDED_B100_CLOCK_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/b100/codec_ctrl.cpp000066400000000000000000000254241224274632000203000ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "codec_ctrl.hpp" #include "ad9862_regs.hpp" #include #include #include #include #include #include #include #include #include "b100_regs.hpp" //spi slave constants #include using namespace uhd; const gain_range_t b100_codec_ctrl::tx_pga_gain_range(-20, 0, double(0.1)); const gain_range_t b100_codec_ctrl::rx_pga_gain_range(0, 20, 1); /*********************************************************************** * Codec Control Implementation **********************************************************************/ class b100_codec_ctrl_impl : public b100_codec_ctrl{ public: //structors b100_codec_ctrl_impl(spi_iface::sptr iface); ~b100_codec_ctrl_impl(void); //aux adc and dac control double read_aux_adc(aux_adc_t which); void write_aux_dac(aux_dac_t which, double volts); //pga gain control void set_tx_pga_gain(double); double get_tx_pga_gain(void); void set_rx_pga_gain(double, char); double get_rx_pga_gain(char); private: spi_iface::sptr _iface; ad9862_regs_t _ad9862_regs; void send_reg(boost::uint8_t addr); void recv_reg(boost::uint8_t addr); }; /*********************************************************************** * Codec Control Structors **********************************************************************/ b100_codec_ctrl_impl::b100_codec_ctrl_impl(spi_iface::sptr iface){ _iface = iface; //soft reset _ad9862_regs.soft_reset = 1; this->send_reg(0); //initialize the codec register settings _ad9862_regs.sdio_bidir = ad9862_regs_t::SDIO_BIDIR_SDIO_SDO; _ad9862_regs.lsb_first = ad9862_regs_t::LSB_FIRST_MSB; _ad9862_regs.soft_reset = 0; //setup rx side of codec _ad9862_regs.byp_buffer_a = 1; _ad9862_regs.byp_buffer_b = 1; _ad9862_regs.buffer_a_pd = 1; _ad9862_regs.buffer_b_pd = 1; _ad9862_regs.mux_out = ad9862_regs_t::MUX_OUT_RX_MUX_MODE; //B100 uses interleaved RX->FPGA _ad9862_regs.rx_pga_a = 0;//0x1f; //TODO bring under api control _ad9862_regs.rx_pga_b = 0;//0x1f; //TODO bring under api control _ad9862_regs.rx_twos_comp = 1; _ad9862_regs.rx_hilbert = ad9862_regs_t::RX_HILBERT_DIS; //setup tx side of codec _ad9862_regs.two_data_paths = ad9862_regs_t::TWO_DATA_PATHS_BOTH; _ad9862_regs.interleaved = ad9862_regs_t::INTERLEAVED_INTERLEAVED; _ad9862_regs.tx_retime = ad9862_regs_t::TX_RETIME_CLKOUT2; _ad9862_regs.tx_pga_gain = 199; //TODO bring under api control _ad9862_regs.tx_hilbert = ad9862_regs_t::TX_HILBERT_DIS; _ad9862_regs.interp = ad9862_regs_t::INTERP_2; _ad9862_regs.tx_twos_comp = 1; _ad9862_regs.fine_mode = ad9862_regs_t::FINE_MODE_BYPASS; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_BYPASS; _ad9862_regs.dac_a_coarse_gain = 0x3; _ad9862_regs.dac_b_coarse_gain = 0x3; _ad9862_regs.edges = ad9862_regs_t::EDGES_NORMAL; //setup the dll _ad9862_regs.input_clk_ctrl = ad9862_regs_t::INPUT_CLK_CTRL_EXTERNAL; _ad9862_regs.dll_mult = ad9862_regs_t::DLL_MULT_2; _ad9862_regs.dll_mode = ad9862_regs_t::DLL_MODE_FAST; //write the register settings to the codec for (boost::uint8_t addr = 0; addr <= 25; addr++){ this->send_reg(addr); } //always start conversions for aux ADC _ad9862_regs.start_a = 1; _ad9862_regs.start_b = 1; //aux adc clock _ad9862_regs.clk_4 = ad9862_regs_t::CLK_4_1_4; this->send_reg(34); } b100_codec_ctrl_impl::~b100_codec_ctrl_impl(void){ UHD_SAFE_CALL( //set aux dacs to zero this->write_aux_dac(AUX_DAC_A, 0); this->write_aux_dac(AUX_DAC_B, 0); this->write_aux_dac(AUX_DAC_C, 0); this->write_aux_dac(AUX_DAC_D, 0); //power down _ad9862_regs.all_rx_pd = 1; this->send_reg(1); _ad9862_regs.tx_digital_pd = 1; _ad9862_regs.tx_analog_pd = ad9862_regs_t::TX_ANALOG_PD_BOTH; this->send_reg(8); ) } /*********************************************************************** * Codec Control Gain Control Methods **********************************************************************/ static const int mtpgw = 255; //maximum tx pga gain word void b100_codec_ctrl_impl::set_tx_pga_gain(double gain){ int gain_word = int(mtpgw*(gain - tx_pga_gain_range.start())/(tx_pga_gain_range.stop() - tx_pga_gain_range.start())); _ad9862_regs.tx_pga_gain = uhd::clip(gain_word, 0, mtpgw); this->send_reg(16); } double b100_codec_ctrl_impl::get_tx_pga_gain(void){ return (_ad9862_regs.tx_pga_gain*(tx_pga_gain_range.stop() - tx_pga_gain_range.start())/mtpgw) + tx_pga_gain_range.start(); } static const int mrpgw = 0x14; //maximum rx pga gain word void b100_codec_ctrl_impl::set_rx_pga_gain(double gain, char which){ int gain_word = int(mrpgw*(gain - rx_pga_gain_range.start())/(rx_pga_gain_range.stop() - rx_pga_gain_range.start())); gain_word = uhd::clip(gain_word, 0, mrpgw); switch(which){ case 'A': _ad9862_regs.rx_pga_a = gain_word; this->send_reg(2); return; case 'B': _ad9862_regs.rx_pga_b = gain_word; this->send_reg(3); return; default: UHD_THROW_INVALID_CODE_PATH(); } } double b100_codec_ctrl_impl::get_rx_pga_gain(char which){ int gain_word; switch(which){ case 'A': gain_word = _ad9862_regs.rx_pga_a; break; case 'B': gain_word = _ad9862_regs.rx_pga_b; break; default: UHD_THROW_INVALID_CODE_PATH(); } return (gain_word*(rx_pga_gain_range.stop() - rx_pga_gain_range.start())/mrpgw) + rx_pga_gain_range.start(); } /*********************************************************************** * Codec Control AUX ADC Methods **********************************************************************/ static double aux_adc_to_volts(boost::uint8_t high, boost::uint8_t low){ return double((boost::uint16_t(high) << 2) | low)*3.3/0x3ff; } double b100_codec_ctrl_impl::read_aux_adc(aux_adc_t which){ switch(which){ case AUX_ADC_A1: _ad9862_regs.select_a = ad9862_regs_t::SELECT_A_AUX_ADC1; this->send_reg(34); //start conversion and select mux this->recv_reg(28); //read the value (2 bytes, 2 reads) this->recv_reg(29); return aux_adc_to_volts(_ad9862_regs.aux_adc_a1_9_2, _ad9862_regs.aux_adc_a1_1_0); case AUX_ADC_A2: _ad9862_regs.select_a = ad9862_regs_t::SELECT_A_AUX_ADC2; this->send_reg(34); //start conversion and select mux this->recv_reg(26); //read the value (2 bytes, 2 reads) this->recv_reg(27); return aux_adc_to_volts(_ad9862_regs.aux_adc_a2_9_2, _ad9862_regs.aux_adc_a2_1_0); case AUX_ADC_B1: _ad9862_regs.select_b = ad9862_regs_t::SELECT_B_AUX_ADC1; this->send_reg(34); //start conversion and select mux this->recv_reg(32); //read the value (2 bytes, 2 reads) this->recv_reg(33); return aux_adc_to_volts(_ad9862_regs.aux_adc_b1_9_2, _ad9862_regs.aux_adc_b1_1_0); case AUX_ADC_B2: _ad9862_regs.select_b = ad9862_regs_t::SELECT_B_AUX_ADC2; this->send_reg(34); //start conversion and select mux this->recv_reg(30); //read the value (2 bytes, 2 reads) this->recv_reg(31); return aux_adc_to_volts(_ad9862_regs.aux_adc_b2_9_2, _ad9862_regs.aux_adc_b2_1_0); } UHD_THROW_INVALID_CODE_PATH(); } /*********************************************************************** * Codec Control AUX DAC Methods **********************************************************************/ void b100_codec_ctrl_impl::write_aux_dac(aux_dac_t which, double volts){ //special case for aux dac d (aka sigma delta word) if (which == AUX_DAC_D){ boost::uint16_t dac_word = uhd::clip(boost::math::iround(volts*0xfff/3.3), 0, 0xfff); _ad9862_regs.sig_delt_11_4 = boost::uint8_t(dac_word >> 4); _ad9862_regs.sig_delt_3_0 = boost::uint8_t(dac_word & 0xf); this->send_reg(42); this->send_reg(43); return; } //calculate the dac word for aux dac a, b, c boost::uint8_t dac_word = uhd::clip(boost::math::iround(volts*0xff/3.3), 0, 0xff); //setup a lookup table for the aux dac params (reg ref, reg addr) typedef boost::tuple dac_params_t; uhd::dict aux_dac_to_params = boost::assign::map_list_of (AUX_DAC_A, dac_params_t(&_ad9862_regs.aux_dac_a, 36)) (AUX_DAC_B, dac_params_t(&_ad9862_regs.aux_dac_b, 37)) (AUX_DAC_C, dac_params_t(&_ad9862_regs.aux_dac_c, 38)) ; //set the aux dac register UHD_ASSERT_THROW(aux_dac_to_params.has_key(which)); boost::uint8_t *reg_ref, reg_addr; boost::tie(reg_ref, reg_addr) = aux_dac_to_params[which]; *reg_ref = dac_word; this->send_reg(reg_addr); } /*********************************************************************** * Codec Control SPI Methods **********************************************************************/ void b100_codec_ctrl_impl::send_reg(boost::uint8_t addr){ boost::uint32_t reg = _ad9862_regs.get_write_reg(addr); UHD_LOGV(rarely) << "codec control write reg: " << std::hex << reg << std::endl; _iface->transact_spi( B100_SPI_SS_AD9862, spi_config_t::EDGE_RISE, reg, 16, false /*no rb*/ ); } void b100_codec_ctrl_impl::recv_reg(boost::uint8_t addr){ boost::uint32_t reg = _ad9862_regs.get_read_reg(addr); UHD_LOGV(rarely) << "codec control read reg: " << std::hex << reg << std::endl; boost::uint32_t ret = _iface->transact_spi( B100_SPI_SS_AD9862, spi_config_t::EDGE_RISE, reg, 16, true /*rb*/ ); UHD_LOGV(rarely) << "codec control read ret: " << std::hex << boost::uint16_t(ret & 0xFF) << std::endl; _ad9862_regs.set_reg(addr, boost::uint8_t(ret&0xff)); } /*********************************************************************** * Codec Control Make **********************************************************************/ b100_codec_ctrl::sptr b100_codec_ctrl::make(spi_iface::sptr iface){ return sptr(new b100_codec_ctrl_impl(iface)); } uhd-3.5.5/host/lib/usrp/b100/codec_ctrl.hpp000066400000000000000000000051431224274632000203010ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_B100_CODEC_CTRL_HPP #define INCLUDED_B100_CODEC_CTRL_HPP #include #include #include #include /*! * The usrp-e codec control: * - Init/power down codec. * - Read aux adc, write aux dac. */ class b100_codec_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static const uhd::gain_range_t tx_pga_gain_range; static const uhd::gain_range_t rx_pga_gain_range; /*! * Make a new codec control object. * \param iface the usrp_e iface object * \return the codec control object */ static sptr make(uhd::spi_iface::sptr iface); //! aux adc identifier constants enum aux_adc_t{ AUX_ADC_A2 = 0xA2, AUX_ADC_A1 = 0xA1, AUX_ADC_B2 = 0xB2, AUX_ADC_B1 = 0xB1 }; /*! * Read an auxiliary adc: * The internals remember which aux adc was read last. * Therefore, the aux adc switch is only changed as needed. * \param which which of the 4 adcs * \return a value in volts */ virtual double read_aux_adc(aux_adc_t which) = 0; //! aux dac identifier constants enum aux_dac_t{ AUX_DAC_A = 0xA, AUX_DAC_B = 0xB, AUX_DAC_C = 0xC, AUX_DAC_D = 0xD //really the sigma delta output }; /*! * Write an auxiliary dac. * \param which which of the 4 dacs * \param volts the level in in volts */ virtual void write_aux_dac(aux_dac_t which, double volts) = 0; //! Set the TX PGA gain virtual void set_tx_pga_gain(double gain) = 0; //! Get the TX PGA gain virtual double get_tx_pga_gain(void) = 0; //! Set the RX PGA gain ('A' or 'B') virtual void set_rx_pga_gain(double gain, char which) = 0; //! Get the RX PGA gain ('A' or 'B') virtual double get_rx_pga_gain(char which) = 0; }; #endif /* INCLUDED_B100_CODEC_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/b100/dboard_iface.cpp000066400000000000000000000202601224274632000205520ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "gpio_core_200.hpp" #include #include "b100_regs.hpp" #include "clock_ctrl.hpp" #include "codec_ctrl.hpp" #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; class b100_dboard_iface : public dboard_iface{ public: b100_dboard_iface( wb_iface::sptr wb_iface, i2c_iface::sptr i2c_iface, spi_iface::sptr spi_iface, b100_clock_ctrl::sptr clock, b100_codec_ctrl::sptr codec ){ _wb_iface = wb_iface; _i2c_iface = i2c_iface; _spi_iface = spi_iface; _clock = clock; _codec = codec; _gpio = gpio_core_200::make(_wb_iface, TOREG(SR_GPIO), REG_RB_GPIO); //init the clock rate shadows this->set_clock_rate(UNIT_RX, _clock->get_fpga_clock_rate()); this->set_clock_rate(UNIT_TX, _clock->get_fpga_clock_rate()); } ~b100_dboard_iface(void){ /* NOP */ } special_props_t get_special_props(void){ special_props_t props; props.soft_clock_divider = false; props.mangle_i2c_addrs = false; return props; } void write_aux_dac(unit_t, aux_dac_t, double); double read_aux_adc(unit_t, aux_adc_t); void _set_pin_ctrl(unit_t, boost::uint16_t); void _set_atr_reg(unit_t, atr_reg_t, boost::uint16_t); void _set_gpio_ddr(unit_t, boost::uint16_t); void _set_gpio_out(unit_t, boost::uint16_t); void set_gpio_debug(unit_t, int); boost::uint16_t read_gpio(unit_t); void write_i2c(boost::uint8_t, const byte_vector_t &); byte_vector_t read_i2c(boost::uint8_t, size_t); void write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); boost::uint32_t read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); void set_clock_rate(unit_t, double); std::vector get_clock_rates(unit_t); double get_clock_rate(unit_t); void set_clock_enabled(unit_t, bool); double get_codec_rate(unit_t); private: wb_iface::sptr _wb_iface; i2c_iface::sptr _i2c_iface; spi_iface::sptr _spi_iface; b100_clock_ctrl::sptr _clock; b100_codec_ctrl::sptr _codec; gpio_core_200::sptr _gpio; }; /*********************************************************************** * Make Function **********************************************************************/ dboard_iface::sptr make_b100_dboard_iface( wb_iface::sptr wb_iface, i2c_iface::sptr i2c_iface, spi_iface::sptr spi_iface, b100_clock_ctrl::sptr clock, b100_codec_ctrl::sptr codec ){ return dboard_iface::sptr(new b100_dboard_iface(wb_iface, i2c_iface, spi_iface, clock, codec)); } /*********************************************************************** * Clock Rates **********************************************************************/ void b100_dboard_iface::set_clock_rate(unit_t unit, double rate){ switch(unit){ case UNIT_RX: return _clock->set_rx_dboard_clock_rate(rate); case UNIT_TX: return _clock->set_tx_dboard_clock_rate(rate); } } std::vector b100_dboard_iface::get_clock_rates(unit_t unit){ switch(unit){ case UNIT_RX: return _clock->get_rx_dboard_clock_rates(); case UNIT_TX: return _clock->get_tx_dboard_clock_rates(); default: UHD_THROW_INVALID_CODE_PATH(); } } double b100_dboard_iface::get_clock_rate(unit_t unit){ switch(unit){ case UNIT_RX: return _clock->get_rx_clock_rate(); case UNIT_TX: return _clock->get_tx_clock_rate(); } UHD_THROW_INVALID_CODE_PATH(); } void b100_dboard_iface::set_clock_enabled(unit_t unit, bool enb){ switch(unit){ case UNIT_RX: return _clock->enable_rx_dboard_clock(enb); case UNIT_TX: return _clock->enable_tx_dboard_clock(enb); } } double b100_dboard_iface::get_codec_rate(unit_t){ return _clock->get_fpga_clock_rate(); } /*********************************************************************** * GPIO **********************************************************************/ void b100_dboard_iface::_set_pin_ctrl(unit_t unit, boost::uint16_t value){ return _gpio->set_pin_ctrl(unit, value); } void b100_dboard_iface::_set_gpio_ddr(unit_t unit, boost::uint16_t value){ return _gpio->set_gpio_ddr(unit, value); } void b100_dboard_iface::_set_gpio_out(unit_t unit, boost::uint16_t value){ return _gpio->set_gpio_out(unit, value); } boost::uint16_t b100_dboard_iface::read_gpio(unit_t unit){ return _gpio->read_gpio(unit); } void b100_dboard_iface::_set_atr_reg(unit_t unit, atr_reg_t atr, boost::uint16_t value){ return _gpio->set_atr_reg(unit, atr, value); } void b100_dboard_iface::set_gpio_debug(unit_t, int){ throw uhd::not_implemented_error("no set_gpio_debug implemented"); } /*********************************************************************** * SPI **********************************************************************/ /*! * Static function to convert a unit type to a spi slave device number. * \param unit the dboard interface unit type enum * \return the slave device number */ static boost::uint32_t unit_to_otw_spi_dev(dboard_iface::unit_t unit){ switch(unit){ case dboard_iface::UNIT_TX: return B100_SPI_SS_TX_DB; case dboard_iface::UNIT_RX: return B100_SPI_SS_RX_DB; } UHD_THROW_INVALID_CODE_PATH(); } void b100_dboard_iface::write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ _spi_iface->write_spi(unit_to_otw_spi_dev(unit), config, data, num_bits); } boost::uint32_t b100_dboard_iface::read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ return _spi_iface->read_spi(unit_to_otw_spi_dev(unit), config, data, num_bits); } /*********************************************************************** * I2C **********************************************************************/ void b100_dboard_iface::write_i2c(boost::uint8_t addr, const byte_vector_t &bytes){ return _i2c_iface->write_i2c(addr, bytes); } byte_vector_t b100_dboard_iface::read_i2c(boost::uint8_t addr, size_t num_bytes){ return _i2c_iface->read_i2c(addr, num_bytes); } /*********************************************************************** * Aux DAX/ADC **********************************************************************/ void b100_dboard_iface::write_aux_dac(dboard_iface::unit_t, aux_dac_t which, double value){ //same aux dacs for each unit static const uhd::dict which_to_aux_dac = map_list_of (AUX_DAC_A, b100_codec_ctrl::AUX_DAC_A) (AUX_DAC_B, b100_codec_ctrl::AUX_DAC_B) (AUX_DAC_C, b100_codec_ctrl::AUX_DAC_C) (AUX_DAC_D, b100_codec_ctrl::AUX_DAC_D) ; _codec->write_aux_dac(which_to_aux_dac[which], value); } double b100_dboard_iface::read_aux_adc(dboard_iface::unit_t unit, aux_adc_t which){ static const uhd::dict< unit_t, uhd::dict > unit_to_which_to_aux_adc = map_list_of (UNIT_RX, map_list_of (AUX_ADC_A, b100_codec_ctrl::AUX_ADC_A1) (AUX_ADC_B, b100_codec_ctrl::AUX_ADC_B1) ) (UNIT_TX, map_list_of (AUX_ADC_A, b100_codec_ctrl::AUX_ADC_A2) (AUX_ADC_B, b100_codec_ctrl::AUX_ADC_B2) ) ; return _codec->read_aux_adc(unit_to_which_to_aux_adc[unit][which]); } uhd-3.5.5/host/lib/usrp/b100/io_impl.cpp000066400000000000000000000215561224274632000176310ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "validate_subdev_spec.hpp" #include "../../transport/super_recv_packet_handler.hpp" #include "../../transport/super_send_packet_handler.hpp" #include "b100_impl.hpp" #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; void b100_impl::update_rates(void){ const fs_path mb_path = "/mboards/0"; _tree->access(mb_path / "tick_rate").update(); //and now that the tick rate is set, init the host rates to something BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){ _tree->access(mb_path / "rx_dsps" / name / "rate" / "value").update(); } BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "tx_dsps")){ _tree->access(mb_path / "tx_dsps" / name / "rate" / "value").update(); } } void b100_impl::update_tick_rate(const double rate){ //update the tick rate on all existing streamers -> thread safe for (size_t i = 0; i < _rx_streamers.size(); i++){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_rx_streamers[i].lock()); if (my_streamer.get() == NULL) continue; my_streamer->set_tick_rate(rate); } for (size_t i = 0; i < _tx_streamers.size(); i++){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_tx_streamers[i].lock()); if (my_streamer.get() == NULL) continue; my_streamer->set_tick_rate(rate); } } void b100_impl::update_rx_samp_rate(const size_t dspno, const double rate){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_rx_streamers[dspno].lock()); if (my_streamer.get() == NULL) return; my_streamer->set_samp_rate(rate); const double adj = _rx_dsps[dspno]->get_scaling_adjustment(); my_streamer->set_scale_factor(adj); } void b100_impl::update_tx_samp_rate(const size_t dspno, const double rate){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_tx_streamers[dspno].lock()); if (my_streamer.get() == NULL) return; my_streamer->set_samp_rate(rate); const double adj = _tx_dsp->get_scaling_adjustment(); my_streamer->set_scale_factor(adj); } void b100_impl::update_rx_subdev_spec(const uhd::usrp::subdev_spec_t &spec){ fs_path root = "/mboards/0/dboards"; //sanity checking validate_subdev_spec(_tree, spec, "rx"); //setup mux for this spec bool fe_swapped = false; for (size_t i = 0; i < spec.size(); i++){ const std::string conn = _tree->access(root / spec[i].db_name / "rx_frontends" / spec[i].sd_name / "connection").get(); if (i == 0 and (conn == "QI" or conn == "Q")) fe_swapped = true; _rx_dsps[i]->set_mux(conn, fe_swapped); } _rx_fe->set_mux(fe_swapped); } void b100_impl::update_tx_subdev_spec(const uhd::usrp::subdev_spec_t &spec){ fs_path root = "/mboards/0/dboards"; //sanity checking validate_subdev_spec(_tree, spec, "tx"); //set the mux for this spec const std::string conn = _tree->access(root / spec[0].db_name / "tx_frontends" / spec[0].sd_name / "connection").get(); _tx_fe->set_mux(conn); } /*********************************************************************** * Async Data **********************************************************************/ bool b100_impl::recv_async_msg( async_metadata_t &async_metadata, double timeout ){ return _fifo_ctrl->pop_async_msg(async_metadata, timeout); } /*********************************************************************** * Receive streamer **********************************************************************/ rx_streamer::sptr b100_impl::get_rx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels = args.channels.empty()? std::vector(1, 0) : args.channels; //calculate packet size static const size_t hdr_size = 0 + vrt::max_if_hdr_words32*sizeof(boost::uint32_t) + sizeof(vrt::if_packet_info_t().tlr) //forced to have trailer - sizeof(vrt::if_packet_info_t().cid) //no class id ever used - sizeof(vrt::if_packet_info_t().tsi) //no int time ever used ; const size_t bpp = _data_transport->get_recv_frame_size() - hdr_size; const size_t bpi = convert::get_bytes_per_item(args.otw_format); const size_t spp = unsigned(args.args.cast("spp", bpp/bpi)); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); my_streamer->set_vrt_unpacker(&vrt::if_hdr_unpack_le); //set the converter uhd::convert::id_type id; id.input_format = args.otw_format + "_item32_le"; id.num_inputs = 1; id.output_format = args.cpu_format; id.num_outputs = 1; my_streamer->set_converter(id); //bind callbacks for the handler for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++){ const size_t dsp = args.channels[chan_i]; _rx_dsps[dsp]->set_nsamps_per_packet(spp); //seems to be a good place to set this _rx_dsps[dsp]->setup(args); my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( &recv_packet_demuxer::get_recv_buff, _recv_demuxer, dsp, _1 ), true /*flush*/); my_streamer->set_overflow_handler(chan_i, boost::bind( &rx_dsp_core_200::handle_overflow, _rx_dsps[dsp] )); _rx_streamers[dsp] = my_streamer; //store weak pointer } //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } /*********************************************************************** * Transmit streamer **********************************************************************/ tx_streamer::sptr b100_impl::get_tx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels = args.channels.empty()? std::vector(1, 0) : args.channels; //calculate packet size static const size_t hdr_size = 0 + vrt::max_if_hdr_words32*sizeof(boost::uint32_t) + sizeof(vrt::if_packet_info_t().tlr) //forced to have trailer - sizeof(vrt::if_packet_info_t().sid) //no stream id ever used - sizeof(vrt::if_packet_info_t().cid) //no class id ever used - sizeof(vrt::if_packet_info_t().tsi) //no int time ever used ; static const size_t bpp = _data_transport->get_send_frame_size() - hdr_size; const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); my_streamer->set_vrt_packer(&vrt::if_hdr_pack_le); //set the converter uhd::convert::id_type id; id.input_format = args.cpu_format; id.num_inputs = 1; id.output_format = args.otw_format + "_item32_le"; id.num_outputs = 1; my_streamer->set_converter(id); //bind callbacks for the handler for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++){ const size_t dsp = args.channels[chan_i]; UHD_ASSERT_THROW(dsp == 0); //always 0 _tx_dsp->setup(args); my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( &zero_copy_if::get_send_buff, _data_transport, _1 )); _tx_streamers[dsp] = my_streamer; //store weak pointer } //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } uhd-3.5.5/host/lib/usrp/common/000077500000000000000000000000001224274632000163125ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/common/CMakeLists.txt000066400000000000000000000025231224274632000210540ustar00rootroot00000000000000# # Copyright 2011-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## IF(ENABLE_USB) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/../firmware/fx2/common) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/fx2_ctrl.cpp ) ENDIF(ENABLE_USB) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/apply_corrections.cpp ${CMAKE_CURRENT_SOURCE_DIR}/validate_subdev_spec.cpp ${CMAKE_CURRENT_SOURCE_DIR}/recv_packet_demuxer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/fifo_ctrl_excelsior.cpp ) uhd-3.5.5/host/lib/usrp/common/apply_corrections.cpp000066400000000000000000000151031224274632000225550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "apply_corrections.hpp" #include #include #include #include #include #include #include #include #include #include #include namespace fs = boost::filesystem; boost::mutex corrections_mutex; /*********************************************************************** * Helper routines **********************************************************************/ static double linear_interp(double x, double x0, double y0, double x1, double y1){ return y0 + (x - x0)*(y1 - y0)/(x1 - x0); } /*********************************************************************** * FE apply corrections implementation **********************************************************************/ struct fe_cal_t{ double lo_freq; double iq_corr_real; double iq_corr_imag; }; static bool fe_cal_comp(fe_cal_t a, fe_cal_t b){ return (a.lo_freq < b.lo_freq); } static uhd::dict > fe_cal_cache; static bool is_same_freq(const double f1, const double f2) { const double epsilon = 0.1; return ((f1 - epsilon) < f2 and (f1 + epsilon) > f2); } static std::complex get_fe_correction( const std::string &key, const double lo_freq ){ const std::vector &datas = fe_cal_cache[key]; if (datas.empty()) throw uhd::runtime_error("empty calibration table " + key); //search for lo freq size_t lo_index = 0; size_t hi_index = datas.size()-1; for (size_t i = 0; i < datas.size(); i++){ if (is_same_freq(datas[i].lo_freq, lo_freq)) { hi_index = i; lo_index = i; break; } if (datas[i].lo_freq > lo_freq){ hi_index = i; break; } lo_index = i; } if (lo_index == 0) return std::complex(datas[lo_index].iq_corr_real, datas[lo_index].iq_corr_imag); if (hi_index == lo_index) return std::complex(datas[hi_index].iq_corr_real, datas[hi_index].iq_corr_imag); //interpolation time return std::complex( linear_interp(lo_freq, datas[lo_index].lo_freq, datas[lo_index].iq_corr_real, datas[hi_index].lo_freq, datas[hi_index].iq_corr_real), linear_interp(lo_freq, datas[lo_index].lo_freq, datas[lo_index].iq_corr_imag, datas[hi_index].lo_freq, datas[hi_index].iq_corr_imag) ); } static void apply_fe_corrections( uhd::property_tree::sptr sub_tree, const uhd::fs_path &db_path, const uhd::fs_path &fe_path, const std::string &file_prefix, const double lo_freq ){ //extract eeprom serial const uhd::usrp::dboard_eeprom_t db_eeprom = sub_tree->access(db_path).get(); //make the calibration file path const fs::path cal_data_path = fs::path(uhd::get_app_path()) / ".uhd" / "cal" / (file_prefix + db_eeprom.serial + ".csv"); if (not fs::exists(cal_data_path)) return; //parse csv file or get from cache if (not fe_cal_cache.has_key(cal_data_path.string())){ std::ifstream cal_data(cal_data_path.string().c_str()); const uhd::csv::rows_type rows = uhd::csv::to_rows(cal_data); bool read_data = false, skip_next = false;; std::vector datas; BOOST_FOREACH(const uhd::csv::row_type &row, rows){ if (not read_data and not row.empty() and row[0] == "DATA STARTS HERE"){ read_data = true; skip_next = true; continue; } if (not read_data) continue; if (skip_next){ skip_next = false; continue; } fe_cal_t data; std::sscanf(row[0].c_str(), "%lf" , &data.lo_freq); std::sscanf(row[1].c_str(), "%lf" , &data.iq_corr_real); std::sscanf(row[2].c_str(), "%lf" , &data.iq_corr_imag); datas.push_back(data); } std::sort(datas.begin(), datas.end(), fe_cal_comp); fe_cal_cache[cal_data_path.string()] = datas; UHD_MSG(status) << "Loaded " << cal_data_path.string() << std::endl; } sub_tree->access >(fe_path) .set(get_fe_correction(cal_data_path.string(), lo_freq)); } /*********************************************************************** * Wrapper routines with nice try/catch + print **********************************************************************/ void uhd::usrp::apply_tx_fe_corrections( property_tree::sptr sub_tree, //starts at mboards/x const std::string &slot, //name of dboard slot const double lo_freq //actual lo freq ){ boost::mutex::scoped_lock l(corrections_mutex); try{ apply_fe_corrections( sub_tree, "dboards/" + slot + "/tx_eeprom", "tx_frontends/" + slot + "/iq_balance/value", "tx_iq_cal_v0.2_", lo_freq ); apply_fe_corrections( sub_tree, "dboards/" + slot + "/tx_eeprom", "tx_frontends/" + slot + "/dc_offset/value", "tx_dc_cal_v0.2_", lo_freq ); } catch(const std::exception &e){ UHD_MSG(error) << "Failure in apply_tx_fe_corrections: " << e.what() << std::endl; } } void uhd::usrp::apply_rx_fe_corrections( property_tree::sptr sub_tree, //starts at mboards/x const std::string &slot, //name of dboard slot const double lo_freq //actual lo freq ){ boost::mutex::scoped_lock l(corrections_mutex); try{ apply_fe_corrections( sub_tree, "dboards/" + slot + "/rx_eeprom", "rx_frontends/" + slot + "/iq_balance/value", "rx_iq_cal_v0.2_", lo_freq ); } catch(const std::exception &e){ UHD_MSG(error) << "Failure in apply_rx_fe_corrections: " << e.what() << std::endl; } } uhd-3.5.5/host/lib/usrp/common/apply_corrections.hpp000066400000000000000000000026151224274632000225660ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_COMMON_APPLY_CORRECTIONS_HPP #define INCLUDED_LIBUHD_USRP_COMMON_APPLY_CORRECTIONS_HPP #include #include #include namespace uhd{ namespace usrp{ void apply_tx_fe_corrections( property_tree::sptr sub_tree, //starts at mboards/x const std::string &slot, //name of dboard slot const double tx_lo_freq //actual lo freq ); void apply_rx_fe_corrections( property_tree::sptr sub_tree, //starts at mboards/x const std::string &slot, //name of dboard slot const double rx_lo_freq //actual lo freq ); }} //namespace uhd::usrp #endif /* INCLUDED_LIBUHD_USRP_COMMON_APPLY_CORRECTIONS_HPP */ uhd-3.5.5/host/lib/usrp/common/async_packet_handler.hpp000066400000000000000000000051251224274632000231670ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_COMMON_ASYNC_PACKET_HANDLER_HPP #define INCLUDED_LIBUHD_USRP_COMMON_ASYNC_PACKET_HANDLER_HPP #include #include #include #include #include namespace uhd{ namespace usrp{ template void load_metadata_from_buff( const to_host_type &to_host, async_metadata_t &metadata, const transport::vrt::if_packet_info_t &if_packet_info, const boost::uint32_t *vrt_hdr, const double tick_rate, const size_t channel = 0 ){ const boost::uint32_t *payload = vrt_hdr + if_packet_info.num_header_words32; //load into metadata metadata.channel = channel; metadata.has_time_spec = if_packet_info.has_tsf; metadata.time_spec = time_spec_t::from_ticks(if_packet_info.tsf, tick_rate); metadata.event_code = async_metadata_t::event_code_t(to_host(payload[0]) & 0xff); //load user payload for (size_t i = 1; i < if_packet_info.num_payload_words32; i++){ if (i-1 == 4) break; //limit of 4 words32 metadata.user_payload[i-1] = to_host(payload[i]); } } UHD_INLINE void standard_async_msg_prints(const async_metadata_t &metadata) { if (metadata.event_code & ( async_metadata_t::EVENT_CODE_UNDERFLOW | async_metadata_t::EVENT_CODE_UNDERFLOW_IN_PACKET) ) UHD_MSG(fastpath) << "U"; else if (metadata.event_code & ( async_metadata_t::EVENT_CODE_SEQ_ERROR | async_metadata_t::EVENT_CODE_SEQ_ERROR_IN_BURST) ) UHD_MSG(fastpath) << "S"; else if (metadata.event_code & async_metadata_t::EVENT_CODE_TIME_ERROR ) UHD_MSG(fastpath) << "L"; } }} //namespace uhd::usrp #endif /* INCLUDED_LIBUHD_USRP_COMMON_ASYNC_PACKET_HANDLER_HPP */ uhd-3.5.5/host/lib/usrp/common/fifo_ctrl_excelsior.cpp000066400000000000000000000250051224274632000230440ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "fifo_ctrl_excelsior.hpp" #include "async_packet_handler.hpp" #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; static const size_t POKE32_CMD = (1 << 8); static const size_t PEEK32_CMD = 0; static const double ACK_TIMEOUT = 0.5; static const double MASSIVE_TIMEOUT = 10.0; //for when we wait on a timed command static const boost::uint32_t MAX_SEQS_OUT = 15; #define SPI_DIV _config.spi_base + 0 #define SPI_CTRL _config.spi_base + 4 #define SPI_DATA _config.spi_base + 8 #define SPI_DIVIDER 4 struct ctrl_result_t{ boost::uint32_t msg[2]; }; class fifo_ctrl_excelsior_impl : public fifo_ctrl_excelsior{ public: fifo_ctrl_excelsior_impl(zero_copy_if::sptr xport, const fifo_ctrl_excelsior_config &config): _xport(xport), _config(config), _seq_out(0), _seq_ack(0), _timeout(ACK_TIMEOUT), _async_fifo(1000), _ctrl_fifo(MAX_SEQS_OUT+1) { while (_xport->get_recv_buff(0.0)){} //flush this->set_time(uhd::time_spec_t(0.0)); this->set_tick_rate(1.0); //something possible but bogus _msg_task = task::make(boost::bind(&fifo_ctrl_excelsior_impl::handle_msg, this)); this->init_spi(); } ~fifo_ctrl_excelsior_impl(void){ _timeout = ACK_TIMEOUT; //reset timeout to something small UHD_SAFE_CALL( this->peek32(0); //dummy peek with the purpose of ack'ing all packets ) } bool pop_async_msg(async_metadata_t &async_metadata, double timeout){ boost::this_thread::disable_interruption di; //disable because the wait can throw return _async_fifo.pop_with_timed_wait(async_metadata, timeout); } void handle_msg(void){ set_thread_priority_safe(); while (not boost::this_thread::interruption_requested()){ this->handle_msg1(); } } void handle_msg1(void){ managed_recv_buffer::sptr buff = _xport->get_recv_buff(); if (not buff) return; const boost::uint32_t *pkt = buff->cast(); vrt::if_packet_info_t packet_info; packet_info.num_packet_words32 = buff->size()/sizeof(boost::uint32_t); try{ vrt::if_hdr_unpack_le(pkt, packet_info); } catch(const std::exception &ex){ UHD_MSG(error) << "FIFO ctrl bad VITA packet: " << ex.what() << std::endl; } if (packet_info.has_sid and packet_info.sid == _config.ctrl_sid_base){ ctrl_result_t res = ctrl_result_t(); res.msg[0] = uhd::wtohx(pkt[packet_info.num_header_words32+0]); res.msg[1] = uhd::wtohx(pkt[packet_info.num_header_words32+1]); _ctrl_fifo.push_with_haste(res); } else if (packet_info.has_sid and packet_info.sid >= _config.async_sid_base and packet_info.sid <= _config.async_sid_base + _config.num_async_chan){ async_metadata_t metadata; load_metadata_from_buff(uhd::wtohx, metadata, packet_info, pkt, _tick_rate, packet_info.sid - _config.async_sid_base); _async_fifo.push_with_pop_on_full(metadata); standard_async_msg_prints(metadata); } else{ UHD_MSG(error) << "FIFO ctrl got unknown SID: " << packet_info.sid << std::endl; } } /******************************************************************* * Peek and poke 32 bit implementation ******************************************************************/ void poke32(wb_addr_type addr, boost::uint32_t data){ boost::mutex::scoped_lock lock(_mutex); this->send_pkt(addr, data, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); } boost::uint32_t peek32(wb_addr_type addr){ boost::mutex::scoped_lock lock(_mutex); this->send_pkt(addr, 0, PEEK32_CMD); return this->wait_for_ack(_seq_out); } /******************************************************************* * Peek and poke 16 bit not implemented ******************************************************************/ void poke16(wb_addr_type, boost::uint16_t){ throw uhd::not_implemented_error("poke16 not implemented in fifo ctrl module"); } boost::uint16_t peek16(wb_addr_type){ throw uhd::not_implemented_error("peek16 not implemented in fifo ctrl module"); } /******************************************************************* * FIFO controlled SPI implementation ******************************************************************/ void init_spi(void){ boost::mutex::scoped_lock lock(_mutex); this->send_pkt(SPI_DIV, SPI_DIVIDER, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); _ctrl_word_cache = 0; // force update first time around } boost::uint32_t transact_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits, bool readback ){ boost::mutex::scoped_lock lock(_mutex); //load control word boost::uint32_t ctrl_word = 0; ctrl_word |= ((which_slave & 0xffffff) << 0); ctrl_word |= ((num_bits & 0x3ff) << 24); if (config.mosi_edge == spi_config_t::EDGE_FALL) ctrl_word |= (1 << 31); if (config.miso_edge == spi_config_t::EDGE_RISE) ctrl_word |= (1 << 30); //load data word (must be in upper bits) const boost::uint32_t data_out = data << (32 - num_bits); //conditionally send control word if (_ctrl_word_cache != ctrl_word){ this->send_pkt(SPI_CTRL, ctrl_word, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); _ctrl_word_cache = ctrl_word; } //send data word this->send_pkt(SPI_DATA, data_out, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); //conditional readback if (readback){ this->send_pkt(_config.spi_rb, 0, PEEK32_CMD); return this->wait_for_ack(_seq_out); } return 0; } /******************************************************************* * Update methods for time ******************************************************************/ void set_time(const uhd::time_spec_t &time){ boost::mutex::scoped_lock lock(_mutex); _time = time; _use_time = _time != uhd::time_spec_t(0.0); if (_use_time) _timeout = MASSIVE_TIMEOUT; //permanently sets larger timeout } void set_tick_rate(const double rate){ boost::mutex::scoped_lock lock(_mutex); _tick_rate = rate; } private: /******************************************************************* * Primary control and interaction private methods ******************************************************************/ UHD_INLINE void send_pkt(wb_addr_type addr, boost::uint32_t data, int cmd){ managed_send_buffer::sptr buff = _xport->get_send_buff(); if (not buff){ throw uhd::runtime_error("fifo ctrl timed out getting a send buffer"); } boost::uint32_t *pkt = buff->cast(); //load packet info vrt::if_packet_info_t packet_info; packet_info.packet_type = vrt::if_packet_info_t::PACKET_TYPE_CONTEXT; packet_info.num_payload_words32 = 2; packet_info.num_payload_bytes = packet_info.num_payload_words32*sizeof(boost::uint32_t); packet_info.packet_count = ++_seq_out; packet_info.tsf = _time.to_ticks(_tick_rate); packet_info.sob = false; packet_info.eob = false; packet_info.has_sid = false; packet_info.has_cid = false; packet_info.has_tsi = false; packet_info.has_tsf = _use_time; packet_info.has_tlr = false; //load header vrt::if_hdr_pack_le(pkt, packet_info); //load payload const boost::uint32_t ctrl_word = (addr/4 & 0xff) | cmd | (_seq_out << 16); pkt[packet_info.num_header_words32+0] = uhd::htowx(ctrl_word); pkt[packet_info.num_header_words32+1] = uhd::htowx(data); //send the buffer over the interface buff->commit(sizeof(boost::uint32_t)*(packet_info.num_packet_words32)); } UHD_INLINE bool wraparound_lt16(const boost::int16_t i0, const boost::int16_t i1){ if (((i0 ^ i1) & 0x8000) == 0) //same sign bits return boost::uint16_t(i0) < boost::uint16_t(i1); return boost::int16_t(i1 - i0) > 0; } UHD_INLINE boost::uint32_t wait_for_ack(const boost::uint16_t seq_to_ack){ while (wraparound_lt16(_seq_ack, seq_to_ack)){ ctrl_result_t res = ctrl_result_t(); if (not _ctrl_fifo.pop_with_timed_wait(res, _timeout)){ throw uhd::runtime_error("fifo ctrl timed out looking for acks"); } _seq_ack = res.msg[0] >> 16; if (_seq_ack == seq_to_ack) return res.msg[1]; } return 0; } zero_copy_if::sptr _xport; const fifo_ctrl_excelsior_config _config; boost::mutex _mutex; boost::uint16_t _seq_out; boost::uint16_t _seq_ack; uhd::time_spec_t _time; bool _use_time; double _tick_rate; double _timeout; boost::uint32_t _ctrl_word_cache; bounded_buffer _async_fifo; bounded_buffer _ctrl_fifo; task::sptr _msg_task; }; fifo_ctrl_excelsior::sptr fifo_ctrl_excelsior::make(zero_copy_if::sptr xport, const fifo_ctrl_excelsior_config &config) { return sptr(new fifo_ctrl_excelsior_impl(xport, config)); } uhd-3.5.5/host/lib/usrp/common/fifo_ctrl_excelsior.hpp000066400000000000000000000036131224274632000230520ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_B200_CTRL_HPP #define INCLUDED_B200_CTRL_HPP #include #include #include #include #include #include #include "wb_iface.hpp" #include struct fifo_ctrl_excelsior_config { size_t async_sid_base; size_t num_async_chan; size_t ctrl_sid_base; size_t spi_base; size_t spi_rb; }; /*! * Provide access to peek, poke, spi, and async messages. */ class fifo_ctrl_excelsior : public wb_iface, public uhd::spi_iface{ public: typedef boost::shared_ptr sptr; //! Make a new control object static sptr make( uhd::transport::zero_copy_if::sptr xport, const fifo_ctrl_excelsior_config &config ); //! Set the command time that will activate virtual void set_time(const uhd::time_spec_t &time) = 0; //! Set the tick rate (converting time into ticks) virtual void set_tick_rate(const double rate) = 0; //! Pop an async message from the queue or timeout virtual bool pop_async_msg(uhd::async_metadata_t &async_metadata, double timeout) = 0; }; #endif /* INCLUDED_B200_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/common/fx2_ctrl.cpp000066400000000000000000000344131224274632000205460ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "fx2_ctrl.hpp" #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; #define FX2_FIRMWARE_LOAD 0xa0 static const bool load_img_msg = true; typedef boost::uint32_t hash_type; /*********************************************************************** * Helper Functions **********************************************************************/ /*! * Create a file hash * The hash will be used to identify the loaded firmware and fpga image * \param filename file used to generate hash value * \return hash value in a size_t type */ static hash_type generate_hash(const char *filename) { std::ifstream file(filename); if (not file){ throw uhd::io_error(std::string("cannot open input file ") + filename); } size_t hash = 0; char ch; while (file.get(ch)) { boost::hash_combine(hash, ch); } if (not file.eof()){ throw uhd::io_error(std::string("file error ") + filename); } file.close(); return hash_type(hash); } /*! * Verify checksum of a Intel HEX record * \param record a line from an Intel HEX file * \return true if record is valid, false otherwise */ static bool checksum(std::string *record) { size_t len = record->length(); unsigned int i; unsigned char sum = 0; unsigned int val; for (i = 1; i < len; i += 2) { std::istringstream(record->substr(i, 2)) >> std::hex >> val; sum += val; } if (sum == 0) return true; else return false; } /*! * Parse Intel HEX record * * \param record a line from an Intel HEX file * \param len output length of record * \param addr output address * \param type output type * \param data output data * \return true if record is sucessfully read, false on error */ bool parse_record(std::string *record, unsigned int &len, unsigned int &addr, unsigned int &type, unsigned char* data) { unsigned int i; std::string _data; unsigned int val; if (record->substr(0, 1) != ":") return false; std::istringstream(record->substr(1, 2)) >> std::hex >> len; std::istringstream(record->substr(3, 4)) >> std::hex >> addr; std::istringstream(record->substr(7, 2)) >> std::hex >> type; for (i = 0; i < len; i++) { std::istringstream(record->substr(9 + 2 * i, 2)) >> std::hex >> val; data[i] = (unsigned char) val; } return true; } /*! * USRP control implementation for device discovery and configuration */ class fx2_ctrl_impl : public fx2_ctrl { public: fx2_ctrl_impl(uhd::transport::usb_control::sptr ctrl_transport) { _ctrl_transport = ctrl_transport; } void usrp_fx2_reset(void){ unsigned char reset_y = 1; unsigned char reset_n = 0; usrp_control_write(FX2_FIRMWARE_LOAD, 0xe600, 0, &reset_y, 1); usrp_control_write(FX2_FIRMWARE_LOAD, 0xe600, 0, &reset_n, 1); //wait for things to settle boost::this_thread::sleep(boost::posix_time::milliseconds(2000)); } void usrp_load_firmware(std::string filestring, bool force) { const char *filename = filestring.c_str(); hash_type hash = generate_hash(filename); hash_type loaded_hash; usrp_get_firmware_hash(loaded_hash); if (not force and (hash == loaded_hash)) return; //FIXME: verify types unsigned int len; unsigned int addr; unsigned int type; unsigned char data[512]; std::ifstream file; file.open(filename, std::ifstream::in); if (!file.good()) { throw uhd::io_error("usrp_load_firmware: cannot open firmware input file"); } unsigned char reset_y = 1; unsigned char reset_n = 0; //hit the reset line if (load_img_msg) UHD_MSG(status) << "Loading firmware image: " << filestring << "..." << std::flush; usrp_control_write(FX2_FIRMWARE_LOAD, 0xe600, 0, &reset_y, 1); while (!file.eof()) { std::string record; file >> record; //check for valid record if (not checksum(&record) or not parse_record(&record, len, addr, type, data)) { throw uhd::io_error("usrp_load_firmware: bad record checksum"); } //type 0x00 is data if (type == 0x00) { int ret = usrp_control_write(FX2_FIRMWARE_LOAD, addr, 0, data, len); if (ret < 0) throw uhd::io_error("usrp_load_firmware: usrp_control_write failed"); } //type 0x01 is end else if (type == 0x01) { usrp_set_firmware_hash(hash); //set hash before reset usrp_control_write(FX2_FIRMWARE_LOAD, 0xe600, 0, &reset_n, 1); file.close(); //wait for things to settle boost::this_thread::sleep(boost::posix_time::milliseconds(1000)); if (load_img_msg) UHD_MSG(status) << " done" << std::endl; return; } //type anything else is unhandled else { throw uhd::io_error("usrp_load_firmware: unsupported record"); } } //file did not end throw uhd::io_error("usrp_load_firmware: bad record"); } void usrp_init(void){ //disable usrp_rx_enable(false); usrp_tx_enable(false); //toggle resets usrp_rx_reset(true); usrp_tx_reset(true); usrp_rx_reset(false); usrp_tx_reset(false); } void usrp_load_fpga(std::string filestring) { const char *filename = filestring.c_str(); hash_type hash = generate_hash(filename); hash_type loaded_hash; usrp_get_fpga_hash(loaded_hash); if (hash == loaded_hash) return; const int ep0_size = 64; unsigned char buf[ep0_size]; if (load_img_msg) UHD_MSG(status) << "Loading FPGA image: " << filestring << "..." << std::flush; std::ifstream file; file.open(filename, std::ios::in | std::ios::binary); if (not file.good()) { throw uhd::io_error("usrp_load_fpga: cannot open fpga input file"); } usrp_fpga_reset(true); //holding the fpga in reset while loading if (usrp_control_write_cmd(VRQ_FPGA_LOAD, 0, FL_BEGIN) < 0) { throw uhd::io_error("usrp_load_fpga: fpga load error"); } while (not file.eof()) { file.read((char *)buf, sizeof(buf)); const std::streamsize n = file.gcount(); if(n == 0) continue; int ret = usrp_control_write(VRQ_FPGA_LOAD, 0, FL_XFER, buf, boost::uint16_t(n)); if (ret < 0 or std::streamsize(ret) != n) { throw uhd::io_error("usrp_load_fpga: fpga load error"); } } if (usrp_control_write_cmd(VRQ_FPGA_LOAD, 0, FL_END) < 0) { throw uhd::io_error("usrp_load_fpga: fpga load error"); } usrp_set_fpga_hash(hash); usrp_fpga_reset(false); //done loading, take fpga out of reset file.close(); if (load_img_msg) UHD_MSG(status) << " done" << std::endl; } void usrp_load_eeprom(std::string filestring) { if (load_img_msg) UHD_MSG(status) << "Loading EEPROM image: " << filestring << "..." << std::flush; const char *filename = filestring.c_str(); const boost::uint16_t i2c_addr = 0x50; unsigned int addr; unsigned char data[256]; unsigned char sendbuf[17]; std::ifstream file; file.open(filename, std::ifstream::in); if (not file.good()) { throw uhd::io_error("usrp_load_eeprom: cannot open EEPROM input file"); } file.read((char *)data, 256); std::streamsize len = file.gcount(); if(len == 256) { throw uhd::io_error("usrp_load_eeprom: image size too large"); } const int pagesize = 16; addr = 0; while(len > 0) { sendbuf[0] = addr; memcpy(sendbuf+1, &data[addr], len > pagesize ? pagesize : size_t(len)); int ret = usrp_i2c_write(i2c_addr, sendbuf, (len > pagesize ? pagesize : size_t(len))+1); if (ret < 0) { throw uhd::io_error("usrp_load_eeprom: usrp_i2c_write failed"); } addr += pagesize; len -= pagesize; boost::this_thread::sleep(boost::posix_time::milliseconds(100)); } file.close(); if (load_img_msg) UHD_MSG(status) << " done" << std::endl; } void usrp_set_led(int led_num, bool on) { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_SET_LED, on, led_num) >= 0); } void usrp_get_firmware_hash(hash_type &hash) { UHD_ASSERT_THROW(usrp_control_read(0xa0, USRP_HASH_SLOT_0_ADDR, 0, (unsigned char*) &hash, sizeof(hash)) >= 0); } void usrp_set_firmware_hash(hash_type hash) { UHD_ASSERT_THROW(usrp_control_write(0xa0, USRP_HASH_SLOT_0_ADDR, 0, (unsigned char*) &hash, sizeof(hash)) >= 0); } void usrp_get_fpga_hash(hash_type &hash) { UHD_ASSERT_THROW(usrp_control_read(0xa0, USRP_HASH_SLOT_1_ADDR, 0, (unsigned char*) &hash, sizeof(hash)) >= 0); } void usrp_set_fpga_hash(hash_type hash) { UHD_ASSERT_THROW(usrp_control_write(0xa0, USRP_HASH_SLOT_1_ADDR, 0, (unsigned char*) &hash, sizeof(hash)) >= 0); } void usrp_tx_enable(bool on) { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_TX_ENABLE, on, 0) >= 0); } void usrp_rx_enable(bool on) { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RX_ENABLE, on, 0) >= 0); } void usrp_tx_reset(bool on) { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_TX_RESET, on, 0) >= 0); } void usrp_rx_reset(bool on) { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RX_RESET, on, 0) >= 0); } void usrp_fpga_reset(bool on) { UHD_ASSERT_THROW(usrp_control_write_cmd(VRQ_FPGA_SET_RESET, on, 0) >= 0); } int usrp_control_write(boost::uint8_t request, boost::uint16_t value, boost::uint16_t index, unsigned char *buff, boost::uint16_t length) { return _ctrl_transport->submit(VRT_VENDOR_OUT, // bmReqeustType request, // bRequest value, // wValue index, // wIndex buff, // data length); // wLength } int usrp_control_read(boost::uint8_t request, boost::uint16_t value, boost::uint16_t index, unsigned char *buff, boost::uint16_t length) { return _ctrl_transport->submit(VRT_VENDOR_IN, // bmReqeustType request, // bRequest value, // wValue index, // wIndex buff, // data length); // wLength } int usrp_control_write_cmd(boost::uint8_t request, boost::uint16_t value, boost::uint16_t index) { return usrp_control_write(request, value, index, 0, 0); } byte_vector_t read_eeprom( boost::uint8_t addr, boost::uint8_t offset, size_t num_bytes ){ this->write_i2c(addr, byte_vector_t(1, offset)); return this->read_i2c(addr, num_bytes); } int usrp_i2c_write(boost::uint16_t i2c_addr, unsigned char *buf, boost::uint16_t len) { return usrp_control_write(VRQ_I2C_WRITE, i2c_addr, 0, buf, len); } int usrp_i2c_read(boost::uint16_t i2c_addr, unsigned char *buf, boost::uint16_t len) { return usrp_control_read(VRQ_I2C_READ, i2c_addr, 0, buf, len); } static const bool iface_debug = false; static const size_t max_i2c_data_bytes = 64; void write_i2c(boost::uint8_t addr, const byte_vector_t &bytes) { UHD_ASSERT_THROW(bytes.size() < max_i2c_data_bytes); int ret = this->usrp_i2c_write(addr, (unsigned char *)&bytes.front(), bytes.size()); if (iface_debug && (ret < 0)) uhd::runtime_error("USRP: failed i2c write"); } byte_vector_t read_i2c(boost::uint8_t addr, size_t num_bytes) { UHD_ASSERT_THROW(num_bytes < max_i2c_data_bytes); byte_vector_t bytes(num_bytes); int ret = this->usrp_i2c_read(addr, (unsigned char *)&bytes.front(), num_bytes); if (iface_debug && ((ret < 0) || (unsigned)ret < (num_bytes))) uhd::runtime_error("USRP: failed i2c read"); return bytes; } private: uhd::transport::usb_control::sptr _ctrl_transport; }; /*********************************************************************** * Public make function for fx2_ctrl interface **********************************************************************/ fx2_ctrl::sptr fx2_ctrl::make(uhd::transport::usb_control::sptr ctrl_transport){ return sptr(new fx2_ctrl_impl(ctrl_transport)); } uhd-3.5.5/host/lib/usrp/common/fx2_ctrl.hpp000066400000000000000000000114371224274632000205540ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_COMMON_FX2_CTRL_HPP #define INCLUDED_LIBUHD_USRP_COMMON_FX2_CTRL_HPP #include #include //i2c iface #include #include #define FL_BEGIN 0 #define FL_END 2 #define FL_XFER 1 #define USRP_HASH_SLOT_0_ADDR 0xe1e0 #define USRP_HASH_SLOT_1_ADDR 0xe1f0 #define VRQ_FPGA_LOAD 0x02 #define VRQ_FPGA_SET_RESET 0x04 #define VRQ_FPGA_SET_TX_ENABLE 0x05 #define VRQ_FPGA_SET_RX_ENABLE 0x06 #define VRQ_FPGA_SET_TX_RESET 0x0a #define VRQ_FPGA_SET_RX_RESET 0x0b #define VRQ_I2C_READ 0x81 #define VRQ_I2C_WRITE 0x08 #define VRQ_SET_LED 0x01 #define VRT_VENDOR_IN 0xC0 #define VRT_VENDOR_OUT 0x40 namespace uhd{ namespace usrp{ class fx2_ctrl : boost::noncopyable, public uhd::i2c_iface{ public: typedef boost::shared_ptr sptr; /*! * Make a usrp control object from a control transport * \param ctrl_transport a USB control transport * \return a new usrp control object */ static sptr make(uhd::transport::usb_control::sptr ctrl_transport); //! Call init after the fpga is loaded virtual void usrp_init(void) = 0; //! For emergency situations virtual void usrp_fx2_reset(void) = 0; /*! * Load firmware in Intel HEX Format onto device * \param filename name of firmware file * \param force reload firmware if already loaded */ virtual void usrp_load_firmware(std::string filename, bool force = false) = 0; /*! * Load fpga file onto usrp * \param filename name of fpga image */ virtual void usrp_load_fpga(std::string filename) = 0; /*! * Load USB descriptor file in Intel HEX format into EEPROM * \param filename name of EEPROM image */ virtual void usrp_load_eeprom(std::string filestring) = 0; /*! * Submit an IN transfer * \param request device specific request * \param value device specific field * \param index device specific field * \param buff buffer to place data * \return number of bytes read or error */ virtual int usrp_control_read(boost::uint8_t request, boost::uint16_t value, boost::uint16_t index, unsigned char *buff, boost::uint16_t length) = 0; /*! * Submit an OUT transfer * \param request device specific request * \param value device specific field * \param index device specific field * \param buff buffer of data to be sent * \return number of bytes written or error */ virtual int usrp_control_write(boost::uint8_t request, boost::uint16_t value, boost::uint16_t index, unsigned char *buff, boost::uint16_t length) = 0; /*! * Perform an I2C write * \param i2c_addr I2C device address * \param buf data to be written * \param len length of data in bytes * \return number of bytes written or error */ virtual int usrp_i2c_write(boost::uint16_t i2c_addr, unsigned char *buf, boost::uint16_t len) = 0; /*! * Perform an I2C read * \param i2c_addr I2C device address * \param buf data to be read * \param len length of data in bytes * \return number of bytes read or error */ virtual int usrp_i2c_read(boost::uint16_t i2c_addr, unsigned char *buf, boost::uint16_t len) = 0; //! enable/disable the rx path virtual void usrp_rx_enable(bool on) = 0; //! enable/disable the tx path virtual void usrp_tx_enable(bool on) = 0; //! reset the fpga virtual void usrp_fpga_reset(bool on) = 0; }; }} //namespace uhd::usrp #endif /* INCLUDED_LIBUHD_USRP_COMMON_FX2_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/common/recv_packet_demuxer.cpp000066400000000000000000000060771224274632000230470ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "recv_packet_demuxer.hpp" #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; static UHD_INLINE boost::uint32_t extract_sid(managed_recv_buffer::sptr &buff){ //ASSUME that the data is in little endian format return uhd::wtohx(buff->cast()[1]); } class recv_packet_demuxer_impl : public uhd::usrp::recv_packet_demuxer{ public: recv_packet_demuxer_impl( transport::zero_copy_if::sptr transport, const size_t size, const boost::uint32_t sid_base ): _transport(transport), _sid_base(sid_base), _queues(size) { /* NOP */ } managed_recv_buffer::sptr get_recv_buff(const size_t index, const double timeout){ boost::mutex::scoped_lock lock(_mutex); managed_recv_buffer::sptr buff; //there is already an entry in the queue, so pop that if (not _queues[index].wrapper.empty()){ std::swap(buff, _queues[index].wrapper.front()); _queues[index].wrapper.pop(); return buff; } while (true){ //otherwise call into the transport buff = _transport->get_recv_buff(timeout); if (buff.get() == NULL) return buff; //timeout //check the stream id to know which channel const size_t rx_index = extract_sid(buff) - _sid_base; if (rx_index == index) return buff; //got expected message //otherwise queue and try again if (rx_index < _queues.size()) _queues[rx_index].wrapper.push(buff); else UHD_MSG(error) << "Got a data packet with unknown SID " << extract_sid(buff) << std::endl; } } private: transport::zero_copy_if::sptr _transport; const boost::uint32_t _sid_base; boost::mutex _mutex; struct channel_guts_type{ channel_guts_type(void): wrapper(container){} std::deque container; std::queue wrapper; }; std::vector _queues; }; recv_packet_demuxer::sptr recv_packet_demuxer::make(transport::zero_copy_if::sptr transport, const size_t size, const boost::uint32_t sid_base){ return sptr(new recv_packet_demuxer_impl(transport, size, sid_base)); } uhd-3.5.5/host/lib/usrp/common/recv_packet_demuxer.hpp000066400000000000000000000030001224274632000230330ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_COMMON_RECV_PACKET_DEMUXER_HPP #define INCLUDED_LIBUHD_USRP_COMMON_RECV_PACKET_DEMUXER_HPP #include #include #include #include namespace uhd{ namespace usrp{ class recv_packet_demuxer{ public: typedef boost::shared_ptr sptr; //! Make a new demuxer from a transport and parameters static sptr make(transport::zero_copy_if::sptr transport, const size_t size, const boost::uint32_t sid_base); //! Get a buffer at the given index from the transport virtual transport::managed_recv_buffer::sptr get_recv_buff(const size_t index, const double timeout) = 0; }; }} //namespace uhd::usrp #endif /* INCLUDED_LIBUHD_USRP_COMMON_RECV_PACKET_DEMUXER_HPP */ uhd-3.5.5/host/lib/usrp/common/validate_subdev_spec.cpp000066400000000000000000000053311224274632000231730ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "validate_subdev_spec.hpp" #include #include #include #include using namespace uhd; using namespace uhd::usrp; namespace uhd{ namespace usrp{ static std::ostream& operator<< (std::ostream &out, const subdev_spec_pair_t &pair){ out << pair.db_name << ":" << pair.sd_name; return out; } }} void uhd::usrp::validate_subdev_spec( property_tree::sptr tree, const subdev_spec_t &spec, const std::string &type, const std::string &mb ){ const size_t num_dsps = tree->list(str(boost::format("/mboards/%s/%s_dsps") % mb % type)).size(); //sanity checking on the length if (spec.size() == 0) throw uhd::value_error(str(boost::format( "Empty %s subdevice specification is not supported.\n" ) % type)); if (spec.size() > num_dsps) throw uhd::value_error(str(boost::format( "The subdevice specification \"%s\" is too long.\n" "The user specified %u channels, but there are only %u %s dsps on mboard %s.\n" ) % spec.to_string() % spec.size() % num_dsps % type % mb)); //make a list of all possible specs subdev_spec_t all_specs; BOOST_FOREACH(const std::string &db, tree->list(str(boost::format("/mboards/%s/dboards") % mb))){ BOOST_FOREACH(const std::string &sd, tree->list(str(boost::format("/mboards/%s/dboards/%s/%s_frontends") % mb % db % type))){ all_specs.push_back(subdev_spec_pair_t(db, sd)); } } //validate that the spec is possible BOOST_FOREACH(const subdev_spec_pair_t &pair, spec){ uhd::assert_has(all_specs, pair, str(boost::format("%s subdevice specification on mboard %s") % type % mb)); } //enable selected frontends, disable others BOOST_FOREACH(const subdev_spec_pair_t &pair, all_specs){ const bool enb = uhd::has(spec, pair); tree->access(str(boost::format( "/mboards/%s/dboards/%s/%s_frontends/%s/enabled" ) % mb % pair.db_name % type % pair.sd_name)).set(enb); } } uhd-3.5.5/host/lib/usrp/common/validate_subdev_spec.hpp000066400000000000000000000024211224274632000231750ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_COMMON_VALIDATE_SUBDEV_SPEC_HPP #define INCLUDED_LIBUHD_USRP_COMMON_VALIDATE_SUBDEV_SPEC_HPP #include #include #include #include namespace uhd{ namespace usrp{ //! Validate a subdev spec against a property tree void validate_subdev_spec( property_tree::sptr tree, const subdev_spec_t &spec, const std::string &type, //rx or tx const std::string &mb = "0" ); }} //namespace uhd::usrp #endif /* INCLUDED_LIBUHD_USRP_COMMON_VALIDATE_SUBDEV_SPEC_HPP */ uhd-3.5.5/host/lib/usrp/cores/000077500000000000000000000000001224274632000161355ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/cores/CMakeLists.txt000066400000000000000000000027121224274632000206770ustar00rootroot00000000000000# # Copyright 2011-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/gpio_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/i2c_core_100.cpp ${CMAKE_CURRENT_SOURCE_DIR}/i2c_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/spi_core_100.cpp ${CMAKE_CURRENT_SOURCE_DIR}/time64_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rx_dsp_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tx_dsp_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rx_frontend_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tx_frontend_core_200.cpp ${CMAKE_CURRENT_SOURCE_DIR}/user_settings_core_200.cpp ) uhd-3.5.5/host/lib/usrp/cores/gpio_core_200.cpp000066400000000000000000000101201224274632000211620ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "gpio_core_200.hpp" #include #define REG_GPIO_IDLE _base + 0 #define REG_GPIO_RX_ONLY _base + 4 #define REG_GPIO_TX_ONLY _base + 8 #define REG_GPIO_BOTH _base + 12 #define REG_GPIO_DDR _base + 16 using namespace uhd; using namespace usrp; class gpio_core_200_impl : public gpio_core_200{ public: gpio_core_200_impl(wb_iface::sptr iface, const size_t base, const size_t rb_addr): _iface(iface), _base(base), _rb_addr(rb_addr) { /* NOP */ } void set_pin_ctrl(const unit_t unit, const boost::uint16_t value){ _pin_ctrl[unit] = value; //shadow this->update(); //full update } void set_atr_reg(const unit_t unit, const atr_reg_t atr, const boost::uint16_t value){ _atr_regs[unit][atr] = value; //shadow this->update(); //full update } void set_gpio_ddr(const unit_t unit, const boost::uint16_t value){ _gpio_ddr[unit] = value; //shadow _iface->poke32(REG_GPIO_DDR, //update the 32 bit register (boost::uint32_t(_gpio_ddr[dboard_iface::UNIT_RX]) << unit2shit(dboard_iface::UNIT_RX)) | (boost::uint32_t(_gpio_ddr[dboard_iface::UNIT_TX]) << unit2shit(dboard_iface::UNIT_TX)) ); } void set_gpio_out(const unit_t unit, const boost::uint16_t value){ _gpio_out[unit] = value; //shadow this->update(); //full update } boost::uint16_t read_gpio(const unit_t unit){ return boost::uint16_t(_iface->peek32(_rb_addr) >> unit2shit(unit)); } private: wb_iface::sptr _iface; const size_t _base; const size_t _rb_addr; uhd::dict _update_cache; uhd::dict _pin_ctrl, _gpio_out, _gpio_ddr; uhd::dict > _atr_regs; unsigned unit2shit(const unit_t unit){ return (unit == dboard_iface::UNIT_RX)? 0 : 16; } void update(void){ this->update(dboard_iface::ATR_REG_IDLE, REG_GPIO_IDLE); this->update(dboard_iface::ATR_REG_TX_ONLY, REG_GPIO_TX_ONLY); this->update(dboard_iface::ATR_REG_RX_ONLY, REG_GPIO_RX_ONLY); this->update(dboard_iface::ATR_REG_FULL_DUPLEX, REG_GPIO_BOTH); } void update(const atr_reg_t atr, const size_t addr){ const boost::uint32_t atr_val = (boost::uint32_t(_atr_regs[dboard_iface::UNIT_RX][atr]) << unit2shit(dboard_iface::UNIT_RX)) | (boost::uint32_t(_atr_regs[dboard_iface::UNIT_TX][atr]) << unit2shit(dboard_iface::UNIT_TX)); const boost::uint32_t gpio_val = (boost::uint32_t(_gpio_out[dboard_iface::UNIT_RX]) << unit2shit(dboard_iface::UNIT_RX)) | (boost::uint32_t(_gpio_out[dboard_iface::UNIT_TX]) << unit2shit(dboard_iface::UNIT_TX)); const boost::uint32_t ctrl = (boost::uint32_t(_pin_ctrl[dboard_iface::UNIT_RX]) << unit2shit(dboard_iface::UNIT_RX)) | (boost::uint32_t(_pin_ctrl[dboard_iface::UNIT_TX]) << unit2shit(dboard_iface::UNIT_TX)); const boost::uint32_t val = (ctrl & atr_val) | ((~ctrl) & gpio_val); if (not _update_cache.has_key(addr) or _update_cache[addr] != val) { _iface->poke32(addr, val); } _update_cache[addr] = val; } }; gpio_core_200::sptr gpio_core_200::make(wb_iface::sptr iface, const size_t base, const size_t rb_addr){ return sptr(new gpio_core_200_impl(iface, base, rb_addr)); } uhd-3.5.5/host/lib/usrp/cores/gpio_core_200.hpp000066400000000000000000000034471224274632000212050ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_GPIO_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_GPIO_CORE_200_HPP #include #include #include #include #include #include "wb_iface.hpp" class gpio_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; typedef uhd::usrp::dboard_iface::unit_t unit_t; typedef uhd::usrp::dboard_iface::atr_reg_t atr_reg_t; //! makes a new GPIO core from iface and slave base static sptr make(wb_iface::sptr iface, const size_t base, const size_t rb_addr); //! 1 = ATR virtual void set_pin_ctrl(const unit_t unit, const boost::uint16_t value) = 0; virtual void set_atr_reg(const unit_t unit, const atr_reg_t atr, const boost::uint16_t value) = 0; //! 1 = OUTPUT virtual void set_gpio_ddr(const unit_t unit, const boost::uint16_t value) = 0; virtual void set_gpio_out(const unit_t unit, const boost::uint16_t value) = 0; virtual boost::uint16_t read_gpio(const unit_t unit) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_GPIO_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/i2c_core_100.cpp000066400000000000000000000121561224274632000207130ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "i2c_core_100.hpp" #include #include #include //sleep #define REG_I2C_PRESCALER_LO _base + 0 #define REG_I2C_PRESCALER_HI _base + 2 #define REG_I2C_CTRL _base + 4 #define REG_I2C_DATA _base + 6 #define REG_I2C_CMD_STATUS _base + 8 // // STA, STO, RD, WR, and IACK bits are cleared automatically // #define I2C_CTRL_EN (1 << 7) // core enable #define I2C_CTRL_IE (1 << 6) // interrupt enable #define I2C_CMD_START (1 << 7) // generate (repeated) start condition #define I2C_CMD_STOP (1 << 6) // generate stop condition #define I2C_CMD_RD (1 << 5) // read from slave #define I2C_CMD_WR (1 << 4) // write to slave #define I2C_CMD_NACK (1 << 3) // when a rcvr, send ACK (ACK=0) or NACK (ACK=1) #define I2C_CMD_RSVD_2 (1 << 2) // reserved #define I2C_CMD_RSVD_1 (1 << 1) // reserved #define I2C_CMD_IACK (1 << 0) // set to clear pending interrupt #define I2C_ST_RXACK (1 << 7) // Received acknowledgement from slave (1 = NAK, 0 = ACK) #define I2C_ST_BUSY (1 << 6) // 1 after START signal detected; 0 after STOP signal detected #define I2C_ST_AL (1 << 5) // Arbitration lost. 1 when core lost arbitration #define I2C_ST_RSVD_4 (1 << 4) // reserved #define I2C_ST_RSVD_3 (1 << 3) // reserved #define I2C_ST_RSVD_2 (1 << 2) // reserved #define I2C_ST_TIP (1 << 1) // Transfer-in-progress #define I2C_ST_IP (1 << 0) // Interrupt pending using namespace uhd; class i2c_core_100_impl : public i2c_core_100{ public: i2c_core_100_impl(wb_iface::sptr iface, const size_t base): _iface(iface), _base(base) { //init I2C FPGA interface. _iface->poke16(REG_I2C_CTRL, 0x0000); //set prescalers to operate at 400kHz: WB_CLK is 64MHz... static const boost::uint32_t i2c_datarate = 400000; static const boost::uint32_t wishbone_clk = 64000000; //FIXME should go somewhere else boost::uint16_t prescaler = wishbone_clk / (i2c_datarate*5) - 1; _iface->poke16(REG_I2C_PRESCALER_LO, prescaler & 0xFF); _iface->poke16(REG_I2C_PRESCALER_HI, (prescaler >> 8) & 0xFF); _iface->poke16(REG_I2C_CTRL, I2C_CTRL_EN); //enable I2C core } void write_i2c( boost::uint8_t addr, const byte_vector_t &bytes ){ _iface->poke16(REG_I2C_DATA, (addr << 1) | 0); //addr and read bit (0) _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_WR | I2C_CMD_START | (bytes.size() == 0 ? I2C_CMD_STOP : 0)); //wait for previous transfer to complete if (not wait_chk_ack()) { _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_STOP); return; } for (size_t i = 0; i < bytes.size(); i++) { _iface->poke16(REG_I2C_DATA, bytes[i]); _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_WR | ((i == (bytes.size() - 1)) ? I2C_CMD_STOP : 0)); if(!wait_chk_ack()) { _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_STOP); return; } } } byte_vector_t read_i2c( boost::uint8_t addr, size_t num_bytes ){ byte_vector_t bytes; if (num_bytes == 0) return bytes; while (_iface->peek16(REG_I2C_CMD_STATUS) & I2C_ST_BUSY){ /* NOP */ } _iface->poke16(REG_I2C_DATA, (addr << 1) | 1); //addr and read bit (1) _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_WR | I2C_CMD_START); //wait for previous transfer to complete if (not wait_chk_ack()) { _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_STOP); } for (size_t i = 0; i < num_bytes; i++) { _iface->poke16(REG_I2C_CMD_STATUS, I2C_CMD_RD | ((num_bytes == i+1) ? (I2C_CMD_STOP | I2C_CMD_NACK) : 0)); i2c_wait(); bytes.push_back(boost::uint8_t(_iface->peek16(REG_I2C_DATA))); } return bytes; } private: void i2c_wait(void) { for (size_t i = 0; i < 100; i++){ if ((_iface->peek16(REG_I2C_CMD_STATUS) & I2C_ST_TIP) == 0) return; boost::this_thread::sleep(boost::posix_time::milliseconds(1)); } UHD_MSG(error) << "i2c_core_100: i2c_wait timeout" << std::endl; } bool wait_chk_ack(void){ i2c_wait(); return (_iface->peek16(REG_I2C_CMD_STATUS) & I2C_ST_RXACK) == 0; } wb_iface::sptr _iface; const size_t _base; }; i2c_core_100::sptr i2c_core_100::make(wb_iface::sptr iface, const size_t base){ return sptr(new i2c_core_100_impl(iface, base)); } uhd-3.5.5/host/lib/usrp/cores/i2c_core_100.hpp000066400000000000000000000023121224274632000207110ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_I2C_CORE_100_HPP #define INCLUDED_LIBUHD_USRP_I2C_CORE_100_HPP #include #include #include #include #include "wb_iface.hpp" class i2c_core_100 : boost::noncopyable, public uhd::i2c_iface{ public: typedef boost::shared_ptr sptr; //! makes a new i2c core from iface and slave base static sptr make(wb_iface::sptr iface, const size_t base); }; #endif /* INCLUDED_LIBUHD_USRP_I2C_CORE_100_HPP */ uhd-3.5.5/host/lib/usrp/cores/i2c_core_200.cpp000066400000000000000000000132321224274632000207100ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "i2c_core_200.hpp" #include #include #include //sleep #include #define REG_I2C_WR_PRESCALER_LO (1 << 3) | 0 #define REG_I2C_WR_PRESCALER_HI (1 << 3) | 1 #define REG_I2C_WR_CTRL (1 << 3) | 2 #define REG_I2C_WR_DATA (1 << 3) | 3 #define REG_I2C_WR_CMD (1 << 3) | 4 #define REG_I2C_RD_DATA (0 << 3) | 3 #define REG_I2C_RD_ST (0 << 3) | 4 // // STA, STO, RD, WR, and IACK bits are cleared automatically // #define I2C_CTRL_EN (1 << 7) // core enable #define I2C_CTRL_IE (1 << 6) // interrupt enable #define I2C_CMD_START (1 << 7) // generate (repeated) start condition #define I2C_CMD_STOP (1 << 6) // generate stop condition #define I2C_CMD_RD (1 << 5) // read from slave #define I2C_CMD_WR (1 << 4) // write to slave #define I2C_CMD_NACK (1 << 3) // when a rcvr, send ACK (ACK=0) or NACK (ACK=1) #define I2C_CMD_RSVD_2 (1 << 2) // reserved #define I2C_CMD_RSVD_1 (1 << 1) // reserved #define I2C_CMD_IACK (1 << 0) // set to clear pending interrupt #define I2C_ST_RXACK (1 << 7) // Received acknowledgement from slave (1 = NAK, 0 = ACK) #define I2C_ST_BUSY (1 << 6) // 1 after START signal detected; 0 after STOP signal detected #define I2C_ST_AL (1 << 5) // Arbitration lost. 1 when core lost arbitration #define I2C_ST_RSVD_4 (1 << 4) // reserved #define I2C_ST_RSVD_3 (1 << 3) // reserved #define I2C_ST_RSVD_2 (1 << 2) // reserved #define I2C_ST_TIP (1 << 1) // Transfer-in-progress #define I2C_ST_IP (1 << 0) // Interrupt pending using namespace uhd; class i2c_core_200_impl : public i2c_core_200{ public: i2c_core_200_impl(wb_iface::sptr iface, const size_t base, const size_t readback): _iface(iface), _base(base), _readback(readback) { //init I2C FPGA interface. this->poke(REG_I2C_WR_CTRL, 0x0000); //set prescalers to operate at 400kHz: WB_CLK is 64MHz... static const boost::uint32_t i2c_datarate = 400000; static const boost::uint32_t wishbone_clk = 64000000; //FIXME should go somewhere else boost::uint16_t prescaler = wishbone_clk / (i2c_datarate*5) - 1; this->poke(REG_I2C_WR_PRESCALER_LO, prescaler & 0xFF); this->poke(REG_I2C_WR_PRESCALER_HI, (prescaler >> 8) & 0xFF); this->poke(REG_I2C_WR_CTRL, I2C_CTRL_EN); //enable I2C core } void write_i2c( boost::uint8_t addr, const byte_vector_t &bytes ){ this->poke(REG_I2C_WR_DATA, (addr << 1) | 0); //addr and read bit (0) this->poke(REG_I2C_WR_CMD, I2C_CMD_WR | I2C_CMD_START | (bytes.size() == 0 ? I2C_CMD_STOP : 0)); //wait for previous transfer to complete if (not wait_chk_ack()) { this->poke(REG_I2C_WR_CMD, I2C_CMD_STOP); return; } for (size_t i = 0; i < bytes.size(); i++) { this->poke(REG_I2C_WR_DATA, bytes[i]); this->poke(REG_I2C_WR_CMD, I2C_CMD_WR | ((i == (bytes.size() - 1)) ? I2C_CMD_STOP : 0)); if(!wait_chk_ack()) { this->poke(REG_I2C_WR_CMD, I2C_CMD_STOP); return; } } } byte_vector_t read_i2c( boost::uint8_t addr, size_t num_bytes ){ byte_vector_t bytes; if (num_bytes == 0) return bytes; while (this->peek(REG_I2C_RD_ST) & I2C_ST_BUSY){ /* NOP */ } this->poke(REG_I2C_WR_DATA, (addr << 1) | 1); //addr and read bit (1) this->poke(REG_I2C_WR_CMD, I2C_CMD_WR | I2C_CMD_START); //wait for previous transfer to complete if (not wait_chk_ack()) { this->poke(REG_I2C_WR_CMD, I2C_CMD_STOP); } for (size_t i = 0; i < num_bytes; i++) { this->poke(REG_I2C_WR_CMD, I2C_CMD_RD | ((num_bytes == i+1) ? (I2C_CMD_STOP | I2C_CMD_NACK) : 0)); i2c_wait(); bytes.push_back(this->peek(REG_I2C_RD_DATA)); } return bytes; } private: void i2c_wait(void) { for (size_t i = 0; i < 100; i++){ if ((this->peek(REG_I2C_RD_ST) & I2C_ST_TIP) == 0) return; boost::this_thread::sleep(boost::posix_time::milliseconds(1)); } UHD_MSG(error) << "i2c_core_200: i2c_wait timeout" << std::endl; } bool wait_chk_ack(void){ i2c_wait(); return (this->peek(REG_I2C_RD_ST) & I2C_ST_RXACK) == 0; } void poke(const size_t what, const boost::uint8_t cmd) { boost::mutex::scoped_lock lock(_mutex); _iface->poke32(_base, (what << 8) | cmd); } boost::uint8_t peek(const size_t what) { boost::mutex::scoped_lock lock(_mutex); _iface->poke32(_base, what << 8); return boost::uint8_t(_iface->peek32(_readback)); } wb_iface::sptr _iface; const size_t _base; const size_t _readback; boost::mutex _mutex; }; i2c_core_200::sptr i2c_core_200::make(wb_iface::sptr iface, const size_t base, const size_t readback){ return sptr(new i2c_core_200_impl(iface, base, readback)); } uhd-3.5.5/host/lib/usrp/cores/i2c_core_200.hpp000066400000000000000000000023461224274632000207210ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_I2C_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_I2C_CORE_200_HPP #include #include #include #include #include "wb_iface.hpp" class i2c_core_200 : boost::noncopyable, public uhd::i2c_iface{ public: typedef boost::shared_ptr sptr; //! makes a new i2c core from iface and slave base static sptr make(wb_iface::sptr iface, const size_t base, const size_t readback); }; #endif /* INCLUDED_LIBUHD_USRP_I2C_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/rx_dsp_core_200.cpp000066400000000000000000000256611224274632000215430ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "rx_dsp_core_200.hpp" #include #include #include #include #include #include #include //thread sleep #include #include #include #include #define REG_DSP_RX_FREQ _dsp_base + 0 #define REG_DSP_RX_SCALE_IQ _dsp_base + 4 #define REG_DSP_RX_DECIM _dsp_base + 8 #define REG_DSP_RX_MUX _dsp_base + 12 #define FLAG_DSP_RX_MUX_SWAP_IQ (1 << 0) #define FLAG_DSP_RX_MUX_REAL_MODE (1 << 1) #define REG_RX_CTRL_STREAM_CMD _ctrl_base + 0 #define REG_RX_CTRL_TIME_HI _ctrl_base + 4 #define REG_RX_CTRL_TIME_LO _ctrl_base + 8 #define REG_RX_CTRL_FORMAT _ctrl_base + 12 #define REG_RX_CTRL_VRT_HDR _ctrl_base + 16 #define REG_RX_CTRL_VRT_SID _ctrl_base + 20 #define REG_RX_CTRL_VRT_TLR _ctrl_base + 24 #define REG_RX_CTRL_NSAMPS_PP _ctrl_base + 28 #define REG_RX_CTRL_NCHANNELS _ctrl_base + 32 template T ceil_log2(T num){ return std::ceil(std::log(num)/std::log(T(2))); } using namespace uhd; class rx_dsp_core_200_impl : public rx_dsp_core_200{ public: rx_dsp_core_200_impl( wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, const boost::uint32_t sid, const bool lingering_packet ): _iface(iface), _dsp_base(dsp_base), _ctrl_base(ctrl_base), _sid(sid) { //init to something so update method has reasonable defaults _scaling_adjustment = 1.0; _dsp_extra_scaling = 1.0; //This is a hack/fix for the lingering packet problem. //The caller should also flush the recv transports if (lingering_packet){ stream_cmd_t stream_cmd(stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = 1; issue_stream_command(stream_cmd); boost::this_thread::sleep(boost::posix_time::milliseconds(10)); //lets lingering pkt propagate } this->clear(); } ~rx_dsp_core_200_impl(void) { UHD_SAFE_CALL ( //shutdown any possible streaming this->clear(); ) } void clear(void){ _iface->poke32(REG_RX_CTRL_NCHANNELS, 0); //also reset _iface->poke32(REG_RX_CTRL_VRT_HDR, 0 | (0x1 << 28) //if data with stream id | (0x1 << 26) //has trailer | (0x1 << 20) //fractional time sample count ); _iface->poke32(REG_RX_CTRL_VRT_SID, _sid); _iface->poke32(REG_RX_CTRL_VRT_TLR, 0); } void set_nsamps_per_packet(const size_t nsamps){ _iface->poke32(REG_RX_CTRL_NSAMPS_PP, nsamps); } void issue_stream_command(const stream_cmd_t &stream_cmd){ UHD_ASSERT_THROW(stream_cmd.num_samps <= 0x0fffffff); _continuous_streaming = stream_cmd.stream_mode == stream_cmd_t::STREAM_MODE_START_CONTINUOUS; //setup the mode to instruction flags typedef boost::tuple inst_t; static const uhd::dict mode_to_inst = boost::assign::map_list_of //reload, chain, samps, stop (stream_cmd_t::STREAM_MODE_START_CONTINUOUS, inst_t(true, true, false, false)) (stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS, inst_t(false, false, false, true)) (stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE, inst_t(false, false, true, false)) (stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_MORE, inst_t(false, true, true, false)) ; //setup the instruction flag values bool inst_reload, inst_chain, inst_samps, inst_stop; boost::tie(inst_reload, inst_chain, inst_samps, inst_stop) = mode_to_inst[stream_cmd.stream_mode]; //calculate the word from flags and length boost::uint32_t cmd_word = 0; cmd_word |= boost::uint32_t((stream_cmd.stream_now)? 1 : 0) << 31; cmd_word |= boost::uint32_t((inst_chain)? 1 : 0) << 30; cmd_word |= boost::uint32_t((inst_reload)? 1 : 0) << 29; cmd_word |= boost::uint32_t((inst_stop)? 1 : 0) << 28; cmd_word |= (inst_samps)? stream_cmd.num_samps : ((inst_stop)? 0 : 1); //issue the stream command _iface->poke32(REG_RX_CTRL_STREAM_CMD, cmd_word); const boost::uint64_t ticks = (stream_cmd.stream_now)? 0 : stream_cmd.time_spec.to_ticks(_tick_rate); _iface->poke32(REG_RX_CTRL_TIME_HI, boost::uint32_t(ticks >> 32)); _iface->poke32(REG_RX_CTRL_TIME_LO, boost::uint32_t(ticks >> 0)); //latches the command } void set_mux(const std::string &mode, const bool fe_swapped){ static const uhd::dict mode_to_mux = boost::assign::map_list_of ("IQ", 0) ("QI", FLAG_DSP_RX_MUX_SWAP_IQ) ("I", FLAG_DSP_RX_MUX_REAL_MODE) ("Q", FLAG_DSP_RX_MUX_SWAP_IQ | FLAG_DSP_RX_MUX_REAL_MODE) ; _iface->poke32(REG_DSP_RX_MUX, mode_to_mux[mode] ^ (fe_swapped? FLAG_DSP_RX_MUX_SWAP_IQ : 0)); } void set_tick_rate(const double rate){ _tick_rate = rate; } void set_link_rate(const double rate){ //_link_rate = rate/sizeof(boost::uint32_t); //in samps/s _link_rate = rate/sizeof(boost::uint16_t); //in samps/s (allows for 8sc) } uhd::meta_range_t get_host_rates(void){ meta_range_t range; for (int rate = 512; rate > 256; rate -= 4){ range.push_back(range_t(_tick_rate/rate)); } for (int rate = 256; rate > 128; rate -= 2){ range.push_back(range_t(_tick_rate/rate)); } for (int rate = 128; rate >= int(std::ceil(_tick_rate/_link_rate)); rate -= 1){ range.push_back(range_t(_tick_rate/rate)); } return range; } double set_host_rate(const double rate){ const size_t decim_rate = boost::math::iround(_tick_rate/this->get_host_rates().clip(rate, true)); size_t decim = decim_rate; //determine which half-band filters are activated int hb0 = 0, hb1 = 0; if (decim % 2 == 0){ hb0 = 1; decim /= 2; } if (decim % 2 == 0){ hb1 = 1; decim /= 2; } _iface->poke32(REG_DSP_RX_DECIM, (hb1 << 9) | (hb0 << 8) | (decim & 0xff)); if (decim > 1 and hb0 == 0 and hb1 == 0) { UHD_MSG(warning) << boost::format( "The requested decimation is odd; the user should expect CIC rolloff.\n" "Select an even decimation to ensure that a halfband filter is enabled.\n" "decimation = dsp_rate/samp_rate -> %d = (%f MHz)/(%f MHz)\n" ) % decim_rate % (_tick_rate/1e6) % (rate/1e6); } // Calculate CIC decimation (i.e., without halfband decimators) // Calculate closest multiplier constant to reverse gain absent scale multipliers const double rate_pow = std::pow(double(decim & 0xff), 4); _scaling_adjustment = std::pow(2, ceil_log2(rate_pow))/(1.65*rate_pow); this->update_scalar(); return _tick_rate/decim_rate; } void update_scalar(void){ const double factor = 1.0 + std::max(ceil_log2(_scaling_adjustment), 0.0); const double target_scalar = (1 << 17)*_scaling_adjustment/_dsp_extra_scaling/factor; const boost::int32_t actual_scalar = boost::math::iround(target_scalar); _fxpt_scalar_correction = target_scalar/actual_scalar*factor; //should be small _iface->poke32(REG_DSP_RX_SCALE_IQ, actual_scalar); } double get_scaling_adjustment(void){ return _fxpt_scalar_correction*_host_extra_scaling/32767.; } double set_freq(const double freq_){ //correct for outside of rate (wrap around) double freq = std::fmod(freq_, _tick_rate); if (std::abs(freq) > _tick_rate/2.0) freq -= boost::math::sign(freq)*_tick_rate; //calculate the freq register word (signed) UHD_ASSERT_THROW(std::abs(freq) <= _tick_rate/2.0); static const double scale_factor = std::pow(2.0, 32); const boost::int32_t freq_word = boost::int32_t(boost::math::round((freq / _tick_rate) * scale_factor)); //update the actual frequency const double actual_freq = (double(freq_word) / scale_factor) * _tick_rate; _iface->poke32(REG_DSP_RX_FREQ, boost::uint32_t(freq_word)); return actual_freq; } uhd::meta_range_t get_freq_range(void){ return uhd::meta_range_t(-_tick_rate/2, +_tick_rate/2, _tick_rate/std::pow(2.0, 32)); } void handle_overflow(void){ if (_continuous_streaming) issue_stream_command(stream_cmd_t::STREAM_MODE_START_CONTINUOUS); } void setup(const uhd::stream_args_t &stream_args){ if (not stream_args.args.has_key("noclear")) this->clear(); unsigned format_word = 0; if (stream_args.otw_format == "sc16"){ format_word = 0; _dsp_extra_scaling = 1.0; _host_extra_scaling = 1.0; } else if (stream_args.otw_format == "sc8"){ format_word = (1 << 0); double peak = stream_args.args.cast("peak", 1.0); peak = std::max(peak, 1.0/256); _host_extra_scaling = peak*256; _dsp_extra_scaling = peak*256; } else throw uhd::value_error("USRP RX cannot handle requested wire format: " + stream_args.otw_format); _host_extra_scaling *= stream_args.args.cast("fullscale", 1.0); this->update_scalar(); _iface->poke32(REG_RX_CTRL_FORMAT, format_word); } private: wb_iface::sptr _iface; const size_t _dsp_base, _ctrl_base; double _tick_rate, _link_rate; bool _continuous_streaming; double _scaling_adjustment, _dsp_extra_scaling, _host_extra_scaling, _fxpt_scalar_correction; const boost::uint32_t _sid; }; rx_dsp_core_200::sptr rx_dsp_core_200::make(wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, const boost::uint32_t sid, const bool lingering_packet){ return sptr(new rx_dsp_core_200_impl(iface, dsp_base, ctrl_base, sid, lingering_packet)); } uhd-3.5.5/host/lib/usrp/cores/rx_dsp_core_200.hpp000066400000000000000000000041321224274632000215360ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_RX_DSP_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_RX_DSP_CORE_200_HPP #include #include #include #include #include #include #include "wb_iface.hpp" #include class rx_dsp_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static sptr make( wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, const boost::uint32_t sid, const bool lingering_packet = false ); virtual void clear(void) = 0; virtual void set_nsamps_per_packet(const size_t nsamps) = 0; virtual void issue_stream_command(const uhd::stream_cmd_t &stream_cmd) = 0; virtual void set_mux(const std::string &mode, const bool fe_swapped = false) = 0; virtual void set_tick_rate(const double rate) = 0; virtual void set_link_rate(const double rate) = 0; virtual double set_host_rate(const double rate) = 0; virtual uhd::meta_range_t get_host_rates(void) = 0; virtual double get_scaling_adjustment(void) = 0; virtual uhd::meta_range_t get_freq_range(void) = 0; virtual double set_freq(const double freq) = 0; virtual void handle_overflow(void) = 0; virtual void setup(const uhd::stream_args_t &stream_args) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_RX_DSP_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/rx_frontend_core_200.cpp000066400000000000000000000054241224274632000225670ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "rx_frontend_core_200.hpp" #include #define REG_RX_FE_SWAP_IQ _base + 0 //lower bit #define REG_RX_FE_MAG_CORRECTION _base + 4 //18 bits #define REG_RX_FE_PHASE_CORRECTION _base + 8 //18 bits #define REG_RX_FE_OFFSET_I _base + 12 //18 bits #define REG_RX_FE_OFFSET_Q _base + 16 //18 bits #define OFFSET_FIXED (1ul << 31) #define OFFSET_SET (1ul << 30) #define FLAG_MASK (OFFSET_FIXED | OFFSET_SET) static boost::uint32_t fs_to_bits(const double num, const size_t bits){ return boost::int32_t(boost::math::round(num * (1 << (bits-1)))); } class rx_frontend_core_200_impl : public rx_frontend_core_200{ public: rx_frontend_core_200_impl(wb_iface::sptr iface, const size_t base): _iface(iface), _base(base) { //NOP } void set_mux(const bool swap){ _iface->poke32(REG_RX_FE_SWAP_IQ, swap? 1 : 0); } void set_dc_offset_auto(const bool enb){ this->set_dc_offset(enb? 0 : OFFSET_FIXED); } std::complex set_dc_offset(const std::complex &off){ static const double scaler = double(1ul << 29); _i_dc_off = boost::math::iround(off.real()*scaler); _q_dc_off = boost::math::iround(off.imag()*scaler); this->set_dc_offset(OFFSET_SET | OFFSET_FIXED); return std::complex(_i_dc_off/scaler, _q_dc_off/scaler); } void set_dc_offset(const boost::uint32_t flags){ _iface->poke32(REG_RX_FE_OFFSET_I, flags | (_i_dc_off & ~FLAG_MASK)); _iface->poke32(REG_RX_FE_OFFSET_Q, flags | (_q_dc_off & ~FLAG_MASK)); } void set_iq_balance(const std::complex &cor){ _iface->poke32(REG_RX_FE_MAG_CORRECTION, fs_to_bits(cor.real(), 18)); _iface->poke32(REG_RX_FE_PHASE_CORRECTION, fs_to_bits(cor.imag(), 18)); } private: boost::int32_t _i_dc_off, _q_dc_off; wb_iface::sptr _iface; const size_t _base; }; rx_frontend_core_200::sptr rx_frontend_core_200::make(wb_iface::sptr iface, const size_t base){ return sptr(new rx_frontend_core_200_impl(iface, base)); } uhd-3.5.5/host/lib/usrp/cores/rx_frontend_core_200.hpp000066400000000000000000000026611224274632000225740ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_TX_FRONTEND_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_TX_FRONTEND_CORE_200_HPP #include #include #include #include "wb_iface.hpp" #include #include class rx_frontend_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static sptr make(wb_iface::sptr iface, const size_t base); virtual void set_mux(const bool swap) = 0; virtual void set_dc_offset_auto(const bool enb) = 0; virtual std::complex set_dc_offset(const std::complex &off) = 0; virtual void set_iq_balance(const std::complex &cor) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_TX_FRONTEND_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/spi_core_100.cpp000066400000000000000000000057771224274632000210440ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "spi_core_100.hpp" #include #include #include //sleep #define REG_SPI_TXRX0 _base + 0 #define REG_SPI_TXRX1 _base + 4 #define REG_SPI_TXRX2 _base + 8 #define REG_SPI_TXRX3 _base + 12 #define REG_SPI_CTRL _base + 16 #define REG_SPI_DIV _base + 20 #define REG_SPI_SS _base + 24 //spi ctrl register bit definitions #define SPI_CTRL_ASS (1<<13) #define SPI_CTRL_IE (1<<12) #define SPI_CTRL_LSB (1<<11) #define SPI_CTRL_TXNEG (1<<10) //mosi edge, push on falling edge when 1 #define SPI_CTRL_RXNEG (1<< 9) //miso edge, latch on falling edge when 1 #define SPI_CTRL_GO_BSY (1<< 8) #define SPI_CTRL_CHAR_LEN_MASK 0x7F using namespace uhd; class spi_core_100_impl : public spi_core_100{ public: spi_core_100_impl(wb_iface::sptr iface, const size_t base): _iface(iface), _base(base) { /* NOP */} boost::uint32_t transact_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits, bool readback ){ UHD_ASSERT_THROW(num_bits <= 32 and (num_bits % 8) == 0); int edge_flags = ((config.miso_edge==spi_config_t::EDGE_FALL) ? SPI_CTRL_RXNEG : 0) | ((config.mosi_edge==spi_config_t::EDGE_FALL) ? 0 : SPI_CTRL_TXNEG) ; boost::uint16_t ctrl = SPI_CTRL_ASS | (SPI_CTRL_CHAR_LEN_MASK & num_bits) | edge_flags; spi_wait(); _iface->poke16(REG_SPI_DIV, 0x0001); // = fpga_clk / 4 _iface->poke32(REG_SPI_SS, which_slave & 0xFFFF); _iface->poke32(REG_SPI_TXRX0, data); _iface->poke16(REG_SPI_CTRL, ctrl); _iface->poke16(REG_SPI_CTRL, ctrl | SPI_CTRL_GO_BSY); if (not readback) return 0; spi_wait(); return _iface->peek32(REG_SPI_TXRX0); } private: void spi_wait(void) { for (size_t i = 0; i < 100; i++){ if ((_iface->peek16(REG_SPI_CTRL) & SPI_CTRL_GO_BSY) == 0) return; boost::this_thread::sleep(boost::posix_time::milliseconds(1)); } UHD_MSG(error) << "spi_core_100: spi_wait timeout" << std::endl; } wb_iface::sptr _iface; const size_t _base; }; spi_core_100::sptr spi_core_100::make(wb_iface::sptr iface, const size_t base){ return sptr(new spi_core_100_impl(iface, base)); } uhd-3.5.5/host/lib/usrp/cores/spi_core_100.hpp000066400000000000000000000023121224274632000210270ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_SPI_CORE_100_HPP #define INCLUDED_LIBUHD_USRP_SPI_CORE_100_HPP #include #include #include #include #include "wb_iface.hpp" class spi_core_100 : boost::noncopyable, public uhd::spi_iface{ public: typedef boost::shared_ptr sptr; //! makes a new spi core from iface and slave base static sptr make(wb_iface::sptr iface, const size_t base); }; #endif /* INCLUDED_LIBUHD_USRP_SPI_CORE_100_HPP */ uhd-3.5.5/host/lib/usrp/cores/time64_core_200.cpp000066400000000000000000000124021224274632000213410ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "time64_core_200.hpp" #include #include #include #define REG_TIME64_TICKS_HI _base + 0 #define REG_TIME64_TICKS_LO _base + 4 #define REG_TIME64_FLAGS _base + 8 #define REG_TIME64_IMM _base + 12 #define REG_TIME64_MIMO_SYNC _base + 20 //lower byte is delay cycles //pps flags (see above) #define FLAG_TIME64_PPS_NEGEDGE (0 << 0) #define FLAG_TIME64_PPS_POSEDGE (1 << 0) #define FLAG_TIME64_PPS_SMA (0 << 1) #define FLAG_TIME64_PPS_MIMO (1 << 1) //apparently not used #define FLAG_TIME64_LATCH_NOW 1 #define FLAG_TIME64_LATCH_NEXT_PPS 0 #define FLAG_TIME64_MIMO_SYNC (1 << 8) using namespace uhd; class time64_core_200_impl : public time64_core_200{ public: time64_core_200_impl( wb_iface::sptr iface, const size_t base, const readback_bases_type &readback_bases, const size_t mimo_delay_cycles ): _iface(iface), _base(base), _readback_bases(readback_bases), _mimo_delay_cycles(mimo_delay_cycles) { _sources.push_back("none"); _sources.push_back("external"); _sources.push_back("_external_"); if (_mimo_delay_cycles != 0) _sources.push_back("mimo"); } void enable_gpsdo(void){ _sources.push_back("gpsdo"); } void set_tick_rate(const double rate){ _tick_rate = rate; } uhd::time_spec_t get_time_now(void){ for (size_t i = 0; i < 3; i++){ //special algorithm because we cant read 64 bits synchronously const boost::uint32_t ticks_hi = _iface->peek32(_readback_bases.rb_hi_now); const boost::uint32_t ticks_lo = _iface->peek32(_readback_bases.rb_lo_now); if (ticks_hi != _iface->peek32(_readback_bases.rb_hi_now)) continue; const boost::uint64_t ticks = (boost::uint64_t(ticks_hi) << 32) | ticks_lo; return time_spec_t::from_ticks(ticks, _tick_rate); } throw uhd::runtime_error("time64_core_200: get time now timeout"); } uhd::time_spec_t get_time_last_pps(void){ for (size_t i = 0; i < 3; i++){ //special algorithm because we cant read 64 bits synchronously const boost::uint32_t ticks_hi = _iface->peek32(_readback_bases.rb_hi_pps); const boost::uint32_t ticks_lo = _iface->peek32(_readback_bases.rb_lo_pps); if (ticks_hi != _iface->peek32(_readback_bases.rb_hi_pps)) continue; const boost::uint64_t ticks = (boost::uint64_t(ticks_hi) << 32) | ticks_lo; return time_spec_t::from_ticks(ticks, _tick_rate); } throw uhd::runtime_error("time64_core_200: get time last pps timeout"); } void set_time_now(const uhd::time_spec_t &time){ const boost::uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME64_TICKS_LO, boost::uint32_t(ticks >> 0)); _iface->poke32(REG_TIME64_IMM, FLAG_TIME64_LATCH_NOW); _iface->poke32(REG_TIME64_TICKS_HI, boost::uint32_t(ticks >> 32)); //latches all 3 } void set_time_next_pps(const uhd::time_spec_t &time){ const boost::uint64_t ticks = time.to_ticks(_tick_rate); _iface->poke32(REG_TIME64_TICKS_LO, boost::uint32_t(ticks >> 0)); _iface->poke32(REG_TIME64_IMM, FLAG_TIME64_LATCH_NEXT_PPS); _iface->poke32(REG_TIME64_TICKS_HI, boost::uint32_t(ticks >> 32)); //latches all 3 } void set_time_source(const std::string &source){ assert_has(_sources, source, "time source"); //setup pps flags if (source == "external" or source == "gpsdo"){ _iface->poke32(REG_TIME64_FLAGS, FLAG_TIME64_PPS_SMA | FLAG_TIME64_PPS_POSEDGE); } else if (source == "_external_"){ _iface->poke32(REG_TIME64_FLAGS, FLAG_TIME64_PPS_SMA | FLAG_TIME64_PPS_NEGEDGE); } //setup mimo flags if (source == "mimo"){ _iface->poke32(REG_TIME64_MIMO_SYNC, FLAG_TIME64_MIMO_SYNC | (_mimo_delay_cycles & 0xff)); } else{ _iface->poke32(REG_TIME64_MIMO_SYNC, 0); } } std::vector get_time_sources(void){ return _sources; } private: wb_iface::sptr _iface; const size_t _base; const readback_bases_type _readback_bases; double _tick_rate; const size_t _mimo_delay_cycles; std::vector _sources; }; time64_core_200::sptr time64_core_200::make(wb_iface::sptr iface, const size_t base, const readback_bases_type &readback_bases, const size_t mimo_delay_cycles){ return sptr(new time64_core_200_impl(iface, base, readback_bases, mimo_delay_cycles)); } uhd-3.5.5/host/lib/usrp/cores/time64_core_200.hpp000066400000000000000000000037041224274632000213530ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_TIME64_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_TIME64_CORE_200_HPP #include #include #include #include #include "wb_iface.hpp" #include #include class time64_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; struct readback_bases_type{ size_t rb_hi_now, rb_lo_now; size_t rb_hi_pps, rb_lo_pps; }; //! makes a new time64 core from iface and slave base static sptr make( wb_iface::sptr iface, const size_t base, const readback_bases_type &readback_bases, const size_t mimo_delay_cycles = 0 // 0 means no-mimo ); virtual void enable_gpsdo(void) = 0; virtual void set_tick_rate(const double rate) = 0; virtual uhd::time_spec_t get_time_now(void) = 0; virtual uhd::time_spec_t get_time_last_pps(void) = 0; virtual void set_time_now(const uhd::time_spec_t &time) = 0; virtual void set_time_next_pps(const uhd::time_spec_t &time) = 0; virtual void set_time_source(const std::string &source) = 0; virtual std::vector get_time_sources(void) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_TIME64_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/tx_dsp_core_200.cpp000066400000000000000000000206661224274632000215450ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "tx_dsp_core_200.hpp" #include #include #include #include #include #include #include #include //sleep #include #include #define REG_DSP_TX_FREQ _dsp_base + 0 #define REG_DSP_TX_SCALE_IQ _dsp_base + 4 #define REG_DSP_TX_INTERP _dsp_base + 8 #define REG_TX_CTRL_CLEAR _ctrl_base + 0 #define REG_TX_CTRL_FORMAT _ctrl_base + 4 #define REG_TX_CTRL_REPORT_SID _ctrl_base + 8 #define REG_TX_CTRL_POLICY _ctrl_base + 12 #define REG_TX_CTRL_CYCLES_PER_UP _ctrl_base + 16 #define REG_TX_CTRL_PACKETS_PER_UP _ctrl_base + 20 #define FLAG_TX_CTRL_POLICY_WAIT (0x1 << 0) #define FLAG_TX_CTRL_POLICY_NEXT_PACKET (0x1 << 1) #define FLAG_TX_CTRL_POLICY_NEXT_BURST (0x1 << 2) //enable flag for registers: cycles and packets per update packet #define FLAG_TX_CTRL_UP_ENB (1ul << 31) template T ceil_log2(T num){ return std::ceil(std::log(num)/std::log(T(2))); } using namespace uhd; class tx_dsp_core_200_impl : public tx_dsp_core_200{ public: tx_dsp_core_200_impl( wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, const boost::uint32_t sid ): _iface(iface), _dsp_base(dsp_base), _ctrl_base(ctrl_base), _sid(sid) { //init to something so update method has reasonable defaults _scaling_adjustment = 1.0; _dsp_extra_scaling = 1.0; //init the tx control registers this->clear(); this->set_underflow_policy("next_packet"); } void clear(void){ _iface->poke32(REG_TX_CTRL_CLEAR, 1); //reset and flush technique boost::this_thread::sleep(boost::posix_time::milliseconds(10)); _iface->poke32(REG_TX_CTRL_CLEAR, 0); _iface->poke32(REG_TX_CTRL_REPORT_SID, _sid); } void set_underflow_policy(const std::string &policy){ if (policy == "next_packet"){ _iface->poke32(REG_TX_CTRL_POLICY, FLAG_TX_CTRL_POLICY_NEXT_PACKET); } else if (policy == "next_burst"){ _iface->poke32(REG_TX_CTRL_POLICY, FLAG_TX_CTRL_POLICY_NEXT_BURST); } else throw uhd::value_error("USRP TX cannot handle requested underflow policy: " + policy); } void set_tick_rate(const double rate){ _tick_rate = rate; } void set_link_rate(const double rate){ //_link_rate = rate/sizeof(boost::uint32_t); //in samps/s _link_rate = rate/sizeof(boost::uint16_t); //in samps/s (allows for 8sc) } uhd::meta_range_t get_host_rates(void){ meta_range_t range; for (int rate = 512; rate > 256; rate -= 4){ range.push_back(range_t(_tick_rate/rate)); } for (int rate = 256; rate > 128; rate -= 2){ range.push_back(range_t(_tick_rate/rate)); } for (int rate = 128; rate >= int(std::ceil(_tick_rate/_link_rate)); rate -= 1){ range.push_back(range_t(_tick_rate/rate)); } return range; } double set_host_rate(const double rate){ const size_t interp_rate = boost::math::iround(_tick_rate/this->get_host_rates().clip(rate, true)); size_t interp = interp_rate; //determine which half-band filters are activated int hb0 = 0, hb1 = 0; if (interp % 2 == 0){ hb0 = 1; interp /= 2; } if (interp % 2 == 0){ hb1 = 1; interp /= 2; } _iface->poke32(REG_DSP_TX_INTERP, (hb1 << 9) | (hb0 << 8) | (interp & 0xff)); if (interp > 1 and hb0 == 0 and hb1 == 0) { UHD_MSG(warning) << boost::format( "The requested interpolation is odd; the user should expect CIC rolloff.\n" "Select an even interpolation to ensure that a halfband filter is enabled.\n" "interpolation = dsp_rate/samp_rate -> %d = (%f MHz)/(%f MHz)\n" ) % interp_rate % (_tick_rate/1e6) % (rate/1e6); } // Calculate CIC interpolation (i.e., without halfband interpolators) // Calculate closest multiplier constant to reverse gain absent scale multipliers const double rate_pow = std::pow(double(interp & 0xff), 3); _scaling_adjustment = std::pow(2, ceil_log2(rate_pow))/(1.65*rate_pow); this->update_scalar(); return _tick_rate/interp_rate; } void update_scalar(void){ const double factor = 1.0 + std::max(ceil_log2(_scaling_adjustment), 0.0); const double target_scalar = (1 << 17)*_scaling_adjustment/_dsp_extra_scaling/factor; const boost::int32_t actual_scalar = boost::math::iround(target_scalar); _fxpt_scalar_correction = target_scalar/actual_scalar*factor; //should be small _iface->poke32(REG_DSP_TX_SCALE_IQ, actual_scalar); } double get_scaling_adjustment(void){ return _fxpt_scalar_correction*_host_extra_scaling*32767.; } double set_freq(const double freq_){ //correct for outside of rate (wrap around) double freq = std::fmod(freq_, _tick_rate); if (std::abs(freq) > _tick_rate/2.0) freq -= boost::math::sign(freq)*_tick_rate; //calculate the freq register word (signed) UHD_ASSERT_THROW(std::abs(freq) <= _tick_rate/2.0); static const double scale_factor = std::pow(2.0, 32); const boost::int32_t freq_word = boost::int32_t(boost::math::round((freq / _tick_rate) * scale_factor)); //update the actual frequency const double actual_freq = (double(freq_word) / scale_factor) * _tick_rate; _iface->poke32(REG_DSP_TX_FREQ, boost::uint32_t(freq_word)); return actual_freq; } uhd::meta_range_t get_freq_range(void){ return uhd::meta_range_t(-_tick_rate/2, +_tick_rate/2, _tick_rate/std::pow(2.0, 32)); } void set_updates(const size_t cycles_per_up, const size_t packets_per_up){ _iface->poke32(REG_TX_CTRL_CYCLES_PER_UP, (cycles_per_up == 0)? 0 : (FLAG_TX_CTRL_UP_ENB | cycles_per_up)); _iface->poke32(REG_TX_CTRL_PACKETS_PER_UP, (packets_per_up == 0)? 0 : (FLAG_TX_CTRL_UP_ENB | packets_per_up)); } void setup(const uhd::stream_args_t &stream_args){ if (not stream_args.args.has_key("noclear")) this->clear(); unsigned format_word = 0; if (stream_args.otw_format == "sc16"){ format_word = 0; _dsp_extra_scaling = 1.0; _host_extra_scaling = 1.0; } else if (stream_args.otw_format == "sc8"){ format_word = (1 << 0); double peak = stream_args.args.cast("peak", 1.0); peak = std::max(peak, 1.0/256); _host_extra_scaling = 1.0/peak/256; _dsp_extra_scaling = 1.0/peak; } else throw uhd::value_error("USRP TX cannot handle requested wire format: " + stream_args.otw_format); _host_extra_scaling /= stream_args.args.cast("fullscale", 1.0); this->update_scalar(); _iface->poke32(REG_TX_CTRL_FORMAT, format_word); if (stream_args.args.has_key("underflow_policy")){ this->set_underflow_policy(stream_args.args["underflow_policy"]); } } private: wb_iface::sptr _iface; const size_t _dsp_base, _ctrl_base; double _tick_rate, _link_rate; double _scaling_adjustment, _dsp_extra_scaling, _host_extra_scaling, _fxpt_scalar_correction; const boost::uint32_t _sid; }; tx_dsp_core_200::sptr tx_dsp_core_200::make(wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, const boost::uint32_t sid){ return sptr(new tx_dsp_core_200_impl(iface, dsp_base, ctrl_base, sid)); } uhd-3.5.5/host/lib/usrp/cores/tx_dsp_core_200.hpp000066400000000000000000000035041224274632000215420ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_TX_DSP_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_TX_DSP_CORE_200_HPP #include #include #include #include #include #include "wb_iface.hpp" class tx_dsp_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static sptr make( wb_iface::sptr iface, const size_t dsp_base, const size_t ctrl_base, const boost::uint32_t sid ); virtual void clear(void) = 0; virtual void set_tick_rate(const double rate) = 0; virtual void set_link_rate(const double rate) = 0; virtual double set_host_rate(const double rate) = 0; virtual uhd::meta_range_t get_host_rates(void) = 0; virtual double get_scaling_adjustment(void) = 0; virtual uhd::meta_range_t get_freq_range(void) = 0; virtual double set_freq(const double freq) = 0; virtual void set_updates(const size_t cycles_per_up, const size_t packets_per_up) = 0; virtual void setup(const uhd::stream_args_t &stream_args) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_TX_DSP_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/tx_frontend_core_200.cpp000066400000000000000000000056531224274632000225750ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "tx_frontend_core_200.hpp" #include #include #include #include #define REG_TX_FE_DC_OFFSET_I _base + 0 //24 bits #define REG_TX_FE_DC_OFFSET_Q _base + 4 //24 bits #define REG_TX_FE_MAG_CORRECTION _base + 8 //18 bits #define REG_TX_FE_PHASE_CORRECTION _base + 12 //18 bits #define REG_TX_FE_MUX _base + 16 //8 bits (std output = 0x10, reversed = 0x01) static boost::uint32_t fs_to_bits(const double num, const size_t bits){ return boost::int32_t(boost::math::round(num * (1 << (bits-1)))); } class tx_frontend_core_200_impl : public tx_frontend_core_200{ public: tx_frontend_core_200_impl(wb_iface::sptr iface, const size_t base): _iface(iface), _base(base) { //NOP } void set_mux(const std::string &mode){ static const uhd::dict mode_to_mux = boost::assign::map_list_of ("IQ", (0x1 << 4) | (0x0 << 0)) //DAC0Q=DUC0Q, DAC0I=DUC0I ("QI", (0x0 << 4) | (0x1 << 0)) //DAC0Q=DUC0I, DAC0I=DUC0Q ("I", (0xf << 4) | (0x0 << 0)) //DAC0Q=ZERO, DAC0I=DUC0I ("Q", (0x0 << 4) | (0xf << 0)) //DAC0Q=DUC0I, DAC0I=ZERO ; _iface->poke32(REG_TX_FE_MUX, mode_to_mux[mode]); } std::complex set_dc_offset(const std::complex &off){ static const double scaler = double(1ul << 23); const boost::int32_t i_dc_off = boost::math::iround(off.real()*scaler); const boost::int32_t q_dc_off = boost::math::iround(off.imag()*scaler); _iface->poke32(REG_TX_FE_DC_OFFSET_I, i_dc_off); _iface->poke32(REG_TX_FE_DC_OFFSET_Q, q_dc_off); return std::complex(i_dc_off/scaler, q_dc_off/scaler); } void set_iq_balance(const std::complex &cor){ _iface->poke32(REG_TX_FE_MAG_CORRECTION, fs_to_bits(cor.real(), 18)); _iface->poke32(REG_TX_FE_PHASE_CORRECTION, fs_to_bits(cor.imag(), 18)); } private: wb_iface::sptr _iface; const size_t _base; }; tx_frontend_core_200::sptr tx_frontend_core_200::make(wb_iface::sptr iface, const size_t base){ return sptr(new tx_frontend_core_200_impl(iface, base)); } uhd-3.5.5/host/lib/usrp/cores/tx_frontend_core_200.hpp000066400000000000000000000025771224274632000226040ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_RX_FRONTEND_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_RX_FRONTEND_CORE_200_HPP #include #include #include #include "wb_iface.hpp" #include #include class tx_frontend_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static sptr make(wb_iface::sptr iface, const size_t base); virtual void set_mux(const std::string &mode) = 0; virtual std::complex set_dc_offset(const std::complex &off) = 0; virtual void set_iq_balance(const std::complex &cor) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_RX_FRONTEND_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/user_settings_core_200.cpp000066400000000000000000000026021224274632000231300ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "user_settings_core_200.hpp" #define REG_USER_ADDR _base + 0 #define REG_USER_DATA _base + 4 class user_settings_core_200_impl : public user_settings_core_200{ public: user_settings_core_200_impl(wb_iface::sptr iface, const size_t base): _iface(iface), _base(base) { //NOP } void set_reg(const user_reg_t ®){ _iface->poke32(REG_USER_ADDR, reg.first); _iface->poke32(REG_USER_DATA, reg.second); } private: wb_iface::sptr _iface; const size_t _base; }; user_settings_core_200::sptr user_settings_core_200::make(wb_iface::sptr iface, const size_t base){ return sptr(new user_settings_core_200_impl(iface, base)); } uhd-3.5.5/host/lib/usrp/cores/user_settings_core_200.hpp000066400000000000000000000024071224274632000231400ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_USER_SETTINGS_CORE_200_HPP #define INCLUDED_LIBUHD_USRP_USER_SETTINGS_CORE_200_HPP #include #include #include #include "wb_iface.hpp" class user_settings_core_200 : boost::noncopyable{ public: typedef boost::shared_ptr sptr; typedef std::pair user_reg_t; static sptr make(wb_iface::sptr iface, const size_t base); virtual void set_reg(const user_reg_t ®) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_USER_SETTINGS_CORE_200_HPP */ uhd-3.5.5/host/lib/usrp/cores/wb_iface.hpp000066400000000000000000000033161224274632000204100ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_WB_IFACE_HPP #define INCLUDED_LIBUHD_USRP_WB_IFACE_HPP #include #include #include class wb_iface{ public: typedef boost::shared_ptr sptr; typedef boost::uint32_t wb_addr_type; /*! * Write a register (32 bits) * \param addr the address * \param data the 32bit data */ virtual void poke32(wb_addr_type addr, boost::uint32_t data) = 0; /*! * Read a register (32 bits) * \param addr the address * \return the 32bit data */ virtual boost::uint32_t peek32(wb_addr_type addr) = 0; /*! * Write a register (16 bits) * \param addr the address * \param data the 16bit data */ virtual void poke16(wb_addr_type addr, boost::uint16_t data) = 0; /*! * Read a register (16 bits) * \param addr the address * \return the 16bit data */ virtual boost::uint16_t peek16(wb_addr_type addr) = 0; }; #endif /* INCLUDED_LIBUHD_USRP_WB_IFACE_HPP */ uhd-3.5.5/host/lib/usrp/dboard/000077500000000000000000000000001224274632000162555ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/dboard/CMakeLists.txt000066400000000000000000000032271224274632000210210ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/db_basic_and_lf.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_rfx.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_xcvr2450.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_sbx_common.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_sbx_version3.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_sbx_version4.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_wbx_common.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_wbx_version2.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_wbx_version3.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_wbx_version4.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_wbx_simple.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_dbsrx.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_unknown.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_tvrx.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_dbsrx2.cpp ${CMAKE_CURRENT_SOURCE_DIR}/db_tvrx2.cpp ) uhd-3.5.5/host/lib/usrp/dboard/db_basic_and_lf.cpp000066400000000000000000000202371224274632000220160ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; //! provider function for the always zero freq static double always_zero_freq(void){return 0.0;} /*********************************************************************** * Constants **********************************************************************/ static const uhd::dict subdev_bandwidth_scalar = map_list_of ("A", 1.0) ("B", 1.0) ("AB", 2.0) ("BA", 2.0) ; /*********************************************************************** * The basic and lf boards: * They share a common class because only the frequency bounds differ. **********************************************************************/ class basic_rx : public rx_dboard_base{ public: basic_rx(ctor_args_t args, double max_freq); ~basic_rx(void); private: double _max_freq; }; class basic_tx : public tx_dboard_base{ public: basic_tx(ctor_args_t args, double max_freq); ~basic_tx(void); private: double _max_freq; }; static const uhd::dict sd_name_to_conn = map_list_of ("AB", "IQ") ("BA", "QI") ("A", "I") ("B", "Q") ; /*********************************************************************** * Register the basic and LF dboards **********************************************************************/ static dboard_base::sptr make_basic_rx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new basic_rx(args, 250e6)); } static dboard_base::sptr make_basic_tx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new basic_tx(args, 250e6)); } static dboard_base::sptr make_lf_rx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new basic_rx(args, 32e6)); } static dboard_base::sptr make_lf_tx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new basic_tx(args, 32e6)); } UHD_STATIC_BLOCK(reg_basic_and_lf_dboards){ dboard_manager::register_dboard(0x0000, &make_basic_tx, "Basic TX", sd_name_to_conn.keys()); dboard_manager::register_dboard(0x0001, &make_basic_rx, "Basic RX", sd_name_to_conn.keys()); dboard_manager::register_dboard(0x000e, &make_lf_tx, "LF TX", sd_name_to_conn.keys()); dboard_manager::register_dboard(0x000f, &make_lf_rx, "LF RX", sd_name_to_conn.keys()); } /*********************************************************************** * Basic and LF RX dboard **********************************************************************/ basic_rx::basic_rx(ctor_args_t args, double max_freq) : rx_dboard_base(args){ _max_freq = max_freq; //this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// if(get_rx_id() == 0x0001){ this->get_rx_subtree()->create("name").set( std::string(str(boost::format("BasicRX (%s)") % get_subdev_name() ))); } else{ this->get_rx_subtree()->create("name").set( std::string(str(boost::format("LFRX (%s)") % get_subdev_name() ))); } this->get_rx_subtree()->create("gains"); //phony property so this dir exists this->get_rx_subtree()->create("freq/value") .publish(&always_zero_freq); this->get_rx_subtree()->create("freq/range") .set(freq_range_t(-_max_freq, +_max_freq)); this->get_rx_subtree()->create("antenna/value") .set(""); this->get_rx_subtree()->create >("antenna/options") .set(list_of("")); this->get_rx_subtree()->create("sensors"); //phony property so this dir exists this->get_rx_subtree()->create("connection") .set(sd_name_to_conn[get_subdev_name()]); this->get_rx_subtree()->create("enabled") .set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") .set(subdev_bandwidth_scalar[get_subdev_name()]*_max_freq); this->get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(subdev_bandwidth_scalar[get_subdev_name()]*_max_freq, subdev_bandwidth_scalar[get_subdev_name()]*_max_freq)); //disable RX dboard clock by default this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, false); //set GPIOs to output 0x0000 to decrease noise pickup this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, 0x0000); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, 0xFFFF); this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, 0x0000); } basic_rx::~basic_rx(void){ /* NOP */ } /*********************************************************************** * Basic and LF TX dboard **********************************************************************/ basic_tx::basic_tx(ctor_args_t args, double max_freq) : tx_dboard_base(args){ _max_freq = max_freq; //this->get_iface()->set_clock_enabled(dboard_iface::UNIT_TX, true); //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// if(get_tx_id() == 0x0000){ this->get_tx_subtree()->create("name").set( std::string(str(boost::format("BasicTX (%s)") % get_subdev_name() ))); } else{ this->get_tx_subtree()->create("name").set( std::string(str(boost::format("LFTX (%s)") % get_subdev_name() ))); } this->get_tx_subtree()->create("gains"); //phony property so this dir exists this->get_tx_subtree()->create("freq/value") .publish(&always_zero_freq); this->get_tx_subtree()->create("freq/range") .set(freq_range_t(-_max_freq, +_max_freq)); this->get_tx_subtree()->create("antenna/value") .set(""); this->get_tx_subtree()->create >("antenna/options") .set(list_of("")); this->get_tx_subtree()->create("sensors"); //phony property so this dir exists this->get_tx_subtree()->create("connection") .set(sd_name_to_conn[get_subdev_name()]); this->get_tx_subtree()->create("enabled") .set(true); //always enabled this->get_tx_subtree()->create("use_lo_offset") .set(false); this->get_tx_subtree()->create("bandwidth/value") .set(subdev_bandwidth_scalar[get_subdev_name()]*_max_freq); this->get_tx_subtree()->create("bandwidth/range") .set(freq_range_t(subdev_bandwidth_scalar[get_subdev_name()]*_max_freq, subdev_bandwidth_scalar[get_subdev_name()]*_max_freq)); //disable TX dboard clock by default this->get_iface()->set_clock_enabled(dboard_iface::UNIT_TX, false); //set GPIOs to output 0x0000 to decrease noise pickup this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, 0x0000); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, 0xFFFF); this->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, 0x0000); } basic_tx::~basic_tx(void){ /* NOP */ } uhd-3.5.5/host/lib/usrp/dboard/db_dbsrx.cpp000066400000000000000000000526101224274632000205540ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // No RX IO Pins Used // RX IO Functions #include "max2118_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The DBSRX constants **********************************************************************/ static const freq_range_t dbsrx_freq_range(0.8e9, 2.4e9); //Multiplied by 2.0 for conversion to complex bandpass from lowpass static const freq_range_t dbsrx_bandwidth_range(2.0*4.0e6, 2.0*33.0e6); static const freq_range_t dbsrx_pfd_freq_range(0.15e6, 2.01e6); static const std::vector dbsrx_antennas = list_of("J3"); static const uhd::dict dbsrx_gain_ranges = map_list_of ("GC1", gain_range_t(0, 56, 0.5)) ("GC2", gain_range_t(0, 24, 1)) ; static const double usrp1_gpio_clock_rate_limit = 4e6; /*********************************************************************** * The DBSRX dboard class **********************************************************************/ class dbsrx : public rx_dboard_base{ public: dbsrx(ctor_args_t args); ~dbsrx(void); private: double _lo_freq; double _bandwidth; uhd::dict _gains; max2118_write_regs_t _max2118_write_regs; max2118_read_regs_t _max2118_read_regs; boost::uint8_t _max2118_addr(void){ return (this->get_iface()->get_special_props().mangle_i2c_addrs)? 0x65 : 0x67; }; double set_lo_freq(double target_freq); double set_gain(double gain, const std::string &name); double set_bandwidth(double bandwidth); void send_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg){ start_reg = boost::uint8_t(uhd::clip(int(start_reg), 0x0, 0x5)); stop_reg = boost::uint8_t(uhd::clip(int(stop_reg), 0x0, 0x5)); for(boost::uint8_t start_addr=start_reg; start_addr <= stop_reg; start_addr += sizeof(boost::uint32_t) - 1){ int num_bytes = int(stop_reg - start_addr + 1) > int(sizeof(boost::uint32_t)) - 1 ? sizeof(boost::uint32_t) - 1 : stop_reg - start_addr + 1; //create buffer for register data (+1 for start address) byte_vector_t regs_vector(num_bytes + 1); //first byte is the address of first register regs_vector[0] = start_addr; //get the register data for(int i=0; iget_iface()->write_i2c( _max2118_addr(), regs_vector ); } } void read_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg){ static const boost::uint8_t status_addr = 0x0; start_reg = boost::uint8_t(uhd::clip(int(start_reg), 0x0, 0x1)); stop_reg = boost::uint8_t(uhd::clip(int(stop_reg), 0x0, 0x1)); for(boost::uint8_t start_addr=start_reg; start_addr <= stop_reg; start_addr += sizeof(boost::uint32_t)){ int num_bytes = int(stop_reg - start_addr + 1) > int(sizeof(boost::uint32_t)) ? sizeof(boost::uint32_t) : stop_reg - start_addr + 1; //create buffer for register data byte_vector_t regs_vector(num_bytes); //read from i2c regs_vector = this->get_iface()->read_i2c( _max2118_addr(), num_bytes ); for(boost::uint8_t i=0; i < num_bytes; i++){ if (i + start_addr >= status_addr){ _max2118_read_regs.set_reg(i + start_addr, regs_vector[i]); } UHD_LOGV(often) << boost::format( "DBSRX: read reg 0x%02x, value 0x%04x, start_addr = 0x%04x, num_bytes %d" ) % int(start_addr+i) % int(regs_vector[i]) % int(start_addr) % num_bytes << std::endl; } } } /*! * Get the lock detect status of the LO. * \return sensor for locked */ sensor_value_t get_locked(void){ read_reg(0x0, 0x0); //mask and return lock detect bool locked = 5 >= _max2118_read_regs.adc and _max2118_read_regs.adc >= 2; UHD_LOGV(often) << boost::format( "DBSRX: locked %d" ) % locked << std::endl; return sensor_value_t("LO", locked, "locked", "unlocked"); } }; /*********************************************************************** * Register the DBSRX dboard **********************************************************************/ static dboard_base::sptr make_dbsrx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new dbsrx(args)); } UHD_STATIC_BLOCK(reg_dbsrx_dboard){ //register the factory function for the rx dbid (others version) dboard_manager::register_dboard(0x000D, &make_dbsrx, "DBSRX"); //register the factory function for the rx dbid (USRP1 version) dboard_manager::register_dboard(0x0002, &make_dbsrx, "DBSRX"); } /*********************************************************************** * Structors **********************************************************************/ dbsrx::dbsrx(ctor_args_t args) : rx_dboard_base(args){ //warn user about incorrect DBID on USRP1, requires R193 populated if (this->get_iface()->get_special_props().soft_clock_divider and this->get_rx_id() == 0x000D) UHD_MSG(warning) << boost::format( "DBSRX: incorrect dbid\n" "Expected dbid 0x0002 and R193\n" "found dbid == %d\n" "Please see the daughterboard app notes" ) % this->get_rx_id().to_pp_string(); //warn user about incorrect DBID on non-USRP1, requires R194 populated if (not this->get_iface()->get_special_props().soft_clock_divider and this->get_rx_id() == 0x0002) UHD_MSG(warning) << boost::format( "DBSRX: incorrect dbid\n" "Expected dbid 0x000D and R194\n" "found dbid == %d\n" "Please see the daughterboard app notes" ) % this->get_rx_id().to_pp_string(); //send initial register settings this->send_reg(0x0, 0x5); //set defaults for LO, gains, and filter bandwidth double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX); _bandwidth = 0.8*codec_rate/2.0; // default to anti-alias at different codec_rate //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name") .set("DBSRX"); this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&dbsrx::get_locked, this)); BOOST_FOREACH(const std::string &name, dbsrx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&dbsrx::set_gain, this, _1, name)) .set(dbsrx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(dbsrx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&dbsrx::set_lo_freq, this, _1)); this->get_rx_subtree()->create("freq/range") .set(dbsrx_freq_range); this->get_rx_subtree()->create("antenna/value") .set(dbsrx_antennas.at(0)); this->get_rx_subtree()->create >("antenna/options") .set(dbsrx_antennas); this->get_rx_subtree()->create("connection") .set("IQ"); this->get_rx_subtree()->create("enabled") .set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") .coerce(boost::bind(&dbsrx::set_bandwidth, this, _1)); this->get_rx_subtree()->create("bandwidth/range") .set(dbsrx_bandwidth_range); //enable only the clocks we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //set the gpio directions and atr controls (identically) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, 0x0); // All unused in atr if (this->get_iface()->get_special_props().soft_clock_divider){ this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, 0x1); // GPIO0 is clock when on USRP1 } else{ this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, 0x0); // All Inputs } //now its safe to set inital freq and bw this->get_rx_subtree()->access("freq/value") .set(dbsrx_freq_range.start()); this->get_rx_subtree()->access("bandwidth/value") .set(2.0*_bandwidth); //_bandwidth in lowpass, convert to complex bandpass } dbsrx::~dbsrx(void){ } /*********************************************************************** * Tuning **********************************************************************/ double dbsrx::set_lo_freq(double target_freq){ target_freq = dbsrx_freq_range.clip(target_freq); double actual_freq=0.0, pfd_freq=0.0, ref_clock=0.0; int R=0, N=0, r=0, m=0; bool update_filter_settings = false; //choose refclock std::vector clock_rates = this->get_iface()->get_clock_rates(dboard_iface::UNIT_RX); const double max_clock_rate = uhd::sorted(clock_rates).back(); BOOST_FOREACH(ref_clock, uhd::reversed(uhd::sorted(clock_rates))){ //USRP1 feeds the DBSRX clock from a FPGA GPIO line. //make sure that this clock does not exceed rate limit. if (this->get_iface()->get_special_props().soft_clock_divider){ if (ref_clock > usrp1_gpio_clock_rate_limit) continue; } if (ref_clock > 27.0e6) continue; if (size_t(max_clock_rate/ref_clock)%2 == 1) continue; //reject asymmetric clocks (odd divisors) //choose m_divider such that filter tuning constraint is met m = 31; while ((ref_clock/m < 1e6 or ref_clock/m > 2.5e6) and m > 0){ m--; } UHD_LOGV(often) << boost::format( "DBSRX: trying ref_clock %f and m_divider %d" ) % (ref_clock) % m << std::endl; if (m >= 32) continue; //choose R for(r = 0; r <= 6; r += 1) { //compute divider from setting R = 1 << (r+1); UHD_LOGV(often) << boost::format("DBSRX R:%d\n") % R << std::endl; //compute PFD compare frequency = ref_clock/R pfd_freq = ref_clock / R; //constrain the PFD frequency to specified range if ((pfd_freq < dbsrx_pfd_freq_range.start()) or (pfd_freq > dbsrx_pfd_freq_range.stop())) continue; //compute N N = int(std::floor(target_freq/pfd_freq)); //constrain N to specified range if ((N < 256) or (N > 32768)) continue; goto done_loop; } } done_loop: //Assert because we failed to find a suitable combination of ref_clock, R and N UHD_ASSERT_THROW(ref_clock <= 27.0e6 and ref_clock >= 0.0); UHD_ASSERT_THROW(ref_clock/m >= 1e6 and ref_clock/m <= 2.5e6); UHD_ASSERT_THROW((pfd_freq >= dbsrx_pfd_freq_range.start()) and (pfd_freq <= dbsrx_pfd_freq_range.stop())); UHD_ASSERT_THROW((N >= 256) and (N <= 32768)); UHD_LOGV(often) << boost::format( "DBSRX: choose ref_clock (current: %f, new: %f) and m_divider %d" ) % (this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX)) % ref_clock % m << std::endl; //if ref_clock or m divider changed, we need to update the filter settings if (ref_clock != this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX) or m != _max2118_write_regs.m_divider) update_filter_settings = true; //compute resulting output frequency actual_freq = pfd_freq * N; //apply ref_clock, R, and N settings this->get_iface()->set_clock_rate(dboard_iface::UNIT_RX, ref_clock); ref_clock = this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX); _max2118_write_regs.m_divider = m; _max2118_write_regs.r_divider = (max2118_write_regs_t::r_divider_t) r; _max2118_write_regs.set_n_divider(N); _max2118_write_regs.ade_vco_ade_read = max2118_write_regs_t::ADE_VCO_ADE_READ_ENABLED; //compute prescaler variables int scaler = actual_freq > 1125e6 ? 2 : 4; _max2118_write_regs.div2 = scaler == 4 ? max2118_write_regs_t::DIV2_DIV4 : max2118_write_regs_t::DIV2_DIV2; UHD_LOGV(often) << boost::format( "DBSRX: scaler %d, actual_freq %f MHz, register bit: %d" ) % scaler % (actual_freq/1e6) % int(_max2118_write_regs.div2) << std::endl; //compute vco frequency and select vco double vco_freq = actual_freq * scaler; if (vco_freq < 2433e6) _max2118_write_regs.osc_band = 0; else if (vco_freq < 2711e6) _max2118_write_regs.osc_band = 1; else if (vco_freq < 3025e6) _max2118_write_regs.osc_band = 2; else if (vco_freq < 3341e6) _max2118_write_regs.osc_band = 3; else if (vco_freq < 3727e6) _max2118_write_regs.osc_band = 4; else if (vco_freq < 4143e6) _max2118_write_regs.osc_band = 5; else if (vco_freq < 4493e6) _max2118_write_regs.osc_band = 6; else _max2118_write_regs.osc_band = 7; //send settings over i2c send_reg(0x0, 0x4); //check vtune for lock condition read_reg(0x0, 0x0); UHD_LOGV(often) << boost::format( "DBSRX: initial guess for vco %d, vtune adc %d" ) % int(_max2118_write_regs.osc_band) % int(_max2118_read_regs.adc) << std::endl; //if we are out of lock for chosen vco, change vco while ((_max2118_read_regs.adc == 0) or (_max2118_read_regs.adc == 7)){ //vtune is too low, try lower frequency vco if (_max2118_read_regs.adc == 0){ if (_max2118_write_regs.osc_band == 0){ UHD_MSG(warning) << boost::format( "DBSRX: Tuning exceeded vco range, _max2118_write_regs.osc_band == %d\n" ) % int(_max2118_write_regs.osc_band); UHD_ASSERT_THROW(_max2118_read_regs.adc != 0); //just to cause a throw } if (_max2118_write_regs.osc_band <= 0) break; _max2118_write_regs.osc_band -= 1; } //vtune is too high, try higher frequency vco if (_max2118_read_regs.adc == 7){ if (_max2118_write_regs.osc_band == 7){ UHD_MSG(warning) << boost::format( "DBSRX: Tuning exceeded vco range, _max2118_write_regs.osc_band == %d\n" ) % int(_max2118_write_regs.osc_band); UHD_ASSERT_THROW(_max2118_read_regs.adc != 7); //just to cause a throw } if (_max2118_write_regs.osc_band >= 7) break; _max2118_write_regs.osc_band += 1; } UHD_LOGV(often) << boost::format( "DBSRX: trying vco %d, vtune adc %d" ) % int(_max2118_write_regs.osc_band) % int(_max2118_read_regs.adc) << std::endl; //update vco selection and check vtune send_reg(0x2, 0x2); read_reg(0x0, 0x0); //allow for setup time before checking condition again boost::this_thread::sleep(boost::posix_time::milliseconds(10)); } UHD_LOGV(often) << boost::format( "DBSRX: final vco %d, vtune adc %d" ) % int(_max2118_write_regs.osc_band) % int(_max2118_read_regs.adc) << std::endl; //select charge pump bias current if (_max2118_read_regs.adc <= 2) _max2118_write_regs.cp_current = max2118_write_regs_t::CP_CURRENT_I_CP_100UA; else if (_max2118_read_regs.adc >= 5) _max2118_write_regs.cp_current = max2118_write_regs_t::CP_CURRENT_I_CP_400UA; else _max2118_write_regs.cp_current = max2118_write_regs_t::CP_CURRENT_I_CP_200UA; //update charge pump bias current setting send_reg(0x2, 0x2); //compute actual tuned frequency _lo_freq = this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX) / std::pow(2.0,(1 + _max2118_write_regs.r_divider)) * _max2118_write_regs.get_n_divider(); //debug output of calculated variables UHD_LOGV(often) << boost::format("DBSRX tune:\n") << boost::format(" VCO=%d, CP=%d, PFD Freq=%fMHz\n") % int(_max2118_write_regs.osc_band) % _max2118_write_regs.cp_current % (pfd_freq/1e6) << boost::format(" R=%d, N=%f, scaler=%d, div2=%d\n") % R % N % scaler % int(_max2118_write_regs.div2) << boost::format(" Ref Freq=%fMHz\n") % (ref_clock/1e6) << boost::format(" Target Freq=%fMHz\n") % (target_freq/1e6) << boost::format(" Actual Freq=%fMHz\n") % (_lo_freq/1e6) << boost::format(" VCO Freq=%fMHz\n") % (vco_freq/1e6) << std::endl; if (update_filter_settings) set_bandwidth(_bandwidth); get_locked(); return _lo_freq; } /*********************************************************************** * Gain Handling **********************************************************************/ /*! * Convert a requested gain for the GC2 vga into the integer register value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return 5 bit the register value */ static int gain_to_gc2_vga_reg(double &gain){ int reg = 0; gain = dbsrx_gain_ranges["GC2"].clip(gain); // Half dB steps from 0-5dB, 1dB steps from 5-24dB if (gain < 5) { reg = boost::math::iround(31.0 - gain/0.5); gain = double(boost::math::iround(gain) * 0.5); } else { reg = boost::math::iround(22.0 - (gain - 4.0)); gain = double(boost::math::iround(gain)); } UHD_LOGV(often) << boost::format( "DBSRX GC2 Gain: %f dB, reg: %d" ) % gain % reg << std::endl; return reg; } /*! * Convert a requested gain for the GC1 rf vga into the dac_volts value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return dac voltage value */ static double gain_to_gc1_rfvga_dac(double &gain){ //clip the input gain = dbsrx_gain_ranges["GC1"].clip(gain); //voltage level constants static const double max_volts = 1.2, min_volts = 2.7; static const double slope = (max_volts-min_volts)/dbsrx_gain_ranges["GC1"].stop(); //calculate the voltage for the aux dac double dac_volts = gain*slope + min_volts; UHD_LOGV(often) << boost::format( "DBSRX GC1 Gain: %f dB, dac_volts: %f V" ) % gain % dac_volts << std::endl; //the actual gain setting gain = (dac_volts - min_volts)/slope; return dac_volts; } double dbsrx::set_gain(double gain, const std::string &name){ assert_has(dbsrx_gain_ranges.keys(), name, "dbsrx gain name"); if (name == "GC2"){ _max2118_write_regs.gc2 = gain_to_gc2_vga_reg(gain); send_reg(0x5, 0x5); } else if(name == "GC1"){ //write the new voltage to the aux dac this->get_iface()->write_aux_dac(dboard_iface::UNIT_RX, dboard_iface::AUX_DAC_A, gain_to_gc1_rfvga_dac(gain)); } else UHD_THROW_INVALID_CODE_PATH(); _gains[name] = gain; return gain; } /*********************************************************************** * Bandwidth Handling **********************************************************************/ double dbsrx::set_bandwidth(double bandwidth){ //convert complex bandpass to lowpass bandwidth bandwidth = bandwidth/2.0; //clip the input bandwidth = dbsrx_bandwidth_range.clip(bandwidth); double ref_clock = this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX); //NOTE: _max2118_write_regs.m_divider set in set_lo_freq //compute f_dac setting _max2118_write_regs.f_dac = uhd::clip(int((((bandwidth*_max2118_write_regs.m_divider)/ref_clock) - 4)/0.145),0,127); //determine actual bandwidth _bandwidth = double((ref_clock/(_max2118_write_regs.m_divider))*(4+0.145*_max2118_write_regs.f_dac)); UHD_LOGV(often) << boost::format( "DBSRX Filter Bandwidth: %f MHz, m: %d, f_dac: %d\n" ) % (_bandwidth/1e6) % int(_max2118_write_regs.m_divider) % int(_max2118_write_regs.f_dac) << std::endl; this->send_reg(0x3, 0x4); //convert lowpass back to complex bandpass bandwidth return 2.0*_bandwidth; } uhd-3.5.5/host/lib/usrp/dboard/db_dbsrx2.cpp000066400000000000000000000343531224274632000206420ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // No RX IO Pins Used #include "max2112_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The DBSRX2 constants **********************************************************************/ static const freq_range_t dbsrx2_freq_range(0.8e9, 2.4e9); //Multiplied by 2.0 for conversion to complex bandpass from lowpass static const freq_range_t dbsrx2_bandwidth_range(2.0*4.0e6, 2.0*40.0e6); static const int dbsrx2_ref_divider = 4; // Hitachi HMC426 divider (U7) static const std::vector dbsrx2_antennas = list_of("J3"); static const uhd::dict dbsrx2_gain_ranges = map_list_of ("GC1", gain_range_t(0, 73, 0.05)) ("BBG", gain_range_t(0, 15, 1)) ; /*********************************************************************** * The DBSRX2 dboard class **********************************************************************/ class dbsrx2 : public rx_dboard_base{ public: dbsrx2(ctor_args_t args); ~dbsrx2(void); private: double _lo_freq; double _bandwidth; uhd::dict _gains; max2112_write_regs_t _max2112_write_regs; max2112_read_regs_t _max2112_read_regs; boost::uint8_t _max2112_addr(){ //0x60 or 0x61 depending on which side return (this->get_iface()->get_special_props().mangle_i2c_addrs)? 0x60 : 0x61; } double set_lo_freq(double target_freq); double set_gain(double gain, const std::string &name); double set_bandwidth(double bandwidth); void send_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg){ start_reg = boost::uint8_t(uhd::clip(int(start_reg), 0x0, 0xB)); stop_reg = boost::uint8_t(uhd::clip(int(stop_reg), 0x0, 0xB)); for(boost::uint8_t start_addr=start_reg; start_addr <= stop_reg; start_addr += sizeof(boost::uint32_t) - 1){ int num_bytes = int(stop_reg - start_addr + 1) > int(sizeof(boost::uint32_t)) - 1 ? sizeof(boost::uint32_t) - 1 : stop_reg - start_addr + 1; //create buffer for register data (+1 for start address) byte_vector_t regs_vector(num_bytes + 1); //first byte is the address of first register regs_vector[0] = start_addr; //get the register data for(int i=0; iget_iface()->write_i2c( _max2112_addr(), regs_vector ); } } void read_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg){ static const boost::uint8_t status_addr = 0xC; start_reg = boost::uint8_t(uhd::clip(int(start_reg), 0x0, 0xD)); stop_reg = boost::uint8_t(uhd::clip(int(stop_reg), 0x0, 0xD)); for(boost::uint8_t start_addr=start_reg; start_addr <= stop_reg; start_addr += sizeof(boost::uint32_t)){ int num_bytes = int(stop_reg - start_addr + 1) > int(sizeof(boost::uint32_t)) ? sizeof(boost::uint32_t) : stop_reg - start_addr + 1; //create address to start reading register data byte_vector_t address_vector(1); address_vector[0] = start_addr; //send the address this->get_iface()->write_i2c( _max2112_addr(), address_vector ); //create buffer for register data byte_vector_t regs_vector(num_bytes); //read from i2c regs_vector = this->get_iface()->read_i2c( _max2112_addr(), num_bytes ); for(boost::uint8_t i=0; i < num_bytes; i++){ if (i + start_addr >= status_addr){ _max2112_read_regs.set_reg(i + start_addr, regs_vector[i]); /* UHD_LOGV(always) << boost::format( "DBSRX2: set reg 0x%02x, value 0x%04x" ) % int(i + start_addr) % int(_max2112_read_regs.get_reg(i + start_addr)) << std::endl; */ } UHD_LOGV(often) << boost::format( "DBSRX2: read reg 0x%02x, value 0x%04x, start_addr = 0x%04x, num_bytes %d" ) % int(start_addr+i) % int(regs_vector[i]) % int(start_addr) % num_bytes << std::endl; } } } /*! * Get the lock detect status of the LO. * \return sensor for locked */ sensor_value_t get_locked(void){ read_reg(0xC, 0xD); //mask and return lock detect bool locked = (_max2112_read_regs.ld & _max2112_read_regs.vasa & _max2112_read_regs.vase) != 0; UHD_LOGV(often) << boost::format( "DBSRX2 locked: %d" ) % locked << std::endl; return sensor_value_t("LO", locked, "locked", "unlocked"); } }; /*********************************************************************** * Register the DBSRX2 dboard **********************************************************************/ // FIXME 0x67 is the default i2c address on USRP2 // need to handle which side for USRP1 with different address static dboard_base::sptr make_dbsrx2(dboard_base::ctor_args_t args){ return dboard_base::sptr(new dbsrx2(args)); } UHD_STATIC_BLOCK(reg_dbsrx2_dboard){ //register the factory function for the rx dbid dboard_manager::register_dboard(0x0012, &make_dbsrx2, "DBSRX2"); } /*********************************************************************** * Structors **********************************************************************/ dbsrx2::dbsrx2(ctor_args_t args) : rx_dboard_base(args){ //send initial register settings send_reg(0x0, 0xB); //for (boost::uint8_t addr=0; addr<=12; addr++) this->send_reg(addr, addr); //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name") .set("DBSRX2"); this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&dbsrx2::get_locked, this)); BOOST_FOREACH(const std::string &name, dbsrx2_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&dbsrx2::set_gain, this, _1, name)) .set(dbsrx2_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(dbsrx2_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&dbsrx2::set_lo_freq, this, _1)) .set(dbsrx2_freq_range.start()); this->get_rx_subtree()->create("freq/range") .set(dbsrx2_freq_range); this->get_rx_subtree()->create("antenna/value") .set(dbsrx2_antennas.at(0)); this->get_rx_subtree()->create >("antenna/options") .set(dbsrx2_antennas); this->get_rx_subtree()->create("connection") .set("QI"); this->get_rx_subtree()->create("enabled") .set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset") .set(false); double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX); this->get_rx_subtree()->create("bandwidth/value") .coerce(boost::bind(&dbsrx2::set_bandwidth, this, _1)) .set(2.0*(0.8*codec_rate/2.0)); //bandwidth in lowpass, convert to complex bandpass //default to anti-alias at different codec_rate this->get_rx_subtree()->create("bandwidth/range") .set(dbsrx2_bandwidth_range); //enable only the clocks we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //set the gpio directions and atr controls (identically) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, 0x0); // All unused in atr this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, 0x0); // All Inputs get_locked(); } dbsrx2::~dbsrx2(void){ } /*********************************************************************** * Tuning **********************************************************************/ double dbsrx2::set_lo_freq(double target_freq){ //target_freq = dbsrx2_freq_range.clip(target_freq); //variables used in the calculation below int scaler = target_freq > 1125e6 ? 2 : 4; double ref_freq = this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX); int R, intdiv, fracdiv, ext_div; double N; //compute tuning variables ext_div = dbsrx2_ref_divider; // 12MHz < ref_freq/ext_divider < 30MHz R = 1; //Divide by 1 is the only tested value N = (target_freq*R*ext_div)/(ref_freq); //actual spec range is (19, 251) intdiv = int(std::floor(N)); // if (intdiv < 19 or intdiv > 251) continue; fracdiv = boost::math::iround((N - intdiv)*double(1 << 20)); //calculate the actual freq from the values above N = double(intdiv) + double(fracdiv)/double(1 << 20); _lo_freq = (N*ref_freq)/(R*ext_div); //load new counters into registers _max2112_write_regs.set_n_divider(intdiv); _max2112_write_regs.set_f_divider(fracdiv); _max2112_write_regs.r_divider = R; _max2112_write_regs.d24 = scaler == 4 ? max2112_write_regs_t::D24_DIV4 : max2112_write_regs_t::D24_DIV2; //debug output of calculated variables UHD_LOGV(often) << boost::format("DBSRX2 tune:\n") << boost::format(" R=%d, N=%f, scaler=%d, ext_div=%d\n") % R % N % scaler % ext_div << boost::format(" int=%d, frac=%d, d24=%d\n") % intdiv % fracdiv % int(_max2112_write_regs.d24) << boost::format(" Ref Freq=%fMHz\n") % (ref_freq/1e6) << boost::format(" Target Freq=%fMHz\n") % (target_freq/1e6) << boost::format(" Actual Freq=%fMHz\n") % (_lo_freq/1e6) << std::endl; //send the registers send_reg(0x0, 0x7); //FIXME: probably unnecessary to call get_locked here //get_locked(); return _lo_freq; } /*********************************************************************** * Gain Handling **********************************************************************/ /*! * Convert a requested gain for the BBG vga into the integer register value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return 4 bit the register value */ static int gain_to_bbg_vga_reg(double &gain){ int reg = boost::math::iround(dbsrx2_gain_ranges["BBG"].clip(gain)); gain = double(reg); UHD_LOGV(often) << boost::format("DBSRX2 BBG Gain:\n") << boost::format(" %f dB, bbg: %d") % gain % reg << std::endl; return reg; } /*! * Convert a requested gain for the GC1 rf vga into the dac_volts value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return dac voltage value */ static double gain_to_gc1_rfvga_dac(double &gain){ //clip the input gain = dbsrx2_gain_ranges["GC1"].clip(gain); //voltage level constants static const double max_volts = 0.5, min_volts = 2.7; static const double slope = (max_volts-min_volts)/dbsrx2_gain_ranges["GC1"].stop(); //calculate the voltage for the aux dac double dac_volts = gain*slope + min_volts; UHD_LOGV(often) << boost::format("DBSRX2 GC1 Gain:\n") << boost::format(" %f dB, dac_volts: %f V") % gain % dac_volts << std::endl; //the actual gain setting gain = (dac_volts - min_volts)/slope; return dac_volts; } double dbsrx2::set_gain(double gain, const std::string &name){ assert_has(dbsrx2_gain_ranges.keys(), name, "dbsrx2 gain name"); if (name == "BBG"){ _max2112_write_regs.bbg = gain_to_bbg_vga_reg(gain); send_reg(0x9, 0x9); } else if(name == "GC1"){ //write the new voltage to the aux dac this->get_iface()->write_aux_dac(dboard_iface::UNIT_RX, dboard_iface::AUX_DAC_A, gain_to_gc1_rfvga_dac(gain)); } else UHD_THROW_INVALID_CODE_PATH(); _gains[name] = gain; return gain; } /*********************************************************************** * Bandwidth Handling **********************************************************************/ double dbsrx2::set_bandwidth(double bandwidth){ //clip the input bandwidth = dbsrx2_bandwidth_range.clip(bandwidth); //convert complex bandpass to lowpass bandwidth bandwidth = bandwidth/2.0; _max2112_write_regs.lp = int((bandwidth/1e6 - 4)/0.29 + 12); _bandwidth = double(4 + (_max2112_write_regs.lp - 12) * 0.29)*1e6; UHD_LOGV(often) << boost::format("DBSRX2 Bandwidth:\n") << boost::format(" %f MHz, lp: %f V") % (_bandwidth/1e6) % int(_max2112_write_regs.lp) << std::endl; this->send_reg(0x8, 0x8); //convert lowpass back to complex bandpass bandwidth return 2.0*_bandwidth; } uhd-3.5.5/host/lib/usrp/dboard/db_rfx.cpp000066400000000000000000000512631224274632000202340ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // IO Pin functions #define POWER_IO (1 << 7) // Low enables power supply #define ANTSW_IO (1 << 6) // On TX DB, 0 = TX, 1 = RX, on RX DB 0 = main ant, 1 = RX2 #define MIXER_IO (1 << 5) // Enable appropriate mixer #define LOCKDET_MASK (1 << 2) // Input pin // Mixer constants #define MIXER_ENB MIXER_IO #define MIXER_DIS 0 // Antenna constants #define ANT_TX 0 //the tx line is transmitting #define ANT_RX ANTSW_IO //the tx line is receiving #define ANT_TXRX 0 //the rx line is on txrx #define ANT_RX2 ANTSW_IO //the rx line in on rx2 #define ANT_XX 0 //dont care how the antenna is set #include "adf4360_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The RFX Series constants **********************************************************************/ static const std::vector rfx_tx_antennas = list_of("TX/RX")("CAL"); static const std::vector rfx_rx_antennas = list_of("TX/RX")("RX2")("CAL"); static const uhd::dict rfx_rx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 70, 0.022)) ; static const uhd::dict rfx400_rx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 45, 0.022)) ; /*********************************************************************** * The RFX series of dboards **********************************************************************/ class rfx_xcvr : public xcvr_dboard_base{ public: rfx_xcvr( ctor_args_t args, const freq_range_t &freq_range, bool rx_div2, bool tx_div2 ); ~rfx_xcvr(void); private: const freq_range_t _freq_range; const uhd::dict _rx_gain_ranges; const uhd::dict _div2; std::string _rx_ant; uhd::dict _rx_gains; boost::uint16_t _power_up; void set_rx_ant(const std::string &ant); void set_tx_ant(const std::string &ant); double set_rx_gain(double gain, const std::string &name); /*! * Set the LO frequency for the particular dboard unit. * \param unit which unit rx or tx * \param target_freq the desired frequency in Hz * \return the actual frequency in Hz */ double set_lo_freq(dboard_iface::unit_t unit, double target_freq); /*! * Get the lock detect status of the LO. * \param unit which unit rx or tx * \return sensor for locked */ sensor_value_t get_locked(dboard_iface::unit_t unit){ const bool locked = (this->get_iface()->read_gpio(unit) & LOCKDET_MASK) != 0; return sensor_value_t("LO", locked, "locked", "unlocked"); } /*! * Removed incorrect/confusing RSSI calculation * Limited dynamic range of sensor makes this less useful */ }; /*********************************************************************** * Register the RFX dboards (min freq, max freq, rx div2, tx div2) **********************************************************************/ static dboard_base::sptr make_rfx_flex400(dboard_base::ctor_args_t args){ return dboard_base::sptr(new rfx_xcvr(args, freq_range_t(400e6, 500e6), true, true)); } static dboard_base::sptr make_rfx_flex900(dboard_base::ctor_args_t args){ return dboard_base::sptr(new rfx_xcvr(args, freq_range_t(750e6, 1050e6), true, true)); } static dboard_base::sptr make_rfx_flex1800(dboard_base::ctor_args_t args){ return dboard_base::sptr(new rfx_xcvr(args, freq_range_t(1500e6, 2100e6), false, false)); } static dboard_base::sptr make_rfx_flex1200(dboard_base::ctor_args_t args){ return dboard_base::sptr(new rfx_xcvr(args, freq_range_t(1150e6, 1450e6), true, true)); } static dboard_base::sptr make_rfx_flex2200(dboard_base::ctor_args_t args){ return dboard_base::sptr(new rfx_xcvr(args, freq_range_t(2000e6, 2400e6), false, false)); } static dboard_base::sptr make_rfx_flex2400(dboard_base::ctor_args_t args){ return dboard_base::sptr(new rfx_xcvr(args, freq_range_t(2300e6, 2900e6), false, false)); } UHD_STATIC_BLOCK(reg_rfx_dboards){ dboard_manager::register_dboard(0x0024, 0x0028, &make_rfx_flex400, "RFX400"); dboard_manager::register_dboard(0x0025, 0x0029, &make_rfx_flex900, "RFX900"); dboard_manager::register_dboard(0x0034, 0x0035, &make_rfx_flex1800, "RFX1800"); dboard_manager::register_dboard(0x0026, 0x002a, &make_rfx_flex1200, "RFX1200"); dboard_manager::register_dboard(0x002c, 0x002d, &make_rfx_flex2200, "RFX2200"); dboard_manager::register_dboard(0x0027, 0x002b, &make_rfx_flex2400, "RFX2400"); } /*********************************************************************** * Structors **********************************************************************/ rfx_xcvr::rfx_xcvr( ctor_args_t args, const freq_range_t &freq_range, bool rx_div2, bool tx_div2 ): xcvr_dboard_base(args), _freq_range(freq_range), _rx_gain_ranges((get_rx_id() == 0x0024)? rfx400_rx_gain_ranges : rfx_rx_gain_ranges ), _div2(map_list_of (dboard_iface::UNIT_RX, rx_div2) (dboard_iface::UNIT_TX, tx_div2) ), _power_up((get_rx_id() == 0x0024 && get_tx_id() == 0x0028) ? POWER_IO : 0) { //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// if(get_rx_id() == 0x0024) this->get_rx_subtree()->create("name").set("RFX400 RX"); else if(get_rx_id() == 0x0025) this->get_rx_subtree()->create("name").set("RFX900 RX"); else if(get_rx_id() == 0x0034) this->get_rx_subtree()->create("name").set("RFX1800 RX"); else if(get_rx_id() == 0x0026) this->get_rx_subtree()->create("name").set("RFX1200 RX"); else if(get_rx_id() == 0x002c) this->get_rx_subtree()->create("name").set("RFX2200 RX"); else if(get_rx_id() == 0x0027) this->get_rx_subtree()->create("name").set("RFX2400 RX"); else this->get_rx_subtree()->create("name").set("RFX RX"); this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&rfx_xcvr::get_locked, this, dboard_iface::UNIT_RX)); BOOST_FOREACH(const std::string &name, _rx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&rfx_xcvr::set_rx_gain, this, _1, name)) .set(_rx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(_rx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&rfx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, _1)) .set((_freq_range.start() + _freq_range.stop())/2.0); this->get_rx_subtree()->create("freq/range").set(_freq_range); this->get_rx_subtree()->create("antenna/value") .subscribe(boost::bind(&rfx_xcvr::set_rx_ant, this, _1)) .set("RX2"); this->get_rx_subtree()->create >("antenna/options") .set(rfx_rx_antennas); this->get_rx_subtree()->create("connection").set("QI"); this->get_rx_subtree()->create("enabled").set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset").set(false); this->get_rx_subtree()->create("bandwidth/value").set(2*20.0e6); //20MHz low-pass, we want complex double-sided this->get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(2*20.0e6, 2*20.0e6)); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// if(get_tx_id() == 0x0028) this->get_tx_subtree()->create("name").set("RFX400 TX"); else if(get_tx_id() == 0x0029) this->get_tx_subtree()->create("name").set("RFX900 TX"); else if(get_tx_id() == 0x0035) this->get_tx_subtree()->create("name").set("RFX1800 TX"); else if(get_tx_id() == 0x002a) this->get_tx_subtree()->create("name").set("RFX1200 TX"); else if(get_tx_id() == 0x002d) this->get_tx_subtree()->create("name").set("RFX2200 TX"); else if(get_tx_id() == 0x002b) this->get_tx_subtree()->create("name").set("RFX2400 TX"); else this->get_tx_subtree()->create("name").set("RFX TX"); this->get_tx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&rfx_xcvr::get_locked, this, dboard_iface::UNIT_TX)); this->get_tx_subtree()->create("gains"); //phony property so this dir exists this->get_tx_subtree()->create("freq/value") .coerce(boost::bind(&rfx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, _1)) .set((_freq_range.start() + _freq_range.stop())/2.0); this->get_tx_subtree()->create("freq/range").set(_freq_range); this->get_tx_subtree()->create("antenna/value") .subscribe(boost::bind(&rfx_xcvr::set_tx_ant, this, _1)).set(rfx_tx_antennas.at(0)); this->get_tx_subtree()->create >("antenna/options") .set(rfx_tx_antennas); this->get_tx_subtree()->create("connection").set("IQ"); this->get_tx_subtree()->create("enabled").set(true); //always enabled this->get_tx_subtree()->create("use_lo_offset").set(true); this->get_tx_subtree()->create("bandwidth/value").set(2*20.0e6); //20MHz low-pass, we want complex double-sided this->get_tx_subtree()->create("bandwidth/range") .set(freq_range_t(2*20.0e6, 2*20.0e6)); //enable the clocks that we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_TX, true); this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //set the gpio directions and atr controls (identically) boost::uint16_t output_enables = POWER_IO | ANTSW_IO | MIXER_IO; this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, output_enables); this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, output_enables); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, output_enables); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, output_enables); //setup the tx atr (this does not change with antenna) this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_IDLE, _power_up | ANT_XX | MIXER_DIS); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_RX_ONLY, _power_up | ANT_RX | MIXER_DIS); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_TX | MIXER_ENB); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_TX | MIXER_ENB); //setup the rx atr (this does not change with antenna) this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE, _power_up | ANT_XX | MIXER_DIS); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_XX | MIXER_DIS); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_RX2| MIXER_ENB); } rfx_xcvr::~rfx_xcvr(void){ /* NOP */ } /*********************************************************************** * Antenna Handling **********************************************************************/ void rfx_xcvr::set_rx_ant(const std::string &ant){ //validate input assert_has(rfx_rx_antennas, ant, "rfx rx antenna name"); //set the rx atr regs that change with antenna setting if (ant == "CAL") { this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_TXRX | MIXER_ENB); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_TXRX | MIXER_ENB); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, _power_up | MIXER_ENB | ANT_TXRX ); } else { this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_XX | MIXER_DIS); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_RX2| MIXER_ENB); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, _power_up | MIXER_ENB | ((ant == "TX/RX")? ANT_TXRX : ANT_RX2)); } //shadow the setting _rx_ant = ant; } void rfx_xcvr::set_tx_ant(const std::string &ant){ assert_has(rfx_tx_antennas, ant, "rfx tx antenna name"); //set the tx atr regs that change with antenna setting if (ant == "CAL") { this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_RX | MIXER_ENB); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_RX | MIXER_ENB); } else { this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, _power_up | ANT_TX | MIXER_ENB); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, _power_up | ANT_TX | MIXER_ENB); } } /*********************************************************************** * Gain Handling **********************************************************************/ static double rx_pga0_gain_to_dac_volts(double &gain, double range){ //voltage level constants (negative slope) static const double max_volts = .2, min_volts = 1.2; static const double slope = (max_volts-min_volts)/(range); //calculate the voltage for the aux dac double dac_volts = uhd::clip(gain*slope + min_volts, max_volts, min_volts); //the actual gain setting gain = (dac_volts - min_volts)/slope; return dac_volts; } double rfx_xcvr::set_rx_gain(double gain, const std::string &name){ assert_has(_rx_gain_ranges.keys(), name, "rfx rx gain name"); if(name == "PGA0"){ double dac_volts = rx_pga0_gain_to_dac_volts(gain, (_rx_gain_ranges["PGA0"].stop() - _rx_gain_ranges["PGA0"].start())); //write the new voltage to the aux dac this->get_iface()->write_aux_dac(dboard_iface::UNIT_RX, dboard_iface::AUX_DAC_A, dac_volts); return gain; } else UHD_THROW_INVALID_CODE_PATH(); } /*********************************************************************** * Tuning **********************************************************************/ double rfx_xcvr::set_lo_freq( dboard_iface::unit_t unit, double target_freq ){ UHD_LOGV(often) << boost::format( "RFX tune: target frequency %f Mhz" ) % (target_freq/1e6) << std::endl; //clip the input target_freq = _freq_range.clip(target_freq); if (_div2[unit]) target_freq *= 2; //rfx400 rx is a special case with div2 in mixer, so adf4360 must output fundamental bool is_rx_rfx400 = ((get_rx_id() == 0x0024) && unit != dboard_iface::UNIT_TX); //map prescalers to the register enums static const uhd::dict prescaler_to_enum = map_list_of (8, adf4360_regs_t::PRESCALER_VALUE_8_9) (16, adf4360_regs_t::PRESCALER_VALUE_16_17) (32, adf4360_regs_t::PRESCALER_VALUE_32_33) ; //map band select clock dividers to enums static const uhd::dict bandsel_to_enum = map_list_of (1, adf4360_regs_t::BAND_SELECT_CLOCK_DIV_1) (2, adf4360_regs_t::BAND_SELECT_CLOCK_DIV_2) (4, adf4360_regs_t::BAND_SELECT_CLOCK_DIV_4) (8, adf4360_regs_t::BAND_SELECT_CLOCK_DIV_8) ; double actual_freq=0, ref_freq = this->get_iface()->get_clock_rate(unit); int R=0, BS=0, P=0, B=0, A=0; /* * The goal here to to loop though possible R dividers, * band select clock dividers, and prescaler values. * Calculate the A and B counters for each set of values. * The loop exits when it meets all of the constraints. * The resulting loop values are loaded into the registers. * * fvco = [P*B + A] * fref/R * fvco*R/fref = P*B + A = N */ for(R = 2; R <= 32; R+=2){ BOOST_FOREACH(BS, bandsel_to_enum.keys()){ if (ref_freq/R/BS > 1e6) continue; //constraint on band select clock BOOST_FOREACH(P, prescaler_to_enum.keys()){ //calculate B and A from N double N = target_freq*R/ref_freq; B = int(std::floor(N/P)); A = boost::math::iround(N - P*B); if (B < A or B > 8191 or B < 3 or A > 31) continue; //constraints on A, B //calculate the actual frequency actual_freq = double(P*B + A)*ref_freq/R; if (actual_freq/P > 300e6) continue; //constraint on prescaler output //constraints met: exit loop goto done_loop; } } } done_loop: UHD_LOGV(often) << boost::format( "RFX tune: R=%d, BS=%d, P=%d, B=%d, A=%d, DIV2=%d" ) % R % BS % P % B % A % int(_div2[unit] && (!is_rx_rfx400)) << std::endl; //load the register values adf4360_regs_t regs; regs.core_power_level = adf4360_regs_t::CORE_POWER_LEVEL_10MA; regs.counter_operation = adf4360_regs_t::COUNTER_OPERATION_NORMAL; regs.muxout_control = adf4360_regs_t::MUXOUT_CONTROL_DLD; regs.phase_detector_polarity = adf4360_regs_t::PHASE_DETECTOR_POLARITY_POS; regs.charge_pump_output = adf4360_regs_t::CHARGE_PUMP_OUTPUT_NORMAL; regs.cp_gain_0 = adf4360_regs_t::CP_GAIN_0_SET1; regs.mute_till_ld = adf4360_regs_t::MUTE_TILL_LD_ENB; regs.output_power_level = adf4360_regs_t::OUTPUT_POWER_LEVEL_3_5MA; regs.current_setting1 = adf4360_regs_t::CURRENT_SETTING1_0_31MA; regs.current_setting2 = adf4360_regs_t::CURRENT_SETTING2_0_31MA; regs.power_down = adf4360_regs_t::POWER_DOWN_NORMAL_OP; regs.prescaler_value = prescaler_to_enum[P]; regs.a_counter = A; regs.b_counter = B; regs.cp_gain_1 = adf4360_regs_t::CP_GAIN_1_SET1; regs.divide_by_2_output = (_div2[unit] && (!is_rx_rfx400)) ? // Special case RFX400 RX Mixer divides by two adf4360_regs_t::DIVIDE_BY_2_OUTPUT_DIV2 : adf4360_regs_t::DIVIDE_BY_2_OUTPUT_FUND ; regs.divide_by_2_prescaler = adf4360_regs_t::DIVIDE_BY_2_PRESCALER_FUND; regs.r_counter = R; regs.ablpw = adf4360_regs_t::ABLPW_3_0NS; regs.lock_detect_precision = adf4360_regs_t::LOCK_DETECT_PRECISION_5CYCLES; regs.test_mode_bit = 0; regs.band_select_clock_div = bandsel_to_enum[BS]; //write the registers std::vector addrs = list_of //correct power-up sequence to write registers (R, C, N) (adf4360_regs_t::ADDR_RCOUNTER) (adf4360_regs_t::ADDR_CONTROL) (adf4360_regs_t::ADDR_NCOUNTER) ; BOOST_FOREACH(adf4360_regs_t::addr_t addr, addrs){ this->get_iface()->write_spi( unit, spi_config_t::EDGE_RISE, regs.get_reg(addr), 24 ); } //return the actual frequency if (_div2[unit]) actual_freq /= 2; UHD_LOGV(often) << boost::format( "RFX tune: actual frequency %f Mhz" ) % (actual_freq/1e6) << std::endl; return actual_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_sbx_common.cpp000066400000000000000000000363201224274632000215760ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "db_sbx_common.hpp" using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * Register the SBX dboard (min freq, max freq, rx div2, tx div2) **********************************************************************/ static dboard_base::sptr make_sbx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new sbx_xcvr(args)); } UHD_STATIC_BLOCK(reg_sbx_dboards){ dboard_manager::register_dboard(0x0054, 0x0055, &make_sbx, "SBX"); dboard_manager::register_dboard(0x0065, 0x0064, &make_sbx, "SBX v4"); } /*********************************************************************** * Gain Handling **********************************************************************/ static int rx_pga0_gain_to_iobits(double &gain){ //clip the input gain = sbx_rx_gain_ranges["PGA0"].clip(gain); //convert to attenuation and update iobits for atr double attn = sbx_rx_gain_ranges["PGA0"].stop() - gain; //calculate the RX attenuation int attn_code = int(floor(attn*2)); int iobits = ((~attn_code) << RX_ATTN_SHIFT) & RX_ATTN_MASK; UHD_LOGV(often) << boost::format( "SBX TX Attenuation: %f dB, Code: %d, IO Bits %x, Mask: %x" ) % attn % attn_code % (iobits & RX_ATTN_MASK) % RX_ATTN_MASK << std::endl; //the actual gain setting gain = sbx_rx_gain_ranges["PGA0"].stop() - double(attn_code)/2; return iobits; } static int tx_pga0_gain_to_iobits(double &gain){ //clip the input gain = sbx_tx_gain_ranges["PGA0"].clip(gain); //convert to attenuation and update iobits for atr double attn = sbx_tx_gain_ranges["PGA0"].stop() - gain; //calculate the TX attenuation int attn_code = int(floor(attn*2)); int iobits = ((~attn_code) << TX_ATTN_SHIFT) & TX_ATTN_MASK; UHD_LOGV(often) << boost::format( "SBX TX Attenuation: %f dB, Code: %d, IO Bits %x, Mask: %x" ) % attn % attn_code % (iobits & TX_ATTN_MASK) % TX_ATTN_MASK << std::endl; //the actual gain setting gain = sbx_tx_gain_ranges["PGA0"].stop() - double(attn_code)/2; return iobits; } double sbx_xcvr::set_tx_gain(double gain, const std::string &name){ assert_has(sbx_tx_gain_ranges.keys(), name, "sbx tx gain name"); if(name == "PGA0"){ tx_pga0_gain_to_iobits(gain); _tx_gains[name] = gain; //write the new gain to atr regs update_atr(); } else UHD_THROW_INVALID_CODE_PATH(); return _tx_gains[name]; } double sbx_xcvr::set_rx_gain(double gain, const std::string &name){ assert_has(sbx_rx_gain_ranges.keys(), name, "sbx rx gain name"); if(name == "PGA0"){ rx_pga0_gain_to_iobits(gain); _rx_gains[name] = gain; //write the new gain to atr regs update_atr(); } else UHD_THROW_INVALID_CODE_PATH(); return _rx_gains[name]; } /*********************************************************************** * Structors **********************************************************************/ sbx_xcvr::sbx_xcvr(ctor_args_t args) : xcvr_dboard_base(args){ switch(get_rx_id().to_uint16()) { case 0x054: db_actual = sbx_versionx_sptr(new sbx_version3(this)); break; case 0x065: db_actual = sbx_versionx_sptr(new sbx_version4(this)); break; default: /* We didn't recognize the version of the board... */ UHD_THROW_INVALID_CODE_PATH(); } //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// if(get_rx_id() == 0x054) this->get_rx_subtree()->create("name").set("SBXv3 RX"); else if(get_rx_id() == 0x065) this->get_rx_subtree()->create("name").set("SBXv4 RX"); else this->get_rx_subtree()->create("name").set("SBX RX"); this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_RX)); BOOST_FOREACH(const std::string &name, sbx_rx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&sbx_xcvr::set_rx_gain, this, _1, name)) .set(sbx_rx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(sbx_rx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_RX, _1)) .set((sbx_freq_range.start() + sbx_freq_range.stop())/2.0); this->get_rx_subtree()->create("freq/range").set(sbx_freq_range); this->get_rx_subtree()->create("antenna/value") .subscribe(boost::bind(&sbx_xcvr::set_rx_ant, this, _1)) .set("RX2"); this->get_rx_subtree()->create >("antenna/options") .set(sbx_rx_antennas); this->get_rx_subtree()->create("connection").set("IQ"); this->get_rx_subtree()->create("enabled").set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset").set(false); this->get_rx_subtree()->create("bandwidth/value").set(2*20.0e6); //20MHz low-pass, we want complex double-sided this->get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(2*20.0e6, 2*20.0e6)); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// if(get_tx_id() == 0x055) this->get_tx_subtree()->create("name").set("SBXv3 TX"); else if(get_tx_id() == 0x067) this->get_tx_subtree()->create("name").set("SBXv4 TX"); else this->get_tx_subtree()->create("name").set("SBX TX"); this->get_tx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&sbx_xcvr::get_locked, this, dboard_iface::UNIT_TX)); BOOST_FOREACH(const std::string &name, sbx_tx_gain_ranges.keys()){ this->get_tx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&sbx_xcvr::set_tx_gain, this, _1, name)) .set(sbx_tx_gain_ranges[name].start()); this->get_tx_subtree()->create("gains/"+name+"/range") .set(sbx_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") .coerce(boost::bind(&sbx_xcvr::set_lo_freq, this, dboard_iface::UNIT_TX, _1)) .set((sbx_freq_range.start() + sbx_freq_range.stop())/2.0); this->get_tx_subtree()->create("freq/range").set(sbx_freq_range); this->get_tx_subtree()->create("antenna/value") .subscribe(boost::bind(&sbx_xcvr::set_tx_ant, this, _1)) .set(sbx_tx_antennas.at(0)); this->get_tx_subtree()->create >("antenna/options") .set(sbx_tx_antennas); this->get_tx_subtree()->create("connection").set("QI"); this->get_tx_subtree()->create("enabled").set(true); //always enabled this->get_tx_subtree()->create("use_lo_offset").set(false); this->get_tx_subtree()->create("bandwidth/value").set(2*20.0e6); //20MHz low-pass, we want complex double-sided this->get_tx_subtree()->create("bandwidth/range") .set(freq_range_t(2*20.0e6, 2*20.0e6)); //enable the clocks that we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_TX, true); this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //set the gpio directions and atr controls (identically) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, (TXIO_MASK|TX_LED_IO)); this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, (RXIO_MASK|RX_LED_IO)); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, (TXIO_MASK|TX_LED_IO)); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, (RXIO_MASK|RX_LED_IO)); //flash LEDs flash_leds(); UHD_LOGV(often) << boost::format( "SBX GPIO Direction: RX: 0x%08x, TX: 0x%08x" ) % RXIO_MASK % TXIO_MASK << std::endl; } sbx_xcvr::~sbx_xcvr(void){ /* NOP */ } /*********************************************************************** * Antenna Handling **********************************************************************/ void sbx_xcvr::update_atr(void){ //calculate atr pins int rx_pga0_iobits = rx_pga0_gain_to_iobits(_rx_gains["PGA0"]); int tx_pga0_iobits = tx_pga0_gain_to_iobits(_tx_gains["PGA0"]); int rx_lo_lpf_en = (_rx_lo_freq == sbx_enable_rx_lo_filter.clip(_rx_lo_freq)) ? LO_LPF_EN : 0; int tx_lo_lpf_en = (_tx_lo_freq == sbx_enable_tx_lo_filter.clip(_tx_lo_freq)) ? LO_LPF_EN : 0; int rx_ld_led = _rx_lo_lock_cache ? 0 : RX_LED_LD; int tx_ld_led = _tx_lo_lock_cache ? 0 : TX_LED_LD; int rx_ant_led = _rx_ant == "TX/RX" ? RX_LED_RX1RX2 : 0; int tx_ant_led = _tx_ant == "TX/RX" ? 0 : TX_LED_TXRX; //setup the tx atr (this does not change with antenna) this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_IDLE, 0 | tx_lo_lpf_en \ | tx_ld_led | tx_ant_led | TX_POWER_UP | ANT_XX | TX_MIXER_DIS); //setup the rx atr (this does not change with antenna) this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_IDLE, rx_pga0_iobits | rx_lo_lpf_en \ | rx_ld_led | rx_ant_led | RX_POWER_UP | ANT_XX | RX_MIXER_DIS); //set the RX atr regs that change with antenna setting this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_RX_ONLY, rx_pga0_iobits | rx_lo_lpf_en \ | rx_ld_led | rx_ant_led | RX_POWER_UP | RX_MIXER_ENB \ | ((_rx_ant != "RX2")? ANT_TXRX : ANT_RX2)); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_TX_ONLY, rx_pga0_iobits | rx_lo_lpf_en \ | rx_ld_led | rx_ant_led | RX_POWER_UP | RX_MIXER_DIS \ | ((_rx_ant == "CAL")? ANT_TXRX : ANT_RX2)); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_FULL_DUPLEX, rx_pga0_iobits | rx_lo_lpf_en \ | rx_ld_led | rx_ant_led | RX_POWER_UP | RX_MIXER_ENB \ | ((_rx_ant == "CAL")? ANT_TXRX : ANT_RX2)); //set the TX atr regs that change with antenna setting this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_RX_ONLY, 0 | tx_lo_lpf_en \ | tx_ld_led | tx_ant_led | TX_POWER_UP | TX_MIXER_DIS \ | ((_rx_ant != "RX2")? ANT_RX : ANT_TX)); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_TX_ONLY, tx_pga0_iobits | tx_lo_lpf_en \ | tx_ld_led | tx_ant_led | TX_POWER_UP | TX_MIXER_ENB \ | ((_tx_ant == "CAL")? ANT_RX : ANT_TX)); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_FULL_DUPLEX, tx_pga0_iobits | tx_lo_lpf_en \ | tx_ld_led | tx_ant_led | TX_POWER_UP | TX_MIXER_ENB \ | ((_tx_ant == "CAL")? ANT_RX : ANT_TX)); } void sbx_xcvr::set_rx_ant(const std::string &ant){ //validate input assert_has(sbx_rx_antennas, ant, "sbx rx antenna name"); //shadow the setting _rx_ant = ant; //write the new antenna setting to atr regs update_atr(); } void sbx_xcvr::set_tx_ant(const std::string &ant){ assert_has(sbx_tx_antennas, ant, "sbx tx antenna name"); //shadow the setting _tx_ant = ant; //write the new antenna setting to atr regs update_atr(); } /*********************************************************************** * Tuning **********************************************************************/ double sbx_xcvr::set_lo_freq(dboard_iface::unit_t unit, double target_freq) { const double actual = db_actual->set_lo_freq(unit, target_freq); if (unit == dboard_iface::UNIT_RX){ _rx_lo_lock_cache = false; _rx_lo_freq = actual; } if (unit == dboard_iface::UNIT_TX){ _tx_lo_lock_cache = false; _tx_lo_freq = actual; } update_atr(); return actual; } sensor_value_t sbx_xcvr::get_locked(dboard_iface::unit_t unit) { const bool locked = (this->get_iface()->read_gpio(unit) & LOCKDET_MASK) != 0; if (unit == dboard_iface::UNIT_RX) _rx_lo_lock_cache = locked; if (unit == dboard_iface::UNIT_TX) _tx_lo_lock_cache = locked; //write the new lock cache setting to atr regs update_atr(); return sensor_value_t("LO", locked, "locked", "unlocked"); } void sbx_xcvr::flash_leds(void) { //Remove LED gpios from ATR control temporarily and set to outputs this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, TXIO_MASK); this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, RXIO_MASK); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, (TXIO_MASK|RX_LED_IO)); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, (RXIO_MASK|RX_LED_IO)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, TX_LED_LD, TX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, \ TX_LED_TXRX|TX_LED_LD, TX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, RX_LED_LD, RX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, \ RX_LED_RX1RX2|RX_LED_LD, RX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, RX_LED_LD, RX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, 0, RX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, TX_LED_LD, TX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); this->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, 0, TX_LED_IO); boost::this_thread::sleep(boost::posix_time::milliseconds(100)); //Put LED gpios back in ATR control and update atr this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, (TXIO_MASK|TX_LED_IO)); this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, (RXIO_MASK|RX_LED_IO)); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, (TXIO_MASK|TX_LED_IO)); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, (RXIO_MASK|RX_LED_IO)); } uhd-3.5.5/host/lib/usrp/dboard/db_sbx_common.hpp000066400000000000000000000171571224274632000216120ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Common IO Pins #define LO_LPF_EN (1 << 15) #define SYNTH_CE (1 << 3) #define SYNTH_PDBRF (1 << 2) #define SYNTH_MUXOUT (1 << 1) // INPUT!!! #define LOCKDET_MASK (1 << 0) // INPUT!!! // TX IO Pins #define TRSW (1 << 14) // 0 = TX, 1 = RX #define TX_LED_TXRX (1 << 7) // LED for TX Antenna Selection TX/RX #define TX_LED_LD (1 << 6) // LED for TX Lock Detect #define DIS_POWER_TX (1 << 5) // on UNIT_TX, 0 powers up TX #define TX_ENABLE (1 << 4) // on UNIT_TX, 0 disables TX Mixer // RX IO Pins #define LNASW (1 << 14) // 0 = TX/RX, 1 = RX2 #define RX_LED_RX1RX2 (1 << 7) // LED for RX Antenna Selection RX1/RX2 #define RX_LED_LD (1 << 6) // LED for RX Lock Detect #define DIS_POWER_RX (1 << 5) // on UNIT_RX, 0 powers up RX #define RX_DISABLE (1 << 4) // on UNIT_RX, 1 disables RX Mixer and Baseband // RX Attenuator Pins #define RX_ATTN_SHIFT 8 // lsb of RX Attenuator Control #define RX_ATTN_MASK (63 << RX_ATTN_SHIFT) // valid bits of RX Attenuator Control // TX Attenuator Pins #define TX_ATTN_SHIFT 8 // lsb of TX Attenuator Control #define TX_ATTN_MASK (63 << TX_ATTN_SHIFT) // valid bits of TX Attenuator Control // Mixer functions #define TX_MIXER_ENB (SYNTH_PDBRF|TX_ENABLE) #define TX_MIXER_DIS 0 #define RX_MIXER_ENB (SYNTH_PDBRF) #define RX_MIXER_DIS 0 // Pin functions #define TX_LED_IO (TX_LED_TXRX|TX_LED_LD) // LED gpio lines, pull down for LED #define TXIO_MASK (LO_LPF_EN|TRSW|SYNTH_CE|SYNTH_PDBRF|TX_ATTN_MASK|DIS_POWER_TX|TX_ENABLE) #define RX_LED_IO (RX_LED_RX1RX2|RX_LED_LD) // LED gpio lines, pull down for LED #define RXIO_MASK (LO_LPF_EN|LNASW|SYNTH_CE|SYNTH_PDBRF|RX_ATTN_MASK|DIS_POWER_RX|RX_DISABLE) // Power functions #define TX_POWER_UP (SYNTH_CE) #define TX_POWER_DOWN (DIS_POWER_TX) #define RX_POWER_UP (SYNTH_CE) #define RX_POWER_DOWN (DIS_POWER_RX) // Antenna constants #define ANT_TX TRSW //the tx line is transmitting #define ANT_RX 0 //the tx line is receiving #define ANT_TXRX 0 //the rx line is on txrx #define ANT_RX2 LNASW //the rx line in on rx2 #define ANT_XX LNASW //dont care how the antenna is set #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The SBX dboard constants **********************************************************************/ static const freq_range_t sbx_freq_range(400e6, 4.4e9); static const freq_range_t sbx_tx_lo_2dbm = list_of (range_t(0.35e9, 0.37e9)) ; static const freq_range_t sbx_enable_tx_lo_filter = list_of (range_t(0.4e9, 1.5e9)) ; static const freq_range_t sbx_enable_rx_lo_filter = list_of (range_t(0.4e9, 1.5e9)) ; static const std::vector sbx_tx_antennas = list_of("TX/RX")("CAL"); static const std::vector sbx_rx_antennas = list_of("TX/RX")("RX2")("CAL"); static const uhd::dict sbx_tx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 31.5, double(0.5))) ; static const uhd::dict sbx_rx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 31.5, double(0.5))) ; /*********************************************************************** * The SBX dboard **********************************************************************/ class sbx_xcvr : public xcvr_dboard_base{ public: sbx_xcvr(ctor_args_t args); ~sbx_xcvr(void); protected: uhd::dict _tx_gains, _rx_gains; double _rx_lo_freq, _tx_lo_freq; std::string _tx_ant, _rx_ant; bool _rx_lo_lock_cache, _tx_lo_lock_cache; void set_rx_ant(const std::string &ant); void set_tx_ant(const std::string &ant); double set_rx_gain(double gain, const std::string &name); double set_tx_gain(double gain, const std::string &name); void update_atr(void); /*! * Set the LO frequency for the particular dboard unit. * \param unit which unit rx or tx * \param target_freq the desired frequency in Hz * \return the actual frequency in Hz */ virtual double set_lo_freq(dboard_iface::unit_t unit, double target_freq); /*! * Get the lock detect status of the LO. * \param unit which unit rx or tx * \return true for locked */ sensor_value_t get_locked(dboard_iface::unit_t unit); /*! * Flash the LEDs */ void flash_leds(void); /*! * Version-agnostic ABC that wraps version-specific implementations of the * WBX base daughterboard. * * This class is an abstract base class, and thus is impossible to * instantiate. */ class sbx_versionx { public: sbx_versionx() {} ~sbx_versionx(void) {} virtual double set_lo_freq(dboard_iface::unit_t unit, double target_freq) = 0; }; /*! * Version 3 of the SBX Daughterboard */ class sbx_version3 : public sbx_versionx { public: sbx_version3(sbx_xcvr *_self_sbx_xcvr); ~sbx_version3(void); double set_lo_freq(dboard_iface::unit_t unit, double target_freq); /*! This is the registered instance of the wrapper class, sbx_base. */ sbx_xcvr *self_base; }; /*! * Version 4 of the SBX Daughterboard * * The only difference in the fourth revision is the ADF4351 vs the ADF4350. */ class sbx_version4 : public sbx_versionx { public: sbx_version4(sbx_xcvr *_self_sbx_xcvr); ~sbx_version4(void); double set_lo_freq(dboard_iface::unit_t unit, double target_freq); /*! This is the registered instance of the wrapper class, sbx_base. */ sbx_xcvr *self_base; }; /*! * Handle to the version-specific implementation of the SBX. * * Since many of this class's functions are dependent on the version of the * SBX board, this class will instantiate an object of the appropriate * sbx_version* subclass, and invoke any relevant functions through that * object. This pointer is set to the proper object at construction time. */ typedef boost::shared_ptr sbx_versionx_sptr; sbx_versionx_sptr db_actual; }; uhd-3.5.5/host/lib/usrp/dboard/db_sbx_version3.cpp000066400000000000000000000163331224274632000220600ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "adf4350_regs.hpp" #include "db_sbx_common.hpp" using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * Structors **********************************************************************/ sbx_xcvr::sbx_version3::sbx_version3(sbx_xcvr *_self_sbx_xcvr) { //register the handle to our base SBX class self_base = _self_sbx_xcvr; } sbx_xcvr::sbx_version3::~sbx_version3(void){ /* NOP */ } /*********************************************************************** * Tuning **********************************************************************/ double sbx_xcvr::sbx_version3::set_lo_freq(dboard_iface::unit_t unit, double target_freq) { UHD_LOGV(often) << boost::format( "SBX tune: target frequency %f Mhz" ) % (target_freq/1e6) << std::endl; //clip the input target_freq = sbx_freq_range.clip(target_freq); //map prescaler setting to mininmum integer divider (N) values (pg.18 prescaler) static const uhd::dict prescaler_to_min_int_div = map_list_of (0,23) //adf4350_regs_t::PRESCALER_4_5 (1,75) //adf4350_regs_t::PRESCALER_8_9 ; //map rf divider select output dividers to enums static const uhd::dict rfdivsel_to_enum = map_list_of (1, adf4350_regs_t::RF_DIVIDER_SELECT_DIV1) (2, adf4350_regs_t::RF_DIVIDER_SELECT_DIV2) (4, adf4350_regs_t::RF_DIVIDER_SELECT_DIV4) (8, adf4350_regs_t::RF_DIVIDER_SELECT_DIV8) (16, adf4350_regs_t::RF_DIVIDER_SELECT_DIV16) ; double actual_freq, pfd_freq; double ref_freq = self_base->get_iface()->get_clock_rate(unit); int R=0, BS=0, N=0, FRAC=0, MOD=0; int RFdiv = 1; adf4350_regs_t::reference_divide_by_2_t T = adf4350_regs_t::REFERENCE_DIVIDE_BY_2_DISABLED; adf4350_regs_t::reference_doubler_t D = adf4350_regs_t::REFERENCE_DOUBLER_DISABLED; //Reference doubler for 50% duty cycle // if ref_freq < 12.5MHz enable regs.reference_divide_by_2 if(ref_freq <= 12.5e6) D = adf4350_regs_t::REFERENCE_DOUBLER_ENABLED; //increase RF divider until acceptable VCO frequency double vco_freq = target_freq; while (vco_freq < 2.2e9) { vco_freq *= 2; RFdiv *= 2; } //use 8/9 prescaler for vco_freq > 3 GHz (pg.18 prescaler) adf4350_regs_t::prescaler_t prescaler = target_freq > 3e9 ? adf4350_regs_t::PRESCALER_8_9 : adf4350_regs_t::PRESCALER_4_5; /* * The goal here is to loop though possible R dividers, * band select clock dividers, N (int) dividers, and FRAC * (frac) dividers. * * Calculate the N and F dividers for each set of values. * The loop exits when it meets all of the constraints. * The resulting loop values are loaded into the registers. * * from pg.21 * * f_pfd = f_ref*(1+D)/(R*(1+T)) * f_vco = (N + (FRAC/MOD))*f_pfd * N = f_vco/f_pfd - FRAC/MOD = f_vco*((R*(T+1))/(f_ref*(1+D))) - FRAC/MOD * f_rf = f_vco/RFdiv) * f_actual = f_rf/2 */ for(R = 1; R <= 1023; R+=1){ //PFD input frequency = f_ref/R ... ignoring Reference doubler/divide-by-2 (D & T) pfd_freq = ref_freq*(1+D)/(R*(1+T)); //keep the PFD frequency at or below 25MHz (Loop Filter Bandwidth) if (pfd_freq > 25e6) continue; //ignore fractional part of tuning N = int(std::floor(target_freq/pfd_freq)); //keep N > minimum int divider requirement if (N < prescaler_to_min_int_div[prescaler]) continue; for(BS=1; BS <= 255; BS+=1){ //keep the band select frequency at or below 100KHz //constraint on band select clock if (pfd_freq/BS > 100e3) continue; goto done_loop; } } done_loop: //Fractional-N calculation MOD = 4095; //max fractional accuracy FRAC = int((target_freq/pfd_freq - N)*MOD); //Reference divide-by-2 for 50% duty cycle // if R even, move one divide by 2 to to regs.reference_divide_by_2 if(R % 2 == 0){ T = adf4350_regs_t::REFERENCE_DIVIDE_BY_2_ENABLED; R /= 2; } //actual frequency calculation actual_freq = double((N + (double(FRAC)/double(MOD)))*ref_freq*(1+int(D))/(R*(1+int(T)))); UHD_LOGV(often) << boost::format("SBX Intermediates: ref=%0.2f, outdiv=%f, fbdiv=%f") % (ref_freq*(1+int(D))/(R*(1+int(T)))) % double(RFdiv*2) % double(N + double(FRAC)/double(MOD)) << std::endl << boost::format("SBX tune: R=%d, BS=%d, N=%d, FRAC=%d, MOD=%d, T=%d, D=%d, RFdiv=%d" ) % R % BS % N % FRAC % MOD % T % D % RFdiv << std::endl << boost::format("SBX Frequencies (MHz): REQ=%0.2f, ACT=%0.2f, VCO=%0.2f, PFD=%0.2f, BAND=%0.2f" ) % (target_freq/1e6) % (actual_freq/1e6) % (vco_freq/1e6) % (pfd_freq/1e6) % (pfd_freq/BS/1e6) << std::endl; //load the register values adf4350_regs_t regs; if ((unit == dboard_iface::UNIT_TX) and (actual_freq == sbx_tx_lo_2dbm.clip(actual_freq))) regs.output_power = adf4350_regs_t::OUTPUT_POWER_2DBM; else regs.output_power = adf4350_regs_t::OUTPUT_POWER_5DBM; regs.frac_12_bit = FRAC; regs.int_16_bit = N; regs.mod_12_bit = MOD; regs.clock_divider_12_bit = std::max(1, int(std::ceil(400e-6*pfd_freq/MOD))); regs.feedback_select = adf4350_regs_t::FEEDBACK_SELECT_DIVIDED; regs.clock_div_mode = adf4350_regs_t::CLOCK_DIV_MODE_RESYNC_ENABLE; regs.prescaler = prescaler; regs.r_counter_10_bit = R; regs.reference_divide_by_2 = T; regs.reference_doubler = D; regs.band_select_clock_div = BS; UHD_ASSERT_THROW(rfdivsel_to_enum.has_key(RFdiv)); regs.rf_divider_select = rfdivsel_to_enum[RFdiv]; //reset the N and R counter regs.counter_reset = adf4350_regs_t::COUNTER_RESET_ENABLED; self_base->get_iface()->write_spi(unit, spi_config_t::EDGE_RISE, regs.get_reg(2), 32); regs.counter_reset = adf4350_regs_t::COUNTER_RESET_DISABLED; //write the registers //correct power-up sequence to write registers (5, 4, 3, 2, 1, 0) int addr; for(addr=5; addr>=0; addr--){ UHD_LOGV(often) << boost::format( "SBX SPI Reg (0x%02x): 0x%08x" ) % addr % regs.get_reg(addr) << std::endl; self_base->get_iface()->write_spi( unit, spi_config_t::EDGE_RISE, regs.get_reg(addr), 32 ); } //return the actual frequency UHD_LOGV(often) << boost::format( "SBX tune: actual frequency %f Mhz" ) % (actual_freq/1e6) << std::endl; return actual_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_sbx_version4.cpp000066400000000000000000000165051224274632000220620ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "adf4351_regs.hpp" #include "db_sbx_common.hpp" using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * Structors **********************************************************************/ sbx_xcvr::sbx_version4::sbx_version4(sbx_xcvr *_self_sbx_xcvr) { //register the handle to our base SBX class self_base = _self_sbx_xcvr; } sbx_xcvr::sbx_version4::~sbx_version4(void){ /* NOP */ } /*********************************************************************** * Tuning **********************************************************************/ double sbx_xcvr::sbx_version4::set_lo_freq(dboard_iface::unit_t unit, double target_freq) { UHD_LOGV(often) << boost::format( "SBX tune: target frequency %f Mhz" ) % (target_freq/1e6) << std::endl; //clip the input target_freq = sbx_freq_range.clip(target_freq); //map prescaler setting to mininmum integer divider (N) values (pg.18 prescaler) static const uhd::dict prescaler_to_min_int_div = map_list_of (0,23) //adf4351_regs_t::PRESCALER_4_5 (1,75) //adf4351_regs_t::PRESCALER_8_9 ; //map rf divider select output dividers to enums static const uhd::dict rfdivsel_to_enum = map_list_of (1, adf4351_regs_t::RF_DIVIDER_SELECT_DIV1) (2, adf4351_regs_t::RF_DIVIDER_SELECT_DIV2) (4, adf4351_regs_t::RF_DIVIDER_SELECT_DIV4) (8, adf4351_regs_t::RF_DIVIDER_SELECT_DIV8) (16, adf4351_regs_t::RF_DIVIDER_SELECT_DIV16) (32, adf4351_regs_t::RF_DIVIDER_SELECT_DIV32) (64, adf4351_regs_t::RF_DIVIDER_SELECT_DIV64) ; double actual_freq, pfd_freq; double ref_freq = self_base->get_iface()->get_clock_rate(unit); int R=0, BS=0, N=0, FRAC=0, MOD=0; int RFdiv = 1; adf4351_regs_t::reference_divide_by_2_t T = adf4351_regs_t::REFERENCE_DIVIDE_BY_2_DISABLED; adf4351_regs_t::reference_doubler_t D = adf4351_regs_t::REFERENCE_DOUBLER_DISABLED; //Reference doubler for 50% duty cycle // if ref_freq < 12.5MHz enable regs.reference_divide_by_2 if(ref_freq <= 12.5e6) D = adf4351_regs_t::REFERENCE_DOUBLER_ENABLED; //increase RF divider until acceptable VCO frequency double vco_freq = target_freq; while (vco_freq < 2.2e9) { vco_freq *= 2; RFdiv *= 2; } //use 8/9 prescaler for vco_freq > 3 GHz (pg.18 prescaler) adf4351_regs_t::prescaler_t prescaler = target_freq > 3e9 ? adf4351_regs_t::PRESCALER_8_9 : adf4351_regs_t::PRESCALER_4_5; /* * The goal here is to loop though possible R dividers, * band select clock dividers, N (int) dividers, and FRAC * (frac) dividers. * * Calculate the N and F dividers for each set of values. * The loop exits when it meets all of the constraints. * The resulting loop values are loaded into the registers. * * from pg.21 * * f_pfd = f_ref*(1+D)/(R*(1+T)) * f_vco = (N + (FRAC/MOD))*f_pfd * N = f_vco/f_pfd - FRAC/MOD = f_vco*((R*(T+1))/(f_ref*(1+D))) - FRAC/MOD * f_rf = f_vco/RFdiv) * f_actual = f_rf/2 */ for(R = 1; R <= 1023; R+=1){ //PFD input frequency = f_ref/R ... ignoring Reference doubler/divide-by-2 (D & T) pfd_freq = ref_freq*(1+D)/(R*(1+T)); //keep the PFD frequency at or below 25MHz (Loop Filter Bandwidth) if (pfd_freq > 25e6) continue; //ignore fractional part of tuning N = int(std::floor(vco_freq/pfd_freq)); //keep N > minimum int divider requirement if (N < prescaler_to_min_int_div[prescaler]) continue; for(BS=1; BS <= 255; BS+=1){ //keep the band select frequency at or below 100KHz //constraint on band select clock if (pfd_freq/BS > 100e3) continue; goto done_loop; } } done_loop: //Fractional-N calculation MOD = 4095; //max fractional accuracy FRAC = int((target_freq/pfd_freq - N)*MOD); //Reference divide-by-2 for 50% duty cycle // if R even, move one divide by 2 to to regs.reference_divide_by_2 if(R % 2 == 0){ T = adf4351_regs_t::REFERENCE_DIVIDE_BY_2_ENABLED; R /= 2; } //actual frequency calculation actual_freq = double((N + (double(FRAC)/double(MOD)))*ref_freq*(1+int(D))/(R*(1+int(T)))); UHD_LOGV(often) << boost::format("SBX Intermediates: ref=%0.2f, outdiv=%f, fbdiv=%f") % (ref_freq*(1+int(D))/(R*(1+int(T)))) % double(RFdiv*2) % double(N + double(FRAC)/double(MOD)) << std::endl << boost::format("SBX tune: R=%d, BS=%d, N=%d, FRAC=%d, MOD=%d, T=%d, D=%d, RFdiv=%d" ) % R % BS % N % FRAC % MOD % T % D % RFdiv << std::endl << boost::format("SBX Frequencies (MHz): REQ=%0.2f, ACT=%0.2f, VCO=%0.2f, PFD=%0.2f, BAND=%0.2f" ) % (target_freq/1e6) % (actual_freq/1e6) % (vco_freq/1e6) % (pfd_freq/1e6) % (pfd_freq/BS/1e6) << std::endl; //load the register values adf4351_regs_t regs; if ((unit == dboard_iface::UNIT_TX) and (actual_freq == sbx_tx_lo_2dbm.clip(actual_freq))) regs.output_power = adf4351_regs_t::OUTPUT_POWER_2DBM; else regs.output_power = adf4351_regs_t::OUTPUT_POWER_5DBM; regs.frac_12_bit = FRAC; regs.int_16_bit = N; regs.mod_12_bit = MOD; regs.clock_divider_12_bit = std::max(1, int(std::ceil(400e-6*pfd_freq/MOD))); regs.feedback_select = adf4351_regs_t::FEEDBACK_SELECT_DIVIDED; regs.clock_div_mode = adf4351_regs_t::CLOCK_DIV_MODE_RESYNC_ENABLE; regs.prescaler = prescaler; regs.r_counter_10_bit = R; regs.reference_divide_by_2 = T; regs.reference_doubler = D; regs.band_select_clock_div = BS; UHD_ASSERT_THROW(rfdivsel_to_enum.has_key(RFdiv)); regs.rf_divider_select = rfdivsel_to_enum[RFdiv]; //reset the N and R counter regs.counter_reset = adf4351_regs_t::COUNTER_RESET_ENABLED; self_base->get_iface()->write_spi(unit, spi_config_t::EDGE_RISE, regs.get_reg(2), 32); regs.counter_reset = adf4351_regs_t::COUNTER_RESET_DISABLED; //write the registers //correct power-up sequence to write registers (5, 4, 3, 2, 1, 0) int addr; for(addr=5; addr>=0; addr--){ UHD_LOGV(often) << boost::format( "SBX SPI Reg (0x%02x): 0x%08x" ) % addr % regs.get_reg(addr) << std::endl; self_base->get_iface()->write_spi( unit, spi_config_t::EDGE_RISE, regs.get_reg(addr), 32 ); } //return the actual frequency UHD_LOGV(often) << boost::format( "SBX tune: actual frequency %f Mhz" ) % (actual_freq/1e6) << std::endl; return actual_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_tvrx.cpp000066400000000000000000000365001224274632000204350ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // No RX IO Pins Used // RX IO Functions //ADC/DAC functions: //DAC 1: RF AGC //DAC 2: IF AGC //min freq: 50e6 //max freq: 860e6 //gain range: [0:1dB:115dB] #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The tvrx constants **********************************************************************/ static const freq_range_t tvrx_freq_range(50e6, 860e6); static const std::vector tvrx_antennas = list_of("RX"); static const uhd::dict tvrx_freq_ranges = map_list_of ("VHFLO", freq_range_t(50e6, 158e6)) ("VHFHI", freq_range_t(158e6, 454e6)) ("UHF" , freq_range_t(454e6, 860e6)) ; static const boost::array vhflo_gains_db = {{-6.00000, -6.00000, -6.00000, -4.00000, 0.00000, 5.00000, 10.00000, 17.40000, 26.30000, 36.00000, 43.00000, 48.00000, 49.50000, 50.10000, 50.30000, 50.30000, 50.30000}}; static const boost::array vhfhi_gains_db = {{-13.3000, -13.3000, -13.3000, -1.0000, 7.7000, 11.0000, 14.7000, 19.3000, 26.1000, 36.0000, 42.7000, 46.0000, 47.0000, 47.8000, 48.2000, 48.2000, 48.2000}}; static const boost::array uhf_gains_db = {{-8.0000, -8.0000, -7.0000, 4.0000, 10.2000, 14.5000, 17.5000, 20.0000, 24.5000, 30.8000, 37.0000, 39.8000, 40.7000, 41.6000, 42.6000, 43.2000, 43.8000}}; static const boost::array tvrx_if_gains_db = {{-1.50000, -1.50000, -1.50000, -1.00000, 0.20000, 2.10000, 4.30000, 6.40000, 9.00000, 12.00000, 14.80000, 18.20000, 26.10000, 32.50000, 32.50000, 32.50000, 32.50000}}; //gain linearization data //this is from the datasheet and is dB vs. volts (below) //i tried to curve fit this, but it's really just so nonlinear that you'd //need dang near as many coefficients as to just map it like this and interp. //these numbers are culled from the 4937DI5 datasheet and are probably totally inaccurate //but if it's better than the old linear fit i'm happy static const uhd::dict > tvrx_rf_gains_db = map_list_of ("VHFLO", vhflo_gains_db) ("VHFHI", vhfhi_gains_db) ("UHF" , uhf_gains_db) ; //sample voltages for the above points static const boost::array tvrx_gains_volts = {{0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0}}; static uhd::dict get_tvrx_gain_ranges(void) { double rfmax = 0.0, rfmin = FLT_MAX; BOOST_FOREACH(const std::string range, tvrx_rf_gains_db.keys()) { double my_max = tvrx_rf_gains_db[range].back(); //we're assuming it's monotonic double my_min = tvrx_rf_gains_db[range].front(); //if it's not this is wrong wrong wrong if(my_max > rfmax) rfmax = my_max; if(my_min < rfmin) rfmin = my_min; } double ifmin = tvrx_if_gains_db.front(); double ifmax = tvrx_if_gains_db.back(); return map_list_of ("RF", gain_range_t(rfmin, rfmax, (rfmax-rfmin)/4096.0)) ("IF", gain_range_t(ifmin, ifmax, (ifmax-ifmin)/4096.0)) ; } static const double opamp_gain = 1.22; //onboard DAC opamp gain static const double tvrx_if_freq = 43.75e6; //IF freq of TVRX module static const boost::uint16_t reference_divider = 640; //clock reference divider to use static const double reference_freq = 4.0e6; /*********************************************************************** * The tvrx dboard class **********************************************************************/ class tvrx : public rx_dboard_base{ public: tvrx(ctor_args_t args); ~tvrx(void); private: uhd::dict _gains; double _lo_freq; tuner_4937di5_regs_t _tuner_4937di5_regs; boost::uint8_t _tuner_4937di5_addr(void){ return (this->get_iface()->get_special_props().mangle_i2c_addrs)? 0x61 : 0x60; //ok really? we could rename that call }; double set_gain(double gain, const std::string &name); double set_freq(double freq); void update_regs(void){ byte_vector_t regs_vector(4); //get the register data for(int i=0; i<4; i++){ regs_vector[i] = _tuner_4937di5_regs.get_reg(i); UHD_LOGV(often) << boost::format( "tvrx: send reg 0x%02x, value 0x%04x" ) % int(i) % int(regs_vector[i]) << std::endl; } //send the data this->get_iface()->write_i2c( _tuner_4937di5_addr(), regs_vector ); } }; /*********************************************************************** * Register the tvrx dboard **********************************************************************/ static dboard_base::sptr make_tvrx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new tvrx(args)); } UHD_STATIC_BLOCK(reg_tvrx_dboard){ //register the factory function for the rx dbid dboard_manager::register_dboard(0x0040, &make_tvrx, "TVRX"); } /*********************************************************************** * Structors **********************************************************************/ tvrx::tvrx(ctor_args_t args) : rx_dboard_base(args){ //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name") .set("TVRX"); this->get_rx_subtree()->create("sensors"); //phony property so this dir exists BOOST_FOREACH(const std::string &name, get_tvrx_gain_ranges().keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&tvrx::set_gain, this, _1, name)); this->get_rx_subtree()->create("gains/"+name+"/range") .set(get_tvrx_gain_ranges()[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&tvrx::set_freq, this, _1)); this->get_rx_subtree()->create("freq/range") .set(tvrx_freq_range); this->get_rx_subtree()->create("antenna/value") .set(tvrx_antennas.at(0)); this->get_rx_subtree()->create >("antenna/options") .set(tvrx_antennas); this->get_rx_subtree()->create("connection") .set("I"); this->get_rx_subtree()->create("enabled") .set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") .set(6.0e6); this->get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(6.0e6, 6.0e6)); //enable only the clocks we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //set the gpio directions and atr controls (identically) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, 0x0); // All unused in atr if (this->get_iface()->get_special_props().soft_clock_divider){ this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, 0x1); // GPIO0 is clock } else{ this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, 0x0); // All Inputs } //send initial register settings if necessary //set default freq _lo_freq = tvrx_freq_range.start() + tvrx_if_freq; //init _lo_freq to a sane default this->get_rx_subtree()->access("freq/value").set(tvrx_freq_range.start()); //set default gains BOOST_FOREACH(const std::string &name, get_tvrx_gain_ranges().keys()){ this->get_rx_subtree()->access("gains/"+name+"/value") .set(get_tvrx_gain_ranges()[name].start()); } } tvrx::~tvrx(void){ } /*! Return a string corresponding to the relevant band * \param freq the frequency of interest * \return a string corresponding to the band */ static std::string get_band(double freq) { BOOST_FOREACH(const std::string &band, tvrx_freq_ranges.keys()) { if(freq >= tvrx_freq_ranges[band].start() && freq <= tvrx_freq_ranges[band].stop()){ UHD_LOGV(often) << "Band: " << band << std::endl; return band; } } UHD_THROW_INVALID_CODE_PATH(); } /*********************************************************************** * Gain Handling **********************************************************************/ /*! * Execute a linear interpolation to find the voltage corresponding to a desired gain * \param gain the desired gain in dB * \param db_vector the vector of dB readings * \param volts_vector the corresponding vector of voltages db_vector was sampled at * \return a voltage to feed the TVRX analog gain */ static double gain_interp(double gain, boost::array db_vector, boost::array volts_vector) { double volts; gain = uhd::clip(gain, db_vector.front(), db_vector.back()); //let's not get carried away here boost::uint8_t gain_step = 0; //find which bin we're in for(size_t i = 0; i < db_vector.size()-1; i++) { if(gain >= db_vector[i] && gain <= db_vector[i+1]) gain_step = i; } //find the current slope for linear interpolation double slope = (volts_vector[gain_step + 1] - volts_vector[gain_step]) / (db_vector[gain_step + 1] - db_vector[gain_step]); //the problem here is that for gains approaching the maximum, the voltage slope becomes infinite //i.e., a small change in gain requires an infinite change in voltage //to cope, we limit the slope if(slope == std::numeric_limits::infinity()) return volts_vector[gain_step]; //use the volts per dB slope to find the final interpolated voltage volts = volts_vector[gain_step] + (slope * (gain - db_vector[gain_step])); UHD_LOGV(often) << "Gain interp: gain: " << gain << ", gain_step: " << int(gain_step) << ", slope: " << slope << ", volts: " << volts << std::endl; return volts; } /*! * Convert a requested gain for the RF gain into a DAC voltage. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return dac voltage value */ static double rf_gain_to_voltage(double gain, double lo_freq){ //clip the input gain = get_tvrx_gain_ranges()["RF"].clip(gain); //first we need to find out what band we're in, because gains are different across different bands std::string band = get_band(lo_freq - tvrx_if_freq); //this is the voltage at the TVRX gain input double gain_volts = gain_interp(gain, tvrx_rf_gains_db[band], tvrx_gains_volts); //this is the voltage at the USRP DAC output double dac_volts = gain_volts / opamp_gain; dac_volts = uhd::clip(dac_volts, 0.0, 3.3); UHD_LOGV(often) << boost::format( "tvrx RF AGC gain: %f dB, dac_volts: %f V" ) % gain % dac_volts << std::endl; return dac_volts; } /*! * Convert a requested gain for the IF gain into a DAC voltage. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return dac voltage value */ static double if_gain_to_voltage(double gain){ //clip the input gain = get_tvrx_gain_ranges()["IF"].clip(gain); double gain_volts = gain_interp(gain, tvrx_if_gains_db, tvrx_gains_volts); double dac_volts = gain_volts / opamp_gain; dac_volts = uhd::clip(dac_volts, 0.0, 3.3); UHD_LOGV(often) << boost::format( "tvrx IF AGC gain: %f dB, dac_volts: %f V" ) % gain % dac_volts << std::endl; return dac_volts; } double tvrx::set_gain(double gain, const std::string &name){ assert_has(get_tvrx_gain_ranges().keys(), name, "tvrx gain name"); if (name == "RF"){ this->get_iface()->write_aux_dac(dboard_iface::UNIT_RX, dboard_iface::AUX_DAC_B, rf_gain_to_voltage(gain, _lo_freq)); } else if(name == "IF"){ this->get_iface()->write_aux_dac(dboard_iface::UNIT_RX, dboard_iface::AUX_DAC_A, if_gain_to_voltage(gain)); } else UHD_THROW_INVALID_CODE_PATH(); _gains[name] = gain; return gain; } /*! * Set the tuner to center the desired frequency at 43.75MHz * \param freq the requested frequency */ double tvrx::set_freq(double freq) { freq = tvrx_freq_range.clip(freq); std::string prev_band = get_band(_lo_freq - tvrx_if_freq); std::string new_band = get_band(freq); double target_lo_freq = freq + tvrx_if_freq; //the desired LO freq for high-side mixing double f_ref = reference_freq / double(reference_divider); //your tuning step size int divisor = int((target_lo_freq + (f_ref * 4.0)) / (f_ref * 8)); //the divisor we'll use double actual_lo_freq = (f_ref * 8 * divisor); //the LO freq we'll actually get if((divisor & ~0x7fff)) UHD_THROW_INVALID_CODE_PATH(); //now we update the registers _tuner_4937di5_regs.db1 = (divisor >> 8) & 0xff; _tuner_4937di5_regs.db2 = divisor & 0xff; if(new_band == "VHFLO") _tuner_4937di5_regs.bandsel = tuner_4937di5_regs_t::BANDSEL_VHFLO; else if(new_band == "VHFHI") _tuner_4937di5_regs.bandsel = tuner_4937di5_regs_t::BANDSEL_VHFHI; else if(new_band == "UHF") _tuner_4937di5_regs.bandsel = tuner_4937di5_regs_t::BANDSEL_UHF; else UHD_THROW_INVALID_CODE_PATH(); _tuner_4937di5_regs.power = tuner_4937di5_regs_t::POWER_OFF; update_regs(); //ok don't forget to reset RF gain here if the new band != the old band //we do this because the gains are different for different band settings //not FAR off, but we do this to be consistent if(prev_band != new_band) set_gain(_gains["RF"], "RF"); UHD_LOGV(often) << boost::format("set_freq: target LO: %f f_ref: %f divisor: %i actual LO: %f") % target_lo_freq % f_ref % divisor % actual_lo_freq << std::endl; _lo_freq = actual_lo_freq; //for rx props //Check the the IF if larger than the dsp rate and apply a corrective adjustment //so that the cordic will be tuned to a possible rate within its range. const double codec_rate = this->get_iface()->get_codec_rate(dboard_iface::UNIT_RX); if (tvrx_if_freq >= codec_rate/2){ return _lo_freq - codec_rate; } return _lo_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_tvrx2.cpp000066400000000000000000002416261224274632000205260ustar00rootroot00000000000000// // Copyright 2010,2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Common IO Pins #define REFCLOCK_DIV_MASK ((1 << 8)|(1 << 9)|(1 << 10)) // Three GPIO lines to CPLD for Clock Divisor Selection #define REFCLOCK_DIV8 ((1 << 8)|(1 << 9)|(1 << 10)) // GPIO to set clock div8 mode #define REFCLOCK_DIV7 ((0 << 8)|(1 << 9)|(1 << 10)) // GPIO to set clock div7 mode #define REFCLOCK_DIV6 ((1 << 8)|(0 << 9)|(1 << 10)) // GPIO to set clock div6 mode #define REFCLOCK_DIV5 ((0 << 8)|(0 << 9)|(1 << 10)) // GPIO to set clock div5 mode #define REFCLOCK_DIV4 ((1 << 8)|(1 <<9)) // GPIO to set clock div4 mode #define REFCLOCK_DIV3 (1 <<9) // GPIO to set clock div3 mode #define REFCLOCK_DIV2 (1 <<8) // GPIO to set clock div2 mode #define REFCLOCK_DIV1 ((0 << 8)|(0 << 9)|(0 << 10)) // GPIO to set clock div1 mode // RX1 IO Pins #define RX1_MASTERSYNC (1 << 3) // MASTERSYNC Signal for Slave Tuner Coordination #define RX1_FREEZE (1 << 2) // FREEZE Signal for Slave Tuner Coordination #define RX1_IRQ (1 << 1) // IRQ Signals TDA18272HNM State Machine Completion #define RX1_VSYNC (1 << 0) // VSYNC Pulse for AGC Holdoff // RX2 IO Pins #define RX2_MASTERSYNC (1 << 7) // MASTERSYNC Signal for Slave Tuner Coordination #define RX2_FREEZE (1 << 6) // FREEZE Signal for Slave Tuner Coordination #define RX2_IRQ (1 << 5) // IRQ Signals TDA18272HNM State Machine Completion #define RX2_VSYNC (1 << 4) // VSYNC Pulse for AGC Holdoff // Pin functions #define RX1_OUTPUT_MASK (0) #define RX1_INPUT_MASK (RX1_VSYNC|RX1_MASTERSYNC|RX1_FREEZE|RX1_IRQ) #define RX2_OUTPUT_MASK (0) #define RX2_INPUT_MASK (RX2_VSYNC|RX2_MASTERSYNC|RX2_FREEZE|RX2_IRQ) #define OUTPUT_MASK (RX1_OUTPUT_MASK|RX2_OUTPUT_MASK|REFCLOCK_DIV_MASK) #define INPUT_MASK (RX1_INPUT_MASK|RX2_INPUT_MASK) #include "tda18272hnm_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The TVRX2 types **********************************************************************/ struct tvrx2_tda18272_rfcal_result_t { boost::int8_t delta_c; boost::int8_t c_offset; tvrx2_tda18272_rfcal_result_t(void): delta_c(0), c_offset(0){} }; struct tvrx2_tda18272_rfcal_coeffs_t { boost::uint8_t cal_number; boost::int32_t RF_A1; boost::int32_t RF_B1; tvrx2_tda18272_rfcal_coeffs_t(void): cal_number(0), RF_A1(0), RF_B1(0) {} tvrx2_tda18272_rfcal_coeffs_t(boost::uint32_t num): RF_A1(0), RF_B1(0) { cal_number = num; } }; struct tvrx2_tda18272_cal_map_t { boost::array cal_freq; boost::array c_offset; tvrx2_tda18272_cal_map_t(boost::array freqs, boost::array offsets) { cal_freq = freqs; c_offset = offsets; } }; struct tvrx2_tda18272_freq_map_t { boost::uint32_t rf_max; boost::uint8_t c_prog; boost::uint8_t gain_taper; boost::uint8_t rf_band; tvrx2_tda18272_freq_map_t( boost::uint32_t max, boost::uint8_t c, boost::uint8_t taper, boost::uint8_t band) { rf_max = max; c_prog = c; gain_taper = taper; rf_band = band; } }; /*********************************************************************** * The TVRX2 constants **********************************************************************/ static const boost::array tvrx2_tda18272_rf_bands = list_of ( freq_range_t( 44.056e6, 144.408e6) ) ( freq_range_t( 145.432e6, 361.496e6) ) ( freq_range_t( 365.592e6, 618.520e6) ) ( freq_range_t( 619.544e6, 865.304e6) ) ; #define TVRX2_TDA18272_FREQ_MAP_ENTRIES (565) static const uhd::dict tvrx2_tda18272_cal_map = map_list_of ( 0, tvrx2_tda18272_cal_map_t( list_of( 44032000)( 48128000)( 52224000)( 56320000), list_of(15)( 0)(10)(17) ) ) ( 1, tvrx2_tda18272_cal_map_t( list_of( 84992000)( 89088000)( 93184000)( 97280000), list_of( 1)( 0)(-2)( 3) ) ) ( 2, tvrx2_tda18272_cal_map_t( list_of(106496000)(111616000)(115712000)(123904000), list_of( 0)(-1)( 1)( 2) ) ) ( 3, tvrx2_tda18272_cal_map_t( list_of(161792000)(165888000)(169984000)(174080000), list_of( 3)( 0)( 1)( 2) ) ) ( 4, tvrx2_tda18272_cal_map_t( list_of(224256000)(228352000)(232448000)(235520000), list_of( 3)( 0)( 1)( 2) ) ) ( 5, tvrx2_tda18272_cal_map_t( list_of(301056000)(312320000)(322560000)(335872000), list_of( 0)(-1)( 1)( 2) ) ) ( 6, tvrx2_tda18272_cal_map_t( list_of(389120000)(393216000)(397312000)(401408000), list_of(-2)( 0)(-1)( 1) ) ) ( 7, tvrx2_tda18272_cal_map_t( list_of(455680000)(460800000)(465920000)(471040000), list_of( 0)(-2)(-3)( 1) ) ) ( 8, tvrx2_tda18272_cal_map_t( list_of(555008000)(563200000)(570368000)(577536000), list_of(-1)( 0)(-3)(-2) ) ) ( 9, tvrx2_tda18272_cal_map_t( list_of(647168000)(652288000)(658432000)(662528000), list_of(-6)(-3)( 0)(-5) ) ) ( 10, tvrx2_tda18272_cal_map_t( list_of(748544000)(755712000)(762880000)(770048000), list_of(-6)(-3)( 0)(-5) ) ) ( 11, tvrx2_tda18272_cal_map_t( list_of(792576000)(801792000)(809984000)(818176000), list_of(-5)(-2)( 0)(-4) ) ) ; static const std::vector tvrx2_tda18272_freq_map = list_of ( tvrx2_tda18272_freq_map_t( 39936000, 0xFF, 0x17, 0) ) ( tvrx2_tda18272_freq_map_t( 40960000, 0xFD, 0x17, 0) ) ( tvrx2_tda18272_freq_map_t( 41984000, 0xF1, 0x15, 0) ) ( tvrx2_tda18272_freq_map_t( 43008000, 0xE5, 0x13, 0) ) ( tvrx2_tda18272_freq_map_t( 44032000, 0xDB, 0x13, 0) ) ( tvrx2_tda18272_freq_map_t( 45056000, 0xD1, 0x12, 0) ) ( tvrx2_tda18272_freq_map_t( 46080000, 0xC7, 0x10, 0) ) ( tvrx2_tda18272_freq_map_t( 47104000, 0xBE, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 48128000, 0xB5, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 49152000, 0xAD, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 50176000, 0xA6, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 51200000, 0x9F, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 52224000, 0x98, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 53248000, 0x91, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 54272000, 0x8B, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 55296000, 0x86, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 56320000, 0x80, 0x0F, 0) ) ( tvrx2_tda18272_freq_map_t( 57344000, 0x7B, 0x0E, 0) ) ( tvrx2_tda18272_freq_map_t( 58368000, 0x76, 0x0E, 0) ) ( tvrx2_tda18272_freq_map_t( 59392000, 0x72, 0x0D, 0) ) ( tvrx2_tda18272_freq_map_t( 60416000, 0x6D, 0x0D, 0) ) ( tvrx2_tda18272_freq_map_t( 61440000, 0x69, 0x0C, 0) ) ( tvrx2_tda18272_freq_map_t( 62464000, 0x65, 0x0C, 0) ) ( tvrx2_tda18272_freq_map_t( 63488000, 0x61, 0x0B, 0) ) ( tvrx2_tda18272_freq_map_t( 64512000, 0x5E, 0x0B, 0) ) ( tvrx2_tda18272_freq_map_t( 64512000, 0x5A, 0x0B, 0) ) ( tvrx2_tda18272_freq_map_t( 65536000, 0x57, 0x0A, 0) ) ( tvrx2_tda18272_freq_map_t( 66560000, 0x54, 0x0A, 0) ) ( tvrx2_tda18272_freq_map_t( 67584000, 0x51, 0x09, 0) ) ( tvrx2_tda18272_freq_map_t( 68608000, 0x4E, 0x09, 0) ) ( tvrx2_tda18272_freq_map_t( 69632000, 0x4B, 0x09, 0) ) ( tvrx2_tda18272_freq_map_t( 70656000, 0x49, 0x08, 0) ) ( tvrx2_tda18272_freq_map_t( 71680000, 0x46, 0x08, 0) ) ( tvrx2_tda18272_freq_map_t( 72704000, 0x44, 0x08, 0) ) ( tvrx2_tda18272_freq_map_t( 73728000, 0x41, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 74752000, 0x3F, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 75776000, 0x3D, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 76800000, 0x3B, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 77824000, 0x39, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 78848000, 0x37, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 79872000, 0x35, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 80896000, 0x33, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 81920000, 0x32, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 82944000, 0x30, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 83968000, 0x2F, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 84992000, 0x2D, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 86016000, 0x2C, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 87040000, 0x2A, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t( 88064000, 0x29, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t( 89088000, 0x27, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t( 90112000, 0x26, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t( 91136000, 0x25, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t( 92160000, 0x24, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t( 93184000, 0x22, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t( 94208000, 0x21, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t( 95232000, 0x20, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t( 96256000, 0x1F, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t( 97280000, 0x1E, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t( 98304000, 0x1D, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t( 99328000, 0x1C, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(100352000, 0x1B, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(101376000, 0x1A, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(103424000, 0x19, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(104448000, 0x18, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(105472000, 0x17, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(106496000, 0x16, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(106496000, 0x15, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(108544000, 0x14, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(109568000, 0x13, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(111616000, 0x12, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(112640000, 0x11, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(113664000, 0x11, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t(114688000, 0x10, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t(115712000, 0x0F, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t(117760000, 0x0E, 0x07, 0) ) ( tvrx2_tda18272_freq_map_t(119808000, 0x0D, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t(121856000, 0x0C, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t(123904000, 0x0B, 0x06, 0) ) ( tvrx2_tda18272_freq_map_t(125952000, 0x0A, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t(128000000, 0x09, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t(130048000, 0x08, 0x05, 0) ) ( tvrx2_tda18272_freq_map_t(133120000, 0x07, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(135168000, 0x06, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(138240000, 0x05, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(141312000, 0x04, 0x04, 0) ) ( tvrx2_tda18272_freq_map_t(144384000, 0x03, 0x03, 0) ) ( tvrx2_tda18272_freq_map_t(145408000, 0xE0, 0x3F, 1) ) ( tvrx2_tda18272_freq_map_t(147456000, 0xDC, 0x37, 1) ) ( tvrx2_tda18272_freq_map_t(148480000, 0xD9, 0x32, 1) ) ( tvrx2_tda18272_freq_map_t(149504000, 0xD6, 0x2F, 1) ) ( tvrx2_tda18272_freq_map_t(149504000, 0xD2, 0x2F, 1) ) ( tvrx2_tda18272_freq_map_t(150528000, 0xCF, 0x2F, 1) ) ( tvrx2_tda18272_freq_map_t(151552000, 0xCC, 0x2B, 1) ) ( tvrx2_tda18272_freq_map_t(152576000, 0xC9, 0x27, 1) ) ( tvrx2_tda18272_freq_map_t(153600000, 0xC5, 0x27, 1) ) ( tvrx2_tda18272_freq_map_t(154624000, 0xC2, 0x25, 1) ) ( tvrx2_tda18272_freq_map_t(155648000, 0xBF, 0x23, 1) ) ( tvrx2_tda18272_freq_map_t(156672000, 0xBD, 0x20, 1) ) ( tvrx2_tda18272_freq_map_t(157696000, 0xBA, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(158720000, 0xB7, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(159744000, 0xB4, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(160768000, 0xB1, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(161792000, 0xAF, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(162816000, 0xAC, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(163840000, 0xAA, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(164864000, 0xA7, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(165888000, 0xA5, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(166912000, 0xA2, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(167936000, 0xA0, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(168960000, 0x9D, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(169984000, 0x9B, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(171008000, 0x99, 0x1F, 1) ) ( tvrx2_tda18272_freq_map_t(172032000, 0x97, 0x1E, 1) ) ( tvrx2_tda18272_freq_map_t(173056000, 0x95, 0x1D, 1) ) ( tvrx2_tda18272_freq_map_t(174080000, 0x92, 0x1C, 1) ) ( tvrx2_tda18272_freq_map_t(175104000, 0x90, 0x1B, 1) ) ( tvrx2_tda18272_freq_map_t(176128000, 0x8E, 0x1A, 1) ) ( tvrx2_tda18272_freq_map_t(177152000, 0x8C, 0x19, 1) ) ( tvrx2_tda18272_freq_map_t(178176000, 0x8A, 0x18, 1) ) ( tvrx2_tda18272_freq_map_t(179200000, 0x88, 0x17, 1) ) ( tvrx2_tda18272_freq_map_t(180224000, 0x86, 0x17, 1) ) ( tvrx2_tda18272_freq_map_t(181248000, 0x84, 0x17, 1) ) ( tvrx2_tda18272_freq_map_t(182272000, 0x82, 0x17, 1) ) ( tvrx2_tda18272_freq_map_t(183296000, 0x81, 0x17, 1) ) ( tvrx2_tda18272_freq_map_t(184320000, 0x7F, 0x17, 1) ) ( tvrx2_tda18272_freq_map_t(185344000, 0x7D, 0x16, 1) ) ( tvrx2_tda18272_freq_map_t(186368000, 0x7B, 0x15, 1) ) ( tvrx2_tda18272_freq_map_t(187392000, 0x7A, 0x14, 1) ) ( tvrx2_tda18272_freq_map_t(188416000, 0x78, 0x14, 1) ) ( tvrx2_tda18272_freq_map_t(189440000, 0x76, 0x13, 1) ) ( tvrx2_tda18272_freq_map_t(190464000, 0x75, 0x13, 1) ) ( tvrx2_tda18272_freq_map_t(191488000, 0x73, 0x13, 1) ) ( tvrx2_tda18272_freq_map_t(192512000, 0x71, 0x12, 1) ) ( tvrx2_tda18272_freq_map_t(192512000, 0x70, 0x11, 1) ) ( tvrx2_tda18272_freq_map_t(193536000, 0x6E, 0x11, 1) ) ( tvrx2_tda18272_freq_map_t(194560000, 0x6D, 0x10, 1) ) ( tvrx2_tda18272_freq_map_t(195584000, 0x6B, 0x10, 1) ) ( tvrx2_tda18272_freq_map_t(196608000, 0x6A, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(197632000, 0x68, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(198656000, 0x67, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(199680000, 0x65, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(200704000, 0x64, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(201728000, 0x63, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(202752000, 0x61, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(203776000, 0x60, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(204800000, 0x5F, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(205824000, 0x5D, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(206848000, 0x5C, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(207872000, 0x5B, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(208896000, 0x5A, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(209920000, 0x58, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(210944000, 0x57, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(211968000, 0x56, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(212992000, 0x55, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(214016000, 0x54, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(215040000, 0x53, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(216064000, 0x52, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(217088000, 0x50, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(218112000, 0x4F, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(219136000, 0x4E, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(220160000, 0x4D, 0x0E, 1) ) ( tvrx2_tda18272_freq_map_t(221184000, 0x4C, 0x0E, 1) ) ( tvrx2_tda18272_freq_map_t(222208000, 0x4B, 0x0E, 1) ) ( tvrx2_tda18272_freq_map_t(223232000, 0x4A, 0x0E, 1) ) ( tvrx2_tda18272_freq_map_t(224256000, 0x49, 0x0D, 1) ) ( tvrx2_tda18272_freq_map_t(225280000, 0x48, 0x0D, 1) ) ( tvrx2_tda18272_freq_map_t(226304000, 0x47, 0x0D, 1) ) ( tvrx2_tda18272_freq_map_t(227328000, 0x46, 0x0D, 1) ) ( tvrx2_tda18272_freq_map_t(228352000, 0x45, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(229376000, 0x44, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(230400000, 0x43, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(231424000, 0x42, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(232448000, 0x42, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(233472000, 0x41, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(234496000, 0x40, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(234496000, 0x3F, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(235520000, 0x3E, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(236544000, 0x3D, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(237568000, 0x3C, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(239616000, 0x3B, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(240640000, 0x3A, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(241664000, 0x39, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(242688000, 0x38, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(244736000, 0x37, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(245760000, 0x36, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(246784000, 0x35, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(248832000, 0x34, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(249856000, 0x33, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(250880000, 0x32, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(252928000, 0x31, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(253952000, 0x30, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(256000000, 0x2F, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(257024000, 0x2E, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(259072000, 0x2D, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(260096000, 0x2C, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(262144000, 0x2B, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(264192000, 0x2A, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(265216000, 0x29, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(267264000, 0x28, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(269312000, 0x27, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(270336000, 0x26, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(272384000, 0x25, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(274432000, 0x24, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(276480000, 0x23, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(277504000, 0x22, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(279552000, 0x21, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(281600000, 0x20, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(283648000, 0x1F, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(285696000, 0x1E, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(287744000, 0x1D, 0x0F, 1) ) ( tvrx2_tda18272_freq_map_t(289792000, 0x1C, 0x0E, 1) ) ( tvrx2_tda18272_freq_map_t(291840000, 0x1B, 0x0E, 1) ) ( tvrx2_tda18272_freq_map_t(293888000, 0x1A, 0x0D, 1) ) ( tvrx2_tda18272_freq_map_t(296960000, 0x19, 0x0D, 1) ) ( tvrx2_tda18272_freq_map_t(299008000, 0x18, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(301056000, 0x17, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(304128000, 0x16, 0x0C, 1) ) ( tvrx2_tda18272_freq_map_t(306176000, 0x15, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(309248000, 0x14, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(312320000, 0x13, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(314368000, 0x12, 0x0B, 1) ) ( tvrx2_tda18272_freq_map_t(317440000, 0x11, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(320512000, 0x10, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(322560000, 0x0F, 0x0A, 1) ) ( tvrx2_tda18272_freq_map_t(325632000, 0x0E, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(328704000, 0x0D, 0x09, 1) ) ( tvrx2_tda18272_freq_map_t(331776000, 0x0C, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(335872000, 0x0B, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(338944000, 0x0A, 0x08, 1) ) ( tvrx2_tda18272_freq_map_t(343040000, 0x09, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(346112000, 0x08, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(350208000, 0x07, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(354304000, 0x06, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(358400000, 0x05, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(362496000, 0x04, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(365568000, 0x04, 0x07, 1) ) ( tvrx2_tda18272_freq_map_t(367616000, 0xDA, 0x2A, 2) ) ( tvrx2_tda18272_freq_map_t(367616000, 0xD9, 0x27, 2) ) ( tvrx2_tda18272_freq_map_t(368640000, 0xD8, 0x27, 2) ) ( tvrx2_tda18272_freq_map_t(369664000, 0xD6, 0x27, 2) ) ( tvrx2_tda18272_freq_map_t(370688000, 0xD5, 0x27, 2) ) ( tvrx2_tda18272_freq_map_t(371712000, 0xD3, 0x25, 2) ) ( tvrx2_tda18272_freq_map_t(372736000, 0xD2, 0x23, 2) ) ( tvrx2_tda18272_freq_map_t(373760000, 0xD0, 0x23, 2) ) ( tvrx2_tda18272_freq_map_t(374784000, 0xCF, 0x21, 2) ) ( tvrx2_tda18272_freq_map_t(375808000, 0xCD, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(376832000, 0xCC, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(377856000, 0xCA, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(378880000, 0xC9, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(379904000, 0xC7, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(380928000, 0xC6, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(381952000, 0xC4, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(382976000, 0xC3, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(384000000, 0xC1, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(385024000, 0xC0, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(386048000, 0xBF, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(387072000, 0xBD, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(388096000, 0xBC, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(389120000, 0xBB, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(390144000, 0xB9, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(391168000, 0xB8, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(392192000, 0xB7, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(393216000, 0xB5, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(394240000, 0xB4, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(395264000, 0xB3, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(396288000, 0xB1, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(397312000, 0xB0, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(398336000, 0xAF, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(399360000, 0xAD, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(400384000, 0xAC, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(401408000, 0xAB, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(402432000, 0xAA, 0x1F, 2) ) ( tvrx2_tda18272_freq_map_t(403456000, 0xA8, 0x1E, 2) ) ( tvrx2_tda18272_freq_map_t(404480000, 0xA7, 0x1D, 2) ) ( tvrx2_tda18272_freq_map_t(405504000, 0xA6, 0x1D, 2) ) ( tvrx2_tda18272_freq_map_t(405504000, 0xA5, 0x1C, 2) ) ( tvrx2_tda18272_freq_map_t(406528000, 0xA3, 0x1C, 2) ) ( tvrx2_tda18272_freq_map_t(407552000, 0xA2, 0x1B, 2) ) ( tvrx2_tda18272_freq_map_t(408576000, 0xA1, 0x1B, 2) ) ( tvrx2_tda18272_freq_map_t(409600000, 0xA0, 0x1B, 2) ) ( tvrx2_tda18272_freq_map_t(410624000, 0x9F, 0x1A, 2) ) ( tvrx2_tda18272_freq_map_t(411648000, 0x9D, 0x1A, 2) ) ( tvrx2_tda18272_freq_map_t(412672000, 0x9C, 0x19, 2) ) ( tvrx2_tda18272_freq_map_t(413696000, 0x9B, 0x18, 2) ) ( tvrx2_tda18272_freq_map_t(414720000, 0x9A, 0x18, 2) ) ( tvrx2_tda18272_freq_map_t(415744000, 0x99, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(416768000, 0x98, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(417792000, 0x97, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(418816000, 0x95, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(419840000, 0x94, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(420864000, 0x93, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(421888000, 0x92, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(422912000, 0x91, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(423936000, 0x90, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(424960000, 0x8F, 0x17, 2) ) ( tvrx2_tda18272_freq_map_t(425984000, 0x8E, 0x16, 2) ) ( tvrx2_tda18272_freq_map_t(427008000, 0x8D, 0x16, 2) ) ( tvrx2_tda18272_freq_map_t(428032000, 0x8C, 0x15, 2) ) ( tvrx2_tda18272_freq_map_t(429056000, 0x8B, 0x15, 2) ) ( tvrx2_tda18272_freq_map_t(430080000, 0x8A, 0x15, 2) ) ( tvrx2_tda18272_freq_map_t(431104000, 0x88, 0x14, 2) ) ( tvrx2_tda18272_freq_map_t(432128000, 0x87, 0x14, 2) ) ( tvrx2_tda18272_freq_map_t(433152000, 0x86, 0x14, 2) ) ( tvrx2_tda18272_freq_map_t(434176000, 0x85, 0x13, 2) ) ( tvrx2_tda18272_freq_map_t(435200000, 0x84, 0x13, 2) ) ( tvrx2_tda18272_freq_map_t(436224000, 0x83, 0x13, 2) ) ( tvrx2_tda18272_freq_map_t(437248000, 0x82, 0x13, 2) ) ( tvrx2_tda18272_freq_map_t(438272000, 0x81, 0x13, 2) ) ( tvrx2_tda18272_freq_map_t(439296000, 0x80, 0x12, 2) ) ( tvrx2_tda18272_freq_map_t(440320000, 0x7F, 0x12, 2) ) ( tvrx2_tda18272_freq_map_t(441344000, 0x7E, 0x12, 2) ) ( tvrx2_tda18272_freq_map_t(442368000, 0x7D, 0x11, 2) ) ( tvrx2_tda18272_freq_map_t(444416000, 0x7C, 0x11, 2) ) ( tvrx2_tda18272_freq_map_t(445440000, 0x7B, 0x10, 2) ) ( tvrx2_tda18272_freq_map_t(446464000, 0x7A, 0x10, 2) ) ( tvrx2_tda18272_freq_map_t(447488000, 0x79, 0x10, 2) ) ( tvrx2_tda18272_freq_map_t(448512000, 0x78, 0x10, 2) ) ( tvrx2_tda18272_freq_map_t(448512000, 0x77, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(449536000, 0x76, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(450560000, 0x75, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(451584000, 0x74, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(452608000, 0x73, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(453632000, 0x72, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(454656000, 0x71, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(455680000, 0x70, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(457728000, 0x6F, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(458752000, 0x6E, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(459776000, 0x6D, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(460800000, 0x6C, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(461824000, 0x6B, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(462848000, 0x6A, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(464896000, 0x69, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(465920000, 0x68, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(466944000, 0x67, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(467968000, 0x66, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(468992000, 0x65, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(471040000, 0x64, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(472064000, 0x63, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(473088000, 0x62, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(474112000, 0x61, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(476160000, 0x60, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(477184000, 0x5F, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(478208000, 0x5E, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(479232000, 0x5D, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(481280000, 0x5C, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(482304000, 0x5B, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(483328000, 0x5A, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(485376000, 0x59, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(486400000, 0x58, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(487424000, 0x57, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(489472000, 0x56, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(490496000, 0x55, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(490496000, 0x54, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(492544000, 0x53, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(493568000, 0x52, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(495616000, 0x51, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(496640000, 0x50, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(497664000, 0x4F, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(499712000, 0x4E, 0x0D, 2) ) ( tvrx2_tda18272_freq_map_t(500736000, 0x4D, 0x0D, 2) ) ( tvrx2_tda18272_freq_map_t(502784000, 0x4C, 0x0D, 2) ) ( tvrx2_tda18272_freq_map_t(503808000, 0x4B, 0x0D, 2) ) ( tvrx2_tda18272_freq_map_t(505856000, 0x4A, 0x0C, 2) ) ( tvrx2_tda18272_freq_map_t(506880000, 0x49, 0x0C, 2) ) ( tvrx2_tda18272_freq_map_t(508928000, 0x48, 0x0C, 2) ) ( tvrx2_tda18272_freq_map_t(509952000, 0x47, 0x0C, 2) ) ( tvrx2_tda18272_freq_map_t(512000000, 0x46, 0x0C, 2) ) ( tvrx2_tda18272_freq_map_t(513024000, 0x45, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(515072000, 0x44, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(517120000, 0x43, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(518144000, 0x42, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(520192000, 0x41, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(521216000, 0x40, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(523264000, 0x3F, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(525312000, 0x3E, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(526336000, 0x3D, 0x0B, 2) ) ( tvrx2_tda18272_freq_map_t(528384000, 0x3C, 0x0A, 2) ) ( tvrx2_tda18272_freq_map_t(530432000, 0x3B, 0x0A, 2) ) ( tvrx2_tda18272_freq_map_t(531456000, 0x3A, 0x0A, 2) ) ( tvrx2_tda18272_freq_map_t(533504000, 0x39, 0x0A, 2) ) ( tvrx2_tda18272_freq_map_t(534528000, 0x38, 0x0A, 2) ) ( tvrx2_tda18272_freq_map_t(536576000, 0x37, 0x0A, 2) ) ( tvrx2_tda18272_freq_map_t(537600000, 0x36, 0x09, 2) ) ( tvrx2_tda18272_freq_map_t(539648000, 0x35, 0x09, 2) ) ( tvrx2_tda18272_freq_map_t(541696000, 0x34, 0x09, 2) ) ( tvrx2_tda18272_freq_map_t(543744000, 0x33, 0x09, 2) ) ( tvrx2_tda18272_freq_map_t(544768000, 0x32, 0x09, 2) ) ( tvrx2_tda18272_freq_map_t(546816000, 0x31, 0x09, 2) ) ( tvrx2_tda18272_freq_map_t(548864000, 0x30, 0x08, 2) ) ( tvrx2_tda18272_freq_map_t(550912000, 0x2F, 0x08, 2) ) ( tvrx2_tda18272_freq_map_t(552960000, 0x2E, 0x08, 2) ) ( tvrx2_tda18272_freq_map_t(555008000, 0x2D, 0x08, 2) ) ( tvrx2_tda18272_freq_map_t(557056000, 0x2C, 0x08, 2) ) ( tvrx2_tda18272_freq_map_t(559104000, 0x2B, 0x08, 2) ) ( tvrx2_tda18272_freq_map_t(561152000, 0x2A, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(563200000, 0x29, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(565248000, 0x28, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(567296000, 0x27, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(569344000, 0x26, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(570368000, 0x26, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(571392000, 0x25, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(573440000, 0x24, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(575488000, 0x23, 0x07, 2) ) ( tvrx2_tda18272_freq_map_t(577536000, 0x22, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(578560000, 0x21, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(580608000, 0x20, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(583680000, 0x1F, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(585728000, 0x1E, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(587776000, 0x1D, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(589824000, 0x1C, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(592896000, 0x1B, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(594944000, 0x1A, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(596992000, 0x19, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(600064000, 0x18, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(602112000, 0x17, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(604160000, 0x16, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(607232000, 0x15, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(609280000, 0x14, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(612352000, 0x13, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(615424000, 0x12, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(617472000, 0x11, 0x0F, 2) ) ( tvrx2_tda18272_freq_map_t(619520000, 0x10, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(621568000, 0x0F, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(623616000, 0x0F, 0x0E, 2) ) ( tvrx2_tda18272_freq_map_t(624640000, 0xA3, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(625664000, 0xA2, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(626688000, 0xA1, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(627712000, 0xA0, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(628736000, 0x9F, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(630784000, 0x9E, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(631808000, 0x9D, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(632832000, 0x9C, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(633856000, 0x9B, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(635904000, 0x9A, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(636928000, 0x99, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(637952000, 0x98, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(638976000, 0x97, 0x1F, 3) ) ( tvrx2_tda18272_freq_map_t(641024000, 0x96, 0x1E, 3) ) ( tvrx2_tda18272_freq_map_t(642048000, 0x95, 0x1E, 3) ) ( tvrx2_tda18272_freq_map_t(643072000, 0x94, 0x1E, 3) ) ( tvrx2_tda18272_freq_map_t(644096000, 0x93, 0x1D, 3) ) ( tvrx2_tda18272_freq_map_t(646144000, 0x92, 0x1D, 3) ) ( tvrx2_tda18272_freq_map_t(647168000, 0x91, 0x1C, 3) ) ( tvrx2_tda18272_freq_map_t(648192000, 0x90, 0x1C, 3) ) ( tvrx2_tda18272_freq_map_t(650240000, 0x8F, 0x1B, 3) ) ( tvrx2_tda18272_freq_map_t(651264000, 0x8E, 0x1B, 3) ) ( tvrx2_tda18272_freq_map_t(652288000, 0x8D, 0x1B, 3) ) ( tvrx2_tda18272_freq_map_t(654336000, 0x8C, 0x1B, 3) ) ( tvrx2_tda18272_freq_map_t(655360000, 0x8B, 0x1B, 3) ) ( tvrx2_tda18272_freq_map_t(656384000, 0x8A, 0x1B, 3) ) ( tvrx2_tda18272_freq_map_t(658432000, 0x89, 0x1A, 3) ) ( tvrx2_tda18272_freq_map_t(659456000, 0x88, 0x1A, 3) ) ( tvrx2_tda18272_freq_map_t(660480000, 0x87, 0x1A, 3) ) ( tvrx2_tda18272_freq_map_t(661504000, 0x86, 0x19, 3) ) ( tvrx2_tda18272_freq_map_t(662528000, 0x85, 0x19, 3) ) ( tvrx2_tda18272_freq_map_t(664576000, 0x84, 0x18, 3) ) ( tvrx2_tda18272_freq_map_t(665600000, 0x83, 0x18, 3) ) ( tvrx2_tda18272_freq_map_t(666624000, 0x82, 0x18, 3) ) ( tvrx2_tda18272_freq_map_t(668672000, 0x81, 0x18, 3) ) ( tvrx2_tda18272_freq_map_t(669696000, 0x80, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(671744000, 0x7F, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(672768000, 0x7E, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(674816000, 0x7D, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(675840000, 0x7C, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(676864000, 0x7B, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(678912000, 0x7A, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(679936000, 0x79, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(681984000, 0x78, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(683008000, 0x77, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(685056000, 0x76, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(686080000, 0x75, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(688128000, 0x74, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(689152000, 0x73, 0x17, 3) ) ( tvrx2_tda18272_freq_map_t(691200000, 0x72, 0x16, 3) ) ( tvrx2_tda18272_freq_map_t(693248000, 0x71, 0x16, 3) ) ( tvrx2_tda18272_freq_map_t(694272000, 0x70, 0x16, 3) ) ( tvrx2_tda18272_freq_map_t(696320000, 0x6F, 0x15, 3) ) ( tvrx2_tda18272_freq_map_t(697344000, 0x6E, 0x15, 3) ) ( tvrx2_tda18272_freq_map_t(699392000, 0x6D, 0x15, 3) ) ( tvrx2_tda18272_freq_map_t(700416000, 0x6C, 0x15, 3) ) ( tvrx2_tda18272_freq_map_t(702464000, 0x6B, 0x14, 3) ) ( tvrx2_tda18272_freq_map_t(704512000, 0x6A, 0x14, 3) ) ( tvrx2_tda18272_freq_map_t(704512000, 0x69, 0x14, 3) ) ( tvrx2_tda18272_freq_map_t(706560000, 0x68, 0x14, 3) ) ( tvrx2_tda18272_freq_map_t(707584000, 0x67, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(709632000, 0x66, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(711680000, 0x65, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(712704000, 0x64, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(714752000, 0x63, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(716800000, 0x62, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(717824000, 0x61, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(719872000, 0x60, 0x13, 3) ) ( tvrx2_tda18272_freq_map_t(721920000, 0x5F, 0x12, 3) ) ( tvrx2_tda18272_freq_map_t(723968000, 0x5E, 0x12, 3) ) ( tvrx2_tda18272_freq_map_t(724992000, 0x5D, 0x12, 3) ) ( tvrx2_tda18272_freq_map_t(727040000, 0x5C, 0x12, 3) ) ( tvrx2_tda18272_freq_map_t(729088000, 0x5B, 0x11, 3) ) ( tvrx2_tda18272_freq_map_t(731136000, 0x5A, 0x11, 3) ) ( tvrx2_tda18272_freq_map_t(732160000, 0x59, 0x11, 3) ) ( tvrx2_tda18272_freq_map_t(734208000, 0x58, 0x11, 3) ) ( tvrx2_tda18272_freq_map_t(736256000, 0x57, 0x10, 3) ) ( tvrx2_tda18272_freq_map_t(738304000, 0x56, 0x10, 3) ) ( tvrx2_tda18272_freq_map_t(740352000, 0x55, 0x10, 3) ) ( tvrx2_tda18272_freq_map_t(741376000, 0x54, 0x10, 3) ) ( tvrx2_tda18272_freq_map_t(743424000, 0x53, 0x10, 3) ) ( tvrx2_tda18272_freq_map_t(745472000, 0x52, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(746496000, 0x51, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(748544000, 0x50, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(750592000, 0x4F, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(752640000, 0x4E, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(753664000, 0x4D, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(755712000, 0x4C, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(757760000, 0x4B, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(759808000, 0x4A, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(761856000, 0x49, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(762880000, 0x49, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(763904000, 0x48, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(765952000, 0x47, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(768000000, 0x46, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(770048000, 0x45, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(772096000, 0x44, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(774144000, 0x43, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(776192000, 0x42, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(778240000, 0x41, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(780288000, 0x40, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(783360000, 0x3F, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(785408000, 0x3E, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(787456000, 0x3D, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(789504000, 0x3C, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(790528000, 0x3B, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(792576000, 0x3A, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(794624000, 0x39, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(797696000, 0x38, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(799744000, 0x37, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(801792000, 0x36, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(803840000, 0x35, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(806912000, 0x34, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(808960000, 0x33, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(809984000, 0x33, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(811008000, 0x32, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(813056000, 0x31, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(816128000, 0x30, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(818176000, 0x2F, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(820224000, 0x2E, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(823296000, 0x2D, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(825344000, 0x2C, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(828416000, 0x2B, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(830464000, 0x2A, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(832512000, 0x29, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(834560000, 0x28, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(836608000, 0x27, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(839680000, 0x26, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(841728000, 0x25, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(844800000, 0x24, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(847872000, 0x23, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(849920000, 0x22, 0x0F, 3) ) ( tvrx2_tda18272_freq_map_t(852992000, 0x21, 0x0E, 3) ) ( tvrx2_tda18272_freq_map_t(855040000, 0x20, 0x0E, 3) ) ( tvrx2_tda18272_freq_map_t(858112000, 0x1F, 0x0E, 3) ) ( tvrx2_tda18272_freq_map_t(861184000, 0x1E, 0x0E, 3) ) ( tvrx2_tda18272_freq_map_t(863232000, 0x1D, 0x0E, 3) ) ( tvrx2_tda18272_freq_map_t(866304000, 0x1C, 0x0E, 3) ) ( tvrx2_tda18272_freq_map_t(900096000, 0x10, 0x0C, 3) ) ( tvrx2_tda18272_freq_map_t(929792000, 0x07, 0x0B, 3) ) ( tvrx2_tda18272_freq_map_t(969728000, 0x00, 0x0A, 3) ) ; static const freq_range_t tvrx2_freq_range(42e6, 870e6); static const freq_range_t tvrx2_bandwidth_range = list_of (range_t(1.7e6)) (range_t(6.0e6)) (range_t(7.0e6)) (range_t(8.0e6)) (range_t(10.0e6)) ; static const uhd::dict tvrx2_sd_name_to_antennas = map_list_of ("RX1", "J100") ("RX2", "J140") ; static const uhd::dict tvrx2_sd_name_to_conn = map_list_of ("RX1", "Q") ("RX2", "I") ; static const uhd::dict tvrx2_sd_name_to_i2c_addr = map_list_of ("RX1", 0x63) ("RX2", 0x60) ; static const uhd::dict tvrx2_sd_name_to_irq_io = map_list_of ("RX1", (RX1_IRQ)) ("RX2", (RX2_IRQ)) ; static const uhd::dict tvrx2_sd_name_to_dac = map_list_of ("RX1", dboard_iface::AUX_DAC_A) ("RX2", dboard_iface::AUX_DAC_B) ; static const uhd::dict tvrx2_gain_ranges = map_list_of // ("LNA", gain_range_t(-12, 15, 3)) // ("RF_FILTER", gain_range_t(-11, -2, 3)) // ("IR_MIXER", gain_range_t(2, 14, 3)) // ("LPF", gain_range_t(0, 9, 3)) ("IF", gain_range_t(0, 30, 0.5)) ; /*********************************************************************** * The TVRX2 dboard class **********************************************************************/ class tvrx2 : public rx_dboard_base{ public: tvrx2(ctor_args_t args); ~tvrx2(void); private: double _freq_scalar; double _lo_freq; double _if_freq; double _bandwidth; uhd::dict _gains; tda18272hnm_regs_t _tda18272hnm_regs; uhd::dict _rfcal_results; uhd::dict _rfcal_coeffs; bool _enabled; bool set_enabled(bool); double set_lo_freq(double target_freq); double set_gain(double gain, const std::string &name); double set_bandwidth(double bandwidth); void set_scaled_rf_freq(double rf_freq); double get_scaled_rf_freq(void); void set_scaled_if_freq(double if_freq); double get_scaled_if_freq(void); void send_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg); void read_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg); freq_range_t get_tda18272_rfcal_result_freq_range(boost::uint32_t result); void tvrx2_tda18272_init_rfcal(void); void tvrx2_tda18272_tune_rf_filter(boost::uint32_t uRF); void soft_calibration(void); void transition_0(void); void transition_1(void); void transition_2(int rf_freq); void transition_3(void); void transition_4(int rf_freq); void wait_irq(void); void test_rf_filter_robustness(void); /*********************************************************************** * The TVRX2 class helper functions **********************************************************************/ /*! * Is the IRQ set or cleared? * \return true for set */ bool get_irq(void){ read_reg(0x8, 0x8); //return irq status bool irq = _tda18272hnm_regs.irq_status == tda18272hnm_regs_t::IRQ_STATUS_SET; UHD_LOGV(often) << boost::format( "TVRX2 (%s): IRQ %d" ) % (get_subdev_name()) % irq << std::endl; return irq; } /*! * In Power-On Reset State? * Check POR logic for reset state (causes POR to clear) * \return true for reset */ bool get_power_reset(void){ read_reg(0x5, 0x5); //return POR state bool por = _tda18272hnm_regs.por == tda18272hnm_regs_t::POR_RESET; UHD_LOGV(often) << boost::format( "TVRX2 (%s): POR %d" ) % (get_subdev_name()) % int(_tda18272hnm_regs.por) << std::endl; return por; } /*! * Get the lock detect status of the LO. * \return sensor for locked */ sensor_value_t get_locked(void){ read_reg(0x5, 0x5); //return lock detect bool locked = _tda18272hnm_regs.lo_lock == tda18272hnm_regs_t::LO_LOCK_LOCKED; UHD_LOGV(often) << boost::format( "TVRX2 (%s): locked %d" ) % (get_subdev_name()) % locked << std::endl; return sensor_value_t("LO", locked, "locked", "unlocked"); } /*! * Read the RSSI from the registers * Read the RSSI from the aux adc * \return the rssi sensor in dB(m?) FIXME */ sensor_value_t get_rssi(void){ //Launch RSSI calculation with MSM statemachine _tda18272hnm_regs.set_reg(0x19, 0x80); //set MSM_byte_1 for rssi calculation _tda18272hnm_regs.set_reg(0x1A, 0x01); //set MSM_byte_2 for launching rssi calculation send_reg(0x19, 0x1A); wait_irq(); //read rssi in dBuV read_reg(0x7, 0x7); //calculate the rssi from the voltage double rssi_dBuV = 40.0 + double(((110.0 - 40.0)/128.0) * _tda18272hnm_regs.get_reg(0x7)); double rssi = rssi_dBuV - 107.0; //convert to dBm in 50ohm environment ( -108.8 if 75ohm ) FIXME return sensor_value_t("RSSI", rssi, "dBm"); } /*! * Read the Temperature from the registers * \return the temp in degC */ sensor_value_t get_temp(void){ //Enable Temperature reading _tda18272hnm_regs.tm_on = tda18272hnm_regs_t::TM_ON_SENSOR_ON; send_reg(0x4, 0x4); //read temp in degC read_reg(0x3, 0x3); UHD_LOGV(often) << boost::format( "TVRX2 (%s): Temperature %f C" ) % (get_subdev_name()) % (double(_tda18272hnm_regs.tm_d)) << std::endl; //Disable Temperature reading _tda18272hnm_regs.tm_on = tda18272hnm_regs_t::TM_ON_SENSOR_OFF; send_reg(0x4, 0x4); return sensor_value_t("TEMP", double(_tda18272hnm_regs.tm_d), "degC"); } }; /*********************************************************************** * Register the TVRX2 dboard **********************************************************************/ static dboard_base::sptr make_tvrx2(dboard_base::ctor_args_t args){ return dboard_base::sptr(new tvrx2(args)); } UHD_STATIC_BLOCK(reg_tvrx2_dboard){ //register the factory function for the rx dbid dboard_manager::register_dboard(0x0046, &make_tvrx2, "TVRX2", tvrx2_sd_name_to_conn.keys()); } /*********************************************************************** * Structors **********************************************************************/ tvrx2::tvrx2(ctor_args_t args) : rx_dboard_base(args){ //FIXME for USRP1, we can only support one TVRX2 installed _rfcal_results = map_list_of ( 0, tvrx2_tda18272_rfcal_result_t() ) ( 1, tvrx2_tda18272_rfcal_result_t() ) ( 2, tvrx2_tda18272_rfcal_result_t() ) ( 3, tvrx2_tda18272_rfcal_result_t() ) ( 4, tvrx2_tda18272_rfcal_result_t() ) ( 5, tvrx2_tda18272_rfcal_result_t() ) ( 6, tvrx2_tda18272_rfcal_result_t() ) ( 7, tvrx2_tda18272_rfcal_result_t() ) ( 8, tvrx2_tda18272_rfcal_result_t() ) ( 9, tvrx2_tda18272_rfcal_result_t() ) ( 10, tvrx2_tda18272_rfcal_result_t() ) ( 11, tvrx2_tda18272_rfcal_result_t() ) ; _rfcal_coeffs = map_list_of ( 0, tvrx2_tda18272_rfcal_coeffs_t(0) ) ( 1, tvrx2_tda18272_rfcal_coeffs_t(1) ) ( 2, tvrx2_tda18272_rfcal_coeffs_t(3) ) ( 3, tvrx2_tda18272_rfcal_coeffs_t(4) ) ( 4, tvrx2_tda18272_rfcal_coeffs_t(6) ) ( 5, tvrx2_tda18272_rfcal_coeffs_t(7) ) ( 6, tvrx2_tda18272_rfcal_coeffs_t(9) ) ( 7, tvrx2_tda18272_rfcal_coeffs_t(10) ) ; //set defaults for LO, gains, and filter bandwidth _bandwidth = 10e6; _if_freq = 12.5e6; _enabled = false; //send initial register settings //this->read_reg(0x0, 0x43); //this->send_reg(0x0, 0x43); //send magic xtal_cal_dac setting send_reg(0x65, 0x65); //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name") .set("TVRX2"); this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&tvrx2::get_locked, this)); this->get_rx_subtree()->create("sensors/rssi") .publish(boost::bind(&tvrx2::get_rssi, this)); this->get_rx_subtree()->create("sensors/temperature") .publish(boost::bind(&tvrx2::get_temp, this)); BOOST_FOREACH(const std::string &name, tvrx2_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&tvrx2::set_gain, this, _1, name)); this->get_rx_subtree()->create("gains/"+name+"/range") .set(tvrx2_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&tvrx2::set_lo_freq, this, _1)); this->get_rx_subtree()->create("freq/range") .set(tvrx2_freq_range); this->get_rx_subtree()->create("antenna/value") .set(tvrx2_sd_name_to_antennas[get_subdev_name()]); this->get_rx_subtree()->create >("antenna/options") .set(list_of(tvrx2_sd_name_to_antennas[get_subdev_name()])); this->get_rx_subtree()->create("connection") .set(tvrx2_sd_name_to_conn[get_subdev_name()]); this->get_rx_subtree()->create("enabled") .coerce(boost::bind(&tvrx2::set_enabled, this, _1)) .set(_enabled); this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") .coerce(boost::bind(&tvrx2::set_bandwidth, this, _1)) .set(_bandwidth); this->get_rx_subtree()->create("bandwidth/range") .set(tvrx2_bandwidth_range); //set the gpio directions and atr controls (identically) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, 0); // All unused in atr this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, OUTPUT_MASK); // Set outputs //configure ref_clock double ref_clock = this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX); if (ref_clock == 64.0e6) { this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, REFCLOCK_DIV4); UHD_LOGV(often) << boost::format( "TVRX2 (%s): Dividing Refclock by 4" ) % (get_subdev_name()) << std::endl; _freq_scalar = (4*16.0e6)/(this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX)); } else if (ref_clock == 100e6) { this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, REFCLOCK_DIV6); UHD_LOGV(often) << boost::format( "TVRX2 (%s): Dividing Refclock by 6" ) % (get_subdev_name()) << std::endl; _freq_scalar = (6*16.0e6)/this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX); } else { this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, REFCLOCK_DIV6); UHD_MSG(warning) << boost::format("Unsupported ref_clock %0.2f, valid options 64e6 and 100e6") % ref_clock << std::endl; _freq_scalar = 1.0; } //enable only the clocks we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); UHD_LOGV(often) << boost::format( "TVRX2 (%s): Refclock %f Hz, scalar = %f" ) % (get_subdev_name()) % (this->get_iface()->get_clock_rate(dboard_iface::UNIT_RX)) % _freq_scalar << std::endl; _tda18272hnm_regs.irq_polarity = tda18272hnm_regs_t::IRQ_POLARITY_RAISED_VCC; _tda18272hnm_regs.irq_clear = tda18272hnm_regs_t::IRQ_CLEAR_TRUE; send_reg(0x37, 0x37); send_reg(0xA, 0xA); send_reg(0x31, 0x31); //N_CP_Current send_reg(0x36, 0x36); //RSSI_Clock send_reg(0x24, 0x25); //AGC1_Do_step send_reg(0x2C, 0x2C); //AGC1_Do_step send_reg(0x2E, 0x2E); //AGC2_Do_step send_reg(0x0E, 0x0E); //AGCs_Up_step_assym send_reg(0x11, 0x11); //AGCs_Do_step_assym //intialize i2c //soft_calibration(); //tvrx2_tda18272_init_rfcal(); transition_0(); } bool tvrx2::set_enabled(bool enable){ if (enable == _enabled) return _enabled; if (enable and not _enabled){ //setup tuner parameters transition_1(); transition_2(int(tvrx2_freq_range.start())); test_rf_filter_robustness(); BOOST_FOREACH(const std::string &name, tvrx2_gain_ranges.keys()){ this->get_rx_subtree()->access("gains/"+name+"/value") .set(tvrx2_gain_ranges[name].start()); } this->get_rx_subtree()->access("bandwidth/value") .set(_bandwidth); // default bandwidth from datasheet //transition_2 equivalent this->get_rx_subtree()->access("freq/value") .set(tvrx2_freq_range.start()); //enter standby mode transition_3(); _enabled = true; } else { //enter standby mode transition_3(); _enabled = false; } return _enabled; } tvrx2::~tvrx2(void){ UHD_LOGV(often) << boost::format( "TVRX2 (%s): Called Destructor" ) % (get_subdev_name()) << std::endl; UHD_SAFE_CALL(if (_enabled) set_enabled(false);) } /*********************************************************************** * TDA18272 Register IO Functions **********************************************************************/ void tvrx2::set_scaled_rf_freq(double rf_freq){ _tda18272hnm_regs.set_rf_freq(_freq_scalar*rf_freq/1e3); } double tvrx2::get_scaled_rf_freq(void){ return _tda18272hnm_regs.get_rf_freq()*1e3/_freq_scalar; } void tvrx2::set_scaled_if_freq(double if_freq){ _tda18272hnm_regs.if_freq = int(_freq_scalar*if_freq/(50e3)); //max 12.8MHz?? } double tvrx2::get_scaled_if_freq(void){ return _tda18272hnm_regs.if_freq*50e3/_freq_scalar; } void tvrx2::send_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg){ start_reg = boost::uint8_t(uhd::clip(int(start_reg), 0x0, 0x43)); stop_reg = boost::uint8_t(uhd::clip(int(stop_reg), 0x0, 0x43)); for(boost::uint8_t start_addr=start_reg; start_addr <= stop_reg; start_addr += sizeof(boost::uint32_t) - 1){ int num_bytes = int(stop_reg - start_addr + 1) > int(sizeof(boost::uint32_t)) - 1 ? sizeof(boost::uint32_t) - 1 : stop_reg - start_addr + 1; //create buffer for register data (+1 for start address) byte_vector_t regs_vector(num_bytes + 1); //first byte is the address of first register regs_vector[0] = start_addr; //get the register data for(int i=0; iget_iface()->write_i2c( tvrx2_sd_name_to_i2c_addr[get_subdev_name()], regs_vector ); } } void tvrx2::read_reg(boost::uint8_t start_reg, boost::uint8_t stop_reg){ static const boost::uint8_t status_addr = 0x0; start_reg = boost::uint8_t(uhd::clip(int(start_reg), 0x0, 0x43)); stop_reg = boost::uint8_t(uhd::clip(int(stop_reg), 0x0, 0x43)); for(boost::uint8_t start_addr=start_reg; start_addr <= stop_reg; start_addr += sizeof(boost::uint32_t)){ int num_bytes = int(stop_reg - start_addr + 1) > int(sizeof(boost::uint32_t)) ? sizeof(boost::uint32_t) : stop_reg - start_addr + 1; //create buffer for starting address byte_vector_t start_address_vector(1); //first byte is the address of first register start_address_vector[0] = start_addr; //send the start address this->get_iface()->write_i2c( tvrx2_sd_name_to_i2c_addr[get_subdev_name()], start_address_vector ); //create buffer for register data byte_vector_t regs_vector(num_bytes); //read from i2c regs_vector = this->get_iface()->read_i2c( tvrx2_sd_name_to_i2c_addr[get_subdev_name()], num_bytes ); for(boost::uint8_t i=0; i < num_bytes; i++){ if (i + start_addr >= status_addr){ _tda18272hnm_regs.set_reg(i + start_addr, regs_vector[i]); } UHD_LOGV(often) << boost::format( "TVRX2 (%s, 0x%02x): read reg 0x%02x, value 0x%04x, start_addr = 0x%04x, num_bytes %d" ) % (get_subdev_name()) % int(tvrx2_sd_name_to_i2c_addr[get_subdev_name()]) % int(start_addr+i) % int(regs_vector[i]) % int(start_addr) % num_bytes << std::endl; } } } /*********************************************************************** * TDA18272 Calibration Functions **********************************************************************/ freq_range_t tvrx2::get_tda18272_rfcal_result_freq_range(boost::uint32_t result) { uhd::dict result_to_cal_freq_ranges_map = map_list_of ( 0, freq_range_t( (double) tvrx2_tda18272_cal_map[0].cal_freq[_tda18272hnm_regs.rfcal_freq0] * _freq_scalar, (double) tvrx2_tda18272_cal_map[1].cal_freq[_tda18272hnm_regs.rfcal_freq1] * _freq_scalar ) ) ( 1, freq_range_t( (double) tvrx2_tda18272_cal_map[1].cal_freq[_tda18272hnm_regs.rfcal_freq1] * _freq_scalar, (double) tvrx2_tda18272_cal_map[2].cal_freq[_tda18272hnm_regs.rfcal_freq2] * _freq_scalar ) ) ( 2, freq_range_t( (double) tvrx2_tda18272_cal_map[2].cal_freq[_tda18272hnm_regs.rfcal_freq2] * _freq_scalar, (double) tvrx2_tda18272_cal_map[3].cal_freq[_tda18272hnm_regs.rfcal_freq3] * _freq_scalar ) ) ( 3, freq_range_t( (double) tvrx2_tda18272_cal_map[3].cal_freq[_tda18272hnm_regs.rfcal_freq3] * _freq_scalar, (double) tvrx2_tda18272_cal_map[4].cal_freq[_tda18272hnm_regs.rfcal_freq4] * _freq_scalar ) ) ( 4, freq_range_t( (double) tvrx2_tda18272_cal_map[4].cal_freq[_tda18272hnm_regs.rfcal_freq4] * _freq_scalar, (double) tvrx2_tda18272_cal_map[5].cal_freq[_tda18272hnm_regs.rfcal_freq5] * _freq_scalar ) ) ( 5, freq_range_t( (double) tvrx2_tda18272_cal_map[5].cal_freq[_tda18272hnm_regs.rfcal_freq5] * _freq_scalar, (double) tvrx2_tda18272_cal_map[6].cal_freq[_tda18272hnm_regs.rfcal_freq6] * _freq_scalar ) ) ( 6, freq_range_t( (double) tvrx2_tda18272_cal_map[6].cal_freq[_tda18272hnm_regs.rfcal_freq6] * _freq_scalar, (double) tvrx2_tda18272_cal_map[7].cal_freq[_tda18272hnm_regs.rfcal_freq7] * _freq_scalar ) ) ( 7, freq_range_t( (double) tvrx2_tda18272_cal_map[7].cal_freq[_tda18272hnm_regs.rfcal_freq7] * _freq_scalar, (double) tvrx2_tda18272_cal_map[8].cal_freq[_tda18272hnm_regs.rfcal_freq8] * _freq_scalar ) ) ( 8, freq_range_t( (double) tvrx2_tda18272_cal_map[8].cal_freq[_tda18272hnm_regs.rfcal_freq8] * _freq_scalar, (double) tvrx2_tda18272_cal_map[9].cal_freq[_tda18272hnm_regs.rfcal_freq9] * _freq_scalar ) ) ( 9, freq_range_t( (double) tvrx2_tda18272_cal_map[9].cal_freq[_tda18272hnm_regs.rfcal_freq9] * _freq_scalar, (double) tvrx2_tda18272_cal_map[10].cal_freq[_tda18272hnm_regs.rfcal_freq10] * _freq_scalar ) ) (10, freq_range_t( (double) tvrx2_tda18272_cal_map[10].cal_freq[_tda18272hnm_regs.rfcal_freq10] * _freq_scalar, (double) tvrx2_tda18272_cal_map[11].cal_freq[_tda18272hnm_regs.rfcal_freq11] * _freq_scalar ) ) ; if (result < 11) return result_to_cal_freq_ranges_map[result]; else return freq_range_t(0.0, 0.0); } /* * Initialize the RF Filter calibration maps after hardware init */ void tvrx2::tvrx2_tda18272_init_rfcal(void) { /* read byte 0x38-0x43 */ read_reg(0x38, 0x43); uhd::dict result_to_cal_regs = map_list_of ( 0, _tda18272hnm_regs.rfcal_log_1) ( 1, _tda18272hnm_regs.rfcal_log_2) ( 2, _tda18272hnm_regs.rfcal_log_3) ( 3, _tda18272hnm_regs.rfcal_log_4) ( 4, _tda18272hnm_regs.rfcal_log_5) ( 5, _tda18272hnm_regs.rfcal_log_6) ( 6, _tda18272hnm_regs.rfcal_log_7) ( 7, _tda18272hnm_regs.rfcal_log_8) ( 8, _tda18272hnm_regs.rfcal_log_9) ( 9, _tda18272hnm_regs.rfcal_log_10) (10, _tda18272hnm_regs.rfcal_log_11) (11, _tda18272hnm_regs.rfcal_log_12) ; // Loop through rfcal_log_* registers, initialize _rfcal_results BOOST_FOREACH(const boost::uint32_t &result, result_to_cal_regs.keys()) _rfcal_results[result].delta_c = result_to_cal_regs[result] > 63 ? result_to_cal_regs[result] - 128 : result_to_cal_regs[result]; /* read byte 0x26-0x2B */ read_reg(0x26, 0x2B); // Loop through rfcal_byte_* registers, initialize _rfcal_coeffs BOOST_FOREACH(const boost::uint32_t &subband, _rfcal_coeffs.keys()) { freq_range_t subband_freqs; boost::uint32_t result = _rfcal_coeffs[subband].cal_number; subband_freqs = get_tda18272_rfcal_result_freq_range(result); _rfcal_coeffs[subband].RF_B1 = _rfcal_results[result].delta_c + tvrx2_tda18272_cal_map[result].c_offset[_rfcal_results[result].c_offset]; boost::uint32_t quotient = (((_rfcal_results[result+1].delta_c + tvrx2_tda18272_cal_map[result+1].c_offset[_rfcal_results[result].c_offset]) - (_rfcal_results[result].delta_c + tvrx2_tda18272_cal_map[result].c_offset[_rfcal_results[result].c_offset])) * 1000000); boost::uint32_t divisor = ((boost::int32_t)(subband_freqs.stop() - subband_freqs.start())/1000); _rfcal_coeffs[subband].RF_A1 = quotient / divisor; } } /* * Apply calibration coefficients to RF Filter tuning */ void tvrx2::tvrx2_tda18272_tune_rf_filter(boost::uint32_t uRF) { boost::uint32_t uCounter = 0; boost::uint8_t cal_result = 0; boost::uint32_t uRFCal0 = 0; boost::uint32_t uRFCal1 = 0; boost::uint8_t subband = 0; boost::int32_t cProg = 0; boost::uint8_t gain_taper = 0; boost::uint8_t RFBand = 0; boost::int32_t RF_A1 = 0; boost::int32_t RF_B1 = 0; freq_range_t subband_freqs; /* read byte 0x26-0x2B */ read_reg(0x26, 0x2B); subband_freqs = get_tda18272_rfcal_result_freq_range(1); uRFCal0 = subband_freqs.start(); subband_freqs = get_tda18272_rfcal_result_freq_range(4); uRFCal1 = subband_freqs.start(); if(uRF < uRFCal0) subband = 0; else if(uRF < 145700000) subband = 1; else if(uRF < uRFCal1) subband = 2; else if(uRF < 367400000) subband = 3; else { subband_freqs = get_tda18272_rfcal_result_freq_range(7); uRFCal0 = subband_freqs.start(); subband_freqs = get_tda18272_rfcal_result_freq_range(10); uRFCal1 = subband_freqs.start(); if(uRF < uRFCal0) subband = 4; else if(uRF < 625000000) subband = 5; else if(uRF < uRFCal1) subband = 6; else subband = 7; } cal_result = _rfcal_coeffs[subband].cal_number; subband_freqs = get_tda18272_rfcal_result_freq_range(cal_result); uRFCal0 = subband_freqs.start(); RF_A1 = _rfcal_coeffs[subband].RF_A1; RF_B1 = _rfcal_coeffs[subband].RF_B1; uCounter = 0; do uCounter ++; while (uRF >= tvrx2_tda18272_freq_map[uCounter].rf_max && uCounter < TVRX2_TDA18272_FREQ_MAP_ENTRIES); cProg = tvrx2_tda18272_freq_map[uCounter - 1].c_prog; gain_taper = tvrx2_tda18272_freq_map[uCounter - 1].gain_taper; RFBand = tvrx2_tda18272_freq_map[uCounter - 1].rf_band; cProg = (boost::int32_t)(cProg + RF_B1 + (RF_A1*((boost::int32_t)(uRF - uRFCal0)/1000))/1000000); if(cProg>255) cProg = 255; if(cProg<0) cProg = 0; _tda18272hnm_regs.rf_filter_bypass = 1; _tda18272hnm_regs.rf_filter_cap = (boost::uint8_t) cProg; _tda18272hnm_regs.gain_taper = gain_taper; _tda18272hnm_regs.rf_filter_band = RFBand; UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Software Calibration:\n" "\tRF Filter Bypass = %d\n" "\tRF Filter Cap = %d\n" "\tRF Filter Band = %d\n" "\tGain Taper = %d\n") % (get_subdev_name()) % int(_tda18272hnm_regs.rf_filter_bypass) % int(_tda18272hnm_regs.rf_filter_cap) % int(_tda18272hnm_regs.rf_filter_band) % int(_tda18272hnm_regs.gain_taper) << std::endl; send_reg(0x2c, 0x2f); } void tvrx2::soft_calibration(void){ UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Software Calibration: Initialize Tuner, Calibrate and Standby\n") % (get_subdev_name()) << std::endl; _tda18272hnm_regs.sm = tda18272hnm_regs_t::SM_NORMAL; _tda18272hnm_regs.sm_lna = tda18272hnm_regs_t::SM_LNA_ON; _tda18272hnm_regs.sm_pll = tda18272hnm_regs_t::SM_PLL_ON; send_reg(0x6, 0x6); read_reg(0x6, 0x6); read_reg(0x19, 0x1A); read_reg(0x26, 0x2B); _tda18272hnm_regs.rfcal_freq0 = 0x2; _tda18272hnm_regs.rfcal_freq1 = 0x2; _tda18272hnm_regs.rfcal_freq2 = 0x2; _tda18272hnm_regs.rfcal_freq3 = 0x2; _tda18272hnm_regs.rfcal_freq4 = 0x2; _tda18272hnm_regs.rfcal_freq5 = 0x2; _tda18272hnm_regs.rfcal_freq6 = 0x2; _tda18272hnm_regs.rfcal_freq7 = 0x2; _tda18272hnm_regs.rfcal_freq8 = 0x2; _tda18272hnm_regs.rfcal_freq9 = 0x2; _tda18272hnm_regs.rfcal_freq10 = 0x2; _tda18272hnm_regs.rfcal_freq11 = 0x2; send_reg(0x26, 0x2B); _tda18272hnm_regs.set_reg(0x19, 0x3B); //set MSM_byte_1 for calibration per datasheet _tda18272hnm_regs.set_reg(0x1A, 0x01); //set MSM_byte_2 for launching calibration send_reg(0x19, 0x1A); wait_irq(); send_reg(0x1D, 0x1D); //Fmax_LO send_reg(0x0C, 0x0C); //LT_Enable send_reg(0x1B, 0x1B); //PSM_AGC1 send_reg(0x0C, 0x0C); //AGC1_6_15dB //set spread spectrum for clock //FIXME: NXP turns clock spread on and off // based on where clock spurs would be relative to RF frequency // we should do this also _tda18272hnm_regs.digital_clock = tda18272hnm_regs_t::DIGITAL_CLOCK_SPREAD_OFF; if (get_subdev_name() == "RX1") //_tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_NO; _tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_16MHZ; else //_tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_NO; _tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_16MHZ; send_reg(0x14, 0x14); _tda18272hnm_regs.set_reg(0x36, 0x0E); //sets clock mode send_reg(0x36, 0x36); //go to standby mode _tda18272hnm_regs.sm = tda18272hnm_regs_t::SM_STANDBY; send_reg(0x6, 0x6); } void tvrx2::test_rf_filter_robustness(void){ typedef uhd::dict tvrx2_filter_ratings_t; typedef uhd::dict tvrx2_filter_margins_t; tvrx2_filter_margins_t _filter_margins; tvrx2_filter_ratings_t _filter_ratings; read_reg(0x38, 0x43); uhd::dict filter_cal_regs = map_list_of ("VHFLow_0", 0x38) ("VHFLow_1", 0x3a) ("VHFHigh_0", 0x3b) ("VHFHigh_1", 0x3d) ("UHFLow_0", 0x3e) ("UHFLow_1", 0x40) ("UHFHigh_0", 0x41) ("UHFHigh_1", 0x43) ; BOOST_FOREACH(const std::string &name, filter_cal_regs.keys()){ boost::uint8_t cal_result = _tda18272hnm_regs.get_reg(filter_cal_regs[name]); if (cal_result & 0x80) { _filter_ratings.set(name, "E"); _filter_margins.set(name, 0.0); } else { double partial; if (name == "VHFLow_0") partial = 100 * (45 - 39.8225 * (1 + (0.31 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0)) / 45.0; else if (name == "VHFLow_1") partial = 100 * (152.1828 * (1 + (1.53 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0) - (144.896 - 6)) / (144.896 - 6); else if (name == "VHFHigh_0") partial = 100 * ((144.896 + 6) - 135.4063 * (1 + (0.27 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0)) / (144.896 + 6); else if (name == "VHFHigh_1") partial = 100 * (383.1455 * (1 + (0.91 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0) - (367.104 - 8)) / (367.104 - 8); else if (name == "UHFLow_0") partial = 100 * ((367.104 + 8) - 342.6224 * (1 + (0.21 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0)) / (367.104 + 8); else if (name == "UHFLow_1") partial = 100 * (662.5595 * (1 + (0.33 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0) - (624.128 - 2)) / (624.128 - 2); else if (name == "UHFHigh_0") partial = 100 * ((624.128 + 2) - 508.2747 * (1 + (0.23 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0)) / (624.128 + 2); else if (name == "UHFHigh_1") partial = 100 * (947.8913 * (1 + (0.3 * (cal_result < 64 ? cal_result : cal_result - 128)) / 1.0 / 100.0) - (866 - 14)) / (866 - 14); else UHD_THROW_INVALID_CODE_PATH(); _filter_margins.set(name, 0.0024 * partial * partial * partial - 0.101 * partial * partial + 1.629 * partial + 1.8266); _filter_ratings.set(name, _filter_margins[name] >= 0.0 ? "H" : "L"); } } std::stringstream robustness_message; robustness_message << boost::format("TVRX2 (%s): RF Filter Robustness Results:") % (get_subdev_name()) << std::endl; BOOST_FOREACH(const std::string &name, uhd::sorted(_filter_ratings.keys())){ robustness_message << boost::format("\t%s:\tMargin = %0.2f,\tRobustness = %c") % name % (_filter_margins[name]) % (_filter_ratings[name]) << std::endl; } UHD_LOGV(often) << robustness_message.str(); } /*********************************************************************** * TDA18272 State Functions **********************************************************************/ void tvrx2::transition_0(void){ //Transition 0: Initialize Tuner and place in standby UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Transistion 0: Initialize Tuner, Calibrate and Standby\n") % (get_subdev_name()) << std::endl; //Check for Power-On Reset, if reset, initialze tuner if (get_power_reset()) { _tda18272hnm_regs.sm = tda18272hnm_regs_t::SM_NORMAL; _tda18272hnm_regs.sm_lna = tda18272hnm_regs_t::SM_LNA_ON; _tda18272hnm_regs.sm_pll = tda18272hnm_regs_t::SM_PLL_ON; send_reg(0x6, 0x6); read_reg(0x6, 0x6); read_reg(0x19, 0x1A); _tda18272hnm_regs.set_reg(0x19, 0x3B); //set MSM_byte_1 for calibration per datasheet _tda18272hnm_regs.set_reg(0x1A, 0x01); //set MSM_byte_2 for launching calibration send_reg(0x19, 0x1A); wait_irq(); } //send magic xtal_cal_dac setting send_reg(0x65, 0x65); send_reg(0x1D, 0x1D); //Fmax_LO send_reg(0x0C, 0x0C); //LT_Enable send_reg(0x1B, 0x1B); //PSM_AGC1 send_reg(0x0C, 0x0C); //AGC1_6_15dB //set spread spectrum for clock //FIXME: NXP turns clock spread on and off // based on where clock spurs would be relative to RF frequency // we should do this also _tda18272hnm_regs.digital_clock = tda18272hnm_regs_t::DIGITAL_CLOCK_SPREAD_OFF; if (get_subdev_name() == "RX1") //_tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_NO; _tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_16MHZ; else //_tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_NO; _tda18272hnm_regs.xtout = tda18272hnm_regs_t::XTOUT_16MHZ; send_reg(0x14, 0x14); _tda18272hnm_regs.set_reg(0x36, 0x0E); //sets clock mode send_reg(0x36, 0x36); //go to standby mode _tda18272hnm_regs.sm = tda18272hnm_regs_t::SM_STANDBY; send_reg(0x6, 0x6); } void tvrx2::transition_1(void){ //Transition 1: Select TV Standard UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Transistion 1: Select TV Standard\n") % (get_subdev_name()) << std::endl; //send magic xtal_cal_dac setting send_reg(0x65, 0x65); //Choose IF Byte 1 Setting //_tda18272hnm_regs.if_hp_fc = tda18272hnm_regs_t::IF_HP_FC_0_4MHZ; //_tda18272hnm_regs.if_notch = tda18272hnm_regs_t::IF_NOTCH_OFF; //_tda18272hnm_regs.lp_fc_offset = tda18272hnm_regs_t::LP_FC_OFFSET_0_PERCENT; //_tda18272hnm_regs.lp_fc = tda18272hnm_regs_t::LP_FC_10_0MHZ; //send_reg(0x13, 0x13); //Choose IR Mixer Byte 2 Setting //_tda18272hnm_regs.hi_pass = tda18272hnm_regs_t::HI_PASS_DISABLE; //_tda18272hnm_regs.dc_notch = tda18272hnm_regs_t::DC_NOTCH_OFF; send_reg(0x23, 0x23); //Set AGC TOP Bytes send_reg(0x0C, 0x13); //Set PSM Byt1 send_reg(0x1B, 0x1B); //Choose IF Frequency, setting is 50KHz steps set_scaled_if_freq(_if_freq); send_reg(0x15, 0x15); } void tvrx2::transition_2(int rf_freq){ //Transition 2: Select RF Frequency after changing TV Standard UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Transistion 2: Select RF Frequency after changing TV Standard\n") % (get_subdev_name()) << std::endl; //send magic xtal_cal_dac setting send_reg(0x65, 0x65); //Wake up from Standby _tda18272hnm_regs.sm = tda18272hnm_regs_t::SM_NORMAL; _tda18272hnm_regs.sm_lna = tda18272hnm_regs_t::SM_LNA_ON; _tda18272hnm_regs.sm_pll = tda18272hnm_regs_t::SM_PLL_ON; send_reg(0x6, 0x6); //Set Clock Mode _tda18272hnm_regs.set_reg(0x36, 0x00); send_reg(0x36, 0x36); //Set desired RF Frequency set_scaled_rf_freq(rf_freq); send_reg(0x16, 0x18); //Lock PLL and tune RF Filters _tda18272hnm_regs.set_reg(0x19, 0x41); //set MSM_byte_1 for RF Filters Tuning, PLL Locking _tda18272hnm_regs.set_reg(0x1A, 0x01); //set MSM_byte_2 for launching calibration send_reg(0x19, 0x1A); wait_irq(); tvrx2_tda18272_tune_rf_filter(rf_freq); ////LO Lock state in Reg 0x5 LSB //read_reg(0x6, 0x6); } void tvrx2::transition_3(void){ //Transition 3: Standby Mode UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Transistion 3: Standby Mode\n") % (get_subdev_name()) << std::endl; //send magic xtal_cal_dac setting send_reg(0x65, 0x65); //Set clock mode _tda18272hnm_regs.set_reg(0x36, 0x0E); send_reg(0x36, 0x36); //go to standby mode _tda18272hnm_regs.sm = tda18272hnm_regs_t::SM_STANDBY; _tda18272hnm_regs.sm_lna = tda18272hnm_regs_t::SM_LNA_OFF; _tda18272hnm_regs.sm_pll = tda18272hnm_regs_t::SM_PLL_OFF; send_reg(0x6, 0x6); } void tvrx2::transition_4(int rf_freq){ //Transition 4: Change RF Frequency without changing TV Standard UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Transistion 4: Change RF Frequency without changing TV Standard\n") % (get_subdev_name()) << std::endl; //send magic xtal_cal_dac setting send_reg(0x65, 0x65); //Set desired RF Frequency set_scaled_rf_freq(rf_freq); send_reg(0x16, 0x18); //Lock PLL and tune RF Filters _tda18272hnm_regs.set_reg(0x19, 0x41); //set MSM_byte_1 for RF Filters Tuning, PLL Locking _tda18272hnm_regs.set_reg(0x1A, 0x01); //set MSM_byte_2 for launching calibration send_reg(0x19, 0x1A); wait_irq(); tvrx2_tda18272_tune_rf_filter(rf_freq); ////LO Lock state in Reg 0x5 LSB //read_reg(0x5, 0x6); } void tvrx2::wait_irq(void){ int timeout = 20; //irq waiting timeout in milliseconds //int irq = (this->get_iface()->read_gpio(dboard_iface::UNIT_RX) & int(tvrx2_sd_name_to_irq_io[get_subdev_name()])); bool irq = get_irq(); UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Waiting on IRQ, subdev = %d, mask = 0x%x, Status: 0x%x\n") % (get_subdev_name()) % get_subdev_name() % (int(tvrx2_sd_name_to_irq_io[get_subdev_name()])) % irq << std::endl; while (not irq and timeout > 0) { //irq = (this->get_iface()->read_gpio(dboard_iface::UNIT_RX) & tvrx2_sd_name_to_irq_io[get_subdev_name()]); irq = get_irq(); boost::this_thread::sleep(boost::posix_time::milliseconds(10)); timeout -= 1; } UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): IRQ Raised, subdev = %d, mask = 0x%x, Status: 0x%x, Timeout: %d\n") % (get_subdev_name()) % get_subdev_name() % (int(tvrx2_sd_name_to_irq_io[get_subdev_name()])) % irq % timeout << std::endl; read_reg(0xA, 0xB); //UHD_ASSERT_THROW(timeout > 0); if(timeout <= 0) UHD_MSG(warning) << boost::format( "\nTVRX2 (%s): Timeout waiting on IRQ\n") % (get_subdev_name()) << std::endl; _tda18272hnm_regs.irq_clear = tda18272hnm_regs_t::IRQ_CLEAR_TRUE; send_reg(0xA, 0xA); read_reg(0xA, 0xB); irq = (this->get_iface()->read_gpio(dboard_iface::UNIT_RX) & tvrx2_sd_name_to_irq_io[get_subdev_name()]); UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): Cleared IRQ, subdev = %d, mask = 0x%x, Status: 0x%x\n") % (get_subdev_name()) % get_subdev_name() % (int(tvrx2_sd_name_to_irq_io[get_subdev_name()])) % irq << std::endl; } /*********************************************************************** * Tuning **********************************************************************/ double tvrx2::set_lo_freq(double target_freq){ //target_freq = std::clip(target_freq, tvrx2_freq_range.min, tvrx2_freq_range.max); read_reg(0x6, 0x6); if (_tda18272hnm_regs.sm == tda18272hnm_regs_t::SM_STANDBY) { transition_2(int(target_freq + _bandwidth/2 - get_scaled_if_freq())); } else { transition_4(int(target_freq + _bandwidth/2 - get_scaled_if_freq())); } read_reg(0x16, 0x18); //compute actual tuned frequency _lo_freq = get_scaled_rf_freq() + get_scaled_if_freq(); // - _bandwidth/2; //debug output of calculated variables UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): LO Frequency\n" "\tRequested: \t%f\n" "\tComputed: \t%f\n" "\tReadback: \t%f\n" "\tIF Frequency: \t%f\n") % (get_subdev_name()) % target_freq % double(int(target_freq/1e3)*1e3) % get_scaled_rf_freq() % get_scaled_if_freq() << std::endl; get_locked(); test_rf_filter_robustness(); UHD_LOGV(often) << boost::format( "\nTVRX2 (%s): RSSI = %f dBm\n" ) % (get_subdev_name()) % (get_rssi().to_real()) << std::endl; return _lo_freq; } /*********************************************************************** * Gain Handling **********************************************************************/ /* * Convert the requested gain into a dac voltage */ static double gain_to_if_gain_dac(double &gain){ //clip the input gain = tvrx2_gain_ranges["IF"].clip(gain); //voltage level constants static const double max_volts = double(1.7), min_volts = double(0.5); static const double slope = (max_volts-min_volts)/tvrx2_gain_ranges["IF"].stop(); //calculate the voltage for the aux dac double dac_volts = gain*slope + min_volts; UHD_LOGV(often) << boost::format( "TVRX2 IF Gain: %f dB, dac_volts: %f V" ) % gain % dac_volts << std::endl; //the actual gain setting gain = (dac_volts - min_volts)/slope; return dac_volts; } double tvrx2::set_gain(double gain, const std::string &name){ assert_has(tvrx2_gain_ranges.keys(), name, "tvrx2 gain name"); if (name == "IF"){ //write voltage to aux_dac this->get_iface()->write_aux_dac(dboard_iface::UNIT_RX, tvrx2_sd_name_to_dac[get_subdev_name()], gain_to_if_gain_dac(gain)); } else UHD_THROW_INVALID_CODE_PATH(); //shadow gain setting _gains[name] = gain; return gain; } /*********************************************************************** * Bandwidth Handling **********************************************************************/ static tda18272hnm_regs_t::lp_fc_t bandwidth_to_lp_fc_reg(double &bandwidth){ int reg = uhd::clip(boost::math::iround((bandwidth-5.0e6)/1.0e6), 0, 4); switch(reg){ case 0: bandwidth = 1.7e6; return tda18272hnm_regs_t::LP_FC_1_7MHZ; case 1: bandwidth = 6e6; return tda18272hnm_regs_t::LP_FC_6_0MHZ; case 2: bandwidth = 7e6; return tda18272hnm_regs_t::LP_FC_7_0MHZ; case 3: bandwidth = 8e6; return tda18272hnm_regs_t::LP_FC_8_0MHZ; case 4: bandwidth = 10e6; return tda18272hnm_regs_t::LP_FC_10_0MHZ; } UHD_THROW_INVALID_CODE_PATH(); } double tvrx2::set_bandwidth(double bandwidth){ //clip the input bandwidth = tvrx2_bandwidth_range.clip(bandwidth); //compute low pass cutoff frequency setting _tda18272hnm_regs.lp_fc = bandwidth_to_lp_fc_reg(bandwidth); //shadow bandwidth setting _bandwidth = bandwidth; //update register send_reg(0x13, 0x13); UHD_LOGV(often) << boost::format( "TVRX2 (%s) Bandwidth (lp_fc): %f Hz, reg: %d" ) % (get_subdev_name()) % _bandwidth % (int(_tda18272hnm_regs.lp_fc)) << std::endl; return _bandwidth; } uhd-3.5.5/host/lib/usrp/dboard/db_unknown.cpp000066400000000000000000000150301224274632000211240ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * Utility functions **********************************************************************/ static void warn_if_old_rfx(const dboard_id_t &dboard_id, const std::string &xx){ typedef boost::tuple old_ids_t; //name, rx_id, tx_id static const std::vector old_rfx_ids = list_of (old_ids_t("Flex 400 Classic", 0x0004, 0x0008)) (old_ids_t("Flex 900 Classic", 0x0005, 0x0009)) (old_ids_t("Flex 1200 Classic", 0x0006, 0x000a)) (old_ids_t("Flex 1800 Classic", 0x0030, 0x0031)) (old_ids_t("Flex 2400 Classic", 0x0007, 0x000b)) ; BOOST_FOREACH(const old_ids_t &old_id, old_rfx_ids){ std::string name; dboard_id_t rx_id, tx_id; boost::tie(name, rx_id, tx_id) = old_id; if ( (xx == "RX" and rx_id == dboard_id) or (xx == "TX" and tx_id == dboard_id) ) UHD_MSG(warning) << boost::format( "Detected %s daughterboard %s\n" "This board requires modification to use.\n" "See the daughterboard application notes.\n" ) % xx % name; } } /*********************************************************************** * The unknown boards: * Like a basic board, but with only one subdev. **********************************************************************/ class unknown_rx : public rx_dboard_base{ public: unknown_rx(ctor_args_t args); }; class unknown_tx : public tx_dboard_base{ public: unknown_tx(ctor_args_t args); }; /*********************************************************************** * Register the unknown dboards **********************************************************************/ static dboard_base::sptr make_unknown_rx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new unknown_rx(args)); } static dboard_base::sptr make_unknown_tx(dboard_base::ctor_args_t args){ return dboard_base::sptr(new unknown_tx(args)); } UHD_STATIC_BLOCK(reg_unknown_dboards){ dboard_manager::register_dboard(0xfff0, &make_unknown_tx, "Unknown TX"); dboard_manager::register_dboard(0xfff1, &make_unknown_rx, "Unknown RX"); } /*********************************************************************** * Unknown RX dboard **********************************************************************/ unknown_rx::unknown_rx(ctor_args_t args) : rx_dboard_base(args){ warn_if_old_rfx(this->get_rx_id(), "RX"); //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name").set( std::string(str(boost::format("%s - %s") % get_rx_id().to_pp_string() % get_subdev_name() ))); this->get_rx_subtree()->create("gains"); //phony property so this dir exists this->get_rx_subtree()->create("freq/value") .set(double(0.0)); this->get_rx_subtree()->create("freq/range") .set(freq_range_t(double(0.0), double(0.0))); this->get_rx_subtree()->create("antenna/value") .set(""); this->get_rx_subtree()->create >("antenna/options") .set(list_of("")); this->get_rx_subtree()->create("sensors"); //phony property so this dir exists this->get_rx_subtree()->create("connection") .set("IQ"); this->get_rx_subtree()->create("enabled") .set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") .set(double(0.0)); this->get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(0.0, 0.0)); } /*********************************************************************** * Unknown TX dboard **********************************************************************/ unknown_tx::unknown_tx(ctor_args_t args) : tx_dboard_base(args){ warn_if_old_rfx(this->get_tx_id(), "TX"); //////////////////////////////////////////////////////////////////// // Register properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->create("name").set( std::string(str(boost::format("%s - %s") % get_tx_id().to_pp_string() % get_subdev_name() ))); this->get_tx_subtree()->create("gains"); //phony property so this dir exists this->get_tx_subtree()->create("freq/value") .set(double(0.0)); this->get_tx_subtree()->create("freq/range") .set(freq_range_t(double(0.0), double(0.0))); this->get_tx_subtree()->create("antenna/value") .set(""); this->get_tx_subtree()->create >("antenna/options") .set(list_of("")); this->get_tx_subtree()->create("sensors"); //phony property so this dir exists this->get_tx_subtree()->create("connection") .set("IQ"); this->get_tx_subtree()->create("enabled") .set(true); //always enabled this->get_tx_subtree()->create("use_lo_offset") .set(false); this->get_tx_subtree()->create("bandwidth/value") .set(double(0.0)); this->get_tx_subtree()->create("bandwidth/range") .set(freq_range_t(0.0, 0.0)); } uhd-3.5.5/host/lib/usrp/dboard/db_wbx_common.cpp000066400000000000000000000140361224274632000216020ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "db_wbx_common.hpp" #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * Gain-related functions **********************************************************************/ static int rx_pga0_gain_to_iobits(double &gain){ //clip the input gain = wbx_rx_gain_ranges["PGA0"].clip(gain); //convert to attenuation double attn = wbx_rx_gain_ranges["PGA0"].stop() - gain; //calculate the attenuation int attn_code = boost::math::iround(attn*2); int iobits = ((~attn_code) << RX_ATTN_SHIFT) & RX_ATTN_MASK; UHD_LOGV(often) << boost::format( "WBX RX Attenuation: %f dB, Code: %d, IO Bits %x, Mask: %x" ) % attn % attn_code % (iobits & RX_ATTN_MASK) % RX_ATTN_MASK << std::endl; //the actual gain setting gain = wbx_rx_gain_ranges["PGA0"].stop() - double(attn_code)/2; return iobits; } /*********************************************************************** * WBX Common Implementation **********************************************************************/ wbx_base::wbx_base(ctor_args_t args) : xcvr_dboard_base(args){ //enable the clocks that we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_TX, true); this->get_iface()->set_clock_enabled(dboard_iface::UNIT_RX, true); //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&wbx_base::get_locked, this, dboard_iface::UNIT_RX)); BOOST_FOREACH(const std::string &name, wbx_rx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&wbx_base::set_rx_gain, this, _1, name)) .set(wbx_rx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(wbx_rx_gain_ranges[name]); } this->get_rx_subtree()->create("connection").set("IQ"); this->get_rx_subtree()->create("enabled") .subscribe(boost::bind(&wbx_base::set_rx_enabled, this, _1)) .set(true); //start enabled this->get_rx_subtree()->create("use_lo_offset").set(false); this->get_rx_subtree()->create("bandwidth/value").set(2*20.0e6); //20MHz low-pass, we want complex double-sided this->get_rx_subtree()->create("bandwidth/range") .set(freq_range_t(2*20.0e6, 2*20.0e6)); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&wbx_base::get_locked, this, dboard_iface::UNIT_TX)); this->get_tx_subtree()->create("connection").set("IQ"); this->get_tx_subtree()->create("use_lo_offset").set(false); this->get_tx_subtree()->create("bandwidth/value").set(2*20.0e6); //20MHz low-pass, we want complex double-sided this->get_tx_subtree()->create("bandwidth/range") .set(freq_range_t(2*20.0e6, 2*20.0e6)); // instantiate subclass foo switch(get_rx_id().to_uint16()) { case 0x053: db_actual = wbx_versionx_sptr(new wbx_version2(this)); return; case 0x057: db_actual = wbx_versionx_sptr(new wbx_version3(this)); return; case 0x063: db_actual = wbx_versionx_sptr(new wbx_version4(this)); return; default: /* We didn't recognize the version of the board... */ UHD_THROW_INVALID_CODE_PATH(); } } wbx_base::~wbx_base(void){ /* NOP */ } /*********************************************************************** * Enables **********************************************************************/ void wbx_base::set_rx_enabled(bool enb){ this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, (enb)? RX_POWER_UP : RX_POWER_DOWN, RX_POWER_UP | RX_POWER_DOWN ); } /*********************************************************************** * Gain Handling **********************************************************************/ double wbx_base::set_rx_gain(double gain, const std::string &name){ assert_has(wbx_rx_gain_ranges.keys(), name, "wbx rx gain name"); if(name == "PGA0"){ boost::uint16_t io_bits = rx_pga0_gain_to_iobits(gain); _rx_gains[name] = gain; //write the new gain to rx gpio outputs this->get_iface()->set_gpio_out(dboard_iface::UNIT_RX, io_bits, RX_ATTN_MASK); } else UHD_THROW_INVALID_CODE_PATH(); return _rx_gains[name]; //returned shadowed } /*********************************************************************** * Tuning **********************************************************************/ sensor_value_t wbx_base::get_locked(dboard_iface::unit_t unit){ const bool locked = (this->get_iface()->read_gpio(unit) & LOCKDET_MASK) != 0; return sensor_value_t("LO", locked, "locked", "unlocked"); } uhd-3.5.5/host/lib/usrp/dboard/db_wbx_common.hpp000066400000000000000000000154041224274632000216070ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_DBOARD_DB_WBX_COMMON_HPP #define INCLUDED_LIBUHD_USRP_DBOARD_DB_WBX_COMMON_HPP // Common IO Pins #define ADF4350_CE (1 << 3) #define ADF4350_PDBRF (1 << 2) #define ADF4350_MUXOUT (1 << 1) // INPUT!!! #define ADF4351_CE (1 << 3) #define ADF4351_PDBRF (1 << 2) #define ADF4351_MUXOUT (1 << 1) // INPUT!!! #define LOCKDET_MASK (1 << 0) // INPUT!!! // TX IO Pins #define TX_PUP_5V (1 << 7) // enables 5.0V power supply #define TX_PUP_3V (1 << 6) // enables 3.3V supply #define TXMOD_EN (1 << 4) // on UNIT_TX, 1 enables TX Modulator // RX IO Pins #define RX_PUP_5V (1 << 7) // enables 5.0V power supply #define RX_PUP_3V (1 << 6) // enables 3.3V supply #define RXBB_PDB (1 << 4) // on UNIT_RX, 1 powers up RX baseband // RX Attenuator Pins #define RX_ATTN_SHIFT 8 // lsb of RX Attenuator Control #define RX_ATTN_MASK (63 << RX_ATTN_SHIFT) // valid bits of RX Attenuator Control // TX Attenuator Pins (v3 only) #define TX_ATTN_16 (1 << 14) #define TX_ATTN_8 (1 << 5) #define TX_ATTN_4 (1 << 4) #define TX_ATTN_2 (1 << 3) #define TX_ATTN_1 (1 << 1) #define TX_ATTN_MASK (TX_ATTN_16|TX_ATTN_8|TX_ATTN_4|TX_ATTN_2|TX_ATTN_1) // valid bits of TX Attenuator Control // Mixer functions #define TX_MIXER_ENB (TXMOD_EN|ADF4350_PDBRF) // for v3, TXMOD_EN tied to ADF4350_PDBRF rather than separate #define TX_MIXER_DIS 0 #define RX_MIXER_ENB (RXBB_PDB|ADF4350_PDBRF) #define RX_MIXER_DIS 0 // Power functions #define TX_POWER_UP (TX_PUP_5V|TX_PUP_3V) // high enables power supply #define TX_POWER_DOWN 0 #define RX_POWER_UP (RX_PUP_5V|RX_PUP_3V|ADF4350_CE) // high enables power supply #define RX_POWER_DOWN 0 #include #include #include #include #include #include #include #include #include #include #include namespace uhd{ namespace usrp{ /*********************************************************************** * The WBX Common dboard constants **********************************************************************/ static const uhd::dict wbx_rx_gain_ranges = boost::assign::map_list_of ("PGA0", gain_range_t(0, 31.5, 0.5)); /*********************************************************************** * The WBX dboard base class **********************************************************************/ class wbx_base : public xcvr_dboard_base{ public: wbx_base(ctor_args_t args); virtual ~wbx_base(void); protected: virtual double set_rx_gain(double gain, const std::string &name); virtual void set_rx_enabled(bool enb); /*! * Get the lock detect status of the LO. * * This operation is identical for all versions of the WBX board. * \param unit which unit rx or tx * \return true for locked */ virtual sensor_value_t get_locked(dboard_iface::unit_t unit); /*! * Version-agnostic ABC that wraps version-specific implementations of the * WBX base daughterboard. * * This class is an abstract base class, and thus is impossible to * instantiate. */ class wbx_versionx { public: wbx_versionx() {} ~wbx_versionx(void) {} virtual double set_tx_gain(double gain, const std::string &name) = 0; virtual void set_tx_enabled(bool enb) = 0; virtual double set_lo_freq(dboard_iface::unit_t unit, double target_freq) = 0; /*! This is the registered instance of the wrapper class, wbx_base. */ wbx_base *self_base; property_tree::sptr get_rx_subtree(void){ return self_base->get_rx_subtree(); } property_tree::sptr get_tx_subtree(void){ return self_base->get_tx_subtree(); } }; /*! * Version 2 of the WBX Daughterboard * * Basically the original release of the DB. */ class wbx_version2 : public wbx_versionx { public: wbx_version2(wbx_base *_self_wbx_base); ~wbx_version2(void); double set_tx_gain(double gain, const std::string &name); void set_tx_enabled(bool enb); double set_lo_freq(dboard_iface::unit_t unit, double target_freq); }; /*! * Version 3 of the WBX Daughterboard * * Fixed a problem with the AGC from Version 2. */ class wbx_version3 : public wbx_versionx { public: wbx_version3(wbx_base *_self_wbx_base); ~wbx_version3(void); double set_tx_gain(double gain, const std::string &name); void set_tx_enabled(bool enb); double set_lo_freq(dboard_iface::unit_t unit, double target_freq); }; /*! * Version 4 of the WBX Daughterboard * * Upgrades the Frequnecy Synthensizer from ADF4350 to ADF4351. */ class wbx_version4 : public wbx_versionx { public: wbx_version4(wbx_base *_self_wbx_base); ~wbx_version4(void); double set_tx_gain(double gain, const std::string &name); void set_tx_enabled(bool enb); double set_lo_freq(dboard_iface::unit_t unit, double target_freq); }; /*! * Handle to the version-specific implementation of the WBX. * * Since many of this class's functions are dependent on the version of the * WBX board, this class will instantiate an object of the appropriate * wbx_version_* subclass, and invoke any relevant functions through that * object. This pointer is set to the proper object at construction time. */ typedef boost::shared_ptr wbx_versionx_sptr; wbx_versionx_sptr db_actual; uhd::dict _tx_gains, _rx_gains; bool _rx_enabled, _tx_enabled; }; }} //namespace uhd::usrp #endif /* INCLUDED_LIBUHD_USRP_DBOARD_DB_WBX_COMMON_HPP */ uhd-3.5.5/host/lib/usrp/dboard/db_wbx_simple.cpp000066400000000000000000000172451224274632000216100ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // Antenna constants #define ANTSW_IO ((1 << 15)) // on UNIT_TX, 0 = TX, 1 = RX, on UNIT_RX 0 = main ant, 1 = RX2 #define ANT_TX 0 //the tx line is transmitting #define ANT_RX ANTSW_IO //the tx line is receiving #define ANT_TXRX 0 //the rx line is on txrx #define ANT_RX2 ANTSW_IO //the rx line in on rx2 #include "db_wbx_common.hpp" #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The WBX Simple dboard constants **********************************************************************/ static const std::vector wbx_tx_antennas = list_of("TX/RX")("CAL"); static const std::vector wbx_rx_antennas = list_of("TX/RX")("RX2")("CAL"); /*********************************************************************** * The WBX simple implementation **********************************************************************/ class wbx_simple : public wbx_base{ public: wbx_simple(ctor_args_t args); ~wbx_simple(void); private: void set_rx_ant(const std::string &ant); void set_tx_ant(const std::string &ant); std::string _rx_ant; }; /*********************************************************************** * Register the WBX simple implementation **********************************************************************/ static dboard_base::sptr make_wbx_simple(dboard_base::ctor_args_t args){ return dboard_base::sptr(new wbx_simple(args)); } /*********************************************************************** * ID Numbers for WBX daughterboard combinations. **********************************************************************/ UHD_STATIC_BLOCK(reg_wbx_simple_dboards){ dboard_manager::register_dboard(0x0053, 0x0052, &make_wbx_simple, "WBX"); dboard_manager::register_dboard(0x0053, 0x004f, &make_wbx_simple, "WBX + Simple GDB"); dboard_manager::register_dboard(0x0057, 0x0056, &make_wbx_simple, "WBX v3"); dboard_manager::register_dboard(0x0057, 0x004f, &make_wbx_simple, "WBX v3 + Simple GDB"); dboard_manager::register_dboard(0x0063, 0x0062, &make_wbx_simple, "WBX v4"); dboard_manager::register_dboard(0x0063, 0x004f, &make_wbx_simple, "WBX v4 + Simple GDB"); } /*********************************************************************** * Structors **********************************************************************/ wbx_simple::wbx_simple(ctor_args_t args) : wbx_base(args){ //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->access("name").set( std::string(str(boost::format("%s+GDB") % this->get_rx_subtree()->access("name").get() ))); this->get_rx_subtree()->create("antenna/value") .subscribe(boost::bind(&wbx_simple::set_rx_ant, this, _1)) .set("RX2"); this->get_rx_subtree()->create >("antenna/options") .set(wbx_rx_antennas); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->access("name").set( std::string(str(boost::format("%s+GDB") % this->get_tx_subtree()->access("name").get() ))); this->get_tx_subtree()->create("antenna/value") .subscribe(boost::bind(&wbx_simple::set_tx_ant, this, _1)) .set(wbx_tx_antennas.at(0)); this->get_tx_subtree()->create >("antenna/options") .set(wbx_tx_antennas); //set the gpio directions and atr controls (antenna switches all under ATR) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, ANTSW_IO, ANTSW_IO); this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, ANTSW_IO, ANTSW_IO); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, ANTSW_IO, ANTSW_IO); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, ANTSW_IO, ANTSW_IO); //setup ATR for the antenna switches (constant) this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_IDLE, ANT_RX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_RX_ONLY, ANT_RX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, ANT_TX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_TX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE, ANT_TXRX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, ANT_RX2, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_RX2, ANTSW_IO); } wbx_simple::~wbx_simple(void){ /* NOP */ } /*********************************************************************** * Antennas **********************************************************************/ void wbx_simple::set_rx_ant(const std::string &ant){ //validate input assert_has(wbx_rx_antennas, ant, "wbx rx antenna name"); //shadow the setting _rx_ant = ant; //write the new antenna setting to atr regs if (_rx_ant == "CAL") { this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, ANT_TXRX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_TXRX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, ANT_TXRX, ANTSW_IO); } else { this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, ANT_RX2, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_RX2, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, ((_rx_ant == "TX/RX")? ANT_TXRX : ANT_RX2), ANTSW_IO); } } void wbx_simple::set_tx_ant(const std::string &ant){ assert_has(wbx_tx_antennas, ant, "wbx tx antenna name"); //write the new antenna setting to atr regs if (ant == "CAL") { this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, ANT_RX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_RX, ANTSW_IO); } else { this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, ANT_TX, ANTSW_IO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, ANT_TX, ANTSW_IO); } } uhd-3.5.5/host/lib/usrp/dboard/db_wbx_version2.cpp000066400000000000000000000342351224274632000220640ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "db_wbx_common.hpp" #include "adf4350_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * WBX Version 2 Constants **********************************************************************/ static const uhd::dict wbx_v2_tx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 25, 0.05)) ; static const freq_range_t wbx_v2_freq_range(68.75e6, 2.2e9); /*********************************************************************** * Gain-related functions **********************************************************************/ static double tx_pga0_gain_to_dac_volts(double &gain){ //clip the input gain = wbx_v2_tx_gain_ranges["PGA0"].clip(gain); //voltage level constants static const double max_volts = 0.5, min_volts = 1.4; static const double slope = (max_volts-min_volts)/wbx_v2_tx_gain_ranges["PGA0"].stop(); //calculate the voltage for the aux dac double dac_volts = gain*slope + min_volts; UHD_LOGV(often) << boost::format( "WBX TX Gain: %f dB, dac_volts: %f V" ) % gain % dac_volts << std::endl; //the actual gain setting gain = (dac_volts - min_volts)/slope; return dac_volts; } /*********************************************************************** * WBX Version 2 Implementation **********************************************************************/ wbx_base::wbx_version2::wbx_version2(wbx_base *_self_wbx_base) { //register our handle on the primary wbx_base instance self_base = _self_wbx_base; //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name").set("WBXv2 RX"); this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&wbx_base::wbx_version2::set_lo_freq, this, dboard_iface::UNIT_RX, _1)) .set((wbx_v2_freq_range.start() + wbx_v2_freq_range.stop())/2.0); this->get_rx_subtree()->create("freq/range").set(wbx_v2_freq_range); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->create("name").set("WBXv2 TX"); BOOST_FOREACH(const std::string &name, wbx_v2_tx_gain_ranges.keys()){ self_base->get_tx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&wbx_base::wbx_version2::set_tx_gain, this, _1, name)) .set(wbx_v2_tx_gain_ranges[name].start()); self_base->get_tx_subtree()->create("gains/"+name+"/range") .set(wbx_v2_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") .coerce(boost::bind(&wbx_base::wbx_version2::set_lo_freq, this, dboard_iface::UNIT_TX, _1)) .set((wbx_v2_freq_range.start() + wbx_v2_freq_range.stop())/2.0); this->get_tx_subtree()->create("freq/range").set(wbx_v2_freq_range); this->get_tx_subtree()->create("enabled") .subscribe(boost::bind(&wbx_base::wbx_version2::set_tx_enabled, this, _1)) .set(true); //start enabled //set attenuator control bits int v2_iobits = ADF4350_CE; int v2_tx_mod = TXMOD_EN|ADF4350_PDBRF; //set the gpio directions and atr controls self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, v2_tx_mod); self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, RXBB_PDB|ADF4350_PDBRF); self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, TX_PUP_5V|TX_PUP_3V|v2_tx_mod|v2_iobits); self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, RX_PUP_5V|RX_PUP_3V|ADF4350_CE|RXBB_PDB|ADF4350_PDBRF|RX_ATTN_MASK); //setup ATR for the mixer enables (always enabled to prevent phase slip between bursts) self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_IDLE, v2_tx_mod, TX_MIXER_DIS | v2_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_RX_ONLY, v2_tx_mod, TX_MIXER_DIS | v2_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, v2_tx_mod, TX_MIXER_DIS | v2_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, v2_tx_mod, TX_MIXER_DIS | v2_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE, RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); } wbx_base::wbx_version2::~wbx_version2(void){ /* NOP */ } /*********************************************************************** * Enables **********************************************************************/ void wbx_base::wbx_version2::set_tx_enabled(bool enb){ self_base->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, (enb)? TX_POWER_UP | ADF4350_CE : TX_POWER_DOWN, TX_POWER_UP | TX_POWER_DOWN | ADF4350_CE); } /*********************************************************************** * Gain Handling **********************************************************************/ double wbx_base::wbx_version2::set_tx_gain(double gain, const std::string &name){ assert_has(wbx_v2_tx_gain_ranges.keys(), name, "wbx tx gain name"); if(name == "PGA0"){ double dac_volts = tx_pga0_gain_to_dac_volts(gain); self_base->_tx_gains[name] = gain; //write the new voltage to the aux dac self_base->get_iface()->write_aux_dac(dboard_iface::UNIT_TX, dboard_iface::AUX_DAC_A, dac_volts); } else UHD_THROW_INVALID_CODE_PATH(); return self_base->_tx_gains[name]; //shadowed } /*********************************************************************** * Tuning **********************************************************************/ double wbx_base::wbx_version2::set_lo_freq(dboard_iface::unit_t unit, double target_freq) { //clip to tuning range target_freq = wbx_v2_freq_range.clip(target_freq); UHD_LOGV(often) << boost::format( "WBX tune: target frequency %f Mhz" ) % (target_freq/1e6) << std::endl; //start with target_freq*2 because mixer has divide by 2 target_freq *= 2; //map prescaler setting to mininmum integer divider (N) values (pg.18 prescaler) static const uhd::dict prescaler_to_min_int_div = map_list_of (0,23) //adf4350_regs_t::PRESCALER_4_5 (1,75) //adf4350_regs_t::PRESCALER_8_9 ; //map rf divider select output dividers to enums static const uhd::dict rfdivsel_to_enum = map_list_of (1, adf4350_regs_t::RF_DIVIDER_SELECT_DIV1) (2, adf4350_regs_t::RF_DIVIDER_SELECT_DIV2) (4, adf4350_regs_t::RF_DIVIDER_SELECT_DIV4) (8, adf4350_regs_t::RF_DIVIDER_SELECT_DIV8) (16, adf4350_regs_t::RF_DIVIDER_SELECT_DIV16) ; double actual_freq, pfd_freq; double ref_freq = self_base->get_iface()->get_clock_rate(unit); int R=0, BS=0, N=0, FRAC=0, MOD=0; int RFdiv = 1; adf4350_regs_t::reference_divide_by_2_t T = adf4350_regs_t::REFERENCE_DIVIDE_BY_2_DISABLED; adf4350_regs_t::reference_doubler_t D = adf4350_regs_t::REFERENCE_DOUBLER_DISABLED; //Reference doubler for 50% duty cycle // if ref_freq < 12.5MHz enable regs.reference_divide_by_2 if(ref_freq <= 12.5e6) D = adf4350_regs_t::REFERENCE_DOUBLER_ENABLED; //increase RF divider until acceptable VCO frequency const bool do_sync = (target_freq/2 > ref_freq); double vco_freq = target_freq; while (vco_freq < 2.2e9) { vco_freq *= 2; RFdiv *= 2; } if (do_sync) vco_freq = target_freq; //use 8/9 prescaler for vco_freq > 3 GHz (pg.18 prescaler) adf4350_regs_t::prescaler_t prescaler = vco_freq > 3e9 ? adf4350_regs_t::PRESCALER_8_9 : adf4350_regs_t::PRESCALER_4_5; /* * The goal here is to loop though possible R dividers, * band select clock dividers, N (int) dividers, and FRAC * (frac) dividers. * * Calculate the N and F dividers for each set of values. * The loop exits when it meets all of the constraints. * The resulting loop values are loaded into the registers. * * from pg.21 * * f_pfd = f_ref*(1+D)/(R*(1+T)) * f_vco = (N + (FRAC/MOD))*f_pfd * N = f_vco/f_pfd - FRAC/MOD = f_vco*((R*(T+1))/(f_ref*(1+D))) - FRAC/MOD * f_rf = f_vco/RFdiv) * f_actual = f_rf/2 */ for(R = 1; R <= 1023; R+=1){ //PFD input frequency = f_ref/R ... ignoring Reference doubler/divide-by-2 (D & T) pfd_freq = ref_freq*(1+D)/(R*(1+T)); //keep the PFD frequency at or below 25MHz (Loop Filter Bandwidth) if (pfd_freq > 25e6) continue; //ignore fractional part of tuning N = int(std::floor(vco_freq/pfd_freq)); //keep N > minimum int divider requirement if (N < prescaler_to_min_int_div[prescaler]) continue; for(BS=1; BS <= 255; BS+=1){ //keep the band select frequency at or below 100KHz //constraint on band select clock if (pfd_freq/BS > 100e3) continue; goto done_loop; } } done_loop: //Fractional-N calculation MOD = 4095; //max fractional accuracy FRAC = int((vco_freq/pfd_freq - N)*MOD); //Reference divide-by-2 for 50% duty cycle // if R even, move one divide by 2 to to regs.reference_divide_by_2 if(R % 2 == 0){ T = adf4350_regs_t::REFERENCE_DIVIDE_BY_2_ENABLED; R /= 2; } //actual frequency calculation actual_freq = double((N + (double(FRAC)/double(MOD)))*ref_freq*(1+int(D))/(R*(1+int(T)))/2/(vco_freq/target_freq)); UHD_LOGV(often) << boost::format("WBX Intermediates: ref=%0.2f, outdiv=%f, fbdiv=%f") % (ref_freq*(1+int(D))/(R*(1+int(T)))) % double(RFdiv*2) % double(N + double(FRAC)/double(MOD)) << std::endl << boost::format("WBX tune: R=%d, BS=%d, N=%d, FRAC=%d, MOD=%d, T=%d, D=%d, RFdiv=%d" ) % R % BS % N % FRAC % MOD % T % D % RFdiv << std::endl << boost::format("WBX Frequencies (MHz): REQ=%0.2f, ACT=%0.2f, VCO=%0.2f, PFD=%0.2f, BAND=%0.2f" ) % (target_freq/1e6) % (actual_freq/1e6) % (vco_freq/1e6) % (pfd_freq/1e6) % (pfd_freq/BS/1e6) << std::endl; //load the register values adf4350_regs_t regs; regs.frac_12_bit = FRAC; regs.int_16_bit = N; regs.mod_12_bit = MOD; if (do_sync) { regs.clock_divider_12_bit = std::max(1, int(std::ceil(400e-6*pfd_freq/MOD))); regs.feedback_select = adf4350_regs_t::FEEDBACK_SELECT_DIVIDED; regs.clock_div_mode = adf4350_regs_t::CLOCK_DIV_MODE_RESYNC_ENABLE; } regs.prescaler = prescaler; regs.r_counter_10_bit = R; regs.reference_divide_by_2 = T; regs.reference_doubler = D; regs.band_select_clock_div = BS; UHD_ASSERT_THROW(rfdivsel_to_enum.has_key(RFdiv)); regs.rf_divider_select = rfdivsel_to_enum[RFdiv]; if (unit == dboard_iface::UNIT_RX) { freq_range_t rx_lo_5dbm = list_of (range_t(0.05e9, 1.4e9)) ; freq_range_t rx_lo_2dbm = list_of (range_t(1.4e9, 2.2e9)) ; if (actual_freq == rx_lo_5dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_5DBM; if (actual_freq == rx_lo_2dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_2DBM; } else if (unit == dboard_iface::UNIT_TX) { freq_range_t tx_lo_5dbm = list_of (range_t(0.05e9, 1.7e9)) (range_t(1.9e9, 2.2e9)) ; freq_range_t tx_lo_m1dbm = list_of (range_t(1.7e9, 1.9e9)) ; if (actual_freq == tx_lo_5dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_5DBM; if (actual_freq == tx_lo_m1dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_M1DBM; } //reset the N and R counter regs.counter_reset = adf4350_regs_t::COUNTER_RESET_ENABLED; self_base->get_iface()->write_spi(unit, spi_config_t::EDGE_RISE, regs.get_reg(2), 32); regs.counter_reset = adf4350_regs_t::COUNTER_RESET_DISABLED; //write the registers //correct power-up sequence to write registers (5, 4, 3, 2, 1, 0) int addr; for(addr=5; addr>=0; addr--){ UHD_LOGV(often) << boost::format( "WBX SPI Reg (0x%02x): 0x%08x" ) % addr % regs.get_reg(addr) << std::endl; self_base->get_iface()->write_spi( unit, spi_config_t::EDGE_RISE, regs.get_reg(addr), 32 ); } //return the actual frequency UHD_LOGV(often) << boost::format( "WBX tune: actual frequency %f Mhz" ) % (actual_freq/1e6) << std::endl; return actual_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_wbx_version3.cpp000066400000000000000000000360531224274632000220650ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "db_wbx_common.hpp" #include "adf4350_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * WBX Version 3 Constants **********************************************************************/ static const uhd::dict wbx_v3_tx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 31, 1.0)) ; static const freq_range_t wbx_v3_freq_range(68.75e6, 2.2e9); /*********************************************************************** * Gain-related functions **********************************************************************/ static int tx_pga0_gain_to_iobits(double &gain){ //clip the input gain = wbx_v3_tx_gain_ranges["PGA0"].clip(gain); //convert to attenuation double attn = wbx_v3_tx_gain_ranges["PGA0"].stop() - gain; //calculate the attenuation int attn_code = boost::math::iround(attn); int iobits = ( (attn_code & 16 ? 0 : TX_ATTN_16) | (attn_code & 8 ? 0 : TX_ATTN_8) | (attn_code & 4 ? 0 : TX_ATTN_4) | (attn_code & 2 ? 0 : TX_ATTN_2) | (attn_code & 1 ? 0 : TX_ATTN_1) ) & TX_ATTN_MASK; UHD_LOGV(often) << boost::format( "WBX TX Attenuation: %f dB, Code: %d, IO Bits %x, Mask: %x" ) % attn % attn_code % (iobits & TX_ATTN_MASK) % TX_ATTN_MASK << std::endl; //the actual gain setting gain = wbx_v3_tx_gain_ranges["PGA0"].stop() - double(attn_code); return iobits; } /*********************************************************************** * WBX Common Implementation **********************************************************************/ wbx_base::wbx_version3::wbx_version3(wbx_base *_self_wbx_base) { //register our handle on the primary wbx_base instance self_base = _self_wbx_base; //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name").set("WBXv3 RX"); this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&wbx_base::wbx_version3::set_lo_freq, this, dboard_iface::UNIT_RX, _1)) .set((wbx_v3_freq_range.start() + wbx_v3_freq_range.stop())/2.0); this->get_rx_subtree()->create("freq/range").set(wbx_v3_freq_range); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->create("name").set("WBXv3 TX"); BOOST_FOREACH(const std::string &name, wbx_v3_tx_gain_ranges.keys()){ self_base->get_tx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&wbx_base::wbx_version3::set_tx_gain, this, _1, name)) .set(wbx_v3_tx_gain_ranges[name].start()); self_base->get_tx_subtree()->create("gains/"+name+"/range") .set(wbx_v3_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") .coerce(boost::bind(&wbx_base::wbx_version3::set_lo_freq, this, dboard_iface::UNIT_TX, _1)) .set((wbx_v3_freq_range.start() + wbx_v3_freq_range.stop())/2.0); this->get_tx_subtree()->create("freq/range").set(wbx_v3_freq_range); this->get_tx_subtree()->create("enabled") .subscribe(boost::bind(&wbx_base::wbx_version3::set_tx_enabled, this, _1)) .set(true); //start enabled //set attenuator control bits int v3_iobits = TX_ATTN_MASK; int v3_tx_mod = ADF4350_PDBRF; //set the gpio directions and atr controls self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, \ v3_tx_mod|v3_iobits); self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, \ RXBB_PDB|ADF4350_PDBRF); self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, \ TX_PUP_5V|TX_PUP_3V|v3_tx_mod|v3_iobits); self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, \ RX_PUP_5V|RX_PUP_3V|ADF4350_CE|RXBB_PDB|ADF4350_PDBRF|RX_ATTN_MASK); //setup ATR for the mixer enables (always enabled to prevent phase //slip between bursts). set TX gain iobits to min gain (max attenuation) //when RX_ONLY or IDLE to suppress LO leakage self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_IDLE, v3_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_RX_ONLY, v3_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_TX_ONLY, v3_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_FULL_DUPLEX, v3_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v3_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_IDLE, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_TX_ONLY, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_RX_ONLY, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_FULL_DUPLEX, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); } wbx_base::wbx_version3::~wbx_version3(void){ /* NOP */ } /*********************************************************************** * Enables **********************************************************************/ void wbx_base::wbx_version3::set_tx_enabled(bool enb){ self_base->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, (enb)? TX_POWER_UP | ADF4350_CE : TX_POWER_DOWN, TX_POWER_UP | TX_POWER_DOWN | 0); } /*********************************************************************** * Gain Handling **********************************************************************/ double wbx_base::wbx_version3::set_tx_gain(double gain, const std::string &name){ assert_has(wbx_v3_tx_gain_ranges.keys(), name, "wbx tx gain name"); if(name == "PGA0"){ boost::uint16_t io_bits = tx_pga0_gain_to_iobits(gain); self_base->_tx_gains[name] = gain; //write the new gain to tx gpio outputs //Update ATR with gain io_bits, only update for TX_ONLY and FULL_DUPLEX ATR states self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, io_bits, TX_ATTN_MASK); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, io_bits, TX_ATTN_MASK); } else UHD_THROW_INVALID_CODE_PATH(); return self_base->_tx_gains[name]; //shadow } /*********************************************************************** * Tuning **********************************************************************/ double wbx_base::wbx_version3::set_lo_freq(dboard_iface::unit_t unit, double target_freq) { //clip to tuning range target_freq = wbx_v3_freq_range.clip(target_freq); UHD_LOGV(often) << boost::format( "WBX tune: target frequency %f Mhz" ) % (target_freq/1e6) << std::endl; //start with target_freq*2 because mixer has divide by 2 target_freq *= 2; //map prescaler setting to mininmum integer divider (N) values (pg.18 prescaler) static const uhd::dict prescaler_to_min_int_div = map_list_of (0,23) //adf4350_regs_t::PRESCALER_4_5 (1,75) //adf4350_regs_t::PRESCALER_8_9 ; //map rf divider select output dividers to enums static const uhd::dict rfdivsel_to_enum = map_list_of (1, adf4350_regs_t::RF_DIVIDER_SELECT_DIV1) (2, adf4350_regs_t::RF_DIVIDER_SELECT_DIV2) (4, adf4350_regs_t::RF_DIVIDER_SELECT_DIV4) (8, adf4350_regs_t::RF_DIVIDER_SELECT_DIV8) (16, adf4350_regs_t::RF_DIVIDER_SELECT_DIV16) ; double actual_freq, pfd_freq; double ref_freq = self_base->get_iface()->get_clock_rate(unit); int R=0, BS=0, N=0, FRAC=0, MOD=0; int RFdiv = 1; adf4350_regs_t::reference_divide_by_2_t T = adf4350_regs_t::REFERENCE_DIVIDE_BY_2_DISABLED; adf4350_regs_t::reference_doubler_t D = adf4350_regs_t::REFERENCE_DOUBLER_DISABLED; //Reference doubler for 50% duty cycle // if ref_freq < 12.5MHz enable regs.reference_divide_by_2 if(ref_freq <= 12.5e6) D = adf4350_regs_t::REFERENCE_DOUBLER_ENABLED; //increase RF divider until acceptable VCO frequency const bool do_sync = (target_freq/2 > ref_freq); double vco_freq = target_freq; while (vco_freq < 2.2e9) { vco_freq *= 2; RFdiv *= 2; } if (do_sync) vco_freq = target_freq; //use 8/9 prescaler for vco_freq > 3 GHz (pg.18 prescaler) adf4350_regs_t::prescaler_t prescaler = vco_freq > 3e9 ? adf4350_regs_t::PRESCALER_8_9 : adf4350_regs_t::PRESCALER_4_5; /* * The goal here is to loop though possible R dividers, * band select clock dividers, N (int) dividers, and FRAC * (frac) dividers. * * Calculate the N and F dividers for each set of values. * The loop exits when it meets all of the constraints. * The resulting loop values are loaded into the registers. * * from pg.21 * * f_pfd = f_ref*(1+D)/(R*(1+T)) * f_vco = (N + (FRAC/MOD))*f_pfd * N = f_vco/f_pfd - FRAC/MOD = f_vco*((R*(T+1))/(f_ref*(1+D))) - FRAC/MOD * f_rf = f_vco/RFdiv) * f_actual = f_rf/2 */ for(R = 1; R <= 1023; R+=1){ //PFD input frequency = f_ref/R ... ignoring Reference doubler/divide-by-2 (D & T) pfd_freq = ref_freq*(1+D)/(R*(1+T)); //keep the PFD frequency at or below 25MHz (Loop Filter Bandwidth) if (pfd_freq > 25e6) continue; //ignore fractional part of tuning N = int(std::floor(vco_freq/pfd_freq)); //keep N > minimum int divider requirement if (N < prescaler_to_min_int_div[prescaler]) continue; for(BS=1; BS <= 255; BS+=1){ //keep the band select frequency at or below 100KHz //constraint on band select clock if (pfd_freq/BS > 100e3) continue; goto done_loop; } } done_loop: //Fractional-N calculation MOD = 4095; //max fractional accuracy FRAC = int((vco_freq/pfd_freq - N)*MOD); //Reference divide-by-2 for 50% duty cycle // if R even, move one divide by 2 to to regs.reference_divide_by_2 if(R % 2 == 0){ T = adf4350_regs_t::REFERENCE_DIVIDE_BY_2_ENABLED; R /= 2; } //actual frequency calculation actual_freq = double((N + (double(FRAC)/double(MOD)))*ref_freq*(1+int(D))/(R*(1+int(T)))/2/(vco_freq/target_freq)); UHD_LOGV(often) << boost::format("WBX Intermediates: ref=%0.2f, outdiv=%f, fbdiv=%f") % (ref_freq*(1+int(D))/(R*(1+int(T)))) % double(RFdiv*2) % double(N + double(FRAC)/double(MOD)) << std::endl << boost::format("WBX tune: R=%d, BS=%d, N=%d, FRAC=%d, MOD=%d, T=%d, D=%d, RFdiv=%d" ) % R % BS % N % FRAC % MOD % T % D % RFdiv << std::endl << boost::format("WBX Frequencies (MHz): REQ=%0.2f, ACT=%0.2f, VCO=%0.2f, PFD=%0.2f, BAND=%0.2f" ) % (target_freq/1e6) % (actual_freq/1e6) % (vco_freq/1e6) % (pfd_freq/1e6) % (pfd_freq/BS/1e6) << std::endl; //load the register values adf4350_regs_t regs; regs.frac_12_bit = FRAC; regs.int_16_bit = N; regs.mod_12_bit = MOD; if (do_sync) { regs.clock_divider_12_bit = std::max(1, int(std::ceil(400e-6*pfd_freq/MOD))); regs.feedback_select = adf4350_regs_t::FEEDBACK_SELECT_DIVIDED; regs.clock_div_mode = adf4350_regs_t::CLOCK_DIV_MODE_RESYNC_ENABLE; } regs.prescaler = prescaler; regs.r_counter_10_bit = R; regs.reference_divide_by_2 = T; regs.reference_doubler = D; regs.band_select_clock_div = BS; UHD_ASSERT_THROW(rfdivsel_to_enum.has_key(RFdiv)); regs.rf_divider_select = rfdivsel_to_enum[RFdiv]; if (unit == dboard_iface::UNIT_RX) { freq_range_t rx_lo_5dbm = list_of (range_t(0.05e9, 1.4e9)) ; freq_range_t rx_lo_2dbm = list_of (range_t(1.4e9, 2.2e9)) ; if (actual_freq == rx_lo_5dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_5DBM; if (actual_freq == rx_lo_2dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_2DBM; } else if (unit == dboard_iface::UNIT_TX) { freq_range_t tx_lo_5dbm = list_of (range_t(0.05e9, 1.7e9)) (range_t(1.9e9, 2.2e9)) ; freq_range_t tx_lo_m1dbm = list_of (range_t(1.7e9, 1.9e9)) ; if (actual_freq == tx_lo_5dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_5DBM; if (actual_freq == tx_lo_m1dbm.clip(actual_freq)) regs.output_power = adf4350_regs_t::OUTPUT_POWER_M1DBM; } //reset the N and R counter regs.counter_reset = adf4350_regs_t::COUNTER_RESET_ENABLED; self_base->get_iface()->write_spi(unit, spi_config_t::EDGE_RISE, regs.get_reg(2), 32); regs.counter_reset = adf4350_regs_t::COUNTER_RESET_DISABLED; //write the registers //correct power-up sequence to write registers (5, 4, 3, 2, 1, 0) int addr; for(addr=5; addr>=0; addr--){ UHD_LOGV(often) << boost::format( "WBX SPI Reg (0x%02x): 0x%08x" ) % addr % regs.get_reg(addr) << std::endl; self_base->get_iface()->write_spi( unit, spi_config_t::EDGE_RISE, regs.get_reg(addr), 32 ); } //return the actual frequency UHD_LOGV(often) << boost::format( "WBX tune: actual frequency %f Mhz" ) % (actual_freq/1e6) << std::endl; return actual_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_wbx_version4.cpp000066400000000000000000000362171224274632000220700ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "db_wbx_common.hpp" #include "adf4351_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * WBX Version 3 Constants **********************************************************************/ static const uhd::dict wbx_v4_tx_gain_ranges = map_list_of ("PGA0", gain_range_t(0, 31, 1.0)) ; static const freq_range_t wbx_v4_freq_range(25.0e6, 2.2e9); /*********************************************************************** * Gain-related functions **********************************************************************/ static int tx_pga0_gain_to_iobits(double &gain){ //clip the input gain = wbx_v4_tx_gain_ranges["PGA0"].clip(gain); //convert to attenuation double attn = wbx_v4_tx_gain_ranges["PGA0"].stop() - gain; //calculate the attenuation int attn_code = boost::math::iround(attn); int iobits = ( (attn_code & 16 ? 0 : TX_ATTN_16) | (attn_code & 8 ? 0 : TX_ATTN_8) | (attn_code & 4 ? 0 : TX_ATTN_4) | (attn_code & 2 ? 0 : TX_ATTN_2) | (attn_code & 1 ? 0 : TX_ATTN_1) ) & TX_ATTN_MASK; UHD_LOGV(often) << boost::format( "WBX TX Attenuation: %f dB, Code: %d, IO Bits %x, Mask: %x" ) % attn % attn_code % (iobits & TX_ATTN_MASK) % TX_ATTN_MASK << std::endl; //the actual gain setting gain = wbx_v4_tx_gain_ranges["PGA0"].stop() - double(attn_code); return iobits; } /*********************************************************************** * WBX Common Implementation **********************************************************************/ wbx_base::wbx_version4::wbx_version4(wbx_base *_self_wbx_base) { //register our handle on the primary wbx_base instance self_base = _self_wbx_base; //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name").set("WBXv4 RX"); this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&wbx_base::wbx_version4::set_lo_freq, this, dboard_iface::UNIT_RX, _1)) .set((wbx_v4_freq_range.start() + wbx_v4_freq_range.stop())/2.0); this->get_rx_subtree()->create("freq/range").set(wbx_v4_freq_range); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->create("name").set("WBXv4 TX"); BOOST_FOREACH(const std::string &name, wbx_v4_tx_gain_ranges.keys()){ self_base->get_tx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&wbx_base::wbx_version4::set_tx_gain, this, _1, name)) .set(wbx_v4_tx_gain_ranges[name].start()); self_base->get_tx_subtree()->create("gains/"+name+"/range") .set(wbx_v4_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") .coerce(boost::bind(&wbx_base::wbx_version4::set_lo_freq, this, dboard_iface::UNIT_TX, _1)) .set((wbx_v4_freq_range.start() + wbx_v4_freq_range.stop())/2.0); this->get_tx_subtree()->create("freq/range").set(wbx_v4_freq_range); this->get_tx_subtree()->create("enabled") .subscribe(boost::bind(&wbx_base::wbx_version4::set_tx_enabled, this, _1)) .set(true); //start enabled //set attenuator control bits int v4_iobits = TX_ATTN_MASK; int v4_tx_mod = ADF4351_PDBRF; //set the gpio directions and atr controls self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, \ v4_tx_mod|v4_iobits); self_base->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, \ RXBB_PDB|ADF4351_PDBRF); self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, \ TX_PUP_5V|TX_PUP_3V|v4_tx_mod|v4_iobits); self_base->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, \ RX_PUP_5V|RX_PUP_3V|ADF4351_CE|RXBB_PDB|ADF4351_PDBRF|RX_ATTN_MASK); //setup ATR for the mixer enables (always enabled to prevent phase slip //between bursts) set TX gain iobits to min gain (max attenuation) when //RX_ONLY or IDLE to suppress LO leakage self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_IDLE, v4_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v4_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_RX_ONLY, v4_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v4_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_TX_ONLY, v4_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v4_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, \ dboard_iface::ATR_REG_FULL_DUPLEX, v4_tx_mod, \ TX_ATTN_MASK | TX_MIXER_DIS | v4_tx_mod); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_IDLE, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_TX_ONLY, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_RX_ONLY, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, \ dboard_iface::ATR_REG_FULL_DUPLEX, \ RX_MIXER_ENB, RX_MIXER_DIS | RX_MIXER_ENB); } wbx_base::wbx_version4::~wbx_version4(void){ /* NOP */ } /*********************************************************************** * Enables **********************************************************************/ void wbx_base::wbx_version4::set_tx_enabled(bool enb) { self_base->get_iface()->set_gpio_out(dboard_iface::UNIT_TX, (enb)? TX_POWER_UP | ADF4351_CE : TX_POWER_DOWN, TX_POWER_UP | TX_POWER_DOWN | 0); } /*********************************************************************** * Gain Handling **********************************************************************/ double wbx_base::wbx_version4::set_tx_gain(double gain, const std::string &name) { assert_has(wbx_v4_tx_gain_ranges.keys(), name, "wbx tx gain name"); if(name == "PGA0"){ boost::uint16_t io_bits = tx_pga0_gain_to_iobits(gain); self_base->_tx_gains[name] = gain; //write the new gain to tx gpio outputs //Update ATR with gain io_bits, only update for TX_ONLY and FULL_DUPLEX ATR states self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, io_bits, TX_ATTN_MASK); self_base->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, io_bits, TX_ATTN_MASK); } else UHD_THROW_INVALID_CODE_PATH(); return self_base->_tx_gains[name]; } /*********************************************************************** * Tuning **********************************************************************/ double wbx_base::wbx_version4::set_lo_freq(dboard_iface::unit_t unit, double target_freq) { //clip to tuning range target_freq = wbx_v4_freq_range.clip(target_freq); UHD_LOGV(often) << boost::format( "WBX tune: target frequency %f Mhz" ) % (target_freq/1e6) << std::endl; //start with target_freq*2 because mixer has divide by 2 target_freq *= 2; //map prescaler setting to mininmum integer divider (N) values (pg.18 prescaler) static const uhd::dict prescaler_to_min_int_div = map_list_of (0,23) //adf4351_regs_t::PRESCALER_4_5 (1,75) //adf4351_regs_t::PRESCALER_8_9 ; //map rf divider select output dividers to enums static const uhd::dict rfdivsel_to_enum = map_list_of (1, adf4351_regs_t::RF_DIVIDER_SELECT_DIV1) (2, adf4351_regs_t::RF_DIVIDER_SELECT_DIV2) (4, adf4351_regs_t::RF_DIVIDER_SELECT_DIV4) (8, adf4351_regs_t::RF_DIVIDER_SELECT_DIV8) (16, adf4351_regs_t::RF_DIVIDER_SELECT_DIV16) (32, adf4351_regs_t::RF_DIVIDER_SELECT_DIV32) (64, adf4351_regs_t::RF_DIVIDER_SELECT_DIV64) ; double actual_freq, pfd_freq; double ref_freq = self_base->get_iface()->get_clock_rate(unit); int R=0, BS=0, N=0, FRAC=0, MOD=0; int RFdiv = 1; adf4351_regs_t::reference_divide_by_2_t T = adf4351_regs_t::REFERENCE_DIVIDE_BY_2_DISABLED; adf4351_regs_t::reference_doubler_t D = adf4351_regs_t::REFERENCE_DOUBLER_DISABLED; //Reference doubler for 50% duty cycle // if ref_freq < 12.5MHz enable regs.reference_divide_by_2 if(ref_freq <= 12.5e6) D = adf4351_regs_t::REFERENCE_DOUBLER_ENABLED; //increase RF divider until acceptable VCO frequency const bool do_sync = (target_freq/2 > ref_freq); double vco_freq = target_freq; while (vco_freq < 2.2e9) { vco_freq *= 2; RFdiv *= 2; } if (do_sync) vco_freq = target_freq; //use 8/9 prescaler for vco_freq > 3 GHz (pg.18 prescaler) adf4351_regs_t::prescaler_t prescaler = vco_freq > 3e9 ? adf4351_regs_t::PRESCALER_8_9 : adf4351_regs_t::PRESCALER_4_5; /* * The goal here is to loop though possible R dividers, * band select clock dividers, N (int) dividers, and FRAC * (frac) dividers. * * Calculate the N and F dividers for each set of values. * The loop exits when it meets all of the constraints. * The resulting loop values are loaded into the registers. * * from pg.21 * * f_pfd = f_ref*(1+D)/(R*(1+T)) * f_vco = (N + (FRAC/MOD))*f_pfd * N = f_vco/f_pfd - FRAC/MOD = f_vco*((R*(T+1))/(f_ref*(1+D))) - FRAC/MOD * f_rf = f_vco/RFdiv) * f_actual = f_rf/2 */ for(R = 1; R <= 1023; R+=1){ //PFD input frequency = f_ref/R ... ignoring Reference doubler/divide-by-2 (D & T) pfd_freq = ref_freq*(1+D)/(R*(1+T)); //keep the PFD frequency at or below 25MHz (Loop Filter Bandwidth) if (pfd_freq > 25e6) continue; //ignore fractional part of tuning N = int(std::floor(vco_freq/pfd_freq)); //keep N > minimum int divider requirement if (N < prescaler_to_min_int_div[prescaler]) continue; for(BS=1; BS <= 255; BS+=1){ //keep the band select frequency at or below 100KHz //constraint on band select clock if (pfd_freq/BS > 100e3) continue; goto done_loop; } } done_loop: //Fractional-N calculation MOD = 4095; //max fractional accuracy FRAC = int((vco_freq/pfd_freq - N)*MOD); //Reference divide-by-2 for 50% duty cycle // if R even, move one divide by 2 to to regs.reference_divide_by_2 if(R % 2 == 0){ T = adf4351_regs_t::REFERENCE_DIVIDE_BY_2_ENABLED; R /= 2; } //actual frequency calculation actual_freq = double((N + (double(FRAC)/double(MOD)))*ref_freq*(1+int(D))/(R*(1+int(T)))/2/(vco_freq/target_freq)); UHD_LOGV(often) << boost::format("WBX Intermediates: ref=%0.2f, outdiv=%f, fbdiv=%f") % (ref_freq*(1+int(D))/(R*(1+int(T)))) % double(RFdiv*2) % double(N + double(FRAC)/double(MOD)) << std::endl << boost::format("WBX tune: R=%d, BS=%d, N=%d, FRAC=%d, MOD=%d, T=%d, D=%d, RFdiv=%d" ) % R % BS % N % FRAC % MOD % T % D % RFdiv << std::endl << boost::format("WBX Frequencies (MHz): REQ=%0.2f, ACT=%0.2f, VCO=%0.2f, PFD=%0.2f, BAND=%0.2f" ) % (target_freq/1e6) % (actual_freq/1e6) % (vco_freq/1e6) % (pfd_freq/1e6) % (pfd_freq/BS/1e6) << std::endl; //load the register values adf4351_regs_t regs; regs.frac_12_bit = FRAC; regs.int_16_bit = N; regs.mod_12_bit = MOD; if (do_sync) { regs.clock_divider_12_bit = std::max(1, int(std::ceil(400e-6*pfd_freq/MOD))); regs.feedback_select = adf4351_regs_t::FEEDBACK_SELECT_DIVIDED; regs.clock_div_mode = adf4351_regs_t::CLOCK_DIV_MODE_RESYNC_ENABLE; } regs.prescaler = prescaler; regs.r_counter_10_bit = R; regs.reference_divide_by_2 = T; regs.reference_doubler = D; regs.band_select_clock_div = BS; UHD_ASSERT_THROW(rfdivsel_to_enum.has_key(RFdiv)); regs.rf_divider_select = rfdivsel_to_enum[RFdiv]; if (unit == dboard_iface::UNIT_RX) { freq_range_t rx_lo_5dbm = list_of (range_t(0.05e9, 1.4e9)) ; freq_range_t rx_lo_2dbm = list_of (range_t(1.4e9, 2.2e9)) ; if (actual_freq == rx_lo_5dbm.clip(actual_freq)) regs.output_power = adf4351_regs_t::OUTPUT_POWER_5DBM; if (actual_freq == rx_lo_2dbm.clip(actual_freq)) regs.output_power = adf4351_regs_t::OUTPUT_POWER_2DBM; } else if (unit == dboard_iface::UNIT_TX) { freq_range_t tx_lo_5dbm = list_of (range_t(0.05e9, 1.7e9)) (range_t(1.9e9, 2.2e9)) ; freq_range_t tx_lo_m1dbm = list_of (range_t(1.7e9, 1.9e9)) ; if (actual_freq == tx_lo_5dbm.clip(actual_freq)) regs.output_power = adf4351_regs_t::OUTPUT_POWER_5DBM; if (actual_freq == tx_lo_m1dbm.clip(actual_freq)) regs.output_power = adf4351_regs_t::OUTPUT_POWER_M1DBM; } //reset the N and R counter regs.counter_reset = adf4351_regs_t::COUNTER_RESET_ENABLED; self_base->get_iface()->write_spi(unit, spi_config_t::EDGE_RISE, regs.get_reg(2), 32); regs.counter_reset = adf4351_regs_t::COUNTER_RESET_DISABLED; //write the registers //correct power-up sequence to write registers (5, 4, 3, 2, 1, 0) int addr; for(addr=5; addr>=0; addr--){ UHD_LOGV(often) << boost::format( "WBX SPI Reg (0x%02x): 0x%08x" ) % addr % regs.get_reg(addr) << std::endl; self_base->get_iface()->write_spi( unit, spi_config_t::EDGE_RISE, regs.get_reg(addr), 32 ); } //return the actual frequency UHD_LOGV(often) << boost::format( "WBX tune: actual frequency %f Mhz" ) % (actual_freq/1e6) << std::endl; return actual_freq; } uhd-3.5.5/host/lib/usrp/dboard/db_xcvr2450.cpp000066400000000000000000000661701224274632000207350ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // TX IO Pins #define HB_PA_OFF_TXIO (1 << 15) // 5GHz PA, 1 = off, 0 = on #define LB_PA_OFF_TXIO (1 << 14) // 2.4GHz PA, 1 = off, 0 = on #define ANTSEL_TX1_RX2_TXIO (1 << 13) // 1 = Ant 1 to TX, Ant 2 to RX #define ANTSEL_TX2_RX1_TXIO (1 << 12) // 1 = Ant 2 to TX, Ant 1 to RX #define TX_EN_TXIO (1 << 11) // 1 = TX on, 0 = TX off #define AD9515DIV_TXIO (1 << 4) // 1 = Div by 3, 0 = Div by 2 #define TXIO_MASK (HB_PA_OFF_TXIO | LB_PA_OFF_TXIO | ANTSEL_TX1_RX2_TXIO | ANTSEL_TX2_RX1_TXIO | TX_EN_TXIO | AD9515DIV_TXIO) // TX IO Functions #define HB_PA_TXIO LB_PA_OFF_TXIO #define LB_PA_TXIO HB_PA_OFF_TXIO #define TX_ENB_TXIO TX_EN_TXIO #define TX_DIS_TXIO (HB_PA_OFF_TXIO | LB_PA_OFF_TXIO) #define AD9515DIV_3_TXIO AD9515DIV_TXIO #define AD9515DIV_2_TXIO 0 // RX IO Pins #define LOCKDET_RXIO (1 << 15) // This is an INPUT!!! #define POWER_RXIO (1 << 14) // 1 = power on, 0 = shutdown #define RX_EN_RXIO (1 << 13) // 1 = RX on, 0 = RX off #define RX_HP_RXIO (1 << 12) // 0 = Fc set by rx_hpf, 1 = 600 KHz #define RXIO_MASK (POWER_RXIO | RX_EN_RXIO | RX_HP_RXIO) // RX IO Functions #define POWER_UP_RXIO POWER_RXIO #define POWER_DOWN_RXIO 0 #define RX_ENB_RXIO RX_EN_RXIO #define RX_DIS_RXIO 0 #include "max2829_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; /*********************************************************************** * The XCVR 2450 constants **********************************************************************/ static const freq_range_t xcvr_freq_range = list_of (range_t(2.4e9, 2.5e9)) (range_t(4.9e9, 6.0e9)) ; //Multiplied by 2.0 for conversion to complex bandpass from lowpass static const freq_range_t xcvr_tx_bandwidth_range = list_of (range_t(2.0*12e6)) (range_t(2.0*18e6)) (range_t(2.0*24e6)) ; //Multiplied by 2.0 for conversion to complex bandpass from lowpass static const freq_range_t xcvr_rx_bandwidth_range = list_of (range_t(2.0*0.9*7.5e6, 2.0*1.1*7.5e6)) (range_t(2.0*0.9*9.5e6, 2.0*1.1*9.5e6)) (range_t(2.0*0.9*14e6, 2.0*1.1*14e6)) (range_t(2.0*0.9*18e6, 2.0*1.1*18e6)) ; static const std::vector xcvr_antennas = list_of("J1")("J2"); static const uhd::dict xcvr_tx_gain_ranges = map_list_of ("VGA", gain_range_t(0, 30, 0.5)) ("BB", gain_range_t(0, 5, 1.5)) ; static const uhd::dict xcvr_rx_gain_ranges = map_list_of ("LNA", gain_range_t(list_of (range_t(0)) (range_t(15)) (range_t(30.5)) )) ("VGA", gain_range_t(0, 62, 2.0)) ; /*********************************************************************** * The XCVR 2450 dboard class **********************************************************************/ class xcvr2450 : public xcvr_dboard_base{ public: xcvr2450(ctor_args_t args); ~xcvr2450(void); private: double _lo_freq; double _rx_bandwidth, _tx_bandwidth; uhd::dict _tx_gains, _rx_gains; std::string _tx_ant, _rx_ant; int _ad9515div; max2829_regs_t _max2829_regs; double set_lo_freq(double target_freq); double set_lo_freq_core(double target_freq); void set_tx_ant(const std::string &ant); void set_rx_ant(const std::string &ant); double set_tx_gain(double gain, const std::string &name); double set_rx_gain(double gain, const std::string &name); double set_rx_bandwidth(double bandwidth); double set_tx_bandwidth(double bandwidth); void update_atr(void); void spi_reset(void); void send_reg(boost::uint8_t addr){ boost::uint32_t value = _max2829_regs.get_reg(addr); UHD_LOGV(often) << boost::format( "XCVR2450: send reg 0x%02x, value 0x%05x" ) % int(addr) % value << std::endl; this->get_iface()->write_spi( dboard_iface::UNIT_RX, spi_config_t::EDGE_RISE, value, 24 ); } static bool is_highband(double freq){return freq > 3e9;} /*! * Get the lock detect status of the LO. * \return sensor for locked */ sensor_value_t get_locked(void){ const bool locked = (this->get_iface()->read_gpio(dboard_iface::UNIT_RX) & LOCKDET_RXIO) != 0; return sensor_value_t("LO", locked, "locked", "unlocked"); } /*! * Read the RSSI from the aux adc * \return the rssi sensor in dBm */ sensor_value_t get_rssi(void){ //*FIXME* RSSI depends on LNA Gain Setting (datasheet pg 16 top middle chart) double max_power = 0.0; switch(_max2829_regs.rx_lna_gain){ case 0: case 1: max_power = 0; break; case 2: max_power = -15; break; case 3: max_power = -30.5; break; } //constants for the rssi calculation static const double min_v = 2.5, max_v = 0.5; static const double rssi_dyn_range = 60.0; //calculate the rssi from the voltage double voltage = this->get_iface()->read_aux_adc(dboard_iface::UNIT_RX, dboard_iface::AUX_ADC_B); double rssi = max_power - rssi_dyn_range*(voltage - min_v)/(max_v - min_v); return sensor_value_t("RSSI", rssi, "dBm"); } }; /*********************************************************************** * Register the XCVR 2450 dboard **********************************************************************/ static dboard_base::sptr make_xcvr2450(dboard_base::ctor_args_t args){ return dboard_base::sptr(new xcvr2450(args)); } UHD_STATIC_BLOCK(reg_xcvr2450_dboard){ //register the factory function for the rx and tx dbids dboard_manager::register_dboard(0x0061, 0x0060, &make_xcvr2450, "XCVR2450"); dboard_manager::register_dboard(0x0061, 0x0059, &make_xcvr2450, "XCVR2450 - r2.1"); } /*********************************************************************** * Structors **********************************************************************/ xcvr2450::xcvr2450(ctor_args_t args) : xcvr_dboard_base(args){ spi_reset(); //prepare the spi _rx_bandwidth = 9.5e6; _tx_bandwidth = 12.0e6; //setup the misc max2829 registers _max2829_regs.mimo_select = max2829_regs_t::MIMO_SELECT_MIMO; _max2829_regs.band_sel_mimo = max2829_regs_t::BAND_SEL_MIMO_MIMO; _max2829_regs.pll_cp_select = max2829_regs_t::PLL_CP_SELECT_4MA; _max2829_regs.rssi_high_bw = max2829_regs_t::RSSI_HIGH_BW_6MHZ; _max2829_regs.tx_lpf_coarse_adj = max2829_regs_t::TX_LPF_COARSE_ADJ_12MHZ; _max2829_regs.rx_lpf_coarse_adj = max2829_regs_t::RX_LPF_COARSE_ADJ_9_5MHZ; _max2829_regs.rx_lpf_fine_adj = max2829_regs_t::RX_LPF_FINE_ADJ_100; _max2829_regs.rx_vga_gain_spi = max2829_regs_t::RX_VGA_GAIN_SPI_SPI; _max2829_regs.rssi_output_range = max2829_regs_t::RSSI_OUTPUT_RANGE_HIGH; _max2829_regs.rssi_op_mode = max2829_regs_t::RSSI_OP_MODE_ENABLED; _max2829_regs.rssi_pin_fcn = max2829_regs_t::RSSI_PIN_FCN_RSSI; _max2829_regs.rx_highpass = max2829_regs_t::RX_HIGHPASS_100HZ; _max2829_regs.tx_vga_gain_spi = max2829_regs_t::TX_VGA_GAIN_SPI_SPI; _max2829_regs.pa_driver_linearity = max2829_regs_t::PA_DRIVER_LINEARITY_78; _max2829_regs.tx_vga_linearity = max2829_regs_t::TX_VGA_LINEARITY_78; _max2829_regs.tx_upconv_linearity = max2829_regs_t::TX_UPCONV_LINEARITY_78; //send initial register settings for(boost::uint8_t reg = 0x2; reg <= 0xC; reg++){ this->send_reg(reg); } //////////////////////////////////////////////////////////////////// // Register RX properties //////////////////////////////////////////////////////////////////// this->get_rx_subtree()->create("name") .set("XCVR2450 RX"); this->get_rx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&xcvr2450::get_locked, this)); this->get_rx_subtree()->create("sensors/rssi") .publish(boost::bind(&xcvr2450::get_rssi, this)); BOOST_FOREACH(const std::string &name, xcvr_rx_gain_ranges.keys()){ this->get_rx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&xcvr2450::set_rx_gain, this, _1, name)) .set(xcvr_rx_gain_ranges[name].start()); this->get_rx_subtree()->create("gains/"+name+"/range") .set(xcvr_rx_gain_ranges[name]); } this->get_rx_subtree()->create("freq/value") .coerce(boost::bind(&xcvr2450::set_lo_freq, this, _1)) .set(double(2.45e9)); this->get_rx_subtree()->create("freq/range") .set(xcvr_freq_range); this->get_rx_subtree()->create("antenna/value") .subscribe(boost::bind(&xcvr2450::set_rx_ant, this, _1)) .set(xcvr_antennas.at(0)); this->get_rx_subtree()->create >("antenna/options") .set(xcvr_antennas); this->get_rx_subtree()->create("connection") .set("IQ"); this->get_rx_subtree()->create("enabled") .set(true); //always enabled this->get_rx_subtree()->create("use_lo_offset") .set(false); this->get_rx_subtree()->create("bandwidth/value") .coerce(boost::bind(&xcvr2450::set_rx_bandwidth, this, _1)) //complex bandpass bandwidth .set(2.0*_rx_bandwidth); //_rx_bandwidth in lowpass, convert to complex bandpass this->get_rx_subtree()->create("bandwidth/range") .set(xcvr_rx_bandwidth_range); //////////////////////////////////////////////////////////////////// // Register TX properties //////////////////////////////////////////////////////////////////// this->get_tx_subtree()->create("name") .set("XCVR2450 TX"); this->get_tx_subtree()->create("sensors/lo_locked") .publish(boost::bind(&xcvr2450::get_locked, this)); BOOST_FOREACH(const std::string &name, xcvr_tx_gain_ranges.keys()){ this->get_tx_subtree()->create("gains/"+name+"/value") .coerce(boost::bind(&xcvr2450::set_tx_gain, this, _1, name)) .set(xcvr_tx_gain_ranges[name].start()); this->get_tx_subtree()->create("gains/"+name+"/range") .set(xcvr_tx_gain_ranges[name]); } this->get_tx_subtree()->create("freq/value") .coerce(boost::bind(&xcvr2450::set_lo_freq, this, _1)) .set(double(2.45e9)); this->get_tx_subtree()->create("freq/range") .set(xcvr_freq_range); this->get_tx_subtree()->create("antenna/value") .subscribe(boost::bind(&xcvr2450::set_tx_ant, this, _1)) .set(xcvr_antennas.at(1)); this->get_tx_subtree()->create >("antenna/options") .set(xcvr_antennas); this->get_tx_subtree()->create("connection") .set("QI"); this->get_tx_subtree()->create("enabled") .set(true); //always enabled this->get_tx_subtree()->create("use_lo_offset") .set(false); this->get_tx_subtree()->create("bandwidth/value") .coerce(boost::bind(&xcvr2450::set_tx_bandwidth, this, _1)) //complex bandpass bandwidth .set(2.0*_tx_bandwidth); //_tx_bandwidth in lowpass, convert to complex bandpass this->get_tx_subtree()->create("bandwidth/range") .set(xcvr_tx_bandwidth_range); //enable only the clocks we need this->get_iface()->set_clock_enabled(dboard_iface::UNIT_TX, true); //set the gpio directions and atr controls (identically) this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_TX, TXIO_MASK); this->get_iface()->set_pin_ctrl(dboard_iface::UNIT_RX, RXIO_MASK); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_TX, TXIO_MASK); this->get_iface()->set_gpio_ddr(dboard_iface::UNIT_RX, RXIO_MASK); } xcvr2450::~xcvr2450(void){ UHD_SAFE_CALL(spi_reset();) } void xcvr2450::spi_reset(void){ //spi reset mode: global enable = off, tx and rx enable = on this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_IDLE, TX_ENB_TXIO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE, RX_ENB_RXIO | POWER_DOWN_RXIO); boost::this_thread::sleep(boost::posix_time::milliseconds(10)); //take it back out of spi reset mode and wait a bit this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE, RX_DIS_RXIO | POWER_UP_RXIO); boost::this_thread::sleep(boost::posix_time::milliseconds(10)); } /*********************************************************************** * Update ATR regs which change with Antenna or Freq **********************************************************************/ void xcvr2450::update_atr(void){ //calculate tx atr pins int band_sel = (xcvr2450::is_highband(_lo_freq))? HB_PA_TXIO : LB_PA_TXIO; int tx_ant_sel = (_tx_ant == "J1")? ANTSEL_TX1_RX2_TXIO : ANTSEL_TX2_RX1_TXIO; int rx_ant_sel = (_rx_ant == "J2")? ANTSEL_TX1_RX2_TXIO : ANTSEL_TX2_RX1_TXIO; int xx_ant_sel = tx_ant_sel; //Prefer the tx antenna selection for full duplex, //due to the issue that USRP1 will take the value of full duplex for its TXATR. int ad9515div = (_ad9515div == 3)? AD9515DIV_3_TXIO : AD9515DIV_2_TXIO; //set the tx registers this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_IDLE, band_sel | ad9515div | TX_DIS_TXIO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_RX_ONLY, band_sel | ad9515div | TX_DIS_TXIO | rx_ant_sel); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_TX_ONLY, band_sel | ad9515div | TX_ENB_TXIO | tx_ant_sel); this->get_iface()->set_atr_reg(dboard_iface::UNIT_TX, dboard_iface::ATR_REG_FULL_DUPLEX, band_sel | ad9515div | TX_ENB_TXIO | xx_ant_sel); //set the rx registers this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_IDLE, POWER_UP_RXIO | RX_DIS_RXIO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_RX_ONLY, POWER_UP_RXIO | RX_ENB_RXIO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_TX_ONLY, POWER_UP_RXIO | RX_DIS_RXIO); this->get_iface()->set_atr_reg(dboard_iface::UNIT_RX, dboard_iface::ATR_REG_FULL_DUPLEX, POWER_UP_RXIO | RX_DIS_RXIO); } /*********************************************************************** * Tuning **********************************************************************/ double xcvr2450::set_lo_freq(double target_freq){ //tune the LO and sleep a bit for lock //if not locked, try some carrier offsets double actual = 0.0; for (double offset = 0.0; offset <= 3e6; offset+=1e6){ actual = this->set_lo_freq_core(target_freq + offset); boost::this_thread::sleep(boost::posix_time::milliseconds(50)); if (this->get_locked().to_bool()) break; } return actual; } double xcvr2450::set_lo_freq_core(double target_freq){ //clip the input to the range target_freq = xcvr_freq_range.clip(target_freq); //variables used in the calculation below double scaler = xcvr2450::is_highband(target_freq)? (4.0/5.0) : (4.0/3.0); double ref_freq = this->get_iface()->get_codec_rate(dboard_iface::UNIT_TX); int R, intdiv, fracdiv; //loop through values until we get a match for(_ad9515div = 2; _ad9515div <= 3; _ad9515div++){ for(R = 1; R <= 7; R++){ double N = (target_freq*scaler*R*_ad9515div)/ref_freq; intdiv = int(std::floor(N)); fracdiv = boost::math::iround((N - intdiv)*double(1 << 16)); //actual minimum is 128, but most chips seems to require higher to lock if (intdiv < 131 or intdiv > 255) continue; //constraints met: exit loop goto done_loop; } } done_loop: //calculate the actual freq from the values above double N = double(intdiv) + double(fracdiv)/double(1 << 16); _lo_freq = (N*ref_freq)/(scaler*R*_ad9515div); UHD_LOGV(often) << boost::format("XCVR2450 tune:\n") << boost::format(" R=%d, N=%f, ad9515=%d, scaler=%f\n") % R % N % _ad9515div % scaler << boost::format(" Ref Freq=%fMHz\n") % (ref_freq/1e6) << boost::format(" Target Freq=%fMHz\n") % (target_freq/1e6) << boost::format(" Actual Freq=%fMHz\n") % (_lo_freq/1e6) << std::endl; //high-high band or low-high band? if(_lo_freq > (5.35e9 + 5.47e9)/2.0){ UHD_LOGV(often) << "XCVR2450 tune: Using high-high band" << std::endl; _max2829_regs.band_select_802_11a = max2829_regs_t::BAND_SELECT_802_11A_5_47GHZ_TO_5_875GHZ; }else{ UHD_LOGV(often) << "XCVR2450 tune: Using low-high band" << std::endl; _max2829_regs.band_select_802_11a = max2829_regs_t::BAND_SELECT_802_11A_4_9GHZ_TO_5_35GHZ; } //new band select settings and ad9515 divider this->update_atr(); const bool div_ext(this->get_tx_id() == 0x0059); if (div_ext) { this->get_iface()->set_clock_rate(dboard_iface::UNIT_TX, ref_freq/_ad9515div); } else { this->get_iface()->set_clock_rate(dboard_iface::UNIT_TX, ref_freq); } //load new counters into registers _max2829_regs.int_div_ratio_word = intdiv; _max2829_regs.frac_div_ratio_lsb = fracdiv & 0x3; _max2829_regs.frac_div_ratio_msb = fracdiv >> 2; this->send_reg(0x3); //integer this->send_reg(0x4); //fractional //load the reference divider and band select into registers //toggle the bandswitch from off to automatic (which really means start) _max2829_regs.ref_divider = R; _max2829_regs.band_select = (xcvr2450::is_highband(_lo_freq))? max2829_regs_t::BAND_SELECT_5GHZ : max2829_regs_t::BAND_SELECT_2_4GHZ ; _max2829_regs.vco_bandswitch = max2829_regs_t::VCO_BANDSWITCH_DISABLE; this->send_reg(0x5); _max2829_regs.vco_bandswitch = max2829_regs_t::VCO_BANDSWITCH_AUTOMATIC;; this->send_reg(0x5); return _lo_freq; } /*********************************************************************** * Antenna Handling **********************************************************************/ void xcvr2450::set_tx_ant(const std::string &ant){ assert_has(xcvr_antennas, ant, "xcvr antenna name"); _tx_ant = ant; this->update_atr(); //sets the atr to the new antenna setting } void xcvr2450::set_rx_ant(const std::string &ant){ assert_has(xcvr_antennas, ant, "xcvr antenna name"); _rx_ant = ant; this->update_atr(); //sets the atr to the new antenna setting } /*********************************************************************** * Gain Handling **********************************************************************/ /*! * Convert a requested gain for the tx vga into the integer register value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return 6 bit the register value */ static int gain_to_tx_vga_reg(double &gain){ //calculate the register value int reg = uhd::clip(boost::math::iround(gain*60/30.0) + 3, 0, 63); //calculate the actual gain value if (reg < 4) gain = 0; else if (reg < 48) gain = double(reg/2 - 1); else gain = double(reg/2.0 - 1.5); //return register value return reg; } /*! * Convert a requested gain for the tx bb into the integer register value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return gain enum value */ static max2829_regs_t::tx_baseband_gain_t gain_to_tx_bb_reg(double &gain){ int reg = uhd::clip(boost::math::iround(gain*3/5.0), 0, 3); switch(reg){ case 0: gain = 0; return max2829_regs_t::TX_BASEBAND_GAIN_0DB; case 1: gain = 2; return max2829_regs_t::TX_BASEBAND_GAIN_2DB; case 2: gain = 3.5; return max2829_regs_t::TX_BASEBAND_GAIN_3_5DB; case 3: gain = 5; return max2829_regs_t::TX_BASEBAND_GAIN_5DB; } UHD_THROW_INVALID_CODE_PATH(); } /*! * Convert a requested gain for the rx vga into the integer register value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return 5 bit the register value */ static int gain_to_rx_vga_reg(double &gain){ int reg = uhd::clip(boost::math::iround(gain/2.0), 0, 31); gain = double(reg*2); return reg; } /*! * Convert a requested gain for the rx lna into the integer register value. * The gain passed into the function will be set to the actual value. * \param gain the requested gain in dB * \return 2 bit the register value */ static int gain_to_rx_lna_reg(double &gain){ int reg = uhd::clip(boost::math::iround(gain*2/30.5) + 1, 0, 3); switch(reg){ case 0: case 1: gain = 0; break; case 2: gain = 15; break; case 3: gain = 30.5; break; } return reg; } double xcvr2450::set_tx_gain(double gain, const std::string &name){ assert_has(xcvr_tx_gain_ranges.keys(), name, "xcvr tx gain name"); if (name == "VGA"){ _max2829_regs.tx_vga_gain = gain_to_tx_vga_reg(gain); send_reg(0xC); } else if(name == "BB"){ _max2829_regs.tx_baseband_gain = gain_to_tx_bb_reg(gain); send_reg(0x9); } else UHD_THROW_INVALID_CODE_PATH(); _tx_gains[name] = gain; return gain; } double xcvr2450::set_rx_gain(double gain, const std::string &name){ assert_has(xcvr_rx_gain_ranges.keys(), name, "xcvr rx gain name"); if (name == "VGA"){ _max2829_regs.rx_vga_gain = gain_to_rx_vga_reg(gain); send_reg(0xB); } else if(name == "LNA"){ _max2829_regs.rx_lna_gain = gain_to_rx_lna_reg(gain); send_reg(0xB); } else UHD_THROW_INVALID_CODE_PATH(); _rx_gains[name] = gain; return gain; } /*********************************************************************** * Bandwidth Handling **********************************************************************/ static max2829_regs_t::tx_lpf_coarse_adj_t bandwidth_to_tx_lpf_coarse_reg(double &bandwidth){ int reg = uhd::clip(boost::math::iround((bandwidth-6.0e6)/6.0e6), 1, 3); switch(reg){ case 1: // bandwidth < 15MHz bandwidth = 12e6; return max2829_regs_t::TX_LPF_COARSE_ADJ_12MHZ; case 2: // 15MHz < bandwidth < 21MHz bandwidth = 18e6; return max2829_regs_t::TX_LPF_COARSE_ADJ_18MHZ; case 3: // bandwidth > 21MHz bandwidth = 24e6; return max2829_regs_t::TX_LPF_COARSE_ADJ_24MHZ; } UHD_THROW_INVALID_CODE_PATH(); } static max2829_regs_t::rx_lpf_fine_adj_t bandwidth_to_rx_lpf_fine_reg(double &bandwidth, double requested_bandwidth){ int reg = uhd::clip(boost::math::iround((requested_bandwidth/bandwidth)/0.05), 18, 22); switch(reg){ case 18: // requested_bandwidth < 92.5% bandwidth = 0.9 * bandwidth; return max2829_regs_t::RX_LPF_FINE_ADJ_90; case 19: // 92.5% < requested_bandwidth < 97.5% bandwidth = 0.95 * bandwidth; return max2829_regs_t::RX_LPF_FINE_ADJ_95; case 20: // 97.5% < requested_bandwidth < 102.5% bandwidth = 1.0 * bandwidth; return max2829_regs_t::RX_LPF_FINE_ADJ_100; case 21: // 102.5% < requested_bandwidth < 107.5% bandwidth = 1.05 * bandwidth; return max2829_regs_t::RX_LPF_FINE_ADJ_105; case 22: // 107.5% < requested_bandwidth bandwidth = 1.1 * bandwidth; return max2829_regs_t::RX_LPF_FINE_ADJ_110; } UHD_THROW_INVALID_CODE_PATH(); } static max2829_regs_t::rx_lpf_coarse_adj_t bandwidth_to_rx_lpf_coarse_reg(double &bandwidth){ int reg = uhd::clip(boost::math::iround((bandwidth-7.0e6)/1.0e6), 0, 11); switch(reg){ case 0: // bandwidth < 7.5MHz case 1: // 7.5MHz < bandwidth < 8.5MHz bandwidth = 7.5e6; return max2829_regs_t::RX_LPF_COARSE_ADJ_7_5MHZ; case 2: // 8.5MHz < bandwidth < 9.5MHz case 3: // 9.5MHz < bandwidth < 10.5MHz case 4: // 10.5MHz < bandwidth < 11.5MHz bandwidth = 9.5e6; return max2829_regs_t::RX_LPF_COARSE_ADJ_9_5MHZ; case 5: // 11.5MHz < bandwidth < 12.5MHz case 6: // 12.5MHz < bandwidth < 13.5MHz case 7: // 13.5MHz < bandwidth < 14.5MHz case 8: // 14.5MHz < bandwidth < 15.5MHz bandwidth = 14e6; return max2829_regs_t::RX_LPF_COARSE_ADJ_14MHZ; case 9: // 15.5MHz < bandwidth < 16.5MHz case 10: // 16.5MHz < bandwidth < 17.5MHz case 11: // 17.5MHz < bandwidth bandwidth = 18e6; return max2829_regs_t::RX_LPF_COARSE_ADJ_18MHZ; } UHD_THROW_INVALID_CODE_PATH(); } double xcvr2450::set_rx_bandwidth(double bandwidth){ double requested_bandwidth = bandwidth; //convert complex bandpass to lowpass bandwidth bandwidth = bandwidth/2.0; //compute coarse low pass cutoff frequency setting _max2829_regs.rx_lpf_coarse_adj = bandwidth_to_rx_lpf_coarse_reg(bandwidth); //compute fine low pass cutoff frequency setting _max2829_regs.rx_lpf_fine_adj = bandwidth_to_rx_lpf_fine_reg(bandwidth, requested_bandwidth); //shadow bandwidth setting _rx_bandwidth = bandwidth; //update register send_reg(0x7); UHD_LOGV(often) << boost::format( "XCVR2450 RX Bandwidth (lp_fc): %f Hz, coarse reg: %d, fine reg: %d" ) % _rx_bandwidth % (int(_max2829_regs.rx_lpf_coarse_adj)) % (int(_max2829_regs.rx_lpf_fine_adj)) << std::endl; return 2.0*_rx_bandwidth; } double xcvr2450::set_tx_bandwidth(double bandwidth){ //convert complex bandpass to lowpass bandwidth bandwidth = bandwidth/2.0; //compute coarse low pass cutoff frequency setting _max2829_regs.tx_lpf_coarse_adj = bandwidth_to_tx_lpf_coarse_reg(bandwidth); //shadow bandwidth setting _tx_bandwidth = bandwidth; //update register send_reg(0x7); UHD_LOGV(often) << boost::format( "XCVR2450 TX Bandwidth (lp_fc): %f Hz, coarse reg: %d" ) % _tx_bandwidth % (int(_max2829_regs.tx_lpf_coarse_adj)) << std::endl; //convert lowpass back to complex bandpass bandwidth return 2.0*_tx_bandwidth; } uhd-3.5.5/host/lib/usrp/dboard_base.cpp000066400000000000000000000067061224274632000177640ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "dboard_ctor_args.hpp" #include #include #include using namespace uhd; using namespace uhd::usrp; /*********************************************************************** * dboard_base dboard dboard_base class **********************************************************************/ struct dboard_base::impl{ dboard_ctor_args_t args; }; dboard_base::dboard_base(ctor_args_t args){ _impl = UHD_PIMPL_MAKE(impl, ()); _impl->args = *static_cast(args); } std::string dboard_base::get_subdev_name(void){ return _impl->args.sd_name; } dboard_iface::sptr dboard_base::get_iface(void){ return _impl->args.db_iface; } dboard_id_t dboard_base::get_rx_id(void){ return _impl->args.rx_id; } dboard_id_t dboard_base::get_tx_id(void){ return _impl->args.tx_id; } property_tree::sptr dboard_base::get_rx_subtree(void){ return _impl->args.rx_subtree; } property_tree::sptr dboard_base::get_tx_subtree(void){ return _impl->args.tx_subtree; } /*********************************************************************** * xcvr dboard dboard_base class **********************************************************************/ xcvr_dboard_base::xcvr_dboard_base(ctor_args_t args) : dboard_base(args){ if (get_rx_id() == dboard_id_t::none()){ throw uhd::runtime_error(str(boost::format( "cannot create xcvr board when the rx id is \"%s\"" ) % dboard_id_t::none().to_pp_string())); } if (get_tx_id() == dboard_id_t::none()){ throw uhd::runtime_error(str(boost::format( "cannot create xcvr board when the tx id is \"%s\"" ) % dboard_id_t::none().to_pp_string())); } } /*********************************************************************** * rx dboard dboard_base class **********************************************************************/ rx_dboard_base::rx_dboard_base(ctor_args_t args) : dboard_base(args){ if (get_tx_id() != dboard_id_t::none()){ throw uhd::runtime_error(str(boost::format( "cannot create rx board when the tx id is \"%s\"" " -> expected a tx id of \"%s\"" ) % get_tx_id().to_pp_string() % dboard_id_t::none().to_pp_string())); } } /*********************************************************************** * tx dboard dboard_base class **********************************************************************/ tx_dboard_base::tx_dboard_base(ctor_args_t args) : dboard_base(args){ if (get_rx_id() != dboard_id_t::none()){ throw uhd::runtime_error(str(boost::format( "cannot create tx board when the rx id is \"%s\"" " -> expected a rx id of \"%s\"" ) % get_rx_id().to_pp_string() % dboard_id_t::none().to_pp_string())); } } uhd-3.5.5/host/lib/usrp/dboard_ctor_args.hpp000066400000000000000000000024101224274632000210260ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP #define INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP #include #include #include #include #include namespace uhd{ namespace usrp{ struct dboard_ctor_args_t{ std::string sd_name; dboard_iface::sptr db_iface; dboard_id_t rx_id, tx_id; property_tree::sptr rx_subtree, tx_subtree; }; }} //namespace #endif /* INCLUDED_LIBUHD_USRP_DBOARD_CTOR_ARGS_HPP */ uhd-3.5.5/host/lib/usrp/dboard_eeprom.cpp000066400000000000000000000137651224274632000203440ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; /*********************************************************************** * Utility functions **********************************************************************/ //! create a string from a byte vector, return empty if invalid ascii static const std::string bytes_to_string(const byte_vector_t &bytes){ std::string out; BOOST_FOREACH(boost::uint8_t byte, bytes){ if (byte < 32 or byte > 127) return out; out += byte; } return out; } //! create a byte vector from a string, null terminate unless max length static const byte_vector_t string_to_bytes(const std::string &string, size_t max_length){ byte_vector_t bytes; for (size_t i = 0; i < std::min(string.size(), max_length); i++){ bytes.push_back(string[i]); } if (bytes.size() < max_length - 1) bytes.push_back('\0'); return bytes; } //////////////////////////////////////////////////////////////////////// // format of daughterboard EEPROM // 00: 0xDB code for ``I'm a daughterboard'' // 01: .. Daughterboard ID (LSB) // 02: .. Daughterboard ID (MSB) // 03: .. io bits 7-0 direction (bit set if it's an output from m'board) // 04: .. io bits 15-8 direction (bit set if it's an output from m'board) // 05: .. ADC0 DC offset correction (LSB) // 06: .. ADC0 DC offset correction (MSB) // 07: .. ADC1 DC offset correction (LSB) // 08: .. ADC1 DC offset correction (MSB) // ... // 1f: .. negative of the sum of bytes [0x00, 0x1e] #define DB_EEPROM_MAGIC 0x00 #define DB_EEPROM_MAGIC_VALUE 0xDB #define DB_EEPROM_ID_LSB 0x01 #define DB_EEPROM_ID_MSB 0x02 #define DB_EEPROM_REV_LSB 0x03 #define DB_EEPROM_REV_MSB 0x04 #define DB_EEPROM_OFFSET_0_LSB 0x05 // offset correction for ADC or DAC 0 #define DB_EEPROM_OFFSET_0_MSB 0x06 #define DB_EEPROM_OFFSET_1_LSB 0x07 // offset correction for ADC or DAC 1 #define DB_EEPROM_OFFSET_1_MSB 0x08 #define DB_EEPROM_SERIAL 0x09 #define DB_EEPROM_SERIAL_LEN 0x09 //9 ASCII characters #define DB_EEPROM_CHKSUM 0x1f #define DB_EEPROM_CLEN 0x20 // length of common portion of eeprom #define DB_EEPROM_CUSTOM_BASE DB_EEPROM_CLEN // first avail offset for // daughterboard specific use //////////////////////////////////////////////////////////////////////// //negative sum of bytes excluding checksum byte static boost::uint8_t checksum(const byte_vector_t &bytes){ int sum = 0; for (size_t i = 0; i < std::min(bytes.size(), size_t(DB_EEPROM_CHKSUM)); i++){ sum -= int(bytes.at(i)); } UHD_LOGV(often) << boost::format("sum: 0x%02x") % sum << std::endl; return boost::uint8_t(sum); } dboard_eeprom_t::dboard_eeprom_t(void){ id = dboard_id_t::none(); serial = ""; } void dboard_eeprom_t::load(i2c_iface &iface, boost::uint8_t addr){ byte_vector_t bytes = iface.read_eeprom(addr, 0, DB_EEPROM_CLEN); std::ostringstream ss; for (size_t i = 0; i < bytes.size(); i++){ ss << boost::format( "eeprom byte[0x%02x] = 0x%02x") % i % int(bytes.at(i) ) << std::endl; } UHD_LOGV(often) << ss.str() << std::endl; try{ UHD_ASSERT_THROW(bytes.size() >= DB_EEPROM_CLEN); UHD_ASSERT_THROW(bytes[DB_EEPROM_MAGIC] == DB_EEPROM_MAGIC_VALUE); UHD_ASSERT_THROW(bytes[DB_EEPROM_CHKSUM] == checksum(bytes)); //parse the ids id = dboard_id_t::from_uint16(0 | (boost::uint16_t(bytes[DB_EEPROM_ID_LSB]) << 0) | (boost::uint16_t(bytes[DB_EEPROM_ID_MSB]) << 8) ); //parse the serial serial = bytes_to_string( byte_vector_t(&bytes.at(DB_EEPROM_SERIAL), &bytes.at(DB_EEPROM_SERIAL+DB_EEPROM_SERIAL_LEN)) ); //parse the revision const boost::uint16_t rev_num = 0 | (boost::uint16_t(bytes[DB_EEPROM_REV_LSB]) << 0) | (boost::uint16_t(bytes[DB_EEPROM_REV_MSB]) << 8) ; if (rev_num != 0 and rev_num != 0xffff){ revision = boost::lexical_cast(rev_num); } }catch(const uhd::assertion_error &){ id = dboard_id_t::none(); serial = ""; } } void dboard_eeprom_t::store(i2c_iface &iface, boost::uint8_t addr) const{ byte_vector_t bytes(DB_EEPROM_CLEN, 0); //defaults to all zeros bytes[DB_EEPROM_MAGIC] = DB_EEPROM_MAGIC_VALUE; //load the id bytes bytes[DB_EEPROM_ID_LSB] = boost::uint8_t(id.to_uint16() >> 0); bytes[DB_EEPROM_ID_MSB] = boost::uint8_t(id.to_uint16() >> 8); //load the serial bytes byte_vector_t ser_bytes = string_to_bytes(serial, DB_EEPROM_SERIAL_LEN); std::copy(ser_bytes.begin(), ser_bytes.end(), &bytes.at(DB_EEPROM_SERIAL)); //load the revision bytes if (not revision.empty()){ const boost::uint16_t rev_num = boost::lexical_cast(revision); bytes[DB_EEPROM_REV_LSB] = boost::uint8_t(rev_num >> 0); bytes[DB_EEPROM_REV_MSB] = boost::uint8_t(rev_num >> 8); } //load the checksum bytes[DB_EEPROM_CHKSUM] = checksum(bytes); iface.write_eeprom(addr, 0, bytes); } uhd-3.5.5/host/lib/usrp/dboard_id.cpp000066400000000000000000000040231224274632000174340ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include using namespace uhd::usrp; dboard_id_t::dboard_id_t(boost::uint16_t id){ _id = id; } dboard_id_t dboard_id_t::none(void){ return dboard_id_t(); } dboard_id_t dboard_id_t::from_uint16(boost::uint16_t uint16){ return dboard_id_t(uint16); } boost::uint16_t dboard_id_t::to_uint16(void) const{ return _id; } //used with lexical cast to parse a hex string template struct to_hex{ T value; operator T() const {return value;} friend std::istream& operator>>(std::istream& in, to_hex& out){ in >> std::hex >> out.value; return in; } }; dboard_id_t dboard_id_t::from_string(const std::string &string){ if (string.substr(0, 2) == "0x"){ return dboard_id_t::from_uint16(boost::lexical_cast >(string)); } return dboard_id_t::from_uint16(boost::lexical_cast(string)); } std::string dboard_id_t::to_string(void) const{ return str(boost::format("0x%04x") % this->to_uint16()); } //Note: to_pp_string is implemented in the dboard manager //because it needs access to the dboard registration table bool uhd::usrp::operator==(const dboard_id_t &lhs, const dboard_id_t &rhs){ return lhs.to_uint16() == rhs.to_uint16(); } uhd-3.5.5/host/lib/usrp/dboard_iface.cpp000066400000000000000000000046261224274632000201200ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include using namespace uhd::usrp; struct dboard_iface::impl{ uhd::dict pin_ctrl_shadow; uhd::dict > atr_reg_shadow; uhd::dict gpio_ddr_shadow; uhd::dict gpio_out_shadow; }; dboard_iface::dboard_iface(void){ _impl = UHD_PIMPL_MAKE(impl, ()); } template static T shadow_it(T &shadow, const T &value, const T &mask){ shadow = (shadow & ~mask) | (value & mask); return shadow; } void dboard_iface::set_pin_ctrl( unit_t unit, boost::uint16_t value, boost::uint16_t mask ){ _set_pin_ctrl(unit, shadow_it(_impl->pin_ctrl_shadow[unit], value, mask)); } boost::uint16_t dboard_iface::get_pin_ctrl(unit_t unit){ return _impl->pin_ctrl_shadow[unit]; } void dboard_iface::set_atr_reg( unit_t unit, atr_reg_t reg, boost::uint16_t value, boost::uint16_t mask ){ _set_atr_reg(unit, reg, shadow_it(_impl->atr_reg_shadow[unit][reg], value, mask)); } boost::uint16_t dboard_iface::get_atr_reg(unit_t unit, atr_reg_t reg){ return _impl->atr_reg_shadow[unit][reg]; } void dboard_iface::set_gpio_ddr( unit_t unit, boost::uint16_t value, boost::uint16_t mask ){ _set_gpio_ddr(unit, shadow_it(_impl->gpio_ddr_shadow[unit], value, mask)); } boost::uint16_t dboard_iface::get_gpio_ddr(unit_t unit){ return _impl->gpio_ddr_shadow[unit]; } void dboard_iface::set_gpio_out( unit_t unit, boost::uint16_t value, boost::uint16_t mask ){ _set_gpio_out(unit, shadow_it(_impl->gpio_out_shadow[unit], value, mask)); } boost::uint16_t dboard_iface::get_gpio_out(unit_t unit){ return _impl->gpio_out_shadow[unit]; } uhd-3.5.5/host/lib/usrp/dboard_manager.cpp000066400000000000000000000301471224274632000204600ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "dboard_ctor_args.hpp" #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; /*********************************************************************** * dboard key class to use for look-up **********************************************************************/ class dboard_key_t{ public: dboard_key_t(const dboard_id_t &id = dboard_id_t::none()): _rx_id(id), _tx_id(id), _xcvr(false){} dboard_key_t(const dboard_id_t &rx_id, const dboard_id_t &tx_id): _rx_id(rx_id), _tx_id(tx_id), _xcvr(true){} dboard_id_t xx_id(void) const{ UHD_ASSERT_THROW(not this->is_xcvr()); return this->_rx_id; } dboard_id_t rx_id(void) const{ UHD_ASSERT_THROW(this->is_xcvr()); return this->_rx_id; } dboard_id_t tx_id(void) const{ UHD_ASSERT_THROW(this->is_xcvr()); return this->_tx_id; } bool is_xcvr(void) const{ return this->_xcvr; } private: dboard_id_t _rx_id, _tx_id; bool _xcvr; }; bool operator==(const dboard_key_t &lhs, const dboard_key_t &rhs){ if (lhs.is_xcvr() and rhs.is_xcvr()) return lhs.rx_id() == rhs.rx_id() and lhs.tx_id() == rhs.tx_id(); if (not lhs.is_xcvr() and not rhs.is_xcvr()) return lhs.xx_id() == rhs.xx_id(); return false; } /*********************************************************************** * storage and registering for dboards **********************************************************************/ //dboard registry tuple: dboard constructor, canonical name, subdev names typedef boost::tuple > args_t; //map a dboard id to a dboard constructor typedef uhd::dict id_to_args_map_t; UHD_SINGLETON_FCN(id_to_args_map_t, get_id_to_args_map) static void register_dboard_key( const dboard_key_t &dboard_key, dboard_manager::dboard_ctor_t dboard_ctor, const std::string &name, const std::vector &subdev_names ){ UHD_LOGV(always) << "registering: " << name << std::endl; if (get_id_to_args_map().has_key(dboard_key)){ if (dboard_key.is_xcvr()) throw uhd::key_error(str(boost::format( "The dboard id pair [%s, %s] is already registered to %s." ) % dboard_key.rx_id().to_string() % dboard_key.tx_id().to_string() % get_id_to_args_map()[dboard_key].get<1>())); else throw uhd::key_error(str(boost::format( "The dboard id %s is already registered to %s." ) % dboard_key.xx_id().to_string() % get_id_to_args_map()[dboard_key].get<1>())); } get_id_to_args_map()[dboard_key] = args_t(dboard_ctor, name, subdev_names); } void dboard_manager::register_dboard( const dboard_id_t &dboard_id, dboard_ctor_t dboard_ctor, const std::string &name, const std::vector &subdev_names ){ register_dboard_key(dboard_key_t(dboard_id), dboard_ctor, name, subdev_names); } void dboard_manager::register_dboard( const dboard_id_t &rx_dboard_id, const dboard_id_t &tx_dboard_id, dboard_ctor_t dboard_ctor, const std::string &name, const std::vector &subdev_names ){ register_dboard_key(dboard_key_t(rx_dboard_id, tx_dboard_id), dboard_ctor, name, subdev_names); } std::string dboard_id_t::to_cname(void) const{ std::string cname; BOOST_FOREACH(const dboard_key_t &key, get_id_to_args_map().keys()){ if ( (not key.is_xcvr() and *this == key.xx_id()) or (key.is_xcvr() and (*this == key.rx_id() or *this == key.tx_id())) ){ if (not cname.empty()) cname += ", "; cname += get_id_to_args_map()[key].get<1>(); } } return (cname.empty())? "Unknown" : cname; } std::string dboard_id_t::to_pp_string(void) const{ return str(boost::format("%s (%s)") % this->to_cname() % this->to_string()); } /*********************************************************************** * dboard manager implementation class **********************************************************************/ class dboard_manager_impl : public dboard_manager{ public: dboard_manager_impl( dboard_id_t rx_dboard_id, dboard_id_t tx_dboard_id, dboard_iface::sptr iface, property_tree::sptr subtree ); ~dboard_manager_impl(void); private: void init(dboard_id_t, dboard_id_t, property_tree::sptr); //list of rx and tx dboards in this dboard_manager //each dboard here is actually a subdevice proxy //the subdevice proxy is internal to the cpp file uhd::dict _rx_dboards; uhd::dict _tx_dboards; dboard_iface::sptr _iface; void set_nice_dboard_if(void); }; /*********************************************************************** * make routine for dboard manager **********************************************************************/ dboard_manager::sptr dboard_manager::make( dboard_id_t rx_dboard_id, dboard_id_t tx_dboard_id, dboard_id_t gdboard_id, dboard_iface::sptr iface, property_tree::sptr subtree ){ return dboard_manager::sptr( new dboard_manager_impl( rx_dboard_id, (gdboard_id == dboard_id_t::none())? tx_dboard_id : gdboard_id, iface, subtree ) ); } /*********************************************************************** * implementation class methods **********************************************************************/ dboard_manager_impl::dboard_manager_impl( dboard_id_t rx_dboard_id, dboard_id_t tx_dboard_id, dboard_iface::sptr iface, property_tree::sptr subtree ): _iface(iface) { try{ this->init(rx_dboard_id, tx_dboard_id, subtree); } catch(const std::exception &e){ UHD_MSG(error) << boost::format( "The daughterboard manager encountered a recoverable error in init.\n" "Loading the \"unknown\" daughterboard implementations to continue.\n" "The daughterboard cannot operate until this error is resolved.\n" ) << e.what() << std::endl; //clean up the stuff added by the call above if (subtree->exists("rx_frontends")) subtree->remove("rx_frontends"); if (subtree->exists("tx_frontends")) subtree->remove("tx_frontends"); this->init(dboard_id_t::none(), dboard_id_t::none(), subtree); } } void dboard_manager_impl::init( dboard_id_t rx_dboard_id, dboard_id_t tx_dboard_id, property_tree::sptr subtree ){ //find the dboard key matches for the dboard ids dboard_key_t rx_dboard_key, tx_dboard_key, xcvr_dboard_key; BOOST_FOREACH(const dboard_key_t &key, get_id_to_args_map().keys()){ if (key.is_xcvr()){ if (rx_dboard_id == key.rx_id() and tx_dboard_id == key.tx_id()) xcvr_dboard_key = key; if (rx_dboard_id == key.rx_id()) rx_dboard_key = key; //kept to handle warning if (tx_dboard_id == key.tx_id()) tx_dboard_key = key; //kept to handle warning } else{ if (rx_dboard_id == key.xx_id()) rx_dboard_key = key; if (tx_dboard_id == key.xx_id()) tx_dboard_key = key; } } //warn for invalid dboard id xcvr combinations if (not xcvr_dboard_key.is_xcvr() and (rx_dboard_key.is_xcvr() or tx_dboard_key.is_xcvr())){ UHD_MSG(warning) << boost::format( "Unknown transceiver board ID combination.\n" "Is your daughter-board mounted properly?\n" "RX dboard ID: %s\n" "TX dboard ID: %s\n" ) % rx_dboard_id.to_pp_string() % tx_dboard_id.to_pp_string(); } //initialize the gpio pins before creating subdevs set_nice_dboard_if(); //dboard constructor args dboard_ctor_args_t db_ctor_args; db_ctor_args.db_iface = _iface; //make xcvr subdevs if (xcvr_dboard_key.is_xcvr()){ //extract data for the xcvr dboard key dboard_ctor_t dboard_ctor; std::string name; std::vector subdevs; boost::tie(dboard_ctor, name, subdevs) = get_id_to_args_map()[xcvr_dboard_key]; //create the xcvr object for each subdevice BOOST_FOREACH(const std::string &subdev, subdevs){ db_ctor_args.sd_name = subdev; db_ctor_args.rx_id = rx_dboard_id; db_ctor_args.tx_id = tx_dboard_id; db_ctor_args.rx_subtree = subtree->subtree("rx_frontends/" + subdev); db_ctor_args.tx_subtree = subtree->subtree("tx_frontends/" + subdev); dboard_base::sptr xcvr_dboard = dboard_ctor(&db_ctor_args); _rx_dboards[subdev] = xcvr_dboard; _tx_dboards[subdev] = xcvr_dboard; } } //make tx and rx subdevs (separate subdevs for rx and tx dboards) else{ //force the rx key to the unknown board for bad combinations if (rx_dboard_key.is_xcvr() or rx_dboard_key.xx_id() == dboard_id_t::none()){ rx_dboard_key = dboard_key_t(0xfff1); } //extract data for the rx dboard key dboard_ctor_t rx_dboard_ctor; std::string rx_name; std::vector rx_subdevs; boost::tie(rx_dboard_ctor, rx_name, rx_subdevs) = get_id_to_args_map()[rx_dboard_key]; //make the rx subdevs BOOST_FOREACH(const std::string &subdev, rx_subdevs){ db_ctor_args.sd_name = subdev; db_ctor_args.rx_id = rx_dboard_id; db_ctor_args.tx_id = dboard_id_t::none(); db_ctor_args.rx_subtree = subtree->subtree("rx_frontends/" + subdev); db_ctor_args.tx_subtree = property_tree::sptr(); //null _rx_dboards[subdev] = rx_dboard_ctor(&db_ctor_args); } //force the tx key to the unknown board for bad combinations if (tx_dboard_key.is_xcvr() or tx_dboard_key.xx_id() == dboard_id_t::none()){ tx_dboard_key = dboard_key_t(0xfff0); } //extract data for the tx dboard key dboard_ctor_t tx_dboard_ctor; std::string tx_name; std::vector tx_subdevs; boost::tie(tx_dboard_ctor, tx_name, tx_subdevs) = get_id_to_args_map()[tx_dboard_key]; //make the tx subdevs BOOST_FOREACH(const std::string &subdev, tx_subdevs){ db_ctor_args.sd_name = subdev; db_ctor_args.rx_id = dboard_id_t::none(); db_ctor_args.tx_id = tx_dboard_id; db_ctor_args.rx_subtree = property_tree::sptr(); //null db_ctor_args.tx_subtree = subtree->subtree("tx_frontends/" + subdev); _tx_dboards[subdev] = tx_dboard_ctor(&db_ctor_args); } } } dboard_manager_impl::~dboard_manager_impl(void){UHD_SAFE_CALL( set_nice_dboard_if(); )} void dboard_manager_impl::set_nice_dboard_if(void){ //make a list of possible unit types std::vector units = boost::assign::list_of (dboard_iface::UNIT_RX) (dboard_iface::UNIT_TX) ; //set nice settings on each unit BOOST_FOREACH(dboard_iface::unit_t unit, units){ _iface->set_gpio_ddr(unit, 0x0000); //all inputs _iface->set_gpio_out(unit, 0x0000); //all low _iface->set_pin_ctrl(unit, 0x0000); //all gpio _iface->set_clock_enabled(unit, false); //clock off } } uhd-3.5.5/host/lib/usrp/e100/000077500000000000000000000000001224274632000154675ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/e100/CMakeLists.txt000066400000000000000000000032451224274632000202330ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## ######################################################################## # Conditionally configure the USRP-E100 support ######################################################################## LIBUHD_REGISTER_COMPONENT("E100" ENABLE_E100 OFF "ENABLE_LIBUHD;LINUX" OFF) IF(ENABLE_E100) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/clock_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/codec_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/e100_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/e100_impl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/e100_mmap_zero_copy.cpp ${CMAKE_CURRENT_SOURCE_DIR}/fpga_downloader.cpp ${CMAKE_CURRENT_SOURCE_DIR}/io_impl.cpp ) ENDIF(ENABLE_E100) uhd-3.5.5/host/lib/usrp/e100/clock_ctrl.cpp000066400000000000000000000506251224274632000203220ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "clock_ctrl.hpp" #include "ad9522_regs.hpp" #include #include #include #include #include "e100_regs.hpp" //spi slave constants #include #include #include #include #include //gcd #include #include using namespace uhd; /*********************************************************************** * Constants **********************************************************************/ static const bool ENABLE_THE_TEST_OUT = true; static const double REFERENCE_INPUT_RATE = 10e6; /*********************************************************************** * Helpers **********************************************************************/ template static void set_clock_divider( size_t divider, div_type &low, div_type &high, bypass_type &bypass ){ high = divider/2 - 1; low = divider - high - 2; bypass = (divider == 1)? 1 : 0; } /*********************************************************************** * Clock rate calculation stuff: * Using the internal VCO between 1400 and 1800 MHz **********************************************************************/ struct clock_settings_type{ size_t ref_clock_doubler, r_counter, a_counter, b_counter, prescaler, vco_divider, chan_divider; size_t get_n_counter(void) const{return prescaler * b_counter + a_counter;} double get_ref_rate(void) const{return REFERENCE_INPUT_RATE * ref_clock_doubler;} double get_vco_rate(void) const{return get_ref_rate()/r_counter * get_n_counter();} double get_chan_rate(void) const{return get_vco_rate()/vco_divider;} double get_out_rate(void) const{return get_chan_rate()/chan_divider;} std::string to_pp_string(void) const{ return str(boost::format( " r_counter: %d\n" " a_counter: %d\n" " b_counter: %d\n" " prescaler: %d\n" " vco_divider: %d\n" " chan_divider: %d\n" " vco_rate: %fMHz\n" " chan_rate: %fMHz\n" " out_rate: %fMHz\n" ) % r_counter % a_counter % b_counter % prescaler % vco_divider % chan_divider % (get_vco_rate()/1e6) % (get_chan_rate()/1e6) % (get_out_rate()/1e6) ); } }; //! gives the greatest divisor of num between 1 and max inclusive template static inline T greatest_divisor(T num, T max){ for (T i = max; i > 1; i--) if (num%i == 0) return i; return 1; } //! gives the least divisor of num between min and num exclusive template static inline T least_divisor(T num, T min){ for (T i = min; i < num; i++) if (num%i == 0) return i; return 1; } static clock_settings_type get_clock_settings(double rate){ clock_settings_type cs; cs.ref_clock_doubler = 2; //always doubling cs.prescaler = 8; //set to 8 when input is under 2400 MHz //basic formulas used below: //out_rate*X = ref_rate*Y //X = i*ref_rate/gcd //Y = i*out_rate/gcd //X = chan_div * vco_div * R //Y = P*B + A const boost::uint64_t out_rate = boost::uint64_t(rate); const boost::uint64_t ref_rate = boost::uint64_t(cs.get_ref_rate()); const size_t gcd = size_t(boost::math::gcd(ref_rate, out_rate)); for (size_t i = 1; i <= 100; i++){ const size_t X = i*ref_rate/gcd; const size_t Y = i*out_rate/gcd; //determine A and B (P is fixed) cs.b_counter = Y/cs.prescaler; cs.a_counter = Y - cs.b_counter*cs.prescaler; static const double vco_bound_pad = 100e6; for ( //calculate an r divider that fits into the bounds of the vco cs.r_counter = size_t(cs.get_n_counter()*cs.get_ref_rate()/(1800e6 - vco_bound_pad)); cs.r_counter <= size_t(cs.get_n_counter()*cs.get_ref_rate()/(1400e6 + vco_bound_pad)) and cs.r_counter > 0; cs.r_counter++ ){ //determine chan_div and vco_div //and fill in that order of preference cs.chan_divider = greatest_divisor(X/cs.r_counter, 32); cs.vco_divider = greatest_divisor(X/cs.chan_divider/cs.r_counter, 6); //avoid a vco divider of 1 (if possible) if (cs.vco_divider == 1){ cs.vco_divider = least_divisor(cs.chan_divider, 2); cs.chan_divider /= cs.vco_divider; } UHD_LOGV(always) << "gcd " << gcd << std::endl << "X " << X << std::endl << "Y " << Y << std::endl << cs.to_pp_string() << std::endl ; //filter limits on the counters if (cs.vco_divider == 1) continue; if (cs.r_counter >= (1<<14)) continue; if (cs.b_counter == 2) continue; if (cs.b_counter == 1 and cs.a_counter != 0) continue; if (cs.b_counter >= (1<<13)) continue; if (cs.a_counter >= (1<<6)) continue; if (cs.get_vco_rate() > 1800e6 - vco_bound_pad) continue; if (cs.get_vco_rate() < 1400e6 + vco_bound_pad) continue; if (cs.get_out_rate() != rate) continue; UHD_MSG(status) << "USRP-E100 clock control: " << i << std::endl << cs.to_pp_string() << std::endl; return cs; } } throw uhd::value_error(str(boost::format( "USRP-E100 clock control: could not calculate settings for clock rate %fMHz" ) % (rate/1e6))); } /*********************************************************************** * Clock Control Implementation **********************************************************************/ class e100_clock_ctrl_impl : public e100_clock_ctrl{ public: e100_clock_ctrl_impl(spi_iface::sptr iface, double master_clock_rate, const bool dboard_clocks_diff): _dboard_clocks_diff(dboard_clocks_diff) { _iface = iface; _chan_rate = 0.0; _out_rate = 0.0; //perform soft-reset _ad9522_regs.soft_reset = 1; this->send_reg(0x000); this->latch_regs(); _ad9522_regs.soft_reset = 0; //init the clock gen registers //Note: out0 should already be clocking the FPGA or this isnt going to work _ad9522_regs.sdo_active = ad9522_regs_t::SDO_ACTIVE_SDO_SDIO; _ad9522_regs.enb_stat_eeprom_at_stat_pin = 0; //use status pin _ad9522_regs.status_pin_control = 0x1; //n divider _ad9522_regs.ld_pin_control = 0x00; //dld _ad9522_regs.refmon_pin_control = 0x12; //show ref2 _ad9522_regs.lock_detect_counter = ad9522_regs_t::LOCK_DETECT_COUNTER_16CYC; this->use_internal_ref(); //initialize the FPGA clock rate UHD_MSG(status) << boost::format("Initializing FPGA clock to %fMHz...") % (master_clock_rate/1e6) << std::endl; this->set_fpga_clock_rate(master_clock_rate); this->enable_test_clock(ENABLE_THE_TEST_OUT); this->enable_rx_dboard_clock(false); this->enable_tx_dboard_clock(false); } ~e100_clock_ctrl_impl(void){ this->enable_test_clock(ENABLE_THE_TEST_OUT); this->enable_rx_dboard_clock(false); this->enable_tx_dboard_clock(false); } /*********************************************************************** * Clock rate control: * - set clock rate w/ internal VCO * - set clock rate w/ external VCXO **********************************************************************/ void set_clock_settings_with_internal_vco(double rate){ const clock_settings_type cs = get_clock_settings(rate); //set the rates to private variables so the implementation knows! _chan_rate = cs.get_chan_rate(); _out_rate = cs.get_out_rate(); _ad9522_regs.enable_clock_doubler = (cs.ref_clock_doubler == 2)? 1 : 0; _ad9522_regs.set_r_counter(cs.r_counter); _ad9522_regs.a_counter = cs.a_counter; _ad9522_regs.set_b_counter(cs.b_counter); UHD_ASSERT_THROW(cs.prescaler == 8); //assumes this below: _ad9522_regs.prescaler_p = ad9522_regs_t::PRESCALER_P_DIV8_9; _ad9522_regs.pll_power_down = ad9522_regs_t::PLL_POWER_DOWN_NORMAL; _ad9522_regs.cp_current = ad9522_regs_t::CP_CURRENT_1_2MA; _ad9522_regs.bypass_vco_divider = 0; switch(cs.vco_divider){ case 1: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV1; break; case 2: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV2; break; case 3: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV3; break; case 4: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV4; break; case 5: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV5; break; case 6: _ad9522_regs.vco_divider = ad9522_regs_t::VCO_DIVIDER_DIV6; break; } _ad9522_regs.select_vco_or_clock = ad9522_regs_t::SELECT_VCO_OR_CLOCK_VCO; //setup fpga master clock _ad9522_regs.out0_format = ad9522_regs_t::OUT0_FORMAT_LVDS; set_clock_divider(cs.chan_divider, _ad9522_regs.divider0_low_cycles, _ad9522_regs.divider0_high_cycles, _ad9522_regs.divider0_bypass ); //setup codec clock _ad9522_regs.out3_format = ad9522_regs_t::OUT3_FORMAT_LVDS; set_clock_divider(cs.chan_divider, _ad9522_regs.divider1_low_cycles, _ad9522_regs.divider1_high_cycles, _ad9522_regs.divider1_bypass ); this->send_all_regs(); calibrate_now(); } void set_clock_settings_with_external_vcxo(double rate){ //set the rates to private variables so the implementation knows! _chan_rate = rate; _out_rate = rate; _ad9522_regs.enable_clock_doubler = 1; //doubler always on const double ref_rate = REFERENCE_INPUT_RATE*2; //bypass prescaler such that N = B long gcd = boost::math::gcd(long(ref_rate), long(rate)); _ad9522_regs.set_r_counter(int(ref_rate/gcd)); _ad9522_regs.a_counter = 0; _ad9522_regs.set_b_counter(int(rate/gcd)); _ad9522_regs.prescaler_p = ad9522_regs_t::PRESCALER_P_DIV1; //setup external vcxo _ad9522_regs.pll_power_down = ad9522_regs_t::PLL_POWER_DOWN_NORMAL; _ad9522_regs.cp_current = ad9522_regs_t::CP_CURRENT_1_2MA; _ad9522_regs.bypass_vco_divider = 1; _ad9522_regs.select_vco_or_clock = ad9522_regs_t::SELECT_VCO_OR_CLOCK_EXTERNAL; //setup fpga master clock _ad9522_regs.out0_format = ad9522_regs_t::OUT0_FORMAT_LVDS; _ad9522_regs.divider0_bypass = 1; //setup codec clock _ad9522_regs.out3_format = ad9522_regs_t::OUT3_FORMAT_LVDS; _ad9522_regs.divider1_bypass = 1; this->send_all_regs(); } void set_fpga_clock_rate(double rate){ if (_out_rate == rate) return; if (rate == 61.44e6) set_clock_settings_with_external_vcxo(rate); else set_clock_settings_with_internal_vco(rate); set_rx_dboard_clock_rate(rate); set_tx_dboard_clock_rate(rate); } double get_fpga_clock_rate(void){ return this->_out_rate; } /*********************************************************************** * Special test clock output **********************************************************************/ void enable_test_clock(bool enb){ //setup test clock (same divider as codec clock) _ad9522_regs.out4_format = ad9522_regs_t::OUT4_FORMAT_CMOS; _ad9522_regs.out4_cmos_configuration = (enb)? ad9522_regs_t::OUT4_CMOS_CONFIGURATION_A_ON : ad9522_regs_t::OUT4_CMOS_CONFIGURATION_OFF; this->send_reg(0x0F4); this->latch_regs(); } /*********************************************************************** * RX Dboard Clock Control (output 9, divider 3) **********************************************************************/ void enable_rx_dboard_clock(bool enb){ if (_dboard_clocks_diff){ _ad9522_regs.out9_format = ad9522_regs_t::OUT9_FORMAT_LVDS; _ad9522_regs.out9_lvds_power_down = enb? 0 : 1; } else{ _ad9522_regs.out9_format = ad9522_regs_t::OUT9_FORMAT_CMOS; _ad9522_regs.out9_cmos_configuration = (enb)? ad9522_regs_t::OUT9_CMOS_CONFIGURATION_B_ON : ad9522_regs_t::OUT9_CMOS_CONFIGURATION_OFF; } this->send_reg(0x0F9); this->latch_regs(); } std::vector get_rx_dboard_clock_rates(void){ std::vector rates; for(size_t div = 1; div <= 16+16; div++) rates.push_back(this->_chan_rate/div); return rates; } void set_rx_dboard_clock_rate(double rate){ assert_has(get_rx_dboard_clock_rates(), rate, "rx dboard clock rate"); _rx_clock_rate = rate; size_t divider = size_t(this->_chan_rate/rate); //set the divider registers set_clock_divider(divider, _ad9522_regs.divider3_low_cycles, _ad9522_regs.divider3_high_cycles, _ad9522_regs.divider3_bypass ); this->send_reg(0x199); this->send_reg(0x19a); this->soft_sync(); } double get_rx_clock_rate(void){ return _rx_clock_rate; } /*********************************************************************** * TX Dboard Clock Control (output 6, divider 2) **********************************************************************/ void enable_tx_dboard_clock(bool enb){ if (_dboard_clocks_diff){ _ad9522_regs.out6_format = ad9522_regs_t::OUT6_FORMAT_LVDS; _ad9522_regs.out6_lvds_power_down = enb? 0 : 1; } else{ _ad9522_regs.out6_format = ad9522_regs_t::OUT6_FORMAT_CMOS; _ad9522_regs.out6_cmos_configuration = (enb)? ad9522_regs_t::OUT6_CMOS_CONFIGURATION_B_ON : ad9522_regs_t::OUT6_CMOS_CONFIGURATION_OFF; } this->send_reg(0x0F6); this->latch_regs(); } std::vector get_tx_dboard_clock_rates(void){ return get_rx_dboard_clock_rates(); //same master clock, same dividers... } void set_tx_dboard_clock_rate(double rate){ assert_has(get_tx_dboard_clock_rates(), rate, "tx dboard clock rate"); _tx_clock_rate = rate; size_t divider = size_t(this->_chan_rate/rate); //set the divider registers set_clock_divider(divider, _ad9522_regs.divider2_low_cycles, _ad9522_regs.divider2_high_cycles, _ad9522_regs.divider2_bypass ); this->send_reg(0x196); this->send_reg(0x197); this->soft_sync(); } double get_tx_clock_rate(void){ return _tx_clock_rate; } /*********************************************************************** * Clock reference control **********************************************************************/ void use_internal_ref(void) { _ad9522_regs.enable_ref2 = 1; _ad9522_regs.enable_ref1 = 0; _ad9522_regs.select_ref = ad9522_regs_t::SELECT_REF_REF2; _ad9522_regs.enb_auto_ref_switchover = ad9522_regs_t::ENB_AUTO_REF_SWITCHOVER_MANUAL; this->send_reg(0x01C); this->latch_regs(); } void use_external_ref(void) { _ad9522_regs.enable_ref2 = 0; _ad9522_regs.enable_ref1 = 1; _ad9522_regs.select_ref = ad9522_regs_t::SELECT_REF_REF1; _ad9522_regs.enb_auto_ref_switchover = ad9522_regs_t::ENB_AUTO_REF_SWITCHOVER_MANUAL; this->send_reg(0x01C); this->latch_regs(); } void use_auto_ref(void) { _ad9522_regs.enable_ref2 = 1; _ad9522_regs.enable_ref1 = 1; _ad9522_regs.select_ref = ad9522_regs_t::SELECT_REF_REF1; _ad9522_regs.enb_auto_ref_switchover = ad9522_regs_t::ENB_AUTO_REF_SWITCHOVER_AUTO; this->send_reg(0x01C); this->latch_regs(); } bool get_locked(void){ static const boost::uint8_t addr = 0x01F; boost::uint32_t reg = _iface->read_spi( UE_SPI_SS_AD9522, spi_config_t::EDGE_RISE, _ad9522_regs.get_read_reg(addr), 24 ); _ad9522_regs.set_reg(addr, reg); return _ad9522_regs.digital_lock_detect != 0; } private: spi_iface::sptr _iface; const bool _dboard_clocks_diff; ad9522_regs_t _ad9522_regs; double _out_rate; //rate at the fpga and codec double _chan_rate; //rate before final dividers double _rx_clock_rate, _tx_clock_rate; void latch_regs(void){ _ad9522_regs.io_update = 1; this->send_reg(0x232); } void send_reg(boost::uint16_t addr){ boost::uint32_t reg = _ad9522_regs.get_write_reg(addr); UHD_LOGV(often) << "clock control write reg: " << std::hex << reg << std::endl; _iface->write_spi( UE_SPI_SS_AD9522, spi_config_t::EDGE_RISE, reg, 24 ); } void calibrate_now(void){ //vco calibration routine: _ad9522_regs.vco_calibration_now = 0; this->send_reg(0x18); this->latch_regs(); _ad9522_regs.vco_calibration_now = 1; this->send_reg(0x18); this->latch_regs(); //wait for calibration done: static const boost::uint8_t addr = 0x01F; for (size_t ms10 = 0; ms10 < 100; ms10++){ boost::this_thread::sleep(boost::posix_time::milliseconds(10)); boost::uint32_t reg = _iface->read_spi( UE_SPI_SS_AD9522, spi_config_t::EDGE_RISE, _ad9522_regs.get_read_reg(addr), 24 ); _ad9522_regs.set_reg(addr, reg); if (_ad9522_regs.vco_calibration_finished) goto wait_for_ld; } UHD_MSG(error) << "USRP-E100 clock control: VCO calibration timeout" << std::endl; wait_for_ld: //wait for digital lock detect: for (size_t ms10 = 0; ms10 < 100; ms10++){ boost::this_thread::sleep(boost::posix_time::milliseconds(10)); boost::uint32_t reg = _iface->read_spi( UE_SPI_SS_AD9522, spi_config_t::EDGE_RISE, _ad9522_regs.get_read_reg(addr), 24 ); _ad9522_regs.set_reg(addr, reg); if (_ad9522_regs.digital_lock_detect) return; } UHD_MSG(error) << "USRP-E100 clock control: lock detection timeout" << std::endl; } void soft_sync(void){ _ad9522_regs.soft_sync = 1; this->send_reg(0x230); this->latch_regs(); _ad9522_regs.soft_sync = 0; this->send_reg(0x230); this->latch_regs(); } void send_all_regs(void){ //setup a list of register ranges to write typedef std::pair range_t; static const std::vector ranges = boost::assign::list_of (range_t(0x000, 0x000)) (range_t(0x010, 0x01F)) (range_t(0x0F0, 0x0FD)) (range_t(0x190, 0x19B)) (range_t(0x1E0, 0x1E1)) (range_t(0x230, 0x230)) ; //write initial register values and latch/update BOOST_FOREACH(const range_t &range, ranges){ for(boost::uint16_t addr = range.first; addr <= range.second; addr++){ this->send_reg(addr); } } this->latch_regs(); } }; /*********************************************************************** * Clock Control Make **********************************************************************/ e100_clock_ctrl::sptr e100_clock_ctrl::make(spi_iface::sptr iface, double master_clock_rate, const bool dboard_clocks_diff){ return sptr(new e100_clock_ctrl_impl(iface, master_clock_rate, dboard_clocks_diff)); } uhd-3.5.5/host/lib/usrp/e100/clock_ctrl.hpp000066400000000000000000000071031224274632000203200ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP_E100_CLOCK_CTRL_HPP #define INCLUDED_USRP_E100_CLOCK_CTRL_HPP #include #include #include #include /*! * The usrp-e clock control: * - Setup system clocks. * - Disable/enable clock lines. */ class e100_clock_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Make a new clock control object. * \param iface the spi iface object * \param master clock rate the FPGA rate * param dboard_clocks_diff are they differential? * \return the clock control object */ static sptr make(uhd::spi_iface::sptr iface, double master_clock_rate, const bool dboard_clocks_diff); /*! * Set the rate of the fpga clock line. * Throws if rate is not valid. * \param rate the new rate in Hz */ virtual void set_fpga_clock_rate(double rate) = 0; /*! * Get the rate of the fpga clock line. * \return the fpga clock rate in Hz */ virtual double get_fpga_clock_rate(void) = 0; /*! * Get the possible rates of the rx dboard clock. * \return a vector of clock rates in Hz */ virtual std::vector get_rx_dboard_clock_rates(void) = 0; /*! * Get the possible rates of the tx dboard clock. * \return a vector of clock rates in Hz */ virtual std::vector get_tx_dboard_clock_rates(void) = 0; /*! * Set the rx dboard clock rate to a possible rate. * \param rate the new clock rate in Hz * \throw exception when rate cannot be achieved */ virtual void set_rx_dboard_clock_rate(double rate) = 0; /*! * Set the tx dboard clock rate to a possible rate. * \param rate the new clock rate in Hz * \throw exception when rate cannot be achieved */ virtual void set_tx_dboard_clock_rate(double rate) = 0; /*! * Get the current rx dboard clock rate. * \return the clock rate in Hz */ virtual double get_rx_clock_rate(void) = 0; /*! * Get the current tx dboard clock rate. * \return the clock rate in Hz */ virtual double get_tx_clock_rate(void) = 0; /*! * Enable/disable the rx dboard clock. * \param enb true to enable */ virtual void enable_rx_dboard_clock(bool enb) = 0; /*! * Enable/disable the tx dboard clock. * \param enb true to enable */ virtual void enable_tx_dboard_clock(bool enb) = 0; /*! * Use the internal TCXO reference */ virtual void use_internal_ref(void) = 0; /*! * Use the external SMA reference */ virtual void use_external_ref(void) = 0; /*! * Use external if available, internal otherwise */ virtual void use_auto_ref(void) = 0; //! Is the reference locked? virtual bool get_locked(void) = 0; }; #endif /* INCLUDED_USRP_E100_CLOCK_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/e100/codec_ctrl.cpp000066400000000000000000000254411224274632000203020ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "codec_ctrl.hpp" #include "ad9862_regs.hpp" #include #include #include #include #include #include #include #include "e100_regs.hpp" //spi slave constants #include using namespace uhd; const gain_range_t e100_codec_ctrl::tx_pga_gain_range(-20, 0, double(0.1)); const gain_range_t e100_codec_ctrl::rx_pga_gain_range(0, 20, 1); /*********************************************************************** * Codec Control Implementation **********************************************************************/ class e100_codec_ctrl_impl : public e100_codec_ctrl{ public: //structors e100_codec_ctrl_impl(spi_iface::sptr iface); ~e100_codec_ctrl_impl(void); //aux adc and dac control double read_aux_adc(aux_adc_t which); void write_aux_dac(aux_dac_t which, double volts); //pga gain control void set_tx_pga_gain(double); double get_tx_pga_gain(void); void set_rx_pga_gain(double, char); double get_rx_pga_gain(char); private: spi_iface::sptr _iface; ad9862_regs_t _ad9862_regs; void send_reg(boost::uint8_t addr); void recv_reg(boost::uint8_t addr); }; /*********************************************************************** * Codec Control Structors **********************************************************************/ e100_codec_ctrl_impl::e100_codec_ctrl_impl(spi_iface::sptr iface){ _iface = iface; //soft reset _ad9862_regs.soft_reset = 1; this->send_reg(0); //initialize the codec register settings _ad9862_regs.sdio_bidir = ad9862_regs_t::SDIO_BIDIR_SDIO_SDO; _ad9862_regs.lsb_first = ad9862_regs_t::LSB_FIRST_MSB; _ad9862_regs.soft_reset = 0; //setup rx side of codec _ad9862_regs.byp_buffer_a = 0; _ad9862_regs.byp_buffer_b = 0; _ad9862_regs.buffer_a_pd = 0; _ad9862_regs.buffer_b_pd = 0; _ad9862_regs.rx_pga_a = 0;//0x1f; //TODO bring under api control _ad9862_regs.rx_pga_b = 0;//0x1f; //TODO bring under api control _ad9862_regs.rx_twos_comp = 1; _ad9862_regs.rx_hilbert = ad9862_regs_t::RX_HILBERT_DIS; _ad9862_regs.shared_ref = 1; //setup tx side of codec _ad9862_regs.two_data_paths = ad9862_regs_t::TWO_DATA_PATHS_BOTH; _ad9862_regs.interleaved = ad9862_regs_t::INTERLEAVED_INTERLEAVED; _ad9862_regs.tx_retime = ad9862_regs_t::TX_RETIME_CLKOUT2; _ad9862_regs.tx_pga_gain = 199; //TODO bring under api control _ad9862_regs.tx_hilbert = ad9862_regs_t::TX_HILBERT_DIS; _ad9862_regs.interp = ad9862_regs_t::INTERP_2; _ad9862_regs.tx_twos_comp = 1; _ad9862_regs.fine_mode = ad9862_regs_t::FINE_MODE_BYPASS; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_BYPASS; _ad9862_regs.dac_a_coarse_gain = 0x3; _ad9862_regs.dac_b_coarse_gain = 0x3; _ad9862_regs.edges = ad9862_regs_t::EDGES_NORMAL; //setup the dll _ad9862_regs.input_clk_ctrl = ad9862_regs_t::INPUT_CLK_CTRL_EXTERNAL; _ad9862_regs.dll_mult = ad9862_regs_t::DLL_MULT_2; _ad9862_regs.dll_mode = ad9862_regs_t::DLL_MODE_FAST; _ad9862_regs.hs_duty_cycle = 1; _ad9862_regs.clk_duty = 1; //disable clkout1 and clkout2 _ad9862_regs.dis1 = ad9862_regs_t::DIS1_DIS; //_ad9862_regs.dis2 = ad9862_regs_t::DIS2_DIS; needed for transmit //write the register settings to the codec for (boost::uint8_t addr = 0; addr <= 25; addr++){ this->send_reg(addr); } //always start conversions for aux ADC _ad9862_regs.start_a = 1; _ad9862_regs.start_b = 1; //aux adc clock _ad9862_regs.clk_4 = ad9862_regs_t::CLK_4_1_4; this->send_reg(34); this->send_reg(35); } e100_codec_ctrl_impl::~e100_codec_ctrl_impl(void){ //set aux dacs to zero this->write_aux_dac(AUX_DAC_A, 0); this->write_aux_dac(AUX_DAC_B, 0); this->write_aux_dac(AUX_DAC_C, 0); this->write_aux_dac(AUX_DAC_D, 0); //power down _ad9862_regs.all_rx_pd = 1; this->send_reg(1); _ad9862_regs.tx_digital_pd = 1; _ad9862_regs.tx_analog_pd = ad9862_regs_t::TX_ANALOG_PD_BOTH; this->send_reg(8); } /*********************************************************************** * Codec Control Gain Control Methods **********************************************************************/ static const int mtpgw = 255; //maximum tx pga gain word void e100_codec_ctrl_impl::set_tx_pga_gain(double gain){ int gain_word = int(mtpgw*(gain - tx_pga_gain_range.start())/(tx_pga_gain_range.stop() - tx_pga_gain_range.start())); _ad9862_regs.tx_pga_gain = uhd::clip(gain_word, 0, mtpgw); this->send_reg(16); } double e100_codec_ctrl_impl::get_tx_pga_gain(void){ return (_ad9862_regs.tx_pga_gain*(tx_pga_gain_range.stop() - tx_pga_gain_range.start())/mtpgw) + tx_pga_gain_range.start(); } static const int mrpgw = 0x14; //maximum rx pga gain word void e100_codec_ctrl_impl::set_rx_pga_gain(double gain, char which){ int gain_word = int(mrpgw*(gain - rx_pga_gain_range.start())/(rx_pga_gain_range.stop() - rx_pga_gain_range.start())); gain_word = uhd::clip(gain_word, 0, mrpgw); switch(which){ case 'A': _ad9862_regs.rx_pga_a = gain_word; this->send_reg(2); return; case 'B': _ad9862_regs.rx_pga_b = gain_word; this->send_reg(3); return; default: UHD_THROW_INVALID_CODE_PATH(); } } double e100_codec_ctrl_impl::get_rx_pga_gain(char which){ int gain_word; switch(which){ case 'A': gain_word = _ad9862_regs.rx_pga_a; break; case 'B': gain_word = _ad9862_regs.rx_pga_b; break; default: UHD_THROW_INVALID_CODE_PATH(); } return (gain_word*(rx_pga_gain_range.stop() - rx_pga_gain_range.start())/mrpgw) + rx_pga_gain_range.start(); } /*********************************************************************** * Codec Control AUX ADC Methods **********************************************************************/ static double aux_adc_to_volts(boost::uint8_t high, boost::uint8_t low){ return double((boost::uint16_t(high) << 2) | low)*3.3/0x3ff; } double e100_codec_ctrl_impl::read_aux_adc(aux_adc_t which){ switch(which){ case AUX_ADC_A1: _ad9862_regs.select_a = ad9862_regs_t::SELECT_A_AUX_ADC1; this->send_reg(34); //start conversion and select mux this->recv_reg(28); //read the value (2 bytes, 2 reads) this->recv_reg(29); return aux_adc_to_volts(_ad9862_regs.aux_adc_a1_9_2, _ad9862_regs.aux_adc_a1_1_0); case AUX_ADC_A2: _ad9862_regs.select_a = ad9862_regs_t::SELECT_A_AUX_ADC2; this->send_reg(34); //start conversion and select mux this->recv_reg(26); //read the value (2 bytes, 2 reads) this->recv_reg(27); return aux_adc_to_volts(_ad9862_regs.aux_adc_a2_9_2, _ad9862_regs.aux_adc_a2_1_0); case AUX_ADC_B1: _ad9862_regs.select_b = ad9862_regs_t::SELECT_B_AUX_ADC1; this->send_reg(34); //start conversion and select mux this->recv_reg(32); //read the value (2 bytes, 2 reads) this->recv_reg(33); return aux_adc_to_volts(_ad9862_regs.aux_adc_b1_9_2, _ad9862_regs.aux_adc_b1_1_0); case AUX_ADC_B2: _ad9862_regs.select_b = ad9862_regs_t::SELECT_B_AUX_ADC2; this->send_reg(34); //start conversion and select mux this->recv_reg(30); //read the value (2 bytes, 2 reads) this->recv_reg(31); return aux_adc_to_volts(_ad9862_regs.aux_adc_b2_9_2, _ad9862_regs.aux_adc_b2_1_0); } UHD_THROW_INVALID_CODE_PATH(); } /*********************************************************************** * Codec Control AUX DAC Methods **********************************************************************/ void e100_codec_ctrl_impl::write_aux_dac(aux_dac_t which, double volts){ //special case for aux dac d (aka sigma delta word) if (which == AUX_DAC_D){ boost::uint16_t dac_word = uhd::clip(boost::math::iround(volts*0xfff/3.3), 0, 0xfff); _ad9862_regs.sig_delt_11_4 = boost::uint8_t(dac_word >> 4); _ad9862_regs.sig_delt_3_0 = boost::uint8_t(dac_word & 0xf); this->send_reg(42); this->send_reg(43); return; } //calculate the dac word for aux dac a, b, c boost::uint8_t dac_word = uhd::clip(boost::math::iround(volts*0xff/3.3), 0, 0xff); //setup a lookup table for the aux dac params (reg ref, reg addr) typedef boost::tuple dac_params_t; uhd::dict aux_dac_to_params = boost::assign::map_list_of (AUX_DAC_A, dac_params_t(&_ad9862_regs.aux_dac_a, 36)) (AUX_DAC_B, dac_params_t(&_ad9862_regs.aux_dac_b, 37)) (AUX_DAC_C, dac_params_t(&_ad9862_regs.aux_dac_c, 38)) ; //set the aux dac register UHD_ASSERT_THROW(aux_dac_to_params.has_key(which)); boost::uint8_t *reg_ref, reg_addr; boost::tie(reg_ref, reg_addr) = aux_dac_to_params[which]; *reg_ref = dac_word; this->send_reg(reg_addr); } /*********************************************************************** * Codec Control SPI Methods **********************************************************************/ void e100_codec_ctrl_impl::send_reg(boost::uint8_t addr){ boost::uint32_t reg = _ad9862_regs.get_write_reg(addr); UHD_LOGV(often) << "codec control write reg: " << std::hex << reg << std::endl; _iface->write_spi( UE_SPI_SS_AD9862, spi_config_t::EDGE_RISE, reg, 16 ); } void e100_codec_ctrl_impl::recv_reg(boost::uint8_t addr){ boost::uint32_t reg = _ad9862_regs.get_read_reg(addr); UHD_LOGV(often) << "codec control read reg: " << std::hex << reg << std::endl; boost::uint32_t ret = _iface->read_spi( UE_SPI_SS_AD9862, spi_config_t::EDGE_RISE, reg, 16 ); UHD_LOGV(often) << "codec control read ret: " << std::hex << ret << std::endl; _ad9862_regs.set_reg(addr, boost::uint16_t(ret)); } /*********************************************************************** * Codec Control Make **********************************************************************/ e100_codec_ctrl::sptr e100_codec_ctrl::make(spi_iface::sptr iface){ return sptr(new e100_codec_ctrl_impl(iface)); } uhd-3.5.5/host/lib/usrp/e100/codec_ctrl.hpp000066400000000000000000000051641224274632000203070ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP_E100_CODEC_CTRL_HPP #define INCLUDED_USRP_E100_CODEC_CTRL_HPP #include #include #include #include /*! * The usrp-e codec control: * - Init/power down codec. * - Read aux adc, write aux dac. */ class e100_codec_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static const uhd::gain_range_t tx_pga_gain_range; static const uhd::gain_range_t rx_pga_gain_range; /*! * Make a new codec control object. * \param iface the spi iface object * \return the codec control object */ static sptr make(uhd::spi_iface::sptr iface); //! aux adc identifier constants enum aux_adc_t{ AUX_ADC_A2 = 0xA2, AUX_ADC_A1 = 0xA1, AUX_ADC_B2 = 0xB2, AUX_ADC_B1 = 0xB1 }; /*! * Read an auxiliary adc: * The internals remember which aux adc was read last. * Therefore, the aux adc switch is only changed as needed. * \param which which of the 4 adcs * \return a value in volts */ virtual double read_aux_adc(aux_adc_t which) = 0; //! aux dac identifier constants enum aux_dac_t{ AUX_DAC_A = 0xA, AUX_DAC_B = 0xB, AUX_DAC_C = 0xC, AUX_DAC_D = 0xD //really the sigma delta output }; /*! * Write an auxiliary dac. * \param which which of the 4 dacs * \param volts the level in in volts */ virtual void write_aux_dac(aux_dac_t which, double volts) = 0; //! Set the TX PGA gain virtual void set_tx_pga_gain(double gain) = 0; //! Get the TX PGA gain virtual double get_tx_pga_gain(void) = 0; //! Set the RX PGA gain ('A' or 'B') virtual void set_rx_pga_gain(double gain, char which) = 0; //! Get the RX PGA gain ('A' or 'B') virtual double get_rx_pga_gain(char which) = 0; }; #endif /* INCLUDED_USRP_E100_CODEC_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/e100/dboard_iface.cpp000066400000000000000000000203421224274632000205560ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "gpio_core_200.hpp" #include #include "e100_regs.hpp" #include "clock_ctrl.hpp" #include "codec_ctrl.hpp" #include #include #include #include #include //i2c and spi constants using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; class e100_dboard_iface : public dboard_iface{ public: e100_dboard_iface( wb_iface::sptr wb_iface, i2c_iface::sptr i2c_iface, spi_iface::sptr spi_iface, e100_clock_ctrl::sptr clock, e100_codec_ctrl::sptr codec ){ _wb_iface = wb_iface; _i2c_iface = i2c_iface; _spi_iface = spi_iface; _clock = clock; _codec = codec; _gpio = gpio_core_200::make(_wb_iface, TOREG(SR_GPIO), REG_RB_GPIO); //init the clock rate shadows this->set_clock_rate(UNIT_RX, _clock->get_fpga_clock_rate()); this->set_clock_rate(UNIT_TX, _clock->get_fpga_clock_rate()); } ~e100_dboard_iface(void){ /* NOP */ } special_props_t get_special_props(void){ special_props_t props; props.soft_clock_divider = false; props.mangle_i2c_addrs = false; return props; } void write_aux_dac(unit_t, aux_dac_t, double); double read_aux_adc(unit_t, aux_adc_t); void _set_pin_ctrl(unit_t, boost::uint16_t); void _set_atr_reg(unit_t, atr_reg_t, boost::uint16_t); void _set_gpio_ddr(unit_t, boost::uint16_t); void _set_gpio_out(unit_t, boost::uint16_t); void set_gpio_debug(unit_t, int); boost::uint16_t read_gpio(unit_t); void write_i2c(boost::uint8_t, const byte_vector_t &); byte_vector_t read_i2c(boost::uint8_t, size_t); void write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); boost::uint32_t read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); void set_clock_rate(unit_t, double); std::vector get_clock_rates(unit_t); double get_clock_rate(unit_t); void set_clock_enabled(unit_t, bool); double get_codec_rate(unit_t); private: wb_iface::sptr _wb_iface; i2c_iface::sptr _i2c_iface; spi_iface::sptr _spi_iface; e100_clock_ctrl::sptr _clock; e100_codec_ctrl::sptr _codec; gpio_core_200::sptr _gpio; }; /*********************************************************************** * Make Function **********************************************************************/ dboard_iface::sptr make_e100_dboard_iface( wb_iface::sptr wb_iface, i2c_iface::sptr i2c_iface, spi_iface::sptr spi_iface, e100_clock_ctrl::sptr clock, e100_codec_ctrl::sptr codec ){ return dboard_iface::sptr(new e100_dboard_iface(wb_iface, i2c_iface, spi_iface, clock, codec)); } /*********************************************************************** * Clock Rates **********************************************************************/ void e100_dboard_iface::set_clock_rate(unit_t unit, double rate){ switch(unit){ case UNIT_RX: return _clock->set_rx_dboard_clock_rate(rate); case UNIT_TX: return _clock->set_tx_dboard_clock_rate(rate); } } std::vector e100_dboard_iface::get_clock_rates(unit_t unit){ switch(unit){ case UNIT_RX: return _clock->get_rx_dboard_clock_rates(); case UNIT_TX: return _clock->get_tx_dboard_clock_rates(); default: UHD_THROW_INVALID_CODE_PATH(); } } double e100_dboard_iface::get_clock_rate(unit_t unit){ switch(unit){ case UNIT_RX: return _clock->get_rx_clock_rate(); case UNIT_TX: return _clock->get_tx_clock_rate(); } UHD_THROW_INVALID_CODE_PATH(); } void e100_dboard_iface::set_clock_enabled(unit_t unit, bool enb){ switch(unit){ case UNIT_RX: return _clock->enable_rx_dboard_clock(enb); case UNIT_TX: return _clock->enable_tx_dboard_clock(enb); } } double e100_dboard_iface::get_codec_rate(unit_t){ return _clock->get_fpga_clock_rate(); } /*********************************************************************** * GPIO **********************************************************************/ void e100_dboard_iface::_set_pin_ctrl(unit_t unit, boost::uint16_t value){ return _gpio->set_pin_ctrl(unit, value); } void e100_dboard_iface::_set_gpio_ddr(unit_t unit, boost::uint16_t value){ return _gpio->set_gpio_ddr(unit, value); } void e100_dboard_iface::_set_gpio_out(unit_t unit, boost::uint16_t value){ return _gpio->set_gpio_out(unit, value); } boost::uint16_t e100_dboard_iface::read_gpio(unit_t unit){ return _gpio->read_gpio(unit); } void e100_dboard_iface::_set_atr_reg(unit_t unit, atr_reg_t atr, boost::uint16_t value){ return _gpio->set_atr_reg(unit, atr, value); } void e100_dboard_iface::set_gpio_debug(unit_t, int){ throw uhd::not_implemented_error("no set_gpio_debug implemented"); } /*********************************************************************** * SPI **********************************************************************/ /*! * Static function to convert a unit type to a spi slave device number. * \param unit the dboard interface unit type enum * \return the slave device number */ static boost::uint32_t unit_to_otw_spi_dev(dboard_iface::unit_t unit){ switch(unit){ case dboard_iface::UNIT_TX: return UE_SPI_SS_TX_DB; case dboard_iface::UNIT_RX: return UE_SPI_SS_RX_DB; } UHD_THROW_INVALID_CODE_PATH(); } void e100_dboard_iface::write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ _spi_iface->write_spi(unit_to_otw_spi_dev(unit), config, data, num_bits); } boost::uint32_t e100_dboard_iface::read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ return _spi_iface->read_spi(unit_to_otw_spi_dev(unit), config, data, num_bits); } /*********************************************************************** * I2C **********************************************************************/ void e100_dboard_iface::write_i2c(boost::uint8_t addr, const byte_vector_t &bytes){ return _i2c_iface->write_i2c(addr, bytes); } byte_vector_t e100_dboard_iface::read_i2c(boost::uint8_t addr, size_t num_bytes){ return _i2c_iface->read_i2c(addr, num_bytes); } /*********************************************************************** * Aux DAX/ADC **********************************************************************/ void e100_dboard_iface::write_aux_dac(dboard_iface::unit_t, aux_dac_t which, double value){ //same aux dacs for each unit static const uhd::dict which_to_aux_dac = map_list_of (AUX_DAC_A, e100_codec_ctrl::AUX_DAC_A) (AUX_DAC_B, e100_codec_ctrl::AUX_DAC_B) (AUX_DAC_C, e100_codec_ctrl::AUX_DAC_C) (AUX_DAC_D, e100_codec_ctrl::AUX_DAC_D) ; _codec->write_aux_dac(which_to_aux_dac[which], value); } double e100_dboard_iface::read_aux_adc(dboard_iface::unit_t unit, aux_adc_t which){ static const uhd::dict< unit_t, uhd::dict > unit_to_which_to_aux_adc = map_list_of (UNIT_RX, map_list_of (AUX_ADC_A, e100_codec_ctrl::AUX_ADC_A1) (AUX_ADC_B, e100_codec_ctrl::AUX_ADC_B1) ) (UNIT_TX, map_list_of (AUX_ADC_A, e100_codec_ctrl::AUX_ADC_A2) (AUX_ADC_B, e100_codec_ctrl::AUX_ADC_B2) ) ; return _codec->read_aux_adc(unit_to_which_to_aux_adc[unit][which]); } uhd-3.5.5/host/lib/usrp/e100/e100_ctrl.cpp000066400000000000000000000326261224274632000176750ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "e100_ctrl.hpp" #include "e100_regs.hpp" #include #include #include #include //ioctl #include //open, close #include //ioctl structures and constants #include //poll #include //sleep #include #include #include #include #include using namespace uhd; using namespace uhd::transport; /*********************************************************************** * Sysfs GPIO wrapper class **********************************************************************/ class gpio{ public: gpio(const int num, const std::string &dir) : _num(num){ this->set_xport("export"); this->set_dir(dir); _value_file.open(str(boost::format("/sys/class/gpio/gpio%d/value") % num).c_str(), std::ios_base::in | std::ios_base::out); } ~gpio(void){ _value_file.close(); this->set_dir("in"); this->set_xport("unexport"); } void operator()(const int val){ _value_file << val << std::endl << std::flush; } int operator()(void){ std::string val; std::getline(_value_file, val); _value_file.seekg(0); return int(val.at(0) - '0') & 0x1; } private: void set_xport(const std::string &xport){ std::ofstream export_file(("/sys/class/gpio/" + xport).c_str()); export_file << _num << std::endl << std::flush; export_file.close(); } void set_dir(const std::string &dir){ std::ofstream dir_file(str(boost::format("/sys/class/gpio/gpio%d/direction") % _num).c_str()); dir_file << dir << std::endl << std::flush; dir_file.close(); } const int _num; std::fstream _value_file; }; /*********************************************************************** * Protection for dual GPIO access - sometimes MISO, sometimes have resp **********************************************************************/ static boost::mutex gpio_irq_resp_mutex; /*********************************************************************** * Aux spi implementation **********************************************************************/ class aux_spi_iface_impl : public spi_iface{ public: aux_spi_iface_impl(void): spi_sclk_gpio(65, "out"), spi_sen_gpio(186, "out"), spi_mosi_gpio(145, "out"), spi_miso_gpio(147, "in") { this->spi_sen_gpio(1); //not selected this->spi_sclk_gpio(0); //into reset this->spi_sclk_gpio(1); //out of reset } boost::uint32_t transact_spi( int, const spi_config_t &, //not used params boost::uint32_t bits, size_t num_bits, bool readback ){ boost::mutex::scoped_lock lock(gpio_irq_resp_mutex); boost::uint32_t rb_bits = 0; this->spi_sen_gpio(0); for (size_t i = 0; i < num_bits; i++){ this->spi_sclk_gpio(0); this->spi_mosi_gpio((bits >> (num_bits-i-1)) & 0x1); boost::this_thread::sleep(boost::posix_time::microseconds(10)); if (readback) rb_bits = (rb_bits << 1) | this->spi_miso_gpio(); this->spi_sclk_gpio(1); boost::this_thread::sleep(boost::posix_time::microseconds(10)); } this->spi_sen_gpio(1); boost::this_thread::sleep(boost::posix_time::microseconds(100)); return rb_bits; } private: gpio spi_sclk_gpio, spi_sen_gpio, spi_mosi_gpio, spi_miso_gpio; }; uhd::spi_iface::sptr e100_ctrl::make_aux_spi_iface(void){ return uhd::spi_iface::sptr(new aux_spi_iface_impl()); } /*********************************************************************** * I2C device node implementation wrapper **********************************************************************/ #include #include class i2c_dev_iface : public i2c_iface{ public: i2c_dev_iface(const std::string &node){ if ((_node_fd = ::open(node.c_str(), O_RDWR)) < 0){ throw uhd::io_error("Failed to open " + node); } } ~i2c_dev_iface(void){ ::close(_node_fd); } void write_i2c(boost::uint8_t addr, const byte_vector_t &bytes){ byte_vector_t rw_bytes(bytes); //setup the message i2c_msg msg; msg.addr = addr; msg.flags = 0; msg.len = bytes.size(); msg.buf = &rw_bytes.front(); //setup the data i2c_rdwr_ioctl_data data; data.msgs = &msg; data.nmsgs = 1; //call the ioctl UHD_ASSERT_THROW(::ioctl(_node_fd, I2C_RDWR, &data) >= 0); } byte_vector_t read_i2c(boost::uint8_t addr, size_t num_bytes){ byte_vector_t bytes(num_bytes); //setup the message i2c_msg msg; msg.addr = addr; msg.flags = I2C_M_RD; msg.len = bytes.size(); msg.buf = &bytes.front(); //setup the data i2c_rdwr_ioctl_data data; data.msgs = &msg; data.nmsgs = 1; //call the ioctl UHD_ASSERT_THROW(::ioctl(_node_fd, I2C_RDWR, &data) >= 0); return bytes; } private: int _node_fd; }; uhd::i2c_iface::sptr e100_ctrl::make_dev_i2c_iface(const std::string &node){ return uhd::i2c_iface::sptr(new i2c_dev_iface(node)); } /*********************************************************************** * UART control implementation **********************************************************************/ #include #include class uart_dev_iface : public uart_iface{ public: uart_dev_iface(const std::string &node){ if ((_node_fd = ::open(node.c_str(), O_RDWR | O_NONBLOCK)) < 0){ throw uhd::io_error("Failed to open " + node); } //init the tty settings w/ termios termios tio; std::memset(&tio,0,sizeof(tio)); tio.c_iflag = IGNCR; //Ignore CR tio.c_oflag = OPOST | ONLCR; //Map NL to CR-NL on output tio.c_cflag = CS8 | CREAD | CLOCAL; // 8n1 tio.c_lflag = 0; cfsetospeed(&tio, B115200); // 115200 baud cfsetispeed(&tio, B115200); // 115200 baud tcsetattr(_node_fd, TCSANOW, &tio); } void write_uart(const std::string &buf){ const ssize_t ret = ::write(_node_fd, buf.c_str(), buf.size()); if (size_t(ret) != buf.size()) UHD_LOG << ret; } std::string read_uart(double timeout){ const boost::system_time exit_time = boost::get_system_time() + boost::posix_time::milliseconds(long(timeout*1000)); std::string line; while(true){ char ch; const ssize_t ret = ::read(_node_fd, &ch, 1); //got a character -> process it if (ret == 1){ const bool flush = ch == '\n' or ch == '\r'; if (flush and line.empty()) continue; //avoid flushing on empty lines line += std::string(1, ch); if (flush) break; } //didnt get a character, check the timeout else if (boost::get_system_time() > exit_time){ break; } //otherwise sleep for a bit else{ boost::this_thread::sleep(boost::posix_time::milliseconds(10)); } } return line; } private: int _node_fd; }; uhd::uart_iface::sptr e100_ctrl::make_gps_uart_iface(const std::string &node){ return uhd::uart_iface::sptr(new uart_dev_iface(node)); } /*********************************************************************** * Simple managed buffers **********************************************************************/ struct e100_simpl_mrb : managed_recv_buffer { usrp_e_ctl32 data; e100_ctrl *ctrl; void release(void) { //NOP } sptr get_new(void) { const size_t max_words32 = 8; //.LAST_ADDR(10'h00f)) resp_fifo_to_gpmc //load the data struct data.offset = 0; data.count = max_words32; //call the ioctl ctrl->ioctl(USRP_E_READ_CTL32, &data); if (data.buf[0] == 0 or ~data.buf[0] == 0) return sptr(); //bad VRT hdr, treat like timeout return make(this, data.buf, sizeof(data.buf)); } }; struct e100_simpl_msb : managed_send_buffer { usrp_e_ctl32 data; e100_ctrl *ctrl; void release(void) { const size_t max_words32 = 8; //.LAST_ADDR(10'h00f)) resp_fifo_to_gpmc //load the data struct data.offset = 0; data.count = max_words32; //call the ioctl ctrl->ioctl(USRP_E_WRITE_CTL32, &data); } sptr get_new(void) { return make(this, data.buf, sizeof(data.buf)); } }; /*********************************************************************** * USRP-E100 control implementation **********************************************************************/ class e100_ctrl_impl : public e100_ctrl{ public: int get_file_descriptor(void){ return _node_fd; } /******************************************************************* * Structors ******************************************************************/ e100_ctrl_impl(const std::string &node){ UHD_MSG(status) << "Opening device node " << node << "..." << std::endl; //open the device node and check file descriptor if ((_node_fd = ::open(node.c_str(), O_RDWR)) < 0){ throw uhd::io_error("Failed to open " + node); } //check the module compatibility number int module_compat_num = ::ioctl(_node_fd, USRP_E_GET_COMPAT_NUMBER, NULL); if (module_compat_num != USRP_E_COMPAT_NUMBER){ throw uhd::runtime_error(str(boost::format( "Expected module compatibility number 0x%x, but got 0x%x:\n" "The module build is not compatible with the host code build." ) % USRP_E_COMPAT_NUMBER % module_compat_num)); } std::ofstream edge_file("/sys/class/gpio/gpio147/edge"); edge_file << "rising" << std::endl << std::flush; edge_file.close(); _irq_fd = ::open("/sys/class/gpio/gpio147/value", O_RDONLY); if (_irq_fd < 0) UHD_MSG(error) << "Unable to open GPIO for IRQ\n"; } ~e100_ctrl_impl(void){ ::close(_irq_fd); ::close(_node_fd); } /******************************************************************* * IOCTL: provides the communication base for all other calls ******************************************************************/ void ioctl(int request, void *mem){ boost::mutex::scoped_lock lock(_ioctl_mutex); if (::ioctl(_node_fd, request, mem) < 0){ throw uhd::os_error(str( boost::format("ioctl failed with request %d") % request )); } } /******************************************************************* * The managed buffer interface ******************************************************************/ UHD_INLINE bool resp_read(void) { //thread stuff ensures that this GPIO isnt shared boost::mutex::scoped_lock lock(gpio_irq_resp_mutex); //perform a read of the GPIO IRQ state char ch; ::read(_irq_fd, &ch, sizeof(ch)); ::lseek(_irq_fd, SEEK_SET, 0); return ch == '1'; } UHD_INLINE bool resp_wait(const double timeout) { //perform a check, if it fails, poll if (this->resp_read()) return true; //poll IRQ GPIO for some action pollfd pfd; pfd.fd = _irq_fd; pfd.events = POLLPRI | POLLERR; ::poll(&pfd, 1, long(timeout*1000)/*ms*/); //perform a GPIO read again for result return this->resp_read(); } managed_recv_buffer::sptr get_recv_buff(double timeout) { if (not this->resp_wait(timeout)) { return managed_recv_buffer::sptr(); } _mrb.ctrl = this; return _mrb.get_new(); } managed_send_buffer::sptr get_send_buff(double) { _msb.ctrl = this; return _msb.get_new(); } size_t get_num_recv_frames(void) const{ return 1; } size_t get_recv_frame_size(void) const{ return sizeof(_mrb.data.buf); } size_t get_num_send_frames(void) const{ return 1; } size_t get_send_frame_size(void) const{ return sizeof(_msb.data.buf); } private: int _node_fd; int _irq_fd; boost::mutex _ioctl_mutex; e100_simpl_mrb _mrb; e100_simpl_msb _msb; }; /*********************************************************************** * Public Make Function **********************************************************************/ e100_ctrl::sptr e100_ctrl::make(const std::string &node){ return sptr(new e100_ctrl_impl(node)); } uhd-3.5.5/host/lib/usrp/e100/e100_ctrl.hpp000066400000000000000000000030271224274632000176730ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_B100_CTRL_HPP #define INCLUDED_B100_CTRL_HPP #include #include #include class e100_ctrl : public uhd::transport::zero_copy_if{ public: typedef boost::shared_ptr sptr; //! Make a new controller for E100 static sptr make(const std::string &node); //! Make an i2c iface for the i2c device node static uhd::i2c_iface::sptr make_dev_i2c_iface(const std::string &node); //! Make a spi iface for the spi gpio static uhd::spi_iface::sptr make_aux_spi_iface(void); //! Make a uart iface for the uart device node static uhd::uart_iface::sptr make_gps_uart_iface(const std::string &node); virtual void ioctl(int request, void *mem) = 0; virtual int get_file_descriptor(void) = 0; }; #endif /* INCLUDED_B100_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/e100/e100_impl.cpp000066400000000000000000000631011224274632000176620ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "apply_corrections.hpp" #include "e100_impl.hpp" #include "e100_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; namespace fs = boost::filesystem; //////////////////////////////////////////////////////////////////////// // I2C addresses //////////////////////////////////////////////////////////////////////// #define I2C_DEV_EEPROM 0x50 // 24LC02[45]: 7-bits 1010xxx #define I2C_ADDR_MBOARD (I2C_DEV_EEPROM | 0x0) #define I2C_ADDR_TX_DB (I2C_DEV_EEPROM | 0x4) #define I2C_ADDR_RX_DB (I2C_DEV_EEPROM | 0x5) /*********************************************************************** * Discovery **********************************************************************/ static device_addrs_t e100_find(const device_addr_t &hint){ device_addrs_t e100_addrs; //return an empty list of addresses when type is set to non-usrp-e if (hint.has_key("type") and hint["type"] != "e100") return e100_addrs; //device node not provided, assume its 0 if (not hint.has_key("node")){ device_addr_t new_addr = hint; new_addr["node"] = "/dev/usrp_e0"; return e100_find(new_addr); } //use the given device node name if (fs::exists(hint["node"])){ device_addr_t new_addr; new_addr["type"] = "e100"; new_addr["node"] = fs::system_complete(fs::path(hint["node"])).string(); try{ i2c_iface::sptr i2c_iface = e100_ctrl::make_dev_i2c_iface(E100_I2C_DEV_NODE); const mboard_eeprom_t mb_eeprom(*i2c_iface, E100_EEPROM_MAP_KEY); new_addr["name"] = mb_eeprom["name"]; new_addr["serial"] = mb_eeprom["serial"]; } catch(const std::exception &e){ new_addr["name"] = ""; new_addr["serial"] = ""; } if ( (not hint.has_key("name") or hint["name"] == new_addr["name"]) and (not hint.has_key("serial") or hint["serial"] == new_addr["serial"]) ){ e100_addrs.push_back(new_addr); } } return e100_addrs; } /*********************************************************************** * Make **********************************************************************/ static device::sptr e100_make(const device_addr_t &device_addr){ return device::sptr(new e100_impl(device_addr)); } UHD_STATIC_BLOCK(register_e100_device){ device::register_device(&e100_find, &e100_make); } static const uhd::dict model_to_fpga_file_name = boost::assign::map_list_of ("E100", "usrp_e100_fpga_v2.bin") ("E110", "usrp_e110_fpga.bin") ; /*********************************************************************** * Structors **********************************************************************/ e100_impl::e100_impl(const uhd::device_addr_t &device_addr){ _tree = property_tree::make(); //read the eeprom so we can determine the hardware _dev_i2c_iface = e100_ctrl::make_dev_i2c_iface(E100_I2C_DEV_NODE); const mboard_eeprom_t mb_eeprom(*_dev_i2c_iface, E100_EEPROM_MAP_KEY); //determine the model string for this device const std::string model = device_addr.get("model", mb_eeprom.get("model", "")); if (not model_to_fpga_file_name.has_key(model)) throw uhd::runtime_error(str(boost::format( "\n" " The specified model string \"%s\" is not recognized.\n" " Perhaps the EEPROM is uninitialized, missing, or damaged.\n" " Or, a monitor is pirating the I2C address of the EEPROM.\n" ) % model)); //extract the fpga path and compute hash const std::string default_fpga_file_name = model_to_fpga_file_name[model]; std::string e100_fpga_image; try{ e100_fpga_image = find_image_path(device_addr.get("fpga", default_fpga_file_name)); } catch(...){ UHD_MSG(error) << boost::format("Could not find FPGA image. %s\n") % print_images_error(); throw; } e100_load_fpga(e100_fpga_image); //////////////////////////////////////////////////////////////////// // Setup the FPGA clock over AUX SPI //////////////////////////////////////////////////////////////////// bool dboard_clocks_diff = true; if (mb_eeprom.get("revision", "0") == "3") dboard_clocks_diff = false; else if (mb_eeprom.get("revision", "0") == "4") dboard_clocks_diff = true; else UHD_MSG(warning) << "Unknown E1XX revision number!\n" << "defaulting to differential dboard clocks to be safe.\n" << std::endl; const double master_clock_rate = device_addr.cast("master_clock_rate", E100_DEFAULT_CLOCK_RATE); _aux_spi_iface = e100_ctrl::make_aux_spi_iface(); _clock_ctrl = e100_clock_ctrl::make(_aux_spi_iface, master_clock_rate, dboard_clocks_diff); //////////////////////////////////////////////////////////////////// // setup the main interface into fpga // - do this after aux spi, because we share gpio147 //////////////////////////////////////////////////////////////////// const std::string node = device_addr["node"]; _fpga_ctrl = e100_ctrl::make(node); //////////////////////////////////////////////////////////////////// // Initialize FPGA control communication //////////////////////////////////////////////////////////////////// fifo_ctrl_excelsior_config fifo_ctrl_config; fifo_ctrl_config.async_sid_base = E100_TX_ASYNC_SID; fifo_ctrl_config.num_async_chan = 1; fifo_ctrl_config.ctrl_sid_base = E100_CTRL_MSG_SID; fifo_ctrl_config.spi_base = TOREG(SR_SPI); fifo_ctrl_config.spi_rb = REG_RB_SPI; _fifo_ctrl = fifo_ctrl_excelsior::make(_fpga_ctrl, fifo_ctrl_config); //Perform wishbone readback tests, these tests also write the hash bool test_fail = false; UHD_MSG(status) << "Performing control readback test... " << std::flush; size_t hash = time(NULL); for (size_t i = 0; i < 100; i++){ boost::hash_combine(hash, i); _fifo_ctrl->poke32(TOREG(SR_MISC+0), boost::uint32_t(hash)); test_fail = _fifo_ctrl->peek32(REG_RB_CONFIG0) != boost::uint32_t(hash); if (test_fail) break; //exit loop on any failure } UHD_MSG(status) << ((test_fail)? " fail" : "pass") << std::endl; if (test_fail) UHD_MSG(error) << boost::format( "The FPGA is either clocked improperly\n" "or the FPGA build is not compatible.\n" "Subsequent errors may follow...\n" ); //check that the compatibility is correct this->check_fpga_compat(); //////////////////////////////////////////////////////////////////// // Create controller objects //////////////////////////////////////////////////////////////////// _fpga_i2c_ctrl = i2c_core_200::make(_fifo_ctrl, TOREG(SR_I2C), REG_RB_I2C); _data_transport = e100_make_mmap_zero_copy(_fpga_ctrl); //////////////////////////////////////////////////////////////////// // Initialize the properties tree //////////////////////////////////////////////////////////////////// _tree->create("/name").set("E-Series Device"); const fs_path mb_path = "/mboards/0"; _tree->create(mb_path / "name").set(model); _tree->create(mb_path / "codename").set("Euwanee"); //////////////////////////////////////////////////////////////////// // setup the mboard eeprom //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "eeprom") .set(mb_eeprom) .subscribe(boost::bind(&e100_impl::set_mb_eeprom, this, _1)); //////////////////////////////////////////////////////////////////// // create clock control objects //////////////////////////////////////////////////////////////////// //^^^ clock created up top, just reg props here... ^^^ _tree->create(mb_path / "tick_rate") .publish(boost::bind(&e100_clock_ctrl::get_fpga_clock_rate, _clock_ctrl)) .subscribe(boost::bind(&fifo_ctrl_excelsior::set_tick_rate, _fifo_ctrl, _1)) .subscribe(boost::bind(&e100_impl::update_tick_rate, this, _1)); //subscribe the command time while we are at it _tree->create(mb_path / "time/cmd") .subscribe(boost::bind(&fifo_ctrl_excelsior::set_time, _fifo_ctrl, _1)); //////////////////////////////////////////////////////////////////// // create codec control objects //////////////////////////////////////////////////////////////////// _codec_ctrl = e100_codec_ctrl::make(_fifo_ctrl/*spi*/); const fs_path rx_codec_path = mb_path / "rx_codecs/A"; const fs_path tx_codec_path = mb_path / "tx_codecs/A"; _tree->create(rx_codec_path / "name").set("ad9522"); _tree->create(rx_codec_path / "gains/pga/range").set(e100_codec_ctrl::rx_pga_gain_range); _tree->create(rx_codec_path / "gains/pga/value") .coerce(boost::bind(&e100_impl::update_rx_codec_gain, this, _1)); _tree->create(tx_codec_path / "name").set("ad9522"); _tree->create(tx_codec_path / "gains/pga/range").set(e100_codec_ctrl::tx_pga_gain_range); _tree->create(tx_codec_path / "gains/pga/value") .subscribe(boost::bind(&e100_codec_ctrl::set_tx_pga_gain, _codec_ctrl, _1)) .publish(boost::bind(&e100_codec_ctrl::get_tx_pga_gain, _codec_ctrl)); //////////////////////////////////////////////////////////////////// // and do the misc mboard sensors //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "sensors/ref_locked") .publish(boost::bind(&e100_impl::get_ref_locked, this)); //////////////////////////////////////////////////////////////////// // Create the GPSDO control //////////////////////////////////////////////////////////////////// static const fs::path GPSDO_VOLATILE_PATH("/media/ram/e100_internal_gpsdo.cache"); if (not fs::exists(GPSDO_VOLATILE_PATH)) { UHD_MSG(status) << "Detecting internal GPSDO.... " << std::flush; try{ _gps = gps_ctrl::make(e100_ctrl::make_gps_uart_iface(E100_UART_DEV_NODE)); } catch(std::exception &e){ UHD_MSG(error) << "An error occurred making GPSDO control: " << e.what() << std::endl; } if (_gps and _gps->gps_detected()) { UHD_MSG(status) << "found" << std::endl; BOOST_FOREACH(const std::string &name, _gps->get_sensors()) { _tree->create(mb_path / "sensors" / name) .publish(boost::bind(&gps_ctrl::get_sensor, _gps, name)); } } else { UHD_MSG(status) << "not found" << std::endl; std::ofstream(GPSDO_VOLATILE_PATH.string().c_str(), std::ofstream::binary) << "42" << std::endl; } } //////////////////////////////////////////////////////////////////// // create frontend control objects //////////////////////////////////////////////////////////////////// _rx_fe = rx_frontend_core_200::make(_fifo_ctrl, TOREG(SR_RX_FE)); _tx_fe = tx_frontend_core_200::make(_fifo_ctrl, TOREG(SR_TX_FE)); _tree->create(mb_path / "rx_subdev_spec") .subscribe(boost::bind(&e100_impl::update_rx_subdev_spec, this, _1)); _tree->create(mb_path / "tx_subdev_spec") .subscribe(boost::bind(&e100_impl::update_tx_subdev_spec, this, _1)); const fs_path rx_fe_path = mb_path / "rx_frontends" / "A"; const fs_path tx_fe_path = mb_path / "tx_frontends" / "A"; _tree->create >(rx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&rx_frontend_core_200::set_dc_offset, _rx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create(rx_fe_path / "dc_offset" / "enable") .subscribe(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, _rx_fe, _1)) .set(true); _tree->create >(rx_fe_path / "iq_balance" / "value") .subscribe(boost::bind(&rx_frontend_core_200::set_iq_balance, _rx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&tx_frontend_core_200::set_dc_offset, _tx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "iq_balance" / "value") .subscribe(boost::bind(&tx_frontend_core_200::set_iq_balance, _tx_fe, _1)) .set(std::complex(0.0, 0.0)); //////////////////////////////////////////////////////////////////// // create rx dsp control objects //////////////////////////////////////////////////////////////////// const size_t num_rx_dsps = _fifo_ctrl->peek32(REG_RB_NUM_RX_DSP); for (size_t dspno = 0; dspno < num_rx_dsps; dspno++) { const size_t sr_off = dspno*32; _rx_dsps.push_back(rx_dsp_core_200::make( _fifo_ctrl, TOREG(SR_RX_DSP0+sr_off), TOREG(SR_RX_CTRL0+sr_off), E100_RX_SID_BASE + dspno )); _rx_dsps[dspno]->set_link_rate(E100_RX_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&rx_dsp_core_200::set_tick_rate, _rx_dsps[dspno], _1)); fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno); _tree->create(rx_dsp_path / "rate/range") .publish(boost::bind(&rx_dsp_core_200::get_host_rates, _rx_dsps[dspno])); _tree->create(rx_dsp_path / "rate/value") .set(1e6) //some default .coerce(boost::bind(&rx_dsp_core_200::set_host_rate, _rx_dsps[dspno], _1)) .subscribe(boost::bind(&e100_impl::update_rx_samp_rate, this, dspno, _1)); _tree->create(rx_dsp_path / "freq/value") .coerce(boost::bind(&rx_dsp_core_200::set_freq, _rx_dsps[dspno], _1)); _tree->create(rx_dsp_path / "freq/range") .publish(boost::bind(&rx_dsp_core_200::get_freq_range, _rx_dsps[dspno])); _tree->create(rx_dsp_path / "stream_cmd") .subscribe(boost::bind(&rx_dsp_core_200::issue_stream_command, _rx_dsps[dspno], _1)); } //////////////////////////////////////////////////////////////////// // create tx dsp control objects //////////////////////////////////////////////////////////////////// _tx_dsp = tx_dsp_core_200::make( _fifo_ctrl, TOREG(SR_TX_DSP), TOREG(SR_TX_CTRL), E100_TX_ASYNC_SID ); _tx_dsp->set_link_rate(E100_TX_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&tx_dsp_core_200::set_tick_rate, _tx_dsp, _1)); _tree->create(mb_path / "tx_dsps/0/rate/range") .publish(boost::bind(&tx_dsp_core_200::get_host_rates, _tx_dsp)); _tree->create(mb_path / "tx_dsps/0/rate/value") .set(1e6) //some default .coerce(boost::bind(&tx_dsp_core_200::set_host_rate, _tx_dsp, _1)) .subscribe(boost::bind(&e100_impl::update_tx_samp_rate, this, 0, _1)); _tree->create(mb_path / "tx_dsps/0/freq/value") .coerce(boost::bind(&tx_dsp_core_200::set_freq, _tx_dsp, _1)); _tree->create(mb_path / "tx_dsps/0/freq/range") .publish(boost::bind(&tx_dsp_core_200::get_freq_range, _tx_dsp)); //////////////////////////////////////////////////////////////////// // create time control objects //////////////////////////////////////////////////////////////////// time64_core_200::readback_bases_type time64_rb_bases; time64_rb_bases.rb_hi_now = REG_RB_TIME_NOW_HI; time64_rb_bases.rb_lo_now = REG_RB_TIME_NOW_LO; time64_rb_bases.rb_hi_pps = REG_RB_TIME_PPS_HI; time64_rb_bases.rb_lo_pps = REG_RB_TIME_PPS_LO; _time64 = time64_core_200::make( _fifo_ctrl, TOREG(SR_TIME64), time64_rb_bases ); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&time64_core_200::set_tick_rate, _time64, _1)); _tree->create(mb_path / "time/now") .publish(boost::bind(&time64_core_200::get_time_now, _time64)) .subscribe(boost::bind(&time64_core_200::set_time_now, _time64, _1)); _tree->create(mb_path / "time/pps") .publish(boost::bind(&time64_core_200::get_time_last_pps, _time64)) .subscribe(boost::bind(&time64_core_200::set_time_next_pps, _time64, _1)); //setup time source props _tree->create(mb_path / "time_source/value") .subscribe(boost::bind(&time64_core_200::set_time_source, _time64, _1)); _tree->create >(mb_path / "time_source/options") .publish(boost::bind(&time64_core_200::get_time_sources, _time64)); //setup reference source props _tree->create(mb_path / "clock_source/value") .subscribe(boost::bind(&e100_impl::update_clock_source, this, _1)); std::vector clock_sources = boost::assign::list_of("internal")("external")("auto"); if (_gps and _gps->gps_detected()) clock_sources.push_back("gpsdo"); _tree->create >(mb_path / "clock_source/options").set(clock_sources); //////////////////////////////////////////////////////////////////// // create user-defined control objects //////////////////////////////////////////////////////////////////// _user = user_settings_core_200::make(_fifo_ctrl, TOREG(SR_USER_REGS)); _tree->create(mb_path / "user/regs") .subscribe(boost::bind(&user_settings_core_200::set_reg, _user, _1)); //////////////////////////////////////////////////////////////////// // create dboard control objects //////////////////////////////////////////////////////////////////// //read the dboard eeprom to extract the dboard ids dboard_eeprom_t rx_db_eeprom, tx_db_eeprom, gdb_eeprom; rx_db_eeprom.load(*_fpga_i2c_ctrl, I2C_ADDR_RX_DB); tx_db_eeprom.load(*_fpga_i2c_ctrl, I2C_ADDR_TX_DB); gdb_eeprom.load(*_fpga_i2c_ctrl, I2C_ADDR_TX_DB ^ 5); //disable rx dc offset if LFRX if (rx_db_eeprom.id == 0x000f) _tree->access(rx_fe_path / "dc_offset" / "enable").set(false); //create the properties and register subscribers _tree->create(mb_path / "dboards/A/rx_eeprom") .set(rx_db_eeprom) .subscribe(boost::bind(&e100_impl::set_db_eeprom, this, "rx", _1)); _tree->create(mb_path / "dboards/A/tx_eeprom") .set(tx_db_eeprom) .subscribe(boost::bind(&e100_impl::set_db_eeprom, this, "tx", _1)); _tree->create(mb_path / "dboards/A/gdb_eeprom") .set(gdb_eeprom) .subscribe(boost::bind(&e100_impl::set_db_eeprom, this, "gdb", _1)); //create a new dboard interface and manager _dboard_iface = make_e100_dboard_iface(_fifo_ctrl, _fpga_i2c_ctrl, _fifo_ctrl/*spi*/, _clock_ctrl, _codec_ctrl); _tree->create(mb_path / "dboards/A/iface").set(_dboard_iface); _dboard_manager = dboard_manager::make( rx_db_eeprom.id, tx_db_eeprom.id, gdb_eeprom.id, _dboard_iface, _tree->subtree(mb_path / "dboards/A") ); //bind frontend corrections to the dboard freq props const fs_path db_tx_fe_path = mb_path / "dboards" / "A" / "tx_frontends"; BOOST_FOREACH(const std::string &name, _tree->list(db_tx_fe_path)){ _tree->access(db_tx_fe_path / name / "freq" / "value") .subscribe(boost::bind(&e100_impl::set_tx_fe_corrections, this, _1)); } const fs_path db_rx_fe_path = mb_path / "dboards" / "A" / "rx_frontends"; BOOST_FOREACH(const std::string &name, _tree->list(db_rx_fe_path)){ _tree->access(db_rx_fe_path / name / "freq" / "value") .subscribe(boost::bind(&e100_impl::set_rx_fe_corrections, this, _1)); } //initialize io handling _recv_demuxer = recv_packet_demuxer::make(_data_transport, _rx_dsps.size(), E100_RX_SID_BASE); //allocate streamer weak ptrs containers _rx_streamers.resize(_rx_dsps.size()); _tx_streamers.resize(1/*known to be 1 dsp*/); //////////////////////////////////////////////////////////////////// // do some post-init tasks //////////////////////////////////////////////////////////////////// this->update_rates(); _tree->access(mb_path / "tick_rate") //now subscribe the clock rate setter .subscribe(boost::bind(&e100_clock_ctrl::set_fpga_clock_rate, _clock_ctrl, _1)); //reset cordic rates and their properties to zero BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){ _tree->access(mb_path / "rx_dsps" / name / "freq" / "value").set(0.0); } BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "tx_dsps")){ _tree->access(mb_path / "tx_dsps" / name / "freq" / "value").set(0.0); } _tree->access(mb_path / "rx_subdev_spec").set(subdev_spec_t("A:" + _tree->list(mb_path / "dboards/A/rx_frontends").at(0))); _tree->access(mb_path / "tx_subdev_spec").set(subdev_spec_t("A:" + _tree->list(mb_path / "dboards/A/tx_frontends").at(0))); _tree->access(mb_path / "clock_source/value").set("internal"); _tree->access(mb_path / "time_source/value").set("none"); //GPS installed: use external ref, time, and init time spec if (_gps and _gps->gps_detected()){ _time64->enable_gpsdo(); UHD_MSG(status) << "Setting references to the internal GPSDO" << std::endl; _tree->access(mb_path / "time_source/value").set("gpsdo"); _tree->access(mb_path / "clock_source/value").set("gpsdo"); UHD_MSG(status) << "Initializing time to the internal GPSDO" << std::endl; _time64->set_time_next_pps(time_spec_t(time_t(_gps->get_sensor("gps_time").to_int()+1))); } } e100_impl::~e100_impl(void){ /* NOP */ } double e100_impl::update_rx_codec_gain(const double gain){ //set gain on both I and Q, readback on one //TODO in the future, gains should have individual control _codec_ctrl->set_rx_pga_gain(gain, 'A'); _codec_ctrl->set_rx_pga_gain(gain, 'B'); return _codec_ctrl->get_rx_pga_gain('A'); } void e100_impl::set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &mb_eeprom){ mb_eeprom.commit(*_dev_i2c_iface, E100_EEPROM_MAP_KEY); } void e100_impl::set_db_eeprom(const std::string &type, const uhd::usrp::dboard_eeprom_t &db_eeprom){ if (type == "rx") db_eeprom.store(*_fpga_i2c_ctrl, I2C_ADDR_RX_DB); if (type == "tx") db_eeprom.store(*_fpga_i2c_ctrl, I2C_ADDR_TX_DB); if (type == "gdb") db_eeprom.store(*_fpga_i2c_ctrl, I2C_ADDR_TX_DB ^ 5); } void e100_impl::update_clock_source(const std::string &source){ if (source == "pps_sync"){ _clock_ctrl->use_external_ref(); _fifo_ctrl->poke32(TOREG(SR_MISC+2), 1); return; } if (source == "_pps_sync_"){ _clock_ctrl->use_external_ref(); _fifo_ctrl->poke32(TOREG(SR_MISC+2), 3); return; } _fifo_ctrl->poke32(TOREG(SR_MISC+2), 0); if (source == "auto") _clock_ctrl->use_auto_ref(); else if (source == "internal") _clock_ctrl->use_internal_ref(); else if (source == "external") _clock_ctrl->use_external_ref(); else if (source == "gpsdo") _clock_ctrl->use_external_ref(); else throw uhd::runtime_error("unhandled clock configuration reference source: " + source); } sensor_value_t e100_impl::get_ref_locked(void){ const bool lock = _clock_ctrl->get_locked(); return sensor_value_t("Ref", lock, "locked", "unlocked"); } void e100_impl::check_fpga_compat(void){ const boost::uint32_t fpga_compat_num = _fifo_ctrl->peek32(REG_RB_COMPAT); boost::uint16_t fpga_major = fpga_compat_num >> 16, fpga_minor = fpga_compat_num & 0xffff; if (fpga_major == 0){ //old version scheme fpga_major = fpga_minor; fpga_minor = 0; } if (fpga_major != E100_FPGA_COMPAT_NUM){ throw uhd::runtime_error(str(boost::format( "Expected FPGA compatibility number %d, but got %d:\n" "The FPGA build is not compatible with the host code build." ) % int(E100_FPGA_COMPAT_NUM) % fpga_major)); } if (fpga_minor < 2){ throw uhd::runtime_error(str(boost::format( "Expected FPGA compatibility minor number at least %d, but got %d:\n" "The FPGA build is not compatible with the host code build." ) % int(2) % fpga_minor)); } _tree->create("/mboards/0/fpga_version").set(str(boost::format("%u.%u") % fpga_major % fpga_minor)); } void e100_impl::set_rx_fe_corrections(const double lo_freq){ apply_rx_fe_corrections(this->get_tree()->subtree("/mboards/0"), "A", lo_freq); } void e100_impl::set_tx_fe_corrections(const double lo_freq){ apply_tx_fe_corrections(this->get_tree()->subtree("/mboards/0"), "A", lo_freq); } uhd-3.5.5/host/lib/usrp/e100/e100_impl.hpp000066400000000000000000000117161224274632000176740ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "e100_ctrl.hpp" #include "clock_ctrl.hpp" #include "codec_ctrl.hpp" #include "i2c_core_200.hpp" #include "rx_frontend_core_200.hpp" #include "tx_frontend_core_200.hpp" #include "rx_dsp_core_200.hpp" #include "tx_dsp_core_200.hpp" #include "time64_core_200.hpp" #include "fifo_ctrl_excelsior.hpp" #include "user_settings_core_200.hpp" #include "recv_packet_demuxer.hpp" #include #include #include #include #include #include #include #include #include #include #include #ifndef INCLUDED_E100_IMPL_HPP #define INCLUDED_E100_IMPL_HPP uhd::transport::zero_copy_if::sptr e100_make_mmap_zero_copy(e100_ctrl::sptr iface); // = gpmc_clock_rate/clk_div/cycles_per_transaction*bytes_per_transaction static const double E100_RX_LINK_RATE_BPS = 166e6/3/2*2; static const double E100_TX_LINK_RATE_BPS = 166e6/3/1*2; static const std::string E100_I2C_DEV_NODE = "/dev/i2c-3"; static const std::string E100_UART_DEV_NODE = "/dev/ttyO0"; static const boost::uint16_t E100_FPGA_COMPAT_NUM = 11; static const boost::uint32_t E100_RX_SID_BASE = 30; static const boost::uint32_t E100_TX_ASYNC_SID = 10; static const boost::uint32_t E100_CTRL_MSG_SID = 20; static const double E100_DEFAULT_CLOCK_RATE = 64e6; static const std::string E100_EEPROM_MAP_KEY = "E100"; //! load an fpga image from a bin file into the usrp-e fpga extern void e100_load_fpga(const std::string &bin_file); //! Make an e100 dboard interface uhd::usrp::dboard_iface::sptr make_e100_dboard_iface( wb_iface::sptr wb_iface, uhd::i2c_iface::sptr i2c_iface, uhd::spi_iface::sptr spi_iface, e100_clock_ctrl::sptr clock, e100_codec_ctrl::sptr codec ); /*! * USRP-E100 implementation guts: * The implementation details are encapsulated here. * Handles properties on the mboard, dboard, dsps... */ class e100_impl : public uhd::device{ public: //structors e100_impl(const uhd::device_addr_t &); ~e100_impl(void); //the io interface uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t &args); uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t &args); bool recv_async_msg(uhd::async_metadata_t &, double); private: uhd::property_tree::sptr _tree; //controllers fifo_ctrl_excelsior::sptr _fifo_ctrl; i2c_core_200::sptr _fpga_i2c_ctrl; rx_frontend_core_200::sptr _rx_fe; tx_frontend_core_200::sptr _tx_fe; std::vector _rx_dsps; tx_dsp_core_200::sptr _tx_dsp; time64_core_200::sptr _time64; user_settings_core_200::sptr _user; e100_clock_ctrl::sptr _clock_ctrl; e100_codec_ctrl::sptr _codec_ctrl; e100_ctrl::sptr _fpga_ctrl; uhd::i2c_iface::sptr _dev_i2c_iface; uhd::spi_iface::sptr _aux_spi_iface; uhd::gps_ctrl::sptr _gps; //transports uhd::transport::zero_copy_if::sptr _data_transport; uhd::usrp::recv_packet_demuxer::sptr _recv_demuxer; //dboard stuff uhd::usrp::dboard_manager::sptr _dboard_manager; uhd::usrp::dboard_iface::sptr _dboard_iface; //device properties interface uhd::property_tree::sptr get_tree(void) const{ return _tree; } std::vector > _rx_streamers; std::vector > _tx_streamers; double update_rx_codec_gain(const double); //sets A and B at once void set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &); void set_db_eeprom(const std::string &, const uhd::usrp::dboard_eeprom_t &); void update_tick_rate(const double rate); void update_rx_samp_rate(const size_t, const double rate); void update_tx_samp_rate(const size_t, const double rate); void update_rates(void); void update_rx_subdev_spec(const uhd::usrp::subdev_spec_t &); void update_tx_subdev_spec(const uhd::usrp::subdev_spec_t &); void update_clock_source(const std::string &); uhd::sensor_value_t get_ref_locked(void); void check_fpga_compat(void); void set_rx_fe_corrections(const double); void set_tx_fe_corrections(const double); }; #endif /* INCLUDED_E100_IMPL_HPP */ uhd-3.5.5/host/lib/usrp/e100/e100_mmap_zero_copy.cpp000066400000000000000000000231641224274632000217510ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "e100_ctrl.hpp" #include #include #include #include #include #include //mmap #include //getpagesize #include //poll #include using namespace uhd; using namespace uhd::transport; #define fp_verbose false //fast-path verbose static const size_t poll_breakout = 10; //how many poll timeouts constitute a full timeout /*********************************************************************** * Reusable managed receiver buffer: * - The buffer knows how to claim and release a frame. **********************************************************************/ class e100_mmap_zero_copy_mrb : public managed_recv_buffer{ public: e100_mmap_zero_copy_mrb(void *mem, ring_buffer_info *info): _mem(mem), _info(info) { /* NOP */ } void release(void){ if (fp_verbose) UHD_LOGV(always) << "recv buff: release" << std::endl; _info->flags = RB_KERNEL; //release the frame } UHD_INLINE bool ready(void){return _info->flags & RB_USER;} UHD_INLINE sptr get_new(void){ if (fp_verbose) UHD_LOGV(always) << " make_recv_buff: " << _info->len << std::endl; _info->flags = RB_USER_PROCESS; //claim the frame return make(this, _mem, _info->len); } private: void *_mem; ring_buffer_info *_info; }; /*********************************************************************** * Reusable managed send buffer: * - The buffer knows how to claim and release a frame. **********************************************************************/ class e100_mmap_zero_copy_msb : public managed_send_buffer{ public: e100_mmap_zero_copy_msb(void *mem, ring_buffer_info *info, size_t len, int fd): _mem(mem), _info(info), _len(len), _fd(fd) { /* NOP */ } void release(void){ if (fp_verbose) UHD_LOGV(always) << "send buff: commit " << size() << std::endl; _info->len = _len;//size(); _info->flags = RB_USER; //release the frame if (::write(_fd, NULL, 0) < 0){ //notifies the kernel UHD_LOGV(rarely) << UHD_THROW_SITE_INFO("write error") << std::endl; } } UHD_INLINE bool ready(void){return _info->flags & RB_KERNEL;} UHD_INLINE sptr get_new(void){ if (fp_verbose) UHD_LOGV(always) << " make_send_buff: " << _len << std::endl; _info->flags = RB_USER_PROCESS; //claim the frame return make(this, _mem, _len); } private: void *_mem; ring_buffer_info *_info; size_t _len; int _fd; }; /*********************************************************************** * The zero copy interface implementation **********************************************************************/ class e100_mmap_zero_copy_impl : public zero_copy_if{ public: e100_mmap_zero_copy_impl(e100_ctrl::sptr iface): _fd(iface->get_file_descriptor()), _recv_index(0), _send_index(0) { //get system sizes iface->ioctl(USRP_E_GET_RB_INFO, &_rb_size); size_t page_size = getpagesize(); _frame_size = page_size/2; //calculate the memory size _map_size = (_rb_size.num_pages_rx_flags + _rb_size.num_pages_tx_flags) * page_size + (_rb_size.num_rx_frames + _rb_size.num_tx_frames) * _frame_size; //print sizes summary UHD_LOG << "page_size: " << page_size << std::endl << "frame_size: " << _frame_size << std::endl << "num_pages_rx_flags: " << _rb_size.num_pages_rx_flags << std::endl << "num_rx_frames: " << _rb_size.num_rx_frames << std::endl << "num_pages_tx_flags: " << _rb_size.num_pages_tx_flags << std::endl << "num_tx_frames: " << _rb_size.num_tx_frames << std::endl << "map_size: " << _map_size << std::endl ; //call mmap to get the memory _mapped_mem = ::mmap( NULL, _map_size, PROT_READ | PROT_WRITE, MAP_SHARED, _fd, 0 ); UHD_ASSERT_THROW(_mapped_mem != MAP_FAILED); //calculate the memory offsets for info and buffers size_t recv_info_off = 0; size_t recv_buff_off = recv_info_off + (_rb_size.num_pages_rx_flags * page_size); size_t send_info_off = recv_buff_off + (_rb_size.num_rx_frames * _frame_size); size_t send_buff_off = send_info_off + (_rb_size.num_pages_tx_flags * page_size); //print offset summary UHD_LOG << "recv_info_off: " << recv_info_off << std::endl << "recv_buff_off: " << recv_buff_off << std::endl << "send_info_off: " << send_info_off << std::endl << "send_buff_off: " << send_buff_off << std::endl ; //pointers to sections in the mapped memory ring_buffer_info (*recv_info)[], (*send_info)[]; char *recv_buff, *send_buff; //set the internal pointers for info and buffers typedef ring_buffer_info (*rbi_pta)[]; char *rb_ptr = reinterpret_cast(_mapped_mem); recv_info = reinterpret_cast(rb_ptr + recv_info_off); recv_buff = rb_ptr + recv_buff_off; send_info = reinterpret_cast(rb_ptr + send_info_off); send_buff = rb_ptr + send_buff_off; //initialize the managed receive buffers for (size_t i = 0; i < get_num_recv_frames(); i++){ _mrb_pool.push_back(boost::make_shared( recv_buff + get_recv_frame_size()*i, (*recv_info) + i )); } //initialize the managed send buffers for (size_t i = 0; i < get_num_recv_frames(); i++){ _msb_pool.push_back(boost::make_shared( send_buff + get_send_frame_size()*i, (*send_info) + i, get_send_frame_size(), _fd )); } } ~e100_mmap_zero_copy_impl(void){ UHD_LOG << "cleanup: munmap" << std::endl; ::munmap(_mapped_mem, _map_size); } managed_recv_buffer::sptr get_recv_buff(double timeout){ if (fp_verbose) UHD_LOGV(always) << "get_recv_buff: " << _recv_index << std::endl; e100_mmap_zero_copy_mrb &mrb = *_mrb_pool[_recv_index]; //poll/wait for a ready frame if (not mrb.ready()){ for (size_t i = 0; i < poll_breakout; i++){ pollfd pfd; pfd.fd = _fd; pfd.events = POLLIN; ssize_t poll_ret = ::poll(&pfd, 1, size_t(timeout*1e3/poll_breakout)); if (fp_verbose) UHD_LOGV(always) << " POLLIN: " << poll_ret << std::endl; if (poll_ret > 0) goto found_user_frame; //good poll, continue on } return managed_recv_buffer::sptr(); //timed-out for real } found_user_frame: //increment the index for the next call if (++_recv_index == get_num_recv_frames()) _recv_index = 0; //return the managed buffer for this frame return mrb.get_new(); } size_t get_num_recv_frames(void) const{ return _rb_size.num_rx_frames; } size_t get_recv_frame_size(void) const{ return _frame_size; } managed_send_buffer::sptr get_send_buff(double timeout){ if (fp_verbose) UHD_LOGV(always) << "get_send_buff: " << _send_index << std::endl; e100_mmap_zero_copy_msb &msb = *_msb_pool[_send_index]; //poll/wait for a ready frame if (not msb.ready()){ pollfd pfd; pfd.fd = _fd; pfd.events = POLLOUT; ssize_t poll_ret = ::poll(&pfd, 1, size_t(timeout*1e3)); if (fp_verbose) UHD_LOGV(always) << " POLLOUT: " << poll_ret << std::endl; if (poll_ret <= 0) return managed_send_buffer::sptr(); } //increment the index for the next call if (++_send_index == get_num_send_frames()) _send_index = 0; //return the managed buffer for this frame return msb.get_new(); } size_t get_num_send_frames(void) const{ return _rb_size.num_tx_frames; } size_t get_send_frame_size(void) const{ return _frame_size; } private: //file descriptor for mmap int _fd; //the mapped memory itself void *_mapped_mem; //mapped memory sizes usrp_e_ring_buffer_size_t _rb_size; size_t _frame_size, _map_size; //re-usable managed buffers std::vector > _mrb_pool; std::vector > _msb_pool; //indexes into sub-sections of mapped memory size_t _recv_index, _send_index; }; /*********************************************************************** * The zero copy interface make function **********************************************************************/ zero_copy_if::sptr e100_make_mmap_zero_copy(e100_ctrl::sptr iface){ return zero_copy_if::sptr(new e100_mmap_zero_copy_impl(iface)); } uhd-3.5.5/host/lib/usrp/e100/e100_regs.hpp000066400000000000000000000040171224274632000176670ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_E100_REGS_HPP #define INCLUDED_E100_REGS_HPP #include #define TOREG(x) ((x)*4) #define localparam static const int localparam SR_MISC = 0; // 5 localparam SR_USER_REGS = 5; // 2 localparam SR_TX_CTRL = 32; // 6 localparam SR_TX_DSP = 40; // 5 localparam SR_TX_FE = 48; // 5 localparam SR_RX_CTRL0 = 96; // 9 localparam SR_RX_DSP0 = 106; // 7 localparam SR_RX_FE = 114; // 5 localparam SR_RX_CTRL1 = 128; // 9 localparam SR_RX_DSP1 = 138; // 7 localparam SR_TIME64 = 192; // 6 localparam SR_SPI = 208; // 3 localparam SR_I2C = 216; // 1 localparam SR_GPIO = 224; // 5 #define REG_RB_TIME_NOW_HI TOREG(10) #define REG_RB_TIME_NOW_LO TOREG(11) #define REG_RB_TIME_PPS_HI TOREG(14) #define REG_RB_TIME_PPS_LO TOREG(15) #define REG_RB_SPI TOREG(0) #define REG_RB_COMPAT TOREG(1) #define REG_RB_GPIO TOREG(3) #define REG_RB_I2C TOREG(2) #define REG_RB_CONFIG0 TOREG(4) #define REG_RB_CONFIG1 TOREG(5) #define REG_RB_NUM_RX_DSP TOREG(6) //spi slave constants #define UE_SPI_SS_AD9522 (1 << 3) #define UE_SPI_SS_AD9862 (1 << 2) #define UE_SPI_SS_TX_DB (1 << 1) #define UE_SPI_SS_RX_DB (1 << 0) #endif /*INCLUDED_E100_REGS_HPP*/ uhd-3.5.5/host/lib/usrp/e100/fpga_downloader.cpp000066400000000000000000000135231224274632000213320ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #ifdef UHD_DLL_EXPORTS #include #include #else //special case when this file is externally included #include #include #define UHD_MSG(type) std::cout namespace uhd{ typedef std::runtime_error os_error; typedef std::runtime_error io_error; } #endif #include #include #include #include #include #include #include #include #include /* * Configuration connections * * CCK - MCSPI1_CLK * DIN - MCSPI1_MOSI * PROG_B - GPIO_175 - output (change mux) * DONE - GPIO_173 - input (change mux) * INIT_B - GPIO_114 - input (change mux) * */ namespace usrp_e_fpga_downloader_utility{ const unsigned int PROG_B = 175; const unsigned int DONE = 173; const unsigned int INIT_B = 114; //static std::string bit_file = "safe_u1e.bin"; const int BUF_SIZE = 4096; enum gpio_direction {IN, OUT}; class gpio { public: gpio(unsigned int gpio_num, gpio_direction pin_direction); bool get_value(); void set_value(bool state); private: std::stringstream base_path; std::fstream value_file; }; class spidev { public: spidev(std::string dev_name); ~spidev(); void send(char *wbuf, char *rbuf, unsigned int nbytes); private: int fd; }; gpio::gpio(unsigned int gpio_num, gpio_direction pin_direction) { std::fstream export_file; export_file.open("/sys/class/gpio/export", std::ios::out); if (not export_file.is_open()) throw uhd::os_error( "Failed to open gpio export file." ); export_file << gpio_num << std::endl; base_path << "/sys/class/gpio/gpio" << gpio_num << std::flush; std::fstream direction_file; std::string direction_file_name; if (gpio_num != 114) { direction_file_name = base_path.str() + "/direction"; direction_file.open(direction_file_name.c_str()); if (!direction_file.is_open()) throw uhd::os_error( "Failed to open direction file." ); if (pin_direction == OUT) direction_file << "out" << std::endl; else direction_file << "in" << std::endl; } std::string value_file_name; value_file_name = base_path.str() + "/value"; value_file.open(value_file_name.c_str(), std::ios_base::in | std::ios_base::out); if (!value_file.is_open()) throw uhd::os_error( "Failed to open value file." ); } bool gpio::get_value() { std::string val; std::getline(value_file, val); value_file.seekg(0); if (val == "0") return false; else if (val == "1") return true; else throw uhd::os_error("Data read from value file|" + val + "|"); return false; } void gpio::set_value(bool state) { if (state) value_file << "1" << std::endl; else value_file << "0" << std::endl; } static void prepare_fpga_for_configuration(gpio &prog, gpio &)//init) { prog.set_value(true); prog.set_value(false); prog.set_value(true); #if 0 bool ready_to_program(false); unsigned int count(0); do { ready_to_program = init.get_value(); count++; sleep(1); } while (count < 10 && !ready_to_program); if (count == 10) { throw uhd::os_error("FPGA not ready for programming."); } #endif } spidev::spidev(std::string fname) { int ret; int mode = 0; int speed = 12000000; int bits = 8; fd = open(fname.c_str(), O_RDWR); ret = ioctl(fd, SPI_IOC_WR_MODE, &mode); ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits); } spidev::~spidev() { close(fd); } void spidev::send(char *buf, char *rbuf, unsigned int nbytes) { int ret; struct spi_ioc_transfer tr; tr.tx_buf = (unsigned long) buf; tr.rx_buf = (unsigned long) rbuf; tr.len = nbytes; tr.delay_usecs = 0; tr.speed_hz = 48000000; tr.bits_per_word = 8; ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr); } static void send_file_to_fpga(const std::string &file_name, gpio &error, gpio &done) { std::ifstream bitstream; bitstream.open(file_name.c_str(), std::ios::binary); if (!bitstream.is_open()) throw uhd::os_error( "Coult not open the file: " + file_name ); spidev spi("/dev/spidev1.0"); char buf[BUF_SIZE]; char rbuf[BUF_SIZE]; do { bitstream.read(buf, BUF_SIZE); spi.send(buf, rbuf, bitstream.gcount()); if (error.get_value()) throw uhd::os_error("INIT_B went high, error occured."); if (!done.get_value()) UHD_MSG(status) << "Configuration complete." << std::endl; } while (bitstream.gcount() == BUF_SIZE); } }//namespace usrp_e_fpga_downloader_utility void e100_load_fpga(const std::string &bin_file){ using namespace usrp_e_fpga_downloader_utility; gpio gpio_prog_b(PROG_B, OUT); gpio gpio_init_b(INIT_B, IN); gpio gpio_done (DONE, IN); UHD_MSG(status) << "Loading FPGA image: " << bin_file << "... " << std::flush; // if(std::system("/sbin/rmmod usrp_e") != 0){ // UHD_MSG(warning) << "USRP-E100 FPGA downloader: could not unload usrp_e module" << std::endl; // } prepare_fpga_for_configuration(gpio_prog_b, gpio_init_b); UHD_MSG(status) << "done = " << gpio_done.get_value() << std::endl; send_file_to_fpga(bin_file, gpio_init_b, gpio_done); // if(std::system("/sbin/modprobe usrp_e") != 0){ // UHD_MSG(warning) << "USRP-E100 FPGA downloader: could not load usrp_e module" << std::endl; // } } uhd-3.5.5/host/lib/usrp/e100/include/000077500000000000000000000000001224274632000171125ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/e100/include/linux/000077500000000000000000000000001224274632000202515ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/e100/include/linux/usrp_e.h000066400000000000000000000026771224274632000217330ustar00rootroot00000000000000 /* * Copyright (C) 2010-2012 Ettus Research, LLC * * Written by Philip Balister * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #ifndef __USRP_E_H #define __USRP_E_H #include #include struct usrp_e_ctl16 { __u32 offset; __u32 count; __u16 buf[20]; }; struct usrp_e_ctl32 { __u32 offset; __u32 count; __u32 buf[10]; }; #define USRP_E_IOC_MAGIC 'u' #define USRP_E_WRITE_CTL16 _IOW(USRP_E_IOC_MAGIC, 0x20, struct usrp_e_ctl16) #define USRP_E_READ_CTL16 _IOWR(USRP_E_IOC_MAGIC, 0x21, struct usrp_e_ctl16) #define USRP_E_WRITE_CTL32 _IOW(USRP_E_IOC_MAGIC, 0x22, struct usrp_e_ctl32) #define USRP_E_READ_CTL32 _IOWR(USRP_E_IOC_MAGIC, 0x23, struct usrp_e_ctl32) #define USRP_E_GET_RB_INFO _IOR(USRP_E_IOC_MAGIC, 0x27, struct usrp_e_ring_buffer_size_t) #define USRP_E_GET_COMPAT_NUMBER _IO(USRP_E_IOC_MAGIC, 0x28) #define USRP_E_COMPAT_NUMBER 4 /* Flag defines */ #define RB_USER (1<<0) #define RB_KERNEL (1<<1) #define RB_OVERRUN (1<<2) #define RB_DMA_ACTIVE (1<<3) #define RB_USER_PROCESS (1<<4) struct ring_buffer_info { int flags; int len; }; struct usrp_e_ring_buffer_size_t { int num_pages_rx_flags; int num_rx_frames; int num_pages_tx_flags; int num_tx_frames; }; #endif uhd-3.5.5/host/lib/usrp/e100/io_impl.cpp000066400000000000000000000220251224274632000176240ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "validate_subdev_spec.hpp" #include "async_packet_handler.hpp" #include "../../transport/super_recv_packet_handler.hpp" #include "../../transport/super_send_packet_handler.hpp" #include "e100_impl.hpp" #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; static const size_t vrt_send_header_offset_words32 = 0; void e100_impl::update_tick_rate(const double rate){ //update the tick rate on all existing streamers -> thread safe for (size_t i = 0; i < _rx_streamers.size(); i++){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_rx_streamers[i].lock()); if (my_streamer.get() == NULL) continue; my_streamer->set_tick_rate(rate); } for (size_t i = 0; i < _tx_streamers.size(); i++){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_tx_streamers[i].lock()); if (my_streamer.get() == NULL) continue; my_streamer->set_tick_rate(rate); } } void e100_impl::update_rx_samp_rate(const size_t dspno, const double rate){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_rx_streamers[dspno].lock()); if (my_streamer.get() == NULL) return; my_streamer->set_samp_rate(rate); const double adj = _rx_dsps[dspno]->get_scaling_adjustment(); my_streamer->set_scale_factor(adj); } void e100_impl::update_tx_samp_rate(const size_t dspno, const double rate){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_tx_streamers[dspno].lock()); if (my_streamer.get() == NULL) return; my_streamer->set_samp_rate(rate); const double adj = _tx_dsp->get_scaling_adjustment(); my_streamer->set_scale_factor(adj); } void e100_impl::update_rates(void){ const fs_path mb_path = "/mboards/0"; _tree->access(mb_path / "tick_rate").update(); //and now that the tick rate is set, init the host rates to something BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){ _tree->access(mb_path / "rx_dsps" / name / "rate" / "value").update(); } BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "tx_dsps")){ _tree->access(mb_path / "tx_dsps" / name / "rate" / "value").update(); } } void e100_impl::update_rx_subdev_spec(const uhd::usrp::subdev_spec_t &spec){ fs_path root = "/mboards/0/dboards"; //sanity checking validate_subdev_spec(_tree, spec, "rx"); //setup mux for this spec bool fe_swapped = false; for (size_t i = 0; i < spec.size(); i++){ const std::string conn = _tree->access(root / spec[i].db_name / "rx_frontends" / spec[i].sd_name / "connection").get(); if (i == 0 and (conn == "QI" or conn == "Q")) fe_swapped = true; _rx_dsps[i]->set_mux(conn, fe_swapped); } _rx_fe->set_mux(fe_swapped); } void e100_impl::update_tx_subdev_spec(const uhd::usrp::subdev_spec_t &spec){ fs_path root = "/mboards/0/dboards"; //sanity checking validate_subdev_spec(_tree, spec, "tx"); //set the mux for this spec const std::string conn = _tree->access(root / spec[0].db_name / "tx_frontends" / spec[0].sd_name / "connection").get(); _tx_fe->set_mux(conn); } /*********************************************************************** * Async Recv **********************************************************************/ bool e100_impl::recv_async_msg( async_metadata_t &async_metadata, double timeout ){ return _fifo_ctrl->pop_async_msg(async_metadata, timeout); } /*********************************************************************** * Receive streamer **********************************************************************/ rx_streamer::sptr e100_impl::get_rx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels = args.channels.empty()? std::vector(1, 0) : args.channels; //calculate packet size static const size_t hdr_size = 0 + vrt::max_if_hdr_words32*sizeof(boost::uint32_t) + sizeof(vrt::if_packet_info_t().tlr) //forced to have trailer - sizeof(vrt::if_packet_info_t().cid) //no class id ever used - sizeof(vrt::if_packet_info_t().tsi) //no int time ever used ; const size_t bpp = _data_transport->get_recv_frame_size() - hdr_size; const size_t bpi = convert::get_bytes_per_item(args.otw_format); const size_t spp = unsigned(args.args.cast("spp", bpp/bpi)); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); my_streamer->set_vrt_unpacker(&vrt::if_hdr_unpack_le); //set the converter uhd::convert::id_type id; id.input_format = args.otw_format + "_item32_le"; id.num_inputs = 1; id.output_format = args.cpu_format; id.num_outputs = 1; my_streamer->set_converter(id); //bind callbacks for the handler for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++){ const size_t dsp = args.channels[chan_i]; _rx_dsps[dsp]->set_nsamps_per_packet(spp); //seems to be a good place to set this _rx_dsps[dsp]->setup(args); my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( &recv_packet_demuxer::get_recv_buff, _recv_demuxer, dsp, _1 ), true /*flush*/); my_streamer->set_overflow_handler(chan_i, boost::bind( &rx_dsp_core_200::handle_overflow, _rx_dsps[dsp] )); _rx_streamers[dsp] = my_streamer; //store weak pointer } //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } /*********************************************************************** * Transmit streamer **********************************************************************/ tx_streamer::sptr e100_impl::get_tx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels = args.channels.empty()? std::vector(1, 0) : args.channels; //calculate packet size static const size_t hdr_size = 0 + vrt_send_header_offset_words32*sizeof(boost::uint32_t) + vrt::max_if_hdr_words32*sizeof(boost::uint32_t) + sizeof(vrt::if_packet_info_t().tlr) //forced to have trailer - sizeof(vrt::if_packet_info_t().sid) //no stream id ever used - sizeof(vrt::if_packet_info_t().cid) //no class id ever used - sizeof(vrt::if_packet_info_t().tsi) //no int time ever used ; static const size_t bpp = _data_transport->get_send_frame_size() - hdr_size; const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); my_streamer->set_vrt_packer(&vrt::if_hdr_pack_le, vrt_send_header_offset_words32); //set the converter uhd::convert::id_type id; id.input_format = args.cpu_format; id.num_inputs = 1; id.output_format = args.otw_format + "_item32_le"; id.num_outputs = 1; my_streamer->set_converter(id); //bind callbacks for the handler for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++){ const size_t dsp = args.channels[chan_i]; UHD_ASSERT_THROW(dsp == 0); //always 0 _tx_dsp->setup(args); my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( &zero_copy_if::get_send_buff, _data_transport, _1 )); _tx_streamers[dsp] = my_streamer; //store weak pointer } //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } uhd-3.5.5/host/lib/usrp/gps_ctrl.cpp000066400000000000000000000215221224274632000173450ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace boost::gregorian; using namespace boost::posix_time; using namespace boost::algorithm; using namespace boost::this_thread; /*! * A GPS control for Jackson Labs devices (and other NMEA compatible GPS's) */ class gps_ctrl_impl : public gps_ctrl{ public: gps_ctrl_impl(uart_iface::sptr uart){ _uart = uart; std::string reply; bool i_heard_some_nmea = false, i_heard_something_weird = false; gps_type = GPS_TYPE_NONE; //first we look for a Jackson Labs Firefly (since that's what we provide...) _flush(); //get whatever junk is in the rx buffer right now, and throw it away _send("HAAAY GUYYYYS\n"); //to elicit a response from the Firefly //wait for _send(...) to return sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); //then we loop until we either timeout, or until we get a response that indicates we're a JL device const boost::system_time comm_timeout = boost::get_system_time() + milliseconds(GPS_COMM_TIMEOUT_MS); while(boost::get_system_time() < comm_timeout) { reply = _recv(); if(reply.find("Command Error") != std::string::npos) { gps_type = GPS_TYPE_JACKSON_LABS; break; } else if(reply.substr(0, 3) == "$GP") i_heard_some_nmea = true; //but keep looking for that "Command Error" response else if(reply.length() != 0) i_heard_something_weird = true; //probably wrong baud rate sleep(milliseconds(GPS_TIMEOUT_DELAY_MS)); } if((i_heard_some_nmea) && (gps_type != GPS_TYPE_JACKSON_LABS)) gps_type = GPS_TYPE_GENERIC_NMEA; if((gps_type == GPS_TYPE_NONE) && i_heard_something_weird) { UHD_MSG(error) << "GPS invalid reply \"" << reply << "\", assuming none available" << std::endl; } switch(gps_type) { case GPS_TYPE_JACKSON_LABS: UHD_MSG(status) << "Found a Jackson Labs GPS" << std::endl; init_firefly(); break; case GPS_TYPE_GENERIC_NMEA: if(gps_type == GPS_TYPE_GENERIC_NMEA) UHD_MSG(status) << "Found a generic NMEA GPS device" << std::endl; break; case GPS_TYPE_NONE: default: break; } } ~gps_ctrl_impl(void){ /* NOP */ } //return a list of supported sensors std::vector get_sensors(void) { std::vector ret = boost::assign::list_of ("gps_gpgga") ("gps_gprmc") ("gps_time") ("gps_locked"); return ret; } uhd::sensor_value_t get_sensor(std::string key) { if(key == "gps_gpgga" or key == "gps_gprmc") { return sensor_value_t( boost::to_upper_copy(key), get_nmea(boost::to_upper_copy(key.substr(4,8))), ""); } else if(key == "gps_time") { return sensor_value_t("GPS epoch time", int(get_epoch_time()), "seconds"); } else if(key == "gps_locked") { return sensor_value_t("GPS lock status", locked(), "locked", "unlocked"); } else { throw uhd::value_error("gps ctrl get_sensor unknown key: " + key); } } private: void init_firefly(void) { //issue some setup stuff so it spits out the appropriate data //none of these should issue replies so we don't bother looking for them //we have to sleep between commands because the JL device, despite not acking, takes considerable time to process each command. sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); _send("SYST:COMM:SER:ECHO OFF\n"); sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); _send("SYST:COMM:SER:PRO OFF\n"); sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); _send("GPS:GPGGA 1\n"); sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); _send("GPS:GGAST 0\n"); sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); _send("GPS:GPRMC 1\n"); sleep(milliseconds(FIREFLY_STUPID_DELAY_MS)); } //retrieve a raw NMEA sentence std::string get_nmea(std::string msgtype) { msgtype.insert(0, "$"); std::string reply; if(not gps_detected()) { UHD_MSG(error) << "get_nmea(): unsupported GPS or no GPS detected"; return std::string(); } _flush(); //flush all input before waiting for a message const boost::system_time comm_timeout = boost::get_system_time() + milliseconds(GPS_COMM_TIMEOUT_MS); while(boost::get_system_time() < comm_timeout) { reply = _recv(); if(reply.substr(0, 6) == msgtype) return reply; boost::this_thread::sleep(milliseconds(GPS_TIMEOUT_DELAY_MS)); } throw uhd::value_error(str(boost::format("get_nmea(): no %s message found") % msgtype)); return std::string(); } //helper function to retrieve a field from an NMEA sentence std::string get_token(std::string sentence, size_t offset) { boost::tokenizer > tok(sentence); std::vector toked; tok.assign(sentence); //this can throw toked.assign(tok.begin(), tok.end()); if(toked.size() <= offset) { throw uhd::value_error(str(boost::format("Invalid response \"%s\"") % sentence)); } return toked[offset]; } ptime get_time(void) { int error_cnt = 0; ptime gps_time; while(error_cnt < 3) { try { std::string reply = get_nmea("GPRMC"); std::string datestr = get_token(reply, 9); std::string timestr = get_token(reply, 1); if(datestr.size() == 0 or timestr.size() == 0) { throw uhd::value_error(str(boost::format("Invalid response \"%s\"") % reply)); } //just trust me on this one gps_time = ptime( date( greg_year(boost::lexical_cast(datestr.substr(4, 2)) + 2000), greg_month(boost::lexical_cast(datestr.substr(2, 2))), greg_day(boost::lexical_cast(datestr.substr(0, 2))) ), hours( boost::lexical_cast(timestr.substr(0, 2))) + minutes(boost::lexical_cast(timestr.substr(2, 2))) + seconds(boost::lexical_cast(timestr.substr(4, 2))) ); return gps_time; } catch(std::exception &e) { UHD_MSG(warning) << "get_time: " << e.what(); error_cnt++; } } throw uhd::value_error("Timeout after no valid message found"); return gps_time; //keep gcc from complaining } time_t get_epoch_time(void) { return (get_time() - from_time_t(0)).total_seconds(); } bool gps_detected(void) { return (gps_type != GPS_TYPE_NONE); } bool locked(void) { int error_cnt = 0; while(error_cnt < 3) { try { std::string reply = get_nmea("GPGGA"); if(reply.size() <= 1) return false; return (get_token(reply, 6) != "0"); } catch(std::exception &e) { UHD_MSG(warning) << "locked: " << e.what(); error_cnt++; } } throw uhd::value_error("Timeout after no valid message found"); return false; } uart_iface::sptr _uart; void _flush(void){ while (not _uart->read_uart(0.0).empty()){ //NOP } } std::string _recv(void){ return _uart->read_uart(GPS_TIMEOUT_DELAY_MS/1000.); } void _send(const std::string &buf){ return _uart->write_uart(buf); } enum { GPS_TYPE_JACKSON_LABS, GPS_TYPE_GENERIC_NMEA, GPS_TYPE_NONE } gps_type; static const int GPS_COMM_TIMEOUT_MS = 1500; static const int GPS_TIMEOUT_DELAY_MS = 200; static const int FIREFLY_STUPID_DELAY_MS = 200; }; /*********************************************************************** * Public make function for the GPS control **********************************************************************/ gps_ctrl::sptr gps_ctrl::make(uart_iface::sptr uart){ return sptr(new gps_ctrl_impl(uart)); } uhd-3.5.5/host/lib/usrp/mboard_eeprom.cpp000066400000000000000000000426551224274632000203550ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; /*********************************************************************** * Constants **********************************************************************/ static const size_t SERIAL_LEN = 9; static const size_t NAME_MAX_LEN = 32 - SERIAL_LEN; /*********************************************************************** * Utility functions **********************************************************************/ //! A wrapper around std::copy that takes ranges instead of iterators. template inline void byte_copy(const RangeSrc &src, RangeDst &dst){ std::copy(boost::begin(src), boost::end(src), boost::begin(dst)); } //! create a string from a byte vector, return empty if invalid ascii static const std::string bytes_to_string(const byte_vector_t &bytes){ std::string out; BOOST_FOREACH(boost::uint8_t byte, bytes){ if (byte < 32 or byte > 127) return out; out += byte; } return out; } //! create a byte vector from a string, null terminate unless max length static const byte_vector_t string_to_bytes(const std::string &string, size_t max_length){ byte_vector_t bytes; for (size_t i = 0; i < std::min(string.size(), max_length); i++){ bytes.push_back(string[i]); } if (bytes.size() < max_length - 1) bytes.push_back('\0'); return bytes; } //! convert a string to a byte vector to write to eeprom static byte_vector_t string_to_uint16_bytes(const std::string &num_str){ const boost::uint16_t num = boost::lexical_cast(num_str); const byte_vector_t lsb_msb = boost::assign::list_of (boost::uint8_t(num >> 0))(boost::uint8_t(num >> 8)); return lsb_msb; } //! convert a byte vector read from eeprom to a string static std::string uint16_bytes_to_string(const byte_vector_t &bytes){ const boost::uint16_t num = (boost::uint16_t(bytes.at(0)) << 0) | (boost::uint16_t(bytes.at(1)) << 8); return (num == 0 or num == 0xffff)? "" : boost::lexical_cast(num); } /*********************************************************************** * Implementation of N100 load/store **********************************************************************/ static const boost::uint8_t N100_EEPROM_ADDR = 0x50; struct n100_eeprom_map{ boost::uint16_t hardware; boost::uint8_t mac_addr[6]; boost::uint32_t subnet; boost::uint32_t ip_addr; boost::uint16_t _pad0; boost::uint16_t revision; boost::uint16_t product; unsigned char _pad1; unsigned char gpsdo; unsigned char serial[SERIAL_LEN]; unsigned char name[NAME_MAX_LEN]; boost::uint32_t gateway; }; enum n200_gpsdo_type{ N200_GPSDO_NONE = 0, N200_GPSDO_INTERNAL = 1, N200_GPSDO_ONBOARD = 2 }; static void load_n100(mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ //extract the hardware number mb_eeprom["hardware"] = uint16_bytes_to_string( iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, hardware), 2) ); //extract the revision number mb_eeprom["revision"] = uint16_bytes_to_string( iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, revision), 2) ); //extract the product code mb_eeprom["product"] = uint16_bytes_to_string( iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, product), 2) ); //extract the addresses mb_eeprom["mac-addr"] = mac_addr_t::from_bytes(iface.read_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, mac_addr), 6 )).to_string(); boost::asio::ip::address_v4::bytes_type ip_addr_bytes; byte_copy(iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, ip_addr), 4), ip_addr_bytes); mb_eeprom["ip-addr"] = boost::asio::ip::address_v4(ip_addr_bytes).to_string(); byte_copy(iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, subnet), 4), ip_addr_bytes); mb_eeprom["subnet"] = boost::asio::ip::address_v4(ip_addr_bytes).to_string(); byte_copy(iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, gateway), 4), ip_addr_bytes); mb_eeprom["gateway"] = boost::asio::ip::address_v4(ip_addr_bytes).to_string(); //gpsdo capabilities boost::uint8_t gpsdo_byte = iface.read_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, gpsdo), 1).at(0); switch(n200_gpsdo_type(gpsdo_byte)){ case N200_GPSDO_INTERNAL: mb_eeprom["gpsdo"] = "internal"; break; case N200_GPSDO_ONBOARD: mb_eeprom["gpsdo"] = "onboard"; break; default: mb_eeprom["gpsdo"] = "none"; } //extract the serial mb_eeprom["serial"] = bytes_to_string(iface.read_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, serial), SERIAL_LEN )); //extract the name mb_eeprom["name"] = bytes_to_string(iface.read_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, name), NAME_MAX_LEN )); //Empty serial correction: use the mac address to determine serial. //Older usrp2 models don't have a serial burned into EEPROM. //The lower mac address bits will function as the serial number. if (mb_eeprom["serial"].empty()){ byte_vector_t mac_addr_bytes = mac_addr_t::from_string(mb_eeprom["mac-addr"]).to_bytes(); unsigned serial = mac_addr_bytes.at(5) | (unsigned(mac_addr_bytes.at(4) & 0x0f) << 8); mb_eeprom["serial"] = boost::lexical_cast(serial); } } static void store_n100(const mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ //parse the revision number if (mb_eeprom.has_key("hardware")) iface.write_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, hardware), string_to_uint16_bytes(mb_eeprom["hardware"]) ); //parse the revision number if (mb_eeprom.has_key("revision")) iface.write_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, revision), string_to_uint16_bytes(mb_eeprom["revision"]) ); //parse the product code if (mb_eeprom.has_key("product")) iface.write_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, product), string_to_uint16_bytes(mb_eeprom["product"]) ); //store the addresses if (mb_eeprom.has_key("mac-addr")) iface.write_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, mac_addr), mac_addr_t::from_string(mb_eeprom["mac-addr"]).to_bytes() ); if (mb_eeprom.has_key("ip-addr")){ byte_vector_t ip_addr_bytes(4); byte_copy(boost::asio::ip::address_v4::from_string(mb_eeprom["ip-addr"]).to_bytes(), ip_addr_bytes); iface.write_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, ip_addr), ip_addr_bytes); } if (mb_eeprom.has_key("subnet")){ byte_vector_t ip_addr_bytes(4); byte_copy(boost::asio::ip::address_v4::from_string(mb_eeprom["subnet"]).to_bytes(), ip_addr_bytes); iface.write_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, subnet), ip_addr_bytes); } if (mb_eeprom.has_key("gateway")){ byte_vector_t ip_addr_bytes(4); byte_copy(boost::asio::ip::address_v4::from_string(mb_eeprom["gateway"]).to_bytes(), ip_addr_bytes); iface.write_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, gateway), ip_addr_bytes); } //gpsdo capabilities if (mb_eeprom.has_key("gpsdo")){ boost::uint8_t gpsdo_byte = N200_GPSDO_NONE; if (mb_eeprom["gpsdo"] == "internal") gpsdo_byte = N200_GPSDO_INTERNAL; if (mb_eeprom["gpsdo"] == "onboard") gpsdo_byte = N200_GPSDO_ONBOARD; iface.write_eeprom(N100_EEPROM_ADDR, offsetof(n100_eeprom_map, gpsdo), byte_vector_t(1, gpsdo_byte)); } //store the serial if (mb_eeprom.has_key("serial")) iface.write_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, serial), string_to_bytes(mb_eeprom["serial"], SERIAL_LEN) ); //store the name if (mb_eeprom.has_key("name")) iface.write_eeprom( N100_EEPROM_ADDR, offsetof(n100_eeprom_map, name), string_to_bytes(mb_eeprom["name"], NAME_MAX_LEN) ); } /*********************************************************************** * Implementation of B000 load/store **********************************************************************/ static const boost::uint8_t B000_EEPROM_ADDR = 0x50; static const size_t B000_SERIAL_LEN = 8; //use char array so we dont need to attribute packed struct b000_eeprom_map{ unsigned char _r[221]; unsigned char mcr[4]; unsigned char name[NAME_MAX_LEN]; unsigned char serial[B000_SERIAL_LEN]; }; static void load_b000(mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ //extract the serial mb_eeprom["serial"] = bytes_to_string(iface.read_eeprom( B000_EEPROM_ADDR, offsetof(b000_eeprom_map, serial), B000_SERIAL_LEN )); //extract the name mb_eeprom["name"] = bytes_to_string(iface.read_eeprom( B000_EEPROM_ADDR, offsetof(b000_eeprom_map, name), NAME_MAX_LEN )); //extract master clock rate as a 32-bit uint in Hz boost::uint32_t master_clock_rate; const byte_vector_t rate_bytes = iface.read_eeprom( B000_EEPROM_ADDR, offsetof(b000_eeprom_map, mcr), sizeof(master_clock_rate) ); std::copy( rate_bytes.begin(), rate_bytes.end(), //input reinterpret_cast(&master_clock_rate) //output ); master_clock_rate = ntohl(master_clock_rate); if (master_clock_rate > 1e6 and master_clock_rate < 1e9){ mb_eeprom["mcr"] = boost::lexical_cast(master_clock_rate); } else mb_eeprom["mcr"] = ""; } static void store_b000(const mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ //store the serial if (mb_eeprom.has_key("serial")) iface.write_eeprom( B000_EEPROM_ADDR, offsetof(b000_eeprom_map, serial), string_to_bytes(mb_eeprom["serial"], B000_SERIAL_LEN) ); //store the name if (mb_eeprom.has_key("name")) iface.write_eeprom( B000_EEPROM_ADDR, offsetof(b000_eeprom_map, name), string_to_bytes(mb_eeprom["name"], NAME_MAX_LEN) ); //store the master clock rate as a 32-bit uint in Hz if (mb_eeprom.has_key("mcr")){ boost::uint32_t master_clock_rate = boost::uint32_t(boost::lexical_cast(mb_eeprom["mcr"])); master_clock_rate = htonl(master_clock_rate); const byte_vector_t rate_bytes( reinterpret_cast(&master_clock_rate), reinterpret_cast(&master_clock_rate) + sizeof(master_clock_rate) ); iface.write_eeprom( B000_EEPROM_ADDR, offsetof(b000_eeprom_map, mcr), rate_bytes ); } } /*********************************************************************** * Implementation of B100 load/store **********************************************************************/ static const boost::uint8_t B100_EEPROM_ADDR = 0x50; //use char array so we dont need to attribute packed struct b100_eeprom_map{ unsigned char _r[220]; unsigned char revision[2]; unsigned char product[2]; unsigned char name[NAME_MAX_LEN]; unsigned char serial[SERIAL_LEN]; }; static void load_b100(mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ //extract the revision number mb_eeprom["revision"] = uint16_bytes_to_string( iface.read_eeprom(B100_EEPROM_ADDR, offsetof(b100_eeprom_map, revision), 2) ); //extract the product code mb_eeprom["product"] = uint16_bytes_to_string( iface.read_eeprom(B100_EEPROM_ADDR, offsetof(b100_eeprom_map, product), 2) ); //extract the serial mb_eeprom["serial"] = bytes_to_string(iface.read_eeprom( B100_EEPROM_ADDR, offsetof(b100_eeprom_map, serial), SERIAL_LEN )); //extract the name mb_eeprom["name"] = bytes_to_string(iface.read_eeprom( B100_EEPROM_ADDR, offsetof(b100_eeprom_map, name), NAME_MAX_LEN )); } static void store_b100(const mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ //parse the revision number if (mb_eeprom.has_key("revision")) iface.write_eeprom( B100_EEPROM_ADDR, offsetof(b100_eeprom_map, revision), string_to_uint16_bytes(mb_eeprom["revision"]) ); //parse the product code if (mb_eeprom.has_key("product")) iface.write_eeprom( B100_EEPROM_ADDR, offsetof(b100_eeprom_map, product), string_to_uint16_bytes(mb_eeprom["product"]) ); //store the serial if (mb_eeprom.has_key("serial")) iface.write_eeprom( B100_EEPROM_ADDR, offsetof(b100_eeprom_map, serial), string_to_bytes(mb_eeprom["serial"], SERIAL_LEN) ); //store the name if (mb_eeprom.has_key("name")) iface.write_eeprom( B100_EEPROM_ADDR, offsetof(b100_eeprom_map, name), string_to_bytes(mb_eeprom["name"], NAME_MAX_LEN) ); } /*********************************************************************** * Implementation of E100 load/store **********************************************************************/ static const boost::uint8_t E100_EEPROM_ADDR = 0x51; struct e100_eeprom_map{ boost::uint16_t vendor; boost::uint16_t device; unsigned char revision; unsigned char content; unsigned char model[8]; unsigned char env_var[16]; unsigned char env_setting[64]; unsigned char serial[10]; unsigned char name[NAME_MAX_LEN]; }; template static const byte_vector_t to_bytes(const T &item){ return byte_vector_t( reinterpret_cast(&item), reinterpret_cast(&item)+sizeof(item) ); } #define sizeof_member(struct_name, member_name) \ sizeof(reinterpret_cast(NULL)->member_name) static void load_e100(mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ const size_t num_bytes = offsetof(e100_eeprom_map, model); byte_vector_t map_bytes = iface.read_eeprom(E100_EEPROM_ADDR, 0, num_bytes); e100_eeprom_map map; std::memcpy(&map, &map_bytes[0], map_bytes.size()); mb_eeprom["vendor"] = boost::lexical_cast(uhd::ntohx(map.vendor)); mb_eeprom["device"] = boost::lexical_cast(uhd::ntohx(map.device)); mb_eeprom["revision"] = boost::lexical_cast(unsigned(map.revision)); mb_eeprom["content"] = boost::lexical_cast(unsigned(map.content)); #define load_e100_string_xx(key) mb_eeprom[#key] = bytes_to_string(iface.read_eeprom( \ E100_EEPROM_ADDR, offsetof(e100_eeprom_map, key), sizeof_member(e100_eeprom_map, key) \ )); load_e100_string_xx(model); load_e100_string_xx(env_var); load_e100_string_xx(env_setting); load_e100_string_xx(serial); load_e100_string_xx(name); } static void store_e100(const mboard_eeprom_t &mb_eeprom, i2c_iface &iface){ if (mb_eeprom.has_key("vendor")) iface.write_eeprom( E100_EEPROM_ADDR, offsetof(e100_eeprom_map, vendor), to_bytes(uhd::htonx(boost::lexical_cast(mb_eeprom["vendor"]))) ); if (mb_eeprom.has_key("device")) iface.write_eeprom( E100_EEPROM_ADDR, offsetof(e100_eeprom_map, device), to_bytes(uhd::htonx(boost::lexical_cast(mb_eeprom["device"]))) ); if (mb_eeprom.has_key("revision")) iface.write_eeprom( E100_EEPROM_ADDR, offsetof(e100_eeprom_map, revision), byte_vector_t(1, boost::lexical_cast(mb_eeprom["revision"])) ); if (mb_eeprom.has_key("content")) iface.write_eeprom( E100_EEPROM_ADDR, offsetof(e100_eeprom_map, content), byte_vector_t(1, boost::lexical_cast(mb_eeprom["content"])) ); #define store_e100_string_xx(key) if (mb_eeprom.has_key(#key)) iface.write_eeprom( \ E100_EEPROM_ADDR, offsetof(e100_eeprom_map, key), \ string_to_bytes(mb_eeprom[#key], sizeof_member(e100_eeprom_map, key)) \ ); store_e100_string_xx(model); store_e100_string_xx(env_var); store_e100_string_xx(env_setting); store_e100_string_xx(serial); store_e100_string_xx(name); } /*********************************************************************** * Implementation of mboard eeprom **********************************************************************/ mboard_eeprom_t::mboard_eeprom_t(void){ /* NOP */ } mboard_eeprom_t::mboard_eeprom_t(i2c_iface &iface, const std::string &which){ if (which == "N100") load_n100(*this, iface); if (which == "B000") load_b000(*this, iface); if (which == "B100") load_b100(*this, iface); if (which == "E100") load_e100(*this, iface); } void mboard_eeprom_t::commit(i2c_iface &iface, const std::string &which) const{ if (which == "N100") store_n100(*this, iface); if (which == "B000") store_b000(*this, iface); if (which == "B100") store_b100(*this, iface); if (which == "E100") store_e100(*this, iface); } uhd-3.5.5/host/lib/usrp/multi_usrp.cpp000066400000000000000000001075611224274632000177430ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; const std::string multi_usrp::ALL_GAINS = ""; /*********************************************************************** * Helper methods **********************************************************************/ static void do_samp_rate_warning_message( double target_rate, double actual_rate, const std::string &xx ){ static const double max_allowed_error = 1.0; //Sps if (std::abs(target_rate - actual_rate) > max_allowed_error){ UHD_MSG(warning) << boost::format( "The hardware does not support the requested %s sample rate:\n" "Target sample rate: %f MSps\n" "Actual sample rate: %f MSps\n" ) % xx % (target_rate/1e6) % (actual_rate/1e6); } } static void do_tune_freq_warning_message( const tune_request_t &tune_req, double actual_freq, const std::string &xx ){ //forget the warning when manual policy if (tune_req.dsp_freq_policy == tune_request_t::POLICY_MANUAL) return; if (tune_req.rf_freq_policy == tune_request_t::POLICY_MANUAL) return; const double target_freq = tune_req.target_freq; static const double max_allowed_error = 1.0; //Hz if (std::abs(target_freq - actual_freq) > max_allowed_error){ UHD_MSG(warning) << boost::format( "The hardware does not support the requested %s frequency:\n" "Target frequency: %f MHz\n" "Actual frequency: %f MHz\n" ) % xx % (target_freq/1e6) % (actual_freq/1e6); } } static meta_range_t make_overall_tune_range( const meta_range_t &fe_range, const meta_range_t &dsp_range, const double bw ){ meta_range_t range; BOOST_FOREACH(const range_t &sub_range, fe_range){ range.push_back(range_t( sub_range.start() + std::max(dsp_range.start(), -bw/2), sub_range.stop() + std::min(dsp_range.stop(), bw/2), dsp_range.step() )); } return range; } /*********************************************************************** * Gain helper functions **********************************************************************/ static double get_gain_value(property_tree::sptr subtree){ return subtree->access("value").get(); } static void set_gain_value(property_tree::sptr subtree, const double gain){ subtree->access("value").set(gain); } static meta_range_t get_gain_range(property_tree::sptr subtree){ return subtree->access("range").get(); } static gain_fcns_t make_gain_fcns_from_subtree(property_tree::sptr subtree){ gain_fcns_t gain_fcns; gain_fcns.get_range = boost::bind(&get_gain_range, subtree); gain_fcns.get_value = boost::bind(&get_gain_value, subtree); gain_fcns.set_value = boost::bind(&set_gain_value, subtree, _1); return gain_fcns; } /*********************************************************************** * Tune Helper Functions **********************************************************************/ static const double RX_SIGN = +1.0; static const double TX_SIGN = -1.0; static tune_result_t tune_xx_subdev_and_dsp( const double xx_sign, property_tree::sptr dsp_subtree, property_tree::sptr rf_fe_subtree, const tune_request_t &tune_request ){ //------------------------------------------------------------------ //-- calculate the LO offset, only used with automatic policy //------------------------------------------------------------------ double lo_offset = 0.0; if (rf_fe_subtree->access("use_lo_offset").get()){ //If the frontend has lo_offset value and range properties, trust it for lo_offset if (rf_fe_subtree->exists("lo_offset/value")) lo_offset = rf_fe_subtree->access("lo_offset/value").get(); //If the local oscillator will be in the passband, use an offset. //But constrain the LO offset by the width of the filter bandwidth. const double rate = dsp_subtree->access("rate/value").get(); const double bw = rf_fe_subtree->access("bandwidth/value").get(); if (bw > rate) lo_offset = std::min((bw - rate)/2, rate/2); } //------------------------------------------------------------------ //-- set the RF frequency depending upon the policy //------------------------------------------------------------------ double target_rf_freq = 0.0; switch (tune_request.rf_freq_policy){ case tune_request_t::POLICY_AUTO: target_rf_freq = tune_request.target_freq + lo_offset; rf_fe_subtree->access("freq/value").set(target_rf_freq); break; case tune_request_t::POLICY_MANUAL: //If the rf_fe understands lo_offset settings, infer the desired lo_offset and set it // Side effect: In TVRX2 for example, after setting the lo_offset (if_freq) with a // POLICY_MANUAL, there is no way for the user to automatically get back to default // if_freq without deconstruct/reconstruct the rf_fe objects. if (rf_fe_subtree->exists("lo_offset/value")) { rf_fe_subtree->access("lo_offset/value").set(tune_request.rf_freq - tune_request.target_freq); } target_rf_freq = tune_request.rf_freq; rf_fe_subtree->access("freq/value").set(target_rf_freq); break; case tune_request_t::POLICY_NONE: break; //does not set } const double actual_rf_freq = rf_fe_subtree->access("freq/value").get(); //------------------------------------------------------------------ //-- calculate the dsp freq, only used with automatic policy //------------------------------------------------------------------ double target_dsp_freq = actual_rf_freq - tune_request.target_freq; //invert the sign on the dsp freq for transmit target_dsp_freq *= xx_sign; //------------------------------------------------------------------ //-- set the dsp frequency depending upon the dsp frequency policy //------------------------------------------------------------------ switch (tune_request.dsp_freq_policy){ case tune_request_t::POLICY_AUTO: dsp_subtree->access("freq/value").set(target_dsp_freq); break; case tune_request_t::POLICY_MANUAL: target_dsp_freq = tune_request.dsp_freq; dsp_subtree->access("freq/value").set(target_dsp_freq); break; case tune_request_t::POLICY_NONE: break; //does not set } const double actual_dsp_freq = dsp_subtree->access("freq/value").get(); //------------------------------------------------------------------ //-- load and return the tune result //------------------------------------------------------------------ tune_result_t tune_result; tune_result.target_rf_freq = target_rf_freq; tune_result.actual_rf_freq = actual_rf_freq; tune_result.target_dsp_freq = target_dsp_freq; tune_result.actual_dsp_freq = actual_dsp_freq; return tune_result; } static double derive_freq_from_xx_subdev_and_dsp( const double xx_sign, property_tree::sptr dsp_subtree, property_tree::sptr rf_fe_subtree ){ //extract actual dsp and IF frequencies const double actual_rf_freq = rf_fe_subtree->access("freq/value").get(); const double actual_dsp_freq = dsp_subtree->access("freq/value").get(); //invert the sign on the dsp freq for transmit return actual_rf_freq - actual_dsp_freq * xx_sign; } /*********************************************************************** * Multi USRP Implementation **********************************************************************/ class multi_usrp_impl : public multi_usrp{ public: multi_usrp_impl(const device_addr_t &addr){ _dev = device::make(addr); _tree = _dev->get_tree(); } device::sptr get_device(void){ return _dev; } dict get_usrp_rx_info(size_t chan){ mboard_chan_pair mcp = rx_chan_to_mcp(chan); dict usrp_info; mboard_eeprom_t mb_eeprom = _tree->access(mb_root(mcp.mboard) / "eeprom").get(); dboard_eeprom_t db_eeprom = _tree->access(rx_rf_fe_root(mcp.chan).branch_path().branch_path() / "rx_eeprom").get(); usrp_info["mboard_id"] = _tree->access(mb_root(mcp.mboard) / "name").get(); usrp_info["mboard_name"] = mb_eeprom["name"]; usrp_info["mboard_serial"] = mb_eeprom["serial"]; usrp_info["rx_id"] = db_eeprom.id.to_pp_string(); usrp_info["rx_subdev_name"] = _tree->access(rx_rf_fe_root(mcp.chan) / "name").get(); usrp_info["rx_subdev_spec"] = _tree->access(mb_root(mcp.mboard) / "rx_subdev_spec").get().to_string(); usrp_info["rx_serial"] = db_eeprom.serial; usrp_info["rx_antenna"] = _tree->access(rx_rf_fe_root(mcp.chan) / "antenna" / "value").get(); return usrp_info; } dict get_usrp_tx_info(size_t chan){ mboard_chan_pair mcp = tx_chan_to_mcp(chan); dict usrp_info; mboard_eeprom_t mb_eeprom = _tree->access(mb_root(mcp.mboard) / "eeprom").get(); dboard_eeprom_t db_eeprom = _tree->access(tx_rf_fe_root(mcp.chan).branch_path().branch_path() / "tx_eeprom").get(); usrp_info["mboard_id"] = _tree->access(mb_root(mcp.mboard) / "name").get(); usrp_info["mboard_name"] = mb_eeprom["name"]; usrp_info["mboard_serial"] = mb_eeprom["serial"]; usrp_info["tx_id"] = db_eeprom.id.to_pp_string(); usrp_info["tx_subdev_name"] = _tree->access(tx_rf_fe_root(mcp.chan) / "name").get(); usrp_info["tx_subdev_spec"] = _tree->access(mb_root(mcp.mboard) / "tx_subdev_spec").get().to_string(); usrp_info["tx_serial"] = db_eeprom.serial; usrp_info["tx_antenna"] = _tree->access(tx_rf_fe_root(mcp.chan) / "antenna" / "value").get(); return usrp_info; } /******************************************************************* * Mboard methods ******************************************************************/ void set_master_clock_rate(double rate, size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "tick_rate").set(rate); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_master_clock_rate(rate, m); } } double get_master_clock_rate(size_t mboard){ return _tree->access(mb_root(mboard) / "tick_rate").get(); } std::string get_pp_string(void){ std::string buff = str(boost::format( "%s USRP:\n" " Device: %s\n" ) % ((get_num_mboards() > 1)? "Multi" : "Single") % (_tree->access("/name").get()) ); for (size_t m = 0; m < get_num_mboards(); m++){ buff += str(boost::format( " Mboard %d: %s\n" ) % m % (_tree->access(mb_root(m) / "name").get()) ); } //----------- rx side of life ---------------------------------- for (size_t m = 0, chan = 0; m < get_num_mboards(); m++){ for (; chan < (m + 1)*get_rx_subdev_spec(m).size(); chan++){ buff += str(boost::format( " RX Channel: %u\n" " RX DSP: %s\n" " RX Dboard: %s\n" " RX Subdev: %s\n" ) % chan % rx_dsp_root(chan).leaf() % rx_rf_fe_root(chan).branch_path().branch_path().leaf() % (_tree->access(rx_rf_fe_root(chan) / "name").get()) ); } } //----------- tx side of life ---------------------------------- for (size_t m = 0, chan = 0; m < get_num_mboards(); m++){ for (; chan < (m + 1)*get_tx_subdev_spec(m).size(); chan++){ buff += str(boost::format( " TX Channel: %u\n" " TX DSP: %s\n" " TX Dboard: %s\n" " TX Subdev: %s\n" ) % chan % tx_dsp_root(chan).leaf() % tx_rf_fe_root(chan).branch_path().branch_path().leaf() % (_tree->access(tx_rf_fe_root(chan) / "name").get()) ); } } return buff; } std::string get_mboard_name(size_t mboard){ return _tree->access(mb_root(mboard) / "name").get(); } time_spec_t get_time_now(size_t mboard = 0){ return _tree->access(mb_root(mboard) / "time/now").get(); } time_spec_t get_time_last_pps(size_t mboard = 0){ return _tree->access(mb_root(mboard) / "time/pps").get(); } void set_time_now(const time_spec_t &time_spec, size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "time/now").set(time_spec); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_time_now(time_spec, m); } } void set_time_next_pps(const time_spec_t &time_spec, size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "time/pps").set(time_spec); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_time_next_pps(time_spec, m); } } void set_time_unknown_pps(const time_spec_t &time_spec){ UHD_MSG(status) << " 1) catch time transition at pps edge" << std::endl; time_spec_t time_start = get_time_now(); time_spec_t time_start_last_pps = get_time_last_pps(); while(true){ if (get_time_last_pps() != time_start_last_pps) break; if ((get_time_now() - time_start) > time_spec_t(1.1)){ throw uhd::runtime_error( "Board 0 may not be getting a PPS signal!\n" "No PPS detected within the time interval.\n" "See the application notes for your device.\n" ); } } UHD_MSG(status) << " 2) set times next pps (synchronously)" << std::endl; set_time_next_pps(time_spec, ALL_MBOARDS); boost::this_thread::sleep(boost::posix_time::seconds(1)); //verify that the time registers are read to be within a few RTT for (size_t m = 1; m < get_num_mboards(); m++){ time_spec_t time_0 = this->get_time_now(0); time_spec_t time_i = this->get_time_now(m); if (time_i < time_0 or (time_i - time_0) > time_spec_t(0.01)){ //10 ms: greater than RTT but not too big UHD_MSG(warning) << boost::format( "Detected time deviation between board %d and board 0.\n" "Board 0 time is %f seconds.\n" "Board %d time is %f seconds.\n" ) % m % time_0.get_real_secs() % m % time_i.get_real_secs(); } } } bool get_time_synchronized(void){ for (size_t m = 1; m < get_num_mboards(); m++){ time_spec_t time_0 = this->get_time_now(0); time_spec_t time_i = this->get_time_now(m); if (time_i < time_0 or (time_i - time_0) > time_spec_t(0.01)) return false; } return true; } void set_command_time(const time_spec_t &time_spec, size_t mboard){ if (mboard != ALL_MBOARDS){ if (not _tree->exists(mb_root(mboard) / "time/cmd")){ throw uhd::not_implemented_error("timed command feature not implemented on this hardware"); } _tree->access(mb_root(mboard) / "time/cmd").set(time_spec); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_command_time(time_spec, m); } } void clear_command_time(size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "time/cmd").set(time_spec_t(0.0)); return; } for (size_t m = 0; m < get_num_mboards(); m++){ clear_command_time(m); } } void issue_stream_cmd(const stream_cmd_t &stream_cmd, size_t chan){ if (chan != ALL_CHANS){ _tree->access(rx_dsp_root(chan) / "stream_cmd").set(stream_cmd); return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ issue_stream_cmd(stream_cmd, c); } } void set_clock_config(const clock_config_t &clock_config, size_t mboard){ //set the reference source... std::string clock_source; switch(clock_config.ref_source){ case clock_config_t::REF_INT: clock_source = "internal"; break; case clock_config_t::REF_SMA: clock_source = "external"; break; case clock_config_t::REF_MIMO: clock_source = "mimo"; break; default: clock_source = "unknown"; } this->set_clock_source(clock_source, mboard); //set the time source std::string time_source; switch(clock_config.pps_source){ case clock_config_t::PPS_INT: time_source = "internal"; break; case clock_config_t::PPS_SMA: time_source = "external"; break; case clock_config_t::PPS_MIMO: time_source = "mimo"; break; default: time_source = "unknown"; } if (time_source == "external" and clock_config.pps_polarity == clock_config_t::PPS_NEG) time_source = "_external_"; this->set_time_source(time_source, mboard); } void set_time_source(const std::string &source, const size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "time_source" / "value").set(source); return; } for (size_t m = 0; m < get_num_mboards(); m++){ this->set_time_source(source, m); } } std::string get_time_source(const size_t mboard){ return _tree->access(mb_root(mboard) / "time_source" / "value").get(); } std::vector get_time_sources(const size_t mboard){ return _tree->access >(mb_root(mboard) / "time_source" / "options").get(); } void set_clock_source(const std::string &source, const size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "clock_source" / "value").set(source); return; } for (size_t m = 0; m < get_num_mboards(); m++){ this->set_clock_source(source, m); } } std::string get_clock_source(const size_t mboard){ return _tree->access(mb_root(mboard) / "clock_source" / "value").get(); } std::vector get_clock_sources(const size_t mboard){ return _tree->access >(mb_root(mboard) / "clock_source" / "options").get(); } size_t get_num_mboards(void){ return _tree->list("/mboards").size(); } sensor_value_t get_mboard_sensor(const std::string &name, size_t mboard){ return _tree->access(mb_root(mboard) / "sensors" / name).get(); } std::vector get_mboard_sensor_names(size_t mboard){ return _tree->list(mb_root(mboard) / "sensors"); } void set_user_register(const boost::uint8_t addr, const boost::uint32_t data, size_t mboard){ if (mboard != ALL_MBOARDS){ typedef std::pair user_reg_t; _tree->access(mb_root(mboard) / "user/regs").set(user_reg_t(addr, data)); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_user_register(addr, data, m); } } /******************************************************************* * RX methods ******************************************************************/ void set_rx_subdev_spec(const subdev_spec_t &spec, size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "rx_subdev_spec").set(spec); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_rx_subdev_spec(spec, m); } } subdev_spec_t get_rx_subdev_spec(size_t mboard){ return _tree->access(mb_root(mboard) / "rx_subdev_spec").get(); } size_t get_rx_num_channels(void){ size_t sum = 0; for (size_t m = 0; m < get_num_mboards(); m++){ sum += get_rx_subdev_spec(m).size(); } return sum; } std::string get_rx_subdev_name(size_t chan){ return _tree->access(rx_rf_fe_root(chan) / "name").get(); } void set_rx_rate(double rate, size_t chan){ if (chan != ALL_CHANS){ _tree->access(rx_dsp_root(chan) / "rate" / "value").set(rate); do_samp_rate_warning_message(rate, get_rx_rate(chan), "RX"); return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ set_rx_rate(rate, c); } } double get_rx_rate(size_t chan){ return _tree->access(rx_dsp_root(chan) / "rate" / "value").get(); } meta_range_t get_rx_rates(size_t chan){ return _tree->access(rx_dsp_root(chan) / "rate" / "range").get(); } tune_result_t set_rx_freq(const tune_request_t &tune_request, size_t chan){ tune_result_t r = tune_xx_subdev_and_dsp(RX_SIGN, _tree->subtree(rx_dsp_root(chan)), _tree->subtree(rx_rf_fe_root(chan)), tune_request); do_tune_freq_warning_message(tune_request, get_rx_freq(chan), "RX"); return r; } double get_rx_freq(size_t chan){ return derive_freq_from_xx_subdev_and_dsp(RX_SIGN, _tree->subtree(rx_dsp_root(chan)), _tree->subtree(rx_rf_fe_root(chan))); } freq_range_t get_rx_freq_range(size_t chan){ return make_overall_tune_range( _tree->access(rx_rf_fe_root(chan) / "freq" / "range").get(), _tree->access(rx_dsp_root(chan) / "freq" / "range").get(), this->get_rx_bandwidth(chan) ); } freq_range_t get_fe_rx_freq_range(size_t chan){ return _tree->access(rx_rf_fe_root(chan) / "freq" / "range").get(); } void set_rx_gain(double gain, const std::string &name, size_t chan){ return rx_gain_group(chan)->set_value(gain, name); } double get_rx_gain(const std::string &name, size_t chan){ return rx_gain_group(chan)->get_value(name); } gain_range_t get_rx_gain_range(const std::string &name, size_t chan){ return rx_gain_group(chan)->get_range(name); } std::vector get_rx_gain_names(size_t chan){ return rx_gain_group(chan)->get_names(); } void set_rx_antenna(const std::string &ant, size_t chan){ _tree->access(rx_rf_fe_root(chan) / "antenna" / "value").set(ant); } std::string get_rx_antenna(size_t chan){ return _tree->access(rx_rf_fe_root(chan) / "antenna" / "value").get(); } std::vector get_rx_antennas(size_t chan){ return _tree->access >(rx_rf_fe_root(chan) / "antenna" / "options").get(); } void set_rx_bandwidth(double bandwidth, size_t chan){ _tree->access(rx_rf_fe_root(chan) / "bandwidth" / "value").set(bandwidth); } double get_rx_bandwidth(size_t chan){ return _tree->access(rx_rf_fe_root(chan) / "bandwidth" / "value").get(); } meta_range_t get_rx_bandwidth_range(size_t chan){ return _tree->access(rx_rf_fe_root(chan) / "bandwidth" / "range").get(); } dboard_iface::sptr get_rx_dboard_iface(size_t chan){ return _tree->access(rx_rf_fe_root(chan).branch_path().branch_path() / "iface").get(); } sensor_value_t get_rx_sensor(const std::string &name, size_t chan){ return _tree->access(rx_rf_fe_root(chan) / "sensors" / name).get(); } std::vector get_rx_sensor_names(size_t chan){ return _tree->list(rx_rf_fe_root(chan) / "sensors"); } void set_rx_dc_offset(const bool enb, size_t chan){ if (chan != ALL_CHANS){ _tree->access(rx_fe_root(chan) / "dc_offset" / "enable").set(enb); return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ this->set_rx_dc_offset(enb, c); } } void set_rx_dc_offset(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ _tree->access >(rx_fe_root(chan) / "dc_offset" / "value").set(offset); return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ this->set_rx_dc_offset(offset, c); } } void set_rx_iq_balance(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ _tree->access >(rx_fe_root(chan) / "iq_balance" / "value").set(offset); return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ this->set_rx_iq_balance(offset, c); } } /******************************************************************* * TX methods ******************************************************************/ void set_tx_subdev_spec(const subdev_spec_t &spec, size_t mboard){ if (mboard != ALL_MBOARDS){ _tree->access(mb_root(mboard) / "tx_subdev_spec").set(spec); return; } for (size_t m = 0; m < get_num_mboards(); m++){ set_tx_subdev_spec(spec, m); } } subdev_spec_t get_tx_subdev_spec(size_t mboard){ return _tree->access(mb_root(mboard) / "tx_subdev_spec").get(); } size_t get_tx_num_channels(void){ size_t sum = 0; for (size_t m = 0; m < get_num_mboards(); m++){ sum += get_tx_subdev_spec(m).size(); } return sum; } std::string get_tx_subdev_name(size_t chan){ return _tree->access(tx_rf_fe_root(chan) / "name").get(); } void set_tx_rate(double rate, size_t chan){ if (chan != ALL_CHANS){ _tree->access(tx_dsp_root(chan) / "rate" / "value").set(rate); do_samp_rate_warning_message(rate, get_tx_rate(chan), "TX"); return; } for (size_t c = 0; c < get_tx_num_channels(); c++){ set_tx_rate(rate, c); } } double get_tx_rate(size_t chan){ return _tree->access(tx_dsp_root(chan) / "rate" / "value").get(); } meta_range_t get_tx_rates(size_t chan){ return _tree->access(tx_dsp_root(chan) / "rate" / "range").get(); } tune_result_t set_tx_freq(const tune_request_t &tune_request, size_t chan){ tune_result_t r = tune_xx_subdev_and_dsp(TX_SIGN, _tree->subtree(tx_dsp_root(chan)), _tree->subtree(tx_rf_fe_root(chan)), tune_request); do_tune_freq_warning_message(tune_request, get_tx_freq(chan), "TX"); return r; } double get_tx_freq(size_t chan){ return derive_freq_from_xx_subdev_and_dsp(TX_SIGN, _tree->subtree(tx_dsp_root(chan)), _tree->subtree(tx_rf_fe_root(chan))); } freq_range_t get_tx_freq_range(size_t chan){ return make_overall_tune_range( _tree->access(tx_rf_fe_root(chan) / "freq" / "range").get(), _tree->access(tx_dsp_root(chan) / "freq" / "range").get(), this->get_tx_bandwidth(chan) ); } freq_range_t get_fe_tx_freq_range(size_t chan){ return _tree->access(tx_rf_fe_root(chan) / "freq" / "range").get(); } void set_tx_gain(double gain, const std::string &name, size_t chan){ return tx_gain_group(chan)->set_value(gain, name); } double get_tx_gain(const std::string &name, size_t chan){ return tx_gain_group(chan)->get_value(name); } gain_range_t get_tx_gain_range(const std::string &name, size_t chan){ return tx_gain_group(chan)->get_range(name); } std::vector get_tx_gain_names(size_t chan){ return tx_gain_group(chan)->get_names(); } void set_tx_antenna(const std::string &ant, size_t chan){ _tree->access(tx_rf_fe_root(chan) / "antenna" / "value").set(ant); } std::string get_tx_antenna(size_t chan){ return _tree->access(tx_rf_fe_root(chan) / "antenna" / "value").get(); } std::vector get_tx_antennas(size_t chan){ return _tree->access >(tx_rf_fe_root(chan) / "antenna" / "options").get(); } void set_tx_bandwidth(double bandwidth, size_t chan){ _tree->access(tx_rf_fe_root(chan) / "bandwidth" / "value").set(bandwidth); } double get_tx_bandwidth(size_t chan){ return _tree->access(tx_rf_fe_root(chan) / "bandwidth" / "value").get(); } meta_range_t get_tx_bandwidth_range(size_t chan){ return _tree->access(tx_rf_fe_root(chan) / "bandwidth" / "range").get(); } dboard_iface::sptr get_tx_dboard_iface(size_t chan){ return _tree->access(tx_rf_fe_root(chan).branch_path().branch_path() / "iface").get(); } sensor_value_t get_tx_sensor(const std::string &name, size_t chan){ return _tree->access(tx_rf_fe_root(chan) / "sensors" / name).get(); } std::vector get_tx_sensor_names(size_t chan){ return _tree->list(tx_rf_fe_root(chan) / "sensors"); } void set_tx_dc_offset(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ _tree->access >(tx_fe_root(chan) / "dc_offset" / "value").set(offset); return; } for (size_t c = 0; c < get_tx_num_channels(); c++){ this->set_tx_dc_offset(offset, c); } } void set_tx_iq_balance(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ _tree->access >(tx_fe_root(chan) / "iq_balance" / "value").set(offset); return; } for (size_t c = 0; c < get_tx_num_channels(); c++){ this->set_tx_iq_balance(offset, c); } } private: device::sptr _dev; property_tree::sptr _tree; struct mboard_chan_pair{ size_t mboard, chan; mboard_chan_pair(void): mboard(0), chan(0){} }; mboard_chan_pair rx_chan_to_mcp(size_t chan){ mboard_chan_pair mcp; mcp.chan = chan; for (mcp.mboard = 0; mcp.mboard < get_num_mboards(); mcp.mboard++){ size_t sss = get_rx_subdev_spec(mcp.mboard).size(); if (mcp.chan < sss) break; mcp.chan -= sss; } return mcp; } mboard_chan_pair tx_chan_to_mcp(size_t chan){ mboard_chan_pair mcp; mcp.chan = chan; for (mcp.mboard = 0; mcp.mboard < get_num_mboards(); mcp.mboard++){ size_t sss = get_tx_subdev_spec(mcp.mboard).size(); if (mcp.chan < sss) break; mcp.chan -= sss; } return mcp; } fs_path mb_root(const size_t mboard){ const std::string name = _tree->list("/mboards").at(mboard); return "/mboards/" + name; } fs_path rx_dsp_root(const size_t chan){ mboard_chan_pair mcp = rx_chan_to_mcp(chan); const std::string name = _tree->list(mb_root(mcp.mboard) / "rx_dsps").at(mcp.chan); return mb_root(mcp.mboard) / "rx_dsps" / name; } fs_path tx_dsp_root(const size_t chan){ mboard_chan_pair mcp = tx_chan_to_mcp(chan); const std::string name = _tree->list(mb_root(mcp.mboard) / "tx_dsps").at(mcp.chan); return mb_root(mcp.mboard) / "tx_dsps" / name; } fs_path rx_fe_root(const size_t chan){ mboard_chan_pair mcp = rx_chan_to_mcp(chan); const subdev_spec_pair_t spec = get_rx_subdev_spec(mcp.mboard).at(mcp.chan); return mb_root(mcp.mboard) / "rx_frontends" / spec.db_name; } fs_path tx_fe_root(const size_t chan){ mboard_chan_pair mcp = tx_chan_to_mcp(chan); const subdev_spec_pair_t spec = get_tx_subdev_spec(mcp.mboard).at(mcp.chan); return mb_root(mcp.mboard) / "tx_frontends" / spec.db_name; } fs_path rx_rf_fe_root(const size_t chan){ mboard_chan_pair mcp = rx_chan_to_mcp(chan); const subdev_spec_pair_t spec = get_rx_subdev_spec(mcp.mboard).at(mcp.chan); return mb_root(mcp.mboard) / "dboards" / spec.db_name / "rx_frontends" / spec.sd_name; } fs_path tx_rf_fe_root(const size_t chan){ mboard_chan_pair mcp = tx_chan_to_mcp(chan); const subdev_spec_pair_t spec = get_tx_subdev_spec(mcp.mboard).at(mcp.chan); return mb_root(mcp.mboard) / "dboards" / spec.db_name / "tx_frontends" / spec.sd_name; } gain_group::sptr rx_gain_group(size_t chan){ mboard_chan_pair mcp = rx_chan_to_mcp(chan); const subdev_spec_pair_t spec = get_rx_subdev_spec(mcp.mboard).at(mcp.chan); gain_group::sptr gg = gain_group::make(); BOOST_FOREACH(const std::string &name, _tree->list(mb_root(mcp.mboard) / "rx_codecs" / spec.db_name / "gains")){ gg->register_fcns("ADC-"+name, make_gain_fcns_from_subtree(_tree->subtree(mb_root(mcp.mboard) / "rx_codecs" / spec.db_name / "gains" / name)), 0 /* low prio */); } BOOST_FOREACH(const std::string &name, _tree->list(rx_rf_fe_root(chan) / "gains")){ gg->register_fcns(name, make_gain_fcns_from_subtree(_tree->subtree(rx_rf_fe_root(chan) / "gains" / name)), 1 /* high prio */); } return gg; } gain_group::sptr tx_gain_group(size_t chan){ mboard_chan_pair mcp = tx_chan_to_mcp(chan); const subdev_spec_pair_t spec = get_tx_subdev_spec(mcp.mboard).at(mcp.chan); gain_group::sptr gg = gain_group::make(); BOOST_FOREACH(const std::string &name, _tree->list(mb_root(mcp.mboard) / "tx_codecs" / spec.db_name / "gains")){ gg->register_fcns("DAC-"+name, make_gain_fcns_from_subtree(_tree->subtree(mb_root(mcp.mboard) / "tx_codecs" / spec.db_name / "gains" / name)), 1 /* high prio */); } BOOST_FOREACH(const std::string &name, _tree->list(tx_rf_fe_root(chan) / "gains")){ gg->register_fcns(name, make_gain_fcns_from_subtree(_tree->subtree(tx_rf_fe_root(chan) / "gains" / name)), 0 /* low prio */); } return gg; } }; /*********************************************************************** * The Make Function **********************************************************************/ multi_usrp::sptr multi_usrp::make(const device_addr_t &dev_addr){ return sptr(new multi_usrp_impl(dev_addr)); } uhd-3.5.5/host/lib/usrp/subdev_spec.cpp000066400000000000000000000052371224274632000200370ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include //for split #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; #define pair_tokenizer(inp) \ boost::tokenizer > \ (inp, boost::char_separator(" ")) subdev_spec_pair_t::subdev_spec_pair_t( const std::string &db_name, const std::string &sd_name ): db_name(db_name), sd_name(sd_name) { /* NOP */ } bool usrp::operator==(const subdev_spec_pair_t &lhs, const subdev_spec_pair_t &rhs){ return (lhs.db_name == rhs.db_name) and (lhs.sd_name == rhs.sd_name); } subdev_spec_t::subdev_spec_t(const std::string &markup){ BOOST_FOREACH(const std::string &pair, pair_tokenizer(markup)){ if (pair.empty()) continue; std::vector db_sd; boost::split(db_sd, pair, boost::is_any_of(":")); switch(db_sd.size()){ case 1: this->push_back(subdev_spec_pair_t("", db_sd.front())); break; case 2: this->push_back(subdev_spec_pair_t(db_sd.front(), db_sd.back())); break; default: throw uhd::value_error("invalid subdev-spec markup string: "+markup); } } } std::string subdev_spec_t::to_pp_string(void) const{ if (this->size() == 0) return "Empty Subdevice Specification"; std::stringstream ss; size_t count = 0; ss << "Subdevice Specification:" << std::endl; BOOST_FOREACH(const subdev_spec_pair_t &pair, *this){ ss << boost::format( " Channel %d: Daughterboard %s, Subdevice %s" ) % (count++) % pair.db_name % pair.sd_name << std::endl; } return ss.str(); } std::string subdev_spec_t::to_string(void) const{ std::string markup; size_t count = 0; BOOST_FOREACH(const subdev_spec_pair_t &pair, *this){ markup += ((count++)? " " : "") + pair.db_name + ":" + pair.sd_name; } return markup; } uhd-3.5.5/host/lib/usrp/usrp1/000077500000000000000000000000001224274632000160745ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/usrp1/CMakeLists.txt000066400000000000000000000027761224274632000206500ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## ######################################################################## # Conditionally configure the USRP1 support ######################################################################## LIBUHD_REGISTER_COMPONENT("USRP1" ENABLE_USRP1 ON "ENABLE_LIBUHD;ENABLE_USB" OFF) IF(ENABLE_USRP1) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/codec_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/io_impl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/soft_time_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/usrp1_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/usrp1_impl.cpp ) ENDIF(ENABLE_USRP1) uhd-3.5.5/host/lib/usrp/usrp1/codec_ctrl.cpp000066400000000000000000000356761224274632000207220ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "codec_ctrl.hpp" #include "ad9862_regs.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; const gain_range_t usrp1_codec_ctrl::tx_pga_gain_range(-20, 0, double(0.1)); const gain_range_t usrp1_codec_ctrl::rx_pga_gain_range(0, 20, 1); /*********************************************************************** * Codec Control Implementation **********************************************************************/ class usrp1_codec_ctrl_impl : public usrp1_codec_ctrl { public: //structors usrp1_codec_ctrl_impl(spi_iface::sptr iface, int spi_slave); ~usrp1_codec_ctrl_impl(void); //aux adc and dac control double read_aux_adc(aux_adc_t which); void write_aux_dac(aux_dac_t which, double volts); //duc control void set_duc_freq(double freq, double); void enable_tx_digital(bool enb); //pga gain control void set_tx_pga_gain(double); double get_tx_pga_gain(void); void set_rx_pga_gain(double, char); double get_rx_pga_gain(char); //rx adc buffer control void bypass_adc_buffers(bool bypass); private: spi_iface::sptr _iface; int _spi_slave; ad9862_regs_t _ad9862_regs; void send_reg(boost::uint8_t addr); void recv_reg(boost::uint8_t addr); double coarse_tune(double codec_rate, double freq); double fine_tune(double codec_rate, double freq); }; /*********************************************************************** * Codec Control Structors **********************************************************************/ usrp1_codec_ctrl_impl::usrp1_codec_ctrl_impl(spi_iface::sptr iface, int spi_slave){ _iface = iface; _spi_slave = spi_slave; //soft reset _ad9862_regs.soft_reset = 1; this->send_reg(0); //initialize the codec register settings _ad9862_regs.sdio_bidir = ad9862_regs_t::SDIO_BIDIR_SDIO_SDO; _ad9862_regs.lsb_first = ad9862_regs_t::LSB_FIRST_MSB; _ad9862_regs.soft_reset = 0; //setup rx side of codec _ad9862_regs.byp_buffer_a = 1; _ad9862_regs.byp_buffer_b = 1; _ad9862_regs.buffer_a_pd = 1; _ad9862_regs.buffer_b_pd = 1; _ad9862_regs.rx_pga_a = 0; _ad9862_regs.rx_pga_b = 0; _ad9862_regs.rx_twos_comp = 1; _ad9862_regs.rx_hilbert = ad9862_regs_t::RX_HILBERT_DIS; //setup tx side of codec _ad9862_regs.two_data_paths = ad9862_regs_t::TWO_DATA_PATHS_BOTH; _ad9862_regs.interleaved = ad9862_regs_t::INTERLEAVED_INTERLEAVED; _ad9862_regs.tx_pga_gain = 199; _ad9862_regs.tx_hilbert = ad9862_regs_t::TX_HILBERT_DIS; _ad9862_regs.interp = ad9862_regs_t::INTERP_4; _ad9862_regs.tx_twos_comp = 1; _ad9862_regs.fine_mode = ad9862_regs_t::FINE_MODE_NCO; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_BYPASS; _ad9862_regs.dac_a_coarse_gain = 0x3; _ad9862_regs.dac_b_coarse_gain = 0x3; //setup the dll _ad9862_regs.input_clk_ctrl = ad9862_regs_t::INPUT_CLK_CTRL_EXTERNAL; _ad9862_regs.dll_mult = ad9862_regs_t::DLL_MULT_2; _ad9862_regs.dll_mode = ad9862_regs_t::DLL_MODE_FAST; //setup clockout _ad9862_regs.clkout2_div_factor = ad9862_regs_t::CLKOUT2_DIV_FACTOR_2; //write the register settings to the codec for (boost::uint8_t addr = 0; addr <= 25; addr++) { this->send_reg(addr); } //always start conversions for aux ADC _ad9862_regs.start_a = 1; _ad9862_regs.start_b = 1; //aux adc clock _ad9862_regs.clk_4 = ad9862_regs_t::CLK_4_1_4; this->send_reg(34); } usrp1_codec_ctrl_impl::~usrp1_codec_ctrl_impl(void){UHD_SAFE_CALL( //set aux dacs to zero this->write_aux_dac(AUX_DAC_A, 0); this->write_aux_dac(AUX_DAC_B, 0); this->write_aux_dac(AUX_DAC_C, 0); this->write_aux_dac(AUX_DAC_D, 0); //power down _ad9862_regs.all_rx_pd = 1; this->send_reg(1); _ad9862_regs.tx_digital_pd = 1; _ad9862_regs.tx_analog_pd = ad9862_regs_t::TX_ANALOG_PD_BOTH; this->send_reg(8); )} /*********************************************************************** * Codec Control Gain Control Methods **********************************************************************/ static const int mtpgw = 255; //maximum tx pga gain word void usrp1_codec_ctrl_impl::set_tx_pga_gain(double gain){ int gain_word = int(mtpgw*(gain - tx_pga_gain_range.start())/(tx_pga_gain_range.stop() - tx_pga_gain_range.start())); _ad9862_regs.tx_pga_gain = uhd::clip(gain_word, 0, mtpgw); this->send_reg(16); } double usrp1_codec_ctrl_impl::get_tx_pga_gain(void){ return (_ad9862_regs.tx_pga_gain*(tx_pga_gain_range.stop() - tx_pga_gain_range.start())/mtpgw) + tx_pga_gain_range.start(); } static const int mrpgw = 0x14; //maximum rx pga gain word void usrp1_codec_ctrl_impl::set_rx_pga_gain(double gain, char which){ int gain_word = int(mrpgw*(gain - rx_pga_gain_range.start())/(rx_pga_gain_range.stop() - rx_pga_gain_range.start())); gain_word = uhd::clip(gain_word, 0, mrpgw); switch(which){ case 'A': _ad9862_regs.rx_pga_a = gain_word; this->send_reg(2); return; case 'B': _ad9862_regs.rx_pga_b = gain_word; this->send_reg(3); return; default: UHD_THROW_INVALID_CODE_PATH(); } } double usrp1_codec_ctrl_impl::get_rx_pga_gain(char which){ int gain_word; switch(which){ case 'A': gain_word = _ad9862_regs.rx_pga_a; break; case 'B': gain_word = _ad9862_regs.rx_pga_b; break; default: UHD_THROW_INVALID_CODE_PATH(); } return (gain_word*(rx_pga_gain_range.stop() - rx_pga_gain_range.start())/mrpgw) + rx_pga_gain_range.start(); } /*********************************************************************** * Codec Control AUX ADC Methods **********************************************************************/ static double aux_adc_to_volts(boost::uint8_t high, boost::uint8_t low) { return double(((boost::uint16_t(high) << 2) | low)*3.3)/0x3ff; } double usrp1_codec_ctrl_impl::read_aux_adc(aux_adc_t which){ switch(which){ case AUX_ADC_A1: _ad9862_regs.select_a = ad9862_regs_t::SELECT_A_AUX_ADC1; this->send_reg(34); //start conversion and select mux this->recv_reg(28); //read the value (2 bytes, 2 reads) this->recv_reg(29); return aux_adc_to_volts(_ad9862_regs.aux_adc_a1_9_2, _ad9862_regs.aux_adc_a1_1_0); case AUX_ADC_A2: _ad9862_regs.select_a = ad9862_regs_t::SELECT_A_AUX_ADC2; this->send_reg(34); //start conversion and select mux this->recv_reg(26); //read the value (2 bytes, 2 reads) this->recv_reg(27); return aux_adc_to_volts(_ad9862_regs.aux_adc_a2_9_2, _ad9862_regs.aux_adc_a2_1_0); case AUX_ADC_B1: _ad9862_regs.select_b = ad9862_regs_t::SELECT_B_AUX_ADC1; this->send_reg(34); //start conversion and select mux this->recv_reg(32); //read the value (2 bytes, 2 reads) this->recv_reg(33); return aux_adc_to_volts(_ad9862_regs.aux_adc_b1_9_2, _ad9862_regs.aux_adc_b1_1_0); case AUX_ADC_B2: _ad9862_regs.select_b = ad9862_regs_t::SELECT_B_AUX_ADC2; this->send_reg(34); //start conversion and select mux this->recv_reg(30); //read the value (2 bytes, 2 reads) this->recv_reg(31); return aux_adc_to_volts(_ad9862_regs.aux_adc_b2_9_2, _ad9862_regs.aux_adc_b2_1_0); } UHD_THROW_INVALID_CODE_PATH(); } /*********************************************************************** * Codec Control AUX DAC Methods **********************************************************************/ void usrp1_codec_ctrl_impl::write_aux_dac(aux_dac_t which, double volts) { //special case for aux dac d (aka sigma delta word) if (which == AUX_DAC_D) { boost::uint16_t dac_word = uhd::clip(boost::math::iround(volts*0xfff/3.3), 0, 0xfff); _ad9862_regs.sig_delt_11_4 = boost::uint8_t(dac_word >> 4); _ad9862_regs.sig_delt_3_0 = boost::uint8_t(dac_word & 0xf); this->send_reg(42); this->send_reg(43); return; } //calculate the dac word for aux dac a, b, c boost::uint8_t dac_word = uhd::clip(boost::math::iround(volts*0xff/3.3), 0, 0xff); //setup a lookup table for the aux dac params (reg ref, reg addr) typedef boost::tuple dac_params_t; uhd::dict aux_dac_to_params = boost::assign::map_list_of (AUX_DAC_A, dac_params_t(&_ad9862_regs.aux_dac_a, 36)) (AUX_DAC_B, dac_params_t(&_ad9862_regs.aux_dac_b, 37)) (AUX_DAC_C, dac_params_t(&_ad9862_regs.aux_dac_c, 38)) ; //set the aux dac register UHD_ASSERT_THROW(aux_dac_to_params.has_key(which)); boost::uint8_t *reg_ref, reg_addr; boost::tie(reg_ref, reg_addr) = aux_dac_to_params[which]; *reg_ref = dac_word; this->send_reg(reg_addr); } /*********************************************************************** * Codec Control SPI Methods **********************************************************************/ void usrp1_codec_ctrl_impl::send_reg(boost::uint8_t addr) { boost::uint32_t reg = _ad9862_regs.get_write_reg(addr); UHD_LOGV(often) << "codec control write reg: 0x" << std::setw(8) << std::hex << reg << std::endl ; _iface->write_spi(_spi_slave, spi_config_t::EDGE_RISE, reg, 16); } void usrp1_codec_ctrl_impl::recv_reg(boost::uint8_t addr) { boost::uint32_t reg = _ad9862_regs.get_read_reg(addr); UHD_LOGV(often) << "codec control read reg: 0x" << std::setw(8) << std::hex << reg << std::endl ; boost::uint32_t ret = _iface->read_spi(_spi_slave, spi_config_t::EDGE_RISE, reg, 16); UHD_LOGV(often) << "codec control read ret: 0x" << std::setw(8) << std::hex << ret << std::endl ; _ad9862_regs.set_reg(addr, boost::uint16_t(ret)); } /*********************************************************************** * DUC tuning **********************************************************************/ double usrp1_codec_ctrl_impl::coarse_tune(double codec_rate, double freq) { double coarse_freq; double coarse_freq_1 = codec_rate / 8; double coarse_freq_2 = codec_rate / 4; double coarse_limit_1 = coarse_freq_1 / 2; double coarse_limit_2 = (coarse_freq_1 + coarse_freq_2) / 2; double max_freq = coarse_freq_2 + .09375 * codec_rate; if (freq < -max_freq) { return false; } else if (freq < -coarse_limit_2) { _ad9862_regs.neg_coarse_tune = ad9862_regs_t::NEG_COARSE_TUNE_NEG_SHIFT; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_FDAC_4; coarse_freq = -coarse_freq_2; } else if (freq < -coarse_limit_1) { _ad9862_regs.neg_coarse_tune = ad9862_regs_t::NEG_COARSE_TUNE_NEG_SHIFT; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_FDAC_8; coarse_freq = -coarse_freq_1; } else if (freq < coarse_limit_1) { _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_BYPASS; coarse_freq = 0; } else if (freq < coarse_limit_2) { _ad9862_regs.neg_coarse_tune = ad9862_regs_t::NEG_COARSE_TUNE_POS_SHIFT; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_FDAC_8; coarse_freq = coarse_freq_1; } else if (freq <= max_freq) { _ad9862_regs.neg_coarse_tune = ad9862_regs_t::NEG_COARSE_TUNE_POS_SHIFT; _ad9862_regs.coarse_mod = ad9862_regs_t::COARSE_MOD_FDAC_4; coarse_freq = coarse_freq_2; } else { return 0; } return coarse_freq; } double usrp1_codec_ctrl_impl::fine_tune(double codec_rate, double target_freq) { static const double scale_factor = std::pow(2.0, 24); boost::uint32_t freq_word = boost::uint32_t( boost::math::round(abs((target_freq / codec_rate) * scale_factor))); double actual_freq = freq_word * codec_rate / scale_factor; if (target_freq < 0) { _ad9862_regs.neg_fine_tune = ad9862_regs_t::NEG_FINE_TUNE_NEG_SHIFT; actual_freq = -actual_freq; } else { _ad9862_regs.neg_fine_tune = ad9862_regs_t::NEG_FINE_TUNE_POS_SHIFT; } _ad9862_regs.fine_mode = ad9862_regs_t::FINE_MODE_NCO; _ad9862_regs.ftw_23_16 = (freq_word >> 16) & 0xff; _ad9862_regs.ftw_15_8 = (freq_word >> 8) & 0xff; _ad9862_regs.ftw_7_0 = (freq_word >> 0) & 0xff; return actual_freq; } void usrp1_codec_ctrl_impl::set_duc_freq(double freq, double rate) { double codec_rate = rate * 2; //correct for outside of rate (wrap around) freq = std::fmod(freq, rate); if (std::abs(freq) > rate/2.0) freq -= boost::math::sign(freq)*rate; double coarse_freq = coarse_tune(codec_rate, freq); double fine_freq = fine_tune(codec_rate / 4, freq - coarse_freq); UHD_LOG << "ad9862 tuning result:" << std::endl << " requested: " << freq << std::endl << " actual: " << coarse_freq + fine_freq << std::endl << " coarse freq: " << coarse_freq << std::endl << " fine freq: " << fine_freq << std::endl << " codec rate: " << codec_rate << std::endl ; this->send_reg(20); this->send_reg(21); this->send_reg(22); this->send_reg(23); } void usrp1_codec_ctrl_impl::enable_tx_digital(bool enb){ _ad9862_regs.tx_digital_pd = (enb)? 0 : 1; this->send_reg(8); } /*********************************************************************** * Codec Control ADC buffer bypass * Disable this for AC-coupled daughterboards (TVRX) * By default it is initialized TRUE. **********************************************************************/ void usrp1_codec_ctrl_impl::bypass_adc_buffers(bool bypass) { _ad9862_regs.byp_buffer_a = bypass; _ad9862_regs.byp_buffer_b = bypass; this->send_reg(2); } /*********************************************************************** * Codec Control Make **********************************************************************/ usrp1_codec_ctrl::sptr usrp1_codec_ctrl::make(spi_iface::sptr iface, int spi_slave) { return sptr(new usrp1_codec_ctrl_impl(iface, spi_slave)); } uhd-3.5.5/host/lib/usrp/usrp1/codec_ctrl.hpp000066400000000000000000000056121224274632000207120ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP1_CODEC_CTRL_HPP #define INCLUDED_USRP1_CODEC_CTRL_HPP #include #include #include #include /*! * The usrp1 codec control: * - Init/power down codec. * - Read aux adc, write aux dac. */ class usrp1_codec_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; static const uhd::gain_range_t tx_pga_gain_range; static const uhd::gain_range_t rx_pga_gain_range; /*! * Make a new clock control object. * \param iface the spi iface object * \param spi_slave which spi device */ static sptr make(uhd::spi_iface::sptr iface, int spi_slave); //! aux adc identifier constants enum aux_adc_t{ AUX_ADC_A2 = 0xA2, AUX_ADC_A1 = 0xA1, AUX_ADC_B2 = 0xB2, AUX_ADC_B1 = 0xB1 }; /*! * Read an auxiliary adc: * The internals remember which aux adc was read last. * Therefore, the aux adc switch is only changed as needed. * \param which which of the 4 adcs * \return a value in volts */ virtual double read_aux_adc(aux_adc_t which) = 0; //! aux dac identifier constants enum aux_dac_t{ AUX_DAC_A = 0xA, AUX_DAC_B = 0xB, AUX_DAC_C = 0xC, AUX_DAC_D = 0xD }; /*! * Write an auxiliary dac. * \param which which of the 4 dacs * \param volts the level in in volts */ virtual void write_aux_dac(aux_dac_t which, double volts) = 0; //! Set the TX PGA gain virtual void set_tx_pga_gain(double gain) = 0; //! Get the TX PGA gain virtual double get_tx_pga_gain(void) = 0; //! Set the RX PGA gain ('A' or 'B') virtual void set_rx_pga_gain(double gain, char which) = 0; //! Get the RX PGA gain ('A' or 'B') virtual double get_rx_pga_gain(char which) = 0; //! Set the TX modulator frequency virtual void set_duc_freq(double freq, double rate) = 0; //! Enable or disable the digital part of the DAC virtual void enable_tx_digital(bool enb) = 0; //! Enable or disable ADC buffer bypass virtual void bypass_adc_buffers(bool bypass) = 0; }; #endif /* INCLUDED_USRP1_CODEC_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/usrp1/dboard_iface.cpp000066400000000000000000000345761224274632000212010ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp1_iface.hpp" #include "usrp1_impl.hpp" #include "codec_ctrl.hpp" #include #include #include #include #include #define FR_OE_0 5 #define FR_OE_1 6 #define FR_OE_2 7 #define FR_OE_3 8 #define FR_ATR_MASK_0 20 #define FR_ATR_TXVAL_0 21 #define FR_ATR_RXVAL_0 22 #define FR_ATR_MASK_1 23 #define FR_ATR_TXVAL_1 24 #define FR_ATR_RXVAL_1 25 #define FR_ATR_MASK_2 26 #define FR_ATR_TXVAL_2 27 #define FR_ATR_RXVAL_2 28 #define FR_ATR_MASK_3 29 #define FR_ATR_TXVAL_3 30 #define FR_ATR_RXVAL_3 31 #define FR_RX_A_REFCLK 41 #define FR_RX_B_REFCLK 43 // i/o registers for pins that go to daughterboards. // top 16 is a mask, low 16 is value #define FR_IO_0 9 // slot 0 #define FR_IO_1 10 #define FR_IO_2 11 #define FR_IO_3 12 #define SPI_ENABLE_TX_A 0x10 // select d'board TX A #define SPI_ENABLE_RX_A 0x20 // select d'board RX A #define SPI_ENABLE_TX_B 0x40 // select d'board TX B #define SPI_ENABLE_RX_B 0x80 // select d'board RX B using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; static const dboard_id_t tvrx_id(0x0040); class usrp1_dboard_iface : public dboard_iface { public: usrp1_dboard_iface(usrp1_iface::sptr iface, usrp1_codec_ctrl::sptr codec, usrp1_impl::dboard_slot_t dboard_slot, const double &master_clock_rate, const dboard_id_t &rx_dboard_id ): _dboard_slot(dboard_slot), _master_clock_rate(master_clock_rate), _rx_dboard_id(rx_dboard_id) { _iface = iface; _codec = codec; _dbsrx_classic_div = 1; //yes this is evil but it's necessary for TVRX to work on USRP1 if(_rx_dboard_id == tvrx_id) _codec->bypass_adc_buffers(false); //else _codec->bypass_adc_buffers(false); //don't think this is necessary } ~usrp1_dboard_iface() { /* NOP */ } special_props_t get_special_props() { special_props_t props; props.soft_clock_divider = true; props.mangle_i2c_addrs = (_dboard_slot == usrp1_impl::DBOARD_SLOT_B); return props; } void write_aux_dac(unit_t, aux_dac_t, double); double read_aux_adc(unit_t, aux_adc_t); void _set_pin_ctrl(unit_t, boost::uint16_t); void _set_atr_reg(unit_t, atr_reg_t, boost::uint16_t); void _set_gpio_ddr(unit_t, boost::uint16_t); void _set_gpio_out(unit_t, boost::uint16_t); void set_gpio_debug(unit_t, int); boost::uint16_t read_gpio(unit_t); void write_i2c(boost::uint8_t, const byte_vector_t &); byte_vector_t read_i2c(boost::uint8_t, size_t); void write_spi(unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits); boost::uint32_t read_write_spi(unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits); void set_clock_rate(unit_t, double); std::vector get_clock_rates(unit_t); double get_clock_rate(unit_t); void set_clock_enabled(unit_t, bool); double get_codec_rate(unit_t); private: usrp1_iface::sptr _iface; usrp1_codec_ctrl::sptr _codec; unsigned _dbsrx_classic_div; const usrp1_impl::dboard_slot_t _dboard_slot; const double &_master_clock_rate; const dboard_id_t _rx_dboard_id; }; /*********************************************************************** * Make Function **********************************************************************/ dboard_iface::sptr usrp1_impl::make_dboard_iface(usrp1_iface::sptr iface, usrp1_codec_ctrl::sptr codec, usrp1_impl::dboard_slot_t dboard_slot, const double &master_clock_rate, const dboard_id_t &rx_dboard_id ){ return dboard_iface::sptr(new usrp1_dboard_iface( iface, codec, dboard_slot, master_clock_rate, rx_dboard_id )); } /*********************************************************************** * Clock Rates **********************************************************************/ static const dboard_id_t dbsrx_classic_id(0x0002); /* * Daughterboard reference clock register * * Bit 7 - 1 turns on refclk, 0 allows IO use * Bits 6:0 - Divider value */ void usrp1_dboard_iface::set_clock_rate(unit_t unit, double rate) { assert_has(this->get_clock_rates(unit), rate, "dboard clock rate"); if (unit == UNIT_RX && _rx_dboard_id == dbsrx_classic_id){ _dbsrx_classic_div = size_t(_master_clock_rate/rate); switch(_dboard_slot){ case usrp1_impl::DBOARD_SLOT_A: _iface->poke32(FR_RX_A_REFCLK, (_dbsrx_classic_div & 0x7f) | 0x80); break; case usrp1_impl::DBOARD_SLOT_B: _iface->poke32(FR_RX_B_REFCLK, (_dbsrx_classic_div & 0x7f) | 0x80); break; } } } std::vector usrp1_dboard_iface::get_clock_rates(unit_t unit) { std::vector rates; if (unit == UNIT_RX && _rx_dboard_id == dbsrx_classic_id){ for (size_t div = 1; div <= 127; div++) rates.push_back(_master_clock_rate / div); } else{ rates.push_back(_master_clock_rate); } return rates; } double usrp1_dboard_iface::get_clock_rate(unit_t unit) { if (unit == UNIT_RX && _rx_dboard_id == dbsrx_classic_id){ return _master_clock_rate/_dbsrx_classic_div; } return _master_clock_rate; } void usrp1_dboard_iface::set_clock_enabled(unit_t, bool) { //TODO we can only enable for special case anyway... } double usrp1_dboard_iface::get_codec_rate(unit_t){ return _master_clock_rate; } /*********************************************************************** * GPIO **********************************************************************/ void usrp1_dboard_iface::_set_pin_ctrl(unit_t unit, boost::uint16_t value) { switch(unit) { case UNIT_RX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_ATR_MASK_1, value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_ATR_MASK_3, value); break; case UNIT_TX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_ATR_MASK_0, value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_ATR_MASK_2, value); break; } } void usrp1_dboard_iface::_set_gpio_ddr(unit_t unit, boost::uint16_t value) { switch(unit) { case UNIT_RX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_OE_1, 0xffff0000 | value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_OE_3, 0xffff0000 | value); break; case UNIT_TX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_OE_0, 0xffff0000 | value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_OE_2, 0xffff0000 | value); break; } } void usrp1_dboard_iface::_set_gpio_out(unit_t unit, boost::uint16_t value) { switch(unit) { case UNIT_RX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_IO_1, 0xffff0000 | value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_IO_3, 0xffff0000 | value); break; case UNIT_TX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_IO_0, 0xffff0000 | value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_IO_2, 0xffff0000 | value); break; } } void usrp1_dboard_iface::set_gpio_debug(unit_t, int) { /* NOP */ } boost::uint16_t usrp1_dboard_iface::read_gpio(unit_t unit) { boost::uint32_t out_value; if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) out_value = _iface->peek32(1); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) out_value = _iface->peek32(2); else UHD_THROW_INVALID_CODE_PATH(); switch(unit) { case UNIT_RX: return (boost::uint16_t)((out_value >> 16) & 0x0000ffff); case UNIT_TX: return (boost::uint16_t)((out_value >> 0) & 0x0000ffff); } UHD_ASSERT_THROW(false); } void usrp1_dboard_iface::_set_atr_reg(unit_t unit, atr_reg_t atr, boost::uint16_t value) { // Ignore unsupported states if ((atr == ATR_REG_IDLE) || (atr == ATR_REG_TX_ONLY)) return; if(atr == ATR_REG_RX_ONLY) { switch(unit) { case UNIT_RX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_ATR_RXVAL_1, value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_ATR_RXVAL_3, value); break; case UNIT_TX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_ATR_RXVAL_0, value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_ATR_RXVAL_2, value); break; } } else if (atr == ATR_REG_FULL_DUPLEX) { switch(unit) { case UNIT_RX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_ATR_TXVAL_1, value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_ATR_TXVAL_3, value); break; case UNIT_TX: if (_dboard_slot == usrp1_impl::DBOARD_SLOT_A) _iface->poke32(FR_ATR_TXVAL_0, value); else if (_dboard_slot == usrp1_impl::DBOARD_SLOT_B) _iface->poke32(FR_ATR_TXVAL_2, value); break; } } } /*********************************************************************** * SPI **********************************************************************/ /*! * Static function to convert a unit type to a spi slave device number. * \param unit the dboard interface unit type enum * \param slot the side (A or B) the dboard is attached * \return the slave device number */ static boost::uint32_t unit_to_otw_spi_dev(dboard_iface::unit_t unit, usrp1_impl::dboard_slot_t slot) { switch(unit) { case dboard_iface::UNIT_TX: if (slot == usrp1_impl::DBOARD_SLOT_A) return SPI_ENABLE_TX_A; else if (slot == usrp1_impl::DBOARD_SLOT_B) return SPI_ENABLE_TX_B; else break; case dboard_iface::UNIT_RX: if (slot == usrp1_impl::DBOARD_SLOT_A) return SPI_ENABLE_RX_A; else if (slot == usrp1_impl::DBOARD_SLOT_B) return SPI_ENABLE_RX_B; else break; } UHD_THROW_INVALID_CODE_PATH(); } void usrp1_dboard_iface::write_spi(unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits) { _iface->write_spi(unit_to_otw_spi_dev(unit, _dboard_slot), config, data, num_bits); } boost::uint32_t usrp1_dboard_iface::read_write_spi(unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits) { return _iface->read_spi(unit_to_otw_spi_dev(unit, _dboard_slot), config, data, num_bits); } /*********************************************************************** * I2C **********************************************************************/ void usrp1_dboard_iface::write_i2c(boost::uint8_t addr, const byte_vector_t &bytes) { return _iface->write_i2c(addr, bytes); } byte_vector_t usrp1_dboard_iface::read_i2c(boost::uint8_t addr, size_t num_bytes) { return _iface->read_i2c(addr, num_bytes); } /*********************************************************************** * Aux DAX/ADC **********************************************************************/ void usrp1_dboard_iface::write_aux_dac(dboard_iface::unit_t, aux_dac_t which, double value) { //same aux dacs for each unit static const uhd::dict which_to_aux_dac = map_list_of (AUX_DAC_A, usrp1_codec_ctrl::AUX_DAC_A) (AUX_DAC_B, usrp1_codec_ctrl::AUX_DAC_B) (AUX_DAC_C, usrp1_codec_ctrl::AUX_DAC_C) (AUX_DAC_D, usrp1_codec_ctrl::AUX_DAC_D); _codec->write_aux_dac(which_to_aux_dac[which], value); } double usrp1_dboard_iface::read_aux_adc(dboard_iface::unit_t unit, aux_adc_t which) { static const uhd::dict > unit_to_which_to_aux_adc = map_list_of(UNIT_RX, map_list_of (AUX_ADC_A, usrp1_codec_ctrl::AUX_ADC_A1) (AUX_ADC_B, usrp1_codec_ctrl::AUX_ADC_B1)) (UNIT_TX, map_list_of (AUX_ADC_A, usrp1_codec_ctrl::AUX_ADC_A2) (AUX_ADC_B, usrp1_codec_ctrl::AUX_ADC_B2)); return _codec->read_aux_adc(unit_to_which_to_aux_adc[unit][which]); } uhd-3.5.5/host/lib/usrp/usrp1/io_impl.cpp000066400000000000000000000623531224274632000202410ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "validate_subdev_spec.hpp" #define SRPH_DONT_CHECK_SEQUENCE #include "../../transport/super_recv_packet_handler.hpp" #define SSPH_DONT_PAD_TO_ONE #include "../../transport/super_send_packet_handler.hpp" #include "usrp1_calc_mux.hpp" #include "usrp1_impl.hpp" #include #include #include #include #include #include #include #include #include #include #define bmFR_RX_FORMAT_SHIFT_SHIFT 0 #define bmFR_RX_FORMAT_WIDTH_SHIFT 4 #define bmFR_TX_FORMAT_16_IQ 0 #define bmFR_RX_FORMAT_WANT_Q (0x1 << 9) #define FR_RX_FREQ_0 34 #define FR_RX_FREQ_1 35 #define FR_RX_FREQ_2 36 #define FR_RX_FREQ_3 37 #define FR_INTERP_RATE 32 #define FR_DECIM_RATE 33 #define FR_RX_MUX 38 #define FR_TX_MUX 39 #define FR_TX_FORMAT 48 #define FR_RX_FORMAT 49 #define FR_TX_SAMPLE_RATE_DIV 0 #define FR_RX_SAMPLE_RATE_DIV 1 #define GS_TX_UNDERRUN 0 #define GS_RX_OVERRUN 1 #define VRQ_GET_STATUS 0x80 using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; static const size_t alignment_padding = 512; /*********************************************************************** * Helper struct to associate an offset with a buffer **********************************************************************/ struct offset_send_buffer{ offset_send_buffer(void){ /* NOP */ } offset_send_buffer(managed_send_buffer::sptr buff, size_t offset = 0): buff(buff), offset(offset) { /* NOP */ } //member variables managed_send_buffer::sptr buff; size_t offset; /* in bytes */ }; /*********************************************************************** * Reusable managed send buffer to handle aligned commits **********************************************************************/ class offset_managed_send_buffer : public managed_send_buffer{ public: typedef boost::function commit_cb_type; offset_managed_send_buffer(const commit_cb_type &commit_cb): _commit_cb(commit_cb) { /* NOP */ } void release(void){ this->_commit_cb(_curr_buff, _next_buff, size()); } sptr get_new( offset_send_buffer &curr_buff, offset_send_buffer &next_buff ){ _curr_buff = curr_buff; _next_buff = next_buff; return make(this, _curr_buff.buff->cast() + _curr_buff.offset, _curr_buff.buff->size() - _curr_buff.offset ); } private: offset_send_buffer _curr_buff, _next_buff; commit_cb_type _commit_cb; }; /*********************************************************************** * BS VRT packer/unpacker functions (since samples don't have headers) **********************************************************************/ static void usrp1_bs_vrt_packer( boost::uint32_t *, vrt::if_packet_info_t &if_packet_info ){ if_packet_info.num_header_words32 = 0; if_packet_info.num_packet_words32 = if_packet_info.num_payload_words32; } static void usrp1_bs_vrt_unpacker( const boost::uint32_t *, vrt::if_packet_info_t &if_packet_info ){ if_packet_info.packet_type = vrt::if_packet_info_t::PACKET_TYPE_DATA; if_packet_info.num_payload_words32 = if_packet_info.num_packet_words32; if_packet_info.num_payload_bytes = if_packet_info.num_packet_words32*sizeof(boost::uint32_t); if_packet_info.num_header_words32 = 0; if_packet_info.packet_count = 0; if_packet_info.sob = false; if_packet_info.eob = false; if_packet_info.has_sid = false; if_packet_info.has_cid = false; if_packet_info.has_tsi = false; if_packet_info.has_tsf = false; if_packet_info.has_tlr = false; } /*********************************************************************** * IO Implementation Details **********************************************************************/ struct usrp1_impl::io_impl{ io_impl(zero_copy_if::sptr data_transport): data_transport(data_transport), curr_buff(offset_send_buffer(data_transport->get_send_buff())), omsb(boost::bind(&usrp1_impl::io_impl::commit_send_buff, this, _1, _2, _3)) { /* NOP */ } ~io_impl(void){ UHD_SAFE_CALL(flush_send_buff();) } zero_copy_if::sptr data_transport; //wrapper around the actual send buffer interface //all of this to ensure only aligned lengths are committed //NOTE: you must commit before getting a new buffer //since the vrt packet handler obeys this, we are ok offset_send_buffer curr_buff; offset_managed_send_buffer omsb; void commit_send_buff(offset_send_buffer&, offset_send_buffer&, size_t); void flush_send_buff(void); managed_send_buffer::sptr get_send_buff(double timeout){ //try to get a new managed buffer with timeout offset_send_buffer next_buff(data_transport->get_send_buff(timeout)); if (not next_buff.buff.get()) return managed_send_buffer::sptr(); /* propagate timeout here */ //make a new managed buffer with the offset buffs return omsb.get_new(curr_buff, next_buff); } task::sptr vandal_task; boost::system_time last_send_time; }; /*! * Perform an actual commit on the send buffer: * Copy the remainder of alignment to the next buffer. * Commit the current buffer at multiples of alignment. */ void usrp1_impl::io_impl::commit_send_buff( offset_send_buffer &curr, offset_send_buffer &next, size_t num_bytes ){ //total number of bytes now in the current buffer size_t bytes_in_curr_buffer = curr.offset + num_bytes; //calculate how many to commit and remainder size_t num_bytes_remaining = bytes_in_curr_buffer % alignment_padding; size_t num_bytes_to_commit = bytes_in_curr_buffer - num_bytes_remaining; //copy the remainder into the next buffer std::memcpy( next.buff->cast() + next.offset, curr.buff->cast() + num_bytes_to_commit, num_bytes_remaining ); //update the offset into the next buffer next.offset += num_bytes_remaining; //commit the current buffer curr.buff->commit(num_bytes_to_commit); //store the next buffer for the next call curr_buff = next; } /*! * Flush the current buffer by padding out to alignment and committing. */ void usrp1_impl::io_impl::flush_send_buff(void){ //calculate the number of bytes to alignment size_t bytes_to_pad = (-1*curr_buff.offset)%alignment_padding; //send at least alignment_padding to guarantee zeros are sent if (bytes_to_pad == 0) bytes_to_pad = alignment_padding; //get the buffer, clear, and commit (really current buffer) managed_send_buffer::sptr buff = this->get_send_buff(.1); if (buff.get() != NULL){ std::memset(buff->cast(), 0, bytes_to_pad); buff->commit(bytes_to_pad); } } /*********************************************************************** * Initialize internals within this file **********************************************************************/ void usrp1_impl::io_init(void){ _io_impl = UHD_PIMPL_MAKE(io_impl, (_data_transport)); //init as disabled, then call the real function (uses restore) this->enable_rx(false); this->enable_tx(false); rx_stream_on_off(false); tx_stream_on_off(false); _io_impl->flush_send_buff(); //create a new vandal thread to poll xerflow conditions _io_impl->vandal_task = task::make(boost::bind( &usrp1_impl::vandal_conquest_loop, this )); } void usrp1_impl::rx_stream_on_off(bool enb){ this->restore_rx(enb); //drain any junk in the receive transport after stop streaming command while(not enb and _data_transport->get_recv_buff().get() != NULL){ /* NOP */ } } void usrp1_impl::tx_stream_on_off(bool enb){ _io_impl->last_send_time = boost::get_system_time(); if (_tx_enabled and not enb) _io_impl->flush_send_buff(); this->restore_tx(enb); } /*! * Casually poll the overflow and underflow registers. * On an underflow, push an async message into the queue and print. * On an overflow, interleave an inline message into recv and print. * This procedure creates "soft" inline and async user messages. */ void usrp1_impl::vandal_conquest_loop(void){ //initialize the async metadata async_metadata_t async_metadata; async_metadata.channel = 0; async_metadata.has_time_spec = true; async_metadata.event_code = async_metadata_t::EVENT_CODE_UNDERFLOW; //initialize the inline metadata rx_metadata_t inline_metadata; inline_metadata.has_time_spec = true; inline_metadata.error_code = rx_metadata_t::ERROR_CODE_OVERFLOW; //start the polling loop... try{ while (not boost::this_thread::interruption_requested()){ boost::uint8_t underflow = 0, overflow = 0; //shutoff transmit if it has been too long since send() was called if (_tx_enabled and (boost::get_system_time() - _io_impl->last_send_time) > boost::posix_time::milliseconds(100)){ this->tx_stream_on_off(false); } //always poll regardless of enabled so we can clear the conditions _fx2_ctrl->usrp_control_read( VRQ_GET_STATUS, 0, GS_TX_UNDERRUN, &underflow, sizeof(underflow) ); _fx2_ctrl->usrp_control_read( VRQ_GET_STATUS, 0, GS_RX_OVERRUN, &overflow, sizeof(overflow) ); //handle message generation for xerflow conditions if (_tx_enabled and underflow){ async_metadata.time_spec = _soft_time_ctrl->get_time(); _soft_time_ctrl->get_async_queue().push_with_pop_on_full(async_metadata); UHD_MSG(fastpath) << "U"; } if (_rx_enabled and overflow){ inline_metadata.time_spec = _soft_time_ctrl->get_time(); _soft_time_ctrl->get_inline_queue().push_with_pop_on_full(inline_metadata); UHD_MSG(fastpath) << "O"; } boost::this_thread::sleep(boost::posix_time::milliseconds(50)); }} catch(const boost::thread_interrupted &){} //normal exit condition catch(const std::exception &e){ UHD_MSG(error) << "The vandal caught an unexpected exception " << e.what() << std::endl; } } /*********************************************************************** * RX streamer wrapper that talks to soft time control **********************************************************************/ class usrp1_recv_packet_streamer : public sph::recv_packet_handler, public rx_streamer{ public: usrp1_recv_packet_streamer(const size_t max_num_samps, soft_time_ctrl::sptr stc){ _max_num_samps = max_num_samps; _stc = stc; } size_t get_num_channels(void) const{ return this->size(); } size_t get_max_num_samps(void) const{ return _max_num_samps; } size_t recv( const rx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, uhd::rx_metadata_t &metadata, const double timeout, const bool one_packet ){ //interleave a "soft" inline message into the receive stream: if (_stc->get_inline_queue().pop_with_haste(metadata)) return 0; size_t num_samps_recvd = sph::recv_packet_handler::recv( buffs, nsamps_per_buff, metadata, timeout, one_packet ); return _stc->recv_post(metadata, num_samps_recvd); } private: size_t _max_num_samps; soft_time_ctrl::sptr _stc; }; /*********************************************************************** * TX streamer wrapper that talks to soft time control **********************************************************************/ class usrp1_send_packet_streamer : public sph::send_packet_handler, public tx_streamer{ public: usrp1_send_packet_streamer(const size_t max_num_samps, soft_time_ctrl::sptr stc, boost::function tx_enb_fcn){ _max_num_samps = max_num_samps; this->set_max_samples_per_packet(_max_num_samps); _stc = stc; _tx_enb_fcn = tx_enb_fcn; } size_t get_num_channels(void) const{ return this->size(); } size_t get_max_num_samps(void) const{ return _max_num_samps; } size_t send( const tx_streamer::buffs_type &buffs, const size_t nsamps_per_buff, const uhd::tx_metadata_t &metadata, const double timeout_ ){ double timeout = timeout_; //rw copy _stc->send_pre(metadata, timeout); _tx_enb_fcn(true); //always enable (it will do the right thing) size_t num_samps_sent = sph::send_packet_handler::send( buffs, nsamps_per_buff, metadata, timeout ); //handle eob flag (commit the buffer, //disable the DACs) //check num samps sent to avoid flush on incomplete/timeout if (metadata.end_of_burst and num_samps_sent == nsamps_per_buff){ async_metadata_t metadata; metadata.channel = 0; metadata.has_time_spec = true; metadata.time_spec = _stc->get_time(); metadata.event_code = async_metadata_t::EVENT_CODE_BURST_ACK; _stc->get_async_queue().push_with_pop_on_full(metadata); _tx_enb_fcn(false); } return num_samps_sent; } private: size_t _max_num_samps; soft_time_ctrl::sptr _stc; boost::function _tx_enb_fcn; }; /*********************************************************************** * Properties callback methods below **********************************************************************/ void usrp1_impl::update_rx_subdev_spec(const uhd::usrp::subdev_spec_t &spec){ //sanity checking validate_subdev_spec(_tree, spec, "rx"); _rx_subdev_spec = spec; //shadow //set the mux and set the number of rx channels std::vector mapping; BOOST_FOREACH(const subdev_spec_pair_t &pair, spec){ const std::string conn = _tree->access(str(boost::format( "/mboards/0/dboards/%s/rx_frontends/%s/connection" ) % pair.db_name % pair.sd_name)).get(); mapping.push_back(std::make_pair(pair.db_name, conn)); } bool s = this->disable_rx(); _iface->poke32(FR_RX_MUX, calc_rx_mux(mapping)); this->restore_rx(s); } void usrp1_impl::update_tx_subdev_spec(const uhd::usrp::subdev_spec_t &spec){ //sanity checking validate_subdev_spec(_tree, spec, "tx"); _tx_subdev_spec = spec; //shadow //set the mux and set the number of tx channels std::vector mapping; BOOST_FOREACH(const subdev_spec_pair_t &pair, spec){ const std::string conn = _tree->access(str(boost::format( "/mboards/0/dboards/%s/tx_frontends/%s/connection" ) % pair.db_name % pair.sd_name)).get(); mapping.push_back(std::make_pair(pair.db_name, conn)); } bool s = this->disable_tx(); _iface->poke32(FR_TX_MUX, calc_tx_mux(mapping)); this->restore_tx(s); } void usrp1_impl::update_tick_rate(const double rate){ //updating this variable should: //update dboard iface -> it has a reference //update dsp freq bounds -> publisher _master_clock_rate = rate; } uhd::meta_range_t usrp1_impl::get_rx_dsp_host_rates(void){ meta_range_t range; const size_t div = this->has_rx_halfband()? 2 : 1; for (int rate = 256; rate >= 4; rate -= div){ range.push_back(range_t(_master_clock_rate/rate)); } return range; } uhd::meta_range_t usrp1_impl::get_tx_dsp_host_rates(void){ meta_range_t range; const size_t div = this->has_tx_halfband()? 2 : 1; for (int rate = 256; rate >= 8; rate -= div){ range.push_back(range_t(_master_clock_rate/rate)); } return range; } double usrp1_impl::update_rx_samp_rate(size_t dspno, const double samp_rate){ const size_t div = this->has_rx_halfband()? 2 : 1; const size_t rate = boost::math::iround(_master_clock_rate/this->get_rx_dsp_host_rates().clip(samp_rate, true)); if (rate < 8 and this->has_rx_halfband()) UHD_MSG(warning) << "USRP1 cannot achieve decimations below 8 when the half-band filter is present.\n" "The usrp1_fpga_4rx.rbf file is a special FPGA image without RX half-band filters.\n" "To load this image, set the device address key/value pair: fpga=usrp1_fpga_4rx.rbf\n" << std::endl; if (dspno == 0){ //only care if dsp0 is set since its homogeneous bool s = this->disable_rx(); _iface->poke32(FR_RX_SAMPLE_RATE_DIV, div - 1); _iface->poke32(FR_DECIM_RATE, rate/div - 1); this->restore_rx(s); //update the streamer if created boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_rx_streamer.lock()); if (my_streamer.get() != NULL){ my_streamer->set_samp_rate(_master_clock_rate / rate); } } return _master_clock_rate / rate; } double usrp1_impl::update_tx_samp_rate(size_t dspno, const double samp_rate){ const size_t div = this->has_tx_halfband()? 4 : 2; //doubled for codec interp const size_t rate = boost::math::iround(_master_clock_rate/this->get_tx_dsp_host_rates().clip(samp_rate, true)); if (dspno == 0){ //only care if dsp0 is set since its homogeneous bool s = this->disable_tx(); _iface->poke32(FR_TX_SAMPLE_RATE_DIV, div - 1); _iface->poke32(FR_INTERP_RATE, rate/div - 1); this->restore_tx(s); //update the streamer if created boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_tx_streamer.lock()); if (my_streamer.get() != NULL){ my_streamer->set_samp_rate(_master_clock_rate / rate); } } return _master_clock_rate / rate; } void usrp1_impl::update_rates(void){ const fs_path mb_path = "/mboards/0"; this->update_tick_rate(_master_clock_rate); BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){ _tree->access(mb_path / "rx_dsps" / name / "rate" / "value").update(); } BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "tx_dsps")){ _tree->access(mb_path / "tx_dsps" / name / "rate" / "value").update(); } } double usrp1_impl::update_rx_dsp_freq(const size_t dspno, const double freq_){ //correct for outside of rate (wrap around) double freq = std::fmod(freq_, _master_clock_rate); if (std::abs(freq) > _master_clock_rate/2.0) freq -= boost::math::sign(freq)*_master_clock_rate; //calculate the freq register word (signed) UHD_ASSERT_THROW(std::abs(freq) <= _master_clock_rate/2.0); static const double scale_factor = std::pow(2.0, 32); const boost::int32_t freq_word = boost::int32_t(boost::math::round((freq / _master_clock_rate) * scale_factor)); static const boost::uint32_t dsp_index_to_reg_val[4] = { FR_RX_FREQ_0, FR_RX_FREQ_1, FR_RX_FREQ_2, FR_RX_FREQ_3 }; _iface->poke32(dsp_index_to_reg_val[dspno], freq_word); return (double(freq_word) / scale_factor) * _master_clock_rate; } double usrp1_impl::update_tx_dsp_freq(const size_t dspno, const double freq){ const subdev_spec_pair_t pair = _tx_subdev_spec.at(dspno); //determine the connection type and hence, the sign const std::string conn = _tree->access(str(boost::format( "/mboards/0/dboards/%s/tx_frontends/%s/connection" ) % pair.db_name % pair.sd_name)).get(); double sign = (conn == "I" or conn == "IQ")? +1.0 : -1.0; //map this DSP's subdev spec to a particular codec chip _dbc[pair.db_name].codec->set_duc_freq(sign*freq, _master_clock_rate); return freq; //assume infinite precision } /*********************************************************************** * Async Data **********************************************************************/ bool usrp1_impl::recv_async_msg( async_metadata_t &async_metadata, double timeout ){ boost::this_thread::disable_interruption di; //disable because the wait can throw return _soft_time_ctrl->get_async_queue().pop_with_timed_wait(async_metadata, timeout); } /*********************************************************************** * Receive streamer **********************************************************************/ rx_streamer::sptr usrp1_impl::get_rx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels.clear(); //NOTE: we have no choice about the channel mapping for (size_t ch = 0; ch < _rx_subdev_spec.size(); ch++){ args.channels.push_back(ch); } if (args.otw_format == "sc16"){ _iface->poke32(FR_RX_FORMAT, 0 | (0 << bmFR_RX_FORMAT_SHIFT_SHIFT) | (16 << bmFR_RX_FORMAT_WIDTH_SHIFT) | bmFR_RX_FORMAT_WANT_Q ); } else if (args.otw_format == "sc8"){ _iface->poke32(FR_RX_FORMAT, 0 | (8 << bmFR_RX_FORMAT_SHIFT_SHIFT) | (8 << bmFR_RX_FORMAT_WIDTH_SHIFT) | bmFR_RX_FORMAT_WANT_Q ); } else{ throw uhd::value_error("USRP1 RX cannot handle requested wire format: " + args.otw_format); } //calculate packet size const size_t bpp = _data_transport->get_recv_frame_size()/args.channels.size(); const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp, _soft_time_ctrl); //init some streamer stuff my_streamer->set_tick_rate(_master_clock_rate); my_streamer->set_vrt_unpacker(&usrp1_bs_vrt_unpacker); my_streamer->set_xport_chan_get_buff(0, boost::bind( &uhd::transport::zero_copy_if::get_recv_buff, _io_impl->data_transport, _1 )); //set the converter uhd::convert::id_type id; id.input_format = args.otw_format + "_item16_usrp1"; id.num_inputs = 1; id.output_format = args.cpu_format; id.num_outputs = args.channels.size(); my_streamer->set_converter(id); //special scale factor change for sc8 if (args.otw_format == "sc8") my_streamer->set_scale_factor(1.0/127); //save as weak ptr for update access _rx_streamer = my_streamer; //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } /*********************************************************************** * Transmit streamer **********************************************************************/ tx_streamer::sptr usrp1_impl::get_tx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels.clear(); //NOTE: we have no choice about the channel mapping for (size_t ch = 0; ch < _tx_subdev_spec.size(); ch++){ args.channels.push_back(ch); } if (args.otw_format != "sc16"){ throw uhd::value_error("USRP1 TX cannot handle requested wire format: " + args.otw_format); } _iface->poke32(FR_TX_FORMAT, bmFR_TX_FORMAT_16_IQ); //calculate packet size size_t bpp = _data_transport->get_send_frame_size()/args.channels.size(); bpp -= alignment_padding - 1; //minus the max remainder after LUT commit const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); //make the new streamer given the samples per packet boost::function tx_fcn = boost::bind(&usrp1_impl::tx_stream_on_off, this, _1); boost::shared_ptr my_streamer = boost::make_shared(spp, _soft_time_ctrl, tx_fcn); //init some streamer stuff my_streamer->set_tick_rate(_master_clock_rate); my_streamer->set_vrt_packer(&usrp1_bs_vrt_packer); my_streamer->set_xport_chan_get_buff(0, boost::bind( &usrp1_impl::io_impl::get_send_buff, _io_impl.get(), _1 )); //set the converter uhd::convert::id_type id; id.input_format = args.cpu_format; id.num_inputs = args.channels.size(); id.output_format = args.otw_format + "_item16_usrp1"; id.num_outputs = 1; my_streamer->set_converter(id); //save as weak ptr for update access _tx_streamer = my_streamer; //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } uhd-3.5.5/host/lib/usrp/usrp1/soft_time_ctrl.cpp000066400000000000000000000205361224274632000216230ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "soft_time_ctrl.hpp" #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; namespace pt = boost::posix_time; static const time_spec_t TWIDDLE(0.0011); /*********************************************************************** * Soft time control implementation **********************************************************************/ class soft_time_ctrl_impl : public soft_time_ctrl{ public: soft_time_ctrl_impl(const cb_fcn_type &stream_on_off): _nsamps_remaining(0), _stream_mode(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS), _cmd_queue(2), _async_msg_queue(1000), _inline_msg_queue(1000), _stream_on_off(stream_on_off) { //synchronously spawn a new thread _recv_cmd_task = task::make(boost::bind(&soft_time_ctrl_impl::recv_cmd_task, this)); //initialize the time to something this->set_time(time_spec_t(0.0)); } /******************************************************************* * Time control ******************************************************************/ void set_time(const time_spec_t &time){ boost::mutex::scoped_lock lock(_update_mutex); _time_offset = time_spec_t::get_system_time() - time; } time_spec_t get_time(void){ boost::mutex::scoped_lock lock(_update_mutex); return time_now(); } UHD_INLINE time_spec_t time_now(void){ //internal get time without scoped lock return time_spec_t::get_system_time() - _time_offset; } UHD_INLINE void sleep_until_time( boost::mutex::scoped_lock &lock, const time_spec_t &time ){ boost::condition_variable cond; //use a condition variable to unlock, sleep, lock double seconds_to_sleep = (time - time_now()).get_real_secs(); cond.timed_wait(lock, pt::microseconds(long(seconds_to_sleep*1e6))); } /******************************************************************* * Receive control ******************************************************************/ size_t recv_post(rx_metadata_t &md, const size_t nsamps){ boost::mutex::scoped_lock lock(_update_mutex); //Since it timed out on the receive, check for inline messages... //Must do a post check because recv() will not wake up for a message. if (md.error_code == rx_metadata_t::ERROR_CODE_TIMEOUT){ if (_inline_msg_queue.pop_with_haste(md)) return 0; } //load the metadata with the expected time md.has_time_spec = true; md.time_spec = time_now(); //none of the stuff below matters in continuous streaming mode if (_stream_mode == stream_cmd_t::STREAM_MODE_START_CONTINUOUS) return nsamps; //When to stop streaming: //The samples have been received and the stream mode is non-continuous. //Rewrite the sample count to clip to the requested number of samples. if (_nsamps_remaining <= nsamps) switch(_stream_mode){ case stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_MORE:{ rx_metadata_t metadata; metadata.has_time_spec = true; metadata.time_spec = this->time_now(); metadata.error_code = rx_metadata_t::ERROR_CODE_BROKEN_CHAIN; _inline_msg_queue.push_with_pop_on_full(metadata); } //continue to next case... case stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE: md.end_of_burst = true; this->issue_stream_cmd(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS); return _nsamps_remaining; default: break; } //update the consumed samples _nsamps_remaining -= nsamps; return nsamps; } void issue_stream_cmd(const stream_cmd_t &cmd){ _cmd_queue.push_with_wait(boost::make_shared(cmd)); } void stream_on_off(bool enb){ _stream_on_off(enb); _nsamps_remaining = 0; } /******************************************************************* * Transmit control ******************************************************************/ void send_pre(const tx_metadata_t &md, double &timeout){ if (not md.has_time_spec) return; boost::mutex::scoped_lock lock(_update_mutex); time_spec_t time_at(md.time_spec - TWIDDLE); //handle late packets if (time_at < time_now()){ async_metadata_t metadata; metadata.channel = 0; metadata.has_time_spec = true; metadata.time_spec = this->time_now(); metadata.event_code = async_metadata_t::EVENT_CODE_TIME_ERROR; _async_msg_queue.push_with_pop_on_full(metadata); return; } timeout -= (time_at - time_now()).get_real_secs(); sleep_until_time(lock, time_at); } /******************************************************************* * Thread control ******************************************************************/ void recv_cmd_handle_cmd(const stream_cmd_t &cmd){ boost::mutex::scoped_lock lock(_update_mutex); //handle the stream at time by sleeping if (not cmd.stream_now){ time_spec_t time_at(cmd.time_spec - TWIDDLE); if (time_at < time_now()){ rx_metadata_t metadata; metadata.has_time_spec = true; metadata.time_spec = this->time_now(); metadata.error_code = rx_metadata_t::ERROR_CODE_LATE_COMMAND; _inline_msg_queue.push_with_pop_on_full(metadata); this->issue_stream_cmd(stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS); return; } else{ sleep_until_time(lock, time_at); } } //When to stop streaming: //Stop streaming when the command is a stop and streaming. if (cmd.stream_mode == stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS and _stream_mode != stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS ) stream_on_off(false); //When to start streaming: //Start streaming when the command is not a stop and not streaming. if (cmd.stream_mode != stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS and _stream_mode == stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS ) stream_on_off(true); //update the state _nsamps_remaining += cmd.num_samps; _stream_mode = cmd.stream_mode; } void recv_cmd_task(void){ //task is looped boost::shared_ptr cmd; _cmd_queue.pop_with_wait(cmd); recv_cmd_handle_cmd(*cmd); } bounded_buffer &get_async_queue(void){ return _async_msg_queue; } bounded_buffer &get_inline_queue(void){ return _inline_msg_queue; } void stop(void){ _recv_cmd_task.reset(); } private: boost::mutex _update_mutex; size_t _nsamps_remaining; stream_cmd_t::stream_mode_t _stream_mode; time_spec_t _time_offset; bounded_buffer > _cmd_queue; bounded_buffer _async_msg_queue; bounded_buffer _inline_msg_queue; const cb_fcn_type _stream_on_off; task::sptr _recv_cmd_task; }; /*********************************************************************** * Soft time control factor **********************************************************************/ soft_time_ctrl::sptr soft_time_ctrl::make(const cb_fcn_type &stream_on_off){ return sptr(new soft_time_ctrl_impl(stream_on_off)); } uhd-3.5.5/host/lib/usrp/usrp1/soft_time_ctrl.hpp000066400000000000000000000051631224274632000216270ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_LIBUHD_USRP_USRP1_SOFT_TIME_CTRL_HPP #define INCLUDED_LIBUHD_USRP_USRP1_SOFT_TIME_CTRL_HPP #include #include #include #include #include #include #include namespace uhd{ namespace usrp{ /*! * The soft time control emulates some of the * advanced streaming capabilities of the later USRP models. * Soft time control uses the system time to emulate * timed transmits, timed receive commands, device time, * and inline and async error messages. */ class soft_time_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; typedef boost::function cb_fcn_type; /*! * Make a new soft time control. * \param stream_on_off a function to enable/disable rx * \return a new soft time control object */ static sptr make(const cb_fcn_type &stream_on_off); //! Set the current time virtual void set_time(const time_spec_t &time) = 0; //! Get the current time virtual time_spec_t get_time(void) = 0; //! Call after the internal recv function virtual size_t recv_post(rx_metadata_t &md, const size_t nsamps) = 0; //! Call before the internal send function virtual void send_pre(const tx_metadata_t &md, double &timeout) = 0; //! Issue a stream command to receive virtual void issue_stream_cmd(const stream_cmd_t &cmd) = 0; //! Get access to a buffer of async metadata virtual transport::bounded_buffer &get_async_queue(void) = 0; //! Get access to a buffer of inline metadata virtual transport::bounded_buffer &get_inline_queue(void) = 0; //! Stops threads before deconstruction to avoid race conditions virtual void stop(void) = 0; }; }} //namespace #endif /* INCLUDED_LIBUHD_USRP_USRP1_SOFT_TIME_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/usrp1/usrp1_calc_mux.hpp000066400000000000000000000152141224274632000215350ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #ifndef INCLUDED_USRP1_CALC_MUX_HPP #define INCLUDED_USRP1_CALC_MUX_HPP //db_name, conn_type for the mux calculations below... typedef std::pair mapping_pair_t; /*********************************************************************** * Calculate the RX mux value: * The I and Q mux values are intentionally reversed to flip I and Q * to account for the reversal in the type conversion routines. **********************************************************************/ static int calc_rx_mux_pair(int adc_for_i, int adc_for_q){ return (adc_for_i << 0) | (adc_for_q << 2); } /*! * 3 2 1 0 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-----------------------+-------+-------+-------+-------+-+-----+ * | must be zero | Q3| I3| Q2| I2| Q1| I1| Q0| I0|Z| NCH | * +-----------------------+-------+-------+-------+-------+-+-----+ */ static boost::uint32_t calc_rx_mux(const std::vector &mapping){ //create look-up-table for mapping dboard name and connection type to ADC flags static const int ADC0 = 0, ADC1 = 1, ADC2 = 2, ADC3 = 3; static const uhd::dict > name_to_conn_to_flag = boost::assign::map_list_of ("A", boost::assign::map_list_of ("IQ", calc_rx_mux_pair(ADC0, ADC1)) //I and Q ("QI", calc_rx_mux_pair(ADC1, ADC0)) //I and Q ("I", calc_rx_mux_pair(ADC0, ADC0)) //I and Q (Q identical but ignored Z=1) ("Q", calc_rx_mux_pair(ADC1, ADC1)) //I and Q (Q identical but ignored Z=1) ) ("B", boost::assign::map_list_of ("IQ", calc_rx_mux_pair(ADC2, ADC3)) //I and Q ("QI", calc_rx_mux_pair(ADC3, ADC2)) //I and Q ("I", calc_rx_mux_pair(ADC2, ADC2)) //I and Q (Q identical but ignored Z=1) ("Q", calc_rx_mux_pair(ADC3, ADC3)) //I and Q (Q identical but ignored Z=1) ) ; //extract the number of channels const size_t nchan = mapping.size(); //calculate the channel flags int channel_flags = 0; size_t num_reals = 0, num_quads = 0; BOOST_FOREACH(const mapping_pair_t &pair, uhd::reversed(mapping)){ const std::string name = pair.first, conn = pair.second; if (conn == "IQ" or conn == "QI") num_quads++; if (conn == "I" or conn == "Q") num_reals++; channel_flags = (channel_flags << 4) | name_to_conn_to_flag[name][conn]; } //calculate Z: // for all real sources: Z = 1 // for all quadrature sources: Z = 0 // for mixed sources: warning + Z = 0 int Z = (num_quads > 0)? 0 : 1; if (num_quads != 0 and num_reals != 0) UHD_MSG(warning) << boost::format( "Mixing real and quadrature rx subdevices is not supported.\n" "The Q input to the real source(s) will be non-zero.\n" ); //calculate the rx mux value return ((channel_flags & 0xffff) << 4) | ((Z & 0x1) << 3) | ((nchan & 0x7) << 0); } /*********************************************************************** * Calculate the TX mux value: * The I and Q mux values are intentionally reversed to flip I and Q * to account for the reversal in the type conversion routines. **********************************************************************/ static int calc_tx_mux_pair(int chn_for_i, int chn_for_q){ return (chn_for_i << 0) | (chn_for_q << 4); } /*! * 3 2 1 0 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-----------------------+-------+-------+-------+-------+-+-----+ * | | DAC1Q | DAC1I | DAC0Q | DAC0I |0| NCH | * +-----------------------------------------------+-------+-+-----+ */ static boost::uint32_t calc_tx_mux(const std::vector &mapping){ //create look-up-table for mapping channel number and connection type to flags static const int ENB = 1 << 3, CHAN_I0 = 0, CHAN_Q0 = 1, CHAN_I1 = 2, CHAN_Q1 = 3; static const uhd::dict > chan_to_conn_to_flag = boost::assign::map_list_of (0, boost::assign::map_list_of ("IQ", calc_tx_mux_pair(CHAN_I0 | ENB, CHAN_Q0 | ENB)) ("QI", calc_tx_mux_pair(CHAN_Q0 | ENB, CHAN_I0 | ENB)) ("I", calc_tx_mux_pair(CHAN_I0 | ENB, 0 )) ("Q", calc_tx_mux_pair(0, CHAN_I0 | ENB)) ) (1, boost::assign::map_list_of ("IQ", calc_tx_mux_pair(CHAN_I1 | ENB, CHAN_Q1 | ENB)) ("QI", calc_tx_mux_pair(CHAN_Q1 | ENB, CHAN_I1 | ENB)) ("I", calc_tx_mux_pair(CHAN_I1 | ENB, 0 )) ("Q", calc_tx_mux_pair(0, CHAN_I1 | ENB)) ) ; //extract the number of channels size_t nchan = mapping.size(); //calculate the channel flags int channel_flags = 0, chan = 0; uhd::dict slot_to_chan_count = boost::assign::map_list_of("A", 0)("B", 0); BOOST_FOREACH(const mapping_pair_t &pair, mapping){ const std::string name = pair.first, conn = pair.second; //combine the channel flags: shift for slot A vs B if (name == "A") channel_flags |= chan_to_conn_to_flag[chan][conn] << 0; if (name == "B") channel_flags |= chan_to_conn_to_flag[chan][conn] << 8; //sanity check, only 1 channel per slot slot_to_chan_count[name]++; if (slot_to_chan_count[name] > 1) throw uhd::value_error( "cannot assign dboard slot to multiple channels: " + name ); //increment for the next channel chan++; } //calculate the tx mux value return ((channel_flags & 0xffff) << 4) | ((nchan & 0x7) << 0); } #endif /* INCLUDED_USRP1_CALC_MUX_HPP */ uhd-3.5.5/host/lib/usrp/usrp1/usrp1_iface.cpp000066400000000000000000000174351224274632000210130ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp1_iface.hpp" #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; class usrp1_iface_impl : public usrp1_iface{ public: /******************************************************************* * Structors ******************************************************************/ usrp1_iface_impl(uhd::usrp::fx2_ctrl::sptr ctrl_transport) { _ctrl_transport = ctrl_transport; } ~usrp1_iface_impl(void) { /* NOP */ } /******************************************************************* * Peek and Poke ******************************************************************/ void poke32(boost::uint32_t addr, boost::uint32_t value) { boost::uint32_t swapped = uhd::htonx(value); UHD_LOGV(always) << "poke32(" << std::dec << std::setw(2) << addr << ", 0x" << std::hex << std::setw(8) << value << ")" << std::endl ; boost::uint8_t w_index_h = SPI_ENABLE_FPGA & 0xff; boost::uint8_t w_index_l = (SPI_FMT_MSB | SPI_FMT_HDR_1) & 0xff; int ret =_ctrl_transport->usrp_control_write( VRQ_SPI_WRITE, addr & 0x7f, (w_index_h << 8) | (w_index_l << 0), (unsigned char*) &swapped, sizeof(boost::uint32_t)); if (ret < 0) throw uhd::io_error("USRP1: failed control write"); } boost::uint32_t peek32(boost::uint32_t addr) { UHD_LOGV(always) << "peek32(" << std::dec << std::setw(2) << addr << ")" << std::endl ; boost::uint32_t value_out; boost::uint8_t w_index_h = SPI_ENABLE_FPGA & 0xff; boost::uint8_t w_index_l = (SPI_FMT_MSB | SPI_FMT_HDR_1) & 0xff; int ret = _ctrl_transport->usrp_control_read( VRQ_SPI_READ, 0x80 | (addr & 0x7f), (w_index_h << 8) | (w_index_l << 0), (unsigned char*) &value_out, sizeof(boost::uint32_t)); if (ret < 0) throw uhd::io_error("USRP1: failed control read"); return uhd::ntohx(value_out); } void poke16(boost::uint32_t, boost::uint16_t) { throw uhd::not_implemented_error("Unhandled command poke16()"); } boost::uint16_t peek16(boost::uint32_t) { throw uhd::not_implemented_error("Unhandled command peek16()"); return 0; } /******************************************************************* * I2C ******************************************************************/ void write_i2c(boost::uint8_t addr, const byte_vector_t &bytes){ return _ctrl_transport->write_i2c(addr, bytes); } byte_vector_t read_i2c(boost::uint8_t addr, size_t num_bytes){ return _ctrl_transport->read_i2c(addr, num_bytes); } /******************************************************************* * SPI * * For non-readback transactions use the SPI_WRITE command, which is * simpler and uses the USB control buffer for OUT data. No data * needs to be returned. * * For readback transactions use SPI_TRANSACT, which places up to * 4 bytes of OUT data in the device request fields and uses the * control buffer for IN data. ******************************************************************/ boost::uint32_t transact_spi(int which_slave, const spi_config_t &, boost::uint32_t bits, size_t num_bits, bool readback) { UHD_LOGV(always) << "transact_spi: " << std::endl << " slave: " << which_slave << std::endl << " bits: " << bits << std::endl << " num_bits: " << num_bits << std::endl << " readback: " << readback << std::endl ; UHD_ASSERT_THROW((num_bits <= 32) && !(num_bits % 8)); size_t num_bytes = num_bits / 8; if (readback) { unsigned char buff[4] = { (bits >> 0) & 0xff, (bits >> 8) & 0xff, (bits >> 16) & 0xff, (bits >> 24) & 0xff }; //conditions where there are two header bytes if (num_bytes >= 3 and buff[num_bytes-1] != 0 and buff[num_bytes-2] != 0 and buff[num_bytes-3] == 0){ if (int(num_bytes-2) != _ctrl_transport->usrp_control_read( VRQ_SPI_READ, (buff[num_bytes-1] << 8) | (buff[num_bytes-2] << 0), (which_slave << 8) | SPI_FMT_MSB | SPI_FMT_HDR_2, buff, num_bytes-2 )) throw uhd::io_error("USRP1: failed SPI readback transaction"); } //conditions where there is one header byte else if (num_bytes >= 2 and buff[num_bytes-1] != 0 and buff[num_bytes-2] == 0){ if (int(num_bytes-1) != _ctrl_transport->usrp_control_read( VRQ_SPI_READ, buff[num_bytes-1], (which_slave << 8) | SPI_FMT_MSB | SPI_FMT_HDR_1, buff, num_bytes-1 )) throw uhd::io_error("USRP1: failed SPI readback transaction"); } else{ throw uhd::io_error("USRP1: invalid input data for SPI readback"); } boost::uint32_t val = (((boost::uint32_t)buff[0]) << 0) | (((boost::uint32_t)buff[1]) << 8) | (((boost::uint32_t)buff[2]) << 16) | (((boost::uint32_t)buff[3]) << 24); return val; } else { // Byteswap on num_bytes unsigned char buff[4] = { 0 }; for (size_t i = 1; i <= num_bytes; i++) buff[num_bytes - i] = (bits >> ((i - 1) * 8)) & 0xff; boost::uint8_t w_index_h = which_slave & 0xff; boost::uint8_t w_index_l = (SPI_FMT_MSB | SPI_FMT_HDR_0) & 0xff; int ret =_ctrl_transport->usrp_control_write( VRQ_SPI_WRITE, 0x00, (w_index_h << 8) | (w_index_l << 0), buff, num_bytes); if (ret < 0) throw uhd::io_error("USRP1: failed SPI transaction"); return 0; } } private: uhd::usrp::fx2_ctrl::sptr _ctrl_transport; }; /*********************************************************************** * Public Make Function **********************************************************************/ usrp1_iface::sptr usrp1_iface::make(uhd::usrp::fx2_ctrl::sptr ctrl_transport) { return sptr(new usrp1_iface_impl(ctrl_transport)); } uhd-3.5.5/host/lib/usrp/usrp1/usrp1_iface.hpp000066400000000000000000000034671224274632000210200ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP1_IFACE_HPP #define INCLUDED_USRP1_IFACE_HPP #include "fx2_ctrl.hpp" #include "wb_iface.hpp" #include #include #include #define SPI_ENABLE_FPGA 0x01 #define SPI_FMT_HDR_MASK (3 << 5) #define SPI_FMT_HDR_0 (0 << 5) #define SPI_FMT_HDR_1 (1 << 5) #define SPI_FMT_HDR_2 (2 << 5) #define SPI_FMT_LSB (1 << 7) #define SPI_FMT_MSB (0 << 7) #define SPI_FMT_xSB_MASK (1 << 7) #define VRQ_SPI_READ 0x82 #define VRQ_SPI_WRITE 0x09 #define VRQ_FW_COMPAT 0x83 /*! * The usrp1 interface class: * Provides a set of functions to implementation layer. * Including spi, peek, poke, control... */ class usrp1_iface : public wb_iface, public uhd::i2c_iface, public uhd::spi_iface, boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Make a new usrp1 interface with the control transport. * \param ctrl_transport the usrp controller object * \return a new usrp1 interface object */ static sptr make(uhd::usrp::fx2_ctrl::sptr ctrl_transport); }; #endif /* INCLUDED_USRP1_IFACE_HPP */ uhd-3.5.5/host/lib/usrp/usrp1/usrp1_impl.cpp000066400000000000000000000546271224274632000207110ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp1_impl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; const boost::uint16_t USRP1_VENDOR_ID = 0xfffe; const boost::uint16_t USRP1_PRODUCT_ID = 0x0002; const boost::uint16_t FX2_VENDOR_ID = 0x04b4; const boost::uint16_t FX2_PRODUCT_ID = 0x8613; static const boost::posix_time::milliseconds REENUMERATION_TIMEOUT_MS(3000); const std::vector usrp1_impl::_dboard_slots = boost::assign::list_of (usrp1_impl::DBOARD_SLOT_A)(usrp1_impl::DBOARD_SLOT_B) ; /*********************************************************************** * Discovery **********************************************************************/ static device_addrs_t usrp1_find(const device_addr_t &hint) { device_addrs_t usrp1_addrs; //return an empty list of addresses when type is set to non-usrp1 if (hint.has_key("type") and hint["type"] != "usrp1") return usrp1_addrs; //Return an empty list of addresses when an address is specified, //since an address is intended for a different, non-USB, device. if (hint.has_key("addr")) return usrp1_addrs; unsigned int vid, pid; if(hint.has_key("vid") && hint.has_key("pid") && hint.has_key("type") && hint["type"] == "usrp1") { sscanf(hint.get("vid").c_str(), "%x", &vid); sscanf(hint.get("pid").c_str(), "%x", &pid); } else { vid = USRP1_VENDOR_ID; pid = USRP1_PRODUCT_ID; } // Important note: // The get device list calls are nested inside the for loop. // This allows the usb guts to decontruct when not in use, // so that re-enumeration after fw load can occur successfully. // This requirement is a courtesy of libusb1.0 on windows. //find the usrps and load firmware size_t found = 0; BOOST_FOREACH(usb_device_handle::sptr handle, usb_device_handle::get_device_list(vid, pid)) { //extract the firmware path for the USRP1 std::string usrp1_fw_image; try{ usrp1_fw_image = find_image_path(hint.get("fw", "usrp1_fw.ihx")); } catch(...){ UHD_MSG(warning) << boost::format("Could not locate USRP1 firmware. %s") % print_images_error(); } UHD_LOG << "USRP1 firmware image: " << usrp1_fw_image << std::endl; usb_control::sptr control; try{control = usb_control::make(handle, 0);} catch(const uhd::exception &){continue;} //ignore claimed fx2_ctrl::make(control)->usrp_load_firmware(usrp1_fw_image); found++; } //get descriptors again with serial number, but using the initialized VID/PID now since we have firmware vid = USRP1_VENDOR_ID; pid = USRP1_PRODUCT_ID; const boost::system_time timeout_time = boost::get_system_time() + REENUMERATION_TIMEOUT_MS; //search for the device until found or timeout while (boost::get_system_time() < timeout_time and usrp1_addrs.empty() and found != 0) { BOOST_FOREACH(usb_device_handle::sptr handle, usb_device_handle::get_device_list(vid, pid)) { usb_control::sptr control; try{control = usb_control::make(handle, 0);} catch(const uhd::exception &){continue;} //ignore claimed fx2_ctrl::sptr fx2_ctrl = fx2_ctrl::make(control); const mboard_eeprom_t mb_eeprom(*fx2_ctrl, USRP1_EEPROM_MAP_KEY); device_addr_t new_addr; new_addr["type"] = "usrp1"; new_addr["name"] = mb_eeprom["name"]; new_addr["serial"] = handle->get_serial(); //this is a found usrp1 when the hint serial and name match or blank if ( (not hint.has_key("name") or hint["name"] == new_addr["name"]) and (not hint.has_key("serial") or hint["serial"] == new_addr["serial"]) ){ usrp1_addrs.push_back(new_addr); } } } return usrp1_addrs; } /*********************************************************************** * Make **********************************************************************/ static device::sptr usrp1_make(const device_addr_t &device_addr){ return device::sptr(new usrp1_impl(device_addr)); } UHD_STATIC_BLOCK(register_usrp1_device){ device::register_device(&usrp1_find, &usrp1_make); } /*********************************************************************** * Structors **********************************************************************/ usrp1_impl::usrp1_impl(const device_addr_t &device_addr){ UHD_MSG(status) << "Opening a USRP1 device..." << std::endl; //extract the FPGA path for the USRP1 std::string usrp1_fpga_image = find_image_path( device_addr.get("fpga", "usrp1_fpga.rbf") ); UHD_LOG << "USRP1 FPGA image: " << usrp1_fpga_image << std::endl; //try to match the given device address with something on the USB bus std::vector device_list = usb_device_handle::get_device_list(USRP1_VENDOR_ID, USRP1_PRODUCT_ID); //locate the matching handle in the device list usb_device_handle::sptr handle; BOOST_FOREACH(usb_device_handle::sptr dev_handle, device_list) { if (dev_handle->get_serial() == device_addr["serial"]){ handle = dev_handle; break; } } UHD_ASSERT_THROW(handle.get() != NULL); //better be found //////////////////////////////////////////////////////////////////// // Create controller objects //////////////////////////////////////////////////////////////////// //usb_control::sptr usb_ctrl = usb_control::make(handle); _fx2_ctrl = fx2_ctrl::make(usb_control::make(handle, 0)); _fx2_ctrl->usrp_load_fpga(usrp1_fpga_image); _fx2_ctrl->usrp_init(); _data_transport = usb_zero_copy::make( handle, // identifier 2, 6, // IN interface, endpoint 1, 2, // OUT interface, endpoint device_addr // param hints ); _iface = usrp1_iface::make(_fx2_ctrl); _soft_time_ctrl = soft_time_ctrl::make( boost::bind(&usrp1_impl::rx_stream_on_off, this, _1) ); _dbc["A"]; _dbc["B"]; //ensure that keys exist // Normal mode with no loopback or Rx counting _iface->poke32(FR_MODE, 0x00000000); _iface->poke32(FR_DEBUG_EN, 0x00000000); UHD_LOG << "USRP1 Capabilities" << std::endl << " number of duc's: " << get_num_ddcs() << std::endl << " number of ddc's: " << get_num_ducs() << std::endl << " rx halfband: " << has_rx_halfband() << std::endl << " tx halfband: " << has_tx_halfband() << std::endl ; //////////////////////////////////////////////////////////////////// // Initialize the properties tree //////////////////////////////////////////////////////////////////// _rx_dc_offset_shadow = 0; _tree = property_tree::make(); _tree->create("/name").set("USRP1 Device"); const fs_path mb_path = "/mboards/0"; _tree->create(mb_path / "name").set("USRP1"); _tree->create(mb_path / "load_eeprom") .subscribe(boost::bind(&fx2_ctrl::usrp_load_eeprom, _fx2_ctrl, _1)); //////////////////////////////////////////////////////////////////// // create user-defined control objects //////////////////////////////////////////////////////////////////// _tree->create >(mb_path / "user" / "regs") .subscribe(boost::bind(&usrp1_impl::set_reg, this, _1)); //////////////////////////////////////////////////////////////////// // setup the mboard eeprom //////////////////////////////////////////////////////////////////// const mboard_eeprom_t mb_eeprom(*_fx2_ctrl, USRP1_EEPROM_MAP_KEY); _tree->create(mb_path / "eeprom") .set(mb_eeprom) .subscribe(boost::bind(&usrp1_impl::set_mb_eeprom, this, _1)); //////////////////////////////////////////////////////////////////// // create clock control objects //////////////////////////////////////////////////////////////////// _master_clock_rate = 64e6; if (device_addr.has_key("mcr")){ try{ _master_clock_rate = boost::lexical_cast(device_addr["mcr"]); } catch(const std::exception &e){ UHD_MSG(error) << "Error parsing FPGA clock rate from device address: " << e.what() << std::endl; } } else if (not mb_eeprom["mcr"].empty()){ try{ _master_clock_rate = boost::lexical_cast(mb_eeprom["mcr"]); } catch(const std::exception &e){ UHD_MSG(error) << "Error parsing FPGA clock rate from EEPROM: " << e.what() << std::endl; } } UHD_MSG(status) << boost::format("Using FPGA clock rate of %fMHz...") % (_master_clock_rate/1e6) << std::endl; _tree->create(mb_path / "tick_rate") .subscribe(boost::bind(&usrp1_impl::update_tick_rate, this, _1)) .set(_master_clock_rate); //////////////////////////////////////////////////////////////////// // create codec control objects //////////////////////////////////////////////////////////////////// BOOST_FOREACH(const std::string &db, _dbc.keys()){ _dbc[db].codec = usrp1_codec_ctrl::make(_iface, (db == "A")? SPI_ENABLE_CODEC_A : SPI_ENABLE_CODEC_B); const fs_path rx_codec_path = mb_path / "rx_codecs" / db; const fs_path tx_codec_path = mb_path / "tx_codecs" / db; _tree->create(rx_codec_path / "name").set("ad9522"); _tree->create(rx_codec_path / "gains/pga/range").set(usrp1_codec_ctrl::rx_pga_gain_range); _tree->create(rx_codec_path / "gains/pga/value") .coerce(boost::bind(&usrp1_impl::update_rx_codec_gain, this, db, _1)) .set(0.0); _tree->create(tx_codec_path / "name").set("ad9522"); _tree->create(tx_codec_path / "gains/pga/range").set(usrp1_codec_ctrl::tx_pga_gain_range); _tree->create(tx_codec_path / "gains/pga/value") .subscribe(boost::bind(&usrp1_codec_ctrl::set_tx_pga_gain, _dbc[db].codec, _1)) .publish(boost::bind(&usrp1_codec_ctrl::get_tx_pga_gain, _dbc[db].codec)) .set(0.0); } //////////////////////////////////////////////////////////////////// // and do the misc mboard sensors //////////////////////////////////////////////////////////////////// //none for now... _tree->create(mb_path / "sensors"); //phony property so this dir exists //////////////////////////////////////////////////////////////////// // create frontend control objects //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "rx_subdev_spec") .set(subdev_spec_t()) .subscribe(boost::bind(&usrp1_impl::update_rx_subdev_spec, this, _1)); _tree->create(mb_path / "tx_subdev_spec") .set(subdev_spec_t()) .subscribe(boost::bind(&usrp1_impl::update_tx_subdev_spec, this, _1)); BOOST_FOREACH(const std::string &db, _dbc.keys()){ const fs_path rx_fe_path = mb_path / "rx_frontends" / db; _tree->create >(rx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&usrp1_impl::set_rx_dc_offset, this, db, _1)) .set(std::complex(0.0, 0.0)); _tree->create(rx_fe_path / "dc_offset" / "enable") .subscribe(boost::bind(&usrp1_impl::set_enb_rx_dc_offset, this, db, _1)) .set(true); } //////////////////////////////////////////////////////////////////// // create rx dsp control objects //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "rx_dsps"); //dummy in case we have none for (size_t dspno = 0; dspno < get_num_ddcs(); dspno++){ fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno); _tree->create(rx_dsp_path / "rate/range") .publish(boost::bind(&usrp1_impl::get_rx_dsp_host_rates, this)); _tree->create(rx_dsp_path / "rate/value") .set(1e6) //some default rate .coerce(boost::bind(&usrp1_impl::update_rx_samp_rate, this, dspno, _1)); _tree->create(rx_dsp_path / "freq/value") .coerce(boost::bind(&usrp1_impl::update_rx_dsp_freq, this, dspno, _1)); _tree->create(rx_dsp_path / "freq/range") .publish(boost::bind(&usrp1_impl::get_rx_dsp_freq_range, this)); _tree->create(rx_dsp_path / "stream_cmd"); if (dspno == 0){ //only subscribe the callback for dspno 0 since it will stream all dsps _tree->access(rx_dsp_path / "stream_cmd") .subscribe(boost::bind(&soft_time_ctrl::issue_stream_cmd, _soft_time_ctrl, _1)); } } //////////////////////////////////////////////////////////////////// // create tx dsp control objects //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "tx_dsps"); //dummy in case we have none for (size_t dspno = 0; dspno < get_num_ducs(); dspno++){ fs_path tx_dsp_path = mb_path / str(boost::format("tx_dsps/%u") % dspno); _tree->create(tx_dsp_path / "rate/range") .publish(boost::bind(&usrp1_impl::get_tx_dsp_host_rates, this)); _tree->create(tx_dsp_path / "rate/value") .set(1e6) //some default rate .coerce(boost::bind(&usrp1_impl::update_tx_samp_rate, this, dspno, _1)); _tree->create(tx_dsp_path / "freq/value") .coerce(boost::bind(&usrp1_impl::update_tx_dsp_freq, this, dspno, _1)); _tree->create(tx_dsp_path / "freq/range") .publish(boost::bind(&usrp1_impl::get_tx_dsp_freq_range, this)); } //////////////////////////////////////////////////////////////////// // create time control objects //////////////////////////////////////////////////////////////////// _tree->create(mb_path / "time/now") .publish(boost::bind(&soft_time_ctrl::get_time, _soft_time_ctrl)) .subscribe(boost::bind(&soft_time_ctrl::set_time, _soft_time_ctrl, _1)); _tree->create >(mb_path / "clock_source/options").set(std::vector(1, "internal")); _tree->create >(mb_path / "time_source/options").set(std::vector(1, "none")); _tree->create(mb_path / "clock_source/value").set("internal"); _tree->create(mb_path / "time_source/value").set("none"); //////////////////////////////////////////////////////////////////// // create dboard control objects //////////////////////////////////////////////////////////////////// BOOST_FOREACH(const std::string &db, _dbc.keys()){ //read the dboard eeprom to extract the dboard ids dboard_eeprom_t rx_db_eeprom, tx_db_eeprom, gdb_eeprom; rx_db_eeprom.load(*_fx2_ctrl, (db == "A")? (I2C_ADDR_RX_A) : (I2C_ADDR_RX_B)); tx_db_eeprom.load(*_fx2_ctrl, (db == "A")? (I2C_ADDR_TX_A) : (I2C_ADDR_TX_B)); gdb_eeprom.load(*_fx2_ctrl, (db == "A")? (I2C_ADDR_TX_A ^ 5) : (I2C_ADDR_TX_B ^ 5)); //disable rx dc offset if LFRX if (rx_db_eeprom.id == 0x000f) _tree->access(mb_path / "rx_frontends" / db / "dc_offset" / "enable").set(false); //create the properties and register subscribers _tree->create(mb_path / "dboards" / db/ "rx_eeprom") .set(rx_db_eeprom) .subscribe(boost::bind(&usrp1_impl::set_db_eeprom, this, db, "rx", _1)); _tree->create(mb_path / "dboards" / db/ "tx_eeprom") .set(tx_db_eeprom) .subscribe(boost::bind(&usrp1_impl::set_db_eeprom, this, db, "tx", _1)); _tree->create(mb_path / "dboards" / db/ "gdb_eeprom") .set(gdb_eeprom) .subscribe(boost::bind(&usrp1_impl::set_db_eeprom, this, db, "gdb", _1)); //create a new dboard interface and manager _dbc[db].dboard_iface = make_dboard_iface( _iface, _dbc[db].codec, (db == "A")? DBOARD_SLOT_A : DBOARD_SLOT_B, _master_clock_rate, rx_db_eeprom.id ); _tree->create(mb_path / "dboards" / db/ "iface").set(_dbc[db].dboard_iface); _dbc[db].dboard_manager = dboard_manager::make( rx_db_eeprom.id, tx_db_eeprom.id, gdb_eeprom.id, _dbc[db].dboard_iface, _tree->subtree(mb_path / "dboards" / db) ); //init the subdev specs if we have a dboard (wont leave this loop empty) if (rx_db_eeprom.id != dboard_id_t::none() or _rx_subdev_spec.empty()){ _rx_subdev_spec = subdev_spec_t(db + ":" + _tree->list(mb_path / "dboards" / db / "rx_frontends").at(0)); } if (tx_db_eeprom.id != dboard_id_t::none() or _tx_subdev_spec.empty()){ _tx_subdev_spec = subdev_spec_t(db + ":" + _tree->list(mb_path / "dboards" / db / "tx_frontends").at(0)); } } //initialize io handling this->io_init(); //////////////////////////////////////////////////////////////////// // do some post-init tasks //////////////////////////////////////////////////////////////////// this->update_rates(); //reset cordic rates and their properties to zero BOOST_FOREACH(const std::string &name, _tree->list(mb_path / "rx_dsps")){ _tree->access(mb_path / "rx_dsps" / name / "freq" / "value").set(0.0); } if (_tree->list(mb_path / "rx_dsps").size() > 0) _tree->access(mb_path / "rx_subdev_spec").set(_rx_subdev_spec); if (_tree->list(mb_path / "tx_dsps").size() > 0) _tree->access(mb_path / "tx_subdev_spec").set(_tx_subdev_spec); } usrp1_impl::~usrp1_impl(void){ UHD_SAFE_CALL( this->enable_rx(false); this->enable_tx(false); ) _soft_time_ctrl->stop(); //stops cmd task before proceeding _io_impl.reset(); //stops vandal before other stuff gets deconstructed } /*! * Capabilities Register * * 3 2 1 0 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * +-----------------------------------------------+-+-----+-+-----+ * | Reserved |T|DUCs |R|DDCs | * +-----------------------------------------------+-+-----+-+-----+ */ size_t usrp1_impl::get_num_ddcs(void){ boost::uint32_t regval = _iface->peek32(FR_RB_CAPS); return (regval >> 0) & 0x0007; } size_t usrp1_impl::get_num_ducs(void){ boost::uint32_t regval = _iface->peek32(FR_RB_CAPS); return (regval >> 4) & 0x0007; } bool usrp1_impl::has_rx_halfband(void){ boost::uint32_t regval = _iface->peek32(FR_RB_CAPS); return (regval >> 3) & 0x0001; } bool usrp1_impl::has_tx_halfband(void){ boost::uint32_t regval = _iface->peek32(FR_RB_CAPS); return (regval >> 7) & 0x0001; } /*********************************************************************** * Properties callback methods below **********************************************************************/ void usrp1_impl::set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &mb_eeprom){ mb_eeprom.commit(*_fx2_ctrl, USRP1_EEPROM_MAP_KEY); } void usrp1_impl::set_db_eeprom(const std::string &db, const std::string &type, const uhd::usrp::dboard_eeprom_t &db_eeprom){ if (type == "rx") db_eeprom.store(*_fx2_ctrl, (db == "A")? (I2C_ADDR_RX_A) : (I2C_ADDR_RX_B)); if (type == "tx") db_eeprom.store(*_fx2_ctrl, (db == "A")? (I2C_ADDR_TX_A) : (I2C_ADDR_TX_B)); if (type == "gdb") db_eeprom.store(*_fx2_ctrl, (db == "A")? (I2C_ADDR_TX_A ^ 5) : (I2C_ADDR_TX_B ^ 5)); } double usrp1_impl::update_rx_codec_gain(const std::string &db, const double gain){ //set gain on both I and Q, readback on one //TODO in the future, gains should have individual control _dbc[db].codec->set_rx_pga_gain(gain, 'A'); _dbc[db].codec->set_rx_pga_gain(gain, 'B'); return _dbc[db].codec->get_rx_pga_gain('A'); } uhd::meta_range_t usrp1_impl::get_rx_dsp_freq_range(void){ return meta_range_t(-_master_clock_rate/2, +_master_clock_rate/2); } uhd::meta_range_t usrp1_impl::get_tx_dsp_freq_range(void){ //magic scalar comes from codec control: return meta_range_t(-_master_clock_rate*0.6875, +_master_clock_rate*0.6875); } void usrp1_impl::set_enb_rx_dc_offset(const std::string &db, const bool enb){ const size_t shift = (db == "A")? 0 : 2; _rx_dc_offset_shadow &= ~(0x3 << shift); //clear bits _rx_dc_offset_shadow |= ((enb)? 0x3 : 0x0) << shift; _iface->poke32(FR_DC_OFFSET_CL_EN, _rx_dc_offset_shadow & 0xf); } std::complex usrp1_impl::set_rx_dc_offset(const std::string &db, const std::complex &offset){ const boost::int32_t i_off = boost::math::iround(offset.real() * (1ul << 31)); const boost::int32_t q_off = boost::math::iround(offset.imag() * (1ul << 31)); if (db == "A"){ _iface->poke32(FR_ADC_OFFSET_0, i_off); _iface->poke32(FR_ADC_OFFSET_1, q_off); } if (db == "B"){ _iface->poke32(FR_ADC_OFFSET_2, i_off); _iface->poke32(FR_ADC_OFFSET_3, q_off); } return std::complex(double(i_off) * (1ul << 31), double(q_off) * (1ul << 31)); } void usrp1_impl::set_reg(const std::pair ®) { _iface->poke32(reg.first, reg.second); } uhd-3.5.5/host/lib/usrp/usrp1/usrp1_impl.hpp000066400000000000000000000145471224274632000207130ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp1_iface.hpp" #include "codec_ctrl.hpp" #include "soft_time_ctrl.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef INCLUDED_USRP1_IMPL_HPP #define INCLUDED_USRP1_IMPL_HPP static const std::string USRP1_EEPROM_MAP_KEY = "B000"; #define FR_RB_CAPS 3 #define FR_MODE 13 #define FR_DEBUG_EN 14 #define FR_DC_OFFSET_CL_EN 15 #define FR_ADC_OFFSET_0 16 #define FR_ADC_OFFSET_1 17 #define FR_ADC_OFFSET_2 18 #define FR_ADC_OFFSET_3 19 #define I2C_DEV_EEPROM 0x50 #define I2C_ADDR_BOOT (I2C_DEV_EEPROM | 0x0) #define I2C_ADDR_TX_A (I2C_DEV_EEPROM | 0x4) #define I2C_ADDR_RX_A (I2C_DEV_EEPROM | 0x5) #define I2C_ADDR_TX_B (I2C_DEV_EEPROM | 0x6) #define I2C_ADDR_RX_B (I2C_DEV_EEPROM | 0x7) #define SPI_ENABLE_CODEC_A 0x02 #define SPI_ENABLE_CODEC_B 0x04 /*! * USRP1 implementation guts: * The implementation details are encapsulated here. * Handles properties on the mboard, dboard, dsps... */ class usrp1_impl : public uhd::device { public: //! used everywhere to differentiate slots/sides... enum dboard_slot_t{ DBOARD_SLOT_A = 'A', DBOARD_SLOT_B = 'B' }; //and a way to enumerate through a list of the above... static const std::vector _dboard_slots; //structors usrp1_impl(const uhd::device_addr_t &); ~usrp1_impl(void); //the io interface uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t &args); uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t &args); bool recv_async_msg(uhd::async_metadata_t &, double); private: uhd::property_tree::sptr _tree; //device properties interface uhd::property_tree::sptr get_tree(void) const{ return _tree; } //controllers uhd::usrp::fx2_ctrl::sptr _fx2_ctrl; usrp1_iface::sptr _iface; uhd::usrp::soft_time_ctrl::sptr _soft_time_ctrl; uhd::transport::usb_zero_copy::sptr _data_transport; struct db_container_type{ usrp1_codec_ctrl::sptr codec; uhd::usrp::dboard_iface::sptr dboard_iface; uhd::usrp::dboard_manager::sptr dboard_manager; }; uhd::dict _dbc; double _master_clock_rate; //clock rate shadow //weak pointers to streamers for update purposes boost::weak_ptr _rx_streamer; boost::weak_ptr _tx_streamer; void set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &); void set_db_eeprom(const std::string &, const std::string &, const uhd::usrp::dboard_eeprom_t &); double update_rx_codec_gain(const std::string &, const double); //sets A and B at once void update_rx_subdev_spec(const uhd::usrp::subdev_spec_t &); void update_tx_subdev_spec(const uhd::usrp::subdev_spec_t &); double update_rx_samp_rate(size_t dspno, const double); double update_tx_samp_rate(size_t dspno, const double); void update_rates(void); double update_rx_dsp_freq(const size_t, const double); double update_tx_dsp_freq(const size_t, const double); void update_tick_rate(const double rate); uhd::meta_range_t get_rx_dsp_freq_range(void); uhd::meta_range_t get_tx_dsp_freq_range(void); uhd::meta_range_t get_rx_dsp_host_rates(void); uhd::meta_range_t get_tx_dsp_host_rates(void); size_t _rx_dc_offset_shadow; void set_enb_rx_dc_offset(const std::string &db, const bool); std::complex set_rx_dc_offset(const std::string &db, const std::complex &); static uhd::usrp::dboard_iface::sptr make_dboard_iface( usrp1_iface::sptr, usrp1_codec_ctrl::sptr, dboard_slot_t, const double &, const uhd::usrp::dboard_id_t & ); //handle io stuff UHD_PIMPL_DECL(io_impl) _io_impl; void io_init(void); void rx_stream_on_off(bool); void tx_stream_on_off(bool); void handle_overrun(size_t); //channel mapping shadows uhd::usrp::subdev_spec_t _rx_subdev_spec, _tx_subdev_spec; //capabilities size_t get_num_ducs(void); size_t get_num_ddcs(void); bool has_rx_halfband(void); bool has_tx_halfband(void); void vandal_conquest_loop(void); void set_reg(const std::pair ®); //handle the enables bool _rx_enabled, _tx_enabled; void enable_rx(bool enb){ _rx_enabled = enb; _fx2_ctrl->usrp_rx_enable(enb); } void enable_tx(bool enb){ _tx_enabled = enb; _fx2_ctrl->usrp_tx_enable(enb); BOOST_FOREACH(const std::string &key, _dbc.keys()) { _dbc[key].codec->enable_tx_digital(enb); } } //conditionally disable and enable rx bool disable_rx(void){ if (_rx_enabled){ enable_rx(false); return true; } return false; } void restore_rx(bool last){ if (last != _rx_enabled){ enable_rx(last); } } //conditionally disable and enable tx bool disable_tx(void){ if (_tx_enabled){ enable_tx(false); return true; } return false; } void restore_tx(bool last){ if (last != _tx_enabled){ enable_tx(last); } } }; #endif /* INCLUDED_USRP1_IMPL_HPP */ uhd-3.5.5/host/lib/usrp/usrp2/000077500000000000000000000000001224274632000160755ustar00rootroot00000000000000uhd-3.5.5/host/lib/usrp/usrp2/CMakeLists.txt000066400000000000000000000030471224274632000206410ustar00rootroot00000000000000# # Copyright 2011-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## ######################################################################## # Conditionally configure the USRP2 support ######################################################################## LIBUHD_REGISTER_COMPONENT("USRP2" ENABLE_USRP2 ON "ENABLE_LIBUHD" OFF) IF(ENABLE_USRP2) LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/clock_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/codec_ctrl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dboard_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/io_impl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/usrp2_iface.cpp ${CMAKE_CURRENT_SOURCE_DIR}/usrp2_impl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/usrp2_fifo_ctrl.cpp ) ENDIF(ENABLE_USRP2) uhd-3.5.5/host/lib/usrp/usrp2/clock_ctrl.cpp000066400000000000000000000367261224274632000207360ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "clock_ctrl.hpp" #include "ad9510_regs.hpp" #include "usrp2_regs.hpp" //spi slave constants #include "usrp2_clk_regs.hpp" #include #include #include #include #include #include using namespace uhd; static const bool enb_test_clk = false; /*! * A usrp2 clock control specific to the ad9510 ic. */ class usrp2_clock_ctrl_impl : public usrp2_clock_ctrl{ public: usrp2_clock_ctrl_impl(usrp2_iface::sptr iface, uhd::spi_iface::sptr spiface){ _iface = iface; _spiface = spiface; clk_regs = usrp2_clk_regs_t(_iface->get_rev()); _ad9510_regs.cp_current_setting = ad9510_regs_t::CP_CURRENT_SETTING_3_0MA; this->write_reg(clk_regs.pll_3); // Setup the clock registers to 100MHz: // This was already done by the firmware (or the host couldnt communicate). // We could remove this part, and just leave it to the firmware. // But why not leave it in for those who want to mess with clock settings? // 100mhz = 10mhz/R * (P*B + A) _ad9510_regs.pll_power_down = ad9510_regs_t::PLL_POWER_DOWN_NORMAL; _ad9510_regs.prescaler_value = ad9510_regs_t::PRESCALER_VALUE_DIV2; this->write_reg(clk_regs.pll_4); _ad9510_regs.acounter = 0; this->write_reg(clk_regs.acounter); _ad9510_regs.bcounter_msb = 0; _ad9510_regs.bcounter_lsb = 5; this->write_reg(clk_regs.bcounter_msb); this->write_reg(clk_regs.bcounter_lsb); _ad9510_regs.ref_counter_msb = 0; _ad9510_regs.ref_counter_lsb = 1; // r divider = 1 this->write_reg(clk_regs.ref_counter_msb); this->write_reg(clk_regs.ref_counter_lsb); /* regs will be updated in commands below */ this->enable_external_ref(false); this->enable_rx_dboard_clock(false); this->enable_tx_dboard_clock(false); this->enable_mimo_clock_out(false); /* private clock enables, must be set here */ this->enable_dac_clock(true); this->enable_adc_clock(true); this->enable_test_clock(enb_test_clk); } ~usrp2_clock_ctrl_impl(void){UHD_SAFE_CALL( //power down clock outputs this->enable_external_ref(false); this->enable_rx_dboard_clock(false); this->enable_tx_dboard_clock(false); this->enable_dac_clock(false); this->enable_adc_clock(false); this->enable_mimo_clock_out(false); this->enable_test_clock(false); )} void enable_mimo_clock_out(bool enb){ //calculate the low and high dividers size_t divider = size_t(this->get_master_clock_rate()/10e6); size_t high = divider/2; size_t low = divider - high; switch(clk_regs.exp){ case 2: //U2 rev 3 _ad9510_regs.power_down_lvpecl_out2 = enb? ad9510_regs_t::POWER_DOWN_LVPECL_OUT2_NORMAL : ad9510_regs_t::POWER_DOWN_LVPECL_OUT2_SAFE_PD; _ad9510_regs.output_level_lvpecl_out2 = ad9510_regs_t::OUTPUT_LEVEL_LVPECL_OUT2_810MV; //set the registers (divider - 1) _ad9510_regs.divider_low_cycles_out2 = low - 1; _ad9510_regs.divider_high_cycles_out2 = high - 1; _ad9510_regs.bypass_divider_out2 = 0; break; case 5: //U2 rev 4 _ad9510_regs.power_down_lvds_cmos_out5 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out5 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT5_LVDS; _ad9510_regs.output_level_lvds_out5 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT5_1_75MA; //set the registers (divider - 1) _ad9510_regs.divider_low_cycles_out5 = low - 1; _ad9510_regs.divider_high_cycles_out5 = high - 1; _ad9510_regs.bypass_divider_out5 = 0; break; case 6: //U2+ _ad9510_regs.power_down_lvds_cmos_out6 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out6 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT6_LVDS; _ad9510_regs.output_level_lvds_out6 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT6_1_75MA; //set the registers (divider - 1) _ad9510_regs.divider_low_cycles_out6 = low - 1; _ad9510_regs.divider_high_cycles_out6 = high - 1; _ad9510_regs.bypass_divider_out5 = 0; break; default: break; } this->write_reg(clk_regs.output(clk_regs.exp)); this->write_reg(clk_regs.div_lo(clk_regs.exp)); this->update_regs(); } //uses output clock 7 (cmos) void enable_rx_dboard_clock(bool enb){ switch(_iface->get_rev()) { case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _ad9510_regs.power_down_lvds_cmos_out7 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out7 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT7_LVDS; _ad9510_regs.output_level_lvds_out7 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT7_1_75MA; this->write_reg(clk_regs.output(clk_regs.rx_db)); this->update_regs(); break; default: _ad9510_regs.power_down_lvds_cmos_out7 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out7 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT7_CMOS; _ad9510_regs.output_level_lvds_out7 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT7_1_75MA; this->write_reg(clk_regs.output(clk_regs.rx_db)); this->update_regs(); break; } } void set_rate_rx_dboard_clock(double rate){ assert_has(get_rates_rx_dboard_clock(), rate, "rx dboard clock rate"); size_t divider = size_t(get_master_clock_rate()/rate); //bypass when the divider ratio is one _ad9510_regs.bypass_divider_out7 = (divider == 1)? 1 : 0; //calculate the low and high dividers size_t high = divider/2; size_t low = divider - high; //set the registers (divider - 1) _ad9510_regs.divider_low_cycles_out7 = low - 1; _ad9510_regs.divider_high_cycles_out7 = high - 1; //write the registers this->write_reg(clk_regs.div_lo(clk_regs.rx_db)); this->write_reg(clk_regs.div_hi(clk_regs.rx_db)); this->update_regs(); } std::vector get_rates_rx_dboard_clock(void){ std::vector rates; for (size_t i = 1; i <= 16+16; i++) rates.push_back(get_master_clock_rate()/i); return rates; } //uses output clock 6 (cmos) on USRP2, output clock 5 (cmos) on N200/N210 r3, //and output clock 5 (lvds) on N200/N210 r4 void enable_tx_dboard_clock(bool enb){ switch(_iface->get_rev()) { case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _ad9510_regs.power_down_lvds_cmos_out5 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out5 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT5_LVDS; _ad9510_regs.output_level_lvds_out5 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT5_1_75MA; break; case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: _ad9510_regs.power_down_lvds_cmos_out5 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out5 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT5_CMOS; _ad9510_regs.output_level_lvds_out5 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT5_1_75MA; break; case usrp2_iface::USRP2_REV3: case usrp2_iface::USRP2_REV4: _ad9510_regs.power_down_lvds_cmos_out6 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out6 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT6_CMOS; _ad9510_regs.output_level_lvds_out6 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT6_1_75MA; break; default: //throw uhd::not_implemented_error("enable_tx_dboard_clock: unknown hardware version"); break; } this->write_reg(clk_regs.output(clk_regs.tx_db)); this->update_regs(); } void set_rate_tx_dboard_clock(double rate){ assert_has(get_rates_tx_dboard_clock(), rate, "tx dboard clock rate"); size_t divider = size_t(get_master_clock_rate()/rate); //bypass when the divider ratio is one _ad9510_regs.bypass_divider_out6 = (divider == 1)? 1 : 0; //calculate the low and high dividers size_t high = divider/2; size_t low = divider - high; switch(clk_regs.tx_db) { case 5: //USRP2+ _ad9510_regs.bypass_divider_out5 = (divider == 1)? 1 : 0; _ad9510_regs.divider_low_cycles_out5 = low - 1; _ad9510_regs.divider_high_cycles_out5 = high - 1; break; case 6: //USRP2 //bypass when the divider ratio is one _ad9510_regs.bypass_divider_out6 = (divider == 1)? 1 : 0; //set the registers (divider - 1) _ad9510_regs.divider_low_cycles_out6 = low - 1; _ad9510_regs.divider_high_cycles_out6 = high - 1; break; } //write the registers this->write_reg(clk_regs.div_hi(clk_regs.tx_db)); this->write_reg(clk_regs.div_lo(clk_regs.tx_db)); this->update_regs(); } std::vector get_rates_tx_dboard_clock(void){ return get_rates_rx_dboard_clock(); //same master clock, same dividers... } void enable_test_clock(bool enb) { _ad9510_regs.power_down_lvpecl_out0 = enb? ad9510_regs_t::POWER_DOWN_LVPECL_OUT0_NORMAL : ad9510_regs_t::POWER_DOWN_LVPECL_OUT0_SAFE_PD; _ad9510_regs.output_level_lvpecl_out0 = ad9510_regs_t::OUTPUT_LEVEL_LVPECL_OUT0_810MV; _ad9510_regs.divider_low_cycles_out0 = 0; _ad9510_regs.divider_high_cycles_out0 = 0; _ad9510_regs.bypass_divider_out0 = 1; this->write_reg(0x3c); this->write_reg(0x48); this->write_reg(0x49); } /*! * If we are to use an external reference, enable the charge pump. * \param enb true to enable the CP */ void enable_external_ref(bool enb){ _ad9510_regs.charge_pump_mode = (enb)? ad9510_regs_t::CHARGE_PUMP_MODE_NORMAL : ad9510_regs_t::CHARGE_PUMP_MODE_3STATE ; _ad9510_regs.pll_mux_control = ad9510_regs_t::PLL_MUX_CONTROL_DLD_HIGH; _ad9510_regs.pfd_polarity = ad9510_regs_t::PFD_POLARITY_POS; this->write_reg(clk_regs.pll_2); this->update_regs(); } double get_master_clock_rate(void){ return 100e6; } void set_mimo_clock_delay(double delay) { //delay_val is a 5-bit value (0-31) for fine control //the equations below determine delay for a given ramp current, # of caps and fine delay register //delay range: //range_ns = 200*((caps+3)/i_ramp_ua)*1.3286 //offset (zero delay): //offset_ns = 0.34 + (1600 - i_ramp_ua)*1e-4 + ((caps-1)/ramp)*6 //delay_ns = offset_ns + range_ns * delay / 31 int delay_val = boost::math::iround(delay/9.744e-9*31); if(delay_val == 0) { switch(clk_regs.exp) { case 5: _ad9510_regs.delay_control_out5 = 1; break; case 6: _ad9510_regs.delay_control_out6 = 1; break; default: break; //delay not supported on U2 rev 3 } } else { switch(clk_regs.exp) { case 5: _ad9510_regs.delay_control_out5 = 0; _ad9510_regs.ramp_current_out5 = ad9510_regs_t::RAMP_CURRENT_OUT5_200UA; _ad9510_regs.ramp_capacitor_out5 = ad9510_regs_t::RAMP_CAPACITOR_OUT5_4CAPS; _ad9510_regs.delay_fine_adjust_out5 = delay_val; this->write_reg(0x34); this->write_reg(0x35); this->write_reg(0x36); break; case 6: _ad9510_regs.delay_control_out6 = 0; _ad9510_regs.ramp_current_out6 = ad9510_regs_t::RAMP_CURRENT_OUT6_200UA; _ad9510_regs.ramp_capacitor_out6 = ad9510_regs_t::RAMP_CAPACITOR_OUT6_4CAPS; _ad9510_regs.delay_fine_adjust_out6 = delay_val; this->write_reg(0x38); this->write_reg(0x39); this->write_reg(0x3A); break; default: break; } } } private: /*! * Write a single register to the spi regs. * \param addr the address to write */ void write_reg(boost::uint8_t addr){ boost::uint32_t data = _ad9510_regs.get_write_reg(addr); _spiface->write_spi(SPI_SS_AD9510, spi_config_t::EDGE_RISE, data, 24); } /*! * Tells the ad9510 to latch the settings into the operational registers. */ void update_regs(void){ _ad9510_regs.update_registers = 1; this->write_reg(clk_regs.update); } //uses output clock 3 (pecl) //this is the same between USRP2 and USRP2+ and doesn't get a switch statement void enable_dac_clock(bool enb){ _ad9510_regs.power_down_lvpecl_out3 = (enb)? ad9510_regs_t::POWER_DOWN_LVPECL_OUT3_NORMAL : ad9510_regs_t::POWER_DOWN_LVPECL_OUT3_SAFE_PD; _ad9510_regs.output_level_lvpecl_out3 = ad9510_regs_t::OUTPUT_LEVEL_LVPECL_OUT3_810MV; _ad9510_regs.bypass_divider_out3 = 1; this->write_reg(clk_regs.output(clk_regs.dac)); this->write_reg(clk_regs.div_hi(clk_regs.dac)); this->update_regs(); } //uses output clock 4 (lvds) on USRP2 and output clock 2 (lvpecl) on USRP2+ void enable_adc_clock(bool enb){ switch(clk_regs.adc) { case 2: _ad9510_regs.power_down_lvpecl_out2 = enb? ad9510_regs_t::POWER_DOWN_LVPECL_OUT2_NORMAL : ad9510_regs_t::POWER_DOWN_LVPECL_OUT2_SAFE_PD; _ad9510_regs.output_level_lvpecl_out2 = ad9510_regs_t::OUTPUT_LEVEL_LVPECL_OUT2_500MV; _ad9510_regs.bypass_divider_out2 = 1; break; case 4: _ad9510_regs.power_down_lvds_cmos_out4 = enb? 0 : 1; _ad9510_regs.lvds_cmos_select_out4 = ad9510_regs_t::LVDS_CMOS_SELECT_OUT4_LVDS; _ad9510_regs.output_level_lvds_out4 = ad9510_regs_t::OUTPUT_LEVEL_LVDS_OUT4_1_75MA; _ad9510_regs.bypass_divider_out4 = 1; break; } this->write_reg(clk_regs.output(clk_regs.adc)); this->write_reg(clk_regs.div_hi(clk_regs.adc)); this->update_regs(); } usrp2_iface::sptr _iface; uhd::spi_iface::sptr _spiface; usrp2_clk_regs_t clk_regs; ad9510_regs_t _ad9510_regs; }; /*********************************************************************** * Public make function for the ad9510 clock control **********************************************************************/ usrp2_clock_ctrl::sptr usrp2_clock_ctrl::make(usrp2_iface::sptr iface, uhd::spi_iface::sptr spiface){ return sptr(new usrp2_clock_ctrl_impl(iface, spiface)); } uhd-3.5.5/host/lib/usrp/usrp2/clock_ctrl.hpp000066400000000000000000000063601224274632000207320ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_CLOCK_CTRL_HPP #define INCLUDED_CLOCK_CTRL_HPP #include "usrp2_iface.hpp" #include #include #include class usrp2_clock_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Make a clock config for the ad9510 ic. * \param iface a pointer to the usrp2 interface object * \param spiface the interface to spi * \return a new clock control object */ static sptr make(usrp2_iface::sptr iface, uhd::spi_iface::sptr spiface); /*! * Get the master clock frequency for the fpga. * \return the clock frequency in Hz */ virtual double get_master_clock_rate(void) = 0; /*! * Enable/disable the rx dboard clock. * \param enb true to enable */ virtual void enable_rx_dboard_clock(bool enb) = 0; /*! * Set the clock rate on the rx dboard clock. * \param rate the new clock rate * \throw exception when rate invalid */ virtual void set_rate_rx_dboard_clock(double rate) = 0; /*! * Get a list of possible rx dboard clock rates. * \return a list of clock rates in Hz */ virtual std::vector get_rates_rx_dboard_clock(void) = 0; /*! * Enable/disable the tx dboard clock. * \param enb true to enable */ virtual void enable_tx_dboard_clock(bool enb) = 0; /*! * Set the clock rate on the tx dboard clock. * \param rate the new clock rate * \throw exception when rate invalid */ virtual void set_rate_tx_dboard_clock(double rate) = 0; /*! * Get a list of possible tx dboard clock rates. * \return a list of clock rates in Hz */ virtual std::vector get_rates_tx_dboard_clock(void) = 0; /*! * Enable/disable external reference. * \param enb true to enable */ virtual void enable_external_ref(bool enb) = 0; /*! * Enable/disable test clock output. * \param enb true to enable */ virtual void enable_test_clock(bool enb) = 0; /*! * Enable/disable the ref clock output over the serdes cable. * \param enb true to enable */ virtual void enable_mimo_clock_out(bool enb) = 0; /*! * Set the output delay of the mimo clock * Used to synchronise daisy-chained USRPs over the MIMO cable * Can also be used to adjust delay for uneven reference cable lengths * \param delay the clock delay in seconds */ virtual void set_mimo_clock_delay(double delay) = 0; }; #endif /* INCLUDED_CLOCK_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/usrp2/codec_ctrl.cpp000066400000000000000000000200071224274632000207010ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "codec_ctrl.hpp" #include "ad9777_regs.hpp" #include "ads62p44_regs.hpp" #include "usrp2_regs.hpp" #include #include #include #include #include using namespace uhd; /*! * A usrp2 codec control specific to the ad9777 ic. */ class usrp2_codec_ctrl_impl : public usrp2_codec_ctrl{ public: usrp2_codec_ctrl_impl(usrp2_iface::sptr iface, uhd::spi_iface::sptr spiface){ _iface = iface; _spiface = spiface; //setup the ad9777 dac _ad9777_regs.x_1r_2r_mode = ad9777_regs_t::X_1R_2R_MODE_1R; _ad9777_regs.filter_interp_rate = ad9777_regs_t::FILTER_INTERP_RATE_4X; _ad9777_regs.mix_mode = ad9777_regs_t::MIX_MODE_COMPLEX; _ad9777_regs.pll_divide_ratio = ad9777_regs_t::PLL_DIVIDE_RATIO_DIV1; _ad9777_regs.pll_state = ad9777_regs_t::PLL_STATE_ON; _ad9777_regs.auto_cp_control = ad9777_regs_t::AUTO_CP_CONTROL_AUTO; //I dac values _ad9777_regs.idac_fine_gain_adjust = 0; _ad9777_regs.idac_coarse_gain_adjust = 0xf; _ad9777_regs.idac_offset_adjust_lsb = 0; _ad9777_regs.idac_offset_adjust_msb = 0; //Q dac values _ad9777_regs.qdac_fine_gain_adjust = 0; _ad9777_regs.qdac_coarse_gain_adjust = 0xf; _ad9777_regs.qdac_offset_adjust_lsb = 0; _ad9777_regs.qdac_offset_adjust_msb = 0; //write all regs for(boost::uint8_t addr = 0; addr <= 0xC; addr++){ this->send_ad9777_reg(addr); } set_tx_mod_mode(0); //power-up adc switch(_iface->get_rev()){ case usrp2_iface::USRP2_REV3: case usrp2_iface::USRP2_REV4: _iface->poke32(U2_REG_MISC_CTRL_ADC, U2_FLAG_MISC_CTRL_ADC_ON); break; case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: _ads62p44_regs.reset = 1; this->send_ads62p44_reg(0x00); //issue a reset to the ADC //everything else should be pretty much default, i think //_ads62p44_regs.decimation = DECIMATION_DECIMATE_1; _ads62p44_regs.power_down = ads62p44_regs_t::POWER_DOWN_NORMAL; this->send_ads62p44_reg(0x14); this->set_rx_analog_gain(1); break; case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _ads62p44_regs.reset = 1; this->send_ads62p44_reg(0x00); //issue a reset to the ADC //everything else should be pretty much default, i think //_ads62p44_regs.decimation = DECIMATION_DECIMATE_1; _ads62p44_regs.override = 1; this->send_ads62p44_reg(0x14); _ads62p44_regs.power_down = ads62p44_regs_t::POWER_DOWN_NORMAL; _ads62p44_regs.output_interface = ads62p44_regs_t::OUTPUT_INTERFACE_LVDS; _ads62p44_regs.lvds_current = ads62p44_regs_t::LVDS_CURRENT_2_5MA; _ads62p44_regs.lvds_data_term = ads62p44_regs_t::LVDS_DATA_TERM_100; this->send_ads62p44_reg(0x11); this->send_ads62p44_reg(0x12); this->send_ads62p44_reg(0x14); this->set_rx_analog_gain(1); break; case usrp2_iface::USRP_NXXX: break; } } ~usrp2_codec_ctrl_impl(void){UHD_SAFE_CALL( //power-down dac _ad9777_regs.power_down_mode = 1; this->send_ad9777_reg(0); //power-down adc switch(_iface->get_rev()){ case usrp2_iface::USRP2_REV3: case usrp2_iface::USRP2_REV4: _iface->poke32(U2_REG_MISC_CTRL_ADC, U2_FLAG_MISC_CTRL_ADC_OFF); break; case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: //send a global power-down to the ADC here... it will get lifted on reset _ads62p44_regs.power_down = ads62p44_regs_t::POWER_DOWN_GLOBAL_PD; this->send_ads62p44_reg(0x14); break; case usrp2_iface::USRP_NXXX: break; } )} void set_tx_mod_mode(int mod_mode){ //set the sign of the frequency shift _ad9777_regs.modulation_form = (mod_mode > 0)? ad9777_regs_t::MODULATION_FORM_E_PLUS_JWT: ad9777_regs_t::MODULATION_FORM_E_MINUS_JWT ; //set the frequency shift switch(std::abs(mod_mode)){ case 0: case 1: _ad9777_regs.modulation_mode = ad9777_regs_t::MODULATION_MODE_NONE; break; case 2: _ad9777_regs.modulation_mode = ad9777_regs_t::MODULATION_MODE_FS_2; break; case 4: _ad9777_regs.modulation_mode = ad9777_regs_t::MODULATION_MODE_FS_4; break; case 8: _ad9777_regs.modulation_mode = ad9777_regs_t::MODULATION_MODE_FS_8; break; default: throw uhd::value_error("unknown modulation mode for ad9777"); } this->send_ad9777_reg(0x01); //set the register } void set_rx_digital_gain(double gain) { //fine digital gain switch(_iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _ads62p44_regs.fine_gain = int(gain/0.5); this->send_ads62p44_reg(0x17); break; default: UHD_THROW_INVALID_CODE_PATH(); } } void set_rx_digital_fine_gain(double gain) { //gain correction switch(_iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _ads62p44_regs.gain_correction = int(gain / 0.05); this->send_ads62p44_reg(0x1A); break; default: UHD_THROW_INVALID_CODE_PATH(); } } void set_rx_analog_gain(bool /*gain*/) { //turns on/off analog 3.5dB preamp switch(_iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _ads62p44_regs.coarse_gain = ads62p44_regs_t::COARSE_GAIN_3_5DB;//gain ? ads62p44_regs_t::COARSE_GAIN_3_5DB : ads62p44_regs_t::COARSE_GAIN_0DB; this->send_ads62p44_reg(0x14); break; default: UHD_THROW_INVALID_CODE_PATH(); } } private: ad9777_regs_t _ad9777_regs; ads62p44_regs_t _ads62p44_regs; usrp2_iface::sptr _iface; uhd::spi_iface::sptr _spiface; void send_ad9777_reg(boost::uint8_t addr){ boost::uint16_t reg = _ad9777_regs.get_write_reg(addr); UHD_LOGV(always) << "send_ad9777_reg: " << std::hex << reg << std::endl; _spiface->write_spi( SPI_SS_AD9777, spi_config_t::EDGE_RISE, reg, 16 ); } void send_ads62p44_reg(boost::uint8_t addr) { boost::uint16_t reg = _ads62p44_regs.get_write_reg(addr); _spiface->write_spi( SPI_SS_ADS62P44, spi_config_t::EDGE_FALL, reg, 16 ); } }; /*********************************************************************** * Public make function for the usrp2 codec control **********************************************************************/ usrp2_codec_ctrl::sptr usrp2_codec_ctrl::make(usrp2_iface::sptr iface, uhd::spi_iface::sptr spiface){ return sptr(new usrp2_codec_ctrl_impl(iface, spiface)); } uhd-3.5.5/host/lib/usrp/usrp2/codec_ctrl.hpp000066400000000000000000000041141224274632000207070ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_CODEC_CTRL_HPP #define INCLUDED_CODEC_CTRL_HPP #include "usrp2_iface.hpp" #include #include class usrp2_codec_ctrl : boost::noncopyable{ public: typedef boost::shared_ptr sptr; /*! * Make a codec control for the DAC and ADC. * \param iface a pointer to the usrp2 interface object * \param spiface the interface to spi * \return a new codec control object */ static sptr make(usrp2_iface::sptr iface, uhd::spi_iface::sptr spiface); /*! * Set the modulation mode for the DAC. * Possible modes are 0, +/-1, +/-2, +/-4, +/-8 * which correspond to shifts of fs/mod_mode. * A mode of 0 or +/-1 means no modulation. * \param mod_mode the modulation mode */ virtual void set_tx_mod_mode(int mod_mode) = 0; /*! * Set the analog preamplifier on the USRP2+ ADC (ADS62P44). * \param gain enable or disable the 3.5dB preamp */ virtual void set_rx_analog_gain(bool gain) = 0; /*! * Set the digital gain on the USRP2+ ADC (ADS62P44). * \param gain from 0-6dB */ virtual void set_rx_digital_gain(double gain) = 0; /*! * Set the digital gain correction on the USRP2+ ADC (ADS62P44). * \param gain from 0-0.5dB */ virtual void set_rx_digital_fine_gain(double gain) = 0; }; #endif /* INCLUDED_CODEC_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/usrp2/dboard_iface.cpp000066400000000000000000000237761224274632000212020ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "gpio_core_200.hpp" #include #include "clock_ctrl.hpp" #include "usrp2_regs.hpp" //wishbone address constants #include #include #include #include #include #include //htonl and ntohl #include #include "ad7922_regs.hpp" //aux adc #include "ad5623_regs.hpp" //aux dac using namespace uhd; using namespace uhd::usrp; using namespace boost::assign; class usrp2_dboard_iface : public dboard_iface{ public: usrp2_dboard_iface( wb_iface::sptr wb_iface, uhd::i2c_iface::sptr i2c_iface, uhd::spi_iface::sptr spi_iface, usrp2_clock_ctrl::sptr clock_ctrl ); ~usrp2_dboard_iface(void); special_props_t get_special_props(void){ special_props_t props; props.soft_clock_divider = false; props.mangle_i2c_addrs = false; return props; } void write_aux_dac(unit_t, aux_dac_t, double); double read_aux_adc(unit_t, aux_adc_t); void _set_pin_ctrl(unit_t, boost::uint16_t); void _set_atr_reg(unit_t, atr_reg_t, boost::uint16_t); void _set_gpio_ddr(unit_t, boost::uint16_t); void _set_gpio_out(unit_t, boost::uint16_t); void set_gpio_debug(unit_t, int); boost::uint16_t read_gpio(unit_t); void write_i2c(boost::uint8_t, const byte_vector_t &); byte_vector_t read_i2c(boost::uint8_t, size_t); void set_clock_rate(unit_t, double); double get_clock_rate(unit_t); std::vector get_clock_rates(unit_t); void set_clock_enabled(unit_t, bool); double get_codec_rate(unit_t); void write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); boost::uint32_t read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ); private: uhd::i2c_iface::sptr _i2c_iface; uhd::spi_iface::sptr _spi_iface; usrp2_clock_ctrl::sptr _clock_ctrl; gpio_core_200::sptr _gpio; uhd::dict _dac_regs; uhd::dict _clock_rates; void _write_aux_dac(unit_t); }; /*********************************************************************** * Make Function **********************************************************************/ dboard_iface::sptr make_usrp2_dboard_iface( wb_iface::sptr wb_iface, uhd::i2c_iface::sptr i2c_iface, uhd::spi_iface::sptr spi_iface, usrp2_clock_ctrl::sptr clock_ctrl ){ return dboard_iface::sptr(new usrp2_dboard_iface(wb_iface, i2c_iface, spi_iface, clock_ctrl)); } /*********************************************************************** * Structors **********************************************************************/ usrp2_dboard_iface::usrp2_dboard_iface( wb_iface::sptr wb_iface, uhd::i2c_iface::sptr i2c_iface, uhd::spi_iface::sptr spi_iface, usrp2_clock_ctrl::sptr clock_ctrl ): _i2c_iface(i2c_iface), _spi_iface(spi_iface), _clock_ctrl(clock_ctrl) { _gpio = gpio_core_200::make(wb_iface, U2_REG_SR_ADDR(SR_GPIO), U2_REG_GPIO_RB); //reset the aux dacs _dac_regs[UNIT_RX] = ad5623_regs_t(); _dac_regs[UNIT_TX] = ad5623_regs_t(); BOOST_FOREACH(unit_t unit, _dac_regs.keys()){ _dac_regs[unit].data = 1; _dac_regs[unit].addr = ad5623_regs_t::ADDR_ALL; _dac_regs[unit].cmd = ad5623_regs_t::CMD_RESET; this->_write_aux_dac(unit); } //init the clock rate shadows with max rate clock this->set_clock_rate(UNIT_RX, sorted(this->get_clock_rates(UNIT_RX)).back()); this->set_clock_rate(UNIT_TX, sorted(this->get_clock_rates(UNIT_TX)).back()); } usrp2_dboard_iface::~usrp2_dboard_iface(void){ /* NOP */ } /*********************************************************************** * Clocks **********************************************************************/ void usrp2_dboard_iface::set_clock_rate(unit_t unit, double rate){ _clock_rates[unit] = rate; //set to shadow switch(unit){ case UNIT_RX: _clock_ctrl->set_rate_rx_dboard_clock(rate); return; case UNIT_TX: _clock_ctrl->set_rate_tx_dboard_clock(rate); return; } } double usrp2_dboard_iface::get_clock_rate(unit_t unit){ return _clock_rates[unit]; //get from shadow } std::vector usrp2_dboard_iface::get_clock_rates(unit_t unit){ switch(unit){ case UNIT_RX: return _clock_ctrl->get_rates_rx_dboard_clock(); case UNIT_TX: return _clock_ctrl->get_rates_tx_dboard_clock(); default: UHD_THROW_INVALID_CODE_PATH(); } } void usrp2_dboard_iface::set_clock_enabled(unit_t unit, bool enb){ switch(unit){ case UNIT_RX: _clock_ctrl->enable_rx_dboard_clock(enb); return; case UNIT_TX: _clock_ctrl->enable_tx_dboard_clock(enb); return; } } double usrp2_dboard_iface::get_codec_rate(unit_t){ return _clock_ctrl->get_master_clock_rate(); } /*********************************************************************** * GPIO **********************************************************************/ void usrp2_dboard_iface::_set_pin_ctrl(unit_t unit, boost::uint16_t value){ return _gpio->set_pin_ctrl(unit, value); } void usrp2_dboard_iface::_set_gpio_ddr(unit_t unit, boost::uint16_t value){ return _gpio->set_gpio_ddr(unit, value); } void usrp2_dboard_iface::_set_gpio_out(unit_t unit, boost::uint16_t value){ return _gpio->set_gpio_out(unit, value); } boost::uint16_t usrp2_dboard_iface::read_gpio(unit_t unit){ return _gpio->read_gpio(unit); } void usrp2_dboard_iface::_set_atr_reg(unit_t unit, atr_reg_t atr, boost::uint16_t value){ return _gpio->set_atr_reg(unit, atr, value); } void usrp2_dboard_iface::set_gpio_debug(unit_t, int){ throw uhd::not_implemented_error("no set_gpio_debug implemented"); } /*********************************************************************** * SPI **********************************************************************/ static const uhd::dict unit_to_spi_dev = map_list_of (dboard_iface::UNIT_TX, SPI_SS_TX_DB) (dboard_iface::UNIT_RX, SPI_SS_RX_DB) ; void usrp2_dboard_iface::write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ _spi_iface->write_spi(unit_to_spi_dev[unit], config, data, num_bits); } boost::uint32_t usrp2_dboard_iface::read_write_spi( unit_t unit, const spi_config_t &config, boost::uint32_t data, size_t num_bits ){ return _spi_iface->read_spi(unit_to_spi_dev[unit], config, data, num_bits); } /*********************************************************************** * I2C **********************************************************************/ void usrp2_dboard_iface::write_i2c(boost::uint8_t addr, const byte_vector_t &bytes){ return _i2c_iface->write_i2c(addr, bytes); } byte_vector_t usrp2_dboard_iface::read_i2c(boost::uint8_t addr, size_t num_bytes){ return _i2c_iface->read_i2c(addr, num_bytes); } /*********************************************************************** * Aux DAX/ADC **********************************************************************/ void usrp2_dboard_iface::_write_aux_dac(unit_t unit){ static const uhd::dict unit_to_spi_dac = map_list_of (UNIT_RX, SPI_SS_RX_DAC) (UNIT_TX, SPI_SS_TX_DAC) ; _spi_iface->write_spi( unit_to_spi_dac[unit], spi_config_t::EDGE_FALL, _dac_regs[unit].get_reg(), 24 ); } void usrp2_dboard_iface::write_aux_dac(unit_t unit, aux_dac_t which, double value){ _dac_regs[unit].data = boost::math::iround(4095*value/3.3); _dac_regs[unit].cmd = ad5623_regs_t::CMD_WR_UP_DAC_CHAN_N; typedef uhd::dict aux_dac_to_addr; static const uhd::dict unit_to_which_to_addr = map_list_of (UNIT_RX, map_list_of (AUX_DAC_A, ad5623_regs_t::ADDR_DAC_B) (AUX_DAC_B, ad5623_regs_t::ADDR_DAC_A) (AUX_DAC_C, ad5623_regs_t::ADDR_DAC_A) (AUX_DAC_D, ad5623_regs_t::ADDR_DAC_B) ) (UNIT_TX, map_list_of (AUX_DAC_A, ad5623_regs_t::ADDR_DAC_A) (AUX_DAC_B, ad5623_regs_t::ADDR_DAC_B) (AUX_DAC_C, ad5623_regs_t::ADDR_DAC_B) (AUX_DAC_D, ad5623_regs_t::ADDR_DAC_A) ) ; _dac_regs[unit].addr = unit_to_which_to_addr[unit][which]; this->_write_aux_dac(unit); } double usrp2_dboard_iface::read_aux_adc(unit_t unit, aux_adc_t which){ static const uhd::dict unit_to_spi_adc = map_list_of (UNIT_RX, SPI_SS_RX_ADC) (UNIT_TX, SPI_SS_TX_ADC) ; //setup spi config args spi_config_t config; config.mosi_edge = spi_config_t::EDGE_FALL; config.miso_edge = spi_config_t::EDGE_RISE; //setup the spi registers ad7922_regs_t ad7922_regs; switch(which){ case AUX_ADC_A: ad7922_regs.mod = 0; break; case AUX_ADC_B: ad7922_regs.mod = 1; break; } ad7922_regs.chn = ad7922_regs.mod; //normal mode: mod == chn //write and read spi _spi_iface->write_spi( unit_to_spi_adc[unit], config, ad7922_regs.get_reg(), 16 ); ad7922_regs.set_reg(boost::uint16_t(_spi_iface->read_spi( unit_to_spi_adc[unit], config, ad7922_regs.get_reg(), 16 ))); //convert to voltage and return return 3.3*ad7922_regs.result/4095; } uhd-3.5.5/host/lib/usrp/usrp2/fw_common.h000066400000000000000000000113201224274632000202270ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP2_FW_COMMON_H #define INCLUDED_USRP2_FW_COMMON_H #include /*! * Structs and constants for usrp2 communication. * This header is shared by the firmware and host code. * Therefore, this header may only contain valid C code. */ #ifdef __cplusplus extern "C" { #endif //fpga and firmware compatibility numbers #define USRP2_FPGA_COMPAT_NUM 10 #define USRP2_FW_COMPAT_NUM 12 #define USRP2_FW_VER_MINOR 4 //used to differentiate control packets over data port #define USRP2_INVALID_VRT_HEADER 0 typedef struct{ uint32_t sequence; uint32_t vrt_hdr; uint32_t ip_addr; uint32_t udp_port; } usrp2_stream_ctrl_t; // udp ports for the usrp2 communication // Dynamic and/or private ports: 49152-65535 #define USRP2_UDP_CTRL_PORT 49152 //#define USRP2_UDP_UPDATE_PORT 49154 #define USRP2_UDP_RX_DSP0_PORT 49156 #define USRP2_UDP_TX_DSP0_PORT 49157 #define USRP2_UDP_RX_DSP1_PORT 49158 #define USRP2_UDP_FIFO_CRTL_PORT 49159 #define USRP2_UDP_UART_BASE_PORT 49170 #define USRP2_UDP_UART_GPS_PORT 49172 // Map for virtual firmware regs (not very big so we can keep it here for now) #define U2_FW_REG_LOCK_TIME 0 #define U2_FW_REG_LOCK_GPID 1 #define U2_FW_REG_HAS_GPSDO 3 #define U2_FW_REG_VER_MINOR 7 //////////////////////////////////////////////////////////////////////// // I2C addresses //////////////////////////////////////////////////////////////////////// #define USRP2_I2C_DEV_EEPROM 0x50 // 24LC02[45]: 7-bits 1010xxx #define USRP2_I2C_ADDR_MBOARD (USRP2_I2C_DEV_EEPROM | 0x0) #define USRP2_I2C_ADDR_TX_DB (USRP2_I2C_DEV_EEPROM | 0x4) #define USRP2_I2C_ADDR_RX_DB (USRP2_I2C_DEV_EEPROM | 0x5) //////////////////////////////////////////////////////////////////////// // EEPROM Layout //////////////////////////////////////////////////////////////////////// #define USRP2_EE_MBOARD_REV 0x00 //2 bytes, little-endian (historic, don't blame me) #define USRP2_EE_MBOARD_MAC_ADDR 0x02 //6 bytes #define USRP2_EE_MBOARD_GATEWAY 0x38 //uint32, big-endian #define USRP2_EE_MBOARD_SUBNET 0x08 //uint32, big-endian #define USRP2_EE_MBOARD_IP_ADDR 0x0C //uint32, big-endian #define USRP2_EE_MBOARD_BOOTLOADER_FLAGS 0xF7 typedef enum{ USRP2_CTRL_ID_HUH_WHAT = ' ', //USRP2_CTRL_ID_FOR_SURE, //TODO error condition enums //USRP2_CTRL_ID_SUX_MAN, USRP2_CTRL_ID_WAZZUP_BRO = 'a', USRP2_CTRL_ID_WAZZUP_DUDE = 'A', USRP2_CTRL_ID_TRANSACT_ME_SOME_SPI_BRO = 's', USRP2_CTRL_ID_OMG_TRANSACTED_SPI_DUDE = 'S', USRP2_CTRL_ID_DO_AN_I2C_READ_FOR_ME_BRO = 'i', USRP2_CTRL_ID_HERES_THE_I2C_DATA_DUDE = 'I', USRP2_CTRL_ID_WRITE_THESE_I2C_VALUES_BRO = 'h', USRP2_CTRL_ID_COOL_IM_DONE_I2C_WRITE_DUDE = 'H', USRP2_CTRL_ID_GET_THIS_REGISTER_FOR_ME_BRO = 'r', USRP2_CTRL_ID_OMG_GOT_REGISTER_SO_BAD_DUDE = 'R', USRP2_CTRL_ID_HOLLER_AT_ME_BRO = 'l', USRP2_CTRL_ID_HOLLER_BACK_DUDE = 'L', USRP2_CTRL_ID_PEACE_OUT = '~' } usrp2_ctrl_id_t; typedef enum{ USRP2_DIR_RX = 'r', USRP2_DIR_TX = 't' } usrp2_dir_which_t; typedef enum{ USRP2_CLK_EDGE_RISE = 'r', USRP2_CLK_EDGE_FALL = 'f' } usrp2_clk_edge_t; typedef enum{ USRP2_REG_ACTION_FPGA_PEEK32 = 1, USRP2_REG_ACTION_FPGA_PEEK16 = 2, USRP2_REG_ACTION_FPGA_POKE32 = 3, USRP2_REG_ACTION_FPGA_POKE16 = 4, USRP2_REG_ACTION_FW_PEEK32 = 5, USRP2_REG_ACTION_FW_POKE32 = 6 } usrp2_reg_action_t; typedef struct{ uint32_t proto_ver; uint32_t id; uint32_t seq; union{ uint32_t ip_addr; struct { uint32_t dev; uint32_t data; uint8_t miso_edge; uint8_t mosi_edge; uint8_t num_bits; uint8_t readback; } spi_args; struct { uint8_t addr; uint8_t bytes; uint8_t data[20]; } i2c_args; struct { uint32_t addr; uint32_t data; uint8_t action; } reg_args; struct { uint32_t len; } echo_args; } data; } usrp2_ctrl_data_t; #ifdef __cplusplus } #endif #endif /* INCLUDED_USRP2_FW_COMMON_H */ uhd-3.5.5/host/lib/usrp/usrp2/io_impl.cpp000066400000000000000000000533771224274632000202500ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "validate_subdev_spec.hpp" #include "async_packet_handler.hpp" #include "../../transport/super_recv_packet_handler.hpp" #include "../../transport/super_send_packet_handler.hpp" #include "usrp2_impl.hpp" #include "usrp2_regs.hpp" #include "fw_common.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; namespace asio = boost::asio; namespace pt = boost::posix_time; /*********************************************************************** * helpers **********************************************************************/ static UHD_INLINE pt::time_duration to_time_dur(double timeout){ return pt::microseconds(long(timeout*1e6)); } static UHD_INLINE double from_time_dur(const pt::time_duration &time_dur){ return 1e-6*time_dur.total_microseconds(); } /*********************************************************************** * constants **********************************************************************/ static const size_t vrt_send_header_offset_words32 = 1; /*********************************************************************** * flow control monitor for a single tx channel * - the pirate thread calls update * - the get send buffer calls check **********************************************************************/ class flow_control_monitor{ public: typedef boost::uint32_t seq_type; typedef boost::shared_ptr sptr; /*! * Make a new flow control monitor. * \param max_seqs_out num seqs before throttling */ flow_control_monitor(seq_type max_seqs_out):_max_seqs_out(max_seqs_out){ this->clear(); _ready_fcn = boost::bind(&flow_control_monitor::ready, this); } //! Clear the monitor, Ex: when a streamer is created void clear(void){ _last_seq_out = 0; _last_seq_ack = 0; } /*! * Gets the current sequence number to go out. * Increments the sequence for the next call * \return the sequence to be sent to the dsp */ UHD_INLINE seq_type get_curr_seq_out(void){ return _last_seq_out++; } /*! * Check the flow control condition. * \param timeout the timeout in seconds * \return false on timeout */ UHD_INLINE bool check_fc_condition(double timeout){ boost::mutex::scoped_lock lock(_fc_mutex); if (this->ready()) return true; boost::this_thread::disable_interruption di; //disable because the wait can throw return _fc_cond.timed_wait(lock, to_time_dur(timeout), _ready_fcn); } /*! * Update the flow control condition. * \param seq the last sequence number to be ACK'd */ UHD_INLINE void update_fc_condition(seq_type seq){ boost::mutex::scoped_lock lock(_fc_mutex); _last_seq_ack = seq; lock.unlock(); _fc_cond.notify_one(); } private: bool ready(void){ return seq_type(_last_seq_out -_last_seq_ack) < _max_seqs_out; } boost::mutex _fc_mutex; boost::condition _fc_cond; seq_type _last_seq_out, _last_seq_ack; const seq_type _max_seqs_out; boost::function _ready_fcn; }; /*********************************************************************** * io impl details (internal to this file) * - pirate crew * - alignment buffer * - thread loop * - vrt packet handler states **********************************************************************/ struct usrp2_impl::io_impl{ io_impl(void): async_msg_fifo(1000/*messages deep*/), tick_rate(1 /*non-zero default*/) { /* NOP */ } ~io_impl(void){ //Manually deconstuct the tasks, since this was not happening automatically. pirate_tasks.clear(); } managed_send_buffer::sptr get_send_buff(size_t chan, double timeout){ flow_control_monitor &fc_mon = *fc_mons[chan]; //wait on flow control w/ timeout if (not fc_mon.check_fc_condition(timeout)) return managed_send_buffer::sptr(); //get a buffer from the transport w/ timeout managed_send_buffer::sptr buff = tx_xports[chan]->get_send_buff(timeout); //write the flow control word into the buffer if (buff.get()) buff->cast()[0] = uhd::htonx(fc_mon.get_curr_seq_out()); return buff; } //tx dsp: xports and flow control monitors std::vector tx_xports; std::vector fc_mons; //methods and variables for the pirate crew void recv_pirate_loop(zero_copy_if::sptr, size_t); std::list pirate_tasks; bounded_buffer async_msg_fifo; double tick_rate; }; /*********************************************************************** * Receive Pirate Loop * - while raiding, loot for message packet * - update flow control condition count * - put async message packets into queue **********************************************************************/ void usrp2_impl::io_impl::recv_pirate_loop( zero_copy_if::sptr err_xport, size_t index ){ set_thread_priority_safe(); //store a reference to the flow control monitor (offset by max dsps) flow_control_monitor &fc_mon = *(this->fc_mons[index]); while (not boost::this_thread::interruption_requested()){ managed_recv_buffer::sptr buff = err_xport->get_recv_buff(); if (not buff.get()) continue; //ignore timeout/error buffers try{ //extract the vrt header packet info vrt::if_packet_info_t if_packet_info; if_packet_info.num_packet_words32 = buff->size()/sizeof(boost::uint32_t); const boost::uint32_t *vrt_hdr = buff->cast(); vrt::if_hdr_unpack_be(vrt_hdr, if_packet_info); //handle a tx async report message if (if_packet_info.sid == USRP2_TX_ASYNC_SID and if_packet_info.packet_type != vrt::if_packet_info_t::PACKET_TYPE_DATA){ //fill in the async metadata async_metadata_t metadata; load_metadata_from_buff(uhd::ntohx, metadata, if_packet_info, vrt_hdr, tick_rate, index); //catch the flow control packets and react if (metadata.event_code == 0){ boost::uint32_t fc_word32 = (vrt_hdr + if_packet_info.num_header_words32)[1]; fc_mon.update_fc_condition(uhd::ntohx(fc_word32)); continue; } //else UHD_MSG(often) << "metadata.event_code " << metadata.event_code << std::endl; async_msg_fifo.push_with_pop_on_full(metadata); standard_async_msg_prints(metadata); } else{ //TODO unknown received packet, may want to print error... } }catch(const std::exception &e){ UHD_MSG(error) << "Error in recv pirate loop: " << e.what() << std::endl; } } } /*********************************************************************** * Helper Functions **********************************************************************/ void usrp2_impl::io_init(void){ //create new io impl _io_impl = UHD_PIMPL_MAKE(io_impl, ()); //init first so we dont have an access race BOOST_FOREACH(const std::string &mb, _mbc.keys()){ //init the tx xport and flow control monitor _io_impl->tx_xports.push_back(_mbc[mb].tx_dsp_xport); _io_impl->fc_mons.push_back(flow_control_monitor::sptr(new flow_control_monitor( USRP2_SRAM_BYTES/_mbc[mb].tx_dsp_xport->get_send_frame_size() ))); } //allocate streamer weak ptrs containers BOOST_FOREACH(const std::string &mb, _mbc.keys()){ _mbc[mb].rx_streamers.resize(_mbc[mb].rx_dsps.size()); _mbc[mb].tx_streamers.resize(1/*known to be 1 dsp*/); } //create a new pirate thread for each zc if (yarr!!) size_t index = 0; BOOST_FOREACH(const std::string &mb, _mbc.keys()){ //spawn a new pirate to plunder the recv booty _io_impl->pirate_tasks.push_back(task::make(boost::bind( &usrp2_impl::io_impl::recv_pirate_loop, _io_impl.get(), _mbc[mb].tx_dsp_xport, index++ ))); } } void usrp2_impl::update_tick_rate(const double rate){ _io_impl->tick_rate = rate; //shadow for async msg //update the tick rate on all existing streamers -> thread safe BOOST_FOREACH(const std::string &mb, _mbc.keys()){ for (size_t i = 0; i < _mbc[mb].rx_streamers.size(); i++){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_mbc[mb].rx_streamers[i].lock()); if (my_streamer.get() == NULL) continue; my_streamer->set_tick_rate(rate); } for (size_t i = 0; i < _mbc[mb].tx_streamers.size(); i++){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_mbc[mb].tx_streamers[i].lock()); if (my_streamer.get() == NULL) continue; my_streamer->set_tick_rate(rate); } } } void usrp2_impl::update_rx_samp_rate(const std::string &mb, const size_t dsp, const double rate){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_mbc[mb].rx_streamers[dsp].lock()); if (my_streamer.get() == NULL) return; my_streamer->set_samp_rate(rate); const double adj = _mbc[mb].rx_dsps[dsp]->get_scaling_adjustment(); my_streamer->set_scale_factor(adj); } void usrp2_impl::update_tx_samp_rate(const std::string &mb, const size_t dsp, const double rate){ boost::shared_ptr my_streamer = boost::dynamic_pointer_cast(_mbc[mb].tx_streamers[dsp].lock()); if (my_streamer.get() == NULL) return; my_streamer->set_samp_rate(rate); const double adj = _mbc[mb].tx_dsp->get_scaling_adjustment(); my_streamer->set_scale_factor(adj); } void usrp2_impl::update_rates(void){ BOOST_FOREACH(const std::string &mb, _mbc.keys()){ fs_path root = "/mboards/" + mb; _tree->access(root / "tick_rate").update(); //and now that the tick rate is set, init the host rates to something BOOST_FOREACH(const std::string &name, _tree->list(root / "rx_dsps")){ _tree->access(root / "rx_dsps" / name / "rate" / "value").update(); } BOOST_FOREACH(const std::string &name, _tree->list(root / "tx_dsps")){ _tree->access(root / "tx_dsps" / name / "rate" / "value").update(); } } } void usrp2_impl::update_rx_subdev_spec(const std::string &which_mb, const subdev_spec_t &spec){ fs_path root = "/mboards/" + which_mb + "/dboards"; //sanity checking validate_subdev_spec(_tree, spec, "rx", which_mb); //setup mux for this spec bool fe_swapped = false; for (size_t i = 0; i < spec.size(); i++){ const std::string conn = _tree->access(root / spec[i].db_name / "rx_frontends" / spec[i].sd_name / "connection").get(); if (i == 0 and (conn == "QI" or conn == "Q")) fe_swapped = true; _mbc[which_mb].rx_dsps[i]->set_mux(conn, fe_swapped); } _mbc[which_mb].rx_fe->set_mux(fe_swapped); //compute the new occupancy and resize _mbc[which_mb].rx_chan_occ = spec.size(); size_t nchan = 0; BOOST_FOREACH(const std::string &mb, _mbc.keys()) nchan += _mbc[mb].rx_chan_occ; } void usrp2_impl::update_tx_subdev_spec(const std::string &which_mb, const subdev_spec_t &spec){ fs_path root = "/mboards/" + which_mb + "/dboards"; //sanity checking validate_subdev_spec(_tree, spec, "tx", which_mb); //set the mux for this spec const std::string conn = _tree->access(root / spec[0].db_name / "tx_frontends" / spec[0].sd_name / "connection").get(); _mbc[which_mb].tx_fe->set_mux(conn); //compute the new occupancy and resize _mbc[which_mb].tx_chan_occ = spec.size(); size_t nchan = 0; BOOST_FOREACH(const std::string &mb, _mbc.keys()) nchan += _mbc[mb].tx_chan_occ; } /*********************************************************************** * Async Data **********************************************************************/ bool usrp2_impl::recv_async_msg( async_metadata_t &async_metadata, double timeout ){ boost::this_thread::disable_interruption di; //disable because the wait can throw return _io_impl->async_msg_fifo.pop_with_timed_wait(async_metadata, timeout); } /*********************************************************************** * Stream destination programmer **********************************************************************/ void usrp2_impl::program_stream_dest( zero_copy_if::sptr &xport, const uhd::stream_args_t &args ){ //perform an initial flush of transport while (xport->get_recv_buff(0.0)){} //program the stream command usrp2_stream_ctrl_t stream_ctrl = usrp2_stream_ctrl_t(); stream_ctrl.sequence = uhd::htonx(boost::uint32_t(0 /* don't care seq num */)); stream_ctrl.vrt_hdr = uhd::htonx(boost::uint32_t(USRP2_INVALID_VRT_HEADER)); //user has provided an alternative address and port for destination if (args.args.has_key("addr") and args.args.has_key("port")){ UHD_MSG(status) << boost::format( "Programming streaming destination for custom address.\n" "IPv4 Address: %s, UDP Port: %s\n" ) % args.args["addr"] % args.args["port"] << std::endl; asio::io_service io_service; asio::ip::udp::resolver resolver(io_service); asio::ip::udp::resolver::query query(asio::ip::udp::v4(), args.args["addr"], args.args["port"]); asio::ip::udp::endpoint endpoint = *resolver.resolve(query); stream_ctrl.ip_addr = uhd::htonx(boost::uint32_t(endpoint.address().to_v4().to_ulong())); stream_ctrl.udp_port = uhd::htonx(boost::uint32_t(endpoint.port())); for (size_t i = 0; i < 3; i++){ UHD_MSG(status) << "ARP attempt " << i << std::endl; managed_send_buffer::sptr send_buff = xport->get_send_buff(); std::memcpy(send_buff->cast(), &stream_ctrl, sizeof(stream_ctrl)); send_buff->commit(sizeof(stream_ctrl)); send_buff.reset(); boost::this_thread::sleep(boost::posix_time::milliseconds(300)); managed_recv_buffer::sptr recv_buff = xport->get_recv_buff(0.0); if (recv_buff and recv_buff->size() >= sizeof(boost::uint32_t)){ const boost::uint32_t result = uhd::ntohx(recv_buff->cast()[0]); if (result == 0){ UHD_MSG(status) << "Success! " << std::endl; return; } } } throw uhd::runtime_error("Device failed to ARP when programming alternative streaming destination."); } else{ //send the partial stream control without destination managed_send_buffer::sptr send_buff = xport->get_send_buff(); std::memcpy(send_buff->cast(), &stream_ctrl, sizeof(stream_ctrl)); send_buff->commit(sizeof(stream_ctrl)/2); } } /*********************************************************************** * Receive streamer **********************************************************************/ rx_streamer::sptr usrp2_impl::get_rx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels = args.channels.empty()? std::vector(1, 0) : args.channels; //calculate packet size static const size_t hdr_size = 0 + vrt::max_if_hdr_words32*sizeof(boost::uint32_t) + sizeof(vrt::if_packet_info_t().tlr) //forced to have trailer - sizeof(vrt::if_packet_info_t().cid) //no class id ever used - sizeof(vrt::if_packet_info_t().tsi) //no int time ever used ; const size_t bpp = _mbc[_mbc.keys().front()].rx_dsp_xports[0]->get_recv_frame_size() - hdr_size; const size_t bpi = convert::get_bytes_per_item(args.otw_format); const size_t spp = unsigned(args.args.cast("spp", bpp/bpi)); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); my_streamer->set_vrt_unpacker(&vrt::if_hdr_unpack_be); //set the converter uhd::convert::id_type id; id.input_format = args.otw_format + "_item32_be"; id.num_inputs = 1; id.output_format = args.cpu_format; id.num_outputs = 1; my_streamer->set_converter(id); //bind callbacks for the handler for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++){ const size_t chan = args.channels[chan_i]; size_t num_chan_so_far = 0; BOOST_FOREACH(const std::string &mb, _mbc.keys()){ num_chan_so_far += _mbc[mb].rx_chan_occ; if (chan < num_chan_so_far){ const size_t dsp = chan + _mbc[mb].rx_chan_occ - num_chan_so_far; _mbc[mb].rx_dsps[dsp]->set_nsamps_per_packet(spp); //seems to be a good place to set this _mbc[mb].rx_dsps[dsp]->setup(args); this->program_stream_dest(_mbc[mb].rx_dsp_xports[dsp], args); my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( &zero_copy_if::get_recv_buff, _mbc[mb].rx_dsp_xports[dsp], _1 ), true /*flush*/); _mbc[mb].rx_streamers[dsp] = my_streamer; //store weak pointer break; } } } //set the packet threshold to be an entire socket buffer's worth const size_t packets_per_sock_buff = size_t(50e6/_mbc[_mbc.keys().front()].rx_dsp_xports[0]->get_recv_frame_size()); my_streamer->set_alignment_failure_threshold(packets_per_sock_buff); //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } /*********************************************************************** * Transmit streamer **********************************************************************/ tx_streamer::sptr usrp2_impl::get_tx_stream(const uhd::stream_args_t &args_){ stream_args_t args = args_; //setup defaults for unspecified values args.otw_format = args.otw_format.empty()? "sc16" : args.otw_format; args.channels = args.channels.empty()? std::vector(1, 0) : args.channels; //calculate packet size static const size_t hdr_size = 0 + vrt_send_header_offset_words32*sizeof(boost::uint32_t) + vrt::max_if_hdr_words32*sizeof(boost::uint32_t) + sizeof(vrt::if_packet_info_t().tlr) //forced to have trailer - sizeof(vrt::if_packet_info_t().cid) //no class id ever used - sizeof(vrt::if_packet_info_t().sid) //no stream id ever used - sizeof(vrt::if_packet_info_t().tsi) //no int time ever used ; const size_t bpp = _mbc[_mbc.keys().front()].tx_dsp_xport->get_send_frame_size() - hdr_size; const size_t spp = bpp/convert::get_bytes_per_item(args.otw_format); //make the new streamer given the samples per packet boost::shared_ptr my_streamer = boost::make_shared(spp); //init some streamer stuff my_streamer->resize(args.channels.size()); my_streamer->set_vrt_packer(&vrt::if_hdr_pack_be, vrt_send_header_offset_words32); //set the converter uhd::convert::id_type id; id.input_format = args.cpu_format; id.num_inputs = 1; id.output_format = args.otw_format + "_item32_be"; id.num_outputs = 1; my_streamer->set_converter(id); //bind callbacks for the handler for (size_t chan_i = 0; chan_i < args.channels.size(); chan_i++){ const size_t chan = args.channels[chan_i]; size_t num_chan_so_far = 0; size_t abs = 0; BOOST_FOREACH(const std::string &mb, _mbc.keys()){ num_chan_so_far += _mbc[mb].tx_chan_occ; if (chan < num_chan_so_far){ const size_t dsp = chan + _mbc[mb].tx_chan_occ - num_chan_so_far; if (not args.args.has_key("noclear")){ _io_impl->fc_mons[abs]->clear(); } _mbc[mb].tx_dsp->setup(args); my_streamer->set_xport_chan_get_buff(chan_i, boost::bind( &usrp2_impl::io_impl::get_send_buff, _io_impl.get(), abs, _1 )); _mbc[mb].tx_streamers[dsp] = my_streamer; //store weak pointer break; } abs += 1; //assume 1 tx dsp } } //sets all tick and samp rates on this streamer this->update_rates(); return my_streamer; } uhd-3.5.5/host/lib/usrp/usrp2/usrp2_clk_regs.hpp000066400000000000000000000043521224274632000215360ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP2_CLK_REGS_HPP #define INCLUDED_USRP2_CLK_REGS_HPP #include "usrp2_iface.hpp" class usrp2_clk_regs_t { public: usrp2_clk_regs_t(void) { ; } usrp2_clk_regs_t(usrp2_iface::rev_type rev) { test = 0; fpga = 1; dac = 3; switch(rev) { case usrp2_iface::USRP2_REV3: exp = 2; adc = 4; serdes = 2; tx_db = 6; break; case usrp2_iface::USRP2_REV4: exp = 5; adc = 4; serdes = 2; tx_db = 6; break; case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: exp = 6; adc = 2; serdes = 4; tx_db = 5; break; case usrp2_iface::USRP_NXXX: //dont throw, it may be unitialized break; } rx_db = 7; } static int output(int clknum) { return 0x3C + clknum; } static int div_lo(int clknum) { return 0x48 + 2 * clknum; } static int div_hi(int clknum) { return 0x49 + 2 * clknum; } const static int acounter = 0x04; const static int bcounter_msb = 0x05; const static int bcounter_lsb = 0x06; const static int pll_1 = 0x07; const static int pll_2 = 0x08; const static int pll_3 = 0x09; const static int pll_4 = 0x0A; const static int ref_counter_msb = 0x0B; const static int ref_counter_lsb = 0x0C; const static int pll_5 = 0x0D; const static int update = 0x5A; int test; int fpga; int adc; int dac; int serdes; int exp; int tx_db; int rx_db; }; #endif //INCLUDED_USRP2_CLK_REGS_HPP uhd-3.5.5/host/lib/usrp/usrp2/usrp2_fifo_ctrl.cpp000066400000000000000000000210111224274632000216760ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp2_regs.hpp" #include #include #include #include #include "usrp2_fifo_ctrl.hpp" #include #include #include //htonl #include using namespace uhd; using namespace uhd::transport; static const size_t POKE32_CMD = (1 << 8); static const size_t PEEK32_CMD = 0; static const double ACK_TIMEOUT = 0.5; static const double MASSIVE_TIMEOUT = 10.0; //for when we wait on a timed command static const boost::uint32_t MAX_SEQS_OUT = 15; #define SPI_DIV SR_SPI_CORE + 0 #define SPI_CTRL SR_SPI_CORE + 1 #define SPI_DATA SR_SPI_CORE + 2 #define SPI_READBACK 0 // spi clock rate = master_clock/(div+1)/2 (10MHz in this case) #define SPI_DIVIDER 4 class usrp2_fifo_ctrl_impl : public usrp2_fifo_ctrl{ public: usrp2_fifo_ctrl_impl(zero_copy_if::sptr xport): _xport(xport), _seq_out(0), _seq_ack(0), _timeout(ACK_TIMEOUT) { while (_xport->get_recv_buff(0.0)){} //flush this->set_time(uhd::time_spec_t(0.0)); this->set_tick_rate(1.0); //something possible but bogus this->init_spi(); } ~usrp2_fifo_ctrl_impl(void){ _timeout = ACK_TIMEOUT; //reset timeout to something small UHD_SAFE_CALL( this->peek32(0); //dummy peek with the purpose of ack'ing all packets ) } /******************************************************************* * Peek and poke 32 bit implementation ******************************************************************/ void poke32(wb_addr_type addr, boost::uint32_t data){ boost::mutex::scoped_lock lock(_mutex); this->send_pkt((addr - SETTING_REGS_BASE)/4, data, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); } boost::uint32_t peek32(wb_addr_type addr){ boost::mutex::scoped_lock lock(_mutex); this->send_pkt((addr - READBACK_BASE)/4, 0, PEEK32_CMD); return this->wait_for_ack(_seq_out); } /******************************************************************* * Peek and poke 16 bit not implemented ******************************************************************/ void poke16(wb_addr_type, boost::uint16_t){ throw uhd::not_implemented_error("poke16 not implemented in fifo ctrl module"); } boost::uint16_t peek16(wb_addr_type){ throw uhd::not_implemented_error("peek16 not implemented in fifo ctrl module"); } /******************************************************************* * FIFO controlled SPI implementation ******************************************************************/ void init_spi(void){ boost::mutex::scoped_lock lock(_mutex); this->send_pkt(SPI_DIV, SPI_DIVIDER, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); _ctrl_word_cache = 0; // force update first time around } boost::uint32_t transact_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits, bool readback ){ boost::mutex::scoped_lock lock(_mutex); //load control word boost::uint32_t ctrl_word = 0; ctrl_word |= ((which_slave & 0xffffff) << 0); ctrl_word |= ((num_bits & 0x3ff) << 24); if (config.mosi_edge == spi_config_t::EDGE_FALL) ctrl_word |= (1 << 31); if (config.miso_edge == spi_config_t::EDGE_RISE) ctrl_word |= (1 << 30); //load data word (must be in upper bits) const boost::uint32_t data_out = data << (32 - num_bits); //conditionally send control word if (_ctrl_word_cache != ctrl_word){ this->send_pkt(SPI_CTRL, ctrl_word, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); _ctrl_word_cache = ctrl_word; } //send data word this->send_pkt(SPI_DATA, data_out, POKE32_CMD); this->wait_for_ack(_seq_out-MAX_SEQS_OUT); //conditional readback if (readback){ this->send_pkt(SPI_READBACK, 0, PEEK32_CMD); return this->wait_for_ack(_seq_out); } return 0; } /******************************************************************* * Update methods for time ******************************************************************/ void set_time(const uhd::time_spec_t &time){ boost::mutex::scoped_lock lock(_mutex); _time = time; _use_time = _time != uhd::time_spec_t(0.0); if (_use_time) _timeout = MASSIVE_TIMEOUT; //permanently sets larger timeout } void set_tick_rate(const double rate){ boost::mutex::scoped_lock lock(_mutex); _tick_rate = rate; } private: /******************************************************************* * Primary control and interaction private methods ******************************************************************/ UHD_INLINE void send_pkt(wb_addr_type addr, boost::uint32_t data, int cmd){ managed_send_buffer::sptr buff = _xport->get_send_buff(0.0); if (not buff){ throw uhd::runtime_error("fifo ctrl timed out getting a send buffer"); } boost::uint32_t *trans = buff->cast(); trans[0] = htonl(++_seq_out); boost::uint32_t *pkt = trans + 1; //load packet info vrt::if_packet_info_t packet_info; packet_info.packet_type = vrt::if_packet_info_t::PACKET_TYPE_CONTEXT; packet_info.num_payload_words32 = 2; packet_info.num_payload_bytes = packet_info.num_payload_words32*sizeof(boost::uint32_t); packet_info.packet_count = _seq_out; packet_info.tsf = _time.to_ticks(_tick_rate); packet_info.sob = false; packet_info.eob = false; packet_info.has_sid = false; packet_info.has_cid = false; packet_info.has_tsi = false; packet_info.has_tsf = _use_time; packet_info.has_tlr = false; //load header vrt::if_hdr_pack_be(pkt, packet_info); //load payload const boost::uint32_t ctrl_word = (addr & 0xff) | cmd | (_seq_out << 16); pkt[packet_info.num_header_words32+0] = htonl(ctrl_word); pkt[packet_info.num_header_words32+1] = htonl(data); //send the buffer over the interface buff->commit(sizeof(boost::uint32_t)*(packet_info.num_packet_words32+1)); } UHD_INLINE bool wraparound_lt16(const boost::int16_t i0, const boost::int16_t i1){ if (((i0 ^ i1) & 0x8000) == 0) //same sign bits return boost::uint16_t(i0) < boost::uint16_t(i1); return boost::int16_t(i1 - i0) > 0; } UHD_INLINE boost::uint32_t wait_for_ack(const boost::uint16_t seq_to_ack){ while (wraparound_lt16(_seq_ack, seq_to_ack)){ managed_recv_buffer::sptr buff = _xport->get_recv_buff(_timeout); if (not buff){ throw uhd::runtime_error("fifo ctrl timed out looking for acks"); } const boost::uint32_t *pkt = buff->cast(); vrt::if_packet_info_t packet_info; packet_info.num_packet_words32 = buff->size()/sizeof(boost::uint32_t); vrt::if_hdr_unpack_be(pkt, packet_info); _seq_ack = ntohl(pkt[packet_info.num_header_words32+0]) >> 16; if (_seq_ack == seq_to_ack){ return ntohl(pkt[packet_info.num_header_words32+1]); } } return 0; } zero_copy_if::sptr _xport; boost::mutex _mutex; boost::uint16_t _seq_out; boost::uint16_t _seq_ack; uhd::time_spec_t _time; bool _use_time; double _tick_rate; double _timeout; boost::uint32_t _ctrl_word_cache; }; usrp2_fifo_ctrl::sptr usrp2_fifo_ctrl::make(zero_copy_if::sptr xport){ return sptr(new usrp2_fifo_ctrl_impl(xport)); } uhd-3.5.5/host/lib/usrp/usrp2/usrp2_fifo_ctrl.hpp000066400000000000000000000030261224274632000217110ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP2_FIFO_CTRL_HPP #define INCLUDED_USRP2_FIFO_CTRL_HPP #include #include #include #include #include #include "wb_iface.hpp" #include /*! * The usrp2 FIFO control class: * Provide high-speed peek/poke interface. */ class usrp2_fifo_ctrl : public wb_iface, public uhd::spi_iface{ public: typedef boost::shared_ptr sptr; //! Make a new FIFO control object static sptr make(uhd::transport::zero_copy_if::sptr xport); //! Set the command time that will activate virtual void set_time(const uhd::time_spec_t &time) = 0; //! Set the tick rate (converting time into ticks) virtual void set_tick_rate(const double rate) = 0; }; #endif /* INCLUDED_USRP2_FIFO_CTRL_HPP */ uhd-3.5.5/host/lib/usrp/usrp2/usrp2_iface.cpp000066400000000000000000000433401224274632000210070ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp2_regs.hpp" #include "usrp2_impl.hpp" #include "fw_common.h" #include "usrp2_iface.hpp" #include #include #include #include #include #include #include #include #include //used for htonl and ntohl #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; namespace fs = boost::filesystem; static const double CTRL_RECV_TIMEOUT = 1.0; static const size_t CTRL_RECV_RETRIES = 3; //custom timeout error for retry logic to catch/retry struct timeout_error : uhd::runtime_error { timeout_error(const std::string &what): uhd::runtime_error(what) { //NOP } }; static const boost::uint32_t MIN_PROTO_COMPAT_SPI = 7; static const boost::uint32_t MIN_PROTO_COMPAT_I2C = 7; // The register compat number must reflect the protocol compatibility // and the compatibility of the register mapping (more likely to change). static const boost::uint32_t MIN_PROTO_COMPAT_REG = 10; static const boost::uint32_t MIN_PROTO_COMPAT_UART = 7; //Define get_gpid() to get a globally unique identifier for this process. //The gpid is implemented as a hash of the pid and a unique machine identifier. #ifdef UHD_PLATFORM_WIN32 #include static inline size_t get_gpid(void){ //extract volume serial number char szVolName[MAX_PATH+1], szFileSysName[MAX_PATH+1]; DWORD dwSerialNumber, dwMaxComponentLen, dwFileSysFlags; GetVolumeInformation("C:\\", szVolName, MAX_PATH, &dwSerialNumber, &dwMaxComponentLen, &dwFileSysFlags, szFileSysName, sizeof(szFileSysName)); size_t hash = 0; boost::hash_combine(hash, GetCurrentProcessId()); boost::hash_combine(hash, dwSerialNumber); return hash; } #else #include static inline size_t get_gpid(void){ size_t hash = 0; boost::hash_combine(hash, getpid()); boost::hash_combine(hash, gethostid()); return hash; } #endif class usrp2_iface_impl : public usrp2_iface{ public: /*********************************************************************** * Structors **********************************************************************/ usrp2_iface_impl(udp_simple::sptr ctrl_transport): _ctrl_transport(ctrl_transport), _ctrl_seq_num(0), _protocol_compat(0) //initialized below... { //Obtain the firmware's compat number. //Save the response compat number for communication. //TODO can choose to reject certain older compat numbers usrp2_ctrl_data_t ctrl_data = usrp2_ctrl_data_t(); ctrl_data.id = htonl(USRP2_CTRL_ID_WAZZUP_BRO); ctrl_data = ctrl_send_and_recv(ctrl_data, 0, ~0); if (ntohl(ctrl_data.id) != USRP2_CTRL_ID_WAZZUP_DUDE) throw uhd::runtime_error("firmware not responding"); _protocol_compat = ntohl(ctrl_data.proto_ver); mb_eeprom = mboard_eeprom_t(*this, USRP2_EEPROM_MAP_KEY); } ~usrp2_iface_impl(void){UHD_SAFE_CALL( this->lock_device(false); )} /*********************************************************************** * Device locking **********************************************************************/ void lock_device(bool lock){ if (lock){ this->pokefw(U2_FW_REG_LOCK_GPID, boost::uint32_t(get_gpid())); _lock_task = task::make(boost::bind(&usrp2_iface_impl::lock_task, this)); } else{ _lock_task.reset(); //shutdown the task this->pokefw(U2_FW_REG_LOCK_TIME, 0); //unlock } } bool is_device_locked(void){ //never assume lock with fpga image mismatch if ((this->peek32(U2_REG_COMPAT_NUM_RB) >> 16) != USRP2_FPGA_COMPAT_NUM) return false; boost::uint32_t lock_time = this->peekfw(U2_FW_REG_LOCK_TIME); boost::uint32_t lock_gpid = this->peekfw(U2_FW_REG_LOCK_GPID); //may not be the right tick rate, but this is ok for locking purposes const boost::uint32_t lock_timeout_time = boost::uint32_t(3*100e6); //if the difference is larger, assume not locked anymore if ((lock_time & 1) == 0) return false; //bit0 says unlocked const boost::uint32_t time_diff = this->get_curr_time() - lock_time; if (time_diff >= lock_timeout_time) return false; //otherwise only lock if the device hash is different that ours return lock_gpid != boost::uint32_t(get_gpid()); } void lock_task(void){ //re-lock in task this->pokefw(U2_FW_REG_LOCK_TIME, this->get_curr_time()); //sleep for a bit boost::this_thread::sleep(boost::posix_time::milliseconds(1500)); } boost::uint32_t get_curr_time(void){ return this->peek32(U2_REG_TIME64_LO_RB_IMM) | 1; //bit 1 says locked } /*********************************************************************** * Peek and Poke **********************************************************************/ void poke32(wb_addr_type addr, boost::uint32_t data){ this->get_reg(addr, data); } boost::uint32_t peek32(wb_addr_type addr){ return this->get_reg(addr); } void poke16(wb_addr_type addr, boost::uint16_t data){ this->get_reg(addr, data); } boost::uint16_t peek16(wb_addr_type addr){ return this->get_reg(addr); } void pokefw(wb_addr_type addr, boost::uint32_t data) { this->get_reg(addr, data); } boost::uint32_t peekfw(wb_addr_type addr) { return this->get_reg(addr); } template T get_reg(wb_addr_type addr, T data = 0){ //setup the out data usrp2_ctrl_data_t out_data = usrp2_ctrl_data_t(); out_data.id = htonl(USRP2_CTRL_ID_GET_THIS_REGISTER_FOR_ME_BRO); out_data.data.reg_args.addr = htonl(addr); out_data.data.reg_args.data = htonl(boost::uint32_t(data)); out_data.data.reg_args.action = action; //send and recv usrp2_ctrl_data_t in_data = this->ctrl_send_and_recv(out_data, MIN_PROTO_COMPAT_REG); UHD_ASSERT_THROW(ntohl(in_data.id) == USRP2_CTRL_ID_OMG_GOT_REGISTER_SO_BAD_DUDE); return T(ntohl(in_data.data.reg_args.data)); } /*********************************************************************** * SPI **********************************************************************/ boost::uint32_t transact_spi( int which_slave, const spi_config_t &config, boost::uint32_t data, size_t num_bits, bool readback ){ static const uhd::dict spi_edge_to_otw = boost::assign::map_list_of (spi_config_t::EDGE_RISE, USRP2_CLK_EDGE_RISE) (spi_config_t::EDGE_FALL, USRP2_CLK_EDGE_FALL) ; //setup the out data usrp2_ctrl_data_t out_data = usrp2_ctrl_data_t(); out_data.id = htonl(USRP2_CTRL_ID_TRANSACT_ME_SOME_SPI_BRO); out_data.data.spi_args.dev = htonl(which_slave); out_data.data.spi_args.miso_edge = spi_edge_to_otw[config.miso_edge]; out_data.data.spi_args.mosi_edge = spi_edge_to_otw[config.mosi_edge]; out_data.data.spi_args.readback = (readback)? 1 : 0; out_data.data.spi_args.num_bits = num_bits; out_data.data.spi_args.data = htonl(data); //send and recv usrp2_ctrl_data_t in_data = this->ctrl_send_and_recv(out_data, MIN_PROTO_COMPAT_SPI); UHD_ASSERT_THROW(ntohl(in_data.id) == USRP2_CTRL_ID_OMG_TRANSACTED_SPI_DUDE); return ntohl(in_data.data.spi_args.data); } /*********************************************************************** * I2C **********************************************************************/ void write_i2c(boost::uint8_t addr, const byte_vector_t &buf){ //setup the out data usrp2_ctrl_data_t out_data = usrp2_ctrl_data_t(); out_data.id = htonl(USRP2_CTRL_ID_WRITE_THESE_I2C_VALUES_BRO); out_data.data.i2c_args.addr = addr; out_data.data.i2c_args.bytes = buf.size(); //limitation of i2c transaction size UHD_ASSERT_THROW(buf.size() <= sizeof(out_data.data.i2c_args.data)); //copy in the data std::copy(buf.begin(), buf.end(), out_data.data.i2c_args.data); //send and recv usrp2_ctrl_data_t in_data = this->ctrl_send_and_recv(out_data, MIN_PROTO_COMPAT_I2C); UHD_ASSERT_THROW(ntohl(in_data.id) == USRP2_CTRL_ID_COOL_IM_DONE_I2C_WRITE_DUDE); } byte_vector_t read_i2c(boost::uint8_t addr, size_t num_bytes){ //setup the out data usrp2_ctrl_data_t out_data = usrp2_ctrl_data_t(); out_data.id = htonl(USRP2_CTRL_ID_DO_AN_I2C_READ_FOR_ME_BRO); out_data.data.i2c_args.addr = addr; out_data.data.i2c_args.bytes = num_bytes; //limitation of i2c transaction size UHD_ASSERT_THROW(num_bytes <= sizeof(out_data.data.i2c_args.data)); //send and recv usrp2_ctrl_data_t in_data = this->ctrl_send_and_recv(out_data, MIN_PROTO_COMPAT_I2C); UHD_ASSERT_THROW(ntohl(in_data.id) == USRP2_CTRL_ID_HERES_THE_I2C_DATA_DUDE); UHD_ASSERT_THROW(in_data.data.i2c_args.addr = num_bytes); //copy out the data byte_vector_t result(num_bytes); std::copy(in_data.data.i2c_args.data, in_data.data.i2c_args.data + num_bytes, result.begin()); return result; } /*********************************************************************** * Send/Recv over control **********************************************************************/ usrp2_ctrl_data_t ctrl_send_and_recv( const usrp2_ctrl_data_t &out_data, boost::uint32_t lo = USRP2_FW_COMPAT_NUM, boost::uint32_t hi = USRP2_FW_COMPAT_NUM ){ boost::mutex::scoped_lock lock(_ctrl_mutex); for (size_t i = 0; i < CTRL_RECV_RETRIES; i++){ try{ return ctrl_send_and_recv_internal(out_data, lo, hi, CTRL_RECV_TIMEOUT/CTRL_RECV_RETRIES); } catch(const timeout_error &e){ UHD_MSG(error) << "Control packet attempt " << i << ", sequence number " << _ctrl_seq_num << ":\n" << e.what() << std::endl; } } throw uhd::runtime_error("link dead: timeout waiting for control packet ACK"); } usrp2_ctrl_data_t ctrl_send_and_recv_internal( const usrp2_ctrl_data_t &out_data, boost::uint32_t lo, boost::uint32_t hi, const double timeout ){ //fill in the seq number and send usrp2_ctrl_data_t out_copy = out_data; out_copy.proto_ver = htonl(_protocol_compat); out_copy.seq = htonl(++_ctrl_seq_num); _ctrl_transport->send(boost::asio::buffer(&out_copy, sizeof(usrp2_ctrl_data_t))); //loop until we get the packet or timeout boost::uint8_t usrp2_ctrl_data_in_mem[udp_simple::mtu]; //allocate max bytes for recv const usrp2_ctrl_data_t *ctrl_data_in = reinterpret_cast(usrp2_ctrl_data_in_mem); while(true){ size_t len = _ctrl_transport->recv(boost::asio::buffer(usrp2_ctrl_data_in_mem), timeout); boost::uint32_t compat = ntohl(ctrl_data_in->proto_ver); if(len >= sizeof(boost::uint32_t) and (hi < compat or lo > compat)){ throw uhd::runtime_error(str(boost::format( "\nPlease update the firmware and FPGA images for your device.\n" "See the application notes for USRP2/N-Series for instructions.\n" "Expected protocol compatibility number %s, but got %d:\n" "The firmware build is not compatible with the host code build.\n" "%s\n" ) % ((lo == hi)? (boost::format("%d") % hi) : (boost::format("[%d to %d]") % lo % hi)) % compat % this->images_warn_help_message())); } if (len >= sizeof(usrp2_ctrl_data_t) and ntohl(ctrl_data_in->seq) == _ctrl_seq_num){ return *ctrl_data_in; } if (len == 0) break; //timeout //didnt get seq or bad packet, continue looking... } throw timeout_error("no control response, possible packet loss"); } rev_type get_rev(void){ std::string hw = mb_eeprom["hardware"]; if (hw.empty()) return USRP_NXXX; switch (boost::lexical_cast(hw)){ case 0x0300: case 0x0301: return USRP2_REV3; case 0x0400: return USRP2_REV4; case 0x0A00: return USRP_N200; case 0x0A01: return USRP_N210; case 0x0A10: return USRP_N200_R4; case 0x0A11: return USRP_N210_R4; } return USRP_NXXX; //unknown type } const std::string get_cname(void){ switch(this->get_rev()){ case USRP2_REV3: return "USRP2 r3"; case USRP2_REV4: return "USRP2 r4"; case USRP_N200: return "N200"; case USRP_N210: return "N210"; case USRP_N200_R4: return "N200r4"; case USRP_N210_R4: return "N210r4"; case USRP_NXXX: return "N???"; } UHD_THROW_INVALID_CODE_PATH(); } const std::string get_fw_version_string(void){ boost::uint32_t minor = this->get_reg(U2_FW_REG_VER_MINOR); return str(boost::format("%u.%u") % _protocol_compat % minor); } std::string images_warn_help_message(void){ //determine the images names std::string fw_image, fpga_image; switch(this->get_rev()){ case USRP2_REV3: fpga_image = "usrp2_fpga.bin"; fw_image = "usrp2_fw.bin"; break; case USRP2_REV4: fpga_image = "usrp2_fpga.bin"; fw_image = "usrp2_fw.bin"; break; case USRP_N200: fpga_image = "usrp_n200_r2_fpga.bin"; fw_image = "usrp_n200_fw.bin"; break; case USRP_N210: fpga_image = "usrp_n210_r2_fpga.bin"; fw_image = "usrp_n210_fw.bin"; break; case USRP_N200_R4: fpga_image = "usrp_n200_r4_fpga.bin"; fw_image = "usrp_n200_fw.bin"; break; case USRP_N210_R4: fpga_image = "usrp_n210_r4_fpga.bin"; fw_image = "usrp_n210_fw.bin"; break; default: break; } if (fw_image.empty() or fpga_image.empty()) return ""; //does your platform use sudo? std::string sudo; #if defined(UHD_PLATFORM_LINUX) || defined(UHD_PLATFORM_MACOS) sudo = "sudo "; #endif //look up the real FS path to the images std::string fw_image_path, fpga_image_path; try{ fw_image_path = uhd::find_image_path(fw_image); fpga_image_path = uhd::find_image_path(fpga_image); } catch(const std::exception &){ return str(boost::format("Could not find %s and %s in your images path!\n%s") % fw_image % fpga_image % print_images_error()); } //escape char for multi-line cmd + newline + indent? #ifdef UHD_PLATFORM_WIN32 const std::string ml = "^\n "; #else const std::string ml = "\\\n "; #endif //create the burner commands if (this->get_rev() == USRP2_REV3 or this->get_rev() == USRP2_REV4){ const std::string card_burner = (fs::path(fw_image_path).branch_path().branch_path() / "utils" / "usrp2_card_burner.py").string(); const std::string card_burner_cmd = str(boost::format("\"%s%s\" %s--fpga=\"%s\" %s--fw=\"%s\"") % sudo % card_burner % ml % fpga_image_path % ml % fw_image_path); return str(boost::format("%s\n%s") % print_images_error() % card_burner_cmd); } else{ const std::string addr = _ctrl_transport->get_recv_addr(); const std::string net_burner_path = (fs::path(fw_image_path).branch_path().branch_path() / "utils" / "usrp_n2xx_simple_net_burner").string(); const std::string net_burner_cmd = str(boost::format("\"%s\" %s--addr=\"%s\"") % net_burner_path % ml % addr); return str(boost::format("%s\n%s") % print_images_error() % net_burner_cmd); } } private: //this lovely lady makes it all possible udp_simple::sptr _ctrl_transport; //used in send/recv boost::mutex _ctrl_mutex; boost::uint32_t _ctrl_seq_num; boost::uint32_t _protocol_compat; //lock thread stuff task::sptr _lock_task; }; /*********************************************************************** * Public make function for usrp2 interface **********************************************************************/ usrp2_iface::sptr usrp2_iface::make(udp_simple::sptr ctrl_transport){ return usrp2_iface::sptr(new usrp2_iface_impl(ctrl_transport)); } uhd-3.5.5/host/lib/usrp/usrp2/usrp2_iface.hpp000066400000000000000000000052411224274632000210120ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP2_IFACE_HPP #define INCLUDED_USRP2_IFACE_HPP #include #include #include #include #include #include #include "usrp2_regs.hpp" #include "wb_iface.hpp" #include /*! * The usrp2 interface class: * Provides a set of functions to implementation layer. * Including spi, peek, poke, control... */ class usrp2_iface : public wb_iface, public uhd::spi_iface, public uhd::i2c_iface{ public: typedef boost::shared_ptr sptr; /*! * Make a new usrp2 interface with the control transport. * \param ctrl_transport the udp transport object * \return a new usrp2 interface object */ static sptr make(uhd::transport::udp_simple::sptr ctrl_transport); //! poke a register in the virtual fw table virtual void pokefw(wb_addr_type addr, boost::uint32_t data) = 0; //! peek a register in the virtual fw table virtual boost::uint32_t peekfw(wb_addr_type addr) = 0; //! The list of possible revision types enum rev_type { USRP2_REV3 = 3, USRP2_REV4 = 4, USRP_N200 = 200, USRP_N200_R4 = 201, USRP_N210 = 210, USRP_N210_R4 = 211, USRP_NXXX = 0 }; //! Get the revision type for this device virtual rev_type get_rev(void) = 0; //! Get the canonical name for this device virtual const std::string get_cname(void) = 0; //! Lock the device to this iface virtual void lock_device(bool lock) = 0; //! Is this device locked? virtual bool is_device_locked(void) = 0; //! A version string for firmware virtual const std::string get_fw_version_string(void) = 0; //! Construct a helpful warning message for images virtual std::string images_warn_help_message(void) = 0; //motherboard eeprom map structure uhd::usrp::mboard_eeprom_t mb_eeprom; }; #endif /* INCLUDED_USRP2_IFACE_HPP */ uhd-3.5.5/host/lib/usrp/usrp2/usrp2_impl.cpp000066400000000000000000001221461224274632000207030ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp2_impl.hpp" #include "fw_common.h" #include "apply_corrections.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //used for htonl and ntohl using namespace uhd; using namespace uhd::usrp; using namespace uhd::transport; namespace asio = boost::asio; /*********************************************************************** * Discovery over the udp transport **********************************************************************/ static device_addrs_t usrp2_find(const device_addr_t &hint_){ //handle the multi-device discovery device_addrs_t hints = separate_device_addr(hint_); if (hints.size() > 1){ device_addrs_t found_devices; BOOST_FOREACH(const device_addr_t &hint_i, hints){ device_addrs_t found_devices_i = usrp2_find(hint_i); if (found_devices_i.size() != 1) throw uhd::value_error(str(boost::format( "Could not resolve device hint \"%s\" to a single device." ) % hint_i.to_string())); found_devices.push_back(found_devices_i[0]); } return device_addrs_t(1, combine_device_addrs(found_devices)); } //initialize the hint for a single device case UHD_ASSERT_THROW(hints.size() <= 1); hints.resize(1); //in case it was empty device_addr_t hint = hints[0]; device_addrs_t usrp2_addrs; //return an empty list of addresses when type is set to non-usrp2 if (hint.has_key("type") and hint["type"] != "usrp2") return usrp2_addrs; //if no address was specified, send a broadcast on each interface if (not hint.has_key("addr")){ BOOST_FOREACH(const if_addrs_t &if_addrs, get_if_addrs()){ //avoid the loopback device if (if_addrs.inet == asio::ip::address_v4::loopback().to_string()) continue; //create a new hint with this broadcast address device_addr_t new_hint = hint; new_hint["addr"] = if_addrs.bcast; //call discover with the new hint and append results device_addrs_t new_usrp2_addrs = usrp2_find(new_hint); usrp2_addrs.insert(usrp2_addrs.begin(), new_usrp2_addrs.begin(), new_usrp2_addrs.end() ); } return usrp2_addrs; } //Create a UDP transport to communicate: //Some devices will cause a throw when opened for a broadcast address. //We print and recover so the caller can loop through all bcast addrs. udp_simple::sptr udp_transport; try{ udp_transport = udp_simple::make_broadcast(hint["addr"], BOOST_STRINGIZE(USRP2_UDP_CTRL_PORT)); } catch(const std::exception &e){ UHD_MSG(error) << boost::format("Cannot open UDP transport on %s\n%s") % hint["addr"] % e.what() << std::endl; return usrp2_addrs; //dont throw, but return empty address so caller can insert } //send a hello control packet usrp2_ctrl_data_t ctrl_data_out = usrp2_ctrl_data_t(); ctrl_data_out.proto_ver = uhd::htonx(USRP2_FW_COMPAT_NUM); ctrl_data_out.id = uhd::htonx(USRP2_CTRL_ID_WAZZUP_BRO); try { udp_transport->send(boost::asio::buffer(&ctrl_data_out, sizeof(ctrl_data_out))); } catch(const std::exception &ex) { UHD_MSG(error) << "USRP2 Network discovery error " << ex.what() << std::endl; } catch(...) { UHD_MSG(error) << "USRP2 Network discovery unknown error " << std::endl; } //loop and recieve until the timeout boost::uint8_t usrp2_ctrl_data_in_mem[udp_simple::mtu]; //allocate max bytes for recv const usrp2_ctrl_data_t *ctrl_data_in = reinterpret_cast(usrp2_ctrl_data_in_mem); while(true){ size_t len = udp_transport->recv(asio::buffer(usrp2_ctrl_data_in_mem)); if (len > offsetof(usrp2_ctrl_data_t, data) and ntohl(ctrl_data_in->id) == USRP2_CTRL_ID_WAZZUP_DUDE){ //make a boost asio ipv4 with the raw addr in host byte order device_addr_t new_addr; new_addr["type"] = "usrp2"; //We used to get the address from the control packet. //Now now uses the socket itself to yield the address. //boost::asio::ip::address_v4 ip_addr(ntohl(ctrl_data_in->data.ip_addr)); //new_addr["addr"] = ip_addr.to_string(); new_addr["addr"] = udp_transport->get_recv_addr(); //Attempt a simple 2-way communication with a connected socket. //Reason: Although the USRP will respond the broadcast above, //we may not be able to communicate directly (non-broadcast). udp_simple::sptr ctrl_xport = udp_simple::make_connected( new_addr["addr"], BOOST_STRINGIZE(USRP2_UDP_CTRL_PORT) ); ctrl_xport->send(boost::asio::buffer(&ctrl_data_out, sizeof(ctrl_data_out))); size_t len = ctrl_xport->recv(asio::buffer(usrp2_ctrl_data_in_mem)); if (len > offsetof(usrp2_ctrl_data_t, data) and ntohl(ctrl_data_in->id) == USRP2_CTRL_ID_WAZZUP_DUDE){ //found the device, open up for communication! } else{ //otherwise we don't find it... continue; } //Attempt to read the name from the EEPROM and perform filtering. //This operation can throw due to compatibility mismatch. try{ usrp2_iface::sptr iface = usrp2_iface::make(ctrl_xport); if (iface->is_device_locked()) continue; //ignore locked devices mboard_eeprom_t mb_eeprom = iface->mb_eeprom; new_addr["name"] = mb_eeprom["name"]; new_addr["serial"] = mb_eeprom["serial"]; } catch(const std::exception &){ //set these values as empty string so the device may still be found //and the filter's below can still operate on the discovered device new_addr["name"] = ""; new_addr["serial"] = ""; } //filter the discovered device below by matching optional keys if ( (not hint.has_key("name") or hint["name"] == new_addr["name"]) and (not hint.has_key("serial") or hint["serial"] == new_addr["serial"]) ){ usrp2_addrs.push_back(new_addr); } //dont break here, it will exit the while loop //just continue on to the next loop iteration } if (len == 0) break; //timeout } return usrp2_addrs; } /*********************************************************************** * Make **********************************************************************/ static device::sptr usrp2_make(const device_addr_t &device_addr){ return device::sptr(new usrp2_impl(device_addr)); } UHD_STATIC_BLOCK(register_usrp2_device){ device::register_device(&usrp2_find, &usrp2_make); } /*********************************************************************** * MTU Discovery **********************************************************************/ struct mtu_result_t{ size_t recv_mtu, send_mtu; }; static mtu_result_t determine_mtu(const std::string &addr, const mtu_result_t &user_mtu){ udp_simple::sptr udp_sock = udp_simple::make_connected( addr, BOOST_STRINGIZE(USRP2_UDP_CTRL_PORT) ); //The FPGA offers 4K buffers, and the user may manually request this. //However, multiple simultaneous receives (2DSP slave + 2DSP master), //require that buffering to be used internally, and this is a safe setting. std::vector buffer(std::max(user_mtu.recv_mtu, user_mtu.send_mtu)); usrp2_ctrl_data_t *ctrl_data = reinterpret_cast(&buffer.front()); static const double echo_timeout = 0.020; //20 ms //test holler - check if its supported in this fw version ctrl_data->id = htonl(USRP2_CTRL_ID_HOLLER_AT_ME_BRO); ctrl_data->proto_ver = htonl(USRP2_FW_COMPAT_NUM); ctrl_data->data.echo_args.len = htonl(sizeof(usrp2_ctrl_data_t)); udp_sock->send(boost::asio::buffer(buffer, sizeof(usrp2_ctrl_data_t))); udp_sock->recv(boost::asio::buffer(buffer), echo_timeout); if (ntohl(ctrl_data->id) != USRP2_CTRL_ID_HOLLER_BACK_DUDE) throw uhd::not_implemented_error("holler protocol not implemented"); size_t min_recv_mtu = sizeof(usrp2_ctrl_data_t), max_recv_mtu = user_mtu.recv_mtu; size_t min_send_mtu = sizeof(usrp2_ctrl_data_t), max_send_mtu = user_mtu.send_mtu; while (min_recv_mtu < max_recv_mtu){ size_t test_mtu = (max_recv_mtu/2 + min_recv_mtu/2 + 3) & ~3; ctrl_data->id = htonl(USRP2_CTRL_ID_HOLLER_AT_ME_BRO); ctrl_data->proto_ver = htonl(USRP2_FW_COMPAT_NUM); ctrl_data->data.echo_args.len = htonl(test_mtu); udp_sock->send(boost::asio::buffer(buffer, sizeof(usrp2_ctrl_data_t))); size_t len = udp_sock->recv(boost::asio::buffer(buffer), echo_timeout); if (len >= test_mtu) min_recv_mtu = test_mtu; else max_recv_mtu = test_mtu - 4; } while (min_send_mtu < max_send_mtu){ size_t test_mtu = (max_send_mtu/2 + min_send_mtu/2 + 3) & ~3; ctrl_data->id = htonl(USRP2_CTRL_ID_HOLLER_AT_ME_BRO); ctrl_data->proto_ver = htonl(USRP2_FW_COMPAT_NUM); ctrl_data->data.echo_args.len = htonl(sizeof(usrp2_ctrl_data_t)); udp_sock->send(boost::asio::buffer(buffer, test_mtu)); size_t len = udp_sock->recv(boost::asio::buffer(buffer), echo_timeout); if (len >= sizeof(usrp2_ctrl_data_t)) len = ntohl(ctrl_data->data.echo_args.len); if (len >= test_mtu) min_send_mtu = test_mtu; else max_send_mtu = test_mtu - 4; } mtu_result_t mtu; mtu.recv_mtu = min_recv_mtu; mtu.send_mtu = min_send_mtu; return mtu; } /*********************************************************************** * Helpers **********************************************************************/ static zero_copy_if::sptr make_xport( const std::string &addr, const std::string &port, const device_addr_t &hints, const std::string &filter ){ //only copy hints that contain the filter word device_addr_t filtered_hints; BOOST_FOREACH(const std::string &key, hints.keys()){ if (key.find(filter) == std::string::npos) continue; filtered_hints[key] = hints[key]; } //make the transport object with the filtered hints zero_copy_if::sptr xport = udp_zero_copy::make(addr, port, filtered_hints); //Send a small data packet so the usrp2 knows the udp source port. //This setup must happen before further initialization occurs //or the async update packets will cause ICMP destination unreachable. static const boost::uint32_t data[2] = { uhd::htonx(boost::uint32_t(0 /* don't care seq num */)), uhd::htonx(boost::uint32_t(USRP2_INVALID_VRT_HEADER)) }; transport::managed_send_buffer::sptr send_buff = xport->get_send_buff(); std::memcpy(send_buff->cast(), &data, sizeof(data)); send_buff->commit(sizeof(data)); return xport; } /*********************************************************************** * Structors **********************************************************************/ usrp2_impl::usrp2_impl(const device_addr_t &_device_addr){ UHD_MSG(status) << "Opening a USRP2/N-Series device..." << std::endl; device_addr_t device_addr = _device_addr; //setup the dsp transport hints (default to a large recv buff) if (not device_addr.has_key("recv_buff_size")){ #if defined(UHD_PLATFORM_MACOS) || defined(UHD_PLATFORM_BSD) //limit buffer resize on macos or it will error device_addr["recv_buff_size"] = "1e6"; #elif defined(UHD_PLATFORM_LINUX) || defined(UHD_PLATFORM_WIN32) //set to half-a-second of buffering at max rate device_addr["recv_buff_size"] = "50e6"; #endif } if (not device_addr.has_key("send_buff_size")){ //The buffer should be the size of the SRAM on the device, //because we will never commit more than the SRAM can hold. device_addr["send_buff_size"] = boost::lexical_cast(USRP2_SRAM_BYTES); } device_addrs_t device_args = separate_device_addr(device_addr); //extract the user's requested MTU size or default mtu_result_t user_mtu; user_mtu.recv_mtu = size_t(device_addr.cast("recv_frame_size", udp_simple::mtu)); user_mtu.send_mtu = size_t(device_addr.cast("send_frame_size", udp_simple::mtu)); try{ //calculate the minimum send and recv mtu of all devices mtu_result_t mtu = determine_mtu(device_args[0]["addr"], user_mtu); for (size_t i = 1; i < device_args.size(); i++){ mtu_result_t mtu_i = determine_mtu(device_args[i]["addr"], user_mtu); mtu.recv_mtu = std::min(mtu.recv_mtu, mtu_i.recv_mtu); mtu.send_mtu = std::min(mtu.send_mtu, mtu_i.send_mtu); } device_addr["recv_frame_size"] = boost::lexical_cast(mtu.recv_mtu); device_addr["send_frame_size"] = boost::lexical_cast(mtu.send_mtu); UHD_MSG(status) << boost::format("Current recv frame size: %d bytes") % mtu.recv_mtu << std::endl; UHD_MSG(status) << boost::format("Current send frame size: %d bytes") % mtu.send_mtu << std::endl; } catch(const uhd::not_implemented_error &){ //just ignore this error, makes older fw work... } device_args = separate_device_addr(device_addr); //update args for new frame sizes //////////////////////////////////////////////////////////////////// // create controller objects and initialize the properties tree //////////////////////////////////////////////////////////////////// _tree = property_tree::make(); _tree->create("/name").set("USRP2 / N-Series Device"); for (size_t mbi = 0; mbi < device_args.size(); mbi++){ const device_addr_t device_args_i = device_args[mbi]; const std::string mb = boost::lexical_cast(mbi); const std::string addr = device_args_i["addr"]; const fs_path mb_path = "/mboards/" + mb; //////////////////////////////////////////////////////////////// // create the iface that controls i2c, spi, uart, and wb //////////////////////////////////////////////////////////////// _mbc[mb].iface = usrp2_iface::make(udp_simple::make_connected( addr, BOOST_STRINGIZE(USRP2_UDP_CTRL_PORT) )); _tree->create(mb_path / "name").set(_mbc[mb].iface->get_cname()); _tree->create(mb_path / "fw_version").set(_mbc[mb].iface->get_fw_version_string()); //check the fpga compatibility number const boost::uint32_t fpga_compat_num = _mbc[mb].iface->peek32(U2_REG_COMPAT_NUM_RB); boost::uint16_t fpga_major = fpga_compat_num >> 16, fpga_minor = fpga_compat_num & 0xffff; if (fpga_major == 0){ //old version scheme fpga_major = fpga_minor; fpga_minor = 0; } if (fpga_major != USRP2_FPGA_COMPAT_NUM){ throw uhd::runtime_error(str(boost::format( "\nPlease update the firmware and FPGA images for your device.\n" "See the application notes for USRP2/N-Series for instructions.\n" "Expected FPGA compatibility number %d, but got %d:\n" "The FPGA build is not compatible with the host code build.\n" "%s\n" ) % int(USRP2_FPGA_COMPAT_NUM) % fpga_major % _mbc[mb].iface->images_warn_help_message())); } _tree->create(mb_path / "fpga_version").set(str(boost::format("%u.%u") % fpga_major % fpga_minor)); //lock the device/motherboard to this process _mbc[mb].iface->lock_device(true); //////////////////////////////////////////////////////////////// // construct transports for RX and TX DSPs //////////////////////////////////////////////////////////////// UHD_LOG << "Making transport for RX DSP0..." << std::endl; _mbc[mb].rx_dsp_xports.push_back(make_xport( addr, BOOST_STRINGIZE(USRP2_UDP_RX_DSP0_PORT), device_args_i, "recv" )); UHD_LOG << "Making transport for RX DSP1..." << std::endl; _mbc[mb].rx_dsp_xports.push_back(make_xport( addr, BOOST_STRINGIZE(USRP2_UDP_RX_DSP1_PORT), device_args_i, "recv" )); UHD_LOG << "Making transport for TX DSP0..." << std::endl; _mbc[mb].tx_dsp_xport = make_xport( addr, BOOST_STRINGIZE(USRP2_UDP_TX_DSP0_PORT), device_args_i, "send" ); UHD_LOG << "Making transport for Control..." << std::endl; _mbc[mb].fifo_ctrl_xport = make_xport( addr, BOOST_STRINGIZE(USRP2_UDP_FIFO_CRTL_PORT), device_addr_t(), "" ); //set the filter on the router to take dsp data from this port _mbc[mb].iface->poke32(U2_REG_ROUTER_CTRL_PORTS, (USRP2_UDP_FIFO_CRTL_PORT << 16) | USRP2_UDP_TX_DSP0_PORT); //create the fifo control interface for high speed register access _mbc[mb].fifo_ctrl = usrp2_fifo_ctrl::make(_mbc[mb].fifo_ctrl_xport); switch(_mbc[mb].iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _mbc[mb].wbiface = _mbc[mb].fifo_ctrl; _mbc[mb].spiface = _mbc[mb].fifo_ctrl; break; default: _mbc[mb].wbiface = _mbc[mb].iface; _mbc[mb].spiface = _mbc[mb].iface; break; } //////////////////////////////////////////////////////////////// // setup the mboard eeprom //////////////////////////////////////////////////////////////// _tree->create(mb_path / "eeprom") .set(_mbc[mb].iface->mb_eeprom) .subscribe(boost::bind(&usrp2_impl::set_mb_eeprom, this, mb, _1)); //////////////////////////////////////////////////////////////// // create clock control objects //////////////////////////////////////////////////////////////// _mbc[mb].clock = usrp2_clock_ctrl::make(_mbc[mb].iface, _mbc[mb].spiface); _tree->create(mb_path / "tick_rate") .publish(boost::bind(&usrp2_clock_ctrl::get_master_clock_rate, _mbc[mb].clock)) .subscribe(boost::bind(&usrp2_impl::update_tick_rate, this, _1)); //////////////////////////////////////////////////////////////// // create codec control objects //////////////////////////////////////////////////////////////// const fs_path rx_codec_path = mb_path / "rx_codecs/A"; const fs_path tx_codec_path = mb_path / "tx_codecs/A"; _tree->create(rx_codec_path / "gains"); //phony property so this dir exists _tree->create(tx_codec_path / "gains"); //phony property so this dir exists _mbc[mb].codec = usrp2_codec_ctrl::make(_mbc[mb].iface, _mbc[mb].spiface); switch(_mbc[mb].iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4:{ _tree->create(rx_codec_path / "name").set("ads62p44"); _tree->create(rx_codec_path / "gains/digital/range").set(meta_range_t(0, 6.0, 0.5)); _tree->create(rx_codec_path / "gains/digital/value") .subscribe(boost::bind(&usrp2_codec_ctrl::set_rx_digital_gain, _mbc[mb].codec, _1)).set(0); _tree->create(rx_codec_path / "gains/fine/range").set(meta_range_t(0, 0.5, 0.05)); _tree->create(rx_codec_path / "gains/fine/value") .subscribe(boost::bind(&usrp2_codec_ctrl::set_rx_digital_fine_gain, _mbc[mb].codec, _1)).set(0); }break; case usrp2_iface::USRP2_REV3: case usrp2_iface::USRP2_REV4: _tree->create(rx_codec_path / "name").set("ltc2284"); break; case usrp2_iface::USRP_NXXX: _tree->create(rx_codec_path / "name").set("??????"); break; } _tree->create(tx_codec_path / "name").set("ad9777"); //////////////////////////////////////////////////////////////////// // Create the GPSDO control //////////////////////////////////////////////////////////////////// static const boost::uint32_t dont_look_for_gpsdo = 0x1234abcdul; //disable check for internal GPSDO when not the following: switch(_mbc[mb].iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: break; default: _mbc[mb].iface->pokefw(U2_FW_REG_HAS_GPSDO, dont_look_for_gpsdo); } //otherwise if not disabled, look for the internal GPSDO if (_mbc[mb].iface->peekfw(U2_FW_REG_HAS_GPSDO) != dont_look_for_gpsdo) { UHD_MSG(status) << "Detecting internal GPSDO.... " << std::flush; try{ _mbc[mb].gps = gps_ctrl::make(udp_simple::make_uart(udp_simple::make_connected( addr, BOOST_STRINGIZE(USRP2_UDP_UART_GPS_PORT) ))); } catch(std::exception &e){ UHD_MSG(error) << "An error occurred making GPSDO control: " << e.what() << std::endl; } if (_mbc[mb].gps and _mbc[mb].gps->gps_detected()) { UHD_MSG(status) << "found" << std::endl; BOOST_FOREACH(const std::string &name, _mbc[mb].gps->get_sensors()) { _tree->create(mb_path / "sensors" / name) .publish(boost::bind(&gps_ctrl::get_sensor, _mbc[mb].gps, name)); } } else { UHD_MSG(status) << "not found" << std::endl; _mbc[mb].iface->pokefw(U2_FW_REG_HAS_GPSDO, dont_look_for_gpsdo); } } //////////////////////////////////////////////////////////////// // and do the misc mboard sensors //////////////////////////////////////////////////////////////// _tree->create(mb_path / "sensors/mimo_locked") .publish(boost::bind(&usrp2_impl::get_mimo_locked, this, mb)); _tree->create(mb_path / "sensors/ref_locked") .publish(boost::bind(&usrp2_impl::get_ref_locked, this, mb)); //////////////////////////////////////////////////////////////// // create frontend control objects //////////////////////////////////////////////////////////////// _mbc[mb].rx_fe = rx_frontend_core_200::make( _mbc[mb].wbiface, U2_REG_SR_ADDR(SR_RX_FRONT) ); _mbc[mb].tx_fe = tx_frontend_core_200::make( _mbc[mb].wbiface, U2_REG_SR_ADDR(SR_TX_FRONT) ); _tree->create(mb_path / "rx_subdev_spec") .subscribe(boost::bind(&usrp2_impl::update_rx_subdev_spec, this, mb, _1)); _tree->create(mb_path / "tx_subdev_spec") .subscribe(boost::bind(&usrp2_impl::update_tx_subdev_spec, this, mb, _1)); const fs_path rx_fe_path = mb_path / "rx_frontends" / "A"; const fs_path tx_fe_path = mb_path / "tx_frontends" / "A"; _tree->create >(rx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&rx_frontend_core_200::set_dc_offset, _mbc[mb].rx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create(rx_fe_path / "dc_offset" / "enable") .subscribe(boost::bind(&rx_frontend_core_200::set_dc_offset_auto, _mbc[mb].rx_fe, _1)) .set(true); _tree->create >(rx_fe_path / "iq_balance" / "value") .subscribe(boost::bind(&rx_frontend_core_200::set_iq_balance, _mbc[mb].rx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "dc_offset" / "value") .coerce(boost::bind(&tx_frontend_core_200::set_dc_offset, _mbc[mb].tx_fe, _1)) .set(std::complex(0.0, 0.0)); _tree->create >(tx_fe_path / "iq_balance" / "value") .subscribe(boost::bind(&tx_frontend_core_200::set_iq_balance, _mbc[mb].tx_fe, _1)) .set(std::complex(0.0, 0.0)); //////////////////////////////////////////////////////////////// // create rx dsp control objects //////////////////////////////////////////////////////////////// _mbc[mb].rx_dsps.push_back(rx_dsp_core_200::make( _mbc[mb].wbiface, U2_REG_SR_ADDR(SR_RX_DSP0), U2_REG_SR_ADDR(SR_RX_CTRL0), USRP2_RX_SID_BASE + 0, true )); _mbc[mb].rx_dsps.push_back(rx_dsp_core_200::make( _mbc[mb].wbiface, U2_REG_SR_ADDR(SR_RX_DSP1), U2_REG_SR_ADDR(SR_RX_CTRL1), USRP2_RX_SID_BASE + 1, true )); for (size_t dspno = 0; dspno < _mbc[mb].rx_dsps.size(); dspno++){ _mbc[mb].rx_dsps[dspno]->set_link_rate(USRP2_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&rx_dsp_core_200::set_tick_rate, _mbc[mb].rx_dsps[dspno], _1)); fs_path rx_dsp_path = mb_path / str(boost::format("rx_dsps/%u") % dspno); _tree->create(rx_dsp_path / "rate/range") .publish(boost::bind(&rx_dsp_core_200::get_host_rates, _mbc[mb].rx_dsps[dspno])); _tree->create(rx_dsp_path / "rate/value") .set(1e6) //some default .coerce(boost::bind(&rx_dsp_core_200::set_host_rate, _mbc[mb].rx_dsps[dspno], _1)) .subscribe(boost::bind(&usrp2_impl::update_rx_samp_rate, this, mb, dspno, _1)); _tree->create(rx_dsp_path / "freq/value") .coerce(boost::bind(&rx_dsp_core_200::set_freq, _mbc[mb].rx_dsps[dspno], _1)); _tree->create(rx_dsp_path / "freq/range") .publish(boost::bind(&rx_dsp_core_200::get_freq_range, _mbc[mb].rx_dsps[dspno])); _tree->create(rx_dsp_path / "stream_cmd") .subscribe(boost::bind(&rx_dsp_core_200::issue_stream_command, _mbc[mb].rx_dsps[dspno], _1)); } //////////////////////////////////////////////////////////////// // create tx dsp control objects //////////////////////////////////////////////////////////////// _mbc[mb].tx_dsp = tx_dsp_core_200::make( _mbc[mb].wbiface, U2_REG_SR_ADDR(SR_TX_DSP), U2_REG_SR_ADDR(SR_TX_CTRL), USRP2_TX_ASYNC_SID ); _mbc[mb].tx_dsp->set_link_rate(USRP2_LINK_RATE_BPS); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&tx_dsp_core_200::set_tick_rate, _mbc[mb].tx_dsp, _1)); _tree->create(mb_path / "tx_dsps/0/rate/range") .publish(boost::bind(&tx_dsp_core_200::get_host_rates, _mbc[mb].tx_dsp)); _tree->create(mb_path / "tx_dsps/0/rate/value") .set(1e6) //some default .coerce(boost::bind(&tx_dsp_core_200::set_host_rate, _mbc[mb].tx_dsp, _1)) .subscribe(boost::bind(&usrp2_impl::update_tx_samp_rate, this, mb, 0, _1)); _tree->create(mb_path / "tx_dsps/0/freq/value") .coerce(boost::bind(&usrp2_impl::set_tx_dsp_freq, this, mb, _1)); _tree->create(mb_path / "tx_dsps/0/freq/range") .publish(boost::bind(&usrp2_impl::get_tx_dsp_freq_range, this, mb)); //setup dsp flow control const double ups_per_sec = device_args_i.cast("ups_per_sec", 20); const size_t send_frame_size = _mbc[mb].tx_dsp_xport->get_send_frame_size(); const double ups_per_fifo = device_args_i.cast("ups_per_fifo", 8.0); _mbc[mb].tx_dsp->set_updates( (ups_per_sec > 0.0)? size_t(100e6/*approx tick rate*//ups_per_sec) : 0, (ups_per_fifo > 0.0)? size_t(USRP2_SRAM_BYTES/ups_per_fifo/send_frame_size) : 0 ); //////////////////////////////////////////////////////////////// // create time control objects //////////////////////////////////////////////////////////////// time64_core_200::readback_bases_type time64_rb_bases; time64_rb_bases.rb_hi_now = U2_REG_TIME64_HI_RB_IMM; time64_rb_bases.rb_lo_now = U2_REG_TIME64_LO_RB_IMM; time64_rb_bases.rb_hi_pps = U2_REG_TIME64_HI_RB_PPS; time64_rb_bases.rb_lo_pps = U2_REG_TIME64_LO_RB_PPS; _mbc[mb].time64 = time64_core_200::make( _mbc[mb].wbiface, U2_REG_SR_ADDR(SR_TIME64), time64_rb_bases, mimo_clock_sync_delay_cycles ); _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&time64_core_200::set_tick_rate, _mbc[mb].time64, _1)); _tree->create(mb_path / "time/now") .publish(boost::bind(&time64_core_200::get_time_now, _mbc[mb].time64)) .subscribe(boost::bind(&time64_core_200::set_time_now, _mbc[mb].time64, _1)); _tree->create(mb_path / "time/pps") .publish(boost::bind(&time64_core_200::get_time_last_pps, _mbc[mb].time64)) .subscribe(boost::bind(&time64_core_200::set_time_next_pps, _mbc[mb].time64, _1)); //setup time source props _tree->create(mb_path / "time_source/value") .subscribe(boost::bind(&time64_core_200::set_time_source, _mbc[mb].time64, _1)); _tree->create >(mb_path / "time_source/options") .publish(boost::bind(&time64_core_200::get_time_sources, _mbc[mb].time64)); //setup reference source props _tree->create(mb_path / "clock_source/value") .subscribe(boost::bind(&usrp2_impl::update_clock_source, this, mb, _1)); std::vector clock_sources = boost::assign::list_of("internal")("external")("mimo"); if (_mbc[mb].gps and _mbc[mb].gps->gps_detected()) clock_sources.push_back("gpsdo"); _tree->create >(mb_path / "clock_source/options").set(clock_sources); //plug timed commands into tree here switch(_mbc[mb].iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _tree->create(mb_path / "time/cmd") .subscribe(boost::bind(&usrp2_fifo_ctrl::set_time, _mbc[mb].fifo_ctrl, _1)); default: break; //otherwise, do not register } _tree->access(mb_path / "tick_rate") .subscribe(boost::bind(&usrp2_fifo_ctrl::set_tick_rate, _mbc[mb].fifo_ctrl, _1)); //////////////////////////////////////////////////////////////////// // create user-defined control objects //////////////////////////////////////////////////////////////////// _mbc[mb].user = user_settings_core_200::make(_mbc[mb].wbiface, U2_REG_SR_ADDR(SR_USER_REGS)); _tree->create(mb_path / "user/regs") .subscribe(boost::bind(&user_settings_core_200::set_reg, _mbc[mb].user, _1)); //////////////////////////////////////////////////////////////// // create dboard control objects //////////////////////////////////////////////////////////////// //read the dboard eeprom to extract the dboard ids dboard_eeprom_t rx_db_eeprom, tx_db_eeprom, gdb_eeprom; rx_db_eeprom.load(*_mbc[mb].iface, USRP2_I2C_ADDR_RX_DB); tx_db_eeprom.load(*_mbc[mb].iface, USRP2_I2C_ADDR_TX_DB); gdb_eeprom.load(*_mbc[mb].iface, USRP2_I2C_ADDR_TX_DB ^ 5); //disable rx dc offset if LFRX if (rx_db_eeprom.id == 0x000f) _tree->access(rx_fe_path / "dc_offset" / "enable").set(false); //create the properties and register subscribers _tree->create(mb_path / "dboards/A/rx_eeprom") .set(rx_db_eeprom) .subscribe(boost::bind(&usrp2_impl::set_db_eeprom, this, mb, "rx", _1)); _tree->create(mb_path / "dboards/A/tx_eeprom") .set(tx_db_eeprom) .subscribe(boost::bind(&usrp2_impl::set_db_eeprom, this, mb, "tx", _1)); _tree->create(mb_path / "dboards/A/gdb_eeprom") .set(gdb_eeprom) .subscribe(boost::bind(&usrp2_impl::set_db_eeprom, this, mb, "gdb", _1)); //create a new dboard interface and manager _mbc[mb].dboard_iface = make_usrp2_dboard_iface(_mbc[mb].wbiface, _mbc[mb].iface/*i2c*/, _mbc[mb].spiface, _mbc[mb].clock); _tree->create(mb_path / "dboards/A/iface").set(_mbc[mb].dboard_iface); _mbc[mb].dboard_manager = dboard_manager::make( rx_db_eeprom.id, tx_db_eeprom.id, gdb_eeprom.id, _mbc[mb].dboard_iface, _tree->subtree(mb_path / "dboards/A") ); //bind frontend corrections to the dboard freq props const fs_path db_tx_fe_path = mb_path / "dboards" / "A" / "tx_frontends"; BOOST_FOREACH(const std::string &name, _tree->list(db_tx_fe_path)){ _tree->access(db_tx_fe_path / name / "freq" / "value") .subscribe(boost::bind(&usrp2_impl::set_tx_fe_corrections, this, mb, _1)); } const fs_path db_rx_fe_path = mb_path / "dboards" / "A" / "rx_frontends"; BOOST_FOREACH(const std::string &name, _tree->list(db_rx_fe_path)){ _tree->access(db_rx_fe_path / name / "freq" / "value") .subscribe(boost::bind(&usrp2_impl::set_rx_fe_corrections, this, mb, _1)); } } //initialize io handling this->io_init(); //do some post-init tasks this->update_rates(); BOOST_FOREACH(const std::string &mb, _mbc.keys()){ fs_path root = "/mboards/" + mb; //reset cordic rates and their properties to zero BOOST_FOREACH(const std::string &name, _tree->list(root / "rx_dsps")){ _tree->access(root / "rx_dsps" / name / "freq" / "value").set(0.0); } BOOST_FOREACH(const std::string &name, _tree->list(root / "tx_dsps")){ _tree->access(root / "tx_dsps" / name / "freq" / "value").set(0.0); } _tree->access(root / "rx_subdev_spec").set(subdev_spec_t("A:" + _tree->list(root / "dboards/A/rx_frontends").at(0))); _tree->access(root / "tx_subdev_spec").set(subdev_spec_t("A:" + _tree->list(root / "dboards/A/tx_frontends").at(0))); _tree->access(root / "clock_source/value").set("internal"); _tree->access(root / "time_source/value").set("none"); //GPS installed: use external ref, time, and init time spec if (_mbc[mb].gps and _mbc[mb].gps->gps_detected()){ _mbc[mb].time64->enable_gpsdo(); UHD_MSG(status) << "Setting references to the internal GPSDO" << std::endl; _tree->access(root / "time_source/value").set("gpsdo"); _tree->access(root / "clock_source/value").set("gpsdo"); UHD_MSG(status) << "Initializing time to the internal GPSDO" << std::endl; _mbc[mb].time64->set_time_next_pps(time_spec_t(time_t(_mbc[mb].gps->get_sensor("gps_time").to_int()+1))); } } } usrp2_impl::~usrp2_impl(void){UHD_SAFE_CALL( BOOST_FOREACH(const std::string &mb, _mbc.keys()){ _mbc[mb].tx_dsp->set_updates(0, 0); } )} void usrp2_impl::set_mb_eeprom(const std::string &mb, const uhd::usrp::mboard_eeprom_t &mb_eeprom){ mb_eeprom.commit(*(_mbc[mb].iface), USRP2_EEPROM_MAP_KEY); } void usrp2_impl::set_db_eeprom(const std::string &mb, const std::string &type, const uhd::usrp::dboard_eeprom_t &db_eeprom){ if (type == "rx") db_eeprom.store(*_mbc[mb].iface, USRP2_I2C_ADDR_RX_DB); if (type == "tx") db_eeprom.store(*_mbc[mb].iface, USRP2_I2C_ADDR_TX_DB); if (type == "gdb") db_eeprom.store(*_mbc[mb].iface, USRP2_I2C_ADDR_TX_DB ^ 5); } sensor_value_t usrp2_impl::get_mimo_locked(const std::string &mb){ const bool lock = (_mbc[mb].wbiface->peek32(U2_REG_IRQ_RB) & (1<<10)) != 0; return sensor_value_t("MIMO", lock, "locked", "unlocked"); } sensor_value_t usrp2_impl::get_ref_locked(const std::string &mb){ const bool lock = (_mbc[mb].wbiface->peek32(U2_REG_IRQ_RB) & (1<<11)) != 0; return sensor_value_t("Ref", lock, "locked", "unlocked"); } void usrp2_impl::set_rx_fe_corrections(const std::string &mb, const double lo_freq){ apply_rx_fe_corrections(this->get_tree()->subtree("/mboards/" + mb), "A", lo_freq); } void usrp2_impl::set_tx_fe_corrections(const std::string &mb, const double lo_freq){ apply_tx_fe_corrections(this->get_tree()->subtree("/mboards/" + mb), "A", lo_freq); } #include #include double usrp2_impl::set_tx_dsp_freq(const std::string &mb, const double freq_){ double new_freq = freq_; const double tick_rate = _tree->access("/mboards/"+mb+"/tick_rate").get(); //calculate the DAC shift (multiples of rate) const int sign = boost::math::sign(new_freq); const int zone = std::min(boost::math::iround(new_freq/tick_rate), 2); const double dac_shift = sign*zone*tick_rate; new_freq -= dac_shift; //update FPGA DSP target freq //set the DAC shift (modulation mode) if (zone == 0) _mbc[mb].codec->set_tx_mod_mode(0); //no shift else _mbc[mb].codec->set_tx_mod_mode(sign*4/zone); //DAC interp = 4 return _mbc[mb].tx_dsp->set_freq(new_freq) + dac_shift; //actual freq } meta_range_t usrp2_impl::get_tx_dsp_freq_range(const std::string &mb){ const double tick_rate = _tree->access("/mboards/"+mb+"/tick_rate").get(); const meta_range_t dsp_range = _mbc[mb].tx_dsp->get_freq_range(); return meta_range_t(dsp_range.start() - tick_rate*2, dsp_range.stop() + tick_rate*2, dsp_range.step()); } void usrp2_impl::update_clock_source(const std::string &mb, const std::string &source){ //NOTICE: U2_REG_MISC_CTRL_CLOCK is on the wb clock, and cannot be set from fifo_ctrl //clock source ref 10mhz switch(_mbc[mb].iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: if (source == "internal") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x12); else if (source == "external") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x1C); else if (source == "gpsdo") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x1C); else if (source == "mimo") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x15); else throw uhd::value_error("unhandled clock configuration reference source: " + source); _mbc[mb].clock->enable_external_ref(true); //USRP2P has an internal 10MHz TCXO break; case usrp2_iface::USRP2_REV3: case usrp2_iface::USRP2_REV4: if (source == "internal") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x10); else if (source == "external") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x1C); else if (source == "mimo") _mbc[mb].iface->poke32(U2_REG_MISC_CTRL_CLOCK, 0x15); else throw uhd::value_error("unhandled clock configuration reference source: " + source); _mbc[mb].clock->enable_external_ref(source != "internal"); break; case usrp2_iface::USRP_NXXX: break; } //always drive the clock over serdes if not locking to it _mbc[mb].clock->enable_mimo_clock_out(source != "mimo"); //set the mimo clock delay over the serdes if (source != "mimo"){ switch(_mbc[mb].iface->get_rev()){ case usrp2_iface::USRP_N200: case usrp2_iface::USRP_N210: case usrp2_iface::USRP_N200_R4: case usrp2_iface::USRP_N210_R4: _mbc[mb].clock->set_mimo_clock_delay(mimo_clock_delay_usrp_n2xx); break; case usrp2_iface::USRP2_REV4: _mbc[mb].clock->set_mimo_clock_delay(mimo_clock_delay_usrp2_rev4); break; default: break; //not handled } } } uhd-3.5.5/host/lib/usrp/usrp2/usrp2_impl.hpp000066400000000000000000000125631224274632000207110ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP2_IMPL_HPP #define INCLUDED_USRP2_IMPL_HPP #include "gpio_core_200.hpp" #include "usrp2_iface.hpp" #include "usrp2_fifo_ctrl.hpp" #include "clock_ctrl.hpp" #include "codec_ctrl.hpp" #include "rx_frontend_core_200.hpp" #include "tx_frontend_core_200.hpp" #include "rx_dsp_core_200.hpp" #include "tx_dsp_core_200.hpp" #include "time64_core_200.hpp" #include "user_settings_core_200.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static const double USRP2_LINK_RATE_BPS = 1000e6/8; static const double mimo_clock_delay_usrp2_rev4 = 4.18e-9; static const double mimo_clock_delay_usrp_n2xx = 4.10e-9; static const size_t mimo_clock_sync_delay_cycles = 138; static const size_t USRP2_SRAM_BYTES = size_t(1 << 20); static const boost::uint32_t USRP2_TX_ASYNC_SID = 2; static const boost::uint32_t USRP2_RX_SID_BASE = 3; static const std::string USRP2_EEPROM_MAP_KEY = "N100"; //! Make a usrp2 dboard interface. uhd::usrp::dboard_iface::sptr make_usrp2_dboard_iface( wb_iface::sptr wb_iface, uhd::i2c_iface::sptr i2c_iface, uhd::spi_iface::sptr spi_iface, usrp2_clock_ctrl::sptr clk_ctrl ); /*! * USRP2 implementation guts: * The implementation details are encapsulated here. * Handles device properties and streaming... */ class usrp2_impl : public uhd::device{ public: usrp2_impl(const uhd::device_addr_t &); ~usrp2_impl(void); //the io interface uhd::rx_streamer::sptr get_rx_stream(const uhd::stream_args_t &args); uhd::tx_streamer::sptr get_tx_stream(const uhd::stream_args_t &args); bool recv_async_msg(uhd::async_metadata_t &, double); private: uhd::property_tree::sptr _tree; struct mb_container_type{ usrp2_iface::sptr iface; usrp2_fifo_ctrl::sptr fifo_ctrl; uhd::spi_iface::sptr spiface; wb_iface::sptr wbiface; usrp2_clock_ctrl::sptr clock; usrp2_codec_ctrl::sptr codec; uhd::gps_ctrl::sptr gps; rx_frontend_core_200::sptr rx_fe; tx_frontend_core_200::sptr tx_fe; std::vector rx_dsps; std::vector > rx_streamers; std::vector > tx_streamers; tx_dsp_core_200::sptr tx_dsp; time64_core_200::sptr time64; user_settings_core_200::sptr user; std::vector rx_dsp_xports; uhd::transport::zero_copy_if::sptr tx_dsp_xport; uhd::transport::zero_copy_if::sptr fifo_ctrl_xport; uhd::usrp::dboard_manager::sptr dboard_manager; uhd::usrp::dboard_iface::sptr dboard_iface; size_t rx_chan_occ, tx_chan_occ; mb_container_type(void): rx_chan_occ(0), tx_chan_occ(0){} }; uhd::dict _mbc; void set_mb_eeprom(const std::string &, const uhd::usrp::mboard_eeprom_t &); void set_db_eeprom(const std::string &, const std::string &, const uhd::usrp::dboard_eeprom_t &); uhd::sensor_value_t get_mimo_locked(const std::string &); uhd::sensor_value_t get_ref_locked(const std::string &); void set_rx_fe_corrections(const std::string &mb, const double); void set_tx_fe_corrections(const std::string &mb, const double); //device properties interface uhd::property_tree::sptr get_tree(void) const{ return _tree; } //io impl methods and members UHD_PIMPL_DECL(io_impl) _io_impl; void io_init(void); void update_tick_rate(const double rate); void update_rx_samp_rate(const std::string &, const size_t, const double rate); void update_tx_samp_rate(const std::string &, const size_t, const double rate); void update_rates(void); //update spec methods are coercers until we only accept db_name == A void update_rx_subdev_spec(const std::string &, const uhd::usrp::subdev_spec_t &); void update_tx_subdev_spec(const std::string &, const uhd::usrp::subdev_spec_t &); double set_tx_dsp_freq(const std::string &, const double); uhd::meta_range_t get_tx_dsp_freq_range(const std::string &); void update_clock_source(const std::string &, const std::string &); void program_stream_dest(uhd::transport::zero_copy_if::sptr &, const uhd::stream_args_t &); }; #endif /* INCLUDED_USRP2_IMPL_HPP */ uhd-3.5.5/host/lib/usrp/usrp2/usrp2_regs.hpp000066400000000000000000000073741224274632000207140ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef INCLUDED_USRP2_REGS_HPP #define INCLUDED_USRP2_REGS_HPP //////////////////////////////////////////////////////////////////////// // Define slave bases //////////////////////////////////////////////////////////////////////// #define ROUTER_RAM_BASE 0x4000 #define SPI_BASE 0x5000 #define I2C_BASE 0x5400 #define GPIO_BASE 0x5800 #define READBACK_BASE 0x5C00 #define ETH_BASE 0x6000 #define SETTING_REGS_BASE 0x7000 #define PIC_BASE 0x8000 #define UART_BASE 0x8800 #define ATR_BASE 0x8C00 //////////////////////////////////////////////////////////////////////// // Setting register offsets //////////////////////////////////////////////////////////////////////// #define SR_MISC 0 // 7 regs #define SR_USER_REGS 8 // 2 #define SR_TIME64 10 // 6 #define SR_BUF_POOL 16 // 4 #define SR_SPI_CORE 20 // 3 #define SR_RX_FRONT 24 // 5 #define SR_RX_CTRL0 32 // 9 #define SR_RX_DSP0 48 // 7 #define SR_RX_CTRL1 80 // 9 #define SR_RX_DSP1 96 // 7 #define SR_TX_FRONT 128 // ? #define SR_TX_CTRL 144 // 6 #define SR_TX_DSP 160 // 5 #define SR_GPIO 184 #define SR_UDP_SM 192 // 64 #define U2_REG_SR_ADDR(sr) (SETTING_REGS_BASE + (4 * (sr))) #define U2_REG_ROUTER_CTRL_PORTS U2_REG_SR_ADDR(SR_BUF_POOL) + 8 ///////////////////////////////////////////////// // SPI Slave Constants //////////////////////////////////////////////// // Masks for controlling different peripherals #define SPI_SS_AD9510 1 #define SPI_SS_AD9777 2 #define SPI_SS_RX_DAC 4 #define SPI_SS_RX_ADC 8 #define SPI_SS_RX_DB 16 #define SPI_SS_TX_DAC 32 #define SPI_SS_TX_ADC 64 #define SPI_SS_TX_DB 128 #define SPI_SS_ADS62P44 256 //for usrp2p ///////////////////////////////////////////////// // Misc Control //////////////////////////////////////////////// #define U2_REG_MISC_CTRL_CLOCK U2_REG_SR_ADDR(0) #define U2_REG_MISC_CTRL_SERDES U2_REG_SR_ADDR(1) #define U2_REG_MISC_CTRL_ADC U2_REG_SR_ADDR(2) #define U2_REG_MISC_CTRL_LEDS U2_REG_SR_ADDR(3) #define U2_REG_MISC_CTRL_PHY U2_REG_SR_ADDR(4) #define U2_REG_MISC_CTRL_DBG_MUX U2_REG_SR_ADDR(5) #define U2_REG_MISC_CTRL_RAM_PAGE U2_REG_SR_ADDR(6) #define U2_REG_MISC_CTRL_FLUSH_ICACHE U2_REG_SR_ADDR(7) #define U2_REG_MISC_CTRL_LED_SRC U2_REG_SR_ADDR(8) #define U2_FLAG_MISC_CTRL_SERDES_ENABLE 8 #define U2_FLAG_MISC_CTRL_SERDES_PRBSEN 4 #define U2_FLAG_MISC_CTRL_SERDES_LOOPEN 2 #define U2_FLAG_MISC_CTRL_SERDES_RXEN 1 #define U2_FLAG_MISC_CTRL_ADC_ON 0x0F #define U2_FLAG_MISC_CTRL_ADC_OFF 0x00 ///////////////////////////////////////////////// // Readback regs //////////////////////////////////////////////// #define U2_REG_STATUS READBACK_BASE + 4*8 #define U2_REG_GPIO_RB READBACK_BASE + 4*9 #define U2_REG_TIME64_HI_RB_IMM READBACK_BASE + 4*10 #define U2_REG_TIME64_LO_RB_IMM READBACK_BASE + 4*11 #define U2_REG_COMPAT_NUM_RB READBACK_BASE + 4*12 #define U2_REG_IRQ_RB READBACK_BASE + 4*13 #define U2_REG_TIME64_HI_RB_PPS READBACK_BASE + 4*14 #define U2_REG_TIME64_LO_RB_PPS READBACK_BASE + 4*15 #endif /* INCLUDED_USRP2_REGS_HPP */ uhd-3.5.5/host/lib/utils/000077500000000000000000000000001224274632000151715ustar00rootroot00000000000000uhd-3.5.5/host/lib/utils/CMakeLists.txt000066400000000000000000000112271224274632000177340ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # This file included, use CMake directory variables ######################################################################## ######################################################################## # Setup defines for process scheduling ######################################################################## MESSAGE(STATUS "") MESSAGE(STATUS "Configuring priority scheduling...") INCLUDE(CheckCXXSourceCompiles) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ struct sched_param sp; pthread_setschedparam(pthread_self(), SCHED_RR, &sp); return 0; } " HAVE_PTHREAD_SETSCHEDPARAM ) IF(CYGWIN) #SCHED_RR non-operational on cygwin SET(HAVE_PTHREAD_SETSCHEDPARAM False) ENDIF(CYGWIN) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ SetThreadPriority(GetCurrentThread(), 0); SetPriorityClass(GetCurrentProcess(), 0); return 0; } " HAVE_WIN_SETTHREADPRIORITY ) IF(HAVE_PTHREAD_SETSCHEDPARAM) MESSAGE(STATUS " Priority scheduling supported through pthread_setschedparam.") SET(THREAD_PRIO_DEFS HAVE_PTHREAD_SETSCHEDPARAM) LIBUHD_APPEND_LIBS(pthread) ELSEIF(HAVE_WIN_SETTHREADPRIORITY) MESSAGE(STATUS " Priority scheduling supported through windows SetThreadPriority.") SET(THREAD_PRIO_DEFS HAVE_WIN_SETTHREADPRIORITY) ELSE() MESSAGE(STATUS " Priority scheduling not supported.") SET(THREAD_PRIO_DEFS HAVE_THREAD_PRIO_DUMMY) ENDIF() SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/thread_priority.cpp PROPERTIES COMPILE_DEFINITIONS "${THREAD_PRIO_DEFS}" ) ######################################################################## # Setup defines for module loading ######################################################################## MESSAGE(STATUS "") MESSAGE(STATUS "Configuring module loading...") INCLUDE(CheckCXXSourceCompiles) SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_DL_LIBS}) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ dlopen(0, 0); return 0; } " HAVE_DLOPEN ) UNSET(CMAKE_REQUIRED_LIBRARIES) CHECK_CXX_SOURCE_COMPILES(" #include int main(){ LoadLibrary(0); return 0; } " HAVE_LOAD_LIBRARY ) IF(HAVE_DLOPEN) MESSAGE(STATUS " Module loading supported through dlopen.") SET(LOAD_MODULES_DEFS HAVE_DLOPEN) LIBUHD_APPEND_LIBS(${CMAKE_DL_LIBS}) ELSEIF(HAVE_LOAD_LIBRARY) MESSAGE(STATUS " Module loading supported through LoadLibrary.") SET(LOAD_MODULES_DEFS HAVE_LOAD_LIBRARY) ELSE() MESSAGE(STATUS " Module loading not supported.") SET(LOAD_MODULES_DEFS HAVE_LOAD_MODULES_DUMMY) ENDIF() SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/load_modules.cpp PROPERTIES COMPILE_DEFINITIONS "${LOAD_MODULES_DEFS}" ) ######################################################################## # Define UHD_PKG_DATA_PATH for paths.cpp ######################################################################## FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${PKG_DATA_DIR} UHD_PKG_DATA_PATH) STRING(REPLACE "\\" "\\\\" UHD_PKG_DATA_PATH ${UHD_PKG_DATA_PATH}) MESSAGE(STATUS "Full package data directory: ${UHD_PKG_DATA_PATH}") SET_SOURCE_FILES_PROPERTIES( ${CMAKE_CURRENT_SOURCE_DIR}/paths.cpp PROPERTIES COMPILE_DEFINITIONS "UHD_PKG_DATA_PATH=\"${UHD_PKG_DATA_PATH}\"" ) ######################################################################## # Append sources ######################################################################## LIBUHD_APPEND_SOURCES( ${CMAKE_CURRENT_SOURCE_DIR}/csv.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gain_group.cpp ${CMAKE_CURRENT_SOURCE_DIR}/images.cpp ${CMAKE_CURRENT_SOURCE_DIR}/load_modules.cpp ${CMAKE_CURRENT_SOURCE_DIR}/log.cpp ${CMAKE_CURRENT_SOURCE_DIR}/msg.cpp ${CMAKE_CURRENT_SOURCE_DIR}/paths.cpp ${CMAKE_CURRENT_SOURCE_DIR}/static.cpp ${CMAKE_CURRENT_SOURCE_DIR}/tasks.cpp ${CMAKE_CURRENT_SOURCE_DIR}/thread_priority.cpp ) uhd-3.5.5/host/lib/utils/csv.cpp000066400000000000000000000033431224274632000164730ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include using namespace uhd; csv::rows_type csv::to_rows(std::istream &input){ csv::rows_type rows; std::string line; //for each line in the input stream while (std::getline(input, line)){ csv::row_type row(1, ""); bool in_quote = false; char last_ch, next_ch = ' '; //for each character in the line BOOST_FOREACH(char ch, line){ last_ch = next_ch; next_ch = ch; //catch a quote character and change the state //we handle double quotes by checking last_ch if (ch == '"'){ in_quote = not in_quote; if (last_ch != '"') continue; } //a comma not inside quotes is a column delimiter if (not in_quote and ch == ','){ row.push_back(""); continue; } //if we got here we record the character row.back() += ch; } rows.push_back(row); } return rows; } uhd-3.5.5/host/lib/utils/gain_group.cpp000066400000000000000000000154741224274632000200420ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include using namespace uhd; static const bool verbose = false; static bool compare_by_step_size( const size_t &rhs, const size_t &lhs, std::vector &fcns ){ return fcns.at(rhs).get_range().step() > fcns.at(lhs).get_range().step(); } /*! * Get a multiple of step with the following relation: * result = step*floor(num/step) * * Due to small doubleing-point inaccuracies: * num = n*step + e, where e is a small inaccuracy. * When e is negative, floor would yeild (n-1)*step, * despite that n*step is really the desired result. * This function is designed to mitigate that issue. * * \param num the number to approximate * \param step the step size to round with * \param e the small inaccuracy to account for * \return a multiple of step approximating num */ template static T floor_step(T num, T step, T e = T(0.001)){ return step*int(num/step + e); } /*********************************************************************** * gain group implementation **********************************************************************/ class gain_group_impl : public gain_group{ public: gain_group_impl(void){ /*NOP*/ } gain_range_t get_range(const std::string &name){ if (not name.empty()) return _name_to_fcns[name].get_range(); double overall_min = 0, overall_max = 0, overall_step = 0; BOOST_FOREACH(const gain_fcns_t &fcns, get_all_fcns()){ const gain_range_t range = fcns.get_range(); overall_min += range.start(); overall_max += range.stop(); //the overall step is the min (zero is invalid, first run) if (overall_step == 0) overall_step = range.step(); overall_step = std::min(overall_step, range.step()); } return gain_range_t(overall_min, overall_max, overall_step); } double get_value(const std::string &name){ if (not name.empty()) return _name_to_fcns[name].get_value(); double overall_gain = 0; BOOST_FOREACH(const gain_fcns_t &fcns, get_all_fcns()){ overall_gain += fcns.get_value(); } return overall_gain; } void set_value(double gain, const std::string &name){ if (not name.empty()) return _name_to_fcns[name].set_value(gain); std::vector all_fcns = get_all_fcns(); if (all_fcns.size() == 0) return; //nothing to set! //get the max step size among the gains double max_step = 0; BOOST_FOREACH(const gain_fcns_t &fcns, all_fcns){ max_step = std::max(max_step, fcns.get_range().step()); } //create gain bucket to distribute power std::vector gain_bucket; //distribute power according to priority (round to max step) double gain_left_to_distribute = gain; BOOST_FOREACH(const gain_fcns_t &fcns, all_fcns){ const gain_range_t range = fcns.get_range(); gain_bucket.push_back(floor_step(uhd::clip( gain_left_to_distribute, range.start(), range.stop() ), max_step)); gain_left_to_distribute -= gain_bucket.back(); } //get a list of indexes sorted by step size large to small std::vector indexes_step_size_dec; for (size_t i = 0; i < all_fcns.size(); i++){ indexes_step_size_dec.push_back(i); } std::sort( indexes_step_size_dec.begin(), indexes_step_size_dec.end(), boost::bind(&compare_by_step_size, _1, _2, all_fcns) ); UHD_ASSERT_THROW( all_fcns.at(indexes_step_size_dec.front()).get_range().step() >= all_fcns.at(indexes_step_size_dec.back()).get_range().step() ); //distribute the remainder (less than max step) //fill in the largest step sizes first that are less than the remainder BOOST_FOREACH(size_t i, indexes_step_size_dec){ const gain_range_t range = all_fcns.at(i).get_range(); double additional_gain = floor_step(uhd::clip( gain_bucket.at(i) + gain_left_to_distribute, range.start(), range.stop() ), range.step()) - gain_bucket.at(i); gain_bucket.at(i) += additional_gain; gain_left_to_distribute -= additional_gain; } UHD_LOGV(often) << "gain_left_to_distribute " << gain_left_to_distribute << std::endl; //now write the bucket out to the individual gain values for (size_t i = 0; i < gain_bucket.size(); i++){ UHD_LOGV(often) << i << ": " << gain_bucket.at(i) << std::endl; all_fcns.at(i).set_value(gain_bucket.at(i)); } } const std::vector get_names(void){ return _name_to_fcns.keys(); } void register_fcns( const std::string &name, const gain_fcns_t &gain_fcns, size_t priority ){ if (name.empty() or _name_to_fcns.has_key(name)){ //ensure the name name is unique and non-empty return register_fcns(name + "_", gain_fcns, priority); } _registry[priority].push_back(gain_fcns); _name_to_fcns[name] = gain_fcns; } private: //! get the gain function sets in order (highest priority first) std::vector get_all_fcns(void){ std::vector all_fcns; BOOST_FOREACH(size_t key, uhd::sorted(_registry.keys())){ const std::vector &fcns = _registry[key]; all_fcns.insert(all_fcns.begin(), fcns.begin(), fcns.end()); } return all_fcns; } uhd::dict > _registry; uhd::dict _name_to_fcns; }; /*********************************************************************** * gain group factory function **********************************************************************/ gain_group::sptr gain_group::make(void){ return sptr(new gain_group_impl()); } uhd-3.5.5/host/lib/utils/images.cpp000066400000000000000000000037631224274632000171530ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include namespace fs = boost::filesystem; std::vector get_image_paths(void); //defined in paths.cpp /*********************************************************************** * Find an image in the image paths **********************************************************************/ std::string uhd::find_image_path(const std::string &image_name){ if (fs::exists(image_name)){ return fs::system_complete(image_name).string(); } BOOST_FOREACH(const fs::path &path, get_image_paths()){ fs::path image_path = path / image_name; if (fs::exists(image_path)) return image_path.string(); } throw uhd::io_error("Could not find path for image: " + image_name + "\n\n" + uhd::print_images_error()); } std::string uhd::find_images_downloader(void){ return fs::path((fs::path(get_pkg_data_path()) / "utils" / "uhd_images_downloader.py")).string(); } std::string uhd::print_images_error(void){ #ifdef UHD_PLATFORM_WIN32 return "As an Administrator, please run:\n\n\"" + find_images_downloader() + "\""; #else return "Please run:\n\nsudo \"" + find_images_downloader() + "\""; #endif } uhd-3.5.5/host/lib/utils/load_modules.cpp000066400000000000000000000063301224274632000203460ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include namespace fs = boost::filesystem; /*********************************************************************** * Module Load Function **********************************************************************/ #ifdef HAVE_DLOPEN #include static void load_module(const std::string &file_name){ if (dlopen(file_name.c_str(), RTLD_LAZY) == NULL){ throw uhd::os_error(str( boost::format("dlopen failed to load \"%s\"") % file_name )); } } #endif /* HAVE_DLOPEN */ #ifdef HAVE_LOAD_LIBRARY #include static void load_module(const std::string &file_name){ if (LoadLibrary(file_name.c_str()) == NULL){ throw uhd::os_error(str( boost::format("LoadLibrary failed to load \"%s\"") % file_name )); } } #endif /* HAVE_LOAD_LIBRARY */ #ifdef HAVE_LOAD_MODULES_DUMMY static void load_module(const std::string &file_name){ throw uhd::not_implemented_error(str( boost::format("Module loading not supported: Cannot load \"%s\"") % file_name )); } #endif /* HAVE_LOAD_MODULES_DUMMY */ /*********************************************************************** * Load Modules **********************************************************************/ /*! * Load all modules in a given path. * This will recurse into sub-directories. * Does not throw, prints to std error. * \param path the filesystem path */ static void load_module_path(const fs::path &path){ if (not fs::exists(path)){ //std::cerr << boost::format("Module path \"%s\" not found.") % path.string() << std::endl; return; } //try to load the files in this path if (fs::is_directory(path)){ for( fs::directory_iterator dir_itr(path); dir_itr != fs::directory_iterator(); ++dir_itr ){ load_module_path(dir_itr->path()); } return; } //its not a directory, try to load it try{ load_module(path.string()); } catch(const std::exception &err){ std::cerr << boost::format("Error: %s") % err.what() << std::endl; } } std::vector get_module_paths(void); //defined in paths.cpp /*! * Load all the modules given in the module paths. */ UHD_STATIC_BLOCK(load_modules){ BOOST_FOREACH(const fs::path &path, get_module_paths()){ load_module_path(path); } } uhd-3.5.5/host/lib/utils/log.cpp000066400000000000000000000140061224274632000164570ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #ifdef BOOST_MSVC //whoops! https://svn.boost.org/trac/boost/ticket/5287 //enjoy this useless dummy class instead namespace boost{ namespace interprocess{ struct file_lock{ file_lock(const char * = NULL){} void lock(void){} void unlock(void){} }; }} //namespace #else #include #endif #include #include #include namespace fs = boost::filesystem; namespace pt = boost::posix_time; namespace ip = boost::interprocess; /*********************************************************************** * Global resources for the logger **********************************************************************/ class log_resource_type{ public: uhd::_log::verbosity_t level; log_resource_type(void){ //file lock pointer must be null _file_lock = NULL; //set the default log level level = uhd::_log::never; //allow override from macro definition #ifdef UHD_LOG_LEVEL _set_log_level(BOOST_STRINGIZE(UHD_LOG_LEVEL)); #endif //allow override from environment variable const char * log_level_env = std::getenv("UHD_LOG_LEVEL"); if (log_level_env != NULL) _set_log_level(log_level_env); } ~log_resource_type(void){ boost::mutex::scoped_lock lock(_mutex); _file_stream.close(); if (_file_lock != NULL) delete _file_lock; } void log_to_file(const std::string &log_msg){ boost::mutex::scoped_lock lock(_mutex); if (_file_lock == NULL){ const std::string log_path = (fs::path(uhd::get_tmp_path()) / "uhd.log").string(); _file_stream.open(log_path.c_str(), std::fstream::out | std::fstream::app); _file_lock = new ip::file_lock(log_path.c_str()); } _file_lock->lock(); _file_stream << log_msg << std::flush; _file_lock->unlock(); } private: //! set the log level from a string that is either a digit or an enum name void _set_log_level(const std::string &log_level_str){ const uhd::_log::verbosity_t log_level_num = uhd::_log::verbosity_t(log_level_str[0]-'0'); if (std::isdigit(log_level_str[0]) and log_level_num >= uhd::_log::always and log_level_num <= uhd::_log::never){ this->level = log_level_num; return; } #define if_lls_equal(name) else if(log_level_str == #name) this->level = uhd::_log::name if_lls_equal(always); if_lls_equal(often); if_lls_equal(regularly); if_lls_equal(rarely); if_lls_equal(very_rarely); if_lls_equal(never); } //file stream and lock: std::ofstream _file_stream; ip::file_lock *_file_lock; boost::mutex _mutex; }; UHD_SINGLETON_FCN(log_resource_type, log_rs); /*********************************************************************** * The logger object implementation **********************************************************************/ //! get the relative file path from the host directory static std::string get_rel_file_path(const fs::path &file){ fs::path abs_path = file.branch_path(); fs::path rel_path = file.leaf(); while (not abs_path.empty() and abs_path.leaf() != "host"){ rel_path = abs_path.leaf() / rel_path; abs_path = abs_path.branch_path(); } return rel_path.string(); } struct uhd::_log::log::impl{ std::ostringstream ss; verbosity_t verbosity; }; uhd::_log::log::log( const verbosity_t verbosity, const std::string &file, const unsigned int line, const std::string &function ){ _impl = UHD_PIMPL_MAKE(impl, ()); _impl->verbosity = verbosity; const std::string time = pt::to_simple_string(pt::microsec_clock::local_time()); const std::string header1 = str(boost::format("-- %s - level %d") % time % int(verbosity)); const std::string header2 = str(boost::format("-- %s") % function).substr(0, 80); const std::string header3 = str(boost::format("-- %s:%u") % get_rel_file_path(file) % line); const std::string border = std::string(std::max(std::max(header1.size(), header2.size()), header3.size()), '-'); _impl->ss << std::endl << border << std::endl << header1 << std::endl << header2 << std::endl << header3 << std::endl << border << std::endl ; } uhd::_log::log::~log(void){ if (_impl->verbosity < log_rs().level) return; _impl->ss << std::endl; try{ log_rs().log_to_file(_impl->ss.str()); } catch(const std::exception &e){ /*! * Critical behavior below. * The following steps must happen in order to avoid a lock-up condition. * This is because the message facility will call into the logging facility. * Therefore we must disable the logger (level = never) before messaging. */ log_rs().level = never; UHD_MSG(error) << "Logging failed: " << e.what() << std::endl << "Logging has been disabled for this process" << std::endl ; } } std::ostream & uhd::_log::log::operator()(void){ return _impl->ss; } uhd-3.5.5/host/lib/utils/msg.cpp000066400000000000000000000074031224274632000164670ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include /*********************************************************************** * Helper functions **********************************************************************/ #define tokenizer(inp, sep) \ boost::tokenizer > \ (inp, boost::char_separator(sep)) static void msg_to_cout(const std::string &msg){ std::stringstream ss; static bool just_had_a_newline = true; BOOST_FOREACH(char ch, msg){ if (just_had_a_newline){ just_had_a_newline = false; ss << "-- "; } if (ch == '\n'){ just_had_a_newline = true; } ss << ch; } std::cout << ss.str() << std::flush; } static void msg_to_cerr(const std::string &title, const std::string &msg){ std::stringstream ss; ss << std::endl << title << ":" << std::endl; BOOST_FOREACH(const std::string &line, tokenizer(msg, "\n")){ ss << " " << line << std::endl; } std::cerr << ss.str() << std::flush; } /*********************************************************************** * Global resources for the messenger **********************************************************************/ struct msg_resource_type{ boost::mutex mutex; uhd::msg::handler_t handler; }; UHD_SINGLETON_FCN(msg_resource_type, msg_rs); /*********************************************************************** * Setup the message handlers **********************************************************************/ void uhd::msg::register_handler(const handler_t &handler){ boost::mutex::scoped_lock lock(msg_rs().mutex); msg_rs().handler = handler; } static void default_msg_handler(uhd::msg::type_t type, const std::string &msg){ switch(type){ case uhd::msg::fastpath: std::cerr << msg << std::flush; break; case uhd::msg::status: msg_to_cout(msg); UHD_LOG << "Status message" << std::endl << msg; break; case uhd::msg::warning: msg_to_cerr("UHD Warning", msg); UHD_LOG << "Warning message" << std::endl << msg; break; case uhd::msg::error: msg_to_cerr("UHD Error", msg); UHD_LOG << "Error message" << std::endl << msg; break; } } UHD_STATIC_BLOCK(msg_register_default_handler){ uhd::msg::register_handler(&default_msg_handler); } /*********************************************************************** * The message object implementation **********************************************************************/ struct uhd::msg::_msg::impl{ std::ostringstream ss; type_t type; }; uhd::msg::_msg::_msg(const type_t type){ _impl = UHD_PIMPL_MAKE(impl, ()); _impl->type = type; } uhd::msg::_msg::~_msg(void){ boost::mutex::scoped_lock lock(msg_rs().mutex); msg_rs().handler(_impl->type, _impl->ss.str()); } std::ostream & uhd::msg::_msg::operator()(void){ return _impl->ss; } uhd-3.5.5/host/lib/utils/paths.cpp000066400000000000000000000107511224274632000170200ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include //getenv #include //P_tmpdir #ifdef BOOST_MSVC #define USE_GET_TEMP_PATH #include //GetTempPath #endif namespace fs = boost::filesystem; /*********************************************************************** * Get a list of paths for an environment variable **********************************************************************/ static std::string get_env_var(const std::string &var_name, const std::string &def_val = ""){ const char *var_value_ptr = std::getenv(var_name.c_str()); return (var_value_ptr == NULL)? def_val : var_value_ptr; } static std::vector get_env_paths(const std::string &var_name){ /*********************************************************************** * Determine the paths separator **********************************************************************/ #ifdef UHD_PLATFORM_WIN32 static const std::string env_path_sep = ";"; #else static const std::string env_path_sep = ":"; #endif /*UHD_PLATFORM_WIN32*/ #define path_tokenizer(inp) \ boost::tokenizer > \ (inp, boost::char_separator(env_path_sep.c_str())) std::string var_value = get_env_var(var_name); //convert to filesystem path, filter blank paths std::vector paths; if (var_value.empty()) return paths; //FIXME boost tokenizer throws w/ blank strings on some platforms BOOST_FOREACH(const std::string &path_string, path_tokenizer(var_value)){ if (path_string.empty()) continue; paths.push_back(fs::system_complete(path_string)); } return paths; } /*********************************************************************** * Get a list of special purpose paths **********************************************************************/ std::string uhd::get_pkg_data_path(void) { return get_env_var("UHD_PKG_DATA_PATH", UHD_PKG_DATA_PATH); } std::vector get_image_paths(void){ std::vector paths = get_env_paths("UHD_IMAGE_PATH"); paths.push_back(fs::path(uhd::get_pkg_data_path()) / "images"); return paths; } std::vector get_module_paths(void){ std::vector paths = get_env_paths("UHD_MODULE_PATH"); paths.push_back(fs::path(uhd::get_pkg_data_path()) / "modules"); return paths; } /*********************************************************************** * Implement the functions in paths.hpp **********************************************************************/ std::string uhd::get_tmp_path(void){ const char *tmp_path = NULL; //try the official uhd temp path environment variable tmp_path = std::getenv("UHD_TEMP_PATH"); if (tmp_path != NULL) return tmp_path; //try the windows function if available #ifdef USE_GET_TEMP_PATH char lpBuffer[2048]; if (GetTempPath(sizeof(lpBuffer), lpBuffer)) return lpBuffer; #endif //try windows environment variables tmp_path = std::getenv("TMP"); if (tmp_path != NULL) return tmp_path; tmp_path = std::getenv("TEMP"); if (tmp_path != NULL) return tmp_path; //try the stdio define if available #ifdef P_tmpdir if (P_tmpdir != NULL) return P_tmpdir; #endif //try unix environment variables tmp_path = std::getenv("TMPDIR"); if (tmp_path != NULL) return tmp_path; //give up and use the unix default return "/tmp"; } std::string uhd::get_app_path(void){ const char *appdata_path = std::getenv("APPDATA"); if (appdata_path != NULL) return appdata_path; const char *home_path = std::getenv("HOME"); if (home_path != NULL) return home_path; return uhd::get_tmp_path(); } uhd-3.5.5/host/lib/utils/static.cpp000066400000000000000000000021611224274632000171640ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include _uhd_static_fixture::_uhd_static_fixture(void (*fcn)(void), const char *name){ try{ fcn(); } catch(const std::exception &e){ std::cerr << "Exception in static block " << name << std::endl; std::cerr << " " << e.what() << std::endl; } catch(...){ std::cerr << "Exception in static block " << name << std::endl; } } uhd-3.5.5/host/lib/utils/tasks.cpp000066400000000000000000000044501224274632000170250ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include using namespace uhd; class task_impl : public task{ public: task_impl(const task_fcn_type &task_fcn): _spawn_barrier(2) { _thread_group.create_thread(boost::bind(&task_impl::task_loop, this, task_fcn)); _spawn_barrier.wait(); } ~task_impl(void){ _running = false; _thread_group.interrupt_all(); _thread_group.join_all(); } private: void task_loop(const task_fcn_type &task_fcn){ _running = true; _spawn_barrier.wait(); try{ while (_running){ task_fcn(); } } catch(const boost::thread_interrupted &){ //this is an ok way to exit the task loop } catch(const std::exception &e){ do_error_msg(e.what()); } catch(...){ //FIXME //Unfortunately, this is also an ok way to end a task, //because on some systems boost throws uncatchables. } } void do_error_msg(const std::string &msg){ UHD_MSG(error) << "An unexpected exception was caught in a task loop." << std::endl << "The task loop will now exit, things may not work." << std::endl << msg << std::endl ; } boost::thread_group _thread_group; boost::barrier _spawn_barrier; bool _running; }; task::sptr task::make(const task_fcn_type &task_fcn){ return task::sptr(new task_impl(task_fcn)); } uhd-3.5.5/host/lib/utils/thread_priority.cpp000066400000000000000000000104521224274632000211070ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include bool uhd::set_thread_priority_safe(float priority, bool realtime){ try{ set_thread_priority(priority, realtime); return true; }catch(const std::exception &e){ UHD_MSG(warning) << boost::format( "Unable to set the thread priority. Performance may be negatively affected.\n" "Please see the general application notes in the manual for instructions.\n" "%s\n" ) % e.what(); return false; } } static void check_priority_range(float priority){ if (priority > +1.0 or priority < -1.0) throw uhd::value_error("priority out of range [-1.0, +1.0]"); } /*********************************************************************** * Pthread API to set priority **********************************************************************/ #ifdef HAVE_PTHREAD_SETSCHEDPARAM #include void uhd::set_thread_priority(float priority, bool realtime){ check_priority_range(priority); //when realtime is not enabled, use sched other int policy = (realtime)? SCHED_RR : SCHED_OTHER; //we cannot have below normal priority, set to zero if (priority < 0) priority = 0; //get the priority bounds for the selected policy int min_pri = sched_get_priority_min(policy); int max_pri = sched_get_priority_max(policy); if (min_pri == -1 or max_pri == -1) throw uhd::os_error("error in sched_get_priority_min/max"); //set the new priority and policy sched_param sp; sp.sched_priority = int(priority*(max_pri - min_pri)) + min_pri; int ret = pthread_setschedparam(pthread_self(), policy, &sp); if (ret != 0) throw uhd::os_error("error in pthread_setschedparam"); } #endif /* HAVE_PTHREAD_SETSCHEDPARAM */ /*********************************************************************** * Windows API to set priority **********************************************************************/ #ifdef HAVE_WIN_SETTHREADPRIORITY #include void uhd::set_thread_priority(float priority, bool realtime){ check_priority_range(priority); /* * Process wide priority is no longer set. * This is the responsibility of the application. //set the priority class on the process int pri_class = (realtime)? REALTIME_PRIORITY_CLASS : NORMAL_PRIORITY_CLASS; if (SetPriorityClass(GetCurrentProcess(), pri_class) == 0) throw uhd::os_error("error in SetPriorityClass"); */ //scale the priority value to the constants int priorities[] = { THREAD_PRIORITY_IDLE, THREAD_PRIORITY_LOWEST, THREAD_PRIORITY_BELOW_NORMAL, THREAD_PRIORITY_NORMAL, THREAD_PRIORITY_ABOVE_NORMAL, THREAD_PRIORITY_HIGHEST, THREAD_PRIORITY_TIME_CRITICAL }; size_t pri_index = size_t((priority+1.0)*6/2.0); // -1 -> 0, +1 -> 6 //set the thread priority on the thread if (SetThreadPriority(GetCurrentThread(), priorities[pri_index]) == 0) throw uhd::os_error("error in SetThreadPriority"); } #endif /* HAVE_WIN_SETTHREADPRIORITY */ /*********************************************************************** * Unimplemented API to set priority **********************************************************************/ #ifdef HAVE_THREAD_PRIO_DUMMY void uhd::set_thread_priority(float, bool){ throw uhd::not_implemented_error("set thread priority not implemented"); } #endif /* HAVE_THREAD_PRIO_DUMMY */ uhd-3.5.5/host/lib/version.cpp000066400000000000000000000023451224274632000162260ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #ifndef UHD_DONT_PRINT_SYSTEM_INFO UHD_STATIC_BLOCK(print_system_info){ std::cout << BOOST_PLATFORM << "; " << BOOST_COMPILER << "; " << "Boost_" << BOOST_VERSION << "; " << "UHD_" << uhd::get_version_string() << std::endl << std::endl ; } #endif std::string uhd::get_version_string(void){ return "@UHD_VERSION@"; } std::string uhd::get_abi_string(void){ return UHD_VERSION_ABI_STRING; } uhd-3.5.5/host/tests/000077500000000000000000000000001224274632000144255ustar00rootroot00000000000000uhd-3.5.5/host/tests/CMakeLists.txt000066400000000000000000000037621224274632000171750ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # unit test suite ######################################################################## SET(test_sources addr_test.cpp buffer_test.cpp byteswap_test.cpp convert_test.cpp dict_test.cpp error_test.cpp gain_group_test.cpp msg_test.cpp property_test.cpp ranges_test.cpp sph_recv_test.cpp sph_send_test.cpp subdev_spec_test.cpp time_spec_test.cpp vrt_test.cpp ) #turn each test cpp file into an executable with an int main() function ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN) #for each source: build an executable, register it as a test, and install FOREACH(test_source ${test_sources}) GET_FILENAME_COMPONENT(test_name ${test_source} NAME_WE) ADD_EXECUTABLE(${test_name} ${test_source}) TARGET_LINK_LIBRARIES(${test_name} uhd) ADD_TEST(${test_name} ${test_name}) UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests) ENDFOREACH(test_source) ######################################################################## # demo of a loadable module ######################################################################## IF(MSVC OR APPLE OR LINUX) ADD_LIBRARY(module_test MODULE module_test.cpp) TARGET_LINK_LIBRARIES(module_test uhd) ENDIF() uhd-3.5.5/host/tests/addr_test.cpp000066400000000000000000000061111224274632000171010ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include BOOST_AUTO_TEST_CASE(test_mac_addr){ std::cout << "Testing mac addr..." << std::endl; const std::string mac_addr_str("00:01:23:45:67:89"); uhd::mac_addr_t mac_addr = uhd::mac_addr_t::from_string(mac_addr_str); std::cout << "Input: " << mac_addr_str << std::endl; std::cout << "Output: " << mac_addr.to_string() << std::endl; BOOST_CHECK_EQUAL(mac_addr_str, mac_addr.to_string()); } BOOST_AUTO_TEST_CASE(test_device_addr){ std::cout << "Testing device addr..." << std::endl; //load the device address with something uhd::device_addr_t dev_addr; dev_addr["key1"] = "val1"; dev_addr["key1"] = "val1"; dev_addr["key3"] = ""; //convert to and from args string std::cout << "Pretty Print: " << std::endl << dev_addr.to_pp_string(); std::string args_str = dev_addr.to_string(); std::cout << "Args String: " << args_str << std::endl; uhd::device_addr_t new_dev_addr(args_str); //they should be the same size BOOST_REQUIRE_EQUAL(dev_addr.size(), new_dev_addr.size()); //the keys should match std::vector old_dev_addr_keys = dev_addr.keys(); std::vector new_dev_addr_keys = new_dev_addr.keys(); BOOST_CHECK_EQUAL_COLLECTIONS( old_dev_addr_keys.begin(), old_dev_addr_keys.end(), new_dev_addr_keys.begin(), new_dev_addr_keys.end() ); //the vals should match std::vector old_dev_addr_vals = dev_addr.vals(); std::vector new_dev_addr_vals = new_dev_addr.vals(); BOOST_CHECK_EQUAL_COLLECTIONS( old_dev_addr_vals.begin(), old_dev_addr_vals.end(), new_dev_addr_vals.begin(), new_dev_addr_vals.end() ); } BOOST_AUTO_TEST_CASE(test_dboard_id){ std::cout << "Testing dboard id..." << std::endl; using namespace uhd::usrp; BOOST_CHECK(dboard_id_t() == dboard_id_t::none()); BOOST_CHECK_EQUAL(dboard_id_t().to_uint16(), dboard_id_t::none().to_uint16()); BOOST_CHECK_EQUAL(dboard_id_t::from_string("0x1234").to_uint16(), 0x1234); BOOST_CHECK_EQUAL(dboard_id_t::from_string("1234").to_uint16(), 1234); std::cout << "Pretty Print: " << std::endl << dboard_id_t::none().to_pp_string(); } uhd-3.5.5/host/tests/buffer_test.cpp000066400000000000000000000044071224274632000174460ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include using namespace boost::assign; using namespace uhd::transport; static const double timeout = 0.01/*secs*/; BOOST_AUTO_TEST_CASE(test_bounded_buffer_with_timed_wait){ bounded_buffer bb(3); //push elements, check for timeout BOOST_CHECK(bb.push_with_timed_wait(0, timeout)); BOOST_CHECK(bb.push_with_timed_wait(1, timeout)); BOOST_CHECK(bb.push_with_timed_wait(2, timeout)); BOOST_CHECK(not bb.push_with_timed_wait(3, timeout)); int val; //pop elements, check for timeout and check values BOOST_CHECK(bb.pop_with_timed_wait(val, timeout)); BOOST_CHECK_EQUAL(val, 0); BOOST_CHECK(bb.pop_with_timed_wait(val, timeout)); BOOST_CHECK_EQUAL(val, 1); BOOST_CHECK(bb.pop_with_timed_wait(val, timeout)); BOOST_CHECK_EQUAL(val, 2); BOOST_CHECK(not bb.pop_with_timed_wait(val, timeout)); } BOOST_AUTO_TEST_CASE(test_bounded_buffer_with_pop_on_full){ bounded_buffer bb(3); //push elements, check for timeout BOOST_CHECK(bb.push_with_pop_on_full(0)); BOOST_CHECK(bb.push_with_pop_on_full(1)); BOOST_CHECK(bb.push_with_pop_on_full(2)); BOOST_CHECK(not bb.push_with_pop_on_full(3)); int val; //pop elements, check for timeout and check values BOOST_CHECK(bb.pop_with_timed_wait(val, timeout)); BOOST_CHECK_EQUAL(val, 1); BOOST_CHECK(bb.pop_with_timed_wait(val, timeout)); BOOST_CHECK_EQUAL(val, 2); BOOST_CHECK(bb.pop_with_timed_wait(val, timeout)); BOOST_CHECK_EQUAL(val, 3); } uhd-3.5.5/host/tests/byteswap_test.cpp000066400000000000000000000025441224274632000200330ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include BOOST_AUTO_TEST_CASE(test_byteswap16){ boost::uint16_t x = 0x0123; boost::uint16_t y = 0x2301; BOOST_CHECK_EQUAL(uhd::byteswap(x), y); } BOOST_AUTO_TEST_CASE(test_byteswap32){ boost::uint32_t x = 0x01234567; boost::uint32_t y = 0x67452301; BOOST_CHECK_EQUAL(uhd::byteswap(x), y); } BOOST_AUTO_TEST_CASE(test_byteswap64){ //split up 64 bit constants to avoid long-long compiler warnings boost::uint64_t x = 0x01234567 | (boost::uint64_t(0x89abcdef) << 32); boost::uint64_t y = 0xefcdab89 | (boost::uint64_t(0x67452301) << 32); BOOST_CHECK_EQUAL(uhd::byteswap(x), y); } uhd-3.5.5/host/tests/convert_test.cpp000066400000000000000000000274501224274632000176600ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include using namespace uhd; //typedefs for complex types typedef std::complex sc16_t; typedef std::complex fc32_t; typedef std::complex fc64_t; #define MY_CHECK_CLOSE(a, b, f) { \ BOOST_CHECK_MESSAGE(std::abs((a)-(b)) < f, "\n\t" << #a << " (" << (a) << ") error " << #b << " (" << (b) << ")"); \ } /*********************************************************************** * Loopback runner: * convert input buffer into intermediate buffer * convert intermediate buffer into output buffer **********************************************************************/ template static void loopback( size_t nsamps, convert::id_type &in_id, convert::id_type &out_id, const Range &input, Range &output, const int prio_in = -1, const int prio_out = -1 ){ //item32 is largest device type std::vector interm(nsamps); std::vector input0(1, &input[0]), input1(1, &interm[0]); std::vector output0(1, &interm[0]), output1(1, &output[0]); //convert to intermediate type convert::converter::sptr c0 = convert::get_converter(in_id, prio_in)(); c0->set_scalar(32767.); c0->conv(input0, output0, nsamps); //convert back to host type convert::converter::sptr c1 = convert::get_converter(out_id, prio_out)(); c1->set_scalar(1/32767.); c1->conv(input1, output1, nsamps); } /*********************************************************************** * Test short conversion **********************************************************************/ static void test_convert_types_sc16( size_t nsamps, convert::id_type &id, const int extra_div = 1 ){ //fill the input samples std::vector input(nsamps), output(nsamps); BOOST_FOREACH(sc16_t &in, input) in = sc16_t( short(((std::rand()/double(RAND_MAX/2)) - 1)*32767/extra_div), short(((std::rand()/double(RAND_MAX/2)) - 1)*32767/extra_div) ); //run the loopback and test convert::id_type in_id = id; convert::id_type out_id = id; std::swap(out_id.input_format, out_id.output_format); std::swap(out_id.num_inputs, out_id.num_outputs); loopback(nsamps, in_id, out_id, input, output); BOOST_CHECK_EQUAL_COLLECTIONS(input.begin(), input.end(), output.begin(), output.end()); } BOOST_AUTO_TEST_CASE(test_convert_types_be_sc16){ convert::id_type id; id.input_format = "sc16"; id.num_inputs = 1; id.output_format = "sc16_item32_be"; id.num_outputs = 1; //try various lengths to test edge cases for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_sc16(nsamps, id); } } BOOST_AUTO_TEST_CASE(test_convert_types_le_sc16){ convert::id_type id; id.input_format = "sc16"; id.num_inputs = 1; id.output_format = "sc16_item32_le"; id.num_outputs = 1; //try various lengths to test edge cases for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_sc16(nsamps, id); } } /*********************************************************************** * Test float conversion **********************************************************************/ template static void test_convert_types_for_floats( size_t nsamps, convert::id_type &id, const double extra_scale = 1.0 ){ typedef typename data_type::value_type value_type; //fill the input samples std::vector input(nsamps), output(nsamps); BOOST_FOREACH(data_type &in, input) in = data_type( ((std::rand()/value_type(RAND_MAX/2)) - 1)*float(extra_scale), ((std::rand()/value_type(RAND_MAX/2)) - 1)*float(extra_scale) ); //run the loopback and test convert::id_type in_id = id; convert::id_type out_id = id; std::swap(out_id.input_format, out_id.output_format); std::swap(out_id.num_inputs, out_id.num_outputs); //make a list of all prio: best/generic combos typedef std::pair int_pair_t; std::vector prios = boost::assign::list_of (int_pair_t(0, 0)) (int_pair_t(-1, 0)) (int_pair_t(0, -1)) (int_pair_t(-1, -1)) ; //loopback foreach prio combo (generic vs best) BOOST_FOREACH(const int_pair_t &prio, prios){ loopback(nsamps, in_id, out_id, input, output, prio.first, prio.second); for (size_t i = 0; i < nsamps; i++){ MY_CHECK_CLOSE(input[i].real(), output[i].real(), value_type(1./32767)); MY_CHECK_CLOSE(input[i].imag(), output[i].imag(), value_type(1./32767)); } } } BOOST_AUTO_TEST_CASE(test_convert_types_be_fc32){ convert::id_type id; id.input_format = "fc32"; id.num_inputs = 1; id.output_format = "sc16_item32_be"; id.num_outputs = 1; //try various lengths to test edge cases for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id); } } BOOST_AUTO_TEST_CASE(test_convert_types_le_fc32){ convert::id_type id; id.input_format = "fc32"; id.num_inputs = 1; id.output_format = "sc16_item32_le"; id.num_outputs = 1; //try various lengths to test edge cases for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id); } } BOOST_AUTO_TEST_CASE(test_convert_types_be_fc64){ convert::id_type id; id.input_format = "fc64"; id.num_inputs = 1; id.output_format = "sc16_item32_be"; id.num_outputs = 1; //try various lengths to test edge cases for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id); } } BOOST_AUTO_TEST_CASE(test_convert_types_le_fc64){ convert::id_type id; id.input_format = "fc64"; id.num_inputs = 1; id.output_format = "sc16_item32_le"; id.num_outputs = 1; //try various lengths to test edge cases for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id); } } /*********************************************************************** * Test float to short conversion loopback **********************************************************************/ BOOST_AUTO_TEST_CASE(test_convert_types_fc32_to_sc16){ convert::id_type in_id; in_id.input_format = "fc32"; in_id.num_inputs = 1; in_id.output_format = "sc16_item32_le"; in_id.num_outputs = 1; convert::id_type out_id; out_id.input_format = "sc16_item32_le"; out_id.num_inputs = 1; out_id.output_format = "sc16"; out_id.num_outputs = 1; const size_t nsamps = 13; std::vector input(nsamps); BOOST_FOREACH(fc32_t &in, input) in = fc32_t( (std::rand()/float(RAND_MAX/2)) - 1, (std::rand()/float(RAND_MAX/2)) - 1 ); std::vector interm(nsamps); std::vector output(nsamps); std::vector input0(1, &input[0]), input1(1, &interm[0]); std::vector output0(1, &interm[0]), output1(1, &output[0]); //convert float to intermediate convert::converter::sptr c0 = convert::get_converter(in_id)(); c0->set_scalar(32767.); c0->conv(input0, output0, nsamps); //convert intermediate to short convert::converter::sptr c1 = convert::get_converter(out_id)(); c1->set_scalar(1/32767.); c1->conv(input1, output1, nsamps); //test that the inputs and outputs match for (size_t i = 0; i < nsamps; i++){ MY_CHECK_CLOSE(input[i].real(), output[i].real()/float(32767), float(0.01)); MY_CHECK_CLOSE(input[i].imag(), output[i].imag()/float(32767), float(0.01)); } } /*********************************************************************** * Test short to float conversion loopback **********************************************************************/ BOOST_AUTO_TEST_CASE(test_convert_types_sc16_to_fc32){ convert::id_type in_id; in_id.input_format = "sc16"; in_id.num_inputs = 1; in_id.output_format = "sc16_item32_le"; in_id.num_outputs = 1; convert::id_type out_id; out_id.input_format = "sc16_item32_le"; out_id.num_inputs = 1; out_id.output_format = "fc32"; out_id.num_outputs = 1; const size_t nsamps = 13; std::vector input(nsamps); BOOST_FOREACH(sc16_t &in, input) in = sc16_t( std::rand()-(RAND_MAX/2), std::rand()-(RAND_MAX/2) ); std::vector interm(nsamps); std::vector output(nsamps); std::vector input0(1, &input[0]), input1(1, &interm[0]); std::vector output0(1, &interm[0]), output1(1, &output[0]); //convert short to intermediate convert::converter::sptr c0 = convert::get_converter(in_id)(); c0->set_scalar(32767.); c0->conv(input0, output0, nsamps); //convert intermediate to float convert::converter::sptr c1 = convert::get_converter(out_id)(); c1->set_scalar(1/32767.); c1->conv(input1, output1, nsamps); //test that the inputs and outputs match for (size_t i = 0; i < nsamps; i++){ MY_CHECK_CLOSE(input[i].real()/float(32767), output[i].real(), float(0.01)); MY_CHECK_CLOSE(input[i].imag()/float(32767), output[i].imag(), float(0.01)); } } /*********************************************************************** * Test sc8 conversions **********************************************************************/ BOOST_AUTO_TEST_CASE(test_convert_types_fc64_and_sc8){ convert::id_type id; id.input_format = "fc64"; id.num_inputs = 1; id.num_outputs = 1; //try various lengths to test edge cases id.output_format = "sc8_item32_le"; for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id, 1./256); } //try various lengths to test edge cases id.output_format = "sc8_item32_be"; for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id, 1./256); } } BOOST_AUTO_TEST_CASE(test_convert_types_fc32_and_sc8){ convert::id_type id; id.input_format = "fc32"; id.num_inputs = 1; id.num_outputs = 1; //try various lengths to test edge cases id.output_format = "sc8_item32_le"; for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id, 1./256); } //try various lengths to test edge cases id.output_format = "sc8_item32_be"; for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_for_floats(nsamps, id, 1./256); } } BOOST_AUTO_TEST_CASE(test_convert_types_sc16_and_sc8){ convert::id_type id; id.input_format = "sc16"; id.num_inputs = 1; id.num_outputs = 1; //try various lengths to test edge cases id.output_format = "sc8_item32_le"; for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_sc16(nsamps, id, 256); } //try various lengths to test edge cases id.output_format = "sc8_item32_be"; for (size_t nsamps = 1; nsamps < 16; nsamps++){ test_convert_types_sc16(nsamps, id, 256); } } uhd-3.5.5/host/tests/dict_test.cpp000066400000000000000000000040501224274632000171120ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include BOOST_AUTO_TEST_CASE(test_dict_init){ uhd::dict d; d[-1] = 3; d[0] = 4; d[1] = 5; BOOST_CHECK(d.has_key(0)); BOOST_CHECK(not d.has_key(2)); BOOST_CHECK(d.keys()[1] == 0); BOOST_CHECK(d.vals()[1] == 4); BOOST_CHECK_EQUAL(d[-1], 3); } BOOST_AUTO_TEST_CASE(test_dict_assign){ uhd::dict d = boost::assign::map_list_of (-1, 3) (0, 4) (1, 5) ; BOOST_CHECK(d.has_key(0)); BOOST_CHECK(not d.has_key(2)); BOOST_CHECK(d.keys()[1] == 0); BOOST_CHECK(d.vals()[1] == 4); BOOST_CHECK_EQUAL(d[-1], 3); } BOOST_AUTO_TEST_CASE(test_const_dict){ const uhd::dict d = boost::assign::map_list_of (-1, 3) (0, 4) (1, 5) ; BOOST_CHECK(d.has_key(0)); BOOST_CHECK(not d.has_key(2)); BOOST_CHECK(d.keys()[1] == 0); BOOST_CHECK(d.vals()[1] == 4); BOOST_CHECK_EQUAL(d[-1], 3); BOOST_CHECK_THROW(d[2], std::exception); } BOOST_AUTO_TEST_CASE(test_dict_pop){ uhd::dict d = boost::assign::map_list_of (-1, 3) (0, 4) (1, 5) ; BOOST_CHECK(d.has_key(0)); BOOST_CHECK_EQUAL(d.pop(0), 4); BOOST_CHECK(not d.has_key(0)); BOOST_CHECK(d.keys()[0] == -1); BOOST_CHECK(d.keys()[1] == 1); } uhd-3.5.5/host/tests/error_test.cpp000066400000000000000000000051511224274632000173230ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include BOOST_AUTO_TEST_CASE(test_exception_methods){ try{ throw uhd::assertion_error("your assertion failed: 1 != 2"); } catch(const uhd::exception &e){ std::cout << "what: " << e.what() << std::endl; std::cout << "code: " << e.code() << std::endl; } } BOOST_AUTO_TEST_CASE(test_assert_has){ std::vector vec; vec.push_back(2); vec.push_back(3); vec.push_back(5); //verify the uhd::has utility BOOST_CHECK(uhd::has(vec, 2)); BOOST_CHECK(not uhd::has(vec, 1)); std::cout << "The output of the assert_has error:" << std::endl; try{ uhd::assert_has(vec, 1, "prime"); } catch(const std::exception &e){ std::cout << e.what() << std::endl; } } BOOST_AUTO_TEST_CASE(test_assert_throw){ std::cout << "The output of the assert throw error:" << std::endl; try{ UHD_ASSERT_THROW(2 + 2 == 5); } catch(const std::exception &e){ std::cout << e.what() << std::endl; } } BOOST_AUTO_TEST_CASE(test_exception_dynamic){ uhd::exception *exception_clone; //throw an exception and dynamically clone it try{ throw uhd::runtime_error("noooooo"); } catch(const uhd::exception &e){ std::cout << e.what() << std::endl; exception_clone = e.dynamic_clone(); } //now we dynamically re-throw the exception try{ exception_clone->dynamic_throw(); } catch(const uhd::assertion_error &e){ std::cout << e.what() << std::endl; BOOST_CHECK(false); } catch(const uhd::runtime_error &e){ std::cout << e.what() << std::endl; BOOST_CHECK(true); } catch(const uhd::exception &e){ std::cout << e.what() << std::endl; BOOST_CHECK(false); } delete exception_clone; //manual cleanup } uhd-3.5.5/host/tests/gain_group_test.cpp000066400000000000000000000073261224274632000203320ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #define rint(x) boost::math::iround(x) using namespace uhd; /*********************************************************************** * Define gain element classes with needed functions **********************************************************************/ class gain_element1{ public: gain_range_t get_range(void){ return gain_range_t(0, 90, 1); } double get_value(void){ return _gain; } void set_value(double gain){ double step = get_range().step(); _gain = step*rint(gain/step); } private: double _gain; }; class gain_element2{ public: gain_range_t get_range(void){ return gain_range_t(-20, 10, 0.1); } double get_value(void){ return _gain; } void set_value(double gain){ double step = get_range().step(); _gain = step*rint(gain/step); } private: double _gain; }; //create static instances of gain elements to be shared by the tests static gain_element1 g1; static gain_element2 g2; static gain_group::sptr get_gain_group(size_t pri1 = 0, size_t pri2 = 0){ //create instance of gain group gain_fcns_t gain_fcns; gain_group::sptr gg(gain_group::make()); //load gain group with function sets gain_fcns.get_range = boost::bind(&gain_element1::get_range, &g1); gain_fcns.get_value = boost::bind(&gain_element1::get_value, &g1); gain_fcns.set_value = boost::bind(&gain_element1::set_value, &g1, _1); gg->register_fcns("g1", gain_fcns, pri1); gain_fcns.get_range = boost::bind(&gain_element2::get_range, &g2); gain_fcns.get_value = boost::bind(&gain_element2::get_value, &g2); gain_fcns.set_value = boost::bind(&gain_element2::set_value, &g2, _1); gg->register_fcns("g2", gain_fcns, pri2); return gg; } /*********************************************************************** * Test cases **********************************************************************/ static const double tolerance = 0.001; BOOST_AUTO_TEST_CASE(test_gain_group_overall){ gain_group::sptr gg = get_gain_group(); //test the overall stuff gg->set_value(80); BOOST_CHECK_CLOSE(gg->get_value(), 80.0, tolerance); BOOST_CHECK_CLOSE(gg->get_range().start(), -20.0, tolerance); BOOST_CHECK_CLOSE(gg->get_range().stop(), 100.0, tolerance); BOOST_CHECK_CLOSE(gg->get_range().step(), 0.1, tolerance); } BOOST_AUTO_TEST_CASE(test_gain_group_priority){ gain_group::sptr gg = get_gain_group(0, 1); //test the overall stuff gg->set_value(80); BOOST_CHECK_CLOSE(gg->get_value(), 80.0, tolerance); BOOST_CHECK_CLOSE(gg->get_range().start(), -20.0, tolerance); BOOST_CHECK_CLOSE(gg->get_range().stop(), 100.0, tolerance); BOOST_CHECK_CLOSE(gg->get_range().step(), 0.1, tolerance); //test the the higher priority gain got filled first (gain 2) BOOST_CHECK_CLOSE(g2.get_value(), g2.get_range().stop(), tolerance); } uhd-3.5.5/host/tests/module_test.cpp000066400000000000000000000020401224274632000174510ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include UHD_STATIC_BLOCK(module_test){ std::cout << "---------------------------------------" << std::endl; std::cout << "-- Good news, everyone!" << std::endl; std::cout << "-- The test module has been loaded." << std::endl; std::cout << "---------------------------------------" << std::endl; } uhd-3.5.5/host/tests/msg_test.cpp000066400000000000000000000026131224274632000167600ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include BOOST_AUTO_TEST_CASE(test_messages){ std::cerr << "---begin print test ---" << std::endl; UHD_MSG(status) << "This is a test print for a status message.\n" "And this is the second line of the test print.\n" ; UHD_MSG(warning) << "This is a test print for a warning message.\n" "And this is the second line of the test print.\n" ; UHD_MSG(error) << "This is a test print for an error message.\n" "And this is the second line of the test print.\n" ; UHD_HERE(); const int x = 42; UHD_VAR(x); std::cerr << "---end print test ---" << std::endl; } uhd-3.5.5/host/tests/property_test.cpp000066400000000000000000000121161224274632000200550ustar00rootroot00000000000000// // Copyright 2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include struct coercer_type{ int doit(int x){ return x & ~0x3; } }; struct setter_type{ void doit(int x){ _x = x; } int _x; }; struct getter_type{ int doit(void){ return _x; } int _x; }; BOOST_AUTO_TEST_CASE(test_prop_simple){ uhd::property_tree::sptr tree = uhd::property_tree::make(); uhd::property &prop = tree->create("/"); BOOST_CHECK(prop.empty()); prop.set(0); BOOST_CHECK(not prop.empty()); prop.set(42); BOOST_CHECK_EQUAL(prop.get(), 42); prop.set(34); BOOST_CHECK_EQUAL(prop.get(), 34); } BOOST_AUTO_TEST_CASE(test_prop_with_subscriber){ uhd::property_tree::sptr tree = uhd::property_tree::make(); uhd::property &prop = tree->create("/"); setter_type setter; prop.subscribe(boost::bind(&setter_type::doit, &setter, _1)); prop.set(42); BOOST_CHECK_EQUAL(prop.get(), 42); BOOST_CHECK_EQUAL(setter._x, 42); prop.set(34); BOOST_CHECK_EQUAL(prop.get(), 34); BOOST_CHECK_EQUAL(setter._x, 34); } BOOST_AUTO_TEST_CASE(test_prop_with_publisher){ uhd::property_tree::sptr tree = uhd::property_tree::make(); uhd::property &prop = tree->create("/"); BOOST_CHECK(prop.empty()); getter_type getter; prop.publish(boost::bind(&getter_type::doit, &getter)); BOOST_CHECK(not prop.empty()); getter._x = 42; prop.set(0); //should not change BOOST_CHECK_EQUAL(prop.get(), 42); getter._x = 34; prop.set(0); //should not change BOOST_CHECK_EQUAL(prop.get(), 34); } BOOST_AUTO_TEST_CASE(test_prop_with_publisher_and_subscriber){ uhd::property_tree::sptr tree = uhd::property_tree::make(); uhd::property &prop = tree->create("/"); getter_type getter; prop.publish(boost::bind(&getter_type::doit, &getter)); setter_type setter; prop.subscribe(boost::bind(&setter_type::doit, &setter, _1)); getter._x = 42; prop.set(0); BOOST_CHECK_EQUAL(prop.get(), 42); BOOST_CHECK_EQUAL(setter._x, 0); getter._x = 34; prop.set(1); BOOST_CHECK_EQUAL(prop.get(), 34); BOOST_CHECK_EQUAL(setter._x, 1); } BOOST_AUTO_TEST_CASE(test_prop_with_coercion){ uhd::property_tree::sptr tree = uhd::property_tree::make(); uhd::property &prop = tree->create("/"); setter_type setter; prop.subscribe(boost::bind(&setter_type::doit, &setter, _1)); coercer_type coercer; prop.coerce(boost::bind(&coercer_type::doit, &coercer, _1)); prop.set(42); BOOST_CHECK_EQUAL(prop.get(), 40); BOOST_CHECK_EQUAL(setter._x, 40); prop.set(34); BOOST_CHECK_EQUAL(prop.get(), 32); BOOST_CHECK_EQUAL(setter._x, 32); } BOOST_AUTO_TEST_CASE(test_prop_tree){ uhd::property_tree::sptr tree = uhd::property_tree::make(); tree->create("/test/prop0"); tree->create("/test/prop1"); BOOST_CHECK(tree->exists("/test")); BOOST_CHECK_THROW(tree->access("/test"), std::exception); BOOST_CHECK(tree->exists("/test/prop0")); BOOST_CHECK(tree->exists("/test/prop1")); tree->access("/test/prop0").set(42); tree->access("/test/prop1").set(34); BOOST_CHECK_EQUAL(tree->access("/test/prop0").get(), 42); BOOST_CHECK_EQUAL(tree->access("/test/prop1").get(), 34); tree->remove("/test/prop0"); BOOST_CHECK(not tree->exists("/test/prop0")); BOOST_CHECK(tree->exists("/test/prop1")); tree->remove("/test"); BOOST_CHECK(not tree->exists("/test/prop0")); BOOST_CHECK(not tree->exists("/test/prop1")); } BOOST_AUTO_TEST_CASE(test_prop_subtree){ uhd::property_tree::sptr tree = uhd::property_tree::make(); tree->create("/subdir1/subdir2"); uhd::property_tree::sptr subtree1 = tree->subtree("/"); const std::vector tree_dirs1 = tree->list("/"); const std::vector subtree1_dirs = subtree1->list(""); BOOST_CHECK_EQUAL_COLLECTIONS(tree_dirs1.begin(), tree_dirs1.end(), subtree1_dirs.begin(), subtree1_dirs.end()); uhd::property_tree::sptr subtree2 = subtree1->subtree("subdir1"); const std::vector tree_dirs2 = tree->list("/subdir1"); const std::vector subtree2_dirs = subtree2->list(""); BOOST_CHECK_EQUAL_COLLECTIONS(tree_dirs2.begin(), tree_dirs2.end(), subtree2_dirs.begin(), subtree2_dirs.end()); } uhd-3.5.5/host/tests/ranges_test.cpp000066400000000000000000000046371224274632000174610ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include using namespace uhd; static const double tolerance = 0.001; BOOST_AUTO_TEST_CASE(test_ranges_bounds){ meta_range_t mr; mr.push_back(range_t(-1.0, +1.0, 0.1)); BOOST_CHECK_CLOSE(mr.start(), -1.0, tolerance); BOOST_CHECK_CLOSE(mr.stop(), +1.0, tolerance); BOOST_CHECK_CLOSE(mr.step(), 0.1, tolerance); mr.push_back(range_t(40.0, 60.0, 1.0)); BOOST_CHECK_CLOSE(mr.start(), -1.0, tolerance); BOOST_CHECK_CLOSE(mr.stop(), 60.0, tolerance); BOOST_CHECK_CLOSE(mr.step(), 0.1, tolerance); BOOST_CHECK_EQUAL(mr.size(), unsigned(2)); BOOST_CHECK_CLOSE(mr[0].start(), -1.0, tolerance); BOOST_CHECK_CLOSE(mr[0].stop(), +1.0, tolerance); BOOST_CHECK_CLOSE(mr[0].step(), 0.1, tolerance); } BOOST_AUTO_TEST_CASE(test_ranges_clip){ meta_range_t mr; mr.push_back(range_t(-1.0, +1.0, 0.1)); mr.push_back(range_t(40.0, 60.0, 1.0)); BOOST_CHECK_CLOSE(mr.clip(-30.0), -1.0, tolerance); BOOST_CHECK_CLOSE(mr.clip(70.0), 60.0, tolerance); BOOST_CHECK_CLOSE(mr.clip(20.0), 1.0, tolerance); BOOST_CHECK_CLOSE(mr.clip(50.0), 50.0, tolerance); BOOST_CHECK_CLOSE(mr.clip(50.9, false), 50.9, tolerance); BOOST_CHECK_CLOSE(mr.clip(50.9, true), 51.0, tolerance); } BOOST_AUTO_TEST_CASE(test_ranges_clip2){ meta_range_t mr; mr.push_back(range_t(1.)); mr.push_back(range_t(2.)); mr.push_back(range_t(3.)); BOOST_CHECK_CLOSE(mr.clip(2., true), 2., tolerance); BOOST_CHECK_CLOSE(mr.clip(0., true), 1., tolerance); BOOST_CHECK_CLOSE(mr.clip(1.2, true), 1., tolerance); BOOST_CHECK_CLOSE(mr.clip(3.1, true), 3., tolerance); BOOST_CHECK_CLOSE(mr.clip(4., true), 3., tolerance); } uhd-3.5.5/host/tests/sph_recv_test.cpp000066400000000000000000000652501224274632000200110ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include "../lib/transport/super_recv_packet_handler.hpp" #include #include #include #include #include #define BOOST_CHECK_TS_CLOSE(a, b) \ BOOST_CHECK_CLOSE((a).get_real_secs(), (b).get_real_secs(), 0.001) /*********************************************************************** * A dummy overflow handler for testing **********************************************************************/ struct overflow_handler_type{ overflow_handler_type(void){ num_overflow = 0; } void handle(void){ num_overflow++; } size_t num_overflow; }; /*********************************************************************** * A dummy managed receive buffer for testing **********************************************************************/ class dummy_mrb : public uhd::transport::managed_recv_buffer{ public: void release(void){ //NOP } sptr get_new(boost::shared_array mem, size_t len){ _mem = mem; return make(this, _mem.get(), len); } private: boost::shared_array _mem; }; /*********************************************************************** * A dummy transport class to fill with fake data **********************************************************************/ class dummy_recv_xport_class{ public: dummy_recv_xport_class(const std::string &end){ _end = end; } void push_back_packet( uhd::transport::vrt::if_packet_info_t &ifpi, const boost::uint32_t optional_msg_word = 0 ){ const size_t max_pkt_len = (ifpi.num_payload_words32 + uhd::transport::vrt::max_if_hdr_words32 + 1/*tlr*/)*sizeof(boost::uint32_t); _mems.push_back(boost::shared_array(new char[max_pkt_len])); if (_end == "big"){ uhd::transport::vrt::if_hdr_pack_be(reinterpret_cast(_mems.back().get()), ifpi); } if (_end == "little"){ uhd::transport::vrt::if_hdr_pack_le(reinterpret_cast(_mems.back().get()), ifpi); } (reinterpret_cast(_mems.back().get()) + ifpi.num_header_words32)[0] = optional_msg_word | uhd::byteswap(optional_msg_word); _lens.push_back(ifpi.num_packet_words32*sizeof(boost::uint32_t)); } uhd::transport::managed_recv_buffer::sptr get_recv_buff(double){ if (_mems.empty()) return uhd::transport::managed_recv_buffer::sptr(); //timeout _mrbs.push_back(boost::shared_ptr(new dummy_mrb())); uhd::transport::managed_recv_buffer::sptr mrb = _mrbs.back()->get_new(_mems.front(), _lens.front()); _mems.pop_front(); _lens.pop_front(); return mrb; } private: std::list > _mems; std::list _lens; std::vector > _mrbs; std::string _end; }; //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_one_channel_normal){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; dummy_recv_xport_class dummy_recv_xport("big"); uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.num_payload_words32 = 10 + i%10; dummy_recv_xport.push_back_packet(ifpi); ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(1); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); handler.set_xport_chan_get_buff(0, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xport, _1)); handler.set_converter(id); //check the received packets size_t num_accum_samps = 0; std::vector > buff(20); uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10 + i%10); num_accum_samps += num_samps_ret; } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_one_channel_sequence_error){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; dummy_recv_xport_class dummy_recv_xport("big"); uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.num_payload_words32 = 10 + i%10; if (i != NUM_PKTS_TO_TEST/2){ //simulate a lost packet dummy_recv_xport.push_back_packet(ifpi); } ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(1); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); handler.set_xport_chan_get_buff(0, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xport, _1)); handler.set_converter(id); //check the received packets size_t num_accum_samps = 0; std::vector > buff(20); uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); if (i == NUM_PKTS_TO_TEST/2){ //must get the soft overflow here BOOST_REQUIRE(metadata.error_code == uhd::rx_metadata_t::ERROR_CODE_OVERFLOW); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); num_accum_samps += 10 + i%10; } else{ BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10 + i%10); num_accum_samps += num_samps_ret; } } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_one_channel_inline_message){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; dummy_recv_xport_class dummy_recv_xport("big"); uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 10 + i%10; dummy_recv_xport.push_back_packet(ifpi); ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); //simulate overflow if (i == NUM_PKTS_TO_TEST/2){ ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_EXTENSION; ifpi.num_payload_words32 = 1; dummy_recv_xport.push_back_packet(ifpi, uhd::rx_metadata_t::ERROR_CODE_OVERFLOW); } } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(1); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); handler.set_xport_chan_get_buff(0, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xport, _1)); handler.set_converter(id); //create an overflow handler overflow_handler_type overflow_handler; handler.set_overflow_handler(0, boost::bind(&overflow_handler_type::handle, &overflow_handler)); //check the received packets size_t num_accum_samps = 0; std::vector > buff(20); uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10 + i%10); num_accum_samps += num_samps_ret; if (i == NUM_PKTS_TO_TEST/2){ handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); std::cout << "metadata.error_code " << metadata.error_code << std::endl; BOOST_REQUIRE(metadata.error_code == uhd::rx_metadata_t::ERROR_CODE_OVERFLOW); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(overflow_handler.num_overflow, size_t(1)); } } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( &buff.front(), buff.size(), metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_multi_channel_normal){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; static const size_t NUM_SAMPS_PER_BUFF = 20; static const size_t NCHANNELS = 4; std::vector dummy_recv_xports(NCHANNELS, dummy_recv_xport_class("big")); //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.num_payload_words32 = 10 + i%10; for (size_t ch = 0; ch < NCHANNELS; ch++){ dummy_recv_xports[ch].push_back_packet(ifpi); } ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(NCHANNELS); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); for (size_t ch = 0; ch < NCHANNELS; ch++){ handler.set_xport_chan_get_buff(ch, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xports[ch], _1)); } handler.set_converter(id); //check the received packets size_t num_accum_samps = 0; std::vector > mem(NUM_SAMPS_PER_BUFF*NCHANNELS); std::vector *> buffs(NCHANNELS); for (size_t ch = 0; ch < NCHANNELS; ch++){ buffs[ch] = &mem[ch*NUM_SAMPS_PER_BUFF]; } uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10 + i%10); num_accum_samps += num_samps_ret; } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_multi_channel_sequence_error){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; static const size_t NUM_SAMPS_PER_BUFF = 20; static const size_t NCHANNELS = 4; std::vector dummy_recv_xports(NCHANNELS, dummy_recv_xport_class("big")); //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.num_payload_words32 = 10 + i%10; for (size_t ch = 0; ch < NCHANNELS; ch++){ if (i == NUM_PKTS_TO_TEST/2 and ch == 2){ continue; //simulates a lost packet } dummy_recv_xports[ch].push_back_packet(ifpi); } ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(NCHANNELS); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); for (size_t ch = 0; ch < NCHANNELS; ch++){ handler.set_xport_chan_get_buff(ch, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xports[ch], _1)); } handler.set_converter(id); //check the received packets size_t num_accum_samps = 0; std::vector > mem(NUM_SAMPS_PER_BUFF*NCHANNELS); std::vector *> buffs(NCHANNELS); for (size_t ch = 0; ch < NCHANNELS; ch++){ buffs[ch] = &mem[ch*NUM_SAMPS_PER_BUFF]; } uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); if (i == NUM_PKTS_TO_TEST/2){ //must get the soft overflow here BOOST_REQUIRE(metadata.error_code == uhd::rx_metadata_t::ERROR_CODE_OVERFLOW); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); num_accum_samps += 10 + i%10; } else{ BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10 + i%10); num_accum_samps += num_samps_ret; } } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_multi_channel_time_error){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; static const size_t NUM_SAMPS_PER_BUFF = 20; static const size_t NCHANNELS = 4; std::vector dummy_recv_xports(NCHANNELS, dummy_recv_xport_class("big")); //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.num_payload_words32 = 10 + i%10; for (size_t ch = 0; ch < NCHANNELS; ch++){ dummy_recv_xports[ch].push_back_packet(ifpi); } ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); if (i == NUM_PKTS_TO_TEST/2){ ifpi.tsf = 0; //simulate the user changing the time } } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(NCHANNELS); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); for (size_t ch = 0; ch < NCHANNELS; ch++){ handler.set_xport_chan_get_buff(ch, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xports[ch], _1)); } handler.set_converter(id); //check the received packets size_t num_accum_samps = 0; std::vector > mem(NUM_SAMPS_PER_BUFF*NCHANNELS); std::vector *> buffs(NCHANNELS); for (size_t ch = 0; ch < NCHANNELS; ch++){ buffs[ch] = &mem[ch*NUM_SAMPS_PER_BUFF]; } uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10 + i%10); num_accum_samps += num_samps_ret; if (i == NUM_PKTS_TO_TEST/2){ num_accum_samps = 0; //simulate the user changing the time } } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_recv_multi_channel_fragment){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "sc16_item32_be"; id.num_inputs = 1; id.output_format = "fc32"; id.num_outputs = 1; uhd::transport::vrt::if_packet_info_t ifpi; ifpi.packet_type = uhd::transport::vrt::if_packet_info_t::PACKET_TYPE_DATA; ifpi.num_payload_words32 = 0; ifpi.packet_count = 0; ifpi.sob = true; ifpi.eob = false; ifpi.has_sid = false; ifpi.has_cid = false; ifpi.has_tsi = true; ifpi.has_tsf = true; ifpi.tsi = 0; ifpi.tsf = 0; ifpi.has_tlr = false; static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; static const size_t NUM_SAMPS_PER_BUFF = 10; static const size_t NCHANNELS = 4; std::vector dummy_recv_xports(NCHANNELS, dummy_recv_xport_class("big")); //generate a bunch of packets for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ ifpi.num_payload_words32 = 10 + i%10; for (size_t ch = 0; ch < NCHANNELS; ch++){ dummy_recv_xports[ch].push_back_packet(ifpi); } ifpi.packet_count++; ifpi.tsf += ifpi.num_payload_words32*size_t(TICK_RATE/SAMP_RATE); } //create the super receive packet handler uhd::transport::sph::recv_packet_handler handler(NCHANNELS); handler.set_vrt_unpacker(&uhd::transport::vrt::if_hdr_unpack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); for (size_t ch = 0; ch < NCHANNELS; ch++){ handler.set_xport_chan_get_buff(ch, boost::bind(&dummy_recv_xport_class::get_recv_buff, &dummy_recv_xports[ch], _1)); } handler.set_converter(id); //check the received packets size_t num_accum_samps = 0; std::vector > mem(NUM_SAMPS_PER_BUFF*NCHANNELS); std::vector *> buffs(NCHANNELS); for (size_t ch = 0; ch < NCHANNELS; ch++){ buffs[ch] = &mem[ch*NUM_SAMPS_PER_BUFF]; } uhd::rx_metadata_t metadata; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; size_t num_samps_ret = handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, 10); num_accum_samps += num_samps_ret; if (not metadata.more_fragments) continue; num_samps_ret = handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_NONE); BOOST_CHECK(not metadata.more_fragments); BOOST_CHECK_EQUAL(metadata.fragment_offset, 10); BOOST_CHECK(metadata.has_time_spec); BOOST_CHECK_TS_CLOSE(metadata.time_spec, uhd::time_spec_t::from_ticks(num_accum_samps, SAMP_RATE)); BOOST_CHECK_EQUAL(num_samps_ret, i%10); num_accum_samps += num_samps_ret; } //subsequent receives should be a timeout for (size_t i = 0; i < 3; i++){ std::cout << "timeout check " << i << std::endl; handler.recv( buffs, NUM_SAMPS_PER_BUFF, metadata, 1.0, true ); BOOST_CHECK_EQUAL(metadata.error_code, uhd::rx_metadata_t::ERROR_CODE_TIMEOUT); } } uhd-3.5.5/host/tests/sph_send_test.cpp000066400000000000000000000157271224274632000200070ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include "../lib/transport/super_send_packet_handler.hpp" #include #include #include #include #include #define BOOST_CHECK_TS_CLOSE(a, b) \ BOOST_CHECK_CLOSE((a).get_real_secs(), (b).get_real_secs(), 0.001) /*********************************************************************** * A dummy managed send buffer for testing **********************************************************************/ class dummy_msb : public uhd::transport::managed_send_buffer{ public: void release(void){ //NOP } sptr get_new(boost::shared_array mem, size_t *len){ _mem = mem; return make(this, mem.get(), *len); } private: boost::shared_array _mem; }; /*********************************************************************** * A dummy transport class to fill with fake data **********************************************************************/ class dummy_send_xport_class{ public: dummy_send_xport_class(const std::string &end){ _end = end; } void pop_front_packet( uhd::transport::vrt::if_packet_info_t &ifpi ){ ifpi.num_packet_words32 = _lens.front()/sizeof(boost::uint32_t); if (_end == "big"){ uhd::transport::vrt::if_hdr_unpack_be(reinterpret_cast(_mems.front().get()), ifpi); } if (_end == "little"){ uhd::transport::vrt::if_hdr_unpack_le(reinterpret_cast(_mems.front().get()), ifpi); } _mems.pop_front(); _lens.pop_front(); } uhd::transport::managed_send_buffer::sptr get_send_buff(double){ _msbs.push_back(boost::shared_ptr(new dummy_msb())); _mems.push_back(boost::shared_array(new char[1000])); _lens.push_back(1000); uhd::transport::managed_send_buffer::sptr mrb = _msbs.back()->get_new(_mems.back(), &_lens.back()); return mrb; } private: std::list > _mems; std::list _lens; std::vector > _msbs; std::string _end; }; //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_send_one_channel_one_packet_mode){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "fc32"; id.num_inputs = 1; id.output_format = "sc16_item32_be"; id.num_outputs = 1; dummy_send_xport_class dummy_send_xport("big"); static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; //create the super send packet handler uhd::transport::sph::send_packet_handler handler(1); handler.set_vrt_packer(&uhd::transport::vrt::if_hdr_pack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); handler.set_xport_chan_get_buff(0, boost::bind(&dummy_send_xport_class::get_send_buff, &dummy_send_xport, _1)); handler.set_converter(id); handler.set_max_samples_per_packet(20); //allocate metadata and buffer std::vector > buff(20); uhd::tx_metadata_t metadata; metadata.has_time_spec = true; metadata.time_spec = uhd::time_spec_t(0.0); //generate the test data for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ metadata.start_of_burst = (i == 0); metadata.end_of_burst = (i == NUM_PKTS_TO_TEST-1); const size_t num_sent = handler.send( &buff.front(), 10 + i%10, metadata, 1.0 ); BOOST_CHECK_EQUAL(num_sent, 10 + i%10); metadata.time_spec += uhd::time_spec_t(0, num_sent, SAMP_RATE); } //check the sent packets size_t num_accum_samps = 0; uhd::transport::vrt::if_packet_info_t ifpi; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; dummy_send_xport.pop_front_packet(ifpi); BOOST_CHECK_EQUAL(ifpi.num_payload_words32, 10+i%10); BOOST_CHECK(ifpi.has_tsf); BOOST_CHECK_EQUAL(ifpi.tsf, num_accum_samps*TICK_RATE/SAMP_RATE); BOOST_CHECK_EQUAL(ifpi.sob, i == 0); BOOST_CHECK_EQUAL(ifpi.eob, i == NUM_PKTS_TO_TEST-1); num_accum_samps += ifpi.num_payload_words32; } } //////////////////////////////////////////////////////////////////////// BOOST_AUTO_TEST_CASE(test_sph_send_one_channel_full_buffer_mode){ //////////////////////////////////////////////////////////////////////// uhd::convert::id_type id; id.input_format = "fc32"; id.num_inputs = 1; id.output_format = "sc16_item32_be"; id.num_outputs = 1; dummy_send_xport_class dummy_send_xport("big"); static const double TICK_RATE = 100e6; static const double SAMP_RATE = 10e6; static const size_t NUM_PKTS_TO_TEST = 30; //create the super send packet handler uhd::transport::sph::send_packet_handler handler(1); handler.set_vrt_packer(&uhd::transport::vrt::if_hdr_pack_be); handler.set_tick_rate(TICK_RATE); handler.set_samp_rate(SAMP_RATE); handler.set_xport_chan_get_buff(0, boost::bind(&dummy_send_xport_class::get_send_buff, &dummy_send_xport, _1)); handler.set_converter(id); handler.set_max_samples_per_packet(20); //allocate metadata and buffer std::vector > buff(20*NUM_PKTS_TO_TEST); uhd::tx_metadata_t metadata; metadata.start_of_burst = true; metadata.end_of_burst = true; metadata.has_time_spec = true; metadata.time_spec = uhd::time_spec_t(0.0); //generate the test data const size_t num_sent = handler.send( &buff.front(), buff.size(), metadata, 1.0 ); BOOST_CHECK_EQUAL(num_sent, buff.size()); //check the sent packets size_t num_accum_samps = 0; uhd::transport::vrt::if_packet_info_t ifpi; for (size_t i = 0; i < NUM_PKTS_TO_TEST; i++){ std::cout << "data check " << i << std::endl; dummy_send_xport.pop_front_packet(ifpi); BOOST_CHECK_EQUAL(ifpi.num_payload_words32, 20); BOOST_CHECK(ifpi.has_tsf); BOOST_CHECK_EQUAL(ifpi.tsf, num_accum_samps*TICK_RATE/SAMP_RATE); BOOST_CHECK_EQUAL(ifpi.sob, i == 0); BOOST_CHECK_EQUAL(ifpi.eob, i == NUM_PKTS_TO_TEST-1); num_accum_samps += ifpi.num_payload_words32; } } uhd-3.5.5/host/tests/subdev_spec_test.cpp000066400000000000000000000033431224274632000204750ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include BOOST_AUTO_TEST_CASE(test_subdevice_spec){ std::cout << "Testing subdevice specification..." << std::endl; //load the subdev spec with something uhd::usrp::subdev_spec_t sd_spec; sd_spec.push_back(uhd::usrp::subdev_spec_pair_t("A", "AB")); sd_spec.push_back(uhd::usrp::subdev_spec_pair_t("B", "AB")); //convert to and from args string std::cout << "Pretty Print: " << std::endl << sd_spec.to_pp_string(); std::string markup_str = sd_spec.to_string(); std::cout << "Markup String: " << markup_str << std::endl; uhd::usrp::subdev_spec_t new_sd_spec(markup_str); //they should be the same size BOOST_REQUIRE_EQUAL(sd_spec.size(), new_sd_spec.size()); //the contents should match for (size_t i = 0; i < sd_spec.size(); i++){ BOOST_CHECK_EQUAL(sd_spec.at(i).db_name, new_sd_spec.at(i).db_name); BOOST_CHECK_EQUAL(sd_spec.at(i).sd_name, new_sd_spec.at(i).sd_name); } } uhd-3.5.5/host/tests/time_spec_test.cpp000066400000000000000000000126011224274632000201400ustar00rootroot00000000000000// // Copyright 2010-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include //sleep #include #include BOOST_AUTO_TEST_CASE(test_time_spec_compare){ std::cout << "Testing time specification compare..." << std::endl; BOOST_CHECK(uhd::time_spec_t(2.0) == uhd::time_spec_t(2.0)); BOOST_CHECK(uhd::time_spec_t(2.0) > uhd::time_spec_t(1.0)); BOOST_CHECK(uhd::time_spec_t(1.0) < uhd::time_spec_t(2.0)); BOOST_CHECK(uhd::time_spec_t(1.1) == uhd::time_spec_t(1.1)); BOOST_CHECK(uhd::time_spec_t(1.1) > uhd::time_spec_t(1.0)); BOOST_CHECK(uhd::time_spec_t(1.0) < uhd::time_spec_t(1.1)); BOOST_CHECK(uhd::time_spec_t(0.1) == uhd::time_spec_t(0.1)); BOOST_CHECK(uhd::time_spec_t(0.2) > uhd::time_spec_t(0.1)); BOOST_CHECK(uhd::time_spec_t(0.1) < uhd::time_spec_t(0.2)); } #define CHECK_TS_EQUAL(lhs, rhs) \ BOOST_CHECK_CLOSE((lhs).get_real_secs(), (rhs).get_real_secs(), 0.001) BOOST_AUTO_TEST_CASE(test_time_spec_arithmetic){ std::cout << "Testing time specification arithmetic..." << std::endl; CHECK_TS_EQUAL(uhd::time_spec_t(2.3) + uhd::time_spec_t(1.0), uhd::time_spec_t(3.3)); CHECK_TS_EQUAL(uhd::time_spec_t(2.3) - uhd::time_spec_t(1.0), uhd::time_spec_t(1.3)); CHECK_TS_EQUAL(uhd::time_spec_t(1.0) + uhd::time_spec_t(2.3), uhd::time_spec_t(3.3)); CHECK_TS_EQUAL(uhd::time_spec_t(1.0) - uhd::time_spec_t(2.3), uhd::time_spec_t(-1.3)); } BOOST_AUTO_TEST_CASE(test_time_spec_parts){ std::cout << "Testing time specification parts..." << std::endl; BOOST_CHECK_EQUAL(uhd::time_spec_t(1.1).get_full_secs(), 1); BOOST_CHECK_CLOSE(uhd::time_spec_t(1.1).get_frac_secs(), 0.1, 0.001); BOOST_CHECK_EQUAL(uhd::time_spec_t(1.1).to_ticks(100), 110); BOOST_CHECK_EQUAL(uhd::time_spec_t(-1.1).get_full_secs(), -2); BOOST_CHECK_CLOSE(uhd::time_spec_t(-1.1).get_frac_secs(), 0.9, 0.001); BOOST_CHECK_EQUAL(uhd::time_spec_t(-1.1).to_ticks(100), -110); } BOOST_AUTO_TEST_CASE(test_time_spec_get_system_time){ std::cout << "Testing time specification get system time..." << std::endl; //Not really checking for high resolution timing here, //just need to check that system time is minimally working. uhd::time_spec_t start = uhd::time_spec_t::get_system_time(); boost::this_thread::sleep(boost::posix_time::milliseconds(500)); uhd::time_spec_t stop = uhd::time_spec_t::get_system_time(); uhd::time_spec_t diff = stop - start; std::cout << "start: " << start.get_real_secs() << std::endl; std::cout << "stop: " << stop.get_real_secs() << std::endl; std::cout << "diff: " << diff.get_real_secs() << std::endl; BOOST_CHECK(diff.get_real_secs() > 0); //assert positive BOOST_CHECK(diff.get_real_secs() < 1.0); //assert under 1s } BOOST_AUTO_TEST_CASE(test_time_spec_neg_values){ uhd::time_spec_t ts1(0.3); uhd::time_spec_t ts2(1, -0.9); std::cout << "ts1 " << ts1.get_real_secs() << std::endl; std::cout << "ts2 " << ts2.get_real_secs() << std::endl; BOOST_CHECK(ts1 > ts2); uhd::time_spec_t tsa(430.001083); uhd::time_spec_t tsb(429.999818); uhd::time_spec_t tsc(0.3); uhd::time_spec_t tsd = tsa - tsb; std::cout << "tsa " << tsa.get_real_secs() << std::endl; std::cout << "tsb " << tsb.get_real_secs() << std::endl; std::cout << "tsc " << tsc.get_real_secs() << std::endl; std::cout << "tsd " << tsd.get_real_secs() << std::endl; BOOST_CHECK(tsa > tsb); BOOST_CHECK(tsc > tsd); } BOOST_AUTO_TEST_CASE(test_time_large_ticks_to_time_spec) { std::cout << "sizeof(time_t) " << sizeof(time_t) << std::endl; const boost::uint64_t ticks0 = boost::uint64_t(100e6*1360217663.739296); const uhd::time_spec_t t0 = uhd::time_spec_t::from_ticks(ticks0, 100e6); std::cout << "t0.get_real_secs() " << t0.get_real_secs() << std::endl; std::cout << "t0.get_full_secs() " << t0.get_full_secs() << std::endl; std::cout << "t0.get_frac_secs() " << t0.get_frac_secs() << std::endl; BOOST_CHECK_EQUAL(t0.get_full_secs(), time_t(1360217663)); } BOOST_AUTO_TEST_CASE(test_time_error_irrational_rate) { static const double rate = 1625e3/6; const long long tick_in = 23423436291667; const uhd::time_spec_t ts = uhd::time_spec_t::from_ticks(tick_in, rate); const long long tick_out = ts.to_ticks(rate); const long long err = tick_in - tick_out; std::cout << std::setprecision(18); std::cout << "time ............ " << ts.get_real_secs() << std::endl; std::cout << "tick in ......... " << tick_in << std::endl; std::cout << "tick out ........ " << tick_out << std::endl; std::cout << "tick error ...... " << err << std::endl; std::cout << std::endl; BOOST_CHECK_EQUAL(err, (long long)(0)); } uhd-3.5.5/host/tests/vrt_test.cpp000066400000000000000000000123231224274632000170040ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include using namespace uhd::transport; static void pack_and_unpack( vrt::if_packet_info_t &if_packet_info_in ){ boost::uint32_t header_buff[vrt::max_if_hdr_words32]; //pack metadata into a vrt header vrt::if_hdr_pack_be( header_buff, if_packet_info_in ); vrt::if_packet_info_t if_packet_info_out; if_packet_info_out.num_packet_words32 = if_packet_info_in.num_packet_words32; //unpack the vrt header back into metadata vrt::if_hdr_unpack_be( header_buff, if_packet_info_out ); //check the the unpacked metadata is the same BOOST_CHECK_EQUAL(if_packet_info_in.packet_count, if_packet_info_out.packet_count); BOOST_CHECK_EQUAL(if_packet_info_in.num_header_words32, if_packet_info_out.num_header_words32); BOOST_CHECK_EQUAL(if_packet_info_in.num_payload_words32, if_packet_info_out.num_payload_words32); BOOST_CHECK_EQUAL(if_packet_info_in.has_sid, if_packet_info_out.has_sid); if (if_packet_info_in.has_sid and if_packet_info_out.has_sid){ BOOST_CHECK_EQUAL(if_packet_info_in.sid, if_packet_info_out.sid); } BOOST_CHECK_EQUAL(if_packet_info_in.has_cid, if_packet_info_out.has_cid); if (if_packet_info_in.has_cid and if_packet_info_out.has_cid){ BOOST_CHECK_EQUAL(if_packet_info_in.cid, if_packet_info_out.cid); } BOOST_CHECK_EQUAL(if_packet_info_in.has_tsi, if_packet_info_out.has_tsi); if (if_packet_info_in.has_tsi and if_packet_info_out.has_tsi){ BOOST_CHECK_EQUAL(if_packet_info_in.tsi, if_packet_info_out.tsi); } BOOST_CHECK_EQUAL(if_packet_info_in.has_tsf, if_packet_info_out.has_tsf); if (if_packet_info_in.has_tsf and if_packet_info_out.has_tsf){ BOOST_CHECK_EQUAL(if_packet_info_in.tsf, if_packet_info_out.tsf); } BOOST_CHECK_EQUAL(if_packet_info_in.has_tlr, if_packet_info_out.has_tlr); if (if_packet_info_in.has_tlr and if_packet_info_out.has_tlr){ BOOST_CHECK_EQUAL(if_packet_info_in.tlr, if_packet_info_out.tlr); } } /*********************************************************************** * Loopback test the vrt packer/unpacker with various packet info combos * The trailer is not tested as it is not convenient to do so. **********************************************************************/ BOOST_AUTO_TEST_CASE(test_with_none){ vrt::if_packet_info_t if_packet_info; if_packet_info.packet_count = 0; if_packet_info.has_sid = false; if_packet_info.has_cid = false; if_packet_info.has_tsi = false; if_packet_info.has_tsf = false; if_packet_info.has_tlr = false; if_packet_info.num_payload_words32 = 0; pack_and_unpack(if_packet_info); } BOOST_AUTO_TEST_CASE(test_with_sid){ vrt::if_packet_info_t if_packet_info; if_packet_info.packet_count = 1; if_packet_info.has_sid = true; if_packet_info.has_cid = false; if_packet_info.has_tsi = false; if_packet_info.has_tsf = false; if_packet_info.has_tlr = false; if_packet_info.sid = std::rand(); if_packet_info.num_payload_words32 = 1111; pack_and_unpack(if_packet_info); } static const bool cid_enb = false; BOOST_AUTO_TEST_CASE(test_with_cid){ vrt::if_packet_info_t if_packet_info; if_packet_info.packet_count = 2; if_packet_info.has_sid = false; if_packet_info.has_cid = cid_enb; if_packet_info.has_tsi = false; if_packet_info.has_tsf = false; if_packet_info.has_tlr = false; if_packet_info.cid = std::rand(); if_packet_info.num_payload_words32 = 2222; pack_and_unpack(if_packet_info); } BOOST_AUTO_TEST_CASE(test_with_time){ vrt::if_packet_info_t if_packet_info; if_packet_info.packet_count = 3; if_packet_info.has_sid = false; if_packet_info.has_cid = false; if_packet_info.has_tsi = true; if_packet_info.has_tsf = true; if_packet_info.has_tlr = false; if_packet_info.tsi = std::rand(); if_packet_info.tsf = std::rand(); if_packet_info.num_payload_words32 = 33333; pack_and_unpack(if_packet_info); } BOOST_AUTO_TEST_CASE(test_with_all){ vrt::if_packet_info_t if_packet_info; if_packet_info.packet_count = 4; if_packet_info.has_sid = true; if_packet_info.has_cid = cid_enb; if_packet_info.has_tsi = true; if_packet_info.has_tsf = true; if_packet_info.has_tlr = false; if_packet_info.sid = std::rand(); if_packet_info.cid = std::rand(); if_packet_info.tsi = std::rand(); if_packet_info.tsf = std::rand(); if_packet_info.num_payload_words32 = 44444; pack_and_unpack(if_packet_info); } uhd-3.5.5/host/uhd.pc.in000066400000000000000000000006711224274632000150000ustar00rootroot00000000000000prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=${exec_prefix}/@LIBRARY_DIR@ includedir=${prefix}/@INCLUDE_DIR@ Name: @CPACK_PACKAGE_NAME@ Description: @CPACK_PACKAGE_DESCRIPTION_SUMMARY@ URL: http://code.ettus.com/redmine/ettus/projects/uhd/wiki Version: @CPACK_PACKAGE_VERSION@ Requires: Requires.private: @UHD_PC_REQUIRES@ Conflicts: Cflags: -I${includedir} @UHD_PC_CFLAGS@ Libs: -L${libdir} -luhd Libs.private: @UHD_PC_LIBS@ uhd-3.5.5/host/utils/000077500000000000000000000000001224274632000144235ustar00rootroot00000000000000uhd-3.5.5/host/utils/CMakeLists.txt000066400000000000000000000101601224274632000171610ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Utilities that get installed into the runtime path ######################################################################## SET(util_runtime_sources uhd_find_devices.cpp uhd_usrp_probe.cpp uhd_cal_rx_iq_balance.cpp uhd_cal_tx_dc_offset.cpp uhd_cal_tx_iq_balance.cpp usrp_n2xx_simple_net_burner.cpp ) #for each source: build an executable and install FOREACH(util_source ${util_runtime_sources}) GET_FILENAME_COMPONENT(util_name ${util_source} NAME_WE) ADD_EXECUTABLE(${util_name} ${util_source}) TARGET_LINK_LIBRARIES(${util_name} uhd ${Boost_LIBRARIES}) UHD_INSTALL(TARGETS ${util_name} RUNTIME DESTINATION ${RUNTIME_DIR} COMPONENT utilities) ENDFOREACH(util_source) ######################################################################## # Utilities that get installed into the share path ######################################################################## SET(util_share_sources query_gpsdo_sensors.cpp usrp_burn_db_eeprom.cpp usrp_burn_mb_eeprom.cpp ) IF(ENABLE_USB) LIST(APPEND util_share_sources fx2_init_eeprom.cpp ) ENDIF(ENABLE_USB) IF(LINUX AND ENABLE_USB) UHD_INSTALL(FILES uhd-usrp.rules DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities ) ENDIF(LINUX AND ENABLE_USB) #for each source: build an executable and install FOREACH(util_source ${util_share_sources}) GET_FILENAME_COMPONENT(util_name ${util_source} NAME_WE) ADD_EXECUTABLE(${util_name} ${util_source}) TARGET_LINK_LIBRARIES(${util_name} uhd ${Boost_LIBRARIES}) UHD_INSTALL(TARGETS ${util_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities) ENDFOREACH(util_source) UHD_INSTALL(TARGETS usrp_n2xx_simple_net_burner RUNTIME DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities) #UHD images downloader configuration CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/uhd_images_downloader.py.in ${CMAKE_CURRENT_BINARY_DIR}/uhd_images_downloader.py @ONLY) UHD_INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/uhd_images_downloader.py DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities ) IF(LINUX) UHD_INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/uhd_images_downloader.py RENAME uhd_images_downloader DESTINATION ${RUNTIME_DIR} COMPONENT utilities ) ENDIF(LINUX) IF(ENABLE_USRP2) SET(burners usrp2_card_burner.py usrp2_card_burner_gui.py usrp_n2xx_net_burner.py usrp_n2xx_net_burner_gui.py ) IF(WIN32 AND UHD_RELEASE_MODE) #include dd.exe FILE(DOWNLOAD "http://files.ettus.com/dd.exe" ${CMAKE_CURRENT_BINARY_DIR}/dd.exe ) UHD_INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/dd.exe DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities ) ENDIF(WIN32 AND UHD_RELEASE_MODE) IF(LINUX) UHD_INSTALL(PROGRAMS usrp2_recovery.py DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities ) UHD_INSTALL(PROGRAMS usrp2_card_burner.py RENAME usrp2_card_burner DESTINATION ${RUNTIME_DIR} COMPONENT utilities ) ENDIF(LINUX) FOREACH(burner ${burners}) UHD_INSTALL(PROGRAMS ${burner} DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities ) ENDFOREACH(burner ${burners}) ENDIF(ENABLE_USRP2) uhd-3.5.5/host/utils/FastSendDatagramThreshold.reg000077500000000000000000000004701224274632000221530ustar00rootroot00000000000000ÿþWindows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\AFD\Parameters] "FastSendDatagramThreshold"=dword:00000800 uhd-3.5.5/host/utils/fx2_init_eeprom.cpp000066400000000000000000000065411224274632000202260ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include const std::string FX2_VENDOR_ID("0x04b4"); const std::string FX2_PRODUCT_ID("0x8613"); namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ std::string type; po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("image", po::value(), "BIN image file") ("vid", po::value(), "VID of device to program") ("pid", po::value(), "PID of device to program") ("type", po::value(), "device type (usrp1 or b100)") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("USRP EEPROM initialization %s") % desc << std::endl; return ~0; } //cant find a uninitialized usrp with this mystery module in the way... if (std::system("/sbin/rmmod usbtest") != 0){ std::cerr << "Did not rmmod usbtest, this may be ok..." << std::endl; } //load the options into the address uhd::device_addr_t device_addr; device_addr["type"] = type; if(vm.count("vid") or vm.count("pid") or vm.count("type")) { if(not (vm.count("vid") and vm.count("pid") and vm.count("type"))) { std::cerr << "ERROR: Must specify vid, pid, and type if specifying any of the three args" << std::endl; } else { device_addr["vid"] = vm["vid"].as(); device_addr["pid"] = vm["pid"].as(); device_addr["type"] = vm["type"].as(); } } else { device_addr["vid"] = FX2_VENDOR_ID; device_addr["pid"] = FX2_PRODUCT_ID; } //find and create a control transport to do the writing. uhd::device_addrs_t found_addrs = uhd::device::find(device_addr); if (found_addrs.size() == 0){ std::cerr << "No USRP devices found" << std::endl; return ~0; } for (size_t i = 0; i < found_addrs.size(); i++){ std::cout << "Writing EEPROM data..." << std::endl; //uhd::device_addrs_t devs = uhd::device::find(found_addrs[i]); uhd::device::sptr dev = uhd::device::make(found_addrs[i]); uhd::property_tree::sptr tree = dev->get_tree(); tree->access("/mboards/0/load_eeprom").set(vm["image"].as()); } std::cout << "Power-cycle the usrp for the changes to take effect." << std::endl; return 0; } uhd-3.5.5/host/utils/query_gpsdo_sensors.cpp000066400000000000000000000124501224274632000212460ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; namespace fs = boost::filesystem; void print_notes(void) { // Helpful notes std::cout << boost::format("**************************************Helpful Notes on Clock/PPS Selection**************************************\n"); std::cout << boost::format("As you can see, the default 10 MHz Reference and 1 PPS signals are now from the GPSDO.\n"); std::cout << boost::format("If you would like to use the internal reference(TCXO) in other applications, you must configure that explicitly.\n"); std::cout << boost::format("You can no longer select the external SMAs for 10 MHz or 1 PPS signaling.\n"); std::cout << boost::format("****************************************************************************************************************\n"); } int UHD_SAFE_MAIN(int argc, char *argv[]){ uhd::set_thread_priority_safe(); std::string args; //Set up program options po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "Specify a single USRP.") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //Print the help message if (vm.count("help")) { std::cout << boost::format("Query GPSDO Sensors %s") % desc << std::endl; return EXIT_FAILURE; } //Create a USRP device std::cout << boost::format("\nCreating the USRP device with: %s...\n") % args; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); std::cout << boost::format("Using Device: %s\n") % usrp->get_pp_string(); print_notes(); //Verify GPS sensors are present (i.e. EEPROM has been burnt) std::vector sensor_names = usrp->get_mboard_sensor_names(0); if(std::find(sensor_names.begin(), sensor_names.end(), "gps_locked") == sensor_names.end()) { std::cout << boost::format("\ngps_locked sensor not found. This could mean that you have not installed the GPSDO correctly.\n\n"); std::cout << boost::format("Visit this page if the problem persists:\n"); std::cout << boost::format("http://files.ettus.com/uhd_docs/manual/html/gpsdo.html\n\n"); exit(EXIT_FAILURE); } //Check for GPS lock uhd::sensor_value_t gps_locked = usrp->get_mboard_sensor("gps_locked",0); if(not gps_locked.to_bool()) { std::cout << boost::format("\nGPS does not have lock. Wait a few minutes and try again.\n"); std::cout << boost::format("NMEA strings and device time may not be accurate until lock is achieved.\n\n"); } else std::cout << boost::format("GPS Locked\n"); //Check for 10 MHz lock if(std::find(sensor_names.begin(), sensor_names.end(), "ref_locked") != sensor_names.end()) { uhd::sensor_value_t gps_locked = usrp->get_mboard_sensor("ref_locked",0); if(not gps_locked.to_bool()) { std::cout << boost::format("USRP NOT Locked to GPSDO 10 MHz Reference.\n"); std::cout << boost::format("Double check installation instructions: https://www.ettus.com/content/files/gpsdo-kit_2.pdf\n\n"); } else std::cout << boost::format("USRP Locked to GPSDO 10 MHz Reference.\n"); }else std::cout << boost::format("ref_locked sensor not present on this board.\n"); //Check PPS and compare UHD device time to GPS time boost::this_thread::sleep(boost::posix_time::seconds(1)); uhd::sensor_value_t gps_time = usrp->get_mboard_sensor("gps_time"); const uhd::time_spec_t last_pps_time = usrp->get_time_last_pps(); if (last_pps_time.to_ticks(1.0) == gps_time.to_int()) { std::cout << boost::format("GPS and UHD Device time are aligned.\n"); } else std::cout << boost::format("\nGPS and UHD Device time are NOT aligned. Try re-running the program. Double check 1 PPS connection from GPSDO.\n\n"); //print NMEA strings std::cout << boost::format("Printing available NMEA strings:\n"); uhd::sensor_value_t gga_string = usrp->get_mboard_sensor("gps_gpgga"); uhd::sensor_value_t rmc_string = usrp->get_mboard_sensor("gps_gprmc"); std::cout << boost::format("%s\n%s\n%s\n") % gga_string.to_pp_string() % rmc_string.to_pp_string() % gps_time.to_pp_string(); std::cout << boost::format("UHD Device time: %.0f seconds\n") % (last_pps_time.get_real_secs()); //finished std::cout << boost::format("\nDone!\n\n"); return EXIT_SUCCESS; } uhd-3.5.5/host/utils/uhd-usrp.rules000066400000000000000000000015131224274632000172460ustar00rootroot00000000000000# # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # SUBSYSTEMS=="usb", ATTRS{idVendor}=="fffe", ATTRS{idProduct}=="0002", MODE:="0666" SUBSYSTEMS=="usb", ATTRS{idVendor}=="2500", ATTRS{idProduct}=="0002", MODE:="0666" uhd-3.5.5/host/utils/uhd_cal_rx_iq_balance.cpp000066400000000000000000000237321224274632000214040ustar00rootroot00000000000000// // Copyright 2010,2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp_cal_utils.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Transmit thread **********************************************************************/ static void tx_thread(uhd::usrp::multi_usrp::sptr usrp, const double tx_wave_ampl){ uhd::set_thread_priority_safe(); //create a transmit streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //setup variables and allocate buffer uhd::tx_metadata_t md; md.has_time_spec = false; std::vector buff(tx_stream->get_max_num_samps()*10); //fill buff and send until interrupted while (not boost::this_thread::interruption_requested()){ for (size_t i = 0; i < buff.size(); i++){ buff[i] = float(tx_wave_ampl); } tx_stream->send(&buff.front(), buff.size(), md); } //send a mini EOB packet md.end_of_burst = true; tx_stream->send("", 0, md); } /*********************************************************************** * Tune RX and TX routine **********************************************************************/ static double tune_rx_and_tx(uhd::usrp::multi_usrp::sptr usrp, const double rx_lo_freq, const double tx_offset){ //tune the receiver with no cordic uhd::tune_request_t rx_tune_req(rx_lo_freq); rx_tune_req.dsp_freq_policy = uhd::tune_request_t::POLICY_MANUAL; rx_tune_req.dsp_freq = 0; usrp->set_rx_freq(rx_tune_req); //tune the transmitter with no cordic uhd::tune_request_t tx_tune_req(usrp->get_rx_freq() - tx_offset); tx_tune_req.dsp_freq_policy = uhd::tune_request_t::POLICY_MANUAL; tx_tune_req.dsp_freq = 0; usrp->set_tx_freq(tx_tune_req); //wait for the LOs to become locked boost::this_thread::sleep(boost::posix_time::milliseconds(50)); boost::system_time start = boost::get_system_time(); while (not usrp->get_tx_sensor("lo_locked").to_bool() or not usrp->get_rx_sensor("lo_locked").to_bool()){ if (boost::get_system_time() > start + boost::posix_time::milliseconds(100)){ throw std::runtime_error("timed out waiting for TX and/or RX LO to lock"); } } return usrp->get_rx_freq(); } /*********************************************************************** * Main **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ std::string args; double tx_wave_ampl, tx_offset; double freq_start, freq_stop, freq_step; size_t nsamps; po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("verbose", "enable some verbose") ("args", po::value(&args)->default_value(""), "device address args [default = \"\"]") ("tx_wave_ampl", po::value(&tx_wave_ampl)->default_value(0.7), "Transmit wave amplitude in counts") ("tx_offset", po::value(&tx_offset)->default_value(.9344e6), "TX LO offset from the RX LO in Hz") ("freq_start", po::value(&freq_start), "Frequency start in Hz (do not specify for default)") ("freq_stop", po::value(&freq_stop), "Frequency stop in Hz (do not specify for default)") ("freq_step", po::value(&freq_step)->default_value(default_freq_step), "Step size for LO sweep in Hz") ("nsamps", po::value(&nsamps)->default_value(default_num_samps), "Samples per data capture") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("USRP Generate RX IQ Balance Calibration Table %s") % desc << std::endl; std::cout << "This application measures leakage between RX and TX on an XCVR daughterboard to self-calibrate.\n" << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //set the antennas to cal if (not uhd::has(usrp->get_rx_antennas(), "CAL") or not uhd::has(usrp->get_tx_antennas(), "CAL")){ throw std::runtime_error("This board does not have the CAL antenna option, cannot self-calibrate."); } usrp->set_rx_antenna("CAL"); usrp->set_tx_antenna("CAL"); //fail if daughterboard has no serial check_for_empty_serial(usrp, "RX", "rx", args); //set optimum defaults set_optimum_defaults(usrp); //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //create a transmitter thread boost::thread_group threads; threads.create_thread(boost::bind(&tx_thread, usrp, tx_wave_ampl)); //re-usable buffer for samples std::vector buff; //store the results here std::vector results; if (not vm.count("freq_start")) freq_start = usrp->get_rx_freq_range().start() + 50e6; if (not vm.count("freq_stop")) freq_stop = usrp->get_rx_freq_range().stop() - 50e6; for (double rx_lo_i = freq_start; rx_lo_i <= freq_stop; rx_lo_i += freq_step){ const double rx_lo = tune_rx_and_tx(usrp, rx_lo_i, tx_offset); //frequency constants for this tune event const double actual_rx_rate = usrp->get_rx_rate(); const double actual_tx_freq = usrp->get_tx_freq(); const double actual_rx_freq = usrp->get_rx_freq(); const double bb_tone_freq = actual_tx_freq - actual_rx_freq; const double bb_imag_freq = -bb_tone_freq; //capture initial uncorrected value usrp->set_rx_iq_balance(0.0); capture_samples(usrp, rx_stream, buff, nsamps); const double initial_suppression = compute_tone_dbrms(buff, bb_tone_freq/actual_rx_rate) - compute_tone_dbrms(buff, bb_imag_freq/actual_rx_rate); //bounds and results from searching std::complex best_correction; double phase_corr_start = -.3, phase_corr_stop = .3, phase_corr_step; double ampl_corr_start = -.3, ampl_corr_stop = .3, ampl_corr_step; double best_suppression = 0, best_phase_corr = 0, best_ampl_corr = 0; for (size_t i = 0; i < num_search_iters; i++){ phase_corr_step = (phase_corr_stop - phase_corr_start)/(num_search_steps-1); ampl_corr_step = (ampl_corr_stop - ampl_corr_start)/(num_search_steps-1); for (double phase_corr = phase_corr_start; phase_corr <= phase_corr_stop + phase_corr_step/2; phase_corr += phase_corr_step){ for (double ampl_corr = ampl_corr_start; ampl_corr <= ampl_corr_stop + ampl_corr_step/2; ampl_corr += ampl_corr_step){ const std::complex correction(ampl_corr, phase_corr); usrp->set_rx_iq_balance(correction); //receive some samples capture_samples(usrp, rx_stream, buff, nsamps); const double tone_dbrms = compute_tone_dbrms(buff, bb_tone_freq/actual_rx_rate); const double imag_dbrms = compute_tone_dbrms(buff, bb_imag_freq/actual_rx_rate); const double suppression = tone_dbrms - imag_dbrms; if (suppression > best_suppression){ best_correction = correction; best_suppression = suppression; best_phase_corr = phase_corr; best_ampl_corr = ampl_corr; } }} //std::cout << "best_phase_corr " << best_phase_corr << std::endl; //std::cout << "best_ampl_corr " << best_ampl_corr << std::endl; //std::cout << "best_suppression " << best_suppression << std::endl; phase_corr_start = best_phase_corr - phase_corr_step; phase_corr_stop = best_phase_corr + phase_corr_step; ampl_corr_start = best_ampl_corr - ampl_corr_step; ampl_corr_stop = best_ampl_corr + ampl_corr_step; } if (best_suppression > 30){ //most likely valid, keep result result_t result; result.freq = rx_lo; result.real_corr = best_correction.real(); result.imag_corr = best_correction.imag(); result.best = best_suppression; result.delta = best_suppression - initial_suppression; results.push_back(result); if (vm.count("verbose")){ std::cout << boost::format("RX IQ: %f MHz: best suppression %f dB, corrected %f dB") % (rx_lo/1e6) % result.best % result.delta << std::endl; } else std::cout << "." << std::flush; } } std::cout << std::endl; //stop the transmitter threads.interrupt_all(); threads.join_all(); store_results(usrp, results, "RX", "rx", "iq"); return 0; } uhd-3.5.5/host/utils/uhd_cal_tx_dc_offset.cpp000066400000000000000000000230221224274632000212540ustar00rootroot00000000000000// // Copyright 2010,2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp_cal_utils.hpp" #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Transmit thread **********************************************************************/ static void tx_thread(uhd::usrp::multi_usrp::sptr usrp, const double tx_wave_freq, const double tx_wave_ampl){ uhd::set_thread_priority_safe(); //create a transmit streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //setup variables and allocate buffer uhd::tx_metadata_t md; md.has_time_spec = false; std::vector buff(tx_stream->get_max_num_samps()*10); //values for the wave table lookup size_t index = 0; const double tx_rate = usrp->get_tx_rate(); const size_t step = boost::math::iround(wave_table_len * tx_wave_freq/tx_rate); wave_table table(tx_wave_ampl); //fill buff and send until interrupted while (not boost::this_thread::interruption_requested()){ for (size_t i = 0; i < buff.size(); i++){ buff[i] = table(index += step); } tx_stream->send(&buff.front(), buff.size(), md); } //send a mini EOB packet md.end_of_burst = true; tx_stream->send("", 0, md); } /*********************************************************************** * Tune RX and TX routine **********************************************************************/ static double tune_rx_and_tx(uhd::usrp::multi_usrp::sptr usrp, const double tx_lo_freq, const double rx_offset){ //tune the transmitter with no cordic uhd::tune_request_t tx_tune_req(tx_lo_freq); tx_tune_req.dsp_freq_policy = uhd::tune_request_t::POLICY_MANUAL; tx_tune_req.dsp_freq = 0; usrp->set_tx_freq(tx_tune_req); //tune the receiver usrp->set_rx_freq(usrp->get_tx_freq() - rx_offset); //wait for the LOs to become locked boost::this_thread::sleep(boost::posix_time::milliseconds(50)); boost::system_time start = boost::get_system_time(); while (not usrp->get_tx_sensor("lo_locked").to_bool() or not usrp->get_rx_sensor("lo_locked").to_bool()){ if (boost::get_system_time() > start + boost::posix_time::milliseconds(100)){ throw std::runtime_error("timed out waiting for TX and/or RX LO to lock"); } } return usrp->get_tx_freq(); } /*********************************************************************** * Main **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ std::string args; double tx_wave_freq, tx_wave_ampl, rx_offset; double freq_start, freq_stop, freq_step; size_t nsamps; po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("verbose", "enable some verbose") ("args", po::value(&args)->default_value(""), "device address args [default = \"\"]") ("tx_wave_freq", po::value(&tx_wave_freq)->default_value(507.123e3), "Transmit wave frequency in Hz") ("tx_wave_ampl", po::value(&tx_wave_ampl)->default_value(0.7), "Transmit wave amplitude in counts") ("rx_offset", po::value(&rx_offset)->default_value(.9344e6), "RX LO offset from the TX LO in Hz") ("freq_start", po::value(&freq_start), "Frequency start in Hz (do not specify for default)") ("freq_stop", po::value(&freq_stop), "Frequency stop in Hz (do not specify for default)") ("freq_step", po::value(&freq_step)->default_value(default_freq_step), "Step size for LO sweep in Hz") ("nsamps", po::value(&nsamps)->default_value(default_num_samps), "Samples per data capture") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("USRP Generate TX DC Offset Calibration Table %s") % desc << std::endl; std::cout << "This application measures leakage between RX and TX on an XCVR daughterboard to self-calibrate.\n" << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //set the antennas to cal if (not uhd::has(usrp->get_rx_antennas(), "CAL") or not uhd::has(usrp->get_tx_antennas(), "CAL")){ throw std::runtime_error("This board does not have the CAL antenna option, cannot self-calibrate."); } usrp->set_rx_antenna("CAL"); usrp->set_tx_antenna("CAL"); //fail if daughterboard has no serial check_for_empty_serial(usrp, "TX", "tx", args); //set optimum defaults set_optimum_defaults(usrp); //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //create a transmitter thread boost::thread_group threads; threads.create_thread(boost::bind(&tx_thread, usrp, tx_wave_freq, tx_wave_ampl)); //re-usable buffer for samples std::vector buff; //store the results here std::vector results; if (not vm.count("freq_start")) freq_start = usrp->get_tx_freq_range().start() + 50e6; if (not vm.count("freq_stop")) freq_stop = usrp->get_tx_freq_range().stop() - 50e6; for (double tx_lo_i = freq_start; tx_lo_i <= freq_stop; tx_lo_i += freq_step){ const double tx_lo = tune_rx_and_tx(usrp, tx_lo_i, rx_offset); //frequency constants for this tune event const double actual_rx_rate = usrp->get_rx_rate(); const double actual_tx_freq = usrp->get_tx_freq(); const double actual_rx_freq = usrp->get_rx_freq(); const double bb_dc_freq = actual_tx_freq - actual_rx_freq; //capture initial uncorrected value usrp->set_tx_dc_offset(std::complex(0, 0)); capture_samples(usrp, rx_stream, buff, nsamps); const double initial_dc_dbrms = compute_tone_dbrms(buff, bb_dc_freq/actual_rx_rate); //bounds and results from searching double dc_i_start = -.01, dc_i_stop = .01, dc_i_step; double dc_q_start = -.01, dc_q_stop = .01, dc_q_step; double lowest_offset = 0, best_dc_i = 0, best_dc_q = 0; for (size_t i = 0; i < num_search_iters; i++){ dc_i_step = (dc_i_stop - dc_i_start)/(num_search_steps-1); dc_q_step = (dc_q_stop - dc_q_start)/(num_search_steps-1); for (double dc_i = dc_i_start; dc_i <= dc_i_stop + dc_i_step/2; dc_i += dc_i_step){ for (double dc_q = dc_q_start; dc_q <= dc_q_stop + dc_q_step/2; dc_q += dc_q_step){ const std::complex correction(dc_i, dc_q); usrp->set_tx_dc_offset(correction); //receive some samples capture_samples(usrp, rx_stream, buff, nsamps); const double dc_dbrms = compute_tone_dbrms(buff, bb_dc_freq/actual_rx_rate); if (dc_dbrms < lowest_offset){ lowest_offset = dc_dbrms; best_dc_i = dc_i; best_dc_q = dc_q; } }} //std::cout << "best_dc_i " << best_dc_i << std::endl; //std::cout << "best_dc_q " << best_dc_q << std::endl; //std::cout << "lowest_offset " << lowest_offset << std::endl; dc_i_start = best_dc_i - dc_i_step; dc_i_stop = best_dc_i + dc_i_step; dc_q_start = best_dc_q - dc_q_step; dc_q_stop = best_dc_q + dc_q_step; } if (lowest_offset < initial_dc_dbrms){ //most likely valid, keep result result_t result; result.freq = tx_lo; result.real_corr = best_dc_i; result.imag_corr = best_dc_q; result.best = lowest_offset; result.delta = initial_dc_dbrms - lowest_offset; results.push_back(result); if (vm.count("verbose")){ std::cout << boost::format("TX DC: %f MHz: lowest offset %f dB, corrected %f dB") % (tx_lo/1e6) % result.best % result.delta << std::endl; } else std::cout << "." << std::flush; } } std::cout << std::endl; //stop the transmitter threads.interrupt_all(); threads.join_all(); store_results(usrp, results, "TX", "tx", "dc"); return 0; } uhd-3.5.5/host/utils/uhd_cal_tx_iq_balance.cpp000066400000000000000000000243501224274632000214030ustar00rootroot00000000000000// // Copyright 2010,2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include "usrp_cal_utils.hpp" #include #include #include #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; /*********************************************************************** * Transmit thread **********************************************************************/ static void tx_thread(uhd::usrp::multi_usrp::sptr usrp, const double tx_wave_freq, const double tx_wave_ampl){ uhd::set_thread_priority_safe(); //create a transmit streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::tx_streamer::sptr tx_stream = usrp->get_tx_stream(stream_args); //setup variables and allocate buffer uhd::tx_metadata_t md; md.has_time_spec = false; std::vector buff(tx_stream->get_max_num_samps()*10); //values for the wave table lookup size_t index = 0; const double tx_rate = usrp->get_tx_rate(); const size_t step = boost::math::iround(wave_table_len * tx_wave_freq/tx_rate); wave_table table(tx_wave_ampl); //fill buff and send until interrupted while (not boost::this_thread::interruption_requested()){ for (size_t i = 0; i < buff.size(); i++){ buff[i] = table(index += step); } tx_stream->send(&buff.front(), buff.size(), md); } //send a mini EOB packet md.end_of_burst = true; tx_stream->send("", 0, md); } /*********************************************************************** * Tune RX and TX routine **********************************************************************/ static double tune_rx_and_tx(uhd::usrp::multi_usrp::sptr usrp, const double tx_lo_freq, const double rx_offset){ //tune the transmitter with no cordic uhd::tune_request_t tx_tune_req(tx_lo_freq); tx_tune_req.dsp_freq_policy = uhd::tune_request_t::POLICY_MANUAL; tx_tune_req.dsp_freq = 0; usrp->set_tx_freq(tx_tune_req); //tune the receiver usrp->set_rx_freq(usrp->get_tx_freq() - rx_offset); //wait for the LOs to become locked boost::this_thread::sleep(boost::posix_time::milliseconds(50)); boost::system_time start = boost::get_system_time(); while (not usrp->get_tx_sensor("lo_locked").to_bool() or not usrp->get_rx_sensor("lo_locked").to_bool()){ if (boost::get_system_time() > start + boost::posix_time::milliseconds(100)){ throw std::runtime_error("timed out waiting for TX and/or RX LO to lock"); } } return usrp->get_tx_freq(); } /*********************************************************************** * Main **********************************************************************/ int UHD_SAFE_MAIN(int argc, char *argv[]){ std::string args; double tx_wave_freq, tx_wave_ampl, rx_offset; double freq_start, freq_stop, freq_step; size_t nsamps; po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("verbose", "enable some verbose") ("args", po::value(&args)->default_value(""), "device address args [default = \"\"]") ("tx_wave_freq", po::value(&tx_wave_freq)->default_value(507.123e3), "Transmit wave frequency in Hz") ("tx_wave_ampl", po::value(&tx_wave_ampl)->default_value(0.7), "Transmit wave amplitude in counts") ("rx_offset", po::value(&rx_offset)->default_value(.9344e6), "RX LO offset from the TX LO in Hz") ("freq_start", po::value(&freq_start), "Frequency start in Hz (do not specify for default)") ("freq_stop", po::value(&freq_stop), "Frequency stop in Hz (do not specify for default)") ("freq_step", po::value(&freq_step)->default_value(default_freq_step), "Step size for LO sweep in Hz") ("nsamps", po::value(&nsamps)->default_value(default_num_samps), "Samples per data capture") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("USRP Generate TX IQ Balance Calibration Table %s") % desc << std::endl; std::cout << "This application measures leakage between RX and TX on an XCVR daughterboard to self-calibrate.\n" << std::endl; return ~0; } //create a usrp device std::cout << std::endl; std::cout << boost::format("Creating the usrp device with: %s...") % args << std::endl; uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args); //set the antennas to cal if (not uhd::has(usrp->get_rx_antennas(), "CAL") or not uhd::has(usrp->get_tx_antennas(), "CAL")){ throw std::runtime_error("This board does not have the CAL antenna option, cannot self-calibrate."); } usrp->set_rx_antenna("CAL"); usrp->set_tx_antenna("CAL"); //fail if daughterboard has no serial check_for_empty_serial(usrp, "TX", "tx", args); //set optimum defaults set_optimum_defaults(usrp); //create a receive streamer uhd::stream_args_t stream_args("fc32"); //complex floats uhd::rx_streamer::sptr rx_stream = usrp->get_rx_stream(stream_args); //create a transmitter thread boost::thread_group threads; threads.create_thread(boost::bind(&tx_thread, usrp, tx_wave_freq, tx_wave_ampl)); //re-usable buffer for samples std::vector buff; //store the results here std::vector results; if (not vm.count("freq_start")) freq_start = usrp->get_tx_freq_range().start() + 50e6; if (not vm.count("freq_stop")) freq_stop = usrp->get_tx_freq_range().stop() - 50e6; for (double tx_lo_i = freq_start; tx_lo_i <= freq_stop; tx_lo_i += freq_step){ const double tx_lo = tune_rx_and_tx(usrp, tx_lo_i, rx_offset); //frequency constants for this tune event const double actual_rx_rate = usrp->get_rx_rate(); const double actual_tx_freq = usrp->get_tx_freq(); const double actual_rx_freq = usrp->get_rx_freq(); const double bb_tone_freq = actual_tx_freq + tx_wave_freq - actual_rx_freq; const double bb_imag_freq = actual_tx_freq - tx_wave_freq - actual_rx_freq; //capture initial uncorrected value usrp->set_tx_iq_balance(0.0); capture_samples(usrp, rx_stream, buff, nsamps); const double initial_suppression = compute_tone_dbrms(buff, bb_tone_freq/actual_rx_rate) - compute_tone_dbrms(buff, bb_imag_freq/actual_rx_rate); //bounds and results from searching std::complex best_correction; double phase_corr_start = -.3, phase_corr_stop = .3, phase_corr_step; double ampl_corr_start = -.3, ampl_corr_stop = .3, ampl_corr_step; double best_suppression = 0, best_phase_corr = 0, best_ampl_corr = 0; for (size_t i = 0; i < num_search_iters; i++){ phase_corr_step = (phase_corr_stop - phase_corr_start)/(num_search_steps-1); ampl_corr_step = (ampl_corr_stop - ampl_corr_start)/(num_search_steps-1); for (double phase_corr = phase_corr_start; phase_corr <= phase_corr_stop + phase_corr_step/2; phase_corr += phase_corr_step){ for (double ampl_corr = ampl_corr_start; ampl_corr <= ampl_corr_stop + ampl_corr_step/2; ampl_corr += ampl_corr_step){ const std::complex correction(ampl_corr, phase_corr); usrp->set_tx_iq_balance(correction); //receive some samples capture_samples(usrp, rx_stream, buff, nsamps); const double tone_dbrms = compute_tone_dbrms(buff, bb_tone_freq/actual_rx_rate); const double imag_dbrms = compute_tone_dbrms(buff, bb_imag_freq/actual_rx_rate); const double suppression = tone_dbrms - imag_dbrms; if (suppression > best_suppression){ best_correction = correction; best_suppression = suppression; best_phase_corr = phase_corr; best_ampl_corr = ampl_corr; } }} //std::cout << "best_phase_corr " << best_phase_corr << std::endl; //std::cout << "best_ampl_corr " << best_ampl_corr << std::endl; //std::cout << "best_suppression " << best_suppression << std::endl; phase_corr_start = best_phase_corr - phase_corr_step; phase_corr_stop = best_phase_corr + phase_corr_step; ampl_corr_start = best_ampl_corr - ampl_corr_step; ampl_corr_stop = best_ampl_corr + ampl_corr_step; } if (best_suppression > 30){ //most likely valid, keep result result_t result; result.freq = tx_lo; result.real_corr = best_correction.real(); result.imag_corr = best_correction.imag(); result.best = best_suppression; result.delta = best_suppression - initial_suppression; results.push_back(result); if (vm.count("verbose")){ std::cout << boost::format("TX IQ: %f MHz: best suppression %f dB, corrected %f dB") % (tx_lo/1e6) % result.best % result.delta << std::endl; } else std::cout << "." << std::flush; } } std::cout << std::endl; //stop the transmitter threads.interrupt_all(); threads.join_all(); store_results(usrp, results, "TX", "tx", "iq"); return 0; } uhd-3.5.5/host/utils/uhd_find_devices.cpp000066400000000000000000000040571224274632000204170ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value()->default_value(""), "device address args") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD Find Devices %s") % desc << std::endl; return ~0; } //discover the usrps and print the results uhd::device_addrs_t device_addrs = uhd::device::find(vm["args"].as()); if (device_addrs.size() == 0){ std::cerr << "No UHD Devices Found" << std::endl; return ~0; } for (size_t i = 0; i < device_addrs.size(); i++){ std::cout << "--------------------------------------------------" << std::endl; std::cout << "-- UHD Device " << i << std::endl; std::cout << "--------------------------------------------------" << std::endl; std::cout << device_addrs[i].to_pp_string() << std::endl << std::endl; //uhd::device::make(device_addrs[i]); //test make } return 0; } uhd-3.5.5/host/utils/uhd_images_downloader.py.in000066400000000000000000000130501224274632000217240ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2012-2013 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import atexit import hashlib from optparse import OptionParser import os import os.path import shutil import string import sys import tempfile import urllib2 import zipfile def md5Checksum(filePath): with open(filePath, 'rb') as fh: m = hashlib.md5() while True: data = fh.read(8192) if not data: break m.update(data) return m.hexdigest() class temp_dir(): def __enter__(self): self.name = tempfile.mkdtemp() return self.name def __exit__(self, type, value, traceback): try: shutil.rmtree(self.name) except OSError,e: #Utility should have already detected this, but this is for safety print str(e) raise Exception("Could not install images! Make sure you have write permissions.") if __name__ == "__main__": print if os.environ.get("UHD_IMAGES_DIR") != None and os.environ.get("UHD_IMAGES_DIR") != "": default_images_dir = os.environ.get("UHD_IMAGES_DIR") print "UHD_IMAGES_DIR environment variable is set. Default install location: %s" % default_images_dir else: default_images_dir = "@CMAKE_INSTALL_PREFIX@/share/uhd/images" #Command line options parser = OptionParser() parser.add_option("--install-location", type="string", default=default_images_dir, help="Set custom install location for images") parser.add_option("--buffer-size", type="int", default=8192, help="Set download buffer size, [default=%default]",) (options, args) = parser.parse_args() #Configuring image download info images_src = "@UHD_IMAGES_DOWNLOAD_SRC@" images_zip_md5sum = "@UHD_IMAGES_MD5SUM@" filename = images_src.split("/")[-1] #Use this directory with relative paths current_directory = os.getcwd() with temp_dir() as dirname: os.chdir(dirname) if os.path.isabs(options.install_location): #Custom absolute path given images_dir = options.install_location else: #Custom relative path given, so construct absolute path images_dir = os.path.abspath(os.path.join(current_directory, options.install_location)) #Before doing anything, check for write permissions in parent directory parent_directory = os.path.dirname(images_dir) if os.access(parent_directory, os.W_OK): print "Downloading images to: %s" % images_dir else: print "You do not have write permissions at the install location!" sys.exit(1) opener = urllib2.build_opener() opener.add_headers = [('User-Agent', 'UHD Images Downloader')] u = opener.open(images_src) f = open(filename, "wb") meta = u.info() filesize = float(meta.getheaders("Content-Length")[0]) print "Downloading images from: %s" % images_src filesize_dl = 0.0 #Downloading file while True: buffer = u.read(options.buffer_size) if not buffer: break filesize_dl -= len(buffer) f.write(buffer) status = r"%2.2f MB/%2.2f MB (%3.2f" % (-filesize_dl/1e6, filesize/1e6, (-filesize_dl*100.)/filesize) + r"%)" status += chr(8)*(len(status)+1) print status, f.close() #Checking md5sum of zip file downloaded_zip_md5sum = md5Checksum(filename) if images_zip_md5sum != downloaded_zip_md5sum: print "\nMD5 checksum does not match!" print "Expected %s, got %s" % (images_zip_md5sum, downloaded_zip_md5sum) print "Images did not install. If problem persists, please contact support@ettus.com." os.remove(filename) os.chdir("/".join(images_dir.split("/")[:-1])) sys.exit(1) else: temp_path = "tempdir" #Extracting contents of zip file if os.path.exists(temp_path): shutil.rmtree(temp_path) os.mkdir(temp_path) images_zip = zipfile.ZipFile(filename) images_zip.extractall(temp_path) #Removing images currently in images_dir if os.path.exists(images_dir): try: shutil.rmtree(images_dir) except OSError,e: print str(e) print "Make sure you have write permissions in the images directory." sys.exit(1) #Copying downloaded images into images_dir shutil.copytree(os.path.join(temp_path, os.path.splitext(filename)[0], 'share', 'uhd', 'images'), images_dir) #Removing tempdir and zip file shutil.rmtree(temp_path) images_zip.close() os.remove(filename) os.chdir(images_dir) print "\n\nImages successfully installed!" uhd-3.5.5/host/utils/uhd_usrp_probe.cpp000066400000000000000000000240401224274632000201470ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include //for split #include #include #include #include #include #include #include #include #include namespace po = boost::program_options; using namespace uhd; static std::string indent(size_t level){ return (level)? (indent(level-1) + " ") : ""; } static std::string make_border(const std::string &text){ std::stringstream ss; ss << boost::format(" _____________________________________________________") << std::endl; ss << boost::format(" /") << std::endl; std::vector lines; boost::split(lines, text, boost::is_any_of("\n")); while (lines.back().empty()) lines.pop_back(); //strip trailing newlines if (lines.size()) lines[0] = " " + lines[0]; //indent the title line BOOST_FOREACH(const std::string &line, lines){ ss << boost::format("| %s") % line << std::endl; } //ss << boost::format(" \\_____________________________________________________") << std::endl; return ss.str(); } static std::string get_dsp_pp_string(const std::string &type, property_tree::sptr tree, const fs_path &path){ std::stringstream ss; ss << boost::format("%s DSP: %s") % type % path.leaf() << std::endl; //ss << std::endl; meta_range_t freq_range = tree->access(path / "freq/range").get(); ss << boost::format("Freq range: %.3f to %.3f Mhz") % (freq_range.start()/1e6) % (freq_range.stop()/1e6) << std::endl;; return ss.str(); } static std::string prop_names_to_pp_string(const std::vector &prop_names){ std::stringstream ss; size_t count = 0; BOOST_FOREACH(const std::string &prop_name, prop_names){ ss << ((count++)? ", " : "") << prop_name; } return ss.str(); } static std::string get_frontend_pp_string(const std::string &type, property_tree::sptr tree, const fs_path &path){ std::stringstream ss; ss << boost::format("%s Frontend: %s") % type % path.leaf() << std::endl; //ss << std::endl; ss << boost::format("Name: %s") % (tree->access(path / "name").get()) << std::endl; ss << boost::format("Antennas: %s") % prop_names_to_pp_string(tree->access >(path / "antenna/options").get()) << std::endl; ss << boost::format("Sensors: %s") % prop_names_to_pp_string(tree->list(path / "sensors")) << std::endl; meta_range_t freq_range = tree->access(path / "freq/range").get(); ss << boost::format("Freq range: %.3f to %.3f Mhz") % (freq_range.start()/1e6) % (freq_range.stop()/1e6) << std::endl; std::vector gain_names = tree->list(path / "gains"); if (gain_names.size() == 0) ss << "Gain Elements: None" << std::endl; BOOST_FOREACH(const std::string &name, gain_names){ meta_range_t gain_range = tree->access(path / "gains" / name / "range").get(); ss << boost::format("Gain range %s: %.1f to %.1f step %.1f dB") % name % gain_range.start() % gain_range.stop() % gain_range.step() << std::endl; } ss << boost::format("Connection Type: %s") % (tree->access(path / "connection").get()) << std::endl; ss << boost::format("Uses LO offset: %s") % ((tree->access(path / "use_lo_offset").get())? "Yes" : "No") << std::endl; return ss.str(); } static std::string get_codec_pp_string(const std::string &type, property_tree::sptr tree, const fs_path &path){ std::stringstream ss; ss << boost::format("%s Codec: %s") % type % path.leaf() << std::endl; //ss << std::endl; ss << boost::format("Name: %s") % (tree->access(path / "name").get()) << std::endl; std::vector gain_names = tree->list(path / "gains"); if (gain_names.size() == 0) ss << "Gain Elements: None" << std::endl; BOOST_FOREACH(const std::string &name, gain_names){ meta_range_t gain_range = tree->access(path / "gains" / name / "range").get(); ss << boost::format("Gain range %s: %.1f to %.1f step %.1f dB") % name % gain_range.start() % gain_range.stop() % gain_range.step() << std::endl; } return ss.str(); } static std::string get_dboard_pp_string(const std::string &type, property_tree::sptr tree, const fs_path &path){ std::stringstream ss; ss << boost::format("%s Dboard: %s") % type % path.leaf() << std::endl; //ss << std::endl; const std::string prefix = (type == "RX")? "rx" : "tx"; usrp::dboard_eeprom_t db_eeprom = tree->access(path / (prefix + "_eeprom")).get(); if (db_eeprom.id != usrp::dboard_id_t::none()) ss << boost::format("ID: %s") % db_eeprom.id.to_pp_string() << std::endl; if (not db_eeprom.serial.empty()) ss << boost::format("Serial: %s") % db_eeprom.serial << std::endl; if (type == "TX"){ usrp::dboard_eeprom_t gdb_eeprom = tree->access(path / "gdb_eeprom").get(); if (gdb_eeprom.id != usrp::dboard_id_t::none()) ss << boost::format("ID: %s") % gdb_eeprom.id.to_pp_string() << std::endl; if (not gdb_eeprom.serial.empty()) ss << boost::format("Serial: %s") % gdb_eeprom.serial << std::endl; } BOOST_FOREACH(const std::string &name, tree->list(path / (prefix + "_frontends"))){ ss << make_border(get_frontend_pp_string(type, tree, path / (prefix + "_frontends") / name)); } ss << make_border(get_codec_pp_string(type, tree, path.branch_path().branch_path() / (prefix + "_codecs") / path.leaf())); return ss.str(); } static std::string get_mboard_pp_string(property_tree::sptr tree, const fs_path &path){ std::stringstream ss; ss << boost::format("Mboard: %s") % (tree->access(path / "name").get()) << std::endl; //ss << std::endl; usrp::mboard_eeprom_t mb_eeprom = tree->access(path / "eeprom").get(); BOOST_FOREACH(const std::string &key, mb_eeprom.keys()){ if (not mb_eeprom[key].empty()) ss << boost::format("%s: %s") % key % mb_eeprom[key] << std::endl; } if (tree->exists(path / "fw_version")){ ss << "FW Version: " << tree->access(path / "fw_version").get() << std::endl; } if (tree->exists(path / "fpga_version")){ ss << "FPGA Version: " << tree->access(path / "fpga_version").get() << std::endl; } ss << std::endl; ss << "Time sources: " << prop_names_to_pp_string(tree->access >(path / "time_source" / "options").get()) << std::endl; ss << "Clock sources: " << prop_names_to_pp_string(tree->access >(path / "clock_source" / "options").get()) << std::endl; ss << "Sensors: " << prop_names_to_pp_string(tree->list(path / "sensors")) << std::endl; BOOST_FOREACH(const std::string &name, tree->list(path / "rx_dsps")){ ss << make_border(get_dsp_pp_string("RX", tree, path / "rx_dsps" / name)); } BOOST_FOREACH(const std::string &name, tree->list(path / "dboards")){ ss << make_border(get_dboard_pp_string("RX", tree, path / "dboards" / name)); } BOOST_FOREACH(const std::string &name, tree->list(path / "tx_dsps")){ ss << make_border(get_dsp_pp_string("TX", tree, path / "tx_dsps" / name)); } BOOST_FOREACH(const std::string &name, tree->list(path / "dboards")){ ss << make_border(get_dboard_pp_string("TX", tree, path / "dboards" / name)); } return ss.str(); } static std::string get_device_pp_string(property_tree::sptr tree){ std::stringstream ss; ss << boost::format("Device: %s") % (tree->access("/name").get()) << std::endl; //ss << std::endl; BOOST_FOREACH(const std::string &name, tree->list("/mboards")){ ss << make_border(get_mboard_pp_string(tree, "/mboards/" + name)); } return ss.str(); } void print_tree(const uhd::fs_path &path, uhd::property_tree::sptr tree){ std::cout << path << std::endl; BOOST_FOREACH(const std::string &name, tree->list(path)){ print_tree(path / name, tree); } } int UHD_SAFE_MAIN(int argc, char *argv[]){ po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("version", "print the version string and exit") ("args", po::value()->default_value(""), "device address args") ("tree", "specify to print a complete property tree") ("string", po::value(), "query a string value from the properties tree") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("UHD USRP Probe %s") % desc << std::endl; return ~0; } if (vm.count("version")){ std::cout << uhd::get_version_string() << std::endl; return 0; } device::sptr dev = device::make(vm["args"].as()); property_tree::sptr tree = dev->get_tree(); if (vm.count("string")){ std::cout << tree->access(vm["string"].as()).get() << std::endl; return 0; } if (vm.count("tree") != 0) print_tree("/", tree); else std::cout << make_border(get_device_pp_string(tree)) << std::endl; return 0; } uhd-3.5.5/host/utils/usrp2_card_burner.py000077500000000000000000000240371224274632000204270ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import platform import tempfile import subprocess try: import urllib.request except ImportError: import urllib urllib.request = urllib import optparse import math import os import re ######################################################################## # constants ######################################################################## SECTOR_SIZE = 512 # bytes MAX_FILE_SIZE = 1 * (2**20) # maximum number of bytes we'll burn to a slot FPGA_OFFSET = 0 # offset in flash to fpga image FIRMWARE_OFFSET = 1 * (2**20) # offset in flash to firmware image MAX_SD_CARD_SIZE = 2048e6 # bytes (any bigger is sdhc) ######################################################################## # helper functions ######################################################################## def command(*args): p = subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, ) ret = p.wait() verbose = p.stdout.read().decode('utf-8') if ret != 0: raise Exception(verbose) return verbose def get_dd_path(): if platform.system() == 'Windows': dd_path = os.path.join(os.path.dirname(__file__), 'dd.exe') if os.path.exists(dd_path): return dd_path dd_path = os.path.join(tempfile.gettempdir(), 'dd.exe') if not os.path.exists(dd_path): print('Downloading dd.exe to %s'%dd_path) dd_bin = urllib.request.urlopen('http://files.ettus.com/dd.exe').read() open(dd_path, 'wb').write(dd_bin) return dd_path return 'dd' def int_ceil_div(num, den): return int(math.ceil(float(num)/float(den))) def get_tmp_file(): tmp = tempfile.mkstemp() os.close(tmp[0]) return tmp[1] ######################################################################## # list possible devices ######################################################################## def get_raw_device_hints(): #################################################################### # Platform Windows: parse the output of dd.exe --list #################################################################### if platform.system() == 'Windows': def extract_info_value(info, key): return info.split(key)[-1].split()[0] def get_info_list(output): in_info = False for line in output.splitlines(): if line.startswith('\\\\'): in_info = True; info = '' elif in_info and not line.strip(): in_info = False; yield info if in_info: info += '\n'+line.strip() def is_info_valid(info): try: if 'link to' not in info: return False #handles two spellings of remov(e)able: if 'remov' not in info.lower(): return False if 'size is' in info and int(extract_info_value(info, 'size is')) > MAX_SD_CARD_SIZE: return False except: return False return True def extract_info_name(info): for key in ('Mounted on', 'link to'): if key in info: return extract_info_value(info, key) return info.splitlines()[0].strip() return sorted(set(map(extract_info_name, list(filter(is_info_valid, get_info_list(command(get_dd_path(), '--list'))))))) #################################################################### # Platform Linux: parse procfs /proc/partitions #################################################################### if platform.system() == 'Linux': devs = list() for line in command('cat', '/proc/partitions').splitlines(): try: major, minor, blocks, name = line.split() if not name[-1].isdigit() and int(minor) == 0: continue if int(blocks)*1024 > MAX_SD_CARD_SIZE: continue except: continue devs.append(os.path.join('/dev', name)) return sorted(set(devs)) #################################################################### # Platform Mac OS X: parse diskutil list and info commands #################################################################### if platform.system() == 'Darwin': devs = [d.split()[0] for d in [l for l in command('diskutil', 'list').splitlines() if l.startswith('/dev')]] def output_to_info(output): return dict([list(map(lambda x: x.strip(), pair.lower().split(':'))) for pair in [l for l in output.splitlines() if ':' in l]]) def is_dev_valid(dev): info = output_to_info(command('diskutil', 'info', dev)) try: if 'internal' in info and info['internal'] == 'yes': return False if 'ejectable' in info and info['ejectable'] == 'no': return False if 'total size' in info: size_match = re.match('^.*\((\d+)\s*bytes\).*$', info['total size']) if size_match and int(size_match.groups()[0]) > MAX_SD_CARD_SIZE: return False except: return False return True return sorted(set(filter(is_dev_valid, devs))) #################################################################### # Platform Others: #################################################################### return () ######################################################################## # write and verify with dd ######################################################################## def verify_image(image_file, device_file, offset): #create a temporary file to store the readback image tmp_file = get_tmp_file() #read the image data img_data = open(image_file, 'rb').read() count = int_ceil_div(len(img_data), SECTOR_SIZE) #execute a dd subprocess verbose = command( get_dd_path(), "of=%s"%tmp_file, "if=%s"%device_file, "skip=%d"%(offset/SECTOR_SIZE), "bs=%d"%SECTOR_SIZE, "count=%d"%count, ) #verfy the data tmp_data = open(tmp_file, 'rb').read(len(img_data)) if img_data != tmp_data: return 'Verification Failed:\n%s'%verbose return 'Verification Passed:\n%s'%verbose def write_image(image_file, device_file, offset): #create a temporary file to store the padded image tmp_file = get_tmp_file() #write the padded image data img_data = open(image_file, 'rb').read() count = int_ceil_div(len(img_data), SECTOR_SIZE) pad_len = SECTOR_SIZE*count - len(img_data) padding = bytes(b'\x00')*pad_len #zero-padding open(tmp_file, 'wb').write(img_data + padding) #execute a dd subprocess verbose = command( get_dd_path(), "if=%s"%tmp_file, "of=%s"%device_file, "seek=%d"%(offset/SECTOR_SIZE), "bs=%d"%SECTOR_SIZE, "count=%d"%count, ) try: #exec the sync command (only works on linux) if platform.system() == 'Linux': command('sync') except: pass return verbose def write_and_verify(image_file, device_file, offset): if os.path.getsize(image_file) > MAX_FILE_SIZE: raise Exception('Image file larger than %d bytes!'%MAX_FILE_SIZE) return '%s\n%s'%( write_image( image_file=image_file, device_file=device_file, offset=offset, ), verify_image( image_file=image_file, device_file=device_file, offset=offset, ), ) def burn_sd_card(dev, fw, fpga): verbose = '' if fw: verbose += 'Burn firmware image:\n%s\n'%write_and_verify( image_file=fw, device_file=dev, offset=FIRMWARE_OFFSET ) if fpga: verbose += 'Burn fpga image:\n%s\n'%write_and_verify( image_file=fpga, device_file=dev, offset=FPGA_OFFSET ) return verbose ######################################################################## # command line options ######################################################################## def get_options(): parser = optparse.OptionParser() parser.add_option("--dev", type="string", help="raw device path", default='') parser.add_option("--fw", type="string", help="firmware image path (optional)", default='') parser.add_option("--fpga", type="string", help="fpga image path (optional)", default='') parser.add_option("--list", action="store_true", help="list possible raw devices", default=False) parser.add_option("--force", action="store_true", help="override safety check", default=False) (options, args) = parser.parse_args() return options ######################################################################## # main ######################################################################## if __name__=='__main__': options = get_options() device_hints = get_raw_device_hints() show_listing = options.list if not show_listing and not options.force and options.dev and options.dev not in device_hints: print('The device "%s" was not in the list of possible raw devices.'%options.dev) print('The card burner application will now exit without burning your card.') print('To override this safety check, specify the --force option.\n') show_listing = True if show_listing: print('Possible raw devices:') print(' ' + '\n '.join(device_hints)) exit() if not options.dev: raise Exception('no raw device path specified') print(burn_sd_card(dev=options.dev, fw=options.fw, fpga=options.fpga)) uhd-3.5.5/host/utils/usrp2_card_burner_gui.py000077500000000000000000000142231224274632000212670ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import usrp2_card_burner #import implementation try: import tkinter, tkinter.filedialog, tkinter.font, tkinter.messagebox except ImportError: import tkFileDialog, tkFont, tkMessageBox import Tkinter as tkinter tkinter.filedialog = tkFileDialog tkinter.font = tkFont tkinter.messagebox = tkMessageBox import os class BinFileEntry(tkinter.Frame): """ Simple file entry widget for getting the file path of bin files. Combines a label, entry, and button with file dialog callback. """ def __init__(self, root, what, def_path=''): self._what = what tkinter.Frame.__init__(self, root) tkinter.Label(self, text=what+":").pack(side=tkinter.LEFT) self._entry = tkinter.Entry(self, width=50) self._entry.insert(tkinter.END, def_path) self._entry.pack(side=tkinter.LEFT) tkinter.Button(self, text="...", command=self._button_cb).pack(side=tkinter.LEFT) def _button_cb(self): filename = tkinter.filedialog.askopenfilename( parent=self, filetypes=[('bin files', '*.bin'), ('all files', '*.*')], title="Select bin file for %s"%self._what, initialdir=os.path.dirname(self.get_filename()), ) # open file on your own if filename: self._entry.delete(0, tkinter.END) self._entry.insert(0, filename) def get_filename(self): return self._entry.get() class DeviceEntryWidget(tkinter.Frame): """ Simple entry widget for getting the raw device name. Combines a label, entry, and helpful text box with hints. """ def __init__(self, root, text=''): tkinter.Frame.__init__(self, root) tkinter.Button(self, text="Rescan for Devices", command=self._reload_cb).pack() self._hints = tkinter.Listbox(self) self._hints.bind("<>", self._listbox_cb) self._reload_cb() self._hints.pack(expand=tkinter.YES, fill=tkinter.X) frame = tkinter.Frame(self) frame.pack() tkinter.Label(frame, text="Raw Device:").pack(side=tkinter.LEFT) self._entry = tkinter.Entry(frame, width=50) self._entry.insert(tkinter.END, text) self._entry.pack(side=tkinter.LEFT) def _reload_cb(self): self._hints.delete(0, tkinter.END) for hint in usrp2_card_burner.get_raw_device_hints(): self._hints.insert(tkinter.END, hint) def _listbox_cb(self, event): try: sel = self._hints.get(self._hints.curselection()[0]) self._entry.delete(0, tkinter.END) self._entry.insert(0, sel) except Exception as e: print(e) def get_devname(self): return self._entry.get() class SectionLabel(tkinter.Label): """ Make a text label with bold font. """ def __init__(self, root, text): tkinter.Label.__init__(self, root, text=text) #set the font bold f = tkinter.font.Font(font=self['font']) f['weight'] = 'bold' self['font'] = f.name class USRP2CardBurnerApp(tkinter.Frame): """ The top level gui application for the usrp2 sd card burner. Creates entry widgets and button with callback to write images. """ def __init__(self, root, dev, fw, fpga): tkinter.Frame.__init__(self, root) #pack the file entry widgets SectionLabel(self, text="Select Images").pack(pady=5) self._fw_img_entry = BinFileEntry(self, "Firmware Image", def_path=fw) self._fw_img_entry.pack() self._fpga_img_entry = BinFileEntry(self, "FPGA Image", def_path=fpga) self._fpga_img_entry.pack() #pack the destination entry widget SectionLabel(self, text="Select Device").pack(pady=5) self._raw_dev_entry = DeviceEntryWidget(self, text=dev) self._raw_dev_entry.pack() #the do it button SectionLabel(self, text="").pack(pady=5) tkinter.Label(self, text="Warning! This tool can overwrite your hard drive. Use with caution.").pack() tkinter.Button(self, text="Burn SD Card", command=self._burn).pack() def _burn(self): #grab strings from the gui fw = self._fw_img_entry.get_filename() fpga = self._fpga_img_entry.get_filename() dev = self._raw_dev_entry.get_devname() #check input if not dev: tkinter.messagebox.showerror('Error:', 'No device specified!') return if not fw and not fpga: tkinter.messagebox.showerror('Error:', 'No images specified!') return if fw and not os.path.exists(fw): tkinter.messagebox.showerror('Error:', 'Firmware image not found!') return if fpga and not os.path.exists(fpga): tkinter.messagebox.showerror('Error:', 'FPGA image not found!') return #burn the sd card try: verbose = usrp2_card_burner.burn_sd_card(dev=dev, fw=fw, fpga=fpga) tkinter.messagebox.showinfo('Verbose:', verbose) except Exception as e: tkinter.messagebox.showerror('Verbose:', 'Error: %s'%str(e)) ######################################################################## # main ######################################################################## if __name__=='__main__': options = usrp2_card_burner.get_options() root = tkinter.Tk() root.title('USRP2 SD Card Burner') USRP2CardBurnerApp(root, dev=options.dev, fw=options.fw, fpga=options.fpga).pack() root.mainloop() exit() uhd-3.5.5/host/utils/usrp2_recovery.py000077500000000000000000000046411224274632000177760ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # """ The usrp2 recovery app: When the usrp2 has an unknown or bad ip address in its eeprom, it may not be possible to communicate with the usrp2 over ip/udp. This app will send a raw ethernet packet to bypass the ip layer. The packet will contain a known ip address to burn into eeprom. Because the recovery packet is sent with a broadcast mac address, only one usrp2 should be present on the interface upon execution. This app requires super-user privileges and only works on linux. """ import socket import struct import optparse BCAST_MAC_ADDR = 'ff:ff:ff:ff:ff:ff' RECOVERY_ETHERTYPE = 0xbeee IP_RECOVERY_CODE = 'addr' def mac_addr_repr_to_binary_string(mac_addr): return ''.join([chr(int(x, 16)) for x in mac_addr.split(':')]) if __name__ == '__main__': parser = optparse.OptionParser(usage='usage: %prog [options]\n'+__doc__) parser.add_option('--ifc', type='string', help='ethernet interface name [default=%default]', default='eth0') parser.add_option('--new-ip', type='string', help='ip address to set [default=%default]', default='192.168.10.2') (options, args) = parser.parse_args() #create the raw socket print("Opening raw socket on interface:", options.ifc) soc = socket.socket(socket.PF_PACKET, socket.SOCK_RAW) soc.bind((options.ifc, RECOVERY_ETHERTYPE)) #create the recovery packet print("Loading packet with ip address:", options.new_ip) packet = struct.pack( '!6s6sH4s4s', mac_addr_repr_to_binary_string(BCAST_MAC_ADDR), mac_addr_repr_to_binary_string(BCAST_MAC_ADDR), RECOVERY_ETHERTYPE, IP_RECOVERY_CODE, socket.inet_aton(options.new_ip), ) print("Sending packet (%d bytes)"%len(packet)) soc.send(packet) print("Done") uhd-3.5.5/host/utils/usrp_burn_db_eeprom.cpp000066400000000000000000000101721224274632000211630ustar00rootroot00000000000000// // Copyright 2010-2011 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include using namespace uhd; using namespace uhd::usrp; namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ //command line variables std::string args, slot, unit; po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "device address args [default = \"\"]") ("slot", po::value(&slot)->default_value(""), "dboard slot name [default is blank for automatic]") ("unit", po::value(&unit)->default_value(""), "which unit [RX, TX, or GDB]") ("id", po::value(), "dboard id to burn, omit for readback") ("ser", po::value(), "serial to burn, omit for readback") ("rev", po::value(), "revision to burn, omit for readback") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help")){ std::cout << boost::format("USRP Burn Daughterboard EEPROM %s") % desc << std::endl; std::cout << boost::format( "Omit the ID argument to perform readback,\n" "Or specify a new ID to burn into the EEPROM.\n" ) << std::endl; return ~0; } //make the device and extract the dboard w/ property device::sptr dev = device::make(args); uhd::property_tree::sptr tree = dev->get_tree(); const uhd::fs_path db_root = "/mboards/0/dboards"; std::vector dboard_names = tree->list(db_root); if (dboard_names.size() == 1 and slot.empty()) slot = dboard_names.front(); uhd::assert_has(dboard_names, slot, "dboard slot name"); std::cout << boost::format("Reading %s EEPROM on %s dboard...") % unit % slot << std::endl; boost::to_lower(unit); const uhd::fs_path db_path = db_root / slot / (unit + "_eeprom"); dboard_eeprom_t db_eeprom = tree->access(db_path).get(); //------------- handle the dboard ID -----------------------------// if (vm.count("id")){ db_eeprom.id = dboard_id_t::from_string(vm["id"].as()); tree->access(db_path).set(db_eeprom); } std::cout << boost::format(" Current ID: %s") % db_eeprom.id.to_pp_string() << std::endl; //------------- handle the dboard serial--------------------------// if (vm.count("ser")){ db_eeprom.serial = vm["ser"].as(); tree->access(db_path).set(db_eeprom); } std::cout << boost::format(" Current serial: \"%s\"") % db_eeprom.serial << std::endl; //------------- handle the dboard revision------------------------// if (vm.count("rev")){ db_eeprom.revision = vm["rev"].as(); tree->access(db_path).set(db_eeprom); } std::cout << boost::format(" Current revision: \"%s\"") % db_eeprom.revision << std::endl; std::cout << " Done" << std::endl << std::endl; return 0; } uhd-3.5.5/host/utils/usrp_burn_mb_eeprom.cpp000066400000000000000000000061041224274632000211740ustar00rootroot00000000000000// // Copyright 2010 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include namespace po = boost::program_options; int UHD_SAFE_MAIN(int argc, char *argv[]){ std::string args, key, val; po::options_description desc("Allowed options"); desc.add_options() ("help", "help message") ("args", po::value(&args)->default_value(""), "device address args [default = \"\"]") ("key", po::value(&key), "the indentifier for a value in EEPROM") ("val", po::value(&val), "the new value to set, omit for readback") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //print the help message if (vm.count("help") or not vm.count("key")){ std::cout << boost::format("USRP Burn Motherboard EEPROM %s") % desc << std::endl; std::cout << boost::format( "Omit the value argument to perform a readback,\n" "Or specify a new value to burn into the EEPROM.\n" ) << std::endl; return ~0; } std::cout << "Creating USRP device from address: " + args << std::endl; uhd::device::sptr dev = uhd::device::make(args); uhd::property_tree::sptr tree = dev->get_tree(); std::cout << std::endl; if (true /*always readback*/){ std::cout << "Fetching current settings from EEPROM..." << std::endl; uhd::usrp::mboard_eeprom_t mb_eeprom = tree->access("/mboards/0/eeprom").get(); if (not mb_eeprom.has_key(key)){ std::cerr << boost::format("Cannot find value for EEPROM[%s]") % key << std::endl; return ~0; } std::cout << boost::format(" EEPROM [\"%s\"] is \"%s\"") % key % mb_eeprom[key] << std::endl; std::cout << std::endl; } if (vm.count("val")){ uhd::usrp::mboard_eeprom_t mb_eeprom; mb_eeprom[key] = val; std::cout << boost::format("Setting EEPROM [\"%s\"] to \"%s\"...") % key % val << std::endl; tree->access("/mboards/0/eeprom").set(mb_eeprom); std::cout << "Power-cycle the USRP device for the changes to take effect." << std::endl; std::cout << std::endl; } std::cout << "Done" << std::endl; return 0; } uhd-3.5.5/host/utils/usrp_cal_utils.hpp000066400000000000000000000224561224274632000201750ustar00rootroot00000000000000// // Copyright 2011-2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include namespace fs = boost::filesystem; struct result_t{double freq, real_corr, imag_corr, best, delta;}; typedef std::complex samp_type; /*********************************************************************** * Constants **********************************************************************/ static const double tau = 6.28318531; static const size_t wave_table_len = 8192; static const size_t num_search_steps = 5; static const size_t num_search_iters = 7; static const double default_freq_step = 7.3e6; static const size_t default_num_samps = 10000; /*********************************************************************** * Set standard defaults for devices **********************************************************************/ static inline void set_optimum_defaults(uhd::usrp::multi_usrp::sptr usrp){ uhd::property_tree::sptr tree = usrp->get_device()->get_tree(); const uhd::fs_path mb_path = "/mboards/0"; const std::string mb_name = tree->access(mb_path / "name").get(); if (mb_name.find("USRP2") != std::string::npos or mb_name.find("N200") != std::string::npos or mb_name.find("N210") != std::string::npos){ usrp->set_tx_rate(12.5e6); usrp->set_rx_rate(12.5e6); } else if (mb_name.find("B100") != std::string::npos){ usrp->set_tx_rate(4e6); usrp->set_rx_rate(4e6); } else if (mb_name.find("E100") != std::string::npos or mb_name.find("E110") != std::string::npos){ usrp->set_tx_rate(4e6); usrp->set_rx_rate(8e6); } else{ throw std::runtime_error("self-calibration is not supported for this hardware"); } const uhd::fs_path tx_fe_path = "/mboards/0/dboards/A/tx_frontends/0"; const std::string tx_name = tree->access(tx_fe_path / "name").get(); if (tx_name.find("WBX") != std::string::npos){ usrp->set_tx_gain(0); } else if (tx_name.find("SBX") != std::string::npos){ usrp->set_tx_gain(0); } else if (tx_name.find("RFX") != std::string::npos){ usrp->set_tx_gain(0); } else{ throw std::runtime_error("self-calibration is not supported for this hardware"); } const uhd::fs_path rx_fe_path = "/mboards/0/dboards/A/rx_frontends/0"; const std::string rx_name = tree->access(rx_fe_path / "name").get(); if (rx_name.find("WBX") != std::string::npos){ usrp->set_rx_gain(25); } else if (rx_name.find("SBX") != std::string::npos){ usrp->set_rx_gain(25); } else if (rx_name.find("RFX") != std::string::npos){ usrp->set_rx_gain(25); } else{ throw std::runtime_error("self-calibration is not supported for this hardware"); } } /*********************************************************************** * Check for empty serial **********************************************************************/ void check_for_empty_serial( uhd::usrp::multi_usrp::sptr usrp, std::string XX, std::string xx, std::string uhd_args ){ //extract eeprom uhd::property_tree::sptr tree = usrp->get_device()->get_tree(); const uhd::fs_path db_path = "/mboards/0/dboards/A/" + xx + "_eeprom"; const uhd::usrp::dboard_eeprom_t db_eeprom = tree->access(db_path).get(); std::string args_str = ""; if(uhd_args != "") args_str = str(boost::format(" --args=%s") % uhd_args); std::string error_string = str(boost::format("This %s dboard has no serial!\n\nPlease see the Calibration documentation for details on how to fix this.") % XX); if (db_eeprom.serial.empty()) throw std::runtime_error(error_string); } /*********************************************************************** * Sinusoid wave table **********************************************************************/ class wave_table{ public: wave_table(const double ampl){ _table.resize(wave_table_len); for (size_t i = 0; i < wave_table_len; i++){ _table[i] = samp_type(std::polar(ampl, (tau*i)/wave_table_len)); } } inline samp_type operator()(const size_t index) const{ return _table[index % wave_table_len]; } private: std::vector _table; }; /*********************************************************************** * Compute power of a tone **********************************************************************/ static inline double compute_tone_dbrms( const std::vector &samples, const double freq //freq is fractional ){ //shift the samples so the tone at freq is down at DC //and average the samples to measure the DC component samp_type average = 0; for (size_t i = 0; i < samples.size(); i++){ average += samp_type(std::polar(1.0, -freq*tau*i)) * samples[i]; } return 20*std::log10(std::abs(average/float(samples.size()))); } /*********************************************************************** * Write a dat file **********************************************************************/ static inline void write_samples_to_file( const std::vector &samples, const std::string &file ){ std::ofstream outfile(file.c_str(), std::ofstream::binary); outfile.write((const char*)&samples.front(), samples.size()*sizeof(samp_type)); outfile.close(); } /*********************************************************************** * Store data to file **********************************************************************/ static void store_results( uhd::usrp::multi_usrp::sptr usrp, const std::vector &results, const std::string &XX, const std::string &xx, const std::string &what ){ //extract eeprom serial uhd::property_tree::sptr tree = usrp->get_device()->get_tree(); const uhd::fs_path db_path = "/mboards/0/dboards/A/" + xx + "_eeprom"; const uhd::usrp::dboard_eeprom_t db_eeprom = tree->access(db_path).get(); //make the calibration file path fs::path cal_data_path = fs::path(uhd::get_app_path()) / ".uhd"; fs::create_directory(cal_data_path); cal_data_path = cal_data_path / "cal"; fs::create_directory(cal_data_path); cal_data_path = cal_data_path / str(boost::format("%s_%s_cal_v0.2_%s.csv") % xx % what % db_eeprom.serial); if (fs::exists(cal_data_path)){ fs::rename(cal_data_path, cal_data_path.string() + str(boost::format(".%d") % time(NULL))); } //fill the calibration file std::ofstream cal_data(cal_data_path.string().c_str()); cal_data << boost::format("name, %s Frontend Calibration\n") % XX; cal_data << boost::format("serial, %s\n") % db_eeprom.serial; cal_data << boost::format("timestamp, %d\n") % time(NULL); cal_data << boost::format("version, 0, 1\n"); cal_data << boost::format("DATA STARTS HERE\n"); cal_data << "lo_frequency, correction_real, correction_imag, measured, delta\n"; for (size_t i = 0; i < results.size(); i++){ cal_data << results[i].freq << ", " << results[i].real_corr << ", " << results[i].imag_corr << ", " << results[i].best << ", " << results[i].delta << "\n" ; } std::cout << "wrote cal data to " << cal_data_path << std::endl; } /*********************************************************************** * Data capture routine **********************************************************************/ static void capture_samples( uhd::usrp::multi_usrp::sptr usrp, uhd::rx_streamer::sptr rx_stream, std::vector &buff, const size_t nsamps_requested ){ buff.resize(nsamps_requested); uhd::rx_metadata_t md; uhd::stream_cmd_t stream_cmd(uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE); stream_cmd.num_samps = buff.size(); stream_cmd.stream_now = true; usrp->issue_stream_cmd(stream_cmd); const size_t num_rx_samps = rx_stream->recv(&buff.front(), buff.size(), md); //validate the received data if (md.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE){ throw std::runtime_error(str(boost::format( "Unexpected error code 0x%x" ) % md.error_code)); } //we can live if all the data didnt come in if (num_rx_samps > buff.size()/2){ buff.resize(num_rx_samps); return; } if (num_rx_samps != buff.size()){ throw std::runtime_error("did not get all the samples requested"); } } uhd-3.5.5/host/utils/usrp_n2xx_net_burner.py000077500000000000000000000542441224274632000212040ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # TODO: make it autodetect UHD devices import optparse import math import os import re import struct import socket import sys import time import platform import subprocess ######################################################################## # constants ######################################################################## UDP_FW_UPDATE_PORT = 49154 UDP_MAX_XFER_BYTES = 1024 UDP_TIMEOUT = 3 UDP_POLL_INTERVAL = 0.10 #in seconds USRP2_FW_PROTO_VERSION = 7 #should be unused after r6 #from bootloader_utils.h FPGA_IMAGE_SIZE_BYTES = 1572864 FW_IMAGE_SIZE_BYTES = 31744 SAFE_FPGA_IMAGE_LOCATION_ADDR = 0x00000000 SAFE_FW_IMAGE_LOCATION_ADDR = 0x003F0000 PROD_FPGA_IMAGE_LOCATION_ADDR = 0x00180000 PROD_FW_IMAGE_LOCATION_ADDR = 0x00300000 FLASH_DATA_PACKET_SIZE = 256 #see fw_common.h FLASH_ARGS_FMT = '!LLLLL256s' FLASH_INFO_FMT = '!LLLLL256x' FLASH_IP_FMT = '!LLLL260x' FLASH_HW_REV_FMT = '!LLLL260x' n2xx_revs = { 0x0a00: ["n200_r3", "n200_r2"], 0x0a10: ["n200_r4"], 0x0a01: ["n210_r3", "n210_r2"], 0x0a11: ["n210_r4"] } class update_id_t: USRP2_FW_UPDATE_ID_WAT = ord(' ') USRP2_FW_UPDATE_ID_OHAI_LOL = ord('a') USRP2_FW_UPDATE_ID_OHAI_OMG = ord('A') USRP2_FW_UPDATE_ID_WATS_TEH_FLASH_INFO_LOL = ord('f') USRP2_FW_UPDATE_ID_HERES_TEH_FLASH_INFO_OMG = ord('F') USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL = ord('e') USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG = ord('E') USRP2_FW_UPDATE_ID_R_U_DONE_ERASING_LOL = ord('d') USRP2_FW_UPDATE_ID_IM_DONE_ERASING_OMG = ord('D') USRP2_FW_UPDATE_ID_NOPE_NOT_DONE_ERASING_OMG = ord('B') USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL = ord('w') USRP2_FW_UPDATE_ID_WROTE_TEH_FLASHES_OMG = ord('W') USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL = ord('r') USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG = ord('R') USRP2_FW_UPDATE_ID_RESET_MAH_COMPUTORZ_LOL = ord('s') USRP2_FW_UPDATE_ID_RESETTIN_TEH_COMPUTORZ_OMG = ord('S') USRP2_FW_UPDATE_ID_I_CAN_HAS_HW_REV_LOL = ord('v') USRP2_FW_UPDATE_ID_HERES_TEH_HW_REV_OMG = ord('V') USRP2_FW_UPDATE_ID_KTHXBAI = ord('~') _seq = -1 def seq(): global _seq _seq = _seq+1 return _seq ######################################################################## # helper functions ######################################################################## def unpack_flash_args_fmt(s): return struct.unpack(FLASH_ARGS_FMT, s) #(proto_ver, pktid, seq, flash_addr, length, data) def unpack_flash_info_fmt(s): return struct.unpack(FLASH_INFO_FMT, s) #(proto_ver, pktid, seq, sector_size_bytes, memory_size_bytes) def unpack_flash_ip_fmt(s): return struct.unpack(FLASH_IP_FMT, s) #(proto_ver, pktid, seq, ip_addr) def unpack_flash_hw_rev_fmt(s): return struct.unpack(FLASH_HW_REV_FMT, s) #proto_ver, pktid, seq, hw_rev def pack_flash_args_fmt(proto_ver, pktid, seq, flash_addr, length, data=bytes()): return struct.pack(FLASH_ARGS_FMT, proto_ver, pktid, seq, flash_addr, length, data) def pack_flash_info_fmt(proto_ver, pktid, seq, sector_size_bytes, memory_size_bytes): return struct.pack(FLASH_INFO_FMT, proto_ver, pktid, seq, sector_size_bytes, memory_size_bytes) def pack_flash_hw_rev_fmt(proto_ver, pktid, seq, hw_rev): return struct.pack(FLASH_HW_REV_FMT, proto_ver, pktid, seq, hw_rev) def is_valid_fpga_image(fpga_image): for i in range(0,63): if fpga_image[i:i+1] == bytes(b'\xFF'): continue if fpga_image[i:i+2] == bytes(b'\xAA\x99'): return True return False def is_valid_fw_image(fw_image): return fw_image[:4] == bytes(b'\x0B\x0B\x0B\x0B') ######################################################################## # interface discovery and device enumeration ######################################################################## def command(*args): p = subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, ) ret = p.wait() verbose = p.stdout.read().decode('utf-8') if ret != 0: raise Exception(verbose) return verbose def get_interfaces(): if(platform.system() is "Windows"): return win_get_interfaces() else: return unix_get_interfaces() def unix_get_interfaces(): ifconfig = command("/sbin/ifconfig") ip_addr_re = "cast\D*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})" bcasts = re.findall(ip_addr_re, ifconfig) return bcasts def win_get_interfaces(): from ctypes import Structure, windll, sizeof from ctypes import POINTER, byref from ctypes import c_ulong, c_uint, c_ubyte, c_char MAX_ADAPTER_DESCRIPTION_LENGTH = 128 MAX_ADAPTER_NAME_LENGTH = 256 MAX_ADAPTER_ADDRESS_LENGTH = 8 class IP_ADDR_STRING(Structure): pass LP_IP_ADDR_STRING = POINTER(IP_ADDR_STRING) IP_ADDR_STRING._fields_ = [ ("next", LP_IP_ADDR_STRING), ("ipAddress", c_char * 16), ("ipMask", c_char * 16), ("context", c_ulong)] class IP_ADAPTER_INFO (Structure): pass LP_IP_ADAPTER_INFO = POINTER(IP_ADAPTER_INFO) IP_ADAPTER_INFO._fields_ = [ ("next", LP_IP_ADAPTER_INFO), ("comboIndex", c_ulong), ("adapterName", c_char * (MAX_ADAPTER_NAME_LENGTH + 4)), ("description", c_char * (MAX_ADAPTER_DESCRIPTION_LENGTH + 4)), ("addressLength", c_uint), ("address", c_ubyte * MAX_ADAPTER_ADDRESS_LENGTH), ("index", c_ulong), ("type", c_uint), ("dhcpEnabled", c_uint), ("currentIpAddress", LP_IP_ADDR_STRING), ("ipAddressList", IP_ADDR_STRING), ("gatewayList", IP_ADDR_STRING), ("dhcpServer", IP_ADDR_STRING), ("haveWins", c_uint), ("primaryWinsServer", IP_ADDR_STRING), ("secondaryWinsServer", IP_ADDR_STRING), ("leaseObtained", c_ulong), ("leaseExpires", c_ulong)] GetAdaptersInfo = windll.iphlpapi.GetAdaptersInfo GetAdaptersInfo.restype = c_ulong GetAdaptersInfo.argtypes = [LP_IP_ADAPTER_INFO, POINTER(c_ulong)] adapterList = (IP_ADAPTER_INFO * 10)() buflen = c_ulong(sizeof(adapterList)) rc = GetAdaptersInfo(byref(adapterList[0]), byref(buflen)) if rc == 0: for a in adapterList: adNode = a.ipAddressList while True: #convert ipAddr and ipMask into hex addrs that can be turned into a bcast addr try: ipAddr = adNode.ipAddress.decode() ipMask = adNode.ipMask.decode() except: ipAddr = None if ipAddr and ipMask: hexAddr = struct.unpack(" FPGA_IMAGE_SIZE_BYTES: raise Exception("Error: FPGA image file too large.") if not is_valid_fpga_image(fpga_image): raise Exception("Error: Invalid FPGA image file.") if (len(fpga_image) + image_location) > flash_size: raise Exception("Error: Cannot write past end of device") print("Begin FPGA write: this should take about 1 minute...") start_time = time.time() self.erase_image(image_location, FPGA_IMAGE_SIZE_BYTES) self.write_image(fpga_image, image_location) self.verify_image(fpga_image, image_location) print("Time elapsed: %f seconds"%(time.time() - start_time)) print("\n\n") if fw: if safe: image_location = SAFE_FW_IMAGE_LOCATION_ADDR else: image_location = PROD_FW_IMAGE_LOCATION_ADDR fw_file = open(fw, 'rb') fw_image = fw_file.read() if len(fw_image) > FW_IMAGE_SIZE_BYTES: raise Exception("Error: Firmware image file too large.") if not is_valid_fw_image(fw_image): raise Exception("Error: Invalid firmware image file.") if (len(fw_image) + image_location) > flash_size: raise Exception("Error: Cannot write past end of device") print("Begin firmware write: this should take about 1 second...") start_time = time.time() self.erase_image(image_location, FW_IMAGE_SIZE_BYTES) self.write_image(fw_image, image_location) self.verify_image(fw_image, image_location) print("Time elapsed: %f seconds"%(time.time() - start_time)) print("\n\n") if reset: self.reset_usrp() def write_image(self, image, addr): print("Writing image") self._status_cb("Writing") writedata = image #we split the image into smaller (256B) bits and send them down the wire (mem_size, sector_size) = self.get_flash_info() if (addr + len(writedata)) > mem_size: raise Exception("Error: Cannot write past end of device") while writedata: out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL, seq(), addr, FLASH_DATA_PACKET_SIZE, writedata[:FLASH_DATA_PACKET_SIZE]) in_pkt = self.send_and_recv(out_pkt) (proto_ver, pktid, rxseq, flash_addr, rxlength, data) = unpack_flash_args_fmt(in_pkt) if pktid != update_id_t.USRP2_FW_UPDATE_ID_WROTE_TEH_FLASHES_OMG: raise Exception("Invalid reply %c from device." % (chr(pktid))) writedata = writedata[FLASH_DATA_PACKET_SIZE:] addr += FLASH_DATA_PACKET_SIZE self._progress_cb(float(len(image)-len(writedata))/len(image)) def verify_image(self, image, addr): print("Verifying data") self._status_cb("Verifying") readsize = len(image) readdata = bytes() while readsize > 0: if readsize < FLASH_DATA_PACKET_SIZE: thisreadsize = readsize else: thisreadsize = FLASH_DATA_PACKET_SIZE out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL, seq(), addr, thisreadsize) in_pkt = self.send_and_recv(out_pkt) (proto_ver, pktid, rxseq, flash_addr, rxlength, data) = unpack_flash_args_fmt(in_pkt) if pktid != update_id_t.USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG: raise Exception("Invalid reply %c from device." % (chr(pktid))) readdata += data[:thisreadsize] readsize -= FLASH_DATA_PACKET_SIZE addr += FLASH_DATA_PACKET_SIZE self._progress_cb(float(len(readdata))/len(image)) print("Read back %i bytes" % len(readdata)) # print readdata # for i in range(256, 512): # print "out: %i in: %i" % (ord(image[i]), ord(readdata[i])) if readdata != image: raise Exception("Verify failed. Image did not write correctly.") else: print("Success.") def read_image(self, image, size, addr): print("Reading image") readsize = size readdata = str() while readsize > 0: if readsize < FLASH_DATA_PACKET_SIZE: thisreadsize = readsize else: thisreadsize = FLASH_DATA_PACKET_SIZE out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL, seq(), addr, thisreadsize) in_pkt = self.send_and_recv(out_pkt) (proto_ver, pktid, rxseq, flash_addr, rxlength, data) = unpack_flash_args_fmt(in_pkt) if pktid != update_id_t.USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG: raise Exception("Invalid reply %c from device." % (chr(pktid))) readdata += data[:thisreadsize] readsize -= FLASH_DATA_PACKET_SIZE addr += FLASH_DATA_PACKET_SIZE print("Read back %i bytes" % len(readdata)) #write to disk f = open(image, 'w') f.write(readdata) f.close() def reset_usrp(self): out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_RESET_MAH_COMPUTORZ_LOL, seq(), 0, 0) try: in_pkt = self.send_and_recv(out_pkt) except socket.timeout: return (proto_ver, pktid, rxseq, flash_addr, rxlength, data) = unpack_flash_args_fmt(in_pkt) if pktid == update_id_t.USRP2_FW_UPDATE_ID_RESETTIN_TEH_COMPUTORZ_OMG: raise Exception("Device failed to reset.") def erase_image(self, addr, length): self._status_cb("Erasing") #get flash info first (flash_size, sector_size) = self.get_flash_info() if (addr + length) > flash_size: raise Exception("Cannot erase past end of device") out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL, seq(), addr, length) in_pkt = self.send_and_recv(out_pkt) (proto_ver, pktid, rxseq, flash_addr, rxlength, data) = unpack_flash_args_fmt(in_pkt) if pktid != update_id_t.USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG: raise Exception("Invalid reply %c from device." % (chr(pktid))) print("Erasing %i bytes at %i" % (length, addr)) start_time = time.time() #now wait for it to finish while(True): out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_R_U_DONE_ERASING_LOL, seq(), 0, 0) in_pkt = self.send_and_recv(out_pkt) (proto_ver, pktid, rxseq, flash_addr, rxlength, data) = unpack_flash_args_fmt(in_pkt) if pktid == update_id_t.USRP2_FW_UPDATE_ID_IM_DONE_ERASING_OMG: break elif pktid != update_id_t.USRP2_FW_UPDATE_ID_NOPE_NOT_DONE_ERASING_OMG: raise Exception("Invalid reply %c from device." % (chr(pktid))) time.sleep(0.01) #decrease network overhead by waiting a bit before polling self._progress_cb(min(1.0, (time.time() - start_time)/(length/80e3))) ######################################################################## # command line options ######################################################################## def get_options(): parser = optparse.OptionParser() parser.add_option("--addr", type="string", help="USRP-N2XX device address", default='') parser.add_option("--fw", type="string", help="firmware image path (optional)", default='') parser.add_option("--fpga", type="string", help="fpga image path (optional)", default='') parser.add_option("--reset", action="store_true", help="reset the device after writing", default=False) parser.add_option("--read", action="store_true", help="read to file instead of write from file", default=False) parser.add_option("--overwrite-safe", action="store_true", help="never ever use this option", default=False) parser.add_option("--dont-check-rev", action="store_true", help="disable revision checks", default=False) parser.add_option("--list", action="store_true", help="list possible network devices", default=False) (options, args) = parser.parse_args() return options ######################################################################## # main ######################################################################## if __name__=='__main__': options = get_options() if options.list: print('Possible network devices:') print(' ' + '\n '.join(enumerate_devices())) #enumerate_devices() exit() if not options.addr: raise Exception('no address specified') if not options.fpga and not options.fw and not options.reset: raise Exception('Must specify either a firmware image or FPGA image, and/or reset.') if options.overwrite_safe and not options.read: print("Are you REALLY, REALLY sure you want to overwrite the safe image? This is ALMOST ALWAYS a terrible idea.") print("If your image is faulty, your USRP2+ will become a brick until reprogrammed via JTAG.") response = raw_input("""Type "yes" to continue, or anything else to quit: """) if response != "yes": sys.exit(0) burner = burner_socket(addr=options.addr,quiet=False) if options.read: if options.fw: file = options.fw if os.path.isfile(file): response = raw_input("File already exists -- overwrite? (y/n) ") if response != "y": sys.exit(0) size = FW_IMAGE_SIZE_BYTES addr = SAFE_FW_IMAGE_LOCATION_ADDR if options.overwrite_safe else PROD_FW_IMAGE_LOCATION_ADDR burner.read_image(file, size, addr) if options.fpga: file = options.fpga if os.path.isfile(file): response = input("File already exists -- overwrite? (y/n) ") if response != "y": sys.exit(0) size = FPGA_IMAGE_SIZE_BYTES addr = SAFE_FPGA_IMAGE_LOCATION_ADDR if options.overwrite_safe else PROD_FPGA_IMAGE_LOCATION_ADDR burner.read_image(file, size, addr) else: burner.burn_fw(fw=options.fw, fpga=options.fpga, reset=options.reset, safe=options.overwrite_safe, check_rev=not options.dont_check_rev) uhd-3.5.5/host/utils/usrp_n2xx_net_burner_gui.py000077500000000000000000000213111224274632000220350ustar00rootroot00000000000000#!/usr/bin/env python # # Copyright 2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import usrp_n2xx_net_burner #import implementation try: import tkinter, tkinter.filedialog, tkinter.font, tkinter.messagebox except ImportError: import tkFileDialog, tkFont, tkMessageBox import Tkinter as tkinter tkinter.filedialog = tkFileDialog tkinter.font = tkFont tkinter.messagebox = tkMessageBox import os class BinFileEntry(tkinter.Frame): """ Simple file entry widget for getting the file path of bin files. Combines a label, entry, and button with file dialog callback. """ def __init__(self, root, what, def_path=''): self._what = what tkinter.Frame.__init__(self, root) tkinter.Label(self, text=what+":").pack(side=tkinter.LEFT) self._entry = tkinter.Entry(self, width=50) self._entry.insert(tkinter.END, def_path) self._entry.pack(side=tkinter.LEFT) tkinter.Button(self, text="...", command=self._button_cb).pack(side=tkinter.LEFT) def _button_cb(self): filename = tkinter.filedialog.askopenfilename( parent=self, filetypes=[('bin files', '*.bin'), ('all files', '*.*')], title="Select bin file for %s"%self._what, initialdir=os.path.dirname(self.get_filename()), ) # open file on your own if filename: self._entry.delete(0, tkinter.END) self._entry.insert(0, filename) def get_filename(self): return self._entry.get() class ProgressBar(tkinter.Canvas): """ A simple implementation of a progress bar. Draws rectangle that fills from left to right. """ def __init__(self, root, width=500, height=20): self._width = width self._height = height tkinter.Canvas.__init__(self, root, relief="sunken", borderwidth=2, width=self._width-2, height=self._height-2) self._last_fill_pixels = None self.set(0.0) def set(self, frac): """ Update the progress where fraction is between 0.0 and 1.0 """ #determine the number of pixels to draw fill_pixels = int(round(self._width*frac)) if fill_pixels == self._last_fill_pixels: return self._last_fill_pixels = fill_pixels #draw a rectangle representing the progress if frac: self.create_rectangle(0, 0, fill_pixels, self._height, fill="#357EC7") else: self.create_rectangle(0, 0, self._width, self._height, fill="#E8E8E8") class DeviceEntryWidget(tkinter.Frame): """ Simple entry widget for getting the network device name. Combines a label, entry, and helpful text box with hints. """ def __init__(self, root, text=''): tkinter.Frame.__init__(self, root) tkinter.Button(self, text="Rescan for Devices", command=self._reload_cb).pack() self._hints = tkinter.Listbox(self) self._hints_addrs_only = tkinter.Listbox(self) self._hints.bind("<>", self._listbox_cb) self._hints_addrs_only.bind("<>", self._listbox_cb) self._reload_cb() self._hints.pack(expand=tkinter.YES, fill=tkinter.X) frame = tkinter.Frame(self) frame.pack() tkinter.Label(frame, text="Network Address:").pack(side=tkinter.LEFT) self._entry = tkinter.Entry(frame, width=50) self._entry.insert(tkinter.END, text) self._entry.pack(side=tkinter.LEFT) def _reload_cb(self): self._hints.delete(0, tkinter.END) for hint in usrp_n2xx_net_burner.enumerate_devices(): self._hints.insert(tkinter.END, hint) self._hints_addrs_only.insert(tkinter.END, hint.split(" (")[0]) def _listbox_cb(self, event): try: sel = self._hints_addrs_only.get(self._hints.curselection()[0]) self._entry.delete(0, tkinter.END) self._entry.insert(0, sel) except Exception as e: print(e) def get_devname(self): return self._entry.get() class SectionLabel(tkinter.Label): """ Make a text label with bold font. """ def __init__(self, root, text): tkinter.Label.__init__(self, root, text=text) #set the font bold f = tkinter.font.Font(font=self['font']) f['weight'] = 'bold' self['font'] = f.name class USRPN2XXNetBurnerApp(tkinter.Frame): """ The top level gui application for the usrp-n2xx network burner. Creates entry widgets and button with callback to write images. """ def __init__(self, root, addr, fw, fpga): tkinter.Frame.__init__(self, root) #pack the file entry widgets SectionLabel(self, text="Select Images").pack(pady=5) self._fw_img_entry = BinFileEntry(self, "Firmware Image", def_path=fw) self._fw_img_entry.pack() self._fpga_img_entry = BinFileEntry(self, "FPGA Image", def_path=fpga) self._fpga_img_entry.pack() #pack the destination entry widget SectionLabel(self, text="Select Device").pack(pady=5) self._net_dev_entry = DeviceEntryWidget(self, text=addr) self._net_dev_entry.pack() #the do it button SectionLabel(self, text="").pack(pady=5) button = tkinter.Button(self, text="Burn Images", command=self._burn) self._enable_input = lambda: button.configure(state=tkinter.NORMAL) self._disable_input = lambda: button.configure(state=tkinter.DISABLED) button.pack() #a progress bar to monitor the status progress_frame = tkinter.Frame(self) progress_frame.pack() self._status = tkinter.StringVar() tkinter.Label(progress_frame, textvariable=self._status).pack(side=tkinter.LEFT) self._pbar = ProgressBar(progress_frame) self._pbar.pack(side=tkinter.RIGHT, expand=True) def _burn(self): #grab strings from the gui fw = self._fw_img_entry.get_filename() fpga = self._fpga_img_entry.get_filename() addr = self._net_dev_entry.get_devname() #check input if not addr: tkinter.messagebox.showerror('Error:', 'No address specified!') return if not fw and not fpga: tkinter.messagebox.showerror('Error:', 'No images specified!') return if fw and not os.path.exists(fw): tkinter.messagebox.showerror('Error:', 'Firmware image not found!') return if fpga and not os.path.exists(fpga): tkinter.messagebox.showerror('Error:', 'FPGA image not found!') return self._disable_input() try: #make a new burner object and attempt the burner operation burner = usrp_n2xx_net_burner.burner_socket(addr=addr,quiet=False) for (image_type, fw_img, fpga_img) in (('FPGA', '', fpga), ('Firmware', fw, '')): #setup callbacks that update the gui def status_cb(status): self._pbar.set(0.0) #status change, reset the progress self._status.set("%s %s "%(status.title(), image_type)) self.update() def progress_cb(progress): self._pbar.set(progress) self.update() burner.set_callbacks(progress_cb=progress_cb, status_cb=status_cb) burner.burn_fw(fw=fw_img, fpga=fpga_img, reset=False, safe=False, check_rev=not options.dont_check_rev) if tkinter.messagebox.askyesno("Burn was successful!", "Reset the device?"): burner.reset_usrp() except Exception as e: tkinter.messagebox.showerror('Verbose:', 'Error: %s'%str(e)) #reset the progress bar self._pbar.set(0.0) self._status.set("") self._enable_input() ######################################################################## # main ######################################################################## if __name__=='__main__': options = usrp_n2xx_net_burner.get_options() root = tkinter.Tk() root.title('USRP-N2XX Net Burner') USRPN2XXNetBurnerApp(root, addr=options.addr, fw=options.fw, fpga=options.fpga).pack() root.mainloop() exit() uhd-3.5.5/host/utils/usrp_n2xx_simple_net_burner.cpp000066400000000000000000000577051224274632000227110ustar00rootroot00000000000000// // Copyright 2012-2013 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "usrp_simple_burner_utils.hpp" #include #include #include #include #include #include #include #include namespace po = boost::program_options; using namespace boost::algorithm; using namespace uhd; using namespace uhd::transport; //Mapping revision numbers to filenames std::map filename_map = boost::assign::map_list_of (0xa, "n200_r3") (0x100a, "n200_r4") (0x10a, "n210_r3") (0x110a, "n210_r4") ; //Images and image sizes, to be populated as necessary boost::uint8_t fpga_image[FPGA_IMAGE_SIZE_BYTES]; boost::uint8_t fw_image[FW_IMAGE_SIZE_BYTES]; int fpga_image_size = 0; int fw_image_size = 0; //For non-standard images not covered by uhd::find_image_path() bool does_image_exist(std::string image_filepath){ std::ifstream ifile((char*)image_filepath.c_str()); return ifile; } /*********************************************************************** * Custom filename validation functions **********************************************************************/ void validate_custom_fpga_file(std::string rev_str, std::string fpga_path){ //Check for existence of file if(!does_image_exist(fpga_path)) throw std::runtime_error(str(boost::format("No file at specified FPGA path: %s") % fpga_path)); //Check to find rev_str in filename uhd::fs_path custom_fpga_path(fpga_path); if(custom_fpga_path.leaf().find("fw") != std::string::npos){ throw std::runtime_error(str(boost::format("Invalid FPGA image filename at path: %s\nFilename indicates that this is a firmware image.") % fpga_path)); } if(custom_fpga_path.leaf().find(rev_str) == std::string::npos){ throw std::runtime_error(str(boost::format("Invalid FPGA image filename at path: %s\nFilename must contain '%s' to be considered valid for this model.") % fpga_path % rev_str)); } } void validate_custom_fw_file(std::string rev_str, std::string fw_path){ //Check for existence of file if(!does_image_exist(fw_path)) throw std::runtime_error(str(boost::format("No file at specified firmware path: %s") % fw_path)); //Check to find truncated rev_str in filename uhd::fs_path custom_fw_path(fw_path); if(custom_fw_path.leaf().find("fpga") != std::string::npos){ throw std::runtime_error(str(boost::format("Invalid firmware image filename at path: %s\nFilename indicates that this is an FPGA image.") % fw_path)); } if(custom_fw_path.leaf().find(erase_tail_copy(rev_str,3)) == std::string::npos){ throw std::runtime_error(str(boost::format("Invalid firmware image filename at path: %s\nFilename must contain '%s' to be considered valid for this model.") % fw_path % erase_tail_copy(rev_str,3))); } } /*********************************************************************** * Grabbing and validating image binaries **********************************************************************/ int grab_fpga_image(std::string fpga_path){ //Reading FPGA image from file std::ifstream to_read_fpga((char*)fpga_path.c_str(), std::ios::binary); to_read_fpga.seekg(0, std::ios::end); fpga_image_size = to_read_fpga.tellg(); to_read_fpga.seekg(0, std::ios::beg); char fpga_read[FPGA_IMAGE_SIZE_BYTES]; to_read_fpga.read(fpga_read,fpga_image_size); to_read_fpga.close(); for(int i = 0; i < fpga_image_size; i++) fpga_image[i] = (boost::uint8_t)fpga_read[i]; //Checking validity of image if(fpga_image_size > FPGA_IMAGE_SIZE_BYTES){ throw std::runtime_error(str(boost::format("FPGA image is too large. %d > %d") % fpga_image_size % FPGA_IMAGE_SIZE_BYTES)); } //Check sequence of bytes in image bool is_good = false; for(int i = 0; i < 63; i++){ if((boost::uint8_t)fpga_image[i] == 255) continue; else if((boost::uint8_t)fpga_image[i] == 170 and (boost::uint8_t)fpga_image[i+1] == 153){ is_good = true; break; } } if(!is_good) throw std::runtime_error("Not a valid FPGA image."); //Return image size return fpga_image_size; } int grab_fw_image(std::string fw_path){ //Reading firmware image from file std::ifstream to_read_fw((char*)fw_path.c_str(), std::ios::binary); to_read_fw.seekg(0, std::ios::end); fw_image_size = to_read_fw.tellg(); to_read_fw.seekg(0, std::ios::beg); char fw_read[FW_IMAGE_SIZE_BYTES]; to_read_fw.read(fw_read,fw_image_size); to_read_fw.close(); for(int i = 0; i < fw_image_size; i++) fw_image[i] = (boost::uint8_t)fw_read[i]; //Checking validity of image if(fw_image_size > FW_IMAGE_SIZE_BYTES){ throw std::runtime_error(str(boost::format("Firmware image is too large. %d > %d") % fw_image_size % FW_IMAGE_SIZE_BYTES)); } //Check first four bytes of image for(int i = 0; i < 4; i++) if((boost::uint8_t)fw_image[i] != 11) throw std::runtime_error("Not a valid firmware image."); //Return image size return fw_image_size; } boost::uint32_t* get_flash_info(std::string ip_addr){ boost::uint32_t *flash_info = new boost::uint32_t[2]; boost::uint8_t usrp2_update_data_in_mem[udp_simple::mtu]; const usrp2_fw_update_data_t *update_data_in = reinterpret_cast(usrp2_update_data_in_mem); udp_simple::sptr udp_transport = udp_simple::make_connected(ip_addr, BOOST_STRINGIZE(USRP2_UDP_UPDATE_PORT)); usrp2_fw_update_data_t get_flash_info_pkt = usrp2_fw_update_data_t(); get_flash_info_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); get_flash_info_pkt.id = htonx(USRP2_FW_UPDATE_ID_WATS_TEH_FLASH_INFO_LOL); udp_transport->send(boost::asio::buffer(&get_flash_info_pkt, sizeof(get_flash_info_pkt))); //Loop and receive until the timeout size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_HERES_TEH_FLASH_INFO_OMG){ flash_info[0] = ntohl(update_data_in->data.flash_info_args.sector_size_bytes); flash_info[1] = ntohl(update_data_in->data.flash_info_args.memory_size_bytes); } else if(ntohl(update_data_in->id) != USRP2_FW_UPDATE_ID_HERES_TEH_FLASH_INFO_OMG){ throw std::runtime_error(str(boost::format("Received invalid reply %d from device.\n") % ntohl(update_data_in->id))); } return flash_info; } /*********************************************************************** * Image burning functions **********************************************************************/ void erase_image(udp_simple::sptr udp_transport, bool is_fw, boost::uint32_t memory_size){ //Making sure this won't attempt to erase past end of device if(is_fw){ if(PROD_FW_IMAGE_LOCATION_ADDR+FW_IMAGE_SIZE_BYTES > memory_size) throw std::runtime_error("Cannot erase past end of device."); } else{ if(PROD_FPGA_IMAGE_LOCATION_ADDR+FPGA_IMAGE_SIZE_BYTES > memory_size) throw std::runtime_error("Cannot erase past end of device."); } //Setting up UDP transport boost::uint8_t usrp2_update_data_in_mem[udp_simple::mtu]; const usrp2_fw_update_data_t *update_data_in = reinterpret_cast(usrp2_update_data_in_mem); //Setting up UDP packet usrp2_fw_update_data_t erase_pkt = usrp2_fw_update_data_t(); erase_pkt.id = htonx(USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL); erase_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); if(is_fw){ erase_pkt.data.flash_args.flash_addr = htonx(PROD_FW_IMAGE_LOCATION_ADDR); erase_pkt.data.flash_args.length = htonx(FW_IMAGE_SIZE_BYTES); } else{ erase_pkt.data.flash_args.flash_addr = htonx(PROD_FPGA_IMAGE_LOCATION_ADDR); erase_pkt.data.flash_args.length = htonx(FPGA_IMAGE_SIZE_BYTES); } //Begin erasing udp_transport->send(boost::asio::buffer(&erase_pkt, sizeof(erase_pkt))); size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG){ if(is_fw) std::cout << "Erasing firmware image." << std::endl; else std::cout << "Erasing FPGA image." << std::endl; } else if(ntohl(update_data_in->id) != USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG){ throw std::runtime_error(str(boost::format("Received invalid reply %d from device.\n") % ntohl(update_data_in->id))); } //Check for erase completion erase_pkt.id = htonx(USRP2_FW_UPDATE_ID_R_U_DONE_ERASING_LOL); while(true){ udp_transport->send(boost::asio::buffer(&erase_pkt, sizeof(erase_pkt))); size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_IM_DONE_ERASING_OMG){ if(is_fw) std::cout << boost::format(" * Successfully erased %d bytes at %d.\n") % FW_IMAGE_SIZE_BYTES % PROD_FW_IMAGE_LOCATION_ADDR; else std::cout << boost::format(" * Successfully erased %d bytes at %d.\n") % FPGA_IMAGE_SIZE_BYTES % PROD_FPGA_IMAGE_LOCATION_ADDR; break; } else if(ntohl(update_data_in->id) != USRP2_FW_UPDATE_ID_NOPE_NOT_DONE_ERASING_OMG){ throw std::runtime_error(str(boost::format("Received invalid reply %d from device.\n") % ntohl(update_data_in->id))); } } } void write_image(udp_simple::sptr udp_transport, bool is_fw, boost::uint8_t* image, boost::uint32_t memory_size, int image_size){ boost::uint32_t current_addr; if(is_fw) current_addr = PROD_FW_IMAGE_LOCATION_ADDR; else current_addr = PROD_FPGA_IMAGE_LOCATION_ADDR; //Making sure this won't attempt to write past end of device if(current_addr+image_size > memory_size) throw std::runtime_error("Cannot write past end of device."); //Setting up UDP transport boost::uint8_t usrp2_update_data_in_mem[udp_simple::mtu]; const usrp2_fw_update_data_t *update_data_in = reinterpret_cast(usrp2_update_data_in_mem); //Setting up UDP packet usrp2_fw_update_data_t write_pkt = usrp2_fw_update_data_t(); write_pkt.id = htonx(USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL); write_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); write_pkt.data.flash_args.length = htonx(FLASH_DATA_PACKET_SIZE); //Write image if(is_fw) std::cout << "Writing firmware image." << std::endl; else std::cout << "Writing FPGA image." << std::endl; for(int i = 0; i < ((image_size/FLASH_DATA_PACKET_SIZE)+1); i++){ write_pkt.data.flash_args.flash_addr = htonx(current_addr); std::copy(image+(i*FLASH_DATA_PACKET_SIZE), image+((i+1)*FLASH_DATA_PACKET_SIZE), write_pkt.data.flash_args.data); udp_transport->send(boost::asio::buffer(&write_pkt, sizeof(write_pkt))); size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) != USRP2_FW_UPDATE_ID_WROTE_TEH_FLASHES_OMG){ throw std::runtime_error(str(boost::format("Invalid reply %d from device.") % ntohl(update_data_in->id))); } current_addr += FLASH_DATA_PACKET_SIZE; } std::cout << boost::format(" * Successfully wrote %d bytes.\n") % image_size; } void verify_image(udp_simple::sptr udp_transport, bool is_fw, boost::uint8_t* image, boost::uint32_t memory_size, int image_size){ int current_index = 0; boost::uint32_t current_addr; if(is_fw) current_addr = PROD_FW_IMAGE_LOCATION_ADDR; else current_addr = PROD_FPGA_IMAGE_LOCATION_ADDR; //Array size needs to be known at runtime, this constant is guaranteed to be larger than any firmware or FPGA image boost::uint8_t from_usrp[FPGA_IMAGE_SIZE_BYTES]; //Making sure this won't attempt to read past end of device if(current_addr+image_size > memory_size) throw std::runtime_error("Cannot read past end of device."); //Setting up UDP transport boost::uint8_t usrp2_update_data_in_mem[udp_simple::mtu]; const usrp2_fw_update_data_t *update_data_in = reinterpret_cast(usrp2_update_data_in_mem); //Setting up UDP packet usrp2_fw_update_data_t verify_pkt = usrp2_fw_update_data_t(); verify_pkt.id = htonx(USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL); verify_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); verify_pkt.data.flash_args.length = htonx(FLASH_DATA_PACKET_SIZE); //Verify image if(is_fw) std::cout << "Verifying firmware image." << std::endl; else std::cout << "Verifying FPGA image." << std::endl; for(int i = 0; i < ((image_size/FLASH_DATA_PACKET_SIZE)+1); i++){ verify_pkt.data.flash_args.flash_addr = htonx(current_addr); udp_transport->send(boost::asio::buffer(&verify_pkt, sizeof(verify_pkt))); size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) != USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG){ throw std::runtime_error(str(boost::format("Invalid reply %d from device.") % ntohl(update_data_in->id))); } for(int j = 0; j < FLASH_DATA_PACKET_SIZE; j++) from_usrp[current_index+j] = update_data_in->data.flash_args.data[j]; current_addr += FLASH_DATA_PACKET_SIZE; current_index += FLASH_DATA_PACKET_SIZE; } for(int i = 0; i < image_size; i++) if(from_usrp[i] != image[i]) throw std::runtime_error("Image write failed."); std::cout << " * Successful." << std::endl; } void reset_usrp(udp_simple::sptr udp_transport){ //Set up UDP transport boost::uint8_t usrp2_update_data_in_mem[udp_simple::mtu]; const usrp2_fw_update_data_t *update_data_in = reinterpret_cast(usrp2_update_data_in_mem); //Set up UDP packet usrp2_fw_update_data_t reset_pkt = usrp2_fw_update_data_t(); reset_pkt.id = htonx(USRP2_FW_UPDATE_ID_RESET_MAH_COMPUTORZ_LOL); reset_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); //Reset USRP udp_transport->send(boost::asio::buffer(&reset_pkt, sizeof(reset_pkt))); size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_RESETTIN_TEH_COMPUTORZ_OMG){ throw std::runtime_error("USRP reset failed."); //There should be no response to this UDP packet } else std::cout << "Resetting USRP." << std::endl; } int UHD_SAFE_MAIN(int argc, char *argv[]){ //Establish user options std::string fw_path; std::string ip_addr; std::string fpga_path; po::options_description desc("Allowed options:"); desc.add_options() ("help", "Display this help message.") ("addr", po::value(&ip_addr)->default_value("192.168.10.2"), "Specify an IP address.") ("fw", po::value(&fw_path), "Specify a filepath for a custom firmware image.") ("fpga", po::value(&fpga_path), "Specify a filepath for a custom FPGA image.") ("no_fw", "Do not burn a firmware image.") ("no_fpga", "Do not burn an FPGA image.") ("auto_reboot", "Automatically reboot N2XX without prompting.") ("list", "List available N2XX USRP devices.") ; po::variables_map vm; po::store(po::parse_command_line(argc, argv, desc), vm); po::notify(vm); //Apply options if(vm.count("help") > 0){ std::cout << boost::format("N2XX Simple Net Burner\n"); std::cout << boost::format("Automatically detects and burns standard firmware and FPGA images onto USRP N2XX devices.\n"); std::cout << boost::format("Can optionally take user input for custom images.\n\n"); std::cout << desc << std::endl; return EXIT_FAILURE; } bool burn_fpga = (vm.count("no_fpga") == 0); bool burn_fw = (vm.count("no_fw") == 0); bool use_custom_fpga = (vm.count("fpga") > 0); bool use_custom_fw = (vm.count("fw") > 0); bool list_usrps = (vm.count("list") > 0); bool auto_reboot = (vm.count("auto_reboot") > 0); if(!burn_fpga && !burn_fw){ std::cout << "No images will be burned." << std::endl; return EXIT_FAILURE; } if(!burn_fw && use_custom_fw) std::cout << boost::format("Conflicting firmware options presented. Will not burn a firmware image.\n\n"); if(!burn_fpga && use_custom_fpga) std::cout << boost::format("Conflicting FPGA options presented. Will not burn an FPGA image.\n\n"); //Variables not from options boost::uint32_t hw_rev; bool found_it = false; boost::uint8_t usrp2_update_data_in_mem[udp_simple::mtu]; const usrp2_fw_update_data_t *update_data_in = reinterpret_cast(usrp2_update_data_in_mem); //List option if(list_usrps){ udp_simple::sptr udp_bc_transport; usrp2_fw_update_data_t usrp2_ack_pkt = usrp2_fw_update_data_t(); usrp2_ack_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); usrp2_ack_pkt.id = htonx(USRP2_FW_UPDATE_ID_OHAI_LOL); std::cout << "Available USRP N2XX devices:" << std::endl; //Send UDP packets to all broadcast addresses BOOST_FOREACH(const if_addrs_t &if_addrs, get_if_addrs()){ //Avoid the loopback device if(if_addrs.inet == boost::asio::ip::address_v4::loopback().to_string()) continue; udp_bc_transport = udp_simple::make_broadcast(if_addrs.bcast, BOOST_STRINGIZE(USRP2_UDP_UPDATE_PORT)); udp_bc_transport->send(boost::asio::buffer(&usrp2_ack_pkt, sizeof(usrp2_ack_pkt))); size_t len = udp_bc_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_OHAI_OMG){ usrp2_ack_pkt.id = htonx(USRP2_FW_UPDATE_ID_I_CAN_HAS_HW_REV_LOL); udp_bc_transport->send(boost::asio::buffer(&usrp2_ack_pkt, sizeof(usrp2_ack_pkt))); size_t len = udp_bc_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_HERES_TEH_HW_REV_OMG){ hw_rev = ntohl(update_data_in->data.hw_rev); } std::cout << boost::format(" * %s (%s)\n") % udp_bc_transport->get_recv_addr() % filename_map[hw_rev]; } } return EXIT_FAILURE; } std::cout << boost::format("Searching for USRP N2XX with IP address %s.\n") % ip_addr; //Address specified udp_simple::sptr udp_transport = udp_simple::make_connected(ip_addr, BOOST_STRINGIZE(USRP2_UDP_UPDATE_PORT)); usrp2_fw_update_data_t hw_info_pkt = usrp2_fw_update_data_t(); hw_info_pkt.proto_ver = htonx(USRP2_FW_PROTO_VERSION); hw_info_pkt.id = htonx(USRP2_FW_UPDATE_ID_I_CAN_HAS_HW_REV_LOL); udp_transport->send(boost::asio::buffer(&hw_info_pkt, sizeof(hw_info_pkt))); //Loop and receive until the timeout size_t len = udp_transport->recv(boost::asio::buffer(usrp2_update_data_in_mem), UDP_TIMEOUT); if(len > offsetof(usrp2_fw_update_data_t, data) and ntohl(update_data_in->id) == USRP2_FW_UPDATE_ID_HERES_TEH_HW_REV_OMG){ hw_rev = ntohl(update_data_in->data.hw_rev); if(filename_map.find(hw_rev) != filename_map.end()){ std::cout << boost::format("Found %s.\n\n") % filename_map[hw_rev]; found_it = true; } else throw std::runtime_error("Invalid revision found."); } if(!found_it) throw std::runtime_error("No USRP N2XX found."); //Determining default image filenames for validation std::string default_fw_filename = str(boost::format("usrp_%s_fw.bin") % erase_tail_copy(filename_map[hw_rev],3)); std::string default_fpga_filename = str(boost::format("usrp_%s_fpga.bin") % filename_map[hw_rev]); std::string default_fw_filepath = ""; std::string default_fpga_filepath = ""; //Check validity of file locations and binaries before attempting burn std::cout << "Searching for specified images." << std::endl << std::endl; if(burn_fpga){ if(!use_custom_fpga) fpga_path = find_image_path(default_fpga_filename); else validate_custom_fpga_file(filename_map[hw_rev], fpga_path); grab_fpga_image(fpga_path); } if(burn_fw){ if(!use_custom_fw) fw_path = find_image_path(default_fw_filename); else validate_custom_fw_file(filename_map[hw_rev], fw_path); grab_fw_image(fw_path); } std::cout << "Will burn the following images:" << std::endl; if(burn_fw) std::cout << boost::format(" * Firmware: %s\n") % fw_path; if(burn_fpga) std::cout << boost::format(" * FPGA: %s\n") % fpga_path; std::cout << std::endl; boost::uint32_t* flash_info = get_flash_info(ip_addr); std::cout << boost::format("Querying %s for flash information.\n") % filename_map[hw_rev]; std::cout << boost::format(" * Flash size: %3.2f\n") % flash_info[1]; std::cout << boost::format(" * Sector size: %3.2f\n\n") % flash_info[0]; //Burning images if(burn_fpga){ erase_image(udp_transport, false, flash_info[1]); write_image(udp_transport, false, fpga_image, flash_info[1], fpga_image_size); verify_image(udp_transport, false, fpga_image, flash_info[1], fpga_image_size); } if(burn_fpga and burn_fw) std::cout << std::endl; //Formatting if(burn_fw){ erase_image(udp_transport, true, flash_info[1]); write_image(udp_transport, true, fw_image, flash_info[1], fw_image_size); verify_image(udp_transport, true, fw_image, flash_info[1], fw_image_size); } //Reset USRP N2XX bool reset = false; if(auto_reboot) reset = true; else{ std::string user_response = "foo"; while(user_response != "y" and user_response != "" and user_response != "n"){ std::cout << std::endl << "Image burning successful. Reset USRP (Y/n)? "; std::getline(std::cin, user_response); std::transform(user_response.begin(), user_response.end(), user_response.begin(), ::tolower); reset = (user_response == "" or user_response == "y"); } std::cout << std::endl; //Formatting } if(reset) reset_usrp(udp_transport); else return EXIT_SUCCESS; return EXIT_SUCCESS; } uhd-3.5.5/host/utils/usrp_simple_burner_utils.hpp000066400000000000000000000057571224274632000223110ustar00rootroot00000000000000// // Copyright 2012 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #include #include #include #include #include #include #include #include #include #include #include #define UDP_FW_UPDATE_PORT 49154 #define UDP_MAX_XFER_BYTES 1024 #define UDP_TIMEOUT 3 #define UDP_POLL_INTERVAL 0.10 //in seconds #define USRP2_FW_PROTO_VERSION 7 //should be unused after r6 #define USRP2_UDP_UPDATE_PORT 49154 #define FLASH_DATA_PACKET_SIZE 256 #define FPGA_IMAGE_SIZE_BYTES 1572864 #define FW_IMAGE_SIZE_BYTES 31744 #define PROD_FPGA_IMAGE_LOCATION_ADDR 0x00180000 #define PROD_FW_IMAGE_LOCATION_ADDR 0x00300000 #define SAFE_FPGA_IMAGE_LOCATION_ADDR 0x00000000 #define SAFE_FW_IMAGE_LOCATION_ADDR 0x003F0000 using namespace uhd; using namespace uhd::transport; namespace asio = boost::asio; typedef enum { USRP2_FW_UPDATE_ID_WAT = ' ', USRP2_FW_UPDATE_ID_OHAI_LOL = 'a', USRP2_FW_UPDATE_ID_OHAI_OMG = 'A', USRP2_FW_UPDATE_ID_WATS_TEH_FLASH_INFO_LOL = 'f', USRP2_FW_UPDATE_ID_HERES_TEH_FLASH_INFO_OMG = 'F', USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL = 'e', USRP2_FW_UPDATE_ID_ERASING_TEH_FLASHES_OMG = 'E', USRP2_FW_UPDATE_ID_R_U_DONE_ERASING_LOL = 'd', USRP2_FW_UPDATE_ID_IM_DONE_ERASING_OMG = 'D', USRP2_FW_UPDATE_ID_NOPE_NOT_DONE_ERASING_OMG = 'B', USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL = 'w', USRP2_FW_UPDATE_ID_WROTE_TEH_FLASHES_OMG = 'W', USRP2_FW_UPDATE_ID_READ_TEH_FLASHES_LOL = 'r', USRP2_FW_UPDATE_ID_KK_READ_TEH_FLASHES_OMG = 'R', USRP2_FW_UPDATE_ID_RESET_MAH_COMPUTORZ_LOL = 's', USRP2_FW_UPDATE_ID_RESETTIN_TEH_COMPUTORZ_OMG = 'S', USRP2_FW_UPDATE_ID_I_CAN_HAS_HW_REV_LOL = 'v', USRP2_FW_UPDATE_ID_HERES_TEH_HW_REV_OMG = 'V', USRP2_FW_UPDATE_ID_KTHXBAI = '~' } usrp2_fw_update_id_t; typedef struct { uint32_t proto_ver; uint32_t id; uint32_t seq; union { uint32_t ip_addr; uint32_t hw_rev; struct { uint32_t flash_addr; uint32_t length; uint8_t data[256]; } flash_args; struct { uint32_t sector_size_bytes; uint32_t memory_size_bytes; } flash_info_args; } data; } usrp2_fw_update_data_t; uhd-3.5.5/images/000077500000000000000000000000001224274632000135535ustar00rootroot00000000000000uhd-3.5.5/images/.gitignore000066400000000000000000000000171224274632000155410ustar00rootroot00000000000000/build /images uhd-3.5.5/images/CMakeLists.txt000066400000000000000000000043251224274632000163170ustar00rootroot00000000000000# # Copyright 2010-2012 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # ######################################################################## # Setup Project ######################################################################## CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(UHD-images NONE) LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../host/cmake/Modules) INCLUDE(UHDVersion) #sets version variables (used below) EXECUTE_PROCESS(COMMAND "date" OUTPUT_VARIABLE DATETIME_NOW OUTPUT_STRIP_TRAILING_WHITESPACE) #sets the date ######################################################################## # Setup CPack ######################################################################## SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ettus Research - USRP Hardware Driver Images") SET(CPACK_PACKAGE_VENDOR "Ettus Research LLC") SET(CPACK_PACKAGE_CONTACT "support@ettus.com") SET(CPACK_PACKAGE_VERSION ${UHD_VERSION}) SET(CPACK_PACKAGE_FILE_NAME "uhd-images_${UHD_VERSION}") SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all") INCLUDE(CPack) #include after setting vars MESSAGE(STATUS "Version: ${UHD_VERSION}") ######################################################################## # Install Images ######################################################################## #tag the images with a version number (something identifiable) FILE(WRITE ${CMAKE_SOURCE_DIR}/images/${UHD_VERSION_MAJOR}.${UHD_VERSION_MINOR}.${UHD_VERSION_PATCH}.tag "${UHD_VERSION}\n${DATETIME_NOW}\n") INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/images DESTINATION share/uhd) INSTALL(FILES ${CMAKE_SOURCE_DIR}/../host/LICENSE.txt DESTINATION share/uhd/images) uhd-3.5.5/images/Makefile000066400000000000000000000242761224274632000152260ustar00rootroot00000000000000# # Copyright 2010-2011 Ettus Research LLC # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # all: @echo "Pick a specific target" ######################################################################## # Common Variables ######################################################################## TOP_DIR = $(shell pwd) TOP_FW_DIR = $(TOP_DIR)/../firmware TOP_FPGA_DIR = $(TOP_DIR)/../fpga BUILT_IMAGES_DIR = $(TOP_DIR)/images CMAKE_BUILD_DIR = $(TOP_DIR)/build ##filled in below IMAGES_LIST = ##little rule to make the images directory $(BUILT_IMAGES_DIR): mkdir $@ mkdir $@/bit GLOBAL_DEPS = $(BUILT_IMAGES_DIR) ######################################################################## # Utility Checks ######################################################################## ifeq ($(shell sdcc --help > /dev/null 2>&1 && echo $$?),0) HAS_SDCC=1 endif ifeq ($(shell zpu-elf-gcc --help > /dev/null 2>&1 && echo $$?),0) HAS_ZPU_GCC=1 endif ifeq ($(shell xtclsh -h > /dev/null 2>&1 && echo $$?),0) HAS_XTCLSH=1 endif ######################################################################## # USRP1 and B100 firmware ######################################################################## ifdef HAS_SDCC _usrp1_fw_dir = $(TOP_FW_DIR)/fx2 _usrp1_fw_ihx = $(BUILT_IMAGES_DIR)/usrp1_fw.ihx _usrp_b100_fw_ihx = $(BUILT_IMAGES_DIR)/usrp_b100_fw.ihx IMAGES_LIST += $(_usrp1_fw_ihx) $(_usrp_b100_fw_ihx) $(_usrp1_fw_ihx): $(GLOBAL_DEPS) cd $(_usrp1_fw_dir) && rm -rf build cd $(_usrp1_fw_dir) && mkdir build cd $(_usrp1_fw_dir)/build && cmake ../ cd $(_usrp1_fw_dir)/build && make cp $(_usrp1_fw_dir)/build/usrp1/usrp1_fw.ihx $@ $(_usrp_b100_fw_ihx): $(_usrp1_fw_ihx) cp $(_usrp1_fw_dir)/build/b100/b100_fw.ihx $(_usrp_b100_fw_ihx) endif ######################################################################## # USRP1 fpga ######################################################################## _usrp1_fpga_dir = $(TOP_FPGA_DIR)/usrp1/rbf/rev4 _usrp1_fpga_rbf = $(BUILT_IMAGES_DIR)/usrp1_fpga.rbf _usrp1_fpga_4rx_rbf = $(BUILT_IMAGES_DIR)/usrp1_fpga_4rx.rbf IMAGES_LIST += $(_usrp1_fpga_rbf) $(_usrp1_fpga_4rx_rbf) $(_usrp1_fpga_rbf): $(GLOBAL_DEPS) cp $(_usrp1_fpga_dir)/std_2rxhb_2tx.rbf $@ $(_usrp1_fpga_4rx_rbf): $(GLOBAL_DEPS) cp $(_usrp1_fpga_dir)/std_4rx_0tx.rbf $@ ######################################################################## # USRP-B100 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_b100_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/B100 _usrp_b100_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_b100_fpga.bin _usrp_b100_fpga_2rx_bin = $(BUILT_IMAGES_DIR)/usrp_b100_fpga_2rx.bin IMAGES_LIST += $(_usrp_b100_fpga_bin) $(_usrp_b100_fpga_2rx_bin) $(_usrp_b100_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100 clean cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100 bin cp $(_usrp_b100_fpga_dir)/build-B100/B100.bin $@ $(_usrp_b100_fpga_2rx_bin): $(GLOBAL_DEPS) cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100_2RX clean cd $(_usrp_b100_fpga_dir) && make -f Makefile.B100_2RX bin cp $(_usrp_b100_fpga_dir)/build-B100_2RX/B100.bin $@ endif ######################################################################## # USRP2 and N Series firmware ######################################################################## ifdef HAS_ZPU_GCC _usrp2_fw_dir = $(TOP_FW_DIR)/zpu _usrp2_fw_bin = $(BUILT_IMAGES_DIR)/usrp2_fw.bin _usrp_n200_fw_bin = $(BUILT_IMAGES_DIR)/usrp_n200_fw.bin _usrp_n210_fw_bin = $(BUILT_IMAGES_DIR)/usrp_n210_fw.bin IMAGES_LIST += $(_usrp2_fw_bin) $(_usrp_n200_fw_bin) $(_usrp_n210_fw_bin) $(_usrp2_fw_bin): $(GLOBAL_DEPS) cd $(_usrp2_fw_dir) && rm -rf build cd $(_usrp2_fw_dir) && mkdir build cd $(_usrp2_fw_dir)/build && cmake ../ cd $(_usrp2_fw_dir)/build && make cp $(_usrp2_fw_dir)/build/usrp2/usrp2_txrx_uhd.bin $@ $(_usrp_n200_fw_bin): $(_usrp2_fw_bin) cp $(_usrp2_fw_dir)/build/usrp2p/usrp2p_txrx_uhd.bin $@ $(_usrp_n210_fw_bin): $(_usrp2_fw_bin) cp $(_usrp2_fw_dir)/build/usrp2p/usrp2p_txrx_uhd.bin $@ endif ######################################################################## # USRP2 fpga ######################################################################## ifdef HAS_XTCLSH _usrp2_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/USRP2 _usrp2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp2_fpga.bin IMAGES_LIST += $(_usrp2_fpga_bin) $(_usrp2_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp2_fpga_dir) && make clean cd $(_usrp2_fpga_dir) && make bin cp $(_usrp2_fpga_dir)/build/u2_rev3.bin $@ endif ######################################################################## # USRP-N200 R2/R3 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_n200_r3_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0 _usrp_n200_r3_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n200_r3_fpga.bin _usrp_n200_r3_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n200_r3_fpga.bit IMAGES_LIST += $(_usrp_n200_r3_fpga_bin) $(_usrp_n200_r3_fpga_bit) $(_usrp_n200_r3_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_n200_r3_fpga_dir) && make -f Makefile.N200R3 clean cd $(_usrp_n200_r3_fpga_dir) && make -f Makefile.N200R3 bin cp $(_usrp_n200_r3_fpga_dir)/build-N200R3/u2plus.bin $@ $(_usrp_n200_r3_fpga_bit): $(_usrp_n200_r3_fpga_bin) cp $(_usrp_n200_r3_fpga_dir)/build-N200R3/u2plus.bit $@ #its called r2 on the silkscreen, so make an r2 _usrp_n200_r2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n200_r2_fpga.bin IMAGES_LIST += $(_usrp_n200_r2_fpga_bin) $(_usrp_n200_r2_fpga_bin): $(_usrp_n200_r3_fpga_bin) cp $< $@ endif ######################################################################## # USRP-N210 R2/R3 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_n210_r3_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0 _usrp_n210_r3_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n210_r3_fpga.bin _usrp_n210_r3_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n210_r3_fpga.bit IMAGES_LIST += $(_usrp_n210_r3_fpga_bin) $(_usrp_n210_r3_fpga_bit) $(_usrp_n210_r3_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_n210_r3_fpga_dir) && make -f Makefile.N210R3 clean cd $(_usrp_n210_r3_fpga_dir) && make -f Makefile.N210R3 bin cp $(_usrp_n210_r3_fpga_dir)/build-N210R3/u2plus.bin $@ $(_usrp_n210_r3_fpga_bit): $(_usrp_n210_r3_fpga_bin) cp $(_usrp_n210_r3_fpga_dir)/build-N210R3/u2plus.bit $@ #its called r2 on the silkscreen, so make an r2 _usrp_n210_r2_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n210_r2_fpga.bin IMAGES_LIST += $(_usrp_n210_r2_fpga_bin) $(_usrp_n210_r2_fpga_bin): $(_usrp_n210_r3_fpga_bin) cp $< $@ endif ######################################################################## # USRP-N200 R4 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_n200_r4_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0 _usrp_n200_r4_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n200_r4_fpga.bin _usrp_n200_r4_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n200_r4_fpga.bit IMAGES_LIST += $(_usrp_n200_r4_fpga_bin) $(_usrp_n200_r4_fpga_bit) $(_usrp_n200_r4_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_n200_r4_fpga_dir) && make -f Makefile.N200R4 clean cd $(_usrp_n200_r4_fpga_dir) && make -f Makefile.N200R4 bin cp $(_usrp_n200_r4_fpga_dir)/build-N200R4/u2plus.bin $@ $(_usrp_n200_r4_fpga_bit): $(_usrp_n200_r4_fpga_bin) cp $(_usrp_n200_r4_fpga_dir)/build-N200R4/u2plus.bit $@ endif ######################################################################## # USRP-N210 R4 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_n210_r4_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/N2x0 _usrp_n210_r4_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_n210_r4_fpga.bin _usrp_n210_r4_fpga_bit = $(BUILT_IMAGES_DIR)/bit/usrp_n210_r4_fpga.bit IMAGES_LIST += $(_usrp_n210_r4_fpga_bin) $(_usrp_n210_r4_fpga_bit) $(_usrp_n210_r4_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_n210_r4_fpga_dir) && make -f Makefile.N210R4 clean cd $(_usrp_n210_r4_fpga_dir) && make -f Makefile.N210R4 bin cp $(_usrp_n210_r4_fpga_dir)/build-N210R4/u2plus.bin $@ $(_usrp_n210_r4_fpga_bit): $(_usrp_n210_r4_fpga_bin) cp $(_usrp_n210_r4_fpga_dir)/build-N210R4/u2plus.bit $@ endif ######################################################################## # USRP-E100 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_e100_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/E1x0 _usrp_e100_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_e100_fpga_v2.bin IMAGES_LIST += $(_usrp_e100_fpga_bin) $(_usrp_e100_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_e100_fpga_dir) && make -f Makefile.E100 clean cd $(_usrp_e100_fpga_dir) && make -f Makefile.E100 bin cp $(_usrp_e100_fpga_dir)/build-E100/E1x0.bin $@ endif ######################################################################## # USRP-E110 fpga ######################################################################## ifdef HAS_XTCLSH _usrp_e110_fpga_dir = $(TOP_FPGA_DIR)/usrp2/top/E1x0 _usrp_e110_fpga_bin = $(BUILT_IMAGES_DIR)/usrp_e110_fpga.bin IMAGES_LIST += $(_usrp_e110_fpga_bin) $(_usrp_e110_fpga_bin): $(GLOBAL_DEPS) cd $(_usrp_e110_fpga_dir) && make -f Makefile.E110 clean cd $(_usrp_e110_fpga_dir) && make -f Makefile.E110 bin cp $(_usrp_e110_fpga_dir)/build-E110/E1x0.bin $@ endif ######################################################################## # Build rules ######################################################################## images: $(IMAGES_LIST) find $(BUILT_IMAGES_DIR) -type f | xargs chmod -x find $(TOP_FPGA_DIR) -name "*.twr" | xargs grep constraint | grep met package: mkdir -p $(CMAKE_BUILD_DIR) cd $(CMAKE_BUILD_DIR) && cmake -DUHD_RELEASE_MODE=OFF .. cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=TGZ .. && make package cd $(CMAKE_BUILD_DIR) && cmake -DCPACK_GENERATOR=ZIP .. && make package clean: $(RM) -rf $(BUILT_IMAGES_DIR) $(RM) -rf $(CMAKE_BUILD_DIR) uhd-3.5.5/images/README.txt000066400000000000000000000015231224274632000152520ustar00rootroot00000000000000The images directory contains the following: - a Makefile for building firmware and fpga images - a CMake file for building an images package The Makefile and build systems for the images are probably Unix specific. Its best to build the images on a Unix system with standard build tools. The CMake package target will create an images package for your system. To build the images (unix): make clean make images To build the package (unix): mkdir build cd build cmake -DCPACK_GENERATOR= ../ make package The package generator types are described here: http://www.cmake.org/Wiki/CMake:CPackPackageGenerators Fedora note: The sdcc binaries are prefixed with "sdcc-" which breaks the build. However, /usr/libexec/sdcc contains properly named sdcc binaries. export PATH=${PATH}:/usr/libexec/sdcc